[meta-ti] [PATCH] linux: remove outdated kernel recipes

Denys Dmytriyenko denis at denix.org
Wed May 6 10:26:05 PDT 2015


From: Denys Dmytriyenko <denys at ti.com>

Signed-off-by: Denys Dmytriyenko <denys at ti.com>
---
 ...M-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch |   184 -
 ...ART-Fix-incorrect-population-of-default-u.patch |   169 -
 .../linux/linux-3.3.7/beagleboard/defconfig        |  3780 -
 ...hwmod-Convert-SHA0-crypto-device-data-to-.patch |   168 -
 ...-ARM-OMAP2-AM335x-Update-SPI-flash-layout.patch |    40 -
 ...lex-support-for-ES-2.x-and-suspend-resume.patch |  1928 -
 ...odified-WLAN-enable-and-irq-to-match-boar.patch |    62 -
 ...x-Add-crypto-driver-settings-to-defconfig.patch |   132 -
 ...-Add-minimal-support-for-Beaglebone-Black.patch |   110 -
 ...m335x-Add-pm_runtime-API-to-crypto-driver.patch |   405 -
 ...nable-Turbo-and-Nitro-modes-for-Beaglebon.patch |    41 -
 ...x-enable-pullup-on-the-WLAN-enable-pin-fo.patch |    57 -
 ...-using-edge-triggered-interrupts-for-WLAN.patch |    35 -
 ...x-Add-memory-addresses-for-crypto-modules.patch |    41 -
 .../0001-am33xx-Add-SmartReflex-support.patch      |  2014 -
 .../0001-mach-omap2-pm33xx-Disable-VT-switch.patch |    71 -
 ...date-PIO-mode-help-information-in-Kconfig.patch |    45 -
 ...1-omap-serial-add-delay-before-suspending.patch |    42 -
 ...emove-check-for-GP-only-device-type-in-RN.patch |    29 -
 .../0002-AM335x-OCF-Driver-for-Linux-3.patch       |  7228 --
 .../0002-Smartreflex-limited-to-ES-1.0.patch       |    35 -
 ...-suspend-resume-routines-to-crypto-driver.patch |   147 -
 ...Add-crypto-device-and-resource-structures.patch |   111 -
 ...2-am33xx-Enable-CONFIG_AM33XX_SMARTREFLEX.patch |    26 -
 ...map4-sham-Use-finer-grained-PM-management.patch |    98 -
 ...rypto-device-and-resource-structure-for-T.patch |    60 -
 ...-omap4-sham-Add-suspend-resume-PM-support.patch |    56 -
 ...d-crypto-drivers-to-Kconfig-and-Makefiles.patch |   124 -
 ...ap4-sham-Don-t-use-hardcoded-base-address.patch |    45 -
 ...hwmod-Convert-AES0-crypto-device-data-to-.patch |   165 -
 ...eate-header-file-for-OMAP4-crypto-modules.patch |   213 -
 ...m33x-Create-driver-for-TRNG-crypto-module.patch |   324 -
 ...map4-aes-User-finer-grained-PM-management.patch |   127 -
 ...am33x-Create-driver-for-AES-crypto-module.patch |   971 -
 ...o-omap4-aes-Add-suspend-resume-PM-support.patch |    56 -
 ...x-Create-driver-for-SHA-MD5-crypto-module.patch |  1444 -
 ...map4-aes-Don-t-use-hardcoded-base-address.patch |    45 -
 ...xx-hwmod-Convert-RNG-device-data-to-hwmod.patch |   176 -
 ...g-omap4-rng-Convert-to-use-pm_runtime-API.patch |    91 -
 .../linux/linux-am335x-psp-3.2/defconfig           |     1 -
 recipes-kernel/linux/linux-am335x-psp_3.2.bb       |   102 -
 ...-add-buddy-param-for-expansionboard-names.patch |    59 -
 ...xpansion-add-mmc-regulator-and-ds1307-rtc.patch |    57 -
 .../beagle/0003-expansion-add-zippy.patch          |    82 -
 .../beagle/0004-expansion-add-zippy2.patch         |    82 -
 .../beagle/0005-expansion-add-trainer.patch        |    55 -
 .../beagle/0006-expansion-add-ulcd.patch           |   262 -
 ...d-reinstate-usage-of-hi-speed-PLL-divider.patch |    29 -
 ...the-USB-regulator-on-Beagle-xM-explicitly.patch |    55 -
 ...b-add-Toshiba-LTA070B220F-800x480-support.patch |    30 -
 .../0010-beagleboard-fix-uLCD7-support.patch       |    66 -
 ...fault-to-fifo-mode-5-for-old-musb-beagles.patch |    29 -
 ...ght-Add-TLC59108-backlight-control-driver.patch |   215 -
 ...013-tlc59108-adjust-for-beagleboard-uLCD7.patch |   124 -
 .../beagle/0014-expansion-add-wifi.patch           |   142 -
 ...add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch |    37 -
 ...onvert-per-board-modules-to-platform-driv.patch |  1119 -
 .../linux/linux-mainline-3.2/beagleboard/defconfig |  4274 --
 .../beagleboard/logo_linux_clut224.ppm             | 73147 -------------------
 ...-devkit8000-for-lcd-use-samsung_lte_panel.patch |    28 -
 ...pkg-set-host-machine-after-dpkg-gencontro.patch |   114 -
 ...eartbeat-stop-on-shutdown-reboot-or-panic.patch |    67 -
 ...vert-drivers-net-to-use-module_usb_driver.patch |    80 -
 ...t-fix-assignment-of-0-1-to-bool-variables.patch |    55 -
 .../libertas/0003-switch-debugfs-to-umode_t.patch  |    26 -
 ...-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch |    54 -
 ...ibertas-remove-dump_survey-implementation.patch |    80 -
 ...bertas-remove-redundant-NULL-tests-before.patch |    95 -
 ...ix-signedness-bug-in-lbs_auth_to_authtype.patch |    48 -
 ...-wireless-libertas-if_usb.c-add-missing-d.patch |    35 -
 ...libertas-Firmware-loading-simplifications.patch |   618 -
 .../0011-libertas-harden-up-exit-paths.patch       |    46 -
 ...d-asynchronous-firmware-loading-capabilit.patch |   269 -
 ...IO-convert-to-asynchronous-firmware-loadi.patch |   320 -
 ...B-convert-to-asynchronous-firmware-loadin.patch |   201 -
 ...-convert-to-asynchronous-firmware-loading.patch |   154 -
 .../0016-libertas-add-missing-include.patch        |    30 -
 ...ve-debug-msgs-due-to-missing-in_interrupt.patch |    36 -
 .../0001-ksz8851-eeprom-93cx6-add-drive_data.patch |    62 -
 ...z8851-eeprom-93cx6-add-eeprom_93cx6_write.patch |   129 -
 .../micrel_zippy2/0003-ksz8851-read_mac_addr.patch |    93 -
 .../0004-ksz8851-93cx6-eeprom-access.patch         |   130 -
 ...51.h-it-helps-to-include-the-include-file.patch |    43 -
 .../0006-ksz8851-move-to-header.patch              |   326 -
 .../0007-ksz8851-move-more-to-header.patch         |   143 -
 .../0008-ksz8851-share-ks8851_tx_hdr-union.patch   |    95 -
 .../0009-ksz8851-add-is_level_irq.patch            |   101 -
 ...n-off-hardware-interrupt-druing-receive-p.patch |    42 -
 ...851-make-sure-is-awake-before-writing-mac.patch |    63 -
 .../0012-ksz8851-add-mutex-lock-unlock-to-ks.patch |    42 -
 .../0013-ksz8851-add-ks8851_tx_check.patch         |   121 -
 .../0014-ksz8851-move-ks8851_set_powermode.patch   |    71 -
 ...P-cleanup-for-multi-SoC-support-move-into.patch |   422 -
 ...02-cpufreq-OMAP-Add-SMP-support-for-OMAP4.patch |   191 -
 ...MAP-Enable-all-CPUs-in-shared-policy-mask.patch |    42 -
 ...-OMAP-notify-even-with-bad-boot-frequency.patch |    48 -
 ...ufreq-OMAP-move-clk-name-decision-to-init.patch |    64 -
 ...req-OMAP-deny-initialization-if-no-mpudev.patch |    64 -
 ...0007-cpufreq-OMAP-dont-support-freq_table.patch |   125 -
 ...08-cpufreq-OMAP-only-supports-OPP-library.patch |    43 -
 ...9-cpufreq-OMAP-put-clk-if-cpu_init-failed.patch |    61 -
 .../0010-cpufreq-OMAP-fix-freq_table-leak.patch    |    90 -
 ...P-fixup-for-omap_device-changes-include-l.patch |    47 -
 ...1-omap3-Increase-limit-on-bootarg-mpurate.patch |    33 -
 ...3517-3505-fix-crash-on-boot-due-to-incorr.patch |   110 -
 ...wmod-Don-t-wait-for-the-idle-status-if-mo.patch |   200 -
 ...MAP4-clock-Add-CPU-local-timer-clock-node.patch |    56 -
 ...wmod-data-disable-multiblock-reads-on-MMC.patch |   161 -
 ...6-OMAP-HWMOD-add-es3plus-to-am36xx-am35xx.patch |    34 -
 .../panda/0001-panda-fix-wl12xx-regulator.patch    |    27 -
 .../panda/0002-panda-enable-bluetooth.patch        |    88 -
 .../0003-ti-st-st-kim-fixing-firmware-path.patch   |    35 -
 ...MAP-DSS2-add-bootarg-for-selecting-svideo.patch |    78 -
 .../sakoman/0002-video-add-timings-for-hd720.patch |    28 -
 ...mc-Adjust-dto-to-eliminate-timeout-errors.patch |    30 -
 ...DSS2-remove-update_mode-from-omapdss-v3.2.patch |   321 -
 .../0001-omap3-touchbook-remove-mmc-gpio_wp.patch  |    39 -
 ...0002-omap3-touchbook-drop-u-boot-readonly.patch |    25 -
 recipes-kernel/linux/linux-mainline_3.2.bb         |   111 -
 .../0001-MAINTAINERS-stable-Update-address.patch   |    31 -
 .../0002-Documentation-Update-stable-address.patch |    56 -
 ...x-an-oops-on-reading-fw_priv-fw-in-sysfs-.patch |    81 -
 .../0004-rt2800usb-Move-ID-out-of-unknown.patch    |    43 -
 ...ix-setting-of-the-pseudo-palette-for-8bpp.patch |    92 -
 ...ix-bug-in-calculating-requested-vram-size.patch |    32 -
 ...07-libertas-clean-up-scan-thread-handling.patch |    86 -
 .../0008-bcma-support-for-suspend-and-resume.patch |   120 -
 ...x-Validate-FEM-index-from-ini-file-and-FW.patch |    75 -
 ...eck-buffer-bound-when-processing-nvs-data.patch |    68 -
 .../3.2.1/0011-wl12xx-Restore-testmode-ABI.patch   |    32 -
 ...werpc-time-Handle-wrapping-of-decrementer.patch |    93 -
 ...-unpaired-probe_hcall_entry-and-probe_hca.patch |    85 -
 ...a-possible-data-corruption-when-receiving.patch |    78 -
 .../0015-IB-uverbs-Protect-QP-multicast-list.patch |    96 -
 .../3.2.1/0016-iwlagn-fix-TID-use-bug.patch        |    50 -
 .../0017-iwlagn-fix-remove-use-of-PAGE_SIZE.patch  |   180 -
 ...Fix-parsing-of-__print_flags-in-TP_printk.patch |    37 -
 ...0019-ore-Fix-crash-in-case-of-an-IO-error.patch |    41 -
 ...0-ore-fix-BUG_ON-too-few-sgs-when-reading.patch |    56 -
 ...021-ore-Must-support-none-PAGE-aligned-IO.patch |   163 -
 ...breakage-when-MISC_FILESYSTEMS-is-not-set.patch |    89 -
 ...3-reiserfs-Fix-quota-mount-option-parsing.patch |    34 -
 ...rce-inode-evictions-before-umount-to-avoi.patch |    70 -
 ...warn-from-writepage-when-readonly-inode-i.patch |    73 -
 ...-hv-Don-t-OOPS-when-you-cannot-init-vmbus.patch |    70 -
 ...s-hv-Fix-a-bug-in-vmbus_driver_unregister.patch |    40 -
 .../0028-USB-update-documentation-for-usbmon.patch |    54 -
 ...oops-related-to-user-namespace-conversion.patch |   125 -
 ..._serial-fix-spinlock-lockup-in-RS485-code.patch |    47 -
 ...fix-to-allow-mounting-a-hierarchy-by-name.patch |    50 -
 ...dlock-when-converting-file-from-in-ICB-on.patch |   130 -
 ...sb-class-cdc-acm.c-clear-dangling-pointer.patch |    45 -
 ...ight-fix-kernel-bug-when-loading-firmware.patch |    47 -
 ...rage-doesn-t-support-dynamic-id-currently.patch |   121 -
 .../0036-USB-pxa168-Fix-compilation-error.patch    |    42 -
 .../0037-USB-add-quirk-for-another-camera.patch    |    37 -
 .../3.2.1/0038-USB-omninet-fix-write_room.patch    |    34 -
 ...usb-option-add-ZD-Incorporated-HSPA-modem.patch |    53 -
 ...-ID-for-Multiplex-RC-serial-adapter-to-cp.patch |    36 -
 ...1-usb-fix-number-of-mapped-SG-DMA-entries.patch |   155 -
 ...0042-xhci-Properly-handle-COMP_2ND_BW_ERR.patch |    62 -
 .../0043-usb-ch9-fix-up-MaxStreams-helper.patch    |    81 -
 ...zero-delay-when-receiving-odd-mixture-of-.patch |    37 -
 .../0045-asix-fix-infinite-loop-in-rx_fixup.patch  |    38 -
 ...ng-fix-error-handling-if-slave-is-busy-v2.patch |    68 -
 ...-Fix-acm_tty_hangup-vs.-acm_tty_close-rac.patch |    54 -
 ...acl-count-validation-in-xfs_acl_from_disk.patch |    34 -
 .../3.2.1/0049-Linux-3.2.1.patch                   |    24 -
 ...k-around-unhappy-compat-problem-on-x86-64.patch |   142 -
 ...-Fix-autofs-compile-without-CONFIG_COMPAT.patch |    42 -
 .../0003-compat-fix-compile-breakage-on-s390.patch |   216 -
 ...event-a-machine-hang-by-checking-crtc-act.patch |    42 -
 ...05-ARM-LPC32xx-serial.c-HW-bug-workaround.patch |    83 -
 ...006-ARM-LPC32xx-serial.c-Fixed-loop-limit.patch |    31 -
 ...007-ARM-LPC32xx-irq.c-Clear-latched-event.patch |    42 -
 ...ARM-LPC32xx-Fix-interrupt-controller-init.patch |    44 -
 .../0009-ARM-LPC32xx-Fix-irq-on-GPI_28.patch       |    50 -
 ...wdt-clean-up-set_memory_x-call-for-32-bit.patch |    54 -
 ...y-flag-completion-when-queue-is-completel.patch |    83 -
 ...ix-the-ldo-configure-according-to-88pm860.patch |    44 -
 ...Enable-the-compat-keyctl-wrapper-on-s390x.patch |    50 -
 ...m-Fix-Host-Only-Guest-Only-counting-with-.patch |   182 -
 ...altek-Fix-resume-of-multiple-input-source.patch |    35 -
 .../0016-ALSA-hda-Add-a-fake-mute-feature.patch    |   119 -
 ...ways-set-HP-pin-in-unsol-handler-for-STAC.patch |    34 -
 ...ent-null-pointer-reference-on-readonly-re.patch |    65 -
 ...rn-EFAULT-not-EIO-on-host-side-memory-fau.patch |    48 -
 .../3.2.10/0020-mfd-Fix-ACPI-conflict-check.patch  |    37 -
 ...r-jack-detection-when-deciding-if-wm8994-.patch |    46 -
 ...r-action-thread_mask-if-IRQ_ONESHOT-is-no.patch |    97 -
 ...023-ARM-S3C24XX-DMA-resume-regression-fix.patch |    35 -
 ...tech-Harmony-900-from-cdc_ether-to-zaurus.patch |    61 -
 ...-alpha-fix-32-64-bit-bug-in-futex-support.patch |    86 -
 ...ci-don-t-use-dma-features-when-using-DMA-.patch |    88 -
 ...dhci-esdhc-imx-fix-for-mmc-cards-on-i.MX5.patch |    46 -
 ...ake-up-waiters-when-freeing-unused-kiocbs.patch |    65 -
 ...rrect-unregistring-of-events-attached-to-.patch |    74 -
 ...t-need-to-clear-vm_mm-when-deleting-a-VMA.patch |    35 -
 ...ntry-refcount-leak-when-opening-a-FIFO-on.patch |    64 -
 ...ro-initialize-count-field-in-ieee80211_tx.patch |    42 -
 ...hw-prevent-writes-to-const-data-on-AR9160.patch |   119 -
 ...urn-proper-error-code-from-register_kprob.patch |    79 -
 .../3.2.10/0035-mm-thp-fix-BUG-on-mm-nr_ptes.patch |    99 -
 .../3.2.10/0036-iwlwifi-fix-key-removal.patch      |    58 -
 ...erpc-early-udbg-consoles-can-t-be-modules.patch |    36 -
 ...ix-handler-function-arguments-for-zfcp-da.patch |    49 -
 ...721-fix-queue-wrapping-bug-in-inbound-doo.patch |    49 -
 ...Add-NOGET-quirk-for-the-AIREN-Slim-keyboa.patch |    50 -
 ...esa-fix-final-callback-not-ignoring-input.patch |    33 -
 ...Bump-MAX_OSD_DEVICES-from-64-to-1-048-576.patch |    52 -
 ...viafb-select-HW-scaling-on-VX900-for-IGA2.patch |    34 -
 .../0044-viafb-fix-IGA1-modesetting-on-VX900.patch |    33 -
 ...m-Check-for-bias-level-when-powering-down.patch |    54 -
 .../0046-ASoC-i.MX-SSI-Fix-DSP_A-format.patch      |    38 -
 .../0047-bsg-fix-sysfs-link-remove-warning.patch   |    58 -
 ...8-avr32-select-generic-atomic64_t-support.patch |    37 -
 ...o-not-save-restore-NVS-on-Asus-K54C-K54HR.patch |    47 -
 .../3.2.10/0050-rtl8192cu-Add-new-device-IDs.patch |   108 -
 ...rm-i915-gen7-implement-rczunit-workaround.patch |    53 -
 ...5-gen7-Implement-an-L3-caching-workaround.patch |    60 -
 ...915-gen7-work-around-a-system-hang-on-IVB.patch |    56 -
 ...n7-Disable-the-RHWO-optimization-as-it-ca.patch |    54 -
 ...-drm-i915-fix-ELD-writing-for-SandyBridge.patch |    44 -
 .../0056-ARM-orion-Fix-USB-phy-for-orion5x.patch   |   164 -
 ...ix-Orion5x-GPIO-regression-from-MPP-clean.patch |   956 -
 ...P-Panda-use-gpio_free_array-to-free-HDMI-.patch |    49 -
 ...430SDP-Panda-rename-HPD-GPIO-to-CT_CP_HPD.patch |    68 -
 ...0060-OMAPDSS-remove-wrong-HDMI-HPD-muxing.patch |    58 -
 ...-OMAP-4430SDP-Panda-setup-HDMI-GPIO-muxes.patch |    49 -
 ...0062-OMAP-4430SDP-Panda-add-HDMI-HPD-gpio.patch |    77 -
 .../3.2.10/0063-OMAPDSS-HDMI-PHY-burnout-fix.patch |   246 -
 .../0064-OMAPDSS-HDMI-hot-plug-detect-fix.patch    |    43 -
 ...errata-update-workaround-for-A9-erratum-7.patch |    51 -
 ...perf-limit-sample_period-to-half-max_peri.patch |   163 -
 ...perf-clear-overflow-flag-when-disabling-c.patch |    40 -
 ...perf-check-that-we-have-an-event-in-the-P.patch |   103 -
 ...perf-fix-overflow-handling-for-xscale2-PM.patch |    87 -
 ...a-staging-lirc_serial-Fix-init-exit-order.patch |   143 -
 ...ng-lirc_serial-Free-resources-on-failure-.patch |    62 -
 ...ng-lirc_serial-Fix-deadlock-on-resume-fai.patch |    37 -
 ...ng-lirc_serial-Do-not-assume-error-codes-.patch |    54 -
 ...fix-touchpad-detection-when-buttons-are-p.patch |    50 -
 ..._core-Fix-maximum-number-of-POUT-alarm-at.patch |    34 -
 ...Add-support-for-ST-Microelectronics-STTS2.patch |    89 -
 ...Add-support-for-AT30TS00-TS3000GB2-TSE200.patch |   153 -
 ...0-Maintain-delay-parameter-in-driver-inst.patch |    62 -
 ...x-memory-accounting-when-sta-is-in-power-.patch |    41 -
 ...x-frame-delivery-if-sta-is-in-powersave-m.patch |    57 -
 ...-kms-set-SX_MISC-in-the-r6xx-blit-code-v2.patch |    51 -
 ...et-avoid-recursive-locking-in-usbnet_stop.patch |    61 -
 ...iommu_set_device_table-must-not-be-__init.patch |    33 -
 ...-not-leak-argv-if-target-message-only-con.patch |    36 -
 .../3.2.10/0085-dm-io-fix-discard-support.patch    |    86 -
 ...ix-crash-on-read-when-corrupt_bio_byte-no.patch |    71 -
 ...adata-remove-incorrect-close_device-on-cr.patch |   100 -
 ...adata-unlock-superblock-in-init_pmd-error.patch |    33 -
 ...adata-decrement-counter-after-removing-ma.patch |    36 -
 ...m-raid-set-MD_CHANGE_DEVS-when-rebuilding.patch |    63 -
 .../3.2.10/0091-dm-raid-fix-flush-support.patch    |    37 -
 ...t-don-t-call-__init-function-from-__devin.patch |    34 -
 .../0093-mfd-Fix-cs5535-section-mismatch.patch     |    69 -
 ...f-pch-rename-pch_spi_pcidev-to-pch_spi_pc.patch |    52 -
 .../3.2.10/0095-Linux-3.2.10.patch                 |    24 -
 ...Test-for-jack-detection-when-deciding-if-.patch |    45 -
 .../3.2.11/0002-Linux-3.2.11.patch                 |    24 -
 ...neo1973-fix-neo1973-wm8753-initialization.patch |    42 -
 ...altek-Apply-the-coef-setup-only-to-ALC269.patch |    56 -
 .../0003-aio-fix-io_setup-io_destroy-race.patch    |    54 -
 .../0004-aio-fix-the-too-late-munmap-race.patch    |    81 -
 .../0005-x86-Derandom-delay_tsc-for-64-bit.patch   |    63 -
 ...pre-1.1-ASPM-quirking-when-ASPM-is-disabl.patch |    38 -
 ...ccdc-Fix-crash-in-HS-VS-interrupt-handler.patch |    40 -
 .../3.2.12/0008-rt2x00-fix-random-stalls.patch     |    99 -
 ...x-local-vs-remote-memory-events-for-NHM-W.patch |   222 -
 ...-Do-not-kmalloc-under-the-flocks-spinlock.patch |   140 -
 .../0011-vfs-fix-return-value-from-do_last.patch   |    34 -
 ...12-vfs-fix-double-put-after-complete_walk.patch |    35 -
 ...cer-wmi-No-wifi-rfkill-on-Lenovo-machines.patch |    77 -
 .../0014-atl1c-dont-use-highprio-tx-queue.patch    |    51 -
 ...neighbour-Fixed-race-condition-at-tbl-nht.patch |    48 -
 ...ec-be-careful-of-non-existing-mac-headers.patch |   144 -
 ...ppp-fix-ppp_mp_reconstruct-bad-seq-errors.patch |    90 -
 ...ignment-of-ip_summed-for-pre-allocated-sk.patch |    56 -
 ...alse-reordering-signal-in-tcp_shifted_skb.patch |    72 -
 .../0020-vmxnet3-Fix-transport-header-size.patch   |    58 -
 .../0021-packetengines-fix-config-default.patch    |    33 -
 ...-corrupted-IP-fragments-fix-for-large-mtu.patch |    49 -
 ...ragment-SACKed-skbs-in-tcp_mark_head_lost.patch |    55 -
 ...-check-return-value-of-ipv6_dev_get_saddr.patch |    39 -
 ..._shift_skb_data-to-not-shift-SACKed-data-.patch |    89 -
 ...t-join-all-router-mcast-group-when-forwar.patch |    36 -
 .../0027-usb-asix-Patch-for-Sitecom-LN-031.patch   |    36 -
 ...ix-setting-selector-in-tps6524x-set_volta.patch |    33 -
 ...ULL-pointer-dereference-in-sd_revalidate_.patch |   170 -
 ...fix-pointer-math-issue-getting-fw-version.patch |    34 -
 ...-__blkdev_get-and-add_disk-race-condition.patch |   163 -
 ...-freezable-workqueue-for-disk-event-polli.patch |   129 -
 ...sparc32-Add-Av8-to-assembler-command-line.patch |    40 -
 ...7ehf-Fix-writing-into-fan_stop_time-for-N.patch |    35 -
 ...3627ehf-Fix-memory-leak-in-probe-function.patch |    53 -
 ...-w83627ehf-Fix-temp2-source-for-W83627UHG.patch |    69 -
 ...721-fix-bug-in-register-offset-definition.patch |   103 -
 ...t-Fix-spurious-SCL-timeouts-under-heavy-l.patch |    46 -
 ...t-Fix-reservation-conflict-EBUSY-response.patch |    51 -
 ...compatible-reservation-handling-CRH-1-wit.patch |   152 -
 ...0-Enable-interval-between-chip-accesses-f.patch |    72 -
 .../3.2.12/0042-Linux-3.2.12.patch                 |    24 -
 ...NULL-pointer-dereference-in-nilfs_load_su.patch |    62 -
 .../0002-afs-Read-of-file-returns-EBADMSG.patch    |    56 -
 ...-Remote-abort-can-cause-BUG-in-rxrpc-code.patch |    68 -
 ...Incorrect-use-of-snprintf-results-in-SEGV.patch |    66 -
 ...perf-tools-Use-scnprintf-where-applicable.patch |   283 -
 .../3.2.13/0006-tcp-fix-syncookie-regression.patch |   111 -
 ...Don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch |    36 -
 ...-possible-il-txq-NULL-pointer-dereference.patch |    63 -
 ...c-Fix-SMP-kernels-on-pre-core99-UP-machin.patch |    36 -
 .../3.2.13/0010-Linux-3.2.13.patch                 |    24 -
 ...Add-MediaTek-MT6276M-modem-app-interfaces.patch |    45 -
 ...driver-adding-support-for-Telit-CC864-SIN.patch |    44 -
 ...ption-make-interface-blacklist-work-again.patch |    37 -
 .../3.2.14/0004-USB-option-add-ZTE-MF820D.patch    |    37 -
 ...ing-zcache-avoid-AB-BA-deadlock-condition.patch |    66 -
 ...o-fix-problem-when-the-manufacture-is-a-N.patch |    36 -
 ...tdi_sio-add-support-for-BeagleBone-rev-A5.patch |    35 -
 ...ip-VID-mislabeled-as-Hornby-VID-in-ftdi_s.patch |    61 -
 ...ftdi_sio-new-PID-Distortec-JTAG-lock-pick.patch |    46 -
 ...i_sio-add-support-for-FT-X-series-devices.patch |   150 -
 .../0011-USB-ftdi_sio-new-PID-LUMEL-PD12.patch     |    45 -
 ...-fix-bug-of-kernel-hang-when-initializing.patch |    55 -
 ...12u-Add-missing-initialization-and-remove.patch |   107 -
 ...12u-Fix-regression-introduced-by-commit-a.patch |    53 -
 ...12u-Fix-regression-in-signal-level-after-.patch |    47 -
 ...-fix-bogus-test-in-dwc3_gadget_start_isoc.patch |    54 -
 ...e-proper-function-for-setting-endpoint-na.patch |    46 -
 ...s-return-number-of-bytes-on-ep0-read-requ.patch |    37 -
 ...t-Make-g_hid-device-class-conform-to-spec.patch |    39 -
 ...-all-PI-opcodes-with-cmpxchg-enabled-chec.patch |    64 -
 ...fs-Fix-memory-leak-in-sysfs_sd_setsecdata.patch |    92 -
 .../0022-tty-moxa-fix-bit-test-in-moxa_start.patch |    34 -
 ...ng-unicode-value-copied-in-con_set_unimap.patch |   119 -
 ...24-USB-serial-fix-console-error-reporting.patch |    36 -
 ...5-cdc-wdm-Fix-more-races-on-the-read-path.patch |    87 -
 ...-t-clear-WDM_READ-unless-entire-read-buff.patch |    36 -
 ..._core-Fix-scheduling-while-atomic-dump-me.patch |   134 -
 ...ld-error-due-to-dma_mask-is-not-at-pdev_a.patch |    49 -
 ...ltek-do-not-use-stack-memory-for-DMA-in-_.patch |    51 -
 ...B-qcserial-add-several-new-serial-devices.patch |    49 -
 ...l-don-t-grab-QMI-port-on-Gobi-1000-device.patch |   177 -
 ...Add-support-for-the-Sealevel-SeaLINK-8-20.patch |    51 -
 ...Update-to-support-CP2105-and-multiple-int.patch |   155 -
 ...mos7840-Fixed-MCS7820-device-attach-probl.patch |   148 -
 ...d-support-for-D-Link-DWA-127-to-rt2800usb.patch |    33 -
 ...8192c_common-rtl8192de-Check-for-allocati.patch |   102 -
 ...dle-previous-allocation-failures-when-fre.patch |    59 -
 ...8192c-Prevent-sleeping-from-invalid-conte.patch |    56 -
 ...rtl8192ce-Fix-loss-of-receive-performance.patch |    42 -
 ...0-iwlwifi-always-monitor-for-stuck-queues.patch |    65 -
 .../3.2.14/0041-math-Introduce-div64_long.patch    |    45 -
 ...tp-Fix-integer-overflow-when-setting-time.patch |    39 -
 ...-events-in-correct-order-according-to-seq.patch |    97 -
 ...long-term-regression-in-genirq-irq_set_ir.patch |    96 -
 ...incorrect-check-for-forced-IRQ-thread-han.patch |    35 -
 ...-rtc-Disable-the-alarm-in-the-hardware-v2.patch |    76 -
 ...ase-GPIO-lines-and-IRQ-on-error-in-p54spi.patch |    71 -
 .../3.2.14/0048-rtnetlink-Fix-VF-IFLA-policy.patch |    38 -
 ...t-initial-receive-buffers-before-sending-.patch |   143 -
 .../3.2.14/0050-ima-fix-Kconfig-dependencies.patch |    49 -
 ...Add-register-level-checks-to-detect-bogus.patch |   113 -
 ...pmd_bad-triggering-in-code-paths-holding-.patch |   480 -
 ...o-buffer-whole-after-copying-to-userspace.patch |    46 -
 ...Fix-handling-of-wakeup-devices-during-sys.patch |    51 -
 ...rsemem-remove-limit-constraint-in-alloc_b.patch |   147 -
 ...-avoid-taking-i_mutex-from-hugetlbfs_read.patch |   140 -
 ...022ds-tell-the-WM8776-codec-driver-that-i.patch |    89 -
 ...xa-ssp-atomically-set-stream-active-masks.patch |   122 -
 ...loop-Set-residual-field-for-SCSI-commands.patch |    51 -
 ...rget-Fix-iscsit_alloc_buffs-failure-cases.patch |    62 -
 ...t-Fix-dynamic-explict-NodeACL-pointer-ref.patch |    46 -
 ...da-fix-printing-of-high-HDMI-sample-rates.patch |    43 -
 ...fix-a-section-mismatch-when-compiling-g_f.patch |   190 -
 ...e-sysfs-framebuffer-device-with-USB-.disc.patch |   120 -
 ...fc_exch-memory-leak-in-ft_send_resp_statu.patch |    50 -
 ...nsure-to-load-bitmap-when-creating-via-sy.patch |    37 -
 ...n-t-set-md-arrays-to-readonly-on-shutdown.patch |    82 -
 ...id10-avoid-deadlock-during-resync-recover.patch |    97 -
 ...ring-of-the-changed-flags-for-the-bad-blo.patch |    55 -
 ...ly-clear-the-GPU-domains-upon-a-successfu.patch |    64 -
 ...Restrict-offset-for-legacy-hardware-curso.patch |   131 -
 ...kms-fix-analog-load-detection-on-DVI-I-co.patch |    40 -
 ...kms-add-connector-quirk-for-Fujitsu-D3003.patch |    48 -
 ...t-set-WBUS16-or-SYNC-bits-in-INQUIRY-resp.patch |    41 -
 ...-fix-use-after-free-in-target_report_luns.patch |    37 -
 ...ent-NULL-pointer-dereference-in-target_re.patch |    37 -
 ...16-bit-target-ports-for-SET-TARGET-PORT-G.patch |    54 -
 ...ooth-Add-AR30XX-device-ID-on-Asus-laptops.patch |    67 -
 ...D-add-extra-hotkeys-in-Asus-AIO-keyboards.patch |    71 -
 ...ID-add-more-hotkeys-in-Asus-AIO-keyboards.patch |    34 -
 ...-correctly-mask-recovery-field-for-HT6560.patch |    36 -
 ...ci-fix-too-early-completion-of-IR-multich.patch |    55 -
 ...end-struct-x86_emulate_ops-with-get_cpuid.patch |    82 -
 ...6-fix-missing-checks-in-syscall-emulation.patch |   148 -
 ...y-handle-the-case-where-the-delegation-is.patch |   193 -
 ...n-the-delegation-if-the-server-returns-NF.patch |    77 -
 .../3.2.14/0087-xfs-fix-inode-lookup-race.patch    |   101 -
 .../0088-CIFS-Respect-negotiated-MaxMpxCount.patch |   212 -
 ...sue-mounting-of-DFS-ROOT-when-redirecting.patch |    55 -
 ...a-spurious-error-in-cifs_push_posix_locks.patch |    70 -
 .../0091-UBI-fix-error-handling-in-ubi_scan.patch  |    58 -
 .../0092-UBI-fix-eraseblock-picking-criteria.patch |    57 -
 ...ust-not-use-list_for_each_entry_safe-in-r.patch |    73 -
 ...ease-URB-reference-count-before-usb_unlin.patch |    62 -
 ...usbnet-don-t-clear-urb-dev-in-tx_complete.patch |    38 -
 .../0096-e1000e-Avoid-wrong-check-on-TX-hang.patch |    98 -
 ...endless-loop-when-processing-signals-for-.patch |    85 -
 ...-d_set_d_op-API-to-set-dentry-ops-in-proc.patch |    49 -
 ...ix-section-warning-for-prealloc_protectio.patch |    39 -
 ...-protect-poll-in-entries-that-may-go-away.patch |    97 -
 ...h_power-Correct-sign-extension-of-running.patch |    36 -
 ...x-signedness-error-in-i2c_read_demod_byte.patch |    53 -
 ...-7MHz-8MHz-DVB-T-tuner-support-for-HVR190.patch |    51 -
 ...x-error-on-stream-stop-in-mxl111sf_ep6_st.patch |    45 -
 ...-limit-the-state-manager-warning-messages.patch |    78 -
 ...e-Enable-usermodehelpers-in-hibernate-err.patch |    55 -
 ...BH_Delay-BH_Unwritten-in-journal_unmap_bu.patch |    49 -
 ...-EXT4_INODE_JOURNAL_DATA-flag-with-delall.patch |   194 -
 ...ce-between-unwritten-extent-conversion-an.patch |    90 -
 ...x-race-between-sync-and-completed-io-work.patch |   119 -
 .../0111-ext4-check-for-zero-length-extent.patch   |    41 -
 ...x-d_ancestor-case-in-d_materialize_unique.patch |    54 -
 ...select-required-CPU-and-L2-errata-options.patch |    56 -
 ...0114-udf-Fix-deadlock-in-udf_release_file.patch |    40 -
 ...ap-fix-_set_gpio_irqenable-implementation.patch |    41 -
 ...nci-fix-oops-on-unbanked-gpio-irq-request.patch |   152 -
 ...o-davinci-fix-enabling-unbanked-GPIO-IRQs.patch |    65 -
 .../0118-dm-crypt-fix-mempool-deadlock.patch       |    65 -
 .../0119-dm-crypt-add-missing-error-handling.patch |   116 -
 ...20-dm-exception-store-fix-init-error-path.patch |    33 -
 ...nt-data-fix-btree-rebalancing-after-remov.patch |   272 -
 .../0122-dm-thin-fix-stacked-bi_next-usage.patch   |   233 -
 .../0123-backlight-fix-typo-in-tosa_lcd.c.patch    |    34 -
 ...s-on-IO-error-during-xlog_recover_process.patch |    84 -
 ...-hold-slub_lock-when-calling-sysfs_slab_a.patch |    51 -
 ...-Fix-two-infinite-loops-in-the-mount-code.patch |    54 -
 ...7-NFSv4.1-Fix-layoutcommit-error-handling.patch |    61 -
 .../0128-module-Remove-module-size-limit.patch     |    38 -
 ...tusb-fix-bInterval-for-high-super-speed-i.patch |    47 -
 ...spend-fbdev-device-around-suspend-hiberna.patch |    95 -
 .../3.2.14/0131-Fix-pppol2tp-getsockname.patch     |    37 -
 ...-fix-incorrent-ipv6-ipsec-packet-fragment.patch |    54 -
 ...t-bpf_jit-fix-BPF_S_LDX_B_MSH-compilation.patch |    62 -
 ...otential-rcu_read_lock-imbalance-in-rt6_f.patch |    50 -
 .../0135-net-fix-napi_reuse_skb-skb-reserve.patch  |    39 -
 .../0136-Remove-printk-from-rds_sendmsg.patch      |    31 -
 ...-override-for-PCI-legacy-power-management.patch |    52 -
 ...-the-replay-notify-functions-via-the-regi.patch |    54 -
 ...-arg-parsing-for-grace_period-and-timeout.patch |    40 -
 ...p-refined-tsc-calibration-on-systems-with.patch |    62 -
 .../0141-x86-tls-Off-by-one-limit-check.patch      |    43 -
 ...sys_sendfile64-implementation-for-sendfil.patch |    40 -
 ...-flag-for-rtc-devices-that-don-t-support-.patch |    76 -
 ...-allow-zero-length-strings-in-cache_parse.patch |    35 -
 ...ci-fix-a-race-of-DMA-submit_tx-on-transfe.patch |    91 -
 ...M-Fix-pcie-devices-with-non-pcie-children.patch |    72 -
 .../3.2.14/0147-Linux-3.2.14.patch                 |    24 -
 ...-fix-a-bug-in-emitting-the-16-bit-immedia.patch |    36 -
 ...002-tg3-Fix-5717-serdes-powerdown-problem.patch |    37 -
 ...ont-overwrite-settings-for-PHY-Quick-link.patch |    42 -
 ...ev-fix-memcpy-bug-in-rose_set_mac_address.patch |    41 -
 .../3.2.15/0005-net-usb-cdc_eem-fix-mtu.patch      |    38 -
 ...-PHY-access-a-bad-merge-undid-bug-fix-in-.patch |    49 -
 ...ASoC-wm8994-Update-WM8994-DCS-calibration.patch |    31 -
 ...008-mtd-ixp4xx-oops-in-ixp4xx_flash_probe.patch |    52 -
 ...ntiq-reintroduce-support-for-cmdline-part.patch |    45 -
 ...mi-use-correct-member-for-checking-NAND_B.patch |    42 -
 .../0011-mtd-sst25l-initialize-writebufsize.patch  |    38 -
 ...012-mtd-block2mtd-initialize-writebufsize.patch |    39 -
 .../0013-mtd-lart-initialize-writebufsize.patch    |    37 -
 .../3.2.15/0014-mtd-m25p80-set-writebufsize.patch  |    37 -
 ...freq-clamping-for-throttling-per-package-.patch |   132 -
 ...-Fix-device-ref-leaking-in-acpi_pnp_match.patch |    43 -
 ...CA-Fix-regression-in-FADT-revision-checks.patch |    69 -
 .../0018-modpost-fix-ALL_INIT_DATA_SECTIONS.patch  |    32 -
 ...st-irq-thread-affinity-on-IRQ_SET_MASK_OK.patch |    55 -
 ...20-tracing-Fix-ftrace-stack-trace-entries.patch |    77 -
 ...0021-tracing-Fix-ent_size-in-trace-output.patch |    58 -
 ...d-missing-platform-check-before-registeri.patch |    34 -
 ...x-possible-tid_rx-reorder_timer-use-after.patch |    52 -
 ...8192ce-rtl8192cu-rtl8192de-Fix-low-gain-s.patch |    54 -
 ...e-requested-virtual-size-against-allocate.patch |    48 -
 ...0026-drm-radeon-kms-fix-fans-after-resume.patch |    75 -
 .../0027-drm-i915-no-lvds-quirk-on-MSI-DC500.patch |    40 -
 ...anitize-BIOS-debugging-bits-from-PIPECONF.patch |    62 -
 ...-Add-lock-on-drm_helper_resume_force_mode.patch |    37 -
 ...0-drm-i915-quirk-away-broken-OpRegion-VBT.patch |    71 -
 ...0031-r8169-runtime-resume-before-shutdown.patch |    57 -
 ...-Fix-unsupported-WRITE_SAME-sense-payload.patch |    54 -
 ...core-pass-the-breakpoint-struct-instead-o.patch |   180 -
 ...-Fix-kernel-oops-with-CONFIG_DEBUG_RODATA.patch |   121 -
 ...-2-fix-single-step-awareness-to-work-corr.patch |   212 -
 ...-2-fix-single-step-awareness-to-work-corr.patch |   266 -
 ...x-DEBUG_RODATA-limitation-using-text_poke.patch |   166 -
 ...IFS-Fix-VFS-lock-usage-for-oplocked-files.patch |    99 -
 ...-remove-Tegra30-errata-from-MACH_TEGRA_DT.patch |    40 -
 ...ove-Fix-compile-error-by-including-module.patch |    36 -
 ...tmel-mci-correct-data-timeout-computation.patch |    42 -
 ...abort-flag-for-gracefully-handling-exchan.patch |   102 -
 ...ot-free-tpg-structure-during-wq-allocatio.patch |    61 -
 ...write-access-to-dmesg_restrict-kptr_restr.patch |    72 -
 ...Fix-modpost-license-checking-of-vmlinux.o.patch |    74 -
 ...-use-host-bridge-_CRS-info-on-MSI-MS-7253.patch |    62 -
 ...not-tie-MSI-MS-7253-use_crs-quirk-to-BIOS.patch |    50 -
 ...048-TOMOYO-Fix-mount-flags-checking-order.patch |    91 -
 ...ioapic-Add-register-level-checks-to-detec.patch |   100 -
 ...-acer-wmi-No-wifi-rfkill-on-Sony-machines.patch |    39 -
 ...of-buffer-copied-in-__nfs4_get_acl_uncach.patch |    36 -
 ...2-sched-x86-Fix-overflow-in-cyc2ns_offset.patch |    99 -
 ...ear-twl6030-IRQ-status-register-only-once.patch |    58 -
 ...orola-Rokr-E6-Id-to-the-USBNet-driver-zau.patch |    37 -
 .../0055-ioat-fix-size-of-completion-for-Xen.patch |   209 -
 .../0056-ASoC-ak4642-fixup-mute-needs-1-step.patch |    34 -
 ...rocess-should-clear-child-replacement_ses.patch |    44 -
 ...ake-sure-IOMMU-interrupts-are-re-enabled-.patch |    76 -
 ...h-Fix-l2cap-conn-failures-for-ssp-devices.patch |    43 -
 .../3.2.15/0060-Linux-3.2.15.patch                 |    24 -
 ...sk-transcoder-select-bits-before-setting-.patch |    50 -
 ...deon-kms-fix-DVO-setup-on-some-r4xx-chips.patch |    39 -
 ...ngbuffer-Exclude-last-2-cachlines-of-ring.patch |    34 -
 ...only-add-the-mm-i2c-bus-if-the-hw_i2c-mod.patch |    41 -
 ...operly-compute-dp-dithering-for-user-crea.patch |   130 -
 ...-i915-make-rc6-module-parameter-read-only.patch |    32 -
 ...-missing-DMA-buffer-unmapping-for-PCI-dri.patch |    45 -
 ...79-1-DT-fix-atags_to_fdt-second-call-site.patch |    37 -
 ...ThumbEE-Disable-userspace-TEEHBR-access-f.patch |    54 -
 ...revent-bitmap_daemon_work-running-while-i.patch |    42 -
 ...0011-Bluetooth-uart-ldisc-Fix-memory-leak.patch |    51 -
 ...ci_ldisc-fix-NULL-pointer-dereference-on-.patch |   107 -
 ...s-scalability-issue-by-removing-extent-ca.patch |    93 -
 ...14-ia64-fix-futex_atomic_cmpxchg_inatomic.patch |    58 -
 ...-rtc-pl031.c-enable-clock-on-all-ST-varia.patch |    39 -
 ...getlb-fix-race-condition-in-hugetlb_fault.patch |    89 -
 ...g-iio-hmc5843-Fix-crash-in-probe-function.patch |   107 -
 ...altera_uart-Check-for-NULL-platform_data-.patch |    42 -
 ...minate-obsolete-__handle_softirq-function.patch |    63 -
 .../0020-sparc64-Fix-bootup-crash-on-sun4v.patch   |    33 -
 ...alize-scsi-host-max_sectors-for-tape-driv.patch |    35 -
 ...csi-tape-io-with-more-than-255-scatter-ga.patch |    38 -
 ...fb-Fix-oops-that-uvesafb-try-to-execute-N.patch |   118 -
 ...stale-jiffies-update-in-tick_nohz_restart.patch |    53 -
 .../0025-pch_uart-Fix-MSI-setting-issue.patch      |    43 -
 ...SB-serial-fix-race-between-probe-and-open.patch |    97 -
 ...fix-DTR-RTS-being-raised-on-baud-rate-cha.patch |    37 -
 ...re-add-NOVATELWIRELESS_PRODUCT_HSPA_HIGHS.patch |    32 -
 ...o-fix-status-line-change-handling-for-TIO.patch |    79 -
 ...o-fix-race-condition-in-TIOCMIWAIT-and-ab.patch |   111 -
 ...ra-add-support-for-Sierra-Wireless-MC7710.patch |    30 -
 ...t-clear-urb-dev-in-scatter-gather-library.patch |    85 -
 ...don-t-ignore-suspend-errors-for-root-hubs.patch |    54 -
 .../0034-xhci-don-t-re-enable-IE-constantly.patch  |    58 -
 ...-t-write-zeroed-pointers-to-xHC-registers.patch |    78 -
 ...tore-event-ring-dequeue-pointer-on-resume.patch |    39 -
 ...-of-device-descriptor-got-from-superspeed.patch |    73 -
 ...CI_RESET_ON_RESUME-quirk-for-VIA-xHCI-hos.patch |    43 -
 ...orrect-the-define-XHCI_LEGACY_DISABLE_SMI.patch |    61 -
 ...040-fix-tlb-flushing-for-page-table-pages.patch |   240 -
 ...041-serial-PL011-clear-pending-interrupts.patch |    82 -
 ...0042-serial-PL011-move-interrupt-clearing.patch |    55 -
 ...-the-same-personality-flags-as-suid-when-.patch |    41 -
 .../0044-ath9k-fix-max-noise-floor-threshold.patch |    56 -
 ...0045-xhci-Fix-register-save-restore-order.patch |    62 -
 ...ci_core-fix-NULL-pointer-dereference-at-u.patch |   133 -
 ...pport-new-device-LAPIS-Semiconductor-ML78.patch |    63 -
 ...missing-spin_lock_init-in-gpio-pch-driver.patch |    35 -
 ...9-usb-gadget-pch_udc-Fix-disconnect-issue.patch |    42 -
 ...usb-gadget-pch_udc-Fix-wrong-return-value.patch |    42 -
 ...-usb-gadget-pch_udc-Fix-USB-suspend-issue.patch |    45 -
 ...pch_udc-Fix-usb-gadget-pch_udc-Fix-ether-.patch |   153 -
 ...gadget-pch_udc-Reduce-redundant-interrupt.patch |    55 -
 ...to-allow-region-arguments-to-reference-ot.patch |    82 -
 ...security-fix-compile-error-in-commoncap.c.patch |    37 -
 ...056-pch_gbe-Do-not-abort-probe-on-bad-MAC.patch |    81 -
 ...ory-corruption-calling-pch_gbe_validate_o.patch |    56 -
 ...port-new-device-LAPIS-Semiconductor-ML783.patch |    82 -
 ...i-topcliff-pch-fix-Wuninitialized-warning.patch |    82 -
 ...f-pch-Support-new-device-LAPIS-Semiconduc.patch |    76 -
 ...dding-USB-device-13d3-3375-as-an-Atheros-.patch |    67 -
 ...etooth-Add-Atheros-maryann-PIDVID-support.patch |   119 -
 ...ooth-Add-support-for-BCM20702A0-0a5c-21e3.patch |    45 -
 ...t-leak-robust-list-to-unprivileged-proces.patch |   170 -
 ...kms-fix-the-regression-of-DVI-connector-c.patch |    39 -
 .../0066-drm-radeon-disable-MSI-on-RV515.patch     |    37 -
 ...fix-load-detect-on-rn50-with-hardcoded-ED.patch |    46 -
 .../3.2.16/0068-Linux-3.2.16.patch                 |    24 -
 ...a512-Fix-byte-counter-overflow-in-SHA-512.patch |    37 -
 ...nexant-Don-t-set-HP-pin-control-bit-uncon.patch |    43 -
 ...nexant-Set-up-the-missing-docking-station.patch |    99 -
 ...x-serial-driver-hungs-are-a-result-of-cal.patch |    54 -
 ...MTIMER-fix-broken-timer-clock-source-sele.patch |    58 -
 ...mmc-fixes-for-eMMC-v4.5-discard-operation.patch |    72 -
 ...mc-fixes-for-eMMC-v4.5-sanitize-operation.patch |   136 -
 ...008-mmc-unbreak-sdhci-esdhc-imx-on-i.MX25.patch |    40 -
 .../0009-xen-gntdev-do-not-set-VM_PFNMAP.patch     |    37 -
 ...Add-quirk-to-deal-with-misconfigured-back.patch |   151 -
 ...emove-allocation-of-coherent-buffer-for-s.patch |    48 -
 ...ix-missing-URB_NO_TRANSFER_DMA_MAP-flag-i.patch |    35 -
 ...wb-fix-use-of-del_timer_sync-in-interrupt.patch |    64 -
 .../3.2.17/0014-uwb-fix-error-handling.patch       |    34 -
 .../0015-davinci_mdio-Fix-MDIO-timeout-check.patch |    44 -
 ...pdate-pcie8766-scratch-register-addresses.patch |    50 -
 ...mac-resume-transmit-fifo-upon-receiving-f.patch |    57 -
 .../0018-rc-core-set-mode-for-winbond-cir.patch    |    37 -
 ...ot-unlock-mutex-if-sanity-check-failed-in.patch |    41 -
 ...cfg80211-fix-interface-combinations-check.patch |    30 -
 .../0021-Fix-modpost-failures-in-fedora-17.patch   |    54 -
 ...-BUG-by-__set_page_dirty_no_writeback-on-.patch |    60 -
 ...ible-corruption-of-array-metadata-on-shut.patch |    51 -
 ...-jbd2-use-GFP_NOFS-for-blkdev_issue_flush.patch |    45 -
 ...cp210x-Fixed-usb_control_msg-timeout-valu.patch |    54 -
 ...ch_uart-Fix-dma-channel-unallocated-issue.patch |    55 -
 ...rs-tty-amiserial.c-add-missing-tty_unlock.patch |    36 -
 ...sierra-avoid-QMI-wwan-interface-on-MC77xx.patch |    60 -
 ...I-fix-criterion-for-resuming-the-root-hub.patch |    48 -
 ...-EHCI-always-clear-the-STS_FLR-status-bit.patch |    46 -
 ...dlock-in-bConfigurationValue-attribute-me.patch |   116 -
 ...eliminate-NULL-pointer-dereference-bugfix.patch |    56 -
 ...ap-fix-crash-when-musb-glue-omap-gets-ini.patch |    44 -
 ...ap-fix-the-error-check-for-pm_runtime_get.patch |    48 -
 ...rk-for-still-enabled-interrupts-on-Intel-.patch |    89 -
 ...dianness-breakage-in-ext4_split_extent_at.patch |    33 -
 ...ages-from-the-iommu-when-slots-are-remove.patch |   109 -
 ...ptop-add-3-machines-that-has-touchpad-LED.patch |    58 -
 ...-touchpad-LED-should-persist-its-status-a.patch |    34 -
 ...uetooth-Add-support-for-Atheros-04ca-3005.patch |    64 -
 .../0041-Don-t-limit-non-nested-epoll-paths.patch  |    45 -
 ...ice-unregistration-when-unregistering-the.patch |    38 -
 ...pi-mpc83xx-fix-NULL-pdata-dereference-bug.patch |    42 -
 ...dd-support-for-the-Fujitsu-Stylistic-Q550.patch |    33 -
 .../0045-rt2x00-Identify-rt2800usb-chipsets.patch  |   148 -
 ...rken-error-value-for-setattr-on-read-only.patch |    45 -
 ...ror-values-returned-by-nfsd4_lockt-when-n.patch |    73 -
 ...dianness-breakage-in-TEST_STATEID-handlin.patch |    36 -
 ...9-nfsd-fix-compose_entry_fh-failure-exits.patch |    92 -
 ...-btrfs_root_readonly-broken-on-big-endian.patch |    33 -
 ...s2-l_next_free_req-breakage-on-big-endian.patch |    53 -
 .../0052-ocfs-rl_used-breakage-on-big-endian.patch |    58 -
 .../0053-ocfs2-rl_count-endianness-breakage.patch  |    31 -
 ...ocfs2-e_leaf_clusters-endianness-breakage.patch |    40 -
 .../3.2.17/0055-lockd-fix-the-endianness-bug.patch |    45 -
 ...-ep0-increment-actual-on-bounced-ep0-case.patch |    41 -
 .../0057-net-fix-proc-net-dev-regression.patch     |   185 -
 ...fail-unchecked-creates-of-non-special-fil.patch |    75 -
 ...stop-and-restart-queue-on-every-TX-packet.patch |    65 -
 ...cp-allow-splice-to-build-full-TSO-packets.patch |   129 -
 ...struct-sctp_event_subscribe-to-grow-witho.patch |    56 -
 ...ot-send-queries-on-multicast-group-leaves.patch |   199 -
 ...63-ipv6-fix-array-index-in-ip6_mc_add_src.patch |    39 -
 ...t-Check-input-from-user-before-allocating.patch |    78 -
 ...perly-unset-current_arp_slave-on-slave-li.patch |    45 -
 ...m-prevent-a-possible-kernel-bug-due-to-mi.patch |    37 -
 ...0067-netlink-fix-races-after-skb-queueing.patch |    82 -
 ...0068-net-fix-a-race-in-sock_queue_err_skb.patch |    43 -
 ..._rcv_rtt_update-use-of-an-unscaled-RTT-sa.patch |    50 -
 ...-pskb_expand_head-to-get-maximum-tailroom.patch |    48 -
 .../3.2.17/0071-tcp-fix-tcp_trim_head.patch        |    57 -
 ...d-order-1-allocations-on-wifi-and-tx-path.patch |   134 -
 ...l1-fix-kernel-panic-in-case-of-DMA-errors.patch |   106 -
 ...intr-mask-after-its-handler-is-registered.patch |    67 -
 ...smsc911x-fix-skb-handling-in-receive-path.patch |    78 -
 ...t-ks8851_mll-fix-rx-frame-buffer-overflow.patch |    46 -
 ...d-gred-Fix-oops-in-gred_dump-in-WRED-mode.patch |    54 -
 .../3.2.17/0078-net-usb-smsc75xx-fix-mtu.patch     |    39 -
 .../3.2.17/0079-dummy-Add-ndo_uninit.patch         |    55 -
 ...tcp_grow_window-for-large-incoming-frames.patch |    40 -
 ...-not-leak-net_generic-data-on-failed-init.patch |    79 -
 ...-t-copy-too-much-in-netdev_set_mac_addres.patch |    36 -
 ...et-ax25-Reorder-ax25_exit-to-remove-races.patch |    58 -
 ..._MAXSEG-for-established-IPv6-passive-sock.patch |    41 -
 ...-hostname-in-brackets-when-needed-in-nfs_.patch |    49 -
 ...e-that-the-LOCK-code-sets-exception-inode.patch |    54 -
 ...e-that-we-check-lock-exclusive-shared-typ.patch |    45 -
 ...open-context-on-error-in-nfs_pagein_multi.patch |    30 -
 ...-open-context-on-error-in-nfs_flush_multi.patch |    30 -
 ...de-Fix-sysfs-warning-during-module-unload.patch |    71 -
 ...IC-code-touches-invalid-MSR-on-P5-class-m.patch |    91 -
 ...fs-work-around-unhappy-compat-problem-on-.patch |   135 -
 ...ly-check-for-pending-events-when-restorin.patch |    47 -
 ...-crash-when-booting-with-ACPI-hotplug-CPU.patch |    99 -
 ...nsure-power-gets-managed-for-line-widgets.patch |    43 -
 ...-Improve-sequencing-of-AIF-channel-enable.patch |   389 -
 ...t_hdmac-remove-clear-on-read-in-atc_dosta.patch |    40 -
 ...OPS-when-build_sched_domains-percpu-alloc.patch |    85 -
 ...-stacktrace-of-latency-tracers-irqsoff-an.patch |    62 -
 ...h_power-fix-bogus-values-with-current-BIO.patch |    93 -
 ...wmon-fam15h_power-Fix-pci_device_id-array.patch |    49 -
 ...ell-laptop-Terminate-quirks-list-properly.patch |    32 -
 ...kms-need-to-set-up-ss-on-DP-bridges-as-we.patch |    40 -
 ...ndle-input-output-sdvo-timings-separately.patch |   182 -
 ...drm-i915-relative_constants_mode-race-fix.patch |    78 -
 ...drm-i915-Force-sync-command-ordering-Gen6.patch |    98 -
 ...t-the-Stencil-Cache-eviction-policy-to-no.patch |    69 -
 ...x-integer-overflow-in-i915_gem_execbuffer.patch |    40 -
 ...x-integer-overflow-in-i915_gem_do_execbuf.patch |    41 -
 ...11-ensure-interface-is-up-in-various-APIs.patch |   152 -
 ...d-external-mic-quirk-for-Asus-Zenbook-UX3.patch |    37 -
 ...-fix-race-leading-leading-to-memory-corru.patch |    64 -
 ...ix-crash-during-suspend-on-ASUS-computers.patch |    97 -
 ...storage-gadgets-send-wrong-error-code-for.patch |    55 -
 ...dget-dummy-do-not-call-pullup-on-udc_stop.patch |    35 -
 ...uvc-uvc_request_data-length-field-must-be.patch |    50 -
 ...es-add-a-packetized-pipe-mode-for-writing.patch |   143 -
 ...-the-autofsv5-packet-file-descriptor-use-.patch |   117 -
 ...errata-only-handle-ARM-erratum-326103-on-.patch |    89 -
 ...l2x0-only-apply-workaround-for-erratum-75.patch |    62 -
 ...l2x0-only-write-to-debug-registers-on-PL3.patch |    69 -
 ...-1-tls-remove-covert-channel-via-TPIDRURW.patch |    52 -
 ...hotplug-copy-the-affinity-mask-when-force.patch |    53 -
 ...sas_find_bcast_phy-in-the-presence-of-vac.patch |    59 -
 ...false-positive-device-attached-conditions.patch |    48 -
 .../0126-efi-Add-new-variable-attributes.patch     |    45 -
 .../0127-efi-Validate-UEFI-boot-variables.patch    |   231 -
 ...e-fix-the-number-of-pages-used-for-hibern.patch |   100 -
 ...15-enable-dip-before-writing-data-on-gen4.patch |    50 -
 ...0130-sched-Fix-nohz-load-accounting-again.patch |   133 -
 .../0131-efivars-Improve-variable-validation.patch |   142 -
 ...0132-fs-cifs-fix-parsing-of-dfs-referrals.patch |    49 -
 ...seqcount_begin-to-use-ACCESS_ONCE-for-seq.patch |    51 -
 ...34-hwmon-coretemp-Increase-CPU-core-limit.patch |    35 -
 ...5-nouveau-initialise-has_optimus-variable.patch |    31 -
 ...136-hwmon-coretemp-fix-oops-on-cpu-unplug.patch |    77 -
 ...-old-error-history-when-counting-probe-tr.patch |    42 -
 ...load-config-after-successful-initializati.patch |    48 -
 .../0139-i2c-pnx-Disable-clk-in-suspend.patch      |    38 -
 ...-race-condition-in-the-command-completion.patch |    74 -
 ...0211-fix-AP-mode-EAP-tx-for-VLAN-stations.patch |    38 -
 .../3.2.17/0142-rtlwifi-Fix-oops-on-unload.patch   |    67 -
 ...ix-crash-on-remove-due-to-premature-kfree.patch |    40 -
 ...crash-on-remove-due-to-leftover-work-item.patch |    35 -
 ...45-iwlwifi-do-not-nulify-ctx-vif-on-reset.patch |    85 -
 ...46-iwlwifi-fix-hardware-queue-programming.patch |   114 -
 ...47-hfsplus-Fix-potential-buffer-overflows.patch |    79 -
 .../0148-ASoC-tlv312aic23-unbreak-resume.patch     |    51 -
 ...m-generic-Use-__BITS_PER_LONG-in-statfs.h.patch |    37 -
 ...0150-x86-relocs-Remove-an-unused-variable.patch |    41 -
 ...Add-extra-clobber-registers-for-assembly-.patch |    43 -
 ...SMP-prevent-use-of-the-console-when-using.patch |    58 -
 ...drm-i915-disable-sdvo-hotplug-on-i945g-gm.patch |    56 -
 ...-no-set-Stencil-Cache-eviction-LRA-w-a-on.patch |    51 -
 ...-crashes-when-trying-to-see-non-existent-.patch |    63 -
 ...-t-use-PCI-BIOS-service-for-configuration.patch |    53 -
 ...don-t-use-PMD_SIZE-as-embedded-atom_size-.patch |    68 -
 ...-allow-up-to-uCode-API-6-for-6000-devices.patch |    64 -
 ...wlwifi-use-correct-released-ucode-version.patch |   159 -
 ...wlwifi-use-6000G2B-for-6030-device-series.patch |    44 -
 ...-simplify-the-we-have-changed-execution-d.patch |    75 -
 ...-fix-the-parent-has-changed-security-doma.patch |    77 -
 ...12u-Fix-regression-caused-by-commit-8c213.patch |    66 -
 ...rk-link-down-on-startup-and-let-PHY-inter.patch |    46 -
 .../3.2.17/0165-Linux-3.2.17.patch                 |    24 -
 ...ix-the-logic-to-ensure-new-voltage-settin.patch |    35 -
 ...vert-ARM-OMAP-ctrl-Fix-CONTROL_DSIPHY-reg.patch |    52 -
 ...oaudio-Remove-incorrect-part-of-assertion.patch |    46 -
 ...ARM-orion5x-Fix-GPIO-enable-bits-for-MPP9.patch |    41 -
 ...ssen-CPU-usage-when-waiting-for-chip-to-r.patch |    56 -
 ..._embed_first_chunk-should-free-unused-par.patch |    57 -
 ...event-BUG_ON-in-hugetlb_fault-hugetlb_cow.patch |    46 -
 ...spaces-pid_ns-fix-leakage-on-fork-failure.patch |    49 -
 ...m-fix-sign-extend-problem-in-__free_pages.patch |    49 -
 ...ix-tx-transfer-padding-for-full-speed-USB.patch |    45 -
 .../3.2.18/0011-netem-fix-possible-skb-leak.patch  |    39 -
 ...gister_netdevice_notifier-unregister-the-.patch |    64 -
 ...lock-socket-lock-before-returning-from-l2.patch |    47 -
 ...2-propogate-rx-hash-when-packet-is-copied.patch |    38 -
 ...ceive-length-error-in-mixed-non-VLAN-VLAN.patch |   136 -
 .../3.2.18/0016-sungem-Fix-WakeOnLan.patch         |    35 -
 ...-panic-from-reserved-statblk-field-access.patch |    67 -
 ...tcp-fix-infinite-cwnd-in-tcp_complete_cwr.patch |    46 -
 ...p-change-tcp_adv_win_scale-and-tcp_rmem-2.patch |   124 -
 ...mac-pass-missing-argument-to-brcms_b_mute.patch |    43 -
 ...fix-Auto-Power-Saving-in-ip101a_config_in.patch |    43 -
 .../0022-NFSv4-Revalidate-uid-gid-after-open.patch |    74 -
 ...-incorrect-se_lun_acl-release-for-dynamic.patch |    70 -
 .../0024-marvell-cam-fix-an-ARM-build-error.patch  |    34 -
 .../3.2.18/0025-rc-Postpone-ISR-registration.patch |   325 -
 ...gnore-bogus-union-descriptor-for-RNDIS-de.patch |    75 -
 ...Fix-lock-acquisition-order-bug-in-gc-path.patch |   103 -
 ...5p-fimc-Fix-locking-in-subdev-set_crop-op.patch |    35 -
 ...eck-if-scsi_dh-module-already-loaded-befo.patch |    39 -
 ...o-not-clobber-g2-in-xcall_fetch_glob_regs.patch |    58 -
 ...ssing-spin_lock_init-in-gpio-ml-ioh-drive.patch |    33 -
 ...f-pch-Modify-pci-bus-number-dynamically-t.patch |    32 -
 ...f-pch-Fix-issue-for-transmitting-over-4KB.patch |   187 -
 ...f-pch-supports-a-spi-mode-setup-and-bit-o.patch |    34 -
 ...f-pch-add-recovery-processing-in-case-wai.patch |    43 -
 ...d-deadlock-on-sync-mounted-FS-w-o-journal.patch |    64 -
 .../3.2.18/0037-ia64-Add-accept4-syscall.patch     |    57 -
 ...mac-fix-endless-retry-of-A-MPDU-transmiss.patch |    60 -
 ...vfp-ensure-preemption-is-disabled-when-en.patch |    73 -
 ...SPC-2-RELEASE-bug-for-multi-session-iSCSI.patch |    42 -
 ...-mv_cesa-requires-on-CRYPTO_HASH-to-build.patch |    51 -
 ...t-Fix-power-map-for-speaker-pins-with-som.patch |    46 -
 .../0043-ASoC-wm8994-Fix-AIF2ADC-power-down.patch  |    29 -
 ...fix-skb-traversing-races-during-unlink-v2.patch |   222 -
 ...dd-Novatel-USB551L-device-IDs-for-FLAG_WW.patch |    58 -
 ...-VM_GROWSDOWN-mmaps-extending-below-FIRST.patch |    33 -
 ...pply-commit-74fca9da0-to-the-compat-signa.patch |    49 -
 ...timer_sync-to-mddev_suspend-fix-nasty-pan.patch |    38 -
 ...bug-in-handling-of-FILEIO-block_device-re.patch |    78 -
 ...sendpages-must-try-to-push-data-out-on-oo.patch |    57 -
 ...1-e1000-Prevent-reset-task-killing-itself.patch |    40 -
 ...052-mtd-map.h-fix-arm-cross-build-failure.patch |    37 -
 ...tmmac-Fix-compilation-error-in-mmc_core.c.patch |    38 -
 .../0054-pktgen-fix-crash-at-module-unload.patch   |    72 -
 .../0055-pktgen-fix-module-unload-for-good.patch   |    48 -
 .../3.2.18/0056-Linux-3.2.18.patch                 |    24 -
 ...ifier-Flush-TLBs-before-releasing-mmu_loc.patch |    79 -
 ...all-vcpus-are-consistent-with-in-kernel-i.patch |   110 -
 ...-lock-slots_lock-around-device-assignment.patch |    83 -
 ...nVMX-Fix-erroneous-exception-bitmap-check.patch |    36 -
 ...M-VMX-vmx_set_cr0-expects-kvm-srcu-locked.patch |    35 -
 ...-store-status-after-handling-STOP_ON_STOP.patch |    65 -
 ...90-Sanitize-fpc-registers-for-KVM_SET_FPU.patch |    36 -
 ...008-bio-don-t-overflow-in-bio_get_nr_vecs.patch |    61 -
 ...allocation-failure-due-to-bio_get_nr_vecs.patch |    49 -
 ...uffer-overflow-when-printing-partition-UU.patch |    98 -
 .../3.2.19/0011-fix-PA1.1-oops-on-boot.patch       |    43 -
 ...x-crash-in-flush_icache_page_asm-on-PA1.1.patch |    91 -
 ...13-fix-panic-on-prefetch-NULL-on-PA7300LC.patch |    39 -
 ...h-tile-Kconfig-remove-pointless-M386-test.patch |    31 -
 ...15-tilegx-enable-SYSCALL_WRAPPERS-support.patch |    39 -
 .../0016-mtd-sm_ftl-fix-typo-in-major-number.patch |    33 -
 ...017-hpsa-Fix-problem-with-MSA2xxx-devices.patch |    77 -
 ...sel_make_bools-errors-don-t-leave-inconsi.patch |    34 -
 ...rn-if-db.txt-is-empty-with-CONFIG_CFG8021.patch |    86 -
 ...-for-panic-happening-because-of-improper-.patch |    60 -
 ...isdn-gigaset-ratelimit-CAPI-message-dumps.patch |    87 -
 ...n-gigaset-fix-CAPI-disconnect-B3-handling.patch |    46 -
 ...t-improve-error-handling-querying-firmwar.patch |    47 -
 ...e-compat-keyctl-syscall-wrapper-on-Sparc6.patch |    60 -
 ...-mismatch-between-locked-and-pinned-pages.patch |    38 -
 ...ore-Release-regulator-regulator-supplies-.patch |    34 -
 ...u-Fix-off-by-one-in-dmar_get_fault_reason.patch |    41 -
 ...Always-wake-up-waiters-in-c4iw_peer_abort.patch |    38 -
 ...b4-Drop-peer_abort-when-no-endpoint-found.patch |    37 -
 .../0030-s390-pfault-fix-task-state-race.patch     |    82 -
 ...m-parameter-validation-on-single-controll.patch |    46 -
 ...g-allocations-called-very-early-during-bo.patch |    69 -
 ...O-use-the-proper-rw_verify_area-area-help.patch |   109 -
 ...ocs-update-HOWTO-for-2.6.x-3.x-versioning.patch |   100 -
 ...ging-comedi-comedi_fops.c-add-missing-vfr.patch |    34 -
 ...-move-usb_translate_errors-to-linux-usb.h.patch |    70 -
 .../0037-USB-cdc-wdm-sanitize-error-returns.patch  |    33 -
 .../3.2.19/0038-USB-cdc-wdm-fix-memory-leak.patch  |    35 -
 .../0039-8250_pci-fix-pch-uart-matching.patch      |   102 -
 ...d-USB_QUIRK_RESET_RESUME-for-M-Audio-88es.patch |    36 -
 ...usbtest-two-super-speed-fixes-for-usbtest.patch |    60 -
 .../0042-8250.c-less-than-2400-baud-fix.patch      |    51 -
 ...-usb-xhci-Handle-COMP_TX_ERR-for-isoc-tds.patch |    49 -
 ...oid-dead-ports-when-CONFIG_USB_XHCI_HCD-n.patch |    63 -
 ...nx-Point-to-list-of-Intel-switchable-host.patch |    81 -
 ...fsl_udc_core-dTD-s-next-dtd-pointer-need-.patch |    44 -
 ...7-Add-missing-call-to-uart_update_timeout.patch |    36 -
 ...o-add-support-for-Physik-Instrumente-E-86.patch |    58 -
 ...t-fix-length-argument-of-out-function-cal.patch |    36 -
 .../0050-HID-wiimote-Fix-IR-data-parser.patch      |    60 -
 ...-unusual_devs-entry-for-Yarvik-PMP400-MP4.patch |    41 -
 ...91-add-a-reset-function-to-fix-race-condi.patch |    63 -
 ...h-read-all-32-bits-of-report-type-bitfiel.patch |    70 -
 ...ti_usb_3410_5052-Add-support-for-the-FRI2.patch |    77 -
 ...-poll-must-return-POLLHUP-if-device-is-go.patch |    38 -
 ...USB-cdc-wdm-add-debug-messages-on-cleanup.patch |    54 -
 ...-cannot-use-dev_printk-when-device-is-gon.patch |    66 -
 ...y-Allow-uart_register-unregister-register.patch |    33 -
 ...kip-nr_running-sanity-check-in-worker_ent.patch |    51 -
 ...-new-short-TX-quirk-for-Fresco-Logic-host.patch |   129 -
 ...ore-enable-USB2-LPM-if-port-suspend-fails.patch |    43 -
 ...date-event-scheduling-constraints-for-AMD.patch |    62 -
 ...fix-resource-leak-in-xhci-power-loss-path.patch |    74 -
 ...set-reserved-command-ring-TRBs-on-cleanup.patch |    39 -
 .../3.2.19/0065-USB-Remove-races-in-devio.c.patch  |   132 -
 ...FP_NOIO-to-allocate-bio-for-flush-request.patch |    37 -
 ...7-um-Implement-a-custom-pte_same-function.patch |    41 -
 .../3.2.19/0068-um-Fix-__swp_type.patch            |    39 -
 ...n-t-do-discard-if-no-discard-option-added.patch |    41 -
 ...-Input-wacom-relax-Bamboo-stylus-ID-check.patch |    42 -
 ...i-Detect-Marvell-88SE9172-SATA-controller.patch |    35 -
 ...drop-unused-parameter-from-flush_cache_us.patch |    59 -
 ...Do-not-call-flush_cache_user_range-with-m.patch |    45 -
 ...ptop-Enable-keyboard-backlight-by-default.patch |    48 -
 ...try-mounting-device-as-nfs-root-unless-ty.patch |    54 -
 ...mcg-free-spare-array-to-avoid-memory-leak.patch |    40 -
 ...RT-signal-mask-corruption-via-sigprocmask.patch |   107 -
 ...error-handling-on-inode-bitmap-corruption.patch |    43 -
 ...error-handling-on-inode-bitmap-corruption.patch |    42 -
 ...dd-Sony-Vaio-VPCCW29FX-to-nonvs-blacklist.patch |    42 -
 ...QF_SHARED-back-in-for-the-non-MSI-X-inter.patch |    42 -
 ...e-up-s_wait_unfrozen-when-freeze_fs-fails.patch |    42 -
 ...cifs-fix-revalidation-test-in-cifs_llseek.patch |    35 -
 .../3.2.19/0084-dl2k-Clean-up-rio_ioctl.patch      |   123 -
 ...C-fix-NULL-pointer-dereference-in-DSS2-VE.patch |    41 -
 ...t-change-timeout-value-50msec-to-1000msec.patch |    36 -
 ...N7-Use-HW-scheduler-for-fixed-function-sh.patch |   100 -
 ...void-spurious-calls-to-interrupt-handlers.patch |    99 -
 ...autodetection-support-for-USB-ID-2040-c0a.patch |    31 -
 .../0090-uvcvideo-Fix-ENUMINPUT-handling.patch     |    34 -
 ...oid-a-double-read-of-PCH_IIR-during-inter.patch |    63 -
 ...ix-error-due-to-MMIO-access-with-SSB-unpo.patch |    35 -
 ...x-Prevent-NULL-pointer-deref-in-demux-han.patch |    45 -
 ...n-t-clobber-the-pipe-param-in-sanitize_mo.patch |    52 -
 ...-spi-reference-correct-pdata-in-fsl_spi_c.patch |    42 -
 ...ot-map-the-same-GSI-twice-in-PVHVM-guests.patch |    90 -
 ...-nouveau_set_bo_placement-takes-TTM-flags.patch |    32 -
 ...E-Fix-vm86-handling-for-32bit-mce-handler.patch |    43 -
 ...-check-for-processor-context-when-machine.patch |    53 -
 ...e-fix-bug-where-fls-0-was-not-returning-0.patch |    50 -
 ...-Add-device-info-into-list-before-doing-c.patch |    63 -
 ...l-terminate-filename-passed-to-ethtool_op.patch |    55 -
 ...-mark-buffers-beyond-end-of-disk-as-mappe.patch |   157 -
 ...-rtc-pl031.c-configure-correct-wday-for-2.patch |    63 -
 ...allocate-USB-read-buffers-and-eliminate-k.patch |   136 -
 ...6-NFS4-fix-compile-warnings-in-nfs4proc.c.patch |    39 -
 ...d-reading-past-buffer-when-calling-GETACL.patch |   123 -
 ...void-beyond-bounds-copy-while-caching-ACL.patch |    88 -
 ...otify-transfer-complete-after-clearing-st.patch |    73 -
 ...-i2c-davinci-Free-requested-IRQ-in-remove.patch |    33 -
 ...e-16-bit-real-mode-code-support-for-reloc.patch |  1651 -
 ...Workaround-for-binutils-2.22.52.0.1-secti.patch |    43 -
 ...When-printing-an-error-say-relative-or-ab.patch |    69 -
 .../3.2.19/0114-x86-relocs-Build-clean-fix.patch   |    33 -
 ...cs-Whitelist-more-symbols-for-ld-bug-work.patch |    73 -
 ...Add-jiffies-and-jiffies_64-to-the-relativ.patch |    42 -
 .../3.2.19/0117-Linux-3.2.19.patch                 |    24 -
 ...mtdoops-fix-the-oops_page_used-array-size.patch |    39 -
 ...mtdoops-skip-reading-initially-bad-blocks.patch |    36 -
 ...devs-don-t-increase-open-count-on-error-p.patch |    85 -
 ...tresstest-bail-out-if-device-has-not-enou.patch |    60 -
 ...-interface.c-fix-alarm-rollover-when-day-.patch |    53 -
 ...dd-missing-ext4_resize_end-on-error-paths.patch |   109 -
 ...undefined-behavior-in-ext4_fill_flex_info.patch |    74 -
 ...sb-us122l-Delete-calls-to-preempt_disable.patch |    54 -
 ...-Fix-master-control-for-Cirrus-Logic-421X.patch |    57 -
 ...SA-HDA-Fix-automute-for-Cirrus-Logic-421x.patch |    48 -
 ...e1724-Check-for-ac97-to-avoid-kernel-oops.patch |    38 -
 ...dio-Avoid-flood-of-frame-active-debug-mes.patch |    46 -
 ...e-auto-parser-for-HP-laptops-with-cx20459.patch |    37 -
 ...turn-the-error-from-get_wcaps_type-for-in.patch |    58 -
 ...x-the-detection-of-Loopback-Mixing-contro.patch |    42 -
 ...x-the-lost-power-setup-of-seconary-pins-a.patch |    92 -
 ...kms-workaround-invalid-AVI-infoframe-chec.patch |    43 -
 ...n-kms-disable-writeback-on-pre-R300-asics.patch |    40 -
 ...disabling-PCI-bus-mastering-on-big-endian.patch |    70 -
 ...FS-errors-are-communicated-on-iodata-pnfs.patch |    50 -
 ...1-pnfs-obj-Must-return-layout-on-IO-error.patch |    92 -
 .../3.2.2/0022-NFS-Retry-mounting-NFSROOT.patch    |    94 -
 ...4.1-fix-backchannel-slotid-off-by-one-bug.patch |    30 -
 ...fix-recent-breakage-to-NFS-error-handling.patch |    60 -
 ...FSv4-include-bitmap-in-nfsv4-get-acl-data.patch |   313 -
 ...ression-in-handling-of-context-option-in-.patch |   147 -
 ...ximum-global-item-tag-report-size-to-96-b.patch |    35 -
 .../0028-HID-wiimote-Select-INPUT_FF_MEMLESS.patch |    33 -
 ...ix-missing-scrub-when-there-is-a-bit-flip.patch |    81 -
 ...0030-UBI-fix-use-after-free-on-error-path.patch |    52 -
 .../0031-PCI-Fix-PCI_EXP_TYPE_RC_EC-value.patch    |    32 -
 ...able-msi-interrupts-when-we-initialize-a-.patch |    53 -
 ...ore-CPU-non-addressable-_CRS-reserved-mem.patch |    65 -
 ...x86-PCI-amd-factor-out-MMCONFIG-discovery.patch |   160 -
 ...build-amd_bus.o-only-when-CONFIG_AMD_NB-y.patch |    37 -
 ...s-Release-spinlock-for-the-raid-device-li.patch |    56 -
 ...s-Fix-for-memory-allocation-error-for-lar.patch |   177 -
 ...Reject-replies-with-payload-XENSTORE_PAYL.patch |    78 -
 ...rform-bad-block-tests-for-WriteMostly-dev.patch |    56 -
 ...040-ima-free-duplicate-measurement-memory.patch |    52 -
 .../0041-ima-fix-invalid-memory-reference.patch    |    68 -
 ...ub-fix-a-possible-memleak-in-__slab_alloc.patch |    47 -
 ...ound-Dell-1536-1546-BIOS-MMCONFIG-bug-tha.patch |   101 -
 ...tting-custom-MAC-address-on-Asix-88178-de.patch |    45 -
 ...tting-custom-MAC-address-on-Asix-88772-de.patch |    53 -
 ...46-include-linux-crash_dump.h-needs-elf.h.patch |    54 -
 ...ix-BUG-caused-by-failure-to-check-skb-all.patch |    44 -
 ...x-rx-key-NULL-pointer-dereference-in-prom.patch |    52 -
 ...egression-in-channelwidth-switch-at-the-s.patch |    68 -
 ...em_cgroup_replace_page_cache-to-fix-LRU-i.patch |   179 -
 .../0051-x86-Fix-mmap-random-address-range.patch   |    47 -
 .../0052-UBI-fix-nameless-volumes-handling.patch   |    37 -
 .../3.2.2/0053-UBI-fix-debugging-messages.patch    |    42 -
 .../3.2.2/0054-UBI-make-vid_hdr-non-static.patch   |    36 -
 .../3.2.2/0055-UBIFS-fix-debugging-messages.patch  |    41 -
 ...UBIFS-make-debugging-messages-light-again.patch |    57 -
 ...ror-value-returned-by-several-bus-drivers.patch |   197 -
 ...8-mmc-core-Fix-voltage-select-in-DDR-mode.patch |    39 -
 ...ix-tuning-timer-incorrect-setting-when-su.patch |    39 -
 .../0060-mmc-sd-Fix-SDR12-timing-regression.patch  |    38 -
 ...2-ioctl-integer-overflow-in-video_usercop.patch |    54 -
 ...s-in-a-batch-should-not-be-accounted-as-a.patch |    71 -
 ...race-Fix-unregister-ftrace_ops-accounting.patch |   227 -
 ...eamline-config.pl-Simplify-backslash-line.patch |    68 -
 ...eamline-config.pl-Fix-parsing-Makefile-wi.patch |    98 -
 ...double-free-on-shutdown-of-nfsd-after-cha.patch |    60 -
 ...svcrpc-destroy-server-sockets-all-at-once.patch |    85 -
 ...-avoid-memory-corruption-on-pool-shutdown.patch |   156 -
 .../3.2.2/0069-nfsd4-fix-lockowner-matching.patch  |    59 -
 ...d-Fix-oops-when-parsing-a-0-length-export.patch |    82 -
 ...notify-don-t-BUG-in-fsnotify_destroy_mark.patch |    61 -
 ...Update-Boot-messages-for-SGI-UV2-platform.patch |    44 -
 ...t-Fix-handling-of-elf64-big-endian-object.patch |    46 -
 ...ix-integer-overflow-in-uvc_ioctl_ctrl_map.patch |    62 -
 ...cache-use-a-dispose-list-in-select_parent.patch |   172 -
 .../0076-fix-shrink_dcache_parent-livelock.patch   |   130 -
 ...fsblock-acquire-im_lock-in-_preload_range.patch |    64 -
 ...ock-don-t-spinlock-when-freeing-block_dev.patch |    46 -
 .../0079-pnfsblock-limit-bio-page-count.patch      |    51 -
 ...0211-revert-on-channel-work-optimisations.patch |   635 -
 ...-HID-hid-multitouch-add-another-eGalax-id.patch |    60 -
 ...touch-cleanup-with-eGalax-PID-definitions.patch |   112 -
 ...itouch-Add-egalax-ID-for-Acer-Iconia-W500.patch |    62 -
 ...ouch-add-support-for-the-MSI-Windpad-110W.patch |    49 -
 ...titouch-add-support-for-new-Hanvon-panels.patch |    63 -
 ...uch-add-support-of-Atmel-multitouch-panel.patch |    63 -
 ...0087-HID-multitouch-add-support-for-3M-32.patch |    45 -
 ...ltitouch-add-support-9-new-Xiroku-devices.patch |   117 -
 ...-fix-cputime-overflow-in-uptime_proc_show.patch |    49 -
 ...0090-block-add-and-use-scsi_blk_cmd_ioctl.patch |   166 -
 ...SCSI-passthrough-ioctls-on-partition-devi.patch |   166 -
 ...orward-ioctls-from-logical-volumes-to-the.patch |    90 -
 ...oc-clean-up-and-fix-proc-pid-mem-handling.patch |   271 -
 ...Use-LPIB-position-fix-for-Macbook-Pro-7-1.patch |    35 -
 ...oso-Xonar-DS-fix-polarity-of-front-output.patch |    37 -
 ...x-internal-microphone-on-Dell-Studio-16-X.patch |    36 -
 ...97-TOMOYO-Accept-000-as-a-valid-character.patch |    43 -
 ...8-intel-idle-Make-idle-driver-more-robust.patch |    53 -
 .../3.2.2/0099-intel_idle-fix-API-misuse.patch     |    56 -
 .../0100-ACPI-Store-SRAT-table-revision.patch      |    66 -
 ...e-SRAT-table-rev-to-use-8bit-or-32bit-PXM.patch |    50 -
 ...se-SRAT-table-rev-to-use-8bit-or-16-32bit.patch |    66 -
 ...back-the-call-to-acpi_os_validate_address.patch |    59 -
 ...essor-fix-acpi_get_cpuid-for-UP-processor.patch |    75 -
 ...ix-NULL-pointer-dereference-in-slave_dest.patch |    37 -
 ...t-Set-response-format-in-INQUIRY-response.patch |    44 -
 ...additional-sense-length-field-in-sense-da.patch |   177 -
 ...idate-the-mapped-core-over-suspend-resume.patch |    44 -
 ...-cx23885-dvb-check-if-dvb_attach-succeded.patch |    36 -
 ...ix-don-t-duplicate-xc4000-entry-for-radio.patch |    95 -
 ...umberspace-conflict-between-xc4000-and-pt.patch |    42 -
 ...-module-Fix-disabling-tracepoints-with-ta.patch |    50 -
 ...-new-UV2-hardware-by-using-native-UV2-bro.patch |   350 -
 ...ix-BAU-destination-timeout-initialization.patch |    66 -
 .../3.2.2/0115-x86-UV2-Work-around-BAU-bug.patch   |   570 -
 ...fix-interpretation-of-the-rx-KeyMiss-flag.patch |    61 -
 ...800pci-fix-spurious-interrupts-generation.patch |    86 -
 ...x-endian-conversion-issue-in-discard-code.patch |    45 -
 ...20t-modified-the-setting-of-transfer-rate.patch |    33 -
 ...e-fix-off-by-one-index-into-syscall-table.patch |    46 -
 ...default-wsize-when-unix-extensions-are-no.patch |    67 -
 ...2-kprobes-initialize-before-using-a-hlist.patch |    49 -
 ...oc-clear_refs-do-not-clear-reserved-pages.patch |    64 -
 ...-ptr-dereference-in-__count_immobile_page.patch |    91 -
 .../3.2.2/0125-iwlagn-check-for-SMPS-mode.patch    |    50 -
 ...945-fix-hw-passive-scan-on-radar-channels.patch |    60 -
 ...SHM_UNLOCK-fix-long-unpreemptible-section.patch |   186 -
 ...fix-Unevictable-pages-stranded-after-swap.patch |   342 -
 .../3.2.2/0129-Linux-3.2.2.patch                   |    24 -
 ...-amd-Add-workaround-for-event-log-erratum.patch |    68 -
 ...XX-Add-missing-include-for-bcm63xx_gpio.h.patch |    52 -
 ...e-backup-intent-search-flags-during-searc.patch |   152 -
 ...loss-of-task-tk_status-after-rpc_delay-ca.patch |    63 -
 ...5-exofs-Fix-CRASH-on-very-early-IO-errors.patch |    49 -
 ...ops-while-traversing-open-file-list-try-4.patch |   141 -
 ...ltipath-starvation-when-scsi-host-is-busy.patch |    61 -
 ...fix-compilation-by-adding-gpiolib-support.patch |   210 -
 ...operly-handle-interlaced-bit-for-sdvo-dtd.patch |    78 -
 ...able-vdd-when-switching-off-the-eDP-panel.patch |    97 -
 ...dd-Clientron-E830-to-the-ignore-LVDS-list.patch |    37 -
 ...nore-LVDS-on-hp-t5745-and-hp-st5747-thin-.patch |    54 -
 ...5-no-lvds-quirk-for-HP-t5740e-Thin-Client.patch |    40 -
 ...wait-for-a-vblank-to-pass-after-tv-detect.patch |    66 -
 ...m-i915-Update-GEN6_RP_CONTROL-definitions.patch |    55 -
 ...ways-use-RPNSWREQ-for-turbo-change-reques.patch |    39 -
 .../3.2.20/0017-solos-pci-Fix-DMA-support.patch    |    51 -
 ...aze-Do-not-select-GENERIC_GPIO-by-default.patch |    42 -
 ...ilure-on-32-bit-systems-caused-by-branch-.patch |    49 -
 ...ix-TLB-fault-path-on-PA2.0-narrow-systems.patch |   142 -
 ...i-update-BT-traffic-load-states-correctly.patch |    43 -
 ...fi-do-not-use-shadow-registers-by-default.patch |    84 -
 .../0023-wl1251-fix-oops-on-early-interrupt.patch  |    69 -
 ...FS4ERR_SHARE_DENIED-into-an-EACCES-error-.patch |    37 -
 .../3.2.20/0025-drm-radeon-fix-XFX-quirk.patch     |    40 -
 ...-use-after-free-bug-when-ath_tx_setup_buf.patch |    92 -
 ...x-ADDBA-declined-after-suspend-with-wowla.patch |    53 -
 ...-overflow-in-vma-length-when-copying-mmap.patch |    81 -
 ...-all-swapped-back-pages-in-used-once-logi.patch |    65 -
 ...0-hugetlb-fix-resv_map-leak-in-error-path.patch |   101 -
 ...lloc.c-change-void-into-explict-vm_struct.patch |    63 -
 ...fix-faulty-initialization-in-vmalloc_init.patch |    51 -
 .../3.2.20/0033-fix-scsi_wait_scan.patch           |    44 -
 .../0034-mm-fix-vma_resv_map-NULL-pointer.patch    |    70 -
 ...en-Avoid-NULL-pointer-paravirt-references.patch |    38 -
 ...lub-fix-a-memory-leak-in-get_partial_node.patch |    86 -
 ...-force-ro-mount-if-ext4_setup_super-fails.patch |    45 -
 ...llow-hard-linked-directory-in-ext4_lookup.patch |    38 -
 .../0039-mtd-nand-fix-scan_read_raw_oob.patch      |    33 -
 ...crement-iversion-when-a-file-is-truncated.patch |    48 -
 ...tree-might-be-called-on-subtree-that-had-.patch |    37 -
 ...add-missing-save_error_info-to-ext4_error.patch |    36 -
 ...-ALSA-usb-audio-fix-rate_list-memory-leak.patch |    35 -
 ...dd-ext4_mb_unload_buddy-in-the-error-path.patch |    32 -
 ...-mb_groups-before-tearing-down-the-buddy_.patch |    53 -
 ...eon-fix-bank-information-in-tiling-config.patch |    84 -
 ...properly-program-gart-on-rv740-juniper-cy.patch |    79 -
 ...eon-fix-HD6790-HD6570-backend-programming.patch |    44 -
 .../0049-drm-ttm-Fix-spinlock-imbalance.patch      |    33 -
 ...-Fix-nasty-write-past-alloced-memory-area.patch |    31 -
 ...0051-mtd-of_parts-fix-breakage-in-Kconfig.patch |    37 -
 .../0052-fec_mpc52xx-fix-timestamp-filtering.patch |    34 -
 ...tusb-Add-vendor-specific-ID-0a5c-21f3-for.patch |    44 -
 ...tusb-add-support-for-BCM20702A0-0a5c-21e6.patch |    48 -
 ...uetooth-btusb-Add-USB-device-ID-0a5c-21e8.patch |    47 -
 ...oth-btusb-typo-in-Broadcom-SoftSailing-id.patch |    66 -
 ...tusb-Add-vendor-specific-ID-0489-e042-for.patch |    43 -
 ...uetooth-Add-support-for-Atheros-13d3-3362.patch |    64 -
 ...luetooth-Add-support-for-AR3012-0cf3-e004.patch |    65 -
 ...-Add-Foxconn-Hon-Hai-IDs-for-btusb-module.patch |    71 -
 ...dd-support-for-Foxconn-Hon-Hai-AR5BBU22-0.patch |    94 -
 .../0062-drm-i915-Disable-FBC-on-SandyBridge.patch |    34 -
 ...063-ipv4-Do-not-use-dead-fib_info-entries.patch |    36 -
 ...e-rcu-race-between-free_fib_info-and-ip_r.patch |    92 -
 ...rtable-s-dst-to-NULL-to-avoid-kernel-Oops.patch |   110 -
 .../0066-ipv6-fix-incorrect-ipsec-fragment.patch   |   181 -
 ...ps-in-L2TP-IP-sockets-for-connect-AF_UNSP.patch |   113 -
 .../3.2.20/0068-r8169-missing-barriers.patch       |    47 -
 .../0069-r8169-fix-early-queue-wake-up.patch       |    58 -
 ...8169-fix-unsigned-int-wraparound-with-TSO.patch |    82 -
 ...maintain-namespace-isolation-between-vlan.patch |   138 -
 ...072-sctp-check-cached-dst-before-using-it.patch |    88 -
 ...id-unnecessary-reallocations-in-__skb_cow.patch |    42 -
 ...et-hdr-len-into-account-for-esp-payload-s.patch |   100 -
 ...y-only-refresh-the-sysfs-files-when-perti.patch |    51 -
 ...-Use-O_DSYNC-by-default-for-FILEIO-backen.patch |   188 -
 ...mmu-amd-Cache-pdev-pointer-to-root-bridge.patch |    84 -
 ...-drm-radeon-kms-add-new-Palm-Sumo-PCI-ids.patch |    38 -
 .../0079-drm-radeon-kms-add-new-BTC-PCI-ids.patch  |    37 -
 ...ree-fix-tree-corruption-in-btree_get_prev.patch |    56 -
 .../0081-kbuild-install-kernel-page-flags.h.patch  |    62 -
 ...low-full-size-8021Q-frames-to-be-received.patch |    49 -
 ...-t-trash-state-flags-in-EXT4_IOC_SETFLAGS.patch |    54 -
 ...t4-don-t-set-i_flags-in-EXT4_IOC_SETFLAGS.patch |    34 -
 ...e-free-blocks-calculation-for-ext3-file-s.patch |    76 -
 .../3.2.20/0086-Linux-3.2.20.patch                 |    24 -
 ...rk-the-ringbuffers-as-being-in-the-GTT-do.patch |    44 -
 ...m-i915-hold-forcewake-around-ring-hw-init.patch |   158 -
 ...pin-the-flip-target-if-we-fail-to-queue-t.patch |   166 -
 ...004-drm-i915-fix-up-ivb-plane-3-pageflips.patch |    93 -
 ...char-agp-add-another-Ironlake-host-bridge.patch |    46 -
 .../0006-x86-uv-Fix-UV2-BAU-legacy-mode.patch      |    53 -
 ...ix-kernel-panic-during-kernel-module-load.patch |    70 -
 ...-determine-a-value-for-display_info.bpc-i.patch |    81 -
 ...-default-to-8bpc-for-non-LVDS-panels-if-E.patch |    42 -
 ...-disp-fix-dithering-not-being-enabled-on-.patch |    38 -
 ...11-fuse-fix-stat-call-on-32-bit-platforms.patch |   103 -
 ...-Make-APIC-LVT-thresholding-interrupt-opt.patch |   146 -
 ...enable-CPU-topology-extensions-in-case-BI.patch |    60 -
 ...n-fam15h_power-Increase-output-resolution.patch |    56 -
 ...Fix-the-relax_domain_level-boot-parameter.patch |    65 -
 ...don-t-mess-up-the-SCD-when-removing-a-key.patch |    47 -
 ...-rng-fix-race-condition-leading-to-repeat.patch |    85 -
 ...i-intel-fix-unaligned-cbc-decrypt-for-x86.patch |    46 -
 ...setup-filter-APERFMPERF-cpuid-feature-out.patch |    58 -
 ....1-Fix-a-request-leak-on-the-back-channel.patch |    33 -
 ...ix-BUG-echo_skb-is-occupied-during-transm.patch |    70 -
 ...ix-an-interrupt-thrash-issue-with-c_can-d.patch |    73 -
 ...an-c_can-fix-race-condition-in-c_can_open.patch |    47 -
 .../0024-ARM-i.MX53-Fix-PLL4-base-address.patch    |    33 -
 ...dget-fix-crash-caused-by-dangling-pointer.patch |    50 -
 ...ean-up-remain-on-channel-on-interface-sto.patch |    80 -
 ...0027-rt2x00-use-atomic-variable-for-seqno.patch |   174 -
 ...iwlwifi-disable-WoWLAN-if-CONFIG_PM_SLEEP.patch |    44 -
 ...-Ensure-all-AIFnCLK-events-are-run-from-t.patch |    66 -
 ...-Apply-volume-updates-with-clocks-enabled.patch |   170 -
 ...egister-LEDs-if-mac80211-registration-fai.patch |    35 -
 ...cfg80211-fix-interface-combinations-check.patch |    81 -
 ...-unsafe-using-smp_processor_id-in-preempt.patch |    36 -
 ...et-sierra_net-device-IDs-for-Aircard-320U.patch |    70 -
 ...6-exit-coherency-when-shutting-down-a-cpu.patch |    98 -
 ...x21ads-Fix-overlapping-static-i-o-mapping.patch |    36 -
 ...nnecessary-delegation-returns-in-nfs4_do_.patch |    39 -
 ...-correct-supported-firmware-for-6035-and-.patch |    88 -
 ...able-the-buggy-chain-extension-feature-in.patch |    52 -
 ...40-ALSA-hda-Add-codec-no_jack_detect-flag.patch |    47 -
 ...dd-support-for-Uniwill-ECS-M31EI-notebook.patch |    32 -
 ...ppress-auto-mute-feature-on-some-machines.patch |    93 -
 ...d-another-jack-detection-suppression-for-.patch |    52 -
 ...A-HDA-Pin-fixup-for-Zotac-Z68-motherboard.patch |    56 -
 ...dm-Add-device-id-for-Huawei-3G-LTE-modems.patch |    68 -
 ...B-qcserial-Add-Sierra-Wireless-device-IDs.patch |    41 -
 ...o-Add-support-for-RT-Systems-USB-RTS01-se.patch |    48 -
 ...SB-serial-cp210x-add-Optris-MS-Pro-usb-id.patch |    29 -
 ...sierra-Add-support-for-Sierra-Wireless-Ai.patch |    35 -
 ...option-Updated-Huawei-K4605-has-better-id.patch |    36 -
 ...SB-mct_u232-Fix-incorrect-TIOCMSET-return.patch |    48 -
 .../0052-USB-option-fix-port-data-abuse.patch      |    81 -
 .../3.2.21/0053-USB-option-fix-memory-leak.patch   |    58 -
 .../0054-USB-option-add-more-YUGA-device-ids.patch |    94 -
 ...rn-error-to-initiator-if-SET-TARGET-PORT-.patch |    55 -
 ...D3_DURING_SLEEP-flag-and-revert-151b61284.patch |   179 -
 ...Enforce-USB-driver-and-USB-serial-driver-.patch |   162 -
 ...x-invalid-loop-check-in-xhci_free_tt_info.patch |    89 -
 ...-Don-t-free-endpoints-in-xhci_mem_cleanup.patch |    94 -
 ...se-the-timeout-for-controller-save-restor.patch |    66 -
 .../0061-usb-PS3-EHCI-QH-read-work-around.patch    |    36 -
 .../3.2.21/0062-USB-fix-PS3-EHCI-systems.patch     |    37 -
 ...c-acm-fix-devices-not-unthrottled-on-open.patch |    43 -
 ...B-fix-gathering-of-interface-associations.patch |    88 -
 ...fix-shmem-swapping-when-more-than-8-areas.patch |   102 -
 ...add-some-additional-6xx-7xx-EG-register-i.patch |   121 -
 .../3.2.21/0067-Linux-3.2.21.patch                 |    24 -
 ...iio-ad7606-Re-add-missing-scale-attribute.patch |    37 -
 ...erify-origin-of-netlink-connector-message.patch |    51 -
 ...mce-decoding-crash-after-edac-driver-unlo.patch |   166 -
 ...0004-hwrng-atmel-rng-fix-data-valid-check.patch |    72 -
 .../0005-staging-r8712u-Add-new-USB-IDs.patch      |    32 -
 ...esmc-Limit-key-length-in-warning-messages.patch |    43 -
 ..._atomic-fix-32bit-PAE-pmd-walk-vs-pmd_pop.patch |   218 -
 ...tomic64_read-in-pmd_read_atomic-for-32bit.patch |   125 -
 ...nsure-proper-cache-clearing-for-gc-inodes.patch |    71 -
 ...nish-any-pending-operations-on-the-frameb.patch |   130 -
 ...move-use-of-the-autoreported-ringbuffer-H.patch |    84 -
 .../0012-e1000e-Disable-ASPM-L1-on-82574.patch     |    41 -
 ...ve-special-case-for-82573-82574-ASPM-L1-d.patch |    43 -
 ...-the-fallback-non-IRQ-wait-in-ring-thrott.patch |    39 -
 ..._pstor-Fix-possible-panic-by-NULL-pointer.patch |    72 -
 ...Fix-buffers-staying-in-queued-state-after.patch |    45 -
 ...autodetection-support-for-USB-ID-2040-f5a.patch |    30 -
 ...n-t-return-stack-garbage-from-supports_rb.patch |    36 -
 ...-fbcon-using-nv_two_heads-is-not-a-good-i.patch |    43 -
 ...nstate-missing-mempool_free-in-cell_relea.patch |    55 -
 ...Fix-a-WARNING-on-suspend-resume-with-IBSS.patch |    75 -
 ...0211-fix-potential-deadlock-in-regulatory.patch |   144 -
 .../0023-ath9k-Fix-softlockup-in-AR9485.patch      |    68 -
 ...can-precedence-error-in-c_can_chip_config.patch |    38 -
 ...9k-fix-a-tx-rate-duration-calculation-bug.patch |    41 -
 .../0026-batman-adv-fix-skb-data-assignment.patch  |    42 -
 ...-Should-check-for-IS_ERR-clk-instead-of-N.patch |    33 -
 ...oid-possible-infinite-loop-in-ar9003_get_.patch |    61 -
 ...ove-log_event-debugfs-file-debugging-is-d.patch |    67 -
 ...AMSUNG-Fix-for-S3C2412-EBI-memory-mapping.patch |    36 -
 ...31-USB-option-add-id-for-Cellient-MEN-200.patch |    44 -
 ...rf-use-NR_CPUS-instead-or-nr_cpumask_bits.patch |    44 -
 ...factor-the-deferred-PM_IIR-handling-into-.patch |   107 -
 .../0034-drm-i915-rip-out-the-PM_IIR-WARN.patch    |    60 -
 ...x-eDP-blank-screen-after-S3-resume-on-HP-.patch |    46 -
 ...event-waiting-forever-on-asynchronous-sus.patch |    62 -
 ...ure-Rename-X86_FEATURE_DTS-to-X86_FEATURE.patch |    73 -
 ...w-merging-of-backports-for-serious-user-v.patch |    51 -
 ...ALSA-hda-Add-Realtek-ALC280-codec-support.patch |    34 -
 ...tion-Add-USB-ID-for-Novatel-Ovation-MC551.patch |    41 -
 .../3.2.22/0041-USB-CP210x-Add-10-Device-IDs.patch |    61 -
 ...t-teardown-the-device-before-unregisterin.patch |    58 -
 ...-use-be32_to_cpup-to-handle-the-value-of-.patch |    44 -
 ...acpi_pad-fix-power_saving-thread-deadlock.patch |    66 -
 ...v-only-drop-packets-of-known-wifi-clients.patch |    55 -
 .../3.2.22/0046-Linux-3.2.22.patch                 |    24 -
 .../0001-splice-fix-racy-pipe-buffers-uses.patch   |   298 -
 .../3.2.23/0002-umem-fix-up-unplugging.patch       |    86 -
 ...0003-mwifiex-fix-11n-rx-packet-drop-issue.patch |    88 -
 ...4-mwifiex-fix-WPS-eapol-handshake-failure.patch |    52 -
 ...-Prevent-multiple-buffer-overflows-in-NCI.patch |    52 -
 ...-ath9k-fix-dynamic-WEP-related-regression.patch |    80 -
 ...turn-from-rawsock_release-when-sk-is-NULL.patch |   107 -
 .../0008-rtlwifi-rtl8192cu-New-USB-IDs.patch       |    45 -
 ...ble-serialize_regmode-for-non-PCIE-AR9287.patch |    34 -
 ...rrect-behaviour-on-unrecognised-action-fr.patch |    48 -
 ...C-tlv320aic3x-Fix-codec-pll-configure-bug.patch |    62 -
 ...mon-Use-cpumask-iterator-to-avoid-warning.patch |    56 -
 .../0013-powerpc-kvm-sldi-should-be-sld.patch      |    40 -
 ...on-t-try-to-recovery-unmatched-and-unused.patch |    50 -
 ...-not-add-data_offset-before-call-to-is_ba.patch |    54 -
 ...-ops_run_io-inc-nr_pending-before-calling.patch |    45 -
 ...ix-failure-when-trying-to-repair-a-read-e.patch |    61 -
 ...ck-any-firmware-framebuffers-before-claim.patch |   118 -
 ...nt-data-fix-shadow_info_leak-on-dm_tm_des.patch |    37 -
 ...nt-data-handle-space-map-checker-creation.patch |   182 -
 ...nt-data-fix-allocation-failure-in-space-m.patch |    95 -
 ...da-Fix-power-map-regression-for-HP-dv6-co.patch |    49 -
 ...nge-CPU-ring-buffer-state-from-tracing_cp.patch |    56 -
 ...-wrong-return-values-in-add_virtual_intf-.patch |    93 -
 ...-instead-of-abusing-i-in-udf_load_logical.patch |    35 -
 ...un-away-loop-when-partition-table-length-.patch |    54 -
 ...0027-udf-Fortify-loading-of-sparing-table.patch |   134 -
 .../0028-ARM-fix-rcu-stalls-on-SMP-platforms.patch |    68 -
 ...lidate-data_len-before-allocating-skb-in-.patch |    53 -
 ...e-CIPSO-options-correctly-when-NetLabel-i.patch |    80 -
 ...tp_eth-fix-kernel-panic-on-rmmod-l2tp_eth.patch |    43 -
 .../0032-l2tp-fix-a-race-in-l2tp_ip_sendmsg.patch  |    53 -
 ...fix-checksum-bit-management-on-some-chips.patch |    47 -
 .../3.2.23/0034-be2net-fix-a-race-in-be_xmit.patch |    44 -
 ...-dummy-fix-rcu_sched-self-detected-stalls.patch |    49 -
 .../0036-bonding-Fix-corrupted-queue_mapping.patch |   117 -
 ...thtool-allow-ETHTOOL_GSSET_INFO-for-users.patch |    36 -
 .../0038-netpoll-fix-netpoll_send_udp-bugs.patch   |    77 -
 ...pv6-proc-file-registration-to-end-of-init.patch |   126 -
 ...gn-rtnl_link_ops-to-bridge-devices-create.patch |    62 -
 ...elayed-directory-updates-during-log-repla.patch |    56 -
 ...erver-doesn-t-set-CAP_LARGE_READ_X-cap-de.patch |    60 -
 ...s2-clear-unaligned-io-flag-when-dio-fails.patch |    38 -
 ...ake-kiocb-private-NUll-in-init_sync_kiocb.patch |    39 -
 .../0045-mtd-cafe_nand-fix-an-vs-mistake.patch     |    39 -
 ...m-Hold-a-file-reference-in-madvise_remove.patch |    80 -
 ..._fc-Resolve-suspicious-RCU-usage-warnings.patch |    36 -
 ...O_PATH-file-descriptors-usable-for-fchdir.patch |    56 -
 .../3.2.23/0049-Linux-3.2.23.patch                 |    24 -
 ...ung-laptop-make-the-dmi-check-less-strict.patch |   306 -
 .../3.2.24/0002-raid5-delayed-stripe-fix.patch     |    43 -
 .../3.2.24/0003-tcp-drop-SYN-FIN-messages.patch    |    36 -
 ...3-Apply-short-DMA-frag-workaround-to-5906.patch |    35 -
 ...0005-rtl8187-brightness_set-can-not-sleep.patch |    56 -
 ...s-ipw2x00-add-supported-cipher-suites-to-.patch |   102 -
 ...m-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch |    47 -
 ...ix-operator-precedence-when-enabling-RC6p.patch |    34 -
 ...d-do-not-check-for-ancient-modutils-tools.patch |    47 -
 ...TERMEDIATE-but-not-AMPDU-only-when-tracin.patch |    45 -
 ...limit-the-state-manager-for-lock-reclaim-.patch |    37 -
 ...t4-Report-max_batch_time-option-correctly.patch |    32 -
 ...-fix-use-after-free-bug-in-quota-handling.patch |   464 -
 ...FSv4-Reduce-the-footprint-of-the-idmapper.patch |    69 -
 ...ther-reduce-the-footprint-of-the-idmapper.patch |   131 -
 ...ocopy-fix-offset-calculation-when-buildin.patch |    67 -
 ...tap-zerocopy-fix-truesize-underestimation.patch |    46 -
 ...ocopy-put-page-when-fail-to-get-all-reque.patch |    40 -
 ...ocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch |    53 -
 ...ocopy-validate-vectors-before-building-sk.patch |    84 -
 ...21-KVM-Fix-buffer-overflow-in-kvm_set_irq.patch |    35 -
 ...e-unnecessary-warnings-about-ioctl-to-par.patch |    54 -
 ...epoll-clear-the-tfile_check_list-on-ELOOP.patch |    43 -
 ...ix-missing-iommu_shutdown-initialization-.patch |    45 -
 ...nitialize-dma_ops-for-hotplug-and-sriov-d.patch |    53 -
 ...-Add-support-for-root-hub-port-status-CAS.patch |   170 -
 ...994-Pay-attention-to-the-value-set-when-e.patch |    40 -
 ...Rewrite-and-fix-load-avg-computation-agai.patch |   462 -
 .../3.2.24/0029-USB-option-add-ZTE-MF60.patch      |    70 -
 .../0030-USB-option-Add-MEDIATEK-product-ids.patch |    55 -
 ...B-cdc-wdm-fix-lockup-on-error-in-wdm_read.patch |    78 -
 ...d-nandsim-don-t-open-code-a-do_div-helper.patch |    94 -
 ...lease-semaphore-on-error-path-dvb_registe.patch |    33 -
 ...core-use-global-ID-to-register-hwspinlock.patch |    52 -
 ...taskfile-corruption-in-sas_ata_qc_fill_rt.patch |   116 -
 ...x-use-after-free-bug-in-RAID1-data-check-.patch |    58 -
 ...ix-crash-during-suspend-on-ASUS-computers.patch |   166 -
 ...lug-fix-invalid-memory-access-caused-by-s.patch |   114 -
 ...ULL-pointer-dereference-in-__ocfs2_change.patch |    43 -
 ...t-compaction-if-migration-page-cannot-be-.patch |    53 -
 ...-rtc-mxc.c-fix-irq-enabled-interrupts-war.patch |    74 -
 ...2-fs-ramfs-file-nommu-add-SetPageUptodate.patch |    49 -
 ...I-Fix-not-loading-acpi-cpufreq-driver-reg.patch |    53 -
 ...Preserve-configuration-register-bits-on-i.patch |    37 -
 ...SAMSUNG-fix-race-in-s3c_adc_start-for-ADC.patch |    42 -
 ...-block-fix-infinite-loop-in-__getblk_slow.patch |   116 -
 ...ly-user-triggerable-BUG-from-generic_setl.patch |    42 -
 .../3.2.24/0048-NFC-Export-nfc.h-to-userland.patch |    32 -
 ...bernate-Hibernate-thaw-fixes-improvements.patch |   178 -
 ...eck-iface-combinations-only-when-iface-is.patch |    40 -
 ...51-intel_ips-blacklist-HP-ProBook-laptops.patch |    70 -
 ...c-fix-issue-of-transmit-queue-0-timed-out.patch |    42 -
 ...usb-fix-indexes-ordering-on-RX-queue-kick.patch |    51 -
 ...-iwlegacy-always-monitor-for-stuck-queues.patch |    65 -
 ...don-t-mess-up-the-SCD-when-removing-a-key.patch |    51 -
 ...Correct-link-check-logic-for-82571-serdes.patch |    39 -
 ...ix-crash-seen-with-aborts-and-large-reads.patch |    39 -
 ...-restart-open-if-it-already-found-a-partn.patch |   115 -
 ...n-up-returning-errors-in-PR-handling-code.patch |    55 -
 ...range-calculation-in-WRITE-SAME-emulation.patch |    41 -
 ...FIG_HIGHMEM-machines-limit-the-rsize-wsiz.patch |    82 -
 ...-update-the-inode-cache-with-the-results-.patch |    47 -
 ...-mm-fix-lost-kswapd-wakeup-in-kswapd_stop.patch |    84 -
 ...ash-when-stopping-md-array-races-with-clo.patch |   164 -
 ...ose-some-possible-races-on-write-errors-d.patch |    58 -
 ...roperly-align-the-.data.init_task-section.patch |    70 -
 ...067-UBIFS-fix-a-bug-in-empty-space-fix-up.patch |    67 -
 ...-crash-by-supporting-any-unaligned-RAID-I.patch |   211 -
 ...e-support-of-partial-IO-request-NFS-crash.patch |    50 -
 ...n-t-leak-objio_state-if-ore_write-read-fa.patch |    46 -
 ...x-__r4w_get_page-when-offset-is-beyond-i_.patch |    71 -
 ...ix-crash-with-mirror-recovery-and-discard.patch |   114 -
 ...raid1-set-discard_zeroes_data_unsupported.patch |    41 -
 ...0074-ntp-Fix-leap-second-hrtimer-livelock.patch |   349 -
 ...ntp-Correct-TAI-offset-during-leap-second.patch |    42 -
 ...-Fix-CLOCK_MONOTONIC-inconsistency-during.patch |    53 -
 ...77-time-Move-common-updates-to-a-function.patch |    99 -
 ...078-hrtimer-Provide-clock_was_set_delayed.patch |   118 -
 ...-Fix-leapsecond-triggered-load-spike-issu.patch |    66 -
 ...-Maintain-ktime_t-based-offsets-for-hrtim.patch |   104 -
 ...ove-lock-held-region-in-hrtimer_interrupt.patch |    61 -
 ...mekeeping-Provide-hrtimer-update-function.patch |    94 -
 ...ate-hrtimer-base-offsets-each-hrtimer_int.patch |   125 -
 ...-Add-missing-update-call-in-timekeeping_r.patch |    57 -
 ...rpc-Fix-wrong-divisor-in-usecs_to_cputime.patch |    87 -
 .../0086-vhost-don-t-forget-to-schedule.patch      |    60 -
 ...netif_napi_del-at-errpaths-and-at-driver-.patch |    43 -
 .../0088-bnx2x-fix-checksum-validation.patch       |   112 -
 ...0089-bnx2x-fix-panic-when-TX-ring-is-full.patch |    75 -
 .../3.2.24/0090-net-remove-skb_orphan_try.patch    |   135 -
 ...cpi_skip_timer_override-cover-all-source_.patch |    78 -
 ...-one-board-specific-WARN-when-ignoring-ti.patch |    42 -
 ...quirk-for-AMILO-PRO-V2030-to-ignore-the-t.patch |    50 -
 ...x-Dell-M6600-ACPI-reboot-regression-via-D.patch |    43 -
 .../3.2.24/0095-ACPI-sysfs.c-strlen-fix.patch      |    43 -
 ...acefully-refuse-miscdev-file-ops-on-inher.patch |    98 -
 ...Fix-lockdep-warning-in-miscdev-operations.patch |   105 -
 ...operly-check-for-O_RDONLY-flag-before-doi.patch |    45 -
 ...e-acpi_pm_device_sleep_state-follow-the-s.patch |    49 -
 .../3.2.24/0100-ipheth-add-support-for-iPad.patch  |    43 -
 ...tmmac-Fix-for-nfs-hang-on-multiple-reboot.patch |    56 -
 ...ugfs-and-network-namespaces-are-incompati.patch |    39 -
 ...age-proc-net-bonding-entries-from-the-net.patch |    61 -
 ...74-Add-support-for-2012-MacBook-Pro-Retin.patch |    67 -
 ...handle-all-variations-of-Mad-Catz-Beat-Pa.patch |    61 -
 ...add-signature-for-Razer-Onza-Tournament-E.patch |    40 -
 ...07-Input-xpad-add-Andamiro-Pump-It-Up-pad.patch |    33 -
 ...D-add-support-for-2012-MacBook-Pro-Retina.patch |    85 -
 .../3.2.24/0109-Linux-3.2.24.patch                 |    24 -
 ...he-amount-of-work-done-when-updating-min_.patch |    88 -
 ...on-allow-compaction-to-isolate-dirty-page.patch |   436 -
 ...on-determine-if-dirty-pages-can-be-migrat.patch |   376 -
 ...ocator-do-not-call-direct-reclaim-for-THP.patch |   143 -
 ...on-make-isolate_lru_page-filter-aware-aga.patch |   117 -
 ...on-introduce-sync-light-migration-for-use.patch |   547 -
 ...hen-reclaiming-for-compaction-ensure-ther.patch |   120 -
 ...o-not-OOM-if-aborting-reclaim-to-start-co.patch |    71 -
 ...heck-if-reclaim-should-really-abort-even-.patch |   119 -
 ...0-vmscan-promote-shared-file-mapped-pages.patch |    82 -
 ...tivate-executable-pages-after-first-usage.patch |    56 -
 ...-consider-swap-space-when-deciding-whethe.patch |    50 -
 ...3-mm-test-PageSwapBacked-in-lumpy-reclaim.patch |    42 -
 ...onvert-global-reclaim-to-per-memcg-LRU-li.patch |    58 -
 ...educe-large-amounts-of-memory-barrier-rel.patch |   655 -
 ...fix-warning-in-alloc_huge_page-dequeue_hu.patch |    50 -
 ...x-NULL-dereferences-in-scsi_cmd_to_driver.patch |    71 -
 ...8-sched-nohz-Fix-rq-cpu_load-calculations.patch |   137 -
 ...hz-Fix-rq-cpu_load-calculations-some-more.patch |   147 -
 ...ace-Fix-assembly-trampoline-register-usag.patch |    50 -
 ...25821-Remove-bad-strcpy-to-read-only-char.patch |    53 -
 .../0022-x86-Fix-boot-on-Twinhead-H12Y.patch       |    54 -
 .../0023-r8169-RxConfig-hack-for-the-8168evl.patch |    47 -
 ...ONFIG_HIGHMEM-is-set-serialize-the-read-w.patch |   124 -
 ...ess-rt2x00-rt2800usb-add-more-devices-ids.patch |    89 -
 ...2x00-rt2800usb-more-devices-were-identifi.patch |    79 -
 ...7-rt2800usb-2001-3c17-is-an-RT3370-device.patch |    41 -
 ...-gadget-Fix-g_ether-interface-link-status.patch |    61 -
 ...-char-to-ext4_count_free-instead-of-a-buf.patch |    88 -
 ...ble-function-tracing-during-suspend-resum.patch |   113 -
 ...de-microcode_core.c-simple_strtoul-cleanu.patch |    44 -
 ...de-Sanitize-per-cpu-microcode-reloading-i.patch |    92 -
 ...rrect-amount-of-data-copied-to-user-in-pr.patch |    45 -
 ...-overhead-calculation-used-by-ext4_statfs.patch |   294 -
 ...-table-length-check-to-avoid-possible-ove.patch |    36 -
 ...36-powerpc-Add-memory-attribute-for-mfmsr.patch |    34 -
 ...037-mwifiex-correction-in-mcs-index-check.patch |    41 -
 ...Ignore-ZTE-Vodafone-K3570-71-net-interfac.patch |    37 -
 .../3.2.25/0039-USB-option-add-ZTE-MF821D.patch    |    36 -
 ...generation-of-LOGICAL-BLOCK-ADDRESS-OUT-O.patch |    64 -
 ...get-Add-range-checking-to-UNMAP-emulation.patch |    46 -
 ...reading-of-data-length-fields-for-UNMAP-c.patch |    51 -
 ...possible-integer-underflow-in-UNMAP-emula.patch |    75 -
 ...k-number-of-unmap-descriptors-against-our.patch |    38 -
 ...idle-fix-sequence-handling-vs-cpu-hotplug.patch |    80 -
 ...l8192de-Fix-phy-based-version-calculation.patch |    61 -
 ...erform-cpu-down-operations-from-low-prior.patch |   120 -
 ...8-ALSA-hda-Add-support-for-Realtek-ALC282.patch |    34 -
 .../0049-iommu-amd-Fix-hotplug-with-iommu-pt.patch |    48 -
 ...Try-harder-to-avoid-HW-cursor-ending-on-a.patch |    50 -
 ...urn-on-PIN_OUT-from-hdmi-playback-prepare.patch |    66 -
 .../3.2.25/0052-block-add-blk_queue_dead.patch     |   140 -
 ...x-device-removal-NULL-pointer-dereference.patch |   163 -
 ...-dangling-pointer-in-scsi_requeue_command.patch |    57 -
 .../0055-fix-hot-unplug-vs-async-scan-race.patch   |   122 -
 ...up-scsi_schedule_eh-vs-scsi_restart_opera.patch |    62 -
 .../3.2.25/0057-libsas-continue-revalidation.patch |    49 -
 ...sas_discover_devices-return-code-handling.patch |   128 -
 ...t-Drop-bogus-struct-file-usage-for-iSCSI-.patch |   230 -
 ...-sdhci-pci-CaFe-has-broken-card-detection.patch |    42 -
 ...-t-let-i_reserved_meta_blocks-go-negative.patch |    55 -
 ...xt4_calc_metadata_amount-if-we-fail-to-cl.patch |    93 -
 ...ix-_PRE-and-_POST-events-for-DAPM-perform.patch |    46 -
 ...s-fix-checking-of-fcntl_setlease-argument.patch |    57 -
 ...vent-OOPS-on-some-boxes-due-to-missing-ch.patch |    45 -
 ...066-drm-radeon-fix-bo-creation-retry-path.patch |    47 -
 ...rm-radeon-fix-non-revealent-error-message.patch |    70 -
 ...fix-hotplug-of-DP-to-DVI-HDMI-passive-ada.patch |    69 -
 ...on-hotplug-force-link-training-to-happen-.patch |    51 -
 ...the-ordered-free-operation-without-any-lo.patch |    48 -
 ...-alignment-requirements-on-src-and-dst-ad.patch |   748 -
 ...g-argument-of-migrate_huge_pages-in-soft_.patch |    58 -
 .../3.2.25/0073-Linux-3.2.25.patch                 |    24 -
 ...y-code-by-removing-a-SMP-ifdefs-from-stru.patch |   273 -
 .../3.2.26/0002-Linux-3.2.26.patch                 |    24 -
 .../3.2.27/0001-sched-Fix-race-in-task_group.patch |   158 -
 ...nup-disk-queue-before-caling-put_disk-if-.patch |    51 -
 ...ocal-pages-as-FOREIGN-in-the-m2p_override.patch |   156 -
 ...04-lirc_sir-make-device-registration-work.patch |   131 -
 ...te-references-to-older-2.6-versions-for-3.patch |    62 -
 ...add-dock-support-for-Thinkpad-X230-Tablet.patch |   107 -
 ...x-interface-combinations-check-for-ADHOC-.patch |    67 -
 ...68k-Correct-the-Atari-ALLOWINT-definition.patch |    97 -
 .../0009-ene_ir-Fix-driver-initialisation.patch    |    47 -
 ...r-filesystems-are-normally-case-sensitive.patch |    32 -
 ...arch_get_random_int-instead-of-cycle-coun.patch |    69 -
 ...arch-specific-RNG-to-initialize-the-entro.patch |    49 -
 ...ust-the-number-of-loops-when-initializing.patch |    37 -
 ...-add_interrupt_randomness-do-something-sa.patch |   288 -
 ...lockless-techniques-in-the-interrupt-path.patch |   245 -
 ...om-create-add_device_randomness-interface.patch |    93 -
 ...B-device-information-to-the-dev-random-dr.patch |    49 -
 ...v-random-with-the-MAC-address-when-regist.patch |    60 -
 ...the-arch-specific-rng-in-xfer_secondary_p.patch |    91 -
 ...om-add-new-get_random_bytes_arch-function.patch |    95 -
 ...Feed-the-write-counter-into-device_add_ra.patch |    75 -
 ...Feed-the-device-UUID-into-device_add_rand.patch |    54 -
 ...-Ensure-there-are-enough-BCLKs-for-four-c.patch |    33 -
 ...for-pi_mutex-on-fault-in-futex_wait_reque.patch |    38 -
 ...ex-Fix-bug-in-WARN_ON-for-NULL-q.pi_state.patch |    36 -
 ...bid-uaddr-uaddr2-in-futex_wait_requeue_pi.patch |    59 -
 ...deo-smscufx-fix-line-counting-in-fb_write.patch |    36 -
 ...tics-handle-out-of-bounds-values-from-the.patch |    89 -
 ...x-invalid-D3-of-headphone-DAC-on-VT202x-c.patch |    60 -
 ...1-Fix-missing-initialization-of-irq-field.patch |    34 -
 ...ssing-break-resulting-in-incorrect-select.patch |    36 -
 ...ngrade-page-table-after-fork-of-a-31-bit-.patch |   140 -
 ...OMIC_INIT-and-ATOMIC64_INIT-to-drop-the-c.patch |    73 -
 .../0034-dm-thin-reduce-endio_hook-pool-size.patch |    37 -
 ...-memory-leak-in-process_prepared_mapping-.patch |    53 -
 ...in-architectural-randomness-in-extract_bu.patch |   151 -
 ...e-ASUS_WMI_METHODID_DSTS2-as-default-DSTS.patch |    44 -
 ...tio-blk-Use-block-layer-provided-spinlock.patch |   103 -
 ...x-fault-handling-for-page-table-walk-case.patch |    72 -
 ...mmit-in-releasepage-if-we-re-freeing-memo.patch |   182 -
 ...on-t-abort-a-resync-on-the-first-badblock.patch |    48 -
 ...rly_ioremap-early_iounmap-to-access-pcdp-.patch |    73 -
 ...f.c-kptr_restrict-fix-pK-error-in-SysRq-s.patch |    48 -
 ...deadlock-issue-between-chcp-and-thaw-ioct.patch |   144 -
 ...rn-negative-value-in-case-rpcbind-client-.patch |    45 -
 ...mutex-use-generic-xchg-based-implementati.patch |   165 -
 ...vfp-only-clear-vfp-state-for-current-cpu-.patch |    36 -
 ...vfp-Always-save-VFP-state-in-vfp_pm_suspe.patch |    58 -
 ...errata-extend-workaround-for-erratum-7207.patch |    62 -
 ...-undefined-instruction-exception-handling.patch |   335 -
 ...gp-increase-the-controller-wait-time-to-c.patch |    38 -
 ...ASoC-wm8962-Allow-VMID-time-to-fully-ramp.patch |    32 -
 ...ge_alloc.c-remove-pageblock_default_order.patch |    98 -
 ...geblock_order-before-it-s-used-by-sparsem.patch |   101 -
 ...fier-fix-freed-page-still-mapped-in-secon.patch |   137 -
 ...s-close-race-during-teardown-of-hugetlbfs.patch |   340 -
 ...A-snd-usb-fix-clock-source-validity-index.patch |    40 -
 ...pport-dock-on-Lenovo-Thinkpad-T530-with-A.patch |    34 -
 ...-ore-Fix-out-of-bounds-access-in-_ios_obj.patch |    75 -
 ...ys_atomic_cmpxchg_32-work-on-classic-m68k.patch |    41 -
 ...efer-wide-slow-to-fast-narrow-in-DP-confi.patch |    41 -
 ...support-for-BUFFALO-WLI-UC-GNM2-to-rt2800.patch |    32 -
 ...r-fix-sleeping-in-invalid-context-warning.patch |   115 -
 ...p_monitor-Make-updating-data-skb-smp-safe.patch |   187 -
 ...r-prevent-init-path-from-scheduling-on-th.patch |    93 -
 ...drop_monitor-dont-sleep-in-atomic-context.patch |   244 -
 ...h_uart-Fix-missing-break-for-16-byte-fifo.patch |    33 -
 ...uart-Fix-rx-error-interrupt-setting-issue.patch |    85 -
 .../0069-pch_uart-Fix-parity-setting-issue.patch   |    35 -
 .../3.2.27/0070-Linux-3.2.27.patch                 |    24 -
 .../0001-bnx2-Fix-bug-in-bnx2_free_tx_skbs.patch   |    47 -
 .../0002-sch_sfb-Fix-missing-NULL-check.patch      |    33 -
 ...st-corruption-resulting-from-freeing-an-a.patch |   188 -
 ...04-caif-Fix-access-to-freed-pernet-memory.patch |    52 -
 ...-follow-a-NULL-pointer-when-setsockopt-is.patch |    95 -
 .../3.2.28/0006-caif-fix-NULL-pointer-check.patch  |    33 -
 .../0007-wanmain-comparing-array-with-NULL.patch   |    83 -
 ...Add-TCP_USER_TIMEOUT-negative-value-check.patch |    39 -
 ...B-kaweth.c-use-GFP_ATOMIC-under-spin_lock.patch |    40 -
 ...etlink-IFF_PROMISC-and-IFF_ALLMULTI-handl.patch |    60 -
 ...-DMA-to-userspace-only-if-there-is-a-task.patch |    57 -
 .../0012-net-tun-fix-ioctl-based-info-leaks.patch  |    41 -
 ...ropped-DMA-receive-enable-back-in-for-WoL.patch |    50 -
 ...8192cu-Change-buffer-allocation-for-synch.patch |    77 -
 ...-overflow-in-sector-calculations-in-hfspl.patch |    40 -
 ...xup-seqno-allocation-logic-for-lazy_reque.patch |   182 -
 ...ertise-CPU_BASED_RDPMC_EXITING-for-nested.patch |    37 -
 .../0018-mac80211-cancel-mesh-path-timer.patch     |    32 -
 ...0019-ath9k-Add-PID-VID-support-for-AR1111.patch |    65 -
 ...ove-MMAP_MIN_ADDR-setting-from-mxs_defcon.patch |    52 -
 ...A-hda-add-dock-support-for-Thinkpad-T430s.patch |    34 -
 ...ocess-pending-events-when-unregistering-n.patch |    72 -
 ...-NULL-pointer-dereference-in-config_lna_g.patch |    39 -
 ...able-greenfield-transmissions-as-a-workar.patch |    53 -
 ...SA-hda-add-dock-support-for-Thinkpad-X230.patch |    32 -
 ...00e-NIC-goes-up-and-immediately-goes-down.patch |    41 -
 ...LSA-hda-remove-quirk-for-Dell-Vostro-1015.patch |    32 -
 ...x-double-quirk-for-Quanta-FL1-Lenovo-Idea.patch |    43 -
 ...a-remove-irq_to_gpio-from-ezx-pcap-driver.patch |    57 -
 ...ut-eeti_ts-pass-gpio-value-instead-of-IRQ.patch |   150 -
 ...drm-i915-Add-wait_for-in-init_ring_common.patch |    41 -
 ...15-correctly-order-the-ring-init-sequence.patch |    49 -
 ...-fix-compat-wrappers-for-process_vm-syste.patch |    40 -
 ...-s390-compat-fix-mmap-compat-system-calls.patch |    54 -
 ...n-fix-bank-tiling-parameters-on-evergreen.patch |    44 -
 ...deon-fix-bank-tiling-parameters-on-cayman.patch |    45 -
 ...do-not-reenable-crtc-after-moving-vram-st.patch |   178 -
 .../3.2.28/0038-Linux-3.2.28.patch                 |    24 -
 ...x-buffer-alignment-regression-with-Nvidia.patch |    62 -
 ...x-silent-outputs-from-docking-station-jac.patch |    64 -
 ...tfs-Sanitize-write-counts-of-dev-ecryptfs.patch |   103 -
 ...tfs-Improve-metadata-read-failure-logging.patch |    58 -
 ...0005-eCryptfs-Make-truncate-path-killable.patch |    71 -
 ...6-eCryptfs-Check-inode-changes-in-setattr.patch |   122 -
 ...x-oops-when-printing-debug-info-in-extent.patch |   103 -
 ...adeon-kms-Add-an-MSI-quirk-for-Dell-RS690.patch |    38 -
 ...kms-move-panel-mode-setup-into-encoder-mo.patch |   130 -
 ...kms-rework-modeset-sequence-for-DCE41-and.patch |    87 -
 .../0011-drm-Fix-authentication-kernel-crash.patch |    91 -
 ...sing-xfs_iunlock-on-error-recovery-path-i.patch |    38 -
 ...M5100-register-map-cache-only-when-going-.patch |    32 -
 ...e-register-synchronisation-for-low-freque.patch |    66 -
 ...go-through-cache-when-applying-WM5100-rev.patch |    41 -
 ...-wm8996-Call-_POST_PMU-callback-for-CPVDD.patch |    33 -
 ...brcmsmac-fix-tx-queue-flush-infinite-loop.patch |    53 -
 ...c80211-fix-work-removal-on-deauth-request.patch |   111 -
 ...jbd-Issue-cache-flush-after-checkpointing.patch |   118 -
 ...12-make-it-work-undo-percpu-message-sched.patch |    78 -
 ...-sha512-reduce-stack-usage-to-safe-number.patch |   129 -
 ...-tpm_tis-add-delay-after-aborting-command.patch |    37 -
 .../0023-x86-uv-Fix-uninitialized-spinlocks.patch  |    58 -
 ...4-x86-uv-Fix-uv_gpa_to_soc_phys_ram-shift.patch |    41 -
 ...de_amd-Add-support-for-CPU-family-specifi.patch |    75 -
 ...sembler-constraint-to-prevent-overeager-g.patch |   172 -
 ...t-mute-led-polarity-for-laptops-with-bugg.patch |    43 -
 ...8-ALSA-hda-Fix-silent-output-on-ASUS-A6Rp.patch |    55 -
 ...hda-Fix-silent-output-on-Haier-W18-laptop.patch |    34 -
 ...per-over-missed-irq-issues-with-force-wak.patch |   126 -
 ...15-sdvo-always-set-positive-sync-polarity.patch |    52 -
 ...-enable-gen7-RC6-and-GPU-turbo-after-resu.patch |    43 -
 ...-at91-fix-at91rm9200-soc-subtype-handling.patch |    46 -
 .../0034-mach-ux500-enable-ARM-errata-764369.patch |    31 -
 ...proc-v7.S-remove-HARVARD_CACHE-preprocess.patch |    53 -
 ...ain-bitterly-about-attempts-to-remove-fil.patch |    68 -
 ...e-struct-xen_spinlock-to-always-fit-in-ar.patch |   103 -
 ...oved-redundant-calling-of-_scsih_probe_de.patch |    96 -
 .../0039-USB-option-Add-LG-docomo-L-02C.patch      |    41 -
 ...di_sio-fix-TIOCSSERIAL-baud_base-handling.patch |    41 -
 .../0041-USB-ftdi_sio-fix-initial-baud-rate.patch  |    49 -
 ...sio-add-PID-for-TI-XDS100v2-BeagleBone-A3.patch |    50 -
 .../0043-USB-serial-ftdi-additional-IDs.patch      |    49 -
 .../0044-USB-ftdi_sio-Add-more-identifiers.patch   |    48 -
 ...-updating-desc-length-must-be-protected-b.patch |    37 -
 ...-use-two-mutexes-to-allow-simultaneous-re.patch |   178 -
 ...-add-more-Pantech-UML190-and-UML290-ports.patch |    43 -
 ...dwc3-ep0-tidy-up-Pending-Request-handling.patch |    54 -
 ...ake-edge_remove_sysfs_attrs-the-port_remo.patch |    60 -
 ...0050-TTY-fix-UV-serial-console-regression.patch |    72 -
 ...-pl011-lock-console-writes-against-interr.patch |    67 -
 .../3.2.3/0052-jsm-Fixed-EEH-recovery-error.patch  |    53 -
 ...053-iwlwifi-fix-PCI-E-transport-inta-race.patch |    53 -
 ...assignment-in-vmw_framebuffer_create_hand.patch |    34 -
 ...tek-cr-fix-autopm-scheduling-while-atomic.patch |    36 -
 .../3.2.3/0056-USB-usbsevseg-fix-max-length.patch  |    34 -
 ...t-langwell-don-t-call-gadget-s-disconnect.patch |    94 -
 .../3.2.3/0058-usb-gadget-storage-endian-fix.patch |    43 -
 ...s-usb-host-ehci-fsl.c-add-missing-iounmap.patch |    54 -
 ...xhci-Fix-USB-3.0-device-restart-on-resume.patch |    51 -
 ...p-isoc-transfer-ring-when-TD-length-misma.patch |    40 -
 .../0062-usb-musb-davinci-fix-build-breakage.patch |    41 -
 ...71805f-Fix-clamping-of-temperature-limits.patch |    43 -
 ...7ehf-Disable-setting-DC-mode-for-pwm2-pwm.patch |    46 -
 .../0065-hwmon-sht15-fix-bad-error-code.patch      |    40 -
 ...-call-wake_up_all-to-allow-driver-to-shut.patch |    45 -
 ...-better-allocate-a-buffer-that-is-at-leas.patch |    38 -
 ...-Avoid-hanging-on-interface-with-no-USB_C.patch |    53 -
 .../3.2.3/0069-netns-fix-net_alloc_generic.patch   |   120 -
 ...conspicously-if-someone-uses-net_generic-.patch |    42 -
 ...f-Register-properly-as-a-pernet-subsystem.patch |   117 -
 ...fix-EPOLLET-regression-for-stream-sockets.patch |    96 -
 ...-fix-enslaving-in-alb-mode-when-link-down.patch |   116 -
 ...tp_ip-fix-possible-oops-on-packet-receive.patch |    73 -
 ...075-macvlan-fix-a-possible-use-after-free.patch |    34 -
 ...76-net-bpf_jit-fix-divide-by-0-generation.patch |   129 -
 ...ntroduce-missing-rcu_assign_pointer-calls.patch |   703 -
 ...ake-rds_sock_lock-BH-rather-than-IRQ-safe.patch |   119 -
 ..._trim_head-to-adjust-segment-count-with-s.patch |    61 -
 ...ng-remote-adress-for-md5-lookup-in-rst-pa.patch |    49 -
 ...CP210x-Added-USB-ID-for-the-Link-Instrume.patch |    32 -
 ...USB-cp210x-call-generic-open-last-in-open.patch |    47 -
 ...0083-USB-cp210x-fix-CP2104-baudrate-usage.patch |    78 -
 ...84-USB-cp210x-do-not-map-baud-rates-to-B0.patch |    34 -
 ...5-USB-cp210x-fix-up-set_termios-variables.patch |    44 -
 ...clean-up-refactor-and-document-speed-hand.patch |   121 -
 ...7-USB-cp210x-initialise-baud-rate-at-open.patch |    35 -
 ...cp210x-allow-more-baud-rates-above-1Mbaud.patch |    48 -
 ...ux500-no-MMC_CAP_SD_HIGHSPEED-on-Snowball.patch |    34 -
 .../3.2.3/0090-Linux-3.2.3.patch                   |    24 -
 ...-Mark-WM5100-register-map-cache-only-when.patch |    32 -
 ...-Don-t-go-through-cache-when-applying-WM5.patch |    39 -
 .../3.2.4/0003-Linux-3.2.4.patch                   |    24 -
 .../3.2.5/0001-PCI-Rework-ASPM-disable-code.patch  |   236 -
 .../3.2.5/0002-Linux-3.2.5.patch                   |    24 -
 ...d-fix-pipeline-break-caused-by-block-plug.patch |    99 -
 ...x-the-logic-to-detect-VIA-analog-low-curr.patch |    35 -
 ...0003-ALSA-HDA-Remove-quirk-for-Asus-N53Jq.patch |    35 -
 ...ply-0x0f-VREF-fix-to-all-ASUS-laptops-wit.patch |   117 -
 ...x-calling-cs_automic-twice-for-Cirrus-cod.patch |    45 -
 ...low-analog-low-current-mode-when-dynamic-.patch |   105 -
 ...x-duplicated-output-to-more-than-one-code.patch |    36 -
 ...sable-dynamic-power-control-for-VIA-as-de.patch |    34 -
 ...s-Enable-line-out-VMID-buffer-for-single-.patch |    57 -
 ...ubs-fix-wrong-bits-for-LINEOUT2-N-P-mixer.patch |    32 -
 ...vfp-flush-thread-hwstate-before-restoring.patch |    60 -
 ...1-vfp-fix-ptrace-regset-modification-race.patch |    68 -
 ...vfp-flush-thread-hwstate-before-copying-p.patch |    41 -
 ...0014-ARM-OMAP2-GPMC-fix-device-size-setup.patch |    43 -
 ...-vt-vt_ioctl.c-fix-KDFONTOP-32bit-compati.patch |    44 -
 ...016-proc-mem_release-should-check-mm-NULL.patch |    34 -
 .../0017-proc-unify-mem_read-and-mem_write.patch   |   148 -
 ...ure-mem_open-doesn-t-pin-the-target-s-mem.patch |    79 -
 ...ohci-add-reset-packet-quirk-for-SB-Audigy.patch |    43 -
 ...ire-ohci-disable-MSI-on-Ricoh-controllers.patch |    43 -
 ...s-SMP-vendor-specific-attribute-MADs-to-f.patch |    90 -
 ...ix-kernel-panic-by-always-initializing-qp.patch |    68 -
 ...-a-memory-leak-in-function-pre_handler_kr.patch |    52 -
 ...nd-bugfix-reset-the-BCH-module-when-it-is.patch |    72 -
 ...atmel_nand-optimize-read-write-buffer-fun.patch |   113 -
 ...-at_hdmac-bugfix-for-enabling-channel-irq.patch |    92 -
 ...xip.c-fix-race-condition-in-xip_file_faul.patch |    58 -
 ...on-check-pfn_valid-when-entering-a-new-MA.patch |   112 -
 ...e-Fix-s2disk-regression-related-to-freezi.patch |   100 -
 ...S-CPU-C-state-breakage-with-PM-Qos-change.patch |    57 -
 ...Set-DESKTOP_HEIGHT-register-to-the-frameb.patch |    55 -
 ...-drm-nouveau-gem-fix-fence_sync-race-oops.patch |   108 -
 ...kms-disable-output-polling-when-suspended.patch |    44 -
 ...034-drm-radeon-kms-fix-TRAVIS-panel-setup.patch |    53 -
 ...x-task-stack-corruption-under-__ARCH_WANT.patch |    94 -
 ...e-Thaw-processes-in-SNAPSHOT_CREATE_IMAGE.patch |    83 -
 ...e-Thaw-kernel-threads-in-SNAPSHOT_CREATE_.patch |    48 -
 .../0038-8139cp-fix-missing-napi_gro_flush.patch   |    33 -
 ...ID-buffer-as-uptodate-before-marking-it-d.patch |    40 -
 ...MI-hot-remove-notification-to-audio-drive.patch |    53 -
 ...splayPort-hot-remove-notification-to-audi.patch |    40 -
 .../0042-drm-i915-check-ACTHD-of-all-rings.patch   |    92 -
 .../0043-drm-i915-Fix-TV-Out-refresh-rate.patch    |    98 -
 .../3.2.6/0044-drm-i915-handle-3rd-pipe.patch      |    37 -
 ...nvert-force_wake_get-to-func-pointer-in-t.patch |    42 -
 ...otect-force_wake_-get-put-with-the-gt_loc.patch |   163 -
 ...finite-loop-due-to-overflow-in-ecryptfs_w.patch |    51 -
 ...w83627ehf-Fix-number-of-fans-for-NCT6776F.patch |    55 -
 ...ps-in-session-setup-code-for-null-user-mo.patch |    47 -
 ...-fix-usage-of-CONTRAST_CTR-in-suspend-res.patch |    36 -
 ...-Exclude-TAINT_FIRMWARE_WORKAROUND-from-d.patch |    56 -
 ...-Exclude-TAINT_OOT_MODULE-from-disabling-.patch |    56 -
 ...t-Fix-reject-release-handling-in-iscsit_f.patch |    79 -
 ...t-Fix-double-list_add-with-iscsit_alloc_b.patch |    35 -
 ...t-Fix-discovery-with-INADDR_ANY-and-IN6AD.patch |   176 -
 ...s-Fix-routing-of-input-PGAs-to-line-outpu.patch |    46 -
 ...s-Correct-line-input-to-line-output-2-pat.patch |    35 -
 ...ASoC-wm8962-Fix-word-length-configuration.patch |    38 -
 ...-Enabling-VMID-should-take-a-runtime-PM-r.patch |    42 -
 ...ASoC-wm8994-Fix-typo-in-VMID-ramp-setting.patch |    31 -
 ...socket-refcount-decrementing-on-each-resu.patch |   179 -
 ...-virtuoso-fix-exchanged-L-R-volumes-of-au.patch |    67 -
 ...-iommu-amd-Work-around-broken-IVRS-tables.patch |    37 -
 ...msm-Fix-error-handling-in-msm_iommu_unmap.patch |    62 -
 ...on-check-for-overlapping-nodes-during-iso.patch |   111 -
 .../0066-mm-fix-UP-THP-spin_is_locked-BUGs.patch   |    63 -
 ...correct-preempted-registration-sense-code.patch |    59 -
 ...w-PERSISTENT-RESERVE-IN-for-non-reservati.patch |    35 -
 ...ect-sense-key-for-INVALID-FIELD-IN-PARAME.patch |    69 -
 ...workaround-for-zero-length-control-CDB-ha.patch |    62 -
 ...rn-correct-ASC-for-unimplemented-VPD-page.patch |    37 -
 ...-INQUIRY-commands-with-EVPD-0-but-PAGE-CO.patch |    43 -
 ...73-Staging-asus_oled-fix-image-processing.patch |    59 -
 ...asus_oled-fix-NULL-ptr-crash-on-unloading.patch |    59 -
 ...075-staging-r8712u-Add-new-Sitecom-UsB-ID.patch |    32 -
 ...-r8712u-Use-asynchronous-firmware-loading.patch |   285 -
 ...h9.h-usb_endpoint_maxp-uses-__le16_to_cpu.patch |    37 -
 ...zero-fix-bug-in-loopback-autoresume-handl.patch |    36 -
 ...p-PCI-USB-quirk-handling-for-Netlogic-XLP.patch |    45 -
 ...al-add-new-PID-number-0xa951-to-the-ftdi-.patch |    45 -
 ...B-add-new-zte-3g-dongle-s-pid-to-option.c.patch |   181 -
 ...SWIZ_BITS-to-8-to-reduce-tmem-bucket-lock.patch |    46 -
 .../3.2.6/0083-zcache-fix-deadlock-condition.patch |    55 -
 ...ore-Add-missing-spin_lock_init-for-irq_lo.patch |    33 -
 ...-Avoid-Pstate-MSR-accesses-on-systems-sup.patch |    60 -
 .../0086-powernow-k8-Fix-indexing-issue.patch      |    86 -
 .../3.2.6/0087-Linux-3.2.6.patch                   |    24 -
 .../3.2.7/0001-ixgbe-fix-vf-lookup.patch           |    42 -
 .../3.2.7/0002-igb-fix-vf-lookup.patch             |    42 -
 ...Fix-an-issue-where-perf-report-fails-to-s.patch |    64 -
 ...Fix-perf-stack-to-non-executable-on-x86_6.patch |    55 -
 ...rce-explicit-bpp-selection-for-intel_dp_l.patch |    99 -
 ...006-drm-i915-no-lvds-quirk-for-AOpen-MP45.patch |    40 -
 ...-kernel-panic-during-driver-initilization.patch |    96 -
 ...ath9k-fix-a-WEP-crypto-related-regression.patch |    45 -
 ...ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch |    52 -
 ...75375s-Fix-bit-shifting-in-f75375_write16.patch |    33 -
 .../0011-net-enable-TC35815-for-MIPS-again.patch   |    41 -
 ...ion-lower-PROP_MAX_SHIFT-to-32-on-64-bit-.patch |    48 -
 ...ay-prevent-integer-overflow-in-relay_open.patch |    50 -
 ...meout-a-single-frame-in-the-rx-reorder-bu.patch |    36 -
 ...ix-NULL-bdi-dev-in-trace-writeback_single.patch |    72 -
 ...ix-dereferencing-NULL-bdi-dev-on-trace_wr.patch |    44 -
 ...5s-Fix-automatic-pwm-mode-setting-for-F75.patch |    34 -
 ...-request-oplock-when-doing-open-on-lookup.patch |    32 -
 ...return-error-from-standard_receive3-after.patch |    50 -
 ...-sha512-Use-binary-and-instead-of-modulus.patch |    42 -
 ...1-crypto-sha512-Avoid-stack-bloat-on-i386.patch |   113 -
 ...-fix-wakeup-timer-races-with-bdi_unregist.patch |    95 -
 ...x0-Fix-default-inaudible-sound-on-Gateway.patch |    42 -
 ...x-initialization-of-secondary-capture-sou.patch |    41 -
 ...x-silent-speaker-output-on-Acer-Aspire-69.patch |    78 -
 ...ci-save-and-restore-sdioirq-when-soft-res.patch |    42 -
 ..._mmc-Fix-PIO-mode-with-support-of-highmem.patch |   353 -
 ...o-not-remap-pirqs-onto-evtchns-if-xen_hav.patch |    31 -
 .../0029-crypto-sha512-use-standard-ror64.patch    |    90 -
 .../3.2.7/0030-Linux-3.2.7.patch                   |    24 -
 ...-math_state_restore-isn-t-called-from-asm.patch |    53 -
 ...387-make-irq_fpu_usable-tests-more-robust.patch |   131 -
 .../0003-i387-fix-sense-of-sanity-check.patch      |    37 -
 ...6-64-preemption-unsafe-user-stack-save-re.patch |   163 -
 ...S_USEDFPU-clearing-out-of-__save_init_fpu.patch |    64 -
 ...ever-touch-TS_USEDFPU-directly-use-helper.patch |   228 -
 ...not-preload-FPU-state-at-task-switch-time.patch |   202 -
 ...MD-K7-K8-fpu-fxsave-fxrstor-workaround-fr.patch |   133 -
 ...S_USEDFPU-flag-from-thread_info-to-task_s.patch |   305 -
 ...roduce-FPU-state-preloading-at-context-sw.patch |   353 -
 .../3.2.8/0011-Linux-3.2.8.patch                   |    24 -
 .../0001-Security-tomoyo-add-.gitignore-file.patch |    32 -
 ...f-power_pmu_start-restores-incorrect-valu.patch |    58 -
 ...1-USB-AT91-gadget-registration-for-module.patch |    78 -
 ...04-drm-radeon-kms-fix-MSI-re-arm-on-rv370.patch |    54 -
 ...5-PCI-workaround-hard-wired-bus-number-V2.patch |    44 -
 .../0006-mac80211-Fix-a-rwlock-bad-magic-bug.patch |    91 -
 .../3.2.9/0007-ipheth-Add-iPhone-4S.patch          |    43 -
 ...cache-defaults-initialization-from-raw-ca.patch |    53 -
 ...py-up-lower-inode-attrs-after-setting-low.patch |    43 -
 ...t-ktime-to-tod-clock-comparator-conversio.patch |    44 -
 ...11-vfs-fix-d_inode_lookup-dentry-ref-leak.patch |    35 -
 ...PL330-fix-null-pointer-dereference-in-pl3.patch |    45 -
 ...a-Fix-redundant-jack-creations-for-cx5051.patch |    68 -
 ...mmc-core-check-for-zero-length-ioctl-data.patch |   137 -
 ...FSv4-Fix-an-Oops-in-the-NFSv4-getacl-code.patch |    98 -
 ...e-we-throw-out-bad-delegation-stateids-on.patch |    33 -
 .../0017-NFSv4-fix-server_scope-memory-leak.patch  |    55 -
 ...cache-v7-Disable-preemption-when-reading-.patch |    61 -
 ...M-7325-1-fix-v7-boot-with-lockdep-enabled.patch |    61 -
 ...9x-shorten-timer-period-for-slave-devices.patch |    42 -
 ...roxy-arp-respond-if-iif-rt-dst.dev-if-pri.patch |    43 -
 ...-netpoll_poll_dev-should-access-dev-flags.patch |    35 -
 .../0023-net_sched-Bug-in-netem-reordering.patch   |    42 -
 ...th-Enforce-minimum-size-of-VETH_INFO_PEER.patch |    37 -
 .../3.2.9/0025-via-velocity-S3-resume-fix.patch    |    37 -
 ...4-reset-flowi-parameters-on-route-connect.patch |    90 -
 ..._reset-binding-oif-to-iif-in-no-sock-case.patch |    47 -
 ...ong-order-of-ip_rt_get_source-and-update-.patch |    38 -
 ...ke-qdisc_skb_cb-upper-size-bound-explicit.patch |    90 -
 ...lying-about-hard_header_len-and-use-skb-c.patch |   213 -
 .../0031-gro-more-generic-L2-header-check.patch    |    61 -
 ...cp_sacktag_one-to-tag-ranges-not-aligned-.patch |   119 -
 ...ge-tcp_shifted_skb-passes-to-tcp_sacktag_.patch |    77 -
 ..._shifted_skb-adjustment-of-lost_cnt_hint-.patch |    42 -
 ...Kamstrup-VID-PIDs-to-cp210x-serial-driver.patch |    29 -
 ...n-cleanup-zte-3g-dongle-s-pid-in-option.c.patch |   246 -
 ...ti_usb_3410_5052-Add-Abbot-Diabetes-Care-.patch |    76 -
 ...ove-duplicate-USB-3.0-hub-feature-defines.patch |    74 -
 ...andoff-when-BIOS-disables-host-PCI-device.patch |    69 -
 ...ps-caused-by-more-USB2-ports-than-USB3-po.patch |    39 -
 ...Fix-encoding-for-HS-bulk-control-NAK-rate.patch |    98 -
 ...fail-USB3-probe-on-missing-legacy-PCI-IRQ.patch |    80 -
 ...43-USB-Set-hub-depth-after-USB3-hub-reset.patch |    86 -
 ...orage-fix-freezing-of-the-scanning-thread.patch |   213 -
 ...arget-Allow-control-CDBs-with-data-1-page.patch |   513 -
 ...SoC-wm8962-Fix-sidetone-enumeration-texts.patch |    31 -
 ...altek-Fix-overflow-of-vol-sw-check-bitmap.patch |    61 -
 ...altek-Fix-surround-output-regression-on-A.patch |    53 -
 ...i_mmap_mutex-for-access-to-the-VMA-prio-l.patch |    76 -
 ...wmon-max6639-Fix-FAN_FROM_REG-calculation.patch |    46 -
 ...39-Fix-PPR-register-initialization-to-set.patch |    65 -
 ...n-ads1015-Fix-file-leak-in-probe-function.patch |    43 -
 ...fix-oops-in-drivers-video-omap2-dss-dpi.c.patch |   113 -
 ...-L1i-and-L2-cache-sharing-information-for.patch |   100 -
 ...on-rates-with-idx-1-in-ath9k-rate-control.patch |    41 -
 ...sk-oneshot-irqs-when-thread-was-not-woken.patch |    81 -
 ...genirq-Handle-pending-irqs-in-irq_startup.patch |   117 -
 ...ix-Poison-overwritten-warning-caused-by-u.patch |   104 -
 ...-bug-in-the-SCSI-power-management-handler.patch |   106 -
 ...tching-of-fwmark-templates-during-schedul.patch |    47 -
 .../3.2.9/0061-jme-Fix-FIFO-flush-issue.patch      |    63 -
 ...c-Do-not-free-all-rx-dma-descriptors-duri.patch |    72 -
 ...n-t-create-files-in-tmp-with-predictable-.patch |    47 -
 ...-fix-isr-hang-when-hw-is-unplugged-under-.patch |    67 -
 ...x-race-conditon-during-start-of-streaming.patch |    39 -
 ...on-t-wedge-hardware-after-early-callbacks.patch |   107 -
 ...5s-Fix-register-write-order-when-setting-.patch |    48 -
 ...duce-POLLFREE-to-flush-signalfd_wqh-befor.patch |   164 -
 ...register_pollwait-can-use-the-freed-pwq-w.patch |   116 -
 .../3.2.9/0070-epoll-limit-paths.patch             |   475 -
 ...-use-copy_to_user-without-the-underscores.patch |    56 -
 .../3.2.9/0072-Linux-3.2.9.patch                   |    24 -
 .../linux/linux-ti33x-psp-3.2/am335x-evm/defconfig |  2640 -
 .../linux-ti33x-psp-3.2/am335x-pm-firmware.bin     |   Bin 10732 -> 0 bytes
 ...ot-compressed-default-asm-arch-to-armv7-a.patch |    36 -
 ...1-f_rndis-HACK-around-undefined-variables.patch |    31 -
 ...2-da8xx-fb-add-DVI-support-for-beaglebone.patch |    38 -
 ...rebase-everything-onto-3.2-WARNING-MEGAPA.patch |   563 -
 .../beaglebone/0004-more-beaglebone-merges.patch   |   107 -
 .../beaglebone/0005-beaglebone-disable-tsadc.patch |    31 -
 ...general-purpose-mode-untested-with-touchs.patch |   406 -
 ...dc-Add-board-file-mfd-support-fix-warning.patch |    44 -
 ...AM335X-init-tsc-bone-style-for-new-boards.patch |    26 -
 ...cadc-make-stepconfig-channel-configurable.patch |    46 -
 .../0010-tscadc-Trigger-through-sysfs.patch        |   149 -
 ...meta-ti-Remove-debug-messages-for-meta-ti.patch |    34 -
 ...c-switch-to-polling-instead-of-interrupts.patch |    54 -
 .../beaglebone/0013-beaglebone-fix-ADC-init.patch  |    47 -
 .../beaglebone/0014-AM335x-MUX-add-ehrpwm1A.patch  |    26 -
 ...enable-PWM-for-lcd-backlight-backlight-is.patch |   123 -
 ...Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch |    34 -
 ...set-default-brightness-to-50-for-pwm-back.patch |    27 -
 ...P-framebuffer-driver-supporting-Adafruit-.patch |   668 -
 ...019-beaglebone-use-P8_6-gpio1_3-as-w1-bus.patch |    83 -
 ...add-support-for-Towertech-TT3201-CAN-cape.patch |   320 -
 ...add-more-beagleboardtoys-cape-partnumbers.patch |    53 -
 ...add-gpio-keys-for-lcd7-add-notes-for-miss.patch |   130 -
 ...23-beaglebone-add-enter-key-for-lcd7-cape.patch |    40 -
 .../0024-beaglebone-add-gpio-keys-for-lcd.patch    |   113 -
 ...025-beaglebone-fix-direction-of-gpio-keys.patch |   107 -
 .../0026-beaglebone-fix-3.5-lcd-cape-support.patch |   109 -
 ...decrease-PWM-frequency-to-old-value-LCD7-.patch |    27 -
 .../0028-beaglebone-fix-ehrpwm-backlight.patch     |    25 -
 ...0029-beaglebone-also-report-cape-revision.patch |    36 -
 ...don-t-compare-undefined-characters-it-mak.patch |    27 -
 .../0031-beaglebone-fix-3.5-cape-support.patch     |    73 -
 ...-connect-batterycape-GPIO-to-gpio-charger.patch |    84 -
 ...lebone-add-support-for-CAN-and-RS232-cape.patch |    67 -
 ...glebone-add-support-for-DVI-rev.-A2-capes.patch |   242 -
 ...e-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch |   240 -
 ...036-Beaglebone-Fixed-compiletime-warnings.patch |    48 -
 ...Added-missing-termination-record-to-bone_.patch |    26 -
 ...xevm.c-Beaglebone-expose-all-pwms-through.patch |    58 -
 ...x-Fixed-debugfs-mux-output-always-reporti.patch |    99 -
 ...export-SPI2-as-spidev-when-no-capes-are-u.patch |    83 -
 ...rking-WIP-changes-to-make-DMA-safe-and-ad.patch |   143 -
 .../0042-omap-hwmod-silence-st_shift-error.patch   |    33 -
 ...psw-phy_device-demote-PHY-message-to-INFO.patch |    51 -
 ...ne-add-support-for-7-LCD-cape-revision-A2.patch |    66 -
 ...beaglebone-allow-capes-to-disable-w1-gpio.patch |    52 -
 ...add-stub-for-the-camera-cape-to-disable-w.patch |    30 -
 ...y-of-the-missing-signals-to-the-mux-table.patch |   310 -
 ...sed-part-of-LCD-bus.-Added-even-more-miss.patch |   113 -
 ...c-add-defines-for-4x-and-16x-oversampling.patch |    26 -
 .../0050-ts_tscadc-switch-to-4x-oversampling.patch |    58 -
 ...of-pinmux-data-array-in-EEPROM-data-struc.patch |    27 -
 ...-Bone-Cape-configuration-from-EEPROM.-Onl.patch |   363 -
 ...nditional-debug-code-by-pr_debug-statemen.patch |   188 -
 ...for-boards-with-mistaken-ASCII-interpreta.patch |    31 -
 ...for-EEPROM-contents-blocking-further-I2C-.patch |    30 -
 ...-on-EEPROM-revision-to-prevent-interpreti.patch |    60 -
 ...lar-fix-i2c-fixed-prescalar-setting-issue.patch |    58 -
 ...lebone-annotate-default-beaglebone-pinmux.patch |    32 -
 ...fix-pin-free-thinko-this-method-doesn-t-g.patch |    78 -
 ...060-beaglebone-switch-RS232-cape-to-ttyO2.patch |    29 -
 ...-make-uart2-pinmux-match-the-uart0-pinmux.patch |    31 -
 ...unding-FB-size-to-satisfy-SGX-buffer-requ.patch |    59 -
 .../0063-beaglebone-dvi-cape-audio-hacks.patch     |   217 -
 ...lebone-always-execute-the-pin-free-checks.patch |    68 -
 .../0065-ti_tscadc-switch-to-16x-averaging.patch   |    53 -
 ...o-da8xx-fb-Add-Newhaven-LCD-Panel-details.patch |    45 -
 ...add-support-for-the-4.3-lcd-cape-with-res.patch |    94 -
 ...68-beaglebone-add-support-for-LCD3-rev-A1.patch |   132 -
 ...fix-buttons-spidev-clash-when-using-mcasp.patch |    52 -
 .../0070-beaglebone-fix-LCD3-led-key-overlap.patch |    54 -
 .../0071-beaglebone-fix-audio-spi-clash.patch      |    25 -
 ...add-support-for-QuickLogic-Camera-interfa.patch |  1612 -
 ...add-support-for-DVI-audio-and-audio-only-.patch |    64 -
 ...glebone-disable-LBO-GPIO-for-battery-cape.patch |    35 -
 ...-fb-calculate-pixel-clock-period-for-the-.patch |    73 -
 ...-improve-GPMC-bus-timings-for-camera-cape.patch |   105 -
 ...disable-UYVY-VYUY-and-YVYU-modes-in-camer.patch |    39 -
 ...error-handling-for-DMA-completion-in-cssp.patch |    49 -
 ...rata-OPP50-on-MPU-domain-is-not-supported.patch |    52 -
 ...race-point-in-the-mark_inode_dirty-functi.patch |   103 -
 .../0081-beaglebone-add-support-for-LCD7-A3.patch  |   144 -
 ...one-add-rudimentary-support-for-eMMC-cape.patch |   111 -
 ...bone-add-extra-partnumber-for-camera-cape.patch |    26 -
 ...084-beaglebone-cssp_camera-driver-cleanup.patch |   324 -
 ...e-mux-camera-cape-orientation-pin-to-gpio.patch |    35 -
 ...335xevm-Add-Beaglebone-Motor-Cape-Support.patch |    43 -
 ...-MUXENTRYs-for-MCASP0_ACLKX-FSX-to-add-eh.patch |    37 -
 .../linux/linux-ti33x-psp-3.2/beaglebone/defconfig |  3639 -
 .../beaglebone/logo_linux_clut224.ppm              |  7053 --
 .../linux/linux-ti33x-psp-3.2/configs/empty        |     0
 ...eartbeat-stop-on-shutdown-reboot-or-panic.patch |    67 -
 ...vert-drivers-net-to-use-module_usb_driver.patch |    80 -
 ...t-fix-assignment-of-0-1-to-bool-variables.patch |    55 -
 .../libertas/0003-switch-debugfs-to-umode_t.patch  |    26 -
 ...-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch |    54 -
 ...ibertas-remove-dump_survey-implementation.patch |    80 -
 ...bertas-remove-redundant-NULL-tests-before.patch |    95 -
 ...ix-signedness-bug-in-lbs_auth_to_authtype.patch |    48 -
 ...-wireless-libertas-if_usb.c-add-missing-d.patch |    35 -
 ...libertas-Firmware-loading-simplifications.patch |   618 -
 .../0010-libertas-harden-up-exit-paths.patch       |    46 -
 ...d-asynchronous-firmware-loading-capabilit.patch |   269 -
 ...IO-convert-to-asynchronous-firmware-loadi.patch |   320 -
 ...B-convert-to-asynchronous-firmware-loadin.patch |   201 -
 ...-convert-to-asynchronous-firmware-loading.patch |   154 -
 .../0015-libertas-add-missing-include.patch        |    30 -
 ...ve-debug-msgs-due-to-missing-in_interrupt.patch |    35 -
 recipes-kernel/linux/linux-ti33x-psp-3.2/patch.sh  |    38 -
 ...-AM33XX-Add-missing-EMIF-register-offsets.patch |    61 -
 ...33XX-PM-Get-rid-of-hardcoded-resume-addre.patch |    99 -
 ...33XX-PM-Skip-DDR-PHY-reconfiguration-in-r.patch |   397 -
 ...AM33XX-PM-Save-and-restore-EMIF-registers.patch |   241 -
 ...33XX-PM-Wait-correctly-for-the-PLLs-to-re.patch |    37 -
 ...33XX-PM-Restore-the-PLLs-to-pre-suspend-s.patch |   139 -
 ...-AM33XX-Update-the-sleep-code-to-handle-D.patch |   150 -
 ...008-usb-musb-update-babble-workaround-fix.patch |   168 -
 ...81xx-print-the-usbss-revision-id-during-i.patch |    29 -
 ...ppi41-enable-txfifo-empty-interrupt-logic.patch |   425 -
 ...ost-Flush-txfifo-only-if-TxPktRdy-bit-set.patch |    57 -
 ...pi41-use-dsb-to-make-sure-PDs-are-updated.patch |    43 -
 ...3-usb-musb-cppi41-fix-zero-byte-OUT-issue.patch |    46 -
 ...-usb-musb-host-fix-for-urb-error-handling.patch |    66 -
 ...pi41-txdma-flushfifo-fixes-during-channel.patch |    50 -
 ...6-usb-musb-cppi41-tx-dma-completion-fixes.patch |    41 -
 ...st-Flush-RxFIFO-only-when-RxPktRdy-is-set.patch |    30 -
 ...-usb-musb-ti81xx-fix-role-switching-issue.patch |    65 -
 ...P-HS-Enable-HSPE-bit-for-high-speed-cards.patch |    66 -
 ...WM-ecap-Correct-configuration-of-polarity.patch |    42 -
 ...m335x-mux-add-ecap2_in_pwm2_out-string-en.patch |    29 -
 ...M335x-hwmod-Remove-PRCM-entries-for-PWMSS.patch |   107 -
 ...ecap-Resets-the-PWM-output-to-low-on-stop.patch |    40 -
 ...ix-for-throwing-PWM-output-before-running.patch |    52 -
 ...wm-ehrpwm-Configure-polarity-on-pwm_start.patch |    30 -
 ...pi41-revisit-the-teardown-path-to-fix-iso.patch |   103 -
 ...musb-fix-bug-in-data-toggle-sw-workaround.patch |    31 -
 ...udc-core-stop-UDC-on-device-initiated-dis.patch |    41 -
 ...udc-core-fix-asymmetric-calls-in-remove_d.patch |    43 -
 ...-usb-gadget-udc-core-fix-wrong-call-order.patch |    33 -
 ...udc-core-fix-incompatibility-with-dummy-h.patch |    46 -
 recipes-kernel/linux/linux-ti33x-psp_3.2.bb        |  1949 -
 .../linux/linux/beagleboard/logo_linux_clut224.ppm | 73147 -------------------
 recipes-kernel/linux/linux_3.3.7.bb                |    41 -
 2039 files changed, 343292 deletions(-)
 delete mode 100644 recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch
 delete mode 100644 recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP2-UART-Fix-incorrect-population-of-default-u.patch
 delete mode 100644 recipes-kernel/linux/linux-3.3.7/beagleboard/defconfig
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-AM33xx-hwmod-Convert-SHA0-crypto-device-data-to-.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-OMAP2-AM335x-Update-SPI-flash-layout.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-Smartreflex-support-for-ES-2.x-and-suspend-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am3358-sk-modified-WLAN-enable-and-irq-to-match-boar.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-crypto-driver-settings-to-defconfig.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-minimal-support-for-Beaglebone-Black.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-pm_runtime-API-to-crypto-driver.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Re-enable-Turbo-and-Nitro-modes-for-Beaglebon.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335xevm-using-edge-triggered-interrupts-for-WLAN.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33x-Add-memory-addresses-for-crypto-modules.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33xx-Add-SmartReflex-support.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-mach-omap2-pm33xx-Disable-VT-switch.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-musb-update-PIO-mode-help-information-in-Kconfig.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap-serial-add-delay-before-suspending.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap4-rng-Remove-check-for-GP-only-device-type-in-RN.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0002-AM335x-OCF-Driver-for-Linux-3.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0002-Smartreflex-limited-to-ES-1.0.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0002-am335x-Add-suspend-resume-routines-to-crypto-driver.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33x-Add-crypto-device-and-resource-structures.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33xx-Enable-CONFIG_AM33XX_SMARTREFLEX.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0002-crypto-omap4-sham-Use-finer-grained-PM-management.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0003-am33x-Add-crypto-device-and-resource-structure-for-T.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0003-crypto-omap4-sham-Add-suspend-resume-PM-support.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0004-am33x-Add-crypto-drivers-to-Kconfig-and-Makefiles.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0004-crypto-omap4-sham-Don-t-use-hardcoded-base-address.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0005-ARM-AM33xx-hwmod-Convert-AES0-crypto-device-data-to-.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0005-am33x-Create-header-file-for-OMAP4-crypto-modules.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0006-am33x-Create-driver-for-TRNG-crypto-module.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0006-crypto-omap4-aes-User-finer-grained-PM-management.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0007-am33x-Create-driver-for-AES-crypto-module.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0007-crypto-omap4-aes-Add-suspend-resume-PM-support.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0008-am33x-Create-driver-for-SHA-MD5-crypto-module.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0008-crypto-omap4-aes-Don-t-use-hardcoded-base-address.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0009-ARM-AM33xx-hwmod-Convert-RNG-device-data-to-hwmod.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/0010-hwrng-omap4-rng-Convert-to-use-pm_runtime-API.patch
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp-3.2/defconfig
 delete mode 100644 recipes-kernel/linux/linux-am335x-psp_3.2.bb
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0001-expansion-add-buddy-param-for-expansionboard-names.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0002-expansion-add-mmc-regulator-and-ds1307-rtc.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0003-expansion-add-zippy.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0004-expansion-add-zippy2.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0005-expansion-add-trainer.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0006-expansion-add-ulcd.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0007-beagleboard-reinstate-usage-of-hi-speed-PLL-divider.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0008-Turn-on-the-USB-regulator-on-Beagle-xM-explicitly.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0009-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0010-beagleboard-fix-uLCD7-support.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0011-default-to-fifo-mode-5-for-old-musb-beagles.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0014-expansion-add-wifi.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagleboard/defconfig
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/beagleboard/logo_linux_clut224.ppm
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/distro/0001-kbuild-deb-pkg-set-host-machine-after-dpkg-gencontro.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0003-switch-debugfs-to-umode_t.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0007-wireless-libertas-remove-redundant-NULL-tests-before.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0008-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0009-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0010-libertas-Firmware-loading-simplifications.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0011-libertas-harden-up-exit-paths.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0012-libertas-add-asynchronous-firmware-loading-capabilit.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0013-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0014-libertas-USB-convert-to-asynchronous-firmware-loadin.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0015-libertas-CS-convert-to-asynchronous-firmware-loading.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0016-libertas-add-missing-include.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/libertas/0017-remove-debug-msgs-due-to-missing-in_interrupt.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0001-ksz8851-eeprom-93cx6-add-drive_data.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0002-ksz8851-eeprom-93cx6-add-eeprom_93cx6_write.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0003-ksz8851-read_mac_addr.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0004-ksz8851-93cx6-eeprom-access.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0005-ks8851.h-it-helps-to-include-the-include-file.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0006-ksz8851-move-to-header.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0007-ksz8851-move-more-to-header.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0008-ksz8851-share-ks8851_tx_hdr-union.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0009-ksz8851-add-is_level_irq.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0010-ksz8851-turn-off-hardware-interrupt-druing-receive-p.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0011-ksz8851-make-sure-is-awake-before-writing-mac.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0012-ksz8851-add-mutex-lock-unlock-to-ks.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0013-ksz8851-add-ks8851_tx_check.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0014-ksz8851-move-ks8851_set_powermode.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0001-cpufreq-OMAP-cleanup-for-multi-SoC-support-move-into.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0002-cpufreq-OMAP-Add-SMP-support-for-OMAP4.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0003-cpufreq-OMAP-Enable-all-CPUs-in-shared-policy-mask.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0004-cpufreq-OMAP-notify-even-with-bad-boot-frequency.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0005-cpufreq-OMAP-move-clk-name-decision-to-init.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0006-cpufreq-OMAP-deny-initialization-if-no-mpudev.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0007-cpufreq-OMAP-dont-support-freq_table.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0008-cpufreq-OMAP-only-supports-OPP-library.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0009-cpufreq-OMAP-put-clk-if-cpu_init-failed.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0010-cpufreq-OMAP-fix-freq_table-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0011-cpufreq-OMAP-fixup-for-omap_device-changes-include-l.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0001-omap3-Increase-limit-on-bootarg-mpurate.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0002-ARM-OMAP-AM3517-3505-fix-crash-on-boot-due-to-incorr.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0003-ARM-OMAP4-hwmod-Don-t-wait-for-the-idle-status-if-mo.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0004-ARM-OMAP4-clock-Add-CPU-local-timer-clock-node.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0005-ARM-OMAP3-hwmod-data-disable-multiblock-reads-on-MMC.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0006-OMAP-HWMOD-add-es3plus-to-am36xx-am35xx.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/panda/0001-panda-fix-wl12xx-regulator.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/panda/0002-panda-enable-bluetooth.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/panda/0003-ti-st-st-kim-fixing-firmware-path.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/sakoman/0002-video-add-timings-for-hd720.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/sakoman/0003-omap-mmc-Adjust-dto-to-eliminate-timeout-errors.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/sgx/0001-Revert-OMAP-DSS2-remove-update_mode-from-omapdss-v3.2.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline-3.2/touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch
 delete mode 100644 recipes-kernel/linux/linux-mainline_3.2.bb
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0001-MAINTAINERS-stable-Update-address.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0002-Documentation-Update-stable-address.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0003-firmware-Fix-an-oops-on-reading-fw_priv-fw-in-sysfs-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0004-rt2800usb-Move-ID-out-of-unknown.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0005-offb-Fix-setting-of-the-pseudo-palette-for-8bpp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0006-offb-Fix-bug-in-calculating-requested-vram-size.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0007-libertas-clean-up-scan-thread-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0008-bcma-support-for-suspend-and-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0009-wl12xx-Validate-FEM-index-from-ini-file-and-FW.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0010-wl12xx-Check-buffer-bound-when-processing-nvs-data.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0011-wl12xx-Restore-testmode-ABI.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0012-powerpc-time-Handle-wrapping-of-decrementer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0013-powerpc-Fix-unpaired-probe_hcall_entry-and-probe_hca.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0014-IB-qib-Fix-a-possible-data-corruption-when-receiving.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0015-IB-uverbs-Protect-QP-multicast-list.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0016-iwlagn-fix-TID-use-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0017-iwlagn-fix-remove-use-of-PAGE_SIZE.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0018-perf-Fix-parsing-of-__print_flags-in-TP_printk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0019-ore-Fix-crash-in-case-of-an-IO-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0020-ore-fix-BUG_ON-too-few-sgs-when-reading.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0021-ore-Must-support-none-PAGE-aligned-IO.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0022-ore-FIX-breakage-when-MISC_FILESYSTEMS-is-not-set.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0023-reiserfs-Fix-quota-mount-option-parsing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0024-reiserfs-Force-inode-evictions-before-umount-to-avoi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0025-ext3-Don-t-warn-from-writepage-when-readonly-inode-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0026-drivers-hv-Don-t-OOPS-when-you-cannot-init-vmbus.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0027-Drivers-hv-Fix-a-bug-in-vmbus_driver_unregister.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0028-USB-update-documentation-for-usbmon.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0029-usbfs-Fix-oops-related-to-user-namespace-conversion.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0030-atmel_serial-fix-spinlock-lockup-in-RS485-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0031-cgroup-fix-to-allow-mounting-a-hierarchy-by-name.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0032-udf-Fix-deadlock-when-converting-file-from-in-ICB-on.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0033-drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0034-USB-isight-fix-kernel-bug-when-loading-firmware.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0035-usb-usb-storage-doesn-t-support-dynamic-id-currently.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0036-USB-pxa168-Fix-compilation-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0037-USB-add-quirk-for-another-camera.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0038-USB-omninet-fix-write_room.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0039-usb-option-add-ZD-Incorporated-HSPA-modem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0040-USB-Add-USB-ID-for-Multiplex-RC-serial-adapter-to-cp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0041-usb-fix-number-of-mapped-SG-DMA-entries.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0042-xhci-Properly-handle-COMP_2ND_BW_ERR.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0043-usb-ch9-fix-up-MaxStreams-helper.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0044-igmp-Avoid-zero-delay-when-receiving-odd-mixture-of-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0045-asix-fix-infinite-loop-in-rx_fixup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0046-bonding-fix-error-handling-if-slave-is-busy-v2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0047-usb-cdc-acm-Fix-acm_tty_hangup-vs.-acm_tty_close-rac.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0048-xfs-fix-acl-count-validation-in-xfs_acl_from_disk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0049-Linux-3.2.1.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0001-autofs-work-around-unhappy-compat-problem-on-x86-64.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0002-Fix-autofs-compile-without-CONFIG_COMPAT.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0003-compat-fix-compile-breakage-on-s390.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0004-drm-i915-Prevent-a-machine-hang-by-checking-crtc-act.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0005-ARM-LPC32xx-serial.c-HW-bug-workaround.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0006-ARM-LPC32xx-serial.c-Fixed-loop-limit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0007-ARM-LPC32xx-irq.c-Clear-latched-event.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0008-ARM-LPC32xx-Fix-interrupt-controller-init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0009-ARM-LPC32xx-Fix-irq-on-GPI_28.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0010-watchdog-hpwdt-clean-up-set_memory_x-call-for-32-bit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0011-i2c-mxs-only-flag-completion-when-queue-is-completel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0012-regulator-fix-the-ldo-configure-according-to-88pm860.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0013-S390-KEYS-Enable-the-compat-keyctl-wrapper-on-s390x.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0014-perf-x86-kvm-Fix-Host-Only-Guest-Only-counting-with-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0015-ALSA-hda-realtek-Fix-resume-of-multiple-input-source.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0016-ALSA-hda-Add-a-fake-mute-feature.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0017-ALSA-hda-Always-set-HP-pin-in-unsol-handler-for-STAC.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0018-regset-Prevent-null-pointer-reference-on-readonly-re.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0019-regset-Return-EFAULT-not-EIO-on-host-side-memory-fau.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0020-mfd-Fix-ACPI-conflict-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0021-mfd-Test-for-jack-detection-when-deciding-if-wm8994-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0022-genirq-Clear-action-thread_mask-if-IRQ_ONESHOT-is-no.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0023-ARM-S3C24XX-DMA-resume-regression-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0024-Move-Logitech-Harmony-900-from-cdc_ether-to-zaurus.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0025-alpha-fix-32-64-bit-bug-in-futex-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0026-mmc-atmel-mci-don-t-use-dma-features-when-using-DMA-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0027-mmc-sdhci-esdhc-imx-fix-for-mmc-cards-on-i.MX5.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0028-aio-wake-up-waiters-when-freeing-unused-kiocbs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0029-mm-memcg-Correct-unregistring-of-events-attached-to-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0030-NOMMU-Don-t-need-to-clear-vm_mm-when-deleting-a-VMA.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0031-cifs-fix-dentry-refcount-leak-when-opening-a-FIFO-on.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0032-mac80211-zero-initialize-count-field-in-ieee80211_tx.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0033-ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0034-kprobes-return-proper-error-code-from-register_kprob.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0035-mm-thp-fix-BUG-on-mm-nr_ptes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0036-iwlwifi-fix-key-removal.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0037-tty-powerpc-early-udbg-consoles-can-t-be-modules.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0038-S390-qdio-fix-handler-function-arguments-for-zfcp-da.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0039-rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0040-HID-usbhid-Add-NOGET-quirk-for-the-AIREN-Slim-keyboa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0041-crypto-mv_cesa-fix-final-callback-not-ignoring-input.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0042-osd_uld-Bump-MAX_OSD_DEVICES-from-64-to-1-048-576.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0043-viafb-select-HW-scaling-on-VX900-for-IGA2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0044-viafb-fix-IGA1-modesetting-on-VX900.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0045-ASoC-dapm-Check-for-bias-level-when-powering-down.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0046-ASoC-i.MX-SSI-Fix-DSP_A-format.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0047-bsg-fix-sysfs-link-remove-warning.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0048-avr32-select-generic-atomic64_t-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0049-ACPI-PM-Do-not-save-restore-NVS-on-Asus-K54C-K54HR.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0050-rtl8192cu-Add-new-device-IDs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0051-drm-i915-gen7-implement-rczunit-workaround.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0052-drm-i915-gen7-Implement-an-L3-caching-workaround.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0053-drm-i915-gen7-work-around-a-system-hang-on-IVB.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0054-drm-i915-gen7-Disable-the-RHWO-optimization-as-it-ca.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0055-drm-i915-fix-ELD-writing-for-SandyBridge.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0056-ARM-orion-Fix-USB-phy-for-orion5x.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0057-ARM-orion-Fix-Orion5x-GPIO-regression-from-MPP-clean.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0058-OMAP-4430SDP-Panda-use-gpio_free_array-to-free-HDMI-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0059-OMAP-4430SDP-Panda-rename-HPD-GPIO-to-CT_CP_HPD.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0060-OMAPDSS-remove-wrong-HDMI-HPD-muxing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0061-OMAP-4430SDP-Panda-setup-HDMI-GPIO-muxes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0062-OMAP-4430SDP-Panda-add-HDMI-HPD-gpio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0063-OMAPDSS-HDMI-PHY-burnout-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0064-OMAPDSS-HDMI-hot-plug-detect-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0065-ARM-7345-1-errata-update-workaround-for-A9-erratum-7.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0066-ARM-7354-1-perf-limit-sample_period-to-half-max_peri.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0067-ARM-7355-1-perf-clear-overflow-flag-when-disabling-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0068-ARM-7356-1-perf-check-that-we-have-an-event-in-the-P.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0069-ARM-7357-1-perf-fix-overflow-handling-for-xscale2-PM.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0070-media-staging-lirc_serial-Fix-init-exit-order.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0071-media-staging-lirc_serial-Free-resources-on-failure-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0072-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0073-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0074-Input-ALPS-fix-touchpad-detection-when-buttons-are-p.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0075-hwmon-pmbus_core-Fix-maximum-number-of-POUT-alarm-at.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0076-hwmon-jc42-Add-support-for-ST-Microelectronics-STTS2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0077-hwmon-jc42-Add-support-for-AT30TS00-TS3000GB2-TSE200.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0078-hwmon-zl6100-Maintain-delay-parameter-in-driver-inst.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0080-carl9170-fix-frame-delivery-if-sta-is-in-powersave-m.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0081-drm-radeon-kms-set-SX_MISC-in-the-r6xx-blit-code-v2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0082-net-usbnet-avoid-recursive-locking-in-usbnet_stop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0083-x86-amd-iommu_set_device_table-must-not-be-__init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0084-dm-ioctl-do-not-leak-argv-if-target-message-only-con.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0085-dm-io-fix-discard-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0086-dm-flakey-fix-crash-on-read-when-corrupt_bio_byte-no.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0087-dm-thin-metadata-remove-incorrect-close_device-on-cr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0088-dm-thin-metadata-unlock-superblock-in-init_pmd-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0089-dm-thin-metadata-decrement-counter-after-removing-ma.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0090-dm-raid-set-MD_CHANGE_DEVS-when-rebuilding.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0091-dm-raid-fix-flush-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0092-cs5535-mfgpt-don-t-call-__init-function-from-__devin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0093-mfd-Fix-cs5535-section-mismatch.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0094-spi-topcliff-pch-rename-pch_spi_pcidev-to-pch_spi_pc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0095-Linux-3.2.10.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0001-Revert-mfd-Test-for-jack-detection-when-deciding-if-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0002-Linux-3.2.11.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0001-ASoC-neo1973-fix-neo1973-wm8753-initialization.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0002-ALSA-hda-realtek-Apply-the-coef-setup-only-to-ALC269.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0003-aio-fix-io_setup-io_destroy-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0004-aio-fix-the-too-late-munmap-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0005-x86-Derandom-delay_tsc-for-64-bit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0006-PCI-ignore-pre-1.1-ASPM-quirking-when-ASPM-is-disabl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0007-omap3isp-ccdc-Fix-crash-in-HS-VS-interrupt-handler.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0008-rt2x00-fix-random-stalls.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0009-perf-x86-Fix-local-vs-remote-memory-events-for-NHM-W.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0010-CIFS-Do-not-kmalloc-under-the-flocks-spinlock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0011-vfs-fix-return-value-from-do_last.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0012-vfs-fix-double-put-after-complete_walk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0013-acer-wmi-No-wifi-rfkill-on-Lenovo-machines.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0014-atl1c-dont-use-highprio-tx-queue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0015-neighbour-Fixed-race-condition-at-tbl-nht.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0016-ipsec-be-careful-of-non-existing-mac-headers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0017-ppp-fix-ppp_mp_reconstruct-bad-seq-errors.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0018-sfc-Fix-assignment-of-ip_summed-for-pre-allocated-sk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0019-tcp-fix-false-reordering-signal-in-tcp_shifted_skb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0020-vmxnet3-Fix-transport-header-size.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0021-packetengines-fix-config-default.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0022-r8169-corrupted-IP-fragments-fix-for-large-mtu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0023-tcp-don-t-fragment-SACKed-skbs-in-tcp_mark_head_lost.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0024-bridge-check-return-value-of-ipv6_dev_get_saddr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0025-tcp-fix-tcp_shift_skb_data-to-not-shift-SACKed-data-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0026-IPv6-Fix-not-join-all-router-mcast-group-when-forwar.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0027-usb-asix-Patch-for-Sitecom-LN-031.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0028-regulator-Fix-setting-selector-in-tps6524x-set_volta.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0029-block-Fix-NULL-pointer-dereference-in-sd_revalidate_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0030-block-sx8-fix-pointer-math-issue-getting-fw-version.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0031-block-fix-__blkdev_get-and-add_disk-race-condition.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0032-Block-use-a-freezable-workqueue-for-disk-event-polli.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0033-sparc32-Add-Av8-to-assembler-command-line.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0034-hwmon-w83627ehf-Fix-writing-into-fan_stop_time-for-N.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0035-hwmon-w83627ehf-Fix-memory-leak-in-probe-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0036-hwmon-w83627ehf-Fix-temp2-source-for-W83627UHG.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0037-rapidio-tsi721-fix-bug-in-register-offset-definition.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0038-i2c-algo-bit-Fix-spurious-SCL-timeouts-under-heavy-l.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0039-iscsi-target-Fix-reservation-conflict-EBUSY-response.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0040-target-Fix-compatible-reservation-handling-CRH-1-wit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0041-hwmon-zl6100-Enable-interval-between-chip-accesses-f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0042-Linux-3.2.12.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0001-nilfs2-fix-NULL-pointer-dereference-in-nilfs_load_su.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0002-afs-Read-of-file-returns-EBADMSG.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0003-afs-Remote-abort-can-cause-BUG-in-rxrpc-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0004-perf-tools-Incorrect-use-of-snprintf-results-in-SEGV.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0005-perf-tools-Use-scnprintf-where-applicable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0006-tcp-fix-syncookie-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0007-ipv6-Don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0008-iwl3945-fix-possible-il-txq-NULL-pointer-dereference.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0009-powerpc-pmac-Fix-SMP-kernels-on-pre-core99-UP-machin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0010-Linux-3.2.13.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0001-USB-option-Add-MediaTek-MT6276M-modem-app-interfaces.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0002-USB-option-driver-adding-support-for-Telit-CC864-SIN.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0003-USB-option-make-interface-blacklist-work-again.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0004-USB-option-add-ZTE-MF820D.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0005-staging-zcache-avoid-AB-BA-deadlock-condition.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0006-USB-ftdi_sio-fix-problem-when-the-manufacture-is-a-N.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0007-USB-ftdi_sio-add-support-for-BeagleBone-rev-A5.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0008-USB-Microchip-VID-mislabeled-as-Hornby-VID-in-ftdi_s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0009-USB-ftdi_sio-new-PID-Distortec-JTAG-lock-pick.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0010-USB-ftdi_sio-add-support-for-FT-X-series-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0011-USB-ftdi_sio-new-PID-LUMEL-PD12.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0012-powerpc-usb-fix-bug-of-kernel-hang-when-initializing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0013-staging-r8712u-Add-missing-initialization-and-remove.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0014-staging-r8712u-Fix-regression-introduced-by-commit-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0015-staging-r8712u-Fix-regression-in-signal-level-after-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0016-usb-dwc3-fix-bogus-test-in-dwc3_gadget_start_isoc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0017-usb-dwc3-use-proper-function-for-setting-endpoint-na.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0018-usb-gadgetfs-return-number-of-bytes-on-ep0-read-requ.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0019-USB-gadget-Make-g_hid-device-class-conform-to-spec.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0020-futex-Cover-all-PI-opcodes-with-cmpxchg-enabled-chec.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0021-sysfs-Fix-memory-leak-in-sysfs_sd_setsecdata.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0022-tty-moxa-fix-bit-test-in-moxa_start.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0023-TTY-Wrong-unicode-value-copied-in-con_set_unimap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0024-USB-serial-fix-console-error-reporting.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0025-cdc-wdm-Fix-more-races-on-the-read-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0026-cdc-wdm-Don-t-clear-WDM_READ-unless-entire-read-buff.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0027-usb-fsl_udc_core-Fix-scheduling-while-atomic-dump-me.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0028-usb-Fix-build-error-due-to-dma_mask-is-not-at-pdev_a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0029-USB-ums_realtek-do-not-use-stack-memory-for-DMA-in-_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0030-USB-qcserial-add-several-new-serial-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0031-USB-qcserial-don-t-grab-QMI-port-on-Gobi-1000-device.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0032-usb-serial-Add-support-for-the-Sealevel-SeaLINK-8-20.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0033-usb-cp210x-Update-to-support-CP2105-and-multiple-int.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0034-USB-serial-mos7840-Fixed-MCS7820-device-attach-probl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0035-rt2x00-Add-support-for-D-Link-DWA-127-to-rt2800usb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0036-rtlwifi-rtl8192c_common-rtl8192de-Check-for-allocati.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0037-rtlwifi-Handle-previous-allocation-failures-when-fre.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0038-rtlwifi-rtl8192c-Prevent-sleeping-from-invalid-conte.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0039-rtlwifi-rtl8192ce-Fix-loss-of-receive-performance.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0040-iwlwifi-always-monitor-for-stuck-queues.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0041-math-Introduce-div64_long.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0042-ntp-Fix-integer-overflow-when-setting-time.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0043-uevent-send-events-in-correct-order-according-to-seq.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0044-genirq-Fix-long-term-regression-in-genirq-irq_set_ir.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0045-genirq-Fix-incorrect-check-for-forced-IRQ-thread-han.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0046-rtc-Disable-the-alarm-in-the-hardware-v2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0047-p54spi-Release-GPIO-lines-and-IRQ-on-error-in-p54spi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0048-rtnetlink-Fix-VF-IFLA-policy.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0049-IB-iser-Post-initial-receive-buffers-before-sending-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0050-ima-fix-Kconfig-dependencies.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0051-x86-ioapic-Add-register-level-checks-to-detect-bogus.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0052-mm-thp-fix-pmd_bad-triggering-in-code-paths-holding-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0053-TPM-Zero-buffer-whole-after-copying-to-userspace.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0054-PM-Domains-Fix-handling-of-wakeup-devices-during-sys.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0055-bootmem-sparsemem-remove-limit-constraint-in-alloc_b.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0056-hugetlbfs-avoid-taking-i_mutex-from-hugetlbfs_read.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0057-ASoC-fsl-p1022ds-tell-the-WM8776-codec-driver-that-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0058-ASoC-pxa-ssp-atomically-set-stream-active-masks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0059-tcm_loop-Set-residual-field-for-SCSI-commands.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0060-iscsi-target-Fix-iscsit_alloc_buffs-failure-cases.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0061-iscsi-target-Fix-dynamic-explict-NodeACL-pointer-ref.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0062-ALSA-hda-fix-printing-of-high-HDMI-sample-rates.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0063-usb-gadget-fix-a-section-mismatch-when-compiling-g_f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0064-udlfb-remove-sysfs-framebuffer-device-with-USB-.disc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0065-tcm_fc-Fix-fc_exch-memory-leak-in-ft_send_resp_statu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0066-md-bitmap-ensure-to-load-bitmap-when-creating-via-sy.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0067-md-don-t-set-md-arrays-to-readonly-on-shutdown.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0068-md-raid1-raid10-avoid-deadlock-during-resync-recover.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0069-md-fix-clearing-of-the-changed-flags-for-the-bad-blo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0070-drm-i915-Only-clear-the-GPU-domains-upon-a-successfu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0071-drm-radeon-Restrict-offset-for-legacy-hardware-curso.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0072-drm-radeon-kms-fix-analog-load-detection-on-DVI-I-co.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0073-drm-radeon-kms-add-connector-quirk-for-Fujitsu-D3003.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0074-target-Don-t-set-WBUS16-or-SYNC-bits-in-INQUIRY-resp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0075-target-fix-use-after-free-in-target_report_luns.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0076-target-prevent-NULL-pointer-dereference-in-target_re.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0077-target-Fix-16-bit-target-ports-for-SET-TARGET-PORT-G.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0078-Bluetooth-Add-AR30XX-device-ID-on-Asus-laptops.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0079-HID-add-extra-hotkeys-in-Asus-AIO-keyboards.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0080-HID-add-more-hotkeys-in-Asus-AIO-keyboards.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0081-pata_legacy-correctly-mask-recovery-field-for-HT6560.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0082-firewire-ohci-fix-too-early-completion-of-IR-multich.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0083-KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0084-KVM-x86-fix-missing-checks-in-syscall-emulation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0085-NFS-Properly-handle-the-case-where-the-delegation-is.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0086-NFSv4-Return-the-delegation-if-the-server-returns-NF.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0087-xfs-fix-inode-lookup-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0088-CIFS-Respect-negotiated-MaxMpxCount.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0089-cifs-fix-issue-mounting-of-DFS-ROOT-when-redirecting.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0090-CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0091-UBI-fix-error-handling-in-ubi_scan.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0092-UBI-fix-eraseblock-picking-criteria.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0093-SUNRPC-We-must-not-use-list_for_each_entry_safe-in-r.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0094-usbnet-increase-URB-reference-count-before-usb_unlin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0095-usbnet-don-t-clear-urb-dev-in-tx_complete.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0096-e1000e-Avoid-wrong-check-on-TX-hang.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0097-x86-32-Fix-endless-loop-when-processing-signals-for-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0098-proc-ns-use-d_set_d_op-API-to-set-dentry-ops-in-proc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0099-iommu-amd-Fix-section-warning-for-prealloc_protectio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0100-sysctl-protect-poll-in-entries-that-may-go-away.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0101-hwmon-fam15h_power-Correct-sign-extension-of-running.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0102-lgdt330x-fix-signedness-error-in-i2c_read_demod_byte.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0103-pvrusb2-fix-7MHz-8MHz-DVB-T-tuner-support-for-HVR190.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0104-mxl111sf-fix-error-on-stream-stop-in-mxl111sf_ep6_st.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0105-NFSv4-Rate-limit-the-state-manager-warning-messages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0106-PM-Hibernate-Enable-usermodehelpers-in-hibernate-err.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0107-jbd2-clear-BH_Delay-BH_Unwritten-in-journal_unmap_bu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0108-ext4-ignore-EXT4_INODE_JOURNAL_DATA-flag-with-delall.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0109-ext4-fix-race-between-unwritten-extent-conversion-an.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0110-ext4-fix-race-between-sync-and-completed-io-work.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0111-ext4-check-for-zero-length-extent.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0112-vfs-fix-d_ancestor-case-in-d_materialize_unique.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0113-ARM-tegra-select-required-CPU-and-L2-errata-options.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0114-udf-Fix-deadlock-in-udf_release_file.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0115-gpio-omap-fix-_set_gpio_irqenable-implementation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0116-gpio-davinci-fix-oops-on-unbanked-gpio-irq-request.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0117-gpio-davinci-fix-enabling-unbanked-GPIO-IRQs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0118-dm-crypt-fix-mempool-deadlock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0119-dm-crypt-add-missing-error-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0120-dm-exception-store-fix-init-error-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0121-dm-persistent-data-fix-btree-rebalancing-after-remov.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0122-dm-thin-fix-stacked-bi_next-usage.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0123-backlight-fix-typo-in-tosa_lcd.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0124-xfs-Fix-oops-on-IO-error-during-xlog_recover_process.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0125-slub-Do-not-hold-slub_lock-when-calling-sysfs_slab_a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0126-NFSv4-Fix-two-infinite-loops-in-the-mount-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0127-NFSv4.1-Fix-layoutcommit-error-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0128-module-Remove-module-size-limit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0129-Bluetooth-btusb-fix-bInterval-for-high-super-speed-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0130-drm-i915-suspend-fbdev-device-around-suspend-hiberna.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0131-Fix-pppol2tp-getsockname.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0132-ipv6-fix-incorrent-ipv6-ipsec-packet-fragment.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0133-net-bpf_jit-fix-BPF_S_LDX_B_MSH-compilation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0134-net-fix-a-potential-rcu_read_lock-imbalance-in-rt6_f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0135-net-fix-napi_reuse_skb-skb-reserve.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0136-Remove-printk-from-rds_sendmsg.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0137-sky2-override-for-PCI-legacy-power-management.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0138-xfrm-Access-the-replay-notify-functions-via-the-regi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0139-lockd-fix-arg-parsing-for-grace_period-and-timeout.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0140-x86-tsc-Skip-refined-tsc-calibration-on-systems-with.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0141-x86-tls-Off-by-one-limit-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0142-compat-use-sys_sendfile64-implementation-for-sendfil.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0143-rtc-Provide-flag-for-rtc-devices-that-don-t-support-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0144-nfsd-don-t-allow-zero-length-strings-in-cache_parse.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0145-serial-sh-sci-fix-a-race-of-DMA-submit_tx-on-transfe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0146-ASPM-Fix-pcie-devices-with-non-pcie-children.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0147-Linux-3.2.14.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0001-x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immedia.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0002-tg3-Fix-5717-serdes-powerdown-problem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0003-sky2-dont-overwrite-settings-for-PHY-Quick-link.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0004-rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0005-net-usb-cdc_eem-fix-mtu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0006-Fix-non-TBI-PHY-access-a-bad-merge-undid-bug-fix-in-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0007-ASoC-wm8994-Update-WM8994-DCS-calibration.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0008-mtd-ixp4xx-oops-in-ixp4xx_flash_probe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0009-mtd-mips-lantiq-reintroduce-support-for-cmdline-part.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0010-mtd-nand-gpmi-use-correct-member-for-checking-NAND_B.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0011-mtd-sst25l-initialize-writebufsize.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0012-mtd-block2mtd-initialize-writebufsize.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0013-mtd-lart-initialize-writebufsize.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0014-mtd-m25p80-set-writebufsize.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0015-ACPI-Do-cpufreq-clamping-for-throttling-per-package-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0016-PNPACPI-Fix-device-ref-leaking-in-acpi_pnp_match.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0018-modpost-fix-ALL_INIT_DATA_SECTIONS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0019-genirq-Adjust-irq-thread-affinity-on-IRQ_SET_MASK_OK.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0020-tracing-Fix-ftrace-stack-trace-entries.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0021-tracing-Fix-ent_size-in-trace-output.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0022-m68k-mac-Add-missing-platform-check-before-registeri.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0023-mac80211-fix-possible-tid_rx-reorder_timer-use-after.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0024-rtlwifi-rtl8192ce-rtl8192cu-rtl8192de-Fix-low-gain-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0025-drm-Validate-requested-virtual-size-against-allocate.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0026-drm-radeon-kms-fix-fans-after-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0027-drm-i915-no-lvds-quirk-on-MSI-DC500.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0028-drm-i915-Sanitize-BIOS-debugging-bits-from-PIPECONF.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0029-drm-i915-Add-lock-on-drm_helper_resume_force_mode.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0030-drm-i915-quirk-away-broken-OpRegion-VBT.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0031-r8169-runtime-resume-before-shutdown.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0032-target-Fix-unsupported-WRITE_SAME-sense-payload.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0033-kgdb-debug_core-pass-the-breakpoint-struct-instead-o.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0034-kgdbts-Fix-kernel-oops-with-CONFIG_DEBUG_RODATA.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0035-kgdbts-1-of-2-fix-single-step-awareness-to-work-corr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0036-kgdbts-2-of-2-fix-single-step-awareness-to-work-corr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0037-x86-kgdb-Fix-DEBUG_RODATA-limitation-using-text_poke.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0038-CIFS-Fix-VFS-lock-usage-for-oplocked-files.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0039-ARM-tegra-remove-Tegra30-errata-from-MACH_TEGRA_DT.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0040-mmc-sdhci-dove-Fix-compile-error-by-including-module.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0041-mmc-atmel-mci-correct-data-timeout-computation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0042-tcm_fc-Add-abort-flag-for-gracefully-handling-exchan.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0043-tcm_fc-Do-not-free-tpg-structure-during-wq-allocatio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0044-sysctl-fix-write-access-to-dmesg_restrict-kptr_restr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0045-modpost-Fix-modpost-license-checking-of-vmlinux.o.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0046-x86-PCI-use-host-bridge-_CRS-info-on-MSI-MS-7253.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0047-x86-PCI-do-not-tie-MSI-MS-7253-use_crs-quirk-to-BIOS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0048-TOMOYO-Fix-mount-flags-checking-order.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0049-Revert-x86-ioapic-Add-register-level-checks-to-detec.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0050-acer-wmi-No-wifi-rfkill-on-Sony-machines.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0051-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncach.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0052-sched-x86-Fix-overflow-in-cyc2ns_offset.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0053-mfd-Clear-twl6030-IRQ-status-register-only-once.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0054-USB-Add-Motorola-Rokr-E6-Id-to-the-USBNet-driver-zau.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0055-ioat-fix-size-of-completion-for-Xen.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0056-ASoC-ak4642-fixup-mute-needs-1-step.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0057-cred-copy_process-should-clear-child-replacement_ses.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0058-iommu-amd-Make-sure-IOMMU-interrupts-are-re-enabled-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0059-Bluetooth-Fix-l2cap-conn-failures-for-ssp-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0060-Linux-3.2.15.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0001-drm-i915-mask-transcoder-select-bits-before-setting-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0002-drm-radeon-kms-fix-DVO-setup-on-some-r4xx-chips.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0003-drm-i915-ringbuffer-Exclude-last-2-cachlines-of-ring.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0004-drm-radeon-only-add-the-mm-i2c-bus-if-the-hw_i2c-mod.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0005-drm-i915-properly-compute-dp-dithering-for-user-crea.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0006-drm-i915-make-rc6-module-parameter-read-only.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0007-rtlwifi-Add-missing-DMA-buffer-unmapping-for-PCI-dri.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0008-ARM-7379-1-DT-fix-atags_to_fdt-second-call-site.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0009-ARM-7384-1-ThumbEE-Disable-userspace-TEEHBR-access-f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0010-md-bitmap-prevent-bitmap_daemon_work-running-while-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0011-Bluetooth-uart-ldisc-Fix-memory-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0012-Bluetooth-hci_ldisc-fix-NULL-pointer-dereference-on-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0013-ext4-address-scalability-issue-by-removing-extent-ca.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0014-ia64-fix-futex_atomic_cmpxchg_inatomic.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0015-drivers-rtc-rtc-pl031.c-enable-clock-on-all-ST-varia.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0016-hugetlb-fix-race-condition-in-hugetlb_fault.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0017-staging-iio-hmc5843-Fix-crash-in-probe-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0018-tty-serial-altera_uart-Check-for-NULL-platform_data-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0019-sparc64-Eliminate-obsolete-__handle_softirq-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0020-sparc64-Fix-bootup-crash-on-sun4v.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0021-cciss-Initialize-scsi-host-max_sectors-for-tape-driv.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0022-cciss-Fix-scsi-tape-io-with-more-than-255-scatter-ga.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0023-video-uvesafb-Fix-oops-that-uvesafb-try-to-execute-N.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0024-nohz-Fix-stale-jiffies-update-in-tick_nohz_restart.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0025-pch_uart-Fix-MSI-setting-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0026-USB-serial-fix-race-between-probe-and-open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0027-USB-pl2303-fix-DTR-RTS-being-raised-on-baud-rate-cha.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0028-USB-option-re-add-NOVATELWIRELESS_PRODUCT_HSPA_HIGHS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0029-USB-ftdi_sio-fix-status-line-change-handling-for-TIO.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0030-USB-ftdi_sio-fix-race-condition-in-TIOCMIWAIT-and-ab.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0031-USB-sierra-add-support-for-Sierra-Wireless-MC7710.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0032-USB-don-t-clear-urb-dev-in-scatter-gather-library.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0033-USB-don-t-ignore-suspend-errors-for-root-hubs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0034-xhci-don-t-re-enable-IE-constantly.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0035-xhci-Don-t-write-zeroed-pointers-to-xHC-registers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0036-xhci-Restore-event-ring-dequeue-pointer-on-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0037-USB-fix-bug-of-device-descriptor-got-from-superspeed.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0038-xHCI-add-XHCI_RESET_ON_RESUME-quirk-for-VIA-xHCI-hos.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0039-xHCI-Correct-the-define-XHCI_LEGACY_DISABLE_SMI.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0040-fix-tlb-flushing-for-page-table-pages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0041-serial-PL011-clear-pending-interrupts.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0042-serial-PL011-move-interrupt-clearing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0043-fcaps-clear-the-same-personality-flags-as-suid-when-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0044-ath9k-fix-max-noise-floor-threshold.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0045-xhci-Fix-register-save-restore-order.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0046-Bluetooth-hci_core-fix-NULL-pointer-dereference-at-u.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0047-pch_gpio-Support-new-device-LAPIS-Semiconductor-ML78.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0048-gpio-Add-missing-spin_lock_init-in-gpio-pch-driver.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0049-usb-gadget-pch_udc-Fix-disconnect-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0050-usb-gadget-pch_udc-Fix-wrong-return-value.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0051-usb-gadget-pch_udc-Fix-USB-suspend-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0052-usb-gadget-pch_udc-Fix-usb-gadget-pch_udc-Fix-ether-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0053-usb-gadget-pch_udc-Reduce-redundant-interrupt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0054-ACPICA-Fix-to-allow-region-arguments-to-reference-ot.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0055-security-fix-compile-error-in-commoncap.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0056-pch_gbe-Do-not-abort-probe-on-bad-MAC.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0057-pch_gbe-memory-corruption-calling-pch_gbe_validate_o.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0058-pch_dma-Support-new-device-LAPIS-Semiconductor-ML783.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0059-spi-topcliff-pch-fix-Wuninitialized-warning.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0060-spi-topcliff-pch-Support-new-device-LAPIS-Semiconduc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0061-Bluetooth-Adding-USB-device-13d3-3375-as-an-Atheros-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0062-Bluetooth-Add-Atheros-maryann-PIDVID-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0063-Bluetooth-Add-support-for-BCM20702A0-0a5c-21e3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0064-futex-Do-not-leak-robust-list-to-unprivileged-proces.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0065-drm-radeon-kms-fix-the-regression-of-DVI-connector-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0066-drm-radeon-disable-MSI-on-RV515.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0067-drm-radeon-fix-load-detect-on-rn50-with-hardcoded-ED.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0068-Linux-3.2.16.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0001-crypto-sha512-Fix-byte-counter-overflow-in-SHA-512.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0002-ALSA-hda-conexant-Don-t-set-HP-pin-control-bit-uncon.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0003-ALSA-hda-conexant-Set-up-the-missing-docking-station.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0004-ARM-clps711x-serial-driver-hungs-are-a-result-of-cal.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0005-ARM-OMAP1-DMTIMER-fix-broken-timer-clock-source-sele.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0006-mmc-fixes-for-eMMC-v4.5-discard-operation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0007-mmc-fixes-for-eMMC-v4.5-sanitize-operation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0008-mmc-unbreak-sdhci-esdhc-imx-on-i.MX25.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0009-xen-gntdev-do-not-set-VM_PFNMAP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0010-xen-xenbus-Add-quirk-to-deal-with-misconfigured-back.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0011-USB-yurex-Remove-allocation-of-coherent-buffer-for-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0012-USB-yurex-Fix-missing-URB_NO_TRANSFER_DMA_MAP-flag-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0013-uwb-fix-use-of-del_timer_sync-in-interrupt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0014-uwb-fix-error-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0015-davinci_mdio-Fix-MDIO-timeout-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0016-mwifiex-update-pcie8766-scratch-register-addresses.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0017-brcm80211-smac-resume-transmit-fifo-upon-receiving-f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0018-rc-core-set-mode-for-winbond-cir.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0019-drxk-Does-not-unlock-mutex-if-sanity-check-failed-in.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0020-cfg80211-fix-interface-combinations-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0021-Fix-modpost-failures-in-fedora-17.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0022-mm-fix-s390-BUG-by-__set_page_dirty_no_writeback-on-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0023-md-fix-possible-corruption-of-array-metadata-on-shut.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0024-jbd2-use-GFP_NOFS-for-blkdev_issue_flush.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0025-USB-serial-cp210x-Fixed-usb_control_msg-timeout-valu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0026-pch_uart-Fix-dma-channel-unallocated-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0027-drivers-tty-amiserial.c-add-missing-tty_unlock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0028-USB-sierra-avoid-QMI-wwan-interface-on-MC77xx.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0030-EHCI-always-clear-the-STS_FLR-status-bit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0031-USB-fix-deadlock-in-bConfigurationValue-attribute-me.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0032-usb-gadget-eliminate-NULL-pointer-dereference-bugfix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0033-usb-musb-omap-fix-crash-when-musb-glue-omap-gets-ini.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0034-usb-musb-omap-fix-the-error-check-for-pm_runtime_get.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0035-PCI-Add-quirk-for-still-enabled-interrupts-on-Intel-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0036-ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0037-KVM-unmap-pages-from-the-iommu-when-slots-are-remove.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0038-dell-laptop-add-3-machines-that-has-touchpad-LED.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0039-dell-laptop-touchpad-LED-should-persist-its-status-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0040-Bluetooth-Add-support-for-Atheros-04ca-3005.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0041-Don-t-limit-non-nested-epoll-paths.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0042-spi-Fix-device-unregistration-when-unregistering-the.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0043-spi-mpc83xx-fix-NULL-pdata-dereference-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0044-rt2800-Add-support-for-the-Fujitsu-Stylistic-Q550.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0045-rt2x00-Identify-rt2800usb-chipsets.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0046-nfsd-fix-b0rken-error-value-for-setattr-on-read-only.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0047-nfsd-fix-error-values-returned-by-nfsd4_lockt-when-n.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0048-nfsd-fix-endianness-breakage-in-TEST_STATEID-handlin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0049-nfsd-fix-compose_entry_fh-failure-exits.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0050-btrfs-btrfs_root_readonly-broken-on-big-endian.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0051-ocfs2-l_next_free_req-breakage-on-big-endian.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0052-ocfs-rl_used-breakage-on-big-endian.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0053-ocfs2-rl_count-endianness-breakage.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0054-ocfs2-e_leaf_clusters-endianness-breakage.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0055-lockd-fix-the-endianness-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0056-usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0057-net-fix-proc-net-dev-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0058-nfsd-don-t-fail-unchecked-creates-of-non-special-fil.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0059-ppp-Don-t-stop-and-restart-queue-on-every-TX-packet.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0060-tcp-allow-splice-to-build-full-TSO-packets.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0061-sctp-Allow-struct-sctp_event_subscribe-to-grow-witho.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0062-bridge-Do-not-send-queries-on-multicast-group-leaves.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0063-ipv6-fix-array-index-in-ip6_mc_add_src.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0064-phonet-Check-input-from-user-before-allocating.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0065-bonding-properly-unset-current_arp_slave-on-slave-li.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0066-wimax-i2400m-prevent-a-possible-kernel-bug-due-to-mi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0067-netlink-fix-races-after-skb-queueing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0068-net-fix-a-race-in-sock_queue_err_skb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0069-tcp-fix-tcp_rcv_rtt_update-use-of-an-unscaled-RTT-sa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0070-net-allow-pskb_expand_head-to-get-maximum-tailroom.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0071-tcp-fix-tcp_trim_head.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0072-tcp-avoid-order-1-allocations-on-wifi-and-tx-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0073-atl1-fix-kernel-panic-in-case-of-DMA-errors.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0074-8139cp-set-intr-mask-after-its-handler-is-registered.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0075-net-smsc911x-fix-skb-handling-in-receive-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0076-net-ethernet-ks8851_mll-fix-rx-frame-buffer-overflow.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0077-net_sched-gred-Fix-oops-in-gred_dump-in-WRED-mode.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0078-net-usb-smsc75xx-fix-mtu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0079-dummy-Add-ndo_uninit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0080-tcp-fix-tcp_grow_window-for-large-incoming-frames.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0081-netns-do-not-leak-net_generic-data-on-failed-init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0082-ksz884x-don-t-copy-too-much-in-netdev_set_mac_addres.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0083-net-ax25-Reorder-ax25_exit-to-remove-races.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0084-tcp-fix-TCP_MAXSEG-for-established-IPv6-passive-sock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0085-nfs-Enclose-hostname-in-brackets-when-needed-in-nfs_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0086-NFSv4-Ensure-that-the-LOCK-code-sets-exception-inode.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0087-NFSv4-Ensure-that-we-check-lock-exclusive-shared-typ.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0088-NFS-put-open-context-on-error-in-nfs_pagein_multi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0089-NFS-put-open-context-on-error-in-nfs_flush_multi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0090-x86-microcode-Fix-sysfs-warning-during-module-unload.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0091-x86-apic-APIC-code-touches-invalid-MSR-on-P5-class-m.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0092-Revert-autofs-work-around-unhappy-compat-problem-on-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0093-xen-correctly-check-for-pending-events-when-restorin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0094-xen-smp-Fix-crash-when-booting-with-ACPI-hotplug-CPU.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0095-ASoC-dapm-Ensure-power-gets-managed-for-line-widgets.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0096-ASoC-wm8994-Improve-sequencing-of-AIF-channel-enable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0097-dmaengine-at_hdmac-remove-clear-on-read-in-atc_dosta.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0098-sched-Fix-OOPS-when-build_sched_domains-percpu-alloc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0099-tracing-Fix-stacktrace-of-latency-tracers-irqsoff-an.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0100-hwmon-fam15h_power-fix-bogus-values-with-current-BIO.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0101-hwmon-fam15h_power-Fix-pci_device_id-array.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0102-dell-laptop-Terminate-quirks-list-properly.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0103-drm-radeon-kms-need-to-set-up-ss-on-DP-bridges-as-we.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0104-drm-i915-handle-input-output-sdvo-timings-separately.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0105-drm-i915-relative_constants_mode-race-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0106-drm-i915-Force-sync-command-ordering-Gen6.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0107-drm-i915-Set-the-Stencil-Cache-eviction-policy-to-no.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0108-drm-i915-fix-integer-overflow-in-i915_gem_execbuffer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0109-drm-i915-fix-integer-overflow-in-i915_gem_do_execbuf.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0110-nl80211-ensure-interface-is-up-in-various-APIs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0111-ALSA-HDA-Add-external-mic-quirk-for-Asus-Zenbook-UX3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0112-USB-cdc-wdm-fix-race-leading-leading-to-memory-corru.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0113-USB-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0114-USB-gadget-storage-gadgets-send-wrong-error-code-for.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0115-usb-gadget-dummy-do-not-call-pullup-on-udc_stop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0116-usb-gadget-uvc-uvc_request_data-length-field-must-be.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0117-pipes-add-a-packetized-pipe-mode-for-writing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0118-autofs-make-the-autofsv5-packet-file-descriptor-use-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0119-ARM-7396-1-errata-only-handle-ARM-erratum-326103-on-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0120-ARM-7397-1-l2x0-only-apply-workaround-for-erratum-75.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0121-ARM-7398-1-l2x0-only-write-to-debug-registers-on-PL3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0122-ARM-7403-1-tls-remove-covert-channel-via-TPIDRURW.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0123-ARM-7406-1-hotplug-copy-the-affinity-mask-when-force.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0124-libsas-fix-sas_find_bcast_phy-in-the-presence-of-vac.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0125-libsas-fix-false-positive-device-attached-conditions.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0126-efi-Add-new-variable-attributes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0127-efi-Validate-UEFI-boot-variables.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0128-PM-Hibernate-fix-the-number-of-pages-used-for-hibern.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0129-drm-i915-enable-dip-before-writing-data-on-gen4.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0130-sched-Fix-nohz-load-accounting-again.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0131-efivars-Improve-variable-validation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0132-fs-cifs-fix-parsing-of-dfs-referrals.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0133-Fix-__read_seqcount_begin-to-use-ACCESS_ONCE-for-seq.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0134-hwmon-coretemp-Increase-CPU-core-limit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0135-nouveau-initialise-has_optimus-variable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0136-hwmon-coretemp-fix-oops-on-cpu-unplug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0137-libata-skip-old-error-history-when-counting-probe-tr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0139-i2c-pnx-Disable-clk-in-suspend.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0140-ipw2200-Fix-race-condition-in-the-command-completion.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0141-mac80211-fix-AP-mode-EAP-tx-for-VLAN-stations.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0142-rtlwifi-Fix-oops-on-unload.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0143-wl1251-fix-crash-on-remove-due-to-premature-kfree.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0144-wl1251-fix-crash-on-remove-due-to-leftover-work-item.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0145-iwlwifi-do-not-nulify-ctx-vif-on-reset.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0146-iwlwifi-fix-hardware-queue-programming.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0147-hfsplus-Fix-potential-buffer-overflows.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0148-ASoC-tlv312aic23-unbreak-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0149-asm-generic-Use-__BITS_PER_LONG-in-statfs.h.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0150-x86-relocs-Remove-an-unused-variable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0151-ARM-7410-1-Add-extra-clobber-registers-for-assembly-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0152-ARM-7414-1-SMP-prevent-use-of-the-console-when-using.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0153-drm-i915-disable-sdvo-hotplug-on-i945g-gm.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0154-drm-i915-Do-no-set-Stencil-Cache-eviction-LRA-w-a-on.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0155-xen-pte-Fix-crashes-when-trying-to-see-non-existent-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0156-xen-pci-don-t-use-PCI-BIOS-service-for-configuration.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0157-percpu-x86-don-t-use-PMD_SIZE-as-embedded-atom_size-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0158-iwlagn-allow-up-to-uCode-API-6-for-6000-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0159-iwlwifi-use-correct-released-ucode-version.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0160-iwlwifi-use-6000G2B-for-6030-device-series.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0161-exit_signal-simplify-the-we-have-changed-execution-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0162-exit_signal-fix-the-parent-has-changed-security-doma.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0163-staging-r8712u-Fix-regression-caused-by-commit-8c213.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0164-smsc95xx-mark-link-down-on-startup-and-let-PHY-inter.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0165-Linux-3.2.17.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0001-regulator-Fix-the-logic-to-ensure-new-voltage-settin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0002-ARM-OMAP-Revert-ARM-OMAP-ctrl-Fix-CONTROL_DSIPHY-reg.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0003-ALSA-echoaudio-Remove-incorrect-part-of-assertion.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0004-ARM-orion5x-Fix-GPIO-enable-bits-for-MPP9.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0005-ALSA-HDA-Lessen-CPU-usage-when-waiting-for-chip-to-r.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0006-percpu-pcpu_embed_first_chunk-should-free-unused-par.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0007-hugetlb-prevent-BUG_ON-in-hugetlb_fault-hugetlb_cow.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0008-namespaces-pid_ns-fix-leakage-on-fork-failure.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0009-mm-nobootmem-fix-sign-extend-problem-in-__free_pages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0010-asix-Fix-tx-transfer-padding-for-full-speed-USB.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0011-netem-fix-possible-skb-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0012-net-In-unregister_netdevice_notifier-unregister-the-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0013-net-l2tp-unlock-socket-lock-before-returning-from-l2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0014-sky2-propogate-rx-hash-when-packet-is-copied.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0015-sky2-fix-receive-length-error-in-mixed-non-VLAN-VLAN.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0016-sungem-Fix-WakeOnLan.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0017-tg3-Avoid-panic-from-reserved-statblk-field-access.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0018-tcp-fix-infinite-cwnd-in-tcp_complete_cwr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0019-tcp-change-tcp_adv_win_scale-and-tcp_rmem-2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0020-brcm80211-smac-pass-missing-argument-to-brcms_b_mute.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0021-phy-icplus-fix-Auto-Power-Saving-in-ip101a_config_in.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0022-NFSv4-Revalidate-uid-gid-after-open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0023-target-Drop-incorrect-se_lun_acl-release-for-dynamic.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0024-marvell-cam-fix-an-ARM-build-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0025-rc-Postpone-ISR-registration.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0026-cdc_ether-Ignore-bogus-union-descriptor-for-RNDIS-de.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0027-jffs2-Fix-lock-acquisition-order-bug-in-gc-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0028-s5p-fimc-Fix-locking-in-subdev-set_crop-op.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0029-dm-mpath-check-if-scsi_dh-module-already-loaded-befo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0030-sparc64-Do-not-clobber-g2-in-xcall_fetch_glob_regs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0031-gpio-Add-missing-spin_lock_init-in-gpio-ml-ioh-drive.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0032-spi-topcliff-pch-Modify-pci-bus-number-dynamically-t.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0033-spi-topcliff-pch-Fix-issue-for-transmitting-over-4KB.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0034-spi-topcliff-pch-supports-a-spi-mode-setup-and-bit-o.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0035-spi-topcliff-pch-add-recovery-processing-in-case-wai.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0036-ext4-avoid-deadlock-on-sync-mounted-FS-w-o-journal.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0037-ia64-Add-accept4-syscall.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0038-brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0039-ARM-7417-1-vfp-ensure-preemption-is-disabled-when-en.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0040-target-Fix-SPC-2-RELEASE-bug-for-multi-session-iSCSI.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0041-crypto-mv_cesa-requires-on-CRYPTO_HASH-to-build.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0042-ALSA-hda-idt-Fix-power-map-for-speaker-pins-with-som.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0043-ASoC-wm8994-Fix-AIF2ADC-power-down.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0044-usbnet-fix-skb-traversing-races-during-unlink-v2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0045-cdc_ether-add-Novatel-USB551L-device-IDs-for-FLAG_WW.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0046-ARM-prevent-VM_GROWSDOWN-mmaps-extending-below-FIRST.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0047-arch-tile-apply-commit-74fca9da0-to-the-compat-signa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0048-MD-Add-del_timer_sync-to-mddev_suspend-fix-nasty-pan.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0049-target-Fix-bug-in-handling-of-FILEIO-block_device-re.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0050-tcp-do_tcp_sendpages-must-try-to-push-data-out-on-oo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0051-e1000-Prevent-reset-task-killing-itself.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0052-mtd-map.h-fix-arm-cross-build-failure.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0053-stmmac-Fix-compilation-error-in-mmc_core.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0054-pktgen-fix-crash-at-module-unload.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0055-pktgen-fix-module-unload-for-good.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0056-Linux-3.2.18.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0001-KVM-mmu_notifier-Flush-TLBs-before-releasing-mmu_loc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0002-KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0003-KVM-lock-slots_lock-around-device-assignment.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0004-KVM-nVMX-Fix-erroneous-exception-bitmap-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0005-KVM-VMX-vmx_set_cr0-expects-kvm-srcu-locked.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0006-KVM-s390-do-store-status-after-handling-STOP_ON_STOP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0007-KVM-s390-Sanitize-fpc-registers-for-KVM_SET_FPU.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0008-bio-don-t-overflow-in-bio_get_nr_vecs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0009-bio-allocation-failure-due-to-bio_get_nr_vecs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0010-block-fix-buffer-overflow-when-printing-partition-UU.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0011-fix-PA1.1-oops-on-boot.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0012-fix-crash-in-flush_icache_page_asm-on-PA1.1.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0013-fix-panic-on-prefetch-NULL-on-PA7300LC.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0014-arch-tile-Kconfig-remove-pointless-M386-test.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0015-tilegx-enable-SYSCALL_WRAPPERS-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0016-mtd-sm_ftl-fix-typo-in-major-number.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0017-hpsa-Fix-problem-with-MSA2xxx-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0018-SELinux-if-sel_make_bools-errors-don-t-leave-inconsi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0019-cfg80211-warn-if-db.txt-is-empty-with-CONFIG_CFG8021.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0020-mpt2sas-Fix-for-panic-happening-because-of-improper-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0021-isdn-gigaset-ratelimit-CAPI-message-dumps.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0022-isdn-gigaset-fix-CAPI-disconnect-B3-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0023-isdn-gigaset-improve-error-handling-querying-firmwar.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0024-KEYS-Use-the-compat-keyctl-syscall-wrapper-on-Sparc6.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0025-IB-core-Fix-mismatch-between-locked-and-pinned-pages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0026-regulator-core-Release-regulator-regulator-supplies-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0027-iommu-Fix-off-by-one-in-dmar_get_fault_reason.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0028-RDMA-cxgb4-Always-wake-up-waiters-in-c4iw_peer_abort.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0029-RDMA-cxgb4-Drop-peer_abort-when-no-endpoint-found.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0030-s390-pfault-fix-task-state-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0031-isci-fix-oem-parameter-validation-on-single-controll.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0032-Fix-blocking-allocations-called-very-early-during-bo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0033-vfs-make-AIO-use-the-proper-rw_verify_area-area-help.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0034-docs-update-HOWTO-for-2.6.x-3.x-versioning.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0035-drivers-staging-comedi-comedi_fops.c-add-missing-vfr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0036-USB-move-usb_translate_errors-to-linux-usb.h.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0037-USB-cdc-wdm-sanitize-error-returns.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0038-USB-cdc-wdm-fix-memory-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0039-8250_pci-fix-pch-uart-matching.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0040-usb-add-USB_QUIRK_RESET_RESUME-for-M-Audio-88es.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0041-usb-usbtest-two-super-speed-fixes-for-usbtest.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0042-8250.c-less-than-2400-baud-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0043-usb-xhci-Handle-COMP_TX_ERR-for-isoc-tds.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0044-xhci-Avoid-dead-ports-when-CONFIG_USB_XHCI_HCD-n.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0045-xhci-Add-Lynx-Point-to-list-of-Intel-switchable-host.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0046-usb-gadget-fsl_udc_core-dTD-s-next-dtd-pointer-need-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0047-Add-missing-call-to-uart_update_timeout.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0048-USB-ftdi-sio-add-support-for-Physik-Instrumente-E-86.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0049-USB-ffs-test-fix-length-argument-of-out-function-cal.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0050-HID-wiimote-Fix-IR-data-parser.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0051-usb-storage-unusual_devs-entry-for-Yarvik-PMP400-MP4.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0052-USB-ohci-at91-add-a-reset-function-to-fix-race-condi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0053-HID-logitech-read-all-32-bits-of-report-type-bitfiel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0054-USB-serial-ti_usb_3410_5052-Add-support-for-the-FRI2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0055-USB-cdc-wdm-poll-must-return-POLLHUP-if-device-is-go.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0056-USB-cdc-wdm-add-debug-messages-on-cleanup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0057-USB-cdc-wdm-cannot-use-dev_printk-when-device-is-gon.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0058-tty-Allow-uart_register-unregister-register.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0059-workqueue-skip-nr_running-sanity-check-in-worker_ent.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0060-xhci-Add-new-short-TX-quirk-for-Fresco-Logic-host.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0061-usbcore-enable-USB2-LPM-if-port-suspend-fails.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0062-perf-x86-Update-event-scheduling-constraints-for-AMD.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0063-USB-fix-resource-leak-in-xhci-power-loss-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0064-xhci-Reset-reserved-command-ring-TRBs-on-cleanup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0065-USB-Remove-races-in-devio.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0066-md-using-GFP_NOIO-to-allocate-bio-for-flush-request.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0067-um-Implement-a-custom-pte_same-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0068-um-Fix-__swp_type.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0069-swap-don-t-do-discard-if-no-discard-option-added.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0070-Input-wacom-relax-Bamboo-stylus-ID-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0071-ahci-Detect-Marvell-88SE9172-SATA-controller.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0072-ARM-7365-1-drop-unused-parameter-from-flush_cache_us.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0073-ARM-7409-1-Do-not-call-flush_cache_user_range-with-m.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0074-sony-laptop-Enable-keyboard-backlight-by-default.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0075-init-don-t-try-mounting-device-as-nfs-root-unless-ty.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0076-memcg-free-spare-array-to-avoid-memory-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0077-compat-Fix-RT-signal-mask-corruption-via-sigprocmask.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0078-ext3-Fix-error-handling-on-inode-bitmap-corruption.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0079-ext4-fix-error-handling-on-inode-bitmap-corruption.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0080-ACPI-PM-Add-Sony-Vaio-VPCCW29FX-to-nonvs-blacklist.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0081-hpsa-Add-IRQF_SHARED-back-in-for-the-non-MSI-X-inter.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0082-wake-up-s_wait_unfrozen-when-freeze_fs-fails.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0083-cifs-fix-revalidation-test-in-cifs_llseek.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0084-dl2k-Clean-up-rio_ioctl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0085-OMAPDSS-VENC-fix-NULL-pointer-dereference-in-DSS2-VE.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0086-i2c-eg20t-change-timeout-value-50msec-to-1000msec.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0087-drm-i915-GEN7-Use-HW-scheduler-for-fixed-function-sh.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0088-mmc-sdio-avoid-spurious-calls-to-interrupt-handlers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0089-smsusb-add-autodetection-support-for-USB-ID-2040-c0a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0090-uvcvideo-Fix-ENUMINPUT-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0091-drm-i915-Avoid-a-double-read-of-PCH_IIR-during-inter.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0092-b43legacy-Fix-error-due-to-MMIO-access-with-SSB-unpo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0093-gpio-mpc8xxx-Prevent-NULL-pointer-deref-in-demux-han.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0094-drm-i915-don-t-clobber-the-pipe-param-in-sanitize_mo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0095-spi-spi-fsl-spi-reference-correct-pdata-in-fsl_spi_c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0096-xen-do-not-map-the-same-GSI-twice-in-PVHVM-guests.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0097-nouveau-nouveau_set_bo_placement-takes-TTM-flags.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0098-MCE-Fix-vm86-handling-for-32bit-mce-handler.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0099-x86-mce-Fix-check-for-processor-context-when-machine.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0100-tile-fix-bug-where-fls-0-was-not-returning-0.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0101-intel-iommu-Add-device-info-into-list-before-doing-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0102-ethtool-Null-terminate-filename-passed-to-ethtool_op.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0103-block-don-t-mark-buffers-beyond-end-of-disk-as-mappe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0104-drivers-rtc-rtc-pl031.c-configure-correct-wday-for-2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0105-rtlwifi-Preallocate-USB-read-buffers-and-eliminate-k.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0106-NFS4-fix-compile-warnings-in-nfs4proc.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0107-Avoid-reading-past-buffer-when-calling-GETACL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0108-Avoid-beyond-bounds-copy-while-caching-ACL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0109-i2c-tegra-notify-transfer-complete-after-clearing-st.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0110-i2c-davinci-Free-requested-IRQ-in-remove.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0111-x86-realmode-16-bit-real-mode-code-support-for-reloc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0112-x86-relocs-Workaround-for-binutils-2.22.52.0.1-secti.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0113-x86-relocs-When-printing-an-error-say-relative-or-ab.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0114-x86-relocs-Build-clean-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0115-x86-32-relocs-Whitelist-more-symbols-for-ld-bug-work.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0116-x86-relocs-Add-jiffies-and-jiffies_64-to-the-relativ.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0117-Linux-3.2.19.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0001-mtdoops-fix-the-oops_page_used-array-size.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0002-mtd-mtdoops-skip-reading-initially-bad-blocks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0003-mtd-mtd_blkdevs-don-t-increase-open-count-on-error-p.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0004-mtd-tests-stresstest-bail-out-if-device-has-not-enou.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0005-drivers-rtc-interface.c-fix-alarm-rollover-when-day-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0006-ext4-add-missing-ext4_resize_end-on-error-paths.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0007-ext4-fix-undefined-behavior-in-ext4_fill_flex_info.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0008-ALSA-snd-usb-us122l-Delete-calls-to-preempt_disable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0009-ALSA-HDA-Fix-master-control-for-Cirrus-Logic-421X.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0010-ALSA-HDA-Fix-automute-for-Cirrus-Logic-421x.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0011-ALSA-ice1724-Check-for-ac97-to-avoid-kernel-oops.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0012-ALSA-usb-audio-Avoid-flood-of-frame-active-debug-mes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0013-ALSA-hda-Use-auto-parser-for-HP-laptops-with-cx20459.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0014-ALSA-hda-Return-the-error-from-get_wcaps_type-for-in.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0015-ALSA-hda-Fix-the-detection-of-Loopback-Mixing-contro.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0016-ALSA-hda-Fix-the-lost-power-setup-of-seconary-pins-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0017-drm-radeon-kms-workaround-invalid-AVI-infoframe-chec.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0018-drm-radeon-kms-disable-writeback-on-pre-R300-asics.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0019-radeon-Fix-disabling-PCI-bus-mastering-on-big-endian.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0021-pnfs-obj-Must-return-layout-on-IO-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0022-NFS-Retry-mounting-NFSROOT.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0023-NFSv4.1-fix-backchannel-slotid-off-by-one-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0024-NFS-fix-recent-breakage-to-NFS-error-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0025-NFSv4-include-bitmap-in-nfsv4-get-acl-data.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0026-nfs-fix-regression-in-handling-of-context-option-in-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0027-HID-bump-maximum-global-item-tag-report-size-to-96-b.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0028-HID-wiimote-Select-INPUT_FF_MEMLESS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0029-UBI-fix-missing-scrub-when-there-is-a-bit-flip.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0030-UBI-fix-use-after-free-on-error-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0031-PCI-Fix-PCI_EXP_TYPE_RC_EC-value.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0032-PCI-msi-Disable-msi-interrupts-when-we-initialize-a-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0033-x86-PCI-Ignore-CPU-non-addressable-_CRS-reserved-mem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0034-x86-PCI-amd-factor-out-MMCONFIG-discovery.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0035-x86-PCI-build-amd_bus.o-only-when-CONFIG_AMD_NB-y.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0036-SCSI-mpt2sas-Release-spinlock-for-the-raid-device-li.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0037-SCSI-mpt2sas-Fix-for-memory-allocation-error-for-lar.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0038-xen-xenbus-Reject-replies-with-payload-XENSTORE_PAYL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0039-md-raid1-perform-bad-block-tests-for-WriteMostly-dev.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0040-ima-free-duplicate-measurement-memory.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0041-ima-fix-invalid-memory-reference.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0042-slub-fix-a-possible-memleak-in-__slab_alloc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0043-PNP-work-around-Dell-1536-1546-BIOS-MMCONFIG-bug-tha.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0044-asix-fix-setting-custom-MAC-address-on-Asix-88178-de.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0045-asix-fix-setting-custom-MAC-address-on-Asix-88772-de.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0046-include-linux-crash_dump.h-needs-elf.h.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0047-rtl8192se-Fix-BUG-caused-by-failure-to-check-skb-all.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0048-mac80211-fix-rx-key-NULL-pointer-dereference-in-prom.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0049-ath9k-Fix-regression-in-channelwidth-switch-at-the-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0050-memcg-add-mem_cgroup_replace_page_cache-to-fix-LRU-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0051-x86-Fix-mmap-random-address-range.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0052-UBI-fix-nameless-volumes-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0053-UBI-fix-debugging-messages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0054-UBI-make-vid_hdr-non-static.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0055-UBIFS-fix-debugging-messages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0056-UBIFS-make-debugging-messages-light-again.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0057-i2c-Fix-error-value-returned-by-several-bus-drivers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0058-mmc-core-Fix-voltage-select-in-DDR-mode.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0059-mmc-sdhci-Fix-tuning-timer-incorrect-setting-when-su.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0060-mmc-sd-Fix-SDR12-timing-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0061-V4L-DVB-v4l2-ioctl-integer-overflow-in-video_usercop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0062-Unused-iocbs-in-a-batch-should-not-be-accounted-as-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0063-ftrace-Fix-unregister-ftrace_ops-accounting.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0064-kconfig-streamline-config.pl-Simplify-backslash-line.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0065-kconfig-streamline-config.pl-Fix-parsing-Makefile-wi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0066-svcrpc-fix-double-free-on-shutdown-of-nfsd-after-cha.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0067-svcrpc-destroy-server-sockets-all-at-once.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0068-svcrpc-avoid-memory-corruption-on-pool-shutdown.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0069-nfsd4-fix-lockowner-matching.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0070-nfsd-Fix-oops-when-parsing-a-0-length-export.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0071-fsnotify-don-t-BUG-in-fsnotify_destroy_mark.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0072-x86-UV-Update-Boot-messages-for-SGI-UV2-platform.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0073-recordmcount-Fix-handling-of-elf64-big-endian-object.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0074-uvcvideo-Fix-integer-overflow-in-uvc_ioctl_ctrl_map.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0075-dcache-use-a-dispose-list-in-select_parent.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0076-fix-shrink_dcache_parent-livelock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0077-pnfsblock-acquire-im_lock-in-_preload_range.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0078-pnfsblock-don-t-spinlock-when-freeing-block_dev.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0079-pnfsblock-limit-bio-page-count.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0080-mac80211-revert-on-channel-work-optimisations.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0081-HID-hid-multitouch-add-another-eGalax-id.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0082-HID-multitouch-cleanup-with-eGalax-PID-definitions.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0083-HID-multitouch-Add-egalax-ID-for-Acer-Iconia-W500.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0084-HID-multitouch-add-support-for-the-MSI-Windpad-110W.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0085-HID-hid-multitouch-add-support-for-new-Hanvon-panels.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0086-HID-multitouch-add-support-of-Atmel-multitouch-panel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0087-HID-multitouch-add-support-for-3M-32.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0088-HID-hid-multitouch-add-support-9-new-Xiroku-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0089-fix-cputime-overflow-in-uptime_proc_show.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0090-block-add-and-use-scsi_blk_cmd_ioctl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0091-block-fail-SCSI-passthrough-ioctls-on-partition-devi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0092-dm-do-not-forward-ioctls-from-logical-volumes-to-the.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0093-proc-clean-up-and-fix-proc-pid-mem-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0094-ALSA-HDA-Use-LPIB-position-fix-for-Macbook-Pro-7-1.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0095-ALSA-virtuoso-Xonar-DS-fix-polarity-of-front-output.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0096-ALSA-HDA-Fix-internal-microphone-on-Dell-Studio-16-X.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0097-TOMOYO-Accept-000-as-a-valid-character.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0098-intel-idle-Make-idle-driver-more-robust.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0099-intel_idle-fix-API-misuse.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0100-ACPI-Store-SRAT-table-revision.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0101-ACPI-x86-Use-SRAT-table-rev-to-use-8bit-or-32bit-PXM.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0102-ACPI-ia64-Use-SRAT-table-rev-to-use-8bit-or-16-32bit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0103-ACPICA-Put-back-the-call-to-acpi_os_validate_address.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0104-ACPI-processor-fix-acpi_get_cpuid-for-UP-processor.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0105-sym53c8xx-Fix-NULL-pointer-dereference-in-slave_dest.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0106-target-Set-response-format-in-INQUIRY-response.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0107-target-Set-additional-sense-length-field-in-sense-da.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0108-bcma-invalidate-the-mapped-core-over-suspend-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0109-cx23885-dvb-check-if-dvb_attach-succeded.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0110-cx88-fix-don-t-duplicate-xc4000-entry-for-radio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0111-tuner-Fix-numberspace-conflict-between-xc4000-and-pt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0112-tracepoints-module-Fix-disabling-tracepoints-with-ta.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0113-x86-UV2-Fix-new-UV2-hardware-by-using-native-UV2-bro.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0114-x86-UV2-Fix-BAU-destination-timeout-initialization.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0115-x86-UV2-Work-around-BAU-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0116-ath9k_hw-fix-interpretation-of-the-rx-KeyMiss-flag.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0117-rt2800pci-fix-spurious-interrupts-generation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0118-xfs-fix-endian-conversion-issue-in-discard-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0119-i2c-eg20t-modified-the-setting-of-transfer-rate.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0120-score-fix-off-by-one-index-into-syscall-table.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0121-cifs-lower-default-wsize-when-unix-extensions-are-no.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0122-kprobes-initialize-before-using-a-hlist.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0123-proc-clear_refs-do-not-clear-reserved-pages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0124-mm-fix-NULL-ptr-dereference-in-__count_immobile_page.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0125-iwlagn-check-for-SMPS-mode.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0127-SHM_UNLOCK-fix-long-unpreemptible-section.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0128-SHM_UNLOCK-fix-Unevictable-pages-stranded-after-swap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0129-Linux-3.2.2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0001-iommu-amd-Add-workaround-for-event-log-erratum.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0002-MIPS-BCM63XX-Add-missing-include-for-bcm63xx_gpio.h.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0003-cifs-Include-backup-intent-search-flags-during-searc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0004-sunrpc-fix-loss-of-task-tk_status-after-rpc_delay-ca.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0005-exofs-Fix-CRASH-on-very-early-IO-errors.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0006-cifs-fix-oops-while-traversing-open-file-list-try-4.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0007-Fix-dm-multipath-starvation-when-scsi-host-is-busy.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0008-ixp4xx-fix-compilation-by-adding-gpiolib-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0009-drm-i915-properly-handle-interlaced-bit-for-sdvo-dtd.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0010-drm-i915-enable-vdd-when-switching-off-the-eDP-panel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0011-drm-i915-Add-Clientron-E830-to-the-ignore-LVDS-list.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0012-drm-i915-Ignore-LVDS-on-hp-t5745-and-hp-st5747-thin-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0013-drm-i915-no-lvds-quirk-for-HP-t5740e-Thin-Client.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0014-drm-i915-wait-for-a-vblank-to-pass-after-tv-detect.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0015-drm-i915-Update-GEN6_RP_CONTROL-definitions.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0016-drm-i915-always-use-RPNSWREQ-for-turbo-change-reques.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0017-solos-pci-Fix-DMA-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0018-microblaze-Do-not-select-GENERIC_GPIO-by-default.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0019-fix-boot-failure-on-32-bit-systems-caused-by-branch-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0020-fix-TLB-fault-path-on-PA2.0-narrow-systems.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0021-iwlwifi-update-BT-traffic-load-states-correctly.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0022-iwlwifi-do-not-use-shadow-registers-by-default.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0023-wl1251-fix-oops-on-early-interrupt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0024-NFSv4-Map-NFS4ERR_SHARE_DENIED-into-an-EACCES-error-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0025-drm-radeon-fix-XFX-quirk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0026-ath9k-fix-a-use-after-free-bug-when-ath_tx_setup_buf.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0027-mac80211-fix-ADDBA-declined-after-suspend-with-wowla.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0028-mm-fork-fix-overflow-in-vma-length-when-copying-mmap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0029-mm-consider-all-swapped-back-pages-in-used-once-logi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0030-hugetlb-fix-resv_map-leak-in-error-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0031-mm-vmalloc.c-change-void-into-explict-vm_struct.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0032-mm-fix-faulty-initialization-in-vmalloc_init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0033-fix-scsi_wait_scan.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0034-mm-fix-vma_resv_map-NULL-pointer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0035-x86-amd-xen-Avoid-NULL-pointer-paravirt-references.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0036-slub-fix-a-memory-leak-in-get_partial_node.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0037-ext4-force-ro-mount-if-ext4_setup_super-fails.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0038-ext4-disallow-hard-linked-directory-in-ext4_lookup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0039-mtd-nand-fix-scan_read_raw_oob.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0040-vfs-increment-iversion-when-a-file-is-truncated.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0041-vfs-umount_tree-might-be-called-on-subtree-that-had-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0042-ext4-add-missing-save_error_info-to-ext4_error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0043-ALSA-usb-audio-fix-rate_list-memory-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0044-ext4-add-ext4_mb_unload_buddy-in-the-error-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0045-ext4-remove-mb_groups-before-tearing-down-the-buddy_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0046-drm-radeon-fix-bank-information-in-tiling-config.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0047-drm-radeon-properly-program-gart-on-rv740-juniper-cy.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0048-drm-radeon-fix-HD6790-HD6570-backend-programming.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0049-drm-ttm-Fix-spinlock-imbalance.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0050-drm-vmwgfx-Fix-nasty-write-past-alloced-memory-area.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0051-mtd-of_parts-fix-breakage-in-Kconfig.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0052-fec_mpc52xx-fix-timestamp-filtering.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0053-Bluetooth-btusb-Add-vendor-specific-ID-0a5c-21f3-for.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0054-Bluetooth-btusb-add-support-for-BCM20702A0-0a5c-21e6.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0055-Bluetooth-btusb-Add-USB-device-ID-0a5c-21e8.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0056-Bluetooth-btusb-typo-in-Broadcom-SoftSailing-id.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0057-Bluetooth-btusb-Add-vendor-specific-ID-0489-e042-for.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0058-Bluetooth-Add-support-for-Atheros-13d3-3362.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0059-Bluetooth-Add-support-for-AR3012-0cf3-e004.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0060-Add-Foxconn-Hon-Hai-IDs-for-btusb-module.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0061-Bluetooth-Add-support-for-Foxconn-Hon-Hai-AR5BBU22-0.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0062-drm-i915-Disable-FBC-on-SandyBridge.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0063-ipv4-Do-not-use-dead-fib_info-entries.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0064-ipv4-fix-the-rcu-race-between-free_fib_info-and-ip_r.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0065-set-fake_rtable-s-dst-to-NULL-to-avoid-kernel-Oops.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0066-ipv6-fix-incorrect-ipsec-fragment.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0067-l2tp-fix-oops-in-L2TP-IP-sockets-for-connect-AF_UNSP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0068-r8169-missing-barriers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0069-r8169-fix-early-queue-wake-up.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0070-r8169-fix-unsigned-int-wraparound-with-TSO.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0071-Revert-net-maintain-namespace-isolation-between-vlan.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0072-sctp-check-cached-dst-before-using-it.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0073-skb-avoid-unnecessary-reallocations-in-__skb_cow.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0074-xfrm-take-net-hdr-len-into-account-for-esp-payload-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0075-ACPI-battery-only-refresh-the-sysfs-files-when-perti.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0076-target-file-Use-O_DSYNC-by-default-for-FILEIO-backen.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0077-iommu-amd-Cache-pdev-pointer-to-root-bridge.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0078-drm-radeon-kms-add-new-Palm-Sumo-PCI-ids.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0079-drm-radeon-kms-add-new-BTC-PCI-ids.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0080-btree-fix-tree-corruption-in-btree_get_prev.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0081-kbuild-install-kernel-page-flags.h.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0082-asix-allow-full-size-8021Q-frames-to-be-received.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0083-ext4-don-t-trash-state-flags-in-EXT4_IOC_SETFLAGS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0084-ext4-don-t-set-i_flags-in-EXT4_IOC_SETFLAGS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0085-ext4-fix-the-free-blocks-calculation-for-ext3-file-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0086-Linux-3.2.20.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0001-drm-i915-Mark-the-ringbuffers-as-being-in-the-GTT-do.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0002-drm-i915-hold-forcewake-around-ring-hw-init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0003-drm-i915-Unpin-the-flip-target-if-we-fail-to-queue-t.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0004-drm-i915-fix-up-ivb-plane-3-pageflips.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0005-char-agp-add-another-Ironlake-host-bridge.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0006-x86-uv-Fix-UV2-BAU-legacy-mode.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0007-powerpc-Fix-kernel-panic-during-kernel-module-load.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0008-drm-nouveau-determine-a-value-for-display_info.bpc-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0009-drm-nouveau-default-to-8bpc-for-non-LVDS-panels-if-E.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0010-drm-nouveau-disp-fix-dithering-not-being-enabled-on-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0011-fuse-fix-stat-call-on-32-bit-platforms.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0012-x86-MCE-AMD-Make-APIC-LVT-thresholding-interrupt-opt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0013-x86-amd-Re-enable-CPU-topology-extensions-in-case-BI.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0014-hwmon-fam15h_power-Increase-output-resolution.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0015-sched-Fix-the-relax_domain_level-boot-parameter.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0016-iwlwifi-don-t-mess-up-the-SCD-when-removing-a-key.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0017-hwrng-atmel-rng-fix-race-condition-leading-to-repeat.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0018-crypto-aesni-intel-fix-unaligned-cbc-decrypt-for-x86.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0019-xen-setup-filter-APERFMPERF-cpuid-feature-out.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0020-NFSv4.1-Fix-a-request-leak-on-the-back-channel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0021-can-c_can-fix-BUG-echo_skb-is-occupied-during-transm.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0022-can-c_can-fix-an-interrupt-thrash-issue-with-c_can-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0023-can-c_can-fix-race-condition-in-c_can_open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0024-ARM-i.MX53-Fix-PLL4-base-address.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0025-usb-musb_gadget-fix-crash-caused-by-dangling-pointer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0026-mac80211-clean-up-remain-on-channel-on-interface-sto.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0027-rt2x00-use-atomic-variable-for-seqno.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0028-iwlwifi-disable-WoWLAN-if-CONFIG_PM_SLEEP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0029-ASoC-wm8994-Ensure-all-AIFnCLK-events-are-run-from-t.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0030-ASoC-wm8994-Apply-volume-updates-with-clocks-enabled.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0031-iwlwifi-unregister-LEDs-if-mac80211-registration-fai.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0032-cfg80211-fix-interface-combinations-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0033-mpt2sas-Fix-unsafe-using-smp_processor_id-in-preempt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0034-net-sierra_net-device-IDs-for-Aircard-320U.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0035-ARM-imx6-exit-coherency-when-shutting-down-a-cpu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0036-ARM-i.MX-imx21ads-Fix-overlapping-static-i-o-mapping.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0037-NFSv4-Fix-unnecessary-delegation-returns-in-nfs4_do_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0038-iwlwifi-use-correct-supported-firmware-for-6035-and-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0039-iwlwifi-disable-the-buggy-chain-extension-feature-in.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0040-ALSA-hda-Add-codec-no_jack_detect-flag.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0041-ALSA-hda-add-support-for-Uniwill-ECS-M31EI-notebook.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0042-ALSA-hda-Suppress-auto-mute-feature-on-some-machines.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0043-ALSA-hda-Add-another-jack-detection-suppression-for-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0044-ALSA-HDA-Pin-fixup-for-Zotac-Z68-motherboard.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0045-usb-cdc-wdm-Add-device-id-for-Huawei-3G-LTE-modems.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0046-USB-qcserial-Add-Sierra-Wireless-device-IDs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0047-USB-ftdi-sio-Add-support-for-RT-Systems-USB-RTS01-se.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0048-USB-serial-cp210x-add-Optris-MS-Pro-usb-id.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0049-USB-serial-sierra-Add-support-for-Sierra-Wireless-Ai.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0050-USB-option-Updated-Huawei-K4605-has-better-id.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0051-USB-mct_u232-Fix-incorrect-TIOCMSET-return.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0052-USB-option-fix-port-data-abuse.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0053-USB-option-fix-memory-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0054-USB-option-add-more-YUGA-device-ids.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0055-target-Return-error-to-initiator-if-SET-TARGET-PORT-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0056-USB-add-NO_D3_DURING_SLEEP-flag-and-revert-151b61284.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0057-USB-serial-Enforce-USB-driver-and-USB-serial-driver-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0058-xhci-Fix-invalid-loop-check-in-xhci_free_tt_info.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0059-xhci-Don-t-free-endpoints-in-xhci_mem_cleanup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0060-xHCI-Increase-the-timeout-for-controller-save-restor.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0061-usb-PS3-EHCI-QH-read-work-around.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0062-USB-fix-PS3-EHCI-systems.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0063-usb-cdc-acm-fix-devices-not-unthrottled-on-open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0064-USB-fix-gathering-of-interface-associations.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0065-swap-fix-shmem-swapping-when-more-than-8-areas.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0066-drm-radeon-add-some-additional-6xx-7xx-EG-register-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0067-Linux-3.2.21.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0001-staging-iio-ad7606-Re-add-missing-scale-attribute.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0002-Tools-hv-verify-origin-of-netlink-connector-message.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0003-edac-avoid-mce-decoding-crash-after-edac-driver-unlo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0005-staging-r8712u-Add-new-USB-IDs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0006-hwmon-applesmc-Limit-key-length-in-warning-messages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0007-mm-pmd_read_atomic-fix-32bit-PAE-pmd-walk-vs-pmd_pop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0008-thp-avoid-atomic64_read-in-pmd_read_atomic-for-32bit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0009-nilfs2-ensure-proper-cache-clearing-for-gc-inodes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0010-drm-i915-Finish-any-pending-operations-on-the-frameb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0011-drm-i915-Remove-use-of-the-autoreported-ringbuffer-H.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0012-e1000e-Disable-ASPM-L1-on-82574.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0013-e1000e-Remove-special-case-for-82573-82574-ASPM-L1-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0014-drm-i915-Do-the-fallback-non-IRQ-wait-in-ring-thrott.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0015-staging-rts_pstor-Fix-possible-panic-by-NULL-pointer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0016-gspca-core-Fix-buffers-staying-in-queued-state-after.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0017-smsusb-add-autodetection-support-for-USB-ID-2040-f5a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0018-drm-edid-don-t-return-stack-garbage-from-supports_rb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0019-drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0020-dm-thin-reinstate-missing-mempool_free-in-cell_relea.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0021-ath9k-Fix-a-WARNING-on-suspend-resume-with-IBSS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0022-cfg80211-fix-potential-deadlock-in-regulatory.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0023-ath9k-Fix-softlockup-in-AR9485.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0024-can-c_can-precedence-error-in-c_can_chip_config.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0026-batman-adv-fix-skb-data-assignment.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0027-ARM-SAMSUNG-Should-check-for-IS_ERR-clk-instead-of-N.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0028-ath9k_hw-avoid-possible-infinite-loop-in-ar9003_get_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0029-iwlwifi-remove-log_event-debugfs-file-debugging-is-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0030-ARM-SAMSUNG-Fix-for-S3C2412-EBI-memory-mapping.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0031-USB-option-add-id-for-Cellient-MEN-200.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0032-oprofile-perf-use-NR_CPUS-instead-or-nr_cpumask_bits.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0033-drm-i915-Refactor-the-deferred-PM_IIR-handling-into-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0034-drm-i915-rip-out-the-PM_IIR-WARN.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0035-drm-i915-Fix-eDP-blank-screen-after-S3-resume-on-HP-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0036-PM-Sleep-Prevent-waiting-forever-on-asynchronous-sus.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0037-x86-cpufeature-Rename-X86_FEATURE_DTS-to-X86_FEATURE.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0038-stable-Allow-merging-of-backports-for-serious-user-v.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0039-ALSA-hda-Add-Realtek-ALC280-codec-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0040-USB-option-Add-USB-ID-for-Novatel-Ovation-MC551.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0041-USB-CP210x-Add-10-Device-IDs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0042-xen-netfront-teardown-the-device-before-unregisterin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0043-can-flexcan-use-be32_to_cpup-to-handle-the-value-of-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0044-acpi_pad-fix-power_saving-thread-deadlock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0045-batman-adv-only-drop-packets-of-known-wifi-clients.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0046-Linux-3.2.22.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0001-splice-fix-racy-pipe-buffers-uses.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0002-umem-fix-up-unplugging.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0003-mwifiex-fix-11n-rx-packet-drop-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0004-mwifiex-fix-WPS-eapol-handshake-failure.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0005-NFC-Prevent-multiple-buffer-overflows-in-NCI.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0006-ath9k-fix-dynamic-WEP-related-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0007-NFC-Return-from-rawsock_release-when-sk-is-NULL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0008-rtlwifi-rtl8192cu-New-USB-IDs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0009-ath9k-enable-serialize_regmode-for-non-PCIE-AR9287.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0010-mac80211-correct-behaviour-on-unrecognised-action-fr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0011-ASoC-tlv320aic3x-Fix-codec-pll-configure-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0012-powerpc-xmon-Use-cpumask-iterator-to-avoid-warning.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0013-powerpc-kvm-sldi-should-be-sld.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0014-md-raid10-Don-t-try-to-recovery-unmatched-and-unused.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0015-md-raid5-Do-not-add-data_offset-before-call-to-is_ba.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0016-md-raid5-In-ops_run_io-inc-nr_pending-before-calling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0017-md-raid10-fix-failure-when-trying-to-repair-a-read-e.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0018-drm-i915-kick-any-firmware-framebuffers-before-claim.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0019-dm-persistent-data-fix-shadow_info_leak-on-dm_tm_des.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0020-dm-persistent-data-handle-space-map-checker-creation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0021-dm-persistent-data-fix-allocation-failure-in-space-m.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0022-ALSA-hda-Fix-power-map-regression-for-HP-dv6-co.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0023-tracing-change-CPU-ring-buffer-state-from-tracing_cp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0024-mwifiex-fix-wrong-return-values-in-add_virtual_intf-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0025-udf-Use-ret-instead-of-abusing-i-in-udf_load_logical.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0026-udf-Avoid-run-away-loop-when-partition-table-length-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0027-udf-Fortify-loading-of-sparing-table.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0028-ARM-fix-rcu-stalls-on-SMP-platforms.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0029-net-sock-validate-data_len-before-allocating-skb-in-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0030-cipso-handle-CIPSO-options-correctly-when-NetLabel-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0031-net-l2tp_eth-fix-kernel-panic-on-rmmod-l2tp_eth.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0032-l2tp-fix-a-race-in-l2tp_ip_sendmsg.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0033-sky2-fix-checksum-bit-management-on-some-chips.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0034-be2net-fix-a-race-in-be_xmit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0035-dummy-fix-rcu_sched-self-detected-stalls.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0036-bonding-Fix-corrupted-queue_mapping.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0037-ethtool-allow-ETHTOOL_GSSET_INFO-for-users.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0038-netpoll-fix-netpoll_send_udp-bugs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0039-ipv6-Move-ipv6-proc-file-registration-to-end-of-init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0040-bridge-Assign-rtnl_link_ops-to-bridge-devices-create.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0041-Btrfs-run-delayed-directory-updates-during-log-repla.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0042-cifs-when-server-doesn-t-set-CAP_LARGE_READ_X-cap-de.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0043-ocfs2-clear-unaligned-io-flag-when-dio-fails.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0045-mtd-cafe_nand-fix-an-vs-mistake.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0046-mm-Hold-a-file-reference-in-madvise_remove.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0047-tcm_fc-Resolve-suspicious-RCU-usage-warnings.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0048-vfs-make-O_PATH-file-descriptors-usable-for-fchdir.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0049-Linux-3.2.23.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0001-samsung-laptop-make-the-dmi-check-less-strict.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0002-raid5-delayed-stripe-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0003-tcp-drop-SYN-FIN-messages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0004-tg3-Apply-short-DMA-frag-workaround-to-5906.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0006-net-wireless-ipw2x00-add-supported-cipher-suites-to-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0007-drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0008-drm-i915-fix-operator-precedence-when-enabling-RC6p.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0009-kbuild-do-not-check-for-ancient-modutils-tools.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0010-brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0011-NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0012-ext4-Report-max_batch_time-option-correctly.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0013-hugepages-fix-use-after-free-bug-in-quota-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0014-NFSv4-Reduce-the-footprint-of-the-idmapper.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0015-NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0016-macvtap-zerocopy-fix-offset-calculation-when-buildin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0017-macvtap-zerocopy-fix-truesize-underestimation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0018-macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0019-macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0020-macvtap-zerocopy-validate-vectors-before-building-sk.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0021-KVM-Fix-buffer-overflow-in-kvm_set_irq.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0022-scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0023-epoll-clear-the-tfile_check_list-on-ELOOP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0024-iommu-amd-Fix-missing-iommu_shutdown-initialization-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0025-iommu-amd-Initialize-dma_ops-for-hotplug-and-sriov-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0026-usb-Add-support-for-root-hub-port-status-CAS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0027-gpiolib-wm8994-Pay-attention-to-the-value-set-when-e.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0028-sched-nohz-Rewrite-and-fix-load-avg-computation-agai.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0029-USB-option-add-ZTE-MF60.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0030-USB-option-Add-MEDIATEK-product-ids.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0031-USB-cdc-wdm-fix-lockup-on-error-in-wdm_read.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0032-mtd-nandsim-don-t-open-code-a-do_div-helper.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0033-dvb-core-Release-semaphore-on-error-path-dvb_registe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0034-hwspinlock-core-use-global-ID-to-register-hwspinlock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0035-libsas-fix-taskfile-corruption-in-sas_ata_qc_fill_rt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0036-md-raid1-fix-use-after-free-bug-in-RAID1-data-check-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0037-PCI-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0038-memory-hotplug-fix-invalid-memory-access-caused-by-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0039-ocfs2-fix-NULL-pointer-dereference-in-__ocfs2_change.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0040-mm-thp-abort-compaction-if-migration-page-cannot-be-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0041-drivers-rtc-rtc-mxc.c-fix-irq-enabled-interrupts-war.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0042-fs-ramfs-file-nommu-add-SetPageUptodate.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0043-cpufreq-ACPI-Fix-not-loading-acpi-cpufreq-driver-reg.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0044-hwmon-it87-Preserve-configuration-register-bits-on-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0045-ARM-SAMSUNG-fix-race-in-s3c_adc_start-for-ADC.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0046-block-fix-infinite-loop-in-__getblk_slow.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0047-Remove-easily-user-triggerable-BUG-from-generic_setl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0048-NFC-Export-nfc.h-to-userland.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0049-PM-Hibernate-Hibernate-thaw-fixes-improvements.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0050-cfg80211-check-iface-combinations-only-when-iface-is.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0051-intel_ips-blacklist-HP-ProBook-laptops.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0052-atl1c-fix-issue-of-transmit-queue-0-timed-out.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0053-rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0054-iwlegacy-always-monitor-for-stuck-queues.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0055-iwlegacy-don-t-mess-up-the-SCD-when-removing-a-key.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0056-e1000e-Correct-link-check-logic-for-82571-serdes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0057-tcm_fc-Fix-crash-seen-with-aborts-and-large-reads.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0058-fifo-Do-not-restart-open-if-it-already-found-a-partn.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0059-target-Clean-up-returning-errors-in-PR-handling-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0060-target-Fix-range-calculation-in-WRITE-SAME-emulation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0061-cifs-on-CONFIG_HIGHMEM-machines-limit-the-rsize-wsiz.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0062-cifs-always-update-the-inode-cache-with-the-results-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0063-mm-fix-lost-kswapd-wakeup-in-kswapd_stop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0064-md-avoid-crash-when-stopping-md-array-races-with-clo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0065-md-raid1-close-some-possible-races-on-write-errors-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0066-MIPS-Properly-align-the-.data.init_task-section.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0067-UBIFS-fix-a-bug-in-empty-space-fix-up.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0068-ore-Fix-NFS-crash-by-supporting-any-unaligned-RAID-I.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0069-ore-Remove-support-of-partial-IO-request-NFS-crash.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0070-pnfs-obj-don-t-leak-objio_state-if-ore_write-read-fa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0071-pnfs-obj-Fix-__r4w_get_page-when-offset-is-beyond-i_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0072-dm-raid1-fix-crash-with-mirror-recovery-and-discard.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0074-ntp-Fix-leap-second-hrtimer-livelock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0075-ntp-Correct-TAI-offset-during-leap-second.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0076-timekeeping-Fix-CLOCK_MONOTONIC-inconsistency-during.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0077-time-Move-common-updates-to-a-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0078-hrtimer-Provide-clock_was_set_delayed.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0079-timekeeping-Fix-leapsecond-triggered-load-spike-issu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0080-timekeeping-Maintain-ktime_t-based-offsets-for-hrtim.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0081-hrtimers-Move-lock-held-region-in-hrtimer_interrupt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0082-timekeeping-Provide-hrtimer-update-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0083-hrtimer-Update-hrtimer-base-offsets-each-hrtimer_int.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0084-timekeeping-Add-missing-update-call-in-timekeeping_r.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0085-powerpc-Fix-wrong-divisor-in-usecs_to_cputime.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0086-vhost-don-t-forget-to-schedule.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0087-r8169-call-netif_napi_del-at-errpaths-and-at-driver-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0088-bnx2x-fix-checksum-validation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0089-bnx2x-fix-panic-when-TX-ring-is-full.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0090-net-remove-skb_orphan_try.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0091-ACPI-Make-acpi_skip_timer_override-cover-all-source_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0092-ACPI-Remove-one-board-specific-WARN-when-ignoring-ti.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0093-ACPI-Add-a-quirk-for-AMILO-PRO-V2030-to-ignore-the-t.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0094-ACPI-x86-fix-Dell-M6600-ACPI-reboot-regression-via-D.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0095-ACPI-sysfs.c-strlen-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0096-eCryptfs-Gracefully-refuse-miscdev-file-ops-on-inher.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0097-eCryptfs-Fix-lockdep-warning-in-miscdev-operations.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0098-eCryptfs-Properly-check-for-O_RDONLY-flag-before-doi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0099-ACPI-PM-Make-acpi_pm_device_sleep_state-follow-the-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0100-ipheth-add-support-for-iPad.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0101-stmmac-Fix-for-nfs-hang-on-multiple-reboot.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0102-bonding-debugfs-and-network-namespaces-are-incompati.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0103-bonding-Manage-proc-net-bonding-entries-from-the-net.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0104-Input-bcm5974-Add-support-for-2012-MacBook-Pro-Retin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0105-Input-xpad-handle-all-variations-of-Mad-Catz-Beat-Pa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0106-Input-xpad-add-signature-for-Razer-Onza-Tournament-E.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0107-Input-xpad-add-Andamiro-Pump-It-Up-pad.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0108-HID-add-support-for-2012-MacBook-Pro-Retina.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0109-Linux-3.2.24.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0001-mm-reduce-the-amount-of-work-done-when-updating-min_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0002-mm-compaction-allow-compaction-to-isolate-dirty-page.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0003-mm-compaction-determine-if-dirty-pages-can-be-migrat.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0004-mm-page-allocator-do-not-call-direct-reclaim-for-THP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0005-mm-compaction-make-isolate_lru_page-filter-aware-aga.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0006-mm-compaction-introduce-sync-light-migration-for-use.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0007-mm-vmscan-when-reclaiming-for-compaction-ensure-ther.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0008-mm-vmscan-do-not-OOM-if-aborting-reclaim-to-start-co.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0009-mm-vmscan-check-if-reclaim-should-really-abort-even-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0010-vmscan-promote-shared-file-mapped-pages.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0011-vmscan-activate-executable-pages-after-first-usage.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0012-mm-vmscan.c-consider-swap-space-when-deciding-whethe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0013-mm-test-PageSwapBacked-in-lumpy-reclaim.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0014-mm-vmscan-convert-global-reclaim-to-per-memcg-LRU-li.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0015-cpuset-mm-reduce-large-amounts-of-memory-barrier-rel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0016-mm-hugetlb-fix-warning-in-alloc_huge_page-dequeue_hu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0017-Fix-NULL-dereferences-in-scsi_cmd_to_driver.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0018-sched-nohz-Fix-rq-cpu_load-calculations.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0019-sched-nohz-Fix-rq-cpu_load-calculations-some-more.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0020-powerpc-ftrace-Fix-assembly-trampoline-register-usag.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0021-cx25821-Remove-bad-strcpy-to-read-only-char.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0022-x86-Fix-boot-on-Twinhead-H12Y.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0023-r8169-RxConfig-hack-for-the-8168evl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0024-cifs-when-CONFIG_HIGHMEM-is-set-serialize-the-read-w.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0025-wireless-rt2x00-rt2800usb-add-more-devices-ids.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0026-wireless-rt2x00-rt2800usb-more-devices-were-identifi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0027-rt2800usb-2001-3c17-is-an-RT3370-device.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0028-usb-gadget-Fix-g_ether-interface-link-status.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0029-ext4-pass-a-char-to-ext4_count_free-instead-of-a-buf.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0030-ftrace-Disable-function-tracing-during-suspend-resum.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0031-x86-microcode-microcode_core.c-simple_strtoul-cleanu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0032-x86-microcode-Sanitize-per-cpu-microcode-reloading-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0033-usbdevfs-Correct-amount-of-data-copied-to-user-in-pr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0034-ext4-fix-overhead-calculation-used-by-ext4_statfs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0035-udf-Improve-table-length-check-to-avoid-possible-ove.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0036-powerpc-Add-memory-attribute-for-mfmsr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0037-mwifiex-correction-in-mcs-index-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0038-USB-option-Ignore-ZTE-Vodafone-K3570-71-net-interfac.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0039-USB-option-add-ZTE-MF821D.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0040-target-Add-generation-of-LOGICAL-BLOCK-ADDRESS-OUT-O.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0041-target-Add-range-checking-to-UNMAP-emulation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0042-target-Fix-reading-of-data-length-fields-for-UNMAP-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0043-target-Fix-possible-integer-underflow-in-UNMAP-emula.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0044-target-Check-number-of-unmap-descriptors-against-our.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0045-s390-idle-fix-sequence-handling-vs-cpu-hotplug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0046-rtlwifi-rtl8192de-Fix-phy-based-version-calculation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0047-workqueue-perform-cpu-down-operations-from-low-prior.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0048-ALSA-hda-Add-support-for-Realtek-ALC282.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0049-iommu-amd-Fix-hotplug-with-iommu-pt.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0050-drm-radeon-Try-harder-to-avoid-HW-cursor-ending-on-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0051-ALSA-hda-Turn-on-PIN_OUT-from-hdmi-playback-prepare.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0052-block-add-blk_queue_dead.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0053-Fix-device-removal-NULL-pointer-dereference.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0054-Avoid-dangling-pointer-in-scsi_requeue_command.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0055-fix-hot-unplug-vs-async-scan-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0056-fix-eh-wakeup-scsi_schedule_eh-vs-scsi_restart_opera.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0057-libsas-continue-revalidation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0058-libsas-fix-sas_discover_devices-return-code-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0059-iscsi-target-Drop-bogus-struct-file-usage-for-iSCSI-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0060-mmc-sdhci-pci-CaFe-has-broken-card-detection.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0061-ext4-don-t-let-i_reserved_meta_blocks-go-negative.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0062-ext4-undo-ext4_calc_metadata_amount-if-we-fail-to-cl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0064-locks-fix-checking-of-fcntl_setlease-argument.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0065-ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0066-drm-radeon-fix-bo-creation-retry-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0067-drm-radeon-fix-non-revealent-error-message.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0068-drm-radeon-fix-hotplug-of-DP-to-DVI-HDMI-passive-ada.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0069-drm-radeon-on-hotplug-force-link-training-to-happen-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0070-Btrfs-call-the-ordered-free-operation-without-any-lo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0071-nouveau-Fix-alignment-requirements-on-src-and-dst-ad.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0072-mm-fix-wrong-argument-of-migrate_huge_pages-in-soft_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0073-Linux-3.2.25.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0001-x86-Simplify-code-by-removing-a-SMP-ifdefs-from-stru.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0002-Linux-3.2.26.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0001-sched-Fix-race-in-task_group.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0002-floppy-Cleanup-disk-queue-before-caling-put_disk-if-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0003-xen-mark-local-pages-as-FOREIGN-in-the-m2p_override.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0004-lirc_sir-make-device-registration-work.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0005-stable-update-references-to-older-2.6-versions-for-3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0006-ALSA-hda-add-dock-support-for-Thinkpad-X230-Tablet.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0007-cfg80211-fix-interface-combinations-check-for-ADHOC-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0008-m68k-Correct-the-Atari-ALLOWINT-definition.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0009-ene_ir-Fix-driver-initialisation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0010-nfsd4-our-filesystems-are-normally-case-sensitive.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0011-random-Use-arch_get_random_int-instead-of-cycle-coun.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0012-random-Use-arch-specific-RNG-to-initialize-the-entro.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0013-random-Adjust-the-number-of-loops-when-initializing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0014-random-make-add_interrupt_randomness-do-something-sa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0015-random-use-lockless-techniques-in-the-interrupt-path.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0016-random-create-add_device_randomness-interface.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0017-usb-feed-USB-device-information-to-the-dev-random-dr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0018-net-feed-dev-random-with-the-MAC-address-when-regist.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0019-random-use-the-arch-specific-rng-in-xfer_secondary_p.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0020-random-add-new-get_random_bytes_arch-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0021-rtc-wm831x-Feed-the-write-counter-into-device_add_ra.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0022-mfd-wm831x-Feed-the-device-UUID-into-device_add_rand.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0023-ASoC-wm8994-Ensure-there-are-enough-BCLKs-for-four-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0024-futex-Test-for-pi_mutex-on-fault-in-futex_wait_reque.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0025-futex-Fix-bug-in-WARN_ON-for-NULL-q.pi_state.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0026-futex-Forbid-uaddr-uaddr2-in-futex_wait_requeue_pi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0027-video-smscufx-fix-line-counting-in-fb_write.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0028-Input-synaptics-handle-out-of-bounds-values-from-the.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0029-ALSA-hda-Fix-invalid-D3-of-headphone-DAC-on-VT202x-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0030-ALSA-mpu401-Fix-missing-initialization-of-irq-field.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0031-x86-nops-Missing-break-resulting-in-incorrect-select.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0032-s390-mm-downgrade-page-table-after-fork-of-a-31-bit-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0033-Redefine-ATOMIC_INIT-and-ATOMIC64_INIT-to-drop-the-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0034-dm-thin-reduce-endio_hook-pool-size.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0035-dm-thin-fix-memory-leak-in-process_prepared_mapping-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0036-random-mix-in-architectural-randomness-in-extract_bu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0037-asus-wmi-use-ASUS_WMI_METHODID_DSTS2-as-default-DSTS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0038-virtio-blk-Use-block-layer-provided-spinlock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0039-s390-mm-fix-fault-handling-for-page-table-walk-case.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0040-nfs-skip-commit-in-releasepage-if-we-re-freeing-memo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0041-md-raid1-don-t-abort-a-resync-on-the-first-badblock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0042-pcdp-use-early_ioremap-early_iounmap-to-access-pcdp-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0043-lib-vsprintf.c-kptr_restrict-fix-pK-error-in-SysRq-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0044-nilfs2-fix-deadlock-issue-between-chcp-and-thaw-ioct.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0045-SUNRPC-return-negative-value-in-case-rpcbind-client-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0046-ARM-7467-1-mutex-use-generic-xchg-based-implementati.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0047-ARM-7476-1-vfp-only-clear-vfp-state-for-current-cpu-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0048-ARM-7477-1-vfp-Always-save-VFP-state-in-vfp_pm_suspe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0049-ARM-7478-1-errata-extend-workaround-for-erratum-7207.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0050-ARM-Fix-undefined-instruction-exception-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0051-USB-echi-dbgp-increase-the-controller-wait-time-to-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0052-ASoC-wm8962-Allow-VMID-time-to-fully-ramp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0053-mm-page_alloc.c-remove-pageblock_default_order.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0054-mm-setup-pageblock_order-before-it-s-used-by-sparsem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0055-mm-mmu_notifier-fix-freed-page-still-mapped-in-secon.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0056-mm-hugetlbfs-close-race-during-teardown-of-hugetlbfs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0057-ALSA-snd-usb-fix-clock-source-validity-index.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0058-ALSA-hda-Support-dock-on-Lenovo-Thinkpad-T530-with-A.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0059-ore-Fix-out-of-bounds-access-in-_ios_obj.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0060-m68k-Make-sys_atomic_cmpxchg_32-work-on-classic-m68k.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0061-drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0062-rt2x00-Add-support-for-BUFFALO-WLI-UC-GNM2-to-rt2800.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0063-drop_monitor-fix-sleeping-in-invalid-context-warning.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0064-drop_monitor-Make-updating-data-skb-smp-safe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0065-drop_monitor-prevent-init-path-from-scheduling-on-th.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0066-drop_monitor-dont-sleep-in-atomic-context.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0067-pch_uart-Fix-missing-break-for-16-byte-fifo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0068-pch_uart-Fix-rx-error-interrupt-setting-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0069-pch_uart-Fix-parity-setting-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0070-Linux-3.2.27.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0001-bnx2-Fix-bug-in-bnx2_free_tx_skbs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0002-sch_sfb-Fix-missing-NULL-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0003-sctp-Fix-list-corruption-resulting-from-freeing-an-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0004-caif-Fix-access-to-freed-pernet-memory.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0005-cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0006-caif-fix-NULL-pointer-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0007-wanmain-comparing-array-with-NULL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0008-tcp-Add-TCP_USER_TIMEOUT-negative-value-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0009-USB-kaweth.c-use-GFP_ATOMIC-under-spin_lock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0010-net-fix-rtnetlink-IFF_PROMISC-and-IFF_ALLMULTI-handl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0011-tcp-perform-DMA-to-userspace-only-if-there-is-a-task.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0012-net-tun-fix-ioctl-based-info-leaks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0013-e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0014-rtlwifi-rtl8192cu-Change-buffer-allocation-for-synch.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0015-hfsplus-fix-overflow-in-sector-calculations-in-hfspl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0016-drm-i915-fixup-seqno-allocation-logic-for-lazy_reque.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0017-KVM-VMX-Advertise-CPU_BASED_RDPMC_EXITING-for-nested.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0018-mac80211-cancel-mesh-path-timer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0019-ath9k-Add-PID-VID-support-for-AR1111.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0020-ARM-mxs-Remove-MMAP_MIN_ADDR-setting-from-mxs_defcon.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0021-ALSA-hda-add-dock-support-for-Thinkpad-T430s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0022-cfg80211-process-pending-events-when-unregistering-n.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0023-rt61pci-fix-NULL-pointer-dereference-in-config_lna_g.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0024-iwlwifi-disable-greenfield-transmissions-as-a-workar.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0025-ALSA-hda-add-dock-support-for-Thinkpad-X230.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0026-e1000e-NIC-goes-up-and-immediately-goes-down.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0027-ALSA-hda-remove-quirk-for-Dell-Vostro-1015.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0028-ALSA-hda-Fix-double-quirk-for-Quanta-FL1-Lenovo-Idea.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0029-ARM-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0030-Input-eeti_ts-pass-gpio-value-instead-of-IRQ.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0031-drm-i915-Add-wait_for-in-init_ring_common.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0032-drm-i915-correctly-order-the-ring-init-sequence.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0033-s390-compat-fix-compat-wrappers-for-process_vm-syste.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0034-s390-compat-fix-mmap-compat-system-calls.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0035-drm-radeon-fix-bank-tiling-parameters-on-evergreen.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0036-drm-radeon-fix-bank-tiling-parameters-on-cayman.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0037-drm-radeon-do-not-reenable-crtc-after-moving-vram-st.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0038-Linux-3.2.28.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0001-ALSA-hda-Fix-buffer-alignment-regression-with-Nvidia.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0002-ALSA-hda-Fix-silent-outputs-from-docking-station-jac.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0003-eCryptfs-Sanitize-write-counts-of-dev-ecryptfs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0004-ecryptfs-Improve-metadata-read-failure-logging.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0005-eCryptfs-Make-truncate-path-killable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0006-eCryptfs-Check-inode-changes-in-setattr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0007-eCryptfs-Fix-oops-when-printing-debug-info-in-extent.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0008-drm-radeon-kms-Add-an-MSI-quirk-for-Dell-RS690.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0009-drm-radeon-kms-move-panel-mode-setup-into-encoder-mo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0010-drm-radeon-kms-rework-modeset-sequence-for-DCE41-and.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0011-drm-Fix-authentication-kernel-crash.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0012-xfs-Fix-missing-xfs_iunlock-on-error-recovery-path-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0013-ASoC-Mark-WM5100-register-map-cache-only-when-going-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0014-ASoC-Disable-register-synchronisation-for-low-freque.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0015-ASoC-Don-t-go-through-cache-when-applying-WM5100-rev.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0016-ASoC-wm8996-Call-_POST_PMU-callback-for-CPVDD.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0017-brcmsmac-fix-tx-queue-flush-infinite-loop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0018-mac80211-fix-work-removal-on-deauth-request.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0019-jbd-Issue-cache-flush-after-checkpointing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0020-crypto-sha512-make-it-work-undo-percpu-message-sched.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0021-crypto-sha512-reduce-stack-usage-to-safe-number.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0022-tpm_tis-add-delay-after-aborting-command.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0024-x86-uv-Fix-uv_gpa_to_soc_phys_ram-shift.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0025-x86-microcode_amd-Add-support-for-CPU-family-specifi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0026-m68k-Fix-assembler-constraint-to-prevent-overeager-g.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0027-ALSA-hda-set-mute-led-polarity-for-laptops-with-bugg.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0028-ALSA-hda-Fix-silent-output-on-ASUS-A6Rp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0029-ALSA-hda-Fix-silent-output-on-Haier-W18-laptop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0030-drm-i915-paper-over-missed-irq-issues-with-force-wak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0031-drm-i915-sdvo-always-set-positive-sync-polarity.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0032-drm-i915-Re-enable-gen7-RC6-and-GPU-turbo-after-resu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0033-ARM-at91-fix-at91rm9200-soc-subtype-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0034-mach-ux500-enable-ARM-errata-764369.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0035-ARM-7296-1-proc-v7.S-remove-HARVARD_CACHE-preprocess.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0036-sysfs-Complain-bitterly-about-attempts-to-remove-fil.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0037-x86-xen-size-struct-xen_spinlock-to-always-fit-in-ar.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0038-mpt2sas-Removed-redundant-calling-of-_scsih_probe_de.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0039-USB-option-Add-LG-docomo-L-02C.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0040-USB-ftdi_sio-fix-TIOCSSERIAL-baud_base-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0041-USB-ftdi_sio-fix-initial-baud-rate.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0042-USB-ftdi_sio-add-PID-for-TI-XDS100v2-BeagleBone-A3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0043-USB-serial-ftdi-additional-IDs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0044-USB-ftdi_sio-Add-more-identifiers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0045-USB-cdc-wdm-updating-desc-length-must-be-protected-b.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0046-USB-cdc-wdm-use-two-mutexes-to-allow-simultaneous-re.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0047-qcaux-add-more-Pantech-UML190-and-UML290-ports.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0048-usb-dwc3-ep0-tidy-up-Pending-Request-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0049-usb-io_ti-Make-edge_remove_sysfs_attrs-the-port_remo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0050-TTY-fix-UV-serial-console-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0051-serial-amba-pl011-lock-console-writes-against-interr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0052-jsm-Fixed-EEH-recovery-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0053-iwlwifi-fix-PCI-E-transport-inta-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0054-vmwgfx-Fix-assignment-in-vmw_framebuffer_create_hand.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0055-USB-Realtek-cr-fix-autopm-scheduling-while-atomic.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0056-USB-usbsevseg-fix-max-length.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0057-usb-gadget-langwell-don-t-call-gadget-s-disconnect.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0058-usb-gadget-storage-endian-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0059-drivers-usb-host-ehci-fsl.c-add-missing-iounmap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0060-xhci-Fix-USB-3.0-device-restart-on-resume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0061-xHCI-Cleanup-isoc-transfer-ring-when-TD-length-misma.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0062-usb-musb-davinci-fix-build-breakage.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0063-hwmon-f71805f-Fix-clamping-of-temperature-limits.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0064-hwmon-w83627ehf-Disable-setting-DC-mode-for-pwm2-pwm.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0065-hwmon-sht15-fix-bad-error-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0066-USB-cdc-wdm-call-wake_up_all-to-allow-driver-to-shut.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0067-USB-cdc-wdm-better-allocate-a-buffer-that-is-at-leas.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0068-USB-cdc-wdm-Avoid-hanging-on-interface-with-no-USB_C.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0069-netns-fix-net_alloc_generic.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0070-netns-Fail-conspicously-if-someone-uses-net_generic-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0071-net-caif-Register-properly-as-a-pernet-subsystem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0072-af_unix-fix-EPOLLET-regression-for-stream-sockets.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0073-bonding-fix-enslaving-in-alb-mode-when-link-down.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0074-l2tp-l2tp_ip-fix-possible-oops-on-packet-receive.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0075-macvlan-fix-a-possible-use-after-free.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0076-net-bpf_jit-fix-divide-by-0-generation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0077-net-reintroduce-missing-rcu_assign_pointer-calls.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0078-rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0079-tcp-fix-tcp_trim_head-to-adjust-segment-count-with-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0080-tcp-md5-using-remote-adress-for-md5-lookup-in-rst-pa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0081-USB-serial-CP210x-Added-USB-ID-for-the-Link-Instrume.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0082-USB-cp210x-call-generic-open-last-in-open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0083-USB-cp210x-fix-CP2104-baudrate-usage.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0084-USB-cp210x-do-not-map-baud-rates-to-B0.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0085-USB-cp210x-fix-up-set_termios-variables.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0086-USB-cp210x-clean-up-refactor-and-document-speed-hand.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0087-USB-cp210x-initialise-baud-rate-at-open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0088-USB-cp210x-allow-more-baud-rates-above-1Mbaud.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0089-mach-ux500-no-MMC_CAP_SD_HIGHSPEED-on-Snowball.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0090-Linux-3.2.3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0001-Revert-ASoC-Mark-WM5100-register-map-cache-only-when.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0002-Revert-ASoC-Don-t-go-through-cache-when-applying-WM5.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0003-Linux-3.2.4.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0001-PCI-Rework-ASPM-disable-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0002-Linux-3.2.5.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0001-readahead-fix-pipeline-break-caused-by-block-plug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0002-ALSA-hda-Fix-the-logic-to-detect-VIA-analog-low-curr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0003-ALSA-HDA-Remove-quirk-for-Asus-N53Jq.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0004-ALSA-hda-Apply-0x0f-VREF-fix-to-all-ASUS-laptops-wit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0005-ALSA-hda-Fix-calling-cs_automic-twice-for-Cirrus-cod.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0006-ALSA-hda-Allow-analog-low-current-mode-when-dynamic-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0007-ALSA-HDA-Fix-duplicated-output-to-more-than-one-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0008-ALSA-hda-Disable-dynamic-power-control-for-VIA-as-de.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0009-ASoC-wm_hubs-Enable-line-out-VMID-buffer-for-single-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0010-ASoC-wm_hubs-fix-wrong-bits-for-LINEOUT2-N-P-mixer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0011-ARM-7306-1-vfp-flush-thread-hwstate-before-restoring.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0012-ARM-7307-1-vfp-fix-ptrace-regset-modification-race.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0013-ARM-7308-1-vfp-flush-thread-hwstate-before-copying-p.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0014-ARM-OMAP2-GPMC-fix-device-size-setup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0015-drivers-tty-vt-vt_ioctl.c-fix-KDFONTOP-32bit-compati.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0016-proc-mem_release-should-check-mm-NULL.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0017-proc-unify-mem_read-and-mem_write.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0018-proc-make-sure-mem_open-doesn-t-pin-the-target-s-mem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0019-firewire-ohci-add-reset-packet-quirk-for-SB-Audigy.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0020-firewire-ohci-disable-MSI-on-Ricoh-controllers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0022-RDMA-core-Fix-kernel-panic-by-always-initializing-qp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0023-kprobes-fix-a-memory-leak-in-function-pre_handler_kr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0024-mtd-gpmi-nand-bugfix-reset-the-BCH-module-when-it-is.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0025-Revert-mtd-atmel_nand-optimize-read-write-buffer-fun.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0026-at_hdmac-bugfix-for-enabling-channel-irq.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0027-mm-filemap_xip.c-fix-race-condition-in-xip_file_faul.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0028-mm-compaction-check-pfn_valid-when-entering-a-new-MA.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0029-PM-Hibernate-Fix-s2disk-regression-related-to-freezi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0030-PM-QoS-CPU-C-state-breakage-with-PM-Qos-change.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0031-drm-radeon-Set-DESKTOP_HEIGHT-register-to-the-frameb.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0032-drm-nouveau-gem-fix-fence_sync-race-oops.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0033-drm-radeon-kms-disable-output-polling-when-suspended.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0034-drm-radeon-kms-fix-TRAVIS-panel-setup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0035-sched-rt-Fix-task-stack-corruption-under-__ARCH_WANT.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0036-PM-Hibernate-Thaw-processes-in-SNAPSHOT_CREATE_IMAGE.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0037-PM-Hibernate-Thaw-kernel-threads-in-SNAPSHOT_CREATE_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0038-8139cp-fix-missing-napi_gro_flush.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0039-udf-Mark-LVID-buffer-as-uptodate-before-marking-it-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0040-drm-i915-HDMI-hot-remove-notification-to-audio-drive.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0041-drm-i915-DisplayPort-hot-remove-notification-to-audi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0042-drm-i915-check-ACTHD-of-all-rings.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0043-drm-i915-Fix-TV-Out-refresh-rate.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0044-drm-i915-handle-3rd-pipe.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0045-drm-i915-convert-force_wake_get-to-func-pointer-in-t.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0046-drm-i915-protect-force_wake_-get-put-with-the-gt_loc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0047-eCryptfs-Infinite-loop-due-to-overflow-in-ecryptfs_w.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0048-hwmon-w83627ehf-Fix-number-of-fans-for-NCT6776F.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0049-cifs-Fix-oops-in-session-setup-code-for-null-user-mo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0050-atmel_lcdfb-fix-usage-of-CONTRAST_CTR-in-suspend-res.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0051-lockdep-bug-Exclude-TAINT_FIRMWARE_WORKAROUND-from-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0052-lockdep-bug-Exclude-TAINT_OOT_MODULE-from-disabling-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0053-iscsi-target-Fix-reject-release-handling-in-iscsit_f.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0054-iscsi-target-Fix-double-list_add-with-iscsit_alloc_b.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0055-iscsi-target-Fix-discovery-with-INADDR_ANY-and-IN6AD.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0056-ASoC-wm_hubs-Fix-routing-of-input-PGAs-to-line-outpu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0057-ASoC-wm_hubs-Correct-line-input-to-line-output-2-pat.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0058-ASoC-wm8962-Fix-word-length-configuration.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0059-ASoC-wm8994-Enabling-VMID-should-take-a-runtime-PM-r.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0060-ASoC-wm8994-Fix-typo-in-VMID-ramp-setting.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0061-pcmcia-fix-socket-refcount-decrementing-on-each-resu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0062-ALSA-oxygen-virtuoso-fix-exchanged-L-R-volumes-of-au.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0063-iommu-amd-Work-around-broken-IVRS-tables.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0064-iommu-msm-Fix-error-handling-in-msm_iommu_unmap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0065-mm-compaction-check-for-overlapping-nodes-during-iso.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0066-mm-fix-UP-THP-spin_is_locked-BUGs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0067-target-Use-correct-preempted-registration-sense-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0068-target-Allow-PERSISTENT-RESERVE-IN-for-non-reservati.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0069-target-Correct-sense-key-for-INVALID-FIELD-IN-PARAME.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0070-target-Add-workaround-for-zero-length-control-CDB-ha.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0071-target-Return-correct-ASC-for-unimplemented-VPD-page.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0072-target-Fail-INQUIRY-commands-with-EVPD-0-but-PAGE-CO.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0073-Staging-asus_oled-fix-image-processing.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0074-Staging-asus_oled-fix-NULL-ptr-crash-on-unloading.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0075-staging-r8712u-Add-new-Sitecom-UsB-ID.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0076-staging-r8712u-Use-asynchronous-firmware-loading.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0077-usb-ch9.h-usb_endpoint_maxp-uses-__le16_to_cpu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0078-usb-gadget-zero-fix-bug-in-loopback-autoresume-handl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0079-usb-Skip-PCI-USB-quirk-handling-for-Netlogic-XLP.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0080-USB-usbserial-add-new-PID-number-0xa951-to-the-ftdi-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0081-USB-add-new-zte-3g-dongle-s-pid-to-option.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0082-zcache-Set-SWIZ_BITS-to-8-to-reduce-tmem-bucket-lock.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0083-zcache-fix-deadlock-condition.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0084-mmc-cb710-core-Add-missing-spin_lock_init-for-irq_lo.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0086-powernow-k8-Fix-indexing-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0087-Linux-3.2.6.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0001-ixgbe-fix-vf-lookup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0002-igb-fix-vf-lookup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0003-perf-evsel-Fix-an-issue-where-perf-report-fails-to-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0004-perf-tools-Fix-perf-stack-to-non-executable-on-x86_6.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0005-drm-i915-Force-explicit-bpp-selection-for-intel_dp_l.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0006-drm-i915-no-lvds-quirk-for-AOpen-MP45.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0007-ath9k-Fix-kernel-panic-during-driver-initilization.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0008-ath9k-fix-a-WEP-crypto-related-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0009-ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0010-hwmon-f75375s-Fix-bit-shifting-in-f75375_write16.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0011-net-enable-TC35815-for-MIPS-again.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0012-lib-proportion-lower-PROP_MAX_SHIFT-to-32-on-64-bit-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0013-relay-prevent-integer-overflow-in-relay_open.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0014-mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0015-writeback-fix-NULL-bdi-dev-in-trace-writeback_single.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0016-writeback-fix-dereferencing-NULL-bdi-dev-on-trace_wr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0017-hwmon-f75375s-Fix-automatic-pwm-mode-setting-for-F75.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0018-cifs-request-oplock-when-doing-open-on-lookup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0019-cifs-don-t-return-error-from-standard_receive3-after.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0020-crypto-sha512-Use-binary-and-instead-of-modulus.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0021-crypto-sha512-Avoid-stack-bloat-on-i386.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0022-backing-dev-fix-wakeup-timer-races-with-bdi_unregist.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0023-ALSA-intel8x0-Fix-default-inaudible-sound-on-Gateway.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0024-ALSA-hda-Fix-initialization-of-secondary-capture-sou.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0025-ALSA-hda-Fix-silent-speaker-output-on-Acer-Aspire-69.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0026-mmc-atmel-mci-save-and-restore-sdioirq-when-soft-res.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0027-mmc-dw_mmc-Fix-PIO-mode-with-support-of-highmem.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0028-xen-pvhvm-do-not-remap-pirqs-onto-evtchns-if-xen_hav.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0029-crypto-sha512-use-standard-ror64.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0030-Linux-3.2.7.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0001-i387-math_state_restore-isn-t-called-from-asm.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0002-i387-make-irq_fpu_usable-tests-more-robust.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0003-i387-fix-sense-of-sanity-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0004-i387-fix-x86-64-preemption-unsafe-user-stack-save-re.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0005-i387-move-TS_USEDFPU-clearing-out-of-__save_init_fpu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0006-i387-don-t-ever-touch-TS_USEDFPU-directly-use-helper.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0007-i387-do-not-preload-FPU-state-at-task-switch-time.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0008-i387-move-AMD-K7-K8-fpu-fxsave-fxrstor-workaround-fr.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0009-i387-move-TS_USEDFPU-flag-from-thread_info-to-task_s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0010-i387-re-introduce-FPU-state-preloading-at-context-sw.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0011-Linux-3.2.8.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0001-Security-tomoyo-add-.gitignore-file.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0002-powerpc-perf-power_pmu_start-restores-incorrect-valu.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0003-ARM-at91-USB-AT91-gadget-registration-for-module.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0004-drm-radeon-kms-fix-MSI-re-arm-on-rv370.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0005-PCI-workaround-hard-wired-bus-number-V2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0006-mac80211-Fix-a-rwlock-bad-magic-bug.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0007-ipheth-Add-iPhone-4S.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0008-regmap-Fix-cache-defaults-initialization-from-raw-ca.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0009-eCryptfs-Copy-up-lower-inode-attrs-after-setting-low.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0010-S390-correct-ktime-to-tod-clock-comparator-conversio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0011-vfs-fix-d_inode_lookup-dentry-ref-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0012-ARM-7326-2-PL330-fix-null-pointer-dereference-in-pl3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0013-ALSA-hda-Fix-redundant-jack-creations-for-cx5051.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0014-mmc-core-check-for-zero-length-ioctl-data.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0015-NFSv4-Fix-an-Oops-in-the-NFSv4-getacl-code.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0016-NFSv4-Ensure-we-throw-out-bad-delegation-stateids-on.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0017-NFSv4-fix-server_scope-memory-leak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0018-ARM-7321-1-cache-v7-Disable-preemption-when-reading-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0019-ARM-7325-1-fix-v7-boot-with-lockdep-enabled.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0020-3c59x-shorten-timer-period-for-slave-devices.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0021-net-Don-t-proxy-arp-respond-if-iif-rt-dst.dev-if-pri.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0022-netpoll-netpoll_poll_dev-should-access-dev-flags.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0023-net_sched-Bug-in-netem-reordering.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0024-veth-Enforce-minimum-size-of-VETH_INFO_PEER.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0025-via-velocity-S3-resume-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0026-ipv4-reset-flowi-parameters-on-route-connect.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0027-tcp_v4_send_reset-binding-oif-to-iif-in-no-sock-case.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0028-ipv4-Fix-wrong-order-of-ip_rt_get_source-and-update-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0029-net-Make-qdisc_skb_cb-upper-size-bound-explicit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0030-IPoIB-Stop-lying-about-hard_header_len-and-use-skb-c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0031-gro-more-generic-L2-header-check.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0032-tcp-allow-tcp_sacktag_one-to-tag-ranges-not-aligned-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0033-tcp-fix-range-tcp_shifted_skb-passes-to-tcp_sacktag_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0034-tcp-fix-tcp_shifted_skb-adjustment-of-lost_cnt_hint-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0035-USB-Added-Kamstrup-VID-PIDs-to-cp210x-serial-driver.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0036-USB-option-cleanup-zte-3g-dongle-s-pid-in-option.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0037-USB-Serial-ti_usb_3410_5052-Add-Abbot-Diabetes-Care-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0038-USB-Remove-duplicate-USB-3.0-hub-feature-defines.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0039-USB-Fix-handoff-when-BIOS-disables-host-PCI-device.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0040-xhci-Fix-oops-caused-by-more-USB2-ports-than-USB3-po.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0041-xhci-Fix-encoding-for-HS-bulk-control-NAK-rate.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0042-USB-Don-t-fail-USB3-probe-on-missing-legacy-PCI-IRQ.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0043-USB-Set-hub-depth-after-USB3-hub-reset.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0044-usb-storage-fix-freezing-of-the-scanning-thread.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0045-target-Allow-control-CDBs-with-data-1-page.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0046-ASoC-wm8962-Fix-sidetone-enumeration-texts.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0047-ALSA-hda-realtek-Fix-overflow-of-vol-sw-check-bitmap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0049-NOMMU-Lock-i_mmap_mutex-for-access-to-the-VMA-prio-l.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0050-hwmon-max6639-Fix-FAN_FROM_REG-calculation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0051-hwmon-max6639-Fix-PPR-register-initialization-to-set.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0052-hwmon-ads1015-Fix-file-leak-in-probe-function.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0053-ARM-omap-fix-oops-in-drivers-video-omap2-dss-dpi.c.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-x86-amd-Fix-L1i-and-L2-cache-sharing-information-for.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0055-ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0056-genirq-Unmask-oneshot-irqs-when-thread-was-not-woken.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0057-genirq-Handle-pending-irqs-in-irq_startup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0058-scsi_scan-Fix-Poison-overwritten-warning-caused-by-u.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0059-scsi_pm-Fix-bug-in-the-SCSI-power-management-handler.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0060-ipvs-fix-matching-of-fwmark-templates-during-schedul.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0061-jme-Fix-FIFO-flush-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0062-davinci_emac-Do-not-free-all-rx-dma-descriptors-duri.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0063-builddeb-Don-t-create-files-in-tmp-with-predictable-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0064-can-sja1000-fix-isr-hang-when-hw-is-unplugged-under-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0065-hdpvr-fix-race-conditon-during-start-of-streaming.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0066-imon-don-t-wedge-hardware-after-early-callbacks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0067-hwmon-f75375s-Fix-register-write-order-when-setting-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0068-epoll-introduce-POLLFREE-to-flush-signalfd_wqh-befor.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0069-epoll-ep_unregister_pollwait-can-use-the-freed-pwq-w.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0070-epoll-limit-paths.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0071-cdrom-use-copy_to_user-without-the-underscores.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0072-Linux-3.2.9.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-evm/defconfig
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-pm-firmware.bin
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-f_rndis-HACK-around-undefined-variables.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0002-da8xx-fb-add-DVI-support-for-beaglebone.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0003-beaglebone-rebase-everything-onto-3.2-WARNING-MEGAPA.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0004-more-beaglebone-merges.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0005-beaglebone-disable-tsadc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0006-tscadc-Add-general-purpose-mode-untested-with-touchs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0007-tscadc-Add-board-file-mfd-support-fix-warning.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0008-AM335X-init-tsc-bone-style-for-new-boards.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0009-tscadc-make-stepconfig-channel-configurable.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0010-tscadc-Trigger-through-sysfs.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0011-meta-ti-Remove-debug-messages-for-meta-ti.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0012-tscadc-switch-to-polling-instead-of-interrupts.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0013-beaglebone-fix-ADC-init.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0014-AM335x-MUX-add-ehrpwm1A.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0015-beaglebone-enable-PWM-for-lcd-backlight-backlight-is.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0016-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0017-beaglebone-set-default-brightness-to-50-for-pwm-back.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0018-st7735fb-WIP-framebuffer-driver-supporting-Adafruit-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0019-beaglebone-use-P8_6-gpio1_3-as-w1-bus.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0020-beaglebone-add-support-for-Towertech-TT3201-CAN-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0021-beaglebone-add-more-beagleboardtoys-cape-partnumbers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0022-beaglebone-add-gpio-keys-for-lcd7-add-notes-for-miss.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0023-beaglebone-add-enter-key-for-lcd7-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0024-beaglebone-add-gpio-keys-for-lcd.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0025-beaglebone-fix-direction-of-gpio-keys.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0026-beaglebone-fix-3.5-lcd-cape-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0027-beaglebone-decrease-PWM-frequency-to-old-value-LCD7-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0028-beaglebone-fix-ehrpwm-backlight.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0029-beaglebone-also-report-cape-revision.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0030-beaglebone-don-t-compare-undefined-characters-it-mak.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0031-beaglebone-fix-3.5-cape-support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0041-st7735fb-Working-WIP-changes-to-make-DMA-safe-and-ad.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0042-omap-hwmod-silence-st_shift-error.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0043-cpsw-phy_device-demote-PHY-message-to-INFO.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0044-beaglebone-add-support-for-7-LCD-cape-revision-A2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0045-beaglebone-allow-capes-to-disable-w1-gpio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0046-beaglebone-add-stub-for-the-camera-cape-to-disable-w.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0047-Adding-many-of-the-missing-signals-to-the-mux-table.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0048-Fixed-reversed-part-of-LCD-bus.-Added-even-more-miss.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0049-ts_tscadc-add-defines-for-4x-and-16x-oversampling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0050-ts_tscadc-switch-to-4x-oversampling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0051-Fixed-size-of-pinmux-data-array-in-EEPROM-data-struc.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0052-Implemented-Bone-Cape-configuration-from-EEPROM.-Onl.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0053-Replaced-conditional-debug-code-by-pr_debug-statemen.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0054-Workaround-for-boards-with-mistaken-ASCII-interpreta.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0055-Workaround-for-EEPROM-contents-blocking-further-I2C-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0056-Added-check-on-EEPROM-revision-to-prevent-interpreti.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0057-i2c-prescalar-fix-i2c-fixed-prescalar-setting-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0058-beaglebone-annotate-default-beaglebone-pinmux.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0059-beaglebone-fix-pin-free-thinko-this-method-doesn-t-g.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0060-beaglebone-switch-RS232-cape-to-ttyO2.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0061-beaglebone-make-uart2-pinmux-match-the-uart0-pinmux.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0062-da8xx-fb-Rounding-FB-size-to-satisfy-SGX-buffer-requ.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0063-beaglebone-dvi-cape-audio-hacks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0064-beaglebone-always-execute-the-pin-free-checks.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0065-ti_tscadc-switch-to-16x-averaging.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0066-video-da8xx-fb-Add-Newhaven-LCD-Panel-details.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0067-beaglebone-add-support-for-the-4.3-lcd-cape-with-res.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0068-beaglebone-add-support-for-LCD3-rev-A1.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0069-beaglebone-fix-buttons-spidev-clash-when-using-mcasp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0070-beaglebone-fix-LCD3-led-key-overlap.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0071-beaglebone-fix-audio-spi-clash.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0072-beaglebone-add-support-for-QuickLogic-Camera-interfa.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0073-beaglebone-add-support-for-DVI-audio-and-audio-only-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0074-beaglebone-disable-LBO-GPIO-for-battery-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0075-video-da8xx-fb-calculate-pixel-clock-period-for-the-.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0076-beaglebone-improve-GPMC-bus-timings-for-camera-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0077-beaglebone-disable-UYVY-VYUY-and-YVYU-modes-in-camer.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0078-beaglebone-error-handling-for-DMA-completion-in-cssp.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0079-AM335X-errata-OPP50-on-MPU-domain-is-not-supported.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0080-vfs-Add-a-trace-point-in-the-mark_inode_dirty-functi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0081-beaglebone-add-support-for-LCD7-A3.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0082-beaglebone-add-rudimentary-support-for-eMMC-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0083-beaglebone-add-extra-partnumber-for-camera-cape.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0084-beaglebone-cssp_camera-driver-cleanup.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0085-beaglebone-mux-camera-cape-orientation-pin-to-gpio.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0086-board-am335xevm-Add-Beaglebone-Motor-Cape-Support.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0087-mux33xx-Fix-MUXENTRYs-for-MCASP0_ACLKX-FSX-to-add-eh.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/logo_linux_clut224.ppm
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/configs/empty
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0003-switch-debugfs-to-umode_t.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0006-wireless-libertas-remove-redundant-NULL-tests-before.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0007-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0008-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0009-libertas-Firmware-loading-simplifications.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0010-libertas-harden-up-exit-paths.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0011-libertas-add-asynchronous-firmware-loading-capabilit.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0012-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0013-libertas-USB-convert-to-asynchronous-firmware-loadin.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0014-libertas-CS-convert-to-asynchronous-firmware-loading.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0015-libertas-add-missing-include.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0016-remove-debug-msgs-due-to-missing-in_interrupt.patch
 delete mode 100755 recipes-kernel/linux/linux-ti33x-psp-3.2/patch.sh
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0001-ARM-OMAP-AM33XX-Add-missing-EMIF-register-offsets.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0002-ARM-OMAP-AM33XX-PM-Get-rid-of-hardcoded-resume-addre.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0003-ARM-OMAP-AM33XX-PM-Skip-DDR-PHY-reconfiguration-in-r.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0004-ARM-OMAP-AM33XX-PM-Save-and-restore-EMIF-registers.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0005-ARM-OMAP-AM33XX-PM-Wait-correctly-for-the-PLLs-to-re.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0006-ARM-OMAP-AM33XX-PM-Restore-the-PLLs-to-pre-suspend-s.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0007-ARM-OMAP-PM-AM33XX-Update-the-sleep-code-to-handle-D.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0008-usb-musb-update-babble-workaround-fix.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0009-usb-musb-ti81xx-print-the-usbss-revision-id-during-i.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0010-usb-musb-cppi41-enable-txfifo-empty-interrupt-logic.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0011-usb-musb-host-Flush-txfifo-only-if-TxPktRdy-bit-set.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0013-usb-musb-cppi41-fix-zero-byte-OUT-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0014-usb-musb-host-fix-for-urb-error-handling.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0015-usb-musb-cppi41-txdma-flushfifo-fixes-during-channel.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0016-usb-musb-cppi41-tx-dma-completion-fixes.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0017-usb-musb-host-Flush-RxFIFO-only-when-RxPktRdy-is-set.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0018-usb-musb-ti81xx-fix-role-switching-issue.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0019-MMC-OMAP-HS-Enable-HSPE-bit-for-high-speed-cards.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0001-PWM-ecap-Correct-configuration-of-polarity.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0002-ARM-OMAP2-am335x-mux-add-ecap2_in_pwm2_out-string-en.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0003-ARM-OMAP2-AM335x-hwmod-Remove-PRCM-entries-for-PWMSS.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0004-PWM-ecap-Resets-the-PWM-output-to-low-on-stop.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0005-PWM-ecap-Fix-for-throwing-PWM-output-before-running.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0006-pwm-ehrpwm-Configure-polarity-on-pwm_start.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0001-usb-musb-cppi41-revisit-the-teardown-path-to-fix-iso.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0002-usb-musb-fix-bug-in-data-toggle-sw-workaround.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0003-usb-gadget-udc-core-stop-UDC-on-device-initiated-dis.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0004-usb-gadget-udc-core-fix-asymmetric-calls-in-remove_d.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0005-usb-gadget-udc-core-fix-wrong-call-order.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0006-usb-gadget-udc-core-fix-incompatibility-with-dummy-h.patch
 delete mode 100644 recipes-kernel/linux/linux-ti33x-psp_3.2.bb
 delete mode 100644 recipes-kernel/linux/linux/beagleboard/logo_linux_clut224.ppm
 delete mode 100644 recipes-kernel/linux/linux_3.3.7.bb

diff --git a/recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch b/recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch
deleted file mode 100644
index 06db87e..0000000
--- a/recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch
+++ /dev/null
@@ -1,184 +0,0 @@
-From 457318d7eff18258b4ef11fb4e4b924d2b5b5bb0 Mon Sep 17 00:00:00 2001
-From: Russ Dill <Russ.Dill at ti.com>
-Date: Tue, 8 May 2012 19:49:06 -0700
-Subject: [PATCH] ARM: OMAP: Cleanup Beagleboard DVI reset gpio
-
-This removes several boot warnings from board-omap3beagle.c:
-
- - gpio_request: gpio--22 (DVI reset) status -22
- - Unable to get DVI reset GPIO
-
-There is a combination of leftover code and revision confusion.
-Additionally, xM support is currently a hack.
-
-For original Beagleboard this removes the double initialization of GPIO
-170, properly configures it as an output, and wraps the initialization
-in an if block so that xM does not attempt to request it.
-
-For Beagleboard xM it removes reference to GPIO 129 which was part
-of rev A1 and A2 designs, but never functioned. It then properly assigns
-beagle_dvi_device.reset_gpio in beagle_twl_gpio_setup and removes the
-hack of initializing it high. Additionally, it uses
-gpio_set_value_cansleep since this GPIO is connected through i2c.
-
-Unfortunately, there is no way to tell the difference between xM A2 and
-A3. However, GPIO 129 does not function on rev A1 and A2, and the TWL
-GPIO used on A3 and beyond is not used on rev A1 and A2, there are no
-problems created by this fix.
-
-v3
- - Change patch title to include 'ARM: OMAP:'
- - Actually rename reset_gpio to dvi_reset_gpio
-
-v2
- - Rename reset_gpio to dvi_reset_gpio to self document
- - Use gpio_set_value_cansleep since TWL gpio can sleep
- - Use gpio_is_valid instead of -EINVAL check
-
-Tested on Beagleboard-xM Rev C1 and Beagleboard Rev B4.
-
-Upstream-Status: Submitted
-    * This patch has been submitted for the 3.5 kernel and is
-      being reworked for upstream acceptance.
-
-Signed-off-by: Russ Dill <Russ.Dill at ti.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   49 ++++++++++++++++--------------
- 1 files changed, 26 insertions(+), 23 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 7ffcd28..c9322ac 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -81,12 +81,12 @@ static u8 omap3_beagle_version;
- static struct {
- 	int mmc1_gpio_wp;
- 	int usb_pwr_level;
--	int reset_gpio;
-+	int dvi_reset_gpio;
- 	int usr_button_gpio;
- } beagle_config = {
- 	.mmc1_gpio_wp = -EINVAL,
- 	.usb_pwr_level = GPIOF_OUT_INIT_LOW,
--	.reset_gpio = 129,
-+	.dvi_reset_gpio = -EINVAL,
- 	.usr_button_gpio = 4,
- };
- 
-@@ -124,21 +124,21 @@ static void __init omap3_beagle_init_rev(void)
- 		printk(KERN_INFO "OMAP3 Beagle Rev: Ax/Bx\n");
- 		omap3_beagle_version = OMAP3BEAGLE_BOARD_AXBX;
- 		beagle_config.mmc1_gpio_wp = 29;
--		beagle_config.reset_gpio = 170;
-+		beagle_config.dvi_reset_gpio = 170;
- 		beagle_config.usr_button_gpio = 7;
- 		break;
- 	case 6:
- 		printk(KERN_INFO "OMAP3 Beagle Rev: C1/C2/C3\n");
- 		omap3_beagle_version = OMAP3BEAGLE_BOARD_C1_3;
- 		beagle_config.mmc1_gpio_wp = 23;
--		beagle_config.reset_gpio = 170;
-+		beagle_config.dvi_reset_gpio = 170;
- 		beagle_config.usr_button_gpio = 7;
- 		break;
- 	case 5:
- 		printk(KERN_INFO "OMAP3 Beagle Rev: C4\n");
- 		omap3_beagle_version = OMAP3BEAGLE_BOARD_C4;
- 		beagle_config.mmc1_gpio_wp = 23;
--		beagle_config.reset_gpio = 170;
-+		beagle_config.dvi_reset_gpio = 170;
- 		beagle_config.usr_button_gpio = 7;
- 		break;
- 	case 0:
-@@ -192,7 +192,7 @@ static struct mtd_partition omap3beagle_nand_partitions[] = {
- static int beagle_enable_dvi(struct omap_dss_device *dssdev)
- {
- 	if (gpio_is_valid(dssdev->reset_gpio))
--		gpio_set_value(dssdev->reset_gpio, 1);
-+		gpio_set_value_cansleep(dssdev->reset_gpio, 1);
- 
- 	return 0;
- }
-@@ -200,7 +200,7 @@ static int beagle_enable_dvi(struct omap_dss_device *dssdev)
- static void beagle_disable_dvi(struct omap_dss_device *dssdev)
- {
- 	if (gpio_is_valid(dssdev->reset_gpio))
--		gpio_set_value(dssdev->reset_gpio, 0);
-+		gpio_set_value_cansleep(dssdev->reset_gpio, 0);
- }
- 
- static struct panel_dvi_platform_data dvi_panel = {
-@@ -238,12 +238,17 @@ static struct omap_dss_board_info beagle_dss_data = {
- 
- static void __init beagle_display_init(void)
- {
--	int r;
--
--	r = gpio_request_one(beagle_dvi_device.reset_gpio, GPIOF_OUT_INIT_LOW,
--			     "DVI reset");
--	if (r < 0)
--		printk(KERN_ERR "Unable to get DVI reset GPIO\n");
-+	if (gpio_is_valid(beagle_config.dvi_reset_gpio)) {
-+		int r;
-+
-+		omap_mux_init_gpio(beagle_config.dvi_reset_gpio, OMAP_PIN_OUTPUT);
-+		r = gpio_request_one(beagle_config.dvi_reset_gpio,
-+				     GPIOF_OUT_INIT_LOW, "DVI reset");
-+		if (r < 0)
-+			printk(KERN_ERR "Unable to get DVI reset GPIO\n");
-+		else
-+			beagle_dvi_device.reset_gpio = beagle_config.dvi_reset_gpio;
-+	}
- }
- 
- #include "sdram-micron-mt46h32m32lf-6.h"
-@@ -272,7 +277,7 @@ static int beagle_twl_gpio_setup(struct device *dev,
- {
- 	int r;
- 
--	if (beagle_config.mmc1_gpio_wp != -EINVAL)
-+	if (gpio_is_valid(beagle_config.mmc1_gpio_wp))
- 		omap_mux_init_gpio(beagle_config.mmc1_gpio_wp, OMAP_PIN_INPUT);
- 	mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
- 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
-@@ -297,11 +302,14 @@ static int beagle_twl_gpio_setup(struct device *dev,
- 		if (r)
- 			pr_err("%s: unable to configure nDVI_PWR_EN\n",
- 				__func__);
--		r = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_HIGH,
--				     "DVI_LDO_EN");
-+
-+		r = gpio_request_one(gpio + 2, GPIOF_OUT_INIT_LOW,
-+				     "DVI_PU");
- 		if (r)
--			pr_err("%s: unable to configure DVI_LDO_EN\n",
--				__func__);
-+			pr_err("%s: unable to get DVI_PU GPIO\n", __func__);
-+		else
-+			beagle_dvi_device.reset_gpio = gpio + 2;
-+
- 	} else {
- 		/*
- 		 * REVISIT: need ehci-omap hooks for external VBUS
-@@ -310,7 +318,6 @@ static int beagle_twl_gpio_setup(struct device *dev,
- 		if (gpio_request_one(gpio + 1, GPIOF_IN, "EHCI_nOC"))
- 			pr_err("%s: unable to configure EHCI_nOC\n", __func__);
- 	}
--	beagle_dvi_device.reset_gpio = beagle_config.reset_gpio;
- 
- 	gpio_request_one(gpio + TWL4030_GPIO_MAX, beagle_config.usb_pwr_level,
- 			"nEN_USB_PWR");
-@@ -532,10 +539,6 @@ static void __init omap3_beagle_init(void)
- 	omap_sdrc_init(mt46h32m32lf6_sdrc_params,
- 				  mt46h32m32lf6_sdrc_params);
- 
--	omap_mux_init_gpio(170, OMAP_PIN_INPUT);
--	/* REVISIT leave DVI powered down until it's needed ... */
--	gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
--
- 	usb_musb_init(NULL);
- 	usbhs_init(&usbhs_bdata);
- 	omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
--- 
-1.7.0.4
-
diff --git a/recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP2-UART-Fix-incorrect-population-of-default-u.patch b/recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP2-UART-Fix-incorrect-population-of-default-u.patch
deleted file mode 100644
index 6677d2d..0000000
--- a/recipes-kernel/linux/linux-3.3.7/beagleboard/0001-ARM-OMAP2-UART-Fix-incorrect-population-of-default-u.patch
+++ /dev/null
@@ -1,169 +0,0 @@
-From bce492c04ba8fc66a4ea0a52b181ba255daaaf54 Mon Sep 17 00:00:00 2001
-From: Govindraj.R <govindraj.raja at ti.com>
-Date: Tue, 17 Apr 2012 10:35:47 -0700
-Subject: [PATCH] ARM: OMAP2+: UART: Fix incorrect population of default uart pads
-
-Commit (7496ba3  ARM: OMAP2+: UART: Add default mux for all uarts)
-wrongly added muxing of default pads for all uarts. This causes
-breakage on multiple boards using uart pins for alternate functions.
-
-For example, on zoom3 random oopses can be seen with nfsroot as
-the smsc911x ethernet FIFO timings on GPMC bus are controlled
-by gpmc_wait2 and gpmc_wait3 pins. This means we can't mux these
-pads to uart4 functionality as commit 7496ba3 was doing.
-
-Not all boards tend to use all uarts and most of unused uart pins
-are muxed for other purpose. This commit breaks the modules which
-where trying to use unused uart pins on their boards.
-
-So remove the default pad muxing. Note that this is not a complete
-fix, as we now rely on bootloader set muxing for the uart wake-up
-events. Further patching is needed to enable wake-up events for
-uarts that are already muxed to uart mode.
-
-Upstream-Status: Backport
-    * Backported from commit bce492c0 in linux mainline
-
-Cc: Felipe Balbi <balbi at ti.com>
-Cc: Kevin Hilman <khilman at ti.com>
-Acked-by: Russ Dill <russ.dill at gmail.com>
-Reported-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Govindraj.R <govindraj.raja at ti.com>
-[tony at atomide.com: updated comments to describe oops on zoom3]
-Signed-off-by: Tony Lindgren <tony at atomide.com>
----
- arch/arm/mach-omap2/serial.c |  116 ------------------------------------------
- 1 files changed, 0 insertions(+), 116 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/serial.c b/arch/arm/mach-omap2/serial.c
-index 0cdd359..2e351f5 100644
---- a/arch/arm/mach-omap2/serial.c
-+++ b/arch/arm/mach-omap2/serial.c
-@@ -120,124 +120,8 @@ static void omap_uart_set_smartidle(struct platform_device *pdev) {}
- #endif /* CONFIG_PM */
- 
- #ifdef CONFIG_OMAP_MUX
--static struct omap_device_pad default_uart1_pads[] __initdata = {
--	{
--		.name	= "uart1_cts.uart1_cts",
--		.enable	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart1_rts.uart1_rts",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart1_tx.uart1_tx",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart1_rx.uart1_rx",
--		.flags	= OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
--		.enable	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--		.idle	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--	},
--};
--
--static struct omap_device_pad default_uart2_pads[] __initdata = {
--	{
--		.name	= "uart2_cts.uart2_cts",
--		.enable	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart2_rts.uart2_rts",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart2_tx.uart2_tx",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart2_rx.uart2_rx",
--		.flags	= OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
--		.enable	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--		.idle	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--	},
--};
--
--static struct omap_device_pad default_uart3_pads[] __initdata = {
--	{
--		.name	= "uart3_cts_rctx.uart3_cts_rctx",
--		.enable	= OMAP_PIN_INPUT_PULLUP | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart3_rts_sd.uart3_rts_sd",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart3_tx_irtx.uart3_tx_irtx",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart3_rx_irrx.uart3_rx_irrx",
--		.flags	= OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
--		.enable	= OMAP_PIN_INPUT | OMAP_MUX_MODE0,
--		.idle	= OMAP_PIN_INPUT | OMAP_MUX_MODE0,
--	},
--};
--
--static struct omap_device_pad default_omap36xx_uart4_pads[] __initdata = {
--	{
--		.name   = "gpmc_wait2.uart4_tx",
--		.enable = OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "gpmc_wait3.uart4_rx",
--		.flags	= OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
--		.enable	= OMAP_PIN_INPUT | OMAP_MUX_MODE2,
--		.idle	= OMAP_PIN_INPUT | OMAP_MUX_MODE2,
--	},
--};
--
--static struct omap_device_pad default_omap4_uart4_pads[] __initdata = {
--	{
--		.name	= "uart4_tx.uart4_tx",
--		.enable	= OMAP_PIN_OUTPUT | OMAP_MUX_MODE0,
--	},
--	{
--		.name	= "uart4_rx.uart4_rx",
--		.flags	= OMAP_DEVICE_PAD_REMUX | OMAP_DEVICE_PAD_WAKEUP,
--		.enable	= OMAP_PIN_INPUT | OMAP_MUX_MODE0,
--		.idle	= OMAP_PIN_INPUT | OMAP_MUX_MODE0,
--	},
--};
--
- static void omap_serial_fill_default_pads(struct omap_board_data *bdata)
- {
--	switch (bdata->id) {
--	case 0:
--		bdata->pads = default_uart1_pads;
--		bdata->pads_cnt = ARRAY_SIZE(default_uart1_pads);
--		break;
--	case 1:
--		bdata->pads = default_uart2_pads;
--		bdata->pads_cnt = ARRAY_SIZE(default_uart2_pads);
--		break;
--	case 2:
--		bdata->pads = default_uart3_pads;
--		bdata->pads_cnt = ARRAY_SIZE(default_uart3_pads);
--		break;
--	case 3:
--		if (cpu_is_omap44xx()) {
--			bdata->pads = default_omap4_uart4_pads;
--			bdata->pads_cnt =
--				ARRAY_SIZE(default_omap4_uart4_pads);
--		} else if (cpu_is_omap3630()) {
--			bdata->pads = default_omap36xx_uart4_pads;
--			bdata->pads_cnt =
--				ARRAY_SIZE(default_omap36xx_uart4_pads);
--		}
--		break;
--	default:
--		break;
--	}
- }
- #else
- static void omap_serial_fill_default_pads(struct omap_board_data *bdata) {}
--- 
-1.7.0.4
-
diff --git a/recipes-kernel/linux/linux-3.3.7/beagleboard/defconfig b/recipes-kernel/linux/linux-3.3.7/beagleboard/defconfig
deleted file mode 100644
index f1ea082..0000000
--- a/recipes-kernel/linux/linux-3.3.7/beagleboard/defconfig
+++ /dev/null
@@ -1,3780 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.3.6 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_HAVE_PWM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_SCHED_CLOCK=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_LZO is not set
-CONFIG_DEFAULT_HOSTNAME="beagleboard"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-CONFIG_FHANDLE=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-# CONFIG_SPARSE_IRQ is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=16
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
-# CONFIG_CGROUP_MEM_RES_CTLR_KMEM is not set
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_CFS_BANDWIDTH is not set
-CONFIG_RT_GROUP_SCHED=y
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-# CONFIG_CHECKPOINT_RESTORE is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_MM_OWNER=y
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-# CONFIG_KALLSYMS_ALL is not set
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-# CONFIG_PERF_COUNTERS is not set
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-# CONFIG_COMPAT_BRK is not set
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=y
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-CONFIG_LDM_DEBUG=y
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_PRIMA2 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PICOXCELL is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-CONFIG_ARCH_OMAP=y
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_VT8500 is not set
-# CONFIG_ARCH_ZYNQ is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_KEYBOARD_GPIO_POLLED is not set
-
-#
-# TI OMAP Common Features
-#
-CONFIG_ARCH_OMAP_OTG=y
-# CONFIG_ARCH_OMAP1 is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# OMAP Feature Selections
-#
-CONFIG_OMAP_SMARTREFLEX=y
-CONFIG_OMAP_SMARTREFLEX_CLASS3=y
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_MCBSP=y
-CONFIG_OMAP_MBOX_FWK=m
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-CONFIG_OMAP_32K_TIMER=y
-# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
-CONFIG_OMAP_32K_TIMER_HZ=128
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-# CONFIG_ARCH_OMAP2 is not set
-CONFIG_ARCH_OMAP3=y
-# CONFIG_ARCH_OMAP4 is not set
-CONFIG_SOC_OMAP3430=y
-CONFIG_SOC_OMAPTI81XX=y
-CONFIG_SOC_OMAPAM33XX=y
-CONFIG_OMAP_PACKAGE_CBB=y
-
-#
-# OMAP Board Type
-#
-CONFIG_MACH_OMAP3_BEAGLE=y
-# CONFIG_MACH_DEVKIT8000 is not set
-# CONFIG_MACH_OMAP_LDP is not set
-# CONFIG_MACH_OMAP3530_LV_SOM is not set
-# CONFIG_MACH_OMAP3_TORPEDO is not set
-CONFIG_MACH_OVERO=y
-CONFIG_MACH_OMAP3EVM=y
-# CONFIG_MACH_OMAP3517EVM is not set
-# CONFIG_MACH_CRANEBOARD is not set
-# CONFIG_MACH_OMAP3_PANDORA is not set
-CONFIG_MACH_OMAP3_TOUCHBOOK=y
-# CONFIG_MACH_OMAP_3430SDP is not set
-# CONFIG_MACH_NOKIA_RM680 is not set
-# CONFIG_MACH_NOKIA_RX51 is not set
-CONFIG_MACH_OMAP_ZOOM2=y
-# CONFIG_MACH_OMAP_ZOOM3 is not set
-# CONFIG_MACH_CM_T35 is not set
-# CONFIG_MACH_CM_T3517 is not set
-# CONFIG_MACH_IGEP0020 is not set
-# CONFIG_MACH_IGEP0030 is not set
-# CONFIG_MACH_SBC3530 is not set
-# CONFIG_MACH_OMAP_3630SDP is not set
-CONFIG_MACH_TI8168EVM=y
-CONFIG_MACH_TI8148EVM=y
-# CONFIG_OMAP3_EMU is not set
-# CONFIG_OMAP3_SDRC_AC_TIMING is not set
-
-#
-# System MMU
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-# CONFIG_ARM_LPAE is not set
-# CONFIG_ARCH_PHYS_ADDR_T_64BIT is not set
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-# CONFIG_SWP_EMULATE is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-# CONFIG_CACHE_L2X0 is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_NR_BANKS=8
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_ARM_ERRATA_430973=y
-# CONFIG_ARM_ERRATA_458693 is not set
-# CONFIG_ARM_ERRATA_460075 is not set
-# CONFIG_ARM_ERRATA_720789 is not set
-# CONFIG_ARM_ERRATA_743622 is not set
-# CONFIG_ARM_ERRATA_751472 is not set
-# CONFIG_ARM_ERRATA_754322 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_ARCH_NR_GPIO=0
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=128
-# CONFIG_THUMB2_KERNEL is not set
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-# CONFIG_HIGHMEM is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_LEDS=y
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_ARM_APPENDED_DTB is not set
-CONFIG_CMDLINE=" debug "
-CONFIG_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_CMDLINE_EXTEND is not set
-# CONFIG_CMDLINE_FORCE is not set
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# ARM CPU frequency scaling drivers
-#
-# CONFIG_ARM_EXYNOS4210_CPUFREQ is not set
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_ARCH_BINFMT_ELF_RANDOMIZE_PIE=y
-# CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS is not set
-CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=y
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_PM_SLEEP=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-# CONFIG_PM_ADVANCED_DEBUG is not set
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_CAN_PM_TRACE=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_HAS_OPP=y
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-CONFIG_CPU_PM=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-# CONFIG_UNIX_DIAG is not set
-CONFIG_XFRM=y
-# CONFIG_XFRM_USER is not set
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=y
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-# CONFIG_IP_MULTICAST is not set
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IPGRE=m
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=y
-CONFIG_INET_XFRM_MODE_TUNNEL=y
-CONFIG_INET_XFRM_MODE_BEET=y
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=m
-CONFIG_INET_TCP_DIAG=m
-# CONFIG_INET_UDP_DIAG is not set
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
-# CONFIG_IPV6_PRIVACY is not set
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-# CONFIG_IPV6_SIT_6RD is not set
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-# CONFIG_IPV6_PIMSM_V2 is not set
-# CONFIG_NETWORK_SECMARK is not set
-CONFIG_NETWORK_PHY_TIMESTAMPING=y
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-# CONFIG_NETFILTER_NETLINK_ACCT is not set
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_PROCFS=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-CONFIG_NF_CONNTRACK_TIMESTAMP=y
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-CONFIG_NF_CONNTRACK_SNMP=m
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-# CONFIG_NETFILTER_TPROXY is not set
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-CONFIG_NETFILTER_XT_SET=m
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-# CONFIG_NETFILTER_XT_TARGET_DSCP is not set
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-# CONFIG_NETFILTER_XT_TARGET_LED is not set
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-# CONFIG_NETFILTER_XT_TARGET_NOTRACK is not set
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-# CONFIG_NETFILTER_XT_TARGET_TRACE is not set
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-# CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP is not set
-
-#
-# Xtables matches
-#
-CONFIG_NETFILTER_XT_MATCH_ADDRTYPE=m
-# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-CONFIG_NETFILTER_XT_MATCH_DEVGROUP=m
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ECN=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-# CONFIG_NETFILTER_XT_MATCH_NFACCT is not set
-# CONFIG_NETFILTER_XT_MATCH_OSF is not set
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-CONFIG_IP_SET=m
-CONFIG_IP_SET_MAX=256
-# CONFIG_IP_SET_BITMAP_IP is not set
-# CONFIG_IP_SET_BITMAP_IPMAC is not set
-# CONFIG_IP_SET_BITMAP_PORT is not set
-# CONFIG_IP_SET_HASH_IP is not set
-# CONFIG_IP_SET_HASH_IPPORT is not set
-# CONFIG_IP_SET_HASH_IPPORTIP is not set
-# CONFIG_IP_SET_HASH_IPPORTNET is not set
-# CONFIG_IP_SET_HASH_NET is not set
-# CONFIG_IP_SET_HASH_NETPORT is not set
-# CONFIG_IP_SET_HASH_NETIFACE is not set
-# CONFIG_IP_SET_LIST_SET is not set
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-CONFIG_IP_VS_DEBUG=y
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-# CONFIG_IP_VS_PROTO_SCTP is not set
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS SH scheduler
-#
-CONFIG_IP_VS_SH_TAB_BITS=8
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-CONFIG_IP_NF_MATCH_ECN=m
-# CONFIG_IP_NF_MATCH_RPFILTER is not set
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_NF_NAT_SNMP_BASIC=m
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-CONFIG_IP_NF_TARGET_ECN=m
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-# CONFIG_IP6_NF_MATCH_RPFILTER is not set
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-CONFIG_IP_SCTP=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-# CONFIG_RDS is not set
-CONFIG_TIPC=m
-# CONFIG_TIPC_ADVANCED is not set
-# CONFIG_TIPC_DEBUG is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-# CONFIG_ATM_BR2684_IPFILTER is not set
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-CONFIG_WAN_ROUTER=m
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-# CONFIG_NET_SCH_SFB is not set
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-CONFIG_NET_SCH_MQPRIO=m
-CONFIG_NET_SCH_CHOKE=m
-# CONFIG_NET_SCH_QFQ is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-CONFIG_NET_CLS_U32=m
-CONFIG_CLS_U32_PERF=y
-CONFIG_CLS_U32_MARK=y
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-CONFIG_NET_CLS_FLOW=m
-CONFIG_NET_CLS_CGROUP=m
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_CLS_ACT is not set
-CONFIG_NET_CLS_IND=y
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-# CONFIG_BATMAN_ADV is not set
-# CONFIG_OPENVSWITCH is not set
-# CONFIG_NETPRIO_CGROUP is not set
-CONFIG_BQL=y
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-# CONFIG_CAN_GW is not set
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_SLCAN=m
-# CONFIG_CAN_DEV is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-CONFIG_DONGLE=y
-CONFIG_ESI_DONGLE=m
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-# CONFIG_ACT200L_DONGLE is not set
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIBTUSB=y
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=y
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-CONFIG_BT_MRVL=m
-# CONFIG_BT_MRVL_SDIO is not set
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-# CONFIG_RXKAD is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-CONFIG_NL80211_TESTMODE=y
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=y
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_PID=y
-# CONFIG_MAC80211_RC_MINSTREL is not set
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-CONFIG_MAC80211_RC_DEFAULT="pid"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=y
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_REGULATOR is not set
-# CONFIG_RFKILL_GPIO is not set
-CONFIG_NET_9P=m
-# CONFIG_NET_9P_DEBUG is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-# CONFIG_NFC is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-# CONFIG_GENERIC_CPU_DEVICES is not set
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-# CONFIG_DMA_SHARED_BUFFER is not set
-# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-# CONFIG_MTD_CMDLINE_PARTS is not set
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_OF_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-CONFIG_SM_FTL=m
-# CONFIG_MTD_OOPS is not set
-CONFIG_MTD_SWAP=m
-
-#
-# RAM/ROM/Flash chip drivers
-#
-# CONFIG_MTD_CFI is not set
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-# CONFIG_MTD_M25P80 is not set
-# CONFIG_MTD_SST25L is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-# CONFIG_MTD_DOCG3 is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_BCH is not set
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_OMAP2=y
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
-# CONFIG_MTD_ALAUDA is not set
-# CONFIG_MTD_ONENAND is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-# CONFIG_MTD_UBI_GLUEBI is not set
-# CONFIG_MTD_UBI_DEBUG is not set
-CONFIG_DTC=y
-CONFIG_OF=y
-
-#
-# Device Tree and Open Firmware support
-#
-# CONFIG_PROC_DEVICETREE is not set
-# CONFIG_OF_SELFTEST is not set
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_DEVICE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_I2C=y
-CONFIG_OF_NET=y
-CONFIG_OF_SPI=y
-CONFIG_OF_MDIO=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-
-#
-# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
-#
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_MG_DISK is not set
-# CONFIG_BLK_DEV_RBD is not set
-
-#
-# Misc devices
-#
-# CONFIG_SENSORS_LIS3LV02D is not set
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_ATMEL_PWM is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-# CONFIG_SENSORS_TSL2550 is not set
-CONFIG_SENSORS_BH1780=m
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-CONFIG_HMC6352=m
-# CONFIG_DS1682 is not set
-# CONFIG_TI_DAC7512 is not set
-CONFIG_BMP085=m
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-CONFIG_EEPROM_93CX6=y
-# CONFIG_EEPROM_93XX46 is not set
-CONFIG_IWMC3200TOP=m
-# CONFIG_IWMC3200TOP_DEBUG is not set
-# CONFIG_IWMC3200TOP_DEBUGFS is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-
-#
-# Altera FPGA firmware download module
-#
-# CONFIG_ALTERA_STAPL is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-# CONFIG_SCSI_SCAN_ASYNC is not set
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-CONFIG_SCSI_ISCSI_ATTRS=m
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-CONFIG_ISCSI_BOOT_SYSFS=m
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-# CONFIG_DM_THIN_PROVISIONING is not set
-CONFIG_DM_MIRROR=m
-CONFIG_DM_RAID=m
-# CONFIG_DM_LOG_USERSPACE is not set
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-# CONFIG_DM_MULTIPATH_QL is not set
-# CONFIG_DM_MULTIPATH_ST is not set
-CONFIG_DM_DELAY=m
-# CONFIG_DM_UEVENT is not set
-CONFIG_DM_FLAKEY=m
-CONFIG_TARGET_CORE=m
-CONFIG_TCM_IBLOCK=m
-CONFIG_TCM_FILEIO=m
-CONFIG_TCM_PSCSI=m
-CONFIG_LOOPBACK_TARGET=m
-# CONFIG_ISCSI_TARGET is not set
-CONFIG_NETDEVICES=y
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_MII=y
-# CONFIG_NET_TEAM is not set
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETCONSOLE_DYNAMIC=y
-CONFIG_NETPOLL=y
-CONFIG_NETPOLL_TRAP=y
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-CONFIG_VETH=m
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-# CONFIG_ATM_TCP is not set
-
-#
-# CAIF transport drivers
-#
-CONFIG_ETHERNET=y
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-# CONFIG_NET_CALXEDA_XGMAC is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8851=y
-# CONFIG_KS8851_MLL is not set
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=y
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_SEEQ=y
-# CONFIG_SEEQ8005 is not set
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=y
-CONFIG_SMC911X=y
-CONFIG_SMSC911X=y
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_DAVINCI_EMAC is not set
-CONFIG_TI_DAVINCI_MDIO=m
-CONFIG_TI_DAVINCI_CPDMA=m
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-# CONFIG_SMSC_PHY is not set
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-CONFIG_MICREL_PHY=m
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_MICREL_KS8995MA is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-# CONFIG_PPPOATM is not set
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPPOL2TP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-# CONFIG_SLIP is not set
-CONFIG_SLHC=m
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=y
-CONFIG_USB_KAWETH=y
-CONFIG_USB_PEGASUS=y
-CONFIG_USB_RTL8150=y
-CONFIG_USB_USBNET=y
-CONFIG_USB_NET_AX8817X=y
-CONFIG_USB_NET_CDCETHER=y
-# CONFIG_USB_NET_CDC_EEM is not set
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=y
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=y
-CONFIG_USB_NET_GL620A=y
-CONFIG_USB_NET_NET1080=y
-CONFIG_USB_NET_PLUSB=y
-CONFIG_USB_NET_MCS7830=y
-CONFIG_USB_NET_RNDIS_HOST=y
-CONFIG_USB_NET_CDC_SUBSET=y
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=y
-CONFIG_USB_NET_CX82310_ETH=m
-# CONFIG_USB_NET_KALMIA is not set
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_WLAN=y
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-# CONFIG_MAC80211_HWSIM is not set
-CONFIG_ATH_COMMON=m
-# CONFIG_ATH_DEBUG is not set
-# CONFIG_ATH9K is not set
-# CONFIG_ATH9K_HTC is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-# CONFIG_ATH6KL is not set
-CONFIG_B43=m
-CONFIG_B43_SSB=y
-CONFIG_B43_SDIO=y
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-# CONFIG_B43_PHY_HT is not set
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-# CONFIG_B43LEGACY is not set
-# CONFIG_BRCMFMAC is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-CONFIG_HOSTAP_FIRMWARE_NVRAM=y
-# CONFIG_IWM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
-# CONFIG_LIBERTAS_DEBUG is not set
-# CONFIG_LIBERTAS_MESH is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-# CONFIG_P54_SPI is not set
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTL8192C_COMMON=m
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX_MENU=m
-CONFIG_WL12XX=m
-CONFIG_WL12XX_SPI=m
-CONFIG_WL12XX_SDIO=m
-CONFIG_WL12XX_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-# CONFIG_MWIFIEX is not set
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_SDIO=m
-CONFIG_WIMAX_IWMC3200_SDIO=y
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# CONFIG_WAN is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_SPARSEKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-# CONFIG_KEYBOARD_ATKBD is not set
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_TCA8418 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-CONFIG_KEYBOARD_MCS=m
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_SAMSUNG is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_TWL4030 is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
-# CONFIG_TOUCHSCREEN_AD7877 is not set
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
-# CONFIG_TOUCHSCREEN_AUO_PIXCIR is not set
-# CONFIG_TOUCHSCREEN_BU21013 is not set
-# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
-# CONFIG_TOUCHSCREEN_DYNAPRO is not set
-# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
-# CONFIG_TOUCHSCREEN_EETI is not set
-# CONFIG_TOUCHSCREEN_EGALAX is not set
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-# CONFIG_TOUCHSCREEN_PIXCIR is not set
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-CONFIG_TOUCHSCREEN_TSC2007=y
-# CONFIG_TOUCHSCREEN_W90X900 is not set
-# CONFIG_TOUCHSCREEN_ST1232 is not set
-# CONFIG_TOUCHSCREEN_TPS6507X is not set
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-# CONFIG_INPUT_BMA150 is not set
-# CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_MPU3050 is not set
-# CONFIG_INPUT_GP2A is not set
-# CONFIG_INPUT_GPIO_TILT_POLLED is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_KXTJ9 is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
-CONFIG_INPUT_TWL4030_PWRBUTTON=y
-CONFIG_INPUT_TWL4030_VIBRA=m
-# CONFIG_INPUT_TWL6040_VIBRA is not set
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_PWM_BEEPER=m
-# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-CONFIG_N_GSM=m
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-# CONFIG_SERIAL_8250_DW is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX3107 is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_OF_PLATFORM is not set
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-CONFIG_SERIAL_IFX6X60=m
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-CONFIG_TTY_PRINTK=y
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-CONFIG_I2C_MUX=m
-
-#
-# Multiplexer I2C Chip support
-#
-CONFIG_I2C_MUX_GPIO=m
-# CONFIG_I2C_MUX_PCA9541 is not set
-# CONFIG_I2C_MUX_PCA954x is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_OMAP=y
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=y
-# CONFIG_SPI_TLE62X0 is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-# CONFIG_DEBUG_GPIO is not set
-CONFIG_GPIO_SYSFS=y
-CONFIG_GPIO_MAX730X=m
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-
-#
-# I2C GPIO expanders:
-#
-CONFIG_GPIO_MAX7300=m
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
-CONFIG_GPIO_TWL4030=y
-CONFIG_GPIO_ADP5588=m
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_74X164 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-# CONFIG_W1 is not set
-CONFIG_POWER_SUPPLY=m
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_TEST_POWER=m
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_SBS is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-CONFIG_BATTERY_MAX17042=m
-CONFIG_CHARGER_ISP1704=m
-# CONFIG_CHARGER_MAX8903 is not set
-CONFIG_CHARGER_TWL4030=m
-# CONFIG_CHARGER_LP8727 is not set
-CONFIG_CHARGER_GPIO=m
-# CONFIG_CHARGER_MANAGER is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-CONFIG_SENSORS_ADT7411=m
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-CONFIG_SENSORS_ASC7621=m
-# CONFIG_SENSORS_ATXP1 is not set
-CONFIG_SENSORS_DS620=m
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-CONFIG_SENSORS_GPIO_FAN=m
-# CONFIG_SENSORS_IT87 is not set
-CONFIG_SENSORS_JC42=m
-# CONFIG_SENSORS_LINEAGE is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM73 is not set
-# CONFIG_SENSORS_LM75 is not set
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LTC4151 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_LM95245 is not set
-# CONFIG_SENSORS_MAX1111 is not set
-# CONFIG_SENSORS_MAX16065 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX1668 is not set
-# CONFIG_SENSORS_MAX6639 is not set
-# CONFIG_SENSORS_MAX6642 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_NTC_THERMISTOR is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_SHT15 is not set
-# CONFIG_SENSORS_SHT21 is not set
-CONFIG_SENSORS_SMM665=m
-# CONFIG_SENSORS_DME1737 is not set
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-# CONFIG_SENSORS_EMC6W201 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SCH56XX_COMMON is not set
-# CONFIG_SENSORS_SCH5627 is not set
-# CONFIG_SENSORS_SCH5636 is not set
-# CONFIG_SENSORS_ADS1015 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-# CONFIG_SENSORS_THMC50 is not set
-CONFIG_SENSORS_TMP102=m
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-CONFIG_SENSORS_TWL4030_MADC=m
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-CONFIG_THERMAL=y
-CONFIG_THERMAL_HWMON=y
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_CORE is not set
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-# CONFIG_TWL4030_WATCHDOG is not set
-# CONFIG_MAX63XX_WATCHDOG is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-CONFIG_SSB_SDIOHOST=y
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-CONFIG_TPS6105X=m
-# CONFIG_TPS65010 is not set
-CONFIG_TPS6507X=m
-CONFIG_MFD_TPS6586X=y
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_MADC=m
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-CONFIG_TWL6030_PWM=m
-# CONFIG_TWL6040_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_MFD_DA9052_SPI is not set
-# CONFIG_MFD_DA9052_I2C is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_S5M_CORE is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_EZX_PCAP is not set
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_OMAP_USB_HOST=y
-# CONFIG_MFD_AAT2870_CORE is not set
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_DUMMY=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_GPIO is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-CONFIG_REGULATOR_TWL4030=y
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-CONFIG_REGULATOR_TPS6105X=m
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_AD5398 is not set
-CONFIG_REGULATOR_TPS6586X=m
-CONFIG_REGULATOR_TPS6524X=m
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_COMMON=y
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_RC_CORE=m
-CONFIG_LIRC=m
-CONFIG_RC_MAP=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_RC5_SZ_DECODER=m
-CONFIG_IR_SANYO_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_LIRC_CODEC=m
-# CONFIG_RC_ATI_REMOTE is not set
-# CONFIG_IR_IMON is not set
-# CONFIG_IR_MCEUSB is not set
-# CONFIG_IR_REDRAT3 is not set
-# CONFIG_IR_STREAMZAP is not set
-CONFIG_RC_LOOPBACK=m
-CONFIG_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_CUSTOMISE=y
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2063=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Encoders, decoders, sensors and other helper chips
-#
-
-#
-# Audio decoders, processors and mixers
-#
-# CONFIG_VIDEO_TVAUDIO is not set
-# CONFIG_VIDEO_TDA7432 is not set
-# CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TEA6415C is not set
-# CONFIG_VIDEO_TEA6420 is not set
-CONFIG_VIDEO_MSP3400=m
-# CONFIG_VIDEO_CS5345 is not set
-CONFIG_VIDEO_CS53L32A=m
-# CONFIG_VIDEO_TLV320AIC23B is not set
-CONFIG_VIDEO_WM8775=m
-# CONFIG_VIDEO_WM8739 is not set
-# CONFIG_VIDEO_VP27SMPX is not set
-
-#
-# RDS decoders
-#
-# CONFIG_VIDEO_SAA6588 is not set
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-# CONFIG_VIDEO_BT819 is not set
-# CONFIG_VIDEO_BT856 is not set
-# CONFIG_VIDEO_BT866 is not set
-# CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_SAA7110 is not set
-CONFIG_VIDEO_SAA711X=m
-# CONFIG_VIDEO_SAA7191 is not set
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TVP7002=m
-# CONFIG_VIDEO_VPX3220 is not set
-
-#
-# Video and audio decoders
-#
-# CONFIG_VIDEO_SAA717X is not set
-CONFIG_VIDEO_CX25840=m
-
-#
-# MPEG video encoders
-#
-CONFIG_VIDEO_CX2341X=m
-
-#
-# Video encoders
-#
-# CONFIG_VIDEO_SAA7127 is not set
-# CONFIG_VIDEO_SAA7185 is not set
-# CONFIG_VIDEO_ADV7170 is not set
-# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_ADV7343 is not set
-# CONFIG_VIDEO_AK881X is not set
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV7670=m
-# CONFIG_VIDEO_MT9P031 is not set
-# CONFIG_VIDEO_MT9T001 is not set
-CONFIG_VIDEO_MT9V011=m
-CONFIG_VIDEO_MT9V032=y
-# CONFIG_VIDEO_TCM825X is not set
-CONFIG_VIDEO_SR030PC30=m
-CONFIG_VIDEO_NOON010PC30=m
-# CONFIG_VIDEO_M5MOLS is not set
-# CONFIG_VIDEO_S5K6AA is not set
-
-#
-# Flash devices
-#
-# CONFIG_VIDEO_ADP1653 is not set
-# CONFIG_VIDEO_AS3645A is not set
-
-#
-# Video improvement chips
-#
-# CONFIG_VIDEO_UPD64031A is not set
-# CONFIG_VIDEO_UPD64083 is not set
-
-#
-# Miscelaneous helper chips
-#
-# CONFIG_VIDEO_THS7303 is not set
-# CONFIG_VIDEO_M52790 is not set
-CONFIG_VIDEO_VIVI=m
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-# CONFIG_USB_GL860 is not set
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-# CONFIG_USB_GSPCA_JEILINJ is not set
-# CONFIG_USB_GSPCA_JL2005BCD is not set
-# CONFIG_USB_GSPCA_KINECT is not set
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-# CONFIG_USB_GSPCA_MR97310A is not set
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-# CONFIG_USB_GSPCA_PAC7302 is not set
-CONFIG_USB_GSPCA_PAC7311=m
-# CONFIG_USB_GSPCA_SE401 is not set
-CONFIG_USB_GSPCA_SN9C2028=m
-# CONFIG_USB_GSPCA_SN9C20X is not set
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-# CONFIG_USB_GSPCA_SQ905 is not set
-# CONFIG_USB_GSPCA_SQ905C is not set
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-# CONFIG_USB_GSPCA_STV0680 is not set
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-# CONFIG_USB_GSPCA_TOPRO is not set
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=y
-CONFIG_VIDEO_TLG2300=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-# CONFIG_VIDEO_CX231XX_ALSA is not set
-CONFIG_VIDEO_CX231XX_DVB=m
-# CONFIG_VIDEO_TM6000 is not set
-CONFIG_VIDEO_USBVISION=m
-CONFIG_USB_ET61X251=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-# CONFIG_VIDEO_CPIA2 is not set
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-# CONFIG_V4L_PLATFORM_DRIVERS is not set
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_TESTDEV=m
-CONFIG_RADIO_ADAPTERS=y
-# CONFIG_RADIO_SI470X is not set
-# CONFIG_USB_MR800 is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_I2C_SI4713 is not set
-# CONFIG_RADIO_SI4713 is not set
-# CONFIG_RADIO_TEA5764 is not set
-CONFIG_RADIO_SAA7706H=m
-# CONFIG_RADIO_TEF6862 is not set
-CONFIG_RADIO_WL1273=m
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
-CONFIG_RADIO_WL128X=m
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-CONFIG_DVB_CAPTURE_DRIVERS=y
-# CONFIG_TTPCI_EEPROM is not set
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-# CONFIG_DVB_USB_PCTV452E is not set
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AF9015=m
-# CONFIG_DVB_USB_CE6230 is not set
-# CONFIG_DVB_USB_FRIIO is not set
-# CONFIG_DVB_USB_EC168 is not set
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-# CONFIG_DVB_USB_IT913X is not set
-# CONFIG_DVB_USB_MXL111SF is not set
-# CONFIG_SMS_SIANO_MDTV is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-
-#
-# Supported DVB Frontends
-#
-# CONFIG_DVB_FE_CUSTOMISE is not set
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV6110x=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_CXD2820R=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_IX2505V=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_DRM=m
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-# CONFIG_FB_WMT_GE_ROPS is not set
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-CONFIG_FB_MODE_HELPERS=y
-# CONFIG_FB_TILEBLITTING is not set
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_TMIO is not set
-# CONFIG_FB_SMSCUFX is not set
-CONFIG_FB_UDL=m
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
-CONFIG_OMAP2_VRAM=y
-CONFIG_OMAP2_VRFB=y
-CONFIG_OMAP2_DSS=y
-CONFIG_OMAP2_VRAM_SIZE=14
-CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
-# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
-CONFIG_OMAP2_DSS_DPI=y
-# CONFIG_OMAP2_DSS_RFBI is not set
-CONFIG_OMAP2_DSS_VENC=y
-# CONFIG_OMAP2_DSS_SDI is not set
-CONFIG_OMAP2_DSS_DSI=y
-# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
-CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
-CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
-CONFIG_FB_OMAP2=y
-CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
-CONFIG_FB_OMAP2_NUM_FBS=2
-
-#
-# OMAP2/3 Display Device Drivers
-#
-CONFIG_PANEL_GENERIC_DPI=y
-CONFIG_PANEL_DVI=y
-# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set
-CONFIG_PANEL_SHARP_LS037V7DW01=y
-CONFIG_PANEL_NEC_NL8048HL11_01B=y
-# CONFIG_PANEL_PICODLP is not set
-# CONFIG_PANEL_TAAL is not set
-CONFIG_PANEL_TPO_TD043MTEA1=m
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-# CONFIG_LCD_L4F00242T03 is not set
-# CONFIG_LCD_LMS283GF05 is not set
-# CONFIG_LCD_LTV350QV is not set
-# CONFIG_LCD_TDO24M is not set
-# CONFIG_LCD_VGG2432A4 is not set
-# CONFIG_LCD_PLATFORM is not set
-# CONFIG_LCD_S6E63M0 is not set
-# CONFIG_LCD_LD9040 is not set
-# CONFIG_LCD_AMS369FG06 is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=y
-# CONFIG_BACKLIGHT_PWM is not set
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_SOUND=y
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_HWDEP=y
-CONFIG_SND_RAWMIDI=y
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-# CONFIG_SND_SEQ_DUMMY is not set
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=y
-CONFIG_SND_PCM_OSS=y
-CONFIG_SND_PCM_OSS_PLUGINS=y
-CONFIG_SND_SEQUENCER_OSS=y
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_RAWMIDI_SEQ=m
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-CONFIG_SND_ALOOP=m
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_ARM is not set
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=y
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_SOC=y
-CONFIG_SND_OMAP_SOC=y
-CONFIG_SND_OMAP_SOC_MCBSP=y
-CONFIG_SND_OMAP_SOC_OVERO=y
-CONFIG_SND_OMAP_SOC_OMAP3EVM=y
-CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=y
-CONFIG_SND_OMAP_SOC_ZOOM2=y
-CONFIG_SND_SOC_I2C_AND_SPI=y
-# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TWL4030=y
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=y
-CONFIG_HID_ACRUX=m
-# CONFIG_HID_ACRUX_FF is not set
-CONFIG_HID_APPLE=y
-CONFIG_HID_BELKIN=y
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
-# CONFIG_HID_PRODIKEYS is not set
-CONFIG_HID_CYPRESS=y
-# CONFIG_HID_DRAGONRISE is not set
-CONFIG_HID_EMS_FF=m
-# CONFIG_HID_ELECOM is not set
-CONFIG_HID_EZKEY=y
-# CONFIG_HID_HOLTEK is not set
-CONFIG_HID_KEYTOUCH=m
-# CONFIG_HID_KYE is not set
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_GYRATION=y
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_LOGITECH_DJ=m
-# CONFIG_LOGITECH_FF is not set
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-# CONFIG_LOGIG940_FF is not set
-# CONFIG_LOGIWHEELS_FF is not set
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTRIG=y
-# CONFIG_HID_ORTEK is not set
-CONFIG_HID_PANTHERLORD=y
-# CONFIG_PANTHERLORD_FF is not set
-CONFIG_HID_PETALYNX=y
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-# CONFIG_HID_PICOLCD_LCD is not set
-CONFIG_HID_PICOLCD_LEDS=y
-# CONFIG_HID_PRIMAX is not set
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_ROCCAT_COMMON=m
-CONFIG_HID_ROCCAT_ARVO=m
-# CONFIG_HID_ROCCAT_ISKU is not set
-CONFIG_HID_ROCCAT_KONE=m
-CONFIG_HID_ROCCAT_KONEPLUS=m
-CONFIG_HID_ROCCAT_KOVAPLUS=m
-# CONFIG_HID_ROCCAT_PYRA is not set
-CONFIG_HID_SAMSUNG=y
-CONFIG_HID_SONY=y
-# CONFIG_HID_SPEEDLINK is not set
-CONFIG_HID_SUNPLUS=y
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-CONFIG_HID_TOPSEED=y
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_WIIMOTE is not set
-# CONFIG_HID_ZEROPLUS is not set
-# CONFIG_HID_ZYDACRON is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-# CONFIG_USB_ARCH_HAS_XHCI is not set
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_DWC3 is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_HCD_OMAP=y
-# CONFIG_USB_EHCI_MV is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_U132_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-CONFIG_USB_MUSB_HDRC=y
-# CONFIG_USB_MUSB_TUSB6010 is not set
-CONFIG_USB_MUSB_OMAP2PLUS=y
-# CONFIG_USB_MUSB_AM35X is not set
-CONFIG_USB_INVENTRA_DMA=y
-# CONFIG_MUSB_PIO_ONLY is not set
-# CONFIG_USB_RENESAS_USBHS is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_EZUSB=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-# CONFIG_USB_SERIAL_CP210X is not set
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MOTOROLA=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-# CONFIG_USB_SERIAL_QUALCOMM is not set
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIEMENS_MPI=m
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-# CONFIG_USB_SERIAL_SYMBOL is not set
-# CONFIG_USB_SERIAL_TI is not set
-CONFIG_USB_SERIAL_CYBERJACK=m
-# CONFIG_USB_SERIAL_XIRCOM is not set
-CONFIG_USB_SERIAL_WWAN=m
-# CONFIG_USB_SERIAL_OPTION is not set
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
-CONFIG_USB_SERIAL_ZIO=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_RIO500 is not set
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-# CONFIG_USB_APPLEDISPLAY is not set
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
-# CONFIG_USB_ISIGHTFW is not set
-CONFIG_USB_YUREX=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-CONFIG_USB_GADGET_DEBUG_FS=y
-CONFIG_USB_GADGET_VBUS_DRAW=480
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_OMAP is not set
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_MV_UDC is not set
-CONFIG_USB_GADGET_MUSB_HDRC=y
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-# CONFIG_USB_GADGETFS is not set
-CONFIG_USB_FUNCTIONFS=m
-# CONFIG_USB_FUNCTIONFS_ETH is not set
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-# CONFIG_USB_FUNCTIONFS_GENERIC is not set
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-CONFIG_USB_MASS_STORAGE=m
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_MIDI_GADGET is not set
-# CONFIG_USB_G_PRINTER is not set
-CONFIG_USB_CDC_COMPOSITE=m
-# CONFIG_USB_G_ACM_MS is not set
-# CONFIG_USB_G_MULTI is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-# CONFIG_USB_G_DBGP_PRINTK is not set
-CONFIG_USB_G_DBGP_SERIAL=y
-CONFIG_USB_G_WEBCAM=m
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-CONFIG_USB_GPIO_VBUS=y
-# CONFIG_ISP1301_OMAP is not set
-# CONFIG_USB_ULPI is not set
-CONFIG_TWL4030_USB=y
-CONFIG_TWL6030_USB=y
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=y
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-# CONFIG_MMC_SDHCI_PXAV2 is not set
-# CONFIG_MMC_OMAP is not set
-CONFIG_MMC_OMAP_HS=y
-CONFIG_MMC_SPI=m
-# CONFIG_MMC_DW is not set
-# CONFIG_MMC_VUB300 is not set
-CONFIG_MMC_USHC=m
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_LP3944 is not set
-CONFIG_LEDS_LP5521=m
-CONFIG_LEDS_LP5523=m
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_DAC124S085 is not set
-CONFIG_LEDS_PWM=m
-CONFIG_LEDS_REGULATOR=m
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_LT3593 is not set
-# CONFIG_LEDS_RENESAS_TPU is not set
-# CONFIG_LEDS_TCA6507 is not set
-# CONFIG_LEDS_OT200 is not set
-CONFIG_LEDS_TRIGGERS=y
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-CONFIG_LEDS_TRIGGER_GPIO=m
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=y
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=m
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T93 is not set
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV=m
-CONFIG_UIO_PDRV_GENIRQ=m
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_BALLOON is not set
-# CONFIG_VIRTIO_MMIO is not set
-
-#
-# Microsoft Hyper-V guest support
-#
-CONFIG_STAGING=y
-# CONFIG_USBIP_CORE is not set
-CONFIG_W35UND=m
-CONFIG_PRISM2_USB=m
-CONFIG_ECHO=m
-# CONFIG_ASUS_OLED is not set
-# CONFIG_RTLLIB is not set
-CONFIG_R8712U=m
-# CONFIG_RTS5139 is not set
-# CONFIG_TRANZPORT is not set
-# CONFIG_LINE6_USB is not set
-# CONFIG_USB_SERIAL_QUATECH2 is not set
-# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
-# CONFIG_VT6656 is not set
-# CONFIG_IIO is not set
-CONFIG_XVMALLOC=y
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_DEBUG is not set
-# CONFIG_FB_SM7XX is not set
-# CONFIG_TIDSPBRIDGE is not set
-CONFIG_USB_ENESTORAGE=m
-CONFIG_BCM_WIMAX=m
-CONFIG_FT1000=m
-CONFIG_FT1000_USB=m
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-CONFIG_TOUCHSCREEN_CLEARPAD_TM1217=m
-CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
-# CONFIG_STAGING_MEDIA is not set
-# CONFIG_DRM_OMAP is not set
-
-#
-# Android
-#
-# CONFIG_ANDROID is not set
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_CLKSRC_MMIO=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-CONFIG_OMAP_IOMMU=y
-# CONFIG_OMAP_IOVMM is not set
-# CONFIG_VIRT_DRIVERS is not set
-# CONFIG_PM_DEVFREQ is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-# CONFIG_EXT3_DEFAULTS_TO_ORDERED is not set
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-# CONFIG_EXT3_FS_SECURITY is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-CONFIG_REISERFS_PROC_INFO=y
-CONFIG_REISERFS_FS_XATTR=y
-# CONFIG_REISERFS_FS_POSIX_ACL is not set
-# CONFIG_REISERFS_FS_SECURITY is not set
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-# CONFIG_JFS_SECURITY is not set
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=m
-CONFIG_BTRFS_FS_POSIX_ACL=y
-# CONFIG_BTRFS_FS_CHECK_INTEGRITY is not set
-CONFIG_NILFS2_FS=m
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_QUOTA=y
-# CONFIG_QUOTA_NETLINK_INTERFACE is not set
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=y
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_GENERIC_ACL=y
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-CONFIG_CACHEFILES_HISTOGRAM=y
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-# CONFIG_NTFS_RW is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_CONFIGFS_FS=m
-CONFIG_MISC_FILESYSTEMS=y
-CONFIG_ADFS_FS=m
-# CONFIG_ADFS_FS_RW is not set
-CONFIG_AFFS_FS=m
-# CONFIG_ECRYPT_FS is not set
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=y
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-CONFIG_JFFS2_SUMMARY=y
-CONFIG_JFFS2_FS_XATTR=y
-CONFIG_JFFS2_FS_POSIX_ACL=y
-CONFIG_JFFS2_FS_SECURITY=y
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-CONFIG_JFFS2_RUBIN=y
-# CONFIG_JFFS2_CMODE_NONE is not set
-# CONFIG_JFFS2_CMODE_PRIORITY is not set
-# CONFIG_JFFS2_CMODE_SIZE is not set
-CONFIG_JFFS2_CMODE_FAVOURLZO=y
-CONFIG_UBIFS_FS=y
-CONFIG_UBIFS_FS_XATTR=y
-CONFIG_UBIFS_FS_ADVANCED_COMPR=y
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_FS_DEBUG is not set
-CONFIG_LOGFS=m
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=y
-# CONFIG_SQUASHFS_XATTR is not set
-CONFIG_SQUASHFS_ZLIB=y
-CONFIG_SQUASHFS_LZO=y
-CONFIG_SQUASHFS_XZ=y
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-CONFIG_HPFS_FS=m
-CONFIG_QNX4FS_FS=m
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-CONFIG_PSTORE=y
-CONFIG_SYSV_FS=m
-CONFIG_UFS_FS=m
-# CONFIG_UFS_FS_WRITE is not set
-# CONFIG_UFS_DEBUG is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_PNFS_FILE_LAYOUT=y
-CONFIG_PNFS_BLOCK=m
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-# CONFIG_NFSD_FAULT_INJECTION is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_CEPH_FS=m
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-CONFIG_CIFS_STATS2=y
-# CONFIG_CIFS_WEAK_PW_HASH is not set
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-CONFIG_CIFS_FSCACHE=y
-CONFIG_CIFS_ACL=y
-CONFIG_NCP_FS=m
-# CONFIG_NCPFS_PACKET_SIGNING is not set
-# CONFIG_NCPFS_IOCTL_LOCKING is not set
-# CONFIG_NCPFS_STRONG is not set
-# CONFIG_NCPFS_NFS_NS is not set
-# CONFIG_NCPFS_OS2_NS is not set
-# CONFIG_NCPFS_SMALLDOS is not set
-# CONFIG_NCPFS_NLS is not set
-# CONFIG_NCPFS_EXTRAS is not set
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-# CONFIG_AFS_FSCACHE is not set
-CONFIG_9P_FS=m
-CONFIG_9P_FSCACHE=y
-CONFIG_9P_FS_POSIX_ACL=y
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=y
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-
-#
-# Kernel hacking
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-CONFIG_DEBUG_MUTEXES=y
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_LKDTM is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_RING_BUFFER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-# CONFIG_DEBUG_LL is not set
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_ENCRYPTED_KEYS is not set
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-# CONFIG_SECURITY is not set
-# CONFIG_SECURITYFS is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_SEQIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-CONFIG_CRYPTO_XCBC=m
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=y
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=y
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-# CONFIG_CRYPTO_ZLIB is not set
-CONFIG_CRYPTO_LZO=y
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_OMAP_SHAM=m
-CONFIG_CRYPTO_DEV_OMAP_AES=m
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_BITREVERSE=y
-CONFIG_GENERIC_PCI_IOMAP=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-# CONFIG_CRC8 is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-CONFIG_XZ_DEC_TEST=m
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_DQL=y
-CONFIG_NLATTR=y
-CONFIG_AVERAGE=y
-# CONFIG_CORDIC is not set
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-AM33xx-hwmod-Convert-SHA0-crypto-device-data-to-.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-AM33xx-hwmod-Convert-SHA0-crypto-device-data-to-.patch
deleted file mode 100644
index 3fe831c..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-AM33xx-hwmod-Convert-SHA0-crypto-device-data-to-.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 9193aa814bde2b56aaae1949d42d8849cb60260e Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Tue, 11 Dec 2012 09:20:16 -0700
-Subject: [PATCH 01/10] ARM: AM33xx: hwmod: Convert SHA0 crypto device data to
- hwmod
-
-Convert the device data for the AM33xx SHA0 crypto modules
-from explicit platform_data to hwmod.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- arch/arm/mach-omap2/devices.c              | 68 +++---------------------------
- arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 32 ++++++++++++++
- 2 files changed, 39 insertions(+), 61 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index c2e1d84..3679369 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -726,72 +726,18 @@ static void omap_init_sham(void)
- }
- 
- #elif defined(CONFIG_CRYPTO_DEV_OMAP4_SHAM) || defined(CONFIG_CRYPTO_DEV_OMAP4_SHAM_MODULE)
--
--static struct resource omap4_sham_resources[] = {
--	{
--		.start	= AM33XX_SHA1MD5_P_BASE,
--		.end	= AM33XX_SHA1MD5_P_BASE + 0x120,
--		.flags	= IORESOURCE_MEM,
--	},
--	{
--		.start	= AM33XX_IRQ_SHAEIP57t0_P,
--		.flags	= IORESOURCE_IRQ,
--	},
--	{
--		.start	= AM33XX_DMA_SHAEIP57T0_DIN,
--		.flags	= IORESOURCE_DMA,
--	}
--};
--
--static int omap4_sham_resources_sz = ARRAY_SIZE(omap4_sham_resources);
--
--
--static struct platform_device sham_device = {
--	.name		= "omap4-sham",
--	.id		= -1,
--};
--
--#if 0
--static void omap_init_sham(void)
--{
--	sham_device.resource = omap4_sham_resources;
--	sham_device.num_resources = omap4_sham_resources_sz;
--
--	platform_device_register(&sham_device);
--}
--#endif
--
--int __init omap_init_sham(void)
-+static void __init omap_init_sham(void)
- {
--	int id = -1;
--	struct platform_device *pdev;
- 	struct omap_hwmod *oh;
--	char *oh_name = "sha0";
--	char *name = "omap4-sham";
--
--	oh = omap_hwmod_lookup(oh_name);
--	if (!oh) {
--		pr_err("Could not look up %s\n", oh_name);
--		return -ENODEV;
--	}
--
--	pdev = omap_device_build(name, id, oh, NULL, 0, NULL, 0, 0);
--	//pdev.resource = omap4_sham_resources;
--	//pdev.num_resources = omap4_sham_resources_sz;
-+	struct platform_device *pdev;
- 
--	if (IS_ERR(pdev)) {
--		WARN(1, "Can't build omap_device for %s:%s.\n",
--						name, oh->name);
--		return PTR_ERR(pdev);
--	}
-+	oh = omap_hwmod_lookup("sha0");
-+	if (!oh)
-+		return;
- 
--	return 0;
-+	pdev = omap_device_build("omap4-sham", -1, oh, NULL, 0, NULL, 0, 0);
-+	WARN(IS_ERR(pdev), "Can't build omap_device for omap-sham\n");
- }
--
--
--
--
--
- #else
- static inline void omap_init_sham(void) { }
- #endif
-diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-index ee3ebd9..ad606c6 100644
---- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-@@ -79,6 +79,7 @@ static struct omap_hwmod am33xx_spi1_hwmod;
- static struct omap_hwmod am33xx_elm_hwmod;
- static struct omap_hwmod am33xx_adc_tsc_hwmod;
- static struct omap_hwmod am33xx_rtc_hwmod;
-+static struct omap_hwmod am33xx_sha0_hwmod;
- static struct omap_hwmod am33xx_mcasp0_hwmod;
- static struct omap_hwmod am33xx_mcasp1_hwmod;
- static struct omap_hwmod am33xx_ehrpwm0_hwmod;
-@@ -2167,8 +2168,16 @@ static struct omap_hwmod am33xx_rtc_hwmod = {
- };
- 
- /* sha0 */
-+static struct omap_hwmod_class_sysconfig am33xx_sha0_sysc = {
-+	.rev_offs	= 0x100,
-+	.sysc_offs	= 0x110,
-+	.syss_offs	= 0x114,
-+	.sysc_flags	= SYSS_HAS_RESET_STATUS,
-+};
-+
- static struct omap_hwmod_class am33xx_sha0_hwmod_class = {
- 	.name		= "sha0",
-+	.sysc		= &am33xx_sha0_sysc,
- };
- 
- static struct omap_hwmod_irq_info am33xx_sha0_irqs[] = {
-@@ -2181,6 +2190,27 @@ static struct omap_hwmod_dma_info am33xx_sha0_dma[] = {
- 	{ .dma_req = -1 }
- };
- 
-+struct omap_hwmod_addr_space am33xx_sha0_addr_space[] = {
-+	{
-+		.pa_start	= 0x53100000,
-+		.pa_end		= 0x53100000 + SZ_1M - 1,
-+		.flags		= ADDR_TYPE_RT,
-+	},
-+	{ }
-+};
-+
-+struct omap_hwmod_ocp_if am33xx_l3_core__sha0 = {
-+	.master		= &am33xx_l3_main_hwmod,
-+	.slave		= &am33xx_sha0_hwmod,
-+	.clk		= "sha0_fck",
-+	.addr		= am33xx_sha0_addr_space,
-+	.user		= OCP_USER_MPU,
-+};
-+
-+static struct omap_hwmod_ocp_if *am33xx_sha0_slaves[] = {
-+	&am33xx_l3_core__sha0,
-+};
-+
- static struct omap_hwmod am33xx_sha0_hwmod = {
- 	.name		= "sha0",
- 	.class		= &am33xx_sha0_hwmod_class,
-@@ -2194,6 +2224,8 @@ static struct omap_hwmod am33xx_sha0_hwmod = {
- 			.modulemode	= MODULEMODE_SWCTRL,
- 		},
- 	},
-+	.slaves		= am33xx_sha0_slaves,
-+	.slaves_cnt	= ARRAY_SIZE(am33xx_sha0_slaves),
- };
- 
- /* 'smartreflex' class */
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-OMAP2-AM335x-Update-SPI-flash-layout.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-OMAP2-AM335x-Update-SPI-flash-layout.patch
deleted file mode 100644
index 29b95bb..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-ARM-OMAP2-AM335x-Update-SPI-flash-layout.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 54690cd10741ec54acc2555c3b699de310571a49 Mon Sep 17 00:00:00 2001
-From: Tom Rini <trini at ti.com>
-Date: Fri, 7 Dec 2012 14:01:51 -0700
-Subject: [PATCH] ARM: OMAP2+: AM335x: Update SPI flash layout
-
-Current U-Boot has grown, and our size of the environment was never
-correct, rework the offsets for minimal impact.
-
-Signed-off-by: Tom Rini <trini at ti.com>
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 50e1d9b..3357d88 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1201,17 +1201,17 @@ static struct mtd_partition am335x_spi_partitions[] = {
- 	{
- 		.name       = "U-Boot",
- 		.offset     = MTDPART_OFS_APPEND,	/* Offset = 0x20000 */
--		.size       = 2 * SZ_128K,
-+		.size       = (3 * SZ_128K) - SZ_4K,
- 	},
- 	{
- 		.name       = "U-Boot Env",
--		.offset     = MTDPART_OFS_APPEND,	/* Offset = 0x60000 */
--		.size       = 2 * SZ_4K,
-+		.offset     = MTDPART_OFS_APPEND,	/* Offset = 0x7F000 */
-+		.size       = SZ_4K,
- 	},
- 	{
- 		.name       = "Kernel",
--		.offset     = MTDPART_OFS_APPEND,	/* Offset = 0x62000 */
--		.size       = 28 * SZ_128K,
-+		.offset     = MTDPART_OFS_APPEND,	/* Offset = 0x80000 */
-+		.size       = 866 * SZ_4K,		/* size = 0x362000 */
- 	},
- 	{
- 		.name       = "File System",
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-Smartreflex-support-for-ES-2.x-and-suspend-resume.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-Smartreflex-support-for-ES-2.x-and-suspend-resume.patch
deleted file mode 100644
index bc2b5c7..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-Smartreflex-support-for-ES-2.x-and-suspend-resume.patch
+++ /dev/null
@@ -1,1928 +0,0 @@
-From 4866616f13b397a07c06a45a34d050c1b4539e10 Mon Sep 17 00:00:00 2001
-From: Greg Guyotte <gguyotte at ti.com>
-Date: Tue, 28 May 2013 20:45:07 -0500
-Subject: [PATCH] Smartreflex support for ES 2.x and suspend resume
-
-This change adds support for ES 2.x to the SmartReflex driver.
-It also adds suspend/resume handlers which resolves an identified
-problem.  The voltage calculation has been improved in order
-to settle more quickly and accurately to the target voltage.
-
-Signed-off-by: Greg Guyotte <gguyotte at ti.com>
----
- arch/arm/mach-omap2/am33xx-smartreflex-class2.c |  852 +++++++++++++----------
- arch/arm/mach-omap2/devices.c                   |  483 +++++++------
- arch/arm/plat-omap/include/plat/smartreflex.h   |   72 +-
- 3 files changed, 812 insertions(+), 595 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/am33xx-smartreflex-class2.c b/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-index 6a66e68..4d750d4 100644
---- a/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-+++ b/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-@@ -28,6 +28,7 @@
- #include <linux/regulator/consumer.h>
- #include <linux/cpufreq.h>
- #include <linux/opp.h>
-+#include <linux/pm.h>
- 
- #include <plat/common.h>
- #include <plat/smartreflex.h>
-@@ -37,6 +38,9 @@
- 
- #define CLK_NAME_LEN		40
- 
-+/* Global reference used for suspend/resume only */
-+static struct am33xx_sr *global_sr_info;
-+
- static inline void sr_write_reg(struct am33xx_sr *sr, int offset, u32 value,
- 					u32 srid)
- {
-@@ -60,63 +64,68 @@ static inline u32 sr_read_reg(struct am33xx_sr *sr, int offset, u32 srid)
- 	return readl(sr->sen[srid].base + offset);
- }
- 
--static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen) {
--         u32 gn, rn, mul;
--
--         for (gn = 0; gn < GAIN_MAXLIMIT; gn++) {
--                 mul = 1 << (gn + 8);
--                 rn = mul / sensor;
--                 if (rn < R_MAXLIMIT) {
--                         *sengain = gn;
--                         *rnsen = rn;
--                 }
--         }
-+static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen)
-+{
-+	 u32 gn, rn, mul;
-+
-+	 for (gn = 0; gn < GAIN_MAXLIMIT; gn++) {
-+		mul = 1 << (gn + 8);
-+		rn = mul / sensor;
-+		if (rn < R_MAXLIMIT) {
-+			*sengain = gn;
-+			*rnsen = rn;
-+		}
-+	}
- }
- 
--static u32 cal_test_nvalue(u32 sennval, u32 senpval) {
--         u32 senpgain=0, senngain=0;
--         u32 rnsenp=0, rnsenn=0;
-+static u32 cal_test_nvalue(u32 sennval, u32 senpval)
-+{
-+	 u32 senpgain = 0, senngain = 0;
-+	 u32 rnsenp = 0, rnsenn = 0;
- 
--         /* Calculating the gain and reciprocal of the SenN and SenP values */
--         cal_reciprocal(senpval, &senpgain, &rnsenp);
--         cal_reciprocal(sennval, &senngain, &rnsenn);
-+	 /* Calculating the gain and reciprocal of the SenN and SenP values */
-+	 cal_reciprocal(senpval, &senpgain, &rnsenp);
-+	 cal_reciprocal(sennval, &senngain, &rnsenn);
- 
--         return (senpgain << NVALUERECIPROCAL_SENPGAIN_SHIFT) |
--                 (senngain << NVALUERECIPROCAL_SENNGAIN_SHIFT) |
--                 (rnsenp << NVALUERECIPROCAL_RNSENP_SHIFT) |
--                 (rnsenn << NVALUERECIPROCAL_RNSENN_SHIFT);
-+	 return (senpgain << NVALUERECIPROCAL_SENPGAIN_SHIFT) |
-+		 (senngain << NVALUERECIPROCAL_SENNGAIN_SHIFT) |
-+		 (rnsenp << NVALUERECIPROCAL_RNSENP_SHIFT) |
-+		 (rnsenn << NVALUERECIPROCAL_RNSENN_SHIFT);
- }
- 
-+/* margin is defined similar to the SenVal register.
-+     SenP margin is 31:16 bits
-+     SenN margin is 15:00 bits
-+*/
- static unsigned int sr_adjust_efuse_nvalue(unsigned int opp_no,
--                                                 unsigned int orig_opp_nvalue,
--                                                 unsigned int mv_delta) {
--         unsigned int new_opp_nvalue;
--         unsigned int senp_gain, senn_gain, rnsenp, rnsenn, pnt_delta, nnt_delta;
--         unsigned int new_senn, new_senp, senn, senp;
-+						 unsigned int orig_opp_nvalue,
-+						 unsigned int margin) {
-+	 unsigned int new_opp_nvalue, senp_gain, senn_gain, rnsenp, rnsenn;
-+	 unsigned int pnt_delta, nnt_delta, new_senn, new_senp, senn, senp;
- 
--         /* calculate SenN and SenP from the efuse value */
--         senp_gain = ((orig_opp_nvalue >> 20) & 0xf);
--         senn_gain = ((orig_opp_nvalue >> 16) & 0xf);
--         rnsenp = ((orig_opp_nvalue >> 8) & 0xff);
--         rnsenn = (orig_opp_nvalue & 0xff);
-+	 /* calculate SenN and SenP from the efuse value */
-+	 senp_gain = ((orig_opp_nvalue >> 20) & 0xf);
-+	 senn_gain = ((orig_opp_nvalue >> 16) & 0xf);
-+	 rnsenp = ((orig_opp_nvalue >> 8) & 0xff);
-+	 rnsenn = (orig_opp_nvalue & 0xff);
- 
--         senp = ((1<<(senp_gain+8))/(rnsenp));
--         senn = ((1<<(senn_gain+8))/(rnsenn));
-+	 senp = ((1<<(senp_gain+8))/(rnsenp));
-+	 senn = ((1<<(senn_gain+8))/(rnsenn));
- 
--         /* calculate the voltage delta */
--         pnt_delta = (26 * mv_delta)/10;
--         nnt_delta = (3 * mv_delta);
-+	 /* calculate the voltage delta */
-+	 pnt_delta = (margin >> 16) & 0xffff;
-+	 nnt_delta = margin & 0xffff;
- 
--         /* now lets add the voltage delta to the sensor values */
--         new_senn = senn + nnt_delta;
--         new_senp = senp + pnt_delta;
-+	 /* now lets add the voltage delta to the sensor values */
-+	 new_senn = senn + nnt_delta;
-+	 new_senp = senp + pnt_delta;
- 
--         new_opp_nvalue = cal_test_nvalue(new_senn, new_senp);
-+	 new_opp_nvalue = cal_test_nvalue(new_senn, new_senp);
- 
--         printk("Compensating OPP%d for %dmV Orig nvalue:0x%x New nvalue:0x%x \n",
--                         opp_no, mv_delta, orig_opp_nvalue, new_opp_nvalue);
-+	 printk(KERN_DEBUG "Compensating OPP%d: Orig nvalue:0x%x New nvalue:0x%x\n",
-+			 opp_no, orig_opp_nvalue, new_opp_nvalue);
- 
--         return new_opp_nvalue;
-+	 return new_opp_nvalue;
- }
- 
- /* irq_sr_reenable - Re-enable SR interrupts (triggered by delayed work queue)
-@@ -128,55 +137,104 @@ static unsigned int sr_adjust_efuse_nvalue(unsigned int opp_no,
-  */
- static void irq_sr_reenable(struct work_struct *work)
- {
--        u32 srid;
-+	u32 srid;
- 	struct am33xx_sr_sensor *sens;
--        struct am33xx_sr *sr;
-+	struct am33xx_sr *sr;
- 
--        sens = container_of((void *)work, struct am33xx_sr_sensor,
--                work_reenable);
-+	sens = container_of((void *)work, struct am33xx_sr_sensor,
-+		work_reenable);
- 
--        srid = sens->sr_id;
-+	srid = sens->sr_id;
- 
--        sr = container_of((void *)sens, struct am33xx_sr, sen[srid]);
-+	sr = container_of((void *)sens, struct am33xx_sr, sen[srid]);
- 
--        dev_dbg(&sr->pdev->dev, "%s: SR %d\n", __func__, srid);
-+	dev_dbg(&sr->pdev->dev, "%s: SR %d\n", __func__, srid);
- 
--        /* Must clear IRQ status */
--        sens->irq_status = 0;
-+	/* Must clear IRQ status */
-+	sens->irq_status = 0;
- 
--        /* Re-enable the interrupt */
-+	/* moved from initial irq handler to solve problem of extra
-+	   interrupts (Clear bounds interrupt) */
-+	sr_modify_reg(sr, IRQSTATUS, IRQSTATUS_MCBOUNDSINT,
-+			IRQSTATUS_MCBOUNDSINT, srid);
-+
-+	/* Re-enable the interrupt */
- 	sr_modify_reg(sr, IRQENABLE_SET, IRQENABLE_MCUBOUNDSINT,
- 		IRQENABLE_MCUBOUNDSINT, srid);
--
--	/* Restart the module after voltage set */
--	sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
--		SRCONFIG_SRENABLE, srid);
- }
- 
- /* get_errvolt - get error voltage from SR error register
-  * @sr:		contains SR driver data
-  * @srid:	contains the srid, indicates which SR moduel lswe are using
-+ * @curr_volt:  current voltage for domain (in microvolts)
-+ * @reset:      set to 1 to reset the internal state machine
-  *
-- * Read the error from SENSOR error register and then convert
-+ * Reads the error from SENSOR error register and then convert
-  * to voltage delta, return value is the voltage delta in micro
-  * volt.
-  */
--static int get_errvolt(struct am33xx_sr *sr, s32 srid)
-+static int get_errvolt(struct am33xx_sr *sr, int srid, int curr_volt,
-+			int reset)
- {
--        struct am33xx_sr_sensor *sens;
--	int senerror_reg;
--	s32 uvoltage;
--	s8 terror;
-+	struct am33xx_sr_sensor *sens;
-+	int senerror_reg, gain;
-+	s32 uvoltage = 0;
-+	s8 avg_error;
- 
--        sens = &sr->sen[srid];
-+	sens = &sr->sen[srid];
- 
-+	/* used when OPP changes to reset the state machine */
-+	if (reset > 0) {
-+		sens->state = 0;
-+		return 0;
-+	}
-+
-+	/* Read the AvgError */
- 	senerror_reg = sr_read_reg(sr, SENERROR_V2, srid);
- 	senerror_reg = (senerror_reg & 0x0000FF00);
--	terror = (s8)(senerror_reg >> 8);
-+	avg_error = (s8)(senerror_reg >> 8);
-+
-+	switch (sens->state) {
-+	case 0: /* save the current voltage and AvgError for state 1 */
-+		sens->saved_volt = curr_volt;
-+		sens->avg_error_nom = avg_error;
-+
-+		/* calculate -5% voltage (spec vmin) */
-+		uvoltage = -(curr_volt * 5) / 100;
-+
-+		sens->state = 1;
-+		break;
-+	case 1: /* guard against divide by zero (should not happen) */
-+		if (sens->avg_error_nom == avg_error) {
-+			dev_err(&sr->pdev->dev,
-+			"%s: SR %d: Same AvgError for 2 different voltages\n",
-+			__func__, srid);
-+			sens->state = 0;
-+			break;
-+		}
- 
--        /* math defined in SR functional spec */
--	uvoltage = ((terror) * sr->uvoltage_step_size) >> 7;
--	uvoltage = uvoltage * sens->opp_data[sens->curr_opp].e2v_gain;
-+		/* calculate what the gain should be based on slope */
-+		gain = abs(sens->saved_volt - curr_volt) /
-+			abs(sens->avg_error_nom - avg_error);
-+		uvoltage = gain * avg_error;
-+
-+		dev_dbg(&sr->pdev->dev,
-+			"SR %d: State 1 calculated %duV gain, vmin = %d\n",
-+			srid, gain, curr_volt + uvoltage);
-+
-+		/* store computed gain for state 2 */
-+		sens->opp_data[sens->curr_opp].e2v_gain = (gain / 100);
-+		sens->state = 2;
-+		break;
-+	case 2: /* remain in this state to converge to final voltage */
-+		uvoltage = (avg_error * sr->uvoltage_step_size) >> 7;
-+		uvoltage = uvoltage * sens->opp_data[sens->curr_opp].e2v_gain;
-+		break;
-+	default:
-+		dev_err(&sr->pdev->dev,
-+			"%s: SR %d: Invalid state for get_errvolt\n",
-+			__func__, srid);
-+	}
- 
- 	return uvoltage;
- }
-@@ -204,48 +262,46 @@ static void set_voltage(struct work_struct *work)
- 
- 	sr = container_of((void *)work, struct am33xx_sr, work);
- 
--        for (i = 0; i < sr->no_of_sens; i++) {
--                if (sr->sen[i].irq_status != 1)
--                        continue;
-+	for (i = 0; i < sr->no_of_sens; i++) {
-+		if (sr->sen[i].irq_status != 1)
-+			continue;
- 
--                /* Get the current voltage from PMIC */
--                prev_volt = regulator_get_voltage(sr->sen[i].reg);
-+		/* Get the current voltage from PMIC */
-+		prev_volt = regulator_get_voltage(sr->sen[i].reg);
- 
--                if (prev_volt < 0) {
--                        dev_err(&sr->pdev->dev,
--                                "%s: SR %d: regulator_get_voltage error %d\n",
--                                __func__, i, prev_volt);
-+		if (prev_volt < 0) {
-+			dev_err(&sr->pdev->dev,
-+				"%s: SR %d: regulator_get_voltage error %d\n",
-+				__func__, i, prev_volt);
- 
--                        goto reenable;
--                }
-+			goto reenable;
-+		}
- 
--        	delta_v = get_errvolt(sr, i);
--                new_volt = prev_volt + delta_v;
-+		delta_v = get_errvolt(sr, i, prev_volt, 0);
-+		new_volt = prev_volt + delta_v;
- 
--                /* this is the primary output for debugging SR activity */
--                dev_dbg(&sr->pdev->dev,
--                        "%s: SR %d: prev volt=%d, delta_v=%d, req_volt=%d\n",
--                         __func__, i, prev_volt, delta_v, new_volt);
-+		if (delta_v != 0) {
-+			ret = regulator_set_voltage(sr->sen[i].reg, new_volt,
-+				new_volt + sr->uvoltage_step_size);
- 
--	        /* Clear the counter, SR module disable */
--	        sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
--			~SRCONFIG_SRENABLE, i);
-+			if (ret < 0)
-+				dev_err(&sr->pdev->dev,
-+				"%s: regulator_set_voltage failed! (err %d)\n",
-+				__func__, ret);
-+		}
- 
--                if (delta_v != 0) {
--	                ret = regulator_set_voltage(sr->sen[i].reg, new_volt,
--                                new_volt + sr->uvoltage_step_size);
-+		/* this is the primary output for debugging SR activity */
-+		printk(KERN_DEBUG "SR %d: curr=%d, delta_v=%d, calc=%d, act=%d, gain=%02x\n",
-+			 i, prev_volt, delta_v, new_volt,
-+			regulator_get_voltage(sr->sen[i].reg),
-+			sr->sen[i].opp_data[sr->sen[i].curr_opp].e2v_gain);
- 
--                        if (ret < 0)
--                                dev_err(&sr->pdev->dev,
--                                "%s: regulator_set_voltage failed! (err %d)\n",
--                                __func__, ret);
--                }
- reenable:
--                /* allow time for voltage to settle before re-enabling SR
--                   module and interrupt */
--                schedule_delayed_work(&sr->sen[i].work_reenable,
--                        msecs_to_jiffies(sr->irq_delay));
--        }
-+		/* allow time for voltage to settle before re-enabling SR
-+		   module and interrupt */
-+		schedule_delayed_work(&sr->sen[i].work_reenable,
-+			msecs_to_jiffies(sr->irq_delay));
-+	}
- }
- 
- /* sr_class2_irq - sr irq handling
-@@ -267,32 +323,28 @@ reenable:
- static irqreturn_t sr_class2_irq(int irq, void *data)
- {
- 	u32 srid;
--        struct am33xx_sr *sr;
--        struct am33xx_sr_sensor *sr_sensor = (struct am33xx_sr_sensor *)data;
-+	struct am33xx_sr *sr;
-+	struct am33xx_sr_sensor *sr_sensor = (struct am33xx_sr_sensor *)data;
- 
--        srid = sr_sensor->sr_id;
-+	srid = sr_sensor->sr_id;
- 
--        sr = container_of(data, struct am33xx_sr, sen[srid]);
-+	sr = container_of(data, struct am33xx_sr, sen[srid]);
- 
- 	sr->sen[srid].irq_status = 1;
- 
--	/* Clear MCUBounds Interrupt */
--	sr_modify_reg(sr, IRQSTATUS, IRQSTATUS_MCBOUNDSINT,
--			IRQSTATUS_MCBOUNDSINT, srid);
--
- 	/* Disable the interrupt and re-enable in set_voltage() */
- 	sr_modify_reg(sr, IRQENABLE_CLR, IRQENABLE_MCUBOUNDSINT,
- 			IRQENABLE_MCUBOUNDSINT, srid);
- 
--        /* Causes set_voltage() to get called at a later time.  Set_voltage()
--           will check the irq_status flags to determine which SR needs to
--           be serviced.  This was previously done with schedule_work, but
--           I observed a crash in set_voltage() when changing OPPs on weak
--           silicon, which may have been related to insufficient voltage
--           settling time for OPP change.  This additional delay avoids the
--           crash. */
--        schedule_delayed_work(&sr->work,
--                        msecs_to_jiffies(250));
-+	/* Causes set_voltage() to get called at a later time.  Set_voltage()
-+	   will check the irq_status flags to determine which SR needs to
-+	   be serviced.  This was previously done with schedule_work, but
-+	   I observed a crash in set_voltage() when changing OPPs on weak
-+	   silicon, which may have been related to insufficient voltage
-+	   settling time for OPP change.  This additional delay avoids the
-+	   crash. */
-+	schedule_delayed_work(&sr->work,
-+			msecs_to_jiffies(250));
- 
- 	return IRQ_HANDLED;
- }
-@@ -317,31 +369,31 @@ static int sr_clk_disable(struct am33xx_sr *sr, u32 srid)
- 
- static inline int sr_set_nvalues(struct am33xx_sr *sr, u32 srid)
- {
--        int i;
--        struct am33xx_sr_sensor *sens = &sr->sen[srid];
-+	int i;
-+	struct am33xx_sr_sensor *sens = &sr->sen[srid];
- 
--        for (i = 0; i < sens->no_of_opps; i++) {
--        	/* Read nTarget value form EFUSE register*/
--	        sens->opp_data[i].nvalue = readl(AM33XX_CTRL_REGADDR
-+	for (i = 0; i < sens->no_of_opps; i++) {
-+		/* Read nTarget value form EFUSE register*/
-+		sens->opp_data[i].nvalue = readl(AM33XX_CTRL_REGADDR
- 			(sens->opp_data[i].efuse_offs)) & 0xFFFFFF;
- 
--                /* validate nTarget value */
--                if (sens->opp_data[i].nvalue == 0)
--                        return -EINVAL;
-+		/* validate nTarget value */
-+		if (sens->opp_data[i].nvalue == 0)
-+			return -EINVAL;
- 
--                /* adjust nTarget based on margin in mv */
--                sens->opp_data[i].adj_nvalue = sr_adjust_efuse_nvalue(i,
--                        sens->opp_data[i].nvalue,
--                        sens->opp_data[i].margin);
-+		/* adjust nTarget based on margin in mv */
-+		sens->opp_data[i].adj_nvalue = sr_adjust_efuse_nvalue(i,
-+			sens->opp_data[i].nvalue,
-+			sens->opp_data[i].margin);
- 
--                dev_dbg(&sr->pdev->dev,
--                        "NValueReciprocal value (from efuse) = %08x\n",
--                        sens->opp_data[i].nvalue);
-+		dev_dbg(&sr->pdev->dev,
-+			"NValueReciprocal value (from efuse) = %08x\n",
-+			sens->opp_data[i].nvalue);
- 
--                dev_dbg(&sr->pdev->dev,
--                        "Adjusted NValueReciprocal value = %08x\n",
--                        sens->opp_data[i].adj_nvalue);
--        }
-+		dev_dbg(&sr->pdev->dev,
-+			"Adjusted NValueReciprocal value = %08x\n",
-+			sens->opp_data[i].adj_nvalue);
-+	}
- 	return 0;
- }
- 
-@@ -354,7 +406,7 @@ static inline int sr_set_nvalues(struct am33xx_sr *sr, u32 srid)
-  */
- static void sr_configure(struct am33xx_sr *sr, u32 srid)
- {
--        struct am33xx_sr_sensor *sens = &sr->sen[srid];
-+	struct am33xx_sr_sensor *sens = &sr->sen[srid];
- 
- 	/* Configuring the SR module with clock length, enabling the
- 	 * error generator, enable SR module, enable individual N and P
-@@ -370,11 +422,11 @@ static void sr_configure(struct am33xx_sr *sr, u32 srid)
- 	sr_modify_reg(sr, ERRCONFIG_V2, (SR_ERRWEIGHT_MASK |
- 		SR_ERRMAXLIMIT_MASK | SR_ERRMINLIMIT_MASK),
- 		((sens->opp_data[sens->curr_opp].err_weight <<
--                        ERRCONFIG_ERRWEIGHT_SHIFT) |
-+			ERRCONFIG_ERRWEIGHT_SHIFT) |
- 		(sens->opp_data[sens->curr_opp].err_maxlimit <<
--                        ERRCONFIG_ERRMAXLIMIT_SHIFT) |
-+			ERRCONFIG_ERRMAXLIMIT_SHIFT) |
- 		(sens->opp_data[sens->curr_opp].err_minlimit <<
--                        ERRCONFIG_ERRMINLIMIT_SHIFT)),
-+			ERRCONFIG_ERRMINLIMIT_SHIFT)),
- 		srid);
- }
- 
-@@ -387,9 +439,14 @@ static void sr_configure(struct am33xx_sr *sr, u32 srid)
-  */
- static void sr_enable(struct am33xx_sr *sr, u32 srid)
- {
--        struct am33xx_sr_sensor *sens;
-+	struct am33xx_sr_sensor *sens;
-+
-+	if (sr->is_suspended) {
-+		dev_dbg(&sr->pdev->dev, "%s: in suspended state\n", __func__);
-+		return;
-+	}
- 
--        sens = &sr->sen[srid];
-+	sens = &sr->sen[srid];
- 
- 	/* Check if SR is already enabled. If yes do nothing */
- 	if (sr_read_reg(sr, SRCONFIG, srid) & SRCONFIG_SRENABLE)
-@@ -397,11 +454,11 @@ static void sr_enable(struct am33xx_sr *sr, u32 srid)
- 
- 	if (sens->opp_data[sens->curr_opp].nvalue == 0)
- 		dev_err(&sr->pdev->dev,
--                        "%s: OPP doesn't support SmartReflex\n", __func__);
-+			"%s: OPP doesn't support SmartReflex\n", __func__);
- 
- 	/* Writing the nReciprocal value to the register */
- 	sr_write_reg(sr, NVALUERECIPROCAL,
--                sens->opp_data[sens->curr_opp].adj_nvalue, srid);
-+		sens->opp_data[sens->curr_opp].adj_nvalue, srid);
- 
- 	/* Enable the interrupt */
- 	sr_modify_reg(sr, IRQENABLE_SET, IRQENABLE_MCUBOUNDSINT,
-@@ -420,6 +477,11 @@ static void sr_enable(struct am33xx_sr *sr, u32 srid)
-  */
- static void sr_disable(struct am33xx_sr *sr, u32 srid)
- {
-+	if (sr->is_suspended) {
-+		dev_dbg(&sr->pdev->dev, "%s: in suspended state\n", __func__);
-+		return;
-+	}
-+
- 	/* Disable the interrupt */
- 	sr_modify_reg(sr, IRQENABLE_CLR, IRQENABLE_MCUBOUNDSINT,
- 				IRQENABLE_MCUBOUNDSINT, srid);
-@@ -440,31 +502,31 @@ static void sr_start_vddautocomp(struct am33xx_sr *sr)
- 	int i;
- 
- 	if ((sr->sen[SR_CORE].opp_data[0].nvalue == 0) ||
--                (sr->sen[SR_MPU].opp_data[0].nvalue == 0)) {
-+		(sr->sen[SR_MPU].opp_data[0].nvalue == 0)) {
- 		dev_err(&sr->pdev->dev, "SR module not enabled, nTarget"
- 					" values are not found\n");
- 		return;
- 	}
- 
--	if (sr->autocomp_active == 1) {
-+	if (sr->autocomp_active) {
- 		dev_warn(&sr->pdev->dev, "SR VDD autocomp already active\n");
- 		return;
- 	}
- 
- 	for (i = 0; i < sr->no_of_sens; i++) {
--               	/* Read current regulator value and voltage */
--	        sr->sen[i].init_volt_mv = regulator_get_voltage(sr->sen[i].reg);
-+		/* Read current regulator value and voltage */
-+		sr->sen[i].init_volt_mv = regulator_get_voltage(sr->sen[i].reg);
- 
--                dev_dbg(&sr->pdev->dev, "%s: regulator %d, init_volt = %d\n",
--                        __func__, i, sr->sen[i].init_volt_mv);
-+		dev_dbg(&sr->pdev->dev, "%s: regulator %d, init_volt = %d\n",
-+			__func__, i, sr->sen[i].init_volt_mv);
- 
- 		if (sr_clk_enable(sr, i))
--                        return;
-+			return;
- 		sr_configure(sr, i);
- 		sr_enable(sr, i);
- 	}
- 
--	sr->autocomp_active = 1;
-+	sr->autocomp_active = true;
- }
- 
- /* sr_stop_vddautocomp - Stop VDD auto compensation
-@@ -477,22 +539,22 @@ static void sr_stop_vddautocomp(struct am33xx_sr *sr)
- {
- 	int i;
- 
--	if (sr->autocomp_active == 0) {
-+	if (!sr->autocomp_active) {
- 		dev_warn(&sr->pdev->dev, "SR VDD autocomp is not active\n");
- 		return;
- 	}
- 
--        /* cancel bottom half interrupt handlers that haven't run yet */
-+	/* cancel bottom half interrupt handlers that haven't run yet */
- 	cancel_delayed_work_sync(&sr->work);
- 
- 	for (i = 0; i < sr->no_of_sens; i++) {
--                /* cancel any outstanding SR IRQ re-enables on work queue */
--                cancel_delayed_work_sync(&sr->sen[i].work_reenable);
-+		/* cancel any outstanding SR IRQ re-enables on work queue */
-+		cancel_delayed_work_sync(&sr->sen[i].work_reenable);
- 		sr_disable(sr, i);
- 		sr_clk_disable(sr, i);
- 	}
- 
--	sr->autocomp_active = 0;
-+	sr->autocomp_active = false;
- }
- 
- /* am33xx_sr_autocomp_show - Store user input value and stop SR
-@@ -513,7 +575,8 @@ static int am33xx_sr_autocomp_show(void *data, u64 *val)
- 
- static int am33xx_sr_margin_show(void *data, u64 *val)
- {
--        struct am33xx_sr_opp_data *sr_opp_data = (struct am33xx_sr_opp_data *)data;
-+	struct am33xx_sr_opp_data *sr_opp_data =
-+		(struct am33xx_sr_opp_data *)data;
- 
- 	*val = (u64) sr_opp_data->margin;
- 
-@@ -522,35 +585,35 @@ static int am33xx_sr_margin_show(void *data, u64 *val)
- 
- static int am33xx_sr_margin_update(void *data, u64 val)
- {
--        struct am33xx_sr_opp_data *sr_opp_data =
--                (struct am33xx_sr_opp_data *)data;
--        struct am33xx_sr_sensor *sr_sensor;
--        struct am33xx_sr *sr_info;
-+	struct am33xx_sr_opp_data *sr_opp_data =
-+		(struct am33xx_sr_opp_data *)data;
-+	struct am33xx_sr_sensor *sr_sensor;
-+	struct am33xx_sr *sr_info;
- 
--        /* work back to the sr_info pointer */
--        sr_sensor = container_of((void *)sr_opp_data, struct am33xx_sr_sensor,
--                opp_data[sr_opp_data->opp_id]);
-+	/* work back to the sr_info pointer */
-+	sr_sensor = container_of((void *)sr_opp_data, struct am33xx_sr_sensor,
-+		opp_data[sr_opp_data->opp_id]);
- 
--        sr_info = container_of((void *)sr_sensor, struct am33xx_sr,
--                sen[sr_sensor->sr_id]);
-+	sr_info = container_of((void *)sr_sensor, struct am33xx_sr,
-+		sen[sr_sensor->sr_id]);
- 
--        /* store the value of margin */
--        sr_opp_data->margin = (s32)val;
-+	/* store the value of margin */
-+	sr_opp_data->margin = (s32)val;
- 
--        dev_warn(&sr_info->pdev->dev, "%s: new margin=%d, srid=%d, opp=%d\n",
--                __func__, sr_opp_data->margin, sr_sensor->sr_id,
--                sr_opp_data->opp_id);
-+	dev_warn(&sr_info->pdev->dev, "%s: new margin=%d, srid=%d, opp=%d\n",
-+		__func__, sr_opp_data->margin, sr_sensor->sr_id,
-+		sr_opp_data->opp_id);
- 
--        /* updata ntarget values based upon new margin */
--        if (sr_set_nvalues(sr_info, sr_sensor->sr_id) == -EINVAL)
--                dev_err(&sr_info->pdev->dev,
--                        "%s: Zero NValue read from EFUSE\n", __func__);
-+	/* updata ntarget values based upon new margin */
-+	if (sr_set_nvalues(sr_info, sr_sensor->sr_id) == -EINVAL)
-+		dev_err(&sr_info->pdev->dev,
-+			"%s: Zero NValue read from EFUSE\n", __func__);
- 
--        /* restart SmartReflex to adapt to new values */
--        sr_stop_vddautocomp(sr_info);
--        sr_start_vddautocomp(sr_info);
-+	/* restart SmartReflex to adapt to new values */
-+	sr_stop_vddautocomp(sr_info);
-+	sr_start_vddautocomp(sr_info);
- 
--        return 0;
-+	return 0;
- }
- 
- /* am33xx_sr_autocomp_store - Store user input and start SR
-@@ -564,21 +627,25 @@ static int am33xx_sr_autocomp_store(void *data, u64 val)
- {
- 	struct am33xx_sr *sr_info = (struct am33xx_sr *) data;
- 
-+	if (sr_info->is_suspended) {
-+		pr_warning("%s: in suspended state\n", __func__);
-+		return -EBUSY;
-+	}
-+
- 	/* Sanity check */
- 	if (val && (val != 1)) {
- 		dev_warn(&sr_info->pdev->dev, "%s: Invalid argument %llu\n",
--		        __func__, val);
-+			__func__, val);
- 		return -EINVAL;
- 	}
- 
- 	if (!val) {
--                sr_info->disabled_by_user = 1;
-+		sr_info->disabled_by_user = true;
- 		sr_stop_vddautocomp(sr_info);
--        }
--	else {
--                sr_info->disabled_by_user = 0;
-+	} else {
-+		sr_info->disabled_by_user = false;
- 		sr_start_vddautocomp(sr_info);
--        }
-+	}
- 
- 	return 0;
- }
-@@ -618,7 +685,7 @@ DEFINE_SIMPLE_ATTRIBUTE(margin_fops, am33xx_sr_margin_show,
-  */
- static int sr_debugfs_entries(struct am33xx_sr *sr_info)
- {
--        struct am33xx_sr_sensor *sens;
-+	struct am33xx_sr_sensor *sens;
- 	struct dentry *dbg_dir, *sen_dir, *opp_dir;
- 	int i, j;
- 
-@@ -629,13 +696,13 @@ static int sr_debugfs_entries(struct am33xx_sr *sr_info)
- 		return PTR_ERR(dbg_dir);
- 	}
- 
--	(void) debugfs_create_file("autocomp", S_IRUGO | S_IWUGO, dbg_dir,
-+	(void) debugfs_create_file("autocomp", S_IRUGO | S_IWUSR, dbg_dir,
- 				(void *)sr_info, &sr_fops);
--        (void) debugfs_create_u32("interrupt_delay", S_IRUGO | S_IWUGO,
-+	(void) debugfs_create_u32("interrupt_delay", S_IRUGO | S_IWUSR,
- 				dbg_dir, &sr_info->irq_delay);
- 
- 	for (i = 0; i < sr_info->no_of_sens; i++) {
--                sens = &sr_info->sen[i];
-+		sens = &sr_info->sen[i];
- 		sen_dir = debugfs_create_dir(sens->name, dbg_dir);
- 		if (IS_ERR(sen_dir)) {
- 			dev_err(&sr_info->pdev->dev, "%s: Unable to create"
-@@ -643,37 +710,37 @@ static int sr_debugfs_entries(struct am33xx_sr *sr_info)
- 			return PTR_ERR(sen_dir);
- 		}
- 
--                (void)debugfs_create_u32("initial_voltage", S_IRUGO, sen_dir,
-+		(void)debugfs_create_u32("initial_voltage", S_IRUGO, sen_dir,
- 				&sens->init_volt_mv);
--	        (void)debugfs_create_file("current_voltage", S_IRUGO, sen_dir,
-+		(void)debugfs_create_file("current_voltage", S_IRUGO, sen_dir,
- 				(void *)sens, &curr_volt_fops);
- 
--                for (j = 0; j < sr_info->sen[i].no_of_opps; j++) {
--                        char tmp[20];
--
--                        sprintf(&tmp[0], "opp%d", j);
--                        opp_dir = debugfs_create_dir(tmp, sen_dir);
--                        if (IS_ERR(opp_dir)) {
--        			dev_err(&sr_info->pdev->dev,
--                                        "%s: Unable to create debugfs directory\n",
--                                        __func__);
--        			return PTR_ERR(opp_dir);
--        		}
--
--                        (void)debugfs_create_file("margin", S_IRUGO | S_IWUGO,
--	        	       opp_dir, (void *)&sens->opp_data[j],
--                               &margin_fops);
--                        (void)debugfs_create_x32("err2voltgain",
--                               S_IRUGO | S_IWUGO,
--        		       opp_dir,
--                               &sens->opp_data[j].e2v_gain);
--        		(void)debugfs_create_x32("nvalue", S_IRUGO,
--        		       opp_dir,
--                               &sens->opp_data[j].nvalue);
--                        (void)debugfs_create_x32("adj_nvalue", S_IRUGO,
--        		       opp_dir,
--                               &sens->opp_data[j].adj_nvalue);
--                }
-+		for (j = 0; j < sr_info->sen[i].no_of_opps; j++) {
-+			char tmp[20];
-+
-+			sprintf(&tmp[0], "opp%d", j);
-+			opp_dir = debugfs_create_dir(tmp, sen_dir);
-+			if (IS_ERR(opp_dir)) {
-+				dev_err(&sr_info->pdev->dev,
-+					"%s: Unable to create debugfs directory\n",
-+					__func__);
-+				return PTR_ERR(opp_dir);
-+			}
-+
-+			(void)debugfs_create_file("margin", S_IRUGO | S_IWUSR,
-+			       opp_dir, (void *)&sens->opp_data[j],
-+			       &margin_fops);
-+			(void)debugfs_create_x32("err2voltgain",
-+			       S_IRUGO | S_IWUSR,
-+			       opp_dir,
-+			       &sens->opp_data[j].e2v_gain);
-+			(void)debugfs_create_x32("nvalue", S_IRUGO,
-+			       opp_dir,
-+			       &sens->opp_data[j].nvalue);
-+			(void)debugfs_create_x32("adj_nvalue", S_IRUGO,
-+			       opp_dir,
-+			       &sens->opp_data[j].adj_nvalue);
-+		}
- 	}
- 	return 0;
- }
-@@ -688,51 +755,64 @@ static int sr_debugfs_entries(struct am33xx_sr *sr_info)
- 
- /* Find and return current OPP.  This should change to use system APIs,
-    but voltdm is not currently populated, and opp APIs are also not working. */
--static int get_current_opp(struct am33xx_sr *sr, u32 srid, u32 freq)  {
--        int i;
-+static int get_current_opp(struct am33xx_sr *sr, u32 srid, u32 freq)
-+{
-+	int i;
- 
--        for (i = 0; i < sr->sen[srid].no_of_opps; i++) {
--                if (sr->sen[srid].opp_data[i].frequency == freq)
--                        return i;
--        }
-+	for (i = 0; i < sr->sen[srid].no_of_opps; i++) {
-+		if (sr->sen[srid].opp_data[i].frequency == freq)
-+			return i;
-+	}
- 
--        return -EINVAL;
-+	return -EINVAL;
- }
- 
- static int am33xx_sr_cpufreq_transition(struct notifier_block *nb,
- 					  unsigned long val, void *data)
- {
--        struct am33xx_sr *sr;
--        struct cpufreq_freqs *cpu;
-+	struct am33xx_sr *sr;
-+	struct cpufreq_freqs *cpu;
- 
- 	sr = container_of(nb, struct am33xx_sr, freq_transition);
- 
--        /* We are required to disable SR while OPP change is occurring */
-+	/* We are required to disable SR while OPP change is occurring */
- 	if (val == CPUFREQ_PRECHANGE) {
--                dev_dbg(&sr->pdev->dev, "%s: prechange\n", __func__);
--                sr_stop_vddautocomp(sr);
-+		dev_dbg(&sr->pdev->dev, "%s: prechange\n", __func__);
-+
-+		printk(KERN_DEBUG "%s: prechange\n", __func__);
-+
-+		sr_stop_vddautocomp(sr);
-+
- 	} else if (val == CPUFREQ_POSTCHANGE) {
--                cpu = (struct cpufreq_freqs *)data;
--                dev_dbg(&sr->pdev->dev,
--                        "%s: postchange, cpu=%d, old=%d, new=%d\n",
--                        __func__, cpu->cpu, cpu->old, cpu->new);
--
--                /* update current OPP */
--                sr->sen[SR_MPU].curr_opp = get_current_opp(sr, SR_MPU,
--                        cpu->new*1000);
--                if (sr->sen[SR_MPU].curr_opp == -EINVAL) {
--                        dev_err(&sr->pdev->dev, "%s: cannot determine opp\n",
--                                __func__);
--                        return -EINVAL;
--                }
--
--                dev_dbg(&sr->pdev->dev, "%s: postchange, new opp=%d\n",
--                        __func__, sr->sen[SR_MPU].curr_opp);
--
--                /* this handles the case when the user has disabled SR via
--                   debugfs, therefore we do not want to enable SR */
--                if (sr->disabled_by_user == 0)
--                        sr_start_vddautocomp(sr);
-+		cpu = (struct cpufreq_freqs *)data;
-+		dev_dbg(&sr->pdev->dev,
-+			"%s: postchange, cpu=%d, old=%d, new=%d\n",
-+			__func__, cpu->cpu, cpu->old, cpu->new);
-+
-+		printk(KERN_DEBUG "%s: postchange\n", __func__);
-+
-+		/* update current OPP */
-+		sr->sen[SR_MPU].curr_opp = get_current_opp(sr, SR_MPU,
-+			cpu->new*1000);
-+		if (sr->sen[SR_MPU].curr_opp == -EINVAL) {
-+			dev_err(&sr->pdev->dev, "%s: cannot determine opp\n",
-+				__func__);
-+			return -EINVAL;
-+		}
-+
-+		dev_dbg(&sr->pdev->dev, "%s: postchange, new opp=%d\n",
-+			__func__, sr->sen[SR_MPU].curr_opp);
-+
-+		/* reset the voltage calculation algorithm for MPU */
-+		get_errvolt(sr, SR_MPU, 0, 1);
-+
-+		/* this handles the case when the user has disabled SR via
-+		   debugfs, therefore we do not want to enable SR */
-+		if (sr->disabled_by_user == false) {
-+			printk(KERN_DEBUG "%s: postchange, new opp=%d\n",
-+			__func__, sr->sen[SR_MPU].curr_opp);
-+			sr_start_vddautocomp(sr);
-+		}
- 	}
- 
- 	return 0;
-@@ -740,7 +820,7 @@ static int am33xx_sr_cpufreq_transition(struct notifier_block *nb,
- 
- static inline int am33xx_sr_cpufreq_register(struct am33xx_sr *sr)
- {
--        sr->freq_transition.notifier_call = am33xx_sr_cpufreq_transition;
-+	sr->freq_transition.notifier_call = am33xx_sr_cpufreq_transition;
- 
- 	return cpufreq_register_notifier(&sr->freq_transition,
- 					 CPUFREQ_TRANSITION_NOTIFIER);
-@@ -754,6 +834,67 @@ static inline void am33xx_sr_cpufreq_deregister(struct am33xx_sr *sr)
- 
- #endif
- 
-+static void print_die_id(void)
-+{
-+	writel(0xF47765F2, AM33XX_CTRL_REGADDR(0x1828));
-+	writel(0x703E6C3D, AM33XX_CTRL_REGADDR(0x1844));
-+	writel(0x3724C7D6, AM33XX_CTRL_REGADDR(0x182C));
-+	writel(0x7A733E49, AM33XX_CTRL_REGADDR(0x184C));
-+
-+	printk(KERN_DEBUG "DIEID: %08x %08x %08x %08x\n",
-+		readl(AM33XX_CTRL_REGADDR(0x183C)),
-+		readl(AM33XX_CTRL_REGADDR(0x1848)),
-+		readl(AM33XX_CTRL_REGADDR(0x1824)),
-+		readl(AM33XX_CTRL_REGADDR(0x1850)));
-+
-+	printk(KERN_DEBUG "EFUSE SMA register val = %08x\n",
-+		readl(AM33XX_CTRL_REGADDR(0x7fc)));
-+}
-+
-+static int am33xx_sr_suspend(struct device *dev)
-+{
-+	if (global_sr_info == NULL)
-+		return -EINVAL;
-+
-+	/* if we are already disabled or suspended, do nothing */
-+	if (global_sr_info->disabled_by_user)
-+		return 0;
-+
-+	if (global_sr_info->is_suspended)
-+		return 0;
-+
-+#ifdef CONFIG_CPU_FREQ
-+	am33xx_sr_cpufreq_deregister(global_sr_info);
-+#endif
-+	sr_stop_vddautocomp(global_sr_info);
-+	global_sr_info->is_suspended = true;
-+
-+	return 0;
-+}
-+
-+static int am33xx_sr_resume(struct device *dev)
-+{
-+	if (global_sr_info == NULL)
-+		return -EINVAL;
-+
-+	/* ensure we don't enable SR if it was disabled before suspend */
-+	if (global_sr_info->disabled_by_user)
-+		return 0;
-+
-+	if (!global_sr_info->is_suspended)
-+		return 0;
-+
-+	global_sr_info->is_suspended = false;
-+	sr_start_vddautocomp(global_sr_info);
-+
-+#ifdef CONFIG_CPU_FREQ
-+	if (am33xx_sr_cpufreq_register(global_sr_info)) {
-+		printk(KERN_ERR "failed to register cpufreq\n");
-+	}
-+#endif
-+	return 0;
-+}
-+
- static int __init am33xx_sr_probe(struct platform_device *pdev)
- {
- 	struct am33xx_sr *sr_info;
-@@ -761,13 +902,9 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 	struct resource *res[MAX_SENSORS];
- 	int irq;
- 	int ret;
--	int i,j;
-+	int i, j;
- 
--	if (omap_rev() != AM335X_REV_ES1_0) {
--		dev_err(&pdev->dev, "%s: Smartreflex requires ES 1.0\n",
--		       	__func__);
--		return -EINVAL;
--	}
-+	print_die_id();
- 
- 	sr_info = kzalloc(sizeof(struct am33xx_sr), GFP_KERNEL);
- 	if (!sr_info) {
-@@ -776,6 +913,8 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 		return -ENOMEM;
- 	}
- 
-+	global_sr_info = sr_info;
-+
- 	pdata = pdev->dev.platform_data;
- 	if (!pdata) {
- 		dev_err(&pdev->dev, "%s: platform data missing\n", __func__);
-@@ -787,77 +926,77 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 	sr_info->sen[SR_CORE].name = "smartreflex0";
- 	sr_info->sen[SR_MPU].name = "smartreflex1";
- 	sr_info->ip_type = pdata->ip_type;
--        sr_info->irq_delay = pdata->irq_delay;
--        sr_info->no_of_sens = pdata->no_of_sens;
--        sr_info->no_of_vds = pdata->no_of_vds;
-+	sr_info->irq_delay = pdata->irq_delay;
-+	sr_info->no_of_sens = pdata->no_of_sens;
-+	sr_info->no_of_vds = pdata->no_of_vds;
- 	sr_info->uvoltage_step_size = pdata->vstep_size_uv;
- 	sr_info->autocomp_active = false;
--        sr_info->disabled_by_user = false;
-+	sr_info->disabled_by_user = false;
- 
- 	for (i = 0; i < sr_info->no_of_sens; i++) {
--                u32 curr_freq=0;
--
--                sr_info->sen[i].reg_name = pdata->vd_name[i];
--
--                /* this should be determined from voltdm or opp layer, but
--                   those approaches are not working */
--                sr_info->sen[i].no_of_opps = pdata->sr_sdata[i].no_of_opps;
--                sr_info->sen[i].sr_id = i;
--
--                /* Reading per OPP Values */
--                for (j = 0; j < sr_info->sen[i].no_of_opps; j++) {
--        		sr_info->sen[i].opp_data[j].efuse_offs =
--                                pdata->sr_sdata[i].sr_opp_data[j].efuse_offs;
--                        sr_info->sen[i].opp_data[j].e2v_gain =
--                                pdata->sr_sdata[i].sr_opp_data[j].e2v_gain;
--        		sr_info->sen[i].opp_data[j].err_weight =
--                                pdata->sr_sdata[i].sr_opp_data[j].err_weight;
--        		sr_info->sen[i].opp_data[j].err_minlimit =
--                                pdata->sr_sdata[i].sr_opp_data[j].err_minlimit;
--        		sr_info->sen[i].opp_data[j].err_maxlimit =
--                                pdata->sr_sdata[i].sr_opp_data[j].err_maxlimit;
--                        sr_info->sen[i].opp_data[j].margin =
--                                pdata->sr_sdata[i].sr_opp_data[j].margin;
--                        sr_info->sen[i].opp_data[j].nominal_volt =
--                                pdata->sr_sdata[i].sr_opp_data[j].nominal_volt;
--                        sr_info->sen[i].opp_data[j].frequency =
--                                pdata->sr_sdata[i].sr_opp_data[j].frequency;
--                        sr_info->sen[i].opp_data[j].opp_id = j;
--                }
--
--                if (i == SR_MPU) {
--                        /* hardcoded CPU NR */
--                        curr_freq = cpufreq_get(0);
--
--                        /* update current OPP */
--                        sr_info->sen[i].curr_opp = get_current_opp(sr_info, i,
--                                        curr_freq*1000);
--                        if (sr_info->sen[i].curr_opp == -EINVAL) {
--                                dev_err(&sr_info->pdev->dev,
--                                        "%s: cannot determine opp\n",__func__);
--                                ret = -EINVAL;
--                                goto err_free_sr_info;
--                        }
--                } else {
--                        sr_info->sen[i].curr_opp =
--                                pdata->sr_sdata[i].default_opp;
--                }
--
--                dev_dbg(&pdev->dev,
--                        "%s: SR%d, curr_opp=%d, no_of_opps=%d, step_size=%d\n",
--                        __func__, i, sr_info->sen[i].curr_opp,
--                        sr_info->sen[i].no_of_opps,
--                        sr_info->uvoltage_step_size);
--
--                ret = sr_set_nvalues(sr_info, i);
--                if (ret == -EINVAL) {
--                        dev_err(&sr_info->pdev->dev,
--                                "%s: Zero NValue read from EFUSE\n", __func__);
--                        goto err_free_sr_info;
--                }
--
--                INIT_DELAYED_WORK(&sr_info->sen[i].work_reenable,
--                        irq_sr_reenable);
-+		u32 curr_freq = 0;
-+
-+		sr_info->sen[i].reg_name = pdata->vd_name[i];
-+
-+		/* this should be determined from voltdm or opp layer, but
-+		   those approaches are not working */
-+		sr_info->sen[i].no_of_opps = pdata->sr_sdata[i].no_of_opps;
-+		sr_info->sen[i].sr_id = i;
-+
-+		/* Reading per OPP Values */
-+		for (j = 0; j < sr_info->sen[i].no_of_opps; j++) {
-+			sr_info->sen[i].opp_data[j].efuse_offs =
-+				pdata->sr_sdata[i].sr_opp_data[j].efuse_offs;
-+			sr_info->sen[i].opp_data[j].e2v_gain =
-+				pdata->sr_sdata[i].sr_opp_data[j].e2v_gain;
-+			sr_info->sen[i].opp_data[j].err_weight =
-+				pdata->sr_sdata[i].sr_opp_data[j].err_weight;
-+			sr_info->sen[i].opp_data[j].err_minlimit =
-+				pdata->sr_sdata[i].sr_opp_data[j].err_minlimit;
-+			sr_info->sen[i].opp_data[j].err_maxlimit =
-+				pdata->sr_sdata[i].sr_opp_data[j].err_maxlimit;
-+			sr_info->sen[i].opp_data[j].margin =
-+				pdata->sr_sdata[i].sr_opp_data[j].margin;
-+			sr_info->sen[i].opp_data[j].nominal_volt =
-+				pdata->sr_sdata[i].sr_opp_data[j].nominal_volt;
-+			sr_info->sen[i].opp_data[j].frequency =
-+				pdata->sr_sdata[i].sr_opp_data[j].frequency;
-+			sr_info->sen[i].opp_data[j].opp_id = j;
-+		}
-+
-+		if (i == SR_MPU) {
-+			/* hardcoded CPU NR */
-+			curr_freq = cpufreq_get(0);
-+
-+			/* update current OPP */
-+			sr_info->sen[i].curr_opp = get_current_opp(sr_info, i,
-+					curr_freq*1000);
-+			if (sr_info->sen[i].curr_opp == -EINVAL) {
-+				dev_err(&sr_info->pdev->dev,
-+					"%s: cannot determine opp\n", __func__);
-+				ret = -EINVAL;
-+				goto err_free_sr_info;
-+			}
-+		} else {
-+			sr_info->sen[i].curr_opp =
-+				pdata->sr_sdata[i].default_opp;
-+		}
-+
-+		dev_dbg(&pdev->dev,
-+			"%s: SR%d, curr_opp=%d, no_of_opps=%d, step_size=%d\n",
-+			__func__, i, sr_info->sen[i].curr_opp,
-+			sr_info->sen[i].no_of_opps,
-+			sr_info->uvoltage_step_size);
-+
-+		ret = sr_set_nvalues(sr_info, i);
-+		if (ret == -EINVAL) {
-+			dev_err(&sr_info->pdev->dev,
-+				"%s: Zero NValue read from EFUSE\n", __func__);
-+			goto err_free_sr_info;
-+		}
-+
-+		INIT_DELAYED_WORK(&sr_info->sen[i].work_reenable,
-+			irq_sr_reenable);
- 
- 		sr_info->res_name[i] = kzalloc(CLK_NAME_LEN + 1, GFP_KERNEL);
- 
-@@ -907,7 +1046,7 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 
- 		ret = request_irq(sr_info->sen[i].irq, sr_class2_irq,
- 			IRQF_DISABLED, sr_info->sen[i].name,
--                        (void *)&sr_info->sen[i]);
-+			(void *)&sr_info->sen[i]);
- 		if (ret) {
- 			dev_err(&pdev->dev, "%s: Could not install SR ISR\n",
- 						__func__);
-@@ -917,22 +1056,22 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 		sr_info->sen[i].senn_en = pdata->sr_sdata[i].senn_mod;
- 		sr_info->sen[i].senp_en = pdata->sr_sdata[i].senp_mod;
- 
--                sr_info->sen[i].reg =
--                        regulator_get(NULL, sr_info->sen[i].reg_name);
--               	if (IS_ERR(sr_info->sen[i].reg)) {
--                        ret = -EINVAL;
--	                goto err_free_irq;
--                }
-+		sr_info->sen[i].reg =
-+			regulator_get(NULL, sr_info->sen[i].reg_name);
-+		if (IS_ERR(sr_info->sen[i].reg)) {
-+			ret = -EINVAL;
-+			goto err_free_irq;
-+		}
- 
--               	/* Read current regulator value and voltage */
--	        sr_info->sen[i].init_volt_mv =
--                        regulator_get_voltage(sr_info->sen[i].reg);
-+		/* Read current regulator value and voltage */
-+		sr_info->sen[i].init_volt_mv =
-+			regulator_get_voltage(sr_info->sen[i].reg);
- 
--                dev_dbg(&pdev->dev, "%s: regulator %d, init_volt = %d\n",
--                        __func__, i, sr_info->sen[i].init_volt_mv);
-+		dev_dbg(&pdev->dev, "%s: regulator %d, init_volt = %d\n",
-+			__func__, i, sr_info->sen[i].init_volt_mv);
- 	} /* for() */
- 
--        /* set_voltage() will be used as the bottom half IRQ handler */
-+	/* set_voltage() will be used as the bottom half IRQ handler */
- 	INIT_DELAYED_WORK(&sr_info->work, set_voltage);
- 
- #ifdef CONFIG_CPU_FREQ
-@@ -943,22 +1082,24 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 	}
- #endif
- 
-+#ifdef CONFIG_DEBUG_FS
- 	/* debugfs entries */
- 	ret = sr_debugfs_entries(sr_info);
- 	if (ret)
- 		dev_warn(&pdev->dev, "%s: Debugfs entries are not created\n",
- 						__func__);
-+#endif
- 
- 	platform_set_drvdata(pdev, sr_info);
- 
- 	dev_info(&pdev->dev, "%s: Driver initialized\n", __func__);
- 
--        /* disabled_by_user used to ensure SR doesn't come on via CPUFREQ
--           scaling if user has disabled SR via debugfs on enable_on_init */
-+	/* disabled_by_user used to ensure SR doesn't come on via CPUFREQ
-+	scaling if user has disabled SR via debugfs on enable_on_init */
- 	if (pdata->enable_on_init)
- 		sr_start_vddautocomp(sr_info);
--        else
--                sr_info->disabled_by_user = 1;
-+	else
-+		sr_info->disabled_by_user = true;
- 
- 	return ret;
- 
-@@ -967,8 +1108,8 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- #endif
- 
- err_reg_put:
--        i--; /* back up i by one to walk back through the for loop */
--        regulator_put(sr_info->sen[i].reg);
-+	i--; /* back up i by one to walk back through the for loop */
-+	regulator_put(sr_info->sen[i].reg);
- err_free_irq:
- 	free_irq(sr_info->sen[i].irq, (void *)sr_info);
- err_put_clock:
-@@ -978,11 +1119,10 @@ err_unmap:
- err_release_mem:
- 	release_mem_region(res[i]->start, resource_size(res[i]));
- err_free_mem:
--        kfree(sr_info->res_name[i]);
--        /* unwind back through the for loop */
--        if (i != 0) {
--                goto err_reg_put;
--        }
-+	kfree(sr_info->res_name[i]);
-+	/* unwind back through the for loop */
-+	if (i != 0)
-+		goto err_reg_put;
- 
- err_free_sr_info:
- 	kfree(sr_info);
-@@ -1010,27 +1150,31 @@ static int __devexit am33xx_sr_remove(struct platform_device *pdev)
- #endif
- 
- 	for (i = 0; i < sr_info->no_of_sens; i++) {
--                regulator_put(sr_info->sen[i].reg);
--                irq = platform_get_irq_byname(pdev, sr_info->sen[i].name);
-+		regulator_put(sr_info->sen[i].reg);
-+		irq = platform_get_irq_byname(pdev, sr_info->sen[i].name);
- 		free_irq(irq, (void *)sr_info);
- 		clk_put(sr_info->sen[i].fck);
- 		iounmap(sr_info->sen[i].base);
- 		res[i] = platform_get_resource_byname(pdev,
- 				IORESOURCE_MEM, sr_info->sen[i].name);
- 		release_mem_region(res[i]->start, resource_size(res[i]));
--                kfree(sr_info->res_name[i]);
-+		kfree(sr_info->res_name[i]);
- 	}
- 
- 	kfree(sr_info);
- 
--        dev_info(&pdev->dev, "%s: SR has been removed\n", __func__);
-+	dev_info(&pdev->dev, "%s: SR has been removed\n", __func__);
- 	return 0;
- }
- 
-+static SIMPLE_DEV_PM_OPS(am33xx_sr_dev_pm_ops, am33xx_sr_suspend,
-+	am33xx_sr_resume);
-+
- static struct platform_driver smartreflex_driver = {
- 	.driver		= {
- 		.name	= "smartreflex",
- 		.owner	= THIS_MODULE,
-+		.pm	= &am33xx_sr_dev_pm_ops,
- 	},
- 	.remove		= am33xx_sr_remove,
- };
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index b524b47..8081818 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -1231,244 +1231,313 @@ static struct platform_device am335x_sgx = {
- /* The values below are based upon silicon characterization data.
-  * Each OPP and sensor combination potentially has different values.
-  * The values of ERR2VOLT_GAIN and ERR_MIN_LIMIT also change based on
-- * the PMIC step size.  Values have been given to cover the AM335 EVM
-+ * the PMIC step size.	Values have been given to cover the AM335 EVM
-  * (12.5mV step) and the Beaglebone (25mV step).  If the step
-  * size changes, you should update these values, and don't forget to
-  * change the step size in the platform data structure, am33xx_sr_pdata.
-  */
- 
--#define AM33XX_SR0_OPP50_CNTRL_OFFSET          0x07B8
--#define AM33XX_SR0_OPP50_EVM_ERR2VOLT_GAIN     0xC
--#define AM33XX_SR0_OPP50_EVM_ERR_MIN_LIMIT     0xF5
--#define AM33XX_SR0_OPP50_BB_ERR2VOLT_GAIN      0x6
--#define AM33XX_SR0_OPP50_BB_ERR_MIN_LIMIT      0xEA
--#define AM33XX_SR0_OPP50_ERR_MAX_LIMIT         0x2
--#define AM33XX_SR0_OPP50_ERR_WEIGHT             0x4
--#define AM33XX_SR0_OPP50_MARGIN                 0
--
--#define AM33XX_SR0_OPP100_CNTRL_OFFSET         0x07BC
--#define AM33XX_SR0_OPP100_EVM_ERR2VOLT_GAIN     0x12
--#define AM33XX_SR0_OPP100_EVM_ERR_MIN_LIMIT    0xF8
--#define AM33XX_SR0_OPP100_BB_ERR2VOLT_GAIN      0x9
--#define AM33XX_SR0_OPP100_BB_ERR_MIN_LIMIT     0xF1
--#define AM33XX_SR0_OPP100_ERR_MAX_LIMIT                0x2
--#define AM33XX_SR0_OPP100_ERR_WEIGHT            0x4
--#define AM33XX_SR0_OPP100_MARGIN                0
--
--#define AM33XX_SR1_OPP50_CNTRL_OFFSET          0x0770
--#define AM33XX_SR1_OPP50_EVM_ERR2VOLT_GAIN     0x5
--#define AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT     0xE6
--#define AM33XX_SR1_OPP50_BB_ERR2VOLT_GAIN      0x2
--#define AM33XX_SR1_OPP50_BB_ERR_MIN_LIMIT      0xC0
--#define AM33XX_SR1_OPP50_ERR_MAX_LIMIT         0x2
--#define AM33XX_SR1_OPP50_ERR_WEIGHT             0x4
--#define AM33XX_SR1_OPP50_MARGIN                 0
--
--#define AM33XX_SR1_OPP100_CNTRL_OFFSET         0x0774
--#define AM33XX_SR1_OPP100_EVM_ERR2VOLT_GAIN    0x8
--#define AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT    0xF0
--#define AM33XX_SR1_OPP100_BB_ERR2VOLT_GAIN     0x4
--#define AM33XX_SR1_OPP100_BB_ERR_MIN_LIMIT     0xDF
--#define AM33XX_SR1_OPP100_ERR_MAX_LIMIT                0x2
--#define AM33XX_SR1_OPP100_ERR_WEIGHT            0x4
--#define AM33XX_SR1_OPP100_MARGIN                0
--
--#define AM33XX_SR1_OPP120_CNTRL_OFFSET         0x0778
--#define AM33XX_SR1_OPP120_EVM_ERR2VOLT_GAIN    0xB
--#define AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT    0xF4
--#define AM33XX_SR1_OPP120_BB_ERR2VOLT_GAIN     0x5
--#define AM33XX_SR1_OPP120_BB_ERR_MIN_LIMIT     0xE6
--#define AM33XX_SR1_OPP120_ERR_MAX_LIMIT                0x2
--#define AM33XX_SR1_OPP120_ERR_WEIGHT            0x4
--#define AM33XX_SR1_OPP120_MARGIN                0
--
--#define AM33XX_SR1_OPPTURBO_CNTRL_OFFSET        0x077C
--#define AM33XX_SR1_OPPTURBO_EVM_ERR2VOLT_GAIN  0xC
--#define AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT  0xF5
--#define AM33XX_SR1_OPPTURBO_BB_ERR2VOLT_GAIN   0x6
--#define AM33XX_SR1_OPPTURBO_BB_ERR_MIN_LIMIT   0xEA
--#define AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT      0x2
--#define AM33XX_SR1_OPPTURBO_ERR_WEIGHT          0x4
--#define AM33XX_SR1_OPPTURBO_MARGIN              0
-+#define AM33XX_SR0_OPP50_CNTRL_OFFSET		0x07B8
-+#define AM33XX_SR0_OPP50_EVM_ERR_MIN_LIMIT	0xF0
-+#define AM33XX_SR0_OPP50_BB_ERR_MIN_LIMIT	0xEA
-+#define AM33XX_SR0_OPP50_ERR_MAX_LIMIT		0x2
-+#define AM33XX_SR0_OPP50_ERR_WEIGHT		0x4
-+#define AM33XX_SR0_OPP50_MARGIN			0
-+
-+#define AM33XX_SR0_OPP100_CNTRL_OFFSET		0x07BC
-+#define AM33XX_SR0_OPP100_EVM_ERR_MIN_LIMIT	0xF0
-+#define AM33XX_SR0_OPP100_BB_ERR_MIN_LIMIT	0xF1
-+#define AM33XX_SR0_OPP100_ERR_MAX_LIMIT		0x2
-+#define AM33XX_SR0_OPP100_ERR_WEIGHT		0x4
-+#define AM33XX_SR0_OPP100_MARGIN		0
-+
-+#define AM33XX_SR1_OPP50_CNTRL_OFFSET		0x0770
-+#define AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT	0xFA
-+#define AM33XX_SR1_OPP50_BB_ERR_MIN_LIMIT	0xC0
-+#define AM33XX_SR1_OPP50_ERR_MAX_LIMIT		0x2
-+#define AM33XX_SR1_OPP50_ERR_WEIGHT		0x4
-+#define AM33XX_SR1_OPP50_MARGIN			0
-+
-+#define AM33XX_SR1_OPP100_CNTRL_OFFSET		0x0774
-+#define AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT	0xFB
-+#define AM33XX_SR1_OPP100_BB_ERR_MIN_LIMIT	0xDF
-+#define AM33XX_SR1_OPP100_ERR_MAX_LIMIT		0x2
-+#define AM33XX_SR1_OPP100_ERR_WEIGHT		0x4
-+#define AM33XX_SR1_OPP100_MARGIN		0
-+
-+#define AM33XX_SR1_OPP120_CNTRL_OFFSET		0x0778
-+#define AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT	0xFC
-+#define AM33XX_SR1_OPP120_BB_ERR_MIN_LIMIT	0xE6
-+#define AM33XX_SR1_OPP120_ERR_MAX_LIMIT		0x2
-+#define AM33XX_SR1_OPP120_ERR_WEIGHT		0x7
-+#define AM33XX_SR1_OPP120_MARGIN		0
-+
-+#define AM33XX_SR1_OPPTURBO_CNTRL_OFFSET	0x077C
-+#define AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT	0xFD
-+#define AM33XX_SR1_OPPTURBO_BB_ERR_MIN_LIMIT	0xEA
-+#define AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT	0x2
-+#define AM33XX_SR1_OPPTURBO_ERR_WEIGHT		0x7
-+#define AM33XX_SR1_OPPTURBO_MARGIN		0
-+
-+/* bits 31:16 = SenP margin; bit 15:0 = SenN margin */
-+
-+#define AM33XX_SR1_OPPNITRO_MARGIN		0x018B019A
- 
- /* the voltages and frequencies should probably be defined in opp3xxx_data.c.
-    Once SR is integrated to the mainline driver, and voltdm is working
-    correctly in AM335x, these can be removed.  */
--#define AM33XX_VDD_MPU_OPP50_UV                950000
--#define AM33XX_VDD_MPU_OPP100_UV       1100000
--#define AM33XX_VDD_MPU_OPP120_UV       1200000
--#define AM33XX_VDD_MPU_OPPTURBO_UV     1260000
--#define AM33XX_VDD_CORE_OPP50_UV        950000
--#define AM33XX_VDD_CORE_OPP100_UV       1100000
--
--#define AM33XX_VDD_MPU_OPP50_FREQ      275000000
--#define AM33XX_VDD_MPU_OPP100_FREQ     500000000
--#define AM33XX_VDD_MPU_OPP120_FREQ     600000000
--#define AM33XX_VDD_MPU_OPPTURBO_FREQ   720000000
-+#define AM33XX_VDD_MPU_OPP50_UV			950000
-+#define AM33XX_VDD_MPU_OPP100_UV		1100000
-+#define AM33XX_VDD_MPU_OPP120_UV		1200000
-+#define AM33XX_VDD_MPU_OPPTURBO_UV		1260000
-+#define AM33XX_VDD_CORE_OPP50_UV		950000
-+#define AM33XX_VDD_CORE_OPP100_UV		1100000
-+
-+#define AM33XX_VDD_MPU_OPP50_FREQ		275000000
-+#define AM33XX_VDD_MPU_OPP100_FREQ		500000000
-+#define AM33XX_VDD_MPU_OPP120_FREQ		600000000
-+#define AM33XX_VDD_MPU_OPPTURBO_FREQ		720000000
-+
-+#define AM33XX_ES2_0_VDD_MPU_OPP50_UV		950000
-+#define AM33XX_ES2_0_VDD_MPU_OPP100_UV		1100000
-+#define AM33XX_ES2_0_VDD_MPU_OPP120_UV		1200000
-+#define AM33XX_ES2_0_VDD_MPU_OPPTURBO_UV	1260000
-+#define AM33XX_ES2_0_VDD_MPU_OPPNITRO_UV	1320000
-+
-+#define AM33XX_ES2_0_VDD_MPU_OPP50_FREQ		300000000
-+#define AM33XX_ES2_0_VDD_MPU_OPP100_FREQ	600000000
-+#define AM33XX_ES2_0_VDD_MPU_OPP120_FREQ	720000000
-+#define AM33XX_ES2_0_VDD_MPU_OPPTURBO_FREQ	800000000
-+#define AM33XX_ES2_0_VDD_MPU_OPPNITRO_FREQ	1000000000
-+
-+static struct am33xx_sr_opp_data sr1_opp_data_2_0[] = {
-+	{
-+		.efuse_offs	= AM33XX_SR1_OPP50_CNTRL_OFFSET,
-+		.e2v_gain	= 0,
-+		.err_minlimit	= AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit	= AM33XX_SR1_OPP50_ERR_MAX_LIMIT,
-+		.err_weight	= AM33XX_SR1_OPP50_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPP50_MARGIN,
-+		.nominal_volt	= AM33XX_ES2_0_VDD_MPU_OPP50_UV,
-+		.frequency	= AM33XX_ES2_0_VDD_MPU_OPP50_FREQ,
-+	},
-+	{
-+		.efuse_offs	= AM33XX_SR1_OPP100_CNTRL_OFFSET,
-+		.e2v_gain	= 0,
-+		.err_minlimit	= AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit	= AM33XX_SR1_OPP100_ERR_MAX_LIMIT,
-+		.err_weight	= AM33XX_SR1_OPP100_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPP100_MARGIN,
-+		.nominal_volt	= AM33XX_ES2_0_VDD_MPU_OPP100_UV,
-+		.frequency	= AM33XX_ES2_0_VDD_MPU_OPP100_FREQ,
-+	},
-+	{
-+		.efuse_offs	= AM33XX_SR1_OPP120_CNTRL_OFFSET,
-+		.e2v_gain	= 0,
-+		.err_minlimit	= AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit	= AM33XX_SR1_OPP120_ERR_MAX_LIMIT,
-+		.err_weight	= AM33XX_SR1_OPP120_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPP120_MARGIN,
-+		.nominal_volt	= AM33XX_ES2_0_VDD_MPU_OPP120_UV,
-+		.frequency	= AM33XX_ES2_0_VDD_MPU_OPP120_FREQ,
-+	},
-+	{
-+		.efuse_offs     = AM33XX_SR1_OPPTURBO_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR1_OPPTURBO_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPPTURBO_MARGIN,
-+		.nominal_volt	= AM33XX_ES2_0_VDD_MPU_OPPTURBO_UV,
-+		.frequency	= AM33XX_ES2_0_VDD_MPU_OPPTURBO_FREQ,
-+	},
-+	{
-+		/* NITRO can use the TURBO data, except for margin */
-+		.efuse_offs     = AM33XX_SR1_OPPTURBO_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR1_OPPTURBO_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPPNITRO_MARGIN,
-+		.nominal_volt	= AM33XX_ES2_0_VDD_MPU_OPPNITRO_UV,
-+		.frequency	= AM33XX_ES2_0_VDD_MPU_OPPNITRO_FREQ,
-+	},
-+};
- 
- static struct am33xx_sr_opp_data sr1_opp_data[] = {
--        {
--                .efuse_offs    = AM33XX_SR1_OPP50_CNTRL_OFFSET,
--               .e2v_gain       = AM33XX_SR1_OPP50_EVM_ERR2VOLT_GAIN,
--               .err_minlimit   = AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT,
--               .err_maxlimit   = AM33XX_SR1_OPP50_ERR_MAX_LIMIT,
--               .err_weight     = AM33XX_SR1_OPP50_ERR_WEIGHT,
--                .margin         = AM33XX_SR1_OPP50_MARGIN,
--                .nominal_volt   = AM33XX_VDD_MPU_OPP50_UV,
--                .frequency      = AM33XX_VDD_MPU_OPP50_FREQ,
--        },
--        {
--                .efuse_offs    = AM33XX_SR1_OPP100_CNTRL_OFFSET,
--               .e2v_gain       = AM33XX_SR1_OPP100_EVM_ERR2VOLT_GAIN,
--               .err_minlimit   = AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT,
--               .err_maxlimit   = AM33XX_SR1_OPP100_ERR_MAX_LIMIT,
--               .err_weight     = AM33XX_SR1_OPP100_ERR_WEIGHT,
--                .margin         = AM33XX_SR1_OPP100_MARGIN,
--                .nominal_volt   = AM33XX_VDD_MPU_OPP100_UV,
--                .frequency      = AM33XX_VDD_MPU_OPP100_FREQ,
--        },
--        {
--                .efuse_offs    = AM33XX_SR1_OPP120_CNTRL_OFFSET,
--               .e2v_gain       = AM33XX_SR1_OPP120_EVM_ERR2VOLT_GAIN,
--               .err_minlimit   = AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT,
--               .err_maxlimit   = AM33XX_SR1_OPP120_ERR_MAX_LIMIT,
--               .err_weight     = AM33XX_SR1_OPP120_ERR_WEIGHT,
--                .margin         = AM33XX_SR1_OPP120_MARGIN,
--                .nominal_volt   = AM33XX_VDD_MPU_OPP120_UV,
--                .frequency      = AM33XX_VDD_MPU_OPP120_FREQ,
--        },
--        {
--                .efuse_offs    = AM33XX_SR1_OPPTURBO_CNTRL_OFFSET,
--               .e2v_gain       = AM33XX_SR1_OPPTURBO_EVM_ERR2VOLT_GAIN,
--               .err_minlimit   = AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT,
--               .err_maxlimit   = AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT,
--               .err_weight     = AM33XX_SR1_OPPTURBO_ERR_WEIGHT,
--                .margin         = AM33XX_SR1_OPPTURBO_MARGIN,
--                .nominal_volt   = AM33XX_VDD_MPU_OPPTURBO_UV,
--                .frequency      = AM33XX_VDD_MPU_OPPTURBO_FREQ,
--        },
-+	{
-+		.efuse_offs     = AM33XX_SR1_OPP50_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR1_OPP50_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR1_OPP50_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPP50_MARGIN,
-+		.nominal_volt	= AM33XX_VDD_MPU_OPP50_UV,
-+		.frequency	= AM33XX_VDD_MPU_OPP50_FREQ,
-+	},
-+	{
-+		.efuse_offs     = AM33XX_SR1_OPP100_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR1_OPP100_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR1_OPP100_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPP100_MARGIN,
-+		.nominal_volt	= AM33XX_VDD_MPU_OPP100_UV,
-+		.frequency	= AM33XX_VDD_MPU_OPP100_FREQ,
-+	},
-+	{
-+		.efuse_offs	= AM33XX_SR1_OPP120_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR1_OPP120_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR1_OPP120_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPP120_MARGIN,
-+		.nominal_volt	= AM33XX_VDD_MPU_OPP120_UV,
-+		.frequency	= AM33XX_VDD_MPU_OPP120_FREQ,
-+	},
-+	{
-+		.efuse_offs	= AM33XX_SR1_OPPTURBO_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR1_OPPTURBO_ERR_WEIGHT,
-+		.margin		= AM33XX_SR1_OPPTURBO_MARGIN,
-+		.nominal_volt	= AM33XX_VDD_MPU_OPPTURBO_UV,
-+		.frequency	= AM33XX_VDD_MPU_OPPTURBO_FREQ,
-+	},
- };
- 
- static struct am33xx_sr_opp_data sr0_opp_data[] = {
--        {
--                .efuse_offs    = AM33XX_SR0_OPP50_CNTRL_OFFSET,
--               .e2v_gain       = AM33XX_SR0_OPP50_EVM_ERR2VOLT_GAIN,
--               .err_minlimit   = AM33XX_SR0_OPP50_EVM_ERR_MIN_LIMIT,
--               .err_maxlimit   = AM33XX_SR0_OPP50_ERR_MAX_LIMIT,
--               .err_weight     = AM33XX_SR0_OPP50_ERR_WEIGHT,
--                .margin         = AM33XX_SR0_OPP50_MARGIN,
--                .nominal_volt   = AM33XX_VDD_CORE_OPP50_UV,
--        },
--        {
--                .efuse_offs    = AM33XX_SR0_OPP100_CNTRL_OFFSET,
--               .e2v_gain       = AM33XX_SR0_OPP100_EVM_ERR2VOLT_GAIN,
--               .err_minlimit   = AM33XX_SR0_OPP100_EVM_ERR_MIN_LIMIT,
--               .err_maxlimit   = AM33XX_SR0_OPP100_ERR_MAX_LIMIT,
--               .err_weight     = AM33XX_SR0_OPP100_ERR_WEIGHT,
--                .margin         = AM33XX_SR0_OPP100_MARGIN,
--                .nominal_volt   = AM33XX_VDD_CORE_OPP100_UV,
--        },
-+	{
-+		.efuse_offs     = AM33XX_SR0_OPP50_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR0_OPP50_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR0_OPP50_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR0_OPP50_ERR_WEIGHT,
-+		.margin		= AM33XX_SR0_OPP50_MARGIN,
-+		.nominal_volt	= AM33XX_VDD_CORE_OPP50_UV,
-+	},
-+	{
-+		.efuse_offs     = AM33XX_SR0_OPP100_CNTRL_OFFSET,
-+		.e2v_gain       = 0,
-+		.err_minlimit   = AM33XX_SR0_OPP100_EVM_ERR_MIN_LIMIT,
-+		.err_maxlimit   = AM33XX_SR0_OPP100_ERR_MAX_LIMIT,
-+		.err_weight     = AM33XX_SR0_OPP100_ERR_WEIGHT,
-+		.margin		= AM33XX_SR0_OPP100_MARGIN,
-+		.nominal_volt	= AM33XX_VDD_CORE_OPP100_UV,
-+	},
-+};
-+
-+static struct am33xx_sr_sdata sr_sensor_data_2_0[] = {
-+	{
-+		.sr_opp_data	= sr0_opp_data,
-+		/* note that OPP50 is NOT used in Linux kernel for AM335x */
-+		.no_of_opps	= 0x2,
-+		.default_opp	= 0x1,
-+		.senn_mod       = 0x1,
-+		.senp_mod       = 0x1,
-+	},
-+	{
-+		.sr_opp_data    = sr1_opp_data_2_0,
-+		/* the opp data below should be determined
-+		   dynamically during SR probe */
-+		.no_of_opps	= 0x5,
-+		.default_opp	= 0x3,
-+		.senn_mod       = 0x1,
-+		.senp_mod       = 0x1,
-+	},
- };
- 
- static struct am33xx_sr_sdata sr_sensor_data[] = {
--       {
--                .sr_opp_data    = sr0_opp_data,
--                /* note that OPP50 is NOT used in Linux kernel for AM335x */
--                .no_of_opps     = 0x2,
--                .default_opp    = 0x1,
--               .senn_mod       = 0x1,
--               .senp_mod       = 0x1,
--       },
--       {
--               .sr_opp_data    = sr1_opp_data,
--                /* the opp data below should be determined
--                   dynamically during SR probe */
--                .no_of_opps     = 0x4,
--                .default_opp    = 0x3,
--               .senn_mod       = 0x1,
--               .senp_mod       = 0x1,
--       },
-+	{
-+		.sr_opp_data	= sr0_opp_data,
-+		/* note that OPP50 is NOT used in Linux kernel for AM335x */
-+		.no_of_opps	= 0x2,
-+		.default_opp	= 0x1,
-+		.senn_mod       = 0x1,
-+		.senp_mod       = 0x1,
-+	},
-+	{
-+		.sr_opp_data    = sr1_opp_data,
-+		/* the opp data below should be determined
-+		   dynamically during SR probe */
-+		.no_of_opps	= 0x4,
-+		.default_opp	= 0x3,
-+		.senn_mod       = 0x1,
-+		.senp_mod       = 0x1,
-+	},
- };
- 
- static struct am33xx_sr_platform_data am33xx_sr_pdata = {
--       .vd_name[0]             = "vdd_core",
--        .vd_name[1]             = "vdd_mpu",
--       .ip_type                = 2,
--        .irq_delay              = 1000,
--       .no_of_vds              = 2,
--       .no_of_sens             = ARRAY_SIZE(sr_sensor_data),
--       .vstep_size_uv          = 12500,
--       .enable_on_init         = true,
--       .sr_sdata               = sr_sensor_data,
-+	.vd_name[0]		= "vdd_core",
-+	.vd_name[1]		= "vdd_mpu",
-+	.ip_type		= 2,
-+	.irq_delay		= 1000,
-+	.no_of_vds		= 2,
-+	.no_of_sens		= ARRAY_SIZE(sr_sensor_data),
-+	.vstep_size_uv		= 12500,
-+	.enable_on_init		= true,
-+	.sr_sdata		= sr_sensor_data,
- };
- 
- static struct resource am33xx_sr_resources[] = {
--       {
--               .name   =       "smartreflex0",
--               .start  =       AM33XX_SR0_BASE,
--               .end    =       AM33XX_SR0_BASE + SZ_4K - 1,
--               .flags  =       IORESOURCE_MEM,
--       },
--       {
--               .name   =       "smartreflex0",
--               .start  =       AM33XX_IRQ_SMARTREFLEX0,
--               .end    =       AM33XX_IRQ_SMARTREFLEX0,
--               .flags  =       IORESOURCE_IRQ,
--       },
--       {
--               .name   =       "smartreflex1",
--               .start  =       AM33XX_SR1_BASE,
--               .end    =       AM33XX_SR1_BASE + SZ_4K - 1,
--               .flags  =       IORESOURCE_MEM,
--       },
--       {
--               .name   =       "smartreflex1",
--               .start  =       AM33XX_IRQ_SMARTREFLEX1,
--               .end    =       AM33XX_IRQ_SMARTREFLEX1,
--               .flags  =       IORESOURCE_IRQ,
--       },
-+	{
-+		.name   =       "smartreflex0",
-+		.start  =       AM33XX_SR0_BASE,
-+		.end    =       AM33XX_SR0_BASE + SZ_4K - 1,
-+		.flags  =       IORESOURCE_MEM,
-+	},
-+	{
-+		.name   =       "smartreflex0",
-+		.start  =       AM33XX_IRQ_SMARTREFLEX0,
-+		.end    =       AM33XX_IRQ_SMARTREFLEX0,
-+		.flags  =       IORESOURCE_IRQ,
-+	},
-+	{
-+		.name   =       "smartreflex1",
-+		.start  =       AM33XX_SR1_BASE,
-+		.end    =       AM33XX_SR1_BASE + SZ_4K - 1,
-+		.flags  =       IORESOURCE_MEM,
-+	},
-+	{
-+		.name   =       "smartreflex1",
-+		.start  =       AM33XX_IRQ_SMARTREFLEX1,
-+		.end    =       AM33XX_IRQ_SMARTREFLEX1,
-+		.flags  =       IORESOURCE_IRQ,
-+	},
- };
- 
- /* VCORE for SR regulator init */
- static struct platform_device am33xx_sr_device = {
--       .name           = "smartreflex",
--       .id             = -1,
--       .num_resources  = ARRAY_SIZE(am33xx_sr_resources),
--       .resource       = am33xx_sr_resources,
--       .dev = {
--               .platform_data = &am33xx_sr_pdata,
--       },
-+	.name	       = "smartreflex",
-+	.id	       = -1,
-+	.num_resources  = ARRAY_SIZE(am33xx_sr_resources),
-+	.resource       = am33xx_sr_resources,
-+	.dev = {
-+	       .platform_data = &am33xx_sr_pdata,
-+	},
- };
- 
- void __init am33xx_sr_init(void)
- {
--        /* For beaglebone, update voltage step size and related parameters
--           appropriately.  All other AM33XX platforms are good with the
--           structure defaults as initialized above. */
--        if ((am33xx_evmid == BEAGLE_BONE_OLD) ||
--                        (am33xx_evmid == BEAGLE_BONE_A3)) {
--                printk(KERN_ERR "address of pdata = %08x\n", (u32)&am33xx_sr_pdata);
--                am33xx_sr_pdata.vstep_size_uv = 25000;
--                /* CORE */
--                sr0_opp_data[0].e2v_gain     = AM33XX_SR0_OPP50_BB_ERR2VOLT_GAIN;
--                sr0_opp_data[0].err_minlimit = AM33XX_SR0_OPP50_BB_ERR_MIN_LIMIT;
--                sr0_opp_data[1].e2v_gain     = AM33XX_SR0_OPP100_BB_ERR2VOLT_GAIN;
--                sr0_opp_data[1].err_minlimit = AM33XX_SR0_OPP100_BB_ERR_MIN_LIMIT;
--                /* MPU */
--                sr1_opp_data[0].e2v_gain     = AM33XX_SR1_OPP50_BB_ERR2VOLT_GAIN;
--                sr1_opp_data[0].err_minlimit = AM33XX_SR1_OPP50_BB_ERR_MIN_LIMIT;
--                sr1_opp_data[1].e2v_gain     = AM33XX_SR1_OPP100_BB_ERR2VOLT_GAIN;
--                sr1_opp_data[1].err_minlimit = AM33XX_SR1_OPP100_BB_ERR_MIN_LIMIT;
--                sr1_opp_data[2].e2v_gain     = AM33XX_SR1_OPP120_BB_ERR2VOLT_GAIN;
--                sr1_opp_data[2].err_minlimit = AM33XX_SR1_OPP120_BB_ERR_MIN_LIMIT;
--                sr1_opp_data[3].e2v_gain     = AM33XX_SR1_OPPTURBO_BB_ERR2VOLT_GAIN;
--                sr1_opp_data[3].err_minlimit = AM33XX_SR1_OPPTURBO_BB_ERR_MIN_LIMIT;
--        }
--
--       if (platform_device_register(&am33xx_sr_device))
--               printk(KERN_ERR "failed to register am33xx_sr device\n");
--       else
--               printk(KERN_INFO "registered am33xx_sr device\n");
-+	if (omap_rev() != AM335X_REV_ES1_0)
-+		am33xx_sr_pdata.sr_sdata = sr_sensor_data_2_0;
-+
-+	/* For beaglebone, update voltage step size and related parameters
-+	   appropriately.  All other AM33XX platforms are good with the
-+	   structure defaults as initialized above. */
-+	if ((am33xx_evmid == BEAGLE_BONE_OLD) ||
-+			(am33xx_evmid == BEAGLE_BONE_A3)) {
-+		printk(KERN_ERR "address of pdata = %08x\n",
-+			(u32)&am33xx_sr_pdata);
-+
-+		am33xx_sr_pdata.vstep_size_uv = 25000;
-+	}
-+
-+	if (platform_device_register(&am33xx_sr_device))
-+		printk(KERN_ERR "failed to register am33xx_sr device\n");
-+	else
-+		printk(KERN_INFO "registered am33xx_sr device\n");
- }
- #else
- inline void am33xx_sr_init(void) {}
-diff --git a/arch/arm/plat-omap/include/plat/smartreflex.h b/arch/arm/plat-omap/include/plat/smartreflex.h
-index 76c1ff7..d837755 100644
---- a/arch/arm/plat-omap/include/plat/smartreflex.h
-+++ b/arch/arm/plat-omap/include/plat/smartreflex.h
-@@ -238,14 +238,14 @@ int sr_register_class(struct omap_sr_class_data *class_data);
- 
- #ifdef CONFIG_AM33XX_SMARTREFLEX
- 
--#define SR_CORE                         (0)
--#define SR_MPU                          (1)
-+#define SR_CORE				(0)
-+#define SR_MPU				(1)
- #define SRCLKLENGTH_125MHZ_SYSCLK	(0x78 << 12)
--#define GAIN_MAXLIMIT                   (16)
--#define R_MAXLIMIT                      (256)
--#define MAX_SENSORS                     2
-+#define GAIN_MAXLIMIT			(16)
-+#define R_MAXLIMIT			(256)
-+#define MAX_SENSORS			(2)
- /* GG: eventually this should be determined at runtime */
--#define AM33XX_OPP_COUNT                4
-+#define AM33XX_OPP_COUNT		(5)
- 
- /**
-  * struct am33xx_sr_opp_data	- Smartreflex data per OPP
-@@ -264,17 +264,17 @@ int sr_register_class(struct omap_sr_class_data *class_data);
-  */
- struct am33xx_sr_opp_data {
- 	u32	efuse_offs;
--        u32     nvalue;
--        u32     adj_nvalue;
-+	u32     nvalue;
-+	u32     adj_nvalue;
- 	s32	e2v_gain;
- 	u32	err_weight;
- 	u32	err_minlimit;
- 	u32	err_maxlimit;
--        s32     margin;
--        u32     nominal_volt; /* nominal_volt and frequency may be removed
--                                 once am33xx voltdm layer works */
--        u32     frequency;
--        u32     opp_id;
-+	s32     margin;
-+	u32     nominal_volt; /* nominal_volt and frequency may be removed
-+				once am33xx voltdm layer works */
-+	u32     frequency;
-+	u32     opp_id;
- };
- 
- /**
-@@ -290,50 +290,54 @@ struct am33xx_sr_opp_data {
-  */
- struct am33xx_sr_sdata {
- 	struct am33xx_sr_opp_data *sr_opp_data;
--        u32     no_of_opps;
--        u32     default_opp;
-+	u32     no_of_opps;
-+	u32     default_opp;
- 	u32	senn_mod;
- 	u32	senp_mod;
- };
- 
- struct am33xx_sr_sensor {
--        u32                             sr_id;
-+	u32                             sr_id;
- 	u32			        irq;
- 	u32			        irq_status;
- 	u32			        senn_en;
- 	u32			        senp_en;
- 	char			        *name;
--        char                            *reg_name;
-+	char                            *reg_name;
- 	void __iomem		        *base;
--        int				init_volt_mv;
--        int                             curr_opp;
--        u32                             no_of_opps;
--        struct delayed_work             work_reenable;
--        struct regulator		*reg;
--        struct am33xx_sr_opp_data       opp_data[AM33XX_OPP_COUNT];
-+	int				init_volt_mv;
-+	int                             curr_opp;
-+	u32                             no_of_opps;
-+	int                             state;
-+	s8                              avg_error_nom;
-+	int                             saved_volt;
-+	struct delayed_work             work_reenable;
-+	struct regulator		*reg;
-+	struct am33xx_sr_opp_data       opp_data[AM33XX_OPP_COUNT];
- 	struct clk		        *fck;
--        struct voltagedomain		*voltdm;
--        struct omap_volt_data           *volt_data;
-+	struct voltagedomain		*voltdm;
-+	struct omap_volt_data           *volt_data;
- };
- 
- struct am33xx_sr {
--	u32				autocomp_active;
-+	bool				autocomp_active;
-+	bool                            is_suspended;
- 	u32				sens_per_vd;
--        u32                             no_of_sens;
--        u32                             no_of_vds;
-+	u32                             no_of_sens;
-+	u32                             no_of_vds;
- 	u32				ip_type;
--        u32				irq_delay;
--        u32                             disabled_by_user;
-+	u32				irq_delay;
-+	bool                            disabled_by_user;
- 	int				uvoltage_step_size;
--        char                            *res_name[MAX_SENSORS];
-+	char                            *res_name[MAX_SENSORS];
- #ifdef CONFIG_CPU_FREQ
- 	struct notifier_block	        freq_transition;
- #endif
--	/*struct work_struct		work;*/
--        struct delayed_work             work;
-+	struct delayed_work             work;
- 	struct sr_platform_data		*sr_data;
- 	struct am33xx_sr_sensor		sen[MAX_SENSORS];
- 	struct platform_device		*pdev;
-+	struct list_head                node;
- };
- 
- /**
-@@ -354,7 +358,7 @@ struct am33xx_sr_platform_data {
- 	struct am33xx_sr_sdata	*sr_sdata;
- 	char			*vd_name[2];
- 	u32			ip_type;
--        u32                     irq_delay;
-+	u32                     irq_delay;
- 	u32			no_of_vds;
- 	u32			no_of_sens;
- 	u32			vstep_size_uv;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am3358-sk-modified-WLAN-enable-and-irq-to-match-boar.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am3358-sk-modified-WLAN-enable-and-irq-to-match-boar.patch
deleted file mode 100644
index 25d2fdf..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am3358-sk-modified-WLAN-enable-and-irq-to-match-boar.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 69c82f68876d24e798388fc053c8d6766236ac65 Mon Sep 17 00:00:00 2001
-From: Vita Preskovsky <vitap at ti.com>
-Date: Thu, 28 Jun 2012 14:53:12 +0300
-Subject: [PATCH] am3358-sk: modified WLAN enable and irq to match board revision 1.2
-	* 1. WLAN enable and irq are modified to match board revision 1.2
-	  2. support suspend/resume for SK board
-
-Upstream-Status: Pending
-
-Signed-off-by: Vita Preskovsky <vitap at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |   11 +++++++----
- 1 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 64f7547..6ae4e68 100755
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -905,7 +905,7 @@ static struct pinmux_config ecap2_pin_mux[] = {
-
- #define AM335XEVM_WLAN_PMENA_GPIO	GPIO_TO_PIN(1, 30)
- #define AM335XEVM_WLAN_IRQ_GPIO		GPIO_TO_PIN(3, 17)
--#define AM335XEVM_SK_WLAN_IRQ_GPIO      GPIO_TO_PIN(1, 29)
-+#define AM335XEVM_SK_WLAN_IRQ_GPIO      GPIO_TO_PIN(0, 31)
-
- struct wl12xx_platform_data am335xevm_wlan_data = {
-	.irq = OMAP_GPIO_IRQ(AM335XEVM_WLAN_IRQ_GPIO),
-@@ -941,8 +941,8 @@ static struct pinmux_config wl12xx_pin_mux[] = {
-  };
-
- static struct pinmux_config wl12xx_pin_mux_sk[] = {
--	{"gpmc_wpn.gpio0_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
--	{"gpmc_csn0.gpio1_29", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_wpn.gpio0_31", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_csn0.gpio1_29", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP},
-	{"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-	{NULL, 0},
- };
-@@ -1618,6 +1618,7 @@ static void mmc1_wl12xx_init(int evm_id, int profile)
-	am335x_mmc[1].name = "wl1271";
-	am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD;
-	am335x_mmc[1].nonremovable = true;
-+	am335x_mmc[1].pm_caps = MMC_PM_KEEP_POWER;
-	am335x_mmc[1].gpio_cd = -EINVAL;
-	am335x_mmc[1].gpio_wp = -EINVAL;
-	am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
-@@ -1674,10 +1675,12 @@ static void wl12xx_init(int evm_id, int profile)
-	int ret;
-
-	if (evm_id == EVM_SK) {
--		am335xevm_wlan_data.wlan_enable_gpio = GPIO_TO_PIN(0, 31);
-+		am335xevm_wlan_data.wlan_enable_gpio = GPIO_TO_PIN(1, 29);
-		am335xevm_wlan_data.bt_enable_gpio = GPIO_TO_PIN(3, 21);
-		am335xevm_wlan_data.irq =
-				OMAP_GPIO_IRQ(AM335XEVM_SK_WLAN_IRQ_GPIO);
-+		am335xevm_wlan_data.platform_quirks =
-+				WL12XX_PLATFORM_QUIRK_EDGE_IRQ;
-		setup_pin_mux(wl12xx_pin_mux_sk);
-	} else {
-		setup_pin_mux(wl12xx_pin_mux);
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-crypto-driver-settings-to-defconfig.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-crypto-driver-settings-to-defconfig.patch
deleted file mode 100644
index bb48d69..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-crypto-driver-settings-to-defconfig.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From cf67829e0c0cccb06a9f33d40fe43a122e8a5178 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Fri, 8 Jun 2012 13:54:13 -0500
-Subject: [PATCH] Add crypto driver settings to defconfig
-
-* Add Crypto Driver and configuration to defconfig
----
- arch/arm/configs/am335x_evm_defconfig |   40 +++++++++++++++++++++++----------
- 1 files changed, 28 insertions(+), 12 deletions(-)
- mode change 100644 => 100755 arch/arm/configs/am335x_evm_defconfig
-
-diff --git a/arch/arm/configs/am335x_evm_defconfig b/arch/arm/configs/am335x_evm_defconfig
-old mode 100644
-new mode 100755
-index 9f45503..46528c4
---- a/arch/arm/configs/am335x_evm_defconfig
-+++ b/arch/arm/configs/am335x_evm_defconfig
-@@ -1278,7 +1278,9 @@ CONFIG_SERIAL_OMAP_CONSOLE=y
- # CONFIG_SERIAL_XILINX_PS_UART is not set
- # CONFIG_HVC_DCC is not set
- # CONFIG_IPMI_HANDLER is not set
--# CONFIG_HW_RANDOM is not set
-+CONFIG_HW_RANDOM=y
-+# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-+CONFIG_HW_RANDOM_OMAP4=y
- # CONFIG_R3964 is not set
- # CONFIG_RAW_DRIVER is not set
- # CONFIG_TCG_TPM is not set
-@@ -2473,36 +2475,38 @@ CONFIG_CRYPTO=y
- #
- CONFIG_CRYPTO_ALGAPI=y
- CONFIG_CRYPTO_ALGAPI2=y
-+CONFIG_CRYPTO_AEAD=y
- CONFIG_CRYPTO_AEAD2=y
- CONFIG_CRYPTO_BLKCIPHER=y
- CONFIG_CRYPTO_BLKCIPHER2=y
- CONFIG_CRYPTO_HASH=y
- CONFIG_CRYPTO_HASH2=y
-+CONFIG_CRYPTO_RNG=y
- CONFIG_CRYPTO_RNG2=y
- CONFIG_CRYPTO_PCOMP2=y
- CONFIG_CRYPTO_MANAGER=y
- CONFIG_CRYPTO_MANAGER2=y
- # CONFIG_CRYPTO_USER is not set
--CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-+# CONFIG_CRYPTO_MANAGER_DISABLE_TESTS is not set
- # CONFIG_CRYPTO_GF128MUL is not set
- # CONFIG_CRYPTO_NULL is not set
- CONFIG_CRYPTO_WORKQUEUE=y
- # CONFIG_CRYPTO_CRYPTD is not set
- # CONFIG_CRYPTO_AUTHENC is not set
--# CONFIG_CRYPTO_TEST is not set
-+CONFIG_CRYPTO_TEST=m
- 
- #
- # Authenticated Encryption with Associated Data
- #
- # CONFIG_CRYPTO_CCM is not set
- # CONFIG_CRYPTO_GCM is not set
--# CONFIG_CRYPTO_SEQIV is not set
-+CONFIG_CRYPTO_SEQIV=y
- 
- #
- # Block modes
- #
--# CONFIG_CRYPTO_CBC is not set
--# CONFIG_CRYPTO_CTR is not set
-+CONFIG_CRYPTO_CBC=y
-+CONFIG_CRYPTO_CTR=y
- # CONFIG_CRYPTO_CTS is not set
- CONFIG_CRYPTO_ECB=y
- # CONFIG_CRYPTO_LRW is not set
-@@ -2512,7 +2516,7 @@ CONFIG_CRYPTO_ECB=y
- #
- # Hash modes
- #
--# CONFIG_CRYPTO_HMAC is not set
-+CONFIG_CRYPTO_HMAC=y
- # CONFIG_CRYPTO_XCBC is not set
- # CONFIG_CRYPTO_VMAC is not set
- 
-@@ -2522,14 +2526,14 @@ CONFIG_CRYPTO_ECB=y
- CONFIG_CRYPTO_CRC32C=y
- # CONFIG_CRYPTO_GHASH is not set
- # CONFIG_CRYPTO_MD4 is not set
--# CONFIG_CRYPTO_MD5 is not set
-+CONFIG_CRYPTO_MD5=y
- CONFIG_CRYPTO_MICHAEL_MIC=y
- # CONFIG_CRYPTO_RMD128 is not set
- # CONFIG_CRYPTO_RMD160 is not set
- # CONFIG_CRYPTO_RMD256 is not set
- # CONFIG_CRYPTO_RMD320 is not set
--# CONFIG_CRYPTO_SHA1 is not set
--# CONFIG_CRYPTO_SHA256 is not set
-+CONFIG_CRYPTO_SHA1=y
-+CONFIG_CRYPTO_SHA256=y
- # CONFIG_CRYPTO_SHA512 is not set
- # CONFIG_CRYPTO_TGR192 is not set
- # CONFIG_CRYPTO_WP512 is not set
-@@ -2544,7 +2548,7 @@ CONFIG_CRYPTO_ARC4=y
- # CONFIG_CRYPTO_CAMELLIA is not set
- # CONFIG_CRYPTO_CAST5 is not set
- # CONFIG_CRYPTO_CAST6 is not set
--# CONFIG_CRYPTO_DES is not set
-+CONFIG_CRYPTO_DES=y
- # CONFIG_CRYPTO_FCRYPT is not set
- # CONFIG_CRYPTO_KHAZAD is not set
- # CONFIG_CRYPTO_SALSA20 is not set
-@@ -2566,7 +2570,19 @@ CONFIG_CRYPTO_LZO=y
- # CONFIG_CRYPTO_ANSI_CPRNG is not set
- # CONFIG_CRYPTO_USER_API_HASH is not set
- # CONFIG_CRYPTO_USER_API_SKCIPHER is not set
--# CONFIG_CRYPTO_HW is not set
-+CONFIG_CRYPTO_HW=y
-+CONFIG_CRYPTO_DEV_OMAP4_AES=y
-+CONFIG_CRYPTO_DEV_OMAP4_SHAM=y
-+
-+#
-+# OCF Configuration
-+#
-+CONFIG_OCF_OCF=y
-+# CONFIG_OCF_RANDOMHARVEST is not set
-+CONFIG_OCF_CRYPTODEV=y
-+CONFIG_OCF_CRYPTOSOFT=y
-+# CONFIG_OCF_OCFNULL is not set
-+# CONFIG_OCF_BENCH is not set
- # CONFIG_BINARY_PRINTF is not set
- 
- #
--- 
-1.7.0.4
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-minimal-support-for-Beaglebone-Black.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-minimal-support-for-Beaglebone-Black.patch
deleted file mode 100644
index ec83d19..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-minimal-support-for-Beaglebone-Black.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From cda956db2b54400c44cc8eb952276ecb058f57d8 Mon Sep 17 00:00:00 2001
-From: Steve Kipisz <s-kipisz2 at ti.com>
-Date: Mon, 3 Jun 2013 04:35:51 -0500
-Subject: [PATCH] am335x:Add minimal support for Beaglebone Black
-
-- Detect Beaglebone Black and do the appropriate pin mux
-- Add pin mux for eMMC
-
-Signed-off-by: Steve Kipisz <s-kipisz2 at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c              |   49 ++++++++++++++++++++
- arch/arm/mach-omap2/include/mach/board-am335xevm.h |    1 +
- 2 files changed, 50 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 1523f33..c4a5c05 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1654,6 +1654,21 @@ static void mmc1_wl12xx_init(int evm_id, int profile)
- 	am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
- }
- 
-+static void mmc1_emmc_init(int evm_id, int profile)
-+{
-+	setup_pin_mux(mmc1_common_pin_mux);
-+	setup_pin_mux(mmc1_dat4_7_pin_mux);
-+
-+	am335x_mmc[1].mmc = 2;
-+	am335x_mmc[1].caps = MMC_CAP_8_BIT_DATA;
-+	am335x_mmc[1].gpio_cd = -EINVAL;
-+	am335x_mmc[1].gpio_wp = -EINVAL;
-+	am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
-+
-+	/* mmc will be initialized when mmc0_init is called */
-+	return;
-+}
-+
- static void mmc2_wl12xx_init(int evm_id, int profile)
- {
- 	setup_pin_mux(mmc2_wl12xx_pin_mux);
-@@ -2177,6 +2192,21 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{NULL, 0, 0},
- };
- 
-+/* Beaglebone Black */
-+static struct evm_dev_cfg beagleboneblack_dev_cfg[] = {
-+	{am335x_rtc_init, DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{clkout2_enable, DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{tps65217_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{mii1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{usb0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{mmc1_emmc_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{sgx_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{NULL, 0, 0},
-+};
-+
- /* EVM - Starter Kit */
- static struct evm_dev_cfg evm_sk_dev_cfg[] = {
- 	{am335x_rtc_init, DEV_ON_BASEBOARD, PROFILE_ALL},
-@@ -2280,6 +2310,23 @@ static void setup_beaglebone(void)
- 	am33xx_cpsw_init(AM33XX_CPSW_MODE_MII, NULL, NULL);
- }
- 
-+/* BeagleBone Black */
-+static void setup_beagleboneblack(void)
-+{
-+	pr_info("The board is a AM335x Beaglebone Black.\n");
-+
-+	/* Beagle Bone has Micro-SD slot which doesn't have Write Protect pin */
-+	am335x_mmc[0].gpio_wp = -EINVAL;
-+
-+	_configure_device(BEAGLE_BONE_BLACK, beagleboneblack_dev_cfg,
-+				PROFILE_NONE);
-+
-+	/* TPS65217 regulator has full constraints */
-+	regulator_has_full_constraints();
-+
-+	am33xx_cpsw_init(AM33XX_CPSW_MODE_MII, NULL, NULL);
-+}
-+
- /* EVM - Starter Kit */
- static void setup_starterkit(void)
- {
-@@ -2372,6 +2419,8 @@ static void am335x_evm_setup(struct memory_accessor *mem_acc, void *context)
- 			setup_beaglebone_old();
- 		else
- 			setup_beaglebone();
-+	} else if (!strncmp("A335BNLT", config.name, 8)) {
-+		setup_beagleboneblack();
- 	} else if (!strncmp("A335X_SK", config.name, 8)) {
- 		daughter_brd_detected = false;
- 		setup_starterkit();
-diff --git a/arch/arm/mach-omap2/include/mach/board-am335xevm.h b/arch/arm/mach-omap2/include/mach/board-am335xevm.h
-index e77d52c..915139a 100644
---- a/arch/arm/mach-omap2/include/mach/board-am335xevm.h
-+++ b/arch/arm/mach-omap2/include/mach/board-am335xevm.h
-@@ -26,6 +26,7 @@
- #define BEAGLE_BONE_A3		3
- #define EVM_SK			4
- #define GEN_PURP_DDR3_EVM	5
-+#define BEAGLE_BONE_BLACK	6
- 
- /* REVIST : check posibility of PROFILE_(x) syntax usage */
- #define PROFILE_NONE	-1	/* Few EVM doesn't have profiles */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-pm_runtime-API-to-crypto-driver.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-pm_runtime-API-to-crypto-driver.patch
deleted file mode 100644
index cef94b7..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Add-pm_runtime-API-to-crypto-driver.patch
+++ /dev/null
@@ -1,405 +0,0 @@
-From 7cb6dbae57e2bb5d237bb88f6eb40971cf8fc3b5 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Wed, 18 Jul 2012 09:15:18 -0500
-Subject: [PATCH] [am335x]: Add pm_runtime API to crypto driver
-
-* Add pm_runtime API to crypto driver AES and SHA
-* Mod devices.c file to add pm_runtime for crypto
-* Mod omap_hwmod_33xx_data.c to add resources structures
-* Crypto module clocks are enabled in probe function
-  and disabled only on remove or other error.
----
- arch/arm/mach-omap2/devices.c              |   66 ++++++++++++++++++++++++++++
- arch/arm/mach-omap2/omap_hwmod_33xx_data.c |   15 ++++++-
- drivers/crypto/omap4-aes.c                 |   52 +++++++++++----------
- drivers/crypto/omap4-sham.c                |   45 ++++++++++---------
- 4 files changed, 131 insertions(+), 47 deletions(-)
- mode change 100644 => 100755 arch/arm/mach-omap2/devices.c
- mode change 100644 => 100755 arch/arm/mach-omap2/omap_hwmod_33xx_data.c
- mode change 100644 => 100755 drivers/crypto/omap4-aes.c
- mode change 100644 => 100755 drivers/crypto/omap4-sham.c
-
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-old mode 100644
-new mode 100755
-index ebf0d9e..156e363
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -751,6 +751,7 @@ static struct platform_device sham_device = {
-	.id		= -1,
- };
-
-+#if 0
- static void omap_init_sham(void)
- {
-	sham_device.resource = omap4_sham_resources;
-@@ -758,6 +759,38 @@ static void omap_init_sham(void)
-
-	platform_device_register(&sham_device);
- }
-+#endif
-+
-+int __init omap_init_sham(void)
-+{
-+	int id = -1;
-+	struct platform_device *pdev;
-+	struct omap_hwmod *oh;
-+	char *oh_name = "sha0";
-+	char *name = "omap4-sham";
-+
-+	oh = omap_hwmod_lookup(oh_name);
-+	if (!oh) {
-+		pr_err("Could not look up %s\n", oh_name);
-+		return -ENODEV;
-+	}
-+
-+	pdev = omap_device_build(name, id, oh, NULL, 0, NULL, 0, 0);
-+	//pdev.resource = omap4_sham_resources;
-+	//pdev.num_resources = omap4_sham_resources_sz;
-+
-+	if (IS_ERR(pdev)) {
-+		WARN(1, "Can't build omap_device for %s:%s.\n",
-+						name, oh->name);
-+		return PTR_ERR(pdev);
-+	}
-+
-+	return 0;
-+}
-+
-+
-+
-+
-
- #else
- static inline void omap_init_sham(void) { }
-@@ -853,12 +886,45 @@ static struct platform_device aes_device = {
-	.id		= -1,
- };
-
-+#if 0
- static void omap_init_aes(void)
- {
-	aes_device.resource = omap4_aes_resources;
-	aes_device.num_resources = omap4_aes_resources_sz;
-	platform_device_register(&aes_device);
- }
-+#endif
-+
-+int __init omap_init_aes(void)
-+{
-+	int id = -1;
-+	struct platform_device *pdev;
-+	struct omap_hwmod *oh;
-+	char *oh_name = "aes0";
-+	char *name = "omap4-aes";
-+
-+	oh = omap_hwmod_lookup(oh_name);
-+	if (!oh) {
-+		pr_err("Could not look up %s\n", oh_name);
-+		return -ENODEV;
-+	}
-+
-+	pdev = omap_device_build(name, id, oh, NULL, 0, NULL, 0, 0);
-+	//pdev.resource = omap4_sham_resources;
-+	//pdev.num_resources = omap4_sham_resources_sz;
-+
-+	if (IS_ERR(pdev)) {
-+		WARN(1, "Can't build omap_device for %s:%s.\n",
-+						name, oh->name);
-+		return PTR_ERR(pdev);
-+	}
-+
-+	return 0;
-+}
-+
-+
-+
-+
-
- #else
- static inline void omap_init_aes(void) { }
-diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-old mode 100644
-new mode 100755
-index 995b73f..2f9982c
---- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-@@ -434,11 +434,18 @@ static struct omap_hwmod_irq_info am33xx_aes0_irqs[] = {
-	{ .irq = -1 }
- };
-
-+static struct omap_hwmod_dma_info am33xx_aes0_dma[] = {
-+	{ .dma_req = AM33XX_DMA_AESEIP36T0_DOUT },
-+	{ .dma_req = AM33XX_DMA_AESEIP36T0_DIN },
-+	{ .dma_req = -1 }
-+};
-+
- static struct omap_hwmod am33xx_aes0_hwmod = {
-	.name		= "aes0",
-	.class		= &am33xx_aes_hwmod_class,
-	.clkdm_name	= "l3_clkdm",
-	.mpu_irqs	= am33xx_aes0_irqs,
-+	.sdma_reqs	= am33xx_aes0_dma,
-	.main_clk	= "aes0_fck",
-	.prcm		= {
-		.omap4	= {
-@@ -2165,15 +2172,21 @@ static struct omap_hwmod_class am33xx_sha0_hwmod_class = {
- };
-
- static struct omap_hwmod_irq_info am33xx_sha0_irqs[] = {
--	{ .irq = 108 },
-+	{ .irq = AM33XX_IRQ_SHAEIP57t0_P },
-	{ .irq = -1 }
- };
-
-+static struct omap_hwmod_dma_info am33xx_sha0_dma[] = {
-+	{ .dma_req = AM33XX_DMA_SHAEIP57T0_DIN },
-+	{ .dma_req = -1 }
-+};
-+
- static struct omap_hwmod am33xx_sha0_hwmod = {
-	.name		= "sha0",
-	.class		= &am33xx_sha0_hwmod_class,
-	.clkdm_name	= "l3_clkdm",
-	.mpu_irqs	= am33xx_sha0_irqs,
-+	.sdma_reqs	= am33xx_sha0_dma,
-	.main_clk	= "sha0_fck",
-	.prcm		= {
-		.omap4	= {
-diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
-old mode 100644
-new mode 100755
-index f0b3fe2..76f988a
---- a/drivers/crypto/omap4-aes.c
-+++ b/drivers/crypto/omap4-aes.c
-@@ -32,13 +32,14 @@
- #include <linux/init.h>
- #include <linux/errno.h>
- #include <linux/kernel.h>
--#include <linux/clk.h>
- #include <linux/platform_device.h>
- #include <linux/scatterlist.h>
- #include <linux/dma-mapping.h>
- #include <linux/io.h>
- #include <linux/crypto.h>
-+#include <linux/pm_runtime.h>
- #include <linux/interrupt.h>
-+#include <linux/delay.h>
- #include <crypto/scatterwalk.h>
- #include <crypto/aes.h>
-
-@@ -145,12 +146,6 @@ static void omap4_aes_write_n(struct omap4_aes_dev *dd, u32 offset,
-
- static int omap4_aes_hw_init(struct omap4_aes_dev *dd)
- {
--	/*
--	 * clocks are enabled when request starts and disabled when finished.
--	 * It may be long delays between requests.
--	 * Device might go to off mode to save power.
--	 */
--	clk_enable(dd->iclk);
-	omap4_aes_write(dd, AES_REG_SYSCFG, 0);
-
-	if (!(dd->flags & FLAGS_INIT)) {
-@@ -494,7 +489,6 @@ static void omap4_aes_finish_req(struct omap4_aes_dev *dd, int err)
-
-	pr_debug("err: %d\n", err);
-
--	clk_disable(dd->iclk);
-	dd->flags &= ~FLAGS_BUSY;
-
-	req->base.complete(&req->base, err);
-@@ -801,13 +795,15 @@ static int omap4_aes_probe(struct platform_device *pdev)
-	crypto_init_queue(&dd->queue, AM33X_AES_QUEUE_LENGTH);
-
-	/* Get the base address */
--	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--	if (!res) {
--		dev_err(dev, "invalid resource type\n");
--		err = -ENODEV;
--		goto err_res;
--	}
--	dd->phys_base = res->start;
-+	//res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	//if (!res) {
-+	//	dev_err(dev, "invalid resource type\n");
-+	//	err = -ENODEV;
-+	//	goto err_res;
-+	//}
-+
-+	//dd->phys_base = res->start;
-+	dd->phys_base = AM33XX_AES0_P_BASE;
-
-	/* Get the DMA */
-	res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-@@ -823,13 +819,10 @@ static int omap4_aes_probe(struct platform_device *pdev)
-	else
-		dd->dma_in = res->start;
-
--	/* Initializing the clock */
--	dd->iclk = clk_get(dev, "aes0_fck");
--	if (IS_ERR(dd->iclk)) {
--		dev_err(dev, "clock initialization failed.\n");
--		err = PTR_ERR(dd->iclk);
--		goto err_res;
--	}
-+	pm_runtime_enable(dev);
-+	udelay(1);
-+	pm_runtime_get_sync(dev);
-+	udelay(1);
-
-	dd->io_base = ioremap(dd->phys_base, SZ_4K);
-	if (!dd->io_base) {
-@@ -840,7 +833,7 @@ static int omap4_aes_probe(struct platform_device *pdev)
-
-	omap4_aes_hw_init(dd);
-	reg = omap4_aes_read(dd, AES_REG_REV);
--	clk_disable(dd->iclk);
-+
-	dev_info(dev, "AM33X AES hw accel rev: %u.%02u\n",
-		 ((reg & AES_REG_REV_X_MAJOR_MASK) >> 8),
-		 (reg & AES_REG_REV_Y_MINOR_MASK));
-@@ -879,7 +872,12 @@ err_dma:
-	iounmap(dd->io_base);
-
- err_io:
--	clk_put(dd->iclk);
-+	pm_runtime_put_sync(dev);
-+	udelay(1);
-+	pm_runtime_disable(dev);
-+	udelay(1);
-+
-+
- err_res:
-	kfree(dd);
-	dd = NULL;
-@@ -907,7 +905,11 @@ static int omap4_aes_remove(struct platform_device *pdev)
-	tasklet_kill(&dd->queue_task);
-	omap4_aes_dma_cleanup(dd);
-	iounmap(dd->io_base);
--	clk_put(dd->iclk);
-+	pm_runtime_put_sync(&pdev->dev);
-+	udelay(1);
-+	pm_runtime_disable(&pdev->dev);
-+	udelay(1);
-+
-	kfree(dd);
-	dd = NULL;
-
-diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
-old mode 100644
-new mode 100755
-index 79f6be9..21f1b48
---- a/drivers/crypto/omap4-sham.c
-+++ b/drivers/crypto/omap4-sham.c
-@@ -31,7 +31,6 @@
- #include <linux/errno.h>
- #include <linux/interrupt.h>
- #include <linux/kernel.h>
--#include <linux/clk.h>
- #include <linux/irq.h>
- #include <linux/io.h>
- #include <linux/platform_device.h>
-@@ -40,6 +39,7 @@
- #include <linux/delay.h>
- #include <linux/crypto.h>
- #include <linux/cryptohash.h>
-+#include <linux/pm_runtime.h>
- #include <crypto/scatterwalk.h>
- #include <crypto/algapi.h>
- #include <crypto/sha.h>
-@@ -700,7 +700,6 @@ static void omap4_sham_finish_req(struct ahash_request *req, int err)
-	/* atomic operation is not needed here */
-	dd->dflags &= ~(BIT(FLAGS_BUSY) | BIT(FLAGS_FINAL) | BIT(FLAGS_CPU) |
-			BIT(FLAGS_DMA_READY) | BIT(FLAGS_OUTPUT_READY));
--	clk_disable(dd->iclk);
-
-	if (req->base.complete)
-		req->base.complete(&req->base, err);
-@@ -743,7 +742,6 @@ static int omap4_sham_handle_queue(struct omap4_sham_dev *dd,
-	dev_dbg(dd->dev, "handling new req, op: %lu, nbytes: %d\n",
-						ctx->op, req->nbytes);
-
--	clk_enable(dd->iclk);
-	if (!test_bit(FLAGS_INIT, &dd->dflags)) {
-		set_bit(FLAGS_INIT, &dd->dflags);
-		dd->err = 0;
-@@ -1272,13 +1270,15 @@ static int __devinit omap4_sham_probe(struct platform_device *pdev)
-	dd->irq = -1;
-
-	/* Get the base address */
--	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--	if (!res) {
--		dev_err(dev, "no MEM resource info\n");
--		err = -ENODEV;
--		goto res_err;
--	}
--	dd->phys_base = res->start;
-+	//res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	//if (!res) {
-+	//	dev_err(dev, "no MEM resource info\n");
-+	//	err = -ENODEV;
-+	//	goto res_err;
-+	//}
-+
-+	//dd->phys_base = res->start;
-+	dd->phys_base = AM33XX_SHA1MD5_P_BASE;
-
-	/* Get the DMA */
-	res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-@@ -1308,13 +1308,10 @@ static int __devinit omap4_sham_probe(struct platform_device *pdev)
-	if (err)
-		goto dma_err;
-
--	/* Initializing the clock */
--	dd->iclk = clk_get(dev, "sha0_fck");
--	if (IS_ERR(dd->iclk)) {
--		dev_err(dev, "clock initialization failed.\n");
--		err = PTR_ERR(dd->iclk);
--		goto clk_err;
--	}
-+	pm_runtime_enable(dev);
-+	udelay(1);
-+	pm_runtime_get_sync(dev);
-+	udelay(1);
-
-	dd->io_base = ioremap(dd->phys_base, SZ_4K);
-	if (!dd->io_base) {
-@@ -1323,9 +1320,7 @@ static int __devinit omap4_sham_probe(struct platform_device *pdev)
-		goto io_err;
-	}
-
--	clk_enable(dd->iclk);
-	reg = omap4_sham_read(dd, SHA_REG_REV);
--	clk_disable(dd->iclk);
-
-	dev_info(dev, "AM33X SHA/MD5 hw accel rev: %u.%02u\n",
-		 (reg & SHA_REG_REV_X_MAJOR_MASK) >> 8, reg & SHA_REG_REV_Y_MINOR_MASK);
-@@ -1349,7 +1344,11 @@ err_algs:
-		crypto_unregister_ahash(&algs[j]);
-	iounmap(dd->io_base);
- io_err:
--	clk_put(dd->iclk);
-+	pm_runtime_put_sync(dev);
-+	udelay(1);
-+	pm_runtime_disable(dev);
-+	udelay(1);
-+
- clk_err:
-	omap4_sham_dma_cleanup(dd);
- dma_err:
-@@ -1379,7 +1378,11 @@ static int __devexit omap4_sham_remove(struct platform_device *pdev)
-		crypto_unregister_ahash(&algs[i]);
-	tasklet_kill(&dd->done_task);
-	iounmap(dd->io_base);
--	clk_put(dd->iclk);
-+	pm_runtime_put_sync(&pdev->dev);
-+	udelay(1);
-+	pm_runtime_disable(&pdev->dev);
-+	udelay(1);
-+
-	omap4_sham_dma_cleanup(dd);
-	if (dd->irq >= 0)
-		free_irq(dd->irq, dd);
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Re-enable-Turbo-and-Nitro-modes-for-Beaglebon.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Re-enable-Turbo-and-Nitro-modes-for-Beaglebon.patch
deleted file mode 100644
index 17a87af..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-Re-enable-Turbo-and-Nitro-modes-for-Beaglebon.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ec0ec41418ec1193e4352f1983ab29173f10f855 Mon Sep 17 00:00:00 2001
-From: Steve Kipisz <s-kipisz2 at ti.com>
-Date: Wed, 5 Jun 2013 10:10:44 -0500
-Subject: [PATCH] am335x:Re-enable Turbo and Nitro modes for Beaglebone Black
- The Beaglebone Black boards use a speed binned PG2.0 AM335x
- that operate up to 1GHz so re-enable those modes for
- Beaglebone Black.
-
-Signed-off-by: Steve Kipisz <s-kipisz2 at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index bac415c..47e5a9d 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2529,6 +2529,20 @@ static void am335x_evm_setup(struct memory_accessor *mem_acc, void *context)
- 
- 	am335x_opp_update();
- 
-+	/*
-+	 * For now, Beaglebone Black uses PG 2.0 that are speed binned and operate
-+	 * up to 1GHz. So re-enable Turbo and Nitro modes,
-+	 */
-+	if (!strncmp("A335BNLT", config.name, 8)) {
-+		struct device *mpu_dev;
-+
-+		mpu_dev = omap_device_get_by_hwmod_name("mpu");
-+		opp_enable(mpu_dev,
-+			    AM33XX_ES2_0_OPPTURBO_FREQ);
-+		opp_enable(mpu_dev,
-+			    AM33XX_ES2_0_OPPNITRO_FREQ);
-+	}
-+
- 	/* SmartReflex also requires board information. */
- 	am33xx_sr_init();
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch
deleted file mode 100644
index 863fe37..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From f69ffbef6793b7238a8518481735fd53326e0cdf Mon Sep 17 00:00:00 2001
-From: Vita Preskovsky <vitap at ti.com>
-Date: Tue, 24 Jul 2012 20:02:28 +0300
-Subject: [PATCH] am335x: enable pullup on the WLAN enable pin for keeping wlan
-
-  * Enable pullup on the WLAN enable pin for keeping wlan active
-    during suspend in wowlan mode. The fix is relevant only in the case
-    of am335x-SK board.
-
-
-Signed-off-by: Vita Preskovsky <vitap at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |   22 ++++++++++++++++++++++
- 1 files changed, 22 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index f68710c..f263f84 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1673,13 +1673,35 @@ static void wl12xx_bluetooth_enable(void)
-	gpio_direction_output(am335xevm_wlan_data.bt_enable_gpio, 0);
- }
-
-+#define AM33XX_CTRL_REGADDR(reg)					\
-+		AM33XX_L4_WK_IO_ADDRESS(AM33XX_SCM_BASE + (reg))
-+
-+/* wlan enable pin */
-+#define AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET		0x087C
- static int wl12xx_set_power(struct device *dev, int slot, int on, int vdd)
- {
-+	int pad_mux_value;
-+
-	if (on) {
-		gpio_direction_output(am335xevm_wlan_data.wlan_enable_gpio, 1);
-+
-+		/* Enable pullup on the WLAN enable pin for keeping wlan active during suspend
-+		   in wowlan mode */
-+		if ( am335x_evm_get_id() == EVM_SK ) {
-+			pad_mux_value = readl(AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET));
-+			pad_mux_value &= (~AM33XX_PULL_DISA);
-+			writel(pad_mux_value, AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET));
-+		}
-+
-		mdelay(70);
-	} else {
-		gpio_direction_output(am335xevm_wlan_data.wlan_enable_gpio, 0);
-+		/* Disable pullup on the WLAN enable when WLAN is off */
-+		if ( am335x_evm_get_id() == EVM_SK ) {
-+			pad_mux_value = readl(AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET));
-+			pad_mux_value |= AM33XX_PULL_DISA;
-+			writel(pad_mux_value, AM33XX_CTRL_REGADDR(AM33XX_CONTROL_PADCONF_GPMC_CSN0_OFFSET));
-+		}
-	}
-
-	return 0;
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335xevm-using-edge-triggered-interrupts-for-WLAN.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335xevm-using-edge-triggered-interrupts-for-WLAN.patch
deleted file mode 100644
index 98b3a31..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am335xevm-using-edge-triggered-interrupts-for-WLAN.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From be52bac69dfe6a56276b16ccd234970c4f7b1255 Mon Sep 17 00:00:00 2001
-From: Vita Preskovsky <vitap at ti.com>
-Date: Wed, 18 Jul 2012 16:20:36 +0300
-Subject: [PATCH] am335xevm: using edge triggered interrupts for WLAN
-
-  *using edge triggered interrupts instead of default level triggered in
-   all platforms supporting WLAN. This reduces CPU cycles and possibility
-   for missed interrupts.
-
-
-Signed-off-by: Vita Preskovsky <vitap at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 6ae4e68..ac005c8 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1679,12 +1679,11 @@ static void wl12xx_init(int evm_id, int profile)
-		am335xevm_wlan_data.bt_enable_gpio = GPIO_TO_PIN(3, 21);
-		am335xevm_wlan_data.irq =
-				OMAP_GPIO_IRQ(AM335XEVM_SK_WLAN_IRQ_GPIO);
--		am335xevm_wlan_data.platform_quirks =
--				WL12XX_PLATFORM_QUIRK_EDGE_IRQ;
-		setup_pin_mux(wl12xx_pin_mux_sk);
-	} else {
-		setup_pin_mux(wl12xx_pin_mux);
-	}
-+	am335xevm_wlan_data.platform_quirks = WL12XX_PLATFORM_QUIRK_EDGE_IRQ;
-	wl12xx_bluetooth_enable();
-
-	if (wl12xx_set_platform_data(&am335xevm_wlan_data))
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33x-Add-memory-addresses-for-crypto-modules.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33x-Add-memory-addresses-for-crypto-modules.patch
deleted file mode 100644
index f92a7fc..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33x-Add-memory-addresses-for-crypto-modules.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5f2f17a488aba4319b537aed040ea13607af128b Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 14:25:40 -0500
-Subject: [PATCH 1/8] am33x: Add memory addresses for crypto modules
-
-* Add base memory addresses to the am33xx.h header file
-
-These addresses are for the HW crypto modules including TRNG, AES, and SHA/MD5
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- arch/arm/plat-omap/include/plat/am33xx.h |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
- mode change 100644 => 100755 arch/arm/plat-omap/include/plat/am33xx.h
-
-diff --git a/arch/arm/plat-omap/include/plat/am33xx.h b/arch/arm/plat-omap/include/plat/am33xx.h
-old mode 100644
-new mode 100755
-index a16e72c..96ab1c3
---- a/arch/arm/plat-omap/include/plat/am33xx.h
-+++ b/arch/arm/plat-omap/include/plat/am33xx.h
-@@ -65,6 +65,17 @@
-
- #define AM33XX_ELM_BASE		0x48080000
-
-+/* Base address for crypto modules */
-+#define AM33XX_SHA1MD5_S_BASE	0x53000000
-+#define AM33XX_SHA1MD5_P_BASE	0x53100000
-+
-+#define	AM33XX_AES0_S_BASE	0x53400000
-+#define	AM33XX_AES0_P_BASE	0x53500000
-+#define	AM33XX_AES1_S_BASE	0x53600000
-+#define	AM33XX_AES1_P_BASE	0x53700000
-+
-+#define	AM33XX_RNG_BASE		0x48310000
-+
- #define AM33XX_ASP0_BASE	0x48038000
- #define AM33XX_ASP1_BASE	0x4803C000
-
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33xx-Add-SmartReflex-support.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33xx-Add-SmartReflex-support.patch
deleted file mode 100644
index a17f62c..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-am33xx-Add-SmartReflex-support.patch
+++ /dev/null
@@ -1,2014 +0,0 @@
-From 35ae6b61d349e5b4efd1c6337a0d1e23b6e86899 Mon Sep 17 00:00:00 2001
-From: Greg Guyotte <gguyotte at ti.com>
-Date: Thu, 7 Jun 2012 18:05:31 -0500
-Subject: [PATCH] am33xx: Add SmartReflex support.
-
-This patch introduces SmartReflex support to AM33XX devices.  The
-purpose of SmartReflex is to optimize (lower) voltage based upon
-silicon process and temperature.
-
-The SmartReflex driver requires the silicon to be programmed with
-"nTarget" EFUSE values.  If the values are not present (as with
-pre-RTP samples), the driver will simply fail to load and kernel
-boot will continue normally.
-
-The SR driver logs several items in the debugfs at /debug/smartreflex.
-To disable SmartReflex, use the command 'echo 0 > /debug/smartreflex/autocomp'.
-The node /debug/smartreflex/smartreflex0 gives information about
-the CORE voltage domain, and /smartreflex1 is related to the MPU voltage
-domain.
-
-To determine the effectiveness of SmartReflex, you can compare the
-initial voltage with the current voltage for a given OPP.  For example,
-'cat /debug/smartreflex/smartreflex1/current_voltage' gives the current
-MPU voltage.  Comparing that with 'cat /debug/smartreflex/smartreflex1/
-initial_voltage' will show you the voltage drop associated with SR
-operation.
-
-Signed-off-by: Greg Guyotte <gguyotte at ti.com>
----
- arch/arm/mach-omap2/Makefile                       |    1 +
- arch/arm/mach-omap2/am33xx-smartreflex-class2.c    | 1055 ++++++++++++++++++++
- arch/arm/mach-omap2/board-am335xevm.c              |    7 +
- arch/arm/mach-omap2/devices.c                      |  269 +++++
- arch/arm/mach-omap2/include/mach/board-am335xevm.h |    1 +
- arch/arm/plat-omap/Kconfig                         |   21 +
- arch/arm/plat-omap/include/plat/am33xx.h           |    3 +
- arch/arm/plat-omap/include/plat/smartreflex.h      |  431 ++++++++
- drivers/regulator/core.c                           |    4 +
- include/linux/regulator/driver.h                   |    2 +-
- include/linux/regulator/machine.h                  |    3 +-
- 11 files changed, 1795 insertions(+), 2 deletions(-)
- create mode 100644 arch/arm/mach-omap2/am33xx-smartreflex-class2.c
- create mode 100644 arch/arm/plat-omap/include/plat/smartreflex.h
-
-diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
-index f275e74..c01b62d 100644
---- a/arch/arm/mach-omap2/Makefile
-+++ b/arch/arm/mach-omap2/Makefile
-@@ -73,6 +73,7 @@ obj-$(CONFIG_SOC_OMAPAM33XX)		+= cpuidle33xx.o pm33xx.o \
- obj-$(CONFIG_PM_DEBUG)			+= pm-debug.o
- obj-$(CONFIG_OMAP_SMARTREFLEX)          += sr_device.o smartreflex.o
- obj-$(CONFIG_OMAP_SMARTREFLEX_CLASS3)	+= smartreflex-class3.o
-+obj-$(CONFIG_AM33XX_SMARTREFLEX)        += am33xx-smartreflex-class2.o
-
- AFLAGS_sleep24xx.o			:=-Wa,-march=armv6
- AFLAGS_sleep34xx.o			:=-Wa,-march=armv7-a$(plus_sec)
-diff --git a/arch/arm/mach-omap2/am33xx-smartreflex-class2.c b/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-new file mode 100644
-index 0000000..66f98b7
---- /dev/null
-+++ b/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-@@ -0,0 +1,1055 @@
-+/*
-+ * SmartReflex Voltage Control driver
-+ *
-+ * Copyright (C) 2012 Texas Instruments, Inc. - http://www.ti.com/
-+ * Author: Greg Guyotte <gguyotte at ti.com> (modified for AM33xx)
-+ *
-+ * Copyright (C) 2011 Texas Instruments, Inc. - http://www.ti.com/
-+ * Author: AnilKumar Ch <anilkumar at ti.com>
-+ *
-+ * This program is free software; you can redistribute it and/or
-+ * modify it under the terms of the GNU General Public License as
-+ * published by the Free Software Foundation version 2.
-+ *
-+ * This program is distributed "as is" WITHOUT ANY WARRANTY of any
-+ * kind, whether express or implied; without even the implied warranty
-+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-+ * GNU General Public License for more details.
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/interrupt.h>
-+#include <linux/clk.h>
-+#include <linux/io.h>
-+#include <linux/debugfs.h>
-+#include <linux/slab.h>
-+#include <linux/regulator/consumer.h>
-+#include <linux/cpufreq.h>
-+#include <linux/opp.h>
-+
-+#include <plat/common.h>
-+#include <plat/smartreflex.h>
-+
-+#include "control.h"
-+#include "voltage.h"
-+
-+#define CLK_NAME_LEN		40
-+
-+static inline void sr_write_reg(struct am33xx_sr *sr, int offset, u32 value,
-+					u32 srid)
-+{
-+	writel(value, sr->sen[srid].base + offset);
-+}
-+
-+static inline void sr_modify_reg(struct am33xx_sr *sr, int offset, u32 mask,
-+				u32 value, u32 srid)
-+{
-+	u32 reg_val;
-+
-+	reg_val = readl(sr->sen[srid].base + offset);
-+	reg_val &= ~mask;
-+	reg_val |= (value&mask);
-+
-+	writel(reg_val, sr->sen[srid].base + offset);
-+}
-+
-+static inline u32 sr_read_reg(struct am33xx_sr *sr, int offset, u32 srid)
-+{
-+	return readl(sr->sen[srid].base + offset);
-+}
-+
-+static void cal_reciprocal(u32 sensor, u32 *sengain, u32 *rnsen) {
-+         u32 gn, rn, mul;
-+
-+         for (gn = 0; gn < GAIN_MAXLIMIT; gn++) {
-+                 mul = 1 << (gn + 8);
-+                 rn = mul / sensor;
-+                 if (rn < R_MAXLIMIT) {
-+                         *sengain = gn;
-+                         *rnsen = rn;
-+                 }
-+         }
-+}
-+
-+static u32 cal_test_nvalue(u32 sennval, u32 senpval) {
-+         u32 senpgain=0, senngain=0;
-+         u32 rnsenp=0, rnsenn=0;
-+
-+         /* Calculating the gain and reciprocal of the SenN and SenP values */
-+         cal_reciprocal(senpval, &senpgain, &rnsenp);
-+         cal_reciprocal(sennval, &senngain, &rnsenn);
-+
-+         return (senpgain << NVALUERECIPROCAL_SENPGAIN_SHIFT) |
-+                 (senngain << NVALUERECIPROCAL_SENNGAIN_SHIFT) |
-+                 (rnsenp << NVALUERECIPROCAL_RNSENP_SHIFT) |
-+                 (rnsenn << NVALUERECIPROCAL_RNSENN_SHIFT);
-+}
-+
-+static unsigned int sr_adjust_efuse_nvalue(unsigned int opp_no,
-+                                                 unsigned int orig_opp_nvalue,
-+                                                 unsigned int mv_delta) {
-+         unsigned int new_opp_nvalue;
-+         unsigned int senp_gain, senn_gain, rnsenp, rnsenn, pnt_delta, nnt_delta;
-+         unsigned int new_senn, new_senp, senn, senp;
-+
-+         /* calculate SenN and SenP from the efuse value */
-+         senp_gain = ((orig_opp_nvalue >> 20) & 0xf);
-+         senn_gain = ((orig_opp_nvalue >> 16) & 0xf);
-+         rnsenp = ((orig_opp_nvalue >> 8) & 0xff);
-+         rnsenn = (orig_opp_nvalue & 0xff);
-+
-+         senp = ((1<<(senp_gain+8))/(rnsenp));
-+         senn = ((1<<(senn_gain+8))/(rnsenn));
-+
-+         /* calculate the voltage delta */
-+         pnt_delta = (26 * mv_delta)/10;
-+         nnt_delta = (3 * mv_delta);
-+
-+         /* now lets add the voltage delta to the sensor values */
-+         new_senn = senn + nnt_delta;
-+         new_senp = senp + pnt_delta;
-+
-+         new_opp_nvalue = cal_test_nvalue(new_senn, new_senp);
-+
-+         printk("Compensating OPP%d for %dmV Orig nvalue:0x%x New nvalue:0x%x \n",
-+                         opp_no, mv_delta, orig_opp_nvalue, new_opp_nvalue);
-+
-+         return new_opp_nvalue;
-+}
-+
-+/* irq_sr_reenable - Re-enable SR interrupts (triggered by delayed work queue)
-+ * @work:	pointer to work_struct embedded in am33xx_sr_sensor struct
-+ *
-+ * While servicing the IRQ, this function is added to the delayed work queue.
-+ * This gives time for the voltage change to settle before we re-enable
-+ * the interrupt.
-+ */
-+static void irq_sr_reenable(struct work_struct *work)
-+{
-+        u32 srid;
-+	struct am33xx_sr_sensor *sens;
-+        struct am33xx_sr *sr;
-+
-+        sens = container_of((void *)work, struct am33xx_sr_sensor,
-+                work_reenable);
-+
-+        srid = sens->sr_id;
-+
-+        sr = container_of((void *)sens, struct am33xx_sr, sen[srid]);
-+
-+        dev_dbg(&sr->pdev->dev, "%s: SR %d\n", __func__, srid);
-+
-+        /* Must clear IRQ status */
-+        sens->irq_status = 0;
-+
-+        /* Re-enable the interrupt */
-+	sr_modify_reg(sr, IRQENABLE_SET, IRQENABLE_MCUBOUNDSINT,
-+		IRQENABLE_MCUBOUNDSINT, srid);
-+
-+	/* Restart the module after voltage set */
-+	sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
-+		SRCONFIG_SRENABLE, srid);
-+}
-+
-+/* get_errvolt - get error voltage from SR error register
-+ * @sr:		contains SR driver data
-+ * @srid:	contains the srid, indicates which SR moduel lswe are using
-+ *
-+ * Read the error from SENSOR error register and then convert
-+ * to voltage delta, return value is the voltage delta in micro
-+ * volt.
-+ */
-+static int get_errvolt(struct am33xx_sr *sr, s32 srid)
-+{
-+        struct am33xx_sr_sensor *sens;
-+	int senerror_reg;
-+	s32 uvoltage;
-+	s8 terror;
-+
-+        sens = &sr->sen[srid];
-+
-+	senerror_reg = sr_read_reg(sr, SENERROR_V2, srid);
-+	senerror_reg = (senerror_reg & 0x0000FF00);
-+	terror = (s8)(senerror_reg >> 8);
-+
-+        /* math defined in SR functional spec */
-+	uvoltage = ((terror) * sr->uvoltage_step_size) >> 7;
-+	uvoltage = uvoltage * sens->opp_data[sens->curr_opp].e2v_gain;
-+
-+	return uvoltage;
-+}
-+
-+/* set_voltage - Schedule task for setting the voltage
-+ * @work:	pointer to the work structure
-+ *
-+ * Voltage is set based on previous voltage and calculated
-+ * voltage error.
-+ *
-+ * Generic voltage regulator set voltage is used for changing
-+ * the voltage to new value.  Could potentially use voltdm_scale
-+ * but at time of testing voltdm was not populated with volt_data.
-+ *
-+ * Disabling the module before changing the voltage, this is
-+ * needed for not generating interrupt during voltage change,
-+ * enabling after voltage change. This will also take care of
-+ * resetting the SR registers.
-+ */
-+static void set_voltage(struct work_struct *work)
-+{
-+	struct am33xx_sr *sr;
-+	int prev_volt, new_volt, i, ret;
-+	s32 delta_v;
-+
-+	sr = container_of((void *)work, struct am33xx_sr, work);
-+
-+        for (i = 0; i < sr->no_of_sens; i++) {
-+                if (sr->sen[i].irq_status != 1)
-+                        continue;
-+
-+                /* Get the current voltage from PMIC */
-+                prev_volt = regulator_get_voltage(sr->sen[i].reg);
-+
-+                if (prev_volt < 0) {
-+                        dev_err(&sr->pdev->dev,
-+                                "%s: SR %d: regulator_get_voltage error %d\n",
-+                                __func__, i, prev_volt);
-+
-+                        goto reenable;
-+                }
-+
-+        	delta_v = get_errvolt(sr, i);
-+                new_volt = prev_volt + delta_v;
-+
-+                /* this is the primary output for debugging SR activity */
-+                dev_dbg(&sr->pdev->dev,
-+                        "%s: SR %d: prev volt=%d, delta_v=%d, req_volt=%d\n",
-+                         __func__, i, prev_volt, delta_v, new_volt);
-+
-+	        /* Clear the counter, SR module disable */
-+	        sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
-+			~SRCONFIG_SRENABLE, i);
-+
-+                if (delta_v != 0) {
-+	                ret = regulator_set_voltage(sr->sen[i].reg, new_volt,
-+                                new_volt + sr->uvoltage_step_size);
-+
-+                        if (ret < 0)
-+                                dev_err(&sr->pdev->dev,
-+                                "%s: regulator_set_voltage failed! (err %d)\n",
-+                                __func__, ret);
-+                }
-+reenable:
-+                /* allow time for voltage to settle before re-enabling SR
-+                   module and interrupt */
-+                schedule_delayed_work(&sr->sen[i].work_reenable,
-+                        msecs_to_jiffies(sr->irq_delay));
-+        }
-+}
-+
-+/* sr_class2_irq - sr irq handling
-+ * @irq:	Number of the irq serviced
-+ * @data:	data contains the SR driver structure
-+ *
-+ * Smartreflex IRQ handling for class2 IP, once the IRQ handler
-+ * is here then disable the interrupt and re-enable after some
-+ * time. This is the work around for handling both interrupts,
-+ * while one got satisfied with the voltage change but not the
-+ * other. The same logic helps the case where PMIC cannot set
-+ * the exact voltage requested by SR IP
-+ *
-+ * Schedule work only if both interrupts are serviced
-+ *
-+ * Note that same irq handler is used for both the interrupts,
-+ * needed for decision making for voltage change
-+ */
-+static irqreturn_t sr_class2_irq(int irq, void *data)
-+{
-+	u32 srid;
-+        struct am33xx_sr *sr;
-+        struct am33xx_sr_sensor *sr_sensor = (struct am33xx_sr_sensor *)data;
-+
-+        srid = sr_sensor->sr_id;
-+
-+        sr = container_of(data, struct am33xx_sr, sen[srid]);
-+
-+	sr->sen[srid].irq_status = 1;
-+
-+	/* Clear MCUBounds Interrupt */
-+	sr_modify_reg(sr, IRQSTATUS, IRQSTATUS_MCBOUNDSINT,
-+			IRQSTATUS_MCBOUNDSINT, srid);
-+
-+	/* Disable the interrupt and re-enable in set_voltage() */
-+	sr_modify_reg(sr, IRQENABLE_CLR, IRQENABLE_MCUBOUNDSINT,
-+			IRQENABLE_MCUBOUNDSINT, srid);
-+
-+        /* Causes set_voltage() to get called at a later time.  Set_voltage()
-+           will check the irq_status flags to determine which SR needs to
-+           be serviced.  This was previously done with schedule_work, but
-+           I observed a crash in set_voltage() when changing OPPs on weak
-+           silicon, which may have been related to insufficient voltage
-+           settling time for OPP change.  This additional delay avoids the
-+           crash. */
-+        schedule_delayed_work(&sr->work,
-+                        msecs_to_jiffies(250));
-+
-+	return IRQ_HANDLED;
-+}
-+
-+static int sr_clk_enable(struct am33xx_sr *sr, u32 srid)
-+{
-+	if (clk_enable(sr->sen[srid].fck) != 0) {
-+		dev_err(&sr->pdev->dev, "%s: Could not enable sr_fck\n",
-+					__func__);
-+		return -EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static int sr_clk_disable(struct am33xx_sr *sr, u32 srid)
-+{
-+	clk_disable(sr->sen[srid].fck);
-+
-+	return 0;
-+}
-+
-+static inline int sr_set_nvalues(struct am33xx_sr *sr, u32 srid)
-+{
-+        int i;
-+        struct am33xx_sr_sensor *sens = &sr->sen[srid];
-+
-+        for (i = 0; i < sens->no_of_opps; i++) {
-+        	/* Read nTarget value form EFUSE register*/
-+	        sens->opp_data[i].nvalue = readl(AM33XX_CTRL_REGADDR
-+			(sens->opp_data[i].efuse_offs)) & 0xFFFFFF;
-+
-+                /* validate nTarget value */
-+                if (sens->opp_data[i].nvalue == 0)
-+                        return -EINVAL;
-+
-+                /* adjust nTarget based on margin in mv */
-+                sens->opp_data[i].adj_nvalue = sr_adjust_efuse_nvalue(i,
-+                        sens->opp_data[i].nvalue,
-+                        sens->opp_data[i].margin);
-+
-+                dev_dbg(&sr->pdev->dev,
-+                        "NValueReciprocal value (from efuse) = %08x\n",
-+                        sens->opp_data[i].nvalue);
-+
-+                dev_dbg(&sr->pdev->dev,
-+                        "Adjusted NValueReciprocal value = %08x\n",
-+                        sens->opp_data[i].adj_nvalue);
-+        }
-+	return 0;
-+}
-+
-+/* sr_configure - Configure SR module to work in Error generator mode
-+ * @sr:		contains SR driver data
-+ * @srid:	contains the srid, specify whether it is CORE or MPU
-+ *
-+ * Configure the corresponding values to SR module registers for
-+ * operating SR module in Error Generator mode.
-+ */
-+static void sr_configure(struct am33xx_sr *sr, u32 srid)
-+{
-+        struct am33xx_sr_sensor *sens = &sr->sen[srid];
-+
-+	/* Configuring the SR module with clock length, enabling the
-+	 * error generator, enable SR module, enable individual N and P
-+	 * sensors
-+	 */
-+	sr_write_reg(sr, SRCONFIG, (SRCLKLENGTH_125MHZ_SYSCLK |
-+		SRCONFIG_SENENABLE | SRCONFIG_ERRGEN_EN |
-+		(sens->senn_en << SRCONFIG_SENNENABLE_V2_SHIFT) |
-+		(sens->senp_en << SRCONFIG_SENPENABLE_V2_SHIFT)),
-+		srid);
-+
-+	/* Configuring the Error Generator */
-+	sr_modify_reg(sr, ERRCONFIG_V2, (SR_ERRWEIGHT_MASK |
-+		SR_ERRMAXLIMIT_MASK | SR_ERRMINLIMIT_MASK),
-+		((sens->opp_data[sens->curr_opp].err_weight <<
-+                        ERRCONFIG_ERRWEIGHT_SHIFT) |
-+		(sens->opp_data[sens->curr_opp].err_maxlimit <<
-+                        ERRCONFIG_ERRMAXLIMIT_SHIFT) |
-+		(sens->opp_data[sens->curr_opp].err_minlimit <<
-+                        ERRCONFIG_ERRMINLIMIT_SHIFT)),
-+		srid);
-+}
-+
-+/* sr_enable - Enable SR module
-+ * @sr:		contains SR driver data
-+ * @srid:	contains the srid, specify whether it is CORE or MPU
-+ *
-+ * Enable SR module by writing nTarget values to corresponding SR
-+ * NVALUERECIPROCAL register, enable the interrupt and enable SR
-+ */
-+static void sr_enable(struct am33xx_sr *sr, u32 srid)
-+{
-+        struct am33xx_sr_sensor *sens;
-+
-+        sens = &sr->sen[srid];
-+
-+	/* Check if SR is already enabled. If yes do nothing */
-+	if (sr_read_reg(sr, SRCONFIG, srid) & SRCONFIG_SRENABLE)
-+		return;
-+
-+	if (sens->opp_data[sens->curr_opp].nvalue == 0)
-+		dev_err(&sr->pdev->dev,
-+                        "%s: OPP doesn't support SmartReflex\n", __func__);
-+
-+	/* Writing the nReciprocal value to the register */
-+	sr_write_reg(sr, NVALUERECIPROCAL,
-+                sens->opp_data[sens->curr_opp].adj_nvalue, srid);
-+
-+	/* Enable the interrupt */
-+	sr_modify_reg(sr, IRQENABLE_SET, IRQENABLE_MCUBOUNDSINT,
-+				IRQENABLE_MCUBOUNDSINT, srid);
-+
-+	/* SRCONFIG - enable SR */
-+	sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
-+				SRCONFIG_SRENABLE, srid);
-+}
-+
-+/* sr_disable - Disable SR module
-+ * @sr:		contains SR driver data
-+ * @srid:	contains the srid, specify whether it is CORE or MPU
-+ *
-+ * Disable SR module by disabling the interrupt and Smartreflex module
-+ */
-+static void sr_disable(struct am33xx_sr *sr, u32 srid)
-+{
-+	/* Disable the interrupt */
-+	sr_modify_reg(sr, IRQENABLE_CLR, IRQENABLE_MCUBOUNDSINT,
-+				IRQENABLE_MCUBOUNDSINT, srid);
-+
-+	/* SRCONFIG - disable SR */
-+	sr_modify_reg(sr, SRCONFIG, SRCONFIG_SRENABLE,
-+				~SRCONFIG_SRENABLE, srid);
-+}
-+
-+/* sr_start_vddautocomp - Start VDD auto compensation
-+ * @sr:		contains SR driver data
-+ *
-+ * This is the starting point for AVS enable from user space.
-+ * Also used to re-enable SR after OPP change.
-+ */
-+static void sr_start_vddautocomp(struct am33xx_sr *sr)
-+{
-+	int i;
-+
-+	if ((sr->sen[SR_CORE].opp_data[0].nvalue == 0) ||
-+                (sr->sen[SR_MPU].opp_data[0].nvalue == 0)) {
-+		dev_err(&sr->pdev->dev, "SR module not enabled, nTarget"
-+					" values are not found\n");
-+		return;
-+	}
-+
-+	if (sr->autocomp_active == 1) {
-+		dev_warn(&sr->pdev->dev, "SR VDD autocomp already active\n");
-+		return;
-+	}
-+
-+	for (i = 0; i < sr->no_of_sens; i++) {
-+               	/* Read current regulator value and voltage */
-+	        sr->sen[i].init_volt_mv = regulator_get_voltage(sr->sen[i].reg);
-+
-+                dev_dbg(&sr->pdev->dev, "%s: regulator %d, init_volt = %d\n",
-+                        __func__, i, sr->sen[i].init_volt_mv);
-+
-+		if (sr_clk_enable(sr, i))
-+                        return;
-+		sr_configure(sr, i);
-+		sr_enable(sr, i);
-+	}
-+
-+	sr->autocomp_active = 1;
-+}
-+
-+/* sr_stop_vddautocomp - Stop VDD auto compensation
-+ * @sr:		contains SR driver data
-+ *
-+ * This is the ending point during SR disable from user space.
-+ * Also used to disable SR after OPP change.
-+ */
-+static void sr_stop_vddautocomp(struct am33xx_sr *sr)
-+{
-+	int i;
-+
-+	if (sr->autocomp_active == 0) {
-+		dev_warn(&sr->pdev->dev, "SR VDD autocomp is not active\n");
-+		return;
-+	}
-+
-+        /* cancel bottom half interrupt handlers that haven't run yet */
-+	cancel_delayed_work_sync(&sr->work);
-+
-+	for (i = 0; i < sr->no_of_sens; i++) {
-+                /* cancel any outstanding SR IRQ re-enables on work queue */
-+                cancel_delayed_work_sync(&sr->sen[i].work_reenable);
-+		sr_disable(sr, i);
-+		sr_clk_disable(sr, i);
-+	}
-+
-+	sr->autocomp_active = 0;
-+}
-+
-+/* am33xx_sr_autocomp_show - Store user input value and stop SR
-+ * @data:		contains SR driver data
-+ * @val:		pointer to store autocomp_active status
-+ *
-+ * This is the Debug Fs enteries to show whether SR is enabled
-+ * or disabled
-+ */
-+static int am33xx_sr_autocomp_show(void *data, u64 *val)
-+{
-+	struct am33xx_sr *sr_info = (struct am33xx_sr *) data;
-+
-+	*val = (u64) sr_info->autocomp_active;
-+
-+	return 0;
-+}
-+
-+static int am33xx_sr_margin_show(void *data, u64 *val)
-+{
-+        struct am33xx_sr_opp_data *sr_opp_data = (struct am33xx_sr_opp_data *)data;
-+
-+	*val = (u64) sr_opp_data->margin;
-+
-+	return 0;
-+}
-+
-+static int am33xx_sr_margin_update(void *data, u64 val)
-+{
-+        struct am33xx_sr_opp_data *sr_opp_data =
-+                (struct am33xx_sr_opp_data *)data;
-+        struct am33xx_sr_sensor *sr_sensor;
-+        struct am33xx_sr *sr_info;
-+
-+        /* work back to the sr_info pointer */
-+        sr_sensor = container_of((void *)sr_opp_data, struct am33xx_sr_sensor,
-+                opp_data[sr_opp_data->opp_id]);
-+
-+        sr_info = container_of((void *)sr_sensor, struct am33xx_sr,
-+                sen[sr_sensor->sr_id]);
-+
-+        /* store the value of margin */
-+        sr_opp_data->margin = (s32)val;
-+
-+        dev_warn(&sr_info->pdev->dev, "%s: new margin=%d, srid=%d, opp=%d\n",
-+                __func__, sr_opp_data->margin, sr_sensor->sr_id,
-+                sr_opp_data->opp_id);
-+
-+        /* updata ntarget values based upon new margin */
-+        if (sr_set_nvalues(sr_info, sr_sensor->sr_id) == -EINVAL)
-+                dev_err(&sr_info->pdev->dev,
-+                        "%s: Zero NValue read from EFUSE\n", __func__);
-+
-+        /* restart SmartReflex to adapt to new values */
-+        sr_stop_vddautocomp(sr_info);
-+        sr_start_vddautocomp(sr_info);
-+
-+        return 0;
-+}
-+
-+/* am33xx_sr_autocomp_store - Store user input and start SR
-+ * @data:		contains SR driver data
-+ * @val:		contains the value pased by user
-+ *
-+ * This is the Debug Fs enteries to store user input and
-+ * enable smartreflex.
-+ */
-+static int am33xx_sr_autocomp_store(void *data, u64 val)
-+{
-+	struct am33xx_sr *sr_info = (struct am33xx_sr *) data;
-+
-+	/* Sanity check */
-+	if (val && (val != 1)) {
-+		dev_warn(&sr_info->pdev->dev, "%s: Invalid argument %llu\n",
-+		        __func__, val);
-+		return -EINVAL;
-+	}
-+
-+	if (!val) {
-+                sr_info->disabled_by_user = 1;
-+		sr_stop_vddautocomp(sr_info);
-+        }
-+	else {
-+                sr_info->disabled_by_user = 0;
-+		sr_start_vddautocomp(sr_info);
-+        }
-+
-+	return 0;
-+}
-+
-+DEFINE_SIMPLE_ATTRIBUTE(sr_fops, am33xx_sr_autocomp_show,
-+		am33xx_sr_autocomp_store, "%llu\n");
-+
-+/* sr_curr_volt_show - Show current voltage value
-+ * @data:		contains SR driver data
-+ * @val:		pointer to store current voltage value
-+ *
-+ * Read the current voltage value and display the same on console
-+ * This is used in debugfs entries
-+ */
-+static int am33xx_sr_curr_volt_show(void *data, u64 *val)
-+{
-+	struct am33xx_sr_sensor *sr_sensor = (struct am33xx_sr_sensor *) data;
-+
-+	*val = (u64) regulator_get_voltage(sr_sensor->reg);
-+
-+	return 0;
-+}
-+
-+DEFINE_SIMPLE_ATTRIBUTE(curr_volt_fops, am33xx_sr_curr_volt_show,
-+		NULL, "%llu\n");
-+
-+DEFINE_SIMPLE_ATTRIBUTE(margin_fops, am33xx_sr_margin_show,
-+		am33xx_sr_margin_update, "%llu\n");
-+
-+#ifdef CONFIG_DEBUG_FS
-+/* sr_debugfs_entries - Create debugfs entries
-+ * @sr_info:		contains SR driver data
-+ *
-+ * Create debugfs entries, which is exposed to user for knowing
-+ * the current status. Some of the parameters can change during
-+ * run time
-+ */
-+static int sr_debugfs_entries(struct am33xx_sr *sr_info)
-+{
-+        struct am33xx_sr_sensor *sens;
-+	struct dentry *dbg_dir, *sen_dir, *opp_dir;
-+	int i, j;
-+
-+	dbg_dir = debugfs_create_dir("smartreflex", NULL);
-+	if (IS_ERR(dbg_dir)) {
-+		dev_err(&sr_info->pdev->dev, "%s: Unable to create debugfs"
-+				" directory\n", __func__);
-+		return PTR_ERR(dbg_dir);
-+	}
-+
-+	(void) debugfs_create_file("autocomp", S_IRUGO | S_IWUGO, dbg_dir,
-+				(void *)sr_info, &sr_fops);
-+        (void) debugfs_create_u32("interrupt_delay", S_IRUGO | S_IWUGO,
-+				dbg_dir, &sr_info->irq_delay);
-+
-+	for (i = 0; i < sr_info->no_of_sens; i++) {
-+                sens = &sr_info->sen[i];
-+		sen_dir = debugfs_create_dir(sens->name, dbg_dir);
-+		if (IS_ERR(sen_dir)) {
-+			dev_err(&sr_info->pdev->dev, "%s: Unable to create"
-+				" debugfs directory\n", __func__);
-+			return PTR_ERR(sen_dir);
-+		}
-+
-+                (void)debugfs_create_u32("initial_voltage", S_IRUGO, sen_dir,
-+				&sens->init_volt_mv);
-+	        (void)debugfs_create_file("current_voltage", S_IRUGO, sen_dir,
-+				(void *)sens, &curr_volt_fops);
-+
-+                for (j = 0; j < sr_info->sen[i].no_of_opps; j++) {
-+                        char tmp[20];
-+
-+                        sprintf(&tmp[0], "opp%d", j);
-+                        opp_dir = debugfs_create_dir(tmp, sen_dir);
-+                        if (IS_ERR(opp_dir)) {
-+        			dev_err(&sr_info->pdev->dev,
-+                                        "%s: Unable to create debugfs directory\n",
-+                                        __func__);
-+        			return PTR_ERR(opp_dir);
-+        		}
-+
-+                        (void)debugfs_create_file("margin", S_IRUGO | S_IWUGO,
-+	        	       opp_dir, (void *)&sens->opp_data[j],
-+                               &margin_fops);
-+                        (void)debugfs_create_x32("err2voltgain",
-+                               S_IRUGO | S_IWUGO,
-+        		       opp_dir,
-+                               &sens->opp_data[j].e2v_gain);
-+        		(void)debugfs_create_x32("nvalue", S_IRUGO,
-+        		       opp_dir,
-+                               &sens->opp_data[j].nvalue);
-+                        (void)debugfs_create_x32("adj_nvalue", S_IRUGO,
-+        		       opp_dir,
-+                               &sens->opp_data[j].adj_nvalue);
-+                }
-+	}
-+	return 0;
-+}
-+#else
-+static int sr_debugfs_entries(struct am33xx_sr *sr_info)
-+{
-+	return 0;
-+}
-+#endif
-+
-+#ifdef CONFIG_CPU_FREQ
-+
-+/* Find and return current OPP.  This should change to use system APIs,
-+   but voltdm is not currently populated, and opp APIs are also not working. */
-+static int get_current_opp(struct am33xx_sr *sr, u32 srid, u32 freq)  {
-+        int i;
-+
-+        for (i = 0; i < sr->sen[srid].no_of_opps; i++) {
-+                if (sr->sen[srid].opp_data[i].frequency == freq)
-+                        return i;
-+        }
-+
-+        return -EINVAL;
-+}
-+
-+static int am33xx_sr_cpufreq_transition(struct notifier_block *nb,
-+					  unsigned long val, void *data)
-+{
-+        struct am33xx_sr *sr;
-+        struct cpufreq_freqs *cpu;
-+
-+	sr = container_of(nb, struct am33xx_sr, freq_transition);
-+
-+        /* We are required to disable SR while OPP change is occurring */
-+	if (val == CPUFREQ_PRECHANGE) {
-+                dev_dbg(&sr->pdev->dev, "%s: prechange\n", __func__);
-+                sr_stop_vddautocomp(sr);
-+	} else if (val == CPUFREQ_POSTCHANGE) {
-+                cpu = (struct cpufreq_freqs *)data;
-+                dev_dbg(&sr->pdev->dev,
-+                        "%s: postchange, cpu=%d, old=%d, new=%d\n",
-+                        __func__, cpu->cpu, cpu->old, cpu->new);
-+
-+                /* update current OPP */
-+                sr->sen[SR_MPU].curr_opp = get_current_opp(sr, SR_MPU,
-+                        cpu->new*1000);
-+                if (sr->sen[SR_MPU].curr_opp == -EINVAL) {
-+                        dev_err(&sr->pdev->dev, "%s: cannot determine opp\n",
-+                                __func__);
-+                        return -EINVAL;
-+                }
-+
-+                dev_dbg(&sr->pdev->dev, "%s: postchange, new opp=%d\n",
-+                        __func__, sr->sen[SR_MPU].curr_opp);
-+
-+                /* this handles the case when the user has disabled SR via
-+                   debugfs, therefore we do not want to enable SR */
-+                if (sr->disabled_by_user == 0)
-+                        sr_start_vddautocomp(sr);
-+	}
-+
-+	return 0;
-+}
-+
-+static inline int am33xx_sr_cpufreq_register(struct am33xx_sr *sr)
-+{
-+        sr->freq_transition.notifier_call = am33xx_sr_cpufreq_transition;
-+
-+	return cpufreq_register_notifier(&sr->freq_transition,
-+					 CPUFREQ_TRANSITION_NOTIFIER);
-+}
-+
-+static inline void am33xx_sr_cpufreq_deregister(struct am33xx_sr *sr)
-+{
-+	cpufreq_unregister_notifier(&sr->freq_transition,
-+				    CPUFREQ_TRANSITION_NOTIFIER);
-+}
-+
-+#endif
-+
-+static int __init am33xx_sr_probe(struct platform_device *pdev)
-+{
-+	struct am33xx_sr *sr_info;
-+	struct am33xx_sr_platform_data *pdata;
-+	struct resource *res[MAX_SENSORS];
-+	int irq;
-+	int ret;
-+	int i,j;
-+
-+	sr_info = kzalloc(sizeof(struct am33xx_sr), GFP_KERNEL);
-+	if (!sr_info) {
-+		dev_err(&pdev->dev, "%s: unable to allocate sr_info\n",
-+					__func__);
-+		return -ENOMEM;
-+	}
-+
-+	pdata = pdev->dev.platform_data;
-+	if (!pdata) {
-+		dev_err(&pdev->dev, "%s: platform data missing\n", __func__);
-+		ret = -EINVAL;
-+		goto err_free_sr_info;
-+	}
-+
-+	sr_info->pdev = pdev;
-+	sr_info->sen[SR_CORE].name = "smartreflex0";
-+	sr_info->sen[SR_MPU].name = "smartreflex1";
-+	sr_info->ip_type = pdata->ip_type;
-+        sr_info->irq_delay = pdata->irq_delay;
-+        sr_info->no_of_sens = pdata->no_of_sens;
-+        sr_info->no_of_vds = pdata->no_of_vds;
-+	sr_info->uvoltage_step_size = pdata->vstep_size_uv;
-+	sr_info->autocomp_active = false;
-+        sr_info->disabled_by_user = false;
-+
-+	for (i = 0; i < sr_info->no_of_sens; i++) {
-+                u32 curr_freq=0;
-+
-+                sr_info->sen[i].reg_name = pdata->vd_name[i];
-+
-+                /* this should be determined from voltdm or opp layer, but
-+                   those approaches are not working */
-+                sr_info->sen[i].no_of_opps = pdata->sr_sdata[i].no_of_opps;
-+                sr_info->sen[i].sr_id = i;
-+
-+                /* Reading per OPP Values */
-+                for (j = 0; j < sr_info->sen[i].no_of_opps; j++) {
-+        		sr_info->sen[i].opp_data[j].efuse_offs =
-+                                pdata->sr_sdata[i].sr_opp_data[j].efuse_offs;
-+                        sr_info->sen[i].opp_data[j].e2v_gain =
-+                                pdata->sr_sdata[i].sr_opp_data[j].e2v_gain;
-+        		sr_info->sen[i].opp_data[j].err_weight =
-+                                pdata->sr_sdata[i].sr_opp_data[j].err_weight;
-+        		sr_info->sen[i].opp_data[j].err_minlimit =
-+                                pdata->sr_sdata[i].sr_opp_data[j].err_minlimit;
-+        		sr_info->sen[i].opp_data[j].err_maxlimit =
-+                                pdata->sr_sdata[i].sr_opp_data[j].err_maxlimit;
-+                        sr_info->sen[i].opp_data[j].margin =
-+                                pdata->sr_sdata[i].sr_opp_data[j].margin;
-+                        sr_info->sen[i].opp_data[j].nominal_volt =
-+                                pdata->sr_sdata[i].sr_opp_data[j].nominal_volt;
-+                        sr_info->sen[i].opp_data[j].frequency =
-+                                pdata->sr_sdata[i].sr_opp_data[j].frequency;
-+                        sr_info->sen[i].opp_data[j].opp_id = j;
-+                }
-+
-+                if (i == SR_MPU) {
-+                        /* hardcoded CPU NR */
-+                        curr_freq = cpufreq_get(0);
-+
-+                        /* update current OPP */
-+                        sr_info->sen[i].curr_opp = get_current_opp(sr_info, i,
-+                                        curr_freq*1000);
-+                        if (sr_info->sen[i].curr_opp == -EINVAL) {
-+                                dev_err(&sr_info->pdev->dev,
-+                                        "%s: cannot determine opp\n",__func__);
-+                                ret = -EINVAL;
-+                                goto err_free_sr_info;
-+                        }
-+                } else {
-+                        sr_info->sen[i].curr_opp =
-+                                pdata->sr_sdata[i].default_opp;
-+                }
-+
-+                dev_dbg(&pdev->dev,
-+                        "%s: SR%d, curr_opp=%d, no_of_opps=%d, step_size=%d\n",
-+                        __func__, i, sr_info->sen[i].curr_opp,
-+                        sr_info->sen[i].no_of_opps,
-+                        sr_info->uvoltage_step_size);
-+
-+                ret = sr_set_nvalues(sr_info, i);
-+                if (ret == -EINVAL) {
-+                        dev_err(&sr_info->pdev->dev,
-+                                "%s: Zero NValue read from EFUSE\n", __func__);
-+                        goto err_free_sr_info;
-+                }
-+
-+                INIT_DELAYED_WORK(&sr_info->sen[i].work_reenable,
-+                        irq_sr_reenable);
-+
-+		sr_info->res_name[i] = kzalloc(CLK_NAME_LEN + 1, GFP_KERNEL);
-+
-+		/* resources */
-+		res[i] = platform_get_resource_byname(pdev, IORESOURCE_MEM,
-+					sr_info->sen[i].name);
-+		if (!res[i]) {
-+			dev_err(&pdev->dev, "%s: no mem resource\n", __func__);
-+			ret = -ENOENT;
-+			goto err_free_mem;
-+		}
-+
-+		irq = platform_get_irq_byname(pdev, sr_info->sen[i].name);
-+		if (irq < 0) {
-+			dev_err(&pdev->dev, "Can't get interrupt resource\n");
-+			ret = irq;
-+			goto err_free_mem;
-+		}
-+		sr_info->sen[i].irq = irq;
-+
-+		res[i] = request_mem_region(res[i]->start,
-+				resource_size(res[i]), pdev->name);
-+		if (!res[i]) {
-+			dev_err(&pdev->dev, "can't request mem region\n");
-+			ret = -EBUSY;
-+			goto err_free_mem;
-+		}
-+
-+		sr_info->sen[i].base = ioremap(res[i]->start,
-+				resource_size(res[i]));
-+		if (!sr_info->sen[i].base) {
-+			dev_err(&pdev->dev, "%s: ioremap fail\n", __func__);
-+			ret = -ENOMEM;
-+			goto err_release_mem;
-+		}
-+
-+		strcat(sr_info->res_name[i], sr_info->sen[i].name);
-+		strcat(sr_info->res_name[i], "_fck");
-+
-+		sr_info->sen[i].fck = clk_get(NULL, sr_info->res_name[i]);
-+		if (IS_ERR(sr_info->sen[i].fck)) {
-+			dev_err(&pdev->dev, "%s: Could not get sr fck\n",
-+						__func__);
-+			ret = PTR_ERR(sr_info->sen[i].fck);
-+			goto err_unmap;
-+		}
-+
-+		ret = request_irq(sr_info->sen[i].irq, sr_class2_irq,
-+			IRQF_DISABLED, sr_info->sen[i].name,
-+                        (void *)&sr_info->sen[i]);
-+		if (ret) {
-+			dev_err(&pdev->dev, "%s: Could not install SR ISR\n",
-+						__func__);
-+			goto err_put_clock;
-+		}
-+
-+		sr_info->sen[i].senn_en = pdata->sr_sdata[i].senn_mod;
-+		sr_info->sen[i].senp_en = pdata->sr_sdata[i].senp_mod;
-+
-+                sr_info->sen[i].reg =
-+                        regulator_get(NULL, sr_info->sen[i].reg_name);
-+               	if (IS_ERR(sr_info->sen[i].reg)) {
-+                        ret = -EINVAL;
-+	                goto err_free_irq;
-+                }
-+
-+               	/* Read current regulator value and voltage */
-+	        sr_info->sen[i].init_volt_mv =
-+                        regulator_get_voltage(sr_info->sen[i].reg);
-+
-+                dev_dbg(&pdev->dev, "%s: regulator %d, init_volt = %d\n",
-+                        __func__, i, sr_info->sen[i].init_volt_mv);
-+	} /* for() */
-+
-+        /* set_voltage() will be used as the bottom half IRQ handler */
-+	INIT_DELAYED_WORK(&sr_info->work, set_voltage);
-+
-+#ifdef CONFIG_CPU_FREQ
-+	ret = am33xx_sr_cpufreq_register(sr_info);
-+	if (ret) {
-+		dev_err(&pdev->dev, "failed to register cpufreq\n");
-+		goto err_reg_put;
-+	}
-+#endif
-+
-+	/* debugfs entries */
-+	ret = sr_debugfs_entries(sr_info);
-+	if (ret)
-+		dev_warn(&pdev->dev, "%s: Debugfs entries are not created\n",
-+						__func__);
-+
-+	platform_set_drvdata(pdev, sr_info);
-+
-+	dev_info(&pdev->dev, "%s: Driver initialized\n", __func__);
-+
-+        /* disabled_by_user used to ensure SR doesn't come on via CPUFREQ
-+           scaling if user has disabled SR via debugfs on enable_on_init */
-+	if (pdata->enable_on_init)
-+		sr_start_vddautocomp(sr_info);
-+        else
-+                sr_info->disabled_by_user = 1;
-+
-+	return ret;
-+
-+#ifdef CONFIG_CPU_FREQ
-+	am33xx_sr_cpufreq_deregister(sr_info);
-+#endif
-+
-+err_reg_put:
-+        i--; /* back up i by one to walk back through the for loop */
-+        regulator_put(sr_info->sen[i].reg);
-+err_free_irq:
-+	free_irq(sr_info->sen[i].irq, (void *)sr_info);
-+err_put_clock:
-+	clk_put(sr_info->sen[i].fck);
-+err_unmap:
-+	iounmap(sr_info->sen[i].base);
-+err_release_mem:
-+	release_mem_region(res[i]->start, resource_size(res[i]));
-+err_free_mem:
-+        kfree(sr_info->res_name[i]);
-+        /* unwind back through the for loop */
-+        if (i != 0) {
-+                goto err_reg_put;
-+        }
-+
-+err_free_sr_info:
-+	kfree(sr_info);
-+	return ret;
-+}
-+
-+static int __devexit am33xx_sr_remove(struct platform_device *pdev)
-+{
-+	struct am33xx_sr *sr_info;
-+	struct resource *res[MAX_SENSORS];
-+	int irq;
-+	int i;
-+
-+	sr_info = dev_get_drvdata(&pdev->dev);
-+	if (!sr_info) {
-+		dev_err(&pdev->dev, "%s: sr_info missing\n", __func__);
-+		return -EINVAL;
-+	}
-+
-+	if (sr_info->autocomp_active)
-+		sr_stop_vddautocomp(sr_info);
-+
-+#ifdef CONFIG_CPU_FREQ
-+	am33xx_sr_cpufreq_deregister(sr_info);
-+#endif
-+
-+	for (i = 0; i < sr_info->no_of_sens; i++) {
-+                regulator_put(sr_info->sen[i].reg);
-+                irq = platform_get_irq_byname(pdev, sr_info->sen[i].name);
-+		free_irq(irq, (void *)sr_info);
-+		clk_put(sr_info->sen[i].fck);
-+		iounmap(sr_info->sen[i].base);
-+		res[i] = platform_get_resource_byname(pdev,
-+				IORESOURCE_MEM, sr_info->sen[i].name);
-+		release_mem_region(res[i]->start, resource_size(res[i]));
-+                kfree(sr_info->res_name[i]);
-+	}
-+
-+	kfree(sr_info);
-+
-+        dev_info(&pdev->dev, "%s: SR has been removed\n", __func__);
-+	return 0;
-+}
-+
-+static struct platform_driver smartreflex_driver = {
-+	.driver		= {
-+		.name	= "smartreflex",
-+		.owner	= THIS_MODULE,
-+	},
-+	.remove		= am33xx_sr_remove,
-+};
-+
-+static int __init sr_init(void)
-+{
-+	int ret;
-+
-+	ret = platform_driver_probe(&smartreflex_driver, am33xx_sr_probe);
-+	if (ret) {
-+		pr_err("%s: platform driver register failed\n", __func__);
-+		return ret;
-+	}
-+
-+	return 0;
-+}
-+
-+static void __exit sr_exit(void)
-+{
-+	platform_driver_unregister(&smartreflex_driver);
-+}
-+late_initcall(sr_init);
-+module_exit(sr_exit);
-+
-+MODULE_DESCRIPTION("AM33XX Smartreflex Class2 Driver");
-+MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:" DRIVER_NAME);
-+MODULE_AUTHOR("Texas Instruments Inc");
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 0bcadd7..6e1c026 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1410,6 +1410,7 @@ static struct regulator_init_data tps65217_regulator_data[] = {
-		.num_consumer_supplies = ARRAY_SIZE(tps65217_dcdc2_consumers),
-		.consumer_supplies = tps65217_dcdc2_consumers,
-		.driver_data = &dcdc2_ramp_delay,
-+		.ignore_check_consumers = 1,
-	},
-
-	/* dcdc3 */
-@@ -1424,6 +1425,7 @@ static struct regulator_init_data tps65217_regulator_data[] = {
-		},
-		.num_consumer_supplies = ARRAY_SIZE(tps65217_dcdc3_consumers),
-		.consumer_supplies = tps65217_dcdc3_consumers,
-+		.ignore_check_consumers = 1,
-	},
-
-	/* ldo1 */
-@@ -2214,6 +2216,9 @@ static void am335x_evm_setup(struct memory_accessor *mem_acc, void *context)
-			goto out;
-	}
-
-+	/* SmartReflex also requires board information. */
-+	am33xx_sr_init();
-+
-	return;
-
- out:
-@@ -2265,6 +2270,7 @@ static struct regulator_init_data am335x_vdd1 = {
-	},
-	.num_consumer_supplies	= ARRAY_SIZE(am335x_vdd1_supply),
-	.consumer_supplies	= am335x_vdd1_supply,
-+	.ignore_check_consumers = 1,
- };
-
- static struct regulator_consumer_supply am335x_vdd2_supply[] = {
-@@ -2281,6 +2287,7 @@ static struct regulator_init_data am335x_vdd2 = {
-	},
-	.num_consumer_supplies	= ARRAY_SIZE(am335x_vdd2_supply),
-	.consumer_supplies	= am335x_vdd2_supply,
-+	.ignore_check_consumers = 1,
- };
-
- static struct tps65910_board am335x_tps65910_info = {
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index 6113654..ebf0d9e 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -52,6 +52,7 @@
- #include <plat/config_pwm.h>
- #include <plat/cpu.h>
- #include <plat/gpmc.h>
-+#include <plat/smartreflex.h>
- #include <plat/am33xx.h>
-
- /* LCD controller similar DA8xx */
-@@ -60,10 +61,28 @@
- #include "mux.h"
- #include "control.h"
- #include "devices.h"
-+#include "omap_opp_data.h"
-
- #define L3_MODULES_MAX_LEN 12
- #define L3_MODULES 3
-
-+static unsigned int   am33xx_evmid;
-+
-+/*
-+ * am33xx_evmid_fillup - set up board evmid
-+ * @evmid - evm id which needs to be configured
-+ *
-+ * This function is called to configure board evm id.
-+ * IA Motor Control EVM needs special setting of MAC PHY Id.
-+ * This function is called when IA Motor Control EVM is detected
-+ * during boot-up.
-+ */
-+void am33xx_evmid_fillup(unsigned int evmid)
-+{
-+       am33xx_evmid = evmid;
-+       return;
-+}
-+
- static int __init omap3_l3_init(void)
- {
-	int l;
-@@ -1226,6 +1245,256 @@ static struct platform_device am335x_sgx = {
-
- #endif
-
-+#ifdef CONFIG_AM33XX_SMARTREFLEX
-+
-+/* smartreflex platform data */
-+
-+/* The values below are based upon silicon characterization data.
-+ * Each OPP and sensor combination potentially has different values.
-+ * The values of ERR2VOLT_GAIN and ERR_MIN_LIMIT also change based on
-+ * the PMIC step size.  Values have been given to cover the AM335 EVM
-+ * (12.5mV step) and the Beaglebone (25mV step).  If the step
-+ * size changes, you should update these values, and don't forget to
-+ * change the step size in the platform data structure, am33xx_sr_pdata.
-+ */
-+
-+#define AM33XX_SR0_OPP50_CNTRL_OFFSET          0x07B8
-+#define AM33XX_SR0_OPP50_EVM_ERR2VOLT_GAIN     0xC
-+#define AM33XX_SR0_OPP50_EVM_ERR_MIN_LIMIT     0xF5
-+#define AM33XX_SR0_OPP50_BB_ERR2VOLT_GAIN      0x6
-+#define AM33XX_SR0_OPP50_BB_ERR_MIN_LIMIT      0xEA
-+#define AM33XX_SR0_OPP50_ERR_MAX_LIMIT         0x2
-+#define AM33XX_SR0_OPP50_ERR_WEIGHT             0x4
-+#define AM33XX_SR0_OPP50_MARGIN                 0
-+
-+#define AM33XX_SR0_OPP100_CNTRL_OFFSET         0x07BC
-+#define AM33XX_SR0_OPP100_EVM_ERR2VOLT_GAIN     0x12
-+#define AM33XX_SR0_OPP100_EVM_ERR_MIN_LIMIT    0xF8
-+#define AM33XX_SR0_OPP100_BB_ERR2VOLT_GAIN      0x9
-+#define AM33XX_SR0_OPP100_BB_ERR_MIN_LIMIT     0xF1
-+#define AM33XX_SR0_OPP100_ERR_MAX_LIMIT                0x2
-+#define AM33XX_SR0_OPP100_ERR_WEIGHT            0x4
-+#define AM33XX_SR0_OPP100_MARGIN                0
-+
-+#define AM33XX_SR1_OPP50_CNTRL_OFFSET          0x0770
-+#define AM33XX_SR1_OPP50_EVM_ERR2VOLT_GAIN     0x5
-+#define AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT     0xE6
-+#define AM33XX_SR1_OPP50_BB_ERR2VOLT_GAIN      0x2
-+#define AM33XX_SR1_OPP50_BB_ERR_MIN_LIMIT      0xC0
-+#define AM33XX_SR1_OPP50_ERR_MAX_LIMIT         0x2
-+#define AM33XX_SR1_OPP50_ERR_WEIGHT             0x4
-+#define AM33XX_SR1_OPP50_MARGIN                 0
-+
-+#define AM33XX_SR1_OPP100_CNTRL_OFFSET         0x0774
-+#define AM33XX_SR1_OPP100_EVM_ERR2VOLT_GAIN    0x8
-+#define AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT    0xF0
-+#define AM33XX_SR1_OPP100_BB_ERR2VOLT_GAIN     0x4
-+#define AM33XX_SR1_OPP100_BB_ERR_MIN_LIMIT     0xDF
-+#define AM33XX_SR1_OPP100_ERR_MAX_LIMIT                0x2
-+#define AM33XX_SR1_OPP100_ERR_WEIGHT            0x4
-+#define AM33XX_SR1_OPP100_MARGIN                0
-+
-+#define AM33XX_SR1_OPP120_CNTRL_OFFSET         0x0778
-+#define AM33XX_SR1_OPP120_EVM_ERR2VOLT_GAIN    0xB
-+#define AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT    0xF4
-+#define AM33XX_SR1_OPP120_BB_ERR2VOLT_GAIN     0x5
-+#define AM33XX_SR1_OPP120_BB_ERR_MIN_LIMIT     0xE6
-+#define AM33XX_SR1_OPP120_ERR_MAX_LIMIT                0x2
-+#define AM33XX_SR1_OPP120_ERR_WEIGHT            0x4
-+#define AM33XX_SR1_OPP120_MARGIN                0
-+
-+#define AM33XX_SR1_OPPTURBO_CNTRL_OFFSET        0x077C
-+#define AM33XX_SR1_OPPTURBO_EVM_ERR2VOLT_GAIN  0xC
-+#define AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT  0xF5
-+#define AM33XX_SR1_OPPTURBO_BB_ERR2VOLT_GAIN   0x6
-+#define AM33XX_SR1_OPPTURBO_BB_ERR_MIN_LIMIT   0xEA
-+#define AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT      0x2
-+#define AM33XX_SR1_OPPTURBO_ERR_WEIGHT          0x4
-+#define AM33XX_SR1_OPPTURBO_MARGIN              0
-+
-+/* the voltages and frequencies should probably be defined in opp3xxx_data.c.
-+   Once SR is integrated to the mainline driver, and voltdm is working
-+   correctly in AM335x, these can be removed.  */
-+#define AM33XX_VDD_MPU_OPP50_UV                950000
-+#define AM33XX_VDD_MPU_OPP100_UV       1100000
-+#define AM33XX_VDD_MPU_OPP120_UV       1200000
-+#define AM33XX_VDD_MPU_OPPTURBO_UV     1260000
-+#define AM33XX_VDD_CORE_OPP50_UV        950000
-+#define AM33XX_VDD_CORE_OPP100_UV       1100000
-+
-+#define AM33XX_VDD_MPU_OPP50_FREQ      275000000
-+#define AM33XX_VDD_MPU_OPP100_FREQ     500000000
-+#define AM33XX_VDD_MPU_OPP120_FREQ     600000000
-+#define AM33XX_VDD_MPU_OPPTURBO_FREQ   720000000
-+
-+static struct am33xx_sr_opp_data sr1_opp_data[] = {
-+        {
-+                .efuse_offs    = AM33XX_SR1_OPP50_CNTRL_OFFSET,
-+               .e2v_gain       = AM33XX_SR1_OPP50_EVM_ERR2VOLT_GAIN,
-+               .err_minlimit   = AM33XX_SR1_OPP50_EVM_ERR_MIN_LIMIT,
-+               .err_maxlimit   = AM33XX_SR1_OPP50_ERR_MAX_LIMIT,
-+               .err_weight     = AM33XX_SR1_OPP50_ERR_WEIGHT,
-+                .margin         = AM33XX_SR1_OPP50_MARGIN,
-+                .nominal_volt   = AM33XX_VDD_MPU_OPP50_UV,
-+                .frequency      = AM33XX_VDD_MPU_OPP50_FREQ,
-+        },
-+        {
-+                .efuse_offs    = AM33XX_SR1_OPP100_CNTRL_OFFSET,
-+               .e2v_gain       = AM33XX_SR1_OPP100_EVM_ERR2VOLT_GAIN,
-+               .err_minlimit   = AM33XX_SR1_OPP100_EVM_ERR_MIN_LIMIT,
-+               .err_maxlimit   = AM33XX_SR1_OPP100_ERR_MAX_LIMIT,
-+               .err_weight     = AM33XX_SR1_OPP100_ERR_WEIGHT,
-+                .margin         = AM33XX_SR1_OPP100_MARGIN,
-+                .nominal_volt   = AM33XX_VDD_MPU_OPP100_UV,
-+                .frequency      = AM33XX_VDD_MPU_OPP100_FREQ,
-+        },
-+        {
-+                .efuse_offs    = AM33XX_SR1_OPP120_CNTRL_OFFSET,
-+               .e2v_gain       = AM33XX_SR1_OPP120_EVM_ERR2VOLT_GAIN,
-+               .err_minlimit   = AM33XX_SR1_OPP120_EVM_ERR_MIN_LIMIT,
-+               .err_maxlimit   = AM33XX_SR1_OPP120_ERR_MAX_LIMIT,
-+               .err_weight     = AM33XX_SR1_OPP120_ERR_WEIGHT,
-+                .margin         = AM33XX_SR1_OPP120_MARGIN,
-+                .nominal_volt   = AM33XX_VDD_MPU_OPP120_UV,
-+                .frequency      = AM33XX_VDD_MPU_OPP120_FREQ,
-+        },
-+        {
-+                .efuse_offs    = AM33XX_SR1_OPPTURBO_CNTRL_OFFSET,
-+               .e2v_gain       = AM33XX_SR1_OPPTURBO_EVM_ERR2VOLT_GAIN,
-+               .err_minlimit   = AM33XX_SR1_OPPTURBO_EVM_ERR_MIN_LIMIT,
-+               .err_maxlimit   = AM33XX_SR1_OPPTURBO_ERR_MAX_LIMIT,
-+               .err_weight     = AM33XX_SR1_OPPTURBO_ERR_WEIGHT,
-+                .margin         = AM33XX_SR1_OPPTURBO_MARGIN,
-+                .nominal_volt   = AM33XX_VDD_MPU_OPPTURBO_UV,
-+                .frequency      = AM33XX_VDD_MPU_OPPTURBO_FREQ,
-+        },
-+};
-+
-+static struct am33xx_sr_opp_data sr0_opp_data[] = {
-+        {
-+                .efuse_offs    = AM33XX_SR0_OPP50_CNTRL_OFFSET,
-+               .e2v_gain       = AM33XX_SR0_OPP50_EVM_ERR2VOLT_GAIN,
-+               .err_minlimit   = AM33XX_SR0_OPP50_EVM_ERR_MIN_LIMIT,
-+               .err_maxlimit   = AM33XX_SR0_OPP50_ERR_MAX_LIMIT,
-+               .err_weight     = AM33XX_SR0_OPP50_ERR_WEIGHT,
-+                .margin         = AM33XX_SR0_OPP50_MARGIN,
-+                .nominal_volt   = AM33XX_VDD_CORE_OPP50_UV,
-+        },
-+        {
-+                .efuse_offs    = AM33XX_SR0_OPP100_CNTRL_OFFSET,
-+               .e2v_gain       = AM33XX_SR0_OPP100_EVM_ERR2VOLT_GAIN,
-+               .err_minlimit   = AM33XX_SR0_OPP100_EVM_ERR_MIN_LIMIT,
-+               .err_maxlimit   = AM33XX_SR0_OPP100_ERR_MAX_LIMIT,
-+               .err_weight     = AM33XX_SR0_OPP100_ERR_WEIGHT,
-+                .margin         = AM33XX_SR0_OPP100_MARGIN,
-+                .nominal_volt   = AM33XX_VDD_CORE_OPP100_UV,
-+        },
-+};
-+
-+static struct am33xx_sr_sdata sr_sensor_data[] = {
-+       {
-+                .sr_opp_data    = sr0_opp_data,
-+                /* note that OPP50 is NOT used in Linux kernel for AM335x */
-+                .no_of_opps     = 0x2,
-+                .default_opp    = 0x1,
-+               .senn_mod       = 0x1,
-+               .senp_mod       = 0x1,
-+       },
-+       {
-+               .sr_opp_data    = sr1_opp_data,
-+                /* the opp data below should be determined
-+                   dynamically during SR probe */
-+                .no_of_opps     = 0x4,
-+                .default_opp    = 0x3,
-+               .senn_mod       = 0x1,
-+               .senp_mod       = 0x1,
-+       },
-+};
-+
-+static struct am33xx_sr_platform_data am33xx_sr_pdata = {
-+       .vd_name[0]             = "vdd_core",
-+        .vd_name[1]             = "vdd_mpu",
-+       .ip_type                = 2,
-+        .irq_delay              = 1000,
-+       .no_of_vds              = 2,
-+       .no_of_sens             = ARRAY_SIZE(sr_sensor_data),
-+       .vstep_size_uv          = 12500,
-+       .enable_on_init         = true,
-+       .sr_sdata               = sr_sensor_data,
-+};
-+
-+static struct resource am33xx_sr_resources[] = {
-+       {
-+               .name   =       "smartreflex0",
-+               .start  =       AM33XX_SR0_BASE,
-+               .end    =       AM33XX_SR0_BASE + SZ_4K - 1,
-+               .flags  =       IORESOURCE_MEM,
-+       },
-+       {
-+               .name   =       "smartreflex0",
-+               .start  =       AM33XX_IRQ_SMARTREFLEX0,
-+               .end    =       AM33XX_IRQ_SMARTREFLEX0,
-+               .flags  =       IORESOURCE_IRQ,
-+       },
-+       {
-+               .name   =       "smartreflex1",
-+               .start  =       AM33XX_SR1_BASE,
-+               .end    =       AM33XX_SR1_BASE + SZ_4K - 1,
-+               .flags  =       IORESOURCE_MEM,
-+       },
-+       {
-+               .name   =       "smartreflex1",
-+               .start  =       AM33XX_IRQ_SMARTREFLEX1,
-+               .end    =       AM33XX_IRQ_SMARTREFLEX1,
-+               .flags  =       IORESOURCE_IRQ,
-+       },
-+};
-+
-+/* VCORE for SR regulator init */
-+static struct platform_device am33xx_sr_device = {
-+       .name           = "smartreflex",
-+       .id             = -1,
-+       .num_resources  = ARRAY_SIZE(am33xx_sr_resources),
-+       .resource       = am33xx_sr_resources,
-+       .dev = {
-+               .platform_data = &am33xx_sr_pdata,
-+       },
-+};
-+
-+void __init am33xx_sr_init(void)
-+{
-+        /* For beaglebone, update voltage step size and related parameters
-+           appropriately.  All other AM33XX platforms are good with the
-+           structure defaults as initialized above. */
-+        if ((am33xx_evmid == BEAGLE_BONE_OLD) ||
-+                        (am33xx_evmid == BEAGLE_BONE_A3)) {
-+                printk(KERN_ERR "address of pdata = %08x\n", (u32)&am33xx_sr_pdata);
-+                am33xx_sr_pdata.vstep_size_uv = 25000;
-+                /* CORE */
-+                sr0_opp_data[0].e2v_gain     = AM33XX_SR0_OPP50_BB_ERR2VOLT_GAIN;
-+                sr0_opp_data[0].err_minlimit = AM33XX_SR0_OPP50_BB_ERR_MIN_LIMIT;
-+                sr0_opp_data[1].e2v_gain     = AM33XX_SR0_OPP100_BB_ERR2VOLT_GAIN;
-+                sr0_opp_data[1].err_minlimit = AM33XX_SR0_OPP100_BB_ERR_MIN_LIMIT;
-+                /* MPU */
-+                sr1_opp_data[0].e2v_gain     = AM33XX_SR1_OPP50_BB_ERR2VOLT_GAIN;
-+                sr1_opp_data[0].err_minlimit = AM33XX_SR1_OPP50_BB_ERR_MIN_LIMIT;
-+                sr1_opp_data[1].e2v_gain     = AM33XX_SR1_OPP100_BB_ERR2VOLT_GAIN;
-+                sr1_opp_data[1].err_minlimit = AM33XX_SR1_OPP100_BB_ERR_MIN_LIMIT;
-+                sr1_opp_data[2].e2v_gain     = AM33XX_SR1_OPP120_BB_ERR2VOLT_GAIN;
-+                sr1_opp_data[2].err_minlimit = AM33XX_SR1_OPP120_BB_ERR_MIN_LIMIT;
-+                sr1_opp_data[3].e2v_gain     = AM33XX_SR1_OPPTURBO_BB_ERR2VOLT_GAIN;
-+                sr1_opp_data[3].err_minlimit = AM33XX_SR1_OPPTURBO_BB_ERR_MIN_LIMIT;
-+        }
-+
-+       if (platform_device_register(&am33xx_sr_device))
-+               printk(KERN_ERR "failed to register am33xx_sr device\n");
-+       else
-+               printk(KERN_INFO "registered am33xx_sr device\n");
-+}
-+#else
-+inline void am33xx_sr_init(void) {}
-+#endif
-+
- /*-------------------------------------------------------------------------*/
-
- static int __init omap2_init_devices(void)
-diff --git a/arch/arm/mach-omap2/include/mach/board-am335xevm.h b/arch/arm/mach-omap2/include/mach/board-am335xevm.h
-index 1d24495..85a8df0 100644
---- a/arch/arm/mach-omap2/include/mach/board-am335xevm.h
-+++ b/arch/arm/mach-omap2/include/mach/board-am335xevm.h
-@@ -41,6 +41,7 @@
- void am335x_evm_set_id(unsigned int evmid);
- int am335x_evm_get_id(void);
- void am33xx_cpsw_macidfillup(char *eeprommacid0, char *eeprommacid1);
-+void am33xx_sr_init(void);
- void am33xx_d_can_init(unsigned int instance);
-
- #endif
-diff --git a/arch/arm/plat-omap/Kconfig b/arch/arm/plat-omap/Kconfig
-index 734009a..33f17f2 100644
---- a/arch/arm/plat-omap/Kconfig
-+++ b/arch/arm/plat-omap/Kconfig
-@@ -43,6 +43,27 @@ config OMAP_DEBUG_LEDS
-	depends on OMAP_DEBUG_DEVICES
-	default y if LEDS_CLASS
-
-+config AM33XX_SMARTREFLEX
-+	bool "AM33XX SmartReflex support"
-+	depends on (SOC_OMAPAM33XX) && PM
-+	help
-+	  Say Y if you want to enable SmartReflex.
-+
-+	  SmartReflex can perform continuous dynamic voltage
-+	  scaling around the nominal operating point voltage
-+	  according to silicon characteristics and operating
-+	  conditions. Enabling SmartReflex reduces active power
-+	  consumption.
-+
-+	  Please note, that by default SmartReflex is enabled.
-+          To disable the automatic voltage compensation for
-+          vdd mpu and vdd core from user space, user must
-+          write 1 to /debug/smartreflex/autocomp.
-+
-+	  Optionally autocompensation can be disabled in the kernel
-+	  by default during system init via the enable_on_init flag
-+	  which an be passed as platform data to the smartreflex driver.
-+
- config OMAP_SMARTREFLEX
-	bool "SmartReflex support"
-	depends on (ARCH_OMAP3 || ARCH_OMAP4) && PM
-diff --git a/arch/arm/plat-omap/include/plat/am33xx.h b/arch/arm/plat-omap/include/plat/am33xx.h
-index 32522df..a628b1f 100644
---- a/arch/arm/plat-omap/include/plat/am33xx.h
-+++ b/arch/arm/plat-omap/include/plat/am33xx.h
-@@ -43,6 +43,9 @@
- #define AM33XX_TSC_BASE		0x44E0D000
- #define AM33XX_RTC_BASE		0x44E3E000
-
-+#define AM33XX_SR0_BASE         0x44E37000
-+#define AM33XX_SR1_BASE         0x44E39000
-+
- #define AM33XX_ASP0_BASE	0x48038000
- #define AM33XX_ASP1_BASE	0x4803C000
-
-diff --git a/arch/arm/plat-omap/include/plat/smartreflex.h b/arch/arm/plat-omap/include/plat/smartreflex.h
-new file mode 100644
-index 0000000..36338f7
---- /dev/null
-+++ b/arch/arm/plat-omap/include/plat/smartreflex.h
-@@ -0,0 +1,431 @@
-+/*
-+ * OMAP Smartreflex Defines and Routines
-+ *
-+ * Author: Thara Gopinath	<thara at ti.com>
-+ *
-+ * Copyright (C) 2010 Texas Instruments, Inc.
-+ * Thara Gopinath <thara at ti.com>
-+ *
-+ * Copyright (C) 2008 Nokia Corporation
-+ * Kalle Jokiniemi
-+ *
-+ * Copyright (C) 2007 Texas Instruments, Inc.
-+ * Lesly A M <x0080970 at ti.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#ifndef __ASM_ARM_OMAP_SMARTREFLEX_H
-+#define __ASM_ARM_OMAP_SMARTREFLEX_H
-+
-+#include <linux/platform_device.h>
-+#include <plat/voltage.h>
-+
-+/*
-+ * Different Smartreflex IPs version. The v1 is the 65nm version used in
-+ * OMAP3430. The v2 is the update for the 45nm version of the IP
-+ * used in OMAP3630 and OMAP4430
-+ */
-+#define SR_TYPE_V1	1
-+#define SR_TYPE_V2	2
-+
-+/* SMART REFLEX REG ADDRESS OFFSET */
-+#define SRCONFIG		0x00
-+#define SRSTATUS		0x04
-+#define SENVAL			0x08
-+#define SENMIN			0x0C
-+#define SENMAX			0x10
-+#define SENAVG			0x14
-+#define AVGWEIGHT		0x18
-+#define NVALUERECIPROCAL	0x1c
-+#define SENERROR_V1		0x20
-+#define ERRCONFIG_V1		0x24
-+#define IRQ_EOI			0x20
-+#define IRQSTATUS_RAW		0x24
-+#define IRQSTATUS		0x28
-+#define IRQENABLE_SET		0x2C
-+#define IRQENABLE_CLR		0x30
-+#define SENERROR_V2		0x34
-+#define ERRCONFIG_V2		0x38
-+
-+/* Bit/Shift Positions */
-+
-+/* SRCONFIG */
-+#define SRCONFIG_ACCUMDATA_SHIFT	22
-+#define SRCONFIG_SRCLKLENGTH_SHIFT	12
-+#define SRCONFIG_SENNENABLE_V1_SHIFT	5
-+#define SRCONFIG_SENPENABLE_V1_SHIFT	3
-+#define SRCONFIG_SENNENABLE_V2_SHIFT	1
-+#define SRCONFIG_SENPENABLE_V2_SHIFT	0
-+#define SRCONFIG_CLKCTRL_SHIFT		0
-+
-+#define SRCONFIG_ACCUMDATA_MASK		(0x3ff << 22)
-+
-+#define SRCONFIG_SRENABLE		BIT(11)
-+#define SRCONFIG_SENENABLE		BIT(10)
-+#define SRCONFIG_ERRGEN_EN		BIT(9)
-+#define SRCONFIG_MINMAXAVG_EN		BIT(8)
-+#define SRCONFIG_DELAYCTRL		BIT(2)
-+
-+/* AVGWEIGHT */
-+#define AVGWEIGHT_SENPAVGWEIGHT_SHIFT	2
-+#define AVGWEIGHT_SENNAVGWEIGHT_SHIFT	0
-+
-+/* NVALUERECIPROCAL */
-+#define NVALUERECIPROCAL_SENPGAIN_SHIFT	20
-+#define NVALUERECIPROCAL_SENNGAIN_SHIFT	16
-+#define NVALUERECIPROCAL_RNSENP_SHIFT	8
-+#define NVALUERECIPROCAL_RNSENN_SHIFT	0
-+
-+/* ERRCONFIG */
-+#define ERRCONFIG_ERRWEIGHT_SHIFT	16
-+#define ERRCONFIG_ERRMAXLIMIT_SHIFT	8
-+#define ERRCONFIG_ERRMINLIMIT_SHIFT	0
-+
-+#define SR_ERRWEIGHT_MASK		(0x07 << 16)
-+#define SR_ERRMAXLIMIT_MASK		(0xff << 8)
-+#define SR_ERRMINLIMIT_MASK		(0xff << 0)
-+
-+#define ERRCONFIG_VPBOUNDINTEN_V1	BIT(31)
-+#define ERRCONFIG_VPBOUNDINTST_V1	BIT(30)
-+#define	ERRCONFIG_MCUACCUMINTEN		BIT(29)
-+#define ERRCONFIG_MCUACCUMINTST		BIT(28)
-+#define	ERRCONFIG_MCUVALIDINTEN		BIT(27)
-+#define ERRCONFIG_MCUVALIDINTST		BIT(26)
-+#define ERRCONFIG_MCUBOUNDINTEN		BIT(25)
-+#define	ERRCONFIG_MCUBOUNDINTST		BIT(24)
-+#define	ERRCONFIG_MCUDISACKINTEN	BIT(23)
-+#define ERRCONFIG_VPBOUNDINTST_V2	BIT(23)
-+#define ERRCONFIG_MCUDISACKINTST	BIT(22)
-+#define ERRCONFIG_VPBOUNDINTEN_V2	BIT(22)
-+
-+#define ERRCONFIG_STATUS_V1_MASK	(ERRCONFIG_VPBOUNDINTST_V1 | \
-+					ERRCONFIG_MCUACCUMINTST | \
-+					ERRCONFIG_MCUVALIDINTST | \
-+					ERRCONFIG_MCUBOUNDINTST | \
-+					ERRCONFIG_MCUDISACKINTST)
-+/* IRQSTATUS */
-+#define IRQSTATUS_MCUACCUMINT		BIT(3)
-+#define IRQSTATUS_MCVALIDINT		BIT(2)
-+#define IRQSTATUS_MCBOUNDSINT		BIT(1)
-+#define IRQSTATUS_MCUDISABLEACKINT	BIT(0)
-+
-+/* IRQENABLE_SET and IRQENABLE_CLEAR */
-+#define IRQENABLE_MCUACCUMINT		BIT(3)
-+#define IRQENABLE_MCUVALIDINT		BIT(2)
-+#define IRQENABLE_MCUBOUNDSINT		BIT(1)
-+#define IRQENABLE_MCUDISABLEACKINT	BIT(0)
-+
-+/* Common Bit values */
-+
-+#define SRCLKLENGTH_12MHZ_SYSCLK	0x3c
-+#define SRCLKLENGTH_13MHZ_SYSCLK	0x41
-+#define SRCLKLENGTH_19MHZ_SYSCLK	0x60
-+#define SRCLKLENGTH_26MHZ_SYSCLK	0x82
-+#define SRCLKLENGTH_38MHZ_SYSCLK	0xC0
-+
-+/*
-+ * 3430 specific values. Maybe these should be passed from board file or
-+ * pmic structures.
-+ */
-+#define OMAP3430_SR_ACCUMDATA		0x1f4
-+
-+#define OMAP3430_SR1_SENPAVGWEIGHT	0x03
-+#define OMAP3430_SR1_SENNAVGWEIGHT	0x03
-+
-+#define OMAP3430_SR2_SENPAVGWEIGHT	0x01
-+#define OMAP3430_SR2_SENNAVGWEIGHT	0x01
-+
-+#define OMAP3430_SR_ERRWEIGHT		0x04
-+#define OMAP3430_SR_ERRMAXLIMIT		0x02
-+
-+/**
-+ * struct omap_sr_pmic_data - Strucutre to be populated by pmic code to pass
-+ *				pmic specific info to smartreflex driver
-+ *
-+ * @sr_pmic_init:	API to initialize smartreflex on the PMIC side.
-+ */
-+struct omap_sr_pmic_data {
-+	void (*sr_pmic_init) (void);
-+};
-+
-+#ifdef CONFIG_OMAP_SMARTREFLEX
-+/*
-+ * The smart reflex driver supports CLASS1 CLASS2 and CLASS3 SR.
-+ * The smartreflex class driver should pass the class type.
-+ * Should be used to populate the class_type field of the
-+ * omap_smartreflex_class_data structure.
-+ */
-+#define SR_CLASS1	0x1
-+#define SR_CLASS2	0x2
-+#define SR_CLASS3	0x3
-+
-+/**
-+ * struct omap_sr_class_data - Smartreflex class driver info
-+ *
-+ * @enable:		API to enable a particular class smaartreflex.
-+ * @disable:		API to disable a particular class smartreflex.
-+ * @configure:		API to configure a particular class smartreflex.
-+ * @notify:		API to notify the class driver about an event in SR.
-+ *			Not needed for class3.
-+ * @notify_flags:	specify the events to be notified to the class driver
-+ * @class_type:		specify which smartreflex class.
-+ *			Can be used by the SR driver to take any class
-+ *			based decisions.
-+ */
-+struct omap_sr_class_data {
-+	int (*enable)(struct voltagedomain *voltdm);
-+	int (*disable)(struct voltagedomain *voltdm, int is_volt_reset);
-+	int (*configure)(struct voltagedomain *voltdm);
-+	int (*notify)(struct voltagedomain *voltdm, u32 status);
-+	u8 notify_flags;
-+	u8 class_type;
-+};
-+
-+/**
-+ * struct omap_sr_nvalue_table	- Smartreflex n-target value info
-+ *
-+ * @efuse_offs:	The offset of the efuse where n-target values are stored.
-+ * @nvalue:	The n-target value.
-+ */
-+struct omap_sr_nvalue_table {
-+	u32 efuse_offs;
-+	u32 nvalue;
-+};
-+
-+/**
-+ * struct omap_sr_data - Smartreflex platform data.
-+ *
-+ * @ip_type:		Smartreflex IP type.
-+ * @senp_mod:		SENPENABLE value for the sr
-+ * @senn_mod:		SENNENABLE value for sr
-+ * @nvalue_count:	Number of distinct nvalues in the nvalue table
-+ * @enable_on_init:	whether this sr module needs to enabled at
-+ *			boot up or not.
-+ * @nvalue_table:	table containing the  efuse offsets and nvalues
-+ *			corresponding to them.
-+ * @voltdm:		Pointer to the voltage domain associated with the SR
-+ */
-+struct omap_sr_data {
-+	int				ip_type;
-+	u32				senp_mod;
-+	u32				senn_mod;
-+	int				nvalue_count;
-+	bool				enable_on_init;
-+	struct omap_sr_nvalue_table	*nvalue_table;
-+	struct voltagedomain		*voltdm;
-+};
-+
-+/* Smartreflex module enable/disable interface */
-+void omap_sr_enable(struct voltagedomain *voltdm);
-+void omap_sr_disable(struct voltagedomain *voltdm);
-+void omap_sr_disable_reset_volt(struct voltagedomain *voltdm);
-+
-+/* API to register the pmic specific data with the smartreflex driver. */
-+void omap_sr_register_pmic(struct omap_sr_pmic_data *pmic_data);
-+
-+/* Smartreflex driver hooks to be called from Smartreflex class driver */
-+int sr_enable(struct voltagedomain *voltdm, unsigned long volt);
-+void sr_disable(struct voltagedomain *voltdm);
-+int sr_configure_errgen(struct voltagedomain *voltdm);
-+int sr_configure_minmax(struct voltagedomain *voltdm);
-+
-+/* API to register the smartreflex class driver with the smartreflex driver */
-+int sr_register_class(struct omap_sr_class_data *class_data);
-+#else
-+
-+#ifdef CONFIG_AM33XX_SMARTREFLEX
-+
-+#define SR_CORE                         (0)
-+#define SR_MPU                          (1)
-+#define SRCLKLENGTH_125MHZ_SYSCLK	(0x78 << 12)
-+#define GAIN_MAXLIMIT                   (16)
-+#define R_MAXLIMIT                      (256)
-+#define MAX_SENSORS                     2
-+/* GG: eventually this should be determined at runtime */
-+#define AM33XX_OPP_COUNT                4
-+
-+/**
-+ * struct am33xx_sr_opp_data	- Smartreflex data per OPP
-+ * @efuse_offs:		The offset of the efuse where n-target values are
-+ *			stored.
-+ * @nvalue:             NTarget as stored in EFUSE.
-+ * @adj_nvalue:         Adjusted NTarget (adjusted by margin)
-+ * @e2v_gain:		Error to voltage gain for changing the percentage
-+ *			error into voltage delta
-+ * @err_weight:		Average sensor error weight
-+ * @err_minlimit:	Minimum error limit of the sensor
-+ * @err_maxlimit:	Maximum error limit of the sensor
-+ * @margin:             Voltage margin to apply
-+ * @nominal_volt:       Nominal voltage for this OPP
-+ * @frequency:          Defined frequency for this OPP (in KHz)
-+ */
-+struct am33xx_sr_opp_data {
-+	u32	efuse_offs;
-+        u32     nvalue;
-+        u32     adj_nvalue;
-+	s32	e2v_gain;
-+	u32	err_weight;
-+	u32	err_minlimit;
-+	u32	err_maxlimit;
-+        s32     margin;
-+        u32     nominal_volt; /* nominal_volt and frequency may be removed
-+                                 once am33xx voltdm layer works */
-+        u32     frequency;
-+        u32     opp_id;
-+};
-+
-+/**
-+ * struct am33xx_sr_sdata	- Smartreflex sensors data
-+ * @sr_opp_data:	Pointer to data structure containing per OPP data
-+ *                      for this SR module.
-+ * @no_of_opps:         Number of OPP's supported for this sensor -
-+ *                       determined dynamically when possible.
-+ * @default_opp:        Defines the opp to use on startup if OPP is fixed
-+ *                       or cannot be determined dynamically.
-+ * @senn_mod:		Enable bit for N sensor
-+ * @senp_mod:		Enable bit for P sensor
-+ */
-+struct am33xx_sr_sdata {
-+	struct am33xx_sr_opp_data *sr_opp_data;
-+        u32     no_of_opps;
-+        u32     default_opp;
-+	u32	senn_mod;
-+	u32	senp_mod;
-+};
-+
-+struct am33xx_sr_sensor {
-+        u32                             sr_id;
-+	u32			        irq;
-+	u32			        irq_status;
-+	u32			        senn_en;
-+	u32			        senp_en;
-+	char			        *name;
-+        char                            *reg_name;
-+	void __iomem		        *base;
-+        int				init_volt_mv;
-+        int                             curr_opp;
-+        u32                             no_of_opps;
-+        struct delayed_work             work_reenable;
-+        struct regulator		*reg;
-+        struct am33xx_sr_opp_data       opp_data[AM33XX_OPP_COUNT];
-+	struct clk		        *fck;
-+        struct voltagedomain		*voltdm;
-+        struct omap_volt_data           *volt_data;
-+};
-+
-+struct am33xx_sr {
-+	u32				autocomp_active;
-+	u32				sens_per_vd;
-+        u32                             no_of_sens;
-+        u32                             no_of_vds;
-+	u32				ip_type;
-+        u32				irq_delay;
-+        u32                             disabled_by_user;
-+	int				uvoltage_step_size;
-+        char                            *res_name[MAX_SENSORS];
-+#ifdef CONFIG_CPU_FREQ
-+	struct notifier_block	        freq_transition;
-+#endif
-+	/*struct work_struct		work;*/
-+        struct delayed_work             work;
-+	struct sr_platform_data		*sr_data;
-+	struct am33xx_sr_sensor		sen[MAX_SENSORS];
-+	struct platform_device		*pdev;
-+};
-+
-+/**
-+ * struct am33xx_sr_platform_data - Smartreflex platform data.
-+ * @sr_sdata:		SR per sensor details, contains the efuse off-sets,
-+ *			error to voltage gain factor, minimum error limits
-+ * @vd_name:		Name of the voltage domain.
-+ * @ip_type:		Smartreflex IP type, class1 or class2 or class3.
-+ * @irq_delay:          Amount of time required for changed voltage to settle.
-+ * @no_of_vds:		Number of voltage domains to which SR applicable
-+ * @no_of_sens:		Number of SR sensors used to monitor the device
-+ *			performance, temp etc...
-+ * @vstep_size_uv:	PMIC voltage step size in micro volts
-+ * @enable_on_init:	whether this sr module needs to enabled at
-+ *			boot up or not.
-+ */
-+struct am33xx_sr_platform_data {
-+	struct am33xx_sr_sdata	*sr_sdata;
-+	char			*vd_name[2];
-+	u32			ip_type;
-+        u32                     irq_delay;
-+	u32			no_of_vds;
-+	u32			no_of_sens;
-+	u32			vstep_size_uv;
-+	bool			enable_on_init;
-+};
-+
-+#endif /*CONFIG_AM33XX_SMARTREFLEX*/
-+
-+#ifdef CONFIG_TI816X_SMARTREFLEX
-+
-+#define SRHVT				0
-+#define SRSVT				1
-+
-+/* SRClk = 100KHz */
-+#define SRCLKLENGTH_125MHZ_SYSCLK	(0x271 << 12)
-+
-+/**
-+ * struct ti816x_sr_sdata	- Smartreflex sensors data
-+ * @efuse_offs:		The offset of the efuse where n-target values are
-+ *			stored.
-+ * @e2v_gain:		Error to voltage gain for changing the percentage
-+ *			error into voltage delta
-+ * @err_weight:		Average sensor error weight
-+ * @err_minlimit:	Minimum error limit of the sensor
-+ * @err_maxlimit:	Maximum error limit of the sensor
-+ * @senn_mod:		Enable bit for N sensor
-+ * @senp_mod:		Enable bit for P sensor
-+ */
-+struct ti816x_sr_sdata {
-+	u32	efuse_offs;
-+	u32	e2v_gain;
-+	u32	err_weight;
-+	u32	err_minlimit;
-+	u32	err_maxlimit;
-+	u32	senn_mod;
-+	u32	senp_mod;
-+};
-+
-+/**
-+ * struct ti816x_sr_platform_data - Smartreflex platform data.
-+ * @sr_sdata:		SR per sensor details, contains the efuse off-sets,
-+ *			error to voltage gain factor, minimum error limits
-+ * @vd_name:		Name of the voltage domain.
-+ * @ip_type:		Smartreflex IP type, class1 or class2 or class3.
-+ * @irq_delay:		Time delay between disable and re-enable the
-+ *			interrupts, in msec
-+ * @no_of_vds:		Number of voltage domains to which SR applicable
-+ * @no_of_sens:		Number of SR sensors used to monitor the device
-+ *			performance, temp etc...
-+ * @vstep_size_uv:	PMIC voltage step size in micro volts
-+ * @enable_on_init:	whether this sr module needs to enabled at
-+ *			boot up or not.
-+ */
-+struct ti816x_sr_platform_data {
-+	struct ti816x_sr_sdata	*sr_sdata;
-+	char			*vd_name;
-+	u32			ip_type;
-+	u32			irq_delay;
-+	u32			no_of_vds;
-+	u32			no_of_sens;
-+	u32			vstep_size_uv;
-+	bool			enable_on_init;
-+};
-+
-+#endif /* CONFIG_TI816X_SMARTREFLEX */
-+
-+static inline void omap_sr_enable(struct voltagedomain *voltdm) {}
-+static inline void omap_sr_disable(struct voltagedomain *voltdm) {}
-+static inline void omap_sr_disable_reset_volt(
-+		struct voltagedomain *voltdm) {}
-+static inline void omap_sr_register_pmic(
-+		struct omap_sr_pmic_data *pmic_data) {}
-+#endif
-+#endif
-diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
-index 00706c6..382ce2d 100644
---- a/drivers/regulator/core.c
-+++ b/drivers/regulator/core.c
-@@ -169,6 +169,9 @@ static int regulator_check_consumers(struct regulator_dev *rdev,
- {
-	struct regulator *regulator;
-
-+        if (rdev->ignore_check_consumers)
-+                return 0;
-+
-	list_for_each_entry(regulator, &rdev->consumer_list, list) {
-		/*
-		 * Assume consumers that didn't say anything are OK
-@@ -2688,6 +2691,7 @@ struct regulator_dev *regulator_register(struct regulator_desc *regulator_desc,
-	rdev->reg_data = driver_data;
-	rdev->owner = regulator_desc->owner;
-	rdev->desc = regulator_desc;
-+        rdev->ignore_check_consumers = init_data->ignore_check_consumers;
-	INIT_LIST_HEAD(&rdev->consumer_list);
-	INIT_LIST_HEAD(&rdev->list);
-	BLOCKING_INIT_NOTIFIER_HEAD(&rdev->notifier);
-diff --git a/include/linux/regulator/driver.h b/include/linux/regulator/driver.h
-index 52c89ae..6176167 100644
---- a/include/linux/regulator/driver.h
-+++ b/include/linux/regulator/driver.h
-@@ -204,7 +204,7 @@ struct regulator_dev {
-	int deferred_disables;
-
-	void *reg_data;		/* regulator_dev data */
--
-+        int ignore_check_consumers;
- #ifdef CONFIG_DEBUG_FS
-	struct dentry *debugfs;
- #endif
-diff --git a/include/linux/regulator/machine.h b/include/linux/regulator/machine.h
-index f3f13fd..0de52a3 100644
---- a/include/linux/regulator/machine.h
-+++ b/include/linux/regulator/machine.h
-@@ -169,7 +169,7 @@ struct regulator_consumer_supply {
-  *               be usable.
-  * @num_consumer_supplies: Number of consumer device supplies.
-  * @consumer_supplies: Consumer device supply configuration.
-- *
-+ * @ignore_check_consumers: If != 0, regulator_check_consumers() is disabled.
-  * @regulator_init: Callback invoked when the regulator has been registered.
-  * @driver_data: Data passed to regulator_init.
-  */
-@@ -181,6 +181,7 @@ struct regulator_init_data {
-	int num_consumer_supplies;
-	struct regulator_consumer_supply *consumer_supplies;
-
-+        int ignore_check_consumers;
-	/* optional regulator machine specific init */
-	int (*regulator_init)(void *driver_data);
-	void *driver_data;	/* core does not touch this */
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-mach-omap2-pm33xx-Disable-VT-switch.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-mach-omap2-pm33xx-Disable-VT-switch.patch
deleted file mode 100644
index 66c643e..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-mach-omap2-pm33xx-Disable-VT-switch.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 31ec2850e89414efb30accb9d8b5228257e507b1 Mon Sep 17 00:00:00 2001
-From: Chase Maupin <Chase.Maupin at ti.com>
-Date: Wed, 21 Mar 2012 10:18:03 -0500
-Subject: [PATCH 1/1] mach-omap2: pm33xx: Disable VT switch
-
-* Added a new config option TI_PM_DISABLE_VT_SWITCH which
-  disables the VT console switch which normally occurs during
-  suspend.  This console switch can cause a hange when performed
-  with applications like Matrix running.  The VT switch is
-  considered unnecessary.
-* Modified the am335x_evm_defconfig file to default the
-  TI_PM_DISABLE_VT_SWITCH to "y".
-* Based on a patch for the linux-omap3 kernel by Greg Guyotte
-
-Signed-off-by: Chase Maupin <Chase.Maupin at ti.com>
----
- arch/arm/configs/am335x_evm_defconfig |    1 +
- arch/arm/mach-omap2/Kconfig           |    9 +++++++++
- arch/arm/mach-omap2/pm33xx.c          |    5 +++++
- 3 files changed, 15 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/configs/am335x_evm_defconfig b/arch/arm/configs/am335x_evm_defconfig
-index 53d1b6a..7a5e7ad 100644
---- a/arch/arm/configs/am335x_evm_defconfig
-+++ b/arch/arm/configs/am335x_evm_defconfig
-@@ -325,6 +325,7 @@ CONFIG_MACH_TI8148EVM=y
- CONFIG_MACH_AM335XEVM=y
- CONFIG_MACH_AM335XIAEVM=y
- # CONFIG_OMAP3_EMU is not set
-+CONFIG_TI_PM_DISABLE_VT_SWITCH=y
- # CONFIG_OMAP3_SDRC_AC_TIMING is not set
- CONFIG_OMAP3_EDMA=y
-
-diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
-index e44e942..f13e9dc 100644
---- a/arch/arm/mach-omap2/Kconfig
-+++ b/arch/arm/mach-omap2/Kconfig
-@@ -372,6 +372,15 @@ config OMAP3_EMU
-	help
-	  Say Y here to enable debugging hardware of omap3
-
-+config TI_PM_DISABLE_VT_SWITCH
-+	bool "TI Disable PM Console Switch"
-+	depends on ARCH_OMAP3
-+	default y
-+	help
-+	  This option disables the default PM VT switch behavior for TI devices.
-+	  Some platforms hang during suspend due to a failed attempt to
-+	  perform the VT switch.  The VT switch is unnecessary on many platforms.
-+
- config OMAP3_SDRC_AC_TIMING
-	bool "Enable SDRC AC timing register changes"
-	depends on ARCH_OMAP3
-diff --git a/arch/arm/mach-omap2/pm33xx.c b/arch/arm/mach-omap2/pm33xx.c
-index 70bcb42..019ae46 100644
---- a/arch/arm/mach-omap2/pm33xx.c
-+++ b/arch/arm/mach-omap2/pm33xx.c
-@@ -502,6 +502,11 @@ static int __init am33xx_pm_init(void)
-	pr_info("Power Management for AM33XX family\n");
-
- #ifdef CONFIG_SUSPEND
-+
-+#ifdef CONFIG_TI_PM_DISABLE_VT_SWITCH
-+	pm_set_vt_switch(0);
-+#endif
-+
- /* Read SDRAM_CONFIG register to determine Memory Type */
-	base = am33xx_get_ram_base();
-	reg = readl(base + EMIF4_0_SDRAM_CONFIG);
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-musb-update-PIO-mode-help-information-in-Kconfig.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-musb-update-PIO-mode-help-information-in-Kconfig.patch
deleted file mode 100644
index f7652bd..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-musb-update-PIO-mode-help-information-in-Kconfig.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 214f6b2fee005dba5e01b3b434f184adf4386a25 Mon Sep 17 00:00:00 2001
-From: Chase Maupin <Chase.Maupin at ti.com>
-Date: Thu, 2 Feb 2012 15:52:10 -0600
-Subject: [PATCH] musb: update PIO mode help information in Kconfig
-
-* Updated the Kconfig help information for the PIO mode for MUSB
-  to make it more clear to the customer when to select this option
-  and which devices currently have issues with this option.
-* This is in accordance with the findings for CPPI4.1 DMA usage
-  for MUSB
-
-Upstream-Status: Submitted
-    * Submitted to the PSP team using the lpr list
-
-Signed-off-by: Matt Porter <mporter at ti.com>
-Signed-off-by: Chase Maupin <Chase.Maupin at ti.com>
----
- drivers/usb/musb/Kconfig |   12 ++++++++----
- 1 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/musb/Kconfig b/drivers/usb/musb/Kconfig
-index a06335f..3576afe 100644
---- a/drivers/usb/musb/Kconfig
-+++ b/drivers/usb/musb/Kconfig
-@@ -159,10 +159,14 @@ config MUSB_PIO_ONLY
-	  All data is copied between memory and FIFO by the CPU.
-	  DMA controllers are ignored.
-
--	  Do not choose this unless DMA support for your SOC or board
--	  is unavailable (or unstable).  When DMA is enabled at compile time,
--	  you can still disable it at run time using the "use_dma=n" module
--	  parameter.
-+	  Select 'y' here if DMA support for your SOC or board
-+	  is unavailable (or unstable). On CPPI 4.1 DMA based
-+	  systems (AM335x, AM35x, and AM180x) DMA support is
-+	  considered unstable and this option should be enabled
-+	  in production systems so that DMA is disabled, unless DMA
-+	  has been validated for all use cases. When DMA is enabled at
-+	  compile time, you can still disable it at run time using the
-+	  "use_dma=n" module parameter.
-
- endchoice
-
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap-serial-add-delay-before-suspending.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap-serial-add-delay-before-suspending.patch
deleted file mode 100644
index 7780786..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap-serial-add-delay-before-suspending.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 0f62d1f4d4543a315815b8eb15ea9cdad25d16c8 Mon Sep 17 00:00:00 2001
-From: Eyal Reizer <eyalr at ti.com>
-Date: Wed, 27 Jun 2012 16:08:53 +0300
-Subject: [PATCH] omap-serial: add delay before suspending
-
-In case suspending during Bluetooth traffic, after resume the bluetooth is
-stuck.
-It was identified that suspend is happening before the UART buffer was
-fully drained which caused this hang after resume.
-The folliwng delay is a temporary workaround until the issue is resolved
-properly.
-
-Upstream Status: Pending
-
-Signed-off-by: Eyal Reizer <eyalr at ti.com>
----
- drivers/tty/serial/omap-serial.c |   10 ++++++++++
- 1 files changed, 10 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/tty/serial/omap-serial.c b/drivers/tty/serial/omap-serial.c
-index ca24ab3..108ea2b 100755
---- a/drivers/tty/serial/omap-serial.c
-+++ b/drivers/tty/serial/omap-serial.c
-@@ -1166,6 +1166,16 @@ static int serial_omap_suspend(struct device *dev)
-	struct uart_omap_port *up = dev_get_drvdata(dev);
-
-	if (up) {
-+                /*
-+                  In case suspending during Bluetooth traffic, after resume
-+                  the bluetooth is stuck.
-+                  It was identified that suspend is happening before the
-+                  UART buffer was fully drained which caused this hang after
-+                  resume. The following delay is a temporary workaround until
-+                  the issue is resolved properly.
-+                */
-+                msleep(10);
-+
-		uart_suspend_port(&serial_omap_reg, &up->port);
-		flush_work_sync(&up->qos_work);
-	}
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap4-rng-Remove-check-for-GP-only-device-type-in-RN.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap4-rng-Remove-check-for-GP-only-device-type-in-RN.patch
deleted file mode 100644
index de2d841..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0001-omap4-rng-Remove-check-for-GP-only-device-type-in-RN.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 13d5d52eda239b752b249b0f1b3b01b93a890b55 Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Wed, 13 Feb 2013 15:37:15 -0600
-Subject: [PATCH] omap4-rng: Remove check for GP-only device type in RNG driver
-
-HS devices can support RNG due to recent changes in firewall settings on L4.
-The patch enables RNG support on HS device.
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
----
- drivers/char/hw_random/omap4-rng.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/char/hw_random/omap4-rng.c b/drivers/char/hw_random/omap4-rng.c
-index 523ec63..9c3b87a 100644
---- a/drivers/char/hw_random/omap4-rng.c
-+++ b/drivers/char/hw_random/omap4-rng.c
-@@ -285,7 +285,7 @@ static struct platform_driver omap4_rng_driver = {
- 
- static int __init omap4_rng_init(void)
- {
--	if (!cpu_is_am33xx()  || omap_type() != OMAP2_DEVICE_TYPE_GP)
-+	if (!cpu_is_am33xx())
- 		return -ENODEV;
- 
- 	return platform_driver_register(&omap4_rng_driver);
--- 
-1.7.4.1
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-AM335x-OCF-Driver-for-Linux-3.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0002-AM335x-OCF-Driver-for-Linux-3.patch
deleted file mode 100644
index 916b190..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-AM335x-OCF-Driver-for-Linux-3.patch
+++ /dev/null
@@ -1,7228 +0,0 @@
-From a97aac248717d62bdbf322c1d6d422ddfde87de0 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 3 May 2012 10:33:13 -0500
-Subject: [PATCH 2/2] AM335x OCF Driver for Linux 3
-
----
- crypto/Kconfig               |    3 +
- crypto/Makefile              |    2 +
- crypto/ocf/Config.in         |   20 +
- crypto/ocf/Kconfig           |   48 ++
- crypto/ocf/Makefile          |  138 ++++
- crypto/ocf/criov.c           |  215 +++++
- crypto/ocf/crypto.c          | 1766 ++++++++++++++++++++++++++++++++++++++++++
- crypto/ocf/cryptodev.c       | 1069 +++++++++++++++++++++++++
- crypto/ocf/cryptodev.h       |  480 ++++++++++++
- crypto/ocf/cryptosoft.c      | 1322 +++++++++++++++++++++++++++++++
- crypto/ocf/ocf-bench.c       |  514 ++++++++++++
- crypto/ocf/ocf-compat.h      |  372 +++++++++
- crypto/ocf/ocfnull/Makefile  |   12 +
- crypto/ocf/ocfnull/ocfnull.c |  204 +++++
- crypto/ocf/random.c          |  317 ++++++++
- crypto/ocf/rndtest.c         |  300 +++++++
- crypto/ocf/rndtest.h         |   54 ++
- crypto/ocf/uio.h             |   54 ++
- drivers/char/random.c        |   67 ++
- fs/fcntl.c                   |    1 +
- include/linux/miscdevice.h   |    1 +
- include/linux/random.h       |   28 +
- kernel/pid.c                 |    1 +
- 23 files changed, 6988 insertions(+), 0 deletions(-)
- create mode 100755 crypto/ocf/Config.in
- create mode 100755 crypto/ocf/Kconfig
- create mode 100755 crypto/ocf/Makefile
- create mode 100644 crypto/ocf/criov.c
- create mode 100644 crypto/ocf/crypto.c
- create mode 100644 crypto/ocf/cryptodev.c
- create mode 100644 crypto/ocf/cryptodev.h
- create mode 100644 crypto/ocf/cryptosoft.c
- create mode 100644 crypto/ocf/ocf-bench.c
- create mode 100644 crypto/ocf/ocf-compat.h
- create mode 100644 crypto/ocf/ocfnull/Makefile
- create mode 100644 crypto/ocf/ocfnull/ocfnull.c
- create mode 100644 crypto/ocf/random.c
- create mode 100644 crypto/ocf/rndtest.c
- create mode 100644 crypto/ocf/rndtest.h
- create mode 100644 crypto/ocf/uio.h
-
-diff --git a/crypto/Kconfig b/crypto/Kconfig
-index 527a857..8871f10 100644
---- a/crypto/Kconfig
-+++ b/crypto/Kconfig
-@@ -923,3 +923,6 @@ config CRYPTO_USER_API_SKCIPHER
- source "drivers/crypto/Kconfig"
-
- endif	# if CRYPTO
-+
-+source "crypto/ocf/Kconfig"
-+
-diff --git a/crypto/Makefile b/crypto/Makefile
-index 9e6eee2..3cde9f8 100644
---- a/crypto/Makefile
-+++ b/crypto/Makefile
-@@ -91,6 +91,8 @@ obj-$(CONFIG_CRYPTO_USER_API) += af_alg.o
- obj-$(CONFIG_CRYPTO_USER_API_HASH) += algif_hash.o
- obj-$(CONFIG_CRYPTO_USER_API_SKCIPHER) += algif_skcipher.o
-
-+obj-$(CONFIG_OCF_OCF) += ocf/
-+
- #
- # generic algorithms and the async_tx api
- #
-diff --git a/crypto/ocf/Config.in b/crypto/ocf/Config.in
-new file mode 100755
-index 0000000..423d11f
---- /dev/null
-+++ b/crypto/ocf/Config.in
-@@ -0,0 +1,20 @@
-+#############################################################################
-+
-+mainmenu_option next_comment
-+comment 'OCF Configuration'
-+tristate 'OCF (Open Cryptograhic Framework)' CONFIG_OCF_OCF
-+dep_mbool '  enable fips RNG checks (fips check on RNG data before use)' \
-+				CONFIG_OCF_FIPS $CONFIG_OCF_OCF
-+dep_mbool '  enable harvesting entropy for /dev/random' \
-+				CONFIG_OCF_RANDOMHARVEST $CONFIG_OCF_OCF
-+dep_tristate '  cryptodev (user space support)' \
-+				CONFIG_OCF_CRYPTODEV $CONFIG_OCF_OCF
-+dep_tristate '  cryptosoft (software crypto engine)' \
-+				CONFIG_OCF_CRYPTOSOFT $CONFIG_OCF_OCF
-+dep_tristate '  ocfnull (does no crypto)' \
-+				CONFIG_OCF_OCFNULL $CONFIG_OCF_OCF
-+dep_tristate '  ocf-bench (HW crypto in-kernel benchmark)' \
-+				CONFIG_OCF_BENCH $CONFIG_OCF_OCF
-+endmenu
-+
-+#############################################################################
-diff --git a/crypto/ocf/Kconfig b/crypto/ocf/Kconfig
-new file mode 100755
-index 0000000..44459f4
---- /dev/null
-+++ b/crypto/ocf/Kconfig
-@@ -0,0 +1,48 @@
-+menu "OCF Configuration"
-+
-+config OCF_OCF
-+	tristate "OCF (Open Cryptograhic Framework)"
-+	help
-+	  A linux port of the OpenBSD/FreeBSD crypto framework.
-+
-+config OCF_RANDOMHARVEST
-+	bool "crypto random --- harvest entropy for /dev/random"
-+	depends on OCF_OCF
-+	help
-+	  Includes code to harvest random numbers from devices that support it.
-+
-+config OCF_FIPS
-+	bool "enable fips RNG checks"
-+	depends on OCF_OCF && OCF_RANDOMHARVEST
-+	help
-+	  Run all RNG provided data through a fips check before
-+	  adding it /dev/random's entropy pool.
-+
-+config OCF_CRYPTODEV
-+	tristate "cryptodev (user space support)"
-+	depends on OCF_OCF
-+	help
-+	  The user space API to access crypto hardware.
-+
-+config OCF_CRYPTOSOFT
-+	tristate "cryptosoft (software crypto engine)"
-+	depends on OCF_OCF
-+	help
-+	  A software driver for the OCF framework that uses
-+	  the kernel CryptoAPI.
-+
-+config OCF_OCFNULL
-+	tristate "ocfnull (fake crypto engine)"
-+	depends on OCF_OCF
-+	help
-+	  OCF driver for measuring ipsec overheads (does no crypto)
-+
-+config OCF_BENCH
-+	tristate "ocf-bench (HW crypto in-kernel benchmark)"
-+	depends on OCF_OCF
-+	help
-+	  A very simple encryption test for the in-kernel interface
-+	  of OCF.  Also includes code to benchmark the IXP Access library
-+	  for comparison.
-+
-+endmenu
-diff --git a/crypto/ocf/Makefile b/crypto/ocf/Makefile
-new file mode 100755
-index 0000000..29ac280
---- /dev/null
-+++ b/crypto/ocf/Makefile
-@@ -0,0 +1,138 @@
-+# for SGlinux builds
-+-include $(ROOTDIR)/modules/.config
-+
-+OCF_OBJS = crypto.o criov.o
-+
-+ifdef CONFIG_OCF_RANDOMHARVEST
-+	OCF_OBJS += random.o
-+endif
-+
-+ifdef CONFIG_OCF_FIPS
-+	OCF_OBJS += rndtest.o
-+endif
-+
-+# Add in autoconf.h to get #defines for CONFIG_xxx
-+AUTOCONF_H=$(ROOTDIR)/modules/autoconf.h
-+ifeq ($(AUTOCONF_H), $(wildcard $(AUTOCONF_H)))
-+	EXTRA_CFLAGS += -include $(AUTOCONF_H)
-+	export EXTRA_CFLAGS
-+endif
-+
-+ifndef obj
-+	obj ?= .
-+	_obj = subdir
-+	mod-subdirs := safe hifn ixp4xx talitos ocfnull
-+	export-objs += crypto.o criov.o random.o
-+	list-multi += ocf.o
-+	_slash :=
-+else
-+	_obj = obj
-+	_slash := /
-+endif
-+
-+EXTRA_CFLAGS += -I$(obj)/.
-+
-+obj-$(CONFIG_OCF_OCF)         += ocf.o
-+obj-$(CONFIG_OCF_CRYPTODEV)   += cryptodev.o
-+obj-$(CONFIG_OCF_CRYPTOSOFT)  += cryptosoft.o
-+obj-$(CONFIG_OCF_BENCH)       += ocf-bench.o
-+
-+$(_obj)-$(CONFIG_OCF_OCFNULL) += ocfnull$(_slash)
-+
-+ocf-objs := $(OCF_OBJS)
-+
-+dummy:
-+	@echo "Please consult the README for how to build OCF."
-+	@echo "If you can't wait then the following should do it:"
-+	@echo ""
-+	@echo "    make ocf_modules"
-+	@echo "    sudo make ocf_install"
-+	@echo ""
-+	@exit 1
-+
-+$(list-multi) dummy1: $(ocf-objs)
-+	$(LD) -r -o $@ $(ocf-objs)
-+
-+.PHONY:
-+clean:
-+	rm -f *.o *.ko .*.o.flags .*.ko.cmd .*.o.cmd .*.mod.o.cmd *.mod.c
-+	rm -f */*.o */*.ko */.*.o.cmd */.*.ko.cmd */.*.mod.o.cmd */*.mod.c */.*.o.flags
-+	rm -f */modules.order */modules.builtin modules.order modules.builtin
-+
-+ifdef TOPDIR
-+-include $(TOPDIR)/Rules.make
-+endif
-+
-+#
-+# targets to build easily on the current machine
-+#
-+
-+ocf_make:
-+	make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m
-+	make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_CRYPTOSOFT=m
-+	-make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_BENCH=m
-+	-make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_OCFNULL=m
-+	-make -C /lib/modules/$(shell uname -r)/build M=`pwd` $(OCF_TARGET) CONFIG_OCF_OCF=m CONFIG_OCF_HIFN=m
-+
-+ocf_modules:
-+	$(MAKE) ocf_make OCF_TARGET=modules
-+
-+ocf_install:
-+	$(MAKE) ocf_make OCF_TARGET="modules modules_install"
-+	depmod
-+	mkdir -p /usr/include/crypto
-+	cp cryptodev.h /usr/include/crypto/.
-+
-+#
-+# generate full kernel patches for 2.4 and 2.6 kernels to make patching
-+# your kernel easier
-+#
-+
-+.PHONY: patch
-+patch:
-+	patchbase=.; \
-+		[ -d $$patchbase/patches ] || patchbase=..; \
-+		patch=ocf-linux-base.patch; \
-+		patch24=ocf-linux-24.patch; \
-+		patch26=ocf-linux-26.patch; \
-+		patch3=ocf-linux-3.patch; \
-+		( \
-+			find . -name Makefile; \
-+			find . -name Config.in; \
-+			find . -name Kconfig; \
-+			find . -name README; \
-+			find . -name '*.[ch]' | grep -v '.mod.c'; \
-+		) | while read t; do \
-+			diff -Nau /dev/null $$t | sed 's?^+++ \./?+++ linux/crypto/ocf/?'; \
-+		done > $$patch; \
-+		cat $$patchbase/patches/linux-2.4.35-ocf.patch $$patch > $$patch24; \
-+		cat $$patchbase/patches/linux-2.6.38-ocf.patch $$patch > $$patch26; \
-+		cat $$patchbase/patches/linux-3.2.1-ocf.patch $$patch > $$patch3; \
-+
-+
-+#
-+# this target probably does nothing for anyone but me - davidm
-+#
-+
-+.PHONY: release
-+release:
-+	REL=`date +%Y%m%d`; RELDIR=/tmp/ocf-linux-$$REL; \
-+		CURDIR=`pwd`; \
-+		rm -rf /tmp/ocf-linux-$$REL*; \
-+		mkdir -p $$RELDIR/ocf; \
-+		mkdir -p $$RELDIR/patches; \
-+		mkdir -p $$RELDIR/crypto-tools; \
-+		cp README* $$RELDIR/.; \
-+		cp patches/[!C]* $$RELDIR/patches/.; \
-+		cp tools/[!C]* $$RELDIR/crypto-tools/.; \
-+		cp -r [!C]* Config.in $$RELDIR/ocf/.; \
-+		rm -rf $$RELDIR/ocf/patches $$RELDIR/ocf/tools; \
-+		rm -f $$RELDIR/ocf/README*; \
-+		cp $$CURDIR/../../user/crypto-tools/[!C]* $$RELDIR/crypto-tools/.; \
-+		make -C $$RELDIR/crypto-tools clean; \
-+		make -C $$RELDIR/ocf clean; \
-+		find $$RELDIR/ocf -name CVS | xargs rm -rf; \
-+		cd $$RELDIR/..; \
-+		tar cvf ocf-linux-$$REL.tar ocf-linux-$$REL; \
-+		gzip -9 ocf-linux-$$REL.tar
-+
-diff --git a/crypto/ocf/criov.c b/crypto/ocf/criov.c
-new file mode 100644
-index 0000000..a8c1a8c
---- /dev/null
-+++ b/crypto/ocf/criov.c
-@@ -0,0 +1,215 @@
-+/*      $OpenBSD: criov.c,v 1.9 2002/01/29 15:48:29 jason Exp $	*/
-+
-+/*
-+ * Linux port done by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ * The license and original author are listed below.
-+ *
-+ * Copyright (c) 1999 Theo de Raadt
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ *   notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *   notice, this list of conditions and the following disclaimer in the
-+ *   documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ *   derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+__FBSDID("$FreeBSD: src/sys/opencrypto/criov.c,v 1.5 2006/06/04 22:15:13 pjd Exp $");
-+ */
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/slab.h>
-+#include <linux/uio.h>
-+#include <linux/skbuff.h>
-+#include <linux/kernel.h>
-+#include <linux/mm.h>
-+#include <asm/io.h>
-+
-+#include <uio.h>
-+#include <cryptodev.h>
-+
-+/*
-+ * This macro is only for avoiding code duplication, as we need to skip
-+ * given number of bytes in the same way in three functions below.
-+ */
-+#define	CUIO_SKIP()	do {						\
-+	KASSERT(off >= 0, ("%s: off %d < 0", __func__, off));		\
-+	KASSERT(len >= 0, ("%s: len %d < 0", __func__, len));		\
-+	while (off > 0) {						\
-+		KASSERT(iol >= 0, ("%s: empty in skip", __func__));	\
-+		if (off < iov->iov_len)					\
-+			break;						\
-+		off -= iov->iov_len;					\
-+		iol--;							\
-+		iov++;							\
-+	}								\
-+} while (0)
-+
-+void
-+cuio_copydata(struct uio* uio, int off, int len, caddr_t cp)
-+{
-+	struct iovec *iov = uio->uio_iov;
-+	int iol = uio->uio_iovcnt;
-+	unsigned count;
-+
-+	CUIO_SKIP();
-+	while (len > 0) {
-+		KASSERT(iol >= 0, ("%s: empty", __func__));
-+		count = min((int)(iov->iov_len - off), len);
-+		memcpy(cp, ((caddr_t)iov->iov_base) + off, count);
-+		len -= count;
-+		cp += count;
-+		off = 0;
-+		iol--;
-+		iov++;
-+	}
-+}
-+
-+void
-+cuio_copyback(struct uio* uio, int off, int len, caddr_t cp)
-+{
-+	struct iovec *iov = uio->uio_iov;
-+	int iol = uio->uio_iovcnt;
-+	unsigned count;
-+
-+	CUIO_SKIP();
-+	while (len > 0) {
-+		KASSERT(iol >= 0, ("%s: empty", __func__));
-+		count = min((int)(iov->iov_len - off), len);
-+		memcpy(((caddr_t)iov->iov_base) + off, cp, count);
-+		len -= count;
-+		cp += count;
-+		off = 0;
-+		iol--;
-+		iov++;
-+	}
-+}
-+
-+/*
-+ * Return a pointer to iov/offset of location in iovec list.
-+ */
-+struct iovec *
-+cuio_getptr(struct uio *uio, int loc, int *off)
-+{
-+	struct iovec *iov = uio->uio_iov;
-+	int iol = uio->uio_iovcnt;
-+
-+	while (loc >= 0) {
-+		/* Normal end of search */
-+		if (loc < iov->iov_len) {
-+	    		*off = loc;
-+	    		return (iov);
-+		}
-+
-+		loc -= iov->iov_len;
-+		if (iol == 0) {
-+			if (loc == 0) {
-+				/* Point at the end of valid data */
-+				*off = iov->iov_len;
-+				return (iov);
-+			} else
-+				return (NULL);
-+		} else {
-+			iov++, iol--;
-+		}
-+    	}
-+
-+	return (NULL);
-+}
-+
-+EXPORT_SYMBOL(cuio_copyback);
-+EXPORT_SYMBOL(cuio_copydata);
-+EXPORT_SYMBOL(cuio_getptr);
-+
-+static void
-+skb_copy_bits_back(struct sk_buff *skb, int offset, caddr_t cp, int len)
-+{
-+	int i;
-+	if (offset < skb_headlen(skb)) {
-+		memcpy(skb->data + offset, cp, min_t(int, skb_headlen(skb), len));
-+		len -= skb_headlen(skb);
-+		cp += skb_headlen(skb);
-+	}
-+	offset -= skb_headlen(skb);
-+	for (i = 0; len > 0 && i < skb_shinfo(skb)->nr_frags; i++) {
-+		if (offset < skb_shinfo(skb)->frags[i].size) {
-+			memcpy(page_address(skb_frag_page(&skb_shinfo(skb)->frags[i])) +
-+					skb_shinfo(skb)->frags[i].page_offset,
-+					cp, min_t(int, skb_shinfo(skb)->frags[i].size, len));
-+			len -= skb_shinfo(skb)->frags[i].size;
-+			cp += skb_shinfo(skb)->frags[i].size;
-+		}
-+		offset -= skb_shinfo(skb)->frags[i].size;
-+	}
-+}
-+
-+void
-+crypto_copyback(int flags, caddr_t buf, int off, int size, caddr_t in)
-+{
-+
-+	if ((flags & CRYPTO_F_SKBUF) != 0)
-+		skb_copy_bits_back((struct sk_buff *)buf, off, in, size);
-+	else if ((flags & CRYPTO_F_IOV) != 0)
-+		cuio_copyback((struct uio *)buf, off, size, in);
-+	else
-+		bcopy(in, buf + off, size);
-+}
-+
-+void
-+crypto_copydata(int flags, caddr_t buf, int off, int size, caddr_t out)
-+{
-+
-+	if ((flags & CRYPTO_F_SKBUF) != 0)
-+		skb_copy_bits((struct sk_buff *)buf, off, out, size);
-+	else if ((flags & CRYPTO_F_IOV) != 0)
-+		cuio_copydata((struct uio *)buf, off, size, out);
-+	else
-+		bcopy(buf + off, out, size);
-+}
-+
-+int
-+crypto_apply(int flags, caddr_t buf, int off, int len,
-+    int (*f)(void *, void *, u_int), void *arg)
-+{
-+#if 0
-+	int error;
-+
-+	if ((flags & CRYPTO_F_SKBUF) != 0)
-+		error = XXXXXX((struct mbuf *)buf, off, len, f, arg);
-+	else if ((flags & CRYPTO_F_IOV) != 0)
-+		error = cuio_apply((struct uio *)buf, off, len, f, arg);
-+	else
-+		error = (*f)(arg, buf + off, len);
-+	return (error);
-+#else
-+	KASSERT(0, ("crypto_apply not implemented!\n"));
-+#endif
-+	return 0;
-+}
-+
-+EXPORT_SYMBOL(crypto_copyback);
-+EXPORT_SYMBOL(crypto_copydata);
-+EXPORT_SYMBOL(crypto_apply);
-+
-diff --git a/crypto/ocf/crypto.c b/crypto/ocf/crypto.c
-new file mode 100644
-index 0000000..f48210d
---- /dev/null
-+++ b/crypto/ocf/crypto.c
-@@ -0,0 +1,1766 @@
-+/*-
-+ * Linux port done by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ * The license and original author are listed below.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * Copyright (c) 2002-2006 Sam Leffler.  All rights reserved.
-+ *
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ *    notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *    notice, this list of conditions and the following disclaimer in the
-+ *    documentation and/or other materials provided with the distribution.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#if 0
-+#include <sys/cdefs.h>
-+__FBSDID("$FreeBSD: src/sys/opencrypto/crypto.c,v 1.27 2007/03/21 03:42:51 sam Exp $");
-+#endif
-+
-+/*
-+ * Cryptographic Subsystem.
-+ *
-+ * This code is derived from the Openbsd Cryptographic Framework (OCF)
-+ * that has the copyright shown below.  Very little of the original
-+ * code remains.
-+ */
-+/*-
-+ * The author of this code is Angelos D. Keromytis (angelos at cis.upenn.edu)
-+ *
-+ * This code was written by Angelos D. Keromytis in Athens, Greece, in
-+ * February 2000. Network Security Technologies Inc. (NSTI) kindly
-+ * supported the development of this code.
-+ *
-+ * Copyright (c) 2000, 2001 Angelos D. Keromytis
-+ *
-+ * Permission to use, copy, and modify this software with or without fee
-+ * is hereby granted, provided that this entire notice is included in
-+ * all source code copies of any software which is or includes a copy or
-+ * modification of this software.
-+ *
-+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
-+ * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
-+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
-+ * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
-+ * PURPOSE.
-+ *
-+__FBSDID("$FreeBSD: src/sys/opencrypto/crypto.c,v 1.16 2005/01/07 02:29:16 imp Exp $");
-+ */
-+
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/wait.h>
-+#include <linux/sched.h>
-+#include <linux/spinlock.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,4)
-+#include <linux/kthread.h>
-+#endif
-+#include <cryptodev.h>
-+
-+/*
-+ * keep track of whether or not we have been initialised, a big
-+ * issue if we are linked into the kernel and a driver gets started before
-+ * us
-+ */
-+static int crypto_initted = 0;
-+
-+/*
-+ * Crypto drivers register themselves by allocating a slot in the
-+ * crypto_drivers table with crypto_get_driverid() and then registering
-+ * each algorithm they support with crypto_register() and crypto_kregister().
-+ */
-+
-+/*
-+ * lock on driver table
-+ * we track its state as spin_is_locked does not do anything on non-SMP boxes
-+ */
-+static spinlock_t	crypto_drivers_lock;
-+static int			crypto_drivers_locked;		/* for non-SMP boxes */
-+
-+#define	CRYPTO_DRIVER_LOCK() \
-+			({ \
-+				spin_lock_irqsave(&crypto_drivers_lock, d_flags); \
-+			 	crypto_drivers_locked = 1; \
-+				dprintk("%s,%d: DRIVER_LOCK()\n", __FILE__, __LINE__); \
-+			 })
-+#define	CRYPTO_DRIVER_UNLOCK() \
-+			({ \
-+			 	dprintk("%s,%d: DRIVER_UNLOCK()\n", __FILE__, __LINE__); \
-+			 	crypto_drivers_locked = 0; \
-+				spin_unlock_irqrestore(&crypto_drivers_lock, d_flags); \
-+			 })
-+#define	CRYPTO_DRIVER_ASSERT() \
-+			({ \
-+			 	if (!crypto_drivers_locked) { \
-+					dprintk("%s,%d: DRIVER_ASSERT!\n", __FILE__, __LINE__); \
-+			 	} \
-+			 })
-+
-+/*
-+ * Crypto device/driver capabilities structure.
-+ *
-+ * Synchronization:
-+ * (d) - protected by CRYPTO_DRIVER_LOCK()
-+ * (q) - protected by CRYPTO_Q_LOCK()
-+ * Not tagged fields are read-only.
-+ */
-+struct cryptocap {
-+	device_t	cc_dev;			/* (d) device/driver */
-+	u_int32_t	cc_sessions;		/* (d) # of sessions */
-+	u_int32_t	cc_koperations;		/* (d) # os asym operations */
-+	/*
-+	 * Largest possible operator length (in bits) for each type of
-+	 * encryption algorithm. XXX not used
-+	 */
-+	u_int16_t	cc_max_op_len[CRYPTO_ALGORITHM_MAX + 1];
-+	u_int8_t	cc_alg[CRYPTO_ALGORITHM_MAX + 1];
-+	u_int8_t	cc_kalg[CRK_ALGORITHM_MAX + 1];
-+
-+	int		cc_flags;		/* (d) flags */
-+#define CRYPTOCAP_F_CLEANUP	0x80000000	/* needs resource cleanup */
-+	int		cc_qblocked;		/* (q) symmetric q blocked */
-+	int		cc_kqblocked;		/* (q) asymmetric q blocked */
-+
-+	int		cc_unqblocked;		/* (q) symmetric q blocked */
-+	int		cc_unkqblocked;		/* (q) asymmetric q blocked */
-+};
-+static struct cryptocap *crypto_drivers = NULL;
-+static int crypto_drivers_num = 0;
-+
-+/*
-+ * There are two queues for crypto requests; one for symmetric (e.g.
-+ * cipher) operations and one for asymmetric (e.g. MOD)operations.
-+ * A single mutex is used to lock access to both queues.  We could
-+ * have one per-queue but having one simplifies handling of block/unblock
-+ * operations.
-+ */
-+static LIST_HEAD(crp_q);		/* crypto request queue */
-+static LIST_HEAD(crp_kq);		/* asym request queue */
-+
-+static spinlock_t crypto_q_lock;
-+
-+int crypto_all_qblocked = 0;  /* protect with Q_LOCK */
-+module_param(crypto_all_qblocked, int, 0444);
-+MODULE_PARM_DESC(crypto_all_qblocked, "Are all crypto queues blocked");
-+
-+int crypto_all_kqblocked = 0; /* protect with Q_LOCK */
-+module_param(crypto_all_kqblocked, int, 0444);
-+MODULE_PARM_DESC(crypto_all_kqblocked, "Are all asym crypto queues blocked");
-+
-+#define	CRYPTO_Q_LOCK() \
-+			({ \
-+				spin_lock_irqsave(&crypto_q_lock, q_flags); \
-+			 	dprintk("%s,%d: Q_LOCK()\n", __FILE__, __LINE__); \
-+			 })
-+#define	CRYPTO_Q_UNLOCK() \
-+			({ \
-+			 	dprintk("%s,%d: Q_UNLOCK()\n", __FILE__, __LINE__); \
-+				spin_unlock_irqrestore(&crypto_q_lock, q_flags); \
-+			 })
-+
-+/*
-+ * There are two queues for processing completed crypto requests; one
-+ * for the symmetric and one for the asymmetric ops.  We only need one
-+ * but have two to avoid type futzing (cryptop vs. cryptkop).  A single
-+ * mutex is used to lock access to both queues.  Note that this lock
-+ * must be separate from the lock on request queues to insure driver
-+ * callbacks don't generate lock order reversals.
-+ */
-+static LIST_HEAD(crp_ret_q);		/* callback queues */
-+static LIST_HEAD(crp_ret_kq);
-+
-+static spinlock_t crypto_ret_q_lock;
-+#define	CRYPTO_RETQ_LOCK() \
-+			({ \
-+				spin_lock_irqsave(&crypto_ret_q_lock, r_flags); \
-+				dprintk("%s,%d: RETQ_LOCK\n", __FILE__, __LINE__); \
-+			 })
-+#define	CRYPTO_RETQ_UNLOCK() \
-+			({ \
-+			 	dprintk("%s,%d: RETQ_UNLOCK\n", __FILE__, __LINE__); \
-+				spin_unlock_irqrestore(&crypto_ret_q_lock, r_flags); \
-+			 })
-+#define	CRYPTO_RETQ_EMPTY()	(list_empty(&crp_ret_q) && list_empty(&crp_ret_kq))
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
-+static kmem_cache_t *cryptop_zone;
-+static kmem_cache_t *cryptodesc_zone;
-+#else
-+static struct kmem_cache *cryptop_zone;
-+static struct kmem_cache *cryptodesc_zone;
-+#endif
-+
-+#define debug crypto_debug
-+int crypto_debug = 0;
-+module_param(crypto_debug, int, 0644);
-+MODULE_PARM_DESC(crypto_debug, "Enable debug");
-+EXPORT_SYMBOL(crypto_debug);
-+
-+/*
-+ * Maximum number of outstanding crypto requests before we start
-+ * failing requests.  We need this to prevent DOS when too many
-+ * requests are arriving for us to keep up.  Otherwise we will
-+ * run the system out of memory.  Since crypto is slow,  we are
-+ * usually the bottleneck that needs to say, enough is enough.
-+ *
-+ * We cannot print errors when this condition occurs,  we are already too
-+ * slow,  printing anything will just kill us
-+ */
-+
-+static int crypto_q_cnt = 0;
-+module_param(crypto_q_cnt, int, 0444);
-+MODULE_PARM_DESC(crypto_q_cnt,
-+		"Current number of outstanding crypto requests");
-+
-+static int crypto_q_max = 1000;
-+module_param(crypto_q_max, int, 0644);
-+MODULE_PARM_DESC(crypto_q_max,
-+		"Maximum number of outstanding crypto requests");
-+
-+#define bootverbose crypto_verbose
-+static int crypto_verbose = 0;
-+module_param(crypto_verbose, int, 0644);
-+MODULE_PARM_DESC(crypto_verbose,
-+		"Enable verbose crypto startup");
-+
-+int	crypto_usercrypto = 1;	/* userland may do crypto reqs */
-+module_param(crypto_usercrypto, int, 0644);
-+MODULE_PARM_DESC(crypto_usercrypto,
-+	   "Enable/disable user-mode access to crypto support");
-+
-+int	crypto_userasymcrypto = 1;	/* userland may do asym crypto reqs */
-+module_param(crypto_userasymcrypto, int, 0644);
-+MODULE_PARM_DESC(crypto_userasymcrypto,
-+	   "Enable/disable user-mode access to asymmetric crypto support");
-+
-+int	crypto_devallowsoft = 0;	/* only use hardware crypto */
-+module_param(crypto_devallowsoft, int, 0644);
-+MODULE_PARM_DESC(crypto_devallowsoft,
-+	   "Enable/disable use of software crypto support");
-+
-+/*
-+ * This parameter controls the maximum number of crypto operations to
-+ * do consecutively in the crypto kernel thread before scheduling to allow
-+ * other processes to run. Without it, it is possible to get into a
-+ * situation where the crypto thread never allows any other processes to run.
-+ * Default to 1000 which should be less than one second.
-+ */
-+static int crypto_max_loopcount = 1000;
-+module_param(crypto_max_loopcount, int, 0644);
-+MODULE_PARM_DESC(crypto_max_loopcount,
-+	   "Maximum number of crypto ops to do before yielding to other processes");
-+
-+#ifndef CONFIG_NR_CPUS
-+#define CONFIG_NR_CPUS 1
-+#endif
-+
-+static struct task_struct *cryptoproc[CONFIG_NR_CPUS];
-+static struct task_struct *cryptoretproc[CONFIG_NR_CPUS];
-+static DECLARE_WAIT_QUEUE_HEAD(cryptoproc_wait);
-+static DECLARE_WAIT_QUEUE_HEAD(cryptoretproc_wait);
-+
-+static	int crypto_proc(void *arg);
-+static	int crypto_ret_proc(void *arg);
-+static	int crypto_invoke(struct cryptocap *cap, struct cryptop *crp, int hint);
-+static	int crypto_kinvoke(struct cryptkop *krp, int flags);
-+static	void crypto_exit(void);
-+static  int crypto_init(void);
-+
-+static	struct cryptostats cryptostats;
-+
-+static struct cryptocap *
-+crypto_checkdriver(u_int32_t hid)
-+{
-+	if (crypto_drivers == NULL)
-+		return NULL;
-+	return (hid >= crypto_drivers_num ? NULL : &crypto_drivers[hid]);
-+}
-+
-+/*
-+ * Compare a driver's list of supported algorithms against another
-+ * list; return non-zero if all algorithms are supported.
-+ */
-+static int
-+driver_suitable(const struct cryptocap *cap, const struct cryptoini *cri)
-+{
-+	const struct cryptoini *cr;
-+
-+	/* See if all the algorithms are supported. */
-+	for (cr = cri; cr; cr = cr->cri_next)
-+		if (cap->cc_alg[cr->cri_alg] == 0)
-+			return 0;
-+	return 1;
-+}
-+
-+
-+/*
-+ * Select a driver for a new session that supports the specified
-+ * algorithms and, optionally, is constrained according to the flags.
-+ * The algorithm we use here is pretty stupid; just use the
-+ * first driver that supports all the algorithms we need. If there
-+ * are multiple drivers we choose the driver with the fewest active
-+ * sessions.  We prefer hardware-backed drivers to software ones.
-+ *
-+ * XXX We need more smarts here (in real life too, but that's
-+ * XXX another story altogether).
-+ */
-+static struct cryptocap *
-+crypto_select_driver(const struct cryptoini *cri, int flags)
-+{
-+	struct cryptocap *cap, *best;
-+	int match, hid;
-+
-+	CRYPTO_DRIVER_ASSERT();
-+
-+	/*
-+	 * Look first for hardware crypto devices if permitted.
-+	 */
-+	if (flags & CRYPTOCAP_F_HARDWARE)
-+		match = CRYPTOCAP_F_HARDWARE;
-+	else
-+		match = CRYPTOCAP_F_SOFTWARE;
-+	best = NULL;
-+again:
-+	for (hid = 0; hid < crypto_drivers_num; hid++) {
-+		cap = &crypto_drivers[hid];
-+		/*
-+		 * If it's not initialized, is in the process of
-+		 * going away, or is not appropriate (hardware
-+		 * or software based on match), then skip.
-+		 */
-+		if (cap->cc_dev == NULL ||
-+		    (cap->cc_flags & CRYPTOCAP_F_CLEANUP) ||
-+		    (cap->cc_flags & match) == 0)
-+			continue;
-+
-+		/* verify all the algorithms are supported. */
-+		if (driver_suitable(cap, cri)) {
-+			if (best == NULL ||
-+			    cap->cc_sessions < best->cc_sessions)
-+				best = cap;
-+		}
-+	}
-+	if (best != NULL)
-+		return best;
-+	if (match == CRYPTOCAP_F_HARDWARE && (flags & CRYPTOCAP_F_SOFTWARE)) {
-+		/* sort of an Algol 68-style for loop */
-+		match = CRYPTOCAP_F_SOFTWARE;
-+		goto again;
-+	}
-+	return best;
-+}
-+
-+/*
-+ * Create a new session.  The crid argument specifies a crypto
-+ * driver to use or constraints on a driver to select (hardware
-+ * only, software only, either).  Whatever driver is selected
-+ * must be capable of the requested crypto algorithms.
-+ */
-+int
-+crypto_newsession(u_int64_t *sid, struct cryptoini *cri, int crid)
-+{
-+	struct cryptocap *cap;
-+	u_int32_t hid, lid;
-+	int err;
-+	unsigned long d_flags;
-+
-+	CRYPTO_DRIVER_LOCK();
-+	if ((crid & (CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE)) == 0) {
-+		/*
-+		 * Use specified driver; verify it is capable.
-+		 */
-+		cap = crypto_checkdriver(crid);
-+		if (cap != NULL && !driver_suitable(cap, cri))
-+			cap = NULL;
-+	} else {
-+		/*
-+		 * No requested driver; select based on crid flags.
-+		 */
-+		cap = crypto_select_driver(cri, crid);
-+		/*
-+		 * if NULL then can't do everything in one session.
-+		 * XXX Fix this. We need to inject a "virtual" session
-+		 * XXX layer right about here.
-+		 */
-+	}
-+	if (cap != NULL) {
-+		/* Call the driver initialization routine. */
-+		hid = cap - crypto_drivers;
-+		lid = hid;		/* Pass the driver ID. */
-+		cap->cc_sessions++;
-+		CRYPTO_DRIVER_UNLOCK();
-+		err = CRYPTODEV_NEWSESSION(cap->cc_dev, &lid, cri);
-+		CRYPTO_DRIVER_LOCK();
-+		if (err == 0) {
-+			(*sid) = (cap->cc_flags & 0xff000000)
-+			       | (hid & 0x00ffffff);
-+			(*sid) <<= 32;
-+			(*sid) |= (lid & 0xffffffff);
-+		} else
-+			cap->cc_sessions--;
-+	} else
-+		err = EINVAL;
-+	CRYPTO_DRIVER_UNLOCK();
-+	return err;
-+}
-+
-+static void
-+crypto_remove(struct cryptocap *cap)
-+{
-+	CRYPTO_DRIVER_ASSERT();
-+	if (cap->cc_sessions == 0 && cap->cc_koperations == 0)
-+		bzero(cap, sizeof(*cap));
-+}
-+
-+/*
-+ * Delete an existing session (or a reserved session on an unregistered
-+ * driver).
-+ */
-+int
-+crypto_freesession(u_int64_t sid)
-+{
-+	struct cryptocap *cap;
-+	u_int32_t hid;
-+	int err = 0;
-+	unsigned long d_flags;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	CRYPTO_DRIVER_LOCK();
-+
-+	if (crypto_drivers == NULL) {
-+		err = EINVAL;
-+		goto done;
-+	}
-+
-+	/* Determine two IDs. */
-+	hid = CRYPTO_SESID2HID(sid);
-+
-+	if (hid >= crypto_drivers_num) {
-+		dprintk("%s - INVALID DRIVER NUM %d\n", __FUNCTION__, hid);
-+		err = ENOENT;
-+		goto done;
-+	}
-+	cap = &crypto_drivers[hid];
-+
-+	if (cap->cc_dev) {
-+		CRYPTO_DRIVER_UNLOCK();
-+		/* Call the driver cleanup routine, if available, unlocked. */
-+		err = CRYPTODEV_FREESESSION(cap->cc_dev, sid);
-+		CRYPTO_DRIVER_LOCK();
-+	}
-+
-+	if (cap->cc_sessions)
-+		cap->cc_sessions--;
-+
-+	if (cap->cc_flags & CRYPTOCAP_F_CLEANUP)
-+		crypto_remove(cap);
-+
-+done:
-+	CRYPTO_DRIVER_UNLOCK();
-+	return err;
-+}
-+
-+/*
-+ * Return an unused driver id.  Used by drivers prior to registering
-+ * support for the algorithms they handle.
-+ */
-+int32_t
-+crypto_get_driverid(device_t dev, int flags)
-+{
-+	struct cryptocap *newdrv;
-+	int i;
-+	unsigned long d_flags;
-+
-+	if ((flags & (CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE)) == 0) {
-+		printf("%s: no flags specified when registering driver\n",
-+		    device_get_nameunit(dev));
-+		return -1;
-+	}
-+
-+	CRYPTO_DRIVER_LOCK();
-+
-+	for (i = 0; i < crypto_drivers_num; i++) {
-+		if (crypto_drivers[i].cc_dev == NULL &&
-+		    (crypto_drivers[i].cc_flags & CRYPTOCAP_F_CLEANUP) == 0) {
-+			break;
-+		}
-+	}
-+
-+	/* Out of entries, allocate some more. */
-+	if (i == crypto_drivers_num) {
-+		/* Be careful about wrap-around. */
-+		if (2 * crypto_drivers_num <= crypto_drivers_num) {
-+			CRYPTO_DRIVER_UNLOCK();
-+			printk("crypto: driver count wraparound!\n");
-+			return -1;
-+		}
-+
-+		newdrv = kmalloc(2 * crypto_drivers_num * sizeof(struct cryptocap),
-+				GFP_KERNEL);
-+		if (newdrv == NULL) {
-+			CRYPTO_DRIVER_UNLOCK();
-+			printk("crypto: no space to expand driver table!\n");
-+			return -1;
-+		}
-+
-+		memcpy(newdrv, crypto_drivers,
-+				crypto_drivers_num * sizeof(struct cryptocap));
-+		memset(&newdrv[crypto_drivers_num], 0,
-+				crypto_drivers_num * sizeof(struct cryptocap));
-+
-+		crypto_drivers_num *= 2;
-+
-+		kfree(crypto_drivers);
-+		crypto_drivers = newdrv;
-+	}
-+
-+	/* NB: state is zero'd on free */
-+	crypto_drivers[i].cc_sessions = 1;	/* Mark */
-+	crypto_drivers[i].cc_dev = dev;
-+	crypto_drivers[i].cc_flags = flags;
-+	if (bootverbose)
-+		printf("crypto: assign %s driver id %u, flags %u\n",
-+		    device_get_nameunit(dev), i, flags);
-+
-+	CRYPTO_DRIVER_UNLOCK();
-+
-+	return i;
-+}
-+
-+/*
-+ * Lookup a driver by name.  We match against the full device
-+ * name and unit, and against just the name.  The latter gives
-+ * us a simple widlcarding by device name.  On success return the
-+ * driver/hardware identifier; otherwise return -1.
-+ */
-+int
-+crypto_find_driver(const char *match)
-+{
-+	int i, len = strlen(match);
-+	unsigned long d_flags;
-+
-+	CRYPTO_DRIVER_LOCK();
-+	for (i = 0; i < crypto_drivers_num; i++) {
-+		device_t dev = crypto_drivers[i].cc_dev;
-+		if (dev == NULL ||
-+		    (crypto_drivers[i].cc_flags & CRYPTOCAP_F_CLEANUP))
-+			continue;
-+		if (strncmp(match, device_get_nameunit(dev), len) == 0 ||
-+		    strncmp(match, device_get_name(dev), len) == 0)
-+			break;
-+	}
-+	CRYPTO_DRIVER_UNLOCK();
-+	return i < crypto_drivers_num ? i : -1;
-+}
-+
-+/*
-+ * Return the device_t for the specified driver or NULL
-+ * if the driver identifier is invalid.
-+ */
-+device_t
-+crypto_find_device_byhid(int hid)
-+{
-+	struct cryptocap *cap = crypto_checkdriver(hid);
-+	return cap != NULL ? cap->cc_dev : NULL;
-+}
-+
-+/*
-+ * Return the device/driver capabilities.
-+ */
-+int
-+crypto_getcaps(int hid)
-+{
-+	struct cryptocap *cap = crypto_checkdriver(hid);
-+	return cap != NULL ? cap->cc_flags : 0;
-+}
-+
-+/*
-+ * Register support for a key-related algorithm.  This routine
-+ * is called once for each algorithm supported a driver.
-+ */
-+int
-+crypto_kregister(u_int32_t driverid, int kalg, u_int32_t flags)
-+{
-+	struct cryptocap *cap;
-+	int err;
-+	unsigned long d_flags;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	CRYPTO_DRIVER_LOCK();
-+
-+	cap = crypto_checkdriver(driverid);
-+	if (cap != NULL &&
-+	    (CRK_ALGORITM_MIN <= kalg && kalg <= CRK_ALGORITHM_MAX)) {
-+		/*
-+		 * XXX Do some performance testing to determine placing.
-+		 * XXX We probably need an auxiliary data structure that
-+		 * XXX describes relative performances.
-+		 */
-+
-+		cap->cc_kalg[kalg] = flags | CRYPTO_ALG_FLAG_SUPPORTED;
-+		if (bootverbose)
-+			printf("crypto: %s registers key alg %u flags %u\n"
-+				, device_get_nameunit(cap->cc_dev)
-+				, kalg
-+				, flags
-+			);
-+		err = 0;
-+	} else
-+		err = EINVAL;
-+
-+	CRYPTO_DRIVER_UNLOCK();
-+	return err;
-+}
-+
-+/*
-+ * Register support for a non-key-related algorithm.  This routine
-+ * is called once for each such algorithm supported by a driver.
-+ */
-+int
-+crypto_register(u_int32_t driverid, int alg, u_int16_t maxoplen,
-+    u_int32_t flags)
-+{
-+	struct cryptocap *cap;
-+	int err;
-+	unsigned long d_flags;
-+
-+	dprintk("%s(id=0x%x, alg=%d, maxoplen=%d, flags=0x%x)\n", __FUNCTION__,
-+			driverid, alg, maxoplen, flags);
-+
-+	CRYPTO_DRIVER_LOCK();
-+
-+	cap = crypto_checkdriver(driverid);
-+	/* NB: algorithms are in the range [1..max] */
-+	if (cap != NULL &&
-+	    (CRYPTO_ALGORITHM_MIN <= alg && alg <= CRYPTO_ALGORITHM_MAX)) {
-+		/*
-+		 * XXX Do some performance testing to determine placing.
-+		 * XXX We probably need an auxiliary data structure that
-+		 * XXX describes relative performances.
-+		 */
-+
-+		cap->cc_alg[alg] = flags | CRYPTO_ALG_FLAG_SUPPORTED;
-+		cap->cc_max_op_len[alg] = maxoplen;
-+		if (bootverbose)
-+			printf("crypto: %s registers alg %u flags %u maxoplen %u\n"
-+				, device_get_nameunit(cap->cc_dev)
-+				, alg
-+				, flags
-+				, maxoplen
-+			);
-+		cap->cc_sessions = 0;		/* Unmark */
-+		err = 0;
-+	} else
-+		err = EINVAL;
-+
-+	CRYPTO_DRIVER_UNLOCK();
-+	return err;
-+}
-+
-+static void
-+driver_finis(struct cryptocap *cap)
-+{
-+	u_int32_t ses, kops;
-+
-+	CRYPTO_DRIVER_ASSERT();
-+
-+	ses = cap->cc_sessions;
-+	kops = cap->cc_koperations;
-+	bzero(cap, sizeof(*cap));
-+	if (ses != 0 || kops != 0) {
-+		/*
-+		 * If there are pending sessions,
-+		 * just mark as invalid.
-+		 */
-+		cap->cc_flags |= CRYPTOCAP_F_CLEANUP;
-+		cap->cc_sessions = ses;
-+		cap->cc_koperations = kops;
-+	}
-+}
-+
-+/*
-+ * Unregister a crypto driver. If there are pending sessions using it,
-+ * leave enough information around so that subsequent calls using those
-+ * sessions will correctly detect the driver has been unregistered and
-+ * reroute requests.
-+ */
-+int
-+crypto_unregister(u_int32_t driverid, int alg)
-+{
-+	struct cryptocap *cap;
-+	int i, err;
-+	unsigned long d_flags;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	CRYPTO_DRIVER_LOCK();
-+
-+	cap = crypto_checkdriver(driverid);
-+	if (cap != NULL &&
-+	    (CRYPTO_ALGORITHM_MIN <= alg && alg <= CRYPTO_ALGORITHM_MAX) &&
-+	    cap->cc_alg[alg] != 0) {
-+		cap->cc_alg[alg] = 0;
-+		cap->cc_max_op_len[alg] = 0;
-+
-+		/* Was this the last algorithm ? */
-+		for (i = 1; i <= CRYPTO_ALGORITHM_MAX; i++)
-+			if (cap->cc_alg[i] != 0)
-+				break;
-+
-+		if (i == CRYPTO_ALGORITHM_MAX + 1)
-+			driver_finis(cap);
-+		err = 0;
-+	} else
-+		err = EINVAL;
-+	CRYPTO_DRIVER_UNLOCK();
-+	return err;
-+}
-+
-+/*
-+ * Unregister all algorithms associated with a crypto driver.
-+ * If there are pending sessions using it, leave enough information
-+ * around so that subsequent calls using those sessions will
-+ * correctly detect the driver has been unregistered and reroute
-+ * requests.
-+ */
-+int
-+crypto_unregister_all(u_int32_t driverid)
-+{
-+	struct cryptocap *cap;
-+	int err;
-+	unsigned long d_flags;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	CRYPTO_DRIVER_LOCK();
-+	cap = crypto_checkdriver(driverid);
-+	if (cap != NULL) {
-+		driver_finis(cap);
-+		err = 0;
-+	} else
-+		err = EINVAL;
-+	CRYPTO_DRIVER_UNLOCK();
-+
-+	return err;
-+}
-+
-+/*
-+ * Clear blockage on a driver.  The what parameter indicates whether
-+ * the driver is now ready for cryptop's and/or cryptokop's.
-+ */
-+int
-+crypto_unblock(u_int32_t driverid, int what)
-+{
-+	struct cryptocap *cap;
-+	int err;
-+	unsigned long q_flags;
-+
-+	CRYPTO_Q_LOCK();
-+	cap = crypto_checkdriver(driverid);
-+	if (cap != NULL) {
-+		if (what & CRYPTO_SYMQ) {
-+			cap->cc_qblocked = 0;
-+			cap->cc_unqblocked = 0;
-+			crypto_all_qblocked = 0;
-+		}
-+		if (what & CRYPTO_ASYMQ) {
-+			cap->cc_kqblocked = 0;
-+			cap->cc_unkqblocked = 0;
-+			crypto_all_kqblocked = 0;
-+		}
-+		wake_up_interruptible(&cryptoproc_wait);
-+		err = 0;
-+	} else
-+		err = EINVAL;
-+	CRYPTO_Q_UNLOCK(); //DAVIDM should this be a driver lock
-+
-+	return err;
-+}
-+
-+/*
-+ * Add a crypto request to a queue, to be processed by the kernel thread.
-+ */
-+int
-+crypto_dispatch(struct cryptop *crp)
-+{
-+	struct cryptocap *cap;
-+	int result = -1;
-+	unsigned long q_flags;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+
-+	cryptostats.cs_ops++;
-+
-+	CRYPTO_Q_LOCK();
-+	if (crypto_q_cnt >= crypto_q_max) {
-+		cryptostats.cs_drops++;
-+		CRYPTO_Q_UNLOCK();
-+		return ENOMEM;
-+	}
-+	crypto_q_cnt++;
-+
-+	/* make sure we are starting a fresh run on this crp. */
-+	crp->crp_flags &= ~CRYPTO_F_DONE;
-+	crp->crp_etype = 0;
-+
-+	/*
-+	 * Caller marked the request to be processed immediately; dispatch
-+	 * it directly to the driver unless the driver is currently blocked.
-+	 */
-+	if ((crp->crp_flags & CRYPTO_F_BATCH) == 0) {
-+		int hid = CRYPTO_SESID2HID(crp->crp_sid);
-+		cap = crypto_checkdriver(hid);
-+		/* Driver cannot disappear when there is an active session. */
-+		KASSERT(cap != NULL, ("%s: Driver disappeared.", __func__));
-+		if (!cap->cc_qblocked) {
-+			crypto_all_qblocked = 0;
-+			crypto_drivers[hid].cc_unqblocked = 1;
-+			CRYPTO_Q_UNLOCK();
-+			result = crypto_invoke(cap, crp, 0);
-+			CRYPTO_Q_LOCK();
-+			if (result == ERESTART)
-+				if (crypto_drivers[hid].cc_unqblocked)
-+					crypto_drivers[hid].cc_qblocked = 1;
-+			crypto_drivers[hid].cc_unqblocked = 0;
-+		}
-+	}
-+	if (result == ERESTART) {
-+		/*
-+		 * The driver ran out of resources, mark the
-+		 * driver ``blocked'' for cryptop's and put
-+		 * the request back in the queue.  It would
-+		 * best to put the request back where we got
-+		 * it but that's hard so for now we put it
-+		 * at the front.  This should be ok; putting
-+		 * it at the end does not work.
-+		 */
-+		list_add(&crp->crp_next, &crp_q);
-+		cryptostats.cs_blocks++;
-+		result = 0;
-+	} else if (result == -1) {
-+		TAILQ_INSERT_TAIL(&crp_q, crp, crp_next);
-+		result = 0;
-+	}
-+	wake_up_interruptible(&cryptoproc_wait);
-+	CRYPTO_Q_UNLOCK();
-+	return result;
-+}
-+
-+/*
-+ * Add an asymetric crypto request to a queue,
-+ * to be processed by the kernel thread.
-+ */
-+int
-+crypto_kdispatch(struct cryptkop *krp)
-+{
-+	int error;
-+	unsigned long q_flags;
-+
-+	cryptostats.cs_kops++;
-+
-+	error = crypto_kinvoke(krp, krp->krp_crid);
-+	if (error == ERESTART) {
-+		CRYPTO_Q_LOCK();
-+		TAILQ_INSERT_TAIL(&crp_kq, krp, krp_next);
-+		wake_up_interruptible(&cryptoproc_wait);
-+		CRYPTO_Q_UNLOCK();
-+		error = 0;
-+	}
-+	return error;
-+}
-+
-+/*
-+ * Verify a driver is suitable for the specified operation.
-+ */
-+static __inline int
-+kdriver_suitable(const struct cryptocap *cap, const struct cryptkop *krp)
-+{
-+	return (cap->cc_kalg[krp->krp_op] & CRYPTO_ALG_FLAG_SUPPORTED) != 0;
-+}
-+
-+/*
-+ * Select a driver for an asym operation.  The driver must
-+ * support the necessary algorithm.  The caller can constrain
-+ * which device is selected with the flags parameter.  The
-+ * algorithm we use here is pretty stupid; just use the first
-+ * driver that supports the algorithms we need. If there are
-+ * multiple suitable drivers we choose the driver with the
-+ * fewest active operations.  We prefer hardware-backed
-+ * drivers to software ones when either may be used.
-+ */
-+static struct cryptocap *
-+crypto_select_kdriver(const struct cryptkop *krp, int flags)
-+{
-+	struct cryptocap *cap, *best, *blocked;
-+	int match, hid;
-+
-+	CRYPTO_DRIVER_ASSERT();
-+
-+	/*
-+	 * Look first for hardware crypto devices if permitted.
-+	 */
-+	if (flags & CRYPTOCAP_F_HARDWARE)
-+		match = CRYPTOCAP_F_HARDWARE;
-+	else
-+		match = CRYPTOCAP_F_SOFTWARE;
-+	best = NULL;
-+	blocked = NULL;
-+again:
-+	for (hid = 0; hid < crypto_drivers_num; hid++) {
-+		cap = &crypto_drivers[hid];
-+		/*
-+		 * If it's not initialized, is in the process of
-+		 * going away, or is not appropriate (hardware
-+		 * or software based on match), then skip.
-+		 */
-+		if (cap->cc_dev == NULL ||
-+		    (cap->cc_flags & CRYPTOCAP_F_CLEANUP) ||
-+		    (cap->cc_flags & match) == 0)
-+			continue;
-+
-+		/* verify all the algorithms are supported. */
-+		if (kdriver_suitable(cap, krp)) {
-+			if (best == NULL ||
-+			    cap->cc_koperations < best->cc_koperations)
-+				best = cap;
-+		}
-+	}
-+	if (best != NULL)
-+		return best;
-+	if (match == CRYPTOCAP_F_HARDWARE && (flags & CRYPTOCAP_F_SOFTWARE)) {
-+		/* sort of an Algol 68-style for loop */
-+		match = CRYPTOCAP_F_SOFTWARE;
-+		goto again;
-+	}
-+	return best;
-+}
-+
-+/*
-+ * Dispatch an assymetric crypto request.
-+ */
-+static int
-+crypto_kinvoke(struct cryptkop *krp, int crid)
-+{
-+	struct cryptocap *cap = NULL;
-+	int error;
-+	unsigned long d_flags;
-+
-+	KASSERT(krp != NULL, ("%s: krp == NULL", __func__));
-+	KASSERT(krp->krp_callback != NULL,
-+	    ("%s: krp->crp_callback == NULL", __func__));
-+
-+	CRYPTO_DRIVER_LOCK();
-+	if ((crid & (CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE)) == 0) {
-+		cap = crypto_checkdriver(crid);
-+		if (cap != NULL) {
-+			/*
-+			 * Driver present, it must support the necessary
-+			 * algorithm and, if s/w drivers are excluded,
-+			 * it must be registered as hardware-backed.
-+			 */
-+			if (!kdriver_suitable(cap, krp) ||
-+			    (!crypto_devallowsoft &&
-+			     (cap->cc_flags & CRYPTOCAP_F_HARDWARE) == 0))
-+				cap = NULL;
-+		}
-+	} else {
-+		/*
-+		 * No requested driver; select based on crid flags.
-+		 */
-+		if (!crypto_devallowsoft)	/* NB: disallow s/w drivers */
-+			crid &= ~CRYPTOCAP_F_SOFTWARE;
-+		cap = crypto_select_kdriver(krp, crid);
-+	}
-+	if (cap != NULL && !cap->cc_kqblocked) {
-+		krp->krp_hid = cap - crypto_drivers;
-+		cap->cc_koperations++;
-+		CRYPTO_DRIVER_UNLOCK();
-+		error = CRYPTODEV_KPROCESS(cap->cc_dev, krp, 0);
-+		CRYPTO_DRIVER_LOCK();
-+		if (error == ERESTART) {
-+			cap->cc_koperations--;
-+			CRYPTO_DRIVER_UNLOCK();
-+			return (error);
-+		}
-+		/* return the actual device used */
-+		krp->krp_crid = krp->krp_hid;
-+	} else {
-+		/*
-+		 * NB: cap is !NULL if device is blocked; in
-+		 *     that case return ERESTART so the operation
-+		 *     is resubmitted if possible.
-+		 */
-+		error = (cap == NULL) ? ENODEV : ERESTART;
-+	}
-+	CRYPTO_DRIVER_UNLOCK();
-+
-+	if (error) {
-+		krp->krp_status = error;
-+		crypto_kdone(krp);
-+	}
-+	return 0;
-+}
-+
-+
-+/*
-+ * Dispatch a crypto request to the appropriate crypto devices.
-+ */
-+static int
-+crypto_invoke(struct cryptocap *cap, struct cryptop *crp, int hint)
-+{
-+	KASSERT(crp != NULL, ("%s: crp == NULL", __func__));
-+	KASSERT(crp->crp_callback != NULL,
-+	    ("%s: crp->crp_callback == NULL", __func__));
-+	KASSERT(crp->crp_desc != NULL, ("%s: crp->crp_desc == NULL", __func__));
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+
-+#ifdef CRYPTO_TIMING
-+	if (crypto_timing)
-+		crypto_tstat(&cryptostats.cs_invoke, &crp->crp_tstamp);
-+#endif
-+	if (cap->cc_flags & CRYPTOCAP_F_CLEANUP) {
-+		struct cryptodesc *crd;
-+		u_int64_t nid;
-+
-+		/*
-+		 * Driver has unregistered; migrate the session and return
-+		 * an error to the caller so they'll resubmit the op.
-+		 *
-+		 * XXX: What if there are more already queued requests for this
-+		 *      session?
-+		 */
-+		crypto_freesession(crp->crp_sid);
-+
-+		for (crd = crp->crp_desc; crd->crd_next; crd = crd->crd_next)
-+			crd->CRD_INI.cri_next = &(crd->crd_next->CRD_INI);
-+
-+		/* XXX propagate flags from initial session? */
-+		if (crypto_newsession(&nid, &(crp->crp_desc->CRD_INI),
-+		    CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE) == 0)
-+			crp->crp_sid = nid;
-+
-+		crp->crp_etype = EAGAIN;
-+		crypto_done(crp);
-+		return 0;
-+	} else {
-+		/*
-+		 * Invoke the driver to process the request.
-+		 */
-+		return CRYPTODEV_PROCESS(cap->cc_dev, crp, hint);
-+	}
-+}
-+
-+/*
-+ * Release a set of crypto descriptors.
-+ */
-+void
-+crypto_freereq(struct cryptop *crp)
-+{
-+	struct cryptodesc *crd;
-+
-+	if (crp == NULL)
-+		return;
-+
-+#ifdef DIAGNOSTIC
-+	{
-+		struct cryptop *crp2;
-+		unsigned long q_flags;
-+
-+		CRYPTO_Q_LOCK();
-+		TAILQ_FOREACH(crp2, &crp_q, crp_next) {
-+			KASSERT(crp2 != crp,
-+			    ("Freeing cryptop from the crypto queue (%p).",
-+			    crp));
-+		}
-+		CRYPTO_Q_UNLOCK();
-+		CRYPTO_RETQ_LOCK();
-+		TAILQ_FOREACH(crp2, &crp_ret_q, crp_next) {
-+			KASSERT(crp2 != crp,
-+			    ("Freeing cryptop from the return queue (%p).",
-+			    crp));
-+		}
-+		CRYPTO_RETQ_UNLOCK();
-+	}
-+#endif
-+
-+	while ((crd = crp->crp_desc) != NULL) {
-+		crp->crp_desc = crd->crd_next;
-+		kmem_cache_free(cryptodesc_zone, crd);
-+	}
-+	kmem_cache_free(cryptop_zone, crp);
-+}
-+
-+/*
-+ * Acquire a set of crypto descriptors.
-+ */
-+struct cryptop *
-+crypto_getreq(int num)
-+{
-+	struct cryptodesc *crd;
-+	struct cryptop *crp;
-+
-+	crp = kmem_cache_alloc(cryptop_zone, SLAB_ATOMIC);
-+	if (crp != NULL) {
-+		memset(crp, 0, sizeof(*crp));
-+		INIT_LIST_HEAD(&crp->crp_next);
-+		init_waitqueue_head(&crp->crp_waitq);
-+		while (num--) {
-+			crd = kmem_cache_alloc(cryptodesc_zone, SLAB_ATOMIC);
-+			if (crd == NULL) {
-+				crypto_freereq(crp);
-+				return NULL;
-+			}
-+			memset(crd, 0, sizeof(*crd));
-+			crd->crd_next = crp->crp_desc;
-+			crp->crp_desc = crd;
-+		}
-+	}
-+	return crp;
-+}
-+
-+/*
-+ * Invoke the callback on behalf of the driver.
-+ */
-+void
-+crypto_done(struct cryptop *crp)
-+{
-+	unsigned long q_flags;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if ((crp->crp_flags & CRYPTO_F_DONE) == 0) {
-+		crp->crp_flags |= CRYPTO_F_DONE;
-+		CRYPTO_Q_LOCK();
-+		crypto_q_cnt--;
-+		CRYPTO_Q_UNLOCK();
-+	} else
-+		printk("crypto: crypto_done op already done, flags 0x%x",
-+				crp->crp_flags);
-+	if (crp->crp_etype != 0)
-+		cryptostats.cs_errs++;
-+	/*
-+	 * CBIMM means unconditionally do the callback immediately;
-+	 * CBIFSYNC means do the callback immediately only if the
-+	 * operation was done synchronously.  Both are used to avoid
-+	 * doing extraneous context switches; the latter is mostly
-+	 * used with the software crypto driver.
-+	 */
-+	if ((crp->crp_flags & CRYPTO_F_CBIMM) ||
-+	    ((crp->crp_flags & CRYPTO_F_CBIFSYNC) &&
-+	     (CRYPTO_SESID2CAPS(crp->crp_sid) & CRYPTOCAP_F_SYNC))) {
-+		/*
-+		 * Do the callback directly.  This is ok when the
-+		 * callback routine does very little (e.g. the
-+		 * /dev/crypto callback method just does a wakeup).
-+		 */
-+		crp->crp_callback(crp);
-+	} else {
-+		unsigned long r_flags;
-+		/*
-+		 * Normal case; queue the callback for the thread.
-+		 */
-+		CRYPTO_RETQ_LOCK();
-+		wake_up_interruptible(&cryptoretproc_wait);/* shared wait channel */
-+		TAILQ_INSERT_TAIL(&crp_ret_q, crp, crp_next);
-+		CRYPTO_RETQ_UNLOCK();
-+	}
-+}
-+
-+/*
-+ * Invoke the callback on behalf of the driver.
-+ */
-+void
-+crypto_kdone(struct cryptkop *krp)
-+{
-+	struct cryptocap *cap;
-+	unsigned long d_flags;
-+
-+	if ((krp->krp_flags & CRYPTO_KF_DONE) != 0)
-+		printk("crypto: crypto_kdone op already done, flags 0x%x",
-+				krp->krp_flags);
-+	krp->krp_flags |= CRYPTO_KF_DONE;
-+	if (krp->krp_status != 0)
-+		cryptostats.cs_kerrs++;
-+
-+	CRYPTO_DRIVER_LOCK();
-+	/* XXX: What if driver is loaded in the meantime? */
-+	if (krp->krp_hid < crypto_drivers_num) {
-+		cap = &crypto_drivers[krp->krp_hid];
-+		cap->cc_koperations--;
-+		KASSERT(cap->cc_koperations >= 0, ("cc_koperations < 0"));
-+		if (cap->cc_flags & CRYPTOCAP_F_CLEANUP)
-+			crypto_remove(cap);
-+	}
-+	CRYPTO_DRIVER_UNLOCK();
-+
-+	/*
-+	 * CBIMM means unconditionally do the callback immediately;
-+	 * This is used to avoid doing extraneous context switches
-+	 */
-+	if ((krp->krp_flags & CRYPTO_KF_CBIMM)) {
-+		/*
-+		 * Do the callback directly.  This is ok when the
-+		 * callback routine does very little (e.g. the
-+		 * /dev/crypto callback method just does a wakeup).
-+		 */
-+		krp->krp_callback(krp);
-+	} else {
-+		unsigned long r_flags;
-+		/*
-+		 * Normal case; queue the callback for the thread.
-+		 */
-+		CRYPTO_RETQ_LOCK();
-+		wake_up_interruptible(&cryptoretproc_wait);/* shared wait channel */
-+		TAILQ_INSERT_TAIL(&crp_ret_kq, krp, krp_next);
-+		CRYPTO_RETQ_UNLOCK();
-+	}
-+}
-+
-+int
-+crypto_getfeat(int *featp)
-+{
-+	int hid, kalg, feat = 0;
-+	unsigned long d_flags;
-+
-+	CRYPTO_DRIVER_LOCK();
-+	for (hid = 0; hid < crypto_drivers_num; hid++) {
-+		const struct cryptocap *cap = &crypto_drivers[hid];
-+
-+		if ((cap->cc_flags & CRYPTOCAP_F_SOFTWARE) &&
-+		    !crypto_devallowsoft) {
-+			continue;
-+		}
-+		for (kalg = 0; kalg < CRK_ALGORITHM_MAX; kalg++)
-+			if (cap->cc_kalg[kalg] & CRYPTO_ALG_FLAG_SUPPORTED)
-+				feat |=  1 << kalg;
-+	}
-+	CRYPTO_DRIVER_UNLOCK();
-+	*featp = feat;
-+	return (0);
-+}
-+
-+/*
-+ * Crypto thread, dispatches crypto requests.
-+ */
-+static int
-+crypto_proc(void *arg)
-+{
-+	struct cryptop *crp, *submit;
-+	struct cryptkop *krp, *krpp;
-+	struct cryptocap *cap;
-+	u_int32_t hid;
-+	int result, hint;
-+	unsigned long q_flags;
-+	int loopcount = 0;
-+
-+	set_current_state(TASK_INTERRUPTIBLE);
-+
-+	CRYPTO_Q_LOCK();
-+	for (;;) {
-+		/*
-+		 * we need to make sure we don't get into a busy loop with nothing
-+		 * to do,  the two crypto_all_*blocked vars help us find out when
-+		 * we are all full and can do nothing on any driver or Q.  If so we
-+		 * wait for an unblock.
-+		 */
-+		crypto_all_qblocked  = !list_empty(&crp_q);
-+
-+		/*
-+		 * Find the first element in the queue that can be
-+		 * processed and look-ahead to see if multiple ops
-+		 * are ready for the same driver.
-+		 */
-+		submit = NULL;
-+		hint = 0;
-+		list_for_each_entry(crp, &crp_q, crp_next) {
-+			hid = CRYPTO_SESID2HID(crp->crp_sid);
-+			cap = crypto_checkdriver(hid);
-+			/*
-+			 * Driver cannot disappear when there is an active
-+			 * session.
-+			 */
-+			KASSERT(cap != NULL, ("%s:%u Driver disappeared.",
-+			    __func__, __LINE__));
-+			if (cap == NULL || cap->cc_dev == NULL) {
-+				/* Op needs to be migrated, process it. */
-+				if (submit == NULL)
-+					submit = crp;
-+				break;
-+			}
-+			if (!cap->cc_qblocked) {
-+				if (submit != NULL) {
-+					/*
-+					 * We stop on finding another op,
-+					 * regardless whether its for the same
-+					 * driver or not.  We could keep
-+					 * searching the queue but it might be
-+					 * better to just use a per-driver
-+					 * queue instead.
-+					 */
-+					if (CRYPTO_SESID2HID(submit->crp_sid) == hid)
-+						hint = CRYPTO_HINT_MORE;
-+					break;
-+				} else {
-+					submit = crp;
-+					if ((submit->crp_flags & CRYPTO_F_BATCH) == 0)
-+						break;
-+					/* keep scanning for more are q'd */
-+				}
-+			}
-+		}
-+		if (submit != NULL) {
-+			hid = CRYPTO_SESID2HID(submit->crp_sid);
-+			crypto_all_qblocked = 0;
-+			list_del(&submit->crp_next);
-+			crypto_drivers[hid].cc_unqblocked = 1;
-+			cap = crypto_checkdriver(hid);
-+			CRYPTO_Q_UNLOCK();
-+			KASSERT(cap != NULL, ("%s:%u Driver disappeared.",
-+			    __func__, __LINE__));
-+			result = crypto_invoke(cap, submit, hint);
-+			CRYPTO_Q_LOCK();
-+			if (result == ERESTART) {
-+				/*
-+				 * The driver ran out of resources, mark the
-+				 * driver ``blocked'' for cryptop's and put
-+				 * the request back in the queue.  It would
-+				 * best to put the request back where we got
-+				 * it but that's hard so for now we put it
-+				 * at the front.  This should be ok; putting
-+				 * it at the end does not work.
-+				 */
-+				/* XXX validate sid again? */
-+				list_add(&submit->crp_next, &crp_q);
-+				cryptostats.cs_blocks++;
-+				if (crypto_drivers[hid].cc_unqblocked)
-+					crypto_drivers[hid].cc_qblocked=0;
-+				crypto_drivers[hid].cc_unqblocked=0;
-+			}
-+			crypto_drivers[hid].cc_unqblocked = 0;
-+		}
-+
-+		crypto_all_kqblocked = !list_empty(&crp_kq);
-+
-+		/* As above, but for key ops */
-+		krp = NULL;
-+		list_for_each_entry(krpp, &crp_kq, krp_next) {
-+			cap = crypto_checkdriver(krpp->krp_hid);
-+			if (cap == NULL || cap->cc_dev == NULL) {
-+				/*
-+				 * Operation needs to be migrated, invalidate
-+				 * the assigned device so it will reselect a
-+				 * new one below.  Propagate the original
-+				 * crid selection flags if supplied.
-+				 */
-+				krp->krp_hid = krp->krp_crid &
-+				    (CRYPTOCAP_F_SOFTWARE|CRYPTOCAP_F_HARDWARE);
-+				if (krp->krp_hid == 0)
-+					krp->krp_hid =
-+				    CRYPTOCAP_F_SOFTWARE|CRYPTOCAP_F_HARDWARE;
-+				break;
-+			}
-+			if (!cap->cc_kqblocked) {
-+				krp = krpp;
-+				break;
-+			}
-+		}
-+		if (krp != NULL) {
-+			crypto_all_kqblocked = 0;
-+			list_del(&krp->krp_next);
-+			crypto_drivers[krp->krp_hid].cc_kqblocked = 1;
-+			CRYPTO_Q_UNLOCK();
-+			result = crypto_kinvoke(krp, krp->krp_hid);
-+			CRYPTO_Q_LOCK();
-+			if (result == ERESTART) {
-+				/*
-+				 * The driver ran out of resources, mark the
-+				 * driver ``blocked'' for cryptkop's and put
-+				 * the request back in the queue.  It would
-+				 * best to put the request back where we got
-+				 * it but that's hard so for now we put it
-+				 * at the front.  This should be ok; putting
-+				 * it at the end does not work.
-+				 */
-+				/* XXX validate sid again? */
-+				list_add(&krp->krp_next, &crp_kq);
-+				cryptostats.cs_kblocks++;
-+			} else
-+				crypto_drivers[krp->krp_hid].cc_kqblocked = 0;
-+		}
-+
-+		if (submit == NULL && krp == NULL) {
-+			/*
-+			 * Nothing more to be processed.  Sleep until we're
-+			 * woken because there are more ops to process.
-+			 * This happens either by submission or by a driver
-+			 * becoming unblocked and notifying us through
-+			 * crypto_unblock.  Note that when we wakeup we
-+			 * start processing each queue again from the
-+			 * front. It's not clear that it's important to
-+			 * preserve this ordering since ops may finish
-+			 * out of order if dispatched to different devices
-+			 * and some become blocked while others do not.
-+			 */
-+			dprintk("%s - sleeping (qe=%d qb=%d kqe=%d kqb=%d)\n",
-+					__FUNCTION__,
-+					list_empty(&crp_q), crypto_all_qblocked,
-+					list_empty(&crp_kq), crypto_all_kqblocked);
-+			loopcount = 0;
-+			CRYPTO_Q_UNLOCK();
-+			wait_event_interruptible(cryptoproc_wait,
-+					!(list_empty(&crp_q) || crypto_all_qblocked) ||
-+					!(list_empty(&crp_kq) || crypto_all_kqblocked) ||
-+					kthread_should_stop());
-+			if (signal_pending (current)) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+				spin_lock_irq(&current->sigmask_lock);
-+#endif
-+				flush_signals(current);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+				spin_unlock_irq(&current->sigmask_lock);
-+#endif
-+			}
-+			CRYPTO_Q_LOCK();
-+			dprintk("%s - awake\n", __FUNCTION__);
-+			if (kthread_should_stop())
-+				break;
-+			cryptostats.cs_intrs++;
-+		} else if (loopcount > crypto_max_loopcount) {
-+			/*
-+			 * Give other processes a chance to run if we've
-+			 * been using the CPU exclusively for a while.
-+			 */
-+			loopcount = 0;
-+			CRYPTO_Q_UNLOCK();
-+			schedule();
-+			CRYPTO_Q_LOCK();
-+		}
-+		loopcount++;
-+	}
-+	CRYPTO_Q_UNLOCK();
-+	return 0;
-+}
-+
-+/*
-+ * Crypto returns thread, does callbacks for processed crypto requests.
-+ * Callbacks are done here, rather than in the crypto drivers, because
-+ * callbacks typically are expensive and would slow interrupt handling.
-+ */
-+static int
-+crypto_ret_proc(void *arg)
-+{
-+	struct cryptop *crpt;
-+	struct cryptkop *krpt;
-+	unsigned long  r_flags;
-+
-+	set_current_state(TASK_INTERRUPTIBLE);
-+
-+	CRYPTO_RETQ_LOCK();
-+	for (;;) {
-+		/* Harvest return q's for completed ops */
-+		crpt = NULL;
-+		if (!list_empty(&crp_ret_q))
-+			crpt = list_entry(crp_ret_q.next, typeof(*crpt), crp_next);
-+		if (crpt != NULL)
-+			list_del(&crpt->crp_next);
-+
-+		krpt = NULL;
-+		if (!list_empty(&crp_ret_kq))
-+			krpt = list_entry(crp_ret_kq.next, typeof(*krpt), krp_next);
-+		if (krpt != NULL)
-+			list_del(&krpt->krp_next);
-+
-+		if (crpt != NULL || krpt != NULL) {
-+			CRYPTO_RETQ_UNLOCK();
-+			/*
-+			 * Run callbacks unlocked.
-+			 */
-+			if (crpt != NULL)
-+				crpt->crp_callback(crpt);
-+			if (krpt != NULL)
-+				krpt->krp_callback(krpt);
-+			CRYPTO_RETQ_LOCK();
-+		} else {
-+			/*
-+			 * Nothing more to be processed.  Sleep until we're
-+			 * woken because there are more returns to process.
-+			 */
-+			dprintk("%s - sleeping\n", __FUNCTION__);
-+			CRYPTO_RETQ_UNLOCK();
-+			wait_event_interruptible(cryptoretproc_wait,
-+					!list_empty(&crp_ret_q) ||
-+					!list_empty(&crp_ret_kq) ||
-+					kthread_should_stop());
-+			if (signal_pending (current)) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+				spin_lock_irq(&current->sigmask_lock);
-+#endif
-+				flush_signals(current);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+				spin_unlock_irq(&current->sigmask_lock);
-+#endif
-+			}
-+			CRYPTO_RETQ_LOCK();
-+			dprintk("%s - awake\n", __FUNCTION__);
-+			if (kthread_should_stop()) {
-+				dprintk("%s - EXITING!\n", __FUNCTION__);
-+				break;
-+			}
-+			cryptostats.cs_rets++;
-+		}
-+	}
-+	CRYPTO_RETQ_UNLOCK();
-+	return 0;
-+}
-+
-+
-+#if 0 /* should put this into /proc or something */
-+static void
-+db_show_drivers(void)
-+{
-+	int hid;
-+
-+	db_printf("%12s %4s %4s %8s %2s %2s\n"
-+		, "Device"
-+		, "Ses"
-+		, "Kops"
-+		, "Flags"
-+		, "QB"
-+		, "KB"
-+	);
-+	for (hid = 0; hid < crypto_drivers_num; hid++) {
-+		const struct cryptocap *cap = &crypto_drivers[hid];
-+		if (cap->cc_dev == NULL)
-+			continue;
-+		db_printf("%-12s %4u %4u %08x %2u %2u\n"
-+		    , device_get_nameunit(cap->cc_dev)
-+		    , cap->cc_sessions
-+		    , cap->cc_koperations
-+		    , cap->cc_flags
-+		    , cap->cc_qblocked
-+		    , cap->cc_kqblocked
-+		);
-+	}
-+}
-+
-+DB_SHOW_COMMAND(crypto, db_show_crypto)
-+{
-+	struct cryptop *crp;
-+
-+	db_show_drivers();
-+	db_printf("\n");
-+
-+	db_printf("%4s %8s %4s %4s %4s %4s %8s %8s\n",
-+	    "HID", "Caps", "Ilen", "Olen", "Etype", "Flags",
-+	    "Desc", "Callback");
-+	TAILQ_FOREACH(crp, &crp_q, crp_next) {
-+		db_printf("%4u %08x %4u %4u %4u %04x %8p %8p\n"
-+		    , (int) CRYPTO_SESID2HID(crp->crp_sid)
-+		    , (int) CRYPTO_SESID2CAPS(crp->crp_sid)
-+		    , crp->crp_ilen, crp->crp_olen
-+		    , crp->crp_etype
-+		    , crp->crp_flags
-+		    , crp->crp_desc
-+		    , crp->crp_callback
-+		);
-+	}
-+	if (!TAILQ_EMPTY(&crp_ret_q)) {
-+		db_printf("\n%4s %4s %4s %8s\n",
-+		    "HID", "Etype", "Flags", "Callback");
-+		TAILQ_FOREACH(crp, &crp_ret_q, crp_next) {
-+			db_printf("%4u %4u %04x %8p\n"
-+			    , (int) CRYPTO_SESID2HID(crp->crp_sid)
-+			    , crp->crp_etype
-+			    , crp->crp_flags
-+			    , crp->crp_callback
-+			);
-+		}
-+	}
-+}
-+
-+DB_SHOW_COMMAND(kcrypto, db_show_kcrypto)
-+{
-+	struct cryptkop *krp;
-+
-+	db_show_drivers();
-+	db_printf("\n");
-+
-+	db_printf("%4s %5s %4s %4s %8s %4s %8s\n",
-+	    "Op", "Status", "#IP", "#OP", "CRID", "HID", "Callback");
-+	TAILQ_FOREACH(krp, &crp_kq, krp_next) {
-+		db_printf("%4u %5u %4u %4u %08x %4u %8p\n"
-+		    , krp->krp_op
-+		    , krp->krp_status
-+		    , krp->krp_iparams, krp->krp_oparams
-+		    , krp->krp_crid, krp->krp_hid
-+		    , krp->krp_callback
-+		);
-+	}
-+	if (!TAILQ_EMPTY(&crp_ret_q)) {
-+		db_printf("%4s %5s %8s %4s %8s\n",
-+		    "Op", "Status", "CRID", "HID", "Callback");
-+		TAILQ_FOREACH(krp, &crp_ret_kq, krp_next) {
-+			db_printf("%4u %5u %08x %4u %8p\n"
-+			    , krp->krp_op
-+			    , krp->krp_status
-+			    , krp->krp_crid, krp->krp_hid
-+			    , krp->krp_callback
-+			);
-+		}
-+	}
-+}
-+#endif
-+
-+
-+static int
-+crypto_init(void)
-+{
-+	int error;
-+	unsigned long cpu;
-+
-+	dprintk("%s(%p)\n", __FUNCTION__, (void *) crypto_init);
-+
-+	if (crypto_initted)
-+		return 0;
-+	crypto_initted = 1;
-+
-+	spin_lock_init(&crypto_drivers_lock);
-+	spin_lock_init(&crypto_q_lock);
-+	spin_lock_init(&crypto_ret_q_lock);
-+
-+	cryptop_zone = kmem_cache_create("cryptop", sizeof(struct cryptop),
-+				       0, SLAB_HWCACHE_ALIGN, NULL
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-+				       , NULL
-+#endif
-+					);
-+
-+	cryptodesc_zone = kmem_cache_create("cryptodesc", sizeof(struct cryptodesc),
-+				       0, SLAB_HWCACHE_ALIGN, NULL
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-+				       , NULL
-+#endif
-+					);
-+
-+	if (cryptodesc_zone == NULL || cryptop_zone == NULL) {
-+		printk("crypto: crypto_init cannot setup crypto zones\n");
-+		error = ENOMEM;
-+		goto bad;
-+	}
-+
-+	crypto_drivers_num = CRYPTO_DRIVERS_INITIAL;
-+	crypto_drivers = kmalloc(crypto_drivers_num * sizeof(struct cryptocap),
-+			GFP_KERNEL);
-+	if (crypto_drivers == NULL) {
-+		printk("crypto: crypto_init cannot setup crypto drivers\n");
-+		error = ENOMEM;
-+		goto bad;
-+	}
-+
-+	memset(crypto_drivers, 0, crypto_drivers_num * sizeof(struct cryptocap));
-+
-+	ocf_for_each_cpu(cpu) {
-+		cryptoproc[cpu] = kthread_create(crypto_proc, (void *) cpu,
-+									"ocf_%d", (int) cpu);
-+		if (IS_ERR(cryptoproc[cpu])) {
-+			error = PTR_ERR(cryptoproc[cpu]);
-+			printk("crypto: crypto_init cannot start crypto thread; error %d",
-+				error);
-+			goto bad;
-+		}
-+		kthread_bind(cryptoproc[cpu], cpu);
-+		wake_up_process(cryptoproc[cpu]);
-+
-+		cryptoretproc[cpu] = kthread_create(crypto_ret_proc, (void *) cpu,
-+									"ocf_ret_%d", (int) cpu);
-+		if (IS_ERR(cryptoretproc[cpu])) {
-+			error = PTR_ERR(cryptoretproc[cpu]);
-+			printk("crypto: crypto_init cannot start cryptoret thread; error %d",
-+					error);
-+			goto bad;
-+		}
-+		kthread_bind(cryptoretproc[cpu], cpu);
-+		wake_up_process(cryptoretproc[cpu]);
-+	}
-+
-+	return 0;
-+bad:
-+	crypto_exit();
-+	return error;
-+}
-+
-+
-+static void
-+crypto_exit(void)
-+{
-+	int cpu;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+
-+	/*
-+	 * Terminate any crypto threads.
-+	 */
-+	ocf_for_each_cpu(cpu) {
-+		kthread_stop(cryptoproc[cpu]);
-+		kthread_stop(cryptoretproc[cpu]);
-+	}
-+
-+	/*
-+	 * Reclaim dynamically allocated resources.
-+	 */
-+	if (crypto_drivers != NULL)
-+		kfree(crypto_drivers);
-+
-+	if (cryptodesc_zone != NULL)
-+		kmem_cache_destroy(cryptodesc_zone);
-+	if (cryptop_zone != NULL)
-+		kmem_cache_destroy(cryptop_zone);
-+}
-+
-+
-+EXPORT_SYMBOL(crypto_newsession);
-+EXPORT_SYMBOL(crypto_freesession);
-+EXPORT_SYMBOL(crypto_get_driverid);
-+EXPORT_SYMBOL(crypto_kregister);
-+EXPORT_SYMBOL(crypto_register);
-+EXPORT_SYMBOL(crypto_unregister);
-+EXPORT_SYMBOL(crypto_unregister_all);
-+EXPORT_SYMBOL(crypto_unblock);
-+EXPORT_SYMBOL(crypto_dispatch);
-+EXPORT_SYMBOL(crypto_kdispatch);
-+EXPORT_SYMBOL(crypto_freereq);
-+EXPORT_SYMBOL(crypto_getreq);
-+EXPORT_SYMBOL(crypto_done);
-+EXPORT_SYMBOL(crypto_kdone);
-+EXPORT_SYMBOL(crypto_getfeat);
-+EXPORT_SYMBOL(crypto_userasymcrypto);
-+EXPORT_SYMBOL(crypto_getcaps);
-+EXPORT_SYMBOL(crypto_find_driver);
-+EXPORT_SYMBOL(crypto_find_device_byhid);
-+
-+module_init(crypto_init);
-+module_exit(crypto_exit);
-+
-+MODULE_LICENSE("BSD");
-+MODULE_AUTHOR("David McCullough <david_mccullough at mcafee.com>");
-+MODULE_DESCRIPTION("OCF (OpenBSD Cryptographic Framework)");
-diff --git a/crypto/ocf/cryptodev.c b/crypto/ocf/cryptodev.c
-new file mode 100644
-index 0000000..2ee3618
---- /dev/null
-+++ b/crypto/ocf/cryptodev.c
-@@ -0,0 +1,1069 @@
-+/*	$OpenBSD: cryptodev.c,v 1.52 2002/06/19 07:22:46 deraadt Exp $	*/
-+
-+/*-
-+ * Linux port done by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ * The license and original author are listed below.
-+ *
-+ * Copyright (c) 2001 Theo de Raadt
-+ * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ *   notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *   notice, this list of conditions and the following disclaimer in the
-+ *   documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ *   derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Effort sponsored in part by the Defense Advanced Research Projects
-+ * Agency (DARPA) and Air Force Research Laboratory, Air Force
-+ * Materiel Command, USAF, under agreement number F30602-01-2-0537.
-+ *
-+__FBSDID("$FreeBSD: src/sys/opencrypto/cryptodev.c,v 1.34 2007/05/09 19:37:02 gnn Exp $");
-+ */
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/types.h>
-+#include <linux/time.h>
-+#include <linux/delay.h>
-+#include <linux/list.h>
-+#include <linux/init.h>
-+#include <linux/sched.h>
-+#include <linux/unistd.h>
-+#include <linux/module.h>
-+#include <linux/wait.h>
-+#include <linux/slab.h>
-+#include <linux/fs.h>
-+#include <linux/dcache.h>
-+#include <linux/file.h>
-+#include <linux/mount.h>
-+#include <linux/miscdevice.h>
-+#include <asm/uaccess.h>
-+
-+#include <cryptodev.h>
-+#include <uio.h>
-+
-+extern asmlinkage long sys_dup(unsigned int fildes);
-+
-+#define debug cryptodev_debug
-+int cryptodev_debug = 0;
-+module_param(cryptodev_debug, int, 0644);
-+MODULE_PARM_DESC(cryptodev_debug, "Enable cryptodev debug");
-+
-+struct csession_info {
-+	u_int16_t	blocksize;
-+	u_int16_t	minkey, maxkey;
-+
-+	u_int16_t	keysize;
-+	/* u_int16_t	hashsize;  */
-+	u_int16_t	authsize;
-+	u_int16_t	authkey;
-+	/* u_int16_t	ctxsize; */
-+};
-+
-+struct csession {
-+	struct list_head	list;
-+	u_int64_t	sid;
-+	u_int32_t	ses;
-+
-+	wait_queue_head_t waitq;
-+
-+	u_int32_t	cipher;
-+
-+	u_int32_t	mac;
-+
-+	caddr_t		key;
-+	int		keylen;
-+	u_char		tmp_iv[EALG_MAX_BLOCK_LEN];
-+
-+	caddr_t		mackey;
-+	int		mackeylen;
-+
-+	struct csession_info info;
-+
-+	struct iovec	iovec;
-+	struct uio	uio;
-+	int		error;
-+};
-+
-+struct fcrypt {
-+	struct list_head	csessions;
-+	int		sesn;
-+};
-+
-+static struct csession *csefind(struct fcrypt *, u_int);
-+static int csedelete(struct fcrypt *, struct csession *);
-+static struct csession *cseadd(struct fcrypt *, struct csession *);
-+static struct csession *csecreate(struct fcrypt *, u_int64_t,
-+		struct cryptoini *crie, struct cryptoini *cria, struct csession_info *);
-+static int csefree(struct csession *);
-+
-+static	int cryptodev_op(struct csession *, struct crypt_op *);
-+static	int cryptodev_key(struct crypt_kop *);
-+static	int cryptodev_find(struct crypt_find_op *);
-+
-+static int cryptodev_cb(void *);
-+static int cryptodev_open(struct inode *inode, struct file *filp);
-+
-+/*
-+ * Check a crypto identifier to see if it requested
-+ * a valid crid and it's capabilities match.
-+ */
-+static int
-+checkcrid(int crid)
-+{
-+	int hid = crid & ~(CRYPTOCAP_F_SOFTWARE | CRYPTOCAP_F_HARDWARE);
-+	int typ = crid & (CRYPTOCAP_F_SOFTWARE | CRYPTOCAP_F_HARDWARE);
-+	int caps = 0;
-+
-+	/* if the user hasn't selected a driver, then just call newsession */
-+	if (hid == 0 && typ != 0)
-+		return 0;
-+
-+	caps = crypto_getcaps(hid);
-+
-+	/* didn't find anything with capabilities */
-+	if (caps == 0) {
-+		dprintk("%s: hid=%x typ=%x not matched\n", __FUNCTION__, hid, typ);
-+		return EINVAL;
-+	}
-+
-+	/* the user didn't specify SW or HW, so the driver is ok */
-+	if (typ == 0)
-+		return 0;
-+
-+	/* if the type specified didn't match */
-+	if (typ != (caps & (CRYPTOCAP_F_SOFTWARE | CRYPTOCAP_F_HARDWARE))) {
-+		dprintk("%s: hid=%x typ=%x caps=%x not matched\n", __FUNCTION__,
-+				hid, typ, caps);
-+		return EINVAL;
-+	}
-+
-+	return 0;
-+}
-+
-+static int
-+cryptodev_op(struct csession *cse, struct crypt_op *cop)
-+{
-+	struct cryptop *crp = NULL;
-+	struct cryptodesc *crde = NULL, *crda = NULL;
-+	int error = 0;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (cop->len > CRYPTO_MAX_DATA_LEN) {
-+		dprintk("%s: %d > %d\n", __FUNCTION__, cop->len, CRYPTO_MAX_DATA_LEN);
-+		return (E2BIG);
-+	}
-+
-+	if (cse->info.blocksize && (cop->len % cse->info.blocksize) != 0) {
-+		dprintk("%s: blocksize=%d len=%d\n", __FUNCTION__, cse->info.blocksize,
-+				cop->len);
-+		return (EINVAL);
-+	}
-+
-+	cse->uio.uio_iov = &cse->iovec;
-+	cse->uio.uio_iovcnt = 1;
-+	cse->uio.uio_offset = 0;
-+#if 0
-+	cse->uio.uio_resid = cop->len;
-+	cse->uio.uio_segflg = UIO_SYSSPACE;
-+	cse->uio.uio_rw = UIO_WRITE;
-+	cse->uio.uio_td = td;
-+#endif
-+	cse->uio.uio_iov[0].iov_len = cop->len;
-+	if (cse->info.authsize)
-+		cse->uio.uio_iov[0].iov_len += cse->info.authsize;
-+	cse->uio.uio_iov[0].iov_base = kmalloc(cse->uio.uio_iov[0].iov_len,
-+			GFP_KERNEL);
-+
-+	if (cse->uio.uio_iov[0].iov_base == NULL) {
-+		dprintk("%s: iov_base kmalloc(%d) failed\n", __FUNCTION__,
-+				(int)cse->uio.uio_iov[0].iov_len);
-+		return (ENOMEM);
-+	}
-+
-+	crp = crypto_getreq((cse->info.blocksize != 0) + (cse->info.authsize != 0));
-+	if (crp == NULL) {
-+		dprintk("%s: ENOMEM\n", __FUNCTION__);
-+		error = ENOMEM;
-+		goto bail;
-+	}
-+
-+	if (cse->info.authsize && cse->info.blocksize) {
-+		if (cop->op == COP_ENCRYPT) {
-+			crde = crp->crp_desc;
-+			crda = crde->crd_next;
-+		} else {
-+			crda = crp->crp_desc;
-+			crde = crda->crd_next;
-+		}
-+	} else if (cse->info.authsize) {
-+		crda = crp->crp_desc;
-+	} else if (cse->info.blocksize) {
-+		crde = crp->crp_desc;
-+	} else {
-+		dprintk("%s: bad request\n", __FUNCTION__);
-+		error = EINVAL;
-+		goto bail;
-+	}
-+
-+	if ((error = copy_from_user(cse->uio.uio_iov[0].iov_base, cop->src,
-+					cop->len))) {
-+		dprintk("%s: bad copy\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+	if (crda) {
-+		crda->crd_skip = 0;
-+		crda->crd_len = cop->len;
-+		crda->crd_inject = cop->len;
-+
-+		crda->crd_alg = cse->mac;
-+		crda->crd_key = cse->mackey;
-+		crda->crd_klen = cse->mackeylen * 8;
-+	}
-+
-+	if (crde) {
-+		if (cop->op == COP_ENCRYPT)
-+			crde->crd_flags |= CRD_F_ENCRYPT;
-+		else
-+			crde->crd_flags &= ~CRD_F_ENCRYPT;
-+		crde->crd_len = cop->len;
-+		crde->crd_inject = 0;
-+
-+		crde->crd_alg = cse->cipher;
-+		crde->crd_key = cse->key;
-+		crde->crd_klen = cse->keylen * 8;
-+	}
-+
-+	crp->crp_ilen = cse->uio.uio_iov[0].iov_len;
-+	crp->crp_flags = CRYPTO_F_IOV | CRYPTO_F_CBIMM
-+		       | (cop->flags & COP_F_BATCH);
-+	crp->crp_buf = (caddr_t)&cse->uio;
-+	crp->crp_callback = (int (*) (struct cryptop *)) cryptodev_cb;
-+	crp->crp_sid = cse->sid;
-+	crp->crp_opaque = (void *)cse;
-+
-+	if (cop->iv) {
-+		if (crde == NULL) {
-+			error = EINVAL;
-+			dprintk("%s no crde\n", __FUNCTION__);
-+			goto bail;
-+		}
-+		if (cse->cipher == CRYPTO_ARC4) { /* XXX use flag? */
-+			error = EINVAL;
-+			dprintk("%s arc4 with IV\n", __FUNCTION__);
-+			goto bail;
-+		}
-+		if ((error = copy_from_user(cse->tmp_iv, cop->iv,
-+						cse->info.blocksize))) {
-+			dprintk("%s bad iv copy\n", __FUNCTION__);
-+			goto bail;
-+		}
-+		memcpy(crde->crd_iv, cse->tmp_iv, cse->info.blocksize);
-+		crde->crd_flags |= CRD_F_IV_EXPLICIT | CRD_F_IV_PRESENT;
-+		crde->crd_skip = 0;
-+	} else if (cse->cipher == CRYPTO_ARC4) { /* XXX use flag? */
-+		crde->crd_skip = 0;
-+	} else if (crde) {
-+		crde->crd_flags |= CRD_F_IV_PRESENT;
-+		crde->crd_skip = cse->info.blocksize;
-+		crde->crd_len -= cse->info.blocksize;
-+	}
-+
-+	if (cop->mac && crda == NULL) {
-+		error = EINVAL;
-+		dprintk("%s no crda\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+	/*
-+	 * Let the dispatch run unlocked, then, interlock against the
-+	 * callback before checking if the operation completed and going
-+	 * to sleep.  This insures drivers don't inherit our lock which
-+	 * results in a lock order reversal between crypto_dispatch forced
-+	 * entry and the crypto_done callback into us.
-+	 */
-+	error = crypto_dispatch(crp);
-+	if (error) {
-+		dprintk("%s error in crypto_dispatch\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+	dprintk("%s about to WAIT\n", __FUNCTION__);
-+	/*
-+	 * we really need to wait for driver to complete to maintain
-+	 * state,  luckily interrupts will be remembered
-+	 */
-+	do {
-+		error = wait_event_interruptible(crp->crp_waitq,
-+				((crp->crp_flags & CRYPTO_F_DONE) != 0));
-+		/*
-+		 * we can't break out of this loop or we will leave behind
-+		 * a huge mess,  however,  staying here means if your driver
-+		 * is broken user applications can hang and not be killed.
-+		 * The solution,  fix your driver :-)
-+		 */
-+		if (error) {
-+			schedule();
-+			error = 0;
-+		}
-+	} while ((crp->crp_flags & CRYPTO_F_DONE) == 0);
-+	dprintk("%s finished WAITING error=%d\n", __FUNCTION__, error);
-+
-+	if (crp->crp_etype != 0) {
-+		error = crp->crp_etype;
-+		dprintk("%s error in crp processing\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+	if (cse->error) {
-+		error = cse->error;
-+		dprintk("%s error in cse processing\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+	if (cop->dst && (error = copy_to_user(cop->dst,
-+					cse->uio.uio_iov[0].iov_base, cop->len))) {
-+		dprintk("%s bad dst copy\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+	if (cop->mac &&
-+			(error=copy_to_user(cop->mac,
-+				(caddr_t)cse->uio.uio_iov[0].iov_base + cop->len,
-+				cse->info.authsize))) {
-+		dprintk("%s bad mac copy\n", __FUNCTION__);
-+		goto bail;
-+	}
-+
-+bail:
-+	if (crp)
-+		crypto_freereq(crp);
-+	if (cse->uio.uio_iov[0].iov_base)
-+		kfree(cse->uio.uio_iov[0].iov_base);
-+
-+	return (error);
-+}
-+
-+static int
-+cryptodev_cb(void *op)
-+{
-+	struct cryptop *crp = (struct cryptop *) op;
-+	struct csession *cse = (struct csession *)crp->crp_opaque;
-+	int error;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	error = crp->crp_etype;
-+	if (error == EAGAIN) {
-+		crp->crp_flags &= ~CRYPTO_F_DONE;
-+#ifdef NOTYET
-+		/*
-+		 * DAVIDM I am fairly sure that we should turn this into a batch
-+		 * request to stop bad karma/lockup, revisit
-+		 */
-+		crp->crp_flags |= CRYPTO_F_BATCH;
-+#endif
-+		return crypto_dispatch(crp);
-+	}
-+	if (error != 0 || (crp->crp_flags & CRYPTO_F_DONE)) {
-+		cse->error = error;
-+		wake_up_interruptible(&crp->crp_waitq);
-+	}
-+	return (0);
-+}
-+
-+static int
-+cryptodevkey_cb(void *op)
-+{
-+	struct cryptkop *krp = (struct cryptkop *) op;
-+	dprintk("%s()\n", __FUNCTION__);
-+	wake_up_interruptible(&krp->krp_waitq);
-+	return (0);
-+}
-+
-+static int
-+cryptodev_key(struct crypt_kop *kop)
-+{
-+	struct cryptkop *krp = NULL;
-+	int error = EINVAL;
-+	int in, out, size, i;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (kop->crk_iparams + kop->crk_oparams > CRK_MAXPARAM) {
-+		dprintk("%s params too big\n", __FUNCTION__);
-+		return (EFBIG);
-+	}
-+
-+	in = kop->crk_iparams;
-+	out = kop->crk_oparams;
-+	switch (kop->crk_op) {
-+	case CRK_MOD_EXP:
-+		if (in == 3 && out == 1)
-+			break;
-+		return (EINVAL);
-+	case CRK_MOD_EXP_CRT:
-+		if (in == 6 && out == 1)
-+			break;
-+		return (EINVAL);
-+	case CRK_DSA_SIGN:
-+		if (in == 5 && out == 2)
-+			break;
-+		return (EINVAL);
-+	case CRK_DSA_VERIFY:
-+		if (in == 7 && out == 0)
-+			break;
-+		return (EINVAL);
-+	case CRK_DH_COMPUTE_KEY:
-+		if (in == 3 && out == 1)
-+			break;
-+		return (EINVAL);
-+	default:
-+		return (EINVAL);
-+	}
-+
-+	krp = (struct cryptkop *)kmalloc(sizeof *krp, GFP_KERNEL);
-+	if (!krp)
-+		return (ENOMEM);
-+	bzero(krp, sizeof *krp);
-+	krp->krp_op = kop->crk_op;
-+	krp->krp_status = kop->crk_status;
-+	krp->krp_iparams = kop->crk_iparams;
-+	krp->krp_oparams = kop->crk_oparams;
-+	krp->krp_crid = kop->crk_crid;
-+	krp->krp_status = 0;
-+	krp->krp_flags = CRYPTO_KF_CBIMM;
-+	krp->krp_callback = (int (*) (struct cryptkop *)) cryptodevkey_cb;
-+	init_waitqueue_head(&krp->krp_waitq);
-+
-+	for (i = 0; i < CRK_MAXPARAM; i++)
-+		krp->krp_param[i].crp_nbits = kop->crk_param[i].crp_nbits;
-+	for (i = 0; i < krp->krp_iparams + krp->krp_oparams; i++) {
-+		size = (krp->krp_param[i].crp_nbits + 7) / 8;
-+		if (size == 0)
-+			continue;
-+		krp->krp_param[i].crp_p = (caddr_t) kmalloc(size, GFP_KERNEL);
-+		if (i >= krp->krp_iparams)
-+			continue;
-+		error = copy_from_user(krp->krp_param[i].crp_p,
-+				kop->crk_param[i].crp_p, size);
-+		if (error)
-+			goto fail;
-+	}
-+
-+	error = crypto_kdispatch(krp);
-+	if (error)
-+		goto fail;
-+
-+	do {
-+		error = wait_event_interruptible(krp->krp_waitq,
-+				((krp->krp_flags & CRYPTO_KF_DONE) != 0));
-+		/*
-+		 * we can't break out of this loop or we will leave behind
-+		 * a huge mess,  however,  staying here means if your driver
-+		 * is broken user applications can hang and not be killed.
-+		 * The solution,  fix your driver :-)
-+		 */
-+		if (error) {
-+			schedule();
-+			error = 0;
-+		}
-+	} while ((krp->krp_flags & CRYPTO_KF_DONE) == 0);
-+
-+	dprintk("%s finished WAITING error=%d\n", __FUNCTION__, error);
-+
-+	kop->crk_crid = krp->krp_crid;		/* device that did the work */
-+	if (krp->krp_status != 0) {
-+		error = krp->krp_status;
-+		goto fail;
-+	}
-+
-+	for (i = krp->krp_iparams; i < krp->krp_iparams + krp->krp_oparams; i++) {
-+		size = (krp->krp_param[i].crp_nbits + 7) / 8;
-+		if (size == 0)
-+			continue;
-+		error = copy_to_user(kop->crk_param[i].crp_p, krp->krp_param[i].crp_p,
-+				size);
-+		if (error)
-+			goto fail;
-+	}
-+
-+fail:
-+	if (krp) {
-+		kop->crk_status = krp->krp_status;
-+		for (i = 0; i < CRK_MAXPARAM; i++) {
-+			if (krp->krp_param[i].crp_p)
-+				kfree(krp->krp_param[i].crp_p);
-+		}
-+		kfree(krp);
-+	}
-+	return (error);
-+}
-+
-+static int
-+cryptodev_find(struct crypt_find_op *find)
-+{
-+	device_t dev;
-+
-+	if (find->crid != -1) {
-+		dev = crypto_find_device_byhid(find->crid);
-+		if (dev == NULL)
-+			return (ENOENT);
-+		strlcpy(find->name, device_get_nameunit(dev),
-+		    sizeof(find->name));
-+	} else {
-+		find->crid = crypto_find_driver(find->name);
-+		if (find->crid == -1)
-+			return (ENOENT);
-+	}
-+	return (0);
-+}
-+
-+static struct csession *
-+csefind(struct fcrypt *fcr, u_int ses)
-+{
-+	struct csession *cse;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	list_for_each_entry(cse, &fcr->csessions, list)
-+		if (cse->ses == ses)
-+			return (cse);
-+	return (NULL);
-+}
-+
-+static int
-+csedelete(struct fcrypt *fcr, struct csession *cse_del)
-+{
-+	struct csession *cse;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	list_for_each_entry(cse, &fcr->csessions, list) {
-+		if (cse == cse_del) {
-+			list_del(&cse->list);
-+			return (1);
-+		}
-+	}
-+	return (0);
-+}
-+
-+static struct csession *
-+cseadd(struct fcrypt *fcr, struct csession *cse)
-+{
-+	dprintk("%s()\n", __FUNCTION__);
-+	list_add_tail(&cse->list, &fcr->csessions);
-+	cse->ses = fcr->sesn++;
-+	return (cse);
-+}
-+
-+static struct csession *
-+csecreate(struct fcrypt *fcr, u_int64_t sid, struct cryptoini *crie,
-+	struct cryptoini *cria, struct csession_info *info)
-+{
-+	struct csession *cse;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	cse = (struct csession *) kmalloc(sizeof(struct csession), GFP_KERNEL);
-+	if (cse == NULL)
-+		return NULL;
-+	memset(cse, 0, sizeof(struct csession));
-+
-+	INIT_LIST_HEAD(&cse->list);
-+	init_waitqueue_head(&cse->waitq);
-+
-+	cse->key = crie->cri_key;
-+	cse->keylen = crie->cri_klen/8;
-+	cse->mackey = cria->cri_key;
-+	cse->mackeylen = cria->cri_klen/8;
-+	cse->sid = sid;
-+	cse->cipher = crie->cri_alg;
-+	cse->mac = cria->cri_alg;
-+	cse->info = *info;
-+	cseadd(fcr, cse);
-+	return (cse);
-+}
-+
-+static int
-+csefree(struct csession *cse)
-+{
-+	int error;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	error = crypto_freesession(cse->sid);
-+	if (cse->key)
-+		kfree(cse->key);
-+	if (cse->mackey)
-+		kfree(cse->mackey);
-+	kfree(cse);
-+	return(error);
-+}
-+
-+static int
-+cryptodev_ioctl(
-+	struct inode *inode,
-+	struct file *filp,
-+	unsigned int cmd,
-+	unsigned long arg)
-+{
-+	struct cryptoini cria, crie;
-+	struct fcrypt *fcr = filp->private_data;
-+	struct csession *cse;
-+	struct csession_info info;
-+	struct session2_op sop;
-+	struct crypt_op cop;
-+	struct crypt_kop kop;
-+	struct crypt_find_op fop;
-+	u_int64_t sid;
-+	u_int32_t ses = 0;
-+	int feat, fd, error = 0, crid;
-+	mm_segment_t fs;
-+
-+	dprintk("%s(cmd=%x arg=%lx)\n", __FUNCTION__, cmd, arg);
-+
-+	switch (cmd) {
-+
-+	case CRIOGET: {
-+		dprintk("%s(CRIOGET)\n", __FUNCTION__);
-+		fs = get_fs();
-+		set_fs(get_ds());
-+		for (fd = 0; fd < files_fdtable(current->files)->max_fds; fd++)
-+			if (files_fdtable(current->files)->fd[fd] == filp)
-+				break;
-+		fd = sys_dup(fd);
-+		set_fs(fs);
-+		put_user(fd, (int *) arg);
-+		return IS_ERR_VALUE(fd) ? fd : 0;
-+		}
-+
-+#define	CIOCGSESSSTR	(cmd == CIOCGSESSION ? "CIOCGSESSION" : "CIOCGSESSION2")
-+	case CIOCGSESSION:
-+	case CIOCGSESSION2:
-+		dprintk("%s(%s)\n", __FUNCTION__, CIOCGSESSSTR);
-+		memset(&crie, 0, sizeof(crie));
-+		memset(&cria, 0, sizeof(cria));
-+		memset(&info, 0, sizeof(info));
-+		memset(&sop, 0, sizeof(sop));
-+
-+		if (copy_from_user(&sop, (void*)arg, (cmd == CIOCGSESSION) ?
-+					sizeof(struct session_op) : sizeof(sop))) {
-+			dprintk("%s(%s) - bad copy\n", __FUNCTION__, CIOCGSESSSTR);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+
-+		switch (sop.cipher) {
-+		case 0:
-+			dprintk("%s(%s) - no cipher\n", __FUNCTION__, CIOCGSESSSTR);
-+			break;
-+		case CRYPTO_NULL_CBC:
-+			info.blocksize = NULL_BLOCK_LEN;
-+			info.minkey = NULL_MIN_KEY_LEN;
-+			info.maxkey = NULL_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_DES_CBC:
-+			info.blocksize = DES_BLOCK_LEN;
-+			info.minkey = DES_MIN_KEY_LEN;
-+			info.maxkey = DES_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_3DES_CBC:
-+			info.blocksize = DES3_BLOCK_LEN;
-+			info.minkey = DES3_MIN_KEY_LEN;
-+			info.maxkey = DES3_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_BLF_CBC:
-+			info.blocksize = BLOWFISH_BLOCK_LEN;
-+			info.minkey = BLOWFISH_MIN_KEY_LEN;
-+			info.maxkey = BLOWFISH_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_CAST_CBC:
-+			info.blocksize = CAST128_BLOCK_LEN;
-+			info.minkey = CAST128_MIN_KEY_LEN;
-+			info.maxkey = CAST128_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_SKIPJACK_CBC:
-+			info.blocksize = SKIPJACK_BLOCK_LEN;
-+			info.minkey = SKIPJACK_MIN_KEY_LEN;
-+			info.maxkey = SKIPJACK_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_AES_CBC:
-+			info.blocksize = AES_BLOCK_LEN;
-+			info.minkey = AES_MIN_KEY_LEN;
-+			info.maxkey = AES_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_ARC4:
-+			info.blocksize = ARC4_BLOCK_LEN;
-+			info.minkey = ARC4_MIN_KEY_LEN;
-+			info.maxkey = ARC4_MAX_KEY_LEN;
-+			break;
-+		case CRYPTO_CAMELLIA_CBC:
-+			info.blocksize = CAMELLIA_BLOCK_LEN;
-+			info.minkey = CAMELLIA_MIN_KEY_LEN;
-+			info.maxkey = CAMELLIA_MAX_KEY_LEN;
-+			break;
-+		default:
-+			dprintk("%s(%s) - bad cipher\n", __FUNCTION__, CIOCGSESSSTR);
-+			error = EINVAL;
-+			goto bail;
-+		}
-+
-+		switch (sop.mac) {
-+		case 0:
-+			dprintk("%s(%s) - no mac\n", __FUNCTION__, CIOCGSESSSTR);
-+			break;
-+		case CRYPTO_NULL_HMAC:
-+			info.authsize = NULL_HASH_LEN;
-+			break;
-+		case CRYPTO_MD5:
-+			info.authsize = MD5_HASH_LEN;
-+			break;
-+		case CRYPTO_SHA1:
-+			info.authsize = SHA1_HASH_LEN;
-+			break;
-+		case CRYPTO_SHA2_256:
-+			info.authsize = SHA2_256_HASH_LEN;
-+			break;
-+		case CRYPTO_SHA2_384:
-+			info.authsize = SHA2_384_HASH_LEN;
-+  			break;
-+		case CRYPTO_SHA2_512:
-+			info.authsize = SHA2_512_HASH_LEN;
-+			break;
-+		case CRYPTO_RIPEMD160:
-+			info.authsize = RIPEMD160_HASH_LEN;
-+			break;
-+		case CRYPTO_MD5_HMAC:
-+			info.authsize = MD5_HASH_LEN;
-+			info.authkey = 16;
-+			break;
-+		case CRYPTO_SHA1_HMAC:
-+			info.authsize = SHA1_HASH_LEN;
-+			info.authkey = 20;
-+			break;
-+		case CRYPTO_SHA2_256_HMAC:
-+			info.authsize = SHA2_256_HASH_LEN;
-+			info.authkey = 32;
-+			break;
-+		case CRYPTO_SHA2_384_HMAC:
-+			info.authsize = SHA2_384_HASH_LEN;
-+			info.authkey = 48;
-+  			break;
-+		case CRYPTO_SHA2_512_HMAC:
-+			info.authsize = SHA2_512_HASH_LEN;
-+			info.authkey = 64;
-+			break;
-+		case CRYPTO_RIPEMD160_HMAC:
-+			info.authsize = RIPEMD160_HASH_LEN;
-+			info.authkey = 20;
-+			break;
-+		default:
-+			dprintk("%s(%s) - bad mac\n", __FUNCTION__, CIOCGSESSSTR);
-+			error = EINVAL;
-+			goto bail;
-+		}
-+
-+		if (info.blocksize) {
-+			crie.cri_alg = sop.cipher;
-+			crie.cri_klen = sop.keylen * 8;
-+			if ((info.maxkey && sop.keylen > info.maxkey) ||
-+				   	sop.keylen < info.minkey) {
-+				dprintk("%s(%s) - bad key\n", __FUNCTION__, CIOCGSESSSTR);
-+				error = EINVAL;
-+				goto bail;
-+			}
-+
-+			crie.cri_key = (u_int8_t *) kmalloc(crie.cri_klen/8+1, GFP_KERNEL);
-+			if (copy_from_user(crie.cri_key, sop.key,
-+							crie.cri_klen/8)) {
-+				dprintk("%s(%s) - bad copy\n", __FUNCTION__, CIOCGSESSSTR);
-+				error = EFAULT;
-+				goto bail;
-+			}
-+			if (info.authsize)
-+				crie.cri_next = &cria;
-+		}
-+
-+		if (info.authsize) {
-+			cria.cri_alg = sop.mac;
-+			cria.cri_klen = sop.mackeylen * 8;
-+			if (info.authkey && sop.mackeylen != info.authkey) {
-+				dprintk("%s(%s) - mackeylen %d != %d\n", __FUNCTION__,
-+						CIOCGSESSSTR, sop.mackeylen, info.authkey);
-+				error = EINVAL;
-+				goto bail;
-+			}
-+
-+			if (cria.cri_klen) {
-+				cria.cri_key = (u_int8_t *) kmalloc(cria.cri_klen/8,GFP_KERNEL);
-+				if (copy_from_user(cria.cri_key, sop.mackey,
-+								cria.cri_klen / 8)) {
-+					dprintk("%s(%s) - bad copy\n", __FUNCTION__, CIOCGSESSSTR);
-+					error = EFAULT;
-+					goto bail;
-+				}
-+			}
-+		}
-+
-+		/* NB: CIOGSESSION2 has the crid */
-+		if (cmd == CIOCGSESSION2) {
-+			crid = sop.crid;
-+			error = checkcrid(crid);
-+			if (error) {
-+				dprintk("%s(%s) - checkcrid %x\n", __FUNCTION__,
-+						CIOCGSESSSTR, error);
-+				goto bail;
-+			}
-+		} else {
-+			/* allow either HW or SW to be used */
-+			crid = CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE;
-+		}
-+		error = crypto_newsession(&sid, (info.blocksize ? &crie : &cria), crid);
-+		if (error) {
-+			dprintk("%s(%s) - newsession %d\n",__FUNCTION__,CIOCGSESSSTR,error);
-+			goto bail;
-+		}
-+
-+		cse = csecreate(fcr, sid, &crie, &cria, &info);
-+		if (cse == NULL) {
-+			crypto_freesession(sid);
-+			error = EINVAL;
-+			dprintk("%s(%s) - csecreate failed\n", __FUNCTION__, CIOCGSESSSTR);
-+			goto bail;
-+		}
-+		sop.ses = cse->ses;
-+
-+		if (cmd == CIOCGSESSION2) {
-+			/* return hardware/driver id */
-+			sop.crid = CRYPTO_SESID2HID(cse->sid);
-+		}
-+
-+		if (copy_to_user((void*)arg, &sop, (cmd == CIOCGSESSION) ?
-+					sizeof(struct session_op) : sizeof(sop))) {
-+			dprintk("%s(%s) - bad copy\n", __FUNCTION__, CIOCGSESSSTR);
-+			error = EFAULT;
-+		}
-+bail:
-+		if (error) {
-+			dprintk("%s(%s) - bail %d\n", __FUNCTION__, CIOCGSESSSTR, error);
-+			if (crie.cri_key)
-+				kfree(crie.cri_key);
-+			if (cria.cri_key)
-+				kfree(cria.cri_key);
-+		}
-+		break;
-+	case CIOCFSESSION:
-+		dprintk("%s(CIOCFSESSION)\n", __FUNCTION__);
-+		get_user(ses, (uint32_t*)arg);
-+		cse = csefind(fcr, ses);
-+		if (cse == NULL) {
-+			error = EINVAL;
-+			dprintk("%s(CIOCFSESSION) - Fail %d\n", __FUNCTION__, error);
-+			break;
-+		}
-+		csedelete(fcr, cse);
-+		error = csefree(cse);
-+		break;
-+	case CIOCCRYPT:
-+		dprintk("%s(CIOCCRYPT)\n", __FUNCTION__);
-+		if(copy_from_user(&cop, (void*)arg, sizeof(cop))) {
-+			dprintk("%s(CIOCCRYPT) - bad copy\n", __FUNCTION__);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+		cse = csefind(fcr, cop.ses);
-+		if (cse == NULL) {
-+			error = EINVAL;
-+			dprintk("%s(CIOCCRYPT) - Fail %d\n", __FUNCTION__, error);
-+			break;
-+		}
-+		error = cryptodev_op(cse, &cop);
-+		if(copy_to_user((void*)arg, &cop, sizeof(cop))) {
-+			dprintk("%s(CIOCCRYPT) - bad return copy\n", __FUNCTION__);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+		break;
-+	case CIOCKEY:
-+	case CIOCKEY2:
-+		dprintk("%s(CIOCKEY)\n", __FUNCTION__);
-+		if (!crypto_userasymcrypto)
-+			return (EPERM);		/* XXX compat? */
-+		if(copy_from_user(&kop, (void*)arg, sizeof(kop))) {
-+			dprintk("%s(CIOCKEY) - bad copy\n", __FUNCTION__);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+		if (cmd == CIOCKEY) {
-+			/* NB: crypto core enforces s/w driver use */
-+			kop.crk_crid =
-+			    CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE;
-+		}
-+		error = cryptodev_key(&kop);
-+		if(copy_to_user((void*)arg, &kop, sizeof(kop))) {
-+			dprintk("%s(CIOCGKEY) - bad return copy\n", __FUNCTION__);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+		break;
-+	case CIOCASYMFEAT:
-+		dprintk("%s(CIOCASYMFEAT)\n", __FUNCTION__);
-+		if (!crypto_userasymcrypto) {
-+			/*
-+			 * NB: if user asym crypto operations are
-+			 * not permitted return "no algorithms"
-+			 * so well-behaved applications will just
-+			 * fallback to doing them in software.
-+			 */
-+			feat = 0;
-+		} else
-+			error = crypto_getfeat(&feat);
-+		if (!error) {
-+		  error = copy_to_user((void*)arg, &feat, sizeof(feat));
-+		}
-+		break;
-+	case CIOCFINDDEV:
-+		if (copy_from_user(&fop, (void*)arg, sizeof(fop))) {
-+			dprintk("%s(CIOCFINDDEV) - bad copy\n", __FUNCTION__);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+		error = cryptodev_find(&fop);
-+		if (copy_to_user((void*)arg, &fop, sizeof(fop))) {
-+			dprintk("%s(CIOCFINDDEV) - bad return copy\n", __FUNCTION__);
-+			error = EFAULT;
-+			goto bail;
-+		}
-+		break;
-+	default:
-+		dprintk("%s(unknown ioctl 0x%x)\n", __FUNCTION__, cmd);
-+		error = EINVAL;
-+		break;
-+	}
-+	return(-error);
-+}
-+
-+#ifdef HAVE_UNLOCKED_IOCTL
-+static long
-+cryptodev_unlocked_ioctl(
-+	struct file *filp,
-+	unsigned int cmd,
-+	unsigned long arg)
-+{
-+	return cryptodev_ioctl(NULL, filp, cmd, arg);
-+}
-+#endif
-+
-+static int
-+cryptodev_open(struct inode *inode, struct file *filp)
-+{
-+	struct fcrypt *fcr;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,35)
-+	/*
-+	 * on 2.6.35 private_data points to a miscdevice structure, we override
-+	 * it,  which is currently safe to do.
-+	 */
-+	if (filp->private_data) {
-+		printk("cryptodev: Private data already exists - %p!\n", filp->private_data);
-+		return(-ENODEV);
-+	}
-+#endif
-+
-+	fcr = kmalloc(sizeof(*fcr), GFP_KERNEL);
-+	if (!fcr) {
-+		dprintk("%s() - malloc failed\n", __FUNCTION__);
-+		return(-ENOMEM);
-+	}
-+	memset(fcr, 0, sizeof(*fcr));
-+
-+	INIT_LIST_HEAD(&fcr->csessions);
-+	filp->private_data = fcr;
-+	return(0);
-+}
-+
-+static int
-+cryptodev_release(struct inode *inode, struct file *filp)
-+{
-+	struct fcrypt *fcr = filp->private_data;
-+	struct csession *cse, *tmp;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (!filp) {
-+		printk("cryptodev: No private data on release\n");
-+		return(0);
-+	}
-+
-+	list_for_each_entry_safe(cse, tmp, &fcr->csessions, list) {
-+		list_del(&cse->list);
-+		(void)csefree(cse);
-+	}
-+	filp->private_data = NULL;
-+	kfree(fcr);
-+	return(0);
-+}
-+
-+static struct file_operations cryptodev_fops = {
-+	.owner = THIS_MODULE,
-+	.open = cryptodev_open,
-+	.release = cryptodev_release,
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,36)
-+	.ioctl = cryptodev_ioctl,
-+#endif
-+#ifdef HAVE_UNLOCKED_IOCTL
-+	.unlocked_ioctl = cryptodev_unlocked_ioctl,
-+#endif
-+};
-+
-+static struct miscdevice cryptodev = {
-+	.minor = CRYPTODEV_MINOR,
-+	.name = "crypto",
-+	.fops = &cryptodev_fops,
-+};
-+
-+static int __init
-+cryptodev_init(void)
-+{
-+	int rc;
-+
-+	dprintk("%s(%p)\n", __FUNCTION__, cryptodev_init);
-+	rc = misc_register(&cryptodev);
-+	if (rc) {
-+		printk(KERN_ERR "cryptodev: registration of /dev/crypto failed\n");
-+		return(rc);
-+	}
-+
-+	return(0);
-+}
-+
-+static void __exit
-+cryptodev_exit(void)
-+{
-+	dprintk("%s()\n", __FUNCTION__);
-+	misc_deregister(&cryptodev);
-+}
-+
-+module_init(cryptodev_init);
-+module_exit(cryptodev_exit);
-+
-+MODULE_LICENSE("BSD");
-+MODULE_AUTHOR("David McCullough <david_mccullough at mcafee.com>");
-+MODULE_DESCRIPTION("Cryptodev (user interface to OCF)");
-diff --git a/crypto/ocf/cryptodev.h b/crypto/ocf/cryptodev.h
-new file mode 100644
-index 0000000..cca0ec8
---- /dev/null
-+++ b/crypto/ocf/cryptodev.h
-@@ -0,0 +1,480 @@
-+/*	$FreeBSD: src/sys/opencrypto/cryptodev.h,v 1.25 2007/05/09 19:37:02 gnn Exp $	*/
-+/*	$OpenBSD: cryptodev.h,v 1.31 2002/06/11 11:14:29 beck Exp $	*/
-+
-+/*-
-+ * Linux port done by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ * The license and original author are listed below.
-+ *
-+ * The author of this code is Angelos D. Keromytis (angelos at cis.upenn.edu)
-+ * Copyright (c) 2002-2006 Sam Leffler, Errno Consulting
-+ *
-+ * This code was written by Angelos D. Keromytis in Athens, Greece, in
-+ * February 2000. Network Security Technologies Inc. (NSTI) kindly
-+ * supported the development of this code.
-+ *
-+ * Copyright (c) 2000 Angelos D. Keromytis
-+ *
-+ * Permission to use, copy, and modify this software with or without fee
-+ * is hereby granted, provided that this entire notice is included in
-+ * all source code copies of any software which is or includes a copy or
-+ * modification of this software.
-+ *
-+ * THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR
-+ * IMPLIED WARRANTY. IN PARTICULAR, NONE OF THE AUTHORS MAKES ANY
-+ * REPRESENTATION OR WARRANTY OF ANY KIND CONCERNING THE
-+ * MERCHANTABILITY OF THIS SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR
-+ * PURPOSE.
-+ *
-+ * Copyright (c) 2001 Theo de Raadt
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ *
-+ * 1. Redistributions of source code must retain the above copyright
-+ *   notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *   notice, this list of conditions and the following disclaimer in the
-+ *   documentation and/or other materials provided with the distribution.
-+ * 3. The name of the author may not be used to endorse or promote products
-+ *   derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
-+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
-+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
-+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
-+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-+ *
-+ * Effort sponsored in part by the Defense Advanced Research Projects
-+ * Agency (DARPA) and Air Force Research Laboratory, Air Force
-+ * Materiel Command, USAF, under agreement number F30602-01-2-0537.
-+ *
-+ */
-+
-+#ifndef _CRYPTO_CRYPTO_H_
-+#define _CRYPTO_CRYPTO_H_
-+
-+/* Some initial values */
-+#define CRYPTO_DRIVERS_INITIAL	4
-+#define CRYPTO_SW_SESSIONS	32
-+
-+/* Hash values */
-+#define NULL_HASH_LEN		0
-+#define MD5_HASH_LEN		16
-+#define SHA1_HASH_LEN		20
-+#define RIPEMD160_HASH_LEN	20
-+#define SHA2_256_HASH_LEN	32
-+#define SHA2_384_HASH_LEN	48
-+#define SHA2_512_HASH_LEN	64
-+#define MD5_KPDK_HASH_LEN	16
-+#define SHA1_KPDK_HASH_LEN	20
-+/* Maximum hash algorithm result length */
-+#define HASH_MAX_LEN		SHA2_512_HASH_LEN /* Keep this updated */
-+
-+/* HMAC values */
-+#define NULL_HMAC_BLOCK_LEN			1
-+#define MD5_HMAC_BLOCK_LEN			64
-+#define SHA1_HMAC_BLOCK_LEN			64
-+#define RIPEMD160_HMAC_BLOCK_LEN	64
-+#define SHA2_256_HMAC_BLOCK_LEN		64
-+#define SHA2_384_HMAC_BLOCK_LEN		128
-+#define SHA2_512_HMAC_BLOCK_LEN		128
-+/* Maximum HMAC block length */
-+#define HMAC_MAX_BLOCK_LEN		SHA2_512_HMAC_BLOCK_LEN /* Keep this updated */
-+#define HMAC_IPAD_VAL			0x36
-+#define HMAC_OPAD_VAL			0x5C
-+
-+/* Encryption algorithm block sizes */
-+#define NULL_BLOCK_LEN			1
-+#define DES_BLOCK_LEN			8
-+#define DES3_BLOCK_LEN			8
-+#define BLOWFISH_BLOCK_LEN		8
-+#define SKIPJACK_BLOCK_LEN		8
-+#define CAST128_BLOCK_LEN		8
-+#define RIJNDAEL128_BLOCK_LEN	16
-+#define AES_BLOCK_LEN			RIJNDAEL128_BLOCK_LEN
-+#define CAMELLIA_BLOCK_LEN		16
-+#define ARC4_BLOCK_LEN			1
-+#define EALG_MAX_BLOCK_LEN		AES_BLOCK_LEN /* Keep this updated */
-+
-+/* Encryption algorithm min and max key sizes */
-+#define NULL_MIN_KEY_LEN		0
-+#define NULL_MAX_KEY_LEN		0
-+#define DES_MIN_KEY_LEN			8
-+#define DES_MAX_KEY_LEN			8
-+#define DES3_MIN_KEY_LEN		24
-+#define DES3_MAX_KEY_LEN		24
-+#define BLOWFISH_MIN_KEY_LEN	4
-+#define BLOWFISH_MAX_KEY_LEN	56
-+#define SKIPJACK_MIN_KEY_LEN	10
-+#define SKIPJACK_MAX_KEY_LEN	10
-+#define CAST128_MIN_KEY_LEN		5
-+#define CAST128_MAX_KEY_LEN		16
-+#define RIJNDAEL128_MIN_KEY_LEN	16
-+#define RIJNDAEL128_MAX_KEY_LEN	32
-+#define AES_MIN_KEY_LEN			RIJNDAEL128_MIN_KEY_LEN
-+#define AES_MAX_KEY_LEN			RIJNDAEL128_MAX_KEY_LEN
-+#define CAMELLIA_MIN_KEY_LEN	16
-+#define CAMELLIA_MAX_KEY_LEN	32
-+#define ARC4_MIN_KEY_LEN		1
-+#define ARC4_MAX_KEY_LEN		256
-+
-+/* Max size of data that can be processed */
-+#define CRYPTO_MAX_DATA_LEN		64*1024 - 1
-+
-+#define CRYPTO_ALGORITHM_MIN	1
-+#define CRYPTO_DES_CBC			1
-+#define CRYPTO_3DES_CBC			2
-+#define CRYPTO_BLF_CBC			3
-+#define CRYPTO_CAST_CBC			4
-+#define CRYPTO_SKIPJACK_CBC		5
-+#define CRYPTO_MD5_HMAC			6
-+#define CRYPTO_SHA1_HMAC		7
-+#define CRYPTO_RIPEMD160_HMAC	8
-+#define CRYPTO_MD5_KPDK			9
-+#define CRYPTO_SHA1_KPDK		10
-+#define CRYPTO_RIJNDAEL128_CBC	11 /* 128 bit blocksize */
-+#define CRYPTO_AES_CBC			11 /* 128 bit blocksize -- the same as above */
-+#define CRYPTO_ARC4				12
-+#define CRYPTO_MD5				13
-+#define CRYPTO_SHA1				14
-+#define CRYPTO_NULL_HMAC		15
-+#define CRYPTO_NULL_CBC			16
-+#define CRYPTO_DEFLATE_COMP		17 /* Deflate compression algorithm */
-+#define CRYPTO_SHA2_256_HMAC	18
-+#define CRYPTO_SHA2_384_HMAC	19
-+#define CRYPTO_SHA2_512_HMAC	20
-+#define CRYPTO_CAMELLIA_CBC		21
-+#define CRYPTO_SHA2_256			22
-+#define CRYPTO_SHA2_384			23
-+#define CRYPTO_SHA2_512			24
-+#define CRYPTO_RIPEMD160		25
-+#define	CRYPTO_LZS_COMP			26
-+#define CRYPTO_ALGORITHM_MAX	26 /* Keep updated - see above */
-+
-+/* Algorithm flags */
-+#define CRYPTO_ALG_FLAG_SUPPORTED	0x01 /* Algorithm is supported */
-+#define CRYPTO_ALG_FLAG_RNG_ENABLE	0x02 /* Has HW RNG for DH/DSA */
-+#define CRYPTO_ALG_FLAG_DSA_SHA		0x04 /* Can do SHA on msg */
-+
-+/*
-+ * Crypto driver/device flags.  They can set in the crid
-+ * parameter when creating a session or submitting a key
-+ * op to affect the device/driver assigned.  If neither
-+ * of these are specified then the crid is assumed to hold
-+ * the driver id of an existing (and suitable) device that
-+ * must be used to satisfy the request.
-+ */
-+#define CRYPTO_FLAG_HARDWARE	0x01000000	/* hardware accelerated */
-+#define CRYPTO_FLAG_SOFTWARE	0x02000000	/* software implementation */
-+
-+/* NB: deprecated */
-+struct session_op {
-+	u_int32_t	cipher;		/* ie. CRYPTO_DES_CBC */
-+	u_int32_t	mac;		/* ie. CRYPTO_MD5_HMAC */
-+
-+	u_int32_t	keylen;		/* cipher key */
-+	caddr_t		key;
-+	int		mackeylen;	/* mac key */
-+	caddr_t		mackey;
-+
-+  	u_int32_t	ses;		/* returns: session # */
-+};
-+
-+struct session2_op {
-+	u_int32_t	cipher;		/* ie. CRYPTO_DES_CBC */
-+	u_int32_t	mac;		/* ie. CRYPTO_MD5_HMAC */
-+
-+	u_int32_t	keylen;		/* cipher key */
-+	caddr_t		key;
-+	int		mackeylen;	/* mac key */
-+	caddr_t		mackey;
-+
-+  	u_int32_t	ses;		/* returns: session # */
-+	int		crid;		/* driver id + flags (rw) */
-+	int		pad[4];		/* for future expansion */
-+};
-+
-+struct crypt_op {
-+	u_int32_t	ses;
-+	u_int16_t	op;		/* i.e. COP_ENCRYPT */
-+#define COP_NONE	0
-+#define COP_ENCRYPT	1
-+#define COP_DECRYPT	2
-+	u_int16_t	flags;
-+#define	COP_F_BATCH	0x0008		/* Batch op if possible */
-+	u_int		len;
-+	caddr_t		src, dst;	/* become iov[] inside kernel */
-+	caddr_t		mac;		/* must be big enough for chosen MAC */
-+	caddr_t		iv;
-+};
-+
-+/*
-+ * Parameters for looking up a crypto driver/device by
-+ * device name or by id.  The latter are returned for
-+ * created sessions (crid) and completed key operations.
-+ */
-+struct crypt_find_op {
-+	int		crid;		/* driver id + flags */
-+	char		name[32];	/* device/driver name */
-+};
-+
-+/* bignum parameter, in packed bytes, ... */
-+struct crparam {
-+	caddr_t		crp_p;
-+	u_int		crp_nbits;
-+};
-+
-+#define CRK_MAXPARAM	8
-+
-+struct crypt_kop {
-+	u_int		crk_op;		/* ie. CRK_MOD_EXP or other */
-+	u_int		crk_status;	/* return status */
-+	u_short		crk_iparams;	/* # of input parameters */
-+	u_short		crk_oparams;	/* # of output parameters */
-+	u_int		crk_crid;	/* NB: only used by CIOCKEY2 (rw) */
-+	struct crparam	crk_param[CRK_MAXPARAM];
-+};
-+#define CRK_ALGORITM_MIN	0
-+#define CRK_MOD_EXP		0
-+#define CRK_MOD_EXP_CRT		1
-+#define CRK_DSA_SIGN		2
-+#define CRK_DSA_VERIFY		3
-+#define CRK_DH_COMPUTE_KEY	4
-+#define CRK_ALGORITHM_MAX	4 /* Keep updated - see below */
-+
-+#define CRF_MOD_EXP		(1 << CRK_MOD_EXP)
-+#define CRF_MOD_EXP_CRT		(1 << CRK_MOD_EXP_CRT)
-+#define CRF_DSA_SIGN		(1 << CRK_DSA_SIGN)
-+#define CRF_DSA_VERIFY		(1 << CRK_DSA_VERIFY)
-+#define CRF_DH_COMPUTE_KEY	(1 << CRK_DH_COMPUTE_KEY)
-+
-+/*
-+ * done against open of /dev/crypto, to get a cloned descriptor.
-+ * Please use F_SETFD against the cloned descriptor.
-+ */
-+#define CRIOGET		_IOWR('c', 100, u_int32_t)
-+#define CRIOASYMFEAT	CIOCASYMFEAT
-+#define CRIOFINDDEV	CIOCFINDDEV
-+
-+/* the following are done against the cloned descriptor */
-+#define CIOCGSESSION	_IOWR('c', 101, struct session_op)
-+#define CIOCFSESSION	_IOW('c', 102, u_int32_t)
-+#define CIOCCRYPT	_IOWR('c', 103, struct crypt_op)
-+#define CIOCKEY		_IOWR('c', 104, struct crypt_kop)
-+#define CIOCASYMFEAT	_IOR('c', 105, u_int32_t)
-+#define CIOCGSESSION2	_IOWR('c', 106, struct session2_op)
-+#define CIOCKEY2	_IOWR('c', 107, struct crypt_kop)
-+#define CIOCFINDDEV	_IOWR('c', 108, struct crypt_find_op)
-+
-+struct cryptotstat {
-+	struct timespec	acc;		/* total accumulated time */
-+	struct timespec	min;		/* min time */
-+	struct timespec	max;		/* max time */
-+	u_int32_t	count;		/* number of observations */
-+};
-+
-+struct cryptostats {
-+	u_int32_t	cs_ops;		/* symmetric crypto ops submitted */
-+	u_int32_t	cs_errs;	/* symmetric crypto ops that failed */
-+	u_int32_t	cs_kops;	/* asymetric/key ops submitted */
-+	u_int32_t	cs_kerrs;	/* asymetric/key ops that failed */
-+	u_int32_t	cs_intrs;	/* crypto swi thread activations */
-+	u_int32_t	cs_rets;	/* crypto return thread activations */
-+	u_int32_t	cs_blocks;	/* symmetric op driver block */
-+	u_int32_t	cs_kblocks;	/* symmetric op driver block */
-+	/*
-+	 * When CRYPTO_TIMING is defined at compile time and the
-+	 * sysctl debug.crypto is set to 1, the crypto system will
-+	 * accumulate statistics about how long it takes to process
-+	 * crypto requests at various points during processing.
-+	 */
-+	struct cryptotstat cs_invoke;	/* crypto_dipsatch -> crypto_invoke */
-+	struct cryptotstat cs_done;	/* crypto_invoke -> crypto_done */
-+	struct cryptotstat cs_cb;	/* crypto_done -> callback */
-+	struct cryptotstat cs_finis;	/* callback -> callback return */
-+
-+	u_int32_t	cs_drops;		/* crypto ops dropped due to congestion */
-+};
-+
-+#ifdef __KERNEL__
-+
-+/* Standard initialization structure beginning */
-+struct cryptoini {
-+	int		cri_alg;	/* Algorithm to use */
-+	int		cri_klen;	/* Key length, in bits */
-+	int		cri_mlen;	/* Number of bytes we want from the
-+					   entire hash. 0 means all. */
-+	caddr_t		cri_key;	/* key to use */
-+	u_int8_t	cri_iv[EALG_MAX_BLOCK_LEN];	/* IV to use */
-+	struct cryptoini *cri_next;
-+};
-+
-+/* Describe boundaries of a single crypto operation */
-+struct cryptodesc {
-+	int		crd_skip;	/* How many bytes to ignore from start */
-+	int		crd_len;	/* How many bytes to process */
-+	int		crd_inject;	/* Where to inject results, if applicable */
-+	int		crd_flags;
-+
-+#define CRD_F_ENCRYPT		0x01	/* Set when doing encryption */
-+#define CRD_F_IV_PRESENT	0x02	/* When encrypting, IV is already in
-+					   place, so don't copy. */
-+#define CRD_F_IV_EXPLICIT	0x04	/* IV explicitly provided */
-+#define CRD_F_DSA_SHA_NEEDED	0x08	/* Compute SHA-1 of buffer for DSA */
-+#define CRD_F_KEY_EXPLICIT	0x10	/* Key explicitly provided */
-+#define CRD_F_COMP		0x0f    /* Set when doing compression */
-+
-+	struct cryptoini	CRD_INI; /* Initialization/context data */
-+#define crd_iv		CRD_INI.cri_iv
-+#define crd_key		CRD_INI.cri_key
-+#define crd_alg		CRD_INI.cri_alg
-+#define crd_klen	CRD_INI.cri_klen
-+#define crd_mlen	CRD_INI.cri_mlen
-+
-+	struct cryptodesc *crd_next;
-+};
-+
-+/* Structure describing complete operation */
-+struct cryptop {
-+	struct list_head crp_next;
-+	wait_queue_head_t crp_waitq;
-+
-+	u_int64_t	crp_sid;	/* Session ID */
-+	int		crp_ilen;	/* Input data total length */
-+	int		crp_olen;	/* Result total length */
-+
-+	int		crp_etype;	/*
-+					 * Error type (zero means no error).
-+					 * All error codes except EAGAIN
-+					 * indicate possible data corruption (as in,
-+					 * the data have been touched). On all
-+					 * errors, the crp_sid may have changed
-+					 * (reset to a new one), so the caller
-+					 * should always check and use the new
-+					 * value on future requests.
-+					 */
-+	int		crp_flags;
-+
-+#define CRYPTO_F_SKBUF		0x0001	/* Input/output are skbuf chains */
-+#define CRYPTO_F_IOV		0x0002	/* Input/output are uio */
-+#define CRYPTO_F_REL		0x0004	/* Must return data in same place */
-+#define CRYPTO_F_BATCH		0x0008	/* Batch op if possible */
-+#define CRYPTO_F_CBIMM		0x0010	/* Do callback immediately */
-+#define CRYPTO_F_DONE		0x0020	/* Operation completed */
-+#define CRYPTO_F_CBIFSYNC	0x0040	/* Do CBIMM if op is synchronous */
-+
-+	caddr_t		crp_buf;	/* Data to be processed */
-+	caddr_t		crp_opaque;	/* Opaque pointer, passed along */
-+	struct cryptodesc *crp_desc;	/* Linked list of processing descriptors */
-+
-+	int (*crp_callback)(struct cryptop *); /* Callback function */
-+};
-+
-+#define CRYPTO_BUF_CONTIG	0x0
-+#define CRYPTO_BUF_IOV		0x1
-+#define CRYPTO_BUF_SKBUF		0x2
-+
-+#define CRYPTO_OP_DECRYPT	0x0
-+#define CRYPTO_OP_ENCRYPT	0x1
-+
-+/*
-+ * Hints passed to process methods.
-+ */
-+#define CRYPTO_HINT_MORE	0x1	/* more ops coming shortly */
-+
-+struct cryptkop {
-+	struct list_head krp_next;
-+	wait_queue_head_t krp_waitq;
-+
-+	int		krp_flags;
-+#define CRYPTO_KF_DONE		0x0001	/* Operation completed */
-+#define CRYPTO_KF_CBIMM		0x0002	/* Do callback immediately */
-+
-+	u_int		krp_op;		/* ie. CRK_MOD_EXP or other */
-+	u_int		krp_status;	/* return status */
-+	u_short		krp_iparams;	/* # of input parameters */
-+	u_short		krp_oparams;	/* # of output parameters */
-+	u_int		krp_crid;	/* desired device, etc. */
-+	u_int32_t	krp_hid;
-+	struct crparam	krp_param[CRK_MAXPARAM];	/* kvm */
-+	int		(*krp_callback)(struct cryptkop *);
-+};
-+
-+#include <ocf-compat.h>
-+
-+/*
-+ * Session ids are 64 bits.  The lower 32 bits contain a "local id" which
-+ * is a driver-private session identifier.  The upper 32 bits contain a
-+ * "hardware id" used by the core crypto code to identify the driver and
-+ * a copy of the driver's capabilities that can be used by client code to
-+ * optimize operation.
-+ */
-+#define CRYPTO_SESID2HID(_sid)	(((_sid) >> 32) & 0x00ffffff)
-+#define CRYPTO_SESID2CAPS(_sid)	(((_sid) >> 32) & 0xff000000)
-+#define CRYPTO_SESID2LID(_sid)	(((u_int32_t) (_sid)) & 0xffffffff)
-+
-+extern	int crypto_newsession(u_int64_t *sid, struct cryptoini *cri, int hard);
-+extern	int crypto_freesession(u_int64_t sid);
-+#define CRYPTOCAP_F_HARDWARE	CRYPTO_FLAG_HARDWARE
-+#define CRYPTOCAP_F_SOFTWARE	CRYPTO_FLAG_SOFTWARE
-+#define CRYPTOCAP_F_SYNC	0x04000000	/* operates synchronously */
-+extern	int32_t crypto_get_driverid(device_t dev, int flags);
-+extern	int crypto_find_driver(const char *);
-+extern	device_t crypto_find_device_byhid(int hid);
-+extern	int crypto_getcaps(int hid);
-+extern	int crypto_register(u_int32_t driverid, int alg, u_int16_t maxoplen,
-+	    u_int32_t flags);
-+extern	int crypto_kregister(u_int32_t, int, u_int32_t);
-+extern	int crypto_unregister(u_int32_t driverid, int alg);
-+extern	int crypto_unregister_all(u_int32_t driverid);
-+extern	int crypto_dispatch(struct cryptop *crp);
-+extern	int crypto_kdispatch(struct cryptkop *);
-+#define CRYPTO_SYMQ	0x1
-+#define CRYPTO_ASYMQ	0x2
-+extern	int crypto_unblock(u_int32_t, int);
-+extern	void crypto_done(struct cryptop *crp);
-+extern	void crypto_kdone(struct cryptkop *);
-+extern	int crypto_getfeat(int *);
-+
-+extern	void crypto_freereq(struct cryptop *crp);
-+extern	struct cryptop *crypto_getreq(int num);
-+
-+extern  int crypto_usercrypto;      /* userland may do crypto requests */
-+extern  int crypto_userasymcrypto;  /* userland may do asym crypto reqs */
-+extern  int crypto_devallowsoft;    /* only use hardware crypto */
-+
-+/*
-+ * random number support,  crypto_unregister_all will unregister
-+ */
-+extern int crypto_rregister(u_int32_t driverid,
-+		int (*read_random)(void *arg, u_int32_t *buf, int len), void *arg);
-+extern int crypto_runregister_all(u_int32_t driverid);
-+
-+/*
-+ * Crypto-related utility routines used mainly by drivers.
-+ *
-+ * XXX these don't really belong here; but for now they're
-+ *     kept apart from the rest of the system.
-+ */
-+struct uio;
-+extern	void cuio_copydata(struct uio* uio, int off, int len, caddr_t cp);
-+extern	void cuio_copyback(struct uio* uio, int off, int len, caddr_t cp);
-+extern	struct iovec *cuio_getptr(struct uio *uio, int loc, int *off);
-+
-+extern	void crypto_copyback(int flags, caddr_t buf, int off, int size,
-+	    caddr_t in);
-+extern	void crypto_copydata(int flags, caddr_t buf, int off, int size,
-+	    caddr_t out);
-+extern	int crypto_apply(int flags, caddr_t buf, int off, int len,
-+	    int (*f)(void *, void *, u_int), void *arg);
-+
-+#endif /* __KERNEL__ */
-+#endif /* _CRYPTO_CRYPTO_H_ */
-diff --git a/crypto/ocf/cryptosoft.c b/crypto/ocf/cryptosoft.c
-new file mode 100644
-index 0000000..aa2383d
---- /dev/null
-+++ b/crypto/ocf/cryptosoft.c
-@@ -0,0 +1,1322 @@
-+/*
-+ * An OCF module that uses the linux kernel cryptoapi, based on the
-+ * original cryptosoft for BSD by Angelos D. Keromytis (angelos at cis.upenn.edu)
-+ * but is mostly unrecognisable,
-+ *
-+ * Written by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2004-2011 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ *
-+ * LICENSE TERMS
-+ *
-+ * The free distribution and use of this software in both source and binary
-+ * form is allowed (with or without changes) provided that:
-+ *
-+ *   1. distributions of this source code include the above copyright
-+ *      notice, this list of conditions and the following disclaimer;
-+ *
-+ *   2. distributions in binary form include the above copyright
-+ *      notice, this list of conditions and the following disclaimer
-+ *      in the documentation and/or other associated materials;
-+ *
-+ *   3. the copyright holder's name is not used to endorse products
-+ *      built using this software without specific written permission.
-+ *
-+ * ALTERNATIVELY, provided that this notice is retained in full, this product
-+ * may be distributed under the terms of the GNU General Public License (GPL),
-+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
-+ *
-+ * DISCLAIMER
-+ *
-+ * This software is provided 'as is' with no explicit or implied warranties
-+ * in respect of its properties, including, but not limited to, correctness
-+ * and/or fitness for purpose.
-+ * ---------------------------------------------------------------------------
-+ */
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/sched.h>
-+#include <linux/wait.h>
-+#include <linux/crypto.h>
-+#include <linux/mm.h>
-+#include <linux/skbuff.h>
-+#include <linux/random.h>
-+#include <linux/interrupt.h>
-+#include <linux/spinlock.h>
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10)
-+#include <linux/scatterlist.h>
-+#endif
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,29)
-+#include <crypto/hash.h>
-+#endif
-+
-+#include <cryptodev.h>
-+#include <uio.h>
-+
-+struct {
-+	softc_device_decl	sc_dev;
-+} swcr_softc;
-+
-+#define offset_in_page(p) ((unsigned long)(p) & ~PAGE_MASK)
-+
-+#define SW_TYPE_CIPHER		0x01
-+#define SW_TYPE_HMAC		0x02
-+#define SW_TYPE_HASH		0x04
-+#define SW_TYPE_COMP		0x08
-+#define SW_TYPE_BLKCIPHER	0x10
-+#define SW_TYPE_ALG_MASK	0x1f
-+
-+#define SW_TYPE_ASYNC		0x8000
-+
-+#define SW_TYPE_INUSE		0x10000000
-+
-+/* We change some of the above if we have an async interface */
-+
-+#define SW_TYPE_ALG_AMASK	(SW_TYPE_ALG_MASK | SW_TYPE_ASYNC)
-+
-+#define SW_TYPE_ABLKCIPHER	(SW_TYPE_BLKCIPHER | SW_TYPE_ASYNC)
-+#define SW_TYPE_AHASH		(SW_TYPE_HASH | SW_TYPE_ASYNC)
-+#define SW_TYPE_AHMAC		(SW_TYPE_HMAC | SW_TYPE_ASYNC)
-+
-+#define SCATTERLIST_MAX 16
-+
-+struct swcr_data {
-+	struct work_struct  workq;
-+	int					sw_type;
-+	int					sw_alg;
-+	struct crypto_tfm	*sw_tfm;
-+	spinlock_t			sw_tfm_lock;
-+	union {
-+		struct {
-+			char *sw_key;
-+			int  sw_klen;
-+			int  sw_mlen;
-+		} hmac;
-+		void *sw_comp_buf;
-+	} u;
-+	struct swcr_data	*sw_next;
-+};
-+
-+struct swcr_req {
-+	struct swcr_data	*sw_head;
-+	struct swcr_data	*sw;
-+	struct cryptop		*crp;
-+	struct cryptodesc	*crd;
-+	struct scatterlist	 sg[SCATTERLIST_MAX];
-+	unsigned char		 iv[EALG_MAX_BLOCK_LEN];
-+	char				 result[HASH_MAX_LEN];
-+	void				*crypto_req;
-+};
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
-+static kmem_cache_t *swcr_req_cache;
-+#else
-+static struct kmem_cache *swcr_req_cache;
-+#endif
-+
-+#ifndef CRYPTO_TFM_MODE_CBC
-+/*
-+ * As of linux-2.6.21 this is no longer defined, and presumably no longer
-+ * needed to be passed into the crypto core code.
-+ */
-+#define	CRYPTO_TFM_MODE_CBC	0
-+#define	CRYPTO_TFM_MODE_ECB	0
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
-+	/*
-+	 * Linux 2.6.19 introduced a new Crypto API, setup macro's to convert new
-+	 * API into old API.
-+	 */
-+
-+	/* Symmetric/Block Cipher */
-+	struct blkcipher_desc
-+	{
-+		struct crypto_tfm *tfm;
-+		void *info;
-+	};
-+	#define ecb(X)								#X , CRYPTO_TFM_MODE_ECB
-+	#define cbc(X)								#X , CRYPTO_TFM_MODE_CBC
-+	#define crypto_has_blkcipher(X, Y, Z)		crypto_alg_available(X, 0)
-+	#define crypto_blkcipher_cast(X)			X
-+	#define crypto_blkcipher_tfm(X)				X
-+	#define crypto_alloc_blkcipher(X, Y, Z)		crypto_alloc_tfm(X, mode)
-+	#define crypto_blkcipher_ivsize(X)			crypto_tfm_alg_ivsize(X)
-+	#define crypto_blkcipher_blocksize(X)		crypto_tfm_alg_blocksize(X)
-+	#define crypto_blkcipher_setkey(X, Y, Z)	crypto_cipher_setkey(X, Y, Z)
-+	#define crypto_blkcipher_encrypt_iv(W, X, Y, Z)	\
-+				crypto_cipher_encrypt_iv((W)->tfm, X, Y, Z, (u8 *)((W)->info))
-+	#define crypto_blkcipher_decrypt_iv(W, X, Y, Z)	\
-+				crypto_cipher_decrypt_iv((W)->tfm, X, Y, Z, (u8 *)((W)->info))
-+	#define crypto_blkcipher_set_flags(x, y)	/* nop */
-+	#define crypto_free_blkcipher(x)			crypto_free_tfm(x)
-+	#define crypto_free_comp					crypto_free_tfm
-+	#define crypto_free_hash					crypto_free_tfm
-+
-+	/* Hash/HMAC/Digest */
-+	struct hash_desc
-+	{
-+		struct crypto_tfm *tfm;
-+	};
-+	#define hmac(X)							#X , 0
-+	#define crypto_has_hash(X, Y, Z)		crypto_alg_available(X, 0)
-+	#define crypto_hash_cast(X)				X
-+	#define crypto_hash_tfm(X)				X
-+	#define crypto_alloc_hash(X, Y, Z)		crypto_alloc_tfm(X, mode)
-+	#define crypto_hash_digestsize(X)		crypto_tfm_alg_digestsize(X)
-+	#define crypto_hash_digest(W, X, Y, Z)	\
-+				crypto_digest_digest((W)->tfm, X, sg_num, Z)
-+
-+	/* Asymmetric Cipher */
-+	#define crypto_has_cipher(X, Y, Z)		crypto_alg_available(X, 0)
-+
-+	/* Compression */
-+	#define crypto_has_comp(X, Y, Z)		crypto_alg_available(X, 0)
-+	#define crypto_comp_tfm(X)				X
-+	#define crypto_comp_cast(X)				X
-+	#define crypto_alloc_comp(X, Y, Z)		crypto_alloc_tfm(X, mode)
-+	#define plain(X)	#X , 0
-+#else
-+	#define ecb(X)	"ecb(" #X ")" , 0
-+	#define cbc(X)	"cbc(" #X ")" , 0
-+	#define hmac(X)	"hmac(" #X ")" , 0
-+	#define plain(X)	#X , 0
-+#endif /* if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) */
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,22)
-+/* no ablkcipher in older kernels */
-+#define crypto_alloc_ablkcipher(a,b,c)		(NULL)
-+#define crypto_ablkcipher_tfm(x)			((struct crypto_tfm *)(x))
-+#define crypto_ablkcipher_set_flags(a, b)	/* nop */
-+#define crypto_ablkcipher_setkey(x, y, z)	(-EINVAL)
-+#define	crypto_has_ablkcipher(a,b,c)		(0)
-+#else
-+#define	HAVE_ABLKCIPHER
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,32)
-+/* no ahash in older kernels */
-+#define crypto_ahash_tfm(x)					((struct crypto_tfm *)(x))
-+#define	crypto_alloc_ahash(a,b,c)			(NULL)
-+#define	crypto_ahash_digestsize(x)			0
-+#else
-+#define	HAVE_AHASH
-+#endif
-+
-+struct crypto_details {
-+	char *alg_name;
-+	int mode;
-+	int sw_type;
-+};
-+
-+static struct crypto_details crypto_details[] = {
-+	[CRYPTO_DES_CBC]         = { cbc(des),          SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_3DES_CBC]        = { cbc(des3_ede),     SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_BLF_CBC]         = { cbc(blowfish),     SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_CAST_CBC]        = { cbc(cast5),        SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_SKIPJACK_CBC]    = { cbc(skipjack),     SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_MD5_HMAC]        = { hmac(md5),         SW_TYPE_HMAC, },
-+	[CRYPTO_SHA1_HMAC]       = { hmac(sha1),        SW_TYPE_HMAC, },
-+	[CRYPTO_RIPEMD160_HMAC]  = { hmac(ripemd160),   SW_TYPE_HMAC, },
-+	[CRYPTO_MD5_KPDK]        = { plain(md5-kpdk),   SW_TYPE_HASH, },
-+	[CRYPTO_SHA1_KPDK]       = { plain(sha1-kpdk),  SW_TYPE_HASH, },
-+	[CRYPTO_AES_CBC]         = { cbc(aes),          SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_ARC4]            = { ecb(arc4),         SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_MD5]             = { plain(md5),        SW_TYPE_HASH, },
-+	[CRYPTO_SHA1]            = { plain(sha1),       SW_TYPE_HASH, },
-+	[CRYPTO_NULL_HMAC]       = { hmac(digest_null), SW_TYPE_HMAC, },
-+	[CRYPTO_NULL_CBC]        = { cbc(cipher_null),  SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_DEFLATE_COMP]    = { plain(deflate),    SW_TYPE_COMP, },
-+	[CRYPTO_SHA2_256_HMAC]   = { hmac(sha256),      SW_TYPE_HMAC, },
-+	[CRYPTO_SHA2_384_HMAC]   = { hmac(sha384),      SW_TYPE_HMAC, },
-+	[CRYPTO_SHA2_512_HMAC]   = { hmac(sha512),      SW_TYPE_HMAC, },
-+	[CRYPTO_CAMELLIA_CBC]    = { cbc(camellia),     SW_TYPE_BLKCIPHER, },
-+	[CRYPTO_SHA2_256]        = { plain(sha256),     SW_TYPE_HASH, },
-+	[CRYPTO_SHA2_384]        = { plain(sha384),     SW_TYPE_HASH, },
-+	[CRYPTO_SHA2_512]        = { plain(sha512),     SW_TYPE_HASH, },
-+	[CRYPTO_RIPEMD160]       = { plain(ripemd160),  SW_TYPE_HASH, },
-+};
-+
-+int32_t swcr_id = -1;
-+module_param(swcr_id, int, 0444);
-+MODULE_PARM_DESC(swcr_id, "Read-Only OCF ID for cryptosoft driver");
-+
-+int swcr_fail_if_compression_grows = 1;
-+module_param(swcr_fail_if_compression_grows, int, 0644);
-+MODULE_PARM_DESC(swcr_fail_if_compression_grows,
-+                "Treat compression that results in more data as a failure");
-+
-+int swcr_no_ahash = 0;
-+module_param(swcr_no_ahash, int, 0644);
-+MODULE_PARM_DESC(swcr_no_ahash,
-+                "Do not use async hash/hmac even if available");
-+
-+int swcr_no_ablk = 0;
-+module_param(swcr_no_ablk, int, 0644);
-+MODULE_PARM_DESC(swcr_no_ablk,
-+                "Do not use async blk ciphers even if available");
-+
-+static struct swcr_data **swcr_sessions = NULL;
-+static u_int32_t swcr_sesnum = 0;
-+
-+static	int swcr_process(device_t, struct cryptop *, int);
-+static	int swcr_newsession(device_t, u_int32_t *, struct cryptoini *);
-+static	int swcr_freesession(device_t, u_int64_t);
-+
-+static device_method_t swcr_methods = {
-+	/* crypto device methods */
-+	DEVMETHOD(cryptodev_newsession,	swcr_newsession),
-+	DEVMETHOD(cryptodev_freesession,swcr_freesession),
-+	DEVMETHOD(cryptodev_process,	swcr_process),
-+};
-+
-+#define debug swcr_debug
-+int swcr_debug = 0;
-+module_param(swcr_debug, int, 0644);
-+MODULE_PARM_DESC(swcr_debug, "Enable debug");
-+
-+static void swcr_process_req(struct swcr_req *req);
-+
-+/*
-+ * somethings just need to be run with user context no matter whether
-+ * the kernel compression libs use vmalloc/vfree for example.
-+ */
-+
-+typedef struct {
-+	struct work_struct wq;
-+	void	(*func)(void *arg);
-+	void	*arg;
-+} execute_later_t;
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+static void
-+doing_it_now(struct work_struct *wq)
-+{
-+	execute_later_t *w = container_of(wq, execute_later_t, wq);
-+	(w->func)(w->arg);
-+	kfree(w);
-+}
-+#else
-+static void
-+doing_it_now(void *arg)
-+{
-+	execute_later_t *w = (execute_later_t *) arg;
-+	(w->func)(w->arg);
-+	kfree(w);
-+}
-+#endif
-+
-+static void
-+execute_later(void (fn)(void *), void *arg)
-+{
-+	execute_later_t *w;
-+
-+	w = (execute_later_t *) kmalloc(sizeof(execute_later_t), SLAB_ATOMIC);
-+	if (w) {
-+		memset(w, '\0', sizeof(w));
-+		w->func = fn;
-+		w->arg = arg;
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+		INIT_WORK(&w->wq, doing_it_now);
-+#else
-+		INIT_WORK(&w->wq, doing_it_now, w);
-+#endif
-+		schedule_work(&w->wq);
-+	}
-+}
-+
-+/*
-+ * Generate a new software session.
-+ */
-+static int
-+swcr_newsession(device_t dev, u_int32_t *sid, struct cryptoini *cri)
-+{
-+	struct swcr_data **swd;
-+	u_int32_t i;
-+	int error;
-+	char *algo;
-+	int mode;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (sid == NULL || cri == NULL) {
-+		dprintk("%s,%d - EINVAL\n", __FILE__, __LINE__);
-+		return EINVAL;
-+	}
-+
-+	if (swcr_sessions) {
-+		for (i = 1; i < swcr_sesnum; i++)
-+			if (swcr_sessions[i] == NULL)
-+				break;
-+	} else
-+		i = 1;		/* NB: to silence compiler warning */
-+
-+	if (swcr_sessions == NULL || i == swcr_sesnum) {
-+		if (swcr_sessions == NULL) {
-+			i = 1; /* We leave swcr_sessions[0] empty */
-+			swcr_sesnum = CRYPTO_SW_SESSIONS;
-+		} else
-+			swcr_sesnum *= 2;
-+
-+		swd = kmalloc(swcr_sesnum * sizeof(struct swcr_data *), SLAB_ATOMIC);
-+		if (swd == NULL) {
-+			/* Reset session number */
-+			if (swcr_sesnum == CRYPTO_SW_SESSIONS)
-+				swcr_sesnum = 0;
-+			else
-+				swcr_sesnum /= 2;
-+			dprintk("%s,%d: ENOBUFS\n", __FILE__, __LINE__);
-+			return ENOBUFS;
-+		}
-+		memset(swd, 0, swcr_sesnum * sizeof(struct swcr_data *));
-+
-+		/* Copy existing sessions */
-+		if (swcr_sessions) {
-+			memcpy(swd, swcr_sessions,
-+			    (swcr_sesnum / 2) * sizeof(struct swcr_data *));
-+			kfree(swcr_sessions);
-+		}
-+
-+		swcr_sessions = swd;
-+	}
-+
-+	swd = &swcr_sessions[i];
-+	*sid = i;
-+
-+	while (cri) {
-+		*swd = (struct swcr_data *) kmalloc(sizeof(struct swcr_data),
-+				SLAB_ATOMIC);
-+		if (*swd == NULL) {
-+			swcr_freesession(NULL, i);
-+			dprintk("%s,%d: ENOBUFS\n", __FILE__, __LINE__);
-+			return ENOBUFS;
-+		}
-+		memset(*swd, 0, sizeof(struct swcr_data));
-+
-+		if (cri->cri_alg < 0 ||
-+				cri->cri_alg>=sizeof(crypto_details)/sizeof(crypto_details[0])){
-+			printk("cryptosoft: Unknown algorithm 0x%x\n", cri->cri_alg);
-+			swcr_freesession(NULL, i);
-+			return EINVAL;
-+		}
-+
-+		algo = crypto_details[cri->cri_alg].alg_name;
-+		if (!algo || !*algo) {
-+			printk("cryptosoft: Unsupported algorithm 0x%x\n", cri->cri_alg);
-+			swcr_freesession(NULL, i);
-+			return EINVAL;
-+		}
-+
-+		mode = crypto_details[cri->cri_alg].mode;
-+		(*swd)->sw_type = crypto_details[cri->cri_alg].sw_type;
-+		(*swd)->sw_alg = cri->cri_alg;
-+
-+		spin_lock_init(&(*swd)->sw_tfm_lock);
-+
-+		/* Algorithm specific configuration */
-+		switch (cri->cri_alg) {
-+		case CRYPTO_NULL_CBC:
-+			cri->cri_klen = 0; /* make it work with crypto API */
-+			break;
-+		default:
-+			break;
-+		}
-+
-+		if ((*swd)->sw_type & SW_TYPE_BLKCIPHER) {
-+			dprintk("%s crypto_alloc_*blkcipher(%s, 0x%x)\n", __FUNCTION__,
-+					algo, mode);
-+
-+			/* try async first */
-+			(*swd)->sw_tfm = swcr_no_ablk ? NULL :
-+					crypto_ablkcipher_tfm(crypto_alloc_ablkcipher(algo, 0, 0));
-+			if ((*swd)->sw_tfm && !IS_ERR((*swd)->sw_tfm)) {
-+				dprintk("%s %s cipher is async\n", __FUNCTION__, algo);
-+				(*swd)->sw_type |= SW_TYPE_ASYNC;
-+			} else {
-+				(*swd)->sw_tfm = crypto_blkcipher_tfm(
-+						crypto_alloc_blkcipher(algo, 0, CRYPTO_ALG_ASYNC));
-+				if ((*swd)->sw_tfm && !IS_ERR((*swd)->sw_tfm))
-+					dprintk("%s %s cipher is sync\n", __FUNCTION__, algo);
-+			}
-+			if (!(*swd)->sw_tfm || IS_ERR((*swd)->sw_tfm)) {
-+				int err;
-+				dprintk("cryptosoft: crypto_alloc_blkcipher failed(%s, 0x%x)\n",
-+						algo,mode);
-+				err = IS_ERR((*swd)->sw_tfm) ? -(PTR_ERR((*swd)->sw_tfm)) : EINVAL;
-+				(*swd)->sw_tfm = NULL; /* ensure NULL */
-+				swcr_freesession(NULL, i);
-+				return err;
-+			}
-+
-+			if (debug) {
-+				dprintk("%s key:cri->cri_klen=%d,(cri->cri_klen + 7)/8=%d",
-+						__FUNCTION__, cri->cri_klen, (cri->cri_klen + 7) / 8);
-+				for (i = 0; i < (cri->cri_klen + 7) / 8; i++)
-+					dprintk("%s0x%x", (i % 8) ? " " : "\n    ",
-+							cri->cri_key[i] & 0xff);
-+				dprintk("\n");
-+			}
-+			if ((*swd)->sw_type & SW_TYPE_ASYNC) {
-+				/* OCF doesn't enforce keys */
-+				crypto_ablkcipher_set_flags(
-+						__crypto_ablkcipher_cast((*swd)->sw_tfm),
-+							CRYPTO_TFM_REQ_WEAK_KEY);
-+				error = crypto_ablkcipher_setkey(
-+							__crypto_ablkcipher_cast((*swd)->sw_tfm),
-+								cri->cri_key, (cri->cri_klen + 7) / 8);
-+			} else {
-+				/* OCF doesn't enforce keys */
-+				crypto_blkcipher_set_flags(
-+						crypto_blkcipher_cast((*swd)->sw_tfm),
-+							CRYPTO_TFM_REQ_WEAK_KEY);
-+				error = crypto_blkcipher_setkey(
-+							crypto_blkcipher_cast((*swd)->sw_tfm),
-+								cri->cri_key, (cri->cri_klen + 7) / 8);
-+			}
-+			if (error) {
-+				printk("cryptosoft: setkey failed %d (crt_flags=0x%x)\n", error,
-+						(*swd)->sw_tfm->crt_flags);
-+				swcr_freesession(NULL, i);
-+				return error;
-+			}
-+		} else if ((*swd)->sw_type & (SW_TYPE_HMAC | SW_TYPE_HASH)) {
-+			dprintk("%s crypto_alloc_*hash(%s, 0x%x)\n", __FUNCTION__,
-+					algo, mode);
-+
-+			/* try async first */
-+			(*swd)->sw_tfm = swcr_no_ahash ? NULL :
-+					crypto_ahash_tfm(crypto_alloc_ahash(algo, 0, 0));
-+			if ((*swd)->sw_tfm) {
-+				dprintk("%s %s hash is async\n", __FUNCTION__, algo);
-+				(*swd)->sw_type |= SW_TYPE_ASYNC;
-+			} else {
-+				dprintk("%s %s hash is sync\n", __FUNCTION__, algo);
-+				(*swd)->sw_tfm = crypto_hash_tfm(
-+						crypto_alloc_hash(algo, 0, CRYPTO_ALG_ASYNC));
-+			}
-+
-+			if (!(*swd)->sw_tfm) {
-+				dprintk("cryptosoft: crypto_alloc_hash failed(%s,0x%x)\n",
-+						algo, mode);
-+				swcr_freesession(NULL, i);
-+				return EINVAL;
-+			}
-+
-+			(*swd)->u.hmac.sw_klen = (cri->cri_klen + 7) / 8;
-+			(*swd)->u.hmac.sw_key = (char *)kmalloc((*swd)->u.hmac.sw_klen,
-+					SLAB_ATOMIC);
-+			if ((*swd)->u.hmac.sw_key == NULL) {
-+				swcr_freesession(NULL, i);
-+				dprintk("%s,%d: ENOBUFS\n", __FILE__, __LINE__);
-+				return ENOBUFS;
-+			}
-+			memcpy((*swd)->u.hmac.sw_key, cri->cri_key, (*swd)->u.hmac.sw_klen);
-+			if (cri->cri_mlen) {
-+				(*swd)->u.hmac.sw_mlen = cri->cri_mlen;
-+			} else if ((*swd)->sw_type & SW_TYPE_ASYNC) {
-+				(*swd)->u.hmac.sw_mlen = crypto_ahash_digestsize(
-+						__crypto_ahash_cast((*swd)->sw_tfm));
-+			} else  {
-+				(*swd)->u.hmac.sw_mlen = crypto_hash_digestsize(
-+						crypto_hash_cast((*swd)->sw_tfm));
-+			}
-+		} else if ((*swd)->sw_type & SW_TYPE_COMP) {
-+			(*swd)->sw_tfm = crypto_comp_tfm(
-+					crypto_alloc_comp(algo, 0, CRYPTO_ALG_ASYNC));
-+			if (!(*swd)->sw_tfm) {
-+				dprintk("cryptosoft: crypto_alloc_comp failed(%s,0x%x)\n",
-+						algo, mode);
-+				swcr_freesession(NULL, i);
-+				return EINVAL;
-+			}
-+			(*swd)->u.sw_comp_buf = kmalloc(CRYPTO_MAX_DATA_LEN, SLAB_ATOMIC);
-+			if ((*swd)->u.sw_comp_buf == NULL) {
-+				swcr_freesession(NULL, i);
-+				dprintk("%s,%d: ENOBUFS\n", __FILE__, __LINE__);
-+				return ENOBUFS;
-+			}
-+		} else {
-+			printk("cryptosoft: Unhandled sw_type %d\n", (*swd)->sw_type);
-+			swcr_freesession(NULL, i);
-+			return EINVAL;
-+		}
-+
-+		cri = cri->cri_next;
-+		swd = &((*swd)->sw_next);
-+	}
-+	return 0;
-+}
-+
-+/*
-+ * Free a session.
-+ */
-+static int
-+swcr_freesession(device_t dev, u_int64_t tid)
-+{
-+	struct swcr_data *swd;
-+	u_int32_t sid = CRYPTO_SESID2LID(tid);
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (sid > swcr_sesnum || swcr_sessions == NULL ||
-+			swcr_sessions[sid] == NULL) {
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		return(EINVAL);
-+	}
-+
-+	/* Silently accept and return */
-+	if (sid == 0)
-+		return(0);
-+
-+	while ((swd = swcr_sessions[sid]) != NULL) {
-+		swcr_sessions[sid] = swd->sw_next;
-+		if (swd->sw_tfm) {
-+			switch (swd->sw_type & SW_TYPE_ALG_AMASK) {
-+#ifdef HAVE_AHASH
-+			case SW_TYPE_AHMAC:
-+			case SW_TYPE_AHASH:
-+				crypto_free_ahash(__crypto_ahash_cast(swd->sw_tfm));
-+				break;
-+#endif
-+#ifdef HAVE_ABLKCIPHER
-+			case SW_TYPE_ABLKCIPHER:
-+				crypto_free_ablkcipher(__crypto_ablkcipher_cast(swd->sw_tfm));
-+				break;
-+#endif
-+			case SW_TYPE_BLKCIPHER:
-+				crypto_free_blkcipher(crypto_blkcipher_cast(swd->sw_tfm));
-+				break;
-+			case SW_TYPE_HMAC:
-+			case SW_TYPE_HASH:
-+				crypto_free_hash(crypto_hash_cast(swd->sw_tfm));
-+				break;
-+			case SW_TYPE_COMP:
-+				if (in_interrupt())
-+					execute_later((void (*)(void *))crypto_free_comp, (void *)crypto_comp_cast(swd->sw_tfm));
-+				else
-+					crypto_free_comp(crypto_comp_cast(swd->sw_tfm));
-+				break;
-+			default:
-+				crypto_free_tfm(swd->sw_tfm);
-+				break;
-+			}
-+			swd->sw_tfm = NULL;
-+		}
-+		if (swd->sw_type & SW_TYPE_COMP) {
-+			if (swd->u.sw_comp_buf)
-+				kfree(swd->u.sw_comp_buf);
-+		} else {
-+			if (swd->u.hmac.sw_key)
-+				kfree(swd->u.hmac.sw_key);
-+		}
-+		kfree(swd);
-+	}
-+	return 0;
-+}
-+
-+static void swcr_process_req_complete(struct swcr_req *req)
-+{
-+	dprintk("%s()\n", __FUNCTION__);
-+
-+	if (req->sw->sw_type & SW_TYPE_INUSE) {
-+		unsigned long flags;
-+		spin_lock_irqsave(&req->sw->sw_tfm_lock, flags);
-+		req->sw->sw_type &= ~SW_TYPE_INUSE;
-+		spin_unlock_irqrestore(&req->sw->sw_tfm_lock, flags);
-+	}
-+
-+	if (req->crp->crp_etype)
-+		goto done;
-+
-+	switch (req->sw->sw_type & SW_TYPE_ALG_AMASK) {
-+#if defined(HAVE_AHASH)
-+	case SW_TYPE_AHMAC:
-+	case SW_TYPE_AHASH:
-+		crypto_copyback(req->crp->crp_flags, req->crp->crp_buf,
-+				req->crd->crd_inject, req->sw->u.hmac.sw_mlen, req->result);
-+		ahash_request_free(req->crypto_req);
-+		break;
-+#endif
-+#if defined(HAVE_ABLKCIPHER)
-+	case SW_TYPE_ABLKCIPHER:
-+		ablkcipher_request_free(req->crypto_req);
-+		break;
-+#endif
-+	case SW_TYPE_CIPHER:
-+	case SW_TYPE_HMAC:
-+	case SW_TYPE_HASH:
-+	case SW_TYPE_COMP:
-+	case SW_TYPE_BLKCIPHER:
-+		break;
-+	default:
-+		req->crp->crp_etype = EINVAL;
-+		goto done;
-+	}
-+
-+	req->crd = req->crd->crd_next;
-+	if (req->crd) {
-+		swcr_process_req(req);
-+		return;
-+	}
-+
-+done:
-+	dprintk("%s crypto_done %p\n", __FUNCTION__, req);
-+	crypto_done(req->crp);
-+	kmem_cache_free(swcr_req_cache, req);
-+}
-+
-+#if defined(HAVE_ABLKCIPHER) || defined(HAVE_AHASH)
-+static void swcr_process_callback(struct crypto_async_request *creq, int err)
-+{
-+	struct swcr_req *req = creq->data;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (err) {
-+		if (err == -EINPROGRESS)
-+			return;
-+		dprintk("%s() fail %d\n", __FUNCTION__, -err);
-+		req->crp->crp_etype = -err;
-+	}
-+
-+	swcr_process_req_complete(req);
-+}
-+#endif /* defined(HAVE_ABLKCIPHER) || defined(HAVE_AHASH) */
-+
-+
-+static void swcr_process_req(struct swcr_req *req)
-+{
-+	struct swcr_data *sw;
-+	struct cryptop *crp = req->crp;
-+	struct cryptodesc *crd = req->crd;
-+	struct sk_buff *skb = (struct sk_buff *) crp->crp_buf;
-+	struct uio *uiop = (struct uio *) crp->crp_buf;
-+	int sg_num, sg_len, skip;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+
-+	/*
-+	 * Find the crypto context.
-+	 *
-+	 * XXX Note that the logic here prevents us from having
-+	 * XXX the same algorithm multiple times in a session
-+	 * XXX (or rather, we can but it won't give us the right
-+	 * XXX results). To do that, we'd need some way of differentiating
-+	 * XXX between the various instances of an algorithm (so we can
-+	 * XXX locate the correct crypto context).
-+	 */
-+	for (sw = req->sw_head; sw && sw->sw_alg != crd->crd_alg; sw = sw->sw_next)
-+		;
-+
-+	/* No such context ? */
-+	if (sw == NULL) {
-+		crp->crp_etype = EINVAL;
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		goto done;
-+	}
-+
-+	/*
-+	 * for some types we need to ensure only one user as info is stored in
-+	 * the tfm during an operation that can get corrupted
-+	 */
-+	switch (sw->sw_type & SW_TYPE_ALG_AMASK) {
-+#ifdef HAVE_AHASH
-+	case SW_TYPE_AHMAC:
-+	case SW_TYPE_AHASH:
-+#endif
-+	case SW_TYPE_HMAC:
-+	case SW_TYPE_HASH: {
-+		unsigned long flags;
-+		spin_lock_irqsave(&sw->sw_tfm_lock, flags);
-+		if (sw->sw_type & SW_TYPE_INUSE) {
-+			spin_unlock_irqrestore(&sw->sw_tfm_lock, flags);
-+			execute_later((void (*)(void *))swcr_process_req, (void *)req);
-+			return;
-+		}
-+		sw->sw_type |= SW_TYPE_INUSE;
-+		spin_unlock_irqrestore(&sw->sw_tfm_lock, flags);
-+		} break;
-+	}
-+
-+	req->sw = sw;
-+	skip = crd->crd_skip;
-+
-+	/*
-+	 * setup the SG list skip from the start of the buffer
-+	 */
-+	memset(req->sg, 0, sizeof(req->sg));
-+	sg_init_table(req->sg, SCATTERLIST_MAX);
-+	if (crp->crp_flags & CRYPTO_F_SKBUF) {
-+		int i, len;
-+
-+		sg_num = 0;
-+		sg_len = 0;
-+
-+		if (skip < skb_headlen(skb)) {
-+			len = skb_headlen(skb) - skip;
-+			if (len + sg_len > crd->crd_len)
-+				len = crd->crd_len - sg_len;
-+			sg_set_page(&req->sg[sg_num],
-+				virt_to_page(skb->data + skip), len,
-+				offset_in_page(skb->data + skip));
-+			sg_len += len;
-+			sg_num++;
-+			skip = 0;
-+		} else
-+			skip -= skb_headlen(skb);
-+
-+		for (i = 0; sg_len < crd->crd_len &&
-+					i < skb_shinfo(skb)->nr_frags &&
-+					sg_num < SCATTERLIST_MAX; i++) {
-+			if (skip < skb_shinfo(skb)->frags[i].size) {
-+				len = skb_shinfo(skb)->frags[i].size - skip;
-+				if (len + sg_len > crd->crd_len)
-+					len = crd->crd_len - sg_len;
-+				sg_set_page(&req->sg[sg_num],
-+					skb_frag_page(&skb_shinfo(skb)->frags[i]),
-+					len,
-+					skb_shinfo(skb)->frags[i].page_offset + skip);
-+				sg_len += len;
-+				sg_num++;
-+				skip = 0;
-+			} else
-+				skip -= skb_shinfo(skb)->frags[i].size;
-+		}
-+	} else if (crp->crp_flags & CRYPTO_F_IOV) {
-+		int len;
-+
-+		sg_len = 0;
-+		for (sg_num = 0; sg_len < crd->crd_len &&
-+				sg_num < uiop->uio_iovcnt &&
-+				sg_num < SCATTERLIST_MAX; sg_num++) {
-+			if (skip <= uiop->uio_iov[sg_num].iov_len) {
-+				len = uiop->uio_iov[sg_num].iov_len - skip;
-+				if (len + sg_len > crd->crd_len)
-+					len = crd->crd_len - sg_len;
-+				sg_set_page(&req->sg[sg_num],
-+					virt_to_page(uiop->uio_iov[sg_num].iov_base+skip),
-+					len,
-+					offset_in_page(uiop->uio_iov[sg_num].iov_base+skip));
-+				sg_len += len;
-+				skip = 0;
-+			} else
-+				skip -= uiop->uio_iov[sg_num].iov_len;
-+		}
-+	} else {
-+		sg_len = (crp->crp_ilen - skip);
-+		if (sg_len > crd->crd_len)
-+			sg_len = crd->crd_len;
-+		sg_set_page(&req->sg[0], virt_to_page(crp->crp_buf + skip),
-+			sg_len, offset_in_page(crp->crp_buf + skip));
-+		sg_num = 1;
-+	}
-+	if (sg_num > 0)
-+		sg_mark_end(&req->sg[sg_num-1]);
-+
-+	switch (sw->sw_type & SW_TYPE_ALG_AMASK) {
-+
-+#ifdef HAVE_AHASH
-+	case SW_TYPE_AHMAC:
-+	case SW_TYPE_AHASH:
-+		{
-+		int ret;
-+
-+		/* check we have room for the result */
-+		if (crp->crp_ilen - crd->crd_inject < sw->u.hmac.sw_mlen) {
-+			dprintk("cryptosoft: EINVAL crp_ilen=%d, len=%d, inject=%d "
-+					"digestsize=%d\n", crp->crp_ilen, crd->crd_skip + sg_len,
-+					crd->crd_inject, sw->u.hmac.sw_mlen);
-+			crp->crp_etype = EINVAL;
-+			goto done;
-+		}
-+
-+		req->crypto_req =
-+				ahash_request_alloc(__crypto_ahash_cast(sw->sw_tfm),GFP_ATOMIC);
-+		if (!req->crypto_req) {
-+			crp->crp_etype = ENOMEM;
-+			dprintk("%s,%d: ENOMEM ahash_request_alloc", __FILE__, __LINE__);
-+			goto done;
-+		}
-+
-+		ahash_request_set_callback(req->crypto_req,
-+				CRYPTO_TFM_REQ_MAY_BACKLOG, swcr_process_callback, req);
-+
-+		memset(req->result, 0, sizeof(req->result));
-+
-+		if (sw->sw_type & SW_TYPE_AHMAC)
-+			crypto_ahash_setkey(__crypto_ahash_cast(sw->sw_tfm),
-+					sw->u.hmac.sw_key, sw->u.hmac.sw_klen);
-+		ahash_request_set_crypt(req->crypto_req, req->sg, req->result, sg_len);
-+		ret = crypto_ahash_digest(req->crypto_req);
-+		switch (ret) {
-+		case -EINPROGRESS:
-+		case -EBUSY:
-+			return;
-+		default:
-+		case 0:
-+			dprintk("hash OP %s %d\n", ret ? "failed" : "success", ret);
-+			crp->crp_etype = ret;
-+			goto done;
-+		}
-+		} break;
-+#endif /* HAVE_AHASH */
-+
-+#ifdef HAVE_ABLKCIPHER
-+	case SW_TYPE_ABLKCIPHER: {
-+		int ret;
-+		unsigned char *ivp = req->iv;
-+		int ivsize =
-+			crypto_ablkcipher_ivsize(__crypto_ablkcipher_cast(sw->sw_tfm));
-+
-+		if (sg_len < crypto_ablkcipher_blocksize(
-+				__crypto_ablkcipher_cast(sw->sw_tfm))) {
-+			crp->crp_etype = EINVAL;
-+			dprintk("%s,%d: EINVAL len %d < %d\n", __FILE__, __LINE__,
-+					sg_len, crypto_ablkcipher_blocksize(
-+						__crypto_ablkcipher_cast(sw->sw_tfm)));
-+			goto done;
-+		}
-+
-+		if (ivsize > sizeof(req->iv)) {
-+			crp->crp_etype = EINVAL;
-+			dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+			goto done;
-+		}
-+
-+		req->crypto_req = ablkcipher_request_alloc(
-+				__crypto_ablkcipher_cast(sw->sw_tfm), GFP_ATOMIC);
-+		if (!req->crypto_req) {
-+			crp->crp_etype = ENOMEM;
-+			dprintk("%s,%d: ENOMEM ablkcipher_request_alloc",
-+					__FILE__, __LINE__);
-+			goto done;
-+		}
-+
-+		ablkcipher_request_set_callback(req->crypto_req,
-+				CRYPTO_TFM_REQ_MAY_BACKLOG, swcr_process_callback, req);
-+
-+		if (crd->crd_flags & CRD_F_KEY_EXPLICIT) {
-+			int i, error;
-+
-+			if (debug) {
-+				dprintk("%s key:", __FUNCTION__);
-+				for (i = 0; i < (crd->crd_klen + 7) / 8; i++)
-+					dprintk("%s0x%x", (i % 8) ? " " : "\n    ",
-+							crd->crd_key[i] & 0xff);
-+				dprintk("\n");
-+			}
-+			/* OCF doesn't enforce keys */
-+			crypto_ablkcipher_set_flags(__crypto_ablkcipher_cast(sw->sw_tfm),
-+					CRYPTO_TFM_REQ_WEAK_KEY);
-+			error = crypto_ablkcipher_setkey(
-+						__crypto_ablkcipher_cast(sw->sw_tfm), crd->crd_key,
-+						(crd->crd_klen + 7) / 8);
-+			if (error) {
-+				dprintk("cryptosoft: setkey failed %d (crt_flags=0x%x)\n",
-+						error, sw->sw_tfm->crt_flags);
-+				crp->crp_etype = -error;
-+			}
-+		}
-+
-+		if (crd->crd_flags & CRD_F_ENCRYPT) { /* encrypt */
-+
-+			if (crd->crd_flags & CRD_F_IV_EXPLICIT)
-+				ivp = crd->crd_iv;
-+			else
-+				get_random_bytes(ivp, ivsize);
-+			/*
-+			 * do we have to copy the IV back to the buffer ?
-+			 */
-+			if ((crd->crd_flags & CRD_F_IV_PRESENT) == 0) {
-+				crypto_copyback(crp->crp_flags, crp->crp_buf,
-+						crd->crd_inject, ivsize, (caddr_t)ivp);
-+			}
-+			ablkcipher_request_set_crypt(req->crypto_req, req->sg, req->sg,
-+					sg_len, ivp);
-+			ret = crypto_ablkcipher_encrypt(req->crypto_req);
-+
-+		} else { /*decrypt */
-+
-+			if (crd->crd_flags & CRD_F_IV_EXPLICIT)
-+				ivp = crd->crd_iv;
-+			else
-+				crypto_copydata(crp->crp_flags, crp->crp_buf,
-+						crd->crd_inject, ivsize, (caddr_t)ivp);
-+			ablkcipher_request_set_crypt(req->crypto_req, req->sg, req->sg,
-+					sg_len, ivp);
-+			ret = crypto_ablkcipher_decrypt(req->crypto_req);
-+		}
-+
-+		switch (ret) {
-+		case -EINPROGRESS:
-+		case -EBUSY:
-+			return;
-+		default:
-+		case 0:
-+			dprintk("crypto OP %s %d\n", ret ? "failed" : "success", ret);
-+			crp->crp_etype = ret;
-+			goto done;
-+		}
-+		} break;
-+#endif /* HAVE_ABLKCIPHER */
-+
-+	case SW_TYPE_BLKCIPHER: {
-+		unsigned char iv[EALG_MAX_BLOCK_LEN];
-+		unsigned char *ivp = iv;
-+		struct blkcipher_desc desc;
-+		int ivsize = crypto_blkcipher_ivsize(crypto_blkcipher_cast(sw->sw_tfm));
-+
-+		if (sg_len < crypto_blkcipher_blocksize(
-+				crypto_blkcipher_cast(sw->sw_tfm))) {
-+			crp->crp_etype = EINVAL;
-+			dprintk("%s,%d: EINVAL len %d < %d\n", __FILE__, __LINE__,
-+					sg_len, crypto_blkcipher_blocksize(
-+						crypto_blkcipher_cast(sw->sw_tfm)));
-+			goto done;
-+		}
-+
-+		if (ivsize > sizeof(iv)) {
-+			crp->crp_etype = EINVAL;
-+			dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+			goto done;
-+		}
-+
-+		if (crd->crd_flags & CRD_F_KEY_EXPLICIT) {
-+			int i, error;
-+
-+			if (debug) {
-+				dprintk("%s key:", __FUNCTION__);
-+				for (i = 0; i < (crd->crd_klen + 7) / 8; i++)
-+					dprintk("%s0x%x", (i % 8) ? " " : "\n    ",
-+							crd->crd_key[i] & 0xff);
-+				dprintk("\n");
-+			}
-+			/* OCF doesn't enforce keys */
-+			crypto_blkcipher_set_flags(crypto_blkcipher_cast(sw->sw_tfm),
-+					CRYPTO_TFM_REQ_WEAK_KEY);
-+			error = crypto_blkcipher_setkey(
-+						crypto_blkcipher_cast(sw->sw_tfm), crd->crd_key,
-+						(crd->crd_klen + 7) / 8);
-+			if (error) {
-+				dprintk("cryptosoft: setkey failed %d (crt_flags=0x%x)\n",
-+						error, sw->sw_tfm->crt_flags);
-+				crp->crp_etype = -error;
-+			}
-+		}
-+
-+		memset(&desc, 0, sizeof(desc));
-+		desc.tfm = crypto_blkcipher_cast(sw->sw_tfm);
-+
-+		if (crd->crd_flags & CRD_F_ENCRYPT) { /* encrypt */
-+
-+			if (crd->crd_flags & CRD_F_IV_EXPLICIT) {
-+				ivp = crd->crd_iv;
-+			} else {
-+				get_random_bytes(ivp, ivsize);
-+			}
-+			/*
-+			 * do we have to copy the IV back to the buffer ?
-+			 */
-+			if ((crd->crd_flags & CRD_F_IV_PRESENT) == 0) {
-+				crypto_copyback(crp->crp_flags, crp->crp_buf,
-+						crd->crd_inject, ivsize, (caddr_t)ivp);
-+			}
-+			desc.info = ivp;
-+			crypto_blkcipher_encrypt_iv(&desc, req->sg, req->sg, sg_len);
-+
-+		} else { /*decrypt */
-+
-+			if (crd->crd_flags & CRD_F_IV_EXPLICIT) {
-+				ivp = crd->crd_iv;
-+			} else {
-+				crypto_copydata(crp->crp_flags, crp->crp_buf,
-+						crd->crd_inject, ivsize, (caddr_t)ivp);
-+			}
-+			desc.info = ivp;
-+			crypto_blkcipher_decrypt_iv(&desc, req->sg, req->sg, sg_len);
-+		}
-+		} break;
-+
-+	case SW_TYPE_HMAC:
-+	case SW_TYPE_HASH:
-+		{
-+		char result[HASH_MAX_LEN];
-+		struct hash_desc desc;
-+
-+		/* check we have room for the result */
-+		if (crp->crp_ilen - crd->crd_inject < sw->u.hmac.sw_mlen) {
-+			dprintk("cryptosoft: EINVAL crp_ilen=%d, len=%d, inject=%d "
-+					"digestsize=%d\n", crp->crp_ilen, crd->crd_skip + sg_len,
-+					crd->crd_inject, sw->u.hmac.sw_mlen);
-+			crp->crp_etype = EINVAL;
-+			goto done;
-+		}
-+
-+		memset(&desc, 0, sizeof(desc));
-+		desc.tfm = crypto_hash_cast(sw->sw_tfm);
-+
-+		memset(result, 0, sizeof(result));
-+
-+		if (sw->sw_type & SW_TYPE_HMAC) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19)
-+			crypto_hmac(sw->sw_tfm, sw->u.hmac.sw_key, &sw->u.hmac.sw_klen,
-+					req->sg, sg_num, result);
-+#else
-+			crypto_hash_setkey(desc.tfm, sw->u.hmac.sw_key,
-+					sw->u.hmac.sw_klen);
-+			crypto_hash_digest(&desc, req->sg, sg_len, result);
-+#endif /* LINUX_VERSION_CODE < KERNEL_VERSION(2,6,19) */
-+
-+		} else { /* SW_TYPE_HASH */
-+			crypto_hash_digest(&desc, req->sg, sg_len, result);
-+		}
-+
-+		crypto_copyback(crp->crp_flags, crp->crp_buf,
-+				crd->crd_inject, sw->u.hmac.sw_mlen, result);
-+		}
-+		break;
-+
-+	case SW_TYPE_COMP: {
-+		void *ibuf = NULL;
-+		void *obuf = sw->u.sw_comp_buf;
-+		int ilen = sg_len, olen = CRYPTO_MAX_DATA_LEN;
-+		int ret = 0;
-+
-+		/*
-+		 * we need to use an additional copy if there is more than one
-+		 * input chunk since the kernel comp routines do not handle
-+		 * SG yet.  Otherwise we just use the input buffer as is.
-+		 * Rather than allocate another buffer we just split the tmp
-+		 * buffer we already have.
-+		 * Perhaps we should just use zlib directly ?
-+		 */
-+		if (sg_num > 1) {
-+			int blk;
-+
-+			ibuf = obuf;
-+			for (blk = 0; blk < sg_num; blk++) {
-+				memcpy(obuf, sg_virt(&req->sg[blk]),
-+						req->sg[blk].length);
-+				obuf += req->sg[blk].length;
-+			}
-+			olen -= sg_len;
-+		} else
-+			ibuf = sg_virt(&req->sg[0]);
-+
-+		if (crd->crd_flags & CRD_F_ENCRYPT) { /* compress */
-+			ret = crypto_comp_compress(crypto_comp_cast(sw->sw_tfm),
-+					ibuf, ilen, obuf, &olen);
-+			if (!ret && olen > crd->crd_len) {
-+				dprintk("cryptosoft: ERANGE compress %d into %d\n",
-+						crd->crd_len, olen);
-+				if (swcr_fail_if_compression_grows)
-+					ret = ERANGE;
-+			}
-+		} else { /* decompress */
-+			ret = crypto_comp_decompress(crypto_comp_cast(sw->sw_tfm),
-+					ibuf, ilen, obuf, &olen);
-+			if (!ret && (olen + crd->crd_inject) > crp->crp_olen) {
-+				dprintk("cryptosoft: ETOOSMALL decompress %d into %d, "
-+						"space for %d,at offset %d\n",
-+						crd->crd_len, olen, crp->crp_olen, crd->crd_inject);
-+				ret = ETOOSMALL;
-+			}
-+		}
-+		if (ret)
-+			dprintk("%s,%d: ret = %d\n", __FILE__, __LINE__, ret);
-+
-+		/*
-+		 * on success copy result back,
-+		 * linux crpyto API returns -errno,  we need to fix that
-+		 */
-+		crp->crp_etype = ret < 0 ? -ret : ret;
-+		if (ret == 0) {
-+			/* copy back the result and return it's size */
-+			crypto_copyback(crp->crp_flags, crp->crp_buf,
-+					crd->crd_inject, olen, obuf);
-+			crp->crp_olen = olen;
-+		}
-+		} break;
-+
-+	default:
-+		/* Unknown/unsupported algorithm */
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		crp->crp_etype = EINVAL;
-+		goto done;
-+	}
-+
-+done:
-+	swcr_process_req_complete(req);
-+}
-+
-+
-+/*
-+ * Process a crypto request.
-+ */
-+static int
-+swcr_process(device_t dev, struct cryptop *crp, int hint)
-+{
-+	struct swcr_req *req = NULL;
-+	u_int32_t lid;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	/* Sanity check */
-+	if (crp == NULL) {
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		return EINVAL;
-+	}
-+
-+	crp->crp_etype = 0;
-+
-+	if (crp->crp_desc == NULL || crp->crp_buf == NULL) {
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		crp->crp_etype = EINVAL;
-+		goto done;
-+	}
-+
-+	lid = crp->crp_sid & 0xffffffff;
-+	if (lid >= swcr_sesnum || lid == 0 || swcr_sessions == NULL ||
-+			swcr_sessions[lid] == NULL) {
-+		crp->crp_etype = ENOENT;
-+		dprintk("%s,%d: ENOENT\n", __FILE__, __LINE__);
-+		goto done;
-+	}
-+
-+	/*
-+	 * do some error checking outside of the loop for SKB and IOV processing
-+	 * this leaves us with valid skb or uiop pointers for later
-+	 */
-+	if (crp->crp_flags & CRYPTO_F_SKBUF) {
-+		struct sk_buff *skb = (struct sk_buff *) crp->crp_buf;
-+		if (skb_shinfo(skb)->nr_frags >= SCATTERLIST_MAX) {
-+			printk("%s,%d: %d nr_frags > SCATTERLIST_MAX", __FILE__, __LINE__,
-+					skb_shinfo(skb)->nr_frags);
-+			goto done;
-+		}
-+	} else if (crp->crp_flags & CRYPTO_F_IOV) {
-+		struct uio *uiop = (struct uio *) crp->crp_buf;
-+		if (uiop->uio_iovcnt > SCATTERLIST_MAX) {
-+			printk("%s,%d: %d uio_iovcnt > SCATTERLIST_MAX", __FILE__, __LINE__,
-+					uiop->uio_iovcnt);
-+			goto done;
-+		}
-+	}
-+
-+	/*
-+	 * setup a new request ready for queuing
-+	 */
-+	req = kmem_cache_alloc(swcr_req_cache, SLAB_ATOMIC);
-+	if (req == NULL) {
-+		dprintk("%s,%d: ENOMEM\n", __FILE__, __LINE__);
-+		crp->crp_etype = ENOMEM;
-+		goto done;
-+	}
-+	memset(req, 0, sizeof(*req));
-+
-+	req->sw_head = swcr_sessions[lid];
-+	req->crp = crp;
-+	req->crd = crp->crp_desc;
-+
-+	swcr_process_req(req);
-+	return 0;
-+
-+done:
-+	crypto_done(crp);
-+	if (req)
-+		kmem_cache_free(swcr_req_cache, req);
-+	return 0;
-+}
-+
-+
-+static int
-+cryptosoft_init(void)
-+{
-+	int i, sw_type, mode;
-+	char *algo;
-+
-+	dprintk("%s(%p)\n", __FUNCTION__, cryptosoft_init);
-+
-+	swcr_req_cache = kmem_cache_create("cryptosoft_req",
-+				sizeof(struct swcr_req), 0, SLAB_HWCACHE_ALIGN, NULL
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,23)
-+				, NULL
-+#endif
-+				);
-+	if (!swcr_req_cache) {
-+		printk("cryptosoft: failed to create request cache\n");
-+		return -ENOENT;
-+	}
-+
-+	softc_device_init(&swcr_softc, "cryptosoft", 0, swcr_methods);
-+
-+	swcr_id = crypto_get_driverid(softc_get_device(&swcr_softc),
-+			CRYPTOCAP_F_SOFTWARE | CRYPTOCAP_F_SYNC);
-+	if (swcr_id < 0) {
-+		printk("cryptosoft: Software crypto device cannot initialize!");
-+		return -ENODEV;
-+	}
-+
-+#define	REGISTER(alg) \
-+		crypto_register(swcr_id, alg, 0,0)
-+
-+	for (i = 0; i < sizeof(crypto_details)/sizeof(crypto_details[0]); i++) {
-+		int found;
-+
-+		algo = crypto_details[i].alg_name;
-+		if (!algo || !*algo) {
-+			dprintk("%s:Algorithm %d not supported\n", __FUNCTION__, i);
-+			continue;
-+		}
-+
-+		mode = crypto_details[i].mode;
-+		sw_type = crypto_details[i].sw_type;
-+
-+		found = 0;
-+		switch (sw_type & SW_TYPE_ALG_MASK) {
-+		case SW_TYPE_CIPHER:
-+			found = crypto_has_cipher(algo, 0, CRYPTO_ALG_ASYNC);
-+			break;
-+		case SW_TYPE_HMAC:
-+			found = crypto_has_hash(algo, 0, swcr_no_ahash?CRYPTO_ALG_ASYNC:0);
-+			break;
-+		case SW_TYPE_HASH:
-+			found = crypto_has_hash(algo, 0, swcr_no_ahash?CRYPTO_ALG_ASYNC:0);
-+			break;
-+		case SW_TYPE_COMP:
-+			found = crypto_has_comp(algo, 0, CRYPTO_ALG_ASYNC);
-+			break;
-+		case SW_TYPE_BLKCIPHER:
-+			found = crypto_has_blkcipher(algo, 0, CRYPTO_ALG_ASYNC);
-+			if (!found && !swcr_no_ablk)
-+				found = crypto_has_ablkcipher(algo, 0, 0);
-+			break;
-+		}
-+		if (found) {
-+			REGISTER(i);
-+		} else {
-+			dprintk("%s:Algorithm Type %d not supported (algorithm %d:'%s')\n",
-+					__FUNCTION__, sw_type, i, algo);
-+		}
-+	}
-+	return 0;
-+}
-+
-+static void
-+cryptosoft_exit(void)
-+{
-+	dprintk("%s()\n", __FUNCTION__);
-+	crypto_unregister_all(swcr_id);
-+	swcr_id = -1;
-+	kmem_cache_destroy(swcr_req_cache);
-+}
-+
-+late_initcall(cryptosoft_init);
-+module_exit(cryptosoft_exit);
-+
-+MODULE_LICENSE("Dual BSD/GPL");
-+MODULE_AUTHOR("David McCullough <david_mccullough at mcafee.com>");
-+MODULE_DESCRIPTION("Cryptosoft (OCF module for kernel crypto)");
-diff --git a/crypto/ocf/ocf-bench.c b/crypto/ocf/ocf-bench.c
-new file mode 100644
-index 0000000..f3fe9d0
---- /dev/null
-+++ b/crypto/ocf/ocf-bench.c
-@@ -0,0 +1,514 @@
-+/*
-+ * A loadable module that benchmarks the OCF crypto speed from kernel space.
-+ *
-+ * Copyright (C) 2004-2010 David McCullough <david_mccullough at mcafee.com>
-+ *
-+ * LICENSE TERMS
-+ *
-+ * The free distribution and use of this software in both source and binary
-+ * form is allowed (with or without changes) provided that:
-+ *
-+ *   1. distributions of this source code include the above copyright
-+ *      notice, this list of conditions and the following disclaimer;
-+ *
-+ *   2. distributions in binary form include the above copyright
-+ *      notice, this list of conditions and the following disclaimer
-+ *      in the documentation and/or other associated materials;
-+ *
-+ *   3. the copyright holder's name is not used to endorse products
-+ *      built using this software without specific written permission.
-+ *
-+ * ALTERNATIVELY, provided that this notice is retained in full, this product
-+ * may be distributed under the terms of the GNU General Public License (GPL),
-+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
-+ *
-+ * DISCLAIMER
-+ *
-+ * This software is provided 'as is' with no explicit or implied warranties
-+ * in respect of its properties, including, but not limited to, correctness
-+ * and/or fitness for purpose.
-+ */
-+
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/wait.h>
-+#include <linux/sched.h>
-+#include <linux/spinlock.h>
-+#include <linux/interrupt.h>
-+#include <cryptodev.h>
-+
-+#ifdef I_HAVE_AN_XSCALE_WITH_INTEL_SDK
-+#define BENCH_IXP_ACCESS_LIB 1
-+#endif
-+#ifdef BENCH_IXP_ACCESS_LIB
-+#include <IxTypes.h>
-+#include <IxOsBuffMgt.h>
-+#include <IxNpeDl.h>
-+#include <IxCryptoAcc.h>
-+#include <IxQMgr.h>
-+#include <IxOsServices.h>
-+#include <IxOsCacheMMU.h>
-+#endif
-+
-+/*
-+ * support for access lib version 1.4
-+ */
-+#ifndef IX_MBUF_PRIV
-+#define IX_MBUF_PRIV(x) ((x)->priv)
-+#endif
-+
-+/*
-+ * the number of simultaneously active requests
-+ */
-+static int request_q_len = 40;
-+module_param(request_q_len, int, 0);
-+MODULE_PARM_DESC(request_q_len, "Number of outstanding requests");
-+
-+/*
-+ * how many requests we want to have processed
-+ */
-+static int request_num = 1024;
-+module_param(request_num, int, 0);
-+MODULE_PARM_DESC(request_num, "run for at least this many requests");
-+
-+/*
-+ * the size of each request
-+ */
-+static int request_size = 1488;
-+module_param(request_size, int, 0);
-+MODULE_PARM_DESC(request_size, "size of each request");
-+
-+/*
-+ * OCF batching of requests
-+ */
-+static int request_batch = 1;
-+module_param(request_batch, int, 0);
-+MODULE_PARM_DESC(request_batch, "enable OCF request batching");
-+
-+/*
-+ * OCF immediate callback on completion
-+ */
-+static int request_cbimm = 1;
-+module_param(request_cbimm, int, 0);
-+MODULE_PARM_DESC(request_cbimm, "enable OCF immediate callback on completion");
-+
-+/*
-+ * a structure for each request
-+ */
-+typedef struct  {
-+	struct work_struct work;
-+#ifdef BENCH_IXP_ACCESS_LIB
-+	IX_MBUF mbuf;
-+#endif
-+	unsigned char *buffer;
-+} request_t;
-+
-+static request_t *requests;
-+
-+static spinlock_t ocfbench_counter_lock;
-+static int outstanding;
-+static int total;
-+
-+/*************************************************************************/
-+/*
-+ * OCF benchmark routines
-+ */
-+
-+static uint64_t ocf_cryptoid;
-+static unsigned long jstart, jstop;
-+
-+static int ocf_init(void);
-+static int ocf_cb(struct cryptop *crp);
-+static void ocf_request(void *arg);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+static void ocf_request_wq(struct work_struct *work);
-+#endif
-+
-+static int
-+ocf_init(void)
-+{
-+	int error;
-+	struct cryptoini crie, cria;
-+	struct cryptodesc crda, crde;
-+
-+	memset(&crie, 0, sizeof(crie));
-+	memset(&cria, 0, sizeof(cria));
-+	memset(&crde, 0, sizeof(crde));
-+	memset(&crda, 0, sizeof(crda));
-+
-+	cria.cri_alg  = CRYPTO_SHA1_HMAC;
-+	cria.cri_klen = 20 * 8;
-+	cria.cri_key  = "0123456789abcdefghij";
-+
-+	//crie.cri_alg  = CRYPTO_3DES_CBC;
-+	crie.cri_alg  = CRYPTO_AES_CBC;
-+	crie.cri_klen = 24 * 8;
-+	crie.cri_key  = "0123456789abcdefghijklmn";
-+
-+	crie.cri_next = &cria;
-+
-+	error = crypto_newsession(&ocf_cryptoid, &crie,
-+				CRYPTOCAP_F_HARDWARE | CRYPTOCAP_F_SOFTWARE);
-+	if (error) {
-+		printk("crypto_newsession failed %d\n", error);
-+		return -1;
-+	}
-+	return 0;
-+}
-+
-+static int
-+ocf_cb(struct cryptop *crp)
-+{
-+	request_t *r = (request_t *) crp->crp_opaque;
-+	unsigned long flags;
-+
-+	if (crp->crp_etype)
-+		printk("Error in OCF processing: %d\n", crp->crp_etype);
-+	crypto_freereq(crp);
-+	crp = NULL;
-+
-+	/* do all requests  but take at least 1 second */
-+	spin_lock_irqsave(&ocfbench_counter_lock, flags);
-+	total++;
-+	if (total > request_num && jstart + HZ < jiffies) {
-+		outstanding--;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		return 0;
-+	}
-+	spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+
-+	schedule_work(&r->work);
-+	return 0;
-+}
-+
-+
-+static void
-+ocf_request(void *arg)
-+{
-+	request_t *r = arg;
-+	struct cryptop *crp = crypto_getreq(2);
-+	struct cryptodesc *crde, *crda;
-+	unsigned long flags;
-+
-+	if (!crp) {
-+		spin_lock_irqsave(&ocfbench_counter_lock, flags);
-+		outstanding--;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		return;
-+	}
-+
-+	crde = crp->crp_desc;
-+	crda = crde->crd_next;
-+
-+	crda->crd_skip = 0;
-+	crda->crd_flags = 0;
-+	crda->crd_len = request_size;
-+	crda->crd_inject = request_size;
-+	crda->crd_alg = CRYPTO_SHA1_HMAC;
-+	crda->crd_key = "0123456789abcdefghij";
-+	crda->crd_klen = 20 * 8;
-+
-+	crde->crd_skip = 0;
-+	crde->crd_flags = CRD_F_IV_EXPLICIT | CRD_F_ENCRYPT;
-+	crde->crd_len = request_size;
-+	crde->crd_inject = request_size;
-+	//crde->crd_alg = CRYPTO_3DES_CBC;
-+	crde->crd_alg = CRYPTO_AES_CBC;
-+	crde->crd_key = "0123456789abcdefghijklmn";
-+	crde->crd_klen = 24 * 8;
-+
-+	crp->crp_ilen = request_size + 64;
-+	crp->crp_flags = 0;
-+	if (request_batch)
-+		crp->crp_flags |= CRYPTO_F_BATCH;
-+	if (request_cbimm)
-+		crp->crp_flags |= CRYPTO_F_CBIMM;
-+	crp->crp_buf = (caddr_t) r->buffer;
-+	crp->crp_callback = ocf_cb;
-+	crp->crp_sid = ocf_cryptoid;
-+	crp->crp_opaque = (caddr_t) r;
-+	crypto_dispatch(crp);
-+}
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+static void
-+ocf_request_wq(struct work_struct *work)
-+{
-+	request_t *r = container_of(work, request_t, work);
-+	ocf_request(r);
-+}
-+#endif
-+
-+static void
-+ocf_done(void)
-+{
-+	crypto_freesession(ocf_cryptoid);
-+}
-+
-+/*************************************************************************/
-+#ifdef BENCH_IXP_ACCESS_LIB
-+/*************************************************************************/
-+/*
-+ * CryptoAcc benchmark routines
-+ */
-+
-+static IxCryptoAccCtx ixp_ctx;
-+static UINT32 ixp_ctx_id;
-+static IX_MBUF ixp_pri;
-+static IX_MBUF ixp_sec;
-+static int ixp_registered = 0;
-+
-+static void ixp_register_cb(UINT32 ctx_id, IX_MBUF *bufp,
-+					IxCryptoAccStatus status);
-+static void ixp_perform_cb(UINT32 ctx_id, IX_MBUF *sbufp, IX_MBUF *dbufp,
-+					IxCryptoAccStatus status);
-+static void ixp_request(void *arg);
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+static void ixp_request_wq(struct work_struct *work);
-+#endif
-+
-+static int
-+ixp_init(void)
-+{
-+	IxCryptoAccStatus status;
-+
-+	ixp_ctx.cipherCtx.cipherAlgo = IX_CRYPTO_ACC_CIPHER_3DES;
-+	ixp_ctx.cipherCtx.cipherMode = IX_CRYPTO_ACC_MODE_CBC;
-+	ixp_ctx.cipherCtx.cipherKeyLen = 24;
-+	ixp_ctx.cipherCtx.cipherBlockLen = IX_CRYPTO_ACC_DES_BLOCK_64;
-+	ixp_ctx.cipherCtx.cipherInitialVectorLen = IX_CRYPTO_ACC_DES_IV_64;
-+	memcpy(ixp_ctx.cipherCtx.key.cipherKey, "0123456789abcdefghijklmn", 24);
-+
-+	ixp_ctx.authCtx.authAlgo = IX_CRYPTO_ACC_AUTH_SHA1;
-+	ixp_ctx.authCtx.authDigestLen = 12;
-+	ixp_ctx.authCtx.aadLen = 0;
-+	ixp_ctx.authCtx.authKeyLen = 20;
-+	memcpy(ixp_ctx.authCtx.key.authKey, "0123456789abcdefghij", 20);
-+
-+	ixp_ctx.useDifferentSrcAndDestMbufs = 0;
-+	ixp_ctx.operation = IX_CRYPTO_ACC_OP_ENCRYPT_AUTH ;
-+
-+	IX_MBUF_MLEN(&ixp_pri)  = IX_MBUF_PKT_LEN(&ixp_pri) = 128;
-+	IX_MBUF_MDATA(&ixp_pri) = (unsigned char *) kmalloc(128, SLAB_ATOMIC);
-+	IX_MBUF_MLEN(&ixp_sec)  = IX_MBUF_PKT_LEN(&ixp_sec) = 128;
-+	IX_MBUF_MDATA(&ixp_sec) = (unsigned char *) kmalloc(128, SLAB_ATOMIC);
-+
-+	status = ixCryptoAccCtxRegister(&ixp_ctx, &ixp_pri, &ixp_sec,
-+			ixp_register_cb, ixp_perform_cb, &ixp_ctx_id);
-+
-+	if (IX_CRYPTO_ACC_STATUS_SUCCESS == status) {
-+		while (!ixp_registered)
-+			schedule();
-+		return ixp_registered < 0 ? -1 : 0;
-+	}
-+
-+	printk("ixp: ixCryptoAccCtxRegister failed %d\n", status);
-+	return -1;
-+}
-+
-+static void
-+ixp_register_cb(UINT32 ctx_id, IX_MBUF *bufp, IxCryptoAccStatus status)
-+{
-+	if (bufp) {
-+		IX_MBUF_MLEN(bufp) = IX_MBUF_PKT_LEN(bufp) = 0;
-+		kfree(IX_MBUF_MDATA(bufp));
-+		IX_MBUF_MDATA(bufp) = NULL;
-+	}
-+
-+	if (IX_CRYPTO_ACC_STATUS_WAIT == status)
-+		return;
-+	if (IX_CRYPTO_ACC_STATUS_SUCCESS == status)
-+		ixp_registered = 1;
-+	else
-+		ixp_registered = -1;
-+}
-+
-+static void
-+ixp_perform_cb(
-+	UINT32 ctx_id,
-+	IX_MBUF *sbufp,
-+	IX_MBUF *dbufp,
-+	IxCryptoAccStatus status)
-+{
-+	request_t *r = NULL;
-+	unsigned long flags;
-+
-+	/* do all requests  but take at least 1 second */
-+	spin_lock_irqsave(&ocfbench_counter_lock, flags);
-+	total++;
-+	if (total > request_num && jstart + HZ < jiffies) {
-+		outstanding--;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		return;
-+	}
-+
-+	if (!sbufp || !(r = IX_MBUF_PRIV(sbufp))) {
-+		printk("crappo %p %p\n", sbufp, r);
-+		outstanding--;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		return;
-+	}
-+	spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+
-+	schedule_work(&r->work);
-+}
-+
-+static void
-+ixp_request(void *arg)
-+{
-+	request_t *r = arg;
-+	IxCryptoAccStatus status;
-+	unsigned long flags;
-+
-+	memset(&r->mbuf, 0, sizeof(r->mbuf));
-+	IX_MBUF_MLEN(&r->mbuf) = IX_MBUF_PKT_LEN(&r->mbuf) = request_size + 64;
-+	IX_MBUF_MDATA(&r->mbuf) = r->buffer;
-+	IX_MBUF_PRIV(&r->mbuf) = r;
-+	status = ixCryptoAccAuthCryptPerform(ixp_ctx_id, &r->mbuf, NULL,
-+			0, request_size, 0, request_size, request_size, r->buffer);
-+	if (IX_CRYPTO_ACC_STATUS_SUCCESS != status) {
-+		printk("status1 = %d\n", status);
-+		spin_lock_irqsave(&ocfbench_counter_lock, flags);
-+		outstanding--;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		return;
-+	}
-+	return;
-+}
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+static void
-+ixp_request_wq(struct work_struct *work)
-+{
-+	request_t *r = container_of(work, request_t, work);
-+	ixp_request(r);
-+}
-+#endif
-+
-+static void
-+ixp_done(void)
-+{
-+	/* we should free the session here but I am lazy :-) */
-+}
-+
-+/*************************************************************************/
-+#endif /* BENCH_IXP_ACCESS_LIB */
-+/*************************************************************************/
-+
-+int
-+ocfbench_init(void)
-+{
-+	int i;
-+	unsigned long mbps;
-+	unsigned long flags;
-+
-+	printk("Crypto Speed tests\n");
-+
-+	requests = kmalloc(sizeof(request_t) * request_q_len, GFP_KERNEL);
-+	if (!requests) {
-+		printk("malloc failed\n");
-+		return -EINVAL;
-+	}
-+
-+	for (i = 0; i < request_q_len; i++) {
-+		/* +64 for return data */
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+		INIT_WORK(&requests[i].work, ocf_request_wq);
-+#else
-+		INIT_WORK(&requests[i].work, ocf_request, &requests[i]);
-+#endif
-+		requests[i].buffer = kmalloc(request_size + 128, GFP_DMA);
-+		if (!requests[i].buffer) {
-+			printk("malloc failed\n");
-+			return -EINVAL;
-+		}
-+		memset(requests[i].buffer, '0' + i, request_size + 128);
-+	}
-+
-+	/*
-+	 * OCF benchmark
-+	 */
-+	printk("OCF: testing ...\n");
-+	if (ocf_init() == -1)
-+		return -EINVAL;
-+
-+	spin_lock_init(&ocfbench_counter_lock);
-+	total = outstanding = 0;
-+	jstart = jiffies;
-+	for (i = 0; i < request_q_len; i++) {
-+		spin_lock_irqsave(&ocfbench_counter_lock, flags);
-+		outstanding++;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		ocf_request(&requests[i]);
-+	}
-+	while (outstanding > 0)
-+		schedule();
-+	jstop = jiffies;
-+
-+	mbps = 0;
-+	if (jstop > jstart) {
-+		mbps = (unsigned long) total * (unsigned long) request_size * 8;
-+		mbps /= ((jstop - jstart) * 1000) / HZ;
-+	}
-+	printk("OCF: %d requests of %d bytes in %d jiffies (%d.%03d Mbps)\n",
-+			total, request_size, (int)(jstop - jstart),
-+			((int)mbps) / 1000, ((int)mbps) % 1000);
-+	ocf_done();
-+
-+#ifdef BENCH_IXP_ACCESS_LIB
-+	/*
-+	 * IXP benchmark
-+	 */
-+	printk("IXP: testing ...\n");
-+	ixp_init();
-+	total = outstanding = 0;
-+	jstart = jiffies;
-+	for (i = 0; i < request_q_len; i++) {
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,20)
-+		INIT_WORK(&requests[i].work, ixp_request_wq);
-+#else
-+		INIT_WORK(&requests[i].work, ixp_request, &requests[i]);
-+#endif
-+		spin_lock_irqsave(&ocfbench_counter_lock, flags);
-+		outstanding++;
-+		spin_unlock_irqrestore(&ocfbench_counter_lock, flags);
-+		ixp_request(&requests[i]);
-+	}
-+	while (outstanding > 0)
-+		schedule();
-+	jstop = jiffies;
-+
-+	mbps = 0;
-+	if (jstop > jstart) {
-+		mbps = (unsigned long) total * (unsigned long) request_size * 8;
-+		mbps /= ((jstop - jstart) * 1000) / HZ;
-+	}
-+	printk("IXP: %d requests of %d bytes in %d jiffies (%d.%03d Mbps)\n",
-+			total, request_size, jstop - jstart,
-+			((int)mbps) / 1000, ((int)mbps) % 1000);
-+	ixp_done();
-+#endif /* BENCH_IXP_ACCESS_LIB */
-+
-+	for (i = 0; i < request_q_len; i++)
-+		kfree(requests[i].buffer);
-+	kfree(requests);
-+	return -EINVAL; /* always fail to load so it can be re-run quickly ;-) */
-+}
-+
-+static void __exit ocfbench_exit(void)
-+{
-+}
-+
-+module_init(ocfbench_init);
-+module_exit(ocfbench_exit);
-+
-+MODULE_LICENSE("BSD");
-+MODULE_AUTHOR("David McCullough <david_mccullough at mcafee.com>");
-+MODULE_DESCRIPTION("Benchmark various in-kernel crypto speeds");
-diff --git a/crypto/ocf/ocf-compat.h b/crypto/ocf/ocf-compat.h
-new file mode 100644
-index 0000000..4ad1223
---- /dev/null
-+++ b/crypto/ocf/ocf-compat.h
-@@ -0,0 +1,372 @@
-+#ifndef _BSD_COMPAT_H_
-+#define _BSD_COMPAT_H_ 1
-+/****************************************************************************/
-+/*
-+ * Provide compat routines for older linux kernels and BSD kernels
-+ *
-+ * Written by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2010 David McCullough <david_mccullough at mcafee.com>
-+ *
-+ * LICENSE TERMS
-+ *
-+ * The free distribution and use of this software in both source and binary
-+ * form is allowed (with or without changes) provided that:
-+ *
-+ *   1. distributions of this source code include the above copyright
-+ *      notice, this list of conditions and the following disclaimer;
-+ *
-+ *   2. distributions in binary form include the above copyright
-+ *      notice, this list of conditions and the following disclaimer
-+ *      in the documentation and/or other associated materials;
-+ *
-+ *   3. the copyright holder's name is not used to endorse products
-+ *      built using this software without specific written permission.
-+ *
-+ * ALTERNATIVELY, provided that this notice is retained in full, this file
-+ * may be distributed under the terms of the GNU General Public License (GPL),
-+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
-+ *
-+ * DISCLAIMER
-+ *
-+ * This software is provided 'as is' with no explicit or implied warranties
-+ * in respect of its properties, including, but not limited to, correctness
-+ * and/or fitness for purpose.
-+ */
-+/****************************************************************************/
-+#ifdef __KERNEL__
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+
-+/*
-+ * fake some BSD driver interface stuff specifically for OCF use
-+ */
-+
-+typedef struct ocf_device *device_t;
-+
-+typedef struct {
-+	int (*cryptodev_newsession)(device_t dev, u_int32_t *sidp, struct cryptoini *cri);
-+	int (*cryptodev_freesession)(device_t dev, u_int64_t tid);
-+	int (*cryptodev_process)(device_t dev, struct cryptop *crp, int hint);
-+	int (*cryptodev_kprocess)(device_t dev, struct cryptkop *krp, int hint);
-+} device_method_t;
-+#define DEVMETHOD(id, func)	id: func
-+
-+struct ocf_device {
-+	char name[32];		/* the driver name */
-+	char nameunit[32];	/* the driver name + HW instance */
-+	int  unit;
-+	device_method_t	methods;
-+	void *softc;
-+};
-+
-+#define CRYPTODEV_NEWSESSION(dev, sid, cri) \
-+	((*(dev)->methods.cryptodev_newsession)(dev,sid,cri))
-+#define CRYPTODEV_FREESESSION(dev, sid) \
-+	((*(dev)->methods.cryptodev_freesession)(dev, sid))
-+#define CRYPTODEV_PROCESS(dev, crp, hint) \
-+	((*(dev)->methods.cryptodev_process)(dev, crp, hint))
-+#define CRYPTODEV_KPROCESS(dev, krp, hint) \
-+	((*(dev)->methods.cryptodev_kprocess)(dev, krp, hint))
-+
-+#define device_get_name(dev)	((dev)->name)
-+#define device_get_nameunit(dev)	((dev)->nameunit)
-+#define device_get_unit(dev)	((dev)->unit)
-+#define device_get_softc(dev)	((dev)->softc)
-+
-+#define	softc_device_decl \
-+		struct ocf_device _device; \
-+		device_t
-+
-+#define	softc_device_init(_sc, _name, _unit, _methods) \
-+	if (1) {\
-+	strncpy((_sc)->_device.name, _name, sizeof((_sc)->_device.name) - 1); \
-+	snprintf((_sc)->_device.nameunit, sizeof((_sc)->_device.name), "%s%d", _name, _unit); \
-+	(_sc)->_device.unit = _unit; \
-+	(_sc)->_device.methods = _methods; \
-+	(_sc)->_device.softc = (void *) _sc; \
-+	*(device_t *)((softc_get_device(_sc))+1) = &(_sc)->_device; \
-+	} else
-+
-+#define	softc_get_device(_sc)	(&(_sc)->_device)
-+
-+/*
-+ * iomem support for 2.4 and 2.6 kernels
-+ */
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+#define ocf_iomem_t	unsigned long
-+
-+/*
-+ * implement simple workqueue like support for older kernels
-+ */
-+
-+#include <linux/tqueue.h>
-+
-+#define work_struct tq_struct
-+
-+#define INIT_WORK(wp, fp, ap) \
-+	do { \
-+		(wp)->sync = 0; \
-+		(wp)->routine = (fp); \
-+		(wp)->data = (ap); \
-+	} while (0)
-+
-+#define schedule_work(wp) \
-+	do { \
-+		queue_task((wp), &tq_immediate); \
-+		mark_bh(IMMEDIATE_BH); \
-+	} while (0)
-+
-+#define flush_scheduled_work()	run_task_queue(&tq_immediate)
-+
-+#else
-+#define ocf_iomem_t	void __iomem *
-+
-+#include <linux/workqueue.h>
-+
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,26)
-+#include <linux/fdtable.h>
-+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,11)
-+#define files_fdtable(files)	(files)
-+#endif
-+
-+#ifdef MODULE_PARM
-+#undef module_param	/* just in case */
-+#define	module_param(a,b,c)		MODULE_PARM(a,"i")
-+#endif
-+
-+#define bzero(s,l)		memset(s,0,l)
-+#define bcopy(s,d,l)	memcpy(d,s,l)
-+#define bcmp(x, y, l)	memcmp(x,y,l)
-+
-+#define MIN(x,y)	((x) < (y) ? (x) : (y))
-+
-+#define device_printf(dev, a...) ({ \
-+				printk("%s: ", device_get_nameunit(dev)); printk(a); \
-+			})
-+
-+#undef printf
-+#define printf(fmt...)	printk(fmt)
-+
-+#define KASSERT(c,p)	if (!(c)) { printk p ; } else
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+#define ocf_daemonize(str) \
-+	daemonize(); \
-+	spin_lock_irq(&current->sigmask_lock); \
-+	sigemptyset(&current->blocked); \
-+	recalc_sigpending(current); \
-+	spin_unlock_irq(&current->sigmask_lock); \
-+	sprintf(current->comm, str);
-+#else
-+#define ocf_daemonize(str) daemonize(str);
-+#endif
-+
-+#define	TAILQ_INSERT_TAIL(q,d,m) list_add_tail(&(d)->m, (q))
-+#define	TAILQ_EMPTY(q)	list_empty(q)
-+#define	TAILQ_FOREACH(v, q, m) list_for_each_entry(v, q, m)
-+
-+#define read_random(p,l) get_random_bytes(p,l)
-+
-+#define DELAY(x)	((x) > 2000 ? mdelay((x)/1000) : udelay(x))
-+#define strtoul simple_strtoul
-+
-+#define pci_get_vendor(dev)	((dev)->vendor)
-+#define pci_get_device(dev)	((dev)->device)
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+#define pci_set_consistent_dma_mask(dev, mask) (0)
-+#endif
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
-+#define pci_dma_sync_single_for_cpu pci_dma_sync_single
-+#endif
-+
-+#ifndef DMA_32BIT_MASK
-+#define DMA_32BIT_MASK  0x00000000ffffffffULL
-+#endif
-+
-+#ifndef htole32
-+#define htole32(x)	cpu_to_le32(x)
-+#endif
-+#ifndef htobe32
-+#define htobe32(x)	cpu_to_be32(x)
-+#endif
-+#ifndef htole16
-+#define htole16(x)	cpu_to_le16(x)
-+#endif
-+#ifndef htobe16
-+#define htobe16(x)	cpu_to_be16(x)
-+#endif
-+
-+/* older kernels don't have these */
-+
-+#include <asm/irq.h>
-+#if !defined(IRQ_NONE) && !defined(IRQ_RETVAL)
-+#define IRQ_NONE
-+#define IRQ_HANDLED
-+#define IRQ_WAKE_THREAD
-+#define IRQ_RETVAL
-+#define irqreturn_t void
-+typedef irqreturn_t (*irq_handler_t)(int irq, void *arg, struct pt_regs *regs);
-+#endif
-+#ifndef IRQF_SHARED
-+#define IRQF_SHARED	SA_SHIRQ
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,5,0)
-+# define strlcpy(dest,src,len) \
-+		({strncpy(dest,src,(len)-1); ((char *)dest)[(len)-1] = '\0'; })
-+#endif
-+
-+#ifndef MAX_ERRNO
-+#define MAX_ERRNO	4095
-+#endif
-+#ifndef IS_ERR_VALUE
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,5)
-+#include <linux/err.h>
-+#endif
-+#ifndef IS_ERR_VALUE
-+#define IS_ERR_VALUE(x) ((unsigned long)(x) >= (unsigned long)-MAX_ERRNO)
-+#endif
-+#endif
-+
-+/*
-+ * common debug for all
-+ */
-+#if 1
-+#define dprintk(a...)	do { if (debug) printk(a); } while(0)
-+#else
-+#define dprintk(a...)
-+#endif
-+
-+#ifndef SLAB_ATOMIC
-+/* Changed in 2.6.20, must use GFP_ATOMIC now */
-+#define	SLAB_ATOMIC	GFP_ATOMIC
-+#endif
-+
-+/*
-+ * need some additional support for older kernels */
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,2)
-+#define pci_register_driver_compat(driver, rc) \
-+	do { \
-+		if ((rc) > 0) { \
-+			(rc) = 0; \
-+		} else if (rc == 0) { \
-+			(rc) = -ENODEV; \
-+		} else { \
-+			pci_unregister_driver(driver); \
-+		} \
-+	} while (0)
-+#elif LINUX_VERSION_CODE < KERNEL_VERSION(2,6,10)
-+#define pci_register_driver_compat(driver,rc) ((rc) = (rc) < 0 ? (rc) : 0)
-+#else
-+#define pci_register_driver_compat(driver,rc)
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,24)
-+
-+#include <linux/mm.h>
-+#include <asm/scatterlist.h>
-+
-+static inline void sg_set_page(struct scatterlist *sg,  struct page *page,
-+			       unsigned int len, unsigned int offset)
-+{
-+	sg->page = page;
-+	sg->offset = offset;
-+	sg->length = len;
-+}
-+
-+static inline void *sg_virt(struct scatterlist *sg)
-+{
-+	return page_address(sg->page) + sg->offset;
-+}
-+
-+#define sg_init_table(sg, n)
-+
-+#define sg_mark_end(sg)
-+
-+#endif
-+
-+#ifndef late_initcall
-+#define late_initcall(init) module_init(init)
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4) || !defined(CONFIG_SMP)
-+#define ocf_for_each_cpu(cpu) for ((cpu) = 0; (cpu) == 0; (cpu)++)
-+#else
-+#define ocf_for_each_cpu(cpu) for_each_present_cpu(cpu)
-+#endif
-+
-+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,27)
-+#include <linux/sched.h>
-+#define	kill_proc(p,s,v)	send_sig(s,find_task_by_vpid(p),0)
-+#endif
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,4)
-+
-+struct ocf_thread {
-+	struct task_struct	*task;
-+	int					(*func)(void *arg);
-+	void				*arg;
-+};
-+
-+/* thread startup helper func */
-+static inline int ocf_run_thread(void *arg)
-+{
-+	struct ocf_thread *t = (struct ocf_thread *) arg;
-+	if (!t)
-+		return -1; /* very bad */
-+	t->task = current;
-+	daemonize();
-+	spin_lock_irq(&current->sigmask_lock);
-+	sigemptyset(&current->blocked);
-+	recalc_sigpending(current);
-+	spin_unlock_irq(&current->sigmask_lock);
-+	return (*t->func)(t->arg);
-+}
-+
-+#define kthread_create(f,a,fmt...) \
-+	({ \
-+		struct ocf_thread t; \
-+		pid_t p; \
-+		t.task = NULL; \
-+		t.func = (f); \
-+		t.arg = (a); \
-+		p = kernel_thread(ocf_run_thread, &t, CLONE_FS|CLONE_FILES); \
-+		while (p != (pid_t) -1 && t.task == NULL) \
-+			schedule(); \
-+		if (t.task) \
-+			snprintf(t.task->comm, sizeof(t.task->comm), fmt); \
-+		(t.task); \
-+	})
-+
-+#define kthread_bind(t,cpu)	/**/
-+
-+#define kthread_should_stop()	(strcmp(current->comm, "stopping") == 0)
-+
-+#define kthread_stop(t) \
-+	({ \
-+		strcpy((t)->comm, "stopping"); \
-+		kill_proc((t)->pid, SIGTERM, 1); \
-+		do { \
-+			schedule(); \
-+		} while (kill_proc((t)->pid, SIGTERM, 1) == 0); \
-+	})
-+
-+#else
-+#include <linux/kthread.h>
-+#endif
-+
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(3,2,0)
-+#define	skb_frag_page(x)	((x)->page)
-+#endif
-+
-+#endif /* __KERNEL__ */
-+
-+/****************************************************************************/
-+#endif /* _BSD_COMPAT_H_ */
-diff --git a/crypto/ocf/ocfnull/Makefile b/crypto/ocf/ocfnull/Makefile
-new file mode 100644
-index 0000000..044bcac
---- /dev/null
-+++ b/crypto/ocf/ocfnull/Makefile
-@@ -0,0 +1,12 @@
-+# for SGlinux builds
-+-include $(ROOTDIR)/modules/.config
-+
-+obj-$(CONFIG_OCF_OCFNULL) += ocfnull.o
-+
-+obj ?= .
-+EXTRA_CFLAGS += -I$(obj)/..
-+
-+ifdef TOPDIR
-+-include $(TOPDIR)/Rules.make
-+endif
-+
-diff --git a/crypto/ocf/ocfnull/ocfnull.c b/crypto/ocf/ocfnull/ocfnull.c
-new file mode 100644
-index 0000000..9cf3f6e
---- /dev/null
-+++ b/crypto/ocf/ocfnull/ocfnull.c
-@@ -0,0 +1,204 @@
-+/*
-+ * An OCF module for determining the cost of crypto versus the cost of
-+ * IPSec processing outside of OCF.  This modules gives us the effect of
-+ * zero cost encryption,  of course you will need to run it at both ends
-+ * since it does no crypto at all.
-+ *
-+ * Written by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ *
-+ * LICENSE TERMS
-+ *
-+ * The free distribution and use of this software in both source and binary
-+ * form is allowed (with or without changes) provided that:
-+ *
-+ *   1. distributions of this source code include the above copyright
-+ *      notice, this list of conditions and the following disclaimer;
-+ *
-+ *   2. distributions in binary form include the above copyright
-+ *      notice, this list of conditions and the following disclaimer
-+ *      in the documentation and/or other associated materials;
-+ *
-+ *   3. the copyright holder's name is not used to endorse products
-+ *      built using this software without specific written permission.
-+ *
-+ * ALTERNATIVELY, provided that this notice is retained in full, this product
-+ * may be distributed under the terms of the GNU General Public License (GPL),
-+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
-+ *
-+ * DISCLAIMER
-+ *
-+ * This software is provided 'as is' with no explicit or implied warranties
-+ * in respect of its properties, including, but not limited to, correctness
-+ * and/or fitness for purpose.
-+ */
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/sched.h>
-+#include <linux/wait.h>
-+#include <linux/crypto.h>
-+#include <linux/interrupt.h>
-+
-+#include <cryptodev.h>
-+#include <uio.h>
-+
-+static int32_t			 null_id = -1;
-+static u_int32_t		 null_sesnum = 0;
-+
-+static int null_process(device_t, struct cryptop *, int);
-+static int null_newsession(device_t, u_int32_t *, struct cryptoini *);
-+static int null_freesession(device_t, u_int64_t);
-+
-+#define debug ocfnull_debug
-+int ocfnull_debug = 0;
-+module_param(ocfnull_debug, int, 0644);
-+MODULE_PARM_DESC(ocfnull_debug, "Enable debug");
-+
-+/*
-+ * dummy device structure
-+ */
-+
-+static struct {
-+	softc_device_decl	sc_dev;
-+} nulldev;
-+
-+static device_method_t null_methods = {
-+	/* crypto device methods */
-+	DEVMETHOD(cryptodev_newsession,	null_newsession),
-+	DEVMETHOD(cryptodev_freesession,null_freesession),
-+	DEVMETHOD(cryptodev_process,	null_process),
-+};
-+
-+/*
-+ * Generate a new software session.
-+ */
-+static int
-+null_newsession(device_t arg, u_int32_t *sid, struct cryptoini *cri)
-+{
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (sid == NULL || cri == NULL) {
-+		dprintk("%s,%d - EINVAL\n", __FILE__, __LINE__);
-+		return EINVAL;
-+	}
-+
-+	if (null_sesnum == 0)
-+		null_sesnum++;
-+	*sid = null_sesnum++;
-+	return 0;
-+}
-+
-+
-+/*
-+ * Free a session.
-+ */
-+static int
-+null_freesession(device_t arg, u_int64_t tid)
-+{
-+	u_int32_t sid = CRYPTO_SESID2LID(tid);
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+	if (sid > null_sesnum) {
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		return EINVAL;
-+	}
-+
-+	/* Silently accept and return */
-+	if (sid == 0)
-+		return 0;
-+	return 0;
-+}
-+
-+
-+/*
-+ * Process a request.
-+ */
-+static int
-+null_process(device_t arg, struct cryptop *crp, int hint)
-+{
-+	unsigned int lid;
-+
-+	dprintk("%s()\n", __FUNCTION__);
-+
-+	/* Sanity check */
-+	if (crp == NULL) {
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		return EINVAL;
-+	}
-+
-+	crp->crp_etype = 0;
-+
-+	if (crp->crp_desc == NULL || crp->crp_buf == NULL) {
-+		dprintk("%s,%d: EINVAL\n", __FILE__, __LINE__);
-+		crp->crp_etype = EINVAL;
-+		goto done;
-+	}
-+
-+	/*
-+	 * find the session we are using
-+	 */
-+
-+	lid = crp->crp_sid & 0xffffffff;
-+	if (lid >= null_sesnum || lid == 0) {
-+		crp->crp_etype = ENOENT;
-+		dprintk("%s,%d: ENOENT\n", __FILE__, __LINE__);
-+		goto done;
-+	}
-+
-+done:
-+	crypto_done(crp);
-+	return 0;
-+}
-+
-+
-+/*
-+ * our driver startup and shutdown routines
-+ */
-+
-+static int
-+null_init(void)
-+{
-+	dprintk("%s(%p)\n", __FUNCTION__, null_init);
-+
-+	memset(&nulldev, 0, sizeof(nulldev));
-+	softc_device_init(&nulldev, "ocfnull", 0, null_methods);
-+
-+	null_id = crypto_get_driverid(softc_get_device(&nulldev),
-+				CRYPTOCAP_F_HARDWARE);
-+	if (null_id < 0)
-+		panic("ocfnull: crypto device cannot initialize!");
-+
-+#define	REGISTER(alg) \
-+	crypto_register(null_id,alg,0,0)
-+	REGISTER(CRYPTO_DES_CBC);
-+	REGISTER(CRYPTO_3DES_CBC);
-+	REGISTER(CRYPTO_RIJNDAEL128_CBC);
-+	REGISTER(CRYPTO_MD5);
-+	REGISTER(CRYPTO_SHA1);
-+	REGISTER(CRYPTO_MD5_HMAC);
-+	REGISTER(CRYPTO_SHA1_HMAC);
-+#undef REGISTER
-+
-+	return 0;
-+}
-+
-+static void
-+null_exit(void)
-+{
-+	dprintk("%s()\n", __FUNCTION__);
-+	crypto_unregister_all(null_id);
-+	null_id = -1;
-+}
-+
-+module_init(null_init);
-+module_exit(null_exit);
-+
-+MODULE_LICENSE("Dual BSD/GPL");
-+MODULE_AUTHOR("David McCullough <david_mccullough at mcafee.com>");
-+MODULE_DESCRIPTION("ocfnull - claims a lot but does nothing");
-diff --git a/crypto/ocf/random.c b/crypto/ocf/random.c
-new file mode 100644
-index 0000000..4bb773f
---- /dev/null
-+++ b/crypto/ocf/random.c
-@@ -0,0 +1,317 @@
-+/*
-+ * A system independant way of adding entropy to the kernels pool
-+ * this way the drivers can focus on the real work and we can take
-+ * care of pushing it to the appropriate place in the kernel.
-+ *
-+ * This should be fast and callable from timers/interrupts
-+ *
-+ * Written by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ *
-+ * LICENSE TERMS
-+ *
-+ * The free distribution and use of this software in both source and binary
-+ * form is allowed (with or without changes) provided that:
-+ *
-+ *   1. distributions of this source code include the above copyright
-+ *      notice, this list of conditions and the following disclaimer;
-+ *
-+ *   2. distributions in binary form include the above copyright
-+ *      notice, this list of conditions and the following disclaimer
-+ *      in the documentation and/or other associated materials;
-+ *
-+ *   3. the copyright holder's name is not used to endorse products
-+ *      built using this software without specific written permission.
-+ *
-+ * ALTERNATIVELY, provided that this notice is retained in full, this product
-+ * may be distributed under the terms of the GNU General Public License (GPL),
-+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
-+ *
-+ * DISCLAIMER
-+ *
-+ * This software is provided 'as is' with no explicit or implied warranties
-+ * in respect of its properties, including, but not limited to, correctness
-+ * and/or fitness for purpose.
-+ */
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/list.h>
-+#include <linux/slab.h>
-+#include <linux/wait.h>
-+#include <linux/sched.h>
-+#include <linux/spinlock.h>
-+#include <linux/unistd.h>
-+#include <linux/poll.h>
-+#include <linux/random.h>
-+#include <cryptodev.h>
-+
-+#ifdef CONFIG_OCF_FIPS
-+#include "rndtest.h"
-+#endif
-+
-+#ifndef HAS_RANDOM_INPUT_WAIT
-+#error "Please do not enable OCF_RANDOMHARVEST unless you have applied patches"
-+#endif
-+
-+/*
-+ * a hack to access the debug levels from the crypto driver
-+ */
-+extern int crypto_debug;
-+#define debug crypto_debug
-+
-+/*
-+ * a list of all registered random providers
-+ */
-+static LIST_HEAD(random_ops);
-+static int started = 0;
-+static int initted = 0;
-+
-+struct random_op {
-+	struct list_head random_list;
-+	u_int32_t driverid;
-+	int (*read_random)(void *arg, u_int32_t *buf, int len);
-+	void *arg;
-+};
-+
-+static int random_proc(void *arg);
-+
-+static pid_t		randomproc = (pid_t) -1;
-+static spinlock_t	random_lock;
-+
-+/*
-+ * just init the spin locks
-+ */
-+static int
-+crypto_random_init(void)
-+{
-+	spin_lock_init(&random_lock);
-+	initted = 1;
-+	return(0);
-+}
-+
-+/*
-+ * Add the given random reader to our list (if not present)
-+ * and start the thread (if not already started)
-+ *
-+ * we have to assume that driver id is ok for now
-+ */
-+int
-+crypto_rregister(
-+	u_int32_t driverid,
-+	int (*read_random)(void *arg, u_int32_t *buf, int len),
-+	void *arg)
-+{
-+	unsigned long flags;
-+	int ret = 0;
-+	struct random_op	*rops, *tmp;
-+
-+	dprintk("%s,%d: %s(0x%x, %p, %p)\n", __FILE__, __LINE__,
-+			__FUNCTION__, driverid, read_random, arg);
-+
-+	if (!initted)
-+		crypto_random_init();
-+
-+#if 0
-+	struct cryptocap	*cap;
-+
-+	cap = crypto_checkdriver(driverid);
-+	if (!cap)
-+		return EINVAL;
-+#endif
-+
-+	list_for_each_entry_safe(rops, tmp, &random_ops, random_list) {
-+		if (rops->driverid == driverid && rops->read_random == read_random)
-+			return EEXIST;
-+	}
-+
-+	rops = (struct random_op *) kmalloc(sizeof(*rops), GFP_KERNEL);
-+	if (!rops)
-+		return ENOMEM;
-+
-+	rops->driverid    = driverid;
-+	rops->read_random = read_random;
-+	rops->arg = arg;
-+
-+	spin_lock_irqsave(&random_lock, flags);
-+	list_add_tail(&rops->random_list, &random_ops);
-+	if (!started) {
-+		randomproc = kernel_thread(random_proc, NULL, CLONE_FS|CLONE_FILES);
-+		if (randomproc < 0) {
-+			ret = randomproc;
-+			printk("crypto: crypto_rregister cannot start random thread; "
-+					"error %d", ret);
-+		} else
-+			started = 1;
-+	}
-+	spin_unlock_irqrestore(&random_lock, flags);
-+
-+	return ret;
-+}
-+EXPORT_SYMBOL(crypto_rregister);
-+
-+int
-+crypto_runregister_all(u_int32_t driverid)
-+{
-+	struct random_op *rops, *tmp;
-+	unsigned long flags;
-+
-+	dprintk("%s,%d: %s(0x%x)\n", __FILE__, __LINE__, __FUNCTION__, driverid);
-+
-+	list_for_each_entry_safe(rops, tmp, &random_ops, random_list) {
-+		if (rops->driverid == driverid) {
-+			list_del(&rops->random_list);
-+			kfree(rops);
-+		}
-+	}
-+
-+	spin_lock_irqsave(&random_lock, flags);
-+	if (list_empty(&random_ops) && started)
-+		kill_proc(randomproc, SIGKILL, 1);
-+	spin_unlock_irqrestore(&random_lock, flags);
-+	return(0);
-+}
-+EXPORT_SYMBOL(crypto_runregister_all);
-+
-+/*
-+ * while we can add entropy to random.c continue to read random data from
-+ * the drivers and push it to random.
-+ */
-+static int
-+random_proc(void *arg)
-+{
-+	int n;
-+	int wantcnt;
-+	int bufcnt = 0;
-+	int retval = 0;
-+	int *buf = NULL;
-+
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+	daemonize();
-+	spin_lock_irq(&current->sigmask_lock);
-+	sigemptyset(&current->blocked);
-+	recalc_sigpending(current);
-+	spin_unlock_irq(&current->sigmask_lock);
-+	sprintf(current->comm, "ocf-random");
-+#else
-+	daemonize("ocf-random");
-+	allow_signal(SIGKILL);
-+#endif
-+
-+	(void) get_fs();
-+	set_fs(get_ds());
-+
-+#ifdef CONFIG_OCF_FIPS
-+#define NUM_INT (RNDTEST_NBYTES/sizeof(int))
-+#else
-+#define NUM_INT 32
-+#endif
-+
-+	/*
-+	 * some devices can transferr their RNG data direct into memory,
-+	 * so make sure it is device friendly
-+	 */
-+	buf = kmalloc(NUM_INT * sizeof(int), GFP_DMA);
-+	if (NULL == buf) {
-+		printk("crypto: RNG could not allocate memory\n");
-+		retval = -ENOMEM;
-+		goto bad_alloc;
-+	}
-+
-+	wantcnt = NUM_INT;   /* start by adding some entropy */
-+
-+	/*
-+	 * its possible due to errors or driver removal that we no longer
-+	 * have anything to do,  if so exit or we will consume all the CPU
-+	 * doing nothing
-+	 */
-+	while (!list_empty(&random_ops)) {
-+		struct random_op	*rops, *tmp;
-+
-+#ifdef CONFIG_OCF_FIPS
-+		if (wantcnt)
-+			wantcnt = NUM_INT; /* FIPs mode can do 20000 bits or none */
-+#endif
-+
-+		/* see if we can get enough entropy to make the world
-+		 * a better place.
-+		 */
-+		while (bufcnt < wantcnt && bufcnt < NUM_INT) {
-+			list_for_each_entry_safe(rops, tmp, &random_ops, random_list) {
-+
-+				n = (*rops->read_random)(rops->arg, &buf[bufcnt],
-+							 NUM_INT - bufcnt);
-+
-+				/* on failure remove the random number generator */
-+				if (n == -1) {
-+					list_del(&rops->random_list);
-+					printk("crypto: RNG (driverid=0x%x) failed, disabling\n",
-+							rops->driverid);
-+					kfree(rops);
-+				} else if (n > 0)
-+					bufcnt += n;
-+			}
-+			/* give up CPU for a bit, just in case as this is a loop */
-+			schedule();
-+		}
-+
-+
-+#ifdef CONFIG_OCF_FIPS
-+		if (bufcnt > 0 && rndtest_buf((unsigned char *) &buf[0])) {
-+			dprintk("crypto: buffer had fips errors, discarding\n");
-+			bufcnt = 0;
-+		}
-+#endif
-+
-+		/*
-+		 * if we have a certified buffer,  we can send some data
-+		 * to /dev/random and move along
-+		 */
-+		if (bufcnt > 0) {
-+			/* add what we have */
-+			random_input_words(buf, bufcnt, bufcnt*sizeof(int)*8);
-+			bufcnt = 0;
-+		}
-+
-+		/* give up CPU for a bit so we don't hog while filling */
-+		schedule();
-+
-+		/* wait for needing more */
-+		wantcnt = random_input_wait();
-+
-+		if (wantcnt <= 0)
-+			wantcnt = 0; /* try to get some info again */
-+		else
-+		 	/* round up to one word or we can loop forever */
-+			wantcnt = (wantcnt + (sizeof(int)*8)) / (sizeof(int)*8);
-+		if (wantcnt > NUM_INT) {
-+			wantcnt = NUM_INT;
-+		}
-+
-+		if (signal_pending(current)) {
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+			spin_lock_irq(&current->sigmask_lock);
-+#endif
-+			flush_signals(current);
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
-+			spin_unlock_irq(&current->sigmask_lock);
-+#endif
-+		}
-+	}
-+
-+	kfree(buf);
-+
-+bad_alloc:
-+	spin_lock_irq(&random_lock);
-+	randomproc = (pid_t) -1;
-+	started = 0;
-+	spin_unlock_irq(&random_lock);
-+
-+	return retval;
-+}
-+
-diff --git a/crypto/ocf/rndtest.c b/crypto/ocf/rndtest.c
-new file mode 100644
-index 0000000..7bed6a1
---- /dev/null
-+++ b/crypto/ocf/rndtest.c
-@@ -0,0 +1,300 @@
-+/*	$OpenBSD$	*/
-+
-+/*
-+ * OCF/Linux port done by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ * The license and original author are listed below.
-+ *
-+ * Copyright (c) 2002 Jason L. Wright (jason at thought.net)
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ *    notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *    notice, this list of conditions and the following disclaimer in the
-+ *    documentation and/or other materials provided with the distribution.
-+ * 3. All advertising materials mentioning features or use of this software
-+ *    must display the following acknowledgement:
-+ *	This product includes software developed by Jason L. Wright
-+ * 4. The name of the author may not be used to endorse or promote products
-+ *    derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+ * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-+ * POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+#include <linux/version.h>
-+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38) && !defined(AUTOCONF_INCLUDED)
-+#include <linux/config.h>
-+#endif
-+#include <linux/module.h>
-+#include <linux/list.h>
-+#include <linux/wait.h>
-+#include <linux/time.h>
-+#include <linux/unistd.h>
-+#include <linux/kernel.h>
-+#include <linux/string.h>
-+#include <linux/time.h>
-+#include <cryptodev.h>
-+#include "rndtest.h"
-+
-+static struct rndtest_stats rndstats;
-+
-+static	void rndtest_test(struct rndtest_state *);
-+
-+/* The tests themselves */
-+static	int rndtest_monobit(struct rndtest_state *);
-+static	int rndtest_runs(struct rndtest_state *);
-+static	int rndtest_longruns(struct rndtest_state *);
-+static	int rndtest_chi_4(struct rndtest_state *);
-+
-+static	int rndtest_runs_check(struct rndtest_state *, int, int *);
-+static	void rndtest_runs_record(struct rndtest_state *, int, int *);
-+
-+static const struct rndtest_testfunc {
-+	int (*test)(struct rndtest_state *);
-+} rndtest_funcs[] = {
-+	{ rndtest_monobit },
-+	{ rndtest_runs },
-+	{ rndtest_chi_4 },
-+	{ rndtest_longruns },
-+};
-+
-+#define	RNDTEST_NTESTS	(sizeof(rndtest_funcs)/sizeof(rndtest_funcs[0]))
-+
-+static void
-+rndtest_test(struct rndtest_state *rsp)
-+{
-+	int i, rv = 0;
-+
-+	rndstats.rst_tests++;
-+	for (i = 0; i < RNDTEST_NTESTS; i++)
-+		rv |= (*rndtest_funcs[i].test)(rsp);
-+	rsp->rs_discard = (rv != 0);
-+}
-+
-+
-+extern int crypto_debug;
-+#define rndtest_verbose 2
-+#define rndtest_report(rsp, failure, fmt, a...) \
-+	{ if (failure || crypto_debug) { printk("rng_test: " fmt "\n", a); } else; }
-+
-+#define	RNDTEST_MONOBIT_MINONES	9725
-+#define	RNDTEST_MONOBIT_MAXONES	10275
-+
-+static int
-+rndtest_monobit(struct rndtest_state *rsp)
-+{
-+	int i, ones = 0, j;
-+	u_int8_t r;
-+
-+	for (i = 0; i < RNDTEST_NBYTES; i++) {
-+		r = rsp->rs_buf[i];
-+		for (j = 0; j < 8; j++, r <<= 1)
-+			if (r & 0x80)
-+				ones++;
-+	}
-+	if (ones > RNDTEST_MONOBIT_MINONES &&
-+	    ones < RNDTEST_MONOBIT_MAXONES) {
-+		if (rndtest_verbose > 1)
-+			rndtest_report(rsp, 0, "monobit pass (%d < %d < %d)",
-+			    RNDTEST_MONOBIT_MINONES, ones,
-+			    RNDTEST_MONOBIT_MAXONES);
-+		return (0);
-+	} else {
-+		if (rndtest_verbose)
-+			rndtest_report(rsp, 1,
-+			    "monobit failed (%d ones)", ones);
-+		rndstats.rst_monobit++;
-+		return (-1);
-+	}
-+}
-+
-+#define	RNDTEST_RUNS_NINTERVAL	6
-+
-+static const struct rndtest_runs_tabs {
-+	u_int16_t min, max;
-+} rndtest_runs_tab[] = {
-+	{ 2343, 2657 },
-+	{ 1135, 1365 },
-+	{ 542, 708 },
-+	{ 251, 373 },
-+	{ 111, 201 },
-+	{ 111, 201 },
-+};
-+
-+static int
-+rndtest_runs(struct rndtest_state *rsp)
-+{
-+	int i, j, ones, zeros, rv = 0;
-+	int onei[RNDTEST_RUNS_NINTERVAL], zeroi[RNDTEST_RUNS_NINTERVAL];
-+	u_int8_t c;
-+
-+	bzero(onei, sizeof(onei));
-+	bzero(zeroi, sizeof(zeroi));
-+	ones = zeros = 0;
-+	for (i = 0; i < RNDTEST_NBYTES; i++) {
-+		c = rsp->rs_buf[i];
-+		for (j = 0; j < 8; j++, c <<= 1) {
-+			if (c & 0x80) {
-+				ones++;
-+				rndtest_runs_record(rsp, zeros, zeroi);
-+				zeros = 0;
-+			} else {
-+				zeros++;
-+				rndtest_runs_record(rsp, ones, onei);
-+				ones = 0;
-+			}
-+		}
-+	}
-+	rndtest_runs_record(rsp, ones, onei);
-+	rndtest_runs_record(rsp, zeros, zeroi);
-+
-+	rv |= rndtest_runs_check(rsp, 0, zeroi);
-+	rv |= rndtest_runs_check(rsp, 1, onei);
-+
-+	if (rv)
-+		rndstats.rst_runs++;
-+
-+	return (rv);
-+}
-+
-+static void
-+rndtest_runs_record(struct rndtest_state *rsp, int len, int *intrv)
-+{
-+	if (len == 0)
-+		return;
-+	if (len > RNDTEST_RUNS_NINTERVAL)
-+		len = RNDTEST_RUNS_NINTERVAL;
-+	len -= 1;
-+	intrv[len]++;
-+}
-+
-+static int
-+rndtest_runs_check(struct rndtest_state *rsp, int val, int *src)
-+{
-+	int i, rv = 0;
-+
-+	for (i = 0; i < RNDTEST_RUNS_NINTERVAL; i++) {
-+		if (src[i] < rndtest_runs_tab[i].min ||
-+		    src[i] > rndtest_runs_tab[i].max) {
-+			rndtest_report(rsp, 1,
-+			    "%s interval %d failed (%d, %d-%d)",
-+			    val ? "ones" : "zeros",
-+			    i + 1, src[i], rndtest_runs_tab[i].min,
-+			    rndtest_runs_tab[i].max);
-+			rv = -1;
-+		} else {
-+			rndtest_report(rsp, 0,
-+			    "runs pass %s interval %d (%d < %d < %d)",
-+			    val ? "ones" : "zeros",
-+			    i + 1, rndtest_runs_tab[i].min, src[i],
-+			    rndtest_runs_tab[i].max);
-+		}
-+	}
-+	return (rv);
-+}
-+
-+static int
-+rndtest_longruns(struct rndtest_state *rsp)
-+{
-+	int i, j, ones = 0, zeros = 0, maxones = 0, maxzeros = 0;
-+	u_int8_t c;
-+
-+	for (i = 0; i < RNDTEST_NBYTES; i++) {
-+		c = rsp->rs_buf[i];
-+		for (j = 0; j < 8; j++, c <<= 1) {
-+			if (c & 0x80) {
-+				zeros = 0;
-+				ones++;
-+				if (ones > maxones)
-+					maxones = ones;
-+			} else {
-+				ones = 0;
-+				zeros++;
-+				if (zeros > maxzeros)
-+					maxzeros = zeros;
-+			}
-+		}
-+	}
-+
-+	if (maxones < 26 && maxzeros < 26) {
-+		rndtest_report(rsp, 0, "longruns pass (%d ones, %d zeros)",
-+			maxones, maxzeros);
-+		return (0);
-+	} else {
-+		rndtest_report(rsp, 1, "longruns fail (%d ones, %d zeros)",
-+			maxones, maxzeros);
-+		rndstats.rst_longruns++;
-+		return (-1);
-+	}
-+}
-+
-+/*
-+ * chi^2 test over 4 bits: (this is called the poker test in FIPS 140-2,
-+ * but it is really the chi^2 test over 4 bits (the poker test as described
-+ * by Knuth vol 2 is something different, and I take him as authoritative
-+ * on nomenclature over NIST).
-+ */
-+#define	RNDTEST_CHI4_K	16
-+#define	RNDTEST_CHI4_K_MASK	(RNDTEST_CHI4_K - 1)
-+
-+/*
-+ * The unnormalized values are used so that we don't have to worry about
-+ * fractional precision.  The "real" value is found by:
-+ *	(V - 1562500) * (16 / 5000) = Vn   (where V is the unnormalized value)
-+ */
-+#define	RNDTEST_CHI4_VMIN	1563181		/* 2.1792 */
-+#define	RNDTEST_CHI4_VMAX	1576929		/* 46.1728 */
-+
-+static int
-+rndtest_chi_4(struct rndtest_state *rsp)
-+{
-+	unsigned int freq[RNDTEST_CHI4_K], i, sum;
-+
-+	for (i = 0; i < RNDTEST_CHI4_K; i++)
-+		freq[i] = 0;
-+
-+	/* Get number of occurances of each 4 bit pattern */
-+	for (i = 0; i < RNDTEST_NBYTES; i++) {
-+		freq[(rsp->rs_buf[i] >> 4) & RNDTEST_CHI4_K_MASK]++;
-+		freq[(rsp->rs_buf[i] >> 0) & RNDTEST_CHI4_K_MASK]++;
-+	}
-+
-+	for (i = 0, sum = 0; i < RNDTEST_CHI4_K; i++)
-+		sum += freq[i] * freq[i];
-+
-+	if (sum >= 1563181 && sum <= 1576929) {
-+		rndtest_report(rsp, 0, "chi^2(4): pass (sum %u)", sum);
-+		return (0);
-+	} else {
-+		rndtest_report(rsp, 1, "chi^2(4): failed (sum %u)", sum);
-+		rndstats.rst_chi++;
-+		return (-1);
-+	}
-+}
-+
-+int
-+rndtest_buf(unsigned char *buf)
-+{
-+	struct rndtest_state rsp;
-+
-+	memset(&rsp, 0, sizeof(rsp));
-+	rsp.rs_buf = buf;
-+	rndtest_test(&rsp);
-+	return(rsp.rs_discard);
-+}
-+
-diff --git a/crypto/ocf/rndtest.h b/crypto/ocf/rndtest.h
-new file mode 100644
-index 0000000..e9d8ec8
---- /dev/null
-+++ b/crypto/ocf/rndtest.h
-@@ -0,0 +1,54 @@
-+/*	$FreeBSD: src/sys/dev/rndtest/rndtest.h,v 1.1 2003/03/11 22:54:44 sam Exp $	*/
-+/*	$OpenBSD$	*/
-+
-+/*
-+ * Copyright (c) 2002 Jason L. Wright (jason at thought.net)
-+ * All rights reserved.
-+ *
-+ * Redistribution and use in source and binary forms, with or without
-+ * modification, are permitted provided that the following conditions
-+ * are met:
-+ * 1. Redistributions of source code must retain the above copyright
-+ *    notice, this list of conditions and the following disclaimer.
-+ * 2. Redistributions in binary form must reproduce the above copyright
-+ *    notice, this list of conditions and the following disclaimer in the
-+ *    documentation and/or other materials provided with the distribution.
-+ * 3. All advertising materials mentioning features or use of this software
-+ *    must display the following acknowledgement:
-+ *	This product includes software developed by Jason L. Wright
-+ * 4. The name of the author may not be used to endorse or promote products
-+ *    derived from this software without specific prior written permission.
-+ *
-+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
-+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
-+ * DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT,
-+ * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
-+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
-+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
-+ * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
-+ * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
-+ * ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-+ * POSSIBILITY OF SUCH DAMAGE.
-+ */
-+
-+
-+/* Some of the tests depend on these values */
-+#define	RNDTEST_NBYTES	2500
-+#define	RNDTEST_NBITS	(8 * RNDTEST_NBYTES)
-+
-+struct rndtest_state {
-+	int		rs_discard;	/* discard/accept random data */
-+	u_int8_t	*rs_buf;
-+};
-+
-+struct rndtest_stats {
-+	u_int32_t	rst_discard;	/* number of bytes discarded */
-+	u_int32_t	rst_tests;	/* number of test runs */
-+	u_int32_t	rst_monobit;	/* monobit test failures */
-+	u_int32_t	rst_runs;	/* 0/1 runs failures */
-+	u_int32_t	rst_longruns;	/* longruns failures */
-+	u_int32_t	rst_chi;	/* chi^2 failures */
-+};
-+
-+extern int rndtest_buf(unsigned char *buf);
-diff --git a/crypto/ocf/uio.h b/crypto/ocf/uio.h
-new file mode 100644
-index 0000000..03a6249
---- /dev/null
-+++ b/crypto/ocf/uio.h
-@@ -0,0 +1,54 @@
-+#ifndef _OCF_UIO_H_
-+#define _OCF_UIO_H_
-+
-+#include <linux/uio.h>
-+
-+/*
-+ * The linux uio.h doesn't have all we need.  To be fully api compatible
-+ * with the BSD cryptodev,  we need to keep this around.  Perhaps this can
-+ * be moved back into the linux/uio.h
-+ *
-+ * Linux port done by David McCullough <david_mccullough at mcafee.com>
-+ * Copyright (C) 2006-2010 David McCullough
-+ * Copyright (C) 2004-2005 Intel Corporation.
-+ *
-+ * LICENSE TERMS
-+ *
-+ * The free distribution and use of this software in both source and binary
-+ * form is allowed (with or without changes) provided that:
-+ *
-+ *   1. distributions of this source code include the above copyright
-+ *      notice, this list of conditions and the following disclaimer;
-+ *
-+ *   2. distributions in binary form include the above copyright
-+ *      notice, this list of conditions and the following disclaimer
-+ *      in the documentation and/or other associated materials;
-+ *
-+ *   3. the copyright holder's name is not used to endorse products
-+ *      built using this software without specific written permission.
-+ *
-+ * ALTERNATIVELY, provided that this notice is retained in full, this product
-+ * may be distributed under the terms of the GNU General Public License (GPL),
-+ * in which case the provisions of the GPL apply INSTEAD OF those given above.
-+ *
-+ * DISCLAIMER
-+ *
-+ * This software is provided 'as is' with no explicit or implied warranties
-+ * in respect of its properties, including, but not limited to, correctness
-+ * and/or fitness for purpose.
-+ * ---------------------------------------------------------------------------
-+ */
-+
-+struct uio {
-+	struct	iovec *uio_iov;
-+	int		uio_iovcnt;
-+	off_t	uio_offset;
-+	int		uio_resid;
-+#if 0
-+	enum	uio_seg uio_segflg;
-+	enum	uio_rw uio_rw;
-+	struct  thread *uio_td;
-+#endif
-+};
-+
-+#endif
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 6035ab8..8c3acdf 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -130,6 +130,9 @@
-  * 	void add_interrupt_randomness(int irq);
-  * 	void add_disk_randomness(struct gendisk *disk);
-  *
-+ *      void random_input_words(__u32 *buf, size_t wordcount, int ent_count)
-+ *      int random_input_wait(void);
-+ *
-  * add_input_randomness() uses the input layer interrupt timing, as well as
-  * the event type information from the hardware.
-  *
-@@ -147,6 +150,13 @@
-  * seek times do not make for good sources of entropy, as their seek
-  * times are usually fairly consistent.
-  *
-+ * random_input_words() just provides a raw block of entropy to the input
-+ * pool, such as from a hardware entropy generator.
-+ *
-+ * random_input_wait() suspends the caller until such time as the
-+ * entropy pool falls below the write threshold, and returns a count of how
-+ * much entropy (in bits) is needed to sustain the pool.
-+ *
-  * All of these routines try to estimate how many bits of randomness a
-  * particular randomness source.  They do this by keeping track of the
-  * first and second order deltas of the event timings.
-@@ -722,6 +732,63 @@ void add_disk_randomness(struct gendisk *disk)
- }
- #endif
-
-+/*
-+ * random_input_words - add bulk entropy to pool
-+ *
-+ * @buf: buffer to add
-+ * @wordcount: number of __u32 words to add
-+ * @ent_count: total amount of entropy (in bits) to credit
-+ *
-+ * this provides bulk input of entropy to the input pool
-+ *
-+ */
-+void random_input_words(__u32 *buf, size_t wordcount, int ent_count)
-+{
-+	mix_pool_bytes(&input_pool, buf, wordcount*4);
-+
-+	credit_entropy_bits(&input_pool, ent_count);
-+
-+	DEBUG_ENT("crediting %d bits => %d\n",
-+		  ent_count, input_pool.entropy_count);
-+	/*
-+	 * Wake up waiting processes if we have enough
-+	 * entropy.
-+	 */
-+	if (input_pool.entropy_count >= random_read_wakeup_thresh)
-+		wake_up_interruptible(&random_read_wait);
-+}
-+EXPORT_SYMBOL(random_input_words);
-+
-+/*
-+ * random_input_wait - wait until random needs entropy
-+ *
-+ * this function sleeps until the /dev/random subsystem actually
-+ * needs more entropy, and then return the amount of entropy
-+ * that it would be nice to have added to the system.
-+ */
-+int random_input_wait(void)
-+{
-+	int count;
-+
-+	wait_event_interruptible(random_write_wait,
-+			 input_pool.entropy_count < random_write_wakeup_thresh);
-+
-+	count = random_write_wakeup_thresh - input_pool.entropy_count;
-+
-+        /* likely we got woken up due to a signal */
-+	if (count <= 0) count = random_read_wakeup_thresh;
-+
-+	DEBUG_ENT("requesting %d bits from input_wait()er %d<%d\n",
-+		  count,
-+		  input_pool.entropy_count, random_write_wakeup_thresh);
-+
-+	return count;
-+}
-+EXPORT_SYMBOL(random_input_wait);
-+
-+
-+#define EXTRACT_SIZE 10
-+
- /*********************************************************************
-  *
-  * Entropy extraction routines
-diff --git a/fs/fcntl.c b/fs/fcntl.c
-index 22764c7..0ffe61f 100644
---- a/fs/fcntl.c
-+++ b/fs/fcntl.c
-@@ -142,6 +142,7 @@ SYSCALL_DEFINE1(dup, unsigned int, fildes)
-	}
-	return ret;
- }
-+EXPORT_SYMBOL(sys_dup);
-
- #define SETFL_MASK (O_APPEND | O_NONBLOCK | O_NDELAY | O_DIRECT | O_NOATIME)
-
-diff --git a/include/linux/miscdevice.h b/include/linux/miscdevice.h
-index c41d727..24b73c0 100644
---- a/include/linux/miscdevice.h
-+++ b/include/linux/miscdevice.h
-@@ -19,6 +19,7 @@
- #define APOLLO_MOUSE_MINOR	7
- #define PC110PAD_MINOR		9
- /*#define ADB_MOUSE_MINOR	10	FIXME OBSOLETE */
-+#define CRYPTODEV_MINOR		70	/* /dev/crypto */
- #define WATCHDOG_MINOR		130	/* Watchdog timer     */
- #define TEMP_MINOR		131	/* Temperature Sensor */
- #define RTC_MINOR		135
-diff --git a/include/linux/random.h b/include/linux/random.h
-index 8f74538..0ff31a9 100644
---- a/include/linux/random.h
-+++ b/include/linux/random.h
-@@ -34,6 +34,30 @@
- /* Clear the entropy pool and associated counters.  (Superuser only.) */
- #define RNDCLEARPOOL	_IO( 'R', 0x06 )
-
-+#ifdef CONFIG_FIPS_RNG
-+
-+/* Size of seed value - equal to AES blocksize */
-+#define AES_BLOCK_SIZE_BYTES	16
-+#define SEED_SIZE_BYTES			AES_BLOCK_SIZE_BYTES
-+/* Size of AES key */
-+#define KEY_SIZE_BYTES		16
-+
-+/* ioctl() structure used by FIPS 140-2 Tests */
-+struct rand_fips_test {
-+	unsigned char key[KEY_SIZE_BYTES];			/* Input */
-+	unsigned char datetime[SEED_SIZE_BYTES];	/* Input */
-+	unsigned char seed[SEED_SIZE_BYTES];		/* Input */
-+	unsigned char result[SEED_SIZE_BYTES];		/* Output */
-+};
-+
-+/* FIPS 140-2 RNG Variable Seed Test. (Superuser only.) */
-+#define RNDFIPSVST	_IOWR('R', 0x10, struct rand_fips_test)
-+
-+/* FIPS 140-2 RNG Monte Carlo Test. (Superuser only.) */
-+#define RNDFIPSMCT	_IOWR('R', 0x11, struct rand_fips_test)
-+
-+#endif /* #ifdef CONFIG_FIPS_RNG */
-+
- struct rand_pool_info {
-	int	entropy_count;
-	int	buf_size;
-@@ -54,6 +78,10 @@ extern void add_input_randomness(unsigned int type, unsigned int code,
-				 unsigned int value);
- extern void add_interrupt_randomness(int irq);
-
-+extern void random_input_words(__u32 *buf, size_t wordcount, int ent_count);
-+extern int random_input_wait(void);
-+#define HAS_RANDOM_INPUT_WAIT 1
-+
- extern void get_random_bytes(void *buf, int nbytes);
- void generate_random_uuid(unsigned char uuid_out[16]);
-
-diff --git a/kernel/pid.c b/kernel/pid.c
-index fa5f722..2bf49fd 100644
---- a/kernel/pid.c
-+++ b/kernel/pid.c
-@@ -428,6 +428,7 @@ struct task_struct *find_task_by_vpid(pid_t vnr)
- {
-	return find_task_by_pid_ns(vnr, current->nsproxy->pid_ns);
- }
-+EXPORT_SYMBOL(find_task_by_vpid);
-
- struct pid *get_task_pid(struct task_struct *task, enum pid_type type)
- {
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-Smartreflex-limited-to-ES-1.0.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0002-Smartreflex-limited-to-ES-1.0.patch
deleted file mode 100644
index dd07c40..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-Smartreflex-limited-to-ES-1.0.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 24051291ecae9c42697bd3217240205e17e95de3 Mon Sep 17 00:00:00 2001
-From: Greg Guyotte <gguyotte at ti.com>
-Date: Tue, 11 Dec 2012 21:53:24 -0600
-Subject: [PATCH 2/2] Smartreflex limited to ES 1.0
-
-Pending complete characterization of Smartreflex on ES 2.0 silicon,
-the smartreflex function is disabled.  SR continues to operate
-normally on ES 1.0 silicon.  If running on AM335x ES 2.0 silicon,
-the SR driver will cleanly abort, causing no side effects.
-
-Signed-off-by: Greg Guyotte <gguyotte at ti.com>
----
- arch/arm/mach-omap2/am33xx-smartreflex-class2.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/am33xx-smartreflex-class2.c b/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-index 3ed74b3..6a66e68 100644
---- a/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-+++ b/arch/arm/mach-omap2/am33xx-smartreflex-class2.c
-@@ -763,6 +763,12 @@ static int __init am33xx_sr_probe(struct platform_device *pdev)
- 	int ret;
- 	int i,j;
- 
-+	if (omap_rev() != AM335X_REV_ES1_0) {
-+		dev_err(&pdev->dev, "%s: Smartreflex requires ES 1.0\n",
-+		       	__func__);
-+		return -EINVAL;
-+	}
-+
- 	sr_info = kzalloc(sizeof(struct am33xx_sr), GFP_KERNEL);
- 	if (!sr_info) {
- 		dev_err(&pdev->dev, "%s: unable to allocate sr_info\n",
--- 
-1.7.0.4
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am335x-Add-suspend-resume-routines-to-crypto-driver.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am335x-Add-suspend-resume-routines-to-crypto-driver.patch
deleted file mode 100644
index 6066c0a..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am335x-Add-suspend-resume-routines-to-crypto-driver.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 0fb328ec0a5ba8a1440336c8dc7a029cfffa4529 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 19 Jul 2012 15:27:59 -0500
-Subject: [PATCH 2/2] [am335x]: Add suspend resume routines to crypto driver
-
-* Add suspend resume routines to AES crypto driver
-* Add suspend resume routines to SHA crypto driver
-* Cleaned up some build warnings
----
- drivers/crypto/omap4-aes.c  |   31 ++++++++++++++++++++++++++++---
- drivers/crypto/omap4-sham.c |   32 +++++++++++++++++++++++++++-----
- 2 files changed, 55 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
-index 76f988a..c7d08df 100755
---- a/drivers/crypto/omap4-aes.c
-+++ b/drivers/crypto/omap4-aes.c
-@@ -878,9 +878,9 @@ err_io:
-	udelay(1);
-
-
--err_res:
--	kfree(dd);
--	dd = NULL;
-+//err_res:
-+	//kfree(dd);
-+	//dd = NULL;
- err_data:
-	dev_err(dev, "initialization failed.\n");
-	return err;
-@@ -916,12 +916,35 @@ static int omap4_aes_remove(struct platform_device *pdev)
-	return 0;
- }
-
-+static int omap4_aes_suspend(struct device *dev)
-+{
-+	pr_debug("#### Crypto: Suspend call ####\n");
-+
-+	return 0;
-+}
-+
-+
-+static int omap4_aes_resume(struct device *dev)
-+{
-+	pr_debug("#### Crypto: resume call ####\n");
-+
-+	return 0;
-+}
-+
-+static struct dev_pm_ops omap4_aes_dev_pm_ops = {
-+	.suspend	= omap4_aes_suspend,
-+	.resume		= omap4_aes_resume,
-+	.runtime_suspend = omap4_aes_suspend,
-+	.runtime_resume = omap4_aes_resume,
-+};
-+
- static struct platform_driver omap4_aes_driver = {
-	.probe	= omap4_aes_probe,
-	.remove	= omap4_aes_remove,
-	.driver	= {
-		.name	= "omap4-aes",
-		.owner	= THIS_MODULE,
-+		.pm		= &omap4_aes_dev_pm_ops
-	},
- };
-
-@@ -944,6 +967,8 @@ static void __exit omap4_aes_mod_exit(void)
-	platform_driver_unregister(&omap4_aes_driver);
- }
-
-+
-+
- module_init(omap4_aes_mod_init);
- module_exit(omap4_aes_mod_exit);
-
-diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
-index 21f1b48..2fb71b9 100755
---- a/drivers/crypto/omap4-sham.c
-+++ b/drivers/crypto/omap4-sham.c
-@@ -239,7 +239,7 @@ static void omap4_sham_copy_ready_hash(struct ahash_request *req)
-	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-	u32 *in = (u32 *)ctx->digest;
-	u32 *hash = (u32 *)req->result;
--	int i, d;
-+	int i, d = 0;
-
-	if (!hash)
-		return;
-@@ -1224,8 +1224,6 @@ static void omap4_sham_dma_callback(unsigned int lch, u16 ch_status, void *data)
-
- static int omap4_sham_dma_init(struct omap4_sham_dev *dd)
- {
--	int err;
--
-	dd->dma_lch = -1;
-
-	dd->dma_lch = edma_alloc_channel(dd->dma, omap4_sham_dma_callback, dd, EVENTQ_2);
-@@ -1349,8 +1347,9 @@ io_err:
-	pm_runtime_disable(dev);
-	udelay(1);
-
--clk_err:
--	omap4_sham_dma_cleanup(dd);
-+//clk_err:
-+//	omap4_sham_dma_cleanup(dd);
-+
- dma_err:
-	if (dd->irq >= 0)
-		free_irq(dd->irq, dd);
-@@ -1392,12 +1391,35 @@ static int __devexit omap4_sham_remove(struct platform_device *pdev)
-	return 0;
- }
-
-+static int omap4_sham_suspend(struct device *dev)
-+{
-+	pr_debug("#### Crypto: Suspend call ####\n");
-+
-+	return 0;
-+}
-+
-+
-+static int omap4_sham_resume(struct device *dev)
-+{
-+	pr_debug("#### Crypto: resume call ####\n");
-+
-+	return 0;
-+}
-+
-+static struct dev_pm_ops omap4_sham_dev_pm_ops = {
-+	.suspend	= omap4_sham_suspend,
-+	.resume		= omap4_sham_resume,
-+	.runtime_suspend = omap4_sham_suspend,
-+	.runtime_resume = omap4_sham_resume,
-+};
-+
- static struct platform_driver omap4_sham_driver = {
-	.probe	= omap4_sham_probe,
-	.remove	= omap4_sham_remove,
-	.driver	= {
-		.name	= "omap4-sham",
-		.owner	= THIS_MODULE,
-+		.pm		= &omap4_sham_dev_pm_ops
-	},
- };
-
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33x-Add-crypto-device-and-resource-structures.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33x-Add-crypto-device-and-resource-structures.patch
deleted file mode 100644
index eb0223c..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33x-Add-crypto-device-and-resource-structures.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 8c0f7553e75774849463f90b0135874754650386 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 14:45:05 -0500
-Subject: [PATCH 2/8] am33x: Add crypto device and resource structures
-
-* Add platform device and resource structures to devices.c
-* Structures are for the AES and SHA/MD5 crypto modules
-* Used in the OMAP4 crypto driver
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- arch/arm/mach-omap2/devices.c |   67 +++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 67 insertions(+), 0 deletions(-)
- mode change 100644 => 100755 arch/arm/mach-omap2/devices.c
-
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-old mode 100644
-new mode 100755
-index 9e029da..5c6e3e2
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -47,6 +47,7 @@
- #include <plat/omap_hwmod.h>
- #include <plat/omap_device.h>
- #include <plat/omap4-keypad.h>
-+#include <plat/am33xx.h>
- #include <plat/config_pwm.h>
- #include <plat/cpu.h>
- #include <plat/gpmc.h>
-@@ -702,6 +703,41 @@ static void omap_init_sham(void)
-	}
-	platform_device_register(&sham_device);
- }
-+
-+#elif defined(CONFIG_CRYPTO_DEV_OMAP4_SHAM) || defined(CONFIG_CRYPTO_DEV_OMAP4_SHAM_MODULE)
-+
-+static struct resource omap4_sham_resources[] = {
-+	{
-+		.start	= AM33XX_SHA1MD5_P_BASE,
-+		.end	= AM33XX_SHA1MD5_P_BASE + 0x120,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	{
-+		.start	= AM33XX_IRQ_SHAEIP57t0_P,
-+		.flags	= IORESOURCE_IRQ,
-+	},
-+	{
-+		.start	= AM33XX_DMA_SHAEIP57T0_DIN,
-+		.flags	= IORESOURCE_DMA,
-+	}
-+};
-+
-+static int omap4_sham_resources_sz = ARRAY_SIZE(omap4_sham_resources);
-+
-+
-+static struct platform_device sham_device = {
-+	.name		= "omap4-sham",
-+	.id		= -1,
-+};
-+
-+static void omap_init_sham(void)
-+{
-+	sham_device.resource = omap4_sham_resources;
-+	sham_device.num_resources = omap4_sham_resources_sz;
-+
-+	platform_device_register(&sham_device);
-+}
-+
- #else
- static inline void omap_init_sham(void) { }
- #endif
-@@ -772,6 +808,37 @@ static void omap_init_aes(void)
-	platform_device_register(&aes_device);
- }
-
-+#elif defined(CONFIG_CRYPTO_DEV_OMAP4_AES) || defined(CONFIG_CRYPTO_DEV_OMAP4_AES_MODULE)
-+
-+static struct resource omap4_aes_resources[] = {
-+	{
-+		.start	= AM33XX_AES0_P_BASE,
-+		.end	= AM33XX_AES0_P_BASE + 0x4C,
-+		.flags	= IORESOURCE_MEM,
-+	},
-+	{
-+		.start	= AM33XX_DMA_AESEIP36T0_DOUT,
-+		.flags	= IORESOURCE_DMA,
-+	},
-+	{
-+		.start	= AM33XX_DMA_AESEIP36T0_DIN,
-+		.flags	= IORESOURCE_DMA,
-+	}
-+};
-+static int omap4_aes_resources_sz = ARRAY_SIZE(omap4_aes_resources);
-+
-+static struct platform_device aes_device = {
-+	.name		= "omap4-aes",
-+	.id		= -1,
-+};
-+
-+static void omap_init_aes(void)
-+{
-+	aes_device.resource = omap4_aes_resources;
-+	aes_device.num_resources = omap4_aes_resources_sz;
-+	platform_device_register(&aes_device);
-+}
-+
- #else
- static inline void omap_init_aes(void) { }
- #endif
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33xx-Enable-CONFIG_AM33XX_SMARTREFLEX.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33xx-Enable-CONFIG_AM33XX_SMARTREFLEX.patch
deleted file mode 100644
index 04e3bee..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-am33xx-Enable-CONFIG_AM33XX_SMARTREFLEX.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From e1b7a67fc82991a633f0ed615d69157c98c1c35d Mon Sep 17 00:00:00 2001
-From: Greg Guyotte <gguyotte at ti.com>
-Date: Thu, 7 Jun 2012 18:15:21 -0500
-Subject: [PATCH 2/2] am33xx: Enable CONFIG_AM33XX_SMARTREFLEX
-
-Simply enables the SmartReflex driver in the defconfig file.
-
-Signed-off-by: Greg Guyotte <gguyotte at ti.com>
----
- arch/arm/configs/am335x_evm_defconfig |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/configs/am335x_evm_defconfig b/arch/arm/configs/am335x_evm_defconfig
-index de1eaad..ce5d1d6 100644
---- a/arch/arm/configs/am335x_evm_defconfig
-+++ b/arch/arm/configs/am335x_evm_defconfig
-@@ -269,6 +269,7 @@ CONFIG_ARCH_OMAP2PLUS=y
- # OMAP Feature Selections
- #
- # CONFIG_OMAP_SMARTREFLEX is not set
-+CONFIG_AM33XX_SMARTREFLEX=y
- CONFIG_OMAP_RESET_CLOCKS=y
- CONFIG_OMAP_MUX=y
- CONFIG_OMAP_MUX_DEBUG=y
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-crypto-omap4-sham-Use-finer-grained-PM-management.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0002-crypto-omap4-sham-Use-finer-grained-PM-management.patch
deleted file mode 100644
index 8890f3b..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0002-crypto-omap4-sham-Use-finer-grained-PM-management.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 0c910915e0b14538e4a539a26a1c632d29ed7131 Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Tue, 11 Dec 2012 09:40:05 -0700
-Subject: [PATCH 02/10] crypto: omap4-sham: Use finer-grained PM management
-
-Currently, the pm_runtime calls in omap4-sham enable
-things when the driver is probed and leave them enabled
-until the driver is removed.  To fix this, move the
-pm_runtime calls to only enable the sham module when
-its actually in use.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/crypto/omap4-sham.c | 23 ++++++++---------------
- 1 file changed, 8 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
-index 2fb71b9..6985c87 100644
---- a/drivers/crypto/omap4-sham.c
-+++ b/drivers/crypto/omap4-sham.c
-@@ -138,7 +138,6 @@ struct omap4_sham_dev {
- 	struct device		*dev;
- 	void __iomem		*io_base;
- 	int			irq;
--	struct clk		*iclk;
- 	spinlock_t		lock;
- 	int			err;
- 	int			dma;
-@@ -701,6 +700,8 @@ static void omap4_sham_finish_req(struct ahash_request *req, int err)
- 	dd->dflags &= ~(BIT(FLAGS_BUSY) | BIT(FLAGS_FINAL) | BIT(FLAGS_CPU) |
- 			BIT(FLAGS_DMA_READY) | BIT(FLAGS_OUTPUT_READY));
- 
-+	pm_runtime_put_sync(dd->dev);
-+
- 	if (req->base.complete)
- 		req->base.complete(&req->base, err);
- 
-@@ -742,6 +743,8 @@ static int omap4_sham_handle_queue(struct omap4_sham_dev *dd,
- 	dev_dbg(dd->dev, "handling new req, op: %lu, nbytes: %d\n",
- 						ctx->op, req->nbytes);
- 
-+	pm_runtime_get_sync(dd->dev);
-+
- 	if (!test_bit(FLAGS_INIT, &dd->dflags)) {
- 		set_bit(FLAGS_INIT, &dd->dflags);
- 		dd->err = 0;
-@@ -1306,11 +1309,6 @@ static int __devinit omap4_sham_probe(struct platform_device *pdev)
- 	if (err)
- 		goto dma_err;
- 
--	pm_runtime_enable(dev);
--	udelay(1);
--	pm_runtime_get_sync(dev);
--	udelay(1);
--
- 	dd->io_base = ioremap(dd->phys_base, SZ_4K);
- 	if (!dd->io_base) {
- 		dev_err(dev, "can't ioremap\n");
-@@ -1318,7 +1316,11 @@ static int __devinit omap4_sham_probe(struct platform_device *pdev)
- 		goto io_err;
- 	}
- 
-+
-+	pm_runtime_enable(dev);
-+	pm_runtime_get_sync(dev);
- 	reg = omap4_sham_read(dd, SHA_REG_REV);
-+	pm_runtime_put_sync(&pdev->dev);
- 
- 	dev_info(dev, "AM33X SHA/MD5 hw accel rev: %u.%02u\n",
- 		 (reg & SHA_REG_REV_X_MAJOR_MASK) >> 8, reg & SHA_REG_REV_Y_MINOR_MASK);
-@@ -1342,13 +1344,7 @@ err_algs:
- 		crypto_unregister_ahash(&algs[j]);
- 	iounmap(dd->io_base);
- io_err:
--	pm_runtime_put_sync(dev);
--	udelay(1);
- 	pm_runtime_disable(dev);
--	udelay(1);
--
--//clk_err:
--//	omap4_sham_dma_cleanup(dd);
- 
- dma_err:
- 	if (dd->irq >= 0)
-@@ -1377,10 +1373,7 @@ static int __devexit omap4_sham_remove(struct platform_device *pdev)
- 		crypto_unregister_ahash(&algs[i]);
- 	tasklet_kill(&dd->done_task);
- 	iounmap(dd->io_base);
--	pm_runtime_put_sync(&pdev->dev);
--	udelay(1);
- 	pm_runtime_disable(&pdev->dev);
--	udelay(1);
- 
- 	omap4_sham_dma_cleanup(dd);
- 	if (dd->irq >= 0)
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0003-am33x-Add-crypto-device-and-resource-structure-for-T.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0003-am33x-Add-crypto-device-and-resource-structure-for-T.patch
deleted file mode 100644
index def61d5..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0003-am33x-Add-crypto-device-and-resource-structure-for-T.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b7477dd40221a91af286bffa110879075a498943 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 14:49:39 -0500
-Subject: [PATCH 3/8] am33x: Add crypto device and resource structure for TRNG
-
-* Add platform device and resource structure to devices.c
-* Structures are for the TRNG crypto module
-* Used in the OMAP4 crypto driver
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- arch/arm/plat-omap/devices.c |   23 +++++++++++++++++++++++
- 1 files changed, 23 insertions(+), 0 deletions(-)
- mode change 100644 => 100755 arch/arm/plat-omap/devices.c
-
-diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
-old mode 100644
-new mode 100755
-index 1971932..52720b4
---- a/arch/arm/plat-omap/devices.c
-+++ b/arch/arm/plat-omap/devices.c
-@@ -26,6 +26,7 @@
- #include <plat/mmc.h>
- #include <plat/menelaus.h>
- #include <plat/omap44xx.h>
-+#include <plat/am33xx.h>
-
- #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE) || \
-	defined(CONFIG_MMC_OMAP_HS) || defined(CONFIG_MMC_OMAP_HS_MODULE)
-@@ -104,6 +105,28 @@ static void omap_init_rng(void)
- {
-	(void) platform_device_register(&omap_rng_device);
- }
-+#elif defined(CONFIG_HW_RANDOM_OMAP4) || defined(CONFIG_HW_RANDOM_OMAP4_MODULE)
-+
-+static struct resource rng_resources[] = {
-+	{
-+		.start		= AM33XX_RNG_BASE,
-+		.end		= AM33XX_RNG_BASE + 0x1FFC,
-+		.flags		= IORESOURCE_MEM,
-+	},
-+};
-+
-+static struct platform_device omap4_rng_device = {
-+	.name		= "omap4_rng",
-+	.id		= -1,
-+	.num_resources	= ARRAY_SIZE(rng_resources),
-+	.resource	= rng_resources,
-+};
-+
-+static void omap_init_rng(void)
-+{
-+	(void) platform_device_register(&omap4_rng_device);
-+}
-+
- #else
- static inline void omap_init_rng(void) {}
- #endif
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0003-crypto-omap4-sham-Add-suspend-resume-PM-support.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0003-crypto-omap4-sham-Add-suspend-resume-PM-support.patch
deleted file mode 100644
index 4b9a9bc..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0003-crypto-omap4-sham-Add-suspend-resume-PM-support.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From b0a47b49a61db95fdb2340548b967bdfe085df2d Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Wed, 12 Dec 2012 00:43:45 -0700
-Subject: [PATCH 03/10] crypto: omap4-sham: Add suspend/resume PM support
-
-Add suspend/resume PM support to the omap4-sham driver
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/crypto/omap4-sham.c | 13 ++++---------
- 1 file changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
-index 6985c87..963d0e1 100644
---- a/drivers/crypto/omap4-sham.c
-+++ b/drivers/crypto/omap4-sham.c
-@@ -1386,24 +1386,19 @@ static int __devexit omap4_sham_remove(struct platform_device *pdev)
- 
- static int omap4_sham_suspend(struct device *dev)
- {
--	pr_debug("#### Crypto: Suspend call ####\n");
--
-+	pm_runtime_put_sync(dev);
- 	return 0;
- }
- 
- 
- static int omap4_sham_resume(struct device *dev)
- {
--	pr_debug("#### Crypto: resume call ####\n");
--
-+	pm_runtime_get_sync(dev);
- 	return 0;
- }
- 
- static struct dev_pm_ops omap4_sham_dev_pm_ops = {
--	.suspend	= omap4_sham_suspend,
--	.resume		= omap4_sham_resume,
--	.runtime_suspend = omap4_sham_suspend,
--	.runtime_resume = omap4_sham_resume,
-+	SET_SYSTEM_SLEEP_PM_OPS(omap4_sham_suspend, omap4_sham_resume)
- };
- 
- static struct platform_driver omap4_sham_driver = {
-@@ -1412,7 +1407,7 @@ static struct platform_driver omap4_sham_driver = {
- 	.driver	= {
- 		.name	= "omap4-sham",
- 		.owner	= THIS_MODULE,
--		.pm		= &omap4_sham_dev_pm_ops
-+		.pm	= &omap4_sham_dev_pm_ops
- 	},
- };
- 
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0004-am33x-Add-crypto-drivers-to-Kconfig-and-Makefiles.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0004-am33x-Add-crypto-drivers-to-Kconfig-and-Makefiles.patch
deleted file mode 100644
index 31d8363..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0004-am33x-Add-crypto-drivers-to-Kconfig-and-Makefiles.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From e49e6dcff5665cb2f132d9654a060fa43a382810 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 14:53:25 -0500
-Subject: [PATCH 4/8] am33x: Add crypto drivers to Kconfig and Makefiles
-
-* Add OMAP4 TRNG driver to hw_random Kconfig and Makefile
-* Add OMAP4 AES and SHA/MD5 driver to crypto Kconfig and Makefile
-* Needed so that drivers can be selected during kernel config
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- drivers/char/hw_random/Kconfig  |   13 +++++++++++++
- drivers/char/hw_random/Makefile |    1 +
- drivers/crypto/Kconfig          |   22 ++++++++++++++++++++--
- drivers/crypto/Makefile         |    2 ++
- 4 files changed, 36 insertions(+), 2 deletions(-)
- mode change 100644 => 100755 drivers/char/hw_random/Kconfig
- mode change 100644 => 100755 drivers/char/hw_random/Makefile
- mode change 100644 => 100755 drivers/crypto/Kconfig
- mode change 100644 => 100755 drivers/crypto/Makefile
-
-diff --git a/drivers/char/hw_random/Kconfig b/drivers/char/hw_random/Kconfig
-old mode 100644
-new mode 100755
-index 0689bf6..207e3e7
---- a/drivers/char/hw_random/Kconfig
-+++ b/drivers/char/hw_random/Kconfig
-@@ -139,6 +139,19 @@ config HW_RANDOM_OMAP
-
-	  If unsure, say Y.
-
-+config HW_RANDOM_OMAP4
-+	tristate "OMAP4 Random Number Generator support"
-+	depends on HW_RANDOM && SOC_OMAPAM33XX
-+	default HW_RANDOM
-+	---help---
-+	  This driver provides kernel-side support for the Random Number
-+	  Generator hardware found on OMAP4 derived processors.
-+
-+	  To compile this driver as a module, choose M here: the
-+	  module will be called omap4-rng.
-+
-+	  If unsure, say Y.
-+
- config HW_RANDOM_OCTEON
-	tristate "Octeon Random Number Generator support"
-	depends on HW_RANDOM && CPU_CAVIUM_OCTEON
-diff --git a/drivers/char/hw_random/Makefile b/drivers/char/hw_random/Makefile
-old mode 100644
-new mode 100755
-index b2ff526..fecced0
---- a/drivers/char/hw_random/Makefile
-+++ b/drivers/char/hw_random/Makefile
-@@ -14,6 +14,7 @@ n2-rng-y := n2-drv.o n2-asm.o
- obj-$(CONFIG_HW_RANDOM_VIA) += via-rng.o
- obj-$(CONFIG_HW_RANDOM_IXP4XX) += ixp4xx-rng.o
- obj-$(CONFIG_HW_RANDOM_OMAP) += omap-rng.o
-+obj-$(CONFIG_HW_RANDOM_OMAP4) += omap4-rng.o
- obj-$(CONFIG_HW_RANDOM_PASEMI) += pasemi-rng.o
- obj-$(CONFIG_HW_RANDOM_VIRTIO) += virtio-rng.o
- obj-$(CONFIG_HW_RANDOM_TX4939) += tx4939-rng.o
-diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
-old mode 100644
-new mode 100755
-index 6d16b4b..6c1331a
---- a/drivers/crypto/Kconfig
-+++ b/drivers/crypto/Kconfig
-@@ -250,7 +250,7 @@ config CRYPTO_DEV_PPC4XX
-
- config CRYPTO_DEV_OMAP_SHAM
-	tristate "Support for OMAP SHA1/MD5 hw accelerator"
--	depends on ARCH_OMAP2 || ARCH_OMAP3
-+	depends on (ARCH_OMAP2) || (ARCH_OMAP3) && (!SOC_OMAPAM33XX)
-	select CRYPTO_SHA1
-	select CRYPTO_MD5
-	help
-@@ -259,12 +259,30 @@ config CRYPTO_DEV_OMAP_SHAM
-
- config CRYPTO_DEV_OMAP_AES
-	tristate "Support for OMAP AES hw engine"
--	depends on ARCH_OMAP2 || ARCH_OMAP3
-+	depends on (ARCH_OMAP2) || (ARCH_OMAP3) && (!SOC_OMAPAM33XX)
-	select CRYPTO_AES
-	help
-	  OMAP processors have AES module accelerator. Select this if you
-	  want to use the OMAP module for AES algorithms.
-
-+config CRYPTO_DEV_OMAP4_AES
-+	tristate "Support for OMAP4 AES hw engine"
-+	depends on SOC_OMAPAM33XX
-+	select CRYPTO_AES
-+	help
-+	  OMAP4 -based processors have AES module accelerators. Select this if you
-+	  want to use the OMAP4 module for AES algorithms.
-+
-+config CRYPTO_DEV_OMAP4_SHAM
-+	tristate "Support for OMAP4 SHA/MD5 hw engine"
-+	depends on SOC_OMAPAM33XX
-+	select CRYPTO_SHA1
-+	select CRYPTO_SHA256
-+	select CRYPTO_MD5
-+	help
-+	  OMAP4 -based processors have SHA/MD5 module accelerators. Select this if you
-+	  want to use the OMAP4 module for SHA/MD5 algorithms.
-+
- config CRYPTO_DEV_PICOXCELL
-	tristate "Support for picoXcell IPSEC and Layer2 crypto engines"
-	depends on ARCH_PICOXCELL && HAVE_CLK
-diff --git a/drivers/crypto/Makefile b/drivers/crypto/Makefile
-old mode 100644
-new mode 100755
-index 53ea501..5b420a5
---- a/drivers/crypto/Makefile
-+++ b/drivers/crypto/Makefile
-@@ -11,5 +11,7 @@ obj-$(CONFIG_CRYPTO_DEV_IXP4XX) += ixp4xx_crypto.o
- obj-$(CONFIG_CRYPTO_DEV_PPC4XX) += amcc/
- obj-$(CONFIG_CRYPTO_DEV_OMAP_SHAM) += omap-sham.o
- obj-$(CONFIG_CRYPTO_DEV_OMAP_AES) += omap-aes.o
-+obj-$(CONFIG_CRYPTO_DEV_OMAP4_AES) += omap4-aes.o
-+obj-$(CONFIG_CRYPTO_DEV_OMAP4_SHAM) += omap4-sham.o
- obj-$(CONFIG_CRYPTO_DEV_PICOXCELL) += picoxcell_crypto.o
- obj-$(CONFIG_CRYPTO_DEV_S5P) += s5p-sss.o
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0004-crypto-omap4-sham-Don-t-use-hardcoded-base-address.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0004-crypto-omap4-sham-Don-t-use-hardcoded-base-address.patch
deleted file mode 100644
index 76c7027..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0004-crypto-omap4-sham-Don-t-use-hardcoded-base-address.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 08ea4b77652956c07b91b4de670ebc44f1395840 Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Tue, 11 Dec 2012 20:33:15 -0700
-Subject: [PATCH 04/10] crypto: omap4-sham: Don't use hardcoded base address
-
-The omap4-sham driver currently uses a hardcoded base
-address for its register set instead of the address
-passed in by the system.  Instead, use the address
-passed in by the system.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/crypto/omap4-sham.c | 16 +++++++---------
- 1 file changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
-index 963d0e1..b2fc03a 100644
---- a/drivers/crypto/omap4-sham.c
-+++ b/drivers/crypto/omap4-sham.c
-@@ -1271,15 +1271,13 @@ static int __devinit omap4_sham_probe(struct platform_device *pdev)
- 	dd->irq = -1;
- 
- 	/* Get the base address */
--	//res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--	//if (!res) {
--	//	dev_err(dev, "no MEM resource info\n");
--	//	err = -ENODEV;
--	//	goto res_err;
--	//}
--
--	//dd->phys_base = res->start;
--	dd->phys_base = AM33XX_SHA1MD5_P_BASE;
-+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!res) {
-+		dev_err(dev, "no MEM resource info\n");
-+		err = -ENODEV;
-+		goto res_err;
-+	}
-+	dd->phys_base = res->start;
- 
- 	/* Get the DMA */
- 	res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0005-ARM-AM33xx-hwmod-Convert-AES0-crypto-device-data-to-.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0005-ARM-AM33xx-hwmod-Convert-AES0-crypto-device-data-to-.patch
deleted file mode 100644
index 6aebef6..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0005-ARM-AM33xx-hwmod-Convert-AES0-crypto-device-data-to-.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From ff9e06c41de00f281dd21ed66e8477d933ce69dd Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Tue, 11 Dec 2012 20:46:49 -0700
-Subject: [PATCH 05/10] ARM: AM33xx: hwmod: Convert AES0 crypto device data to
- hwmod
-
-Convert the device data for the AM33xx AES0 crypto modules
-from explicit platform_data to hwmod.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- arch/arm/mach-omap2/devices.c              | 65 ++++--------------------------
- arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 32 +++++++++++++++
- 2 files changed, 39 insertions(+), 58 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index 3679369..e4caa06 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -809,69 +809,18 @@ static void omap_init_aes(void)
- }
- 
- #elif defined(CONFIG_CRYPTO_DEV_OMAP4_AES) || defined(CONFIG_CRYPTO_DEV_OMAP4_AES_MODULE)
--
--static struct resource omap4_aes_resources[] = {
--	{
--		.start	= AM33XX_AES0_P_BASE,
--		.end	= AM33XX_AES0_P_BASE + 0x4C,
--		.flags	= IORESOURCE_MEM,
--	},
--	{
--		.start	= AM33XX_DMA_AESEIP36T0_DOUT,
--		.flags	= IORESOURCE_DMA,
--	},
--	{
--		.start	= AM33XX_DMA_AESEIP36T0_DIN,
--		.flags	= IORESOURCE_DMA,
--	}
--};
--static int omap4_aes_resources_sz = ARRAY_SIZE(omap4_aes_resources);
--
--static struct platform_device aes_device = {
--	.name		= "omap4-aes",
--	.id		= -1,
--};
--
--#if 0
--static void omap_init_aes(void)
-+static void __init omap_init_aes(void)
- {
--	aes_device.resource = omap4_aes_resources;
--	aes_device.num_resources = omap4_aes_resources_sz;
--	platform_device_register(&aes_device);
--}
--#endif
--
--int __init omap_init_aes(void)
--{
--	int id = -1;
--	struct platform_device *pdev;
- 	struct omap_hwmod *oh;
--	char *oh_name = "aes0";
--	char *name = "omap4-aes";
--
--	oh = omap_hwmod_lookup(oh_name);
--	if (!oh) {
--		pr_err("Could not look up %s\n", oh_name);
--		return -ENODEV;
--	}
--
--	pdev = omap_device_build(name, id, oh, NULL, 0, NULL, 0, 0);
--	//pdev.resource = omap4_sham_resources;
--	//pdev.num_resources = omap4_sham_resources_sz;
-+	struct platform_device *pdev;
- 
--	if (IS_ERR(pdev)) {
--		WARN(1, "Can't build omap_device for %s:%s.\n",
--						name, oh->name);
--		return PTR_ERR(pdev);
--	}
-+	oh = omap_hwmod_lookup("aes0");
-+	if (!oh)
-+		return;
- 
--	return 0;
-+	pdev = omap_device_build("omap4-aes", -1, oh, NULL, 0, NULL, 0, 0);
-+	WARN(IS_ERR(pdev), "Can't build omap_device for omap-aes\n");
- }
--
--
--
--
--
- #else
- static inline void omap_init_aes(void) { }
- #endif
-diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-index ad606c6..90e25d7 100644
---- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-@@ -78,6 +78,7 @@ static struct omap_hwmod am33xx_spi0_hwmod;
- static struct omap_hwmod am33xx_spi1_hwmod;
- static struct omap_hwmod am33xx_elm_hwmod;
- static struct omap_hwmod am33xx_adc_tsc_hwmod;
-+static struct omap_hwmod am33xx_aes0_hwmod;
- static struct omap_hwmod am33xx_rtc_hwmod;
- static struct omap_hwmod am33xx_sha0_hwmod;
- static struct omap_hwmod am33xx_mcasp0_hwmod;
-@@ -427,8 +428,16 @@ static struct omap_hwmod am33xx_adc_tsc_hwmod = {
- };
- 
- /* 'aes' class */
-+static struct omap_hwmod_class_sysconfig am33xx_aes_sysc = {
-+	.rev_offs	= 0x80,
-+	.sysc_offs	= 0x84,
-+	.syss_offs	= 0x88,
-+	.sysc_flags	= SYSS_HAS_RESET_STATUS,
-+};
-+
- static struct omap_hwmod_class am33xx_aes_hwmod_class = {
- 	.name		= "aes",
-+	.sysc		= &am33xx_aes_sysc,
- };
- 
- /* aes0 */
-@@ -443,6 +452,27 @@ static struct omap_hwmod_dma_info am33xx_aes0_dma[] = {
- 	{ .dma_req = -1 }
- };
- 
-+static struct omap_hwmod_addr_space am33xx_aes0_addrs[] = {
-+	{
-+		.pa_start	= 0x53500000,
-+		.pa_end		= 0x53500000 + SZ_1M - 1,
-+		.flags		= ADDR_TYPE_RT
-+	},
-+	{ }
-+};
-+
-+static struct omap_hwmod_ocp_if am33xx_l3_main__aes0 = {
-+	.master		= &am33xx_l3_main_hwmod,
-+	.slave		= &am33xx_aes0_hwmod,
-+	.clk		= "aes0_fck",
-+	.addr		= am33xx_aes0_addrs,
-+	.user		= OCP_USER_MPU | OCP_USER_SDMA,
-+};
-+
-+static struct omap_hwmod_ocp_if *am33xx_aes0_slaves[] = {
-+	&am33xx_l3_main__aes0,
-+};
-+
- static struct omap_hwmod am33xx_aes0_hwmod = {
- 	.name		= "aes0",
- 	.class		= &am33xx_aes_hwmod_class,
-@@ -456,6 +486,8 @@ static struct omap_hwmod am33xx_aes0_hwmod = {
- 			.modulemode	= MODULEMODE_SWCTRL,
- 		},
- 	},
-+	.slaves		= am33xx_aes0_slaves,
-+	.slaves_cnt	= ARRAY_SIZE(am33xx_aes0_slaves),
- };
- 
- /* cefuse */
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0005-am33x-Create-header-file-for-OMAP4-crypto-modules.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0005-am33x-Create-header-file-for-OMAP4-crypto-modules.patch
deleted file mode 100644
index 94d89e5..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0005-am33x-Create-header-file-for-OMAP4-crypto-modules.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From 2dc9dec7510746b3c3f5420f4f3ab8395cc7b012 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 14:59:38 -0500
-Subject: [PATCH 5/8] am33x: Create header file for OMAP4 crypto modules
-
-* This header file defines addresses and macros used to access crypto modules on OMAP4 derivative SOC's like AM335x.
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- drivers/crypto/omap4.h |  192 ++++++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 192 insertions(+), 0 deletions(-)
- create mode 100644 drivers/crypto/omap4.h
-
-diff --git a/drivers/crypto/omap4.h b/drivers/crypto/omap4.h
-new file mode 100644
-index 0000000..d9d6315
---- /dev/null
-+++ b/drivers/crypto/omap4.h
-@@ -0,0 +1,192 @@
-+/*
-+ * drivers/crypto/omap4.h
-+ *
-+ * Copyright © 2011 Texas Instruments Incorporated
-+ * Author: Greg Turner
-+ *
-+ * Adapted from Netra/Centaurus crypto driver
-+ * Copyright © 2011 Texas Instruments Incorporated
-+ * Author: Herman Schuurman
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License as published by
-+ * the Free Software Foundation; either version 2 of the License, or
-+ * (at your option) any later version.
-+ *
-+ * This program is distributed in the hope that it will be useful,
-+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
-+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-+ * GNU General Public License for more details.
-+ *
-+ * You should have received a copy of the GNU General Public License
-+ * along with this program; if not, write to the Free Software
-+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-+ */
-+#ifndef __DRIVERS_CRYPTO_AM33X_H
-+#define __DRIVERS_CRYPTO_AM33X_H
-+
-+/* ==================================================================== */
-+/** Crypto subsystem module layout
-+ */
-+/* ==================================================================== */
-+
-+#define AM33X_AES_CLKCTRL	(AM33XX_PRCM_BASE + 0x00000094)
-+#define AM33X_SHA_CLKCTRL	(AM33XX_PRCM_BASE + 0x000000A0)
-+
-+#define FLD_MASK(start, end)		(((1 << ((start) - (end) + 1)) - 1) << (end))
-+#define FLD_VAL(val, start, end)	(((val) << (end)) & FLD_MASK(start, end))
-+
-+/* ==================================================================== */
-+/** AES module layout
-+ */
-+/* ==================================================================== */
-+
-+#define	AES_REG_KEY2(x)			(0x1C - ((x ^ 0x01) * 0x04))
-+#define	AES_REG_KEY1(x)			(0x3C - ((x ^ 0x01) * 0x04))
-+#define	AES_REG_IV(x)			(0x40 + ((x) * 0x04))
-+
-+#define	AES_REG_CTRL			0x50
-+#define	AES_REG_CTRL_CTX_RDY		(1 << 31)
-+#define	AES_REG_CTRL_SAVE_CTX_RDY	(1 << 30)
-+#define	AES_REG_CTRL_SAVE_CTX		(1 << 29)
-+#define	AES_REG_CTRL_CCM_M_MASK		(7 << 22)
-+#define	AES_REG_CTRL_CCM_M_SHFT		22
-+#define	AES_REG_CTRL_CCM_L_MASK		(7 << 19)
-+#define	AES_REG_CTRL_CCM_L_SHFT		19
-+#define	AES_REG_CTRL_CCM		(1 << 18)
-+#define	AES_REG_CTRL_GCM		(3 << 16)
-+#define	AES_REG_CTRL_CBCMAC		(1 << 15)
-+#define	AES_REG_CTRL_F9			(1 << 14)
-+#define	AES_REG_CTRL_F8			(1 << 13)
-+#define	AES_REG_CTRL_XTS_MASK		(3 << 11)
-+#define	 AES_REG_CTRL_XTS_01		(1 << 11)
-+#define	 AES_REG_CTRL_XTS_10		(2 << 11)
-+#define	 AES_REG_CTRL_XTS_11		(3 << 11)
-+#define	AES_REG_CTRL_CFB		(1 << 10)
-+#define	AES_REG_CTRL_ICM		(1 << 9)
-+#define	AES_REG_CTRL_CTR_WIDTH_MASK	(3 << 7)
-+#define	 AES_REG_CTRL_CTR_WIDTH_32	(0 << 7)
-+#define	 AES_REG_CTRL_CTR_WIDTH_64	(1 << 7)
-+#define	 AES_REG_CTRL_CTR_WIDTH_96	(2 << 7)
-+#define	 AES_REG_CTRL_CTR_WIDTH_128	(3 << 7)
-+#define	AES_REG_CTRL_CTR		(1 << 6)
-+#define	AES_REG_CTRL_CBC		(1 << 5)
-+#define	AES_REG_CTRL_KEY_SIZE_MASK	(3 << 3)
-+#define	 AES_REG_CTRL_KEY_SIZE_128	(1 << 3)
-+#define	 AES_REG_CTRL_KEY_SIZE_192	(2 << 3)
-+#define	 AES_REG_CTRL_KEY_SIZE_256	(3 << 3)
-+#define	AES_REG_CTRL_DIRECTION		(1 << 2)
-+#define	AES_REG_CTRL_INPUT_RDY		(1 << 1)
-+#define	AES_REG_CTRL_OUTPUT_RDY		(1 << 0)
-+
-+#define	AES_REG_LENGTH_N(x)		(0x54 + ((x) * 0x04))
-+#define	AES_REG_AUTH_LENGTH		0x5C
-+#define	AES_REG_DATA			0x60
-+#define	AES_REG_DATA_N(x)		(0x60 + ((x) * 0x04))
-+#define	AES_REG_TAG			0x70
-+#define	AES_REG_TAG_N(x)		(0x70 + ((x) * 0x04))
-+
-+#define AES_REG_REV			0x80
-+#define	 AES_REG_REV_SCHEME_MASK	(3 << 30)
-+#define	 AES_REG_REV_FUNC_MASK		(0xFFF << 16)
-+#define	 AES_REG_REV_R_RTL_MASK		(0x1F << 11)
-+#define	 AES_REG_REV_X_MAJOR_MASK	(7 << 8)
-+#define	 AES_REG_REV_CUSTOM_MASK	(3 << 6)
-+#define	 AES_REG_REV_Y_MINOR_MASK	(0x3F << 0)
-+
-+#define	AES_REG_SYSCFG			0x84
-+#define	AES_REG_SYSCFG_K3		(1 << 12)
-+#define	AES_REG_SYSCFG_KEY_ENC		(1 << 11)
-+#define	AES_REG_SYSCFG_KEK_MODE		(1 << 10)
-+#define	AES_REG_SYSCFG_MAP_CTX_OUT	(1 << 9)
-+#define	AES_REG_SYSCFG_DREQ_MASK	(15 << 5)
-+#define	 AES_REG_SYSCFG_DREQ_CTX_OUT_EN	(1 << 8)
-+#define	 AES_REG_SYSCFG_DREQ_CTX_IN_EN	(1 << 7)
-+#define	 AES_REG_SYSCFG_DREQ_DATA_OUT_EN (1 << 6)
-+#define	 AES_REG_SYSCFG_DREQ_DATA_IN_EN	(1 << 5)
-+#define	AES_REG_SYSCFG_DIRECTBUSEN	(1 << 4)
-+#define	AES_REG_SYSCFG_SIDLE_MASK	(3 << 2)
-+#define	 AES_REG_SYSCFG_SIDLE_FORCEIDLE	(0 << 2)
-+#define	 AES_REG_SYSCFG_SIDLE_NOIDLE	(1 << 2)
-+#define	 AES_REG_SYSCFG_SIDLE_SMARTIDLE	(2 << 2)
-+#define	AES_REG_SYSCFG_SOFTRESET	(1 << 1)
-+#define	AES_REG_SYSCFG_AUTOIDLE		(1 << 0)
-+
-+#define	AES_REG_SYSSTATUS		0x88
-+#define	AES_REG_SYSSTATUS_RESETDONE	(1 << 0)
-+
-+#define	AES_REG_IRQSTATUS		0x8C
-+#define	AES_REG_IRQSTATUS_CTX_OUT	(1 << 3)
-+#define	AES_REG_IRQSTATUS_DATA_OUT	(1 << 2)
-+#define	AES_REG_IRQSTATUS_DATA_IN	(1 << 1)
-+#define	AES_REG_IRQSTATUS_CTX_IN	(1 << 0)
-+
-+#define	AES_REG_IRQENA			0x90
-+#define	AES_REG_IRQENA_CTX_OUT		(1 << 3)
-+#define	AES_REG_IRQENA_DATA_OUT		(1 << 2)
-+#define	AES_REG_IRQENA_DATA_IN		(1 << 1)
-+#define	AES_REG_IRQENA_CTX_IN		(1 << 0)
-+
-+/* ==================================================================== */
-+/** SHA / MD5 module layout.
-+ */
-+/* ==================================================================== */
-+
-+#define	SHA_REG_ODIGEST			0x00
-+#define	SHA_REG_ODIGEST_N(x)		(0x00 + ((x) * 0x04))
-+#define	SHA_REG_IDIGEST			0x20
-+#define	SHA_REG_IDIGEST_N(x)		(0x20 + ((x) * 0x04))
-+
-+#define SHA_REG_DIGEST_COUNT		0x40
-+#define SHA_REG_MODE			0x44
-+#define SHA_REG_MODE_HMAC_OUTER_HASH	(1 << 7)
-+#define SHA_REG_MODE_HMAC_KEY_PROC	(1 << 5)
-+#define SHA_REG_MODE_CLOSE_HASH		(1 << 4)
-+#define SHA_REG_MODE_ALGO_CONSTANT	(1 << 3)
-+#define SHA_REG_MODE_ALGO_MASK		(3 << 1)
-+#define  SHA_REG_MODE_ALGO_MD5_128	(0 << 1)
-+#define  SHA_REG_MODE_ALGO_SHA1_160	(1 << 1)
-+#define  SHA_REG_MODE_ALGO_SHA2_224	(2 << 1)
-+#define  SHA_REG_MODE_ALGO_SHA2_256	(3 << 1)
-+
-+#define SHA_REG_LENGTH			0x48
-+
-+#define	SHA_REG_DATA			0x80
-+#define	SHA_REG_DATA_N(x)		(0x80 + ((x) * 0x04))
-+
-+#define SHA_REG_REV			0x100
-+#define	 SHA_REG_REV_SCHEME_MASK	(3 << 30)
-+#define	 SHA_REG_REV_FUNC_MASK		(0xFFF << 16)
-+#define	 SHA_REG_REV_R_RTL_MASK		(0x1F << 11)
-+#define	 SHA_REG_REV_X_MAJOR_MASK	(7 << 8)
-+#define	 SHA_REG_REV_CUSTOM_MASK	(3 << 6)
-+#define	 SHA_REG_REV_Y_MINOR_MASK	(0x3F << 0)
-+
-+#define	SHA_REG_SYSCFG			0x110
-+#define	SHA_REG_SYSCFG_SADVANCED	(1 << 7)
-+#define	SHA_REG_SYSCFG_SCONT_SWT	(1 << 6)
-+#define	SHA_REG_SYSCFG_SIDLE_MASK	(3 << 4)
-+#define	 SHA_REG_SYSCFG_SIDLE_FORCEIDLE	(0 << 4)
-+#define	 SHA_REG_SYSCFG_SIDLE_NOIDLE	(1 << 4)
-+#define	 SHA_REG_SYSCFG_SIDLE_SMARTIDLE	(2 << 4)
-+#define	SHA_REG_SYSCFG_SDMA_EN		(1 << 3)
-+#define	SHA_REG_SYSCFG_SIT_EN		(1 << 2)
-+#define	SHA_REG_SYSCFG_SOFTRESET	(1 << 1)
-+#define	SHA_REG_SYSCFG_AUTOIDLE		(1 << 0)
-+
-+#define SHA_REG_SYSSTATUS		0x114
-+#define SHA_REG_SYSSTATUS_RESETDONE	(1 << 0)
-+
-+#define SHA_REG_IRQSTATUS		0x118
-+#define SHA_REG_IRQSTATUS_CTX_RDY	(1 << 3)
-+#define SHA_REG_IRQSTATUS_PARTHASH_RDY (1 << 2)
-+#define SHA_REG_IRQSTATUS_INPUT_RDY	(1 << 1)
-+#define SHA_REG_IRQSTATUS_OUTPUT_RDY	(1 << 0)
-+
-+#define SHA_REG_IRQENA			0x11C
-+#define SHA_REG_IRQENA_CTX_RDY		(1 << 3)
-+#define SHA_REG_IRQENA_PARTHASH_RDY	(1 << 2)
-+#define SHA_REG_IRQENA_INPUT_RDY	(1 << 1)
-+#define SHA_REG_IRQENA_OUTPUT_RDY	(1 << 0)
-+
-+#endif /* __DRIVERS_CRYPTO_AM33X_H */
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0006-am33x-Create-driver-for-TRNG-crypto-module.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0006-am33x-Create-driver-for-TRNG-crypto-module.patch
deleted file mode 100644
index 7d0023a..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0006-am33x-Create-driver-for-TRNG-crypto-module.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From d56c0ab935577ef32ffdf23a62d2e1cecc391730 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 15:11:26 -0500
-Subject: [PATCH 6/8] am33x: Create driver for TRNG crypto module
-
-This is the initial version of the driver for the TRNG crypto module for a GP version of OMAP4 derivative SOC's such as AM335x.
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- drivers/char/hw_random/omap4-rng.c |  303 ++++++++++++++++++++++++++++++++++++
- 1 files changed, 303 insertions(+), 0 deletions(-)
- create mode 100755 drivers/char/hw_random/omap4-rng.c
-
-diff --git a/drivers/char/hw_random/omap4-rng.c b/drivers/char/hw_random/omap4-rng.c
-new file mode 100755
-index 0000000..523ec63
---- /dev/null
-+++ b/drivers/char/hw_random/omap4-rng.c
-@@ -0,0 +1,303 @@
-+/*
-+ * drivers/char/hw_random/omap4-rng.c
-+ *
-+ * Copyright (c) 2012 Texas Instruments
-+ * TRNG driver for OMAP4 derivatives (AM33x, etc) -  Herman Schuurman <herman at ti.com>
-+ *
-+ * derived from omap-rng.c.
-+ *
-+ * Author: Deepak Saxena <dsaxena at plexity.net>
-+ *
-+ * Copyright 2005 (c) MontaVista Software, Inc.
-+ *
-+ * Mostly based on original driver:
-+ *
-+ * Copyright (C) 2005 Nokia Corporation
-+ * Author: Juha Yrjölä <juha.yrjola at nokia.com>
-+ *
-+ * This file is licensed under  the terms of the GNU General Public
-+ * License version 2. This program is licensed "as is" without any
-+ * warranty of any kind, whether express or implied.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/random.h>
-+#include <linux/clk.h>
-+#include <linux/err.h>
-+#include <linux/platform_device.h>
-+#include <linux/hw_random.h>
-+#include <linux/delay.h>
-+
-+#include <mach/hardware.h>
-+#include <asm/io.h>
-+
-+/* ==================================================================== */
-+/** RNG module layout.
-+ */
-+/* ==================================================================== */
-+#define	RNG_REG_OUTPUT_L		0x00
-+#define	RNG_REG_OUTPUT_H		0x04
-+
-+#define	RNG_REG_STATUS			0x08
-+#define	RNG_REG_STATUS_NEED_CLK		(1 << 31)
-+#define	RNG_REG_STATUS_SHUTDOWN_OFLO	(1 << 1)
-+#define	RNG_REG_STATUS_RDY		(1 << 0)
-+
-+#define	RNG_REG_IMASK			0x0C
-+#define	RNG_REG_IMASK_SHUTDOWN_OFLO	(1 << 1)
-+#define	RNG_REG_IMASK_RDY		(1 << 0)
-+
-+#define	RNG_REG_INTACK			0x10
-+#define	RNG_REG_INTACK_SHUTDOWN_OFLO	(1 << 1)
-+#define	RNG_REG_INTACK_RDY		(1 << 0)
-+
-+#define	RNG_REG_CONTROL			0x14
-+#define	RNG_REG_CONTROL_STARTUP_MASK	0xFFFF0000
-+#define	RNG_REG_CONTROL_ENABLE_TRNG	(1 << 10)
-+#define	RNG_REG_CONTROL_NO_LFSR_FB	(1 << 2)
-+
-+#define	RNG_REG_CONFIG			0x18
-+#define	RNG_REG_CONFIG_MAX_REFILL_MASK	0xFFFF0000
-+#define	RNG_REG_CONFIG_SAMPLE_DIV	0x00000F00
-+#define	RNG_REG_CONFIG_MIN_REFILL_MASK	0x000000FF
-+
-+#define	RNG_REG_ALARMCNT		0x1C
-+#define	RNG_REG_ALARMCNT_SHTDWN_MASK	0x3F000000
-+#define	RNG_REG_ALARMCNT_SD_THLD_MASK	0x001F0000
-+#define	RNG_REG_ALARMCNT_ALM_THLD_MASK	0x000000FF
-+
-+#define	RNG_REG_FROENABLE		0x20
-+#define	RNG_REG_FRODETUNE		0x24
-+#define	RNG_REG_ALARMMASK		0x28
-+#define	RNG_REG_ALARMSTOP		0x2C
-+#define	RNG_REG_LFSR_L			0x30
-+#define	RNG_REG_LFSR_M			0x34
-+#define	RNG_REG_LFSR_H			0x38
-+#define	RNG_REG_COUNT			0x3C
-+#define	RNG_REG_TEST			0x40
-+
-+#define	RNG_REG_OPTIONS			0x78
-+#define	RNG_REG_OPTIONS_NUM_FROS_MASK	0x00000FC0
-+
-+#define	RNG_REG_EIP_REV			0x7C
-+#define	RNG_REG_STATUS_EN		0x1FD8
-+#define	RNG_REG_STATUS_EN_SHUTDOWN_OFLO	(1 << 1)
-+#define	RNG_REG_STATUS_EN_RDY		(1 << 0)
-+
-+#define	RNG_REG_REV			0x1FE0
-+#define	 RNG_REG_REV_X_MAJOR_MASK	(0x0F << 4)
-+#define	 RNG_REG_REV_Y_MINOR_MASK	(0x0F << 0)
-+
-+#define	RNG_REG_SYSCFG			0x1FE4
-+#define	RNG_REG_SYSCFG_SIDLEMODE_MASK	(3 << 3)
-+#define	 RNG_REG_SYSCFG_SIDLEMODE_FORCE	(0 << 3)
-+#define	 RNG_REG_SYSCFG_SIDLEMODE_NO	(1 << 3)
-+#define	 RNG_REG_SYSCFG_SIDLEMODE_SMART	(2 << 3)
-+#define	RNG_REG_SYSCFG_AUTOIDLE		(1 << 0)
-+
-+#define	RNG_REG_STATUS_SET		0x1FEC
-+#define	RNG_REG_STATUS_SET_SHUTDOWN_OFLO (1 << 1)
-+#define	RNG_REG_STATUS_SET_RDY		(1 << 0)
-+
-+#define	RNG_REG_SOFT_RESET		0x1FF0
-+#define	RNG_REG_SOFTRESET		(1 << 0)
-+
-+#define	RNG_REG_IRQ_EOI			0x1FF4
-+#define	RNG_REG_IRQ_EOI_PULSE_INT_CLEAR	(1 << 0)
-+
-+#define	RNG_REG_IRQSTATUS		0x1FF8
-+#define	RNG_REG_IRQSTATUS_IRQ_EN	(1 << 0)
-+
-+
-+static void __iomem *rng_base;
-+static struct clk *rng_fck;
-+static struct platform_device *rng_dev;
-+
-+#define trng_read(reg)						\
-+({								\
-+	u32 __val;						\
-+	__val = __raw_readl(rng_base + RNG_REG_##reg);		\
-+})
-+
-+#define trng_write(val, reg)					\
-+({								\
-+	__raw_writel((val), rng_base + RNG_REG_##reg);		\
-+})
-+
-+static int omap4_rng_data_read(struct hwrng *rng, void *buf, size_t max, bool wait)
-+{
-+	int res, i;
-+
-+	for (i = 0; i < 20; i++) {
-+		res = trng_read(STATUS) & RNG_REG_STATUS_RDY;
-+		if (res || !wait)
-+			break;
-+		/* RNG produces data fast enough (2+ MBit/sec, even
-+		 * during "rngtest" loads, that these delays don't
-+		 * seem to trigger.  We *could* use the RNG IRQ, but
-+		 * that'd be higher overhead ... so why bother?
-+		 */
-+		udelay(10);
-+	}
-+
-+	/* If we have data waiting, collect it... */
-+	if (res) {
-+		*(u32 *)buf = trng_read(OUTPUT_L);
-+		buf += sizeof(u32);
-+		*(u32 *)buf = trng_read(OUTPUT_H);
-+
-+		trng_write(RNG_REG_INTACK_RDY, INTACK);
-+
-+		res = 2  * sizeof(u32);
-+	}
-+	return res;
-+}
-+
-+static struct hwrng omap4_rng_ops = {
-+	.name		= "omap4",
-+	.read		= omap4_rng_data_read,
-+};
-+
-+static int __devinit omap4_rng_probe(struct platform_device *pdev)
-+{
-+	struct resource *res;
-+	int ret;
-+	u32 reg;
-+
-+	/*
-+	 * A bit ugly, and it will never actually happen but there can
-+	 * be only one RNG and this catches any bork
-+	 */
-+	if (rng_dev)
-+		return -EBUSY;
-+
-+	rng_fck = clk_get(&pdev->dev, "rng_fck");
-+	if (IS_ERR(rng_fck)) {
-+		dev_err(&pdev->dev, "Could not get rng_fck\n");
-+		ret = PTR_ERR(rng_fck);
-+		return ret;
-+	} else
-+		clk_enable(rng_fck);
-+
-+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!res) {
-+		ret = -ENOENT;
-+		goto err_region;
-+	}
-+
-+	if (!request_mem_region(res->start, resource_size(res), pdev->name)) {
-+		ret = -EBUSY;
-+		goto err_region;
-+	}
-+
-+	dev_set_drvdata(&pdev->dev, res);
-+	rng_base = ioremap(res->start, resource_size(res));
-+	if (!rng_base) {
-+		ret = -ENOMEM;
-+		goto err_ioremap;
-+	}
-+
-+	ret = hwrng_register(&omap4_rng_ops);
-+	if (ret)
-+		goto err_register;
-+
-+	reg = trng_read(REV);
-+	dev_info(&pdev->dev, "OMAP4 Random Number Generator ver. %u.%02u\n",
-+		 ((reg & RNG_REG_REV_X_MAJOR_MASK) >> 4),
-+		 (reg & RNG_REG_REV_Y_MINOR_MASK));
-+
-+	rng_dev = pdev;
-+
-+	/* start TRNG if not running yet */
-+	if (!(trng_read(CONTROL) & RNG_REG_CONTROL_ENABLE_TRNG)) {
-+		trng_write(0x00220021, CONFIG);
-+		trng_write(0x00210400, CONTROL);
-+	}
-+
-+	return 0;
-+
-+err_register:
-+	iounmap(rng_base);
-+	rng_base = NULL;
-+err_ioremap:
-+	release_mem_region(res->start, resource_size(res));
-+err_region:
-+	clk_disable(rng_fck);
-+	clk_put(rng_fck);
-+	return ret;
-+}
-+
-+static int __exit omap4_rng_remove(struct platform_device *pdev)
-+{
-+	struct resource *res = dev_get_drvdata(&pdev->dev);
-+
-+	hwrng_unregister(&omap4_rng_ops);
-+
-+	trng_write(trng_read(CONTROL) & ~RNG_REG_CONTROL_ENABLE_TRNG, CONTROL);
-+
-+	iounmap(rng_base);
-+
-+	clk_disable(rng_fck);
-+	clk_put(rng_fck);
-+	release_mem_region(res->start, resource_size(res));
-+	rng_base = NULL;
-+
-+	return 0;
-+}
-+
-+#ifdef CONFIG_PM
-+
-+static int omap4_rng_suspend(struct platform_device *pdev, pm_message_t message)
-+{
-+	trng_write(trng_read(CONTROL) & ~RNG_REG_CONTROL_ENABLE_TRNG, CONTROL);
-+
-+	return 0;
-+}
-+
-+static int omap4_rng_resume(struct platform_device *pdev)
-+{
-+	trng_write(trng_read(CONTROL) | RNG_REG_CONTROL_ENABLE_TRNG, CONTROL);
-+
-+	return 0;
-+}
-+
-+#else
-+
-+#define	omap4_rng_suspend	NULL
-+#define	omap4_rng_resume	NULL
-+
-+#endif
-+
-+/* work with hotplug and coldplug */
-+MODULE_ALIAS("platform:omap4_rng");
-+
-+static struct platform_driver omap4_rng_driver = {
-+	.driver = {
-+		.name		= "omap4_rng",
-+		.owner		= THIS_MODULE,
-+	},
-+	.probe		= omap4_rng_probe,
-+	.remove		= __exit_p(omap4_rng_remove),
-+	.suspend	= omap4_rng_suspend,
-+	.resume		= omap4_rng_resume
-+};
-+
-+static int __init omap4_rng_init(void)
-+{
-+	if (!cpu_is_am33xx()  || omap_type() != OMAP2_DEVICE_TYPE_GP)
-+		return -ENODEV;
-+
-+	return platform_driver_register(&omap4_rng_driver);
-+}
-+
-+static void __exit omap4_rng_exit(void)
-+{
-+	platform_driver_unregister(&omap4_rng_driver);
-+}
-+
-+module_init(omap4_rng_init);
-+module_exit(omap4_rng_exit);
-+
-+MODULE_LICENSE("GPL");
-+MODULE_DESCRIPTION("AM33X TRNG driver");
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0006-crypto-omap4-aes-User-finer-grained-PM-management.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0006-crypto-omap4-aes-User-finer-grained-PM-management.patch
deleted file mode 100644
index 94fb7b6..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0006-crypto-omap4-aes-User-finer-grained-PM-management.patch
+++ /dev/null
@@ -1,127 +0,0 @@
-From 5f56e1d486aaef9bcfaa57129c493a95185043fd Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Tue, 11 Dec 2012 21:00:13 -0700
-Subject: [PATCH 06/10] crypto: omap4-aes: User finer-grained PM management
-
-Currently, the pm_runtime calls in omap4-aes enable
-things when the driver is probed and leave them enabled
-until the driver is removed.  To fix this, move the
-pm_runtime calls to only enable the aes module when
-its actually in use.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/crypto/omap4-aes.c | 39 ++++++++++++++++-----------------------
- 1 file changed, 16 insertions(+), 23 deletions(-)
-
-diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
-index dec2de4..a957709 100644
---- a/drivers/crypto/omap4-aes.c
-+++ b/drivers/crypto/omap4-aes.c
-@@ -80,7 +80,6 @@ struct omap4_aes_dev {
- 	struct list_head		list;
- 	unsigned long			phys_base;
- 	void __iomem			*io_base;
--	struct clk			*iclk;
- 	struct omap4_aes_ctx		*ctx;
- 	struct device			*dev;
- 	unsigned long			flags;
-@@ -146,7 +145,7 @@ static void omap4_aes_write_n(struct omap4_aes_dev *dd, u32 offset,
- 
- static int omap4_aes_hw_init(struct omap4_aes_dev *dd)
- {
--	omap4_aes_write(dd, AES_REG_SYSCFG, 0);
-+	pm_runtime_get_sync(dd->dev);
- 
- 	if (!(dd->flags & FLAGS_INIT)) {
- 		dd->flags |= FLAGS_INIT;
-@@ -489,11 +488,17 @@ static void omap4_aes_finish_req(struct omap4_aes_dev *dd, int err)
- 
- 	pr_debug("err: %d\n", err);
- 
-+	pm_runtime_put_sync(dd->dev);
- 	dd->flags &= ~FLAGS_BUSY;
- 
- 	req->base.complete(&req->base, err);
- }
- 
-+static void omap4_aes_dma_stop(struct omap4_aes_dev *dd)
-+{
-+	omap4_aes_write_mask(dd, AES_REG_SYSCFG, 0, AES_REG_SYSCFG_DREQ_MASK);
-+}
-+
- static int omap4_aes_crypt_dma_stop(struct omap4_aes_dev *dd)
- {
- 	int err = 0;
-@@ -501,7 +506,7 @@ static int omap4_aes_crypt_dma_stop(struct omap4_aes_dev *dd)
- 
- 	pr_debug("total: %d\n", dd->total);
- 
--	omap4_aes_write_mask(dd, AES_REG_SYSCFG, 0, AES_REG_SYSCFG_DREQ_MASK);
-+	omap4_aes_dma_stop(dd);
- 
- 	edma_stop(dd->dma_lch_in);
- 	edma_clean_channel(dd->dma_lch_in);
-@@ -819,21 +824,22 @@ static int omap4_aes_probe(struct platform_device *pdev)
- 	else
- 		dd->dma_in = res->start;
- 
--	pm_runtime_enable(dev);
--	udelay(1);
--	pm_runtime_get_sync(dev);
--	udelay(1);
--
- 	dd->io_base = ioremap(dd->phys_base, SZ_4K);
- 	if (!dd->io_base) {
- 		dev_err(dev, "can't ioremap\n");
- 		err = -ENOMEM;
--		goto err_io;
-+		goto err_data;
- 	}
- 
--	omap4_aes_hw_init(dd);
-+	pm_runtime_enable(dev);
-+	pm_runtime_get_sync(dev);
-+
-+	omap4_aes_dma_stop(dd);
-+
- 	reg = omap4_aes_read(dd, AES_REG_REV);
- 
-+	pm_runtime_put_sync(dev);
-+
- 	dev_info(dev, "AM33X AES hw accel rev: %u.%02u\n",
- 		 ((reg & AES_REG_REV_X_MAJOR_MASK) >> 8),
- 		 (reg & AES_REG_REV_Y_MINOR_MASK));
-@@ -870,17 +876,8 @@ err_dma:
- 	tasklet_kill(&dd->done_task);
- 	tasklet_kill(&dd->queue_task);
- 	iounmap(dd->io_base);
--
--err_io:
--	pm_runtime_put_sync(dev);
--	udelay(1);
- 	pm_runtime_disable(dev);
--	udelay(1);
- 
--
--//err_res:
--	//kfree(dd);
--	//dd = NULL;
- err_data:
- 	dev_err(dev, "initialization failed.\n");
- 	return err;
-@@ -905,11 +902,7 @@ static int omap4_aes_remove(struct platform_device *pdev)
- 	tasklet_kill(&dd->queue_task);
- 	omap4_aes_dma_cleanup(dd);
- 	iounmap(dd->io_base);
--	pm_runtime_put_sync(&pdev->dev);
--	udelay(1);
- 	pm_runtime_disable(&pdev->dev);
--	udelay(1);
--
- 	kfree(dd);
- 	dd = NULL;
- 
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0007-am33x-Create-driver-for-AES-crypto-module.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0007-am33x-Create-driver-for-AES-crypto-module.patch
deleted file mode 100644
index 85173a5..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0007-am33x-Create-driver-for-AES-crypto-module.patch
+++ /dev/null
@@ -1,971 +0,0 @@
-From 501def5dd499457a38e6284f9780ba169284e530 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 15:17:13 -0500
-Subject: [PATCH 7/8] am33x: Create driver for AES crypto module
-
-This is the initial version of the driver for the AES crypto module for a GP version of OMAP4 derivative SOC's such as AM335x.
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- drivers/crypto/omap4-aes.c |  950 ++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 950 insertions(+), 0 deletions(-)
- create mode 100755 drivers/crypto/omap4-aes.c
-
-diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
-new file mode 100755
-index 0000000..f0b3fe2
---- /dev/null
-+++ b/drivers/crypto/omap4-aes.c
-@@ -0,0 +1,950 @@
-+/*
-+ * Cryptographic API.
-+ *
-+ * Support for OMAP AES HW acceleration.
-+ *
-+ * Copyright (c) 2010 Nokia Corporation
-+ * Author: Dmitry Kasatkin <dmitry.kasatkin at nokia.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ *
-+ */
-+/*
-+ * Copyright © 2011 Texas Instruments Incorporated
-+ * Author: Herman Schuurman
-+ * Change: July 2011 - Adapted the omap-aes.c driver to support Netra
-+ *	implementation of AES hardware accelerator.
-+ */
-+/*
-+ * Copyright © 2011 Texas Instruments Incorporated
-+ * Author: Greg Turner
-+ * Change: November 2011 - Adapted for AM33x support HW accelerator.
-+ */
-+
-+//#define	DEBUG
-+
-+#define pr_fmt(fmt) "%s: " fmt, __func__
-+
-+#include <linux/err.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/errno.h>
-+#include <linux/kernel.h>
-+#include <linux/clk.h>
-+#include <linux/platform_device.h>
-+#include <linux/scatterlist.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/io.h>
-+#include <linux/crypto.h>
-+#include <linux/interrupt.h>
-+#include <crypto/scatterwalk.h>
-+#include <crypto/aes.h>
-+
-+#include <plat/cpu.h>
-+#include <plat/dma.h>
-+#include <mach/edma.h>
-+#include <mach/hardware.h>
-+#include "omap4.h"
-+
-+#define DEFAULT_TIMEOUT		(5*HZ)
-+
-+#define FLAGS_MODE_MASK		0x000f
-+#define FLAGS_ENCRYPT		BIT(0)
-+#define FLAGS_CBC		BIT(1)
-+#define	FLAGS_CTR		BIT(2)
-+#define FLAGS_GIV		BIT(3)
-+
-+#define FLAGS_INIT		BIT(4)
-+#define FLAGS_FAST		BIT(5)
-+#define FLAGS_BUSY		BIT(6)
-+
-+struct omap4_aes_ctx {
-+	struct omap4_aes_dev *dd;
-+
-+	int		keylen;
-+	u32		key[AES_KEYSIZE_256 / sizeof(u32)];
-+	unsigned long	flags;
-+};
-+
-+struct omap4_aes_reqctx {
-+	unsigned long mode;
-+};
-+
-+#define AM33X_AES_QUEUE_LENGTH	1
-+#define AM33X_AES_CACHE_SIZE	0
-+
-+struct omap4_aes_dev {
-+	struct list_head		list;
-+	unsigned long			phys_base;
-+	void __iomem			*io_base;
-+	struct clk			*iclk;
-+	struct omap4_aes_ctx		*ctx;
-+	struct device			*dev;
-+	unsigned long			flags;
-+	int				err;
-+
-+	spinlock_t			lock;
-+	struct crypto_queue		queue;
-+
-+	struct tasklet_struct		done_task;
-+	struct tasklet_struct		queue_task;
-+
-+	struct ablkcipher_request	*req;
-+	size_t				total;
-+	struct scatterlist		*in_sg;
-+	size_t				in_offset;
-+	struct scatterlist		*out_sg;
-+	size_t				out_offset;
-+
-+	size_t				buflen;
-+	void				*buf_in;
-+	size_t				dma_size;
-+	int				dma_in;
-+	int				dma_lch_in;
-+	dma_addr_t			dma_addr_in;
-+	void				*buf_out;
-+	int				dma_out;
-+	int				dma_lch_out;
-+	dma_addr_t			dma_addr_out;
-+};
-+
-+/* keep registered devices data here */
-+static LIST_HEAD(dev_list);
-+static DEFINE_SPINLOCK(list_lock);
-+
-+static inline u32 omap4_aes_read(struct omap4_aes_dev *dd, u32 offset)
-+{
-+	return __raw_readl(dd->io_base + offset);
-+}
-+
-+static inline void omap4_aes_write(struct omap4_aes_dev *dd, u32 offset,
-+				  u32 value)
-+{
-+	__raw_writel(value, dd->io_base + offset);
-+}
-+
-+static inline void omap4_aes_write_mask(struct omap4_aes_dev *dd, u32 offset,
-+				       u32 value, u32 mask)
-+{
-+	u32 val;
-+
-+	val = omap4_aes_read(dd, offset);
-+	val &= ~mask;
-+	val |= value;
-+	omap4_aes_write(dd, offset, val);
-+}
-+
-+static void omap4_aes_write_n(struct omap4_aes_dev *dd, u32 offset,
-+			     u32 *value, int count)
-+{
-+	for (; count--; value++, offset += 4)
-+		omap4_aes_write(dd, offset, *value);
-+}
-+
-+static int omap4_aes_hw_init(struct omap4_aes_dev *dd)
-+{
-+	/*
-+	 * clocks are enabled when request starts and disabled when finished.
-+	 * It may be long delays between requests.
-+	 * Device might go to off mode to save power.
-+	 */
-+	clk_enable(dd->iclk);
-+	omap4_aes_write(dd, AES_REG_SYSCFG, 0);
-+
-+	if (!(dd->flags & FLAGS_INIT)) {
-+		dd->flags |= FLAGS_INIT;
-+		dd->err = 0;
-+	}
-+
-+	return 0;
-+}
-+
-+static int omap4_aes_write_ctrl(struct omap4_aes_dev *dd)
-+{
-+	unsigned int key32;
-+	int i, err;
-+	u32 val, mask;
-+
-+	err = omap4_aes_hw_init(dd);
-+	if (err)
-+		return err;
-+
-+	pr_debug("Set key\n");
-+	key32 = dd->ctx->keylen / sizeof(u32);
-+
-+	/* set a key */
-+	for (i = 0; i < key32; i++) {
-+		omap4_aes_write(dd, AES_REG_KEY1(i),
-+			       __le32_to_cpu(dd->ctx->key[i]));
-+	}
-+
-+	if ((dd->flags & (FLAGS_CBC | FLAGS_CTR)) && dd->req->info)
-+		omap4_aes_write_n(dd, AES_REG_IV(0), dd->req->info, 4);
-+
-+	val = FLD_VAL(((dd->ctx->keylen >> 3) - 1), 4, 3);
-+	if (dd->flags & FLAGS_CBC)
-+		val |= AES_REG_CTRL_CBC;
-+	else if (dd->flags & FLAGS_CTR)
-+		val |= AES_REG_CTRL_CTR | AES_REG_CTRL_CTR_WIDTH_32;
-+	if (dd->flags & FLAGS_ENCRYPT)
-+		val |= AES_REG_CTRL_DIRECTION;
-+
-+	mask = AES_REG_CTRL_CBC | AES_REG_CTRL_CTR | AES_REG_CTRL_DIRECTION |
-+		AES_REG_CTRL_KEY_SIZE_MASK | AES_REG_CTRL_CTR_WIDTH_MASK;
-+
-+	omap4_aes_write_mask(dd, AES_REG_CTRL, val, mask);
-+
-+	return 0;
-+}
-+
-+static struct omap4_aes_dev *omap4_aes_find_dev(struct omap4_aes_ctx *ctx)
-+{
-+	struct omap4_aes_dev *dd = NULL, *tmp;
-+
-+	spin_lock_bh(&list_lock);
-+	if (!ctx->dd) {
-+		list_for_each_entry(tmp, &dev_list, list) {
-+			/* FIXME: take fist available aes core */
-+			dd = tmp;
-+			break;
-+		}
-+		ctx->dd = dd;
-+	} else {
-+		/* already found before */
-+		dd = ctx->dd;
-+	}
-+	spin_unlock_bh(&list_lock);
-+
-+	return dd;
-+}
-+
-+static void omap4_aes_dma_callback(unsigned int lch, u16 ch_status, void *data)
-+{
-+	struct omap4_aes_dev *dd = data;
-+
-+	edma_stop(lch);
-+
-+	if (ch_status != DMA_COMPLETE) {
-+		pr_err("omap4-aes DMA error status: 0x%hx\n", ch_status);
-+		dd->err = -EIO;
-+		dd->flags &= ~FLAGS_INIT; /* request to re-initialize */
-+	} else if (lch == dd->dma_lch_in) {
-+		return;
-+	}
-+
-+	/* dma_lch_out - completed */
-+	tasklet_schedule(&dd->done_task);
-+}
-+
-+static int omap4_aes_dma_init(struct omap4_aes_dev *dd)
-+{
-+	int err = -ENOMEM;
-+
-+	dd->dma_lch_out = -1;
-+	dd->dma_lch_in = -1;
-+
-+	dd->buf_in = (void *)__get_free_pages(GFP_KERNEL, AM33X_AES_CACHE_SIZE);
-+	dd->buf_out = (void *)__get_free_pages(GFP_KERNEL, AM33X_AES_CACHE_SIZE);
-+	dd->buflen = PAGE_SIZE << AM33X_AES_CACHE_SIZE;
-+	dd->buflen &= ~(AES_BLOCK_SIZE - 1);
-+
-+	if (!dd->buf_in || !dd->buf_out) {
-+		dev_err(dd->dev, "unable to alloc pages.\n");
-+		goto err_alloc;
-+	}
-+
-+	/* MAP here */
-+	dd->dma_addr_in = dma_map_single(dd->dev, dd->buf_in, dd->buflen,
-+					 DMA_TO_DEVICE);
-+	if (dma_mapping_error(dd->dev, dd->dma_addr_in)) {
-+		dev_err(dd->dev, "dma %d bytes error\n", dd->buflen);
-+		err = -EINVAL;
-+		goto err_map_in;
-+	}
-+
-+	dd->dma_addr_out = dma_map_single(dd->dev, dd->buf_out, dd->buflen,
-+					  DMA_FROM_DEVICE);
-+	if (dma_mapping_error(dd->dev, dd->dma_addr_out)) {
-+		dev_err(dd->dev, "dma %d bytes error\n", dd->buflen);
-+		err = -EINVAL;
-+		goto err_map_out;
-+	}
-+
-+	dd->dma_lch_in = edma_alloc_channel(dd->dma_in, omap4_aes_dma_callback,
-+					    dd, EVENTQ_DEFAULT);
-+
-+	if (dd->dma_lch_in < 0) {
-+		dev_err(dd->dev, "Unable to request DMA channel\n");
-+		goto err_dma_in;
-+	}
-+
-+	dd->dma_lch_out = edma_alloc_channel(dd->dma_out, omap4_aes_dma_callback, dd, EVENTQ_2);
-+
-+	if (dd->dma_lch_out < 0) {
-+		dev_err(dd->dev, "Unable to request DMA channel\n");
-+		goto err_dma_out;
-+	}
-+
-+	return 0;
-+
-+err_dma_out:
-+	edma_free_channel(dd->dma_lch_in);
-+err_dma_in:
-+	dma_unmap_single(dd->dev, dd->dma_addr_out, dd->buflen,
-+			 DMA_FROM_DEVICE);
-+err_map_out:
-+	dma_unmap_single(dd->dev, dd->dma_addr_in, dd->buflen, DMA_TO_DEVICE);
-+err_map_in:
-+	free_pages((unsigned long)dd->buf_out, AM33X_AES_CACHE_SIZE);
-+	free_pages((unsigned long)dd->buf_in, AM33X_AES_CACHE_SIZE);
-+err_alloc:
-+	if (err)
-+		pr_err("error: %d\n", err);
-+	return err;
-+}
-+
-+static void omap4_aes_dma_cleanup(struct omap4_aes_dev *dd)
-+{
-+	edma_free_channel(dd->dma_lch_out);
-+	edma_free_channel(dd->dma_lch_in);
-+	dma_unmap_single(dd->dev, dd->dma_addr_out, dd->buflen,
-+			 DMA_FROM_DEVICE);
-+	dma_unmap_single(dd->dev, dd->dma_addr_in, dd->buflen, DMA_TO_DEVICE);
-+	free_pages((unsigned long)dd->buf_out, AM33X_AES_CACHE_SIZE);
-+	free_pages((unsigned long)dd->buf_in, AM33X_AES_CACHE_SIZE);
-+}
-+
-+static void sg_copy_buf(void *buf, struct scatterlist *sg,
-+			unsigned int start, unsigned int nbytes, int out)
-+{
-+	struct scatter_walk walk;
-+
-+	if (!nbytes)
-+		return;
-+
-+	scatterwalk_start(&walk, sg);
-+	scatterwalk_advance(&walk, start);
-+	scatterwalk_copychunks(buf, &walk, nbytes, out);
-+	scatterwalk_done(&walk, out, 0);
-+}
-+
-+static int sg_copy(struct scatterlist **sg, size_t *offset, void *buf,
-+		   size_t buflen, size_t total, int out)
-+{
-+	unsigned int count, off = 0;
-+
-+	while (buflen && total) {
-+		count = min((*sg)->length - *offset, total);
-+		count = min(count, buflen);
-+
-+		if (!count)
-+			return off;
-+
-+		/*
-+		 * buflen and total are AES_BLOCK_SIZE size aligned,
-+		 * so count should be also aligned
-+		 */
-+
-+		sg_copy_buf(buf + off, *sg, *offset, count, out);
-+
-+		off += count;
-+		buflen -= count;
-+		*offset += count;
-+		total -= count;
-+
-+		if (*offset == (*sg)->length) {
-+			*sg = sg_next(*sg);
-+			if (*sg)
-+				*offset = 0;
-+			else
-+				total = 0;
-+		}
-+	}
-+
-+	return off;
-+}
-+
-+static int omap4_aes_crypt_dma(struct crypto_tfm *tfm, dma_addr_t dma_addr_in,
-+			      dma_addr_t dma_addr_out, int length)
-+{
-+	struct omap4_aes_ctx *ctx = crypto_tfm_ctx(tfm);
-+	struct omap4_aes_dev *dd = ctx->dd;
-+	int nblocks;
-+	struct edmacc_param p_ram;
-+
-+	pr_debug("len: %d\n", length);
-+
-+	dd->dma_size = length;
-+
-+	if (!(dd->flags & FLAGS_FAST))
-+		dma_sync_single_for_device(dd->dev, dma_addr_in, length,
-+					   DMA_TO_DEVICE);
-+
-+	nblocks = DIV_ROUND_UP(length, AES_BLOCK_SIZE);
-+
-+	/* EDMA IN */
-+	p_ram.opt	   = TCINTEN |
-+		EDMA_TCC(EDMA_CHAN_SLOT(dd->dma_lch_in));
-+	p_ram.src	   = dma_addr_in;
-+	p_ram.a_b_cnt      = AES_BLOCK_SIZE | nblocks << 16;
-+	p_ram.dst          = dd->phys_base + AES_REG_DATA;
-+	p_ram.src_dst_bidx = AES_BLOCK_SIZE;
-+	p_ram.link_bcntrld = 1 << 16 | 0xFFFF;
-+	p_ram.src_dst_cidx = 0;
-+	p_ram.ccnt         = 1;
-+	edma_write_slot(dd->dma_lch_in, &p_ram);
-+
-+	/* EDMA OUT */
-+	p_ram.opt	   = TCINTEN |
-+		EDMA_TCC(EDMA_CHAN_SLOT(dd->dma_lch_out));
-+	p_ram.src	   = dd->phys_base + AES_REG_DATA;
-+	p_ram.dst          = dma_addr_out;
-+	p_ram.src_dst_bidx = AES_BLOCK_SIZE << 16;
-+	edma_write_slot(dd->dma_lch_out, &p_ram);
-+
-+	edma_start(dd->dma_lch_in);
-+	edma_start(dd->dma_lch_out);
-+
-+	/* write data length info out */
-+	omap4_aes_write(dd, AES_REG_LENGTH_N(0), length);
-+	omap4_aes_write(dd, AES_REG_LENGTH_N(1), 0);
-+	/* start DMA or disable idle mode */
-+	omap4_aes_write_mask(dd, AES_REG_SYSCFG,
-+			   AES_REG_SYSCFG_DREQ_DATA_OUT_EN | AES_REG_SYSCFG_DREQ_DATA_IN_EN,
-+			   AES_REG_SYSCFG_DREQ_MASK);
-+
-+	return 0;
-+}
-+
-+static int omap4_aes_crypt_dma_start(struct omap4_aes_dev *dd)
-+{
-+	struct crypto_tfm *tfm = crypto_ablkcipher_tfm(
-+					crypto_ablkcipher_reqtfm(dd->req));
-+	int err, fast = 0, in, out;
-+	size_t count;
-+	dma_addr_t addr_in, addr_out;
-+
-+	pr_debug("total: %d\n", dd->total);
-+
-+	if (sg_is_last(dd->in_sg) && sg_is_last(dd->out_sg)) {
-+		/* check for alignment */
-+		in = IS_ALIGNED((u32)dd->in_sg->offset, sizeof(u32));
-+		out = IS_ALIGNED((u32)dd->out_sg->offset, sizeof(u32));
-+
-+		fast = in && out;
-+	}
-+
-+	if (fast)  {
-+		count = min(dd->total, sg_dma_len(dd->in_sg));
-+		count = min(count, sg_dma_len(dd->out_sg));
-+
-+		if (count != dd->total) {
-+			pr_err("request length != buffer length\n");
-+			return -EINVAL;
-+		}
-+
-+		pr_debug("fast\n");
-+
-+		err = dma_map_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE);
-+		if (!err) {
-+			dev_err(dd->dev, "dma_map_sg() error\n");
-+			return -EINVAL;
-+		}
-+
-+		err = dma_map_sg(dd->dev, dd->out_sg, 1, DMA_FROM_DEVICE);
-+		if (!err) {
-+			dev_err(dd->dev, "dma_map_sg() error\n");
-+			dma_unmap_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE);
-+			return -EINVAL;
-+		}
-+
-+		addr_in = sg_dma_address(dd->in_sg);
-+		addr_out = sg_dma_address(dd->out_sg);
-+
-+		dd->flags |= FLAGS_FAST;
-+
-+	} else {
-+		/* use cache buffers */
-+		count = sg_copy(&dd->in_sg, &dd->in_offset, dd->buf_in,
-+				dd->buflen, dd->total, 0);
-+
-+		addr_in = dd->dma_addr_in;
-+		addr_out = dd->dma_addr_out;
-+
-+		dd->flags &= ~FLAGS_FAST;
-+
-+	}
-+
-+	dd->total -= count;
-+
-+	err = omap4_aes_crypt_dma(tfm, addr_in, addr_out, count);
-+	if (err) {
-+		dma_unmap_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE);
-+		dma_unmap_sg(dd->dev, dd->out_sg, 1, DMA_TO_DEVICE);
-+	}
-+
-+	return err;
-+}
-+
-+static void omap4_aes_finish_req(struct omap4_aes_dev *dd, int err)
-+{
-+	struct ablkcipher_request *req = dd->req;
-+
-+	pr_debug("err: %d\n", err);
-+
-+	clk_disable(dd->iclk);
-+	dd->flags &= ~FLAGS_BUSY;
-+
-+	req->base.complete(&req->base, err);
-+}
-+
-+static int omap4_aes_crypt_dma_stop(struct omap4_aes_dev *dd)
-+{
-+	int err = 0;
-+	size_t count;
-+
-+	pr_debug("total: %d\n", dd->total);
-+
-+	omap4_aes_write_mask(dd, AES_REG_SYSCFG, 0, AES_REG_SYSCFG_DREQ_MASK);
-+
-+	edma_stop(dd->dma_lch_in);
-+	edma_clean_channel(dd->dma_lch_in);
-+	edma_stop(dd->dma_lch_out);
-+	edma_clean_channel(dd->dma_lch_out);
-+
-+	if (dd->flags & FLAGS_FAST) {
-+		dma_unmap_sg(dd->dev, dd->out_sg, 1, DMA_FROM_DEVICE);
-+		dma_unmap_sg(dd->dev, dd->in_sg, 1, DMA_TO_DEVICE);
-+	} else {
-+		dma_sync_single_for_device(dd->dev, dd->dma_addr_out,
-+					   dd->dma_size, DMA_FROM_DEVICE);
-+
-+		/* copy data */
-+		count = sg_copy(&dd->out_sg, &dd->out_offset, dd->buf_out,
-+				dd->buflen, dd->dma_size, 1);
-+		if (count != dd->dma_size) {
-+			err = -EINVAL;
-+			pr_err("not all data converted: %u\n", count);
-+		}
-+	}
-+
-+	return err;
-+}
-+
-+static int omap4_aes_handle_queue(struct omap4_aes_dev *dd,
-+				 struct ablkcipher_request *req)
-+{
-+	struct crypto_async_request *async_req, *backlog;
-+	struct omap4_aes_ctx *ctx;
-+	struct omap4_aes_reqctx *rctx;
-+	unsigned long flags;
-+	int err, ret = 0;
-+
-+	spin_lock_irqsave(&dd->lock, flags);
-+	if (req)
-+		ret = ablkcipher_enqueue_request(&dd->queue, req);
-+
-+	if (dd->flags & FLAGS_BUSY) {
-+		spin_unlock_irqrestore(&dd->lock, flags);
-+		return ret;
-+	}
-+	backlog = crypto_get_backlog(&dd->queue);
-+	async_req = crypto_dequeue_request(&dd->queue);
-+	if (async_req)
-+		dd->flags |= FLAGS_BUSY;
-+	spin_unlock_irqrestore(&dd->lock, flags);
-+
-+	if (!async_req)
-+		return ret;
-+
-+	if (backlog)
-+		backlog->complete(backlog, -EINPROGRESS);
-+
-+	req = ablkcipher_request_cast(async_req);
-+
-+	/* assign new request to device */
-+	dd->req = req;
-+	dd->total = req->nbytes;
-+	dd->in_offset = 0;
-+	dd->in_sg = req->src;
-+	dd->out_offset = 0;
-+	dd->out_sg = req->dst;
-+
-+	rctx = ablkcipher_request_ctx(req);
-+	ctx = crypto_ablkcipher_ctx(crypto_ablkcipher_reqtfm(req));
-+	rctx->mode &= FLAGS_MODE_MASK;
-+	dd->flags = (dd->flags & ~FLAGS_MODE_MASK) | rctx->mode;
-+
-+	dd->ctx = ctx;
-+	ctx->dd = dd;
-+
-+	err = omap4_aes_write_ctrl(dd);
-+	if (!err)
-+		err = omap4_aes_crypt_dma_start(dd);
-+	if (err) {
-+		/* aes_task will not finish it, so do it here */
-+		omap4_aes_finish_req(dd, err);
-+		tasklet_schedule(&dd->queue_task);
-+	}
-+
-+	return ret; /* return ret, which is enqueue return value */
-+}
-+
-+static void omap4_aes_done_task(unsigned long data)
-+{
-+	struct omap4_aes_dev *dd = (struct omap4_aes_dev *)data;
-+	int err;
-+
-+	pr_debug("enter\n");
-+
-+	err = omap4_aes_crypt_dma_stop(dd);
-+
-+	err = dd->err ? : err;
-+
-+	if (dd->total && !err) {
-+		err = omap4_aes_crypt_dma_start(dd);
-+		if (!err)
-+			return; /* DMA started. Not finishing. */
-+	}
-+
-+	omap4_aes_finish_req(dd, err);
-+	omap4_aes_handle_queue(dd, NULL);
-+
-+	pr_debug("exit\n");
-+}
-+
-+static void omap4_aes_queue_task(unsigned long data)
-+{
-+	struct omap4_aes_dev *dd = (struct omap4_aes_dev *)data;
-+
-+	omap4_aes_handle_queue(dd, NULL);
-+}
-+
-+static int omap4_aes_crypt(struct ablkcipher_request *req, unsigned long mode)
-+{
-+	struct omap4_aes_ctx *ctx = crypto_ablkcipher_ctx(
-+		crypto_ablkcipher_reqtfm(req));
-+	struct omap4_aes_reqctx *rctx = ablkcipher_request_ctx(req);
-+	struct omap4_aes_dev *dd;
-+
-+	pr_debug("nbytes: %d, enc: %d, cbc: %d, ctr: %d\n", req->nbytes,
-+		 !!(mode & FLAGS_ENCRYPT),
-+		 !!(mode & FLAGS_CBC),
-+		 !!(mode & FLAGS_CTR));
-+
-+	if (!IS_ALIGNED(req->nbytes, AES_BLOCK_SIZE)) {
-+		pr_err("request size is not exact amount of AES blocks\n");
-+		return -EINVAL;
-+	}
-+
-+	dd = omap4_aes_find_dev(ctx);
-+	if (!dd)
-+		return -ENODEV;
-+
-+	rctx->mode = mode;
-+
-+	return omap4_aes_handle_queue(dd, req);
-+}
-+
-+/* ********************** ALG API ************************************ */
-+
-+static int omap4_aes_setkey(struct crypto_ablkcipher *tfm, const u8 *key,
-+			   unsigned int keylen)
-+{
-+	struct omap4_aes_ctx *ctx = crypto_ablkcipher_ctx(tfm);
-+
-+	if (keylen != AES_KEYSIZE_128 && keylen != AES_KEYSIZE_192 &&
-+	    keylen != AES_KEYSIZE_256)
-+		return -EINVAL;
-+
-+	pr_debug("enter, keylen: %d\n", keylen);
-+
-+	memcpy(ctx->key, key, keylen);
-+	ctx->keylen = keylen;
-+
-+	return 0;
-+}
-+
-+static int omap4_aes_ecb_encrypt(struct ablkcipher_request *req)
-+{
-+	return omap4_aes_crypt(req, FLAGS_ENCRYPT);
-+}
-+
-+static int omap4_aes_ecb_decrypt(struct ablkcipher_request *req)
-+{
-+	return omap4_aes_crypt(req, 0);
-+}
-+
-+static int omap4_aes_cbc_encrypt(struct ablkcipher_request *req)
-+{
-+	return omap4_aes_crypt(req, FLAGS_ENCRYPT | FLAGS_CBC);
-+}
-+
-+static int omap4_aes_cbc_decrypt(struct ablkcipher_request *req)
-+{
-+	return omap4_aes_crypt(req, FLAGS_CBC);
-+}
-+
-+static int omap4_aes_ctr_encrypt(struct ablkcipher_request *req)
-+{
-+	return omap4_aes_crypt(req, FLAGS_ENCRYPT | FLAGS_CTR);
-+}
-+
-+static int omap4_aes_ctr_decrypt(struct ablkcipher_request *req)
-+{
-+	return omap4_aes_crypt(req, FLAGS_CTR);
-+}
-+
-+static int omap4_aes_cra_init(struct crypto_tfm *tfm)
-+{
-+	pr_debug("enter\n");
-+
-+	tfm->crt_ablkcipher.reqsize = sizeof(struct omap4_aes_reqctx);
-+
-+	return 0;
-+}
-+
-+static void omap4_aes_cra_exit(struct crypto_tfm *tfm)
-+{
-+	pr_debug("enter\n");
-+}
-+
-+/* ********************** ALGS ************************************ */
-+
-+static struct crypto_alg algs[] = {
-+	{
-+		.cra_name		= "ecb(aes)",
-+		.cra_driver_name	= "ecb-aes-omap4",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC,
-+		.cra_blocksize		= AES_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_aes_ctx),
-+		.cra_alignmask		= 0,
-+		.cra_type		= &crypto_ablkcipher_type,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_aes_cra_init,
-+		.cra_exit		= omap4_aes_cra_exit,
-+		.cra_u.ablkcipher = {
-+			.min_keysize	= AES_MIN_KEY_SIZE,
-+			.max_keysize	= AES_MAX_KEY_SIZE,
-+			.setkey		= omap4_aes_setkey,
-+			.encrypt	= omap4_aes_ecb_encrypt,
-+			.decrypt	= omap4_aes_ecb_decrypt,
-+		}
-+	},
-+	{
-+		.cra_name		= "cbc(aes)",
-+		.cra_driver_name	= "cbc-aes-omap4",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC,
-+		.cra_blocksize		= AES_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_aes_ctx),
-+		.cra_alignmask		= 0,
-+		.cra_type		= &crypto_ablkcipher_type,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_aes_cra_init,
-+		.cra_exit		= omap4_aes_cra_exit,
-+		.cra_u.ablkcipher = {
-+			.min_keysize	= AES_MIN_KEY_SIZE,
-+			.max_keysize	= AES_MAX_KEY_SIZE,
-+			.geniv		= "eseqiv",
-+			.ivsize		= AES_BLOCK_SIZE,
-+			.setkey		= omap4_aes_setkey,
-+			.encrypt	= omap4_aes_cbc_encrypt,
-+			.decrypt	= omap4_aes_cbc_decrypt,
-+
-+		}
-+	},
-+	{
-+		.cra_name		= "ctr(aes)",
-+		.cra_driver_name	= "ctr-aes-omap4",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_ABLKCIPHER | CRYPTO_ALG_ASYNC,
-+		.cra_blocksize		= AES_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_aes_ctx),
-+		.cra_alignmask		= 0,
-+		.cra_type		= &crypto_ablkcipher_type,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_aes_cra_init,
-+		.cra_exit		= omap4_aes_cra_exit,
-+		.cra_u.ablkcipher = {
-+			.min_keysize	= AES_MIN_KEY_SIZE,
-+			.max_keysize	= AES_MAX_KEY_SIZE,
-+			.geniv		= "eseqiv",
-+			.ivsize		= AES_BLOCK_SIZE,
-+			.setkey		= omap4_aes_setkey,
-+			.encrypt	= omap4_aes_ctr_encrypt,
-+			.decrypt	= omap4_aes_ctr_decrypt,
-+		}
-+	}
-+};
-+
-+static int omap4_aes_probe(struct platform_device *pdev)
-+{
-+	struct device *dev = &pdev->dev;
-+	struct omap4_aes_dev *dd;
-+	struct resource *res;
-+	int err = -ENOMEM, i, j;
-+	u32 reg;
-+
-+	dd = kzalloc(sizeof(struct omap4_aes_dev), GFP_KERNEL);
-+	if (dd == NULL) {
-+		dev_err(dev, "unable to alloc data struct.\n");
-+		goto err_data;
-+	}
-+	dd->dev = dev;
-+	platform_set_drvdata(pdev, dd);
-+
-+	spin_lock_init(&dd->lock);
-+	crypto_init_queue(&dd->queue, AM33X_AES_QUEUE_LENGTH);
-+
-+	/* Get the base address */
-+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!res) {
-+		dev_err(dev, "invalid resource type\n");
-+		err = -ENODEV;
-+		goto err_res;
-+	}
-+	dd->phys_base = res->start;
-+
-+	/* Get the DMA */
-+	res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-+	if (!res)
-+		dev_info(dev, "no DMA info\n");
-+	else
-+		dd->dma_out = res->start;
-+
-+	/* Get the DMA */
-+	res = platform_get_resource(pdev, IORESOURCE_DMA, 1);
-+	if (!res)
-+		dev_info(dev, "no DMA info\n");
-+	else
-+		dd->dma_in = res->start;
-+
-+	/* Initializing the clock */
-+	dd->iclk = clk_get(dev, "aes0_fck");
-+	if (IS_ERR(dd->iclk)) {
-+		dev_err(dev, "clock initialization failed.\n");
-+		err = PTR_ERR(dd->iclk);
-+		goto err_res;
-+	}
-+
-+	dd->io_base = ioremap(dd->phys_base, SZ_4K);
-+	if (!dd->io_base) {
-+		dev_err(dev, "can't ioremap\n");
-+		err = -ENOMEM;
-+		goto err_io;
-+	}
-+
-+	omap4_aes_hw_init(dd);
-+	reg = omap4_aes_read(dd, AES_REG_REV);
-+	clk_disable(dd->iclk);
-+	dev_info(dev, "AM33X AES hw accel rev: %u.%02u\n",
-+		 ((reg & AES_REG_REV_X_MAJOR_MASK) >> 8),
-+		 (reg & AES_REG_REV_Y_MINOR_MASK));
-+
-+	tasklet_init(&dd->done_task, omap4_aes_done_task, (unsigned long)dd);
-+	tasklet_init(&dd->queue_task, omap4_aes_queue_task, (unsigned long)dd);
-+
-+	err = omap4_aes_dma_init(dd);
-+	if (err)
-+		goto err_dma;
-+
-+	INIT_LIST_HEAD(&dd->list);
-+	spin_lock(&list_lock);
-+	list_add_tail(&dd->list, &dev_list);
-+	spin_unlock(&list_lock);
-+
-+	for (i = 0; i < ARRAY_SIZE(algs); i++) {
-+		pr_debug("reg alg: %s\n", algs[i].cra_name);
-+		INIT_LIST_HEAD(&algs[i].cra_list);
-+		err = crypto_register_alg(&algs[i]);
-+		if (err)
-+			goto err_algs;
-+	}
-+
-+	pr_info("probe() done\n");
-+
-+	return 0;
-+
-+err_algs:
-+	for (j = 0; j < i; j++)
-+		crypto_unregister_alg(&algs[j]);
-+	omap4_aes_dma_cleanup(dd);
-+err_dma:
-+	tasklet_kill(&dd->done_task);
-+	tasklet_kill(&dd->queue_task);
-+	iounmap(dd->io_base);
-+
-+err_io:
-+	clk_put(dd->iclk);
-+err_res:
-+	kfree(dd);
-+	dd = NULL;
-+err_data:
-+	dev_err(dev, "initialization failed.\n");
-+	return err;
-+}
-+
-+static int omap4_aes_remove(struct platform_device *pdev)
-+{
-+	struct omap4_aes_dev *dd = platform_get_drvdata(pdev);
-+	int i;
-+
-+	if (!dd)
-+		return -ENODEV;
-+
-+	spin_lock(&list_lock);
-+	list_del(&dd->list);
-+	spin_unlock(&list_lock);
-+
-+	for (i = 0; i < ARRAY_SIZE(algs); i++)
-+		crypto_unregister_alg(&algs[i]);
-+
-+	tasklet_kill(&dd->done_task);
-+	tasklet_kill(&dd->queue_task);
-+	omap4_aes_dma_cleanup(dd);
-+	iounmap(dd->io_base);
-+	clk_put(dd->iclk);
-+	kfree(dd);
-+	dd = NULL;
-+
-+	return 0;
-+}
-+
-+static struct platform_driver omap4_aes_driver = {
-+	.probe	= omap4_aes_probe,
-+	.remove	= omap4_aes_remove,
-+	.driver	= {
-+		.name	= "omap4-aes",
-+		.owner	= THIS_MODULE,
-+	},
-+};
-+
-+static int __init omap4_aes_mod_init(void)
-+{
-+	pr_info("loading AM33X AES driver\n");
-+
-+	/* This only works on a GP device */
-+	if (!cpu_is_am33xx() || omap_type() != OMAP2_DEVICE_TYPE_GP) {
-+		pr_err("Unsupported cpu\n");
-+		return -ENODEV;
-+	}
-+	return  platform_driver_register(&omap4_aes_driver);
-+}
-+
-+static void __exit omap4_aes_mod_exit(void)
-+{
-+	pr_info("unloading AM33X AES driver\n");
-+
-+	platform_driver_unregister(&omap4_aes_driver);
-+}
-+
-+module_init(omap4_aes_mod_init);
-+module_exit(omap4_aes_mod_exit);
-+
-+MODULE_DESCRIPTION("AM33X AES acceleration support.");
-+MODULE_LICENSE("GPL v2");
-+MODULE_AUTHOR("Herman Schuurman");
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0007-crypto-omap4-aes-Add-suspend-resume-PM-support.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0007-crypto-omap4-aes-Add-suspend-resume-PM-support.patch
deleted file mode 100644
index cce7691..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0007-crypto-omap4-aes-Add-suspend-resume-PM-support.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 90b8eaec8de51fab15872f8737a5148b99f80282 Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Wed, 12 Dec 2012 00:46:52 -0700
-Subject: [PATCH 07/10] crypto: omap4-aes: Add suspend/resume PM support
-
-Add suspend/resume PM support to the omap4-aes driver
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/crypto/omap4-aes.c | 13 ++++---------
- 1 file changed, 4 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
-index a957709..941b8a1 100644
---- a/drivers/crypto/omap4-aes.c
-+++ b/drivers/crypto/omap4-aes.c
-@@ -911,24 +911,19 @@ static int omap4_aes_remove(struct platform_device *pdev)
- 
- static int omap4_aes_suspend(struct device *dev)
- {
--	pr_debug("#### Crypto: Suspend call ####\n");
--
-+	pm_runtime_put_sync(dev);
- 	return 0;
- }
- 
- 
- static int omap4_aes_resume(struct device *dev)
- {
--	pr_debug("#### Crypto: resume call ####\n");
--
-+	pm_runtime_get_sync(dev);
- 	return 0;
- }
- 
- static struct dev_pm_ops omap4_aes_dev_pm_ops = {
--	.suspend	= omap4_aes_suspend,
--	.resume		= omap4_aes_resume,
--	.runtime_suspend = omap4_aes_suspend,
--	.runtime_resume = omap4_aes_resume,
-+	SET_SYSTEM_SLEEP_PM_OPS(omap4_aes_suspend, omap4_aes_resume)
- };
- 
- static struct platform_driver omap4_aes_driver = {
-@@ -937,7 +932,7 @@ static struct platform_driver omap4_aes_driver = {
- 	.driver	= {
- 		.name	= "omap4-aes",
- 		.owner	= THIS_MODULE,
--		.pm		= &omap4_aes_dev_pm_ops
-+		.pm	= &omap4_aes_dev_pm_ops
- 	},
- };
- 
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0008-am33x-Create-driver-for-SHA-MD5-crypto-module.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0008-am33x-Create-driver-for-SHA-MD5-crypto-module.patch
deleted file mode 100644
index 13c7e9e..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0008-am33x-Create-driver-for-SHA-MD5-crypto-module.patch
+++ /dev/null
@@ -1,1444 +0,0 @@
-From 31e5e24a1d713b1f8306050e6b6a640ec30b1848 Mon Sep 17 00:00:00 2001
-From: Greg Turner <gregturner at ti.com>
-Date: Thu, 17 May 2012 15:19:26 -0500
-Subject: [PATCH 8/8] am33x: Create driver for SHA/MD5 crypto module
-
-This is the initial version of the SHA/MD5 driver for OMAP4 derivative SOC's such as AM335x.
-
-Signed-off-by: Greg Turner <gregturner at ti.com>
----
- drivers/crypto/omap4-sham.c | 1423 +++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 1423 insertions(+), 0 deletions(-)
- create mode 100755 drivers/crypto/omap4-sham.c
-
-diff --git a/drivers/crypto/omap4-sham.c b/drivers/crypto/omap4-sham.c
-new file mode 100755
-index 0000000..79f6be9
---- /dev/null
-+++ b/drivers/crypto/omap4-sham.c
-@@ -0,0 +1,1423 @@
-+/*
-+ * Cryptographic API.
-+ *
-+ * Support for OMAP SHA1/MD5 HW acceleration.
-+ *
-+ * Copyright (c) 2010 Nokia Corporation
-+ * Author: Dmitry Kasatkin <dmitry.kasatkin at nokia.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as published
-+ * by the Free Software Foundation.
-+ *
-+ * Some ideas are from old omap-sha1-md5.c driver.
-+ */
-+/*
-+ * Copyright © 2011 Texas Instruments Incorporated
-+ * Author: Herman Schuurman
-+ * Change: July 2011 - Adapted the omap-sham.c driver to support Netra
-+ *	implementation of SHA/MD5 hardware accelerator.
-+ *	Dec 2011 - Updated with latest omap-sham.c driver changes.
-+ */
-+
-+//#define	DEBUG
-+
-+#define pr_fmt(fmt) "%s: " fmt, __func__
-+
-+#include <linux/err.h>
-+#include <linux/device.h>
-+#include <linux/module.h>
-+#include <linux/init.h>
-+#include <linux/errno.h>
-+#include <linux/interrupt.h>
-+#include <linux/kernel.h>
-+#include <linux/clk.h>
-+#include <linux/irq.h>
-+#include <linux/io.h>
-+#include <linux/platform_device.h>
-+#include <linux/scatterlist.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/delay.h>
-+#include <linux/crypto.h>
-+#include <linux/cryptohash.h>
-+#include <crypto/scatterwalk.h>
-+#include <crypto/algapi.h>
-+#include <crypto/sha.h>
-+#include <crypto/md5.h>
-+#include <crypto/hash.h>
-+#include <crypto/internal/hash.h>
-+
-+#include <mach/hardware.h>
-+#include <plat/cpu.h>
-+#include <plat/dma.h>
-+#include <mach/edma.h>
-+#include <mach/irqs.h>
-+#include "omap4.h"
-+
-+#define SHA2_MD5_BLOCK_SIZE		SHA1_BLOCK_SIZE
-+
-+#define DEFAULT_TIMEOUT_INTERVAL	HZ
-+
-+/* device flags */
-+#define FLAGS_BUSY		0
-+#define FLAGS_FINAL		1
-+#define FLAGS_DMA_ACTIVE	2
-+#define FLAGS_OUTPUT_READY	3 /* shared with context flags */
-+#define FLAGS_INIT		4
-+#define FLAGS_CPU		5 /* shared with context flags */
-+#define	FLAGS_DMA_READY		6 /* shared with context flags */
-+
-+/* context flags */
-+#define FLAGS_FINUP		16
-+#define FLAGS_SG		17
-+#define	FLAGS_MODE_SHIFT	18
-+#define	FLAGS_MODE_MASK		(SHA_REG_MODE_ALGO_MASK     << (FLAGS_MODE_SHIFT - 1))
-+#define	 FLAGS_MD5		(SHA_REG_MODE_ALGO_MD5_128  << (FLAGS_MODE_SHIFT - 1))
-+#define  FLAGS_SHA1		(SHA_REG_MODE_ALGO_SHA1_160 << (FLAGS_MODE_SHIFT - 1))
-+#define	 FLAGS_SHA224		(SHA_REG_MODE_ALGO_SHA2_224 << (FLAGS_MODE_SHIFT - 1))
-+#define	 FLAGS_SHA256		(SHA_REG_MODE_ALGO_SHA2_256 << (FLAGS_MODE_SHIFT - 1))
-+#define FLAGS_HMAC		20
-+#define FLAGS_ERROR		21
-+
-+#define OP_UPDATE		1
-+#define OP_FINAL		2
-+
-+#define AM33X_ALIGN_MASK	(sizeof(u32)-1)
-+#define AM33X_ALIGNED		__attribute__((aligned(sizeof(u32))))
-+
-+#define BUFLEN			PAGE_SIZE
-+
-+struct omap4_sham_dev;
-+
-+struct omap4_sham_reqctx {
-+	struct omap4_sham_dev	*dd;
-+	unsigned long		rflags;
-+	unsigned long		op;
-+
-+	u8			digest[SHA256_DIGEST_SIZE] AM33X_ALIGNED;
-+	size_t			digcnt; /* total digest byte count */
-+	size_t			bufcnt; /* bytes in buffer */
-+	size_t			buflen; /* buffer length */
-+	dma_addr_t		dma_addr;
-+
-+	/* walk state */
-+	struct scatterlist	*sg;
-+	unsigned int		offset;	/* offset in current sg */
-+	unsigned int		total;	/* total request */
-+
-+	u8			buffer[0] AM33X_ALIGNED;
-+};
-+
-+/* This structure holds the initial HMAC key value, and subsequently
-+ * the outer digest in the first 32 bytes.  The inner digest will be
-+ * kept within the request context to conform to hash only
-+ * computations.
-+ */
-+struct omap4_sham_hmac_ctx {
-+	struct crypto_shash	*shash;
-+	u8			keypad[SHA2_MD5_BLOCK_SIZE] AM33X_ALIGNED;
-+	u32			odigest[SHA256_DIGEST_SIZE / sizeof(u32)];
-+};
-+
-+struct omap4_sham_ctx {
-+	struct omap4_sham_dev	*dd;
-+
-+	unsigned long		cflags;
-+
-+	/* fallback stuff */
-+	struct crypto_shash	*fallback;
-+
-+	struct omap4_sham_hmac_ctx base[0];
-+};
-+
-+#define AM33X_SHAM_QUEUE_LENGTH	1
-+
-+struct omap4_sham_dev {
-+	struct list_head	list;
-+	unsigned long		phys_base;
-+	struct device		*dev;
-+	void __iomem		*io_base;
-+	int			irq;
-+	struct clk		*iclk;
-+	spinlock_t		lock;
-+	int			err;
-+	int			dma;
-+	int			dma_lch;
-+	struct tasklet_struct	done_task;
-+
-+	unsigned long		dflags;
-+	struct crypto_queue	queue;
-+	struct ahash_request	*req;
-+};
-+
-+struct omap4_sham_drv {
-+	struct list_head	dev_list;
-+	spinlock_t		lock;
-+	unsigned long		flags; /* superfluous ???? */
-+};
-+
-+static struct omap4_sham_drv sham = {
-+	.dev_list = LIST_HEAD_INIT(sham.dev_list),
-+	.lock = __SPIN_LOCK_UNLOCKED(sham.lock),
-+};
-+
-+static inline u32 omap4_sham_read(struct omap4_sham_dev *dd, u32 offset)
-+{
-+	return __raw_readl(dd->io_base + offset);
-+}
-+
-+static inline void omap4_sham_write(struct omap4_sham_dev *dd,
-+				  u32 offset, u32 value)
-+{
-+	__raw_writel(value, dd->io_base + offset);
-+}
-+
-+static inline void omap4_sham_write_mask(struct omap4_sham_dev *dd, u32 address,
-+				       u32 value, u32 mask)
-+{
-+	u32 val;
-+
-+	val = omap4_sham_read(dd, address);
-+	val &= ~mask;
-+	val |= value;
-+	omap4_sham_write(dd, address, val);
-+}
-+
-+static inline void omap4_sham_write_n(struct omap4_sham_dev *dd, u32 offset,
-+				    u32 *value, int count)
-+{
-+	for (; count--; value++, offset += 4)
-+		omap4_sham_write(dd, offset, *value);
-+}
-+
-+static inline int omap4_sham_wait(struct omap4_sham_dev *dd, u32 offset, u32 bit)
-+{
-+	unsigned long timeout = jiffies + DEFAULT_TIMEOUT_INTERVAL;
-+
-+	while (!(omap4_sham_read(dd, offset) & bit)) {
-+		if (time_is_before_jiffies(timeout))
-+			return -ETIMEDOUT;
-+	}
-+
-+	return 0;
-+}
-+
-+static void omap4_sham_copy_hash(struct ahash_request *req, int out)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	u32 *hash = (u32 *)ctx->digest;
-+	int i;
-+
-+	if (ctx->rflags & BIT(FLAGS_HMAC)) {
-+		struct crypto_ahash *tfm = crypto_ahash_reqtfm(ctx->dd->req);
-+		struct omap4_sham_ctx *tctx = crypto_ahash_ctx(tfm);
-+		struct omap4_sham_hmac_ctx *bctx = tctx->base;
-+
-+		for (i = 0; i < SHA256_DIGEST_SIZE / sizeof(u32); i++) {
-+			if (out)
-+				bctx->odigest[i] = omap4_sham_read(ctx->dd,
-+						SHA_REG_ODIGEST_N(i));
-+			else
-+				omap4_sham_write(ctx->dd,
-+					       SHA_REG_ODIGEST_N(i), bctx->odigest[i]);
-+		}
-+	}
-+
-+	/* Copy sha256 size to reduce code */
-+	for (i = 0; i < SHA256_DIGEST_SIZE / sizeof(u32); i++) {
-+		if (out)
-+			hash[i] = omap4_sham_read(ctx->dd,
-+						SHA_REG_IDIGEST_N(i));
-+		else
-+			omap4_sham_write(ctx->dd,
-+				       SHA_REG_IDIGEST_N(i), hash[i]);
-+	}
-+}
-+
-+static void omap4_sham_copy_ready_hash(struct ahash_request *req)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	u32 *in = (u32 *)ctx->digest;
-+	u32 *hash = (u32 *)req->result;
-+	int i, d;
-+
-+	if (!hash)
-+		return;
-+
-+	switch (ctx->rflags & FLAGS_MODE_MASK) {
-+	case FLAGS_MD5:
-+		d = MD5_DIGEST_SIZE / sizeof(u32);
-+		break;
-+	case FLAGS_SHA1:
-+		d = SHA1_DIGEST_SIZE / sizeof(u32);
-+		break;
-+	case FLAGS_SHA224:
-+		d = SHA224_DIGEST_SIZE / sizeof(u32);
-+		break;
-+	case FLAGS_SHA256:
-+		d = SHA256_DIGEST_SIZE / sizeof(u32);
-+		break;
-+	}
-+
-+	/* all results are in little endian */
-+	for (i = 0; i < d; i++)
-+		hash[i] = le32_to_cpu(in[i]);
-+}
-+
-+#if 0
-+static int omap4_sham_hw_init(struct omap4_sham_dev *dd)
-+{
-+	omap4_sham_write(dd, SHA_REG_SYSCFG, SHA_REG_SYSCFG_SOFTRESET);
-+	/*
-+	 * prevent OCP bus error (SRESP) in case an access to the module
-+	 * is performed while the module is coming out of soft reset
-+	 */
-+	__asm__ __volatile__("nop");
-+	__asm__ __volatile__("nop");
-+
-+	if (omap4_sham_wait(dd, SHA_REG_SYSSTATUS, SHA_REG_SYSSTATUS_RESETDONE))
-+		return -ETIMEDOUT;
-+
-+	omap4_sham_write(dd, SHA_REG_SYSCFG,
-+		       SHA_REG_SYSCFG_SIDLE_SMARTIDLE | SHA_REG_SYSCFG_AUTOIDLE);
-+	set_bit(FLAGS_INIT, &dd->dflags);
-+	dd->err = 0;
-+
-+	return 0;
-+}
-+#endif
-+
-+static void omap4_sham_write_ctrl(struct omap4_sham_dev *dd, int final, int dma)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+	u32 val, mask;
-+
-+	/*
-+	 * Setting ALGO_CONST only for the first iteration and
-+	 * CLOSE_HASH only for the last one. Note that flags mode bits
-+	 * correspond to algorithm encoding in mode register.
-+	 */
-+	val = (ctx->rflags & FLAGS_MODE_MASK) >> (FLAGS_MODE_SHIFT - 1);
-+	if (!ctx->digcnt) {
-+		struct crypto_ahash *tfm = crypto_ahash_reqtfm(dd->req);
-+		struct omap4_sham_ctx *tctx = crypto_ahash_ctx(tfm);
-+		struct omap4_sham_hmac_ctx *bctx = tctx->base;
-+
-+		val |= SHA_REG_MODE_ALGO_CONSTANT;
-+		if (ctx->rflags & BIT(FLAGS_HMAC)) {
-+			val |= SHA_REG_MODE_HMAC_KEY_PROC;
-+			omap4_sham_write_n(dd, SHA_REG_ODIGEST, (u32 *) bctx->keypad,
-+					 SHA2_MD5_BLOCK_SIZE / sizeof(u32));
-+			ctx->digcnt += SHA2_MD5_BLOCK_SIZE;
-+		}
-+	}
-+	if (final) {
-+		val |= SHA_REG_MODE_CLOSE_HASH;
-+
-+		if (ctx->rflags & BIT(FLAGS_HMAC)) {
-+			val |= SHA_REG_MODE_HMAC_OUTER_HASH;
-+		}
-+	}
-+
-+	mask = SHA_REG_MODE_ALGO_CONSTANT | SHA_REG_MODE_CLOSE_HASH |
-+		SHA_REG_MODE_ALGO_MASK | SHA_REG_MODE_HMAC_OUTER_HASH |
-+		SHA_REG_MODE_HMAC_KEY_PROC;
-+
-+	dev_dbg(dd->dev, "ctrl: %08x, flags: %08lx\n", val, ctx->rflags);
-+	omap4_sham_write_mask(dd, SHA_REG_MODE, val, mask);
-+	omap4_sham_write(dd, SHA_REG_IRQENA, SHA_REG_IRQENA_OUTPUT_RDY);
-+	omap4_sham_write_mask(dd, SHA_REG_SYSCFG,
-+			    SHA_REG_SYSCFG_SIT_EN | (dma ? SHA_REG_SYSCFG_SDMA_EN : 0),
-+			    SHA_REG_SYSCFG_SIT_EN | SHA_REG_SYSCFG_SDMA_EN);
-+}
-+
-+static int omap4_sham_xmit_cpu(struct omap4_sham_dev *dd, const u8 *buf,
-+			      size_t length, int final)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+	int count, len32;
-+	const u32 *buffer = (const u32 *)buf;
-+
-+	dev_dbg(dd->dev, "xmit_cpu: digcnt: %d, length: %d, final: %d\n",
-+						ctx->digcnt, length, final);
-+
-+	if (final)
-+		set_bit(FLAGS_FINAL, &dd->dflags); /* catch last interrupt */
-+
-+	set_bit(FLAGS_CPU, &dd->dflags);
-+
-+	omap4_sham_write_ctrl(dd, final, 0);
-+	/*
-+	 * Setting the length field will also trigger start of
-+	 * processing.
-+	 */
-+	omap4_sham_write(dd, SHA_REG_LENGTH, length);
-+
-+	/* short-circuit zero length */
-+	if (likely(length)) {
-+		ctx->digcnt += length;
-+
-+		if (omap4_sham_wait(dd, SHA_REG_IRQSTATUS, SHA_REG_IRQSTATUS_INPUT_RDY))
-+			return -ETIMEDOUT;
-+
-+		len32 = DIV_ROUND_UP(length, sizeof(u32));
-+
-+		for (count = 0; count < len32; count++)
-+			omap4_sham_write(dd, SHA_REG_DATA_N(count), buffer[count]);
-+	}
-+
-+	return -EINPROGRESS;
-+}
-+
-+static int omap4_sham_xmit_dma(struct omap4_sham_dev *dd, dma_addr_t dma_addr,
-+			      size_t length, int final)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+	int nblocks;
-+	struct edmacc_param p_ram;
-+
-+	dev_dbg(dd->dev, "xmit_dma: digcnt: %d, length: %d, final: %d\n",
-+						ctx->digcnt, length, final);
-+
-+	nblocks = DIV_ROUND_UP(length, SHA2_MD5_BLOCK_SIZE);
-+
-+	/* EDMA IN */
-+	p_ram.opt	   = TCINTEN |
-+		EDMA_TCC(EDMA_CHAN_SLOT(dd->dma_lch));
-+	p_ram.src	   = dma_addr;
-+	p_ram.a_b_cnt      = SHA2_MD5_BLOCK_SIZE | nblocks << 16;
-+	p_ram.dst          = dd->phys_base + SHA_REG_DATA;
-+	p_ram.src_dst_bidx = SHA2_MD5_BLOCK_SIZE;
-+	p_ram.link_bcntrld = 1 << 16 | 0xFFFF;
-+	p_ram.src_dst_cidx = 0;
-+	p_ram.ccnt         = 1;
-+	edma_write_slot(dd->dma_lch, &p_ram);
-+
-+	omap4_sham_write_ctrl(dd, final, 1);
-+
-+	ctx->digcnt += length;
-+
-+	if (final)
-+		set_bit(FLAGS_FINAL, &dd->dflags); /* catch last interrupt */
-+
-+	set_bit(FLAGS_DMA_ACTIVE, &dd->dflags);
-+
-+	edma_start(dd->dma_lch);
-+
-+	/*
-+	 * Setting the length field will also trigger start of
-+	 * processing.
-+	 */
-+	omap4_sham_write(dd, SHA_REG_LENGTH, length);
-+
-+	return -EINPROGRESS;
-+}
-+
-+static size_t omap4_sham_append_buffer(struct omap4_sham_reqctx *ctx,
-+				const u8 *data, size_t length)
-+{
-+	size_t count = min(length, ctx->buflen - ctx->bufcnt);
-+
-+	count = min(count, ctx->total);
-+	if (count <= 0)
-+		return 0;
-+	memcpy(ctx->buffer + ctx->bufcnt, data, count);
-+	ctx->bufcnt += count;
-+
-+	return count;
-+}
-+
-+static size_t omap4_sham_append_sg(struct omap4_sham_reqctx *ctx)
-+{
-+	size_t count;
-+
-+	while (ctx->sg) {
-+		if (ctx->sg->length) {
-+			count = omap4_sham_append_buffer(ctx,
-+							 sg_virt(ctx->sg) + ctx->offset,
-+							 ctx->sg->length - ctx->offset);
-+			if (!count)
-+				break;
-+			ctx->offset += count;
-+			ctx->total -= count;
-+		}
-+		if (ctx->offset == ctx->sg->length) {
-+			ctx->sg = sg_next(ctx->sg);
-+			if (ctx->sg)
-+				ctx->offset = 0;
-+			else
-+				ctx->total = 0;
-+		}
-+	}
-+
-+	return 0;
-+}
-+
-+static int omap4_sham_xmit_dma_map(struct omap4_sham_dev *dd,
-+				  struct omap4_sham_reqctx *ctx,
-+				  size_t length, int final)
-+{
-+	ctx->dma_addr = dma_map_single(dd->dev, ctx->buffer, ctx->buflen,
-+				       DMA_TO_DEVICE);
-+	if (dma_mapping_error(dd->dev, ctx->dma_addr)) {
-+		dev_err(dd->dev, "dma %u bytes error\n", ctx->buflen);
-+		return -EINVAL;
-+	}
-+
-+	ctx->rflags &= ~BIT(FLAGS_SG);
-+
-+	/* next call does not fail... so no unmap in the case of error */
-+	return omap4_sham_xmit_dma(dd, ctx->dma_addr, length, final);
-+}
-+
-+static int omap4_sham_update_dma_slow(struct omap4_sham_dev *dd)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+	unsigned int final;
-+	size_t count;
-+
-+	omap4_sham_append_sg(ctx);
-+
-+	final = (ctx->rflags & BIT(FLAGS_FINUP)) && !ctx->total;
-+
-+	dev_dbg(dd->dev, "slow: bufcnt: %u, digcnt: %d, final: %d\n",
-+					 ctx->bufcnt, ctx->digcnt, final);
-+
-+	if (final || (ctx->bufcnt == ctx->buflen && ctx->total)) {
-+		count = ctx->bufcnt;
-+		ctx->bufcnt = 0;
-+		return omap4_sham_xmit_dma_map(dd, ctx, count, final);
-+	}
-+
-+	return 0;
-+}
-+
-+/* Start address alignment */
-+#define SG_AA(sg)	(IS_ALIGNED(sg->offset, sizeof(u32)))
-+/* SHA1 block size alignment */
-+#define SG_SA(sg)	(IS_ALIGNED(sg->length, SHA2_MD5_BLOCK_SIZE))
-+
-+static int omap4_sham_update_dma_start(struct omap4_sham_dev *dd)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+	unsigned int length, final, tail;
-+	struct scatterlist *sg;
-+
-+	if (!ctx->total)
-+		return 0;
-+
-+	if (ctx->bufcnt || ctx->offset)
-+		return omap4_sham_update_dma_slow(dd);
-+
-+	dev_dbg(dd->dev, "fast: digcnt: %d, bufcnt: %u, total: %u\n",
-+			ctx->digcnt, ctx->bufcnt, ctx->total);
-+
-+	sg = ctx->sg;
-+
-+	if (!SG_AA(sg))
-+		return omap4_sham_update_dma_slow(dd);
-+
-+	if (!sg_is_last(sg) && !SG_SA(sg))
-+		/* size is not SHA1_BLOCK_SIZE aligned */
-+		return omap4_sham_update_dma_slow(dd);
-+
-+	length = min(ctx->total, sg->length);
-+
-+	if (sg_is_last(sg)) {
-+		if (!(ctx->rflags & BIT(FLAGS_FINUP))) {
-+			/* not last sg must be SHA2_MD5_BLOCK_SIZE aligned */
-+			tail = length & (SHA2_MD5_BLOCK_SIZE - 1);
-+			/* without finup() we need one block to close hash */
-+			if (!tail)
-+				tail = SHA2_MD5_BLOCK_SIZE;
-+			length -= tail;
-+		}
-+	}
-+
-+	if (!dma_map_sg(dd->dev, ctx->sg, 1, DMA_TO_DEVICE)) {
-+		dev_err(dd->dev, "dma_map_sg  error\n");
-+		return -EINVAL;
-+	}
-+
-+	ctx->rflags |= BIT(FLAGS_SG);
-+
-+	ctx->total -= length;
-+	ctx->offset = length; /* offset where to start slow */
-+
-+	final = (ctx->rflags & BIT(FLAGS_FINUP)) && !ctx->total;
-+
-+	/* next call does not fail... so no unmap in the case of error */
-+	return omap4_sham_xmit_dma(dd, sg_dma_address(ctx->sg), length, final);
-+}
-+
-+static int omap4_sham_update_cpu(struct omap4_sham_dev *dd)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+	int bufcnt;
-+
-+	omap4_sham_append_sg(ctx);
-+	bufcnt = ctx->bufcnt;
-+	ctx->bufcnt = 0;
-+
-+	return omap4_sham_xmit_cpu(dd, ctx->buffer, bufcnt, 1);
-+}
-+
-+static int omap4_sham_update_dma_stop(struct omap4_sham_dev *dd)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(dd->req);
-+
-+	edma_stop(dd->dma_lch);
-+	if (ctx->rflags & BIT(FLAGS_SG)) {
-+		dma_unmap_sg(dd->dev, ctx->sg, 1, DMA_TO_DEVICE);
-+		if (ctx->sg->length == ctx->offset) {
-+			ctx->sg = sg_next(ctx->sg);
-+			if (ctx->sg)
-+				ctx->offset = 0;
-+		}
-+	} else {
-+		dma_unmap_single(dd->dev, ctx->dma_addr, ctx->buflen,
-+				 DMA_TO_DEVICE);
-+	}
-+
-+	return 0;
-+}
-+
-+static int omap4_sham_init(struct ahash_request *req)
-+{
-+	struct crypto_ahash *tfm = crypto_ahash_reqtfm(req);
-+	struct omap4_sham_ctx *tctx = crypto_ahash_ctx(tfm);
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	struct omap4_sham_dev *dd = NULL, *tmp;
-+
-+	spin_lock_bh(&sham.lock);
-+	if (!tctx->dd) {
-+		list_for_each_entry(tmp, &sham.dev_list, list) {
-+			dd = tmp;
-+			break;
-+		}
-+		tctx->dd = dd;
-+	} else {
-+		dd = tctx->dd;
-+	}
-+	spin_unlock_bh(&sham.lock);
-+
-+	ctx->dd = dd;
-+
-+	ctx->rflags = 0;
-+
-+	dev_dbg(dd->dev, "init: digest size: %d (@0x%08lx)\n",
-+		crypto_ahash_digestsize(tfm), dd->phys_base);
-+
-+	switch (crypto_ahash_digestsize(tfm)) {
-+	case MD5_DIGEST_SIZE:
-+		ctx->rflags |= FLAGS_MD5;
-+		break;
-+	case SHA1_DIGEST_SIZE:
-+		ctx->rflags |= FLAGS_SHA1;
-+		break;
-+	case SHA224_DIGEST_SIZE:
-+		ctx->rflags |= FLAGS_SHA224;
-+		break;
-+	case SHA256_DIGEST_SIZE:
-+		ctx->rflags |= FLAGS_SHA256;
-+		break;
-+	}
-+
-+	ctx->bufcnt = 0;
-+	ctx->digcnt = 0;
-+	ctx->buflen = BUFLEN;
-+
-+	if (tctx->cflags & BIT(FLAGS_HMAC)) {
-+		ctx->rflags |= BIT(FLAGS_HMAC);
-+	}
-+
-+	return 0;
-+}
-+
-+static int omap4_sham_update_req(struct omap4_sham_dev *dd)
-+{
-+	struct ahash_request *req = dd->req;
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	int err;
-+
-+	dev_dbg(dd->dev, "update_req: total: %u, digcnt: %d, finup: %d\n",
-+		ctx->total, ctx->digcnt, (ctx->rflags & BIT(FLAGS_FINUP)) != 0);
-+
-+	if (ctx->rflags & BIT(FLAGS_CPU))
-+		err = omap4_sham_update_cpu(dd);
-+	else
-+		err = omap4_sham_update_dma_start(dd);
-+
-+	/* wait for dma completion before can take more data */
-+	dev_dbg(dd->dev, "update: err: %d, digcnt: %d\n", err, ctx->digcnt);
-+
-+	return err;
-+}
-+
-+static int omap4_sham_final_req(struct omap4_sham_dev *dd)
-+{
-+	struct ahash_request *req = dd->req;
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	int err = 0;
-+
-+	if (ctx->bufcnt <= SHA2_MD5_BLOCK_SIZE) /* faster to handle single block with CPU */
-+		err = omap4_sham_xmit_cpu(dd, ctx->buffer, ctx->bufcnt, 1);
-+	else
-+		err = omap4_sham_xmit_dma_map(dd, ctx, ctx->bufcnt, 1);
-+
-+	ctx->bufcnt = 0;
-+
-+	dev_dbg(dd->dev, "final_req: err: %d\n", err);
-+
-+	return err;
-+}
-+
-+static int omap4_sham_finish(struct ahash_request *req)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	struct omap4_sham_dev *dd = ctx->dd;
-+
-+	omap4_sham_copy_ready_hash(req);
-+	dev_dbg(dd->dev, "digcnt: %d, bufcnt: %d\n", ctx->digcnt, ctx->bufcnt);
-+
-+	return 0;
-+}
-+
-+static void omap4_sham_finish_req(struct ahash_request *req, int err)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	struct omap4_sham_dev *dd = ctx->dd;
-+
-+	if (!err) {
-+		omap4_sham_copy_hash(req, 1);
-+		if (test_bit(FLAGS_FINAL, &dd->dflags)) {
-+			err = omap4_sham_finish(req);
-+		}
-+	} else {
-+		ctx->rflags |= BIT(FLAGS_ERROR);
-+	}
-+
-+	/* atomic operation is not needed here */
-+	dd->dflags &= ~(BIT(FLAGS_BUSY) | BIT(FLAGS_FINAL) | BIT(FLAGS_CPU) |
-+			BIT(FLAGS_DMA_READY) | BIT(FLAGS_OUTPUT_READY));
-+	clk_disable(dd->iclk);
-+
-+	if (req->base.complete)
-+		req->base.complete(&req->base, err);
-+
-+	/* handle new request */
-+	tasklet_schedule(&dd->done_task);
-+}
-+
-+static int omap4_sham_handle_queue(struct omap4_sham_dev *dd,
-+				  struct ahash_request *req)
-+{
-+	struct crypto_async_request *async_req, *backlog;
-+	struct omap4_sham_reqctx *ctx;
-+	unsigned long flags;
-+	int err = 0, ret = 0;
-+
-+	spin_lock_irqsave(&dd->lock, flags);
-+	if (req)
-+		ret = ahash_enqueue_request(&dd->queue, req);
-+	if (test_bit(FLAGS_BUSY, &dd->dflags)) {
-+		spin_unlock_irqrestore(&dd->lock, flags);
-+		return ret;
-+	}
-+	backlog = crypto_get_backlog(&dd->queue);
-+	async_req = crypto_dequeue_request(&dd->queue);
-+	if (async_req)
-+		set_bit(FLAGS_BUSY, &dd->dflags);
-+	spin_unlock_irqrestore(&dd->lock, flags);
-+
-+	if (!async_req)
-+		return ret;
-+
-+	if (backlog)
-+		backlog->complete(backlog, -EINPROGRESS);
-+
-+	req = ahash_request_cast(async_req);
-+	dd->req = req;
-+	ctx = ahash_request_ctx(req);
-+
-+	dev_dbg(dd->dev, "handling new req, op: %lu, nbytes: %d\n",
-+						ctx->op, req->nbytes);
-+
-+	clk_enable(dd->iclk);
-+	if (!test_bit(FLAGS_INIT, &dd->dflags)) {
-+		set_bit(FLAGS_INIT, &dd->dflags);
-+		dd->err = 0;
-+	}
-+
-+	if (ctx->digcnt)	/* not initial request - restore hash */
-+		omap4_sham_copy_hash(req, 0);
-+
-+	if (ctx->op == OP_UPDATE) {
-+		err = omap4_sham_update_req(dd);
-+		if (err != -EINPROGRESS && (ctx->rflags & BIT(FLAGS_FINUP)))
-+			/* no final() after finup() */
-+			err = omap4_sham_final_req(dd);
-+	} else if (ctx->op == OP_FINAL) {
-+		err = omap4_sham_final_req(dd);
-+	}
-+
-+	if (err != -EINPROGRESS)
-+		/* done_task will not finish it, so do it here */
-+		omap4_sham_finish_req(req, err);
-+
-+	dev_dbg(dd->dev, "exit, err: %d\n", err);
-+
-+	return ret;
-+}
-+
-+static int omap4_sham_enqueue(struct ahash_request *req, unsigned int op)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	struct omap4_sham_ctx *tctx = crypto_tfm_ctx(req->base.tfm);
-+	struct omap4_sham_dev *dd = tctx->dd;
-+
-+	ctx->op = op;
-+
-+	return omap4_sham_handle_queue(dd, req);
-+}
-+
-+static int omap4_sham_update(struct ahash_request *req)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+
-+	if (!(ctx->rflags & BIT(FLAGS_FINUP)))
-+		if (!req->nbytes)
-+			return 0;
-+
-+	ctx->total = req->nbytes;
-+	ctx->sg = req->src;
-+	ctx->offset = 0;
-+
-+	if (ctx->rflags & BIT(FLAGS_FINUP)) {
-+		if (ctx->bufcnt + ctx->total <= SHA2_MD5_BLOCK_SIZE) {
-+			/*
-+			 * faster to use CPU for short transfers
-+			 */
-+			ctx->rflags |= BIT(FLAGS_CPU);
-+		}
-+	} else if (ctx->bufcnt + ctx->total < ctx->buflen) {
-+		omap4_sham_append_sg(ctx);
-+		return 0;
-+	}
-+
-+	return omap4_sham_enqueue(req, OP_UPDATE);
-+}
-+
-+static int omap4_sham_shash_digest(struct crypto_shash *shash, u32 flags,
-+				  const u8 *data, unsigned int len, u8 *out)
-+{
-+	struct {
-+		struct shash_desc shash;
-+		char ctx[crypto_shash_descsize(shash)];
-+	} desc;
-+
-+	desc.shash.tfm = shash;
-+	desc.shash.flags = flags & CRYPTO_TFM_REQ_MAY_SLEEP;
-+
-+	return crypto_shash_digest(&desc.shash, data, len, out);
-+}
-+
-+static int omap4_sham_final(struct ahash_request *req)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+
-+	ctx->rflags |= BIT(FLAGS_FINUP);
-+
-+	if (ctx->rflags & BIT(FLAGS_ERROR))
-+		return 0; /* uncompleted hash is not needed */
-+
-+	return omap4_sham_enqueue(req, OP_FINAL);
-+}
-+
-+static int omap4_sham_finup(struct ahash_request *req)
-+{
-+	struct omap4_sham_reqctx *ctx = ahash_request_ctx(req);
-+	int err1, err2;
-+
-+	ctx->rflags |= BIT(FLAGS_FINUP);
-+
-+	err1 = omap4_sham_update(req);
-+	if (err1 == -EINPROGRESS || err1 == -EBUSY)
-+		return err1;
-+	/*
-+	 * final() has to be always called to cleanup resources
-+	 * even if update() failed, except EINPROGRESS
-+	 */
-+	err2 = omap4_sham_final(req);
-+
-+	return err1 ?: err2;
-+}
-+
-+static int omap4_sham_digest(struct ahash_request *req)
-+{
-+	return omap4_sham_init(req) ?: omap4_sham_finup(req);
-+}
-+
-+static int omap4_sham_setkey(struct crypto_ahash *tfm, const u8 *key,
-+		      unsigned int keylen)
-+{
-+	struct omap4_sham_ctx *tctx = crypto_ahash_ctx(tfm);
-+	struct omap4_sham_hmac_ctx *bctx = tctx->base;
-+	int bs = crypto_shash_blocksize(bctx->shash);
-+	int ds = crypto_shash_digestsize(bctx->shash);
-+	int err;
-+
-+	/* If key is longer than block size, use hash of original key */
-+	if (keylen > bs) {
-+		err = crypto_shash_setkey(tctx->fallback, key, keylen) ?:
-+			omap4_sham_shash_digest(bctx->shash,
-+				crypto_shash_get_flags(bctx->shash),
-+				key, keylen, bctx->keypad);
-+		if (err)
-+			return err;
-+		keylen = ds;
-+	} else {
-+		memcpy(bctx->keypad, key, keylen);
-+	}
-+
-+	/* zero-pad the key (or its digest) */
-+	if (keylen < bs)
-+		memset(bctx->keypad + keylen, 0, bs - keylen);
-+
-+	return 0;
-+}
-+
-+static int omap4_sham_cra_init_alg(struct crypto_tfm *tfm, const char *alg_base)
-+{
-+	struct omap4_sham_ctx *tctx = crypto_tfm_ctx(tfm);
-+	const char *alg_name = crypto_tfm_alg_name(tfm);
-+
-+	/* Allocate a fallback and abort if it failed. */
-+	tctx->fallback = crypto_alloc_shash(alg_name, 0,
-+					    CRYPTO_ALG_NEED_FALLBACK);
-+	if (IS_ERR(tctx->fallback)) {
-+		pr_err("omap4-sham: fallback driver '%s' "
-+				"could not be loaded.\n", alg_name);
-+		return PTR_ERR(tctx->fallback);
-+	}
-+
-+	crypto_ahash_set_reqsize(__crypto_ahash_cast(tfm),
-+				 sizeof(struct omap4_sham_reqctx) + BUFLEN);
-+
-+	if (alg_base) {
-+		struct omap4_sham_hmac_ctx *bctx = tctx->base;
-+		tctx->cflags |= BIT(FLAGS_HMAC);
-+		bctx->shash = crypto_alloc_shash(alg_base, 0,
-+						CRYPTO_ALG_NEED_FALLBACK);
-+		if (IS_ERR(bctx->shash)) {
-+			pr_err("omap4-sham: base driver '%s' "
-+					"could not be loaded.\n", alg_base);
-+			crypto_free_shash(tctx->fallback);
-+			return PTR_ERR(bctx->shash);
-+		}
-+
-+	}
-+
-+	return 0;
-+}
-+
-+static int omap4_sham_cra_init(struct crypto_tfm *tfm)
-+{
-+	return omap4_sham_cra_init_alg(tfm, NULL);
-+}
-+
-+static int omap4_sham_cra_sha1_init(struct crypto_tfm *tfm)
-+{
-+	return omap4_sham_cra_init_alg(tfm, "sha1");
-+}
-+
-+static int omap4_sham_cra_sha224_init(struct crypto_tfm *tfm)
-+{
-+	return omap4_sham_cra_init_alg(tfm, "sha224");
-+}
-+
-+static int omap4_sham_cra_sha256_init(struct crypto_tfm *tfm)
-+{
-+	return omap4_sham_cra_init_alg(tfm, "sha256");
-+}
-+
-+static int omap4_sham_cra_md5_init(struct crypto_tfm *tfm)
-+{
-+	return omap4_sham_cra_init_alg(tfm, "md5");
-+}
-+
-+static void omap4_sham_cra_exit(struct crypto_tfm *tfm)
-+{
-+	struct omap4_sham_ctx *tctx = crypto_tfm_ctx(tfm);
-+
-+	crypto_free_shash(tctx->fallback);
-+	tctx->fallback = NULL;
-+
-+	if (tctx->cflags & BIT(FLAGS_HMAC)) {
-+		struct omap4_sham_hmac_ctx *bctx = tctx->base;
-+		crypto_free_shash(bctx->shash);
-+	}
-+}
-+
-+static struct ahash_alg algs[] = {
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.halg.digestsize	= SHA1_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "sha1",
-+		.cra_driver_name	= "omap4-sha1",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA1_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx),
-+		.cra_alignmask		= 0,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.halg.digestsize	= SHA224_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "sha224",
-+		.cra_driver_name	= "omap4-sha224",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA224_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx),
-+		.cra_alignmask		= 0,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.halg.digestsize	= SHA256_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "sha256",
-+		.cra_driver_name	= "omap4-sha256",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA256_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx),
-+		.cra_alignmask		= 0,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.halg.digestsize	= MD5_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "md5",
-+		.cra_driver_name	= "omap4-md5",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA1_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx),
-+		.cra_alignmask		= AM33X_ALIGN_MASK,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.setkey		= omap4_sham_setkey,
-+	.halg.digestsize	= SHA1_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "hmac(sha1)",
-+		.cra_driver_name	= "omap4-hmac-sha1",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA1_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx) +
-+					sizeof(struct omap4_sham_hmac_ctx),
-+		.cra_alignmask		= AM33X_ALIGN_MASK,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_sha1_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.setkey		= omap4_sham_setkey,
-+	.halg.digestsize	= SHA224_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "hmac(sha224)",
-+		.cra_driver_name	= "omap4-hmac-sha224",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA224_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx) +
-+					sizeof(struct omap4_sham_hmac_ctx),
-+		.cra_alignmask		= AM33X_ALIGN_MASK,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_sha224_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.setkey		= omap4_sham_setkey,
-+	.halg.digestsize	= SHA256_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "hmac(sha256)",
-+		.cra_driver_name	= "omap4-hmac-sha256",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA256_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx) +
-+					sizeof(struct omap4_sham_hmac_ctx),
-+		.cra_alignmask		= AM33X_ALIGN_MASK,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_sha256_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+},
-+{
-+	.init		= omap4_sham_init,
-+	.update		= omap4_sham_update,
-+	.final		= omap4_sham_final,
-+	.finup		= omap4_sham_finup,
-+	.digest		= omap4_sham_digest,
-+	.setkey		= omap4_sham_setkey,
-+	.halg.digestsize	= MD5_DIGEST_SIZE,
-+	.halg.base	= {
-+		.cra_name		= "hmac(md5)",
-+		.cra_driver_name	= "omap4-hmac-md5",
-+		.cra_priority		= 300,
-+		.cra_flags		= CRYPTO_ALG_TYPE_AHASH |
-+						CRYPTO_ALG_ASYNC |
-+						CRYPTO_ALG_NEED_FALLBACK,
-+		.cra_blocksize		= SHA1_BLOCK_SIZE,
-+		.cra_ctxsize		= sizeof(struct omap4_sham_ctx) +
-+					sizeof(struct omap4_sham_hmac_ctx),
-+		.cra_alignmask		= AM33X_ALIGN_MASK,
-+		.cra_module		= THIS_MODULE,
-+		.cra_init		= omap4_sham_cra_md5_init,
-+		.cra_exit		= omap4_sham_cra_exit,
-+	}
-+}
-+};
-+
-+static void omap4_sham_done_task(unsigned long data)
-+{
-+	struct omap4_sham_dev *dd = (struct omap4_sham_dev *)data;
-+	int err = 0;
-+
-+	if (!test_bit(FLAGS_BUSY, &dd->dflags)) {
-+		omap4_sham_handle_queue(dd, NULL);
-+		return;
-+	}
-+
-+	if (test_bit(FLAGS_CPU, &dd->dflags)) {
-+		if (test_and_clear_bit(FLAGS_OUTPUT_READY, &dd->dflags))
-+			goto finish;
-+	} else if (test_bit(FLAGS_OUTPUT_READY, &dd->dflags)) {
-+		if (test_and_clear_bit(FLAGS_DMA_ACTIVE, &dd->dflags)) {
-+			omap4_sham_update_dma_stop(dd);
-+			if (dd->err) {
-+				err = dd->err;
-+				goto finish;
-+			}
-+		}
-+		if (test_and_clear_bit(FLAGS_OUTPUT_READY, &dd->dflags)) {
-+			/* hash or semi-hash ready */
-+			clear_bit(FLAGS_DMA_READY, &dd->dflags);
-+			err = omap4_sham_update_dma_start(dd);
-+			if (err != -EINPROGRESS)
-+				goto finish;
-+		}
-+	}
-+
-+	return;
-+
-+finish:
-+	dev_dbg(dd->dev, "update done: err: %d\n", err);
-+	/* finish current request */
-+	omap4_sham_finish_req(dd->req, err);
-+}
-+
-+static irqreturn_t omap4_sham_irq(int irq, void *dev_id)
-+{
-+	struct omap4_sham_dev *dd = dev_id;
-+
-+#if 0
-+	if (unlikely(test_bit(FLAGS_FINAL, &dd->flags)))
-+		/* final -> allow device to go to power-saving mode */
-+		omap4_sham_write_mask(dd, SHA_REG_CTRL, 0, SHA_REG_CTRL_LENGTH);
-+#endif
-+
-+	/* TODO check whether the result needs to be read out here,
-+	   or if we just disable the interrupt */
-+	omap4_sham_write_mask(dd, SHA_REG_SYSCFG, 0, SHA_REG_SYSCFG_SIT_EN);
-+
-+	if (!test_bit(FLAGS_BUSY, &dd->dflags)) {
-+		dev_warn(dd->dev, "Interrupt when no active requests.\n");
-+	} else {
-+		set_bit(FLAGS_OUTPUT_READY, &dd->dflags);
-+		tasklet_schedule(&dd->done_task);
-+	}
-+
-+	return IRQ_HANDLED;
-+}
-+
-+static void omap4_sham_dma_callback(unsigned int lch, u16 ch_status, void *data)
-+{
-+	struct omap4_sham_dev *dd = data;
-+
-+	edma_stop(lch);
-+
-+	if (ch_status != DMA_COMPLETE) {
-+		pr_err("omap4-sham DMA error status: 0x%hx\n", ch_status);
-+		dd->err = -EIO;
-+		clear_bit(FLAGS_INIT, &dd->dflags); /* request to re-initialize */
-+	}
-+
-+	set_bit(FLAGS_DMA_READY, &dd->dflags);
-+	tasklet_schedule(&dd->done_task);
-+}
-+
-+static int omap4_sham_dma_init(struct omap4_sham_dev *dd)
-+{
-+	int err;
-+
-+	dd->dma_lch = -1;
-+
-+	dd->dma_lch = edma_alloc_channel(dd->dma, omap4_sham_dma_callback, dd, EVENTQ_2);
-+	if (dd->dma_lch < 0) {
-+		dev_err(dd->dev, "Unable to request EDMA channel\n");
-+		return -1;
-+	}
-+
-+	return 0;
-+}
-+
-+static void omap4_sham_dma_cleanup(struct omap4_sham_dev *dd)
-+{
-+	if (dd->dma_lch >= 0) {
-+		edma_free_channel(dd->dma_lch);
-+		dd->dma_lch = -1;
-+	}
-+}
-+
-+static int __devinit omap4_sham_probe(struct platform_device *pdev)
-+{
-+	struct omap4_sham_dev *dd;
-+	struct device *dev = &pdev->dev;
-+	struct resource *res;
-+	int err, i, j;
-+	u32 reg;
-+
-+	dd = kzalloc(sizeof(struct omap4_sham_dev), GFP_KERNEL);
-+	if (dd == NULL) {
-+		dev_err(dev, "unable to alloc data struct.\n");
-+		err = -ENOMEM;
-+		goto data_err;
-+	}
-+	dd->dev = dev;
-+	platform_set_drvdata(pdev, dd);
-+
-+	INIT_LIST_HEAD(&dd->list);
-+	spin_lock_init(&dd->lock);
-+	tasklet_init(&dd->done_task, omap4_sham_done_task, (unsigned long)dd);
-+	crypto_init_queue(&dd->queue, AM33X_SHAM_QUEUE_LENGTH);
-+
-+	dd->irq = -1;
-+
-+	/* Get the base address */
-+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!res) {
-+		dev_err(dev, "no MEM resource info\n");
-+		err = -ENODEV;
-+		goto res_err;
-+	}
-+	dd->phys_base = res->start;
-+
-+	/* Get the DMA */
-+	res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
-+	if (!res) {
-+		dev_err(dev, "no DMA resource info\n");
-+		err = -ENODEV;
-+		goto res_err;
-+	}
-+	dd->dma = res->start;
-+
-+	/* Get the IRQ */
-+	dd->irq = platform_get_irq(pdev,  0);
-+	if (dd->irq < 0) {
-+		dev_err(dev, "no IRQ resource info\n");
-+		err = dd->irq;
-+		goto res_err;
-+	}
-+
-+	err = request_irq(dd->irq, omap4_sham_irq,
-+			IRQF_TRIGGER_LOW, dev_name(dev), dd);
-+	if (err) {
-+		dev_err(dev, "unable to request irq.\n");
-+		goto res_err;
-+	}
-+
-+	err = omap4_sham_dma_init(dd);
-+	if (err)
-+		goto dma_err;
-+
-+	/* Initializing the clock */
-+	dd->iclk = clk_get(dev, "sha0_fck");
-+	if (IS_ERR(dd->iclk)) {
-+		dev_err(dev, "clock initialization failed.\n");
-+		err = PTR_ERR(dd->iclk);
-+		goto clk_err;
-+	}
-+
-+	dd->io_base = ioremap(dd->phys_base, SZ_4K);
-+	if (!dd->io_base) {
-+		dev_err(dev, "can't ioremap\n");
-+		err = -ENOMEM;
-+		goto io_err;
-+	}
-+
-+	clk_enable(dd->iclk);
-+	reg = omap4_sham_read(dd, SHA_REG_REV);
-+	clk_disable(dd->iclk);
-+
-+	dev_info(dev, "AM33X SHA/MD5 hw accel rev: %u.%02u\n",
-+		 (reg & SHA_REG_REV_X_MAJOR_MASK) >> 8, reg & SHA_REG_REV_Y_MINOR_MASK);
-+
-+	spin_lock(&sham.lock);
-+	list_add_tail(&dd->list, &sham.dev_list);
-+	spin_unlock(&sham.lock);
-+
-+	for (i = 0; i < ARRAY_SIZE(algs); i++) {
-+		err = crypto_register_ahash(&algs[i]);
-+		if (err)
-+			goto err_algs;
-+	}
-+
-+	pr_info("probe() done\n");
-+
-+	return 0;
-+
-+err_algs:
-+	for (j = 0; j < i; j++)
-+		crypto_unregister_ahash(&algs[j]);
-+	iounmap(dd->io_base);
-+io_err:
-+	clk_put(dd->iclk);
-+clk_err:
-+	omap4_sham_dma_cleanup(dd);
-+dma_err:
-+	if (dd->irq >= 0)
-+		free_irq(dd->irq, dd);
-+res_err:
-+	kfree(dd);
-+	dd = NULL;
-+data_err:
-+	dev_err(dev, "initialization failed.\n");
-+
-+	return err;
-+}
-+
-+static int __devexit omap4_sham_remove(struct platform_device *pdev)
-+{
-+	static struct omap4_sham_dev *dd;
-+	int i;
-+
-+	dd = platform_get_drvdata(pdev);
-+	if (!dd)
-+		return -ENODEV;
-+	spin_lock(&sham.lock);
-+	list_del(&dd->list);
-+	spin_unlock(&sham.lock);
-+	for (i = 0; i < ARRAY_SIZE(algs); i++)
-+		crypto_unregister_ahash(&algs[i]);
-+	tasklet_kill(&dd->done_task);
-+	iounmap(dd->io_base);
-+	clk_put(dd->iclk);
-+	omap4_sham_dma_cleanup(dd);
-+	if (dd->irq >= 0)
-+		free_irq(dd->irq, dd);
-+	kfree(dd);
-+	dd = NULL;
-+
-+	return 0;
-+}
-+
-+static struct platform_driver omap4_sham_driver = {
-+	.probe	= omap4_sham_probe,
-+	.remove	= omap4_sham_remove,
-+	.driver	= {
-+		.name	= "omap4-sham",
-+		.owner	= THIS_MODULE,
-+	},
-+};
-+
-+static int __init omap4_sham_mod_init(void)
-+{
-+	pr_info("loading AM33X SHA/MD5 driver\n");
-+
-+	if (!cpu_is_am33xx() || omap_type() != OMAP2_DEVICE_TYPE_GP) {
-+		pr_err("Unsupported cpu\n");
-+		return -ENODEV;
-+	}
-+
-+	return platform_driver_register(&omap4_sham_driver);
-+}
-+
-+static void __exit omap4_sham_mod_exit(void)
-+{
-+	platform_driver_unregister(&omap4_sham_driver);
-+}
-+
-+module_init(omap4_sham_mod_init);
-+module_exit(omap4_sham_mod_exit);
-+
-+MODULE_DESCRIPTION("AM33x SHA/MD5 hw acceleration support.");
-+MODULE_LICENSE("GPL v2");
-+MODULE_AUTHOR("Herman Schuurman");
---
-1.7.0.4
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0008-crypto-omap4-aes-Don-t-use-hardcoded-base-address.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0008-crypto-omap4-aes-Don-t-use-hardcoded-base-address.patch
deleted file mode 100644
index 348ac52..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0008-crypto-omap4-aes-Don-t-use-hardcoded-base-address.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 8084600ca78354fad147593256b9e32ef5d15148 Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Tue, 11 Dec 2012 21:09:58 -0700
-Subject: [PATCH 08/10] crypto: omap4-aes: Don't use hardcoded base address
-
-The omap4-aes driver currently uses a hardcoded base
-address for its register set instead of the address
-passed in by the system.  Instead, use the address
-passed in by the system.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/crypto/omap4-aes.c | 16 +++++++---------
- 1 file changed, 7 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/crypto/omap4-aes.c b/drivers/crypto/omap4-aes.c
-index 941b8a1..984a15e 100644
---- a/drivers/crypto/omap4-aes.c
-+++ b/drivers/crypto/omap4-aes.c
-@@ -800,15 +800,13 @@ static int omap4_aes_probe(struct platform_device *pdev)
- 	crypto_init_queue(&dd->queue, AM33X_AES_QUEUE_LENGTH);
- 
- 	/* Get the base address */
--	//res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
--	//if (!res) {
--	//	dev_err(dev, "invalid resource type\n");
--	//	err = -ENODEV;
--	//	goto err_res;
--	//}
--
--	//dd->phys_base = res->start;
--	dd->phys_base = AM33XX_AES0_P_BASE;
-+	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-+	if (!res) {
-+		dev_err(dev, "invalid resource type\n");
-+		err = -ENODEV;
-+		goto err_data;
-+	}
-+	dd->phys_base = res->start;
- 
- 	/* Get the DMA */
- 	res = platform_get_resource(pdev, IORESOURCE_DMA, 0);
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0009-ARM-AM33xx-hwmod-Convert-RNG-device-data-to-hwmod.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0009-ARM-AM33xx-hwmod-Convert-RNG-device-data-to-hwmod.patch
deleted file mode 100644
index 31094b0..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0009-ARM-AM33xx-hwmod-Convert-RNG-device-data-to-hwmod.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From 45cc04d9de2820cba138d5782e7c568edf0078a0 Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Wed, 12 Dec 2012 16:17:12 -0700
-Subject: [PATCH 09/10] ARM: AM33xx: hwmod: Convert RNG device data to hwmod
-
-Convert the device data for the AM33xx RNG module
-from explicit platform_data to hwmod.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- arch/arm/mach-omap2/devices.c              | 18 +++++++++
- arch/arm/mach-omap2/omap_hwmod_33xx_data.c | 64 ++++++++++++++++++++++++++++++
- arch/arm/plat-omap/devices.c               | 22 ----------
- 3 files changed, 82 insertions(+), 22 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index e4caa06..8e2f4a0 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -825,6 +825,23 @@ static void __init omap_init_aes(void)
- static inline void omap_init_aes(void) { }
- #endif
- 
-+#if IS_ENABLED(CONFIG_HW_RANDOM_OMAP4)
-+static void __init omap_init_rng(void)
-+{
-+	struct omap_hwmod *oh;
-+	struct platform_device *pdev;
-+
-+	oh = omap_hwmod_lookup("rng");
-+	if (!oh)
-+		return;
-+
-+	pdev = omap_device_build("omap4_rng", -1, oh, NULL, 0, NULL, 0, 0);
-+	WARN(IS_ERR(pdev), "Can't build omap_device for omap-rng\n");
-+}
-+#else
-+static inline void omap_init_rng(void) {}
-+#endif
-+
- /*-------------------------------------------------------------------------*/
- 
- #if defined(CONFIG_MMC_OMAP) || defined(CONFIG_MMC_OMAP_MODULE)
-@@ -1475,6 +1492,7 @@ static int __init omap2_init_devices(void)
- 	omap_init_sti();
- 	omap_init_sham();
- 	omap_init_aes();
-+	omap_init_rng();
- 	omap_init_vout();
- 	am33xx_register_edma();
- 	am33xx_init_pcm();
-diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-index 90e25d7..6c5ebc7 100644
---- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-@@ -94,6 +94,7 @@ static struct omap_hwmod am33xx_lcdc_hwmod;
- static struct omap_hwmod am33xx_mailbox_hwmod;
- static struct omap_hwmod am33xx_cpgmac0_hwmod;
- static struct omap_hwmod am33xx_mdio_hwmod;
-+static struct omap_hwmod am33xx_rng_hwmod;
- 
- /*
-  * ERRATA: (Yet to conform from IP team)
-@@ -3541,6 +3542,67 @@ static struct omap_hwmod am33xx_pruss_hwmod = {
- 	.rst_lines_cnt	= ARRAY_SIZE(am33xx_pruss_resets),
- };
- 
-+/* rng */
-+static struct omap_hwmod_sysc_fields omap3_rng_sysc_fields = {
-+	.sidle_shift	= 3,
-+	.autoidle_shift	= 0,
-+};
-+
-+static struct omap_hwmod_class_sysconfig am33xx_rng_sysc = {
-+	.rev_offs	= 0x1fe0,
-+	.sysc_offs	= 0x1fe4,
-+	.rst_offs	= 0x1ff0,
-+	.sysc_flags	= SYSC_HAS_AUTOIDLE,
-+	.sysc_fields	= &omap3_rng_sysc_fields,
-+};
-+
-+static struct omap_hwmod_class am33xx_rng_hwmod_class = {
-+	.name		= "rng",
-+	.sysc		= &am33xx_rng_sysc,
-+};
-+
-+static struct omap_hwmod_irq_info am33xx_rng_irqs[] = {
-+	{ .irq = 111 },
-+	{ .irq = -1 }
-+};
-+
-+struct omap_hwmod_addr_space am33xx_rng_addr_space[] = {
-+	{
-+		.pa_start	= 0x48310000,
-+		.pa_end		= 0x48310000 + SZ_8K - 1,
-+		.flags		= ADDR_TYPE_RT,
-+	},
-+	{ }
-+};
-+
-+struct omap_hwmod_ocp_if am33xx_l4per__rng = {
-+	.master		= &am33xx_l4per_hwmod,
-+	.slave		= &am33xx_rng_hwmod,
-+	.clk		= "rng_fck",
-+	.addr		= am33xx_rng_addr_space,
-+	.user		= OCP_USER_MPU,
-+};
-+
-+static struct omap_hwmod_ocp_if *am33xx_rng_slaves[] = {
-+	&am33xx_l4per__rng,
-+};
-+
-+static struct omap_hwmod am33xx_rng_hwmod = {
-+	.name		= "rng",
-+	.class		= &am33xx_rng_hwmod_class,
-+	.clkdm_name	= "l4ls_clkdm",
-+	.mpu_irqs	= am33xx_rng_irqs,
-+	.main_clk	= "rng_fck",
-+	.prcm		= {
-+		.omap4	= {
-+			.clkctrl_offs	= AM33XX_CM_PER_RNG_CLKCTRL_OFFSET,
-+			.modulemode	= MODULEMODE_SWCTRL,
-+		},
-+	},
-+	.slaves		= am33xx_rng_slaves,
-+	.slaves_cnt	= ARRAY_SIZE(am33xx_rng_slaves),
-+};
-+
- static __initdata struct omap_hwmod *am33xx_hwmods[] = {
- 	/* l3 class */
- 	&am33xx_l3_instr_hwmod,
-@@ -3661,6 +3723,8 @@ static __initdata struct omap_hwmod *am33xx_hwmods[] = {
- 	&am33xx_gfx_hwmod,
- 	/* pruss */
- 	&am33xx_pruss_hwmod,
-+	/* rng */
-+	&am33xx_rng_hwmod,
- 	NULL,
- };
- 
-diff --git a/arch/arm/plat-omap/devices.c b/arch/arm/plat-omap/devices.c
-index 52720b4..52d7ad4 100644
---- a/arch/arm/plat-omap/devices.c
-+++ b/arch/arm/plat-omap/devices.c
-@@ -105,28 +105,6 @@ static void omap_init_rng(void)
- {
- 	(void) platform_device_register(&omap_rng_device);
- }
--#elif defined(CONFIG_HW_RANDOM_OMAP4) || defined(CONFIG_HW_RANDOM_OMAP4_MODULE)
--
--static struct resource rng_resources[] = {
--	{
--		.start		= AM33XX_RNG_BASE,
--		.end		= AM33XX_RNG_BASE + 0x1FFC,
--		.flags		= IORESOURCE_MEM,
--	},
--};
--
--static struct platform_device omap4_rng_device = {
--	.name		= "omap4_rng",
--	.id		= -1,
--	.num_resources	= ARRAY_SIZE(rng_resources),
--	.resource	= rng_resources,
--};
--
--static void omap_init_rng(void)
--{
--	(void) platform_device_register(&omap4_rng_device);
--}
--
- #else
- static inline void omap_init_rng(void) {}
- #endif
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/0010-hwrng-omap4-rng-Convert-to-use-pm_runtime-API.patch b/recipes-kernel/linux/linux-am335x-psp-3.2/0010-hwrng-omap4-rng-Convert-to-use-pm_runtime-API.patch
deleted file mode 100644
index 28bc326..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/0010-hwrng-omap4-rng-Convert-to-use-pm_runtime-API.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 1b4d57c404a14b263b39e251e0bc5dc76fc95932 Mon Sep 17 00:00:00 2001
-From: "Mark A. Greer" <mgreer at animalcreek.com>
-Date: Wed, 12 Dec 2012 20:13:49 -0700
-Subject: [PATCH 10/10] hwrng: omap4-rng: Convert to use pm_runtime API
-
-Convert the omap4-rng driver to use the pm_runtime
-API instead of the clk API.
-
-Signed-off-by: Mark A. Greer <mgreer at animalcreek.com>
----
- drivers/char/hw_random/omap4-rng.c | 24 +++++++++++-------------
- 1 file changed, 11 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/char/hw_random/omap4-rng.c b/drivers/char/hw_random/omap4-rng.c
-index 523ec63..98c96c1 100644
---- a/drivers/char/hw_random/omap4-rng.c
-+++ b/drivers/char/hw_random/omap4-rng.c
-@@ -23,7 +23,7 @@
- #include <linux/module.h>
- #include <linux/init.h>
- #include <linux/random.h>
--#include <linux/clk.h>
-+#include <linux/pm_runtime.h>
- #include <linux/err.h>
- #include <linux/platform_device.h>
- #include <linux/hw_random.h>
-@@ -111,7 +111,6 @@
- 
- 
- static void __iomem *rng_base;
--static struct clk *rng_fck;
- static struct platform_device *rng_dev;
- 
- #define trng_read(reg)						\
-@@ -172,13 +171,8 @@ static int __devinit omap4_rng_probe(struct platform_device *pdev)
- 	if (rng_dev)
- 		return -EBUSY;
- 
--	rng_fck = clk_get(&pdev->dev, "rng_fck");
--	if (IS_ERR(rng_fck)) {
--		dev_err(&pdev->dev, "Could not get rng_fck\n");
--		ret = PTR_ERR(rng_fck);
--		return ret;
--	} else
--		clk_enable(rng_fck);
-+	pm_runtime_enable(&pdev->dev);
-+	pm_runtime_get_sync(&pdev->dev);
- 
- 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- 	if (!res) {
-@@ -223,8 +217,8 @@ err_register:
- err_ioremap:
- 	release_mem_region(res->start, resource_size(res));
- err_region:
--	clk_disable(rng_fck);
--	clk_put(rng_fck);
-+	pm_runtime_put_sync(&pdev->dev);
-+	pm_runtime_disable(&pdev->dev);
- 	return ret;
- }
- 
-@@ -238,8 +232,8 @@ static int __exit omap4_rng_remove(struct platform_device *pdev)
- 
- 	iounmap(rng_base);
- 
--	clk_disable(rng_fck);
--	clk_put(rng_fck);
-+	pm_runtime_put_sync(&pdev->dev);
-+	pm_runtime_disable(&pdev->dev);
- 	release_mem_region(res->start, resource_size(res));
- 	rng_base = NULL;
- 
-@@ -252,11 +246,15 @@ static int omap4_rng_suspend(struct platform_device *pdev, pm_message_t message)
- {
- 	trng_write(trng_read(CONTROL) & ~RNG_REG_CONTROL_ENABLE_TRNG, CONTROL);
- 
-+	pm_runtime_put_sync(&pdev->dev);
-+
- 	return 0;
- }
- 
- static int omap4_rng_resume(struct platform_device *pdev)
- {
-+	pm_runtime_get_sync(&pdev->dev);
-+
- 	trng_write(trng_read(CONTROL) | RNG_REG_CONTROL_ENABLE_TRNG, CONTROL);
- 
- 	return 0;
--- 
-1.7.12
-
diff --git a/recipes-kernel/linux/linux-am335x-psp-3.2/defconfig b/recipes-kernel/linux/linux-am335x-psp-3.2/defconfig
deleted file mode 100644
index f8cbc03..0000000
--- a/recipes-kernel/linux/linux-am335x-psp-3.2/defconfig
+++ /dev/null
@@ -1 +0,0 @@
-use-kernel-config=am335x_evm_defconfig
diff --git a/recipes-kernel/linux/linux-am335x-psp_3.2.bb b/recipes-kernel/linux/linux-am335x-psp_3.2.bb
deleted file mode 100644
index 9d08a86..0000000
--- a/recipes-kernel/linux/linux-am335x-psp_3.2.bb
+++ /dev/null
@@ -1,102 +0,0 @@
-SECTION = "kernel"
-DESCRIPTION = "Linux kernel for TI33x devices from PSP"
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-COMPATIBLE_MACHINE = "ti33x"
-
-DEFAULT_PREFERENCE = "-1"
-
-inherit kernel
-require setup-defconfig.inc
-
-# Stage the power management firmware before building the kernel
-DEPENDS += "am33x-cm3"
-
-KERNEL_IMAGETYPE = "uImage"
-
-# The main PR is now using MACHINE_KERNEL_PR, for ti33x see conf/machine/include/ti33x.inc
-MACHINE_KERNEL_PR_append = "h+gitr${SRCPV}"
-PR = "${MACHINE_KERNEL_PR}"
-
-BRANCH = "v3.2-staging"
-
-SRCREV = "d5720d33bc7c434f9a023dbb62c795538f976b7a"
-
-SRC_URI = "git://arago-project.org/git/projects/linux-am33x.git;protocol=git;branch=${BRANCH} \
-           file://defconfig \
-           ${KERNEL_PATCHES} \
-"
-
-S = "${WORKDIR}/git"
-
-# Allow a layer to easily add to the list of patches or completely override them
-KERNEL_PATCHES = "${PATCHES}"
-
-# Add a set of patches that enabled features, fixed bugs or disabled buggy features
-# that weren't part of the official PSP release
-PATCHES = "file://0001-musb-update-PIO-mode-help-information-in-Kconfig.patch \
-               file://0001-mach-omap2-pm33xx-Disable-VT-switch.patch"
-
-# Add Cryptography support early driver patches while working to get the driver
-# upstream.
-PATCHES += "file://0001-am33x-Add-memory-addresses-for-crypto-modules.patch \
-                file://0002-am33x-Add-crypto-device-and-resource-structures.patch \
-                file://0003-am33x-Add-crypto-device-and-resource-structure-for-T.patch \
-                file://0004-am33x-Add-crypto-drivers-to-Kconfig-and-Makefiles.patch \
-                file://0005-am33x-Create-header-file-for-OMAP4-crypto-modules.patch \
-                file://0006-am33x-Create-driver-for-TRNG-crypto-module.patch \
-                file://0007-am33x-Create-driver-for-AES-crypto-module.patch \
-                file://0008-am33x-Create-driver-for-SHA-MD5-crypto-module.patch \
-                file://0002-AM335x-OCF-Driver-for-Linux-3.patch \
-                file://0001-am335x-Add-crypto-driver-settings-to-defconfig.patch \
-                file://0001-am335x-Add-pm_runtime-API-to-crypto-driver.patch \
-                file://0002-am335x-Add-suspend-resume-routines-to-crypto-driver.patch \
-                file://0001-ARM-AM33xx-hwmod-Convert-SHA0-crypto-device-data-to-.patch \
-                file://0002-crypto-omap4-sham-Use-finer-grained-PM-management.patch \
-                file://0003-crypto-omap4-sham-Add-suspend-resume-PM-support.patch \
-                file://0004-crypto-omap4-sham-Don-t-use-hardcoded-base-address.patch \
-                file://0005-ARM-AM33xx-hwmod-Convert-AES0-crypto-device-data-to-.patch \
-                file://0006-crypto-omap4-aes-User-finer-grained-PM-management.patch \
-                file://0007-crypto-omap4-aes-Add-suspend-resume-PM-support.patch \
-                file://0008-crypto-omap4-aes-Don-t-use-hardcoded-base-address.patch \
-                file://0009-ARM-AM33xx-hwmod-Convert-RNG-device-data-to-hwmod.patch \
-                file://0010-hwrng-omap4-rng-Convert-to-use-pm_runtime-API.patch \
-                file://0001-omap4-rng-Remove-check-for-GP-only-device-type-in-RN.patch \
-               "
-
-# Add SmartReflex support early driver patches while working to get the driver
-# upstream.
-PATCHES += "file://0001-am33xx-Add-SmartReflex-support.patch \
-            file://0002-am33xx-Enable-CONFIG_AM33XX_SMARTREFLEX.patch \
-            file://0002-Smartreflex-limited-to-ES-1.0.patch \
-            file://0001-Smartreflex-support-for-ES-2.x-and-suspend-resume.patch \
-           "
-
-# Add a patch to the omap-serial driver to allow suspend/resume during
-# Bluetooth traffic
-PATCHES += "file://0001-omap-serial-add-delay-before-suspending.patch"
-
-# Add patch to allow wireless to work properly on EVM-SK 1.2.
-PATCHES += "file://0001-am3358-sk-modified-WLAN-enable-and-irq-to-match-boar.patch"
-
-# Add CPU utilization patch for WLAN
-PATCHES += "file://0001-am335xevm-using-edge-triggered-interrupts-for-WLAN.patch"
-
-# Add patch to enable pullup on WLAN enable
-PATCHES += "file://0001-am335x-enable-pullup-on-the-WLAN-enable-pin-fo.patch"
-
-# Update SPI flash layout. Increase space allocated for u-boot
-PATCHES += "file://0001-ARM-OMAP2-AM335x-Update-SPI-flash-layout.patch"
-
-# Add support for Beaglebone Black
-PATCHES += "file://0001-am335x-Add-minimal-support-for-Beaglebone-Black.patch \
-            file://0001-am335x-Re-enable-Turbo-and-Nitro-modes-for-Beaglebon.patch \
-"
-
-# Copy the am33x-cm3 firmware if it is available
-do_configure_append() {
-    if [ -e "${STAGING_DIR_HOST}/${base_libdir}/firmware/am335x-pm-firmware.bin" ]
-    then
-        cp "${STAGING_DIR_HOST}/${base_libdir}/firmware/am335x-pm-firmware.bin" "${S}/firmware"
-    fi
-}
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0001-expansion-add-buddy-param-for-expansionboard-names.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0001-expansion-add-buddy-param-for-expansionboard-names.patch
deleted file mode 100644
index 31f079b..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0001-expansion-add-buddy-param-for-expansionboard-names.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 0e4ed624d99a4bcc57d6243867a00472b141b3f8 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Mon, 10 Oct 2011 11:12:40 -0500
-Subject: [PATCH 01/13] expansion: add buddy param for expansionboard names
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 4a71cb7..6f8cf47 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -21,6 +21,7 @@
- #include <linux/io.h>
- #include <linux/leds.h>
- #include <linux/gpio.h>
-+#include <linux/irq.h>
- #include <linux/input.h>
- #include <linux/gpio_keys.h>
- #include <linux/opp.h>
-@@ -156,6 +157,8 @@ static void __init omap3_beagle_init_rev(void)
- 	}
- }
- 
-+char expansionboard_name[16];
-+
- static struct mtd_partition omap3beagle_nand_partitions[] = {
- 	/* All the partition sizes are listed in terms of NAND block size */
- 	{
-@@ -474,6 +477,15 @@ static struct omap_board_mux board_mux[] __initdata = {
- };
- #endif
- 
-+static int __init expansionboard_setup(char *str)
-+{
-+	if (!str)
-+		return -EINVAL;
-+	strncpy(expansionboard_name, str, 16);
-+	printk(KERN_INFO "Beagle expansionboard: %s\n", expansionboard_name);
-+	return 0;
-+}
-+
- static void __init beagle_opp_init(void)
- {
- 	int r = 0;
-@@ -552,6 +564,8 @@ static void __init omap3_beagle_init(void)
- 	beagle_opp_init();
- }
- 
-+early_param("buddy", expansionboard_setup);
-+
- MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
- 	/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
- 	.atag_offset	= 0x100,
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0002-expansion-add-mmc-regulator-and-ds1307-rtc.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0002-expansion-add-mmc-regulator-and-ds1307-rtc.patch
deleted file mode 100644
index 27cc46c..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0002-expansion-add-mmc-regulator-and-ds1307-rtc.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 97ce508ccf66c32b24087f8e0243222b51bc0c09 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Mon, 10 Oct 2011 11:13:49 -0500
-Subject: [PATCH 02/13] expansion: add mmc regulator and ds1307 rtc
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   19 +++++++++++++++++++
- 1 files changed, 19 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 6f8cf47..9f5706b 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -257,6 +257,12 @@ static struct omap2_hsmmc_info mmc[] = {
- 		.caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
- 		.gpio_wp	= -EINVAL,
- 	},
-+	{
-+		.mmc		= 2,
-+		.caps       = MMC_CAP_4_BIT_DATA,
-+		.transceiver	= true,
-+		.ocr_mask	= 0x00100000,	/* 3.3V */
-+	},
- 	{}	/* Terminator */
- };
- 
-@@ -378,6 +384,18 @@ static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
-        },
- };
- 
-+#if defined(CONFIG_RTC_DRV_DS1307) || \
-+	defined(CONFIG_RTC_DRV_DS1307_MODULE)
-+
-+static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {
-+	{
-+		I2C_BOARD_INFO("ds1307", 0x68),
-+	},
-+};
-+#else
-+static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {};
-+#endif
-+
- static int __init omap3_beagle_i2c_init(void)
- {
- 	omap3_pmic_get_config(&beagle_twldata,
-@@ -388,6 +406,7 @@ static int __init omap3_beagle_i2c_init(void)
- 	beagle_twldata.vpll2->constraints.name = "VDVI";
- 
- 	omap3_pmic_init("twl4030", &beagle_twldata);
-+	omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, ARRAY_SIZE(beagle_i2c2_boardinfo));
- 	/* Bus 3 is attached to the DVI port where devices like the pico DLP
- 	 * projector don't work reliably with 400kHz */
- 	omap_register_i2c_bus(3, 100, beagle_i2c_eeprom, ARRAY_SIZE(beagle_i2c_eeprom));
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0003-expansion-add-zippy.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0003-expansion-add-zippy.patch
deleted file mode 100644
index 8da7c55..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0003-expansion-add-zippy.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 7548790462d7cea9d92688b488026569187b1044 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Mon, 10 Oct 2011 11:16:12 -0500
-Subject: [PATCH 03/13] expansion: add zippy
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   51 +++++++++++++++++++++++++++++++
- 1 files changed, 51 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 9f5706b..6ffafd6 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -159,6 +159,48 @@ static void __init omap3_beagle_init_rev(void)
- 
- char expansionboard_name[16];
- 
-+#if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
-+
-+#include <plat/mcspi.h>
-+#include <linux/spi/spi.h>
-+
-+#define OMAP3BEAGLE_GPIO_ENC28J60_IRQ 157
-+
-+static struct omap2_mcspi_device_config enc28j60_spi_chip_info = {
-+	.turbo_mode	= 0,
-+	.single_channel	= 1,	/* 0: slave, 1: master */
-+};
-+
-+static struct spi_board_info omap3beagle_zippy_spi_board_info[] __initdata = {
-+	{
-+		.modalias		= "enc28j60",
-+		.bus_num		= 4,
-+		.chip_select		= 0,
-+		.max_speed_hz		= 20000000,
-+		.controller_data	= &enc28j60_spi_chip_info,
-+	},
-+};
-+
-+static void __init omap3beagle_enc28j60_init(void)
-+{
-+	if ((gpio_request(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, "ENC28J60_IRQ") == 0) &&
-+	    (gpio_direction_input(OMAP3BEAGLE_GPIO_ENC28J60_IRQ) == 0)) {
-+		gpio_export(OMAP3BEAGLE_GPIO_ENC28J60_IRQ, 0);
-+		omap3beagle_zippy_spi_board_info[0].irq	= OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_ENC28J60_IRQ);
-+		irq_set_irq_type(omap3beagle_zippy_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
-+	} else {
-+		printk(KERN_ERR "could not obtain gpio for ENC28J60_IRQ\n");
-+		return;
-+	}
-+
-+	spi_register_board_info(omap3beagle_zippy_spi_board_info,
-+			ARRAY_SIZE(omap3beagle_zippy_spi_board_info));
-+}
-+
-+#else
-+static inline void __init omap3beagle_enc28j60_init(void) { return; }
-+#endif
-+
- static struct mtd_partition omap3beagle_nand_partitions[] = {
- 	/* All the partition sizes are listed in terms of NAND block size */
- 	{
-@@ -567,6 +609,15 @@ static void __init omap3_beagle_init(void)
- 	/* REVISIT leave DVI powered down until it's needed ... */
- 	gpio_request_one(170, GPIOF_OUT_INIT_HIGH, "DVI_nPD");
- 
-+	if(!strcmp(expansionboard_name, "zippy"))
-+	{
-+		printk(KERN_INFO "Beagle expansionboard: initializing enc28j60\n");
-+		omap3beagle_enc28j60_init();
-+		printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
-+		mmc[1].gpio_wp = 141;
-+		mmc[1].gpio_cd = 162;
-+	}
-+
- 	usb_musb_init(NULL);
- 	usbhs_init(&usbhs_bdata);
- 	omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0004-expansion-add-zippy2.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0004-expansion-add-zippy2.patch
deleted file mode 100644
index c2d0dde..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0004-expansion-add-zippy2.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 27a4c659c1c665b877c032d3409b0c593cd0463b Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Mon, 10 Oct 2011 11:18:08 -0500
-Subject: [PATCH 04/13] expansion: add zippy2
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   51 +++++++++++++++++++++++++++++++
- 1 files changed, 51 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 6ffafd6..259e6e7 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -201,6 +201,48 @@ static void __init omap3beagle_enc28j60_init(void)
- static inline void __init omap3beagle_enc28j60_init(void) { return; }
- #endif
- 
-+#if defined(CONFIG_KS8851) || defined(CONFIG_KS8851_MODULE)
-+
-+#include <plat/mcspi.h>
-+#include <linux/spi/spi.h>
-+
-+#define OMAP3BEAGLE_GPIO_KS8851_IRQ 157
-+
-+static struct omap2_mcspi_device_config ks8851_spi_chip_info = {
-+	.turbo_mode	= 0,
-+	.single_channel	= 1,	/* 0: slave, 1: master */
-+};
-+
-+static struct spi_board_info omap3beagle_zippy2_spi_board_info[] __initdata = {
-+	{
-+		.modalias		= "ks8851",
-+		.bus_num		= 4,
-+		.chip_select		= 0,
-+		.max_speed_hz		= 36000000,
-+		.controller_data	= &ks8851_spi_chip_info,
-+	},
-+};
-+
-+static void __init omap3beagle_ks8851_init(void)
-+{
-+	if ((gpio_request(OMAP3BEAGLE_GPIO_KS8851_IRQ, "KS8851_IRQ") == 0) &&
-+	    (gpio_direction_input(OMAP3BEAGLE_GPIO_KS8851_IRQ) == 0)) {
-+		gpio_export(OMAP3BEAGLE_GPIO_KS8851_IRQ, 0);
-+		omap3beagle_zippy2_spi_board_info[0].irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_GPIO_KS8851_IRQ);
-+		irq_set_irq_type(omap3beagle_zippy2_spi_board_info[0].irq, IRQ_TYPE_EDGE_FALLING);
-+	} else {
-+		printk(KERN_ERR "could not obtain gpio for KS8851_IRQ\n");
-+		return;
-+	}
-+
-+	spi_register_board_info(omap3beagle_zippy2_spi_board_info,
-+			ARRAY_SIZE(omap3beagle_zippy2_spi_board_info));
-+}
-+
-+#else
-+static inline void __init omap3beagle_ks8851_init(void) { return; }
-+#endif
-+
- static struct mtd_partition omap3beagle_nand_partitions[] = {
- 	/* All the partition sizes are listed in terms of NAND block size */
- 	{
-@@ -618,6 +660,15 @@ static void __init omap3_beagle_init(void)
- 		mmc[1].gpio_cd = 162;
- 	}
- 
-+	if(!strcmp(expansionboard_name, "zippy2"))
-+	{
-+		printk(KERN_INFO "Beagle expansionboard: initializing ks_8851\n");
-+		omap3beagle_ks8851_init();
-+		printk(KERN_INFO "Beagle expansionboard: assigning GPIO 141 and 162 to MMC1\n");
-+		mmc[1].gpio_wp = 141;
-+		mmc[1].gpio_cd = 162;
-+	}
-+
- 	usb_musb_init(NULL);
- 	usbhs_init(&usbhs_bdata);
- 	omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0005-expansion-add-trainer.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0005-expansion-add-trainer.patch
deleted file mode 100644
index b57bf74..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0005-expansion-add-trainer.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 0dc814729657ab525ed8ac2e1a96e4f3dc706bb3 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Mon, 10 Oct 2011 11:18:49 -0500
-Subject: [PATCH 05/13] expansion: add trainer
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   31 +++++++++++++++++++++++++++++++
- 1 files changed, 31 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 259e6e7..b0b16b4 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -669,6 +669,37 @@ static void __init omap3_beagle_init(void)
- 		mmc[1].gpio_cd = 162;
- 	}
- 
-+	if(!strcmp(expansionboard_name, "trainer"))
-+	{
-+		printk(KERN_INFO "Beagle expansionboard: exporting GPIOs 130-141,162 to userspace\n");
-+		gpio_request(130, "sysfs");
-+		gpio_export(130, 1);
-+		gpio_request(131, "sysfs");
-+		gpio_export(131, 1);
-+		gpio_request(132, "sysfs");
-+		gpio_export(132, 1);
-+		gpio_request(133, "sysfs");
-+		gpio_export(133, 1);
-+		gpio_request(134, "sysfs");
-+		gpio_export(134, 1);
-+		gpio_request(135, "sysfs");
-+		gpio_export(135, 1);
-+		gpio_request(136, "sysfs");
-+		gpio_export(136, 1);
-+		gpio_request(137, "sysfs");
-+		gpio_export(137, 1);
-+		gpio_request(138, "sysfs");
-+		gpio_export(138, 1);
-+		gpio_request(139, "sysfs");
-+		gpio_export(139, 1);
-+		gpio_request(140, "sysfs");
-+		gpio_export(140, 1);
-+		gpio_request(141, "sysfs");
-+		gpio_export(141, 1);
-+		gpio_request(162, "sysfs");
-+		gpio_export(162, 1);
-+	}
-+
- 	usb_musb_init(NULL);
- 	usbhs_init(&usbhs_bdata);
- 	omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0006-expansion-add-ulcd.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0006-expansion-add-ulcd.patch
deleted file mode 100644
index cf56d9c..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0006-expansion-add-ulcd.patch
+++ /dev/null
@@ -1,262 +0,0 @@
-From 3c92dddf8709162e8ee3a6bdacb83a3e85f70fb1 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Fri, 16 Mar 2012 09:47:57 -0500
-Subject: [PATCH 06/13] expansion: add ulcd
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c          |  122 ++++++++++++++++++++++
- drivers/video/omap2/displays/panel-generic-dpi.c |   25 +++++
- 2 files changed, 147 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index b0b16b4..a546c2b 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -33,6 +33,7 @@
- 
- #include <linux/regulator/machine.h>
- #include <linux/i2c/twl.h>
-+#include <linux/i2c/tsc2007.h>
- 
- #include <mach/hardware.h>
- #include <asm/mach-types.h>
-@@ -84,11 +85,15 @@ static struct {
- 	int usb_pwr_level;
- 	int reset_gpio;
- 	int usr_button_gpio;
-+	char *lcd_driver_name;
-+	int lcd_pwren;
- } beagle_config = {
- 	.mmc1_gpio_wp = -EINVAL,
- 	.usb_pwr_level = GPIOF_OUT_INIT_LOW,
- 	.reset_gpio = 129,
- 	.usr_button_gpio = 4,
-+	.lcd_driver_name = "",
-+	.lcd_pwren = 156
- };
- 
- static struct gpio omap3_beagle_rev_gpios[] __initdata = {
-@@ -158,6 +163,7 @@ static void __init omap3_beagle_init_rev(void)
- }
- 
- char expansionboard_name[16];
-+char expansionboard2_name[16];
- 
- #if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
- 
-@@ -312,9 +318,46 @@ static struct omap_dss_device beagle_tv_device = {
- 	.phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO,
- };
- 
-+static int beagle_enable_lcd(struct omap_dss_device *dssdev)
-+{
-+       if (gpio_is_valid(beagle_config.lcd_pwren)) {
-+               printk(KERN_INFO "%s: Enabling LCD\n", __FUNCTION__);
-+               gpio_set_value(beagle_config.lcd_pwren, 0);
-+       } else {
-+               printk(KERN_INFO "%s: Invalid LCD enable GPIO: %d\n",
-+                       __FUNCTION__, beagle_config.lcd_pwren);
-+       }
-+
-+       return 0;
-+}
-+
-+static void beagle_disable_lcd(struct omap_dss_device *dssdev)
-+{
-+       if (gpio_is_valid(beagle_config.lcd_pwren)) {
-+               printk(KERN_INFO "%s: Disabling LCD\n", __FUNCTION__);
-+               gpio_set_value(beagle_config.lcd_pwren, 1);
-+       } else {
-+               printk(KERN_INFO "%s: Invalid LCD enable GPIO: %d\n",
-+                       __FUNCTION__, beagle_config.lcd_pwren);
-+       }
-+
-+       return;
-+}
-+
-+static struct omap_dss_device beagle_lcd_device = {
-+	.type                   = OMAP_DISPLAY_TYPE_DPI,
-+	.name                   = "lcd",
-+	.driver_name		= "tfc_s9700rtwv35tr-01b",
-+	.phy.dpi.data_lines     = 24,
-+	.platform_enable        = beagle_enable_lcd,
-+	.platform_disable       = beagle_disable_lcd,
-+	.reset_gpio 		= -EINVAL,
-+};
-+
- static struct omap_dss_device *beagle_dss_devices[] = {
- 	&beagle_dvi_device,
- 	&beagle_tv_device,
-+	&beagle_lcd_device,
- };
- 
- static struct omap_dss_board_info beagle_dss_data = {
-@@ -331,6 +374,11 @@ static void __init beagle_display_init(void)
- 			     "DVI reset");
- 	if (r < 0)
- 		printk(KERN_ERR "Unable to get DVI reset GPIO\n");
-+
-+	r = gpio_request_one(beagle_config.lcd_pwren, GPIOF_OUT_INIT_LOW,
-+                            "LCD power");
-+	if (r < 0)
-+		printk(KERN_ERR "Unable to get LCD power enable GPIO\n");
- }
- 
- #include "sdram-micron-mt46h32m32lf-6.h"
-@@ -480,6 +528,50 @@ static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {
- static struct i2c_board_info __initdata beagle_i2c2_boardinfo[] = {};
- #endif
- 
-+#if defined(CONFIG_INPUT_TOUCHSCREEN) && \
-+	( defined(CONFIG_TOUCHSCREEN_TSC2007) || defined(CONFIG_TOUCHSCREEN_TSC2007_MODULE))
-+/* Touchscreen */
-+#define OMAP3BEAGLE_TSC2007_GPIO 157
-+static int omap3beagle_tsc2007_get_pendown_state(void)
-+{
-+	return !gpio_get_value(OMAP3BEAGLE_TSC2007_GPIO);
-+}
-+
-+static void __init omap3beagle_tsc2007_init(void)
-+{
-+	int r;
-+
-+	omap_mux_init_gpio(OMAP3BEAGLE_TSC2007_GPIO, OMAP_PIN_INPUT_PULLUP);
-+
-+	r = gpio_request_one(OMAP3BEAGLE_TSC2007_GPIO, GPIOF_IN, "tsc2007_pen_down");
-+	if (r < 0) {
-+		printk(KERN_ERR "failed to request GPIO#%d for "
-+		"tsc2007 pen down IRQ\n", OMAP3BEAGLE_TSC2007_GPIO);
-+		return;
-+	}
-+
-+	irq_set_irq_type(gpio_to_irq(OMAP3BEAGLE_TSC2007_GPIO), IRQ_TYPE_EDGE_FALLING);
-+}
-+
-+static struct tsc2007_platform_data tsc2007_info = {
-+	.model = 2007,
-+	.x_plate_ohms = 180,
-+	.get_pendown_state = omap3beagle_tsc2007_get_pendown_state,
-+};
-+
-+static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {
-+	{
-+		I2C_BOARD_INFO("tlc59108", 0x40),
-+		I2C_BOARD_INFO("tsc2007", 0x48),
-+		.irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_TSC2007_GPIO),
-+		.platform_data = &tsc2007_info,
-+	},
-+};
-+#else
-+static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {};
-+static void __init omap3beagle_tsc2007_init(void) { return; }
-+#endif
-+
- static int __init omap3_beagle_i2c_init(void)
- {
- 	omap3_pmic_get_config(&beagle_twldata,
-@@ -490,7 +582,17 @@ static int __init omap3_beagle_i2c_init(void)
- 	beagle_twldata.vpll2->constraints.name = "VDVI";
- 
- 	omap3_pmic_init("twl4030", &beagle_twldata);
-+	if(!strcmp(expansionboard2_name, "bbtoys-ulcd"))
-+	{
-+		printk(KERN_INFO "Beagle second expansionboard: registering bbtoys-ulcd i2c bus\n");
-+		omap_register_i2c_bus(2, 400,  beagle_i2c2_bbtoys_ulcd,
-+							ARRAY_SIZE(beagle_i2c2_bbtoys_ulcd));
-+	}
-+	else
-+	{
- 	omap_register_i2c_bus(2, 400, beagle_i2c2_boardinfo, ARRAY_SIZE(beagle_i2c2_boardinfo));
-+	}
-+
- 	/* Bus 3 is attached to the DVI port where devices like the pico DLP
- 	 * projector don't work reliably with 400kHz */
- 	omap_register_i2c_bus(3, 100, beagle_i2c_eeprom, ARRAY_SIZE(beagle_i2c_eeprom));
-@@ -589,6 +691,15 @@ static int __init expansionboard_setup(char *str)
- 	return 0;
- }
- 
-+static int __init expansionboard2_setup(char *str)
-+{
-+	if (!str)
-+		return -EINVAL;
-+	strncpy(expansionboard2_name, str, 16);
-+	printk(KERN_INFO "Beagle second expansionboard: %s\n", expansionboard2_name);
-+	return 0;
-+}
-+
- static void __init beagle_opp_init(void)
- {
- 	int r = 0;
-@@ -640,6 +751,10 @@ static void __init omap3_beagle_init(void)
- 
- 	gpio_buttons[0].gpio = beagle_config.usr_button_gpio;
- 
-+	/* TODO: set lcd_driver_name by command line or device tree */
-+	beagle_config.lcd_driver_name = "tfc_s9700rtwv35tr-01b",
-+	//lcd_panel.name = beagle_config.lcd_driver_name;
-+
- 	platform_add_devices(omap3_beagle_devices,
- 			ARRAY_SIZE(omap3_beagle_devices));
- 	omap_display_init(&beagle_dss_data);
-@@ -700,6 +815,12 @@ static void __init omap3_beagle_init(void)
- 		gpio_export(162, 1);
- 	}
- 
-+	if(!strcmp(expansionboard2_name, "bbtoys-ulcd"))
-+	{
-+		printk(KERN_INFO "Beagle second expansionboard: initializing touchscreen: tsc2007\n");
-+		omap3beagle_tsc2007_init();
-+	}
-+
- 	usb_musb_init(NULL);
- 	usbhs_init(&usbhs_bdata);
- 	omap_nand_flash_init(NAND_BUSWIDTH_16, omap3beagle_nand_partitions,
-@@ -717,6 +838,7 @@ static void __init omap3_beagle_init(void)
- }
- 
- early_param("buddy", expansionboard_setup);
-+early_param("buddy2", expansionboard2_setup);
- 
- MACHINE_START(OMAP3_BEAGLE, "OMAP3 Beagle Board")
- 	/* Maintainer: Syed Mohammed Khasim - http://beagleboard.org */
-diff --git a/drivers/video/omap2/displays/panel-generic-dpi.c b/drivers/video/omap2/displays/panel-generic-dpi.c
-index 519c47d..495d693 100644
---- a/drivers/video/omap2/displays/panel-generic-dpi.c
-+++ b/drivers/video/omap2/displays/panel-generic-dpi.c
-@@ -297,6 +297,31 @@ static struct panel_config generic_dpi_panels[] = {
- 
- 		.name			= "apollon",
- 	},
-+
-+	/* ThreeFiveCorp S9700RTWV35TR-01B */
-+	{
-+		{
-+			.x_res		= 800,
-+			.y_res		= 480,
-+
-+			.pixel_clock	= 30000,
-+
-+			.hsw		= 49,
-+			.hfp		= 41,
-+			.hbp		= 40,
-+
-+			.vsw		= 4,
-+			.vfp		= 14,
-+			.vbp		= 29,
-+		},
-+		.acbi			= 0x0,
-+		.acb			= 0x0,
-+		.config			= OMAP_DSS_LCD_TFT | OMAP_DSS_LCD_IVS |
-+					  OMAP_DSS_LCD_IHS, // | OMAP_DSS_LCD_IEO; - TODO check this - doesn't work with this enabled
-+		.power_on_delay		= 50,
-+		.power_off_delay	= 100,
-+		.name			= "tfc_s9700rtwv35tr-01b",
-+	},
- };
- 
- struct panel_drv_data {
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0007-beagleboard-reinstate-usage-of-hi-speed-PLL-divider.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0007-beagleboard-reinstate-usage-of-hi-speed-PLL-divider.patch
deleted file mode 100644
index b8b7589..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0007-beagleboard-reinstate-usage-of-hi-speed-PLL-divider.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 460ac29a1ee0577d6b9044caa53761cc0d02b495 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 25 Jan 2012 15:48:36 +0100
-Subject: [PATCH 07/13] beagleboard: reinstate usage of hi-speed PLL divider
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-omap3beagle.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index a546c2b..e28ae72 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -308,6 +308,11 @@ static struct omap_dss_device beagle_dvi_device = {
- 	.driver_name = "dvi",
- 	.data = &dvi_panel,
- 	.phy.dpi.data_lines = 24,
-+	.clocks = {
-+		.dispc = {
-+			.dispc_fclk_src = OMAP_DSS_CLK_SRC_DSI_PLL_HSDIV_DISPC,
-+		},
-+	},
- 	.reset_gpio = -EINVAL,
- };
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0008-Turn-on-the-USB-regulator-on-Beagle-xM-explicitly.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0008-Turn-on-the-USB-regulator-on-Beagle-xM-explicitly.patch
deleted file mode 100644
index 1aec952..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0008-Turn-on-the-USB-regulator-on-Beagle-xM-explicitly.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 3d9465ffd5becb88c1ba36b98f8375898605f529 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 23 Feb 2012 09:23:10 -0600
-Subject: [PATCH 08/13] Turn on the USB regulator on Beagle xM explicitly
-
- Turn on the USB regulator on Beagle xM explicitly when the USB
- subsystem asks for it, rather than relying on u-boot to do it.
-
- http://www.spinics.net/lists/linux-omap/msg65102.html
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   19 +++++++++++++++++++
- 1 files changed, 19 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index e28ae72..30cb2f0 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -411,6 +411,24 @@ static struct regulator_consumer_supply beagle_vsim_supply[] = {
- 	REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.0"),
- };
- 
-+static struct regulator_consumer_supply beagle_usb_supply[] = {
-+	REGULATOR_SUPPLY("hsusb0", "ehci-omap.0"),
-+	REGULATOR_SUPPLY("hsusb1", "ehci-omap.0")
-+};
-+
-+static struct regulator_init_data usb_power = {
-+	.constraints = {
-+		.min_uV			= 1800000,
-+		.max_uV			= 1800000,
-+		.valid_modes_mask	= REGULATOR_MODE_NORMAL,
-+		.valid_ops_mask		= REGULATOR_CHANGE_VOLTAGE
-+					| REGULATOR_CHANGE_MODE
-+					| REGULATOR_CHANGE_STATUS,
-+	},
-+	.num_consumer_supplies = ARRAY_SIZE(beagle_usb_supply),
-+	.consumer_supplies = beagle_usb_supply
-+};
-+
- static struct gpio_led gpio_leds[];
- 
- static int beagle_twl_gpio_setup(struct device *dev,
-@@ -513,6 +531,7 @@ static struct twl4030_platform_data beagle_twldata = {
- 	.gpio		= &beagle_gpio_data,
- 	.vmmc1		= &beagle_vmmc1,
- 	.vsim		= &beagle_vsim,
-+	.vaux2		= &usb_power,
- };
- 
- static struct i2c_board_info __initdata beagle_i2c_eeprom[] = {
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0009-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0009-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch
deleted file mode 100644
index 79a25ab..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0009-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 1a553663864b5b69dcdfd7779640a1c0ce136a93 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Wed, 23 Mar 2011 08:37:54 -0500
-Subject: [PATCH 09/13] meego: modedb add Toshiba LTA070B220F 800x480 support
-
- from http://wiki.meego.com/ARM/Meego_on_Beagleboard_from_scratch
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/video/modedb.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
-index 5b686de..69ad1ec 100644
---- a/drivers/video/modedb.c
-+++ b/drivers/video/modedb.c
-@@ -293,6 +293,10 @@ static const struct fb_videomode modedb[] = {
- 	/* 864x480 @ 60 Hz, 35.15 kHz hsync */
- 	{ NULL, 60, 864, 480, 27777, 1, 1, 1, 1, 0, 0,
- 		0, FB_VMODE_NONINTERLACED },
-+
-+	/* 800x480 @ 60 Hz, Toshiba LTA070B220F 7 inch LCD */
-+	{  NULL, 60, 800, 480, 32787, 48, 80, 33, 31, 32, 2,
-+		FB_SYNC_HOR_HIGH_ACT|FB_SYNC_VERT_HIGH_ACT, FB_VMODE_NONINTERLACED },
- };
- 
- #ifdef CONFIG_FB_MODE_HELPERS
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0010-beagleboard-fix-uLCD7-support.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0010-beagleboard-fix-uLCD7-support.patch
deleted file mode 100644
index 9837ee9..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0010-beagleboard-fix-uLCD7-support.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 6a386a61fc5cd9c71f8c5dc577e70b4c0f892130 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 27 Apr 2012 16:57:27 +0200
-Subject: [PATCH 10/13] beagleboard: fix uLCD7 support
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-omap3beagle.c |   14 ++++++++++++--
- 1 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 30cb2f0..0299d47 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -44,6 +44,7 @@
- #include <plat/board.h>
- #include <plat/common.h>
- #include <video/omapdss.h>
-+#include <video/omap-panel-generic-dpi.h>
- #include <video/omap-panel-dvi.h>
- #include <plat/gpmc.h>
- #include <plat/nand.h>
-@@ -349,14 +350,21 @@ static void beagle_disable_lcd(struct omap_dss_device *dssdev)
-        return;
- }
- 
-+static struct panel_generic_dpi_data lcd_panel = {
-+	.name = "tfc_s9700rtwv35tr-01b",
-+	.platform_enable = beagle_enable_lcd,
-+	.platform_disable = beagle_disable_lcd,
-+};
-+
- static struct omap_dss_device beagle_lcd_device = {
- 	.type                   = OMAP_DISPLAY_TYPE_DPI,
- 	.name                   = "lcd",
--	.driver_name		= "tfc_s9700rtwv35tr-01b",
-+	.driver_name		= "generic_dpi_panel",
- 	.phy.dpi.data_lines     = 24,
- 	.platform_enable        = beagle_enable_lcd,
- 	.platform_disable       = beagle_disable_lcd,
- 	.reset_gpio 		= -EINVAL,
-+	.data			= &lcd_panel,
- };
- 
- static struct omap_dss_device *beagle_dss_devices[] = {
-@@ -586,6 +594,8 @@ static struct tsc2007_platform_data tsc2007_info = {
- static struct i2c_board_info __initdata beagle_i2c2_bbtoys_ulcd[] = {
- 	{
- 		I2C_BOARD_INFO("tlc59108", 0x40),
-+	},
-+	{
- 		I2C_BOARD_INFO("tsc2007", 0x48),
- 		.irq = OMAP_GPIO_IRQ(OMAP3BEAGLE_TSC2007_GPIO),
- 		.platform_data = &tsc2007_info,
-@@ -777,7 +787,7 @@ static void __init omap3_beagle_init(void)
- 
- 	/* TODO: set lcd_driver_name by command line or device tree */
- 	beagle_config.lcd_driver_name = "tfc_s9700rtwv35tr-01b",
--	//lcd_panel.name = beagle_config.lcd_driver_name;
-+	lcd_panel.name = beagle_config.lcd_driver_name;
- 
- 	platform_add_devices(omap3_beagle_devices,
- 			ARRAY_SIZE(omap3_beagle_devices));
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0011-default-to-fifo-mode-5-for-old-musb-beagles.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0011-default-to-fifo-mode-5-for-old-musb-beagles.patch
deleted file mode 100644
index 5316119..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0011-default-to-fifo-mode-5-for-old-musb-beagles.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 16c97b9941534b54a2fdf4d310fd22deb10d0cc1 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Sat, 8 Jan 2011 14:31:37 -0600
-Subject: [PATCH 11/13] default to fifo mode 5, for old musb beagles
-
-The fifo mode 4, 16kb can cause corruption on musb/omap35xx,
-use mode 5, 8kb...
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/usb/musb/musb_core.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
-index 920f04e..66ce5e0 100644
---- a/drivers/usb/musb/musb_core.c
-+++ b/drivers/usb/musb/musb_core.c
-@@ -1015,7 +1015,7 @@ static void musb_shutdown(struct platform_device *pdev)
- 	|| defined(CONFIG_USB_MUSB_OMAP2PLUS_MODULE)	\
- 	|| defined(CONFIG_USB_MUSB_AM35X)		\
- 	|| defined(CONFIG_USB_MUSB_AM35X_MODULE)
--static ushort __initdata fifo_mode = 4;
-+static ushort __initdata fifo_mode = 5;
- #elif defined(CONFIG_USB_MUSB_UX500)			\
- 	|| defined(CONFIG_USB_MUSB_UX500_MODULE)
- static ushort __initdata fifo_mode = 5;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch
deleted file mode 100644
index 850d373..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch
+++ /dev/null
@@ -1,215 +0,0 @@
-From 9f4af290c74b77e16555858a338feb467a8eedb0 Mon Sep 17 00:00:00 2001
-From: "Manjunathappa, Prakash" <prakash.pm at ti.com>
-Date: Mon, 1 Aug 2011 18:25:11 +0530
-Subject: [PATCH 12/13] backlight: Add TLC59108 backlight control driver
-
-This patch adds support for I2C configurable TLC59108 backlight
-control driver.
-
-Signed-off-by: Manjunathappa, Prakash <prakash.pm at ti.com>
-Signed-off-by: Vaibhav Hiremath <hvaibhav at ti.com>
----
- drivers/video/backlight/Kconfig    |    8 ++
- drivers/video/backlight/Makefile   |    1 +
- drivers/video/backlight/tlc59108.c |  160 ++++++++++++++++++++++++++++++++++++
- 3 files changed, 169 insertions(+), 0 deletions(-)
- create mode 100755 drivers/video/backlight/tlc59108.c
-
-diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
-index 278aeaa..df9dac7 100644
---- a/drivers/video/backlight/Kconfig
-+++ b/drivers/video/backlight/Kconfig
-@@ -342,6 +342,14 @@ config BACKLIGHT_AAT2870
- 	  If you have a AnalogicTech AAT2870 say Y to enable the
- 	  backlight driver.
- 
-+config BACKLIGHT_TLC59108
-+	tristate "TLC59108 LCD Backlight Driver"
-+	depends on I2C && BACKLIGHT_CLASS_DEVICE
-+	default n
-+	help
-+	  If you have an LCD Panel with backlight control via TLC59108,
-+	  say Y to enable its LCD control driver.
-+
- endif # BACKLIGHT_CLASS_DEVICE
- 
- endif # BACKLIGHT_LCD_SUPPORT
-diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
-index fdd1fc4..ba31474 100644
---- a/drivers/video/backlight/Makefile
-+++ b/drivers/video/backlight/Makefile
-@@ -39,4 +39,5 @@ obj-$(CONFIG_BACKLIGHT_ADP8870)	+= adp8870_bl.o
- obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o
- obj-$(CONFIG_BACKLIGHT_PCF50633)	+= pcf50633-backlight.o
- obj-$(CONFIG_BACKLIGHT_AAT2870) += aat2870_bl.o
-+obj-$(CONFIG_BACKLIGHT_TLC59108)	+= tlc59108.o
- 
-diff --git a/drivers/video/backlight/tlc59108.c b/drivers/video/backlight/tlc59108.c
-new file mode 100755
-index 0000000..4f4ea34
---- /dev/null
-+++ b/drivers/video/backlight/tlc59108.c
-@@ -0,0 +1,160 @@
-+/*
-+ * ti81xxhdmi_tlc59108.c
-+ *
-+ * Copyright (C) 2011 Texas Instruments
-+ * Author: Senthil Natarajan
-+ *
-+ * tlc59108 HDMI Driver
-+ *
-+ * This program is free software; you can redistribute it and/or modify it
-+ * under the terms of the GNU General Public License version 2 as published by
-+ * the Free Software Foundation.
-+ *
-+ * This program is distributed in the hope that it will be useful, but WITHOUT
-+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-+ * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
-+ * more details.
-+ *
-+ * You should have received a copy of the GNU General Public License along with
-+ * this program.  If not, see <http://www.gnu.org/licenses/>.
-+ * History:
-+ *
-+ * Senthil Natarajan<senthil.n at ti.com> July 2011 I2C driver for tlc59108
-+ *						 backlight control
-+ */
-+
-+#include <linux/i2c.h>
-+#include <linux/kernel.h>
-+#include <linux/module.h>
-+#include <linux/backlight.h>
-+#include <linux/fb.h>
-+
-+#define tlc59108_MODULE_NAME	"tlc59108"
-+#define TLC59108_MODE1   0x00
-+#define TLC59108_PWM2    0x04
-+#define TLC59108_LEDOUT0 0x0c
-+#define TLC59108_LEDOUT1 0x0d
-+#define TLC59108_MAX_BRIGHTNESS 0xFF
-+
-+struct tlc59108_bl {
-+	struct i2c_client *client;
-+	struct backlight_device *bl;
-+};
-+
-+static void tlc59108_bl_set_backlight(struct tlc59108_bl *data, int brightness)
-+{
-+	/* Set Mode1 Register */
-+	i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00);
-+
-+	/* Set LEDOUT0 Register */
-+	i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x21);
-+
-+	/* Set Backlight Duty Cycle*/
-+	i2c_smbus_write_byte_data(data->client, TLC59108_PWM2,
-+				  brightness & 0xff);
-+}
-+
-+static int tlc59108_bl_get_brightness(struct backlight_device *dev)
-+{
-+	struct backlight_properties *props = &dev->props;
-+
-+	return props->brightness;
-+}
-+
-+static int tlc59108_bl_update_status(struct backlight_device *dev)
-+{
-+	struct backlight_properties *props = &dev->props;
-+	struct tlc59108_bl *data = dev_get_drvdata(&dev->dev);
-+	int brightness = props->brightness;
-+
-+	tlc59108_bl_set_backlight(data, brightness);
-+
-+	return 0;
-+}
-+
-+static const struct backlight_ops bl_ops = {
-+	.get_brightness		= tlc59108_bl_get_brightness,
-+	.update_status		= tlc59108_bl_update_status,
-+};
-+
-+static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
-+{
-+	struct backlight_properties props;
-+	struct tlc59108_bl *data = kzalloc(sizeof(struct tlc59108_bl),
-+					   GFP_KERNEL);
-+	int ret = 0;
-+
-+	if (!data)
-+		return -ENOMEM;
-+
-+	i2c_set_clientdata(c, data);
-+	data->client = c;
-+
-+	memset(&props, 0, sizeof(struct backlight_properties));
-+	props.max_brightness = TLC59108_MAX_BRIGHTNESS;
-+	props.type = BACKLIGHT_RAW;
-+	data->bl = backlight_device_register("tlc59108-bl", &c->dev, data,
-+					     &bl_ops, &props);
-+	if (IS_ERR(data->bl)) {
-+		ret = PTR_ERR(data->bl);
-+		goto err_reg;
-+	}
-+
-+	data->bl->props.brightness = TLC59108_MAX_BRIGHTNESS;
-+
-+	backlight_update_status(data->bl);
-+
-+	return 0;
-+
-+err_reg:
-+	data->bl = NULL;
-+	kfree(data);
-+	return ret;
-+}
-+
-+static int tlc59108_remove(struct i2c_client *c)
-+{
-+	struct tlc59108_bl *data = i2c_get_clientdata(c);
-+
-+	backlight_device_unregister(data->bl);
-+	data->bl = NULL;
-+
-+	kfree(data);
-+
-+	return 0;
-+}
-+
-+/* I2C Device ID table */
-+static const struct i2c_device_id tlc59108_id[] = {
-+	{ "tlc59108", 0 },
-+	{ }
-+};
-+MODULE_DEVICE_TABLE(i2c, tlc59108_id);
-+
-+/* I2C driver data */
-+static struct i2c_driver tlc59108_driver = {
-+	.driver = {
-+		.owner = THIS_MODULE,
-+		.name = tlc59108_MODULE_NAME,
-+	},
-+	.probe = tlc59108_probe,
-+	.remove = tlc59108_remove,
-+	.id_table = tlc59108_id,
-+};
-+
-+static int __init tlc59108_init(void)
-+{
-+	return i2c_add_driver(&tlc59108_driver);
-+}
-+
-+static void __exit tlc59108_exit(void)
-+{
-+	i2c_del_driver(&tlc59108_driver);
-+}
-+
-+module_init(tlc59108_init);
-+module_exit(tlc59108_exit);
-+
-+MODULE_DESCRIPTION("LCD/Backlight control for TLC59108");
-+MODULE_AUTHOR("Senthil Natarajan <senthil.n at ti.com>");
-+MODULE_LICENSE("GPL v2");
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch
deleted file mode 100644
index 82d1291..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From a165f2f70ebcf073cfc934c510ecf86bb028ef4e Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 27 Apr 2012 21:30:00 +0200
-Subject: [PATCH 13/13] tlc59108: adjust for beagleboard+uLCD7
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/video/backlight/tlc59108.c |   48 ++++++++++++++++++++++++------------
- 1 files changed, 32 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/video/backlight/tlc59108.c b/drivers/video/backlight/tlc59108.c
-index 4f4ea34..de2d2ee 100755
---- a/drivers/video/backlight/tlc59108.c
-+++ b/drivers/video/backlight/tlc59108.c
-@@ -29,9 +29,16 @@
- #include <linux/backlight.h>
- #include <linux/fb.h>
- 
--#define tlc59108_MODULE_NAME	"tlc59108"
- #define TLC59108_MODE1   0x00
--#define TLC59108_PWM2    0x04
-+#define TLC59108_MODE2   0x01
-+#define TLC59108_PWM0 0x02
-+#define TLC59108_PWM1 0x03
-+#define TLC59108_PWM2 0x04
-+#define TLC59108_PWM3 0x05
-+#define TLC59108_PWM4 0x06
-+#define TLC59108_PWM5 0x07
-+#define TLC59108_PWM6 0x08
-+#define TLC59108_PWM7 0x09
- #define TLC59108_LEDOUT0 0x0c
- #define TLC59108_LEDOUT1 0x0d
- #define TLC59108_MAX_BRIGHTNESS 0xFF
-@@ -43,15 +50,9 @@ struct tlc59108_bl {
- 
- static void tlc59108_bl_set_backlight(struct tlc59108_bl *data, int brightness)
- {
--	/* Set Mode1 Register */
--	i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00);
--
--	/* Set LEDOUT0 Register */
--	i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x21);
--
- 	/* Set Backlight Duty Cycle*/
- 	i2c_smbus_write_byte_data(data->client, TLC59108_PWM2,
--				  brightness & 0xff);
-+				  0xff - brightness );
- }
- 
- static int tlc59108_bl_get_brightness(struct backlight_device *dev)
-@@ -65,7 +66,17 @@ static int tlc59108_bl_update_status(struct backlight_device *dev)
- {
- 	struct backlight_properties *props = &dev->props;
- 	struct tlc59108_bl *data = dev_get_drvdata(&dev->dev);
--	int brightness = props->brightness;
-+
-+        int brightness = props->brightness;
-+
-+        if (dev->props.state & BL_CORE_FBBLANK) {
-+                brightness = 0;
-+        	/* Set LEDOUT0 Register */
-+	        i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x10);
-+	} else {	
-+        	/* Set LEDOUT0 Register */
-+        	i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT0, 0x30);
-+	}		
- 
- 	tlc59108_bl_set_backlight(data, brightness);
- 
-@@ -77,7 +88,7 @@ static const struct backlight_ops bl_ops = {
- 	.update_status		= tlc59108_bl_update_status,
- };
- 
--static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
-+static int __devinit tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
- {
- 	struct backlight_properties props;
- 	struct tlc59108_bl *data = kzalloc(sizeof(struct tlc59108_bl),
-@@ -104,6 +115,11 @@ static int tlc59108_probe(struct i2c_client *c, const struct i2c_device_id *id)
- 
- 	backlight_update_status(data->bl);
- 
-+	i2c_smbus_write_byte_data(data->client, TLC59108_MODE1, 0x00);
-+	i2c_smbus_write_byte_data(data->client, TLC59108_PWM2, 0x80);
-+	i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT1, 0x05);
-+	i2c_smbus_write_byte_data(data->client, TLC59108_LEDOUT1, 0x15);
-+
- 	return 0;
- 
- err_reg:
-@@ -125,7 +141,7 @@ static int tlc59108_remove(struct i2c_client *c)
- }
- 
- /* I2C Device ID table */
--static const struct i2c_device_id tlc59108_id[] = {
-+static struct i2c_device_id tlc59108_id[] = {
- 	{ "tlc59108", 0 },
- 	{ }
- };
-@@ -134,12 +150,12 @@ MODULE_DEVICE_TABLE(i2c, tlc59108_id);
- /* I2C driver data */
- static struct i2c_driver tlc59108_driver = {
- 	.driver = {
--		.owner = THIS_MODULE,
--		.name = tlc59108_MODULE_NAME,
-+		.owner	= THIS_MODULE,
-+		.name	= "tlc59108"
- 	},
-+	.id_table = tlc59108_id,
- 	.probe = tlc59108_probe,
- 	.remove = tlc59108_remove,
--	.id_table = tlc59108_id,
- };
- 
- static int __init tlc59108_init(void)
-@@ -157,4 +173,4 @@ module_exit(tlc59108_exit);
- 
- MODULE_DESCRIPTION("LCD/Backlight control for TLC59108");
- MODULE_AUTHOR("Senthil Natarajan <senthil.n at ti.com>");
--MODULE_LICENSE("GPL v2");
-+MODULE_LICENSE("GPL");
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0014-expansion-add-wifi.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0014-expansion-add-wifi.patch
deleted file mode 100644
index fe175c0..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0014-expansion-add-wifi.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From cd3ddffcde4c2b2c8c66389abed3b890b12f31c2 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Mon, 16 Apr 2012 10:56:17 -0500
-Subject: [PATCH 14/14] expansion: add wifi
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3beagle.c |  103 +++++++++++++++++++++++++++++++
- 1 files changed, 103 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3beagle.c b/arch/arm/mach-omap2/board-omap3beagle.c
-index 0299d47..a7d81fc 100644
---- a/arch/arm/mach-omap2/board-omap3beagle.c
-+++ b/arch/arm/mach-omap2/board-omap3beagle.c
-@@ -166,6 +166,90 @@ static void __init omap3_beagle_init_rev(void)
- char expansionboard_name[16];
- char expansionboard2_name[16];
- 
-+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
-+#include <linux/regulator/fixed.h>
-+#include <linux/ti_wilink_st.h>
-+#include <linux/wl12xx.h>
-+
-+#define OMAP_BEAGLE_WLAN_EN_GPIO    (139)
-+#define OMAP_BEAGLE_BT_EN_GPIO      (138)
-+#define OMAP_BEAGLE_WLAN_IRQ_GPIO   (137)
-+#define OMAP_BEAGLE_FM_EN_BT_WU     (136)
-+
-+struct wl12xx_platform_data omap_beagle_wlan_data __initdata = {
-+	.irq = OMAP_GPIO_IRQ(OMAP_BEAGLE_WLAN_IRQ_GPIO),
-+	.board_ref_clock = 2, /* 38.4 MHz */
-+};
-+
-+static struct ti_st_plat_data wilink_platform_data = {
-+	.nshutdown_gpio	= OMAP_BEAGLE_BT_EN_GPIO,
-+	.dev_name		= "/dev/ttyO1",
-+	.flow_cntrl		= 1,
-+	.baud_rate		= 3000000,
-+	.chip_enable		= NULL,
-+	.suspend		= NULL,
-+	.resume		= NULL,
-+};
-+
-+static struct platform_device wl12xx_device = {
-+		.name		= "kim",
-+		.id			= -1,
-+		.dev.platform_data = &wilink_platform_data,
-+};
-+
-+static struct platform_device btwilink_device = {
-+	.name	= "btwilink",
-+	.id	= -1,
-+};
-+
-+static struct omap2_hsmmc_info mmcbbt[] = {
-+	{
-+		.mmc		= 1,
-+		.caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
-+		.gpio_wp	= -EINVAL,
-+	},
-+	{
-+		.name		= "wl1271",
-+		.mmc		= 2,
-+		.caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_POWER_OFF_CARD,
-+		.gpio_wp	= -EINVAL,
-+		.gpio_cd	= -EINVAL,
-+		.ocr_mask	= MMC_VDD_165_195,
-+		.nonremovable	= true,
-+	},
-+	{}	/* Terminator */
-+};
-+
-+static struct regulator_consumer_supply beagle_vmmc2_supply =
-+	REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1");
-+
-+static struct regulator_init_data beagle_vmmc2 = {
-+	.constraints = {
-+		.valid_ops_mask = REGULATOR_CHANGE_STATUS,
-+	},
-+	.num_consumer_supplies = 1,
-+	.consumer_supplies = &beagle_vmmc2_supply,
-+};
-+
-+static struct fixed_voltage_config beagle_vwlan = {
-+	.supply_name = "vwl1271",
-+	.microvolts = 1800000,  /* 1.8V */
-+	.gpio = OMAP_BEAGLE_WLAN_EN_GPIO,
-+	.startup_delay = 70000, /* 70ms */
-+	.enable_high = 1,
-+	.enabled_at_boot = 0,
-+	.init_data = &beagle_vmmc2,
-+};
-+
-+static struct platform_device omap_vwlan_device = {
-+	.name		= "reg-fixed-voltage",
-+	.id		= 1,
-+	.dev = {
-+		.platform_data = &beagle_vwlan,
-+	},
-+};
-+#endif
-+
- #if defined(CONFIG_ENC28J60) || defined(CONFIG_ENC28J60_MODULE)
- 
- #include <plat/mcspi.h>
-@@ -449,7 +533,15 @@ static int beagle_twl_gpio_setup(struct device *dev,
- 	mmc[0].gpio_wp = beagle_config.mmc1_gpio_wp;
- 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
- 	mmc[0].gpio_cd = gpio + 0;
-+#if defined(CONFIG_WL12XX) || defined(CONFIG_WL12XX_MODULE)
-+	if(!strcmp(expansionboard_name, "bbtoys-wifi")) {
-+		omap2_hsmmc_init(mmcbbt);
-+	} else {
-+		omap2_hsmmc_init(mmc);
-+	}
-+#else
- 	omap2_hsmmc_init(mmc);
-+#endif
- 
- 	/*
- 	 * TWL4030_GPIO_MAX + 0 == ledA, EHCI nEN_USB_PWR (out, XM active
-@@ -849,6 +941,17 @@ static void __init omap3_beagle_init(void)
- 		gpio_export(162, 1);
- 	}
- 
-+	if(!strcmp(expansionboard_name, "bbtoys-wifi"))
-+	{
-+		if (wl12xx_set_platform_data(&omap_beagle_wlan_data))
-+			pr_err("error setting wl12xx data\n");
-+		printk(KERN_INFO "Beagle expansionboard: registering wl12xx bt platform device\n");
-+		platform_device_register(&wl12xx_device);
-+		platform_device_register(&btwilink_device);
-+		printk(KERN_INFO "Beagle expansionboard: registering wl12xx wifi platform device\n");
-+		platform_device_register(&omap_vwlan_device);
-+	}
-+
- 	if(!strcmp(expansionboard2_name, "bbtoys-ulcd"))
- 	{
- 		printk(KERN_INFO "Beagle second expansionboard: initializing touchscreen: tsc2007\n");
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch
deleted file mode 100644
index cffdeb9..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From d36c69551d168b2860cd216a8554740157a606f7 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Tue, 3 Jan 2012 11:06:07 -0600
-Subject: [PATCH 15/16] ASoC: omap: add MODULE_ALIAS to mcbsp and pcm drivers
-
-This adds MODULE_ALIAS directives to the omap-mcbsp-dai and
-omap-pcm-audio drivers so they can be auto-loaded when platform
-devices are scanned.
-
-Signed-off-by: Mans Rullgard <mans.rullgard at linaro.org>
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- sound/soc/omap/omap-mcbsp.c |    1 +
- sound/soc/omap/omap-pcm.c   |    1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/sound/soc/omap/omap-mcbsp.c b/sound/soc/omap/omap-mcbsp.c
-index 4314647..a13eb34 100644
---- a/sound/soc/omap/omap-mcbsp.c
-+++ b/sound/soc/omap/omap-mcbsp.c
-@@ -800,3 +800,4 @@ module_exit(snd_omap_mcbsp_exit);
- MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula at bitmer.com>");
- MODULE_DESCRIPTION("OMAP I2S SoC Interface");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:omap-mcbsp-dai");
-diff --git a/sound/soc/omap/omap-pcm.c b/sound/soc/omap/omap-pcm.c
-index 6ede7dc..d5cffcf 100644
---- a/sound/soc/omap/omap-pcm.c
-+++ b/sound/soc/omap/omap-pcm.c
-@@ -448,3 +448,4 @@ module_exit(snd_omap_pcm_exit);
- MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula at bitmer.com>");
- MODULE_DESCRIPTION("OMAP PCM DMA module");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:omap-pcm-audio");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch b/recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch
deleted file mode 100644
index 7865734..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch
+++ /dev/null
@@ -1,1119 +0,0 @@
-From c5ae7182911a49960d2b7775c941244ac41c105c Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Tue, 3 Jan 2012 11:03:32 -0600
-Subject: [PATCH 16/16] ASoC: omap: convert per-board modules to platform
- drivers
-
-This converts the per-board modules to platform drivers for a
-device created by in main platform setup.  These drivers call
-snd_soc_register_card() directly instead of going via a "soc-audio"
-device and the corresponding driver in soc-core.
-
-Signed-off-by: Mans Rullgard <mans.rullgard at linaro.org>
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/devices.c |   34 ++++++++++++++++++++
- sound/soc/omap/am3517evm.c    |   52 ++++++++++++++++++------------
- sound/soc/omap/igep0020.c     |   49 ++++++++++++++++++-----------
- sound/soc/omap/n810.c         |   70 +++++++++++++++++++++++++----------------
- sound/soc/omap/omap3beagle.c  |   52 ++++++++++++++++++------------
- sound/soc/omap/omap3evm.c     |   53 +++++++++++++++++++------------
- sound/soc/omap/omap3pandora.c |   67 +++++++++++++++++++++++----------------
- sound/soc/omap/overo.c        |   53 ++++++++++++++++++-------------
- sound/soc/omap/rx51.c         |   52 +++++++++++++++++++-----------
- sound/soc/omap/sdp3430.c      |   62 +++++++++++++++++++++---------------
- sound/soc/omap/sdp4430.c      |   53 +++++++++++++++++++------------
- sound/soc/omap/zoom2.c        |   65 ++++++++++++++++++++++++--------------
- 12 files changed, 423 insertions(+), 239 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index c15cfad..0f0b320 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -285,6 +285,10 @@ static struct platform_device omap_pcm = {
- 	.id	= -1,
- };
- 
-+static struct platform_device omap_soc_audio = {
-+	.id	= -1,
-+};
-+
- /*
-  * OMAP2420 has 2 McBSP ports
-  * OMAP2430 has 5 McBSP ports
-@@ -297,8 +301,30 @@ OMAP_MCBSP_PLATFORM_DEVICE(3);
- OMAP_MCBSP_PLATFORM_DEVICE(4);
- OMAP_MCBSP_PLATFORM_DEVICE(5);
- 
-+static struct {
-+	int machine;
-+	const char *name;
-+} soc_device_names[] = {
-+	{ MACH_TYPE_OMAP3517EVM,	"am3517evm-soc-audio"	},
-+	{ MACH_TYPE_IGEP0020,		"igep2-soc-audio"	},
-+	{ MACH_TYPE_NOKIA_N810,		"n8x1-soc-audio"	},
-+	{ MACH_TYPE_NOKIA_N810_WIMAX,	"n8x1-soc-audio"	},
-+	{ MACH_TYPE_OMAP3_BEAGLE,	"omap3beagle-soc-audio"	},
-+	{ MACH_TYPE_DEVKIT8000,		"omap3beagle-soc-audio"	},
-+	{ MACH_TYPE_OMAP3EVM,		"omap3evm-soc-audio"	},
-+	{ MACH_TYPE_OMAP3_PANDORA,	"pandora-soc-audio"	},
-+	{ MACH_TYPE_OVERO,		"overo-soc-audio",	},
-+	{ MACH_TYPE_CM_T35,		"overo-soc-audio",	},
-+	{ MACH_TYPE_NOKIA_RX51,		"rx51-soc-audio",	},
-+	{ MACH_TYPE_OMAP_3430SDP,	"sdp3430-soc-audio",	},
-+	{ MACH_TYPE_OMAP_4430SDP,	"sdp4430-soc-audio",	},
-+	{ MACH_TYPE_OMAP_ZOOM2,		"zoom2-soc-audio",	},
-+};
-+
- static void omap_init_audio(void)
- {
-+	int i;
-+
- 	platform_device_register(&omap_mcbsp1);
- 	platform_device_register(&omap_mcbsp2);
- 	if (cpu_is_omap243x() || cpu_is_omap34xx() || cpu_is_omap44xx()) {
-@@ -309,6 +335,14 @@ static void omap_init_audio(void)
- 		platform_device_register(&omap_mcbsp5);
- 
- 	platform_device_register(&omap_pcm);
-+
-+	for (i = 0; i < ARRAY_SIZE(soc_device_names); i++) {
-+		if (machine_arch_type == soc_device_names[i].machine) {
-+			omap_soc_audio.name = soc_device_names[i].name;
-+			platform_device_register(&omap_soc_audio);
-+			break;
-+		}
-+	}
- }
- 
- #else
-diff --git a/sound/soc/omap/am3517evm.c b/sound/soc/omap/am3517evm.c
-index c1cd4a0..df8f795 100644
---- a/sound/soc/omap/am3517evm.c
-+++ b/sound/soc/omap/am3517evm.c
-@@ -116,45 +116,57 @@ static struct snd_soc_card snd_soc_am3517evm = {
- 	.num_dapm_routes = ARRAY_SIZE(audio_map),
- };
- 
--static struct platform_device *am3517evm_snd_device;
--
--static int __init am3517evm_soc_init(void)
-+static int __devinit am3517evm_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_am3517evm;
- 	int ret;
- 
--	if (!machine_is_omap3517evm())
--		return -ENODEV;
- 	pr_info("OMAP3517 / AM3517 EVM SoC init\n");
- 
--	am3517evm_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!am3517evm_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
-+	card->dev = &pdev->dev;
-+
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
- 	}
- 
--	platform_set_drvdata(am3517evm_snd_device, &snd_soc_am3517evm);
-+	return 0;
-+}
-+
-+static int __devexit am3517evm_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
- 
--	ret = platform_device_add(am3517evm_snd_device);
--	if (ret)
--		goto err1;
-+	snd_soc_unregister_card(card);
- 
- 	return 0;
-+}
-+
-+static struct platform_driver am3517evm_driver = {
-+	.driver = {
-+		.name = "am3517evm-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(am3517evm_snd_device);
-+	.probe = am3517evm_soc_probe,
-+	.remove = __devexit_p(am3517evm_soc_remove),
-+};
- 
--	return ret;
-+static int __init am3517evm_soc_init(void)
-+{
-+	return platform_driver_register(&am3517evm_driver);
- }
-+module_init(am3517evm_soc_init);
- 
- static void __exit am3517evm_soc_exit(void)
- {
--	platform_device_unregister(am3517evm_snd_device);
-+	platform_driver_unregister(&am3517evm_driver);
- }
--
--module_init(am3517evm_soc_init);
- module_exit(am3517evm_soc_exit);
- 
- MODULE_AUTHOR("Anuj Aggarwal <anuj.aggarwal at ti.com>");
- MODULE_DESCRIPTION("ALSA SoC OMAP3517 / AM3517 EVM");
- MODULE_LICENSE("GPL v2");
-+MODULE_ALIAS("platform:am3517evm-soc-audio");
-diff --git a/sound/soc/omap/igep0020.c b/sound/soc/omap/igep0020.c
-index 591fbf8..6446532 100644
---- a/sound/soc/omap/igep0020.c
-+++ b/sound/soc/omap/igep0020.c
-@@ -76,44 +76,57 @@ static struct snd_soc_card snd_soc_card_igep2 = {
- 	.num_links = 1,
- };
- 
--static struct platform_device *igep2_snd_device;
--
--static int __init igep2_soc_init(void)
-+static int __devinit igep2_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_card_igep2;
- 	int ret;
- 
--	if (!machine_is_igep0020())
--		return -ENODEV;
- 	printk(KERN_INFO "IGEP v2 SoC init\n");
- 
--	igep2_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!igep2_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
-+	card->dev = &pdev->dev;
-+
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
- 	}
- 
--	platform_set_drvdata(igep2_snd_device, &snd_soc_card_igep2);
-+	return 0;
-+}
- 
--	ret = platform_device_add(igep2_snd_device);
--	if (ret)
--		goto err1;
-+static int __devexit igep2_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
-+	snd_soc_unregister_card(card);
- 
- 	return 0;
-+}
-+
-+static struct platform_driver igep2_driver = {
-+	.driver = {
-+		.name = "igep2-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(igep2_snd_device);
-+	.probe = igep2_soc_probe,
-+	.remove = __devexit_p(igep2_soc_remove),
-+};
- 
--	return ret;
-+static int __init igep2_soc_init(void)
-+{
-+	return platform_driver_register(&igep2_driver);
- }
- module_init(igep2_soc_init);
- 
- static void __exit igep2_soc_exit(void)
- {
--	platform_device_unregister(igep2_snd_device);
-+	platform_driver_unregister(&igep2_driver);
- }
- module_exit(igep2_soc_exit);
- 
- MODULE_AUTHOR("Enric Balletbo i Serra <eballetbo at iseebcn.com>");
- MODULE_DESCRIPTION("ALSA SoC IGEP v2");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:igep2-soc-audio");
-diff --git a/sound/soc/omap/n810.c b/sound/soc/omap/n810.c
-index fc6209b..1db768c 100644
---- a/sound/soc/omap/n810.c
-+++ b/sound/soc/omap/n810.c
-@@ -300,38 +300,25 @@ static struct snd_soc_card snd_soc_n810 = {
- 	.num_dapm_routes = ARRAY_SIZE(audio_map),
- };
- 
--static struct platform_device *n810_snd_device;
--
--static int __init n810_soc_init(void)
-+static int __devinit n810_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_n810;
-+	struct device *dev = &pdev->dev;
- 	int err;
--	struct device *dev;
--
--	if (!(machine_is_nokia_n810() || machine_is_nokia_n810_wimax()))
--		return -ENODEV;
--
--	n810_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!n810_snd_device)
--		return -ENOMEM;
- 
--	platform_set_drvdata(n810_snd_device, &snd_soc_n810);
--	err = platform_device_add(n810_snd_device);
--	if (err)
--		goto err1;
--
--	dev = &n810_snd_device->dev;
-+	card->dev = dev;
- 
- 	sys_clkout2_src = clk_get(dev, "sys_clkout2_src");
- 	if (IS_ERR(sys_clkout2_src)) {
- 		dev_err(dev, "Could not get sys_clkout2_src clock\n");
- 		err = PTR_ERR(sys_clkout2_src);
--		goto err2;
-+		return err;
- 	}
- 	sys_clkout2 = clk_get(dev, "sys_clkout2");
- 	if (IS_ERR(sys_clkout2)) {
- 		dev_err(dev, "Could not get sys_clkout2\n");
- 		err = PTR_ERR(sys_clkout2);
--		goto err3;
-+		goto err1;
- 	}
- 	/*
- 	 * Configure 12 MHz output on SYS_CLKOUT2. Therefore we must use
-@@ -341,7 +328,7 @@ static int __init n810_soc_init(void)
- 	if (IS_ERR(func96m_clk)) {
- 		dev_err(dev, "Could not get func 96M clock\n");
- 		err = PTR_ERR(func96m_clk);
--		goto err4;
-+		goto err2;
- 	}
- 	clk_set_parent(sys_clkout2_src, func96m_clk);
- 	clk_set_rate(sys_clkout2, 12000000);
-@@ -352,33 +339,62 @@ static int __init n810_soc_init(void)
- 	gpio_direction_output(N810_HEADSET_AMP_GPIO, 0);
- 	gpio_direction_output(N810_SPEAKER_AMP_GPIO, 0);
- 
-+	err = snd_soc_register_card(card);
-+	if (err) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			err);
-+		goto err3;
-+	}
-+
- 	return 0;
--err4:
--	clk_put(sys_clkout2);
- err3:
--	clk_put(sys_clkout2_src);
-+	clk_put(func96m_clk);
- err2:
--	platform_device_del(n810_snd_device);
-+	clk_put(sys_clkout2);
- err1:
--	platform_device_put(n810_snd_device);
-+	clk_put(sys_clkout2_src);
- 
- 	return err;
- }
- 
--static void __exit n810_soc_exit(void)
-+static int __devexit n810_soc_remove(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
- 	gpio_free(N810_SPEAKER_AMP_GPIO);
- 	gpio_free(N810_HEADSET_AMP_GPIO);
- 	clk_put(sys_clkout2_src);
- 	clk_put(sys_clkout2);
- 	clk_put(func96m_clk);
- 
--	platform_device_unregister(n810_snd_device);
-+	snd_soc_unregister_card(card);
-+
-+	return 0;
- }
- 
-+static struct platform_driver n810_driver = {
-+	.driver = {
-+		.name = "n8x0-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
-+
-+	.probe = n810_soc_probe,
-+	.remove = __devexit_p(n810_soc_remove),
-+};
-+
-+static int __init n810_soc_init(void)
-+{
-+	return platform_driver_register(&n810_driver);
-+}
- module_init(n810_soc_init);
-+
-+static void __exit n810_soc_exit(void)
-+{
-+	platform_driver_unregister(&n810_driver);
-+}
- module_exit(n810_soc_exit);
- 
- MODULE_AUTHOR("Jarkko Nikula <jarkko.nikula at bitmer.com>");
- MODULE_DESCRIPTION("ALSA SoC Nokia N810");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:n8x0-soc-audio");
-diff --git a/sound/soc/omap/omap3beagle.c b/sound/soc/omap/omap3beagle.c
-index 3357dcc..10b51d8 100644
---- a/sound/soc/omap/omap3beagle.c
-+++ b/sound/soc/omap/omap3beagle.c
-@@ -106,45 +106,57 @@ static struct snd_soc_card snd_soc_omap3beagle = {
- 	.num_links = 1,
- };
- 
--static struct platform_device *omap3beagle_snd_device;
--
--static int __init omap3beagle_soc_init(void)
-+static int __devinit omap3beagle_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_omap3beagle;
- 	int ret;
- 
--	if (!(machine_is_omap3_beagle() || machine_is_devkit8000()))
--		return -ENODEV;
- 	pr_info("OMAP3 Beagle/Devkit8000 SoC init\n");
- 
--	omap3beagle_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!omap3beagle_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
-+	card->dev = &pdev->dev;
-+
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
- 	}
- 
--	platform_set_drvdata(omap3beagle_snd_device, &snd_soc_omap3beagle);
-+	return 0;
-+}
-+
-+static int __devexit omap3beagle_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
- 
--	ret = platform_device_add(omap3beagle_snd_device);
--	if (ret)
--		goto err1;
-+	snd_soc_unregister_card(card);
- 
- 	return 0;
-+}
-+
-+static struct platform_driver omap3beagle_driver = {
-+	.driver = {
-+		.name = "omap3beagle-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(omap3beagle_snd_device);
-+	.probe = omap3beagle_soc_probe,
-+	.remove = __devexit_p(omap3beagle_soc_remove),
-+};
- 
--	return ret;
-+static int __init omap3beagle_soc_init(void)
-+{
-+	return platform_driver_register(&omap3beagle_driver);
- }
-+module_init(omap3beagle_soc_init);
- 
- static void __exit omap3beagle_soc_exit(void)
- {
--	platform_device_unregister(omap3beagle_snd_device);
-+	platform_driver_unregister(&omap3beagle_driver);
- }
--
--module_init(omap3beagle_soc_init);
- module_exit(omap3beagle_soc_exit);
- 
- MODULE_AUTHOR("Steve Sakoman <steve at sakoman.com>");
- MODULE_DESCRIPTION("ALSA SoC OMAP3 Beagle");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:omap3beagle-soc-audio");
-diff --git a/sound/soc/omap/omap3evm.c b/sound/soc/omap/omap3evm.c
-index 6857895..3b95cea 100644
---- a/sound/soc/omap/omap3evm.c
-+++ b/sound/soc/omap/omap3evm.c
-@@ -74,44 +74,57 @@ static struct snd_soc_card snd_soc_omap3evm = {
- 	.num_links = 1,
- };
- 
--static struct platform_device *omap3evm_snd_device;
--
--static int __init omap3evm_soc_init(void)
-+static int __devinit omap3evm_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_omap3evm;
- 	int ret;
- 
--	if (!machine_is_omap3evm())
--		return -ENODEV;
- 	pr_info("OMAP3 EVM SoC init\n");
- 
--	omap3evm_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!omap3evm_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
-+	card->dev = &pdev->dev;
-+
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
- 	}
- 
--	platform_set_drvdata(omap3evm_snd_device, &snd_soc_omap3evm);
--	ret = platform_device_add(omap3evm_snd_device);
--	if (ret)
--		goto err1;
-+	return 0;
-+}
-+
-+static int __devexit omap3evm_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
-+	snd_soc_unregister_card(card);
- 
- 	return 0;
-+}
-+
-+static struct platform_driver omap3evm_driver = {
-+	.driver = {
-+		.name = "omap3evm-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(omap3evm_snd_device);
-+	.probe = omap3evm_soc_probe,
-+	.remove = __devexit_p(omap3evm_soc_remove),
-+};
- 
--	return ret;
-+static int __init omap3evm_soc_init(void)
-+{
-+	return platform_driver_register(&omap3evm_driver);
- }
-+module_init(omap3evm_soc_init);
- 
- static void __exit omap3evm_soc_exit(void)
- {
--	platform_device_unregister(omap3evm_snd_device);
-+	platform_driver_unregister(&omap3evm_driver);
- }
--
--module_init(omap3evm_soc_init);
- module_exit(omap3evm_soc_exit);
- 
- MODULE_AUTHOR("Anuj Aggarwal <anuj.aggarwal at ti.com>");
- MODULE_DESCRIPTION("ALSA SoC OMAP3 EVM");
- MODULE_LICENSE("GPL v2");
-+MODULE_ALIAS("platform:omap3evm-soc-audio");
-diff --git a/sound/soc/omap/omap3pandora.c b/sound/soc/omap/omap3pandora.c
-index 7605c37..fd289a4 100644
---- a/sound/soc/omap/omap3pandora.c
-+++ b/sound/soc/omap/omap3pandora.c
-@@ -237,17 +237,15 @@ static struct snd_soc_card snd_soc_card_omap3pandora = {
- 	.num_links = ARRAY_SIZE(omap3pandora_dai),
- };
- 
--static struct platform_device *omap3pandora_snd_device;
--
--static int __init omap3pandora_soc_init(void)
-+static int __devinit omap3pandora_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_card_omap3pandora;
- 	int ret;
- 
--	if (!machine_is_omap3_pandora())
--		return -ENODEV;
--
- 	pr_info("OMAP3 Pandora SoC init\n");
- 
-+	card->dev = &pdev->dev;
-+
- 	ret = gpio_request(OMAP3_PANDORA_DAC_POWER_GPIO, "dac_power");
- 	if (ret) {
- 		pr_err(PREFIX "Failed to get DAC power GPIO\n");
-@@ -272,53 +270,68 @@ static int __init omap3pandora_soc_init(void)
- 		goto fail1;
- 	}
- 
--	omap3pandora_snd_device = platform_device_alloc("soc-audio", -1);
--	if (omap3pandora_snd_device == NULL) {
--		pr_err(PREFIX "Platform device allocation failed\n");
--		ret = -ENOMEM;
--		goto fail1;
--	}
--
--	platform_set_drvdata(omap3pandora_snd_device, &snd_soc_card_omap3pandora);
--
--	ret = platform_device_add(omap3pandora_snd_device);
-+	ret = snd_soc_register_card(card);
- 	if (ret) {
--		pr_err(PREFIX "Unable to add platform device\n");
--		goto fail2;
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		goto fail1;
- 	}
- 
--	omap3pandora_dac_reg = regulator_get(&omap3pandora_snd_device->dev, "vcc");
-+	omap3pandora_dac_reg = regulator_get(card->dev, "vcc");
- 	if (IS_ERR(omap3pandora_dac_reg)) {
- 		pr_err(PREFIX "Failed to get DAC regulator from %s: %ld\n",
--			dev_name(&omap3pandora_snd_device->dev),
-+			dev_name(card->dev),
- 			PTR_ERR(omap3pandora_dac_reg));
- 		ret = PTR_ERR(omap3pandora_dac_reg);
--		goto fail3;
-+		goto fail2;
- 	}
- 
- 	return 0;
- 
--fail3:
--	platform_device_del(omap3pandora_snd_device);
- fail2:
--	platform_device_put(omap3pandora_snd_device);
-+	snd_soc_unregister_card(card);
- fail1:
- 	gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
- fail0:
- 	gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
- 	return ret;
- }
--module_init(omap3pandora_soc_init);
- 
--static void __exit omap3pandora_soc_exit(void)
-+static int __devexit omap3pandora_soc_remove(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
- 	regulator_put(omap3pandora_dac_reg);
--	platform_device_unregister(omap3pandora_snd_device);
-+	snd_soc_unregister_card(card);
- 	gpio_free(OMAP3_PANDORA_AMP_POWER_GPIO);
- 	gpio_free(OMAP3_PANDORA_DAC_POWER_GPIO);
-+
-+	return 0;
-+}
-+
-+static struct platform_driver omap3pandora_driver = {
-+	.driver = {
-+		.name = "pandora-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
-+
-+	.probe = omap3pandora_soc_probe,
-+	.remove = __devexit_p(omap3pandora_soc_remove),
-+};
-+
-+static int __init omap3pandora_soc_init(void)
-+{
-+	return platform_driver_register(&omap3pandora_driver);
-+}
-+module_init(omap3pandora_soc_init);
-+
-+static void __exit omap3pandora_soc_exit(void)
-+{
-+	platform_driver_unregister(&omap3pandora_driver);
- }
- module_exit(omap3pandora_soc_exit);
- 
- MODULE_AUTHOR("Grazvydas Ignotas <notasas at gmail.com>");
- MODULE_DESCRIPTION("ALSA SoC OMAP3 Pandora");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:pandora-soc-audio");
-diff --git a/sound/soc/omap/overo.c b/sound/soc/omap/overo.c
-index c3550ae..fe8fd5e 100644
---- a/sound/soc/omap/overo.c
-+++ b/sound/soc/omap/overo.c
-@@ -76,46 +76,57 @@ static struct snd_soc_card snd_soc_card_overo = {
- 	.num_links = 1,
- };
- 
--static struct platform_device *overo_snd_device;
--
--static int __init overo_soc_init(void)
-+static int __devinit overo_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_card_overo;
- 	int ret;
- 
--	if (!(machine_is_overo() || machine_is_cm_t35())) {
--		pr_debug("Incomatible machine!\n");
--		return -ENODEV;
--	}
--	printk(KERN_INFO "overo SoC init\n");
-+	pr_info("overo SoC init\n");
-+
-+	card->dev = &pdev->dev;
- 
--	overo_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!overo_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
- 	}
- 
--	platform_set_drvdata(overo_snd_device, &snd_soc_card_overo);
-+	return 0;
-+}
-+
-+static int __devexit overo_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
- 
--	ret = platform_device_add(overo_snd_device);
--	if (ret)
--		goto err1;
-+	snd_soc_unregister_card(card);
- 
- 	return 0;
-+}
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(overo_snd_device);
-+static struct platform_driver overo_driver = {
-+	.driver = {
-+		.name = "overo-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
- 
--	return ret;
-+	.probe = overo_soc_probe,
-+	.remove = __devexit_p(overo_soc_remove),
-+};
-+
-+static int __init overo_soc_init(void)
-+{
-+	return platform_driver_register(&overo_driver);
- }
- module_init(overo_soc_init);
- 
- static void __exit overo_soc_exit(void)
- {
--	platform_device_unregister(overo_snd_device);
-+	platform_driver_unregister(&overo_driver);
- }
- module_exit(overo_soc_exit);
- 
- MODULE_AUTHOR("Steve Sakoman <steve at sakoman.com>");
- MODULE_DESCRIPTION("ALSA SoC overo");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:overo-soc-audio");
-diff --git a/sound/soc/omap/rx51.c b/sound/soc/omap/rx51.c
-index 4cabb74..aca084d 100644
---- a/sound/soc/omap/rx51.c
-+++ b/sound/soc/omap/rx51.c
-@@ -391,14 +391,12 @@ static struct snd_soc_card rx51_sound_card = {
- 	.num_configs = ARRAY_SIZE(rx51_codec_conf),
- };
- 
--static struct platform_device *rx51_snd_device;
--
--static int __init rx51_soc_init(void)
-+static int __devinit rx51_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &rx51_sound_card;
- 	int err;
- 
--	if (!machine_is_nokia_rx51())
--		return -ENODEV;
-+	card->dev = &pdev->dev;
- 
- 	err = gpio_request_one(RX51_TVOUT_SEL_GPIO,
- 			       GPIOF_DIR_OUT | GPIOF_INIT_LOW, "tvout_sel");
-@@ -409,21 +407,14 @@ static int __init rx51_soc_init(void)
- 	if (err)
- 		goto err_gpio_eci_sw;
- 
--	rx51_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!rx51_snd_device) {
--		err = -ENOMEM;
-+	err = snd_soc_register_card(card);
-+	if (err) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			err);
- 		goto err1;
- 	}
- 
--	platform_set_drvdata(rx51_snd_device, &rx51_sound_card);
--
--	err = platform_device_add(rx51_snd_device);
--	if (err)
--		goto err2;
--
- 	return 0;
--err2:
--	platform_device_put(rx51_snd_device);
- err1:
- 	gpio_free(RX51_ECI_SW_GPIO);
- err_gpio_eci_sw:
-@@ -433,19 +424,44 @@ err_gpio_tvout_sel:
- 	return err;
- }
- 
--static void __exit rx51_soc_exit(void)
-+static int __devexit rx51_soc_remove(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
- 	snd_soc_jack_free_gpios(&rx51_av_jack, ARRAY_SIZE(rx51_av_jack_gpios),
- 				rx51_av_jack_gpios);
- 
--	platform_device_unregister(rx51_snd_device);
-+	snd_soc_unregister_card(card);
-+
- 	gpio_free(RX51_ECI_SW_GPIO);
- 	gpio_free(RX51_TVOUT_SEL_GPIO);
-+
-+	return 0;
- }
- 
-+static struct platform_driver rx51_driver = {
-+	.driver = {
-+		.name = "rx51-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
-+
-+	.probe = rx51_soc_probe,
-+	.remove = __devexit_p(rx51_soc_remove),
-+};
-+
-+static int __init rx51_soc_init(void)
-+{
-+	return platform_driver_register(&rx51_driver);
-+}
- module_init(rx51_soc_init);
-+
-+static void __exit rx51_soc_exit(void)
-+{
-+	platform_driver_unregister(&rx51_driver);
-+}
- module_exit(rx51_soc_exit);
- 
- MODULE_AUTHOR("Nokia Corporation");
- MODULE_DESCRIPTION("ALSA SoC Nokia RX-51");
- MODULE_LICENSE("GPL");
-+MODULE_ALIAS("platform:rx51-soc-audio");
-diff --git a/sound/soc/omap/sdp3430.c b/sound/soc/omap/sdp3430.c
-index e8fbf8e..09fd5bd 100644
---- a/sound/soc/omap/sdp3430.c
-+++ b/sound/soc/omap/sdp3430.c
-@@ -222,24 +222,15 @@ static struct snd_soc_card snd_soc_sdp3430 = {
- 	.num_dapm_routes = ARRAY_SIZE(audio_map),
- };
- 
--static struct platform_device *sdp3430_snd_device;
--
--static int __init sdp3430_soc_init(void)
-+static int __devinit sdp3430_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_sdp3430;
- 	int ret;
- 	u8 pin_mux;
- 
--	if (!machine_is_omap_3430sdp())
--		return -ENODEV;
--	printk(KERN_INFO "SDP3430 SoC init\n");
--
--	sdp3430_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!sdp3430_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
--	}
-+	pr_info("SDP3430 SoC init\n");
- 
--	platform_set_drvdata(sdp3430_snd_device, &snd_soc_sdp3430);
-+	card->dev = &pdev->dev;
- 
- 	/* Set TWL4030 GPIO6 as EXTMUTE signal */
- 	twl_i2c_read_u8(TWL4030_MODULE_INTBR, &pin_mux,
-@@ -249,30 +240,51 @@ static int __init sdp3430_soc_init(void)
- 	twl_i2c_write_u8(TWL4030_MODULE_INTBR, pin_mux,
- 						TWL4030_INTBR_PMBR1);
- 
--	ret = platform_device_add(sdp3430_snd_device);
--	if (ret)
--		goto err1;
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
-+	}
- 
- 	return 0;
-+}
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(sdp3430_snd_device);
-+static int __devexit sdp3430_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
- 
--	return ret;
-+	snd_soc_jack_free_gpios(&hs_jack, ARRAY_SIZE(hs_jack_gpios),
-+				hs_jack_gpios);
-+
-+	snd_soc_unregister_card(card);
-+
-+	return 0;
-+}
-+
-+static struct platform_driver sdp3430_driver = {
-+	.driver = {
-+		.name = "sdp3430-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
-+
-+	.probe = sdp3430_soc_probe,
-+	.remove = __devexit_p(sdp3430_soc_remove),
-+};
-+
-+static int __init sdp3430_soc_init(void)
-+{
-+	return platform_driver_register(&sdp3430_driver);
- }
- module_init(sdp3430_soc_init);
- 
- static void __exit sdp3430_soc_exit(void)
- {
--	snd_soc_jack_free_gpios(&hs_jack, ARRAY_SIZE(hs_jack_gpios),
--				hs_jack_gpios);
--
--	platform_device_unregister(sdp3430_snd_device);
-+	platform_driver_unregister(&sdp3430_driver);
- }
- module_exit(sdp3430_soc_exit);
- 
- MODULE_AUTHOR("Misael Lopez Cruz <x0052729 at ti.com>");
- MODULE_DESCRIPTION("ALSA SoC SDP3430");
- MODULE_LICENSE("GPL");
--
-+MODULE_ALIAS("platform:sdp3430-soc-audio");
-diff --git a/sound/soc/omap/sdp4430.c b/sound/soc/omap/sdp4430.c
-index 03d9fa4..b3a05b1 100644
---- a/sound/soc/omap/sdp4430.c
-+++ b/sound/soc/omap/sdp4430.c
-@@ -172,44 +172,57 @@ static struct snd_soc_card snd_soc_sdp4430 = {
- 	.num_dapm_routes = ARRAY_SIZE(audio_map),
- };
- 
--static struct platform_device *sdp4430_snd_device;
--
--static int __init sdp4430_soc_init(void)
-+static int __devinit sdp4430_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_sdp4430;
- 	int ret;
- 
--	if (!machine_is_omap_4430sdp())
--		return -ENODEV;
--	printk(KERN_INFO "SDP4430 SoC init\n");
-+	pr_info("SDP4430 SoC init\n");
-+
-+	card->dev = &pdev->dev;
- 
--	sdp4430_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!sdp4430_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		return ret;
- 	}
- 
--	platform_set_drvdata(sdp4430_snd_device, &snd_soc_sdp4430);
-+	return 0;
-+}
- 
--	ret = platform_device_add(sdp4430_snd_device);
--	if (ret)
--		goto err;
-+static int __devexit sdp4430_soc_remove(struct platform_device *pdev)
-+{
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
-+	snd_soc_unregister_card(card);
- 
- 	return 0;
-+}
- 
--err:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(sdp4430_snd_device);
--	return ret;
-+static struct platform_driver sdp4430_driver = {
-+	.driver = {
-+		.name = "sdp4430-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
-+
-+	.probe = sdp4430_soc_probe,
-+	.remove = __devexit_p(sdp4430_soc_remove),
-+};
-+
-+static int __init sdp4430_soc_init(void)
-+{
-+	return platform_driver_register(&sdp4430_driver);
- }
- module_init(sdp4430_soc_init);
- 
- static void __exit sdp4430_soc_exit(void)
- {
--	platform_device_unregister(sdp4430_snd_device);
-+	platform_driver_unregister(&sdp4430_driver);
- }
- module_exit(sdp4430_soc_exit);
- 
- MODULE_AUTHOR("Misael Lopez Cruz <x0052729 at ti.com>");
- MODULE_DESCRIPTION("ALSA SoC SDP4430");
- MODULE_LICENSE("GPL");
--
-+MODULE_ALIAS("platform:sdp4430-soc-audio");
-diff --git a/sound/soc/omap/zoom2.c b/sound/soc/omap/zoom2.c
-index 7641a7f..8db8e10 100644
---- a/sound/soc/omap/zoom2.c
-+++ b/sound/soc/omap/zoom2.c
-@@ -166,26 +166,14 @@ static struct snd_soc_card snd_soc_zoom2 = {
- 	.num_dapm_routes = ARRAY_SIZE(audio_map),
- };
- 
--static struct platform_device *zoom2_snd_device;
--
--static int __init zoom2_soc_init(void)
-+static int __devinit zoom2_soc_probe(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = &snd_soc_zoom2;
- 	int ret;
- 
--	if (!machine_is_omap_zoom2())
--		return -ENODEV;
--	printk(KERN_INFO "Zoom2 SoC init\n");
--
--	zoom2_snd_device = platform_device_alloc("soc-audio", -1);
--	if (!zoom2_snd_device) {
--		printk(KERN_ERR "Platform device allocation failed\n");
--		return -ENOMEM;
--	}
-+	pr_info("Zoom2 SoC init\n");
- 
--	platform_set_drvdata(zoom2_snd_device, &snd_soc_zoom2);
--	ret = platform_device_add(zoom2_snd_device);
--	if (ret)
--		goto err1;
-+	card->dev = &pdev->dev;
- 
- 	BUG_ON(gpio_request(ZOOM2_HEADSET_MUX_GPIO, "hs_mux") < 0);
- 	gpio_direction_output(ZOOM2_HEADSET_MUX_GPIO, 0);
-@@ -193,26 +181,57 @@ static int __init zoom2_soc_init(void)
- 	BUG_ON(gpio_request(ZOOM2_HEADSET_EXTMUTE_GPIO, "ext_mute") < 0);
- 	gpio_direction_output(ZOOM2_HEADSET_EXTMUTE_GPIO, 0);
- 
-+	ret = snd_soc_register_card(card);
-+	if (ret) {
-+		dev_err(&pdev->dev, "snd_soc_register_card() failed: %d\n",
-+			ret);
-+		goto err;
-+	}
-+
- 	return 0;
- 
--err1:
--	printk(KERN_ERR "Unable to add platform device\n");
--	platform_device_put(zoom2_snd_device);
-+err:
-+	gpio_free(ZOOM2_HEADSET_MUX_GPIO);
-+	gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO);
- 
- 	return ret;
- }
--module_init(zoom2_soc_init);
- 
--static void __exit zoom2_soc_exit(void)
-+static int __devexit zoom2_soc_remove(struct platform_device *pdev)
- {
-+	struct snd_soc_card *card = platform_get_drvdata(pdev);
-+
-+	snd_soc_unregister_card(card);
-+
- 	gpio_free(ZOOM2_HEADSET_MUX_GPIO);
- 	gpio_free(ZOOM2_HEADSET_EXTMUTE_GPIO);
- 
--	platform_device_unregister(zoom2_snd_device);
-+	return 0;
-+}
-+
-+static struct platform_driver zoom2_driver = {
-+	.driver = {
-+		.name = "zoom2-soc-audio",
-+		.owner = THIS_MODULE,
-+	},
-+
-+	.probe = zoom2_soc_probe,
-+	.remove = __devexit_p(zoom2_soc_remove),
-+};
-+
-+static int __init zoom2_soc_init(void)
-+{
-+	return platform_driver_register(&zoom2_driver);
-+}
-+module_init(zoom2_soc_init);
-+
-+static void __exit zoom2_soc_exit(void)
-+{
-+	platform_driver_unregister(&zoom2_driver);
- }
- module_exit(zoom2_soc_exit);
- 
- MODULE_AUTHOR("Misael Lopez Cruz <x0052729 at ti.com>");
- MODULE_DESCRIPTION("ALSA SoC Zoom2");
- MODULE_LICENSE("GPL");
--
-+MODULE_ALIAS("platform:zoom2-soc-audio");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagleboard/defconfig b/recipes-kernel/linux/linux-mainline-3.2/beagleboard/defconfig
deleted file mode 100644
index 28f096c..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagleboard/defconfig
+++ /dev/null
@@ -1,4274 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.2.18 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_SCHED_CLOCK=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_LZO=y
-CONFIG_DEFAULT_HOSTNAME="beagleboard"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_FHANDLE=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_AUDIT=y
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_SPARSE_IRQ=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=17
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
-CONFIG_CPUSETS=y
-CONFIG_PROC_PID_CPUSET=y
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-CONFIG_CGROUP_MEM_RES_CTLR=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP=y
-CONFIG_CGROUP_MEM_RES_CTLR_SWAP_ENABLED=y
-CONFIG_CGROUP_PERF=y
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-# CONFIG_CFS_BANDWIDTH is not set
-CONFIG_RT_GROUP_SCHED=y
-CONFIG_BLK_CGROUP=y
-# CONFIG_DEBUG_BLK_CGROUP is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-CONFIG_MM_OWNER=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-CONFIG_PERF_COUNTERS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_SLUB_DEBUG=y
-# CONFIG_COMPAT_BRK is not set
-# CONFIG_SLAB is not set
-CONFIG_SLUB=y
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_OPROFILE=y
-CONFIG_HAVE_OPROFILE=y
-CONFIG_KPROBES=y
-CONFIG_KRETPROBES=y
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-CONFIG_BLK_DEV_BSGLIB=y
-CONFIG_BLK_DEV_INTEGRITY=y
-CONFIG_BLK_DEV_THROTTLING=y
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-CONFIG_CFQ_GROUP_IOSCHED=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_PRIMA2 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PICOXCELL is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_TCC_926 is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-CONFIG_ARCH_OMAP=y
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_VT8500 is not set
-# CONFIG_ARCH_ZYNQ is not set
-# CONFIG_GPIO_PCA953X is not set
-CONFIG_KEYBOARD_GPIO_POLLED=m
-
-#
-# TI OMAP Common Features
-#
-CONFIG_ARCH_OMAP_OTG=y
-# CONFIG_ARCH_OMAP1 is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# OMAP Feature Selections
-#
-CONFIG_OMAP_SMARTREFLEX=y
-CONFIG_OMAP_SMARTREFLEX_CLASS3=y
-CONFIG_OMAP_RESET_CLOCKS=y
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_MCBSP=y
-CONFIG_OMAP_MBOX_FWK=m
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-CONFIG_OMAP_32K_TIMER=y
-# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
-CONFIG_OMAP_32K_TIMER_HZ=128
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-# CONFIG_ARCH_OMAP2 is not set
-CONFIG_ARCH_OMAP3=y
-# CONFIG_ARCH_OMAP4 is not set
-CONFIG_SOC_OMAP3430=y
-# CONFIG_SOC_OMAPTI816X is not set
-CONFIG_OMAP_PACKAGE_CBB=y
-CONFIG_OMAP_PACKAGE_CUS=y
-CONFIG_OMAP_PACKAGE_CBP=y
-
-#
-# OMAP Board Type
-#
-CONFIG_MACH_OMAP3_BEAGLE=y
-CONFIG_MACH_DEVKIT8000=y
-CONFIG_MACH_OMAP_LDP=y
-CONFIG_MACH_OMAP3530_LV_SOM=y
-CONFIG_MACH_OMAP3_TORPEDO=y
-CONFIG_MACH_OVERO=y
-CONFIG_MACH_OMAP3EVM=y
-CONFIG_MACH_OMAP3517EVM=y
-CONFIG_MACH_CRANEBOARD=y
-CONFIG_MACH_OMAP3_PANDORA=y
-CONFIG_MACH_OMAP3_TOUCHBOOK=y
-CONFIG_MACH_OMAP_3430SDP=y
-CONFIG_MACH_NOKIA_RM680=y
-CONFIG_MACH_NOKIA_RX51=y
-CONFIG_MACH_OMAP_ZOOM2=y
-CONFIG_MACH_OMAP_ZOOM3=y
-CONFIG_MACH_CM_T35=y
-CONFIG_MACH_CM_T3517=y
-CONFIG_MACH_CM_T3730=y
-CONFIG_MACH_IGEP0020=y
-CONFIG_MACH_IGEP0030=y
-CONFIG_MACH_SBC3530=y
-CONFIG_MACH_OMAP_3630SDP=y
-# CONFIG_OMAP3_EMU is not set
-# CONFIG_OMAP3_SDRC_AC_TIMING is not set
-
-#
-# System MMU
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-CONFIG_SWP_EMULATE=y
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_ARM_ERRATA_430973=y
-# CONFIG_ARM_ERRATA_458693 is not set
-# CONFIG_ARM_ERRATA_460075 is not set
-CONFIG_ARM_ERRATA_720789=y
-# CONFIG_ARM_ERRATA_743622 is not set
-# CONFIG_ARM_ERRATA_751472 is not set
-# CONFIG_ARM_ERRATA_754322 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=128
-# CONFIG_THUMB2_KERNEL is not set
-CONFIG_AEABI=y
-# CONFIG_OABI_COMPAT is not set
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-CONFIG_HIGHMEM=y
-CONFIG_HIGHPTE=y
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-CONFIG_COMPACTION=y
-CONFIG_MIGRATION=y
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_BOUNCE=y
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-# CONFIG_LEDS is not set
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_ARM_APPENDED_DTB is not set
-CONFIG_CMDLINE=" debug "
-CONFIG_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_CMDLINE_EXTEND is not set
-# CONFIG_CMDLINE_FORCE is not set
-# CONFIG_XIP_KERNEL is not set
-CONFIG_KEXEC=y
-CONFIG_ATAGS_PROC=y
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# ARM CPU frequency scaling drivers
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_HAVE_AOUT=y
-CONFIG_BINFMT_AOUT=m
-CONFIG_BINFMT_MISC=m
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_PM_SLEEP=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-# CONFIG_PM_ADVANCED_DEBUG is not set
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_CAN_PM_TRACE=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_HAS_OPP=y
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-CONFIG_CPU_PM=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=m
-# CONFIG_XFRM_SUB_POLICY is not set
-# CONFIG_XFRM_MIGRATE is not set
-# CONFIG_XFRM_STATISTICS is not set
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=m
-# CONFIG_NET_KEY_MIGRATE is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-CONFIG_IP_ADVANCED_ROUTER=y
-# CONFIG_IP_FIB_TRIE_STATS is not set
-CONFIG_IP_MULTIPLE_TABLES=y
-CONFIG_IP_ROUTE_MULTIPATH=y
-CONFIG_IP_ROUTE_VERBOSE=y
-CONFIG_IP_ROUTE_CLASSID=y
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-# CONFIG_IP_PNP_RARP is not set
-CONFIG_NET_IPIP=m
-# CONFIG_NET_IPGRE_DEMUX is not set
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_MROUTE_MULTIPLE_TABLES is not set
-CONFIG_IP_PIMSM_V1=y
-CONFIG_IP_PIMSM_V2=y
-# CONFIG_ARPD is not set
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=m
-CONFIG_INET_XFRM_MODE_TUNNEL=m
-CONFIG_INET_XFRM_MODE_BEET=m
-CONFIG_INET_LRO=y
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-CONFIG_TCP_MD5SIG=y
-CONFIG_IPV6=y
-CONFIG_IPV6_PRIVACY=y
-# CONFIG_IPV6_ROUTER_PREF is not set
-# CONFIG_IPV6_OPTIMISTIC_DAD is not set
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-# CONFIG_IPV6_MIP6 is not set
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-# CONFIG_IPV6_SUBTREES is not set
-# CONFIG_IPV6_MROUTE is not set
-CONFIG_NETLABEL=y
-CONFIG_NETWORK_SECMARK=y
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-CONFIG_NETFILTER_NETLINK=m
-CONFIG_NETFILTER_NETLINK_QUEUE=m
-CONFIG_NETFILTER_NETLINK_LOG=m
-CONFIG_NF_CONNTRACK=m
-CONFIG_NF_CONNTRACK_MARK=y
-CONFIG_NF_CONNTRACK_SECMARK=y
-CONFIG_NF_CONNTRACK_ZONES=y
-CONFIG_NF_CONNTRACK_EVENTS=y
-# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
-CONFIG_NF_CT_PROTO_DCCP=m
-CONFIG_NF_CT_PROTO_GRE=m
-CONFIG_NF_CT_PROTO_SCTP=m
-CONFIG_NF_CT_PROTO_UDPLITE=m
-CONFIG_NF_CONNTRACK_AMANDA=m
-CONFIG_NF_CONNTRACK_FTP=m
-CONFIG_NF_CONNTRACK_H323=m
-CONFIG_NF_CONNTRACK_IRC=m
-CONFIG_NF_CONNTRACK_BROADCAST=m
-CONFIG_NF_CONNTRACK_NETBIOS_NS=m
-# CONFIG_NF_CONNTRACK_SNMP is not set
-CONFIG_NF_CONNTRACK_PPTP=m
-CONFIG_NF_CONNTRACK_SANE=m
-CONFIG_NF_CONNTRACK_SIP=m
-CONFIG_NF_CONNTRACK_TFTP=m
-CONFIG_NF_CT_NETLINK=m
-CONFIG_NETFILTER_TPROXY=m
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-CONFIG_NETFILTER_XT_MARK=m
-CONFIG_NETFILTER_XT_CONNMARK=m
-
-#
-# Xtables targets
-#
-# CONFIG_NETFILTER_XT_TARGET_AUDIT is not set
-CONFIG_NETFILTER_XT_TARGET_CHECKSUM=m
-CONFIG_NETFILTER_XT_TARGET_CLASSIFY=m
-CONFIG_NETFILTER_XT_TARGET_CONNMARK=m
-CONFIG_NETFILTER_XT_TARGET_CONNSECMARK=m
-CONFIG_NETFILTER_XT_TARGET_CT=m
-CONFIG_NETFILTER_XT_TARGET_DSCP=m
-CONFIG_NETFILTER_XT_TARGET_HL=m
-CONFIG_NETFILTER_XT_TARGET_IDLETIMER=m
-CONFIG_NETFILTER_XT_TARGET_LED=m
-CONFIG_NETFILTER_XT_TARGET_MARK=m
-CONFIG_NETFILTER_XT_TARGET_NFLOG=m
-CONFIG_NETFILTER_XT_TARGET_NFQUEUE=m
-CONFIG_NETFILTER_XT_TARGET_NOTRACK=m
-CONFIG_NETFILTER_XT_TARGET_RATEEST=m
-CONFIG_NETFILTER_XT_TARGET_TEE=m
-CONFIG_NETFILTER_XT_TARGET_TPROXY=m
-CONFIG_NETFILTER_XT_TARGET_TRACE=m
-CONFIG_NETFILTER_XT_TARGET_SECMARK=m
-CONFIG_NETFILTER_XT_TARGET_TCPMSS=m
-CONFIG_NETFILTER_XT_TARGET_TCPOPTSTRIP=m
-
-#
-# Xtables matches
-#
-# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
-CONFIG_NETFILTER_XT_MATCH_CLUSTER=m
-CONFIG_NETFILTER_XT_MATCH_COMMENT=m
-CONFIG_NETFILTER_XT_MATCH_CONNBYTES=m
-CONFIG_NETFILTER_XT_MATCH_CONNLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_CONNMARK=m
-CONFIG_NETFILTER_XT_MATCH_CONNTRACK=m
-CONFIG_NETFILTER_XT_MATCH_CPU=m
-CONFIG_NETFILTER_XT_MATCH_DCCP=m
-# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
-CONFIG_NETFILTER_XT_MATCH_DSCP=m
-CONFIG_NETFILTER_XT_MATCH_ESP=m
-CONFIG_NETFILTER_XT_MATCH_HASHLIMIT=m
-CONFIG_NETFILTER_XT_MATCH_HELPER=m
-CONFIG_NETFILTER_XT_MATCH_HL=m
-CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
-CONFIG_NETFILTER_XT_MATCH_IPVS=m
-CONFIG_NETFILTER_XT_MATCH_LENGTH=m
-CONFIG_NETFILTER_XT_MATCH_LIMIT=m
-CONFIG_NETFILTER_XT_MATCH_MAC=m
-CONFIG_NETFILTER_XT_MATCH_MARK=m
-CONFIG_NETFILTER_XT_MATCH_MULTIPORT=m
-CONFIG_NETFILTER_XT_MATCH_OSF=m
-CONFIG_NETFILTER_XT_MATCH_OWNER=m
-CONFIG_NETFILTER_XT_MATCH_POLICY=m
-CONFIG_NETFILTER_XT_MATCH_PHYSDEV=m
-CONFIG_NETFILTER_XT_MATCH_PKTTYPE=m
-CONFIG_NETFILTER_XT_MATCH_QUOTA=m
-CONFIG_NETFILTER_XT_MATCH_RATEEST=m
-CONFIG_NETFILTER_XT_MATCH_REALM=m
-CONFIG_NETFILTER_XT_MATCH_RECENT=m
-CONFIG_NETFILTER_XT_MATCH_SCTP=m
-CONFIG_NETFILTER_XT_MATCH_SOCKET=m
-CONFIG_NETFILTER_XT_MATCH_STATE=m
-CONFIG_NETFILTER_XT_MATCH_STATISTIC=m
-CONFIG_NETFILTER_XT_MATCH_STRING=m
-CONFIG_NETFILTER_XT_MATCH_TCPMSS=m
-CONFIG_NETFILTER_XT_MATCH_TIME=m
-CONFIG_NETFILTER_XT_MATCH_U32=m
-# CONFIG_IP_SET is not set
-CONFIG_IP_VS=m
-CONFIG_IP_VS_IPV6=y
-# CONFIG_IP_VS_DEBUG is not set
-CONFIG_IP_VS_TAB_BITS=12
-
-#
-# IPVS transport protocol load balancing support
-#
-CONFIG_IP_VS_PROTO_TCP=y
-CONFIG_IP_VS_PROTO_UDP=y
-CONFIG_IP_VS_PROTO_AH_ESP=y
-CONFIG_IP_VS_PROTO_ESP=y
-CONFIG_IP_VS_PROTO_AH=y
-CONFIG_IP_VS_PROTO_SCTP=y
-
-#
-# IPVS scheduler
-#
-CONFIG_IP_VS_RR=m
-CONFIG_IP_VS_WRR=m
-CONFIG_IP_VS_LC=m
-CONFIG_IP_VS_WLC=m
-CONFIG_IP_VS_LBLC=m
-CONFIG_IP_VS_LBLCR=m
-CONFIG_IP_VS_DH=m
-CONFIG_IP_VS_SH=m
-CONFIG_IP_VS_SED=m
-CONFIG_IP_VS_NQ=m
-
-#
-# IPVS application helper
-#
-CONFIG_IP_VS_FTP=m
-CONFIG_IP_VS_NFCT=y
-CONFIG_IP_VS_PE_SIP=m
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=m
-CONFIG_NF_CONNTRACK_IPV4=m
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-CONFIG_IP_NF_QUEUE=m
-CONFIG_IP_NF_IPTABLES=m
-CONFIG_IP_NF_MATCH_AH=m
-# CONFIG_IP_NF_MATCH_ECN is not set
-CONFIG_IP_NF_MATCH_TTL=m
-CONFIG_IP_NF_FILTER=m
-CONFIG_IP_NF_TARGET_REJECT=m
-CONFIG_IP_NF_TARGET_LOG=m
-CONFIG_IP_NF_TARGET_ULOG=m
-CONFIG_NF_NAT=m
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=m
-CONFIG_IP_NF_TARGET_NETMAP=m
-CONFIG_IP_NF_TARGET_REDIRECT=m
-CONFIG_NF_NAT_PROTO_DCCP=m
-CONFIG_NF_NAT_PROTO_GRE=m
-CONFIG_NF_NAT_PROTO_UDPLITE=m
-CONFIG_NF_NAT_PROTO_SCTP=m
-CONFIG_NF_NAT_FTP=m
-CONFIG_NF_NAT_IRC=m
-CONFIG_NF_NAT_TFTP=m
-CONFIG_NF_NAT_AMANDA=m
-CONFIG_NF_NAT_PPTP=m
-CONFIG_NF_NAT_H323=m
-CONFIG_NF_NAT_SIP=m
-CONFIG_IP_NF_MANGLE=m
-CONFIG_IP_NF_TARGET_CLUSTERIP=m
-# CONFIG_IP_NF_TARGET_ECN is not set
-CONFIG_IP_NF_TARGET_TTL=m
-CONFIG_IP_NF_RAW=m
-CONFIG_IP_NF_SECURITY=m
-CONFIG_IP_NF_ARPTABLES=m
-CONFIG_IP_NF_ARPFILTER=m
-CONFIG_IP_NF_ARP_MANGLE=m
-
-#
-# IPv6: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV6=m
-CONFIG_NF_CONNTRACK_IPV6=m
-CONFIG_IP6_NF_QUEUE=m
-CONFIG_IP6_NF_IPTABLES=m
-CONFIG_IP6_NF_MATCH_AH=m
-CONFIG_IP6_NF_MATCH_EUI64=m
-CONFIG_IP6_NF_MATCH_FRAG=m
-CONFIG_IP6_NF_MATCH_OPTS=m
-CONFIG_IP6_NF_MATCH_HL=m
-CONFIG_IP6_NF_MATCH_IPV6HEADER=m
-CONFIG_IP6_NF_MATCH_MH=m
-CONFIG_IP6_NF_MATCH_RT=m
-CONFIG_IP6_NF_TARGET_HL=m
-CONFIG_IP6_NF_TARGET_LOG=m
-CONFIG_IP6_NF_FILTER=m
-CONFIG_IP6_NF_TARGET_REJECT=m
-CONFIG_IP6_NF_MANGLE=m
-CONFIG_IP6_NF_RAW=m
-CONFIG_IP6_NF_SECURITY=m
-
-#
-# DECnet: Netfilter Configuration
-#
-CONFIG_DECNET_NF_GRABULATOR=m
-CONFIG_BRIDGE_NF_EBTABLES=m
-CONFIG_BRIDGE_EBT_BROUTE=m
-CONFIG_BRIDGE_EBT_T_FILTER=m
-CONFIG_BRIDGE_EBT_T_NAT=m
-CONFIG_BRIDGE_EBT_802_3=m
-CONFIG_BRIDGE_EBT_AMONG=m
-CONFIG_BRIDGE_EBT_ARP=m
-CONFIG_BRIDGE_EBT_IP=m
-CONFIG_BRIDGE_EBT_IP6=m
-CONFIG_BRIDGE_EBT_LIMIT=m
-CONFIG_BRIDGE_EBT_MARK=m
-CONFIG_BRIDGE_EBT_PKTTYPE=m
-CONFIG_BRIDGE_EBT_STP=m
-CONFIG_BRIDGE_EBT_VLAN=m
-CONFIG_BRIDGE_EBT_ARPREPLY=m
-CONFIG_BRIDGE_EBT_DNAT=m
-CONFIG_BRIDGE_EBT_MARK_T=m
-CONFIG_BRIDGE_EBT_REDIRECT=m
-CONFIG_BRIDGE_EBT_SNAT=m
-CONFIG_BRIDGE_EBT_LOG=m
-CONFIG_BRIDGE_EBT_ULOG=m
-CONFIG_BRIDGE_EBT_NFLOG=m
-CONFIG_IP_DCCP=m
-CONFIG_INET_DCCP_DIAG=m
-
-#
-# DCCP CCIDs Configuration (EXPERIMENTAL)
-#
-# CONFIG_IP_DCCP_CCID2_DEBUG is not set
-CONFIG_IP_DCCP_CCID3=y
-# CONFIG_IP_DCCP_CCID3_DEBUG is not set
-CONFIG_IP_DCCP_TFRC_LIB=y
-
-#
-# DCCP Kernel Hacking
-#
-# CONFIG_IP_DCCP_DEBUG is not set
-# CONFIG_NET_DCCPPROBE is not set
-CONFIG_IP_SCTP=m
-CONFIG_NET_SCTPPROBE=m
-# CONFIG_SCTP_DBG_MSG is not set
-# CONFIG_SCTP_DBG_OBJCNT is not set
-# CONFIG_SCTP_HMAC_NONE is not set
-# CONFIG_SCTP_HMAC_SHA1 is not set
-CONFIG_SCTP_HMAC_MD5=y
-CONFIG_RDS=m
-CONFIG_RDS_TCP=m
-# CONFIG_RDS_DEBUG is not set
-CONFIG_TIPC=m
-# CONFIG_TIPC_ADVANCED is not set
-# CONFIG_TIPC_DEBUG is not set
-CONFIG_ATM=m
-CONFIG_ATM_CLIP=m
-# CONFIG_ATM_CLIP_NO_ICMP is not set
-CONFIG_ATM_LANE=m
-CONFIG_ATM_MPOA=m
-CONFIG_ATM_BR2684=m
-CONFIG_ATM_BR2684_IPFILTER=y
-CONFIG_L2TP=m
-CONFIG_L2TP_DEBUGFS=m
-CONFIG_L2TP_V3=y
-CONFIG_L2TP_IP=m
-CONFIG_L2TP_ETH=m
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-CONFIG_NET_DSA=y
-CONFIG_NET_DSA_TAG_DSA=y
-CONFIG_NET_DSA_TAG_EDSA=y
-CONFIG_NET_DSA_TAG_TRAILER=y
-CONFIG_NET_DSA_MV88E6XXX=y
-CONFIG_NET_DSA_MV88E6060=y
-CONFIG_NET_DSA_MV88E6XXX_NEED_PPU=y
-CONFIG_NET_DSA_MV88E6131=y
-CONFIG_NET_DSA_MV88E6123_61_65=y
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-CONFIG_DECNET=m
-# CONFIG_DECNET_ROUTER is not set
-CONFIG_LLC=m
-CONFIG_LLC2=m
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-CONFIG_LAPB=m
-CONFIG_ECONET=m
-CONFIG_ECONET_AUNUDP=y
-CONFIG_ECONET_NATIVE=y
-CONFIG_WAN_ROUTER=m
-CONFIG_PHONET=m
-CONFIG_IEEE802154=m
-CONFIG_IEEE802154_6LOWPAN=m
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_ATM=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-# CONFIG_NET_SCH_SFB is not set
-CONFIG_NET_SCH_SFQ=m
-CONFIG_NET_SCH_TEQL=m
-CONFIG_NET_SCH_TBF=m
-CONFIG_NET_SCH_GRED=m
-CONFIG_NET_SCH_DSMARK=m
-CONFIG_NET_SCH_NETEM=m
-CONFIG_NET_SCH_DRR=m
-# CONFIG_NET_SCH_MQPRIO is not set
-# CONFIG_NET_SCH_CHOKE is not set
-# CONFIG_NET_SCH_QFQ is not set
-# CONFIG_NET_SCH_INGRESS is not set
-
-#
-# Classification
-#
-CONFIG_NET_CLS=y
-CONFIG_NET_CLS_BASIC=m
-CONFIG_NET_CLS_TCINDEX=m
-CONFIG_NET_CLS_ROUTE4=m
-CONFIG_NET_CLS_FW=m
-# CONFIG_NET_CLS_U32 is not set
-CONFIG_NET_CLS_RSVP=m
-CONFIG_NET_CLS_RSVP6=m
-# CONFIG_NET_CLS_FLOW is not set
-# CONFIG_NET_CLS_CGROUP is not set
-CONFIG_NET_EMATCH=y
-CONFIG_NET_EMATCH_STACK=32
-CONFIG_NET_EMATCH_CMP=m
-CONFIG_NET_EMATCH_NBYTE=m
-CONFIG_NET_EMATCH_U32=m
-CONFIG_NET_EMATCH_META=m
-CONFIG_NET_EMATCH_TEXT=m
-CONFIG_NET_CLS_ACT=y
-CONFIG_NET_ACT_POLICE=m
-CONFIG_NET_ACT_GACT=m
-CONFIG_GACT_PROB=y
-CONFIG_NET_ACT_MIRRED=m
-CONFIG_NET_ACT_IPT=m
-CONFIG_NET_ACT_NAT=m
-CONFIG_NET_ACT_PEDIT=m
-CONFIG_NET_ACT_SIMP=m
-CONFIG_NET_ACT_SKBEDIT=m
-CONFIG_NET_ACT_CSUM=m
-# CONFIG_NET_CLS_IND is not set
-CONFIG_NET_SCH_FIFO=y
-CONFIG_DCB=y
-CONFIG_DNS_RESOLVER=y
-CONFIG_BATMAN_ADV=m
-# CONFIG_BATMAN_ADV_DEBUG is not set
-
-#
-# Network testing
-#
-CONFIG_NET_PKTGEN=m
-# CONFIG_NET_TCPPROBE is not set
-# CONFIG_NET_DROP_MONITOR is not set
-CONFIG_HAMRADIO=y
-
-#
-# Packet Radio protocols
-#
-CONFIG_AX25=m
-CONFIG_AX25_DAMA_SLAVE=y
-CONFIG_NETROM=m
-CONFIG_ROSE=m
-
-#
-# AX.25 network device drivers
-#
-CONFIG_MKISS=m
-CONFIG_6PACK=m
-CONFIG_BPQETHER=m
-CONFIG_BAYCOM_SER_FDX=m
-CONFIG_BAYCOM_SER_HDX=m
-CONFIG_YAM=m
-CONFIG_CAN=m
-CONFIG_CAN_RAW=m
-CONFIG_CAN_BCM=m
-# CONFIG_CAN_GW is not set
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=m
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_TI_HECC=m
-# CONFIG_CAN_MCP251X is not set
-# CONFIG_CAN_SJA1000 is not set
-# CONFIG_CAN_C_CAN is not set
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-CONFIG_IRDA_ULTRA=y
-
-#
-# IrDA options
-#
-CONFIG_IRDA_CACHE_LAST_LSAP=y
-CONFIG_IRDA_FAST_RR=y
-CONFIG_IRDA_DEBUG=y
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-CONFIG_DONGLE=y
-CONFIG_ESI_DONGLE=m
-CONFIG_ACTISYS_DONGLE=m
-CONFIG_TEKRAM_DONGLE=m
-CONFIG_TOIM3232_DONGLE=m
-CONFIG_LITELINK_DONGLE=m
-CONFIG_MA600_DONGLE=m
-CONFIG_GIRBIL_DONGLE=m
-CONFIG_MCP2120_DONGLE=m
-CONFIG_OLD_BELKIN_DONGLE=m
-CONFIG_ACT200L_DONGLE=m
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=m
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-CONFIG_BT_HCIVHCI=m
-CONFIG_BT_MRVL=m
-CONFIG_BT_MRVL_SDIO=m
-CONFIG_BT_ATH3K=m
-CONFIG_BT_WILINK=m
-CONFIG_AF_RXRPC=m
-# CONFIG_AF_RXRPC_DEBUG is not set
-CONFIG_RXKAD=m
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-CONFIG_CFG80211_REG_DEBUG=y
-CONFIG_CFG80211_DEFAULT_PS=y
-CONFIG_CFG80211_DEBUGFS=y
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-# CONFIG_MAC80211_RC_DEFAULT_PID is not set
-CONFIG_MAC80211_RC_DEFAULT_MINSTREL=y
-CONFIG_MAC80211_RC_DEFAULT="minstrel_ht"
-CONFIG_MAC80211_MESH=y
-CONFIG_MAC80211_LEDS=y
-CONFIG_MAC80211_DEBUGFS=y
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_REGULATOR=m
-CONFIG_RFKILL_GPIO=m
-CONFIG_NET_9P=m
-# CONFIG_NET_9P_DEBUG is not set
-CONFIG_CAIF=m
-# CONFIG_CAIF_DEBUG is not set
-CONFIG_CAIF_NETDEV=m
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-# CONFIG_CEPH_LIB_USE_DNS_RESOLVER is not set
-CONFIG_NFC=m
-# CONFIG_NFC_NCI is not set
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_PN544_NFC=m
-CONFIG_NFC_PN533=m
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=m
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-CONFIG_MTD=y
-CONFIG_MTD_TESTS=m
-CONFIG_MTD_REDBOOT_PARTS=m
-CONFIG_MTD_REDBOOT_DIRECTORY_BLOCK=-1
-# CONFIG_MTD_REDBOOT_PARTS_UNALLOCATED is not set
-# CONFIG_MTD_REDBOOT_PARTS_READONLY is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-CONFIG_MTD_OF_PARTS=y
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-CONFIG_FTL=m
-CONFIG_NFTL=m
-CONFIG_NFTL_RW=y
-CONFIG_INFTL=m
-CONFIG_RFD_FTL=m
-CONFIG_SSFDC=m
-CONFIG_SM_FTL=m
-CONFIG_MTD_OOPS=m
-# CONFIG_MTD_SWAP is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=m
-CONFIG_MTD_JEDECPROBE=m
-CONFIG_MTD_GEN_PROBE=m
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=m
-CONFIG_MTD_CFI_AMDSTD=m
-CONFIG_MTD_CFI_STAA=m
-CONFIG_MTD_CFI_UTIL=m
-CONFIG_MTD_RAM=m
-CONFIG_MTD_ROM=m
-CONFIG_MTD_ABSENT=m
-
-#
-# Mapping drivers for chip access
-#
-CONFIG_MTD_COMPLEX_MAPPINGS=y
-CONFIG_MTD_PHYSMAP=m
-# CONFIG_MTD_PHYSMAP_COMPAT is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-# CONFIG_MTD_IMPA7 is not set
-# CONFIG_MTD_GPIO_ADDR is not set
-CONFIG_MTD_PLATRAM=m
-# CONFIG_MTD_LATCH_ADDR is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-CONFIG_MTD_M25P80=m
-CONFIG_M25PXX_USE_FAST_READ=y
-# CONFIG_MTD_SST25L is not set
-CONFIG_MTD_SLRAM=m
-CONFIG_MTD_PHRAM=m
-CONFIG_MTD_MTDRAM=m
-CONFIG_MTDRAM_TOTAL_SIZE=4096
-CONFIG_MTDRAM_ERASE_SIZE=128
-CONFIG_MTD_BLOCK2MTD=m
-
-#
-# Disk-On-Chip Device Drivers
-#
-CONFIG_MTD_DOC2000=m
-CONFIG_MTD_DOC2001=m
-CONFIG_MTD_DOC2001PLUS=m
-# CONFIG_MTD_DOCG3 is not set
-CONFIG_MTD_DOCPROBE=m
-CONFIG_MTD_DOCECC=m
-# CONFIG_MTD_DOCPROBE_ADVANCED is not set
-CONFIG_MTD_DOCPROBE_ADDRESS=0x0
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_BCH is not set
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_OMAP2=y
-CONFIG_MTD_NAND_IDS=y
-CONFIG_MTD_NAND_DISKONCHIP=m
-# CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADVANCED is not set
-CONFIG_MTD_NAND_DISKONCHIP_PROBE_ADDRESS=0
-# CONFIG_MTD_NAND_DISKONCHIP_BBTWRITE is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-CONFIG_MTD_NAND_PLATFORM=y
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_ONENAND=y
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OMAP2=y
-# CONFIG_MTD_ONENAND_OTP is not set
-CONFIG_MTD_ONENAND_2X_PROGRAM=y
-CONFIG_MTD_ONENAND_SIM=m
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-CONFIG_MTD_UBI=m
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-CONFIG_MTD_UBI_GLUEBI=m
-# CONFIG_MTD_UBI_DEBUG is not set
-CONFIG_DTC=y
-CONFIG_OF=y
-
-#
-# Device Tree and Open Firmware support
-#
-CONFIG_PROC_DEVICETREE=y
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_DEVICE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_I2C=y
-CONFIG_OF_NET=y
-CONFIG_OF_SPI=y
-CONFIG_OF_MDIO=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-CONFIG_BLK_DEV_DRBD=m
-# CONFIG_DRBD_FAULT_INJECTION is not set
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=65536
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-# CONFIG_CDROM_PKTCDVD_WCACHE is not set
-CONFIG_ATA_OVER_ETH=m
-CONFIG_MG_DISK=m
-CONFIG_MG_DISK_RES=0
-# CONFIG_BLK_DEV_RBD is not set
-# CONFIG_SENSORS_LIS3LV02D is not set
-CONFIG_MISC_DEVICES=y
-CONFIG_AD525X_DPOT=m
-CONFIG_AD525X_DPOT_I2C=m
-CONFIG_AD525X_DPOT_SPI=m
-# CONFIG_ATMEL_PWM is not set
-CONFIG_ICS932S401=m
-CONFIG_ENCLOSURE_SERVICES=m
-# CONFIG_APDS9802ALS is not set
-CONFIG_ISL29003=m
-# CONFIG_ISL29020 is not set
-CONFIG_SENSORS_TSL2550=m
-CONFIG_SENSORS_BH1780=m
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-CONFIG_HMC6352=m
-CONFIG_DS1682=m
-CONFIG_TI_DAC7512=m
-CONFIG_BMP085=m
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=m
-CONFIG_EEPROM_AT25=m
-CONFIG_EEPROM_LEGACY=m
-CONFIG_EEPROM_MAX6875=m
-CONFIG_EEPROM_93CX6=m
-CONFIG_EEPROM_93XX46=m
-CONFIG_IWMC3200TOP=m
-# CONFIG_IWMC3200TOP_DEBUG is not set
-# CONFIG_IWMC3200TOP_DEBUGFS is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-CONFIG_TI_ST=m
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-
-#
-# Altera FPGA firmware download module
-#
-# CONFIG_ALTERA_STAPL is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-CONFIG_RAID_ATTRS=m
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-CONFIG_SCSI_TGT=m
-CONFIG_SCSI_NETLINK=y
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-CONFIG_CHR_DEV_ST=m
-CONFIG_CHR_DEV_OSST=m
-CONFIG_BLK_DEV_SR=y
-# CONFIG_BLK_DEV_SR_VENDOR is not set
-CONFIG_CHR_DEV_SG=y
-CONFIG_CHR_DEV_SCH=m
-CONFIG_SCSI_ENCLOSURE=m
-CONFIG_SCSI_MULTI_LUN=y
-CONFIG_SCSI_CONSTANTS=y
-CONFIG_SCSI_LOGGING=y
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-CONFIG_SCSI_FC_ATTRS=m
-CONFIG_SCSI_FC_TGT_ATTRS=y
-CONFIG_SCSI_ISCSI_ATTRS=m
-CONFIG_SCSI_SAS_ATTRS=m
-CONFIG_SCSI_SAS_LIBSAS=m
-CONFIG_SCSI_SAS_ATA=y
-CONFIG_SCSI_SAS_HOST_SMP=y
-CONFIG_SCSI_SRP_ATTRS=m
-CONFIG_SCSI_SRP_TGT_ATTRS=y
-CONFIG_SCSI_LOWLEVEL=y
-CONFIG_ISCSI_TCP=m
-# CONFIG_ISCSI_BOOT_SYSFS is not set
-CONFIG_LIBFC=m
-CONFIG_LIBFCOE=m
-CONFIG_SCSI_DEBUG=m
-CONFIG_SCSI_DH=y
-CONFIG_SCSI_DH_RDAC=m
-CONFIG_SCSI_DH_HP_SW=m
-CONFIG_SCSI_DH_EMC=m
-CONFIG_SCSI_DH_ALUA=m
-# CONFIG_SCSI_OSD_INITIATOR is not set
-CONFIG_ATA=m
-# CONFIG_ATA_NONSTANDARD is not set
-CONFIG_ATA_VERBOSE_ERROR=y
-CONFIG_SATA_PMP=y
-
-#
-# Controllers with non-SFF native interface
-#
-# CONFIG_SATA_AHCI_PLATFORM is not set
-CONFIG_ATA_SFF=y
-
-#
-# SFF controllers with custom DMA interface
-#
-CONFIG_ATA_BMDMA=y
-
-#
-# SATA SFF controllers with BMDMA
-#
-CONFIG_SATA_MV=m
-
-#
-# PATA SFF controllers with BMDMA
-#
-
-#
-# PIO-only SFF controllers
-#
-# CONFIG_PATA_PLATFORM is not set
-
-#
-# Generic fallback / legacy drivers
-#
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=y
-CONFIG_DM_DEBUG=y
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-# CONFIG_DM_THIN_PROVISIONING is not set
-CONFIG_DM_MIRROR=m
-CONFIG_DM_RAID=m
-# CONFIG_DM_LOG_USERSPACE is not set
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-# CONFIG_DM_DELAY is not set
-# CONFIG_DM_UEVENT is not set
-# CONFIG_DM_FLAKEY is not set
-# CONFIG_TARGET_CORE is not set
-CONFIG_NETDEVICES=y
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_MII=y
-CONFIG_IEEE802154_DRIVERS=m
-# CONFIG_IEEE802154_FAKEHARD is not set
-CONFIG_IFB=m
-# CONFIG_MACVLAN is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-CONFIG_TUN=m
-# CONFIG_VETH is not set
-CONFIG_ATM_DRIVERS=y
-# CONFIG_ATM_DUMMY is not set
-# CONFIG_ATM_TCP is not set
-
-#
-# CAIF transport drivers
-#
-# CONFIG_CAIF_TTY is not set
-# CONFIG_CAIF_SPI_SLAVE is not set
-# CONFIG_CAIF_HSI is not set
-CONFIG_ETHERNET=y
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-CONFIG_DM9000=m
-CONFIG_DM9000_FORCE_SIMPLE_PHY_POLL=y
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_NET_VENDOR_MICREL=y
-CONFIG_KS8851=m
-# CONFIG_KS8851_MLL is not set
-CONFIG_NET_VENDOR_MICROCHIP=y
-CONFIG_ENC28J60=m
-# CONFIG_ENC28J60_WRITEVERIFY is not set
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_SEEQ=y
-# CONFIG_SEEQ8005 is not set
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=y
-# CONFIG_SMC911X is not set
-CONFIG_SMSC911X=y
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_DAVINCI_EMAC is not set
-# CONFIG_TI_DAVINCI_MDIO is not set
-# CONFIG_TI_DAVINCI_CPDMA is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-CONFIG_SMSC_PHY=y
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_MICREL_PHY is not set
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOATM=m
-CONFIG_PPPOE=m
-# CONFIG_PPPOL2TP is not set
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-CONFIG_SLIP_COMPRESSED=y
-CONFIG_SLIP_SMART=y
-CONFIG_SLIP_MODE_SLIP6=y
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=y
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=y
-CONFIG_USB_NET_CDC_EEM=m
-CONFIG_USB_NET_CDC_NCM=y
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=y
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_CDC_PHONET=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_WLAN=y
-CONFIG_LIBERTAS_THINFIRM=m
-# CONFIG_LIBERTAS_THINFIRM_DEBUG is not set
-CONFIG_LIBERTAS_THINFIRM_USB=m
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-CONFIG_MAC80211_HWSIM=m
-CONFIG_ATH_COMMON=m
-# CONFIG_ATH_DEBUG is not set
-CONFIG_ATH9K_HW=m
-CONFIG_ATH9K_COMMON=m
-# CONFIG_ATH9K is not set
-CONFIG_ATH9K_HTC=m
-# CONFIG_ATH9K_HTC_DEBUGFS is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-# CONFIG_CARL9170_DEBUGFS is not set
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-# CONFIG_ATH6KL is not set
-CONFIG_B43=m
-CONFIG_B43_SSB=y
-# CONFIG_B43_SDIO is not set
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-# CONFIG_B43_PHY_HT is not set
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-CONFIG_B43LEGACY=m
-CONFIG_B43LEGACY_LEDS=y
-CONFIG_B43LEGACY_HWRNG=y
-CONFIG_B43LEGACY_DEBUG=y
-CONFIG_B43LEGACY_DMA=y
-CONFIG_B43LEGACY_PIO=y
-CONFIG_B43LEGACY_DMA_AND_PIO_MODE=y
-# CONFIG_B43LEGACY_DMA_MODE is not set
-# CONFIG_B43LEGACY_PIO_MODE is not set
-# CONFIG_BRCMFMAC is not set
-# CONFIG_HOSTAP is not set
-# CONFIG_IWM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-CONFIG_LIBERTAS_SPI=m
-CONFIG_LIBERTAS_DEBUG=y
-# CONFIG_LIBERTAS_MESH is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_SPI=m
-# CONFIG_P54_SPI_DEFAULT_EEPROM is not set
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_LIB_DEBUGFS is not set
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTL8192C_COMMON=m
-CONFIG_WL1251=m
-CONFIG_WL1251_SPI=m
-CONFIG_WL1251_SDIO=m
-CONFIG_WL12XX_MENU=m
-CONFIG_WL12XX=m
-CONFIG_WL12XX_SPI=m
-CONFIG_WL12XX_SDIO=m
-CONFIG_WL12XX_SDIO_TEST=m
-CONFIG_WL12XX_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-CONFIG_MWIFIEX=m
-CONFIG_MWIFIEX_SDIO=m
-
-#
-# WiMAX Wireless Broadband devices
-#
-# CONFIG_WIMAX_I2400M_USB is not set
-# CONFIG_WIMAX_I2400M_SDIO is not set
-# CONFIG_WAN is not set
-# CONFIG_ISDN is not set
-CONFIG_PHONE=m
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=y
-CONFIG_INPUT_POLLDEV=m
-CONFIG_INPUT_SPARSEKMAP=m
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-CONFIG_KEYBOARD_ADP5588=m
-CONFIG_KEYBOARD_ADP5589=m
-CONFIG_KEYBOARD_ATKBD=y
-CONFIG_KEYBOARD_QT1070=m
-CONFIG_KEYBOARD_QT2160=m
-CONFIG_KEYBOARD_LKKBD=m
-CONFIG_KEYBOARD_GPIO=m
-CONFIG_KEYBOARD_TCA6416=m
-CONFIG_KEYBOARD_MATRIX=m
-CONFIG_KEYBOARD_LM8323=m
-CONFIG_KEYBOARD_MAX7359=m
-CONFIG_KEYBOARD_MCS=m
-CONFIG_KEYBOARD_MPR121=m
-CONFIG_KEYBOARD_NEWTON=m
-CONFIG_KEYBOARD_OPENCORES=m
-CONFIG_KEYBOARD_STOWAWAY=m
-CONFIG_KEYBOARD_SUNKBD=m
-CONFIG_KEYBOARD_TWL4030=m
-CONFIG_KEYBOARD_XTKBD=m
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=m
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-CONFIG_MOUSE_PS2_ELANTECH=y
-CONFIG_MOUSE_PS2_SENTELIC=y
-CONFIG_MOUSE_PS2_TOUCHKIT=y
-CONFIG_MOUSE_SERIAL=m
-CONFIG_MOUSE_APPLETOUCH=m
-CONFIG_MOUSE_BCM5974=m
-CONFIG_MOUSE_VSXXXAA=m
-CONFIG_MOUSE_GPIO=m
-CONFIG_MOUSE_SYNAPTICS_I2C=m
-CONFIG_INPUT_JOYSTICK=y
-CONFIG_JOYSTICK_ANALOG=m
-CONFIG_JOYSTICK_A3D=m
-CONFIG_JOYSTICK_ADI=m
-CONFIG_JOYSTICK_COBRA=m
-CONFIG_JOYSTICK_GF2K=m
-CONFIG_JOYSTICK_GRIP=m
-CONFIG_JOYSTICK_GRIP_MP=m
-CONFIG_JOYSTICK_GUILLEMOT=m
-CONFIG_JOYSTICK_INTERACT=m
-CONFIG_JOYSTICK_SIDEWINDER=m
-CONFIG_JOYSTICK_TMDC=m
-CONFIG_JOYSTICK_IFORCE=m
-CONFIG_JOYSTICK_IFORCE_USB=y
-CONFIG_JOYSTICK_IFORCE_232=y
-CONFIG_JOYSTICK_WARRIOR=m
-CONFIG_JOYSTICK_MAGELLAN=m
-CONFIG_JOYSTICK_SPACEORB=m
-CONFIG_JOYSTICK_SPACEBALL=m
-CONFIG_JOYSTICK_STINGER=m
-CONFIG_JOYSTICK_TWIDJOY=m
-CONFIG_JOYSTICK_ZHENHUA=m
-CONFIG_JOYSTICK_AS5011=m
-CONFIG_JOYSTICK_JOYDUMP=m
-CONFIG_JOYSTICK_XPAD=m
-CONFIG_JOYSTICK_XPAD_FF=y
-CONFIG_JOYSTICK_XPAD_LEDS=y
-CONFIG_INPUT_TABLET=y
-CONFIG_TABLET_USB_ACECAD=m
-CONFIG_TABLET_USB_AIPTEK=m
-CONFIG_TABLET_USB_GTCO=m
-CONFIG_TABLET_USB_HANWANG=m
-CONFIG_TABLET_USB_KBTAB=m
-CONFIG_TABLET_USB_WACOM=m
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=m
-CONFIG_TOUCHSCREEN_AD7877=m
-CONFIG_TOUCHSCREEN_AD7879=m
-CONFIG_TOUCHSCREEN_AD7879_I2C=m
-CONFIG_TOUCHSCREEN_AD7879_SPI=m
-CONFIG_TOUCHSCREEN_ATMEL_MXT=m
-CONFIG_TOUCHSCREEN_BU21013=m
-CONFIG_TOUCHSCREEN_CY8CTMG110=m
-CONFIG_TOUCHSCREEN_DYNAPRO=m
-CONFIG_TOUCHSCREEN_HAMPSHIRE=m
-CONFIG_TOUCHSCREEN_EETI=m
-CONFIG_TOUCHSCREEN_FUJITSU=m
-CONFIG_TOUCHSCREEN_GUNZE=m
-CONFIG_TOUCHSCREEN_ELO=m
-CONFIG_TOUCHSCREEN_WACOM_W8001=m
-CONFIG_TOUCHSCREEN_MAX11801=m
-CONFIG_TOUCHSCREEN_MCS5000=m
-CONFIG_TOUCHSCREEN_MTOUCH=m
-CONFIG_TOUCHSCREEN_INEXIO=m
-CONFIG_TOUCHSCREEN_MK712=m
-CONFIG_TOUCHSCREEN_PENMOUNT=m
-CONFIG_TOUCHSCREEN_TOUCHRIGHT=m
-CONFIG_TOUCHSCREEN_TOUCHWIN=m
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-CONFIG_TOUCHSCREEN_TOUCHIT213=m
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=y
-CONFIG_TOUCHSCREEN_W90X900=m
-CONFIG_TOUCHSCREEN_ST1232=m
-CONFIG_TOUCHSCREEN_TPS6507X=m
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_MPU3050=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_TWL4030_PWRBUTTON=y
-CONFIG_INPUT_TWL4030_VIBRA=y
-CONFIG_INPUT_TWL6040_VIBRA=y
-CONFIG_INPUT_UINPUT=y
-CONFIG_INPUT_PCF8574=m
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-CONFIG_GAMEPORT=m
-# CONFIG_GAMEPORT_NS558 is not set
-# CONFIG_GAMEPORT_L4 is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-# CONFIG_SERIAL_8250_DW is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX3107 is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_CONSOLE_POLL=y
-# CONFIG_SERIAL_OF_PLATFORM is not set
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_TTY_PRINTK is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_SMBUS=m
-CONFIG_I2C_ALGOBIT=y
-CONFIG_I2C_ALGOPCA=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_OMAP=y
-CONFIG_I2C_PCA_PLATFORM=m
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-CONFIG_I2C_DIOLAN_U2C=m
-CONFIG_I2C_PARPORT_LIGHT=m
-CONFIG_I2C_TAOS_EVM=m
-CONFIG_I2C_TINY_USB=m
-
-#
-# Other I2C/SMBus bus drivers
-#
-CONFIG_I2C_STUB=m
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=y
-# CONFIG_SPI_TLE62X0 is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_DEBUG_GPIO=y
-CONFIG_GPIO_SYSFS=y
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_IT8761E is not set
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
-CONFIG_GPIO_TWL4030=y
-# CONFIG_GPIO_ADP5588 is not set
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_74X164 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-CONFIG_W1=y
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-# CONFIG_W1_MASTER_DS1WM is not set
-CONFIG_W1_MASTER_GPIO=m
-CONFIG_HDQ_MASTER_OMAP=m
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=m
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-# CONFIG_W1_SLAVE_DS2423 is not set
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_TEST_POWER=m
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_BQ20Z75 is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-CONFIG_CHARGER_TWL4030=m
-CONFIG_CHARGER_GPIO=m
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_GPIO_FAN=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-# CONFIG_SENSORS_ADM1275 is not set
-# CONFIG_SENSORS_LM25066 is not set
-# CONFIG_SENSORS_LTC2978 is not set
-# CONFIG_SENSORS_MAX16064 is not set
-# CONFIG_SENSORS_MAX34440 is not set
-# CONFIG_SENSORS_MAX8688 is not set
-# CONFIG_SENSORS_UCD9000 is not set
-# CONFIG_SENSORS_UCD9200 is not set
-# CONFIG_SENSORS_ZL6100 is not set
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_TWL4030_MADC=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-CONFIG_THERMAL=m
-CONFIG_THERMAL_HWMON=y
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-CONFIG_TWL4030_WATCHDOG=y
-# CONFIG_MAX63XX_WATCHDOG is not set
-
-#
-# USB-based Watchdog Cards
-#
-CONFIG_USBPCWATCHDOG=m
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=y
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-# CONFIG_SSB_SDIOHOST is not set
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-CONFIG_TWL4030_CORE=y
-CONFIG_TWL4030_MADC=y
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-# CONFIG_TWL6030_PWM is not set
-CONFIG_TWL6040_CORE=y
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_EZX_PCAP is not set
-CONFIG_MFD_WL1273_CORE=m
-CONFIG_MFD_OMAP_USB_HOST=y
-# CONFIG_MFD_AAT2870_CORE is not set
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_DUMMY=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-CONFIG_REGULATOR_VIRTUAL_CONSUMER=y
-CONFIG_REGULATOR_USERSPACE_CONSUMER=y
-# CONFIG_REGULATOR_GPIO is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-CONFIG_REGULATOR_TWL4030=y
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-CONFIG_REGULATOR_TPS65023=y
-CONFIG_REGULATOR_TPS6507X=y
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_AD5398 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=m
-CONFIG_VIDEO_V4L2_COMMON=m
-CONFIG_VIDEO_V4L2_SUBDEV_API=y
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_RC_CORE=y
-CONFIG_LIRC=y
-CONFIG_RC_MAP=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_RC5_SZ_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_LIRC_CODEC=m
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_IMON=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_CUSTOMISE=y
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_VIDEO_V4L2=m
-CONFIG_VIDEOBUF_GEN=m
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DMA_CONTIG=m
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_V4L2_MEM2MEM_DEV=m
-CONFIG_VIDEOBUF2_CORE=m
-CONFIG_VIDEOBUF2_MEMOPS=m
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Encoders, decoders, sensors and other helper chips
-#
-
-#
-# Audio decoders, processors and mixers
-#
-CONFIG_VIDEO_TVAUDIO=m
-CONFIG_VIDEO_TDA7432=m
-CONFIG_VIDEO_TDA9840=m
-CONFIG_VIDEO_TEA6415C=m
-CONFIG_VIDEO_TEA6420=m
-CONFIG_VIDEO_MSP3400=m
-CONFIG_VIDEO_CS5345=m
-CONFIG_VIDEO_CS53L32A=m
-CONFIG_VIDEO_TLV320AIC23B=m
-CONFIG_VIDEO_WM8775=m
-CONFIG_VIDEO_WM8739=m
-CONFIG_VIDEO_VP27SMPX=m
-
-#
-# RDS decoders
-#
-CONFIG_VIDEO_SAA6588=m
-
-#
-# Video decoders
-#
-CONFIG_VIDEO_ADV7180=m
-CONFIG_VIDEO_BT819=m
-CONFIG_VIDEO_BT856=m
-CONFIG_VIDEO_BT866=m
-CONFIG_VIDEO_KS0127=m
-CONFIG_VIDEO_SAA7110=m
-CONFIG_VIDEO_SAA711X=m
-CONFIG_VIDEO_SAA7191=m
-CONFIG_VIDEO_TVP514X=m
-CONFIG_VIDEO_TVP5150=m
-CONFIG_VIDEO_TVP7002=m
-CONFIG_VIDEO_VPX3220=m
-
-#
-# Video and audio decoders
-#
-CONFIG_VIDEO_SAA717X=m
-CONFIG_VIDEO_CX25840=m
-
-#
-# MPEG video encoders
-#
-CONFIG_VIDEO_CX2341X=m
-
-#
-# Video encoders
-#
-CONFIG_VIDEO_SAA7127=m
-CONFIG_VIDEO_SAA7185=m
-CONFIG_VIDEO_ADV7170=m
-CONFIG_VIDEO_ADV7175=m
-CONFIG_VIDEO_ADV7343=m
-CONFIG_VIDEO_AK881X=m
-
-#
-# Camera sensor devices
-#
-CONFIG_VIDEO_OV7670=m
-# CONFIG_VIDEO_MT9P031 is not set
-# CONFIG_VIDEO_MT9T001 is not set
-CONFIG_VIDEO_MT9V011=m
-# CONFIG_VIDEO_MT9V032 is not set
-CONFIG_VIDEO_TCM825X=m
-CONFIG_VIDEO_SR030PC30=m
-# CONFIG_VIDEO_NOON010PC30 is not set
-# CONFIG_VIDEO_M5MOLS is not set
-# CONFIG_VIDEO_S5K6AA is not set
-
-#
-# Flash devices
-#
-CONFIG_VIDEO_ADP1653=m
-
-#
-# Video improvement chips
-#
-CONFIG_VIDEO_UPD64031A=m
-CONFIG_VIDEO_UPD64083=m
-
-#
-# Miscelaneous helper chips
-#
-CONFIG_VIDEO_THS7303=m
-CONFIG_VIDEO_M52790=m
-# CONFIG_VIDEO_VIVI is not set
-# CONFIG_VIDEO_VPFE_CAPTURE is not set
-CONFIG_VIDEO_OMAP2_VOUT_VRFB=y
-CONFIG_VIDEO_OMAP2_VOUT=m
-# CONFIG_VIDEO_CPIA2 is not set
-# CONFIG_VIDEO_AU0828 is not set
-# CONFIG_SOC_CAMERA is not set
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=y
-CONFIG_VIDEO_TLG2300=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-CONFIG_VIDEO_TM6000=m
-CONFIG_VIDEO_TM6000_ALSA=m
-CONFIG_VIDEO_TM6000_DVB=m
-CONFIG_VIDEO_USBVISION=m
-CONFIG_USB_ET61X251=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-CONFIG_V4L_MEM2MEM_DRIVERS=y
-CONFIG_VIDEO_MEM2MEM_TESTDEV=m
-CONFIG_RADIO_ADAPTERS=y
-CONFIG_I2C_SI4713=m
-CONFIG_RADIO_SI4713=m
-CONFIG_USB_DSBR=m
-CONFIG_RADIO_SI470X=y
-CONFIG_USB_SI470X=m
-CONFIG_I2C_SI470X=m
-CONFIG_USB_MR800=m
-CONFIG_RADIO_TEA5764=m
-CONFIG_RADIO_SAA7706H=m
-CONFIG_RADIO_TEF6862=m
-CONFIG_RADIO_WL1273=m
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
-CONFIG_RADIO_WL128X=m
-CONFIG_DVB_MAX_ADAPTERS=8
-CONFIG_DVB_DYNAMIC_MINORS=y
-CONFIG_DVB_CAPTURE_DRIVERS=y
-CONFIG_TTPCI_EEPROM=m
-
-#
-# Supported USB Adapters
-#
-CONFIG_DVB_USB=m
-# CONFIG_DVB_USB_DEBUG is not set
-CONFIG_DVB_USB_A800=m
-CONFIG_DVB_USB_DIBUSB_MB=m
-# CONFIG_DVB_USB_DIBUSB_MB_FAULTY is not set
-CONFIG_DVB_USB_DIBUSB_MC=m
-CONFIG_DVB_USB_DIB0700=m
-CONFIG_DVB_USB_UMT_010=m
-CONFIG_DVB_USB_CXUSB=m
-CONFIG_DVB_USB_M920X=m
-CONFIG_DVB_USB_GL861=m
-CONFIG_DVB_USB_AU6610=m
-CONFIG_DVB_USB_DIGITV=m
-CONFIG_DVB_USB_VP7045=m
-CONFIG_DVB_USB_VP702X=m
-CONFIG_DVB_USB_GP8PSK=m
-CONFIG_DVB_USB_NOVA_T_USB2=m
-CONFIG_DVB_USB_TTUSB2=m
-CONFIG_DVB_USB_DTT200U=m
-CONFIG_DVB_USB_OPERA1=m
-CONFIG_DVB_USB_AF9005=m
-CONFIG_DVB_USB_AF9005_REMOTE=m
-CONFIG_DVB_USB_PCTV452E=m
-CONFIG_DVB_USB_DW2102=m
-CONFIG_DVB_USB_CINERGY_T2=m
-CONFIG_DVB_USB_ANYSEE=m
-CONFIG_DVB_USB_DTV5100=m
-CONFIG_DVB_USB_AF9015=m
-CONFIG_DVB_USB_CE6230=m
-CONFIG_DVB_USB_FRIIO=m
-CONFIG_DVB_USB_EC168=m
-CONFIG_DVB_USB_AZ6027=m
-CONFIG_DVB_USB_LME2510=m
-CONFIG_DVB_USB_TECHNISAT_USB2=m
-CONFIG_DVB_USB_IT913X=m
-CONFIG_DVB_USB_MXL111SF=m
-CONFIG_SMS_SIANO_MDTV=m
-
-#
-# Siano module components
-#
-CONFIG_SMS_USB_DRV=m
-# CONFIG_SMS_SDIO_DRV is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-CONFIG_DVB_B2C2_FLEXCOP=m
-CONFIG_DVB_B2C2_FLEXCOP_USB=m
-# CONFIG_DVB_B2C2_FLEXCOP_DEBUG is not set
-
-#
-# Supported DVB Frontends
-#
-CONFIG_DVB_FE_CUSTOMISE=y
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV6110x=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_IT913X_FE=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_DRM=y
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=m
-CONFIG_FB_SYS_COPYAREA=m
-CONFIG_FB_SYS_IMAGEBLIT=m
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=m
-# CONFIG_FB_WMT_GE_ROPS is not set
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_TMIO is not set
-# CONFIG_FB_SMSCUFX is not set
-CONFIG_FB_UDL=m
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
-CONFIG_OMAP2_VRAM=y
-CONFIG_OMAP2_VRFB=y
-CONFIG_OMAP2_DSS=y
-CONFIG_OMAP2_VRAM_SIZE=18
-CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
-# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
-CONFIG_OMAP2_DSS_DPI=y
-# CONFIG_OMAP2_DSS_RFBI is not set
-CONFIG_OMAP2_DSS_VENC=y
-CONFIG_OMAP2_DSS_SDI=y
-CONFIG_OMAP2_DSS_DSI=y
-CONFIG_OMAP2_DSS_FAKE_VSYNC=y
-CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
-CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
-CONFIG_FB_OMAP2=y
-CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
-CONFIG_FB_OMAP2_NUM_FBS=2
-
-#
-# OMAP2/3 Display Device Drivers
-#
-CONFIG_PANEL_GENERIC_DPI=y
-CONFIG_PANEL_DVI=y
-CONFIG_PANEL_LGPHILIPS_LB035Q02=y
-CONFIG_PANEL_SHARP_LS037V7DW01=y
-CONFIG_PANEL_NEC_NL8048HL11_01B=y
-CONFIG_PANEL_PICODLP=y
-CONFIG_PANEL_TAAL=y
-CONFIG_PANEL_TPO_TD043MTEA1=y
-CONFIG_PANEL_ACX565AKM=y
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-# CONFIG_LCD_L4F00242T03 is not set
-# CONFIG_LCD_LMS283GF05 is not set
-# CONFIG_LCD_LTV350QV is not set
-# CONFIG_LCD_TDO24M is not set
-# CONFIG_LCD_VGG2432A4 is not set
-CONFIG_LCD_PLATFORM=y
-# CONFIG_LCD_S6E63M0 is not set
-# CONFIG_LCD_LD9040 is not set
-# CONFIG_LCD_AMS369FG06 is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=y
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-CONFIG_BACKLIGHT_TLC59108=y
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=y
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_SOUND=m
-CONFIG_SOUND_OSS_CORE=y
-CONFIG_SOUND_OSS_CORE_PRECLAIM=y
-CONFIG_SND=m
-CONFIG_SND_TIMER=m
-CONFIG_SND_PCM=m
-CONFIG_SND_HWDEP=m
-CONFIG_SND_RAWMIDI=m
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-CONFIG_SND_OSSEMUL=y
-CONFIG_SND_MIXER_OSS=m
-CONFIG_SND_PCM_OSS=m
-CONFIG_SND_PCM_OSS_PLUGINS=y
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-CONFIG_SND_DYNAMIC_MINORS=y
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-CONFIG_SND_VERBOSE_PRINTK=y
-CONFIG_SND_DEBUG=y
-# CONFIG_SND_DEBUG_VERBOSE is not set
-# CONFIG_SND_PCM_XRUN_DEBUG is not set
-CONFIG_SND_RAWMIDI_SEQ=m
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_ALOOP is not set
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-CONFIG_SND_ARM=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=m
-CONFIG_SND_USB_UA101=m
-CONFIG_SND_USB_CAIAQ=m
-CONFIG_SND_USB_CAIAQ_INPUT=y
-CONFIG_SND_USB_6FIRE=m
-CONFIG_SND_SOC=m
-# CONFIG_SND_SOC_CACHE_LZO is not set
-CONFIG_SND_OMAP_SOC=m
-CONFIG_SND_OMAP_SOC_MCBSP=m
-CONFIG_SND_OMAP_SOC_RX51=m
-CONFIG_SND_OMAP_SOC_OVERO=m
-CONFIG_SND_OMAP_SOC_OMAP3EVM=m
-CONFIG_SND_OMAP_SOC_AM3517EVM=m
-CONFIG_SND_OMAP_SOC_SDP3430=m
-CONFIG_SND_OMAP_SOC_OMAP3_PANDORA=m
-CONFIG_SND_OMAP_SOC_OMAP3_BEAGLE=m
-CONFIG_SND_OMAP_SOC_ZOOM2=m
-CONFIG_SND_OMAP_SOC_IGEP0020=m
-CONFIG_SND_SOC_I2C_AND_SPI=m
-# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC23=m
-CONFIG_SND_SOC_TLV320AIC3X=m
-CONFIG_SND_SOC_TWL4030=m
-CONFIG_SND_SOC_TPA6130A2=m
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-CONFIG_HIDRAW=y
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-CONFIG_HID_PID=y
-CONFIG_USB_HIDDEV=y
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=m
-CONFIG_HID_ACRUX=m
-CONFIG_HID_ACRUX_FF=y
-CONFIG_HID_APPLE=m
-CONFIG_HID_BELKIN=m
-CONFIG_HID_CHERRY=m
-CONFIG_HID_CHICONY=m
-CONFIG_HID_PRODIKEYS=m
-CONFIG_HID_CYPRESS=m
-CONFIG_HID_DRAGONRISE=m
-CONFIG_DRAGONRISE_FF=y
-CONFIG_HID_EMS_FF=m
-CONFIG_HID_ELECOM=m
-CONFIG_HID_EZKEY=m
-CONFIG_HID_HOLTEK=m
-CONFIG_HOLTEK_FF=y
-CONFIG_HID_KEYTOUCH=m
-CONFIG_HID_KYE=m
-CONFIG_HID_UCLOGIC=m
-CONFIG_HID_WALTOP=m
-CONFIG_HID_GYRATION=m
-CONFIG_HID_TWINHAN=m
-CONFIG_HID_KENSINGTON=m
-CONFIG_HID_LCPOWER=m
-CONFIG_HID_LOGITECH=m
-CONFIG_HID_LOGITECH_DJ=m
-CONFIG_LOGITECH_FF=y
-CONFIG_LOGIRUMBLEPAD2_FF=y
-CONFIG_LOGIG940_FF=y
-CONFIG_LOGIWHEELS_FF=y
-CONFIG_HID_MAGICMOUSE=m
-CONFIG_HID_MICROSOFT=m
-CONFIG_HID_MONTEREY=m
-CONFIG_HID_MULTITOUCH=m
-CONFIG_HID_NTRIG=m
-CONFIG_HID_ORTEK=m
-CONFIG_HID_PANTHERLORD=m
-CONFIG_PANTHERLORD_FF=y
-CONFIG_HID_PETALYNX=m
-CONFIG_HID_PICOLCD=m
-CONFIG_HID_PICOLCD_FB=y
-CONFIG_HID_PICOLCD_BACKLIGHT=y
-CONFIG_HID_PICOLCD_LCD=y
-CONFIG_HID_PICOLCD_LEDS=y
-CONFIG_HID_PRIMAX=m
-CONFIG_HID_QUANTA=m
-CONFIG_HID_ROCCAT=m
-CONFIG_HID_ROCCAT_COMMON=m
-CONFIG_HID_ROCCAT_ARVO=m
-CONFIG_HID_ROCCAT_KONE=m
-CONFIG_HID_ROCCAT_KONEPLUS=m
-CONFIG_HID_ROCCAT_KOVAPLUS=m
-CONFIG_HID_ROCCAT_PYRA=m
-CONFIG_HID_SAMSUNG=m
-CONFIG_HID_SONY=m
-CONFIG_HID_SPEEDLINK=m
-CONFIG_HID_SUNPLUS=m
-CONFIG_HID_GREENASIA=m
-CONFIG_GREENASIA_FF=y
-CONFIG_HID_SMARTJOYPLUS=m
-CONFIG_SMARTJOYPLUS_FF=y
-CONFIG_HID_TOPSEED=m
-CONFIG_HID_THRUSTMASTER=m
-CONFIG_THRUSTMASTER_FF=y
-CONFIG_HID_WACOM=m
-CONFIG_HID_WACOM_POWER_SUPPLY=y
-CONFIG_HID_WIIMOTE=m
-CONFIG_HID_ZEROPLUS=m
-CONFIG_ZEROPLUS_FF=y
-CONFIG_HID_ZYDACRON=m
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-# CONFIG_USB_ARCH_HAS_XHCI is not set
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_DWC3 is not set
-CONFIG_USB_MON=y
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-CONFIG_USB_EHCI_HCD=y
-# CONFIG_USB_EHCI_ROOT_HUB_TT is not set
-CONFIG_USB_EHCI_TT_NEWSCHED=y
-CONFIG_USB_EHCI_HCD_OMAP=y
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_U132_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=y
-# CONFIG_USB_MUSB_TUSB6010 is not set
-CONFIG_USB_MUSB_OMAP2PLUS=y
-# CONFIG_USB_MUSB_AM35X is not set
-# CONFIG_MUSB_PIO_ONLY is not set
-# CONFIG_USB_UX500_DMA is not set
-CONFIG_USB_INVENTRA_DMA=y
-# CONFIG_USB_TI_CPPI_DMA is not set
-# CONFIG_USB_RENESAS_USBHS is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=m
-CONFIG_USB_PRINTER=m
-CONFIG_USB_WDM=m
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-CONFIG_USB_STORAGE_REALTEK=m
-CONFIG_REALTEK_AUTOPM=y
-CONFIG_USB_STORAGE_DATAFAB=m
-CONFIG_USB_STORAGE_FREECOM=m
-CONFIG_USB_STORAGE_ISD200=m
-CONFIG_USB_STORAGE_USBAT=m
-CONFIG_USB_STORAGE_SDDR09=m
-CONFIG_USB_STORAGE_SDDR55=m
-CONFIG_USB_STORAGE_JUMPSHOT=m
-CONFIG_USB_STORAGE_ALAUDA=m
-CONFIG_USB_STORAGE_ONETOUCH=m
-CONFIG_USB_STORAGE_KARMA=m
-CONFIG_USB_STORAGE_CYPRESS_ATACB=m
-CONFIG_USB_STORAGE_ENE_UB6250=m
-CONFIG_USB_UAS=m
-CONFIG_USB_LIBUSUAL=y
-
-#
-# USB Imaging devices
-#
-CONFIG_USB_MDC800=m
-CONFIG_USB_MICROTEK=m
-
-#
-# USB port drivers
-#
-CONFIG_USB_SERIAL=m
-CONFIG_USB_EZUSB=y
-CONFIG_USB_SERIAL_GENERIC=y
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-CONFIG_USB_SERIAL_KEYSPAN_MPR=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XA=y
-CONFIG_USB_SERIAL_KEYSPAN_USA28XB=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19=y
-CONFIG_USB_SERIAL_KEYSPAN_USA18X=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QW=y
-CONFIG_USB_SERIAL_KEYSPAN_USA19QI=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49W=y
-CONFIG_USB_SERIAL_KEYSPAN_USA49WLC=y
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_MOS7720=m
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MOTOROLA=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-CONFIG_USB_SERIAL_SAFE_PADDED=y
-CONFIG_USB_SERIAL_SIEMENS_MPI=m
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-CONFIG_USB_SERIAL_SYMBOL=m
-# CONFIG_USB_SERIAL_TI is not set
-CONFIG_USB_SERIAL_CYBERJACK=m
-CONFIG_USB_SERIAL_XIRCOM=m
-CONFIG_USB_SERIAL_WWAN=m
-CONFIG_USB_SERIAL_OPTION=m
-CONFIG_USB_SERIAL_OMNINET=m
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
-CONFIG_USB_SERIAL_ZIO=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-CONFIG_USB_EMI62=m
-CONFIG_USB_EMI26=m
-CONFIG_USB_ADUTUX=m
-CONFIG_USB_SEVSEG=m
-CONFIG_USB_RIO500=m
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-CONFIG_USB_LD=m
-CONFIG_USB_TRANCEVIBRATOR=m
-CONFIG_USB_IOWARRIOR=m
-CONFIG_USB_TEST=m
-CONFIG_USB_ISIGHTFW=m
-CONFIG_USB_YUREX=m
-CONFIG_USB_ATM=m
-CONFIG_USB_SPEEDTOUCH=m
-CONFIG_USB_CXACRU=m
-CONFIG_USB_UEAGLEATM=m
-CONFIG_USB_XUSBATM=m
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-CONFIG_USB_GADGET_DEBUG_FS=y
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_USB_FUSB300 is not set
-CONFIG_USB_OMAP=y
-# CONFIG_USB_R8A66597 is not set
-# CONFIG_USB_GADGET_MUSB_HDRC is not set
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_ZERO_HNPTEST=y
-CONFIG_USB_AUDIO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-CONFIG_USB_ETH_EEM=y
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-CONFIG_USB_FUNCTIONFS_ETH=y
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-# CONFIG_USB_FUNCTIONFS_GENERIC is not set
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-CONFIG_USB_G_NOKIA=m
-CONFIG_USB_G_ACM_MS=m
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_RNDIS=y
-# CONFIG_USB_G_MULTI_CDC is not set
-CONFIG_USB_G_HID=m
-# CONFIG_USB_G_DBGP is not set
-CONFIG_USB_G_WEBCAM=m
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-CONFIG_USB_GPIO_VBUS=y
-# CONFIG_ISP1301_OMAP is not set
-# CONFIG_USB_ULPI is not set
-CONFIG_TWL4030_USB=y
-CONFIG_TWL6030_USB=y
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=m
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-CONFIG_MMC_SDHCI=y
-CONFIG_MMC_SDHCI_PLTFM=m
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-# CONFIG_MMC_SDHCI_PXAV2 is not set
-CONFIG_MMC_OMAP=m
-CONFIG_MMC_OMAP_HS=y
-# CONFIG_MMC_DW is not set
-# CONFIG_MMC_VUB300 is not set
-# CONFIG_MMC_USHC is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_LP3944 is not set
-# CONFIG_LEDS_LP5521 is not set
-# CONFIG_LEDS_LP5523 is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_DAC124S085 is not set
-# CONFIG_LEDS_REGULATOR is not set
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_LT3593 is not set
-# CONFIG_LEDS_RENESAS_TPU is not set
-CONFIG_LEDS_TRIGGERS=y
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGER_TIMER=m
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=m
-# CONFIG_LEDS_TRIGGER_GPIO is not set
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=m
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-CONFIG_RTC_INTF_DEV_UIE_EMUL=y
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-
-#
-# on-CPU RTC drivers
-#
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV=m
-CONFIG_UIO_PDRV_GENIRQ=m
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_BALLOON is not set
-# CONFIG_VIRTIO_MMIO is not set
-CONFIG_STAGING=y
-# CONFIG_USBIP_CORE is not set
-CONFIG_W35UND=m
-CONFIG_PRISM2_USB=m
-# CONFIG_ECHO is not set
-# CONFIG_ASUS_OLED is not set
-CONFIG_R8712U=m
-# CONFIG_RTS5139 is not set
-# CONFIG_TRANZPORT is not set
-# CONFIG_POHMELFS is not set
-# CONFIG_LINE6_USB is not set
-# CONFIG_USB_SERIAL_QUATECH2 is not set
-# CONFIG_USB_SERIAL_QUATECH_USB2 is not set
-# CONFIG_VT6656 is not set
-CONFIG_IIO=m
-# CONFIG_IIO_BUFFER is not set
-# CONFIG_IIO_TRIGGER is not set
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16204 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADIS16220 is not set
-# CONFIG_ADIS16240 is not set
-# CONFIG_KXSD9 is not set
-# CONFIG_LIS3L02DQ is not set
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7291 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7606 is not set
-# CONFIG_AD799X is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7816 is not set
-# CONFIG_AD7192 is not set
-# CONFIG_ADT7310 is not set
-# CONFIG_ADT7410 is not set
-# CONFIG_AD7280 is not set
-# CONFIG_MAX1363 is not set
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# CONFIG_AD7152 is not set
-# CONFIG_AD7746 is not set
-
-#
-# Digital to analog converters
-#
-# CONFIG_AD5064 is not set
-# CONFIG_AD5360 is not set
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_AD5446 is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD5686 is not set
-# CONFIG_MAX517 is not set
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD5930 is not set
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# CONFIG_AD9850 is not set
-# CONFIG_AD9852 is not set
-# CONFIG_AD9910 is not set
-# CONFIG_AD9951 is not set
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16060 is not set
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16260 is not set
-# CONFIG_ADXRS450 is not set
-
-#
-# Network Analyzer, Impedance Converters
-#
-# CONFIG_AD5933 is not set
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-
-#
-# Light sensors
-#
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_TSL2563 is not set
-# CONFIG_TSL2583 is not set
-
-#
-# Magnetometer sensors
-#
-# CONFIG_SENSORS_AK8975 is not set
-# CONFIG_SENSORS_HMC5843 is not set
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7753 is not set
-# CONFIG_ADE7754 is not set
-# CONFIG_ADE7758 is not set
-# CONFIG_ADE7759 is not set
-# CONFIG_ADE7854 is not set
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-# CONFIG_AD2S1200 is not set
-# CONFIG_AD2S1210 is not set
-
-#
-# Triggers - standalone
-#
-# CONFIG_IIO_SIMPLE_DUMMY is not set
-CONFIG_XVMALLOC=y
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_DEBUG is not set
-# CONFIG_FB_SM7XX is not set
-CONFIG_TIDSPBRIDGE=m
-CONFIG_TIDSPBRIDGE_MEMPOOL_SIZE=0x600000
-# CONFIG_TIDSPBRIDGE_DEBUG is not set
-CONFIG_TIDSPBRIDGE_RECOVERY=y
-# CONFIG_TIDSPBRIDGE_CACHE_LINE_CHECK is not set
-CONFIG_TIDSPBRIDGE_WDT3=y
-CONFIG_TIDSPBRIDGE_WDT_TIMEOUT=5
-# CONFIG_TIDSPBRIDGE_NTFY_PWRERR is not set
-# CONFIG_TIDSPBRIDGE_BACKTRACE is not set
-# CONFIG_USB_ENESTORAGE is not set
-# CONFIG_BCM_WIMAX is not set
-# CONFIG_FT1000 is not set
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
-# CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4 is not set
-CONFIG_STAGING_MEDIA=y
-CONFIG_DVB_AS102=m
-CONFIG_EASYCAP=m
-# CONFIG_EASYCAP_DEBUG is not set
-CONFIG_LIRC_STAGING=y
-CONFIG_LIRC_IGORPLUGUSB=m
-CONFIG_LIRC_IMON=m
-CONFIG_LIRC_SASEM=m
-CONFIG_LIRC_SERIAL=m
-CONFIG_LIRC_SERIAL_TRANSMITTER=y
-CONFIG_LIRC_SIR=m
-CONFIG_LIRC_TTUSBIR=m
-CONFIG_LIRC_ZILOG=m
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_CLKSRC_MMIO=y
-CONFIG_IOMMU_SUPPORT=y
-# CONFIG_OMAP_IOMMU is not set
-# CONFIG_VIRT_DRIVERS is not set
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y
-CONFIG_DEVFREQ_GOV_PERFORMANCE=y
-CONFIG_DEVFREQ_GOV_POWERSAVE=y
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-
-#
-# DEVFREQ Drivers
-#
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-CONFIG_EXT2_FS_XATTR=y
-CONFIG_EXT2_FS_POSIX_ACL=y
-CONFIG_EXT2_FS_SECURITY=y
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-CONFIG_EXT3_FS_XATTR=y
-CONFIG_EXT3_FS_POSIX_ACL=y
-CONFIG_EXT3_FS_SECURITY=y
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-CONFIG_EXT4_FS_SECURITY=y
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-CONFIG_REISERFS_FS_XATTR=y
-CONFIG_REISERFS_FS_POSIX_ACL=y
-CONFIG_REISERFS_FS_SECURITY=y
-CONFIG_JFS_FS=m
-CONFIG_JFS_POSIX_ACL=y
-CONFIG_JFS_SECURITY=y
-# CONFIG_JFS_DEBUG is not set
-CONFIG_JFS_STATISTICS=y
-CONFIG_XFS_FS=m
-CONFIG_XFS_QUOTA=y
-CONFIG_XFS_POSIX_ACL=y
-CONFIG_XFS_RT=y
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-CONFIG_GFS2_FS_LOCKING_DLM=y
-CONFIG_OCFS2_FS=m
-CONFIG_OCFS2_FS_O2CB=m
-CONFIG_OCFS2_FS_USERSPACE_CLUSTER=m
-CONFIG_OCFS2_FS_STATS=y
-CONFIG_OCFS2_DEBUG_MASKLOG=y
-# CONFIG_OCFS2_DEBUG_FS is not set
-CONFIG_BTRFS_FS=y
-CONFIG_BTRFS_FS_POSIX_ACL=y
-CONFIG_NILFS2_FS=m
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-CONFIG_QUOTA_NETLINK_INTERFACE=y
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-CONFIG_QFMT_V1=m
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=m
-CONFIG_FUSE_FS=y
-CONFIG_CUSE=m
-CONFIG_GENERIC_ACL=y
-
-#
-# Caches
-#
-CONFIG_FSCACHE=m
-CONFIG_FSCACHE_STATS=y
-CONFIG_FSCACHE_HISTOGRAM=y
-# CONFIG_FSCACHE_DEBUG is not set
-# CONFIG_FSCACHE_OBJECT_LIST is not set
-CONFIG_CACHEFILES=m
-# CONFIG_CACHEFILES_DEBUG is not set
-# CONFIG_CACHEFILES_HISTOGRAM is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-CONFIG_NTFS_FS=m
-# CONFIG_NTFS_DEBUG is not set
-CONFIG_NTFS_RW=y
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-CONFIG_CONFIGFS_FS=m
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-CONFIG_AFFS_FS=m
-CONFIG_ECRYPT_FS=m
-CONFIG_HFS_FS=m
-CONFIG_HFSPLUS_FS=m
-CONFIG_BEFS_FS=m
-# CONFIG_BEFS_DEBUG is not set
-CONFIG_BFS_FS=m
-CONFIG_EFS_FS=m
-CONFIG_JFFS2_FS=m
-CONFIG_JFFS2_FS_DEBUG=0
-CONFIG_JFFS2_FS_WRITEBUFFER=y
-# CONFIG_JFFS2_FS_WBUF_VERIFY is not set
-# CONFIG_JFFS2_SUMMARY is not set
-# CONFIG_JFFS2_FS_XATTR is not set
-CONFIG_JFFS2_COMPRESSION_OPTIONS=y
-CONFIG_JFFS2_ZLIB=y
-CONFIG_JFFS2_LZO=y
-CONFIG_JFFS2_RTIME=y
-# CONFIG_JFFS2_RUBIN is not set
-# CONFIG_JFFS2_CMODE_NONE is not set
-CONFIG_JFFS2_CMODE_PRIORITY=y
-# CONFIG_JFFS2_CMODE_SIZE is not set
-# CONFIG_JFFS2_CMODE_FAVOURLZO is not set
-CONFIG_UBIFS_FS=m
-CONFIG_UBIFS_FS_XATTR=y
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_FS_DEBUG is not set
-CONFIG_LOGFS=m
-CONFIG_CRAMFS=m
-CONFIG_SQUASHFS=m
-# CONFIG_SQUASHFS_XATTR is not set
-CONFIG_SQUASHFS_ZLIB=y
-# CONFIG_SQUASHFS_LZO is not set
-# CONFIG_SQUASHFS_XZ is not set
-# CONFIG_SQUASHFS_4K_DEVBLK_SIZE is not set
-# CONFIG_SQUASHFS_EMBEDDED is not set
-CONFIG_SQUASHFS_FRAGMENT_CACHE_SIZE=3
-CONFIG_VXFS_FS=m
-CONFIG_MINIX_FS=m
-CONFIG_OMFS_FS=m
-# CONFIG_HPFS_FS is not set
-CONFIG_QNX4FS_FS=m
-CONFIG_ROMFS_FS=m
-CONFIG_ROMFS_BACKED_BY_BLOCK=y
-# CONFIG_ROMFS_BACKED_BY_MTD is not set
-# CONFIG_ROMFS_BACKED_BY_BOTH is not set
-CONFIG_ROMFS_ON_BLOCK=y
-# CONFIG_PSTORE is not set
-CONFIG_SYSV_FS=m
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-CONFIG_NFS_V4_1=y
-CONFIG_PNFS_FILE_LAYOUT=y
-CONFIG_PNFS_BLOCK=m
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V2_ACL=y
-CONFIG_NFSD_V3=y
-CONFIG_NFSD_V3_ACL=y
-CONFIG_NFSD_V4=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-CONFIG_SUNRPC_BACKCHANNEL=y
-CONFIG_RPCSEC_GSS_KRB5=m
-CONFIG_CEPH_FS=m
-CONFIG_CIFS=m
-# CONFIG_CIFS_STATS is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-CONFIG_CIFS_UPCALL=y
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-CONFIG_CIFS_DFS_UPCALL=y
-# CONFIG_CIFS_FSCACHE is not set
-# CONFIG_CIFS_ACL is not set
-CONFIG_NCP_FS=m
-CONFIG_NCPFS_PACKET_SIGNING=y
-CONFIG_NCPFS_IOCTL_LOCKING=y
-CONFIG_NCPFS_STRONG=y
-CONFIG_NCPFS_NFS_NS=y
-CONFIG_NCPFS_OS2_NS=y
-# CONFIG_NCPFS_SMALLDOS is not set
-CONFIG_NCPFS_NLS=y
-CONFIG_NCPFS_EXTRAS=y
-CONFIG_CODA_FS=m
-CONFIG_AFS_FS=m
-# CONFIG_AFS_DEBUG is not set
-# CONFIG_AFS_FSCACHE is not set
-# CONFIG_9P_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-CONFIG_ACORN_PARTITION=y
-# CONFIG_ACORN_PARTITION_CUMANA is not set
-# CONFIG_ACORN_PARTITION_EESOX is not set
-CONFIG_ACORN_PARTITION_ICS=y
-# CONFIG_ACORN_PARTITION_ADFS is not set
-# CONFIG_ACORN_PARTITION_POWERTEC is not set
-CONFIG_ACORN_PARTITION_RISCIX=y
-CONFIG_OSF_PARTITION=y
-CONFIG_AMIGA_PARTITION=y
-CONFIG_ATARI_PARTITION=y
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-CONFIG_BSD_DISKLABEL=y
-CONFIG_MINIX_SUBPARTITION=y
-CONFIG_SOLARIS_X86_PARTITION=y
-# CONFIG_UNIXWARE_DISKLABEL is not set
-CONFIG_LDM_PARTITION=y
-# CONFIG_LDM_DEBUG is not set
-CONFIG_SGI_PARTITION=y
-CONFIG_ULTRIX_PARTITION=y
-CONFIG_SUN_PARTITION=y
-CONFIG_KARMA_PARTITION=y
-CONFIG_EFI_PARTITION=y
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-CONFIG_NLS_CODEPAGE_737=m
-CONFIG_NLS_CODEPAGE_775=m
-CONFIG_NLS_CODEPAGE_850=m
-CONFIG_NLS_CODEPAGE_852=m
-CONFIG_NLS_CODEPAGE_855=m
-CONFIG_NLS_CODEPAGE_857=m
-CONFIG_NLS_CODEPAGE_860=m
-CONFIG_NLS_CODEPAGE_861=m
-CONFIG_NLS_CODEPAGE_862=m
-CONFIG_NLS_CODEPAGE_863=m
-CONFIG_NLS_CODEPAGE_864=m
-CONFIG_NLS_CODEPAGE_865=m
-CONFIG_NLS_CODEPAGE_866=m
-CONFIG_NLS_CODEPAGE_869=m
-CONFIG_NLS_CODEPAGE_936=m
-CONFIG_NLS_CODEPAGE_950=m
-CONFIG_NLS_CODEPAGE_932=m
-CONFIG_NLS_CODEPAGE_949=m
-CONFIG_NLS_CODEPAGE_874=m
-CONFIG_NLS_ISO8859_8=m
-CONFIG_NLS_CODEPAGE_1250=m
-CONFIG_NLS_CODEPAGE_1251=m
-CONFIG_NLS_ASCII=m
-CONFIG_NLS_ISO8859_1=y
-CONFIG_NLS_ISO8859_2=m
-CONFIG_NLS_ISO8859_3=m
-CONFIG_NLS_ISO8859_4=m
-CONFIG_NLS_ISO8859_5=m
-CONFIG_NLS_ISO8859_6=m
-CONFIG_NLS_ISO8859_7=m
-CONFIG_NLS_ISO8859_9=m
-CONFIG_NLS_ISO8859_13=m
-CONFIG_NLS_ISO8859_14=m
-CONFIG_NLS_ISO8859_15=m
-CONFIG_NLS_KOI8_R=m
-CONFIG_NLS_KOI8_U=m
-CONFIG_NLS_UTF8=m
-CONFIG_DLM=m
-# CONFIG_DLM_DEBUG is not set
-
-#
-# Kernel hacking
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-CONFIG_UNUSED_SYMBOLS=y
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_SLUB_DEBUG_ON is not set
-# CONFIG_SLUB_STATS is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_HIGHMEM is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_KPROBES_SANITY_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_LKDTM is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-CONFIG_SYSCTL_SYSCALL_CHECK=y
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-# CONFIG_ENABLE_DEFAULT_TRACERS is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-# CONFIG_BLK_DEV_IO_TRACE is not set
-CONFIG_KPROBE_EVENT=y
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-CONFIG_KGDB=y
-CONFIG_KGDB_SERIAL_CONSOLE=y
-# CONFIG_KGDB_TESTS is not set
-CONFIG_KGDB_KDB=y
-CONFIG_KDB_KEYBOARD=y
-# CONFIG_TEST_KSTRTOX is not set
-CONFIG_STRICT_DEVMEM=y
-CONFIG_ARM_UNWIND=y
-CONFIG_DEBUG_USER=y
-CONFIG_DEBUG_LL=y
-CONFIG_DEBUG_LL_UART_NONE=y
-# CONFIG_DEBUG_ICEDCC is not set
-CONFIG_EARLY_PRINTK=y
-# CONFIG_ARM_KPROBES_TEST is not set
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_ENCRYPTED_KEYS is not set
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-CONFIG_SECURITY_NETWORK=y
-# CONFIG_SECURITY_NETWORK_XFRM is not set
-CONFIG_SECURITY_PATH=y
-CONFIG_LSM_MMAP_MIN_ADDR=0
-CONFIG_SECURITY_SELINUX=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM=y
-CONFIG_SECURITY_SELINUX_BOOTPARAM_VALUE=0
-CONFIG_SECURITY_SELINUX_DISABLE=y
-CONFIG_SECURITY_SELINUX_DEVELOP=y
-CONFIG_SECURITY_SELINUX_AVC_STATS=y
-CONFIG_SECURITY_SELINUX_CHECKREQPROT_VALUE=1
-# CONFIG_SECURITY_SELINUX_POLICYDB_VERSION_MAX is not set
-CONFIG_SECURITY_SMACK=y
-CONFIG_SECURITY_TOMOYO=y
-CONFIG_SECURITY_TOMOYO_MAX_ACCEPT_ENTRY=2048
-CONFIG_SECURITY_TOMOYO_MAX_AUDIT_LOG=1024
-# CONFIG_SECURITY_TOMOYO_OMIT_USERSPACE_LOADER is not set
-CONFIG_SECURITY_TOMOYO_POLICY_LOADER="/sbin/tomoyo-init"
-CONFIG_SECURITY_TOMOYO_ACTIVATION_TRIGGER="/sbin/init"
-CONFIG_SECURITY_APPARMOR=y
-CONFIG_SECURITY_APPARMOR_BOOTPARAM_VALUE=1
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-# CONFIG_DEFAULT_SECURITY_SELINUX is not set
-# CONFIG_DEFAULT_SECURITY_SMACK is not set
-# CONFIG_DEFAULT_SECURITY_TOMOYO is not set
-CONFIG_DEFAULT_SECURITY_APPARMOR=y
-# CONFIG_DEFAULT_SECURITY_DAC is not set
-CONFIG_DEFAULT_SECURITY="apparmor"
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG=m
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP=m
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-CONFIG_CRYPTO_GF128MUL=m
-CONFIG_CRYPTO_NULL=m
-CONFIG_CRYPTO_WORKQUEUE=y
-CONFIG_CRYPTO_CRYPTD=m
-CONFIG_CRYPTO_AUTHENC=m
-CONFIG_CRYPTO_TEST=m
-
-#
-# Authenticated Encryption with Associated Data
-#
-CONFIG_CRYPTO_CCM=m
-CONFIG_CRYPTO_GCM=m
-CONFIG_CRYPTO_SEQIV=m
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=y
-CONFIG_CRYPTO_CTR=m
-CONFIG_CRYPTO_CTS=m
-CONFIG_CRYPTO_ECB=y
-CONFIG_CRYPTO_LRW=m
-CONFIG_CRYPTO_PCBC=m
-CONFIG_CRYPTO_XTS=m
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-CONFIG_CRYPTO_XCBC=m
-CONFIG_CRYPTO_VMAC=m
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-CONFIG_CRYPTO_GHASH=m
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=y
-CONFIG_CRYPTO_MICHAEL_MIC=m
-CONFIG_CRYPTO_RMD128=m
-CONFIG_CRYPTO_RMD160=m
-CONFIG_CRYPTO_RMD256=m
-CONFIG_CRYPTO_RMD320=m
-CONFIG_CRYPTO_SHA1=m
-CONFIG_CRYPTO_SHA256=m
-CONFIG_CRYPTO_SHA512=m
-CONFIG_CRYPTO_TGR192=m
-CONFIG_CRYPTO_WP512=m
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=m
-CONFIG_CRYPTO_ANUBIS=m
-CONFIG_CRYPTO_ARC4=m
-CONFIG_CRYPTO_BLOWFISH=m
-CONFIG_CRYPTO_BLOWFISH_COMMON=m
-CONFIG_CRYPTO_CAMELLIA=m
-CONFIG_CRYPTO_CAST5=m
-CONFIG_CRYPTO_CAST6=m
-CONFIG_CRYPTO_DES=y
-CONFIG_CRYPTO_FCRYPT=m
-CONFIG_CRYPTO_KHAZAD=m
-CONFIG_CRYPTO_SALSA20=m
-CONFIG_CRYPTO_SEED=m
-CONFIG_CRYPTO_SERPENT=m
-CONFIG_CRYPTO_TEA=m
-CONFIG_CRYPTO_TWOFISH=m
-CONFIG_CRYPTO_TWOFISH_COMMON=m
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=m
-CONFIG_CRYPTO_ZLIB=m
-CONFIG_CRYPTO_LZO=m
-
-#
-# Random Number Generation
-#
-CONFIG_CRYPTO_ANSI_CPRNG=m
-CONFIG_CRYPTO_USER_API=m
-CONFIG_CRYPTO_USER_API_HASH=m
-CONFIG_CRYPTO_USER_API_SKCIPHER=m
-CONFIG_CRYPTO_HW=y
-CONFIG_CRYPTO_DEV_OMAP_SHAM=m
-CONFIG_CRYPTO_DEV_OMAP_AES=m
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=m
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=m
-CONFIG_CRC32=y
-CONFIG_CRC7=m
-CONFIG_LIBCRC32C=y
-CONFIG_CRC8=y
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_REED_SOLOMON=m
-CONFIG_REED_SOLOMON_DEC16=y
-CONFIG_TEXTSEARCH=y
-CONFIG_TEXTSEARCH_KMP=m
-CONFIG_TEXTSEARCH_BM=m
-CONFIG_TEXTSEARCH_FSM=m
-CONFIG_BTREE=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
-CONFIG_LRU_CACHE=m
-CONFIG_AVERAGE=y
-# CONFIG_CORDIC is not set
diff --git a/recipes-kernel/linux/linux-mainline-3.2/beagleboard/logo_linux_clut224.ppm b/recipes-kernel/linux/linux-mainline-3.2/beagleboard/logo_linux_clut224.ppm
deleted file mode 100644
index d29fc1c..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/beagleboard/logo_linux_clut224.ppm
+++ /dev/null
@@ -1,73147 +0,0 @@
-P3
-# CREATOR: GIMP PNM Filter Version 1.1
-387 63
-255
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-60
-248
-138
-64
-247
-143
-74
-247
-143
-74
-247
-143
-74
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-143
-74
-247
-143
-74
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-60
-248
-138
-64
-247
-143
-74
-247
-143
-74
-247
-143
-74
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-130
-53
-247
-130
-60
-250
-139
-73
-249
-146
-83
-249
-152
-92
-249
-159
-103
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-152
-92
-249
-146
-83
-250
-139
-73
-247
-130
-60
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-247
-143
-74
-247
-150
-84
-246
-156
-93
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-123
-41
-248
-138
-64
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-53
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-248
-138
-64
-249
-146
-83
-249
-152
-92
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-152
-92
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-248
-138
-64
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-53
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-60
-250
-139
-73
-247
-150
-84
-249
-159
-103
-247
-165
-111
-249
-174
-124
-248
-180
-134
-252
-185
-144
-240
-181
-138
-219
-170
-138
-219
-170
-138
-230
-173
-136
-240
-181
-138
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-159
-103
-214
-151
-109
-121
-100
-85
-65
-67
-64
-74
-68
-68
-129
-102
-78
-214
-151
-109
-246
-156
-93
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-146
-83
-249
-159
-103
-204
-141
-99
-102
-91
-75
-65
-67
-64
-81
-77
-76
-146
-111
-88
-238
-159
-107
-249
-152
-92
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-248
-138
-64
-247
-150
-84
-245
-162
-103
-162
-125
-96
-81
-77
-76
-55
-66
-67
-99
-90
-79
-187
-140
-108
-249
-159
-103
-247
-150
-84
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-146
-83
-249
-159
-103
-187
-140
-108
-102
-91
-75
-58
-69
-70
-76
-78
-76
-146
-111
-88
-238
-159
-107
-249
-152
-92
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-249
-146
-83
-249
-159
-103
-251
-168
-115
-248
-180
-134
-239
-182
-144
-186
-157
-134
-124
-111
-99
-82
-69
-65
-65
-58
-56
-55
-48
-48
-65
-58
-56
-65
-58
-56
-65
-58
-56
-99
-90
-79
-158
-130
-108
-230
-173
-136
-250
-176
-132
-247
-165
-111
-249
-152
-92
-247
-143
-74
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-246
-156
-93
-214
-151
-109
-74
-68
-68
-56
-64
-60
-95
-87
-59
-88
-82
-59
-56
-64
-60
-81
-77
-76
-238
-159
-107
-249
-152
-92
-248
-138
-64
-247
-130
-53
-246
-116
-28
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-187
-140
-108
-51
-62
-63
-69
-69
-61
-95
-87
-59
-83
-78
-61
-48
-58
-59
-121
-100
-85
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-123
-41
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-247
-165
-111
-139
-115
-96
-48
-58
-59
-95
-78
-64
-118
-86
-65
-81
-73
-62
-48
-58
-59
-162
-125
-96
-249
-159
-103
-249
-146
-83
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-187
-140
-108
-48
-58
-59
-76
-70
-64
-118
-86
-65
-95
-78
-64
-51
-62
-63
-121
-100
-85
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-152
-92
-247
-165
-111
-250
-176
-132
-251
-192
-154
-167
-142
-123
-65
-58
-56
-35
-31
-30
-71
-60
-43
-108
-87
-46
-129
-106
-52
-137
-110
-49
-156
-125
-62
-187
-166
-150
-129
-106
-52
-101
-83
-47
-59
-50
-39
-55
-48
-48
-139
-115
-96
-240
-181
-138
-249
-174
-124
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-247
-165
-111
-124
-111
-99
-56
-64
-60
-137
-110
-49
-171
-129
-45
-171
-129
-45
-129
-106
-52
-51
-62
-63
-162
-125
-96
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-245
-169
-119
-81
-77
-76
-69
-69
-61
-152
-119
-47
-171
-129
-45
-171
-129
-45
-105
-93
-60
-48
-58
-59
-187
-140
-108
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-130
-53
-250
-139
-73
-249
-159
-103
-210
-156
-119
-51
-62
-63
-112
-85
-63
-234
-126
-45
-234
-126
-45
-225
-124
-48
-95
-78
-64
-63
-74
-74
-234
-168
-124
-246
-156
-93
-250
-139
-73
-247
-123
-41
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-245
-169
-119
-81
-77
-76
-81
-73
-62
-212
-120
-56
-234
-126
-45
-234
-126
-45
-135
-94
-64
-41
-58
-57
-187
-140
-108
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-249
-174
-124
-249
-189
-146
-236
-186
-153
-99
-90
-79
-47
-40
-38
-85
-71
-43
-145
-114
-49
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-160
-120
-43
-195
-167
-113
-216
-194
-154
-168
-127
-42
-168
-127
-42
-123
-102
-54
-59
-50
-39
-82
-69
-65
-230
-173
-136
-249
-174
-124
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-246
-156
-93
-245
-169
-119
-84
-85
-82
-83
-78
-61
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-75
-74
-61
-101
-100
-92
-249
-174
-124
-246
-156
-93
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-210
-156
-119
-48
-58
-59
-105
-93
-60
-171
-129
-45
-158
-125
-46
-161
-127
-40
-152
-119
-47
-62
-63
-61
-139
-115
-96
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-247
-165
-111
-158
-130
-108
-51
-62
-63
-188
-112
-56
-234
-125
-52
-224
-123
-55
-234
-126
-45
-163
-104
-61
-48
-58
-59
-210
-156
-119
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-247
-165
-111
-210
-156
-119
-55
-66
-67
-146
-97
-64
-234
-126
-45
-224
-123
-55
-234
-125
-52
-199
-115
-54
-62
-63
-61
-139
-115
-96
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-250
-176
-132
-219
-170
-138
-150
-125
-114
-65
-58
-56
-24
-22
-23
-59
-50
-39
-152
-119
-47
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-160
-120
-43
-158
-125
-46
-227
-196
-175
-192
-155
-91
-160
-120
-43
-171
-129
-45
-158
-125
-46
-85
-71
-43
-65
-58
-56
-219
-170
-138
-249
-174
-124
-246
-156
-93
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-247
-103
-7
-246
-109
-10
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-230
-173
-136
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-252
-185
-144
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-203
-161
-131
-43
-57
-62
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-133
-120
-107
-250
-176
-132
-246
-156
-93
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-154
-133
-118
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-186
-157
-134
-250
-176
-132
-246
-156
-93
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-246
-156
-93
-249
-174
-124
-209
-171
-139
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-133
-120
-107
-249
-174
-124
-246
-156
-93
-248
-138
-64
-247
-123
-41
-247
-111
-26
-246
-109
-10
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-250
-176
-132
-158
-130
-108
-47
-40
-38
-59
-50
-39
-85
-71
-43
-85
-71
-43
-59
-50
-39
-35
-31
-30
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-192
-155
-91
-224
-207
-180
-158
-125
-46
-160
-120
-43
-168
-127
-42
-171
-129
-45
-71
-60
-43
-82
-69
-65
-239
-182
-144
-249
-174
-124
-249
-152
-92
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-247
-165
-111
-239
-182
-144
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-250
-197
-158
-250
-176
-132
-249
-159
-103
-247
-143
-74
-247
-130
-60
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-248
-180
-134
-212
-173
-150
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-248
-180
-134
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-249
-159
-103
-250
-176
-132
-167
-142
-123
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-187
-166
-150
-249
-189
-146
-251
-168
-115
-249
-152
-92
-250
-139
-73
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-150
-84
-247
-165
-111
-252
-185
-144
-212
-173
-150
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-133
-120
-107
-248
-180
-134
-249
-159
-103
-250
-139
-73
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-249
-159
-103
-250
-176
-132
-167
-142
-123
-24
-22
-23
-85
-71
-43
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-85
-71
-43
-35
-31
-30
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-216
-194
-154
-195
-167
-113
-152
-119
-47
-158
-125
-46
-168
-127
-42
-158
-125
-46
-59
-50
-39
-139
-115
-96
-252
-185
-144
-247
-165
-111
-247
-150
-84
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-60
-247
-150
-84
-251
-168
-115
-236
-186
-153
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-251
-209
-178
-249
-189
-146
-249
-174
-124
-249
-159
-103
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-248
-138
-64
-247
-143
-74
-246
-156
-93
-249
-174
-124
-251
-192
-154
-207
-178
-158
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-159
-103
-252
-185
-144
-167
-142
-123
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-51
-62
-63
-187
-166
-150
-250
-200
-166
-248
-180
-134
-247
-165
-111
-249
-152
-92
-247
-143
-74
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-60
-250
-139
-73
-249
-152
-92
-247
-165
-111
-248
-180
-134
-250
-197
-158
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-252
-185
-144
-249
-159
-103
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-247
-150
-84
-251
-168
-115
-230
-173
-136
-47
-40
-38
-59
-50
-39
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-161
-127
-40
-171
-129
-45
-59
-50
-39
-71
-60
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-170
-137
-67
-239
-227
-208
-170
-137
-67
-160
-120
-43
-158
-125
-46
-171
-129
-45
-123
-102
-54
-47
-40
-38
-209
-171
-139
-248
-180
-134
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-123
-41
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-249
-174
-124
-236
-186
-153
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-255
-215
-190
-253
-204
-176
-249
-189
-146
-249
-174
-124
-247
-165
-111
-246
-156
-93
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-249
-146
-83
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-247
-143
-74
-247
-143
-74
-247
-150
-84
-249
-159
-103
-249
-174
-124
-252
-185
-144
-250
-200
-166
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-251
-192
-154
-249
-174
-124
-246
-156
-93
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-249
-146
-83
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-150
-84
-251
-168
-115
-249
-189
-146
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-187
-166
-150
-253
-212
-188
-250
-197
-158
-248
-180
-134
-251
-168
-115
-249
-159
-103
-247
-150
-84
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-247
-150
-84
-249
-146
-83
-247
-143
-74
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-60
-248
-138
-64
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-250
-139
-73
-248
-138
-64
-248
-138
-64
-248
-138
-64
-248
-138
-64
-248
-138
-64
-248
-138
-64
-250
-139
-73
-250
-139
-73
-250
-139
-73
-250
-139
-73
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-248
-138
-64
-247
-130
-60
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-60
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-143
-74
-247
-150
-84
-249
-159
-103
-251
-168
-115
-248
-180
-134
-250
-197
-158
-253
-212
-188
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-247
-150
-84
-249
-146
-83
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-248
-138
-64
-248
-138
-64
-250
-139
-73
-250
-139
-73
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-247
-130
-60
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-252
-185
-144
-139
-115
-96
-35
-31
-30
-129
-106
-52
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-35
-31
-30
-152
-119
-47
-168
-127
-42
-168
-127
-42
-160
-120
-43
-168
-127
-42
-171
-129
-45
-152
-119
-47
-216
-194
-154
-224
-207
-180
-160
-120
-43
-160
-120
-43
-137
-110
-49
-102
-91
-75
-35
-31
-30
-115
-102
-92
-250
-200
-166
-250
-176
-132
-249
-159
-103
-249
-146
-83
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-236
-186
-153
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-255
-215
-190
-255
-215
-190
-253
-204
-176
-250
-197
-158
-252
-185
-144
-249
-174
-124
-251
-168
-115
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-249
-146
-83
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-60
-250
-139
-73
-249
-146
-83
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-60
-247
-130
-60
-248
-138
-64
-250
-139
-73
-249
-146
-83
-249
-152
-92
-249
-159
-103
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-247
-165
-111
-251
-168
-115
-250
-176
-132
-252
-185
-144
-250
-200
-166
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-250
-200
-166
-250
-176
-132
-247
-165
-111
-249
-152
-92
-247
-150
-84
-249
-146
-83
-247
-150
-84
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-246
-156
-93
-247
-150
-84
-247
-143
-74
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-159
-103
-249
-174
-124
-251
-192
-154
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-51
-62
-63
-187
-166
-150
-255
-215
-190
-253
-212
-188
-250
-200
-166
-249
-189
-146
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-247
-150
-84
-249
-159
-103
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-246
-156
-93
-246
-156
-93
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-152
-92
-249
-152
-92
-247
-150
-84
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-150
-84
-249
-152
-92
-246
-156
-93
-249
-159
-103
-247
-165
-111
-249
-174
-124
-250
-176
-132
-249
-189
-146
-250
-200
-166
-253
-212
-188
-255
-215
-190
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-247
-150
-84
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-249
-152
-92
-249
-146
-83
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-60
-248
-138
-64
-247
-143
-74
-249
-146
-83
-249
-152
-92
-246
-156
-93
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-249
-152
-92
-247
-150
-84
-249
-146
-83
-247
-143
-74
-247
-143
-74
-247
-143
-74
-249
-146
-83
-247
-150
-84
-246
-156
-93
-249
-159
-103
-247
-165
-111
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-236
-186
-153
-47
-40
-38
-59
-50
-39
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-47
-40
-38
-108
-87
-46
-168
-127
-42
-111
-94
-57
-76
-70
-64
-59
-50
-39
-101
-83
-47
-160
-120
-43
-170
-137
-67
-253
-255
-252
-195
-167
-113
-145
-114
-49
-69
-69
-61
-120
-114
-108
-35
-31
-30
-47
-40
-38
-217
-187
-166
-250
-197
-158
-250
-176
-132
-249
-159
-103
-249
-146
-83
-248
-138
-64
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-250
-139
-73
-246
-156
-93
-250
-176
-132
-232
-190
-161
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-255
-215
-190
-255
-215
-190
-245
-212
-186
-227
-196
-175
-212
-173
-150
-209
-171
-139
-219
-170
-138
-240
-181
-138
-250
-176
-132
-251
-168
-115
-249
-159
-103
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-248
-138
-64
-249
-146
-83
-246
-156
-93
-247
-165
-111
-249
-174
-124
-248
-180
-134
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-219
-170
-138
-240
-181
-138
-250
-176
-132
-249
-174
-124
-249
-159
-103
-249
-152
-92
-247
-143
-74
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-248
-138
-64
-249
-146
-83
-246
-156
-93
-247
-165
-111
-249
-174
-124
-245
-179
-138
-230
-173
-136
-203
-161
-131
-203
-161
-131
-219
-170
-138
-239
-182
-144
-251
-192
-154
-249
-189
-146
-252
-185
-144
-252
-185
-144
-248
-180
-134
-245
-169
-119
-234
-168
-124
-247
-165
-111
-249
-159
-103
-249
-152
-92
-247
-150
-84
-247
-150
-84
-247
-150
-84
-249
-152
-92
-249
-159
-103
-247
-165
-111
-249
-174
-124
-248
-180
-134
-230
-173
-136
-219
-170
-138
-203
-161
-131
-209
-171
-139
-239
-182
-144
-251
-192
-154
-249
-189
-146
-249
-189
-146
-252
-185
-144
-252
-185
-144
-249
-189
-146
-236
-186
-153
-250
-200
-166
-255
-215
-190
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-253
-204
-176
-252
-185
-144
-249
-174
-124
-247
-165
-111
-247
-165
-111
-247
-165
-111
-251
-168
-115
-249
-174
-124
-248
-180
-134
-230
-173
-136
-219
-170
-138
-203
-161
-131
-209
-171
-139
-230
-173
-136
-245
-179
-138
-250
-176
-132
-251
-168
-115
-249
-159
-103
-249
-159
-103
-246
-156
-93
-249
-159
-103
-251
-168
-115
-248
-180
-134
-250
-197
-158
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-51
-62
-63
-187
-166
-150
-255
-215
-190
-255
-215
-190
-234
-204
-183
-207
-178
-158
-209
-171
-139
-209
-171
-139
-230
-173
-136
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-249
-152
-92
-247
-165
-111
-249
-174
-124
-248
-180
-134
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-219
-170
-138
-240
-181
-138
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-60
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-174
-124
-250
-176
-132
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-230
-173
-136
-251
-192
-154
-249
-189
-146
-249
-189
-146
-252
-185
-144
-252
-185
-144
-248
-180
-134
-234
-168
-124
-250
-176
-132
-248
-180
-134
-250
-176
-132
-250
-176
-132
-250
-176
-132
-248
-180
-134
-248
-180
-134
-230
-173
-136
-240
-181
-138
-252
-185
-144
-252
-185
-144
-252
-185
-144
-252
-185
-144
-248
-180
-134
-234
-168
-124
-234
-168
-124
-249
-174
-124
-251
-168
-115
-247
-165
-111
-247
-165
-111
-247
-165
-111
-251
-168
-115
-249
-174
-124
-250
-176
-132
-248
-180
-134
-230
-173
-136
-219
-170
-138
-209
-171
-139
-207
-178
-158
-227
-196
-175
-253
-212
-188
-255
-215
-190
-217
-187
-166
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-246
-116
-28
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-174
-124
-248
-180
-134
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-219
-170
-138
-240
-181
-138
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-159
-103
-247
-150
-84
-249
-146
-83
-247
-143
-74
-247
-143
-74
-249
-146
-83
-249
-152
-92
-249
-159
-103
-247
-165
-111
-234
-168
-124
-234
-168
-124
-248
-180
-134
-252
-185
-144
-252
-185
-144
-252
-185
-144
-248
-180
-134
-250
-176
-132
-234
-168
-124
-249
-174
-124
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-247
-165
-111
-251
-168
-115
-249
-174
-124
-250
-176
-132
-248
-180
-134
-230
-173
-136
-203
-161
-131
-203
-161
-131
-219
-170
-138
-239
-182
-144
-251
-192
-154
-249
-189
-146
-252
-185
-144
-252
-185
-144
-248
-180
-134
-234
-168
-124
-238
-159
-107
-247
-165
-111
-249
-152
-92
-247
-143
-74
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-130
-53
-247
-143
-74
-247
-165
-111
-252
-185
-144
-154
-133
-118
-24
-22
-23
-108
-87
-46
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-71
-60
-43
-85
-71
-43
-101
-83
-47
-89
-84
-82
-152
-147
-147
-24
-22
-23
-24
-22
-23
-108
-87
-46
-168
-127
-42
-224
-207
-180
-253
-255
-252
-209
-171
-139
-101
-83
-47
-24
-22
-23
-35
-31
-30
-35
-31
-30
-167
-142
-123
-253
-212
-188
-250
-197
-158
-248
-180
-134
-247
-165
-111
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-130
-60
-248
-138
-64
-249
-146
-83
-249
-159
-103
-250
-176
-132
-232
-190
-161
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-217
-187
-166
-137
-127
-115
-91
-92
-89
-55
-66
-67
-48
-58
-59
-48
-58
-59
-55
-66
-67
-84
-85
-82
-133
-120
-107
-209
-171
-139
-248
-180
-134
-251
-168
-115
-249
-159
-103
-247
-150
-84
-247
-143
-74
-250
-139
-73
-250
-139
-73
-249
-146
-83
-249
-152
-92
-247
-165
-111
-249
-174
-124
-245
-179
-138
-178
-146
-122
-124
-111
-99
-76
-78
-76
-51
-62
-63
-48
-58
-59
-48
-58
-59
-58
-69
-70
-91
-92
-89
-144
-125
-110
-203
-161
-131
-248
-180
-134
-249
-174
-124
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-248
-138
-64
-250
-139
-73
-249
-146
-83
-246
-156
-93
-247
-165
-111
-250
-176
-132
-230
-173
-136
-154
-133
-118
-101
-100
-92
-58
-69
-70
-48
-58
-59
-48
-58
-59
-51
-62
-63
-84
-85
-82
-137
-127
-115
-217
-187
-166
-253
-212
-188
-227
-196
-175
-144
-125
-110
-89
-84
-82
-81
-77
-76
-115
-102
-92
-210
-156
-119
-249
-174
-124
-251
-168
-115
-251
-168
-115
-251
-168
-115
-249
-174
-124
-250
-176
-132
-252
-185
-144
-195
-157
-134
-124
-111
-99
-76
-78
-76
-51
-62
-63
-48
-58
-59
-48
-58
-59
-70
-79
-77
-120
-114
-108
-187
-166
-150
-253
-212
-188
-253
-212
-188
-172
-150
-134
-101
-100
-92
-77
-85
-81
-101
-100
-92
-176
-156
-141
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-253
-212
-188
-250
-197
-158
-252
-185
-144
-248
-180
-134
-248
-180
-134
-252
-185
-144
-239
-182
-144
-167
-142
-123
-109
-106
-99
-70
-79
-77
-48
-58
-59
-48
-58
-59
-48
-58
-59
-58
-69
-70
-91
-92
-89
-150
-125
-114
-219
-170
-138
-248
-180
-134
-249
-174
-124
-249
-174
-124
-249
-174
-124
-250
-176
-132
-249
-189
-146
-253
-204
-176
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-176
-156
-141
-187
-166
-150
-109
-106
-99
-63
-74
-74
-43
-57
-62
-43
-57
-62
-43
-57
-62
-63
-74
-74
-109
-106
-99
-178
-146
-122
-245
-179
-138
-249
-174
-124
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-248
-138
-64
-248
-138
-64
-247
-143
-74
-247
-150
-84
-249
-159
-103
-249
-174
-124
-252
-185
-144
-195
-157
-134
-124
-111
-99
-77
-85
-81
-51
-62
-63
-41
-58
-57
-43
-57
-62
-51
-62
-63
-77
-85
-81
-124
-111
-99
-195
-157
-134
-252
-185
-144
-249
-174
-124
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-150
-84
-249
-159
-103
-251
-168
-115
-248
-180
-134
-203
-161
-131
-124
-111
-99
-77
-85
-81
-48
-58
-59
-43
-57
-62
-43
-57
-62
-63
-74
-74
-109
-106
-99
-187
-166
-150
-253
-212
-188
-253
-212
-188
-187
-166
-150
-109
-106
-99
-77
-85
-81
-84
-85
-82
-150
-125
-114
-232
-190
-161
-253
-204
-176
-253
-204
-176
-172
-150
-134
-101
-100
-92
-77
-85
-81
-91
-92
-89
-137
-127
-115
-227
-196
-175
-253
-212
-188
-186
-157
-134
-109
-106
-99
-77
-85
-81
-84
-85
-82
-124
-111
-99
-219
-170
-138
-249
-189
-146
-249
-189
-146
-249
-189
-146
-251
-192
-154
-250
-197
-158
-186
-157
-134
-109
-106
-99
-70
-79
-77
-43
-57
-62
-43
-57
-62
-41
-58
-57
-63
-74
-74
-101
-100
-92
-176
-156
-141
-194
-173
-157
-55
-66
-67
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-249
-174
-124
-252
-185
-144
-203
-161
-131
-133
-120
-107
-84
-85
-82
-55
-66
-67
-43
-57
-62
-41
-58
-57
-51
-62
-63
-77
-85
-81
-124
-111
-99
-178
-146
-122
-239
-182
-144
-250
-176
-132
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-159
-103
-247
-165
-111
-249
-174
-124
-210
-156
-119
-124
-111
-99
-77
-85
-81
-77
-85
-81
-109
-106
-99
-194
-173
-157
-253
-212
-188
-217
-187
-166
-133
-120
-107
-89
-84
-82
-76
-78
-76
-101
-100
-92
-178
-146
-122
-249
-189
-146
-252
-185
-144
-252
-185
-144
-252
-185
-144
-251
-192
-154
-236
-186
-153
-167
-142
-123
-101
-100
-92
-63
-74
-74
-41
-58
-57
-43
-57
-62
-51
-62
-63
-77
-85
-81
-137
-127
-115
-217
-187
-166
-253
-212
-188
-227
-196
-175
-144
-125
-110
-84
-85
-82
-76
-78
-76
-115
-102
-92
-204
-141
-99
-249
-159
-103
-247
-143
-74
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-250
-197
-158
-82
-69
-65
-47
-40
-38
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-101
-83
-47
-59
-50
-39
-101
-83
-47
-24
-22
-23
-35
-31
-30
-24
-22
-23
-24
-22
-23
-108
-87
-46
-168
-127
-42
-195
-167
-113
-253
-255
-252
-253
-255
-252
-239
-227
-208
-186
-157
-134
-162
-125
-96
-105
-93
-60
-47
-40
-38
-150
-125
-114
-217
-187
-166
-250
-200
-166
-252
-185
-144
-251
-168
-115
-246
-156
-93
-249
-146
-83
-247
-143
-74
-249
-146
-83
-249
-152
-92
-247
-165
-111
-252
-185
-144
-232
-190
-161
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-55
-66
-67
-58
-69
-70
-56
-64
-60
-83
-78
-61
-105
-93
-60
-117
-98
-55
-117
-98
-55
-105
-93
-60
-83
-78
-61
-56
-64
-60
-55
-66
-67
-144
-125
-110
-239
-182
-144
-250
-176
-132
-247
-165
-111
-249
-159
-103
-246
-156
-93
-249
-159
-103
-247
-165
-111
-249
-174
-124
-252
-185
-144
-195
-157
-134
-89
-84
-82
-48
-58
-59
-63
-69
-60
-95
-87
-59
-111
-94
-57
-123
-102
-54
-117
-98
-55
-105
-93
-60
-83
-78
-61
-56
-64
-60
-51
-62
-63
-124
-111
-99
-219
-170
-138
-248
-180
-134
-251
-168
-115
-249
-159
-103
-249
-152
-92
-249
-152
-92
-246
-156
-93
-247
-165
-111
-249
-174
-124
-252
-185
-144
-167
-142
-123
-70
-79
-77
-51
-62
-63
-75
-74
-61
-100
-89
-56
-117
-98
-55
-123
-102
-54
-105
-93
-60
-83
-78
-61
-51
-62
-63
-63
-74
-74
-172
-150
-134
-109
-106
-99
-51
-62
-63
-83
-78
-61
-95
-87
-59
-65
-67
-64
-65
-67
-64
-209
-171
-139
-249
-189
-146
-249
-189
-146
-249
-189
-146
-250
-197
-158
-212
-173
-150
-109
-106
-99
-48
-58
-59
-63
-69
-60
-95
-87
-59
-111
-94
-57
-123
-102
-54
-117
-98
-55
-95
-87
-59
-62
-63
-61
-48
-58
-59
-137
-127
-115
-146
-135
-124
-48
-58
-59
-75
-74
-61
-95
-87
-59
-75
-74
-61
-48
-58
-59
-161
-144
-134
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-200
-166
-250
-200
-166
-172
-150
-134
-77
-85
-81
-48
-58
-59
-69
-69
-61
-95
-87
-59
-111
-94
-57
-123
-102
-54
-117
-98
-55
-100
-89
-56
-75
-74
-61
-56
-64
-60
-55
-66
-67
-133
-120
-107
-236
-186
-153
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-253
-212
-188
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-51
-62
-63
-63
-74
-74
-48
-58
-59
-76
-70
-64
-118
-86
-65
-146
-97
-64
-155
-100
-63
-146
-97
-64
-118
-86
-65
-76
-70
-64
-43
-57
-62
-91
-92
-89
-203
-161
-131
-248
-180
-134
-251
-168
-115
-249
-159
-103
-249
-152
-92
-247
-150
-84
-249
-152
-92
-249
-159
-103
-251
-168
-115
-248
-180
-134
-209
-171
-139
-101
-100
-92
-43
-57
-62
-69
-69
-61
-106
-82
-65
-135
-94
-64
-155
-100
-63
-155
-100
-63
-135
-94
-64
-106
-82
-65
-65
-67
-64
-43
-57
-62
-101
-100
-92
-209
-171
-139
-248
-180
-134
-251
-168
-115
-249
-159
-103
-249
-152
-92
-247
-150
-84
-247
-150
-84
-246
-156
-93
-247
-165
-111
-250
-176
-132
-219
-170
-138
-124
-111
-99
-48
-58
-59
-62
-63
-61
-106
-82
-65
-139
-96
-61
-155
-100
-63
-146
-97
-64
-125
-90
-64
-76
-70
-64
-41
-58
-57
-120
-114
-108
-172
-150
-134
-51
-62
-63
-69
-69
-61
-112
-85
-63
-95
-78
-64
-51
-62
-63
-120
-114
-108
-245
-212
-186
-146
-135
-124
-43
-57
-62
-81
-73
-62
-118
-86
-65
-95
-78
-64
-56
-64
-60
-101
-100
-92
-133
-120
-107
-43
-57
-62
-76
-70
-64
-112
-85
-63
-106
-82
-65
-62
-63
-61
-77
-85
-81
-227
-196
-175
-253
-212
-188
-253
-212
-188
-217
-187
-166
-109
-106
-99
-41
-58
-57
-69
-69
-61
-112
-85
-63
-139
-96
-61
-155
-100
-63
-146
-97
-64
-118
-86
-65
-81
-73
-62
-48
-58
-59
-58
-69
-70
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-146
-83
-249
-159
-103
-250
-176
-132
-219
-170
-138
-124
-111
-99
-43
-57
-62
-62
-63
-61
-106
-82
-65
-135
-94
-64
-155
-100
-63
-155
-100
-63
-139
-96
-61
-106
-82
-65
-69
-69
-61
-43
-57
-62
-91
-92
-89
-195
-157
-134
-251
-192
-154
-252
-185
-144
-248
-180
-134
-248
-180
-134
-252
-185
-144
-203
-161
-131
-63
-74
-74
-62
-63
-61
-106
-82
-65
-112
-85
-63
-69
-69
-61
-55
-66
-67
-146
-135
-124
-63
-74
-74
-56
-64
-60
-95
-78
-64
-112
-85
-63
-76
-70
-64
-48
-58
-59
-172
-150
-134
-253
-204
-176
-251
-209
-178
-251
-209
-178
-187
-166
-150
-77
-85
-81
-48
-58
-59
-81
-73
-62
-125
-90
-64
-146
-97
-64
-155
-100
-63
-139
-96
-61
-95
-78
-64
-56
-64
-60
-58
-69
-70
-161
-144
-134
-109
-106
-99
-51
-62
-63
-95
-78
-64
-112
-85
-63
-65
-67
-64
-65
-67
-64
-204
-141
-99
-246
-156
-93
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-252
-185
-144
-209
-171
-139
-24
-22
-23
-85
-71
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-47
-40
-38
-137
-110
-49
-101
-83
-47
-59
-50
-39
-59
-50
-39
-101
-83
-47
-158
-125
-46
-160
-120
-43
-192
-155
-91
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-237
-233
-225
-152
-147
-147
-81
-77
-76
-55
-48
-48
-115
-102
-92
-212
-173
-150
-251
-192
-154
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-159
-103
-247
-165
-111
-249
-174
-124
-249
-189
-146
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-43
-57
-62
-95
-87
-59
-145
-114
-49
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-145
-114
-49
-95
-87
-59
-48
-58
-59
-109
-106
-99
-236
-186
-153
-252
-185
-144
-248
-180
-134
-250
-176
-132
-250
-176
-132
-252
-185
-144
-251
-192
-154
-150
-125
-114
-48
-58
-59
-69
-69
-61
-117
-98
-55
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-152
-119
-47
-100
-89
-56
-56
-64
-60
-63
-74
-74
-186
-157
-134
-249
-189
-146
-248
-180
-134
-249
-174
-124
-249
-174
-124
-250
-176
-132
-252
-185
-144
-251
-192
-154
-133
-120
-107
-48
-58
-59
-75
-74
-61
-137
-110
-49
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-145
-114
-49
-75
-74
-61
-43
-57
-62
-51
-62
-63
-123
-102
-54
-171
-129
-45
-171
-129
-45
-145
-114
-49
-56
-64
-60
-133
-120
-107
-253
-212
-188
-251
-209
-178
-253
-212
-188
-194
-173
-157
-63
-74
-74
-56
-64
-60
-111
-94
-57
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-158
-125
-46
-105
-93
-60
-51
-62
-63
-43
-57
-62
-88
-82
-59
-168
-127
-42
-171
-129
-45
-168
-127
-42
-88
-82
-59
-63
-74
-74
-187
-166
-150
-55
-66
-67
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-133
-120
-107
-48
-58
-59
-75
-74
-61
-129
-106
-52
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-171
-129
-45
-168
-127
-42
-145
-114
-49
-95
-87
-59
-51
-62
-63
-77
-85
-81
-212
-173
-150
-253
-204
-176
-253
-204
-176
-251
-209
-178
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-41
-58
-57
-69
-69
-61
-155
-100
-63
-214
-121
-50
-234
-126
-45
-234
-126
-45
-234
-126
-45
-234
-126
-45
-234
-126
-45
-224
-123
-55
-155
-100
-63
-69
-69
-61
-51
-62
-63
-178
-146
-122
-249
-189
-146
-250
-176
-132
-251
-168
-115
-251
-168
-115
-249
-174
-124
-250
-176
-132
-249
-189
-146
-167
-142
-123
-55
-66
-67
-65
-67
-64
-146
-97
-64
-212
-120
-56
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-125
-52
-209
-117
-53
-146
-97
-64
-65
-67
-64
-55
-66
-67
-178
-146
-122
-249
-189
-146
-250
-176
-132
-251
-168
-115
-247
-165
-111
-251
-168
-115
-249
-174
-124
-252
-185
-144
-203
-161
-131
-63
-74
-74
-56
-64
-60
-125
-90
-64
-209
-117
-53
-234
-126
-45
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-126
-45
-214
-121
-50
-146
-97
-64
-56
-64
-60
-41
-58
-57
-81
-73
-62
-209
-117
-53
-234
-126
-45
-234
-126
-45
-125
-90
-64
-51
-62
-63
-176
-156
-141
-55
-66
-67
-106
-82
-65
-225
-124
-48
-234
-126
-45
-234
-126
-45
-146
-97
-64
-41
-58
-57
-43
-57
-62
-125
-90
-64
-214
-121
-50
-234
-126
-45
-234
-126
-45
-183
-110
-59
-56
-64
-60
-137
-127
-115
-255
-215
-190
-194
-173
-157
-63
-74
-74
-62
-63
-61
-146
-97
-64
-214
-121
-50
-234
-125
-52
-234
-126
-45
-234
-125
-52
-234
-125
-52
-234
-126
-45
-225
-124
-48
-173
-106
-60
-81
-73
-62
-35
-56
-60
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-53
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-247
-165
-111
-248
-180
-134
-186
-157
-134
-58
-69
-70
-56
-64
-60
-135
-94
-64
-199
-115
-54
-234
-125
-52
-234
-126
-45
-234
-125
-52
-234
-125
-52
-234
-126
-45
-234
-125
-52
-212
-120
-56
-155
-100
-63
-76
-70
-64
-51
-62
-63
-146
-135
-124
-251
-209
-178
-253
-204
-176
-250
-200
-166
-253
-204
-176
-101
-100
-92
-69
-69
-61
-194
-112
-58
-234
-126
-45
-234
-126
-45
-199
-115
-54
-65
-67
-64
-35
-56
-60
-81
-73
-62
-194
-112
-58
-234
-125
-52
-234
-126
-45
-214
-121
-50
-95
-78
-64
-63
-74
-74
-238
-205
-179
-255
-215
-190
-161
-144
-134
-43
-57
-62
-81
-73
-62
-173
-106
-60
-225
-124
-48
-234
-126
-45
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-126
-45
-194
-112
-58
-95
-78
-64
-41
-58
-57
-48
-58
-59
-155
-100
-63
-234
-126
-45
-234
-126
-45
-199
-115
-54
-69
-69
-61
-99
-90
-79
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-60
-247
-150
-84
-249
-174
-124
-251
-192
-154
-124
-111
-99
-35
-31
-30
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-47
-40
-38
-108
-87
-46
-175
-132
-40
-161
-127
-40
-168
-127
-42
-171
-129
-45
-158
-125
-46
-152
-119
-47
-203
-161
-131
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-186
-181
-179
-89
-84
-82
-47
-40
-38
-139
-115
-96
-236
-186
-153
-252
-185
-144
-250
-176
-132
-249
-174
-124
-250
-176
-132
-252
-185
-144
-250
-197
-158
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-111
-94
-57
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-111
-94
-57
-48
-58
-59
-109
-106
-99
-253
-204
-176
-250
-200
-166
-250
-200
-166
-250
-200
-166
-253
-204
-176
-137
-127
-115
-43
-57
-62
-88
-82
-59
-158
-125
-46
-171
-129
-45
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-145
-114
-49
-69
-69
-61
-51
-62
-63
-187
-166
-150
-250
-200
-166
-250
-197
-158
-251
-192
-154
-250
-197
-158
-253
-204
-176
-133
-120
-107
-48
-58
-59
-95
-87
-59
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-158
-125
-46
-75
-74
-61
-62
-63
-61
-168
-127
-42
-161
-127
-40
-158
-125
-46
-171
-129
-45
-83
-78
-61
-91
-92
-89
-255
-215
-190
-255
-215
-190
-207
-178
-158
-58
-69
-70
-63
-69
-60
-145
-114
-49
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-105
-93
-60
-43
-57
-62
-137
-110
-49
-171
-129
-45
-158
-125
-46
-171
-129
-45
-137
-110
-49
-51
-62
-63
-146
-135
-124
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-65
-67
-64
-137
-127
-115
-255
-215
-190
-255
-215
-190
-245
-212
-186
-120
-114
-108
-48
-58
-59
-100
-89
-56
-168
-127
-42
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-129
-106
-52
-61
-67
-58
-63
-74
-74
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-95
-78
-64
-209
-117
-53
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-209
-117
-53
-89
-75
-66
-51
-62
-63
-187
-166
-150
-250
-197
-158
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-161
-144
-134
-41
-58
-57
-95
-78
-64
-199
-115
-54
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-199
-115
-54
-89
-75
-66
-41
-58
-57
-167
-142
-123
-250
-200
-166
-251
-192
-154
-252
-185
-144
-249
-189
-146
-250
-197
-158
-212
-173
-150
-63
-74
-74
-69
-69
-61
-183
-110
-59
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-163
-104
-61
-41
-58
-57
-135
-94
-64
-234
-126
-45
-224
-123
-55
-234
-125
-52
-188
-112
-56
-51
-62
-63
-109
-106
-99
-51
-62
-63
-188
-112
-56
-234
-126
-45
-224
-123
-55
-234
-125
-52
-188
-112
-56
-43
-57
-62
-112
-85
-63
-234
-126
-45
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-95
-78
-64
-109
-106
-99
-217
-187
-166
-58
-69
-70
-69
-69
-61
-188
-112
-56
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-214
-121
-50
-95
-78
-64
-146
-97
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-143
-74
-249
-159
-103
-250
-176
-132
-186
-157
-134
-51
-62
-63
-81
-73
-62
-188
-112
-56
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-212
-120
-56
-106
-82
-65
-41
-58
-57
-146
-135
-124
-255
-215
-190
-255
-215
-190
-234
-204
-183
-63
-74
-74
-125
-90
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-234
-125
-52
-89
-75
-66
-62
-63
-61
-199
-115
-54
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-163
-104
-61
-48
-58
-59
-217
-187
-166
-172
-150
-134
-41
-58
-57
-106
-82
-65
-214
-121
-50
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-225
-124
-48
-81
-73
-62
-69
-69
-61
-227
-126
-50
-227
-126
-50
-224
-123
-55
-238
-123
-45
-125
-90
-64
-55
-66
-67
-250
-176
-132
-246
-156
-93
-250
-139
-73
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-248
-180
-134
-232
-190
-161
-47
-40
-38
-71
-60
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-71
-60
-43
-71
-60
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-160
-120
-43
-170
-137
-67
-237
-233
-225
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-186
-181
-179
-74
-68
-68
-89
-75
-66
-212
-173
-150
-250
-197
-158
-251
-192
-154
-249
-189
-146
-251
-192
-154
-253
-204
-176
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-111
-94
-57
-48
-58
-59
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-172
-150
-134
-48
-58
-59
-95
-87
-59
-168
-127
-42
-168
-127
-42
-158
-125
-46
-161
-127
-40
-171
-129
-45
-158
-125
-46
-152
-119
-47
-152
-119
-47
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-69
-69
-61
-58
-69
-70
-217
-187
-166
-255
-215
-190
-255
-215
-190
-255
-215
-190
-172
-150
-134
-43
-57
-62
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-158
-125
-46
-168
-127
-42
-137
-110
-49
-83
-78
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-255
-215
-190
-238
-205
-179
-84
-85
-82
-62
-63
-61
-145
-114
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-161
-127
-40
-158
-125
-46
-88
-82
-59
-152
-119
-47
-161
-127
-40
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-63
-69
-60
-137
-127
-115
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-105
-93
-60
-171
-129
-45
-161
-127
-40
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-152
-119
-47
-152
-119
-47
-168
-127
-42
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-145
-114
-49
-62
-63
-61
-70
-79
-77
-227
-196
-175
-255
-215
-190
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-212
-120
-56
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-234
-126
-45
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-76
-70
-64
-70
-79
-77
-234
-204
-183
-253
-212
-188
-251
-209
-178
-253
-212
-188
-187
-166
-150
-43
-57
-62
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-126
-45
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-95
-78
-64
-48
-58
-59
-194
-173
-157
-253
-212
-188
-251
-209
-178
-251
-209
-178
-245
-212
-186
-91
-92
-89
-62
-63
-61
-188
-112
-56
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-125
-52
-234
-126
-45
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-146
-97
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-212
-120
-56
-183
-110
-59
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-126
-45
-95
-78
-64
-84
-85
-82
-91
-92
-89
-62
-63
-61
-188
-112
-56
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-126
-45
-227
-126
-50
-224
-123
-55
-227
-126
-50
-224
-123
-55
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-123
-41
-247
-123
-41
-247
-130
-53
-248
-138
-64
-249
-152
-92
-249
-174
-124
-209
-171
-139
-58
-69
-70
-81
-73
-62
-209
-117
-53
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-125
-52
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-112
-85
-63
-41
-58
-57
-172
-150
-134
-255
-215
-190
-227
-196
-175
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-194
-112
-58
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-238
-128
-40
-163
-104
-61
-55
-66
-67
-161
-144
-134
-58
-69
-70
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-126
-45
-234
-126
-45
-234
-125
-52
-227
-126
-50
-234
-125
-52
-173
-106
-60
-118
-86
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-146
-97
-64
-51
-62
-63
-252
-185
-144
-249
-159
-103
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-251
-168
-115
-251
-192
-154
-154
-133
-118
-24
-22
-23
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-108
-87
-46
-47
-40
-38
-158
-125
-46
-158
-125
-46
-158
-125
-46
-160
-120
-43
-156
-125
-62
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-152
-147
-147
-35
-31
-30
-55
-48
-48
-154
-133
-118
-217
-187
-166
-253
-204
-176
-253
-204
-176
-253
-212
-188
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-168
-127
-42
-158
-125
-46
-123
-102
-54
-105
-93
-60
-111
-94
-57
-129
-106
-52
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-83
-78
-61
-58
-69
-70
-227
-196
-175
-255
-215
-190
-217
-187
-166
-58
-69
-70
-75
-74
-61
-168
-127
-42
-161
-127
-40
-158
-125
-46
-168
-127
-42
-152
-119
-47
-105
-93
-60
-69
-69
-61
-62
-63
-61
-62
-63
-61
-75
-74
-61
-117
-98
-55
-161
-127
-40
-161
-127
-40
-158
-125
-46
-171
-129
-45
-145
-114
-49
-56
-64
-60
-97
-98
-96
-245
-212
-186
-255
-215
-190
-227
-196
-175
-63
-74
-74
-75
-74
-61
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-129
-106
-52
-111
-94
-57
-105
-93
-60
-129
-106
-52
-158
-125
-46
-168
-127
-42
-161
-127
-40
-152
-119
-47
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-84
-85
-82
-255
-215
-190
-161
-144
-134
-48
-58
-59
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-117
-98
-55
-105
-93
-60
-117
-98
-55
-145
-114
-49
-171
-129
-45
-168
-127
-42
-152
-119
-47
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-194
-173
-157
-48
-58
-59
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-95
-87
-59
-69
-69
-61
-62
-63
-61
-62
-63
-61
-83
-78
-61
-123
-102
-54
-168
-127
-42
-161
-127
-40
-158
-125
-46
-171
-129
-45
-129
-106
-52
-51
-62
-63
-120
-114
-108
-255
-215
-190
-255
-215
-190
-161
-144
-134
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-227
-126
-50
-227
-126
-50
-188
-112
-56
-146
-97
-64
-135
-94
-64
-146
-97
-64
-199
-115
-54
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-173
-106
-60
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-234
-204
-183
-77
-85
-81
-76
-70
-64
-214
-121
-50
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-163
-104
-61
-135
-94
-64
-135
-94
-64
-163
-104
-61
-224
-123
-55
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-212
-120
-56
-76
-70
-64
-77
-85
-81
-238
-205
-179
-255
-215
-190
-255
-215
-190
-161
-144
-134
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-199
-115
-54
-155
-100
-63
-135
-94
-64
-146
-97
-64
-188
-112
-56
-227
-126
-50
-227
-126
-50
-214
-121
-50
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-199
-115
-54
-125
-90
-64
-51
-62
-63
-55
-66
-67
-41
-58
-57
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-209
-117
-53
-155
-100
-63
-135
-94
-64
-139
-96
-61
-183
-110
-59
-227
-126
-50
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-60
-249
-146
-83
-247
-165
-111
-252
-185
-144
-101
-100
-92
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-173
-106
-60
-135
-94
-64
-135
-94
-64
-163
-104
-61
-214
-121
-50
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-81
-73
-62
-58
-69
-70
-227
-196
-175
-234
-204
-183
-63
-74
-74
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-125
-52
-212
-120
-56
-155
-100
-63
-69
-69
-61
-76
-78
-76
-84
-85
-82
-65
-67
-64
-209
-117
-53
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-183
-110
-59
-139
-96
-61
-135
-94
-64
-155
-100
-63
-209
-117
-53
-234
-125
-52
-224
-123
-55
-212
-120
-56
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-251
-192
-154
-251
-168
-115
-249
-146
-83
-247
-130
-53
-247
-118
-39
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-250
-176
-132
-232
-190
-161
-65
-58
-56
-59
-50
-39
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-47
-40
-38
-129
-106
-52
-168
-127
-42
-160
-120
-43
-158
-125
-46
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-62
-63
-61
-35
-31
-30
-91
-92
-89
-164
-158
-157
-186
-181
-179
-82
-69
-65
-176
-156
-141
-255
-215
-190
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-65
-67
-64
-48
-58
-59
-55
-66
-67
-55
-66
-67
-48
-58
-59
-83
-78
-61
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-146
-135
-124
-255
-215
-190
-120
-114
-108
-56
-64
-60
-145
-114
-49
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-69
-69
-61
-43
-57
-62
-109
-106
-99
-146
-135
-124
-137
-127
-115
-91
-92
-89
-43
-57
-62
-88
-82
-59
-158
-125
-46
-161
-127
-40
-158
-125
-46
-171
-129
-45
-117
-98
-55
-48
-58
-59
-172
-150
-134
-255
-215
-190
-146
-135
-124
-51
-62
-63
-137
-110
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-75
-74
-61
-48
-58
-59
-55
-66
-67
-55
-66
-67
-48
-58
-59
-69
-69
-61
-137
-110
-49
-168
-127
-42
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-234
-204
-183
-70
-79
-77
-83
-78
-61
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-111
-94
-57
-56
-64
-60
-43
-57
-62
-58
-69
-70
-48
-58
-59
-56
-64
-60
-100
-89
-56
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-255
-215
-190
-97
-98
-96
-62
-63
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-137
-110
-49
-62
-63
-61
-51
-62
-63
-120
-114
-108
-146
-135
-124
-137
-127
-115
-84
-85
-82
-43
-57
-62
-95
-87
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-100
-89
-56
-43
-57
-62
-194
-173
-157
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-118
-86
-65
-51
-62
-63
-43
-57
-62
-58
-69
-70
-41
-58
-57
-56
-64
-60
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-106
-82
-65
-63
-74
-74
-234
-204
-183
-255
-215
-190
-161
-144
-134
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-183
-110
-59
-76
-70
-64
-43
-57
-62
-55
-66
-67
-55
-66
-67
-48
-58
-59
-81
-73
-62
-183
-110
-59
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-163
-104
-61
-48
-58
-59
-161
-144
-134
-255
-215
-190
-234
-204
-183
-63
-74
-74
-95
-78
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-135
-94
-64
-62
-63
-61
-43
-57
-62
-58
-69
-70
-43
-57
-62
-51
-62
-63
-125
-90
-64
-225
-124
-48
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-227
-126
-50
-173
-106
-60
-95
-78
-64
-56
-64
-60
-51
-62
-63
-120
-114
-108
-70
-79
-77
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-163
-104
-61
-65
-67
-64
-41
-58
-57
-55
-66
-67
-51
-62
-63
-48
-58
-59
-106
-82
-65
-209
-117
-53
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-130
-60
-250
-139
-73
-246
-156
-93
-250
-176
-132
-186
-157
-134
-41
-58
-57
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-199
-115
-54
-89
-75
-66
-48
-58
-59
-51
-62
-63
-55
-66
-67
-43
-57
-62
-76
-70
-64
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-137
-127
-115
-234
-204
-183
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-199
-115
-54
-125
-90
-64
-69
-69
-61
-41
-58
-57
-97
-98
-96
-146
-135
-124
-51
-62
-63
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-214
-121
-50
-106
-82
-65
-48
-58
-59
-51
-62
-63
-55
-66
-67
-41
-58
-57
-65
-67
-64
-163
-104
-61
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-197
-158
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-252
-185
-144
-154
-133
-118
-24
-22
-23
-108
-87
-46
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-71
-60
-43
-85
-71
-43
-171
-129
-45
-160
-120
-43
-216
-194
-154
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-237
-233
-225
-65
-58
-56
-62
-63
-61
-219
-212
-208
-253
-255
-252
-237
-233
-225
-120
-114
-108
-35
-31
-30
-55
-48
-48
-227
-196
-175
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-51
-62
-63
-84
-85
-82
-187
-166
-150
-227
-196
-175
-227
-196
-175
-161
-144
-134
-51
-62
-63
-69
-69
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-217
-187
-166
-55
-66
-67
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-58
-69
-70
-187
-166
-150
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-161
-144
-134
-43
-57
-62
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-75
-74
-61
-84
-85
-82
-234
-204
-183
-76
-78
-76
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-62
-63
-61
-63
-74
-74
-176
-156
-141
-227
-196
-175
-227
-196
-175
-176
-156
-141
-70
-79
-77
-62
-63
-61
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-172
-150
-134
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-105
-93
-60
-43
-57
-62
-120
-114
-108
-207
-178
-158
-227
-196
-175
-217
-187
-166
-120
-114
-108
-41
-58
-57
-95
-87
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-146
-135
-124
-207
-178
-158
-48
-58
-59
-111
-94
-57
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-62
-63
-61
-70
-79
-77
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-238
-205
-179
-137
-127
-115
-43
-57
-62
-117
-98
-55
-168
-127
-42
-158
-125
-46
-168
-127
-42
-152
-119
-47
-62
-63
-61
-109
-106
-99
-255
-215
-190
-161
-144
-134
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-106
-82
-65
-41
-58
-57
-137
-127
-115
-217
-187
-166
-227
-196
-175
-207
-178
-158
-109
-106
-99
-41
-58
-57
-146
-97
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-176
-156
-141
-245
-212
-186
-70
-79
-77
-95
-78
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-188
-112
-56
-56
-64
-60
-70
-79
-77
-176
-156
-141
-227
-196
-175
-227
-196
-175
-176
-156
-141
-63
-74
-74
-62
-63
-61
-194
-112
-58
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-77
-85
-81
-245
-212
-186
-172
-150
-134
-48
-58
-59
-173
-106
-60
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-135
-94
-64
-35
-56
-60
-120
-114
-108
-207
-178
-158
-227
-196
-175
-217
-187
-166
-133
-120
-107
-35
-56
-60
-118
-86
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-95
-78
-64
-48
-58
-59
-70
-79
-77
-146
-135
-124
-217
-187
-166
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-163
-104
-61
-48
-58
-59
-91
-92
-89
-194
-173
-157
-227
-196
-175
-217
-187
-166
-146
-135
-124
-43
-57
-62
-89
-75
-66
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-130
-60
-248
-138
-64
-249
-146
-83
-247
-165
-111
-239
-182
-144
-91
-92
-89
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-76
-70
-64
-55
-66
-67
-172
-150
-134
-227
-196
-175
-227
-196
-175
-187
-166
-150
-77
-85
-81
-51
-62
-63
-173
-106
-60
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-118
-86
-65
-58
-69
-70
-217
-187
-166
-70
-79
-77
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-225
-124
-48
-125
-90
-64
-56
-64
-60
-55
-66
-67
-120
-114
-108
-187
-166
-150
-245
-212
-186
-120
-114
-108
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-225
-124
-48
-95
-78
-64
-43
-57
-62
-146
-135
-124
-217
-187
-166
-227
-196
-175
-194
-173
-157
-91
-92
-89
-48
-58
-59
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-197
-158
-249
-174
-124
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-251
-168
-115
-239
-182
-144
-65
-58
-56
-59
-50
-39
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-108
-87
-46
-47
-40
-38
-152
-119
-47
-170
-137
-67
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-174
-168
-167
-24
-22
-23
-109
-106
-99
-152
-147
-147
-97
-98
-96
-47
-40
-38
-24
-22
-23
-35
-31
-30
-35
-31
-30
-176
-156
-141
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-76
-78
-76
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-187
-166
-150
-51
-62
-63
-95
-87
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-55
-66
-67
-109
-106
-99
-48
-58
-59
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-117
-98
-55
-48
-58
-59
-187
-166
-150
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-171
-129
-45
-117
-98
-55
-55
-66
-67
-137
-127
-115
-55
-66
-67
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-55
-66
-67
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-58
-69
-70
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-91
-92
-89
-109
-106
-99
-69
-69
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-120
-114
-108
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-146
-135
-124
-146
-135
-124
-62
-63
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-100
-89
-56
-51
-62
-63
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-109
-106
-99
-63
-69
-60
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-100
-89
-56
-51
-62
-63
-227
-196
-175
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-155
-100
-63
-41
-58
-57
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-109
-106
-99
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-224
-123
-55
-76
-70
-64
-109
-106
-99
-194
-173
-157
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-225
-124
-48
-89
-75
-66
-63
-74
-74
-217
-187
-166
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-58
-69
-70
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-155
-100
-63
-43
-57
-62
-207
-178
-158
-109
-106
-99
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-51
-62
-63
-120
-114
-108
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-188
-112
-56
-62
-63
-61
-58
-69
-70
-161
-144
-134
-234
-204
-183
-255
-215
-190
-255
-215
-190
-137
-127
-115
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-212
-120
-56
-69
-69
-61
-77
-85
-81
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-176
-156
-141
-35
-56
-60
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-251
-168
-115
-247
-150
-84
-250
-139
-73
-248
-138
-64
-250
-139
-73
-249
-152
-92
-249
-174
-124
-209
-171
-139
-43
-57
-62
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-112
-85
-63
-51
-62
-63
-194
-173
-157
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-227
-196
-175
-70
-79
-77
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-146
-135
-124
-77
-85
-81
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-214
-121
-50
-95
-78
-64
-35
-56
-60
-120
-114
-108
-217
-187
-166
-255
-215
-190
-255
-215
-190
-227
-196
-175
-58
-69
-70
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-41
-58
-57
-172
-150
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-77
-85
-81
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-51
-62
-63
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-178
-146
-122
-24
-22
-23
-101
-83
-47
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-47
-40
-38
-123
-102
-54
-209
-171
-139
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-164
-158
-157
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-35
-31
-30
-35
-31
-30
-47
-40
-38
-194
-173
-157
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-176
-156
-141
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-120
-114
-108
-56
-64
-60
-152
-119
-47
-161
-127
-40
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-48
-58
-59
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-63
-74
-74
-194
-173
-157
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-172
-150
-134
-48
-58
-59
-111
-94
-57
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-56
-64
-60
-51
-62
-63
-56
-64
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-146
-135
-124
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-146
-135
-124
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-70
-79
-77
-63
-74
-74
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-95
-87
-59
-55
-66
-67
-227
-196
-175
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-234
-204
-183
-70
-79
-77
-88
-82
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-97
-98
-96
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-84
-85
-82
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-217
-187
-166
-146
-135
-124
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-129
-106
-52
-51
-62
-63
-187
-166
-150
-176
-156
-141
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-89
-75
-66
-70
-79
-77
-245
-212
-186
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-217
-187
-166
-43
-57
-62
-125
-90
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-106
-82
-65
-77
-85
-81
-133
-120
-107
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-161
-144
-134
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-146
-135
-124
-48
-58
-59
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-133
-120
-107
-77
-85
-81
-118
-86
-65
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-125
-90
-64
-55
-66
-67
-227
-196
-175
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-234
-204
-183
-63
-74
-74
-106
-82
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-224
-123
-55
-89
-75
-66
-63
-74
-74
-217
-187
-166
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-91
-92
-89
-95
-78
-64
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-146
-97
-64
-43
-57
-62
-187
-166
-150
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-101
-100
-92
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-251
-168
-115
-247
-150
-84
-250
-139
-73
-250
-139
-73
-247
-143
-74
-249
-159
-103
-250
-176
-132
-154
-133
-118
-51
-62
-63
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-133
-120
-107
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-176
-156
-141
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-91
-92
-89
-70
-79
-77
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-146
-97
-64
-35
-56
-60
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-194
-173
-157
-48
-58
-59
-163
-104
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-97
-98
-96
-255
-215
-190
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-187
-166
-150
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-159
-103
-248
-180
-134
-124
-111
-99
-35
-31
-30
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-59
-50
-39
-85
-71
-43
-216
-194
-154
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-207
-202
-200
-47
-40
-38
-24
-22
-23
-35
-31
-30
-35
-31
-30
-35
-31
-30
-35
-31
-30
-24
-22
-23
-65
-58
-56
-238
-205
-179
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-100
-89
-56
-63
-74
-74
-227
-196
-175
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-251
-209
-178
-255
-215
-190
-194
-173
-157
-48
-58
-59
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-43
-57
-62
-95
-87
-59
-168
-127
-42
-158
-125
-46
-161
-127
-40
-158
-125
-46
-63
-69
-60
-43
-57
-62
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-43
-57
-62
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-43
-57
-62
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-51
-62
-63
-217
-187
-166
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-48
-58
-59
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-109
-106
-99
-255
-215
-190
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-212
-188
-255
-215
-190
-120
-114
-108
-63
-69
-60
-158
-125
-46
-161
-127
-40
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-120
-114
-108
-70
-79
-77
-105
-93
-60
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-56
-64
-60
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-43
-57
-62
-111
-94
-57
-171
-129
-45
-158
-125
-46
-161
-127
-40
-152
-119
-47
-62
-63
-61
-146
-135
-124
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-146
-135
-124
-255
-215
-190
-253
-212
-188
-250
-200
-166
-250
-200
-166
-253
-204
-176
-253
-212
-188
-253
-212
-188
-97
-98
-96
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-51
-62
-63
-63
-74
-74
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-135
-94
-64
-55
-66
-67
-217
-187
-166
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-217
-187
-166
-51
-62
-63
-139
-96
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-225
-124
-48
-81
-73
-62
-58
-69
-70
-51
-62
-63
-146
-97
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-224
-123
-55
-81
-73
-62
-109
-106
-99
-255
-215
-190
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-212
-188
-255
-215
-190
-120
-114
-108
-69
-69
-61
-212
-120
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-234
-125
-52
-224
-123
-55
-227
-126
-50
-194
-112
-58
-51
-62
-63
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-70
-79
-77
-118
-86
-65
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-106
-82
-65
-77
-85
-81
-245
-212
-186
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-251
-209
-178
-255
-215
-190
-176
-156
-141
-56
-64
-60
-188
-112
-56
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-251
-168
-115
-249
-152
-92
-247
-143
-74
-247
-143
-74
-247
-150
-84
-249
-159
-103
-248
-180
-134
-120
-114
-108
-69
-69
-61
-212
-120
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-155
-100
-63
-43
-57
-62
-194
-173
-157
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-234
-204
-183
-63
-74
-74
-112
-85
-63
-234
-125
-52
-227
-126
-50
-224
-123
-55
-234
-125
-52
-106
-82
-65
-58
-69
-70
-55
-66
-67
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-77
-85
-81
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-172
-150
-134
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-245
-212
-186
-63
-74
-74
-112
-85
-63
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-252
-185
-144
-82
-69
-65
-47
-40
-38
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-85
-71
-43
-59
-50
-39
-216
-194
-154
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-164
-158
-157
-47
-40
-38
-24
-22
-23
-24
-22
-23
-24
-22
-23
-35
-31
-30
-65
-67
-64
-65
-58
-56
-227
-196
-175
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-255
-215
-190
-251
-209
-178
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-227
-196
-175
-58
-69
-70
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-41
-58
-57
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-137
-110
-49
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-41
-58
-57
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-95
-87
-59
-70
-79
-77
-245
-212
-186
-253
-212
-188
-250
-200
-166
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-238
-205
-179
-70
-79
-77
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-48
-58
-59
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-152
-119
-47
-56
-64
-60
-146
-135
-124
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-253
-204
-176
-255
-215
-190
-172
-150
-134
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-97
-98
-96
-55
-66
-67
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-117
-98
-55
-145
-114
-49
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-137
-127
-115
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-187
-166
-150
-255
-215
-190
-253
-204
-176
-251
-192
-154
-251
-192
-154
-250
-197
-158
-253
-204
-176
-255
-215
-190
-137
-127
-115
-65
-67
-64
-209
-117
-53
-227
-126
-50
-224
-123
-55
-234
-125
-52
-163
-104
-61
-43
-57
-62
-41
-58
-57
-106
-82
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-106
-82
-65
-77
-85
-81
-245
-212
-186
-251
-209
-178
-250
-197
-158
-249
-189
-146
-251
-192
-154
-250
-197
-158
-251
-209
-178
-238
-205
-179
-77
-85
-81
-112
-85
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-106
-82
-65
-41
-58
-57
-48
-58
-59
-163
-104
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-62
-63
-61
-146
-135
-124
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-253
-204
-176
-255
-215
-190
-176
-156
-141
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-234
-125
-52
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-176
-156
-141
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-227
-196
-175
-58
-69
-70
-139
-96
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-120
-114
-108
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-255
-215
-190
-207
-178
-158
-48
-58
-59
-163
-104
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-249
-174
-124
-246
-156
-93
-247
-150
-84
-249
-146
-83
-249
-152
-92
-251
-168
-115
-249
-189
-146
-97
-98
-96
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-58
-69
-70
-227
-196
-175
-253
-212
-188
-250
-200
-166
-251
-192
-154
-249
-189
-146
-250
-197
-158
-251
-209
-178
-255
-215
-190
-97
-98
-96
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-43
-57
-62
-43
-57
-62
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-69
-69
-61
-212
-120
-56
-227
-126
-50
-224
-123
-55
-234
-126
-45
-155
-100
-63
-43
-57
-62
-207
-178
-158
-255
-215
-190
-250
-200
-166
-251
-192
-154
-251
-192
-154
-250
-197
-158
-251
-209
-178
-255
-215
-190
-109
-106
-99
-89
-75
-66
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-143
-74
-249
-159
-103
-252
-185
-144
-55
-48
-48
-59
-50
-39
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-101
-83
-47
-59
-50
-39
-209
-171
-139
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-137
-127
-115
-101
-100
-92
-120
-114
-108
-186
-181
-179
-152
-147
-147
-55
-48
-48
-227
-196
-175
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-249
-189
-146
-250
-197
-158
-251
-209
-178
-234
-204
-183
-70
-79
-77
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-75
-74
-61
-41
-58
-57
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-75
-74
-61
-41
-58
-57
-88
-82
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-88
-82
-59
-77
-85
-81
-245
-212
-186
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-197
-158
-251
-209
-178
-245
-212
-186
-84
-85
-82
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-43
-57
-62
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-161
-144
-134
-255
-215
-190
-250
-200
-166
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-187
-166
-150
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-91
-92
-89
-55
-66
-67
-129
-106
-52
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-158
-125
-46
-63
-69
-60
-137
-127
-115
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-48
-58
-59
-187
-166
-150
-255
-215
-190
-250
-200
-166
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-41
-58
-57
-118
-86
-65
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-95
-78
-64
-91
-92
-89
-255
-215
-190
-253
-204
-176
-251
-192
-154
-252
-185
-144
-252
-185
-144
-251
-192
-154
-253
-204
-176
-245
-212
-186
-91
-92
-89
-106
-82
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-41
-58
-57
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-227
-126
-50
-199
-115
-54
-56
-64
-60
-161
-144
-134
-255
-215
-190
-250
-200
-166
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-187
-166
-150
-48
-58
-59
-183
-110
-59
-234
-125
-52
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-255
-215
-190
-253
-212
-188
-251
-209
-178
-253
-212
-188
-217
-187
-166
-55
-66
-67
-146
-97
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-214
-121
-50
-69
-69
-61
-137
-127
-115
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-249
-189
-146
-250
-200
-166
-253
-212
-188
-217
-187
-166
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-250
-197
-158
-249
-174
-124
-249
-159
-103
-249
-152
-92
-249
-152
-92
-249
-159
-103
-249
-174
-124
-250
-197
-158
-91
-92
-89
-95
-78
-64
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-125
-90
-64
-70
-79
-77
-234
-204
-183
-251
-209
-178
-250
-197
-158
-249
-189
-146
-252
-185
-144
-251
-192
-154
-253
-204
-176
-255
-215
-190
-120
-114
-108
-81
-73
-62
-224
-123
-55
-227
-126
-50
-224
-123
-55
-234
-126
-45
-135
-94
-64
-41
-58
-57
-41
-58
-57
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-253
-212
-188
-253
-212
-188
-251
-209
-178
-251
-209
-178
-255
-215
-190
-137
-127
-115
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-146
-97
-64
-51
-62
-63
-227
-196
-175
-253
-212
-188
-250
-197
-158
-249
-189
-146
-249
-189
-146
-251
-192
-154
-253
-204
-176
-255
-215
-190
-120
-114
-108
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-51
-62
-63
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-252
-185
-144
-55
-48
-48
-59
-50
-39
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-154
-125
-71
-170
-137
-67
-108
-87
-46
-59
-50
-39
-192
-155
-91
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-186
-181
-179
-47
-40
-38
-65
-58
-56
-245
-212
-186
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-253
-212
-188
-251
-209
-178
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-234
-204
-183
-63
-74
-74
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-75
-74
-61
-41
-58
-57
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-111
-94
-57
-56
-64
-60
-43
-57
-62
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-95
-87
-59
-70
-79
-77
-245
-212
-186
-251
-209
-178
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-197
-158
-251
-209
-178
-245
-212
-186
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-43
-57
-62
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-152
-119
-47
-56
-64
-60
-161
-144
-134
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-176
-156
-141
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-91
-92
-89
-55
-66
-67
-123
-102
-54
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-100
-89
-56
-48
-58
-59
-187
-166
-150
-176
-156
-141
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-255
-215
-190
-250
-200
-166
-251
-192
-154
-251
-192
-154
-250
-197
-158
-253
-204
-176
-255
-215
-190
-146
-135
-124
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-234
-125
-52
-163
-104
-61
-48
-58
-59
-41
-58
-57
-112
-85
-63
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-106
-82
-65
-84
-85
-82
-255
-215
-190
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-197
-158
-251
-209
-178
-238
-205
-179
-84
-85
-82
-106
-82
-65
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-106
-82
-65
-41
-58
-57
-48
-58
-59
-173
-106
-60
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-146
-135
-124
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-176
-156
-141
-51
-62
-63
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-253
-212
-188
-253
-204
-176
-250
-200
-166
-253
-204
-176
-217
-187
-166
-55
-66
-67
-146
-97
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-120
-114
-108
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-207
-178
-158
-48
-58
-59
-163
-104
-61
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-250
-200
-166
-248
-180
-134
-251
-168
-115
-247
-165
-111
-247
-165
-111
-251
-168
-115
-248
-180
-134
-250
-200
-166
-91
-92
-89
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-63
-74
-74
-227
-196
-175
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-197
-158
-253
-204
-176
-255
-215
-190
-109
-106
-99
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-234
-125
-52
-125
-90
-64
-43
-57
-62
-41
-58
-57
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-251
-209
-178
-137
-127
-115
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-155
-100
-63
-43
-57
-62
-217
-187
-166
-253
-212
-188
-250
-200
-166
-251
-192
-154
-249
-189
-146
-250
-197
-158
-253
-204
-176
-255
-215
-190
-120
-114
-108
-81
-73
-62
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-248
-180
-134
-76
-70
-64
-47
-40
-38
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-170
-137
-67
-101
-83
-47
-59
-50
-39
-170
-137
-67
-255
-238
-227
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-152
-147
-147
-35
-31
-30
-24
-22
-23
-115
-102
-92
-255
-215
-190
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-105
-93
-60
-58
-69
-70
-227
-196
-175
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-207
-178
-158
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-43
-57
-62
-100
-89
-56
-171
-129
-45
-158
-125
-46
-161
-127
-40
-158
-125
-46
-75
-74
-61
-48
-58
-59
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-48
-58
-59
-101
-100
-92
-91
-92
-89
-75
-74
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-111
-94
-57
-55
-66
-67
-227
-196
-175
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-227
-196
-175
-51
-62
-63
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-48
-58
-59
-48
-58
-59
-123
-102
-54
-168
-127
-42
-158
-125
-46
-161
-127
-40
-158
-125
-46
-69
-69
-61
-120
-114
-108
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-197
-158
-250
-200
-166
-251
-209
-178
-255
-215
-190
-146
-135
-124
-56
-64
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-109
-106
-99
-63
-74
-74
-111
-94
-57
-171
-129
-45
-158
-125
-46
-161
-127
-40
-152
-119
-47
-69
-69
-61
-51
-62
-63
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-51
-62
-63
-48
-58
-59
-120
-114
-108
-245
-212
-186
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-62
-63
-61
-137
-127
-115
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-200
-166
-250
-200
-166
-253
-212
-188
-255
-215
-190
-109
-106
-99
-81
-73
-62
-224
-123
-55
-227
-126
-50
-224
-123
-55
-234
-125
-52
-155
-100
-63
-48
-58
-59
-43
-57
-62
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-125
-90
-64
-63
-74
-74
-227
-196
-175
-253
-212
-188
-250
-200
-166
-250
-197
-158
-250
-197
-158
-253
-204
-176
-255
-215
-190
-227
-196
-175
-55
-66
-67
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-89
-75
-66
-48
-58
-59
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-120
-114
-108
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-197
-158
-250
-200
-166
-251
-209
-178
-255
-215
-190
-137
-127
-115
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-176
-156
-141
-251
-209
-178
-250
-200
-166
-250
-197
-158
-250
-200
-166
-227
-196
-175
-63
-74
-74
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-91
-92
-89
-253
-212
-188
-253
-212
-188
-250
-200
-166
-250
-200
-166
-250
-200
-166
-251
-209
-178
-255
-215
-190
-172
-150
-134
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-209
-178
-251
-192
-154
-250
-176
-132
-249
-174
-124
-249
-174
-124
-248
-180
-134
-251
-192
-154
-251
-209
-178
-109
-106
-99
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-146
-97
-64
-43
-57
-62
-217
-187
-166
-255
-215
-190
-253
-204
-176
-250
-197
-158
-250
-197
-158
-250
-200
-166
-253
-212
-188
-245
-212
-186
-70
-79
-77
-106
-82
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-51
-62
-63
-51
-62
-63
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-245
-212
-186
-250
-200
-166
-251
-192
-154
-250
-197
-158
-253
-204
-176
-146
-135
-124
-65
-67
-64
-209
-117
-53
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-187
-166
-150
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-197
-158
-250
-200
-166
-253
-212
-188
-255
-215
-190
-84
-85
-82
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-121
-100
-85
-35
-31
-30
-108
-87
-46
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-171
-129
-45
-85
-71
-43
-71
-60
-43
-171
-129
-45
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-237
-233
-225
-174
-168
-167
-81
-77
-76
-24
-22
-23
-35
-31
-30
-35
-31
-30
-187
-166
-150
-255
-215
-190
-255
-215
-190
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-51
-62
-63
-176
-156
-141
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-146
-135
-124
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-152
-119
-47
-56
-64
-60
-43
-57
-62
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-48
-58
-59
-146
-135
-124
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-172
-150
-134
-172
-150
-134
-146
-135
-124
-146
-135
-124
-194
-173
-157
-245
-212
-186
-137
-127
-115
-63
-69
-60
-158
-125
-46
-161
-127
-40
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-161
-144
-134
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-161
-144
-134
-48
-58
-59
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-55
-66
-67
-51
-62
-63
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-70
-79
-77
-245
-212
-186
-255
-215
-190
-253
-212
-188
-251
-209
-178
-253
-212
-188
-255
-215
-190
-255
-215
-190
-91
-92
-89
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-133
-120
-107
-84
-85
-82
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-75
-74
-61
-55
-66
-67
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-172
-150
-134
-172
-150
-134
-137
-127
-115
-146
-135
-124
-207
-178
-158
-245
-212
-186
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-76
-78
-76
-245
-212
-186
-255
-215
-190
-253
-212
-188
-253
-212
-188
-253
-212
-188
-255
-215
-190
-227
-196
-175
-58
-69
-70
-118
-86
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-125
-90
-64
-63
-74
-74
-97
-98
-96
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-163
-104
-61
-48
-58
-59
-187
-166
-150
-255
-215
-190
-255
-215
-190
-251
-209
-178
-251
-209
-178
-255
-215
-190
-255
-215
-190
-176
-156
-141
-48
-58
-59
-173
-106
-60
-227
-126
-50
-224
-123
-55
-227
-126
-50
-212
-120
-56
-69
-69
-61
-101
-100
-92
-63
-74
-74
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-106
-82
-65
-63
-74
-74
-234
-204
-183
-255
-215
-190
-253
-212
-188
-253
-212
-188
-253
-212
-188
-255
-215
-190
-245
-212
-186
-70
-79
-77
-89
-75
-66
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-176
-156
-141
-253
-204
-176
-251
-192
-154
-251
-192
-154
-251
-192
-154
-250
-200
-166
-77
-85
-81
-106
-82
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-135
-94
-64
-51
-62
-63
-217
-187
-166
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-109
-106
-99
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-250
-200
-166
-251
-192
-154
-252
-185
-144
-252
-185
-144
-251
-192
-154
-250
-200
-166
-255
-215
-190
-146
-135
-124
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-51
-62
-63
-146
-135
-124
-255
-215
-190
-255
-215
-190
-251
-209
-178
-251
-209
-178
-253
-212
-188
-255
-215
-190
-194
-173
-157
-43
-57
-62
-146
-97
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-77
-85
-81
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-200
-166
-172
-150
-134
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-120
-114
-108
-255
-215
-190
-255
-215
-190
-253
-212
-188
-251
-209
-178
-253
-212
-188
-255
-215
-190
-217
-187
-166
-51
-62
-63
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-60
-247
-150
-84
-251
-168
-115
-187
-140
-108
-24
-22
-23
-59
-50
-39
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-154
-125
-71
-156
-125
-62
-158
-125
-46
-47
-40
-38
-108
-87
-46
-158
-125
-46
-195
-167
-113
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-164
-158
-157
-109
-106
-99
-65
-58
-56
-24
-22
-23
-24
-22
-23
-94
-60
-47
-178
-86
-46
-59
-50
-39
-150
-125
-114
-255
-215
-190
-255
-215
-190
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-84
-85
-82
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-55
-66
-67
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-123
-102
-54
-51
-62
-63
-76
-78
-76
-56
-64
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-133
-120
-107
-77
-85
-81
-77
-85
-81
-146
-135
-124
-245
-212
-186
-176
-156
-141
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-63
-74
-74
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-76
-78
-76
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-77
-85
-81
-77
-85
-81
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-172
-150
-134
-48
-58
-59
-117
-98
-55
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-146
-135
-124
-120
-114
-108
-69
-69
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-111
-94
-57
-51
-62
-63
-176
-156
-141
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-194
-173
-157
-120
-114
-108
-70
-79
-77
-84
-85
-82
-161
-144
-134
-255
-215
-190
-255
-215
-190
-161
-144
-134
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-155
-100
-63
-41
-58
-57
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-183
-110
-59
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-89
-75
-66
-97
-98
-96
-172
-150
-134
-48
-58
-59
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-84
-85
-82
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-77
-85
-81
-81
-73
-62
-224
-123
-55
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-176
-156
-141
-97
-98
-96
-95
-78
-64
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-161
-144
-134
-41
-58
-57
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-250
-200
-166
-249
-189
-146
-252
-185
-144
-249
-189
-146
-250
-200
-166
-120
-114
-108
-69
-69
-61
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-101
-100
-92
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-187
-166
-150
-43
-57
-62
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-253
-212
-188
-255
-215
-190
-187
-166
-150
-41
-58
-57
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-58
-69
-70
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-91
-92
-89
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-133
-120
-107
-77
-85
-81
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-253
-204
-176
-251
-192
-154
-252
-185
-144
-252
-185
-144
-251
-192
-154
-212
-173
-150
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-118
-86
-65
-51
-62
-63
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-109
-106
-99
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-248
-180
-134
-89
-75
-66
-24
-22
-23
-85
-71
-43
-171
-129
-45
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-154
-125
-71
-156
-125
-62
-175
-132
-40
-85
-71
-43
-47
-40
-38
-158
-125
-46
-158
-125
-46
-170
-137
-67
-237
-233
-225
-253
-255
-252
-253
-255
-252
-253
-255
-252
-207
-202
-200
-164
-158
-157
-146
-135
-124
-120
-114
-108
-89
-84
-82
-65
-58
-56
-47
-40
-38
-24
-22
-23
-24
-22
-23
-35
-31
-30
-94
-60
-47
-178
-86
-46
-226
-110
-35
-241
-100
-24
-144
-77
-47
-65
-58
-56
-253
-212
-188
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-129
-106
-52
-48
-58
-59
-101
-100
-92
-217
-187
-166
-245
-212
-186
-245
-212
-186
-194
-173
-157
-76
-78
-76
-56
-64
-60
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-88
-82
-59
-77
-85
-81
-176
-156
-141
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-95
-87
-59
-41
-58
-57
-137
-127
-115
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-207
-178
-158
-120
-114
-108
-48
-58
-59
-62
-63
-61
-100
-89
-56
-95
-87
-59
-51
-62
-63
-120
-114
-108
-227
-196
-175
-55
-66
-67
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-84
-85
-82
-207
-178
-158
-245
-212
-186
-245
-212
-186
-207
-178
-158
-97
-98
-96
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-91
-92
-89
-120
-114
-108
-63
-69
-60
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-43
-57
-62
-161
-144
-134
-227
-196
-175
-253
-212
-188
-234
-204
-183
-161
-144
-134
-51
-62
-63
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-146
-135
-124
-176
-156
-141
-48
-58
-59
-137
-110
-49
-171
-129
-45
-158
-125
-46
-161
-127
-40
-158
-125
-46
-75
-74
-61
-43
-57
-62
-161
-144
-134
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-194
-173
-157
-109
-106
-99
-43
-57
-62
-69
-69
-61
-105
-93
-60
-88
-82
-59
-48
-58
-59
-146
-135
-124
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-225
-124
-48
-95
-78
-64
-43
-57
-62
-161
-144
-134
-234
-204
-183
-245
-212
-186
-227
-196
-175
-146
-135
-124
-35
-56
-60
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-188
-112
-56
-51
-62
-63
-161
-144
-134
-234
-204
-183
-51
-62
-63
-125
-90
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-163
-104
-61
-43
-57
-62
-97
-98
-96
-207
-178
-158
-245
-212
-186
-245
-212
-186
-207
-178
-158
-91
-92
-89
-48
-58
-59
-173
-106
-60
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-118
-86
-65
-55
-66
-67
-234
-204
-183
-146
-135
-124
-56
-64
-60
-194
-112
-58
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-35
-56
-60
-146
-135
-124
-227
-196
-175
-253
-212
-188
-234
-204
-183
-161
-144
-134
-43
-57
-62
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-250
-197
-158
-252
-185
-144
-248
-180
-134
-248
-180
-134
-251
-192
-154
-172
-150
-134
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-41
-58
-57
-120
-114
-108
-217
-187
-166
-245
-212
-186
-234
-204
-183
-176
-156
-141
-58
-69
-70
-81
-73
-62
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-255
-215
-190
-217
-187
-166
-133
-120
-107
-84
-85
-82
-91
-92
-89
-146
-135
-124
-234
-204
-183
-238
-205
-179
-63
-74
-74
-95
-78
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-84
-85
-82
-194
-173
-157
-245
-212
-186
-245
-212
-186
-217
-187
-166
-109
-106
-99
-41
-58
-57
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-146
-97
-64
-51
-62
-63
-187
-166
-150
-76
-78
-76
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-97
-98
-96
-250
-200
-166
-249
-189
-146
-248
-180
-134
-248
-180
-134
-252
-185
-144
-232
-190
-161
-70
-79
-77
-112
-85
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-199
-115
-54
-65
-67
-64
-70
-79
-77
-187
-166
-150
-238
-205
-179
-245
-212
-186
-217
-187
-166
-133
-120
-107
-35
-56
-60
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-251
-168
-115
-203
-161
-131
-55
-48
-48
-24
-22
-23
-71
-60
-43
-145
-114
-49
-171
-129
-45
-171
-129
-45
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-156
-125
-62
-156
-125
-62
-171
-129
-45
-171
-129
-45
-101
-83
-47
-35
-31
-30
-123
-102
-54
-171
-129
-45
-158
-125
-46
-160
-120
-43
-224
-207
-180
-253
-255
-252
-253
-255
-252
-219
-212
-208
-47
-40
-38
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-35
-31
-30
-35
-31
-30
-24
-22
-23
-47
-40
-38
-226
-110
-35
-241
-100
-24
-226
-110
-35
-226
-110
-35
-144
-77
-47
-55
-48
-48
-238
-205
-179
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-123
-102
-54
-56
-64
-60
-51
-62
-63
-84
-85
-82
-84
-85
-82
-48
-58
-59
-63
-69
-60
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-245
-212
-186
-84
-85
-82
-69
-69
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-158
-125
-46
-95
-87
-59
-48
-58
-59
-63
-74
-74
-109
-106
-99
-133
-120
-107
-133
-120
-107
-91
-92
-89
-51
-62
-63
-56
-64
-60
-100
-89
-56
-152
-119
-47
-171
-129
-45
-175
-132
-40
-100
-89
-56
-48
-58
-59
-217
-187
-166
-120
-114
-108
-63
-69
-60
-152
-119
-47
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-61
-67
-58
-51
-62
-63
-84
-85
-82
-84
-85
-82
-51
-62
-63
-56
-64
-60
-123
-102
-54
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-187
-166
-150
-48
-58
-59
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-83
-78
-61
-48
-58
-59
-63
-74
-74
-91
-92
-89
-70
-79
-77
-48
-58
-59
-75
-74
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-146
-135
-124
-234
-204
-183
-63
-74
-74
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-83
-78
-61
-48
-58
-59
-70
-79
-77
-109
-106
-99
-133
-120
-107
-120
-114
-108
-84
-85
-82
-48
-58
-59
-61
-67
-58
-111
-94
-57
-158
-125
-46
-171
-129
-45
-171
-129
-45
-88
-82
-59
-58
-69
-70
-238
-205
-179
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-212
-120
-56
-95
-78
-64
-43
-57
-62
-70
-79
-77
-84
-85
-82
-63
-74
-74
-48
-58
-59
-118
-86
-65
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-112
-85
-63
-55
-66
-67
-227
-196
-175
-255
-215
-190
-120
-114
-108
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-155
-100
-63
-62
-63
-61
-51
-62
-63
-77
-85
-81
-77
-85
-81
-51
-62
-63
-62
-63
-61
-155
-100
-63
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-199
-115
-54
-56
-64
-60
-120
-114
-108
-255
-215
-190
-217
-187
-166
-43
-57
-62
-125
-90
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-106
-82
-65
-48
-58
-59
-63
-74
-74
-84
-85
-82
-70
-79
-77
-43
-57
-62
-95
-78
-64
-212
-120
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-172
-150
-134
-251
-192
-154
-248
-180
-134
-249
-174
-124
-249
-174
-124
-248
-180
-134
-236
-186
-153
-63
-74
-74
-95
-78
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-135
-94
-64
-51
-62
-63
-55
-66
-67
-84
-85
-82
-70
-79
-77
-41
-58
-57
-81
-73
-62
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-194
-173
-157
-58
-69
-70
-62
-63
-61
-106
-82
-65
-95
-78
-64
-51
-62
-63
-91
-92
-89
-238
-205
-179
-161
-144
-134
-48
-58
-59
-183
-110
-59
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-173
-106
-60
-65
-67
-64
-48
-58
-59
-77
-85
-81
-84
-85
-82
-55
-66
-67
-56
-64
-60
-146
-97
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-69
-69
-61
-101
-100
-92
-227
-196
-175
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-250
-197
-158
-252
-185
-144
-249
-174
-124
-249
-174
-124
-250
-176
-132
-251
-192
-154
-120
-114
-108
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-188
-112
-56
-76
-70
-64
-41
-58
-57
-77
-85
-81
-84
-85
-82
-58
-69
-70
-48
-58
-59
-125
-90
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-243
-101
-2
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-246
-156
-93
-249
-174
-124
-203
-161
-131
-55
-48
-48
-24
-22
-23
-35
-31
-30
-85
-71
-43
-137
-110
-49
-152
-119
-47
-168
-127
-42
-171
-129
-45
-171
-129
-45
-168
-127
-42
-152
-119
-47
-117
-98
-55
-59
-50
-39
-35
-31
-30
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-146
-135
-124
-65
-58
-56
-35
-31
-30
-24
-22
-23
-24
-22
-23
-35
-31
-30
-35
-31
-30
-35
-31
-30
-35
-31
-30
-24
-22
-23
-83
-53
-42
-236
-108
-29
-236
-108
-29
-226
-110
-35
-94
-60
-47
-65
-58
-56
-253
-212
-188
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-145
-114
-49
-105
-93
-60
-83
-78
-61
-83
-78
-61
-111
-94
-57
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-88
-82
-59
-51
-62
-63
-217
-187
-166
-255
-215
-190
-176
-156
-141
-43
-57
-62
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-137
-110
-49
-88
-82
-59
-69
-69
-61
-62
-63
-61
-63
-69
-60
-75
-74
-61
-105
-93
-60
-152
-119
-47
-171
-129
-45
-168
-127
-42
-158
-125
-46
-171
-129
-45
-129
-106
-52
-48
-58
-59
-194
-173
-157
-207
-178
-158
-43
-57
-62
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-111
-94
-57
-83
-78
-61
-83
-78
-61
-105
-93
-60
-145
-114
-49
-168
-127
-42
-161
-127
-40
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-245
-212
-186
-77
-85
-81
-75
-74
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-129
-106
-52
-95
-87
-59
-81
-73
-62
-95
-87
-59
-123
-102
-54
-168
-127
-42
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-161
-144
-134
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-129
-106
-52
-88
-82
-59
-69
-69
-61
-62
-63
-61
-63
-69
-60
-75
-74
-61
-117
-98
-55
-152
-119
-47
-171
-129
-45
-161
-127
-40
-158
-125
-46
-171
-129
-45
-111
-94
-57
-48
-58
-59
-227
-196
-175
-176
-156
-141
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-227
-126
-50
-163
-104
-61
-112
-85
-63
-95
-78
-64
-118
-86
-65
-173
-106
-60
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-133
-120
-107
-255
-215
-190
-255
-215
-190
-217
-187
-166
-51
-62
-63
-106
-82
-65
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-199
-115
-54
-135
-94
-64
-95
-78
-64
-95
-78
-64
-135
-94
-64
-199
-115
-54
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-106
-82
-65
-51
-62
-63
-217
-187
-166
-255
-215
-190
-255
-215
-190
-120
-114
-108
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-173
-106
-60
-118
-86
-65
-95
-78
-64
-112
-85
-63
-163
-104
-61
-227
-126
-50
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-172
-150
-134
-252
-185
-144
-249
-174
-124
-247
-165
-111
-247
-165
-111
-249
-174
-124
-252
-185
-144
-154
-133
-118
-48
-58
-59
-163
-104
-61
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-188
-112
-56
-125
-90
-64
-95
-78
-64
-106
-82
-65
-155
-100
-63
-224
-123
-55
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-253
-212
-188
-91
-92
-89
-69
-69
-61
-194
-112
-58
-234
-126
-45
-234
-126
-45
-163
-104
-61
-51
-62
-63
-137
-127
-115
-238
-205
-179
-63
-74
-74
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-146
-97
-64
-106
-82
-65
-95
-78
-64
-125
-90
-64
-194
-112
-58
-234
-126
-45
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-125
-90
-64
-41
-58
-57
-194
-173
-157
-238
-205
-179
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-251
-192
-154
-250
-176
-132
-251
-168
-115
-247
-165
-111
-249
-174
-124
-245
-179
-138
-195
-157
-134
-41
-58
-57
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-146
-97
-64
-106
-82
-65
-95
-78
-64
-125
-90
-64
-183
-110
-59
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-250
-176
-132
-219
-170
-138
-115
-102
-92
-47
-40
-38
-24
-22
-23
-35
-31
-30
-47
-40
-38
-59
-50
-39
-59
-50
-39
-59
-50
-39
-59
-50
-39
-47
-40
-38
-47
-40
-38
-71
-60
-43
-137
-110
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-170
-137
-67
-219
-212
-208
-237
-233
-225
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-152
-147
-147
-109
-106
-99
-65
-67
-64
-35
-31
-30
-35
-31
-30
-35
-31
-30
-35
-31
-30
-24
-22
-23
-94
-60
-47
-178
-86
-46
-109
-63
-45
-35
-31
-30
-124
-111
-99
-251
-209
-178
-251
-209
-178
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-117
-98
-55
-129
-106
-52
-168
-127
-42
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-171
-129
-45
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-120
-114
-108
-51
-62
-63
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-152
-119
-47
-152
-119
-47
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-81
-73
-62
-58
-69
-70
-227
-196
-175
-255
-215
-190
-120
-114
-108
-48
-58
-59
-129
-106
-52
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-152
-119
-47
-117
-98
-55
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-255
-215
-190
-176
-156
-141
-48
-58
-59
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-145
-114
-49
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-238
-205
-179
-91
-92
-89
-56
-64
-60
-137
-110
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-152
-119
-47
-158
-125
-46
-168
-127
-42
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-152
-119
-47
-69
-69
-61
-84
-85
-82
-245
-212
-186
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-125
-90
-64
-227
-126
-50
-227
-126
-50
-227
-126
-50
-234
-125
-52
-227
-126
-50
-234
-125
-52
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-214
-121
-50
-81
-73
-62
-63
-74
-74
-227
-196
-175
-255
-215
-190
-253
-212
-188
-255
-215
-190
-146
-135
-124
-48
-58
-59
-146
-97
-64
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-139
-96
-61
-48
-58
-59
-146
-135
-124
-255
-215
-190
-253
-212
-188
-255
-215
-190
-217
-187
-166
-55
-66
-67
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-163
-104
-61
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-167
-142
-123
-248
-180
-134
-247
-165
-111
-249
-159
-103
-246
-156
-93
-249
-159
-103
-249
-174
-124
-239
-182
-144
-77
-85
-81
-65
-67
-64
-199
-115
-54
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-135
-94
-64
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-146
-135
-124
-227
-196
-175
-43
-57
-62
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-106
-82
-65
-70
-79
-77
-253
-212
-188
-176
-156
-141
-41
-58
-57
-125
-90
-64
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-125
-52
-227
-126
-50
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-155
-100
-63
-48
-58
-59
-120
-114
-108
-253
-212
-188
-234
-204
-183
-63
-74
-74
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-252
-185
-144
-245
-169
-119
-249
-159
-103
-249
-159
-103
-247
-165
-111
-249
-174
-124
-251
-192
-154
-109
-106
-99
-62
-63
-61
-188
-112
-56
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-125
-52
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-212
-120
-56
-199
-115
-54
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-243
-101
-2
-243
-101
-2
-247
-103
-7
-247
-111
-26
-247
-111
-26
-247
-123
-41
-247
-130
-60
-243
-141
-78
-249
-159
-103
-250
-176
-132
-251
-192
-154
-207
-178
-158
-154
-133
-118
-82
-69
-65
-24
-22
-23
-71
-60
-43
-101
-83
-47
-101
-83
-47
-101
-83
-47
-117
-98
-55
-145
-114
-49
-171
-129
-45
-168
-127
-42
-160
-120
-43
-160
-120
-43
-158
-125
-46
-192
-155
-91
-237
-233
-225
-81
-77
-76
-55
-48
-48
-74
-68
-68
-81
-77
-76
-89
-84
-82
-91
-92
-89
-89
-84
-82
-81
-77
-76
-65
-58
-56
-47
-40
-38
-35
-31
-30
-55
-48
-48
-115
-102
-92
-172
-150
-134
-55
-48
-48
-24
-22
-23
-24
-22
-23
-24
-22
-23
-65
-58
-56
-230
-173
-136
-251
-192
-154
-250
-197
-158
-250
-200
-166
-84
-85
-82
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-83
-78
-61
-69
-69
-61
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-117
-98
-55
-48
-58
-59
-101
-100
-92
-238
-205
-179
-253
-204
-176
-250
-200
-166
-253
-204
-176
-238
-205
-179
-91
-92
-89
-51
-62
-63
-117
-98
-55
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-145
-114
-49
-75
-74
-61
-48
-58
-59
-172
-150
-134
-253
-212
-188
-255
-215
-190
-234
-204
-183
-84
-85
-82
-56
-64
-60
-129
-106
-52
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-81
-73
-62
-63
-69
-60
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-84
-85
-82
-255
-215
-190
-245
-212
-186
-109
-106
-99
-51
-62
-63
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-171
-129
-45
-105
-93
-60
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-62
-63
-61
-137
-127
-115
-255
-215
-190
-255
-215
-190
-227
-196
-175
-77
-85
-81
-56
-64
-60
-129
-106
-52
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-137
-110
-49
-69
-69
-61
-51
-62
-63
-187
-166
-150
-255
-215
-190
-172
-150
-134
-51
-62
-63
-194
-112
-58
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-209
-117
-53
-89
-75
-66
-48
-58
-59
-187
-166
-150
-250
-200
-166
-250
-197
-158
-251
-192
-154
-250
-197
-158
-250
-200
-166
-109
-106
-99
-48
-58
-59
-135
-94
-64
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-135
-94
-64
-43
-57
-62
-120
-114
-108
-250
-200
-166
-250
-197
-158
-251
-192
-154
-250
-197
-158
-250
-200
-166
-172
-150
-134
-41
-58
-57
-106
-82
-65
-214
-121
-50
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-183
-110
-59
-48
-58
-59
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-188
-112
-56
-51
-62
-63
-109
-106
-99
-51
-62
-63
-183
-110
-59
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-178
-146
-122
-245
-169
-119
-246
-156
-93
-247
-150
-84
-249
-146
-83
-247
-150
-84
-249
-159
-103
-249
-174
-124
-203
-161
-131
-58
-69
-70
-76
-70
-64
-194
-112
-58
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-183
-110
-59
-48
-58
-59
-163
-104
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-209
-117
-53
-62
-63
-61
-146
-135
-124
-217
-187
-166
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-125
-90
-64
-58
-69
-70
-234
-204
-183
-255
-215
-190
-137
-127
-115
-41
-58
-57
-118
-86
-65
-225
-124
-48
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-146
-97
-64
-51
-62
-63
-97
-98
-96
-238
-205
-179
-255
-215
-190
-234
-204
-183
-63
-74
-74
-118
-86
-65
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-81
-73
-62
-101
-100
-92
-250
-176
-132
-247
-165
-111
-246
-156
-93
-249
-152
-92
-249
-159
-103
-251
-168
-115
-252
-185
-144
-217
-187
-166
-58
-69
-70
-69
-69
-61
-199
-115
-54
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-225
-124
-48
-81
-73
-62
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-197
-158
-249
-174
-124
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-237
-95
-0
-237
-95
-0
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-237
-95
-0
-243
-101
-2
-247
-103
-7
-236
-102
-14
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-243
-141
-78
-249
-159
-103
-249
-174
-124
-249
-189
-146
-253
-204
-176
-124
-111
-99
-35
-31
-30
-145
-114
-49
-175
-132
-40
-171
-129
-45
-168
-127
-42
-192
-155
-91
-216
-194
-154
-224
-207
-180
-224
-207
-180
-216
-194
-154
-216
-194
-154
-239
-227
-208
-253
-255
-252
-253
-255
-252
-186
-181
-179
-146
-135
-124
-120
-114
-108
-109
-106
-99
-95
-78
-64
-71
-60
-43
-85
-71
-43
-101
-83
-47
-108
-87
-46
-35
-31
-30
-150
-125
-114
-227
-196
-175
-255
-215
-190
-253
-212
-188
-212
-173
-150
-121
-100
-85
-95
-78
-64
-129
-102
-78
-234
-168
-124
-250
-176
-132
-250
-176
-132
-248
-180
-134
-249
-189
-146
-124
-111
-99
-62
-63
-61
-152
-119
-47
-171
-129
-45
-171
-129
-45
-145
-114
-49
-56
-64
-60
-43
-57
-62
-83
-78
-61
-152
-119
-47
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-171
-129
-45
-171
-129
-45
-152
-119
-47
-95
-87
-59
-48
-58
-59
-101
-100
-92
-236
-186
-153
-251
-192
-154
-252
-185
-144
-248
-180
-134
-245
-179
-138
-249
-189
-146
-236
-186
-153
-101
-100
-92
-48
-58
-59
-88
-82
-59
-137
-110
-49
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-171
-129
-45
-168
-127
-42
-145
-114
-49
-100
-89
-56
-56
-64
-60
-58
-69
-70
-172
-150
-134
-250
-200
-166
-251
-192
-154
-250
-197
-158
-250
-200
-166
-217
-187
-166
-84
-85
-82
-51
-62
-63
-105
-93
-60
-158
-125
-46
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-152
-119
-47
-83
-78
-61
-43
-57
-62
-48
-58
-59
-129
-106
-52
-175
-132
-40
-171
-129
-45
-158
-125
-46
-63
-69
-60
-120
-114
-108
-255
-215
-190
-255
-215
-190
-227
-196
-175
-84
-85
-82
-51
-62
-63
-105
-93
-60
-158
-125
-46
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-158
-125
-46
-105
-93
-60
-48
-58
-59
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-172
-150
-134
-91
-92
-89
-75
-74
-61
-168
-127
-42
-171
-129
-45
-175
-132
-40
-117
-98
-55
-48
-58
-59
-176
-156
-141
-253
-204
-176
-253
-204
-176
-253
-204
-176
-217
-187
-166
-84
-85
-82
-48
-58
-59
-95
-87
-59
-145
-114
-49
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-171
-129
-45
-158
-125
-46
-137
-110
-49
-95
-87
-59
-51
-62
-63
-70
-79
-77
-187
-166
-150
-251
-209
-178
-251
-209
-178
-207
-178
-158
-43
-57
-62
-135
-94
-64
-238
-123
-45
-234
-126
-45
-234
-126
-45
-118
-86
-65
-35
-56
-60
-56
-64
-60
-155
-100
-63
-234
-125
-52
-234
-126
-45
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-126
-45
-227
-126
-50
-163
-104
-61
-76
-70
-64
-51
-62
-63
-167
-142
-123
-251
-192
-154
-248
-180
-134
-249
-174
-124
-249
-174
-124
-250
-176
-132
-245
-179
-138
-236
-186
-153
-109
-106
-99
-41
-58
-57
-95
-78
-64
-183
-110
-59
-234
-125
-52
-234
-126
-45
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-126
-45
-227
-126
-50
-183
-110
-59
-95
-78
-64
-43
-57
-62
-124
-111
-99
-236
-186
-153
-252
-185
-144
-250
-176
-132
-249
-174
-124
-249
-174
-124
-248
-180
-134
-251
-192
-154
-154
-133
-118
-43
-57
-62
-81
-73
-62
-173
-106
-60
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-227
-126
-50
-234
-126
-45
-234
-125
-52
-155
-100
-63
-56
-64
-60
-35
-56
-60
-89
-75
-66
-227
-126
-50
-234
-126
-45
-238
-128
-40
-146
-97
-64
-43
-57
-62
-176
-156
-141
-58
-69
-70
-118
-86
-65
-234
-126
-45
-234
-126
-45
-234
-126
-45
-112
-85
-63
-43
-57
-62
-210
-156
-119
-245
-162
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-241
-138
-68
-249
-146
-83
-249
-159
-103
-250
-176
-132
-195
-157
-134
-58
-69
-70
-65
-67
-64
-155
-100
-63
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-126
-45
-173
-106
-60
-65
-67
-64
-35
-56
-60
-106
-82
-65
-234
-126
-45
-234
-126
-45
-238
-128
-40
-146
-97
-64
-43
-57
-62
-187
-166
-150
-234
-204
-183
-55
-66
-67
-106
-82
-65
-234
-126
-45
-234
-125
-52
-234
-125
-52
-224
-123
-55
-81
-73
-62
-91
-92
-89
-245
-212
-186
-253
-212
-188
-253
-212
-188
-137
-127
-115
-41
-58
-57
-89
-75
-66
-173
-106
-60
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-125
-52
-194
-112
-58
-106
-82
-65
-43
-57
-62
-101
-100
-92
-227
-196
-175
-251
-209
-178
-251
-209
-178
-253
-212
-188
-97
-98
-96
-69
-69
-61
-209
-117
-53
-234
-126
-45
-238
-128
-40
-173
-106
-60
-51
-62
-63
-139
-115
-96
-251
-168
-115
-246
-156
-93
-247
-150
-84
-249
-146
-83
-249
-152
-92
-247
-165
-111
-248
-180
-134
-250
-200
-166
-187
-166
-150
-55
-66
-67
-69
-69
-61
-163
-104
-61
-234
-125
-52
-234
-126
-45
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-126
-45
-234
-126
-45
-199
-115
-54
-95
-78
-64
-35
-56
-60
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-51
-62
-63
-250
-197
-158
-245
-169
-119
-247
-150
-84
-247
-130
-60
-247
-118
-39
-235
-107
-16
-243
-101
-2
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-246
-97
-3
-237
-95
-0
-243
-101
-2
-247
-103
-7
-236
-102
-14
-247
-111
-26
-246
-116
-28
-238
-123
-45
-241
-132
-59
-247
-143
-74
-246
-156
-93
-245
-169
-119
-230
-173
-136
-47
-40
-38
-59
-50
-39
-168
-127
-42
-161
-127
-40
-160
-120
-43
-192
-155
-91
-255
-238
-227
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-239
-227
-208
-170
-137
-67
-171
-129
-45
-171
-129
-45
-171
-129
-45
-59
-50
-39
-154
-133
-118
-250
-200
-166
-250
-197
-158
-249
-189
-146
-248
-180
-134
-249
-174
-124
-247
-165
-111
-247
-165
-111
-245
-162
-103
-249
-159
-103
-245
-162
-103
-247
-165
-111
-249
-174
-124
-203
-161
-131
-55
-66
-67
-69
-69
-61
-111
-94
-57
-105
-93
-60
-69
-69
-61
-63
-74
-74
-137
-127
-115
-51
-62
-63
-62
-63
-61
-95
-87
-59
-129
-106
-52
-137
-110
-49
-137
-110
-49
-123
-102
-54
-95
-87
-59
-62
-63
-61
-51
-62
-63
-133
-120
-107
-239
-182
-144
-248
-180
-134
-245
-169
-119
-247
-165
-111
-249
-159
-103
-245
-162
-103
-251
-168
-115
-250
-176
-132
-239
-182
-144
-154
-133
-118
-63
-74
-74
-51
-62
-63
-75
-74
-61
-105
-93
-60
-123
-102
-54
-137
-110
-49
-137
-110
-49
-137
-110
-49
-123
-102
-54
-100
-89
-56
-75
-74
-61
-56
-64
-60
-55
-66
-67
-124
-111
-99
-219
-170
-138
-252
-185
-144
-250
-176
-132
-249
-174
-124
-249
-174
-124
-250
-176
-132
-252
-185
-144
-236
-186
-153
-124
-111
-99
-48
-58
-59
-63
-69
-60
-95
-87
-59
-123
-102
-54
-137
-110
-49
-137
-110
-49
-129
-106
-52
-95
-87
-59
-62
-63
-61
-55
-66
-67
-146
-135
-124
-77
-85
-81
-61
-67
-58
-105
-93
-60
-111
-94
-57
-75
-74
-61
-48
-58
-59
-194
-173
-157
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-120
-114
-108
-43
-57
-62
-69
-69
-61
-100
-89
-56
-129
-106
-52
-137
-110
-49
-137
-110
-49
-129
-106
-52
-105
-93
-60
-69
-69
-61
-48
-58
-59
-77
-85
-81
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-187
-166
-150
-187
-166
-150
-48
-58
-59
-75
-74
-61
-111
-94
-57
-95
-87
-59
-56
-64
-60
-99
-90
-79
-239
-182
-144
-252
-185
-144
-245
-179
-138
-252
-185
-144
-249
-189
-146
-236
-186
-153
-137
-127
-115
-55
-66
-67
-56
-64
-60
-83
-78
-61
-111
-94
-57
-129
-106
-52
-137
-110
-49
-137
-110
-49
-129
-106
-52
-117
-98
-55
-95
-87
-59
-69
-69
-61
-51
-62
-63
-63
-74
-74
-133
-120
-107
-236
-186
-153
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-197
-158
-124
-111
-99
-51
-62
-63
-112
-85
-63
-146
-97
-64
-106
-82
-65
-48
-58
-59
-120
-114
-108
-101
-100
-92
-48
-58
-59
-95
-78
-64
-146
-97
-64
-183
-110
-59
-188
-112
-56
-173
-106
-60
-139
-96
-61
-89
-75
-66
-48
-58
-59
-77
-85
-81
-186
-157
-134
-245
-179
-138
-245
-169
-119
-245
-162
-103
-246
-156
-93
-246
-156
-93
-246
-156
-93
-247
-165
-111
-249
-174
-124
-249
-189
-146
-154
-133
-118
-58
-69
-70
-51
-62
-63
-95
-78
-64
-139
-96
-61
-173
-106
-60
-183
-110
-59
-183
-110
-59
-173
-106
-60
-139
-96
-61
-95
-78
-64
-51
-62
-63
-63
-74
-74
-167
-142
-123
-249
-189
-146
-249
-174
-124
-247
-165
-111
-246
-156
-93
-246
-156
-93
-246
-156
-93
-245
-162
-103
-245
-169
-119
-245
-179
-138
-178
-146
-122
-70
-79
-77
-48
-58
-59
-89
-75
-66
-139
-96
-61
-173
-106
-60
-188
-112
-56
-183
-110
-59
-155
-100
-63
-95
-78
-64
-48
-58
-59
-101
-100
-92
-146
-135
-124
-48
-58
-59
-95
-78
-64
-146
-97
-64
-125
-90
-64
-62
-63
-61
-101
-100
-92
-245
-212
-186
-137
-127
-115
-48
-58
-59
-106
-82
-65
-146
-97
-64
-106
-82
-65
-48
-58
-59
-124
-111
-99
-247
-165
-111
-247
-150
-84
-241
-138
-68
-241
-132
-59
-247
-130
-53
-247
-130
-53
-242
-133
-67
-241
-145
-79
-245
-162
-103
-250
-176
-132
-203
-161
-131
-91
-92
-89
-43
-57
-62
-81
-73
-62
-135
-94
-64
-173
-106
-60
-188
-112
-56
-183
-110
-59
-155
-100
-63
-106
-82
-65
-51
-62
-63
-91
-92
-89
-133
-120
-107
-48
-58
-59
-95
-78
-64
-146
-97
-64
-118
-86
-65
-56
-64
-60
-101
-100
-92
-245
-212
-186
-253
-212
-188
-146
-135
-124
-48
-58
-59
-118
-86
-65
-183
-110
-59
-173
-106
-60
-95
-78
-64
-43
-57
-62
-186
-157
-134
-250
-197
-158
-251
-192
-154
-250
-197
-158
-250
-200
-166
-172
-150
-134
-70
-79
-77
-48
-58
-59
-89
-75
-66
-135
-94
-64
-163
-104
-61
-183
-110
-59
-183
-110
-59
-173
-106
-60
-146
-97
-64
-95
-78
-64
-56
-64
-60
-55
-66
-67
-150
-125
-114
-236
-186
-153
-251
-192
-154
-249
-189
-146
-249
-189
-146
-251
-192
-154
-195
-157
-134
-51
-62
-63
-76
-70
-64
-139
-96
-61
-125
-90
-64
-65
-67
-64
-76
-78
-76
-234
-168
-124
-249
-159
-103
-247
-150
-84
-243
-141
-78
-247
-143
-74
-247
-150
-84
-249
-159
-103
-250
-176
-132
-250
-197
-158
-255
-215
-190
-207
-178
-158
-84
-85
-82
-48
-58
-59
-89
-75
-66
-146
-97
-64
-173
-106
-60
-183
-110
-59
-183
-110
-59
-163
-104
-61
-118
-86
-65
-62
-63
-61
-58
-69
-70
-63
-74
-74
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-135
-94
-64
-58
-69
-70
-251
-192
-154
-245
-169
-119
-249
-146
-83
-247
-130
-53
-238
-116
-34
-235
-107
-16
-243
-101
-2
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-246
-97
-3
-246
-97
-3
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-243
-101
-2
-236
-102
-14
-236
-102
-14
-235
-107
-16
-246
-116
-28
-239
-117
-44
-241
-132
-59
-247
-143
-74
-249
-152
-92
-214
-151
-109
-118
-86
-65
-146
-111
-88
-192
-155
-91
-192
-155
-91
-195
-167
-113
-239
-227
-208
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-216
-194
-154
-192
-155
-91
-192
-155
-91
-192
-155
-91
-146
-111
-88
-162
-125
-96
-250
-176
-132
-245
-169
-119
-247
-165
-111
-249
-159
-103
-246
-156
-93
-247
-150
-84
-243
-141
-78
-243
-141
-78
-243
-141
-78
-241
-145
-79
-247
-150
-84
-249
-159
-103
-245
-169
-119
-187
-140
-108
-89
-84
-82
-48
-58
-59
-48
-58
-59
-91
-92
-89
-194
-173
-157
-255
-215
-190
-207
-178
-158
-109
-106
-99
-51
-62
-63
-48
-58
-59
-51
-62
-63
-48
-58
-59
-48
-58
-59
-55
-66
-67
-124
-111
-99
-203
-161
-131
-248
-180
-134
-245
-169
-119
-249
-159
-103
-247
-150
-84
-243
-141
-78
-243
-141
-78
-243
-141
-78
-247
-150
-84
-249
-159
-103
-245
-169
-119
-248
-180
-134
-219
-170
-138
-154
-133
-118
-84
-85
-82
-51
-62
-63
-48
-58
-59
-51
-62
-63
-51
-62
-63
-48
-58
-59
-48
-58
-59
-55
-66
-67
-91
-92
-89
-154
-133
-118
-209
-171
-139
-245
-179
-138
-249
-174
-124
-247
-165
-111
-249
-159
-103
-246
-156
-93
-246
-156
-93
-249
-159
-103
-247
-165
-111
-249
-174
-124
-252
-185
-144
-195
-157
-134
-109
-106
-99
-55
-66
-67
-48
-58
-59
-51
-62
-63
-51
-62
-63
-48
-58
-59
-51
-62
-63
-109
-106
-99
-207
-178
-158
-255
-215
-190
-217
-187
-166
-91
-92
-89
-51
-62
-63
-48
-58
-59
-76
-78
-76
-172
-150
-134
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-194
-173
-157
-101
-100
-92
-51
-62
-63
-48
-58
-59
-48
-58
-59
-51
-62
-63
-48
-58
-59
-48
-58
-59
-97
-98
-96
-194
-173
-157
-146
-135
-124
-56
-64
-60
-145
-114
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-194
-173
-157
-255
-215
-190
-176
-156
-141
-76
-78
-76
-48
-58
-59
-55
-66
-67
-115
-102
-92
-234
-168
-124
-245
-169
-119
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-169
-119
-249
-174
-124
-245
-179
-138
-209
-171
-139
-144
-125
-110
-76
-78
-76
-48
-58
-59
-48
-58
-59
-51
-62
-63
-51
-62
-63
-48
-58
-59
-48
-58
-59
-58
-69
-70
-101
-100
-92
-154
-133
-118
-219
-170
-138
-252
-185
-144
-248
-180
-134
-249
-174
-124
-245
-169
-119
-249
-174
-124
-250
-176
-132
-230
-173
-136
-124
-111
-99
-55
-66
-67
-43
-57
-62
-58
-69
-70
-137
-127
-115
-245
-212
-186
-245
-212
-186
-161
-144
-134
-70
-79
-77
-43
-57
-62
-51
-62
-63
-51
-62
-63
-48
-58
-59
-43
-57
-62
-84
-85
-82
-154
-133
-118
-240
-181
-138
-249
-174
-124
-247
-165
-111
-249
-152
-92
-243
-141
-78
-241
-138
-68
-242
-133
-67
-241
-138
-68
-241
-145
-79
-246
-156
-93
-247
-165
-111
-250
-176
-132
-219
-170
-138
-144
-125
-110
-77
-85
-81
-43
-57
-62
-48
-58
-59
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-77
-85
-81
-150
-125
-114
-219
-170
-138
-250
-176
-132
-247
-165
-111
-246
-156
-93
-241
-145
-79
-241
-138
-68
-241
-138
-68
-241
-138
-68
-243
-141
-78
-249
-152
-92
-247
-165
-111
-250
-176
-132
-230
-173
-136
-154
-133
-118
-77
-85
-81
-43
-57
-62
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-70
-79
-77
-161
-144
-134
-245
-212
-186
-255
-215
-190
-161
-144
-134
-63
-74
-74
-43
-57
-62
-51
-62
-63
-109
-106
-99
-217
-187
-166
-251
-209
-178
-238
-205
-179
-137
-127
-115
-58
-69
-70
-43
-57
-62
-58
-69
-70
-139
-115
-96
-238
-159
-107
-249
-152
-92
-241
-138
-68
-247
-130
-53
-238
-123
-45
-239
-117
-44
-247
-118
-39
-238
-123
-45
-241
-132
-59
-241
-145
-79
-249
-159
-103
-249
-174
-124
-240
-181
-138
-167
-142
-123
-91
-92
-89
-43
-57
-62
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-63
-74
-74
-137
-127
-115
-234
-204
-183
-255
-215
-190
-146
-135
-124
-63
-74
-74
-43
-57
-62
-51
-62
-63
-115
-102
-92
-236
-186
-153
-251
-192
-154
-251
-192
-154
-236
-186
-153
-133
-120
-107
-43
-57
-62
-48
-58
-59
-48
-58
-59
-55
-66
-67
-158
-130
-108
-248
-180
-134
-250
-176
-132
-249
-174
-124
-249
-174
-124
-250
-176
-132
-252
-185
-144
-239
-182
-144
-154
-133
-118
-84
-85
-82
-43
-57
-62
-48
-58
-59
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-70
-79
-77
-133
-120
-107
-219
-170
-138
-245
-179
-138
-250
-176
-132
-245
-169
-119
-247
-165
-111
-247
-165
-111
-245
-169
-119
-249
-174
-124
-187
-140
-108
-81
-77
-76
-43
-57
-62
-43
-57
-62
-99
-90
-79
-214
-151
-109
-249
-159
-103
-247
-150
-84
-247
-143
-74
-241
-138
-68
-241
-138
-68
-249
-146
-83
-249
-159
-103
-250
-176
-132
-250
-197
-158
-255
-215
-190
-255
-215
-190
-245
-212
-186
-161
-144
-134
-77
-85
-81
-43
-57
-62
-48
-58
-59
-51
-62
-63
-48
-58
-59
-41
-58
-57
-55
-66
-67
-120
-114
-108
-217
-187
-166
-97
-98
-96
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-70
-79
-77
-249
-189
-146
-247
-165
-111
-243
-141
-78
-247
-130
-53
-238
-116
-34
-236
-102
-14
-243
-101
-2
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-239
-117
-44
-238
-123
-53
-242
-133
-67
-241
-145
-79
-241
-153
-96
-247
-165
-111
-249
-174
-124
-250
-176
-132
-245
-179
-138
-252
-185
-144
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-252
-185
-144
-245
-179
-138
-250
-176
-132
-249
-174
-124
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-138
-68
-242
-133
-67
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-242
-133
-67
-243
-141
-78
-241
-145
-86
-249
-159
-103
-238
-159
-107
-210
-156
-119
-210
-156
-119
-240
-181
-138
-249
-189
-146
-251
-192
-154
-251
-192
-154
-250
-197
-158
-212
-173
-150
-186
-157
-134
-167
-142
-123
-167
-142
-123
-195
-157
-134
-219
-170
-138
-248
-180
-134
-245
-169
-119
-245
-162
-103
-247
-150
-84
-243
-141
-78
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-138
-68
-247
-150
-84
-245
-162
-103
-245
-169
-119
-250
-176
-132
-239
-182
-144
-219
-170
-138
-186
-157
-134
-167
-142
-123
-167
-142
-123
-172
-150
-134
-195
-157
-134
-219
-170
-138
-239
-182
-144
-248
-180
-134
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-79
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-145
-79
-241
-153
-96
-247
-165
-111
-249
-174
-124
-245
-179
-138
-219
-170
-138
-186
-157
-134
-167
-142
-123
-167
-142
-123
-186
-157
-134
-212
-173
-150
-250
-197
-158
-251
-192
-154
-251
-192
-154
-249
-189
-146
-239
-182
-144
-219
-170
-138
-219
-170
-138
-239
-182
-144
-250
-197
-158
-250
-200
-166
-251
-209
-178
-238
-205
-179
-172
-150
-134
-137
-127
-115
-161
-144
-134
-217
-187
-166
-253
-212
-188
-227
-196
-175
-194
-173
-157
-176
-156
-141
-172
-150
-134
-187
-166
-150
-217
-187
-166
-255
-215
-190
-245
-212
-186
-76
-78
-76
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-105
-93
-60
-58
-69
-70
-217
-187
-166
-255
-215
-190
-253
-204
-176
-236
-186
-153
-210
-156
-119
-210
-156
-119
-247
-165
-111
-249
-159
-103
-249
-152
-92
-241
-145
-86
-243
-141
-78
-241
-145
-79
-247
-150
-84
-241
-153
-96
-245
-162
-103
-245
-169
-119
-248
-180
-134
-239
-182
-144
-209
-171
-139
-186
-157
-134
-167
-142
-123
-167
-142
-123
-178
-146
-122
-195
-157
-134
-230
-173
-136
-239
-182
-144
-250
-176
-132
-245
-169
-119
-247
-165
-111
-249
-159
-103
-241
-153
-96
-249
-152
-92
-249
-152
-92
-241
-153
-96
-245
-162
-103
-247
-165
-111
-210
-156
-119
-210
-156
-119
-230
-173
-136
-249
-189
-146
-249
-189
-146
-251
-192
-154
-250
-197
-158
-236
-186
-153
-203
-161
-131
-167
-142
-123
-167
-142
-123
-178
-146
-122
-203
-161
-131
-240
-181
-138
-249
-174
-124
-247
-165
-111
-241
-153
-96
-243
-141
-78
-242
-133
-67
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-249
-159
-103
-245
-169
-119
-250
-176
-132
-240
-181
-138
-209
-171
-139
-178
-146
-122
-167
-142
-123
-167
-142
-123
-186
-157
-134
-209
-171
-139
-240
-181
-138
-250
-176
-132
-245
-169
-119
-249
-159
-103
-241
-145
-86
-241
-138
-68
-241
-132
-59
-238
-123
-45
-238
-123
-45
-238
-123
-45
-247
-130
-53
-242
-133
-67
-241
-145
-79
-241
-153
-96
-247
-165
-111
-250
-176
-132
-240
-181
-138
-203
-161
-131
-178
-146
-122
-167
-142
-123
-167
-142
-123
-195
-157
-134
-236
-186
-153
-251
-192
-154
-251
-192
-154
-249
-189
-146
-249
-189
-146
-230
-173
-136
-203
-161
-131
-219
-170
-138
-245
-179
-138
-245
-179
-138
-245
-179
-138
-245
-179
-138
-248
-180
-134
-234
-168
-124
-214
-151
-109
-214
-151
-109
-245
-162
-103
-241
-145
-86
-241
-138
-68
-238
-123
-53
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-238
-116
-34
-238
-123
-45
-241
-132
-59
-243
-141
-78
-241
-153
-96
-247
-165
-111
-249
-174
-124
-240
-181
-138
-209
-171
-139
-178
-146
-122
-167
-142
-123
-167
-142
-123
-195
-157
-134
-236
-186
-153
-250
-197
-158
-251
-192
-154
-249
-189
-146
-249
-189
-146
-230
-173
-136
-210
-156
-119
-210
-156
-119
-250
-176
-132
-249
-174
-124
-249
-174
-124
-249
-174
-124
-249
-174
-124
-250
-176
-132
-210
-156
-119
-162
-125
-96
-162
-125
-96
-214
-151
-109
-247
-165
-111
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-153
-96
-249
-159
-103
-247
-165
-111
-245
-169
-119
-250
-176
-132
-240
-181
-138
-209
-171
-139
-186
-157
-134
-167
-142
-123
-167
-142
-123
-178
-146
-122
-203
-161
-131
-239
-182
-144
-248
-180
-134
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-241
-145
-86
-241
-145
-86
-247
-150
-84
-241
-153
-96
-245
-162
-103
-238
-159
-107
-204
-141
-99
-214
-151
-109
-241
-153
-96
-249
-152
-92
-243
-141
-78
-242
-133
-67
-241
-132
-59
-241
-132
-59
-241
-138
-68
-241
-145
-79
-245
-162
-103
-248
-180
-134
-212
-173
-150
-146
-135
-124
-137
-127
-115
-176
-156
-141
-234
-204
-183
-253
-212
-188
-217
-187
-166
-187
-166
-150
-172
-150
-134
-176
-156
-141
-194
-173
-157
-234
-204
-183
-255
-215
-190
-194
-173
-157
-43
-57
-62
-139
-96
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-245
-179
-138
-245
-162
-103
-241
-138
-68
-238
-123
-45
-236
-108
-29
-236
-102
-14
-235
-94
-9
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-238
-116
-34
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-79
-249
-152
-92
-241
-153
-96
-245
-162
-103
-245
-162
-103
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-162
-103
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-243
-141
-78
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-162
-103
-247
-165
-111
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-249
-174
-124
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-132
-59
-238
-123
-53
-239
-117
-44
-238
-116
-34
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-249
-174
-124
-250
-176
-132
-250
-176
-132
-250
-176
-132
-249
-174
-124
-245
-169
-119
-247
-165
-111
-241
-153
-96
-241
-145
-86
-243
-141
-78
-242
-133
-67
-241
-132
-59
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-241
-132
-59
-242
-133
-67
-243
-141
-78
-249
-152
-92
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-169
-119
-249
-174
-124
-245
-179
-138
-251
-192
-154
-232
-190
-161
-101
-100
-92
-51
-62
-63
-63
-69
-60
-51
-62
-63
-55
-66
-67
-109
-106
-99
-176
-156
-141
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-207
-178
-158
-91
-92
-89
-51
-62
-63
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-75
-74
-61
-91
-92
-89
-245
-212
-186
-250
-200
-166
-252
-185
-144
-249
-174
-124
-247
-165
-111
-241
-153
-96
-241
-145
-79
-241
-138
-68
-242
-133
-67
-241
-132
-59
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-153
-96
-247
-165
-111
-245
-169
-119
-249
-174
-124
-250
-176
-132
-250
-176
-132
-249
-174
-124
-249
-174
-124
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-241
-145
-79
-241
-138
-68
-242
-133
-67
-242
-133
-67
-242
-133
-67
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-153
-96
-241
-153
-96
-245
-162
-103
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-245
-162
-103
-241
-153
-96
-241
-145
-79
-241
-138
-68
-238
-123
-53
-238
-123
-45
-238
-116
-34
-235
-113
-30
-235
-113
-30
-238
-116
-34
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-245
-169
-119
-249
-174
-124
-249
-174
-124
-245
-169
-119
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-241
-138
-68
-241
-132
-59
-238
-123
-45
-239
-117
-44
-238
-116
-34
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-241
-153
-96
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-132
-59
-238
-123
-53
-239
-117
-44
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-53
-242
-133
-67
-241
-145
-79
-241
-153
-96
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-249
-174
-124
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-247
-165
-111
-245
-162
-103
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-249
-152
-92
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-245
-169
-119
-249
-174
-124
-249
-174
-124
-249
-174
-124
-245
-169
-119
-247
-165
-111
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-79
-241
-145
-79
-241
-145
-79
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-242
-133
-67
-241
-145
-86
-247
-165
-111
-210
-156
-119
-63
-74
-74
-62
-63
-61
-69
-69
-61
-48
-58
-59
-63
-74
-74
-133
-120
-107
-194
-173
-157
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-176
-156
-141
-55
-66
-67
-76
-70
-64
-212
-120
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-194
-112
-58
-56
-64
-60
-154
-133
-118
-250
-176
-132
-241
-153
-96
-242
-133
-67
-239
-117
-44
-236
-108
-29
-236
-102
-14
-235
-94
-9
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-241
-138
-68
-243
-141
-78
-243
-141
-78
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-243
-141
-78
-243
-141
-78
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-116
-34
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-241
-132
-59
-242
-133
-67
-241
-138
-68
-243
-141
-78
-243
-141
-78
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-249
-152
-92
-241
-153
-96
-241
-153
-96
-241
-153
-96
-249
-152
-92
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-245
-179
-138
-144
-125
-110
-51
-62
-63
-117
-98
-55
-158
-125
-46
-145
-114
-49
-105
-93
-60
-69
-69
-61
-48
-58
-59
-58
-69
-70
-91
-92
-89
-120
-114
-108
-120
-114
-108
-91
-92
-89
-48
-58
-59
-56
-64
-60
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-48
-58
-59
-161
-144
-134
-250
-197
-158
-248
-180
-134
-247
-165
-111
-241
-153
-96
-241
-145
-79
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-249
-152
-92
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-123
-45
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-138
-68
-241
-138
-68
-243
-141
-78
-241
-145
-79
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-243
-141
-78
-242
-133
-67
-241
-132
-59
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-145
-86
-241
-153
-96
-241
-153
-96
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-45
-239
-117
-44
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-45
-241
-132
-59
-242
-133
-67
-243
-141
-78
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-241
-145
-79
-243
-141
-78
-243
-141
-78
-243
-141
-78
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-242
-133
-67
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-116
-34
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-238
-116
-34
-238
-123
-45
-238
-123
-53
-242
-133
-67
-241
-138
-68
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-243
-141
-78
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-138
-68
-242
-133
-67
-242
-133
-67
-242
-133
-67
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-242
-133
-67
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-145
-86
-241
-153
-96
-241
-153
-96
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-123
-53
-242
-133
-67
-241
-145
-86
-238
-159
-107
-84
-85
-82
-69
-69
-61
-188
-112
-56
-214
-121
-50
-173
-106
-60
-112
-85
-63
-62
-63
-61
-41
-58
-57
-63
-74
-74
-97
-98
-96
-120
-114
-108
-109
-106
-99
-77
-85
-81
-41
-58
-57
-81
-73
-62
-194
-112
-58
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-125
-90
-64
-51
-62
-63
-209
-171
-139
-245
-169
-119
-241
-145
-86
-241
-132
-59
-238
-116
-34
-235
-107
-16
-236
-102
-14
-235
-94
-9
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-238
-116
-34
-239
-117
-44
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-138
-68
-241
-145
-86
-238
-159
-107
-234
-168
-124
-84
-85
-82
-83
-78
-61
-171
-129
-45
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-129
-106
-52
-100
-89
-56
-83
-78
-61
-75
-74
-61
-69
-69
-61
-83
-78
-61
-105
-93
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-75
-74
-61
-63
-74
-74
-236
-186
-153
-245
-179
-138
-238
-159
-107
-241
-145
-86
-241
-138
-68
-241
-132
-59
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-241
-132
-59
-241
-145
-86
-204
-141
-99
-41
-58
-57
-155
-100
-63
-234
-126
-45
-227
-126
-50
-227
-126
-50
-234
-125
-52
-209
-117
-53
-155
-100
-63
-118
-86
-65
-89
-75
-66
-81
-73
-62
-81
-73
-62
-106
-82
-65
-155
-100
-63
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-109
-106
-99
-245
-179
-138
-245
-162
-103
-241
-138
-68
-238
-123
-45
-235
-113
-30
-236
-102
-14
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-241
-138
-68
-241
-145
-86
-238
-159
-107
-89
-84
-82
-75
-74
-61
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-95
-87
-59
-48
-58
-59
-167
-142
-123
-245
-179
-138
-238
-159
-107
-241
-145
-86
-242
-133
-67
-238
-123
-45
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-235
-113
-30
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-241
-132
-59
-241
-145
-79
-204
-141
-99
-48
-58
-59
-139
-96
-61
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-81
-73
-62
-58
-69
-70
-219
-170
-138
-245
-169
-119
-241
-145
-86
-241
-132
-59
-239
-117
-44
-236
-108
-29
-236
-102
-14
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-235
-94
-9
-230
-97
-5
-229
-102
-7
-229
-102
-7
-236
-102
-14
-236
-102
-14
-224
-98
-18
-224
-98
-18
-224
-98
-18
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-229
-102
-7
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-235
-94
-9
-230
-97
-5
-229
-102
-7
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-231
-91
-2
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-229
-102
-7
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-107
-16
-236
-108
-29
-239
-117
-44
-234
-125
-52
-231
-136
-72
-241
-153
-96
-162
-125
-96
-48
-58
-59
-95
-87
-59
-158
-125
-46
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-158
-125
-46
-95
-87
-59
-48
-58
-59
-124
-111
-99
-245
-179
-138
-247
-165
-111
-241
-145
-86
-241
-132
-59
-238
-123
-45
-238
-116
-34
-236
-108
-29
-224
-98
-18
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-230
-97
-5
-230
-97
-5
-235
-94
-9
-230
-97
-5
-229
-102
-7
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-224
-98
-18
-236
-102
-14
-229
-102
-7
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-229
-102
-7
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-229
-102
-7
-230
-97
-5
-235
-94
-9
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-235
-94
-9
-235
-94
-9
-229
-102
-7
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-235
-107
-16
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-229
-102
-7
-236
-102
-14
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-235
-94
-9
-230
-97
-5
-230
-97
-5
-229
-102
-7
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-224
-98
-18
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-102
-14
-229
-102
-7
-230
-97
-5
-229
-102
-7
-224
-98
-18
-236
-108
-29
-238
-116
-34
-238
-123
-53
-243
-141
-78
-241
-153
-96
-99
-90
-79
-56
-64
-60
-155
-100
-63
-234
-126
-45
-234
-126
-45
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-126
-45
-194
-112
-58
-81
-73
-62
-48
-58
-59
-178
-146
-122
-249
-174
-124
-241
-153
-96
-231
-136
-72
-234
-125
-52
-238
-116
-34
-235
-107
-16
-229
-102
-7
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-229
-102
-7
-236
-102
-14
-235
-113
-30
-239
-117
-44
-230
-128
-60
-236
-147
-85
-238
-159
-107
-139
-115
-96
-48
-58
-59
-69
-69
-61
-111
-94
-57
-145
-114
-49
-158
-125
-46
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-168
-127
-42
-152
-119
-47
-117
-98
-55
-69
-69
-61
-48
-58
-59
-144
-125
-110
-240
-181
-138
-247
-165
-111
-236
-147
-85
-242
-133
-67
-238
-123
-45
-235
-113
-30
-235
-107
-16
-236
-102
-14
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-229
-102
-7
-235
-107
-16
-235
-113
-30
-238
-123
-45
-242
-133
-67
-241
-153
-96
-214
-151
-109
-99
-90
-79
-48
-58
-59
-95
-78
-64
-155
-100
-63
-209
-117
-53
-227
-126
-50
-234
-125
-52
-234
-125
-52
-234
-125
-52
-234
-125
-52
-234
-125
-52
-234
-126
-45
-234
-126
-45
-227
-126
-50
-194
-112
-58
-125
-90
-64
-56
-64
-60
-58
-69
-70
-178
-146
-122
-250
-176
-132
-238
-159
-107
-241
-145
-79
-234
-125
-52
-239
-117
-44
-236
-108
-29
-224
-98
-18
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-230
-97
-5
-229
-102
-7
-223
-103
-18
-226
-110
-35
-234
-125
-52
-231
-136
-72
-241
-153
-96
-245
-169
-119
-178
-146
-122
-101
-100
-92
-48
-58
-59
-56
-64
-60
-69
-69
-61
-95
-87
-59
-111
-94
-57
-123
-102
-54
-129
-106
-52
-129
-106
-52
-123
-102
-54
-105
-93
-60
-88
-82
-59
-62
-63
-61
-48
-58
-59
-91
-92
-89
-186
-157
-134
-245
-179
-138
-238
-159
-107
-236
-147
-85
-230
-128
-60
-234
-125
-52
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-224
-98
-18
-236
-108
-29
-239
-117
-44
-230
-123
-57
-243
-141
-78
-238
-159
-107
-234
-168
-124
-158
-130
-108
-76
-78
-76
-41
-58
-57
-62
-63
-61
-95
-78
-64
-125
-90
-64
-146
-97
-64
-163
-104
-61
-173
-106
-60
-163
-104
-61
-155
-100
-63
-125
-90
-64
-95
-78
-64
-56
-64
-60
-43
-57
-62
-124
-111
-99
-209
-171
-139
-234
-168
-124
-238
-159
-107
-241
-145
-79
-230
-128
-60
-239
-117
-44
-236
-108
-29
-236
-102
-14
-229
-102
-7
-230
-97
-5
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-230
-97
-5
-224
-98
-18
-236
-108
-29
-226
-110
-35
-230
-123
-57
-231
-136
-72
-241
-153
-96
-238
-159
-107
-240
-181
-138
-203
-161
-131
-150
-125
-114
-101
-100
-92
-76
-78
-76
-55
-66
-67
-48
-58
-59
-48
-58
-59
-48
-58
-59
-48
-58
-59
-58
-69
-70
-84
-85
-82
-124
-111
-99
-178
-146
-122
-240
-181
-138
-234
-168
-124
-238
-159
-107
-236
-147
-85
-230
-128
-60
-234
-125
-52
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-224
-98
-18
-223
-103
-18
-226
-110
-35
-225
-124
-48
-230
-128
-60
-236
-147
-85
-241
-153
-96
-234
-168
-124
-230
-173
-136
-186
-157
-134
-133
-120
-107
-91
-92
-89
-63
-74
-74
-51
-62
-63
-48
-58
-59
-48
-58
-59
-48
-58
-59
-51
-62
-63
-63
-74
-74
-91
-92
-89
-144
-125
-110
-203
-161
-131
-240
-181
-138
-245
-169
-119
-241
-153
-96
-241
-145
-79
-230
-128
-60
-225
-124
-48
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-224
-98
-18
-223
-103
-18
-226
-110
-35
-239
-117
-44
-230
-123
-57
-231
-136
-72
-236
-147
-85
-238
-159
-107
-245
-169
-119
-234
-168
-124
-240
-181
-138
-239
-182
-144
-236
-186
-153
-250
-197
-158
-250
-197
-158
-250
-197
-158
-251
-192
-154
-236
-186
-153
-239
-182
-144
-245
-179
-138
-234
-168
-124
-238
-159
-107
-241
-153
-96
-231
-136
-72
-230
-128
-60
-225
-124
-48
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-224
-98
-18
-223
-103
-18
-226
-110
-35
-225
-124
-48
-230
-128
-60
-231
-136
-72
-241
-153
-96
-238
-159
-107
-234
-168
-124
-240
-181
-138
-239
-182
-144
-236
-186
-153
-251
-192
-154
-250
-197
-158
-250
-197
-158
-250
-197
-158
-236
-186
-153
-239
-182
-144
-240
-181
-138
-234
-168
-124
-245
-169
-119
-238
-159
-107
-236
-147
-85
-231
-136
-72
-230
-123
-57
-239
-117
-44
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-230
-128
-60
-231
-136
-72
-236
-147
-85
-241
-153
-96
-238
-159
-107
-238
-159
-107
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-238
-159
-107
-238
-159
-107
-241
-153
-96
-236
-147
-85
-231
-136
-72
-230
-128
-60
-230
-123
-57
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-225
-124
-48
-230
-123
-57
-230
-128
-60
-231
-136
-72
-236
-147
-85
-241
-153
-96
-238
-159
-107
-238
-159
-107
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-238
-159
-107
-238
-159
-107
-241
-153
-96
-236
-147
-85
-231
-136
-72
-230
-128
-60
-225
-124
-48
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-230
-128
-60
-230
-128
-60
-231
-136
-72
-231
-136
-72
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-231
-136
-72
-231
-136
-72
-231
-136
-72
-230
-128
-60
-227
-126
-50
-225
-124
-48
-226
-110
-35
-223
-103
-18
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-230
-123
-57
-230
-128
-60
-231
-136
-72
-231
-136
-72
-231
-136
-72
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-231
-136
-72
-231
-136
-72
-230
-128
-60
-230
-123
-57
-225
-124
-48
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-225
-124
-48
-225
-124
-48
-224
-123
-55
-224
-123
-55
-224
-123
-55
-230
-123
-57
-224
-123
-55
-224
-123
-55
-225
-124
-48
-225
-124
-48
-226
-110
-35
-226
-110
-35
-223
-103
-18
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-218
-87
-5
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-226
-110
-35
-225
-124
-48
-225
-124
-48
-224
-123
-55
-230
-123
-57
-230
-123
-57
-230
-123
-57
-230
-123
-57
-230
-123
-57
-225
-124
-48
-225
-124
-48
-226
-110
-35
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-223
-103
-18
-223
-103
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-223
-103
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
diff --git a/recipes-kernel/linux/linux-mainline-3.2/devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch b/recipes-kernel/linux/linux-mainline-3.2/devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch
deleted file mode 100644
index 388b250..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 810e3d05ec1e0f2a3c261d7e72bde9a0726b1a7d Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Tue, 2 Nov 2010 09:59:09 -0500
-Subject: [PATCH] arm: omap: devkit8000: for lcd use samsung_lte_panel
-
-This was noticed by Robert Skretkowicz
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-devkit8000.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-devkit8000.c b/arch/arm/mach-omap2/board-devkit8000.c
-index 90154e4..55760a0 100644
---- a/arch/arm/mach-omap2/board-devkit8000.c
-+++ b/arch/arm/mach-omap2/board-devkit8000.c
-@@ -148,7 +148,7 @@ static struct panel_generic_dpi_data lcd_panel = {
- static struct omap_dss_device devkit8000_lcd_device = {
- 	.name                   = "lcd",
- 	.type                   = OMAP_DISPLAY_TYPE_DPI,
--	.driver_name            = "generic_dpi_panel",
-+	.driver_name            = "samsung_lte_panel",
- 	.data			= &lcd_panel,
- 	.phy.dpi.data_lines     = 24,
- };
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/distro/0001-kbuild-deb-pkg-set-host-machine-after-dpkg-gencontro.patch b/recipes-kernel/linux/linux-mainline-3.2/distro/0001-kbuild-deb-pkg-set-host-machine-after-dpkg-gencontro.patch
deleted file mode 100644
index 6b8a631..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/distro/0001-kbuild-deb-pkg-set-host-machine-after-dpkg-gencontro.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 4177460e5231895018005ac972ee11ef8c7a561f Mon Sep 17 00:00:00 2001
-From: Robert Gordon <robert at greenroomsoftware.com>
-Date: Wed, 13 Apr 2011 11:32:29 -0500
-Subject: [PATCH] kbuild, deb-pkg: set host machine after dpkg-gencontrol
-
-scripts/package/builddeb script was setting the host machine
-$arch in the KERNEL/debian/control prior to an invocation of
-dpkg-gencontrol.  The patch modifies the script to guarantee the correct
-debian arch for the target is written to the control file instead.
-
-Signed-off-by: Robert Gordon <robert at greenroomsoftware.com>
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- scripts/package/builddeb |   70 +++++++++++++++++++++++----------------------
- 1 files changed, 36 insertions(+), 34 deletions(-)
-
-diff --git a/scripts/package/builddeb b/scripts/package/builddeb
-index 3c6c0b1..2f86d7b 100644
---- a/scripts/package/builddeb
-+++ b/scripts/package/builddeb
-@@ -26,37 +26,7 @@ create_package() {
- 	chmod -R go-w "$pdir"
- 
- 	# Attempt to find the correct Debian architecture
--	local forcearch="" debarch=""
--	case "$UTS_MACHINE" in
--	i386|ia64|alpha)
--		debarch="$UTS_MACHINE" ;;
--	x86_64)
--		debarch=amd64 ;;
--	sparc*)
--		debarch=sparc ;;
--	s390*)
--		debarch=s390 ;;
--	ppc*)
--		debarch=powerpc ;;
--	parisc*)
--		debarch=hppa ;;
--	mips*)
--		debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
--	arm*)
--		debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
--	*)
--		echo "" >&2
--		echo "** ** **  WARNING  ** ** **" >&2
--		echo "" >&2
--		echo "Your architecture doesn't have it's equivalent" >&2
--		echo "Debian userspace architecture defined!" >&2
--		echo "Falling back to using your current userspace instead!" >&2
--		echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
--		echo "" >&2
--	esac
--	if [ -n "$KBUILD_DEBARCH" ] ; then
--		debarch="$KBUILD_DEBARCH"
--	fi
-+	local forcearch=""
- 	if [ -n "$debarch" ] ; then
- 		forcearch="-DArchitecture=$debarch"
- 	fi
-@@ -66,6 +36,38 @@ create_package() {
- 	dpkg --build "$pdir" ..
- }
- 
-+#Set the correct debian arch
-+case "$UTS_MACHINE" in
-+i386|ia64|alpha)
-+    debarch="$UTS_MACHINE" ;;
-+x86_64)
-+    debarch=amd64 ;;
-+sparc*)
-+    debarch=sparc ;;
-+s390*)
-+    debarch=s390 ;;
-+ppc*)
-+    debarch=powerpc ;;
-+parisc*)
-+    debarch=hppa ;;
-+mips*)
-+    debarch=mips$(grep -q CPU_LITTLE_ENDIAN=y .config && echo el) ;;
-+arm*)
-+    debarch=arm$(grep -q CONFIG_AEABI=y .config && echo el) ;;
-+*)
-+    echo "" >&2
-+    echo "** ** **  WARNING  ** ** **" >&2
-+    echo "" >&2
-+    echo "Your architecture doesn't have it's equivalent" >&2
-+    echo "Debian userspace architecture defined!" >&2
-+    echo "Falling back to using your current userspace instead!" >&2
-+    echo "Please add support for $UTS_MACHINE to ${0} ..." >&2
-+    echo "" >&2
-+esac
-+if [ -n "$KBUILD_DEBARCH" ] ; then
-+    debarch="$KBUILD_DEBARCH"
-+fi
-+
- # Some variables and settings used throughout the script
- version=$KERNELRELEASE
- revision=$(cat .version)
-@@ -252,9 +254,9 @@ cat <<EOF >> debian/control
- 
- Package: $kernel_headers_packagename
- Provides: linux-headers, linux-headers-2.6
--Architecture: $arch
--Description: Linux kernel headers for $KERNELRELEASE on $arch
-- This package provides kernel header files for $KERNELRELEASE on $arch
-+Architecture: $debarch
-+Description: Linux kernel headers for $KERNELRELEASE on $debarch
-+ This package provides kernel header files for $KERNELRELEASE on $debarch
-  .
-  This is useful for people who need to build external modules
- EOF
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch b/recipes-kernel/linux/linux-mainline-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch
deleted file mode 100644
index 241907e..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d4369481800faa1ab93ab10c23626a5ce5fad5b5 Mon Sep 17 00:00:00 2001
-From: Alexander Holler <hol... at ahsoftware.de>
-Date: Wed, 25 Apr 2012 00:50:03 +0200
-Subject: [PATCH] leds: heartbeat: stop on shutdown, reboot or panic
-
-A halted kernel should not show a heartbeat.
-
-Signed-off-by: Alexander Holler <hol... at ahsoftware.de>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/leds/ledtrig-heartbeat.c |   27 ++++++++++++++++++++++++++-
- 1 files changed, 26 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c
-index 759c0bb..31c234c 100644
---- a/drivers/leds/ledtrig-heartbeat.c
-+++ b/drivers/leds/ledtrig-heartbeat.c
-@@ -18,6 +18,7 @@
- #include <linux/timer.h>
- #include <linux/sched.h>
- #include <linux/leds.h>
-+#include <linux/reboot.h>
- #include "leds.h"
- 
- struct heartbeat_trig_data {
-@@ -101,13 +102,37 @@ static struct led_trigger heartbeat_led_trigger = {
- 	.deactivate = heartbeat_trig_deactivate,
- };
- 
-+static int heartbeat_reboot_notifier(struct notifier_block *nb,
-+				     unsigned long code, void *unused)
-+{
-+	led_trigger_unregister(&heartbeat_led_trigger);
-+	return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block heartbeat_reboot_nb = {
-+	.notifier_call = heartbeat_reboot_notifier,
-+};
-+
-+static struct notifier_block heartbeat_panic_nb = {
-+	.notifier_call = heartbeat_reboot_notifier,
-+};
-+
- static int __init heartbeat_trig_init(void)
- {
--	return led_trigger_register(&heartbeat_led_trigger);
-+	int rc = led_trigger_register(&heartbeat_led_trigger);
-+	if (!rc) {
-+		atomic_notifier_chain_register(&panic_notifier_list,
-+					       &heartbeat_panic_nb);
-+		register_reboot_notifier(&heartbeat_reboot_nb);
-+	}
-+	return rc;
- }
- 
- static void __exit heartbeat_trig_exit(void)
- {
-+	unregister_reboot_notifier(&heartbeat_reboot_nb);
-+	atomic_notifier_chain_unregister(&panic_notifier_list,
-+					 &heartbeat_panic_nb);
- 	led_trigger_unregister(&heartbeat_led_trigger);
- }
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch
deleted file mode 100644
index 92c7745..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From d632eb1bf22e11def74e4e53cc47d790fbdba105 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at suse.de>
-Date: Fri, 18 Nov 2011 09:44:20 -0800
-Subject: [PATCH 01/17] USB: convert drivers/net/* to use module_usb_driver()
-
-This converts the drivers in drivers/net/* to use the
-module_usb_driver() macro which makes the code smaller and a bit
-simpler.
-
-Added bonus is that it removes some unneeded kernel log messages about
-drivers loading and/or unloading.
-
-Cc: Wolfgang Grandegger <wg at grandegger.com>
-Cc: Samuel Ortiz <samuel at sortiz.org>
-Cc: Oliver Neukum <oliver at neukum.name>
-Cc: Peter Korsgaard <jacmet at sunsite.dk>
-Cc: Petko Manolov <petkan at users.sourceforge.net>
-Cc: Steve Glendinning <steve.glendinning at smsc.com>
-Cc: Christian Lamparter <chunkeey at googlemail.com>
-Cc: "John W. Linville" <linville at tuxdriver.com>
-Cc: Dan Williams <dcbw at redhat.com>
-Cc: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Cc: Ivo van Doorn <IvDoorn at gmail.com>
-Cc: Gertjan van Wingerde <gwingerde at gmail.com>
-Cc: Helmut Schaa <helmut.schaa at googlemail.com>
-Cc: Herton Ronaldo Krzesinski <herton at canonical.com>
-Cc: Hin-Tak Leung <htl10 at users.sourceforge.net>
-Cc: Larry Finger <Larry.Finger at lwfinger.net>
-Cc: Chaoming Li <chaoming_li at realsil.com.cn>
-Cc: Lucas De Marchi <lucas.demarchi at profusion.mobi>
-Cc: "David S. Miller" <davem at davemloft.net>
-Cc: Roel Kluin <roel.kluin at gmail.com>
-Cc: Paul Gortmaker <paul.gortmaker at windriver.com>
-Cc: Jiri Pirko <jpirko at redhat.com>
-Cc: Pavel Roskin <proski at gnu.org>
-Cc: Yoann DI-RUZZA <y.diruzza at lim.eu>
-Cc: George <george0505 at realtek.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/libertas/if_usb.c |   24 +-----------------------
- 1 files changed, 1 insertions(+), 23 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index db879c3..b5fbbc7 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -1184,29 +1184,7 @@ static struct usb_driver if_usb_driver = {
- 	.reset_resume = if_usb_resume,
- };
- 
--static int __init if_usb_init_module(void)
--{
--	int ret = 0;
--
--	lbs_deb_enter(LBS_DEB_MAIN);
--
--	ret = usb_register(&if_usb_driver);
--
--	lbs_deb_leave_args(LBS_DEB_MAIN, "ret %d", ret);
--	return ret;
--}
--
--static void __exit if_usb_exit_module(void)
--{
--	lbs_deb_enter(LBS_DEB_MAIN);
--
--	usb_deregister(&if_usb_driver);
--
--	lbs_deb_leave(LBS_DEB_MAIN);
--}
--
--module_init(if_usb_init_module);
--module_exit(if_usb_exit_module);
-+module_usb_driver(if_usb_driver);
- 
- MODULE_DESCRIPTION("8388 USB WLAN Driver");
- MODULE_AUTHOR("Marvell International Ltd. and Red Hat, Inc.");
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch
deleted file mode 100644
index 34ba936..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 3db1cd5c05f35fb43eb134df6f321de4e63141f2 Mon Sep 17 00:00:00 2001
-From: Rusty Russell <rusty at rustcorp.com.au>
-Date: Mon, 19 Dec 2011 13:56:45 +0000
-Subject: [PATCH 02/17] net: fix assignment of 0/1 to bool variables.
-
-DaveM said:
-   Please, this kind of stuff rots forever and not using bool properly
-   drives me crazy.
-
-Joe Perches <joe at perches.com> gave me the spatch script:
-
-	@@
-	bool b;
-	@@
-	-b = 0
-	+b = false
-	@@
-	bool b;
-	@@
-	-b = 1
-	+b = true
-
-I merely installed coccinelle, read the documentation and took credit.
-
-Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- drivers/net/wireless/libertas/if_cs.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index e269351..3f7bf4d 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -859,7 +859,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	 * Most of the libertas cards can do unaligned register access, but some
- 	 * weird ones cannot. That's especially true for the CF8305 card.
- 	 */
--	card->align_regs = 0;
-+	card->align_regs = false;
- 
- 	card->model = get_model(p_dev->manf_id, p_dev->card_id);
- 	if (card->model == MODEL_UNKNOWN) {
-@@ -871,7 +871,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	/* Check if we have a current silicon */
- 	prod_id = if_cs_read8(card, IF_CS_PRODUCT_ID);
- 	if (card->model == MODEL_8305) {
--		card->align_regs = 1;
-+		card->align_regs = true;
- 		if (prod_id < IF_CS_CF8305_B1_REV) {
- 			pr_err("8305 rev B0 and older are not supported\n");
- 			ret = -ENODEV;
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0003-switch-debugfs-to-umode_t.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0003-switch-debugfs-to-umode_t.patch
deleted file mode 100644
index 896c7b6..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0003-switch-debugfs-to-umode_t.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From f4ae40a6a50a98ac23d4b285f739455e926a473e Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Sun, 24 Jul 2011 04:33:43 -0400
-Subject: [PATCH 03/17] switch debugfs to umode_t
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
----
- drivers/net/wireless/libertas/debugfs.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c
-index d8d8f0d..c192671 100644
---- a/drivers/net/wireless/libertas/debugfs.c
-+++ b/drivers/net/wireless/libertas/debugfs.c
-@@ -704,7 +704,7 @@ out_unlock:
- 
- struct lbs_debugfs_files {
- 	const char *name;
--	int perm;
-+	umode_t perm;
- 	struct file_operations fops;
- };
- 
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch
deleted file mode 100644
index 7979f1c..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From e404decb0fb017be80552adee894b35307b6c7b4 Mon Sep 17 00:00:00 2001
-From: Joe Perches <joe at perches.com>
-Date: Sun, 29 Jan 2012 12:56:23 +0000
-Subject: [PATCH 04/17] drivers/net: Remove unnecessary k.alloc/v.alloc OOM
- messages
-
-alloc failures use dump_stack so emitting an additional
-out-of-memory message is an unnecessary duplication.
-
-Remove the allocation failure messages.
-
-Signed-off-by: Joe Perches <joe at perches.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- drivers/net/wireless/libertas/if_cs.c  |    5 ++---
- drivers/net/wireless/libertas/if_usb.c |    4 +---
- 2 files changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index 3f7bf4d..234ee88 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -815,10 +815,9 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	lbs_deb_enter(LBS_DEB_CS);
- 
- 	card = kzalloc(sizeof(struct if_cs_card), GFP_KERNEL);
--	if (!card) {
--		pr_err("error in kzalloc\n");
-+	if (!card)
- 		goto out;
--	}
-+
- 	card->p_dev = p_dev;
- 	p_dev->priv = card;
- 
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index b5fbbc7..74da5f1 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -261,10 +261,8 @@ static int if_usb_probe(struct usb_interface *intf,
- 	udev = interface_to_usbdev(intf);
- 
- 	cardp = kzalloc(sizeof(struct if_usb_card), GFP_KERNEL);
--	if (!cardp) {
--		pr_err("Out of memory allocating private data\n");
-+	if (!cardp)
- 		goto error;
--	}
- 
- 	setup_timer(&cardp->fw_timeout, if_usb_fw_timeo, (unsigned long)cardp);
- 	init_waitqueue_head(&cardp->fw_wq);
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch
deleted file mode 100644
index 10e9c55..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 377526578f2c343ea281a918b18ece1fca65005c Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Wed, 14 Mar 2012 22:34:33 +0000
-Subject: [PATCH 05/17] libertas: remove dump_survey implementation
-
-libertas provides a dump_survey implementation based on reading of
-a RSSI value. However, this RSSI value is calculated based on the
-last received beacon from the associated AP - it is not a good
-way of surveying a channel in general, and even causes an error
-if the card is not associated to a network.
-
-As this is not appropriate as a survey, remove it. This fixes an
-issue where something in userspace is repeatedly calling site-survey
-during boot, resulting in many repeated errors as the RSSI value cannot
-be read before associating.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/cfg.c |   37 -----------------------------------
- 1 files changed, 0 insertions(+), 37 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
-index a7cd311..3fa1ece 100644
---- a/drivers/net/wireless/libertas/cfg.c
-+++ b/drivers/net/wireless/libertas/cfg.c
-@@ -1631,42 +1631,6 @@ static int lbs_cfg_get_station(struct wiphy *wiphy, struct net_device *dev,
- 
- 
- /*
-- * "Site survey", here just current channel and noise level
-- */
--
--static int lbs_get_survey(struct wiphy *wiphy, struct net_device *dev,
--	int idx, struct survey_info *survey)
--{
--	struct lbs_private *priv = wiphy_priv(wiphy);
--	s8 signal, noise;
--	int ret;
--
--	if (dev == priv->mesh_dev)
--		return -EOPNOTSUPP;
--
--	if (idx != 0)
--		ret = -ENOENT;
--
--	lbs_deb_enter(LBS_DEB_CFG80211);
--
--	survey->channel = ieee80211_get_channel(wiphy,
--		ieee80211_channel_to_frequency(priv->channel,
--					       IEEE80211_BAND_2GHZ));
--
--	ret = lbs_get_rssi(priv, &signal, &noise);
--	if (ret == 0) {
--		survey->filled = SURVEY_INFO_NOISE_DBM;
--		survey->noise = noise;
--	}
--
--	lbs_deb_leave_args(LBS_DEB_CFG80211, "ret %d", ret);
--	return ret;
--}
--
--
--
--
--/*
-  * Change interface
-  */
- 
-@@ -2068,7 +2032,6 @@ static struct cfg80211_ops lbs_cfg80211_ops = {
- 	.del_key = lbs_cfg_del_key,
- 	.set_default_key = lbs_cfg_set_default_key,
- 	.get_station = lbs_cfg_get_station,
--	.dump_survey = lbs_get_survey,
- 	.change_virtual_intf = lbs_change_intf,
- 	.join_ibss = lbs_join_ibss,
- 	.leave_ibss = lbs_leave_ibss,
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0007-wireless-libertas-remove-redundant-NULL-tests-before.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0007-wireless-libertas-remove-redundant-NULL-tests-before.patch
deleted file mode 100644
index d86b6e4..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0007-wireless-libertas-remove-redundant-NULL-tests-before.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From a7b957a277215da1830596c0791307a999fe5153 Mon Sep 17 00:00:00 2001
-From: Jesper Juhl <jj at chaosbits.net>
-Date: Mon, 9 Apr 2012 22:51:07 +0200
-Subject: [PATCH 07/17] wireless, libertas: remove redundant NULL tests before
- calling release_firmware()
-
-release_firmware() tests for, and deals gracefully with, NULL
-pointers. Remove redundant explicit tests before calling the function.
-
-Signed-off-by: Jesper Juhl <jj at chaosbits.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_cs.c   |    6 ++----
- drivers/net/wireless/libertas/if_sdio.c |    6 ++----
- drivers/net/wireless/libertas/if_spi.c  |    6 ++----
- drivers/net/wireless/libertas/main.c    |   12 ++++--------
- 4 files changed, 10 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index 234ee88..171a06b 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -951,10 +951,8 @@ out2:
- out1:
- 	pcmcia_disable_device(p_dev);
- out:
--	if (helper)
--		release_firmware(helper);
--	if (mainfw)
--		release_firmware(mainfw);
-+	release_firmware(helper);
-+	release_firmware(mainfw);
- 
- 	lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret);
- 	return ret;
-diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
-index 9804ebc..15bfe2f 100644
---- a/drivers/net/wireless/libertas/if_sdio.c
-+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -751,10 +751,8 @@ success:
- 	ret = 0;
- 
- out:
--	if (helper)
--		release_firmware(helper);
--	if (mainfw)
--		release_firmware(mainfw);
-+	release_firmware(helper);
-+	release_firmware(mainfw);
- 
- 	lbs_deb_leave_args(LBS_DEB_SDIO, "ret %d", ret);
- 	return ret;
-diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c
-index 50b1ee7..7a5df4f 100644
---- a/drivers/net/wireless/libertas/if_spi.c
-+++ b/drivers/net/wireless/libertas/if_spi.c
-@@ -1095,10 +1095,8 @@ static int if_spi_init_card(struct if_spi_card *card)
- 		goto out;
- 
- out:
--	if (helper)
--		release_firmware(helper);
--	if (mainfw)
--		release_firmware(mainfw);
-+	release_firmware(helper);
-+	release_firmware(mainfw);
- 
- 	lbs_deb_leave_args(LBS_DEB_SPI, "err %d\n", err);
- 
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index 957681d..3b81b70 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1269,14 +1269,10 @@ int lbs_get_firmware(struct device *dev, const char *user_helper,
- 
-   fail:
- 	/* Failed */
--	if (*helper) {
--		release_firmware(*helper);
--		*helper = NULL;
--	}
--	if (*mainfw) {
--		release_firmware(*mainfw);
--		*mainfw = NULL;
--	}
-+	release_firmware(*helper);
-+	*helper = NULL;
-+	release_firmware(*mainfw);
-+	*mainfw = NULL;
- 
- 	return -ENOENT;
- }
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0008-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0008-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch
deleted file mode 100644
index 0bacbca..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0008-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From effcc625eb4ab3b10b4744237fd37e8f7dcd6511 Mon Sep 17 00:00:00 2001
-From: Amitkumar Karwar <akarwar at marvell.com>
-Date: Wed, 28 Mar 2012 11:38:01 -0700
-Subject: [PATCH 08/17] libertas: fix signedness bug in lbs_auth_to_authtype()
-
-Return type for lbs_auth_to_authtype() is changed from "u8" to
-"int" to return negative error code correctly.
-Also an error check is added in connect handler for invalid auth
-type.
-
-Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Amitkumar Karwar <akarwar at marvell.com>
-Signed-off-by: Kiran Divekar <dkiran at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/cfg.c |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
-index 3fa1ece..2fa879b 100644
---- a/drivers/net/wireless/libertas/cfg.c
-+++ b/drivers/net/wireless/libertas/cfg.c
-@@ -103,7 +103,7 @@ static const u32 cipher_suites[] = {
-  * Convert NL80211's auth_type to the one from Libertas, see chapter 5.9.1
-  * in the firmware spec
-  */
--static u8 lbs_auth_to_authtype(enum nl80211_auth_type auth_type)
-+static int lbs_auth_to_authtype(enum nl80211_auth_type auth_type)
- {
- 	int ret = -ENOTSUPP;
- 
-@@ -1411,7 +1411,12 @@ static int lbs_cfg_connect(struct wiphy *wiphy, struct net_device *dev,
- 		goto done;
- 	}
- 
--	lbs_set_authtype(priv, sme);
-+	ret = lbs_set_authtype(priv, sme);
-+	if (ret == -ENOTSUPP) {
-+		wiphy_err(wiphy, "unsupported authtype 0x%x\n", sme->auth_type);
-+		goto done;
-+	}
-+
- 	lbs_set_radio(priv, preamble, 1);
- 
- 	/* Do the actual association */
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0009-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0009-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch
deleted file mode 100644
index 3477814..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0009-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 1e66eda1d40c9ce3ff38782da066a14e1b88ac50 Mon Sep 17 00:00:00 2001
-From: Julia Lawall <Julia.Lawall at lip6.fr>
-Date: Mon, 16 Apr 2012 17:44:00 +0200
-Subject: [PATCH 09/17] drivers/net/wireless/libertas/if_usb.c: add missing
- debugging code
-
-Add a corresponding leave call on error failure.
-
-Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_usb.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index 74da5f1..ce4938d 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -1128,8 +1128,10 @@ static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
- 
- 	lbs_deb_enter(LBS_DEB_USB);
- 
--	if (priv->psstate != PS_STATE_FULL_POWER)
--		return -1;
-+	if (priv->psstate != PS_STATE_FULL_POWER) {
-+		ret = -1;
-+		goto out;
-+	}
- 
- #ifdef CONFIG_OLPC
- 	if (machine_is_olpc()) {
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0010-libertas-Firmware-loading-simplifications.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0010-libertas-Firmware-loading-simplifications.patch
deleted file mode 100644
index 06d8218..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0010-libertas-Firmware-loading-simplifications.patch
+++ /dev/null
@@ -1,618 +0,0 @@
-From 370803c25dd77332ee4ca97884c3a5e1e1eafbca Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:52:42 +0100
-Subject: [PATCH 10/17] libertas: Firmware loading simplifications
-
-Remove the ability to pass module parameters with firmware filenames
-for USB and SDIO interfaces.
-
-Remove the ability to pass custom "user" filenames to lbs_get_firmware().
-
-Remove the ability to reprogram internal device memory with a different
-firmware from the USB driver (we don't know of any users), and simplify
-the OLPC firmware loading quirk to simply placing the OLPC firmware
-at the top of the list (we don't know of any users other than OLPC).
-
-Move lbs_get_firmware() into its own file.
-
-These simplifications should have no real-life effect but make the
-upcoming transition to asynchronous firmware loading considerably less
-painful.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/Makefile   |    1 +
- drivers/net/wireless/libertas/decl.h     |    3 +-
- drivers/net/wireless/libertas/firmware.c |   79 ++++++++++++++
- drivers/net/wireless/libertas/if_cs.c    |    4 +-
- drivers/net/wireless/libertas/if_sdio.c  |   25 +----
- drivers/net/wireless/libertas/if_spi.c   |    5 +-
- drivers/net/wireless/libertas/if_usb.c   |  169 ++----------------------------
- drivers/net/wireless/libertas/main.c     |  101 ------------------
- 8 files changed, 94 insertions(+), 293 deletions(-)
- create mode 100644 drivers/net/wireless/libertas/firmware.c
-
-diff --git a/drivers/net/wireless/libertas/Makefile b/drivers/net/wireless/libertas/Makefile
-index f7d01bf..eac72f7 100644
---- a/drivers/net/wireless/libertas/Makefile
-+++ b/drivers/net/wireless/libertas/Makefile
-@@ -6,6 +6,7 @@ libertas-y += ethtool.o
- libertas-y += main.o
- libertas-y += rx.o
- libertas-y += tx.o
-+libertas-y += firmware.o
- libertas-$(CONFIG_LIBERTAS_MESH) += mesh.o
- 
- usb8xxx-objs += if_usb.o
-diff --git a/drivers/net/wireless/libertas/decl.h b/drivers/net/wireless/libertas/decl.h
-index bc951ab..2fb2e31 100644
---- a/drivers/net/wireless/libertas/decl.h
-+++ b/drivers/net/wireless/libertas/decl.h
-@@ -66,8 +66,7 @@ int lbs_exit_auto_deep_sleep(struct lbs_private *priv);
- u32 lbs_fw_index_to_data_rate(u8 index);
- u8 lbs_data_rate_to_fw_index(u32 rate);
- 
--int lbs_get_firmware(struct device *dev, const char *user_helper,
--			const char *user_mainfw, u32 card_model,
-+int lbs_get_firmware(struct device *dev, u32 card_model,
- 			const struct lbs_fw_table *fw_table,
- 			const struct firmware **helper,
- 			const struct firmware **mainfw);
-diff --git a/drivers/net/wireless/libertas/firmware.c b/drivers/net/wireless/libertas/firmware.c
-new file mode 100644
-index 0000000..0c8c845
---- /dev/null
-+++ b/drivers/net/wireless/libertas/firmware.c
-@@ -0,0 +1,79 @@
-+/*
-+ * Firmware loading and handling functions.
-+ */
-+
-+#include <linux/firmware.h>
-+#include <linux/module.h>
-+
-+#include "decl.h"
-+
-+/**
-+ *  lbs_get_firmware - Retrieves two-stage firmware
-+ *
-+ *  @dev:     	A pointer to &device structure
-+ *  @card_model: Bus-specific card model ID used to filter firmware table
-+ *		elements
-+ *  @fw_table:	Table of firmware file names and device model numbers
-+ *		terminated by an entry with a NULL helper name
-+ *  @helper:	On success, the helper firmware; caller must free
-+ *  @mainfw:	On success, the main firmware; caller must free
-+ *
-+ *  returns:		0 on success, non-zero on failure
-+ */
-+int lbs_get_firmware(struct device *dev, u32 card_model,
-+			const struct lbs_fw_table *fw_table,
-+			const struct firmware **helper,
-+			const struct firmware **mainfw)
-+{
-+	const struct lbs_fw_table *iter;
-+	int ret;
-+
-+	BUG_ON(helper == NULL);
-+	BUG_ON(mainfw == NULL);
-+
-+	/* Search for firmware to use from the table. */
-+	iter = fw_table;
-+	while (iter && iter->helper) {
-+		if (iter->model != card_model)
-+			goto next;
-+
-+		if (*helper == NULL) {
-+			ret = request_firmware(helper, iter->helper, dev);
-+			if (ret)
-+				goto next;
-+
-+			/* If the device has one-stage firmware (ie cf8305) and
-+			 * we've got it then we don't need to bother with the
-+			 * main firmware.
-+			 */
-+			if (iter->fwname == NULL)
-+				return 0;
-+		}
-+
-+		if (*mainfw == NULL) {
-+			ret = request_firmware(mainfw, iter->fwname, dev);
-+			if (ret) {
-+				/* Clear the helper to ensure we don't have
-+				 * mismatched firmware pairs.
-+				 */
-+				release_firmware(*helper);
-+				*helper = NULL;
-+			}
-+		}
-+
-+		if (*helper && *mainfw)
-+			return 0;
-+
-+  next:
-+		iter++;
-+	}
-+
-+	/* Failed */
-+	release_firmware(*helper);
-+	*helper = NULL;
-+	release_firmware(*mainfw);
-+	*mainfw = NULL;
-+
-+	return -ENOENT;
-+}
-+EXPORT_SYMBOL_GPL(lbs_get_firmware);
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index 171a06b..cee5052 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -890,8 +890,8 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 		goto out2;
- 	}
- 
--	ret = lbs_get_firmware(&p_dev->dev, NULL, NULL, card->model,
--				&fw_table[0], &helper, &mainfw);
-+	ret = lbs_get_firmware(&p_dev->dev, card->model, &fw_table[0],
-+				&helper, &mainfw);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto out2;
-diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
-index 15bfe2f..6590feb 100644
---- a/drivers/net/wireless/libertas/if_sdio.c
-+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -65,12 +65,6 @@ static void if_sdio_interrupt(struct sdio_func *func);
-  */
- static u8 user_rmmod;
- 
--static char *lbs_helper_name = NULL;
--module_param_named(helper_name, lbs_helper_name, charp, 0644);
--
--static char *lbs_fw_name = NULL;
--module_param_named(fw_name, lbs_fw_name, charp, 0644);
--
- static const struct sdio_device_id if_sdio_ids[] = {
- 	{ SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL,
- 			SDIO_DEVICE_ID_MARVELL_LIBERTAS) },
-@@ -124,11 +118,6 @@ struct if_sdio_card {
- 	unsigned long		ioport;
- 	unsigned int		scratch_reg;
- 
--	const char		*helper;
--	const char		*firmware;
--	bool			helper_allocated;
--	bool			firmware_allocated;
--
- 	u8			buffer[65536] __attribute__((aligned(4)));
- 
- 	spinlock_t		lock;
-@@ -725,8 +714,8 @@ static int if_sdio_prog_firmware(struct if_sdio_card *card)
- 		goto success;
- 	}
- 
--	ret = lbs_get_firmware(&card->func->dev, lbs_helper_name, lbs_fw_name,
--				card->model, &fw_table[0], &helper, &mainfw);
-+	ret = lbs_get_firmware(&card->func->dev, card->model, &fw_table[0],
-+				&helper, &mainfw);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto out;
-@@ -1242,10 +1231,6 @@ free:
- 		kfree(packet);
- 	}
- 
--	if (card->helper_allocated)
--		kfree(card->helper);
--	if (card->firmware_allocated)
--		kfree(card->firmware);
- 	kfree(card);
- 
- 	goto out;
-@@ -1293,12 +1278,6 @@ static void if_sdio_remove(struct sdio_func *func)
- 		kfree(packet);
- 	}
- 
--	if (card->helper_allocated)
--		kfree(card->helper);
--	if (card->firmware_allocated)
--		kfree(card->firmware);
--	kfree(card);
--
- 	lbs_deb_leave(LBS_DEB_SDIO);
- }
- 
-diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c
-index 7a5df4f..9604a1c 100644
---- a/drivers/net/wireless/libertas/if_spi.c
-+++ b/drivers/net/wireless/libertas/if_spi.c
-@@ -1064,9 +1064,8 @@ static int if_spi_init_card(struct if_spi_card *card)
- 			goto out;
- 		}
- 
--		err = lbs_get_firmware(&card->spi->dev, NULL, NULL,
--					card->card_id, &fw_table[0], &helper,
--					&mainfw);
-+		err = lbs_get_firmware(&card->spi->dev, card->card_id,
-+					&fw_table[0], &helper, &mainfw);
- 		if (err) {
- 			netdev_err(priv->dev, "failed to find firmware (%d)\n",
- 				   err);
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index ce4938d..f29471b 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -29,9 +29,6 @@
- 
- #define MESSAGE_HEADER_LEN	4
- 
--static char *lbs_fw_name = NULL;
--module_param_named(fw_name, lbs_fw_name, charp, 0644);
--
- MODULE_FIRMWARE("libertas/usb8388_v9.bin");
- MODULE_FIRMWARE("libertas/usb8388_v5.bin");
- MODULE_FIRMWARE("libertas/usb8388.bin");
-@@ -55,10 +52,7 @@ MODULE_DEVICE_TABLE(usb, if_usb_table);
- 
- static void if_usb_receive(struct urb *urb);
- static void if_usb_receive_fwload(struct urb *urb);
--static int __if_usb_prog_firmware(struct if_usb_card *cardp,
--					const char *fwname, int cmd);
--static int if_usb_prog_firmware(struct if_usb_card *cardp,
--					const char *fwname, int cmd);
-+static int if_usb_prog_firmware(struct if_usb_card *cardp);
- static int if_usb_host_to_card(struct lbs_private *priv, uint8_t type,
- 			       uint8_t *payload, uint16_t nb);
- static int usb_tx_block(struct if_usb_card *cardp, uint8_t *payload,
-@@ -67,69 +61,6 @@ static void if_usb_free(struct if_usb_card *cardp);
- static int if_usb_submit_rx_urb(struct if_usb_card *cardp);
- static int if_usb_reset_device(struct if_usb_card *cardp);
- 
--/* sysfs hooks */
--
--/*
-- *  Set function to write firmware to device's persistent memory
-- */
--static ssize_t if_usb_firmware_set(struct device *dev,
--		struct device_attribute *attr, const char *buf, size_t count)
--{
--	struct lbs_private *priv = to_net_dev(dev)->ml_priv;
--	struct if_usb_card *cardp = priv->card;
--	int ret;
--
--	BUG_ON(buf == NULL);
--
--	ret = if_usb_prog_firmware(cardp, buf, BOOT_CMD_UPDATE_FW);
--	if (ret == 0)
--		return count;
--
--	return ret;
--}
--
--/*
-- * lbs_flash_fw attribute to be exported per ethX interface through sysfs
-- * (/sys/class/net/ethX/lbs_flash_fw).  Use this like so to write firmware to
-- * the device's persistent memory:
-- * echo usb8388-5.126.0.p5.bin > /sys/class/net/ethX/lbs_flash_fw
-- */
--static DEVICE_ATTR(lbs_flash_fw, 0200, NULL, if_usb_firmware_set);
--
--/**
-- * if_usb_boot2_set - write firmware to device's persistent memory
-- *
-- * @dev: target device
-- * @attr: device attributes
-- * @buf: firmware buffer to write
-- * @count: number of bytes to write
-- *
-- * returns: number of bytes written or negative error code
-- */
--static ssize_t if_usb_boot2_set(struct device *dev,
--		struct device_attribute *attr, const char *buf, size_t count)
--{
--	struct lbs_private *priv = to_net_dev(dev)->ml_priv;
--	struct if_usb_card *cardp = priv->card;
--	int ret;
--
--	BUG_ON(buf == NULL);
--
--	ret = if_usb_prog_firmware(cardp, buf, BOOT_CMD_UPDATE_BOOT2);
--	if (ret == 0)
--		return count;
--
--	return ret;
--}
--
--/*
-- * lbs_flash_boot2 attribute to be exported per ethX interface through sysfs
-- * (/sys/class/net/ethX/lbs_flash_boot2).  Use this like so to write firmware
-- * to the device's persistent memory:
-- * echo usb8388-5.126.0.p5.bin > /sys/class/net/ethX/lbs_flash_boot2
-- */
--static DEVICE_ATTR(lbs_flash_boot2, 0200, NULL, if_usb_boot2_set);
--
- /**
-  * if_usb_write_bulk_callback - callback function to handle the status
-  * of the URB
-@@ -314,13 +245,10 @@ static int if_usb_probe(struct usb_interface *intf,
- 	}
- 
- 	/* Upload firmware */
--	kparam_block_sysfs_write(fw_name);
--	if (__if_usb_prog_firmware(cardp, lbs_fw_name, BOOT_CMD_FW_BY_USB)) {
--		kparam_unblock_sysfs_write(fw_name);
-+	if (if_usb_prog_firmware(cardp)) {
- 		lbs_deb_usbd(&udev->dev, "FW upload failed\n");
- 		goto err_prog_firmware;
- 	}
--	kparam_unblock_sysfs_write(fw_name);
- 
- 	if (!(priv = lbs_add_card(cardp, &intf->dev)))
- 		goto err_prog_firmware;
-@@ -349,14 +277,6 @@ static int if_usb_probe(struct usb_interface *intf,
- 	usb_get_dev(udev);
- 	usb_set_intfdata(intf, cardp);
- 
--	if (device_create_file(&priv->dev->dev, &dev_attr_lbs_flash_fw))
--		netdev_err(priv->dev,
--			   "cannot register lbs_flash_fw attribute\n");
--
--	if (device_create_file(&priv->dev->dev, &dev_attr_lbs_flash_boot2))
--		netdev_err(priv->dev,
--			   "cannot register lbs_flash_boot2 attribute\n");
--
- 	/*
- 	 * EHS_REMOVE_WAKEUP is not supported on all versions of the firmware.
- 	 */
-@@ -389,9 +309,6 @@ static void if_usb_disconnect(struct usb_interface *intf)
- 
- 	lbs_deb_enter(LBS_DEB_MAIN);
- 
--	device_remove_file(&priv->dev->dev, &dev_attr_lbs_flash_boot2);
--	device_remove_file(&priv->dev->dev, &dev_attr_lbs_flash_fw);
--
- 	cardp->surprise_removed = 1;
- 
- 	if (priv) {
-@@ -912,58 +829,12 @@ static int check_fwfile_format(const uint8_t *data, uint32_t totlen)
- 	return ret;
- }
- 
--
--/**
--*  if_usb_prog_firmware - programs the firmware subject to cmd
--*
--*  @cardp:	the if_usb_card descriptor
--*  @fwname:	firmware or boot2 image file name
--*  @cmd:	either BOOT_CMD_FW_BY_USB, BOOT_CMD_UPDATE_FW,
--*		or BOOT_CMD_UPDATE_BOOT2.
--*  returns:	0 or error code
--*/
--static int if_usb_prog_firmware(struct if_usb_card *cardp,
--				const char *fwname, int cmd)
--{
--	struct lbs_private *priv = cardp->priv;
--	unsigned long flags, caps;
--	int ret;
--
--	caps = priv->fwcapinfo;
--	if (((cmd == BOOT_CMD_UPDATE_FW) && !(caps & FW_CAPINFO_FIRMWARE_UPGRADE)) ||
--	    ((cmd == BOOT_CMD_UPDATE_BOOT2) && !(caps & FW_CAPINFO_BOOT2_UPGRADE)))
--		return -EOPNOTSUPP;
--
--	/* Ensure main thread is idle. */
--	spin_lock_irqsave(&priv->driver_lock, flags);
--	while (priv->cur_cmd != NULL || priv->dnld_sent != DNLD_RES_RECEIVED) {
--		spin_unlock_irqrestore(&priv->driver_lock, flags);
--		if (wait_event_interruptible(priv->waitq,
--				(priv->cur_cmd == NULL &&
--				priv->dnld_sent == DNLD_RES_RECEIVED))) {
--			return -ERESTARTSYS;
--		}
--		spin_lock_irqsave(&priv->driver_lock, flags);
--	}
--	priv->dnld_sent = DNLD_BOOTCMD_SENT;
--	spin_unlock_irqrestore(&priv->driver_lock, flags);
--
--	ret = __if_usb_prog_firmware(cardp, fwname, cmd);
--
--	spin_lock_irqsave(&priv->driver_lock, flags);
--	priv->dnld_sent = DNLD_RES_RECEIVED;
--	spin_unlock_irqrestore(&priv->driver_lock, flags);
--
--	wake_up(&priv->waitq);
--
--	return ret;
--}
--
- /* table of firmware file names */
- static const struct {
- 	u32 model;
- 	const char *fwname;
- } fw_table[] = {
-+	{ MODEL_8388, "libertas/usb8388_olpc.bin" },
- 	{ MODEL_8388, "libertas/usb8388_v9.bin" },
- 	{ MODEL_8388, "libertas/usb8388_v5.bin" },
- 	{ MODEL_8388, "libertas/usb8388.bin" },
-@@ -971,35 +842,10 @@ static const struct {
- 	{ MODEL_8682, "libertas/usb8682.bin" }
- };
- 
--#ifdef CONFIG_OLPC
--
--static int try_olpc_fw(struct if_usb_card *cardp)
--{
--	int retval = -ENOENT;
--
--	/* try the OLPC firmware first; fall back to fw_table list */
--	if (machine_is_olpc() && cardp->model == MODEL_8388)
--		retval = request_firmware(&cardp->fw,
--				"libertas/usb8388_olpc.bin", &cardp->udev->dev);
--	return retval;
--}
--
--#else
--static int try_olpc_fw(struct if_usb_card *cardp) { return -ENOENT; }
--#endif /* !CONFIG_OLPC */
--
--static int get_fw(struct if_usb_card *cardp, const char *fwname)
-+static int get_fw(struct if_usb_card *cardp)
- {
- 	int i;
- 
--	/* Try user-specified firmware first */
--	if (fwname)
--		return request_firmware(&cardp->fw, fwname, &cardp->udev->dev);
--
--	/* Handle OLPC firmware */
--	if (try_olpc_fw(cardp) == 0)
--		return 0;
--
- 	/* Otherwise search for firmware to use */
- 	for (i = 0; i < ARRAY_SIZE(fw_table); i++) {
- 		if (fw_table[i].model != cardp->model)
-@@ -1012,8 +858,7 @@ static int get_fw(struct if_usb_card *cardp, const char *fwname)
- 	return -ENOENT;
- }
- 
--static int __if_usb_prog_firmware(struct if_usb_card *cardp,
--					const char *fwname, int cmd)
-+static int if_usb_prog_firmware(struct if_usb_card *cardp)
- {
- 	int i = 0;
- 	static int reset_count = 10;
-@@ -1021,7 +866,7 @@ static int __if_usb_prog_firmware(struct if_usb_card *cardp,
- 
- 	lbs_deb_enter(LBS_DEB_USB);
- 
--	ret = get_fw(cardp, fwname);
-+	ret = get_fw(cardp);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto done;
-@@ -1053,7 +898,7 @@ restart:
- 	do {
- 		int j = 0;
- 		i++;
--		if_usb_issue_boot_command(cardp, cmd);
-+		if_usb_issue_boot_command(cardp, BOOT_CMD_FW_BY_USB);
- 		/* wait for command response */
- 		do {
- 			j++;
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index 3b81b70..fa09585 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1177,107 +1177,6 @@ void lbs_notify_command_response(struct lbs_private *priv, u8 resp_idx)
- }
- EXPORT_SYMBOL_GPL(lbs_notify_command_response);
- 
--/**
-- *  lbs_get_firmware - Retrieves two-stage firmware
-- *
-- *  @dev:     	A pointer to &device structure
-- *  @user_helper: User-defined helper firmware file
-- *  @user_mainfw: User-defined main firmware file
-- *  @card_model: Bus-specific card model ID used to filter firmware table
-- *		elements
-- *  @fw_table:	Table of firmware file names and device model numbers
-- *		terminated by an entry with a NULL helper name
-- *  @helper:	On success, the helper firmware; caller must free
-- *  @mainfw:	On success, the main firmware; caller must free
-- *
-- *  returns:		0 on success, non-zero on failure
-- */
--int lbs_get_firmware(struct device *dev, const char *user_helper,
--			const char *user_mainfw, u32 card_model,
--			const struct lbs_fw_table *fw_table,
--			const struct firmware **helper,
--			const struct firmware **mainfw)
--{
--	const struct lbs_fw_table *iter;
--	int ret;
--
--	BUG_ON(helper == NULL);
--	BUG_ON(mainfw == NULL);
--
--	/* Try user-specified firmware first */
--	if (user_helper) {
--		ret = request_firmware(helper, user_helper, dev);
--		if (ret) {
--			dev_err(dev, "couldn't find helper firmware %s\n",
--				user_helper);
--			goto fail;
--		}
--	}
--	if (user_mainfw) {
--		ret = request_firmware(mainfw, user_mainfw, dev);
--		if (ret) {
--			dev_err(dev, "couldn't find main firmware %s\n",
--				user_mainfw);
--			goto fail;
--		}
--	}
--
--	if (*helper && *mainfw)
--		return 0;
--
--	/* Otherwise search for firmware to use.  If neither the helper or
--	 * the main firmware were specified by the user, then we need to
--	 * make sure that found helper & main are from the same entry in
--	 * fw_table.
--	 */
--	iter = fw_table;
--	while (iter && iter->helper) {
--		if (iter->model != card_model)
--			goto next;
--
--		if (*helper == NULL) {
--			ret = request_firmware(helper, iter->helper, dev);
--			if (ret)
--				goto next;
--
--			/* If the device has one-stage firmware (ie cf8305) and
--			 * we've got it then we don't need to bother with the
--			 * main firmware.
--			 */
--			if (iter->fwname == NULL)
--				return 0;
--		}
--
--		if (*mainfw == NULL) {
--			ret = request_firmware(mainfw, iter->fwname, dev);
--			if (ret && !user_helper) {
--				/* Clear the helper if it wasn't user-specified
--				 * and the main firmware load failed, to ensure
--				 * we don't have mismatched firmware pairs.
--				 */
--				release_firmware(*helper);
--				*helper = NULL;
--			}
--		}
--
--		if (*helper && *mainfw)
--			return 0;
--
--  next:
--		iter++;
--	}
--
--  fail:
--	/* Failed */
--	release_firmware(*helper);
--	*helper = NULL;
--	release_firmware(*mainfw);
--	*mainfw = NULL;
--
--	return -ENOENT;
--}
--EXPORT_SYMBOL_GPL(lbs_get_firmware);
--
- static int __init lbs_init_module(void)
- {
- 	lbs_deb_enter(LBS_DEB_MAIN);
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0011-libertas-harden-up-exit-paths.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0011-libertas-harden-up-exit-paths.patch
deleted file mode 100644
index 4891dea..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0011-libertas-harden-up-exit-paths.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0beecac8abb3af890d470df541142d55343382d6 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:02 +0100
-Subject: [PATCH 11/17] libertas: harden-up exit paths
-
-These simple sanity check avoids extra complexity in error paths when
-moving to asynchronous firmware loading (which means the device may fail to
-init some time after its creation).
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/main.c |    9 ++++++++-
- 1 files changed, 8 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index fa09585..7eaf992 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1033,7 +1033,9 @@ void lbs_remove_card(struct lbs_private *priv)
- 	lbs_deb_enter(LBS_DEB_MAIN);
- 
- 	lbs_remove_mesh(priv);
--	lbs_scan_deinit(priv);
-+
-+	if (priv->wiphy_registered)
-+		lbs_scan_deinit(priv);
- 
- 	/* worker thread destruction blocks on the in-flight command which
- 	 * should have been cleared already in lbs_stop_card().
-@@ -1128,6 +1130,11 @@ void lbs_stop_card(struct lbs_private *priv)
- 		goto out;
- 	dev = priv->dev;
- 
-+	/* If the netdev isn't registered, it means that lbs_start_card() was
-+	 * never called so we have nothing to do here. */
-+	if (dev->reg_state != NETREG_REGISTERED)
-+		goto out;
-+
- 	netif_stop_queue(dev);
- 	netif_carrier_off(dev);
- 
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0012-libertas-add-asynchronous-firmware-loading-capabilit.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0012-libertas-add-asynchronous-firmware-loading-capabilit.patch
deleted file mode 100644
index 58963b3..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0012-libertas-add-asynchronous-firmware-loading-capabilit.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-From 534111c78c59a8db89c570fd07489243dc366a05 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:26 +0100
-Subject: [PATCH 12/17] libertas: add asynchronous firmware loading capability
-
-As described at
-http://article.gmane.org/gmane.linux.kernel.wireless.general/86084
-libertas is taking a long time to load because it loads firmware
-during module loading.
-
-Add a new API for interface drivers to load their firmware
-asynchronously. The same semantics of the firmware table are followed
-like before.
-
-Interface drivers will be converted in follow-up patches, then we can
-remove the old, synchronous firmware loading function.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/decl.h     |    8 ++
- drivers/net/wireless/libertas/dev.h      |   10 ++
- drivers/net/wireless/libertas/firmware.c |  143 ++++++++++++++++++++++++++++++
- drivers/net/wireless/libertas/main.c     |    3 +
- 4 files changed, 164 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/decl.h b/drivers/net/wireless/libertas/decl.h
-index 2fb2e31..84a3aa7 100644
---- a/drivers/net/wireless/libertas/decl.h
-+++ b/drivers/net/wireless/libertas/decl.h
-@@ -19,6 +19,10 @@ struct lbs_fw_table {
- };
- 
- struct lbs_private;
-+typedef void (*lbs_fw_cb)(struct lbs_private *priv, int ret,
-+		const struct firmware *helper, const struct firmware *mainfw);
-+
-+struct lbs_private;
- struct sk_buff;
- struct net_device;
- struct cmd_ds_command;
-@@ -70,5 +74,9 @@ int lbs_get_firmware(struct device *dev, u32 card_model,
- 			const struct lbs_fw_table *fw_table,
- 			const struct firmware **helper,
- 			const struct firmware **mainfw);
-+int lbs_get_firmware_async(struct lbs_private *priv, struct device *device,
-+			   u32 card_model, const struct lbs_fw_table *fw_table,
-+			   lbs_fw_cb callback);
-+void lbs_wait_for_firmware_load(struct lbs_private *priv);
- 
- #endif
-diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h
-index f3fd447..6720054 100644
---- a/drivers/net/wireless/libertas/dev.h
-+++ b/drivers/net/wireless/libertas/dev.h
-@@ -7,6 +7,7 @@
- #define _LBS_DEV_H_
- 
- #include "defs.h"
-+#include "decl.h"
- #include "host.h"
- 
- #include <linux/kfifo.h>
-@@ -180,6 +181,15 @@ struct lbs_private {
- 	wait_queue_head_t scan_q;
- 	/* Whether the scan was initiated internally and not by cfg80211 */
- 	bool internal_scan;
-+
-+	/* Firmware load */
-+	u32 fw_model;
-+	wait_queue_head_t fw_waitq;
-+	struct device *fw_device;
-+	const struct firmware *helper_fw;
-+	const struct lbs_fw_table *fw_table;
-+	const struct lbs_fw_table *fw_iter;
-+	lbs_fw_cb fw_callback;
- };
- 
- extern struct cmd_confirm_sleep confirm_sleep;
-diff --git a/drivers/net/wireless/libertas/firmware.c b/drivers/net/wireless/libertas/firmware.c
-index 0c8c845..cd23f1a 100644
---- a/drivers/net/wireless/libertas/firmware.c
-+++ b/drivers/net/wireless/libertas/firmware.c
-@@ -3,10 +3,151 @@
-  */
- 
- #include <linux/firmware.h>
-+#include <linux/firmware.h>
- #include <linux/module.h>
- 
-+#include "dev.h"
- #include "decl.h"
- 
-+static void load_next_firmware_from_table(struct lbs_private *private);
-+
-+static void lbs_fw_loaded(struct lbs_private *priv, int ret,
-+	const struct firmware *helper, const struct firmware *mainfw)
-+{
-+	unsigned long flags;
-+
-+	lbs_deb_fw("firmware load complete, code %d\n", ret);
-+
-+	/* User must free helper/mainfw */
-+	priv->fw_callback(priv, ret, helper, mainfw);
-+
-+	spin_lock_irqsave(&priv->driver_lock, flags);
-+	priv->fw_callback = NULL;
-+	wake_up(&priv->fw_waitq);
-+	spin_unlock_irqrestore(&priv->driver_lock, flags);
-+}
-+
-+static void do_load_firmware(struct lbs_private *priv, const char *name,
-+	void (*cb)(const struct firmware *fw, void *context))
-+{
-+	int ret;
-+
-+	lbs_deb_fw("Requesting %s\n", name);
-+	ret = request_firmware_nowait(THIS_MODULE, true, name,
-+			priv->fw_device, GFP_KERNEL, priv, cb);
-+	if (ret) {
-+		lbs_deb_fw("request_firmware_nowait error %d\n", ret);
-+		lbs_fw_loaded(priv, ret, NULL, NULL);
-+	}
-+}
-+
-+static void main_firmware_cb(const struct firmware *firmware, void *context)
-+{
-+	struct lbs_private *priv = context;
-+
-+	if (!firmware) {
-+		/* Failed to find firmware: try next table entry */
-+		load_next_firmware_from_table(priv);
-+		return;
-+	}
-+
-+	/* Firmware found! */
-+	lbs_fw_loaded(priv, 0, priv->helper_fw, firmware);
-+}
-+
-+static void helper_firmware_cb(const struct firmware *firmware, void *context)
-+{
-+	struct lbs_private *priv = context;
-+
-+	if (!firmware) {
-+		/* Failed to find firmware: try next table entry */
-+		load_next_firmware_from_table(priv);
-+		return;
-+	}
-+
-+	/* Firmware found! */
-+	if (priv->fw_iter->fwname) {
-+		priv->helper_fw = firmware;
-+		do_load_firmware(priv, priv->fw_iter->fwname, main_firmware_cb);
-+	} else {
-+		/* No main firmware needed for this helper --> success! */
-+		lbs_fw_loaded(priv, 0, firmware, NULL);
-+	}
-+}
-+
-+static void load_next_firmware_from_table(struct lbs_private *priv)
-+{
-+	const struct lbs_fw_table *iter;
-+
-+	if (!priv->fw_iter)
-+		iter = priv->fw_table;
-+	else
-+		iter = ++priv->fw_iter;
-+
-+	if (priv->helper_fw) {
-+		release_firmware(priv->helper_fw);
-+		priv->helper_fw = NULL;
-+	}
-+
-+next:
-+	if (!iter->helper) {
-+		/* End of table hit. */
-+		lbs_fw_loaded(priv, -ENOENT, NULL, NULL);
-+		return;
-+	}
-+
-+	if (iter->model != priv->fw_model) {
-+		iter++;
-+		goto next;
-+	}
-+
-+	priv->fw_iter = iter;
-+	do_load_firmware(priv, iter->helper, helper_firmware_cb);
-+}
-+
-+void lbs_wait_for_firmware_load(struct lbs_private *priv)
-+{
-+	wait_event(priv->fw_waitq, priv->fw_callback == NULL);
-+}
-+
-+/**
-+ *  lbs_get_firmware_async - Retrieves firmware asynchronously. Can load
-+ *  either a helper firmware and a main firmware (2-stage), or just the helper.
-+ *
-+ *  @priv:      Pointer to lbs_private instance
-+ *  @dev:     	A pointer to &device structure
-+ *  @card_model: Bus-specific card model ID used to filter firmware table
-+ *		elements
-+ *  @fw_table:	Table of firmware file names and device model numbers
-+ *		terminated by an entry with a NULL helper name
-+ *	@callback: User callback to invoke when firmware load succeeds or fails.
-+ */
-+int lbs_get_firmware_async(struct lbs_private *priv, struct device *device,
-+			    u32 card_model, const struct lbs_fw_table *fw_table,
-+			    lbs_fw_cb callback)
-+{
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&priv->driver_lock, flags);
-+	if (priv->fw_callback) {
-+		lbs_deb_fw("firmware load already in progress\n");
-+		spin_unlock_irqrestore(&priv->driver_lock, flags);
-+		return -EBUSY;
-+	}
-+
-+	priv->fw_device = device;
-+	priv->fw_callback = callback;
-+	priv->fw_table = fw_table;
-+	priv->fw_iter = NULL;
-+	priv->fw_model = card_model;
-+	spin_unlock_irqrestore(&priv->driver_lock, flags);
-+
-+	lbs_deb_fw("Starting async firmware load\n");
-+	load_next_firmware_from_table(priv);
-+	return 0;
-+}
-+EXPORT_SYMBOL_GPL(lbs_get_firmware_async);
-+
- /**
-  *  lbs_get_firmware - Retrieves two-stage firmware
-  *
-@@ -18,6 +159,8 @@
-  *  @helper:	On success, the helper firmware; caller must free
-  *  @mainfw:	On success, the main firmware; caller must free
-  *
-+ * Deprecated: use lbs_get_firmware_async() instead.
-+ *
-  *  returns:		0 on success, non-zero on failure
-  */
- int lbs_get_firmware(struct device *dev, u32 card_model,
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index 7eaf992..e96ee0a 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -878,6 +878,7 @@ static int lbs_init_adapter(struct lbs_private *priv)
- 	priv->is_host_sleep_configured = 0;
- 	priv->is_host_sleep_activated = 0;
- 	init_waitqueue_head(&priv->host_sleep_q);
-+	init_waitqueue_head(&priv->fw_waitq);
- 	mutex_init(&priv->lock);
- 
- 	setup_timer(&priv->command_timer, lbs_cmd_timeout_handler,
-@@ -1037,6 +1038,8 @@ void lbs_remove_card(struct lbs_private *priv)
- 	if (priv->wiphy_registered)
- 		lbs_scan_deinit(priv);
- 
-+	lbs_wait_for_firmware_load(priv);
-+
- 	/* worker thread destruction blocks on the in-flight command which
- 	 * should have been cleared already in lbs_stop_card().
- 	 */
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0013-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0013-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch
deleted file mode 100644
index 545ea88..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0013-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From 66d647efe5e845c77f745478480c5e96218b7f3d Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:43 +0100
-Subject: [PATCH 13/17] libertas SDIO: convert to asynchronous firmware
- loading
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_sdio.c |  206 ++++++++++++++++++-------------
- 1 files changed, 121 insertions(+), 85 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
-index 6590feb..76caeba 100644
---- a/drivers/net/wireless/libertas/if_sdio.c
-+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -117,6 +117,8 @@ struct if_sdio_card {
- 	int			model;
- 	unsigned long		ioport;
- 	unsigned int		scratch_reg;
-+	bool			started;
-+	wait_queue_head_t	pwron_waitq;
- 
- 	u8			buffer[65536] __attribute__((aligned(4)));
- 
-@@ -129,6 +131,9 @@ struct if_sdio_card {
- 	u8			rx_unit;
- };
- 
-+static void if_sdio_finish_power_on(struct if_sdio_card *card);
-+static int if_sdio_power_off(struct if_sdio_card *card);
-+
- /********************************************************************/
- /* I/O                                                              */
- /********************************************************************/
-@@ -669,12 +674,39 @@ out:
- 	return ret;
- }
- 
-+static void if_sdio_do_prog_firmware(struct lbs_private *priv, int ret,
-+				     const struct firmware *helper,
-+				     const struct firmware *mainfw)
-+{
-+	struct if_sdio_card *card = priv->card;
-+
-+	if (ret) {
-+		pr_err("failed to find firmware (%d)\n", ret);
-+		return;
-+	}
-+
-+	ret = if_sdio_prog_helper(card, helper);
-+	if (ret)
-+		goto out;
-+
-+	lbs_deb_sdio("Helper firmware loaded\n");
-+
-+	ret = if_sdio_prog_real(card, mainfw);
-+	if (ret)
-+		goto out;
-+
-+	lbs_deb_sdio("Firmware loaded\n");
-+	if_sdio_finish_power_on(card);
-+
-+out:
-+	release_firmware(helper);
-+	release_firmware(mainfw);
-+}
-+
- static int if_sdio_prog_firmware(struct if_sdio_card *card)
- {
- 	int ret;
- 	u16 scratch;
--	const struct firmware *helper = NULL;
--	const struct firmware *mainfw = NULL;
- 
- 	lbs_deb_enter(LBS_DEB_SDIO);
- 
-@@ -708,41 +740,18 @@ static int if_sdio_prog_firmware(struct if_sdio_card *card)
- 	 */
- 	if (scratch == IF_SDIO_FIRMWARE_OK) {
- 		lbs_deb_sdio("firmware already loaded\n");
--		goto success;
-+		if_sdio_finish_power_on(card);
-+		return 0;
- 	} else if ((card->model == MODEL_8686) && (scratch & 0x7fff)) {
- 		lbs_deb_sdio("firmware may be running\n");
--		goto success;
--	}
--
--	ret = lbs_get_firmware(&card->func->dev, card->model, &fw_table[0],
--				&helper, &mainfw);
--	if (ret) {
--		pr_err("failed to find firmware (%d)\n", ret);
--		goto out;
-+		if_sdio_finish_power_on(card);
-+		return 0;
- 	}
- 
--	ret = if_sdio_prog_helper(card, helper);
--	if (ret)
--		goto out;
--
--	lbs_deb_sdio("Helper firmware loaded\n");
--
--	ret = if_sdio_prog_real(card, mainfw);
--	if (ret)
--		goto out;
--
--	lbs_deb_sdio("Firmware loaded\n");
--
--success:
--	sdio_claim_host(card->func);
--	sdio_set_block_size(card->func, IF_SDIO_BLOCK_SIZE);
--	sdio_release_host(card->func);
--	ret = 0;
-+	ret = lbs_get_firmware_async(card->priv, &card->func->dev, card->model,
-+				     fw_table, if_sdio_do_prog_firmware);
- 
- out:
--	release_firmware(helper);
--	release_firmware(mainfw);
--
- 	lbs_deb_leave_args(LBS_DEB_SDIO, "ret %d", ret);
- 	return ret;
- }
-@@ -751,55 +760,15 @@ out:
- /* Power management                                                 */
- /********************************************************************/
- 
--static int if_sdio_power_on(struct if_sdio_card *card)
-+/* Finish power on sequence (after firmware is loaded) */
-+static void if_sdio_finish_power_on(struct if_sdio_card *card)
- {
- 	struct sdio_func *func = card->func;
- 	struct lbs_private *priv = card->priv;
--	struct mmc_host *host = func->card->host;
- 	int ret;
- 
- 	sdio_claim_host(func);
--
--	ret = sdio_enable_func(func);
--	if (ret)
--		goto release;
--
--	/* For 1-bit transfers to the 8686 model, we need to enable the
--	 * interrupt flag in the CCCR register. Set the MMC_QUIRK_LENIENT_FN0
--	 * bit to allow access to non-vendor registers. */
--	if ((card->model == MODEL_8686) &&
--	    (host->caps & MMC_CAP_SDIO_IRQ) &&
--	    (host->ios.bus_width == MMC_BUS_WIDTH_1)) {
--		u8 reg;
--
--		func->card->quirks |= MMC_QUIRK_LENIENT_FN0;
--		reg = sdio_f0_readb(func, SDIO_CCCR_IF, &ret);
--		if (ret)
--			goto disable;
--
--		reg |= SDIO_BUS_ECSI;
--		sdio_f0_writeb(func, reg, SDIO_CCCR_IF, &ret);
--		if (ret)
--			goto disable;
--	}
--
--	card->ioport = sdio_readb(func, IF_SDIO_IOPORT, &ret);
--	if (ret)
--		goto disable;
--
--	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 1, &ret) << 8;
--	if (ret)
--		goto disable;
--
--	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 2, &ret) << 16;
--	if (ret)
--		goto disable;
--
--	sdio_release_host(func);
--	ret = if_sdio_prog_firmware(card);
--	sdio_claim_host(func);
--	if (ret)
--		goto disable;
-+	sdio_set_block_size(card->func, IF_SDIO_BLOCK_SIZE);
- 
- 	/*
- 	 * Get rx_unit if the chip is SD8688 or newer.
-@@ -824,7 +793,7 @@ static int if_sdio_power_on(struct if_sdio_card *card)
- 	 */
- 	ret = sdio_claim_irq(func, if_sdio_interrupt);
- 	if (ret)
--		goto disable;
-+		goto release;
- 
- 	/*
- 	 * Enable interrupts now that everything is set up
-@@ -850,11 +819,79 @@ static int if_sdio_power_on(struct if_sdio_card *card)
- 	}
- 
- 	priv->fw_ready = 1;
-+	wake_up(&card->pwron_waitq);
- 
--	return 0;
-+	if (!card->started) {
-+		ret = lbs_start_card(priv);
-+		if_sdio_power_off(card);
-+		if (ret == 0) {
-+			card->started = true;
-+			/* Tell PM core that we don't need the card to be
-+			 * powered now */
-+			pm_runtime_put_noidle(&func->dev);
-+		}
-+	}
-+
-+	return;
- 
- release_irq:
- 	sdio_release_irq(func);
-+release:
-+	sdio_release_host(func);
-+}
-+
-+static int if_sdio_power_on(struct if_sdio_card *card)
-+{
-+	struct sdio_func *func = card->func;
-+	struct mmc_host *host = func->card->host;
-+	int ret;
-+
-+	sdio_claim_host(func);
-+
-+	ret = sdio_enable_func(func);
-+	if (ret)
-+		goto release;
-+
-+	/* For 1-bit transfers to the 8686 model, we need to enable the
-+	 * interrupt flag in the CCCR register. Set the MMC_QUIRK_LENIENT_FN0
-+	 * bit to allow access to non-vendor registers. */
-+	if ((card->model == MODEL_8686) &&
-+	    (host->caps & MMC_CAP_SDIO_IRQ) &&
-+	    (host->ios.bus_width == MMC_BUS_WIDTH_1)) {
-+		u8 reg;
-+
-+		func->card->quirks |= MMC_QUIRK_LENIENT_FN0;
-+		reg = sdio_f0_readb(func, SDIO_CCCR_IF, &ret);
-+		if (ret)
-+			goto disable;
-+
-+		reg |= SDIO_BUS_ECSI;
-+		sdio_f0_writeb(func, reg, SDIO_CCCR_IF, &ret);
-+		if (ret)
-+			goto disable;
-+	}
-+
-+	card->ioport = sdio_readb(func, IF_SDIO_IOPORT, &ret);
-+	if (ret)
-+		goto disable;
-+
-+	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 1, &ret) << 8;
-+	if (ret)
-+		goto disable;
-+
-+	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 2, &ret) << 16;
-+	if (ret)
-+		goto disable;
-+
-+	sdio_release_host(func);
-+	ret = if_sdio_prog_firmware(card);
-+	if (ret) {
-+		sdio_disable_func(func);
-+		return ret;
-+	}
-+
-+	return 0;
-+
- disable:
- 	sdio_disable_func(func);
- release:
-@@ -1061,11 +1098,17 @@ static int if_sdio_power_save(struct lbs_private *priv)
- static int if_sdio_power_restore(struct lbs_private *priv)
- {
- 	struct if_sdio_card *card = priv->card;
-+	int r;
- 
- 	/* Make sure the card will not be powered off by runtime PM */
- 	pm_runtime_get_sync(&card->func->dev);
- 
--	return if_sdio_power_on(card);
-+	r = if_sdio_power_on(card);
-+	if (r)
-+		return r;
-+
-+	wait_event(card->pwron_waitq, priv->fw_ready);
-+	return 0;
- }
- 
- 
-@@ -1166,6 +1209,7 @@ static int if_sdio_probe(struct sdio_func *func,
- 	spin_lock_init(&card->lock);
- 	card->workqueue = create_workqueue("libertas_sdio");
- 	INIT_WORK(&card->packet_worker, if_sdio_host_to_card_worker);
-+	init_waitqueue_head(&card->pwron_waitq);
- 
- 	/* Check if we support this card */
- 	for (i = 0; i < ARRAY_SIZE(fw_table); i++) {
-@@ -1207,14 +1251,6 @@ static int if_sdio_probe(struct sdio_func *func,
- 	if (ret)
- 		goto err_activate_card;
- 
--	ret = lbs_start_card(priv);
--	if_sdio_power_off(card);
--	if (ret)
--		goto err_activate_card;
--
--	/* Tell PM core that we don't need the card to be powered now */
--	pm_runtime_put_noidle(&func->dev);
--
- out:
- 	lbs_deb_leave_args(LBS_DEB_SDIO, "ret %d", ret);
- 
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0014-libertas-USB-convert-to-asynchronous-firmware-loadin.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0014-libertas-USB-convert-to-asynchronous-firmware-loadin.patch
deleted file mode 100644
index 9952cd3..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0014-libertas-USB-convert-to-asynchronous-firmware-loadin.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-From ce84bb69f50e6f6cfeabc9b965365290f4184417 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:55 +0100
-Subject: [PATCH 14/17] libertas USB: convert to asynchronous firmware loading
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_usb.c |  102 +++++++++++++------------------
- 1 files changed, 43 insertions(+), 59 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index f29471b..75403e6 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -41,6 +41,16 @@ enum {
- 	MODEL_8682 = 0x2
- };
- 
-+/* table of firmware file names */
-+static const struct lbs_fw_table fw_table[] = {
-+	{ MODEL_8388, "libertas/usb8388_olpc.bin", NULL },
-+	{ MODEL_8388, "libertas/usb8388_v9.bin", NULL },
-+	{ MODEL_8388, "libertas/usb8388_v5.bin", NULL },
-+	{ MODEL_8388, "libertas/usb8388.bin", NULL },
-+	{ MODEL_8388, "usb8388.bin", NULL },
-+	{ MODEL_8682, "libertas/usb8682.bin", NULL }
-+};
-+
- static struct usb_device_id if_usb_table[] = {
- 	/* Enter the device signature inside */
- 	{ USB_DEVICE(0x1286, 0x2001), .driver_info = MODEL_8388 },
-@@ -52,7 +62,9 @@ MODULE_DEVICE_TABLE(usb, if_usb_table);
- 
- static void if_usb_receive(struct urb *urb);
- static void if_usb_receive_fwload(struct urb *urb);
--static int if_usb_prog_firmware(struct if_usb_card *cardp);
-+static void if_usb_prog_firmware(struct lbs_private *priv, int ret,
-+				 const struct firmware *fw,
-+				 const struct firmware *unused);
- static int if_usb_host_to_card(struct lbs_private *priv, uint8_t type,
- 			       uint8_t *payload, uint16_t nb);
- static int usb_tx_block(struct if_usb_card *cardp, uint8_t *payload,
-@@ -187,6 +199,7 @@ static int if_usb_probe(struct usb_interface *intf,
- 	struct usb_endpoint_descriptor *endpoint;
- 	struct lbs_private *priv;
- 	struct if_usb_card *cardp;
-+	int r = -ENOMEM;
- 	int i;
- 
- 	udev = interface_to_usbdev(intf);
-@@ -244,17 +257,10 @@ static int if_usb_probe(struct usb_interface *intf,
- 		goto dealloc;
- 	}
- 
--	/* Upload firmware */
--	if (if_usb_prog_firmware(cardp)) {
--		lbs_deb_usbd(&udev->dev, "FW upload failed\n");
--		goto err_prog_firmware;
--	}
--
- 	if (!(priv = lbs_add_card(cardp, &intf->dev)))
--		goto err_prog_firmware;
-+		goto err_add_card;
- 
- 	cardp->priv = priv;
--	cardp->priv->fw_ready = 1;
- 
- 	priv->hw_host_to_card = if_usb_host_to_card;
- 	priv->enter_deep_sleep = NULL;
-@@ -267,34 +273,25 @@ static int if_usb_probe(struct usb_interface *intf,
- 
- 	cardp->boot2_version = udev->descriptor.bcdDevice;
- 
--	if_usb_submit_rx_urb(cardp);
--
--	if (lbs_start_card(priv))
--		goto err_start_card;
--
--	if_usb_setup_firmware(priv);
--
- 	usb_get_dev(udev);
- 	usb_set_intfdata(intf, cardp);
- 
--	/*
--	 * EHS_REMOVE_WAKEUP is not supported on all versions of the firmware.
--	 */
--	priv->wol_criteria = EHS_REMOVE_WAKEUP;
--	if (lbs_host_sleep_cfg(priv, priv->wol_criteria, NULL))
--		priv->ehs_remove_supported = false;
-+	r = lbs_get_firmware_async(priv, &udev->dev, cardp->model,
-+				   fw_table, if_usb_prog_firmware);
-+	if (r)
-+		goto err_get_fw;
- 
- 	return 0;
- 
--err_start_card:
-+err_get_fw:
- 	lbs_remove_card(priv);
--err_prog_firmware:
-+err_add_card:
- 	if_usb_reset_device(cardp);
- dealloc:
- 	if_usb_free(cardp);
- 
- error:
--	return -ENOMEM;
-+	return r;
- }
- 
- /**
-@@ -829,49 +826,22 @@ static int check_fwfile_format(const uint8_t *data, uint32_t totlen)
- 	return ret;
- }
- 
--/* table of firmware file names */
--static const struct {
--	u32 model;
--	const char *fwname;
--} fw_table[] = {
--	{ MODEL_8388, "libertas/usb8388_olpc.bin" },
--	{ MODEL_8388, "libertas/usb8388_v9.bin" },
--	{ MODEL_8388, "libertas/usb8388_v5.bin" },
--	{ MODEL_8388, "libertas/usb8388.bin" },
--	{ MODEL_8388, "usb8388.bin" },
--	{ MODEL_8682, "libertas/usb8682.bin" }
--};
--
--static int get_fw(struct if_usb_card *cardp)
--{
--	int i;
--
--	/* Otherwise search for firmware to use */
--	for (i = 0; i < ARRAY_SIZE(fw_table); i++) {
--		if (fw_table[i].model != cardp->model)
--			continue;
--		if (request_firmware(&cardp->fw, fw_table[i].fwname,
--					&cardp->udev->dev) == 0)
--			return 0;
--	}
--
--	return -ENOENT;
--}
--
--static int if_usb_prog_firmware(struct if_usb_card *cardp)
-+static void if_usb_prog_firmware(struct lbs_private *priv, int ret,
-+				 const struct firmware *fw,
-+				 const struct firmware *unused)
- {
-+	struct if_usb_card *cardp = priv->card;
- 	int i = 0;
- 	static int reset_count = 10;
--	int ret = 0;
- 
- 	lbs_deb_enter(LBS_DEB_USB);
- 
--	ret = get_fw(cardp);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto done;
- 	}
- 
-+	cardp->fw = fw;
- 	if (check_fwfile_format(cardp->fw->data, cardp->fw->size)) {
- 		ret = -EINVAL;
- 		goto release_fw;
-@@ -954,13 +924,27 @@ restart:
- 		goto release_fw;
- 	}
- 
-+	cardp->priv->fw_ready = 1;
-+	if_usb_submit_rx_urb(cardp);
-+
-+	if (lbs_start_card(priv))
-+		goto release_fw;
-+
-+	if_usb_setup_firmware(priv);
-+
-+	/*
-+	 * EHS_REMOVE_WAKEUP is not supported on all versions of the firmware.
-+	 */
-+	priv->wol_criteria = EHS_REMOVE_WAKEUP;
-+	if (lbs_host_sleep_cfg(priv, priv->wol_criteria, NULL))
-+		priv->ehs_remove_supported = false;
-+
-  release_fw:
- 	release_firmware(cardp->fw);
- 	cardp->fw = NULL;
- 
-  done:
--	lbs_deb_leave_args(LBS_DEB_USB, "ret %d", ret);
--	return ret;
-+	lbs_deb_leave(LBS_DEB_USB);
- }
- 
- 
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0015-libertas-CS-convert-to-asynchronous-firmware-loading.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0015-libertas-CS-convert-to-asynchronous-firmware-loading.patch
deleted file mode 100644
index 79aafdc..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0015-libertas-CS-convert-to-asynchronous-firmware-loading.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From 488c3ee77ea0e63c9ae4736b1610aaf39c6527ee Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Wed, 18 Apr 2012 20:09:44 +0100
-Subject: [PATCH 15/17] libertas CS: convert to asynchronous firmware loading
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Tested-by: Dan Williams <dcbw at redhat.com>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_cs.c |   88 ++++++++++++++++++--------------
- 1 files changed, 49 insertions(+), 39 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index cee5052..16beaf3 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -738,6 +738,50 @@ done:
- 	return ret;
- }
- 
-+static void if_cs_prog_firmware(struct lbs_private *priv, int ret,
-+				 const struct firmware *helper,
-+				 const struct firmware *mainfw)
-+{
-+	struct if_cs_card *card = priv->card;
-+
-+	if (ret) {
-+		pr_err("failed to find firmware (%d)\n", ret);
-+		return;
-+	}
-+
-+	/* Load the firmware */
-+	ret = if_cs_prog_helper(card, helper);
-+	if (ret == 0 && (card->model != MODEL_8305))
-+		ret = if_cs_prog_real(card, mainfw);
-+	if (ret)
-+		goto out;
-+
-+	/* Now actually get the IRQ */
-+	ret = request_irq(card->p_dev->irq, if_cs_interrupt,
-+		IRQF_SHARED, DRV_NAME, card);
-+	if (ret) {
-+		pr_err("error in request_irq\n");
-+		goto out;
-+	}
-+
-+	/*
-+	 * Clear any interrupt cause that happened while sending
-+	 * firmware/initializing card
-+	 */
-+	if_cs_write16(card, IF_CS_CARD_INT_CAUSE, IF_CS_BIT_MASK);
-+	if_cs_enable_ints(card);
-+
-+	/* And finally bring the card up */
-+	priv->fw_ready = 1;
-+	if (lbs_start_card(priv) != 0) {
-+		pr_err("could not activate card\n");
-+		free_irq(card->p_dev->irq, card);
-+	}
-+
-+out:
-+	release_firmware(helper);
-+	release_firmware(mainfw);
-+}
- 
- 
- /********************************************************************/
-@@ -809,8 +853,6 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	unsigned int prod_id;
- 	struct lbs_private *priv;
- 	struct if_cs_card *card;
--	const struct firmware *helper = NULL;
--	const struct firmware *mainfw = NULL;
- 
- 	lbs_deb_enter(LBS_DEB_CS);
- 
-@@ -890,20 +932,6 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 		goto out2;
- 	}
- 
--	ret = lbs_get_firmware(&p_dev->dev, card->model, &fw_table[0],
--				&helper, &mainfw);
--	if (ret) {
--		pr_err("failed to find firmware (%d)\n", ret);
--		goto out2;
--	}
--
--	/* Load the firmware early, before calling into libertas.ko */
--	ret = if_cs_prog_helper(card, helper);
--	if (ret == 0 && (card->model != MODEL_8305))
--		ret = if_cs_prog_real(card, mainfw);
--	if (ret)
--		goto out2;
--
- 	/* Make this card known to the libertas driver */
- 	priv = lbs_add_card(card, &p_dev->dev);
- 	if (!priv) {
-@@ -911,37 +939,22 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 		goto out2;
- 	}
- 
--	/* Finish setting up fields in lbs_private */
-+	/* Set up fields in lbs_private */
- 	card->priv = priv;
- 	priv->card = card;
- 	priv->hw_host_to_card = if_cs_host_to_card;
- 	priv->enter_deep_sleep = NULL;
- 	priv->exit_deep_sleep = NULL;
- 	priv->reset_deep_sleep_wakeup = NULL;
--	priv->fw_ready = 1;
- 
--	/* Now actually get the IRQ */
--	ret = request_irq(p_dev->irq, if_cs_interrupt,
--		IRQF_SHARED, DRV_NAME, card);
-+	/* Get firmware */
-+	ret = lbs_get_firmware_async(priv, &p_dev->dev, card->model, fw_table,
-+				     if_cs_prog_firmware);
- 	if (ret) {
--		pr_err("error in request_irq\n");
--		goto out3;
--	}
--
--	/*
--	 * Clear any interrupt cause that happened while sending
--	 * firmware/initializing card
--	 */
--	if_cs_write16(card, IF_CS_CARD_INT_CAUSE, IF_CS_BIT_MASK);
--	if_cs_enable_ints(card);
--
--	/* And finally bring the card up */
--	if (lbs_start_card(priv) != 0) {
--		pr_err("could not activate card\n");
-+		pr_err("failed to find firmware (%d)\n", ret);
- 		goto out3;
- 	}
- 
--	ret = 0;
- 	goto out;
- 
- out3:
-@@ -951,9 +964,6 @@ out2:
- out1:
- 	pcmcia_disable_device(p_dev);
- out:
--	release_firmware(helper);
--	release_firmware(mainfw);
--
- 	lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret);
- 	return ret;
- }
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0016-libertas-add-missing-include.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0016-libertas-add-missing-include.patch
deleted file mode 100644
index 1a89816..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0016-libertas-add-missing-include.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 7608f165734eaeb530ba2442c0413e6e9630ad83 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Thu, 19 Apr 2012 13:54:12 +0200
-Subject: [PATCH 16/17] libertas: add missing include
-
-Without it, I get compile errors due to missing TASK_NORMAL,
-TASK_UNINTERRUPTIBLE and schedule.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/firmware.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/firmware.c b/drivers/net/wireless/libertas/firmware.c
-index cd23f1a..77f6504 100644
---- a/drivers/net/wireless/libertas/firmware.c
-+++ b/drivers/net/wireless/libertas/firmware.c
-@@ -5,6 +5,7 @@
- #include <linux/firmware.h>
- #include <linux/firmware.h>
- #include <linux/module.h>
-+#include <linux/sched.h>
- 
- #include "dev.h"
- #include "decl.h"
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/libertas/0017-remove-debug-msgs-due-to-missing-in_interrupt.patch b/recipes-kernel/linux/linux-mainline-3.2/libertas/0017-remove-debug-msgs-due-to-missing-in_interrupt.patch
deleted file mode 100644
index e46ae14..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/libertas/0017-remove-debug-msgs-due-to-missing-in_interrupt.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 94938a2b8b1db241843abfe98168b81bf9273165 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony at googlemail.com>
-Date: Mon, 21 May 2012 17:01:23 +0200
-Subject: [PATCH] remove debug msgs due to missing in_interrupt
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-
-Signed-off-by: Andreas M??ller <schnitzeltony at googlemail.com>
----
- drivers/net/wireless/libertas/defs.h |    7 -------
- 1 files changed, 0 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/defs.h b/drivers/net/wireless/libertas/defs.h
-index ab966f0..a80b40e 100644
---- a/drivers/net/wireless/libertas/defs.h
-+++ b/drivers/net/wireless/libertas/defs.h
-@@ -46,14 +46,7 @@
- 
- extern unsigned int lbs_debug;
- 
--#ifdef DEBUG
--#define LBS_DEB_LL(grp, grpnam, fmt, args...) \
--do { if ((lbs_debug & (grp)) == (grp)) \
--  printk(KERN_DEBUG DRV_NAME grpnam "%s: " fmt, \
--         in_interrupt() ? " (INT)" : "", ## args); } while (0)
--#else
- #define LBS_DEB_LL(grp, grpnam, fmt, args...) do {} while (0)
--#endif
- 
- #define lbs_deb_enter(grp) \
-   LBS_DEB_LL(grp | LBS_DEB_ENTER, " enter", "%s()\n", __func__);
--- 
-1.7.4.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0001-ksz8851-eeprom-93cx6-add-drive_data.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0001-ksz8851-eeprom-93cx6-add-drive_data.patch
deleted file mode 100644
index 5c700f7..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0001-ksz8851-eeprom-93cx6-add-drive_data.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 84ab8eddc3e2d590489cf413ee86b9f20564994e Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:35:01 -0500
-Subject: [PATCH 01/14] ksz8851 eeprom 93cx6 add drive_data
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/misc/eeprom/eeprom_93cx6.c |    3 +++
- include/linux/eeprom_93cx6.h       |    2 ++
- 2 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/misc/eeprom/eeprom_93cx6.c b/drivers/misc/eeprom/eeprom_93cx6.c
-index 7b33de9..a6037af 100644
---- a/drivers/misc/eeprom/eeprom_93cx6.c
-+++ b/drivers/misc/eeprom/eeprom_93cx6.c
-@@ -63,6 +63,7 @@ static void eeprom_93cx6_startup(struct eeprom_93cx6 *eeprom)
- 	eeprom->reg_data_out = 0;
- 	eeprom->reg_data_clock = 0;
- 	eeprom->reg_chip_select = 1;
-+	eeprom->drive_data = 1;
- 	eeprom->register_write(eeprom);
- 
- 	/*
-@@ -101,6 +102,7 @@ static void eeprom_93cx6_write_bits(struct eeprom_93cx6 *eeprom,
- 	 */
- 	eeprom->reg_data_in = 0;
- 	eeprom->reg_data_out = 0;
-+	eeprom->drive_data = 1;
- 
- 	/*
- 	 * Start writing all bits.
-@@ -140,6 +142,7 @@ static void eeprom_93cx6_read_bits(struct eeprom_93cx6 *eeprom,
- 	 */
- 	eeprom->reg_data_in = 0;
- 	eeprom->reg_data_out = 0;
-+	eeprom->drive_data = 0;
- 
- 	/*
- 	 * Start reading all bits.
-diff --git a/include/linux/eeprom_93cx6.h b/include/linux/eeprom_93cx6.h
-index c4627cb..e04546e 100644
---- a/include/linux/eeprom_93cx6.h
-+++ b/include/linux/eeprom_93cx6.h
-@@ -46,6 +46,7 @@
-  * @register_write(struct eeprom_93cx6 *eeprom): handler to
-  * write to the eeprom register by using all reg_* fields.
-  * @width: eeprom width, should be one of the PCI_EEPROM_WIDTH_* defines
-+ * @drive_data: Set if we're driving the data line.
-  * @reg_data_in: register field to indicate data input
-  * @reg_data_out: register field to indicate data output
-  * @reg_data_clock: register field to set the data clock
-@@ -62,6 +63,7 @@ struct eeprom_93cx6 {
- 
- 	int width;
- 
-+	char drive_data;
- 	char reg_data_in;
- 	char reg_data_out;
- 	char reg_data_clock;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0002-ksz8851-eeprom-93cx6-add-eeprom_93cx6_write.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0002-ksz8851-eeprom-93cx6-add-eeprom_93cx6_write.patch
deleted file mode 100644
index 254e18d..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0002-ksz8851-eeprom-93cx6-add-eeprom_93cx6_write.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From cab9c276c954286c87db9aa7adc3c2cc3faaaf61 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:35:38 -0500
-Subject: [PATCH 02/14] ksz8851 eeprom 93cx6 add eeprom_93cx6_write
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/misc/eeprom/eeprom_93cx6.c |   86 ++++++++++++++++++++++++++++++++++++
- include/linux/eeprom_93cx6.h       |    6 +++
- 2 files changed, 92 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/misc/eeprom/eeprom_93cx6.c b/drivers/misc/eeprom/eeprom_93cx6.c
-index a6037af..77ca81f 100644
---- a/drivers/misc/eeprom/eeprom_93cx6.c
-+++ b/drivers/misc/eeprom/eeprom_93cx6.c
-@@ -234,3 +234,89 @@ void eeprom_93cx6_multiread(struct eeprom_93cx6 *eeprom, const u8 word,
- }
- EXPORT_SYMBOL_GPL(eeprom_93cx6_multiread);
- 
-+
-+/**
-+ * eeprom_93cx6_wren - set the write enable state
-+ * @eeprom: Pointer to eeprom structure
-+ * @enable: true to enable writes, otherwise disable writes
-+ *
-+ * Set the EEPROM write enable state to either allow or deny
-+ * writes depending on the @enable value.
-+ */
-+void eeprom_93cx6_wren(struct eeprom_93cx6 *eeprom, bool enable)
-+{
-+	u16 command;
-+
-+	/* start the command */
-+	eeprom_93cx6_startup(eeprom);
-+
-+	/* create command to enable/disable */
-+
-+	command = enable ? PCI_EEPROM_EWEN_OPCODE : PCI_EEPROM_EWDS_OPCODE;
-+	command <<= (eeprom->width - 2);
-+
-+	eeprom_93cx6_write_bits(eeprom, command,
-+				PCI_EEPROM_WIDTH_OPCODE + eeprom->width);
-+
-+	eeprom_93cx6_cleanup(eeprom);
-+}
-+EXPORT_SYMBOL_GPL(eeprom_93cx6_wren);
-+
-+/**
-+ * eeprom_93cx6_write - write data to the EEPROM
-+ * @eeprom: Pointer to eeprom structure
-+ * @addr: Address to write data to.
-+ * @data: The data to write to address @addr.
-+ *
-+ * Write the @data to the specified @addr in the EEPROM and
-+ * waiting for the device to finish writing.
-+ *
-+ * Note, since we do not expect large number of write operations
-+ * we use msleep() to delay in between parts of the operation to
-+ * avoid using excessive amounts of CPU time busy waiting.
-+ */
-+void eeprom_93cx6_write(struct eeprom_93cx6 *eeprom, u8 addr, u16 data)
-+{
-+	int timeout = 100;
-+	u16 command;
-+
-+	/* start the command */
-+	eeprom_93cx6_startup(eeprom);
-+
-+	command = PCI_EEPROM_WRITE_OPCODE << eeprom->width;
-+	command |= addr;
-+
-+	/* send write command */
-+	eeprom_93cx6_write_bits(eeprom, command,
-+				PCI_EEPROM_WIDTH_OPCODE + eeprom->width);
-+
-+	/* send data */
-+	eeprom_93cx6_write_bits(eeprom, data, 16);
-+
-+	/* get ready to check for busy */
-+	eeprom->drive_data = 0;
-+	eeprom->reg_chip_select = 1;
-+	eeprom->register_write(eeprom);
-+
-+	/* wait at-least 250ns to get DO to be the busy signal */
-+	msleep(1);
-+
-+	/* wait for DO to go high to signify finish */
-+
-+	while (true) {
-+		eeprom->register_read(eeprom);
-+
-+		if (eeprom->reg_data_out)
-+			break;
-+
-+		msleep(1);
-+
-+		if (--timeout <= 0) {
-+			printk(KERN_ERR "%s: timeout\n", __func__);
-+			break;
-+		}
-+	}
-+
-+	eeprom_93cx6_cleanup(eeprom);
-+}
-+EXPORT_SYMBOL_GPL(eeprom_93cx6_write);
-diff --git a/include/linux/eeprom_93cx6.h b/include/linux/eeprom_93cx6.h
-index e04546e..e50f98b 100644
---- a/include/linux/eeprom_93cx6.h
-+++ b/include/linux/eeprom_93cx6.h
-@@ -33,6 +33,7 @@
- #define PCI_EEPROM_WIDTH_93C86	8
- #define PCI_EEPROM_WIDTH_OPCODE	3
- #define PCI_EEPROM_WRITE_OPCODE	0x05
-+#define PCI_EEPROM_ERASE_OPCODE 0x07
- #define PCI_EEPROM_READ_OPCODE	0x06
- #define PCI_EEPROM_EWDS_OPCODE	0x10
- #define PCI_EEPROM_EWEN_OPCODE	0x13
-@@ -74,3 +75,8 @@ extern void eeprom_93cx6_read(struct eeprom_93cx6 *eeprom,
- 	const u8 word, u16 *data);
- extern void eeprom_93cx6_multiread(struct eeprom_93cx6 *eeprom,
- 	const u8 word, __le16 *data, const u16 words);
-+
-+extern void eeprom_93cx6_wren(struct eeprom_93cx6 *eeprom, bool enable);
-+
-+extern void eeprom_93cx6_write(struct eeprom_93cx6 *eeprom,
-+			       u8 addr, u16 data);
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0003-ksz8851-read_mac_addr.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0003-ksz8851-read_mac_addr.patch
deleted file mode 100644
index a60b310..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0003-ksz8851-read_mac_addr.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 9318b0759a699e6128817bead791603201e73d99 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:36:22 -0500
-Subject: [PATCH 03/14] ksz8851 read_mac_addr
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |   44 ++++++++++++++++++++++++++++-----
- 1 files changed, 37 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index f56743a..da7cbea 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -367,21 +367,47 @@ static int ks8851_write_mac_addr(struct net_device *dev)
- }
- 
- /**
-+ * ks8851_read_mac_addr - read mac address from device registers
-+ * @dev: The network device
-+ *
-+ * Update our copy of the KS8851 MAC address from the registers of @dev.
-+*/
-+static void ks8851_read_mac_addr(struct net_device *dev)
-+{
-+	struct ks8851_net *ks = netdev_priv(dev);
-+	int i;
-+
-+	mutex_lock(&ks->lock);
-+
-+	for (i = 0; i < ETH_ALEN; i++)
-+		dev->dev_addr[i] = ks8851_rdreg8(ks, KS_MAR(i));
-+
-+	mutex_unlock(&ks->lock);
-+}
-+
-+/**
-  * ks8851_init_mac - initialise the mac address
-  * @ks: The device structure
-  *
-  * Get or create the initial mac address for the device and then set that
-- * into the station address register. Currently we assume that the device
-- * does not have a valid mac address in it, and so we use random_ether_addr()
-+ * into the station address register. If there is an EEPROM present, then
-+ * we try that. If no valid mac address is found we use random_ether_addr()
-  * to create a new one.
-- *
-- * In future, the driver should check to see if the device has an EEPROM
-- * attached and whether that has a valid ethernet address in it.
-  */
- static void ks8851_init_mac(struct ks8851_net *ks)
- {
- 	struct net_device *dev = ks->netdev;
- 
-+	/* first, try reading what we've got already */
-+	if (ks->rc_ccr & CCR_EEPROM) {
-+		ks8851_read_mac_addr(dev);
-+		if (is_valid_ether_addr(dev->dev_addr))
-+			return;
-+
-+		netdev_err(ks->netdev, "invalid mac address read %pM\n",
-+			dev->dev_addr);
-+	}
-+
- 	random_ether_addr(dev->dev_addr);
- 	ks8851_write_mac_addr(dev);
- }
-@@ -1658,6 +1684,9 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 	else
- 		ks->eeprom_size = 0;
- 
-+	/* cache the contents of the CCR register for EEPROM, etc. */
-+	ks->rc_ccr = ks8851_rdreg16(ks, KS_CCR);
-+
- 	ks8851_read_selftest(ks);
- 	ks8851_init_mac(ks);
- 
-@@ -1674,9 +1703,10 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 		goto err_netdev;
- 	}
- 
--	netdev_info(ndev, "revision %d, MAC %pM, IRQ %d\n",
-+	netdev_info(ndev, "revision %d, MAC %pM, IRQ %d %s EEPROM\n",
- 		    CIDER_REV_GET(ks8851_rdreg16(ks, KS_CIDER)),
--		    ndev->dev_addr, ndev->irq);
-+		    ndev->dev_addr, ndev->irq,
-+		    ks->rc_ccr & CCR_EEPROM ? "has" : "no");
- 
- 	return 0;
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0004-ksz8851-93cx6-eeprom-access.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0004-ksz8851-93cx6-eeprom-access.patch
deleted file mode 100644
index 974e171..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0004-ksz8851-93cx6-eeprom-access.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 2b458e8bc6c07d7de20eb202c8f9c895dcf5ec6b Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:36:58 -0500
-Subject: [PATCH 04/14] ksz8851 93cx6 eeprom access
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/Kconfig  |    1 +
- drivers/net/ethernet/micrel/ks8851.c |   72 ++++++++++++++++++++++++++++++++++
- 2 files changed, 73 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/Kconfig b/drivers/net/ethernet/micrel/Kconfig
-index d10c2e1..fe42fc0 100644
---- a/drivers/net/ethernet/micrel/Kconfig
-+++ b/drivers/net/ethernet/micrel/Kconfig
-@@ -42,6 +42,7 @@ config KS8851
- 	select NET_CORE
- 	select MII
- 	select CRC32
-+	select EEPROM_93CX6
- 	---help---
- 	  SPI driver for Micrel KS8851 SPI attached network chip.
- 
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index da7cbea..6a7f27f 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -22,6 +22,7 @@
- #include <linux/cache.h>
- #include <linux/crc32.h>
- #include <linux/mii.h>
-+#include <linux/eeprom_93cx6.h>
- 
- #include <linux/spi/spi.h>
- 
-@@ -128,6 +129,8 @@ struct ks8851_net {
- 	struct spi_message	spi_msg2;
- 	struct spi_transfer	spi_xfer1;
- 	struct spi_transfer	spi_xfer2[2];
-+
-+	struct eeprom_93cx6	eeprom;
- };
- 
- static int msg_enable;
-@@ -1449,6 +1452,68 @@ static int ks8851_set_eeprom(struct net_device *dev,
- 	return ret_val;
- }
- 
-+/* EEPROM support */
-+
-+static void ks8851_eeprom_regread(struct eeprom_93cx6 *ee)
-+{
-+	struct ks8851_net *ks = ee->data;
-+	unsigned val;
-+
-+	val = ks8851_rdreg16(ks, KS_EEPCR);
-+
-+	ee->reg_data_out = (val & EEPCR_EESB) ? 1 : 0;
-+	ee->reg_data_clock = (val & EEPCR_EESCK) ? 1 : 0;
-+	ee->reg_chip_select = (val & EEPCR_EECS) ? 1 : 0;
-+}
-+
-+static void ks8851_eeprom_regwrite(struct eeprom_93cx6 *ee)
-+{
-+	struct ks8851_net *ks = ee->data;
-+	unsigned val = EEPCR_EESA;	/* default - eeprom access on */
-+
-+	if (ee->drive_data)
-+		val |= EEPCR_EESRWA;
-+	if (ee->reg_data_in)
-+		val |= EEPCR_EEDO;
-+	if (ee->reg_data_clock)
-+		val |= EEPCR_EESCK;
-+	if (ee->reg_chip_select)
-+		val |= EEPCR_EECS;
-+
-+	printk(KERN_INFO "%s: wr %04x\n", __func__, val);
-+	ks8851_wrreg16(ks, KS_EEPCR, val);
-+}
-+
-+/**
-+ * ks8851_eeprom_claim - claim device EEPROM and activate the interface
-+ * @ks: The network deice state.
-+ *
-+ * Check for the presence of an EEPROM, and then activate software access
-+ * to the device.
-+ */
-+static int ks8851_eeprom_claim(struct ks8851_net *ks)
-+{
-+	if (!(ks->rc_ccr & CCR_EEPROM))
-+		return -ENOENT;
-+
-+	/* start with clock low, cs high */
-+	ks8851_wrreg16(ks, KS_EEPCR, EEPCR_EESA | EEPCR_EECS);
-+	return 0;
-+}
-+
-+/**
-+ * ks8851_eeprom_release - release the EEPROM interface
-+ * @ks: The device state
-+ *
-+ * Release the software access to the device EEPROM
-+ */
-+static void ks8851_eeprom_release(struct ks8851_net *ks)
-+{
-+	unsigned val = ks8851_rdreg16(ks, KS_EEPCR);
-+
-+	ks8851_wrreg16(ks, KS_EEPCR, val & ~EEPCR_EESA);
-+}
-+
- static const struct ethtool_ops ks8851_ethtool_ops = {
- 	.get_drvinfo	= ks8851_get_drvinfo,
- 	.get_msglevel	= ks8851_get_msglevel,
-@@ -1639,6 +1704,13 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 	spi_message_add_tail(&ks->spi_xfer2[0], &ks->spi_msg2);
- 	spi_message_add_tail(&ks->spi_xfer2[1], &ks->spi_msg2);
- 
-+	/* setup EEPROM state */
-+
-+	ks->eeprom.data = ks;
-+	ks->eeprom.width = PCI_EEPROM_WIDTH_93C46;
-+	ks->eeprom.register_read = ks8851_eeprom_regread;
-+	ks->eeprom.register_write = ks8851_eeprom_regwrite;
-+
- 	/* setup mii state */
- 	ks->mii.dev		= ndev;
- 	ks->mii.phy_id		= 1,
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0005-ks8851.h-it-helps-to-include-the-include-file.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0005-ks8851.h-it-helps-to-include-the-include-file.patch
deleted file mode 100644
index c006649..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0005-ks8851.h-it-helps-to-include-the-include-file.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From a0aa9c88e27b160651f685945b42749a2a9e1a0a Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Wed, 5 Oct 2011 16:19:20 -0500
-Subject: [PATCH 05/14] ks8851.h it helps to include the include file
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- include/linux/ks8851.h |   23 +++++++++++++++++++++++
- 1 files changed, 23 insertions(+), 0 deletions(-)
- create mode 100644 include/linux/ks8851.h
-
-diff --git a/include/linux/ks8851.h b/include/linux/ks8851.h
-new file mode 100644
-index 0000000..c933688
---- /dev/null
-+++ b/include/linux/ks8851.h
-@@ -0,0 +1,23 @@
-+/* include/linux/ks8851.h
-+ *
-+ * Platform specific configuration data for KS8851 driver.
-+ *
-+ * Copyright 2009 Simtec Electronics
-+ *	http://www.simtec.co.uk/
-+ *	Ben Dooks <ben at simtec.co.uk>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+/**
-+ * struct ks8851_pdata - platform specific configuration data
-+ * @irq_flags: The IRQ trigger flags to pass to request_irq().
-+ *
-+ * Platform specific configuration to be passed from board support
-+ * registering the spi device to the driver.
-+ */
-+struct ks8851_pdata {
-+	unsigned	irq_flags;
-+};
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0006-ksz8851-move-to-header.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0006-ksz8851-move-to-header.patch
deleted file mode 100644
index 37188f8..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0006-ksz8851-move-to-header.patch
+++ /dev/null
@@ -1,326 +0,0 @@
-From c3d2a211cfeec3d0af0a26603c66e10dd456dd36 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:37:48 -0500
-Subject: [PATCH 06/14] ksz8851 move to header
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851_mll.c |  263 +-----------------------------
- 1 files changed, 5 insertions(+), 258 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
-index d19c849..530b962 100644
---- a/drivers/net/ethernet/micrel/ks8851_mll.c
-+++ b/drivers/net/ethernet/micrel/ks8851_mll.c
-@@ -37,6 +37,8 @@
- #include <linux/slab.h>
- #include <asm/io.h>
- 
-+#include "ks8851.h"
-+
- #define	DRV_NAME	"ks8851_mll"
- 
- static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
-@@ -45,165 +47,26 @@ static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
- #define TX_BUF_SIZE			2000
- #define RX_BUF_SIZE			2000
- 
--#define KS_CCR				0x08
--#define CCR_EEPROM			(1 << 9)
--#define CCR_SPI				(1 << 8)
- #define CCR_8BIT			(1 << 7)
- #define CCR_16BIT			(1 << 6)
- #define CCR_32BIT			(1 << 5)
- #define CCR_SHARED			(1 << 4)
--#define CCR_32PIN			(1 << 0)
--
--/* MAC address registers */
--#define KS_MARL				0x10
--#define KS_MARM				0x12
--#define KS_MARH				0x14
- 
--#define KS_OBCR				0x20
- #define OBCR_ODS_16MA			(1 << 6)
- 
--#define KS_EEPCR			0x22
--#define EEPCR_EESA			(1 << 4)
--#define EEPCR_EESB			(1 << 3)
--#define EEPCR_EEDO			(1 << 2)
--#define EEPCR_EESCK			(1 << 1)
--#define EEPCR_EECS			(1 << 0)
--
--#define KS_MBIR				0x24
--#define MBIR_TXMBF			(1 << 12)
--#define MBIR_TXMBFA			(1 << 11)
--#define MBIR_RXMBF			(1 << 4)
--#define MBIR_RXMBFA			(1 << 3)
--
--#define KS_GRR				0x26
--#define GRR_QMU				(1 << 1)
--#define GRR_GSR				(1 << 0)
--
--#define KS_WFCR				0x2A
--#define WFCR_MPRXE			(1 << 7)
--#define WFCR_WF3E			(1 << 3)
--#define WFCR_WF2E			(1 << 2)
--#define WFCR_WF1E			(1 << 1)
--#define WFCR_WF0E			(1 << 0)
--
--#define KS_WF0CRC0			0x30
--#define KS_WF0CRC1			0x32
--#define KS_WF0BM0			0x34
--#define KS_WF0BM1			0x36
--#define KS_WF0BM2			0x38
--#define KS_WF0BM3			0x3A
--
--#define KS_WF1CRC0			0x40
--#define KS_WF1CRC1			0x42
--#define KS_WF1BM0			0x44
--#define KS_WF1BM1			0x46
--#define KS_WF1BM2			0x48
--#define KS_WF1BM3			0x4A
--
--#define KS_WF2CRC0			0x50
--#define KS_WF2CRC1			0x52
--#define KS_WF2BM0			0x54
--#define KS_WF2BM1			0x56
--#define KS_WF2BM2			0x58
--#define KS_WF2BM3			0x5A
--
--#define KS_WF3CRC0			0x60
--#define KS_WF3CRC1			0x62
--#define KS_WF3BM0			0x64
--#define KS_WF3BM1			0x66
--#define KS_WF3BM2			0x68
--#define KS_WF3BM3			0x6A
--
--#define KS_TXCR				0x70
--#define TXCR_TCGICMP			(1 << 8)
--#define TXCR_TCGUDP			(1 << 7)
--#define TXCR_TCGTCP			(1 << 6)
--#define TXCR_TCGIP			(1 << 5)
--#define TXCR_FTXQ			(1 << 4)
--#define TXCR_TXFCE			(1 << 3)
--#define TXCR_TXPE			(1 << 2)
--#define TXCR_TXCRC			(1 << 1)
--#define TXCR_TXE			(1 << 0)
--
--#define KS_TXSR				0x72
--#define TXSR_TXLC			(1 << 13)
--#define TXSR_TXMC			(1 << 12)
--#define TXSR_TXFID_MASK			(0x3f << 0)
--#define TXSR_TXFID_SHIFT		(0)
--#define TXSR_TXFID_GET(_v)		(((_v) >> 0) & 0x3f)
--
--
--#define KS_RXCR1			0x74
--#define RXCR1_FRXQ			(1 << 15)
--#define RXCR1_RXUDPFCC			(1 << 14)
--#define RXCR1_RXTCPFCC			(1 << 13)
--#define RXCR1_RXIPFCC			(1 << 12)
--#define RXCR1_RXPAFMA			(1 << 11)
--#define RXCR1_RXFCE			(1 << 10)
--#define RXCR1_RXEFE			(1 << 9)
--#define RXCR1_RXMAFMA			(1 << 8)
--#define RXCR1_RXBE			(1 << 7)
--#define RXCR1_RXME			(1 << 6)
--#define RXCR1_RXUE			(1 << 5)
--#define RXCR1_RXAE			(1 << 4)
--#define RXCR1_RXINVF			(1 << 1)
--#define RXCR1_RXE			(1 << 0)
- #define RXCR1_FILTER_MASK    		(RXCR1_RXINVF | RXCR1_RXAE | \
- 					 RXCR1_RXMAFMA | RXCR1_RXPAFMA)
- 
--#define KS_RXCR2			0x76
--#define RXCR2_SRDBL_MASK		(0x7 << 5)
--#define RXCR2_SRDBL_SHIFT		(5)
--#define RXCR2_SRDBL_4B			(0x0 << 5)
--#define RXCR2_SRDBL_8B			(0x1 << 5)
--#define RXCR2_SRDBL_16B			(0x2 << 5)
--#define RXCR2_SRDBL_32B			(0x3 << 5)
--/* #define RXCR2_SRDBL_FRAME		(0x4 << 5) */
--#define RXCR2_IUFFP			(1 << 4)
--#define RXCR2_RXIUFCEZ			(1 << 3)
--#define RXCR2_UDPLFE			(1 << 2)
--#define RXCR2_RXICMPFCC			(1 << 1)
--#define RXCR2_RXSAF			(1 << 0)
--
--#define KS_TXMIR			0x78
--
--#define KS_RXFHSR			0x7C
--#define RXFSHR_RXFV			(1 << 15)
--#define RXFSHR_RXICMPFCS		(1 << 13)
--#define RXFSHR_RXIPFCS			(1 << 12)
--#define RXFSHR_RXTCPFCS			(1 << 11)
--#define RXFSHR_RXUDPFCS			(1 << 10)
--#define RXFSHR_RXBF			(1 << 7)
--#define RXFSHR_RXMF			(1 << 6)
--#define RXFSHR_RXUF			(1 << 5)
--#define RXFSHR_RXMR			(1 << 4)
--#define RXFSHR_RXFT			(1 << 3)
--#define RXFSHR_RXFTL			(1 << 2)
--#define RXFSHR_RXRF			(1 << 1)
--#define RXFSHR_RXCE			(1 << 0)
-+#undef RXCR2_SRDBL_FRAME
-+
- #define	RXFSHR_ERR			(RXFSHR_RXCE | RXFSHR_RXRF |\
- 					RXFSHR_RXFTL | RXFSHR_RXMR |\
- 					RXFSHR_RXICMPFCS | RXFSHR_RXIPFCS |\
- 					RXFSHR_RXTCPFCS)
-+
- #define KS_RXFHBCR			0x7E
- #define RXFHBCR_CNT_MASK		0x0FFF
- 
--#define KS_TXQCR			0x80
--#define TXQCR_AETFE			(1 << 2)
--#define TXQCR_TXQMAM			(1 << 1)
--#define TXQCR_METFE			(1 << 0)
--
--#define KS_RXQCR			0x82
--#define RXQCR_RXDTTS			(1 << 12)
--#define RXQCR_RXDBCTS			(1 << 11)
--#define RXQCR_RXFCTS			(1 << 10)
--#define RXQCR_RXIPHTOE			(1 << 9)
--#define RXQCR_RXDTTE			(1 << 7)
--#define RXQCR_RXDBCTE			(1 << 6)
--#define RXQCR_RXFCTE			(1 << 5)
--#define RXQCR_ADRFE			(1 << 4)
--#define RXQCR_SDA			(1 << 3)
--#define RXQCR_RRXEF			(1 << 0)
- #define RXQCR_CMD_CNTL                	(RXQCR_RXFCTE|RXQCR_ADRFE)
- 
- #define KS_TXFDPR			0x84
-@@ -214,130 +77,14 @@ static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
- #define KS_RXFDPR			0x86
- #define RXFDPR_RXFPAI			(1 << 14)
- 
--#define KS_RXDTTR			0x8C
--#define KS_RXDBCTR			0x8E
--
--#define KS_IER				0x90
--#define KS_ISR				0x92
--#define IRQ_LCI				(1 << 15)
--#define IRQ_TXI				(1 << 14)
--#define IRQ_RXI				(1 << 13)
--#define IRQ_RXOI			(1 << 11)
--#define IRQ_TXPSI			(1 << 9)
--#define IRQ_RXPSI			(1 << 8)
--#define IRQ_TXSAI			(1 << 6)
--#define IRQ_RXWFDI			(1 << 5)
--#define IRQ_RXMPDI			(1 << 4)
--#define IRQ_LDI				(1 << 3)
--#define IRQ_EDI				(1 << 2)
--#define IRQ_SPIBEI			(1 << 1)
--#define IRQ_DEDI			(1 << 0)
--
--#define KS_RXFCTR			0x9C
- #define RXFCTR_THRESHOLD_MASK     	0x00FF
- 
--#define KS_RXFC				0x9D
--#define RXFCTR_RXFC_MASK		(0xff << 8)
--#define RXFCTR_RXFC_SHIFT		(8)
--#define RXFCTR_RXFC_GET(_v)		(((_v) >> 8) & 0xff)
--#define RXFCTR_RXFCT_MASK		(0xff << 0)
--#define RXFCTR_RXFCT_SHIFT		(0)
--
--#define KS_TXNTFSR			0x9E
--
--#define KS_MAHTR0			0xA0
--#define KS_MAHTR1			0xA2
--#define KS_MAHTR2			0xA4
--#define KS_MAHTR3			0xA6
--
--#define KS_FCLWR			0xB0
--#define KS_FCHWR			0xB2
--#define KS_FCOWR			0xB4
--
--#define KS_CIDER			0xC0
--#define CIDER_ID			0x8870
--#define CIDER_REV_MASK			(0x7 << 1)
--#define CIDER_REV_SHIFT			(1)
--#define CIDER_REV_GET(_v)		(((_v) >> 1) & 0x7)
--
--#define KS_CGCR				0xC6
--#define KS_IACR				0xC8
--#define IACR_RDEN			(1 << 12)
--#define IACR_TSEL_MASK			(0x3 << 10)
--#define IACR_TSEL_SHIFT			(10)
--#define IACR_TSEL_MIB			(0x3 << 10)
--#define IACR_ADDR_MASK			(0x1f << 0)
--#define IACR_ADDR_SHIFT			(0)
--
--#define KS_IADLR			0xD0
--#define KS_IAHDR			0xD2
--
--#define KS_PMECR			0xD4
--#define PMECR_PME_DELAY			(1 << 14)
--#define PMECR_PME_POL			(1 << 12)
--#define PMECR_WOL_WAKEUP		(1 << 11)
--#define PMECR_WOL_MAGICPKT		(1 << 10)
--#define PMECR_WOL_LINKUP		(1 << 9)
--#define PMECR_WOL_ENERGY		(1 << 8)
--#define PMECR_AUTO_WAKE_EN		(1 << 7)
--#define PMECR_WAKEUP_NORMAL		(1 << 6)
--#define PMECR_WKEVT_MASK		(0xf << 2)
--#define PMECR_WKEVT_SHIFT		(2)
--#define PMECR_WKEVT_GET(_v)		(((_v) >> 2) & 0xf)
--#define PMECR_WKEVT_ENERGY		(0x1 << 2)
--#define PMECR_WKEVT_LINK		(0x2 << 2)
--#define PMECR_WKEVT_MAGICPKT		(0x4 << 2)
--#define PMECR_WKEVT_FRAME		(0x8 << 2)
--#define PMECR_PM_MASK			(0x3 << 0)
--#define PMECR_PM_SHIFT			(0)
--#define PMECR_PM_NORMAL			(0x0 << 0)
--#define PMECR_PM_ENERGY			(0x1 << 0)
--#define PMECR_PM_SOFTDOWN		(0x2 << 0)
--#define PMECR_PM_POWERSAVE		(0x3 << 0)
--
--/* Standard MII PHY data */
--#define KS_P1MBCR			0xE4
- #define P1MBCR_FORCE_FDX		(1 << 8)
- 
--#define KS_P1MBSR			0xE6
- #define P1MBSR_AN_COMPLETE		(1 << 5)
- #define P1MBSR_AN_CAPABLE		(1 << 3)
- #define P1MBSR_LINK_UP			(1 << 2)
- 
--#define KS_PHY1ILR			0xE8
--#define KS_PHY1IHR			0xEA
--#define KS_P1ANAR			0xEC
--#define KS_P1ANLPR			0xEE
--
--#define KS_P1SCLMD			0xF4
--#define P1SCLMD_LEDOFF			(1 << 15)
--#define P1SCLMD_TXIDS			(1 << 14)
--#define P1SCLMD_RESTARTAN		(1 << 13)
--#define P1SCLMD_DISAUTOMDIX		(1 << 10)
--#define P1SCLMD_FORCEMDIX		(1 << 9)
--#define P1SCLMD_AUTONEGEN		(1 << 7)
--#define P1SCLMD_FORCE100		(1 << 6)
--#define P1SCLMD_FORCEFDX		(1 << 5)
--#define P1SCLMD_ADV_FLOW		(1 << 4)
--#define P1SCLMD_ADV_100BT_FDX		(1 << 3)
--#define P1SCLMD_ADV_100BT_HDX		(1 << 2)
--#define P1SCLMD_ADV_10BT_FDX		(1 << 1)
--#define P1SCLMD_ADV_10BT_HDX		(1 << 0)
--
--#define KS_P1CR				0xF6
--#define P1CR_HP_MDIX			(1 << 15)
--#define P1CR_REV_POL			(1 << 13)
--#define P1CR_OP_100M			(1 << 10)
--#define P1CR_OP_FDX			(1 << 9)
--#define P1CR_OP_MDI			(1 << 7)
--#define P1CR_AN_DONE			(1 << 6)
--#define P1CR_LINK_GOOD			(1 << 5)
--#define P1CR_PNTR_FLOW			(1 << 4)
--#define P1CR_PNTR_100BT_FDX		(1 << 3)
--#define P1CR_PNTR_100BT_HDX		(1 << 2)
--#define P1CR_PNTR_10BT_FDX		(1 << 1)
--#define P1CR_PNTR_10BT_HDX		(1 << 0)
--
- /* TX Frame control */
- 
- #define TXFR_TXIC			(1 << 15)
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0007-ksz8851-move-more-to-header.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0007-ksz8851-move-more-to-header.patch
deleted file mode 100644
index fc360c5..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0007-ksz8851-move-more-to-header.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 5b4881326fe4509fd2a55e866a11f9123745d2a8 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:38:35 -0500
-Subject: [PATCH 07/14] ksz8851 move more to header
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.h     |   27 ++++++++++++++++++++
- drivers/net/ethernet/micrel/ks8851_mll.c |   40 +-----------------------------
- 2 files changed, 28 insertions(+), 39 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.h b/drivers/net/ethernet/micrel/ks8851.h
-index 537fb06e..1ed7cfa 100644
---- a/drivers/net/ethernet/micrel/ks8851.h
-+++ b/drivers/net/ethernet/micrel/ks8851.h
-@@ -3,6 +3,9 @@
-  * Copyright 2009 Simtec Electronics
-  *      Ben Dooks <ben at simtec.co.uk>
-  *
-+ * portions from drivers/net/ks8851_mll.c,
-+ *	Copyright (c) 2009 Micrel Inc.
-+ *
-  * KS8851 register definitions
-  *
-  * This program is free software; you can redistribute it and/or modify
-@@ -13,6 +16,10 @@
- #define KS_CCR					0x08
- #define CCR_EEPROM				(1 << 9)
- #define CCR_SPI					(1 << 8)
-+#define CCR_8BIT				(1 << 7)
-+#define CCR_16BIT				(1 << 6)
-+#define CCR_32BIT				(1 << 5)
-+#define CCR_SHARED				(1 << 4)
- #define CCR_32PIN				(1 << 0)
- 
- /* MAC address registers */
-@@ -261,7 +268,13 @@
- 
- /* Standard MII PHY data */
- #define KS_P1MBCR				0xE4
-+#define P1MBCR_FORCE_FDX			(1 << 8)
-+
- #define KS_P1MBSR				0xE6
-+#define P1MBSR_AN_COMPLETE			(1 << 5)
-+#define P1MBSR_AN_CAPABLE			(1 << 3)
-+#define P1MBSR_LINK_UP				(1 << 2)
-+
- #define KS_PHY1ILR				0xE8
- #define KS_PHY1IHR				0xEA
- #define KS_P1ANAR				0xEC
-@@ -296,6 +309,20 @@
- #define P1CR_PNTR_10BT_FDX			(1 << 1)
- #define P1CR_PNTR_10BT_HDX			(1 << 0)
- 
-+#define KS_P1SR					0xF8
-+#define P1SR_HP_MDIX				(1 << 15)
-+#define P1SR_REV_POL				(1 << 13)
-+#define P1SR_OP_100M				(1 << 10)
-+#define P1SR_OP_FDX				(1 << 9)
-+#define P1SR_OP_MDI				(1 << 7)
-+#define P1SR_AN_DONE				(1 << 6)
-+#define P1SR_LINK_GOOD				(1 << 5)
-+#define P1SR_PNTR_FLOW				(1 << 4)
-+#define P1SR_PNTR_100BT_FDX			(1 << 3)
-+#define P1SR_PNTR_100BT_HDX			(1 << 2)
-+#define P1SR_PNTR_10BT_FDX			(1 << 1)
-+#define P1SR_PNTR_10BT_HDX			(1 << 0)
-+
- /* TX Frame control */
- 
- #define TXFR_TXIC				(1 << 15)
-diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
-index 530b962..d3bb46f 100644
---- a/drivers/net/ethernet/micrel/ks8851_mll.c
-+++ b/drivers/net/ethernet/micrel/ks8851_mll.c
-@@ -47,13 +47,6 @@ static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
- #define TX_BUF_SIZE			2000
- #define RX_BUF_SIZE			2000
- 
--#define CCR_8BIT			(1 << 7)
--#define CCR_16BIT			(1 << 6)
--#define CCR_32BIT			(1 << 5)
--#define CCR_SHARED			(1 << 4)
--
--#define OBCR_ODS_16MA			(1 << 6)
--
- #define RXCR1_FILTER_MASK    		(RXCR1_RXINVF | RXCR1_RXAE | \
- 					 RXCR1_RXMAFMA | RXCR1_RXPAFMA)
- 
-@@ -69,41 +62,10 @@ static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
- 
- #define RXQCR_CMD_CNTL                	(RXQCR_RXFCTE|RXQCR_ADRFE)
- 
--#define KS_TXFDPR			0x84
--#define TXFDPR_TXFPAI			(1 << 14)
--#define TXFDPR_TXFP_MASK		(0x7ff << 0)
--#define TXFDPR_TXFP_SHIFT		(0)
--
--#define KS_RXFDPR			0x86
--#define RXFDPR_RXFPAI			(1 << 14)
--
- #define RXFCTR_THRESHOLD_MASK     	0x00FF
- 
--#define P1MBCR_FORCE_FDX		(1 << 8)
--
--#define P1MBSR_AN_COMPLETE		(1 << 5)
--#define P1MBSR_AN_CAPABLE		(1 << 3)
--#define P1MBSR_LINK_UP			(1 << 2)
--
- /* TX Frame control */
- 
--#define TXFR_TXIC			(1 << 15)
--#define TXFR_TXFID_MASK			(0x3f << 0)
--#define TXFR_TXFID_SHIFT		(0)
--
--#define KS_P1SR				0xF8
--#define P1SR_HP_MDIX			(1 << 15)
--#define P1SR_REV_POL			(1 << 13)
--#define P1SR_OP_100M			(1 << 10)
--#define P1SR_OP_FDX			(1 << 9)
--#define P1SR_OP_MDI			(1 << 7)
--#define P1SR_AN_DONE			(1 << 6)
--#define P1SR_LINK_GOOD			(1 << 5)
--#define P1SR_PNTR_FLOW			(1 << 4)
--#define P1SR_PNTR_100BT_FDX		(1 << 3)
--#define P1SR_PNTR_100BT_HDX		(1 << 2)
--#define P1SR_PNTR_10BT_FDX		(1 << 1)
--#define P1SR_PNTR_10BT_HDX		(1 << 0)
- 
- #define	ENUM_BUS_NONE			0
- #define	ENUM_BUS_8BIT			1
-@@ -1350,7 +1312,7 @@ static int __devinit ks8851_probe(struct platform_device *pdev)
- 	memcpy(netdev->dev_addr, ks->mac_addr, 6);
- 
- 	data = ks_rdreg16(ks, KS_OBCR);
--	ks_wrreg16(ks, KS_OBCR, data | OBCR_ODS_16MA);
-+	ks_wrreg16(ks, KS_OBCR, data | OBCR_ODS_16mA);
- 
- 	/**
- 	 * If you want to use the default MAC addr,
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0008-ksz8851-share-ks8851_tx_hdr-union.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0008-ksz8851-share-ks8851_tx_hdr-union.patch
deleted file mode 100644
index e4d24a4..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0008-ksz8851-share-ks8851_tx_hdr-union.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From bd69d174b8ae6f720c8534db5dd4a55f2170f06c Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:49:16 -0500
-Subject: [PATCH 08/14] ksz8851 share ks8851_tx_hdr union
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c     |   13 -------------
- drivers/net/ethernet/micrel/ks8851.h     |   14 ++++++++++++++
- drivers/net/ethernet/micrel/ks8851_mll.c |   16 +---------------
- 3 files changed, 15 insertions(+), 28 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index 6a7f27f..64be436 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -46,19 +46,6 @@ struct ks8851_rxctrl {
- 	u16	rxcr2;
- };
- 
--/**
-- * union ks8851_tx_hdr - tx header data
-- * @txb: The header as bytes
-- * @txw: The header as 16bit, little-endian words
-- *
-- * A dual representation of the tx header data to allow
-- * access to individual bytes, and to allow 16bit accesses
-- * with 16bit alignment.
-- */
--union ks8851_tx_hdr {
--	u8	txb[6];
--	__le16	txw[3];
--};
- 
- /**
-  * struct ks8851_net - KS8851 driver private data
-diff --git a/drivers/net/ethernet/micrel/ks8851.h b/drivers/net/ethernet/micrel/ks8851.h
-index 1ed7cfa..bc2476e 100644
---- a/drivers/net/ethernet/micrel/ks8851.h
-+++ b/drivers/net/ethernet/micrel/ks8851.h
-@@ -334,3 +334,17 @@
- #define KS_SPIOP_WR				(0x40)
- #define KS_SPIOP_RXFIFO				(0x80)
- #define KS_SPIOP_TXFIFO				(0xC0)
-+
-+/**
-+ * union ks8851_tx_hdr - tx header data
-+ * @txb: The header as bytes
-+ * @txw: The header as 16bit, little-endian words
-+ *
-+ * A dual representation of the tx header data to allow
-+ * access to individual bytes, and to allow 16bit accesses
-+ * with 16bit alignment.
-+ */
-+union ks8851_tx_hdr {
-+	u8	txb[6];
-+	__le16	txw[3];
-+};
-diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
-index d3bb46f..ffaf14e 100644
---- a/drivers/net/ethernet/micrel/ks8851_mll.c
-+++ b/drivers/net/ethernet/micrel/ks8851_mll.c
-@@ -76,20 +76,6 @@ static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
- #define HW_MCAST_SIZE			8
- 
- /**
-- * union ks_tx_hdr - tx header data
-- * @txb: The header as bytes
-- * @txw: The header as 16bit, little-endian words
-- *
-- * A dual representation of the tx header data to allow
-- * access to individual bytes, and to allow 16bit accesses
-- * with 16bit alignment.
-- */
--union ks_tx_hdr {
--	u8      txb[4];
--	__le16  txw[2];
--};
--
--/**
-  * struct ks_net - KS8851 driver private data
-  * @net_device 	: The network device we're bound to
-  * @hw_addr	: start address of data register.
-@@ -141,7 +127,7 @@ struct ks_net {
- 	struct net_device	*netdev;
- 	void __iomem    	*hw_addr;
- 	void __iomem    	*hw_addr_cmd;
--	union ks_tx_hdr		txh ____cacheline_aligned;
-+	union ks8851_tx_hdr	txh ____cacheline_aligned;
- 	struct mutex      	lock; /* spinlock to be interrupt safe */
- 	struct platform_device *pdev;
- 	struct mii_if_info	mii;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0009-ksz8851-add-is_level_irq.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0009-ksz8851-add-is_level_irq.patch
deleted file mode 100644
index f1d91f5..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0009-ksz8851-add-is_level_irq.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 390e80215217f32c35c7a2d6611407b759d695d2 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:50:09 -0500
-Subject: [PATCH 09/14] ksz8851 add is_level_irq
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |   28 ++++++++++++++++++++++++----
- 1 files changed, 24 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index 64be436..f771fd8 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -23,6 +23,7 @@
- #include <linux/crc32.h>
- #include <linux/mii.h>
- #include <linux/eeprom_93cx6.h>
-+#include <linux/ks8851.h>
- 
- #include <linux/spi/spi.h>
- 
-@@ -70,6 +71,7 @@ struct ks8851_rxctrl {
-  * @rc_ccr: Cached copy of KS_CCR.
-  * @rc_rxqcr: Cached copy of KS_RXQCR.
-  * @eeprom_size: Companion eeprom size in Bytes, 0 if no eeprom
-+ * @irq_flags: The IRQ flags passed to request_irq().
-  *
-  * The @lock ensures that the chip is protected when certain operations are
-  * in progress. When the read or write packet transfer is in progress, most
-@@ -118,6 +120,7 @@ struct ks8851_net {
- 	struct spi_transfer	spi_xfer2[2];
- 
- 	struct eeprom_93cx6	eeprom;
-+	unsigned		irq_flags;
- };
- 
- static int msg_enable;
-@@ -403,6 +406,15 @@ static void ks8851_init_mac(struct ks8851_net *ks)
- }
- 
- /**
-+ * is_level_irq() - return if the given IRQ flags are level triggered
-+ * @flags: The flags passed to request_irq().
-+*/
-+static bool is_level_irq(unsigned flags)
-+{
-+	return flags & (IRQF_TRIGGER_LOW | IRQF_TRIGGER_HIGH);
-+}
-+
-+/**
-  * ks8851_irq - device interrupt handler
-  * @irq: Interrupt number passed from the IRQ hnalder.
-  * @pw: The private word passed to register_irq(), our struct ks8851_net.
-@@ -414,7 +426,9 @@ static irqreturn_t ks8851_irq(int irq, void *pw)
- {
- 	struct ks8851_net *ks = pw;
- 
--	disable_irq_nosync(irq);
-+	if (is_level_irq(ks->irq_flags))
-+		disable_irq_nosync(irq);
-+
- 	schedule_work(&ks->irq_work);
- 	return IRQ_HANDLED;
- }
-@@ -646,7 +660,8 @@ static void ks8851_irq_work(struct work_struct *work)
- 	if (status & IRQ_TXI)
- 		netif_wake_queue(ks->netdev);
- 
--	enable_irq(ks->netdev->irq);
-+	if (is_level_irq(ks->irq_flags))
-+		enable_irq(ks->netdev->irq);
- }
- 
- /**
-@@ -1657,6 +1672,7 @@ static int ks8851_resume(struct spi_device *spi)
- 
- static int __devinit ks8851_probe(struct spi_device *spi)
- {
-+	struct ks8851_pdata *pd = spi->dev.platform_data;
- 	struct net_device *ndev;
- 	struct ks8851_net *ks;
- 	int ret;
-@@ -1749,8 +1765,12 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 	ks8851_read_selftest(ks);
- 	ks8851_init_mac(ks);
- 
--	ret = request_irq(spi->irq, ks8851_irq, IRQF_TRIGGER_LOW,
--			  ndev->name, ks);
-+	if (pd && pd->irq_flags)
-+		ks->irq_flags = pd->irq_flags;
-+	else
-+		ks->irq_flags = IRQF_TRIGGER_LOW;
-+
-+	ret = request_irq(spi->irq, ks8851_irq, ks->irq_flags, ndev->name, ks);
- 	if (ret < 0) {
- 		dev_err(&spi->dev, "failed to get irq\n");
- 		goto err_irq;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0010-ksz8851-turn-off-hardware-interrupt-druing-receive-p.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0010-ksz8851-turn-off-hardware-interrupt-druing-receive-p.patch
deleted file mode 100644
index 60d40dd..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0010-ksz8851-turn-off-hardware-interrupt-druing-receive-p.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From bd5cf7c6157fb20e70e8bdc417b98d0ae81e56eb Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:50:42 -0500
-Subject: [PATCH 10/14] ksz8851 turn off hardware interrupt druing receive
- process
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |   10 ++++++++++
- 1 files changed, 10 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index f771fd8..347f38f 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -586,6 +586,13 @@ static void ks8851_irq_work(struct work_struct *work)
- 
- 	mutex_lock(&ks->lock);
- 
-+	/*
-+	 * Turn off hardware interrupt during receive processing.  This fixes
-+	 * the receive problem under heavy TCP traffic while transmit done
-+	 * is enabled.
-+	 */
-+	ks8851_wrreg16(ks, KS_IER, 0);
-+
- 	status = ks8851_rdreg16(ks, KS_ISR);
- 
- 	netif_dbg(ks, intr, ks->netdev,
-@@ -655,6 +662,9 @@ static void ks8851_irq_work(struct work_struct *work)
- 		ks8851_wrreg16(ks, KS_RXCR1, rxc->rxcr1);
- 	}
- 
-+	/* Re-enable hardware interrupt. */
-+	ks8851_wrreg16(ks, KS_IER, ks->rc_ier);
-+
- 	mutex_unlock(&ks->lock);
- 
- 	if (status & IRQ_TXI)
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0011-ksz8851-make-sure-is-awake-before-writing-mac.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0011-ksz8851-make-sure-is-awake-before-writing-mac.patch
deleted file mode 100644
index 3a651aa..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0011-ksz8851-make-sure-is-awake-before-writing-mac.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From c7f65cdff49e6a3e186bb1e43fa50289a662619b Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:52:45 -0500
-Subject: [PATCH 11/14] ksz8851 make sure is awake before writing mac
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |    9 ++++++++-
- drivers/net/ethernet/micrel/ks8851.h |    2 +-
- 2 files changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index 347f38f..4f68517 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -351,8 +351,15 @@ static int ks8851_write_mac_addr(struct net_device *dev)
- 
- 	mutex_lock(&ks->lock);
- 
-+	/*
-+	 * Wake up chip in case it was powered off when stopped; otherwise,
-+	 * the first write to the MAC address does not take effect.
-+	 */
-+	ks8851_set_powermode(ks, PMECR_PM_NORMAL);
- 	for (i = 0; i < ETH_ALEN; i++)
- 		ks8851_wrreg8(ks, KS_MAR(i), dev->dev_addr[i]);
-+	if (!netif_running(dev))
-+		ks8851_set_powermode(ks, PMECR_PM_SOFTDOWN);
- 
- 	mutex_unlock(&ks->lock);
- 
-@@ -1699,7 +1706,6 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 
- 	ks->netdev = ndev;
- 	ks->spidev = spi;
--	ks->tx_space = 6144;
- 
- 	mutex_init(&ks->lock);
- 	spin_lock_init(&ks->statelock);
-@@ -1771,6 +1777,7 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 
- 	/* cache the contents of the CCR register for EEPROM, etc. */
- 	ks->rc_ccr = ks8851_rdreg16(ks, KS_CCR);
-+	ks->tx_space = ks8851_rdreg16(ks, KS_TXMIR);
- 
- 	ks8851_read_selftest(ks);
- 	ks8851_init_mac(ks);
-diff --git a/drivers/net/ethernet/micrel/ks8851.h b/drivers/net/ethernet/micrel/ks8851.h
-index bc2476e..d39ce97 100644
---- a/drivers/net/ethernet/micrel/ks8851.h
-+++ b/drivers/net/ethernet/micrel/ks8851.h
-@@ -23,7 +23,7 @@
- #define CCR_32PIN				(1 << 0)
- 
- /* MAC address registers */
--#define KS_MAR(_m)				0x15 - (_m)
-+#define KS_MAR(_m)				(0x15 - (_m))
- #define KS_MARL					0x10
- #define KS_MARM					0x12
- #define KS_MARH					0x14
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0012-ksz8851-add-mutex-lock-unlock-to-ks.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0012-ksz8851-add-mutex-lock-unlock-to-ks.patch
deleted file mode 100644
index 6af51d2..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0012-ksz8851-add-mutex-lock-unlock-to-ks.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 77734035c97803b393210976dd430cd5190d072d Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:53:36 -0500
-Subject: [PATCH 12/14] ksz8851 add mutex lock/unlock to ks
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index 4f68517..e22ce5d 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -1499,7 +1499,6 @@ static void ks8851_eeprom_regwrite(struct eeprom_93cx6 *ee)
- 	if (ee->reg_chip_select)
- 		val |= EEPCR_EECS;
- 
--	printk(KERN_INFO "%s: wr %04x\n", __func__, val);
- 	ks8851_wrreg16(ks, KS_EEPCR, val);
- }
- 
-@@ -1515,6 +1514,8 @@ static int ks8851_eeprom_claim(struct ks8851_net *ks)
- 	if (!(ks->rc_ccr & CCR_EEPROM))
- 		return -ENOENT;
- 
-+	mutex_lock(&ks->lock);
-+
- 	/* start with clock low, cs high */
- 	ks8851_wrreg16(ks, KS_EEPCR, EEPCR_EESA | EEPCR_EECS);
- 	return 0;
-@@ -1531,6 +1532,7 @@ static void ks8851_eeprom_release(struct ks8851_net *ks)
- 	unsigned val = ks8851_rdreg16(ks, KS_EEPCR);
- 
- 	ks8851_wrreg16(ks, KS_EEPCR, val & ~EEPCR_EESA);
-+	mutex_unlock(&ks->lock);
- }
- 
- static const struct ethtool_ops ks8851_ethtool_ops = {
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0013-ksz8851-add-ks8851_tx_check.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0013-ksz8851-add-ks8851_tx_check.patch
deleted file mode 100644
index 388feb6..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0013-ksz8851-add-ks8851_tx_check.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 7b4062c1b950287f4b588a72edd520d050e92745 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:54:12 -0500
-Subject: [PATCH 13/14] ksz8851 add ks8851_tx_check
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |   36 +++++++++++++++++-----------------
- 1 files changed, 18 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index e22ce5d..b72baa6 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -108,11 +108,13 @@ struct ks8851_net {
- 	struct mii_if_info	mii;
- 	struct ks8851_rxctrl	rxctrl;
- 
-+	struct work_struct	tx_check;
- 	struct work_struct	tx_work;
- 	struct work_struct	irq_work;
- 	struct work_struct	rxctrl_work;
- 
- 	struct sk_buff_head	txq;
-+	int			tx_len;
- 
- 	struct spi_message	spi_msg1;
- 	struct spi_message	spi_msg2;
-@@ -621,19 +623,6 @@ static void ks8851_irq_work(struct work_struct *work)
- 	if (status & IRQ_RXPSI)
- 		handled |= IRQ_RXPSI;
- 
--	if (status & IRQ_TXI) {
--		handled |= IRQ_TXI;
--
--		/* no lock here, tx queue should have been stopped */
--
--		/* update our idea of how much tx space is available to the
--		 * system */
--		ks->tx_space = ks8851_rdreg16(ks, KS_TXMIR);
--
--		netif_dbg(ks, intr, ks->netdev,
--			  "%s: txspace %d\n", __func__, ks->tx_space);
--	}
--
- 	if (status & IRQ_RXI)
- 		handled |= IRQ_RXI;
- 
-@@ -674,9 +663,6 @@ static void ks8851_irq_work(struct work_struct *work)
- 
- 	mutex_unlock(&ks->lock);
- 
--	if (status & IRQ_TXI)
--		netif_wake_queue(ks->netdev);
--
- 	if (is_level_irq(ks->irq_flags))
- 		enable_irq(ks->netdev->irq);
- }
-@@ -754,6 +740,17 @@ static void ks8851_done_tx(struct ks8851_net *ks, struct sk_buff *txb)
- 	dev_kfree_skb(txb);
- }
- 
-+static void ks8851_tx_check(struct work_struct *work)
-+{
-+	struct ks8851_net *ks = container_of(work, struct ks8851_net, tx_check);
-+
-+	ks->tx_space = ks8851_rdreg16(ks, KS_TXMIR);
-+	if (ks->tx_space > ks->tx_len)
-+		netif_wake_queue(ks->netdev);
-+	else
-+		schedule_work(&ks->tx_check);
-+}
-+
- /**
-  * ks8851_tx_work - process tx packet(s)
-  * @work: The work strucutre what was scheduled.
-@@ -865,7 +862,6 @@ static int ks8851_net_open(struct net_device *dev)
- 	/* clear then enable interrupts */
- 
- #define STD_IRQ (IRQ_LCI |	/* Link Change */	\
--		 IRQ_TXI |	/* TX done */		\
- 		 IRQ_RXI |	/* RX done */		\
- 		 IRQ_SPIBEI |	/* SPI bus error */	\
- 		 IRQ_TXPSI |	/* TX process stop */	\
-@@ -903,6 +899,7 @@ static int ks8851_net_stop(struct net_device *dev)
- 
- 	/* stop any outstanding work */
- 	flush_work(&ks->irq_work);
-+	flush_work(&ks->tx_check);
- 	flush_work(&ks->tx_work);
- 	flush_work(&ks->rxctrl_work);
- 
-@@ -960,14 +957,16 @@ static netdev_tx_t ks8851_start_xmit(struct sk_buff *skb,
- 
- 	if (needed > ks->tx_space) {
- 		netif_stop_queue(dev);
-+		ks->tx_len = needed;
-+		schedule_work(&ks->tx_check);
- 		ret = NETDEV_TX_BUSY;
- 	} else {
- 		ks->tx_space -= needed;
- 		skb_queue_tail(&ks->txq, skb);
-+		schedule_work(&ks->tx_work);
- 	}
- 
- 	spin_unlock(&ks->statelock);
--	schedule_work(&ks->tx_work);
- 
- 	return ret;
- }
-@@ -1712,6 +1711,7 @@ static int __devinit ks8851_probe(struct spi_device *spi)
- 	mutex_init(&ks->lock);
- 	spin_lock_init(&ks->statelock);
- 
-+	INIT_WORK(&ks->tx_check, ks8851_tx_check);
- 	INIT_WORK(&ks->tx_work, ks8851_tx_work);
- 	INIT_WORK(&ks->irq_work, ks8851_irq_work);
- 	INIT_WORK(&ks->rxctrl_work, ks8851_rxctrl_work);
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0014-ksz8851-move-ks8851_set_powermode.patch b/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0014-ksz8851-move-ks8851_set_powermode.patch
deleted file mode 100644
index 8f9df3c..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/micrel_zippy2/0014-ksz8851-move-ks8851_set_powermode.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 06112587cca46a906d73d2a6ec450d1e6ae535d3 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Thu, 29 Sep 2011 11:54:51 -0500
-Subject: [PATCH 14/14] ksz8851 move ks8851_set_powermode
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/net/ethernet/micrel/ks8851.c |   40 +++++++++++++++++-----------------
- 1 files changed, 20 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851.c b/drivers/net/ethernet/micrel/ks8851.c
-index b72baa6..c420410 100644
---- a/drivers/net/ethernet/micrel/ks8851.c
-+++ b/drivers/net/ethernet/micrel/ks8851.c
-@@ -338,6 +338,26 @@ static void ks8851_soft_reset(struct ks8851_net *ks, unsigned op)
- }
- 
- /**
-+ * ks8851_set_powermode - set power mode of the device
-+ * @ks: The device state
-+ * @pwrmode: The power mode value to write to KS_PMECR.
-+ *
-+ * Change the power mode of the chip.
-+ */
-+static void ks8851_set_powermode(struct ks8851_net *ks, unsigned pwrmode)
-+{
-+	unsigned pmecr;
-+
-+	netif_dbg(ks, hw, ks->netdev, "setting power mode %d\n", pwrmode);
-+
-+	pmecr = ks8851_rdreg16(ks, KS_PMECR);
-+	pmecr &= ~PMECR_PM_MASK;
-+	pmecr |= pwrmode;
-+
-+	ks8851_wrreg16(ks, KS_PMECR, pmecr);
-+}
-+
-+/**
-  * ks8851_write_mac_addr - write mac address to device registers
-  * @dev: The network device
-  *
-@@ -784,26 +804,6 @@ static void ks8851_tx_work(struct work_struct *work)
- }
- 
- /**
-- * ks8851_set_powermode - set power mode of the device
-- * @ks: The device state
-- * @pwrmode: The power mode value to write to KS_PMECR.
-- *
-- * Change the power mode of the chip.
-- */
--static void ks8851_set_powermode(struct ks8851_net *ks, unsigned pwrmode)
--{
--	unsigned pmecr;
--
--	netif_dbg(ks, hw, ks->netdev, "setting power mode %d\n", pwrmode);
--
--	pmecr = ks8851_rdreg16(ks, KS_PMECR);
--	pmecr &= ~PMECR_PM_MASK;
--	pmecr |= pwrmode;
--
--	ks8851_wrreg16(ks, KS_PMECR, pmecr);
--}
--
--/**
-  * ks8851_net_open - open network device
-  * @dev: The network device being opened.
-  *
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0001-cpufreq-OMAP-cleanup-for-multi-SoC-support-move-into.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0001-cpufreq-OMAP-cleanup-for-multi-SoC-support-move-into.patch
deleted file mode 100644
index c5aed7f..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0001-cpufreq-OMAP-cleanup-for-multi-SoC-support-move-into.patch
+++ /dev/null
@@ -1,422 +0,0 @@
-From 9c613a8ca7cebad1d7fa4376b80a82adcdc7269e Mon Sep 17 00:00:00 2001
-From: Santosh Shilimkar <santosh.shilimkar at ti.com>
-Date: Wed, 11 Aug 2010 17:02:43 -0700
-Subject: [PATCH 01/11] cpufreq: OMAP: cleanup for multi-SoC support, move
- into drivers/cpufreq
-
-Move OMAP cpufreq driver from arch/arm/mach-omap2 into
-drivers/cpufreq, along with a few cleanups:
-
-- generalize support for better handling of different SoCs in the OMAP
-- use OPP layer instead of OMAP clock internals for frequency table init
-
-Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
-[khilman at ti.com: move to drivers]
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- arch/arm/plat-omap/Makefile    |    1 -
- arch/arm/plat-omap/cpu-omap.c  |  171 ------------------------------------
- drivers/cpufreq/Makefile       |    1 +
- drivers/cpufreq/omap-cpufreq.c |  188 ++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 189 insertions(+), 172 deletions(-)
- delete mode 100644 arch/arm/plat-omap/cpu-omap.c
- create mode 100644 drivers/cpufreq/omap-cpufreq.c
-
-diff --git a/arch/arm/plat-omap/Makefile b/arch/arm/plat-omap/Makefile
-index 9852622..a53eca3 100644
---- a/arch/arm/plat-omap/Makefile
-+++ b/arch/arm/plat-omap/Makefile
-@@ -19,7 +19,6 @@ obj-$(CONFIG_ARCH_OMAP4) += omap_device.o
- 
- obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o
- 
--obj-$(CONFIG_CPU_FREQ) += cpu-omap.o
- obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o
- obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o
- obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o
-diff --git a/arch/arm/plat-omap/cpu-omap.c b/arch/arm/plat-omap/cpu-omap.c
-deleted file mode 100644
-index da4f68d..0000000
---- a/arch/arm/plat-omap/cpu-omap.c
-+++ /dev/null
-@@ -1,171 +0,0 @@
--/*
-- *  linux/arch/arm/plat-omap/cpu-omap.c
-- *
-- *  CPU frequency scaling for OMAP
-- *
-- *  Copyright (C) 2005 Nokia Corporation
-- *  Written by Tony Lindgren <tony at atomide.com>
-- *
-- *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License version 2 as
-- * published by the Free Software Foundation.
-- */
--#include <linux/types.h>
--#include <linux/kernel.h>
--#include <linux/sched.h>
--#include <linux/cpufreq.h>
--#include <linux/delay.h>
--#include <linux/init.h>
--#include <linux/err.h>
--#include <linux/clk.h>
--#include <linux/io.h>
--
--#include <mach/hardware.h>
--#include <plat/clock.h>
--#include <asm/system.h>
--
--#define VERY_HI_RATE	900000000
--
--static struct cpufreq_frequency_table *freq_table;
--
--#ifdef CONFIG_ARCH_OMAP1
--#define MPU_CLK		"mpu"
--#else
--#define MPU_CLK		"virt_prcm_set"
--#endif
--
--static struct clk *mpu_clk;
--
--/* TODO: Add support for SDRAM timing changes */
--
--static int omap_verify_speed(struct cpufreq_policy *policy)
--{
--	if (freq_table)
--		return cpufreq_frequency_table_verify(policy, freq_table);
--
--	if (policy->cpu)
--		return -EINVAL;
--
--	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
--				     policy->cpuinfo.max_freq);
--
--	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
--	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
--	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
--				     policy->cpuinfo.max_freq);
--	return 0;
--}
--
--static unsigned int omap_getspeed(unsigned int cpu)
--{
--	unsigned long rate;
--
--	if (cpu)
--		return 0;
--
--	rate = clk_get_rate(mpu_clk) / 1000;
--	return rate;
--}
--
--static int omap_target(struct cpufreq_policy *policy,
--		       unsigned int target_freq,
--		       unsigned int relation)
--{
--	struct cpufreq_freqs freqs;
--	int ret = 0;
--
--	/* Ensure desired rate is within allowed range.  Some govenors
--	 * (ondemand) will just pass target_freq=0 to get the minimum. */
--	if (target_freq < policy->min)
--		target_freq = policy->min;
--	if (target_freq > policy->max)
--		target_freq = policy->max;
--
--	freqs.old = omap_getspeed(0);
--	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
--	freqs.cpu = 0;
--
--	if (freqs.old == freqs.new)
--		return ret;
--
--	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
--#ifdef CONFIG_CPU_FREQ_DEBUG
--	printk(KERN_DEBUG "cpufreq-omap: transition: %u --> %u\n",
--	       freqs.old, freqs.new);
--#endif
--	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
--	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
--
--	return ret;
--}
--
--static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
--{
--	int result = 0;
--
--	mpu_clk = clk_get(NULL, MPU_CLK);
--	if (IS_ERR(mpu_clk))
--		return PTR_ERR(mpu_clk);
--
--	if (policy->cpu != 0)
--		return -EINVAL;
--
--	policy->cur = policy->min = policy->max = omap_getspeed(0);
--
--	clk_init_cpufreq_table(&freq_table);
--	if (freq_table) {
--		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
--		if (!result)
--			cpufreq_frequency_table_get_attr(freq_table,
--							policy->cpu);
--	} else {
--		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000;
--		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
--							VERY_HI_RATE) / 1000;
--	}
--
--	/* FIXME: what's the actual transition time? */
--	policy->cpuinfo.transition_latency = 300 * 1000;
--
--	return 0;
--}
--
--static int omap_cpu_exit(struct cpufreq_policy *policy)
--{
--	clk_exit_cpufreq_table(&freq_table);
--	clk_put(mpu_clk);
--	return 0;
--}
--
--static struct freq_attr *omap_cpufreq_attr[] = {
--	&cpufreq_freq_attr_scaling_available_freqs,
--	NULL,
--};
--
--static struct cpufreq_driver omap_driver = {
--	.flags		= CPUFREQ_STICKY,
--	.verify		= omap_verify_speed,
--	.target		= omap_target,
--	.get		= omap_getspeed,
--	.init		= omap_cpu_init,
--	.exit		= omap_cpu_exit,
--	.name		= "omap",
--	.attr		= omap_cpufreq_attr,
--};
--
--static int __init omap_cpufreq_init(void)
--{
--	return cpufreq_register_driver(&omap_driver);
--}
--
--arch_initcall(omap_cpufreq_init);
--
--/*
-- * if ever we want to remove this, upon cleanup call:
-- *
-- * cpufreq_unregister_driver()
-- * cpufreq_frequency_table_put_attr()
-- */
--
-diff --git a/drivers/cpufreq/Makefile b/drivers/cpufreq/Makefile
-index a48bc02..ce75fcb 100644
---- a/drivers/cpufreq/Makefile
-+++ b/drivers/cpufreq/Makefile
-@@ -43,6 +43,7 @@ obj-$(CONFIG_UX500_SOC_DB8500)		+= db8500-cpufreq.o
- obj-$(CONFIG_ARM_S3C64XX_CPUFREQ)	+= s3c64xx-cpufreq.o
- obj-$(CONFIG_ARM_S5PV210_CPUFREQ)	+= s5pv210-cpufreq.o
- obj-$(CONFIG_ARM_EXYNOS4210_CPUFREQ)	+= exynos4210-cpufreq.o
-+obj-$(CONFIG_ARCH_OMAP2PLUS)            += omap-cpufreq.o
- 
- ##################################################################################
- # PowerPC platform drivers
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-new file mode 100644
-index 0000000..a6b2be7
---- /dev/null
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -0,0 +1,188 @@
-+/*
-+ *  CPU frequency scaling for OMAP
-+ *
-+ *  Copyright (C) 2005 Nokia Corporation
-+ *  Written by Tony Lindgren <tony at atomide.com>
-+ *
-+ *  Based on cpu-sa1110.c, Copyright (C) 2001 Russell King
-+ *
-+ * Copyright (C) 2007-2011 Texas Instruments, Inc.
-+ * - OMAP3/4 support by Rajendra Nayak, Santosh Shilimkar
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+#include <linux/types.h>
-+#include <linux/kernel.h>
-+#include <linux/sched.h>
-+#include <linux/cpufreq.h>
-+#include <linux/delay.h>
-+#include <linux/init.h>
-+#include <linux/err.h>
-+#include <linux/clk.h>
-+#include <linux/io.h>
-+#include <linux/opp.h>
-+
-+#include <asm/system.h>
-+#include <asm/smp_plat.h>
-+
-+#include <plat/clock.h>
-+#include <plat/omap-pm.h>
-+#include <plat/common.h>
-+
-+#include <mach/hardware.h>
-+
-+#define VERY_HI_RATE	900000000
-+
-+static struct cpufreq_frequency_table *freq_table;
-+static struct clk *mpu_clk;
-+
-+static int omap_verify_speed(struct cpufreq_policy *policy)
-+{
-+	if (freq_table)
-+		return cpufreq_frequency_table_verify(policy, freq_table);
-+
-+	if (policy->cpu)
-+		return -EINVAL;
-+
-+	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
-+				     policy->cpuinfo.max_freq);
-+
-+	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
-+	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
-+	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
-+				     policy->cpuinfo.max_freq);
-+	return 0;
-+}
-+
-+static unsigned int omap_getspeed(unsigned int cpu)
-+{
-+	unsigned long rate;
-+
-+	if (cpu)
-+		return 0;
-+
-+	rate = clk_get_rate(mpu_clk) / 1000;
-+	return rate;
-+}
-+
-+static int omap_target(struct cpufreq_policy *policy,
-+		       unsigned int target_freq,
-+		       unsigned int relation)
-+{
-+	int ret = 0;
-+	struct cpufreq_freqs freqs;
-+
-+	/* Ensure desired rate is within allowed range.  Some govenors
-+	 * (ondemand) will just pass target_freq=0 to get the minimum. */
-+	if (target_freq < policy->min)
-+		target_freq = policy->min;
-+	if (target_freq > policy->max)
-+		target_freq = policy->max;
-+
-+	freqs.old = omap_getspeed(0);
-+	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
-+	freqs.cpu = 0;
-+
-+	if (freqs.old == freqs.new)
-+		return ret;
-+
-+	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
-+
-+#ifdef CONFIG_CPU_FREQ_DEBUG
-+	pr_info("cpufreq-omap: transition: %u --> %u\n", freqs.old, freqs.new);
-+#endif
-+
-+	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
-+
-+	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-+
-+	return ret;
-+}
-+
-+static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
-+{
-+	int result = 0;
-+	struct device *mpu_dev;
-+
-+	if (cpu_is_omap24xx())
-+		mpu_clk = clk_get(NULL, "virt_prcm_set");
-+	else if (cpu_is_omap34xx())
-+		mpu_clk = clk_get(NULL, "dpll1_ck");
-+	else if (cpu_is_omap44xx())
-+		mpu_clk = clk_get(NULL, "dpll_mpu_ck");
-+
-+	if (IS_ERR(mpu_clk))
-+		return PTR_ERR(mpu_clk);
-+
-+	if (policy->cpu != 0)
-+		return -EINVAL;
-+
-+	policy->cur = policy->min = policy->max = omap_getspeed(0);
-+
-+	mpu_dev = omap2_get_mpuss_device();
-+	if (!mpu_dev) {
-+		pr_warning("%s: unable to get the mpu device\n", __func__);
-+		return -EINVAL;
-+	}
-+	opp_init_cpufreq_table(mpu_dev, &freq_table);
-+
-+	if (freq_table) {
-+		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
-+		if (!result)
-+			cpufreq_frequency_table_get_attr(freq_table,
-+							policy->cpu);
-+	} else {
-+		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000;
-+		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
-+							VERY_HI_RATE) / 1000;
-+	}
-+
-+	policy->min = policy->cpuinfo.min_freq;
-+	policy->max = policy->cpuinfo.max_freq;
-+	policy->cur = omap_getspeed(0);
-+
-+	/* FIXME: what's the actual transition time? */
-+	policy->cpuinfo.transition_latency = 300 * 1000;
-+
-+	return 0;
-+}
-+
-+static int omap_cpu_exit(struct cpufreq_policy *policy)
-+{
-+	clk_exit_cpufreq_table(&freq_table);
-+	clk_put(mpu_clk);
-+	return 0;
-+}
-+
-+static struct freq_attr *omap_cpufreq_attr[] = {
-+	&cpufreq_freq_attr_scaling_available_freqs,
-+	NULL,
-+};
-+
-+static struct cpufreq_driver omap_driver = {
-+	.flags		= CPUFREQ_STICKY,
-+	.verify		= omap_verify_speed,
-+	.target		= omap_target,
-+	.get		= omap_getspeed,
-+	.init		= omap_cpu_init,
-+	.exit		= omap_cpu_exit,
-+	.name		= "omap",
-+	.attr		= omap_cpufreq_attr,
-+};
-+
-+static int __init omap_cpufreq_init(void)
-+{
-+	return cpufreq_register_driver(&omap_driver);
-+}
-+
-+static void __exit omap_cpufreq_exit(void)
-+{
-+	cpufreq_unregister_driver(&omap_driver);
-+}
-+
-+MODULE_DESCRIPTION("cpufreq driver for OMAP SoCs");
-+MODULE_LICENSE("GPL");
-+module_init(omap_cpufreq_init);
-+module_exit(omap_cpufreq_exit);
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0002-cpufreq-OMAP-Add-SMP-support-for-OMAP4.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0002-cpufreq-OMAP-Add-SMP-support-for-OMAP4.patch
deleted file mode 100644
index c40496b..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0002-cpufreq-OMAP-Add-SMP-support-for-OMAP4.patch
+++ /dev/null
@@ -1,191 +0,0 @@
-From 87d979c9823e18b22acda61e1ad885d27b123c36 Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel at arm.linux.org.uk>
-Date: Wed, 21 Sep 2011 16:53:00 -0700
-Subject: [PATCH 02/11] cpufreq: OMAP: Add SMP support for OMAP4+
-
-On OMAP SMP configuartion, both processors share the voltage
-and clock. So both CPUs needs to be scaled together and hence
-needs software co-ordination.
-
-Also, update lpj with reference value to avoid progressive error.
-
-Adjust _both_ the per-cpu loops_per_jiffy and global lpj. Calibrate
-them with with reference to the initial values to avoid a
-progressively bigger and bigger error in the value over time.
-
-While at this, re-use the notifiers for UP/SMP since on UP machine or
-UP_ON_SMP policy->cpus mask would contain only the boot CPU.
-
-Based on initial SMP support by Santosh Shilimkar.
-
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
-[khilman at ti.com: due to overlap/rework, combined original Santosh patch
-                 and Russell's rework]
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |   81 +++++++++++++++++++++++++++++++++++-----
- 1 files changed, 71 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index a6b2be7..1953f9d 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -23,9 +23,11 @@
- #include <linux/clk.h>
- #include <linux/io.h>
- #include <linux/opp.h>
-+#include <linux/cpu.h>
- 
- #include <asm/system.h>
- #include <asm/smp_plat.h>
-+#include <asm/cpu.h>
- 
- #include <plat/clock.h>
- #include <plat/omap-pm.h>
-@@ -35,6 +37,16 @@
- 
- #define VERY_HI_RATE	900000000
- 
-+#ifdef CONFIG_SMP
-+struct lpj_info {
-+	unsigned long	ref;
-+	unsigned int	freq;
-+};
-+
-+static DEFINE_PER_CPU(struct lpj_info, lpj_ref);
-+static struct lpj_info global_lpj_ref;
-+#endif
-+
- static struct cpufreq_frequency_table *freq_table;
- static struct clk *mpu_clk;
- 
-@@ -60,7 +72,7 @@ static unsigned int omap_getspeed(unsigned int cpu)
- {
- 	unsigned long rate;
- 
--	if (cpu)
-+	if (cpu >= NR_CPUS)
- 		return 0;
- 
- 	rate = clk_get_rate(mpu_clk) / 1000;
-@@ -71,7 +83,7 @@ static int omap_target(struct cpufreq_policy *policy,
- 		       unsigned int target_freq,
- 		       unsigned int relation)
- {
--	int ret = 0;
-+	int i, ret = 0;
- 	struct cpufreq_freqs freqs;
- 
- 	/* Ensure desired rate is within allowed range.  Some govenors
-@@ -81,22 +93,57 @@ static int omap_target(struct cpufreq_policy *policy,
- 	if (target_freq > policy->max)
- 		target_freq = policy->max;
- 
--	freqs.old = omap_getspeed(0);
-+	freqs.old = omap_getspeed(policy->cpu);
- 	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
--	freqs.cpu = 0;
-+	freqs.cpu = policy->cpu;
- 
- 	if (freqs.old == freqs.new)
- 		return ret;
- 
--	cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
-+	/* notifiers */
-+	for_each_cpu(i, policy->cpus) {
-+		freqs.cpu = i;
-+		cpufreq_notify_transition(&freqs, CPUFREQ_PRECHANGE);
-+	}
- 
- #ifdef CONFIG_CPU_FREQ_DEBUG
- 	pr_info("cpufreq-omap: transition: %u --> %u\n", freqs.old, freqs.new);
- #endif
- 
- 	ret = clk_set_rate(mpu_clk, freqs.new * 1000);
-+	freqs.new = omap_getspeed(policy->cpu);
-+
-+#ifdef CONFIG_SMP
-+	/*
-+	 * Note that loops_per_jiffy is not updated on SMP systems in
-+	 * cpufreq driver. So, update the per-CPU loops_per_jiffy value
-+	 * on frequency transition. We need to update all dependent CPUs.
-+	 */
-+	for_each_cpu(i, policy->cpus) {
-+		struct lpj_info *lpj = &per_cpu(lpj_ref, i);
-+		if (!lpj->freq) {
-+			lpj->ref = per_cpu(cpu_data, i).loops_per_jiffy;
-+			lpj->freq = freqs.old;
-+		}
-+
-+		per_cpu(cpu_data, i).loops_per_jiffy =
-+			cpufreq_scale(lpj->ref, lpj->freq, freqs.new);
-+	}
- 
--	cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-+	/* And don't forget to adjust the global one */
-+	if (!global_lpj_ref.freq) {
-+		global_lpj_ref.ref = loops_per_jiffy;
-+		global_lpj_ref.freq = freqs.old;
-+	}
-+	loops_per_jiffy = cpufreq_scale(global_lpj_ref.ref, global_lpj_ref.freq,
-+					freqs.new);
-+#endif
-+
-+	/* notifiers */
-+	for_each_cpu(i, policy->cpus) {
-+		freqs.cpu = i;
-+		cpufreq_notify_transition(&freqs, CPUFREQ_POSTCHANGE);
-+	}
- 
- 	return ret;
- }
-@@ -105,6 +152,7 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- {
- 	int result = 0;
- 	struct device *mpu_dev;
-+	static cpumask_var_t cpumask;
- 
- 	if (cpu_is_omap24xx())
- 		mpu_clk = clk_get(NULL, "virt_prcm_set");
-@@ -116,12 +164,12 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	if (IS_ERR(mpu_clk))
- 		return PTR_ERR(mpu_clk);
- 
--	if (policy->cpu != 0)
-+	if (policy->cpu >= NR_CPUS)
- 		return -EINVAL;
- 
--	policy->cur = policy->min = policy->max = omap_getspeed(0);
--
-+	policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu);
- 	mpu_dev = omap2_get_mpuss_device();
-+
- 	if (!mpu_dev) {
- 		pr_warning("%s: unable to get the mpu device\n", __func__);
- 		return -EINVAL;
-@@ -141,7 +189,20 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 
- 	policy->min = policy->cpuinfo.min_freq;
- 	policy->max = policy->cpuinfo.max_freq;
--	policy->cur = omap_getspeed(0);
-+	policy->cur = omap_getspeed(policy->cpu);
-+
-+	/*
-+	 * On OMAP SMP configuartion, both processors share the voltage
-+	 * and clock. So both CPUs needs to be scaled together and hence
-+	 * needs software co-ordination. Use cpufreq affected_cpus
-+	 * interface to handle this scenario. Additional is_smp() check
-+	 * is to keep SMP_ON_UP build working.
-+	 */
-+	if (is_smp()) {
-+		policy->shared_type = CPUFREQ_SHARED_TYPE_ANY;
-+		cpumask_or(cpumask, cpumask_of(policy->cpu), cpumask);
-+		cpumask_copy(policy->cpus, cpumask);
-+	}
- 
- 	/* FIXME: what's the actual transition time? */
- 	policy->cpuinfo.transition_latency = 300 * 1000;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0003-cpufreq-OMAP-Enable-all-CPUs-in-shared-policy-mask.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0003-cpufreq-OMAP-Enable-all-CPUs-in-shared-policy-mask.patch
deleted file mode 100644
index 7a2f48a..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0003-cpufreq-OMAP-Enable-all-CPUs-in-shared-policy-mask.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From ed54323b7c150554e68cb02d90dd36b60fe4e275 Mon Sep 17 00:00:00 2001
-From: Todd Poynor <toddpoynor at google.com>
-Date: Tue, 7 Jun 2011 13:57:52 -0700
-Subject: [PATCH 03/11] cpufreq: OMAP: Enable all CPUs in shared policy mask
-
-Enable all CPUs in the shared policy in the CPU init callback.
-Otherwise, the governor CPUFREQ_GOV_START event is invoked with
-a policy that only includes the first CPU, leaving other CPUs
-uninitialized by the governor.
-
-Signed-off-by: Todd Poynor <toddpoynor at google.com>
-Acked-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |    4 +---
- 1 files changed, 1 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index 1953f9d..3f5a816 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -152,7 +152,6 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- {
- 	int result = 0;
- 	struct device *mpu_dev;
--	static cpumask_var_t cpumask;
- 
- 	if (cpu_is_omap24xx())
- 		mpu_clk = clk_get(NULL, "virt_prcm_set");
-@@ -200,8 +199,7 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	 */
- 	if (is_smp()) {
- 		policy->shared_type = CPUFREQ_SHARED_TYPE_ANY;
--		cpumask_or(cpumask, cpumask_of(policy->cpu), cpumask);
--		cpumask_copy(policy->cpus, cpumask);
-+		cpumask_setall(policy->cpus);
- 	}
- 
- 	/* FIXME: what's the actual transition time? */
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0004-cpufreq-OMAP-notify-even-with-bad-boot-frequency.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0004-cpufreq-OMAP-notify-even-with-bad-boot-frequency.patch
deleted file mode 100644
index d31eec3..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0004-cpufreq-OMAP-notify-even-with-bad-boot-frequency.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 0661a55786b8ee53e388e1608eb56e4661273c6b Mon Sep 17 00:00:00 2001
-From: Colin Cross <ccross at google.com>
-Date: Mon, 6 Jun 2011 21:05:29 -0500
-Subject: [PATCH 04/11] cpufreq: OMAP: notify even with bad boot frequency
-
-Sometimes, bootloaders starts up with a frequency which is not
-in the OPP table. At cpu_init, policy->cur contains the frequency
-we pick at boot.  It is possible that system might have fixed
-it's boot frequency later on as part of power initialization.
-After this condition, the first call to omap_target results in the
-following:
-
-omap_getspeed(actual device frequency) != policy->cur(frequency that
-cpufreq thinks that the system is at), and it is possible that
-freqs.old == freqs.new (because the governor requested a scale down).
-
-We exit without triggering the notifiers in the current code, which
-does'nt let code which depends on cpufreq_notify_transition to have
-accurate information as to what the system frequency is.
-
-Instead, we do a normal transition if policy->cur is wrong, then,
-freqs.old will be the actual cpu frequency, freqs.new will be the
-actual new cpu frequency and all required notifiers have the accurate
-information.
-
-Acked-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Colin Cross <ccross at google.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index 3f5a816..0a5d95c 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -97,7 +97,7 @@ static int omap_target(struct cpufreq_policy *policy,
- 	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
- 	freqs.cpu = policy->cpu;
- 
--	if (freqs.old == freqs.new)
-+	if (freqs.old == freqs.new && policy->cur == freqs.new)
- 		return ret;
- 
- 	/* notifiers */
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0005-cpufreq-OMAP-move-clk-name-decision-to-init.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0005-cpufreq-OMAP-move-clk-name-decision-to-init.patch
deleted file mode 100644
index 825a524..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0005-cpufreq-OMAP-move-clk-name-decision-to-init.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 37b0a6ccc284854592918359f825371c36a801ab Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Wed, 25 May 2011 16:38:46 -0700
-Subject: [PATCH 05/11] cpufreq: OMAP: move clk name decision to init
-
-Clk name does'nt need to dynamically detected during clk init.
-move them off to driver initialization, if we dont have a clk name,
-there is no point in registering the driver anyways. The actual clk
-get and put is left at cpu_init and exit functions.
-
-Signed-off-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |   20 +++++++++++++-------
- 1 files changed, 13 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index 0a5d95c..3651825 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -49,6 +49,7 @@ static struct lpj_info global_lpj_ref;
- 
- static struct cpufreq_frequency_table *freq_table;
- static struct clk *mpu_clk;
-+static char *mpu_clk_name;
- 
- static int omap_verify_speed(struct cpufreq_policy *policy)
- {
-@@ -153,13 +154,7 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	int result = 0;
- 	struct device *mpu_dev;
- 
--	if (cpu_is_omap24xx())
--		mpu_clk = clk_get(NULL, "virt_prcm_set");
--	else if (cpu_is_omap34xx())
--		mpu_clk = clk_get(NULL, "dpll1_ck");
--	else if (cpu_is_omap44xx())
--		mpu_clk = clk_get(NULL, "dpll_mpu_ck");
--
-+	mpu_clk = clk_get(NULL, mpu_clk_name);
- 	if (IS_ERR(mpu_clk))
- 		return PTR_ERR(mpu_clk);
- 
-@@ -233,6 +228,17 @@ static struct cpufreq_driver omap_driver = {
- 
- static int __init omap_cpufreq_init(void)
- {
-+	if (cpu_is_omap24xx())
-+		mpu_clk_name = "virt_prcm_set";
-+	else if (cpu_is_omap34xx())
-+		mpu_clk_name = "dpll1_ck";
-+	else if (cpu_is_omap44xx())
-+		mpu_clk_name = "dpll_mpu_ck";
-+
-+	if (!mpu_clk_name) {
-+		pr_err("%s: unsupported Silicon?\n", __func__);
-+		return -EINVAL;
-+	}
- 	return cpufreq_register_driver(&omap_driver);
- }
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0006-cpufreq-OMAP-deny-initialization-if-no-mpudev.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0006-cpufreq-OMAP-deny-initialization-if-no-mpudev.patch
deleted file mode 100644
index 2e2179d..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0006-cpufreq-OMAP-deny-initialization-if-no-mpudev.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 6e85de6b5c1d71d372c23bf1f5c2388b9560f42f Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Wed, 25 May 2011 16:38:47 -0700
-Subject: [PATCH 06/11] cpufreq: OMAP: deny initialization if no mpudev
-
-if we do not have mpu_dev we normally fail in cpu_init. It is better
-to fail driver registration if the devices are not available.
-
-Signed-off-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |   15 ++++++++-------
- 1 files changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index 3651825..dda32fd 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -50,6 +50,7 @@ static struct lpj_info global_lpj_ref;
- static struct cpufreq_frequency_table *freq_table;
- static struct clk *mpu_clk;
- static char *mpu_clk_name;
-+static struct device *mpu_dev;
- 
- static int omap_verify_speed(struct cpufreq_policy *policy)
- {
-@@ -152,7 +153,6 @@ static int omap_target(struct cpufreq_policy *policy,
- static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- {
- 	int result = 0;
--	struct device *mpu_dev;
- 
- 	mpu_clk = clk_get(NULL, mpu_clk_name);
- 	if (IS_ERR(mpu_clk))
-@@ -162,12 +162,6 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 		return -EINVAL;
- 
- 	policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu);
--	mpu_dev = omap2_get_mpuss_device();
--
--	if (!mpu_dev) {
--		pr_warning("%s: unable to get the mpu device\n", __func__);
--		return -EINVAL;
--	}
- 	opp_init_cpufreq_table(mpu_dev, &freq_table);
- 
- 	if (freq_table) {
-@@ -239,6 +233,13 @@ static int __init omap_cpufreq_init(void)
- 		pr_err("%s: unsupported Silicon?\n", __func__);
- 		return -EINVAL;
- 	}
-+
-+	mpu_dev = omap2_get_mpuss_device();
-+	if (!mpu_dev) {
-+		pr_warning("%s: unable to get the mpu device\n", __func__);
-+		return -EINVAL;
-+	}
-+
- 	return cpufreq_register_driver(&omap_driver);
- }
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0007-cpufreq-OMAP-dont-support-freq_table.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0007-cpufreq-OMAP-dont-support-freq_table.patch
deleted file mode 100644
index 582d966..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0007-cpufreq-OMAP-dont-support-freq_table.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 01d968ec96c7d6e9ba21a287e2836687be31d669 Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Thu, 26 May 2011 19:39:17 -0700
-Subject: [PATCH 07/11] cpufreq: OMAP: dont support !freq_table
-
-OMAP2+ all have frequency tables, hence the hacks we had for older
-silicon do not need to be carried forward. As part of this change,
-use cpufreq_frequency_table_target to find the best match for
-frequency requested.
-
-Signed-off-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |   67 +++++++++++++++++++--------------------
- 1 files changed, 33 insertions(+), 34 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index dda32fd..eecb096 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -35,8 +35,6 @@
- 
- #include <mach/hardware.h>
- 
--#define VERY_HI_RATE	900000000
--
- #ifdef CONFIG_SMP
- struct lpj_info {
- 	unsigned long	ref;
-@@ -54,20 +52,9 @@ static struct device *mpu_dev;
- 
- static int omap_verify_speed(struct cpufreq_policy *policy)
- {
--	if (freq_table)
--		return cpufreq_frequency_table_verify(policy, freq_table);
--
--	if (policy->cpu)
-+	if (!freq_table)
- 		return -EINVAL;
--
--	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
--				     policy->cpuinfo.max_freq);
--
--	policy->min = clk_round_rate(mpu_clk, policy->min * 1000) / 1000;
--	policy->max = clk_round_rate(mpu_clk, policy->max * 1000) / 1000;
--	cpufreq_verify_within_limits(policy, policy->cpuinfo.min_freq,
--				     policy->cpuinfo.max_freq);
--	return 0;
-+	return cpufreq_frequency_table_verify(policy, freq_table);
- }
- 
- static unsigned int omap_getspeed(unsigned int cpu)
-@@ -85,18 +72,31 @@ static int omap_target(struct cpufreq_policy *policy,
- 		       unsigned int target_freq,
- 		       unsigned int relation)
- {
--	int i, ret = 0;
-+	unsigned int i;
-+	int ret = 0;
- 	struct cpufreq_freqs freqs;
- 
--	/* Ensure desired rate is within allowed range.  Some govenors
--	 * (ondemand) will just pass target_freq=0 to get the minimum. */
--	if (target_freq < policy->min)
--		target_freq = policy->min;
--	if (target_freq > policy->max)
--		target_freq = policy->max;
-+	if (!freq_table) {
-+		dev_err(mpu_dev, "%s: cpu%d: no freq table!\n", __func__,
-+				policy->cpu);
-+		return -EINVAL;
-+	}
-+
-+	ret = cpufreq_frequency_table_target(policy, freq_table, target_freq,
-+			relation, &i);
-+	if (ret) {
-+		dev_dbg(mpu_dev, "%s: cpu%d: no freq match for %d(ret=%d)\n",
-+			__func__, policy->cpu, target_freq, ret);
-+		return ret;
-+	}
-+	freqs.new = freq_table[i].frequency;
-+	if (!freqs.new) {
-+		dev_err(mpu_dev, "%s: cpu%d: no match for freq %d\n", __func__,
-+			policy->cpu, target_freq);
-+		return -EINVAL;
-+	}
- 
- 	freqs.old = omap_getspeed(policy->cpu);
--	freqs.new = clk_round_rate(mpu_clk, target_freq * 1000) / 1000;
- 	freqs.cpu = policy->cpu;
- 
- 	if (freqs.old == freqs.new && policy->cur == freqs.new)
-@@ -162,19 +162,18 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 		return -EINVAL;
- 
- 	policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu);
--	opp_init_cpufreq_table(mpu_dev, &freq_table);
--
--	if (freq_table) {
--		result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
--		if (!result)
--			cpufreq_frequency_table_get_attr(freq_table,
--							policy->cpu);
--	} else {
--		policy->cpuinfo.min_freq = clk_round_rate(mpu_clk, 0) / 1000;
--		policy->cpuinfo.max_freq = clk_round_rate(mpu_clk,
--							VERY_HI_RATE) / 1000;
-+	result = opp_init_cpufreq_table(mpu_dev, &freq_table);
-+
-+	if (result) {
-+		dev_err(mpu_dev, "%s: cpu%d: failed creating freq table[%d]\n",
-+				__func__, policy->cpu, result);
-+		return result;
- 	}
- 
-+	result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
-+	if (!result)
-+		cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
-+
- 	policy->min = policy->cpuinfo.min_freq;
- 	policy->max = policy->cpuinfo.max_freq;
- 	policy->cur = omap_getspeed(policy->cpu);
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0008-cpufreq-OMAP-only-supports-OPP-library.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0008-cpufreq-OMAP-only-supports-OPP-library.patch
deleted file mode 100644
index 76ca383..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0008-cpufreq-OMAP-only-supports-OPP-library.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 508bd6dae63589ea98c38f031e98dcad2fa18976 Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Thu, 26 May 2011 19:39:18 -0700
-Subject: [PATCH 08/11] cpufreq: OMAP: only supports OPP library
-
-OMAP2 is the only family using clk_[init|exit]_cpufreq_table, however,
-the cpufreq code does not currently use clk_init_cpufreq_table. As a
-result, it is unusuable for OMAP2 and only usable only on platforms
-using OPP library.
-
-Remove the unbalanced clk_exit_cpufreq_table().  Any platforms where
-OPPs are not availble will fail on init because a freq table will not
-be properly initialized.
-
-Signed-off-by: Nishanth Menon <nm at ti.com>
-[khilman at ti.com: changelog edits, and graceful failure mode changes]
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index eecb096..8f778b9 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -1,5 +1,5 @@
- /*
-- *  CPU frequency scaling for OMAP
-+ *  CPU frequency scaling for OMAP using OPP information
-  *
-  *  Copyright (C) 2005 Nokia Corporation
-  *  Written by Tony Lindgren <tony at atomide.com>
-@@ -198,7 +198,6 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 
- static int omap_cpu_exit(struct cpufreq_policy *policy)
- {
--	clk_exit_cpufreq_table(&freq_table);
- 	clk_put(mpu_clk);
- 	return 0;
- }
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0009-cpufreq-OMAP-put-clk-if-cpu_init-failed.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0009-cpufreq-OMAP-put-clk-if-cpu_init-failed.patch
deleted file mode 100644
index abdde26..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0009-cpufreq-OMAP-put-clk-if-cpu_init-failed.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 7f37af0e32e0bc99fc7459bfd3a6748c44b7d563 Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Thu, 26 May 2011 19:39:19 -0700
-Subject: [PATCH 09/11] cpufreq: OMAP: put clk if cpu_init failed
-
-Release the mpu_clk in fail paths.
-
-Reported-by: Todd Poynor <toddpoynor at google.com>
-Signed-off-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |   14 +++++++++++---
- 1 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index 8f778b9..8c54192 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -158,8 +158,10 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	if (IS_ERR(mpu_clk))
- 		return PTR_ERR(mpu_clk);
- 
--	if (policy->cpu >= NR_CPUS)
--		return -EINVAL;
-+	if (policy->cpu >= NR_CPUS) {
-+		result = -EINVAL;
-+		goto fail_ck;
-+	}
- 
- 	policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu);
- 	result = opp_init_cpufreq_table(mpu_dev, &freq_table);
-@@ -167,12 +169,14 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	if (result) {
- 		dev_err(mpu_dev, "%s: cpu%d: failed creating freq table[%d]\n",
- 				__func__, policy->cpu, result);
--		return result;
-+		goto fail_ck;
- 	}
- 
- 	result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
- 	if (!result)
- 		cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
-+	else
-+		goto fail_ck;
- 
- 	policy->min = policy->cpuinfo.min_freq;
- 	policy->max = policy->cpuinfo.max_freq;
-@@ -194,6 +198,10 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	policy->cpuinfo.transition_latency = 300 * 1000;
- 
- 	return 0;
-+
-+fail_ck:
-+	clk_put(mpu_clk);
-+	return result;
- }
- 
- static int omap_cpu_exit(struct cpufreq_policy *policy)
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0010-cpufreq-OMAP-fix-freq_table-leak.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0010-cpufreq-OMAP-fix-freq_table-leak.patch
deleted file mode 100644
index e40dc9d..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0010-cpufreq-OMAP-fix-freq_table-leak.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From eacc1163972fc46357883d58adab8b2d237c2598 Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Thu, 26 May 2011 19:39:20 -0700
-Subject: [PATCH 10/11] cpufreq: OMAP: fix freq_table leak
-
-We use a single frequency table for multiple CPUs. But, with
-OMAP4, since we have multiple CPUs, the cpu_init call for CPU1
-causes freq_table previously allocated for CPU0 to be overwritten.
-In addition, we dont free the table on exit path.
-
-We solve this by maintaining an atomic type counter to ensure
-just a single table exists at a given time.
-
-Signed-off-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |   22 +++++++++++++++++-----
- 1 files changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index 8c54192..ad94b4f 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -46,6 +46,7 @@ static struct lpj_info global_lpj_ref;
- #endif
- 
- static struct cpufreq_frequency_table *freq_table;
-+static atomic_t freq_table_users = ATOMIC_INIT(0);
- static struct clk *mpu_clk;
- static char *mpu_clk_name;
- static struct device *mpu_dev;
-@@ -150,6 +151,12 @@ static int omap_target(struct cpufreq_policy *policy,
- 	return ret;
- }
- 
-+static inline void freq_table_free(void)
-+{
-+	if (atomic_dec_and_test(&freq_table_users))
-+		opp_free_cpufreq_table(mpu_dev, &freq_table);
-+}
-+
- static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- {
- 	int result = 0;
-@@ -164,7 +171,9 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	}
- 
- 	policy->cur = policy->min = policy->max = omap_getspeed(policy->cpu);
--	result = opp_init_cpufreq_table(mpu_dev, &freq_table);
-+
-+	if (atomic_inc_return(&freq_table_users) == 1)
-+		result = opp_init_cpufreq_table(mpu_dev, &freq_table);
- 
- 	if (result) {
- 		dev_err(mpu_dev, "%s: cpu%d: failed creating freq table[%d]\n",
-@@ -173,10 +182,10 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 	}
- 
- 	result = cpufreq_frequency_table_cpuinfo(policy, freq_table);
--	if (!result)
--		cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
--	else
--		goto fail_ck;
-+	if (result)
-+		goto fail_table;
-+
-+	cpufreq_frequency_table_get_attr(freq_table, policy->cpu);
- 
- 	policy->min = policy->cpuinfo.min_freq;
- 	policy->max = policy->cpuinfo.max_freq;
-@@ -199,6 +208,8 @@ static int __cpuinit omap_cpu_init(struct cpufreq_policy *policy)
- 
- 	return 0;
- 
-+fail_table:
-+	freq_table_free();
- fail_ck:
- 	clk_put(mpu_clk);
- 	return result;
-@@ -206,6 +217,7 @@ fail_ck:
- 
- static int omap_cpu_exit(struct cpufreq_policy *policy)
- {
-+	freq_table_free();
- 	clk_put(mpu_clk);
- 	return 0;
- }
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0011-cpufreq-OMAP-fixup-for-omap_device-changes-include-l.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0011-cpufreq-OMAP-fixup-for-omap_device-changes-include-l.patch
deleted file mode 100644
index cb11d7a..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_cpufreq/0011-cpufreq-OMAP-fixup-for-omap_device-changes-include-l.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 492ddcd5eb9b88526903716293342b312595292a Mon Sep 17 00:00:00 2001
-From: Kevin Hilman <khilman at ti.com>
-Date: Fri, 30 Sep 2011 10:41:26 -0700
-Subject: [PATCH 11/11] cpufreq: OMAP: fixup for omap_device changes, include
- <linux/module.h>
-
-Minor fixups to work starting with v3.2:
-- use the new omap_device API for getting a device by name.
-- need to include <linux/module.h>
-
-Signed-off-by: Kevin Hilman <khilman at ti.com>
----
- drivers/cpufreq/omap-cpufreq.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/cpufreq/omap-cpufreq.c b/drivers/cpufreq/omap-cpufreq.c
-index ad94b4f..5d04c57 100644
---- a/drivers/cpufreq/omap-cpufreq.c
-+++ b/drivers/cpufreq/omap-cpufreq.c
-@@ -24,6 +24,7 @@
- #include <linux/io.h>
- #include <linux/opp.h>
- #include <linux/cpu.h>
-+#include <linux/module.h>
- 
- #include <asm/system.h>
- #include <asm/smp_plat.h>
-@@ -32,6 +33,7 @@
- #include <plat/clock.h>
- #include <plat/omap-pm.h>
- #include <plat/common.h>
-+#include <plat/omap_device.h>
- 
- #include <mach/hardware.h>
- 
-@@ -252,7 +254,7 @@ static int __init omap_cpufreq_init(void)
- 		return -EINVAL;
- 	}
- 
--	mpu_dev = omap2_get_mpuss_device();
-+	mpu_dev = omap_device_get_by_hwmod_name("mpu");
- 	if (!mpu_dev) {
- 		pr_warning("%s: unable to get the mpu device\n", __func__);
- 		return -EINVAL;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0001-omap3-Increase-limit-on-bootarg-mpurate.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0001-omap3-Increase-limit-on-bootarg-mpurate.patch
deleted file mode 100644
index 597c4dd..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0001-omap3-Increase-limit-on-bootarg-mpurate.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8c23e194ca34d280d21ca845acd18052928002d0 Mon Sep 17 00:00:00 2001
-From: Sanjeev Premi <premi at ti.com>
-Date: Thu, 29 Apr 2010 14:09:42 +0530
-Subject: [PATCH 1/6] omap3: Increase limit on bootarg 'mpurate'
-
-The value of mpurate is currently expected to be less
-than 1000 when specified in MHz.
-
-This patch raises this limit to 2000 to support 1GHz
-capable processors. The new limit should be reasonable
-for quite some time.
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/plat-omap/clock.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/plat-omap/clock.c b/arch/arm/plat-omap/clock.c
-index 567e4b5..fe4e67c 100644
---- a/arch/arm/plat-omap/clock.c
-+++ b/arch/arm/plat-omap/clock.c
-@@ -186,7 +186,7 @@ static int __init omap_clk_setup(char *str)
- 	if (!mpurate)
- 		return 1;
- 
--	if (mpurate < 1000)
-+	if (mpurate < 2000)
- 		mpurate *= 1000000;
- 
- 	return 1;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0002-ARM-OMAP-AM3517-3505-fix-crash-on-boot-due-to-incorr.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0002-ARM-OMAP-AM3517-3505-fix-crash-on-boot-due-to-incorr.patch
deleted file mode 100644
index 5c839c6..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0002-ARM-OMAP-AM3517-3505-fix-crash-on-boot-due-to-incorr.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 4f047b347137482b1894ab1c48ed472993dbbe54 Mon Sep 17 00:00:00 2001
-From: Paul Walmsley <paul at pwsan.com>
-Date: Fri, 16 Dec 2011 16:09:11 -0800
-Subject: [PATCH 2/6] ARM: OMAP: AM3517/3505: fix crash on boot due to
- incorrect voltagedomain data
-
-AM3517/3505 chips don't have voltage controller and voltage processor
-IP blocks.  Trying to use OMAP34xx/36xx voltage domain data on these
-chips causes a crash during boot:
-
-  omap_vc_init_channel: PMIC info requried to configure vc forvdd_core not populated.Hence cannot initialize vc
-  Unable to handle kernel NULL pointer dereference at virtual address 00000025
-  pgd = c0004000
-  [00000025] *pgd=00000000
-  Internal error: Oops: 5 [#1] SMP
-  Modules linked in:
-  CPU: 0    Tainted: G        W     (3.2.0-rc5-00006-g402ecf4 #304)
-  PC is at omap_vp_init+0x5c/0x14c
-  LR is at omap_vp_init+0x54/0x14c
-
-Fix this by using very minimal voltage domain definitions for AM3517/3505.
-
-Signed-off-by: Paul Walmsley <paul at pwsan.com>
-Cc: Igor Grinberg <grinberg at compulab.co.il>
-Cc: Kevin Hilman <khilman at ti.com>
-Signed-off-by: Tony Lindgren <tony at atomide.com>
----
- arch/arm/mach-omap2/voltagedomains3xxx_data.c |   40 +++++++++++++++++++++----
- 1 files changed, 34 insertions(+), 6 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/voltagedomains3xxx_data.c b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
-index 071101d..636b688 100644
---- a/arch/arm/mach-omap2/voltagedomains3xxx_data.c
-+++ b/arch/arm/mach-omap2/voltagedomains3xxx_data.c
-@@ -31,6 +31,14 @@
-  * VDD data
-  */
- 
-+/* OMAP3-common voltagedomain data */
-+
-+static struct voltagedomain omap3_voltdm_wkup = {
-+	.name = "wakeup",
-+};
-+
-+/* 34xx/36xx voltagedomain data */
-+
- static const struct omap_vfsm_instance omap3_vdd1_vfsm = {
- 	.voltsetup_reg = OMAP3_PRM_VOLTSETUP1_OFFSET,
- 	.voltsetup_mask = OMAP3430_SETUP_TIME1_MASK,
-@@ -63,10 +71,6 @@ static struct voltagedomain omap3_voltdm_core = {
- 	.vp = &omap3_vp_core,
- };
- 
--static struct voltagedomain omap3_voltdm_wkup = {
--	.name = "wakeup",
--};
--
- static struct voltagedomain *voltagedomains_omap3[] __initdata = {
- 	&omap3_voltdm_mpu,
- 	&omap3_voltdm_core,
-@@ -74,11 +78,30 @@ static struct voltagedomain *voltagedomains_omap3[] __initdata = {
- 	NULL,
- };
- 
-+/* AM35xx voltagedomain data */
-+
-+static struct voltagedomain am35xx_voltdm_mpu = {
-+	.name = "mpu_iva",
-+};
-+
-+static struct voltagedomain am35xx_voltdm_core = {
-+	.name = "core",
-+};
-+
-+static struct voltagedomain *voltagedomains_am35xx[] __initdata = {
-+	&am35xx_voltdm_mpu,
-+	&am35xx_voltdm_core,
-+	&omap3_voltdm_wkup,
-+	NULL,
-+};
-+
-+
- static const char *sys_clk_name __initdata = "sys_ck";
- 
- void __init omap3xxx_voltagedomains_init(void)
- {
- 	struct voltagedomain *voltdm;
-+	struct voltagedomain **voltdms;
- 	int i;
- 
- 	/*
-@@ -93,8 +116,13 @@ void __init omap3xxx_voltagedomains_init(void)
- 		omap3_voltdm_core.volt_data = omap34xx_vddcore_volt_data;
- 	}
- 
--	for (i = 0; voltdm = voltagedomains_omap3[i], voltdm; i++)
-+	if (cpu_is_omap3517() || cpu_is_omap3505())
-+		voltdms = voltagedomains_am35xx;
-+	else
-+		voltdms = voltagedomains_omap3;
-+
-+	for (i = 0; voltdm = voltdms[i], voltdm; i++)
- 		voltdm->sys_clk.name = sys_clk_name;
- 
--	voltdm_init(voltagedomains_omap3);
-+	voltdm_init(voltdms);
- };
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0003-ARM-OMAP4-hwmod-Don-t-wait-for-the-idle-status-if-mo.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0003-ARM-OMAP4-hwmod-Don-t-wait-for-the-idle-status-if-mo.patch
deleted file mode 100644
index aa29304..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0003-ARM-OMAP4-hwmod-Don-t-wait-for-the-idle-status-if-mo.patch
+++ /dev/null
@@ -1,200 +0,0 @@
-From 3752df4a899250ce6ad4ebd46e0c58235f9dcfa0 Mon Sep 17 00:00:00 2001
-From: Benoit Cousson <b-cousson at ti.com>
-Date: Fri, 16 Dec 2011 16:09:11 -0800
-Subject: [PATCH 3/6] ARM: OMAP4: hwmod: Don't wait for the idle status if
- modulemode is not supported
-
-If the module does not have any modulemode, the _disable_module function
-will do nothing. There is then no point waiting for a idle status change.
-
-It will remove the following warnings.
-
-[    0.331848] omap_hwmod: dmm: _wait_target_disable failed
-[    0.339935] omap_hwmod: emif_fw: _wait_target_disable failed
-[    0.348358] omap_hwmod: l3_main_1: _wait_target_disable failed
-[    0.356964] omap_hwmod: l3_main_2: _wait_target_disable failed
-[    0.365600] omap_hwmod: l4_abe: _wait_target_disable failed
-[    0.373931] omap_hwmod: l4_cfg: _wait_target_disable failed
-[    0.382263] omap_hwmod: l4_per: _wait_target_disable failed
-[    0.391113] omap_hwmod: l4_wkup: _wait_target_disable failed
-[    0.399536] omap_hwmod: dma_system: _wait_target_disable failed
-[    0.408325] omap_hwmod: dss_core: _wait_target_disable failed
-[    0.416839] omap_hwmod: dss_dispc: _wait_target_disable failed
-[    0.425445] omap_hwmod: dss_dsi1: _wait_target_disable failed
-[    0.433990] omap_hwmod: dss_dsi2: _wait_target_disable failed
-[    0.442504] omap_hwmod: dss_hdmi: _wait_target_disable failed
-[    0.451019] omap_hwmod: dss_rfbi: _wait_target_disable failed
-[    0.459564] omap_hwmod: dss_venc: _wait_target_disable failed
-[    0.489471] omap_hwmod: mailbox: _wait_target_disable failed
-[    0.505920] omap_hwmod: spinlock: _wait_target_disable failed
-
-Note: For such module, the state is managed automatically by HW according
-to clock domain transition. It is then not possible to wait for idle even
-later in the _idle function since the status will change at clock domain
-boundary.
-
-Signed-off-by: Benoit Cousson <b-cousson at ti.com>
-Cc: Paul Walmsley <paul at pwsan.com>
-Cc: Rajendra Nayak <rnayak at ti.com>
-[paul at pwsan.com: renamed fns to indicate that they are OMAP4-only; moved
- _wait_target_disable() into _disable_module(), removing duplicate code]
-Signed-off-by: Paul Walmsley <paul at pwsan.com>
-Signed-off-by: Tony Lindgren <tony at atomide.com>
----
- arch/arm/mach-omap2/omap_hwmod.c |   98 +++++++++++++++++++-------------------
- 1 files changed, 49 insertions(+), 49 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index 207a2ff..ebace0f 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -706,27 +706,65 @@ static void _enable_module(struct omap_hwmod *oh)
- }
- 
- /**
-- * _disable_module - enable CLKCTRL modulemode on OMAP4
-+ * _omap4_wait_target_disable - wait for a module to be disabled on OMAP4
-+ * @oh: struct omap_hwmod *
-+ *
-+ * Wait for a module @oh to enter slave idle.  Returns 0 if the module
-+ * does not have an IDLEST bit or if the module successfully enters
-+ * slave idle; otherwise, pass along the return value of the
-+ * appropriate *_cm*_wait_module_idle() function.
-+ */
-+static int _omap4_wait_target_disable(struct omap_hwmod *oh)
-+{
-+	if (!cpu_is_omap44xx())
-+		return 0;
-+
-+	if (!oh)
-+		return -EINVAL;
-+
-+	if (oh->_int_flags & _HWMOD_NO_MPU_PORT)
-+		return 0;
-+
-+	if (oh->flags & HWMOD_NO_IDLEST)
-+		return 0;
-+
-+	return omap4_cminst_wait_module_idle(oh->clkdm->prcm_partition,
-+					     oh->clkdm->cm_inst,
-+					     oh->clkdm->clkdm_offs,
-+					     oh->prcm.omap4.clkctrl_offs);
-+}
-+
-+/**
-+ * _omap4_disable_module - enable CLKCTRL modulemode on OMAP4
-  * @oh: struct omap_hwmod *
-  *
-  * Disable the PRCM module mode related to the hwmod @oh.
-- * No return value.
-+ * Return EINVAL if the modulemode is not supported and 0 in case of success.
-  */
--static void _disable_module(struct omap_hwmod *oh)
-+static int _omap4_disable_module(struct omap_hwmod *oh)
- {
-+	int v;
-+
- 	/* The module mode does not exist prior OMAP4 */
--	if (cpu_is_omap24xx() || cpu_is_omap34xx())
--		return;
-+	if (!cpu_is_omap44xx())
-+		return -EINVAL;
- 
- 	if (!oh->clkdm || !oh->prcm.omap4.modulemode)
--		return;
-+		return -EINVAL;
- 
--	pr_debug("omap_hwmod: %s: _disable_module\n", oh->name);
-+	pr_debug("omap_hwmod: %s: %s\n", oh->name, __func__);
- 
- 	omap4_cminst_module_disable(oh->clkdm->prcm_partition,
- 				    oh->clkdm->cm_inst,
- 				    oh->clkdm->clkdm_offs,
- 				    oh->prcm.omap4.clkctrl_offs);
-+
-+	v = _omap4_wait_target_disable(oh);
-+	if (v)
-+		pr_warn("omap_hwmod: %s: _wait_target_disable failed\n",
-+			oh->name);
-+
-+	return 0;
- }
- 
- /**
-@@ -1153,36 +1191,6 @@ static int _wait_target_ready(struct omap_hwmod *oh)
- }
- 
- /**
-- * _wait_target_disable - wait for a module to be disabled
-- * @oh: struct omap_hwmod *
-- *
-- * Wait for a module @oh to enter slave idle.  Returns 0 if the module
-- * does not have an IDLEST bit or if the module successfully enters
-- * slave idle; otherwise, pass along the return value of the
-- * appropriate *_cm*_wait_module_idle() function.
-- */
--static int _wait_target_disable(struct omap_hwmod *oh)
--{
--	/* TODO: For now just handle OMAP4+ */
--	if (cpu_is_omap24xx() || cpu_is_omap34xx())
--		return 0;
--
--	if (!oh)
--		return -EINVAL;
--
--	if (oh->_int_flags & _HWMOD_NO_MPU_PORT)
--		return 0;
--
--	if (oh->flags & HWMOD_NO_IDLEST)
--		return 0;
--
--	return omap4_cminst_wait_module_idle(oh->clkdm->prcm_partition,
--					     oh->clkdm->cm_inst,
--					     oh->clkdm->clkdm_offs,
--					     oh->prcm.omap4.clkctrl_offs);
--}
--
--/**
-  * _lookup_hardreset - fill register bit info for this hwmod/reset line
-  * @oh: struct omap_hwmod *
-  * @name: name of the reset line in the context of this hwmod
-@@ -1524,8 +1532,6 @@ static int _enable(struct omap_hwmod *oh)
-  */
- static int _idle(struct omap_hwmod *oh)
- {
--	int ret;
--
- 	pr_debug("omap_hwmod: %s: idling\n", oh->name);
- 
- 	if (oh->_state != _HWMOD_STATE_ENABLED) {
-@@ -1537,11 +1543,9 @@ static int _idle(struct omap_hwmod *oh)
- 	if (oh->class->sysc)
- 		_idle_sysc(oh);
- 	_del_initiator_dep(oh, mpu_oh);
--	_disable_module(oh);
--	ret = _wait_target_disable(oh);
--	if (ret)
--		pr_warn("omap_hwmod: %s: _wait_target_disable failed\n",
--			oh->name);
-+
-+	_omap4_disable_module(oh);
-+
- 	/*
- 	 * The module must be in idle mode before disabling any parents
- 	 * clocks. Otherwise, the parent clock might be disabled before
-@@ -1642,11 +1646,7 @@ static int _shutdown(struct omap_hwmod *oh)
- 	if (oh->_state == _HWMOD_STATE_ENABLED) {
- 		_del_initiator_dep(oh, mpu_oh);
- 		/* XXX what about the other system initiators here? dma, dsp */
--		_disable_module(oh);
--		ret = _wait_target_disable(oh);
--		if (ret)
--			pr_warn("omap_hwmod: %s: _wait_target_disable failed\n",
--				oh->name);
-+		_omap4_disable_module(oh);
- 		_disable_clocks(oh);
- 		if (oh->clkdm)
- 			clkdm_hwmod_disable(oh->clkdm, oh);
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0004-ARM-OMAP4-clock-Add-CPU-local-timer-clock-node.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0004-ARM-OMAP4-clock-Add-CPU-local-timer-clock-node.patch
deleted file mode 100644
index f6c4ab6..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0004-ARM-OMAP4-clock-Add-CPU-local-timer-clock-node.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 65f1ea963900225224754f674e8907248262a46b Mon Sep 17 00:00:00 2001
-From: Santosh Shilimkar <santosh.shilimkar at ti.com>
-Date: Fri, 16 Dec 2011 16:09:12 -0800
-Subject: [PATCH 4/6] ARM: OMAP4: clock: Add CPU local timer clock node
-
-Local timer clock is sourced from the CPU clock and hence changes
-along with CPU clock. These per CPU local timers are used as
-clock-events, so they need to be reconfigured on CPU frequency
-change as part of CPUfreq governor.
-
-Newly introduced clockevents_reconfigure() needs to know the
-twd clock-rate. Provide a clock-node to make clk_get_rate() work
-for TWD.
-
-Signed-off-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
-Cc: Paul Walmsley <paul at pwsan.com>
-Cc: Kevin Hilman <khilman at ti.com>
-[paul at pwsan.com: renamed clock node to 'mpu_periphclk' to indicate that this
- is the Cortex-A9 MPCore subsystem clock PERIPHCLK (DDI 0407G); moved
- clock and clkdev entries to match the autogenerated script output]
-Signed-off-by: Paul Walmsley <paul at pwsan.com>
-Signed-off-by: Tony Lindgren <tony at atomide.com>
----
- arch/arm/mach-omap2/clock44xx_data.c |    9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/clock44xx_data.c b/arch/arm/mach-omap2/clock44xx_data.c
-index 0798a80..730097e 100644
---- a/arch/arm/mach-omap2/clock44xx_data.c
-+++ b/arch/arm/mach-omap2/clock44xx_data.c
-@@ -1206,6 +1206,14 @@ static const struct clksel ocp_abe_iclk_div[] = {
- 	{ .parent = NULL },
- };
- 
-+static struct clk mpu_periphclk = {
-+	.name		= "mpu_periphclk",
-+	.parent		= &dpll_mpu_ck,
-+	.ops		= &clkops_null,
-+	.fixed_div	= 2,
-+	.recalc		= &omap_fixed_divisor_recalc,
-+};
-+
- static struct clk ocp_abe_iclk = {
- 	.name		= "ocp_abe_iclk",
- 	.parent		= &aess_fclk,
-@@ -3189,6 +3197,7 @@ static struct omap_clk omap44xx_clks[] = {
- 	CLK(NULL,	"l4_div_ck",			&l4_div_ck,	CK_443X),
- 	CLK(NULL,	"lp_clk_div_ck",		&lp_clk_div_ck,	CK_443X),
- 	CLK(NULL,	"l4_wkup_clk_mux_ck",		&l4_wkup_clk_mux_ck,	CK_443X),
-+	CLK("smp_twd",	NULL,				&mpu_periphclk,	CK_443X),
- 	CLK(NULL,	"ocp_abe_iclk",			&ocp_abe_iclk,	CK_443X),
- 	CLK(NULL,	"per_abe_24m_fclk",		&per_abe_24m_fclk,	CK_443X),
- 	CLK(NULL,	"per_abe_nc_fclk",		&per_abe_nc_fclk,	CK_443X),
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0005-ARM-OMAP3-hwmod-data-disable-multiblock-reads-on-MMC.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0005-ARM-OMAP3-hwmod-data-disable-multiblock-reads-on-MMC.patch
deleted file mode 100644
index 11461bc..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0005-ARM-OMAP3-hwmod-data-disable-multiblock-reads-on-MMC.patch
+++ /dev/null
@@ -1,161 +0,0 @@
-From 44d502c38e4c7bd924c7ac987af4525ec3e8818f Mon Sep 17 00:00:00 2001
-From: Paul Walmsley <paul at pwsan.com>
-Date: Thu, 15 Dec 2011 23:30:44 -0700
-Subject: [PATCH 5/6] ARM: OMAP3: hwmod data: disable multiblock reads on
- MMC1/2 on OMAP34xx/35xx <= ES2.1
-
-The HSMMC1/HSMMC2 host controllers on OMAP34xx and
-OMAP3503/3515/3525/3530 chips at ES levels prior to 3.0 can't do multiple
-block reads[1].  Mark the hwmod data appropriately.
-
-Reported by Dave Hylands <dhylands at gmail.com> and Steve Sakoman
-<sakoman at gmail.com>.  Thanks to Steve Sakoman for further help
-testing this patch.
-
-1. See for example Advisory 2.1.1.128 "MMC: Multiple Block Read
-   Operation Issue" in _OMAP3530/3525/3515/3503 Silicon Errata_
-   Revision F (October 2010) (SPRZ278F), available from
-   http://focus.ti.com/lit/er/sprz278f/sprz278f.pdf
-
-Note: added 36xx/am35 stuff in the next patch..
-
-Signed-off-by: Paul Walmsley <paul at pwsan.com>
-Cc: Dave Hylands <dhylands at gmail.com>
-Cc: Steve Sakoman <sakoman at gmail.com>
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |   90 ++++++++++++++++++++++++++-
- 1 files changed, 86 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
-index eef43e2..dcbcd64 100644
---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
-@@ -3072,7 +3072,35 @@ static struct omap_mmc_dev_attr mmc1_dev_attr = {
- 	.flags = OMAP_HSMMC_SUPPORTS_DUAL_VOLT,
- };
- 
--static struct omap_hwmod omap3xxx_mmc1_hwmod = {
-+/* See 35xx errata 2.1.1.128 in SPRZ278F */
-+static struct omap_mmc_dev_attr mmc1_pre_es3_dev_attr = {
-+	.flags = (OMAP_HSMMC_SUPPORTS_DUAL_VOLT |
-+		  OMAP_HSMMC_BROKEN_MULTIBLOCK_READ),
-+};
-+
-+static struct omap_hwmod omap3xxx_pre_es3_mmc1_hwmod = {
-+	.name		= "mmc1",
-+	.mpu_irqs	= omap34xx_mmc1_mpu_irqs,
-+	.sdma_reqs	= omap34xx_mmc1_sdma_reqs,
-+	.opt_clks	= omap34xx_mmc1_opt_clks,
-+	.opt_clks_cnt	= ARRAY_SIZE(omap34xx_mmc1_opt_clks),
-+	.main_clk	= "mmchs1_fck",
-+	.prcm		= {
-+		.omap2 = {
-+			.module_offs = CORE_MOD,
-+			.prcm_reg_id = 1,
-+			.module_bit = OMAP3430_EN_MMC1_SHIFT,
-+			.idlest_reg_id = 1,
-+			.idlest_idle_bit = OMAP3430_ST_MMC1_SHIFT,
-+		},
-+	},
-+	.dev_attr	= &mmc1_pre_es3_dev_attr,
-+	.slaves		= omap3xxx_mmc1_slaves,
-+	.slaves_cnt	= ARRAY_SIZE(omap3xxx_mmc1_slaves),
-+	.class		= &omap34xx_mmc_class,
-+};
-+
-+static struct omap_hwmod omap3xxx_es3plus_mmc1_hwmod = {
- 	.name		= "mmc1",
- 	.mpu_irqs	= omap34xx_mmc1_mpu_irqs,
- 	.sdma_reqs	= omap34xx_mmc1_sdma_reqs,
-@@ -3115,7 +3143,34 @@ static struct omap_hwmod_ocp_if *omap3xxx_mmc2_slaves[] = {
- 	&omap3xxx_l4_core__mmc2,
- };
- 
--static struct omap_hwmod omap3xxx_mmc2_hwmod = {
-+/* See 35xx errata 2.1.1.128 in SPRZ278F */
-+static struct omap_mmc_dev_attr mmc2_pre_es3_dev_attr = {
-+	.flags = OMAP_HSMMC_BROKEN_MULTIBLOCK_READ,
-+};
-+
-+static struct omap_hwmod omap3xxx_pre_es3_mmc2_hwmod = {
-+	.name		= "mmc2",
-+	.mpu_irqs	= omap34xx_mmc2_mpu_irqs,
-+	.sdma_reqs	= omap34xx_mmc2_sdma_reqs,
-+	.opt_clks	= omap34xx_mmc2_opt_clks,
-+	.opt_clks_cnt	= ARRAY_SIZE(omap34xx_mmc2_opt_clks),
-+	.main_clk	= "mmchs2_fck",
-+	.prcm		= {
-+		.omap2 = {
-+			.module_offs = CORE_MOD,
-+			.prcm_reg_id = 1,
-+			.module_bit = OMAP3430_EN_MMC2_SHIFT,
-+			.idlest_reg_id = 1,
-+			.idlest_idle_bit = OMAP3430_ST_MMC2_SHIFT,
-+		},
-+	},
-+	.dev_attr	= &mmc2_pre_es3_dev_attr,
-+	.slaves		= omap3xxx_mmc2_slaves,
-+	.slaves_cnt	= ARRAY_SIZE(omap3xxx_mmc2_slaves),
-+	.class		= &omap34xx_mmc_class,
-+};
-+
-+static struct omap_hwmod omap3xxx_es3plus_mmc2_hwmod = {
- 	.name		= "mmc2",
- 	.mpu_irqs	= omap34xx_mmc2_mpu_irqs,
- 	.sdma_reqs	= omap34xx_mmc2_sdma_reqs,
-@@ -3182,8 +3237,6 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
- 	&omap3xxx_l4_core_hwmod,
- 	&omap3xxx_l4_per_hwmod,
- 	&omap3xxx_l4_wkup_hwmod,
--	&omap3xxx_mmc1_hwmod,
--	&omap3xxx_mmc2_hwmod,
- 	&omap3xxx_mmc3_hwmod,
- 	&omap3xxx_mpu_hwmod,
- 
-@@ -3258,6 +3311,20 @@ static __initdata struct omap_hwmod *omap3430es2plus_hwmods[] = {
- 	NULL
- };
- 
-+/* <= 3430ES3-only hwmods */
-+static struct omap_hwmod *omap3430_pre_es3_hwmods[] __initdata = {
-+	&omap3xxx_pre_es3_mmc1_hwmod,
-+	&omap3xxx_pre_es3_mmc2_hwmod,
-+	NULL
-+};
-+
-+/* 3430ES3+-only hwmods */
-+static struct omap_hwmod *omap3430_es3plus_hwmods[] __initdata = {
-+	&omap3xxx_es3plus_mmc1_hwmod,
-+	&omap3xxx_es3plus_mmc2_hwmod,
-+	NULL
-+};
-+
- /* 34xx-only hwmods (all ES revisions) */
- static __initdata struct omap_hwmod *omap34xx_hwmods[] = {
- 	&omap3xxx_iva_hwmod,
-@@ -3334,6 +3401,21 @@ int __init omap3xxx_hwmod_init(void)
- 		h = omap3430es2plus_hwmods;
- 	};
- 
-+	if (h) {
-+		r = omap_hwmod_register(h);
-+		if (r < 0)
-+			return r;
-+	}
-+
-+	h = NULL;
-+	if (rev == OMAP3430_REV_ES1_0 || rev == OMAP3430_REV_ES2_0 ||
-+	    rev == OMAP3430_REV_ES2_1) {
-+		h = omap3430_pre_es3_hwmods;
-+	} else if (rev == OMAP3430_REV_ES3_0 || rev == OMAP3430_REV_ES3_1 ||
-+		   rev == OMAP3430_REV_ES3_1_2) {
-+		h = omap3430_es3plus_hwmods;
-+	};
-+
- 	if (h)
- 		r = omap_hwmod_register(h);
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0006-OMAP-HWMOD-add-es3plus-to-am36xx-am35xx.patch b/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0006-OMAP-HWMOD-add-es3plus-to-am36xx-am35xx.patch
deleted file mode 100644
index 3843345..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/omap_fixes/0006-OMAP-HWMOD-add-es3plus-to-am36xx-am35xx.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 9607ccc0276ee734d3c1a58da0ab4ee18c7fbd29 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Wed, 28 Dec 2011 10:32:54 -0600
-Subject: [PATCH 6/6] OMAP: HWMOD: add es3plus to am36xx/am35xx
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/omap_hwmod_3xxx_data.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
-index dcbcd64..3e1a489 100644
---- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
-@@ -3343,12 +3343,16 @@ static __initdata struct omap_hwmod *omap36xx_hwmods[] = {
- 	&omap36xx_sr2_hwmod,
- 	&omap3xxx_usbhsotg_hwmod,
- 	&omap3xxx_mailbox_hwmod,
-+	&omap3xxx_es3plus_mmc1_hwmod,
-+	&omap3xxx_es3plus_mmc2_hwmod,
- 	NULL
- };
- 
- static __initdata struct omap_hwmod *am35xx_hwmods[] = {
- 	&omap3xxx_dss_core_hwmod, /* XXX ??? */
- 	&am35xx_usbhsotg_hwmod,
-+	&omap3xxx_es3plus_mmc1_hwmod,
-+	&omap3xxx_es3plus_mmc2_hwmod,
- 	NULL
- };
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/panda/0001-panda-fix-wl12xx-regulator.patch b/recipes-kernel/linux/linux-mainline-3.2/panda/0001-panda-fix-wl12xx-regulator.patch
deleted file mode 100644
index 537f9a1..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/panda/0001-panda-fix-wl12xx-regulator.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 70fa21fa8918eaa6eb4e7bc98be328412804f52c Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Tue, 2 Aug 2011 21:55:34 -0500
-Subject: [PATCH 1/3] panda: fix wl12xx regulator
-
-pulled from: http://elinux.org/Panda_How_to_kernel_3_0_rel
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/twl-common.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/twl-common.c b/arch/arm/mach-omap2/twl-common.c
-index 10b20c6..5a1f23a 100644
---- a/arch/arm/mach-omap2/twl-common.c
-+++ b/arch/arm/mach-omap2/twl-common.c
-@@ -281,6 +281,7 @@ static struct regulator_init_data omap4_vusb_idata = {
- static struct regulator_init_data omap4_clk32kg_idata = {
- 	.constraints = {
- 		.valid_ops_mask		= REGULATOR_CHANGE_STATUS,
-+		.always_on		= true,
- 	},
- };
- 
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/panda/0002-panda-enable-bluetooth.patch b/recipes-kernel/linux/linux-mainline-3.2/panda/0002-panda-enable-bluetooth.patch
deleted file mode 100644
index 672896b..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/panda/0002-panda-enable-bluetooth.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From b0bd9a744aaaa95cae2640d00b3e046862399f4d Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Fri, 16 Mar 2012 10:23:09 -0500
-Subject: [PATCH 2/3] panda enable bluetooth
-
-The PandaBoard features a Texas Instruments WiLink7 Bluetooth
-chip, supported by the "btwilink" driver. The "uim" deamon
-requires sysfs entries that are filled in using this platform data.
-
-Signed-off-by: Mircea Gherzan <mgherzan at gmail.com>
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap4panda.c |   21 +++++++++++++++++++--
- include/linux/ti_wilink_st.h           |    2 ++
- 2 files changed, 21 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index 51b1c93..9f133ce 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -27,6 +27,7 @@
- #include <linux/i2c/twl.h>
- #include <linux/regulator/machine.h>
- #include <linux/regulator/fixed.h>
-+#include <linux/ti_wilink_st.h>
- #include <linux/wl12xx.h>
- 
- #include <mach/hardware.h>
-@@ -56,15 +57,29 @@
- #define HDMI_GPIO_HPD  63 /* Hotplug detect */
- 
- /* wl127x BT, FM, GPS connectivity chip */
--static int wl1271_gpios[] = {46, -1, -1};
-+static struct ti_st_plat_data wilink_platform_data = {
-+        .nshutdown_gpio	= 46,
-+        .dev_name		= "/dev/ttyO1",
-+        .flow_cntrl		= 1,
-+        .baud_rate		= 3000000,
-+        .chip_enable		= NULL,
-+        .suspend		= NULL,
-+        .resume		= NULL,
-+};
-+
- static struct platform_device wl1271_device = {
- 	.name	= "kim",
- 	.id	= -1,
- 	.dev	= {
--		.platform_data	= &wl1271_gpios,
-+		.platform_data	= &wilink_platform_data,
- 	},
- };
- 
-+static struct platform_device btwilink_device = {
-+	.name	= "btwilink",
-+	.id	= -1,
-+};
-+
- static struct gpio_led gpio_leds[] = {
- 	{
- 		.name			= "pandaboard::status1",
-@@ -91,9 +106,11 @@ static struct platform_device leds_gpio = {
- 	},
- };
- 
-+
- static struct platform_device *panda_devices[] __initdata = {
- 	&leds_gpio,
- 	&wl1271_device,
-+	&btwilink_device,
- };
- 
- static const struct usbhs_omap_board_data usbhs_bdata __initconst = {
-diff --git a/include/linux/ti_wilink_st.h b/include/linux/ti_wilink_st.h
-index 2ef4385..3ca0269 100644
---- a/include/linux/ti_wilink_st.h
-+++ b/include/linux/ti_wilink_st.h
-@@ -25,6 +25,8 @@
- #ifndef TI_WILINK_ST_H
- #define TI_WILINK_ST_H
- 
-+#include <linux/skbuff.h>
-+
- /**
-  * enum proto-type - The protocol on WiLink chips which share a
-  *	common physical interface like UART.
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/panda/0003-ti-st-st-kim-fixing-firmware-path.patch b/recipes-kernel/linux/linux-mainline-3.2/panda/0003-ti-st-st-kim-fixing-firmware-path.patch
deleted file mode 100644
index d35ed10..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/panda/0003-ti-st-st-kim-fixing-firmware-path.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d55373d5923e5486c0f63c3fe907bb3b168673b4 Mon Sep 17 00:00:00 2001
-From: Ricardo Salveti de Araujo <ricardo.salveti at linaro.org>
-Date: Tue, 25 Oct 2011 10:06:39 +0200
-Subject: [PATCH 3/3] ti-st/st-kim: fixing firmware path
-
-Signed-off-by: Ricardo Salveti de Araujo <ricardo.salveti at linaro.org>
----
- drivers/misc/ti-st/st_kim.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/misc/ti-st/st_kim.c b/drivers/misc/ti-st/st_kim.c
-index 43ef8d1..00c2ecd 100644
---- a/drivers/misc/ti-st/st_kim.c
-+++ b/drivers/misc/ti-st/st_kim.c
-@@ -224,7 +224,7 @@ static long read_local_version(struct kim_data_s *kim_gdata, char *bts_scr_name)
- 	if (version & 0x8000)
- 		maj_ver |= 0x0008;
- 
--	sprintf(bts_scr_name, "TIInit_%d.%d.%d.bts", chip, maj_ver, min_ver);
-+	sprintf(bts_scr_name, "ti-connectivity/TIInit_%d.%d.%d.bts", chip, maj_ver, min_ver);
- 
- 	/* to be accessed later via sysfs entry */
- 	kim_gdata->version.full = version;
-@@ -267,7 +267,7 @@ static long download_firmware(struct kim_data_s *kim_gdata)
- 	long len = 0;
- 	unsigned char *ptr = NULL;
- 	unsigned char *action_ptr = NULL;
--	unsigned char bts_scr_name[30] = { 0 };	/* 30 char long bts scr name? */
-+	unsigned char bts_scr_name[50] = { 0 };	/* 50 char long bts scr name? */
- 	int wr_room_space;
- 	int cmd_size;
- 	unsigned long timeout;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch b/recipes-kernel/linux/linux-mainline-3.2/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch
deleted file mode 100644
index cc17b5f..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 0d8912990ee89be4166d30d44ed5522590605a3d Mon Sep 17 00:00:00 2001
-From: Steve Sakoman <steve at sakoman.com>
-Date: Tue, 19 Jan 2010 21:19:15 -0800
-Subject: [PATCH 1/3] OMAP: DSS2: add bootarg for selecting svideo
-
- OMAP: DSS2: add bootarg for selecting svideo or composite for tv output
- also add pal-16 and ntsc-16 omapfb.mode settings for 16bpp
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/video/omap2/dss/venc.c           |   22 ++++++++++++++++++++++
- drivers/video/omap2/omapfb/omapfb-main.c |   10 +++++++++-
- 2 files changed, 31 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
-index 7533458..b404095 100644
---- a/drivers/video/omap2/dss/venc.c
-+++ b/drivers/video/omap2/dss/venc.c
-@@ -87,6 +87,11 @@
- #define VENC_OUTPUT_TEST			0xC8
- #define VENC_DAC_B__DAC_C			0xC8
- 
-+static char *tv_connection;
-+
-+module_param_named(tvcable, tv_connection, charp, 0);
-+MODULE_PARM_DESC(tvcable, "TV connection type (svideo, composite)");
-+
- struct venc_config {
- 	u32 f_control;
- 	u32 vidout_ctrl;
-@@ -474,6 +479,23 @@ static int venc_panel_probe(struct omap_dss_device *dssdev)
- {
- 	dssdev->panel.timings = omap_dss_pal_timings;
- 
-+	/* Allow the TV output to be overriden */
-+	if (tv_connection) {
-+		if (strcmp(tv_connection, "svideo") == 0) {
-+			printk(KERN_INFO
-+				"omapdss: tv output is svideo.\n");
-+			dssdev->phy.venc.type = OMAP_DSS_VENC_TYPE_SVIDEO;
-+		} else if (strcmp(tv_connection, "composite") == 0) {
-+			printk(KERN_INFO
-+				"omapdss: tv output is composite.\n");
-+			dssdev->phy.venc.type = OMAP_DSS_VENC_TYPE_COMPOSITE;
-+		} else {
-+			printk(KERN_INFO
-+				"omapdss: unsupported output type'%s'.\n",
-+				tv_connection);
-+		}
-+	}
-+
- 	return 0;
- }
- 
-diff --git a/drivers/video/omap2/omapfb/omapfb-main.c b/drivers/video/omap2/omapfb/omapfb-main.c
-index 70aa47d..dd27b00 100644
---- a/drivers/video/omap2/omapfb/omapfb-main.c
-+++ b/drivers/video/omap2/omapfb/omapfb-main.c
-@@ -2091,7 +2091,15 @@ static int omapfb_mode_to_timings(const char *mode_str,
- 	int r;
- 
- #ifdef CONFIG_OMAP2_DSS_VENC
--	if (strcmp(mode_str, "pal") == 0) {
-+	if (strcmp(mode_str, "pal-16") == 0) {
-+		*timings = omap_dss_pal_timings;
-+		*bpp = 16;
-+		return 0;
-+	} else if (strcmp(mode_str, "ntsc-16") == 0) {
-+		*timings = omap_dss_ntsc_timings;
-+		*bpp = 16;
-+		return 0;
-+	} else if (strcmp(mode_str, "pal") == 0) {
- 		*timings = omap_dss_pal_timings;
- 		*bpp = 24;
- 		return 0;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/sakoman/0002-video-add-timings-for-hd720.patch b/recipes-kernel/linux/linux-mainline-3.2/sakoman/0002-video-add-timings-for-hd720.patch
deleted file mode 100644
index 2a0372b..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/sakoman/0002-video-add-timings-for-hd720.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-From 882636ad4c5577ae404c8215baf974f01a303b7f Mon Sep 17 00:00:00 2001
-From: Steve Sakoman <steve at sakoman.com>
-Date: Sat, 19 Dec 2009 06:52:43 -0800
-Subject: [PATCH 2/3] video: add timings for hd720
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/video/modedb.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/video/modedb.c b/drivers/video/modedb.c
-index a9a907c..5b686de 100644
---- a/drivers/video/modedb.c
-+++ b/drivers/video/modedb.c
-@@ -103,6 +103,10 @@ static const struct fb_videomode modedb[] = {
- 	{ NULL, 70, 1024, 768, 13333, 144, 24, 29, 3, 136, 6, 0,
- 		FB_VMODE_NONINTERLACED },
- 
-+	/* 1280x720 @ 60 Hz, 45 kHz hsync, CEA 681-E Format 4 */
-+	{ "hd720", 60, 1280, 720, 13468, 220, 110, 20, 5, 40, 5, 0,
-+		FB_VMODE_NONINTERLACED },
-+
- 	/* 1280x1024 @ 87 Hz interlaced, 51 kHz hsync */
- 	{ NULL, 87, 1280, 1024, 12500, 56, 16, 128, 1, 216, 12,	0,
- 		FB_VMODE_INTERLACED },
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/sakoman/0003-omap-mmc-Adjust-dto-to-eliminate-timeout-errors.patch b/recipes-kernel/linux/linux-mainline-3.2/sakoman/0003-omap-mmc-Adjust-dto-to-eliminate-timeout-errors.patch
deleted file mode 100644
index 552a91a..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/sakoman/0003-omap-mmc-Adjust-dto-to-eliminate-timeout-errors.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c329d9c39d444411d2fbd76b38823ae3f524a688 Mon Sep 17 00:00:00 2001
-From: Steve Sakoman <steve at sakoman.com>
-Date: Wed, 12 Jan 2011 05:54:55 -0800
-Subject: [PATCH 3/3] omap: mmc: Adjust dto to eliminate timeout errors
-
-A number of SD card types were experiencing timeout errors.  This
-could also lead to data corruption in some cases.
-
-This fix proposed by Sukumar Ghoral of TI.
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- drivers/mmc/host/omap_hsmmc.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
-index d5fe43d..f190d63 100644
---- a/drivers/mmc/host/omap_hsmmc.c
-+++ b/drivers/mmc/host/omap_hsmmc.c
-@@ -1513,6 +1513,7 @@ static void set_data_timeout(struct omap_hsmmc_host *host,
- 	cycle_ns = 1000000000 / (clk_get_rate(host->fclk) / clkd);
- 	timeout = timeout_ns / cycle_ns;
- 	timeout += timeout_clks;
-+	timeout *= 2;
- 	if (timeout) {
- 		while ((timeout & 0x80000000) == 0) {
- 			dto += 1;
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/sgx/0001-Revert-OMAP-DSS2-remove-update_mode-from-omapdss-v3.2.patch b/recipes-kernel/linux/linux-mainline-3.2/sgx/0001-Revert-OMAP-DSS2-remove-update_mode-from-omapdss-v3.2.patch
deleted file mode 100644
index 9f24df0..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/sgx/0001-Revert-OMAP-DSS2-remove-update_mode-from-omapdss-v3.2.patch
+++ /dev/null
@@ -1,321 +0,0 @@
-From 4fbd1a6149222f1a075182e4d41cf1e2f72345d2 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Wed, 3 Aug 2011 11:08:04 -0500
-Subject: [PATCH] Revert "OMAP: DSS2: remove update_mode from omapdss"
-
-This reverts commit 8cff88c5da2197aa601409d4a7ce8f83f8de8190.
----
- drivers/video/omap2/displays/panel-taal.c |   17 ++++++++
- drivers/video/omap2/dss/display.c         |   45 ++++++++++++++++++++++
- drivers/video/omap2/dss/manager.c         |   59 ++++++++++++++++++++++-------
- drivers/video/omap2/dss/venc.c            |   17 ++++++++
- include/video/omapdss.h                   |   11 +++++
- 5 files changed, 135 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/video/omap2/displays/panel-taal.c b/drivers/video/omap2/displays/panel-taal.c
-index 80c3f6a..a2a7380 100644
---- a/drivers/video/omap2/displays/panel-taal.c
-+++ b/drivers/video/omap2/displays/panel-taal.c
-@@ -1874,6 +1874,20 @@ err:
- 	mutex_unlock(&td->lock);
- }
- 
-+static int taal_set_update_mode(struct omap_dss_device *dssdev,
-+		enum omap_dss_update_mode mode)
-+{
-+	if (mode != OMAP_DSS_UPDATE_MANUAL)
-+		return -EINVAL;
-+	return 0;
-+}
-+
-+static enum omap_dss_update_mode taal_get_update_mode(
-+		struct omap_dss_device *dssdev)
-+{
-+	return OMAP_DSS_UPDATE_MANUAL;
-+}
-+
- static struct omap_dss_driver taal_driver = {
- 	.probe		= taal_probe,
- 	.remove		= __exit_p(taal_remove),
-@@ -1883,6 +1897,9 @@ static struct omap_dss_driver taal_driver = {
- 	.suspend	= taal_suspend,
- 	.resume		= taal_resume,
- 
-+	.set_update_mode = taal_set_update_mode,
-+	.get_update_mode = taal_get_update_mode,
-+
- 	.update		= taal_update,
- 	.sync		= taal_sync,
- 
-diff --git a/drivers/video/omap2/dss/display.c b/drivers/video/omap2/dss/display.c
-index be331dc..6fa445c 100644
---- a/drivers/video/omap2/dss/display.c
-+++ b/drivers/video/omap2/dss/display.c
-@@ -65,6 +65,48 @@ static ssize_t display_enabled_store(struct device *dev,
- 	return size;
- }
- 
-+static ssize_t display_upd_mode_show(struct device *dev,
-+		struct device_attribute *attr, char *buf)
-+{
-+	struct omap_dss_device *dssdev = to_dss_device(dev);
-+	enum omap_dss_update_mode mode = OMAP_DSS_UPDATE_AUTO;
-+	if (dssdev->driver->get_update_mode)
-+		mode = dssdev->driver->get_update_mode(dssdev);
-+	return snprintf(buf, PAGE_SIZE, "%d\n", mode);
-+}
-+
-+static ssize_t display_upd_mode_store(struct device *dev,
-+		struct device_attribute *attr,
-+		const char *buf, size_t size)
-+{
-+	struct omap_dss_device *dssdev = to_dss_device(dev);
-+	int val, r;
-+	enum omap_dss_update_mode mode;
-+
-+	if (!dssdev->driver->set_update_mode)
-+		return -EINVAL;
-+
-+	r = kstrtoint(buf, 0, &val);
-+	if (r)
-+		return r;
-+
-+	switch (val) {
-+	case OMAP_DSS_UPDATE_DISABLED:
-+	case OMAP_DSS_UPDATE_AUTO:
-+	case OMAP_DSS_UPDATE_MANUAL:
-+		mode = (enum omap_dss_update_mode)val;
-+		break;
-+	default:
-+		return -EINVAL;
-+	}
-+
-+	r = dssdev->driver->set_update_mode(dssdev, mode);
-+	if (r)
-+		return r;
-+
-+	return size;
-+}
-+
- static ssize_t display_tear_show(struct device *dev,
- 		struct device_attribute *attr, char *buf)
- {
-@@ -250,6 +292,8 @@ static ssize_t display_wss_store(struct device *dev,
- 
- static DEVICE_ATTR(enabled, S_IRUGO|S_IWUSR,
- 		display_enabled_show, display_enabled_store);
-+static DEVICE_ATTR(update_mode, S_IRUGO|S_IWUSR,
-+		display_upd_mode_show, display_upd_mode_store);
- static DEVICE_ATTR(tear_elim, S_IRUGO|S_IWUSR,
- 		display_tear_show, display_tear_store);
- static DEVICE_ATTR(timings, S_IRUGO|S_IWUSR,
-@@ -263,6 +307,7 @@ static DEVICE_ATTR(wss, S_IRUGO|S_IWUSR,
- 
- static struct device_attribute *display_sysfs_attrs[] = {
- 	&dev_attr_enabled,
-+	&dev_attr_update_mode,
- 	&dev_attr_tear_elim,
- 	&dev_attr_timings,
- 	&dev_attr_rotate,
-diff --git a/drivers/video/omap2/dss/manager.c b/drivers/video/omap2/dss/manager.c
-index 6e63845..e5684a9 100644
---- a/drivers/video/omap2/dss/manager.c
-+++ b/drivers/video/omap2/dss/manager.c
-@@ -515,6 +515,8 @@ struct overlay_cache_data {
- 
- 	u32 fifo_low;
- 	u32 fifo_high;
-+
-+	bool manual_update;
- };
- 
- struct manager_cache_data {
-@@ -528,6 +530,7 @@ struct manager_cache_data {
- 
- 	struct omap_overlay_manager_info info;
- 
-+	bool manual_upd_display;
- 	bool manual_update;
- 	bool do_manual_update;
- 
-@@ -636,15 +639,24 @@ static int dss_mgr_wait_for_go(struct omap_overlay_manager *mgr)
- 	if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
- 		return 0;
- 
--	if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE)
--		return 0;
--
- 	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
- 			|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
- 		irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
- 	} else {
--		irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
--			DISPC_IRQ_VSYNC : DISPC_IRQ_VSYNC2;
-+		if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
-+			enum omap_dss_update_mode mode;
-+			mode = dssdev->driver->get_update_mode(dssdev);
-+			if (mode != OMAP_DSS_UPDATE_AUTO)
-+				return 0;
-+
-+			irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-+				DISPC_IRQ_FRAMEDONE
-+				: DISPC_IRQ_FRAMEDONE2;
-+		} else {
-+			irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-+				DISPC_IRQ_VSYNC
-+				: DISPC_IRQ_VSYNC2;
-+		}
- 	}
- 
- 	mc = &dss_cache.manager_cache[mgr->id];
-@@ -705,15 +717,24 @@ int dss_mgr_wait_for_go_ovl(struct omap_overlay *ovl)
- 	if (!dssdev || dssdev->state != OMAP_DSS_DISPLAY_ACTIVE)
- 		return 0;
- 
--	if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE)
--		return 0;
--
- 	if (dssdev->type == OMAP_DISPLAY_TYPE_VENC
- 			|| dssdev->type == OMAP_DISPLAY_TYPE_HDMI) {
- 		irq = DISPC_IRQ_EVSYNC_ODD | DISPC_IRQ_EVSYNC_EVEN;
- 	} else {
--		irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
--			DISPC_IRQ_VSYNC : DISPC_IRQ_VSYNC2;
-+		if (dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE) {
-+			enum omap_dss_update_mode mode;
-+			mode = dssdev->driver->get_update_mode(dssdev);
-+			if (mode != OMAP_DSS_UPDATE_AUTO)
-+				return 0;
-+
-+			irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-+				DISPC_IRQ_FRAMEDONE
-+				: DISPC_IRQ_FRAMEDONE2;
-+		} else {
-+			irq = (dssdev->manager->id == OMAP_DSS_CHANNEL_LCD) ?
-+				DISPC_IRQ_VSYNC
-+				: DISPC_IRQ_VSYNC2;
-+		}
- 	}
- 
- 	oc = &dss_cache.overlay_cache[ovl->id];
-@@ -848,7 +869,7 @@ static int configure_overlay(enum omap_plane plane)
- 	orig_outw = outw;
- 	orig_outh = outh;
- 
--	if (mc->manual_update && mc->do_manual_update) {
-+	if (c->manual_update && mc->do_manual_update) {
- 		unsigned bpp;
- 		unsigned scale_x_m = w, scale_x_d = outw;
- 		unsigned scale_y_m = h, scale_y_d = outh;
-@@ -1010,7 +1031,7 @@ static int configure_dispc(void)
- 		if (!oc->dirty)
- 			continue;
- 
--		if (mc->manual_update && !mc->do_manual_update)
-+		if (oc->manual_update && !mc->do_manual_update)
- 			continue;
- 
- 		if (mgr_busy[oc->channel]) {
-@@ -1058,7 +1079,7 @@ static int configure_dispc(void)
- 		/* We don't need GO with manual update display. LCD iface will
- 		 * always be turned off after frame, and new settings will be
- 		 * taken in to use at next update */
--		if (!mc->manual_update)
-+		if (!mc->manual_upd_display)
- 			dispc_mgr_go(i);
- 	}
- 
-@@ -1376,6 +1397,11 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
- 
- 		oc->enabled = true;
- 
-+		oc->manual_update =
-+			dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE &&
-+			dssdev->driver->get_update_mode(dssdev) !=
-+				OMAP_DSS_UPDATE_AUTO;
-+
- 		++num_planes_enabled;
- 	}
- 
-@@ -1402,8 +1428,13 @@ static int omap_dss_mgr_apply(struct omap_overlay_manager *mgr)
- 		mc->dirty = true;
- 		mc->info = mgr->info;
- 
--		mc->manual_update =
-+		mc->manual_upd_display =
- 			dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE;
-+
-+		mc->manual_update =
-+			dssdev->caps & OMAP_DSS_DISPLAY_CAP_MANUAL_UPDATE &&
-+			dssdev->driver->get_update_mode(dssdev) !=
-+				OMAP_DSS_UPDATE_AUTO;
- 	}
- 
- 	/* XXX TODO: Try to get fifomerge working. The problem is that it
-diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
-index b404095..a8b03c1 100644
---- a/drivers/video/omap2/dss/venc.c
-+++ b/drivers/video/omap2/dss/venc.c
-@@ -579,6 +579,20 @@ static int venc_panel_resume(struct omap_dss_device *dssdev)
- 	return venc_panel_enable(dssdev);
- }
- 
-+static enum omap_dss_update_mode venc_get_update_mode(
-+		struct omap_dss_device *dssdev)
-+{
-+	return OMAP_DSS_UPDATE_AUTO;
-+}
-+
-+static int venc_set_update_mode(struct omap_dss_device *dssdev,
-+		enum omap_dss_update_mode mode)
-+{
-+	if (mode != OMAP_DSS_UPDATE_AUTO)
-+		return -EINVAL;
-+	return 0;
-+}
-+
- static void venc_get_timings(struct omap_dss_device *dssdev,
- 			struct omap_video_timings *timings)
- {
-@@ -663,6 +677,9 @@ static struct omap_dss_driver venc_driver = {
- 	.get_resolution	= omapdss_default_get_resolution,
- 	.get_recommended_bpp = omapdss_default_get_recommended_bpp,
- 
-+	.set_update_mode = venc_set_update_mode,
-+	.get_update_mode = venc_get_update_mode,
-+
- 	.get_timings	= venc_get_timings,
- 	.set_timings	= venc_set_timings,
- 	.check_timings	= venc_check_timings,
-diff --git a/include/video/omapdss.h b/include/video/omapdss.h
-index 378c7ed..540d61e 100644
---- a/include/video/omapdss.h
-+++ b/include/video/omapdss.h
-@@ -152,6 +152,12 @@ enum omap_display_caps {
- 	OMAP_DSS_DISPLAY_CAP_TEAR_ELIM		= 1 << 1,
- };
- 
-+enum omap_dss_update_mode {
-+	OMAP_DSS_UPDATE_DISABLED = 0,
-+	OMAP_DSS_UPDATE_AUTO,
-+	OMAP_DSS_UPDATE_MANUAL,
-+};
-+
- enum omap_dss_display_state {
- 	OMAP_DSS_DISPLAY_DISABLED = 0,
- 	OMAP_DSS_DISPLAY_ACTIVE,
-@@ -587,6 +593,11 @@ struct omap_dss_driver {
- 	int (*resume)(struct omap_dss_device *display);
- 	int (*run_test)(struct omap_dss_device *display, int test);
- 
-+	int (*set_update_mode)(struct omap_dss_device *dssdev,
-+			enum omap_dss_update_mode);
-+	enum omap_dss_update_mode (*get_update_mode)(
-+			struct omap_dss_device *dssdev);
-+
- 	int (*update)(struct omap_dss_device *dssdev,
- 			       u16 x, u16 y, u16 w, u16 h);
- 	int (*sync)(struct omap_dss_device *dssdev);
--- 
-1.7.7.3
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch b/recipes-kernel/linux/linux-mainline-3.2/touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch
deleted file mode 100644
index eb77607..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 2b3c730256f7c9ab32beaccf33f44713d25f4a85 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Fri, 25 Feb 2011 10:41:07 -0600
-Subject: [PATCH 1/2] omap3: touchbook: remove mmc gpio_wp
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3touchbook.c |    8 +-------
- 1 files changed, 1 insertions(+), 7 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
-index a2d0d19..6b4cd92 100644
---- a/arch/arm/mach-omap2/board-omap3touchbook.c
-+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
-@@ -99,7 +99,7 @@ static struct omap2_hsmmc_info mmc[] = {
- 	{
- 		.mmc		= 1,
- 		.caps		= MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
--		.gpio_wp	= 29,
-+		.gpio_wp	= -EINVAL,
- 	},
- 	{}	/* Terminator */
- };
-@@ -117,12 +117,6 @@ static struct gpio_led gpio_leds[];
- static int touchbook_twl_gpio_setup(struct device *dev,
- 		unsigned gpio, unsigned ngpio)
- {
--	if (system_rev >= 0x20 && system_rev <= 0x34301000) {
--		omap_mux_init_gpio(23, OMAP_PIN_INPUT);
--		mmc[0].gpio_wp = 23;
--	} else {
--		omap_mux_init_gpio(29, OMAP_PIN_INPUT);
--	}
- 	/* gpio + 0 is "mmc0_cd" (input/IRQ) */
- 	mmc[0].gpio_cd = gpio + 0;
- 	omap2_hsmmc_init(mmc);
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline-3.2/touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch b/recipes-kernel/linux/linux-mainline-3.2/touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch
deleted file mode 100644
index 0319264..0000000
--- a/recipes-kernel/linux/linux-mainline-3.2/touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 8b320724e0d7f17acb22d4af9ec73f0d28ed05d0 Mon Sep 17 00:00:00 2001
-From: Robert Nelson <robertcnelson at gmail.com>
-Date: Fri, 25 Feb 2011 11:32:37 -0600
-Subject: [PATCH 2/2] omap3: touchbook: drop u-boot readonly
-
-Signed-off-by: Robert Nelson <robertcnelson at gmail.com>
----
- arch/arm/mach-omap2/board-omap3touchbook.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-omap3touchbook.c b/arch/arm/mach-omap2/board-omap3touchbook.c
-index 6b4cd92..5d209c1 100644
---- a/arch/arm/mach-omap2/board-omap3touchbook.c
-+++ b/arch/arm/mach-omap2/board-omap3touchbook.c
-@@ -74,7 +74,6 @@ static struct mtd_partition omap3touchbook_nand_partitions[] = {
- 		.name		= "U-Boot",
- 		.offset		= MTDPART_OFS_APPEND,	/* Offset = 0x80000 */
- 		.size		= 15 * NAND_BLOCK_SIZE,
--		.mask_flags	= MTD_WRITEABLE,	/* force read-only */
- 	},
- 	{
- 		.name		= "U-Boot Env",
--- 
-1.7.7.4
-
diff --git a/recipes-kernel/linux/linux-mainline_3.2.bb b/recipes-kernel/linux/linux-mainline_3.2.bb
deleted file mode 100644
index 7398d9a..0000000
--- a/recipes-kernel/linux/linux-mainline_3.2.bb
+++ /dev/null
@@ -1,111 +0,0 @@
-require linux.inc
-
-DESCRIPTION = "Linux kernel for TI processors"
-
-COMPATIBLE_MACHINE = "(beagleboard)"
-
-PV = "3.2.28"
-# v3.2.28 tag
-SRCREV_pn-${PN} = "1f873aca1c7aa7a574b276c040d304d16f1dbfa4"
-
-# The main PR is now using MACHINE_KERNEL_PR, for omap3 see conf/machine/include/omap3.inc
-MACHINE_KERNEL_PR_append = "b"
-PR = "${MACHINE_KERNEL_PR}"
-
-FILESPATH =. "${FILE_DIRNAME}/linux-mainline-3.2:${FILE_DIRNAME}/linux-mainline-3.2/${MACHINE}:"
-
-SRC_URI += "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;branch=linux-3.2.y;protocol=git \
-            file://distro/0001-kbuild-deb-pkg-set-host-machine-after-dpkg-gencontro.patch \
-            file://omap_cpufreq/0001-cpufreq-OMAP-cleanup-for-multi-SoC-support-move-into.patch \
-            file://omap_cpufreq/0002-cpufreq-OMAP-Add-SMP-support-for-OMAP4.patch \
-            file://omap_cpufreq/0003-cpufreq-OMAP-Enable-all-CPUs-in-shared-policy-mask.patch \
-            file://omap_cpufreq/0004-cpufreq-OMAP-notify-even-with-bad-boot-frequency.patch \
-            file://omap_cpufreq/0005-cpufreq-OMAP-move-clk-name-decision-to-init.patch \
-            file://omap_cpufreq/0006-cpufreq-OMAP-deny-initialization-if-no-mpudev.patch \
-            file://omap_cpufreq/0007-cpufreq-OMAP-dont-support-freq_table.patch \
-            file://omap_cpufreq/0008-cpufreq-OMAP-only-supports-OPP-library.patch \
-            file://omap_cpufreq/0009-cpufreq-OMAP-put-clk-if-cpu_init-failed.patch \
-            file://omap_cpufreq/0010-cpufreq-OMAP-fix-freq_table-leak.patch \
-            file://omap_cpufreq/0011-cpufreq-OMAP-fixup-for-omap_device-changes-include-l.patch \
-            file://micrel_zippy2/0001-ksz8851-eeprom-93cx6-add-drive_data.patch \
-            file://micrel_zippy2/0002-ksz8851-eeprom-93cx6-add-eeprom_93cx6_write.patch \
-            file://micrel_zippy2/0003-ksz8851-read_mac_addr.patch \
-            file://micrel_zippy2/0004-ksz8851-93cx6-eeprom-access.patch \
-            file://micrel_zippy2/0005-ks8851.h-it-helps-to-include-the-include-file.patch \
-            file://micrel_zippy2/0006-ksz8851-move-to-header.patch \
-            file://micrel_zippy2/0007-ksz8851-move-more-to-header.patch \
-            file://micrel_zippy2/0008-ksz8851-share-ks8851_tx_hdr-union.patch \
-            file://micrel_zippy2/0009-ksz8851-add-is_level_irq.patch \
-            file://micrel_zippy2/0010-ksz8851-turn-off-hardware-interrupt-druing-receive-p.patch \
-            file://micrel_zippy2/0011-ksz8851-make-sure-is-awake-before-writing-mac.patch \
-            file://micrel_zippy2/0012-ksz8851-add-mutex-lock-unlock-to-ks.patch \
-            file://micrel_zippy2/0013-ksz8851-add-ks8851_tx_check.patch \
-            file://micrel_zippy2/0014-ksz8851-move-ks8851_set_powermode.patch \
-            file://sakoman/0001-OMAP-DSS2-add-bootarg-for-selecting-svideo.patch \
-            file://sakoman/0002-video-add-timings-for-hd720.patch \
-            file://sakoman/0003-omap-mmc-Adjust-dto-to-eliminate-timeout-errors.patch \
-            file://beagle/0001-expansion-add-buddy-param-for-expansionboard-names.patch \
-            file://beagle/0002-expansion-add-mmc-regulator-and-ds1307-rtc.patch \
-            file://beagle/0003-expansion-add-zippy.patch \
-            file://beagle/0004-expansion-add-zippy2.patch \
-            file://beagle/0005-expansion-add-trainer.patch \
-            file://beagle/0006-expansion-add-ulcd.patch \
-            file://beagle/0007-beagleboard-reinstate-usage-of-hi-speed-PLL-divider.patch \
-            file://beagle/0008-Turn-on-the-USB-regulator-on-Beagle-xM-explicitly.patch \
-            file://beagle/0009-meego-modedb-add-Toshiba-LTA070B220F-800x480-support.patch \
-            file://beagle/0010-beagleboard-fix-uLCD7-support.patch \
-            file://beagle/0011-default-to-fifo-mode-5-for-old-musb-beagles.patch \
-            file://beagle/0012-backlight-Add-TLC59108-backlight-control-driver.patch \
-            file://beagle/0013-tlc59108-adjust-for-beagleboard-uLCD7.patch \
-            file://beagle/0014-expansion-add-wifi.patch \
-            file://beagle/0015-ASoC-omap-add-MODULE_ALIAS-to-mcbsp-and-pcm-drivers.patch \
-            file://beagle/0016-ASoC-omap-convert-per-board-modules-to-platform-driv.patch \
-            file://devkit8000/0001-arm-omap-devkit8000-for-lcd-use-samsung_lte_panel.patch \
-            file://touchbook/0001-omap3-touchbook-remove-mmc-gpio_wp.patch \
-            file://touchbook/0002-omap3-touchbook-drop-u-boot-readonly.patch \
-            file://panda/0001-panda-fix-wl12xx-regulator.patch \
-            file://panda/0002-panda-enable-bluetooth.patch \
-            file://panda/0003-ti-st-st-kim-fixing-firmware-path.patch \
-            file://omap_fixes/0001-omap3-Increase-limit-on-bootarg-mpurate.patch \
-            file://omap_fixes/0002-ARM-OMAP-AM3517-3505-fix-crash-on-boot-due-to-incorr.patch \
-            file://omap_fixes/0003-ARM-OMAP4-hwmod-Don-t-wait-for-the-idle-status-if-mo.patch \
-            file://omap_fixes/0004-ARM-OMAP4-clock-Add-CPU-local-timer-clock-node.patch \
-            file://omap_fixes/0005-ARM-OMAP3-hwmod-data-disable-multiblock-reads-on-MMC.patch \
-            file://omap_fixes/0006-OMAP-HWMOD-add-es3plus-to-am36xx-am35xx.patch \
-            file://sgx/0001-Revert-OMAP-DSS2-remove-update_mode-from-omapdss-v3.2.patch \
-            file://led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch \
-            file://libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch \
-            file://libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch \
-            file://libertas/0003-switch-debugfs-to-umode_t.patch \
-            file://libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch \
-            file://libertas/0005-libertas-remove-dump_survey-implementation.patch \
-            file://libertas/0007-wireless-libertas-remove-redundant-NULL-tests-before.patch \
-            file://libertas/0008-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch \
-            file://libertas/0009-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch \
-            file://libertas/0010-libertas-Firmware-loading-simplifications.patch \
-            file://libertas/0011-libertas-harden-up-exit-paths.patch \
-            file://libertas/0012-libertas-add-asynchronous-firmware-loading-capabilit.patch \
-            file://libertas/0013-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch \
-            file://libertas/0014-libertas-USB-convert-to-asynchronous-firmware-loadin.patch \
-            file://libertas/0015-libertas-CS-convert-to-asynchronous-firmware-loading.patch \
-            file://libertas/0016-libertas-add-missing-include.patch \
-            file://libertas/0017-remove-debug-msgs-due-to-missing-in_interrupt.patch \
-           \
-            file://defconfig"
-
-SRC_URI_append_beagleboard = " file://logo_linux_clut224.ppm \
-"
-
-S = "${WORKDIR}/git"
-
-# Sadly perf is broken:
-#| util/hist.c: In function '__hists__add_entry':
-#| util/hist.c:240:27: error: invalid type argument of '->' (have 'struct hist_entry')
-#| util/hist.c:241:23: error: invalid type argument of '->' (have 'struct hist_entry')
-do_compile_perf() {
-	:
-}
-
-do_install_perf() {
-	:
-}
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0001-MAINTAINERS-stable-Update-address.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0001-MAINTAINERS-stable-Update-address.patch
deleted file mode 100644
index 8ba0074..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0001-MAINTAINERS-stable-Update-address.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From b794efe1ee39a3987a8957553c9b195f2efb701f Mon Sep 17 00:00:00 2001
-From: Joe Perches <joe at perches.com>
-Date: Fri, 9 Dec 2011 13:54:34 -0800
-Subject: [PATCH 01/49] MAINTAINERS: stable: Update address
-
-commit bc7a2f3abc636d7cab84258a48e77b08fb5fd3d6 upstream.
-
-The old address hasn't worked since the great intrusion of August 2011.
-
-Signed-off-by: Joe Perches <joe at perches.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- MAINTAINERS |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/MAINTAINERS b/MAINTAINERS
-index 62f1cd3..f986e7d 100644
---- a/MAINTAINERS
-+++ b/MAINTAINERS
-@@ -6258,7 +6258,7 @@ F:	arch/alpha/kernel/srm_env.c
- 
- STABLE BRANCH
- M:	Greg Kroah-Hartman <greg at kroah.com>
--L:	stable at kernel.org
-+L:	stable at vger.kernel.org
- S:	Maintained
- 
- STAGING SUBSYSTEM
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0002-Documentation-Update-stable-address.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0002-Documentation-Update-stable-address.patch
deleted file mode 100644
index 4de7c82..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0002-Documentation-Update-stable-address.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 154964fb738a03a11e805252423a902b9c481c0f Mon Sep 17 00:00:00 2001
-From: Joe Perches <joe at perches.com>
-Date: Fri, 9 Dec 2011 14:12:00 -0800
-Subject: [PATCH 02/49] Documentation: Update stable address
-
-commit 2eb7f204db51969ea558802a6601d79c2fb273b9 upstream.
-
-The Japanese/Korean/Chinese versions still need updating.
-
-Also, the stable kernel 2.6.x.y descriptions are out of date
-and should be updated as well.
-
-Signed-off-by: Joe Perches <joe at perches.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- Documentation/HOWTO                         |    4 ++--
- Documentation/development-process/5.Posting |    8 ++++----
- 2 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/Documentation/HOWTO b/Documentation/HOWTO
-index 81bc1a9..f7ade3b 100644
---- a/Documentation/HOWTO
-+++ b/Documentation/HOWTO
-@@ -275,8 +275,8 @@ versions.
- If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
- kernel is the current stable kernel.
- 
--2.6.x.y are maintained by the "stable" team <stable at kernel.org>, and are
--released as needs dictate.  The normal release period is approximately 
-+2.6.x.y are maintained by the "stable" team <stable at vger.kernel.org>, and
-+are released as needs dictate.  The normal release period is approximately
- two weeks, but it can be longer if there are no pressing problems.  A
- security-related problem, instead, can cause a release to happen almost
- instantly.
-diff --git a/Documentation/development-process/5.Posting b/Documentation/development-process/5.Posting
-index 903a254..8a48c9b 100644
---- a/Documentation/development-process/5.Posting
-+++ b/Documentation/development-process/5.Posting
-@@ -271,10 +271,10 @@ copies should go to:
-    the linux-kernel list.
- 
-  - If you are fixing a bug, think about whether the fix should go into the
--   next stable update.  If so, stable at kernel.org should get a copy of the
--   patch.  Also add a "Cc: stable at kernel.org" to the tags within the patch
--   itself; that will cause the stable team to get a notification when your
--   fix goes into the mainline.
-+   next stable update.  If so, stable at vger.kernel.org should get a copy of
-+   the patch.  Also add a "Cc: stable at vger.kernel.org" to the tags within
-+   the patch itself; that will cause the stable team to get a notification
-+   when your fix goes into the mainline.
- 
- When selecting recipients for a patch, it is good to have an idea of who
- you think will eventually accept the patch and get it merged.  While it
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0003-firmware-Fix-an-oops-on-reading-fw_priv-fw-in-sysfs-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0003-firmware-Fix-an-oops-on-reading-fw_priv-fw-in-sysfs-.patch
deleted file mode 100644
index 1714a0e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0003-firmware-Fix-an-oops-on-reading-fw_priv-fw-in-sysfs-.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 27d332636f77fe598e435682ced1dfd589ffd0e6 Mon Sep 17 00:00:00 2001
-From: Neil Horman <nhorman at tuxdriver.com>
-Date: Mon, 2 Jan 2012 15:31:23 -0500
-Subject: [PATCH 03/49] firmware: Fix an oops on reading fw_priv->fw in sysfs
- loading file
-
-commit eea915bb0d1358755f151eaefb8208a2d5f3e10c upstream.
-
-This oops was reported recently:
-firmware_loading_store+0xf9/0x17b
-dev_attr_store+0x20/0x22
-sysfs_write_file+0x101/0x134
-vfs_write+0xac/0xf3
-sys_write+0x4a/0x6e
-system_call_fastpath+0x16/0x1b
-
-The complete backtrace was unfortunately not captured, but details can be found
-here:
-https://bugzilla.redhat.com/show_bug.cgi?id=769920
-
-The cause is fairly clear.
-
-Its caused by the fact that firmware_loading_store has a case 0 in its
-switch statement that reads and writes the fw_priv->fw poniter without the
-protection of the fw_lock mutex.  since there is a window between the time that
-_request_firmware sets fw_priv->fw to NULL and the time the corresponding sysfs
-file is unregistered, its possible for a user space application to race in, and
-write a zero to the loading file, causing a NULL dereference in
-firmware_loading_store.  Fix it by extending the protection of the fw_lock mutex
-to cover all of the firware_loading_store function.
-
-Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/base/firmware_class.c |   14 +++++++-------
- 1 file changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
-index 06ed6b4..3719c94 100644
---- a/drivers/base/firmware_class.c
-+++ b/drivers/base/firmware_class.c
-@@ -226,13 +226,13 @@ static ssize_t firmware_loading_store(struct device *dev,
- 	int loading = simple_strtol(buf, NULL, 10);
- 	int i;
- 
-+	mutex_lock(&fw_lock);
-+
-+	if (!fw_priv->fw)
-+		goto out;
-+
- 	switch (loading) {
- 	case 1:
--		mutex_lock(&fw_lock);
--		if (!fw_priv->fw) {
--			mutex_unlock(&fw_lock);
--			break;
--		}
- 		firmware_free_data(fw_priv->fw);
- 		memset(fw_priv->fw, 0, sizeof(struct firmware));
- 		/* If the pages are not owned by 'struct firmware' */
-@@ -243,7 +243,6 @@ static ssize_t firmware_loading_store(struct device *dev,
- 		fw_priv->page_array_size = 0;
- 		fw_priv->nr_pages = 0;
- 		set_bit(FW_STATUS_LOADING, &fw_priv->status);
--		mutex_unlock(&fw_lock);
- 		break;
- 	case 0:
- 		if (test_bit(FW_STATUS_LOADING, &fw_priv->status)) {
-@@ -274,7 +273,8 @@ static ssize_t firmware_loading_store(struct device *dev,
- 		fw_load_abort(fw_priv);
- 		break;
- 	}
--
-+out:
-+	mutex_unlock(&fw_lock);
- 	return count;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0004-rt2800usb-Move-ID-out-of-unknown.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0004-rt2800usb-Move-ID-out-of-unknown.patch
deleted file mode 100644
index 4a6caf4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0004-rt2800usb-Move-ID-out-of-unknown.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 13b85c61c69eec7cfd6dde8ce87540ca0760fb49 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Tue, 27 Dec 2011 12:22:51 -0600
-Subject: [PATCH 04/49] rt2800usb: Move ID out of unknown
-
-commit 3f81f8f1524ccca24df1029b0cf825ecef5e5cdc upstream.
-
-Testing on the openSUSE wireless forum has shown that a Linksys
-WUSB54GC v3 with USB ID 1737:0077 works with rt2800usb when the ID is
-written to /sys/.../new_id. This ID can therefore be moved out of UNKNOWN.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Acked-by: Ivo van Doorn <IvDoorn at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index 3778763..3265b34 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -976,6 +976,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x13b1, 0x0031) },
- 	{ USB_DEVICE(0x1737, 0x0070) },
- 	{ USB_DEVICE(0x1737, 0x0071) },
-+	{ USB_DEVICE(0x1737, 0x0077) },
- 	/* Logitec */
- 	{ USB_DEVICE(0x0789, 0x0162) },
- 	{ USB_DEVICE(0x0789, 0x0163) },
-@@ -1171,7 +1172,6 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x1740, 0x0605) },
- 	{ USB_DEVICE(0x1740, 0x0615) },
- 	/* Linksys */
--	{ USB_DEVICE(0x1737, 0x0077) },
- 	{ USB_DEVICE(0x1737, 0x0078) },
- 	/* Logitec */
- 	{ USB_DEVICE(0x0789, 0x0168) },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0005-offb-Fix-setting-of-the-pseudo-palette-for-8bpp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0005-offb-Fix-setting-of-the-pseudo-palette-for-8bpp.patch
deleted file mode 100644
index 0ac0a3e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0005-offb-Fix-setting-of-the-pseudo-palette-for-8bpp.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 7cfe5244ace9d57f46d8928552a885b084e04170 Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Date: Wed, 28 Dec 2011 00:10:16 +0000
-Subject: [PATCH 05/49] offb: Fix setting of the pseudo-palette for >8bpp
-
-commit 1bb0b7d21584b3f878e2bc880db62351ddee5185 upstream.
-
-When using a >8bpp framebuffer, offb advertises truecolor, not directcolor,
-and doesn't touch the color map even if it has a corresponding access method
-for the real hardware.
-
-Thus it needs to set the pseudo-palette with all 3 components of the color,
-like other truecolor framebuffers, not with copies of the color index like
-a directcolor framebuffer would do.
-
-This went unnoticed for a long time because it's pretty hard to get offb
-to kick in with anything but 8bpp (old BootX under MacOS will do that and
-qemu does it).
-
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/video/offb.c |   50 +++++++++++++++++++++++---------------------------
- 1 file changed, 23 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/video/offb.c b/drivers/video/offb.c
-index cb163a5..24e1fc6 100644
---- a/drivers/video/offb.c
-+++ b/drivers/video/offb.c
-@@ -100,36 +100,32 @@ static int offb_setcolreg(u_int regno, u_int red, u_int green, u_int blue,
- 			  u_int transp, struct fb_info *info)
- {
- 	struct offb_par *par = (struct offb_par *) info->par;
--	int i, depth;
--	u32 *pal = info->pseudo_palette;
--
--	depth = info->var.bits_per_pixel;
--	if (depth == 16)
--		depth = (info->var.green.length == 5) ? 15 : 16;
--
--	if (regno > 255 ||
--	    (depth == 16 && regno > 63) ||
--	    (depth == 15 && regno > 31))
--		return 1;
--
--	if (regno < 16) {
--		switch (depth) {
--		case 15:
--			pal[regno] = (regno << 10) | (regno << 5) | regno;
--			break;
--		case 16:
--			pal[regno] = (regno << 11) | (regno << 5) | regno;
--			break;
--		case 24:
--			pal[regno] = (regno << 16) | (regno << 8) | regno;
--			break;
--		case 32:
--			i = (regno << 8) | regno;
--			pal[regno] = (i << 16) | i;
--			break;
-+
-+	if (info->fix.visual == FB_VISUAL_TRUECOLOR) {
-+		u32 *pal = info->pseudo_palette;
-+		u32 cr = red >> (16 - info->var.red.length);
-+		u32 cg = green >> (16 - info->var.green.length);
-+		u32 cb = blue >> (16 - info->var.blue.length);
-+		u32 value;
-+
-+		if (regno >= 16)
-+			return -EINVAL;
-+
-+		value = (cr << info->var.red.offset) |
-+			(cg << info->var.green.offset) |
-+			(cb << info->var.blue.offset);
-+		if (info->var.transp.length > 0) {
-+			u32 mask = (1 << info->var.transp.length) - 1;
-+			mask <<= info->var.transp.offset;
-+			value |= mask;
- 		}
-+		pal[regno] = value;
-+		return 0;
- 	}
- 
-+	if (regno > 255)
-+		return -EINVAL;
-+
- 	red >>= 8;
- 	green >>= 8;
- 	blue >>= 8;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0006-offb-Fix-bug-in-calculating-requested-vram-size.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0006-offb-Fix-bug-in-calculating-requested-vram-size.patch
deleted file mode 100644
index d50f615..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0006-offb-Fix-bug-in-calculating-requested-vram-size.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From fa2fd2a2567605b97f702458ad603c502d680b8e Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Date: Tue, 3 Jan 2012 12:09:15 +1100
-Subject: [PATCH 06/49] offb: Fix bug in calculating requested vram size
-
-commit c055fe0797b7bd8f6f21a13598a55a16d5c13ae7 upstream.
-
-We used to try to request 8 times more vram than needed, which would
-fail if the card has a too small BAR (observed with qemu & kvm).
-
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/video/offb.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/video/offb.c b/drivers/video/offb.c
-index 24e1fc6..3251a02 100644
---- a/drivers/video/offb.c
-+++ b/drivers/video/offb.c
-@@ -377,7 +377,7 @@ static void __init offb_init_fb(const char *name, const char *full_name,
- 				int pitch, unsigned long address,
- 				int foreign_endian, struct device_node *dp)
- {
--	unsigned long res_size = pitch * height * (depth + 7) / 8;
-+	unsigned long res_size = pitch * height;
- 	struct offb_par *par = &default_par;
- 	unsigned long res_start = address;
- 	struct fb_fix_screeninfo *fix;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0007-libertas-clean-up-scan-thread-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0007-libertas-clean-up-scan-thread-handling.patch
deleted file mode 100644
index f1586e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0007-libertas-clean-up-scan-thread-handling.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From e6b88766bba2a356fba01665ddf133de1bb35051 Mon Sep 17 00:00:00 2001
-From: Andres Salomon <dilinger at queued.net>
-Date: Mon, 19 Dec 2011 12:22:58 -0800
-Subject: [PATCH 07/49] libertas: clean up scan thread handling
-
-commit afbca95f95f2bf7283a72670c24c1f6de00b1cb5 upstream.
-
-The libertas scan thread expects priv->scan_req to be non-NULL.  In theory,
-it should always be set.  In practice, we've seen the following oops:
-
-[ 8363.067444] Unable to handle kernel NULL pointer dereference at virtual address 00000004
-[ 8363.067490] pgd = c0004000
-[ 8363.078393] [00000004] *pgd=00000000
-[ 8363.086711] Internal error: Oops: 17 [#1] PREEMPT
-[ 8363.091375] Modules linked in: fuse libertas_sdio libertas psmouse mousedev ov7670 mmp_camera joydev videobuf2_core videobuf2_dma_sg videobuf2_memops [last unloaded: scsi_wait_scan]
-[ 8363.107490] CPU: 0    Not tainted  (3.0.0-gf7ccc69 #671)
-[ 8363.112799] PC is at lbs_scan_worker+0x108/0x5a4 [libertas]
-[ 8363.118326] LR is at 0x0
-[ 8363.120836] pc : [<bf03a854>]    lr : [<00000000>]    psr: 60000113
-[ 8363.120845] sp : ee66bf48  ip : 00000000  fp : 00000000
-[ 8363.120845] r10: ee2c2088  r9 : c04e2efc  r8 : eef97005
-[ 8363.132231] r7 : eee0716f  r6 : ee2c02c0  r5 : ee2c2088  r4 : eee07160
-[ 8363.137419] r3 : 00000000  r2 : a0000113  r1 : 00000001  r0 : eee07160
-[ 8363.143896] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
-[ 8363.157630] Control: 10c5387d  Table: 2e754019  DAC: 00000015
-[ 8363.163334] Process kworker/u:1 (pid: 25, stack limit = 0xee66a2f8)
-
-While I've not found a smoking gun, there are two places that raised red flags
-for me.  The first is in _internal_start_scan, when we queue up a scan; we
-first queue the worker, and then set priv->scan_req.  There's theoretically
-a 50mS delay which should be plenty, but doing things that way just seems
-racy (and not in the good way).
-
-The second is in the scan worker thread itself.  Depending on the state of
-priv->scan_channel, we cancel pending scan runs and then requeue a run in
-300mS.  We then send the scan command down to the hardware, sleep, and if
-we get scan results for all the desired channels, we set priv->scan_req to
-NULL.  However, it that's happened in less than 300mS, what happens with
-the pending scan run?
-
-This patch addresses both of those concerns.  With the patch applied, we
-have not seen the oops in the past two weeks.
-
-Signed-off-by: Andres Salomon <dilinger at queued.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/libertas/cfg.c |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
-index a7f1ab2..db64ef1 100644
---- a/drivers/net/wireless/libertas/cfg.c
-+++ b/drivers/net/wireless/libertas/cfg.c
-@@ -728,9 +728,11 @@ static void lbs_scan_worker(struct work_struct *work)
- 		le16_to_cpu(scan_cmd->hdr.size),
- 		lbs_ret_scan, 0);
- 
--	if (priv->scan_channel >= priv->scan_req->n_channels)
-+	if (priv->scan_channel >= priv->scan_req->n_channels) {
- 		/* Mark scan done */
-+		cancel_delayed_work(&priv->scan_work);
- 		lbs_scan_done(priv);
-+	}
- 
- 	/* Restart network */
- 	if (carrier)
-@@ -759,12 +761,12 @@ static void _internal_start_scan(struct lbs_private *priv, bool internal,
- 		request->n_ssids, request->n_channels, request->ie_len);
- 
- 	priv->scan_channel = 0;
--	queue_delayed_work(priv->work_thread, &priv->scan_work,
--		msecs_to_jiffies(50));
--
- 	priv->scan_req = request;
- 	priv->internal_scan = internal;
- 
-+	queue_delayed_work(priv->work_thread, &priv->scan_work,
-+		msecs_to_jiffies(50));
-+
- 	lbs_deb_leave(LBS_DEB_CFG80211);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0008-bcma-support-for-suspend-and-resume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0008-bcma-support-for-suspend-and-resume.patch
deleted file mode 100644
index 2ff2e38..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0008-bcma-support-for-suspend-and-resume.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 5799429729ba8ad2cc0854682b106df29cdf2c7f Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>
-Date: Fri, 9 Dec 2011 22:16:07 +0100
-Subject: [PATCH 08/49] bcma: support for suspend and resume
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 775ab52142b02237a54184238e922251c59a2b5c upstream.
-
-bcma used to lock up machine without enabling PCI or initializing CC.
-
-Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/bcma/bcma_private.h |    3 +++
- drivers/bcma/host_pci.c     |   37 +++++++++++++++++++++++++++++++++++++
- drivers/bcma/main.c         |   16 ++++++++++++++++
- 3 files changed, 56 insertions(+)
-
-diff --git a/drivers/bcma/bcma_private.h b/drivers/bcma/bcma_private.h
-index 30a3085..fda56bd 100644
---- a/drivers/bcma/bcma_private.h
-+++ b/drivers/bcma/bcma_private.h
-@@ -18,6 +18,9 @@ void bcma_bus_unregister(struct bcma_bus *bus);
- int __init bcma_bus_early_register(struct bcma_bus *bus,
- 				   struct bcma_device *core_cc,
- 				   struct bcma_device *core_mips);
-+#ifdef CONFIG_PM
-+int bcma_bus_resume(struct bcma_bus *bus);
-+#endif
- 
- /* scan.c */
- int bcma_bus_scan(struct bcma_bus *bus);
-diff --git a/drivers/bcma/host_pci.c b/drivers/bcma/host_pci.c
-index 1b51d8b..990f5a8 100644
---- a/drivers/bcma/host_pci.c
-+++ b/drivers/bcma/host_pci.c
-@@ -224,6 +224,41 @@ static void bcma_host_pci_remove(struct pci_dev *dev)
- 	pci_set_drvdata(dev, NULL);
- }
- 
-+#ifdef CONFIG_PM
-+static int bcma_host_pci_suspend(struct pci_dev *dev, pm_message_t state)
-+{
-+	/* Host specific */
-+	pci_save_state(dev);
-+	pci_disable_device(dev);
-+	pci_set_power_state(dev, pci_choose_state(dev, state));
-+
-+	return 0;
-+}
-+
-+static int bcma_host_pci_resume(struct pci_dev *dev)
-+{
-+	struct bcma_bus *bus = pci_get_drvdata(dev);
-+	int err;
-+
-+	/* Host specific */
-+	pci_set_power_state(dev, 0);
-+	err = pci_enable_device(dev);
-+	if (err)
-+		return err;
-+	pci_restore_state(dev);
-+
-+	/* Bus specific */
-+	err = bcma_bus_resume(bus);
-+	if (err)
-+		return err;
-+
-+	return 0;
-+}
-+#else /* CONFIG_PM */
-+# define bcma_host_pci_suspend	NULL
-+# define bcma_host_pci_resume	NULL
-+#endif /* CONFIG_PM */
-+
- static DEFINE_PCI_DEVICE_TABLE(bcma_pci_bridge_tbl) = {
- 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x0576) },
- 	{ PCI_DEVICE(PCI_VENDOR_ID_BROADCOM, 0x4331) },
-@@ -239,6 +274,8 @@ static struct pci_driver bcma_pci_bridge_driver = {
- 	.id_table = bcma_pci_bridge_tbl,
- 	.probe = bcma_host_pci_probe,
- 	.remove = bcma_host_pci_remove,
-+	.suspend = bcma_host_pci_suspend,
-+	.resume = bcma_host_pci_resume,
- };
- 
- int __init bcma_host_pci_init(void)
-diff --git a/drivers/bcma/main.c b/drivers/bcma/main.c
-index 70c84b9..10f92b3 100644
---- a/drivers/bcma/main.c
-+++ b/drivers/bcma/main.c
-@@ -240,6 +240,22 @@ int __init bcma_bus_early_register(struct bcma_bus *bus,
- 	return 0;
- }
- 
-+#ifdef CONFIG_PM
-+int bcma_bus_resume(struct bcma_bus *bus)
-+{
-+	struct bcma_device *core;
-+
-+	/* Init CC core */
-+	core = bcma_find_core(bus, BCMA_CORE_CHIPCOMMON);
-+	if (core) {
-+		bus->drv_cc.setup_done = false;
-+		bcma_core_chipcommon_init(&bus->drv_cc);
-+	}
-+
-+	return 0;
-+}
-+#endif
-+
- int __bcma_driver_register(struct bcma_driver *drv, struct module *owner)
- {
- 	drv->drv.name = drv->name;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0009-wl12xx-Validate-FEM-index-from-ini-file-and-FW.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0009-wl12xx-Validate-FEM-index-from-ini-file-and-FW.patch
deleted file mode 100644
index 7b89ef2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0009-wl12xx-Validate-FEM-index-from-ini-file-and-FW.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From b230ef10214deadf20f4851b9f339333aa91b384 Mon Sep 17 00:00:00 2001
-From: Pontus Fuchs <pontus.fuchs at gmail.com>
-Date: Tue, 18 Oct 2011 09:23:41 +0200
-Subject: [PATCH 09/49] wl12xx: Validate FEM index from ini file and FW
-
-commit 2131d3c2f99b081806fdae7662c92fe6acda52af upstream.
-
-Check for out of bound FEM index to prevent reading beyond ini
-memory end.
-
-Signed-off-by: Pontus Fuchs <pontus.fuchs at gmail.com>
-Reviewed-by: Luciano Coelho <coelho at ti.com>
-Signed-off-by: Luciano Coelho <coelho at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/wl12xx/cmd.c |   22 ++++++++++++++++++++++
- 1 file changed, 22 insertions(+)
-
-diff --git a/drivers/net/wireless/wl12xx/cmd.c b/drivers/net/wireless/wl12xx/cmd.c
-index a52299e..54a0d66 100644
---- a/drivers/net/wireless/wl12xx/cmd.c
-+++ b/drivers/net/wireless/wl12xx/cmd.c
-@@ -120,6 +120,11 @@ int wl1271_cmd_general_parms(struct wl1271 *wl)
- 	if (!wl->nvs)
- 		return -ENODEV;
- 
-+	if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
-+		wl1271_warning("FEM index from INI out of bounds");
-+		return -EINVAL;
-+	}
-+
- 	gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
- 	if (!gen_parms)
- 		return -ENOMEM;
-@@ -143,6 +148,12 @@ int wl1271_cmd_general_parms(struct wl1271 *wl)
- 	gp->tx_bip_fem_manufacturer =
- 		gen_parms->general_params.tx_bip_fem_manufacturer;
- 
-+	if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
-+		wl1271_warning("FEM index from FW out of bounds");
-+		ret = -EINVAL;
-+		goto out;
-+	}
-+
- 	wl1271_debug(DEBUG_CMD, "FEM autodetect: %s, manufacturer: %d\n",
- 		     answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer);
- 
-@@ -162,6 +173,11 @@ int wl128x_cmd_general_parms(struct wl1271 *wl)
- 	if (!wl->nvs)
- 		return -ENODEV;
- 
-+	if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
-+		wl1271_warning("FEM index from ini out of bounds");
-+		return -EINVAL;
-+	}
-+
- 	gen_parms = kzalloc(sizeof(*gen_parms), GFP_KERNEL);
- 	if (!gen_parms)
- 		return -ENOMEM;
-@@ -186,6 +202,12 @@ int wl128x_cmd_general_parms(struct wl1271 *wl)
- 	gp->tx_bip_fem_manufacturer =
- 		gen_parms->general_params.tx_bip_fem_manufacturer;
- 
-+	if (gp->tx_bip_fem_manufacturer >= WL1271_INI_FEM_MODULE_COUNT) {
-+		wl1271_warning("FEM index from FW out of bounds");
-+		ret = -EINVAL;
-+		goto out;
-+	}
-+
- 	wl1271_debug(DEBUG_CMD, "FEM autodetect: %s, manufacturer: %d\n",
- 		     answer ? "auto" : "manual", gp->tx_bip_fem_manufacturer);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0010-wl12xx-Check-buffer-bound-when-processing-nvs-data.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0010-wl12xx-Check-buffer-bound-when-processing-nvs-data.patch
deleted file mode 100644
index fb3214a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0010-wl12xx-Check-buffer-bound-when-processing-nvs-data.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 1fae8f9be678520727414fa8f16417e17ccd4088 Mon Sep 17 00:00:00 2001
-From: Pontus Fuchs <pontus.fuchs at gmail.com>
-Date: Tue, 18 Oct 2011 09:23:42 +0200
-Subject: [PATCH 10/49] wl12xx: Check buffer bound when processing nvs data
-
-commit f6efe96edd9c41c624c8f4ddbc4930c1a2d8f1e1 upstream.
-
-An nvs with malformed contents could cause the processing of the
-calibration data to read beyond the end of the buffer. Prevent this
-from happening by adding bound checking.
-
-Signed-off-by: Pontus Fuchs <pontus.fuchs at gmail.com>
-Reviewed-by: Luciano Coelho <coelho at ti.com>
-Signed-off-by: Luciano Coelho <coelho at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/wl12xx/boot.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/net/wireless/wl12xx/boot.c b/drivers/net/wireless/wl12xx/boot.c
-index 6813379..a7b327d 100644
---- a/drivers/net/wireless/wl12xx/boot.c
-+++ b/drivers/net/wireless/wl12xx/boot.c
-@@ -347,6 +347,9 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
- 		nvs_ptr += 3;
- 
- 		for (i = 0; i < burst_len; i++) {
-+			if (nvs_ptr + 3 >= (u8 *) wl->nvs + nvs_len)
-+				goto out_badnvs;
-+
- 			val = (nvs_ptr[0] | (nvs_ptr[1] << 8)
- 			       | (nvs_ptr[2] << 16) | (nvs_ptr[3] << 24));
- 
-@@ -358,6 +361,9 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
- 			nvs_ptr += 4;
- 			dest_addr += 4;
- 		}
-+
-+		if (nvs_ptr >= (u8 *) wl->nvs + nvs_len)
-+			goto out_badnvs;
- 	}
- 
- 	/*
-@@ -369,6 +375,10 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
- 	 */
- 	nvs_ptr = (u8 *)wl->nvs +
- 			ALIGN(nvs_ptr - (u8 *)wl->nvs + 7, 4);
-+
-+	if (nvs_ptr >= (u8 *) wl->nvs + nvs_len)
-+		goto out_badnvs;
-+
- 	nvs_len -= nvs_ptr - (u8 *)wl->nvs;
- 
- 	/* Now we must set the partition correctly */
-@@ -384,6 +394,10 @@ static int wl1271_boot_upload_nvs(struct wl1271 *wl)
- 
- 	kfree(nvs_aligned);
- 	return 0;
-+
-+out_badnvs:
-+	wl1271_error("nvs data is malformed");
-+	return -EILSEQ;
- }
- 
- static void wl1271_boot_enable_interrupts(struct wl1271 *wl)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0011-wl12xx-Restore-testmode-ABI.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0011-wl12xx-Restore-testmode-ABI.patch
deleted file mode 100644
index 2700f3b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0011-wl12xx-Restore-testmode-ABI.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 99a27ec9ad08dc0ab97efb62c424215911e2a580 Mon Sep 17 00:00:00 2001
-From: Pontus Fuchs <pontus.fuchs at gmail.com>
-Date: Thu, 1 Dec 2011 12:13:44 +0100
-Subject: [PATCH 11/49] wl12xx: Restore testmode ABI
-
-commit 3f1764945eaac532c20ab1f23afa352a40f797b2 upstream.
-
-Commit 80900d0140a7648587982c8f299830e900e49165 accidently broke
-the ABI for testmode commands. Restore the ABI again.
-
-Signed-off-by: Pontus Fuchs <pontus.fuchs at gmail.com>
-Signed-off-by: Luciano Coelho <coelho at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/wl12xx/testmode.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/wl12xx/testmode.c b/drivers/net/wireless/wl12xx/testmode.c
-index 4ae8eff..abfb120 100644
---- a/drivers/net/wireless/wl12xx/testmode.c
-+++ b/drivers/net/wireless/wl12xx/testmode.c
-@@ -36,6 +36,7 @@ enum wl1271_tm_commands {
- 	WL1271_TM_CMD_TEST,
- 	WL1271_TM_CMD_INTERROGATE,
- 	WL1271_TM_CMD_CONFIGURE,
-+	WL1271_TM_CMD_NVS_PUSH,		/* Not in use. Keep to not break ABI */
- 	WL1271_TM_CMD_SET_PLT_MODE,
- 	WL1271_TM_CMD_RECOVER,
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0012-powerpc-time-Handle-wrapping-of-decrementer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0012-powerpc-time-Handle-wrapping-of-decrementer.patch
deleted file mode 100644
index 2a26036..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0012-powerpc-time-Handle-wrapping-of-decrementer.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 9964209638e47771c184f5eb8ea393e852dcb87e Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Wed, 23 Nov 2011 20:07:17 +0000
-Subject: [PATCH 12/49] powerpc/time: Handle wrapping of decrementer
-
-commit 37fb9a0231ee43d42d069863bdfd567fca2b61af upstream.
-
-When re-enabling interrupts we have code to handle edge sensitive
-decrementers by resetting the decrementer to 1 whenever it is negative.
-If interrupts were disabled long enough that the decrementer wrapped to
-positive we do nothing. This means interrupts can be delayed for a long
-time until it finally goes negative again.
-
-While we hope interrupts are never be disabled long enough for the
-decrementer to go positive, we have a very good test team that can
-drive any kernel into the ground. The softlockup data we get back
-from these fails could be seconds in the future, completely missing
-the cause of the lockup.
-
-We already keep track of the timebase of the next event so use that
-to work out if we should trigger a decrementer exception.
-
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/powerpc/include/asm/time.h |    2 ++
- arch/powerpc/kernel/irq.c       |   15 ++++++---------
- arch/powerpc/kernel/time.c      |    9 +++++++++
- 3 files changed, 17 insertions(+), 9 deletions(-)
-
-diff --git a/arch/powerpc/include/asm/time.h b/arch/powerpc/include/asm/time.h
-index fe6f7c2..bc3c745 100644
---- a/arch/powerpc/include/asm/time.h
-+++ b/arch/powerpc/include/asm/time.h
-@@ -219,5 +219,7 @@ DECLARE_PER_CPU(struct cpu_usage, cpu_usage_array);
- extern void secondary_cpu_time_init(void);
- extern void iSeries_time_init_early(void);
- 
-+extern void decrementer_check_overflow(void);
-+
- #endif /* __KERNEL__ */
- #endif /* __POWERPC_TIME_H */
-diff --git a/arch/powerpc/kernel/irq.c b/arch/powerpc/kernel/irq.c
-index 5c3c469..745c1e7 100644
---- a/arch/powerpc/kernel/irq.c
-+++ b/arch/powerpc/kernel/irq.c
-@@ -164,16 +164,13 @@ notrace void arch_local_irq_restore(unsigned long en)
- 	 */
- 	local_paca->hard_enabled = en;
- 
--#ifndef CONFIG_BOOKE
--	/* On server, re-trigger the decrementer if it went negative since
--	 * some processors only trigger on edge transitions of the sign bit.
--	 *
--	 * BookE has a level sensitive decrementer (latches in TSR) so we
--	 * don't need that
-+	/*
-+	 * Trigger the decrementer if we have a pending event. Some processors
-+	 * only trigger on edge transitions of the sign bit. We might also
-+	 * have disabled interrupts long enough that the decrementer wrapped
-+	 * to positive.
- 	 */
--	if ((int)mfspr(SPRN_DEC) < 0)
--		mtspr(SPRN_DEC, 1);
--#endif /* CONFIG_BOOKE */
-+	decrementer_check_overflow();
- 
- 	/*
- 	 * Force the delivery of pending soft-disabled interrupts on PS3.
-diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
-index 522bb1d..5db163c 100644
---- a/arch/powerpc/kernel/time.c
-+++ b/arch/powerpc/kernel/time.c
-@@ -889,6 +889,15 @@ static void __init clocksource_init(void)
- 	       clock->name, clock->mult, clock->shift);
- }
- 
-+void decrementer_check_overflow(void)
-+{
-+	u64 now = get_tb_or_rtc();
-+	struct decrementer_clock *decrementer = &__get_cpu_var(decrementers);
-+
-+	if (now >= decrementer->next_tb)
-+		set_dec(1);
-+}
-+
- static int decrementer_set_next_event(unsigned long evt,
- 				      struct clock_event_device *dev)
- {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0013-powerpc-Fix-unpaired-probe_hcall_entry-and-probe_hca.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0013-powerpc-Fix-unpaired-probe_hcall_entry-and-probe_hca.patch
deleted file mode 100644
index 75718a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0013-powerpc-Fix-unpaired-probe_hcall_entry-and-probe_hca.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From a5053ab063ae0b2fd8a4d77225570b93db184fd5 Mon Sep 17 00:00:00 2001
-From: Li Zhong <zhong at linux.vnet.ibm.com>
-Date: Sun, 18 Dec 2011 16:03:04 +0000
-Subject: [PATCH 13/49] powerpc: Fix unpaired probe_hcall_entry and
- probe_hcall_exit
-
-commit e4f387d8db3ba3c2dae4d8bdfe7bb5f4fe1bcb0d upstream.
-
-Unpaired calling of probe_hcall_entry and probe_hcall_exit might happen
-as following, which could cause incorrect preempt count.
-
-__trace_hcall_entry => trace_hcall_entry -> probe_hcall_entry =>
-get_cpu_var => preempt_disable
-
-__trace_hcall_exit => trace_hcall_exit -> probe_hcall_exit =>
-put_cpu_var => preempt_enable
-
-where:
-A => B and A -> B means A calls B, but
-=> means A will call B through function name, and B will definitely be
-called.
--> means A will call B through function pointer, so B might not be
-called if the function pointer is not set.
-
-So error happens when only one of probe_hcall_entry and probe_hcall_exit
-get called during a hcall.
-
-This patch tries to move the preempt count operations from
-probe_hcall_entry and probe_hcall_exit to its callers.
-
-Reported-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
-Signed-off-by: Li Zhong <zhong at linux.vnet.ibm.com>
-Tested-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/powerpc/platforms/pseries/hvCall_inst.c |    4 +---
- arch/powerpc/platforms/pseries/lpar.c        |    2 ++
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/powerpc/platforms/pseries/hvCall_inst.c b/arch/powerpc/platforms/pseries/hvCall_inst.c
-index f106662..c9311cf 100644
---- a/arch/powerpc/platforms/pseries/hvCall_inst.c
-+++ b/arch/powerpc/platforms/pseries/hvCall_inst.c
-@@ -109,7 +109,7 @@ static void probe_hcall_entry(void *ignored, unsigned long opcode, unsigned long
- 	if (opcode > MAX_HCALL_OPCODE)
- 		return;
- 
--	h = &get_cpu_var(hcall_stats)[opcode / 4];
-+	h = &__get_cpu_var(hcall_stats)[opcode / 4];
- 	h->tb_start = mftb();
- 	h->purr_start = mfspr(SPRN_PURR);
- }
-@@ -126,8 +126,6 @@ static void probe_hcall_exit(void *ignored, unsigned long opcode, unsigned long
- 	h->num_calls++;
- 	h->tb_total += mftb() - h->tb_start;
- 	h->purr_total += mfspr(SPRN_PURR) - h->purr_start;
--
--	put_cpu_var(hcall_stats);
- }
- 
- static int __init hcall_inst_init(void)
-diff --git a/arch/powerpc/platforms/pseries/lpar.c b/arch/powerpc/platforms/pseries/lpar.c
-index 27a4950..dc36ea6 100644
---- a/arch/powerpc/platforms/pseries/lpar.c
-+++ b/arch/powerpc/platforms/pseries/lpar.c
-@@ -554,6 +554,7 @@ void __trace_hcall_entry(unsigned long opcode, unsigned long *args)
- 		goto out;
- 
- 	(*depth)++;
-+	preempt_disable();
- 	trace_hcall_entry(opcode, args);
- 	(*depth)--;
- 
-@@ -576,6 +577,7 @@ void __trace_hcall_exit(long opcode, unsigned long retval,
- 
- 	(*depth)++;
- 	trace_hcall_exit(opcode, retval, retbuf);
-+	preempt_enable();
- 	(*depth)--;
- 
- out:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0014-IB-qib-Fix-a-possible-data-corruption-when-receiving.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0014-IB-qib-Fix-a-possible-data-corruption-when-receiving.patch
deleted file mode 100644
index d489f53..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0014-IB-qib-Fix-a-possible-data-corruption-when-receiving.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 1792dc9565d7aac9b9696ea760d807faaddb3346 Mon Sep 17 00:00:00 2001
-From: Ram Vepa <ram.vepa at qlogic.com>
-Date: Fri, 23 Dec 2011 08:01:43 -0500
-Subject: [PATCH 14/49] IB/qib: Fix a possible data corruption when receiving
- packets
-
-commit eddfb675256f49d14e8c5763098afe3eb2c93701 upstream.
-
-Prevent a receive data corruption by ensuring that the write to update
-the rcvhdrheadn register to generate an interrupt is at the very end
-of the receive processing.
-
-Signed-off-by: Ramkrishna Vepa <ram.vepa at qlogic.com>
-Signed-off-by: Mike Marciniszyn <mike.marciniszyn at qlogic.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/infiniband/hw/qib/qib_iba6120.c |    4 +++-
- drivers/infiniband/hw/qib/qib_iba7220.c |    4 +++-
- drivers/infiniband/hw/qib/qib_iba7322.c |    6 ++++--
- 3 files changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/infiniband/hw/qib/qib_iba6120.c b/drivers/infiniband/hw/qib/qib_iba6120.c
-index 781a802..4f18e2d 100644
---- a/drivers/infiniband/hw/qib/qib_iba6120.c
-+++ b/drivers/infiniband/hw/qib/qib_iba6120.c
-@@ -2076,9 +2076,11 @@ static void qib_6120_config_ctxts(struct qib_devdata *dd)
- static void qib_update_6120_usrhead(struct qib_ctxtdata *rcd, u64 hd,
- 				    u32 updegr, u32 egrhd, u32 npkts)
- {
--	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
- 	if (updegr)
- 		qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
-+	mmiowb();
-+	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-+	mmiowb();
- }
- 
- static u32 qib_6120_hdrqempty(struct qib_ctxtdata *rcd)
-diff --git a/drivers/infiniband/hw/qib/qib_iba7220.c b/drivers/infiniband/hw/qib/qib_iba7220.c
-index 439d3c5..7ec4048 100644
---- a/drivers/infiniband/hw/qib/qib_iba7220.c
-+++ b/drivers/infiniband/hw/qib/qib_iba7220.c
-@@ -2725,9 +2725,11 @@ static int qib_7220_set_loopback(struct qib_pportdata *ppd, const char *what)
- static void qib_update_7220_usrhead(struct qib_ctxtdata *rcd, u64 hd,
- 				    u32 updegr, u32 egrhd, u32 npkts)
- {
--	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
- 	if (updegr)
- 		qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
-+	mmiowb();
-+	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-+	mmiowb();
- }
- 
- static u32 qib_7220_hdrqempty(struct qib_ctxtdata *rcd)
-diff --git a/drivers/infiniband/hw/qib/qib_iba7322.c b/drivers/infiniband/hw/qib/qib_iba7322.c
-index 1d58959..5a070e8 100644
---- a/drivers/infiniband/hw/qib/qib_iba7322.c
-+++ b/drivers/infiniband/hw/qib/qib_iba7322.c
-@@ -4082,10 +4082,12 @@ static void qib_update_7322_usrhead(struct qib_ctxtdata *rcd, u64 hd,
- 	 */
- 	if (hd >> IBA7322_HDRHEAD_PKTINT_SHIFT)
- 		adjust_rcv_timeout(rcd, npkts);
--	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
--	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
- 	if (updegr)
- 		qib_write_ureg(rcd->dd, ur_rcvegrindexhead, egrhd, rcd->ctxt);
-+	mmiowb();
-+	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-+	qib_write_ureg(rcd->dd, ur_rcvhdrhead, hd, rcd->ctxt);
-+	mmiowb();
- }
- 
- static u32 qib_7322_hdrqempty(struct qib_ctxtdata *rcd)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0015-IB-uverbs-Protect-QP-multicast-list.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0015-IB-uverbs-Protect-QP-multicast-list.patch
deleted file mode 100644
index a95b19b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0015-IB-uverbs-Protect-QP-multicast-list.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From a2128de6bb92885e31935d6c2e55f710cc4450da Mon Sep 17 00:00:00 2001
-From: Eli Cohen <eli at dev.mellanox.co.il>
-Date: Tue, 3 Jan 2012 20:36:48 -0800
-Subject: [PATCH 15/49] IB/uverbs: Protect QP multicast list
-
-commit e214a0fe2b382fa302c036ecd6e6ffe99e3b9875 upstream.
-
-Userspace verbs multicast attach/detach operations on a QP are done
-while holding the rwsem of the QP for reading.  That's not sufficient
-since a reader lock allows more than one reader to acquire the
-lock.  However, multicast attach/detach does list manipulation that
-can corrupt the list if multiple threads run in parallel.
-
-Fix this by acquiring the rwsem as a writer to serialize attach/detach
-operations.  Add idr_write_qp() and put_qp_write() to encapsulate
-this.
-
-This fixes oops seen when running applications that perform multicast
-joins/leaves.
-
-Reported by: Mike Dubman <miked at mellanox.com>
-Signed-off-by: Eli Cohen <eli at mellanox.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/infiniband/core/uverbs_cmd.c |   21 +++++++++++++++++----
- 1 file changed, 17 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
-index 254f164..e3db8ef 100644
---- a/drivers/infiniband/core/uverbs_cmd.c
-+++ b/drivers/infiniband/core/uverbs_cmd.c
-@@ -241,11 +241,24 @@ static struct ib_qp *idr_read_qp(int qp_handle, struct ib_ucontext *context)
- 	return idr_read_obj(&ib_uverbs_qp_idr, qp_handle, context, 0);
- }
- 
-+static struct ib_qp *idr_write_qp(int qp_handle, struct ib_ucontext *context)
-+{
-+	struct ib_uobject *uobj;
-+
-+	uobj = idr_write_uobj(&ib_uverbs_qp_idr, qp_handle, context);
-+	return uobj ? uobj->object : NULL;
-+}
-+
- static void put_qp_read(struct ib_qp *qp)
- {
- 	put_uobj_read(qp->uobject);
- }
- 
-+static void put_qp_write(struct ib_qp *qp)
-+{
-+	put_uobj_write(qp->uobject);
-+}
-+
- static struct ib_srq *idr_read_srq(int srq_handle, struct ib_ucontext *context)
- {
- 	return idr_read_obj(&ib_uverbs_srq_idr, srq_handle, context, 0);
-@@ -2375,7 +2388,7 @@ ssize_t ib_uverbs_attach_mcast(struct ib_uverbs_file *file,
- 	if (copy_from_user(&cmd, buf, sizeof cmd))
- 		return -EFAULT;
- 
--	qp = idr_read_qp(cmd.qp_handle, file->ucontext);
-+	qp = idr_write_qp(cmd.qp_handle, file->ucontext);
- 	if (!qp)
- 		return -EINVAL;
- 
-@@ -2404,7 +2417,7 @@ ssize_t ib_uverbs_attach_mcast(struct ib_uverbs_file *file,
- 		kfree(mcast);
- 
- out_put:
--	put_qp_read(qp);
-+	put_qp_write(qp);
- 
- 	return ret ? ret : in_len;
- }
-@@ -2422,7 +2435,7 @@ ssize_t ib_uverbs_detach_mcast(struct ib_uverbs_file *file,
- 	if (copy_from_user(&cmd, buf, sizeof cmd))
- 		return -EFAULT;
- 
--	qp = idr_read_qp(cmd.qp_handle, file->ucontext);
-+	qp = idr_write_qp(cmd.qp_handle, file->ucontext);
- 	if (!qp)
- 		return -EINVAL;
- 
-@@ -2441,7 +2454,7 @@ ssize_t ib_uverbs_detach_mcast(struct ib_uverbs_file *file,
- 		}
- 
- out_put:
--	put_qp_read(qp);
-+	put_qp_write(qp);
- 
- 	return ret ? ret : in_len;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0016-iwlagn-fix-TID-use-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0016-iwlagn-fix-TID-use-bug.patch
deleted file mode 100644
index 61767fa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0016-iwlagn-fix-TID-use-bug.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0ecc365ca1e7a92c8fbad58d6a3bac8788be34cc Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Fri, 2 Dec 2011 12:22:54 -0800
-Subject: [PATCH 16/49] iwlagn: fix TID use bug
-
-commit 9a215e40d70ae63762963ab3ccc7f31dd966dc6a upstream.
-
-The driver everywhere uses max TID count as 9,
-which is wrong, it should be 8.
-
-I think the reason it uses 9 here is off-by-one
-confusion by whoever wrote this. We do use the
-value IWL_MAX_TID_COUNT for "not QoS/no TID"
-but that is completely correct even if it is 8
-and not 9 since 0-7 are only valid.
-
-As a side effect, this fixes the following bug:
-
- Open BA session requested for 00:23:cd:16:8a:7e tid 8
- ------------[ cut here ]------------
- kernel BUG at drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h:350!
- ...
-
-when you do
-echo "tx start 8" > /sys/kernel/debug/ieee80211/*/*/*/*/agg_status
-
-Reported-by: Nikolay Martynov <mar.kolya at gmail.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/iwlwifi/iwl-commands.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-commands.h b/drivers/net/wireless/iwlwifi/iwl-commands.h
-index 69d5f85..8b9ff28 100644
---- a/drivers/net/wireless/iwlwifi/iwl-commands.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-commands.h
-@@ -809,7 +809,7 @@ struct iwl_qosparam_cmd {
- #define	IWLAGN_STATION_COUNT	16
- 
- #define	IWL_INVALID_STATION 	255
--#define IWL_MAX_TID_COUNT	9
-+#define IWL_MAX_TID_COUNT	8
- 
- #define STA_FLG_TX_RATE_MSK		cpu_to_le32(1 << 2)
- #define STA_FLG_PWR_SAVE_MSK		cpu_to_le32(1 << 8)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0017-iwlagn-fix-remove-use-of-PAGE_SIZE.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0017-iwlagn-fix-remove-use-of-PAGE_SIZE.patch
deleted file mode 100644
index c18c651..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0017-iwlagn-fix-remove-use-of-PAGE_SIZE.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From 89901733103c8f695c1d8cd5723f97fb55f53894 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Mon, 19 Dec 2011 14:00:59 -0800
-Subject: [PATCH 17/49] iwlagn: fix (remove) use of PAGE_SIZE
-
-commit 106671369e6d046c0b3e1e72b18ad6dd9cb298b0 upstream.
-
-The ICT code erroneously uses PAGE_SIZE. The bug
-is that PAGE_SIZE isn't necessarily 4096, so on
-such platforms this code will not work correctly
-as we'll try to attempt to read an index in the
-table that the device never wrote, it always has
-4096-byte pages.
-
-Additionally, the manual alignment code here is
-unnecessary -- Documentation/DMA-API-HOWTO.txt
-states:
-  The cpu return address and the DMA bus master address are both
-  guaranteed to be aligned to the smallest PAGE_SIZE order which
-  is greater than or equal to the requested size.  This invariant
-  exists (for example) to guarantee that if you allocate a chunk
-  which is smaller than or equal to 64 kilobytes, the extent of the
-  buffer you receive will not cross a 64K boundary.
-
-Just use appropriate new constants and get rid of
-the alignment code.
-
-Cc: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h |    2 -
- drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c  |   73 +++++++++------------
- 2 files changed, 31 insertions(+), 44 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
-index 2b6756e..5c29281 100644
---- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-int.h
-@@ -219,9 +219,7 @@ struct iwl_trans_pcie {
- 
- 	/* INT ICT Table */
- 	__le32 *ict_tbl;
--	void *ict_tbl_vir;
- 	dma_addr_t ict_tbl_dma;
--	dma_addr_t aligned_ict_tbl_dma;
- 	int ict_index;
- 	u32 inta;
- 	bool use_ict;
-diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
-index 374c68c..1920237 100644
---- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
-@@ -1136,7 +1136,11 @@ void iwl_irq_tasklet(struct iwl_trans *trans)
-  * ICT functions
-  *
-  ******************************************************************************/
--#define ICT_COUNT (PAGE_SIZE/sizeof(u32))
-+
-+/* a device (PCI-E) page is 4096 bytes long */
-+#define ICT_SHIFT	12
-+#define ICT_SIZE	(1 << ICT_SHIFT)
-+#define ICT_COUNT	(ICT_SIZE / sizeof(u32))
- 
- /* Free dram table */
- void iwl_free_isr_ict(struct iwl_trans *trans)
-@@ -1144,21 +1148,19 @@ void iwl_free_isr_ict(struct iwl_trans *trans)
- 	struct iwl_trans_pcie *trans_pcie =
- 		IWL_TRANS_GET_PCIE_TRANS(trans);
- 
--	if (trans_pcie->ict_tbl_vir) {
--		dma_free_coherent(bus(trans)->dev,
--				  (sizeof(u32) * ICT_COUNT) + PAGE_SIZE,
--				  trans_pcie->ict_tbl_vir,
-+	if (trans_pcie->ict_tbl) {
-+		dma_free_coherent(bus(trans)->dev, ICT_SIZE,
-+				  trans_pcie->ict_tbl,
- 				  trans_pcie->ict_tbl_dma);
--		trans_pcie->ict_tbl_vir = NULL;
--		memset(&trans_pcie->ict_tbl_dma, 0,
--			sizeof(trans_pcie->ict_tbl_dma));
--		memset(&trans_pcie->aligned_ict_tbl_dma, 0,
--			sizeof(trans_pcie->aligned_ict_tbl_dma));
-+		trans_pcie->ict_tbl = NULL;
-+		trans_pcie->ict_tbl_dma = 0;
- 	}
- }
- 
- 
--/* allocate dram shared table it is a PAGE_SIZE aligned
-+/*
-+ * allocate dram shared table, it is an aligned memory
-+ * block of ICT_SIZE.
-  * also reset all data related to ICT table interrupt.
-  */
- int iwl_alloc_isr_ict(struct iwl_trans *trans)
-@@ -1166,36 +1168,26 @@ int iwl_alloc_isr_ict(struct iwl_trans *trans)
- 	struct iwl_trans_pcie *trans_pcie =
- 		IWL_TRANS_GET_PCIE_TRANS(trans);
- 
--	/* allocate shrared data table */
--	trans_pcie->ict_tbl_vir =
--		dma_alloc_coherent(bus(trans)->dev,
--				   (sizeof(u32) * ICT_COUNT) + PAGE_SIZE,
--				   &trans_pcie->ict_tbl_dma, GFP_KERNEL);
--	if (!trans_pcie->ict_tbl_vir)
-+	trans_pcie->ict_tbl =
-+		dma_alloc_coherent(bus(trans)->dev, ICT_SIZE,
-+				   &trans_pcie->ict_tbl_dma,
-+				   GFP_KERNEL);
-+	if (!trans_pcie->ict_tbl)
- 		return -ENOMEM;
- 
--	/* align table to PAGE_SIZE boundary */
--	trans_pcie->aligned_ict_tbl_dma =
--		ALIGN(trans_pcie->ict_tbl_dma, PAGE_SIZE);
--
--	IWL_DEBUG_ISR(trans, "ict dma addr %Lx dma aligned %Lx diff %d\n",
--			   (unsigned long long)trans_pcie->ict_tbl_dma,
--			   (unsigned long long)trans_pcie->aligned_ict_tbl_dma,
--			   (int)(trans_pcie->aligned_ict_tbl_dma -
--			   trans_pcie->ict_tbl_dma));
-+	/* just an API sanity check ... it is guaranteed to be aligned */
-+	if (WARN_ON(trans_pcie->ict_tbl_dma & (ICT_SIZE - 1))) {
-+		iwl_free_isr_ict(trans);
-+		return -EINVAL;
-+	}
- 
--	trans_pcie->ict_tbl =  trans_pcie->ict_tbl_vir +
--			  (trans_pcie->aligned_ict_tbl_dma -
--			  trans_pcie->ict_tbl_dma);
-+	IWL_DEBUG_ISR(trans, "ict dma addr %Lx\n",
-+		      (unsigned long long)trans_pcie->ict_tbl_dma);
- 
--	IWL_DEBUG_ISR(trans, "ict vir addr %p vir aligned %p diff %d\n",
--			     trans_pcie->ict_tbl, trans_pcie->ict_tbl_vir,
--			(int)(trans_pcie->aligned_ict_tbl_dma -
--			    trans_pcie->ict_tbl_dma));
-+	IWL_DEBUG_ISR(trans, "ict vir addr %p\n", trans_pcie->ict_tbl);
- 
- 	/* reset table and index to all 0 */
--	memset(trans_pcie->ict_tbl_vir, 0,
--		(sizeof(u32) * ICT_COUNT) + PAGE_SIZE);
-+	memset(trans_pcie->ict_tbl, 0, ICT_SIZE);
- 	trans_pcie->ict_index = 0;
- 
- 	/* add periodic RX interrupt */
-@@ -1213,23 +1205,20 @@ int iwl_reset_ict(struct iwl_trans *trans)
- 	struct iwl_trans_pcie *trans_pcie =
- 		IWL_TRANS_GET_PCIE_TRANS(trans);
- 
--	if (!trans_pcie->ict_tbl_vir)
-+	if (!trans_pcie->ict_tbl)
- 		return 0;
- 
- 	spin_lock_irqsave(&trans->shrd->lock, flags);
- 	iwl_disable_interrupts(trans);
- 
--	memset(&trans_pcie->ict_tbl[0], 0, sizeof(u32) * ICT_COUNT);
-+	memset(trans_pcie->ict_tbl, 0, ICT_SIZE);
- 
--	val = trans_pcie->aligned_ict_tbl_dma >> PAGE_SHIFT;
-+	val = trans_pcie->ict_tbl_dma >> ICT_SHIFT;
- 
- 	val |= CSR_DRAM_INT_TBL_ENABLE;
- 	val |= CSR_DRAM_INIT_TBL_WRAP_CHECK;
- 
--	IWL_DEBUG_ISR(trans, "CSR_DRAM_INT_TBL_REG =0x%X "
--			"aligned dma address %Lx\n",
--			val,
--			(unsigned long long)trans_pcie->aligned_ict_tbl_dma);
-+	IWL_DEBUG_ISR(trans, "CSR_DRAM_INT_TBL_REG =0x%x\n", val);
- 
- 	iwl_write32(bus(trans), CSR_DRAM_INT_TBL_REG, val);
- 	trans_pcie->use_ict = true;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0018-perf-Fix-parsing-of-__print_flags-in-TP_printk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0018-perf-Fix-parsing-of-__print_flags-in-TP_printk.patch
deleted file mode 100644
index e808b03..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0018-perf-Fix-parsing-of-__print_flags-in-TP_printk.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 76f1118e4b644be5b3572754925120648c135800 Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <srostedt at redhat.com>
-Date: Fri, 4 Nov 2011 16:32:25 -0400
-Subject: [PATCH 18/49] perf: Fix parsing of __print_flags() in TP_printk()
-
-commit 49908a1b25d448d68fd26faca260e1850201575f upstream.
-
-A update is made to the sched:sched_switch event that adds some
-logic to the first parameter of the __print_flags() that shows the
-state of tasks. This change cause perf to fail parsing the flags.
-
-A simple fix is needed to have the parser be able to process ops
-within the argument.
-
-Reported-by: Andrew Vagin <avagin at openvz.org>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- tools/perf/util/trace-event-parse.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/tools/perf/util/trace-event-parse.c b/tools/perf/util/trace-event-parse.c
-index 6c164dc..bf54c48 100644
---- a/tools/perf/util/trace-event-parse.c
-+++ b/tools/perf/util/trace-event-parse.c
-@@ -1582,6 +1582,8 @@ process_symbols(struct event *event, struct print_arg *arg, char **tok)
- 	field = malloc_or_die(sizeof(*field));
- 
- 	type = process_arg(event, field, &token);
-+	while (type == EVENT_OP)
-+		type = process_op(event, field, &token);
- 	if (test_type_token(type, token, EVENT_DELIM, ","))
- 		goto out_free;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0019-ore-Fix-crash-in-case-of-an-IO-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0019-ore-Fix-crash-in-case-of-an-IO-error.patch
deleted file mode 100644
index 65719c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0019-ore-Fix-crash-in-case-of-an-IO-error.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From babc031c2b450518ffb3ffc6a5ae1b02799a7af3 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Tue, 27 Dec 2011 19:23:36 +0200
-Subject: [PATCH 19/49] ore: Fix crash in case of an IO error.
-
-commit ffefb8eaa367e8a5c14f779233d9da1fbc23d164 upstream.
-
-The users of ore_check_io() expect the reported device
-(In case of error) to be indexed relative to the passed-in
-ore_components table, and not the logical dev index.
-
-This causes a crash inside objlayoutdriver in case of
-an IO error.
-
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/exofs/ore.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
-index d271ad8..894f3e1 100644
---- a/fs/exofs/ore.c
-+++ b/fs/exofs/ore.c
-@@ -445,10 +445,10 @@ int ore_check_io(struct ore_io_state *ios, ore_on_dev_error on_dev_error)
- 			u64 residual = ios->reading ?
- 					or->in.residual : or->out.residual;
- 			u64 offset = (ios->offset + ios->length) - residual;
--			struct ore_dev *od = ios->oc->ods[
--					per_dev->dev - ios->oc->first_dev];
-+			unsigned dev = per_dev->dev - ios->oc->first_dev;
-+			struct ore_dev *od = ios->oc->ods[dev];
- 
--			on_dev_error(ios, od, per_dev->dev, osi.osd_err_pri,
-+			on_dev_error(ios, od, dev, osi.osd_err_pri,
- 				     offset, residual);
- 		}
- 		if (osi.osd_err_pri >= acumulated_osd_err) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0020-ore-fix-BUG_ON-too-few-sgs-when-reading.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0020-ore-fix-BUG_ON-too-few-sgs-when-reading.patch
deleted file mode 100644
index 0d28b76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0020-ore-fix-BUG_ON-too-few-sgs-when-reading.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 90d604f1ef7df36ed0ccbba9cd74ebd8948486da Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Wed, 28 Dec 2011 19:14:23 +0200
-Subject: [PATCH 20/49] ore: fix BUG_ON, too few sgs when reading
-
-commit 361aba569f55dd159b850489a3538253afbb3973 upstream.
-
-When reading RAID5 files, in rare cases, we calculated too
-few sg segments. There should be two extra for the beginning
-and end partial units.
-
-Also "too few sg segments" should not be a BUG_ON there is
-all the mechanics in place to handle it, as a short read.
-So just return -ENOMEM and the rest of the code will gracefully
-split the IO.
-
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/exofs/ore.c      |    2 +-
- fs/exofs/ore_raid.c |    6 +++++-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
-index 894f3e1..49cf230 100644
---- a/fs/exofs/ore.c
-+++ b/fs/exofs/ore.c
-@@ -266,7 +266,7 @@ int  ore_get_rw_state(struct ore_layout *layout, struct ore_components *oc,
- 
- 			/* first/last seg is split */
- 			num_raid_units += layout->group_width;
--			sgs_per_dev = div_u64(num_raid_units, data_devs);
-+			sgs_per_dev = div_u64(num_raid_units, data_devs) + 2;
- 		} else {
- 			/* For Writes add parity pages array. */
- 			max_par_pages = num_raid_units * pages_in_unit *
-diff --git a/fs/exofs/ore_raid.c b/fs/exofs/ore_raid.c
-index 29c47e5..414a2df 100644
---- a/fs/exofs/ore_raid.c
-+++ b/fs/exofs/ore_raid.c
-@@ -551,7 +551,11 @@ int _ore_add_parity_unit(struct ore_io_state *ios,
- 			    unsigned cur_len)
- {
- 	if (ios->reading) {
--		BUG_ON(per_dev->cur_sg >= ios->sgs_per_dev);
-+		if (per_dev->cur_sg >= ios->sgs_per_dev) {
-+			ORE_DBGMSG("cur_sg(%d) >= sgs_per_dev(%d)\n" ,
-+				per_dev->cur_sg, ios->sgs_per_dev);
-+			return -ENOMEM;
-+		}
- 		_ore_add_sg_seg(per_dev, cur_len, true);
- 	} else {
- 		struct __stripe_pages_2d *sp2d = ios->sp2d;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0021-ore-Must-support-none-PAGE-aligned-IO.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0021-ore-Must-support-none-PAGE-aligned-IO.patch
deleted file mode 100644
index 0bce1b4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0021-ore-Must-support-none-PAGE-aligned-IO.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From e467d09c0216e2f21f4f27555150fa03850b769d Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Wed, 28 Dec 2011 19:21:45 +0200
-Subject: [PATCH 21/49] ore: Must support none-PAGE-aligned IO
-
-commit 724577ca355795b0a25c93ccbeee927871ca1a77 upstream.
-
-NFS might send us offsets that are not PAGE aligned. So
-we must read in the reminder of the first/last pages, in cases
-we need it for Parity calculations.
-
-We only add an sg segments to read the partial page. But
-we don't mark it as read=true because it is a lock-for-write
-page.
-
-TODO: In some cases (IO spans a single unit) we can just
-adjust the raid_unit offset/length, but this is left for
-later Kernels.
-
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/exofs/ore_raid.c |   72 ++++++++++++++++++++++++++++++++++++++++++---------
- 1 file changed, 60 insertions(+), 12 deletions(-)
-
-diff --git a/fs/exofs/ore_raid.c b/fs/exofs/ore_raid.c
-index 414a2df..d222c77 100644
---- a/fs/exofs/ore_raid.c
-+++ b/fs/exofs/ore_raid.c
-@@ -328,8 +328,8 @@ static int _alloc_read_4_write(struct ore_io_state *ios)
- /* @si contains info of the to-be-inserted page. Update of @si should be
-  * maintained by caller. Specificaly si->dev, si->obj_offset, ...
-  */
--static int _add_to_read_4_write(struct ore_io_state *ios,
--				struct ore_striping_info *si, struct page *page)
-+static int _add_to_r4w(struct ore_io_state *ios, struct ore_striping_info *si,
-+		       struct page *page, unsigned pg_len)
- {
- 	struct request_queue *q;
- 	struct ore_per_dev_state *per_dev;
-@@ -366,17 +366,60 @@ static int _add_to_read_4_write(struct ore_io_state *ios,
- 		_ore_add_sg_seg(per_dev, gap, true);
- 	}
- 	q = osd_request_queue(ore_comp_dev(read_ios->oc, per_dev->dev));
--	added_len = bio_add_pc_page(q, per_dev->bio, page, PAGE_SIZE, 0);
--	if (unlikely(added_len != PAGE_SIZE)) {
-+	added_len = bio_add_pc_page(q, per_dev->bio, page, pg_len,
-+				    si->obj_offset % PAGE_SIZE);
-+	if (unlikely(added_len != pg_len)) {
- 		ORE_DBGMSG("Failed to bio_add_pc_page bi_vcnt=%d\n",
- 			      per_dev->bio->bi_vcnt);
- 		return -ENOMEM;
- 	}
- 
--	per_dev->length += PAGE_SIZE;
-+	per_dev->length += pg_len;
- 	return 0;
- }
- 
-+/* read the beginning of an unaligned first page */
-+static int _add_to_r4w_first_page(struct ore_io_state *ios, struct page *page)
-+{
-+	struct ore_striping_info si;
-+	unsigned pg_len;
-+
-+	ore_calc_stripe_info(ios->layout, ios->offset, 0, &si);
-+
-+	pg_len = si.obj_offset % PAGE_SIZE;
-+	si.obj_offset -= pg_len;
-+
-+	ORE_DBGMSG("offset=0x%llx len=0x%x index=0x%lx dev=%x\n",
-+		   _LLU(si.obj_offset), pg_len, page->index, si.dev);
-+
-+	return _add_to_r4w(ios, &si, page, pg_len);
-+}
-+
-+/* read the end of an incomplete last page */
-+static int _add_to_r4w_last_page(struct ore_io_state *ios, u64 *offset)
-+{
-+	struct ore_striping_info si;
-+	struct page *page;
-+	unsigned pg_len, p, c;
-+
-+	ore_calc_stripe_info(ios->layout, *offset, 0, &si);
-+
-+	p = si.unit_off / PAGE_SIZE;
-+	c = _dev_order(ios->layout->group_width * ios->layout->mirrors_p1,
-+		       ios->layout->mirrors_p1, si.par_dev, si.dev);
-+	page = ios->sp2d->_1p_stripes[p].pages[c];
-+
-+	pg_len = PAGE_SIZE - (si.unit_off % PAGE_SIZE);
-+	*offset += pg_len;
-+
-+	ORE_DBGMSG("p=%d, c=%d next-offset=0x%llx len=0x%x dev=%x par_dev=%d\n",
-+		   p, c, _LLU(*offset), pg_len, si.dev, si.par_dev);
-+
-+	BUG_ON(!page);
-+
-+	return _add_to_r4w(ios, &si, page, pg_len);
-+}
-+
- static void _mark_read4write_pages_uptodate(struct ore_io_state *ios, int ret)
- {
- 	struct bio_vec *bv;
-@@ -444,9 +487,13 @@ static int _read_4_write(struct ore_io_state *ios)
- 			struct page **pp = &_1ps->pages[c];
- 			bool uptodate;
- 
--			if (*pp)
-+			if (*pp) {
-+				if (ios->offset % PAGE_SIZE)
-+					/* Read the remainder of the page */
-+					_add_to_r4w_first_page(ios, *pp);
- 				/* to-be-written pages start here */
- 				goto read_last_stripe;
-+			}
- 
- 			*pp = ios->r4w->get_page(ios->private, offset,
- 						 &uptodate);
-@@ -454,7 +501,7 @@ static int _read_4_write(struct ore_io_state *ios)
- 				return -ENOMEM;
- 
- 			if (!uptodate)
--				_add_to_read_4_write(ios, &read_si, *pp);
-+				_add_to_r4w(ios, &read_si, *pp, PAGE_SIZE);
- 
- 			/* Mark read-pages to be cache_released */
- 			_1ps->page_is_read[c] = true;
-@@ -465,8 +512,11 @@ static int _read_4_write(struct ore_io_state *ios)
- 	}
- 
- read_last_stripe:
--	offset = ios->offset + (ios->length + PAGE_SIZE - 1) /
--				PAGE_SIZE * PAGE_SIZE;
-+	offset = ios->offset + ios->length;
-+	if (offset % PAGE_SIZE)
-+		_add_to_r4w_last_page(ios, &offset);
-+		/* offset will be aligned to next page */
-+
- 	last_stripe_end = div_u64(offset + bytes_in_stripe - 1, bytes_in_stripe)
- 				 * bytes_in_stripe;
- 	if (offset == last_stripe_end) /* Optimize for the aligned case */
-@@ -503,7 +553,7 @@ read_last_stripe:
- 			/* Mark read-pages to be cache_released */
- 			_1ps->page_is_read[c] = true;
- 			if (!uptodate)
--				_add_to_read_4_write(ios, &read_si, page);
-+				_add_to_r4w(ios, &read_si, page, PAGE_SIZE);
- 		}
- 
- 		offset += PAGE_SIZE;
-@@ -616,8 +666,6 @@ int _ore_post_alloc_raid_stuff(struct ore_io_state *ios)
- 			return -ENOMEM;
- 		}
- 
--		BUG_ON(ios->offset % PAGE_SIZE);
--
- 		/* Round io down to last full strip */
- 		first_stripe = div_u64(ios->offset, stripe_size);
- 		last_stripe = div_u64(ios->offset + ios->length, stripe_size);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0022-ore-FIX-breakage-when-MISC_FILESYSTEMS-is-not-set.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0022-ore-FIX-breakage-when-MISC_FILESYSTEMS-is-not-set.patch
deleted file mode 100644
index 127325d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0022-ore-FIX-breakage-when-MISC_FILESYSTEMS-is-not-set.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 39dc6fc36180f09295b2361b32e1ded494787507 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Tue, 29 Nov 2011 15:35:53 -0800
-Subject: [PATCH 22/49] ore: FIX breakage when MISC_FILESYSTEMS is not set
-
-commit 831c2dc5f47c1dc79c32229d75065ada1dcc66e1 upstream.
-
-As Reported by Randy Dunlap
-
-When MISC_FILESYSTEMS is not enabled and NFS4.1 is:
-
-fs/built-in.o: In function `objio_alloc_io_state':
-objio_osd.c:(.text+0xcb525): undefined reference to `ore_get_rw_state'
-fs/built-in.o: In function `_write_done':
-objio_osd.c:(.text+0xcb58d): undefined reference to `ore_check_io'
-fs/built-in.o: In function `_read_done':
-...
-
-When MISC_FILESYSTEMS, which is more of a GUI thing then anything else,
-is not selected. exofs/Kconfig is never examined during Kconfig,
-and it can not do it's magic stuff to automatically select everything
-needed.
-
-We must split exofs/Kconfig in two. The ore one is always included.
-And the exofs one is left in it's old place in the menu.
-
-Reported-by: Randy Dunlap <rdunlap at xenotime.net>
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/Kconfig           |    2 ++
- fs/exofs/Kconfig     |   11 -----------
- fs/exofs/Kconfig.ore |   12 ++++++++++++
- 3 files changed, 14 insertions(+), 11 deletions(-)
- create mode 100644 fs/exofs/Kconfig.ore
-
-diff --git a/fs/Kconfig b/fs/Kconfig
-index 5f4c45d..6ad58a5 100644
---- a/fs/Kconfig
-+++ b/fs/Kconfig
-@@ -218,6 +218,8 @@ source "fs/exofs/Kconfig"
- 
- endif # MISC_FILESYSTEMS
- 
-+source "fs/exofs/Kconfig.ore"
-+
- menuconfig NETWORK_FILESYSTEMS
- 	bool "Network File Systems"
- 	default y
-diff --git a/fs/exofs/Kconfig b/fs/exofs/Kconfig
-index da42f32..86194b2 100644
---- a/fs/exofs/Kconfig
-+++ b/fs/exofs/Kconfig
-@@ -1,14 +1,3 @@
--# Note ORE needs to "select ASYNC_XOR". So Not to force multiple selects
--# for every ORE user we do it like this. Any user should add itself here
--# at the "depends on EXOFS_FS || ..." with an ||. The dependencies are
--# selected here, and we default to "ON". So in effect it is like been
--# selected by any of the users.
--config ORE
--	tristate
--	depends on EXOFS_FS || PNFS_OBJLAYOUT
--	select ASYNC_XOR
--	default SCSI_OSD_ULD
--
- config EXOFS_FS
- 	tristate "exofs: OSD based file system support"
- 	depends on SCSI_OSD_ULD
-diff --git a/fs/exofs/Kconfig.ore b/fs/exofs/Kconfig.ore
-new file mode 100644
-index 0000000..1ca7fb7
---- /dev/null
-+++ b/fs/exofs/Kconfig.ore
-@@ -0,0 +1,12 @@
-+# ORE - Objects Raid Engine (libore.ko)
-+#
-+# Note ORE needs to "select ASYNC_XOR". So Not to force multiple selects
-+# for every ORE user we do it like this. Any user should add itself here
-+# at the "depends on EXOFS_FS || ..." with an ||. The dependencies are
-+# selected here, and we default to "ON". So in effect it is like been
-+# selected by any of the users.
-+config ORE
-+	tristate
-+	depends on EXOFS_FS || PNFS_OBJLAYOUT
-+	select ASYNC_XOR
-+	default SCSI_OSD_ULD
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0023-reiserfs-Fix-quota-mount-option-parsing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0023-reiserfs-Fix-quota-mount-option-parsing.patch
deleted file mode 100644
index 7154d2a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0023-reiserfs-Fix-quota-mount-option-parsing.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 755af2779e6b0a7bb925b7c362e69f959995e6ca Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Wed, 21 Dec 2011 17:35:34 +0100
-Subject: [PATCH 23/49] reiserfs: Fix quota mount option parsing
-
-commit a06d789b424190e9f59da391681f908486db2554 upstream.
-
-When jqfmt mount option is not specified on remount, we mistakenly clear
-s_jquota_fmt value stored in superblock. Fix the problem.
-
-CC: reiserfs-devel at vger.kernel.org
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/reiserfs/super.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
-index 14363b9..f9eaa4a 100644
---- a/fs/reiserfs/super.c
-+++ b/fs/reiserfs/super.c
-@@ -1164,7 +1164,8 @@ static void handle_quota_files(struct super_block *s, char **qf_names,
- 			kfree(REISERFS_SB(s)->s_qf_names[i]);
- 		REISERFS_SB(s)->s_qf_names[i] = qf_names[i];
- 	}
--	REISERFS_SB(s)->s_jquota_fmt = *qfmt;
-+	if (*qfmt)
-+		REISERFS_SB(s)->s_jquota_fmt = *qfmt;
- }
- #endif
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0024-reiserfs-Force-inode-evictions-before-umount-to-avoi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0024-reiserfs-Force-inode-evictions-before-umount-to-avoi.patch
deleted file mode 100644
index cf1d91f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0024-reiserfs-Force-inode-evictions-before-umount-to-avoi.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 2385a06f384672d87f94bbc7ae2d56da961c62a7 Mon Sep 17 00:00:00 2001
-From: Jeff Mahoney <jeffm at suse.com>
-Date: Wed, 21 Dec 2011 21:18:43 +0100
-Subject: [PATCH 24/49] reiserfs: Force inode evictions before umount to avoid
- crash
-
-commit a9e36da655e54545c3289b2a0700b5c443de0edd upstream.
-
-This patch fixes a crash in reiserfs_delete_xattrs during umount.
-
-When shrink_dcache_for_umount clears the dcache from
-generic_shutdown_super, delayed evictions are forced to disk. If an
-evicted inode has extended attributes associated with it, it will
-need to walk the xattr tree to locate and remove them.
-
-But since shrink_dcache_for_umount will BUG if it encounters active
-dentries, the xattr tree must be released before it's called or it will
-crash during every umount.
-
-This patch forces the evictions to occur before generic_shutdown_super
-by calling shrink_dcache_sb first. The additional evictions caused
-by the removal of each associated xattr file and dir will be automatically
-handled as they're added to the LRU list.
-
-CC: reiserfs-devel at vger.kernel.org
-Signed-off-by: Jeff Mahoney <jeffm at suse.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/reiserfs/super.c |   24 ++++++++++++++----------
- 1 file changed, 14 insertions(+), 10 deletions(-)
-
-diff --git a/fs/reiserfs/super.c b/fs/reiserfs/super.c
-index f9eaa4a..5e3527b 100644
---- a/fs/reiserfs/super.c
-+++ b/fs/reiserfs/super.c
-@@ -453,16 +453,20 @@ int remove_save_link(struct inode *inode, int truncate)
- static void reiserfs_kill_sb(struct super_block *s)
- {
- 	if (REISERFS_SB(s)) {
--		if (REISERFS_SB(s)->xattr_root) {
--			d_invalidate(REISERFS_SB(s)->xattr_root);
--			dput(REISERFS_SB(s)->xattr_root);
--			REISERFS_SB(s)->xattr_root = NULL;
--		}
--		if (REISERFS_SB(s)->priv_root) {
--			d_invalidate(REISERFS_SB(s)->priv_root);
--			dput(REISERFS_SB(s)->priv_root);
--			REISERFS_SB(s)->priv_root = NULL;
--		}
-+		/*
-+		 * Force any pending inode evictions to occur now. Any
-+		 * inodes to be removed that have extended attributes
-+		 * associated with them need to clean them up before
-+		 * we can release the extended attribute root dentries.
-+		 * shrink_dcache_for_umount will BUG if we don't release
-+		 * those before it's called so ->put_super is too late.
-+		 */
-+		shrink_dcache_sb(s);
-+
-+		dput(REISERFS_SB(s)->xattr_root);
-+		REISERFS_SB(s)->xattr_root = NULL;
-+		dput(REISERFS_SB(s)->priv_root);
-+		REISERFS_SB(s)->priv_root = NULL;
- 	}
- 
- 	kill_block_super(s);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0025-ext3-Don-t-warn-from-writepage-when-readonly-inode-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0025-ext3-Don-t-warn-from-writepage-when-readonly-inode-i.patch
deleted file mode 100644
index 68cf88a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0025-ext3-Don-t-warn-from-writepage-when-readonly-inode-i.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From a7cdfdb846fcba86ea1fa6c3eb0af197957e14c5 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Thu, 22 Dec 2011 16:49:05 +0100
-Subject: [PATCH 25/49] ext3: Don't warn from writepage when readonly inode is
- spotted after error
-
-commit 33c104d415e92a51aaf638dc3d93920cfa601e5c upstream.
-
-WARN_ON_ONCE(IS_RDONLY(inode)) tends to trip when filesystem hits error and is
-remounted read-only. This unnecessarily scares users (well, they should be
-scared because of filesystem error, but the stack trace distracts them from the
-right source of their fear ;-). We could as well just remove the WARN_ON but
-it's not hard to fix it to not trip on filesystem with errors and not use more
-cycles in the common case so that's what we do.
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/ext3/inode.c |   24 +++++++++++++++++++++---
- 1 file changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ext3/inode.c b/fs/ext3/inode.c
-index 85fe655..5b3f907 100644
---- a/fs/ext3/inode.c
-+++ b/fs/ext3/inode.c
-@@ -1617,7 +1617,13 @@ static int ext3_ordered_writepage(struct page *page,
- 	int err;
- 
- 	J_ASSERT(PageLocked(page));
--	WARN_ON_ONCE(IS_RDONLY(inode));
-+	/*
-+	 * We don't want to warn for emergency remount. The condition is
-+	 * ordered to avoid dereferencing inode->i_sb in non-error case to
-+	 * avoid slow-downs.
-+	 */
-+	WARN_ON_ONCE(IS_RDONLY(inode) &&
-+		     !(EXT3_SB(inode->i_sb)->s_mount_state & EXT3_ERROR_FS));
- 
- 	/*
- 	 * We give up here if we're reentered, because it might be for a
-@@ -1692,7 +1698,13 @@ static int ext3_writeback_writepage(struct page *page,
- 	int err;
- 
- 	J_ASSERT(PageLocked(page));
--	WARN_ON_ONCE(IS_RDONLY(inode));
-+	/*
-+	 * We don't want to warn for emergency remount. The condition is
-+	 * ordered to avoid dereferencing inode->i_sb in non-error case to
-+	 * avoid slow-downs.
-+	 */
-+	WARN_ON_ONCE(IS_RDONLY(inode) &&
-+		     !(EXT3_SB(inode->i_sb)->s_mount_state & EXT3_ERROR_FS));
- 
- 	if (ext3_journal_current_handle())
- 		goto out_fail;
-@@ -1735,7 +1747,13 @@ static int ext3_journalled_writepage(struct page *page,
- 	int err;
- 
- 	J_ASSERT(PageLocked(page));
--	WARN_ON_ONCE(IS_RDONLY(inode));
-+	/*
-+	 * We don't want to warn for emergency remount. The condition is
-+	 * ordered to avoid dereferencing inode->i_sb in non-error case to
-+	 * avoid slow-downs.
-+	 */
-+	WARN_ON_ONCE(IS_RDONLY(inode) &&
-+		     !(EXT3_SB(inode->i_sb)->s_mount_state & EXT3_ERROR_FS));
- 
- 	if (ext3_journal_current_handle())
- 		goto no_write;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0026-drivers-hv-Don-t-OOPS-when-you-cannot-init-vmbus.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0026-drivers-hv-Don-t-OOPS-when-you-cannot-init-vmbus.patch
deleted file mode 100644
index deb65c6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0026-drivers-hv-Don-t-OOPS-when-you-cannot-init-vmbus.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From dd343a1e4ffe4bfbfa808d2d983eb7f3c05b9649 Mon Sep 17 00:00:00 2001
-From: "K. Y. Srinivasan" <kys at microsoft.com>
-Date: Thu, 1 Dec 2011 09:59:34 -0800
-Subject: [PATCH 26/49] drivers: hv: Don't OOPS when you cannot init vmbus
-
-commit cf6a2eacbcb2593b5b91d0817915c4f0464bb534 upstream.
-
-The hv vmbus driver was causing an OOPS since it was trying to register drivers
-on top of the bus even if initialization of the bus has failed for some
-reason (such as the odd chance someone would run a hv enabled kernel in a
-non-hv environment).
-
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: K. Y. Srinivasan <kys at microsoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hv/vmbus_drv.c |   16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
-index 0c048dd..d3b0b4f 100644
---- a/drivers/hv/vmbus_drv.c
-+++ b/drivers/hv/vmbus_drv.c
-@@ -62,6 +62,14 @@ struct hv_device_info {
- 	struct hv_dev_port_info outbound;
- };
- 
-+static int vmbus_exists(void)
-+{
-+	if (hv_acpi_dev == NULL)
-+		return -ENODEV;
-+
-+	return 0;
-+}
-+
- 
- static void get_channel_info(struct hv_device *device,
- 			     struct hv_device_info *info)
-@@ -590,6 +598,10 @@ int __vmbus_driver_register(struct hv_driver *hv_driver, struct module *owner, c
- 
- 	pr_info("registering driver %s\n", hv_driver->name);
- 
-+	ret = vmbus_exists();
-+	if (ret < 0)
-+		return ret;
-+
- 	hv_driver->driver.name = hv_driver->name;
- 	hv_driver->driver.owner = owner;
- 	hv_driver->driver.mod_name = mod_name;
-@@ -614,6 +626,9 @@ void vmbus_driver_unregister(struct hv_driver *hv_driver)
- {
- 	pr_info("unregistering driver %s\n", hv_driver->name);
- 
-+	if (!vmbus_exists())
-+		return;
-+
- 	driver_unregister(&hv_driver->driver);
- 
- }
-@@ -776,6 +791,7 @@ static int __init hv_acpi_init(void)
- 
- cleanup:
- 	acpi_bus_unregister_driver(&vmbus_acpi_driver);
-+	hv_acpi_dev = NULL;
- 	return ret;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0027-Drivers-hv-Fix-a-bug-in-vmbus_driver_unregister.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0027-Drivers-hv-Fix-a-bug-in-vmbus_driver_unregister.patch
deleted file mode 100644
index 09e0236..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0027-Drivers-hv-Fix-a-bug-in-vmbus_driver_unregister.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8253be156f369d4015dc311ca6895f655c7ec3b1 Mon Sep 17 00:00:00 2001
-From: "K. Y. Srinivasan" <kys at microsoft.com>
-Date: Tue, 27 Dec 2011 13:49:37 -0800
-Subject: [PATCH 27/49] Drivers:hv: Fix a bug in vmbus_driver_unregister()
-
-commit 8f257a142fc3868d69de3f996b95d7bdbc509560 upstream.
-
-The function vmbus_exists() was introduced recently to deal with cases where
-the vmbus driver failed to initialize and yet other Hyper-V drivers attempted
-to register with the vmbus bus driver. This patch introduced a bug where
-vmbus_driver_unregister() would fail to unregister the driver. This patch
-fixes the problem.
-
-Signed-off-by: K. Y. Srinivasan <kys at microsoft.com>
-Signed-off-by: Fuzhou Chen <fuzhouch at microsoft.com>
-Cc: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hv/vmbus_drv.c |    5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/drivers/hv/vmbus_drv.c b/drivers/hv/vmbus_drv.c
-index d3b0b4f..d2d0a2a 100644
---- a/drivers/hv/vmbus_drv.c
-+++ b/drivers/hv/vmbus_drv.c
-@@ -627,10 +627,7 @@ void vmbus_driver_unregister(struct hv_driver *hv_driver)
- 	pr_info("unregistering driver %s\n", hv_driver->name);
- 
- 	if (!vmbus_exists())
--		return;
--
--	driver_unregister(&hv_driver->driver);
--
-+		driver_unregister(&hv_driver->driver);
- }
- EXPORT_SYMBOL_GPL(vmbus_driver_unregister);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0028-USB-update-documentation-for-usbmon.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0028-USB-update-documentation-for-usbmon.patch
deleted file mode 100644
index 0396a42..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0028-USB-update-documentation-for-usbmon.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 4567e036cdbcff4a7859ca92fcc3a86fe84c73d1 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Wed, 4 Jan 2012 16:36:35 -0500
-Subject: [PATCH 28/49] USB: update documentation for usbmon
-
-commit d8cae98cddd286e38db1724dda1b0e7b467f9237 upstream.
-
-The documentation for usbmon is out of date; the usbfs "devices" file
-now exists in /sys/kernel/debug/usb rather than /proc/bus/usb.  This
-patch (as1505) updates the documentation accordingly, and also
-mentions that the necessary information can be found by running lsusb.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-CC: Pete Zaitcev <zaitcev at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- Documentation/usb/usbmon.txt |   14 +++++++++-----
- 1 file changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/Documentation/usb/usbmon.txt b/Documentation/usb/usbmon.txt
-index a4efa04..5335fa8 100644
---- a/Documentation/usb/usbmon.txt
-+++ b/Documentation/usb/usbmon.txt
-@@ -47,10 +47,11 @@ This allows to filter away annoying devices that talk continuously.
- 
- 2. Find which bus connects to the desired device
- 
--Run "cat /proc/bus/usb/devices", and find the T-line which corresponds to
--the device. Usually you do it by looking for the vendor string. If you have
--many similar devices, unplug one and compare two /proc/bus/usb/devices outputs.
--The T-line will have a bus number. Example:
-+Run "cat /sys/kernel/debug/usb/devices", and find the T-line which corresponds
-+to the device. Usually you do it by looking for the vendor string. If you have
-+many similar devices, unplug one and compare the two
-+/sys/kernel/debug/usb/devices outputs. The T-line will have a bus number.
-+Example:
- 
- T:  Bus=03 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
- D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs=  1
-@@ -58,7 +59,10 @@ P:  Vendor=0557 ProdID=2004 Rev= 1.00
- S:  Manufacturer=ATEN
- S:  Product=UC100KM V2.00
- 
--Bus=03 means it's bus 3.
-+"Bus=03" means it's bus 3. Alternatively, you can look at the output from
-+"lsusb" and get the bus number from the appropriate line. Example:
-+
-+Bus 003 Device 002: ID 0557:2004 ATEN UC100KM V2.00
- 
- 3. Start 'cat'
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0029-usbfs-Fix-oops-related-to-user-namespace-conversion.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0029-usbfs-Fix-oops-related-to-user-namespace-conversion.patch
deleted file mode 100644
index 053e6b2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0029-usbfs-Fix-oops-related-to-user-namespace-conversion.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From dd26fed234814467b3d7b537485351705545370c Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Fri, 16 Dec 2011 11:26:30 -0800
-Subject: [PATCH 29/49] usbfs: Fix oops related to user namespace conversion.
-
-commit 1b41c8321e495337e877ca02d0b9680bc4112eff upstream.
-
-When running the Point Grey "flycap" program for their USB 3.0 camera
-(which was running as a USB 2.0 device for some reason), I trigger this
-oops whenever I try to open a video stream:
-
-Dec 15 16:48:34 puck kernel: [ 1798.715559] BUG: unable to handle kernel NULL pointer dereference at           (null)
-Dec 15 16:48:34 puck kernel: [ 1798.719153] IP: [<ffffffff8147841e>] free_async+0x1e/0x70
-Dec 15 16:48:34 puck kernel: [ 1798.720991] PGD 6f833067 PUD 6fc56067 PMD 0
-Dec 15 16:48:34 puck kernel: [ 1798.722815] Oops: 0002 [#1] SMP
-Dec 15 16:48:34 puck kernel: [ 1798.724627] CPU 0
-Dec 15 16:48:34 puck kernel: [ 1798.724636] Modules linked in: ecryptfs encrypted_keys sha1_generic trusted binfmt_misc sha256_generic aesni_intel cryptd aes_x86_64 aes_generic parport_pc dm_crypt ppdev joydev snd_hda_codec_hdmi snd_hda_codec_conexant arc4 iwlwifi snd_hda_intel snd_hda_codec snd_hwdep snd_pcm thinkpad_acpi mac80211 snd_seq_midi snd_rawmidi snd_seq_midi_event snd_seq snd_timer btusb uvcvideo snd_seq_device bluetooth videodev psmouse snd v4l2_compat_ioctl32 serio_raw tpm_tis cfg80211 tpm tpm_bios nvram soundcore snd_page_alloc lp parport i915 xhci_hcd ahci libahci drm_kms_helper drm sdhci_pci sdhci e1000e i2c_algo_bit video
-Dec 15 16:48:34 puck kernel: [ 1798.734212]
-Dec 15 16:48:34 puck kernel: [ 1798.736162] Pid: 2713, comm: FlyCap2 Not tainted 3.2.0-rc5+ #28 LENOVO 4286CTO/4286CTO
-Dec 15 16:48:34 puck kernel: [ 1798.738148] RIP: 0010:[<ffffffff8147841e>]  [<ffffffff8147841e>] free_async+0x1e/0x70
-Dec 15 16:48:34 puck kernel: [ 1798.740134] RSP: 0018:ffff88005715fd78  EFLAGS: 00010296
-Dec 15 16:48:34 puck kernel: [ 1798.742118] RAX: 00000000fffffff4 RBX: ffff88006fe8f900 RCX: 0000000000004118
-Dec 15 16:48:34 puck kernel: [ 1798.744116] RDX: 0000000001000000 RSI: 0000000000016390 RDI: 0000000000000000
-Dec 15 16:48:34 puck kernel: [ 1798.746087] RBP: ffff88005715fd88 R08: 0000000000000000 R09: ffffffff8146f22e
-Dec 15 16:48:34 puck kernel: [ 1798.748018] R10: ffff88006e520ac0 R11: 0000000000000001 R12: ffff88005715fe28
-Dec 15 16:48:34 puck kernel: [ 1798.749916] R13: ffff88005d31df00 R14: ffff88006fe8f900 R15: 00007f688c995cb8
-Dec 15 16:48:34 puck kernel: [ 1798.751785] FS:  00007f68a366da40(0000) GS:ffff880100200000(0000) knlGS:0000000000000000
-Dec 15 16:48:34 puck kernel: [ 1798.753659] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-Dec 15 16:48:34 puck kernel: [ 1798.755509] CR2: 0000000000000000 CR3: 00000000706bb000 CR4: 00000000000406f0
-Dec 15 16:48:34 puck kernel: [ 1798.757334] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-Dec 15 16:48:34 puck kernel: [ 1798.759124] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-Dec 15 16:48:34 puck kernel: [ 1798.760871] Process FlyCap2 (pid: 2713, threadinfo ffff88005715e000, task ffff88006c675b80)
-Dec 15 16:48:34 puck kernel: [ 1798.762605] Stack:
-Dec 15 16:48:34 puck kernel: [ 1798.764297]  ffff88005715fe28 0000000000000000 ffff88005715fe08 ffffffff81479058
-Dec 15 16:48:34 puck kernel: [ 1798.766020]  0000000000000000 ffffea0000004000 ffff880000004118 0000000000000000
-Dec 15 16:48:34 puck kernel: [ 1798.767750]  ffff880000000001 ffff88006e520ac0 fffffff46fd81180 0000000000000000
-Dec 15 16:48:34 puck kernel: [ 1798.769472] Call Trace:
-Dec 15 16:48:34 puck kernel: [ 1798.771147]  [<ffffffff81479058>] proc_do_submiturb+0x778/0xa00
-Dec 15 16:48:34 puck kernel: [ 1798.772798]  [<ffffffff8147a5fd>] usbdev_do_ioctl+0x24d/0x1200
-Dec 15 16:48:34 puck kernel: [ 1798.774410]  [<ffffffff8147b5de>] usbdev_ioctl+0xe/0x20
-Dec 15 16:48:34 puck kernel: [ 1798.775975]  [<ffffffff81189259>] do_vfs_ioctl+0x99/0x600
-Dec 15 16:48:34 puck kernel: [ 1798.777534]  [<ffffffff81189851>] sys_ioctl+0x91/0xa0
-Dec 15 16:48:34 puck kernel: [ 1798.779088]  [<ffffffff816247c2>] system_call_fastpath+0x16/0x1b
-ec 15 16:48:34 puck kernel: [ 1798.780634] Code: 51 ff ff ff e9 29 ff ff ff 0f 1f 40 00 55 48 89 e5 53 48 83 ec 08 66 66 66 66 90 48 89 fb 48 8b 7f 18 e8 a6 ea c0 ff 4
-8 8b 7b 20 <f0> ff 0f 0f 94 c0 84 c0 74 05 e8 d3 99 c1 ff 48 8b 43 40 48 8b
-Dec 15 16:48:34 puck kernel: [ 1798.783970] RIP  [<ffffffff8147841e>] free_async+0x1e/0x70
-Dec 15 16:48:34 puck kernel: [ 1798.785630]  RSP <ffff88005715fd78>
-Dec 15 16:48:34 puck kernel: [ 1798.787274] CR2: 0000000000000000
-Dec 15 16:48:34 puck kernel: [ 1798.794728] ---[ end trace 52894d3355f88d19 ]---
-
-markup_oops.pl says the oops is in put_cred:
-
- ffffffff81478401:      48 89 e5                mov    %rsp,%rbp
- ffffffff81478404:      53                      push   %rbx
- ffffffff81478405:      48 83 ec 08             sub    $0x8,%rsp
- ffffffff81478409:      e8 f2 c0 1a 00          callq  ffffffff81624500 <mcount>
- ffffffff8147840e:      48 89 fb                mov    %rdi,%rbx   |  %ebx => ffff88006fe8f900
-        put_pid(as->pid);
- ffffffff81478411:      48 8b 7f 18             mov    0x18(%rdi),%rdi
- ffffffff81478415:      e8 a6 ea c0 ff          callq  ffffffff81086ec0 <put_pid>
-        put_cred(as->cred);
- ffffffff8147841a:      48 8b 7b 20             mov    0x20(%rbx),%rdi |  %edi => 0  %ebx = ffff88006fe8f900
-  */
- static inline int atomic_dec_and_test(atomic_t *v)
- {
-        unsigned char c;
-
-        asm volatile(LOCK_PREFIX "decl %0; sete %1"
-*ffffffff8147841e:      f0 ff 0f                lock decl (%rdi)   |  %edi = 0 <--- faulting instruction
- ffffffff81478421:      0f 94 c0                sete   %al
- static inline void put_cred(const struct cred *_cred)
- {
-        struct cred *cred = (struct cred *) _cred;
-
-        validate_creds(cred);
-        if (atomic_dec_and_test(&(cred)->usage))
- ffffffff81478424:      84 c0                   test   %al,%al
- ffffffff81478426:      74 05                   je     ffffffff8147842d <free_async+0x2d>
-                __put_cred(cred);
- ffffffff81478428:      e8 d3 99 c1 ff          callq  ffffffff81091e00 <__put_cred>
-        kfree(as->urb->transfer_buffer);
- ffffffff8147842d:      48 8b 43 40             mov    0x40(%rbx),%rax
- ffffffff81478431:      48 8b 78 68             mov    0x68(%rax),%rdi
- ffffffff81478435:      e8 a6 e1 ce ff          callq  ffffffff811665e0 <kfree>
-        kfree(as->urb->setup_packet);
- ffffffff8147843a:      48 8b 43 40             mov    0x40(%rbx),%rax
- ffffffff8147843e:      48 8b b8 90 00 00 00    mov    0x90(%rax),%rdi
- ffffffff81478445:      e8 96 e1 ce ff          callq  ffffffff811665e0 <kfree>
-        usb_free_urb(as->urb);
- ffffffff8147844a:      48 8b 7b 40             mov    0x40(%rbx),%rdi
- ffffffff8147844e:      e8 0d 6b ff ff          callq  ffffffff8146ef60 <usb_free_urb>
-
-This bug seems to have been introduced by commit
-d178bc3a708f39cbfefc3fab37032d3f2511b4ec "user namespace: usb: make usb
-urbs user namespace aware (v2)"
-
-I'm not sure if this is right fix, but it does stop the oops.
-
-Unfortunately, the Point Grey software still refuses to work, but it's a
-closed source app, so I can't fix it.
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Acked-by: Serge Hallyn <serge.hallyn at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/core/devio.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
-index e3beaf2..7abf060 100644
---- a/drivers/usb/core/devio.c
-+++ b/drivers/usb/core/devio.c
-@@ -249,7 +249,8 @@ static struct async *alloc_async(unsigned int numisoframes)
- static void free_async(struct async *as)
- {
- 	put_pid(as->pid);
--	put_cred(as->cred);
-+	if (as->cred)
-+		put_cred(as->cred);
- 	kfree(as->urb->transfer_buffer);
- 	kfree(as->urb->setup_packet);
- 	usb_free_urb(as->urb);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0030-atmel_serial-fix-spinlock-lockup-in-RS485-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0030-atmel_serial-fix-spinlock-lockup-in-RS485-code.patch
deleted file mode 100644
index d3200cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0030-atmel_serial-fix-spinlock-lockup-in-RS485-code.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 9f3da92a62f59784ea39eaa38e259f0185bd5d09 Mon Sep 17 00:00:00 2001
-From: Claudio Scordino <claudio at evidence.eu.com>
-Date: Fri, 16 Dec 2011 15:08:49 +0100
-Subject: [PATCH 30/49] atmel_serial: fix spinlock lockup in RS485 code
-
-commit dbf1115d3f8c7052788aa4e6e46abd27f3b3eeba upstream.
-
-Patch to fix a spinlock lockup in the driver that sometimes happens when the
-tasklet starts.
-
-Signed-off-by: Claudio Scordino <claudio at evidence.eu.com>
-Signed-off-by: Dave Bender <codehero at gmail.com>
-Tested-by: Dave Bender <codehero at gmail.com>
-Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Acked-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/tty/serial/atmel_serial.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/tty/serial/atmel_serial.c b/drivers/tty/serial/atmel_serial.c
-index 4c823f3..90c8e3a 100644
---- a/drivers/tty/serial/atmel_serial.c
-+++ b/drivers/tty/serial/atmel_serial.c
-@@ -212,8 +212,9 @@ void atmel_config_rs485(struct uart_port *port, struct serial_rs485 *rs485conf)
- {
- 	struct atmel_uart_port *atmel_port = to_atmel_uart_port(port);
- 	unsigned int mode;
-+	unsigned long flags;
- 
--	spin_lock(&port->lock);
-+	spin_lock_irqsave(&port->lock, flags);
- 
- 	/* Disable interrupts */
- 	UART_PUT_IDR(port, atmel_port->tx_done_mask);
-@@ -244,7 +245,7 @@ void atmel_config_rs485(struct uart_port *port, struct serial_rs485 *rs485conf)
- 	/* Enable interrupts */
- 	UART_PUT_IER(port, atmel_port->tx_done_mask);
- 
--	spin_unlock(&port->lock);
-+	spin_unlock_irqrestore(&port->lock, flags);
- 
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0031-cgroup-fix-to-allow-mounting-a-hierarchy-by-name.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0031-cgroup-fix-to-allow-mounting-a-hierarchy-by-name.patch
deleted file mode 100644
index b91d665..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0031-cgroup-fix-to-allow-mounting-a-hierarchy-by-name.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 99dba4cb547d9eecf9a9958972763934240d26c1 Mon Sep 17 00:00:00 2001
-From: Li Zefan <lizf at cn.fujitsu.com>
-Date: Tue, 27 Dec 2011 14:25:55 +0800
-Subject: [PATCH 31/49] cgroup: fix to allow mounting a hierarchy by name
-
-commit 0d19ea866562e46989412a0676412fa0983c9ce7 upstream.
-
-If we mount a hierarchy with a specified name, the name is unique,
-and we can use it to mount the hierarchy without specifying its
-set of subsystem names. This feature is documented is
-Documentation/cgroups/cgroups.txt section 2.3
-
-Here's an example:
-
-	# mount -t cgroup -o cpuset,name=myhier xxx /cgroup1
-	# mount -t cgroup -o name=myhier xxx /cgroup2
-
-But it was broken by commit 32a8cf235e2f192eb002755076994525cdbaa35a
-(cgroup: make the mount options parsing more accurate)
-
-This fixes the regression.
-
-Signed-off-by: Li Zefan <lizf at cn.fujitsu.com>
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- kernel/cgroup.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/kernel/cgroup.c b/kernel/cgroup.c
-index a184470..cdc0354 100644
---- a/kernel/cgroup.c
-+++ b/kernel/cgroup.c
-@@ -1175,10 +1175,10 @@ static int parse_cgroupfs_options(char *data, struct cgroup_sb_opts *opts)
- 
- 	/*
- 	 * If the 'all' option was specified select all the subsystems,
--	 * otherwise 'all, 'none' and a subsystem name options were not
--	 * specified, let's default to 'all'
-+	 * otherwise if 'none', 'name=' and a subsystem name options
-+	 * were not specified, let's default to 'all'
- 	 */
--	if (all_ss || (!all_ss && !one_ss && !opts->none)) {
-+	if (all_ss || (!one_ss && !opts->none && !opts->name)) {
- 		for (i = 0; i < CGROUP_SUBSYS_COUNT; i++) {
- 			struct cgroup_subsys *ss = subsys[i];
- 			if (ss == NULL)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0032-udf-Fix-deadlock-when-converting-file-from-in-ICB-on.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0032-udf-Fix-deadlock-when-converting-file-from-in-ICB-on.patch
deleted file mode 100644
index 7b3593c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0032-udf-Fix-deadlock-when-converting-file-from-in-ICB-on.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 317d33b7d9f1ae588576781c738a4f7e187c4385 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Sat, 10 Dec 2011 02:30:48 +0100
-Subject: [PATCH 32/49] udf: Fix deadlock when converting file from in-ICB one
- to normal one
-
-commit d2eb8c359309ec45d6bf5b147303ab8e13be86ea upstream.
-
-During BKL removal in 2.6.38, conversion of files from in-ICB format to normal
-format got broken. We call ->writepage with i_data_sem held but udf_get_block()
-also acquires i_data_sem thus creating A-A deadlock.
-
-We fix the problem by dropping i_data_sem before calling ->writepage() which is
-safe since i_mutex still protects us against any changes in the file. Also fix
-pagelock - i_data_sem lock inversion in udf_expand_file_adinicb() by dropping
-i_data_sem before calling find_or_create_page().
-
-Reported-by: Matthias Matiak <netzpython at mail-on.us>
-Tested-by: Matthias Matiak <netzpython at mail-on.us>
-Reviewed-by: Namjae Jeon <linkinjeon at gmail.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/udf/file.c  |    6 +++---
- fs/udf/inode.c |   21 ++++++++++++++++++---
- 2 files changed, 21 insertions(+), 6 deletions(-)
-
-diff --git a/fs/udf/file.c b/fs/udf/file.c
-index d8ffa7c..dca0c38 100644
---- a/fs/udf/file.c
-+++ b/fs/udf/file.c
-@@ -125,7 +125,6 @@ static ssize_t udf_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
- 			err = udf_expand_file_adinicb(inode);
- 			if (err) {
- 				udf_debug("udf_expand_adinicb: err=%d\n", err);
--				up_write(&iinfo->i_data_sem);
- 				return err;
- 			}
- 		} else {
-@@ -133,9 +132,10 @@ static ssize_t udf_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
- 				iinfo->i_lenAlloc = pos + count;
- 			else
- 				iinfo->i_lenAlloc = inode->i_size;
-+			up_write(&iinfo->i_data_sem);
- 		}
--	}
--	up_write(&iinfo->i_data_sem);
-+	} else
-+		up_write(&iinfo->i_data_sem);
- 
- 	retval = generic_file_aio_write(iocb, iov, nr_segs, ppos);
- 	if (retval > 0)
-diff --git a/fs/udf/inode.c b/fs/udf/inode.c
-index 4fd1d80..e2787d0 100644
---- a/fs/udf/inode.c
-+++ b/fs/udf/inode.c
-@@ -151,6 +151,12 @@ const struct address_space_operations udf_aops = {
- 	.bmap		= udf_bmap,
- };
- 
-+/*
-+ * Expand file stored in ICB to a normal one-block-file
-+ *
-+ * This function requires i_data_sem for writing and releases it.
-+ * This function requires i_mutex held
-+ */
- int udf_expand_file_adinicb(struct inode *inode)
- {
- 	struct page *page;
-@@ -169,9 +175,15 @@ int udf_expand_file_adinicb(struct inode *inode)
- 			iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG;
- 		/* from now on we have normal address_space methods */
- 		inode->i_data.a_ops = &udf_aops;
-+		up_write(&iinfo->i_data_sem);
- 		mark_inode_dirty(inode);
- 		return 0;
- 	}
-+	/*
-+	 * Release i_data_sem so that we can lock a page - page lock ranks
-+	 * above i_data_sem. i_mutex still protects us against file changes.
-+	 */
-+	up_write(&iinfo->i_data_sem);
- 
- 	page = find_or_create_page(inode->i_mapping, 0, GFP_NOFS);
- 	if (!page)
-@@ -187,6 +199,7 @@ int udf_expand_file_adinicb(struct inode *inode)
- 		SetPageUptodate(page);
- 		kunmap(page);
- 	}
-+	down_write(&iinfo->i_data_sem);
- 	memset(iinfo->i_ext.i_data + iinfo->i_lenEAttr, 0x00,
- 	       iinfo->i_lenAlloc);
- 	iinfo->i_lenAlloc = 0;
-@@ -196,17 +209,20 @@ int udf_expand_file_adinicb(struct inode *inode)
- 		iinfo->i_alloc_type = ICBTAG_FLAG_AD_LONG;
- 	/* from now on we have normal address_space methods */
- 	inode->i_data.a_ops = &udf_aops;
-+	up_write(&iinfo->i_data_sem);
- 	err = inode->i_data.a_ops->writepage(page, &udf_wbc);
- 	if (err) {
- 		/* Restore everything back so that we don't lose data... */
- 		lock_page(page);
- 		kaddr = kmap(page);
-+		down_write(&iinfo->i_data_sem);
- 		memcpy(iinfo->i_ext.i_data + iinfo->i_lenEAttr, kaddr,
- 		       inode->i_size);
- 		kunmap(page);
- 		unlock_page(page);
- 		iinfo->i_alloc_type = ICBTAG_FLAG_AD_IN_ICB;
- 		inode->i_data.a_ops = &udf_adinicb_aops;
-+		up_write(&iinfo->i_data_sem);
- 	}
- 	page_cache_release(page);
- 	mark_inode_dirty(inode);
-@@ -1111,10 +1127,9 @@ int udf_setsize(struct inode *inode, loff_t newsize)
- 			if (bsize <
- 			    (udf_file_entry_alloc_offset(inode) + newsize)) {
- 				err = udf_expand_file_adinicb(inode);
--				if (err) {
--					up_write(&iinfo->i_data_sem);
-+				if (err)
- 					return err;
--				}
-+				down_write(&iinfo->i_data_sem);
- 			} else
- 				iinfo->i_lenAlloc = newsize;
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0033-drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0033-drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch
deleted file mode 100644
index 0967d6b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0033-drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From acba1185b43fb423f894716d8d856b2ec4b4b57e Mon Sep 17 00:00:00 2001
-From: Julia Lawall <julia at diku.dk>
-Date: Fri, 23 Dec 2011 14:02:55 +0100
-Subject: [PATCH 33/49] drivers/usb/class/cdc-acm.c: clear dangling pointer
-
-commit e7c8e8605d0bafc705ff27f9da98a1668427cc0f upstream.
-
-On some failures, the country_code field of an acm structure is freed
-without freeing the acm structure itself.  Elsewhere, operations including
-memcpy and kfree are performed on the country_code field.  The patch sets
-the country_code field to NULL when it is freed, and likewise sets the
-country_code_size field to 0.
-
-Signed-off-by: Julia Lawall <julia at diku.dk>
-Acked-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/class/cdc-acm.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
-index a8078d0..ea5e487 100644
---- a/drivers/usb/class/cdc-acm.c
-+++ b/drivers/usb/class/cdc-acm.c
-@@ -1183,6 +1183,8 @@ made_compressed_probe:
- 		i = device_create_file(&intf->dev, &dev_attr_wCountryCodes);
- 		if (i < 0) {
- 			kfree(acm->country_codes);
-+			acm->country_codes = NULL;
-+			acm->country_code_size = 0;
- 			goto skip_countries;
- 		}
- 
-@@ -1191,6 +1193,8 @@ made_compressed_probe:
- 		if (i < 0) {
- 			device_remove_file(&intf->dev, &dev_attr_wCountryCodes);
- 			kfree(acm->country_codes);
-+			acm->country_codes = NULL;
-+			acm->country_code_size = 0;
- 			goto skip_countries;
- 		}
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0034-USB-isight-fix-kernel-bug-when-loading-firmware.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0034-USB-isight-fix-kernel-bug-when-loading-firmware.patch
deleted file mode 100644
index 54e1436..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0034-USB-isight-fix-kernel-bug-when-loading-firmware.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 4e09208930ee36458849851891315d3fdd225b11 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at suse.de>
-Date: Mon, 5 Dec 2011 14:02:59 -0800
-Subject: [PATCH 34/49] USB: isight: fix kernel bug when loading firmware
-
-commit 59bf5cf94f0fa3b08fb1258b52649077b7d0914d upstream.
-
-We were sending data on the stack when uploading firmware, which causes
-some machines fits, and is not allowed.  Fix this by using the buffer we
-already had around for this very purpose.
-
-Reported-by: Wouter M. Koolen <wmkoolen at cwi.nl>
-Tested-by: Wouter M. Koolen <wmkoolen at cwi.nl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/misc/isight_firmware.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/misc/isight_firmware.c b/drivers/usb/misc/isight_firmware.c
-index fe1d443..8f725f6 100644
---- a/drivers/usb/misc/isight_firmware.c
-+++ b/drivers/usb/misc/isight_firmware.c
-@@ -55,8 +55,9 @@ static int isight_firmware_load(struct usb_interface *intf,
- 
- 	ptr = firmware->data;
- 
-+	buf[0] = 0x01;
- 	if (usb_control_msg
--	    (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\1", 1,
-+	    (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1,
- 	     300) != 1) {
- 		printk(KERN_ERR
- 		       "Failed to initialise isight firmware loader\n");
-@@ -100,8 +101,9 @@ static int isight_firmware_load(struct usb_interface *intf,
- 		}
- 	}
- 
-+	buf[0] = 0x00;
- 	if (usb_control_msg
--	    (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, "\0", 1,
-+	    (dev, usb_sndctrlpipe(dev, 0), 0xa0, 0x40, 0xe600, 0, buf, 1,
- 	     300) != 1) {
- 		printk(KERN_ERR "isight firmware loading completion failed\n");
- 		ret = -ENODEV;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0035-usb-usb-storage-doesn-t-support-dynamic-id-currently.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0035-usb-usb-storage-doesn-t-support-dynamic-id-currently.patch
deleted file mode 100644
index c1931cd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0035-usb-usb-storage-doesn-t-support-dynamic-id-currently.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 8190d5a061930631a577541f296dba71b2495791 Mon Sep 17 00:00:00 2001
-From: Huajun Li <huajun.li.lee at gmail.com>
-Date: Wed, 4 Jan 2012 19:25:33 +0800
-Subject: [PATCH 35/49] usb: usb-storage doesn't support dynamic id currently,
- the patch disables the feature to fix an oops
-
-commit 1a3a026ba1b6bbfe0b7f79ab38cf991d691e7c9a upstream.
-
-Echo vendor and product number of a non usb-storage device to
-usb-storage driver's new_id, then plug in the device to host and you
-will find following oops msg, the root cause is usb_stor_probe1()
-refers invalid id entry if giving a dynamic id, so just disable the
-feature.
-
-[ 3105.018012] general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
-[ 3105.018062] CPU 0
-[ 3105.018075] Modules linked in: usb_storage usb_libusual bluetooth
-dm_crypt binfmt_misc snd_hda_codec_analog snd_hda_intel snd_hda_codec
-snd_hwdep hp_wmi ppdev sparse_keymap snd_pcm snd_seq_midi snd_rawmidi
-snd_seq_midi_event snd_seq snd_timer snd_seq_device psmouse snd
-serio_raw tpm_infineon soundcore i915 snd_page_alloc tpm_tis
-parport_pc tpm tpm_bios drm_kms_helper drm i2c_algo_bit video lp
-parport usbhid hid sg sr_mod sd_mod ehci_hcd uhci_hcd usbcore e1000e
-usb_common floppy
-[ 3105.018408]
-[ 3105.018419] Pid: 189, comm: khubd Tainted: G          I  3.2.0-rc7+
-#29 Hewlett-Packard HP Compaq dc7800p Convertible Minitower/0AACh
-[ 3105.018481] RIP: 0010:[<ffffffffa045830d>]  [<ffffffffa045830d>]
-usb_stor_probe1+0x2fd/0xc20 [usb_storage]
-[ 3105.018536] RSP: 0018:ffff880056a3d830  EFLAGS: 00010286
-[ 3105.018562] RAX: ffff880065f4e648 RBX: ffff88006bb28000 RCX: 0000000000000000
-[ 3105.018597] RDX: ffff88006f23c7b0 RSI: 0000000000000001 RDI: 0000000000000206
-[ 3105.018632] RBP: ffff880056a3d900 R08: 0000000000000000 R09: ffff880067365000
-[ 3105.018665] R10: 00000000000002ac R11: 0000000000000010 R12: ffff6000b41a7340
-[ 3105.018698] R13: ffff880065f4ef60 R14: ffff88006bb28b88 R15: ffff88006f23d270
-[ 3105.018733] FS:  0000000000000000(0000) GS:ffff88007a200000(0000)
-knlGS:0000000000000000
-[ 3105.018773] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-[ 3105.018801] CR2: 00007fc99c8c4650 CR3: 0000000001e05000 CR4: 00000000000006f0
-[ 3105.018835] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-[ 3105.018870] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-[ 3105.018906] Process khubd (pid: 189, threadinfo ffff880056a3c000,
-task ffff88005677a400)
-[ 3105.018945] Stack:
-[ 3105.018959]  0000000000000000 0000000000000000 ffff880056a3d8d0
-0000000000000002
-[ 3105.019011]  0000000000000000 ffff880056a3d918 ffff880000000000
-0000000000000002
-[ 3105.019058]  ffff880056a3d8d0 0000000000000012 ffff880056a3d8d0
-0000000000000006
-[ 3105.019105] Call Trace:
-[ 3105.019128]  [<ffffffffa0458cd4>] storage_probe+0xa4/0xe0 [usb_storage]
-[ 3105.019173]  [<ffffffffa0097822>] usb_probe_interface+0x172/0x330 [usbcore]
-[ 3105.019211]  [<ffffffff815fda67>] driver_probe_device+0x257/0x3b0
-[ 3105.019243]  [<ffffffff815fdd43>] __device_attach+0x73/0x90
-[ 3105.019272]  [<ffffffff815fdcd0>] ? __driver_attach+0x110/0x110
-[ 3105.019303]  [<ffffffff815fb93c>] bus_for_each_drv+0x9c/0xf0
-[ 3105.019334]  [<ffffffff815fd6c7>] device_attach+0xf7/0x120
-[ 3105.019364]  [<ffffffff815fc905>] bus_probe_device+0x45/0x80
-[ 3105.019396]  [<ffffffff815f98a6>] device_add+0x876/0x990
-[ 3105.019434]  [<ffffffffa0094e42>] usb_set_configuration+0x822/0x9e0 [usbcore]
-[ 3105.019479]  [<ffffffffa00a3492>] generic_probe+0x62/0xf0 [usbcore]
-[ 3105.019518]  [<ffffffffa0097a46>] usb_probe_device+0x66/0xb0 [usbcore]
-[ 3105.019555]  [<ffffffff815fda67>] driver_probe_device+0x257/0x3b0
-[ 3105.019589]  [<ffffffff815fdd43>] __device_attach+0x73/0x90
-[ 3105.019617]  [<ffffffff815fdcd0>] ? __driver_attach+0x110/0x110
-[ 3105.019648]  [<ffffffff815fb93c>] bus_for_each_drv+0x9c/0xf0
-[ 3105.019680]  [<ffffffff815fd6c7>] device_attach+0xf7/0x120
-[ 3105.019709]  [<ffffffff815fc905>] bus_probe_device+0x45/0x80
-[ 3105.021040] usb usb6: usb auto-resume
-[ 3105.021045] usb usb6: wakeup_rh
-[ 3105.024849]  [<ffffffff815f98a6>] device_add+0x876/0x990
-[ 3105.025086]  [<ffffffffa0088987>] usb_new_device+0x1e7/0x2b0 [usbcore]
-[ 3105.025086]  [<ffffffffa008a4d7>] hub_thread+0xb27/0x1ec0 [usbcore]
-[ 3105.025086]  [<ffffffff810d5200>] ? wake_up_bit+0x50/0x50
-[ 3105.025086]  [<ffffffffa00899b0>] ? usb_remote_wakeup+0xa0/0xa0 [usbcore]
-[ 3105.025086]  [<ffffffff810d49b8>] kthread+0xd8/0xf0
-[ 3105.025086]  [<ffffffff81939884>] kernel_thread_helper+0x4/0x10
-[ 3105.025086]  [<ffffffff8192a8c0>] ? _raw_spin_unlock_irq+0x50/0x80
-[ 3105.025086]  [<ffffffff8192b1b4>] ? retint_restore_args+0x13/0x13
-[ 3105.025086]  [<ffffffff810d48e0>] ? __init_kthread_worker+0x80/0x80
-[ 3105.025086]  [<ffffffff81939880>] ? gs_change+0x13/0x13
-[ 3105.025086] Code: 00 48 83 05 cd ad 00 00 01 48 83 05 cd ad 00 00
-01 4c 8b ab 30 0c 00 00 48 8b 50 08 48 83 c0 30 48 89 45 a0 4c 89 a3
-40 0c 00 00 <41> 0f b6 44 24 10 48 89 55 a8 3c ff 0f 84 b8 04 00 00 48
-83 05
-[ 3105.025086] RIP  [<ffffffffa045830d>] usb_stor_probe1+0x2fd/0xc20
-[usb_storage]
-[ 3105.025086]  RSP <ffff880056a3d830>
-[ 3105.060037] hub 6-0:1.0: hub_resume
-[ 3105.062616] usb usb5: usb auto-resume
-[ 3105.064317] ehci_hcd 0000:00:1d.7: resume root hub
-[ 3105.094809] ---[ end trace a7919e7f17c0a727 ]---
-[ 3105.130069] hub 5-0:1.0: hub_resume
-[ 3105.132131] usb usb4: usb auto-resume
-[ 3105.132136] usb usb4: wakeup_rh
-[ 3105.180059] hub 4-0:1.0: hub_resume
-[ 3106.290052] usb usb6: suspend_rh (auto-stop)
-[ 3106.290077] usb usb4: suspend_rh (auto-stop)
-
-Signed-off-by: Huajun Li <huajun.li.lee at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/storage/usb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
-index c325e69..9e069ef 100644
---- a/drivers/usb/storage/usb.c
-+++ b/drivers/usb/storage/usb.c
-@@ -1073,6 +1073,7 @@ static struct usb_driver usb_storage_driver = {
- 	.id_table =	usb_storage_usb_ids,
- 	.supports_autosuspend = 1,
- 	.soft_unbind =	1,
-+	.no_dynamic_id = 1,
- };
- 
- static int __init usb_stor_init(void)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0036-USB-pxa168-Fix-compilation-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0036-USB-pxa168-Fix-compilation-error.patch
deleted file mode 100644
index 7c169fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0036-USB-pxa168-Fix-compilation-error.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 8325e7fefc03f4e9942f89762d0cf80ad9ae2a3d Mon Sep 17 00:00:00 2001
-From: Tanmay Upadhyay <tanmay.upadhyay at einfochips.com>
-Date: Thu, 8 Dec 2011 10:03:49 +0530
-Subject: [PATCH 36/49] USB: pxa168: Fix compilation error
-
-commit 35657c4d72925936c7219cc5caac118ca632acc2 upstream.
-
-After commit c430131a02d677aa708f56342c1565edfdacb3c0 (Support
-controllers with big endian capability regs), HC_LENGTH takes
-two arguments. This patch fixes following compilation error:
-
-In file included from drivers/usb/host/ehci-hcd.c:1323:
-drivers/usb/host/ehci-pxa168.c:302:54: error: macro "HC_LENGTH" requires 2 arguments, but only 1 given
-In file included from drivers/usb/host/ehci-hcd.c:1323:
-drivers/usb/host/ehci-pxa168.c: In function 'ehci_pxa168_drv_probe':
-drivers/usb/host/ehci-pxa168.c:302: error: 'HC_LENGTH' undeclared (first use in this function)
-drivers/usb/host/ehci-pxa168.c:302: error: (Each undeclared identifier is reported only once
-drivers/usb/host/ehci-pxa168.c:302: error: for each function it appears in.)
-
-Signed-off-by: Tanmay Upadhyay <tanmay.upadhyay at einfochips.com>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/host/ehci-pxa168.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/ehci-pxa168.c b/drivers/usb/host/ehci-pxa168.c
-index ac0c16e..8d0e7a2 100644
---- a/drivers/usb/host/ehci-pxa168.c
-+++ b/drivers/usb/host/ehci-pxa168.c
-@@ -299,7 +299,7 @@ static int __devinit ehci_pxa168_drv_probe(struct platform_device *pdev)
- 	ehci = hcd_to_ehci(hcd);
- 	ehci->caps = hcd->regs + 0x100;
- 	ehci->regs = hcd->regs + 0x100 +
--		HC_LENGTH(ehci_readl(ehci, &ehci->caps->hc_capbase));
-+		HC_LENGTH(ehci, ehci_readl(ehci, &ehci->caps->hc_capbase));
- 	ehci->hcs_params = ehci_readl(ehci, &ehci->caps->hcs_params);
- 	hcd->has_tt = 1;
- 	ehci->sbrn = 0x20;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0037-USB-add-quirk-for-another-camera.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0037-USB-add-quirk-for-another-camera.patch
deleted file mode 100644
index 527f6f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0037-USB-add-quirk-for-another-camera.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 50e9555941ff61bb9e2ef09033899beaa2e4bbf2 Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oliver at neukum.org>
-Date: Tue, 3 Jan 2012 09:58:54 +0100
-Subject: [PATCH 37/49] USB: add quirk for another camera
-
-commit 35284b3d2f68a8a3703745e629999469f78386b5 upstream.
-
-The Guillemot Webcam Hercules Dualpix Exchange camera
-has been reported with a second ID.
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/core/quirks.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index ecf12e1..4c65eb6 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -117,9 +117,12 @@ static const struct usb_device_id usb_quirk_list[] = {
- 	{ USB_DEVICE(0x06a3, 0x0006), .driver_info =
- 			USB_QUIRK_CONFIG_INTF_STRINGS },
- 
--	/* Guillemot Webcam Hercules Dualpix Exchange*/
-+	/* Guillemot Webcam Hercules Dualpix Exchange (2nd ID) */
- 	{ USB_DEVICE(0x06f8, 0x0804), .driver_info = USB_QUIRK_RESET_RESUME },
- 
-+	/* Guillemot Webcam Hercules Dualpix Exchange*/
-+	{ USB_DEVICE(0x06f8, 0x3005), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- 	/* M-Systems Flash Disk Pioneers */
- 	{ USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0038-USB-omninet-fix-write_room.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0038-USB-omninet-fix-write_room.patch
deleted file mode 100644
index 1cfcf18..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0038-USB-omninet-fix-write_room.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From a20f87f804897492ceed5fb120ca4dfded6918ed Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Sun, 6 Nov 2011 19:06:21 +0100
-Subject: [PATCH 38/49] USB: omninet: fix write_room
-
-commit 694c6301e515bad574af74b6552134c4d9dcb334 upstream.
-
-Fix regression introduced by commit 507ca9bc047666 ([PATCH] USB: add
-ability for usb-serial drivers to determine if their write urb is
-currently being used.) which inverted the logic in write_room so that it
-returns zero when the write urb is actually free.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/serial/omninet.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/omninet.c b/drivers/usb/serial/omninet.c
-index 60f38d5..0a8c1e6 100644
---- a/drivers/usb/serial/omninet.c
-+++ b/drivers/usb/serial/omninet.c
-@@ -315,7 +315,7 @@ static int omninet_write_room(struct tty_struct *tty)
- 	int room = 0; /* Default: no room */
- 
- 	/* FIXME: no consistent locking for write_urb_busy */
--	if (wport->write_urb_busy)
-+	if (!wport->write_urb_busy)
- 		room = wport->bulk_out_size - OMNINET_HEADERLEN;
- 
- 	dbg("%s - returns %d", __func__, room);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0039-usb-option-add-ZD-Incorporated-HSPA-modem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0039-usb-option-add-ZD-Incorporated-HSPA-modem.patch
deleted file mode 100644
index f4a72ee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0039-usb-option-add-ZD-Incorporated-HSPA-modem.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8a5baaaadedfa3aeba738b93fc50d60e9e21cfd5 Mon Sep 17 00:00:00 2001
-From: Janne Snabb <snabb at epipe.com>
-Date: Wed, 28 Dec 2011 19:36:00 +0000
-Subject: [PATCH 39/49] usb: option: add ZD Incorporated HSPA modem
-
-commit 3c8c9316710b83e906e425024153bf0929887b59 upstream.
-
-Add support for Chinese Noname HSPA USB modem which is apparently
-manufactured by a company called ZD Incorporated (based on texts in the
-Windows drivers).
-
-This product is available at least from Dealextreme (SKU 80032) and
-possibly in India with name Olive V-MW250. It is based on Qualcomm
-MSM6280 chip.
-
-I needed to also add "options usb-storage quirks=0685:7000:i" in modprobe
-configuration because udevd or the kernel keeps poking the embedded
-fake-cd-rom which fails and causes the device to reset. There might be
-a better way to accomplish the same. usb_modeswitch is not needed with
-this device.
-
-Signed-off-by: Janne Snabb <snabb at epipe.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/serial/option.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 6dd6453..c96b6b6 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -476,6 +476,10 @@ static void option_instat_callback(struct urb *urb);
- #define VIETTEL_VENDOR_ID			0x2262
- #define VIETTEL_PRODUCT_VT1000			0x0002
- 
-+/* ZD Incorporated */
-+#define ZD_VENDOR_ID				0x0685
-+#define ZD_PRODUCT_7000				0x7000
-+
- /* some devices interfaces need special handling due to a number of reasons */
- enum option_blacklist_reason {
- 		OPTION_BLACKLIST_NONE = 0,
-@@ -1178,6 +1182,7 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU528) },
- 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU526) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
- 	{ } /* Terminating entry */
- };
- MODULE_DEVICE_TABLE(usb, option_ids);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0040-USB-Add-USB-ID-for-Multiplex-RC-serial-adapter-to-cp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0040-USB-Add-USB-ID-for-Multiplex-RC-serial-adapter-to-cp.patch
deleted file mode 100644
index 08661c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0040-USB-Add-USB-ID-for-Multiplex-RC-serial-adapter-to-cp.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 5f3ac99ec102297e3fa6be18ebc03d9ecde65d26 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Malte=20Schr=C3=B6der?= <maltesch at gmx.de>
-Date: Thu, 5 Jan 2012 20:34:40 +0100
-Subject: [PATCH 40/49] USB: Add USB-ID for Multiplex RC serial adapter to
- cp210x.c
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 08e87d0d773dc9ca5faf4c3306e238ed0ea129b0 upstream.
-
-Hi, below patch adds the USB-ID of the serial adapters sold by
-Multiplex RC (www.multiplex-rc.de).
-
-Signed-off-by: Malte Schröder <maltesch at gmx.de>
-Cc: stable <stable at vger.kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/serial/cp210x.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index fd67cc5..a1a324b 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -92,6 +92,7 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x10C4, 0x818B) }, /* AVIT Research USB to TTL */
- 	{ USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */
- 	{ USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */
-+	{ USB_DEVICE(0x10C4, 0x81A9) }, /* Multiplex RC Interface */
- 	{ USB_DEVICE(0x10C4, 0x81AC) }, /* MSD Dash Hawk */
- 	{ USB_DEVICE(0x10C4, 0x81AD) }, /* INSYS USB Modem */
- 	{ USB_DEVICE(0x10C4, 0x81C8) }, /* Lipowsky Industrie Elektronik GmbH, Baby-JTAG */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0041-usb-fix-number-of-mapped-SG-DMA-entries.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0041-usb-fix-number-of-mapped-SG-DMA-entries.patch
deleted file mode 100644
index 760e95d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0041-usb-fix-number-of-mapped-SG-DMA-entries.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 1f1c6efa1c4c5546f68842735a916322705719cc Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens at ladisch.de>
-Date: Sat, 3 Dec 2011 23:41:31 +0100
-Subject: [PATCH 41/49] usb: fix number of mapped SG DMA entries
-
-commit bc677d5b64644c399cd3db6a905453e611f402ab upstream.
-
-Add a new field num_mapped_sgs to struct urb so that we have a place to
-store the number of mapped entries and can also retain the original
-value of entries in num_sgs.  Previously, usb_hcd_map_urb_for_dma()
-would overwrite this with the number of mapped entries, which would
-break dma_unmap_sg() because it requires the original number of entries.
-
-This fixes warnings like the following when using USB storage devices:
- ------------[ cut here ]------------
- WARNING: at lib/dma-debug.c:902 check_unmap+0x4e4/0x695()
- ehci_hcd 0000:00:12.2: DMA-API: device driver frees DMA sg list with different entry count [map count=4] [unmap count=1]
- Modules linked in: ohci_hcd ehci_hcd
- Pid: 0, comm: kworker/0:1 Not tainted 3.2.0-rc2+ #319
- Call Trace:
-  <IRQ>  [<ffffffff81036d3b>] warn_slowpath_common+0x80/0x98
-  [<ffffffff81036de7>] warn_slowpath_fmt+0x41/0x43
-  [<ffffffff811fa5ae>] check_unmap+0x4e4/0x695
-  [<ffffffff8105e92c>] ? trace_hardirqs_off+0xd/0xf
-  [<ffffffff8147208b>] ? _raw_spin_unlock_irqrestore+0x33/0x50
-  [<ffffffff811fa84a>] debug_dma_unmap_sg+0xeb/0x117
-  [<ffffffff8137b02f>] usb_hcd_unmap_urb_for_dma+0x71/0x188
-  [<ffffffff8137b166>] unmap_urb_for_dma+0x20/0x22
-  [<ffffffff8137b1c5>] usb_hcd_giveback_urb+0x5d/0xc0
-  [<ffffffffa0000d02>] ehci_urb_done+0xf7/0x10c [ehci_hcd]
-  [<ffffffffa0001140>] qh_completions+0x429/0x4bd [ehci_hcd]
-  [<ffffffffa000340a>] ehci_work+0x95/0x9c0 [ehci_hcd]
-  ...
- ---[ end trace f29ac88a5a48c580 ]---
- Mapped at:
-  [<ffffffff811faac4>] debug_dma_map_sg+0x45/0x139
-  [<ffffffff8137bc0b>] usb_hcd_map_urb_for_dma+0x22e/0x478
-  [<ffffffff8137c494>] usb_hcd_submit_urb+0x63f/0x6fa
-  [<ffffffff8137d01c>] usb_submit_urb+0x2c7/0x2de
-  [<ffffffff8137dcd4>] usb_sg_wait+0x55/0x161
-
-Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/core/hcd.c       |    5 ++---
- drivers/usb/host/ehci-q.c    |    2 +-
- drivers/usb/host/uhci-q.c    |    2 +-
- drivers/usb/host/whci/qset.c |    4 ++--
- drivers/usb/host/xhci-ring.c |    4 ++--
- include/linux/usb.h          |    1 +
- 6 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
-index 13222d3..179e364 100644
---- a/drivers/usb/core/hcd.c
-+++ b/drivers/usb/core/hcd.c
-@@ -1412,11 +1412,10 @@ int usb_hcd_map_urb_for_dma(struct usb_hcd *hcd, struct urb *urb,
- 					ret = -EAGAIN;
- 				else
- 					urb->transfer_flags |= URB_DMA_MAP_SG;
--				if (n != urb->num_sgs) {
--					urb->num_sgs = n;
-+				urb->num_mapped_sgs = n;
-+				if (n != urb->num_sgs)
- 					urb->transfer_flags |=
- 							URB_DMA_SG_COMBINED;
--				}
- 			} else if (urb->sg) {
- 				struct scatterlist *sg = urb->sg;
- 				urb->transfer_dma = dma_map_page(
-diff --git a/drivers/usb/host/ehci-q.c b/drivers/usb/host/ehci-q.c
-index 4e4066c..fef1db3 100644
---- a/drivers/usb/host/ehci-q.c
-+++ b/drivers/usb/host/ehci-q.c
-@@ -647,7 +647,7 @@ qh_urb_transaction (
- 	/*
- 	 * data transfer stage:  buffer setup
- 	 */
--	i = urb->num_sgs;
-+	i = urb->num_mapped_sgs;
- 	if (len > 0 && i > 0) {
- 		sg = urb->sg;
- 		buf = sg_dma_address(sg);
-diff --git a/drivers/usb/host/uhci-q.c b/drivers/usb/host/uhci-q.c
-index f6ca80e..d2c6f5a 100644
---- a/drivers/usb/host/uhci-q.c
-+++ b/drivers/usb/host/uhci-q.c
-@@ -943,7 +943,7 @@ static int uhci_submit_common(struct uhci_hcd *uhci, struct urb *urb,
- 	if (usb_pipein(urb->pipe))
- 		status |= TD_CTRL_SPD;
- 
--	i = urb->num_sgs;
-+	i = urb->num_mapped_sgs;
- 	if (len > 0 && i > 0) {
- 		sg = urb->sg;
- 		data = sg_dma_address(sg);
-diff --git a/drivers/usb/host/whci/qset.c b/drivers/usb/host/whci/qset.c
-index a403b53..76083ae 100644
---- a/drivers/usb/host/whci/qset.c
-+++ b/drivers/usb/host/whci/qset.c
-@@ -443,7 +443,7 @@ static int qset_add_urb_sg(struct whc *whc, struct whc_qset *qset, struct urb *u
- 
- 	remaining = urb->transfer_buffer_length;
- 
--	for_each_sg(urb->sg, sg, urb->num_sgs, i) {
-+	for_each_sg(urb->sg, sg, urb->num_mapped_sgs, i) {
- 		dma_addr_t dma_addr;
- 		size_t dma_remaining;
- 		dma_addr_t sp, ep;
-@@ -561,7 +561,7 @@ static int qset_add_urb_sg_linearize(struct whc *whc, struct whc_qset *qset,
- 
- 	remaining = urb->transfer_buffer_length;
- 
--	for_each_sg(urb->sg, sg, urb->num_sgs, i) {
-+	for_each_sg(urb->sg, sg, urb->num_mapped_sgs, i) {
- 		size_t len;
- 		size_t sg_remaining;
- 		void *orig;
-diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
-index 9f1d4b1..d28c586 100644
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -2561,7 +2561,7 @@ static unsigned int count_sg_trbs_needed(struct xhci_hcd *xhci, struct urb *urb)
- 	struct scatterlist *sg;
- 
- 	sg = NULL;
--	num_sgs = urb->num_sgs;
-+	num_sgs = urb->num_mapped_sgs;
- 	temp = urb->transfer_buffer_length;
- 
- 	xhci_dbg(xhci, "count sg list trbs: \n");
-@@ -2745,7 +2745,7 @@ static int queue_bulk_sg_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
- 		return -EINVAL;
- 
- 	num_trbs = count_sg_trbs_needed(xhci, urb);
--	num_sgs = urb->num_sgs;
-+	num_sgs = urb->num_mapped_sgs;
- 	total_packet_count = roundup(urb->transfer_buffer_length,
- 			usb_endpoint_maxp(&urb->ep->desc));
- 
-diff --git a/include/linux/usb.h b/include/linux/usb.h
-index 1cea207..7626e5a 100644
---- a/include/linux/usb.h
-+++ b/include/linux/usb.h
-@@ -1222,6 +1222,7 @@ struct urb {
- 	void *transfer_buffer;		/* (in) associated data buffer */
- 	dma_addr_t transfer_dma;	/* (in) dma addr for transfer_buffer */
- 	struct scatterlist *sg;		/* (in) scatter gather buffer list */
-+	int num_mapped_sgs;		/* (internal) mapped sg entries */
- 	int num_sgs;			/* (in) number of entries in the sg list */
- 	u32 transfer_buffer_length;	/* (in) data buffer length */
- 	u32 actual_length;		/* (return) actual transfer length */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0042-xhci-Properly-handle-COMP_2ND_BW_ERR.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0042-xhci-Properly-handle-COMP_2ND_BW_ERR.patch
deleted file mode 100644
index d57b8bb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0042-xhci-Properly-handle-COMP_2ND_BW_ERR.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 0fb23f5a75ba46ec0d828d48dca74bc9c1c1920a Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede at redhat.com>
-Date: Wed, 4 Jan 2012 23:29:18 +0100
-Subject: [PATCH 42/49] xhci: Properly handle COMP_2ND_BW_ERR
-
-commit 71d85724bdd947a3b42a88d08af79f290a1a767b upstream.
-
-I encountered a result of COMP_2ND_BW_ERR while improving how the pwc
-webcam driver handles not having the full usb1 bandwidth available to
-itself.
-
-I created the following test setup, a NEC xhci controller with a
-single TT USB 2 hub plugged into it, with a usb keyboard and a pwc webcam
-plugged into the usb2 hub. This caused the following to show up in dmesg
-when trying to stream from the pwc camera at its highest alt setting:
-
-xhci_hcd 0000:01:00.0: ERROR: unexpected command completion code 0x23.
-usb 6-2.1: Not enough bandwidth for altsetting 9
-
-And usb_set_interface returned -EINVAL, which caused my pwc code to not
-do the right thing as it expected -ENOSPC.
-
-This patch makes the xhci driver properly handle COMP_2ND_BW_ERR and makes
-usb_set_interface return -ENOSPC as expected.
-
-This should be backported to stable kernels as old as 2.6.32.
-
-Signed-off-by: Hans de Goede <hdegoede at redhat.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/host/xhci.c |    1 +
- drivers/usb/host/xhci.h |    1 -
- 2 files changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index a1afb7c..36f9dd8 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -1620,6 +1620,7 @@ static int xhci_configure_endpoint_result(struct xhci_hcd *xhci,
- 		/* FIXME: can we allocate more resources for the HC? */
- 		break;
- 	case COMP_BW_ERR:
-+	case COMP_2ND_BW_ERR:
- 		dev_warn(&udev->dev, "Not enough bandwidth "
- 				"for new device state.\n");
- 		ret = -ENOSPC;
-diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
-index 3c8fbd2..09eda3a 100644
---- a/drivers/usb/host/xhci.h
-+++ b/drivers/usb/host/xhci.h
-@@ -1033,7 +1033,6 @@ struct xhci_transfer_event {
- /* Invalid Stream ID Error */
- #define COMP_STRID_ERR	34
- /* Secondary Bandwidth Error - may be returned by a Configure Endpoint cmd */
--/* FIXME - check for this */
- #define COMP_2ND_BW_ERR	35
- /* Split Transaction Error */
- #define	COMP_SPLIT_ERR	36
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0043-usb-ch9-fix-up-MaxStreams-helper.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0043-usb-ch9-fix-up-MaxStreams-helper.patch
deleted file mode 100644
index e1853e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0043-usb-ch9-fix-up-MaxStreams-helper.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 88294d7967eb85c2dde19473346a74fc1b324e09 Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Mon, 2 Jan 2012 13:35:41 +0200
-Subject: [PATCH 43/49] usb: ch9: fix up MaxStreams helper
-
-commit 18b7ede5f7ee2092aedcb578d3ac30bd5d4fc23c upstream.
-
-[ removed the dwc3 portion of the patch as it didn't apply to
-older kernels - gregkh]
-
-According to USB 3.0 Specification Table 9-22, if
-bmAttributes [4:0] are set to zero, it means "no
-streams supported", but the way this helper was
-defined on Linux, we will *always* have one stream
-which might cause several problems.
-
-For example on DWC3, we would tell the controller
-endpoint has streams enabled and yet start transfers
-with Stream ID set to 0, which would goof up the host
-side.
-
-While doing that, convert the macro to an inline
-function due to the different checks we now need.
-
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/host/xhci.c |    3 +--
- include/linux/usb/ch9.h |   20 +++++++++++++++++++-
- 2 files changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 36f9dd8..b33f059 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -2797,8 +2797,7 @@ static int xhci_calculate_streams_and_bitmask(struct xhci_hcd *xhci,
- 		if (ret < 0)
- 			return ret;
- 
--		max_streams = USB_SS_MAX_STREAMS(
--				eps[i]->ss_ep_comp.bmAttributes);
-+		max_streams = usb_ss_max_streams(&eps[i]->ss_ep_comp);
- 		if (max_streams < (*num_streams - 1)) {
- 			xhci_dbg(xhci, "Ep 0x%x only supports %u stream IDs.\n",
- 					eps[i]->desc.bEndpointAddress,
-diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
-index d5da6c6..61b2905 100644
---- a/include/linux/usb/ch9.h
-+++ b/include/linux/usb/ch9.h
-@@ -605,8 +605,26 @@ struct usb_ss_ep_comp_descriptor {
- } __attribute__ ((packed));
- 
- #define USB_DT_SS_EP_COMP_SIZE		6
-+
- /* Bits 4:0 of bmAttributes if this is a bulk endpoint */
--#define USB_SS_MAX_STREAMS(p)		(1 << ((p) & 0x1f))
-+static inline int
-+usb_ss_max_streams(const struct usb_ss_ep_comp_descriptor *comp)
-+{
-+	int		max_streams;
-+
-+	if (!comp)
-+		return 0;
-+
-+	max_streams = comp->bmAttributes & 0x1f;
-+
-+	if (!max_streams)
-+		return 0;
-+
-+	max_streams = 1 << max_streams;
-+
-+	return max_streams;
-+}
-+
- /* Bits 1:0 of bmAttributes if this is an isoc endpoint */
- #define USB_SS_MULT(p)			(1 + ((p) & 0x3))
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0044-igmp-Avoid-zero-delay-when-receiving-odd-mixture-of-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0044-igmp-Avoid-zero-delay-when-receiving-odd-mixture-of-.patch
deleted file mode 100644
index 6ff846f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0044-igmp-Avoid-zero-delay-when-receiving-odd-mixture-of-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f93baced861192a7ee0ec93708f2611c685abfad Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Mon, 9 Jan 2012 14:06:46 -0800
-Subject: [PATCH 44/49] igmp: Avoid zero delay when receiving odd mixture of
- IGMP queries
-
-commit a8c1f65c79cbbb2f7da782d4c9d15639a9b94b27 upstream.
-
-Commit 5b7c84066733c5dfb0e4016d939757b38de189e4 ('ipv4: correct IGMP
-behavior on v3 query during v2-compatibility mode') added yet another
-case for query parsing, which can result in max_delay = 0.  Substitute
-a value of 1, as in the usual v3 case.
-
-Reported-by: Simon McVittie <smcv at debian.org>
-References: http://bugs.debian.org/654876
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- net/ipv4/igmp.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
-index b2ca095..c3cc64c 100644
---- a/net/ipv4/igmp.c
-+++ b/net/ipv4/igmp.c
-@@ -875,6 +875,8 @@ static void igmp_heard_query(struct in_device *in_dev, struct sk_buff *skb,
- 		 * to be intended in a v3 query.
- 		 */
- 		max_delay = IGMPV3_MRC(ih3->code)*(HZ/IGMP_TIMER_SCALE);
-+		if (!max_delay)
-+			max_delay = 1;	/* can't mod w/ 0 */
- 	} else { /* v3 */
- 		if (!pskb_may_pull(skb, sizeof(struct igmpv3_query)))
- 			return;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0045-asix-fix-infinite-loop-in-rx_fixup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0045-asix-fix-infinite-loop-in-rx_fixup.patch
deleted file mode 100644
index 493d369..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0045-asix-fix-infinite-loop-in-rx_fixup.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7765e2cf7fabde891d8916805ffa205da4e24f6e Mon Sep 17 00:00:00 2001
-From: Aurelien Jacobs <aurel at gnuage.org>
-Date: Sat, 7 Jan 2012 12:15:16 -0800
-Subject: [PATCH 45/49] asix: fix infinite loop in rx_fixup()
-
-commit 6c15d74defd38e7e7f8805392578b7a1d508097e upstream.
-
-At this point if skb->len happens to be 2, the subsequant skb_pull(skb, 4)
-call won't work and the skb->len won't be decreased and won't ever reach 0,
-resulting in an infinite loop.
-
-With an ASIX 88772 under heavy load, without this patch, rx_fixup() reaches
-an infinite loop in less than a minute. With this patch applied,
-no infinite loop even after hours of heavy load.
-
-Signed-off-by: Aurelien Jacobs <aurel at gnuage.org>
-Cc: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- drivers/net/usb/asix.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
-index e95f0e6..dd2625a 100644
---- a/drivers/net/usb/asix.c
-+++ b/drivers/net/usb/asix.c
-@@ -376,7 +376,7 @@ static int asix_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
- 
- 		skb_pull(skb, (size + 1) & 0xfffe);
- 
--		if (skb->len == 0)
-+		if (skb->len < sizeof(header))
- 			break;
- 
- 		head = (u8 *) skb->data;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0046-bonding-fix-error-handling-if-slave-is-busy-v2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0046-bonding-fix-error-handling-if-slave-is-busy-v2.patch
deleted file mode 100644
index 1dc672d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0046-bonding-fix-error-handling-if-slave-is-busy-v2.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From d9424820ef21c0dbf35278e9096406685b0dda64 Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Sat, 31 Dec 2011 13:26:46 +0000
-Subject: [PATCH 46/49] bonding: fix error handling if slave is busy (v2)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit f7d9821a6a9c83450ac35e76d3709e32fd38b76f upstream.
-
-If slave device already has a receive handler registered, then the
-error unwind of bonding device enslave function is broken.
-
-The following will leave a pointer to freed memory in the slave
-device list, causing a later kernel panic.
-# modprobe dummy
-# ip li add dummy0-1 link dummy0 type macvlan
-# modprobe bonding
-# echo +dummy0 >/sys/class/net/bond0/bonding/slaves
-
-The fix is to detach the slave (which removes it from the list)
-in the unwind path.
-
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Reviewed-by: Nicolas de Pesloüan <nicolas.2p.debian at free.fr>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/bonding/bond_main.c |    9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index 7f87568..e58aa2b 100644
---- a/drivers/net/bonding/bond_main.c
-+++ b/drivers/net/bonding/bond_main.c
-@@ -1822,7 +1822,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
- 				 "but new slave device does not support netpoll.\n",
- 				 bond_dev->name);
- 			res = -EBUSY;
--			goto err_close;
-+			goto err_detach;
- 		}
- 	}
- #endif
-@@ -1831,7 +1831,7 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
- 
- 	res = bond_create_slave_symlinks(bond_dev, slave_dev);
- 	if (res)
--		goto err_close;
-+		goto err_detach;
- 
- 	res = netdev_rx_handler_register(slave_dev, bond_handle_frame,
- 					 new_slave);
-@@ -1852,6 +1852,11 @@ int bond_enslave(struct net_device *bond_dev, struct net_device *slave_dev)
- err_dest_symlinks:
- 	bond_destroy_slave_symlinks(bond_dev, slave_dev);
- 
-+err_detach:
-+	write_lock_bh(&bond->lock);
-+	bond_detach_slave(bond, new_slave);
-+	write_unlock_bh(&bond->lock);
-+
- err_close:
- 	dev_close(slave_dev);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0047-usb-cdc-acm-Fix-acm_tty_hangup-vs.-acm_tty_close-rac.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0047-usb-cdc-acm-Fix-acm_tty_hangup-vs.-acm_tty_close-rac.patch
deleted file mode 100644
index 2130de8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0047-usb-cdc-acm-Fix-acm_tty_hangup-vs.-acm_tty_close-rac.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From d64db2d8b1a2459f0cdae717c746411531ef5b7f Mon Sep 17 00:00:00 2001
-From: Thilo-Alexander Ginkel <thilo at ginkel.com>
-Date: Sat, 17 Dec 2011 10:55:10 +0100
-Subject: [PATCH 47/49] usb: cdc-acm: Fix acm_tty_hangup() vs. acm_tty_close()
- race
-
-[Not upstream as it was fixed differently for 3.3 with a much more
-"intrusive" rework of the driver - gregkh]
-
-There is a race condition involving acm_tty_hangup() and acm_tty_close()
-where hangup() would attempt to access tty->driver_data without proper
-locking and NULL checking after close() has potentially already set it
-to NULL.  One possibility to (sporadically) trigger this behavior is to
-perform a suspend/resume cycle with a running WWAN data connection.
-
-This patch addresses the issue by introducing a NULL check for
-tty->driver_data in acm_tty_hangup() protected by open_mutex and exiting
-gracefully when hangup() is invoked on a device that has already been
-closed.
-
-Signed-off-by: Thilo-Alexander Ginkel <thilo at ginkel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/class/cdc-acm.c |   12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
-index ea5e487..e61d9c4 100644
---- a/drivers/usb/class/cdc-acm.c
-+++ b/drivers/usb/class/cdc-acm.c
-@@ -554,10 +554,18 @@ static void acm_port_down(struct acm *acm)
- 
- static void acm_tty_hangup(struct tty_struct *tty)
- {
--	struct acm *acm = tty->driver_data;
--	tty_port_hangup(&acm->port);
-+	struct acm *acm;
-+
- 	mutex_lock(&open_mutex);
-+	acm = tty->driver_data;
-+
-+	if (!acm)
-+		goto out;
-+
-+	tty_port_hangup(&acm->port);
- 	acm_port_down(acm);
-+
-+out:
- 	mutex_unlock(&open_mutex);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0048-xfs-fix-acl-count-validation-in-xfs_acl_from_disk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0048-xfs-fix-acl-count-validation-in-xfs_acl_from_disk.patch
deleted file mode 100644
index 97c6361..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0048-xfs-fix-acl-count-validation-in-xfs_acl_from_disk.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1525dee10b60791931bdc64dc0827ab9f23733a2 Mon Sep 17 00:00:00 2001
-From: Xi Wang <xi.wang at gmail.com>
-Date: Mon, 12 Dec 2011 21:55:52 +0000
-Subject: [PATCH 48/49] xfs: fix acl count validation in xfs_acl_from_disk()
-
-commit 093019cf1b18dd31b2c3b77acce4e000e2cbc9ce upstream.
-
-Commit fa8b18ed didn't prevent the integer overflow and possible
-memory corruption.  "count" can go negative and bypass the check.
-
-Signed-off-by: Xi Wang <xi.wang at gmail.com>
-Reviewed-by: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Ben Myers <bpm at sgi.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/xfs/xfs_acl.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/xfs/xfs_acl.c b/fs/xfs/xfs_acl.c
-index 76e4266..ac702a6 100644
---- a/fs/xfs/xfs_acl.c
-+++ b/fs/xfs/xfs_acl.c
-@@ -39,7 +39,7 @@ xfs_acl_from_disk(struct xfs_acl *aclp)
- 	struct posix_acl_entry *acl_e;
- 	struct posix_acl *acl;
- 	struct xfs_acl_entry *ace;
--	int count, i;
-+	unsigned int count, i;
- 
- 	count = be32_to_cpu(aclp->acl_cnt);
- 	if (count > XFS_ACL_MAX_ENTRIES)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0049-Linux-3.2.1.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0049-Linux-3.2.1.patch
deleted file mode 100644
index 8b6fcaa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.1/0049-Linux-3.2.1.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From ffb4eeef65c83cbcae58925d15f0c6bc5cb59cff Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at suse.de>
-Date: Thu, 12 Jan 2012 11:42:45 -0800
-Subject: [PATCH 49/49] Linux 3.2.1
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index adddd11..c5edffa 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 0
-+SUBLEVEL = 1
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0001-autofs-work-around-unhappy-compat-problem-on-x86-64.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0001-autofs-work-around-unhappy-compat-problem-on-x86-64.patch
deleted file mode 100644
index 16804db..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0001-autofs-work-around-unhappy-compat-problem-on-x86-64.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 472122b7b0040118eae3846c9bfbb97225f1ab11 Mon Sep 17 00:00:00 2001
-From: Ian Kent <raven at themaw.net>
-Date: Wed, 22 Feb 2012 20:45:44 +0800
-Subject: [PATCH 01/95] autofs: work around unhappy compat problem on x86-64
-
-commit a32744d4abae24572eff7269bc17895c41bd0085 upstream.
-
-When the autofs protocol version 5 packet type was added in commit
-5c0a32fc2cd0 ("autofs4: add new packet type for v5 communications"), it
-obvously tried quite hard to be word-size agnostic, and uses explicitly
-sized fields that are all correctly aligned.
-
-However, with the final "char name[NAME_MAX+1]" array at the end, the
-actual size of the structure ends up being not very well defined:
-because the struct isn't marked 'packed', doing a "sizeof()" on it will
-align the size of the struct up to the biggest alignment of the members
-it has.
-
-And despite all the members being the same, the alignment of them is
-different: a "__u64" has 4-byte alignment on x86-32, but native 8-byte
-alignment on x86-64.  And while 'NAME_MAX+1' ends up being a nice round
-number (256), the name[] array starts out a 4-byte aligned.
-
-End result: the "packed" size of the structure is 300 bytes: 4-byte, but
-not 8-byte aligned.
-
-As a result, despite all the fields being in the same place on all
-architectures, sizeof() will round up that size to 304 bytes on
-architectures that have 8-byte alignment for u64.
-
-Note that this is *not* a problem for 32-bit compat mode on POWER, since
-there __u64 is 8-byte aligned even in 32-bit mode.  But on x86, 32-bit
-and 64-bit alignment is different for 64-bit entities, and as a result
-the structure that has exactly the same layout has different sizes.
-
-So on x86-64, but no other architecture, we will just subtract 4 from
-the size of the structure when running in a compat task.  That way we
-will write the properly sized packet that user mode expects.
-
-Not pretty.  Sadly, this very subtle, and unnecessary, size difference
-has been encoded in user space that wants to read packets of *exactly*
-the right size, and will refuse to touch anything else.
-
-Reported-and-tested-by: Thomas Meyer <thomas at m3y3r.de>
-Signed-off-by: Ian Kent <raven at themaw.net>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/autofs4/autofs_i.h  |    1 +
- fs/autofs4/dev-ioctl.c |    1 +
- fs/autofs4/inode.c     |    2 ++
- fs/autofs4/waitq.c     |   22 +++++++++++++++++++---
- 4 files changed, 23 insertions(+), 3 deletions(-)
-
-diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
-index 326dc08..308a98b 100644
---- a/fs/autofs4/autofs_i.h
-+++ b/fs/autofs4/autofs_i.h
-@@ -110,6 +110,7 @@ struct autofs_sb_info {
- 	int sub_version;
- 	int min_proto;
- 	int max_proto;
-+	int compat_daemon;
- 	unsigned long exp_timeout;
- 	unsigned int type;
- 	int reghost_enabled;
-diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
-index 509fe1e..56bac70 100644
---- a/fs/autofs4/dev-ioctl.c
-+++ b/fs/autofs4/dev-ioctl.c
-@@ -385,6 +385,7 @@ static int autofs_dev_ioctl_setpipefd(struct file *fp,
- 		sbi->pipefd = pipefd;
- 		sbi->pipe = pipe;
- 		sbi->catatonic = 0;
-+		sbi->compat_daemon = is_compat_task();
- 	}
- out:
- 	mutex_unlock(&sbi->wq_mutex);
-diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
-index 8179f1a..98a5695 100644
---- a/fs/autofs4/inode.c
-+++ b/fs/autofs4/inode.c
-@@ -19,6 +19,7 @@
- #include <linux/parser.h>
- #include <linux/bitops.h>
- #include <linux/magic.h>
-+#include <linux/compat.h>
- #include "autofs_i.h"
- #include <linux/module.h>
- 
-@@ -224,6 +225,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
- 	set_autofs_type_indirect(&sbi->type);
- 	sbi->min_proto = 0;
- 	sbi->max_proto = 0;
-+	sbi->compat_daemon = is_compat_task();
- 	mutex_init(&sbi->wq_mutex);
- 	spin_lock_init(&sbi->fs_lock);
- 	sbi->queues = NULL;
-diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
-index e1fbdee..6861f61 100644
---- a/fs/autofs4/waitq.c
-+++ b/fs/autofs4/waitq.c
-@@ -90,7 +90,24 @@ static int autofs4_write(struct file *file, const void *addr, int bytes)
- 
- 	return (bytes > 0);
- }
--	
-+
-+/*
-+ * The autofs_v5 packet was misdesigned.
-+ *
-+ * The packets are identical on x86-32 and x86-64, but have different
-+ * alignment. Which means that 'sizeof()' will give different results.
-+ * Fix it up for the case of running 32-bit user mode on a 64-bit kernel.
-+ */
-+static noinline size_t autofs_v5_packet_size(struct autofs_sb_info *sbi)
-+{
-+	size_t pktsz = sizeof(struct autofs_v5_packet);
-+#if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT)
-+	if (sbi->compat_daemon > 0)
-+		pktsz -= 4;
-+#endif
-+	return pktsz;
-+}
-+
- static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
- 				 struct autofs_wait_queue *wq,
- 				 int type)
-@@ -147,8 +164,7 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
- 	{
- 		struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet;
- 
--		pktsz = sizeof(*packet);
--
-+		pktsz = autofs_v5_packet_size(sbi);
- 		packet->wait_queue_token = wq->wait_queue_token;
- 		packet->len = wq->name.len;
- 		memcpy(packet->name, wq->name.name, wq->name.len);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0002-Fix-autofs-compile-without-CONFIG_COMPAT.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0002-Fix-autofs-compile-without-CONFIG_COMPAT.patch
deleted file mode 100644
index 44363df..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0002-Fix-autofs-compile-without-CONFIG_COMPAT.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 2938d817a741a800001a3de1796090697b4d12e8 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sun, 26 Feb 2012 09:44:55 -0800
-Subject: [PATCH 02/95] Fix autofs compile without CONFIG_COMPAT
-
-commit 3c761ea05a8900a907f32b628611873f6bef24b2 upstream.
-
-The autofs compat handling fix caused a compile failure when
-CONFIG_COMPAT isn't defined.
-
-Instead of adding random #ifdef'fery in autofs, let's just make the
-compat helpers earlier to use: without CONFIG_COMPAT, is_compat_task()
-just hardcodes to zero.
-
-We could probably do something similar for a number of other cases where
-we have #ifdef's in code, but this is the low-hanging fruit.
-
-Reported-and-tested-by: Andreas Schwab <schwab at linux-m68k.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/compat.h |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/include/linux/compat.h b/include/linux/compat.h
-index 66ed067..d42bd48 100644
---- a/include/linux/compat.h
-+++ b/include/linux/compat.h
-@@ -561,5 +561,9 @@ asmlinkage ssize_t compat_sys_process_vm_writev(compat_pid_t pid,
- 		unsigned long liovcnt, const struct compat_iovec __user *rvec,
- 		unsigned long riovcnt, unsigned long flags);
- 
-+#else
-+
-+#define is_compat_task() (0)
-+
- #endif /* CONFIG_COMPAT */
- #endif /* _LINUX_COMPAT_H */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0003-compat-fix-compile-breakage-on-s390.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0003-compat-fix-compile-breakage-on-s390.patch
deleted file mode 100644
index 55d8ab3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0003-compat-fix-compile-breakage-on-s390.patch
+++ /dev/null
@@ -1,216 +0,0 @@
-From 94c0b0fd293ce8c712cf9ccbfecbb4f59fe737a9 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <heiko.carstens at de.ibm.com>
-Date: Mon, 27 Feb 2012 10:01:52 +0100
-Subject: [PATCH 03/95] compat: fix compile breakage on s390
-
-commit 048cd4e51d24ebf7f3552226d03c769d6ad91658 upstream.
-
-The new is_compat_task() define for the !COMPAT case in
-include/linux/compat.h conflicts with a similar define in
-arch/s390/include/asm/compat.h.
-
-This is the minimal patch which fixes the build issues.
-
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/s390/include/asm/compat.h  |    7 -------
- arch/s390/kernel/process.c      |    1 -
- arch/s390/kernel/ptrace.c       |    2 +-
- arch/s390/kernel/setup.c        |    2 +-
- arch/s390/kernel/signal.c       |    1 -
- arch/s390/mm/fault.c            |    1 -
- arch/s390/mm/mmap.c             |    2 +-
- drivers/s390/block/dasd_eckd.c  |    2 +-
- drivers/s390/block/dasd_ioctl.c |    1 +
- drivers/s390/char/fs3270.c      |    1 +
- drivers/s390/char/vmcp.c        |    1 +
- drivers/s390/cio/chsc_sch.c     |    1 +
- drivers/s390/scsi/zfcp_cfdc.c   |    1 +
- 13 files changed, 9 insertions(+), 14 deletions(-)
-
-diff --git a/arch/s390/include/asm/compat.h b/arch/s390/include/asm/compat.h
-index 2e49748..234f1d8 100644
---- a/arch/s390/include/asm/compat.h
-+++ b/arch/s390/include/asm/compat.h
-@@ -172,13 +172,6 @@ static inline int is_compat_task(void)
- 	return is_32bit_task();
- }
- 
--#else
--
--static inline int is_compat_task(void)
--{
--	return 0;
--}
--
- #endif
- 
- static inline void __user *arch_compat_alloc_user_space(long len)
-diff --git a/arch/s390/kernel/process.c b/arch/s390/kernel/process.c
-index 9451b21..53088e2 100644
---- a/arch/s390/kernel/process.c
-+++ b/arch/s390/kernel/process.c
-@@ -29,7 +29,6 @@
- #include <asm/irq.h>
- #include <asm/timer.h>
- #include <asm/nmi.h>
--#include <asm/compat.h>
- #include <asm/smp.h>
- #include "entry.h"
- 
-diff --git a/arch/s390/kernel/ptrace.c b/arch/s390/kernel/ptrace.c
-index 573bc29..afe82bc 100644
---- a/arch/s390/kernel/ptrace.c
-+++ b/arch/s390/kernel/ptrace.c
-@@ -20,8 +20,8 @@
- #include <linux/regset.h>
- #include <linux/tracehook.h>
- #include <linux/seccomp.h>
-+#include <linux/compat.h>
- #include <trace/syscall.h>
--#include <asm/compat.h>
- #include <asm/segment.h>
- #include <asm/page.h>
- #include <asm/pgtable.h>
-diff --git a/arch/s390/kernel/setup.c b/arch/s390/kernel/setup.c
-index e54c4ff..773f55e 100644
---- a/arch/s390/kernel/setup.c
-+++ b/arch/s390/kernel/setup.c
-@@ -45,6 +45,7 @@
- #include <linux/kexec.h>
- #include <linux/crash_dump.h>
- #include <linux/memory.h>
-+#include <linux/compat.h>
- 
- #include <asm/ipl.h>
- #include <asm/uaccess.h>
-@@ -58,7 +59,6 @@
- #include <asm/ptrace.h>
- #include <asm/sections.h>
- #include <asm/ebcdic.h>
--#include <asm/compat.h>
- #include <asm/kvm_virtio.h>
- #include <asm/diag.h>
- 
-diff --git a/arch/s390/kernel/signal.c b/arch/s390/kernel/signal.c
-index 7f6f9f3..5086553 100644
---- a/arch/s390/kernel/signal.c
-+++ b/arch/s390/kernel/signal.c
-@@ -30,7 +30,6 @@
- #include <asm/ucontext.h>
- #include <asm/uaccess.h>
- #include <asm/lowcore.h>
--#include <asm/compat.h>
- #include "entry.h"
- 
- #define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
-diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
-index a9a3018..c7f0fbc 100644
---- a/arch/s390/mm/fault.c
-+++ b/arch/s390/mm/fault.c
-@@ -36,7 +36,6 @@
- #include <asm/pgtable.h>
- #include <asm/irq.h>
- #include <asm/mmu_context.h>
--#include <asm/compat.h>
- #include "../kernel/entry.h"
- 
- #ifndef CONFIG_64BIT
-diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
-index f09c748..a0155c0 100644
---- a/arch/s390/mm/mmap.c
-+++ b/arch/s390/mm/mmap.c
-@@ -29,8 +29,8 @@
- #include <linux/mman.h>
- #include <linux/module.h>
- #include <linux/random.h>
-+#include <linux/compat.h>
- #include <asm/pgalloc.h>
--#include <asm/compat.h>
- 
- static unsigned long stack_maxrandom_size(void)
- {
-diff --git a/drivers/s390/block/dasd_eckd.c b/drivers/s390/block/dasd_eckd.c
-index 6ab2968..fe9dacc 100644
---- a/drivers/s390/block/dasd_eckd.c
-+++ b/drivers/s390/block/dasd_eckd.c
-@@ -18,12 +18,12 @@
- #include <linux/hdreg.h>	/* HDIO_GETGEO			    */
- #include <linux/bio.h>
- #include <linux/module.h>
-+#include <linux/compat.h>
- #include <linux/init.h>
- 
- #include <asm/debug.h>
- #include <asm/idals.h>
- #include <asm/ebcdic.h>
--#include <asm/compat.h>
- #include <asm/io.h>
- #include <asm/uaccess.h>
- #include <asm/cio.h>
-diff --git a/drivers/s390/block/dasd_ioctl.c b/drivers/s390/block/dasd_ioctl.c
-index f1a2016..792c69e 100644
---- a/drivers/s390/block/dasd_ioctl.c
-+++ b/drivers/s390/block/dasd_ioctl.c
-@@ -13,6 +13,7 @@
- #define KMSG_COMPONENT "dasd"
- 
- #include <linux/interrupt.h>
-+#include <linux/compat.h>
- #include <linux/major.h>
- #include <linux/fs.h>
- #include <linux/blkpg.h>
-diff --git a/drivers/s390/char/fs3270.c b/drivers/s390/char/fs3270.c
-index e712981..9117045 100644
---- a/drivers/s390/char/fs3270.c
-+++ b/drivers/s390/char/fs3270.c
-@@ -11,6 +11,7 @@
- #include <linux/console.h>
- #include <linux/init.h>
- #include <linux/interrupt.h>
-+#include <linux/compat.h>
- #include <linux/module.h>
- #include <linux/list.h>
- #include <linux/slab.h>
-diff --git a/drivers/s390/char/vmcp.c b/drivers/s390/char/vmcp.c
-index 75bde6a..89c03e6 100644
---- a/drivers/s390/char/vmcp.c
-+++ b/drivers/s390/char/vmcp.c
-@@ -13,6 +13,7 @@
- 
- #include <linux/fs.h>
- #include <linux/init.h>
-+#include <linux/compat.h>
- #include <linux/kernel.h>
- #include <linux/miscdevice.h>
- #include <linux/slab.h>
-diff --git a/drivers/s390/cio/chsc_sch.c b/drivers/s390/cio/chsc_sch.c
-index 0c87b0f..8f9a1a3 100644
---- a/drivers/s390/cio/chsc_sch.c
-+++ b/drivers/s390/cio/chsc_sch.c
-@@ -8,6 +8,7 @@
-  */
- 
- #include <linux/slab.h>
-+#include <linux/compat.h>
- #include <linux/device.h>
- #include <linux/module.h>
- #include <linux/uaccess.h>
-diff --git a/drivers/s390/scsi/zfcp_cfdc.c b/drivers/s390/scsi/zfcp_cfdc.c
-index 303dde0..fab2c25 100644
---- a/drivers/s390/scsi/zfcp_cfdc.c
-+++ b/drivers/s390/scsi/zfcp_cfdc.c
-@@ -11,6 +11,7 @@
- #define KMSG_COMPONENT "zfcp"
- #define pr_fmt(fmt) KMSG_COMPONENT ": " fmt
- 
-+#include <linux/compat.h>
- #include <linux/slab.h>
- #include <linux/types.h>
- #include <linux/miscdevice.h>
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0004-drm-i915-Prevent-a-machine-hang-by-checking-crtc-act.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0004-drm-i915-Prevent-a-machine-hang-by-checking-crtc-act.patch
deleted file mode 100644
index e80192d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0004-drm-i915-Prevent-a-machine-hang-by-checking-crtc-act.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 4bc061de33266e3ac5cecbc44b99201d8a16e533 Mon Sep 17 00:00:00 2001
-From: Alban Browaeys <prahal at yahoo.com>
-Date: Fri, 24 Feb 2012 17:12:45 +0000
-Subject: [PATCH 04/95] drm/i915: Prevent a machine hang by checking
- crtc->active before loading lut
-
-commit aed3f09db39596e539f90b11a5016aea4d8442e1 upstream.
-
-Before loading the lut (gamma), check the active state of intel_crtc,
-otherwise at least on gen2 hang ensue.
-
-This is reproducible in Xorg via:
-  xset dpms force off
-then
-  xgamma -rgamma 2.0 # freeze.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44505
-Signed-off-by: Alban Browaeys <prahal at yahoo.com>
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_display.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index daa5743..573f485 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -5965,7 +5965,7 @@ void intel_crtc_load_lut(struct drm_crtc *crtc)
- 	int i;
- 
- 	/* The clocks have to be on to load the palette. */
--	if (!crtc->enabled)
-+	if (!crtc->enabled || !intel_crtc->active)
- 		return;
- 
- 	/* use legacy palette for Ironlake */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0005-ARM-LPC32xx-serial.c-HW-bug-workaround.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0005-ARM-LPC32xx-serial.c-HW-bug-workaround.patch
deleted file mode 100644
index a97dd0b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0005-ARM-LPC32xx-serial.c-HW-bug-workaround.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From eae6d88febcc4581b90ab6072545f0835902726c Mon Sep 17 00:00:00 2001
-From: Roland Stigge <stigge at antcom.de>
-Date: Mon, 27 Feb 2012 17:28:02 +0100
-Subject: [PATCH 05/95] ARM: LPC32xx: serial.c: HW bug workaround
-
-commit 2707208ee8a80dbbd5426f5aa1a934f766825bb5 upstream.
-
-This patch fixes a HW bug by flushing RX FIFOs of the UARTs on init. It was
-ported from NXP's git.lpclinux.com tree.
-
-Signed-off-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-lpc32xx/serial.c |   18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/arch/arm/mach-lpc32xx/serial.c b/arch/arm/mach-lpc32xx/serial.c
-index 429cfdb..1a3fd4c 100644
---- a/arch/arm/mach-lpc32xx/serial.c
-+++ b/arch/arm/mach-lpc32xx/serial.c
-@@ -88,6 +88,7 @@ struct uartinit {
- 	char *uart_ck_name;
- 	u32 ck_mode_mask;
- 	void __iomem *pdiv_clk_reg;
-+	resource_size_t mapbase;
- };
- 
- static struct uartinit uartinit_data[] __initdata = {
-@@ -97,6 +98,7 @@ static struct uartinit uartinit_data[] __initdata = {
- 		.ck_mode_mask =
- 			LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 5),
- 		.pdiv_clk_reg = LPC32XX_CLKPWR_UART5_CLK_CTRL,
-+		.mapbase = LPC32XX_UART5_BASE,
- 	},
- #endif
- #ifdef CONFIG_ARCH_LPC32XX_UART3_SELECT
-@@ -105,6 +107,7 @@ static struct uartinit uartinit_data[] __initdata = {
- 		.ck_mode_mask =
- 			LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 3),
- 		.pdiv_clk_reg = LPC32XX_CLKPWR_UART3_CLK_CTRL,
-+		.mapbase = LPC32XX_UART3_BASE,
- 	},
- #endif
- #ifdef CONFIG_ARCH_LPC32XX_UART4_SELECT
-@@ -113,6 +116,7 @@ static struct uartinit uartinit_data[] __initdata = {
- 		.ck_mode_mask =
- 			LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 4),
- 		.pdiv_clk_reg = LPC32XX_CLKPWR_UART4_CLK_CTRL,
-+		.mapbase = LPC32XX_UART4_BASE,
- 	},
- #endif
- #ifdef CONFIG_ARCH_LPC32XX_UART6_SELECT
-@@ -121,6 +125,7 @@ static struct uartinit uartinit_data[] __initdata = {
- 		.ck_mode_mask =
- 			LPC32XX_UART_CLKMODE_LOAD(LPC32XX_UART_CLKMODE_ON, 6),
- 		.pdiv_clk_reg = LPC32XX_CLKPWR_UART6_CLK_CTRL,
-+		.mapbase = LPC32XX_UART6_BASE,
- 	},
- #endif
- };
-@@ -165,6 +170,19 @@ void __init lpc32xx_serial_init(void)
- 
- 		/* pre-UART clock divider set to 1 */
- 		__raw_writel(0x0101, uartinit_data[i].pdiv_clk_reg);
-+
-+		/*
-+		 * Force a flush of the RX FIFOs to work around a
-+		 * HW bug
-+		 */
-+		puart = uartinit_data[i].mapbase;
-+		__raw_writel(0xC1, LPC32XX_UART_IIR_FCR(puart));
-+		__raw_writel(0x00, LPC32XX_UART_DLL_FIFO(puart));
-+		j = LPC32XX_SUART_FIFO_SIZE;
-+		while (j--)
-+			tmp = __raw_readl(
-+				LPC32XX_UART_DLL_FIFO(puart));
-+		__raw_writel(0, LPC32XX_UART_IIR_FCR(puart));
- 	}
- 
- 	/* This needs to be done after all UART clocks are setup */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0006-ARM-LPC32xx-serial.c-Fixed-loop-limit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0006-ARM-LPC32xx-serial.c-Fixed-loop-limit.patch
deleted file mode 100644
index 2b9606b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0006-ARM-LPC32xx-serial.c-Fixed-loop-limit.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 08d76bb3139d89b31bbf05f2a4b279a739b47404 Mon Sep 17 00:00:00 2001
-From: Roland Stigge <stigge at antcom.de>
-Date: Mon, 27 Feb 2012 17:28:03 +0100
-Subject: [PATCH 06/95] ARM: LPC32xx: serial.c: Fixed loop limit
-
-commit ff424aa4c89d19082e8ae5a3351006bc8a4cd91b upstream.
-
-This patch fixes a wrong loop limit on UART init.
-
-Signed-off-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-lpc32xx/serial.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-lpc32xx/serial.c b/arch/arm/mach-lpc32xx/serial.c
-index 1a3fd4c..f273528 100644
---- a/arch/arm/mach-lpc32xx/serial.c
-+++ b/arch/arm/mach-lpc32xx/serial.c
-@@ -187,7 +187,7 @@ void __init lpc32xx_serial_init(void)
- 
- 	/* This needs to be done after all UART clocks are setup */
- 	__raw_writel(clkmodes, LPC32XX_UARTCTL_CLKMODE);
--	for (i = 0; i < ARRAY_SIZE(uartinit_data) - 1; i++) {
-+	for (i = 0; i < ARRAY_SIZE(uartinit_data); i++) {
- 		/* Force a flush of the RX FIFOs to work around a HW bug */
- 		puart = serial_std_platform_data[i].mapbase;
- 		__raw_writel(0xC1, LPC32XX_UART_IIR_FCR(puart));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0007-ARM-LPC32xx-irq.c-Clear-latched-event.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0007-ARM-LPC32xx-irq.c-Clear-latched-event.patch
deleted file mode 100644
index e38c505..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0007-ARM-LPC32xx-irq.c-Clear-latched-event.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f62c3f27bbc19f65557bbdb1572fd3179d22389a Mon Sep 17 00:00:00 2001
-From: Roland Stigge <stigge at antcom.de>
-Date: Mon, 27 Feb 2012 17:28:02 +0100
-Subject: [PATCH 07/95] ARM: LPC32xx: irq.c: Clear latched event
-
-commit 94ed7830cba4dce57b18a2926b5d826bfd184bd6 upstream.
-
-This patch fixes the wakeup disable function by clearing latched events.
-
-Signed-off-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-lpc32xx/irq.c |   11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
-index 4eae566..965b1d6 100644
---- a/arch/arm/mach-lpc32xx/irq.c
-+++ b/arch/arm/mach-lpc32xx/irq.c
-@@ -305,9 +305,18 @@ static int lpc32xx_irq_wake(struct irq_data *d, unsigned int state)
- 
- 		if (state)
- 			eventreg |= lpc32xx_events[d->irq].mask;
--		else
-+		else {
- 			eventreg &= ~lpc32xx_events[d->irq].mask;
- 
-+			/*
-+			 * When disabling the wakeup, clear the latched
-+			 * event
-+			 */
-+			__raw_writel(lpc32xx_events[d->irq].mask,
-+				lpc32xx_events[d->irq].
-+				event_group->rawstat_reg);
-+		}
-+
- 		__raw_writel(eventreg,
- 			lpc32xx_events[d->irq].event_group->enab_reg);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0008-ARM-LPC32xx-Fix-interrupt-controller-init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0008-ARM-LPC32xx-Fix-interrupt-controller-init.patch
deleted file mode 100644
index 45639cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0008-ARM-LPC32xx-Fix-interrupt-controller-init.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 2ba0d2ea76b770e0b2a69db02bd3ddc60bbfdcee Mon Sep 17 00:00:00 2001
-From: Roland Stigge <stigge at antcom.de>
-Date: Mon, 27 Feb 2012 17:28:02 +0100
-Subject: [PATCH 08/95] ARM: LPC32xx: Fix interrupt controller init
-
-commit 35dd0a75d4a382e7f769dd0277732e7aa5235718 upstream.
-
-This patch fixes the initialization of the interrupt controller of the LPC32xx
-by correctly setting up SIC1 and SIC2 instead of (wrongly) using the same value
-as for the Main Interrupt Controller (MIC).
-
-Signed-off-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-lpc32xx/irq.c |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
-index 965b1d6..198de47 100644
---- a/arch/arm/mach-lpc32xx/irq.c
-+++ b/arch/arm/mach-lpc32xx/irq.c
-@@ -389,13 +389,15 @@ void __init lpc32xx_init_irq(void)
- 
- 	/* Setup SIC1 */
- 	__raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC1_BASE));
--	__raw_writel(MIC_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC1_BASE));
--	__raw_writel(MIC_ATR_DEFAULT, LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC1_BASE));
-+	__raw_writel(SIC1_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC1_BASE));
-+	__raw_writel(SIC1_ATR_DEFAULT,
-+				LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC1_BASE));
- 
- 	/* Setup SIC2 */
- 	__raw_writel(0, LPC32XX_INTC_MASK(LPC32XX_SIC2_BASE));
--	__raw_writel(MIC_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC2_BASE));
--	__raw_writel(MIC_ATR_DEFAULT, LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC2_BASE));
-+	__raw_writel(SIC2_APR_DEFAULT, LPC32XX_INTC_POLAR(LPC32XX_SIC2_BASE));
-+	__raw_writel(SIC2_ATR_DEFAULT,
-+				LPC32XX_INTC_ACT_TYPE(LPC32XX_SIC2_BASE));
- 
- 	/* Configure supported IRQ's */
- 	for (i = 0; i < NR_IRQS; i++) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0009-ARM-LPC32xx-Fix-irq-on-GPI_28.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0009-ARM-LPC32xx-Fix-irq-on-GPI_28.patch
deleted file mode 100644
index 7e68130..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0009-ARM-LPC32xx-Fix-irq-on-GPI_28.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 8a0acecb08f9fdf2a8ddae720a7e7ce51c7d46c3 Mon Sep 17 00:00:00 2001
-From: Roland Stigge <stigge at antcom.de>
-Date: Mon, 27 Feb 2012 17:28:02 +0100
-Subject: [PATCH 09/95] ARM: LPC32xx: Fix irq on GPI_28
-
-commit f6737055c1c432a9628a9a731f9881ad8e0a9eee upstream.
-
-The GPI_28 IRQ was not registered properly. The registration of
-IRQ_LPC32XX_GPI_28 was added and the (wrong) IRQ_LPC32XX_GPI_11 at
-LPC32XX_SIC1_IRQ(4) was replaced by IRQ_LPC32XX_GPI_28 (see manual of
-LPC32xx / interrupt controller).
-
-Signed-off-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-lpc32xx/include/mach/irqs.h |    2 +-
- arch/arm/mach-lpc32xx/irq.c               |    4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-lpc32xx/include/mach/irqs.h b/arch/arm/mach-lpc32xx/include/mach/irqs.h
-index 2667f52..9e3b90d 100644
---- a/arch/arm/mach-lpc32xx/include/mach/irqs.h
-+++ b/arch/arm/mach-lpc32xx/include/mach/irqs.h
-@@ -61,7 +61,7 @@
-  */
- #define IRQ_LPC32XX_JTAG_COMM_TX	LPC32XX_SIC1_IRQ(1)
- #define IRQ_LPC32XX_JTAG_COMM_RX	LPC32XX_SIC1_IRQ(2)
--#define IRQ_LPC32XX_GPI_11		LPC32XX_SIC1_IRQ(4)
-+#define IRQ_LPC32XX_GPI_28		LPC32XX_SIC1_IRQ(4)
- #define IRQ_LPC32XX_TS_P		LPC32XX_SIC1_IRQ(6)
- #define IRQ_LPC32XX_TS_IRQ		LPC32XX_SIC1_IRQ(7)
- #define IRQ_LPC32XX_TS_AUX		LPC32XX_SIC1_IRQ(8)
-diff --git a/arch/arm/mach-lpc32xx/irq.c b/arch/arm/mach-lpc32xx/irq.c
-index 198de47..c74de01 100644
---- a/arch/arm/mach-lpc32xx/irq.c
-+++ b/arch/arm/mach-lpc32xx/irq.c
-@@ -118,6 +118,10 @@ static const struct lpc32xx_event_info lpc32xx_events[NR_IRQS] = {
- 		.event_group = &lpc32xx_event_pin_regs,
- 		.mask = LPC32XX_CLKPWR_EXTSRC_GPI_06_BIT,
- 	},
-+	[IRQ_LPC32XX_GPI_28] = {
-+		.event_group = &lpc32xx_event_pin_regs,
-+		.mask = LPC32XX_CLKPWR_EXTSRC_GPI_28_BIT,
-+	},
- 	[IRQ_LPC32XX_GPIO_00] = {
- 		.event_group = &lpc32xx_event_int_regs,
- 		.mask = LPC32XX_CLKPWR_INTSRC_GPIO_00_BIT,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0010-watchdog-hpwdt-clean-up-set_memory_x-call-for-32-bit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0010-watchdog-hpwdt-clean-up-set_memory_x-call-for-32-bit.patch
deleted file mode 100644
index 80f0a9a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0010-watchdog-hpwdt-clean-up-set_memory_x-call-for-32-bit.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From f6e694464bffbea7a0dc2168c073bd7e7f4d9684 Mon Sep 17 00:00:00 2001
-From: Maxim Uvarov <maxim.uvarov at oracle.com>
-Date: Sun, 15 Jan 2012 20:02:50 -0800
-Subject: [PATCH 10/95] watchdog: hpwdt: clean up set_memory_x call for 32 bit
-
-commit 97d2a10d5804d585ab0b58efbd710948401b886a upstream.
-
-1. address has to be page aligned.
-2. set_memory_x uses page size argument, not size.
-Bug causes with following commit:
-	commit da28179b4e90dda56912ee825c7eaa62fc103797
-	Author: Mingarelli, Thomas <Thomas.Mingarelli at hp.com>
-	Date:   Mon Nov 7 10:59:00 2011 +0100
-
-     watchdog: hpwdt: Changes to handle NX secure bit in 32bit path
-
-    commit e67d668e147c3b4fec638c9e0ace04319f5ceccd upstream.
-
-    This patch makes use of the set_memory_x() kernel API in order
-    to make necessary BIOS calls to source NMIs.
-
-Signed-off-by: Maxim Uvarov <maxim.uvarov at oracle.com>
-Signed-off-by: Wim Van Sebroeck <wim at iguana.be>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/watchdog/hpwdt.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/watchdog/hpwdt.c b/drivers/watchdog/hpwdt.c
-index 8464ea1..3c166d3 100644
---- a/drivers/watchdog/hpwdt.c
-+++ b/drivers/watchdog/hpwdt.c
-@@ -231,7 +231,7 @@ static int __devinit cru_detect(unsigned long map_entry,
- 
- 	cmn_regs.u1.reax = CRU_BIOS_SIGNATURE_VALUE;
- 
--	set_memory_x((unsigned long)bios32_entrypoint, (2 * PAGE_SIZE));
-+	set_memory_x((unsigned long)bios32_map, 2);
- 	asminline_call(&cmn_regs, bios32_entrypoint);
- 
- 	if (cmn_regs.u1.ral != 0) {
-@@ -250,7 +250,8 @@ static int __devinit cru_detect(unsigned long map_entry,
- 			cru_rom_addr =
- 				ioremap(cru_physical_address, cru_length);
- 			if (cru_rom_addr) {
--				set_memory_x((unsigned long)cru_rom_addr, cru_length);
-+				set_memory_x((unsigned long)cru_rom_addr & PAGE_MASK,
-+					(cru_length + PAGE_SIZE - 1) >> PAGE_SHIFT);
- 				retval = 0;
- 			}
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0011-i2c-mxs-only-flag-completion-when-queue-is-completel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0011-i2c-mxs-only-flag-completion-when-queue-is-completel.patch
deleted file mode 100644
index 4631965..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0011-i2c-mxs-only-flag-completion-when-queue-is-completel.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From f29a708fc403852d97151e2ce7d0332bd3dfc2d7 Mon Sep 17 00:00:00 2001
-From: Wolfram Sang <w.sang at pengutronix.de>
-Date: Fri, 13 Jan 2012 12:14:26 +0100
-Subject: [PATCH 11/95] i2c: mxs: only flag completion when queue is
- completely done
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 844990daa2e69a4258049ba9c2bae1180657dac3 upstream.
-
-The hardware generates an interrupt for every completed command in the
-queue while the code assumed that it will only generate one interrupt
-when the queue is empty. So, explicitly check if the queue is really
-empty. This patch fixed problems which occurred due to high traffic on
-the bus. While we are here, move the completion-initialization after the
-parameter error checking.
-
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Cc: Shawn Guo <shawn.guo at linaro.org>
-Cc: Marek Vasut <marek.vasut at gmail.com>
-Cc: Lothar Waßmann <LW at KARO-electronics.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/i2c/busses/i2c-mxs.c |   13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c
-index 7e78f7c..3d471d5 100644
---- a/drivers/i2c/busses/i2c-mxs.c
-+++ b/drivers/i2c/busses/i2c-mxs.c
-@@ -72,6 +72,7 @@
- 
- #define MXS_I2C_QUEUESTAT	(0x70)
- #define MXS_I2C_QUEUESTAT_RD_QUEUE_EMPTY        0x00002000
-+#define MXS_I2C_QUEUESTAT_WRITE_QUEUE_CNT_MASK	0x0000001F
- 
- #define MXS_I2C_QUEUECMD	(0x80)
- 
-@@ -219,14 +220,14 @@ static int mxs_i2c_xfer_msg(struct i2c_adapter *adap, struct i2c_msg *msg,
- 	int ret;
- 	int flags;
- 
--	init_completion(&i2c->cmd_complete);
--
- 	dev_dbg(i2c->dev, "addr: 0x%04x, len: %d, flags: 0x%x, stop: %d\n",
- 		msg->addr, msg->len, msg->flags, stop);
- 
- 	if (msg->len == 0)
- 		return -EINVAL;
- 
-+	init_completion(&i2c->cmd_complete);
-+
- 	flags = stop ? MXS_I2C_CTRL0_POST_SEND_STOP : 0;
- 
- 	if (msg->flags & I2C_M_RD)
-@@ -286,6 +287,7 @@ static irqreturn_t mxs_i2c_isr(int this_irq, void *dev_id)
- {
- 	struct mxs_i2c_dev *i2c = dev_id;
- 	u32 stat = readl(i2c->regs + MXS_I2C_CTRL1) & MXS_I2C_IRQ_MASK;
-+	bool is_last_cmd;
- 
- 	if (!stat)
- 		return IRQ_NONE;
-@@ -300,9 +302,14 @@ static irqreturn_t mxs_i2c_isr(int this_irq, void *dev_id)
- 	else
- 		i2c->cmd_err = 0;
- 
--	complete(&i2c->cmd_complete);
-+	is_last_cmd = (readl(i2c->regs + MXS_I2C_QUEUESTAT) &
-+		MXS_I2C_QUEUESTAT_WRITE_QUEUE_CNT_MASK) == 0;
-+
-+	if (is_last_cmd || i2c->cmd_err)
-+		complete(&i2c->cmd_complete);
- 
- 	writel(stat, i2c->regs + MXS_I2C_CTRL1_CLR);
-+
- 	return IRQ_HANDLED;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0012-regulator-fix-the-ldo-configure-according-to-88pm860.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0012-regulator-fix-the-ldo-configure-according-to-88pm860.patch
deleted file mode 100644
index a94f75c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0012-regulator-fix-the-ldo-configure-according-to-88pm860.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 73b51991611912eb820ad2e40d49659ccf4ea5fe Mon Sep 17 00:00:00 2001
-From: "Jett.Zhou" <jtzhou at marvell.com>
-Date: Thu, 23 Feb 2012 19:52:08 +0800
-Subject: [PATCH 12/95] regulator: fix the ldo configure according to 88pm860x
- spec
-
-commit 3380643b0eaa7ecf99c4f095bdfcb6e5df471616 upstream.
-
-Signed-off-by: Jett.Zhou <jtzhou at marvell.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/regulator/88pm8607.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/regulator/88pm8607.c b/drivers/regulator/88pm8607.c
-index ca0d608..1cead1d 100644
---- a/drivers/regulator/88pm8607.c
-+++ b/drivers/regulator/88pm8607.c
-@@ -196,7 +196,7 @@ static const unsigned int LDO12_suspend_table[] = {
- };
- 
- static const unsigned int LDO13_table[] = {
--	1300000, 1800000, 2000000, 2500000, 2800000, 3000000, 0, 0,
-+	1200000, 1300000, 1800000, 2000000, 2500000, 2800000, 3000000, 0,
- };
- 
- static const unsigned int LDO13_suspend_table[] = {
-@@ -389,10 +389,10 @@ static struct pm8607_regulator_info pm8607_regulator_info[] = {
- 	PM8607_LDO( 7,         LDO7, 0, 3, SUPPLIES_EN12, 1),
- 	PM8607_LDO( 8,         LDO8, 0, 3, SUPPLIES_EN12, 2),
- 	PM8607_LDO( 9,         LDO9, 0, 3, SUPPLIES_EN12, 3),
--	PM8607_LDO(10,        LDO10, 0, 3, SUPPLIES_EN12, 4),
-+	PM8607_LDO(10,        LDO10, 0, 4, SUPPLIES_EN12, 4),
- 	PM8607_LDO(12,        LDO12, 0, 4, SUPPLIES_EN12, 5),
- 	PM8607_LDO(13, VIBRATOR_SET, 1, 3,  VIBRATOR_SET, 0),
--	PM8607_LDO(14,        LDO14, 0, 4, SUPPLIES_EN12, 6),
-+	PM8607_LDO(14,        LDO14, 0, 3, SUPPLIES_EN12, 6),
- };
- 
- static int __devinit pm8607_regulator_probe(struct platform_device *pdev)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0013-S390-KEYS-Enable-the-compat-keyctl-wrapper-on-s390x.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0013-S390-KEYS-Enable-the-compat-keyctl-wrapper-on-s390x.patch
deleted file mode 100644
index d038e89..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0013-S390-KEYS-Enable-the-compat-keyctl-wrapper-on-s390x.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 07f3a430403e03b2f25578009e4bc69470101d74 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells at redhat.com>
-Date: Fri, 24 Feb 2012 18:01:27 +0100
-Subject: [PATCH 13/95] S390: KEYS: Enable the compat keyctl wrapper on s390x
-
-commit 1d057720609ed052a6371fe1d53300e5e6328e94 upstream.
-
-Enable the compat keyctl wrapper on s390x so that 32-bit s390 userspace can
-call the keyctl() syscall.
-
-There's an s390x assembly wrapper that truncates all the register values to
-32-bits and this then calls compat_sys_keyctl() - but the latter only exists if
-CONFIG_KEYS_COMPAT is enabled, and the s390 Kconfig doesn't enable it.
-
-Without this patch, 32-bit calls to the keyctl() syscall are given an ENOSYS
-error:
-
-	[root at devel4 ~]# keyctl show
-	Session Keyring
-	-3: key inaccessible (Function not implemented)
-
-Signed-off-by: David Howells <dhowells at redhat.com>
-Acked-by: dan at danny.cz
-Cc: Carsten Otte <cotte at de.ibm.com>
-Reviewed-by: Christian Borntraeger <borntraeger at de.ibm.com>
-Cc: linux-s390 at vger.kernel.org
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/s390/Kconfig |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
-index 373679b..f929db9 100644
---- a/arch/s390/Kconfig
-+++ b/arch/s390/Kconfig
-@@ -230,6 +230,9 @@ config COMPAT
- config SYSVIPC_COMPAT
- 	def_bool y if COMPAT && SYSVIPC
- 
-+config KEYS_COMPAT
-+	def_bool y if COMPAT && KEYS
-+
- config AUDIT_ARCH
- 	def_bool y
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0014-perf-x86-kvm-Fix-Host-Only-Guest-Only-counting-with-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0014-perf-x86-kvm-Fix-Host-Only-Guest-Only-counting-with-.patch
deleted file mode 100644
index 47d0279..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0014-perf-x86-kvm-Fix-Host-Only-Guest-Only-counting-with-.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From cdc630df410e8ee7d102f495e5f2bf628d450828 Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Wed, 29 Feb 2012 14:57:32 +0100
-Subject: [PATCH 14/95] perf/x86/kvm: Fix Host-Only/Guest-Only counting with
- SVM disabled
-
-commit 1018faa6cf23b256bf25919ef203cd7c129f06f2 upstream.
-
-It turned out that a performance counter on AMD does not
-count at all when the GO or HO bit is set in the control
-register and SVM is disabled in EFER.
-
-This patch works around this issue by masking out the HO bit
-in the performance counter control register when SVM is not
-enabled.
-
-The GO bit is not touched because it is only set when the
-user wants to count in guest-mode only. So when SVM is
-disabled the counter should not run at all and the
-not-counting is the intended behaviour.
-
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Avi Kivity <avi at redhat.com>
-Cc: Stephane Eranian <eranian at google.com>
-Cc: David Ahern <dsahern at gmail.com>
-Cc: Gleb Natapov <gleb at redhat.com>
-Cc: Robert Richter <robert.richter at amd.com>
-Link: http://lkml.kernel.org/r/1330523852-19566-1-git-send-email-joerg.roedel@amd.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/perf_event.h    |    8 ++++++++
- arch/x86/kernel/cpu/perf_event.h     |    8 ++++++--
- arch/x86/kernel/cpu/perf_event_amd.c |   37 ++++++++++++++++++++++++++++++++--
- arch/x86/kvm/svm.c                   |    5 +++++
- 4 files changed, 54 insertions(+), 4 deletions(-)
-
-diff --git a/arch/x86/include/asm/perf_event.h b/arch/x86/include/asm/perf_event.h
-index f61c62f..50d7ff2 100644
---- a/arch/x86/include/asm/perf_event.h
-+++ b/arch/x86/include/asm/perf_event.h
-@@ -212,4 +212,12 @@ static inline perf_guest_switch_msr *perf_guest_get_msrs(int *nr)
- static inline void perf_events_lapic_init(void)	{ }
- #endif
- 
-+#if defined(CONFIG_PERF_EVENTS) && defined(CONFIG_CPU_SUP_AMD)
-+ extern void amd_pmu_enable_virt(void);
-+ extern void amd_pmu_disable_virt(void);
-+#else
-+ static inline void amd_pmu_enable_virt(void) { }
-+ static inline void amd_pmu_disable_virt(void) { }
-+#endif
-+
- #endif /* _ASM_X86_PERF_EVENT_H */
-diff --git a/arch/x86/kernel/cpu/perf_event.h b/arch/x86/kernel/cpu/perf_event.h
-index b9698d4..02e0295 100644
---- a/arch/x86/kernel/cpu/perf_event.h
-+++ b/arch/x86/kernel/cpu/perf_event.h
-@@ -146,7 +146,9 @@ struct cpu_hw_events {
- 	/*
- 	 * AMD specific bits
- 	 */
--	struct amd_nb		*amd_nb;
-+	struct amd_nb			*amd_nb;
-+	/* Inverted mask of bits to clear in the perf_ctr ctrl registers */
-+	u64				perf_ctr_virt_mask;
- 
- 	void				*kfree_on_online;
- };
-@@ -372,9 +374,11 @@ void x86_pmu_disable_all(void);
- static inline void __x86_pmu_enable_event(struct hw_perf_event *hwc,
- 					  u64 enable_mask)
- {
-+	u64 disable_mask = __this_cpu_read(cpu_hw_events.perf_ctr_virt_mask);
-+
- 	if (hwc->extra_reg.reg)
- 		wrmsrl(hwc->extra_reg.reg, hwc->extra_reg.config);
--	wrmsrl(hwc->config_base, hwc->config | enable_mask);
-+	wrmsrl(hwc->config_base, (hwc->config | enable_mask) & ~disable_mask);
- }
- 
- void x86_pmu_enable_all(int added);
-diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c
-index aeefd45..f64a039 100644
---- a/arch/x86/kernel/cpu/perf_event_amd.c
-+++ b/arch/x86/kernel/cpu/perf_event_amd.c
-@@ -1,4 +1,5 @@
- #include <linux/perf_event.h>
-+#include <linux/export.h>
- #include <linux/types.h>
- #include <linux/init.h>
- #include <linux/slab.h>
-@@ -357,7 +358,9 @@ static void amd_pmu_cpu_starting(int cpu)
- 	struct amd_nb *nb;
- 	int i, nb_id;
- 
--	if (boot_cpu_data.x86_max_cores < 2)
-+	cpuc->perf_ctr_virt_mask = AMD_PERFMON_EVENTSEL_HOSTONLY;
-+
-+	if (boot_cpu_data.x86_max_cores < 2 || boot_cpu_data.x86 == 0x15)
- 		return;
- 
- 	nb_id = amd_get_nb_id(cpu);
-@@ -587,9 +590,9 @@ static __initconst const struct x86_pmu amd_pmu_f15h = {
- 	.put_event_constraints	= amd_put_event_constraints,
- 
- 	.cpu_prepare		= amd_pmu_cpu_prepare,
--	.cpu_starting		= amd_pmu_cpu_starting,
- 	.cpu_dead		= amd_pmu_cpu_dead,
- #endif
-+	.cpu_starting		= amd_pmu_cpu_starting,
- };
- 
- __init int amd_pmu_init(void)
-@@ -621,3 +624,33 @@ __init int amd_pmu_init(void)
- 
- 	return 0;
- }
-+
-+void amd_pmu_enable_virt(void)
-+{
-+	struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
-+
-+	cpuc->perf_ctr_virt_mask = 0;
-+
-+	/* Reload all events */
-+	x86_pmu_disable_all();
-+	x86_pmu_enable_all(0);
-+}
-+EXPORT_SYMBOL_GPL(amd_pmu_enable_virt);
-+
-+void amd_pmu_disable_virt(void)
-+{
-+	struct cpu_hw_events *cpuc = &__get_cpu_var(cpu_hw_events);
-+
-+	/*
-+	 * We only mask out the Host-only bit so that host-only counting works
-+	 * when SVM is disabled. If someone sets up a guest-only counter when
-+	 * SVM is disabled the Guest-only bits still gets set and the counter
-+	 * will not count anything.
-+	 */
-+	cpuc->perf_ctr_virt_mask = AMD_PERFMON_EVENTSEL_HOSTONLY;
-+
-+	/* Reload all events */
-+	x86_pmu_disable_all();
-+	x86_pmu_enable_all(0);
-+}
-+EXPORT_SYMBOL_GPL(amd_pmu_disable_virt);
-diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
-index e32243e..94a4672 100644
---- a/arch/x86/kvm/svm.c
-+++ b/arch/x86/kvm/svm.c
-@@ -29,6 +29,7 @@
- #include <linux/ftrace_event.h>
- #include <linux/slab.h>
- 
-+#include <asm/perf_event.h>
- #include <asm/tlbflush.h>
- #include <asm/desc.h>
- #include <asm/kvm_para.h>
-@@ -575,6 +576,8 @@ static void svm_hardware_disable(void *garbage)
- 		wrmsrl(MSR_AMD64_TSC_RATIO, TSC_RATIO_DEFAULT);
- 
- 	cpu_svm_disable();
-+
-+	amd_pmu_disable_virt();
- }
- 
- static int svm_hardware_enable(void *garbage)
-@@ -622,6 +625,8 @@ static int svm_hardware_enable(void *garbage)
- 
- 	svm_init_erratum_383();
- 
-+	amd_pmu_enable_virt();
-+
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0015-ALSA-hda-realtek-Fix-resume-of-multiple-input-source.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0015-ALSA-hda-realtek-Fix-resume-of-multiple-input-source.patch
deleted file mode 100644
index 3497610..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0015-ALSA-hda-realtek-Fix-resume-of-multiple-input-source.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b69e09a8ee7effdd60a09a38ae8a28c45f000f48 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Sat, 25 Feb 2012 11:13:16 +0100
-Subject: [PATCH 15/95] ALSA: hda/realtek - Fix resume of multiple input
- sources
-
-commit 068b939431486f524438330b0848a8222e33d421 upstream.
-
-When there are multiple input sources, the driver wrongly overwrites with
-the value of the last input source on other slots at resume.  Thus the
-primary input source may be shown wrongly.
-
-Reported-and-tested-by: Julian Sikorski <belegdol at gmail.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index c4c8d78..3d8fbf4 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -3695,7 +3695,7 @@ static void alc_auto_init_input_src(struct hda_codec *codec)
- 	else
- 		nums = spec->num_adc_nids;
- 	for (c = 0; c < nums; c++)
--		alc_mux_select(codec, 0, spec->cur_mux[c], true);
-+		alc_mux_select(codec, c, spec->cur_mux[c], true);
- }
- 
- /* add mic boosts if needed */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0016-ALSA-hda-Add-a-fake-mute-feature.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0016-ALSA-hda-Add-a-fake-mute-feature.patch
deleted file mode 100644
index 79be891..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0016-ALSA-hda-Add-a-fake-mute-feature.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 889d0ed385a0bbda6f59b820b95e8c8e2af73b99 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 27 Feb 2012 15:00:58 +0100
-Subject: [PATCH 16/95] ALSA: hda - Add a fake mute feature
-
-commit 3868137ea41866773e75d9ac4b9988dcc361ff1d upstream.
-
-Some codecs don't supply the mute amp-capabilities although the lowest
-volume gives the mute.  It'd be handy if the parser provides the mute
-mixers in such a case.
-
-This patch adds an extension amp-cap bit (which is used only in the
-driver) to represent the min volume = mute state.  Also modified the
-amp cache code to support the fake mute feature when this bit is set
-but the real mute bit is unset.
-
-In addition, conexant cx5051 parser uses this new feature to implement
-the missing mute controls.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42825
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/hda_codec.c      |    8 ++++++--
- sound/pci/hda/hda_codec.h      |    3 +++
- sound/pci/hda/patch_conexant.c |   22 +++++++++++++++++++++-
- 3 files changed, 30 insertions(+), 3 deletions(-)
-
-diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
-index 05c8768..f3be54e 100644
---- a/sound/pci/hda/hda_codec.c
-+++ b/sound/pci/hda/hda_codec.c
-@@ -1795,7 +1795,11 @@ static void put_vol_mute(struct hda_codec *codec, struct hda_amp_info *info,
- 	parm = ch ? AC_AMP_SET_RIGHT : AC_AMP_SET_LEFT;
- 	parm |= direction == HDA_OUTPUT ? AC_AMP_SET_OUTPUT : AC_AMP_SET_INPUT;
- 	parm |= index << AC_AMP_SET_INDEX_SHIFT;
--	parm |= val;
-+	if ((val & HDA_AMP_MUTE) && !(info->amp_caps & AC_AMPCAP_MUTE) &&
-+	    (info->amp_caps & AC_AMPCAP_MIN_MUTE))
-+		; /* set the zero value as a fake mute */
-+	else
-+		parm |= val;
- 	snd_hda_codec_write(codec, nid, 0, AC_VERB_SET_AMP_GAIN_MUTE, parm);
- 	info->vol[ch] = val;
- }
-@@ -2062,7 +2066,7 @@ int snd_hda_mixer_amp_tlv(struct snd_kcontrol *kcontrol, int op_flag,
- 	val1 = -((caps & AC_AMPCAP_OFFSET) >> AC_AMPCAP_OFFSET_SHIFT);
- 	val1 += ofs;
- 	val1 = ((int)val1) * ((int)val2);
--	if (min_mute)
-+	if (min_mute || (caps & AC_AMPCAP_MIN_MUTE))
- 		val2 |= TLV_DB_SCALE_MUTE;
- 	if (put_user(SNDRV_CTL_TLVT_DB_SCALE, _tlv))
- 		return -EFAULT;
-diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
-index 5644711..71f6744 100644
---- a/sound/pci/hda/hda_codec.h
-+++ b/sound/pci/hda/hda_codec.h
-@@ -298,6 +298,9 @@ enum {
- #define AC_AMPCAP_MUTE			(1<<31)    /* mute capable */
- #define AC_AMPCAP_MUTE_SHIFT		31
- 
-+/* driver-specific amp-caps: using bits 24-30 */
-+#define AC_AMPCAP_MIN_MUTE		(1 << 30) /* min-volume = mute */
-+
- /* Connection list */
- #define AC_CLIST_LENGTH			(0x7f<<0)
- #define AC_CLIST_LONG			(1<<7)
-diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
-index 08bad5b..ae94929 100644
---- a/sound/pci/hda/patch_conexant.c
-+++ b/sound/pci/hda/patch_conexant.c
-@@ -4132,7 +4132,8 @@ static int cx_auto_add_volume_idx(struct hda_codec *codec, const char *basename,
- 		err = snd_hda_ctl_add(codec, nid, kctl);
- 		if (err < 0)
- 			return err;
--		if (!(query_amp_caps(codec, nid, hda_dir) & AC_AMPCAP_MUTE))
-+		if (!(query_amp_caps(codec, nid, hda_dir) &
-+		      (AC_AMPCAP_MUTE | AC_AMPCAP_MIN_MUTE)))
- 			break;
- 	}
- 	return 0;
-@@ -4425,6 +4426,22 @@ static const struct snd_pci_quirk cxt_fixups[] = {
- 	{}
- };
- 
-+/* add "fake" mute amp-caps to DACs on cx5051 so that mixer mute switches
-+ * can be created (bko#42825)
-+ */
-+static void add_cx5051_fake_mutes(struct hda_codec *codec)
-+{
-+	static hda_nid_t out_nids[] = {
-+		0x10, 0x11, 0
-+	};
-+	hda_nid_t *p;
-+
-+	for (p = out_nids; *p; p++)
-+		snd_hda_override_amp_caps(codec, *p, HDA_OUTPUT,
-+					  AC_AMPCAP_MIN_MUTE |
-+					  query_amp_caps(codec, *p, HDA_OUTPUT));
-+}
-+
- static int patch_conexant_auto(struct hda_codec *codec)
- {
- 	struct conexant_spec *spec;
-@@ -4443,6 +4460,9 @@ static int patch_conexant_auto(struct hda_codec *codec)
- 	case 0x14f15045:
- 		spec->single_adc_amp = 1;
- 		break;
-+	case 0x14f15051:
-+		add_cx5051_fake_mutes(codec);
-+		break;
- 	}
- 
- 	apply_pin_fixup(codec, cxt_fixups, cxt_pincfg_tbl);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0017-ALSA-hda-Always-set-HP-pin-in-unsol-handler-for-STAC.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0017-ALSA-hda-Always-set-HP-pin-in-unsol-handler-for-STAC.patch
deleted file mode 100644
index 4a44725..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0017-ALSA-hda-Always-set-HP-pin-in-unsol-handler-for-STAC.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 29cf3a2151eda817f5da561d12614da38df8ebfa Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 29 Feb 2012 09:41:17 +0100
-Subject: [PATCH 17/95] ALSA: hda - Always set HP pin in unsol handler for
- STAC/IDT codecs
-
-commit 7bff172a352a2fbe9856bba517d71a2072aab041 upstream.
-
-A bug report with an old Sony laptop showed that we can't rely on BIOS
-setting the pins of headphones but the driver should set always by
-itself.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_sigmatel.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index ccdac27..ed67698 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -4719,7 +4719,7 @@ static void stac92xx_hp_detect(struct hda_codec *codec)
- 		unsigned int val = AC_PINCTL_OUT_EN | AC_PINCTL_HP_EN;
- 		if (no_hp_sensing(spec, i))
- 			continue;
--		if (presence)
-+		if (1 /*presence*/)
- 			stac92xx_set_pinctl(codec, cfg->hp_pins[i], val);
- #if 0 /* FIXME */
- /* Resetting the pinctl like below may lead to (a sort of) regressions
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0018-regset-Prevent-null-pointer-reference-on-readonly-re.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0018-regset-Prevent-null-pointer-reference-on-readonly-re.patch
deleted file mode 100644
index e7c0a05..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0018-regset-Prevent-null-pointer-reference-on-readonly-re.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From fd443a97228dddfa19680097bdbc8a1997ee6774 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at zytor.com>
-Date: Fri, 2 Mar 2012 10:43:48 -0800
-Subject: [PATCH 18/95] regset: Prevent null pointer reference on readonly
- regsets
-
-commit c8e252586f8d5de906385d8cf6385fee289a825e upstream.
-
-The regset common infrastructure assumed that regsets would always
-have .get and .set methods, but not necessarily .active methods.
-Unfortunately people have since written regsets without .set methods.
-
-Rather than putting in stub functions everywhere, handle regsets with
-null .get or .set methods explicitly.
-
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Reviewed-by: Oleg Nesterov <oleg at redhat.com>
-Acked-by: Roland McGrath <roland at hack.frob.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/binfmt_elf.c        |    2 +-
- include/linux/regset.h |    6 ++++++
- 2 files changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/fs/binfmt_elf.c b/fs/binfmt_elf.c
-index 21ac5ee..6ff96c6 100644
---- a/fs/binfmt_elf.c
-+++ b/fs/binfmt_elf.c
-@@ -1421,7 +1421,7 @@ static int fill_thread_core_info(struct elf_thread_core_info *t,
- 	for (i = 1; i < view->n; ++i) {
- 		const struct user_regset *regset = &view->regsets[i];
- 		do_thread_regset_writeback(t->task, regset);
--		if (regset->core_note_type &&
-+		if (regset->core_note_type && regset->get &&
- 		    (!regset->active || regset->active(t->task, regset))) {
- 			int ret;
- 			size_t size = regset->n * regset->size;
-diff --git a/include/linux/regset.h b/include/linux/regset.h
-index 8abee65..5150fd1 100644
---- a/include/linux/regset.h
-+++ b/include/linux/regset.h
-@@ -335,6 +335,9 @@ static inline int copy_regset_to_user(struct task_struct *target,
- {
- 	const struct user_regset *regset = &view->regsets[setno];
- 
-+	if (!regset->get)
-+		return -EOPNOTSUPP;
-+
- 	if (!access_ok(VERIFY_WRITE, data, size))
- 		return -EIO;
- 
-@@ -358,6 +361,9 @@ static inline int copy_regset_from_user(struct task_struct *target,
- {
- 	const struct user_regset *regset = &view->regsets[setno];
- 
-+	if (!regset->set)
-+		return -EOPNOTSUPP;
-+
- 	if (!access_ok(VERIFY_READ, data, size))
- 		return -EIO;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0019-regset-Return-EFAULT-not-EIO-on-host-side-memory-fau.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0019-regset-Return-EFAULT-not-EIO-on-host-side-memory-fau.patch
deleted file mode 100644
index fc7da25..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0019-regset-Return-EFAULT-not-EIO-on-host-side-memory-fau.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d14a04319db794d5cb918747293a54d6d212cf00 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at zytor.com>
-Date: Fri, 2 Mar 2012 10:43:49 -0800
-Subject: [PATCH 19/95] regset: Return -EFAULT, not -EIO, on host-side memory
- fault
-
-commit 5189fa19a4b2b4c3bec37c3a019d446148827717 upstream.
-
-There is only one error code to return for a bad user-space buffer
-pointer passed to a system call in the same address space as the
-system call is executed, and that is EFAULT.  Furthermore, the
-low-level access routines, which catch most of the faults, return
-EFAULT already.
-
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Reviewed-by: Oleg Nesterov <oleg at redhat.com>
-Acked-by: Roland McGrath <roland at hack.frob.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/regset.h |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/include/linux/regset.h b/include/linux/regset.h
-index 5150fd1..686f373 100644
---- a/include/linux/regset.h
-+++ b/include/linux/regset.h
-@@ -339,7 +339,7 @@ static inline int copy_regset_to_user(struct task_struct *target,
- 		return -EOPNOTSUPP;
- 
- 	if (!access_ok(VERIFY_WRITE, data, size))
--		return -EIO;
-+		return -EFAULT;
- 
- 	return regset->get(target, regset, offset, size, NULL, data);
- }
-@@ -365,7 +365,7 @@ static inline int copy_regset_from_user(struct task_struct *target,
- 		return -EOPNOTSUPP;
- 
- 	if (!access_ok(VERIFY_READ, data, size))
--		return -EIO;
-+		return -EFAULT;
- 
- 	return regset->set(target, regset, offset, size, NULL, data);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0020-mfd-Fix-ACPI-conflict-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0020-mfd-Fix-ACPI-conflict-check.patch
deleted file mode 100644
index f6ad873..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0020-mfd-Fix-ACPI-conflict-check.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 5ce240f2b5a8d96af3e2a2b4ea5868eab16f8c3d Mon Sep 17 00:00:00 2001
-From: Jean Delvare <khali at linux-fr.org>
-Date: Sat, 18 Feb 2012 17:54:23 +0100
-Subject: [PATCH 20/95] mfd: Fix ACPI conflict check
-
-commit 81b5482c32769abb6dfb979560dab2f952ba86fa upstream.
-
-The code is currently always checking the first resource of every
-device only (several times.) This has been broken since the ACPI check
-was added in February 2010 in commit
-91fedede0338eb6203cdd618d8ece873fdb7c22c.
-
-Fix the check to run on each resource individually, once.
-
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mfd/mfd-core.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c
-index 0f59228..411f523 100644
---- a/drivers/mfd/mfd-core.c
-+++ b/drivers/mfd/mfd-core.c
-@@ -123,7 +123,7 @@ static int mfd_add_device(struct device *parent, int id,
- 		}
- 
- 		if (!cell->ignore_resource_conflicts) {
--			ret = acpi_check_resource_conflict(res);
-+			ret = acpi_check_resource_conflict(&res[r]);
- 			if (ret)
- 				goto fail_res;
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0021-mfd-Test-for-jack-detection-when-deciding-if-wm8994-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0021-mfd-Test-for-jack-detection-when-deciding-if-wm8994-.patch
deleted file mode 100644
index 8df4453..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0021-mfd-Test-for-jack-detection-when-deciding-if-wm8994-.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 9abde3392eefd90e7c58cfb9c1bd29ac2a145b2d Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Mon, 20 Feb 2012 21:32:32 +0000
-Subject: [PATCH 21/95] mfd: Test for jack detection when deciding if wm8994
- should suspend
-
-commit e7c248a049c2aac21bded0b0722caee6f0e57256 upstream.
-
-The jack detection on WM1811 is often required during system suspend, add
-it as another check when deciding if we should suspend.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mfd/wm8994-core.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
-index 61894fc..9302d21 100644
---- a/drivers/mfd/wm8994-core.c
-+++ b/drivers/mfd/wm8994-core.c
-@@ -252,6 +252,20 @@ static int wm8994_suspend(struct device *dev)
- 		break;
- 	}
- 
-+	switch (wm8994->type) {
-+	case WM1811:
-+		ret = wm8994_reg_read(wm8994, WM8994_ANTIPOP_2);
-+		if (ret < 0) {
-+			dev_err(dev, "Failed to read jackdet: %d\n", ret);
-+		} else if (ret & WM1811_JACKDET_MODE_MASK) {
-+			dev_dbg(dev, "CODEC still active, ignoring suspend\n");
-+			return 0;
-+		}
-+		break;
-+	default:
-+		break;
-+	}
-+
- 	/* Disable LDO pulldowns while the device is suspended if we
- 	 * don't know that something will be driving them. */
- 	if (!wm8994->ldo_ena_always_driven)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0022-genirq-Clear-action-thread_mask-if-IRQ_ONESHOT-is-no.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0022-genirq-Clear-action-thread_mask-if-IRQ_ONESHOT-is-no.patch
deleted file mode 100644
index e1e9e3d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0022-genirq-Clear-action-thread_mask-if-IRQ_ONESHOT-is-no.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 81924cb9ad2be5172d94d8ec1bf687a451f4227a Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Tue, 6 Mar 2012 23:18:54 +0100
-Subject: [PATCH 22/95] genirq: Clear action->thread_mask if IRQ_ONESHOT is
- not set
-
-commit 52abb700e16a9aa4cbc03f3d7f80206cbbc80680 upstream.
-
-Xommit ac5637611(genirq: Unmask oneshot irqs when thread was not woken)
-fails to unmask when a !IRQ_ONESHOT threaded handler is handled by
-handle_level_irq.
-
-This happens because thread_mask is or'ed unconditionally in
-irq_wake_thread(), but for !IRQ_ONESHOT interrupts never cleared.  So
-the check for !desc->thread_active fails and keeps the interrupt
-disabled.
-
-Keep the thread_mask zero for !IRQ_ONESHOT interrupts.
-
-Document the thread_mask magic while at it.
-
-Reported-and-tested-by: Sven Joachim <svenjoac at gmx.de>
-Reported-and-tested-by: Stefan Lippers-Hollmann <s.l-h at gmx.de>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/irq/manage.c |   44 ++++++++++++++++++++++++++++++++++++++------
- 1 file changed, 38 insertions(+), 6 deletions(-)
-
-diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index cf2d7ae..ae95cd2 100644
---- a/kernel/irq/manage.c
-+++ b/kernel/irq/manage.c
-@@ -985,6 +985,11 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
- 
- 		/* add new interrupt at end of irq queue */
- 		do {
-+			/*
-+			 * Or all existing action->thread_mask bits,
-+			 * so we can find the next zero bit for this
-+			 * new action.
-+			 */
- 			thread_mask |= old->thread_mask;
- 			old_ptr = &old->next;
- 			old = *old_ptr;
-@@ -993,14 +998,41 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
- 	}
- 
- 	/*
--	 * Setup the thread mask for this irqaction. Unlikely to have
--	 * 32 resp 64 irqs sharing one line, but who knows.
-+	 * Setup the thread mask for this irqaction for ONESHOT. For
-+	 * !ONESHOT irqs the thread mask is 0 so we can avoid a
-+	 * conditional in irq_wake_thread().
- 	 */
--	if (new->flags & IRQF_ONESHOT && thread_mask == ~0UL) {
--		ret = -EBUSY;
--		goto out_mask;
-+	if (new->flags & IRQF_ONESHOT) {
-+		/*
-+		 * Unlikely to have 32 resp 64 irqs sharing one line,
-+		 * but who knows.
-+		 */
-+		if (thread_mask == ~0UL) {
-+			ret = -EBUSY;
-+			goto out_mask;
-+		}
-+		/*
-+		 * The thread_mask for the action is or'ed to
-+		 * desc->thread_active to indicate that the
-+		 * IRQF_ONESHOT thread handler has been woken, but not
-+		 * yet finished. The bit is cleared when a thread
-+		 * completes. When all threads of a shared interrupt
-+		 * line have completed desc->threads_active becomes
-+		 * zero and the interrupt line is unmasked. See
-+		 * handle.c:irq_wake_thread() for further information.
-+		 *
-+		 * If no thread is woken by primary (hard irq context)
-+		 * interrupt handlers, then desc->threads_active is
-+		 * also checked for zero to unmask the irq line in the
-+		 * affected hard irq flow handlers
-+		 * (handle_[fasteoi|level]_irq).
-+		 *
-+		 * The new action gets the first zero bit of
-+		 * thread_mask assigned. See the loop above which or's
-+		 * all existing action->thread_mask bits.
-+		 */
-+		new->thread_mask = 1 << ffz(thread_mask);
- 	}
--	new->thread_mask = 1 << ffz(thread_mask);
- 
- 	if (!shared) {
- 		init_waitqueue_head(&desc->wait_for_threads);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0023-ARM-S3C24XX-DMA-resume-regression-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0023-ARM-S3C24XX-DMA-resume-regression-fix.patch
deleted file mode 100644
index c4ae207..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0023-ARM-S3C24XX-DMA-resume-regression-fix.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 22f75673eb447eb62c1890393fe82728d86aad06 Mon Sep 17 00:00:00 2001
-From: Gusakov Andrey <dron0gus at gmail.com>
-Date: Sat, 3 Mar 2012 07:32:36 +0900
-Subject: [PATCH 23/95] ARM: S3C24XX: DMA resume regression fix
-
-commit e39d40c65dfd8390b50c03482ae9e289b8a8f351 upstream.
-
-s3c2410_dma_suspend suspends channels from 0 to dma_channels.
-s3c2410_dma_resume resumes channels in reverse order. So
-pointer should be decremented instead of being incremented.
-
-Signed-off-by: Gusakov Andrey <dron0gus at gmail.com>
-Reviewed-by: Heiko Stuebner <heiko at sntech.de>
-Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/plat-s3c24xx/dma.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/plat-s3c24xx/dma.c b/arch/arm/plat-s3c24xx/dma.c
-index 53754bc..8a90b6a 100644
---- a/arch/arm/plat-s3c24xx/dma.c
-+++ b/arch/arm/plat-s3c24xx/dma.c
-@@ -1249,7 +1249,7 @@ static void s3c2410_dma_resume(void)
- 	struct s3c2410_dma_chan *cp = s3c2410_chans + dma_channels - 1;
- 	int channel;
- 
--	for (channel = dma_channels - 1; channel >= 0; cp++, channel--)
-+	for (channel = dma_channels - 1; channel >= 0; cp--, channel--)
- 		s3c2410_dma_resume_chan(cp);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0024-Move-Logitech-Harmony-900-from-cdc_ether-to-zaurus.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0024-Move-Logitech-Harmony-900-from-cdc_ether-to-zaurus.patch
deleted file mode 100644
index 9879b89..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0024-Move-Logitech-Harmony-900-from-cdc_ether-to-zaurus.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From c599ccd68990c0e3bacb98cf58815f9063a8792d Mon Sep 17 00:00:00 2001
-From: Scott Talbert <talbert at techie.net>
-Date: Tue, 21 Feb 2012 13:06:00 +0000
-Subject: [PATCH 24/95] Move Logitech Harmony 900 from cdc_ether to zaurus
-
-commit ee932bf9acb2e2c6a309e808000f24856330e3f9 upstream.
-
-In the current kernel implementation, the Logitech Harmony 900 remote
-control is matched to the cdc_ether driver through the generic
-USB_CDC_SUBCLASS_MDLM entry.  However, this device appears to be of the
-pseudo-MDLM (Belcarra) type, rather than the standard one.  This patch
-blacklists the Harmony 900 from the cdc_ether driver and whitelists it for
-the pseudo-MDLM driver in zaurus.
-
-Signed-off-by: Scott Talbert <talbert at techie.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/cdc_ether.c |    7 +++++++
- drivers/net/usb/zaurus.c    |    7 +++++++
- 2 files changed, 14 insertions(+)
-
-diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
-index 99ed6eb..4fd4144 100644
---- a/drivers/net/usb/cdc_ether.c
-+++ b/drivers/net/usb/cdc_ether.c
-@@ -570,6 +570,13 @@ static const struct usb_device_id	products [] = {
- 	.driver_info = 0,
- },
- 
-+/* Logitech Harmony 900 - uses the pseudo-MDLM (BLAN) driver */
-+{
-+	USB_DEVICE_AND_INTERFACE_INFO(0x046d, 0xc11f, USB_CLASS_COMM,
-+			USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE),
-+	.driver_info		= 0,
-+},
-+
- /*
-  * WHITELIST!!!
-  *
-diff --git a/drivers/net/usb/zaurus.c b/drivers/net/usb/zaurus.c
-index 1a2234c..246b3bb 100644
---- a/drivers/net/usb/zaurus.c
-+++ b/drivers/net/usb/zaurus.c
-@@ -349,6 +349,13 @@ static const struct usb_device_id	products [] = {
- 	ZAURUS_MASTER_INTERFACE,
- 	.driver_info = OLYMPUS_MXL_INFO,
- },
-+
-+/* Logitech Harmony 900 - uses the pseudo-MDLM (BLAN) driver */
-+{
-+	USB_DEVICE_AND_INTERFACE_INFO(0x046d, 0xc11f, USB_CLASS_COMM,
-+			USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE),
-+	.driver_info = (unsigned long) &bogus_mdlm_info,
-+},
- 	{ },		// END
- };
- MODULE_DEVICE_TABLE(usb, products);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0025-alpha-fix-32-64-bit-bug-in-futex-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0025-alpha-fix-32-64-bit-bug-in-futex-support.patch
deleted file mode 100644
index 8b10b05..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0025-alpha-fix-32-64-bit-bug-in-futex-support.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 516cac7f3fdceed580abef7769d3af3150515498 Mon Sep 17 00:00:00 2001
-From: Andrew Morton <akpm at linux-foundation.org>
-Date: Mon, 5 Mar 2012 14:59:19 -0800
-Subject: [PATCH 25/95] alpha: fix 32/64-bit bug in futex support
-
-commit 62aca403657fe30e5235c5331e9871e676d9ea0a upstream.
-
-Michael Cree said:
-
-: : I have noticed some user space problems (pulseaudio crashes in pthread
-: : code, glibc/nptl test suite failures, java compiler freezes on SMP alpha
-: : systems) that arise when using a 2.6.39 or later kernel on Alpha.
-: : Bisecting between 2.6.38 and 2.6.39 (using glibc/nptl test suite as
-: : criterion for good/bad kernel) eventually leads to:
-: :
-: : 8d7718aa082aaf30a0b4989e1f04858952f941bc is the first bad commit
-: : commit 8d7718aa082aaf30a0b4989e1f04858952f941bc
-: : Author: Michel Lespinasse <walken at google.com>
-: : Date:   Thu Mar 10 18:50:58 2011 -0800
-: :
-: :     futex: Sanitize futex ops argument types
-: :
-: :     Change futex_atomic_op_inuser and futex_atomic_cmpxchg_inatomic
-: :     prototypes to use u32 types for the futex as this is the data type the
-: :     futex core code uses all over the place.
-: :
-: : Looking at the commit I see there is a change of the uaddr argument in
-: : the Alpha architecture specific code for futexes from int to u32, but I
-: : don't see why this should cause a problem.
-
-Richard Henderson said:
-
-: futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
-:                               u32 oldval, u32 newval)
-: ...
-:         :       "r"(uaddr), "r"((long)oldval), "r"(newval)
-:
-:
-: There is no 32-bit compare instruction.  These are implemented by
-: consistently extending the values to a 64-bit type.  Since the
-: load instruction sign-extends, we want to sign-extend the other
-: quantity as well (despite the fact it's logically unsigned).
-:
-: So:
-:
-: -        :       "r"(uaddr), "r"((long)oldval), "r"(newval)
-: +        :       "r"(uaddr), "r"((long)(int)oldval), "r"(newval)
-:
-: should do the trick.
-
-Michael said:
-
-: This fixes the glibc test suite failures and the pulseaudio related
-: crashes, but it does not fix the java compiiler lockups that I was (and
-: are still) observing.  That is some other problem.
-
-Reported-by: Michael Cree <mcree at orcon.net.nz>
-Tested-by: Michael Cree <mcree at orcon.net.nz>
-Acked-by: Phil Carmody <ext-phil.2.carmody at nokia.com>
-Cc: Richard Henderson <rth at twiddle.net>
-Cc: Michel Lespinasse <walken at google.com>
-Cc: Ivan Kokshaysky <ink at jurassic.park.msu.ru>
-Reviewed-by: Matt Turner <mattst88 at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/alpha/include/asm/futex.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/alpha/include/asm/futex.h b/arch/alpha/include/asm/futex.h
-index e8a761a..f939794 100644
---- a/arch/alpha/include/asm/futex.h
-+++ b/arch/alpha/include/asm/futex.h
-@@ -108,7 +108,7 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
- 	"	lda	$31,3b-2b(%0)\n"
- 	"	.previous\n"
- 	:	"+r"(ret), "=&r"(prev), "=&r"(cmp)
--	:	"r"(uaddr), "r"((long)oldval), "r"(newval)
-+	:	"r"(uaddr), "r"((long)(int)oldval), "r"(newval)
- 	:	"memory");
- 
- 	*uval = prev;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0026-mmc-atmel-mci-don-t-use-dma-features-when-using-DMA-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0026-mmc-atmel-mci-don-t-use-dma-features-when-using-DMA-.patch
deleted file mode 100644
index e230891..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0026-mmc-atmel-mci-don-t-use-dma-features-when-using-DMA-.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 949f9646ccebddaf84ef0a76bf65cbb03d98ca90 Mon Sep 17 00:00:00 2001
-From: Ludovic Desroches <ludovic.desroches at atmel.com>
-Date: Thu, 9 Feb 2012 16:33:53 +0100
-Subject: [PATCH 26/95] mmc: atmel-mci: don't use dma features when using DMA
- with no chan available
-
-commit ef8781989a1bcd05aa47e853917c37df44917194 upstream.
-
-Some callbacks are set too early -- i.e. we can have dma capabilities but
-we can't get a dma channel. So wait to get the dma channel before setting
-callbacks and change logs consequently.
-
-Signed-off-by: Ludovic Desroches <ludovic.desroches at atmel.com>
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/host/atmel-mci.c |   21 ++++++++++-----------
- 1 file changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 72bc756..9896933 100644
---- a/drivers/mmc/host/atmel-mci.c
-+++ b/drivers/mmc/host/atmel-mci.c
-@@ -1944,12 +1944,12 @@ static bool atmci_filter(struct dma_chan *chan, void *slave)
- 	}
- }
- 
--static void atmci_configure_dma(struct atmel_mci *host)
-+static bool atmci_configure_dma(struct atmel_mci *host)
- {
- 	struct mci_platform_data	*pdata;
- 
- 	if (host == NULL)
--		return;
-+		return false;
- 
- 	pdata = host->pdev->dev.platform_data;
- 
-@@ -1966,12 +1966,15 @@ static void atmci_configure_dma(struct atmel_mci *host)
- 		host->dma.chan =
- 			dma_request_channel(mask, atmci_filter, pdata->dma_slave);
- 	}
--	if (!host->dma.chan)
--		dev_notice(&host->pdev->dev, "DMA not available, using PIO\n");
--	else
-+	if (!host->dma.chan) {
-+		dev_warn(&host->pdev->dev, "no DMA channel available\n");
-+		return false;
-+	} else {
- 		dev_info(&host->pdev->dev,
- 					"Using %s for DMA transfers\n",
- 					dma_chan_name(host->dma.chan));
-+		return true;
-+	}
- }
- 
- static inline unsigned int atmci_get_version(struct atmel_mci *host)
-@@ -2081,8 +2084,7 @@ static int __init atmci_probe(struct platform_device *pdev)
- 
- 	/* Get MCI capabilities and set operations according to it */
- 	atmci_get_cap(host);
--	if (host->caps.has_dma) {
--		dev_info(&pdev->dev, "using DMA\n");
-+	if (host->caps.has_dma && atmci_configure_dma(host)) {
- 		host->prepare_data = &atmci_prepare_data_dma;
- 		host->submit_data = &atmci_submit_data_dma;
- 		host->stop_transfer = &atmci_stop_transfer_dma;
-@@ -2092,15 +2094,12 @@ static int __init atmci_probe(struct platform_device *pdev)
- 		host->submit_data = &atmci_submit_data_pdc;
- 		host->stop_transfer = &atmci_stop_transfer_pdc;
- 	} else {
--		dev_info(&pdev->dev, "no DMA, no PDC\n");
-+		dev_info(&pdev->dev, "using PIO\n");
- 		host->prepare_data = &atmci_prepare_data;
- 		host->submit_data = &atmci_submit_data;
- 		host->stop_transfer = &atmci_stop_transfer;
- 	}
- 
--	if (host->caps.has_dma)
--		atmci_configure_dma(host);
--
- 	platform_set_drvdata(pdev, host);
- 
- 	/* We need at least one slot to succeed */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0027-mmc-sdhci-esdhc-imx-fix-for-mmc-cards-on-i.MX5.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0027-mmc-sdhci-esdhc-imx-fix-for-mmc-cards-on-i.MX5.patch
deleted file mode 100644
index fd6c088..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0027-mmc-sdhci-esdhc-imx-fix-for-mmc-cards-on-i.MX5.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 4d0452d42bca9bc288709268ea3590e73dddfd03 Mon Sep 17 00:00:00 2001
-From: Sascha Hauer <s.hauer at pengutronix.de>
-Date: Fri, 17 Feb 2012 11:51:49 +0100
-Subject: [PATCH 27/95] mmc: sdhci-esdhc-imx: fix for mmc cards on i.MX5
-
-commit 5b6b0ad6e572b32a641116aaa5f897ffebe31e44 upstream.
-
-On i.MX53 we have to write a special SDHCI_CMD_ABORTCMD to the
-SDHCI_TRANSFER_MODE register during a MMC_STOP_TRANSMISSION
-command. This works for SD cards. However, with MMC cards
-the MMC_SET_BLOCK_COUNT command is used instead, but this
-needs the same handling. Fix MMC cards by testing for the
-MMC_SET_BLOCK_COUNT command aswell. Tested on a custom i.MX53
-board with a Transcend MMC+ card and eMMC.
-
-The kernel started used MMC_SET_BLOCK_COUNT in 3.0, so this
-is a regression for these boards introduced in 3.0; it should
-go to 3.0/3.1/3.2-stable.
-
-Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
-Acked-by: Shawn Guo <shawn.guo at linaro.org>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/host/sdhci-esdhc-imx.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
-index 38ebc4e..4540e37 100644
---- a/drivers/mmc/host/sdhci-esdhc-imx.c
-+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
-@@ -269,8 +269,9 @@ static void esdhc_writew_le(struct sdhci_host *host, u16 val, int reg)
- 		imx_data->scratchpad = val;
- 		return;
- 	case SDHCI_COMMAND:
--		if ((host->cmd->opcode == MMC_STOP_TRANSMISSION)
--			&& (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT))
-+		if ((host->cmd->opcode == MMC_STOP_TRANSMISSION ||
-+		     host->cmd->opcode == MMC_SET_BLOCK_COUNT) &&
-+	            (imx_data->flags & ESDHC_FLAG_MULTIBLK_NO_INT))
- 			val |= SDHCI_CMD_ABORTCMD;
- 
- 		if (is_imx6q_usdhc(imx_data)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0028-aio-wake-up-waiters-when-freeing-unused-kiocbs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0028-aio-wake-up-waiters-when-freeing-unused-kiocbs.patch
deleted file mode 100644
index 70c27f0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0028-aio-wake-up-waiters-when-freeing-unused-kiocbs.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From d5c6cec6d347a96bc73bf84d89dd1cefd9b10aeb Mon Sep 17 00:00:00 2001
-From: Jeff Moyer <jmoyer at redhat.com>
-Date: Mon, 5 Mar 2012 14:59:12 -0800
-Subject: [PATCH 28/95] aio: wake up waiters when freeing unused kiocbs
-
-commit 880641bb9da2473e9ecf6c708d993b29928c1b3c upstream.
-
-Bart Van Assche reported a hung fio process when either hot-removing
-storage or when interrupting the fio process itself.  The (pruned) call
-trace for the latter looks like so:
-
-  fio             D 0000000000000001     0  6849   6848 0x00000004
-   ffff880092541b88 0000000000000046 ffff880000000000 ffff88012fa11dc0
-   ffff88012404be70 ffff880092541fd8 ffff880092541fd8 ffff880092541fd8
-   ffff880128b894d0 ffff88012404be70 ffff880092541b88 000000018106f24d
-  Call Trace:
-    schedule+0x3f/0x60
-    io_schedule+0x8f/0xd0
-    wait_for_all_aios+0xc0/0x100
-    exit_aio+0x55/0xc0
-    mmput+0x2d/0x110
-    exit_mm+0x10d/0x130
-    do_exit+0x671/0x860
-    do_group_exit+0x44/0xb0
-    get_signal_to_deliver+0x218/0x5a0
-    do_signal+0x65/0x700
-    do_notify_resume+0x65/0x80
-    int_signal+0x12/0x17
-
-The problem lies with the allocation batching code.  It will
-opportunistically allocate kiocbs, and then trim back the list of iocbs
-when there is not enough room in the completion ring to hold all of the
-events.
-
-In the case above, what happens is that the pruning back of events ends
-up freeing up the last active request and the context is marked as dead,
-so it is thus responsible for waking up waiters.  Unfortunately, the
-code does not check for this condition, so we end up with a hung task.
-
-Signed-off-by: Jeff Moyer <jmoyer at redhat.com>
-Reported-by: Bart Van Assche <bvanassche at acm.org>
-Tested-by: Bart Van Assche <bvanassche at acm.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/aio.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/aio.c b/fs/aio.c
-index 969beb0..67e4b90 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -490,6 +490,8 @@ static void kiocb_batch_free(struct kioctx *ctx, struct kiocb_batch *batch)
- 		kmem_cache_free(kiocb_cachep, req);
- 		ctx->reqs_active--;
- 	}
-+	if (unlikely(!ctx->reqs_active && ctx->dead))
-+		wake_up_all(&ctx->wait);
- 	spin_unlock_irq(&ctx->ctx_lock);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0029-mm-memcg-Correct-unregistring-of-events-attached-to-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0029-mm-memcg-Correct-unregistring-of-events-attached-to-.patch
deleted file mode 100644
index 546921b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0029-mm-memcg-Correct-unregistring-of-events-attached-to-.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From a6ad4d12c974035e005e6e4752c462c0f44f4167 Mon Sep 17 00:00:00 2001
-From: Anton Vorontsov <anton.vorontsov at linaro.org>
-Date: Fri, 24 Feb 2012 05:14:46 +0400
-Subject: [PATCH 29/95] mm: memcg: Correct unregistring of events attached to
- the same eventfd
-
-commit 371528caec553785c37f73fa3926ea0de84f986f upstream.
-
-There is an issue when memcg unregisters events that were attached to
-the same eventfd:
-
-- On the first call mem_cgroup_usage_unregister_event() removes all
-  events attached to a given eventfd, and if there were no events left,
-  thresholds->primary would become NULL;
-
-- Since there were several events registered, cgroups core will call
-  mem_cgroup_usage_unregister_event() again, but now kernel will oops,
-  as the function doesn't expect that threshold->primary may be NULL.
-
-That's a good question whether mem_cgroup_usage_unregister_event()
-should actually remove all events in one go, but nowadays it can't
-do any better as cftype->unregister_event callback doesn't pass
-any private event-associated cookie. So, let's fix the issue by
-simply checking for threshold->primary.
-
-FWIW, w/o the patch the following oops may be observed:
-
- BUG: unable to handle kernel NULL pointer dereference at 0000000000000004
- IP: [<ffffffff810be32c>] mem_cgroup_usage_unregister_event+0x9c/0x1f0
- Pid: 574, comm: kworker/0:2 Not tainted 3.3.0-rc4+ #9 Bochs Bochs
- RIP: 0010:[<ffffffff810be32c>]  [<ffffffff810be32c>] mem_cgroup_usage_unregister_event+0x9c/0x1f0
- RSP: 0018:ffff88001d0b9d60  EFLAGS: 00010246
- Process kworker/0:2 (pid: 574, threadinfo ffff88001d0b8000, task ffff88001de91cc0)
- Call Trace:
-  [<ffffffff8107092b>] cgroup_event_remove+0x2b/0x60
-  [<ffffffff8103db94>] process_one_work+0x174/0x450
-  [<ffffffff8103e413>] worker_thread+0x123/0x2d0
-
-Signed-off-by: Anton Vorontsov <anton.vorontsov at linaro.org>
-Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Kirill A. Shutemov <kirill at shutemov.name>
-Cc: Michal Hocko <mhocko at suse.cz>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/memcontrol.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index f538e9b..de67e91 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -4502,6 +4502,9 @@ static void mem_cgroup_usage_unregister_event(struct cgroup *cgrp,
- 	 */
- 	BUG_ON(!thresholds);
- 
-+	if (!thresholds->primary)
-+		goto unlock;
-+
- 	usage = mem_cgroup_usage(memcg, type == _MEMSWAP);
- 
- 	/* Check if a threshold crossed before removing */
-@@ -4550,7 +4553,7 @@ swap_buffers:
- 
- 	/* To be sure that nobody uses thresholds */
- 	synchronize_rcu();
--
-+unlock:
- 	mutex_unlock(&memcg->thresholds_lock);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0030-NOMMU-Don-t-need-to-clear-vm_mm-when-deleting-a-VMA.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0030-NOMMU-Don-t-need-to-clear-vm_mm-when-deleting-a-VMA.patch
deleted file mode 100644
index e098a87..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0030-NOMMU-Don-t-need-to-clear-vm_mm-when-deleting-a-VMA.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 4666c2d05388b33883bef7aa13d2e355b3d0a049 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells at redhat.com>
-Date: Thu, 23 Feb 2012 13:51:00 +0000
-Subject: [PATCH 30/95] NOMMU: Don't need to clear vm_mm when deleting a VMA
-
-commit b94cfaf6685d691dc3fab023cf32f65e9b7be09c upstream.
-
-Don't clear vm_mm in a deleted VMA as it's unnecessary and might
-conceivably break the filesystem or driver VMA close routine.
-
-Reported-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: David Howells <dhowells at redhat.com>
-Acked-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/nommu.c |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/mm/nommu.c b/mm/nommu.c
-index ee7e57e..f59e170 100644
---- a/mm/nommu.c
-+++ b/mm/nommu.c
-@@ -779,8 +779,6 @@ static void delete_vma_from_mm(struct vm_area_struct *vma)
- 
- 	if (vma->vm_next)
- 		vma->vm_next->vm_prev = vma->vm_prev;
--
--	vma->vm_mm = NULL;
- }
- 
- /*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0031-cifs-fix-dentry-refcount-leak-when-opening-a-FIFO-on.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0031-cifs-fix-dentry-refcount-leak-when-opening-a-FIFO-on.patch
deleted file mode 100644
index f84f673..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0031-cifs-fix-dentry-refcount-leak-when-opening-a-FIFO-on.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 2e91a5d7bf034e302d797ab8be9a28dad94f31bf Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Thu, 23 Feb 2012 09:37:45 -0500
-Subject: [PATCH 31/95] cifs: fix dentry refcount leak when opening a FIFO on
- lookup
-
-commit 5bccda0ebc7c0331b81ac47d39e4b920b198b2cd upstream.
-
-The cifs code will attempt to open files on lookup under certain
-circumstances. What happens though if we find that the file we opened
-was actually a FIFO or other special file?
-
-Currently, the open filehandle just ends up being leaked leading to
-a dentry refcount mismatch and oops on umount. Fix this by having the
-code close the filehandle on the server if it turns out not to be a
-regular file. While we're at it, change this spaghetti if statement
-into a switch too.
-
-Reported-by: CAI Qian <caiqian at redhat.com>
-Tested-by: CAI Qian <caiqian at redhat.com>
-Reviewed-by: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/dir.c |   20 ++++++++++++++++++--
- 1 file changed, 18 insertions(+), 2 deletions(-)
-
-diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
-index e4c3334..bf68b4f 100644
---- a/fs/cifs/dir.c
-+++ b/fs/cifs/dir.c
-@@ -584,10 +584,26 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
- 			 * If either that or op not supported returned, follow
- 			 * the normal lookup.
- 			 */
--			if ((rc == 0) || (rc == -ENOENT))
-+			switch (rc) {
-+			case 0:
-+				/*
-+				 * The server may allow us to open things like
-+				 * FIFOs, but the client isn't set up to deal
-+				 * with that. If it's not a regular file, just
-+				 * close it and proceed as if it were a normal
-+				 * lookup.
-+				 */
-+				if (newInode && !S_ISREG(newInode->i_mode)) {
-+					CIFSSMBClose(xid, pTcon, fileHandle);
-+					break;
-+				}
-+			case -ENOENT:
- 				posix_open = true;
--			else if ((rc == -EINVAL) || (rc != -EOPNOTSUPP))
-+			case -EOPNOTSUPP:
-+				break;
-+			default:
- 				pTcon->broken_posix_open = true;
-+			}
- 		}
- 		if (!posix_open)
- 			rc = cifs_get_inode_info_unix(&newInode, full_path,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0032-mac80211-zero-initialize-count-field-in-ieee80211_tx.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0032-mac80211-zero-initialize-count-field-in-ieee80211_tx.patch
deleted file mode 100644
index 9019c96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0032-mac80211-zero-initialize-count-field-in-ieee80211_tx.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 66fafa03312e3f626b9cc940a4caa5fc28eceb8b Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Mon, 20 Feb 2012 10:05:31 +0530
-Subject: [PATCH 32/95] mac80211: zero initialize count field in
- ieee80211_tx_rate
-
-commit 8617b093d0031837a7be9b32bc674580cfb5f6b5 upstream.
-
-rate control algorithms concludes the rate as invalid
-with rate[i].idx < -1 , while they do also check for rate[i].count is
-non-zero. it would be safer to zero initialize the 'count' field.
-recently we had a ath9k rate control crash where the ath9k rate control
-in ath_tx_status assumed to check only for rate[i].count being non-zero
-in one instance and ended up in using invalid rate index for
-'connection monitoring NULL func frames' which eventually lead to the crash.
-thanks to Pavel Roskin for fixing it and finding the root cause.
-https://bugzilla.redhat.com/show_bug.cgi?id=768639
-
-Cc: Pavel Roskin <proski at gnu.org>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/rate.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/mac80211/rate.c b/net/mac80211/rate.c
-index 5a5a776..7d84b87 100644
---- a/net/mac80211/rate.c
-+++ b/net/mac80211/rate.c
-@@ -344,7 +344,7 @@ void rate_control_get_rate(struct ieee80211_sub_if_data *sdata,
- 	for (i = 0; i < IEEE80211_TX_MAX_RATES; i++) {
- 		info->control.rates[i].idx = -1;
- 		info->control.rates[i].flags = 0;
--		info->control.rates[i].count = 1;
-+		info->control.rates[i].count = 0;
- 	}
- 
- 	if (sdata->local->hw.flags & IEEE80211_HW_HAS_RATE_CONTROL)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0033-ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0033-ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch
deleted file mode 100644
index 178c32f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0033-ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 984266254352cc421ea6886589e862c95ab51838 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Wed, 15 Feb 2012 19:31:20 +0100
-Subject: [PATCH 33/95] ath9k_hw: prevent writes to const data on AR9160
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 9bbb8168ed3d8b946f9c1901a63a675012de88f2 upstream.
-
-Duplicate the data for iniAddac early on, to avoid having to do redundant
-memcpy calls later. While we're at it, make AR5416 < v2.2 use the same
-codepath. Fixes a reported crash on x86.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Reported-by: Magnus Määttä <magnus.maatta at logica.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/ath9k/ar5008_phy.c |   25 +------------------------
- drivers/net/wireless/ath/ath9k/ar9002_hw.c  |   19 +++++++++++++++++++
- drivers/net/wireless/ath/ath9k/hw.h         |    1 -
- 3 files changed, 20 insertions(+), 25 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/ar5008_phy.c b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-index f199e9e..0a3c7c8 100644
---- a/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-+++ b/drivers/net/wireless/ath/ath9k/ar5008_phy.c
-@@ -489,8 +489,6 @@ static int ar5008_hw_rf_alloc_ext_banks(struct ath_hw *ah)
- 	ATH_ALLOC_BANK(ah->analogBank6Data, ah->iniBank6.ia_rows);
- 	ATH_ALLOC_BANK(ah->analogBank6TPCData, ah->iniBank6TPC.ia_rows);
- 	ATH_ALLOC_BANK(ah->analogBank7Data, ah->iniBank7.ia_rows);
--	ATH_ALLOC_BANK(ah->addac5416_21,
--		       ah->iniAddac.ia_rows * ah->iniAddac.ia_columns);
- 	ATH_ALLOC_BANK(ah->bank6Temp, ah->iniBank6.ia_rows);
- 
- 	return 0;
-@@ -519,7 +517,6 @@ static void ar5008_hw_rf_free_ext_banks(struct ath_hw *ah)
- 	ATH_FREE_BANK(ah->analogBank6Data);
- 	ATH_FREE_BANK(ah->analogBank6TPCData);
- 	ATH_FREE_BANK(ah->analogBank7Data);
--	ATH_FREE_BANK(ah->addac5416_21);
- 	ATH_FREE_BANK(ah->bank6Temp);
- 
- #undef ATH_FREE_BANK
-@@ -805,27 +802,7 @@ static int ar5008_hw_process_ini(struct ath_hw *ah,
- 	if (ah->eep_ops->set_addac)
- 		ah->eep_ops->set_addac(ah, chan);
- 
--	if (AR_SREV_5416_22_OR_LATER(ah)) {
--		REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
--	} else {
--		struct ar5416IniArray temp;
--		u32 addacSize =
--			sizeof(u32) * ah->iniAddac.ia_rows *
--			ah->iniAddac.ia_columns;
--
--		/* For AR5416 2.0/2.1 */
--		memcpy(ah->addac5416_21,
--		       ah->iniAddac.ia_array, addacSize);
--
--		/* override CLKDRV value at [row, column] = [31, 1] */
--		(ah->addac5416_21)[31 * ah->iniAddac.ia_columns + 1] = 0;
--
--		temp.ia_array = ah->addac5416_21;
--		temp.ia_columns = ah->iniAddac.ia_columns;
--		temp.ia_rows = ah->iniAddac.ia_rows;
--		REG_WRITE_ARRAY(&temp, 1, regWrites);
--	}
--
-+	REG_WRITE_ARRAY(&ah->iniAddac, 1, regWrites);
- 	REG_WRITE(ah, AR_PHY_ADC_SERIAL_CTL, AR_PHY_SEL_INTERNAL_ADDAC);
- 
- 	ENABLE_REGWRITE_BUFFER(ah);
-diff --git a/drivers/net/wireless/ath/ath9k/ar9002_hw.c b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
-index 11f192a..d190411 100644
---- a/drivers/net/wireless/ath/ath9k/ar9002_hw.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9002_hw.c
-@@ -180,6 +180,25 @@ static void ar9002_hw_init_mode_regs(struct ath_hw *ah)
- 		INIT_INI_ARRAY(&ah->iniAddac, ar5416Addac,
- 			       ARRAY_SIZE(ar5416Addac), 2);
- 	}
-+
-+	/* iniAddac needs to be modified for these chips */
-+	if (AR_SREV_9160(ah) || !AR_SREV_5416_22_OR_LATER(ah)) {
-+		struct ar5416IniArray *addac = &ah->iniAddac;
-+		u32 size = sizeof(u32) * addac->ia_rows * addac->ia_columns;
-+		u32 *data;
-+
-+		data = kmalloc(size, GFP_KERNEL);
-+		if (!data)
-+			return;
-+
-+		memcpy(data, addac->ia_array, size);
-+		addac->ia_array = data;
-+
-+		if (!AR_SREV_5416_22_OR_LATER(ah)) {
-+			/* override CLKDRV value */
-+			INI_RA(addac, 31,1) = 0;
-+		}
-+	}
- }
- 
- /* Support for Japan ch.14 (2484) spread */
-diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
-index f389b3c..1bd8edf 100644
---- a/drivers/net/wireless/ath/ath9k/hw.h
-+++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -772,7 +772,6 @@ struct ath_hw {
- 	u32 *analogBank6Data;
- 	u32 *analogBank6TPCData;
- 	u32 *analogBank7Data;
--	u32 *addac5416_21;
- 	u32 *bank6Temp;
- 
- 	u8 txpower_limit;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0034-kprobes-return-proper-error-code-from-register_kprob.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0034-kprobes-return-proper-error-code-from-register_kprob.patch
deleted file mode 100644
index 18d7fcc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0034-kprobes-return-proper-error-code-from-register_kprob.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 17afeea9bb7e9be3ed3b35312fc2d792831e1ace Mon Sep 17 00:00:00 2001
-From: Prashanth Nageshappa <prashanth at linux.vnet.ibm.com>
-Date: Mon, 5 Mar 2012 14:59:12 -0800
-Subject: [PATCH 34/95] kprobes: return proper error code from
- register_kprobe()
-
-commit f986a499ef6f317d906e6f6f281be966e1237a10 upstream.
-
-register_kprobe() aborts if the address of the new request falls in a
-prohibited area (such as ftrace pouch, __kprobes annotated functions,
-non-kernel text addresses, jump label text).  We however don't return the
-right error on this abort, resulting in a silent failure - incorrect
-adding/reporting of kprobes ('perf probe do_fork+18' or 'perf probe
-mcount' for instance).
-
-In V2 we are incorporating Masami Hiramatsu's  feedback.
-
-This patch fixes it by returning -EINVAL upon failure.
-
-While we are here, rename the label used for exit to be more appropriate.
-
-Signed-off-by: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
-Signed-off-by: Prashanth K Nageshappa <prashanth at linux.vnet.ibm.com>
-Acked-by: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com>
-Cc: Jason Baron <jbaron at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/kprobes.c |   12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/kernel/kprobes.c b/kernel/kprobes.c
-index faa39d1..bc90b87 100644
---- a/kernel/kprobes.c
-+++ b/kernel/kprobes.c
-@@ -1334,8 +1334,10 @@ int __kprobes register_kprobe(struct kprobe *p)
- 	if (!kernel_text_address((unsigned long) p->addr) ||
- 	    in_kprobes_functions((unsigned long) p->addr) ||
- 	    ftrace_text_reserved(p->addr, p->addr) ||
--	    jump_label_text_reserved(p->addr, p->addr))
--		goto fail_with_jump_label;
-+	    jump_label_text_reserved(p->addr, p->addr)) {
-+		ret = -EINVAL;
-+		goto cannot_probe;
-+	}
- 
- 	/* User can pass only KPROBE_FLAG_DISABLED to register_kprobe */
- 	p->flags &= KPROBE_FLAG_DISABLED;
-@@ -1352,7 +1354,7 @@ int __kprobes register_kprobe(struct kprobe *p)
- 		 * its code to prohibit unexpected unloading.
- 		 */
- 		if (unlikely(!try_module_get(probed_mod)))
--			goto fail_with_jump_label;
-+			goto cannot_probe;
- 
- 		/*
- 		 * If the module freed .init.text, we couldn't insert
-@@ -1361,7 +1363,7 @@ int __kprobes register_kprobe(struct kprobe *p)
- 		if (within_module_init((unsigned long)p->addr, probed_mod) &&
- 		    probed_mod->state != MODULE_STATE_COMING) {
- 			module_put(probed_mod);
--			goto fail_with_jump_label;
-+			goto cannot_probe;
- 		}
- 		/* ret will be updated by following code */
- 	}
-@@ -1409,7 +1411,7 @@ out:
- 
- 	return ret;
- 
--fail_with_jump_label:
-+cannot_probe:
- 	preempt_enable();
- 	jump_label_unlock();
- 	return ret;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0035-mm-thp-fix-BUG-on-mm-nr_ptes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0035-mm-thp-fix-BUG-on-mm-nr_ptes.patch
deleted file mode 100644
index 3a5ca20..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0035-mm-thp-fix-BUG-on-mm-nr_ptes.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 826878fadc80bdcaec6d80e4ec0a2761c46e2c00 Mon Sep 17 00:00:00 2001
-From: Andrea Arcangeli <aarcange at redhat.com>
-Date: Mon, 5 Mar 2012 14:59:20 -0800
-Subject: [PATCH 35/95] mm: thp: fix BUG on mm->nr_ptes
-
-commit 1c641e84719429bbfe62a95ed3545ee7fe24408f upstream.
-
-Dave Jones reports a few Fedora users hitting the BUG_ON(mm->nr_ptes...)
-in exit_mmap() recently.
-
-Quoting Hugh's discovery and explanation of the SMP race condition:
-
-  "mm->nr_ptes had unusual locking: down_read mmap_sem plus
-   page_table_lock when incrementing, down_write mmap_sem (or mm_users
-   0) when decrementing; whereas THP is careful to increment and
-   decrement it under page_table_lock.
-
-   Now most of those paths in THP also hold mmap_sem for read or write
-   (with appropriate checks on mm_users), but two do not: when
-   split_huge_page() is called by hwpoison_user_mappings(), and when
-   called by add_to_swap().
-
-   It's conceivable that the latter case is responsible for the
-   exit_mmap() BUG_ON mm->nr_ptes that has been reported on Fedora."
-
-The simplest way to fix it without having to alter the locking is to make
-split_huge_page() a noop in nr_ptes terms, so by counting the preallocated
-pagetables that exists for every mapped hugepage.  It was an arbitrary
-choice not to count them and either way is not wrong or right, because
-they are not used but they're still allocated.
-
-Reported-by: Dave Jones <davej at redhat.com>
-Reported-by: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrea Arcangeli <aarcange at redhat.com>
-Acked-by: Hugh Dickins <hughd at google.com>
-Cc: David Rientjes <rientjes at google.com>
-Cc: Josh Boyer <jwboyer at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/huge_memory.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/mm/huge_memory.c b/mm/huge_memory.c
-index 33141f5..8f005e9 100644
---- a/mm/huge_memory.c
-+++ b/mm/huge_memory.c
-@@ -642,6 +642,7 @@ static int __do_huge_pmd_anonymous_page(struct mm_struct *mm,
- 		set_pmd_at(mm, haddr, pmd, entry);
- 		prepare_pmd_huge_pte(pgtable, mm);
- 		add_mm_counter(mm, MM_ANONPAGES, HPAGE_PMD_NR);
-+		mm->nr_ptes++;
- 		spin_unlock(&mm->page_table_lock);
- 	}
- 
-@@ -760,6 +761,7 @@ int copy_huge_pmd(struct mm_struct *dst_mm, struct mm_struct *src_mm,
- 	pmd = pmd_mkold(pmd_wrprotect(pmd));
- 	set_pmd_at(dst_mm, addr, dst_pmd, pmd);
- 	prepare_pmd_huge_pte(pgtable, dst_mm);
-+	dst_mm->nr_ptes++;
- 
- 	ret = 0;
- out_unlock:
-@@ -858,7 +860,6 @@ static int do_huge_pmd_wp_page_fallback(struct mm_struct *mm,
- 	}
- 	kfree(pages);
- 
--	mm->nr_ptes++;
- 	smp_wmb(); /* make pte visible before pmd */
- 	pmd_populate(mm, pmd, pgtable);
- 	page_remove_rmap(page);
-@@ -1017,6 +1018,7 @@ int zap_huge_pmd(struct mmu_gather *tlb, struct vm_area_struct *vma,
- 			VM_BUG_ON(page_mapcount(page) < 0);
- 			add_mm_counter(tlb->mm, MM_ANONPAGES, -HPAGE_PMD_NR);
- 			VM_BUG_ON(!PageHead(page));
-+			tlb->mm->nr_ptes--;
- 			spin_unlock(&tlb->mm->page_table_lock);
- 			tlb_remove_page(tlb, page);
- 			pte_free(tlb->mm, pgtable);
-@@ -1356,7 +1358,6 @@ static int __split_huge_page_map(struct page *page,
- 			pte_unmap(pte);
- 		}
- 
--		mm->nr_ptes++;
- 		smp_wmb(); /* make pte visible before pmd */
- 		/*
- 		 * Up to this point the pmd is present and huge and
-@@ -1969,7 +1970,6 @@ static void collapse_huge_page(struct mm_struct *mm,
- 	set_pmd_at(mm, address, pmd, _pmd);
- 	update_mmu_cache(vma, address, _pmd);
- 	prepare_pmd_huge_pte(pgtable, mm);
--	mm->nr_ptes--;
- 	spin_unlock(&mm->page_table_lock);
- 
- #ifndef CONFIG_NUMA
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0036-iwlwifi-fix-key-removal.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0036-iwlwifi-fix-key-removal.patch
deleted file mode 100644
index b08e9c0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0036-iwlwifi-fix-key-removal.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 60fea88fe522a88f80a809d0f7ced80b93af58b7 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Fri, 17 Feb 2012 09:47:14 -0800
-Subject: [PATCH 36/95] iwlwifi: fix key removal
-
-commit 5dcbf480473f6c3f06ad2426b7517038a2a18911 upstream.
-
-When trying to remove a key, we always send key
-flags just setting the key type, not including
-the multicast flag and the key ID. As a result,
-whenever any key was removed, the unicast key 0
-would be removed, causing a complete connection
-loss after the second rekey (the first doesn't
-cause a key removal). Fix the key removal code
-to include the key ID and multicast flag, thus
-removing the correct key.
-
-Reported-by: Alexander Schnaidt <alex.schnaidt at googlemail.com>
-Tested-by: Alexander Schnaidt <alex.schnaidt at googlemail.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/iwlwifi/iwl-agn-sta.c |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
-index 4b2aa1d..5cfb3d1 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
-@@ -1211,6 +1211,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
- 	unsigned long flags;
- 	struct iwl_addsta_cmd sta_cmd;
- 	u8 sta_id = iwlagn_key_sta_id(priv, ctx->vif, sta);
-+	__le16 key_flags;
- 
- 	/* if station isn't there, neither is the key */
- 	if (sta_id == IWL_INVALID_STATION)
-@@ -1236,7 +1237,14 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
- 		IWL_ERR(priv, "offset %d not used in uCode key table.\n",
- 			keyconf->hw_key_idx);
- 
--	sta_cmd.key.key_flags = STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID;
-+	key_flags = cpu_to_le16(keyconf->keyidx << STA_KEY_FLG_KEYID_POS);
-+	key_flags |= STA_KEY_FLG_MAP_KEY_MSK | STA_KEY_FLG_NO_ENC |
-+		     STA_KEY_FLG_INVALID;
-+
-+	if (!(keyconf->flags & IEEE80211_KEY_FLAG_PAIRWISE))
-+		key_flags |= STA_KEY_MULTICAST_MSK;
-+
-+	sta_cmd.key.key_flags = key_flags;
- 	sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
- 	sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
- 	sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0037-tty-powerpc-early-udbg-consoles-can-t-be-modules.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0037-tty-powerpc-early-udbg-consoles-can-t-be-modules.patch
deleted file mode 100644
index e23d485..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0037-tty-powerpc-early-udbg-consoles-can-t-be-modules.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 40e15ade2a5ffd011659096db4413e8c40408aa3 Mon Sep 17 00:00:00 2001
-From: Stephen Rothwell <sfr at canb.auug.org.au>
-Date: Mon, 20 Feb 2012 07:22:38 +1100
-Subject: [PATCH 37/95] tty/powerpc: early udbg consoles can't be modules
-
-commit f21c6d4a49179f91fd70a41382382f08c780d425 upstream.
-
-Fixes these build errors:
-
-ERROR: ".udbg_printf" [drivers/tty/ehv_bytechan.ko] undefined!
-ERROR: ".register_early_udbg_console" [drivers/tty/ehv_bytechan.ko] undefined!
-ERROR: "udbg_putc" [drivers/tty/ehv_bytechan.ko] undefined!
-
-Cc: Timur Tabi <timur at freescale.com>
-Signed-off-by: Stephen Rothwell <sfr at canb.auug.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/Kconfig |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/tty/Kconfig b/drivers/tty/Kconfig
-index b3d1741..830cd62 100644
---- a/drivers/tty/Kconfig
-+++ b/drivers/tty/Kconfig
-@@ -365,7 +365,7 @@ config PPC_EPAPR_HV_BYTECHAN
- 
- config PPC_EARLY_DEBUG_EHV_BC
- 	bool "Early console (udbg) support for ePAPR hypervisors"
--	depends on PPC_EPAPR_HV_BYTECHAN
-+	depends on PPC_EPAPR_HV_BYTECHAN=y
- 	help
- 	  Select this option to enable early console (a.k.a. "udbg") support
- 	  via an ePAPR byte channel.  You also need to choose the byte channel
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0038-S390-qdio-fix-handler-function-arguments-for-zfcp-da.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0038-S390-qdio-fix-handler-function-arguments-for-zfcp-da.patch
deleted file mode 100644
index 785c898..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0038-S390-qdio-fix-handler-function-arguments-for-zfcp-da.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 0fe4a197fe13b8817fbe93fa72571bbdc6d2bcbf Mon Sep 17 00:00:00 2001
-From: Steffen Maier <maier at linux.vnet.ibm.com>
-Date: Fri, 2 Mar 2012 17:32:58 +0100
-Subject: [PATCH 38/95] S390: qdio: fix handler function arguments for zfcp
- data router
-
-commit 7b3cc67d4445995a025a4b55a7dc687b6829b4ca upstream.
-
-Git commit 25f269f17316549e "[S390] qdio: EQBS retry after CCQ 96"
-introduced a regression in regard to the zfcp data router.
-Revoke the incorrect simplification of the function call arguments
-for the qdio handler to make the zfcp hardware data router working
-again.
-
-This is applicable to 3.2+ kernels.
-
-Signed-off-by: Steffen Maier <maier at linux.vnet.ibm.com>
-Reviewed-by: Jan Glauber <jang at linux.vnet.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/s390/cio/qdio_main.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/s390/cio/qdio_main.c b/drivers/s390/cio/qdio_main.c
-index 3ef8d07..770a740 100644
---- a/drivers/s390/cio/qdio_main.c
-+++ b/drivers/s390/cio/qdio_main.c
-@@ -167,7 +167,7 @@ again:
- 	DBF_ERROR("%4x EQBS ERROR", SCH_NO(q));
- 	DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
- 	q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
--		   0, -1, -1, q->irq_ptr->int_parm);
-+		   q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
- 	return 0;
- }
- 
-@@ -215,7 +215,7 @@ again:
- 	DBF_ERROR("%4x SQBS ERROR", SCH_NO(q));
- 	DBF_ERROR("%3d%3d%2d", count, tmp_count, nr);
- 	q->handler(q->irq_ptr->cdev, QDIO_ERROR_ACTIVATE_CHECK_CONDITION,
--		   0, -1, -1, q->irq_ptr->int_parm);
-+		   q->nr, q->first_to_kick, count, q->irq_ptr->int_parm);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0039-rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0039-rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doo.patch
deleted file mode 100644
index d015e84..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0039-rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doo.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 24333d235443f7969b0344417be788281c96237d Mon Sep 17 00:00:00 2001
-From: Alexandre Bounine <alexandre.bounine at idt.com>
-Date: Mon, 5 Mar 2012 14:59:21 -0800
-Subject: [PATCH 39/95] rapidio/tsi721: fix queue wrapping bug in inbound
- doorbell handler
-
-commit b24823e61bfd93d0e72088e4f5245287582ed289 upstream.
-
-Fix a bug that causes a kernel panic when the number of received doorbells
-is larger than number of entries in the inbound doorbell queue (current
-default value = 512).
-
-Another possible indication for this bug is large number of spurious
-doorbells reported by tsi721 driver after reaching the queue size maximum.
-
-Signed-off-by: Alexandre Bounine <alexandre.bounine at idt.com>
-Cc: Chul Kim <chul.kim at idt.com>
-Cc: Matt Porter <mporter at kernel.crashing.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/rapidio/devices/tsi721.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/rapidio/devices/tsi721.c b/drivers/rapidio/devices/tsi721.c
-index 691b1ab..30d2072 100644
---- a/drivers/rapidio/devices/tsi721.c
-+++ b/drivers/rapidio/devices/tsi721.c
-@@ -410,13 +410,14 @@ static void tsi721_db_dpc(struct work_struct *work)
- 	 */
- 	mport = priv->mport;
- 
--	wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE));
--	rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE));
-+	wr_ptr = ioread32(priv->regs + TSI721_IDQ_WP(IDB_QUEUE)) % IDB_QSIZE;
-+	rd_ptr = ioread32(priv->regs + TSI721_IDQ_RP(IDB_QUEUE)) % IDB_QSIZE;
- 
- 	while (wr_ptr != rd_ptr) {
- 		idb_entry = (u64 *)(priv->idb_base +
- 					(TSI721_IDB_ENTRY_SIZE * rd_ptr));
- 		rd_ptr++;
-+		rd_ptr %= IDB_QSIZE;
- 		idb.msg = *idb_entry;
- 		*idb_entry = 0;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0040-HID-usbhid-Add-NOGET-quirk-for-the-AIREN-Slim-keyboa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0040-HID-usbhid-Add-NOGET-quirk-for-the-AIREN-Slim-keyboa.patch
deleted file mode 100644
index 6b61e74..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0040-HID-usbhid-Add-NOGET-quirk-for-the-AIREN-Slim-keyboa.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From ee3b012021766b0bc9af47e8ac0e5fd22efdfd86 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Mon, 27 Feb 2012 11:23:45 -0500
-Subject: [PATCH 40/95] HID: usbhid: Add NOGET quirk for the AIREN Slim+
- keyboard
-
-commit 37891abc8464637964a26ae4b61d307fef831f80 upstream.
-
-This patch (as1531) adds a NOGET quirk for the Slim+ keyboard marketed
-by AIREN.  This keyboard seems to have a lot of bugs; NOGET works
-around only one of them.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Reported-by: okias <d.okias at gmail.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hid/hid-ids.h           |    3 +++
- drivers/hid/usbhid/hid-quirks.c |    1 +
- 2 files changed, 4 insertions(+)
-
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 00cabb3..3c3daec 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -59,6 +59,9 @@
- #define USB_VENDOR_ID_AIRCABLE		0x16CA
- #define USB_DEVICE_ID_AIRCABLE1		0x1502
- 
-+#define USB_VENDOR_ID_AIREN		0x1a2c
-+#define USB_DEVICE_ID_AIREN_SLIMPLUS	0x0002
-+
- #define USB_VENDOR_ID_ALCOR		0x058f
- #define USB_DEVICE_ID_ALCOR_USBRS232	0x9720
- 
-diff --git a/drivers/hid/usbhid/hid-quirks.c b/drivers/hid/usbhid/hid-quirks.c
-index 5028d60..1fe6b80 100644
---- a/drivers/hid/usbhid/hid-quirks.c
-+++ b/drivers/hid/usbhid/hid-quirks.c
-@@ -53,6 +53,7 @@ static const struct hid_blacklist {
- 	{ USB_VENDOR_ID_PLAYDOTCOM, USB_DEVICE_ID_PLAYDOTCOM_EMS_USBII, HID_QUIRK_MULTI_INPUT },
- 	{ USB_VENDOR_ID_TOUCHPACK, USB_DEVICE_ID_TOUCHPACK_RTS, HID_QUIRK_MULTI_INPUT },
- 
-+	{ USB_VENDOR_ID_AIREN, USB_DEVICE_ID_AIREN_SLIMPLUS, HID_QUIRK_NOGET },
- 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_UC100KM, HID_QUIRK_NOGET },
- 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_CS124U, HID_QUIRK_NOGET },
- 	{ USB_VENDOR_ID_ATEN, USB_DEVICE_ID_ATEN_2PORTKVM, HID_QUIRK_NOGET },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0041-crypto-mv_cesa-fix-final-callback-not-ignoring-input.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0041-crypto-mv_cesa-fix-final-callback-not-ignoring-input.patch
deleted file mode 100644
index 89ec447..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0041-crypto-mv_cesa-fix-final-callback-not-ignoring-input.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8083680a77c1a483d05981bc87bd7af929d61e1c Mon Sep 17 00:00:00 2001
-From: Phil Sutter <phil.sutter at viprinet.com>
-Date: Mon, 27 Feb 2012 12:17:04 +0100
-Subject: [PATCH 41/95] crypto: mv_cesa - fix final callback not ignoring
- input data
-
-commit f8f54e190ddb4ed697036b60f5e2ae6dd45b801c upstream.
-
-Broken by commit 6ef84509f3d439ed2d43ea40080643efec37f54f for users
-passing a request with non-zero 'nbytes' field, like e.g. testmgr.
-
-Signed-off-by: Phil Sutter <phil.sutter at viprinet.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/crypto/mv_cesa.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
-index dcd8bab..fe79635 100644
---- a/drivers/crypto/mv_cesa.c
-+++ b/drivers/crypto/mv_cesa.c
-@@ -714,6 +714,7 @@ static int mv_hash_final(struct ahash_request *req)
- {
- 	struct mv_req_hash_ctx *ctx = ahash_request_ctx(req);
- 
-+	ahash_request_set_crypt(req, NULL, req->result, 0);
- 	mv_update_hash_req_ctx(ctx, 1, 0);
- 	return mv_handle_req(&req->base);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0042-osd_uld-Bump-MAX_OSD_DEVICES-from-64-to-1-048-576.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0042-osd_uld-Bump-MAX_OSD_DEVICES-from-64-to-1-048-576.patch
deleted file mode 100644
index c709413..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0042-osd_uld-Bump-MAX_OSD_DEVICES-from-64-to-1-048-576.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 7f3be420ce32352ea342f204edc4d3eda0822fa5 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Wed, 25 Jan 2012 21:42:58 +0200
-Subject: [PATCH 42/95] osd_uld: Bump MAX_OSD_DEVICES from 64 to 1,048,576
-
-commit 41f8ad76362e7aefe3a03949c43e23102dae6e0b upstream.
-
-It used to be that minors where 8 bit. But now they
-are actually 20 bit. So the fix is simplicity itself.
-
-I've tested with 300 devices and all user-mode utils
-work just fine. I have also mechanically added 10,000
-to the ida (so devices are /dev/osd10000, /dev/osd10001 ...)
-and was able to mkfs an exofs filesystem and access osds
-from user-mode.
-
-All the open-osd user-mode code uses the same library
-to access devices through their symbolic names in
-/dev/osdX so I'd say it's pretty safe. (Well tested)
-
-This patch is very important because some of the systems
-that will be deploying the 3.2 pnfs-objects code are larger
-than 64 OSDs and will stop to work properly when reaching
-that number.
-
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/scsi/osd/osd_uld.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/osd/osd_uld.c b/drivers/scsi/osd/osd_uld.c
-index b31a8e3..d4ed9eb 100644
---- a/drivers/scsi/osd/osd_uld.c
-+++ b/drivers/scsi/osd/osd_uld.c
-@@ -69,10 +69,10 @@
- #ifndef SCSI_OSD_MAJOR
- #  define SCSI_OSD_MAJOR 260
- #endif
--#define SCSI_OSD_MAX_MINOR 64
-+#define SCSI_OSD_MAX_MINOR MINORMASK
- 
- static const char osd_name[] = "osd";
--static const char *osd_version_string = "open-osd 0.2.0";
-+static const char *osd_version_string = "open-osd 0.2.1";
- 
- MODULE_AUTHOR("Boaz Harrosh <bharrosh at panasas.com>");
- MODULE_DESCRIPTION("open-osd Upper-Layer-Driver osd.ko");
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0043-viafb-select-HW-scaling-on-VX900-for-IGA2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0043-viafb-select-HW-scaling-on-VX900-for-IGA2.patch
deleted file mode 100644
index b6d44b6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0043-viafb-select-HW-scaling-on-VX900-for-IGA2.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ebfef6ff13504f601e3aa56f9732474f3c956e60 Mon Sep 17 00:00:00 2001
-From: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Date: Wed, 22 Feb 2012 18:53:07 +0000
-Subject: [PATCH 43/95] viafb: select HW scaling on VX900 for IGA2
-
-commit 050f0e02c8dc38b2b4f2df345ac760d22ca5c7ba upstream.
-
-VX900 can do hardware scaling for both IGAs in contrast to previous
-hardware which could do it only for IGA2. This patch ensures that
-we set the parameter for IGA2 and not for IGA1. This fixes hardware
-scaling on VX900 until we have the infrastructure to support it for
-both IGAs.
-
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/via/hw.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
-index d5aaca9..8bdf80e 100644
---- a/drivers/video/via/hw.c
-+++ b/drivers/video/via/hw.c
-@@ -1811,6 +1811,7 @@ static void hw_init(void)
- 	}
- 
- 	/* probably this should go to the scaling code one day */
-+	via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
- 	viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
- 
- 	/* Fill VPIT Parameters */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0044-viafb-fix-IGA1-modesetting-on-VX900.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0044-viafb-fix-IGA1-modesetting-on-VX900.patch
deleted file mode 100644
index f80d3d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0044-viafb-fix-IGA1-modesetting-on-VX900.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9f9317159fdafe3d7fc64cf41f299c71c064db83 Mon Sep 17 00:00:00 2001
-From: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Date: Wed, 22 Feb 2012 18:53:08 +0000
-Subject: [PATCH 44/95] viafb: fix IGA1 modesetting on VX900
-
-commit e29206381a1436e0f47c0f5b9a23159a03c57715 upstream.
-
-Even if the documentation calls this bit "Reserved" it has to be set
-to 0 for correct modesetting on IGA1.
-
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/via/hw.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/video/via/hw.c b/drivers/video/via/hw.c
-index 8bdf80e..8497727 100644
---- a/drivers/video/via/hw.c
-+++ b/drivers/video/via/hw.c
-@@ -1810,6 +1810,9 @@ static void hw_init(void)
- 		break;
- 	}
- 
-+	/* magic required on VX900 for correct modesetting on IGA1 */
-+	via_write_reg_mask(VIACR, 0x45, 0x00, 0x01);
-+
- 	/* probably this should go to the scaling code one day */
- 	via_write_reg_mask(VIACR, 0xFD, 0, 0x80); /* VX900 hw scale on IGA2 */
- 	viafb_write_regx(scaling_parameters, ARRAY_SIZE(scaling_parameters));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0045-ASoC-dapm-Check-for-bias-level-when-powering-down.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0045-ASoC-dapm-Check-for-bias-level-when-powering-down.patch
deleted file mode 100644
index 07d84c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0045-ASoC-dapm-Check-for-bias-level-when-powering-down.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2a2a58328a4241c30b0464b700899e7ba93a10a1 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Wed, 22 Feb 2012 15:52:56 +0000
-Subject: [PATCH 45/95] ASoC: dapm: Check for bias level when powering down
-
-commit 7679e42ec833ed70aa34790a5f39dcb7e5bda4fe upstream.
-
-Recent enhancements in the bias management means that we might not be
-in standby when the CODEC is idle and can have active widgets without
-being in full power mode but the shutdown functionality assumes these
-things. Add checks for the bias level at each stage so that we don't
-do transitions other than the ON->PREPARE->STANDBY->OFF ones that the
-drivers are expecting.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/soc-dapm.c |   12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
-index f42e8b9..ea909c5 100644
---- a/sound/soc/soc-dapm.c
-+++ b/sound/soc/soc-dapm.c
-@@ -2982,9 +2982,13 @@ static void soc_dapm_shutdown_codec(struct snd_soc_dapm_context *dapm)
- 	 * standby.
- 	 */
- 	if (powerdown) {
--		snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_PREPARE);
-+		if (dapm->bias_level == SND_SOC_BIAS_ON)
-+			snd_soc_dapm_set_bias_level(dapm,
-+						    SND_SOC_BIAS_PREPARE);
- 		dapm_seq_run(dapm, &down_list, 0, false);
--		snd_soc_dapm_set_bias_level(dapm, SND_SOC_BIAS_STANDBY);
-+		if (dapm->bias_level == SND_SOC_BIAS_PREPARE)
-+			snd_soc_dapm_set_bias_level(dapm,
-+						    SND_SOC_BIAS_STANDBY);
- 	}
- }
- 
-@@ -2997,7 +3001,9 @@ void snd_soc_dapm_shutdown(struct snd_soc_card *card)
- 
- 	list_for_each_entry(codec, &card->codec_dev_list, list) {
- 		soc_dapm_shutdown_codec(&codec->dapm);
--		snd_soc_dapm_set_bias_level(&codec->dapm, SND_SOC_BIAS_OFF);
-+		if (codec->dapm.bias_level == SND_SOC_BIAS_STANDBY)
-+			snd_soc_dapm_set_bias_level(&codec->dapm,
-+						    SND_SOC_BIAS_OFF);
- 	}
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0046-ASoC-i.MX-SSI-Fix-DSP_A-format.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0046-ASoC-i.MX-SSI-Fix-DSP_A-format.patch
deleted file mode 100644
index 7eb6917..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0046-ASoC-i.MX-SSI-Fix-DSP_A-format.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 96baece54aefb7eb3a287d16dfd1531785293cb8 Mon Sep 17 00:00:00 2001
-From: Javier Martin <javier.martin at vista-silicon.com>
-Date: Thu, 23 Feb 2012 15:43:18 +0100
-Subject: [PATCH 46/95] ASoC: i.MX SSI: Fix DSP_A format.
-
-commit 5ed80a75b248bfaf840ea6b38f941edcf6ee7dc7 upstream.
-
-According to i.MX27 Reference Manual (p 1593) TXBIT0 bit selects
-whether the most significant or the less significant part of the
-data word written to the FIFO is transmitted.
-
-As DSP_A is the same as DSP_B with a data offset of 1 bit, it
-doesn't make any sense to remove TXBIT0 bit here.
-
-Signed-off-by: Javier Martin <javier.martin at vista-silicon.com>
-Acked-by: Sascha Hauer <s.hauer at pengutronix.de>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/imx/imx-ssi.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/imx/imx-ssi.c b/sound/soc/imx/imx-ssi.c
-index 4c05e2b..971eaf0 100644
---- a/sound/soc/imx/imx-ssi.c
-+++ b/sound/soc/imx/imx-ssi.c
-@@ -112,7 +112,7 @@ static int imx_ssi_set_dai_fmt(struct snd_soc_dai *cpu_dai, unsigned int fmt)
- 		break;
- 	case SND_SOC_DAIFMT_DSP_A:
- 		/* data on rising edge of bclk, frame high 1clk before data */
--		strcr |= SSI_STCR_TFSL | SSI_STCR_TEFS;
-+		strcr |= SSI_STCR_TFSL | SSI_STCR_TXBIT0 | SSI_STCR_TEFS;
- 		break;
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0047-bsg-fix-sysfs-link-remove-warning.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0047-bsg-fix-sysfs-link-remove-warning.patch
deleted file mode 100644
index fbb6e9c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0047-bsg-fix-sysfs-link-remove-warning.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5edb7ce56b7a8c2332fdce83ddbb208aba2ea484 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Wed, 8 Feb 2012 20:02:03 +0100
-Subject: [PATCH 47/95] bsg: fix sysfs link remove warning
-
-commit 37b40adf2d1b4a5e51323be73ccf8ddcf3f15dd3 upstream.
-
-We create "bsg" link if q->kobj.sd is not NULL, so remove it only
-when the same condition is true.
-
-Fixes:
-
-WARNING: at fs/sysfs/inode.c:323 sysfs_hash_and_remove+0x2b/0x77()
-sysfs: can not remove 'bsg', no directory
-Call Trace:
-  [<c0429683>] warn_slowpath_common+0x6a/0x7f
-  [<c0537a68>] ? sysfs_hash_and_remove+0x2b/0x77
-  [<c042970b>] warn_slowpath_fmt+0x2b/0x2f
-  [<c0537a68>] sysfs_hash_and_remove+0x2b/0x77
-  [<c053969a>] sysfs_remove_link+0x20/0x23
-  [<c05d88f1>] bsg_unregister_queue+0x40/0x6d
-  [<c0692263>] __scsi_remove_device+0x31/0x9d
-  [<c069149f>] scsi_forget_host+0x41/0x52
-  [<c0689fa9>] scsi_remove_host+0x71/0xe0
-  [<f7de5945>] quiesce_and_remove_host+0x51/0x83 [usb_storage]
-  [<f7de5a1e>] usb_stor_disconnect+0x18/0x22 [usb_storage]
-  [<c06c29de>] usb_unbind_interface+0x4e/0x109
-  [<c067a80f>] __device_release_driver+0x6b/0xa6
-  [<c067a861>] device_release_driver+0x17/0x22
-  [<c067a46a>] bus_remove_device+0xd6/0xe6
-  [<c06785e2>] device_del+0xf2/0x137
-  [<c06c101f>] usb_disable_device+0x94/0x1a0
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- block/bsg.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/block/bsg.c b/block/bsg.c
-index 702f131..c0ab25c 100644
---- a/block/bsg.c
-+++ b/block/bsg.c
-@@ -985,7 +985,8 @@ void bsg_unregister_queue(struct request_queue *q)
- 
- 	mutex_lock(&bsg_mutex);
- 	idr_remove(&bsg_minor_idr, bcd->minor);
--	sysfs_remove_link(&q->kobj, "bsg");
-+	if (q->kobj.sd)
-+		sysfs_remove_link(&q->kobj, "bsg");
- 	device_unregister(bcd->class_dev);
- 	bcd->class_dev = NULL;
- 	kref_put(&bcd->ref, bsg_kref_release_function);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0048-avr32-select-generic-atomic64_t-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0048-avr32-select-generic-atomic64_t-support.patch
deleted file mode 100644
index 418f85e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0048-avr32-select-generic-atomic64_t-support.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From dec8d0e38f5a0d8d9a60f59dfac4edec01c60d5e Mon Sep 17 00:00:00 2001
-From: Fabio Baltieri <fabio.baltieri at gmail.com>
-Date: Fri, 3 Feb 2012 15:37:14 -0800
-Subject: [PATCH 48/95] avr32: select generic atomic64_t support
-
-commit 31e0017e6f6fb5cfdfaf932c1f98c9bef8d57688 upstream.
-
-Enable use of the generic atomic64 implementation on AVR32 platforms.
-Without this the kernel fails to build as the architecture does not
-provide its version.
-
-Signed-off-by: Fabio Baltieri <fabio.baltieri at gmail.com>
-Acked-by: Hans-Christian Egtvedt <egtvedt at samfundet.no>
-Cc: Haavard Skinnemoen <hskinnemoen at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/avr32/Kconfig |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/avr32/Kconfig b/arch/avr32/Kconfig
-index 197e96f..3dea7231 100644
---- a/arch/avr32/Kconfig
-+++ b/arch/avr32/Kconfig
-@@ -8,6 +8,7 @@ config AVR32
- 	select HAVE_KPROBES
- 	select HAVE_GENERIC_HARDIRQS
- 	select GENERIC_IRQ_PROBE
-+	select GENERIC_ATOMIC64
- 	select HARDIRQS_SW_RESEND
- 	select GENERIC_IRQ_SHOW
- 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0049-ACPI-PM-Do-not-save-restore-NVS-on-Asus-K54C-K54HR.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0049-ACPI-PM-Do-not-save-restore-NVS-on-Asus-K54C-K54HR.patch
deleted file mode 100644
index 0422888..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0049-ACPI-PM-Do-not-save-restore-NVS-on-Asus-K54C-K54HR.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7e305e70aa38559143edea33a3afa5bbc1ccde03 Mon Sep 17 00:00:00 2001
-From: Keng-Yu Lin <kengyu at canonical.com>
-Date: Fri, 2 Dec 2011 00:04:23 +0100
-Subject: [PATCH 49/95] ACPI / PM: Do not save/restore NVS on Asus K54C/K54HR
-
-commit 5a50a7c32d630d6cdb13d69afabb0cc81b2f379c upstream.
-
-The models do not resume correctly without acpi_sleep=nonvs.
-
-Signed-off-by: Keng-Yu Lin <kengyu at canonical.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Cc: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/acpi/sleep.c |   16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
-index 6d9a3ab..0a7ed69 100644
---- a/drivers/acpi/sleep.c
-+++ b/drivers/acpi/sleep.c
-@@ -476,6 +476,22 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
- 		DMI_MATCH(DMI_PRODUCT_NAME, "VGN-FW520F"),
- 		},
- 	},
-+	{
-+	.callback = init_nvs_nosave,
-+	.ident = "Asus K54C",
-+	.matches = {
-+		DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
-+		DMI_MATCH(DMI_PRODUCT_NAME, "K54C"),
-+		},
-+	},
-+	{
-+	.callback = init_nvs_nosave,
-+	.ident = "Asus K54HR",
-+	.matches = {
-+		DMI_MATCH(DMI_SYS_VENDOR, "ASUSTeK Computer Inc."),
-+		DMI_MATCH(DMI_PRODUCT_NAME, "K54HR"),
-+		},
-+	},
- 	{},
- };
- #endif /* CONFIG_SUSPEND */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0050-rtl8192cu-Add-new-device-IDs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0050-rtl8192cu-Add-new-device-IDs.patch
deleted file mode 100644
index 9c46295..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0050-rtl8192cu-Add-new-device-IDs.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From 5ac86302b276565fd96dd678fc9db3cb16ad25e1 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Tue, 18 Oct 2011 17:52:01 -0500
-Subject: [PATCH 50/95] rtl8192cu: Add new device IDs
-
-commit 6cddafab54e9a17b2efefe982547865955a5ff3a upstream.
-
-The latest vendor (non-mac80211) driver of 9/22/2011 shows some new
-device IDs for rtl8192cu. In addition, some typos in the table are
-fixed and one duplicate is removed.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/rtl8192cu/sw.c |   36 ++++++++++++++++++++++++---
- 1 file changed, 32 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-index c244f2f..94a3e17 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-@@ -275,6 +275,8 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
- 	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8191, rtl92cu_hal_cfg)},
- 
- 	/****** 8188CU ********/
-+	/* RTL8188CTV */
-+	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x018a, rtl92cu_hal_cfg)},
- 	/* 8188CE-VAU USB minCard */
- 	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8170, rtl92cu_hal_cfg)},
- 	/* 8188cu 1*1 dongle */
-@@ -291,14 +293,14 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
- 	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817e, rtl92cu_hal_cfg)},
- 	/* 8188RU in Alfa AWUS036NHR */
- 	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817f, rtl92cu_hal_cfg)},
-+	/* RTL8188CUS-VL */
-+	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x818a, rtl92cu_hal_cfg)},
- 	/* 8188 Combo for BC4 */
- 	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8754, rtl92cu_hal_cfg)},
- 
- 	/****** 8192CU ********/
--	/* 8191cu 1*2 */
--	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8177, rtl92cu_hal_cfg)},
- 	/* 8192cu 2*2 */
--	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817b, rtl92cu_hal_cfg)},
-+	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8178, rtl92cu_hal_cfg)},
- 	/* 8192CE-VAU USB minCard */
- 	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817c, rtl92cu_hal_cfg)},
- 
-@@ -309,13 +311,17 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
- 	{RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/
- 	{RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/
- 	{RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/
--	{RTL_USB_DEVICE(0x0Df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
-+	{RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
-+	{RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
- 	{RTL_USB_DEVICE(0x0eb0, 0x9071, rtl92cu_hal_cfg)}, /*NO Brand - Etop*/
- 	/* HP - Lite-On ,8188CUS Slim Combo */
- 	{RTL_USB_DEVICE(0x103c, 0x1629, rtl92cu_hal_cfg)},
- 	{RTL_USB_DEVICE(0x13d3, 0x3357, rtl92cu_hal_cfg)}, /* AzureWave */
- 	{RTL_USB_DEVICE(0x2001, 0x3308, rtl92cu_hal_cfg)}, /*D-Link - Alpha*/
-+	{RTL_USB_DEVICE(0x2019, 0x4902, rtl92cu_hal_cfg)}, /*Planex - Etop*/
- 	{RTL_USB_DEVICE(0x2019, 0xab2a, rtl92cu_hal_cfg)}, /*Planex - Abocom*/
-+	/*SW-WF02-AD15 -Abocom*/
-+	{RTL_USB_DEVICE(0x2019, 0xab2e, rtl92cu_hal_cfg)},
- 	{RTL_USB_DEVICE(0x2019, 0xed17, rtl92cu_hal_cfg)}, /*PCI - Edimax*/
- 	{RTL_USB_DEVICE(0x20f4, 0x648b, rtl92cu_hal_cfg)}, /*TRENDnet - Cameo*/
- 	{RTL_USB_DEVICE(0x7392, 0x7811, rtl92cu_hal_cfg)}, /*Edimax - Edimax*/
-@@ -326,14 +332,36 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
- 	{RTL_USB_DEVICE(0x4855, 0x0091, rtl92cu_hal_cfg)}, /* NetweeN-Feixun */
- 	{RTL_USB_DEVICE(0x9846, 0x9041, rtl92cu_hal_cfg)}, /* Netgear Cameo */
- 
-+	/****** 8188 RU ********/
-+	/* Netcore */
-+	{RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x317f, rtl92cu_hal_cfg)},
-+
-+	/****** 8188CUS Slim Solo********/
-+	{RTL_USB_DEVICE(0x04f2, 0xaff7, rtl92cu_hal_cfg)}, /*Xavi*/
-+	{RTL_USB_DEVICE(0x04f2, 0xaff9, rtl92cu_hal_cfg)}, /*Xavi*/
-+	{RTL_USB_DEVICE(0x04f2, 0xaffa, rtl92cu_hal_cfg)}, /*Xavi*/
-+
-+	/****** 8188CUS Slim Combo ********/
-+	{RTL_USB_DEVICE(0x04f2, 0xaff8, rtl92cu_hal_cfg)}, /*Xavi*/
-+	{RTL_USB_DEVICE(0x04f2, 0xaffb, rtl92cu_hal_cfg)}, /*Xavi*/
-+	{RTL_USB_DEVICE(0x04f2, 0xaffc, rtl92cu_hal_cfg)}, /*Xavi*/
-+	{RTL_USB_DEVICE(0x2019, 0x1201, rtl92cu_hal_cfg)}, /*Planex-Vencer*/
-+
- 	/****** 8192CU ********/
-+	{RTL_USB_DEVICE(0x050d, 0x2102, rtl92cu_hal_cfg)}, /*Belcom-Sercomm*/
-+	{RTL_USB_DEVICE(0x050d, 0x2103, rtl92cu_hal_cfg)}, /*Belcom-Edimax*/
- 	{RTL_USB_DEVICE(0x0586, 0x341f, rtl92cu_hal_cfg)}, /*Zyxel -Abocom*/
- 	{RTL_USB_DEVICE(0x07aa, 0x0056, rtl92cu_hal_cfg)}, /*ATKK-Gemtek*/
- 	{RTL_USB_DEVICE(0x07b8, 0x8178, rtl92cu_hal_cfg)}, /*Funai -Abocom*/
-+	{RTL_USB_DEVICE(0x0846, 0x9021, rtl92cu_hal_cfg)}, /*Netgear-Sercomm*/
-+	{RTL_USB_DEVICE(0x0b05, 0x17ab, rtl92cu_hal_cfg)}, /*ASUS-Edimax*/
-+	{RTL_USB_DEVICE(0x0df6, 0x0061, rtl92cu_hal_cfg)}, /*Sitecom-Edimax*/
-+	{RTL_USB_DEVICE(0x0e66, 0x0019, rtl92cu_hal_cfg)}, /*Hawking-Edimax*/
- 	{RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/
- 	{RTL_USB_DEVICE(0x2001, 0x3309, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/
- 	{RTL_USB_DEVICE(0x2001, 0x330a, rtl92cu_hal_cfg)}, /*D-Link-Alpha*/
- 	{RTL_USB_DEVICE(0x2019, 0xab2b, rtl92cu_hal_cfg)}, /*Planex -Abocom*/
-+	{RTL_USB_DEVICE(0x20f4, 0x624d, rtl92cu_hal_cfg)}, /*TRENDNet*/
- 	{RTL_USB_DEVICE(0x7392, 0x7822, rtl92cu_hal_cfg)}, /*Edimax -Edimax*/
- 	{}
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0051-drm-i915-gen7-implement-rczunit-workaround.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0051-drm-i915-gen7-implement-rczunit-workaround.patch
deleted file mode 100644
index a5f9314..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0051-drm-i915-gen7-implement-rczunit-workaround.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 264d5f1c3a43d069cb497773366cf973b0f58731 Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Wed, 8 Feb 2012 12:53:49 -0800
-Subject: [PATCH 51/95] drm/i915: gen7: implement rczunit workaround
-
-commit eae66b50c760233fad526edf4a0d327be17a055d upstream.
-
-This is yet another workaround related to clock gating which we need on
-Ivy Bridge.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_reg.h      |    1 +
- drivers/gpu/drm/i915/intel_display.c |    5 +++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index a26d5b0..4e2e261 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -3476,6 +3476,7 @@
- #define    GT_FIFO_NUM_RESERVED_ENTRIES		20
- 
- #define GEN6_UCGCTL2				0x9404
-+# define GEN6_RCZUNIT_CLOCK_GATE_DISABLE		(1 << 13)
- # define GEN6_RCPBUNIT_CLOCK_GATE_DISABLE		(1 << 12)
- # define GEN6_RCCUNIT_CLOCK_GATE_DISABLE		(1 << 11)
- 
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 573f485..31c1432 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8248,6 +8248,11 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
- 	I915_WRITE(WM2_LP_ILK, 0);
- 	I915_WRITE(WM1_LP_ILK, 0);
- 
-+	/* According to the spec, bit 13 (RCZUNIT) must be set on IVB.
-+	 * This implements the WaDisableRCZUnitClockGating workaround.
-+	 */
-+	I915_WRITE(GEN6_UCGCTL2, GEN6_RCZUNIT_CLOCK_GATE_DISABLE);
-+
- 	I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
- 
- 	for_each_pipe(pipe) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0052-drm-i915-gen7-Implement-an-L3-caching-workaround.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0052-drm-i915-gen7-Implement-an-L3-caching-workaround.patch
deleted file mode 100644
index 1e31e47..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0052-drm-i915-gen7-Implement-an-L3-caching-workaround.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 238325d3b5555b7bbc0f84190da5aaf51a9da375 Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Wed, 8 Feb 2012 12:53:50 -0800
-Subject: [PATCH 52/95] drm/i915: gen7: Implement an L3 caching workaround.
-
-commit e4e0c058a19c41150d12ad2d3023b3cf09c5de67 upstream.
-
-This adds two cache-related workarounds for Ivy Bridge which can lead to
-3D ring hangs and corruptions.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_reg.h      |    7 +++++++
- drivers/gpu/drm/i915/intel_display.c |    6 ++++++
- 2 files changed, 13 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 4e2e261..cbe5d01 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -2886,6 +2886,13 @@
- #define  DISP_TILE_SURFACE_SWIZZLING	(1<<13)
- #define  DISP_FBC_WM_DIS		(1<<15)
- 
-+/* GEN7 chicken */
-+#define GEN7_L3CNTLREG1				0xB01C
-+#define  GEN7_WA_FOR_GEN7_L3_CONTROL			0x3C4FFF8C
-+
-+#define GEN7_L3_CHICKEN_MODE_REGISTER		0xB030
-+#define  GEN7_WA_L3_CHICKEN_MODE				0x20000000
-+
- /* PCH */
- 
- /* south display engine interrupt */
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 31c1432..4d1a7a7 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8255,6 +8255,12 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
- 
- 	I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
- 
-+	/* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */
-+	I915_WRITE(GEN7_L3CNTLREG1,
-+			GEN7_WA_FOR_GEN7_L3_CONTROL);
-+	I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER,
-+			GEN7_WA_L3_CHICKEN_MODE);
-+
- 	for_each_pipe(pipe) {
- 		I915_WRITE(DSPCNTR(pipe),
- 			   I915_READ(DSPCNTR(pipe)) |
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0053-drm-i915-gen7-work-around-a-system-hang-on-IVB.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0053-drm-i915-gen7-work-around-a-system-hang-on-IVB.patch
deleted file mode 100644
index 79cc890..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0053-drm-i915-gen7-work-around-a-system-hang-on-IVB.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 7434b6217bccac6433fad1f2a76d152cd08d1491 Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Wed, 8 Feb 2012 12:53:51 -0800
-Subject: [PATCH 53/95] drm/i915: gen7: work around a system hang on IVB
-
-commit db099c8f963fe656108e0a068274c5580a17f69b upstream.
-
-This adds the workaround for WaCatErrorRejectionIssue which could result
-in a system hang.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_reg.h      |    4 ++++
- drivers/gpu/drm/i915/intel_display.c |    5 +++++
- 2 files changed, 9 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index cbe5d01..2ae87ca 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -2893,6 +2893,10 @@
- #define GEN7_L3_CHICKEN_MODE_REGISTER		0xB030
- #define  GEN7_WA_L3_CHICKEN_MODE				0x20000000
- 
-+/* WaCatErrorRejectionIssue */
-+#define GEN7_SQ_CHICKEN_MBCUNIT_CONFIG		0x9030
-+#define  GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB	(1<<11)
-+
- /* PCH */
- 
- /* south display engine interrupt */
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 4d1a7a7..bf3deb1 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8261,6 +8261,11 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
- 	I915_WRITE(GEN7_L3_CHICKEN_MODE_REGISTER,
- 			GEN7_WA_L3_CHICKEN_MODE);
- 
-+	/* This is required by WaCatErrorRejectionIssue */
-+	I915_WRITE(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG,
-+			I915_READ(GEN7_SQ_CHICKEN_MBCUNIT_CONFIG) |
-+			GEN7_SQ_CHICKEN_MBCUNIT_SQINTMOB);
-+
- 	for_each_pipe(pipe) {
- 		I915_WRITE(DSPCNTR(pipe),
- 			   I915_READ(DSPCNTR(pipe)) |
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0054-drm-i915-gen7-Disable-the-RHWO-optimization-as-it-ca.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0054-drm-i915-gen7-Disable-the-RHWO-optimization-as-it-ca.patch
deleted file mode 100644
index b0d2cbe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0054-drm-i915-gen7-Disable-the-RHWO-optimization-as-it-ca.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 62636ad79afb701ad1580d4b45eb5840e811064f Mon Sep 17 00:00:00 2001
-From: Kenneth Graunke <kenneth at whitecape.org>
-Date: Wed, 8 Feb 2012 12:53:52 -0800
-Subject: [PATCH 54/95] drm/i915: gen7: Disable the RHWO optimization as it
- can cause GPU hangs.
-
-commit d71de14ddf423ccc9a2e3f7e37553c99ead20d7c upstream.
-
-The BSpec Workarounds page states that bits 10 and 26 must be set to
-avoid 3D ring hangs.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41353
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44610
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_reg.h      |    3 +++
- drivers/gpu/drm/i915/intel_display.c |    4 ++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 2ae87ca..1608d2a 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -2887,6 +2887,9 @@
- #define  DISP_FBC_WM_DIS		(1<<15)
- 
- /* GEN7 chicken */
-+#define GEN7_COMMON_SLICE_CHICKEN1		0x7010
-+# define GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC	((1<<10) | (1<<26))
-+
- #define GEN7_L3CNTLREG1				0xB01C
- #define  GEN7_WA_FOR_GEN7_L3_CONTROL			0x3C4FFF8C
- 
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index bf3deb1..72dc505 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8255,6 +8255,10 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
- 
- 	I915_WRITE(ILK_DSPCLK_GATE, IVB_VRHUNIT_CLK_GATE);
- 
-+	/* Apply the WaDisableRHWOOptimizationForRenderHang workaround. */
-+	I915_WRITE(GEN7_COMMON_SLICE_CHICKEN1,
-+		   GEN7_CSC1_RHWO_OPT_DISABLE_IN_RCC);
-+
- 	/* WaApplyL3ControlAndL3ChickenMode requires those two on Ivy Bridge */
- 	I915_WRITE(GEN7_L3CNTLREG1,
- 			GEN7_WA_FOR_GEN7_L3_CONTROL);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0055-drm-i915-fix-ELD-writing-for-SandyBridge.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0055-drm-i915-fix-ELD-writing-for-SandyBridge.patch
deleted file mode 100644
index e3ff40a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0055-drm-i915-fix-ELD-writing-for-SandyBridge.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From f150669e1eb97776dfc197e20317235d6bb45ae8 Mon Sep 17 00:00:00 2001
-From: Wu Fengguang <fengguang.wu at intel.com>
-Date: Fri, 9 Dec 2011 20:42:17 +0800
-Subject: [PATCH 55/95] drm/i915: fix ELD writing for SandyBridge
-
-commit b3f33cbf7ace8fc149993ee35e0d0fd57f41d6d8 upstream.
-
-SandyBridge should be using the same register addresses as IvyBridge.
-
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_display.c |   10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 72dc505..9ec9755 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -5876,14 +5876,14 @@ static void ironlake_write_eld(struct drm_connector *connector,
- 	int aud_cntl_st;
- 	int aud_cntrl_st2;
- 
--	if (IS_IVYBRIDGE(connector->dev)) {
--		hdmiw_hdmiedid = GEN7_HDMIW_HDMIEDID_A;
--		aud_cntl_st = GEN7_AUD_CNTRL_ST_A;
--		aud_cntrl_st2 = GEN7_AUD_CNTRL_ST2;
--	} else {
-+	if (HAS_PCH_IBX(connector->dev)) {
- 		hdmiw_hdmiedid = GEN5_HDMIW_HDMIEDID_A;
- 		aud_cntl_st = GEN5_AUD_CNTL_ST_A;
- 		aud_cntrl_st2 = GEN5_AUD_CNTL_ST2;
-+	} else {
-+		hdmiw_hdmiedid = GEN7_HDMIW_HDMIEDID_A;
-+		aud_cntl_st = GEN7_AUD_CNTRL_ST_A;
-+		aud_cntrl_st2 = GEN7_AUD_CNTRL_ST2;
- 	}
- 
- 	i = to_intel_crtc(crtc)->pipe;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0056-ARM-orion-Fix-USB-phy-for-orion5x.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0056-ARM-orion-Fix-USB-phy-for-orion5x.patch
deleted file mode 100644
index 141b182..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0056-ARM-orion-Fix-USB-phy-for-orion5x.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 3be510bba73f7c7ae5677c98d339747f3c275d52 Mon Sep 17 00:00:00 2001
-From: Andrew Lunn <andrew at lunn.ch>
-Date: Wed, 8 Feb 2012 15:52:47 +0100
-Subject: [PATCH 56/95] ARM: orion: Fix USB phy for orion5x.
-
-commit 72053353583230952c4b187e110e9da00dfc3afb upstream.
-
-The patch "ARM: orion: Consolidate USB platform setup code.", commit
-4fcd3f374a928081d391cd9a570afe3b2c692fdc broke USB on TS-7800 and
-other orion5x boards, because the wrong type of PHY was being passed
-to the EHCI driver in the platform data. Orion5x needs EHCI_PHY_ORION
-and all the others want EHCI_PHY_NA.
-
-Allow the mach- code to tell the generic plat-orion code which USB PHY
-enum to place into the platform data.
-
-Version 2: Rebase to v3.3-rc2.
-
-Reported-by: Ambroz Bizjak <ambrop7 at gmail.com>
-Signed-off-by: Andrew Lunn <andrew at lunn.ch>
-Tested-by: Ambroz Bizjak <ambrop7 at gmail.com>
-Acked-by: Nicolas Pitre <nico at linaro.org>
-Signed-off-by: Olof Johansson <olof at lixom.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-dove/common.c               |    3 ++-
- arch/arm/mach-kirkwood/common.c           |    3 ++-
- arch/arm/mach-mv78xx0/common.c            |    3 ++-
- arch/arm/mach-orion5x/common.c            |    4 +++-
- arch/arm/plat-orion/common.c              |    9 ++++-----
- arch/arm/plat-orion/include/plat/common.h |    3 ++-
- 6 files changed, 15 insertions(+), 10 deletions(-)
-
-diff --git a/arch/arm/mach-dove/common.c b/arch/arm/mach-dove/common.c
-index a9e0dae..1620b15 100644
---- a/arch/arm/mach-dove/common.c
-+++ b/arch/arm/mach-dove/common.c
-@@ -29,6 +29,7 @@
- #include <asm/mach/arch.h>
- #include <linux/irq.h>
- #include <plat/time.h>
-+#include <plat/ehci-orion.h>
- #include <plat/common.h>
- #include "common.h"
- 
-@@ -72,7 +73,7 @@ void __init dove_map_io(void)
- void __init dove_ehci0_init(void)
- {
- 	orion_ehci_init(&dove_mbus_dram_info,
--			DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0);
-+			DOVE_USB0_PHYS_BASE, IRQ_DOVE_USB0, EHCI_PHY_NA);
- }
- 
- /*****************************************************************************
-diff --git a/arch/arm/mach-kirkwood/common.c b/arch/arm/mach-kirkwood/common.c
-index f3248cf..c5dbbb3 100644
---- a/arch/arm/mach-kirkwood/common.c
-+++ b/arch/arm/mach-kirkwood/common.c
-@@ -28,6 +28,7 @@
- #include <plat/cache-feroceon-l2.h>
- #include <plat/mvsdio.h>
- #include <plat/orion_nand.h>
-+#include <plat/ehci-orion.h>
- #include <plat/common.h>
- #include <plat/time.h>
- #include "common.h"
-@@ -74,7 +75,7 @@ void __init kirkwood_ehci_init(void)
- {
- 	kirkwood_clk_ctrl |= CGC_USB0;
- 	orion_ehci_init(&kirkwood_mbus_dram_info,
--			USB_PHYS_BASE, IRQ_KIRKWOOD_USB);
-+			USB_PHYS_BASE, IRQ_KIRKWOOD_USB, EHCI_PHY_NA);
- }
- 
- 
-diff --git a/arch/arm/mach-mv78xx0/common.c b/arch/arm/mach-mv78xx0/common.c
-index 23d3980..d90e244 100644
---- a/arch/arm/mach-mv78xx0/common.c
-+++ b/arch/arm/mach-mv78xx0/common.c
-@@ -20,6 +20,7 @@
- #include <mach/mv78xx0.h>
- #include <mach/bridge-regs.h>
- #include <plat/cache-feroceon-l2.h>
-+#include <plat/ehci-orion.h>
- #include <plat/orion_nand.h>
- #include <plat/time.h>
- #include <plat/common.h>
-@@ -170,7 +171,7 @@ void __init mv78xx0_map_io(void)
- void __init mv78xx0_ehci0_init(void)
- {
- 	orion_ehci_init(&mv78xx0_mbus_dram_info,
--			USB0_PHYS_BASE, IRQ_MV78XX0_USB_0);
-+			USB0_PHYS_BASE, IRQ_MV78XX0_USB_0, EHCI_PHY_NA);
- }
- 
- 
-diff --git a/arch/arm/mach-orion5x/common.c b/arch/arm/mach-orion5x/common.c
-index 22ace0b..53b68b8 100644
---- a/arch/arm/mach-orion5x/common.c
-+++ b/arch/arm/mach-orion5x/common.c
-@@ -29,6 +29,7 @@
- #include <mach/hardware.h>
- #include <mach/orion5x.h>
- #include <plat/orion_nand.h>
-+#include <plat/ehci-orion.h>
- #include <plat/time.h>
- #include <plat/common.h>
- #include "common.h"
-@@ -72,7 +73,8 @@ void __init orion5x_map_io(void)
- void __init orion5x_ehci0_init(void)
- {
- 	orion_ehci_init(&orion5x_mbus_dram_info,
--			ORION5X_USB0_PHYS_BASE, IRQ_ORION5X_USB0_CTRL);
-+			ORION5X_USB0_PHYS_BASE, IRQ_ORION5X_USB0_CTRL,
-+			EHCI_PHY_ORION);
- }
- 
- 
-diff --git a/arch/arm/plat-orion/common.c b/arch/arm/plat-orion/common.c
-index 9e5451b..11dce87 100644
---- a/arch/arm/plat-orion/common.c
-+++ b/arch/arm/plat-orion/common.c
-@@ -806,10 +806,7 @@ void __init orion_xor1_init(unsigned long mapbase_low,
- /*****************************************************************************
-  * EHCI
-  ****************************************************************************/
--static struct orion_ehci_data orion_ehci_data = {
--	.phy_version	= EHCI_PHY_NA,
--};
--
-+static struct orion_ehci_data orion_ehci_data;
- static u64 ehci_dmamask = DMA_BIT_MASK(32);
- 
- 
-@@ -830,9 +827,11 @@ static struct platform_device orion_ehci = {
- 
- void __init orion_ehci_init(struct mbus_dram_target_info *mbus_dram_info,
- 			    unsigned long mapbase,
--			    unsigned long irq)
-+			    unsigned long irq,
-+			    enum orion_ehci_phy_ver phy_version)
- {
- 	orion_ehci_data.dram = mbus_dram_info;
-+	orion_ehci_data.phy_version = phy_version;
- 	fill_resources(&orion_ehci, orion_ehci_resources, mapbase, SZ_4K - 1,
- 		       irq);
- 
-diff --git a/arch/arm/plat-orion/include/plat/common.h b/arch/arm/plat-orion/include/plat/common.h
-index a63c357..a2c0e31 100644
---- a/arch/arm/plat-orion/include/plat/common.h
-+++ b/arch/arm/plat-orion/include/plat/common.h
-@@ -95,7 +95,8 @@ void __init orion_xor1_init(unsigned long mapbase_low,
- 
- void __init orion_ehci_init(struct mbus_dram_target_info *mbus_dram_info,
- 			    unsigned long mapbase,
--			    unsigned long irq);
-+			    unsigned long irq,
-+			    enum orion_ehci_phy_ver phy_version);
- 
- void __init orion_ehci_1_init(struct mbus_dram_target_info *mbus_dram_info,
- 			      unsigned long mapbase,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0057-ARM-orion-Fix-Orion5x-GPIO-regression-from-MPP-clean.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0057-ARM-orion-Fix-Orion5x-GPIO-regression-from-MPP-clean.patch
deleted file mode 100644
index 1311d96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0057-ARM-orion-Fix-Orion5x-GPIO-regression-from-MPP-clean.patch
+++ /dev/null
@@ -1,956 +0,0 @@
-From 312c368a8d87bbd61e4af956f9f3b2f2492d9cbf Mon Sep 17 00:00:00 2001
-From: Andrew Lunn <andrew at lunn.ch>
-Date: Wed, 8 Feb 2012 15:52:07 +0100
-Subject: [PATCH 57/95] ARM: orion: Fix Orion5x GPIO regression from MPP
- cleanup
-
-commit b06540371063f0f07aafc1d1ac5e974da85c973c upstream.
-
-Patchset "ARM: orion: Refactor the MPP code common in the orion
-platform" broke at least Orion5x based platforms. These platforms have
-pins configured as GPIO when the selector is not 0x0. However the
-common code assumes the selector is always 0x0 for a GPIO lines. It
-then ignores the GPIO bits in the MPP definitions, resulting in that
-Orion5x machines cannot correctly configure there GPIO lines.
-
-The Fix removes the assumption that the selector is always 0x0.
-In order that none GPIO configurations are correctly blocked,
-Kirkwood and mv78xx0 MPP definitions are corrected to only set the
-GPIO bits for GPIO configurations.
-
-This third version, which does not contain any whitespace changes,
-and is rebased on v3.3-rc2.
-
-Signed-off-by: Andrew Lunn <andrew at lunn.ch>
-Acked-by: Nicolas Pitre <nico at linaro.org>
-Signed-off-by: Olof Johansson <olof at lixom.net>
----
- arch/arm/mach-kirkwood/mpp.h |  320 +++++++++++++++++++++---------------------
- arch/arm/mach-mv78xx0/mpp.h  |  226 ++++++++++++++---------------
- arch/arm/plat-orion/mpp.c    |    3 +-
- 3 files changed, 274 insertions(+), 275 deletions(-)
-
-diff --git a/arch/arm/mach-kirkwood/mpp.h b/arch/arm/mach-kirkwood/mpp.h
-index ac78795..7afccf4 100644
---- a/arch/arm/mach-kirkwood/mpp.h
-+++ b/arch/arm/mach-kirkwood/mpp.h
-@@ -31,313 +31,313 @@
- #define MPP_F6282_MASK		MPP(  0, 0x0, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP0_GPIO		MPP(  0, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP0_NF_IO2		MPP(  0, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP0_SPI_SCn		MPP(  0, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-+#define MPP0_NF_IO2		MPP(  0, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP0_SPI_SCn		MPP(  0, 0x2, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP1_GPO		MPP(  1, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP1_NF_IO3		MPP(  1, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP1_SPI_MOSI		MPP(  1, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-+#define MPP1_NF_IO3		MPP(  1, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP1_SPI_MOSI		MPP(  1, 0x2, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP2_GPO		MPP(  2, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP2_NF_IO4		MPP(  2, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP2_SPI_SCK		MPP(  2, 0x2, 0, 1, 1,   1,   1,   1,   1 )
-+#define MPP2_NF_IO4		MPP(  2, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP2_SPI_SCK		MPP(  2, 0x2, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP3_GPO		MPP(  3, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP3_NF_IO5		MPP(  3, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP3_SPI_MISO		MPP(  3, 0x2, 1, 0, 1,   1,   1,   1,   1 )
-+#define MPP3_NF_IO5		MPP(  3, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP3_SPI_MISO		MPP(  3, 0x2, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP4_GPIO		MPP(  4, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP4_NF_IO6		MPP(  4, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP4_UART0_RXD		MPP(  4, 0x2, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP4_SATA1_ACTn		MPP(  4, 0x5, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP4_NF_IO6		MPP(  4, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP4_UART0_RXD		MPP(  4, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP4_SATA1_ACTn		MPP(  4, 0x5, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP4_LCD_VGA_HSYNC	MPP(  4, 0xb, 0, 0, 0,   0,   0,   0,   1 )
--#define MPP4_PTP_CLK		MPP(  4, 0xd, 1, 0, 1,   1,   1,   1,   0 )
-+#define MPP4_PTP_CLK		MPP(  4, 0xd, 0, 0, 1,   1,   1,   1,   0 )
- 
- #define MPP5_GPO		MPP(  5, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP5_NF_IO7		MPP(  5, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP5_UART0_TXD		MPP(  5, 0x2, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP5_PTP_TRIG_GEN	MPP(  5, 0x4, 0, 1, 1,   1,   1,   1,   0 )
--#define MPP5_SATA0_ACTn		MPP(  5, 0x5, 0, 1, 0,   1,   1,   1,   1 )
-+#define MPP5_NF_IO7		MPP(  5, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP5_UART0_TXD		MPP(  5, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP5_PTP_TRIG_GEN	MPP(  5, 0x4, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP5_SATA0_ACTn		MPP(  5, 0x5, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP5_LCD_VGA_VSYNC	MPP(  5, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
--#define MPP6_SYSRST_OUTn	MPP(  6, 0x1, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP6_SPI_MOSI		MPP(  6, 0x2, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP6_PTP_TRIG_GEN	MPP(  6, 0x3, 0, 1, 1,   1,   1,   1,   0 )
-+#define MPP6_SYSRST_OUTn	MPP(  6, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP6_SPI_MOSI		MPP(  6, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP6_PTP_TRIG_GEN	MPP(  6, 0x3, 0, 0, 1,   1,   1,   1,   0 )
- 
- #define MPP7_GPO		MPP(  7, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP7_PEX_RST_OUTn	MPP(  7, 0x1, 0, 1, 1,   1,   1,   1,   0 )
--#define MPP7_SPI_SCn		MPP(  7, 0x2, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP7_PTP_TRIG_GEN	MPP(  7, 0x3, 0, 1, 1,   1,   1,   1,   0 )
--#define MPP7_LCD_PWM		MPP(  7, 0xb, 0, 1, 0,   0,   0,   0,   1 )
-+#define MPP7_PEX_RST_OUTn	MPP(  7, 0x1, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP7_SPI_SCn		MPP(  7, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP7_PTP_TRIG_GEN	MPP(  7, 0x3, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP7_LCD_PWM		MPP(  7, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP8_GPIO		MPP(  8, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP8_TW0_SDA		MPP(  8, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP8_UART0_RTS		MPP(  8, 0x2, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP8_UART1_RTS		MPP(  8, 0x3, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP8_MII0_RXERR		MPP(  8, 0x4, 1, 0, 0,   1,   1,   1,   1 )
--#define MPP8_SATA1_PRESENTn	MPP(  8, 0x5, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP8_PTP_CLK		MPP(  8, 0xc, 1, 0, 1,   1,   1,   1,   0 )
--#define MPP8_MII0_COL		MPP(  8, 0xd, 1, 0, 1,   1,   1,   1,   1 )
-+#define MPP8_TW0_SDA		MPP(  8, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP8_UART0_RTS		MPP(  8, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP8_UART1_RTS		MPP(  8, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP8_MII0_RXERR		MPP(  8, 0x4, 0, 0, 0,   1,   1,   1,   1 )
-+#define MPP8_SATA1_PRESENTn	MPP(  8, 0x5, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP8_PTP_CLK		MPP(  8, 0xc, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP8_MII0_COL		MPP(  8, 0xd, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP9_GPIO		MPP(  9, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP9_TW0_SCK		MPP(  9, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP9_UART0_CTS		MPP(  9, 0x2, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP9_UART1_CTS		MPP(  9, 0x3, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP9_SATA0_PRESENTn	MPP(  9, 0x5, 0, 1, 0,   1,   1,   1,   1 )
--#define MPP9_PTP_EVENT_REQ	MPP(  9, 0xc, 1, 0, 1,   1,   1,   1,   0 )
--#define MPP9_MII0_CRS		MPP(  9, 0xd, 1, 0, 1,   1,   1,   1,   1 )
-+#define MPP9_TW0_SCK		MPP(  9, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP9_UART0_CTS		MPP(  9, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP9_UART1_CTS		MPP(  9, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP9_SATA0_PRESENTn	MPP(  9, 0x5, 0, 0, 0,   1,   1,   1,   1 )
-+#define MPP9_PTP_EVENT_REQ	MPP(  9, 0xc, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP9_MII0_CRS		MPP(  9, 0xd, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP10_GPO		MPP( 10, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP10_SPI_SCK		MPP( 10, 0x2, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP10_UART0_TXD		MPP( 10, 0X3, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP10_SATA1_ACTn	MPP( 10, 0x5, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP10_PTP_TRIG_GEN	MPP( 10, 0xc, 0, 1, 1,   1,   1,   1,   0 )
-+#define MPP10_SPI_SCK		MPP( 10, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP10_UART0_TXD		MPP( 10, 0X3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP10_SATA1_ACTn	MPP( 10, 0x5, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP10_PTP_TRIG_GEN	MPP( 10, 0xc, 0, 0, 1,   1,   1,   1,   0 )
- 
- #define MPP11_GPIO		MPP( 11, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP11_SPI_MISO		MPP( 11, 0x2, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP11_UART0_RXD		MPP( 11, 0x3, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP11_PTP_EVENT_REQ	MPP( 11, 0x4, 1, 0, 1,   1,   1,   1,   0 )
--#define MPP11_PTP_TRIG_GEN	MPP( 11, 0xc, 0, 1, 1,   1,   1,   1,   0 )
--#define MPP11_PTP_CLK		MPP( 11, 0xd, 1, 0, 1,   1,   1,   1,   0 )
--#define MPP11_SATA0_ACTn	MPP( 11, 0x5, 0, 1, 0,   1,   1,   1,   1 )
-+#define MPP11_SPI_MISO		MPP( 11, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP11_UART0_RXD		MPP( 11, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP11_PTP_EVENT_REQ	MPP( 11, 0x4, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP11_PTP_TRIG_GEN	MPP( 11, 0xc, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP11_PTP_CLK		MPP( 11, 0xd, 0, 0, 1,   1,   1,   1,   0 )
-+#define MPP11_SATA0_ACTn	MPP( 11, 0x5, 0, 0, 0,   1,   1,   1,   1 )
- 
- #define MPP12_GPO		MPP( 12, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP12_SD_CLK		MPP( 12, 0x1, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP12_AU_SPDIF0		MPP( 12, 0xa, 0, 1, 0,   0,   0,   0,   1 )
--#define MPP12_SPI_MOSI		MPP( 12, 0xb, 0, 1, 0,   0,   0,   0,   1 )
--#define MPP12_TW1_SDA		MPP( 12, 0xd, 1, 0, 0,   0,   0,   0,   1 )
-+#define MPP12_SD_CLK		MPP( 12, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP12_AU_SPDIF0		MPP( 12, 0xa, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP12_SPI_MOSI		MPP( 12, 0xb, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP12_TW1_SDA		MPP( 12, 0xd, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP13_GPIO		MPP( 13, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP13_SD_CMD		MPP( 13, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP13_UART1_TXD		MPP( 13, 0x3, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP13_AU_SPDIFRMCLK	MPP( 13, 0xa, 0, 1, 0,   0,   0,   0,   1 )
--#define MPP13_LCDPWM		MPP( 13, 0xb, 0, 1, 0,   0,   0,   0,   1 )
-+#define MPP13_SD_CMD		MPP( 13, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP13_UART1_TXD		MPP( 13, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP13_AU_SPDIFRMCLK	MPP( 13, 0xa, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP13_LCDPWM		MPP( 13, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP14_GPIO		MPP( 14, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP14_SD_D0		MPP( 14, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP14_UART1_RXD		MPP( 14, 0x3, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP14_SATA1_PRESENTn	MPP( 14, 0x4, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP14_AU_SPDIFI		MPP( 14, 0xa, 1, 0, 0,   0,   0,   0,   1 )
--#define MPP14_AU_I2SDI		MPP( 14, 0xb, 1, 0, 0,   0,   0,   0,   1 )
--#define MPP14_MII0_COL		MPP( 14, 0xd, 1, 0, 1,   1,   1,   1,   1 )
-+#define MPP14_SD_D0		MPP( 14, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP14_UART1_RXD		MPP( 14, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP14_SATA1_PRESENTn	MPP( 14, 0x4, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP14_AU_SPDIFI		MPP( 14, 0xa, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP14_AU_I2SDI		MPP( 14, 0xb, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP14_MII0_COL		MPP( 14, 0xd, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP15_GPIO		MPP( 15, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP15_SD_D1		MPP( 15, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP15_UART0_RTS		MPP( 15, 0x2, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP15_UART1_TXD		MPP( 15, 0x3, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP15_SATA0_ACTn	MPP( 15, 0x4, 0, 1, 0,   1,   1,   1,   1 )
--#define MPP15_SPI_CSn		MPP( 15, 0xb, 0, 1, 0,   0,   0,   0,   1 )
-+#define MPP15_SD_D1		MPP( 15, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP15_UART0_RTS		MPP( 15, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP15_UART1_TXD		MPP( 15, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP15_SATA0_ACTn	MPP( 15, 0x4, 0, 0, 0,   1,   1,   1,   1 )
-+#define MPP15_SPI_CSn		MPP( 15, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP16_GPIO		MPP( 16, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP16_SD_D2		MPP( 16, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP16_UART0_CTS		MPP( 16, 0x2, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP16_UART1_RXD		MPP( 16, 0x3, 1, 0, 1,   1,   1,   1,   1 )
--#define MPP16_SATA1_ACTn	MPP( 16, 0x4, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP16_LCD_EXT_REF_CLK	MPP( 16, 0xb, 1, 0, 0,   0,   0,   0,   1 )
--#define MPP16_MII0_CRS		MPP( 16, 0xd, 1, 0, 1,   1,   1,   1,   1 )
-+#define MPP16_SD_D2		MPP( 16, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP16_UART0_CTS		MPP( 16, 0x2, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP16_UART1_RXD		MPP( 16, 0x3, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP16_SATA1_ACTn	MPP( 16, 0x4, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP16_LCD_EXT_REF_CLK	MPP( 16, 0xb, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP16_MII0_CRS		MPP( 16, 0xd, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP17_GPIO		MPP( 17, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP17_SD_D3		MPP( 17, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP17_SATA0_PRESENTn	MPP( 17, 0x4, 0, 1, 0,   1,   1,   1,   1 )
--#define MPP17_SATA1_ACTn	MPP( 17, 0xa, 0, 1, 0,   0,   0,   0,   1 )
--#define MPP17_TW1_SCK		MPP( 17, 0xd, 1, 1, 0,   0,   0,   0,   1 )
-+#define MPP17_SD_D3		MPP( 17, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP17_SATA0_PRESENTn	MPP( 17, 0x4, 0, 0, 0,   1,   1,   1,   1 )
-+#define MPP17_SATA1_ACTn	MPP( 17, 0xa, 0, 0, 0,   0,   0,   0,   1 )
-+#define MPP17_TW1_SCK		MPP( 17, 0xd, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP18_GPO		MPP( 18, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP18_NF_IO0		MPP( 18, 0x1, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP18_PEX0_CLKREQ	MPP( 18, 0x2, 0, 1, 0,   0,   0,   0,   1 )
-+#define MPP18_NF_IO0		MPP( 18, 0x1, 0, 0, 1,   1,   1,   1,   1 )
-+#define MPP18_PEX0_CLKREQ	MPP( 18, 0x2, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP19_GPO		MPP( 19, 0x0, 0, 1, 1,   1,   1,   1,   1 )
--#define MPP19_NF_IO1		MPP( 19, 0x1, 1, 1, 1,   1,   1,   1,   1 )
-+#define MPP19_NF_IO1		MPP( 19, 0x1, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP20_GPIO		MPP( 20, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP20_TSMP0		MPP( 20, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP20_TDM_CH0_TX_QL	MPP( 20, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP20_TSMP0		MPP( 20, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP20_TDM_CH0_TX_QL	MPP( 20, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP20_GE1_TXD0		MPP( 20, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP20_AU_SPDIFI		MPP( 20, 0x4, 1, 0, 0,   0,   1,   1,   1 )
--#define MPP20_SATA1_ACTn	MPP( 20, 0x5, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP20_AU_SPDIFI		MPP( 20, 0x4, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP20_SATA1_ACTn	MPP( 20, 0x5, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP20_LCD_D0		MPP( 20, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP21_GPIO		MPP( 21, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP21_TSMP1		MPP( 21, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP21_TDM_CH0_RX_QL	MPP( 21, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP21_TSMP1		MPP( 21, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP21_TDM_CH0_RX_QL	MPP( 21, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP21_GE1_TXD1		MPP( 21, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP21_AU_SPDIFO		MPP( 21, 0x4, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP21_SATA0_ACTn	MPP( 21, 0x5, 0, 1, 0,   1,   1,   1,   1 )
-+#define MPP21_AU_SPDIFO		MPP( 21, 0x4, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP21_SATA0_ACTn	MPP( 21, 0x5, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP21_LCD_D1		MPP( 21, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP22_GPIO		MPP( 22, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP22_TSMP2		MPP( 22, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP22_TDM_CH2_TX_QL	MPP( 22, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP22_TSMP2		MPP( 22, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP22_TDM_CH2_TX_QL	MPP( 22, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP22_GE1_TXD2		MPP( 22, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP22_AU_SPDIFRMKCLK	MPP( 22, 0x4, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP22_SATA1_PRESENTn	MPP( 22, 0x5, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP22_AU_SPDIFRMKCLK	MPP( 22, 0x4, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP22_SATA1_PRESENTn	MPP( 22, 0x5, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP22_LCD_D2		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP23_GPIO		MPP( 23, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP23_TSMP3		MPP( 23, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP23_TDM_CH2_RX_QL	MPP( 23, 0x2, 1, 0, 0,   0,   1,   1,   1 )
-+#define MPP23_TSMP3		MPP( 23, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP23_TDM_CH2_RX_QL	MPP( 23, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP23_GE1_TXD3		MPP( 23, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP23_AU_I2SBCLK	MPP( 23, 0x4, 0, 1, 0,   0,   1,   1,   1 )
--#define MPP23_SATA0_PRESENTn	MPP( 23, 0x5, 0, 1, 0,   1,   1,   1,   1 )
-+#define MPP23_AU_I2SBCLK	MPP( 23, 0x4, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP23_SATA0_PRESENTn	MPP( 23, 0x5, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP23_LCD_D3		MPP( 23, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP24_GPIO		MPP( 24, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP24_TSMP4		MPP( 24, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP24_TDM_SPI_CS0	MPP( 24, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP24_TSMP4		MPP( 24, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP24_TDM_SPI_CS0	MPP( 24, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP24_GE1_RXD0		MPP( 24, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP24_AU_I2SDO		MPP( 24, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP24_AU_I2SDO		MPP( 24, 0x4, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP24_LCD_D4		MPP( 24, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP25_GPIO		MPP( 25, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP25_TSMP5		MPP( 25, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP25_TDM_SPI_SCK	MPP( 25, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP25_TSMP5		MPP( 25, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP25_TDM_SPI_SCK	MPP( 25, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP25_GE1_RXD1		MPP( 25, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP25_AU_I2SLRCLK	MPP( 25, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP25_AU_I2SLRCLK	MPP( 25, 0x4, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP25_LCD_D5		MPP( 25, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP26_GPIO		MPP( 26, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP26_TSMP6		MPP( 26, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP26_TDM_SPI_MISO	MPP( 26, 0x2, 1, 0, 0,   0,   1,   1,   1 )
-+#define MPP26_TSMP6		MPP( 26, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP26_TDM_SPI_MISO	MPP( 26, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP26_GE1_RXD2		MPP( 26, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP26_AU_I2SMCLK	MPP( 26, 0x4, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP26_AU_I2SMCLK	MPP( 26, 0x4, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP26_LCD_D6		MPP( 26, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP27_GPIO		MPP( 27, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP27_TSMP7		MPP( 27, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP27_TDM_SPI_MOSI	MPP( 27, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP27_TSMP7		MPP( 27, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP27_TDM_SPI_MOSI	MPP( 27, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP27_GE1_RXD3		MPP( 27, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP27_AU_I2SDI		MPP( 27, 0x4, 1, 0, 0,   0,   1,   1,   1 )
-+#define MPP27_AU_I2SDI		MPP( 27, 0x4, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP27_LCD_D7		MPP( 27, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP28_GPIO		MPP( 28, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP28_TSMP8		MPP( 28, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-+#define MPP28_TSMP8		MPP( 28, 0x1, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP28_TDM_CODEC_INTn	MPP( 28, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP28_GE1_COL		MPP( 28, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP28_AU_EXTCLK		MPP( 28, 0x4, 1, 0, 0,   0,   1,   1,   1 )
-+#define MPP28_AU_EXTCLK		MPP( 28, 0x4, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP28_LCD_D8		MPP( 28, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP29_GPIO		MPP( 29, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP29_TSMP9		MPP( 29, 0x1, 1, 1, 0,   0,   1,   1,   1 )
-+#define MPP29_TSMP9		MPP( 29, 0x1, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP29_TDM_CODEC_RSTn	MPP( 29, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP29_GE1_TCLK		MPP( 29, 0x3, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP29_LCD_D9		MPP( 29, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP30_GPIO		MPP( 30, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP30_TSMP10		MPP( 30, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP30_TDM_PCLK		MPP( 30, 0x2, 1, 1, 0,   0,   1,   1,   1 )
-+#define MPP30_TSMP10		MPP( 30, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP30_TDM_PCLK		MPP( 30, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP30_GE1_RXCTL		MPP( 30, 0x3, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP30_LCD_D10		MPP( 30, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP31_GPIO		MPP( 31, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP31_TSMP11		MPP( 31, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP31_TDM_FS		MPP( 31, 0x2, 1, 1, 0,   0,   1,   1,   1 )
-+#define MPP31_TSMP11		MPP( 31, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP31_TDM_FS		MPP( 31, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP31_GE1_RXCLK		MPP( 31, 0x3, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP31_LCD_D11		MPP( 31, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP32_GPIO		MPP( 32, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP32_TSMP12		MPP( 32, 0x1, 1, 1, 0,   0,   1,   1,   1 )
--#define MPP32_TDM_DRX		MPP( 32, 0x2, 1, 0, 0,   0,   1,   1,   1 )
-+#define MPP32_TSMP12		MPP( 32, 0x1, 0, 0, 0,   0,   1,   1,   1 )
-+#define MPP32_TDM_DRX		MPP( 32, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP32_GE1_TCLKOUT	MPP( 32, 0x3, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP32_LCD_D12		MPP( 32, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP33_GPO		MPP( 33, 0x0, 0, 1, 0,   1,   1,   1,   1 )
--#define MPP33_TDM_DTX		MPP( 33, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP33_TDM_DTX		MPP( 33, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP33_GE1_TXCTL		MPP( 33, 0x3, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP33_LCD_D13		MPP( 33, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP34_GPIO		MPP( 34, 0x0, 1, 1, 0,   1,   1,   1,   1 )
--#define MPP34_TDM_SPI_CS1	MPP( 34, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP34_TDM_SPI_CS1	MPP( 34, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP34_GE1_TXEN		MPP( 34, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP34_SATA1_ACTn	MPP( 34, 0x5, 0, 1, 0,   0,   0,   1,   1 )
-+#define MPP34_SATA1_ACTn	MPP( 34, 0x5, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP34_LCD_D14		MPP( 34, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP35_GPIO		MPP( 35, 0x0, 1, 1, 1,   1,   1,   1,   1 )
--#define MPP35_TDM_CH0_TX_QL	MPP( 35, 0x2, 0, 1, 0,   0,   1,   1,   1 )
-+#define MPP35_TDM_CH0_TX_QL	MPP( 35, 0x2, 0, 0, 0,   0,   1,   1,   1 )
- #define MPP35_GE1_RXERR		MPP( 35, 0x3, 0, 0, 0,   1,   1,   1,   1 )
--#define MPP35_SATA0_ACTn	MPP( 35, 0x5, 0, 1, 0,   1,   1,   1,   1 )
-+#define MPP35_SATA0_ACTn	MPP( 35, 0x5, 0, 0, 0,   1,   1,   1,   1 )
- #define MPP35_LCD_D15		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
--#define MPP35_MII0_RXERR	MPP( 35, 0xc, 1, 0, 1,   1,   1,   1,   1 )
-+#define MPP35_MII0_RXERR	MPP( 35, 0xc, 0, 0, 1,   1,   1,   1,   1 )
- 
- #define MPP36_GPIO		MPP( 36, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP36_TSMP0		MPP( 36, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP36_TDM_SPI_CS1	MPP( 36, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP36_AU_SPDIFI		MPP( 36, 0x4, 1, 0, 1,   0,   0,   1,   1 )
--#define MPP36_TW1_SDA		MPP( 36, 0xb, 1, 1, 0,   0,   0,   0,   1 )
-+#define MPP36_TSMP0		MPP( 36, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP36_TDM_SPI_CS1	MPP( 36, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP36_AU_SPDIFI		MPP( 36, 0x4, 0, 0, 1,   0,   0,   1,   1 )
-+#define MPP36_TW1_SDA		MPP( 36, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP37_GPIO		MPP( 37, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP37_TSMP1		MPP( 37, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP37_TDM_CH2_TX_QL	MPP( 37, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP37_AU_SPDIFO		MPP( 37, 0x4, 0, 1, 1,   0,   0,   1,   1 )
--#define MPP37_TW1_SCK		MPP( 37, 0xb, 1, 1, 0,   0,   0,   0,   1 )
-+#define MPP37_TSMP1		MPP( 37, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP37_TDM_CH2_TX_QL	MPP( 37, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP37_AU_SPDIFO		MPP( 37, 0x4, 0, 0, 1,   0,   0,   1,   1 )
-+#define MPP37_TW1_SCK		MPP( 37, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP38_GPIO		MPP( 38, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP38_TSMP2		MPP( 38, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP38_TDM_CH2_RX_QL	MPP( 38, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP38_AU_SPDIFRMLCLK	MPP( 38, 0x4, 0, 1, 1,   0,   0,   1,   1 )
-+#define MPP38_TSMP2		MPP( 38, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP38_TDM_CH2_RX_QL	MPP( 38, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP38_AU_SPDIFRMLCLK	MPP( 38, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP38_LCD_D18		MPP( 38, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP39_GPIO		MPP( 39, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP39_TSMP3		MPP( 39, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP39_TDM_SPI_CS0	MPP( 39, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP39_AU_I2SBCLK	MPP( 39, 0x4, 0, 1, 1,   0,   0,   1,   1 )
-+#define MPP39_TSMP3		MPP( 39, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP39_TDM_SPI_CS0	MPP( 39, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP39_AU_I2SBCLK	MPP( 39, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP39_LCD_D19		MPP( 39, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP40_GPIO		MPP( 40, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP40_TSMP4		MPP( 40, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP40_TDM_SPI_SCK	MPP( 40, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP40_AU_I2SDO		MPP( 40, 0x4, 0, 1, 1,   0,   0,   1,   1 )
-+#define MPP40_TSMP4		MPP( 40, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP40_TDM_SPI_SCK	MPP( 40, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP40_AU_I2SDO		MPP( 40, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP40_LCD_D20		MPP( 40, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP41_GPIO		MPP( 41, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP41_TSMP5		MPP( 41, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP41_TDM_SPI_MISO	MPP( 41, 0x2, 1, 0, 0,   0,   0,   1,   1 )
--#define MPP41_AU_I2SLRCLK	MPP( 41, 0x4, 0, 1, 1,   0,   0,   1,   1 )
-+#define MPP41_TSMP5		MPP( 41, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP41_TDM_SPI_MISO	MPP( 41, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP41_AU_I2SLRCLK	MPP( 41, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP41_LCD_D21		MPP( 41, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP42_GPIO		MPP( 42, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP42_TSMP6		MPP( 42, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP42_TDM_SPI_MOSI	MPP( 42, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP42_AU_I2SMCLK	MPP( 42, 0x4, 0, 1, 1,   0,   0,   1,   1 )
-+#define MPP42_TSMP6		MPP( 42, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP42_TDM_SPI_MOSI	MPP( 42, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP42_AU_I2SMCLK	MPP( 42, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP42_LCD_D22		MPP( 42, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP43_GPIO		MPP( 43, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP43_TSMP7		MPP( 43, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-+#define MPP43_TSMP7		MPP( 43, 0x1, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP43_TDM_CODEC_INTn	MPP( 43, 0x2, 0, 0, 0,   0,   0,   1,   1 )
--#define MPP43_AU_I2SDI		MPP( 43, 0x4, 1, 0, 1,   0,   0,   1,   1 )
-+#define MPP43_AU_I2SDI		MPP( 43, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP43_LCD_D23		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP44_GPIO		MPP( 44, 0x0, 1, 1, 1,   0,   0,   1,   1 )
--#define MPP44_TSMP8		MPP( 44, 0x1, 1, 1, 0,   0,   0,   1,   1 )
-+#define MPP44_TSMP8		MPP( 44, 0x1, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP44_TDM_CODEC_RSTn	MPP( 44, 0x2, 0, 0, 0,   0,   0,   1,   1 )
--#define MPP44_AU_EXTCLK		MPP( 44, 0x4, 1, 0, 1,   0,   0,   1,   1 )
-+#define MPP44_AU_EXTCLK		MPP( 44, 0x4, 0, 0, 1,   0,   0,   1,   1 )
- #define MPP44_LCD_CLK		MPP( 44, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP45_GPIO		MPP( 45, 0x0, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP45_TSMP9		MPP( 45, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP45_TDM_PCLK		MPP( 45, 0x2, 1, 1, 0,   0,   0,   1,   1 )
-+#define MPP45_TSMP9		MPP( 45, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP45_TDM_PCLK		MPP( 45, 0x2, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP245_LCD_E		MPP( 45, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP46_GPIO		MPP( 46, 0x0, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP46_TSMP10		MPP( 46, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP46_TDM_FS		MPP( 46, 0x2, 1, 1, 0,   0,   0,   1,   1 )
-+#define MPP46_TSMP10		MPP( 46, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP46_TDM_FS		MPP( 46, 0x2, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP46_LCD_HSYNC		MPP( 46, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP47_GPIO		MPP( 47, 0x0, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP47_TSMP11		MPP( 47, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP47_TDM_DRX		MPP( 47, 0x2, 1, 0, 0,   0,   0,   1,   1 )
-+#define MPP47_TSMP11		MPP( 47, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP47_TDM_DRX		MPP( 47, 0x2, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP47_LCD_VSYNC		MPP( 47, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP48_GPIO		MPP( 48, 0x0, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP48_TSMP12		MPP( 48, 0x1, 1, 1, 0,   0,   0,   1,   1 )
--#define MPP48_TDM_DTX		MPP( 48, 0x2, 0, 1, 0,   0,   0,   1,   1 )
-+#define MPP48_TSMP12		MPP( 48, 0x1, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP48_TDM_DTX		MPP( 48, 0x2, 0, 0, 0,   0,   0,   1,   1 )
- #define MPP48_LCD_D16		MPP( 22, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP49_GPIO		MPP( 49, 0x0, 1, 1, 0,   0,   0,   1,   0 )
- #define MPP49_GPO		MPP( 49, 0x0, 0, 1, 0,   0,   0,   0,   1 )
--#define MPP49_TSMP9		MPP( 49, 0x1, 1, 1, 0,   0,   0,   1,   0 )
--#define MPP49_TDM_CH0_RX_QL	MPP( 49, 0x2, 0, 1, 0,   0,   0,   1,   1 )
--#define MPP49_PTP_CLK		MPP( 49, 0x5, 1, 0, 0,   0,   0,   1,   0 )
--#define MPP49_PEX0_CLKREQ	MPP( 49, 0xa, 0, 1, 0,   0,   0,   0,   1 )
-+#define MPP49_TSMP9		MPP( 49, 0x1, 0, 0, 0,   0,   0,   1,   0 )
-+#define MPP49_TDM_CH0_RX_QL	MPP( 49, 0x2, 0, 0, 0,   0,   0,   1,   1 )
-+#define MPP49_PTP_CLK		MPP( 49, 0x5, 0, 0, 0,   0,   0,   1,   0 )
-+#define MPP49_PEX0_CLKREQ	MPP( 49, 0xa, 0, 0, 0,   0,   0,   0,   1 )
- #define MPP49_LCD_D17		MPP( 49, 0xb, 0, 0, 0,   0,   0,   0,   1 )
- 
- #define MPP_MAX			49
-diff --git a/arch/arm/mach-mv78xx0/mpp.h b/arch/arm/mach-mv78xx0/mpp.h
-index b61b509..3752302 100644
---- a/arch/arm/mach-mv78xx0/mpp.h
-+++ b/arch/arm/mach-mv78xx0/mpp.h
-@@ -24,296 +24,296 @@
- #define MPP_78100_A0_MASK    MPP(0, 0x0, 0, 0, 1)
- 
- #define MPP0_GPIO        MPP(0, 0x0, 1, 1, 1)
--#define MPP0_GE0_COL        MPP(0, 0x1, 1, 0, 1)
--#define MPP0_GE1_TXCLK        MPP(0, 0x2, 0, 1, 1)
-+#define MPP0_GE0_COL        MPP(0, 0x1, 0, 0, 1)
-+#define MPP0_GE1_TXCLK        MPP(0, 0x2, 0, 0, 1)
- #define MPP0_UNUSED        MPP(0, 0x3, 0, 0, 1)
- 
- #define MPP1_GPIO        MPP(1, 0x0, 1, 1, 1)
--#define MPP1_GE0_RXERR        MPP(1, 0x1, 1, 0, 1)
--#define MPP1_GE1_TXCTL        MPP(1, 0x2, 0, 1, 1)
-+#define MPP1_GE0_RXERR        MPP(1, 0x1, 0, 0, 1)
-+#define MPP1_GE1_TXCTL        MPP(1, 0x2, 0, 0, 1)
- #define MPP1_UNUSED        MPP(1, 0x3, 0, 0, 1)
- 
- #define MPP2_GPIO        MPP(2, 0x0, 1, 1, 1)
--#define MPP2_GE0_CRS        MPP(2, 0x1, 1, 0, 1)
--#define MPP2_GE1_RXCTL        MPP(2, 0x2, 1, 0, 1)
-+#define MPP2_GE0_CRS        MPP(2, 0x1, 0, 0, 1)
-+#define MPP2_GE1_RXCTL        MPP(2, 0x2, 0, 0, 1)
- #define MPP2_UNUSED        MPP(2, 0x3, 0, 0, 1)
- 
- #define MPP3_GPIO        MPP(3, 0x0, 1, 1, 1)
--#define MPP3_GE0_TXERR        MPP(3, 0x1, 0, 1, 1)
--#define MPP3_GE1_RXCLK        MPP(3, 0x2, 1, 0, 1)
-+#define MPP3_GE0_TXERR        MPP(3, 0x1, 0, 0, 1)
-+#define MPP3_GE1_RXCLK        MPP(3, 0x2, 0, 0, 1)
- #define MPP3_UNUSED        MPP(3, 0x3, 0, 0, 1)
- 
- #define MPP4_GPIO        MPP(4, 0x0, 1, 1, 1)
--#define MPP4_GE0_TXD4        MPP(4, 0x1, 0, 1, 1)
--#define MPP4_GE1_TXD0        MPP(4, 0x2, 0, 1, 1)
-+#define MPP4_GE0_TXD4        MPP(4, 0x1, 0, 0, 1)
-+#define MPP4_GE1_TXD0        MPP(4, 0x2, 0, 0, 1)
- #define MPP4_UNUSED        MPP(4, 0x3, 0, 0, 1)
- 
- #define MPP5_GPIO        MPP(5, 0x0, 1, 1, 1)
--#define MPP5_GE0_TXD5        MPP(5, 0x1, 0, 1, 1)
--#define MPP5_GE1_TXD1        MPP(5, 0x2, 0, 1, 1)
-+#define MPP5_GE0_TXD5        MPP(5, 0x1, 0, 0, 1)
-+#define MPP5_GE1_TXD1        MPP(5, 0x2, 0, 0, 1)
- #define MPP5_UNUSED        MPP(5, 0x3, 0, 0, 1)
- 
- #define MPP6_GPIO        MPP(6, 0x0, 1, 1, 1)
--#define MPP6_GE0_TXD6        MPP(6, 0x1, 0, 1, 1)
--#define MPP6_GE1_TXD2        MPP(6, 0x2, 0, 1, 1)
-+#define MPP6_GE0_TXD6        MPP(6, 0x1, 0, 0, 1)
-+#define MPP6_GE1_TXD2        MPP(6, 0x2, 0, 0, 1)
- #define MPP6_UNUSED        MPP(6, 0x3, 0, 0, 1)
- 
- #define MPP7_GPIO        MPP(7, 0x0, 1, 1, 1)
--#define MPP7_GE0_TXD7        MPP(7, 0x1, 0, 1, 1)
--#define MPP7_GE1_TXD3        MPP(7, 0x2, 0, 1, 1)
-+#define MPP7_GE0_TXD7        MPP(7, 0x1, 0, 0, 1)
-+#define MPP7_GE1_TXD3        MPP(7, 0x2, 0, 0, 1)
- #define MPP7_UNUSED        MPP(7, 0x3, 0, 0, 1)
- 
- #define MPP8_GPIO        MPP(8, 0x0, 1, 1, 1)
--#define MPP8_GE0_RXD4        MPP(8, 0x1, 1, 0, 1)
--#define MPP8_GE1_RXD0        MPP(8, 0x2, 1, 0, 1)
-+#define MPP8_GE0_RXD4        MPP(8, 0x1, 0, 0, 1)
-+#define MPP8_GE1_RXD0        MPP(8, 0x2, 0, 0, 1)
- #define MPP8_UNUSED        MPP(8, 0x3, 0, 0, 1)
- 
- #define MPP9_GPIO        MPP(9, 0x0, 1, 1, 1)
--#define MPP9_GE0_RXD5        MPP(9, 0x1, 1, 0, 1)
--#define MPP9_GE1_RXD1        MPP(9, 0x2, 1, 0, 1)
-+#define MPP9_GE0_RXD5        MPP(9, 0x1, 0, 0, 1)
-+#define MPP9_GE1_RXD1        MPP(9, 0x2, 0, 0, 1)
- #define MPP9_UNUSED        MPP(9, 0x3, 0, 0, 1)
- 
- #define MPP10_GPIO        MPP(10, 0x0, 1, 1, 1)
--#define MPP10_GE0_RXD6        MPP(10, 0x1, 1, 0, 1)
--#define MPP10_GE1_RXD2        MPP(10, 0x2, 1, 0, 1)
-+#define MPP10_GE0_RXD6        MPP(10, 0x1, 0, 0, 1)
-+#define MPP10_GE1_RXD2        MPP(10, 0x2, 0, 0, 1)
- #define MPP10_UNUSED        MPP(10, 0x3, 0, 0, 1)
- 
- #define MPP11_GPIO        MPP(11, 0x0, 1, 1, 1)
--#define MPP11_GE0_RXD7        MPP(11, 0x1, 1, 0, 1)
--#define MPP11_GE1_RXD3        MPP(11, 0x2, 1, 0, 1)
-+#define MPP11_GE0_RXD7        MPP(11, 0x1, 0, 0, 1)
-+#define MPP11_GE1_RXD3        MPP(11, 0x2, 0, 0, 1)
- #define MPP11_UNUSED        MPP(11, 0x3, 0, 0, 1)
- 
- #define MPP12_GPIO        MPP(12, 0x0, 1, 1, 1)
--#define MPP12_M_BB        MPP(12, 0x3, 1, 0, 1)
--#define MPP12_UA0_CTSn        MPP(12, 0x4, 1, 0, 1)
--#define MPP12_NAND_FLASH_REn0    MPP(12, 0x5, 0, 1, 1)
--#define MPP12_TDM0_SCSn        MPP(12, 0X6, 0, 1, 1)
-+#define MPP12_M_BB        MPP(12, 0x3, 0, 0, 1)
-+#define MPP12_UA0_CTSn        MPP(12, 0x4, 0, 0, 1)
-+#define MPP12_NAND_FLASH_REn0    MPP(12, 0x5, 0, 0, 1)
-+#define MPP12_TDM0_SCSn        MPP(12, 0X6, 0, 0, 1)
- #define MPP12_UNUSED        MPP(12, 0x1, 0, 0, 1)
- 
- #define MPP13_GPIO        MPP(13, 0x0, 1, 1, 1)
--#define MPP13_SYSRST_OUTn    MPP(13, 0x3, 0, 1, 1)
--#define MPP13_UA0_RTSn        MPP(13, 0x4, 0, 1, 1)
--#define MPP13_NAN_FLASH_WEn0    MPP(13, 0x5, 0, 1, 1)
--#define MPP13_TDM_SCLK        MPP(13, 0x6, 0, 1, 1)
-+#define MPP13_SYSRST_OUTn    MPP(13, 0x3, 0, 0, 1)
-+#define MPP13_UA0_RTSn        MPP(13, 0x4, 0, 0, 1)
-+#define MPP13_NAN_FLASH_WEn0    MPP(13, 0x5, 0, 0, 1)
-+#define MPP13_TDM_SCLK        MPP(13, 0x6, 0, 0, 1)
- #define MPP13_UNUSED        MPP(13, 0x1, 0, 0, 1)
- 
- #define MPP14_GPIO        MPP(14, 0x0, 1, 1, 1)
--#define MPP14_SATA1_ACTn    MPP(14, 0x3, 0, 1, 1)
--#define MPP14_UA1_CTSn        MPP(14, 0x4, 1, 0, 1)
--#define MPP14_NAND_FLASH_REn1    MPP(14, 0x5, 0, 1, 1)
--#define MPP14_TDM_SMOSI        MPP(14, 0x6, 0, 1, 1)
-+#define MPP14_SATA1_ACTn    MPP(14, 0x3, 0, 0, 1)
-+#define MPP14_UA1_CTSn        MPP(14, 0x4, 0, 0, 1)
-+#define MPP14_NAND_FLASH_REn1    MPP(14, 0x5, 0, 0, 1)
-+#define MPP14_TDM_SMOSI        MPP(14, 0x6, 0, 0, 1)
- #define MPP14_UNUSED        MPP(14, 0x1, 0, 0, 1)
- 
- #define MPP15_GPIO        MPP(15, 0x0, 1, 1, 1)
--#define MPP15_SATA0_ACTn    MPP(15, 0x3, 0, 1, 1)
--#define MPP15_UA1_RTSn        MPP(15, 0x4, 0, 1, 1)
--#define MPP15_NAND_FLASH_WEn1    MPP(15, 0x5, 0, 1, 1)
--#define MPP15_TDM_SMISO        MPP(15, 0x6, 1, 0, 1)
-+#define MPP15_SATA0_ACTn    MPP(15, 0x3, 0, 0, 1)
-+#define MPP15_UA1_RTSn        MPP(15, 0x4, 0, 0, 1)
-+#define MPP15_NAND_FLASH_WEn1    MPP(15, 0x5, 0, 0, 1)
-+#define MPP15_TDM_SMISO        MPP(15, 0x6, 0, 0, 1)
- #define MPP15_UNUSED        MPP(15, 0x1, 0, 0, 1)
- 
- #define MPP16_GPIO        MPP(16, 0x0, 1, 1, 1)
--#define MPP16_SATA1_PRESENTn    MPP(16, 0x3, 0, 1, 1)
--#define MPP16_UA2_TXD        MPP(16, 0x4, 0, 1, 1)
--#define MPP16_NAND_FLASH_REn3    MPP(16, 0x5, 0, 1, 1)
--#define MPP16_TDM_INTn        MPP(16, 0x6, 1, 0, 1)
-+#define MPP16_SATA1_PRESENTn    MPP(16, 0x3, 0, 0, 1)
-+#define MPP16_UA2_TXD        MPP(16, 0x4, 0, 0, 1)
-+#define MPP16_NAND_FLASH_REn3    MPP(16, 0x5, 0, 0, 1)
-+#define MPP16_TDM_INTn        MPP(16, 0x6, 0, 0, 1)
- #define MPP16_UNUSED        MPP(16, 0x1, 0, 0, 1)
- 
- 
- #define MPP17_GPIO        MPP(17, 0x0, 1, 1, 1)
--#define MPP17_SATA0_PRESENTn    MPP(17, 0x3, 0, 1, 1)
--#define MPP17_UA2_RXD        MPP(17, 0x4, 1, 0, 1)
--#define MPP17_NAND_FLASH_WEn3    MPP(17, 0x5, 0, 1, 1)
--#define MPP17_TDM_RSTn        MPP(17, 0x6, 0, 1, 1)
-+#define MPP17_SATA0_PRESENTn    MPP(17, 0x3, 0, 0, 1)
-+#define MPP17_UA2_RXD        MPP(17, 0x4, 0, 0, 1)
-+#define MPP17_NAND_FLASH_WEn3    MPP(17, 0x5, 0, 0, 1)
-+#define MPP17_TDM_RSTn        MPP(17, 0x6, 0, 0, 1)
- #define MPP17_UNUSED        MPP(17, 0x1, 0, 0, 1)
- 
- 
- #define MPP18_GPIO        MPP(18, 0x0, 1, 1, 1)
--#define MPP18_UA0_CTSn        MPP(18, 0x4, 1, 0, 1)
--#define MPP18_BOOT_FLASH_REn    MPP(18, 0x5, 0, 1, 1)
-+#define MPP18_UA0_CTSn        MPP(18, 0x4, 0, 0, 1)
-+#define MPP18_BOOT_FLASH_REn    MPP(18, 0x5, 0, 0, 1)
- #define MPP18_UNUSED        MPP(18, 0x1, 0, 0, 1)
- 
- 
- 
- #define MPP19_GPIO        MPP(19, 0x0, 1, 1, 1)
--#define MPP19_UA0_CTSn        MPP(19, 0x4, 0, 1, 1)
--#define MPP19_BOOT_FLASH_WEn    MPP(19, 0x5, 0, 1, 1)
-+#define MPP19_UA0_CTSn        MPP(19, 0x4, 0, 0, 1)
-+#define MPP19_BOOT_FLASH_WEn    MPP(19, 0x5, 0, 0, 1)
- #define MPP19_UNUSED        MPP(19, 0x1, 0, 0, 1)
- 
- 
- #define MPP20_GPIO        MPP(20, 0x0, 1, 1, 1)
--#define MPP20_UA1_CTSs        MPP(20, 0x4, 1, 0, 1)
--#define MPP20_TDM_PCLK        MPP(20, 0x6, 1, 1, 0)
-+#define MPP20_UA1_CTSs        MPP(20, 0x4, 0, 0, 1)
-+#define MPP20_TDM_PCLK        MPP(20, 0x6, 0, 0, 0)
- #define MPP20_UNUSED        MPP(20, 0x1, 0, 0, 1)
- 
- 
- 
- #define MPP21_GPIO        MPP(21, 0x0, 1, 1, 1)
--#define MPP21_UA1_CTSs        MPP(21, 0x4, 0, 1, 1)
--#define MPP21_TDM_FSYNC        MPP(21, 0x6, 1, 1, 0)
-+#define MPP21_UA1_CTSs        MPP(21, 0x4, 0, 0, 1)
-+#define MPP21_TDM_FSYNC        MPP(21, 0x6, 0, 0, 0)
- #define MPP21_UNUSED        MPP(21, 0x1, 0, 0, 1)
- 
- 
- 
- #define MPP22_GPIO        MPP(22, 0x0, 1, 1, 1)
--#define MPP22_UA3_TDX        MPP(22, 0x4, 0, 1, 1)
--#define MPP22_NAND_FLASH_REn2    MPP(22, 0x5, 0, 1, 1)
--#define MPP22_TDM_DRX        MPP(22, 0x6, 1, 0, 1)
-+#define MPP22_UA3_TDX        MPP(22, 0x4, 0, 0, 1)
-+#define MPP22_NAND_FLASH_REn2    MPP(22, 0x5, 0, 0, 1)
-+#define MPP22_TDM_DRX        MPP(22, 0x6, 0, 0, 1)
- #define MPP22_UNUSED        MPP(22, 0x1, 0, 0, 1)
- 
- 
- 
- #define MPP23_GPIO        MPP(23, 0x0, 1, 1, 1)
--#define MPP23_UA3_RDX        MPP(23, 0x4, 1, 0, 1)
--#define MPP23_NAND_FLASH_WEn2    MPP(23, 0x5, 0, 1, 1)
--#define MPP23_TDM_DTX        MPP(23, 0x6, 0, 1, 1)
-+#define MPP23_UA3_RDX        MPP(23, 0x4, 0, 0, 1)
-+#define MPP23_NAND_FLASH_WEn2    MPP(23, 0x5, 0, 0, 1)
-+#define MPP23_TDM_DTX        MPP(23, 0x6, 0, 0, 1)
- #define MPP23_UNUSED        MPP(23, 0x1, 0, 0, 1)
- 
- 
- #define MPP24_GPIO        MPP(24, 0x0, 1, 1, 1)
--#define MPP24_UA2_TXD        MPP(24, 0x4, 0, 1, 1)
--#define MPP24_TDM_INTn        MPP(24, 0x6, 1, 0, 1)
-+#define MPP24_UA2_TXD        MPP(24, 0x4, 0, 0, 1)
-+#define MPP24_TDM_INTn        MPP(24, 0x6, 0, 0, 1)
- #define MPP24_UNUSED        MPP(24, 0x1, 0, 0, 1)
- 
- 
- #define MPP25_GPIO        MPP(25, 0x0, 1, 1, 1)
--#define MPP25_UA2_RXD        MPP(25, 0x4, 1, 0, 1)
--#define MPP25_TDM_RSTn        MPP(25, 0x6, 0, 1, 1)
-+#define MPP25_UA2_RXD        MPP(25, 0x4, 0, 0, 1)
-+#define MPP25_TDM_RSTn        MPP(25, 0x6, 0, 0, 1)
- #define MPP25_UNUSED        MPP(25, 0x1, 0, 0, 1)
- 
- 
- #define MPP26_GPIO        MPP(26, 0x0, 1, 1, 1)
--#define MPP26_UA2_CTSn        MPP(26, 0x4, 1, 0, 1)
--#define MPP26_TDM_PCLK        MPP(26, 0x6, 1, 1, 1)
-+#define MPP26_UA2_CTSn        MPP(26, 0x4, 0, 0, 1)
-+#define MPP26_TDM_PCLK        MPP(26, 0x6, 0, 0, 1)
- #define MPP26_UNUSED        MPP(26, 0x1, 0, 0, 1)
- 
- 
- #define MPP27_GPIO        MPP(27, 0x0, 1, 1, 1)
--#define MPP27_UA2_RTSn        MPP(27, 0x4, 0, 1, 1)
--#define MPP27_TDM_FSYNC        MPP(27, 0x6, 1, 1, 1)
-+#define MPP27_UA2_RTSn        MPP(27, 0x4, 0, 0, 1)
-+#define MPP27_TDM_FSYNC        MPP(27, 0x6, 0, 0, 1)
- #define MPP27_UNUSED        MPP(27, 0x1, 0, 0, 1)
- 
- 
- #define MPP28_GPIO        MPP(28, 0x0, 1, 1, 1)
--#define MPP28_UA3_TXD        MPP(28, 0x4, 0, 1, 1)
--#define MPP28_TDM_DRX        MPP(28, 0x6, 1, 0, 1)
-+#define MPP28_UA3_TXD        MPP(28, 0x4, 0, 0, 1)
-+#define MPP28_TDM_DRX        MPP(28, 0x6, 0, 0, 1)
- #define MPP28_UNUSED        MPP(28, 0x1, 0, 0, 1)
- 
- #define MPP29_GPIO        MPP(29, 0x0, 1, 1, 1)
--#define MPP29_UA3_RXD        MPP(29, 0x4, 1, 0, 1)
--#define MPP29_SYSRST_OUTn    MPP(29, 0x5, 0, 1, 1)
--#define MPP29_TDM_DTX        MPP(29, 0x6, 0, 1, 1)
-+#define MPP29_UA3_RXD        MPP(29, 0x4, 0, 0, 1)
-+#define MPP29_SYSRST_OUTn    MPP(29, 0x5, 0, 0, 1)
-+#define MPP29_TDM_DTX        MPP(29, 0x6, 0, 0, 1)
- #define MPP29_UNUSED        MPP(29, 0x1, 0, 0, 1)
- 
- #define MPP30_GPIO        MPP(30, 0x0, 1, 1, 1)
--#define MPP30_UA3_CTSn        MPP(30, 0x4, 1, 0, 1)
-+#define MPP30_UA3_CTSn        MPP(30, 0x4, 0, 0, 1)
- #define MPP30_UNUSED        MPP(30, 0x1, 0, 0, 1)
- 
- #define MPP31_GPIO        MPP(31, 0x0, 1, 1, 1)
--#define MPP31_UA3_RTSn        MPP(31, 0x4, 0, 1, 1)
--#define MPP31_TDM1_SCSn        MPP(31, 0x6, 0, 1, 1)
-+#define MPP31_UA3_RTSn        MPP(31, 0x4, 0, 0, 1)
-+#define MPP31_TDM1_SCSn        MPP(31, 0x6, 0, 0, 1)
- #define MPP31_UNUSED        MPP(31, 0x1, 0, 0, 1)
- 
- 
- #define MPP32_GPIO        MPP(32, 0x1, 1, 1, 1)
--#define MPP32_UA3_TDX        MPP(32, 0x4, 0, 1, 1)
--#define MPP32_SYSRST_OUTn    MPP(32, 0x5, 0, 1, 1)
--#define MPP32_TDM0_RXQ        MPP(32, 0x6, 0, 1, 1)
-+#define MPP32_UA3_TDX        MPP(32, 0x4, 0, 0, 1)
-+#define MPP32_SYSRST_OUTn    MPP(32, 0x5, 0, 0, 1)
-+#define MPP32_TDM0_RXQ        MPP(32, 0x6, 0, 0, 1)
- #define MPP32_UNUSED        MPP(32, 0x3, 0, 0, 1)
- 
- 
- #define MPP33_GPIO        MPP(33, 0x1, 1, 1, 1)
--#define MPP33_UA3_RDX        MPP(33, 0x4, 1, 0, 1)
--#define MPP33_TDM0_TXQ        MPP(33, 0x6, 0, 1, 1)
-+#define MPP33_UA3_RDX        MPP(33, 0x4, 0, 0, 1)
-+#define MPP33_TDM0_TXQ        MPP(33, 0x6, 0, 0, 1)
- #define MPP33_UNUSED        MPP(33, 0x3, 0, 0, 1)
- 
- 
- 
- #define MPP34_GPIO        MPP(34, 0x1, 1, 1, 1)
--#define MPP34_UA2_TDX        MPP(34, 0x4, 0, 1, 1)
--#define MPP34_TDM1_RXQ        MPP(34, 0x6, 0, 1, 1)
-+#define MPP34_UA2_TDX        MPP(34, 0x4, 0, 0, 1)
-+#define MPP34_TDM1_RXQ        MPP(34, 0x6, 0, 0, 1)
- #define MPP34_UNUSED        MPP(34, 0x3, 0, 0, 1)
- 
- 
- 
- #define MPP35_GPIO        MPP(35, 0x1, 1, 1, 1)
--#define MPP35_UA2_RDX        MPP(35, 0x4, 1, 0, 1)
--#define MPP35_TDM1_TXQ        MPP(35, 0x6, 0, 1, 1)
-+#define MPP35_UA2_RDX        MPP(35, 0x4, 0, 0, 1)
-+#define MPP35_TDM1_TXQ        MPP(35, 0x6, 0, 0, 1)
- #define MPP35_UNUSED        MPP(35, 0x3, 0, 0, 1)
- 
- #define MPP36_GPIO        MPP(36, 0x1, 1, 1, 1)
--#define MPP36_UA0_CTSn        MPP(36, 0x2, 1, 0, 1)
--#define MPP36_UA2_TDX        MPP(36, 0x4, 0, 1, 1)
--#define MPP36_TDM0_SCSn        MPP(36, 0x6, 0, 1, 1)
-+#define MPP36_UA0_CTSn        MPP(36, 0x2, 0, 0, 1)
-+#define MPP36_UA2_TDX        MPP(36, 0x4, 0, 0, 1)
-+#define MPP36_TDM0_SCSn        MPP(36, 0x6, 0, 0, 1)
- #define MPP36_UNUSED        MPP(36, 0x3, 0, 0, 1)
- 
- 
- #define MPP37_GPIO        MPP(37, 0x1, 1, 1, 1)
--#define MPP37_UA0_RTSn        MPP(37, 0x2, 0, 1, 1)
--#define MPP37_UA2_RXD        MPP(37, 0x4, 1, 0, 1)
--#define MPP37_SYSRST_OUTn    MPP(37, 0x5, 0, 1, 1)
--#define MPP37_TDM_SCLK        MPP(37, 0x6, 0, 1, 1)
-+#define MPP37_UA0_RTSn        MPP(37, 0x2, 0, 0, 1)
-+#define MPP37_UA2_RXD        MPP(37, 0x4, 0, 0, 1)
-+#define MPP37_SYSRST_OUTn    MPP(37, 0x5, 0, 0, 1)
-+#define MPP37_TDM_SCLK        MPP(37, 0x6, 0, 0, 1)
- #define MPP37_UNUSED        MPP(37, 0x3, 0, 0, 1)
- 
- 
- 
- 
- #define MPP38_GPIO        MPP(38, 0x1, 1, 1, 1)
--#define MPP38_UA1_CTSn        MPP(38, 0x2, 1, 0, 1)
--#define MPP38_UA3_TXD        MPP(38, 0x4, 0, 1, 1)
--#define MPP38_SYSRST_OUTn    MPP(38, 0x5, 0, 1, 1)
--#define MPP38_TDM_SMOSI        MPP(38, 0x6, 0, 1, 1)
-+#define MPP38_UA1_CTSn        MPP(38, 0x2, 0, 0, 1)
-+#define MPP38_UA3_TXD        MPP(38, 0x4, 0, 0, 1)
-+#define MPP38_SYSRST_OUTn    MPP(38, 0x5, 0, 0, 1)
-+#define MPP38_TDM_SMOSI        MPP(38, 0x6, 0, 0, 1)
- #define MPP38_UNUSED        MPP(38, 0x3, 0, 0, 1)
- 
- 
- 
- 
- #define MPP39_GPIO        MPP(39, 0x1, 1, 1, 1)
--#define MPP39_UA1_RTSn        MPP(39, 0x2, 0, 1, 1)
--#define MPP39_UA3_RXD        MPP(39, 0x4, 1, 0, 1)
--#define MPP39_SYSRST_OUTn    MPP(39, 0x5, 0, 1, 1)
--#define MPP39_TDM_SMISO        MPP(39, 0x6, 1, 0, 1)
-+#define MPP39_UA1_RTSn        MPP(39, 0x2, 0, 0, 1)
-+#define MPP39_UA3_RXD        MPP(39, 0x4, 0, 0, 1)
-+#define MPP39_SYSRST_OUTn    MPP(39, 0x5, 0, 0, 1)
-+#define MPP39_TDM_SMISO        MPP(39, 0x6, 0, 0, 1)
- #define MPP39_UNUSED        MPP(39, 0x3, 0, 0, 1)
- 
- 
- 
- #define MPP40_GPIO        MPP(40, 0x1, 1, 1, 1)
--#define MPP40_TDM_INTn        MPP(40, 0x6, 1, 0, 1)
-+#define MPP40_TDM_INTn        MPP(40, 0x6, 0, 0, 1)
- #define MPP40_UNUSED        MPP(40, 0x0, 0, 0, 1)
- 
- 
- 
- #define MPP41_GPIO        MPP(41, 0x1, 1, 1, 1)
--#define MPP41_TDM_RSTn        MPP(41, 0x6, 0, 1, 1)
-+#define MPP41_TDM_RSTn        MPP(41, 0x6, 0, 0, 1)
- #define MPP41_UNUSED        MPP(41, 0x0, 0, 0, 1)
- 
- 
- 
- #define MPP42_GPIO        MPP(42, 0x1, 1, 1, 1)
--#define MPP42_TDM_PCLK        MPP(42, 0x6, 1, 1, 1)
-+#define MPP42_TDM_PCLK        MPP(42, 0x6, 0, 0, 1)
- #define MPP42_UNUSED        MPP(42, 0x0, 0, 0, 1)
- 
- 
- 
- #define MPP43_GPIO        MPP(43, 0x1, 1, 1, 1)
--#define MPP43_TDM_FSYNC        MPP(43, 0x6, 1, 1, 1)
-+#define MPP43_TDM_FSYNC        MPP(43, 0x6, 0, 0, 1)
- #define MPP43_UNUSED        MPP(43, 0x0, 0, 0, 1)
- 
- 
- 
- #define MPP44_GPIO        MPP(44, 0x1, 1, 1, 1)
--#define MPP44_TDM_DRX        MPP(44, 0x6, 1, 0, 1)
-+#define MPP44_TDM_DRX        MPP(44, 0x6, 0, 0, 1)
- #define MPP44_UNUSED        MPP(44, 0x0, 0, 0, 1)
- 
- 
- 
- #define MPP45_GPIO        MPP(45, 0x1, 1, 1, 1)
--#define MPP45_SATA0_ACTn    MPP(45, 0x3, 0, 1, 1)
--#define MPP45_TDM_DRX        MPP(45, 0x6, 0, 1, 1)
-+#define MPP45_SATA0_ACTn    MPP(45, 0x3, 0, 0, 1)
-+#define MPP45_TDM_DRX        MPP(45, 0x6, 0, 0, 1)
- #define MPP45_UNUSED        MPP(45, 0x0, 0, 0, 1)
- 
- 
- #define MPP46_GPIO        MPP(46, 0x1, 1, 1, 1)
--#define MPP46_TDM_SCSn        MPP(46, 0x6, 0, 1, 1)
-+#define MPP46_TDM_SCSn        MPP(46, 0x6, 0, 0, 1)
- #define MPP46_UNUSED        MPP(46, 0x0, 0, 0, 1)
- 
- 
-@@ -323,14 +323,14 @@
- 
- 
- #define MPP48_GPIO        MPP(48, 0x1, 1, 1, 1)
--#define MPP48_SATA1_ACTn    MPP(48, 0x3, 0, 1, 1)
-+#define MPP48_SATA1_ACTn    MPP(48, 0x3, 0, 0, 1)
- #define MPP48_UNUSED        MPP(48, 0x2, 0, 0, 1)
- 
- 
- 
- #define MPP49_GPIO        MPP(49, 0x1, 1, 1, 1)
--#define MPP49_SATA0_ACTn    MPP(49, 0x3, 0, 1, 1)
--#define MPP49_M_BB        MPP(49, 0x4, 1, 0, 1)
-+#define MPP49_SATA0_ACTn    MPP(49, 0x3, 0, 0, 1)
-+#define MPP49_M_BB        MPP(49, 0x4, 0, 0, 1)
- #define MPP49_UNUSED        MPP(49, 0x2, 0, 0, 1)
- 
- 
-diff --git a/arch/arm/plat-orion/mpp.c b/arch/arm/plat-orion/mpp.c
-index 9155343..3b1e17b 100644
---- a/arch/arm/plat-orion/mpp.c
-+++ b/arch/arm/plat-orion/mpp.c
-@@ -64,8 +64,7 @@ void __init orion_mpp_conf(unsigned int *mpp_list, unsigned int variant_mask,
- 			gpio_mode |= GPIO_INPUT_OK;
- 		if (*mpp_list & MPP_OUTPUT_MASK)
- 			gpio_mode |= GPIO_OUTPUT_OK;
--		if (sel != 0)
--			gpio_mode = 0;
-+
- 		orion_gpio_set_valid(num, gpio_mode);
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0058-OMAP-4430SDP-Panda-use-gpio_free_array-to-free-HDMI-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0058-OMAP-4430SDP-Panda-use-gpio_free_array-to-free-HDMI-.patch
deleted file mode 100644
index 8d618fa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0058-OMAP-4430SDP-Panda-use-gpio_free_array-to-free-HDMI-.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c5d0ae10543e28dccdee30ee8b10547c75b78f87 Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Date: Tue, 17 Jan 2012 11:04:53 +0200
-Subject: [PATCH 58/95] OMAP: 4430SDP/Panda: use gpio_free_array to free HDMI
- gpios
-
-commit 575753e3bea3b67eef8e454fb87f719e3f7da599 upstream.
-
-Instead of freeing the GPIOs individually, use gpio_free_array().
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Acked-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/board-4430sdp.c    |    3 +--
- arch/arm/mach-omap2/board-omap4panda.c |    3 +--
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
-index e8ff4cf..4996323 100644
---- a/arch/arm/mach-omap2/board-4430sdp.c
-+++ b/arch/arm/mach-omap2/board-4430sdp.c
-@@ -635,8 +635,7 @@ static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
- 
- static void sdp4430_panel_disable_hdmi(struct omap_dss_device *dssdev)
- {
--	gpio_free(HDMI_GPIO_LS_OE);
--	gpio_free(HDMI_GPIO_HPD);
-+	gpio_free_array(sdp4430_hdmi_gpios, ARRAY_SIZE(sdp4430_hdmi_gpios));
- }
- 
- static struct nokia_dsi_panel_data dsi1_panel = {
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index ea45f58..ac9a8a9 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -446,8 +446,7 @@ static int omap4_panda_panel_enable_hdmi(struct omap_dss_device *dssdev)
- 
- static void omap4_panda_panel_disable_hdmi(struct omap_dss_device *dssdev)
- {
--	gpio_free(HDMI_GPIO_LS_OE);
--	gpio_free(HDMI_GPIO_HPD);
-+	gpio_free_array(panda_hdmi_gpios, ARRAY_SIZE(panda_hdmi_gpios));
- }
- 
- static struct omap_dss_device  omap4_panda_hdmi_device = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0059-OMAP-4430SDP-Panda-rename-HPD-GPIO-to-CT_CP_HPD.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0059-OMAP-4430SDP-Panda-rename-HPD-GPIO-to-CT_CP_HPD.patch
deleted file mode 100644
index a0e9813..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0059-OMAP-4430SDP-Panda-rename-HPD-GPIO-to-CT_CP_HPD.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 46dbdf1be35df940b05ef2f8b3064c45cfb8c310 Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Date: Tue, 17 Jan 2012 10:49:38 +0200
-Subject: [PATCH 59/95] OMAP: 4430SDP/Panda: rename HPD GPIO to CT_CP_HPD
-
-commit 3932a32fcf5393f8be70ac99dc718ad7ad0a415b upstream.
-
-The GPIO 60 on 4430sdp and Panda is not HPD GPIO, as currently marked in
-the board files, but CT_CP_HPD, which is used to enable/disable HPD
-functionality.
-
-This patch renames the GPIO.
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Acked-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/board-4430sdp.c    |    4 ++--
- arch/arm/mach-omap2/board-omap4panda.c |    4 ++--
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
-index 4996323..65c6536 100644
---- a/arch/arm/mach-omap2/board-4430sdp.c
-+++ b/arch/arm/mach-omap2/board-4430sdp.c
-@@ -52,7 +52,7 @@
- #define ETH_KS8851_QUART		138
- #define OMAP4_SFH7741_SENSOR_OUTPUT_GPIO	184
- #define OMAP4_SFH7741_ENABLE_GPIO		188
--#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
-+#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
- #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
- #define DISPLAY_SEL_GPIO	59	/* LCD2/PicoDLP switch */
- #define DLP_POWER_ON_GPIO	40
-@@ -617,7 +617,7 @@ static void sdp4430_hdmi_mux_init(void)
- }
- 
- static struct gpio sdp4430_hdmi_gpios[] = {
--	{ HDMI_GPIO_HPD,	GPIOF_OUT_INIT_HIGH,	"hdmi_gpio_hpd"   },
-+	{ HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
- 	{ HDMI_GPIO_LS_OE,	GPIOF_OUT_INIT_HIGH,	"hdmi_gpio_ls_oe" },
- };
- 
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index ac9a8a9..f39d77d 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -51,7 +51,7 @@
- #define GPIO_HUB_NRESET		62
- #define GPIO_WIFI_PMENA		43
- #define GPIO_WIFI_IRQ		53
--#define HDMI_GPIO_HPD 60 /* Hot plug pin for HDMI */
-+#define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
- #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
- 
- /* wl127x BT, FM, GPS connectivity chip */
-@@ -428,7 +428,7 @@ static void omap4_panda_hdmi_mux_init(void)
- }
- 
- static struct gpio panda_hdmi_gpios[] = {
--	{ HDMI_GPIO_HPD,	GPIOF_OUT_INIT_HIGH, "hdmi_gpio_hpd"   },
-+	{ HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
- 	{ HDMI_GPIO_LS_OE,	GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" },
- };
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0060-OMAPDSS-remove-wrong-HDMI-HPD-muxing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0060-OMAPDSS-remove-wrong-HDMI-HPD-muxing.patch
deleted file mode 100644
index 8c693ca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0060-OMAPDSS-remove-wrong-HDMI-HPD-muxing.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From d8f2773cd0eb254b5aee9d647c34fd0901e71cb9 Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Date: Tue, 17 Jan 2012 10:59:00 +0200
-Subject: [PATCH 60/95] OMAPDSS: remove wrong HDMI HPD muxing
-
-commit 7bb122d155f742fe2d79849090c825be7b4a247e upstream.
-
-"hdmi_hpd" pin is muxed to INPUT and PULLUP, but the pin is not
-currently used, and in the future when it is used, the pin is used as a
-GPIO and is board specific, not an OMAP4 wide thing.
-
-So remove the muxing for now.
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Acked-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/board-4430sdp.c    |    4 ----
- arch/arm/mach-omap2/board-omap4panda.c |    4 ----
- 2 files changed, 8 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
-index 65c6536..ea31da3 100644
---- a/arch/arm/mach-omap2/board-4430sdp.c
-+++ b/arch/arm/mach-omap2/board-4430sdp.c
-@@ -604,12 +604,8 @@ static void __init omap_sfh7741prox_init(void)
- 
- static void sdp4430_hdmi_mux_init(void)
- {
--	/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
--	omap_mux_init_signal("hdmi_hpd",
--			OMAP_PIN_INPUT_PULLUP);
- 	omap_mux_init_signal("hdmi_cec",
- 			OMAP_PIN_INPUT_PULLUP);
--	/* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
- 	omap_mux_init_signal("hdmi_ddc_scl",
- 			OMAP_PIN_INPUT_PULLUP);
- 	omap_mux_init_signal("hdmi_ddc_sda",
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index f39d77d..f800080 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -415,12 +415,8 @@ int __init omap4_panda_dvi_init(void)
- 
- static void omap4_panda_hdmi_mux_init(void)
- {
--	/* PAD0_HDMI_HPD_PAD1_HDMI_CEC */
--	omap_mux_init_signal("hdmi_hpd",
--			OMAP_PIN_INPUT_PULLUP);
- 	omap_mux_init_signal("hdmi_cec",
- 			OMAP_PIN_INPUT_PULLUP);
--	/* PAD0_HDMI_DDC_SCL_PAD1_HDMI_DDC_SDA */
- 	omap_mux_init_signal("hdmi_ddc_scl",
- 			OMAP_PIN_INPUT_PULLUP);
- 	omap_mux_init_signal("hdmi_ddc_sda",
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0061-OMAP-4430SDP-Panda-setup-HDMI-GPIO-muxes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0061-OMAP-4430SDP-Panda-setup-HDMI-GPIO-muxes.patch
deleted file mode 100644
index bdffdb4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0061-OMAP-4430SDP-Panda-setup-HDMI-GPIO-muxes.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From b8769e0c69fccaa9930818b84ee00d5f9e90c4cd Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Date: Tue, 17 Jan 2012 11:02:36 +0200
-Subject: [PATCH 61/95] OMAP: 4430SDP/Panda: setup HDMI GPIO muxes
-
-commit 78a1ad8f12db70b8b0a4548b90704de08ee216ce upstream.
-
-The HDMI GPIO pins LS_OE and CT_CP_HPD are not currently configured.
-This patch configures them as output pins.
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Acked-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/board-4430sdp.c    |    3 +++
- arch/arm/mach-omap2/board-omap4panda.c |    3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
-index ea31da3..580d436 100644
---- a/arch/arm/mach-omap2/board-4430sdp.c
-+++ b/arch/arm/mach-omap2/board-4430sdp.c
-@@ -831,6 +831,9 @@ static void omap_4430sdp_display_init(void)
- 	sdp4430_hdmi_mux_init();
- 	sdp4430_picodlp_init();
- 	omap_display_init(&sdp4430_dss_data);
-+
-+	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
-+	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
- }
- 
- #ifdef CONFIG_OMAP_MUX
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index f800080..d32ba6f 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -475,6 +475,9 @@ void omap4_panda_display_init(void)
- 
- 	omap4_panda_hdmi_mux_init();
- 	omap_display_init(&omap4_panda_dss_data);
-+
-+	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
-+	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
- }
- 
- static void __init omap4_panda_init(void)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0062-OMAP-4430SDP-Panda-add-HDMI-HPD-gpio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0062-OMAP-4430SDP-Panda-add-HDMI-HPD-gpio.patch
deleted file mode 100644
index f08f4fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0062-OMAP-4430SDP-Panda-add-HDMI-HPD-gpio.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 493540069d02cdf71f7d7567c9ccca6000aefbed Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Date: Tue, 17 Jan 2012 11:05:32 +0200
-Subject: [PATCH 62/95] OMAP: 4430SDP/Panda: add HDMI HPD gpio
-
-commit aa74274b464d4aa24703963ac89a0ee942d5d267 upstream.
-
-Both Panda and 4430SDP use GPIO 63 as HDMI hot-plug-detect. Configure
-this GPIO in the board files.
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Acked-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/board-4430sdp.c    |    3 +++
- arch/arm/mach-omap2/board-omap4panda.c |    3 +++
- 2 files changed, 6 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
-index 580d436..2809855 100644
---- a/arch/arm/mach-omap2/board-4430sdp.c
-+++ b/arch/arm/mach-omap2/board-4430sdp.c
-@@ -54,6 +54,7 @@
- #define OMAP4_SFH7741_ENABLE_GPIO		188
- #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
- #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
-+#define HDMI_GPIO_HPD  63 /* Hotplug detect */
- #define DISPLAY_SEL_GPIO	59	/* LCD2/PicoDLP switch */
- #define DLP_POWER_ON_GPIO	40
- 
-@@ -615,6 +616,7 @@ static void sdp4430_hdmi_mux_init(void)
- static struct gpio sdp4430_hdmi_gpios[] = {
- 	{ HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
- 	{ HDMI_GPIO_LS_OE,	GPIOF_OUT_INIT_HIGH,	"hdmi_gpio_ls_oe" },
-+	{ HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
- };
- 
- static int sdp4430_panel_enable_hdmi(struct omap_dss_device *dssdev)
-@@ -834,6 +836,7 @@ static void omap_4430sdp_display_init(void)
- 
- 	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
- 	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
-+	omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
- }
- 
- #ifdef CONFIG_OMAP_MUX
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index d32ba6f..bdc0a47 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -53,6 +53,7 @@
- #define GPIO_WIFI_IRQ		53
- #define HDMI_GPIO_CT_CP_HPD 60 /* HPD mode enable/disable */
- #define HDMI_GPIO_LS_OE 41 /* Level shifter for HDMI */
-+#define HDMI_GPIO_HPD  63 /* Hotplug detect */
- 
- /* wl127x BT, FM, GPS connectivity chip */
- static int wl1271_gpios[] = {46, -1, -1};
-@@ -426,6 +427,7 @@ static void omap4_panda_hdmi_mux_init(void)
- static struct gpio panda_hdmi_gpios[] = {
- 	{ HDMI_GPIO_CT_CP_HPD, GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ct_cp_hpd" },
- 	{ HDMI_GPIO_LS_OE,	GPIOF_OUT_INIT_HIGH, "hdmi_gpio_ls_oe" },
-+	{ HDMI_GPIO_HPD, GPIOF_DIR_IN, "hdmi_gpio_hpd" },
- };
- 
- static int omap4_panda_panel_enable_hdmi(struct omap_dss_device *dssdev)
-@@ -478,6 +480,7 @@ void omap4_panda_display_init(void)
- 
- 	omap_mux_init_gpio(HDMI_GPIO_LS_OE, OMAP_PIN_OUTPUT);
- 	omap_mux_init_gpio(HDMI_GPIO_CT_CP_HPD, OMAP_PIN_OUTPUT);
-+	omap_mux_init_gpio(HDMI_GPIO_HPD, OMAP_PIN_INPUT_PULLDOWN);
- }
- 
- static void __init omap4_panda_init(void)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0063-OMAPDSS-HDMI-PHY-burnout-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0063-OMAPDSS-HDMI-PHY-burnout-fix.patch
deleted file mode 100644
index 413ac1c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0063-OMAPDSS-HDMI-PHY-burnout-fix.patch
+++ /dev/null
@@ -1,246 +0,0 @@
-From 9fc3feeb0ef1abf039e3de62212a1590a050d4af Mon Sep 17 00:00:00 2001
-From: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Date: Tue, 17 Jan 2012 11:09:57 +0200
-Subject: [PATCH 63/95] OMAPDSS: HDMI: PHY burnout fix
-
-commit c49d005b6cc8491fad5b24f82805be2d6bcbd3dd upstream.
-
-A hardware bug in the OMAP4 HDMI PHY causes physical damage to the board
-if the HDMI PHY is kept powered on when the cable is not connected.
-
-This patch solves the problem by adding hot-plug-detection into the HDMI
-IP driver. This is not a real HPD support in the sense that nobody else
-than the IP driver gets to know about the HPD events, but is only meant
-to fix the HW bug.
-
-The strategy is simple: If the display device is turned off by the user,
-the PHY power is set to OFF. When the display device is turned on by the
-user, the PHY power is set either to LDOON or TXON, depending on whether
-the HDMI cable is connected.
-
-The reason to avoid PHY OFF when the display device is on, but the cable
-is disconnected, is that when the PHY is turned OFF, the HDMI IP is not
-"ticking" and thus the DISPC does not receive pixel clock from the HDMI
-IP. This would, for example, prevent any VSYNCs from happening, and
-would thus affect the users of omapdss. By using LDOON when the cable is
-disconnected we'll avoid the HW bug, but keep the HDMI working as usual
-from the user's point of view.
-
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/board-4430sdp.c       |    5 +++
- arch/arm/mach-omap2/board-omap4panda.c    |    5 +++
- drivers/video/omap2/dss/hdmi.c            |    3 ++
- drivers/video/omap2/dss/ti_hdmi.h         |    4 ++
- drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c |   68 +++++++++++++++++++++++++++--
- include/video/omapdss.h                   |    5 +++
- 6 files changed, 86 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-4430sdp.c b/arch/arm/mach-omap2/board-4430sdp.c
-index 2809855..44610d8 100644
---- a/arch/arm/mach-omap2/board-4430sdp.c
-+++ b/arch/arm/mach-omap2/board-4430sdp.c
-@@ -749,6 +749,10 @@ static void sdp4430_lcd_init(void)
- 		pr_err("%s: Could not get lcd2_reset_gpio\n", __func__);
- }
- 
-+static struct omap_dss_hdmi_data sdp4430_hdmi_data = {
-+	.hpd_gpio = HDMI_GPIO_HPD,
-+};
-+
- static struct omap_dss_device sdp4430_hdmi_device = {
- 	.name = "hdmi",
- 	.driver_name = "hdmi_panel",
-@@ -756,6 +760,7 @@ static struct omap_dss_device sdp4430_hdmi_device = {
- 	.platform_enable = sdp4430_panel_enable_hdmi,
- 	.platform_disable = sdp4430_panel_disable_hdmi,
- 	.channel = OMAP_DSS_CHANNEL_DIGIT,
-+	.data = &sdp4430_hdmi_data,
- };
- 
- static struct picodlp_panel_data sdp4430_picodlp_pdata = {
-diff --git a/arch/arm/mach-omap2/board-omap4panda.c b/arch/arm/mach-omap2/board-omap4panda.c
-index bdc0a47..9cc9564 100644
---- a/arch/arm/mach-omap2/board-omap4panda.c
-+++ b/arch/arm/mach-omap2/board-omap4panda.c
-@@ -447,6 +447,10 @@ static void omap4_panda_panel_disable_hdmi(struct omap_dss_device *dssdev)
- 	gpio_free_array(panda_hdmi_gpios, ARRAY_SIZE(panda_hdmi_gpios));
- }
- 
-+static struct omap_dss_hdmi_data omap4_panda_hdmi_data = {
-+	.hpd_gpio = HDMI_GPIO_HPD,
-+};
-+
- static struct omap_dss_device  omap4_panda_hdmi_device = {
- 	.name = "hdmi",
- 	.driver_name = "hdmi_panel",
-@@ -454,6 +458,7 @@ static struct omap_dss_device  omap4_panda_hdmi_device = {
- 	.platform_enable = omap4_panda_panel_enable_hdmi,
- 	.platform_disable = omap4_panda_panel_disable_hdmi,
- 	.channel = OMAP_DSS_CHANNEL_DIGIT,
-+	.data = &omap4_panda_hdmi_data,
- };
- 
- static struct omap_dss_device *omap4_panda_dss_devices[] = {
-diff --git a/drivers/video/omap2/dss/hdmi.c b/drivers/video/omap2/dss/hdmi.c
-index c56378c..7099c31 100644
---- a/drivers/video/omap2/dss/hdmi.c
-+++ b/drivers/video/omap2/dss/hdmi.c
-@@ -490,6 +490,7 @@ bool omapdss_hdmi_detect(void)
- 
- int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev)
- {
-+	struct omap_dss_hdmi_data *priv = dssdev->data;
- 	int r = 0;
- 
- 	DSSDBG("ENTER hdmi_display_enable\n");
-@@ -502,6 +503,8 @@ int omapdss_hdmi_display_enable(struct omap_dss_device *dssdev)
- 		goto err0;
- 	}
- 
-+	hdmi.ip_data.hpd_gpio = priv->hpd_gpio;
-+
- 	r = omap_dss_start_device(dssdev);
- 	if (r) {
- 		DSSERR("failed to start device\n");
-diff --git a/drivers/video/omap2/dss/ti_hdmi.h b/drivers/video/omap2/dss/ti_hdmi.h
-index 2c3443d..ec337b5d 100644
---- a/drivers/video/omap2/dss/ti_hdmi.h
-+++ b/drivers/video/omap2/dss/ti_hdmi.h
-@@ -121,6 +121,10 @@ struct hdmi_ip_data {
- 	const struct ti_hdmi_ip_ops *ops;
- 	struct hdmi_config cfg;
- 	struct hdmi_pll_info pll_data;
-+
-+	/* ti_hdmi_4xxx_ip private data. These should be in a separate struct */
-+	int hpd_gpio;
-+	bool phy_tx_enabled;
- };
- int ti_hdmi_4xxx_phy_enable(struct hdmi_ip_data *ip_data);
- void ti_hdmi_4xxx_phy_disable(struct hdmi_ip_data *ip_data);
-diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
-index e1a6ce5..3683404 100644
---- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
-+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
-@@ -28,6 +28,7 @@
- #include <linux/delay.h>
- #include <linux/string.h>
- #include <linux/seq_file.h>
-+#include <linux/gpio.h>
- 
- #include "ti_hdmi_4xxx_ip.h"
- #include "dss.h"
-@@ -223,6 +224,49 @@ void ti_hdmi_4xxx_pll_disable(struct hdmi_ip_data *ip_data)
- 	hdmi_set_pll_pwr(ip_data, HDMI_PLLPWRCMD_ALLOFF);
- }
- 
-+static int hdmi_check_hpd_state(struct hdmi_ip_data *ip_data)
-+{
-+	unsigned long flags;
-+	bool hpd;
-+	int r;
-+	/* this should be in ti_hdmi_4xxx_ip private data */
-+	static DEFINE_SPINLOCK(phy_tx_lock);
-+
-+	spin_lock_irqsave(&phy_tx_lock, flags);
-+
-+	hpd = gpio_get_value(ip_data->hpd_gpio);
-+
-+	if (hpd == ip_data->phy_tx_enabled) {
-+		spin_unlock_irqrestore(&phy_tx_lock, flags);
-+		return 0;
-+	}
-+
-+	if (hpd)
-+		r = hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_TXON);
-+	else
-+		r = hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_LDOON);
-+
-+	if (r) {
-+		DSSERR("Failed to %s PHY TX power\n",
-+				hpd ? "enable" : "disable");
-+		goto err;
-+	}
-+
-+	ip_data->phy_tx_enabled = hpd;
-+err:
-+	spin_unlock_irqrestore(&phy_tx_lock, flags);
-+	return r;
-+}
-+
-+static irqreturn_t hpd_irq_handler(int irq, void *data)
-+{
-+	struct hdmi_ip_data *ip_data = data;
-+
-+	hdmi_check_hpd_state(ip_data);
-+
-+	return IRQ_HANDLED;
-+}
-+
- int ti_hdmi_4xxx_phy_enable(struct hdmi_ip_data *ip_data)
- {
- 	u16 r = 0;
-@@ -232,10 +276,6 @@ int ti_hdmi_4xxx_phy_enable(struct hdmi_ip_data *ip_data)
- 	if (r)
- 		return r;
- 
--	r = hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_TXON);
--	if (r)
--		return r;
--
- 	/*
- 	 * Read address 0 in order to get the SCP reset done completed
- 	 * Dummy access performed to make sure reset is done
-@@ -257,12 +297,32 @@ int ti_hdmi_4xxx_phy_enable(struct hdmi_ip_data *ip_data)
- 	/* Write to phy address 3 to change the polarity control */
- 	REG_FLD_MOD(phy_base, HDMI_TXPHY_PAD_CFG_CTRL, 0x1, 27, 27);
- 
-+	r = request_threaded_irq(gpio_to_irq(ip_data->hpd_gpio),
-+			NULL, hpd_irq_handler,
-+			IRQF_DISABLED | IRQF_TRIGGER_RISING |
-+			IRQF_TRIGGER_FALLING, "hpd", ip_data);
-+	if (r) {
-+		DSSERR("HPD IRQ request failed\n");
-+		hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_OFF);
-+		return r;
-+	}
-+
-+	r = hdmi_check_hpd_state(ip_data);
-+	if (r) {
-+		free_irq(gpio_to_irq(ip_data->hpd_gpio), ip_data);
-+		hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_OFF);
-+		return r;
-+	}
-+
- 	return 0;
- }
- 
- void ti_hdmi_4xxx_phy_disable(struct hdmi_ip_data *ip_data)
- {
-+	free_irq(gpio_to_irq(ip_data->hpd_gpio), ip_data);
-+
- 	hdmi_set_phy_pwr(ip_data, HDMI_PHYPWRCMD_OFF);
-+	ip_data->phy_tx_enabled = false;
- }
- 
- static int hdmi_core_ddc_init(struct hdmi_ip_data *ip_data)
-diff --git a/include/video/omapdss.h b/include/video/omapdss.h
-index 378c7ed..6582c45 100644
---- a/include/video/omapdss.h
-+++ b/include/video/omapdss.h
-@@ -575,6 +575,11 @@ struct omap_dss_device {
- 	int (*get_backlight)(struct omap_dss_device *dssdev);
- };
- 
-+struct omap_dss_hdmi_data
-+{
-+	int hpd_gpio;
-+};
-+
- struct omap_dss_driver {
- 	struct device_driver driver;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0064-OMAPDSS-HDMI-hot-plug-detect-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0064-OMAPDSS-HDMI-hot-plug-detect-fix.patch
deleted file mode 100644
index bee35f9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0064-OMAPDSS-HDMI-hot-plug-detect-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From ceaddf58a2932ff4a4dffa216af9db01d1bd74cc Mon Sep 17 00:00:00 2001
-From: Rob Clark <rob at ti.com>
-Date: Mon, 20 Feb 2012 15:03:36 -0600
-Subject: [PATCH 64/95] OMAPDSS: HDMI: hot plug detect fix
-
-commit ca888a7958b3d808e4efd08ceff88913f4212c69 upstream.
-
-The "OMAPDSS: HDMI: PHY burnout fix" commit switched the HDMI driver
-over to using a GPIO for plug detect.  Unfortunately the ->detect()
-method was not also updated, causing HDMI to no longer work for the
-omapdrm driver (because it would actually check if a connection was
-detected before attempting to enable display).
-
-Signed-off-by: Rob Clark <rob at ti.com>
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c |    9 +--------
- 1 file changed, 1 insertion(+), 8 deletions(-)
-
-diff --git a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
-index 3683404..aad48a1 100644
---- a/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
-+++ b/drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c
-@@ -479,14 +479,7 @@ int ti_hdmi_4xxx_read_edid(struct hdmi_ip_data *ip_data,
- 
- bool ti_hdmi_4xxx_detect(struct hdmi_ip_data *ip_data)
- {
--	int r;
--
--	void __iomem *base = hdmi_core_sys_base(ip_data);
--
--	/* HPD */
--	r = REG_GET(base, HDMI_CORE_SYS_SYS_STAT, 1, 1);
--
--	return r == 1;
-+	return gpio_get_value(ip_data->hpd_gpio);
- }
- 
- static void hdmi_core_init(struct hdmi_core_video_config *video_cfg,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0065-ARM-7345-1-errata-update-workaround-for-A9-erratum-7.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0065-ARM-7345-1-errata-update-workaround-for-A9-erratum-7.patch
deleted file mode 100644
index e414161..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0065-ARM-7345-1-errata-update-workaround-for-A9-erratum-7.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b98acc555eb9c9b790388e926ddd3ef1610c7360 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 24 Feb 2012 12:12:38 +0100
-Subject: [PATCH 65/95] ARM: 7345/1: errata: update workaround for A9 erratum
- #743622
-
-commit efbc74ace95338484f8d732037b99c7c77098fce upstream.
-
-Erratum #743622 affects all r2 variants of the Cortex-A9 processor, so
-ensure that the workaround is applied regardless of the revision.
-
-Reported-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/Kconfig      |    2 +-
- arch/arm/mm/proc-v7.S |    4 +---
- 2 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index f44d5a0..6cd71ec 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1273,7 +1273,7 @@ config ARM_ERRATA_743622
- 	depends on CPU_V7
- 	help
- 	  This option enables the workaround for the 743622 Cortex-A9
--	  (r2p0..r2p2) erratum. Under very rare conditions, a faulty
-+	  (r2p*) erratum. Under very rare conditions, a faulty
- 	  optimisation in the Cortex-A9 Store Buffer may lead to data
- 	  corruption. This workaround sets a specific bit in the diagnostic
- 	  register of the Cortex-A9 which disables the Store Buffer
-diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
-index 40cc7aa..82ef81d 100644
---- a/arch/arm/mm/proc-v7.S
-+++ b/arch/arm/mm/proc-v7.S
-@@ -352,9 +352,7 @@ __v7_setup:
- 	mcreq	p15, 0, r10, c15, c0, 1		@ write diagnostic register
- #endif
- #ifdef CONFIG_ARM_ERRATA_743622
--	teq	r6, #0x20			@ present in r2p0
--	teqne	r6, #0x21			@ present in r2p1
--	teqne	r6, #0x22			@ present in r2p2
-+	teq	r5, #0x00200000			@ only present in r2p*
- 	mrceq	p15, 0, r10, c15, c0, 1		@ read diagnostic register
- 	orreq	r10, r10, #1 << 6		@ set bit #6
- 	mcreq	p15, 0, r10, c15, c0, 1		@ write diagnostic register
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0066-ARM-7354-1-perf-limit-sample_period-to-half-max_peri.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0066-ARM-7354-1-perf-limit-sample_period-to-half-max_peri.patch
deleted file mode 100644
index ec27d3a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0066-ARM-7354-1-perf-limit-sample_period-to-half-max_peri.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 7452f29adfeefd48bfac437965f99e3f36506484 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Tue, 6 Mar 2012 17:33:17 +0100
-Subject: [PATCH 66/95] ARM: 7354/1: perf: limit sample_period to half
- max_period in non-sampling mode
-
-commit 5727347180ebc6b4a866fcbe00dcb39cc03acb37 upstream.
-
-On ARM, the PMU does not stop counting after an overflow and therefore
-IRQ latency affects the new counter value read by the kernel. This is
-significant for non-sampling runs where it is possible for the new value
-to overtake the previous one, causing the delta to be out by up to
-max_period events.
-
-Commit a737823d ("ARM: 6835/1: perf: ensure overflows aren't missed due
-to IRQ latency") attempted to fix this problem by allowing interrupt
-handlers to pass an overflow flag to the event update function, causing
-the overflow calculation to assume that the counter passed through zero
-when going from prev to new. Unfortunately, this doesn't work when
-overflow occurs on the perf_task_tick path because we have the flag
-cleared and end up computing a large negative delta.
-
-This patch removes the overflow flag from armpmu_event_update and
-instead limits the sample_period to half of the max_period for
-non-sampling profiling runs.
-
-Signed-off-by: Ming Lei <ming.lei at canonical.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/include/asm/pmu.h          |    2 +-
- arch/arm/kernel/perf_event.c        |   22 +++++++++++-----------
- arch/arm/kernel/perf_event_v6.c     |    2 +-
- arch/arm/kernel/perf_event_v7.c     |    2 +-
- arch/arm/kernel/perf_event_xscale.c |    4 ++--
- 5 files changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/arch/arm/include/asm/pmu.h b/arch/arm/include/asm/pmu.h
-index b5a5be2..90114fa 100644
---- a/arch/arm/include/asm/pmu.h
-+++ b/arch/arm/include/asm/pmu.h
-@@ -134,7 +134,7 @@ int __init armpmu_register(struct arm_pmu *armpmu, char *name, int type);
- 
- u64 armpmu_event_update(struct perf_event *event,
- 			struct hw_perf_event *hwc,
--			int idx, int overflow);
-+			int idx);
- 
- int armpmu_event_set_period(struct perf_event *event,
- 			    struct hw_perf_event *hwc,
-diff --git a/arch/arm/kernel/perf_event.c b/arch/arm/kernel/perf_event.c
-index 5bb91bf..56173ae 100644
---- a/arch/arm/kernel/perf_event.c
-+++ b/arch/arm/kernel/perf_event.c
-@@ -180,7 +180,7 @@ armpmu_event_set_period(struct perf_event *event,
- u64
- armpmu_event_update(struct perf_event *event,
- 		    struct hw_perf_event *hwc,
--		    int idx, int overflow)
-+		    int idx)
- {
- 	struct arm_pmu *armpmu = to_arm_pmu(event->pmu);
- 	u64 delta, prev_raw_count, new_raw_count;
-@@ -193,13 +193,7 @@ again:
- 			     new_raw_count) != prev_raw_count)
- 		goto again;
- 
--	new_raw_count &= armpmu->max_period;
--	prev_raw_count &= armpmu->max_period;
--
--	if (overflow)
--		delta = armpmu->max_period - prev_raw_count + new_raw_count + 1;
--	else
--		delta = new_raw_count - prev_raw_count;
-+	delta = (new_raw_count - prev_raw_count) & armpmu->max_period;
- 
- 	local64_add(delta, &event->count);
- 	local64_sub(delta, &hwc->period_left);
-@@ -216,7 +210,7 @@ armpmu_read(struct perf_event *event)
- 	if (hwc->idx < 0)
- 		return;
- 
--	armpmu_event_update(event, hwc, hwc->idx, 0);
-+	armpmu_event_update(event, hwc, hwc->idx);
- }
- 
- static void
-@@ -232,7 +226,7 @@ armpmu_stop(struct perf_event *event, int flags)
- 	if (!(hwc->state & PERF_HES_STOPPED)) {
- 		armpmu->disable(hwc, hwc->idx);
- 		barrier(); /* why? */
--		armpmu_event_update(event, hwc, hwc->idx, 0);
-+		armpmu_event_update(event, hwc, hwc->idx);
- 		hwc->state |= PERF_HES_STOPPED | PERF_HES_UPTODATE;
- 	}
- }
-@@ -518,7 +512,13 @@ __hw_perf_event_init(struct perf_event *event)
- 	hwc->config_base	    |= (unsigned long)mapping;
- 
- 	if (!hwc->sample_period) {
--		hwc->sample_period  = armpmu->max_period;
-+		/*
-+		 * For non-sampling runs, limit the sample_period to half
-+		 * of the counter width. That way, the new counter value
-+		 * is far less likely to overtake the previous one unless
-+		 * you have some serious IRQ latency issues.
-+		 */
-+		hwc->sample_period  = armpmu->max_period >> 1;
- 		hwc->last_period    = hwc->sample_period;
- 		local64_set(&hwc->period_left, hwc->sample_period);
- 	}
-diff --git a/arch/arm/kernel/perf_event_v6.c b/arch/arm/kernel/perf_event_v6.c
-index 533be99..88bf152 100644
---- a/arch/arm/kernel/perf_event_v6.c
-+++ b/arch/arm/kernel/perf_event_v6.c
-@@ -524,7 +524,7 @@ armv6pmu_handle_irq(int irq_num,
- 			continue;
- 
- 		hwc = &event->hw;
--		armpmu_event_update(event, hwc, idx, 1);
-+		armpmu_event_update(event, hwc, idx);
- 		data.period = event->hw.last_period;
- 		if (!armpmu_event_set_period(event, hwc, idx))
- 			continue;
-diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c
-index 460bbbb..c63a13e 100644
---- a/arch/arm/kernel/perf_event_v7.c
-+++ b/arch/arm/kernel/perf_event_v7.c
-@@ -935,7 +935,7 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev)
- 			continue;
- 
- 		hwc = &event->hw;
--		armpmu_event_update(event, hwc, idx, 1);
-+		armpmu_event_update(event, hwc, idx);
- 		data.period = event->hw.last_period;
- 		if (!armpmu_event_set_period(event, hwc, idx))
- 			continue;
-diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c
-index 3b99d82..831e019 100644
---- a/arch/arm/kernel/perf_event_xscale.c
-+++ b/arch/arm/kernel/perf_event_xscale.c
-@@ -259,7 +259,7 @@ xscale1pmu_handle_irq(int irq_num, void *dev)
- 			continue;
- 
- 		hwc = &event->hw;
--		armpmu_event_update(event, hwc, idx, 1);
-+		armpmu_event_update(event, hwc, idx);
- 		data.period = event->hw.last_period;
- 		if (!armpmu_event_set_period(event, hwc, idx))
- 			continue;
-@@ -596,7 +596,7 @@ xscale2pmu_handle_irq(int irq_num, void *dev)
- 			continue;
- 
- 		hwc = &event->hw;
--		armpmu_event_update(event, hwc, idx, 1);
-+		armpmu_event_update(event, hwc, idx);
- 		data.period = event->hw.last_period;
- 		if (!armpmu_event_set_period(event, hwc, idx))
- 			continue;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0067-ARM-7355-1-perf-clear-overflow-flag-when-disabling-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0067-ARM-7355-1-perf-clear-overflow-flag-when-disabling-c.patch
deleted file mode 100644
index 5d401cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0067-ARM-7355-1-perf-clear-overflow-flag-when-disabling-c.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 54426f627a1b329bda270f1e85f9ee0e01e18573 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Tue, 6 Mar 2012 17:34:22 +0100
-Subject: [PATCH 67/95] ARM: 7355/1: perf: clear overflow flag when disabling
- counter on ARMv7 PMU
-
-commit 99c1745b9c76910e195889044f914b4898b7c9a5 upstream.
-
-When disabling a counter on an ARMv7 PMU, we should also clear the
-overflow flag in case an overflow occurred whilst stopping the counter.
-This prevents a spurious overflow being picked up later and leading to
-either false accounting or a NULL dereference.
-
-Reported-by: Ming Lei <tom.leiming at gmail.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/kernel/perf_event_v7.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c
-index c63a13e..5e1e4f7 100644
---- a/arch/arm/kernel/perf_event_v7.c
-+++ b/arch/arm/kernel/perf_event_v7.c
-@@ -781,6 +781,11 @@ static inline int armv7_pmnc_disable_intens(int idx)
- 
- 	counter = ARMV7_IDX_TO_COUNTER(idx);
- 	asm volatile("mcr p15, 0, %0, c9, c14, 2" : : "r" (BIT(counter)));
-+	isb();
-+	/* Clear the overflow flag in case an interrupt is pending. */
-+	asm volatile("mcr p15, 0, %0, c9, c12, 3" : : "r" (BIT(counter)));
-+	isb();
-+
- 	return idx;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0068-ARM-7356-1-perf-check-that-we-have-an-event-in-the-P.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0068-ARM-7356-1-perf-check-that-we-have-an-event-in-the-P.patch
deleted file mode 100644
index 732c041..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0068-ARM-7356-1-perf-check-that-we-have-an-event-in-the-P.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From c37b95acdb2e664b9673a230a56c0cefc2be3059 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Tue, 6 Mar 2012 17:34:50 +0100
-Subject: [PATCH 68/95] ARM: 7356/1: perf: check that we have an event in the
- PMU IRQ handlers
-
-commit f6f5a30c834135c9f2fa10400c59ebbdd9188567 upstream.
-
-The PMU IRQ handlers in perf assume that if a counter has overflowed
-then perf must be responsible. In the paranoid world of crazy hardware,
-this could be false, so check that we do have a valid event before
-attempting to dereference NULL in the interrupt path.
-
-Signed-off-by: Ming Lei <tom.leiming at gmail.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/kernel/perf_event_v6.c     |   20 ++------------------
- arch/arm/kernel/perf_event_v7.c     |    4 ++++
- arch/arm/kernel/perf_event_xscale.c |    6 ++++++
- 3 files changed, 12 insertions(+), 18 deletions(-)
-
-diff --git a/arch/arm/kernel/perf_event_v6.c b/arch/arm/kernel/perf_event_v6.c
-index 88bf152..b78af0c 100644
---- a/arch/arm/kernel/perf_event_v6.c
-+++ b/arch/arm/kernel/perf_event_v6.c
-@@ -467,23 +467,6 @@ armv6pmu_enable_event(struct hw_perf_event *hwc,
- 	raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
- }
- 
--static int counter_is_active(unsigned long pmcr, int idx)
--{
--	unsigned long mask = 0;
--	if (idx == ARMV6_CYCLE_COUNTER)
--		mask = ARMV6_PMCR_CCOUNT_IEN;
--	else if (idx == ARMV6_COUNTER0)
--		mask = ARMV6_PMCR_COUNT0_IEN;
--	else if (idx == ARMV6_COUNTER1)
--		mask = ARMV6_PMCR_COUNT1_IEN;
--
--	if (mask)
--		return pmcr & mask;
--
--	WARN_ONCE(1, "invalid counter number (%d)\n", idx);
--	return 0;
--}
--
- static irqreturn_t
- armv6pmu_handle_irq(int irq_num,
- 		    void *dev)
-@@ -513,7 +496,8 @@ armv6pmu_handle_irq(int irq_num,
- 		struct perf_event *event = cpuc->events[idx];
- 		struct hw_perf_event *hwc;
- 
--		if (!counter_is_active(pmcr, idx))
-+		/* Ignore if we don't have an event. */
-+		if (!event)
- 			continue;
- 
- 		/*
-diff --git a/arch/arm/kernel/perf_event_v7.c b/arch/arm/kernel/perf_event_v7.c
-index 5e1e4f7..2127ca3 100644
---- a/arch/arm/kernel/perf_event_v7.c
-+++ b/arch/arm/kernel/perf_event_v7.c
-@@ -932,6 +932,10 @@ static irqreturn_t armv7pmu_handle_irq(int irq_num, void *dev)
- 		struct perf_event *event = cpuc->events[idx];
- 		struct hw_perf_event *hwc;
- 
-+		/* Ignore if we don't have an event. */
-+		if (!event)
-+			continue;
-+
- 		/*
- 		 * We have a single interrupt for all counters. Check that
- 		 * each counter has overflowed before we process it.
-diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c
-index 831e019..a5bbd36 100644
---- a/arch/arm/kernel/perf_event_xscale.c
-+++ b/arch/arm/kernel/perf_event_xscale.c
-@@ -255,6 +255,9 @@ xscale1pmu_handle_irq(int irq_num, void *dev)
- 		struct perf_event *event = cpuc->events[idx];
- 		struct hw_perf_event *hwc;
- 
-+		if (!event)
-+			continue;
-+
- 		if (!xscale1_pmnc_counter_has_overflowed(pmnc, idx))
- 			continue;
- 
-@@ -592,6 +595,9 @@ xscale2pmu_handle_irq(int irq_num, void *dev)
- 		struct perf_event *event = cpuc->events[idx];
- 		struct hw_perf_event *hwc;
- 
-+		if (!event)
-+			continue;
-+
- 		if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx))
- 			continue;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0069-ARM-7357-1-perf-fix-overflow-handling-for-xscale2-PM.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0069-ARM-7357-1-perf-fix-overflow-handling-for-xscale2-PM.patch
deleted file mode 100644
index 34b2482..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0069-ARM-7357-1-perf-fix-overflow-handling-for-xscale2-PM.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From eec10c8ac63480ab5478326a7e2361b2f13ab775 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Tue, 6 Mar 2012 17:35:55 +0100
-Subject: [PATCH 69/95] ARM: 7357/1: perf: fix overflow handling for xscale2
- PMUs
-
-commit 3f31ae121348afd9ed39700ea2a63c17cd7eeed1 upstream.
-
-xscale2 PMUs indicate overflow not via the PMU control register, but by
-a separate overflow FLAG register instead.
-
-This patch fixes the xscale2 PMU code to use this register to detect
-to overflow and ensures that we clear any pending overflow when
-disabling a counter.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/kernel/perf_event_xscale.c |   10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/kernel/perf_event_xscale.c b/arch/arm/kernel/perf_event_xscale.c
-index a5bbd36..71a21e6 100644
---- a/arch/arm/kernel/perf_event_xscale.c
-+++ b/arch/arm/kernel/perf_event_xscale.c
-@@ -598,7 +598,7 @@ xscale2pmu_handle_irq(int irq_num, void *dev)
- 		if (!event)
- 			continue;
- 
--		if (!xscale2_pmnc_counter_has_overflowed(pmnc, idx))
-+		if (!xscale2_pmnc_counter_has_overflowed(of_flags, idx))
- 			continue;
- 
- 		hwc = &event->hw;
-@@ -669,7 +669,7 @@ xscale2pmu_enable_event(struct hw_perf_event *hwc, int idx)
- static void
- xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx)
- {
--	unsigned long flags, ien, evtsel;
-+	unsigned long flags, ien, evtsel, of_flags;
- 	struct pmu_hw_events *events = cpu_pmu->get_hw_events();
- 
- 	ien = xscale2pmu_read_int_enable();
-@@ -678,26 +678,31 @@ xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx)
- 	switch (idx) {
- 	case XSCALE_CYCLE_COUNTER:
- 		ien &= ~XSCALE2_CCOUNT_INT_EN;
-+		of_flags = XSCALE2_CCOUNT_OVERFLOW;
- 		break;
- 	case XSCALE_COUNTER0:
- 		ien &= ~XSCALE2_COUNT0_INT_EN;
- 		evtsel &= ~XSCALE2_COUNT0_EVT_MASK;
- 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT0_EVT_SHFT;
-+		of_flags = XSCALE2_COUNT0_OVERFLOW;
- 		break;
- 	case XSCALE_COUNTER1:
- 		ien &= ~XSCALE2_COUNT1_INT_EN;
- 		evtsel &= ~XSCALE2_COUNT1_EVT_MASK;
- 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT1_EVT_SHFT;
-+		of_flags = XSCALE2_COUNT1_OVERFLOW;
- 		break;
- 	case XSCALE_COUNTER2:
- 		ien &= ~XSCALE2_COUNT2_INT_EN;
- 		evtsel &= ~XSCALE2_COUNT2_EVT_MASK;
- 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT2_EVT_SHFT;
-+		of_flags = XSCALE2_COUNT2_OVERFLOW;
- 		break;
- 	case XSCALE_COUNTER3:
- 		ien &= ~XSCALE2_COUNT3_INT_EN;
- 		evtsel &= ~XSCALE2_COUNT3_EVT_MASK;
- 		evtsel |= XSCALE_PERFCTR_UNUSED << XSCALE2_COUNT3_EVT_SHFT;
-+		of_flags = XSCALE2_COUNT3_OVERFLOW;
- 		break;
- 	default:
- 		WARN_ONCE(1, "invalid counter number (%d)\n", idx);
-@@ -707,6 +712,7 @@ xscale2pmu_disable_event(struct hw_perf_event *hwc, int idx)
- 	raw_spin_lock_irqsave(&events->pmu_lock, flags);
- 	xscale2pmu_write_event_select(evtsel);
- 	xscale2pmu_write_int_enable(ien);
-+	xscale2pmu_write_overflow_flags(of_flags);
- 	raw_spin_unlock_irqrestore(&events->pmu_lock, flags);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0070-media-staging-lirc_serial-Fix-init-exit-order.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0070-media-staging-lirc_serial-Fix-init-exit-order.patch
deleted file mode 100644
index 31e5c22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0070-media-staging-lirc_serial-Fix-init-exit-order.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 03d9b3bbcec66ab0f632daef62985876821276d6 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 16 Nov 2011 01:49:41 -0300
-Subject: [PATCH 70/95] media: staging: lirc_serial: Fix init/exit order
-
-commit 9105b8b200410383d0854bbe237ee385d7d33ba6 upstream.
-
-Currently the module init function registers a platform_device and
-only then allocates its IRQ and I/O region.  This allows allocation to
-race with the device's suspend() function.  Instead, allocate
-resources in the platform driver's probe() function and free them in
-the remove() function.
-
-The module exit function removes the platform device before the
-character device that provides access to it.  Change it to reverse the
-order of initialisation.
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/media/lirc/lirc_serial.c |   56 +++++++++++-------------------
- 1 file changed, 21 insertions(+), 35 deletions(-)
-
-diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
-index 8a060a8..8637631 100644
---- a/drivers/staging/media/lirc/lirc_serial.c
-+++ b/drivers/staging/media/lirc/lirc_serial.c
-@@ -836,7 +836,7 @@ static int hardware_init_port(void)
- 	return 0;
- }
- 
--static int init_port(void)
-+static int __devinit lirc_serial_probe(struct platform_device *dev)
- {
- 	int i, nlow, nhigh, result;
- 
-@@ -913,6 +913,18 @@ static int init_port(void)
- 	return 0;
- }
- 
-+static int __devexit lirc_serial_remove(struct platform_device *dev)
-+{
-+	free_irq(irq, (void *)&hardware);
-+
-+	if (iommap != 0)
-+		release_mem_region(iommap, 8 << ioshift);
-+	else
-+		release_region(io, 8);
-+
-+	return 0;
-+}
-+
- static int set_use_inc(void *data)
- {
- 	unsigned long flags;
-@@ -1076,16 +1088,6 @@ static struct lirc_driver driver = {
- 
- static struct platform_device *lirc_serial_dev;
- 
--static int __devinit lirc_serial_probe(struct platform_device *dev)
--{
--	return 0;
--}
--
--static int __devexit lirc_serial_remove(struct platform_device *dev)
--{
--	return 0;
--}
--
- static int lirc_serial_suspend(struct platform_device *dev,
- 			       pm_message_t state)
- {
-@@ -1188,10 +1190,6 @@ static int __init lirc_serial_init_module(void)
- {
- 	int result;
- 
--	result = lirc_serial_init();
--	if (result)
--		return result;
--
- 	switch (type) {
- 	case LIRC_HOMEBREW:
- 	case LIRC_IRDEO:
-@@ -1211,8 +1209,7 @@ static int __init lirc_serial_init_module(void)
- 		break;
- #endif
- 	default:
--		result = -EINVAL;
--		goto exit_serial_exit;
-+		return -EINVAL;
- 	}
- 	if (!softcarrier) {
- 		switch (type) {
-@@ -1228,37 +1225,26 @@ static int __init lirc_serial_init_module(void)
- 		}
- 	}
- 
--	result = init_port();
--	if (result < 0)
--		goto exit_serial_exit;
-+	result = lirc_serial_init();
-+	if (result)
-+		return result;
-+
- 	driver.features = hardware[type].features;
- 	driver.dev = &lirc_serial_dev->dev;
- 	driver.minor = lirc_register_driver(&driver);
- 	if (driver.minor < 0) {
- 		printk(KERN_ERR  LIRC_DRIVER_NAME
- 		       ": register_chrdev failed!\n");
--		result = -EIO;
--		goto exit_release;
-+		lirc_serial_exit();
-+		return -EIO;
- 	}
- 	return 0;
--exit_release:
--	release_region(io, 8);
--exit_serial_exit:
--	lirc_serial_exit();
--	return result;
- }
- 
- static void __exit lirc_serial_exit_module(void)
- {
--	lirc_serial_exit();
--
--	free_irq(irq, (void *)&hardware);
--
--	if (iommap != 0)
--		release_mem_region(iommap, 8 << ioshift);
--	else
--		release_region(io, 8);
- 	lirc_unregister_driver(driver.minor);
-+	lirc_serial_exit();
- 	dprintk("cleaned up module\n");
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0071-media-staging-lirc_serial-Free-resources-on-failure-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0071-media-staging-lirc_serial-Free-resources-on-failure-.patch
deleted file mode 100644
index a1dcb0c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0071-media-staging-lirc_serial-Free-resources-on-failure-.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From ae019014abd36ff47a3ebc0c2470e44534254a14 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 16 Nov 2011 01:52:11 -0300
-Subject: [PATCH 71/95] media: staging: lirc_serial: Free resources on failure
- paths of lirc_serial_probe()
-
-commit c8e57e1b766c2321aa76ee5e6878c69bd2313d62 upstream.
-
-Failure to allocate the I/O region leaves the IRQ allocated.
-A later failure leaves them both allocated.
-
-Reported-by: Torsten Crass <torsten.crass at eBiology.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/media/lirc/lirc_serial.c |   19 ++++++++++++++++---
- 1 file changed, 16 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
-index 8637631..d833772 100644
---- a/drivers/staging/media/lirc/lirc_serial.c
-+++ b/drivers/staging/media/lirc/lirc_serial.c
-@@ -875,11 +875,14 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
- 		       ": or compile the serial port driver as module and\n");
- 		printk(KERN_WARNING LIRC_DRIVER_NAME
- 		       ": make sure this module is loaded first\n");
--		return -EBUSY;
-+		result = -EBUSY;
-+		goto exit_free_irq;
- 	}
- 
--	if (hardware_init_port() < 0)
--		return -EINVAL;
-+	if (hardware_init_port() < 0) {
-+		result = -EINVAL;
-+		goto exit_release_region;
-+	}
- 
- 	/* Initialize pulse/space widths */
- 	init_timing_params(duty_cycle, freq);
-@@ -911,6 +914,16 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
- 
- 	dprintk("Interrupt %d, port %04x obtained\n", irq, io);
- 	return 0;
-+
-+exit_release_region:
-+	if (iommap != 0)
-+		release_mem_region(iommap, 8 << ioshift);
-+	else
-+		release_region(io, 8);
-+exit_free_irq:
-+	free_irq(irq, (void *)&hardware);
-+
-+	return result;
- }
- 
- static int __devexit lirc_serial_remove(struct platform_device *dev)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0072-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0072-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch
deleted file mode 100644
index a2fc8cf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0072-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7d10af4b409b98292b59a8081e2083e12c23e5c9 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 16 Nov 2011 01:53:25 -0300
-Subject: [PATCH 72/95] media: staging: lirc_serial: Fix deadlock on resume
- failure
-
-commit 1ff1d88e862948ae5bfe490248c023ff8ac2855d upstream.
-
-A resume function cannot remove the device it is resuming!
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/media/lirc/lirc_serial.c |    4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
-index d833772..befe626 100644
---- a/drivers/staging/media/lirc/lirc_serial.c
-+++ b/drivers/staging/media/lirc/lirc_serial.c
-@@ -1127,10 +1127,8 @@ static int lirc_serial_resume(struct platform_device *dev)
- {
- 	unsigned long flags;
- 
--	if (hardware_init_port() < 0) {
--		lirc_serial_exit();
-+	if (hardware_init_port() < 0)
- 		return -EINVAL;
--	}
- 
- 	spin_lock_irqsave(&hardware[type].lock, flags);
- 	/* Enable Interrupt */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0073-media-staging-lirc_serial-Do-not-assume-error-codes-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0073-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
deleted file mode 100644
index 122dbd3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0073-media-staging-lirc_serial-Do-not-assume-error-codes-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2ba099664516f33ff853e47879858e4f290a4b29 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 16 Nov 2011 01:54:04 -0300
-Subject: [PATCH 73/95] media: staging: lirc_serial: Do not assume error codes
- returned by request_irq()
-
-commit affc9a0d59ac49bd304e2137bd5e4ffdd6fdfa52 upstream.
-
-lirc_serial_probe() must fail if request_irq() returns an error, even if
-it isn't EBUSY or EINVAL,
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/media/lirc/lirc_serial.c |   21 +++++++++------------
- 1 file changed, 9 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/staging/media/lirc/lirc_serial.c b/drivers/staging/media/lirc/lirc_serial.c
-index befe626..1501e4e 100644
---- a/drivers/staging/media/lirc/lirc_serial.c
-+++ b/drivers/staging/media/lirc/lirc_serial.c
-@@ -843,18 +843,15 @@ static int __devinit lirc_serial_probe(struct platform_device *dev)
- 	result = request_irq(irq, irq_handler,
- 			     (share_irq ? IRQF_SHARED : 0),
- 			     LIRC_DRIVER_NAME, (void *)&hardware);
--
--	switch (result) {
--	case -EBUSY:
--		printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n", irq);
--		return -EBUSY;
--	case -EINVAL:
--		printk(KERN_ERR LIRC_DRIVER_NAME
--		       ": Bad irq number or handler\n");
--		return -EINVAL;
--	default:
--		break;
--	};
-+	if (result < 0) {
-+		if (result == -EBUSY)
-+			printk(KERN_ERR LIRC_DRIVER_NAME ": IRQ %d busy\n",
-+			       irq);
-+		else if (result == -EINVAL)
-+			printk(KERN_ERR LIRC_DRIVER_NAME
-+			       ": Bad irq number or handler\n");
-+		return result;
-+	}
- 
- 	/* Reserve io region. */
- 	/*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0074-Input-ALPS-fix-touchpad-detection-when-buttons-are-p.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0074-Input-ALPS-fix-touchpad-detection-when-buttons-are-p.patch
deleted file mode 100644
index b055ac4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0074-Input-ALPS-fix-touchpad-detection-when-buttons-are-p.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 5162124d608a6fe5d31d75b7aa8ee3accb839b73 Mon Sep 17 00:00:00 2001
-From: Akio Idehara <zbe64533 at gmail.com>
-Date: Thu, 8 Mar 2012 13:48:12 -0600
-Subject: [PATCH 74/95] Input: ALPS - fix touchpad detection when buttons are
- pressed
-
-commit 99c90ab31fad855b9da9dee3a5aa6c27f263e9d6 upstream.
-
-ALPS touchpad detection fails if some buttons of ALPS are pressed.
-The reason is that the "E6" query response byte is different from
-what is expected.
-
-This was tested on a Toshiba Portege R500.
-
-Signed-off-by: Akio Idehara <zbe64533 at gmail.com>
-Tested-by: Seth Forshee <seth.forshee at canonical.com>
-Signed-off-by: Dmitry Torokhov <dtor at mail.ru>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/input/mouse/alps.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/input/mouse/alps.c b/drivers/input/mouse/alps.c
-index 003587c..9c40c11 100644
---- a/drivers/input/mouse/alps.c
-+++ b/drivers/input/mouse/alps.c
-@@ -421,7 +421,9 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
- 
- 	/*
- 	 * First try "E6 report".
--	 * ALPS should return 0,0,10 or 0,0,100
-+	 * ALPS should return 0,0,10 or 0,0,100 if no buttons are pressed.
-+	 * The bits 0-2 of the first byte will be 1s if some buttons are
-+	 * pressed.
- 	 */
- 	param[0] = 0;
- 	if (ps2_command(ps2dev, param, PSMOUSE_CMD_SETRES) ||
-@@ -437,7 +439,8 @@ static const struct alps_model_info *alps_get_model(struct psmouse *psmouse, int
- 	psmouse_dbg(psmouse, "E6 report: %2.2x %2.2x %2.2x",
- 		    param[0], param[1], param[2]);
- 
--	if (param[0] != 0 || param[1] != 0 || (param[2] != 10 && param[2] != 100))
-+	if ((param[0] & 0xf8) != 0 || param[1] != 0 ||
-+	    (param[2] != 10 && param[2] != 100))
- 		return NULL;
- 
- 	/*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0075-hwmon-pmbus_core-Fix-maximum-number-of-POUT-alarm-at.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0075-hwmon-pmbus_core-Fix-maximum-number-of-POUT-alarm-at.patch
deleted file mode 100644
index 98be539..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0075-hwmon-pmbus_core-Fix-maximum-number-of-POUT-alarm-at.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 91273a5272671509374d798d6608d270dde753f4 Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Sun, 4 Mar 2012 08:10:57 -0800
-Subject: [PATCH 75/95] hwmon: (pmbus_core) Fix maximum number of POUT alarm
- attributes
-
-commit 7cb3c44fb1f7999e4c53b6a52de6bc25da6de079 upstream.
-
-There are up to three POUT alarm attributes, not two, since cap_alarm was added.
-
-Reported-by: Michele Petracca <mi.petracca at gmail.com>
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/pmbus/pmbus_core.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/pmbus/pmbus_core.c b/drivers/hwmon/pmbus/pmbus_core.c
-index 00460d8..d89b339 100644
---- a/drivers/hwmon/pmbus/pmbus_core.c
-+++ b/drivers/hwmon/pmbus/pmbus_core.c
-@@ -54,7 +54,8 @@
- 						   lcrit_alarm, crit_alarm */
- #define PMBUS_IOUT_BOOLEANS_PER_PAGE	3	/* alarm, lcrit_alarm,
- 						   crit_alarm */
--#define PMBUS_POUT_BOOLEANS_PER_PAGE	2	/* alarm, crit_alarm */
-+#define PMBUS_POUT_BOOLEANS_PER_PAGE	3	/* cap_alarm, alarm, crit_alarm
-+						 */
- #define PMBUS_MAX_BOOLEANS_PER_FAN	2	/* alarm, fault */
- #define PMBUS_MAX_BOOLEANS_PER_TEMP	4	/* min_alarm, max_alarm,
- 						   lcrit_alarm, crit_alarm */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0076-hwmon-jc42-Add-support-for-ST-Microelectronics-STTS2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0076-hwmon-jc42-Add-support-for-ST-Microelectronics-STTS2.patch
deleted file mode 100644
index 808d2c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0076-hwmon-jc42-Add-support-for-ST-Microelectronics-STTS2.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 5c986387e4a96e195dc0e7517e9e5dacb12e29b8 Mon Sep 17 00:00:00 2001
-From: Jean Delvare <khali at linux-fr.org>
-Date: Mon, 5 Mar 2012 08:32:00 -0500
-Subject: [PATCH 76/95] hwmon: (jc42) Add support for ST Microelectronics
- STTS2002 and STTS3000
-
-commit 4de86126a712ba83fa038d277c8282f7ed466a4b upstream.
-
-These are fully compatible with Jedec JC 42.4 as far as I can see.
-
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Cc: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- Documentation/hwmon/jc42 |    6 ++++++
- drivers/hwmon/Kconfig    |    3 ++-
- drivers/hwmon/jc42.c     |   10 ++++++++++
- 3 files changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/Documentation/hwmon/jc42 b/Documentation/hwmon/jc42
-index a22ecf4..e713375 100644
---- a/Documentation/hwmon/jc42
-+++ b/Documentation/hwmon/jc42
-@@ -48,6 +48,12 @@ Supported chips:
-     Datasheets:
- 	http://www.st.com/stonline/products/literature/ds/13447/stts424.pdf
- 	http://www.st.com/stonline/products/literature/ds/13448/stts424e02.pdf
-+  * ST Microelectronics STTS2002, STTS3000
-+    Prefix: 'stts2002', 'stts3000'
-+    Addresses scanned: I2C 0x18 - 0x1f
-+    Datasheets:
-+	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATASHEET/CD00225278.pdf
-+	http://www.st.com/internet/com/TECHNICAL_RESOURCES/TECHNICAL_LITERATURE/DATA_BRIEF/CD00270920.pdf
-   * JEDEC JC 42.4 compliant temperature sensor chips
-     Prefix: 'jc42'
-     Addresses scanned: I2C 0x18 - 0x1f
-diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
-index 91be41f..629833a 100644
---- a/drivers/hwmon/Kconfig
-+++ b/drivers/hwmon/Kconfig
-@@ -498,7 +498,8 @@ config SENSORS_JC42
- 	  temperature sensors, which are used on many DDR3 memory modules for
- 	  mobile devices and servers.  Support will include, but not be limited
- 	  to, ADT7408, CAT34TS02, CAT6095, MAX6604, MCP9805, MCP98242, MCP98243,
--	  MCP9843, SE97, SE98, STTS424(E), TSE2002B3, and TS3000B3.
-+	  MCP9843, SE97, SE98, STTS424(E), STTS2002, STTS3000, TSE2002B3, and
-+	  TS3000B3.
- 
- 	  This driver can also be built as a module.  If so, the module
- 	  will be called jc42.
-diff --git a/drivers/hwmon/jc42.c b/drivers/hwmon/jc42.c
-index 2d3d728..4cbd4c7 100644
---- a/drivers/hwmon/jc42.c
-+++ b/drivers/hwmon/jc42.c
-@@ -113,6 +113,12 @@ static const unsigned short normal_i2c[] = {
- #define STTS424E_DEVID		0x0000
- #define STTS424E_DEVID_MASK	0xfffe
- 
-+#define STTS2002_DEVID		0x0300
-+#define STTS2002_DEVID_MASK	0xffff
-+
-+#define STTS3000_DEVID		0x0200
-+#define STTS3000_DEVID_MASK	0xffff
-+
- static u16 jc42_hysteresis[] = { 0, 1500, 3000, 6000 };
- 
- struct jc42_chips {
-@@ -133,6 +139,8 @@ static struct jc42_chips jc42_chips[] = {
- 	{ NXP_MANID, SE98_DEVID, SE98_DEVID_MASK },
- 	{ STM_MANID, STTS424_DEVID, STTS424_DEVID_MASK },
- 	{ STM_MANID, STTS424E_DEVID, STTS424E_DEVID_MASK },
-+	{ STM_MANID, STTS2002_DEVID, STTS2002_DEVID_MASK },
-+	{ STM_MANID, STTS3000_DEVID, STTS3000_DEVID_MASK },
- };
- 
- /* Each client has this additional data */
-@@ -171,6 +179,8 @@ static const struct i2c_device_id jc42_id[] = {
- 	{ "se97b", 0 },
- 	{ "se98", 0 },
- 	{ "stts424", 0 },
-+	{ "stts2002", 0 },
-+	{ "stts3000", 0 },
- 	{ "tse2002b3", 0 },
- 	{ "ts3000b3", 0 },
- 	{ }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0077-hwmon-jc42-Add-support-for-AT30TS00-TS3000GB2-TSE200.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0077-hwmon-jc42-Add-support-for-AT30TS00-TS3000GB2-TSE200.patch
deleted file mode 100644
index e3d25e7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0077-hwmon-jc42-Add-support-for-AT30TS00-TS3000GB2-TSE200.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From 9d585bc4172c764b7f6aaf2c06a4b8e9747302ad Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Mon, 5 Mar 2012 11:13:52 -0800
-Subject: [PATCH 77/95] hwmon: (jc42) Add support for AT30TS00, TS3000GB2,
- TSE2002GB2, and MCP9804
-
-commit 1bd612a25855f4cc9345052b53d7da697dba6358 upstream.
-
-Also update IDT datasheet locations.
-
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- Documentation/hwmon/jc42 |   20 ++++++++++++++------
- drivers/hwmon/Kconfig    |    6 +++---
- drivers/hwmon/jc42.c     |   20 ++++++++++++++++++--
- 3 files changed, 35 insertions(+), 11 deletions(-)
-
-diff --git a/Documentation/hwmon/jc42 b/Documentation/hwmon/jc42
-index e713375..52729a7 100644
---- a/Documentation/hwmon/jc42
-+++ b/Documentation/hwmon/jc42
-@@ -7,21 +7,29 @@ Supported chips:
-     Addresses scanned: I2C 0x18 - 0x1f
-     Datasheets:
- 	http://www.analog.com/static/imported-files/data_sheets/ADT7408.pdf
--  * IDT TSE2002B3, TS3000B3
--    Prefix: 'tse2002b3', 'ts3000b3'
-+  * Atmel AT30TS00
-+    Prefix: 'at30ts00'
-     Addresses scanned: I2C 0x18 - 0x1f
-     Datasheets:
--	http://www.idt.com/products/getdoc.cfm?docid=18715691
--	http://www.idt.com/products/getdoc.cfm?docid=18715692
-+	http://www.atmel.com/Images/doc8585.pdf
-+  * IDT TSE2002B3, TSE2002GB2, TS3000B3, TS3000GB2
-+    Prefix: 'tse2002', 'ts3000'
-+    Addresses scanned: I2C 0x18 - 0x1f
-+    Datasheets:
-+	http://www.idt.com/sites/default/files/documents/IDT_TSE2002B3C_DST_20100512_120303152056.pdf
-+	http://www.idt.com/sites/default/files/documents/IDT_TSE2002GB2A1_DST_20111107_120303145914.pdf
-+	http://www.idt.com/sites/default/files/documents/IDT_TS3000B3A_DST_20101129_120303152013.pdf
-+	http://www.idt.com/sites/default/files/documents/IDT_TS3000GB2A1_DST_20111104_120303151012.pdf
-   * Maxim MAX6604
-     Prefix: 'max6604'
-     Addresses scanned: I2C 0x18 - 0x1f
-     Datasheets:
- 	http://datasheets.maxim-ic.com/en/ds/MAX6604.pdf
--  * Microchip MCP9805, MCP98242, MCP98243, MCP9843
--    Prefixes: 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843'
-+  * Microchip MCP9804, MCP9805, MCP98242, MCP98243, MCP9843
-+    Prefixes: 'mcp9804', 'mcp9805', 'mcp98242', 'mcp98243', 'mcp9843'
-     Addresses scanned: I2C 0x18 - 0x1f
-     Datasheets:
-+	http://ww1.microchip.com/downloads/en/DeviceDoc/22203C.pdf
- 	http://ww1.microchip.com/downloads/en/DeviceDoc/21977b.pdf
- 	http://ww1.microchip.com/downloads/en/DeviceDoc/21996a.pdf
- 	http://ww1.microchip.com/downloads/en/DeviceDoc/22153c.pdf
-diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
-index 629833a..83e3e9d 100644
---- a/drivers/hwmon/Kconfig
-+++ b/drivers/hwmon/Kconfig
-@@ -497,9 +497,9 @@ config SENSORS_JC42
- 	  If you say yes here, you get support for JEDEC JC42.4 compliant
- 	  temperature sensors, which are used on many DDR3 memory modules for
- 	  mobile devices and servers.  Support will include, but not be limited
--	  to, ADT7408, CAT34TS02, CAT6095, MAX6604, MCP9805, MCP98242, MCP98243,
--	  MCP9843, SE97, SE98, STTS424(E), STTS2002, STTS3000, TSE2002B3, and
--	  TS3000B3.
-+	  to, ADT7408, AT30TS00, CAT34TS02, CAT6095, MAX6604, MCP9804, MCP9805,
-+	  MCP98242, MCP98243, MCP9843, SE97, SE98, STTS424(E), STTS2002,
-+	  STTS3000, TSE2002B3, TSE2002GB2, TS3000B3, and TS3000GB2.
- 
- 	  This driver can also be built as a module.  If so, the module
- 	  will be called jc42.
-diff --git a/drivers/hwmon/jc42.c b/drivers/hwmon/jc42.c
-index 4cbd4c7..0274a05 100644
---- a/drivers/hwmon/jc42.c
-+++ b/drivers/hwmon/jc42.c
-@@ -64,6 +64,7 @@ static const unsigned short normal_i2c[] = {
- 
- /* Manufacturer IDs */
- #define ADT_MANID		0x11d4  /* Analog Devices */
-+#define ATMEL_MANID		0x001f  /* Atmel */
- #define MAX_MANID		0x004d  /* Maxim */
- #define IDT_MANID		0x00b3  /* IDT */
- #define MCP_MANID		0x0054  /* Microchip */
-@@ -77,15 +78,25 @@ static const unsigned short normal_i2c[] = {
- #define ADT7408_DEVID		0x0801
- #define ADT7408_DEVID_MASK	0xffff
- 
-+/* Atmel */
-+#define AT30TS00_DEVID		0x8201
-+#define AT30TS00_DEVID_MASK	0xffff
-+
- /* IDT */
- #define TS3000B3_DEVID		0x2903  /* Also matches TSE2002B3 */
- #define TS3000B3_DEVID_MASK	0xffff
- 
-+#define TS3000GB2_DEVID		0x2912  /* Also matches TSE2002GB2 */
-+#define TS3000GB2_DEVID_MASK	0xffff
-+
- /* Maxim */
- #define MAX6604_DEVID		0x3e00
- #define MAX6604_DEVID_MASK	0xffff
- 
- /* Microchip */
-+#define MCP9804_DEVID		0x0200
-+#define MCP9804_DEVID_MASK	0xfffc
-+
- #define MCP98242_DEVID		0x2000
- #define MCP98242_DEVID_MASK	0xfffc
- 
-@@ -129,8 +140,11 @@ struct jc42_chips {
- 
- static struct jc42_chips jc42_chips[] = {
- 	{ ADT_MANID, ADT7408_DEVID, ADT7408_DEVID_MASK },
-+	{ ATMEL_MANID, AT30TS00_DEVID, AT30TS00_DEVID_MASK },
- 	{ IDT_MANID, TS3000B3_DEVID, TS3000B3_DEVID_MASK },
-+	{ IDT_MANID, TS3000GB2_DEVID, TS3000GB2_DEVID_MASK },
- 	{ MAX_MANID, MAX6604_DEVID, MAX6604_DEVID_MASK },
-+	{ MCP_MANID, MCP9804_DEVID, MCP9804_DEVID_MASK },
- 	{ MCP_MANID, MCP98242_DEVID, MCP98242_DEVID_MASK },
- 	{ MCP_MANID, MCP98243_DEVID, MCP98243_DEVID_MASK },
- 	{ MCP_MANID, MCP9843_DEVID, MCP9843_DEVID_MASK },
-@@ -167,10 +181,12 @@ static struct jc42_data *jc42_update_device(struct device *dev);
- 
- static const struct i2c_device_id jc42_id[] = {
- 	{ "adt7408", 0 },
-+	{ "at30ts00", 0 },
- 	{ "cat94ts02", 0 },
- 	{ "cat6095", 0 },
- 	{ "jc42", 0 },
- 	{ "max6604", 0 },
-+	{ "mcp9804", 0 },
- 	{ "mcp9805", 0 },
- 	{ "mcp98242", 0 },
- 	{ "mcp98243", 0 },
-@@ -181,8 +197,8 @@ static const struct i2c_device_id jc42_id[] = {
- 	{ "stts424", 0 },
- 	{ "stts2002", 0 },
- 	{ "stts3000", 0 },
--	{ "tse2002b3", 0 },
--	{ "ts3000b3", 0 },
-+	{ "tse2002", 0 },
-+	{ "ts3000", 0 },
- 	{ }
- };
- MODULE_DEVICE_TABLE(i2c, jc42_id);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0078-hwmon-zl6100-Maintain-delay-parameter-in-driver-inst.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0078-hwmon-zl6100-Maintain-delay-parameter-in-driver-inst.patch
deleted file mode 100644
index ba5933f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0078-hwmon-zl6100-Maintain-delay-parameter-in-driver-inst.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5d579963233528f717bf7f2313a70bab7cb4e33b Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Wed, 7 Mar 2012 03:58:55 -0800
-Subject: [PATCH 78/95] hwmon: (zl6100) Maintain delay parameter in driver
- instance data
-
-commit 7ad6307ad6968ce25cecf209d4822d4c722be030 upstream.
-
-A global delay parameter has the side effect of being overwritten with 0 if a
-single ZL2004 or ZL6105 is instantiated. If other chips supported by the same
-driver are in the system, this will result in access errors for those chips.
-
-To solve the problem, keep a per-instance copy of the delay parameter, and do
-not change the original parameter.
-
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/pmbus/zl6100.c |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/hwmon/pmbus/zl6100.c b/drivers/hwmon/pmbus/zl6100.c
-index 2bc9800..ba296fd 100644
---- a/drivers/hwmon/pmbus/zl6100.c
-+++ b/drivers/hwmon/pmbus/zl6100.c
-@@ -33,6 +33,7 @@ enum chips { zl2004, zl2006, zl2008, zl2105, zl2106, zl6100, zl6105 };
- struct zl6100_data {
- 	int id;
- 	ktime_t access;		/* chip access time */
-+	int delay;		/* Delay between chip accesses in uS */
- 	struct pmbus_driver_info info;
- };
- 
-@@ -49,10 +50,10 @@ MODULE_PARM_DESC(delay, "Delay between chip accesses in uS");
- /* Some chips need a delay between accesses */
- static inline void zl6100_wait(const struct zl6100_data *data)
- {
--	if (delay) {
-+	if (data->delay) {
- 		s64 delta = ktime_us_delta(ktime_get(), data->access);
--		if (delta < delay)
--			udelay(delay - delta);
-+		if (delta < data->delay)
-+			udelay(data->delay - delta);
- 	}
- }
- 
-@@ -184,8 +185,9 @@ static int zl6100_probe(struct i2c_client *client,
- 	 * can be cleared later for additional chips if tests show that it
- 	 * is not needed (in other words, better be safe than sorry).
- 	 */
-+	data->delay = delay;
- 	if (data->id == zl2004 || data->id == zl6105)
--		delay = 0;
-+		data->delay = 0;
- 
- 	/*
- 	 * Since there was a direct I2C device access above, wait before
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch
deleted file mode 100644
index d0487ca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 1e7878587d7c034882253717322d431cb32b20f3 Mon Sep 17 00:00:00 2001
-From: Nicolas Cavallari <Nicolas.Cavallari at lri.fr>
-Date: Thu, 23 Feb 2012 16:53:34 +0100
-Subject: [PATCH 79/95] carl9170: Fix memory accounting when sta is in
- power-save mode.
-
-commit 992d52529d7840236d3059b51c15d5eb9e81a869 upstream.
-
-On Access Point mode, when transmitting a packet, if the destination
-station is in powersave mode, we abort transmitting the packet to the
-device queue, but we do not reclaim the allocated memory.  Given enough
-packets, we can go in a state where there is no packet on the device
-queue, but we think the device has no memory left, so no packet gets
-transmitted, connections breaks and the AP stops working.
-
-This undo the allocation done in the TX path when the station is in
-power-save mode.
-
-Signed-off-by: Nicolas Cavallari <cavallar at lri.fr>
-Acked-by: Christian Lamparter <chunkeey at googlemail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/carl9170/tx.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c
-index 59472e1..3e9f0f6 100644
---- a/drivers/net/wireless/ath/carl9170/tx.c
-+++ b/drivers/net/wireless/ath/carl9170/tx.c
-@@ -1251,6 +1251,7 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb)
- 			atomic_dec(&ar->tx_ampdu_upload);
- 
- 		tx_info->flags |= IEEE80211_TX_STAT_TX_FILTERED;
-+		carl9170_release_dev_space(ar, skb);
- 		carl9170_tx_status(ar, skb, false);
- 		return true;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0080-carl9170-fix-frame-delivery-if-sta-is-in-powersave-m.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0080-carl9170-fix-frame-delivery-if-sta-is-in-powersave-m.patch
deleted file mode 100644
index a4230f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0080-carl9170-fix-frame-delivery-if-sta-is-in-powersave-m.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From efc43768027c5797969aecf8fd1345486de5d2d1 Mon Sep 17 00:00:00 2001
-From: Christian Lamparter <chunkeey at googlemail.com>
-Date: Sat, 25 Feb 2012 21:36:36 +0100
-Subject: [PATCH 80/95] carl9170: fix frame delivery if sta is in powersave
- mode
-
-commit 9926a67557532acb6cddb1c1add02952175b5c72 upstream.
-
-Nicolas Cavallari discovered that carl9170 has some
-serious problems delivering data to sleeping stations.
-
-It turns out that the driver was not honoring two
-important flags (IEEE80211_TX_CTL_POLL_RESPONSE and
-IEEE80211_TX_CTL_CLEAR_PS_FILT) which are set on
-frames that should be sent although the receiving
-station is still in powersave mode.
-
-Reported-by: Nicolas Cavallari <Nicolas.Cavallari at lri.fr>
-Signed-off-by: Christian Lamparter <chunkeey at googlemail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/carl9170/tx.c |    8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/carl9170/tx.c b/drivers/net/wireless/ath/carl9170/tx.c
-index 3e9f0f6..f6384af 100644
---- a/drivers/net/wireless/ath/carl9170/tx.c
-+++ b/drivers/net/wireless/ath/carl9170/tx.c
-@@ -1234,6 +1234,7 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb)
- {
- 	struct ieee80211_sta *sta;
- 	struct carl9170_sta_info *sta_info;
-+	struct ieee80211_tx_info *tx_info;
- 
- 	rcu_read_lock();
- 	sta = __carl9170_get_tx_sta(ar, skb);
-@@ -1241,12 +1242,13 @@ static bool carl9170_tx_ps_drop(struct ar9170 *ar, struct sk_buff *skb)
- 		goto out_rcu;
- 
- 	sta_info = (void *) sta->drv_priv;
--	if (unlikely(sta_info->sleeping)) {
--		struct ieee80211_tx_info *tx_info;
-+	tx_info = IEEE80211_SKB_CB(skb);
- 
-+	if (unlikely(sta_info->sleeping) &&
-+	    !(tx_info->flags & (IEEE80211_TX_CTL_POLL_RESPONSE |
-+				IEEE80211_TX_CTL_CLEAR_PS_FILT))) {
- 		rcu_read_unlock();
- 
--		tx_info = IEEE80211_SKB_CB(skb);
- 		if (tx_info->flags & IEEE80211_TX_CTL_AMPDU)
- 			atomic_dec(&ar->tx_ampdu_upload);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0081-drm-radeon-kms-set-SX_MISC-in-the-r6xx-blit-code-v2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0081-drm-radeon-kms-set-SX_MISC-in-the-r6xx-blit-code-v2.patch
deleted file mode 100644
index 791ea42..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0081-drm-radeon-kms-set-SX_MISC-in-the-r6xx-blit-code-v2.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 24e8154fda8fb08c4bd43ed1f014da8651603eb0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Marek=20Ol=C5=A1=C3=A1k?= <maraeo at gmail.com>
-Date: Wed, 7 Mar 2012 23:33:00 +0100
-Subject: [PATCH 81/95] drm/radeon/kms: set SX_MISC in the r6xx blit code (v2)
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit cf00790dea6f210ddd01a6656da58c7c9a4ea0e4 upstream.
-
-Mesa may set it to 1, causing all primitives to be killed.
-
-v2: also update the r7xx code
-
-Signed-off-by: Marek Olšák <maraeo at gmail.com>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/r600_blit_shaders.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/r600_blit_shaders.c b/drivers/gpu/drm/radeon/r600_blit_shaders.c
-index 2d1f6c5..73e2c7c 100644
---- a/drivers/gpu/drm/radeon/r600_blit_shaders.c
-+++ b/drivers/gpu/drm/radeon/r600_blit_shaders.c
-@@ -314,6 +314,10 @@ const u32 r6xx_default_state[] =
- 	0x00000000, /* VGT_VTX_CNT_EN */
- 
- 	0xc0016900,
-+	0x000000d4,
-+	0x00000000, /* SX_MISC */
-+
-+	0xc0016900,
- 	0x000002c8,
- 	0x00000000, /* VGT_STRMOUT_BUFFER_EN */
- 
-@@ -626,6 +630,10 @@ const u32 r7xx_default_state[] =
- 	0x00000000, /* VGT_VTX_CNT_EN */
- 
- 	0xc0016900,
-+	0x000000d4,
-+	0x00000000, /* SX_MISC */
-+
-+	0xc0016900,
- 	0x000002c8,
- 	0x00000000, /* VGT_STRMOUT_BUFFER_EN */
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0082-net-usbnet-avoid-recursive-locking-in-usbnet_stop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0082-net-usbnet-avoid-recursive-locking-in-usbnet_stop.patch
deleted file mode 100644
index 3a63459..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0082-net-usbnet-avoid-recursive-locking-in-usbnet_stop.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 5eca962efc9d0a801d3d277d1bf0d0e6a7cddd33 Mon Sep 17 00:00:00 2001
-From: Sebastian Siewior <bigeasy at linutronix.de>
-Date: Wed, 7 Mar 2012 10:19:28 +0000
-Subject: [PATCH 82/95] net/usbnet: avoid recursive locking in usbnet_stop()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d upstream.
-
-|kernel BUG at kernel/rtmutex.c:724!
-|[<c029599c>] (rt_spin_lock_slowlock+0x108/0x2bc) from [<c01c2330>] (defer_bh+0x1c/0xb4)
-|[<c01c2330>] (defer_bh+0x1c/0xb4) from [<c01c3afc>] (rx_complete+0x14c/0x194)
-|[<c01c3afc>] (rx_complete+0x14c/0x194) from [<c01cac88>] (usb_hcd_giveback_urb+0xa0/0xf0)
-|[<c01cac88>] (usb_hcd_giveback_urb+0xa0/0xf0) from [<c01e1ff4>] (musb_giveback+0x34/0x40)
-|[<c01e1ff4>] (musb_giveback+0x34/0x40) from [<c01e2b1c>] (musb_advance_schedule+0xb4/0x1c0)
-|[<c01e2b1c>] (musb_advance_schedule+0xb4/0x1c0) from [<c01e2ca8>] (musb_cleanup_urb.isra.9+0x80/0x8c)
-|[<c01e2ca8>] (musb_cleanup_urb.isra.9+0x80/0x8c) from [<c01e2ed0>] (musb_urb_dequeue+0xec/0x108)
-|[<c01e2ed0>] (musb_urb_dequeue+0xec/0x108) from [<c01cbb90>] (unlink1+0xbc/0xcc)
-|[<c01cbb90>] (unlink1+0xbc/0xcc) from [<c01cc2ec>] (usb_hcd_unlink_urb+0x54/0xa8)
-|[<c01cc2ec>] (usb_hcd_unlink_urb+0x54/0xa8) from [<c01c2a84>] (unlink_urbs.isra.17+0x2c/0x58)
-|[<c01c2a84>] (unlink_urbs.isra.17+0x2c/0x58) from [<c01c2b44>] (usbnet_terminate_urbs+0x94/0x10c)
-|[<c01c2b44>] (usbnet_terminate_urbs+0x94/0x10c) from [<c01c2d68>] (usbnet_stop+0x100/0x15c)
-|[<c01c2d68>] (usbnet_stop+0x100/0x15c) from [<c020f718>] (__dev_close_many+0x94/0xc8)
-
-defer_bh() takes the lock which is hold during unlink_urbs(). The safe
-walk suggest that the skb will be removed from the list and this is done
-by defer_bh() so it seems to be okay to drop the lock here.
-
-Reported-by: Aníbal Almeida Pinto <anibal.pinto at efacec.com>
-Signed-off-by: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
-Acked-by: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/usbnet.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
-index fae0fbd..81b96e3 100644
---- a/drivers/net/usb/usbnet.c
-+++ b/drivers/net/usb/usbnet.c
-@@ -589,6 +589,7 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)
- 		entry = (struct skb_data *) skb->cb;
- 		urb = entry->urb;
- 
-+		spin_unlock_irqrestore(&q->lock, flags);
- 		// during some PM-driven resume scenarios,
- 		// these (async) unlinks complete immediately
- 		retval = usb_unlink_urb (urb);
-@@ -596,6 +597,7 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)
- 			netdev_dbg(dev->net, "unlink urb err, %d\n", retval);
- 		else
- 			count++;
-+		spin_lock_irqsave(&q->lock, flags);
- 	}
- 	spin_unlock_irqrestore (&q->lock, flags);
- 	return count;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0083-x86-amd-iommu_set_device_table-must-not-be-__init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0083-x86-amd-iommu_set_device_table-must-not-be-__init.patch
deleted file mode 100644
index 550f71e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0083-x86-amd-iommu_set_device_table-must-not-be-__init.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From f50bbf712b1cdce7339fe0c1f57eb6b348b78583 Mon Sep 17 00:00:00 2001
-From: Jan Beulich <JBeulich at suse.com>
-Date: Thu, 8 Mar 2012 08:58:13 +0000
-Subject: [PATCH 83/95] x86/amd: iommu_set_device_table() must not be __init
-
-commit 6b7f000eb6a0b81d7a809833edb7a457eedf8512 upstream.
-
-This function is called from enable_iommus(), which in turn is used
-from amd_iommu_resume().
-
-Signed-off-by: Jan Beulich <jbeulich at suse.com>
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/iommu/amd_iommu_init.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
-index 82d2410..5c74179 100644
---- a/drivers/iommu/amd_iommu_init.c
-+++ b/drivers/iommu/amd_iommu_init.c
-@@ -268,7 +268,7 @@ static void iommu_set_exclusion_range(struct amd_iommu *iommu)
- }
- 
- /* Programs the physical address of the device table into the IOMMU hardware */
--static void __init iommu_set_device_table(struct amd_iommu *iommu)
-+static void iommu_set_device_table(struct amd_iommu *iommu)
- {
- 	u64 entry;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0084-dm-ioctl-do-not-leak-argv-if-target-message-only-con.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0084-dm-ioctl-do-not-leak-argv-if-target-message-only-con.patch
deleted file mode 100644
index 30e0ec3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0084-dm-ioctl-do-not-leak-argv-if-target-message-only-con.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c9c445f3f6b243f089761858523737e757cc983c Mon Sep 17 00:00:00 2001
-From: Jesper Juhl <jj at chaosbits.net>
-Date: Wed, 7 Mar 2012 19:09:34 +0000
-Subject: [PATCH 84/95] dm ioctl: do not leak argv if target message only
- contains whitespace
-
-commit 902c6a96a7cb9c50d2a8aed1788efad0a5d8f04c upstream.
-
-If 'argc' is zero we jump to the 'out:' label, but this leaks the
-(unused) memory that 'dm_split_args()' allocated for 'argv' if the
-string being split consisted entirely of whitespace.  Jump to the
-'out_argv:' label instead to free up that memory.
-
-Signed-off-by: Jesper Juhl <jj at chaosbits.net>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-ioctl.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/md/dm-ioctl.c b/drivers/md/dm-ioctl.c
-index 31c2dc2..1ce84ed 100644
---- a/drivers/md/dm-ioctl.c
-+++ b/drivers/md/dm-ioctl.c
-@@ -1437,7 +1437,7 @@ static int target_message(struct dm_ioctl *param, size_t param_size)
- 
- 	if (!argc) {
- 		DMWARN("Empty message received.");
--		goto out;
-+		goto out_argv;
- 	}
- 
- 	table = dm_get_live_table(md);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0085-dm-io-fix-discard-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0085-dm-io-fix-discard-support.patch
deleted file mode 100644
index b5ff74a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0085-dm-io-fix-discard-support.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From cf6db92080c563161f5626184902162432f5fac5 Mon Sep 17 00:00:00 2001
-From: Milan Broz <mbroz at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:37 +0000
-Subject: [PATCH 85/95] dm io: fix discard support
-
-commit 0c535e0d6f463365c29623350dbd91642363c39b upstream.
-
-This patch fixes a crash by recognising discards in dm_io.
-
-Currently dm_mirror can send REQ_DISCARD bios if running over a
-discard-enabled device and without support in dm_io the system
-crashes badly.
-
-BUG: unable to handle kernel paging request at 00800000
-IP:  __bio_add_page.part.17+0xf5/0x1e0
-...
- bio_add_page+0x56/0x70
- dispatch_io+0x1cf/0x240 [dm_mod]
- ? km_get_page+0x50/0x50 [dm_mod]
- ? vm_next_page+0x20/0x20 [dm_mod]
- ? mirror_flush+0x130/0x130 [dm_mirror]
- dm_io+0xdc/0x2b0 [dm_mod]
-...
-
-Introduced in 2.6.38-rc1 by commit 5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4
-(dm raid1: support discard).
-
-Signed-off-by: Milan Broz <mbroz at redhat.com>
-Acked-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-io.c |   23 ++++++++++++++++-------
- 1 file changed, 16 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/md/dm-io.c b/drivers/md/dm-io.c
-index ad2eba4..ea5dd28 100644
---- a/drivers/md/dm-io.c
-+++ b/drivers/md/dm-io.c
-@@ -296,6 +296,8 @@ static void do_region(int rw, unsigned region, struct dm_io_region *where,
- 	unsigned offset;
- 	unsigned num_bvecs;
- 	sector_t remaining = where->count;
-+	struct request_queue *q = bdev_get_queue(where->bdev);
-+	sector_t discard_sectors;
- 
- 	/*
- 	 * where->count may be zero if rw holds a flush and we need to
-@@ -305,9 +307,12 @@ static void do_region(int rw, unsigned region, struct dm_io_region *where,
- 		/*
- 		 * Allocate a suitably sized-bio.
- 		 */
--		num_bvecs = dm_sector_div_up(remaining,
--					     (PAGE_SIZE >> SECTOR_SHIFT));
--		num_bvecs = min_t(int, bio_get_nr_vecs(where->bdev), num_bvecs);
-+		if (rw & REQ_DISCARD)
-+			num_bvecs = 1;
-+		else
-+			num_bvecs = min_t(int, bio_get_nr_vecs(where->bdev),
-+					  dm_sector_div_up(remaining, (PAGE_SIZE >> SECTOR_SHIFT)));
-+
- 		bio = bio_alloc_bioset(GFP_NOIO, num_bvecs, io->client->bios);
- 		bio->bi_sector = where->sector + (where->count - remaining);
- 		bio->bi_bdev = where->bdev;
-@@ -315,10 +320,14 @@ static void do_region(int rw, unsigned region, struct dm_io_region *where,
- 		bio->bi_destructor = dm_bio_destructor;
- 		store_io_and_region_in_bio(bio, io, region);
- 
--		/*
--		 * Try and add as many pages as possible.
--		 */
--		while (remaining) {
-+		if (rw & REQ_DISCARD) {
-+			discard_sectors = min_t(sector_t, q->limits.max_discard_sectors, remaining);
-+			bio->bi_size = discard_sectors << SECTOR_SHIFT;
-+			remaining -= discard_sectors;
-+		} else while (remaining) {
-+			/*
-+			 * Try and add as many pages as possible.
-+			 */
- 			dp->get_page(dp, &page, &len, &offset);
- 			len = min(len, to_bytes(remaining));
- 			if (!bio_add_page(bio, page, len, offset))
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0086-dm-flakey-fix-crash-on-read-when-corrupt_bio_byte-no.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0086-dm-flakey-fix-crash-on-read-when-corrupt_bio_byte-no.patch
deleted file mode 100644
index 82b4987..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0086-dm-flakey-fix-crash-on-read-when-corrupt_bio_byte-no.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 91d95657633fa1d1bd641323977bc4639d39599d Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:39 +0000
-Subject: [PATCH 86/95] dm flakey: fix crash on read when corrupt_bio_byte not
- set
-
-commit 1212268fd9816e3b8801e57b896fceaec71969ad upstream.
-
-The following BUG is hit on the first read that is submitted to a dm
-flakey test device while the device is "down" if the corrupt_bio_byte
-feature wasn't requested when the device's table was loaded.
-
-Example DM table that will hit this BUG:
-0 2097152 flakey 8:0 2048 0 30
-
-This bug was introduced by commit a3998799fb4df0b0af8271a7d50c4269032397aa
-(dm flakey: add corrupt_bio_byte feature) in v3.1-rc1.
-
-BUG: unable to handle kernel paging request at ffff8801cfce3fff
-IP: [<ffffffffa008c233>] corrupt_bio_data+0x6e/0xae [dm_flakey]
-PGD 1606063 PUD 0
-Oops: 0002 [#1] SMP
-...
-Call Trace:
- <IRQ>
- [<ffffffffa008c2b5>] flakey_end_io+0x42/0x48 [dm_flakey]
- [<ffffffffa00dca98>] clone_endio+0x54/0xb6 [dm_mod]
- [<ffffffff81130587>] bio_endio+0x2d/0x2f
- [<ffffffff811c819a>] req_bio_endio+0x96/0x9f
- [<ffffffff811c94b9>] blk_update_request+0x1dc/0x3a9
- [<ffffffff812f5ee2>] ? rcu_read_unlock+0x21/0x23
- [<ffffffff811c96a6>] blk_update_bidi_request+0x20/0x6e
- [<ffffffff811c9713>] blk_end_bidi_request+0x1f/0x5d
- [<ffffffff811c978d>] blk_end_request+0x10/0x12
- [<ffffffff8128f450>] scsi_io_completion+0x1e5/0x4b1
- [<ffffffff812882a9>] scsi_finish_command+0xec/0xf5
- [<ffffffff8128f830>] scsi_softirq_done+0xff/0x108
- [<ffffffff811ce284>] blk_done_softirq+0x84/0x98
- [<ffffffff81048d19>] __do_softirq+0xe3/0x1d5
- [<ffffffff8138f83f>] ? _raw_spin_lock+0x62/0x69
- [<ffffffff810997cf>] ? handle_irq_event+0x4c/0x61
- [<ffffffff8139833c>] call_softirq+0x1c/0x30
- [<ffffffff81003b37>] do_softirq+0x4b/0xa3
- [<ffffffff81048a39>] irq_exit+0x53/0xca
- [<ffffffff81398acd>] do_IRQ+0x9d/0xb4
- [<ffffffff81390333>] common_interrupt+0x73/0x73
-...
-
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-flakey.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/md/dm-flakey.c b/drivers/md/dm-flakey.c
-index 9fb18c1..b280c43 100644
---- a/drivers/md/dm-flakey.c
-+++ b/drivers/md/dm-flakey.c
-@@ -323,7 +323,7 @@ static int flakey_end_io(struct dm_target *ti, struct bio *bio,
- 	 * Corrupt successful READs while in down state.
- 	 * If flags were specified, only corrupt those that match.
- 	 */
--	if (!error && bio_submitted_while_down &&
-+	if (fc->corrupt_bio_byte && !error && bio_submitted_while_down &&
- 	    (bio_data_dir(bio) == READ) && (fc->corrupt_bio_rw == READ) &&
- 	    all_corrupt_bio_flags_match(bio, fc))
- 		corrupt_bio_data(bio, fc);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0087-dm-thin-metadata-remove-incorrect-close_device-on-cr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0087-dm-thin-metadata-remove-incorrect-close_device-on-cr.patch
deleted file mode 100644
index a144801..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0087-dm-thin-metadata-remove-incorrect-close_device-on-cr.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 1797a1bfe359bd465954e915c1cd1988f346f792 Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:41 +0000
-Subject: [PATCH 87/95] dm thin metadata: remove incorrect close_device on
- creation error paths
-
-commit 1f3db25d8be4ac50b897b39609802183ea68a514 upstream.
-
-The __open_device() error paths in __create_thin() and __create_snap()
-incorrectly call __close_device() even if td was not initialized by
-__open_device().  Remove this.
-
-Also document __open_device() return values, remove a redundant
-td->changed = 1 in __create_thin(), and insert an additional
-safeguard against creating an already-existing device.
-
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-thin-metadata.c |   22 +++++++++++++++++-----
- 1 file changed, 17 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
-index 59c4f04..13d9646 100644
---- a/drivers/md/dm-thin-metadata.c
-+++ b/drivers/md/dm-thin-metadata.c
-@@ -789,6 +789,11 @@ int dm_pool_metadata_close(struct dm_pool_metadata *pmd)
- 	return 0;
- }
- 
-+/*
-+ * __open_device: Returns @td corresponding to device with id @dev,
-+ * creating it if @create is set and incrementing @td->open_count.
-+ * On failure, @td is undefined.
-+ */
- static int __open_device(struct dm_pool_metadata *pmd,
- 			 dm_thin_id dev, int create,
- 			 struct dm_thin_device **td)
-@@ -799,10 +804,16 @@ static int __open_device(struct dm_pool_metadata *pmd,
- 	struct disk_device_details details_le;
- 
- 	/*
--	 * Check the device isn't already open.
-+	 * If the device is already open, return it.
- 	 */
- 	list_for_each_entry(td2, &pmd->thin_devices, list)
- 		if (td2->id == dev) {
-+			/*
-+			 * May not create an already-open device.
-+			 */
-+			if (create)
-+				return -EEXIST;
-+
- 			td2->open_count++;
- 			*td = td2;
- 			return 0;
-@@ -817,6 +828,9 @@ static int __open_device(struct dm_pool_metadata *pmd,
- 		if (r != -ENODATA || !create)
- 			return r;
- 
-+		/*
-+		 * Create new device.
-+		 */
- 		changed = 1;
- 		details_le.mapped_blocks = 0;
- 		details_le.transaction_id = cpu_to_le64(pmd->trans_id);
-@@ -882,12 +896,10 @@ static int __create_thin(struct dm_pool_metadata *pmd,
- 
- 	r = __open_device(pmd, dev, 1, &td);
- 	if (r) {
--		__close_device(td);
- 		dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root);
- 		dm_btree_del(&pmd->bl_info, dev_root);
- 		return r;
- 	}
--	td->changed = 1;
- 	__close_device(td);
- 
- 	return r;
-@@ -967,14 +979,14 @@ static int __create_snap(struct dm_pool_metadata *pmd,
- 		goto bad;
- 
- 	r = __set_snapshot_details(pmd, td, origin, pmd->time);
-+	__close_device(td);
-+
- 	if (r)
- 		goto bad;
- 
--	__close_device(td);
- 	return 0;
- 
- bad:
--	__close_device(td);
- 	dm_btree_remove(&pmd->tl_info, pmd->root, &key, &pmd->root);
- 	dm_btree_remove(&pmd->details_info, pmd->details_root,
- 			&key, &pmd->details_root);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0088-dm-thin-metadata-unlock-superblock-in-init_pmd-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0088-dm-thin-metadata-unlock-superblock-in-init_pmd-error.patch
deleted file mode 100644
index 9ccbee4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0088-dm-thin-metadata-unlock-superblock-in-init_pmd-error.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 6db3a704cbd90710b19ddc34e90674680adbbb76 Mon Sep 17 00:00:00 2001
-From: Joe Thornber <ejt at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:43 +0000
-Subject: [PATCH 88/95] dm thin metadata: unlock superblock in init_pmd error
- path
-
-commit 4469a5f387fdde956894137751a41473618a4a52 upstream.
-
-If dm_sm_disk_create() fails the superblock must be unlocked.
-
-Signed-off-by: Joe Thornber <ejt at redhat.com>
-Acked-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-thin-metadata.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
-index 13d9646..05b7ffc 100644
---- a/drivers/md/dm-thin-metadata.c
-+++ b/drivers/md/dm-thin-metadata.c
-@@ -385,6 +385,7 @@ static int init_pmd(struct dm_pool_metadata *pmd,
- 		data_sm = dm_sm_disk_create(tm, nr_blocks);
- 		if (IS_ERR(data_sm)) {
- 			DMERR("sm_disk_create failed");
-+			dm_tm_unlock(tm, sblock);
- 			r = PTR_ERR(data_sm);
- 			goto bad;
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0089-dm-thin-metadata-decrement-counter-after-removing-ma.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0089-dm-thin-metadata-decrement-counter-after-removing-ma.patch
deleted file mode 100644
index 9ce8c76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0089-dm-thin-metadata-decrement-counter-after-removing-ma.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 24c3a899ae28cd532b890dcbc58136ed08867447 Mon Sep 17 00:00:00 2001
-From: Joe Thornber <ejt at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:44 +0000
-Subject: [PATCH 89/95] dm thin metadata: decrement counter after removing
- mapped block
-
-commit af63bcb817cf708f53bcae6edc2e3fb7dd7d8051 upstream.
-
-Correct the number of mapped sectors shown on a thin device's
-status line by decrementing td->mapped_blocks in __remove() each time
-a block is removed.
-
-Signed-off-by: Joe Thornber <ejt at redhat.com>
-Acked-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-thin-metadata.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/md/dm-thin-metadata.c b/drivers/md/dm-thin-metadata.c
-index 05b7ffc..237571a 100644
---- a/drivers/md/dm-thin-metadata.c
-+++ b/drivers/md/dm-thin-metadata.c
-@@ -1224,6 +1224,8 @@ static int __remove(struct dm_thin_device *td, dm_block_t block)
- 	if (r)
- 		return r;
- 
-+	td->mapped_blocks--;
-+	td->changed = 1;
- 	pmd->need_commit = 1;
- 
- 	return 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0090-dm-raid-set-MD_CHANGE_DEVS-when-rebuilding.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0090-dm-raid-set-MD_CHANGE_DEVS-when-rebuilding.patch
deleted file mode 100644
index 8ab43ff..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0090-dm-raid-set-MD_CHANGE_DEVS-when-rebuilding.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 5690a2f1259bd32707e2238b4e2e4f1f73be206f Mon Sep 17 00:00:00 2001
-From: Jonathan E Brassow <jbrassow at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:47 +0000
-Subject: [PATCH 90/95] dm raid: set MD_CHANGE_DEVS when rebuilding
-
-commit 3aa3b2b2b1edb813dc5342d0108befc39541542d upstream.
-
-The 'rebuild' parameter is used to rebuild individual devices in an
-array (e.g. resynchronize a RAID1 device or recalculate a parity device
-in higher RAID).  The MD_CHANGE_DEVS flag must be set when this
-parameter is given in order to write out the superblocks and make the
-change take immediate effect.  The code that handles new devices in
-super_load already sets MD_CHANGE_DEVS and 'FirstUse'.  (The 'FirstUse'
-flag was being set as a special case for rebuilds in
-super_init_validation.)
-
-Add a condition for rebuilds in super_load to take care of both flags
-without the special case in 'super_init_validation'.
-
-Signed-off-by: Jonathan Brassow <jbrassow at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-raid.c |   16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
-index c2907d8..4834d43 100644
---- a/drivers/md/dm-raid.c
-+++ b/drivers/md/dm-raid.c
-@@ -667,7 +667,14 @@ static int super_load(struct md_rdev *rdev, struct md_rdev *refdev)
- 		return ret;
- 
- 	sb = page_address(rdev->sb_page);
--	if (sb->magic != cpu_to_le32(DM_RAID_MAGIC)) {
-+
-+	/*
-+	 * Two cases that we want to write new superblocks and rebuild:
-+	 * 1) New device (no matching magic number)
-+	 * 2) Device specified for rebuild (!In_sync w/ offset == 0)
-+	 */
-+	if ((sb->magic != cpu_to_le32(DM_RAID_MAGIC)) ||
-+	    (!test_bit(In_sync, &rdev->flags) && !rdev->recovery_offset)) {
- 		super_sync(rdev->mddev, rdev);
- 
- 		set_bit(FirstUse, &rdev->flags);
-@@ -744,11 +751,8 @@ static int super_init_validation(struct mddev *mddev, struct md_rdev *rdev)
- 	 */
- 	rdev_for_each(r, t, mddev) {
- 		if (!test_bit(In_sync, &r->flags)) {
--			if (!test_bit(FirstUse, &r->flags))
--				DMERR("Superblock area of "
--				      "rebuild device %d should have been "
--				      "cleared.", r->raid_disk);
--			set_bit(FirstUse, &r->flags);
-+			DMINFO("Device %d specified for rebuild: "
-+			       "Clearing superblock", r->raid_disk);
- 			rebuilds++;
- 		} else if (test_bit(FirstUse, &r->flags))
- 			new_devs++;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0091-dm-raid-fix-flush-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0091-dm-raid-fix-flush-support.patch
deleted file mode 100644
index da0b5f3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0091-dm-raid-fix-flush-support.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 8092731b611778e6151662f3cc35d02101bd0ab8 Mon Sep 17 00:00:00 2001
-From: Jonathan E Brassow <jbrassow at redhat.com>
-Date: Wed, 7 Mar 2012 19:09:48 +0000
-Subject: [PATCH 91/95] dm raid: fix flush support
-
-commit 0ca93de9b789e0eb05e103f0c04de72df13da73a upstream.
-
-Fix dm-raid flush support.
-
-Both md and dm have support for flush, but the dm-raid target
-forgot to set the flag to indicate that flushes should be
-passed on.  (Important for data integrity e.g. with writeback cache
-enabled.)
-
-Signed-off-by: Jonathan Brassow <jbrassow at redhat.com>
-Acked-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-raid.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/md/dm-raid.c b/drivers/md/dm-raid.c
-index 4834d43..d2a3223 100644
---- a/drivers/md/dm-raid.c
-+++ b/drivers/md/dm-raid.c
-@@ -974,6 +974,7 @@ static int raid_ctr(struct dm_target *ti, unsigned argc, char **argv)
- 
- 	INIT_WORK(&rs->md.event_work, do_table_event);
- 	ti->private = rs;
-+	ti->num_flush_requests = 1;
- 
- 	mutex_lock(&rs->md.reconfig_mutex);
- 	ret = md_run(&rs->md);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0092-cs5535-mfgpt-don-t-call-__init-function-from-__devin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0092-cs5535-mfgpt-don-t-call-__init-function-from-__devin.patch
deleted file mode 100644
index ed0dfc6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0092-cs5535-mfgpt-don-t-call-__init-function-from-__devin.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e45077e5713c37cd22f77266a0f53e082f0b16da Mon Sep 17 00:00:00 2001
-From: Danny Kukawka <danny.kukawka at bisect.de>
-Date: Thu, 2 Feb 2012 14:20:29 +0100
-Subject: [PATCH 92/95] cs5535-mfgpt: don't call __init function from
- __devinit
-
-commit 474de3bbadd9cb75ffc32cc759c40d868343d46c upstream.
-
-Fix scan_timers() to be __devinit and not __init since
-the function get called from cs5535_mfgpt_probe which is
-__devinit.
-
-Signed-off-by: Danny Kukawka <danny.kukawka at bisect.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/misc/cs5535-mfgpt.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/misc/cs5535-mfgpt.c b/drivers/misc/cs5535-mfgpt.c
-index bc685bf..87a390d 100644
---- a/drivers/misc/cs5535-mfgpt.c
-+++ b/drivers/misc/cs5535-mfgpt.c
-@@ -262,7 +262,7 @@ static void __init reset_all_timers(void)
-  * In other cases (such as with VSAless OpenFirmware), the system firmware
-  * leaves timers available for us to use.
-  */
--static int __init scan_timers(struct cs5535_mfgpt_chip *mfgpt)
-+static int __devinit scan_timers(struct cs5535_mfgpt_chip *mfgpt)
- {
- 	struct cs5535_mfgpt_timer timer = { .chip = mfgpt };
- 	unsigned long flags;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0093-mfd-Fix-cs5535-section-mismatch.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0093-mfd-Fix-cs5535-section-mismatch.patch
deleted file mode 100644
index 009f31d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0093-mfd-Fix-cs5535-section-mismatch.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 0973b92fd13919ca18d05b13026033e9422cdff9 Mon Sep 17 00:00:00 2001
-From: Christian Gmeiner <christian.gmeiner at gmail.com>
-Date: Tue, 13 Dec 2011 21:30:04 +0100
-Subject: [PATCH 93/95] mfd: Fix cs5535 section mismatch
-
-commit 97e43c983c721a47546e6db3b7711dcd912a6481 upstream.
-
-Silence following warnings:
-WARNING: drivers/mfd/cs5535-mfd.o(.data+0x20): Section mismatch in
-reference from the variable cs5535_mfd_drv to the function
-.devinit.text:cs5535_mfd_probe()
-The variable cs5535_mfd_drv references
-the function __devinit cs5535_mfd_probe()
-If the reference is valid then annotate the
-variable with __init* or __refdata (see linux/init.h) or name the variable:
-*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
-
-WARNING: drivers/mfd/cs5535-mfd.o(.data+0x28): Section mismatch in
-reference from the variable cs5535_mfd_drv to the function
-.devexit.text:cs5535_mfd_remove()
-The variable cs5535_mfd_drv references
-the function __devexit cs5535_mfd_remove()
-If the reference is valid then annotate the
-variable with __exit* (see linux/init.h) or name the variable:
-*driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console
-
-Rename the variable from *_drv to *_driver so
-modpost ignore the OK references to __devinit/__devexit
-functions.
-
-Signed-off-by: Christian Gmeiner <christian.gmeiner at gmail.com>
-Acked-by: Andres Salomon <dilinger at queued.net>
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mfd/cs5535-mfd.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/mfd/cs5535-mfd.c b/drivers/mfd/cs5535-mfd.c
-index 155fa04..e488a78 100644
---- a/drivers/mfd/cs5535-mfd.c
-+++ b/drivers/mfd/cs5535-mfd.c
-@@ -179,7 +179,7 @@ static struct pci_device_id cs5535_mfd_pci_tbl[] = {
- };
- MODULE_DEVICE_TABLE(pci, cs5535_mfd_pci_tbl);
- 
--static struct pci_driver cs5535_mfd_drv = {
-+static struct pci_driver cs5535_mfd_driver = {
- 	.name = DRV_NAME,
- 	.id_table = cs5535_mfd_pci_tbl,
- 	.probe = cs5535_mfd_probe,
-@@ -188,12 +188,12 @@ static struct pci_driver cs5535_mfd_drv = {
- 
- static int __init cs5535_mfd_init(void)
- {
--	return pci_register_driver(&cs5535_mfd_drv);
-+	return pci_register_driver(&cs5535_mfd_driver);
- }
- 
- static void __exit cs5535_mfd_exit(void)
- {
--	pci_unregister_driver(&cs5535_mfd_drv);
-+	pci_unregister_driver(&cs5535_mfd_driver);
- }
- 
- module_init(cs5535_mfd_init);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0094-spi-topcliff-pch-rename-pch_spi_pcidev-to-pch_spi_pc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0094-spi-topcliff-pch-rename-pch_spi_pcidev-to-pch_spi_pc.patch
deleted file mode 100644
index 1d1aa87..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0094-spi-topcliff-pch-rename-pch_spi_pcidev-to-pch_spi_pc.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From e8e5eab540cdac6bbdb8f6c85a2f5344a8825973 Mon Sep 17 00:00:00 2001
-From: Danny Kukawka <danny.kukawka at bisect.de>
-Date: Thu, 2 Feb 2012 14:20:30 +0100
-Subject: [PATCH 94/95] spi-topcliff-pch: rename pch_spi_pcidev to
- pch_spi_pcidev_driver
-
-commit c88db233251b026fda775428f0250c760553e216 upstream.
-
-Rename static struct pci_driver pch_spi_pcidev to
-pch_spi_pcidev_driver to get rid of warnings from modpost checks.
-
-Signed-off-by: Danny Kukawka <danny.kukawka at bisect.de>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/spi/spi-topcliff-pch.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index 6a80749..027b6d0 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -1717,7 +1717,7 @@ static int pch_spi_resume(struct pci_dev *pdev)
- 
- #endif
- 
--static struct pci_driver pch_spi_pcidev = {
-+static struct pci_driver pch_spi_pcidev_driver = {
- 	.name = "pch_spi",
- 	.id_table = pch_spi_pcidev_id,
- 	.probe = pch_spi_probe,
-@@ -1733,7 +1733,7 @@ static int __init pch_spi_init(void)
- 	if (ret)
- 		return ret;
- 
--	ret = pci_register_driver(&pch_spi_pcidev);
-+	ret = pci_register_driver(&pch_spi_pcidev_driver);
- 	if (ret)
- 		return ret;
- 
-@@ -1743,7 +1743,7 @@ module_init(pch_spi_init);
- 
- static void __exit pch_spi_exit(void)
- {
--	pci_unregister_driver(&pch_spi_pcidev);
-+	pci_unregister_driver(&pch_spi_pcidev_driver);
- 	platform_driver_unregister(&pch_spi_pd_driver);
- }
- module_exit(pch_spi_exit);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0095-Linux-3.2.10.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0095-Linux-3.2.10.patch
deleted file mode 100644
index 46d621a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.10/0095-Linux-3.2.10.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From c0a5ea26bcd2c716d508433c5d9d33d8d5caa491 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 12 Mar 2012 13:22:49 -0700
-Subject: [PATCH 95/95] Linux 3.2.10
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 5f1739b..1ddd6e9 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 9
-+SUBLEVEL = 10
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0001-Revert-mfd-Test-for-jack-detection-when-deciding-if-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0001-Revert-mfd-Test-for-jack-detection-when-deciding-if-.patch
deleted file mode 100644
index df713dc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0001-Revert-mfd-Test-for-jack-detection-when-deciding-if-.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 75d6feb2330ece547d401da6dd6f812a75728d78 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Tue, 13 Mar 2012 09:36:07 -0700
-Subject: [PATCH 1/2] Revert "mfd: Test for jack detection when deciding if
- wm8994 should suspend"
-
-This reverts commit 315e73b400c9a287a53efb5f857d308589674ac5 as it
-breaks the 3.2-stable build.
-
-Reported-by: Ben Guthro <ben at guthro.net>
-Cc: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Cc: Samuel Ortiz <sameo at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mfd/wm8994-core.c |   14 --------------
- 1 file changed, 14 deletions(-)
-
-diff --git a/drivers/mfd/wm8994-core.c b/drivers/mfd/wm8994-core.c
-index 9302d21..61894fc 100644
---- a/drivers/mfd/wm8994-core.c
-+++ b/drivers/mfd/wm8994-core.c
-@@ -252,20 +252,6 @@ static int wm8994_suspend(struct device *dev)
- 		break;
- 	}
- 
--	switch (wm8994->type) {
--	case WM1811:
--		ret = wm8994_reg_read(wm8994, WM8994_ANTIPOP_2);
--		if (ret < 0) {
--			dev_err(dev, "Failed to read jackdet: %d\n", ret);
--		} else if (ret & WM1811_JACKDET_MODE_MASK) {
--			dev_dbg(dev, "CODEC still active, ignoring suspend\n");
--			return 0;
--		}
--		break;
--	default:
--		break;
--	}
--
- 	/* Disable LDO pulldowns while the device is suspended if we
- 	 * don't know that something will be driving them. */
- 	if (!wm8994->ldo_ena_always_driven)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0002-Linux-3.2.11.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0002-Linux-3.2.11.patch
deleted file mode 100644
index ecf7bf2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.11/0002-Linux-3.2.11.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 4a732cfb0da5b1932200d92507bfc354486eedd7 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Tue, 13 Mar 2012 10:05:09 -0700
-Subject: [PATCH 2/2] Linux 3.2.11
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 1ddd6e9..4b76371 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 10
-+SUBLEVEL = 11
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0001-ASoC-neo1973-fix-neo1973-wm8753-initialization.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0001-ASoC-neo1973-fix-neo1973-wm8753-initialization.patch
deleted file mode 100644
index d25417a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0001-ASoC-neo1973-fix-neo1973-wm8753-initialization.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a1d89c5f542755e8508b072a1d2f9b295c6c028c Mon Sep 17 00:00:00 2001
-From: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
-Date: Sun, 26 Feb 2012 19:21:54 +0100
-Subject: [PATCH 01/42] ASoC: neo1973: fix neo1973 wm8753 initialization
-
-commit b2ccf065f7b23147ed135a41b01d05a332ca6b7e upstream.
-
-The neo1973 driver had wrong codec name which prevented the "sound card"
-from appearing.
-
-Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo at no-log.org>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/samsung/neo1973_wm8753.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/samsung/neo1973_wm8753.c b/sound/soc/samsung/neo1973_wm8753.c
-index 7207189..2fba3f7 100644
---- a/sound/soc/samsung/neo1973_wm8753.c
-+++ b/sound/soc/samsung/neo1973_wm8753.c
-@@ -421,7 +421,7 @@ static struct snd_soc_dai_link neo1973_dai[] = {
- 	.platform_name = "samsung-audio",
- 	.cpu_dai_name = "s3c24xx-iis",
- 	.codec_dai_name = "wm8753-hifi",
--	.codec_name = "wm8753-codec.0-001a",
-+	.codec_name = "wm8753.0-001a",
- 	.init = neo1973_wm8753_init,
- 	.ops = &neo1973_hifi_ops,
- },
-@@ -430,7 +430,7 @@ static struct snd_soc_dai_link neo1973_dai[] = {
- 	.stream_name = "Voice",
- 	.cpu_dai_name = "dfbmcs320-pcm",
- 	.codec_dai_name = "wm8753-voice",
--	.codec_name = "wm8753-codec.0-001a",
-+	.codec_name = "wm8753.0-001a",
- 	.ops = &neo1973_voice_ops,
- },
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0002-ALSA-hda-realtek-Apply-the-coef-setup-only-to-ALC269.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0002-ALSA-hda-realtek-Apply-the-coef-setup-only-to-ALC269.patch
deleted file mode 100644
index b11376b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0002-ALSA-hda-realtek-Apply-the-coef-setup-only-to-ALC269.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 87e095818ba51e16500206f1507590d8cd3127ef Mon Sep 17 00:00:00 2001
-From: Kailang Yang <kailang at realtek.com>
-Date: Wed, 7 Mar 2012 08:25:20 +0100
-Subject: [PATCH 02/42] ALSA: hda/realtek - Apply the coef-setup only to
- ALC269VB
-
-commit 526af6eb4dc71302f59806e2ccac7793963a7fe0 upstream.
-
-The coef setup in alc269_fill_coef() was designed only for ALC269VB
-model, and this has some bad effects for other ALC269 variants, such
-as turning off the external mic input.  Apply it only to ALC269VB.
-
-Signed-off-by: Kailang Yang <kailang at realtek.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 3d8fbf4..dc8a6fc 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -2063,12 +2063,16 @@ static int alc_build_controls(struct hda_codec *codec)
-  */
- 
- static void alc_init_special_input_src(struct hda_codec *codec);
-+static int alc269_fill_coef(struct hda_codec *codec);
- 
- static int alc_init(struct hda_codec *codec)
- {
- 	struct alc_spec *spec = codec->spec;
- 	unsigned int i;
- 
-+	if (codec->vendor_id == 0x10ec0269)
-+		alc269_fill_coef(codec);
-+
- 	alc_fix_pll(codec);
- 	alc_auto_init_amp(codec, spec->init_amp);
- 
-@@ -5110,8 +5114,12 @@ static const struct alc_model_fixup alc269_fixup_models[] = {
- 
- static int alc269_fill_coef(struct hda_codec *codec)
- {
-+	struct alc_spec *spec = codec->spec;
- 	int val;
- 
-+	if (spec->codec_variant != ALC269_TYPE_ALC269VB)
-+		return 0;
-+
- 	if ((alc_get_coef0(codec) & 0x00ff) < 0x015) {
- 		alc_write_coef_idx(codec, 0xf, 0x960b);
- 		alc_write_coef_idx(codec, 0xe, 0x8817);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0003-aio-fix-io_setup-io_destroy-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0003-aio-fix-io_setup-io_destroy-race.patch
deleted file mode 100644
index a01113a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0003-aio-fix-io_setup-io_destroy-race.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From e5459681303b77f0525bb3311ce20b05e570ae04 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at ZenIV.linux.org.uk>
-Date: Wed, 7 Mar 2012 05:16:35 +0000
-Subject: [PATCH 03/42] aio: fix io_setup/io_destroy race
-
-commit 86b62a2cb4fc09037bbce2959d2992962396fd7f upstream.
-
-Have ioctx_alloc() return an extra reference, so that caller would drop it
-on success and not bother with re-grabbing it on failure exit.  The current
-code is obviously broken - io_destroy() from another thread that managed
-to guess the address io_setup() would've returned would free ioctx right
-under us; gets especially interesting if aio_context_t * we pass to
-io_setup() points to PROT_READ mapping, so put_user() fails and we end
-up doing io_destroy() on kioctx another thread has just got freed...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Acked-by: Benjamin LaHaise <bcrl at kvack.org>
-Reviewed-by: Jeff Moyer <jmoyer at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/aio.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/fs/aio.c b/fs/aio.c
-index 67e4b90..f6578cb 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -273,7 +273,7 @@ static struct kioctx *ioctx_alloc(unsigned nr_events)
- 	mm = ctx->mm = current->mm;
- 	atomic_inc(&mm->mm_count);
- 
--	atomic_set(&ctx->users, 1);
-+	atomic_set(&ctx->users, 2);
- 	spin_lock_init(&ctx->ctx_lock);
- 	spin_lock_init(&ctx->ring_info.ring_lock);
- 	init_waitqueue_head(&ctx->wait);
-@@ -1338,10 +1338,10 @@ SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp)
- 	ret = PTR_ERR(ioctx);
- 	if (!IS_ERR(ioctx)) {
- 		ret = put_user(ioctx->user_id, ctxp);
--		if (!ret)
-+		if (!ret) {
-+			put_ioctx(ioctx);
- 			return 0;
--
--		get_ioctx(ioctx); /* io_destroy() expects us to hold a ref */
-+		}
- 		io_destroy(ioctx);
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0004-aio-fix-the-too-late-munmap-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0004-aio-fix-the-too-late-munmap-race.patch
deleted file mode 100644
index 00ba981..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0004-aio-fix-the-too-late-munmap-race.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From a0e1937b89ad227fad39dd1f0edb83d57dc46c12 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at ZenIV.linux.org.uk>
-Date: Thu, 8 Mar 2012 17:51:19 +0000
-Subject: [PATCH 04/42] aio: fix the "too late munmap()" race
-
-commit c7b285550544c22bc005ec20978472c9ac7138c6 upstream.
-
-Current code has put_ioctx() called asynchronously from aio_fput_routine();
-that's done *after* we have killed the request that used to pin ioctx,
-so there's nothing to stop io_destroy() waiting in wait_for_all_aios()
-from progressing.  As the result, we can end up with async call of
-put_ioctx() being the last one and possibly happening during exit_mmap()
-or elf_core_dump(), neither of which expects stray munmap() being done
-to them...
-
-We do need to prevent _freeing_ ioctx until aio_fput_routine() is done
-with that, but that's all we care about - neither io_destroy() nor
-exit_aio() will progress past wait_for_all_aios() until aio_fput_routine()
-does really_put_req(), so the ioctx teardown won't be done until then
-and we don't care about the contents of ioctx past that point.
-
-Since actual freeing of these suckers is RCU-delayed, we don't need to
-bump ioctx refcount when request goes into list for async removal.
-All we need is rcu_read_lock held just over the ->ctx_lock-protected
-area in aio_fput_routine().
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Reviewed-by: Jeff Moyer <jmoyer at redhat.com>
-Acked-by: Benjamin LaHaise <bcrl at kvack.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/aio.c |   14 ++++++--------
- 1 file changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/fs/aio.c b/fs/aio.c
-index f6578cb..b9d64d8 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -228,12 +228,6 @@ static void __put_ioctx(struct kioctx *ctx)
- 	call_rcu(&ctx->rcu_head, ctx_rcu_free);
- }
- 
--static inline void get_ioctx(struct kioctx *kioctx)
--{
--	BUG_ON(atomic_read(&kioctx->users) <= 0);
--	atomic_inc(&kioctx->users);
--}
--
- static inline int try_get_ioctx(struct kioctx *kioctx)
- {
- 	return atomic_inc_not_zero(&kioctx->users);
-@@ -609,11 +603,16 @@ static void aio_fput_routine(struct work_struct *data)
- 			fput(req->ki_filp);
- 
- 		/* Link the iocb into the context's free list */
-+		rcu_read_lock();
- 		spin_lock_irq(&ctx->ctx_lock);
- 		really_put_req(ctx, req);
-+		/*
-+		 * at that point ctx might've been killed, but actual
-+		 * freeing is RCU'd
-+		 */
- 		spin_unlock_irq(&ctx->ctx_lock);
-+		rcu_read_unlock();
- 
--		put_ioctx(ctx);
- 		spin_lock_irq(&fput_lock);
- 	}
- 	spin_unlock_irq(&fput_lock);
-@@ -644,7 +643,6 @@ static int __aio_put_req(struct kioctx *ctx, struct kiocb *req)
- 	 * this function will be executed w/out any aio kthread wakeup.
- 	 */
- 	if (unlikely(!fput_atomic(req->ki_filp))) {
--		get_ioctx(ctx);
- 		spin_lock(&fput_lock);
- 		list_add(&req->ki_list, &fput_head);
- 		spin_unlock(&fput_lock);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0005-x86-Derandom-delay_tsc-for-64-bit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0005-x86-Derandom-delay_tsc-for-64-bit.patch
deleted file mode 100644
index 29ebbba..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0005-x86-Derandom-delay_tsc-for-64-bit.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From fc10b28e82caa4d0a793b9ec9657dedbd1c2afd8 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Fri, 9 Mar 2012 20:55:10 +0100
-Subject: [PATCH 05/42] x86: Derandom delay_tsc for 64 bit
-
-commit a7f4255f906f60f72e00aad2fb000939449ff32e upstream.
-
-Commit f0fbf0abc093 ("x86: integrate delay functions") converted
-delay_tsc() into a random delay generator for 64 bit.  The reason is
-that it merged the mostly identical versions of delay_32.c and
-delay_64.c.  Though the subtle difference of the result was:
-
- static void delay_tsc(unsigned long loops)
- {
--	unsigned bclock, now;
-+	unsigned long bclock, now;
-
-Now the function uses rdtscl() which returns the lower 32bit of the
-TSC. On 32bit that's not problematic as unsigned long is 32bit. On 64
-bit this fails when the lower 32bit are close to wrap around when
-bclock is read, because the following check
-
-       if ((now - bclock) >= loops)
-       	  	break;
-
-evaluated to true on 64bit for e.g. bclock = 0xffffffff and now = 0
-because the unsigned long (now - bclock) of these values results in
-0xffffffff00000001 which is definitely larger than the loops
-value. That explains Tvortkos observation:
-
-"Because I am seeing udelay(500) (_occasionally_) being short, and
- that by delaying for some duration between 0us (yep) and 491us."
-
-Make those variables explicitely u32 again, so this works for both 32
-and 64 bit.
-
-Reported-by: Tvrtko Ursulin <tvrtko.ursulin at onelan.co.uk>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/lib/delay.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/lib/delay.c b/arch/x86/lib/delay.c
-index fc45ba8..e395693 100644
---- a/arch/x86/lib/delay.c
-+++ b/arch/x86/lib/delay.c
-@@ -48,9 +48,9 @@ static void delay_loop(unsigned long loops)
- }
- 
- /* TSC based delay: */
--static void delay_tsc(unsigned long loops)
-+static void delay_tsc(unsigned long __loops)
- {
--	unsigned long bclock, now;
-+	u32 bclock, now, loops = __loops;
- 	int cpu;
- 
- 	preempt_disable();
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0006-PCI-ignore-pre-1.1-ASPM-quirking-when-ASPM-is-disabl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0006-PCI-ignore-pre-1.1-ASPM-quirking-when-ASPM-is-disabl.patch
deleted file mode 100644
index 6129b69..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0006-PCI-ignore-pre-1.1-ASPM-quirking-when-ASPM-is-disabl.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7d3540104ba156ddc2a80f5c9608958faad01cec Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg at redhat.com>
-Date: Tue, 6 Mar 2012 13:41:49 -0500
-Subject: [PATCH 06/42] PCI: ignore pre-1.1 ASPM quirking when ASPM is
- disabled
-
-commit 4949be16822e92a18ea0cc1616319926628092ee upstream.
-
-Right now we won't touch ASPM state if ASPM is disabled, except in the case
-where we find a device that appears to be too old to reliably support ASPM.
-Right now we'll clear it in that case, which is almost certainly the wrong
-thing to do. The easiest way around this is just to disable the blacklisting
-when ASPM is disabled.
-
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/pci/pcie/aspm.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
-index 1cfbf22..24f049e 100644
---- a/drivers/pci/pcie/aspm.c
-+++ b/drivers/pci/pcie/aspm.c
-@@ -500,6 +500,9 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
- 	int pos;
- 	u32 reg32;
- 
-+	if (aspm_disabled)
-+		return 0;
-+
- 	/*
- 	 * Some functions in a slot might not all be PCIe functions,
- 	 * very strange. Disable ASPM for the whole slot
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0007-omap3isp-ccdc-Fix-crash-in-HS-VS-interrupt-handler.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0007-omap3isp-ccdc-Fix-crash-in-HS-VS-interrupt-handler.patch
deleted file mode 100644
index a5c82fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0007-omap3isp-ccdc-Fix-crash-in-HS-VS-interrupt-handler.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 53af81856eb79f36e3c497dd12c3875c3c340411 Mon Sep 17 00:00:00 2001
-From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Date: Fri, 11 Nov 2011 11:22:20 -0300
-Subject: [PATCH 07/42] omap3isp: ccdc: Fix crash in HS/VS interrupt handler
-
-commit bd0f2e6da7ea9e225cb2dbd3229e25584b0e9538 upstream.
-
-The HS/VS interrupt handler needs to access the pipeline object. It
-erronously tries to get it from the CCDC output video node, which isn't
-necessarily included in the pipeline. This leads to a NULL pointer
-dereference.
-
-Fix the bug by getting the pipeline object from the CCDC subdev entity.
-
-Reported-by: Gary Thomas <gary at mlbassoc.com>
-Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Acked-by: Sakari Ailus <sakari.ailus at iki.fi>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/media/video/omap3isp/ispccdc.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/media/video/omap3isp/ispccdc.c b/drivers/media/video/omap3isp/ispccdc.c
-index 54a4a3f..a319281 100644
---- a/drivers/media/video/omap3isp/ispccdc.c
-+++ b/drivers/media/video/omap3isp/ispccdc.c
-@@ -1406,8 +1406,7 @@ static int __ccdc_handle_stopping(struct isp_ccdc_device *ccdc, u32 event)
- 
- static void ccdc_hs_vs_isr(struct isp_ccdc_device *ccdc)
- {
--	struct isp_pipeline *pipe =
--		to_isp_pipeline(&ccdc->video_out.video.entity);
-+	struct isp_pipeline *pipe = to_isp_pipeline(&ccdc->subdev.entity);
- 	struct video_device *vdev = ccdc->subdev.devnode;
- 	struct v4l2_event event;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0008-rt2x00-fix-random-stalls.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0008-rt2x00-fix-random-stalls.patch
deleted file mode 100644
index 1784526..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0008-rt2x00-fix-random-stalls.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From c27583afc5c12c3731697b41e6a7c4fa2a239fae Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Fri, 9 Mar 2012 12:39:54 +0100
-Subject: [PATCH 08/42] rt2x00: fix random stalls
-
-commit 3780d038fdf4b5ef26ead10b0604ab1f46dd9510 upstream.
-
-Is possible that we stop queue and then do not wake up it again,
-especially when packets are transmitted fast. That can be easily
-reproduced with modified tx queue entry_num to some small value e.g. 16.
-
-If mac80211 already hold local->queue_stop_reason_lock, then we can wait
-on that lock in both rt2x00queue_pause_queue() and
-rt2x00queue_unpause_queue(). After drooping ->queue_stop_reason_lock
-is possible that __ieee80211_wake_queue() will be performed before
-__ieee80211_stop_queue(), hence we stop queue and newer wake up it
-again.
-
-Another race condition is possible when between rt2x00queue_threshold()
-check and rt2x00queue_pause_queue() we will process all pending tx
-buffers on different cpu. This might happen if for example interrupt
-will be triggered on cpu performing rt2x00mac_tx().
-
-To prevent race conditions serialize pause/unpause by queue->tx_lock.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rt2x00/rt2x00dev.c   |    6 +++++-
- drivers/net/wireless/rt2x00/rt2x00mac.c   |    9 +++++++++
- drivers/net/wireless/rt2x00/rt2x00queue.c |    3 +++
- 3 files changed, 17 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2x00dev.c b/drivers/net/wireless/rt2x00/rt2x00dev.c
-index edd317f..21b529b 100644
---- a/drivers/net/wireless/rt2x00/rt2x00dev.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00dev.c
-@@ -426,10 +426,14 @@ void rt2x00lib_txdone(struct queue_entry *entry,
- 	/*
- 	 * If the data queue was below the threshold before the txdone
- 	 * handler we must make sure the packet queue in the mac80211 stack
--	 * is reenabled when the txdone handler has finished.
-+	 * is reenabled when the txdone handler has finished. This has to be
-+	 * serialized with rt2x00mac_tx(), otherwise we can wake up queue
-+	 * before it was stopped.
- 	 */
-+	spin_lock_bh(&entry->queue->tx_lock);
- 	if (!rt2x00queue_threshold(entry->queue))
- 		rt2x00queue_unpause_queue(entry->queue);
-+	spin_unlock_bh(&entry->queue->tx_lock);
- }
- EXPORT_SYMBOL_GPL(rt2x00lib_txdone);
- 
-diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
-index bf0acff..373dae1 100644
---- a/drivers/net/wireless/rt2x00/rt2x00mac.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
-@@ -152,13 +152,22 @@ void rt2x00mac_tx(struct ieee80211_hw *hw, struct sk_buff *skb)
- 	if (unlikely(rt2x00queue_write_tx_frame(queue, skb, false)))
- 		goto exit_fail;
- 
-+	/*
-+	 * Pausing queue has to be serialized with rt2x00lib_txdone(). Note
-+	 * we should not use spin_lock_bh variant as bottom halve was already
-+	 * disabled before ieee80211_xmit() call.
-+	 */
-+	spin_lock(&queue->tx_lock);
- 	if (rt2x00queue_threshold(queue))
- 		rt2x00queue_pause_queue(queue);
-+	spin_unlock(&queue->tx_lock);
- 
- 	return;
- 
-  exit_fail:
-+	spin_lock(&queue->tx_lock);
- 	rt2x00queue_pause_queue(queue);
-+	spin_unlock(&queue->tx_lock);
-  exit_free_skb:
- 	dev_kfree_skb_any(skb);
- }
-diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
-index 5adfb3e..9b1b2b7 100644
---- a/drivers/net/wireless/rt2x00/rt2x00queue.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
-@@ -619,6 +619,9 @@ int rt2x00queue_write_tx_frame(struct data_queue *queue, struct sk_buff *skb,
- 	else if (test_bit(REQUIRE_DMA, &queue->rt2x00dev->cap_flags))
- 		rt2x00queue_align_frame(skb);
- 
-+	/*
-+	 * That function must be called with bh disabled.
-+	 */
- 	spin_lock(&queue->tx_lock);
- 
- 	if (unlikely(rt2x00queue_full(queue))) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0009-perf-x86-Fix-local-vs-remote-memory-events-for-NHM-W.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0009-perf-x86-Fix-local-vs-remote-memory-events-for-NHM-W.patch
deleted file mode 100644
index d57e5e3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0009-perf-x86-Fix-local-vs-remote-memory-events-for-NHM-W.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From 1c301a267126e6e01056eda0164a67731b738f5f Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Date: Mon, 5 Mar 2012 23:59:25 +0100
-Subject: [PATCH 09/42] perf/x86: Fix local vs remote memory events for
- NHM/WSM
-
-commit 87e24f4b67e68d9fd8df16e0bf9c66d1ad2a2533 upstream.
-
-Verified using the below proglet.. before:
-
-[root at westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 0
-remote write
-
- Performance counter stats for './numa 0':
-
-         2,101,554 node-stores
-         2,096,931 node-store-misses
-
-       5.021546079 seconds time elapsed
-
-[root at westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 1
-local write
-
- Performance counter stats for './numa 1':
-
-           501,137 node-stores
-               199 node-store-misses
-
-       5.124451068 seconds time elapsed
-
-After:
-
-[root at westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 0
-remote write
-
- Performance counter stats for './numa 0':
-
-         2,107,516 node-stores
-         2,097,187 node-store-misses
-
-       5.012755149 seconds time elapsed
-
-[root at westmere ~]# perf stat -e node-stores -e node-store-misses ./numa 1
-local write
-
- Performance counter stats for './numa 1':
-
-         2,063,355 node-stores
-               165 node-store-misses
-
-       5.082091494 seconds time elapsed
-
-#define _GNU_SOURCE
-
-#include <sched.h>
-#include <stdio.h>
-#include <errno.h>
-#include <sys/mman.h>
-#include <sys/types.h>
-#include <dirent.h>
-#include <signal.h>
-#include <unistd.h>
-#include <numaif.h>
-#include <stdlib.h>
-
-#define SIZE (32*1024*1024)
-
-volatile int done;
-
-void sig_done(int sig)
-{
-	done = 1;
-}
-
-int main(int argc, char **argv)
-{
-	cpu_set_t *mask, *mask2;
-	size_t size;
-	int i, err, t;
-	int nrcpus = 1024;
-	char *mem;
-	unsigned long nodemask = 0x01; /* node 0 */
-	DIR *node;
-	struct dirent *de;
-	int read = 0;
-	int local = 0;
-
-	if (argc < 2) {
-		printf("usage: %s [0-3]\n", argv[0]);
-		printf("  bit0 - local/remote\n");
-		printf("  bit1 - read/write\n");
-		exit(0);
-	}
-
-	switch (atoi(argv[1])) {
-	case 0:
-		printf("remote write\n");
-		break;
-	case 1:
-		printf("local write\n");
-		local = 1;
-		break;
-	case 2:
-		printf("remote read\n");
-		read = 1;
-		break;
-	case 3:
-		printf("local read\n");
-		local = 1;
-		read = 1;
-		break;
-	}
-
-	mask = CPU_ALLOC(nrcpus);
-	size = CPU_ALLOC_SIZE(nrcpus);
-	CPU_ZERO_S(size, mask);
-
-	node = opendir("/sys/devices/system/node/node0/");
-	if (!node)
-		perror("opendir");
-	while ((de = readdir(node))) {
-		int cpu;
-
-		if (sscanf(de->d_name, "cpu%d", &cpu) == 1)
-			CPU_SET_S(cpu, size, mask);
-	}
-	closedir(node);
-
-	mask2 = CPU_ALLOC(nrcpus);
-	CPU_ZERO_S(size, mask2);
-	for (i = 0; i < size; i++)
-		CPU_SET_S(i, size, mask2);
-	CPU_XOR_S(size, mask2, mask2, mask); // invert
-
-	if (!local)
-		mask = mask2;
-
-	err = sched_setaffinity(0, size, mask);
-	if (err)
-		perror("sched_setaffinity");
-
-	mem = mmap(0, SIZE, PROT_READ|PROT_WRITE,
-			MAP_PRIVATE|MAP_ANONYMOUS, -1, 0);
-	err = mbind(mem, SIZE, MPOL_BIND, &nodemask, 8*sizeof(nodemask), MPOL_MF_MOVE);
-	if (err)
-		perror("mbind");
-
-	signal(SIGALRM, sig_done);
-	alarm(5);
-
-	if (!read) {
-		while (!done) {
-			for (i = 0; i < SIZE; i++)
-				mem[i] = 0x01;
-		}
-	} else {
-		while (!done) {
-			for (i = 0; i < SIZE; i++)
-				t += *(volatile char *)(mem + i);
-		}
-	}
-
-	return 0;
-}
-
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Stephane Eranian <eranian at google.com>
-Link: http://lkml.kernel.org/n/tip-tq73sxus35xmqpojf7ootxgs@git.kernel.org
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/cpu/perf_event_intel.c |   17 +++++++++--------
- 1 file changed, 9 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/kernel/cpu/perf_event_intel.c b/arch/x86/kernel/cpu/perf_event_intel.c
-index 121f1be..957c216 100644
---- a/arch/x86/kernel/cpu/perf_event_intel.c
-+++ b/arch/x86/kernel/cpu/perf_event_intel.c
-@@ -389,14 +389,15 @@ static __initconst const u64 westmere_hw_cache_event_ids
- #define NHM_LOCAL_DRAM		(1 << 14)
- #define NHM_NON_DRAM		(1 << 15)
- 
--#define NHM_ALL_DRAM		(NHM_REMOTE_DRAM|NHM_LOCAL_DRAM)
-+#define NHM_LOCAL		(NHM_LOCAL_DRAM|NHM_REMOTE_CACHE_FWD)
-+#define NHM_REMOTE		(NHM_REMOTE_DRAM)
- 
- #define NHM_DMND_READ		(NHM_DMND_DATA_RD)
- #define NHM_DMND_WRITE		(NHM_DMND_RFO|NHM_DMND_WB)
- #define NHM_DMND_PREFETCH	(NHM_PF_DATA_RD|NHM_PF_DATA_RFO)
- 
- #define NHM_L3_HIT	(NHM_UNCORE_HIT|NHM_OTHER_CORE_HIT_SNP|NHM_OTHER_CORE_HITM)
--#define NHM_L3_MISS	(NHM_NON_DRAM|NHM_ALL_DRAM|NHM_REMOTE_CACHE_FWD)
-+#define NHM_L3_MISS	(NHM_NON_DRAM|NHM_LOCAL_DRAM|NHM_REMOTE_DRAM|NHM_REMOTE_CACHE_FWD)
- #define NHM_L3_ACCESS	(NHM_L3_HIT|NHM_L3_MISS)
- 
- static __initconst const u64 nehalem_hw_cache_extra_regs
-@@ -420,16 +421,16 @@ static __initconst const u64 nehalem_hw_cache_extra_regs
-  },
-  [ C(NODE) ] = {
- 	[ C(OP_READ) ] = {
--		[ C(RESULT_ACCESS) ] = NHM_DMND_READ|NHM_ALL_DRAM,
--		[ C(RESULT_MISS)   ] = NHM_DMND_READ|NHM_REMOTE_DRAM,
-+		[ C(RESULT_ACCESS) ] = NHM_DMND_READ|NHM_LOCAL|NHM_REMOTE,
-+		[ C(RESULT_MISS)   ] = NHM_DMND_READ|NHM_REMOTE,
- 	},
- 	[ C(OP_WRITE) ] = {
--		[ C(RESULT_ACCESS) ] = NHM_DMND_WRITE|NHM_ALL_DRAM,
--		[ C(RESULT_MISS)   ] = NHM_DMND_WRITE|NHM_REMOTE_DRAM,
-+		[ C(RESULT_ACCESS) ] = NHM_DMND_WRITE|NHM_LOCAL|NHM_REMOTE,
-+		[ C(RESULT_MISS)   ] = NHM_DMND_WRITE|NHM_REMOTE,
- 	},
- 	[ C(OP_PREFETCH) ] = {
--		[ C(RESULT_ACCESS) ] = NHM_DMND_PREFETCH|NHM_ALL_DRAM,
--		[ C(RESULT_MISS)   ] = NHM_DMND_PREFETCH|NHM_REMOTE_DRAM,
-+		[ C(RESULT_ACCESS) ] = NHM_DMND_PREFETCH|NHM_LOCAL|NHM_REMOTE,
-+		[ C(RESULT_MISS)   ] = NHM_DMND_PREFETCH|NHM_REMOTE,
- 	},
-  },
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0010-CIFS-Do-not-kmalloc-under-the-flocks-spinlock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0010-CIFS-Do-not-kmalloc-under-the-flocks-spinlock.patch
deleted file mode 100644
index 150144c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0010-CIFS-Do-not-kmalloc-under-the-flocks-spinlock.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 6fc4721b47d58ae599a4bb37869d4bfd41f70511 Mon Sep 17 00:00:00 2001
-From: Pavel Shilovsky <piastry at etersoft.ru>
-Date: Mon, 5 Mar 2012 09:39:20 +0300
-Subject: [PATCH 10/42] CIFS: Do not kmalloc under the flocks spinlock
-
-commit d5751469f210d2149cc2159ffff66cbeef6da3f2 upstream.
-
-Reorganize the code to make the memory already allocated before
-spinlock'ed loop.
-
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Pavel Shilovsky <piastry at etersoft.ru>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/file.c |   69 +++++++++++++++++++++++++++++++++++++++++++++-----------
- 1 file changed, 56 insertions(+), 13 deletions(-)
-
-diff --git a/fs/cifs/file.c b/fs/cifs/file.c
-index 4dd9283..5e64748 100644
---- a/fs/cifs/file.c
-+++ b/fs/cifs/file.c
-@@ -920,16 +920,26 @@ cifs_push_mandatory_locks(struct cifsFileInfo *cfile)
- 	for (lockp = &inode->i_flock; *lockp != NULL; \
- 	     lockp = &(*lockp)->fl_next)
- 
-+struct lock_to_push {
-+	struct list_head llist;
-+	__u64 offset;
-+	__u64 length;
-+	__u32 pid;
-+	__u16 netfid;
-+	__u8 type;
-+};
-+
- static int
- cifs_push_posix_locks(struct cifsFileInfo *cfile)
- {
- 	struct cifsInodeInfo *cinode = CIFS_I(cfile->dentry->d_inode);
- 	struct cifs_tcon *tcon = tlink_tcon(cfile->tlink);
- 	struct file_lock *flock, **before;
--	struct cifsLockInfo *lck, *tmp;
-+	unsigned int count = 0, i = 0;
- 	int rc = 0, xid, type;
-+	struct list_head locks_to_send, *el;
-+	struct lock_to_push *lck, *tmp;
- 	__u64 length;
--	struct list_head locks_to_send;
- 
- 	xid = GetXid();
- 
-@@ -940,29 +950,55 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
- 		return rc;
- 	}
- 
-+	lock_flocks();
-+	cifs_for_each_lock(cfile->dentry->d_inode, before) {
-+		if ((*before)->fl_flags & FL_POSIX)
-+			count++;
-+	}
-+	unlock_flocks();
-+
- 	INIT_LIST_HEAD(&locks_to_send);
- 
-+	/*
-+	 * Allocating count locks is enough because no locks can be added to
-+	 * the list while we are holding cinode->lock_mutex that protects
-+	 * locking operations of this inode.
-+	 */
-+	for (; i < count; i++) {
-+		lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL);
-+		if (!lck) {
-+			rc = -ENOMEM;
-+			goto err_out;
-+		}
-+		list_add_tail(&lck->llist, &locks_to_send);
-+	}
-+
-+	i = 0;
-+	el = locks_to_send.next;
- 	lock_flocks();
- 	cifs_for_each_lock(cfile->dentry->d_inode, before) {
-+		if (el == &locks_to_send) {
-+			/* something is really wrong */
-+			cERROR(1, "Can't push all brlocks!");
-+			break;
-+		}
- 		flock = *before;
-+		if ((flock->fl_flags & FL_POSIX) == 0)
-+			continue;
- 		length = 1 + flock->fl_end - flock->fl_start;
- 		if (flock->fl_type == F_RDLCK || flock->fl_type == F_SHLCK)
- 			type = CIFS_RDLCK;
- 		else
- 			type = CIFS_WRLCK;
--
--		lck = cifs_lock_init(flock->fl_start, length, type,
--				     cfile->netfid);
--		if (!lck) {
--			rc = -ENOMEM;
--			goto send_locks;
--		}
-+		lck = list_entry(el, struct lock_to_push, llist);
- 		lck->pid = flock->fl_pid;
--
--		list_add_tail(&lck->llist, &locks_to_send);
-+		lck->netfid = cfile->netfid;
-+		lck->length = length;
-+		lck->type = type;
-+		lck->offset = flock->fl_start;
-+		i++;
-+		el = el->next;
- 	}
--
--send_locks:
- 	unlock_flocks();
- 
- 	list_for_each_entry_safe(lck, tmp, &locks_to_send, llist) {
-@@ -979,11 +1015,18 @@ send_locks:
- 		kfree(lck);
- 	}
- 
-+out:
- 	cinode->can_cache_brlcks = false;
- 	mutex_unlock(&cinode->lock_mutex);
- 
- 	FreeXid(xid);
- 	return rc;
-+err_out:
-+	list_for_each_entry_safe(lck, tmp, &locks_to_send, llist) {
-+		list_del(&lck->llist);
-+		kfree(lck);
-+	}
-+	goto out;
- }
- 
- static int
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0011-vfs-fix-return-value-from-do_last.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0011-vfs-fix-return-value-from-do_last.patch
deleted file mode 100644
index f95b2aa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0011-vfs-fix-return-value-from-do_last.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From f52c418abc401baac70461c9b92954f9cf77b5dc Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi at suse.cz>
-Date: Tue, 6 Mar 2012 13:56:34 +0100
-Subject: [PATCH 11/42] vfs: fix return value from do_last()
-
-commit 7f6c7e62fcc123e6bd9206da99a2163fe3facc31 upstream.
-
-complete_walk() returns either ECHILD or ESTALE.  do_last() turns this into
-ECHILD unconditionally.  If not in RCU mode, this error will reach userspace
-which is complete nonsense.
-
-Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/namei.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/namei.c b/fs/namei.c
-index 744e942..b8344d0 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -2139,7 +2139,7 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
- 		/* sayonara */
- 		error = complete_walk(nd);
- 		if (error)
--			return ERR_PTR(-ECHILD);
-+			return ERR_PTR(error);
- 
- 		error = -ENOTDIR;
- 		if (nd->flags & LOOKUP_DIRECTORY) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0012-vfs-fix-double-put-after-complete_walk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0012-vfs-fix-double-put-after-complete_walk.patch
deleted file mode 100644
index 7a88ad0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0012-vfs-fix-double-put-after-complete_walk.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From c2f9efa695b37b1f5e70557edfdfd36f8d186d31 Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi at suse.cz>
-Date: Tue, 6 Mar 2012 13:56:33 +0100
-Subject: [PATCH 12/42] vfs: fix double put after complete_walk()
-
-commit 097b180ca09b581ef0dc24fbcfc1b227de3875df upstream.
-
-complete_walk() already puts nd->path, no need to do it again at cleanup time.
-
-This would result in Oopses if triggered, apparently the codepath is not too
-well exercised.
-
-Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/namei.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/namei.c b/fs/namei.c
-index b8344d0..9680cef 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -2238,7 +2238,7 @@ static struct file *do_last(struct nameidata *nd, struct path *path,
- 	/* Why this, you ask?  _Now_ we might have grown LOOKUP_JUMPED... */
- 	error = complete_walk(nd);
- 	if (error)
--		goto exit;
-+		return ERR_PTR(error);
- 	error = -EISDIR;
- 	if (S_ISDIR(nd->inode->i_mode))
- 		goto exit;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0013-acer-wmi-No-wifi-rfkill-on-Lenovo-machines.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0013-acer-wmi-No-wifi-rfkill-on-Lenovo-machines.patch
deleted file mode 100644
index 6cb9d28..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0013-acer-wmi-No-wifi-rfkill-on-Lenovo-machines.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 9102b08273c16ddc92444c913e81572989342a8f Mon Sep 17 00:00:00 2001
-From: Ike Panhc <ike.pan at canonical.com>
-Date: Fri, 3 Feb 2012 16:46:39 +0800
-Subject: [PATCH 13/42] acer-wmi: No wifi rfkill on Lenovo machines
-
-commit 461e74377cfcfc2c0d6bbdfa8fc5fbc21b052c2a upstream.
-
-We have several reports which says acer-wmi is loaded on ideapads
-and register rfkill for wifi which can not be unblocked.
-
-Since ideapad-laptop also register rfkill for wifi and it works
-reliably, it will be fine acer-wmi is not going to register rfkill
-for wifi once VPC2004 is found.
-
-Also put IBM0068/LEN0068 in the list. Though thinkpad_acpi has no
-wifi rfkill capability, there are reports which says acer-wmi also
-block wireless on Thinkpad E520/E420.
-
-Signed-off-by: Ike Panhc <ike.pan at canonical.com>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/platform/x86/acer-wmi.c |   30 +++++++++++++++++++++++++++++-
- 1 file changed, 29 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
-index b848277..1e5290b 100644
---- a/drivers/platform/x86/acer-wmi.c
-+++ b/drivers/platform/x86/acer-wmi.c
-@@ -679,6 +679,32 @@ static acpi_status AMW0_find_mailled(void)
- 	return AE_OK;
- }
- 
-+static int AMW0_set_cap_acpi_check_device_found;
-+
-+static acpi_status AMW0_set_cap_acpi_check_device_cb(acpi_handle handle,
-+	u32 level, void *context, void **retval)
-+{
-+	AMW0_set_cap_acpi_check_device_found = 1;
-+	return AE_OK;
-+}
-+
-+static const struct acpi_device_id norfkill_ids[] = {
-+	{ "VPC2004", 0},
-+	{ "IBM0068", 0},
-+	{ "LEN0068", 0},
-+	{ "", 0},
-+};
-+
-+static int AMW0_set_cap_acpi_check_device(void)
-+{
-+	const struct acpi_device_id *id;
-+
-+	for (id = norfkill_ids; id->id[0]; id++)
-+		acpi_get_devices(id->id, AMW0_set_cap_acpi_check_device_cb,
-+				NULL, NULL);
-+	return AMW0_set_cap_acpi_check_device_found;
-+}
-+
- static acpi_status AMW0_set_capabilities(void)
- {
- 	struct wmab_args args;
-@@ -692,7 +718,9 @@ static acpi_status AMW0_set_capabilities(void)
- 	 * work.
- 	 */
- 	if (wmi_has_guid(AMW0_GUID2)) {
--		interface->capability |= ACER_CAP_WIRELESS;
-+		if ((quirks != &quirk_unknown) ||
-+		    !AMW0_set_cap_acpi_check_device())
-+			interface->capability |= ACER_CAP_WIRELESS;
- 		return AE_OK;
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0014-atl1c-dont-use-highprio-tx-queue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0014-atl1c-dont-use-highprio-tx-queue.patch
deleted file mode 100644
index 72577e4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0014-atl1c-dont-use-highprio-tx-queue.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 8bdd32d35e2bc723a11b475eb797a9f11e8db598 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Wed, 15 Feb 2012 20:43:11 +0000
-Subject: [PATCH 14/42] atl1c: dont use highprio tx queue
-
-[ Upstream commit 11aad99af6ef629ff3b05d1c9f0936589b204316 ]
-
-This driver attempts to use two TX rings but lacks proper support :
-
-1) IRQ handler only takes care of TX completion on first TX ring
-2) the stop/start logic uses the legacy functions (for non multiqueue
-drivers)
-
-This means all packets witk skb mark set to 1 are sent through high
-queue but are never cleaned and queue eventualy fills and block the
-device, triggering the infamous "NETDEV WATCHDOG" message.
-
-Lets use a single TX ring to fix the problem, this driver is not a real
-multiqueue one yet.
-
-Minimal fix for stable kernels.
-
-Reported-by: Thomas Meyer <thomas at m3y3r.de>
-Tested-by: Thomas Meyer <thomas at m3y3r.de>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Jay Cliburn <jcliburn at gmail.com>
-Cc: Chris Snook <chris.snook at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/atheros/atl1c/atl1c_main.c |    4 ----
- 1 file changed, 4 deletions(-)
-
-diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-index 02c7ed8..eccdcff 100644
---- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-@@ -2241,10 +2241,6 @@ static netdev_tx_t atl1c_xmit_frame(struct sk_buff *skb,
- 			dev_info(&adapter->pdev->dev, "tx locked\n");
- 		return NETDEV_TX_LOCKED;
- 	}
--	if (skb->mark == 0x01)
--		type = atl1c_trans_high;
--	else
--		type = atl1c_trans_normal;
- 
- 	if (atl1c_tpd_avail(adapter, type) < tpd_req) {
- 		/* no enough descriptor, just stop queue */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0015-neighbour-Fixed-race-condition-at-tbl-nht.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0015-neighbour-Fixed-race-condition-at-tbl-nht.patch
deleted file mode 100644
index 35bd072..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0015-neighbour-Fixed-race-condition-at-tbl-nht.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 3ba7a3f4339ce0147ffa46086eead88cb45c9b0d Mon Sep 17 00:00:00 2001
-From: Michel Machado <michel at digirati.com.br>
-Date: Tue, 21 Feb 2012 11:04:13 +0000
-Subject: [PATCH 15/42] neighbour: Fixed race condition at tbl->nht
-
-[ Upstream commit 84338a6c9dbb6ff3de4749864020f8f25d86fc81 ]
-
-When the fixed race condition happens:
-
-1. While function neigh_periodic_work scans the neighbor hash table
-pointed by field tbl->nht, it unlocks and locks tbl->lock between
-buckets in order to call cond_resched.
-
-2. Assume that function neigh_periodic_work calls cond_resched, that is,
-the lock tbl->lock is available, and function neigh_hash_grow runs.
-
-3. Once function neigh_hash_grow finishes, and RCU calls
-neigh_hash_free_rcu, the original struct neigh_hash_table that function
-neigh_periodic_work was using doesn't exist anymore.
-
-4. Once back at neigh_periodic_work, whenever the old struct
-neigh_hash_table is accessed, things can go badly.
-
-Signed-off-by: Michel Machado <michel at digirati.com.br>
-CC: "David S. Miller" <davem at davemloft.net>
-CC: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/neighbour.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/core/neighbour.c b/net/core/neighbour.c
-index 5ac07d3..7aafaed 100644
---- a/net/core/neighbour.c
-+++ b/net/core/neighbour.c
-@@ -802,6 +802,8 @@ next_elt:
- 		write_unlock_bh(&tbl->lock);
- 		cond_resched();
- 		write_lock_bh(&tbl->lock);
-+		nht = rcu_dereference_protected(tbl->nht,
-+						lockdep_is_held(&tbl->lock));
- 	}
- 	/* Cycle through all hash buckets every base_reachable_time/2 ticks.
- 	 * ARP entry timeouts range from 1/2 base_reachable_time to 3/2
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0016-ipsec-be-careful-of-non-existing-mac-headers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0016-ipsec-be-careful-of-non-existing-mac-headers.patch
deleted file mode 100644
index 706cdd6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0016-ipsec-be-careful-of-non-existing-mac-headers.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From b38838f790c928ebeb30dbd6a06d4a26e84d54dc Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Thu, 23 Feb 2012 10:55:02 +0000
-Subject: [PATCH 16/42] ipsec: be careful of non existing mac headers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit 03606895cd98c0a628b17324fd7b5ff15db7e3cd ]
-
-Niccolo Belli reported ipsec crashes in case we handle a frame without
-mac header (atm in his case)
-
-Before copying mac header, better make sure it is present.
-
-Bugzilla reference:  https://bugzilla.kernel.org/show_bug.cgi?id=42809
-
-Reported-by: Niccolò Belli <darkbasic at linuxsystems.it>
-Tested-by: Niccolò Belli <darkbasic at linuxsystems.it>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/skbuff.h       |   10 ++++++++++
- net/ipv4/xfrm4_mode_beet.c   |    5 +----
- net/ipv4/xfrm4_mode_tunnel.c |    6 ++----
- net/ipv6/xfrm6_mode_beet.c   |    6 +-----
- net/ipv6/xfrm6_mode_tunnel.c |    6 ++----
- 5 files changed, 16 insertions(+), 17 deletions(-)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index fe86488..6cf8b53 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -1453,6 +1453,16 @@ static inline void skb_set_mac_header(struct sk_buff *skb, const int offset)
- }
- #endif /* NET_SKBUFF_DATA_USES_OFFSET */
- 
-+static inline void skb_mac_header_rebuild(struct sk_buff *skb)
-+{
-+	if (skb_mac_header_was_set(skb)) {
-+		const unsigned char *old_mac = skb_mac_header(skb);
-+
-+		skb_set_mac_header(skb, -skb->mac_len);
-+		memmove(skb_mac_header(skb), old_mac, skb->mac_len);
-+	}
-+}
-+
- static inline int skb_checksum_start_offset(const struct sk_buff *skb)
- {
- 	return skb->csum_start - skb_headroom(skb);
-diff --git a/net/ipv4/xfrm4_mode_beet.c b/net/ipv4/xfrm4_mode_beet.c
-index 6341818..e3db3f9 100644
---- a/net/ipv4/xfrm4_mode_beet.c
-+++ b/net/ipv4/xfrm4_mode_beet.c
-@@ -110,10 +110,7 @@ static int xfrm4_beet_input(struct xfrm_state *x, struct sk_buff *skb)
- 
- 	skb_push(skb, sizeof(*iph));
- 	skb_reset_network_header(skb);
--
--	memmove(skb->data - skb->mac_len, skb_mac_header(skb),
--		skb->mac_len);
--	skb_set_mac_header(skb, -skb->mac_len);
-+	skb_mac_header_rebuild(skb);
- 
- 	xfrm4_beet_make_header(skb);
- 
-diff --git a/net/ipv4/xfrm4_mode_tunnel.c b/net/ipv4/xfrm4_mode_tunnel.c
-index 534972e..ed4bf11 100644
---- a/net/ipv4/xfrm4_mode_tunnel.c
-+++ b/net/ipv4/xfrm4_mode_tunnel.c
-@@ -66,7 +66,6 @@ static int xfrm4_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
- 
- static int xfrm4_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
- {
--	const unsigned char *old_mac;
- 	int err = -EINVAL;
- 
- 	if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPIP)
-@@ -84,10 +83,9 @@ static int xfrm4_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
- 	if (!(x->props.flags & XFRM_STATE_NOECN))
- 		ipip_ecn_decapsulate(skb);
- 
--	old_mac = skb_mac_header(skb);
--	skb_set_mac_header(skb, -skb->mac_len);
--	memmove(skb_mac_header(skb), old_mac, skb->mac_len);
- 	skb_reset_network_header(skb);
-+	skb_mac_header_rebuild(skb);
-+
- 	err = 0;
- 
- out:
-diff --git a/net/ipv6/xfrm6_mode_beet.c b/net/ipv6/xfrm6_mode_beet.c
-index 3437d7d..f37cba9 100644
---- a/net/ipv6/xfrm6_mode_beet.c
-+++ b/net/ipv6/xfrm6_mode_beet.c
-@@ -80,7 +80,6 @@ static int xfrm6_beet_output(struct xfrm_state *x, struct sk_buff *skb)
- static int xfrm6_beet_input(struct xfrm_state *x, struct sk_buff *skb)
- {
- 	struct ipv6hdr *ip6h;
--	const unsigned char *old_mac;
- 	int size = sizeof(struct ipv6hdr);
- 	int err;
- 
-@@ -90,10 +89,7 @@ static int xfrm6_beet_input(struct xfrm_state *x, struct sk_buff *skb)
- 
- 	__skb_push(skb, size);
- 	skb_reset_network_header(skb);
--
--	old_mac = skb_mac_header(skb);
--	skb_set_mac_header(skb, -skb->mac_len);
--	memmove(skb_mac_header(skb), old_mac, skb->mac_len);
-+	skb_mac_header_rebuild(skb);
- 
- 	xfrm6_beet_make_header(skb);
- 
-diff --git a/net/ipv6/xfrm6_mode_tunnel.c b/net/ipv6/xfrm6_mode_tunnel.c
-index 4d6edff..23ecd68 100644
---- a/net/ipv6/xfrm6_mode_tunnel.c
-+++ b/net/ipv6/xfrm6_mode_tunnel.c
-@@ -63,7 +63,6 @@ static int xfrm6_mode_tunnel_output(struct xfrm_state *x, struct sk_buff *skb)
- static int xfrm6_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
- {
- 	int err = -EINVAL;
--	const unsigned char *old_mac;
- 
- 	if (XFRM_MODE_SKB_CB(skb)->protocol != IPPROTO_IPV6)
- 		goto out;
-@@ -80,10 +79,9 @@ static int xfrm6_mode_tunnel_input(struct xfrm_state *x, struct sk_buff *skb)
- 	if (!(x->props.flags & XFRM_STATE_NOECN))
- 		ipip6_ecn_decapsulate(skb);
- 
--	old_mac = skb_mac_header(skb);
--	skb_set_mac_header(skb, -skb->mac_len);
--	memmove(skb_mac_header(skb), old_mac, skb->mac_len);
- 	skb_reset_network_header(skb);
-+	skb_mac_header_rebuild(skb);
-+
- 	err = 0;
- 
- out:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0017-ppp-fix-ppp_mp_reconstruct-bad-seq-errors.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0017-ppp-fix-ppp_mp_reconstruct-bad-seq-errors.patch
deleted file mode 100644
index fe5fd32..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0017-ppp-fix-ppp_mp_reconstruct-bad-seq-errors.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 486667d032b8183f75da22b245635debbfa381ca Mon Sep 17 00:00:00 2001
-From: Ben McKeegan <ben at netservers.co.uk>
-Date: Fri, 24 Feb 2012 06:33:56 +0000
-Subject: [PATCH 17/42] ppp: fix 'ppp_mp_reconstruct bad seq' errors
-
-[ Upstream commit 8a49ad6e89feb5015e77ce6efeb2678947117e20 ]
-
-This patch fixes a (mostly cosmetic) bug introduced by the patch
-'ppp: Use SKB queue abstraction interfaces in fragment processing'
-found here: http://www.spinics.net/lists/netdev/msg153312.html
-
-The above patch rewrote and moved the code responsible for cleaning
-up discarded fragments but the new code does not catch every case
-where this is necessary.  This results in some discarded fragments
-remaining in the queue, and triggering a 'bad seq' error on the
-subsequent call to ppp_mp_reconstruct.  Fragments are discarded
-whenever other fragments of the same frame have been lost.
-This can generate a lot of unwanted and misleading log messages.
-
-This patch also adds additional detail to the debug logging to
-make it clearer which fragments were lost and which other fragments
-were discarded as a result of losses. (Run pppd with 'kdebug 1'
-option to enable debug logging.)
-
-Signed-off-by: Ben McKeegan <ben at netservers.co.uk>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ppp/ppp_generic.c |   23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
-diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
-index edfa15d..486b404 100644
---- a/drivers/net/ppp/ppp_generic.c
-+++ b/drivers/net/ppp/ppp_generic.c
-@@ -2024,14 +2024,22 @@ ppp_mp_reconstruct(struct ppp *ppp)
- 			continue;
- 		}
- 		if (PPP_MP_CB(p)->sequence != seq) {
-+			u32 oldseq;
- 			/* Fragment `seq' is missing.  If it is after
- 			   minseq, it might arrive later, so stop here. */
- 			if (seq_after(seq, minseq))
- 				break;
- 			/* Fragment `seq' is lost, keep going. */
- 			lost = 1;
-+			oldseq = seq;
- 			seq = seq_before(minseq, PPP_MP_CB(p)->sequence)?
- 				minseq + 1: PPP_MP_CB(p)->sequence;
-+
-+			if (ppp->debug & 1)
-+				netdev_printk(KERN_DEBUG, ppp->dev,
-+					      "lost frag %u..%u\n",
-+					      oldseq, seq-1);
-+
- 			goto again;
- 		}
- 
-@@ -2076,6 +2084,10 @@ ppp_mp_reconstruct(struct ppp *ppp)
- 			struct sk_buff *tmp2;
- 
- 			skb_queue_reverse_walk_from_safe(list, p, tmp2) {
-+				if (ppp->debug & 1)
-+					netdev_printk(KERN_DEBUG, ppp->dev,
-+						      "discarding frag %u\n",
-+						      PPP_MP_CB(p)->sequence);
- 				__skb_unlink(p, list);
- 				kfree_skb(p);
- 			}
-@@ -2091,6 +2103,17 @@ ppp_mp_reconstruct(struct ppp *ppp)
- 		/* If we have discarded any fragments,
- 		   signal a receive error. */
- 		if (PPP_MP_CB(head)->sequence != ppp->nextseq) {
-+			skb_queue_walk_safe(list, p, tmp) {
-+				if (p == head)
-+					break;
-+				if (ppp->debug & 1)
-+					netdev_printk(KERN_DEBUG, ppp->dev,
-+						      "discarding frag %u\n",
-+						      PPP_MP_CB(p)->sequence);
-+				__skb_unlink(p, list);
-+				kfree_skb(p);
-+			}
-+
- 			if (ppp->debug & 1)
- 				netdev_printk(KERN_DEBUG, ppp->dev,
- 					      "  missed pkts %u..%u\n",
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0018-sfc-Fix-assignment-of-ip_summed-for-pre-allocated-sk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0018-sfc-Fix-assignment-of-ip_summed-for-pre-allocated-sk.patch
deleted file mode 100644
index ac641a9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0018-sfc-Fix-assignment-of-ip_summed-for-pre-allocated-sk.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 724515edd415300e12da1a3d2e84cadd6a5cd90b Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <bhutchings at solarflare.com>
-Date: Fri, 24 Feb 2012 15:12:34 +0000
-Subject: [PATCH 18/42] sfc: Fix assignment of ip_summed for pre-allocated
- skbs
-
-[ Upstream commit ff3bc1e7527504a93710535611b2f812f3bb89bf ]
-
-When pre-allocating skbs for received packets, we set ip_summed =
-CHECKSUM_UNNCESSARY.  We used to change it back to CHECKSUM_NONE when
-the received packet had an incorrect checksum or unhandled protocol.
-
-Commit bc8acf2c8c3e43fcc192762a9f964b3e9a17748b ('drivers/net: avoid
-some skb->ip_summed initializations') mistakenly replaced the latter
-assignment with a DEBUG-only assertion that ip_summed ==
-CHECKSUM_NONE.  This assertion is always false, but it seems no-one
-has exercised this code path in a DEBUG build.
-
-Fix this by moving our assignment of CHECKSUM_UNNECESSARY into
-efx_rx_packet_gro().
-
-Signed-off-by: Ben Hutchings <bhutchings at solarflare.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/sfc/rx.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/sfc/rx.c b/drivers/net/ethernet/sfc/rx.c
-index 752d521..5ef4cc0 100644
---- a/drivers/net/ethernet/sfc/rx.c
-+++ b/drivers/net/ethernet/sfc/rx.c
-@@ -156,11 +156,10 @@ static int efx_init_rx_buffers_skb(struct efx_rx_queue *rx_queue)
- 		if (unlikely(!skb))
- 			return -ENOMEM;
- 
--		/* Adjust the SKB for padding and checksum */
-+		/* Adjust the SKB for padding */
- 		skb_reserve(skb, NET_IP_ALIGN);
- 		rx_buf->len = skb_len - NET_IP_ALIGN;
- 		rx_buf->is_page = false;
--		skb->ip_summed = CHECKSUM_UNNECESSARY;
- 
- 		rx_buf->dma_addr = pci_map_single(efx->pci_dev,
- 						  skb->data, rx_buf->len,
-@@ -499,6 +498,7 @@ static void efx_rx_packet_gro(struct efx_channel *channel,
- 
- 		EFX_BUG_ON_PARANOID(!checksummed);
- 		rx_buf->u.skb = NULL;
-+		skb->ip_summed = CHECKSUM_UNNECESSARY;
- 
- 		gro_result = napi_gro_receive(napi, skb);
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0019-tcp-fix-false-reordering-signal-in-tcp_shifted_skb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0019-tcp-fix-false-reordering-signal-in-tcp_shifted_skb.patch
deleted file mode 100644
index 7796b7d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0019-tcp-fix-false-reordering-signal-in-tcp_shifted_skb.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 201eee97e7d58fbde884394768761fb24229602a Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Sun, 26 Feb 2012 10:06:19 +0000
-Subject: [PATCH 19/42] tcp: fix false reordering signal in tcp_shifted_skb
-
-[ Upstream commit 4c90d3b30334833450ccbb02f452d4972a3c3c3f ]
-
-When tcp_shifted_skb() shifts bytes from the skb that is currently
-pointed to by 'highest_sack' then the increment of
-TCP_SKB_CB(skb)->seq implicitly advances tcp_highest_sack_seq(). This
-implicit advancement, combined with the recent fix to pass the correct
-SACKed range into tcp_sacktag_one(), caused tcp_sacktag_one() to think
-that the newly SACKed range was before the tcp_highest_sack_seq(),
-leading to a call to tcp_update_reordering() with a degree of
-reordering matching the size of the newly SACKed range (typically just
-1 packet, which is a NOP, but potentially larger).
-
-This commit fixes this by simply calling tcp_sacktag_one() before the
-TCP_SKB_CB(skb)->seq advancement that can advance our notion of the
-highest SACKed sequence.
-
-Correspondingly, we can simplify the code a little now that
-tcp_shifted_skb() should update the lost_cnt_hint in all cases where
-skb == tp->lost_skb_hint.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Acked-by: Yuchung Cheng <ycheng at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_input.c |   18 ++++++++++--------
- 1 file changed, 10 insertions(+), 8 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 53113b9..9e32fca 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -1406,8 +1406,16 @@ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- 
- 	BUG_ON(!pcount);
- 
--	/* Adjust hint for FACK. Non-FACK is handled in tcp_sacktag_one(). */
--	if (tcp_is_fack(tp) && (skb == tp->lost_skb_hint))
-+	/* Adjust counters and hints for the newly sacked sequence
-+	 * range but discard the return value since prev is already
-+	 * marked. We must tag the range first because the seq
-+	 * advancement below implicitly advances
-+	 * tcp_highest_sack_seq() when skb is highest_sack.
-+	 */
-+	tcp_sacktag_one(sk, state, TCP_SKB_CB(skb)->sacked,
-+			start_seq, end_seq, dup_sack, pcount);
-+
-+	if (skb == tp->lost_skb_hint)
- 		tp->lost_cnt_hint += pcount;
- 
- 	TCP_SKB_CB(prev)->end_seq += shifted;
-@@ -1433,12 +1441,6 @@ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- 		skb_shinfo(skb)->gso_type = 0;
- 	}
- 
--	/* Adjust counters and hints for the newly sacked sequence range but
--	 * discard the return value since prev is already marked.
--	 */
--	tcp_sacktag_one(sk, state, TCP_SKB_CB(skb)->sacked,
--			start_seq, end_seq, dup_sack, pcount);
--
- 	/* Difference in this won't matter, both ACKed by the same cumul. ACK */
- 	TCP_SKB_CB(prev)->sacked |= (TCP_SKB_CB(skb)->sacked & TCPCB_EVER_RETRANS);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0020-vmxnet3-Fix-transport-header-size.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0020-vmxnet3-Fix-transport-header-size.patch
deleted file mode 100644
index 8bcb9ae..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0020-vmxnet3-Fix-transport-header-size.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 40cfa9924ed2f94482607fc884f1acb414d492b9 Mon Sep 17 00:00:00 2001
-From: Shreyas Bhatewara <sbhatewara at vmware.com>
-Date: Tue, 28 Feb 2012 22:17:38 +0000
-Subject: [PATCH 20/42] vmxnet3: Fix transport header size
-
-[ Upstream commit efead8710aad9e384730ecf25eae0287878840d7 ]
-
-Fix transport header size
-
-Fix the transpoert header size for UDP packets.
-
-Signed-off-by: Shreyas N Bhatewara <sbhatewara at vmware.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/vmxnet3/vmxnet3_drv.c |    7 +------
- drivers/net/vmxnet3/vmxnet3_int.h |    4 ++--
- 2 files changed, 3 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/vmxnet3/vmxnet3_drv.c b/drivers/net/vmxnet3/vmxnet3_drv.c
-index d96bfb1..d426261 100644
---- a/drivers/net/vmxnet3/vmxnet3_drv.c
-+++ b/drivers/net/vmxnet3/vmxnet3_drv.c
-@@ -830,13 +830,8 @@ vmxnet3_parse_and_copy_hdr(struct sk_buff *skb, struct vmxnet3_tx_queue *tq,
- 					ctx->l4_hdr_size = ((struct tcphdr *)
- 					   skb_transport_header(skb))->doff * 4;
- 				else if (iph->protocol == IPPROTO_UDP)
--					/*
--					 * Use tcp header size so that bytes to
--					 * be copied are more than required by
--					 * the device.
--					 */
- 					ctx->l4_hdr_size =
--							sizeof(struct tcphdr);
-+							sizeof(struct udphdr);
- 				else
- 					ctx->l4_hdr_size = 0;
- 			} else {
-diff --git a/drivers/net/vmxnet3/vmxnet3_int.h b/drivers/net/vmxnet3/vmxnet3_int.h
-index b18eac1..8df921b 100644
---- a/drivers/net/vmxnet3/vmxnet3_int.h
-+++ b/drivers/net/vmxnet3/vmxnet3_int.h
-@@ -70,10 +70,10 @@
- /*
-  * Version numbers
-  */
--#define VMXNET3_DRIVER_VERSION_STRING   "1.1.18.0-k"
-+#define VMXNET3_DRIVER_VERSION_STRING   "1.1.29.0-k"
- 
- /* a 32-bit int, each byte encode a verion number in VMXNET3_DRIVER_VERSION */
--#define VMXNET3_DRIVER_VERSION_NUM      0x01011200
-+#define VMXNET3_DRIVER_VERSION_NUM      0x01011D00
- 
- #if defined(CONFIG_PCI_MSI)
- 	/* RSS only makes sense if MSI-X is supported. */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0021-packetengines-fix-config-default.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0021-packetengines-fix-config-default.patch
deleted file mode 100644
index 6cfbc55..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0021-packetengines-fix-config-default.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 08a5b2365331981cd769e07182fce70ed50c8b66 Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Fri, 2 Mar 2012 13:38:56 +0000
-Subject: [PATCH 21/42] packetengines: fix config default
-
-[ Upstream commit 3f2010b2ad3d66d5291497c9b274315e7b807ecd ]
-
-As part of the big network driver reorg, each vendor directory defaults to
-yes, so that older config's can migrate correctly. Looks like this one
-got missed.
-
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/packetengines/Kconfig |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/ethernet/packetengines/Kconfig b/drivers/net/ethernet/packetengines/Kconfig
-index b97132d..8f29feb 100644
---- a/drivers/net/ethernet/packetengines/Kconfig
-+++ b/drivers/net/ethernet/packetengines/Kconfig
-@@ -4,6 +4,7 @@
- 
- config NET_PACKET_ENGINE
- 	bool "Packet Engine devices"
-+	default y
- 	depends on PCI
- 	---help---
- 	  If you have a network (Ethernet) card belonging to this class, say Y
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0022-r8169-corrupted-IP-fragments-fix-for-large-mtu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0022-r8169-corrupted-IP-fragments-fix-for-large-mtu.patch
deleted file mode 100644
index 497caa4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0022-r8169-corrupted-IP-fragments-fix-for-large-mtu.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 87f64e870bbad8d4558ae32ea0152c5e986a5264 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?fran=C3=A7ois=20romieu?= <romieu at fr.zoreil.com>
-Date: Fri, 2 Mar 2012 04:43:14 +0000
-Subject: [PATCH 22/42] r8169: corrupted IP fragments fix for large mtu.
-
-[ Upstream commit 9c5028e9da1255dd2b99762d8627b88b29f68cce ]
-
-Noticed with the 8168d (-vb-gr, aka RTL_GIGA_MAC_VER_26).
-
-ConfigX registers should only be written while the Config9346 lock
-is held.
-
-Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
-Reported-by: Nick Bowler <nbowler at elliptictech.com>
-Cc: Hayes Wang <hayeswang at realtek.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/realtek/r8169.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index c8f47f1..0cf2351 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -3781,12 +3781,20 @@ static void rtl8169_init_ring_indexes(struct rtl8169_private *tp)
- 
- static void rtl_hw_jumbo_enable(struct rtl8169_private *tp)
- {
-+	void __iomem *ioaddr = tp->mmio_addr;
-+
-+	RTL_W8(Cfg9346, Cfg9346_Unlock);
- 	rtl_generic_op(tp, tp->jumbo_ops.enable);
-+	RTL_W8(Cfg9346, Cfg9346_Lock);
- }
- 
- static void rtl_hw_jumbo_disable(struct rtl8169_private *tp)
- {
-+	void __iomem *ioaddr = tp->mmio_addr;
-+
-+	RTL_W8(Cfg9346, Cfg9346_Unlock);
- 	rtl_generic_op(tp, tp->jumbo_ops.disable);
-+	RTL_W8(Cfg9346, Cfg9346_Lock);
- }
- 
- static void r8168c_hw_jumbo_enable(struct rtl8169_private *tp)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0023-tcp-don-t-fragment-SACKed-skbs-in-tcp_mark_head_lost.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0023-tcp-don-t-fragment-SACKed-skbs-in-tcp_mark_head_lost.patch
deleted file mode 100644
index 41a5387..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0023-tcp-don-t-fragment-SACKed-skbs-in-tcp_mark_head_lost.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From c0313fea8fa8ff77714bfdab4eed42ae0785dc37 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Fri, 2 Mar 2012 21:36:51 +0000
-Subject: [PATCH 23/42] tcp: don't fragment SACKed skbs in
- tcp_mark_head_lost()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit c0638c247f559e1a16ee79e54df14bca2cb679ea ]
-
-In tcp_mark_head_lost() we should not attempt to fragment a SACKed skb
-to mark the first portion as lost. This is for two primary reasons:
-
-(1) tcp_shifted_skb() coalesces adjacent regions of SACKed skbs. When
-doing this, it preserves the sum of their packet counts in order to
-reflect the real-world dynamics on the wire. But given that skbs can
-have remainders that do not align to MSS boundaries, this packet count
-preservation means that for SACKed skbs there is not necessarily a
-direct linear relationship between tcp_skb_pcount(skb) and
-skb->len. Thus tcp_mark_head_lost()'s previous attempts to fragment
-off and mark as lost a prefix of length (packets - oldcnt)*mss from
-SACKed skbs were leading to occasional failures of the WARN_ON(len >
-skb->len) in tcp_fragment() (which used to be a BUG_ON(); see the
-recent "crash in tcp_fragment" thread on netdev).
-
-(2) there is no real point in fragmenting off part of a SACKed skb and
-calling tcp_skb_mark_lost() on it, since tcp_skb_mark_lost() is a NOP
-for SACKed skbs.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Acked-by: Ilpo Järvinen <ilpo.jarvinen at helsinki.fi>
-Acked-by: Yuchung Cheng <ycheng at google.com>
-Acked-by: Nandita Dukkipati <nanditad at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_input.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 9e32fca..1c774af 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -2571,6 +2571,7 @@ static void tcp_mark_head_lost(struct sock *sk, int packets, int mark_head)
- 
- 		if (cnt > packets) {
- 			if ((tcp_is_sack(tp) && !tcp_is_fack(tp)) ||
-+			    (TCP_SKB_CB(skb)->sacked & TCPCB_SACKED_ACKED) ||
- 			    (oldcnt >= packets))
- 				break;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0024-bridge-check-return-value-of-ipv6_dev_get_saddr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0024-bridge-check-return-value-of-ipv6_dev_get_saddr.patch
deleted file mode 100644
index 7a05ae2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0024-bridge-check-return-value-of-ipv6_dev_get_saddr.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 384298df213387fc31905729a5e23e79bc6b8222 Mon Sep 17 00:00:00 2001
-From: Ulrich Weber <ulrich.weber at sophos.com>
-Date: Mon, 5 Mar 2012 04:52:44 +0000
-Subject: [PATCH 24/42] bridge: check return value of ipv6_dev_get_saddr()
-
-[ Upstream commit d1d81d4c3dd886d5fa25a2c4fa1e39cb89613712 ]
-
-otherwise source IPv6 address of ICMPV6_MGM_QUERY packet
-might be random junk if IPv6 is disabled on interface or
-link-local address is not yet ready (DAD).
-
-Signed-off-by: Ulrich Weber <ulrich.weber at sophos.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/bridge/br_multicast.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
-index a5f4e57..8eb6b15 100644
---- a/net/bridge/br_multicast.c
-+++ b/net/bridge/br_multicast.c
-@@ -446,8 +446,11 @@ static struct sk_buff *br_ip6_multicast_alloc_query(struct net_bridge *br,
- 	ip6h->nexthdr = IPPROTO_HOPOPTS;
- 	ip6h->hop_limit = 1;
- 	ipv6_addr_set(&ip6h->daddr, htonl(0xff020000), 0, 0, htonl(1));
--	ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
--			   &ip6h->saddr);
-+	if (ipv6_dev_get_saddr(dev_net(br->dev), br->dev, &ip6h->daddr, 0,
-+			       &ip6h->saddr)) {
-+		kfree_skb(skb);
-+		return NULL;
-+	}
- 	ipv6_eth_mc_map(&ip6h->daddr, eth->h_dest);
- 
- 	hopopt = (u8 *)(ip6h + 1);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0025-tcp-fix-tcp_shift_skb_data-to-not-shift-SACKed-data-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0025-tcp-fix-tcp_shift_skb_data-to-not-shift-SACKed-data-.patch
deleted file mode 100644
index 07ce46b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0025-tcp-fix-tcp_shift_skb_data-to-not-shift-SACKed-data-.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From c0ebd50aab8d8fa2f98ceb9da54d161f492326e0 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Mon, 5 Mar 2012 19:35:04 +0000
-Subject: [PATCH 25/42] tcp: fix tcp_shift_skb_data() to not shift SACKed data
- below snd_una
-
-[ Upstream commit 4648dc97af9d496218a05353b0e442b3dfa6aaab ]
-
-This commit fixes tcp_shift_skb_data() so that it does not shift
-SACKed data below snd_una.
-
-This fixes an issue whose symptoms exactly match reports showing
-tp->sacked_out going negative since 3.3.0-rc4 (see "WARNING: at
-net/ipv4/tcp_input.c:3418" thread on netdev).
-
-Since 2008 (832d11c5cd076abc0aa1eaf7be96c81d1a59ce41)
-tcp_shift_skb_data() had been shifting SACKed ranges that were below
-snd_una. It checked that the *end* of the skb it was about to shift
-from was above snd_una, but did not check that the end of the actual
-shifted range was above snd_una; this commit adds that check.
-
-Shifting SACKed ranges below snd_una is problematic because for such
-ranges tcp_sacktag_one() short-circuits: it does not declare anything
-as SACKed and does not increase sacked_out.
-
-Before the fixes in commits cc9a672ee522d4805495b98680f4a3db5d0a0af9
-and daef52bab1fd26e24e8e9578f8fb33ba1d0cb412, shifting SACKed ranges
-below snd_una happened to work because tcp_shifted_skb() was always
-(incorrectly) passing in to tcp_sacktag_one() an skb whose end_seq
-tcp_shift_skb_data() had already guaranteed was beyond snd_una. Hence
-tcp_sacktag_one() never short-circuited and always increased
-tp->sacked_out in this case.
-
-After those two fixes, my testing has verified that shifting SACKed
-ranges below snd_una could cause tp->sacked_out to go negative with
-the following sequence of events:
-
-(1) tcp_shift_skb_data() sees an skb whose end_seq is beyond snd_una,
-    then shifts a prefix of that skb that is below snd_una
-
-(2) tcp_shifted_skb() increments the packet count of the
-    already-SACKed prev sk_buff
-
-(3) tcp_sacktag_one() sees the end of the new SACKed range is below
-    snd_una, so it short-circuits and doesn't increase tp->sacked_out
-
-(5) tcp_clean_rtx_queue() sees the SACKed skb has been ACKed,
-    decrements tp->sacked_out by this "inflated" pcount that was
-    missing a matching increase in tp->sacked_out, and hence
-    tp->sacked_out underflows to a u32 like 0xFFFFFFFF, which casted
-    to s32 is negative.
-
-(6) this leads to the warnings seen in the recent "WARNING: at
-    net/ipv4/tcp_input.c:3418" thread on the netdev list; e.g.:
-    tcp_input.c:3418  WARN_ON((int)tp->sacked_out < 0);
-
-More generally, I think this bug can be tickled in some cases where
-two or more ACKs from the receiver are lost and then a DSACK arrives
-that is immediately above an existing SACKed skb in the write queue.
-
-This fix changes tcp_shift_skb_data() to abort this sequence at step
-(1) in the scenario above by noticing that the bytes are below snd_una
-and not shifting them.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_input.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 1c774af..e4d1e4a 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -1588,6 +1588,10 @@ static struct sk_buff *tcp_shift_skb_data(struct sock *sk, struct sk_buff *skb,
- 		}
- 	}
- 
-+	/* tcp_sacktag_one() won't SACK-tag ranges below snd_una */
-+	if (!after(TCP_SKB_CB(skb)->seq + len, tp->snd_una))
-+		goto fallback;
-+
- 	if (!skb_shift(prev, skb, len))
- 		goto fallback;
- 	if (!tcp_shifted_skb(sk, skb, state, pcount, len, mss, dup_sack))
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0026-IPv6-Fix-not-join-all-router-mcast-group-when-forwar.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0026-IPv6-Fix-not-join-all-router-mcast-group-when-forwar.patch
deleted file mode 100644
index 048a7e3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0026-IPv6-Fix-not-join-all-router-mcast-group-when-forwar.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7ddf7a941aeb1bdb57801edb82c68fae8d40ea75 Mon Sep 17 00:00:00 2001
-From: Li Wei <lw at cn.fujitsu.com>
-Date: Mon, 5 Mar 2012 14:45:17 +0000
-Subject: [PATCH 26/42] IPv6: Fix not join all-router mcast group when
- forwarding set.
-
-[ Upstream commit d6ddef9e641d1229d4ec841dc75ae703171c3e92 ]
-
-When forwarding was set and a new net device is register,
-we need add this device to the all-router mcast group.
-
-Signed-off-by: Li Wei <lw at cn.fujitsu.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv6/addrconf.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
-index 836c4ea..a5521c5 100644
---- a/net/ipv6/addrconf.c
-+++ b/net/ipv6/addrconf.c
-@@ -434,6 +434,10 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev)
- 	/* Join all-node multicast group */
- 	ipv6_dev_mc_inc(dev, &in6addr_linklocal_allnodes);
- 
-+	/* Join all-router multicast group if forwarding is set */
-+	if (ndev->cnf.forwarding && dev && (dev->flags & IFF_MULTICAST))
-+		ipv6_dev_mc_inc(dev, &in6addr_linklocal_allrouters);
-+
- 	return ndev;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0027-usb-asix-Patch-for-Sitecom-LN-031.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0027-usb-asix-Patch-for-Sitecom-LN-031.patch
deleted file mode 100644
index be2bf82..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0027-usb-asix-Patch-for-Sitecom-LN-031.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 636b06096f3e95adf81e162fdb74ed388c696be1 Mon Sep 17 00:00:00 2001
-From: Joerg Neikes <j.neikes at midlandgate.de>
-Date: Thu, 8 Mar 2012 22:44:03 +0000
-Subject: [PATCH 27/42] usb: asix: Patch for Sitecom LN-031
-
-commit 4e50391968849860dff1aacde358b4eb14aa5127 upstream.
-
-This patch adds support for the Sitecom LN-031 USB adapter with a AX88178 chip.
-
-Added USB id to find correct driver for AX88178 1000 Ethernet adapter.
-
-Signed-off-by: Joerg Neikes <j.neikes at midlandgate.de>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/asix.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
-index f5e063a..fda4be2 100644
---- a/drivers/net/usb/asix.c
-+++ b/drivers/net/usb/asix.c
-@@ -1595,6 +1595,10 @@ static const struct usb_device_id	products [] = {
- 	USB_DEVICE (0x6189, 0x182d),
- 	.driver_info =  (unsigned long) &ax8817x_info,
- }, {
-+	// Sitecom LN-031 "USB 2.0 10/100/1000 Ethernet adapter"
-+	USB_DEVICE (0x0df6, 0x0056),
-+	.driver_info =  (unsigned long) &ax88178_info,
-+}, {
- 	// corega FEther USB2-TX
- 	USB_DEVICE (0x07aa, 0x0017),
- 	.driver_info =  (unsigned long) &ax8817x_info,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0028-regulator-Fix-setting-selector-in-tps6524x-set_volta.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0028-regulator-Fix-setting-selector-in-tps6524x-set_volta.patch
deleted file mode 100644
index 32f16eb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0028-regulator-Fix-setting-selector-in-tps6524x-set_volta.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 62c35c47cb8ddee3510f8da30768d995d62736ba Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin at gmail.com>
-Date: Thu, 8 Mar 2012 10:02:17 +0800
-Subject: [PATCH 28/42] regulator: Fix setting selector in tps6524x
- set_voltage function
-
-commit f03570cf1709397ebe656608266b44ec772960c2 upstream.
-
-Don't assign the voltage to selector.
-
-Signed-off-by: Axel Lin <axel.lin at gmail.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/regulator/tps6524x-regulator.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/regulator/tps6524x-regulator.c b/drivers/regulator/tps6524x-regulator.c
-index 9166aa0..229b6f4 100644
---- a/drivers/regulator/tps6524x-regulator.c
-+++ b/drivers/regulator/tps6524x-regulator.c
-@@ -481,7 +481,7 @@ static int set_voltage(struct regulator_dev *rdev, int min_uV, int max_uV,
- 	if (i >= info->n_voltages)
- 		i = info->n_voltages - 1;
- 
--	*selector = info->voltages[i];
-+	*selector = i;
- 
- 	return write_field(hw, &info->voltage, i);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0029-block-Fix-NULL-pointer-dereference-in-sd_revalidate_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0029-block-Fix-NULL-pointer-dereference-in-sd_revalidate_.patch
deleted file mode 100644
index 3a4af4b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0029-block-Fix-NULL-pointer-dereference-in-sd_revalidate_.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From f90fbbb22b2a145c5a3d66a31a46a32bb54ed722 Mon Sep 17 00:00:00 2001
-From: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
-Date: Fri, 2 Mar 2012 10:38:33 +0100
-Subject: [PATCH 29/42] block: Fix NULL pointer dereference in
- sd_revalidate_disk
-
-commit fe316bf2d5847bc5dd975668671a7b1067603bc7 upstream.
-
-Since 2.6.39 (1196f8b), when a driver returns -ENOMEDIUM for open(),
-__blkdev_get() calls rescan_partitions() to remove
-in-kernel partition structures and raise KOBJ_CHANGE uevent.
-
-However it ends up calling driver's revalidate_disk without open
-and could cause oops.
-
-In the case of SCSI:
-
-  process A                  process B
-  ----------------------------------------------
-  sys_open
-    __blkdev_get
-      sd_open
-        returns -ENOMEDIUM
-                             scsi_remove_device
-                               <scsi_device torn down>
-      rescan_partitions
-        sd_revalidate_disk
-          <oops>
-Oopses are reported here:
-http://marc.info/?l=linux-scsi&m=132388619710052
-
-This patch separates the partition invalidation from rescan_partitions()
-and use it for -ENOMEDIUM case.
-
-Reported-by: Huajun Li <huajun.li.lee at gmail.com>
-Signed-off-by: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
-Acked-by: Tejun Heo <tj at kernel.org>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/block_dev.c        |   16 ++++++++++++----
- fs/partitions/check.c |   48 ++++++++++++++++++++++++++++++++++++++++--------
- include/linux/genhd.h |    1 +
- 3 files changed, 53 insertions(+), 12 deletions(-)
-
-diff --git a/fs/block_dev.c b/fs/block_dev.c
-index b07f1da..abe9b48 100644
---- a/fs/block_dev.c
-+++ b/fs/block_dev.c
-@@ -1159,8 +1159,12 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
- 			 * The latter is necessary to prevent ghost
- 			 * partitions on a removed medium.
- 			 */
--			if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM))
--				rescan_partitions(disk, bdev);
-+			if (bdev->bd_invalidated) {
-+				if (!ret)
-+					rescan_partitions(disk, bdev);
-+				else if (ret == -ENOMEDIUM)
-+					invalidate_partitions(disk, bdev);
-+			}
- 			if (ret)
- 				goto out_clear;
- 		} else {
-@@ -1190,8 +1194,12 @@ static int __blkdev_get(struct block_device *bdev, fmode_t mode, int for_part)
- 			if (bdev->bd_disk->fops->open)
- 				ret = bdev->bd_disk->fops->open(bdev, mode);
- 			/* the same as first opener case, read comment there */
--			if (bdev->bd_invalidated && (!ret || ret == -ENOMEDIUM))
--				rescan_partitions(bdev->bd_disk, bdev);
-+			if (bdev->bd_invalidated) {
-+				if (!ret)
-+					rescan_partitions(bdev->bd_disk, bdev);
-+				else if (ret == -ENOMEDIUM)
-+					invalidate_partitions(bdev->bd_disk, bdev);
-+			}
- 			if (ret)
- 				goto out_unlock_bdev;
- 		}
-diff --git a/fs/partitions/check.c b/fs/partitions/check.c
-index e3c63d1..6b5fcc5 100644
---- a/fs/partitions/check.c
-+++ b/fs/partitions/check.c
-@@ -539,17 +539,11 @@ static bool disk_unlock_native_capacity(struct gendisk *disk)
- 	}
- }
- 
--int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
-+static int drop_partitions(struct gendisk *disk, struct block_device *bdev)
- {
--	struct parsed_partitions *state = NULL;
- 	struct disk_part_iter piter;
- 	struct hd_struct *part;
--	int p, highest, res;
--rescan:
--	if (state && !IS_ERR(state)) {
--		kfree(state);
--		state = NULL;
--	}
-+	int res;
- 
- 	if (bdev->bd_part_count)
- 		return -EBUSY;
-@@ -562,6 +556,24 @@ rescan:
- 		delete_partition(disk, part->partno);
- 	disk_part_iter_exit(&piter);
- 
-+	return 0;
-+}
-+
-+int rescan_partitions(struct gendisk *disk, struct block_device *bdev)
-+{
-+	struct parsed_partitions *state = NULL;
-+	struct hd_struct *part;
-+	int p, highest, res;
-+rescan:
-+	if (state && !IS_ERR(state)) {
-+		kfree(state);
-+		state = NULL;
-+	}
-+
-+	res = drop_partitions(disk, bdev);
-+	if (res)
-+		return res;
-+
- 	if (disk->fops->revalidate_disk)
- 		disk->fops->revalidate_disk(disk);
- 	check_disk_size_change(disk, bdev);
-@@ -665,6 +677,26 @@ rescan:
- 	return 0;
- }
- 
-+int invalidate_partitions(struct gendisk *disk, struct block_device *bdev)
-+{
-+	int res;
-+
-+	if (!bdev->bd_invalidated)
-+		return 0;
-+
-+	res = drop_partitions(disk, bdev);
-+	if (res)
-+		return res;
-+
-+	set_capacity(disk, 0);
-+	check_disk_size_change(disk, bdev);
-+	bdev->bd_invalidated = 0;
-+	/* tell userspace that the media / partition table may have changed */
-+	kobject_uevent(&disk_to_dev(disk)->kobj, KOBJ_CHANGE);
-+
-+	return 0;
-+}
-+
- unsigned char *read_dev_sector(struct block_device *bdev, sector_t n, Sector *p)
- {
- 	struct address_space *mapping = bdev->bd_inode->i_mapping;
-diff --git a/include/linux/genhd.h b/include/linux/genhd.h
-index 6d18f35..c6f7f6a 100644
---- a/include/linux/genhd.h
-+++ b/include/linux/genhd.h
-@@ -596,6 +596,7 @@ extern char *disk_name (struct gendisk *hd, int partno, char *buf);
- 
- extern int disk_expand_part_tbl(struct gendisk *disk, int target);
- extern int rescan_partitions(struct gendisk *disk, struct block_device *bdev);
-+extern int invalidate_partitions(struct gendisk *disk, struct block_device *bdev);
- extern struct hd_struct * __must_check add_partition(struct gendisk *disk,
- 						     int partno, sector_t start,
- 						     sector_t len, int flags,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0030-block-sx8-fix-pointer-math-issue-getting-fw-version.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0030-block-sx8-fix-pointer-math-issue-getting-fw-version.patch
deleted file mode 100644
index 0ed858c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0030-block-sx8-fix-pointer-math-issue-getting-fw-version.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 5a399c9c3325b2a72d3bf522b7e1b0fa48954d96 Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Sat, 3 Mar 2012 12:09:17 +0100
-Subject: [PATCH 30/42] block, sx8: fix pointer math issue getting fw version
-
-commit ea5f4db8ece896c2ab9eafa0924148a2596c52e4 upstream.
-
-"mem" is type u8.  We need parenthesis here or it screws up the pointer
-math probably leading to an oops.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Acked-by: Jeff Garzik <jgarzik at redhat.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/block/sx8.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/block/sx8.c b/drivers/block/sx8.c
-index b70f0fc..eec7b7a 100644
---- a/drivers/block/sx8.c
-+++ b/drivers/block/sx8.c
-@@ -1116,7 +1116,7 @@ static inline void carm_handle_resp(struct carm_host *host,
- 			break;
- 		case MISC_GET_FW_VER: {
- 			struct carm_fw_ver *ver = (struct carm_fw_ver *)
--				mem + sizeof(struct carm_msg_get_fw_ver);
-+				(mem + sizeof(struct carm_msg_get_fw_ver));
- 			if (!error) {
- 				host->fw_ver = le32_to_cpu(ver->version);
- 				host->flags |= (ver->features & FL_FW_VER_MASK);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0031-block-fix-__blkdev_get-and-add_disk-race-condition.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0031-block-fix-__blkdev_get-and-add_disk-race-condition.patch
deleted file mode 100644
index 4a08d31..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0031-block-fix-__blkdev_get-and-add_disk-race-condition.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 365dff776f2730d8aa79bb2d4cec1abcca4d30fd Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Fri, 2 Mar 2012 10:43:28 +0100
-Subject: [PATCH 31/42] block: fix __blkdev_get and add_disk race condition
-
-commit 9f53d2fe815b4011ff930a7b6db98385d45faa68 upstream.
-
-The following situation might occur:
-
-__blkdev_get:			add_disk:
-
-				register_disk()
-get_gendisk()
-
-disk_block_events()
-	disk->ev == NULL
-
-				disk_add_events()
-
-__disk_unblock_events()
-	disk->ev != NULL
-	--ev->block
-
-Then we unblock events, when they are suppose to be blocked. This can
-trigger events related block/genhd.c warnings, but also can crash in
-sd_check_events() or other places.
-
-I'm able to reproduce crashes with the following scripts (with
-connected usb dongle as sdb disk).
-
-<snip>
-DEV=/dev/sdb
-ENABLE=/sys/bus/usb/devices/1-2/bConfigurationValue
-
-function stop_me()
-{
-	for i in `jobs -p` ; do kill $i 2> /dev/null ; done
-	exit
-}
-
-trap stop_me SIGHUP SIGINT SIGTERM
-
-for ((i = 0; i < 10; i++)) ; do
-	while true; do fdisk -l $DEV  2>&1 > /dev/null ; done &
-done
-
-while true ; do
-echo 1 > $ENABLE
-sleep 1
-echo 0 > $ENABLE
-done
-</snip>
-
-I use the script to verify patch fixing oops in sd_revalidate_disk
-http://marc.info/?l=linux-scsi&m=132935572512352&w=2
-Without Jun'ichi Nomura patch titled "Fix NULL pointer dereference in
-sd_revalidate_disk" or this one, script easily crash kernel within
-a few seconds. With both patches applied I do not observe crash.
-Unfortunately after some time (dozen of minutes), script will hung in:
-
-[ 1563.906432]  [<c08354f5>] schedule_timeout_uninterruptible+0x15/0x20
-[ 1563.906437]  [<c04532d5>] msleep+0x15/0x20
-[ 1563.906443]  [<c05d60b2>] blk_drain_queue+0x32/0xd0
-[ 1563.906447]  [<c05d6e00>] blk_cleanup_queue+0xd0/0x170
-[ 1563.906454]  [<c06d278f>] scsi_free_queue+0x3f/0x60
-[ 1563.906459]  [<c06d7e6e>] __scsi_remove_device+0x6e/0xb0
-[ 1563.906463]  [<c06d4aff>] scsi_forget_host+0x4f/0x60
-[ 1563.906468]  [<c06cd84a>] scsi_remove_host+0x5a/0xf0
-[ 1563.906482]  [<f7f030fb>] quiesce_and_remove_host+0x5b/0xa0 [usb_storage]
-[ 1563.906490]  [<f7f03203>] usb_stor_disconnect+0x13/0x20 [usb_storage]
-
-Anyway I think this patch is some step forward.
-
-As drawback, I do not teardown on sysfs file create error, because I do
-not know how to nullify disk->ev (since it can be used). However add_disk
-error handling practically does not exist too, and things will work
-without this sysfs file, except events will not be exported to user
-space.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Acked-by: Tejun Heo <tj at kernel.org>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- block/genhd.c |   32 +++++++++++++++++++-------------
- 1 file changed, 19 insertions(+), 13 deletions(-)
-
-diff --git a/block/genhd.c b/block/genhd.c
-index 02e9fca..9db720d 100644
---- a/block/genhd.c
-+++ b/block/genhd.c
-@@ -36,6 +36,7 @@ static DEFINE_IDR(ext_devt_idr);
- 
- static struct device_type disk_type;
- 
-+static void disk_alloc_events(struct gendisk *disk);
- static void disk_add_events(struct gendisk *disk);
- static void disk_del_events(struct gendisk *disk);
- static void disk_release_events(struct gendisk *disk);
-@@ -602,6 +603,8 @@ void add_disk(struct gendisk *disk)
- 	disk->major = MAJOR(devt);
- 	disk->first_minor = MINOR(devt);
- 
-+	disk_alloc_events(disk);
-+
- 	/* Register BDI before referencing it from bdev */
- 	bdi = &disk->queue->backing_dev_info;
- 	bdi_register_dev(bdi, disk_devt(disk));
-@@ -1734,9 +1737,9 @@ module_param_cb(events_dfl_poll_msecs, &disk_events_dfl_poll_msecs_param_ops,
- 		&disk_events_dfl_poll_msecs, 0644);
- 
- /*
-- * disk_{add|del|release}_events - initialize and destroy disk_events.
-+ * disk_{alloc|add|del|release}_events - initialize and destroy disk_events.
-  */
--static void disk_add_events(struct gendisk *disk)
-+static void disk_alloc_events(struct gendisk *disk)
- {
- 	struct disk_events *ev;
- 
-@@ -1749,16 +1752,6 @@ static void disk_add_events(struct gendisk *disk)
- 		return;
- 	}
- 
--	if (sysfs_create_files(&disk_to_dev(disk)->kobj,
--			       disk_events_attrs) < 0) {
--		pr_warn("%s: failed to create sysfs files for events\n",
--			disk->disk_name);
--		kfree(ev);
--		return;
--	}
--
--	disk->ev = ev;
--
- 	INIT_LIST_HEAD(&ev->node);
- 	ev->disk = disk;
- 	spin_lock_init(&ev->lock);
-@@ -1767,8 +1760,21 @@ static void disk_add_events(struct gendisk *disk)
- 	ev->poll_msecs = -1;
- 	INIT_DELAYED_WORK(&ev->dwork, disk_events_workfn);
- 
-+	disk->ev = ev;
-+}
-+
-+static void disk_add_events(struct gendisk *disk)
-+{
-+	if (!disk->ev)
-+		return;
-+
-+	/* FIXME: error handling */
-+	if (sysfs_create_files(&disk_to_dev(disk)->kobj, disk_events_attrs) < 0)
-+		pr_warn("%s: failed to create sysfs files for events\n",
-+			disk->disk_name);
-+
- 	mutex_lock(&disk_events_mutex);
--	list_add_tail(&ev->node, &disk_events);
-+	list_add_tail(&disk->ev->node, &disk_events);
- 	mutex_unlock(&disk_events_mutex);
- 
- 	/*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0032-Block-use-a-freezable-workqueue-for-disk-event-polli.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0032-Block-use-a-freezable-workqueue-for-disk-event-polli.patch
deleted file mode 100644
index de8f4c9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0032-Block-use-a-freezable-workqueue-for-disk-event-polli.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 21816a3fe95d2536991ece0a71609d8c22f8af9d Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Fri, 2 Mar 2012 10:51:00 +0100
-Subject: [PATCH 32/42] Block: use a freezable workqueue for disk-event
- polling
-
-commit 62d3c5439c534b0e6c653fc63e6d8c67be3a57b1 upstream.
-
-This patch (as1519) fixes a bug in the block layer's disk-events
-polling.  The polling is done by a work routine queued on the
-system_nrt_wq workqueue.  Since that workqueue isn't freezable, the
-polling continues even in the middle of a system sleep transition.
-
-Obviously, polling a suspended drive for media changes and such isn't
-a good thing to do; in the case of USB mass-storage devices it can
-lead to real problems requiring device resets and even re-enumeration.
-
-The patch fixes things by creating a new system-wide, non-reentrant,
-freezable workqueue and using it for disk-events polling.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Acked-by: Tejun Heo <tj at kernel.org>
-Acked-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- block/genhd.c             |   10 +++++-----
- include/linux/workqueue.h |    4 ++++
- kernel/workqueue.c        |    7 ++++++-
- 3 files changed, 15 insertions(+), 6 deletions(-)
-
-diff --git a/block/genhd.c b/block/genhd.c
-index 9db720d..997afd6 100644
---- a/block/genhd.c
-+++ b/block/genhd.c
-@@ -1479,9 +1479,9 @@ static void __disk_unblock_events(struct gendisk *disk, bool check_now)
- 	intv = disk_events_poll_jiffies(disk);
- 	set_timer_slack(&ev->dwork.timer, intv / 4);
- 	if (check_now)
--		queue_delayed_work(system_nrt_wq, &ev->dwork, 0);
-+		queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, 0);
- 	else if (intv)
--		queue_delayed_work(system_nrt_wq, &ev->dwork, intv);
-+		queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, intv);
- out_unlock:
- 	spin_unlock_irqrestore(&ev->lock, flags);
- }
-@@ -1525,7 +1525,7 @@ void disk_flush_events(struct gendisk *disk, unsigned int mask)
- 	ev->clearing |= mask;
- 	if (!ev->block) {
- 		cancel_delayed_work(&ev->dwork);
--		queue_delayed_work(system_nrt_wq, &ev->dwork, 0);
-+		queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, 0);
- 	}
- 	spin_unlock_irq(&ev->lock);
- }
-@@ -1562,7 +1562,7 @@ unsigned int disk_clear_events(struct gendisk *disk, unsigned int mask)
- 
- 	/* uncondtionally schedule event check and wait for it to finish */
- 	disk_block_events(disk);
--	queue_delayed_work(system_nrt_wq, &ev->dwork, 0);
-+	queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, 0);
- 	flush_delayed_work(&ev->dwork);
- 	__disk_unblock_events(disk, false);
- 
-@@ -1599,7 +1599,7 @@ static void disk_events_workfn(struct work_struct *work)
- 
- 	intv = disk_events_poll_jiffies(disk);
- 	if (!ev->block && intv)
--		queue_delayed_work(system_nrt_wq, &ev->dwork, intv);
-+		queue_delayed_work(system_nrt_freezable_wq, &ev->dwork, intv);
- 
- 	spin_unlock_irq(&ev->lock);
- 
-diff --git a/include/linux/workqueue.h b/include/linux/workqueue.h
-index 0d556de..e228ca9 100644
---- a/include/linux/workqueue.h
-+++ b/include/linux/workqueue.h
-@@ -289,12 +289,16 @@ enum {
-  *
-  * system_freezable_wq is equivalent to system_wq except that it's
-  * freezable.
-+ *
-+ * system_nrt_freezable_wq is equivalent to system_nrt_wq except that
-+ * it's freezable.
-  */
- extern struct workqueue_struct *system_wq;
- extern struct workqueue_struct *system_long_wq;
- extern struct workqueue_struct *system_nrt_wq;
- extern struct workqueue_struct *system_unbound_wq;
- extern struct workqueue_struct *system_freezable_wq;
-+extern struct workqueue_struct *system_nrt_freezable_wq;
- 
- extern struct workqueue_struct *
- __alloc_workqueue_key(const char *name, unsigned int flags, int max_active,
-diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 42fa9ad..bb425b1 100644
---- a/kernel/workqueue.c
-+++ b/kernel/workqueue.c
-@@ -253,11 +253,13 @@ struct workqueue_struct *system_long_wq __read_mostly;
- struct workqueue_struct *system_nrt_wq __read_mostly;
- struct workqueue_struct *system_unbound_wq __read_mostly;
- struct workqueue_struct *system_freezable_wq __read_mostly;
-+struct workqueue_struct *system_nrt_freezable_wq __read_mostly;
- EXPORT_SYMBOL_GPL(system_wq);
- EXPORT_SYMBOL_GPL(system_long_wq);
- EXPORT_SYMBOL_GPL(system_nrt_wq);
- EXPORT_SYMBOL_GPL(system_unbound_wq);
- EXPORT_SYMBOL_GPL(system_freezable_wq);
-+EXPORT_SYMBOL_GPL(system_nrt_freezable_wq);
- 
- #define CREATE_TRACE_POINTS
- #include <trace/events/workqueue.h>
-@@ -3821,8 +3823,11 @@ static int __init init_workqueues(void)
- 					    WQ_UNBOUND_MAX_ACTIVE);
- 	system_freezable_wq = alloc_workqueue("events_freezable",
- 					      WQ_FREEZABLE, 0);
-+	system_nrt_freezable_wq = alloc_workqueue("events_nrt_freezable",
-+			WQ_NON_REENTRANT | WQ_FREEZABLE, 0);
- 	BUG_ON(!system_wq || !system_long_wq || !system_nrt_wq ||
--	       !system_unbound_wq || !system_freezable_wq);
-+	       !system_unbound_wq || !system_freezable_wq ||
-+		!system_nrt_freezable_wq);
- 	return 0;
- }
- early_initcall(init_workqueues);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0033-sparc32-Add-Av8-to-assembler-command-line.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0033-sparc32-Add-Av8-to-assembler-command-line.patch
deleted file mode 100644
index 7807d73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0033-sparc32-Add-Av8-to-assembler-command-line.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 80a069c15be0297948b3075c0e691832b9241187 Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Tue, 13 Mar 2012 18:19:51 -0700
-Subject: [PATCH 33/42] sparc32: Add -Av8 to assembler command line.
-
-commit e0adb9902fb338a9fe634c3c2a3e474075c733ba upstream.
-
-Newer version of binutils are more strict about specifying the
-correct options to enable certain classes of instructions.
-
-The sparc32 build is done for v7 in order to support sun4c systems
-which lack hardware integer multiply and divide instructions.
-
-So we have to pass -Av8 when building the assembler routines that
-use these instructions and get patched into the kernel when we find
-out that we have a v8 capable cpu.
-
-Reported-by: Paul Gortmaker <paul.gortmaker at windriver.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/sparc/Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/sparc/Makefile b/arch/sparc/Makefile
-index ad1fb5d..eddcfb3 100644
---- a/arch/sparc/Makefile
-+++ b/arch/sparc/Makefile
-@@ -31,7 +31,7 @@ UTS_MACHINE    := sparc
- 
- #KBUILD_CFLAGS += -g -pipe -fcall-used-g5 -fcall-used-g7
- KBUILD_CFLAGS += -m32 -pipe -mno-fpu -fcall-used-g5 -fcall-used-g7
--KBUILD_AFLAGS += -m32
-+KBUILD_AFLAGS += -m32 -Wa,-Av8
- 
- #LDFLAGS_vmlinux = -N -Ttext 0xf0004000
- #  Since 2.5.40, the first stage is left not btfix-ed.
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0034-hwmon-w83627ehf-Fix-writing-into-fan_stop_time-for-N.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0034-hwmon-w83627ehf-Fix-writing-into-fan_stop_time-for-N.patch
deleted file mode 100644
index 0fb2aca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0034-hwmon-w83627ehf-Fix-writing-into-fan_stop_time-for-N.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 0cf88be2891cd60ef2f132c0eb55cb5334b6439d Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Mon, 12 Mar 2012 08:21:16 -0700
-Subject: [PATCH 34/42] hwmon: (w83627ehf) Fix writing into fan_stop_time for
- NCT6775F/NCT6776F
-
-commit 33fa9b620409edfc71aa6cf01a51f990fbe46ab8 upstream.
-
-NCT6775F and NCT6776F have their own set of registers for FAN_STOP_TIME. The
-correct registers were used to read FAN_STOP_TIME, but writes used the wrong
-registers. Fix it.
-
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/w83627ehf.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
-index c25387d..7a44a56 100644
---- a/drivers/hwmon/w83627ehf.c
-+++ b/drivers/hwmon/w83627ehf.c
-@@ -1607,7 +1607,7 @@ store_##reg(struct device *dev, struct device_attribute *attr, \
- 	val = step_time_to_reg(val, data->pwm_mode[nr]); \
- 	mutex_lock(&data->update_lock); \
- 	data->reg[nr] = val; \
--	w83627ehf_write_value(data, W83627EHF_REG_##REG[nr], val); \
-+	w83627ehf_write_value(data, data->REG_##REG[nr], val); \
- 	mutex_unlock(&data->update_lock); \
- 	return count; \
- } \
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0035-hwmon-w83627ehf-Fix-memory-leak-in-probe-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0035-hwmon-w83627ehf-Fix-memory-leak-in-probe-function.patch
deleted file mode 100644
index 0df8c38..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0035-hwmon-w83627ehf-Fix-memory-leak-in-probe-function.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 61fa0a2298850898c90ce67bb0b9b440c452820a Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Mon, 12 Mar 2012 08:33:10 -0700
-Subject: [PATCH 35/42] hwmon: (w83627ehf) Fix memory leak in probe function
-
-commit 32260d94408c553dca4ce54104edf79941a27536 upstream.
-
-The driver probe function leaked memory if creating the cpu0_vid attribute file
-failed. Fix by converting the driver to use devm_kzalloc.
-
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/w83627ehf.c |    7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
-index 7a44a56..3ffa1fa 100644
---- a/drivers/hwmon/w83627ehf.c
-+++ b/drivers/hwmon/w83627ehf.c
-@@ -2004,7 +2004,8 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
- 		goto exit;
- 	}
- 
--	data = kzalloc(sizeof(struct w83627ehf_data), GFP_KERNEL);
-+	data = devm_kzalloc(&pdev->dev, sizeof(struct w83627ehf_data),
-+			    GFP_KERNEL);
- 	if (!data) {
- 		err = -ENOMEM;
- 		goto exit_release;
-@@ -2498,9 +2499,8 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
- 
- exit_remove:
- 	w83627ehf_device_remove_files(dev);
--	kfree(data);
--	platform_set_drvdata(pdev, NULL);
- exit_release:
-+	platform_set_drvdata(pdev, NULL);
- 	release_region(res->start, IOREGION_LENGTH);
- exit:
- 	return err;
-@@ -2514,7 +2514,6 @@ static int __devexit w83627ehf_remove(struct platform_device *pdev)
- 	w83627ehf_device_remove_files(&pdev->dev);
- 	release_region(data->addr, IOREGION_LENGTH);
- 	platform_set_drvdata(pdev, NULL);
--	kfree(data);
- 
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0036-hwmon-w83627ehf-Fix-temp2-source-for-W83627UHG.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0036-hwmon-w83627ehf-Fix-temp2-source-for-W83627UHG.patch
deleted file mode 100644
index 40044dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0036-hwmon-w83627ehf-Fix-temp2-source-for-W83627UHG.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 9a7969b58bd5d4f2c05fefa4143f244ccb5b06ab Mon Sep 17 00:00:00 2001
-From: Jean Delvare <khali at linux-fr.org>
-Date: Tue, 13 Mar 2012 04:03:27 -0400
-Subject: [PATCH 36/42] hwmon: (w83627ehf) Fix temp2 source for W83627UHG
-
-commit aacb6b0052692c72fe0cb94c6b547202def6ef46 upstream.
-
-Properly set the source of temp2 for the W83627UHG. Also fix a
-comment right before that, and document the W83627UHG as reporting up
-to 3 temperatures.
-
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Cc: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- Documentation/hwmon/w83627ehf |    2 +-
- drivers/hwmon/w83627ehf.c     |    8 ++++----
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/Documentation/hwmon/w83627ehf b/Documentation/hwmon/w83627ehf
-index 3f44dbd..75f3155 100644
---- a/Documentation/hwmon/w83627ehf
-+++ b/Documentation/hwmon/w83627ehf
-@@ -50,7 +50,7 @@ W83627DHG, W83627DHG-P, W83627UHG, W83667HG, W83667HG-B, W83667HG-I
- (NCT6775F), and NCT6776F super I/O chips. We will refer to them collectively
- as Winbond chips.
- 
--The chips implement 2 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
-+The chips implement 3 to 4 temperature sensors (9 for NCT6775F and NCT6776F),
- 2 to 5 fan rotation speed sensors, 8 to 10 analog voltage sensors, one VID
- (except for 627UHG), alarms with beep warnings (control unimplemented),
- and some automatic fan regulation strategies (plus manual fan control mode).
-diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
-index 3ffa1fa..ceaec92 100644
---- a/drivers/hwmon/w83627ehf.c
-+++ b/drivers/hwmon/w83627ehf.c
-@@ -39,7 +39,7 @@
- 					       0x8860 0xa1
-     w83627dhg    9      5       4       3      0xa020 0xc1    0x5ca3
-     w83627dhg-p  9      5       4       3      0xb070 0xc1    0x5ca3
--    w83627uhg    8      2       2       2      0xa230 0xc1    0x5ca3
-+    w83627uhg    8      2       2       3      0xa230 0xc1    0x5ca3
-     w83667hg     9      5       3       3      0xa510 0xc1    0x5ca3
-     w83667hg-b   9      5       3       4      0xb350 0xc1    0x5ca3
-     nct6775f     9      4       3       9      0xb470 0xc1    0x5ca3
-@@ -2158,16 +2158,16 @@ static int __devinit w83627ehf_probe(struct platform_device *pdev)
- 		w83627ehf_set_temp_reg_ehf(data, 3);
- 
- 		/*
--		 * Temperature sources for temp1 and temp2 are selected with
-+		 * Temperature sources for temp2 and temp3 are selected with
- 		 * bank 0, registers 0x49 and 0x4a.
- 		 */
- 		data->temp_src[0] = 0;	/* SYSTIN */
- 		reg = w83627ehf_read_value(data, 0x49) & 0x07;
- 		/* Adjust to have the same mapping as other source registers */
- 		if (reg == 0)
--			data->temp_src[1]++;
-+			data->temp_src[1] = 1;
- 		else if (reg >= 2 && reg <= 5)
--			data->temp_src[1] += 2;
-+			data->temp_src[1] = reg + 2;
- 		else	/* should never happen */
- 			data->have_temp &= ~(1 << 1);
- 		reg = w83627ehf_read_value(data, 0x4a);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0037-rapidio-tsi721-fix-bug-in-register-offset-definition.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0037-rapidio-tsi721-fix-bug-in-register-offset-definition.patch
deleted file mode 100644
index 4f59e54..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0037-rapidio-tsi721-fix-bug-in-register-offset-definition.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 4998c8b933c68ede83d8c017928a6666d26b42de Mon Sep 17 00:00:00 2001
-From: Alexandre Bounine <alexandre.bounine at idt.com>
-Date: Thu, 15 Mar 2012 15:17:09 -0700
-Subject: [PATCH 37/42] rapidio/tsi721: fix bug in register offset definitions
-
-commit 9bbad7da76b3dd578fb55c862624366a8c9ccd22 upstream.
-
-Fix indexed register offset definitions that use decimal (wrong) instead
-of hexadecimal (correct) notation for indexing multipliers.
-
-Incorrect definitions do not affect Tsi721 driver in its current default
-configuration because it uses only IDB queue 0.  Loss of inbound
-doorbell functionality should be observed if queue other than 0 is used.
-
-Signed-off-by: Alexandre Bounine <alexandre.bounine at idt.com>
-Cc: Matt Porter <mporter at kernel.crashing.org>
-Cc: Chul Kim <chul.kim at idt.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/rapidio/devices/tsi721.h |   30 +++++++++++++++---------------
- 1 file changed, 15 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/rapidio/devices/tsi721.h b/drivers/rapidio/devices/tsi721.h
-index 822e54c..1c226b3 100644
---- a/drivers/rapidio/devices/tsi721.h
-+++ b/drivers/rapidio/devices/tsi721.h
-@@ -118,34 +118,34 @@
- 
- #define TSI721_IDB_ENTRY_SIZE	64
- 
--#define TSI721_IDQ_CTL(x)	(0x20000 + (x) * 1000)
-+#define TSI721_IDQ_CTL(x)	(0x20000 + (x) * 0x1000)
- #define TSI721_IDQ_SUSPEND	0x00000002
- #define TSI721_IDQ_INIT		0x00000001
- 
--#define TSI721_IDQ_STS(x)	(0x20004 + (x) * 1000)
-+#define TSI721_IDQ_STS(x)	(0x20004 + (x) * 0x1000)
- #define TSI721_IDQ_RUN		0x00200000
- 
--#define TSI721_IDQ_MASK(x)	(0x20008 + (x) * 1000)
-+#define TSI721_IDQ_MASK(x)	(0x20008 + (x) * 0x1000)
- #define TSI721_IDQ_MASK_MASK	0xffff0000
- #define TSI721_IDQ_MASK_PATT	0x0000ffff
- 
--#define TSI721_IDQ_RP(x)	(0x2000c + (x) * 1000)
-+#define TSI721_IDQ_RP(x)	(0x2000c + (x) * 0x1000)
- #define TSI721_IDQ_RP_PTR	0x0007ffff
- 
--#define TSI721_IDQ_WP(x)	(0x20010 + (x) * 1000)
-+#define TSI721_IDQ_WP(x)	(0x20010 + (x) * 0x1000)
- #define TSI721_IDQ_WP_PTR	0x0007ffff
- 
--#define TSI721_IDQ_BASEL(x)	(0x20014 + (x) * 1000)
-+#define TSI721_IDQ_BASEL(x)	(0x20014 + (x) * 0x1000)
- #define TSI721_IDQ_BASEL_ADDR	0xffffffc0
--#define TSI721_IDQ_BASEU(x)	(0x20018 + (x) * 1000)
--#define TSI721_IDQ_SIZE(x)	(0x2001c + (x) * 1000)
-+#define TSI721_IDQ_BASEU(x)	(0x20018 + (x) * 0x1000)
-+#define TSI721_IDQ_SIZE(x)	(0x2001c + (x) * 0x1000)
- #define TSI721_IDQ_SIZE_VAL(size)	(__fls(size) - 4)
- #define TSI721_IDQ_SIZE_MIN	512
- #define TSI721_IDQ_SIZE_MAX	(512 * 1024)
- 
--#define TSI721_SR_CHINT(x)	(0x20040 + (x) * 1000)
--#define TSI721_SR_CHINTE(x)	(0x20044 + (x) * 1000)
--#define TSI721_SR_CHINTSET(x)	(0x20048 + (x) * 1000)
-+#define TSI721_SR_CHINT(x)	(0x20040 + (x) * 0x1000)
-+#define TSI721_SR_CHINTE(x)	(0x20044 + (x) * 0x1000)
-+#define TSI721_SR_CHINTSET(x)	(0x20048 + (x) * 0x1000)
- #define TSI721_SR_CHINT_ODBOK	0x00000020
- #define TSI721_SR_CHINT_IDBQRCV	0x00000010
- #define TSI721_SR_CHINT_SUSP	0x00000008
-@@ -156,7 +156,7 @@
- 
- #define TSI721_IBWIN_NUM	8
- 
--#define TSI721_IBWINLB(x)	(0x29000 + (x) * 20)
-+#define TSI721_IBWINLB(x)	(0x29000 + (x) * 0x20)
- #define TSI721_IBWINLB_BA	0xfffff000
- #define TSI721_IBWINLB_WEN	0x00000001
- 
-@@ -187,13 +187,13 @@
-  */
- #define TSI721_OBWIN_NUM	TSI721_PC2SR_WINS
- 
--#define TSI721_OBWINLB(x)	(0x40000 + (x) * 20)
-+#define TSI721_OBWINLB(x)	(0x40000 + (x) * 0x20)
- #define TSI721_OBWINLB_BA	0xffff8000
- #define TSI721_OBWINLB_WEN	0x00000001
- 
--#define TSI721_OBWINUB(x)	(0x40004 + (x) * 20)
-+#define TSI721_OBWINUB(x)	(0x40004 + (x) * 0x20)
- 
--#define TSI721_OBWINSZ(x)	(0x40008 + (x) * 20)
-+#define TSI721_OBWINSZ(x)	(0x40008 + (x) * 0x20)
- #define TSI721_OBWINSZ_SIZE	0x00001f00
- #define TSI721_OBWIN_SIZE(size)	(__fls(size) - 15)
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0038-i2c-algo-bit-Fix-spurious-SCL-timeouts-under-heavy-l.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0038-i2c-algo-bit-Fix-spurious-SCL-timeouts-under-heavy-l.patch
deleted file mode 100644
index 896f6ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0038-i2c-algo-bit-Fix-spurious-SCL-timeouts-under-heavy-l.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 67d192ddf0b8fb26bc4f8f2cf405b984174522b8 Mon Sep 17 00:00:00 2001
-From: Ville Syrjala <syrjala at sci.fi>
-Date: Thu, 15 Mar 2012 18:11:05 +0100
-Subject: [PATCH 38/42] i2c-algo-bit: Fix spurious SCL timeouts under heavy
- load
-
-commit 8ee161ce5e0cfc689eb677f227a6248191165fac upstream.
-
-When the system is under heavy load, there can be a significant delay
-between the getscl() and time_after() calls inside sclhi(). That delay
-may cause the time_after() check to trigger after SCL has gone high,
-causing sclhi() to return -ETIMEDOUT.
-
-To fix the problem, double check that SCL is still low after the
-timeout has been reached, before deciding to return -ETIMEDOUT.
-
-Signed-off-by: Ville Syrjala <syrjala at sci.fi>
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/i2c/algos/i2c-algo-bit.c |    8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/i2c/algos/i2c-algo-bit.c b/drivers/i2c/algos/i2c-algo-bit.c
-index 525c734..24f94f4 100644
---- a/drivers/i2c/algos/i2c-algo-bit.c
-+++ b/drivers/i2c/algos/i2c-algo-bit.c
-@@ -103,8 +103,14 @@ static int sclhi(struct i2c_algo_bit_data *adap)
- 		 * chips may hold it low ("clock stretching") while they
- 		 * are processing data internally.
- 		 */
--		if (time_after(jiffies, start + adap->timeout))
-+		if (time_after(jiffies, start + adap->timeout)) {
-+			/* Test one last time, as we may have been preempted
-+			 * between last check and timeout test.
-+			 */
-+			if (getscl(adap))
-+				break;
- 			return -ETIMEDOUT;
-+		}
- 		cond_resched();
- 	}
- #ifdef DEBUG
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0039-iscsi-target-Fix-reservation-conflict-EBUSY-response.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0039-iscsi-target-Fix-reservation-conflict-EBUSY-response.patch
deleted file mode 100644
index 3b071da..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0039-iscsi-target-Fix-reservation-conflict-EBUSY-response.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 68cefddd17e9b4f4600a64b0351acff4bb250419 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Tue, 13 Mar 2012 18:20:11 -0700
-Subject: [PATCH 39/42] iscsi-target: Fix reservation conflict -EBUSY response
- handling bug
-
-commit 00fdc6bbef77844ce397a7de7acfaf25e8e2e4eb upstream.
-
-This patch addresses a iscsi-target specific bug related to reservation conflict
-handling in iscsit_handle_scsi_cmd() that has been causing reservation conflicts
-to complete and not fail as expected due to incorrect errno checking.  The problem
-occured with the change to return -EBUSY from transport_generic_cmd_sequencer() ->
-transport_generic_allocate_tasks() failures, that broke iscsit_handle_scsi_cmd()
-checking for -EINVAL in order to invoke a non GOOD status response.
-
-This was manifesting itself as data corruption with legacy SPC-2 reservations,
-but also effects iscsi-target LUNs with SPC-3 persistent reservations.
-
-This bug was originally introduced in lio-core commit:
-
-commit 03e98c9eb916f3f0868c1dc344dde2a60287ff72
-Author: Nicholas Bellinger <nab at linux-iscsi.org>
-Date:   Fri Nov 4 02:36:16 2011 -0700
-
-    target: Address legacy PYX_TRANSPORT_* return code breakage
-
-Reported-by: Martin Svec <martin.svec at zoner.cz>
-Cc: Martin Svec <martin.svec at zoner.cz>
-Cc: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/iscsi/iscsi_target.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
-index 0c1d5c73..03d3528 100644
---- a/drivers/target/iscsi/iscsi_target.c
-+++ b/drivers/target/iscsi/iscsi_target.c
-@@ -1029,7 +1029,7 @@ done:
- 		return iscsit_add_reject_from_cmd(
- 				ISCSI_REASON_BOOKMARK_NO_RESOURCES,
- 				1, 1, buf, cmd);
--	} else if (transport_ret == -EINVAL) {
-+	} else if (transport_ret < 0) {
- 		/*
- 		 * Unsupported SAM Opcode.  CHECK_CONDITION will be sent
- 		 * in iscsit_execute_cmd() during the CmdSN OOO Execution
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0040-target-Fix-compatible-reservation-handling-CRH-1-wit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0040-target-Fix-compatible-reservation-handling-CRH-1-wit.patch
deleted file mode 100644
index 1673697..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0040-target-Fix-compatible-reservation-handling-CRH-1-wit.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From 16add6db674e266a62219145284435960e47435e Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Tue, 13 Mar 2012 21:29:06 -0700
-Subject: [PATCH 40/42] target: Fix compatible reservation handling (CRH=1)
- with legacy RESERVE/RELEASE
-
-commit 087a03b3ea1c8d6e2d5743a8d1c6d571058caa04 upstream.
-
-This patch addresses a bug with target_check_scsi2_reservation_conflict()
-return checking in target_scsi2_reservation_[reserve,release]() that was
-preventing CRH=1 operation from silently succeeding in the two special
-cases defined by SPC-3, and not failing with reservation conflict status
-when dealing with legacy RESERVE/RELEASE + active SPC-3 PR logic.
-
-Also explictly set cmd->scsi_status = SAM_STAT_RESERVATION_CONFLICT during
-the early non reservation holder failure from pr_ops->t10_seq_non_holder()
-check in transport_generic_cmd_sequencer() for fabrics that already expect
-it to be set.
-
-This bug was originally introduced in mainline commit:
-
-commit eacac00ce5bfde8086cd0615fb53c986f7f970fe
-Author: Christoph Hellwig <hch at infradead.org>
-Date:   Thu Nov 3 17:50:40 2011 -0400
-
-    target: split core_scsi2_emulate_crh
-
-Reported-by: Martin Svec <martin.svec at zoner.cz>
-Cc: Martin Svec <martin.svec at zoner.cz>
-Cc: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_pr.c        |   34 +++++++++++++++++++++-----------
- drivers/target/target_core_transport.c |    1 +
- 2 files changed, 23 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index 778c1a6..6cf6ff4 100644
---- a/drivers/target/target_core_pr.c
-+++ b/drivers/target/target_core_pr.c
-@@ -120,7 +120,7 @@ static struct t10_pr_registration *core_scsi3_locate_pr_reg(struct se_device *,
- 					struct se_node_acl *, struct se_session *);
- static void core_scsi3_put_pr_reg(struct t10_pr_registration *);
- 
--static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd, int *ret)
-+static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd)
- {
- 	struct se_session *se_sess = cmd->se_sess;
- 	struct se_subsystem_dev *su_dev = cmd->se_dev->se_sub_dev;
-@@ -130,7 +130,7 @@ static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd, int *ret)
- 	int conflict = 0;
- 
- 	if (!crh)
--		return false;
-+		return -EINVAL;
- 
- 	pr_reg = core_scsi3_locate_pr_reg(cmd->se_dev, se_sess->se_node_acl,
- 			se_sess);
-@@ -158,16 +158,14 @@ static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd, int *ret)
- 		 */
- 		if (pr_reg->pr_res_holder) {
- 			core_scsi3_put_pr_reg(pr_reg);
--			*ret = 0;
--			return false;
-+			return 1;
- 		}
- 		if ((pr_reg->pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_REGONLY) ||
- 		    (pr_reg->pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_REGONLY) ||
- 		    (pr_reg->pr_res_type == PR_TYPE_WRITE_EXCLUSIVE_ALLREG) ||
- 		    (pr_reg->pr_res_type == PR_TYPE_EXCLUSIVE_ACCESS_ALLREG)) {
- 			core_scsi3_put_pr_reg(pr_reg);
--			*ret = 0;
--			return true;
-+			return 1;
- 		}
- 		core_scsi3_put_pr_reg(pr_reg);
- 		conflict = 1;
-@@ -192,10 +190,10 @@ static int target_check_scsi2_reservation_conflict(struct se_cmd *cmd, int *ret)
- 			" while active SPC-3 registrations exist,"
- 			" returning RESERVATION_CONFLICT\n");
- 		cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT;
--		return true;
-+		return -EBUSY;
- 	}
- 
--	return false;
-+	return 0;
- }
- 
- int target_scsi2_reservation_release(struct se_task *task)
-@@ -204,12 +202,18 @@ int target_scsi2_reservation_release(struct se_task *task)
- 	struct se_device *dev = cmd->se_dev;
- 	struct se_session *sess = cmd->se_sess;
- 	struct se_portal_group *tpg = sess->se_tpg;
--	int ret = 0;
-+	int ret = 0, rc;
- 
- 	if (!sess || !tpg)
- 		goto out;
--	if (target_check_scsi2_reservation_conflict(cmd, &ret))
-+	rc = target_check_scsi2_reservation_conflict(cmd);
-+	if (rc == 1)
-+		goto out;
-+	else if (rc < 0) {
-+		cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT;
-+		ret = -EINVAL;
- 		goto out;
-+	}
- 
- 	ret = 0;
- 	spin_lock(&dev->dev_reservation_lock);
-@@ -246,7 +250,7 @@ int target_scsi2_reservation_reserve(struct se_task *task)
- 	struct se_device *dev = cmd->se_dev;
- 	struct se_session *sess = cmd->se_sess;
- 	struct se_portal_group *tpg = sess->se_tpg;
--	int ret = 0;
-+	int ret = 0, rc;
- 
- 	if ((cmd->t_task_cdb[1] & 0x01) &&
- 	    (cmd->t_task_cdb[1] & 0x02)) {
-@@ -262,8 +266,14 @@ int target_scsi2_reservation_reserve(struct se_task *task)
- 	 */
- 	if (!sess || !tpg)
- 		goto out;
--	if (target_check_scsi2_reservation_conflict(cmd, &ret))
-+	rc = target_check_scsi2_reservation_conflict(cmd);
-+	if (rc == 1)
- 		goto out;
-+	else if (rc < 0) {
-+		cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT;
-+		ret = -EINVAL;
-+		goto out;
-+	}
- 
- 	ret = 0;
- 	spin_lock(&dev->dev_reservation_lock);
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index e4ddb93..cdb774b 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -2507,6 +2507,7 @@ static int transport_generic_cmd_sequencer(
- 					cmd, cdb, pr_reg_type) != 0) {
- 			cmd->se_cmd_flags |= SCF_SCSI_CDB_EXCEPTION;
- 			cmd->se_cmd_flags |= SCF_SCSI_RESERVATION_CONFLICT;
-+			cmd->scsi_status = SAM_STAT_RESERVATION_CONFLICT;
- 			cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT;
- 			return -EBUSY;
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0041-hwmon-zl6100-Enable-interval-between-chip-accesses-f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0041-hwmon-zl6100-Enable-interval-between-chip-accesses-f.patch
deleted file mode 100644
index 7d266e8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0041-hwmon-zl6100-Enable-interval-between-chip-accesses-f.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From e4dffc01371682d0b23d22f1fe611f96b53cc486 Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <guenter.roeck at ericsson.com>
-Date: Tue, 13 Mar 2012 09:05:14 -0700
-Subject: [PATCH 41/42] hwmon: (zl6100) Enable interval between chip accesses
- for all chips
-
-commit fecfb64422d91a9621a3f96ab75c3a5f13e80b58 upstream.
-
-Intersil reports that all chips supported by the zl6100 driver require
-an interval between chip accesses, even ZL2004 and ZL6105 which were thought
-to be safe.
-
-Reported-by: Vivek Gani <vgani at intersil.com>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- Documentation/hwmon/zl6100   |   14 ++++++--------
- drivers/hwmon/pmbus/zl6100.c |   11 +++--------
- 2 files changed, 9 insertions(+), 16 deletions(-)
-
-diff --git a/Documentation/hwmon/zl6100 b/Documentation/hwmon/zl6100
-index 7617798..c5e1a5b 100644
---- a/Documentation/hwmon/zl6100
-+++ b/Documentation/hwmon/zl6100
-@@ -73,14 +73,12 @@ Module parameters
- delay
- -----
- 
--Some Intersil/Zilker Labs DC-DC controllers require a minimum interval between
--I2C bus accesses. According to Intersil, the minimum interval is 2 ms, though
--1 ms appears to be sufficient and has not caused any problems in testing.
--The problem is known to affect ZL6100, ZL2105, and ZL2008. It is known not to
--affect ZL2004 and ZL6105. The driver automatically sets the interval to 1 ms
--except for ZL2004 and ZL6105. To enable manual override, the driver provides a
--writeable module parameter, 'delay', which can be used to set the interval to
--a value between 0 and 65,535 microseconds.
-+Intersil/Zilker Labs DC-DC controllers require a minimum interval between I2C
-+bus accesses. According to Intersil, the minimum interval is 2 ms, though 1 ms
-+appears to be sufficient and has not caused any problems in testing. The problem
-+is known to affect all currently supported chips. For manual override, the
-+driver provides a writeable module parameter, 'delay', which can be used to set
-+the interval to a value between 0 and 65,535 microseconds.
- 
- 
- Sysfs entries
-diff --git a/drivers/hwmon/pmbus/zl6100.c b/drivers/hwmon/pmbus/zl6100.c
-index ba296fd..5c5cdd2 100644
---- a/drivers/hwmon/pmbus/zl6100.c
-+++ b/drivers/hwmon/pmbus/zl6100.c
-@@ -178,16 +178,11 @@ static int zl6100_probe(struct i2c_client *client,
- 	data->id = mid->driver_data;
- 
- 	/*
--	 * ZL2008, ZL2105, and ZL6100 are known to require a wait time
--	 * between I2C accesses. ZL2004 and ZL6105 are known to be safe.
--	 *
--	 * Only clear the wait time for chips known to be safe. The wait time
--	 * can be cleared later for additional chips if tests show that it
--	 * is not needed (in other words, better be safe than sorry).
-+	 * According to information from the chip vendor, all currently
-+	 * supported chips are known to require a wait time between I2C
-+	 * accesses.
- 	 */
- 	data->delay = delay;
--	if (data->id == zl2004 || data->id == zl6105)
--		data->delay = 0;
- 
- 	/*
- 	 * Since there was a direct I2C device access above, wait before
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0042-Linux-3.2.12.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0042-Linux-3.2.12.patch
deleted file mode 100644
index 282912d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.12/0042-Linux-3.2.12.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 5193c69b7a34cf74e5cd0ed629eb921c3f029b3e Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 19 Mar 2012 09:03:17 -0700
-Subject: [PATCH 42/42] Linux 3.2.12
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 4b76371..15e80f1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 11
-+SUBLEVEL = 12
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0001-nilfs2-fix-NULL-pointer-dereference-in-nilfs_load_su.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0001-nilfs2-fix-NULL-pointer-dereference-in-nilfs_load_su.patch
deleted file mode 100644
index 29df299..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0001-nilfs2-fix-NULL-pointer-dereference-in-nilfs_load_su.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 4f3587e3e193f8ae9278442bf254d1271c4d010d Mon Sep 17 00:00:00 2001
-From: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Date: Fri, 16 Mar 2012 17:08:39 -0700
-Subject: [PATCH 01/10] nilfs2: fix NULL pointer dereference in
- nilfs_load_super_block()
-
-commit d7178c79d9b7c5518f9943188091a75fc6ce0675 upstream.
-
-According to the report from Slicky Devil, nilfs caused kernel oops at
-nilfs_load_super_block function during mount after he shrank the
-partition without resizing the filesystem:
-
- BUG: unable to handle kernel NULL pointer dereference at 00000048
- IP: [<d0d7a08e>] nilfs_load_super_block+0x17e/0x280 [nilfs2]
- *pde = 00000000
- Oops: 0000 [#1] PREEMPT SMP
- ...
- Call Trace:
-  [<d0d7a87b>] init_nilfs+0x4b/0x2e0 [nilfs2]
-  [<d0d6f707>] nilfs_mount+0x447/0x5b0 [nilfs2]
-  [<c0226636>] mount_fs+0x36/0x180
-  [<c023d961>] vfs_kern_mount+0x51/0xa0
-  [<c023ddae>] do_kern_mount+0x3e/0xe0
-  [<c023f189>] do_mount+0x169/0x700
-  [<c023fa9b>] sys_mount+0x6b/0xa0
-  [<c04abd1f>] sysenter_do_call+0x12/0x28
- Code: 53 18 8b 43 20 89 4b 18 8b 4b 24 89 53 1c 89 43 24 89 4b 20 8b 43
- 20 c7 43 2c 00 00 00 00 23 75 e8 8b 50 68 89 53 28 8b 54 b3 20 <8b> 72
- 48 8b 7a 4c 8b 55 08 89 b3 84 00 00 00 89 bb 88 00 00 00
- EIP: [<d0d7a08e>] nilfs_load_super_block+0x17e/0x280 [nilfs2] SS:ESP 0068:ca9bbdcc
- CR2: 0000000000000048
-
-This turned out due to a defect in an error path which runs if the
-calculated location of the secondary super block was invalid.
-
-This patch fixes it and eliminates the reported oops.
-
-Reported-by: Slicky Devil <slicky.dvl at gmail.com>
-Signed-off-by: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Tested-by: Slicky Devil <slicky.dvl at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nilfs2/the_nilfs.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
-index d327140..35a8970 100644
---- a/fs/nilfs2/the_nilfs.c
-+++ b/fs/nilfs2/the_nilfs.c
-@@ -515,6 +515,7 @@ static int nilfs_load_super_block(struct the_nilfs *nilfs,
- 		brelse(sbh[1]);
- 		sbh[1] = NULL;
- 		sbp[1] = NULL;
-+		valid[1] = 0;
- 		swp = 0;
- 	}
- 	if (!valid[swp]) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0002-afs-Read-of-file-returns-EBADMSG.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0002-afs-Read-of-file-returns-EBADMSG.patch
deleted file mode 100644
index ff1e0d9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0002-afs-Read-of-file-returns-EBADMSG.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From d603197ba390bdeba1aa79167697278669fdd9f3 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Fri, 16 Mar 2012 10:28:07 +0000
-Subject: [PATCH 02/10] afs: Read of file returns EBADMSG
-
-commit 2c724fb92732c0b2a5629eb8af74e82eb62ac947 upstream.
-
-A read of a large file on an afs mount failed:
-
-# cat junk.file > /dev/null
-cat: junk.file: Bad message
-
-Looking at the trace, call->offset wrapped since it is only an
-unsigned short. In afs_extract_data:
-
-        _enter("{%u},{%zu},%d,,%zu", call->offset, len, last, count);
-...
-
-        if (call->offset < count) {
-                if (last) {
-                        _leave(" = -EBADMSG [%d < %zu]", call->offset, count);
-                        return -EBADMSG;
-                }
-
-Which matches the trace:
-
-[cat   ] ==> afs_extract_data({65132},{524},1,,65536)
-[cat   ] <== afs_extract_data() = -EBADMSG [0 < 65536]
-
-call->offset went from 65132 to 0. Fix this by making call->offset an
-unsigned int.
-
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: David Howells <dhowells at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/afs/internal.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/afs/internal.h b/fs/afs/internal.h
-index d2b0888..a306bb6 100644
---- a/fs/afs/internal.h
-+++ b/fs/afs/internal.h
-@@ -109,7 +109,7 @@ struct afs_call {
- 	unsigned		reply_size;	/* current size of reply */
- 	unsigned		first_offset;	/* offset into mapping[first] */
- 	unsigned		last_to;	/* amount of mapping[last] */
--	unsigned short		offset;		/* offset into received data store */
-+	unsigned		offset;		/* offset into received data store */
- 	unsigned char		unmarshall;	/* unmarshalling phase */
- 	bool			incoming;	/* T if incoming call */
- 	bool			send_pages;	/* T if data from mapping should be sent */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0003-afs-Remote-abort-can-cause-BUG-in-rxrpc-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0003-afs-Remote-abort-can-cause-BUG-in-rxrpc-code.patch
deleted file mode 100644
index 22cfa61..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0003-afs-Remote-abort-can-cause-BUG-in-rxrpc-code.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 4dd3f846325bf16e5b2d976dce42da7f722ade1f Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Fri, 16 Mar 2012 10:28:19 +0000
-Subject: [PATCH 03/10] afs: Remote abort can cause BUG in rxrpc code
-
-commit c0173863528a8c9212c53e080d63a1aaae5ef4f4 upstream.
-
-When writing files to afs I sometimes hit a BUG:
-
-kernel BUG at fs/afs/rxrpc.c:179!
-
-With a backtrace of:
-
-	afs_free_call
-	afs_make_call
-	afs_fs_store_data
-	afs_vnode_store_data
-	afs_write_back_from_locked_page
-	afs_writepages_region
-	afs_writepages
-
-The cause is:
-
-	ASSERT(skb_queue_empty(&call->rx_queue));
-
-Looking at a tcpdump of the session the abort happens because we
-are exceeding our disk quota:
-
-	rx abort fs reply store-data error diskquota exceeded (32)
-
-So the abort error is valid. We hit the BUG because we haven't
-freed all the resources for the call.
-
-By freeing any skbs in call->rx_queue before calling afs_free_call
-we avoid hitting leaking memory and avoid hitting the BUG.
-
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: David Howells <dhowells at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/afs/rxrpc.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/fs/afs/rxrpc.c b/fs/afs/rxrpc.c
-index e45a323..8ad8c2a 100644
---- a/fs/afs/rxrpc.c
-+++ b/fs/afs/rxrpc.c
-@@ -314,6 +314,7 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
- 	struct msghdr msg;
- 	struct kvec iov[1];
- 	int ret;
-+	struct sk_buff *skb;
- 
- 	_enter("%x,{%d},", addr->s_addr, ntohs(call->port));
- 
-@@ -380,6 +381,8 @@ int afs_make_call(struct in_addr *addr, struct afs_call *call, gfp_t gfp,
- 
- error_do_abort:
- 	rxrpc_kernel_abort_call(rxcall, RX_USER_ABORT);
-+	while ((skb = skb_dequeue(&call->rx_queue)))
-+		afs_free_skb(skb);
- 	rxrpc_kernel_end_call(rxcall);
- 	call->rxcall = NULL;
- error_kill_call:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0004-perf-tools-Incorrect-use-of-snprintf-results-in-SEGV.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0004-perf-tools-Incorrect-use-of-snprintf-results-in-SEGV.patch
deleted file mode 100644
index 0cfd765..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0004-perf-tools-Incorrect-use-of-snprintf-results-in-SEGV.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 4458ed1dbe1180712e2c42c1816145bb793b9422 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Wed, 7 Mar 2012 11:42:49 +1100
-Subject: [PATCH 04/10] perf tools: Incorrect use of snprintf results in SEGV
-
-commit b832796caa1fda8516464a003c8c7cc547bc20c2 upstream.
-
-I have a workload where perf top scribbles over the stack and we SEGV.
-What makes it interesting is that an snprintf is causing this.
-
-The workload is a c++ gem that has method names over 3000 characters
-long, but snprintf is designed to avoid overrunning buffers. So what
-went wrong?
-
-The problem is we assume snprintf returns the number of characters
-written:
-
-    ret += repsep_snprintf(bf + ret, size - ret, "[%c] ", self->level);
-...
-    ret += repsep_snprintf(bf + ret, size - ret, "%s", self->ms.sym->name);
-
-Unfortunately this is not how snprintf works. snprintf returns the
-number of characters that would have been written if there was enough
-space. In the above case, if the first snprintf returns a value larger
-than size, we pass a negative size into the second snprintf and happily
-scribble over the stack. If you have 3000 character c++ methods thats a
-lot of stack to trample.
-
-This patch fixes repsep_snprintf by clamping the value at size - 1 which
-is the maximum snprintf can write before adding the NULL terminator.
-
-I get the sinking feeling that there are a lot of other uses of snprintf
-that have this same bug, we should audit them all.
-
-Cc: David Ahern <dsahern at gmail.com>
-Cc: Eric B Munson <emunson at mgebm.net>
-Cc: Frederic Weisbecker <fweisbec at gmail.com>
-Cc: Ingo Molnar <mingo at elte.hu>
-Cc: Paul Mackerras <paulus at samba.org>
-Cc: Peter Zijlstra <peterz at infradead.org>
-Cc: Yanmin Zhang <yanmin_zhang at linux.intel.com>
-Link: http://lkml.kernel.org/r/20120307114249.44275ca3@kryten
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: Arnaldo Carvalho de Melo <acme at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- tools/perf/util/sort.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c
-index 16da30d..076c9d4 100644
---- a/tools/perf/util/sort.c
-+++ b/tools/perf/util/sort.c
-@@ -33,6 +33,9 @@ static int repsep_snprintf(char *bf, size_t size, const char *fmt, ...)
- 		}
- 	}
- 	va_end(ap);
-+
-+	if (n >= (int)size)
-+		return size - 1;
- 	return n;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0005-perf-tools-Use-scnprintf-where-applicable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0005-perf-tools-Use-scnprintf-where-applicable.patch
deleted file mode 100644
index 0b3e626..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0005-perf-tools-Use-scnprintf-where-applicable.patch
+++ /dev/null
@@ -1,283 +0,0 @@
-From 0761aae695aebede1d2ab4bf704419ee0ac957f1 Mon Sep 17 00:00:00 2001
-From: Arnaldo Carvalho de Melo <acme at redhat.com>
-Date: Wed, 14 Mar 2012 12:29:29 -0300
-Subject: [PATCH 05/10] perf tools: Use scnprintf where applicable
-
-commit e7f01d1e3d8d501deb8abeaa269d5d48a703b8b0 upstream.
-
-Several places were expecting that the value returned was the number of
-characters printed, not what would be printed if there was space.
-
-Fix it by using the scnprintf and vscnprintf variants we inherited from
-the kernel sources.
-
-Some corner cases where the number of printed characters were not
-accounted were fixed too.
-
-Reported-by: Anton Blanchard <anton at samba.org>
-Cc: Anton Blanchard <anton at samba.org>
-Cc: Eric B Munson <emunson at mgebm.net>
-Cc: David Ahern <dsahern at gmail.com>
-Cc: Frederic Weisbecker <fweisbec at gmail.com>
-Cc: Mike Galbraith <efault at gmx.de>
-Cc: Paul Mackerras <paulus at samba.org>
-Cc: Peter Zijlstra <peterz at infradead.org>
-Cc: Stephane Eranian <eranian at google.com>
-Cc: Yanmin Zhang <yanmin_zhang at linux.intel.com>
-Link: http://lkml.kernel.org/n/tip-kwxo2eh29cxmd8ilixi2005x@git.kernel.org
-Signed-off-by: Arnaldo Carvalho de Melo <acme at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- tools/perf/arch/powerpc/util/header.c |    2 +-
- tools/perf/arch/x86/util/header.c     |    2 +-
- tools/perf/util/color.c               |    9 +++++----
- tools/perf/util/header.c              |    4 ++--
- tools/perf/util/hist.c                |   30 +++++++++++++++---------------
- tools/perf/util/strbuf.c              |    7 ++++---
- tools/perf/util/ui/browsers/hists.c   |   12 ++++++------
- tools/perf/util/ui/helpline.c         |    2 +-
- 8 files changed, 35 insertions(+), 33 deletions(-)
-
-diff --git a/tools/perf/arch/powerpc/util/header.c b/tools/perf/arch/powerpc/util/header.c
-index eba80c2..2f7073d 100644
---- a/tools/perf/arch/powerpc/util/header.c
-+++ b/tools/perf/arch/powerpc/util/header.c
-@@ -25,7 +25,7 @@ get_cpuid(char *buffer, size_t sz)
- 
- 	pvr = mfspr(SPRN_PVR);
- 
--	nb = snprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr));
-+	nb = scnprintf(buffer, sz, "%lu,%lu$", PVR_VER(pvr), PVR_REV(pvr));
- 
- 	/* look for end marker to ensure the entire data fit */
- 	if (strchr(buffer, '$')) {
-diff --git a/tools/perf/arch/x86/util/header.c b/tools/perf/arch/x86/util/header.c
-index f940060..146d12a 100644
---- a/tools/perf/arch/x86/util/header.c
-+++ b/tools/perf/arch/x86/util/header.c
-@@ -48,7 +48,7 @@ get_cpuid(char *buffer, size_t sz)
- 		if (family >= 0x6)
- 			model += ((a >> 16) & 0xf) << 4;
- 	}
--	nb = snprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step);
-+	nb = scnprintf(buffer, sz, "%s,%u,%u,%u$", vendor, family, model, step);
- 
- 	/* look for end marker to ensure the entire data fit */
- 	if (strchr(buffer, '$')) {
-diff --git a/tools/perf/util/color.c b/tools/perf/util/color.c
-index 521c38a..11e46da1 100644
---- a/tools/perf/util/color.c
-+++ b/tools/perf/util/color.c
-@@ -1,3 +1,4 @@
-+#include <linux/kernel.h>
- #include "cache.h"
- #include "color.h"
- 
-@@ -182,12 +183,12 @@ static int __color_vsnprintf(char *bf, size_t size, const char *color,
- 	}
- 
- 	if (perf_use_color_default && *color)
--		r += snprintf(bf, size, "%s", color);
--	r += vsnprintf(bf + r, size - r, fmt, args);
-+		r += scnprintf(bf, size, "%s", color);
-+	r += vscnprintf(bf + r, size - r, fmt, args);
- 	if (perf_use_color_default && *color)
--		r += snprintf(bf + r, size - r, "%s", PERF_COLOR_RESET);
-+		r += scnprintf(bf + r, size - r, "%s", PERF_COLOR_RESET);
- 	if (trail)
--		r += snprintf(bf + r, size - r, "%s", trail);
-+		r += scnprintf(bf + r, size - r, "%s", trail);
- 	return r;
- }
- 
-diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
-index 33c17a2..2cd88c1 100644
---- a/tools/perf/util/header.c
-+++ b/tools/perf/util/header.c
-@@ -1227,7 +1227,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
- 	if (realname == NULL || filename == NULL || linkname == NULL)
- 		goto out_free;
- 
--	len = snprintf(filename, size, "%s%s%s",
-+	len = scnprintf(filename, size, "%s%s%s",
- 		       debugdir, is_kallsyms ? "/" : "", realname);
- 	if (mkdir_p(filename, 0755))
- 		goto out_free;
-@@ -1242,7 +1242,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
- 			goto out_free;
- 	}
- 
--	len = snprintf(linkname, size, "%s/.build-id/%.2s",
-+	len = scnprintf(linkname, size, "%s/.build-id/%.2s",
- 		       debugdir, sbuild_id);
- 
- 	if (access(linkname, X_OK) && mkdir_p(linkname, 0755))
-diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c
-index abef270..216e33a 100644
---- a/tools/perf/util/hist.c
-+++ b/tools/perf/util/hist.c
-@@ -767,7 +767,7 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s,
- 						     sep ? "%.2f" : "   %6.2f%%",
- 						     (period * 100.0) / total);
- 		else
--			ret = snprintf(s, size, sep ? "%.2f" : "   %6.2f%%",
-+			ret = scnprintf(s, size, sep ? "%.2f" : "   %6.2f%%",
- 				       (period * 100.0) / total);
- 		if (symbol_conf.show_cpu_utilization) {
- 			ret += percent_color_snprintf(s + ret, size - ret,
-@@ -790,20 +790,20 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s,
- 			}
- 		}
- 	} else
--		ret = snprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
-+		ret = scnprintf(s, size, sep ? "%" PRIu64 : "%12" PRIu64 " ", period);
- 
- 	if (symbol_conf.show_nr_samples) {
- 		if (sep)
--			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events);
-+			ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, nr_events);
- 		else
--			ret += snprintf(s + ret, size - ret, "%11" PRIu64, nr_events);
-+			ret += scnprintf(s + ret, size - ret, "%11" PRIu64, nr_events);
- 	}
- 
- 	if (symbol_conf.show_total_period) {
- 		if (sep)
--			ret += snprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
-+			ret += scnprintf(s + ret, size - ret, "%c%" PRIu64, *sep, period);
- 		else
--			ret += snprintf(s + ret, size - ret, " %12" PRIu64, period);
-+			ret += scnprintf(s + ret, size - ret, " %12" PRIu64, period);
- 	}
- 
- 	if (pair_hists) {
-@@ -818,25 +818,25 @@ static int hist_entry__pcnt_snprintf(struct hist_entry *self, char *s,
- 		diff = new_percent - old_percent;
- 
- 		if (fabs(diff) >= 0.01)
--			snprintf(bf, sizeof(bf), "%+4.2F%%", diff);
-+			ret += scnprintf(bf, sizeof(bf), "%+4.2F%%", diff);
- 		else
--			snprintf(bf, sizeof(bf), " ");
-+			ret += scnprintf(bf, sizeof(bf), " ");
- 
- 		if (sep)
--			ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf);
-+			ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf);
- 		else
--			ret += snprintf(s + ret, size - ret, "%11.11s", bf);
-+			ret += scnprintf(s + ret, size - ret, "%11.11s", bf);
- 
- 		if (show_displacement) {
- 			if (displacement)
--				snprintf(bf, sizeof(bf), "%+4ld", displacement);
-+				ret += scnprintf(bf, sizeof(bf), "%+4ld", displacement);
- 			else
--				snprintf(bf, sizeof(bf), " ");
-+				ret += scnprintf(bf, sizeof(bf), " ");
- 
- 			if (sep)
--				ret += snprintf(s + ret, size - ret, "%c%s", *sep, bf);
-+				ret += scnprintf(s + ret, size - ret, "%c%s", *sep, bf);
- 			else
--				ret += snprintf(s + ret, size - ret, "%6.6s", bf);
-+				ret += scnprintf(s + ret, size - ret, "%6.6s", bf);
- 		}
- 	}
- 
-@@ -854,7 +854,7 @@ int hist_entry__snprintf(struct hist_entry *he, char *s, size_t size,
- 		if (se->elide)
- 			continue;
- 
--		ret += snprintf(s + ret, size - ret, "%s", sep ?: "  ");
-+		ret += scnprintf(s + ret, size - ret, "%s", sep ?: "  ");
- 		ret += se->se_snprintf(he, s + ret, size - ret,
- 				       hists__col_len(hists, se->se_width_idx));
- 	}
-diff --git a/tools/perf/util/strbuf.c b/tools/perf/util/strbuf.c
-index 92e0685..2eeb51b 100644
---- a/tools/perf/util/strbuf.c
-+++ b/tools/perf/util/strbuf.c
-@@ -1,4 +1,5 @@
- #include "cache.h"
-+#include <linux/kernel.h>
- 
- int prefixcmp(const char *str, const char *prefix)
- {
-@@ -89,14 +90,14 @@ void strbuf_addf(struct strbuf *sb, const char *fmt, ...)
- 	if (!strbuf_avail(sb))
- 		strbuf_grow(sb, 64);
- 	va_start(ap, fmt);
--	len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap);
-+	len = vscnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap);
- 	va_end(ap);
- 	if (len < 0)
--		die("your vsnprintf is broken");
-+		die("your vscnprintf is broken");
- 	if (len > strbuf_avail(sb)) {
- 		strbuf_grow(sb, len);
- 		va_start(ap, fmt);
--		len = vsnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap);
-+		len = vscnprintf(sb->buf + sb->len, sb->alloc - sb->len, fmt, ap);
- 		va_end(ap);
- 		if (len > strbuf_avail(sb)) {
- 			die("this should not happen, your snprintf is broken");
-diff --git a/tools/perf/util/ui/browsers/hists.c b/tools/perf/util/ui/browsers/hists.c
-index d0c94b4..81c9fa5 100644
---- a/tools/perf/util/ui/browsers/hists.c
-+++ b/tools/perf/util/ui/browsers/hists.c
-@@ -839,15 +839,15 @@ static int hists__browser_title(struct hists *self, char *bf, size_t size,
- 	unsigned long nr_events = self->stats.nr_events[PERF_RECORD_SAMPLE];
- 
- 	nr_events = convert_unit(nr_events, &unit);
--	printed = snprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name);
-+	printed = scnprintf(bf, size, "Events: %lu%c %s", nr_events, unit, ev_name);
- 
- 	if (thread)
--		printed += snprintf(bf + printed, size - printed,
-+		printed += scnprintf(bf + printed, size - printed,
- 				    ", Thread: %s(%d)",
- 				    (thread->comm_set ? thread->comm : ""),
- 				    thread->pid);
- 	if (dso)
--		printed += snprintf(bf + printed, size - printed,
-+		printed += scnprintf(bf + printed, size - printed,
- 				    ", DSO: %s", dso->short_name);
- 	return printed;
- }
-@@ -1097,7 +1097,7 @@ static void perf_evsel_menu__write(struct ui_browser *browser,
- 						       HE_COLORSET_NORMAL);
- 
- 	nr_events = convert_unit(nr_events, &unit);
--	printed = snprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events,
-+	printed = scnprintf(bf, sizeof(bf), "%lu%c%s%s", nr_events,
- 			   unit, unit == ' ' ? "" : " ", ev_name);
- 	slsmg_printf("%s", bf);
- 
-@@ -1107,8 +1107,8 @@ static void perf_evsel_menu__write(struct ui_browser *browser,
- 		if (!current_entry)
- 			ui_browser__set_color(browser, HE_COLORSET_TOP);
- 		nr_events = convert_unit(nr_events, &unit);
--		snprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!", nr_events,
--			 unit, unit == ' ' ? "" : " ");
-+		printed += scnprintf(bf, sizeof(bf), ": %ld%c%schunks LOST!",
-+				     nr_events, unit, unit == ' ' ? "" : " ");
- 		warn = bf;
- 	}
- 
-diff --git a/tools/perf/util/ui/helpline.c b/tools/perf/util/ui/helpline.c
-index 6ef3c56..f50f81c 100644
---- a/tools/perf/util/ui/helpline.c
-+++ b/tools/perf/util/ui/helpline.c
-@@ -65,7 +65,7 @@ int ui_helpline__show_help(const char *format, va_list ap)
- 	static int backlog;
- 
- 	pthread_mutex_lock(&ui__lock);
--	ret = vsnprintf(ui_helpline__last_msg + backlog,
-+	ret = vscnprintf(ui_helpline__last_msg + backlog,
- 			sizeof(ui_helpline__last_msg) - backlog, format, ap);
- 	backlog += ret;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0006-tcp-fix-syncookie-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0006-tcp-fix-syncookie-regression.patch
deleted file mode 100644
index b245f58..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0006-tcp-fix-syncookie-regression.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 1783dd4e3bf403739015f4494cb05445623826c8 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Sat, 10 Mar 2012 09:20:21 +0000
-Subject: [PATCH 06/10] tcp: fix syncookie regression
-
-[ Upstream commit dfd25ffffc132c00070eed64200e8950da5d7e9d ]
-
-commit ea4fc0d619 (ipv4: Don't use rt->rt_{src,dst} in ip_queue_xmit())
-added a serious regression on synflood handling.
-
-Simon Kirby discovered a successful connection was delayed by 20 seconds
-before being responsive.
-
-In my tests, I discovered that xmit frames were lost, and needed ~4
-retransmits and a socket dst rebuild before being really sent.
-
-In case of syncookie initiated connection, we use a different path to
-initialize the socket dst, and inet->cork.fl.u.ip4 is left cleared.
-
-As ip_queue_xmit() now depends on inet flow being setup, fix this by
-copying the temp flowi4 we use in cookie_v4_check().
-
-Reported-by: Simon Kirby <sim at netnation.com>
-Bisected-by: Simon Kirby <sim at netnation.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Tested-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/syncookies.c |   30 ++++++++++++++++--------------
- net/ipv4/tcp_ipv4.c   |   10 +++++++---
- 2 files changed, 23 insertions(+), 17 deletions(-)
-
-diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c
-index 90f6544..769c0e9 100644
---- a/net/ipv4/syncookies.c
-+++ b/net/ipv4/syncookies.c
-@@ -278,6 +278,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
- 	struct rtable *rt;
- 	__u8 rcv_wscale;
- 	bool ecn_ok = false;
-+	struct flowi4 fl4;
- 
- 	if (!sysctl_tcp_syncookies || !th->ack || th->rst)
- 		goto out;
-@@ -346,20 +347,16 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
- 	 * hasn't changed since we received the original syn, but I see
- 	 * no easy way to do this.
- 	 */
--	{
--		struct flowi4 fl4;
--
--		flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk),
--				   RT_SCOPE_UNIVERSE, IPPROTO_TCP,
--				   inet_sk_flowi_flags(sk),
--				   (opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
--				   ireq->loc_addr, th->source, th->dest);
--		security_req_classify_flow(req, flowi4_to_flowi(&fl4));
--		rt = ip_route_output_key(sock_net(sk), &fl4);
--		if (IS_ERR(rt)) {
--			reqsk_free(req);
--			goto out;
--		}
-+	flowi4_init_output(&fl4, 0, sk->sk_mark, RT_CONN_FLAGS(sk),
-+			   RT_SCOPE_UNIVERSE, IPPROTO_TCP,
-+			   inet_sk_flowi_flags(sk),
-+			   (opt && opt->srr) ? opt->faddr : ireq->rmt_addr,
-+			   ireq->loc_addr, th->source, th->dest);
-+	security_req_classify_flow(req, flowi4_to_flowi(&fl4));
-+	rt = ip_route_output_key(sock_net(sk), &fl4);
-+	if (IS_ERR(rt)) {
-+		reqsk_free(req);
-+		goto out;
- 	}
- 
- 	/* Try to redo what tcp_v4_send_synack did. */
-@@ -373,5 +370,10 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb,
- 	ireq->rcv_wscale  = rcv_wscale;
- 
- 	ret = get_cookie_sock(sk, skb, req, &rt->dst);
-+	/* ip_queue_xmit() depends on our flow being setup
-+	 * Normal sockets get it right from inet_csk_route_child_sock()
-+	 */
-+	if (ret)
-+		inet_sk(ret)->cork.fl.u.ip4 = fl4;
- out:	return ret;
- }
-diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index eb90aa8..de69cec 100644
---- a/net/ipv4/tcp_ipv4.c
-+++ b/net/ipv4/tcp_ipv4.c
-@@ -1465,9 +1465,13 @@ struct sock *tcp_v4_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
- 		inet_csk(newsk)->icsk_ext_hdr_len = inet_opt->opt.optlen;
- 	newinet->inet_id = newtp->write_seq ^ jiffies;
- 
--	if (!dst && (dst = inet_csk_route_child_sock(sk, newsk, req)) == NULL)
--		goto put_and_exit;
--
-+	if (!dst) {
-+		dst = inet_csk_route_child_sock(sk, newsk, req);
-+		if (!dst)
-+			goto put_and_exit;
-+	} else {
-+		/* syncookie case : see end of cookie_v4_check() */
-+	}
- 	sk_setup_caps(newsk, dst);
- 
- 	tcp_mtup_init(newsk);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0007-ipv6-Don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0007-ipv6-Don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch
deleted file mode 100644
index c1e22fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0007-ipv6-Don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 599c3a877230bfb0db2f20028170b27a9cfef914 Mon Sep 17 00:00:00 2001
-From: "RongQing.Li" <roy.qing.li at gmail.com>
-Date: Thu, 15 Mar 2012 22:54:14 +0000
-Subject: [PATCH 07/10] ipv6: Don't dev_hold(dev) in ip6_mc_find_dev_rcu.
-
-[ Upstream commit c577923756b7fe9071f28a76b66b83b306d1d001 ]
-
-ip6_mc_find_dev_rcu() is called with rcu_read_lock(), so don't
-need to dev_hold().
-With dev_hold(), not corresponding dev_put(), will lead to leak.
-
-[ bug introduced in 96b52e61be1 (ipv6: mcast: RCU conversions) ]
-
-Signed-off-by: RongQing.Li <roy.qing.li at gmail.com>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv6/mcast.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
-index ee7839f..2257366 100644
---- a/net/ipv6/mcast.c
-+++ b/net/ipv6/mcast.c
-@@ -257,7 +257,6 @@ static struct inet6_dev *ip6_mc_find_dev_rcu(struct net *net,
- 
- 		if (rt) {
- 			dev = rt->rt6i_dev;
--			dev_hold(dev);
- 			dst_release(&rt->dst);
- 		}
- 	} else
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0008-iwl3945-fix-possible-il-txq-NULL-pointer-dereference.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0008-iwl3945-fix-possible-il-txq-NULL-pointer-dereference.patch
deleted file mode 100644
index 07ecf54..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0008-iwl3945-fix-possible-il-txq-NULL-pointer-dereference.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 50090beeab6611dbfccd8565bf6a6a97beddc6ee Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Thu, 8 Mar 2012 13:16:01 +0100
-Subject: [PATCH 08/10] iwl3945: fix possible il->txq NULL pointer dereference
- in delayed works
-
-commit 210787e82a0ac1ffb5d7be1c796f0c51050849ad upstream.
-
-On il3945_down procedure we free tx queue data and nullify il->txq
-pointer. After that we drop mutex and then cancel delayed works. There
-is possibility, that after drooping mutex and before the cancel, some
-delayed work will start and crash while trying to send commands to
-the device. For example, here is reported crash in
-il3945_bg_reg_txpower_periodic():
-https://bugzilla.kernel.org/show_bug.cgi?id=42766#c10
-
-Patch fix problem by adding il->txq check on works that send commands,
-hence utilize tx queue.
-
-Reported-by: Clemens Eisserer <linuxhippy at gmail.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/iwlegacy/iwl-3945.c     |    7 ++++---
- drivers/net/wireless/iwlegacy/iwl3945-base.c |    2 +-
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlegacy/iwl-3945.c b/drivers/net/wireless/iwlegacy/iwl-3945.c
-index f7c0a74..7d1aa7c 100644
---- a/drivers/net/wireless/iwlegacy/iwl-3945.c
-+++ b/drivers/net/wireless/iwlegacy/iwl-3945.c
-@@ -1870,11 +1870,12 @@ static void iwl3945_bg_reg_txpower_periodic(struct work_struct *work)
- 	struct iwl_priv *priv = container_of(work, struct iwl_priv,
- 					     _3945.thermal_periodic.work);
- 
--	if (test_bit(STATUS_EXIT_PENDING, &priv->status))
--		return;
--
- 	mutex_lock(&priv->mutex);
-+	if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL)
-+		goto out;
-+
- 	iwl3945_reg_txpower_periodic(priv);
-+out:
- 	mutex_unlock(&priv->mutex);
- }
- 
-diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-index 05f2ad1..b3d9f3f 100644
---- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
-+++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-@@ -2513,7 +2513,7 @@ static void iwl3945_bg_alive_start(struct work_struct *data)
- 	    container_of(data, struct iwl_priv, alive_start.work);
- 
- 	mutex_lock(&priv->mutex);
--	if (test_bit(STATUS_EXIT_PENDING, &priv->status))
-+	if (test_bit(STATUS_EXIT_PENDING, &priv->status) || priv->txq == NULL)
- 		goto out;
- 
- 	iwl3945_alive_start(priv);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0009-powerpc-pmac-Fix-SMP-kernels-on-pre-core99-UP-machin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0009-powerpc-pmac-Fix-SMP-kernels-on-pre-core99-UP-machin.patch
deleted file mode 100644
index 98111cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0009-powerpc-pmac-Fix-SMP-kernels-on-pre-core99-UP-machin.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 93bbacdcea5490053dc692cad003f74eb116fd4a Mon Sep 17 00:00:00 2001
-From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Date: Fri, 9 Dec 2011 15:06:18 +1100
-Subject: [PATCH 09/10] powerpc/pmac: Fix SMP kernels on pre-core99 UP
- machines
-
-commit 78c5c68a4cf4329d17abfa469345ddf323d4fd62 upstream.
-
-The code for "powersurge" SMP would kick in and cause a crash
-at boot due to the lack of a NULL test.
-
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Jeremy Kerr <jeremy.kerr at canonical.com>
-Reported-by: Adam Conrad <adconrad at ubuntu.com>
-Tested-by: Adam Conrad <adconrad at ubuntu.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/powerpc/platforms/powermac/smp.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/platforms/powermac/smp.c b/arch/powerpc/platforms/powermac/smp.c
-index 9b6a820..3394254 100644
---- a/arch/powerpc/platforms/powermac/smp.c
-+++ b/arch/powerpc/platforms/powermac/smp.c
-@@ -414,7 +414,7 @@ static struct irqaction psurge_irqaction = {
- 
- static void __init smp_psurge_setup_cpu(int cpu_nr)
- {
--	if (cpu_nr != 0)
-+	if (cpu_nr != 0 || !psurge_start)
- 		return;
- 
- 	/* reset the entry point so if we get another intr we won't
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0010-Linux-3.2.13.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0010-Linux-3.2.13.patch
deleted file mode 100644
index 08a5856..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.13/0010-Linux-3.2.13.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From add3df1bc247cc4056661dd9ea3b445c1aea3e0d Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 23 Mar 2012 13:54:45 -0700
-Subject: [PATCH 10/10] Linux 3.2.13
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 15e80f1..172e041 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 12
-+SUBLEVEL = 13
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0001-USB-option-Add-MediaTek-MT6276M-modem-app-interfaces.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0001-USB-option-Add-MediaTek-MT6276M-modem-app-interfaces.patch
deleted file mode 100644
index f523a33..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0001-USB-option-Add-MediaTek-MT6276M-modem-app-interfaces.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From cc33a57bd7f9104a9c2f77f11dc3e7f9c22b9340 Mon Sep 17 00:00:00 2001
-From: Meng Zhang <meng.zhang at mediatek.com>
-Date: Mon, 27 Feb 2012 08:24:19 +0100
-Subject: [PATCH 001/147] USB: option: Add MediaTek MT6276M modem&app
- interfaces
-
-commit 0d8520a1d7f43328bc7085d4244d93c595064157 upstream.
-
-Add MEDIATEK products to Option driver
-
-Signed-off-by: Meng Zhang <meng.zhang at mediatek.com>
-Signed-off-by: Matthias Urlichs <matthias at urlichs.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 68fa8c7..547c9b9 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -484,6 +484,9 @@ static void option_instat_callback(struct urb *urb);
- #define LG_VENDOR_ID				0x1004
- #define LG_PRODUCT_L02C				0x618f
- 
-+/* MediaTek products */
-+#define MEDIATEK_VENDOR_ID			0x0e8d
-+
- /* some devices interfaces need special handling due to a number of reasons */
- enum option_blacklist_reason {
- 		OPTION_BLACKLIST_NONE = 0,
-@@ -1198,6 +1201,10 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) },        /* MediaTek MT6276M modem & app port */
- 	{ } /* Terminating entry */
- };
- MODULE_DEVICE_TABLE(usb, option_ids);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0002-USB-option-driver-adding-support-for-Telit-CC864-SIN.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0002-USB-option-driver-adding-support-for-Telit-CC864-SIN.patch
deleted file mode 100644
index 2ee506a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0002-USB-option-driver-adding-support-for-Telit-CC864-SIN.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 17ad305add28a63e155a74678178a6ce6a6a5998 Mon Sep 17 00:00:00 2001
-From: Daniele Palmas <dnlplm at gmail.com>
-Date: Wed, 29 Feb 2012 15:32:05 +0100
-Subject: [PATCH 002/147] USB: option driver: adding support for Telit
- CC864-SINGLE, CC864-DUAL and DE910-DUAL modems
-
-commit 7204cf584836c24b4b06e4ad4a8e6bb8ea84908e upstream.
-
-Adding PID for Telit CC864-SINGLE, CC864-DUAL and DE910-DUAL
-modems
-
-Signed-off-by: Daniele Palmas <dnlplm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 547c9b9..3c4b7df 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -307,6 +307,9 @@ static void option_instat_callback(struct urb *urb);
- #define TELIT_VENDOR_ID				0x1bc7
- #define TELIT_PRODUCT_UC864E			0x1003
- #define TELIT_PRODUCT_UC864G			0x1004
-+#define TELIT_PRODUCT_CC864_DUAL		0x1005
-+#define TELIT_PRODUCT_CC864_SINGLE		0x1006
-+#define TELIT_PRODUCT_DE910_DUAL		0x1010
- 
- /* ZTE PRODUCTS */
- #define ZTE_VENDOR_ID				0x19d2
-@@ -771,6 +774,9 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(CMOTECH_VENDOR_ID, CMOTECH_PRODUCT_6008) },
- 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864E) },
- 	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_UC864G) },
-+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_DUAL) },
-+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_CC864_SINGLE) },
-+	{ USB_DEVICE(TELIT_VENDOR_ID, TELIT_PRODUCT_DE910_DUAL) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF622, 0xff, 0xff, 0xff) }, /* ZTE WCDMA products */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0002, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf1_blacklist },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0003-USB-option-make-interface-blacklist-work-again.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0003-USB-option-make-interface-blacklist-work-again.patch
deleted file mode 100644
index 944ea0a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0003-USB-option-make-interface-blacklist-work-again.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ebdc22267ac3cd3aef9e300a553c0f32ac5da6f2 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Fri, 16 Mar 2012 12:56:44 +0100
-Subject: [PATCH 003/147] USB: option: make interface blacklist work again
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 963940cf472d76eca2d36296e461202cc6997352 upstream.
-
-commit 0d905fd "USB: option: convert Huawei K3765, K4505, K4605
-reservered interface to blacklist" accidentally ANDed two
-blacklist tests by leaving out a return.  This was not noticed
-because the two consecutive bracketless if statements made it
-syntactically correct.
-
-Signed-off-by: Bj??rn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 3c4b7df..6410935 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -1373,6 +1373,7 @@ static int option_probe(struct usb_serial *serial,
- 		serial->interface->cur_altsetting->desc.bInterfaceNumber,
- 		OPTION_BLACKLIST_RESERVED_IF,
- 		(const struct option_blacklist_info *) id->driver_info))
-+		return -ENODEV;
- 
- 	/* Don't bind network interface on Samsung GT-B3730, it is handled by a separate module */
- 	if (serial->dev->descriptor.idVendor == SAMSUNG_VENDOR_ID &&
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0004-USB-option-add-ZTE-MF820D.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0004-USB-option-add-ZTE-MF820D.patch
deleted file mode 100644
index ae0d873..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0004-USB-option-add-ZTE-MF820D.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0b49c52b5b44e5db6fe288173faec7136ea18c68 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Fri, 16 Mar 2012 15:41:26 +0100
-Subject: [PATCH 004/147] USB: option: add ZTE MF820D
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 5889d3d4209c1050b4a3c96c41faf6c0976a4acf upstream.
-
-This device presents a total of 5 interfaces with ff/ff/ff
-class/subclass/protocol. The last one of these is verified
-to be a QMI/wwan combined interface which should be handled
-by the qmi_wwan driver, so we blacklist it here.
-
-Signed-off-by: Bj??rn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 6410935..54898c9 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -901,6 +901,8 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff),
-+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff) },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0005-staging-zcache-avoid-AB-BA-deadlock-condition.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0005-staging-zcache-avoid-AB-BA-deadlock-condition.patch
deleted file mode 100644
index fb8bfe2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0005-staging-zcache-avoid-AB-BA-deadlock-condition.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 24c8eaa136cf3193f2719e9d04cc4efea3b2b732 Mon Sep 17 00:00:00 2001
-From: Andrea Righi <andrea at betterlinux.com>
-Date: Mon, 20 Feb 2012 13:11:49 +0100
-Subject: [PATCH 005/147] staging: zcache: avoid AB-BA deadlock condition
-
-commit cfbc6a92212e74b07aa76c9e2f20c542e36077fb upstream.
-
-Commit 9256a47 fixed a deadlock condition, being sure that the buddy
-list spinlock is always taken before the page spinlock.
-
-However in zbud_free_and_delist() locking order is the opposite
-(page lock -> list lock).
-
-Possible unsafe locking scenario (reported by lockdep):
-
-        CPU0                    CPU1
-        ----                    ----
-   lock(&(&zbpg->lock)->rlock);
-                                lock(zbud_budlists_spinlock);
-                                lock(&(&zbpg->lock)->rlock);
-   lock(zbud_budlists_spinlock);
-
-Fix by grabbing the locks in opposite order in zbud_free_and_delist().
-
-Signed-off-by: Andrea Righi <andrea at betterlinux.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/zcache/zcache-main.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
-index f5e469d..16ad9fe 100644
---- a/drivers/staging/zcache/zcache-main.c
-+++ b/drivers/staging/zcache/zcache-main.c
-@@ -299,10 +299,12 @@ static void zbud_free_and_delist(struct zbud_hdr *zh)
- 	struct zbud_page *zbpg =
- 		container_of(zh, struct zbud_page, buddy[budnum]);
- 
-+	spin_lock(&zbud_budlists_spinlock);
- 	spin_lock(&zbpg->lock);
- 	if (list_empty(&zbpg->bud_list)) {
- 		/* ignore zombie page... see zbud_evict_pages() */
- 		spin_unlock(&zbpg->lock);
-+		spin_unlock(&zbud_budlists_spinlock);
- 		return;
- 	}
- 	size = zbud_free(zh);
-@@ -310,7 +312,6 @@ static void zbud_free_and_delist(struct zbud_hdr *zh)
- 	zh_other = &zbpg->buddy[(budnum == 0) ? 1 : 0];
- 	if (zh_other->size == 0) { /* was unbuddied: unlist and free */
- 		chunks = zbud_size_to_chunks(size) ;
--		spin_lock(&zbud_budlists_spinlock);
- 		BUG_ON(list_empty(&zbud_unbuddied[chunks].list));
- 		list_del_init(&zbpg->bud_list);
- 		zbud_unbuddied[chunks].count--;
-@@ -318,7 +319,6 @@ static void zbud_free_and_delist(struct zbud_hdr *zh)
- 		zbud_free_raw_page(zbpg);
- 	} else { /* was buddied: move remaining buddy to unbuddied list */
- 		chunks = zbud_size_to_chunks(zh_other->size) ;
--		spin_lock(&zbud_budlists_spinlock);
- 		list_del_init(&zbpg->bud_list);
- 		zcache_zbud_buddied_count--;
- 		list_add_tail(&zbpg->bud_list, &zbud_unbuddied[chunks].list);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0006-USB-ftdi_sio-fix-problem-when-the-manufacture-is-a-N.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0006-USB-ftdi_sio-fix-problem-when-the-manufacture-is-a-N.patch
deleted file mode 100644
index b22cdfb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0006-USB-ftdi_sio-fix-problem-when-the-manufacture-is-a-N.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 662c920fb175331db0c7813edd168390b51d3e31 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Tue, 28 Feb 2012 09:20:09 -0800
-Subject: [PATCH 006/147] USB: ftdi_sio: fix problem when the manufacture is a
- NULL string
-
-commit 656d2b3964a9d0f9864d472f8dfa2dd7dd42e6c0 upstream.
-
-On some misconfigured ftdi_sio devices, if the manufacturer string is
-NULL, the kernel will oops when the device is plugged in.  This patch
-fixes the problem.
-
-Reported-by: Wojciech M Zabolotny <W.Zabolotny at elka.pw.edu.pl>
-Tested-by: Wojciech M Zabolotny <W.Zabolotny at elka.pw.edu.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index f030471..d170b2a 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -1763,7 +1763,8 @@ static int ftdi_8u2232c_probe(struct usb_serial *serial)
- 
- 	dbg("%s", __func__);
- 
--	if (strcmp(udev->manufacturer, "CALAO Systems") == 0)
-+	if ((udev->manufacturer) &&
-+	    (strcmp(udev->manufacturer, "CALAO Systems") == 0))
- 		return ftdi_jtag_probe(serial);
- 
- 	return 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0007-USB-ftdi_sio-add-support-for-BeagleBone-rev-A5.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0007-USB-ftdi_sio-add-support-for-BeagleBone-rev-A5.patch
deleted file mode 100644
index f87f426..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0007-USB-ftdi_sio-add-support-for-BeagleBone-rev-A5.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 5cabeb029a6230a2ade6a4e6821f444cc40816dd Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet at sunsite.dk>
-Date: Wed, 29 Feb 2012 10:05:37 +0100
-Subject: [PATCH 007/147] USB: ftdi_sio: add support for BeagleBone rev A5+
-
-commit 444aa7fa9bd752d19ce472d3e02558b987c3cc67 upstream.
-
-BeagleBone changed to the default FTDI 0403:6010 id in rev A5 to make life
-easier for Windows users, so we need a similar workaround as the Calao
-board to support it.
-
-Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index d170b2a..30839d4 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -1763,8 +1763,8 @@ static int ftdi_8u2232c_probe(struct usb_serial *serial)
- 
- 	dbg("%s", __func__);
- 
--	if ((udev->manufacturer) &&
--	    (strcmp(udev->manufacturer, "CALAO Systems") == 0))
-+	if ((udev->manufacturer && !strcmp(udev->manufacturer, "CALAO Systems")) ||
-+	    (udev->product && !strcmp(udev->product, "BeagleBone/XDS100")))
- 		return ftdi_jtag_probe(serial);
- 
- 	return 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0008-USB-Microchip-VID-mislabeled-as-Hornby-VID-in-ftdi_s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0008-USB-Microchip-VID-mislabeled-as-Hornby-VID-in-ftdi_s.patch
deleted file mode 100644
index 7278bdd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0008-USB-Microchip-VID-mislabeled-as-Hornby-VID-in-ftdi_s.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f2f8f7f7d9dfc406b8e5a9a1b89e904318c8ac0f Mon Sep 17 00:00:00 2001
-From: Bruno Thomsen <bruno.thomsen at gmail.com>
-Date: Sun, 4 Mar 2012 15:19:14 +0100
-Subject: [PATCH 008/147] USB: Microchip VID mislabeled as Hornby VID in
- ftdi_sio.
-
-commit c1cee1d84001815a1b4321c49b995254c0df3100 upstream.
-
-Microchip VID (0x04d8) was mislabeled as Hornby VID according to USB-IDs.
-
-A Full Speed USB Demo Board PID (0x000a) was mislabeled as
-Hornby Elite (an Digital Command Controller Console for model railways).
-
-Most likely the Hornby based their design on
-PIC18F87J50 Full Speed USB Demo Board.
-
-Signed-off-by: Bruno Thomsen <bruno.thomsen at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    2 +-
- drivers/usb/serial/ftdi_sio_ids.h |   10 +++++++---
- 2 files changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 30839d4..363e995 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -797,7 +797,7 @@ static struct usb_device_id id_table_combined [] = {
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
- 	{ USB_DEVICE(ADI_VID, ADI_GNICEPLUS_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
--	{ USB_DEVICE(HORNBY_VID, HORNBY_ELITE_PID) },
-+	{ USB_DEVICE(MICROCHIP_VID, MICROCHIP_USB_BOARD_PID) },
- 	{ USB_DEVICE(JETI_VID, JETI_SPC1201_PID) },
- 	{ USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index 4eb7715..df87939 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -532,10 +532,14 @@
- #define ADI_GNICEPLUS_PID	0xF001
- 
- /*
-- * Hornby Elite
-+ * Microchip Technology, Inc.
-+ *
-+ * MICROCHIP_VID (0x04D8) and MICROCHIP_USB_BOARD_PID (0x000A) are also used by:
-+ * Hornby Elite - Digital Command Control Console
-+ * http://www.hornby.com/hornby-dcc/controllers/
-  */
--#define HORNBY_VID		0x04D8
--#define HORNBY_ELITE_PID	0x000A
-+#define MICROCHIP_VID		0x04D8
-+#define MICROCHIP_USB_BOARD_PID	0x000A /* CDC RS-232 Emulation Demo */
- 
- /*
-  * RATOC REX-USB60F
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0009-USB-ftdi_sio-new-PID-Distortec-JTAG-lock-pick.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0009-USB-ftdi_sio-new-PID-Distortec-JTAG-lock-pick.patch
deleted file mode 100644
index 08fa95c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0009-USB-ftdi_sio-new-PID-Distortec-JTAG-lock-pick.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 42eb98a4b9dc721f8565ce0d3063db8d141f516b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20Wr=C3=B3bel?= <michal.wrobel at flytronic.pl>
-Date: Fri, 9 Mar 2012 14:40:18 +0100
-Subject: [PATCH 009/147] USB: ftdi_sio: new PID: Distortec JTAG-lock-pick
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 47594d5528f28a4c025c2955c68104c75815637c upstream.
-
-Signed-off-by: Micha?? Wr??bel <michal.wrobel at flytronic.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    2 ++
- drivers/usb/serial/ftdi_sio_ids.h |    2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 363e995..a319eaa 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -846,6 +846,8 @@ static struct usb_device_id id_table_combined [] = {
- 	{ USB_DEVICE(ST_VID, ST_STMCLT1030_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_stmclite_quirk },
- 	{ USB_DEVICE(FTDI_VID, FTDI_RF_R106) },
-+	{ USB_DEVICE(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID),
-+		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
- 	{ },					/* Optional parameter entry */
- 	{ }					/* Terminating entry */
- };
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index df87939..bed1b1f 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -97,6 +97,8 @@
- #define FTDI_TACTRIX_OPENPORT_13S_PID	0xCC49	/* OpenPort 1.3 Subaru */
- #define FTDI_TACTRIX_OPENPORT_13U_PID	0xCC4A	/* OpenPort 1.3 Universal */
- 
-+#define FTDI_DISTORTEC_JTAG_LOCK_PICK_PID	0xCFF8
-+
- /* SCS HF Radio Modems PID's (http://www.scs-ptc.com) */
- /* the VID is the standard ftdi vid (FTDI_VID) */
- #define FTDI_SCS_DEVICE_0_PID 0xD010    /* SCS PTC-IIusb */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0010-USB-ftdi_sio-add-support-for-FT-X-series-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0010-USB-ftdi_sio-add-support-for-FT-X-series-devices.patch
deleted file mode 100644
index 37f665b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0010-USB-ftdi_sio-add-support-for-FT-X-series-devices.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From a1460f8a00ab8864ee14c39d4dfaa0dea4cff95e Mon Sep 17 00:00:00 2001
-From: Jim Paris <jim at jtan.com>
-Date: Wed, 14 Mar 2012 17:54:25 -0400
-Subject: [PATCH 010/147] USB: ftdi_sio: add support for FT-X series devices
-
-commit dc0827c128c0ee5a58b822b99d662b59f4b8e970 upstream.
-
-Add PID 0x6015, corresponding to the new series of FT-X chips
-(FT220XD, FT201X, FT220X, FT221X, FT230X, FT231X, FT240X).  They all
-appear as serial devices, and seem indistinguishable except for the
-default product string stored in their EEPROM.  The baudrate
-generation matches FT232RL devices.
-
-Tested with a FT201X and FT230X at various baudrates (100 - 3000000).
-
-Sample dmesg:
-    ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
-    usb 2-1: new full-speed USB device number 6 using ohci_hcd
-    usb 2-1: New USB device found, idVendor=0403, idProduct=6015
-    usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
-    usb 2-1: Product: FT230X USB Half UART
-    usb 2-1: Manufacturer: FTDI
-    usb 2-1: SerialNumber: DC001WI6
-    ftdi_sio 2-1:1.0: FTDI USB Serial Device converter detected
-    drivers/usb/serial/ftdi_sio.c: ftdi_sio_port_probe
-    drivers/usb/serial/ftdi_sio.c: ftdi_determine_type: bcdDevice = 0x1000, bNumInterfaces = 1
-    usb 2-1: Detected FT-X
-    usb 2-1: Number of endpoints 2
-    usb 2-1: Endpoint 1 MaxPacketSize 64
-    usb 2-1: Endpoint 2 MaxPacketSize 64
-    usb 2-1: Setting MaxPacketSize 64
-    drivers/usb/serial/ftdi_sio.c: read_latency_timer
-    drivers/usb/serial/ftdi_sio.c: write_latency_timer: setting latency timer = 1
-    drivers/usb/serial/ftdi_sio.c: create_sysfs_attrs
-    drivers/usb/serial/ftdi_sio.c: sysfs attributes for FT-X
-    usb 2-1: FTDI USB Serial Device converter now attached to ttyUSB0
-
-Signed-off-by: Jim Paris <jim at jtan.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |   20 +++++++++++++++-----
- drivers/usb/serial/ftdi_sio.h     |    3 ++-
- drivers/usb/serial/ftdi_sio_ids.h |    1 +
- 3 files changed, 18 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index a319eaa..b64fddc 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -188,6 +188,7 @@ static struct usb_device_id id_table_combined [] = {
- 		.driver_info = (kernel_ulong_t)&ftdi_8u2232c_quirk },
- 	{ USB_DEVICE(FTDI_VID, FTDI_4232H_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_232H_PID) },
-+	{ USB_DEVICE(FTDI_VID, FTDI_FTX_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_MICRO_CHAMELEON_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_RELAIS_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_OPENDCC_PID) },
-@@ -870,7 +871,8 @@ static const char *ftdi_chip_name[] = {
- 	[FT232RL] = "FT232RL",
- 	[FT2232H] = "FT2232H",
- 	[FT4232H] = "FT4232H",
--	[FT232H]  = "FT232H"
-+	[FT232H]  = "FT232H",
-+	[FTX]     = "FT-X"
- };
- 
- 
-@@ -1171,7 +1173,8 @@ static __u32 get_ftdi_divisor(struct tty_struct *tty,
- 		break;
- 	case FT232BM: /* FT232BM chip */
- 	case FT2232C: /* FT2232C chip */
--	case FT232RL:
-+	case FT232RL: /* FT232RL chip */
-+	case FTX:     /* FT-X series */
- 		if (baud <= 3000000) {
- 			__u16 product_id = le16_to_cpu(
- 				port->serial->dev->descriptor.idProduct);
-@@ -1460,10 +1463,14 @@ static void ftdi_determine_type(struct usb_serial_port *port)
- 	} else if (version < 0x900) {
- 		/* Assume it's an FT232RL */
- 		priv->chip_type = FT232RL;
--	} else {
-+	} else if (version < 0x1000) {
- 		/* Assume it's an FT232H */
- 		priv->chip_type = FT232H;
-+	} else {
-+		/* Assume it's an FT-X series device */
-+		priv->chip_type = FTX;
- 	}
-+
- 	dev_info(&udev->dev, "Detected %s\n", ftdi_chip_name[priv->chip_type]);
- }
- 
-@@ -1591,7 +1598,8 @@ static int create_sysfs_attrs(struct usb_serial_port *port)
- 		     priv->chip_type == FT232RL ||
- 		     priv->chip_type == FT2232H ||
- 		     priv->chip_type == FT4232H ||
--		     priv->chip_type == FT232H)) {
-+		     priv->chip_type == FT232H ||
-+		     priv->chip_type == FTX)) {
- 			retval = device_create_file(&port->dev,
- 						    &dev_attr_latency_timer);
- 		}
-@@ -1613,7 +1621,8 @@ static void remove_sysfs_attrs(struct usb_serial_port *port)
- 		    priv->chip_type == FT232RL ||
- 		    priv->chip_type == FT2232H ||
- 		    priv->chip_type == FT4232H ||
--                    priv->chip_type == FT232H) {
-+		    priv->chip_type == FT232H ||
-+		    priv->chip_type == FTX) {
- 			device_remove_file(&port->dev, &dev_attr_latency_timer);
- 		}
- 	}
-@@ -2287,6 +2296,7 @@ static int ftdi_tiocmget(struct tty_struct *tty)
- 	case FT2232H:
- 	case FT4232H:
- 	case FT232H:
-+	case FTX:
- 		len = 2;
- 		break;
- 	default:
-diff --git a/drivers/usb/serial/ftdi_sio.h b/drivers/usb/serial/ftdi_sio.h
-index 19584fa..ed58c6f 100644
---- a/drivers/usb/serial/ftdi_sio.h
-+++ b/drivers/usb/serial/ftdi_sio.h
-@@ -157,7 +157,8 @@ enum ftdi_chip_type {
- 	FT232RL = 5,
- 	FT2232H = 6,
- 	FT4232H = 7,
--	FT232H  = 8
-+	FT232H  = 8,
-+	FTX     = 9,
- };
- 
- enum ftdi_sio_baudrate {
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index bed1b1f..ac1c42e 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -23,6 +23,7 @@
- #define FTDI_8U2232C_PID 0x6010 /* Dual channel device */
- #define FTDI_4232H_PID 0x6011 /* Quad channel hi-speed device */
- #define FTDI_232H_PID  0x6014 /* Single channel hi-speed device */
-+#define FTDI_FTX_PID   0x6015 /* FT-X series (FT201X, FT230X, FT231X, etc) */
- #define FTDI_SIO_PID	0x8372	/* Product Id SIO application of 8U100AX */
- #define FTDI_232RL_PID  0xFBFA  /* Product ID for FT232RL */
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0011-USB-ftdi_sio-new-PID-LUMEL-PD12.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0011-USB-ftdi_sio-new-PID-LUMEL-PD12.patch
deleted file mode 100644
index 4af208d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0011-USB-ftdi_sio-new-PID-LUMEL-PD12.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From f1a77f929e5e9c5399bf0e0a589280719f96654c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20Wr=C3=B3bel?= <michal.wrobel at flytronic.pl>
-Date: Thu, 15 Mar 2012 17:24:04 +0100
-Subject: [PATCH 011/147] USB: ftdi_sio: new PID: LUMEL PD12
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 57e596f3af88ef52dea9640ed5e34ecd38893a02 upstream.
-
-Signed-off-by: Micha?? Wr??bel <michal.wrobel at flytronic.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    1 +
- drivers/usb/serial/ftdi_sio_ids.h |    2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index b64fddc..3f3ccf6 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -849,6 +849,7 @@ static struct usb_device_id id_table_combined [] = {
- 	{ USB_DEVICE(FTDI_VID, FTDI_RF_R106) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_DISTORTEC_JTAG_LOCK_PICK_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-+	{ USB_DEVICE(FTDI_VID, FTDI_LUMEL_PD12_PID) },
- 	{ },					/* Optional parameter entry */
- 	{ }					/* Terminating entry */
- };
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index ac1c42e..abf6bbc 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -30,6 +30,8 @@
- 
- /*** third-party PIDs (using FTDI_VID) ***/
- 
-+#define FTDI_LUMEL_PD12_PID	0x6002
-+
- /*
-  * Marvell OpenRD Base, Client
-  * http://www.open-rd.org
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0012-powerpc-usb-fix-bug-of-kernel-hang-when-initializing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0012-powerpc-usb-fix-bug-of-kernel-hang-when-initializing.patch
deleted file mode 100644
index f40aa0f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0012-powerpc-usb-fix-bug-of-kernel-hang-when-initializing.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 9091aa838fdba8fef22a629f43cd039daa714da6 Mon Sep 17 00:00:00 2001
-From: Shengzhou Liu <Shengzhou.Liu at freescale.com>
-Date: Thu, 16 Feb 2012 18:02:20 +0800
-Subject: [PATCH 012/147] powerpc/usb: fix bug of kernel hang when
- initializing usb
-
-commit 28c56ea1431421dec51b7b229369e991481453df upstream.
-
-If USB UTMI PHY is not enable, writing to portsc register will lead to
-kernel hang during boot up.
-
-Signed-off-by: Shengzhou Liu <Shengzhou.Liu at freescale.com>
-Reported-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/ehci-fsl.c |    4 ++++
- drivers/usb/host/ehci-fsl.h |    1 +
- 2 files changed, 5 insertions(+)
-
-diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
-index b556a72..da487fd 100644
---- a/drivers/usb/host/ehci-fsl.c
-+++ b/drivers/usb/host/ehci-fsl.c
-@@ -216,6 +216,8 @@ static void ehci_fsl_setup_phy(struct ehci_hcd *ehci,
- 			       unsigned int port_offset)
- {
- 	u32 portsc;
-+	struct usb_hcd *hcd = ehci_to_hcd(ehci);
-+	void __iomem *non_ehci = hcd->regs;
- 
- 	portsc = ehci_readl(ehci, &ehci->regs->port_status[port_offset]);
- 	portsc &= ~(PORT_PTS_MSK | PORT_PTS_PTW);
-@@ -231,6 +233,8 @@ static void ehci_fsl_setup_phy(struct ehci_hcd *ehci,
- 		portsc |= PORT_PTS_PTW;
- 		/* fall through */
- 	case FSL_USB2_PHY_UTMI:
-+		/* enable UTMI PHY */
-+		setbits32(non_ehci + FSL_SOC_USB_CTRL, CTRL_UTMI_PHY_EN);
- 		portsc |= PORT_PTS_UTMI;
- 		break;
- 	case FSL_USB2_PHY_NONE:
-diff --git a/drivers/usb/host/ehci-fsl.h b/drivers/usb/host/ehci-fsl.h
-index 4918062..bea5013 100644
---- a/drivers/usb/host/ehci-fsl.h
-+++ b/drivers/usb/host/ehci-fsl.h
-@@ -45,5 +45,6 @@
- #define FSL_SOC_USB_PRICTRL	0x40c	/* NOTE: big-endian */
- #define FSL_SOC_USB_SICTRL	0x410	/* NOTE: big-endian */
- #define FSL_SOC_USB_CTRL	0x500	/* NOTE: big-endian */
-+#define CTRL_UTMI_PHY_EN	(1<<9)
- #define SNOOP_SIZE_2GB		0x1e
- #endif				/* _EHCI_FSL_H */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0013-staging-r8712u-Add-missing-initialization-and-remove.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0013-staging-r8712u-Add-missing-initialization-and-remove.patch
deleted file mode 100644
index a659fd5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0013-staging-r8712u-Add-missing-initialization-and-remove.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 737186258370f25f44b7aa152ae1bef1e308a929 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Thu, 9 Feb 2012 16:37:17 -0600
-Subject: [PATCH 013/147] staging: r8712u: Add missing initialization and
- remove configuration parameter CONFIG_R8712_AP
-
-commit 073863432f7eaa23c7c09733414d4be2eabf5eef upstream.
-
-When this driver was upgraded to the vendor 20100831 version in
-commit 93c55dda092c7 et al,, one listhead initialization was missed.
-This broke complete operation of the driver whenever AP mode was
-enabled. This fixes https://bugs.archlinux.org/task/27996.
-
-The configuration parameter R8712_AP is misleading as the driver cannot
-function as an AP without a heavily hacked version of hostapd. Thus, it
-makes sense to remove the parameter; however the code and data configured
-for the option is left in.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/rtl8712/Kconfig           |    7 -------
- drivers/staging/rtl8712/rtl871x_sta_mgt.c |    5 +----
- drivers/staging/rtl8712/sta_info.h        |    4 ----
- 3 files changed, 1 insertion(+), 15 deletions(-)
-
-diff --git a/drivers/staging/rtl8712/Kconfig b/drivers/staging/rtl8712/Kconfig
-index ea37473..6a43312 100644
---- a/drivers/staging/rtl8712/Kconfig
-+++ b/drivers/staging/rtl8712/Kconfig
-@@ -9,13 +9,6 @@ config R8712U
- 	This option adds the Realtek RTL8712 USB device such as the D-Link DWA-130.
- 	If built as a module, it will be called r8712u.
- 
--config R8712_AP
--	bool "Realtek RTL8712U AP code"
--	depends on R8712U
--	default N
--	---help---
--	This option allows the Realtek RTL8712 USB device to be an Access Point.
--
- config R8712_TX_AGGR
- 	bool "Realtek RTL8712U Transmit Aggregation code"
- 	depends on R8712U && BROKEN
-diff --git a/drivers/staging/rtl8712/rtl871x_sta_mgt.c b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
-index 64f5696..1247b3d 100644
---- a/drivers/staging/rtl8712/rtl871x_sta_mgt.c
-+++ b/drivers/staging/rtl8712/rtl871x_sta_mgt.c
-@@ -42,9 +42,8 @@ static void _init_stainfo(struct sta_info *psta)
- 	_init_listhead(&psta->hash_list);
- 	_r8712_init_sta_xmit_priv(&psta->sta_xmitpriv);
- 	_r8712_init_sta_recv_priv(&psta->sta_recvpriv);
--#ifdef CONFIG_R8712_AP
-+	_init_listhead(&psta->asoc_list);
- 	_init_listhead(&psta->auth_list);
--#endif
- }
- 
- u32 _r8712_init_sta_priv(struct	sta_priv *pstapriv)
-@@ -71,10 +70,8 @@ u32 _r8712_init_sta_priv(struct	sta_priv *pstapriv)
- 				 get_list_head(&pstapriv->free_sta_queue));
- 		psta++;
- 	}
--#ifdef CONFIG_R8712_AP
- 	_init_listhead(&pstapriv->asoc_list);
- 	_init_listhead(&pstapriv->auth_list);
--#endif
- 	return _SUCCESS;
- }
- 
-diff --git a/drivers/staging/rtl8712/sta_info.h b/drivers/staging/rtl8712/sta_info.h
-index 48d6a14..f8016e9 100644
---- a/drivers/staging/rtl8712/sta_info.h
-+++ b/drivers/staging/rtl8712/sta_info.h
-@@ -90,7 +90,6 @@ struct sta_info {
- 	 * curr_network(mlme_priv/security_priv/qos/ht) : AP CAP/INFO
- 	 * sta_info: (AP & STA) CAP/INFO
- 	 */
--#ifdef CONFIG_R8712_AP
- 	struct list_head asoc_list;
- 	struct list_head auth_list;
- 	unsigned int expire_to;
-@@ -98,7 +97,6 @@ struct sta_info {
- 	unsigned int authalg;
- 	unsigned char chg_txt[128];
- 	unsigned int tx_ra_bitmap;
--#endif
- };
- 
- struct	sta_priv {
-@@ -111,13 +109,11 @@ struct	sta_priv {
- 	struct  __queue sleep_q;
- 	struct  __queue wakeup_q;
- 	struct _adapter *padapter;
--#ifdef CONFIG_R8712_AP
- 	struct list_head asoc_list;
- 	struct list_head auth_list;
- 	unsigned int auth_to;  /* sec, time to expire in authenticating. */
- 	unsigned int assoc_to; /* sec, time to expire before associating. */
- 	unsigned int expire_to; /* sec , time to expire after associated. */
--#endif
- };
- 
- static inline u32 wifi_mac_hash(u8 *mac)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0014-staging-r8712u-Fix-regression-introduced-by-commit-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0014-staging-r8712u-Fix-regression-introduced-by-commit-a.patch
deleted file mode 100644
index 8a983e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0014-staging-r8712u-Fix-regression-introduced-by-commit-a.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 10fcebe06f12c7f87ad05084848c51d69f118505 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sat, 25 Feb 2012 18:10:20 -0600
-Subject: [PATCH 014/147] staging: r8712u: Fix regression introduced by commit
- a5ee652
-
-commit 9f4bc8cf3fe750ed093856a5f5d41c11cc12ad22 upstream.
-
-In commit a5ee652 "staging: r8712u: Interface-state not fully tracked",
-the private boolean "bup" was set false when the interface was brought down,
-as that seemed appropriate. This change has not caused any problems when
-using NetworkManager or manual control of the device; however, when wicd
-control is used, there is a locking problem in wpa_supplicant, as shown in
-https://bugzilla.kernel.org/show_bug.cgi?id=42818.
-
-This fix reverts the only code change in commit a5ee652. My
-analysis is that "bup" is badly named. In its present form, it
-seems to indicate the up/down state of the device, but its usage
-is more consistent with an initialized/uninitialized state. That
-problem will be addressed in a later patch.
-
-Note: Commit 8c213fa, which introdued asynchronous firmware loading
-for this driver, exposed this bug to a greater extent. That bug
-is addressed in the next patch in this series.
-
-This bug is also responsible for the bug in
-https://bugzilla.kernel.org/show_bug.cgi?id=42815. and this bug is
-also part of the problems discussed at https://bugs.archlinux.org/task/27996#comment89950.
-
-Tested-by: Alberto Lago Ballesteros <saniukeokusainaya at gmail.com>
-Tested-by: Adrian <agib at gmx.de>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/rtl8712/os_intfs.c |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
-index 98a3d68..fb11743 100644
---- a/drivers/staging/rtl8712/os_intfs.c
-+++ b/drivers/staging/rtl8712/os_intfs.c
-@@ -476,8 +476,6 @@ static int netdev_close(struct net_device *pnetdev)
- 	r8712_free_assoc_resources(padapter);
- 	/*s2-4.*/
- 	r8712_free_network_queue(padapter);
--	/* The interface is no longer Up: */
--	padapter->bup = false;
- 	release_firmware(padapter->fw);
- 	/* never exit with a firmware callback pending */
- 	wait_for_completion(&padapter->rtl8712_fw_ready);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0015-staging-r8712u-Fix-regression-in-signal-level-after-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0015-staging-r8712u-Fix-regression-in-signal-level-after-.patch
deleted file mode 100644
index 9cf3b16..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0015-staging-r8712u-Fix-regression-in-signal-level-after-.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From a8385f8f3089aba9d0d9b0faf580e89510648367 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sun, 26 Feb 2012 22:08:36 -0600
-Subject: [PATCH 015/147] staging: r8712u: Fix regression in signal level
- after commit c6dc001
-
-commit da3e6ec2f443ac00aa623c5921e3521f5f38efe4 upstream.
-
-In commit c6dc001 "staging: r8712u: Merging Realtek's latest (v2.6.6).
-Various fixes", the returned qual.qual member of the iw_statistics
-struct was changed. For strong signals, this change made no difference;
-however for medium and weak signals it results in a low signal that
-shows considerable fluctuation, When using wicd for a medium-strength
-AP, the value reported in the status line is reduced from 100% to 60% by
-this bug.
-
-This problem is reported in https://bugzilla.kernel.org/show_bug.cgi?id=42826.
-
-Reported-and-tested-by: Robert Crawford <wrc1944 at gmail.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/rtl8712/rtl871x_ioctl_linux.c |    8 +-------
- 1 file changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
-index 507584b8..ef35bc2 100644
---- a/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
-+++ b/drivers/staging/rtl8712/rtl871x_ioctl_linux.c
-@@ -2380,13 +2380,7 @@ static struct iw_statistics *r871x_get_wireless_stats(struct net_device *dev)
- 		tmp_qual = padapter->recvpriv.signal;
- 		tmp_noise = padapter->recvpriv.noise;
- 		piwstats->qual.level = tmp_level;
--		/*piwstats->qual.qual = tmp_qual;
--		 * The NetworkManager of Fedora 10, 13 will use the link
--		 * quality for its display.
--		 * So, use the fw_rssi on link quality variable because
--		 * fw_rssi will be updated per 2 seconds.
--		 */
--		piwstats->qual.qual = tmp_level;
-+		piwstats->qual.qual = tmp_qual;
- 		piwstats->qual.noise = tmp_noise;
- 	}
- 	piwstats->qual.updated = IW_QUAL_ALL_UPDATED;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0016-usb-dwc3-fix-bogus-test-in-dwc3_gadget_start_isoc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0016-usb-dwc3-fix-bogus-test-in-dwc3_gadget_start_isoc.patch
deleted file mode 100644
index 22a9c5c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0016-usb-dwc3-fix-bogus-test-in-dwc3_gadget_start_isoc.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 0a7695bc47ddfdeaaa1b30b88912f38a481e3abd Mon Sep 17 00:00:00 2001
-From: Paul Zimmerman <Paul.Zimmerman at synopsys.com>
-Date: Fri, 17 Feb 2012 14:10:16 -0800
-Subject: [PATCH 016/147] usb: dwc3: fix bogus test in dwc3_gadget_start_isoc
-
-commit 9bafa56c7cee5c6fa68de5924220abb220c7e229 upstream.
-
-Zero is a valid value for a microframe number. So remove the bogus
-test for non-zero in dwc3_gadget_start_isoc().
-
-Signed-off-by: Paul Zimmerman <paulz at synopsys.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/dwc3/gadget.c |   16 +++++-----------
- 1 file changed, 5 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
-index 5802720..41a2ea6 100644
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -1405,7 +1405,7 @@ static void dwc3_endpoint_transfer_complete(struct dwc3 *dwc,
- static void dwc3_gadget_start_isoc(struct dwc3 *dwc,
- 		struct dwc3_ep *dep, const struct dwc3_event_depevt *event)
- {
--	u32 uf;
-+	u32 uf, mask;
- 
- 	if (list_empty(&dep->request_list)) {
- 		dev_vdbg(dwc->dev, "ISOC ep %s run out for requests.\n",
-@@ -1413,16 +1413,10 @@ static void dwc3_gadget_start_isoc(struct dwc3 *dwc,
- 		return;
- 	}
- 
--	if (event->parameters) {
--		u32 mask;
--
--		mask = ~(dep->interval - 1);
--		uf = event->parameters & mask;
--		/* 4 micro frames in the future */
--		uf += dep->interval * 4;
--	} else {
--		uf = 0;
--	}
-+	mask = ~(dep->interval - 1);
-+	uf = event->parameters & mask;
-+	/* 4 micro frames in the future */
-+	uf += dep->interval * 4;
- 
- 	__dwc3_gadget_kick_transfer(dep, uf, 1);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0017-usb-dwc3-use-proper-function-for-setting-endpoint-na.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0017-usb-dwc3-use-proper-function-for-setting-endpoint-na.patch
deleted file mode 100644
index 582b9f9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0017-usb-dwc3-use-proper-function-for-setting-endpoint-na.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From cdbcc2f017a258caca6390e7353709a6603bc452 Mon Sep 17 00:00:00 2001
-From: Anton Tikhomirov <av.tikhomirov at samsung.com>
-Date: Thu, 23 Feb 2012 15:38:46 +0900
-Subject: [PATCH 017/147] usb: dwc3: use proper function for setting endpoint
- name
-
-commit 27a78d6a283d6782438f72306746afe4bf44c215 upstream.
-
-It's wrong to use the size of array as an argument for strncat.
-Memory corruption is possible. strlcat is exactly what we need here.
-
-Signed-off-by: Anton Tikhomirov <av.tikhomirov at samsung.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/dwc3/gadget.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/dwc3/gadget.c b/drivers/usb/dwc3/gadget.c
-index 41a2ea6..dfcda94 100644
---- a/drivers/usb/dwc3/gadget.c
-+++ b/drivers/usb/dwc3/gadget.c
-@@ -449,16 +449,16 @@ static int dwc3_gadget_ep_enable(struct usb_ep *ep,
- 
- 	switch (usb_endpoint_type(desc)) {
- 	case USB_ENDPOINT_XFER_CONTROL:
--		strncat(dep->name, "-control", sizeof(dep->name));
-+		strlcat(dep->name, "-control", sizeof(dep->name));
- 		break;
- 	case USB_ENDPOINT_XFER_ISOC:
--		strncat(dep->name, "-isoc", sizeof(dep->name));
-+		strlcat(dep->name, "-isoc", sizeof(dep->name));
- 		break;
- 	case USB_ENDPOINT_XFER_BULK:
--		strncat(dep->name, "-bulk", sizeof(dep->name));
-+		strlcat(dep->name, "-bulk", sizeof(dep->name));
- 		break;
- 	case USB_ENDPOINT_XFER_INT:
--		strncat(dep->name, "-int", sizeof(dep->name));
-+		strlcat(dep->name, "-int", sizeof(dep->name));
- 		break;
- 	default:
- 		dev_err(dwc->dev, "invalid endpoint transfer type\n");
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0018-usb-gadgetfs-return-number-of-bytes-on-ep0-read-requ.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0018-usb-gadgetfs-return-number-of-bytes-on-ep0-read-requ.patch
deleted file mode 100644
index c226f85..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0018-usb-gadgetfs-return-number-of-bytes-on-ep0-read-requ.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 868208aaab0df10df8bff2cb3bc2ccae0fa0a16d Mon Sep 17 00:00:00 2001
-From: Thomas Faber <thfabba at gmx.de>
-Date: Fri, 2 Mar 2012 09:41:50 +0100
-Subject: [PATCH 018/147] usb: gadgetfs: return number of bytes on ep0 read
- request
-
-commit 85b4b3c8c189e0159101f7628a71411af072ff69 upstream.
-
-A read from GadgetFS endpoint 0 during the data stage of a control
-request would always return 0 on success (as returned by
-wait_event_interruptible) despite having written data into the user
-buffer.
-This patch makes it correctly set the return value to the number of
-bytes read.
-
-Signed-off-by: Thomas Faber <thfabba at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/inode.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/gadget/inode.c b/drivers/usb/gadget/inode.c
-index 9361251..2a96f57 100644
---- a/drivers/usb/gadget/inode.c
-+++ b/drivers/usb/gadget/inode.c
-@@ -1043,6 +1043,8 @@ ep0_read (struct file *fd, char __user *buf, size_t len, loff_t *ptr)
- // FIXME don't call this with the spinlock held ...
- 				if (copy_to_user (buf, dev->req->buf, len))
- 					retval = -EFAULT;
-+				else
-+					retval = len;
- 				clean_req (dev->gadget->ep0, dev->req);
- 				/* NOTE userspace can't yet choose to stall */
- 			}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0019-USB-gadget-Make-g_hid-device-class-conform-to-spec.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0019-USB-gadget-Make-g_hid-device-class-conform-to-spec.patch
deleted file mode 100644
index 4751b7f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0019-USB-gadget-Make-g_hid-device-class-conform-to-spec.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 68f1d29a63c33ab9478d1d5b11d4ba522fa3d167 Mon Sep 17 00:00:00 2001
-From: Orjan Friberg <of at flatfrog.com>
-Date: Wed, 7 Mar 2012 17:16:14 +0100
-Subject: [PATCH 019/147] USB: gadget: Make g_hid device class conform to
- spec.
-
-commit 33d2832ab0149a26418d360af3c444969a63fb28 upstream.
-
-HID devices should specify this in their interface descriptors, not in the
-device descriptor. This fixes a "missing hardware id" bug under Windows 7 with
-a VIA VL800 (3.0) controller.
-
-Signed-off-by: Orjan Friberg <of at flatfrog.com>
-Cc: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/hid.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/gadget/hid.c b/drivers/usb/gadget/hid.c
-index f888c3e..3493adf 100644
---- a/drivers/usb/gadget/hid.c
-+++ b/drivers/usb/gadget/hid.c
-@@ -60,9 +60,9 @@ static struct usb_device_descriptor device_desc = {
- 	/* .bDeviceClass =		USB_CLASS_COMM, */
- 	/* .bDeviceSubClass =	0, */
- 	/* .bDeviceProtocol =	0, */
--	.bDeviceClass =		0xEF,
--	.bDeviceSubClass =	2,
--	.bDeviceProtocol =	1,
-+	.bDeviceClass =		USB_CLASS_PER_INTERFACE,
-+	.bDeviceSubClass =	0,
-+	.bDeviceProtocol =	0,
- 	/* .bMaxPacketSize0 = f(hardware) */
- 
- 	/* Vendor and product id can be overridden by module parameters.  */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0020-futex-Cover-all-PI-opcodes-with-cmpxchg-enabled-chec.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0020-futex-Cover-all-PI-opcodes-with-cmpxchg-enabled-chec.patch
deleted file mode 100644
index 878a9a5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0020-futex-Cover-all-PI-opcodes-with-cmpxchg-enabled-chec.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 67cc4b87ba54c6101c7fd5dbde9b2547463339d1 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Wed, 15 Feb 2012 12:08:34 +0100
-Subject: [PATCH 020/147] futex: Cover all PI opcodes with cmpxchg enabled
- check
-
-commit 59263b513c11398cd66a52d4c5b2b118ce1e0359 upstream.
-
-Some of the newer futex PI opcodes do not check the cmpxchg enabled
-variable and call unconditionally into the handling functions. Cover
-all PI opcodes in a separate check.
-
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Cc: Peter Zijlstra <peterz at infradead.org>
-Cc: Darren Hart <dvhart at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/futex.c |   19 +++++++++++++------
- 1 file changed, 13 insertions(+), 6 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 1614be2..0677023 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -2641,6 +2641,16 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
- 	}
- 
- 	switch (cmd) {
-+	case FUTEX_LOCK_PI:
-+	case FUTEX_UNLOCK_PI:
-+	case FUTEX_TRYLOCK_PI:
-+	case FUTEX_WAIT_REQUEUE_PI:
-+	case FUTEX_CMP_REQUEUE_PI:
-+		if (!futex_cmpxchg_enabled)
-+			return -ENOSYS;
-+	}
-+
-+	switch (cmd) {
- 	case FUTEX_WAIT:
- 		val3 = FUTEX_BITSET_MATCH_ANY;
- 	case FUTEX_WAIT_BITSET:
-@@ -2661,16 +2671,13 @@ long do_futex(u32 __user *uaddr, int op, u32 val, ktime_t *timeout,
- 		ret = futex_wake_op(uaddr, flags, uaddr2, val, val2, val3);
- 		break;
- 	case FUTEX_LOCK_PI:
--		if (futex_cmpxchg_enabled)
--			ret = futex_lock_pi(uaddr, flags, val, timeout, 0);
-+		ret = futex_lock_pi(uaddr, flags, val, timeout, 0);
- 		break;
- 	case FUTEX_UNLOCK_PI:
--		if (futex_cmpxchg_enabled)
--			ret = futex_unlock_pi(uaddr, flags);
-+		ret = futex_unlock_pi(uaddr, flags);
- 		break;
- 	case FUTEX_TRYLOCK_PI:
--		if (futex_cmpxchg_enabled)
--			ret = futex_lock_pi(uaddr, flags, 0, timeout, 1);
-+		ret = futex_lock_pi(uaddr, flags, 0, timeout, 1);
- 		break;
- 	case FUTEX_WAIT_REQUEUE_PI:
- 		val3 = FUTEX_BITSET_MATCH_ANY;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0021-sysfs-Fix-memory-leak-in-sysfs_sd_setsecdata.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0021-sysfs-Fix-memory-leak-in-sysfs_sd_setsecdata.patch
deleted file mode 100644
index 5f58a38..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0021-sysfs-Fix-memory-leak-in-sysfs_sd_setsecdata.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 58d245d715be41e6b0d736466a9589d75156f0ff Mon Sep 17 00:00:00 2001
-From: Masami Ichikawa <masami256 at gmail.com>
-Date: Tue, 21 Feb 2012 07:43:50 +0900
-Subject: [PATCH 021/147] sysfs: Fix memory leak in sysfs_sd_setsecdata().
-
-commit 93518dd2ebafcc761a8637b2877008cfd748c202 upstream.
-
-This patch fixies follwing two memory leak patterns that reported by kmemleak.
-sysfs_sd_setsecdata() is called during sys_lsetxattr() operation.
-It checks sd->s_iattr is NULL or not. Then if it is NULL, it calls
-sysfs_init_inode_attrs() to allocate memory.
-That code is this.
-
-iattrs = sd->s_iattr;
-if (!iattrs)
-                iattrs = sysfs_init_inode_attrs(sd);
-
-The iattrs recieves sysfs_init_inode_attrs()'s result,  but sd->s_iattr
-doesn't know the address. so it needs to set correct address to
-sd->s_iattr to free memory in other function.
-
-unreferenced object 0xffff880250b73e60 (size 32):
-  comm "systemd", pid 1, jiffies 4294683888 (age 94.553s)
-  hex dump (first 32 bytes):
-    73 79 73 74 65 6d 5f 75 3a 6f 62 6a 65 63 74 5f  system_u:object_
-    72 3a 73 79 73 66 73 5f 74 3a 73 30 00 00 00 00  r:sysfs_t:s0....
-  backtrace:
-    [<ffffffff814cb1d0>] kmemleak_alloc+0x73/0x98
-    [<ffffffff811270ab>] __kmalloc+0x100/0x12c
-    [<ffffffff8120775a>] context_struct_to_string+0x106/0x210
-    [<ffffffff81207cc1>] security_sid_to_context_core+0x10b/0x129
-    [<ffffffff812090ef>] security_sid_to_context+0x10/0x12
-    [<ffffffff811fb0da>] selinux_inode_getsecurity+0x7d/0xa8
-    [<ffffffff811fb127>] selinux_inode_getsecctx+0x22/0x2e
-    [<ffffffff811f4d62>] security_inode_getsecctx+0x16/0x18
-    [<ffffffff81191dad>] sysfs_setxattr+0x96/0x117
-    [<ffffffff811542f0>] __vfs_setxattr_noperm+0x73/0xd9
-    [<ffffffff811543d9>] vfs_setxattr+0x83/0xa1
-    [<ffffffff811544c6>] setxattr+0xcf/0x101
-    [<ffffffff81154745>] sys_lsetxattr+0x6a/0x8f
-    [<ffffffff814efda9>] system_call_fastpath+0x16/0x1b
-    [<ffffffffffffffff>] 0xffffffffffffffff
-unreferenced object 0xffff88024163c5a0 (size 96):
-  comm "systemd", pid 1, jiffies 4294683888 (age 94.553s)
-  hex dump (first 32 bytes):
-    00 00 00 00 ed 41 00 00 00 00 00 00 00 00 00 00  .....A..........
-    00 00 00 00 00 00 00 00 0c 64 42 4f 00 00 00 00  .........dBO....
-  backtrace:
-    [<ffffffff814cb1d0>] kmemleak_alloc+0x73/0x98
-    [<ffffffff81127402>] kmem_cache_alloc_trace+0xc4/0xee
-    [<ffffffff81191cbe>] sysfs_init_inode_attrs+0x2a/0x83
-    [<ffffffff81191dd6>] sysfs_setxattr+0xbf/0x117
-    [<ffffffff811542f0>] __vfs_setxattr_noperm+0x73/0xd9
-    [<ffffffff811543d9>] vfs_setxattr+0x83/0xa1
-    [<ffffffff811544c6>] setxattr+0xcf/0x101
-    [<ffffffff81154745>] sys_lsetxattr+0x6a/0x8f
-    [<ffffffff814efda9>] system_call_fastpath+0x16/0x1b
-    [<ffffffffffffffff>] 0xffffffffffffffff
-`
-
-Signed-off-by: Masami Ichikawa <masami256 at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/sysfs/inode.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
-index deb804b..9db61a4 100644
---- a/fs/sysfs/inode.c
-+++ b/fs/sysfs/inode.c
-@@ -136,12 +136,13 @@ static int sysfs_sd_setsecdata(struct sysfs_dirent *sd, void **secdata, u32 *sec
- 	void *old_secdata;
- 	size_t old_secdata_len;
- 
--	iattrs = sd->s_iattr;
--	if (!iattrs)
--		iattrs = sysfs_init_inode_attrs(sd);
--	if (!iattrs)
--		return -ENOMEM;
-+	if (!sd->s_iattr) {
-+		sd->s_iattr = sysfs_init_inode_attrs(sd);
-+		if (!sd->s_iattr)
-+			return -ENOMEM;
-+	}
- 
-+	iattrs = sd->s_iattr;
- 	old_secdata = iattrs->ia_secdata;
- 	old_secdata_len = iattrs->ia_secdata_len;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0022-tty-moxa-fix-bit-test-in-moxa_start.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0022-tty-moxa-fix-bit-test-in-moxa_start.patch
deleted file mode 100644
index 201e2b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0022-tty-moxa-fix-bit-test-in-moxa_start.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 94f82d523fc497167379eb0624420a2bd535103d Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Wed, 7 Mar 2012 13:05:00 +0300
-Subject: [PATCH 022/147] tty: moxa: fix bit test in moxa_start()
-
-commit 58112dfbfe02d803566a2c6c8bd97b5fa3c62cdc upstream.
-
-This is supposed to be doing a shift before the comparison instead of
-just doing a bitwise AND directly.  The current code means the start()
-just returns without doing anything.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Acked-by: Jiri Slaby <jslaby at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/moxa.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/tty/moxa.c b/drivers/tty/moxa.c
-index d15a071..0174d2d 100644
---- a/drivers/tty/moxa.c
-+++ b/drivers/tty/moxa.c
-@@ -1331,7 +1331,7 @@ static void moxa_start(struct tty_struct *tty)
- 	if (ch == NULL)
- 		return;
- 
--	if (!(ch->statusflags & TXSTOPPED))
-+	if (!test_bit(TXSTOPPED, &ch->statusflags))
- 		return;
- 
- 	MoxaPortTxEnable(ch);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0023-TTY-Wrong-unicode-value-copied-in-con_set_unimap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0023-TTY-Wrong-unicode-value-copied-in-con_set_unimap.patch
deleted file mode 100644
index c688faa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0023-TTY-Wrong-unicode-value-copied-in-con_set_unimap.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 7d00c6261eadb39ffffd02141aa566deda4d7cb3 Mon Sep 17 00:00:00 2001
-From: Liz Clark <liz.clark at hp.com>
-Date: Thu, 15 Mar 2012 10:33:29 -0700
-Subject: [PATCH 023/147] TTY: Wrong unicode value copied in con_set_unimap()
-
-commit 4a4c61b7ce26bfc9d49ea4bd121d52114bad9f99 upstream.
-
-Bugzilla 40012: PIO_UNIMAP bug: error updating Unicode-to-font map
-https://bugzilla.kernel.org/show_bug.cgi?id=40012
-
-The unicode font map for the virtual console is a 32x32x64 table which
-allocates rows dynamically as entries are added.  The unicode value
-increases sequentially and should count all entries even in empty
-rows.  The defect is when copying the unicode font map in con_set_unimap(),
-the unicode value is not incremented properly.  The wrong unicode value
-is entered in the new font map.
-
-Signed-off-by: Liz Clark <liz.clark at hp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/vt/consolemap.c |   51 ++++++++++++++++++++++++++++++++++++-------
- 1 file changed, 43 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/tty/vt/consolemap.c b/drivers/tty/vt/consolemap.c
-index 45d3e80..f343808 100644
---- a/drivers/tty/vt/consolemap.c
-+++ b/drivers/tty/vt/consolemap.c
-@@ -516,6 +516,7 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
- 	int err = 0, err1, i;
- 	struct uni_pagedir *p, *q;
- 
-+	/* Save original vc_unipagdir_loc in case we allocate a new one */
- 	p = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc;
- 	if (p->readonly) return -EIO;
- 	
-@@ -528,26 +529,57 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
- 		err1 = con_clear_unimap(vc, NULL);
- 		if (err1) return err1;
- 		
-+		/*
-+		 * Since refcount was > 1, con_clear_unimap() allocated a
-+		 * a new uni_pagedir for this vc.  Re: p != q
-+		 */
- 		q = (struct uni_pagedir *)*vc->vc_uni_pagedir_loc;
--		for (i = 0, l = 0; i < 32; i++)
-+
-+		/*
-+		 * uni_pgdir is a 32*32*64 table with rows allocated
-+		 * when its first entry is added.  The unicode value must
-+		 * still be incremented for empty rows.  We are copying
-+		 * entries from "p" (old) to "q" (new).
-+		 */
-+		l = 0;		/* unicode value */
-+		for (i = 0; i < 32; i++)
- 		if ((p1 = p->uni_pgdir[i]))
- 			for (j = 0; j < 32; j++)
--			if ((p2 = p1[j]))
-+			if ((p2 = p1[j])) {
- 				for (k = 0; k < 64; k++, l++)
- 				if (p2[k] != 0xffff) {
-+					/*
-+					 * Found one, copy entry for unicode
-+					 * l with fontpos value p2[k].
-+					 */
- 					err1 = con_insert_unipair(q, l, p2[k]);
- 					if (err1) {
- 						p->refcount++;
- 						*vc->vc_uni_pagedir_loc = (unsigned long)p;
- 						con_release_unimap(q);
- 						kfree(q);
--						return err1; 
-+						return err1;
- 					}
--              			}
--              	p = q;
--	} else if (p == dflt)
-+				}
-+			} else {
-+				/* Account for row of 64 empty entries */
-+				l += 64;
-+			}
-+		else
-+			/* Account for empty table */
-+			l += 32 * 64;
-+
-+		/*
-+		 * Finished copying font table, set vc_uni_pagedir to new table
-+		 */
-+		p = q;
-+	} else if (p == dflt) {
- 		dflt = NULL;
--	
-+	}
-+
-+	/*
-+	 * Insert user specified unicode pairs into new table.
-+	 */
- 	while (ct--) {
- 		unsigned short unicode, fontpos;
- 		__get_user(unicode, &list->unicode);
-@@ -557,11 +589,14 @@ int con_set_unimap(struct vc_data *vc, ushort ct, struct unipair __user *list)
- 		list++;
- 	}
- 	
-+	/*
-+	 * Merge with fontmaps of any other virtual consoles.
-+	 */
- 	if (con_unify_unimap(vc, p))
- 		return err;
- 
- 	for (i = 0; i <= 3; i++)
--		set_inverse_transl(vc, p, i); /* Update all inverse translations */
-+		set_inverse_transl(vc, p, i); /* Update inverse translations */
- 	set_inverse_trans_unicode(vc, p);
-   
- 	return err;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0024-USB-serial-fix-console-error-reporting.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0024-USB-serial-fix-console-error-reporting.patch
deleted file mode 100644
index 3d057d3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0024-USB-serial-fix-console-error-reporting.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 6a49ff9d91721997f9c625b79e70b9a37bfdf10f Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Fri, 10 Feb 2012 13:20:49 +0100
-Subject: [PATCH 024/147] USB: serial: fix console error reporting
-
-commit 548dd4b6da8a8e428453d55f7fa7b8a46498d147 upstream.
-
-Do not report errors in write path if port is used as a console as this
-may trigger the same error (and error report) resulting in a loop.
-
-Reported-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/generic.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/generic.c b/drivers/usb/serial/generic.c
-index e4db5ad..9f0b2bf 100644
---- a/drivers/usb/serial/generic.c
-+++ b/drivers/usb/serial/generic.c
-@@ -215,8 +215,10 @@ retry:
- 	clear_bit(i, &port->write_urbs_free);
- 	result = usb_submit_urb(urb, GFP_ATOMIC);
- 	if (result) {
--		dev_err(&port->dev, "%s - error submitting urb: %d\n",
-+		if (!port->port.console) {
-+			dev_err(&port->dev, "%s - error submitting urb: %d\n",
- 						__func__, result);
-+		}
- 		set_bit(i, &port->write_urbs_free);
- 		spin_lock_irqsave(&port->lock, flags);
- 		port->tx_bytes -= count;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0025-cdc-wdm-Fix-more-races-on-the-read-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0025-cdc-wdm-Fix-more-races-on-the-read-path.patch
deleted file mode 100644
index 8e2bd77..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0025-cdc-wdm-Fix-more-races-on-the-read-path.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From 028d778c63336663590f673854c0e128e1b8fa34 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 12 Feb 2012 06:00:41 +0000
-Subject: [PATCH 025/147] cdc-wdm: Fix more races on the read path
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 711c68b3c0f7a924ffbee4aa962d8f62b85188ff upstream.
-
-We must not allow the input buffer length to change while we're
-shuffling the buffer contents.  We also mustn't clear the WDM_READ
-flag after more data might have arrived.  Therefore move both of these
-into the spinlocked region at the bottom of wdm_read().
-
-When reading desc->length without holding the iuspin lock, use
-ACCESS_ONCE() to ensure the compiler doesn't re-read it with
-inconsistent results.
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Tested-by: Bj??rn Mork <bjorn at mork.no>
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |   16 +++++++++++-----
- 1 file changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index fd4aee1..eb650b7 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -397,7 +397,7 @@ outnl:
- static ssize_t wdm_read
- (struct file *file, char __user *buffer, size_t count, loff_t *ppos)
- {
--	int rv, cntr = 0;
-+	int rv, cntr;
- 	int i = 0;
- 	struct wdm_device *desc = file->private_data;
- 
-@@ -406,7 +406,8 @@ static ssize_t wdm_read
- 	if (rv < 0)
- 		return -ERESTARTSYS;
- 
--	if (desc->length == 0) {
-+	cntr = ACCESS_ONCE(desc->length);
-+	if (cntr == 0) {
- 		desc->read = 0;
- retry:
- 		if (test_bit(WDM_DISCONNECTING, &desc->flags)) {
-@@ -457,25 +458,30 @@ retry:
- 			goto retry;
- 		}
- 		clear_bit(WDM_READ, &desc->flags);
-+		cntr = desc->length;
- 		spin_unlock_irq(&desc->iuspin);
- 	}
- 
--	cntr = count > desc->length ? desc->length : count;
-+	if (cntr > count)
-+		cntr = count;
- 	rv = copy_to_user(buffer, desc->ubuf, cntr);
- 	if (rv > 0) {
- 		rv = -EFAULT;
- 		goto err;
- 	}
- 
-+	spin_lock_irq(&desc->iuspin);
-+
- 	for (i = 0; i < desc->length - cntr; i++)
- 		desc->ubuf[i] = desc->ubuf[i + cntr];
- 
--	spin_lock_irq(&desc->iuspin);
- 	desc->length -= cntr;
--	spin_unlock_irq(&desc->iuspin);
- 	/* in case we had outstanding data */
- 	if (!desc->length)
- 		clear_bit(WDM_READ, &desc->flags);
-+
-+	spin_unlock_irq(&desc->iuspin);
-+
- 	rv = cntr;
- 
- err:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0026-cdc-wdm-Don-t-clear-WDM_READ-unless-entire-read-buff.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0026-cdc-wdm-Don-t-clear-WDM_READ-unless-entire-read-buff.patch
deleted file mode 100644
index 21eb3c9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0026-cdc-wdm-Don-t-clear-WDM_READ-unless-entire-read-buff.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 77094c1a611d4c874a2903e9a702d35a4f5a6be9 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 12 Feb 2012 06:02:43 +0000
-Subject: [PATCH 026/147] cdc-wdm: Don't clear WDM_READ unless entire read
- buffer is emptied
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b7a205545345578712611106b371538992e142ff upstream.
-
-The WDM_READ flag is cleared later iff desc->length is reduced to 0.
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Tested-by: Bj??rn Mork <bjorn at mork.no>
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index eb650b7..9eb71d8 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -457,7 +457,6 @@ retry:
- 			spin_unlock_irq(&desc->iuspin);
- 			goto retry;
- 		}
--		clear_bit(WDM_READ, &desc->flags);
- 		cntr = desc->length;
- 		spin_unlock_irq(&desc->iuspin);
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0027-usb-fsl_udc_core-Fix-scheduling-while-atomic-dump-me.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0027-usb-fsl_udc_core-Fix-scheduling-while-atomic-dump-me.patch
deleted file mode 100644
index b2cc8cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0027-usb-fsl_udc_core-Fix-scheduling-while-atomic-dump-me.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 0e5ef14de4874bc31ca8ab4bd1759ead8151950e Mon Sep 17 00:00:00 2001
-From: Peter Chen <peter.chen at freescale.com>
-Date: Thu, 16 Feb 2012 09:36:25 +0800
-Subject: [PATCH 027/147] usb: fsl_udc_core: Fix scheduling while atomic dump
- message
-
-commit c5cc5ed86667d4ae74fe40ee4ed893f4b46aba05 upstream.
-
-When loading g_ether gadget, there is below message:
-
-Backtrace:
-[<80012248>] (dump_backtrace+0x0/0x10c) from [<803cb42c>] (dump_stack+0x18/0x1c)
-r7:00000000 r6:80512000 r5:8052bef8 r4:80513f30
-[<803cb414>] (dump_stack+0x0/0x1c) from [<8000feb4>] (show_regs+0x44/0x50)
-[<8000fe70>] (show_regs+0x0/0x50) from [<8004c840>] (__schedule_bug+0x68/0x84)
-r5:8052bef8 r4:80513f30
-[<8004c7d8>] (__schedule_bug+0x0/0x84) from [<803cd0e4>] (__schedule+0x4b0/0x528)
-r5:8052bef8 r4:809aad00
-[<803ccc34>] (__schedule+0x0/0x528) from [<803cd214>] (_cond_resched+0x44/0x58)
-[<803cd1d0>] (_cond_resched+0x0/0x58) from [<800a9488>] (dma_pool_alloc+0x184/0x250)
- r5:9f9b4000 r4:9fb4fb80
- [<800a9304>] (dma_pool_alloc+0x0/0x250) from [<802a8ad8>] (fsl_req_to_dtd+0xac/0x180)
-[<802a8a2c>] (fsl_req_to_dtd+0x0/0x180) from [<802a8ce4>] (fsl_ep_queue+0x138/0x274)
-[<802a8bac>] (fsl_ep_queue+0x0/0x274) from [<7f004328>] (composite_setup+0x2d4/0xfac [g_ether])
-[<7f004054>] (composite_setup+0x0/0xfac [g_ether]) from [<802a9bb4>] (fsl_udc_irq+0x8dc/0xd38)
-[<802a92d8>] (fsl_udc_irq+0x0/0xd38) from [<800704f8>] (handle_irq_event_percpu+0x54/0x188)
-[<800704a4>] (handle_irq_event_percpu+0x0/0x188) from [<80070674>] (handle_irq_event+0x48/0x68)
-[<8007062c>] (handle_irq_event+0x0/0x68) from [<800738ec>] (handle_level_irq+0xb4/0x138)
- r5:80514f94 r4:80514f40
- [<80073838>] (handle_level_irq+0x0/0x138) from [<8006ffa4>] (generic_handle_irq+0x38/0x44)
- r7:00000012 r6:80510b1c r5:80529860 r4:80512000
- [<8006ff6c>] (generic_handle_irq+0x0/0x44) from [<8000f4c4>] (handle_IRQ+0x54/0xb4)
-[<8000f470>] (handle_IRQ+0x0/0xb4) from [<800085b8>] (tzic_handle_irq+0x64/0x94)
- r9:412fc085 r8:00000000 r7:80513f30 r6:00000001 r5:00000000
- r4:00000000
- [<80008554>] (tzic_handle_irq+0x0/0x94) from [<8000e680>] (__irq_svc+0x40/0x60)
-
-The reason of above dump message is calling dma_poll_alloc with can-schedule
-mem_flags at atomic context.
-
-To fix this problem, below changes are made:
-- fsl_req_to_dtd doesn't need to be protected by spin_lock_irqsave,
-as struct usb_request can be access at process context. Move lock
-to beginning of hardware visit (fsl_queue_td).
-- Change the memory flag which using to allocate dTD descriptor buffer,
-the memory flag can be from gadget layer.
-
-It is tested at i.mx51 bbg board with g_mass_storage, g_ether, g_serial.
-
-Signed-off-by: Peter Chen <peter.chen at freescale.com>
-Acked-by: Li Yang <leoli at freescale.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/fsl_udc_core.c |   18 ++++++++----------
- 1 file changed, 8 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
-index d7ea6c0..9085d14 100644
---- a/drivers/usb/gadget/fsl_udc_core.c
-+++ b/drivers/usb/gadget/fsl_udc_core.c
-@@ -768,7 +768,7 @@ static void fsl_queue_td(struct fsl_ep *ep, struct fsl_req *req)
-  * @is_last: return flag if it is the last dTD of the request
-  * return: pointer to the built dTD */
- static struct ep_td_struct *fsl_build_dtd(struct fsl_req *req, unsigned *length,
--		dma_addr_t *dma, int *is_last)
-+		dma_addr_t *dma, int *is_last, gfp_t gfp_flags)
- {
- 	u32 swap_temp;
- 	struct ep_td_struct *dtd;
-@@ -777,7 +777,7 @@ static struct ep_td_struct *fsl_build_dtd(struct fsl_req *req, unsigned *length,
- 	*length = min(req->req.length - req->req.actual,
- 			(unsigned)EP_MAX_LENGTH_TRANSFER);
- 
--	dtd = dma_pool_alloc(udc_controller->td_pool, GFP_KERNEL, dma);
-+	dtd = dma_pool_alloc(udc_controller->td_pool, gfp_flags, dma);
- 	if (dtd == NULL)
- 		return dtd;
- 
-@@ -827,7 +827,7 @@ static struct ep_td_struct *fsl_build_dtd(struct fsl_req *req, unsigned *length,
- }
- 
- /* Generate dtd chain for a request */
--static int fsl_req_to_dtd(struct fsl_req *req)
-+static int fsl_req_to_dtd(struct fsl_req *req, gfp_t gfp_flags)
- {
- 	unsigned	count;
- 	int		is_last;
-@@ -836,7 +836,7 @@ static int fsl_req_to_dtd(struct fsl_req *req)
- 	dma_addr_t dma;
- 
- 	do {
--		dtd = fsl_build_dtd(req, &count, &dma, &is_last);
-+		dtd = fsl_build_dtd(req, &count, &dma, &is_last, gfp_flags);
- 		if (dtd == NULL)
- 			return -ENOMEM;
- 
-@@ -910,13 +910,11 @@ fsl_ep_queue(struct usb_ep *_ep, struct usb_request *_req, gfp_t gfp_flags)
- 	req->req.actual = 0;
- 	req->dtd_count = 0;
- 
--	spin_lock_irqsave(&udc->lock, flags);
--
- 	/* build dtds and push them to device queue */
--	if (!fsl_req_to_dtd(req)) {
-+	if (!fsl_req_to_dtd(req, gfp_flags)) {
-+		spin_lock_irqsave(&udc->lock, flags);
- 		fsl_queue_td(ep, req);
- 	} else {
--		spin_unlock_irqrestore(&udc->lock, flags);
- 		return -ENOMEM;
- 	}
- 
-@@ -1295,7 +1293,7 @@ static int ep0_prime_status(struct fsl_udc *udc, int direction)
- 			ep_is_in(ep) ? DMA_TO_DEVICE : DMA_FROM_DEVICE);
- 	req->mapped = 1;
- 
--	if (fsl_req_to_dtd(req) == 0)
-+	if (fsl_req_to_dtd(req, GFP_ATOMIC) == 0)
- 		fsl_queue_td(ep, req);
- 	else
- 		return -ENOMEM;
-@@ -1379,7 +1377,7 @@ static void ch9getstatus(struct fsl_udc *udc, u8 request_type, u16 value,
- 	req->mapped = 1;
- 
- 	/* prime the data phase */
--	if ((fsl_req_to_dtd(req) == 0))
-+	if ((fsl_req_to_dtd(req, GFP_ATOMIC) == 0))
- 		fsl_queue_td(ep, req);
- 	else			/* no mem */
- 		goto stall;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0028-usb-Fix-build-error-due-to-dma_mask-is-not-at-pdev_a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0028-usb-Fix-build-error-due-to-dma_mask-is-not-at-pdev_a.patch
deleted file mode 100644
index 2010a38..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0028-usb-Fix-build-error-due-to-dma_mask-is-not-at-pdev_a.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 14449b27e92835504278ce397b02ca2b183cbd31 Mon Sep 17 00:00:00 2001
-From: Peter Chen <peter.chen at freescale.com>
-Date: Thu, 16 Feb 2012 09:41:52 +0800
-Subject: [PATCH 028/147] usb: Fix build error due to dma_mask is not at
- pdev_archdata at ARM
-
-commit e90fc3cb087ce5c5f81e814358222cd6d197b5db upstream.
-
-When build i.mx platform with imx_v6_v7_defconfig, and after adding
-USB Gadget support, it has below build error:
-
-CC      drivers/usb/host/fsl-mph-dr-of.o
-drivers/usb/host/fsl-mph-dr-of.c: In function 'fsl_usb2_device_register':
-drivers/usb/host/fsl-mph-dr-of.c:97: error: 'struct pdev_archdata'
-has no member named 'dma_mask'
-
-It has discussed at: http://www.spinics.net/lists/linux-usb/msg57302.html
-
-For PowerPC, there is dma_mask at struct pdev_archdata, but there is
-no dma_mask at struct pdev_archdata for ARM. The pdev_archdata is
-related to specific platform, it should NOT be accessed by
-cross platform drivers, like USB.
-
-The code for pdev_archdata should be useless, as for PowerPC,
-it has already gotten the value for pdev->dev.dma_mask at function
-arch_setup_pdev_archdata of arch/powerpc/kernel/setup-common.c.
-
-Tested-by: Ramneek Mehresh <ramneek.mehresh at freescale.com>
-Signed-off-by: Peter Chen <peter.chen at freescale.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/fsl-mph-dr-of.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/usb/host/fsl-mph-dr-of.c b/drivers/usb/host/fsl-mph-dr-of.c
-index 9037035..5a42cf0 100644
---- a/drivers/usb/host/fsl-mph-dr-of.c
-+++ b/drivers/usb/host/fsl-mph-dr-of.c
-@@ -94,7 +94,6 @@ struct platform_device * __devinit fsl_usb2_device_register(
- 	pdev->dev.parent = &ofdev->dev;
- 
- 	pdev->dev.coherent_dma_mask = ofdev->dev.coherent_dma_mask;
--	pdev->dev.dma_mask = &pdev->archdata.dma_mask;
- 	*pdev->dev.dma_mask = *ofdev->dev.dma_mask;
- 
- 	retval = platform_device_add_data(pdev, pdata, sizeof(*pdata));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0029-USB-ums_realtek-do-not-use-stack-memory-for-DMA-in-_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0029-USB-ums_realtek-do-not-use-stack-memory-for-DMA-in-_.patch
deleted file mode 100644
index f14cf50..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0029-USB-ums_realtek-do-not-use-stack-memory-for-DMA-in-_.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 1ae819c56089722e15e3fe2d84125e4f5aa32d4e Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer at redhat.com>
-Date: Mon, 20 Feb 2012 15:34:34 -0500
-Subject: [PATCH 029/147] USB: ums_realtek: do not use stack memory for DMA in
- __do_config_autodelink
-
-commit 4898e07174b79013afd2b422ef6c4336ef8e6783 upstream.
-
-__do_config_autodelink passes the data variable to the transport function.
-If the calling functions pass a stack variable, this will eventually trigger
-a DMA-API debug backtrace for mapping stack memory in the DMA buffer.  Fix
-this by calling kmemdup for the passed data instead.
-
-Signed-off-by: Josh Boyer <jwboyer at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/storage/realtek_cr.c |    8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
-index 32c93d7..e39b188 100644
---- a/drivers/usb/storage/realtek_cr.c
-+++ b/drivers/usb/storage/realtek_cr.c
-@@ -509,9 +509,14 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len)
- 	int retval;
- 	u16 addr = 0xFE47;
- 	u8 cmnd[12] = {0};
-+	u8 *buf;
- 
- 	US_DEBUGP("%s, addr = 0x%x, len = %d\n", __FUNCTION__, addr, len);
- 
-+	buf = kmemdup(data, len, GFP_NOIO);
-+	if (!buf)
-+		return USB_STOR_TRANSPORT_ERROR;
-+
- 	cmnd[0] = 0xF0;
- 	cmnd[1] = 0x0E;
- 	cmnd[2] = (u8)(addr >> 8);
-@@ -519,7 +524,8 @@ static int __do_config_autodelink(struct us_data *us, u8 *data, u16 len)
- 	cmnd[4] = (u8)(len >> 8);
- 	cmnd[5] = (u8)len;
- 
--	retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, data, len, DMA_TO_DEVICE, NULL);
-+	retval = rts51x_bulk_transport_special(us, 0, cmnd, 12, buf, len, DMA_TO_DEVICE, NULL);
-+	kfree(buf);
- 	if (retval != USB_STOR_TRANSPORT_GOOD) {
- 		return -EIO;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0030-USB-qcserial-add-several-new-serial-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0030-USB-qcserial-add-several-new-serial-devices.patch
deleted file mode 100644
index 15bcffc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0030-USB-qcserial-add-several-new-serial-devices.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From e3ed8846e20e35e9a94c80270d72b20befec0859 Mon Sep 17 00:00:00 2001
-From: Thomas Tuttle <ttuttle at chromium.org>
-Date: Wed, 1 Feb 2012 16:07:17 -0500
-Subject: [PATCH 030/147] USB: qcserial: add several new serial devices
-
-commit 2db4d87070e87d198ab630e66a898b45eff316d9 upstream.
-
-Signed-off-by: Thomas Tuttle <ttuttle at chromium.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/usb/serial/qcserial.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
-index aa9367f..1e87d49 100644
---- a/drivers/usb/serial/qcserial.c
-+++ b/drivers/usb/serial/qcserial.c
-@@ -36,6 +36,11 @@ static const struct usb_device_id id_table[] = {
- 	{USB_DEVICE(0x413c, 0x8171)},	/* Dell Gobi QDL device */
- 	{USB_DEVICE(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
- 	{USB_DEVICE(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
-+	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi QDL device */
-+	{USB_DEVICE(0x1410, 0xa011)},	/* Novatel Gobi QDL device */
-+	{USB_DEVICE(0x1410, 0xa012)},	/* Novatel Gobi QDL device */
-+	{USB_DEVICE(0x1410, 0xa013)},	/* Novatel Gobi QDL device */
-+	{USB_DEVICE(0x1410, 0xa014)},	/* Novatel Gobi QDL device */
- 	{USB_DEVICE(0x0b05, 0x1776)},	/* Asus Gobi Modem device */
- 	{USB_DEVICE(0x0b05, 0x1774)},	/* Asus Gobi QDL device */
- 	{USB_DEVICE(0x19d2, 0xfff3)},	/* ONDA Gobi Modem device */
-@@ -86,7 +91,16 @@ static const struct usb_device_id id_table[] = {
- 	{USB_DEVICE(0x16d8, 0x8002)},	/* CMDTech Gobi 2000 Modem device (VU922) */
- 	{USB_DEVICE(0x05c6, 0x9204)},	/* Gobi 2000 QDL device */
- 	{USB_DEVICE(0x05c6, 0x9205)},	/* Gobi 2000 Modem device */
-+
-+	{USB_DEVICE(0x05c6, 0x920c)},	/* Gobi 3000 QDL */
-+	{USB_DEVICE(0x05c6, 0x920d)},	/* Gobi 3000 Composite */
-+	{USB_DEVICE(0x1410, 0xa020)},   /* Novatel Gobi 3000 QDL */
-+	{USB_DEVICE(0x1410, 0xa021)},	/* Novatel Gobi 3000 Composite */
-+	{USB_DEVICE(0x413c, 0x8193)},	/* Dell Gobi 3000 QDL */
-+	{USB_DEVICE(0x413c, 0x8194)},	/* Dell Gobi 3000 Composite */
- 	{USB_DEVICE(0x1199, 0x9013)},	/* Sierra Wireless Gobi 3000 Modem device (MC8355) */
-+	{USB_DEVICE(0x12D1, 0x14F0)},	/* Sony Gobi 3000 QDL */
-+	{USB_DEVICE(0x12D1, 0x14F1)},	/* Sony Gobi 3000 Composite */
- 	{ }				/* Terminating entry */
- };
- MODULE_DEVICE_TABLE(usb, id_table);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0031-USB-qcserial-don-t-grab-QMI-port-on-Gobi-1000-device.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0031-USB-qcserial-don-t-grab-QMI-port-on-Gobi-1000-device.patch
deleted file mode 100644
index 55df1d5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0031-USB-qcserial-don-t-grab-QMI-port-on-Gobi-1000-device.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From 8544c3691b838f3377a752b88365bb522eb04b72 Mon Sep 17 00:00:00 2001
-From: Dan Williams <dcbw at redhat.com>
-Date: Fri, 24 Feb 2012 13:08:43 -0600
-Subject: [PATCH 031/147] USB: qcserial: don't grab QMI port on Gobi 1000
- devices
-
-commit c192c8e71a2ded01170c1a992cd21aaedc822756 upstream.
-
-Gobi 1000 devices have a different port layout, which wasn't respected
-by the current driver, and thus it grabbed the QMI/net port.  In the
-near future we'll be attaching another driver to the QMI/net port for
-these devices (cdc-wdm and qmi_wwan) so make sure the qcserial driver
-doesn't claim them.  This patch also prevents qcserial from binding to
-interfaces 0 and 1 on 1K devices because those interfaces do not
-respond.
-
-Signed-off-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/qcserial.c |  105 ++++++++++++++++++++++++-----------------
- 1 file changed, 62 insertions(+), 43 deletions(-)
-
-diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
-index 1e87d49..3187d8b 100644
---- a/drivers/usb/serial/qcserial.c
-+++ b/drivers/usb/serial/qcserial.c
-@@ -24,39 +24,44 @@
- 
- static int debug;
- 
-+#define DEVICE_G1K(v, p) \
-+	USB_DEVICE(v, p), .driver_info = 1
-+
- static const struct usb_device_id id_table[] = {
--	{USB_DEVICE(0x05c6, 0x9211)},	/* Acer Gobi QDL device */
--	{USB_DEVICE(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
--	{USB_DEVICE(0x03f0, 0x1f1d)},	/* HP un2400 Gobi Modem Device */
--	{USB_DEVICE(0x03f0, 0x201d)},	/* HP un2400 Gobi QDL Device */
--	{USB_DEVICE(0x03f0, 0x371d)},	/* HP un2430 Mobile Broadband Module */
--	{USB_DEVICE(0x04da, 0x250d)},	/* Panasonic Gobi Modem device */
--	{USB_DEVICE(0x04da, 0x250c)},	/* Panasonic Gobi QDL device */
--	{USB_DEVICE(0x413c, 0x8172)},	/* Dell Gobi Modem device */
--	{USB_DEVICE(0x413c, 0x8171)},	/* Dell Gobi QDL device */
--	{USB_DEVICE(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
--	{USB_DEVICE(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
--	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi QDL device */
--	{USB_DEVICE(0x1410, 0xa011)},	/* Novatel Gobi QDL device */
--	{USB_DEVICE(0x1410, 0xa012)},	/* Novatel Gobi QDL device */
--	{USB_DEVICE(0x1410, 0xa013)},	/* Novatel Gobi QDL device */
--	{USB_DEVICE(0x1410, 0xa014)},	/* Novatel Gobi QDL device */
--	{USB_DEVICE(0x0b05, 0x1776)},	/* Asus Gobi Modem device */
--	{USB_DEVICE(0x0b05, 0x1774)},	/* Asus Gobi QDL device */
--	{USB_DEVICE(0x19d2, 0xfff3)},	/* ONDA Gobi Modem device */
--	{USB_DEVICE(0x19d2, 0xfff2)},	/* ONDA Gobi QDL device */
--	{USB_DEVICE(0x1557, 0x0a80)},	/* OQO Gobi QDL device */
--	{USB_DEVICE(0x05c6, 0x9001)},   /* Generic Gobi Modem device */
--	{USB_DEVICE(0x05c6, 0x9002)},	/* Generic Gobi Modem device */
--	{USB_DEVICE(0x05c6, 0x9202)},	/* Generic Gobi Modem device */
--	{USB_DEVICE(0x05c6, 0x9203)},	/* Generic Gobi Modem device */
--	{USB_DEVICE(0x05c6, 0x9222)},	/* Generic Gobi Modem device */
--	{USB_DEVICE(0x05c6, 0x9008)},	/* Generic Gobi QDL device */
--	{USB_DEVICE(0x05c6, 0x9009)},	/* Generic Gobi Modem device */
--	{USB_DEVICE(0x05c6, 0x9201)},	/* Generic Gobi QDL device */
--	{USB_DEVICE(0x05c6, 0x9221)},	/* Generic Gobi QDL device */
--	{USB_DEVICE(0x05c6, 0x9231)},	/* Generic Gobi QDL device */
--	{USB_DEVICE(0x1f45, 0x0001)},	/* Unknown Gobi QDL device */
-+	/* Gobi 1000 devices */
-+	{DEVICE_G1K(0x05c6, 0x9211)},	/* Acer Gobi QDL device */
-+	{DEVICE_G1K(0x05c6, 0x9212)},	/* Acer Gobi Modem Device */
-+	{DEVICE_G1K(0x03f0, 0x1f1d)},	/* HP un2400 Gobi Modem Device */
-+	{DEVICE_G1K(0x03f0, 0x201d)},	/* HP un2400 Gobi QDL Device */
-+	{DEVICE_G1K(0x04da, 0x250d)},	/* Panasonic Gobi Modem device */
-+	{DEVICE_G1K(0x04da, 0x250c)},	/* Panasonic Gobi QDL device */
-+	{DEVICE_G1K(0x413c, 0x8172)},	/* Dell Gobi Modem device */
-+	{DEVICE_G1K(0x413c, 0x8171)},	/* Dell Gobi QDL device */
-+	{DEVICE_G1K(0x1410, 0xa001)},	/* Novatel Gobi Modem device */
-+	{DEVICE_G1K(0x1410, 0xa008)},	/* Novatel Gobi QDL device */
-+	{DEVICE_G1K(0x0b05, 0x1776)},	/* Asus Gobi Modem device */
-+	{DEVICE_G1K(0x0b05, 0x1774)},	/* Asus Gobi QDL device */
-+	{DEVICE_G1K(0x19d2, 0xfff3)},	/* ONDA Gobi Modem device */
-+	{DEVICE_G1K(0x19d2, 0xfff2)},	/* ONDA Gobi QDL device */
-+	{DEVICE_G1K(0x1557, 0x0a80)},	/* OQO Gobi QDL device */
-+	{DEVICE_G1K(0x05c6, 0x9001)},   /* Generic Gobi Modem device */
-+	{DEVICE_G1K(0x05c6, 0x9002)},	/* Generic Gobi Modem device */
-+	{DEVICE_G1K(0x05c6, 0x9202)},	/* Generic Gobi Modem device */
-+	{DEVICE_G1K(0x05c6, 0x9203)},	/* Generic Gobi Modem device */
-+	{DEVICE_G1K(0x05c6, 0x9222)},	/* Generic Gobi Modem device */
-+	{DEVICE_G1K(0x05c6, 0x9008)},	/* Generic Gobi QDL device */
-+	{DEVICE_G1K(0x05c6, 0x9009)},	/* Generic Gobi Modem device */
-+	{DEVICE_G1K(0x05c6, 0x9201)},	/* Generic Gobi QDL device */
-+	{DEVICE_G1K(0x05c6, 0x9221)},	/* Generic Gobi QDL device */
-+	{DEVICE_G1K(0x05c6, 0x9231)},	/* Generic Gobi QDL device */
-+	{DEVICE_G1K(0x1f45, 0x0001)},	/* Unknown Gobi QDL device */
-+
-+	/* Gobi 2000 devices */
-+	{USB_DEVICE(0x1410, 0xa010)},	/* Novatel Gobi 2000 QDL device */
-+	{USB_DEVICE(0x1410, 0xa011)},	/* Novatel Gobi 2000 QDL device */
-+	{USB_DEVICE(0x1410, 0xa012)},	/* Novatel Gobi 2000 QDL device */
-+	{USB_DEVICE(0x1410, 0xa013)},	/* Novatel Gobi 2000 QDL device */
-+	{USB_DEVICE(0x1410, 0xa014)},	/* Novatel Gobi 2000 QDL device */
- 	{USB_DEVICE(0x413c, 0x8185)},	/* Dell Gobi 2000 QDL device (N0218, VU936) */
- 	{USB_DEVICE(0x413c, 0x8186)},	/* Dell Gobi 2000 Modem device (N0218, VU936) */
- 	{USB_DEVICE(0x05c6, 0x9208)},	/* Generic Gobi 2000 QDL device */
-@@ -92,6 +97,8 @@ static const struct usb_device_id id_table[] = {
- 	{USB_DEVICE(0x05c6, 0x9204)},	/* Gobi 2000 QDL device */
- 	{USB_DEVICE(0x05c6, 0x9205)},	/* Gobi 2000 Modem device */
- 
-+	/* Gobi 3000 devices */
-+	{USB_DEVICE(0x03f0, 0x371d)},	/* HP un2430 Gobi 3000 QDL */
- 	{USB_DEVICE(0x05c6, 0x920c)},	/* Gobi 3000 QDL */
- 	{USB_DEVICE(0x05c6, 0x920d)},	/* Gobi 3000 Composite */
- 	{USB_DEVICE(0x1410, 0xa020)},   /* Novatel Gobi 3000 QDL */
-@@ -122,8 +129,10 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
- 	int retval = -ENODEV;
- 	__u8 nintf;
- 	__u8 ifnum;
-+	bool is_gobi1k = id->driver_info ? true : false;
- 
- 	dbg("%s", __func__);
-+	dbg("Is Gobi 1000 = %d", is_gobi1k);
- 
- 	nintf = serial->dev->actconfig->desc.bNumInterfaces;
- 	dbg("Num Interfaces = %d", nintf);
-@@ -171,15 +180,25 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
- 
- 	case 3:
- 	case 4:
--		/* Composite mode */
--		/* ifnum == 0 is a broadband network adapter */
--		if (ifnum == 1) {
--			/*
--			 * Diagnostics Monitor (serial line 9600 8N1)
--			 * Qualcomm DM protocol
--			 * use "libqcdm" (ModemManager) for communication
--			 */
--			dbg("Diagnostics Monitor found");
-+		/* Composite mode; don't bind to the QMI/net interface as that
-+		 * gets handled by other drivers.
-+		 */
-+
-+		/* Gobi 1K USB layout:
-+		 * 0: serial port (doesn't respond)
-+		 * 1: serial port (doesn't respond)
-+		 * 2: AT-capable modem port
-+		 * 3: QMI/net
-+		 *
-+		 * Gobi 2K+ USB layout:
-+		 * 0: QMI/net
-+		 * 1: DM/DIAG (use libqcdm from ModemManager for communication)
-+		 * 2: AT-capable modem port
-+		 * 3: NMEA
-+		 */
-+
-+		if (ifnum == 1 && !is_gobi1k) {
-+			dbg("Gobi 2K+ DM/DIAG interface found");
- 			retval = usb_set_interface(serial->dev, ifnum, 0);
- 			if (retval < 0) {
- 				dev_err(&serial->dev->dev,
-@@ -198,13 +217,13 @@ static int qcprobe(struct usb_serial *serial, const struct usb_device_id *id)
- 				retval = -ENODEV;
- 				kfree(data);
- 			}
--		} else if (ifnum==3) {
-+		} else if (ifnum==3 && !is_gobi1k) {
- 			/*
- 			 * NMEA (serial line 9600 8N1)
- 			 * # echo "\$GPS_START" > /dev/ttyUSBx
- 			 * # echo "\$GPS_STOP"  > /dev/ttyUSBx
- 			 */
--			dbg("NMEA GPS interface found");
-+			dbg("Gobi 2K+ NMEA GPS interface found");
- 			retval = usb_set_interface(serial->dev, ifnum, 0);
- 			if (retval < 0) {
- 				dev_err(&serial->dev->dev,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0032-usb-serial-Add-support-for-the-Sealevel-SeaLINK-8-20.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0032-usb-serial-Add-support-for-the-Sealevel-SeaLINK-8-20.patch
deleted file mode 100644
index f1e4d7f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0032-usb-serial-Add-support-for-the-Sealevel-SeaLINK-8-20.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 94b027170f277f8d39aa3e6b2fe0ec2d01ad90f9 Mon Sep 17 00:00:00 2001
-From: Scott Dial <scott.dial at scientiallc.com>
-Date: Fri, 24 Feb 2012 19:04:09 -0500
-Subject: [PATCH 032/147] usb-serial: Add support for the Sealevel SeaLINK+8
- 2038-ROHS device
-
-commit 6d161b99f875269ad4ffa44375e1e54bca6fd02e upstream.
-
-This patch adds new device IDs to the ftdi_sio module to support
-the new Sealevel SeaLINK+8 2038-ROHS device.
-
-Signed-off-by: Scott Dial <scott.dial at scientiallc.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    4 ++++
- drivers/usb/serial/ftdi_sio_ids.h |    4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 3f3ccf6..f2c9ef7 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -537,6 +537,10 @@ static struct usb_device_id id_table_combined [] = {
- 	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_6_PID) },
- 	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_7_PID) },
- 	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803_8_PID) },
-+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_1_PID) },
-+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_2_PID) },
-+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_3_PID) },
-+	{ USB_DEVICE(SEALEVEL_VID, SEALEVEL_2803R_4_PID) },
- 	{ USB_DEVICE(IDTECH_VID, IDTECH_IDT1221U_PID) },
- 	{ USB_DEVICE(OCT_VID, OCT_US101_PID) },
- 	{ USB_DEVICE(OCT_VID, OCT_DK201_PID) },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index abf6bbc..c6dd18e 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -689,6 +689,10 @@
- #define SEALEVEL_2803_6_PID	0X2863	/* SeaLINK+8 (2803) Port 6 */
- #define SEALEVEL_2803_7_PID	0X2873	/* SeaLINK+8 (2803) Port 7 */
- #define SEALEVEL_2803_8_PID	0X2883	/* SeaLINK+8 (2803) Port 8 */
-+#define SEALEVEL_2803R_1_PID	0Xa02a	/* SeaLINK+8 (2803-ROHS) Port 1+2 */
-+#define SEALEVEL_2803R_2_PID	0Xa02b	/* SeaLINK+8 (2803-ROHS) Port 3+4 */
-+#define SEALEVEL_2803R_3_PID	0Xa02c	/* SeaLINK+8 (2803-ROHS) Port 5+6 */
-+#define SEALEVEL_2803R_4_PID	0Xa02d	/* SeaLINK+8 (2803-ROHS) Port 7+8 */
- 
- /*
-  * JETI SPECTROMETER SPECBOS 1201
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0033-usb-cp210x-Update-to-support-CP2105-and-multiple-int.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0033-usb-cp210x-Update-to-support-CP2105-and-multiple-int.patch
deleted file mode 100644
index 4d50b8d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0033-usb-cp210x-Update-to-support-CP2105-and-multiple-int.patch
+++ /dev/null
@@ -1,155 +0,0 @@
-From 4d2e98ccb5f7c69868760e889389c5ba01a89bf5 Mon Sep 17 00:00:00 2001
-From: Preston Fick <preston.fick at silabs.com>
-Date: Fri, 24 Feb 2012 13:42:39 -0600
-Subject: [PATCH 033/147] usb: cp210x: Update to support CP2105 and multiple
- interface devices
-
-commit a5360a53a7ccad5ed9ccef210b94fef13c6e5529 upstream.
-
-This patch updates the cp210x driver to support CP210x multiple
-interface devices devices from Silicon Labs. The existing driver
-always sends control requests to interface 0, which is hardcoded in
-the usb_control_msg function calls. This only allows for single
-interface devices to be used, and causes a bug when using ports on an
-interface other than 0 in the multiple interface devices.
-
-Here are the changes included in this patch:
-- Updated the device list to contain the Silicon Labs factory default
-  VID/PID for multiple interface CP210x devices
-- Created a cp210x_port_private struct created for each port on
-  startup, this struct holds the interface number
-- Added a cp210x_release function to clean up the cp210x_port_private
-  memory created on startup
-- Modified usb_get_config and usb_set_config to get a pointer to the
-  cp210x_port_private struct, and use the interface number there in the
-  usb_control_message wIndex param
-
-Signed-off-by: Preston Fick <preston.fick at silabs.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |   44 ++++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 41 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 33d25d4..4c12404 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -49,6 +49,7 @@ static int cp210x_tiocmset_port(struct usb_serial_port *port,
- 		unsigned int, unsigned int);
- static void cp210x_break_ctl(struct tty_struct *, int);
- static int cp210x_startup(struct usb_serial *);
-+static void cp210x_release(struct usb_serial *);
- static void cp210x_dtr_rts(struct usb_serial_port *p, int on);
- 
- static int debug;
-@@ -121,6 +122,8 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x10C4, 0x8665) }, /* AC-Services OBD-IF */
- 	{ USB_DEVICE(0x10C4, 0xEA60) }, /* Silicon Labs factory default */
- 	{ USB_DEVICE(0x10C4, 0xEA61) }, /* Silicon Labs factory default */
-+	{ USB_DEVICE(0x10C4, 0xEA70) }, /* Silicon Labs factory default */
-+	{ USB_DEVICE(0x10C4, 0xEA80) }, /* Silicon Labs factory default */
- 	{ USB_DEVICE(0x10C4, 0xEA71) }, /* Infinity GPS-MIC-1 Radio Monophone */
- 	{ USB_DEVICE(0x10C4, 0xF001) }, /* Elan Digital Systems USBscope50 */
- 	{ USB_DEVICE(0x10C4, 0xF002) }, /* Elan Digital Systems USBwave12 */
-@@ -149,6 +152,10 @@ static const struct usb_device_id id_table[] = {
- 
- MODULE_DEVICE_TABLE(usb, id_table);
- 
-+struct cp210x_port_private {
-+	__u8			bInterfaceNumber;
-+};
-+
- static struct usb_driver cp210x_driver = {
- 	.name		= "cp210x",
- 	.probe		= usb_serial_probe,
-@@ -174,6 +181,7 @@ static struct usb_serial_driver cp210x_device = {
- 	.tiocmget 		= cp210x_tiocmget,
- 	.tiocmset		= cp210x_tiocmset,
- 	.attach			= cp210x_startup,
-+	.release		= cp210x_release,
- 	.dtr_rts		= cp210x_dtr_rts
- };
- 
-@@ -261,6 +269,7 @@ static int cp210x_get_config(struct usb_serial_port *port, u8 request,
- 		unsigned int *data, int size)
- {
- 	struct usb_serial *serial = port->serial;
-+	struct cp210x_port_private *port_priv = usb_get_serial_port_data(port);
- 	__le32 *buf;
- 	int result, i, length;
- 
-@@ -276,7 +285,7 @@ static int cp210x_get_config(struct usb_serial_port *port, u8 request,
- 	/* Issue the request, attempting to read 'size' bytes */
- 	result = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
- 				request, REQTYPE_DEVICE_TO_HOST, 0x0000,
--				0, buf, size, 300);
-+				port_priv->bInterfaceNumber, buf, size, 300);
- 
- 	/* Convert data into an array of integers */
- 	for (i = 0; i < length; i++)
-@@ -304,6 +313,7 @@ static int cp210x_set_config(struct usb_serial_port *port, u8 request,
- 		unsigned int *data, int size)
- {
- 	struct usb_serial *serial = port->serial;
-+	struct cp210x_port_private *port_priv = usb_get_serial_port_data(port);
- 	__le32 *buf;
- 	int result, i, length;
- 
-@@ -325,12 +335,12 @@ static int cp210x_set_config(struct usb_serial_port *port, u8 request,
- 		result = usb_control_msg(serial->dev,
- 				usb_sndctrlpipe(serial->dev, 0),
- 				request, REQTYPE_HOST_TO_DEVICE, 0x0000,
--				0, buf, size, 300);
-+				port_priv->bInterfaceNumber, buf, size, 300);
- 	} else {
- 		result = usb_control_msg(serial->dev,
- 				usb_sndctrlpipe(serial->dev, 0),
- 				request, REQTYPE_HOST_TO_DEVICE, data[0],
--				0, NULL, 0, 300);
-+				port_priv->bInterfaceNumber, NULL, 0, 300);
- 	}
- 
- 	kfree(buf);
-@@ -830,11 +840,39 @@ static void cp210x_break_ctl (struct tty_struct *tty, int break_state)
- 
- static int cp210x_startup(struct usb_serial *serial)
- {
-+	struct cp210x_port_private *port_priv;
-+	int i;
-+
- 	/* cp210x buffers behave strangely unless device is reset */
- 	usb_reset_device(serial->dev);
-+
-+	for (i = 0; i < serial->num_ports; i++) {
-+		port_priv = kzalloc(sizeof(*port_priv), GFP_KERNEL);
-+		if (!port_priv)
-+			return -ENOMEM;
-+
-+		memset(port_priv, 0x00, sizeof(*port_priv));
-+		port_priv->bInterfaceNumber =
-+		    serial->interface->cur_altsetting->desc.bInterfaceNumber;
-+
-+		usb_set_serial_port_data(serial->port[i], port_priv);
-+	}
-+
- 	return 0;
- }
- 
-+static void cp210x_release(struct usb_serial *serial)
-+{
-+	struct cp210x_port_private *port_priv;
-+	int i;
-+
-+	for (i = 0; i < serial->num_ports; i++) {
-+		port_priv = usb_get_serial_port_data(serial->port[i]);
-+		kfree(port_priv);
-+		usb_set_serial_port_data(serial->port[i], NULL);
-+	}
-+}
-+
- static int __init cp210x_init(void)
- {
- 	int retval;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0034-USB-serial-mos7840-Fixed-MCS7820-device-attach-probl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0034-USB-serial-mos7840-Fixed-MCS7820-device-attach-probl.patch
deleted file mode 100644
index 6c878a9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0034-USB-serial-mos7840-Fixed-MCS7820-device-attach-probl.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 7121306391cac4f482edc239e2c8b0f8ac310f92 Mon Sep 17 00:00:00 2001
-From: Donald Lee <donald at asix.com.tw>
-Date: Wed, 14 Mar 2012 15:26:33 +0800
-Subject: [PATCH 034/147] USB: serial: mos7840: Fixed MCS7820 device attach
- problem
-
-commit 093ea2d3a766cb8a4c4de57efec6c0a127a58792 upstream.
-
-A MCS7820 device supports two serial ports and a MCS7840 device supports
-four serial ports. Both devices use the same driver, but the attach function
-in driver was unable to correctly handle the port numbers for MCS7820
-device. This problem has been fixed in this patch and this fix has been
-verified on x86 Linux kernel 3.2.9 with both MCS7820 and MCS7840 devices.
-
-Signed-off-by: Donald Lee <donald at asix.com.tw>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/mos7840.c |   83 +++++++++++++++++++++++++++++-------------
- 1 file changed, 57 insertions(+), 26 deletions(-)
-
-diff --git a/drivers/usb/serial/mos7840.c b/drivers/usb/serial/mos7840.c
-index c72abd5..5c7d654 100644
---- a/drivers/usb/serial/mos7840.c
-+++ b/drivers/usb/serial/mos7840.c
-@@ -174,6 +174,7 @@
- 
- #define CLK_MULTI_REGISTER         ((__u16)(0x02))
- #define CLK_START_VALUE_REGISTER   ((__u16)(0x03))
-+#define GPIO_REGISTER              ((__u16)(0x07))
- 
- #define SERIAL_LCR_DLAB            ((__u16)(0x0080))
- 
-@@ -1103,14 +1104,25 @@ static int mos7840_open(struct tty_struct *tty, struct usb_serial_port *port)
- 	mos7840_port->read_urb = port->read_urb;
- 
- 	/* set up our bulk in urb */
--
--	usb_fill_bulk_urb(mos7840_port->read_urb,
--			  serial->dev,
--			  usb_rcvbulkpipe(serial->dev,
--					  port->bulk_in_endpointAddress),
--			  port->bulk_in_buffer,
--			  mos7840_port->read_urb->transfer_buffer_length,
--			  mos7840_bulk_in_callback, mos7840_port);
-+	if ((serial->num_ports == 2)
-+		&& ((((__u16)port->number -
-+			(__u16)(port->serial->minor)) % 2) != 0)) {
-+		usb_fill_bulk_urb(mos7840_port->read_urb,
-+			serial->dev,
-+			usb_rcvbulkpipe(serial->dev,
-+				(port->bulk_in_endpointAddress) + 2),
-+			port->bulk_in_buffer,
-+			mos7840_port->read_urb->transfer_buffer_length,
-+			mos7840_bulk_in_callback, mos7840_port);
-+	} else {
-+		usb_fill_bulk_urb(mos7840_port->read_urb,
-+			serial->dev,
-+			usb_rcvbulkpipe(serial->dev,
-+				port->bulk_in_endpointAddress),
-+			port->bulk_in_buffer,
-+			mos7840_port->read_urb->transfer_buffer_length,
-+			mos7840_bulk_in_callback, mos7840_port);
-+	}
- 
- 	dbg("mos7840_open: bulkin endpoint is %d",
- 	    port->bulk_in_endpointAddress);
-@@ -1521,13 +1533,25 @@ static int mos7840_write(struct tty_struct *tty, struct usb_serial_port *port,
- 	memcpy(urb->transfer_buffer, current_position, transfer_size);
- 
- 	/* fill urb with data and submit  */
--	usb_fill_bulk_urb(urb,
--			  serial->dev,
--			  usb_sndbulkpipe(serial->dev,
--					  port->bulk_out_endpointAddress),
--			  urb->transfer_buffer,
--			  transfer_size,
--			  mos7840_bulk_out_data_callback, mos7840_port);
-+	if ((serial->num_ports == 2)
-+		&& ((((__u16)port->number -
-+			(__u16)(port->serial->minor)) % 2) != 0)) {
-+		usb_fill_bulk_urb(urb,
-+			serial->dev,
-+			usb_sndbulkpipe(serial->dev,
-+				(port->bulk_out_endpointAddress) + 2),
-+			urb->transfer_buffer,
-+			transfer_size,
-+			mos7840_bulk_out_data_callback, mos7840_port);
-+	} else {
-+		usb_fill_bulk_urb(urb,
-+			serial->dev,
-+			usb_sndbulkpipe(serial->dev,
-+				port->bulk_out_endpointAddress),
-+			urb->transfer_buffer,
-+			transfer_size,
-+			mos7840_bulk_out_data_callback, mos7840_port);
-+	}
- 
- 	data1 = urb->transfer_buffer;
- 	dbg("bulkout endpoint is %d", port->bulk_out_endpointAddress);
-@@ -1840,7 +1864,7 @@ static int mos7840_send_cmd_write_baud_rate(struct moschip_port *mos7840_port,
- 
- 	} else {
- #ifdef HW_flow_control
--		/ *setting h/w flow control bit to 0 */
-+		/* setting h/w flow control bit to 0 */
- 		Data = 0xb;
- 		mos7840_port->shadowMCR = Data;
- 		status = mos7840_set_uart_reg(port, MODEM_CONTROL_REGISTER,
-@@ -2309,19 +2333,26 @@ static int mos7840_ioctl(struct tty_struct *tty,
- 
- static int mos7840_calc_num_ports(struct usb_serial *serial)
- {
--	int mos7840_num_ports = 0;
--
--	dbg("numberofendpoints: cur %d, alt %d",
--	    (int)serial->interface->cur_altsetting->desc.bNumEndpoints,
--	    (int)serial->interface->altsetting->desc.bNumEndpoints);
--	if (serial->interface->cur_altsetting->desc.bNumEndpoints == 5) {
--		mos7840_num_ports = serial->num_ports = 2;
--	} else if (serial->interface->cur_altsetting->desc.bNumEndpoints == 9) {
-+	__u16 Data = 0x00;
-+	int ret = 0;
-+	int mos7840_num_ports;
-+
-+	ret = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
-+		MCS_RDREQ, MCS_RD_RTYPE, 0, GPIO_REGISTER, &Data,
-+		VENDOR_READ_LENGTH, MOS_WDR_TIMEOUT);
-+
-+	if ((Data & 0x01) == 0) {
-+		mos7840_num_ports = 2;
-+		serial->num_bulk_in = 2;
-+		serial->num_bulk_out = 2;
-+		serial->num_ports = 2;
-+	} else {
-+		mos7840_num_ports = 4;
- 		serial->num_bulk_in = 4;
- 		serial->num_bulk_out = 4;
--		mos7840_num_ports = serial->num_ports = 4;
-+		serial->num_ports = 4;
- 	}
--	dbg ("mos7840_num_ports = %d", mos7840_num_ports);
-+
- 	return mos7840_num_ports;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0035-rt2x00-Add-support-for-D-Link-DWA-127-to-rt2800usb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0035-rt2x00-Add-support-for-D-Link-DWA-127-to-rt2800usb.patch
deleted file mode 100644
index 2805c1f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0035-rt2x00-Add-support-for-D-Link-DWA-127-to-rt2800usb.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From bdab95dd61b9879afe660d0f5d97bf5b6ab0533e Mon Sep 17 00:00:00 2001
-From: Gertjan van Wingerde <gwingerde at gmail.com>
-Date: Sat, 11 Feb 2012 21:58:09 +0100
-Subject: [PATCH 035/147] rt2x00: Add support for D-Link DWA-127 to rt2800usb.
-
-commit d42a179b941a9e4cc6cf41d0f3cbadd75fc48a89 upstream.
-
-This is an RT3070 based device.
-
-Reported-by: Mikhail Kryshen <mikhail at kryshen.net>
-Signed-off-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Acked-by: Ivo van Doorn <IvDoorn at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index 3265b34..cb71e88 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -935,6 +935,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x07d1, 0x3c0f) },
- 	{ USB_DEVICE(0x07d1, 0x3c11) },
- 	{ USB_DEVICE(0x07d1, 0x3c16) },
-+	{ USB_DEVICE(0x2001, 0x3c1b) },
- 	/* Draytek */
- 	{ USB_DEVICE(0x07fa, 0x7712) },
- 	/* DVICO */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0036-rtlwifi-rtl8192c_common-rtl8192de-Check-for-allocati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0036-rtlwifi-rtl8192c_common-rtl8192de-Check-for-allocati.patch
deleted file mode 100644
index 11a4531..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0036-rtlwifi-rtl8192c_common-rtl8192de-Check-for-allocati.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From a28aa8ba24d7303a4d8677ebf8b159014f19dca0 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sat, 7 Jan 2012 20:46:40 -0600
-Subject: [PATCH 036/147] rtlwifi: rtl8192c_common: rtl8192de: Check for
- allocation failures
-
-commit 76a92be537f1c8c259e393632301446257ca3ea9 upstream.
-
-In https://bugzilla.redhat.com/show_bug.cgi?id=771656, a kernel bug was
-triggered due to a failed skb allocation that was not checked. This event
-lead to an audit of all memory allocations in the complete rtlwifi family
-of drivers. This patch fixes the rest.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/pci.c                |    2 ++
- drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c |    2 ++
- drivers/net/wireless/rtlwifi/rtl8192de/fw.c       |   14 +++++++++-----
- drivers/net/wireless/rtlwifi/usb.c                |   12 +++++++-----
- 4 files changed, 20 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
-index eb61061..19bb550 100644
---- a/drivers/net/wireless/rtlwifi/pci.c
-+++ b/drivers/net/wireless/rtlwifi/pci.c
-@@ -657,6 +657,8 @@ static void _rtl_receive_one(struct ieee80211_hw *hw, struct sk_buff *skb,
- 		return;
- 
- 	uskb = dev_alloc_skb(skb->len + 128);
-+	if (!uskb)
-+		return;		/* exit if allocation failed */
- 	memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status, sizeof(rx_status));
- 	pdata = (u8 *)skb_put(uskb, skb->len);
- 	memcpy(pdata, skb->data, skb->len);
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
-index 950c65a..13fc0f9 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192c/fw_common.c
-@@ -752,6 +752,8 @@ void rtl92c_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
- 
- 
- 	skb = dev_alloc_skb(totalpacketlen);
-+	if (!skb)
-+		return;
- 	memcpy((u8 *) skb_put(skb, totalpacketlen),
- 	       &reserved_page_packet, totalpacketlen);
- 
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/fw.c b/drivers/net/wireless/rtlwifi/rtl8192de/fw.c
-index 82f060b..c44757f 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192de/fw.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192de/fw.c
-@@ -763,12 +763,16 @@ void rtl92d_set_fw_rsvdpagepkt(struct ieee80211_hw *hw, bool dl_finished)
- 		      "rtl92d_set_fw_rsvdpagepkt(): HW_VAR_SET_TX_CMD: ALL\n",
- 		      u1RsvdPageLoc, 3);
- 	skb = dev_alloc_skb(totalpacketlen);
--	memcpy((u8 *) skb_put(skb, totalpacketlen), &reserved_page_packet,
--		totalpacketlen);
--	rtstatus = _rtl92d_cmd_send_packet(hw, skb);
-+	if (!skb) {
-+		dlok = false;
-+	} else {
-+		memcpy((u8 *) skb_put(skb, totalpacketlen),
-+			&reserved_page_packet, totalpacketlen);
-+		rtstatus = _rtl92d_cmd_send_packet(hw, skb);
- 
--	if (rtstatus)
--		dlok = true;
-+		if (rtstatus)
-+			dlok = true;
-+	}
- 	if (dlok) {
- 		RT_TRACE(rtlpriv, COMP_POWER, DBG_LOUD,
- 			("Set RSVD page location to Fw.\n"));
-diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
-index 54cb8a6..2b7bcc8 100644
---- a/drivers/net/wireless/rtlwifi/usb.c
-+++ b/drivers/net/wireless/rtlwifi/usb.c
-@@ -481,12 +481,14 @@ static void _rtl_usb_rx_process_noagg(struct ieee80211_hw *hw,
- 			u8 *pdata;
- 
- 			uskb = dev_alloc_skb(skb->len + 128);
--			memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
--			       sizeof(rx_status));
--			pdata = (u8 *)skb_put(uskb, skb->len);
--			memcpy(pdata, skb->data, skb->len);
-+			if (uskb) {	/* drop packet on allocation failure */
-+				memcpy(IEEE80211_SKB_RXCB(uskb), &rx_status,
-+				       sizeof(rx_status));
-+				pdata = (u8 *)skb_put(uskb, skb->len);
-+				memcpy(pdata, skb->data, skb->len);
-+				ieee80211_rx_irqsafe(hw, uskb);
-+			}
- 			dev_kfree_skb_any(skb);
--			ieee80211_rx_irqsafe(hw, uskb);
- 		} else {
- 			dev_kfree_skb_any(skb);
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0037-rtlwifi-Handle-previous-allocation-failures-when-fre.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0037-rtlwifi-Handle-previous-allocation-failures-when-fre.patch
deleted file mode 100644
index c30c85d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0037-rtlwifi-Handle-previous-allocation-failures-when-fre.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 80ee9108bee3d22e90191a67036133de09faf7cc Mon Sep 17 00:00:00 2001
-From: Simon Graham <simon.graham at virtualcomputer.com>
-Date: Tue, 7 Feb 2012 18:07:38 -0600
-Subject: [PATCH 037/147] rtlwifi: Handle previous allocation failures when
- freeing device memory
-
-commit 7f66c2f93e5779625c10d262c84537427a2673ca upstream.
-
-Handle previous allocation failures when freeing device memory
-
-Signed-off-by: Simon Graham <simon.graham at virtualcomputer.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/pci.c |   16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
-index 19bb550..9afcad3 100644
---- a/drivers/net/wireless/rtlwifi/pci.c
-+++ b/drivers/net/wireless/rtlwifi/pci.c
-@@ -1155,10 +1155,12 @@ static void _rtl_pci_free_tx_ring(struct ieee80211_hw *hw,
- 		ring->idx = (ring->idx + 1) % ring->entries;
- 	}
- 
--	pci_free_consistent(rtlpci->pdev,
--			    sizeof(*ring->desc) * ring->entries,
--			    ring->desc, ring->dma);
--	ring->desc = NULL;
-+	if (ring->desc) {
-+		pci_free_consistent(rtlpci->pdev,
-+				    sizeof(*ring->desc) * ring->entries,
-+				    ring->desc, ring->dma);
-+		ring->desc = NULL;
-+	}
- }
- 
- static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci)
-@@ -1182,12 +1184,14 @@ static void _rtl_pci_free_rx_ring(struct rtl_pci *rtlpci)
- 			kfree_skb(skb);
- 		}
- 
--		pci_free_consistent(rtlpci->pdev,
-+		if (rtlpci->rx_ring[rx_queue_idx].desc) {
-+			pci_free_consistent(rtlpci->pdev,
- 				    sizeof(*rtlpci->rx_ring[rx_queue_idx].
- 					   desc) * rtlpci->rxringcount,
- 				    rtlpci->rx_ring[rx_queue_idx].desc,
- 				    rtlpci->rx_ring[rx_queue_idx].dma);
--		rtlpci->rx_ring[rx_queue_idx].desc = NULL;
-+			rtlpci->rx_ring[rx_queue_idx].desc = NULL;
-+		}
- 	}
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0038-rtlwifi-rtl8192c-Prevent-sleeping-from-invalid-conte.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0038-rtlwifi-rtl8192c-Prevent-sleeping-from-invalid-conte.patch
deleted file mode 100644
index cec2e0f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0038-rtlwifi-rtl8192c-Prevent-sleeping-from-invalid-conte.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 9d3a0177f72e20f06c844ede994dc3541bdae01b Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Fri, 2 Mar 2012 15:23:36 -0600
-Subject: [PATCH 038/147] rtlwifi: rtl8192c: Prevent sleeping from invalid
- context in rtl8192cu
-
-commit ebecdcc12fed5d3c81853dea61a0a78a5aefab52 upstream.
-
-When driver rtl8192cu is used with the debug level set to 3 or greater,
-the result is "sleeping function called from invalid context" due to
-an rcu_read_lock() call in the DM refresh routine in driver rtl8192c.
-This lock is not necessary as the USB driver does not use the struct
-being protected, thus the lock is set only when a PCI interface is
-active.
-
-This bug is reported in https://bugzilla.kernel.org/show_bug.cgi?id=42775.
-
-Reported-by: Ronald Wahl <ronald.wahl at raritan.com>
-Tested-by: Ronald Wahl <ronald.wahl at raritan.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Cc: Ronald Wahl <ronald.wahl at raritan.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |   11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
-index 72a98ca..4de6b78 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
-@@ -1219,13 +1219,18 @@ static void rtl92c_dm_refresh_rate_adaptive_mask(struct ieee80211_hw *hw)
- 				 ("PreState = %d, CurState = %d\n",
- 				  p_ra->pre_ratr_state, p_ra->ratr_state));
- 
--			rcu_read_lock();
--			sta = ieee80211_find_sta(mac->vif, mac->bssid);
-+			/* Only the PCI card uses sta in the update rate table
-+			 * callback routine */
-+			if (rtlhal->interface == INTF_PCI) {
-+				rcu_read_lock();
-+				sta = ieee80211_find_sta(mac->vif, mac->bssid);
-+			}
- 			rtlpriv->cfg->ops->update_rate_tbl(hw, sta,
- 					p_ra->ratr_state);
- 
- 			p_ra->pre_ratr_state = p_ra->ratr_state;
--			rcu_read_unlock();
-+			if (rtlhal->interface == INTF_PCI)
-+				rcu_read_unlock();
- 		}
- 	}
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0039-rtlwifi-rtl8192ce-Fix-loss-of-receive-performance.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0039-rtlwifi-rtl8192ce-Fix-loss-of-receive-performance.patch
deleted file mode 100644
index 1df8ca9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0039-rtlwifi-rtl8192ce-Fix-loss-of-receive-performance.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 83d83582d1097f305c41838a2ca01dde71d608a1 Mon Sep 17 00:00:00 2001
-From: Jingjun Wu <jingjun_wu at realsil.com.cn>
-Date: Fri, 2 Mar 2012 20:52:14 -0600
-Subject: [PATCH 039/147] rtlwifi: rtl8192ce: Fix loss of receive performance
-
-commit a9b89e2567c743483e6354f64d7a7e3a8c101e9e upstream.
-
-Driver rtl8192ce when used with the RTL8188CE device would start at about
-20 Mbps on a 54 Mbps connection, but quickly drop to 1 Mbps. One of the
-symptoms is that the AP would need to retransmit each packet 4 of 5 times
-before the driver would acknowledge it. Recovery is possible only by
-unloading and reloading the driver. This problem was reported at
-https://bugzilla.redhat.com/show_bug.cgi?id=770207.
-
-The problem is due to a missing update of the gain setting.
-
-Signed-off-by: Jingjun Wu <jingjun_wu at realsil.com.cn>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
-index 4de6b78..a004ad7 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192c/dm_common.c
-@@ -524,6 +524,10 @@ void rtl92c_dm_write_dig(struct ieee80211_hw *hw)
- 		  dm_digtable.cur_igvalue, dm_digtable.pre_igvalue,
- 		  dm_digtable.backoff_val));
- 
-+	dm_digtable.cur_igvalue += 2;
-+	if (dm_digtable.cur_igvalue > 0x3f)
-+		dm_digtable.cur_igvalue = 0x3f;
-+
- 	if (dm_digtable.pre_igvalue != dm_digtable.cur_igvalue) {
- 		rtl_set_bbreg(hw, ROFDM0_XAAGCCORE1, 0x7f,
- 			      dm_digtable.cur_igvalue);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0040-iwlwifi-always-monitor-for-stuck-queues.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0040-iwlwifi-always-monitor-for-stuck-queues.patch
deleted file mode 100644
index 2e4e29f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0040-iwlwifi-always-monitor-for-stuck-queues.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 3d581df915fb46fe7929371df85da52ec6d65d69 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Sun, 4 Mar 2012 08:50:46 -0800
-Subject: [PATCH 040/147] iwlwifi: always monitor for stuck queues
-
-commit 342bbf3fee2fa9a18147e74b2e3c4229a4564912 upstream.
-
-If we only monitor while associated, the following
-can happen:
- - we're associated, and the queue stuck check
-   runs, setting the queue "touch" time to X
- - we disassociate, stopping the monitoring,
-   which leaves the time set to X
- - almost 2s later, we associate, and enqueue
-   a frame
- - before the frame is transmitted, we monitor
-   for stuck queues, and find the time set to
-   X, although it is now later than X + 2000ms,
-   so we decide that the queue is stuck and
-   erroneously restart the device
-
-It happens more with P2P because there we can
-go between associated/unassociated frequently.
-
-Reported-by: Ben Cahill <ben.m.cahill at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/iwlwifi/iwl-core.c |   18 ++++--------------
- 1 file changed, 4 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
-index fcf5416..3d75d4c 100644
---- a/drivers/net/wireless/iwlwifi/iwl-core.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
-@@ -1787,20 +1787,10 @@ void iwl_bg_watchdog(unsigned long data)
- 	if (timeout == 0)
- 		return;
- 
--	/* monitor and check for stuck cmd queue */
--	if (iwl_check_stuck_queue(priv, priv->shrd->cmd_queue))
--		return;
--
--	/* monitor and check for other stuck queues */
--	if (iwl_is_any_associated(priv)) {
--		for (cnt = 0; cnt < hw_params(priv).max_txq_num; cnt++) {
--			/* skip as we already checked the command queue */
--			if (cnt == priv->shrd->cmd_queue)
--				continue;
--			if (iwl_check_stuck_queue(priv, cnt))
--				return;
--		}
--	}
-+	/* monitor and check for stuck queues */
-+	for (cnt = 0; cnt < hw_params(priv).max_txq_num; cnt++)
-+		if (iwl_check_stuck_queue(priv, cnt))
-+			return;
- 
- 	mod_timer(&priv->watchdog, jiffies +
- 		  msecs_to_jiffies(IWL_WD_TICK(timeout)));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0041-math-Introduce-div64_long.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0041-math-Introduce-div64_long.patch
deleted file mode 100644
index e46ab87..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0041-math-Introduce-div64_long.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 0041e471301214d86b8d15b4da69899f47161df6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Thu, 15 Mar 2012 12:36:13 -0400
-Subject: [PATCH 041/147] math: Introduce div64_long
-
-commit f910381a55cdaa097030291f272f6e6e4380c39a upstream.
-
-Add a div64_long macro which is used to devide a 64bit number by a long (which
-can be 4 bytes on 32bit systems and 8 bytes on 64bit systems).
-
-Suggested-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Cc: johnstul at us.ibm.com
-Link: http://lkml.kernel.org/r/1331829374-31543-1-git-send-email-levinsasha928@gmail.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/math64.h |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/include/linux/math64.h b/include/linux/math64.h
-index 23fcdfc..b8ba855 100644
---- a/include/linux/math64.h
-+++ b/include/linux/math64.h
-@@ -6,6 +6,8 @@
- 
- #if BITS_PER_LONG == 64
- 
-+#define div64_long(x,y) div64_s64((x),(y))
-+
- /**
-  * div_u64_rem - unsigned 64bit divide with 32bit divisor with remainder
-  *
-@@ -45,6 +47,8 @@ static inline s64 div64_s64(s64 dividend, s64 divisor)
- 
- #elif BITS_PER_LONG == 32
- 
-+#define div64_long(x,y) div_s64((x),(y))
-+
- #ifndef div_u64_rem
- static inline u64 div_u64_rem(u64 dividend, u32 divisor, u32 *remainder)
- {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0042-ntp-Fix-integer-overflow-when-setting-time.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0042-ntp-Fix-integer-overflow-when-setting-time.patch
deleted file mode 100644
index f8e3d0d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0042-ntp-Fix-integer-overflow-when-setting-time.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From c763173b9ab87b7413e63a82be88987250677b89 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Thu, 15 Mar 2012 12:36:14 -0400
-Subject: [PATCH 042/147] ntp: Fix integer overflow when setting time
-
-commit a078c6d0e6288fad6d83fb6d5edd91ddb7b6ab33 upstream.
-
-'long secs' is passed as divisor to div_s64, which accepts a 32bit
-divisor. On 64bit machines that value is trimmed back from 8 bytes
-back to 4, causing a divide by zero when the number is bigger than
-(1 << 32) - 1 and all 32 lower bits are 0.
-
-Use div64_long() instead.
-
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Cc: johnstul at us.ibm.com
-Link: http://lkml.kernel.org/r/1331829374-31543-2-git-send-email-levinsasha928@gmail.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/time/ntp.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
-index f6117a4..4b85a7a 100644
---- a/kernel/time/ntp.c
-+++ b/kernel/time/ntp.c
-@@ -275,7 +275,7 @@ static inline s64 ntp_update_offset_fll(s64 offset64, long secs)
- 
- 	time_status |= STA_MODE;
- 
--	return div_s64(offset64 << (NTP_SCALE_SHIFT - SHIFT_FLL), secs);
-+	return div64_long(offset64 << (NTP_SCALE_SHIFT - SHIFT_FLL), secs);
- }
- 
- static void ntp_update_offset(long offset)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0043-uevent-send-events-in-correct-order-according-to-seq.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0043-uevent-send-events-in-correct-order-according-to-seq.patch
deleted file mode 100644
index 8105aca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0043-uevent-send-events-in-correct-order-according-to-seq.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 30890ccb8ef54dedb2569535dbb781fa2f10a119 Mon Sep 17 00:00:00 2001
-From: Andrew Vagin <avagin at openvz.org>
-Date: Wed, 7 Mar 2012 14:49:56 +0400
-Subject: [PATCH 043/147] uevent: send events in correct order according to
- seqnum (v3)
-
-commit 7b60a18da393ed70db043a777fd9e6d5363077c4 upstream.
-
-The queue handling in the udev daemon assumes that the events are
-ordered.
-
-Before this patch uevent_seqnum is incremented under sequence_lock,
-than an event is send uner uevent_sock_mutex. I want to say that code
-contained a window between incrementing seqnum and sending an event.
-
-This patch locks uevent_sock_mutex before incrementing uevent_seqnum.
-
-v2: delete sequence_lock, uevent_seqnum is protected by uevent_sock_mutex
-v3: unlock the mutex before the goto exit
-
-Thanks for Kay for the comments.
-
-Signed-off-by: Andrew Vagin <avagin at openvz.org>
-Tested-By: Kay Sievers <kay.sievers at vrfy.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- lib/kobject_uevent.c |   19 +++++++++----------
- 1 file changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/lib/kobject_uevent.c b/lib/kobject_uevent.c
-index ad72a03..6d40244 100644
---- a/lib/kobject_uevent.c
-+++ b/lib/kobject_uevent.c
-@@ -29,16 +29,17 @@
- 
- u64 uevent_seqnum;
- char uevent_helper[UEVENT_HELPER_PATH_LEN] = CONFIG_UEVENT_HELPER_PATH;
--static DEFINE_SPINLOCK(sequence_lock);
- #ifdef CONFIG_NET
- struct uevent_sock {
- 	struct list_head list;
- 	struct sock *sk;
- };
- static LIST_HEAD(uevent_sock_list);
--static DEFINE_MUTEX(uevent_sock_mutex);
- #endif
- 
-+/* This lock protects uevent_seqnum and uevent_sock_list */
-+static DEFINE_MUTEX(uevent_sock_mutex);
-+
- /* the strings here must match the enum in include/linux/kobject.h */
- static const char *kobject_actions[] = {
- 	[KOBJ_ADD] =		"add",
-@@ -136,7 +137,6 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
- 	struct kobject *top_kobj;
- 	struct kset *kset;
- 	const struct kset_uevent_ops *uevent_ops;
--	u64 seq;
- 	int i = 0;
- 	int retval = 0;
- #ifdef CONFIG_NET
-@@ -243,17 +243,16 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
- 	else if (action == KOBJ_REMOVE)
- 		kobj->state_remove_uevent_sent = 1;
- 
-+	mutex_lock(&uevent_sock_mutex);
- 	/* we will send an event, so request a new sequence number */
--	spin_lock(&sequence_lock);
--	seq = ++uevent_seqnum;
--	spin_unlock(&sequence_lock);
--	retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)seq);
--	if (retval)
-+	retval = add_uevent_var(env, "SEQNUM=%llu", (unsigned long long)++uevent_seqnum);
-+	if (retval) {
-+		mutex_unlock(&uevent_sock_mutex);
- 		goto exit;
-+	}
- 
- #if defined(CONFIG_NET)
- 	/* send netlink message */
--	mutex_lock(&uevent_sock_mutex);
- 	list_for_each_entry(ue_sk, &uevent_sock_list, list) {
- 		struct sock *uevent_sock = ue_sk->sk;
- 		struct sk_buff *skb;
-@@ -287,8 +286,8 @@ int kobject_uevent_env(struct kobject *kobj, enum kobject_action action,
- 		} else
- 			retval = -ENOMEM;
- 	}
--	mutex_unlock(&uevent_sock_mutex);
- #endif
-+	mutex_unlock(&uevent_sock_mutex);
- 
- 	/* call uevent_helper, usually only enabled during early boot */
- 	if (uevent_helper[0] && !kobj_usermode_filter(kobj)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0044-genirq-Fix-long-term-regression-in-genirq-irq_set_ir.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0044-genirq-Fix-long-term-regression-in-genirq-irq_set_ir.patch
deleted file mode 100644
index a19b4b0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0044-genirq-Fix-long-term-regression-in-genirq-irq_set_ir.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 30baeed7abf879cdb6abc168307abd194d0d2668 Mon Sep 17 00:00:00 2001
-From: Russell King <linux at arm.linux.org.uk>
-Date: Mon, 5 Mar 2012 15:07:25 -0800
-Subject: [PATCH 044/147] genirq: Fix long-term regression in genirq
- irq_set_irq_type() handling
-
-commit a09b659cd68c10ec6a30cb91ebd2c327fcd5bfe5 upstream.
-
-In 2008, commit 0c5d1eb77a8be ("genirq: record trigger type") modified the
-way set_irq_type() handles the 'no trigger' condition.  However, this has
-an adverse effect on PCMCIA support on Intel StrongARM and probably PXA
-platforms.
-
-PCMCIA has several status signals on the socket which can trigger
-interrupts; some of these status signals depend on the card's mode
-(whether it is configured in memory or IO mode).  For example, cards have
-a 'Ready/IRQ' signal: in memory mode, this provides an indication to
-PCMCIA that the card has finished its power up initialization.  In IO
-mode, it provides the device interrupt signal.  Other status signals
-switch between on-board battery status and loud speaker output.
-
-In classical PCMCIA implementations, where you have a specific socket
-controller, the controller provides a method to mask interrupts from the
-socket, and importantly ignore any state transitions on the pins which
-correspond with interrupts once masked.  This masking prevents unwanted
-events caused by the removal and application of socket power being
-forwarded.
-
-However, on platforms where there is no socket controller, the PCMCIA
-status and interrupt signals are routed to standard edge-triggered GPIOs.
-These GPIOs can be configured to interrupt on rising edge, falling edge,
-or never.  This is where the problems start.
-
-Edge triggered interrupts are required to record events while disabled via
-the usual methods of {free,request,disable,enable}_irq() to prevent
-problems with dropped interrupts (eg, the 8390 driver uses disable_irq()
-to defer the delivery of interrupts).  As a result, these interfaces can
-not be used to implement the desired behaviour.
-
-The side effect of this is that if the 'Ready/IRQ' GPIO is disabled via
-disable_irq() on suspend, and enabled via enable_irq() after resume, we
-will record the state transitions caused by powering events as valid
-interrupts, and foward them to the card driver, which may attempt to
-access a card which is not powered up.
-
-This leads delays resume while drivers spin in their interrupt handlers,
-and complaints from drivers before they realize what's happened.
-
-Moreover, in the case of the 'Ready/IRQ' signal, this is requested and
-freed by the card driver itself; the PCMCIA core has no idea whether the
-interrupt is requested, and, therefore, whether a call to disable_irq()
-would be valid.  (We tried this around 2.4.17 / 2.5.1 kernel era, and
-ended up throwing it out because of this problem.)
-
-Therefore, it was decided back in around 2002 to disable the edge
-triggering instead, resulting in all state transitions on the GPIO being
-ignored.  That's what we actually need the hardware to do.
-
-The commit above changes this behaviour; it explicitly prevents the 'no
-trigger' state being selected.
-
-The reason that request_irq() does not accept the 'no trigger' state is
-for compatibility with existing drivers which do not provide their desired
-triggering configuration.  The set_irq_type() function is 'new' and not
-used by non-trigger aware drivers.
-
-Therefore, revert this change, and restore previously working platforms
-back to their former state.
-
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Cc: linux at arm.linux.org.uk
-Cc: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/irq/chip.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
-index fb7db75..25784d6 100644
---- a/kernel/irq/chip.c
-+++ b/kernel/irq/chip.c
-@@ -61,8 +61,7 @@ int irq_set_irq_type(unsigned int irq, unsigned int type)
- 		return -EINVAL;
- 
- 	type &= IRQ_TYPE_SENSE_MASK;
--	if (type != IRQ_TYPE_NONE)
--		ret = __irq_set_trigger(desc, irq, type);
-+	ret = __irq_set_trigger(desc, irq, type);
- 	irq_put_desc_busunlock(desc, flags);
- 	return ret;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0045-genirq-Fix-incorrect-check-for-forced-IRQ-thread-han.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0045-genirq-Fix-incorrect-check-for-forced-IRQ-thread-han.patch
deleted file mode 100644
index 16059a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0045-genirq-Fix-incorrect-check-for-forced-IRQ-thread-han.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 8cc03040447868b0c8ca3f6ca027fdf45216f493 Mon Sep 17 00:00:00 2001
-From: Alexander Gordeev <agordeev at redhat.com>
-Date: Fri, 9 Mar 2012 14:59:13 +0100
-Subject: [PATCH 045/147] genirq: Fix incorrect check for forced IRQ thread
- handler
-
-commit 540b60e24f3f4781d80e47122f0c4486a03375b8 upstream.
-
-We do not want a bitwise AND between boolean operands
-
-Signed-off-by: Alexander Gordeev <agordeev at redhat.com>
-Cc: Oleg Nesterov <oleg at redhat.com>
-Link: http://lkml.kernel.org/r/20120309135912.GA2114@dhcp-26-207.brq.redhat.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/irq/manage.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index ae95cd2..7600092 100644
---- a/kernel/irq/manage.c
-+++ b/kernel/irq/manage.c
-@@ -773,7 +773,7 @@ static int irq_thread(void *data)
- 			struct irqaction *action);
- 	int wake;
- 
--	if (force_irqthreads & test_bit(IRQTF_FORCED_THREAD,
-+	if (force_irqthreads && test_bit(IRQTF_FORCED_THREAD,
- 					&action->thread_flags))
- 		handler_fn = irq_forced_thread_fn;
- 	else
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0046-rtc-Disable-the-alarm-in-the-hardware-v2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0046-rtc-Disable-the-alarm-in-the-hardware-v2.patch
deleted file mode 100644
index c7db9c6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0046-rtc-Disable-the-alarm-in-the-hardware-v2.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 7d3eb8bf92abead3bd005400d600f32ea4bf9d63 Mon Sep 17 00:00:00 2001
-From: Rabin Vincent <rabin.vincent at stericsson.com>
-Date: Tue, 22 Nov 2011 11:03:14 +0100
-Subject: [PATCH 046/147] rtc: Disable the alarm in the hardware (v2)
-
-commit 41c7f7424259ff11009449f87c95656f69f9b186 upstream.
-
-Currently, the RTC code does not disable the alarm in the hardware.
-
-This means that after a sequence such as the one below (the files are in the
-RTC sysfs), the box will boot up after 2 minutes even though we've
-asked for the alarm to be turned off.
-
-	# echo $((`cat since_epoch`)+120) > wakealarm
-	# echo 0 > wakealarm
-	# poweroff
-
-Fix this by disabling the alarm when there are no timers to run.
-
-The original version of this patch was reverted. This version
-disables the irq directly instead of setting a disabled timer
-in the future.
-
-Cc: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Rabin Vincent <rabin.vincent at stericsson.com>
-[Merged in the second revision from Rabin]
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/rtc/interface.c |   15 +++++++++++++--
- 1 file changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
-index 8a1c031..c1edbf8 100644
---- a/drivers/rtc/interface.c
-+++ b/drivers/rtc/interface.c
-@@ -763,6 +763,14 @@ static int rtc_timer_enqueue(struct rtc_device *rtc, struct rtc_timer *timer)
- 	return 0;
- }
- 
-+static void rtc_alarm_disable(struct rtc_device *rtc)
-+{
-+	if (!rtc->ops || !rtc->ops->alarm_irq_enable)
-+		return;
-+
-+	rtc->ops->alarm_irq_enable(rtc->dev.parent, false);
-+}
-+
- /**
-  * rtc_timer_remove - Removes a rtc_timer from the rtc_device timerqueue
-  * @rtc rtc device
-@@ -784,8 +792,10 @@ static void rtc_timer_remove(struct rtc_device *rtc, struct rtc_timer *timer)
- 		struct rtc_wkalrm alarm;
- 		int err;
- 		next = timerqueue_getnext(&rtc->timerqueue);
--		if (!next)
-+		if (!next) {
-+			rtc_alarm_disable(rtc);
- 			return;
-+		}
- 		alarm.time = rtc_ktime_to_tm(next->expires);
- 		alarm.enabled = 1;
- 		err = __rtc_set_alarm(rtc, &alarm);
-@@ -847,7 +857,8 @@ again:
- 		err = __rtc_set_alarm(rtc, &alarm);
- 		if (err == -ETIME)
- 			goto again;
--	}
-+	} else
-+		rtc_alarm_disable(rtc);
- 
- 	mutex_unlock(&rtc->ops_lock);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0047-p54spi-Release-GPIO-lines-and-IRQ-on-error-in-p54spi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0047-p54spi-Release-GPIO-lines-and-IRQ-on-error-in-p54spi.patch
deleted file mode 100644
index 2ecd9fe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0047-p54spi-Release-GPIO-lines-and-IRQ-on-error-in-p54spi.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 4a8252cb16f69ca39f21e3bf65064d70046adf38 Mon Sep 17 00:00:00 2001
-From: Max Filippov <jcmvbkbc at gmail.com>
-Date: Thu, 1 Mar 2012 00:40:08 +0400
-Subject: [PATCH 047/147] p54spi: Release GPIO lines and IRQ on error in
- p54spi_probe
-
-commit 62ebeed8d00aef75eac4fd6c161cae75a41965ca upstream.
-
-This makes it possible to reload driver if insmod has failed due to
-missing firmware.
-
-Signed-off-by: Max Filippov <jcmvbkbc at gmail.com>
-Acked-by: Christian Lamparter <chunkeey at googlemail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/p54/p54spi.c |   14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/p54/p54spi.c b/drivers/net/wireless/p54/p54spi.c
-index 78d0d69..428401b 100644
---- a/drivers/net/wireless/p54/p54spi.c
-+++ b/drivers/net/wireless/p54/p54spi.c
-@@ -622,19 +622,19 @@ static int __devinit p54spi_probe(struct spi_device *spi)
- 	ret = spi_setup(spi);
- 	if (ret < 0) {
- 		dev_err(&priv->spi->dev, "spi_setup failed");
--		goto err_free_common;
-+		goto err_free;
- 	}
- 
- 	ret = gpio_request(p54spi_gpio_power, "p54spi power");
- 	if (ret < 0) {
- 		dev_err(&priv->spi->dev, "power GPIO request failed: %d", ret);
--		goto err_free_common;
-+		goto err_free;
- 	}
- 
- 	ret = gpio_request(p54spi_gpio_irq, "p54spi irq");
- 	if (ret < 0) {
- 		dev_err(&priv->spi->dev, "irq GPIO request failed: %d", ret);
--		goto err_free_common;
-+		goto err_free_gpio_power;
- 	}
- 
- 	gpio_direction_output(p54spi_gpio_power, 0);
-@@ -645,7 +645,7 @@ static int __devinit p54spi_probe(struct spi_device *spi)
- 			  priv->spi);
- 	if (ret < 0) {
- 		dev_err(&priv->spi->dev, "request_irq() failed");
--		goto err_free_common;
-+		goto err_free_gpio_irq;
- 	}
- 
- 	irq_set_irq_type(gpio_to_irq(p54spi_gpio_irq), IRQ_TYPE_EDGE_RISING);
-@@ -677,6 +677,12 @@ static int __devinit p54spi_probe(struct spi_device *spi)
- 	return 0;
- 
- err_free_common:
-+	free_irq(gpio_to_irq(p54spi_gpio_irq), spi);
-+err_free_gpio_irq:
-+	gpio_free(p54spi_gpio_irq);
-+err_free_gpio_power:
-+	gpio_free(p54spi_gpio_power);
-+err_free:
- 	p54_free_common(priv->hw);
- 	return ret;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0048-rtnetlink-Fix-VF-IFLA-policy.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0048-rtnetlink-Fix-VF-IFLA-policy.patch
deleted file mode 100644
index f938d1c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0048-rtnetlink-Fix-VF-IFLA-policy.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From cf7eecb4e8e024ff0de45c29a63241a518ddf4a0 Mon Sep 17 00:00:00 2001
-From: Greg Rose <gregory.v.rose at intel.com>
-Date: Wed, 8 Feb 2012 00:45:00 +0000
-Subject: [PATCH 048/147] rtnetlink: Fix VF IFLA policy
-
-commit 48752f6513012a1b078da08b145d5c40a644f058 upstream.
-
-Add VF spoof check to IFLA policy.  The original patch I submitted to
-add the spoof checking feature to rtnl failed to add the proper policy
-rule that identifies the data type and len.  This patch corrects that
-oversight.  No bugs have been reported against this but it may cause
-some problem for the netlink message parsing that uses the policy
-table.
-
-Signed-off-by: Greg Rose <gregory.v.rose at intel.com>
-Tested-by: Sibai Li <sibai.li at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/rtnetlink.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
-index 9083e82..2ef859a 100644
---- a/net/core/rtnetlink.c
-+++ b/net/core/rtnetlink.c
-@@ -1116,6 +1116,8 @@ static const struct nla_policy ifla_vf_policy[IFLA_VF_MAX+1] = {
- 				    .len = sizeof(struct ifla_vf_vlan) },
- 	[IFLA_VF_TX_RATE]	= { .type = NLA_BINARY,
- 				    .len = sizeof(struct ifla_vf_tx_rate) },
-+	[IFLA_VF_SPOOFCHK]	= { .type = NLA_BINARY,
-+				    .len = sizeof(struct ifla_vf_spoofchk) },
- };
- 
- static const struct nla_policy ifla_port_policy[IFLA_PORT_MAX+1] = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0049-IB-iser-Post-initial-receive-buffers-before-sending-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0049-IB-iser-Post-initial-receive-buffers-before-sending-.patch
deleted file mode 100644
index 8d3cd74..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0049-IB-iser-Post-initial-receive-buffers-before-sending-.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From de960f13b12a65cff5f74f1f7bb6871fbd9ac432 Mon Sep 17 00:00:00 2001
-From: Or Gerlitz <ogerlitz at mellanox.com>
-Date: Mon, 5 Mar 2012 18:21:44 +0200
-Subject: [PATCH 049/147] IB/iser: Post initial receive buffers before sending
- the final login request
-
-commit 89e984e2c2cd14f77ccb26c47726ac7f13b70ae8 upstream.
-
-An iser target may send iscsi NO-OP PDUs as soon as it marks the iSER
-iSCSI session as fully operative.  This means that there is window
-where there are no posted receive buffers on the initiator side, so
-it's possible for the iSER RC connection to break because of RNR NAK /
-retry errors.  To fix this, rely on the flags bits in the login
-request to have FFP (0x3) in the lower nibble as a marker for the
-final login request, and post an initial chunk of receive buffers
-before sending that login request instead of after getting the login
-response.
-
-Signed-off-by: Or Gerlitz <ogerlitz at mellanox.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/infiniband/ulp/iser/iscsi_iser.c     |   18 ++++------------
- drivers/infiniband/ulp/iser/iscsi_iser.h     |    1 +
- drivers/infiniband/ulp/iser/iser_initiator.c |   30 +++++++++++++++-----------
- 3 files changed, 22 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.c b/drivers/infiniband/ulp/iser/iscsi_iser.c
-index 7e7373a..d5f3b69 100644
---- a/drivers/infiniband/ulp/iser/iscsi_iser.c
-+++ b/drivers/infiniband/ulp/iser/iscsi_iser.c
-@@ -364,6 +364,9 @@ iscsi_iser_conn_bind(struct iscsi_cls_session *cls_session,
- 	}
- 	ib_conn = ep->dd_data;
- 
-+	if (iser_alloc_rx_descriptors(ib_conn))
-+		return -ENOMEM;
-+
- 	/* binds the iSER connection retrieved from the previously
- 	 * connected ep_handle to the iSCSI layer connection. exchanges
- 	 * connection pointers */
-@@ -398,19 +401,6 @@ iscsi_iser_conn_stop(struct iscsi_cls_conn *cls_conn, int flag)
- 	iser_conn->ib_conn = NULL;
- }
- 
--static int
--iscsi_iser_conn_start(struct iscsi_cls_conn *cls_conn)
--{
--	struct iscsi_conn *conn = cls_conn->dd_data;
--	int err;
--
--	err = iser_conn_set_full_featured_mode(conn);
--	if (err)
--		return err;
--
--	return iscsi_conn_start(cls_conn);
--}
--
- static void iscsi_iser_session_destroy(struct iscsi_cls_session *cls_session)
- {
- 	struct Scsi_Host *shost = iscsi_session_to_shost(cls_session);
-@@ -724,7 +714,7 @@ static struct iscsi_transport iscsi_iser_transport = {
- 	.get_conn_param		= iscsi_conn_get_param,
- 	.get_ep_param		= iscsi_iser_get_ep_param,
- 	.get_session_param	= iscsi_session_get_param,
--	.start_conn             = iscsi_iser_conn_start,
-+	.start_conn             = iscsi_conn_start,
- 	.stop_conn              = iscsi_iser_conn_stop,
- 	/* iscsi host params */
- 	.get_host_param		= iscsi_host_get_param,
-diff --git a/drivers/infiniband/ulp/iser/iscsi_iser.h b/drivers/infiniband/ulp/iser/iscsi_iser.h
-index db7ea37..296be43 100644
---- a/drivers/infiniband/ulp/iser/iscsi_iser.h
-+++ b/drivers/infiniband/ulp/iser/iscsi_iser.h
-@@ -366,4 +366,5 @@ int iser_dma_map_task_data(struct iscsi_iser_task *iser_task,
- void iser_dma_unmap_task_data(struct iscsi_iser_task *iser_task);
- int  iser_initialize_task_headers(struct iscsi_task *task,
- 			struct iser_tx_desc *tx_desc);
-+int iser_alloc_rx_descriptors(struct iser_conn *ib_conn);
- #endif
-diff --git a/drivers/infiniband/ulp/iser/iser_initiator.c b/drivers/infiniband/ulp/iser/iser_initiator.c
-index a607542..738a149 100644
---- a/drivers/infiniband/ulp/iser/iser_initiator.c
-+++ b/drivers/infiniband/ulp/iser/iser_initiator.c
-@@ -170,7 +170,7 @@ static void iser_create_send_desc(struct iser_conn	*ib_conn,
- }
- 
- 
--static int iser_alloc_rx_descriptors(struct iser_conn *ib_conn)
-+int iser_alloc_rx_descriptors(struct iser_conn *ib_conn)
- {
- 	int i, j;
- 	u64 dma_addr;
-@@ -242,23 +242,24 @@ void iser_free_rx_descriptors(struct iser_conn *ib_conn)
- 	kfree(ib_conn->rx_descs);
- }
- 
--/**
-- *  iser_conn_set_full_featured_mode - (iSER API)
-- */
--int iser_conn_set_full_featured_mode(struct iscsi_conn *conn)
-+static int iser_post_rx_bufs(struct iscsi_conn *conn, struct iscsi_hdr *req)
- {
- 	struct iscsi_iser_conn *iser_conn = conn->dd_data;
- 
--	iser_dbg("Initially post: %d\n", ISER_MIN_POSTED_RX);
--
--	/* Check that there is no posted recv or send buffers left - */
--	/* they must be consumed during the login phase */
--	BUG_ON(iser_conn->ib_conn->post_recv_buf_count != 0);
--	BUG_ON(atomic_read(&iser_conn->ib_conn->post_send_buf_count) != 0);
-+	iser_dbg("req op %x flags %x\n", req->opcode, req->flags);
-+	/* check if this is the last login - going to full feature phase */
-+	if ((req->flags & ISCSI_FULL_FEATURE_PHASE) != ISCSI_FULL_FEATURE_PHASE)
-+		return 0;
- 
--	if (iser_alloc_rx_descriptors(iser_conn->ib_conn))
--		return -ENOMEM;
-+	/*
-+	 * Check that there is one posted recv buffer (for the last login
-+	 * response) and no posted send buffers left - they must have been
-+	 * consumed during previous login phases.
-+	 */
-+	WARN_ON(iser_conn->ib_conn->post_recv_buf_count != 1);
-+	WARN_ON(atomic_read(&iser_conn->ib_conn->post_send_buf_count) != 0);
- 
-+	iser_dbg("Initially post: %d\n", ISER_MIN_POSTED_RX);
- 	/* Initial post receive buffers */
- 	if (iser_post_recvm(iser_conn->ib_conn, ISER_MIN_POSTED_RX))
- 		return -ENOMEM;
-@@ -438,6 +439,9 @@ int iser_send_control(struct iscsi_conn *conn,
- 		err = iser_post_recvl(iser_conn->ib_conn);
- 		if (err)
- 			goto send_control_error;
-+		err = iser_post_rx_bufs(conn, task->hdr);
-+		if (err)
-+			goto send_control_error;
- 	}
- 
- 	err = iser_post_send(iser_conn->ib_conn, mdesc);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0050-ima-fix-Kconfig-dependencies.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0050-ima-fix-Kconfig-dependencies.patch
deleted file mode 100644
index d1add07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0050-ima-fix-Kconfig-dependencies.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 48128d2a875a34aeef5b89ed93e2887179534b33 Mon Sep 17 00:00:00 2001
-From: Fabio Estevam <festevam at gmail.com>
-Date: Thu, 5 Jan 2012 12:49:54 -0200
-Subject: [PATCH 050/147] ima: fix Kconfig dependencies
-
-commit f4a0391dfa91155bd961673b31eb42d9d45c799d upstream.
-
-Fix the following build warning:
-warning: (IMA) selects TCG_TPM which has unmet direct dependencies
-(HAS_IOMEM && EXPERIMENTAL)
-
-Suggested-by: Rajiv Andrade <srajiv at linux.vnet.ibm.com>
-Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
-Signed-off-by: Rajiv Andrade <srajiv at linux.vnet.ibm.com>
-Signed-off-by: Mimi Zohar <zohar at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/char/tpm/Kconfig       |    1 -
- security/integrity/ima/Kconfig |    2 +-
- 2 files changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/char/tpm/Kconfig b/drivers/char/tpm/Kconfig
-index fa567f1..c9e045c 100644
---- a/drivers/char/tpm/Kconfig
-+++ b/drivers/char/tpm/Kconfig
-@@ -5,7 +5,6 @@
- menuconfig TCG_TPM
- 	tristate "TPM Hardware Support"
- 	depends on HAS_IOMEM
--	depends on EXPERIMENTAL
- 	select SECURITYFS
- 	---help---
- 	  If you have a TPM security chip in your system, which
-diff --git a/security/integrity/ima/Kconfig b/security/integrity/ima/Kconfig
-index 4f554f2..063298a 100644
---- a/security/integrity/ima/Kconfig
-+++ b/security/integrity/ima/Kconfig
-@@ -9,7 +9,7 @@ config IMA
- 	select CRYPTO_HMAC
- 	select CRYPTO_MD5
- 	select CRYPTO_SHA1
--	select TCG_TPM if !S390 && !UML
-+	select TCG_TPM if HAS_IOMEM && !UML
- 	select TCG_TIS if TCG_TPM
- 	help
- 	  The Trusted Computing Group(TCG) runtime Integrity
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0051-x86-ioapic-Add-register-level-checks-to-detect-bogus.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0051-x86-ioapic-Add-register-level-checks-to-detect-bogus.patch
deleted file mode 100644
index a503062..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0051-x86-ioapic-Add-register-level-checks-to-detect-bogus.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 817b882783a89bae08689d9eff2b5af91f44c4e1 Mon Sep 17 00:00:00 2001
-From: Suresh Siddha <suresh.b.siddha at intel.com>
-Date: Mon, 12 Mar 2012 11:36:33 -0700
-Subject: [PATCH 051/147] x86/ioapic: Add register level checks to detect
- bogus io-apic entries
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 73d63d038ee9f769f5e5b46792d227fe20e442c5 upstream.
-
-With the recent changes to clear_IO_APIC_pin() which tries to
-clear remoteIRR bit explicitly, some of the users started to see
-"Unable to reset IRR for apic .." messages.
-
-Close look shows that these are related to bogus IO-APIC entries
-which return's all 1's for their io-apic registers. And the
-above mentioned error messages are benign. But kernel should
-have ignored such io-apic's in the first place.
-
-Check if register 0, 1, 2 of the listed io-apic are all 1's and
-ignore such io-apic.
-
-Reported-by: ??lvaro Castillo <midgoon at gmail.com>
-Tested-by: Jon Dufresne <jon at jondufresne.org>
-Signed-off-by: Suresh Siddha <suresh.b.siddha at intel.com>
-Cc: yinghai at kernel.org
-Cc: kernel-team at fedoraproject.org
-Cc: Josh Boyer <jwboyer at redhat.com>
-Link: http://lkml.kernel.org/r/1331577393.31585.94.camel@sbsiddha-desk.sc.intel.com
-[ Performed minor cleanup of affected code. ]
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/apic/io_apic.c |   40 ++++++++++++++++++++++++++++++++--------
- 1 file changed, 32 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index 6d939d7..a25e276 100644
---- a/arch/x86/kernel/apic/io_apic.c
-+++ b/arch/x86/kernel/apic/io_apic.c
-@@ -3963,18 +3963,36 @@ int mp_find_ioapic_pin(int ioapic, u32 gsi)
- static __init int bad_ioapic(unsigned long address)
- {
- 	if (nr_ioapics >= MAX_IO_APICS) {
--		printk(KERN_WARNING "WARNING: Max # of I/O APICs (%d) exceeded "
--		       "(found %d), skipping\n", MAX_IO_APICS, nr_ioapics);
-+		pr_warn("WARNING: Max # of I/O APICs (%d) exceeded (found %d), skipping\n",
-+			MAX_IO_APICS, nr_ioapics);
- 		return 1;
- 	}
- 	if (!address) {
--		printk(KERN_WARNING "WARNING: Bogus (zero) I/O APIC address"
--		       " found in table, skipping!\n");
-+		pr_warn("WARNING: Bogus (zero) I/O APIC address found in table, skipping!\n");
- 		return 1;
- 	}
- 	return 0;
- }
- 
-+static __init int bad_ioapic_register(int idx)
-+{
-+	union IO_APIC_reg_00 reg_00;
-+	union IO_APIC_reg_01 reg_01;
-+	union IO_APIC_reg_02 reg_02;
-+
-+	reg_00.raw = io_apic_read(idx, 0);
-+	reg_01.raw = io_apic_read(idx, 1);
-+	reg_02.raw = io_apic_read(idx, 2);
-+
-+	if (reg_00.raw == -1 && reg_01.raw == -1 && reg_02.raw == -1) {
-+		pr_warn("I/O APIC 0x%x registers return all ones, skipping!\n",
-+			mpc_ioapic_addr(idx));
-+		return 1;
-+	}
-+
-+	return 0;
-+}
-+
- void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
- {
- 	int idx = 0;
-@@ -3991,6 +4009,12 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
- 	ioapics[idx].mp_config.apicaddr = address;
- 
- 	set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
-+
-+	if (bad_ioapic_register(idx)) {
-+		clear_fixmap(FIX_IO_APIC_BASE_0 + idx);
-+		return;
-+	}
-+
- 	ioapics[idx].mp_config.apicid = io_apic_unique_id(id);
- 	ioapics[idx].mp_config.apicver = io_apic_get_version(idx);
- 
-@@ -4011,10 +4035,10 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
- 	if (gsi_cfg->gsi_end >= gsi_top)
- 		gsi_top = gsi_cfg->gsi_end + 1;
- 
--	printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
--	       "GSI %d-%d\n", idx, mpc_ioapic_id(idx),
--	       mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
--	       gsi_cfg->gsi_base, gsi_cfg->gsi_end);
-+	pr_info("IOAPIC[%d]: apic_id %d, version %d, address 0x%x, GSI %d-%d\n",
-+		idx, mpc_ioapic_id(idx),
-+		mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
-+		gsi_cfg->gsi_base, gsi_cfg->gsi_end);
- 
- 	nr_ioapics++;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0052-mm-thp-fix-pmd_bad-triggering-in-code-paths-holding-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0052-mm-thp-fix-pmd_bad-triggering-in-code-paths-holding-.patch
deleted file mode 100644
index d281a10..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0052-mm-thp-fix-pmd_bad-triggering-in-code-paths-holding-.patch
+++ /dev/null
@@ -1,480 +0,0 @@
-From 11c78e244603f384d1f8cebc627823cc01e952eb Mon Sep 17 00:00:00 2001
-From: Andrea Arcangeli <aarcange at redhat.com>
-Date: Wed, 21 Mar 2012 16:33:42 -0700
-Subject: [PATCH 052/147] mm: thp: fix pmd_bad() triggering in code paths
- holding mmap_sem read mode
-
-commit 1a5a9906d4e8d1976b701f889d8f35d54b928f25 upstream.
-
-In some cases it may happen that pmd_none_or_clear_bad() is called with
-the mmap_sem hold in read mode.  In those cases the huge page faults can
-allocate hugepmds under pmd_none_or_clear_bad() and that can trigger a
-false positive from pmd_bad() that will not like to see a pmd
-materializing as trans huge.
-
-It's not khugepaged causing the problem, khugepaged holds the mmap_sem
-in write mode (and all those sites must hold the mmap_sem in read mode
-to prevent pagetables to go away from under them, during code review it
-seems vm86 mode on 32bit kernels requires that too unless it's
-restricted to 1 thread per process or UP builds).  The race is only with
-the huge pagefaults that can convert a pmd_none() into a
-pmd_trans_huge().
-
-Effectively all these pmd_none_or_clear_bad() sites running with
-mmap_sem in read mode are somewhat speculative with the page faults, and
-the result is always undefined when they run simultaneously.  This is
-probably why it wasn't common to run into this.  For example if the
-madvise(MADV_DONTNEED) runs zap_page_range() shortly before the page
-fault, the hugepage will not be zapped, if the page fault runs first it
-will be zapped.
-
-Altering pmd_bad() not to error out if it finds hugepmds won't be enough
-to fix this, because zap_pmd_range would then proceed to call
-zap_pte_range (which would be incorrect if the pmd become a
-pmd_trans_huge()).
-
-The simplest way to fix this is to read the pmd in the local stack
-(regardless of what we read, no need of actual CPU barriers, only
-compiler barrier needed), and be sure it is not changing under the code
-that computes its value.  Even if the real pmd is changing under the
-value we hold on the stack, we don't care.  If we actually end up in
-zap_pte_range it means the pmd was not none already and it was not huge,
-and it can't become huge from under us (khugepaged locking explained
-above).
-
-All we need is to enforce that there is no way anymore that in a code
-path like below, pmd_trans_huge can be false, but pmd_none_or_clear_bad
-can run into a hugepmd.  The overhead of a barrier() is just a compiler
-tweak and should not be measurable (I only added it for THP builds).  I
-don't exclude different compiler versions may have prevented the race
-too by caching the value of *pmd on the stack (that hasn't been
-verified, but it wouldn't be impossible considering
-pmd_none_or_clear_bad, pmd_bad, pmd_trans_huge, pmd_none are all inlines
-and there's no external function called in between pmd_trans_huge and
-pmd_none_or_clear_bad).
-
-		if (pmd_trans_huge(*pmd)) {
-			if (next-addr != HPAGE_PMD_SIZE) {
-				VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem));
-				split_huge_page_pmd(vma->vm_mm, pmd);
-			} else if (zap_huge_pmd(tlb, vma, pmd, addr))
-				continue;
-			/* fall through */
-		}
-		if (pmd_none_or_clear_bad(pmd))
-
-Because this race condition could be exercised without special
-privileges this was reported in CVE-2012-1179.
-
-The race was identified and fully explained by Ulrich who debugged it.
-I'm quoting his accurate explanation below, for reference.
-
-====== start quote =======
-      mapcount 0 page_mapcount 1
-      kernel BUG at mm/huge_memory.c:1384!
-
-    At some point prior to the panic, a "bad pmd ..." message similar to the
-    following is logged on the console:
-
-      mm/memory.c:145: bad pmd ffff8800376e1f98(80000000314000e7).
-
-    The "bad pmd ..." message is logged by pmd_clear_bad() before it clears
-    the page's PMD table entry.
-
-        143 void pmd_clear_bad(pmd_t *pmd)
-        144 {
-    ->  145         pmd_ERROR(*pmd);
-        146         pmd_clear(pmd);
-        147 }
-
-    After the PMD table entry has been cleared, there is an inconsistency
-    between the actual number of PMD table entries that are mapping the page
-    and the page's map count (_mapcount field in struct page). When the page
-    is subsequently reclaimed, __split_huge_page() detects this inconsistency.
-
-       1381         if (mapcount != page_mapcount(page))
-       1382                 printk(KERN_ERR "mapcount %d page_mapcount %d\n",
-       1383                        mapcount, page_mapcount(page));
-    -> 1384         BUG_ON(mapcount != page_mapcount(page));
-
-    The root cause of the problem is a race of two threads in a multithreaded
-    process. Thread B incurs a page fault on a virtual address that has never
-    been accessed (PMD entry is zero) while Thread A is executing an madvise()
-    system call on a virtual address within the same 2 MB (huge page) range.
-
-               virtual address space
-              .---------------------.
-              |                     |
-              |                     |
-            .-|---------------------|
-            | |                     |
-            | |                     |<-- B(fault)
-            | |                     |
-      2 MB  | |/////////////////////|-.
-      huge <  |/////////////////////|  > A(range)
-      page  | |/////////////////////|-'
-            | |                     |
-            | |                     |
-            '-|---------------------|
-              |                     |
-              |                     |
-              '---------------------'
-
-    - Thread A is executing an madvise(..., MADV_DONTNEED) system call
-      on the virtual address range "A(range)" shown in the picture.
-
-    sys_madvise
-      // Acquire the semaphore in shared mode.
-      down_read(&current->mm->mmap_sem)
-      ...
-      madvise_vma
-        switch (behavior)
-        case MADV_DONTNEED:
-             madvise_dontneed
-               zap_page_range
-                 unmap_vmas
-                   unmap_page_range
-                     zap_pud_range
-                       zap_pmd_range
-                         //
-                         // Assume that this huge page has never been accessed.
-                         // I.e. content of the PMD entry is zero (not mapped).
-                         //
-                         if (pmd_trans_huge(*pmd)) {
-                             // We don't get here due to the above assumption.
-                         }
-                         //
-                         // Assume that Thread B incurred a page fault and
-             .---------> // sneaks in here as shown below.
-             |           //
-             |           if (pmd_none_or_clear_bad(pmd))
-             |               {
-             |                 if (unlikely(pmd_bad(*pmd)))
-             |                     pmd_clear_bad
-             |                     {
-             |                       pmd_ERROR
-             |                         // Log "bad pmd ..." message here.
-             |                       pmd_clear
-             |                         // Clear the page's PMD entry.
-             |                         // Thread B incremented the map count
-             |                         // in page_add_new_anon_rmap(), but
-             |                         // now the page is no longer mapped
-             |                         // by a PMD entry (-> inconsistency).
-             |                     }
-             |               }
-             |
-             v
-    - Thread B is handling a page fault on virtual address "B(fault)" shown
-      in the picture.
-
-    ...
-    do_page_fault
-      __do_page_fault
-        // Acquire the semaphore in shared mode.
-        down_read_trylock(&mm->mmap_sem)
-        ...
-        handle_mm_fault
-          if (pmd_none(*pmd) && transparent_hugepage_enabled(vma))
-              // We get here due to the above assumption (PMD entry is zero).
-              do_huge_pmd_anonymous_page
-                alloc_hugepage_vma
-                  // Allocate a new transparent huge page here.
-                ...
-                __do_huge_pmd_anonymous_page
-                  ...
-                  spin_lock(&mm->page_table_lock)
-                  ...
-                  page_add_new_anon_rmap
-                    // Here we increment the page's map count (starts at -1).
-                    atomic_set(&page->_mapcount, 0)
-                  set_pmd_at
-                    // Here we set the page's PMD entry which will be cleared
-                    // when Thread A calls pmd_clear_bad().
-                  ...
-                  spin_unlock(&mm->page_table_lock)
-
-    The mmap_sem does not prevent the race because both threads are acquiring
-    it in shared mode (down_read).  Thread B holds the page_table_lock while
-    the page's map count and PMD table entry are updated.  However, Thread A
-    does not synchronize on that lock.
-
-====== end quote =======
-
-[akpm at linux-foundation.org: checkpatch fixes]
-Reported-by: Ulrich Obergfell <uobergfe at redhat.com>
-Signed-off-by: Andrea Arcangeli <aarcange at redhat.com>
-Acked-by: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Mel Gorman <mgorman at suse.de>
-Cc: Hugh Dickins <hughd at google.com>
-Cc: Dave Jones <davej at redhat.com>
-Acked-by: Larry Woodman <lwoodman at redhat.com>
-Acked-by: Rik van Riel <riel at redhat.com>
-Cc: Mark Salter <msalter at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/vm86_32.c     |    2 ++
- fs/proc/task_mmu.c            |    9 ++++++
- include/asm-generic/pgtable.h |   61 +++++++++++++++++++++++++++++++++++++++++
- mm/memcontrol.c               |    4 +++
- mm/memory.c                   |   16 ++++++++---
- mm/mempolicy.c                |    2 +-
- mm/mincore.c                  |    2 +-
- mm/pagewalk.c                 |    2 +-
- mm/swapfile.c                 |    4 +--
- 9 files changed, 92 insertions(+), 10 deletions(-)
-
-diff --git a/arch/x86/kernel/vm86_32.c b/arch/x86/kernel/vm86_32.c
-index 863f875..04b8726 100644
---- a/arch/x86/kernel/vm86_32.c
-+++ b/arch/x86/kernel/vm86_32.c
-@@ -172,6 +172,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
- 	spinlock_t *ptl;
- 	int i;
- 
-+	down_write(&mm->mmap_sem);
- 	pgd = pgd_offset(mm, 0xA0000);
- 	if (pgd_none_or_clear_bad(pgd))
- 		goto out;
-@@ -190,6 +191,7 @@ static void mark_screen_rdonly(struct mm_struct *mm)
- 	}
- 	pte_unmap_unlock(pte, ptl);
- out:
-+	up_write(&mm->mmap_sem);
- 	flush_tlb();
- }
- 
-diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index 7dcd2a2..3efa725 100644
---- a/fs/proc/task_mmu.c
-+++ b/fs/proc/task_mmu.c
-@@ -409,6 +409,9 @@ static int smaps_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
- 	} else {
- 		spin_unlock(&walk->mm->page_table_lock);
- 	}
-+
-+	if (pmd_trans_unstable(pmd))
-+		return 0;
- 	/*
- 	 * The mmap_sem held all the way back in m_start() is what
- 	 * keeps khugepaged out of here and from collapsing things
-@@ -507,6 +510,8 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
- 	struct page *page;
- 
- 	split_huge_page_pmd(walk->mm, pmd);
-+	if (pmd_trans_unstable(pmd))
-+		return 0;
- 
- 	pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
- 	for (; addr != end; pte++, addr += PAGE_SIZE) {
-@@ -670,6 +675,8 @@ static int pagemap_pte_range(pmd_t *pmd, unsigned long addr, unsigned long end,
- 	int err = 0;
- 
- 	split_huge_page_pmd(walk->mm, pmd);
-+	if (pmd_trans_unstable(pmd))
-+		return 0;
- 
- 	/* find the first VMA at or above 'addr' */
- 	vma = find_vma(walk->mm, addr);
-@@ -961,6 +968,8 @@ static int gather_pte_stats(pmd_t *pmd, unsigned long addr,
- 		spin_unlock(&walk->mm->page_table_lock);
- 	}
- 
-+	if (pmd_trans_unstable(pmd))
-+		return 0;
- 	orig_pte = pte = pte_offset_map_lock(walk->mm, pmd, addr, &ptl);
- 	do {
- 		struct page *page = can_gather_numa_stats(*pte, md->vma, addr);
-diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index 76bff2b..a03c098 100644
---- a/include/asm-generic/pgtable.h
-+++ b/include/asm-generic/pgtable.h
-@@ -425,6 +425,8 @@ extern void untrack_pfn_vma(struct vm_area_struct *vma, unsigned long pfn,
- 				unsigned long size);
- #endif
- 
-+#ifdef CONFIG_MMU
-+
- #ifndef CONFIG_TRANSPARENT_HUGEPAGE
- static inline int pmd_trans_huge(pmd_t pmd)
- {
-@@ -441,7 +443,66 @@ static inline int pmd_write(pmd_t pmd)
- 	return 0;
- }
- #endif /* __HAVE_ARCH_PMD_WRITE */
-+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-+
-+/*
-+ * This function is meant to be used by sites walking pagetables with
-+ * the mmap_sem hold in read mode to protect against MADV_DONTNEED and
-+ * transhuge page faults. MADV_DONTNEED can convert a transhuge pmd
-+ * into a null pmd and the transhuge page fault can convert a null pmd
-+ * into an hugepmd or into a regular pmd (if the hugepage allocation
-+ * fails). While holding the mmap_sem in read mode the pmd becomes
-+ * stable and stops changing under us only if it's not null and not a
-+ * transhuge pmd. When those races occurs and this function makes a
-+ * difference vs the standard pmd_none_or_clear_bad, the result is
-+ * undefined so behaving like if the pmd was none is safe (because it
-+ * can return none anyway). The compiler level barrier() is critically
-+ * important to compute the two checks atomically on the same pmdval.
-+ */
-+static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
-+{
-+	/* depend on compiler for an atomic pmd read */
-+	pmd_t pmdval = *pmd;
-+	/*
-+	 * The barrier will stabilize the pmdval in a register or on
-+	 * the stack so that it will stop changing under the code.
-+	 */
-+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-+	barrier();
-+#endif
-+	if (pmd_none(pmdval))
-+		return 1;
-+	if (unlikely(pmd_bad(pmdval))) {
-+		if (!pmd_trans_huge(pmdval))
-+			pmd_clear_bad(pmd);
-+		return 1;
-+	}
-+	return 0;
-+}
-+
-+/*
-+ * This is a noop if Transparent Hugepage Support is not built into
-+ * the kernel. Otherwise it is equivalent to
-+ * pmd_none_or_trans_huge_or_clear_bad(), and shall only be called in
-+ * places that already verified the pmd is not none and they want to
-+ * walk ptes while holding the mmap sem in read mode (write mode don't
-+ * need this). If THP is not enabled, the pmd can't go away under the
-+ * code even if MADV_DONTNEED runs, but if THP is enabled we need to
-+ * run a pmd_trans_unstable before walking the ptes after
-+ * split_huge_page_pmd returns (because it may have run when the pmd
-+ * become null, but then a page fault can map in a THP and not a
-+ * regular page).
-+ */
-+static inline int pmd_trans_unstable(pmd_t *pmd)
-+{
-+#ifdef CONFIG_TRANSPARENT_HUGEPAGE
-+	return pmd_none_or_trans_huge_or_clear_bad(pmd);
-+#else
-+	return 0;
- #endif
-+}
-+
-+#endif /* CONFIG_MMU */
- 
- #endif /* !__ASSEMBLY__ */
- 
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index de67e91..778554f 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -5237,6 +5237,8 @@ static int mem_cgroup_count_precharge_pte_range(pmd_t *pmd,
- 	spinlock_t *ptl;
- 
- 	split_huge_page_pmd(walk->mm, pmd);
-+	if (pmd_trans_unstable(pmd))
-+		return 0;
- 
- 	pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
- 	for (; addr != end; pte++, addr += PAGE_SIZE)
-@@ -5398,6 +5400,8 @@ static int mem_cgroup_move_charge_pte_range(pmd_t *pmd,
- 	spinlock_t *ptl;
- 
- 	split_huge_page_pmd(walk->mm, pmd);
-+	if (pmd_trans_unstable(pmd))
-+		return 0;
- retry:
- 	pte = pte_offset_map_lock(vma->vm_mm, pmd, addr, &ptl);
- 	for (; addr != end; addr += PAGE_SIZE) {
-diff --git a/mm/memory.c b/mm/memory.c
-index 829d437..1b1ca17 100644
---- a/mm/memory.c
-+++ b/mm/memory.c
-@@ -1228,16 +1228,24 @@ static inline unsigned long zap_pmd_range(struct mmu_gather *tlb,
- 	do {
- 		next = pmd_addr_end(addr, end);
- 		if (pmd_trans_huge(*pmd)) {
--			if (next-addr != HPAGE_PMD_SIZE) {
-+			if (next - addr != HPAGE_PMD_SIZE) {
- 				VM_BUG_ON(!rwsem_is_locked(&tlb->mm->mmap_sem));
- 				split_huge_page_pmd(vma->vm_mm, pmd);
- 			} else if (zap_huge_pmd(tlb, vma, pmd))
--				continue;
-+				goto next;
- 			/* fall through */
- 		}
--		if (pmd_none_or_clear_bad(pmd))
--			continue;
-+		/*
-+		 * Here there can be other concurrent MADV_DONTNEED or
-+		 * trans huge page faults running, and if the pmd is
-+		 * none or trans huge it can change under us. This is
-+		 * because MADV_DONTNEED holds the mmap_sem in read
-+		 * mode.
-+		 */
-+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
-+			goto next;
- 		next = zap_pte_range(tlb, vma, pmd, addr, next, details);
-+next:
- 		cond_resched();
- 	} while (pmd++, addr = next, addr != end);
- 
-diff --git a/mm/mempolicy.c b/mm/mempolicy.c
-index c3fdbcb..b26aae2 100644
---- a/mm/mempolicy.c
-+++ b/mm/mempolicy.c
-@@ -512,7 +512,7 @@ static inline int check_pmd_range(struct vm_area_struct *vma, pud_t *pud,
- 	do {
- 		next = pmd_addr_end(addr, end);
- 		split_huge_page_pmd(vma->vm_mm, pmd);
--		if (pmd_none_or_clear_bad(pmd))
-+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
- 			continue;
- 		if (check_pte_range(vma, pmd, addr, next, nodes,
- 				    flags, private))
-diff --git a/mm/mincore.c b/mm/mincore.c
-index 636a868..936b4ce 100644
---- a/mm/mincore.c
-+++ b/mm/mincore.c
-@@ -164,7 +164,7 @@ static void mincore_pmd_range(struct vm_area_struct *vma, pud_t *pud,
- 			}
- 			/* fall through */
- 		}
--		if (pmd_none_or_clear_bad(pmd))
-+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
- 			mincore_unmapped_range(vma, addr, next, vec);
- 		else
- 			mincore_pte_range(vma, pmd, addr, next, vec);
-diff --git a/mm/pagewalk.c b/mm/pagewalk.c
-index 2f5cf10..aa9701e 100644
---- a/mm/pagewalk.c
-+++ b/mm/pagewalk.c
-@@ -59,7 +59,7 @@ again:
- 			continue;
- 
- 		split_huge_page_pmd(walk->mm, pmd);
--		if (pmd_none_or_clear_bad(pmd))
-+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
- 			goto again;
- 		err = walk_pte_range(pmd, addr, next, walk);
- 		if (err)
-diff --git a/mm/swapfile.c b/mm/swapfile.c
-index b1cd120..2015a1e 100644
---- a/mm/swapfile.c
-+++ b/mm/swapfile.c
-@@ -931,9 +931,7 @@ static inline int unuse_pmd_range(struct vm_area_struct *vma, pud_t *pud,
- 	pmd = pmd_offset(pud, addr);
- 	do {
- 		next = pmd_addr_end(addr, end);
--		if (unlikely(pmd_trans_huge(*pmd)))
--			continue;
--		if (pmd_none_or_clear_bad(pmd))
-+		if (pmd_none_or_trans_huge_or_clear_bad(pmd))
- 			continue;
- 		ret = unuse_pte_range(vma, pmd, addr, next, entry, page);
- 		if (ret)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0053-TPM-Zero-buffer-whole-after-copying-to-userspace.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0053-TPM-Zero-buffer-whole-after-copying-to-userspace.patch
deleted file mode 100644
index 026e58d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0053-TPM-Zero-buffer-whole-after-copying-to-userspace.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 6afa33c872ff109ed854c7dcec52130732f9e62e Mon Sep 17 00:00:00 2001
-From: Tim Gardner <tim.gardner at canonical.com>
-Date: Tue, 6 Dec 2011 11:29:20 -0700
-Subject: [PATCH 053/147] TPM: Zero buffer whole after copying to userspace
-
-commit 3ab1aff89477dafb1aaeafe8c8669114a02b7226 upstream.
-
-Commit 3321c07ae5068568cd61ac9f4ba749006a7185c9 correctly clears the TPM
-buffer if the user specified read length is >= the TPM buffer length. However,
-if the user specified read length is < the TPM buffer length, then part of the
-TPM buffer is left uncleared.
-
-Reported-by: Seth Forshee <seth.forshee at canonical.com>
-Cc: Debora Velarde <debora at linux.vnet.ibm.com>
-Cc: Rajiv Andrade <srajiv at linux.vnet.ibm.com>
-Cc: Marcel Selhorst <m.selhorst at sirrix.com>
-Cc: tpmdd-devel at lists.sourceforge.net
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: Rajiv Andrade <srajiv at linux.vnet.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/char/tpm/tpm.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/char/tpm/tpm.c b/drivers/char/tpm/tpm.c
-index 361a1df..b366b34 100644
---- a/drivers/char/tpm/tpm.c
-+++ b/drivers/char/tpm/tpm.c
-@@ -1115,12 +1115,13 @@ ssize_t tpm_read(struct file *file, char __user *buf,
- 	ret_size = atomic_read(&chip->data_pending);
- 	atomic_set(&chip->data_pending, 0);
- 	if (ret_size > 0) {	/* relay data */
-+		ssize_t orig_ret_size = ret_size;
- 		if (size < ret_size)
- 			ret_size = size;
- 
- 		mutex_lock(&chip->buffer_mutex);
- 		rc = copy_to_user(buf, chip->data_buffer, ret_size);
--		memset(chip->data_buffer, 0, ret_size);
-+		memset(chip->data_buffer, 0, orig_ret_size);
- 		if (rc)
- 			ret_size = -EFAULT;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0054-PM-Domains-Fix-handling-of-wakeup-devices-during-sys.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0054-PM-Domains-Fix-handling-of-wakeup-devices-during-sys.patch
deleted file mode 100644
index 5541122..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0054-PM-Domains-Fix-handling-of-wakeup-devices-during-sys.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 51962c5f291ab2abb638e6121c36fbaa93a9567c Mon Sep 17 00:00:00 2001
-From: "Rafael J. Wysocki" <rjw at sisk.pl>
-Date: Tue, 13 Mar 2012 22:39:31 +0100
-Subject: [PATCH 054/147] PM / Domains: Fix handling of wakeup devices during
- system resume
-
-commit cc85b20780562d404e18a47b9b55b4a5102ae53e upstream.
-
-During system suspend pm_genpd_suspend_noirq() checks if the given
-device is in a wakeup path (i.e. it appears to be needed for one or
-more wakeup devices to work or is a wakeup device itself) and if it
-needs to be "active" for wakeup to work.  If that is the case, the
-function returns 0 without incrementing the device domain's counter
-of suspended devices and without executing genpd_stop_dev() for the
-device.  In consequence, the device is not stopped (e.g. its clock
-isn't disabled) and power is always supplied to its domain in the
-resulting system sleep state.
-
-However, pm_genpd_resume_noirq() doesn't repeat that check and it
-runs genpd_start_dev() and decrements the domain's counter of
-suspended devices even for the wakeup device that weren't stopped by
-pm_genpd_suspend_noirq().  As a result, the start callback may be run
-unnecessarily for them and their domains' counters of suspended
-devices may become negative.  Both outcomes aren't desirable, so fix
-pm_genpd_resume_noirq() to look for wakeup devices that might not be
-stopped by during system suspend.
-
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Tested-by: Simon Horman <horms at verge.net.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/base/power/domain.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/base/power/domain.c b/drivers/base/power/domain.c
-index 6790cf7..79038e5 100644
---- a/drivers/base/power/domain.c
-+++ b/drivers/base/power/domain.c
-@@ -751,7 +751,8 @@ static int pm_genpd_resume_noirq(struct device *dev)
- 	if (IS_ERR(genpd))
- 		return -EINVAL;
- 
--	if (genpd->suspend_power_off)
-+	if (genpd->suspend_power_off
-+	    || (dev->power.wakeup_path && genpd_dev_active_wakeup(genpd, dev)))
- 		return 0;
- 
- 	/*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0055-bootmem-sparsemem-remove-limit-constraint-in-alloc_b.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0055-bootmem-sparsemem-remove-limit-constraint-in-alloc_b.patch
deleted file mode 100644
index 0ec6e15..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0055-bootmem-sparsemem-remove-limit-constraint-in-alloc_b.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From ad2b33f9aee5de482d4077bcd81d6afde2935336 Mon Sep 17 00:00:00 2001
-From: Nishanth Aravamudan <nacc at linux.vnet.ibm.com>
-Date: Wed, 21 Mar 2012 16:34:07 -0700
-Subject: [PATCH 055/147] bootmem/sparsemem: remove limit constraint in
- alloc_bootmem_section
-
-commit f5bf18fa22f8c41a13eb8762c7373eb3a93a7333 upstream.
-
-While testing AMS (Active Memory Sharing) / CMO (Cooperative Memory
-Overcommit) on powerpc, we tripped the following:
-
-  kernel BUG at mm/bootmem.c:483!
-  cpu 0x0: Vector: 700 (Program Check) at [c000000000c03940]
-      pc: c000000000a62bd8: .alloc_bootmem_core+0x90/0x39c
-      lr: c000000000a64bcc: .sparse_early_usemaps_alloc_node+0x84/0x29c
-      sp: c000000000c03bc0
-     msr: 8000000000021032
-    current = 0xc000000000b0cce0
-    paca    = 0xc000000001d80000
-      pid   = 0, comm = swapper
-  kernel BUG at mm/bootmem.c:483!
-  enter ? for help
-  [c000000000c03c80] c000000000a64bcc
-  .sparse_early_usemaps_alloc_node+0x84/0x29c
-  [c000000000c03d50] c000000000a64f10 .sparse_init+0x12c/0x28c
-  [c000000000c03e20] c000000000a474f4 .setup_arch+0x20c/0x294
-  [c000000000c03ee0] c000000000a4079c .start_kernel+0xb4/0x460
-  [c000000000c03f90] c000000000009670 .start_here_common+0x1c/0x2c
-
-This is
-
-        BUG_ON(limit && goal + size > limit);
-
-and after some debugging, it seems that
-
-	goal = 0x7ffff000000
-	limit = 0x80000000000
-
-and sparse_early_usemaps_alloc_node ->
-sparse_early_usemaps_alloc_pgdat_section calls
-
-	return alloc_bootmem_section(usemap_size() * count, section_nr);
-
-This is on a system with 8TB available via the AMS pool, and as a quirk
-of AMS in firmware, all of that memory shows up in node 0.  So, we end
-up with an allocation that will fail the goal/limit constraints.
-
-In theory, we could "fall-back" to alloc_bootmem_node() in
-sparse_early_usemaps_alloc_node(), but since we actually have HOTREMOVE
-defined, we'll BUG_ON() instead.  A simple solution appears to be to
-unconditionally remove the limit condition in alloc_bootmem_section,
-meaning allocations are allowed to cross section boundaries (necessary
-for systems of this size).
-
-Johannes Weiner pointed out that if alloc_bootmem_section() no longer
-guarantees section-locality, we need check_usemap_section_nr() to print
-possible cross-dependencies between node descriptors and the usemaps
-allocated through it.  That makes the two loops in
-sparse_early_usemaps_alloc_node() identical, so re-factor the code a
-bit.
-
-[akpm at linux-foundation.org: code simplification]
-Signed-off-by: Nishanth Aravamudan <nacc at us.ibm.com>
-Cc: Dave Hansen <haveblue at us.ibm.com>
-Cc: Anton Blanchard <anton at au1.ibm.com>
-Cc: Paul Mackerras <paulus at samba.org>
-Cc: Ben Herrenschmidt <benh at kernel.crashing.org>
-Cc: Robert Jennings <rcj at linux.vnet.ibm.com>
-Acked-by: Johannes Weiner <hannes at cmpxchg.org>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/bootmem.c |    5 ++---
- mm/sparse.c  |   30 +++++++++++-------------------
- 2 files changed, 13 insertions(+), 22 deletions(-)
-
-diff --git a/mm/bootmem.c b/mm/bootmem.c
-index 1a77012..b863822 100644
---- a/mm/bootmem.c
-+++ b/mm/bootmem.c
-@@ -768,14 +768,13 @@ void * __init alloc_bootmem_section(unsigned long size,
- 				    unsigned long section_nr)
- {
- 	bootmem_data_t *bdata;
--	unsigned long pfn, goal, limit;
-+	unsigned long pfn, goal;
- 
- 	pfn = section_nr_to_pfn(section_nr);
- 	goal = pfn << PAGE_SHIFT;
--	limit = section_nr_to_pfn(section_nr + 1) << PAGE_SHIFT;
- 	bdata = &bootmem_node_data[early_pfn_to_nid(pfn)];
- 
--	return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, limit);
-+	return alloc_bootmem_core(bdata, size, SMP_CACHE_BYTES, goal, 0);
- }
- #endif
- 
-diff --git a/mm/sparse.c b/mm/sparse.c
-index 61d7cde..a8bc7d3 100644
---- a/mm/sparse.c
-+++ b/mm/sparse.c
-@@ -353,29 +353,21 @@ static void __init sparse_early_usemaps_alloc_node(unsigned long**usemap_map,
- 
- 	usemap = sparse_early_usemaps_alloc_pgdat_section(NODE_DATA(nodeid),
- 								 usemap_count);
--	if (usemap) {
--		for (pnum = pnum_begin; pnum < pnum_end; pnum++) {
--			if (!present_section_nr(pnum))
--				continue;
--			usemap_map[pnum] = usemap;
--			usemap += size;
-+	if (!usemap) {
-+		usemap = alloc_bootmem_node(NODE_DATA(nodeid), size * usemap_count);
-+		if (!usemap) {
-+			printk(KERN_WARNING "%s: allocation failed\n", __func__);
-+			return;
- 		}
--		return;
- 	}
- 
--	usemap = alloc_bootmem_node(NODE_DATA(nodeid), size * usemap_count);
--	if (usemap) {
--		for (pnum = pnum_begin; pnum < pnum_end; pnum++) {
--			if (!present_section_nr(pnum))
--				continue;
--			usemap_map[pnum] = usemap;
--			usemap += size;
--			check_usemap_section_nr(nodeid, usemap_map[pnum]);
--		}
--		return;
-+	for (pnum = pnum_begin; pnum < pnum_end; pnum++) {
-+		if (!present_section_nr(pnum))
-+			continue;
-+		usemap_map[pnum] = usemap;
-+		usemap += size;
-+		check_usemap_section_nr(nodeid, usemap_map[pnum]);
- 	}
--
--	printk(KERN_WARNING "%s: allocation failed\n", __func__);
- }
- 
- #ifndef CONFIG_SPARSEMEM_VMEMMAP
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0056-hugetlbfs-avoid-taking-i_mutex-from-hugetlbfs_read.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0056-hugetlbfs-avoid-taking-i_mutex-from-hugetlbfs_read.patch
deleted file mode 100644
index d5cfc26..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0056-hugetlbfs-avoid-taking-i_mutex-from-hugetlbfs_read.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 2bc105d9e4132f8a07cec0b5df3d308c1b99455f Mon Sep 17 00:00:00 2001
-From: "Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com>
-Date: Wed, 21 Mar 2012 16:34:08 -0700
-Subject: [PATCH 056/147] hugetlbfs: avoid taking i_mutex from
- hugetlbfs_read()
-
-commit a05b0855fd15504972dba2358e5faa172a1e50ba upstream.
-
-Taking i_mutex in hugetlbfs_read() can result in deadlock with mmap as
-explained below
-
- Thread A:
-  read() on hugetlbfs
-   hugetlbfs_read() called
-    i_mutex grabbed
-     hugetlbfs_read_actor() called
-      __copy_to_user() called
-       page fault is triggered
- Thread B, sharing address space with A:
-  mmap() the same file
-   ->mmap_sem is grabbed on task_B->mm->mmap_sem
-    hugetlbfs_file_mmap() is called
-     attempt to grab ->i_mutex and block waiting for A to give it up
- Thread A:
-  pagefault handled blocked on attempt to grab task_A->mm->mmap_sem,
- which happens to be the same thing as task_B->mm->mmap_sem.  Block waiting
- for B to give it up.
-
-AFAIU the i_mutex locking was added to hugetlbfs_read() as per
-http://lkml.indiana.edu/hypermail/linux/kernel/0707.2/3066.html to take
-care of the race between truncate and read.  This patch fixes this by
-looking at page->mapping under lock_page() (find_lock_page()) to ensure
-that the inode didn't get truncated in the range during a parallel read.
-
-Ideally we can extend the patch to make sure we don't increase i_size in
-mmap.  But that will break userspace, because applications will now have
-to use truncate(2) to increase i_size in hugetlbfs.
-
-Based on the original patch from Hillf Danton.
-
-Signed-off-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
-Cc: Hillf Danton <dhillf at gmail.com>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Cc: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/hugetlbfs/inode.c |   25 +++++++++----------------
- 1 file changed, 9 insertions(+), 16 deletions(-)
-
-diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index 0be5a78..2d0ca24 100644
---- a/fs/hugetlbfs/inode.c
-+++ b/fs/hugetlbfs/inode.c
-@@ -238,17 +238,10 @@ static ssize_t hugetlbfs_read(struct file *filp, char __user *buf,
- 	loff_t isize;
- 	ssize_t retval = 0;
- 
--	mutex_lock(&inode->i_mutex);
--
- 	/* validate length */
- 	if (len == 0)
- 		goto out;
- 
--	isize = i_size_read(inode);
--	if (!isize)
--		goto out;
--
--	end_index = (isize - 1) >> huge_page_shift(h);
- 	for (;;) {
- 		struct page *page;
- 		unsigned long nr, ret;
-@@ -256,18 +249,21 @@ static ssize_t hugetlbfs_read(struct file *filp, char __user *buf,
- 
- 		/* nr is the maximum number of bytes to copy from this page */
- 		nr = huge_page_size(h);
-+		isize = i_size_read(inode);
-+		if (!isize)
-+			goto out;
-+		end_index = (isize - 1) >> huge_page_shift(h);
- 		if (index >= end_index) {
- 			if (index > end_index)
- 				goto out;
- 			nr = ((isize - 1) & ~huge_page_mask(h)) + 1;
--			if (nr <= offset) {
-+			if (nr <= offset)
- 				goto out;
--			}
- 		}
- 		nr = nr - offset;
- 
- 		/* Find the page */
--		page = find_get_page(mapping, index);
-+		page = find_lock_page(mapping, index);
- 		if (unlikely(page == NULL)) {
- 			/*
- 			 * We have a HOLE, zero out the user-buffer for the
-@@ -279,17 +275,18 @@ static ssize_t hugetlbfs_read(struct file *filp, char __user *buf,
- 			else
- 				ra = 0;
- 		} else {
-+			unlock_page(page);
-+
- 			/*
- 			 * We have the page, copy it to user space buffer.
- 			 */
- 			ra = hugetlbfs_read_actor(page, offset, buf, len, nr);
- 			ret = ra;
-+			page_cache_release(page);
- 		}
- 		if (ra < 0) {
- 			if (retval == 0)
- 				retval = ra;
--			if (page)
--				page_cache_release(page);
- 			goto out;
- 		}
- 
-@@ -299,16 +296,12 @@ static ssize_t hugetlbfs_read(struct file *filp, char __user *buf,
- 		index += offset >> huge_page_shift(h);
- 		offset &= ~huge_page_mask(h);
- 
--		if (page)
--			page_cache_release(page);
--
- 		/* short read or no more work */
- 		if ((ret != nr) || (len == 0))
- 			break;
- 	}
- out:
- 	*ppos = ((loff_t)index << huge_page_shift(h)) + offset;
--	mutex_unlock(&inode->i_mutex);
- 	return retval;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0057-ASoC-fsl-p1022ds-tell-the-WM8776-codec-driver-that-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0057-ASoC-fsl-p1022ds-tell-the-WM8776-codec-driver-that-i.patch
deleted file mode 100644
index a4c39dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0057-ASoC-fsl-p1022ds-tell-the-WM8776-codec-driver-that-i.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From a7338f169446baa4311a9248017ab75ed417a46c Mon Sep 17 00:00:00 2001
-From: Timur Tabi <timur at freescale.com>
-Date: Fri, 16 Mar 2012 16:32:52 -0500
-Subject: [PATCH 057/147] ASoC: fsl: p1022ds: tell the WM8776 codec driver
- that it's the master
-
-commit 70ac07bb633dee75ac554195b9a4d69adfa7803c upstream.
-
-The WM8776 codec driver requires the machine driver to set one of the
-SND_SOC_DAIFMT_CBx_xxx values.  The P1022DS machine driver should be setting
-SND_SOC_DAIFMT_CBM_CFM, but since that value was zero, no one noticed.
-
-Commit 75d9ac46 ("ASoC: Allow DAI formats to be specified in the
-dai_link"), however, changed the value of SND_SOC_DAIFMT_CBM_CFM from zero
-to a non-zero value, which means that it now needs to be specifically set
-by the machine driver.
-
-We also set SND_SOC_DAIFMT_NB_NF, for the same reason.
-
-Signed-off-by: Timur Tabi <timur at freescale.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/fsl/p1022_ds.c |   24 ++++++++++++++++--------
- 1 file changed, 16 insertions(+), 8 deletions(-)
-
-diff --git a/sound/soc/fsl/p1022_ds.c b/sound/soc/fsl/p1022_ds.c
-index 2c064a9..075677c 100644
---- a/sound/soc/fsl/p1022_ds.c
-+++ b/sound/soc/fsl/p1022_ds.c
-@@ -392,7 +392,8 @@ static int p1022_ds_probe(struct platform_device *pdev)
- 	}
- 
- 	if (strcasecmp(sprop, "i2s-slave") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_I2S;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBM_CFM;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
- 
-@@ -409,31 +410,38 @@ static int p1022_ds_probe(struct platform_device *pdev)
- 		}
- 		mdata->clk_frequency = be32_to_cpup(iprop);
- 	} else if (strcasecmp(sprop, "i2s-master") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_I2S;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_I2S | SND_SOC_DAIFMT_CBS_CFS;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
- 	} else if (strcasecmp(sprop, "lj-slave") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_LEFT_J;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBM_CFM;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
- 	} else if (strcasecmp(sprop, "lj-master") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_LEFT_J;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_LEFT_J | SND_SOC_DAIFMT_CBS_CFS;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
- 	} else if (strcasecmp(sprop, "rj-slave") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_RIGHT_J;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_CBM_CFM;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
- 	} else if (strcasecmp(sprop, "rj-master") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_RIGHT_J;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_RIGHT_J | SND_SOC_DAIFMT_CBS_CFS;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
- 	} else if (strcasecmp(sprop, "ac97-slave") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_AC97;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_AC97 | SND_SOC_DAIFMT_CBM_CFM;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_OUT;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_IN;
- 	} else if (strcasecmp(sprop, "ac97-master") == 0) {
--		mdata->dai_format = SND_SOC_DAIFMT_AC97;
-+		mdata->dai_format = SND_SOC_DAIFMT_NB_NF |
-+			SND_SOC_DAIFMT_AC97 | SND_SOC_DAIFMT_CBS_CFS;
- 		mdata->codec_clk_direction = SND_SOC_CLOCK_IN;
- 		mdata->cpu_clk_direction = SND_SOC_CLOCK_OUT;
- 	} else {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0058-ASoC-pxa-ssp-atomically-set-stream-active-masks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0058-ASoC-pxa-ssp-atomically-set-stream-active-masks.patch
deleted file mode 100644
index 295a909..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0058-ASoC-pxa-ssp-atomically-set-stream-active-masks.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From ab7d4a1c2c58f17a777947ef7e0ae242fea985e4 Mon Sep 17 00:00:00 2001
-From: Daniel Mack <zonque at gmail.com>
-Date: Mon, 19 Mar 2012 09:12:53 +0100
-Subject: [PATCH 058/147] ASoC: pxa-ssp: atomically set stream active masks
-
-commit 273b72c8ce6b28df6b49423d775c3e59072c73c5 upstream.
-
-PXA's SSP engine fails to take its current channel phase into account
-when enabling a stream while the engine is already running. This
-results in randomly swapped left/right channels on either the record
-or the playback side, depending on which one was enabled first.
-
-The following patch fixes this by factoring out the bit field
-modifications in question to a separate function that pauses the
-engine temporarily, modifies the bits and kicks it off again
-afterwards. Appearantly, a transition of SSCR0_SSE syncs both
-directions properly.
-
-The patch has been rolled out to quite a number of devices over the
-last weeks and seems to fix the issue reliably.
-
-Signed-off-by: Daniel Mack <zonque at gmail.com>
-Reported-and-tested-by: Sven Neumann <s.neumann at raumfeld.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/pxa/pxa-ssp.c |   61 ++++++++++++++++++++++++++++-------------------
- 1 file changed, 36 insertions(+), 25 deletions(-)
-
-diff --git a/sound/soc/pxa/pxa-ssp.c b/sound/soc/pxa/pxa-ssp.c
-index 8ad93ee..b583e60 100644
---- a/sound/soc/pxa/pxa-ssp.c
-+++ b/sound/soc/pxa/pxa-ssp.c
-@@ -668,6 +668,38 @@ static int pxa_ssp_hw_params(struct snd_pcm_substream *substream,
- 	return 0;
- }
- 
-+static void pxa_ssp_set_running_bit(struct snd_pcm_substream *substream,
-+				    struct ssp_device *ssp, int value)
-+{
-+	uint32_t sscr0 = pxa_ssp_read_reg(ssp, SSCR0);
-+	uint32_t sscr1 = pxa_ssp_read_reg(ssp, SSCR1);
-+	uint32_t sspsp = pxa_ssp_read_reg(ssp, SSPSP);
-+	uint32_t sssr = pxa_ssp_read_reg(ssp, SSSR);
-+
-+	if (value && (sscr0 & SSCR0_SSE))
-+		pxa_ssp_write_reg(ssp, SSCR0, sscr0 & ~SSCR0_SSE);
-+
-+	if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK) {
-+		if (value)
-+			sscr1 |= SSCR1_TSRE;
-+		else
-+			sscr1 &= ~SSCR1_TSRE;
-+	} else {
-+		if (value)
-+			sscr1 |= SSCR1_RSRE;
-+		else
-+			sscr1 &= ~SSCR1_RSRE;
-+	}
-+
-+	pxa_ssp_write_reg(ssp, SSCR1, sscr1);
-+
-+	if (value) {
-+		pxa_ssp_write_reg(ssp, SSSR, sssr);
-+		pxa_ssp_write_reg(ssp, SSPSP, sspsp);
-+		pxa_ssp_write_reg(ssp, SSCR0, sscr0 | SSCR0_SSE);
-+	}
-+}
-+
- static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd,
- 			   struct snd_soc_dai *cpu_dai)
- {
-@@ -681,42 +713,21 @@ static int pxa_ssp_trigger(struct snd_pcm_substream *substream, int cmd,
- 		pxa_ssp_enable(ssp);
- 		break;
- 	case SNDRV_PCM_TRIGGER_PAUSE_RELEASE:
--		val = pxa_ssp_read_reg(ssp, SSCR1);
--		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
--			val |= SSCR1_TSRE;
--		else
--			val |= SSCR1_RSRE;
--		pxa_ssp_write_reg(ssp, SSCR1, val);
-+		pxa_ssp_set_running_bit(substream, ssp, 1);
- 		val = pxa_ssp_read_reg(ssp, SSSR);
- 		pxa_ssp_write_reg(ssp, SSSR, val);
- 		break;
- 	case SNDRV_PCM_TRIGGER_START:
--		val = pxa_ssp_read_reg(ssp, SSCR1);
--		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
--			val |= SSCR1_TSRE;
--		else
--			val |= SSCR1_RSRE;
--		pxa_ssp_write_reg(ssp, SSCR1, val);
--		pxa_ssp_enable(ssp);
-+		pxa_ssp_set_running_bit(substream, ssp, 1);
- 		break;
- 	case SNDRV_PCM_TRIGGER_STOP:
--		val = pxa_ssp_read_reg(ssp, SSCR1);
--		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
--			val &= ~SSCR1_TSRE;
--		else
--			val &= ~SSCR1_RSRE;
--		pxa_ssp_write_reg(ssp, SSCR1, val);
-+		pxa_ssp_set_running_bit(substream, ssp, 0);
- 		break;
- 	case SNDRV_PCM_TRIGGER_SUSPEND:
- 		pxa_ssp_disable(ssp);
- 		break;
- 	case SNDRV_PCM_TRIGGER_PAUSE_PUSH:
--		val = pxa_ssp_read_reg(ssp, SSCR1);
--		if (substream->stream == SNDRV_PCM_STREAM_PLAYBACK)
--			val &= ~SSCR1_TSRE;
--		else
--			val &= ~SSCR1_RSRE;
--		pxa_ssp_write_reg(ssp, SSCR1, val);
-+		pxa_ssp_set_running_bit(substream, ssp, 0);
- 		break;
- 
- 	default:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0059-tcm_loop-Set-residual-field-for-SCSI-commands.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0059-tcm_loop-Set-residual-field-for-SCSI-commands.patch
deleted file mode 100644
index 367ed76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0059-tcm_loop-Set-residual-field-for-SCSI-commands.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From eb6dc69e78c98c8c61faba348a6eaf6cee1439d9 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Tue, 14 Feb 2012 15:30:31 -0800
-Subject: [PATCH 059/147] tcm_loop: Set residual field for SCSI commands
-
-commit 6cf3fa6918baab0c447f1206f1cef9166ad04864 upstream.
-
-If the target core signals an over- or under-run, tcm_loop should call
-scsi_set_resid() to tell the SCSI midlayer about the residual data length.
-
-The difference can be seen by doing something like
-
-    strace -eioctl sg_raw -r 1024 /dev/sda 8 0 0 0 1 0 > /dev/null
-
-and looking at the "resid=" part of the SG_IO ioctl -- after this patch,
-the field is correctly reported as 512.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/loopback/tcm_loop.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/target/loopback/tcm_loop.c b/drivers/target/loopback/tcm_loop.c
-index 81d5832..5d1d4f2 100644
---- a/drivers/target/loopback/tcm_loop.c
-+++ b/drivers/target/loopback/tcm_loop.c
-@@ -866,6 +866,9 @@ static int tcm_loop_queue_data_in(struct se_cmd *se_cmd)
- 
- 	sc->result = SAM_STAT_GOOD;
- 	set_host_byte(sc, DID_OK);
-+	if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
-+	    (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
-+		scsi_set_resid(sc, se_cmd->residual_count);
- 	sc->scsi_done(sc);
- 	return 0;
- }
-@@ -891,6 +894,9 @@ static int tcm_loop_queue_status(struct se_cmd *se_cmd)
- 		sc->result = se_cmd->scsi_status;
- 
- 	set_host_byte(sc, DID_OK);
-+	if ((se_cmd->se_cmd_flags & SCF_OVERFLOW_BIT) ||
-+	    (se_cmd->se_cmd_flags & SCF_UNDERFLOW_BIT))
-+		scsi_set_resid(sc, se_cmd->residual_count);
- 	sc->scsi_done(sc);
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0060-iscsi-target-Fix-iscsit_alloc_buffs-failure-cases.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0060-iscsi-target-Fix-iscsit_alloc_buffs-failure-cases.patch
deleted file mode 100644
index c4cbbea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0060-iscsi-target-Fix-iscsit_alloc_buffs-failure-cases.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From eeb9b513b81a2ebbb3812150c091ff26ee28d912 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Thu, 23 Feb 2012 17:28:43 -0800
-Subject: [PATCH 060/147] iscsi-target: Fix iscsit_alloc_buffs() failure cases
-
-commit d335e6054db616bce3f040e659fa38440518ad1d upstream.
-
-Make iscsit_alloc_buffs() failure case for page_alloc_failed use correct
-__free_page() SGL pointer, and return -ENOMEM for iscsit_allocate_iovecs
-failure to push se_cmd->t_mem_sg release into iscsit_release_cmd()
-callback during iscsit_add_reject_from_cmd() connection reset.
-
-Also drop cmd->t_mem_sg = NULL assignment from page_alloc_failed
-failure case.
-
-Reported-by: Roland Dreier <roland at purestorage.com>
-Cc: Andy Grover <agrover at redhat.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/iscsi/iscsi_target.c |   14 ++++++--------
- 1 file changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
-index 03d3528..0842cc7 100644
---- a/drivers/target/iscsi/iscsi_target.c
-+++ b/drivers/target/iscsi/iscsi_target.c
-@@ -781,7 +781,7 @@ static int iscsit_alloc_buffs(struct iscsi_cmd *cmd)
- 	struct scatterlist *sgl;
- 	u32 length = cmd->se_cmd.data_length;
- 	int nents = DIV_ROUND_UP(length, PAGE_SIZE);
--	int i = 0, ret;
-+	int i = 0, j = 0, ret;
- 	/*
- 	 * If no SCSI payload is present, allocate the default iovecs used for
- 	 * iSCSI PDU Header
-@@ -822,17 +822,15 @@ static int iscsit_alloc_buffs(struct iscsi_cmd *cmd)
- 	 */
-         ret = iscsit_allocate_iovecs(cmd);
-         if (ret < 0)
--		goto page_alloc_failed;
-+		return -ENOMEM;
- 
- 	return 0;
- 
- page_alloc_failed:
--	while (i >= 0) {
--		__free_page(sg_page(&sgl[i]));
--		i--;
--	}
--	kfree(cmd->t_mem_sg);
--	cmd->t_mem_sg = NULL;
-+	while (j < i)
-+		__free_page(sg_page(&sgl[j++]));
-+
-+	kfree(sgl);
- 	return -ENOMEM;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0061-iscsi-target-Fix-dynamic-explict-NodeACL-pointer-ref.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0061-iscsi-target-Fix-dynamic-explict-NodeACL-pointer-ref.patch
deleted file mode 100644
index 016bab4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0061-iscsi-target-Fix-dynamic-explict-NodeACL-pointer-ref.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 43d63ac69fcc86c6b92dc1b923a3b0e5bd59dab5 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Sun, 26 Feb 2012 22:16:07 -0800
-Subject: [PATCH 061/147] iscsi-target: Fix dynamic -> explict NodeACL pointer
- reference
-
-commit d06283341aee9e48eff1b068779d340785c635ce upstream.
-
-This patch fixes a free after use in lio_target_make_nodeacl() where
-iscsi_node_acl was referenced from the original se_nacl_new allocation,
-instead of from core_tpg_add_initiator_node_acl() in the case of dynamic
--> explict NodeACL conversion.
-
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/iscsi/iscsi_target_configfs.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/target/iscsi/iscsi_target_configfs.c b/drivers/target/iscsi/iscsi_target_configfs.c
-index db32784..83dcf49 100644
---- a/drivers/target/iscsi/iscsi_target_configfs.c
-+++ b/drivers/target/iscsi/iscsi_target_configfs.c
-@@ -816,9 +816,6 @@ static struct se_node_acl *lio_target_make_nodeacl(
- 	if (!se_nacl_new)
- 		return ERR_PTR(-ENOMEM);
- 
--	acl = container_of(se_nacl_new, struct iscsi_node_acl,
--				se_node_acl);
--
- 	cmdsn_depth = ISCSI_TPG_ATTRIB(tpg)->default_cmdsn_depth;
- 	/*
- 	 * se_nacl_new may be released by core_tpg_add_initiator_node_acl()
-@@ -829,7 +826,8 @@ static struct se_node_acl *lio_target_make_nodeacl(
- 	if (IS_ERR(se_nacl))
- 		return se_nacl;
- 
--	stats_cg = &acl->se_node_acl.acl_fabric_stat_group;
-+	acl = container_of(se_nacl, struct iscsi_node_acl, se_node_acl);
-+	stats_cg = &se_nacl->acl_fabric_stat_group;
- 
- 	stats_cg->default_groups = kzalloc(sizeof(struct config_group) * 2,
- 				GFP_KERNEL);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0062-ALSA-hda-fix-printing-of-high-HDMI-sample-rates.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0062-ALSA-hda-fix-printing-of-high-HDMI-sample-rates.patch
deleted file mode 100644
index 0eef1c0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0062-ALSA-hda-fix-printing-of-high-HDMI-sample-rates.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 6b3759def25d01a00d3a88701e97cb397f3aa805 Mon Sep 17 00:00:00 2001
-From: Anssi Hannula <anssi.hannula at iki.fi>
-Date: Tue, 13 Mar 2012 17:43:02 +0200
-Subject: [PATCH 062/147] ALSA: hda - fix printing of high HDMI sample rates
-
-commit 25dc16f69892182192b1234594fd3cf342ad4195 upstream.
-
-A previous commit af65cbf296 (ALSA: hdmi: fix printout of SAD sampling
-rates) fixed the sample rates shown in /proc/asound/cardX/eldY and
-kernel log to not be entirely wrong. However, a missing rate from the
-array added in the patch causes HDMI rates 88.2 kHz, 96 kHz, 176.4 kHz,
-and 192 kHz to be shown as 96 kHz, 176.4 kHz, 192 kHz, and 384 kHz,
-respectively.
-
-Fix the reporting by adding the ALSA rate 64 kHz into the conversion
-array between 48 kHz and 88.2 kHz.
-
-Signed-off-by: Anssi Hannula <anssi.hannula at iki.fi>
-Cc: Pierre-Louis Bossart <pierre-louis.bossart at linux.intel.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/hda_eld.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/hda_eld.c b/sound/pci/hda/hda_eld.c
-index c1da422..b58b4b1 100644
---- a/sound/pci/hda/hda_eld.c
-+++ b/sound/pci/hda/hda_eld.c
-@@ -385,8 +385,8 @@ error:
- static void hdmi_print_pcm_rates(int pcm, char *buf, int buflen)
- {
- 	static unsigned int alsa_rates[] = {
--		5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 88200,
--		96000, 176400, 192000, 384000
-+		5512, 8000, 11025, 16000, 22050, 32000, 44100, 48000, 64000,
-+		88200, 96000, 176400, 192000, 384000
- 	};
- 	int i, j;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0063-usb-gadget-fix-a-section-mismatch-when-compiling-g_f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0063-usb-gadget-fix-a-section-mismatch-when-compiling-g_f.patch
deleted file mode 100644
index e17e866..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0063-usb-gadget-fix-a-section-mismatch-when-compiling-g_f.patch
+++ /dev/null
@@ -1,190 +0,0 @@
-From 7086d25802a86ade70baa0edfa830e10ad7cd434 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Lothar=20Wa=C3=9Fmann?= <LW at KARO-electronics.de>
-Date: Sun, 11 Mar 2012 15:08:46 +0100
-Subject: [PATCH 063/147] usb gadget: fix a section mismatch when compiling
- g_ffs with CONFIG_USB_FUNCTIONFS_ETH
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8d0698428822ce63f7269e7fe81fc4580807b9ac upstream.
-
- commit 28824b18ac4705e876a282a15ea0de8fc957551f:
- |Author: Michal Nazarewicz <m.nazarewicz at samsung.com>
- |Date:   Wed May 5 12:53:13 2010 +0200
- |
- |    USB: gadget: __init and __exit tags removed
- |
- |    __init, __initdata and __exit tags have have been removed from
- |    various files to make it possible for gadgets that do not use
- |    the __init/__exit tags to use those.
- obviously missed (at least) this case leading to a section mismatch in
- g_ffs.c when compiling with CONFIG_USB_FUNCTIONFS_ETH enabled.
-
-Signed-off-by: Lothar Wa??mann <LW at KARO-electronics.de>
-Acked-by: Michal Nazarewicz <mina86 at mina86.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/f_subset.c |   34 +++++++++++++++++-----------------
- 1 file changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/drivers/usb/gadget/f_subset.c b/drivers/usb/gadget/f_subset.c
-index 85bd9bd..160ba02 100644
---- a/drivers/usb/gadget/f_subset.c
-+++ b/drivers/usb/gadget/f_subset.c
-@@ -74,7 +74,7 @@ static inline struct f_gether *func_to_geth(struct usb_function *f)
- 
- /* interface descriptor: */
- 
--static struct usb_interface_descriptor subset_data_intf __initdata = {
-+static struct usb_interface_descriptor subset_data_intf = {
- 	.bLength =		sizeof subset_data_intf,
- 	.bDescriptorType =	USB_DT_INTERFACE,
- 
-@@ -87,7 +87,7 @@ static struct usb_interface_descriptor subset_data_intf __initdata = {
- 	/* .iInterface = DYNAMIC */
- };
- 
--static struct usb_cdc_header_desc mdlm_header_desc __initdata = {
-+static struct usb_cdc_header_desc mdlm_header_desc = {
- 	.bLength =		sizeof mdlm_header_desc,
- 	.bDescriptorType =	USB_DT_CS_INTERFACE,
- 	.bDescriptorSubType =	USB_CDC_HEADER_TYPE,
-@@ -95,7 +95,7 @@ static struct usb_cdc_header_desc mdlm_header_desc __initdata = {
- 	.bcdCDC =		cpu_to_le16(0x0110),
- };
- 
--static struct usb_cdc_mdlm_desc mdlm_desc __initdata = {
-+static struct usb_cdc_mdlm_desc mdlm_desc = {
- 	.bLength =		sizeof mdlm_desc,
- 	.bDescriptorType =	USB_DT_CS_INTERFACE,
- 	.bDescriptorSubType =	USB_CDC_MDLM_TYPE,
-@@ -111,7 +111,7 @@ static struct usb_cdc_mdlm_desc mdlm_desc __initdata = {
-  * can't really use its struct.  All we do here is say that we're using
-  * the submode of "SAFE" which directly matches the CDC Subset.
-  */
--static u8 mdlm_detail_desc[] __initdata = {
-+static u8 mdlm_detail_desc[] = {
- 	6,
- 	USB_DT_CS_INTERFACE,
- 	USB_CDC_MDLM_DETAIL_TYPE,
-@@ -121,7 +121,7 @@ static u8 mdlm_detail_desc[] __initdata = {
- 	0,	/* network data capabilities ("raw" encapsulation) */
- };
- 
--static struct usb_cdc_ether_desc ether_desc __initdata = {
-+static struct usb_cdc_ether_desc ether_desc = {
- 	.bLength =		sizeof ether_desc,
- 	.bDescriptorType =	USB_DT_CS_INTERFACE,
- 	.bDescriptorSubType =	USB_CDC_ETHERNET_TYPE,
-@@ -136,7 +136,7 @@ static struct usb_cdc_ether_desc ether_desc __initdata = {
- 
- /* full speed support: */
- 
--static struct usb_endpoint_descriptor fs_subset_in_desc __initdata = {
-+static struct usb_endpoint_descriptor fs_subset_in_desc = {
- 	.bLength =		USB_DT_ENDPOINT_SIZE,
- 	.bDescriptorType =	USB_DT_ENDPOINT,
- 
-@@ -144,7 +144,7 @@ static struct usb_endpoint_descriptor fs_subset_in_desc __initdata = {
- 	.bmAttributes =		USB_ENDPOINT_XFER_BULK,
- };
- 
--static struct usb_endpoint_descriptor fs_subset_out_desc __initdata = {
-+static struct usb_endpoint_descriptor fs_subset_out_desc = {
- 	.bLength =		USB_DT_ENDPOINT_SIZE,
- 	.bDescriptorType =	USB_DT_ENDPOINT,
- 
-@@ -152,7 +152,7 @@ static struct usb_endpoint_descriptor fs_subset_out_desc __initdata = {
- 	.bmAttributes =		USB_ENDPOINT_XFER_BULK,
- };
- 
--static struct usb_descriptor_header *fs_eth_function[] __initdata = {
-+static struct usb_descriptor_header *fs_eth_function[] = {
- 	(struct usb_descriptor_header *) &subset_data_intf,
- 	(struct usb_descriptor_header *) &mdlm_header_desc,
- 	(struct usb_descriptor_header *) &mdlm_desc,
-@@ -165,7 +165,7 @@ static struct usb_descriptor_header *fs_eth_function[] __initdata = {
- 
- /* high speed support: */
- 
--static struct usb_endpoint_descriptor hs_subset_in_desc __initdata = {
-+static struct usb_endpoint_descriptor hs_subset_in_desc = {
- 	.bLength =		USB_DT_ENDPOINT_SIZE,
- 	.bDescriptorType =	USB_DT_ENDPOINT,
- 
-@@ -173,7 +173,7 @@ static struct usb_endpoint_descriptor hs_subset_in_desc __initdata = {
- 	.wMaxPacketSize =	cpu_to_le16(512),
- };
- 
--static struct usb_endpoint_descriptor hs_subset_out_desc __initdata = {
-+static struct usb_endpoint_descriptor hs_subset_out_desc = {
- 	.bLength =		USB_DT_ENDPOINT_SIZE,
- 	.bDescriptorType =	USB_DT_ENDPOINT,
- 
-@@ -181,7 +181,7 @@ static struct usb_endpoint_descriptor hs_subset_out_desc __initdata = {
- 	.wMaxPacketSize =	cpu_to_le16(512),
- };
- 
--static struct usb_descriptor_header *hs_eth_function[] __initdata = {
-+static struct usb_descriptor_header *hs_eth_function[] = {
- 	(struct usb_descriptor_header *) &subset_data_intf,
- 	(struct usb_descriptor_header *) &mdlm_header_desc,
- 	(struct usb_descriptor_header *) &mdlm_desc,
-@@ -194,7 +194,7 @@ static struct usb_descriptor_header *hs_eth_function[] __initdata = {
- 
- /* super speed support: */
- 
--static struct usb_endpoint_descriptor ss_subset_in_desc __initdata = {
-+static struct usb_endpoint_descriptor ss_subset_in_desc = {
- 	.bLength =		USB_DT_ENDPOINT_SIZE,
- 	.bDescriptorType =	USB_DT_ENDPOINT,
- 
-@@ -202,7 +202,7 @@ static struct usb_endpoint_descriptor ss_subset_in_desc __initdata = {
- 	.wMaxPacketSize =	cpu_to_le16(1024),
- };
- 
--static struct usb_endpoint_descriptor ss_subset_out_desc __initdata = {
-+static struct usb_endpoint_descriptor ss_subset_out_desc = {
- 	.bLength =		USB_DT_ENDPOINT_SIZE,
- 	.bDescriptorType =	USB_DT_ENDPOINT,
- 
-@@ -210,7 +210,7 @@ static struct usb_endpoint_descriptor ss_subset_out_desc __initdata = {
- 	.wMaxPacketSize =	cpu_to_le16(1024),
- };
- 
--static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc __initdata = {
-+static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc = {
- 	.bLength =		sizeof ss_subset_bulk_comp_desc,
- 	.bDescriptorType =	USB_DT_SS_ENDPOINT_COMP,
- 
-@@ -219,7 +219,7 @@ static struct usb_ss_ep_comp_descriptor ss_subset_bulk_comp_desc __initdata = {
- 	/* .bmAttributes =	0, */
- };
- 
--static struct usb_descriptor_header *ss_eth_function[] __initdata = {
-+static struct usb_descriptor_header *ss_eth_function[] = {
- 	(struct usb_descriptor_header *) &subset_data_intf,
- 	(struct usb_descriptor_header *) &mdlm_header_desc,
- 	(struct usb_descriptor_header *) &mdlm_desc,
-@@ -290,7 +290,7 @@ static void geth_disable(struct usb_function *f)
- 
- /* serial function driver setup/binding */
- 
--static int __init
-+static int
- geth_bind(struct usb_configuration *c, struct usb_function *f)
- {
- 	struct usb_composite_dev *cdev = c->cdev;
-@@ -405,7 +405,7 @@ geth_unbind(struct usb_configuration *c, struct usb_function *f)
-  * Caller must have called @gether_setup().  Caller is also responsible
-  * for calling @gether_cleanup() before module unload.
-  */
--int __init geth_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN])
-+int geth_bind_config(struct usb_configuration *c, u8 ethaddr[ETH_ALEN])
- {
- 	struct f_gether	*geth;
- 	int		status;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0064-udlfb-remove-sysfs-framebuffer-device-with-USB-.disc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0064-udlfb-remove-sysfs-framebuffer-device-with-USB-.disc.patch
deleted file mode 100644
index 42684c7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0064-udlfb-remove-sysfs-framebuffer-device-with-USB-.disc.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 65fc28a302c7d7220dbe8609899724edb9687162 Mon Sep 17 00:00:00 2001
-From: Kay Sievers <kay.sievers at vrfy.org>
-Date: Sat, 28 Jan 2012 19:57:46 +0000
-Subject: [PATCH 064/147] udlfb: remove sysfs framebuffer device with USB
- .disconnect()
-
-commit ce880cb860f36694d2cdebfac9e6ae18176fe4c4 upstream.
-
-The USB graphics card driver delays the unregistering of the framebuffer
-device to a workqueue, which breaks the userspace visible remove uevent
-sequence. Recent userspace tools started to support USB graphics card
-hotplug out-of-the-box and rely on proper events sent by the kernel.
-
-The framebuffer device is a direct child of the USB interface which is
-removed immediately after the USB .disconnect() callback. But the fb device
-in /sys stays around until its final cleanup, at a time where all the parent
-devices have been removed already.
-
-To work around that, we remove the sysfs fb device directly in the USB
-.disconnect() callback and leave only the cleanup of the internal fb
-data to the delayed work.
-
-Before:
- add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
- add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
- add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb0 (graphics)
- remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
- remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
- remove   /2-1.2:1.0/graphics/fb0 (graphics)
-
-After:
- add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
- add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
- add      /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
- remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0/graphics/fb1 (graphics)
- remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2/2-1.2:1.0 (usb)
- remove   /devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.2 (usb)
-
-Tested-by: Bernie Thompson <bernie at plugable.com>
-Acked-by: Bernie Thompson <bernie at plugable.com>
-Signed-off-by: Kay Sievers <kay.sievers at vrfy.org>
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/fbmem.c |   18 +++++++++++++++++-
- drivers/video/udlfb.c |    2 +-
- include/linux/fb.h    |    1 +
- 3 files changed, 19 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/video/fbmem.c b/drivers/video/fbmem.c
-index ad93629..7a41220 100644
---- a/drivers/video/fbmem.c
-+++ b/drivers/video/fbmem.c
-@@ -1651,6 +1651,7 @@ static int do_unregister_framebuffer(struct fb_info *fb_info)
- 	if (ret)
- 		return -EINVAL;
- 
-+	unlink_framebuffer(fb_info);
- 	if (fb_info->pixmap.addr &&
- 	    (fb_info->pixmap.flags & FB_PIXMAP_DEFAULT))
- 		kfree(fb_info->pixmap.addr);
-@@ -1658,7 +1659,6 @@ static int do_unregister_framebuffer(struct fb_info *fb_info)
- 	registered_fb[i] = NULL;
- 	num_registered_fb--;
- 	fb_cleanup_device(fb_info);
--	device_destroy(fb_class, MKDEV(FB_MAJOR, i));
- 	event.info = fb_info;
- 	fb_notifier_call_chain(FB_EVENT_FB_UNREGISTERED, &event);
- 
-@@ -1667,6 +1667,22 @@ static int do_unregister_framebuffer(struct fb_info *fb_info)
- 	return 0;
- }
- 
-+int unlink_framebuffer(struct fb_info *fb_info)
-+{
-+	int i;
-+
-+	i = fb_info->node;
-+	if (i < 0 || i >= FB_MAX || registered_fb[i] != fb_info)
-+		return -EINVAL;
-+
-+	if (fb_info->dev) {
-+		device_destroy(fb_class, MKDEV(FB_MAJOR, i));
-+		fb_info->dev = NULL;
-+	}
-+	return 0;
-+}
-+EXPORT_SYMBOL(unlink_framebuffer);
-+
- void remove_conflicting_framebuffers(struct apertures_struct *a,
- 				     const char *name, bool primary)
- {
-diff --git a/drivers/video/udlfb.c b/drivers/video/udlfb.c
-index 3473e75..41746bb 100644
---- a/drivers/video/udlfb.c
-+++ b/drivers/video/udlfb.c
-@@ -1739,7 +1739,7 @@ static void dlfb_usb_disconnect(struct usb_interface *interface)
- 	for (i = 0; i < ARRAY_SIZE(fb_device_attrs); i++)
- 		device_remove_file(info->dev, &fb_device_attrs[i]);
- 	device_remove_bin_file(info->dev, &edid_attr);
--
-+	unlink_framebuffer(info);
- 	usb_set_intfdata(interface, NULL);
- 
- 	/* if clients still have us open, will be freed on last close */
-diff --git a/include/linux/fb.h b/include/linux/fb.h
-index 1d6836c..73845ce 100644
---- a/include/linux/fb.h
-+++ b/include/linux/fb.h
-@@ -997,6 +997,7 @@ extern ssize_t fb_sys_write(struct fb_info *info, const char __user *buf,
- /* drivers/video/fbmem.c */
- extern int register_framebuffer(struct fb_info *fb_info);
- extern int unregister_framebuffer(struct fb_info *fb_info);
-+extern int unlink_framebuffer(struct fb_info *fb_info);
- extern void remove_conflicting_framebuffers(struct apertures_struct *a,
- 				const char *name, bool primary);
- extern int fb_prepare_logo(struct fb_info *fb_info, int rotate);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0065-tcm_fc-Fix-fc_exch-memory-leak-in-ft_send_resp_statu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0065-tcm_fc-Fix-fc_exch-memory-leak-in-ft_send_resp_statu.patch
deleted file mode 100644
index e4311b4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0065-tcm_fc-Fix-fc_exch-memory-leak-in-ft_send_resp_statu.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a38ce1660f9b3f6abec9206118adc0a33bda9730 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Fri, 9 Mar 2012 23:45:38 -0800
-Subject: [PATCH 065/147] tcm_fc: Fix fc_exch memory leak in
- ft_send_resp_status
-
-commit 031ed4d565b31880a4136bb7366bc89f5b1dba7d upstream.
-
-This patch fixes a bug in tcm_fc where fc_exch memory from fc_exch_mgr->ep_pool
-is currently being leaked by ft_send_resp_status() usage.  Following current
-code in ft_queue_status() response path, using lport->tt.seq_send() needs to be
-followed by a lport->tt.exch_done() in order to release fc_exch memory back into
-libfc_em kmem_cache.
-
-ft_send_resp_status() code is currently used in pre submit se_cmd ft_send_work()
-error exceptions, TM request setup exceptions, and main TM response callback
-path in ft_queue_tm_resp().  This bugfix addresses the leak in these cases.
-
-Cc: Mark D Rustad <mark.d.rustad at intel.com>
-Cc: Kiran Patil <kiran.patil at intel.com>
-Cc: Robert Love <robert.w.love at intel.com>
-Cc: Andy Grover <agrover at redhat.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/tcm_fc/tfc_cmd.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
-index 71fc9ce..754b669 100644
---- a/drivers/target/tcm_fc/tfc_cmd.c
-+++ b/drivers/target/tcm_fc/tfc_cmd.c
-@@ -329,10 +329,12 @@ static void ft_send_resp_status(struct fc_lport *lport,
- 
- 	fc_fill_reply_hdr(fp, rx_fp, FC_RCTL_DD_CMD_STATUS, 0);
- 	sp = fr_seq(fp);
--	if (sp)
-+	if (sp) {
- 		lport->tt.seq_send(lport, sp, fp);
--	else
-+		lport->tt.exch_done(sp);
-+	} else {
- 		lport->tt.frame_send(lport, fp);
-+	}
- }
- 
- /*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0066-md-bitmap-ensure-to-load-bitmap-when-creating-via-sy.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0066-md-bitmap-ensure-to-load-bitmap-when-creating-via-sy.patch
deleted file mode 100644
index 03c666b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0066-md-bitmap-ensure-to-load-bitmap-when-creating-via-sy.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 850bfe24a75251acf10ad9dbacd4bc750005fd1b Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Mon, 19 Mar 2012 12:46:37 +1100
-Subject: [PATCH 066/147] md/bitmap: ensure to load bitmap when creating via
- sysfs.
-
-commit 4474ca42e2577563a919fd3ed782e2ec55bf11a2 upstream.
-
-When commit 69e51b449d383e (md/bitmap:  separate out loading a bitmap...)
-created bitmap_load, it missed calling it after bitmap_create when a
-bitmap is created through the sysfs interface.
-So if a bitmap is added this way, we don't allocate memory properly
-and can crash.
-
-This is suitable for any -stable release since 2.6.35.
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/bitmap.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
-index 6d03774..2a8722b 100644
---- a/drivers/md/bitmap.c
-+++ b/drivers/md/bitmap.c
-@@ -1904,6 +1904,8 @@ location_store(struct mddev *mddev, const char *buf, size_t len)
- 			if (mddev->pers) {
- 				mddev->pers->quiesce(mddev, 1);
- 				rv = bitmap_create(mddev);
-+				if (!rv)
-+					rv = bitmap_load(mddev);
- 				if (rv) {
- 					bitmap_destroy(mddev);
- 					mddev->bitmap_info.offset = 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0067-md-don-t-set-md-arrays-to-readonly-on-shutdown.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0067-md-don-t-set-md-arrays-to-readonly-on-shutdown.patch
deleted file mode 100644
index 93145a1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0067-md-don-t-set-md-arrays-to-readonly-on-shutdown.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From c52810052a2cbfeb2b8768081f8a22240c0d0abe Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Mon, 19 Mar 2012 12:46:37 +1100
-Subject: [PATCH 067/147] md: don't set md arrays to readonly on shutdown.
-
-commit c744a65c1e2d59acc54333ce80a5b0702a98010b upstream.
-
-It seems that with recent kernel, writeback can still be happening
-while shutdown is happening, and consequently data can be written
-after the md reboot notifier switches all arrays to read-only.
-This causes a BUG.
-
-So don't switch them to read-only - just mark them clean and
-set 'safemode' to '2' which mean that immediately after any
-write the array will be switch back to 'clean'.
-
-This could result in the shutdown happening when array is marked
-dirty, thus forcing a resync on reboot.  However if you reboot
-without performing a "sync" first, you get to keep both halves.
-
-This is suitable for any stable kernel (though there might be some
-conflicts with obvious fixes in earlier kernels).
-
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/md.c |   37 +++++++++++++++----------------------
- 1 file changed, 15 insertions(+), 22 deletions(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index f47f1f8..65d552a 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -8097,30 +8097,23 @@ static int md_notify_reboot(struct notifier_block *this,
- 	struct mddev *mddev;
- 	int need_delay = 0;
- 
--	if ((code == SYS_DOWN) || (code == SYS_HALT) || (code == SYS_POWER_OFF)) {
--
--		printk(KERN_INFO "md: stopping all md devices.\n");
--
--		for_each_mddev(mddev, tmp) {
--			if (mddev_trylock(mddev)) {
--				/* Force a switch to readonly even array
--				 * appears to still be in use.  Hence
--				 * the '100'.
--				 */
--				md_set_readonly(mddev, 100);
--				mddev_unlock(mddev);
--			}
--			need_delay = 1;
-+	for_each_mddev(mddev, tmp) {
-+		if (mddev_trylock(mddev)) {
-+			__md_stop_writes(mddev);
-+			mddev->safemode = 2;
-+			mddev_unlock(mddev);
- 		}
--		/*
--		 * certain more exotic SCSI devices are known to be
--		 * volatile wrt too early system reboots. While the
--		 * right place to handle this issue is the given
--		 * driver, we do want to have a safe RAID driver ...
--		 */
--		if (need_delay)
--			mdelay(1000*1);
-+		need_delay = 1;
- 	}
-+	/*
-+	 * certain more exotic SCSI devices are known to be
-+	 * volatile wrt too early system reboots. While the
-+	 * right place to handle this issue is the given
-+	 * driver, we do want to have a safe RAID driver ...
-+	 */
-+	if (need_delay)
-+		mdelay(1000*1);
-+
- 	return NOTIFY_DONE;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0068-md-raid1-raid10-avoid-deadlock-during-resync-recover.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0068-md-raid1-raid10-avoid-deadlock-during-resync-recover.patch
deleted file mode 100644
index 0fe819c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0068-md-raid1-raid10-avoid-deadlock-during-resync-recover.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 250082bf56c6157c888f21df27d73475cb6f0065 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Mon, 19 Mar 2012 12:46:38 +1100
-Subject: [PATCH 068/147] md/raid1,raid10: avoid deadlock during
- resync/recovery.
-
-commit d6b42dcb995e6acd7cc276774e751ffc9f0ef4bf upstream.
-
-If RAID1 or RAID10 is used under LVM or some other stacking
-block device, it is possible to enter a deadlock during
-resync or recovery.
-This can happen if the upper level block device creates
-two requests to the RAID1 or RAID10.  The first request gets
-processed, blocks recovery and queue requests for underlying
-requests in current->bio_list.  A resync request then starts
-which will wait for those requests and block new IO.
-
-But then the second request to the RAID1/10 will be attempted
-and it cannot progress until the resync request completes,
-which cannot progress until the underlying device requests complete,
-which are on a queue behind that second request.
-
-So allow that second request to proceed even though there is
-a resync request about to start.
-
-This is suitable for any -stable kernel.
-
-Reported-by: Ray Morris <support at bettercgi.com>
-Tested-by: Ray Morris <support at bettercgi.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/raid1.c  |   17 +++++++++++++++--
- drivers/md/raid10.c |   17 +++++++++++++++--
- 2 files changed, 30 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index 7d9e071..7af60ec 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -731,9 +731,22 @@ static void wait_barrier(struct r1conf *conf)
- 	spin_lock_irq(&conf->resync_lock);
- 	if (conf->barrier) {
- 		conf->nr_waiting++;
--		wait_event_lock_irq(conf->wait_barrier, !conf->barrier,
-+		/* Wait for the barrier to drop.
-+		 * However if there are already pending
-+		 * requests (preventing the barrier from
-+		 * rising completely), and the
-+		 * pre-process bio queue isn't empty,
-+		 * then don't wait, as we need to empty
-+		 * that queue to get the nr_pending
-+		 * count down.
-+		 */
-+		wait_event_lock_irq(conf->wait_barrier,
-+				    !conf->barrier ||
-+				    (conf->nr_pending &&
-+				     current->bio_list &&
-+				     !bio_list_empty(current->bio_list)),
- 				    conf->resync_lock,
--				    );
-+			);
- 		conf->nr_waiting--;
- 	}
- 	conf->nr_pending++;
-diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index 685ddf3..b219449 100644
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -790,9 +790,22 @@ static void wait_barrier(struct r10conf *conf)
- 	spin_lock_irq(&conf->resync_lock);
- 	if (conf->barrier) {
- 		conf->nr_waiting++;
--		wait_event_lock_irq(conf->wait_barrier, !conf->barrier,
-+		/* Wait for the barrier to drop.
-+		 * However if there are already pending
-+		 * requests (preventing the barrier from
-+		 * rising completely), and the
-+		 * pre-process bio queue isn't empty,
-+		 * then don't wait, as we need to empty
-+		 * that queue to get the nr_pending
-+		 * count down.
-+		 */
-+		wait_event_lock_irq(conf->wait_barrier,
-+				    !conf->barrier ||
-+				    (conf->nr_pending &&
-+				     current->bio_list &&
-+				     !bio_list_empty(current->bio_list)),
- 				    conf->resync_lock,
--				    );
-+			);
- 		conf->nr_waiting--;
- 	}
- 	conf->nr_pending++;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0069-md-fix-clearing-of-the-changed-flags-for-the-bad-blo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0069-md-fix-clearing-of-the-changed-flags-for-the-bad-blo.patch
deleted file mode 100644
index 9dda708..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0069-md-fix-clearing-of-the-changed-flags-for-the-bad-blo.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From c1566b5f4f2d8cbc8badc75b774fa79d6c03477b Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Mon, 19 Mar 2012 12:46:41 +1100
-Subject: [PATCH 069/147] md: fix clearing of the 'changed' flags for the bad
- blocks list.
-
-commit d0962936bff659d20522555b517582a2715fd23f upstream.
-
-In super_1_sync (the first hunk) we need to clear 'changed' before
-checking read_seqretry(), otherwise we might race with other code
-adding a bad block and so won't retry later.
-
-In md_update_sb (the second hunk), in the case where there is no
-metadata (neither persistent nor external), we treat any bad blocks as
-an error.  However we need to clear the 'changed' flag before calling
-md_ack_all_badblocks, else it won't do anything.
-
-This patch is suitable for -stable release 3.0 and later.
-
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/md.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 65d552a..6f37aa4 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -1801,13 +1801,13 @@ retry:
- 						| BB_LEN(internal_bb));
- 				*bbp++ = cpu_to_le64(store_bb);
- 			}
-+			bb->changed = 0;
- 			if (read_seqretry(&bb->lock, seq))
- 				goto retry;
- 
- 			bb->sector = (rdev->sb_start +
- 				      (int)le32_to_cpu(sb->bblog_offset));
- 			bb->size = le16_to_cpu(sb->bblog_size);
--			bb->changed = 0;
- 		}
- 	}
- 
-@@ -2362,6 +2362,7 @@ repeat:
- 			clear_bit(MD_CHANGE_PENDING, &mddev->flags);
- 			list_for_each_entry(rdev, &mddev->disks, same_set) {
- 				if (rdev->badblocks.changed) {
-+					rdev->badblocks.changed = 0;
- 					md_ack_all_badblocks(&rdev->badblocks);
- 					md_error(mddev, rdev);
- 				}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0070-drm-i915-Only-clear-the-GPU-domains-upon-a-successfu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0070-drm-i915-Only-clear-the-GPU-domains-upon-a-successfu.patch
deleted file mode 100644
index 197506c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0070-drm-i915-Only-clear-the-GPU-domains-upon-a-successfu.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From bee686c633c4875d2910e0559b7ce4bba5da1911 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Wed, 14 Dec 2011 13:57:23 +0100
-Subject: [PATCH 070/147] drm/i915: Only clear the GPU domains upon a
- successful finish
-
-commit c501ae7f332cdaf42e31af30b72b4b66cbbb1604 upstream.
-
-By clearing the GPU read domains before waiting upon the buffer, we run
-the risk of the wait being interrupted and the domains prematurely
-cleared. The next time we attempt to wait upon the buffer (after
-userspace handles the signal), we believe that the buffer is idle and so
-skip the wait.
-
-There are a number of bugs across all generations which show signs of an
-overly haste reuse of active buffers.
-
-Such as:
-
-  https://bugs.freedesktop.org/show_bug.cgi?id=29046
-  https://bugs.freedesktop.org/show_bug.cgi?id=35863
-  https://bugs.freedesktop.org/show_bug.cgi?id=38952
-  https://bugs.freedesktop.org/show_bug.cgi?id=40282
-  https://bugs.freedesktop.org/show_bug.cgi?id=41098
-  https://bugs.freedesktop.org/show_bug.cgi?id=41102
-  https://bugs.freedesktop.org/show_bug.cgi?id=41284
-  https://bugs.freedesktop.org/show_bug.cgi?id=42141
-
-A couple of those pre-date i915_gem_object_finish_gpu(), so may be
-unrelated (such as a wild write from a userspace command buffer), but
-this does look like a convincing cause for most of those bugs.
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_gem.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 8359dc7..3e7c478 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -3084,10 +3084,13 @@ i915_gem_object_finish_gpu(struct drm_i915_gem_object *obj)
- 			return ret;
- 	}
- 
-+	ret = i915_gem_object_wait_rendering(obj);
-+	if (ret)
-+		return ret;
-+
- 	/* Ensure that we invalidate the GPU's caches and TLBs. */
- 	obj->base.read_domains &= ~I915_GEM_GPU_DOMAINS;
--
--	return i915_gem_object_wait_rendering(obj);
-+	return 0;
- }
- 
- /**
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0071-drm-radeon-Restrict-offset-for-legacy-hardware-curso.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0071-drm-radeon-Restrict-offset-for-legacy-hardware-curso.patch
deleted file mode 100644
index b3701c8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0071-drm-radeon-Restrict-offset-for-legacy-hardware-curso.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 37e7d6645532f78e279da5f5257faf0ee0c0f8f3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer at amd.com>
-Date: Wed, 14 Mar 2012 17:12:41 +0100
-Subject: [PATCH 071/147] drm/radeon: Restrict offset for legacy hardware
- cursor.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit c4353016dac10133fa5d8535af83f0c4845a2915 upstream.
-
-The hardware only takes 27 bits for the offset, so larger offsets are
-truncated, and the hardware cursor shows random bits other than the intended
-ones.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46796
-
-Signed-off-by: Michel D??nzer <michel.daenzer at amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
----
- drivers/gpu/drm/radeon/radeon_cursor.c |   13 +++++++++++--
- drivers/gpu/drm/radeon/radeon_object.c |   18 +++++++++++++++++-
- drivers/gpu/drm/radeon/radeon_object.h |    2 ++
- 3 files changed, 30 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_cursor.c b/drivers/gpu/drm/radeon/radeon_cursor.c
-index fde25c0..986d608 100644
---- a/drivers/gpu/drm/radeon/radeon_cursor.c
-+++ b/drivers/gpu/drm/radeon/radeon_cursor.c
-@@ -151,7 +151,9 @@ int radeon_crtc_cursor_set(struct drm_crtc *crtc,
- 			   uint32_t height)
- {
- 	struct radeon_crtc *radeon_crtc = to_radeon_crtc(crtc);
-+	struct radeon_device *rdev = crtc->dev->dev_private;
- 	struct drm_gem_object *obj;
-+	struct radeon_bo *robj;
- 	uint64_t gpu_addr;
- 	int ret;
- 
-@@ -173,7 +175,15 @@ int radeon_crtc_cursor_set(struct drm_crtc *crtc,
- 		return -ENOENT;
- 	}
- 
--	ret = radeon_gem_object_pin(obj, RADEON_GEM_DOMAIN_VRAM, &gpu_addr);
-+	robj = gem_to_radeon_bo(obj);
-+	ret = radeon_bo_reserve(robj, false);
-+	if (unlikely(ret != 0))
-+		goto fail;
-+	/* Only 27 bit offset for legacy cursor */
-+	ret = radeon_bo_pin_restricted(robj, RADEON_GEM_DOMAIN_VRAM,
-+				       ASIC_IS_AVIVO(rdev) ? 0 : 1 << 27,
-+				       &gpu_addr);
-+	radeon_bo_unreserve(robj);
- 	if (ret)
- 		goto fail;
- 
-@@ -181,7 +191,6 @@ int radeon_crtc_cursor_set(struct drm_crtc *crtc,
- 	radeon_crtc->cursor_height = height;
- 
- 	radeon_lock_cursor(crtc, true);
--	/* XXX only 27 bit offset for legacy cursor */
- 	radeon_set_cursor(crtc, obj, gpu_addr);
- 	radeon_show_cursor(crtc);
- 	radeon_lock_cursor(crtc, false);
-diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
-index 1c85152..f3ae607 100644
---- a/drivers/gpu/drm/radeon/radeon_object.c
-+++ b/drivers/gpu/drm/radeon/radeon_object.c
-@@ -204,7 +204,8 @@ void radeon_bo_unref(struct radeon_bo **bo)
- 		*bo = NULL;
- }
- 
--int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
-+int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain, u64 max_offset,
-+			     u64 *gpu_addr)
- {
- 	int r, i;
- 
-@@ -212,6 +213,7 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
- 		bo->pin_count++;
- 		if (gpu_addr)
- 			*gpu_addr = radeon_bo_gpu_offset(bo);
-+		WARN_ON_ONCE(max_offset != 0);
- 		return 0;
- 	}
- 	radeon_ttm_placement_from_domain(bo, domain);
-@@ -219,6 +221,15 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
- 		/* force to pin into visible video ram */
- 		bo->placement.lpfn = bo->rdev->mc.visible_vram_size >> PAGE_SHIFT;
- 	}
-+	if (max_offset) {
-+		u64 lpfn = max_offset >> PAGE_SHIFT;
-+
-+		if (!bo->placement.lpfn)
-+			bo->placement.lpfn = bo->rdev->mc.gtt_size >> PAGE_SHIFT;
-+
-+		if (lpfn < bo->placement.lpfn)
-+			bo->placement.lpfn = lpfn;
-+	}
- 	for (i = 0; i < bo->placement.num_placement; i++)
- 		bo->placements[i] |= TTM_PL_FLAG_NO_EVICT;
- 	r = ttm_bo_validate(&bo->tbo, &bo->placement, false, false, false);
-@@ -232,6 +243,11 @@ int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
- 	return r;
- }
- 
-+int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr)
-+{
-+	return radeon_bo_pin_restricted(bo, domain, 0, gpu_addr);
-+}
-+
- int radeon_bo_unpin(struct radeon_bo *bo)
- {
- 	int r, i;
-diff --git a/drivers/gpu/drm/radeon/radeon_object.h b/drivers/gpu/drm/radeon/radeon_object.h
-index b07f0f9..fb3f433 100644
---- a/drivers/gpu/drm/radeon/radeon_object.h
-+++ b/drivers/gpu/drm/radeon/radeon_object.h
-@@ -108,6 +108,8 @@ extern int radeon_bo_kmap(struct radeon_bo *bo, void **ptr);
- extern void radeon_bo_kunmap(struct radeon_bo *bo);
- extern void radeon_bo_unref(struct radeon_bo **bo);
- extern int radeon_bo_pin(struct radeon_bo *bo, u32 domain, u64 *gpu_addr);
-+extern int radeon_bo_pin_restricted(struct radeon_bo *bo, u32 domain,
-+				    u64 max_offset, u64 *gpu_addr);
- extern int radeon_bo_unpin(struct radeon_bo *bo);
- extern int radeon_bo_evict_vram(struct radeon_device *rdev);
- extern void radeon_bo_force_delete(struct radeon_device *rdev);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0072-drm-radeon-kms-fix-analog-load-detection-on-DVI-I-co.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0072-drm-radeon-kms-fix-analog-load-detection-on-DVI-I-co.patch
deleted file mode 100644
index db377d3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0072-drm-radeon-kms-fix-analog-load-detection-on-DVI-I-co.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From de31bb0d8975b5a6b55c0c0fb10fb7f84ca15c5d Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Fri, 16 Mar 2012 12:22:09 -0400
-Subject: [PATCH 072/147] drm/radeon/kms: fix analog load detection on DVI-I
- connectors
-
-commit e00e8b5e760cbbe9067daeae5454d67c44c8d035 upstream.
-
-We digital encoders have a detect function as well (for
-DP to VGA bridges), so we make sure we choose the analog
-one here.
-
-Fixes:
-https://bugs.freedesktop.org/show_bug.cgi?id=47007
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_connectors.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
-index e7cb3ab..f7d39ac 100644
---- a/drivers/gpu/drm/radeon/radeon_connectors.c
-+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
-@@ -946,6 +946,10 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
- 
- 			encoder = obj_to_encoder(obj);
- 
-+			if (encoder->encoder_type != DRM_MODE_ENCODER_DAC ||
-+			    encoder->encoder_type != DRM_MODE_ENCODER_TVDAC)
-+				continue;
-+
- 			encoder_funcs = encoder->helper_private;
- 			if (encoder_funcs->detect) {
- 				if (ret != connector_status_connected) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0073-drm-radeon-kms-add-connector-quirk-for-Fujitsu-D3003.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0073-drm-radeon-kms-add-connector-quirk-for-Fujitsu-D3003.patch
deleted file mode 100644
index a48a485..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0073-drm-radeon-kms-add-connector-quirk-for-Fujitsu-D3003.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 5efedf1eea47c18e516e55bbfb417e447e76fc0d Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Fri, 16 Mar 2012 12:22:10 -0400
-Subject: [PATCH 073/147] drm/radeon/kms: add connector quirk for Fujitsu
- D3003-S2 board
-
-commit 4c1b2d2da3451f5c8dd59bd7e05bd9729d2aee05 upstream.
-
-vbios lists DVI-I port as VGA and DVI-D.
-
-Fixes:
-https://bugs.freedesktop.org/show_bug.cgi?id=47007
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_atombios.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
-index 5082d17..8e1532f 100644
---- a/drivers/gpu/drm/radeon/radeon_atombios.c
-+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
-@@ -442,6 +442,20 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
- 		struct radeon_device *rdev = dev->dev_private;
- 		*i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93);
- 	}
-+
-+	/* Fujitsu D3003-S2 board lists DVI-I as DVI-D and VGA */
-+	if ((dev->pdev->device == 0x9802) &&
-+	    (dev->pdev->subsystem_vendor == 0x1734) &&
-+	    (dev->pdev->subsystem_device == 0x11bd)) {
-+		if (*connector_type == DRM_MODE_CONNECTOR_VGA) {
-+			*connector_type = DRM_MODE_CONNECTOR_DVII;
-+			*line_mux = 0x3103;
-+		} else if (*connector_type == DRM_MODE_CONNECTOR_DVID) {
-+			*connector_type = DRM_MODE_CONNECTOR_DVII;
-+		}
-+	}
-+
-+
- 	return true;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0074-target-Don-t-set-WBUS16-or-SYNC-bits-in-INQUIRY-resp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0074-target-Don-t-set-WBUS16-or-SYNC-bits-in-INQUIRY-resp.patch
deleted file mode 100644
index c1eac73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0074-target-Don-t-set-WBUS16-or-SYNC-bits-in-INQUIRY-resp.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 7f95ff0ee05801dd087ec704be16aae6383f0076 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 13 Feb 2012 16:18:16 -0800
-Subject: [PATCH 074/147] target: Don't set WBUS16 or SYNC bits in INQUIRY
- response
-
-commit effc6cc8828257c32c37635e737f14fd6e19ecd7 upstream.
-
-SPC-4 says about the WBUS16 and SYNC bits:
-
-    The meanings of these fields are specific to SPI-5 (see 6.4.3).
-    For SCSI transport protocols other than the SCSI Parallel
-    Interface, these fields are reserved.
-
-We don't have a SPI fabric module, so we should never set these bits.
-(The comment was misleading, since it only mentioned Sync but the
-actual code set WBUS16 too).
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_cdb.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 8facd33..65ea65a 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -116,7 +116,7 @@ target_emulate_inquiry_std(struct se_cmd *cmd)
- 		goto out;
- 	}
- 
--	buf[7] = 0x32; /* Sync=1 and CmdQue=1 */
-+	buf[7] = 0x2; /* CmdQue=1 */
- 
- 	/*
- 	 * Do not include vendor, product, reversion info in INQUIRY
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0075-target-fix-use-after-free-in-target_report_luns.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0075-target-fix-use-after-free-in-target_report_luns.patch
deleted file mode 100644
index af27825..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0075-target-fix-use-after-free-in-target_report_luns.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 679e28aac79ff6dc71e84679bcd97e5246697ccf Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rn=20Engel?= <joern at logfs.org>
-Date: Wed, 15 Feb 2012 16:51:32 -0500
-Subject: [PATCH 075/147] target: fix use after free in target_report_luns
-
-commit 382436f8804fe1cb20b9a2a811a10eb2d8554721 upstream.
-
-Fix possible NULL pointer dereference in target_report_luns failure path.
-
-Signed-off-by: Joern Engel <joern at logfs.org>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_device.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
-index 19f8aca..097178b 100644
---- a/drivers/target/target_core_device.c
-+++ b/drivers/target/target_core_device.c
-@@ -696,12 +696,12 @@ int target_report_luns(struct se_task *se_task)
- 	 * See SPC3 r07, page 159.
- 	 */
- done:
--	transport_kunmap_data_sg(se_cmd);
- 	lun_count *= 8;
- 	buf[0] = ((lun_count >> 24) & 0xff);
- 	buf[1] = ((lun_count >> 16) & 0xff);
- 	buf[2] = ((lun_count >> 8) & 0xff);
- 	buf[3] = (lun_count & 0xff);
-+	transport_kunmap_data_sg(se_cmd);
- 
- 	se_task->task_scsi_status = GOOD;
- 	transport_complete_task(se_task, 1);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0076-target-prevent-NULL-pointer-dereference-in-target_re.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0076-target-prevent-NULL-pointer-dereference-in-target_re.patch
deleted file mode 100644
index 1899a81..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0076-target-prevent-NULL-pointer-dereference-in-target_re.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 238ac5c459c0204f5134a324f95588aed557b41c Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?J=C3=B6rn=20Engel?= <joern at logfs.org>
-Date: Wed, 15 Feb 2012 16:52:11 -0500
-Subject: [PATCH 076/147] target: prevent NULL pointer dereference in
- target_report_luns
-
-commit 47f1b8803e1e358ebbf4f82bfdb98971c912a2c3 upstream.
-
-transport_kmap_data_sg can return NULL.  I never saw this trigger, but
-returning -ENOMEM seems better than a crash.  Also removes a pointless
-case while at it.
-
-Signed-off-by: Joern Engel <joern at logfs.org>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_device.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
-index 097178b..f8773ae 100644
---- a/drivers/target/target_core_device.c
-+++ b/drivers/target/target_core_device.c
-@@ -658,7 +658,9 @@ int target_report_luns(struct se_task *se_task)
- 	unsigned char *buf;
- 	u32 cdb_offset = 0, lun_count = 0, offset = 8, i;
- 
--	buf = (unsigned char *) transport_kmap_data_sg(se_cmd);
-+	buf = transport_kmap_data_sg(se_cmd);
-+	if (!buf)
-+		return -ENOMEM;
- 
- 	/*
- 	 * If no struct se_session pointer is present, this struct se_cmd is
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0077-target-Fix-16-bit-target-ports-for-SET-TARGET-PORT-G.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0077-target-Fix-16-bit-target-ports-for-SET-TARGET-PORT-G.patch
deleted file mode 100644
index ec49efc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0077-target-Fix-16-bit-target-ports-for-SET-TARGET-PORT-G.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 407e1b9350ad2124952f769ade034023a9155c71 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Thu, 23 Feb 2012 17:22:12 -0800
-Subject: [PATCH 077/147] target: Fix 16-bit target ports for SET TARGET PORT
- GROUPS emulation
-
-commit 33395fb8a13731c7ef7b175dbf5a4d8a6738fe6c upstream.
-
-The old code did (MSB << 8) & 0xff, which always evaluates to 0.  Just use
-get_unaligned_be16() so we don't have to worry about whether our open-coded
-version is correct or not.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_alua.c |    7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
-index 1d24512..5b05744 100644
---- a/drivers/target/target_core_alua.c
-+++ b/drivers/target/target_core_alua.c
-@@ -30,6 +30,7 @@
- #include <linux/export.h>
- #include <scsi/scsi.h>
- #include <scsi/scsi_cmnd.h>
-+#include <asm/unaligned.h>
- 
- #include <target/target_core_base.h>
- #include <target/target_core_device.h>
-@@ -268,8 +269,7 @@ int target_emulate_set_target_port_groups(struct se_task *task)
- 		 * changed.
- 		 */
- 		if (primary) {
--			tg_pt_id = ((ptr[2] << 8) & 0xff);
--			tg_pt_id |= (ptr[3] & 0xff);
-+			tg_pt_id = get_unaligned_be16(ptr + 2);
- 			/*
- 			 * Locate the matching target port group ID from
- 			 * the global tg_pt_gp list
-@@ -313,8 +313,7 @@ int target_emulate_set_target_port_groups(struct se_task *task)
- 			 * the Target Port in question for the the incoming
- 			 * SET_TARGET_PORT_GROUPS op.
- 			 */
--			rtpi = ((ptr[2] << 8) & 0xff);
--			rtpi |= (ptr[3] & 0xff);
-+			rtpi = get_unaligned_be16(ptr + 2);
- 			/*
- 			 * Locate the matching relative target port identifer
- 			 * for the struct se_device storage object.
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0078-Bluetooth-Add-AR30XX-device-ID-on-Asus-laptops.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0078-Bluetooth-Add-AR30XX-device-ID-on-Asus-laptops.patch
deleted file mode 100644
index b0094d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0078-Bluetooth-Add-AR30XX-device-ID-on-Asus-laptops.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d559faa856c1c6f84dc400b9e77af843d3b79c10 Mon Sep 17 00:00:00 2001
-From: Keng-Yu Lin <kengyu at canonical.com>
-Date: Wed, 30 Nov 2011 18:32:37 +0800
-Subject: [PATCH 078/147] Bluetooth: Add AR30XX device ID on Asus laptops
-
-commit 6b6ba88b5bb8779156b21bb957520a448c3642e2 upstream.
-
-The ID is found on Asus K54HR and K53U.
-Blacklist the AR3011-based device ID [0489:e03d]
-and add to ath3k.c for firmware loading.
-
-Below is the output of usb-devices script:
-
-Before the fiwmware loading:
-
-T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  3 Spd=12  MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0489 ProdID=e03d Rev=00.01
-C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-After the fiwmware loading:
-
-T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0cf3 ProdID=3005 Rev=00.01
-C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-Signed-off-by: Keng-Yu Lin <kengyu at canonical.com>
-Signed-off-by: Gustavo F. Padovan <padovan at profusion.mobi>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/ath3k.c |    1 +
- drivers/bluetooth/btusb.c |    1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index 106beb1..db811d2 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -64,6 +64,7 @@ static struct usb_device_id ath3k_table[] = {
- 	{ USB_DEVICE(0x0CF3, 0x3002) },
- 	{ USB_DEVICE(0x13d3, 0x3304) },
- 	{ USB_DEVICE(0x0930, 0x0215) },
-+	{ USB_DEVICE(0x0489, 0xE03D) },
- 
- 	/* Atheros AR9285 Malbec with sflash firmware */
- 	{ USB_DEVICE(0x03F0, 0x311D) },
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index eabc437..11a925c 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -119,6 +119,7 @@ static struct usb_device_id blacklist_table[] = {
- 	{ USB_DEVICE(0x0cf3, 0x3002), .driver_info = BTUSB_IGNORE },
- 	{ USB_DEVICE(0x13d3, 0x3304), .driver_info = BTUSB_IGNORE },
- 	{ USB_DEVICE(0x0930, 0x0215), .driver_info = BTUSB_IGNORE },
-+	{ USB_DEVICE(0x0489, 0xe03d), .driver_info = BTUSB_IGNORE },
- 
- 	/* Atheros AR9285 Malbec with sflash firmware */
- 	{ USB_DEVICE(0x03f0, 0x311d), .driver_info = BTUSB_IGNORE },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0079-HID-add-extra-hotkeys-in-Asus-AIO-keyboards.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0079-HID-add-extra-hotkeys-in-Asus-AIO-keyboards.patch
deleted file mode 100644
index 47434eb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0079-HID-add-extra-hotkeys-in-Asus-AIO-keyboards.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 5c473125260020cedb5e4285eea74fc4528eee85 Mon Sep 17 00:00:00 2001
-From: Keng-Yu Lin <kengyu at canonical.com>
-Date: Thu, 2 Feb 2012 10:31:26 +0100
-Subject: [PATCH 079/147] HID: add extra hotkeys in Asus AIO keyboards
-
-commit 3596bb929f2abd3433c2eaa5755fad48ac207af1 upstream.
-
-The Asus All-In-One PC has a wireless keyboard with wifi toggle,
-brightness up, brightness down and display off hotkeys.
-
-This patch adds suppoort for these hotkeys.
-
-Signed-off-by: Keng-Yu Lin <kengyu at canonical.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hid/hid-chicony.c |    5 +++++
- drivers/hid/hid-core.c    |    1 +
- drivers/hid/hid-ids.h     |    1 +
- 3 files changed, 7 insertions(+)
-
-diff --git a/drivers/hid/hid-chicony.c b/drivers/hid/hid-chicony.c
-index 8965ad9..4162505 100644
---- a/drivers/hid/hid-chicony.c
-+++ b/drivers/hid/hid-chicony.c
-@@ -45,6 +45,10 @@ static int ch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- 	case 0xff09: ch_map_key_clear(BTN_9);	break;
- 	case 0xff0a: ch_map_key_clear(BTN_A);	break;
- 	case 0xff0b: ch_map_key_clear(BTN_B);	break;
-+	case 0x00f1: ch_map_key_clear(KEY_WLAN);	break;
-+	case 0x00f2: ch_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
-+	case 0x00f3: ch_map_key_clear(KEY_BRIGHTNESSUP);	break;
-+	case 0x00f4: ch_map_key_clear(KEY_DISPLAY_OFF);	break;
- 	default:
- 		return 0;
- 	}
-@@ -53,6 +57,7 @@ static int ch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- 
- static const struct hid_device_id ch_devices[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) },
- 	{ }
- };
- MODULE_DEVICE_TABLE(hid, ch_devices);
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index bb656d8..c27b402 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1394,6 +1394,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHERRY, USB_DEVICE_ID_CHERRY_CYMOTION_SOLAR) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_TACTICAL_PAD) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_CHICONY, USB_DEVICE_ID_CHICONY_WIRELESS2) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CHUNGHWAT, USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CREATIVELABS, USB_DEVICE_ID_PRODIKEYS_PCMIDI) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CVTOUCH, USB_DEVICE_ID_CVTOUCH_SCREEN) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 3c3daec..fba3fc4 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -192,6 +192,7 @@
- #define USB_DEVICE_ID_CHICONY_TACTICAL_PAD	0x0418
- #define USB_DEVICE_ID_CHICONY_MULTI_TOUCH	0xb19d
- #define USB_DEVICE_ID_CHICONY_WIRELESS	0x0618
-+#define USB_DEVICE_ID_CHICONY_WIRELESS2	0x1123
- 
- #define USB_VENDOR_ID_CHUNGHWAT		0x2247
- #define USB_DEVICE_ID_CHUNGHWAT_MULTITOUCH	0x0001
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0080-HID-add-more-hotkeys-in-Asus-AIO-keyboards.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0080-HID-add-more-hotkeys-in-Asus-AIO-keyboards.patch
deleted file mode 100644
index 0543141..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0080-HID-add-more-hotkeys-in-Asus-AIO-keyboards.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 236648a7e4f6330831cb031c7c970b07db3cf39f Mon Sep 17 00:00:00 2001
-From: Keng-Yu Lin <kengyu at canonical.com>
-Date: Mon, 30 Jan 2012 14:25:45 +0800
-Subject: [PATCH 080/147] HID: add more hotkeys in Asus AIO keyboards
-
-commit 6c30d5a53229aad22bb675e0bd6eb518ecaa4316 upstream.
-
-Add support for the camera key. The hotkey for
-Asus S.H.E(Super Hybrid Engine) mode is mapped to KEY_KEY_PROG1
-just for notifying the userspace.
-
-Signed-off-by: Keng-Yu Lin <kengyu at canonical.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hid/hid-chicony.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/hid/hid-chicony.c b/drivers/hid/hid-chicony.c
-index 4162505..b99af34 100644
---- a/drivers/hid/hid-chicony.c
-+++ b/drivers/hid/hid-chicony.c
-@@ -49,6 +49,8 @@ static int ch_input_mapping(struct hid_device *hdev, struct hid_input *hi,
- 	case 0x00f2: ch_map_key_clear(KEY_BRIGHTNESSDOWN);	break;
- 	case 0x00f3: ch_map_key_clear(KEY_BRIGHTNESSUP);	break;
- 	case 0x00f4: ch_map_key_clear(KEY_DISPLAY_OFF);	break;
-+	case 0x00f7: ch_map_key_clear(KEY_CAMERA);	break;
-+	case 0x00f8: ch_map_key_clear(KEY_PROG1);	break;
- 	default:
- 		return 0;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0081-pata_legacy-correctly-mask-recovery-field-for-HT6560.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0081-pata_legacy-correctly-mask-recovery-field-for-HT6560.patch
deleted file mode 100644
index daf2cc7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0081-pata_legacy-correctly-mask-recovery-field-for-HT6560.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9d312025d223d521d0f5a46ab994323646114050 Mon Sep 17 00:00:00 2001
-From: Sergei Shtylyov <sshtylyov at ru.mvista.com>
-Date: Thu, 19 Jan 2012 19:09:56 +0300
-Subject: [PATCH 081/147] pata_legacy: correctly mask recovery field for
- HT6560B
-
-commit 9716387311c790de381214c03e7f1b72b91a8189 upstream.
-
-According to the HT6560H datasheet, the recovery timing field is 4-bit wide,
-with a value of 0 meaning 16 cycles. Correct obvious thinko in the recovery
-field mask.
-
-Signed-off-by: Sergei Shtylyov <sshtylyov at ru.mvista.com>
-Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/ata/pata_legacy.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/ata/pata_legacy.c b/drivers/ata/pata_legacy.c
-index 35aca7d..4fe9d21 100644
---- a/drivers/ata/pata_legacy.c
-+++ b/drivers/ata/pata_legacy.c
-@@ -401,8 +401,7 @@ static void ht6560b_set_piomode(struct ata_port *ap, struct ata_device *adev)
- 	ata_timing_compute(adev, adev->pio_mode, &t, 20000, 1000);
- 
- 	active = clamp_val(t.active, 2, 15);
--	recover = clamp_val(t.recover, 2, 16);
--	recover &= 0x15;
-+	recover = clamp_val(t.recover, 2, 16) & 0x0F;
- 
- 	inb(0x3E6);
- 	inb(0x3E6);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0082-firewire-ohci-fix-too-early-completion-of-IR-multich.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0082-firewire-ohci-fix-too-early-completion-of-IR-multich.patch
deleted file mode 100644
index 0eefc06..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0082-firewire-ohci-fix-too-early-completion-of-IR-multich.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From d98908a17ece4ec33e477158112adc527c365b83 Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens at ladisch.de>
-Date: Mon, 12 Mar 2012 21:45:47 +0100
-Subject: [PATCH 082/147] firewire: ohci: fix too-early completion of IR
- multichannel buffers
-
-commit 0c0efbacab8d70700d13301e0ae7975783c0cb0a upstream.
-
-handle_ir_buffer_fill() assumed that a completed descriptor would be
-indicated by a non-zero transfer_status (as in most other descriptors).
-However, this field is written by the controller as soon as (the end of)
-the first packet has been written into the buffer.  As a consequence, if
-we happen to run into such a descriptor when the interrupt handler is
-executed after such a packet has completed, the descriptor would be
-taken out of the list of active descriptors as soon as the buffer had
-been partially filled, so the event for the buffer being completely
-filled would never be sent.
-
-To fix this, handle descriptors only when they have been completely
-filled, i.e., when res_count == 0.  (This also matches the condition
-that is reported by the controller with an interrupt.)
-
-Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/firewire/ohci.c |    5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
-index 7f5f0da..0a0225a 100644
---- a/drivers/firewire/ohci.c
-+++ b/drivers/firewire/ohci.c
-@@ -2748,7 +2748,7 @@ static int handle_ir_buffer_fill(struct context *context,
- 		container_of(context, struct iso_context, context);
- 	u32 buffer_dma;
- 
--	if (!last->transfer_status)
-+	if (last->res_count != 0)
- 		/* Descriptor(s) not done yet, stop iteration */
- 		return 0;
- 
-@@ -2762,8 +2762,7 @@ static int handle_ir_buffer_fill(struct context *context,
- 	if (le16_to_cpu(last->control) & DESCRIPTOR_IRQ_ALWAYS)
- 		ctx->base.callback.mc(&ctx->base,
- 				      le32_to_cpu(last->data_address) +
--				      le16_to_cpu(last->req_count) -
--				      le16_to_cpu(last->res_count),
-+				      le16_to_cpu(last->req_count),
- 				      ctx->base.callback_data);
- 
- 	return 1;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0083-KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0083-KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch
deleted file mode 100644
index 8e4c572..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0083-KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From d76b5f6c352194eaec8afbe8397b43f1ee4130d0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= <stephan.baerwolf at tu-ilmenau.de>
-Date: Thu, 12 Jan 2012 16:43:03 +0100
-Subject: [PATCH 083/147] KVM: x86: extend "struct x86_emulate_ops" with
- "get_cpuid"
-
-commit bdb42f5afebe208eae90406959383856ae2caf2b upstream.
-
-In order to be able to proceed checks on CPU-specific properties
-within the emulator, function "get_cpuid" is introduced.
-With "get_cpuid" it is possible to virtually call the guests
-"cpuid"-opcode without changing the VM's context.
-
-[mtosatti: cleanup/beautify code]
-
-Signed-off-by: Stephan Baerwolf <stephan.baerwolf at tu-ilmenau.de>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/kvm_emulate.h |    3 +++
- arch/x86/kvm/x86.c                 |   23 +++++++++++++++++++++++
- 2 files changed, 26 insertions(+)
-
-diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
-index a026507..a440a7f 100644
---- a/arch/x86/include/asm/kvm_emulate.h
-+++ b/arch/x86/include/asm/kvm_emulate.h
-@@ -189,6 +189,9 @@ struct x86_emulate_ops {
- 	int (*intercept)(struct x86_emulate_ctxt *ctxt,
- 			 struct x86_instruction_info *info,
- 			 enum x86_intercept_stage stage);
-+
-+	bool (*get_cpuid)(struct x86_emulate_ctxt *ctxt,
-+			 u32 *eax, u32 *ebx, u32 *ecx, u32 *edx);
- };
- 
- typedef u32 __attribute__((vector_size(16))) sse128_t;
-diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index 4c938da..e04cae1 100644
---- a/arch/x86/kvm/x86.c
-+++ b/arch/x86/kvm/x86.c
-@@ -4655,6 +4655,28 @@ static int emulator_intercept(struct x86_emulate_ctxt *ctxt,
- 	return kvm_x86_ops->check_intercept(emul_to_vcpu(ctxt), info, stage);
- }
- 
-+static bool emulator_get_cpuid(struct x86_emulate_ctxt *ctxt,
-+			       u32 *eax, u32 *ebx, u32 *ecx, u32 *edx)
-+{
-+	struct kvm_cpuid_entry2 *cpuid = NULL;
-+
-+	if (eax && ecx)
-+		cpuid = kvm_find_cpuid_entry(emul_to_vcpu(ctxt),
-+					    *eax, *ecx);
-+
-+	if (cpuid) {
-+		*eax = cpuid->eax;
-+		*ecx = cpuid->ecx;
-+		if (ebx)
-+			*ebx = cpuid->ebx;
-+		if (edx)
-+			*edx = cpuid->edx;
-+		return true;
-+	}
-+
-+	return false;
-+}
-+
- static struct x86_emulate_ops emulate_ops = {
- 	.read_std            = kvm_read_guest_virt_system,
- 	.write_std           = kvm_write_guest_virt_system,
-@@ -4685,6 +4707,7 @@ static struct x86_emulate_ops emulate_ops = {
- 	.get_fpu             = emulator_get_fpu,
- 	.put_fpu             = emulator_put_fpu,
- 	.intercept           = emulator_intercept,
-+	.get_cpuid           = emulator_get_cpuid,
- };
- 
- static void cache_all_regs(struct kvm_vcpu *vcpu)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0084-KVM-x86-fix-missing-checks-in-syscall-emulation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0084-KVM-x86-fix-missing-checks-in-syscall-emulation.patch
deleted file mode 100644
index bc72a83..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0084-KVM-x86-fix-missing-checks-in-syscall-emulation.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 9dab57c31c4146a8d1118a8c833fb8a3e788fec6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Stephan=20B=C3=A4rwolf?= <stephan.baerwolf at tu-ilmenau.de>
-Date: Thu, 12 Jan 2012 16:43:04 +0100
-Subject: [PATCH 084/147] KVM: x86: fix missing checks in syscall emulation
-
-commit c2226fc9e87ba3da060e47333657cd6616652b84 upstream.
-
-On hosts without this patch, 32bit guests will crash (and 64bit guests
-may behave in a wrong way) for example by simply executing following
-nasm-demo-application:
-
-    [bits 32]
-    global _start
-    SECTION .text
-    _start: syscall
-
-(I tested it with winxp and linux - both always crashed)
-
-    Disassembly of section .text:
-
-    00000000 <_start>:
-       0:   0f 05                   syscall
-
-The reason seems a missing "invalid opcode"-trap (int6) for the
-syscall opcode "0f05", which is not available on Intel CPUs
-within non-longmodes, as also on some AMD CPUs within legacy-mode.
-(depending on CPU vendor, MSR_EFER and cpuid)
-
-Because previous mentioned OSs may not engage corresponding
-syscall target-registers (STAR, LSTAR, CSTAR), they remain
-NULL and (non trapping) syscalls are leading to multiple
-faults and finally crashs.
-
-Depending on the architecture (AMD or Intel) pretended by
-guests, various checks according to vendor's documentation
-are implemented to overcome the current issue and behave
-like the CPUs physical counterparts.
-
-[mtosatti: cleanup/beautify code]
-
-Signed-off-by: Stephan Baerwolf <stephan.baerwolf at tu-ilmenau.de>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/kvm_emulate.h |   13 +++++++++
- arch/x86/kvm/emulate.c             |   51 ++++++++++++++++++++++++++++++++++++
- 2 files changed, 64 insertions(+)
-
-diff --git a/arch/x86/include/asm/kvm_emulate.h b/arch/x86/include/asm/kvm_emulate.h
-index a440a7f..70ea6fd 100644
---- a/arch/x86/include/asm/kvm_emulate.h
-+++ b/arch/x86/include/asm/kvm_emulate.h
-@@ -300,6 +300,19 @@ struct x86_emulate_ctxt {
- #define X86EMUL_MODE_PROT     (X86EMUL_MODE_PROT16|X86EMUL_MODE_PROT32| \
- 			       X86EMUL_MODE_PROT64)
- 
-+/* CPUID vendors */
-+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx 0x68747541
-+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx 0x444d4163
-+#define X86EMUL_CPUID_VENDOR_AuthenticAMD_edx 0x69746e65
-+
-+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx 0x69444d41
-+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx 0x21726574
-+#define X86EMUL_CPUID_VENDOR_AMDisbetterI_edx 0x74656273
-+
-+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ebx 0x756e6547
-+#define X86EMUL_CPUID_VENDOR_GenuineIntel_ecx 0x6c65746e
-+#define X86EMUL_CPUID_VENDOR_GenuineIntel_edx 0x49656e69
-+
- enum x86_intercept_stage {
- 	X86_ICTP_NONE = 0,   /* Allow zero-init to not match anything */
- 	X86_ICPT_PRE_EXCEPT,
-diff --git a/arch/x86/kvm/emulate.c b/arch/x86/kvm/emulate.c
-index f1e3be18..f5302da 100644
---- a/arch/x86/kvm/emulate.c
-+++ b/arch/x86/kvm/emulate.c
-@@ -1877,6 +1877,51 @@ setup_syscalls_segments(struct x86_emulate_ctxt *ctxt,
- 	ss->p = 1;
- }
- 
-+static bool em_syscall_is_enabled(struct x86_emulate_ctxt *ctxt)
-+{
-+	struct x86_emulate_ops *ops = ctxt->ops;
-+	u32 eax, ebx, ecx, edx;
-+
-+	/*
-+	 * syscall should always be enabled in longmode - so only become
-+	 * vendor specific (cpuid) if other modes are active...
-+	 */
-+	if (ctxt->mode == X86EMUL_MODE_PROT64)
-+		return true;
-+
-+	eax = 0x00000000;
-+	ecx = 0x00000000;
-+	if (ops->get_cpuid(ctxt, &eax, &ebx, &ecx, &edx)) {
-+		/*
-+		 * Intel ("GenuineIntel")
-+		 * remark: Intel CPUs only support "syscall" in 64bit
-+		 * longmode. Also an 64bit guest with a
-+		 * 32bit compat-app running will #UD !! While this
-+		 * behaviour can be fixed (by emulating) into AMD
-+		 * response - CPUs of AMD can't behave like Intel.
-+		 */
-+		if (ebx == X86EMUL_CPUID_VENDOR_GenuineIntel_ebx &&
-+		    ecx == X86EMUL_CPUID_VENDOR_GenuineIntel_ecx &&
-+		    edx == X86EMUL_CPUID_VENDOR_GenuineIntel_edx)
-+			return false;
-+
-+		/* AMD ("AuthenticAMD") */
-+		if (ebx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ebx &&
-+		    ecx == X86EMUL_CPUID_VENDOR_AuthenticAMD_ecx &&
-+		    edx == X86EMUL_CPUID_VENDOR_AuthenticAMD_edx)
-+			return true;
-+
-+		/* AMD ("AMDisbetter!") */
-+		if (ebx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ebx &&
-+		    ecx == X86EMUL_CPUID_VENDOR_AMDisbetterI_ecx &&
-+		    edx == X86EMUL_CPUID_VENDOR_AMDisbetterI_edx)
-+			return true;
-+	}
-+
-+	/* default: (not Intel, not AMD), apply Intel's stricter rules... */
-+	return false;
-+}
-+
- static int em_syscall(struct x86_emulate_ctxt *ctxt)
- {
- 	struct x86_emulate_ops *ops = ctxt->ops;
-@@ -1890,9 +1935,15 @@ static int em_syscall(struct x86_emulate_ctxt *ctxt)
- 	    ctxt->mode == X86EMUL_MODE_VM86)
- 		return emulate_ud(ctxt);
- 
-+	if (!(em_syscall_is_enabled(ctxt)))
-+		return emulate_ud(ctxt);
-+
- 	ops->get_msr(ctxt, MSR_EFER, &efer);
- 	setup_syscalls_segments(ctxt, &cs, &ss);
- 
-+	if (!(efer & EFER_SCE))
-+		return emulate_ud(ctxt);
-+
- 	ops->get_msr(ctxt, MSR_STAR, &msr_data);
- 	msr_data >>= 32;
- 	cs_sel = (u16)(msr_data & 0xfffc);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0085-NFS-Properly-handle-the-case-where-the-delegation-is.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0085-NFS-Properly-handle-the-case-where-the-delegation-is.patch
deleted file mode 100644
index ac42054..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0085-NFS-Properly-handle-the-case-where-the-delegation-is.patch
+++ /dev/null
@@ -1,193 +0,0 @@
-From 3876d640cb4c4f09bdc26a8befea1df94fd4e71e Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Mon, 5 Mar 2012 19:56:44 -0500
-Subject: [PATCH 085/147] NFS: Properly handle the case where the delegation
- is revoked
-
-commit a1d0b5eebc4fd6e0edb02688b35f17f67f42aea5 upstream.
-
-If we know that the delegation stateid is bad or revoked, we need to
-remove that delegation as soon as possible, and then mark all the
-stateids that relied on that delegation for recovery. We cannot use
-the delegation as part of the recovery process.
-
-Also note that NFSv4.1 uses a different error code (NFS4ERR_DELEG_REVOKED)
-to indicate that the delegation was revoked.
-
-Finally, ensure that setlk() and setattr() can both recover safely from
-a revoked delegation.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/delegation.c |   11 +++++++++++
- fs/nfs/delegation.h |    1 +
- fs/nfs/nfs4_fs.h    |    2 ++
- fs/nfs/nfs4proc.c   |   18 ++++++++++++++++--
- fs/nfs/nfs4state.c  |   29 +++++++++++++++++++++++++++--
- 5 files changed, 57 insertions(+), 4 deletions(-)
-
-diff --git a/fs/nfs/delegation.c b/fs/nfs/delegation.c
-index 7f26540..ac889af 100644
---- a/fs/nfs/delegation.c
-+++ b/fs/nfs/delegation.c
-@@ -466,6 +466,17 @@ static void nfs_delegation_run_state_manager(struct nfs_client *clp)
- 		nfs4_schedule_state_manager(clp);
- }
- 
-+void nfs_remove_bad_delegation(struct inode *inode)
-+{
-+	struct nfs_delegation *delegation;
-+
-+	delegation = nfs_detach_delegation(NFS_I(inode), NFS_SERVER(inode));
-+	if (delegation) {
-+		nfs_inode_find_state_and_recover(inode, &delegation->stateid);
-+		nfs_free_delegation(delegation);
-+	}
-+}
-+
- /**
-  * nfs_expire_all_delegation_types
-  * @clp: client to process
-diff --git a/fs/nfs/delegation.h b/fs/nfs/delegation.h
-index d9322e4..691a796 100644
---- a/fs/nfs/delegation.h
-+++ b/fs/nfs/delegation.h
-@@ -45,6 +45,7 @@ void nfs_expire_unreferenced_delegations(struct nfs_client *clp);
- void nfs_handle_cb_pathdown(struct nfs_client *clp);
- int nfs_client_return_marked_delegations(struct nfs_client *clp);
- int nfs_delegations_present(struct nfs_client *clp);
-+void nfs_remove_bad_delegation(struct inode *inode);
- 
- void nfs_delegation_mark_reclaim(struct nfs_client *clp);
- void nfs_delegation_reap_unclaimed(struct nfs_client *clp);
-diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
-index 693ae22..d6ba137f 100644
---- a/fs/nfs/nfs4_fs.h
-+++ b/fs/nfs/nfs4_fs.h
-@@ -324,6 +324,8 @@ extern void nfs4_put_open_state(struct nfs4_state *);
- extern void nfs4_close_state(struct nfs4_state *, fmode_t);
- extern void nfs4_close_sync(struct nfs4_state *, fmode_t);
- extern void nfs4_state_set_mode_locked(struct nfs4_state *, fmode_t);
-+extern void nfs_inode_find_state_and_recover(struct inode *inode,
-+		const nfs4_stateid *stateid);
- extern void nfs4_schedule_lease_recovery(struct nfs_client *);
- extern void nfs4_schedule_state_manager(struct nfs_client *);
- extern void nfs4_schedule_path_down_recovery(struct nfs_client *clp);
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index e527030..a51e1dd 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -263,8 +263,11 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc
- 	switch(errorcode) {
- 		case 0:
- 			return 0;
-+		case -NFS4ERR_DELEG_REVOKED:
- 		case -NFS4ERR_ADMIN_REVOKED:
- 		case -NFS4ERR_BAD_STATEID:
-+			if (state != NULL)
-+				nfs_remove_bad_delegation(state->inode);
- 		case -NFS4ERR_OPENMODE:
- 			if (state == NULL)
- 				break;
-@@ -1316,8 +1319,11 @@ int nfs4_open_delegation_recall(struct nfs_open_context *ctx, struct nfs4_state
- 				 * The show must go on: exit, but mark the
- 				 * stateid as needing recovery.
- 				 */
-+			case -NFS4ERR_DELEG_REVOKED:
- 			case -NFS4ERR_ADMIN_REVOKED:
- 			case -NFS4ERR_BAD_STATEID:
-+				nfs_inode_find_state_and_recover(state->inode,
-+						stateid);
- 				nfs4_schedule_stateid_recovery(server, state);
- 			case -EKEYEXPIRED:
- 				/*
-@@ -1893,7 +1899,9 @@ static int nfs4_do_setattr(struct inode *inode, struct rpc_cred *cred,
- 			   struct nfs4_state *state)
- {
- 	struct nfs_server *server = NFS_SERVER(inode);
--	struct nfs4_exception exception = { };
-+	struct nfs4_exception exception = {
-+		.state = state,
-+	};
- 	int err;
- 	do {
- 		err = nfs4_handle_exception(server,
-@@ -3707,8 +3715,11 @@ nfs4_async_handle_error(struct rpc_task *task, const struct nfs_server *server,
- 	if (task->tk_status >= 0)
- 		return 0;
- 	switch(task->tk_status) {
-+		case -NFS4ERR_DELEG_REVOKED:
- 		case -NFS4ERR_ADMIN_REVOKED:
- 		case -NFS4ERR_BAD_STATEID:
-+			if (state != NULL)
-+				nfs_remove_bad_delegation(state->inode);
- 		case -NFS4ERR_OPENMODE:
- 			if (state == NULL)
- 				break;
-@@ -4526,7 +4537,9 @@ out:
- 
- static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *request)
- {
--	struct nfs4_exception exception = { };
-+	struct nfs4_exception exception = {
-+		.state = state,
-+	};
- 	int err;
- 
- 	do {
-@@ -4619,6 +4632,7 @@ int nfs4_lock_delegation_recall(struct nfs4_state *state, struct file_lock *fl)
- 				 * The show must go on: exit, but mark the
- 				 * stateid as needing recovery.
- 				 */
-+			case -NFS4ERR_DELEG_REVOKED:
- 			case -NFS4ERR_ADMIN_REVOKED:
- 			case -NFS4ERR_BAD_STATEID:
- 			case -NFS4ERR_OPENMODE:
-diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index a58eed7..0596fd6 100644
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -1071,12 +1071,37 @@ void nfs4_schedule_stateid_recovery(const struct nfs_server *server, struct nfs4
- {
- 	struct nfs_client *clp = server->nfs_client;
- 
--	if (test_and_clear_bit(NFS_DELEGATED_STATE, &state->flags))
--		nfs_async_inode_return_delegation(state->inode, &state->stateid);
- 	nfs4_state_mark_reclaim_nograce(clp, state);
- 	nfs4_schedule_state_manager(clp);
- }
- 
-+void nfs_inode_find_state_and_recover(struct inode *inode,
-+		const nfs4_stateid *stateid)
-+{
-+	struct nfs_client *clp = NFS_SERVER(inode)->nfs_client;
-+	struct nfs_inode *nfsi = NFS_I(inode);
-+	struct nfs_open_context *ctx;
-+	struct nfs4_state *state;
-+	bool found = false;
-+
-+	spin_lock(&inode->i_lock);
-+	list_for_each_entry(ctx, &nfsi->open_files, list) {
-+		state = ctx->state;
-+		if (state == NULL)
-+			continue;
-+		if (!test_bit(NFS_DELEGATED_STATE, &state->flags))
-+			continue;
-+		if (memcmp(state->stateid.data, stateid->data, sizeof(state->stateid.data)) != 0)
-+			continue;
-+		nfs4_state_mark_reclaim_nograce(clp, state);
-+		found = true;
-+	}
-+	spin_unlock(&inode->i_lock);
-+	if (found)
-+		nfs4_schedule_state_manager(clp);
-+}
-+
-+
- static int nfs4_reclaim_locks(struct nfs4_state *state, const struct nfs4_state_recovery_ops *ops)
- {
- 	struct inode *inode = state->inode;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0086-NFSv4-Return-the-delegation-if-the-server-returns-NF.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0086-NFSv4-Return-the-delegation-if-the-server-returns-NF.patch
deleted file mode 100644
index ee59f30..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0086-NFSv4-Return-the-delegation-if-the-server-returns-NF.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From f56543c626d44b8ca33f2d37ee4758d1faab0e74 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Wed, 7 Mar 2012 16:39:06 -0500
-Subject: [PATCH 086/147] NFSv4: Return the delegation if the server returns
- NFS4ERR_OPENMODE
-
-commit 3114ea7a24d3264c090556a2444fc6d2c06176d4 upstream.
-
-If a setattr() fails because of an NFS4ERR_OPENMODE error, it is
-probably due to us holding a read delegation. Ensure that the
-recovery routines return that delegation in this case.
-
-Reported-by: Miklos Szeredi <miklos at szeredi.hu>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4_fs.h  |    1 +
- fs/nfs/nfs4proc.c |   13 ++++++++++++-
- 2 files changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h
-index d6ba137f..0983b25 100644
---- a/fs/nfs/nfs4_fs.h
-+++ b/fs/nfs/nfs4_fs.h
-@@ -191,6 +191,7 @@ struct nfs4_exception {
- 	long timeout;
- 	int retry;
- 	struct nfs4_state *state;
-+	struct inode *inode;
- };
- 
- struct nfs4_state_recovery_ops {
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index a51e1dd..758e809 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -257,18 +257,28 @@ static int nfs4_handle_exception(struct nfs_server *server, int errorcode, struc
- {
- 	struct nfs_client *clp = server->nfs_client;
- 	struct nfs4_state *state = exception->state;
-+	struct inode *inode = exception->inode;
- 	int ret = errorcode;
- 
- 	exception->retry = 0;
- 	switch(errorcode) {
- 		case 0:
- 			return 0;
-+		case -NFS4ERR_OPENMODE:
-+			if (nfs_have_delegation(inode, FMODE_READ)) {
-+				nfs_inode_return_delegation(inode);
-+				exception->retry = 1;
-+				return 0;
-+			}
-+			if (state == NULL)
-+				break;
-+			nfs4_schedule_stateid_recovery(server, state);
-+			goto wait_on_recovery;
- 		case -NFS4ERR_DELEG_REVOKED:
- 		case -NFS4ERR_ADMIN_REVOKED:
- 		case -NFS4ERR_BAD_STATEID:
- 			if (state != NULL)
- 				nfs_remove_bad_delegation(state->inode);
--		case -NFS4ERR_OPENMODE:
- 			if (state == NULL)
- 				break;
- 			nfs4_schedule_stateid_recovery(server, state);
-@@ -1901,6 +1911,7 @@ static int nfs4_do_setattr(struct inode *inode, struct rpc_cred *cred,
- 	struct nfs_server *server = NFS_SERVER(inode);
- 	struct nfs4_exception exception = {
- 		.state = state,
-+		.inode = inode,
- 	};
- 	int err;
- 	do {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0087-xfs-fix-inode-lookup-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0087-xfs-fix-inode-lookup-race.patch
deleted file mode 100644
index 0f9e210..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0087-xfs-fix-inode-lookup-race.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From e5d6f5ef25f0e67126092de0837e7c8f2ecfbc86 Mon Sep 17 00:00:00 2001
-From: Dave Chinner <dchinner at redhat.com>
-Date: Wed, 7 Mar 2012 04:50:25 +0000
-Subject: [PATCH 087/147] xfs: fix inode lookup race
-
-commit f30d500f809eca67a21704347ab14bb35877b5ee upstream.
-
-When we get concurrent lookups of the same inode that is not in the
-per-AG inode cache, there is a race condition that triggers warnings
-in unlock_new_inode() indicating that we are initialising an inode
-that isn't in a the correct state for a new inode.
-
-When we do an inode lookup via a file handle or a bulkstat, we don't
-serialise lookups at a higher level through the dentry cache (i.e.
-pathless lookup), and so we can get concurrent lookups of the same
-inode.
-
-The race condition is between the insertion of the inode into the
-cache in the case of a cache miss and a concurrently lookup:
-
-Thread 1			Thread 2
-xfs_iget()
-  xfs_iget_cache_miss()
-    xfs_iread()
-    lock radix tree
-    radix_tree_insert()
-				rcu_read_lock
-				radix_tree_lookup
-				lock inode flags
-				XFS_INEW not set
-				igrab()
-				unlock inode flags
-				rcu_read_unlock
-				use uninitialised inode
-				.....
-    lock inode flags
-    set XFS_INEW
-    unlock inode flags
-    unlock radix tree
-  xfs_setup_inode()
-    inode flags = I_NEW
-    unlock_new_inode()
-      WARNING as inode flags != I_NEW
-
-This can lead to inode corruption, inode list corruption, etc, and
-is generally a bad thing to occur.
-
-Fix this by setting XFS_INEW before inserting the inode into the
-radix tree. This will ensure any concurrent lookup will find the new
-inode with XFS_INEW set and that forces the lookup to wait until the
-XFS_INEW flag is removed before allowing the lookup to succeed.
-
-Signed-off-by: Dave Chinner <dchinner at redhat.com>
-Reviewed-by: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Ben Myers <bpm at sgi.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/xfs/xfs_iget.c |   18 ++++++++++++------
- 1 file changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/fs/xfs/xfs_iget.c b/fs/xfs/xfs_iget.c
-index 0fa98b1..cfc4277 100644
---- a/fs/xfs/xfs_iget.c
-+++ b/fs/xfs/xfs_iget.c
-@@ -353,9 +353,20 @@ xfs_iget_cache_miss(
- 			BUG();
- 	}
- 
--	spin_lock(&pag->pag_ici_lock);
-+	/*
-+	 * These values must be set before inserting the inode into the radix
-+	 * tree as the moment it is inserted a concurrent lookup (allowed by the
-+	 * RCU locking mechanism) can find it and that lookup must see that this
-+	 * is an inode currently under construction (i.e. that XFS_INEW is set).
-+	 * The ip->i_flags_lock that protects the XFS_INEW flag forms the
-+	 * memory barrier that ensures this detection works correctly at lookup
-+	 * time.
-+	 */
-+	ip->i_udquot = ip->i_gdquot = NULL;
-+	xfs_iflags_set(ip, XFS_INEW);
- 
- 	/* insert the new inode */
-+	spin_lock(&pag->pag_ici_lock);
- 	error = radix_tree_insert(&pag->pag_ici_root, agino, ip);
- 	if (unlikely(error)) {
- 		WARN_ON(error != -EEXIST);
-@@ -363,11 +374,6 @@ xfs_iget_cache_miss(
- 		error = EAGAIN;
- 		goto out_preload_end;
- 	}
--
--	/* These values _must_ be set before releasing the radix tree lock! */
--	ip->i_udquot = ip->i_gdquot = NULL;
--	xfs_iflags_set(ip, XFS_INEW);
--
- 	spin_unlock(&pag->pag_ici_lock);
- 	radix_tree_preload_end();
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0088-CIFS-Respect-negotiated-MaxMpxCount.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0088-CIFS-Respect-negotiated-MaxMpxCount.patch
deleted file mode 100644
index 5f2a0dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0088-CIFS-Respect-negotiated-MaxMpxCount.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From 8ceb94d9185c4640cf49d48a06ddfb9ef94ec16d Mon Sep 17 00:00:00 2001
-From: Pavel Shilovsky <piastry at etersoft.ru>
-Date: Tue, 20 Mar 2012 12:55:09 +0300
-Subject: [PATCH 088/147] CIFS: Respect negotiated MaxMpxCount
-
-commit 10b9b98e41ba248a899f6175ce96ee91431b6194 upstream.
-
-Some servers sets this value less than 50 that was hardcoded and
-we lost the connection if when we exceed this limit. Fix this by
-respecting this value - not sending more than the server allows.
-
-Reviewed-by: Jeff Layton <jlayton at samba.org>
-Signed-off-by: Pavel Shilovsky <piastry at etersoft.ru>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/cifsfs.c    |    8 ++++----
- fs/cifs/cifsglob.h  |   10 +++-------
- fs/cifs/cifssmb.c   |    9 +++++++--
- fs/cifs/connect.c   |   11 ++++-------
- fs/cifs/dir.c       |    6 ++++--
- fs/cifs/file.c      |    4 ++--
- fs/cifs/transport.c |    4 ++--
- 7 files changed, 26 insertions(+), 26 deletions(-)
-
-diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
-index 8f1fe32..b4c2c99 100644
---- a/fs/cifs/cifsfs.c
-+++ b/fs/cifs/cifsfs.c
-@@ -76,7 +76,7 @@ MODULE_PARM_DESC(cifs_min_small, "Small network buffers in pool. Default: 30 "
- unsigned int cifs_max_pending = CIFS_MAX_REQ;
- module_param(cifs_max_pending, int, 0444);
- MODULE_PARM_DESC(cifs_max_pending, "Simultaneous requests to server. "
--				   "Default: 50 Range: 2 to 256");
-+				   "Default: 32767 Range: 2 to 32767.");
- unsigned short echo_retries = 5;
- module_param(echo_retries, ushort, 0644);
- MODULE_PARM_DESC(echo_retries, "Number of echo attempts before giving up and "
-@@ -1116,9 +1116,9 @@ init_cifs(void)
- 	if (cifs_max_pending < 2) {
- 		cifs_max_pending = 2;
- 		cFYI(1, "cifs_max_pending set to min of 2");
--	} else if (cifs_max_pending > 256) {
--		cifs_max_pending = 256;
--		cFYI(1, "cifs_max_pending set to max of 256");
-+	} else if (cifs_max_pending > CIFS_MAX_REQ) {
-+		cifs_max_pending = CIFS_MAX_REQ;
-+		cFYI(1, "cifs_max_pending set to max of %u", CIFS_MAX_REQ);
- 	}
- 
- 	rc = cifs_fscache_register();
-diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
-index 8238aa1..c467ac8 100644
---- a/fs/cifs/cifsglob.h
-+++ b/fs/cifs/cifsglob.h
-@@ -55,14 +55,9 @@
- 
- /*
-  * MAX_REQ is the maximum number of requests that WE will send
-- * on one socket concurrently. It also matches the most common
-- * value of max multiplex returned by servers.  We may
-- * eventually want to use the negotiated value (in case
-- * future servers can handle more) when we are more confident that
-- * we will not have problems oveloading the socket with pending
-- * write data.
-+ * on one socket concurrently.
-  */
--#define CIFS_MAX_REQ 50
-+#define CIFS_MAX_REQ 32767
- 
- #define RFC1001_NAME_LEN 15
- #define RFC1001_NAME_LEN_WITH_NULL (RFC1001_NAME_LEN + 1)
-@@ -263,6 +258,7 @@ struct TCP_Server_Info {
- 	bool session_estab; /* mark when very first sess is established */
- 	u16 dialect; /* dialect index that server chose */
- 	enum securityEnum secType;
-+	bool oplocks:1; /* enable oplocks */
- 	unsigned int maxReq;	/* Clients should submit no more */
- 	/* than maxReq distinct unanswered SMBs to the server when using  */
- 	/* multiplexed reads or writes */
-diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
-index 6600aa2..0e6adac 100644
---- a/fs/cifs/cifssmb.c
-+++ b/fs/cifs/cifssmb.c
-@@ -458,7 +458,10 @@ CIFSSMBNegotiate(unsigned int xid, struct cifs_ses *ses)
- 			goto neg_err_exit;
- 		}
- 		server->sec_mode = (__u8)le16_to_cpu(rsp->SecurityMode);
--		server->maxReq = le16_to_cpu(rsp->MaxMpxCount);
-+		server->maxReq = min_t(unsigned int,
-+				       le16_to_cpu(rsp->MaxMpxCount),
-+				       cifs_max_pending);
-+		server->oplocks = server->maxReq > 1 ? enable_oplocks : false;
- 		server->maxBuf = le16_to_cpu(rsp->MaxBufSize);
- 		server->max_vcs = le16_to_cpu(rsp->MaxNumberVcs);
- 		/* even though we do not use raw we might as well set this
-@@ -564,7 +567,9 @@ CIFSSMBNegotiate(unsigned int xid, struct cifs_ses *ses)
- 
- 	/* one byte, so no need to convert this or EncryptionKeyLen from
- 	   little endian */
--	server->maxReq = le16_to_cpu(pSMBr->MaxMpxCount);
-+	server->maxReq = min_t(unsigned int, le16_to_cpu(pSMBr->MaxMpxCount),
-+			       cifs_max_pending);
-+	server->oplocks = server->maxReq > 1 ? enable_oplocks : false;
- 	/* probably no need to store and check maxvcs */
- 	server->maxBuf = le32_to_cpu(pSMBr->MaxBufferSize);
- 	server->max_rw = le32_to_cpu(pSMBr->MaxRawSize);
-diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
-index 720edf5..a26b98f 100644
---- a/fs/cifs/connect.c
-+++ b/fs/cifs/connect.c
-@@ -625,14 +625,10 @@ static void clean_demultiplex_info(struct TCP_Server_Info *server)
- 	spin_unlock(&GlobalMid_Lock);
- 	wake_up_all(&server->response_q);
- 
--	/*
--	 * Check if we have blocked requests that need to free. Note that
--	 * cifs_max_pending is normally 50, but can be set at module install
--	 * time to as little as two.
--	 */
-+	/* Check if we have blocked requests that need to free. */
- 	spin_lock(&GlobalMid_Lock);
--	if (atomic_read(&server->inFlight) >= cifs_max_pending)
--		atomic_set(&server->inFlight, cifs_max_pending - 1);
-+	if (atomic_read(&server->inFlight) >= server->maxReq)
-+		atomic_set(&server->inFlight, server->maxReq - 1);
- 	/*
- 	 * We do not want to set the max_pending too low or we could end up
- 	 * with the counter going negative.
-@@ -1890,6 +1886,7 @@ cifs_get_tcp_session(struct smb_vol *volume_info)
- 	tcp_ses->noautotune = volume_info->noautotune;
- 	tcp_ses->tcp_nodelay = volume_info->sockopt_tcp_nodelay;
- 	atomic_set(&tcp_ses->inFlight, 0);
-+	tcp_ses->maxReq = 1; /* enough to send negotiate request */
- 	init_waitqueue_head(&tcp_ses->response_q);
- 	init_waitqueue_head(&tcp_ses->request_q);
- 	INIT_LIST_HEAD(&tcp_ses->pending_mid_q);
-diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
-index bf68b4f..6937e7c 100644
---- a/fs/cifs/dir.c
-+++ b/fs/cifs/dir.c
-@@ -171,7 +171,7 @@ cifs_create(struct inode *inode, struct dentry *direntry, int mode,
- 	}
- 	tcon = tlink_tcon(tlink);
- 
--	if (enable_oplocks)
-+	if (tcon->ses->server->oplocks)
- 		oplock = REQ_OPLOCK;
- 
- 	if (nd)
-@@ -492,7 +492,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
- {
- 	int xid;
- 	int rc = 0; /* to get around spurious gcc warning, set to zero here */
--	__u32 oplock = enable_oplocks ? REQ_OPLOCK : 0;
-+	__u32 oplock;
- 	__u16 fileHandle = 0;
- 	bool posix_open = false;
- 	struct cifs_sb_info *cifs_sb;
-@@ -518,6 +518,8 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
- 	}
- 	pTcon = tlink_tcon(tlink);
- 
-+	oplock = pTcon->ses->server->oplocks ? REQ_OPLOCK : 0;
-+
- 	/*
- 	 * Don't allow the separator character in a path component.
- 	 * The VFS will not allow "/", but "\" is allowed by posix.
-diff --git a/fs/cifs/file.c b/fs/cifs/file.c
-index 5e64748..4aa6080 100644
---- a/fs/cifs/file.c
-+++ b/fs/cifs/file.c
-@@ -380,7 +380,7 @@ int cifs_open(struct inode *inode, struct file *file)
- 	cFYI(1, "inode = 0x%p file flags are 0x%x for %s",
- 		 inode, file->f_flags, full_path);
- 
--	if (enable_oplocks)
-+	if (tcon->ses->server->oplocks)
- 		oplock = REQ_OPLOCK;
- 	else
- 		oplock = 0;
-@@ -505,7 +505,7 @@ static int cifs_reopen_file(struct cifsFileInfo *pCifsFile, bool can_flush)
- 	cFYI(1, "inode = 0x%p file flags 0x%x for %s",
- 		 inode, pCifsFile->f_flags, full_path);
- 
--	if (enable_oplocks)
-+	if (tcon->ses->server->oplocks)
- 		oplock = REQ_OPLOCK;
- 	else
- 		oplock = 0;
-diff --git a/fs/cifs/transport.c b/fs/cifs/transport.c
-index 0cc9584..99a27cf 100644
---- a/fs/cifs/transport.c
-+++ b/fs/cifs/transport.c
-@@ -265,12 +265,12 @@ static int wait_for_free_request(struct TCP_Server_Info *server,
- 
- 	spin_lock(&GlobalMid_Lock);
- 	while (1) {
--		if (atomic_read(&server->inFlight) >= cifs_max_pending) {
-+		if (atomic_read(&server->inFlight) >= server->maxReq) {
- 			spin_unlock(&GlobalMid_Lock);
- 			cifs_num_waiters_inc(server);
- 			wait_event(server->request_q,
- 				   atomic_read(&server->inFlight)
--				     < cifs_max_pending);
-+				     < server->maxReq);
- 			cifs_num_waiters_dec(server);
- 			spin_lock(&GlobalMid_Lock);
- 		} else {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0089-cifs-fix-issue-mounting-of-DFS-ROOT-when-redirecting.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0089-cifs-fix-issue-mounting-of-DFS-ROOT-when-redirecting.patch
deleted file mode 100644
index a07d8d8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0089-cifs-fix-issue-mounting-of-DFS-ROOT-when-redirecting.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From bf2a3ba7a460d3f1904077d790028269f468d7c1 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Wed, 21 Mar 2012 06:30:40 -0400
-Subject: [PATCH 089/147] cifs: fix issue mounting of DFS ROOT when
- redirecting from one domain controller to the next
-
-commit 1daaae8fa4afe3df78ca34e724ed7e8187e4eb32 upstream.
-
-This patch fixes an issue when cifs_mount receives a
-STATUS_BAD_NETWORK_NAME error during cifs_get_tcon but is able to
-continue after an DFS ROOT referral. In this case, the return code
-variable is not reset prior to trying to mount from the system referred
-to. Thus, is_path_accessible is not executed and the final DFS referral
-is not performed causing a mount error.
-
-Use case: In DNS, example.com  resolves to the secondary AD server
-ad2.example.com Our primary domain controller is ad1.example.com and has
-a DFS redirection set up from \\ad1\share\Users to \\files\share\Users.
-Mounting \\example.com\share\Users fails.
-
-Regression introduced by commit 724d9f1.
-
-Reviewed-by: Pavel Shilovsky <piastry at etersoft.ru
-Signed-off-by: Thomas Hadig <thomas at intapp.com>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/connect.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
-index a26b98f..9e0675a 100644
---- a/fs/cifs/connect.c
-+++ b/fs/cifs/connect.c
-@@ -3217,7 +3217,7 @@ cifs_ra_pages(struct cifs_sb_info *cifs_sb)
- int
- cifs_mount(struct cifs_sb_info *cifs_sb, struct smb_vol *volume_info)
- {
--	int rc = 0;
-+	int rc;
- 	int xid;
- 	struct cifs_ses *pSesInfo;
- 	struct cifs_tcon *tcon;
-@@ -3244,6 +3244,7 @@ try_mount_again:
- 		FreeXid(xid);
- 	}
- #endif
-+	rc = 0;
- 	tcon = NULL;
- 	pSesInfo = NULL;
- 	srvTcp = NULL;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0090-CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0090-CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
deleted file mode 100644
index db43c40..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0090-CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 456290dcbf936c8883bf84492b7c3f04e73efa1a Mon Sep 17 00:00:00 2001
-From: Pavel Shilovsky <piastry at etersoft.ru>
-Date: Sat, 17 Mar 2012 09:46:55 +0300
-Subject: [PATCH 090/147] CIFS: Fix a spurious error in cifs_push_posix_locks
-
-commit ce85852b90a214cf577fc1b4f49d99fd7e98784a upstream.
-
-Signed-off-by: Pavel Shilovsky <piastry at etersoft.ru>
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-Reported-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/file.c |   19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/fs/cifs/file.c b/fs/cifs/file.c
-index 4aa6080..159fcc5 100644
---- a/fs/cifs/file.c
-+++ b/fs/cifs/file.c
-@@ -960,9 +960,9 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
- 	INIT_LIST_HEAD(&locks_to_send);
- 
- 	/*
--	 * Allocating count locks is enough because no locks can be added to
--	 * the list while we are holding cinode->lock_mutex that protects
--	 * locking operations of this inode.
-+	 * Allocating count locks is enough because no FL_POSIX locks can be
-+	 * added to the list while we are holding cinode->lock_mutex that
-+	 * protects locking operations of this inode.
- 	 */
- 	for (; i < count; i++) {
- 		lck = kmalloc(sizeof(struct lock_to_push), GFP_KERNEL);
-@@ -973,18 +973,20 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
- 		list_add_tail(&lck->llist, &locks_to_send);
- 	}
- 
--	i = 0;
- 	el = locks_to_send.next;
- 	lock_flocks();
- 	cifs_for_each_lock(cfile->dentry->d_inode, before) {
-+		flock = *before;
-+		if ((flock->fl_flags & FL_POSIX) == 0)
-+			continue;
- 		if (el == &locks_to_send) {
--			/* something is really wrong */
-+			/*
-+			 * The list ended. We don't have enough allocated
-+			 * structures - something is really wrong.
-+			 */
- 			cERROR(1, "Can't push all brlocks!");
- 			break;
- 		}
--		flock = *before;
--		if ((flock->fl_flags & FL_POSIX) == 0)
--			continue;
- 		length = 1 + flock->fl_end - flock->fl_start;
- 		if (flock->fl_type == F_RDLCK || flock->fl_type == F_SHLCK)
- 			type = CIFS_RDLCK;
-@@ -996,7 +998,6 @@ cifs_push_posix_locks(struct cifsFileInfo *cfile)
- 		lck->length = length;
- 		lck->type = type;
- 		lck->offset = flock->fl_start;
--		i++;
- 		el = el->next;
- 	}
- 	unlock_flocks();
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0091-UBI-fix-error-handling-in-ubi_scan.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0091-UBI-fix-error-handling-in-ubi_scan.patch
deleted file mode 100644
index 1b0619f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0091-UBI-fix-error-handling-in-ubi_scan.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From a3dcecf0adebe74332981c56c453556e3a4ebd5b Mon Sep 17 00:00:00 2001
-From: Richard Weinberger <richard at nod.at>
-Date: Mon, 30 Jan 2012 18:20:13 +0100
-Subject: [PATCH 091/147] UBI: fix error handling in ubi_scan()
-
-commit a29852be492d61001d86c6ebf5fff9b93d7b4be9 upstream.
-
-Two bad things can happen in ubi_scan():
-1. If kmem_cache_create() fails we jump to out_si and call
-   ubi_scan_destroy_si() which calls kmem_cache_destroy().
-   But si->scan_leb_slab is NULL.
-2. If process_eb() fails we jump to out_vidh, call
-   kmem_cache_destroy() and ubi_scan_destroy_si() which calls
-   again kmem_cache_destroy().
-
-Signed-off-by: Richard Weinberger <richard at nod.at>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/ubi/scan.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/mtd/ubi/scan.c b/drivers/mtd/ubi/scan.c
-index 0cb17d9..b99318e 100644
---- a/drivers/mtd/ubi/scan.c
-+++ b/drivers/mtd/ubi/scan.c
-@@ -1174,7 +1174,7 @@ struct ubi_scan_info *ubi_scan(struct ubi_device *ubi)
- 
- 	ech = kzalloc(ubi->ec_hdr_alsize, GFP_KERNEL);
- 	if (!ech)
--		goto out_slab;
-+		goto out_si;
- 
- 	vidh = ubi_zalloc_vid_hdr(ubi, GFP_KERNEL);
- 	if (!vidh)
-@@ -1235,8 +1235,6 @@ out_vidh:
- 	ubi_free_vid_hdr(ubi, vidh);
- out_ech:
- 	kfree(ech);
--out_slab:
--	kmem_cache_destroy(si->scan_leb_slab);
- out_si:
- 	ubi_scan_destroy_si(si);
- 	return ERR_PTR(err);
-@@ -1325,7 +1323,9 @@ void ubi_scan_destroy_si(struct ubi_scan_info *si)
- 		}
- 	}
- 
--	kmem_cache_destroy(si->scan_leb_slab);
-+	if (si->scan_leb_slab)
-+		kmem_cache_destroy(si->scan_leb_slab);
-+
- 	kfree(si);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0092-UBI-fix-eraseblock-picking-criteria.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0092-UBI-fix-eraseblock-picking-criteria.patch
deleted file mode 100644
index ce317e4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0092-UBI-fix-eraseblock-picking-criteria.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 7abbe27ba63bb9559ea47b8449c4f0a50d98073e Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Wed, 7 Mar 2012 19:08:36 +0200
-Subject: [PATCH 092/147] UBI: fix eraseblock picking criteria
-
-commit 7eb3aa65853e1b223bfc786b023b702018cb76c0 upstream.
-
-The 'find_wl_entry()' function expects the maximum difference as the second
-argument, not the maximum absolute value. So the "unknown" eraseblock picking
-was incorrect, as Shmulik Ladkani spotted. This patch fixes the issue.
-
-Reported-by: Shmulik Ladkani <shmulik.ladkani at gmail.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Reviewed-by: Shmulik Ladkani <shmulik.ladkani at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/ubi/wl.c |   10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
-index 0696e36..cf42971 100644
---- a/drivers/mtd/ubi/wl.c
-+++ b/drivers/mtd/ubi/wl.c
-@@ -389,7 +389,7 @@ static struct ubi_wl_entry *find_wl_entry(struct rb_root *root, int max)
-  */
- int ubi_wl_get_peb(struct ubi_device *ubi, int dtype)
- {
--	int err, medium_ec;
-+	int err;
- 	struct ubi_wl_entry *e, *first, *last;
- 
- 	ubi_assert(dtype == UBI_LONGTERM || dtype == UBI_SHORTTERM ||
-@@ -427,7 +427,7 @@ retry:
- 		 * For unknown data we pick a physical eraseblock with medium
- 		 * erase counter. But we by no means can pick a physical
- 		 * eraseblock with erase counter greater or equivalent than the
--		 * lowest erase counter plus %WL_FREE_MAX_DIFF.
-+		 * lowest erase counter plus %WL_FREE_MAX_DIFF/2.
- 		 */
- 		first = rb_entry(rb_first(&ubi->free), struct ubi_wl_entry,
- 					u.rb);
-@@ -436,10 +436,8 @@ retry:
- 		if (last->ec - first->ec < WL_FREE_MAX_DIFF)
- 			e = rb_entry(ubi->free.rb_node,
- 					struct ubi_wl_entry, u.rb);
--		else {
--			medium_ec = (first->ec + WL_FREE_MAX_DIFF)/2;
--			e = find_wl_entry(&ubi->free, medium_ec);
--		}
-+		else
-+			e = find_wl_entry(&ubi->free, WL_FREE_MAX_DIFF/2);
- 		break;
- 	case UBI_SHORTTERM:
- 		/*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0093-SUNRPC-We-must-not-use-list_for_each_entry_safe-in-r.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0093-SUNRPC-We-must-not-use-list_for_each_entry_safe-in-r.patch
deleted file mode 100644
index 3b45654..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0093-SUNRPC-We-must-not-use-list_for_each_entry_safe-in-r.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From cdc2a3f4e2494e413531264d3949ce6801123ad9 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Mon, 19 Mar 2012 13:39:35 -0400
-Subject: [PATCH 093/147] SUNRPC: We must not use list_for_each_entry_safe()
- in rpc_wake_up()
-
-commit 540a0f7584169651f485e8ab67461fcb06934e38 upstream.
-
-The problem is that for the case of priority queues, we
-have to assume that __rpc_remove_wait_queue_priority will move new
-elements from the tk_wait.links lists into the queue->tasks[] list.
-We therefore cannot use list_for_each_entry_safe() on queue->tasks[],
-since that will skip these new tasks that __rpc_remove_wait_queue_priority
-is adding.
-
-Without this fix, rpc_wake_up and rpc_wake_up_status will both fail
-to wake up all functions on priority wait queues, which can result
-in some nasty hangs.
-
-Reported-by: Andy Adamson <andros at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/sunrpc/sched.c |   15 +++++++++++----
- 1 file changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
-index 00a1a2a..4e2b3b4 100644
---- a/net/sunrpc/sched.c
-+++ b/net/sunrpc/sched.c
-@@ -500,14 +500,18 @@ EXPORT_SYMBOL_GPL(rpc_wake_up_next);
-  */
- void rpc_wake_up(struct rpc_wait_queue *queue)
- {
--	struct rpc_task *task, *next;
- 	struct list_head *head;
- 
- 	spin_lock_bh(&queue->lock);
- 	head = &queue->tasks[queue->maxpriority];
- 	for (;;) {
--		list_for_each_entry_safe(task, next, head, u.tk_wait.list)
-+		while (!list_empty(head)) {
-+			struct rpc_task *task;
-+			task = list_first_entry(head,
-+					struct rpc_task,
-+					u.tk_wait.list);
- 			rpc_wake_up_task_queue_locked(queue, task);
-+		}
- 		if (head == &queue->tasks[0])
- 			break;
- 		head--;
-@@ -525,13 +529,16 @@ EXPORT_SYMBOL_GPL(rpc_wake_up);
-  */
- void rpc_wake_up_status(struct rpc_wait_queue *queue, int status)
- {
--	struct rpc_task *task, *next;
- 	struct list_head *head;
- 
- 	spin_lock_bh(&queue->lock);
- 	head = &queue->tasks[queue->maxpriority];
- 	for (;;) {
--		list_for_each_entry_safe(task, next, head, u.tk_wait.list) {
-+		while (!list_empty(head)) {
-+			struct rpc_task *task;
-+			task = list_first_entry(head,
-+					struct rpc_task,
-+					u.tk_wait.list);
- 			task->tk_status = status;
- 			rpc_wake_up_task_queue_locked(queue, task);
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0094-usbnet-increase-URB-reference-count-before-usb_unlin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0094-usbnet-increase-URB-reference-count-before-usb_unlin.patch
deleted file mode 100644
index 0538503..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0094-usbnet-increase-URB-reference-count-before-usb_unlin.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 25aa7a79e5be3c393eee41e3939d8eefa9672fc7 Mon Sep 17 00:00:00 2001
-From: "tom.leiming at gmail.com" <tom.leiming at gmail.com>
-Date: Thu, 22 Mar 2012 03:22:18 +0000
-Subject: [PATCH 094/147] usbnet: increase URB reference count before
- usb_unlink_urb
-
-commit 0956a8c20b23d429e79ff86d4325583fc06f9eb4 upstream.
-
-Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
-recursive locking in usbnet_stop()) fixes the recursive locking
-problem by releasing the skb queue lock, but it makes usb_unlink_urb
-racing with defer_bh, and the URB to being unlinked may be freed before
-or during calling usb_unlink_urb, so use-after-free problem may be
-triggerd inside usb_unlink_urb.
-
-The patch fixes the use-after-free problem by increasing URB
-reference count with skb queue lock held before calling
-usb_unlink_urb, so the URB won't be freed until return from
-usb_unlink_urb.
-
-Cc: Sebastian Andrzej Siewior <bigeasy at linutronix.de>
-Cc: Alan Stern <stern at rowland.harvard.edu>
-Cc: Oliver Neukum <oliver at neukum.org>
-Reported-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Ming Lei <tom.leiming at gmail.com>
-Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/usbnet.c |    9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
-index 81b96e3..cf6a515 100644
---- a/drivers/net/usb/usbnet.c
-+++ b/drivers/net/usb/usbnet.c
-@@ -589,6 +589,14 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)
- 		entry = (struct skb_data *) skb->cb;
- 		urb = entry->urb;
- 
-+		/*
-+		 * Get reference count of the URB to avoid it to be
-+		 * freed during usb_unlink_urb, which may trigger
-+		 * use-after-free problem inside usb_unlink_urb since
-+		 * usb_unlink_urb is always racing with .complete
-+		 * handler(include defer_bh).
-+		 */
-+		usb_get_urb(urb);
- 		spin_unlock_irqrestore(&q->lock, flags);
- 		// during some PM-driven resume scenarios,
- 		// these (async) unlinks complete immediately
-@@ -597,6 +605,7 @@ static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)
- 			netdev_dbg(dev->net, "unlink urb err, %d\n", retval);
- 		else
- 			count++;
-+		usb_put_urb(urb);
- 		spin_lock_irqsave(&q->lock, flags);
- 	}
- 	spin_unlock_irqrestore (&q->lock, flags);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0095-usbnet-don-t-clear-urb-dev-in-tx_complete.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0095-usbnet-don-t-clear-urb-dev-in-tx_complete.patch
deleted file mode 100644
index 71c9db0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0095-usbnet-don-t-clear-urb-dev-in-tx_complete.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 31dcb2223cbb8ca92371811a9d59ed6f721e6d5d Mon Sep 17 00:00:00 2001
-From: "tom.leiming at gmail.com" <tom.leiming at gmail.com>
-Date: Thu, 22 Mar 2012 03:22:38 +0000
-Subject: [PATCH 095/147] usbnet: don't clear urb->dev in tx_complete
-
-commit 5d5440a835710d09f0ef18da5000541ec98b537a upstream.
-
-URB unlinking is always racing with its completion and tx_complete
-may be called before or during running usb_unlink_urb, so tx_complete
-must not clear urb->dev since it will be used in unlink path,
-otherwise invalid memory accesses or usb device leak may be caused
-inside usb_unlink_urb.
-
-Cc: Alan Stern <stern at rowland.harvard.edu>
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Ming Lei <tom.leiming at gmail.com>
-Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/usbnet.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
-index cf6a515..750e330 100644
---- a/drivers/net/usb/usbnet.c
-+++ b/drivers/net/usb/usbnet.c
-@@ -1037,7 +1037,6 @@ static void tx_complete (struct urb *urb)
- 	}
- 
- 	usb_autopm_put_interface_async(dev->intf);
--	urb->dev = NULL;
- 	entry->state = tx_done;
- 	defer_bh(dev, skb, &dev->txq);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0096-e1000e-Avoid-wrong-check-on-TX-hang.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0096-e1000e-Avoid-wrong-check-on-TX-hang.patch
deleted file mode 100644
index 23f6a5b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0096-e1000e-Avoid-wrong-check-on-TX-hang.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 4c14b8afd02d6923243bf2e2f14bd8ad750741d3 Mon Sep 17 00:00:00 2001
-From: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Date: Fri, 18 Nov 2011 14:25:00 +0000
-Subject: [PATCH 096/147] e1000e: Avoid wrong check on TX hang
-
-commit 09357b00255c233705b1cf6d76a8d147340545b8 upstream.
-
-Based on the original patch submitted my Michael Wang
-<wangyun at linux.vnet.ibm.com>.
-Descriptors may not be write-back while checking TX hang with flag
-FLAG2_DMA_BURST on.
-So when we detect hang, we just flush the descriptor and detect
-again for once.
-
--v2 change 1 to true and 0 to false and remove extra ()
-
-CC: Michael Wang <wangyun at linux.vnet.ibm.com>
-CC: Flavio Leitner <fbl at redhat.com>
-Acked-by: Jesse Brandeburg <jesse.brandeburg at intel.com>
-Tested-by: Aaron Brown <aaron.f.brown at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/intel/e1000e/e1000.h  |    1 +
- drivers/net/ethernet/intel/e1000e/netdev.c |   23 ++++++++++++++++++++---
- 2 files changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/e1000.h b/drivers/net/ethernet/intel/e1000e/e1000.h
-index 9fe18d1..f478a22 100644
---- a/drivers/net/ethernet/intel/e1000e/e1000.h
-+++ b/drivers/net/ethernet/intel/e1000e/e1000.h
-@@ -309,6 +309,7 @@ struct e1000_adapter {
- 	u32 txd_cmd;
- 
- 	bool detect_tx_hung;
-+	bool tx_hang_recheck;
- 	u8 tx_timeout_factor;
- 
- 	u32 tx_int_delay;
-diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
-index a855db1..4e933d1 100644
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -1030,6 +1030,7 @@ static void e1000_print_hw_hang(struct work_struct *work)
- 	struct e1000_adapter *adapter = container_of(work,
- 	                                             struct e1000_adapter,
- 	                                             print_hang_task);
-+	struct net_device *netdev = adapter->netdev;
- 	struct e1000_ring *tx_ring = adapter->tx_ring;
- 	unsigned int i = tx_ring->next_to_clean;
- 	unsigned int eop = tx_ring->buffer_info[i].next_to_watch;
-@@ -1041,6 +1042,21 @@ static void e1000_print_hw_hang(struct work_struct *work)
- 	if (test_bit(__E1000_DOWN, &adapter->state))
- 		return;
- 
-+	if (!adapter->tx_hang_recheck &&
-+	    (adapter->flags2 & FLAG2_DMA_BURST)) {
-+		/* May be block on write-back, flush and detect again
-+		 * flush pending descriptor writebacks to memory
-+		 */
-+		ew32(TIDV, adapter->tx_int_delay | E1000_TIDV_FPD);
-+		/* execute the writes immediately */
-+		e1e_flush();
-+		adapter->tx_hang_recheck = true;
-+		return;
-+	}
-+	/* Real hang detected */
-+	adapter->tx_hang_recheck = false;
-+	netif_stop_queue(netdev);
-+
- 	e1e_rphy(hw, PHY_STATUS, &phy_status);
- 	e1e_rphy(hw, PHY_1000T_STATUS, &phy_1000t_status);
- 	e1e_rphy(hw, PHY_EXT_STATUS, &phy_ext_status);
-@@ -1154,10 +1170,10 @@ static bool e1000_clean_tx_irq(struct e1000_adapter *adapter)
- 		if (tx_ring->buffer_info[i].time_stamp &&
- 		    time_after(jiffies, tx_ring->buffer_info[i].time_stamp
- 			       + (adapter->tx_timeout_factor * HZ)) &&
--		    !(er32(STATUS) & E1000_STATUS_TXOFF)) {
-+		    !(er32(STATUS) & E1000_STATUS_TXOFF))
- 			schedule_work(&adapter->print_hang_task);
--			netif_stop_queue(netdev);
--		}
-+		else
-+			adapter->tx_hang_recheck = false;
- 	}
- 	adapter->total_tx_bytes += total_tx_bytes;
- 	adapter->total_tx_packets += total_tx_packets;
-@@ -3782,6 +3798,7 @@ static int e1000_open(struct net_device *netdev)
- 
- 	e1000_irq_enable(adapter);
- 
-+	adapter->tx_hang_recheck = false;
- 	netif_start_queue(netdev);
- 
- 	adapter->idle_check = true;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0097-x86-32-Fix-endless-loop-when-processing-signals-for-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0097-x86-32-Fix-endless-loop-when-processing-signals-for-.patch
deleted file mode 100644
index 0b817ed..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0097-x86-32-Fix-endless-loop-when-processing-signals-for-.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 37d297b39726f3284da2f83d235c94b0d224e047 Mon Sep 17 00:00:00 2001
-From: Dmitry Adamushko <dmitry.adamushko at gmail.com>
-Date: Thu, 22 Mar 2012 21:39:25 +0100
-Subject: [PATCH 097/147] x86-32: Fix endless loop when processing signals for
- kernel tasks
-
-commit 29a2e2836ff9ea65a603c89df217f4198973a74f upstream.
-
-The problem occurs on !CONFIG_VM86 kernels [1] when a kernel-mode task
-returns from a system call with a pending signal.
-
-A real-life scenario is a child of 'khelper' returning from a failed
-kernel_execve() in ____call_usermodehelper() [ kernel/kmod.c ].
-kernel_execve() fails due to a pending SIGKILL, which is the result of
-"kill -9 -1" (at least, busybox's init does it upon reboot).
-
-The loop is as follows:
-
-* syscall_exit_work:
- - work_pending:            // start_of_the_loop
- - work_notify_sig:
-   - do_notify_resume()
-     - do_signal()
-       - if (!user_mode(regs)) return;
- - resume_userspace         // TIF_SIGPENDING is still set
- - work_pending             // so we call work_pending => goto
-                            // start_of_the_loop
-
-More information can be found in another LKML thread:
-http://www.serverphorums.com/read.php?12,457826
-
-[1] the problem was also seen on MIPS.
-
-Signed-off-by: Dmitry Adamushko <dmitry.adamushko at gmail.com>
-Link: http://lkml.kernel.org/r/1332448765.2299.68.camel@dimm
-Cc: Oleg Nesterov <oleg at redhat.com>
-Cc: Roland McGrath <roland at hack.frob.com>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/entry_32.S |   17 ++++++++++-------
- 1 file changed, 10 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/kernel/entry_32.S b/arch/x86/kernel/entry_32.S
-index f3f6f53..bcda816 100644
---- a/arch/x86/kernel/entry_32.S
-+++ b/arch/x86/kernel/entry_32.S
-@@ -99,12 +99,6 @@
- #endif
- .endm
- 
--#ifdef CONFIG_VM86
--#define resume_userspace_sig	check_userspace
--#else
--#define resume_userspace_sig	resume_userspace
--#endif
--
- /*
-  * User gs save/restore
-  *
-@@ -328,10 +322,19 @@ ret_from_exception:
- 	preempt_stop(CLBR_ANY)
- ret_from_intr:
- 	GET_THREAD_INFO(%ebp)
--check_userspace:
-+resume_userspace_sig:
-+#ifdef CONFIG_VM86
- 	movl PT_EFLAGS(%esp), %eax	# mix EFLAGS and CS
- 	movb PT_CS(%esp), %al
- 	andl $(X86_EFLAGS_VM | SEGMENT_RPL_MASK), %eax
-+#else
-+	/*
-+	 * We can be coming here from a syscall done in the kernel space,
-+	 * e.g. a failed kernel_execve().
-+	 */
-+	movl PT_CS(%esp), %eax
-+	andl $SEGMENT_RPL_MASK, %eax
-+#endif
- 	cmpl $USER_RPL, %eax
- 	jb resume_kernel		# not returning to v8086 or userspace
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0098-proc-ns-use-d_set_d_op-API-to-set-dentry-ops-in-proc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0098-proc-ns-use-d_set_d_op-API-to-set-dentry-ops-in-proc.patch
deleted file mode 100644
index d32e4a6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0098-proc-ns-use-d_set_d_op-API-to-set-dentry-ops-in-proc.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 0b21a3eba2629ca8e573e5b0cd7d1627d17c7cf6 Mon Sep 17 00:00:00 2001
-From: Pravin B Shelar <pshelar at nicira.com>
-Date: Fri, 23 Mar 2012 15:02:55 -0700
-Subject: [PATCH 098/147] proc-ns: use d_set_d_op() API to set dentry ops in
- proc_ns_instantiate().
-
-commit 1b26c9b334044cff6d1d2698f2be41bc7d9a0864 upstream.
-
-The namespace cleanup path leaks a dentry which holds a reference count
-on a network namespace.  Keeping that network namespace from being freed
-when the last user goes away.  Leaving things like vlan devices in the
-leaked network namespace.
-
-If you use ip netns add for much real work this problem becomes apparent
-pretty quickly.  It light testing the problem hides because frequently
-you simply don't notice the leak.
-
-Use d_set_d_op() so that DCACHE_OP_* flags are set correctly.
-
-This issue exists back to 3.0.
-
-Acked-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Reported-by: Justin Pettit <jpettit at nicira.com>
-Signed-off-by: Pravin B Shelar <pshelar at nicira.com>
-Signed-off-by: Jesse Gross <jesse at nicira.com>
-Cc: David Miller <davem at davemloft.net>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/proc/namespaces.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/proc/namespaces.c b/fs/proc/namespaces.c
-index be177f7..d6c078e 100644
---- a/fs/proc/namespaces.c
-+++ b/fs/proc/namespaces.c
-@@ -54,7 +54,7 @@ static struct dentry *proc_ns_instantiate(struct inode *dir,
- 	ei->ns_ops    = ns_ops;
- 	ei->ns	      = ns;
- 
--	dentry->d_op = &pid_dentry_operations;
-+	d_set_d_op(dentry, &pid_dentry_operations);
- 	d_add(dentry, inode);
- 	/* Close the race of the process dying before we return the dentry */
- 	if (pid_revalidate(dentry, NULL))
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0099-iommu-amd-Fix-section-warning-for-prealloc_protectio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0099-iommu-amd-Fix-section-warning-for-prealloc_protectio.patch
deleted file mode 100644
index daafc4e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0099-iommu-amd-Fix-section-warning-for-prealloc_protectio.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From fd9b78dce7a6acf7a69902d69c82980634cd7136 Mon Sep 17 00:00:00 2001
-From: Steffen Persvold <sp at numascale.com>
-Date: Thu, 15 Mar 2012 15:20:29 +0100
-Subject: [PATCH 099/147] iommu/amd: Fix section warning for
- prealloc_protection_domains
-
-commit cebd5fa4d3046d5b43ce1836a0120612822a7fb0 upstream.
-
-Fix the following section warning in drivers/iommu/amd_iommu.c :
-
-WARNING: vmlinux.o(.text+0x526e77): Section mismatch in reference from the function prealloc_protection_domains() to the function .init.text:alloc_passthrough_domain()
-The function prealloc_protection_domains() references
-the function __init alloc_passthrough_domain().
-This is often because prealloc_protection_domains lacks a __init
-annotation or the annotation of alloc_passthrough_domain is wrong.
-
-Signed-off-by: Steffen Persvold <sp at numascale.com>
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/iommu/amd_iommu.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index e0b3e33..966a6e7 100644
---- a/drivers/iommu/amd_iommu.c
-+++ b/drivers/iommu/amd_iommu.c
-@@ -2432,7 +2432,7 @@ static int amd_iommu_dma_supported(struct device *dev, u64 mask)
-  * we don't need to preallocate the protection domains anymore.
-  * For now we have to.
-  */
--static void prealloc_protection_domains(void)
-+static void __init prealloc_protection_domains(void)
- {
- 	struct pci_dev *dev = NULL;
- 	struct dma_ops_domain *dma_dom;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0100-sysctl-protect-poll-in-entries-that-may-go-away.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0100-sysctl-protect-poll-in-entries-that-may-go-away.patch
deleted file mode 100644
index 15fc99d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0100-sysctl-protect-poll-in-entries-that-may-go-away.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 55d8b2b2ea9545b29091216b9875c4e119215b63 Mon Sep 17 00:00:00 2001
-From: Lucas De Marchi <lucas.demarchi at profusion.mobi>
-Date: Thu, 22 Mar 2012 14:42:22 -0700
-Subject: [PATCH 100/147] sysctl: protect poll() in entries that may go away
-
-commit 4e474a00d7ff746ed177ddae14fa8b2d4bad7a00 upstream.
-
-Protect code accessing ctl_table by grabbing the header with grab_header()
-and after releasing with sysctl_head_finish().  This is needed if poll()
-is called in entries created by modules: currently only hostname and
-domainname support poll(), but this bug may be triggered when/if modules
-use it and if user called poll() in a file that doesn't support it.
-
-Dave Jones reported the following when using a syscall fuzzer while
-hibernating/resuming:
-
-RIP: 0010:[<ffffffff81233e3e>]  [<ffffffff81233e3e>] proc_sys_poll+0x4e/0x90
-RAX: 0000000000000145 RBX: ffff88020cab6940 RCX: 0000000000000000
-RDX: ffffffff81233df0 RSI: 6b6b6b6b6b6b6b6b RDI: ffff88020cab6940
-[ ... ]
-Code: 00 48 89 fb 48 89 f1 48 8b 40 30 4c 8b 60 e8 b8 45 01 00 00 49 83
-7c 24 28 00 74 2e 49 8b 74 24 30 48 85 f6 74 24 48 85 c9 75 32 <8b> 16
-b8 45 01 00 00 48 63 d2 49 39 d5 74 10 8b 06 48 98 48 89
-
-If an entry goes away while we are polling() it, ctl_table may not exist
-anymore.
-
-Reported-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Lucas De Marchi <lucas.demarchi at profusion.mobi>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Alexey Dobriyan <adobriyan at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/proc/proc_sysctl.c |   17 ++++++++++++++++-
- 1 file changed, 16 insertions(+), 1 deletion(-)
-
-diff --git a/fs/proc/proc_sysctl.c b/fs/proc/proc_sysctl.c
-index a6b6217..53c3bce 100644
---- a/fs/proc/proc_sysctl.c
-+++ b/fs/proc/proc_sysctl.c
-@@ -188,20 +188,32 @@ static ssize_t proc_sys_write(struct file *filp, const char __user *buf,
- 
- static int proc_sys_open(struct inode *inode, struct file *filp)
- {
-+	struct ctl_table_header *head = grab_header(inode);
- 	struct ctl_table *table = PROC_I(inode)->sysctl_entry;
- 
-+	/* sysctl was unregistered */
-+	if (IS_ERR(head))
-+		return PTR_ERR(head);
-+
- 	if (table->poll)
- 		filp->private_data = proc_sys_poll_event(table->poll);
- 
-+	sysctl_head_finish(head);
-+
- 	return 0;
- }
- 
- static unsigned int proc_sys_poll(struct file *filp, poll_table *wait)
- {
- 	struct inode *inode = filp->f_path.dentry->d_inode;
-+	struct ctl_table_header *head = grab_header(inode);
- 	struct ctl_table *table = PROC_I(inode)->sysctl_entry;
--	unsigned long event = (unsigned long)filp->private_data;
- 	unsigned int ret = DEFAULT_POLLMASK;
-+	unsigned long event;
-+
-+	/* sysctl was unregistered */
-+	if (IS_ERR(head))
-+		return POLLERR | POLLHUP;
- 
- 	if (!table->proc_handler)
- 		goto out;
-@@ -209,6 +221,7 @@ static unsigned int proc_sys_poll(struct file *filp, poll_table *wait)
- 	if (!table->poll)
- 		goto out;
- 
-+	event = (unsigned long)filp->private_data;
- 	poll_wait(filp, &table->poll->wait, wait);
- 
- 	if (event != atomic_read(&table->poll->event)) {
-@@ -217,6 +230,8 @@ static unsigned int proc_sys_poll(struct file *filp, poll_table *wait)
- 	}
- 
- out:
-+	sysctl_head_finish(head);
-+
- 	return ret;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0101-hwmon-fam15h_power-Correct-sign-extension-of-running.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0101-hwmon-fam15h_power-Correct-sign-extension-of-running.patch
deleted file mode 100644
index 552723d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0101-hwmon-fam15h_power-Correct-sign-extension-of-running.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c1642ad65f83a61ba5c49a36e0f0e24f71c3dd9a Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Fri, 23 Mar 2012 10:02:17 +0100
-Subject: [PATCH 101/147] hwmon: (fam15h_power) Correct sign extension of
- running_avg_capture
-
-commit fc0900cbda9243957d812cd6b4cc87965f9fe75f upstream.
-
-Wrong bit was used for sign extension which caused wrong end results.
-Thanks to Andre for spotting this bug.
-
-Reported-by: Andre Przywara <andre.przywara at amd.com>
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Acked-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/fam15h_power.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
-index 523f8fb..930370d 100644
---- a/drivers/hwmon/fam15h_power.c
-+++ b/drivers/hwmon/fam15h_power.c
-@@ -60,7 +60,7 @@ static ssize_t show_power(struct device *dev,
- 	pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5),
- 				  REG_TDP_RUNNING_AVERAGE, &val);
- 	running_avg_capture = (val >> 4) & 0x3fffff;
--	running_avg_capture = sign_extend32(running_avg_capture, 22);
-+	running_avg_capture = sign_extend32(running_avg_capture, 21);
- 	running_avg_range = val & 0xf;
- 
- 	pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0102-lgdt330x-fix-signedness-error-in-i2c_read_demod_byte.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0102-lgdt330x-fix-signedness-error-in-i2c_read_demod_byte.patch
deleted file mode 100644
index ae14ffb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0102-lgdt330x-fix-signedness-error-in-i2c_read_demod_byte.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 02bdf6aaea4932d896b0a9c8648ae6aa8255eb2b Mon Sep 17 00:00:00 2001
-From: Xi Wang <xi.wang at gmail.com>
-Date: Tue, 14 Feb 2012 14:32:41 -0300
-Subject: [PATCH 102/147] lgdt330x: fix signedness error in
- i2c_read_demod_bytes()
-
-commit 34817174fca0c5512c2d5b6ea0fc37a0337ce1d8 upstream.
-
-The error handling in lgdt3303_read_status() and lgdt330x_read_ucblocks()
-doesn't work, because i2c_read_demod_bytes() returns a u8 and (err < 0)
-is always false.
-
-        err = i2c_read_demod_bytes(state, 0x58, buf, 1);
-        if (err < 0)
-                return err;
-
-Change the return type of i2c_read_demod_bytes() to int.  Also change
-the return value on error to -EIO to make (err < 0) work.
-
-Signed-off-by: Xi Wang <xi.wang at gmail.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/media/dvb/frontends/lgdt330x.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/media/dvb/frontends/lgdt330x.c b/drivers/media/dvb/frontends/lgdt330x.c
-index 43971e6..aa63d68 100644
---- a/drivers/media/dvb/frontends/lgdt330x.c
-+++ b/drivers/media/dvb/frontends/lgdt330x.c
-@@ -104,8 +104,8 @@ static int i2c_write_demod_bytes (struct lgdt330x_state* state,
-  * then reads the data returned for (len) bytes.
-  */
- 
--static u8 i2c_read_demod_bytes (struct lgdt330x_state* state,
--			       enum I2C_REG reg, u8* buf, int len)
-+static int i2c_read_demod_bytes(struct lgdt330x_state *state,
-+				enum I2C_REG reg, u8 *buf, int len)
- {
- 	u8 wr [] = { reg };
- 	struct i2c_msg msg [] = {
-@@ -118,6 +118,8 @@ static u8 i2c_read_demod_bytes (struct lgdt330x_state* state,
- 	ret = i2c_transfer(state->i2c, msg, 2);
- 	if (ret != 2) {
- 		printk(KERN_WARNING "lgdt330x: %s: addr 0x%02x select 0x%02x error (ret == %i)\n", __func__, state->config->demod_address, reg, ret);
-+		if (ret >= 0)
-+			ret = -EIO;
- 	} else {
- 		ret = 0;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0103-pvrusb2-fix-7MHz-8MHz-DVB-T-tuner-support-for-HVR190.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0103-pvrusb2-fix-7MHz-8MHz-DVB-T-tuner-support-for-HVR190.patch
deleted file mode 100644
index 974e49d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0103-pvrusb2-fix-7MHz-8MHz-DVB-T-tuner-support-for-HVR190.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From c0c8df72a8880f19b3d9631dc8c2298a533eeba0 Mon Sep 17 00:00:00 2001
-From: Michael Krufky <mkrufky at linuxtv.org>
-Date: Tue, 7 Feb 2012 13:28:33 -0300
-Subject: [PATCH 103/147] pvrusb2: fix 7MHz & 8MHz DVB-T tuner support for
- HVR1900 rev D1F5
-
-commit 9ab2393fc3e460cd2040de1483918eb17abb822f upstream.
-
-The D1F5 revision of the WinTV HVR-1900 uses a tda18271c2 tuner
-instead of a tda18271c1 tuner as used in revision D1E9. To
-account for this, we must hardcode the frontend configuration
-to use the same IF frequency configuration for both revisions
-of the device.
-
-6MHz DVB-T is unaffected by this issue, as the recommended
-IF Frequency configuration for 6MHz DVB-T is the same on both
-c1 and c2 revisions of the tda18271 tuner.
-
-Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
-Cc: Mike Isely <isely at pobox.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/media/video/pvrusb2/pvrusb2-devattr.c |   10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/drivers/media/video/pvrusb2/pvrusb2-devattr.c b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
-index c6da8f7..d8c8982 100644
---- a/drivers/media/video/pvrusb2/pvrusb2-devattr.c
-+++ b/drivers/media/video/pvrusb2/pvrusb2-devattr.c
-@@ -320,7 +320,17 @@ static struct tda829x_config tda829x_no_probe = {
- 	.probe_tuner = TDA829X_DONT_PROBE,
- };
- 
-+static struct tda18271_std_map hauppauge_tda18271_dvbt_std_map = {
-+        .dvbt_6   = { .if_freq = 3300, .agc_mode = 3, .std = 4,
-+                      .if_lvl = 1, .rfagc_top = 0x37, },
-+        .dvbt_7   = { .if_freq = 3800, .agc_mode = 3, .std = 5,
-+                      .if_lvl = 1, .rfagc_top = 0x37, },
-+        .dvbt_8   = { .if_freq = 4300, .agc_mode = 3, .std = 6,
-+                      .if_lvl = 1, .rfagc_top = 0x37, },
-+};
-+
- static struct tda18271_config hauppauge_tda18271_dvb_config = {
-+	.std_map = &hauppauge_tda18271_dvbt_std_map,
- 	.gate    = TDA18271_GATE_ANALOG,
- 	.output_opt = TDA18271_OUTPUT_LT_OFF,
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0104-mxl111sf-fix-error-on-stream-stop-in-mxl111sf_ep6_st.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0104-mxl111sf-fix-error-on-stream-stop-in-mxl111sf_ep6_st.patch
deleted file mode 100644
index 2233e9a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0104-mxl111sf-fix-error-on-stream-stop-in-mxl111sf_ep6_st.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 9b9105c08669b50ea9735b26116b0b094cdb2fbe Mon Sep 17 00:00:00 2001
-From: Michael Krufky <mkrufky at linuxtv.org>
-Date: Sun, 18 Mar 2012 14:35:57 -0300
-Subject: [PATCH 104/147] mxl111sf: fix error on stream stop in
- mxl111sf_ep6_streaming_ctrl()
-
-commit 3be5bb71fbf18f83cb88b54a62a78e03e5a4f30a upstream.
-
-Remove unnecessary register access in mxl111sf_ep6_streaming_ctrl()
-
-This code breaks driver operation in kernel 3.3 and later, although
-it works properly in 3.2  Disable register access to 0x12 for now.
-
-Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/media/dvb/dvb-usb/mxl111sf.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/media/dvb/dvb-usb/mxl111sf.c b/drivers/media/dvb/dvb-usb/mxl111sf.c
-index b5c98da..bc6ea9f 100644
---- a/drivers/media/dvb/dvb-usb/mxl111sf.c
-+++ b/drivers/media/dvb/dvb-usb/mxl111sf.c
-@@ -351,15 +351,13 @@ static int mxl111sf_ep6_streaming_ctrl(struct dvb_usb_adapter *adap, int onoff)
- 					      adap_state->ep6_clockphase,
- 					      0, 0);
- 		mxl_fail(ret);
-+#if 0
- 	} else {
- 		ret = mxl111sf_disable_656_port(state);
- 		mxl_fail(ret);
-+#endif
- 	}
- 
--	mxl111sf_read_reg(state, 0x12, &tmp);
--	tmp &= ~0x04;
--	mxl111sf_write_reg(state, 0x12, tmp);
--
- 	return ret;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0105-NFSv4-Rate-limit-the-state-manager-warning-messages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0105-NFSv4-Rate-limit-the-state-manager-warning-messages.patch
deleted file mode 100644
index f006520..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0105-NFSv4-Rate-limit-the-state-manager-warning-messages.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 44612d69c516879d31f7b6a4a49d00dfc49caf06 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Mon, 12 Mar 2012 18:01:48 -0400
-Subject: [PATCH 105/147] NFSv4: Rate limit the state manager warning messages
-
-commit 9a3ba432330e504ac61ff0043dbdaba7cea0e35a upstream.
-
-Prevent the state manager from filling up system logs when recovery
-fails on the server.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/callback_xdr.c |    4 +++-
- fs/nfs/nfs4proc.c     |    2 +-
- fs/nfs/nfs4state.c    |    4 ++--
- 3 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/fs/nfs/callback_xdr.c b/fs/nfs/callback_xdr.c
-index 726e59a..168cb93 100644
---- a/fs/nfs/callback_xdr.c
-+++ b/fs/nfs/callback_xdr.c
-@@ -9,6 +9,8 @@
- #include <linux/sunrpc/svc.h>
- #include <linux/nfs4.h>
- #include <linux/nfs_fs.h>
-+#include <linux/ratelimit.h>
-+#include <linux/printk.h>
- #include <linux/slab.h>
- #include <linux/sunrpc/bc_xprt.h>
- #include "nfs4_fs.h"
-@@ -167,7 +169,7 @@ static __be32 decode_compound_hdr_arg(struct xdr_stream *xdr, struct cb_compound
- 	if (hdr->minorversion <= 1) {
- 		hdr->cb_ident = ntohl(*p++); /* ignored by v4.1 */
- 	} else {
--		printk(KERN_WARNING "%s: NFSv4 server callback with "
-+		pr_warn_ratelimited("NFS: %s: NFSv4 server callback with "
- 			"illegal minor version %u!\n",
- 			__func__, hdr->minorversion);
- 		return htonl(NFS4ERR_MINOR_VERS_MISMATCH);
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 758e809..c9e2d9e 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -1838,7 +1838,7 @@ static struct nfs4_state *nfs4_do_open(struct inode *dir, struct dentry *dentry,
- 		 * the user though...
- 		 */
- 		if (status == -NFS4ERR_BAD_SEQID) {
--			printk(KERN_WARNING "NFS: v4 server %s "
-+			pr_warn_ratelimited("NFS: v4 server %s "
- 					" returned a bad sequence-id error!\n",
- 					NFS_SERVER(dir)->nfs_client->cl_hostname);
- 			exception.retry = 1;
-diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index 0596fd6..66020ac 100644
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -935,7 +935,7 @@ static void nfs_increment_seqid(int status, struct nfs_seqid *seqid)
- 		case -NFS4ERR_BAD_SEQID:
- 			if (seqid->sequence->flags & NFS_SEQID_CONFIRMED)
- 				return;
--			printk(KERN_WARNING "NFS: v4 server returned a bad"
-+			pr_warn_ratelimited("NFS: v4 server returned a bad"
- 					" sequence-id error on an"
- 					" unconfirmed sequence %p!\n",
- 					seqid->sequence);
-@@ -1764,7 +1764,7 @@ static void nfs4_state_manager(struct nfs_client *clp)
- 	} while (atomic_read(&clp->cl_count) > 1);
- 	return;
- out_error:
--	printk(KERN_WARNING "Error: state manager failed on NFSv4 server %s"
-+	pr_warn_ratelimited("NFS: state manager failed on NFSv4 server %s"
- 			" with error %d\n", clp->cl_hostname, -status);
- 	nfs4_end_drain_session(clp);
- 	nfs4_clear_state_manager_bit(clp);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0106-PM-Hibernate-Enable-usermodehelpers-in-hibernate-err.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0106-PM-Hibernate-Enable-usermodehelpers-in-hibernate-err.patch
deleted file mode 100644
index 8cd543c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0106-PM-Hibernate-Enable-usermodehelpers-in-hibernate-err.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 17b1d0787c9eea1fffe5432c14f53066ad2ff0c6 Mon Sep 17 00:00:00 2001
-From: "Srivatsa S. Bhat" <srivatsa.bhat at linux.vnet.ibm.com>
-Date: Fri, 17 Feb 2012 23:39:51 +0100
-Subject: [PATCH 106/147] PM / Hibernate: Enable usermodehelpers in
- hibernate() error path
-
-commit 05b4877f6a4f1ba4952d1222213d262bf8c132b7 upstream.
-
-If create_basic_memory_bitmaps() fails, usermodehelpers are not re-enabled
-before returning. Fix this. And while at it, reword the goto labels so that
-they look more meaningful.
-
-Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/power/hibernate.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index 624538a..7c0d578 100644
---- a/kernel/power/hibernate.c
-+++ b/kernel/power/hibernate.c
-@@ -648,7 +648,7 @@ int hibernate(void)
- 	/* Allocate memory management structures */
- 	error = create_basic_memory_bitmaps();
- 	if (error)
--		goto Exit;
-+		goto Enable_umh;
- 
- 	printk(KERN_INFO "PM: Syncing filesystems ... ");
- 	sys_sync();
-@@ -656,7 +656,7 @@ int hibernate(void)
- 
- 	error = prepare_processes();
- 	if (error)
--		goto Finish;
-+		goto Free_bitmaps;
- 
- 	error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
- 	if (error)
-@@ -689,8 +689,9 @@ int hibernate(void)
- 
-  Thaw:
- 	thaw_processes();
-- Finish:
-+ Free_bitmaps:
- 	free_basic_memory_bitmaps();
-+ Enable_umh:
- 	usermodehelper_enable();
-  Exit:
- 	pm_notifier_call_chain(PM_POST_HIBERNATION);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0107-jbd2-clear-BH_Delay-BH_Unwritten-in-journal_unmap_bu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0107-jbd2-clear-BH_Delay-BH_Unwritten-in-journal_unmap_bu.patch
deleted file mode 100644
index f105047..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0107-jbd2-clear-BH_Delay-BH_Unwritten-in-journal_unmap_bu.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From aa127d5abf17393b4f75c53be45124307b230542 Mon Sep 17 00:00:00 2001
-From: Eric Sandeen <sandeen at redhat.com>
-Date: Mon, 20 Feb 2012 17:53:01 -0500
-Subject: [PATCH 107/147] jbd2: clear BH_Delay & BH_Unwritten in
- journal_unmap_buffer
-
-commit 15291164b22a357cb211b618adfef4fa82fc0de3 upstream.
-
-journal_unmap_buffer()'s zap_buffer: code clears a lot of buffer head
-state ala discard_buffer(), but does not touch _Delay or _Unwritten as
-discard_buffer() does.
-
-This can be problematic in some areas of the ext4 code which assume
-that if they have found a buffer marked unwritten or delay, then it's
-a live one.  Perhaps those spots should check whether it is mapped
-as well, but if jbd2 is going to tear down a buffer, let's really
-tear it down completely.
-
-Without this I get some fsx failures on sub-page-block filesystems
-up until v3.2, at which point 4e96b2dbbf1d7e81f22047a50f862555a6cb87cb
-and 189e868fa8fdca702eb9db9d8afc46b5cb9144c9 make the failures go
-away, because buried within that large change is some more flag
-clearing.  I still think it's worth doing in jbd2, since
-->invalidatepage leads here directly, and it's the right place
-to clear away these flags.
-
-Signed-off-by: Eric Sandeen <sandeen at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/jbd2/transaction.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
-index a0e41a4..8267de5 100644
---- a/fs/jbd2/transaction.c
-+++ b/fs/jbd2/transaction.c
-@@ -1948,6 +1948,8 @@ zap_buffer_unlocked:
- 	clear_buffer_mapped(bh);
- 	clear_buffer_req(bh);
- 	clear_buffer_new(bh);
-+	clear_buffer_delay(bh);
-+	clear_buffer_unwritten(bh);
- 	bh->b_bdev = NULL;
- 	return may_free;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0108-ext4-ignore-EXT4_INODE_JOURNAL_DATA-flag-with-delall.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0108-ext4-ignore-EXT4_INODE_JOURNAL_DATA-flag-with-delall.patch
deleted file mode 100644
index 3837be5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0108-ext4-ignore-EXT4_INODE_JOURNAL_DATA-flag-with-delall.patch
+++ /dev/null
@@ -1,194 +0,0 @@
-From 9a02204e0d49b5a0717822d1919f90768cef64ff Mon Sep 17 00:00:00 2001
-From: Lukas Czerner <lczerner at redhat.com>
-Date: Mon, 20 Feb 2012 17:53:00 -0500
-Subject: [PATCH 108/147] ext4: ignore EXT4_INODE_JOURNAL_DATA flag with
- delalloc
-
-commit 3d2b158262826e8b75bbbfb7b97010838dd92ac7 upstream.
-
-Ext4 does not support data journalling with delayed allocation enabled.
-We even do not allow to mount the file system with delayed allocation
-and data journalling enabled, however it can be set via FS_IOC_SETFLAGS
-so we can hit the inode with EXT4_INODE_JOURNAL_DATA set even on file
-system mounted with delayed allocation (default) and that's where
-problem arises. The easies way to reproduce this problem is with the
-following set of commands:
-
- mkfs.ext4 /dev/sdd
- mount /dev/sdd /mnt/test1
- dd if=/dev/zero of=/mnt/test1/file bs=1M count=4
- chattr +j /mnt/test1/file
- dd if=/dev/zero of=/mnt/test1/file bs=1M count=4 conv=notrunc
- chattr -j /mnt/test1/file
-
-Additionally it can be reproduced quite reliably with xfstests 272 and
-269. In fact the above reproducer is a part of test 272.
-
-To fix this we should ignore the EXT4_INODE_JOURNAL_DATA inode flag if
-the file system is mounted with delayed allocation. This can be easily
-done by fixing ext4_should_*_data() functions do ignore data journal
-flag when delalloc is set (suggested by Ted). We also have to set the
-appropriate address space operations for the inode (again, ignoring data
-journal flag if delalloc enabled).
-
-Additionally this commit introduces ext4_inode_journal_mode() function
-because ext4_should_*_data() has already had a lot of common code and
-this change is putting it all into one function so it is easier to
-read.
-
-Successfully tested with xfstests in following configurations:
-
-delalloc + data=ordered
-delalloc + data=writeback
-data=journal
-nodelalloc + data=ordered
-nodelalloc + data=writeback
-nodelalloc + data=journal
-
-Signed-off-by: Lukas Czerner <lczerner at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ext4/ext4_jbd2.h |   56 ++++++++++++++++++++++++++-------------------------
- fs/ext4/inode.c     |   36 ++++++++++++++++++++-------------
- 2 files changed, 51 insertions(+), 41 deletions(-)
-
-diff --git a/fs/ext4/ext4_jbd2.h b/fs/ext4/ext4_jbd2.h
-index 5802fa1..95af6f8 100644
---- a/fs/ext4/ext4_jbd2.h
-+++ b/fs/ext4/ext4_jbd2.h
-@@ -261,43 +261,45 @@ static inline void ext4_update_inode_fsync_trans(handle_t *handle,
- /* super.c */
- int ext4_force_commit(struct super_block *sb);
- 
--static inline int ext4_should_journal_data(struct inode *inode)
-+/*
-+ * Ext4 inode journal modes
-+ */
-+#define EXT4_INODE_JOURNAL_DATA_MODE	0x01 /* journal data mode */
-+#define EXT4_INODE_ORDERED_DATA_MODE	0x02 /* ordered data mode */
-+#define EXT4_INODE_WRITEBACK_DATA_MODE	0x04 /* writeback data mode */
-+
-+static inline int ext4_inode_journal_mode(struct inode *inode)
- {
- 	if (EXT4_JOURNAL(inode) == NULL)
--		return 0;
--	if (!S_ISREG(inode->i_mode))
--		return 1;
--	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
--		return 1;
--	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
--		return 1;
--	return 0;
-+		return EXT4_INODE_WRITEBACK_DATA_MODE;	/* writeback */
-+	/* We do not support data journalling with delayed allocation */
-+	if (!S_ISREG(inode->i_mode) ||
-+	    test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_JOURNAL_DATA)
-+		return EXT4_INODE_JOURNAL_DATA_MODE;	/* journal data */
-+	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA) &&
-+	    !test_opt(inode->i_sb, DELALLOC))
-+		return EXT4_INODE_JOURNAL_DATA_MODE;	/* journal data */
-+	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)
-+		return EXT4_INODE_ORDERED_DATA_MODE;	/* ordered */
-+	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA)
-+		return EXT4_INODE_WRITEBACK_DATA_MODE;	/* writeback */
-+	else
-+		BUG();
-+}
-+
-+static inline int ext4_should_journal_data(struct inode *inode)
-+{
-+	return ext4_inode_journal_mode(inode) & EXT4_INODE_JOURNAL_DATA_MODE;
- }
- 
- static inline int ext4_should_order_data(struct inode *inode)
- {
--	if (EXT4_JOURNAL(inode) == NULL)
--		return 0;
--	if (!S_ISREG(inode->i_mode))
--		return 0;
--	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
--		return 0;
--	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_ORDERED_DATA)
--		return 1;
--	return 0;
-+	return ext4_inode_journal_mode(inode) & EXT4_INODE_ORDERED_DATA_MODE;
- }
- 
- static inline int ext4_should_writeback_data(struct inode *inode)
- {
--	if (EXT4_JOURNAL(inode) == NULL)
--		return 1;
--	if (!S_ISREG(inode->i_mode))
--		return 0;
--	if (ext4_test_inode_flag(inode, EXT4_INODE_JOURNAL_DATA))
--		return 0;
--	if (test_opt(inode->i_sb, DATA_FLAGS) == EXT4_MOUNT_WRITEBACK_DATA)
--		return 1;
--	return 0;
-+	return ext4_inode_journal_mode(inode) & EXT4_INODE_WRITEBACK_DATA_MODE;
- }
- 
- /*
-diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
-index 9df447f..fbd2ea4 100644
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -2480,13 +2480,14 @@ static int ext4_da_write_end(struct file *file,
- 	int write_mode = (int)(unsigned long)fsdata;
- 
- 	if (write_mode == FALL_BACK_TO_NONDELALLOC) {
--		if (ext4_should_order_data(inode)) {
-+		switch (ext4_inode_journal_mode(inode)) {
-+		case EXT4_INODE_ORDERED_DATA_MODE:
- 			return ext4_ordered_write_end(file, mapping, pos,
- 					len, copied, page, fsdata);
--		} else if (ext4_should_writeback_data(inode)) {
-+		case EXT4_INODE_WRITEBACK_DATA_MODE:
- 			return ext4_writeback_write_end(file, mapping, pos,
- 					len, copied, page, fsdata);
--		} else {
-+		default:
- 			BUG();
- 		}
- 	}
-@@ -3084,18 +3085,25 @@ static const struct address_space_operations ext4_da_aops = {
- 
- void ext4_set_aops(struct inode *inode)
- {
--	if (ext4_should_order_data(inode) &&
--		test_opt(inode->i_sb, DELALLOC))
--		inode->i_mapping->a_ops = &ext4_da_aops;
--	else if (ext4_should_order_data(inode))
--		inode->i_mapping->a_ops = &ext4_ordered_aops;
--	else if (ext4_should_writeback_data(inode) &&
--		 test_opt(inode->i_sb, DELALLOC))
--		inode->i_mapping->a_ops = &ext4_da_aops;
--	else if (ext4_should_writeback_data(inode))
--		inode->i_mapping->a_ops = &ext4_writeback_aops;
--	else
-+	switch (ext4_inode_journal_mode(inode)) {
-+	case EXT4_INODE_ORDERED_DATA_MODE:
-+		if (test_opt(inode->i_sb, DELALLOC))
-+			inode->i_mapping->a_ops = &ext4_da_aops;
-+		else
-+			inode->i_mapping->a_ops = &ext4_ordered_aops;
-+		break;
-+	case EXT4_INODE_WRITEBACK_DATA_MODE:
-+		if (test_opt(inode->i_sb, DELALLOC))
-+			inode->i_mapping->a_ops = &ext4_da_aops;
-+		else
-+			inode->i_mapping->a_ops = &ext4_writeback_aops;
-+		break;
-+	case EXT4_INODE_JOURNAL_DATA_MODE:
- 		inode->i_mapping->a_ops = &ext4_journalled_aops;
-+		break;
-+	default:
-+		BUG();
-+	}
- }
- 
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0109-ext4-fix-race-between-unwritten-extent-conversion-an.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0109-ext4-fix-race-between-unwritten-extent-conversion-an.patch
deleted file mode 100644
index 7dd5d50..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0109-ext4-fix-race-between-unwritten-extent-conversion-an.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 650bb7d911ba40c634964921badb10e175276089 Mon Sep 17 00:00:00 2001
-From: Jeff Moyer <jmoyer at redhat.com>
-Date: Mon, 20 Feb 2012 17:59:24 -0500
-Subject: [PATCH 109/147] ext4: fix race between unwritten extent conversion
- and truncate
-
-commit 266991b13890049ee1a6bb95b9817f06339ee3d7 upstream.
-
-The following comment in ext4_end_io_dio caught my attention:
-
-	/* XXX: probably should move into the real I/O completion handler */
-        inode_dio_done(inode);
-
-The truncate code takes i_mutex, then calls inode_dio_wait.  Because the
-ext4 code path above will end up dropping the mutex before it is
-reacquired by the worker thread that does the extent conversion, it
-seems to me that the truncate can happen out of order.  Jan Kara
-mentioned that this might result in error messages in the system logs,
-but that should be the extent of the "damage."
-
-The fix is pretty straight-forward: don't call inode_dio_done until the
-extent conversion is complete.
-
-Reviewed-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Jeff Moyer <jmoyer at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ext4/ext4.h    |    1 +
- fs/ext4/inode.c   |   10 +++++-----
- fs/ext4/page-io.c |    2 ++
- 3 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 5b0e26a..655d942 100644
---- a/fs/ext4/ext4.h
-+++ b/fs/ext4/ext4.h
-@@ -184,6 +184,7 @@ struct mpage_da_data {
- #define	EXT4_IO_END_UNWRITTEN	0x0001
- #define EXT4_IO_END_ERROR	0x0002
- #define EXT4_IO_END_QUEUED	0x0004
-+#define EXT4_IO_END_DIRECT	0x0008
- 
- struct ext4_io_page {
- 	struct page	*p_page;
-diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
-index fbd2ea4..d0dc109 100644
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -2794,9 +2794,6 @@ out:
- 
- 	/* queue the work to convert unwritten extents to written */
- 	queue_work(wq, &io_end->work);
--
--	/* XXX: probably should move into the real I/O completion handler */
--	inode_dio_done(inode);
- }
- 
- static void ext4_end_io_buffer_write(struct buffer_head *bh, int uptodate)
-@@ -2920,9 +2917,12 @@ static ssize_t ext4_ext_direct_IO(int rw, struct kiocb *iocb,
- 		iocb->private = NULL;
- 		EXT4_I(inode)->cur_aio_dio = NULL;
- 		if (!is_sync_kiocb(iocb)) {
--			iocb->private = ext4_init_io_end(inode, GFP_NOFS);
--			if (!iocb->private)
-+			ext4_io_end_t *io_end =
-+				ext4_init_io_end(inode, GFP_NOFS);
-+			if (!io_end)
- 				return -ENOMEM;
-+			io_end->flag |= EXT4_IO_END_DIRECT;
-+			iocb->private = io_end;
- 			/*
- 			 * we save the io structure for current async
- 			 * direct IO, so that later ext4_map_blocks()
-diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
-index 7e106c8..924298a 100644
---- a/fs/ext4/page-io.c
-+++ b/fs/ext4/page-io.c
-@@ -111,6 +111,8 @@ int ext4_end_io_nolock(ext4_io_end_t *io)
- 	if (io->iocb)
- 		aio_complete(io->iocb, io->result, 0);
- 
-+	if (io->flag & EXT4_IO_END_DIRECT)
-+		inode_dio_done(inode);
- 	/* Wake up anyone waiting on unwritten extent conversion */
- 	if (atomic_dec_and_test(&EXT4_I(inode)->i_aiodio_unwritten))
- 		wake_up_all(ext4_ioend_wq(io->inode));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0110-ext4-fix-race-between-sync-and-completed-io-work.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0110-ext4-fix-race-between-sync-and-completed-io-work.patch
deleted file mode 100644
index fa0f39e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0110-ext4-fix-race-between-sync-and-completed-io-work.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 4eb9698d0d2e5fb6c0cd910ed3e86154b4d1ea92 Mon Sep 17 00:00:00 2001
-From: Jeff Moyer <jmoyer at redhat.com>
-Date: Mon, 5 Mar 2012 10:29:52 -0500
-Subject: [PATCH 110/147] ext4: fix race between sync and completed io work
-
-commit 491caa43639abcffaa645fbab372a7ef4ce2975c upstream.
-
-The following command line will leave the aio-stress process unkillable
-on an ext4 file system (in my case, mounted on /mnt/test):
-
-aio-stress -t 20 -s 10 -O -S -o 2 -I 1000 /mnt/test/aiostress.3561.4 /mnt/test/aiostress.3561.4.20 /mnt/test/aiostress.3561.4.19 /mnt/test/aiostress.3561.4.18 /mnt/test/aiostress.3561.4.17 /mnt/test/aiostress.3561.4.16 /mnt/test/aiostress.3561.4.15 /mnt/test/aiostress.3561.4.14 /mnt/test/aiostress.3561.4.13 /mnt/test/aiostress.3561.4.12 /mnt/test/aiostress.3561.4.11 /mnt/test/aiostress.3561.4.10 /mnt/test/aiostress.3561.4.9 /mnt/test/aiostress.3561.4.8 /mnt/test/aiostress.3561.4.7 /mnt/test/aiostress.3561.4.6 /mnt/test/aiostress.3561.4.5 /mnt/test/aiostress.3561.4.4 /mnt/test/aiostress.3561.4.3 /mnt/test/aiostress.3561.4.2
-
-This is using the aio-stress program from the xfstests test suite.
-That particular command line tells aio-stress to do random writes to
-20 files from 20 threads (one thread per file).  The files are NOT
-preallocated, so you will get writes to random offsets within the
-file, thus creating holes and extending i_size.  It also opens the
-file with O_DIRECT and O_SYNC.
-
-On to the problem.  When an I/O requires unwritten extent conversion,
-it is queued onto the completed_io_list for the ext4 inode.  Two code
-paths will pull work items from this list.  The first is the
-ext4_end_io_work routine, and the second is ext4_flush_completed_IO,
-which is called via the fsync path (and O_SYNC handling, as well).
-There are two issues I've found in these code paths.  First, if the
-fsync path beats the work routine to a particular I/O, the work
-routine will free the io_end structure!  It does not take into account
-the fact that the io_end may still be in use by the fsync path.  I've
-fixed this issue by adding yet another IO_END flag, indicating that
-the io_end is being processed by the fsync path.
-
-The second problem is that the work routine will make an assignment to
-io->flag outside of the lock.  I have witnessed this result in a hang
-at umount.  Moving the flag setting inside the lock resolved that
-problem.
-
-The problem was introduced by commit b82e384c7b ("ext4: optimize
-locking for end_io extent conversion"), which first appeared in 3.2.
-As such, the fix should be backported to that release (probably along
-with the unwritten extent conversion race fix).
-
-Signed-off-by: Jeff Moyer <jmoyer at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ext4/ext4.h    |    1 +
- fs/ext4/fsync.c   |    2 ++
- fs/ext4/page-io.c |    9 +++++++--
- 3 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 655d942..dbae4d9 100644
---- a/fs/ext4/ext4.h
-+++ b/fs/ext4/ext4.h
-@@ -185,6 +185,7 @@ struct mpage_da_data {
- #define EXT4_IO_END_ERROR	0x0002
- #define EXT4_IO_END_QUEUED	0x0004
- #define EXT4_IO_END_DIRECT	0x0008
-+#define EXT4_IO_END_IN_FSYNC	0x0010
- 
- struct ext4_io_page {
- 	struct page	*p_page;
-diff --git a/fs/ext4/fsync.c b/fs/ext4/fsync.c
-index 00a2cb7..bb6c7d8 100644
---- a/fs/ext4/fsync.c
-+++ b/fs/ext4/fsync.c
-@@ -89,6 +89,7 @@ int ext4_flush_completed_IO(struct inode *inode)
- 		io = list_entry(ei->i_completed_io_list.next,
- 				ext4_io_end_t, list);
- 		list_del_init(&io->list);
-+		io->flag |= EXT4_IO_END_IN_FSYNC;
- 		/*
- 		 * Calling ext4_end_io_nolock() to convert completed
- 		 * IO to written.
-@@ -108,6 +109,7 @@ int ext4_flush_completed_IO(struct inode *inode)
- 		if (ret < 0)
- 			ret2 = ret;
- 		spin_lock_irqsave(&ei->i_completed_io_lock, flags);
-+		io->flag &= ~EXT4_IO_END_IN_FSYNC;
- 	}
- 	spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
- 	return (ret2 < 0) ? ret2 : 0;
-diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
-index 924298a..24feb1c 100644
---- a/fs/ext4/page-io.c
-+++ b/fs/ext4/page-io.c
-@@ -130,12 +130,18 @@ static void ext4_end_io_work(struct work_struct *work)
- 	unsigned long		flags;
- 
- 	spin_lock_irqsave(&ei->i_completed_io_lock, flags);
-+	if (io->flag & EXT4_IO_END_IN_FSYNC)
-+		goto requeue;
- 	if (list_empty(&io->list)) {
- 		spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
- 		goto free;
- 	}
- 
- 	if (!mutex_trylock(&inode->i_mutex)) {
-+		bool was_queued;
-+requeue:
-+		was_queued = !!(io->flag & EXT4_IO_END_QUEUED);
-+		io->flag |= EXT4_IO_END_QUEUED;
- 		spin_unlock_irqrestore(&ei->i_completed_io_lock, flags);
- 		/*
- 		 * Requeue the work instead of waiting so that the work
-@@ -148,9 +154,8 @@ static void ext4_end_io_work(struct work_struct *work)
- 		 * yield the cpu if it sees an end_io request that has already
- 		 * been requeued.
- 		 */
--		if (io->flag & EXT4_IO_END_QUEUED)
-+		if (was_queued)
- 			yield();
--		io->flag |= EXT4_IO_END_QUEUED;
- 		return;
- 	}
- 	list_del_init(&io->list);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0111-ext4-check-for-zero-length-extent.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0111-ext4-check-for-zero-length-extent.patch
deleted file mode 100644
index 4a83f03..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0111-ext4-check-for-zero-length-extent.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 3a71b922c02de36168d14ec55a97582f3fec2e07 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Sun, 11 Mar 2012 23:30:16 -0400
-Subject: [PATCH 111/147] ext4: check for zero length extent
-
-commit 31d4f3a2f3c73f279ff96a7135d7202ef6833f12 upstream.
-
-Explicitly test for an extent whose length is zero, and flag that as a
-corrupted extent.
-
-This avoids a kernel BUG_ON assertion failure.
-
-Tested: Without this patch, the file system image found in
-tests/f_ext_zero_len/image.gz in the latest e2fsprogs sources causes a
-kernel panic.  With this patch, an ext4 file system error is noted
-instead, and the file system is marked as being corrupted.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=42859
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ext4/extents.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
-index 607b155..7507036 100644
---- a/fs/ext4/extents.c
-+++ b/fs/ext4/extents.c
-@@ -301,6 +301,8 @@ static int ext4_valid_extent(struct inode *inode, struct ext4_extent *ext)
- 	ext4_fsblk_t block = ext4_ext_pblock(ext);
- 	int len = ext4_ext_get_actual_len(ext);
- 
-+	if (len == 0)
-+		return 0;
- 	return ext4_data_block_valid(EXT4_SB(inode->i_sb), block, len);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0112-vfs-fix-d_ancestor-case-in-d_materialize_unique.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0112-vfs-fix-d_ancestor-case-in-d_materialize_unique.patch
deleted file mode 100644
index 333e3bd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0112-vfs-fix-d_ancestor-case-in-d_materialize_unique.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 1287e09097b8199407c64d26e9a3ce1a1b25da74 Mon Sep 17 00:00:00 2001
-From: Michel Lespinasse <walken at google.com>
-Date: Mon, 26 Mar 2012 17:32:44 -0700
-Subject: [PATCH 112/147] vfs: fix d_ancestor() case in d_materialize_unique
-
-commit b18dafc86bb879d2f38a1743985d7ceb283c2f4d upstream.
-
-In d_materialise_unique() there are 3 subcases to the 'aliased dentry'
-case; in two subcases the inode i_lock is properly released but this
-does not occur in the -ELOOP subcase.
-
-This seems to have been introduced by commit 1836750115f2 ("fix loop
-checks in d_materialise_unique()").
-
-Signed-off-by: Michel Lespinasse <walken at google.com>
-[ Added a comment, and moved the unlock to where we generate the -ELOOP,
-  which seems to be more natural.
-
-  You probably can't actually trigger this without a buggy network file
-  server - d_materialize_unique() is for finding aliases on non-local
-  filesystems, and the d_ancestor() case is for a hardlinked directory
-  loop.
-
-  But we should be robust in the case of such buggy servers anyway. ]
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/dcache.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/fs/dcache.c b/fs/dcache.c
-index f7908ae..eb723d3 100644
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -2357,6 +2357,7 @@ struct dentry *d_materialise_unique(struct dentry *dentry, struct inode *inode)
- 			if (d_ancestor(alias, dentry)) {
- 				/* Check for loops */
- 				actual = ERR_PTR(-ELOOP);
-+				spin_unlock(&inode->i_lock);
- 			} else if (IS_ROOT(alias)) {
- 				/* Is this an anonymous mountpoint that we
- 				 * could splice into our tree? */
-@@ -2366,7 +2367,7 @@ struct dentry *d_materialise_unique(struct dentry *dentry, struct inode *inode)
- 				goto found;
- 			} else {
- 				/* Nope, but we must(!) avoid directory
--				 * aliasing */
-+				 * aliasing. This drops inode->i_lock */
- 				actual = __d_unalias(inode, dentry, alias);
- 			}
- 			write_sequnlock(&rename_lock);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0113-ARM-tegra-select-required-CPU-and-L2-errata-options.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0113-ARM-tegra-select-required-CPU-and-L2-errata-options.patch
deleted file mode 100644
index 88fa555..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0113-ARM-tegra-select-required-CPU-and-L2-errata-options.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From b125bf4a63e80e83526c1e1f775446078c91374f Mon Sep 17 00:00:00 2001
-From: Stephen Warren <swarren at nvidia.com>
-Date: Tue, 14 Feb 2012 13:39:39 -0700
-Subject: [PATCH 113/147] ARM: tegra: select required CPU and L2 errata
- options
-
-commit f35b431dde39fb40944d1024f08d88fbf04a3193 upstream.
-
-The ARM IP revisions in Tegra are:
-Tegra20: CPU r1p1, PL310 r2p0
-Tegra30: CPU A01=r2p7/>=A02=r2p9, NEON r2p3-50, PL310 r3p1-50
-
-Based on work by Olof Johansson, although the actual list of errata is
-somewhat different here, since I added a bunch more and removed one PL310
-erratum that doesn't seem applicable.
-
-Signed-off-by: Stephen Warren <swarren at nvidia.com>
-Signed-off-by: Olof Johansson <olof at lixom.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-tegra/Kconfig |   12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
-index 91aff7c..dbc59fa 100644
---- a/arch/arm/mach-tegra/Kconfig
-+++ b/arch/arm/mach-tegra/Kconfig
-@@ -13,6 +13,13 @@ config ARCH_TEGRA_2x_SOC
- 	select USB_ARCH_HAS_EHCI if USB_SUPPORT
- 	select USB_ULPI if USB_SUPPORT
- 	select USB_ULPI_VIEWPORT if USB_SUPPORT
-+	select ARM_ERRATA_720789
-+	select ARM_ERRATA_742230
-+	select ARM_ERRATA_751472
-+	select ARM_ERRATA_754327
-+	select ARM_ERRATA_764369
-+	select PL310_ERRATA_727915 if CACHE_L2X0
-+	select PL310_ERRATA_769419 if CACHE_L2X0
- 	help
- 	  Support for NVIDIA Tegra AP20 and T20 processors, based on the
- 	  ARM CortexA9MP CPU and the ARM PL310 L2 cache controller
-@@ -54,6 +61,11 @@ config MACH_SEABOARD
- config MACH_TEGRA_DT
- 	bool "Generic Tegra board (FDT support)"
- 	select USE_OF
-+	select ARM_ERRATA_743622
-+	select ARM_ERRATA_751472
-+	select ARM_ERRATA_754322
-+	select ARM_ERRATA_764369
-+	select PL310_ERRATA_769419 if CACHE_L2X0
- 	help
- 	  Support for generic nVidia Tegra boards using Flattened Device Tree
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0114-udf-Fix-deadlock-in-udf_release_file.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0114-udf-Fix-deadlock-in-udf_release_file.patch
deleted file mode 100644
index ae80b76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0114-udf-Fix-deadlock-in-udf_release_file.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From e812277ff9241a705c2a789f889aab4d1c26c31c Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Mon, 20 Feb 2012 17:49:56 +0100
-Subject: [PATCH 114/147] udf: Fix deadlock in udf_release_file()
-
-commit a0391a3ae91d301c0e59368531a4de5f0b122bcf upstream.
-
-udf_release_file() can be called from munmap() path with mmap_sem held.  Thus
-we cannot take i_mutex there because that ranks above mmap_sem. Luckily,
-i_mutex is not needed in udf_release_file() anymore since protection by
-i_data_sem is enough to protect from races with write and truncate.
-
-Reported-by: Al Viro <viro at ZenIV.linux.org.uk>
-Reviewed-by: Namjae Jeon <linkinjeon at gmail.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/udf/file.c |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/fs/udf/file.c b/fs/udf/file.c
-index dca0c38..d567b84 100644
---- a/fs/udf/file.c
-+++ b/fs/udf/file.c
-@@ -201,12 +201,10 @@ out:
- static int udf_release_file(struct inode *inode, struct file *filp)
- {
- 	if (filp->f_mode & FMODE_WRITE) {
--		mutex_lock(&inode->i_mutex);
- 		down_write(&UDF_I(inode)->i_data_sem);
- 		udf_discard_prealloc(inode);
- 		udf_truncate_tail_extent(inode);
- 		up_write(&UDF_I(inode)->i_data_sem);
--		mutex_unlock(&inode->i_mutex);
- 	}
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0115-gpio-omap-fix-_set_gpio_irqenable-implementation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0115-gpio-omap-fix-_set_gpio_irqenable-implementation.patch
deleted file mode 100644
index 03e2035..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0115-gpio-omap-fix-_set_gpio_irqenable-implementation.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 5f5e1bcdbe3347e680007e30b5848a8a3826f68b Mon Sep 17 00:00:00 2001
-From: Tarun Kanti DebBarma <tarun.kanti at ti.com>
-Date: Fri, 25 Nov 2011 15:27:37 +0530
-Subject: [PATCH 115/147] gpio/omap: fix _set_gpio_irqenable implementation
-
-commit 8276536cec38bc6bde30d0aa67716f22b9b9705a upstream.
-
-This function should be capable of both enabling and disabling interrupts
-based upon the *enable* parameter. Right now the function only enables
-the interrupt and *enable* is not used at all. So add the interrupt
-disable capability also using the parameter.
-
-Signed-off-by: Tarun Kanti DebBarma <tarun.kanti at ti.com>
-Reviewed-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
-Acked-by: Felipe Balbi <balbi at ti.com>
-Reviewed-by: Kevin Hilman <khilman at ti.com>
-Signed-off-by: Kevin Hilman <khilman at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpio/gpio-omap.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpio/gpio-omap.c b/drivers/gpio/gpio-omap.c
-index 4b172446..7fe6897 100644
---- a/drivers/gpio/gpio-omap.c
-+++ b/drivers/gpio/gpio-omap.c
-@@ -511,7 +511,10 @@ static void _disable_gpio_irqbank(struct gpio_bank *bank, int gpio_mask)
- 
- static inline void _set_gpio_irqenable(struct gpio_bank *bank, int gpio, int enable)
- {
--	_enable_gpio_irqbank(bank, GPIO_BIT(bank, gpio));
-+	if (enable)
-+		_enable_gpio_irqbank(bank, GPIO_BIT(bank, gpio));
-+	else
-+		_disable_gpio_irqbank(bank, GPIO_BIT(bank, gpio));
- }
- 
- /*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0116-gpio-davinci-fix-oops-on-unbanked-gpio-irq-request.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0116-gpio-davinci-fix-oops-on-unbanked-gpio-irq-request.patch
deleted file mode 100644
index a6cd5ec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0116-gpio-davinci-fix-oops-on-unbanked-gpio-irq-request.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From e91fedbcc83a758adab48636c9ba73338326a3b7 Mon Sep 17 00:00:00 2001
-From: Sekhar Nori <nsekhar at ti.com>
-Date: Sun, 11 Mar 2012 18:16:11 +0530
-Subject: [PATCH 116/147] gpio/davinci: fix oops on unbanked gpio irq request
-
-commit ab2dde9924dd1ddb791fa8b14aa52e1df681e20c upstream.
-
-Unbanked GPIO irq setup code was overwriting chip_data leading
-to the following oops on request_irq()
-
-Unable to handle kernel paging request at virtual address febfffff
-pgd = c22dc000
-[febfffff] *pgd=00000000
-Internal error: Oops: 801 [#1] PREEMPT
-Modules linked in: mcu(+) edmak irqk cmemk
-CPU: 0    Not tainted  (3.0.0-rc7+ #93)
-PC is at irq_gc_mask_set_bit+0x68/0x7c
-LR is at vprintk+0x22c/0x484
-pc : [<c0080c0c>]    lr : [<c00457e0>]    psr: 60000093
-sp : c33e3ba0  ip : c33e3af0  fp : c33e3bc4
-r10: c04555bc  r9 : c33d4340  r8 : 60000013
-r7 : 0000002d  r6 : c04555bc  r5 : fec67010  r4 : 00000000
-r3 : c04734c8  r2 : fec00000  r1 : ffffffff  r0 : 00000026
-Flags: nZCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
-Control: 0005317f  Table: 822dc000  DAC: 00000015
-Process modprobe (pid: 526, stack limit = 0xc33e2270)
-Stack: (0xc33e3ba0 to 0xc33e4000)
-3ba0: 00000000 c007d3d4 c33e3bcc c04555bc c04555bc c33d4340 c33e3bdc c33e3bc8
-3bc0: c007f5f8 c0080bb4 00000000 c04555bc c33e3bf4 c33e3be0 c007f654 c007f5c0
-3be0: 00000000 c04555bc c33e3c24 c33e3bf8 c007e6e8 c007f618 c01f2284 c0350af8
-3c00: c0405214 bf016c98 00000001 00000000 c33dc008 0000002d c33e3c54 c33e3c28
-3c20: c007e888 c007e408 00000001 c23ef880 c33dc000 00000000 c33dc080 c25caa00
-3c40: c0487498 bf017078 c33e3c94 c33e3c58 bf016b44 c007e7d4 bf017078 c33dc008
-3c60: c25caa08 c33dc008 c33e3c84 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
-3c80: c0496d60 bf017484 c33e3ca4 c33e3c98 c022a698 bf01692c c33e3cd4 c33e3ca8
-3ca0: c01f5d88 c022a688 00000000 bf017484 c25caa00 c25caa00 c01f5f48 c25caa08
-3cc0: c0496d60 00000000 c33e3cec c33e3cd8 c01f5f8c c01f5d10 00000000 c33e3cf0
-3ce0: c33e3d14 c33e3cf0 c01f5210 c01f5f58 c303cb48 c25ecf94 c25caa00 c25caa00
-3d00: c25caa34 c33e3dd8 c33e3d34 c33e3d18 c01f6044 c01f51b8 c0496d3c c25caa00
-3d20: c044e918 c33e3dd8 c33e3d44 c33e3d38 c01f4ff4 c01f5fcc c33e3d94 c33e3d48
-3d40: c01f3d10 c01f4fd8 00000000 c044e918 00000000 00000000 c01f52c0 c034d570
-3d60: c33e3d84 c33e3d70 c022bf84 c25caa00 00000000 c044e918 c33e3dd8 c25c2e00
-3d80: c0496d60 bf01763c c33e3db4 c33e3d98 c022b1a0 c01f384c c25caa00 c33e3dd8
-3da0: 00000000 c33e3dd8 c33e3dd4 c33e3db8 c022b27c c022b0e8 00000000 bf01763c
-3dc0: c0451c80 c33e3dd8 c33e3e34 c33e3dd8 bf016f60 c022b210 5f75636d 746e6f63
-3de0: 006c6f72 00000000 00000000 00000000 00000000 00000000 00000000 bf0174bc
-3e00: 00000000 00989680 00000000 00000020 c0451c80 c0451c80 bf0174dc c01f5eb0
-3e20: c33f0f00 bf0174dc c33e3e44 c33e3e38 c01f72f4 bf016e2c c33e3e74 c33e3e48
-3e40: c01f5d88 c01f72e4 00000000 c0451c80 c0451cb4 bf0174dc c01f5eb0 c33f0f00
-3e60: c0473100 00000000 c33e3e94 c33e3e78 c01f5f44 c01f5d10 00000000 c33e3e98
-3e80: bf0174dc c01f5eb0 c33e3ebc c33e3e98 c01f5534 c01f5ec0 c303c038 c3061c30
-3ea0: 00003cd8 00098258 bf0174dc c0462ac8 c33e3ecc c33e3ec0 c01f5bec c01f54dc
-3ec0: c33e3efc c33e3ed0 c01f4d30 c01f5bdc bf0173a0 c33e2000 00003cd8 00098258
-3ee0: bf0174dc c33e2000 c00301a4 bf019000 c33e3f1c c33e3f00 c01f6588 c01f4c8c
-3f00: 00003cd8 00098258 00000000 c33e2000 c33e3f2c c33e3f20 c01f777c c01f6524
-3f20: c33e3f3c c33e3f30 bf019014 c01f7740 c33e3f7c c33e3f40 c002f3ec bf019010
-3f40: 00000000 00003cd8 00098258 bf017518 00000000 00003cd8 00098258 bf017518
-3f60: 00000000 c00301a4 c33e2000 00000000 c33e3fa4 c33e3f80 c007b934 c002f3c4
-3f80: c00b307c c00b2f48 00003cd8 00000000 00000003 00000080 00000000 c33e3fa8
-3fa0: c0030020 c007b8b8 00003cd8 00000000 00098288 00003cd8 00098258 00098240
-3fc0: 00003cd8 00000000 00000003 00000080 00098008 00098028 00098288 00000001
-3fe0: be892998 be892988 00013d7c 40178740 60000010 00098288 09089041 00200845
-Backtrace:
-[<c0080ba4>] (irq_gc_mask_set_bit+0x0/0x7c) from [<c007f5f8>] (irq_enable+0x48/0x58)
- r6:c33d4340 r5:c04555bc r4:c04555bc
-[<c007f5b0>] (irq_enable+0x0/0x58) from [<c007f654>] (irq_startup+0x4c/0x54)
- r5:c04555bc r4:00000000
-[<c007f608>] (irq_startup+0x0/0x54) from [<c007e6e8>] (__setup_irq+0x2f0/0x3cc)
- r5:c04555bc r4:00000000
-[<c007e3f8>] (__setup_irq+0x0/0x3cc) from [<c007e888>] (request_threaded_irq+0xc4/0x110)
- r8:0000002d r7:c33dc008 r6:00000000 r5:00000001 r4:bf016c98
-[<c007e7c4>] (request_threaded_irq+0x0/0x110) from [<bf016b44>] (mcu_spi_probe+0x228/0x37c [mcu])
-[<bf01691c>] (mcu_spi_probe+0x0/0x37c [mcu]) from [<c022a698>] (spi_drv_probe+0x20/0x24)
-[<c022a678>] (spi_drv_probe+0x0/0x24) from [<c01f5d88>] (driver_probe_device+0x88/0x1b0)
-[<c01f5d00>] (driver_probe_device+0x0/0x1b0) from [<c01f5f8c>] (__device_attach+0x44/0x48)
-[<c01f5f48>] (__device_attach+0x0/0x48) from [<c01f5210>] (bus_for_each_drv+0x68/0x94)
- r5:c33e3cf0 r4:00000000
-[<c01f51a8>] (bus_for_each_drv+0x0/0x94) from [<c01f6044>] (device_attach+0x88/0xa0)
- r7:c33e3dd8 r6:c25caa34 r5:c25caa00 r4:c25caa00
-[<c01f5fbc>] (device_attach+0x0/0xa0) from [<c01f4ff4>] (bus_probe_device+0x2c/0x4c)
- r7:c33e3dd8 r6:c044e918 r5:c25caa00 r4:c0496d3c
-[<c01f4fc8>] (bus_probe_device+0x0/0x4c) from [<c01f3d10>] (device_add+0x4d4/0x648)
-[<c01f383c>] (device_add+0x0/0x648) from [<c022b1a0>] (spi_add_device+0xc8/0x128)
-[<c022b0d8>] (spi_add_device+0x0/0x128) from [<c022b27c>] (spi_new_device+0x7c/0xb4)
- r7:c33e3dd8 r6:00000000 r5:c33e3dd8 r4:c25caa00
-[<c022b200>] (spi_new_device+0x0/0xb4) from [<bf016f60>] (mcu_probe+0x144/0x224 [mcu])
- r7:c33e3dd8 r6:c0451c80 r5:bf01763c r4:00000000
-[<bf016e1c>] (mcu_probe+0x0/0x224 [mcu]) from [<c01f72f4>] (platform_drv_probe+0x20/0x24)
-[<c01f72d4>] (platform_drv_probe+0x0/0x24) from [<c01f5d88>] (driver_probe_device+0x88/0x1b0)
-[<c01f5d00>] (driver_probe_device+0x0/0x1b0) from [<c01f5f44>] (__driver_attach+0x94/0x98)
-[<c01f5eb0>] (__driver_attach+0x0/0x98) from [<c01f5534>] (bus_for_each_dev+0x68/0x94)
- r7:c01f5eb0 r6:bf0174dc r5:c33e3e98 r4:00000000
-[<c01f54cc>] (bus_for_each_dev+0x0/0x94) from [<c01f5bec>] (driver_attach+0x20/0x28)
- r7:c0462ac8 r6:bf0174dc r5:00098258 r4:00003cd8
-[<c01f5bcc>] (driver_attach+0x0/0x28) from [<c01f4d30>] (bus_add_driver+0xb4/0x258)
-[<c01f4c7c>] (bus_add_driver+0x0/0x258) from [<c01f6588>] (driver_register+0x74/0x158)
-[<c01f6514>] (driver_register+0x0/0x158) from [<c01f777c>] (platform_driver_register+0x4c/0x60)
- r7:c33e2000 r6:00000000 r5:00098258 r4:00003cd8
-[<c01f7730>] (platform_driver_register+0x0/0x60) from [<bf019014>] (mcu_init+0x14/0x20 [mcu])
-[<bf019000>] (mcu_init+0x0/0x20 [mcu]) from [<c002f3ec>] (do_one_initcall+0x38/0x170)
-[<c002f3b4>] (do_one_initcall+0x0/0x170) from [<c007b934>] (sys_init_module+0x8c/0x1a4)
-[<c007b8a8>] (sys_init_module+0x0/0x1a4) from [<c0030020>] (ret_fast_syscall+0x0/0x2c)
- r7:00000080 r6:00000003 r5:00000000 r4:00003cd8
-Code: e1844003 e585400c e596300c e5932064 (e7814002)
-
-Fix the issue.
-
-Reported-by: Jon Povey <Jon.Povey at racelogic.co.uk>
-Signed-off-by: Sekhar Nori <nsekhar at ti.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpio/gpio-davinci.c |   15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
-index df0d595..a6777e5 100644
---- a/drivers/gpio/gpio-davinci.c
-+++ b/drivers/gpio/gpio-davinci.c
-@@ -313,10 +313,16 @@ static int gpio_to_irq_unbanked(struct gpio_chip *chip, unsigned offset)
- 		return -ENODEV;
- }
- 
--static int gpio_irq_type_unbanked(struct irq_data *d, unsigned trigger)
-+static int gpio_irq_type_unbanked(struct irq_data *data, unsigned trigger)
- {
--	struct davinci_gpio_regs __iomem *g = irq2regs(d->irq);
--	u32 mask = (u32) irq_data_get_irq_handler_data(d);
-+	struct davinci_gpio_controller *d;
-+	struct davinci_gpio_regs __iomem *g;
-+	struct davinci_soc_info *soc_info = &davinci_soc_info;
-+	u32 mask;
-+
-+	d = (struct davinci_gpio_controller *)data->handler_data;
-+	g = (struct davinci_gpio_regs __iomem *)d->regs;
-+	mask = __gpio_mask(data->irq - soc_info->gpio_irq);
- 
- 	if (trigger & ~(IRQ_TYPE_EDGE_FALLING | IRQ_TYPE_EDGE_RISING))
- 		return -EINVAL;
-@@ -400,8 +406,7 @@ static int __init davinci_gpio_irq_setup(void)
- 		/* set the direct IRQs up to use that irqchip */
- 		for (gpio = 0; gpio < soc_info->gpio_unbanked; gpio++, irq++) {
- 			irq_set_chip(irq, &gpio_irqchip_unbanked);
--			irq_set_handler_data(irq, (void *)__gpio_mask(gpio));
--			irq_set_chip_data(irq, (__force void *)g);
-+			irq_set_handler_data(irq, &chips[gpio / 32]);
- 			irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH);
- 		}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0117-gpio-davinci-fix-enabling-unbanked-GPIO-IRQs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0117-gpio-davinci-fix-enabling-unbanked-GPIO-IRQs.patch
deleted file mode 100644
index 2a1370e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0117-gpio-davinci-fix-enabling-unbanked-GPIO-IRQs.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From a61e7db31913671e7951ed217dc0012f8578c977 Mon Sep 17 00:00:00 2001
-From: Sekhar Nori <nsekhar at ti.com>
-Date: Sun, 11 Mar 2012 18:16:12 +0530
-Subject: [PATCH 117/147] gpio/davinci: fix enabling unbanked GPIO IRQs
-
-commit 81b279d80a63628e580c71a31d30a8c3b3047ad4 upstream.
-
-Unbanked GPIO IRQ handling code made a copy of just
-the irq_chip structure for GPIO IRQ lines which caused
-problems after the generic IRQ chip conversion because
-there was no valid irq_chip_type structure with the
-right "regs" populated. irq_gc_mask_set_bit() was
-therefore accessing random addresses.
-
-Fix it by making a copy of irq_chip_type structure
-instead. This will ensure sane register offsets.
-
-Reported-by: Jon Povey <Jon.Povey at racelogic.co.uk>
-Tested-by: Jon Povey <Jon.Povey at racelogic.co.uk>
-Signed-off-by: Sekhar Nori <nsekhar at ti.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpio/gpio-davinci.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpio/gpio-davinci.c b/drivers/gpio/gpio-davinci.c
-index a6777e5..3d00016 100644
---- a/drivers/gpio/gpio-davinci.c
-+++ b/drivers/gpio/gpio-davinci.c
-@@ -386,7 +386,7 @@ static int __init davinci_gpio_irq_setup(void)
- 	 * IRQ mux conflicts; gpio_irq_type_unbanked() is only for GPIOs.
- 	 */
- 	if (soc_info->gpio_unbanked) {
--		static struct irq_chip gpio_irqchip_unbanked;
-+		static struct irq_chip_type gpio_unbanked;
- 
- 		/* pass "bank 0" GPIO IRQs to AINTC */
- 		chips[0].chip.to_irq = gpio_to_irq_unbanked;
-@@ -394,9 +394,10 @@ static int __init davinci_gpio_irq_setup(void)
- 
- 		/* AINTC handles mask/unmask; GPIO handles triggering */
- 		irq = bank_irq;
--		gpio_irqchip_unbanked = *irq_get_chip(irq);
--		gpio_irqchip_unbanked.name = "GPIO-AINTC";
--		gpio_irqchip_unbanked.irq_set_type = gpio_irq_type_unbanked;
-+		gpio_unbanked = *container_of(irq_get_chip(irq),
-+					      struct irq_chip_type, chip);
-+		gpio_unbanked.chip.name = "GPIO-AINTC";
-+		gpio_unbanked.chip.irq_set_type = gpio_irq_type_unbanked;
- 
- 		/* default trigger: both edges */
- 		g = gpio2regs(0);
-@@ -405,7 +406,7 @@ static int __init davinci_gpio_irq_setup(void)
- 
- 		/* set the direct IRQs up to use that irqchip */
- 		for (gpio = 0; gpio < soc_info->gpio_unbanked; gpio++, irq++) {
--			irq_set_chip(irq, &gpio_irqchip_unbanked);
-+			irq_set_chip(irq, &gpio_unbanked.chip);
- 			irq_set_handler_data(irq, &chips[gpio / 32]);
- 			irq_set_status_flags(irq, IRQ_TYPE_EDGE_BOTH);
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0118-dm-crypt-fix-mempool-deadlock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0118-dm-crypt-fix-mempool-deadlock.patch
deleted file mode 100644
index 3f33596..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0118-dm-crypt-fix-mempool-deadlock.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 27573d35b38cf9f8b2bb9f1f258bcac632ef4e0e Mon Sep 17 00:00:00 2001
-From: Mikulas Patocka <mpatocka at redhat.com>
-Date: Wed, 28 Mar 2012 18:41:22 +0100
-Subject: [PATCH 118/147] dm crypt: fix mempool deadlock
-
-commit aeb2deae2660a1773c83d3c6e9e6575daa3855d6 upstream.
-
-This patch fixes a possible deadlock in dm-crypt's mempool use.
-
-Currently, dm-crypt reserves a mempool of MIN_BIO_PAGES reserved pages.
-It allocates first MIN_BIO_PAGES with non-failing allocation (the allocation
-cannot fail and waits until the mempool is refilled). Further pages are
-allocated with different gfp flags that allow failing.
-
-Because allocations may be done in parallel, this code can deadlock. Example:
-There are two processes, each tries to allocate MIN_BIO_PAGES and the processes
-run simultaneously.
-It may end up in a situation where each process allocates (MIN_BIO_PAGES / 2)
-pages. The mempool is exhausted. Each process waits for more pages to be freed
-to the mempool, which never happens.
-
-To avoid this deadlock scenario, this patch changes the code so that only
-the first page is allocated with non-failing gfp mask. Allocation of further
-pages may fail.
-
-Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
-Signed-off-by: Milan Broz <mbroz at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-crypt.c |   10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
-index 8c2a000..c75d947 100644
---- a/drivers/md/dm-crypt.c
-+++ b/drivers/md/dm-crypt.c
-@@ -176,7 +176,6 @@ struct crypt_config {
- 
- #define MIN_IOS        16
- #define MIN_POOL_PAGES 32
--#define MIN_BIO_PAGES  8
- 
- static struct kmem_cache *_crypt_io_pool;
- 
-@@ -848,12 +847,11 @@ static struct bio *crypt_alloc_buffer(struct dm_crypt_io *io, unsigned size,
- 		}
- 
- 		/*
--		 * if additional pages cannot be allocated without waiting,
--		 * return a partially allocated bio, the caller will then try
--		 * to allocate additional bios while submitting this partial bio
-+		 * If additional pages cannot be allocated without waiting,
-+		 * return a partially-allocated bio.  The caller will then try
-+		 * to allocate more bios while submitting this partial bio.
- 		 */
--		if (i == (MIN_BIO_PAGES - 1))
--			gfp_mask = (gfp_mask | __GFP_NOWARN) & ~__GFP_WAIT;
-+		gfp_mask = (gfp_mask | __GFP_NOWARN) & ~__GFP_WAIT;
- 
- 		len = (size > PAGE_SIZE) ? PAGE_SIZE : size;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0119-dm-crypt-add-missing-error-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0119-dm-crypt-add-missing-error-handling.patch
deleted file mode 100644
index c2dfbf3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0119-dm-crypt-add-missing-error-handling.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 94b46b475866eb637578cd9302cb047fea4be03b Mon Sep 17 00:00:00 2001
-From: Mikulas Patocka <mpatocka at redhat.com>
-Date: Wed, 28 Mar 2012 18:41:22 +0100
-Subject: [PATCH 119/147] dm crypt: add missing error handling
-
-commit 72c6e7afc43e19f68a31dea204fc366624d6eee9 upstream.
-
-Always set io->error to -EIO when an error is detected in dm-crypt.
-
-There were cases where an error code would be set only if we finish
-processing the last sector. If there were other encryption operations in
-flight, the error would be ignored and bio would be returned with
-success as if no error happened.
-
-This bug is present in kcryptd_crypt_write_convert, kcryptd_crypt_read_convert
-and kcryptd_async_done.
-
-Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
-Reviewed-by: Milan Broz <mbroz at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-crypt.c |   28 ++++++++++++++++------------
- 1 file changed, 16 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/md/dm-crypt.c b/drivers/md/dm-crypt.c
-index c75d947..58d8c6d 100644
---- a/drivers/md/dm-crypt.c
-+++ b/drivers/md/dm-crypt.c
-@@ -1044,16 +1044,14 @@ static void kcryptd_queue_io(struct dm_crypt_io *io)
- 	queue_work(cc->io_queue, &io->work);
- }
- 
--static void kcryptd_crypt_write_io_submit(struct dm_crypt_io *io,
--					  int error, int async)
-+static void kcryptd_crypt_write_io_submit(struct dm_crypt_io *io, int async)
- {
- 	struct bio *clone = io->ctx.bio_out;
- 	struct crypt_config *cc = io->target->private;
- 
--	if (unlikely(error < 0)) {
-+	if (unlikely(io->error < 0)) {
- 		crypt_free_buffer_pages(cc, clone);
- 		bio_put(clone);
--		io->error = -EIO;
- 		crypt_dec_pending(io);
- 		return;
- 	}
-@@ -1104,12 +1102,16 @@ static void kcryptd_crypt_write_convert(struct dm_crypt_io *io)
- 		sector += bio_sectors(clone);
- 
- 		crypt_inc_pending(io);
-+
- 		r = crypt_convert(cc, &io->ctx);
-+		if (r < 0)
-+			io->error = -EIO;
-+
- 		crypt_finished = atomic_dec_and_test(&io->ctx.pending);
- 
- 		/* Encryption was already finished, submit io now */
- 		if (crypt_finished) {
--			kcryptd_crypt_write_io_submit(io, r, 0);
-+			kcryptd_crypt_write_io_submit(io, 0);
- 
- 			/*
- 			 * If there was an error, do not try next fragments.
-@@ -1160,11 +1162,8 @@ static void kcryptd_crypt_write_convert(struct dm_crypt_io *io)
- 	crypt_dec_pending(io);
- }
- 
--static void kcryptd_crypt_read_done(struct dm_crypt_io *io, int error)
-+static void kcryptd_crypt_read_done(struct dm_crypt_io *io)
- {
--	if (unlikely(error < 0))
--		io->error = -EIO;
--
- 	crypt_dec_pending(io);
- }
- 
-@@ -1179,9 +1178,11 @@ static void kcryptd_crypt_read_convert(struct dm_crypt_io *io)
- 			   io->sector);
- 
- 	r = crypt_convert(cc, &io->ctx);
-+	if (r < 0)
-+		io->error = -EIO;
- 
- 	if (atomic_dec_and_test(&io->ctx.pending))
--		kcryptd_crypt_read_done(io, r);
-+		kcryptd_crypt_read_done(io);
- 
- 	crypt_dec_pending(io);
- }
-@@ -1202,15 +1203,18 @@ static void kcryptd_async_done(struct crypto_async_request *async_req,
- 	if (!error && cc->iv_gen_ops && cc->iv_gen_ops->post)
- 		error = cc->iv_gen_ops->post(cc, iv_of_dmreq(cc, dmreq), dmreq);
- 
-+	if (error < 0)
-+		io->error = -EIO;
-+
- 	mempool_free(req_of_dmreq(cc, dmreq), cc->req_pool);
- 
- 	if (!atomic_dec_and_test(&ctx->pending))
- 		return;
- 
- 	if (bio_data_dir(io->base_bio) == READ)
--		kcryptd_crypt_read_done(io, error);
-+		kcryptd_crypt_read_done(io);
- 	else
--		kcryptd_crypt_write_io_submit(io, error, 1);
-+		kcryptd_crypt_write_io_submit(io, 1);
- }
- 
- static void kcryptd_crypt(struct work_struct *work)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0120-dm-exception-store-fix-init-error-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0120-dm-exception-store-fix-init-error-path.patch
deleted file mode 100644
index 5bb414b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0120-dm-exception-store-fix-init-error-path.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 24d0229ad2f723a746bbc36919b87e15a239075f Mon Sep 17 00:00:00 2001
-From: Andrei Warkentin <andrey.warkentin at gmail.com>
-Date: Wed, 28 Mar 2012 18:41:22 +0100
-Subject: [PATCH 120/147] dm exception store: fix init error path
-
-commit aadbe266f2f89ccc68b52f4effc7b3a8b29521ef upstream.
-
-Call the correct exit function on failure in dm_exception_store_init.
-
-Signed-off-by: Andrei Warkentin <andrey.warkentin at gmail.com>
-Acked-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-exception-store.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/md/dm-exception-store.c b/drivers/md/dm-exception-store.c
-index 042e719..aa70f7d 100644
---- a/drivers/md/dm-exception-store.c
-+++ b/drivers/md/dm-exception-store.c
-@@ -283,7 +283,7 @@ int dm_exception_store_init(void)
- 	return 0;
- 
- persistent_fail:
--	dm_persistent_snapshot_exit();
-+	dm_transient_snapshot_exit();
- transient_fail:
- 	return r;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0121-dm-persistent-data-fix-btree-rebalancing-after-remov.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0121-dm-persistent-data-fix-btree-rebalancing-after-remov.patch
deleted file mode 100644
index f393174..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0121-dm-persistent-data-fix-btree-rebalancing-after-remov.patch
+++ /dev/null
@@ -1,272 +0,0 @@
-From 94c63ce73eda68e07380ef495c19c9f87f4655ba Mon Sep 17 00:00:00 2001
-From: Joe Thornber <ejt at redhat.com>
-Date: Wed, 28 Mar 2012 18:41:23 +0100
-Subject: [PATCH 121/147] dm persistent data: fix btree rebalancing after
- remove
-
-commit b0988900bae9ecf968a8a8d086a9eec671a9517a upstream.
-
-When we remove an entry from a node we sometimes rebalance with it's
-two neighbours.  This wasn't being done correctly; in some cases
-entries have to move all the way from the right neighbour to the left
-neighbour, or vice versa.  This patch pretty much re-writes the
-balancing code to fix it.
-
-This code is barely used currently; only when you delete a thin
-device, and then only if you have hundreds of them in the same pool.
-Once we have discard support, which removes mappings, this will be used
-much more heavily.
-
-Signed-off-by: Joe Thornber <ejt at redhat.com>
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/persistent-data/dm-btree-remove.c |  174 +++++++++++++++-----------
- 1 file changed, 99 insertions(+), 75 deletions(-)
-
-diff --git a/drivers/md/persistent-data/dm-btree-remove.c b/drivers/md/persistent-data/dm-btree-remove.c
-index 023fbc2..1a35caf 100644
---- a/drivers/md/persistent-data/dm-btree-remove.c
-+++ b/drivers/md/persistent-data/dm-btree-remove.c
-@@ -128,18 +128,9 @@ static void delete_at(struct node *n, unsigned index)
- 	n->header.nr_entries = cpu_to_le32(nr_entries - 1);
- }
- 
--static unsigned del_threshold(struct node *n)
--{
--	return le32_to_cpu(n->header.max_entries) / 3;
--}
--
- static unsigned merge_threshold(struct node *n)
- {
--	/*
--	 * The extra one is because we know we're potentially going to
--	 * delete an entry.
--	 */
--	return 2 * (le32_to_cpu(n->header.max_entries) / 3) + 1;
-+	return le32_to_cpu(n->header.max_entries) / 3;
- }
- 
- struct child {
-@@ -188,6 +179,15 @@ static int exit_child(struct dm_btree_info *info, struct child *c)
- 
- static void shift(struct node *left, struct node *right, int count)
- {
-+	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
-+	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
-+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
-+	uint32_t r_max_entries = le32_to_cpu(right->header.max_entries);
-+
-+	BUG_ON(max_entries != r_max_entries);
-+	BUG_ON(nr_left - count > max_entries);
-+	BUG_ON(nr_right + count > max_entries);
-+
- 	if (!count)
- 		return;
- 
-@@ -199,13 +199,8 @@ static void shift(struct node *left, struct node *right, int count)
- 		node_shift(right, count);
- 	}
- 
--	left->header.nr_entries =
--		cpu_to_le32(le32_to_cpu(left->header.nr_entries) - count);
--	BUG_ON(le32_to_cpu(left->header.nr_entries) > le32_to_cpu(left->header.max_entries));
--
--	right->header.nr_entries =
--		cpu_to_le32(le32_to_cpu(right->header.nr_entries) + count);
--	BUG_ON(le32_to_cpu(right->header.nr_entries) > le32_to_cpu(right->header.max_entries));
-+	left->header.nr_entries = cpu_to_le32(nr_left - count);
-+	right->header.nr_entries = cpu_to_le32(nr_right + count);
- }
- 
- static void __rebalance2(struct dm_btree_info *info, struct node *parent,
-@@ -215,8 +210,9 @@ static void __rebalance2(struct dm_btree_info *info, struct node *parent,
- 	struct node *right = r->n;
- 	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
- 	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
-+	unsigned threshold = 2 * merge_threshold(left) + 1;
- 
--	if (nr_left + nr_right <= merge_threshold(left)) {
-+	if (nr_left + nr_right < threshold) {
- 		/*
- 		 * Merge
- 		 */
-@@ -234,9 +230,6 @@ static void __rebalance2(struct dm_btree_info *info, struct node *parent,
- 		 * Rebalance.
- 		 */
- 		unsigned target_left = (nr_left + nr_right) / 2;
--		unsigned shift_ = nr_left - target_left;
--		BUG_ON(le32_to_cpu(left->header.max_entries) <= nr_left - shift_);
--		BUG_ON(le32_to_cpu(right->header.max_entries) <= nr_right + shift_);
- 		shift(left, right, nr_left - target_left);
- 		*key_ptr(parent, r->index) = right->keys[0];
- 	}
-@@ -272,6 +265,84 @@ static int rebalance2(struct shadow_spine *s, struct dm_btree_info *info,
- 	return exit_child(info, &right);
- }
- 
-+/*
-+ * We dump as many entries from center as possible into left, then the rest
-+ * in right, then rebalance2.  This wastes some cpu, but I want something
-+ * simple atm.
-+ */
-+static void delete_center_node(struct dm_btree_info *info, struct node *parent,
-+			       struct child *l, struct child *c, struct child *r,
-+			       struct node *left, struct node *center, struct node *right,
-+			       uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
-+{
-+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
-+	unsigned shift = min(max_entries - nr_left, nr_center);
-+
-+	BUG_ON(nr_left + shift > max_entries);
-+	node_copy(left, center, -shift);
-+	left->header.nr_entries = cpu_to_le32(nr_left + shift);
-+
-+	if (shift != nr_center) {
-+		shift = nr_center - shift;
-+		BUG_ON((nr_right + shift) > max_entries);
-+		node_shift(right, shift);
-+		node_copy(center, right, shift);
-+		right->header.nr_entries = cpu_to_le32(nr_right + shift);
-+	}
-+	*key_ptr(parent, r->index) = right->keys[0];
-+
-+	delete_at(parent, c->index);
-+	r->index--;
-+
-+	dm_tm_dec(info->tm, dm_block_location(c->block));
-+	__rebalance2(info, parent, l, r);
-+}
-+
-+/*
-+ * Redistributes entries among 3 sibling nodes.
-+ */
-+static void redistribute3(struct dm_btree_info *info, struct node *parent,
-+			  struct child *l, struct child *c, struct child *r,
-+			  struct node *left, struct node *center, struct node *right,
-+			  uint32_t nr_left, uint32_t nr_center, uint32_t nr_right)
-+{
-+	int s;
-+	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
-+	unsigned target = (nr_left + nr_center + nr_right) / 3;
-+	BUG_ON(target > max_entries);
-+
-+	if (nr_left < nr_right) {
-+		s = nr_left - target;
-+
-+		if (s < 0 && nr_center < -s) {
-+			/* not enough in central node */
-+			shift(left, center, nr_center);
-+			s = nr_center - target;
-+			shift(left, right, s);
-+			nr_right += s;
-+		} else
-+			shift(left, center, s);
-+
-+		shift(center, right, target - nr_right);
-+
-+	} else {
-+		s = target - nr_right;
-+		if (s > 0 && nr_center < s) {
-+			/* not enough in central node */
-+			shift(center, right, nr_center);
-+			s = target - nr_center;
-+			shift(left, right, s);
-+			nr_left -= s;
-+		} else
-+			shift(center, right, s);
-+
-+		shift(left, center, nr_left - target);
-+	}
-+
-+	*key_ptr(parent, c->index) = center->keys[0];
-+	*key_ptr(parent, r->index) = right->keys[0];
-+}
-+
- static void __rebalance3(struct dm_btree_info *info, struct node *parent,
- 			 struct child *l, struct child *c, struct child *r)
- {
-@@ -282,62 +353,18 @@ static void __rebalance3(struct dm_btree_info *info, struct node *parent,
- 	uint32_t nr_left = le32_to_cpu(left->header.nr_entries);
- 	uint32_t nr_center = le32_to_cpu(center->header.nr_entries);
- 	uint32_t nr_right = le32_to_cpu(right->header.nr_entries);
--	uint32_t max_entries = le32_to_cpu(left->header.max_entries);
- 
--	unsigned target;
-+	unsigned threshold = merge_threshold(left) * 4 + 1;
- 
- 	BUG_ON(left->header.max_entries != center->header.max_entries);
- 	BUG_ON(center->header.max_entries != right->header.max_entries);
- 
--	if (((nr_left + nr_center + nr_right) / 2) < merge_threshold(center)) {
--		/*
--		 * Delete center node:
--		 *
--		 * We dump as many entries from center as possible into
--		 * left, then the rest in right, then rebalance2.  This
--		 * wastes some cpu, but I want something simple atm.
--		 */
--		unsigned shift = min(max_entries - nr_left, nr_center);
--
--		BUG_ON(nr_left + shift > max_entries);
--		node_copy(left, center, -shift);
--		left->header.nr_entries = cpu_to_le32(nr_left + shift);
--
--		if (shift != nr_center) {
--			shift = nr_center - shift;
--			BUG_ON((nr_right + shift) >= max_entries);
--			node_shift(right, shift);
--			node_copy(center, right, shift);
--			right->header.nr_entries = cpu_to_le32(nr_right + shift);
--		}
--		*key_ptr(parent, r->index) = right->keys[0];
--
--		delete_at(parent, c->index);
--		r->index--;
--
--		dm_tm_dec(info->tm, dm_block_location(c->block));
--		__rebalance2(info, parent, l, r);
--
--		return;
--	}
--
--	/*
--	 * Rebalance
--	 */
--	target = (nr_left + nr_center + nr_right) / 3;
--	BUG_ON(target > max_entries);
--
--	/*
--	 * Adjust the left node
--	 */
--	shift(left, center, nr_left - target);
--
--	/*
--	 * Adjust the right node
--	 */
--	shift(center, right, target - nr_right);
--	*key_ptr(parent, c->index) = center->keys[0];
--	*key_ptr(parent, r->index) = right->keys[0];
-+	if ((nr_left + nr_center + nr_right) < threshold)
-+		delete_center_node(info, parent, l, c, r, left, center, right,
-+				   nr_left, nr_center, nr_right);
-+	else
-+		redistribute3(info, parent, l, c, r, left, center, right,
-+			      nr_left, nr_center, nr_right);
- }
- 
- static int rebalance3(struct shadow_spine *s, struct dm_btree_info *info,
-@@ -441,9 +468,6 @@ static int rebalance_children(struct shadow_spine *s,
- 	if (r)
- 		return r;
- 
--	if (child_entries > del_threshold(n))
--		return 0;
--
- 	has_left_sibling = i > 0;
- 	has_right_sibling = i < (le32_to_cpu(n->header.nr_entries) - 1);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0122-dm-thin-fix-stacked-bi_next-usage.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0122-dm-thin-fix-stacked-bi_next-usage.patch
deleted file mode 100644
index 4d9f54d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0122-dm-thin-fix-stacked-bi_next-usage.patch
+++ /dev/null
@@ -1,233 +0,0 @@
-From e2326264ad383c7611301ccad5f1cb1f90d87f8f Mon Sep 17 00:00:00 2001
-From: Joe Thornber <ejt at redhat.com>
-Date: Wed, 28 Mar 2012 18:41:23 +0100
-Subject: [PATCH 122/147] dm thin: fix stacked bi_next usage
-
-commit 6f94a4c45a6f744383f9f695dde019998db3df55 upstream.
-
-Avoid using the bi_next field for the holder of a cell when deferring
-bios because a stacked device below might change it.  Store the
-holder in a new field in struct cell instead.
-
-When a cell is created, the bio that triggered creation (the holder) was
-added to the same bio list as subsequent bios.  In some cases we pass
-this holder bio directly to devices underneath.  If those devices use
-the bi_next field there will be trouble...
-
-This also simplifies some code that had to work out which bio was the
-holder.
-
-Signed-off-by: Joe Thornber <ejt at redhat.com>
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/dm-thin.c |  124 +++++++++++++++++++++++++++++---------------------
- 1 file changed, 73 insertions(+), 51 deletions(-)
-
-diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
-index c308757..da2f021 100644
---- a/drivers/md/dm-thin.c
-+++ b/drivers/md/dm-thin.c
-@@ -124,7 +124,7 @@ struct cell {
- 	struct hlist_node list;
- 	struct bio_prison *prison;
- 	struct cell_key key;
--	unsigned count;
-+	struct bio *holder;
- 	struct bio_list bios;
- };
- 
-@@ -220,55 +220,60 @@ static struct cell *__search_bucket(struct hlist_head *bucket,
-  * This may block if a new cell needs allocating.  You must ensure that
-  * cells will be unlocked even if the calling thread is blocked.
-  *
-- * Returns the number of entries in the cell prior to the new addition
-- * or < 0 on failure.
-+ * Returns 1 if the cell was already held, 0 if @inmate is the new holder.
-  */
- static int bio_detain(struct bio_prison *prison, struct cell_key *key,
- 		      struct bio *inmate, struct cell **ref)
- {
--	int r;
-+	int r = 1;
- 	unsigned long flags;
- 	uint32_t hash = hash_key(prison, key);
--	struct cell *uninitialized_var(cell), *cell2 = NULL;
-+	struct cell *cell, *cell2;
- 
- 	BUG_ON(hash > prison->nr_buckets);
- 
- 	spin_lock_irqsave(&prison->lock, flags);
-+
- 	cell = __search_bucket(prison->cells + hash, key);
-+	if (cell) {
-+		bio_list_add(&cell->bios, inmate);
-+		goto out;
-+	}
- 
--	if (!cell) {
--		/*
--		 * Allocate a new cell
--		 */
--		spin_unlock_irqrestore(&prison->lock, flags);
--		cell2 = mempool_alloc(prison->cell_pool, GFP_NOIO);
--		spin_lock_irqsave(&prison->lock, flags);
-+	/*
-+	 * Allocate a new cell
-+	 */
-+	spin_unlock_irqrestore(&prison->lock, flags);
-+	cell2 = mempool_alloc(prison->cell_pool, GFP_NOIO);
-+	spin_lock_irqsave(&prison->lock, flags);
- 
--		/*
--		 * We've been unlocked, so we have to double check that
--		 * nobody else has inserted this cell in the meantime.
--		 */
--		cell = __search_bucket(prison->cells + hash, key);
-+	/*
-+	 * We've been unlocked, so we have to double check that
-+	 * nobody else has inserted this cell in the meantime.
-+	 */
-+	cell = __search_bucket(prison->cells + hash, key);
-+	if (cell) {
-+		mempool_free(cell2, prison->cell_pool);
-+		bio_list_add(&cell->bios, inmate);
-+		goto out;
-+	}
-+
-+	/*
-+	 * Use new cell.
-+	 */
-+	cell = cell2;
- 
--		if (!cell) {
--			cell = cell2;
--			cell2 = NULL;
-+	cell->prison = prison;
-+	memcpy(&cell->key, key, sizeof(cell->key));
-+	cell->holder = inmate;
-+	bio_list_init(&cell->bios);
-+	hlist_add_head(&cell->list, prison->cells + hash);
- 
--			cell->prison = prison;
--			memcpy(&cell->key, key, sizeof(cell->key));
--			cell->count = 0;
--			bio_list_init(&cell->bios);
--			hlist_add_head(&cell->list, prison->cells + hash);
--		}
--	}
-+	r = 0;
- 
--	r = cell->count++;
--	bio_list_add(&cell->bios, inmate);
-+out:
- 	spin_unlock_irqrestore(&prison->lock, flags);
- 
--	if (cell2)
--		mempool_free(cell2, prison->cell_pool);
--
- 	*ref = cell;
- 
- 	return r;
-@@ -283,8 +288,8 @@ static void __cell_release(struct cell *cell, struct bio_list *inmates)
- 
- 	hlist_del(&cell->list);
- 
--	if (inmates)
--		bio_list_merge(inmates, &cell->bios);
-+	bio_list_add(inmates, cell->holder);
-+	bio_list_merge(inmates, &cell->bios);
- 
- 	mempool_free(cell, prison->cell_pool);
- }
-@@ -305,22 +310,44 @@ static void cell_release(struct cell *cell, struct bio_list *bios)
-  * bio may be in the cell.  This function releases the cell, and also does
-  * a sanity check.
-  */
-+static void __cell_release_singleton(struct cell *cell, struct bio *bio)
-+{
-+	hlist_del(&cell->list);
-+	BUG_ON(cell->holder != bio);
-+	BUG_ON(!bio_list_empty(&cell->bios));
-+}
-+
- static void cell_release_singleton(struct cell *cell, struct bio *bio)
- {
--	struct bio_prison *prison = cell->prison;
--	struct bio_list bios;
--	struct bio *b;
- 	unsigned long flags;
--
--	bio_list_init(&bios);
-+	struct bio_prison *prison = cell->prison;
- 
- 	spin_lock_irqsave(&prison->lock, flags);
--	__cell_release(cell, &bios);
-+	__cell_release_singleton(cell, bio);
- 	spin_unlock_irqrestore(&prison->lock, flags);
-+}
-+
-+/*
-+ * Sometimes we don't want the holder, just the additional bios.
-+ */
-+static void __cell_release_no_holder(struct cell *cell, struct bio_list *inmates)
-+{
-+	struct bio_prison *prison = cell->prison;
- 
--	b = bio_list_pop(&bios);
--	BUG_ON(b != bio);
--	BUG_ON(!bio_list_empty(&bios));
-+	hlist_del(&cell->list);
-+	bio_list_merge(inmates, &cell->bios);
-+
-+	mempool_free(cell, prison->cell_pool);
-+}
-+
-+static void cell_release_no_holder(struct cell *cell, struct bio_list *inmates)
-+{
-+	unsigned long flags;
-+	struct bio_prison *prison = cell->prison;
-+
-+	spin_lock_irqsave(&prison->lock, flags);
-+	__cell_release_no_holder(cell, inmates);
-+	spin_unlock_irqrestore(&prison->lock, flags);
- }
- 
- static void cell_error(struct cell *cell)
-@@ -800,21 +827,16 @@ static void cell_defer(struct thin_c *tc, struct cell *cell,
-  * Same as cell_defer above, except it omits one particular detainee,
-  * a write bio that covers the block and has already been processed.
-  */
--static void cell_defer_except(struct thin_c *tc, struct cell *cell,
--			      struct bio *exception)
-+static void cell_defer_except(struct thin_c *tc, struct cell *cell)
- {
- 	struct bio_list bios;
--	struct bio *bio;
- 	struct pool *pool = tc->pool;
- 	unsigned long flags;
- 
- 	bio_list_init(&bios);
--	cell_release(cell, &bios);
- 
- 	spin_lock_irqsave(&pool->lock, flags);
--	while ((bio = bio_list_pop(&bios)))
--		if (bio != exception)
--			bio_list_add(&pool->deferred_bios, bio);
-+	cell_release_no_holder(cell, &pool->deferred_bios);
- 	spin_unlock_irqrestore(&pool->lock, flags);
- 
- 	wake_worker(pool);
-@@ -854,7 +876,7 @@ static void process_prepared_mapping(struct new_mapping *m)
- 	 * the bios in the cell.
- 	 */
- 	if (bio) {
--		cell_defer_except(tc, m->cell, bio);
-+		cell_defer_except(tc, m->cell);
- 		bio_endio(bio, 0);
- 	} else
- 		cell_defer(tc, m->cell, m->data_block);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0123-backlight-fix-typo-in-tosa_lcd.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0123-backlight-fix-typo-in-tosa_lcd.c.patch
deleted file mode 100644
index 2f369f7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0123-backlight-fix-typo-in-tosa_lcd.c.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 97f236081bafdb80cac73ef005a6df79d4b2c803 Mon Sep 17 00:00:00 2001
-From: Masanari Iida <standby24x7 at gmail.com>
-Date: Wed, 28 Mar 2012 14:42:56 -0700
-Subject: [PATCH 123/147] backlight: fix typo in tosa_lcd.c
-
-commit 8da00edc1069f01c34510fa405dc15d96c090a3f upstream.
-
-Fix typo in drivers/video/backlight/tosa_lcd.c
-"tosa_lcd_reume" should be "tosa_lcd_resume".
-
-Signed-off-by: Masanari Iida <standby24x7 at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/backlight/tosa_lcd.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/video/backlight/tosa_lcd.c b/drivers/video/backlight/tosa_lcd.c
-index 772f601..6f54f74 100644
---- a/drivers/video/backlight/tosa_lcd.c
-+++ b/drivers/video/backlight/tosa_lcd.c
-@@ -271,7 +271,7 @@ static int tosa_lcd_resume(struct spi_device *spi)
- }
- #else
- #define tosa_lcd_suspend	NULL
--#define tosa_lcd_reume NULL
-+#define tosa_lcd_resume NULL
- #endif
- 
- static struct spi_driver tosa_lcd_driver = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0124-xfs-Fix-oops-on-IO-error-during-xlog_recover_process.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0124-xfs-Fix-oops-on-IO-error-during-xlog_recover_process.patch
deleted file mode 100644
index 85a6e21..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0124-xfs-Fix-oops-on-IO-error-during-xlog_recover_process.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 2b91e04fb1c28cce172844b2519c4bbedd9849c2 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Thu, 15 Mar 2012 09:34:02 +0000
-Subject: [PATCH 124/147] xfs: Fix oops on IO error during
- xlog_recover_process_iunlinks()
-
-commit d97d32edcd732110758799ae60af725e5110b3dc upstream.
-
-When an IO error happens during inode deletion run from
-xlog_recover_process_iunlinks() filesystem gets shutdown. Thus any subsequent
-attempt to read buffers fails. Code in xlog_recover_process_iunlinks() does not
-count with the fact that read of a buffer which was read a while ago can
-really fail which results in the oops on
-  agi = XFS_BUF_TO_AGI(agibp);
-
-Fix the problem by cleaning up the buffer handling in
-xlog_recover_process_iunlinks() as suggested by Dave Chinner. We release buffer
-lock but keep buffer reference to AG buffer. That is enough for buffer to stay
-pinned in memory and we don't have to call xfs_read_agi() all the time.
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Reviewed-by: Dave Chinner <dchinner at redhat.com>
-Signed-off-by: Ben Myers <bpm at sgi.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/xfs/xfs_log_recover.c |   33 +++++++++++----------------------
- 1 file changed, 11 insertions(+), 22 deletions(-)
-
-diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
-index 541a508..4f5d0ce 100644
---- a/fs/xfs/xfs_log_recover.c
-+++ b/fs/xfs/xfs_log_recover.c
-@@ -3161,37 +3161,26 @@ xlog_recover_process_iunlinks(
- 			 */
- 			continue;
- 		}
-+		/*
-+		 * Unlock the buffer so that it can be acquired in the normal
-+		 * course of the transaction to truncate and free each inode.
-+		 * Because we are not racing with anyone else here for the AGI
-+		 * buffer, we don't even need to hold it locked to read the
-+		 * initial unlinked bucket entries out of the buffer. We keep
-+		 * buffer reference though, so that it stays pinned in memory
-+		 * while we need the buffer.
-+		 */
- 		agi = XFS_BUF_TO_AGI(agibp);
-+		xfs_buf_unlock(agibp);
- 
- 		for (bucket = 0; bucket < XFS_AGI_UNLINKED_BUCKETS; bucket++) {
- 			agino = be32_to_cpu(agi->agi_unlinked[bucket]);
- 			while (agino != NULLAGINO) {
--				/*
--				 * Release the agi buffer so that it can
--				 * be acquired in the normal course of the
--				 * transaction to truncate and free the inode.
--				 */
--				xfs_buf_relse(agibp);
--
- 				agino = xlog_recover_process_one_iunlink(mp,
- 							agno, agino, bucket);
--
--				/*
--				 * Reacquire the agibuffer and continue around
--				 * the loop. This should never fail as we know
--				 * the buffer was good earlier on.
--				 */
--				error = xfs_read_agi(mp, NULL, agno, &agibp);
--				ASSERT(error == 0);
--				agi = XFS_BUF_TO_AGI(agibp);
- 			}
- 		}
--
--		/*
--		 * Release the buffer for the current agi so we can
--		 * go on to the next one.
--		 */
--		xfs_buf_relse(agibp);
-+		xfs_buf_rele(agibp);
- 	}
- 
- 	mp->m_dmevmask = mp_dmevmask;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0125-slub-Do-not-hold-slub_lock-when-calling-sysfs_slab_a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0125-slub-Do-not-hold-slub_lock-when-calling-sysfs_slab_a.patch
deleted file mode 100644
index 325ae73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0125-slub-Do-not-hold-slub_lock-when-calling-sysfs_slab_a.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 4e25692d8b794add23cb09fdeeaa62ecee2ef697 Mon Sep 17 00:00:00 2001
-From: Christoph Lameter <cl at linux.com>
-Date: Tue, 17 Jan 2012 09:27:31 -0600
-Subject: [PATCH 125/147] slub: Do not hold slub_lock when calling
- sysfs_slab_add()
-
-commit 66c4c35c6bc5a1a452b024cf0364635b28fd94e4 upstream.
-
-sysfs_slab_add() calls various sysfs functions that actually may
-end up in userspace doing all sorts of things.
-
-Release the slub_lock after adding the kmem_cache structure to the list.
-At that point the address of the kmem_cache is not known so we are
-guaranteed exlusive access to the following modifications to the
-kmem_cache structure.
-
-If the sysfs_slab_add fails then reacquire the slub_lock to
-remove the kmem_cache structure from the list.
-
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: Christoph Lameter <cl at linux.com>
-Signed-off-by: Pekka Enberg <penberg at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/slub.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/mm/slub.c b/mm/slub.c
-index 1a919f0..a99c785 100644
---- a/mm/slub.c
-+++ b/mm/slub.c
-@@ -3911,13 +3911,14 @@ struct kmem_cache *kmem_cache_create(const char *name, size_t size,
- 		if (kmem_cache_open(s, n,
- 				size, align, flags, ctor)) {
- 			list_add(&s->list, &slab_caches);
-+			up_write(&slub_lock);
- 			if (sysfs_slab_add(s)) {
-+				down_write(&slub_lock);
- 				list_del(&s->list);
- 				kfree(n);
- 				kfree(s);
- 				goto err;
- 			}
--			up_write(&slub_lock);
- 			return s;
- 		}
- 		kfree(n);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0126-NFSv4-Fix-two-infinite-loops-in-the-mount-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0126-NFSv4-Fix-two-infinite-loops-in-the-mount-code.patch
deleted file mode 100644
index dd7fa83..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0126-NFSv4-Fix-two-infinite-loops-in-the-mount-code.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a92e847768f32d7059094c15ce686019b91893ab Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Tue, 27 Mar 2012 18:13:02 -0400
-Subject: [PATCH 126/147] NFSv4: Fix two infinite loops in the mount code
-
-commit 05e9cfb408b24debb3a85fd98edbfd09dd148881 upstream.
-
-We can currently loop forever in nfs4_lookup_root() and in
-nfs41_proc_secinfo_no_name(), if the first iteration returns a
-NFS4ERR_DELAY or something else that causes exception.retry to get
-set.
-
-Reported-by: Weston Andros Adamson <dros at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4proc.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index c9e2d9e..6db0972 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -2242,11 +2242,12 @@ static int nfs4_lookup_root(struct nfs_server *server, struct nfs_fh *fhandle,
- 		switch (err) {
- 		case 0:
- 		case -NFS4ERR_WRONGSEC:
--			break;
-+			goto out;
- 		default:
- 			err = nfs4_handle_exception(server, err, &exception);
- 		}
- 	} while (exception.retry);
-+out:
- 	return err;
- }
- 
-@@ -6099,11 +6100,12 @@ nfs41_proc_secinfo_no_name(struct nfs_server *server, struct nfs_fh *fhandle,
- 		case 0:
- 		case -NFS4ERR_WRONGSEC:
- 		case -NFS4ERR_NOTSUPP:
--			break;
-+			goto out;
- 		default:
- 			err = nfs4_handle_exception(server, err, &exception);
- 		}
- 	} while (exception.retry);
-+out:
- 	return err;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0127-NFSv4.1-Fix-layoutcommit-error-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0127-NFSv4.1-Fix-layoutcommit-error-handling.patch
deleted file mode 100644
index 2f1e88a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0127-NFSv4.1-Fix-layoutcommit-error-handling.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From ccd03bf68f47d089dc1c789ea11a19792e056fdf Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Tue, 27 Mar 2012 18:22:19 -0400
-Subject: [PATCH 127/147] NFSv4.1: Fix layoutcommit error handling
-
-commit e59d27e05a6435f8c04d5ad843f37fa795f2eaaa upstream.
-
-Firstly, task->tk_status will always return negative error values,
-so the current tests for 'NFS4ERR_DELEG_REVOKED' etc. are all being
-ignored.
-Secondly, clean up the code so that we only need to test
-task->tk_status once!
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4proc.c |   25 +++++++++++++------------
- 1 file changed, 13 insertions(+), 12 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 6db0972..d945700 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -5983,21 +5983,22 @@ nfs4_layoutcommit_done(struct rpc_task *task, void *calldata)
- 		return;
- 
- 	switch (task->tk_status) { /* Just ignore these failures */
--	case NFS4ERR_DELEG_REVOKED: /* layout was recalled */
--	case NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
--	case NFS4ERR_BADLAYOUT:     /* no layout */
--	case NFS4ERR_GRACE:	    /* loca_recalim always false */
-+	case -NFS4ERR_DELEG_REVOKED: /* layout was recalled */
-+	case -NFS4ERR_BADIOMODE:     /* no IOMODE_RW layout for range */
-+	case -NFS4ERR_BADLAYOUT:     /* no layout */
-+	case -NFS4ERR_GRACE:	    /* loca_recalim always false */
- 		task->tk_status = 0;
--	}
--
--	if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
--		rpc_restart_call_prepare(task);
--		return;
--	}
--
--	if (task->tk_status == 0)
-+		break;
-+	case 0:
- 		nfs_post_op_update_inode_force_wcc(data->args.inode,
- 						   data->res.fattr);
-+		break;
-+	default:
-+		if (nfs4_async_handle_error(task, server, NULL) == -EAGAIN) {
-+			rpc_restart_call_prepare(task);
-+			return;
-+		}
-+	}
- }
- 
- static void nfs4_layoutcommit_release(void *calldata)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0128-module-Remove-module-size-limit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0128-module-Remove-module-size-limit.patch
deleted file mode 100644
index 09a8b51..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0128-module-Remove-module-size-limit.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From fd3597c3facb39143261c34964aabfc9c66c4fdf Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Mon, 30 Jan 2012 23:07:22 -0500
-Subject: [PATCH 128/147] module: Remove module size limit
-
-commit f946eeb9313ff1470758e171a60fe7438a2ded3f upstream.
-
-Module size was limited to 64MB, this was legacy limitation due to vmalloc()
-which was removed a while ago.
-
-Limiting module size to 64MB is both pointless and affects real world use
-cases.
-
-Cc: Tim Abbott <tim.abbott at oracle.com>
-Signed-off-by: Sasha Levin <sasha.levin at oracle.com>
-Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/module.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/kernel/module.c b/kernel/module.c
-index 178333c..6969ef0 100644
---- a/kernel/module.c
-+++ b/kernel/module.c
-@@ -2341,8 +2341,7 @@ static int copy_and_check(struct load_info *info,
- 		return -ENOEXEC;
- 
- 	/* Suck in entire file: we'll want most of it. */
--	/* vmalloc barfs on "unusual" numbers.  Check here */
--	if (len > 64 * 1024 * 1024 || (hdr = vmalloc(len)) == NULL)
-+	if ((hdr = vmalloc(len)) == NULL)
- 		return -ENOMEM;
- 
- 	if (copy_from_user(hdr, umod, len) != 0) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0129-Bluetooth-btusb-fix-bInterval-for-high-super-speed-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0129-Bluetooth-btusb-fix-bInterval-for-high-super-speed-i.patch
deleted file mode 100644
index 2aae62b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0129-Bluetooth-btusb-fix-bInterval-for-high-super-speed-i.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 7c62cb0eff8ac7154b41d4b010c18e1a92e1bf8e Mon Sep 17 00:00:00 2001
-From: Bing Zhao <bzhao at marvell.com>
-Date: Tue, 20 Dec 2011 18:19:00 -0800
-Subject: [PATCH 129/147] Bluetooth: btusb: fix bInterval for high/super speed
- isochronous endpoints
-
-commit fa0fb93f2ac308a76fa64eb57c18511dadf97089 upstream.
-
-For high-speed/super-speed isochronous endpoints, the bInterval
-value is used as exponent, 2^(bInterval-1). Luckily we have
-usb_fill_int_urb() function that handles it correctly. So we just
-call this function to fill in the RX URB.
-
-Cc: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Bing Zhao <bzhao at marvell.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Gustavo F. Padovan <padovan at profusion.mobi>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/btusb.c |    9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index 11a925c..c16c750 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -507,15 +507,10 @@ static int btusb_submit_isoc_urb(struct hci_dev *hdev, gfp_t mem_flags)
- 
- 	pipe = usb_rcvisocpipe(data->udev, data->isoc_rx_ep->bEndpointAddress);
- 
--	urb->dev      = data->udev;
--	urb->pipe     = pipe;
--	urb->context  = hdev;
--	urb->complete = btusb_isoc_complete;
--	urb->interval = data->isoc_rx_ep->bInterval;
-+	usb_fill_int_urb(urb, data->udev, pipe, buf, size, btusb_isoc_complete,
-+				hdev, data->isoc_rx_ep->bInterval);
- 
- 	urb->transfer_flags  = URB_FREE_BUFFER | URB_ISO_ASAP;
--	urb->transfer_buffer = buf;
--	urb->transfer_buffer_length = size;
- 
- 	__fill_isoc_descriptor(urb, size,
- 			le16_to_cpu(data->isoc_rx_ep->wMaxPacketSize));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0130-drm-i915-suspend-fbdev-device-around-suspend-hiberna.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0130-drm-i915-suspend-fbdev-device-around-suspend-hiberna.patch
deleted file mode 100644
index f224abe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0130-drm-i915-suspend-fbdev-device-around-suspend-hiberna.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 38c2bda521b456704bd7b7376e79d69b0e867198 Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied at redhat.com>
-Date: Wed, 28 Mar 2012 10:48:49 +0100
-Subject: [PATCH 130/147] drm/i915: suspend fbdev device around
- suspend/hibernate
-
-commit 3fa016a0b5c5237e9c387fc3249592b2cb5391c6 upstream.
-
-Looking at hibernate overwriting I though it looked like a cursor,
-so I tracked down this missing piece to stop the cursor blink
-timer. I've no idea if this is sufficient to fix the hibernate
-problems people are seeing, but please test it.
-
-Both radeon and nouveau have done this for a long time.
-
-I've run this personally all night hib/resume cycles with no fails.
-
-Reviewed-by: Keith Packard <keithp at keithp.com>
-Reported-by: Petr Tesarik <kernel at tesarici.cz>
-Reported-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Reported-by: Lots of misc segfaults after hibernate across the world.
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=37142
-Tested-by: Dave Airlie <airlied at redhat.com>
-Tested-by: Bojan Smojver <bojan at rexursive.com>
-Tested-by: Andreas Hartmann <andihartmann at 01019freenet.de>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_drv.c  |    7 +++++++
- drivers/gpu/drm/i915/intel_drv.h |    2 +-
- drivers/gpu/drm/i915/intel_fb.c  |   10 ++++++++++
- 3 files changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index e2d85a9..d04597d 100644
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -442,6 +442,10 @@ static int i915_drm_freeze(struct drm_device *dev)
- 	/* Modeset on resume, not lid events */
- 	dev_priv->modeset_on_lid = 0;
- 
-+	console_lock();
-+	intel_fbdev_set_suspend(dev, 1);
-+	console_unlock();
-+
- 	return 0;
- }
- 
-@@ -514,6 +518,9 @@ static int i915_drm_thaw(struct drm_device *dev)
- 
- 	dev_priv->modeset_on_lid = 0;
- 
-+	console_lock();
-+	intel_fbdev_set_suspend(dev, 0);
-+	console_unlock();
- 	return error;
- }
- 
-diff --git a/drivers/gpu/drm/i915/intel_drv.h b/drivers/gpu/drm/i915/intel_drv.h
-index a1b4343..83e820e 100644
---- a/drivers/gpu/drm/i915/intel_drv.h
-+++ b/drivers/gpu/drm/i915/intel_drv.h
-@@ -364,7 +364,7 @@ extern int intel_framebuffer_init(struct drm_device *dev,
- 				  struct drm_i915_gem_object *obj);
- extern int intel_fbdev_init(struct drm_device *dev);
- extern void intel_fbdev_fini(struct drm_device *dev);
--
-+extern void intel_fbdev_set_suspend(struct drm_device *dev, int state);
- extern void intel_prepare_page_flip(struct drm_device *dev, int plane);
- extern void intel_finish_page_flip(struct drm_device *dev, int pipe);
- extern void intel_finish_page_flip_plane(struct drm_device *dev, int plane);
-diff --git a/drivers/gpu/drm/i915/intel_fb.c b/drivers/gpu/drm/i915/intel_fb.c
-index ec49bae..d0ce34b 100644
---- a/drivers/gpu/drm/i915/intel_fb.c
-+++ b/drivers/gpu/drm/i915/intel_fb.c
-@@ -257,6 +257,16 @@ void intel_fbdev_fini(struct drm_device *dev)
- 	kfree(dev_priv->fbdev);
- 	dev_priv->fbdev = NULL;
- }
-+
-+void intel_fbdev_set_suspend(struct drm_device *dev, int state)
-+{
-+	drm_i915_private_t *dev_priv = dev->dev_private;
-+	if (!dev_priv->fbdev)
-+		return;
-+
-+	fb_set_suspend(dev_priv->fbdev->helper.fbdev, state);
-+}
-+
- MODULE_LICENSE("GPL and additional rights");
- 
- void intel_fb_output_poll_changed(struct drm_device *dev)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0131-Fix-pppol2tp-getsockname.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0131-Fix-pppol2tp-getsockname.patch
deleted file mode 100644
index 371e203..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0131-Fix-pppol2tp-getsockname.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From f5d559cda23c4abbccffff4d6992fba722321a1e Mon Sep 17 00:00:00 2001
-From: Benjamin LaHaise <bcrl at kvack.org>
-Date: Tue, 20 Mar 2012 03:57:54 +0000
-Subject: [PATCH 131/147] Fix pppol2tp getsockname()
-
-[ Upstream commit bbdb32cb5b73597386913d052165423b9d736145 ]
-
-While testing L2TP functionality, I came across a bug in getsockname().  The
-IP address returned within the pppol2tp_addr's addr memember was not being
-set to the IP  address in use.  This bug is caused by using inet_sk() on the
-wrong socket (the L2TP socket rather than the underlying UDP socket), and was
-likely introduced during the addition of L2TPv3 support.
-
-Signed-off-by: Benjamin LaHaise <bcrl at kvack.org>
-Signed-off-by: James Chapman <jchapman at katalix.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/l2tp/l2tp_ppp.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c
-index 8a90d75..b1bd16f 100644
---- a/net/l2tp/l2tp_ppp.c
-+++ b/net/l2tp/l2tp_ppp.c
-@@ -915,7 +915,7 @@ static int pppol2tp_getname(struct socket *sock, struct sockaddr *uaddr,
- 		goto end_put_sess;
- 	}
- 
--	inet = inet_sk(sk);
-+	inet = inet_sk(tunnel->sock);
- 	if (tunnel->version == 2) {
- 		struct sockaddr_pppol2tp sp;
- 		len = sizeof(sp);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0132-ipv6-fix-incorrent-ipv6-ipsec-packet-fragment.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0132-ipv6-fix-incorrent-ipv6-ipsec-packet-fragment.patch
deleted file mode 100644
index eaf6d78..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0132-ipv6-fix-incorrent-ipv6-ipsec-packet-fragment.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From c809355ceedbec6be4d31c189c452323b7dd0555 Mon Sep 17 00:00:00 2001
-From: Gao feng <gaofeng at cn.fujitsu.com>
-Date: Mon, 19 Mar 2012 22:36:10 +0000
-Subject: [PATCH 132/147] ipv6: fix incorrent ipv6 ipsec packet fragment
-
-[ Upstream commit 1f85851e17b64cabd089a8a8839dddebc627948c ]
-
-Since commit 299b0767(ipv6: Fix IPsec slowpath fragmentation problem)
-In func ip6_append_data,after call skb_put(skb, fraglen + dst_exthdrlen)
-the skb->len contains dst_exthdrlen,and we don't reduce dst_exthdrlen at last
-This will make fraggap>0 in next "while cycle",and cause the size of skb incorrent
-
-Fix this by reserve headroom for dst_exthdrlen.
-
-Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
-Acked-by: Steffen Klassert <steffen.klassert at secunet.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv6/ip6_output.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
-index ec56271..f7f07e2 100644
---- a/net/ipv6/ip6_output.c
-+++ b/net/ipv6/ip6_output.c
-@@ -1411,8 +1411,9 @@ alloc_new_skb:
- 			 */
- 			skb->ip_summed = csummode;
- 			skb->csum = 0;
--			/* reserve for fragmentation */
--			skb_reserve(skb, hh_len+sizeof(struct frag_hdr));
-+			/* reserve for fragmentation and ipsec header */
-+			skb_reserve(skb, hh_len + sizeof(struct frag_hdr) +
-+				    dst_exthdrlen);
- 
- 			if (sk->sk_type == SOCK_DGRAM)
- 				skb_shinfo(skb)->tx_flags = tx_flags;
-@@ -1420,9 +1421,9 @@ alloc_new_skb:
- 			/*
- 			 *	Find where to start putting bytes
- 			 */
--			data = skb_put(skb, fraglen + dst_exthdrlen);
--			skb_set_network_header(skb, exthdrlen + dst_exthdrlen);
--			data += fragheaderlen + dst_exthdrlen;
-+			data = skb_put(skb, fraglen);
-+			skb_set_network_header(skb, exthdrlen);
-+			data += fragheaderlen;
- 			skb->transport_header = (skb->network_header +
- 						 fragheaderlen);
- 			if (fraggap) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0133-net-bpf_jit-fix-BPF_S_LDX_B_MSH-compilation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0133-net-bpf_jit-fix-BPF_S_LDX_B_MSH-compilation.patch
deleted file mode 100644
index a5780d4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0133-net-bpf_jit-fix-BPF_S_LDX_B_MSH-compilation.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 3f5659b743cac5379f2b1619b713edeb60844b23 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Sun, 18 Mar 2012 02:40:48 +0000
-Subject: [PATCH 133/147] net: bpf_jit: fix BPF_S_LDX_B_MSH compilation
-
-[ Upstream commit dc72d99dabb870ca5bd6d9fff674be853bb4a88d ]
-
-Matt Evans spotted that x86 bpf_jit was incorrectly handling negative
-constant offsets in BPF_S_LDX_B_MSH instruction.
-
-We need to abort JIT compilation like we do in common_load so that
-filter uses the interpreter code and can call __load_pointer()
-
-Reference: http://lists.openwall.net/netdev/2011/07/19/11
-
-Thanks to Indan Zupancic to bring back this issue.
-
-Reported-by: Matt Evans <matt at ozlabs.org>
-Reported-by: Indan Zupancic <indan at nul.nu>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/net/bpf_jit_comp.c |   14 +++++---------
- 1 file changed, 5 insertions(+), 9 deletions(-)
-
-diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
-index 7c1b765..5671752 100644
---- a/arch/x86/net/bpf_jit_comp.c
-+++ b/arch/x86/net/bpf_jit_comp.c
-@@ -475,8 +475,10 @@ void bpf_jit_compile(struct sk_filter *fp)
- 			case BPF_S_LD_W_ABS:
- 				func = sk_load_word;
- common_load:			seen |= SEEN_DATAREF;
--				if ((int)K < 0)
-+				if ((int)K < 0) {
-+					/* Abort the JIT because __load_pointer() is needed. */
- 					goto out;
-+				}
- 				t_offset = func - (image + addrs[i]);
- 				EMIT1_off32(0xbe, K); /* mov imm32,%esi */
- 				EMIT1_off32(0xe8, t_offset); /* call */
-@@ -489,14 +491,8 @@ common_load:			seen |= SEEN_DATAREF;
- 				goto common_load;
- 			case BPF_S_LDX_B_MSH:
- 				if ((int)K < 0) {
--					if (pc_ret0 > 0) {
--						/* addrs[pc_ret0 - 1] is the start address */
--						EMIT_JMP(addrs[pc_ret0 - 1] - addrs[i]);
--						break;
--					}
--					CLEAR_A();
--					EMIT_JMP(cleanup_addr - addrs[i]);
--					break;
-+					/* Abort the JIT because __load_pointer() is needed. */
-+					goto out;
- 				}
- 				seen |= SEEN_DATAREF | SEEN_XREG;
- 				t_offset = sk_load_byte_msh - (image + addrs[i]);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0134-net-fix-a-potential-rcu_read_lock-imbalance-in-rt6_f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0134-net-fix-a-potential-rcu_read_lock-imbalance-in-rt6_f.patch
deleted file mode 100644
index c0f9663..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0134-net-fix-a-potential-rcu_read_lock-imbalance-in-rt6_f.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From fa36f84193bedebf0fdfb861e5e9f1dd72044f64 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 27 Mar 2012 09:53:52 +0000
-Subject: [PATCH 134/147] net: fix a potential rcu_read_lock() imbalance in
- rt6_fill_node()
-
-[ Upstream commit 94f826b8076e2cb92242061e92f21b5baa3eccc2 ]
-
-Commit f2c31e32b378 (net: fix NULL dereferences in check_peer_redir() )
-added a regression in rt6_fill_node(), leading to rcu_read_lock()
-imbalance.
-
-Thats because NLA_PUT() can make a jump to nla_put_failure label.
-
-Fix this by using nla_put()
-
-Many thanks to Ben Greear for his help
-
-Reported-by: Ben Greear <greearb at candelatech.com>
-Reported-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Tested-by: Ben Greear <greearb at candelatech.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv6/route.c |    8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index b582a0a..059b9d9 100644
---- a/net/ipv6/route.c
-+++ b/net/ipv6/route.c
-@@ -2446,8 +2446,12 @@ static int rt6_fill_node(struct net *net,
- 
- 	rcu_read_lock();
- 	n = dst_get_neighbour(&rt->dst);
--	if (n)
--		NLA_PUT(skb, RTA_GATEWAY, 16, &n->primary_key);
-+	if (n) {
-+		if (nla_put(skb, RTA_GATEWAY, 16, &n->primary_key) < 0) {
-+			rcu_read_unlock();
-+			goto nla_put_failure;
-+		}
-+	}
- 	rcu_read_unlock();
- 
- 	if (rt->dst.dev)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0135-net-fix-napi_reuse_skb-skb-reserve.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0135-net-fix-napi_reuse_skb-skb-reserve.patch
deleted file mode 100644
index b176c8b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0135-net-fix-napi_reuse_skb-skb-reserve.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 33dbbab6716bf8d3703ccb81a1e7e7084c4b8233 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Wed, 21 Mar 2012 06:58:03 +0000
-Subject: [PATCH 135/147] net: fix napi_reuse_skb() skb reserve
-
-[ Upstream commit 2a2a459eeeff48640dc557548ce576d666ab06ed ]
-
-napi->skb is allocated in napi_get_frags() using
-netdev_alloc_skb_ip_align(), with a reserve of NET_SKB_PAD +
-NET_IP_ALIGN bytes.
-
-However, when such skb is recycled in napi_reuse_skb(), it ends with a
-reserve of NET_IP_ALIGN which is suboptimal.
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/dev.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/core/dev.c b/net/core/dev.c
-index c56cacf..55cd370 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -3634,7 +3634,8 @@ EXPORT_SYMBOL(napi_gro_receive);
- static void napi_reuse_skb(struct napi_struct *napi, struct sk_buff *skb)
- {
- 	__skb_pull(skb, skb_headlen(skb));
--	skb_reserve(skb, NET_IP_ALIGN - skb_headroom(skb));
-+	/* restore the reserve we had after netdev_alloc_skb_ip_align() */
-+	skb_reserve(skb, NET_SKB_PAD + NET_IP_ALIGN - skb_headroom(skb));
- 	skb->vlan_tci = 0;
- 	skb->dev = napi->dev;
- 	skb->skb_iif = 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0136-Remove-printk-from-rds_sendmsg.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0136-Remove-printk-from-rds_sendmsg.patch
deleted file mode 100644
index 1164259..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0136-Remove-printk-from-rds_sendmsg.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 7a3d883bc2d70f61ca23b7778c945d7e4cf5e10a Mon Sep 17 00:00:00 2001
-From: Dave Jones <davej at redhat.com>
-Date: Mon, 19 Mar 2012 13:01:07 +0000
-Subject: [PATCH 136/147] Remove printk from rds_sendmsg
-
-[ Upstream commit a6506e1486181975d318344143aca722b2b91621 ]
-
-no socket layer outputs a message for this error and neither should rds.
-
-Signed-off-by: Dave Jones <davej at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/rds/send.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/net/rds/send.c b/net/rds/send.c
-index e2d63c5..96531d4 100644
---- a/net/rds/send.c
-+++ b/net/rds/send.c
-@@ -935,7 +935,6 @@ int rds_sendmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
- 	/* Mirror Linux UDP mirror of BSD error message compatibility */
- 	/* XXX: Perhaps MSG_MORE someday */
- 	if (msg->msg_flags & ~(MSG_DONTWAIT | MSG_CMSG_COMPAT)) {
--		printk(KERN_INFO "msg_flags 0x%08X\n", msg->msg_flags);
- 		ret = -EOPNOTSUPP;
- 		goto out;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0137-sky2-override-for-PCI-legacy-power-management.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0137-sky2-override-for-PCI-legacy-power-management.patch
deleted file mode 100644
index 6e4cc9f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0137-sky2-override-for-PCI-legacy-power-management.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 82df145d92f585fd22bc74921a3dc184d54be9d3 Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Wed, 21 Mar 2012 05:32:05 +0000
-Subject: [PATCH 137/147] sky2: override for PCI legacy power management
-
-[ Upstream commit 5676cc7bfe1e388e87843f71daa229610385b41e ]
-
-Some BIOS's don't setup power management correctly (what else is
-new) and don't allow use of PCI Express power control. Add a special
-exception module parameter to allow working around this issue.
-Based on slightly different patch by Knut Petersen.
-
-Reported-by: Arkadiusz Miskiewicz <arekm at maven.pl>
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/marvell/sky2.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
-index 7803efa..f612b35 100644
---- a/drivers/net/ethernet/marvell/sky2.c
-+++ b/drivers/net/ethernet/marvell/sky2.c
-@@ -95,6 +95,10 @@ static int disable_msi = 0;
- module_param(disable_msi, int, 0);
- MODULE_PARM_DESC(disable_msi, "Disable Message Signaled Interrupt (MSI)");
- 
-+static int legacy_pme = 0;
-+module_param(legacy_pme, int, 0);
-+MODULE_PARM_DESC(legacy_pme, "Legacy power management");
-+
- static DEFINE_PCI_DEVICE_TABLE(sky2_id_table) = {
- 	{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9000) }, /* SK-9Sxx */
- 	{ PCI_DEVICE(PCI_VENDOR_ID_SYSKONNECT, 0x9E00) }, /* SK-9Exx */
-@@ -867,6 +871,13 @@ static void sky2_wol_init(struct sky2_port *sky2)
- 	/* Disable PiG firmware */
- 	sky2_write16(hw, B0_CTST, Y2_HW_WOL_OFF);
- 
-+	/* Needed by some broken BIOSes, use PCI rather than PCI-e for WOL */
-+	if (legacy_pme) {
-+		u32 reg1 = sky2_pci_read32(hw, PCI_DEV_REG1);
-+		reg1 |= PCI_Y2_PME_LEGACY;
-+		sky2_pci_write32(hw, PCI_DEV_REG1, reg1);
-+	}
-+
- 	/* block receiver */
- 	sky2_write8(hw, SK_REG(port, RX_GMF_CTRL_T), GMF_RST_SET);
- 	sky2_read32(hw, B0_CTST);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0138-xfrm-Access-the-replay-notify-functions-via-the-regi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0138-xfrm-Access-the-replay-notify-functions-via-the-regi.patch
deleted file mode 100644
index d030cc7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0138-xfrm-Access-the-replay-notify-functions-via-the-regi.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From eaa691b3cd85066e4f84583f7b818372c86a4bc2 Mon Sep 17 00:00:00 2001
-From: Steffen Klassert <steffen.klassert at secunet.com>
-Date: Wed, 21 Mar 2012 23:36:13 +0000
-Subject: [PATCH 138/147] xfrm: Access the replay notify functions via the
- registered callbacks
-
-[ Upstream commit 1265fd616782ef03b98fd19f65c2b47fcd4ea11f ]
-
-We call the wrong replay notify function when we use ESN replay
-handling. This leads to the fact that we don't send notifications
-if we use ESN. Fix this by calling the registered callbacks instead
-of xfrm_replay_notify().
-
-Signed-off-by: Steffen Klassert <steffen.klassert at secunet.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/xfrm/xfrm_replay.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/net/xfrm/xfrm_replay.c b/net/xfrm/xfrm_replay.c
-index 39e02c5..2f6d11d 100644
---- a/net/xfrm/xfrm_replay.c
-+++ b/net/xfrm/xfrm_replay.c
-@@ -167,7 +167,7 @@ static void xfrm_replay_advance(struct xfrm_state *x, __be32 net_seq)
- 	}
- 
- 	if (xfrm_aevent_is_on(xs_net(x)))
--		xfrm_replay_notify(x, XFRM_REPLAY_UPDATE);
-+		x->repl->notify(x, XFRM_REPLAY_UPDATE);
- }
- 
- static int xfrm_replay_overflow_bmp(struct xfrm_state *x, struct sk_buff *skb)
-@@ -279,7 +279,7 @@ static void xfrm_replay_advance_bmp(struct xfrm_state *x, __be32 net_seq)
- 	replay_esn->bmp[nr] |= (1U << bitnr);
- 
- 	if (xfrm_aevent_is_on(xs_net(x)))
--		xfrm_replay_notify(x, XFRM_REPLAY_UPDATE);
-+		x->repl->notify(x, XFRM_REPLAY_UPDATE);
- }
- 
- static void xfrm_replay_notify_bmp(struct xfrm_state *x, int event)
-@@ -473,7 +473,7 @@ static void xfrm_replay_advance_esn(struct xfrm_state *x, __be32 net_seq)
- 	replay_esn->bmp[nr] |= (1U << bitnr);
- 
- 	if (xfrm_aevent_is_on(xs_net(x)))
--		xfrm_replay_notify(x, XFRM_REPLAY_UPDATE);
-+		x->repl->notify(x, XFRM_REPLAY_UPDATE);
- }
- 
- static struct xfrm_replay xfrm_replay_legacy = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0139-lockd-fix-arg-parsing-for-grace_period-and-timeout.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0139-lockd-fix-arg-parsing-for-grace_period-and-timeout.patch
deleted file mode 100644
index 3e15c06..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0139-lockd-fix-arg-parsing-for-grace_period-and-timeout.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From a0ef4bd55a5a7d190eeceb4d1626988af68a2f0e Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Tue, 7 Feb 2012 15:35:42 +1100
-Subject: [PATCH 139/147] lockd: fix arg parsing for grace_period and timeout.
-
-commit de5b8e8e047534aac6bc9803f96e7257436aef9c upstream.
-
-If you try to set grace_period or timeout via a module parameter
-to lockd, and do this on a big-endian machine where
-
-   sizeof(int) != sizeof(unsigned long)
-
-it won't work.  This number given will be effectively shifted right
-by the difference in those two sizes.
-
-So cast kp->arg properly to get correct result.
-
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/lockd/svc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
-index c061b9a..2444780 100644
---- a/fs/lockd/svc.c
-+++ b/fs/lockd/svc.c
-@@ -440,7 +440,7 @@ static int param_set_##name(const char *val, struct kernel_param *kp)	\
- 	__typeof__(type) num = which_strtol(val, &endp, 0);		\
- 	if (endp == val || *endp || num < (min) || num > (max))		\
- 		return -EINVAL;						\
--	*((int *) kp->arg) = num;					\
-+	*((type *) kp->arg) = num;					\
- 	return 0;							\
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0140-x86-tsc-Skip-refined-tsc-calibration-on-systems-with.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0140-x86-tsc-Skip-refined-tsc-calibration-on-systems-with.patch
deleted file mode 100644
index 637e830..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0140-x86-tsc-Skip-refined-tsc-calibration-on-systems-with.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 6361e158f9827a43f7f20342c5f58a46ac003fb1 Mon Sep 17 00:00:00 2001
-From: Alok Kataria <akataria at vmware.com>
-Date: Tue, 21 Feb 2012 18:19:55 -0800
-Subject: [PATCH 140/147] x86, tsc: Skip refined tsc calibration on systems
- with reliable TSC
-
-commit 57779dc2b3b75bee05ef5d1ada47f615f7a13932 upstream.
-
-While running the latest Linux as guest under VMware in highly
-over-committed situations, we have seen cases when the refined TSC
-algorithm fails to get a valid tsc_start value in
-tsc_refine_calibration_work from multiple attempts. As a result the
-kernel keeps on scheduling the tsc_irqwork task for later. Subsequently
-after several attempts when it gets a valid start value it goes through
-the refined calibration and either bails out or uses the new results.
-Given that the kernel originally read the TSC frequency from the
-platform, which is the best it can get, I don't think there is much
-value in refining it.
-
-So  for systems which get the TSC frequency from the platform we
-should skip the refined tsc algorithm.
-
-We can use the TSC_RELIABLE cpu cap flag to detect this, right now it is
-set only on VMware and for Moorestown Penwell both of which have there
-own TSC calibration methods.
-
-Signed-off-by: Alok N Kataria <akataria at vmware.com>
-Cc: John Stultz <johnstul at us.ibm.com>
-Cc: Dirk Brandewie <dirk.brandewie at gmail.com>
-Cc: Alan Cox <alan at linux.intel.com>
-[jstultz: Reworked to simply not schedule the refining work,
-rather then scheduling the work and bombing out later]
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/tsc.c |   10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
-index db48336..3fe298a 100644
---- a/arch/x86/kernel/tsc.c
-+++ b/arch/x86/kernel/tsc.c
-@@ -934,6 +934,16 @@ static int __init init_tsc_clocksource(void)
- 		clocksource_tsc.rating = 0;
- 		clocksource_tsc.flags &= ~CLOCK_SOURCE_IS_CONTINUOUS;
- 	}
-+
-+	/*
-+	 * Trust the results of the earlier calibration on systems
-+	 * exporting a reliable TSC.
-+	 */
-+	if (boot_cpu_has(X86_FEATURE_TSC_RELIABLE)) {
-+		clocksource_register_khz(&clocksource_tsc, tsc_khz);
-+		return 0;
-+	}
-+
- 	schedule_delayed_work(&tsc_irqwork, 0);
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0141-x86-tls-Off-by-one-limit-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0141-x86-tls-Off-by-one-limit-check.patch
deleted file mode 100644
index a4510ef..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0141-x86-tls-Off-by-one-limit-check.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 2d52fe6cb2d5afcd27d1c675484bdcbefaad6d2c Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Sat, 24 Mar 2012 10:52:50 +0300
-Subject: [PATCH 141/147] x86, tls: Off by one limit check
-
-commit 8f0750f19789cf352d7e24a6cc50f2ab1b4f1372 upstream.
-
-These are used as offsets into an array of GDT_ENTRY_TLS_ENTRIES members
-so GDT_ENTRY_TLS_ENTRIES is one past the end of the array.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Link: http://lkml.kernel.org/r/20120324075250.GA28258@elgon.mountain
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/tls.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/kernel/tls.c b/arch/x86/kernel/tls.c
-index 6bb7b85..bcfec2d 100644
---- a/arch/x86/kernel/tls.c
-+++ b/arch/x86/kernel/tls.c
-@@ -163,7 +163,7 @@ int regset_tls_get(struct task_struct *target, const struct user_regset *regset,
- {
- 	const struct desc_struct *tls;
- 
--	if (pos > GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
-+	if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
- 	    (pos % sizeof(struct user_desc)) != 0 ||
- 	    (count % sizeof(struct user_desc)) != 0)
- 		return -EINVAL;
-@@ -198,7 +198,7 @@ int regset_tls_set(struct task_struct *target, const struct user_regset *regset,
- 	struct user_desc infobuf[GDT_ENTRY_TLS_ENTRIES];
- 	const struct user_desc *info;
- 
--	if (pos > GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
-+	if (pos >= GDT_ENTRY_TLS_ENTRIES * sizeof(struct user_desc) ||
- 	    (pos % sizeof(struct user_desc)) != 0 ||
- 	    (count % sizeof(struct user_desc)) != 0)
- 		return -EINVAL;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0142-compat-use-sys_sendfile64-implementation-for-sendfil.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0142-compat-use-sys_sendfile64-implementation-for-sendfil.patch
deleted file mode 100644
index a93ecf8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0142-compat-use-sys_sendfile64-implementation-for-sendfil.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c6fc3006639bfddf212067de1c13a8345019d934 Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Mon, 26 Mar 2012 16:26:12 -0400
-Subject: [PATCH 142/147] compat: use sys_sendfile64() implementation for
- sendfile syscall
-
-commit 1631fcea8399da5e80a80084b3b8c5bfd99d21e7 upstream.
-
-<asm-generic/unistd.h> was set up to use sys_sendfile() for the 32-bit
-compat API instead of sys_sendfile64(), but in fact the right thing to
-do is to use sys_sendfile64() in all cases.  The 32-bit sendfile64() API
-in glibc uses the sendfile64 syscall, so it has to be capable of doing
-full 64-bit operations.  But the sys_sendfile() kernel implementation
-has a MAX_NON_LFS test in it which explicitly limits the offset to 2^32.
-So, we need to use the sys_sendfile64() implementation in the kernel
-for this case.
-
-Acked-by: Arnd Bergmann <arnd at arndb.de>
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/asm-generic/unistd.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/asm-generic/unistd.h b/include/asm-generic/unistd.h
-index 2292d1a..991ef01 100644
---- a/include/asm-generic/unistd.h
-+++ b/include/asm-generic/unistd.h
-@@ -218,7 +218,7 @@ __SC_COMP(__NR_pwritev, sys_pwritev, compat_sys_pwritev)
- 
- /* fs/sendfile.c */
- #define __NR3264_sendfile 71
--__SC_3264(__NR3264_sendfile, sys_sendfile64, sys_sendfile)
-+__SYSCALL(__NR3264_sendfile, sys_sendfile64)
- 
- /* fs/select.c */
- #define __NR_pselect6 72
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0143-rtc-Provide-flag-for-rtc-devices-that-don-t-support-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0143-rtc-Provide-flag-for-rtc-devices-that-don-t-support-.patch
deleted file mode 100644
index 1f20272..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0143-rtc-Provide-flag-for-rtc-devices-that-don-t-support-.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 04cb3b02d54277c9db7bf8b185f41839317e40b1 Mon Sep 17 00:00:00 2001
-From: John Stultz <john.stultz at linaro.org>
-Date: Tue, 6 Mar 2012 17:16:09 -0800
-Subject: [PATCH 143/147] rtc: Provide flag for rtc devices that don't support
- UIE
-
-commit 4a649903f91232d02284d53724b0a45728111767 upstream.
-
-Richard Weinberger noticed that on some RTC hardware that
-doesn't support UIE mode, due to coarse granular alarms
-(like 1minute resolution), the current virtualized RTC
-support doesn't properly error out when UIE is enabled.
-
-Instead the current code queues an alarm for the next second,
-but it won't fire until up to a miniute later.
-
-This patch provides a generic way to flag this sort of hardware
-and fixes the issue on the mpc5121 where Richard noticed the
-problem.
-
-Reported-by: Richard Weinberger <richard at nod.at>
-Tested-by: Richard Weinberger <richard at nod.at>
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/rtc/interface.c   |    5 +++++
- drivers/rtc/rtc-mpc5121.c |    2 ++
- include/linux/rtc.h       |    3 ++-
- 3 files changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
-index c1edbf8..565742b 100644
---- a/drivers/rtc/interface.c
-+++ b/drivers/rtc/interface.c
-@@ -445,6 +445,11 @@ int rtc_update_irq_enable(struct rtc_device *rtc, unsigned int enabled)
- 	if (rtc->uie_rtctimer.enabled == enabled)
- 		goto out;
- 
-+	if (rtc->uie_unsupported) {
-+		err = -EINVAL;
-+		goto out;
-+	}
-+
- 	if (enabled) {
- 		struct rtc_time tm;
- 		ktime_t now, onesec;
-diff --git a/drivers/rtc/rtc-mpc5121.c b/drivers/rtc/rtc-mpc5121.c
-index da60915..0fc2d22 100644
---- a/drivers/rtc/rtc-mpc5121.c
-+++ b/drivers/rtc/rtc-mpc5121.c
-@@ -360,6 +360,8 @@ static int __devinit mpc5121_rtc_probe(struct platform_device *op)
- 						&mpc5200_rtc_ops, THIS_MODULE);
- 	}
- 
-+	rtc->rtc->uie_unsupported = 1;
-+
- 	if (IS_ERR(rtc->rtc)) {
- 		err = PTR_ERR(rtc->rtc);
- 		goto out_free_irq;
-diff --git a/include/linux/rtc.h b/include/linux/rtc.h
-index 93f4d03..fcabfb4 100644
---- a/include/linux/rtc.h
-+++ b/include/linux/rtc.h
-@@ -202,7 +202,8 @@ struct rtc_device
- 	struct hrtimer pie_timer; /* sub second exp, so needs hrtimer */
- 	int pie_enabled;
- 	struct work_struct irqwork;
--
-+	/* Some hardware can't support UIE mode */
-+	int uie_unsupported;
- 
- #ifdef CONFIG_RTC_INTF_DEV_UIE_EMUL
- 	struct work_struct uie_task;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0144-nfsd-don-t-allow-zero-length-strings-in-cache_parse.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0144-nfsd-don-t-allow-zero-length-strings-in-cache_parse.patch
deleted file mode 100644
index de5ea80..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0144-nfsd-don-t-allow-zero-length-strings-in-cache_parse.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 43917d0f4bc9e7b8d6f0cafd29da95d52f587c58 Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Wed, 18 Jan 2012 12:56:02 +0300
-Subject: [PATCH 144/147] nfsd: don't allow zero length strings in
- cache_parse()
-
-commit 6d8d17499810479eabd10731179c04b2ca22152f upstream.
-
-There is no point in passing a zero length string here and quite a
-few of that cache_parse() implementations will Oops if count is
-zero.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/sunrpc/cache.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
-index 72ad836..4530a91 100644
---- a/net/sunrpc/cache.c
-+++ b/net/sunrpc/cache.c
-@@ -828,6 +828,8 @@ static ssize_t cache_do_downcall(char *kaddr, const char __user *buf,
- {
- 	ssize_t ret;
- 
-+	if (count == 0)
-+		return -EINVAL;
- 	if (copy_from_user(kaddr, buf, count))
- 		return -EFAULT;
- 	kaddr[count] = '\0';
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0145-serial-sh-sci-fix-a-race-of-DMA-submit_tx-on-transfe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0145-serial-sh-sci-fix-a-race-of-DMA-submit_tx-on-transfe.patch
deleted file mode 100644
index 14546aa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0145-serial-sh-sci-fix-a-race-of-DMA-submit_tx-on-transfe.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 3e2440eb910fa022dedfd93ecc868155dbd14fe1 Mon Sep 17 00:00:00 2001
-From: Yoshii Takashi <takashi.yoshii.zj at renesas.com>
-Date: Wed, 14 Mar 2012 16:14:43 +0900
-Subject: [PATCH 145/147] serial: sh-sci: fix a race of DMA submit_tx on
- transfer
-
-commit 49d4bcaddca977fffdea8b0b71f6e5da96dac78e upstream.
-
-When DMA is enabled, sh-sci transfer begins with
- uart_start()
-  sci_start_tx()
-    if (cookie_tx < 0) schedule_work()
-Then, starts DMA when wq scheduled, -- (A)
- process_one_work()
-  work_fn_rx()
-   cookie_tx = desc->submit_tx()
-And finishes when DMA transfer ends, -- (B)
- sci_dma_tx_complete()
-  async_tx_ack()
-  cookie_tx = -EINVAL
-  (possible another schedule_work())
-
-This A to B sequence is not reentrant, since controlling variables
-(for example, cookie_tx above) are not queues nor lists. So, they
-must be invoked as A B A B..., otherwise results in kernel crash.
-
-To ensure the sequence, sci_start_tx() seems to test if cookie_tx < 0
-(represents "not used") to call schedule_work().
-But cookie_tx will not be set (to a cookie, also means "used") until
-in the middle of work queue scheduled function work_fn_tx().
-
-This gap between the test and set allows the breakage of the sequence
-under the very frequently call of uart_start().
-Another gap between async_tx_ack() and another schedule_work() results
-in the same issue, too.
-
-This patch introduces a new condition "cookie_tx == 0" just to mark
-it is "busy" and assign it within spin-locked region to fill the gaps.
-
-Signed-off-by: Takashi Yoshii <takashi.yoshii.zj at renesas.com>
-Reviewed-by: Guennadi Liakhovetski <g.liakhovetski at gmx.de>
-Signed-off-by: Paul Mundt <lethal at linux-sh.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/sh-sci.c |   15 ++++++++++-----
- 1 file changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/tty/serial/sh-sci.c b/drivers/tty/serial/sh-sci.c
-index aff9d61..829e51a 100644
---- a/drivers/tty/serial/sh-sci.c
-+++ b/drivers/tty/serial/sh-sci.c
-@@ -1123,17 +1123,20 @@ static void sci_dma_tx_complete(void *arg)
- 	port->icount.tx += sg_dma_len(&s->sg_tx);
- 
- 	async_tx_ack(s->desc_tx);
--	s->cookie_tx = -EINVAL;
- 	s->desc_tx = NULL;
- 
- 	if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
- 		uart_write_wakeup(port);
- 
- 	if (!uart_circ_empty(xmit)) {
-+		s->cookie_tx = 0;
- 		schedule_work(&s->work_tx);
--	} else if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
--		u16 ctrl = sci_in(port, SCSCR);
--		sci_out(port, SCSCR, ctrl & ~SCSCR_TIE);
-+	} else {
-+		s->cookie_tx = -EINVAL;
-+		if (port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
-+			u16 ctrl = sci_in(port, SCSCR);
-+			sci_out(port, SCSCR, ctrl & ~SCSCR_TIE);
-+		}
- 	}
- 
- 	spin_unlock_irqrestore(&port->lock, flags);
-@@ -1395,8 +1398,10 @@ static void sci_start_tx(struct uart_port *port)
- 	}
- 
- 	if (s->chan_tx && !uart_circ_empty(&s->port.state->xmit) &&
--	    s->cookie_tx < 0)
-+	    s->cookie_tx < 0) {
-+		s->cookie_tx = 0;
- 		schedule_work(&s->work_tx);
-+	}
- #endif
- 
- 	if (!s->chan_tx || port->type == PORT_SCIFA || port->type == PORT_SCIFB) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0146-ASPM-Fix-pcie-devices-with-non-pcie-children.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0146-ASPM-Fix-pcie-devices-with-non-pcie-children.patch
deleted file mode 100644
index 9d2291b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0146-ASPM-Fix-pcie-devices-with-non-pcie-children.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From f1bc4d09cd5cb0d91b7ab742b0bc2c6ea7ed9a10 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg at redhat.com>
-Date: Tue, 27 Mar 2012 10:17:41 -0400
-Subject: [PATCH 146/147] ASPM: Fix pcie devices with non-pcie children
-
-commit c9651e70ad0aa499814817cbf3cc1d0b806ed3a1 upstream.
-
-Since 3.2.12 and 3.3, some systems are failing to boot with a BUG_ON.
-Some other systems using the pata_jmicron driver fail to boot because no
-disks are detected.  Passing pcie_aspm=force on the kernel command line
-works around it.
-
-The cause: commit 4949be16822e ("PCI: ignore pre-1.1 ASPM quirking when
-ASPM is disabled") changed the behaviour of pcie_aspm_sanity_check() to
-always return 0 if aspm is disabled, in order to avoid cases where we
-changed ASPM state on pre-PCIe 1.1 devices.
-
-This skipped the secondary function of pcie_aspm_sanity_check which was
-to avoid us enabling ASPM on devices that had non-PCIe children, causing
-trouble later on.  Move the aspm_disabled check so we continue to honour
-that scenario.
-
-Addresses https://bugzilla.kernel.org/show_bug.cgi?id=42979 and
-          http://bugs.debian.org/665420
-
-Reported-by: Romain Francoise <romain at orebokech.com> # kernel panic
-Reported-by: Chris Holland <bandidoirlandes at gmail.com> # disk detection trouble
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Tested-by: Hatem Masmoudi <hatem.masmoudi at gmail.com> # Dell Latitude E5520
-Tested-by: janek <jan0x6c at gmail.com> # pata_jmicron with JMB362/JMB363
-[jn: with more symptoms in log message]
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/pci/pcie/aspm.c |   13 ++++++++++---
- 1 file changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
-index 24f049e..2275162 100644
---- a/drivers/pci/pcie/aspm.c
-+++ b/drivers/pci/pcie/aspm.c
-@@ -500,9 +500,6 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
- 	int pos;
- 	u32 reg32;
- 
--	if (aspm_disabled)
--		return 0;
--
- 	/*
- 	 * Some functions in a slot might not all be PCIe functions,
- 	 * very strange. Disable ASPM for the whole slot
-@@ -511,6 +508,16 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
- 		pos = pci_pcie_cap(child);
- 		if (!pos)
- 			return -EINVAL;
-+
-+		/*
-+		 * If ASPM is disabled then we're not going to change
-+		 * the BIOS state. It's safe to continue even if it's a
-+		 * pre-1.1 device
-+		 */
-+
-+		if (aspm_disabled)
-+			continue;
-+
- 		/*
- 		 * Disable ASPM for pre-1.1 PCIe device, we follow MS to use
- 		 * RBER bit to determine if a function is 1.1 version device
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0147-Linux-3.2.14.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0147-Linux-3.2.14.patch
deleted file mode 100644
index 6a9f27c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.14/0147-Linux-3.2.14.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 6c99e5e88e70f85b97e9363c80763e306ac3296c Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 2 Apr 2012 09:53:31 -0700
-Subject: [PATCH 147/147] Linux 3.2.14
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 172e041..afe4c7d 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 13
-+SUBLEVEL = 14
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0001-x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immedia.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0001-x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immedia.patch
deleted file mode 100644
index 6ca5b96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0001-x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immedia.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7e602bd1af2343c068cef31c272ffbb1f24e4569 Mon Sep 17 00:00:00 2001
-From: "zhuangfeiran at ict.ac.cn" <zhuangfeiran at ict.ac.cn>
-Date: Wed, 28 Mar 2012 23:27:00 +0000
-Subject: [PATCH 01/60] x86 bpf_jit: fix a bug in emitting the 16-bit
- immediate operand of AND
-
-[ Upstream commit 1d24fb3684f347226747c6b11ea426b7b992694e ]
-
-When K >= 0xFFFF0000, AND needs the two least significant bytes of K as
-its operand, but EMIT2() gives it the least significant byte of K and
-0x2. EMIT() should be used here to replace EMIT2().
-
-Signed-off-by: Feiran Zhuang  <zhuangfeiran at ict.ac.cn>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/net/bpf_jit_comp.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
-index 5671752..5a5b6e4 100644
---- a/arch/x86/net/bpf_jit_comp.c
-+++ b/arch/x86/net/bpf_jit_comp.c
-@@ -289,7 +289,7 @@ void bpf_jit_compile(struct sk_filter *fp)
- 					EMIT2(0x24, K & 0xFF); /* and imm8,%al */
- 				} else if (K >= 0xFFFF0000) {
- 					EMIT2(0x66, 0x25);	/* and imm16,%ax */
--					EMIT2(K, 2);
-+					EMIT(K, 2);
- 				} else {
- 					EMIT1_off32(0x25, K);	/* and imm32,%eax */
- 				}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0002-tg3-Fix-5717-serdes-powerdown-problem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0002-tg3-Fix-5717-serdes-powerdown-problem.patch
deleted file mode 100644
index 1a703dc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0002-tg3-Fix-5717-serdes-powerdown-problem.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 1ac4686cd4465f081e95dc1f6de93bb6f5157a48 Mon Sep 17 00:00:00 2001
-From: Matt Carlson <mcarlson at broadcom.com>
-Date: Mon, 2 Apr 2012 09:01:40 +0000
-Subject: [PATCH 02/60] tg3: Fix 5717 serdes powerdown problem
-
-[ Upstream commit 085f1afc56619bda424941412fdeaff1e32c21dc ]
-
-If port 0 of a 5717 serdes device powers down, it hides the phy from
-port 1.  This patch works around the problem by keeping port 0's phy
-powered up.
-
-Signed-off-by: Matt Carlson <mcarlson at broadcom.com>
-Signed-off-by: Michael Chan <mchan at broadcom.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/broadcom/tg3.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
-index bf40741..3d55883 100644
---- a/drivers/net/ethernet/broadcom/tg3.c
-+++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -2794,7 +2794,9 @@ static void tg3_power_down_phy(struct tg3 *tp, bool do_low_power)
- 	if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5700 ||
- 	    GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5704 ||
- 	    (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5780 &&
--	     (tp->phy_flags & TG3_PHYFLG_MII_SERDES)))
-+	     (tp->phy_flags & TG3_PHYFLG_MII_SERDES)) ||
-+	    (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5717 &&
-+	     !tp->pci_fn))
- 		return;
- 
- 	if (GET_CHIP_REV(tp->pci_chip_rev_id) == CHIPREV_5784_AX ||
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0003-sky2-dont-overwrite-settings-for-PHY-Quick-link.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0003-sky2-dont-overwrite-settings-for-PHY-Quick-link.patch
deleted file mode 100644
index 38890ec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0003-sky2-dont-overwrite-settings-for-PHY-Quick-link.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 52136862cecf42801481b683e0c316e9bc7658ee Mon Sep 17 00:00:00 2001
-From: Lino Sanfilippo <LinoSanfilippo at gmx.de>
-Date: Fri, 30 Mar 2012 07:28:59 +0000
-Subject: [PATCH 03/60] sky2: dont overwrite settings for PHY Quick link
-
-[ Upstream commit 2240eb4ae3dc4acff20d1a8947c441c451513e37 ]
-
-This patch corrects a bug in function sky2_open() of the Marvell Yukon 2 driver
-in which the settings for PHY quick link are overwritten.
-
-Signed-off-by: Lino Sanfilippo <LinoSanfilippo at gmx.de>
-Acked-by: Stephen Hemminger <shemminger at vyattta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/marvell/sky2.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
-index f612b35..7eb8a00 100644
---- a/drivers/net/ethernet/marvell/sky2.c
-+++ b/drivers/net/ethernet/marvell/sky2.c
-@@ -1766,13 +1766,14 @@ static int sky2_open(struct net_device *dev)
- 
- 	sky2_hw_up(sky2);
- 
-+	/* Enable interrupts from phy/mac for port */
-+	imask = sky2_read32(hw, B0_IMSK);
-+
- 	if (hw->chip_id == CHIP_ID_YUKON_OPT ||
- 	    hw->chip_id == CHIP_ID_YUKON_PRM ||
- 	    hw->chip_id == CHIP_ID_YUKON_OP_2)
- 		imask |= Y2_IS_PHY_QLNK;	/* enable PHY Quick Link */
- 
--	/* Enable interrupts from phy/mac for port */
--	imask = sky2_read32(hw, B0_IMSK);
- 	imask |= portirq_msk[port];
- 	sky2_write32(hw, B0_IMSK, imask);
- 	sky2_read32(hw, B0_IMSK);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0004-rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0004-rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch
deleted file mode 100644
index 6e7fb2e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0004-rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 1ea3a4959cbe6145d661bd86ad83f70a61927974 Mon Sep 17 00:00:00 2001
-From: "danborkmann at iogearbox.net" <danborkmann at iogearbox.net>
-Date: Tue, 27 Mar 2012 22:47:43 +0000
-Subject: [PATCH 04/60] rose_dev: fix memcpy-bug in rose_set_mac_address
-
-[ Upstream commit 81213b5e8ae68e204aa7a3f83c4f9100405dbff9 ]
-
-If both addresses equal, nothing needs to be done. If the device is down,
-then we simply copy the new address to dev->dev_addr. If the device is up,
-then we add another loopback device with the new address, and if that does
-not fail, we remove the loopback device with the old address. And only
-then, we update the dev->dev_addr.
-
-Signed-off-by: Daniel Borkmann <daniel.borkmann at tik.ee.ethz.ch>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/rose/rose_dev.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/rose/rose_dev.c b/net/rose/rose_dev.c
-index 178ff4f..2679507 100644
---- a/net/rose/rose_dev.c
-+++ b/net/rose/rose_dev.c
-@@ -96,11 +96,11 @@ static int rose_set_mac_address(struct net_device *dev, void *addr)
- 	struct sockaddr *sa = addr;
- 	int err;
- 
--	if (!memcpy(dev->dev_addr, sa->sa_data, dev->addr_len))
-+	if (!memcmp(dev->dev_addr, sa->sa_data, dev->addr_len))
- 		return 0;
- 
- 	if (dev->flags & IFF_UP) {
--		err = rose_add_loopback_node((rose_address *)dev->dev_addr);
-+		err = rose_add_loopback_node((rose_address *)sa->sa_data);
- 		if (err)
- 			return err;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0005-net-usb-cdc_eem-fix-mtu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0005-net-usb-cdc_eem-fix-mtu.patch
deleted file mode 100644
index 42e8bde..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0005-net-usb-cdc_eem-fix-mtu.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 1a9aa23e139f1305c1b8e1609e8275ed7456c9ba Mon Sep 17 00:00:00 2001
-From: Rabin Vincent <rabin at rab.in>
-Date: Thu, 29 Mar 2012 07:15:15 +0000
-Subject: [PATCH 05/60] net: usb: cdc_eem: fix mtu
-
-[ Upstream commit 78fb72f7936c01d5b426c03a691eca082b03f2b9 ]
-
-Make CDC EEM recalculate the hard_mtu after adjusting the
-hard_header_len.
-
-Without this, usbnet adjusts the MTU down to 1494 bytes, and the host is
-unable to receive standard 1500-byte frames from the device.
-
-Tested with the Linux USB Ethernet gadget.
-
-Cc: Oliver Neukum <oliver at neukum.name>
-Signed-off-by: Rabin Vincent <rabin at rab.in>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/cdc_eem.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/usb/cdc_eem.c b/drivers/net/usb/cdc_eem.c
-index 882f53f..82d43b2 100644
---- a/drivers/net/usb/cdc_eem.c
-+++ b/drivers/net/usb/cdc_eem.c
-@@ -93,6 +93,7 @@ static int eem_bind(struct usbnet *dev, struct usb_interface *intf)
- 	/* no jumbogram (16K) support for now */
- 
- 	dev->net->hard_header_len += EEM_HEAD + ETH_FCS_LEN;
-+	dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
- 
- 	return 0;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0006-Fix-non-TBI-PHY-access-a-bad-merge-undid-bug-fix-in-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0006-Fix-non-TBI-PHY-access-a-bad-merge-undid-bug-fix-in-.patch
deleted file mode 100644
index f4cf933..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0006-Fix-non-TBI-PHY-access-a-bad-merge-undid-bug-fix-in-.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5d9449356576f8bb42022c55e966a6d00a27d810 Mon Sep 17 00:00:00 2001
-From: Kenth Eriksson <kenth.eriksson at transmode.com>
-Date: Tue, 27 Mar 2012 22:05:54 +0000
-Subject: [PATCH 06/60] Fix non TBI PHY access; a bad merge undid bug fix in a
- previous commit.
-
-[ Upstream commit 464b57da56910c8737ede75ad820b9a7afc46b3e ]
-
-The merge done in commit b26e478f undid bug fix in commit c3e072f8
-("net: fsl_pq_mdio: fix non tbi phy access"), with the result that non
-TBI (e.g. MDIO) PHYs cannot be accessed.
-
-Signed-off-by: Kenth Eriksson <kenth.eriksson at transmode.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/freescale/fsl_pq_mdio.c |   13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/net/ethernet/freescale/fsl_pq_mdio.c b/drivers/net/ethernet/freescale/fsl_pq_mdio.c
-index 4d9f84b..ada234a 100644
---- a/drivers/net/ethernet/freescale/fsl_pq_mdio.c
-+++ b/drivers/net/ethernet/freescale/fsl_pq_mdio.c
-@@ -356,16 +356,15 @@ static int fsl_pq_mdio_probe(struct platform_device *ofdev)
- 
- 		if (prop)
- 			tbiaddr = *prop;
--	}
--
--	if (tbiaddr == -1) {
--		err = -EBUSY;
- 
--		goto err_free_irqs;
-+		if (tbiaddr == -1) {
-+			err = -EBUSY;
-+			goto err_free_irqs;
-+		} else {
-+			out_be32(tbipa, tbiaddr);
-+		}
- 	}
- 
--	out_be32(tbipa, tbiaddr);
--
- 	err = of_mdiobus_register(new_bus, np);
- 	if (err) {
- 		printk (KERN_ERR "%s: Cannot register as MDIO bus\n",
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0007-ASoC-wm8994-Update-WM8994-DCS-calibration.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0007-ASoC-wm8994-Update-WM8994-DCS-calibration.patch
deleted file mode 100644
index b52abe1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0007-ASoC-wm8994-Update-WM8994-DCS-calibration.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From be6768ee3f1d5ade04946ae2d9b9642e795b4dc3 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Wed, 21 Mar 2012 13:22:40 +0000
-Subject: [PATCH 07/60] ASoC: wm8994: Update WM8994 DCS calibration
-
-commit e16605855d58803fe0608417150c7a618b4f8243 upstream.
-
-Based on latest production information.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8994.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index 6e502af..2f1f5f8 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -3190,7 +3190,7 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
- 		case 2:
- 		case 3:
- 			wm8994->hubs.dcs_codes_l = -9;
--			wm8994->hubs.dcs_codes_r = -5;
-+			wm8994->hubs.dcs_codes_r = -7;
- 			break;
- 		default:
- 			break;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0008-mtd-ixp4xx-oops-in-ixp4xx_flash_probe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0008-mtd-ixp4xx-oops-in-ixp4xx_flash_probe.patch
deleted file mode 100644
index b704a97..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0008-mtd-ixp4xx-oops-in-ixp4xx_flash_probe.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 5afee8ffbb086ee0d779cba829f1d0faa0f35b9c Mon Sep 17 00:00:00 2001
-From: Marc Kleine-Budde <mkl at blackshift.org>
-Date: Wed, 8 Feb 2012 20:24:29 +0100
-Subject: [PATCH 08/60] mtd: ixp4xx: oops in ixp4xx_flash_probe
-
-commit a3c1e3b732b3708a80e4035b9d845f3f7c7dd0c9 upstream.
-
-In commit "c797533 mtd: abstract last MTD partition parser argument" the
-third argument of "mtd_device_parse_register()" changed from start address
-of the MTD device to a pointer to a struct.
-
-The "ixp4xx_flash_probe()" function was not converted properly, causing
-an oops during boot.
-
-This patch fixes the problem by filling the needed information into a
-"struct mtd_part_parser_data" and passing it to
-"mtd_device_parse_register()".
-
-Signed-off-by: Marc Kleine-Budde <mkl at blackshift.org>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/maps/ixp4xx.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/maps/ixp4xx.c b/drivers/mtd/maps/ixp4xx.c
-index 3040901..696372f 100644
---- a/drivers/mtd/maps/ixp4xx.c
-+++ b/drivers/mtd/maps/ixp4xx.c
-@@ -182,6 +182,9 @@ static int ixp4xx_flash_probe(struct platform_device *dev)
- {
- 	struct flash_platform_data *plat = dev->dev.platform_data;
- 	struct ixp4xx_flash_info *info;
-+	struct mtd_part_parser_data ppdata = {
-+		.origin = dev->resource->start,
-+	};
- 	int err = -1;
- 
- 	if (!plat)
-@@ -247,7 +250,7 @@ static int ixp4xx_flash_probe(struct platform_device *dev)
- 	/* Use the fast version */
- 	info->map.write = ixp4xx_write16;
- 
--	err = mtd_device_parse_register(info->mtd, probes, dev->resource->start,
-+	err = mtd_device_parse_register(info->mtd, probes, &ppdata,
- 			plat->parts, plat->nr_parts);
- 	if (err) {
- 		printk(KERN_ERR "Could not parse partitions\n");
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0009-mtd-mips-lantiq-reintroduce-support-for-cmdline-part.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0009-mtd-mips-lantiq-reintroduce-support-for-cmdline-part.patch
deleted file mode 100644
index 5d9a1e6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0009-mtd-mips-lantiq-reintroduce-support-for-cmdline-part.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1f6651f5448df6b40e8feafccceed942f192a430 Mon Sep 17 00:00:00 2001
-From: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
-Date: Thu, 23 Feb 2012 17:59:49 +0100
-Subject: [PATCH 09/60] mtd: mips: lantiq: reintroduce support for cmdline
- partitions
-
-commit bf011f2ed53d587fdd8148c173c4f09ed77bdf1a upstream.
-
-Since commit ca97dec2ab5c87e9fbdf7e882e1820004a3966fa the
-command line parsing of MTD partitions does not work anymore.
-
-Signed-off-by: Daniel Schwierzeck <daniel.schwierzeck at googlemail.com>
-Signed-off-by: John Crispin <blogic at openwrt.org>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Acked-by: John Crispin <blogic at openwrt.org>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/maps/lantiq-flash.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/maps/lantiq-flash.c b/drivers/mtd/maps/lantiq-flash.c
-index 4f10e27..764d468 100644
---- a/drivers/mtd/maps/lantiq-flash.c
-+++ b/drivers/mtd/maps/lantiq-flash.c
-@@ -45,6 +45,7 @@ struct ltq_mtd {
- };
- 
- static char ltq_map_name[] = "ltq_nor";
-+static const char *ltq_probe_types[] __devinitconst = { "cmdlinepart", NULL };
- 
- static map_word
- ltq_read16(struct map_info *map, unsigned long adr)
-@@ -168,7 +169,7 @@ ltq_mtd_probe(struct platform_device *pdev)
- 	cfi->addr_unlock1 ^= 1;
- 	cfi->addr_unlock2 ^= 1;
- 
--	err = mtd_device_parse_register(ltq_mtd->mtd, NULL, 0,
-+	err = mtd_device_parse_register(ltq_mtd->mtd, ltq_probe_types, 0,
- 			ltq_mtd_data->parts, ltq_mtd_data->nr_parts);
- 	if (err) {
- 		dev_err(&pdev->dev, "failed to add partitions\n");
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0010-mtd-nand-gpmi-use-correct-member-for-checking-NAND_B.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0010-mtd-nand-gpmi-use-correct-member-for-checking-NAND_B.patch
deleted file mode 100644
index e7cbea3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0010-mtd-nand-gpmi-use-correct-member-for-checking-NAND_B.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a34ab661a8d66083d7e6bd4ff4e9d6758699d8ab Mon Sep 17 00:00:00 2001
-From: Wolfram Sang <w.sang at pengutronix.de>
-Date: Tue, 31 Jan 2012 13:10:43 +0100
-Subject: [PATCH 10/60] mtd: nand: gpmi: use correct member for checking
- NAND_BBT_USE_FLASH
-
-commit 5289966ea576a062b80319975b31b661c196ff9d upstream.
-
-This has been moved from .options to .bbt_options meanwhile. So, it
-currently checks for something totally different (NAND_OWN_BUFFERS) and
-decides according to that.
-
-Artem Bityutskiy: the options were moved in
-a40f734 mtd: nand: consolidate redundant flash-based BBT flags
-
-Artem Bityutskiy: CCing -stable
-
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Acked-by: Huang Shijie <b32955 at freescale.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/nand/gpmi-nand/gpmi-nand.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-index 493ec2f..f39f83e 100644
---- a/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-+++ b/drivers/mtd/nand/gpmi-nand/gpmi-nand.c
-@@ -1124,7 +1124,7 @@ static int gpmi_block_markbad(struct mtd_info *mtd, loff_t ofs)
- 		chip->bbt[block >> 2] |= 0x01 << ((block & 0x03) << 1);
- 
- 	/* Do we have a flash based bad block table ? */
--	if (chip->options & NAND_BBT_USE_FLASH)
-+	if (chip->bbt_options & NAND_BBT_USE_FLASH)
- 		ret = nand_update_bbt(mtd, ofs);
- 	else {
- 		chipnr = (int)(ofs >> chip->chip_shift);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0011-mtd-sst25l-initialize-writebufsize.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0011-mtd-sst25l-initialize-writebufsize.patch
deleted file mode 100644
index 3fc3000..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0011-mtd-sst25l-initialize-writebufsize.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 187a3e03c6c3ddb6ec2a62402f9df4e26ea59d96 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Fri, 3 Feb 2012 10:16:50 +0200
-Subject: [PATCH 11/60] mtd: sst25l: initialize writebufsize
-
-commit c4cc625ea5958d065c21cc0fcea29e9ed8f3d2bc upstream.
-
-The writebufsize concept was introduce by commit
-"0e4ca7e mtd: add writebufsize field to mtd_info struct" and it represents
-the maximum amount of data the device writes to the media at a time. This is
-an important parameter for UBIFS which is used during recovery and which
-basically defines how big a corruption caused by a power cut can be.
-
-Set writebufsize to the flash page size because it is the maximum amount of
-data it writes at a time.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/devices/sst25l.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mtd/devices/sst25l.c b/drivers/mtd/devices/sst25l.c
-index d38ef3b..9c35250 100644
---- a/drivers/mtd/devices/sst25l.c
-+++ b/drivers/mtd/devices/sst25l.c
-@@ -402,6 +402,7 @@ static int __devinit sst25l_probe(struct spi_device *spi)
- 	flash->mtd.flags	= MTD_CAP_NORFLASH;
- 	flash->mtd.erasesize	= flash_info->erase_size;
- 	flash->mtd.writesize	= flash_info->page_size;
-+	flash->mtd.writebufsize	= flash_info->page_size;
- 	flash->mtd.size		= flash_info->page_size * flash_info->nr_pages;
- 	flash->mtd.erase	= sst25l_erase;
- 	flash->mtd.read		= sst25l_read;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0012-mtd-block2mtd-initialize-writebufsize.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0012-mtd-block2mtd-initialize-writebufsize.patch
deleted file mode 100644
index 1a57dc3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0012-mtd-block2mtd-initialize-writebufsize.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e9ade583fc6f98a39805d5cb7eba7048eaf17575 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Fri, 3 Feb 2012 09:32:44 +0200
-Subject: [PATCH 12/60] mtd: block2mtd: initialize writebufsize
-
-commit b604387411ec6a072e95910099262616edd2bd2f upstream.
-
-The writebufsize concept was introduce by commit
-"0e4ca7e mtd: add writebufsize field to mtd_info struct" and it represents
-the maximum amount of data the device writes to the media at a time. This is
-an important parameter for UBIFS which is used during recovery and which
-basically defines how big a corruption caused by a power cut can be.
-
-However, we forgot to set this parameter for block2mtd. Set it to PAGE_SIZE
-because this is actually the amount of data we write at a time.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Acked-by: Joern Engel <joern at lazybastard.org>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/devices/block2mtd.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mtd/devices/block2mtd.c b/drivers/mtd/devices/block2mtd.c
-index b78f231..8cd983c 100644
---- a/drivers/mtd/devices/block2mtd.c
-+++ b/drivers/mtd/devices/block2mtd.c
-@@ -284,6 +284,7 @@ static struct block2mtd_dev *add_device(char *devname, int erase_size)
- 	dev->mtd.size = dev->blkdev->bd_inode->i_size & PAGE_MASK;
- 	dev->mtd.erasesize = erase_size;
- 	dev->mtd.writesize = 1;
-+	dev->mtd.writebufsize = PAGE_SIZE;
- 	dev->mtd.type = MTD_RAM;
- 	dev->mtd.flags = MTD_CAP_RAM;
- 	dev->mtd.erase = block2mtd_erase;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0013-mtd-lart-initialize-writebufsize.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0013-mtd-lart-initialize-writebufsize.patch
deleted file mode 100644
index 12aaba0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0013-mtd-lart-initialize-writebufsize.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 377b1a9ee6412981a7c01ea196c81401ded07d97 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Fri, 3 Feb 2012 09:53:28 +0200
-Subject: [PATCH 13/60] mtd: lart: initialize writebufsize
-
-commit fcc44a07dae0af16e84e93425fc8afe642ddc603 upstream.
-
-The writebufsize concept was introduce by commit
-"0e4ca7e mtd: add writebufsize field to mtd_info struct" and it represents
-the maximum amount of data the device writes to the media at a time. This is
-an important parameter for UBIFS which is used during recovery and which
-basically defines how big a corruption caused by a power cut can be.
-
-Set writebufsize to 4 because this drivers writes at max 4 bytes at a time.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/devices/lart.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mtd/devices/lart.c b/drivers/mtd/devices/lart.c
-index 3a11ea6..5f12668 100644
---- a/drivers/mtd/devices/lart.c
-+++ b/drivers/mtd/devices/lart.c
-@@ -630,6 +630,7 @@ static int __init lart_flash_init (void)
-    mtd.name = module_name;
-    mtd.type = MTD_NORFLASH;
-    mtd.writesize = 1;
-+   mtd.writebufsize = 4;
-    mtd.flags = MTD_CAP_NORFLASH;
-    mtd.size = FLASH_BLOCKSIZE_PARAM * FLASH_NUMBLOCKS_16m_PARAM + FLASH_BLOCKSIZE_MAIN * FLASH_NUMBLOCKS_16m_MAIN;
-    mtd.erasesize = FLASH_BLOCKSIZE_MAIN;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0014-mtd-m25p80-set-writebufsize.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0014-mtd-m25p80-set-writebufsize.patch
deleted file mode 100644
index 6c7ac61..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0014-mtd-m25p80-set-writebufsize.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 60498eb2c6666663bf2d0f09d805048e32108fe8 Mon Sep 17 00:00:00 2001
-From: Brian Norris <computersforpeace at gmail.com>
-Date: Tue, 31 Jan 2012 00:06:03 -0800
-Subject: [PATCH 14/60] mtd: m25p80: set writebufsize
-
-commit b54f47c8bcfc5f766bf13ec31bd7dd1d4726d33b upstream.
-
-Using UBI on m25p80 can give messages like:
-
-    UBI error: io_init: bad write buffer size 0 for 1 min. I/O unit
-
-We need to initialize writebufsize; I think "page_size" is the correct
-"bufsize", although I'm not sure. Comments?
-
-Signed-off-by: Brian Norris <computersforpeace at gmail.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/devices/m25p80.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
-index 884904d..9f9982f 100644
---- a/drivers/mtd/devices/m25p80.c
-+++ b/drivers/mtd/devices/m25p80.c
-@@ -932,6 +932,7 @@ static int __devinit m25p_probe(struct spi_device *spi)
- 	ppdata.of_node = spi->dev.of_node;
- 	flash->mtd.dev.parent = &spi->dev;
- 	flash->page_size = info->page_size;
-+	flash->mtd.writebufsize = flash->page_size;
- 
- 	if (info->addr_width)
- 		flash->addr_width = info->addr_width;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0015-ACPI-Do-cpufreq-clamping-for-throttling-per-package-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0015-ACPI-Do-cpufreq-clamping-for-throttling-per-package-.patch
deleted file mode 100644
index 5a9fe06..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0015-ACPI-Do-cpufreq-clamping-for-throttling-per-package-.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 74dd093eb7fe9227cbcf62d0d9467d679a46982b Mon Sep 17 00:00:00 2001
-From: Andi Kleen <andi at firstfloor.org>
-Date: Mon, 6 Feb 2012 08:17:11 -0800
-Subject: [PATCH 15/60] ACPI: Do cpufreq clamping for throttling per package
- v2
-
-commit 2815ab92ba3ab27556212cc306288dc95692824b upstream.
-
-On Intel CPUs the processor typically uses the highest frequency
-set by any logical CPU. When the system overheats
-Linux first forces the frequency to the lowest available one
-to lower the temperature.
-
-However this was done only per logical CPU, which means all
-logical CPUs in a package would need to go through this before
-the frequency is actually lowered.
-
-Worse this delay actually prevents real throttling, because
-the real throttle code only proceeds when the lowest frequency
-is already reached.
-
-So when a throttle event happens force the lowest frequency
-for all CPUs in the package where it happened. The per CPU
-state is now kept per package, not per logical CPU. An alternative
-would be to do it per cpufreq unit, but since we want to bring
-down the temperature of the complete chip it's better
-to do it for all.
-
-In principle it may even make sense to do it for all CPUs,
-but I kept it on the package for now.
-
-With this change the frequency is actually lowered, which
-in terms also allows real throttling to proceed.
-
-I also removed an unnecessary per cpu variable initialization.
-
-v2: Fix package mapping
-
-Signed-off-by: Andi Kleen <ak at linux.intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/acpi/processor_thermal.c |   45 +++++++++++++++++++++++++++++++-------
- 1 file changed, 37 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/acpi/processor_thermal.c b/drivers/acpi/processor_thermal.c
-index 870550d..4da7d9d 100644
---- a/drivers/acpi/processor_thermal.c
-+++ b/drivers/acpi/processor_thermal.c
-@@ -58,6 +58,27 @@ ACPI_MODULE_NAME("processor_thermal");
- static DEFINE_PER_CPU(unsigned int, cpufreq_thermal_reduction_pctg);
- static unsigned int acpi_thermal_cpufreq_is_init = 0;
- 
-+#define reduction_pctg(cpu) \
-+	per_cpu(cpufreq_thermal_reduction_pctg, phys_package_first_cpu(cpu))
-+
-+/*
-+ * Emulate "per package data" using per cpu data (which should really be
-+ * provided elsewhere)
-+ *
-+ * Note we can lose a CPU on cpu hotunplug, in this case we forget the state
-+ * temporarily. Fortunately that's not a big issue here (I hope)
-+ */
-+static int phys_package_first_cpu(int cpu)
-+{
-+	int i;
-+	int id = topology_physical_package_id(cpu);
-+
-+	for_each_online_cpu(i)
-+		if (topology_physical_package_id(i) == id)
-+			return i;
-+	return 0;
-+}
-+
- static int cpu_has_cpufreq(unsigned int cpu)
- {
- 	struct cpufreq_policy policy;
-@@ -77,7 +98,7 @@ static int acpi_thermal_cpufreq_notifier(struct notifier_block *nb,
- 
- 	max_freq = (
- 	    policy->cpuinfo.max_freq *
--	    (100 - per_cpu(cpufreq_thermal_reduction_pctg, policy->cpu) * 20)
-+	    (100 - reduction_pctg(policy->cpu) * 20)
- 	) / 100;
- 
- 	cpufreq_verify_within_limits(policy, 0, max_freq);
-@@ -103,16 +124,28 @@ static int cpufreq_get_cur_state(unsigned int cpu)
- 	if (!cpu_has_cpufreq(cpu))
- 		return 0;
- 
--	return per_cpu(cpufreq_thermal_reduction_pctg, cpu);
-+	return reduction_pctg(cpu);
- }
- 
- static int cpufreq_set_cur_state(unsigned int cpu, int state)
- {
-+	int i;
-+
- 	if (!cpu_has_cpufreq(cpu))
- 		return 0;
- 
--	per_cpu(cpufreq_thermal_reduction_pctg, cpu) = state;
--	cpufreq_update_policy(cpu);
-+	reduction_pctg(cpu) = state;
-+
-+	/*
-+	 * Update all the CPUs in the same package because they all
-+	 * contribute to the temperature and often share the same
-+	 * frequency.
-+	 */
-+	for_each_online_cpu(i) {
-+		if (topology_physical_package_id(i) ==
-+		    topology_physical_package_id(cpu))
-+			cpufreq_update_policy(i);
-+	}
- 	return 0;
- }
- 
-@@ -120,10 +153,6 @@ void acpi_thermal_cpufreq_init(void)
- {
- 	int i;
- 
--	for (i = 0; i < nr_cpu_ids; i++)
--		if (cpu_present(i))
--			per_cpu(cpufreq_thermal_reduction_pctg, i) = 0;
--
- 	i = cpufreq_register_notifier(&acpi_thermal_cpufreq_notifier_block,
- 				      CPUFREQ_POLICY_NOTIFIER);
- 	if (!i)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0016-PNPACPI-Fix-device-ref-leaking-in-acpi_pnp_match.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0016-PNPACPI-Fix-device-ref-leaking-in-acpi_pnp_match.patch
deleted file mode 100644
index 3e12d94..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0016-PNPACPI-Fix-device-ref-leaking-in-acpi_pnp_match.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 2d081f28eff72e6dec19f1e720a03ee656e93902 Mon Sep 17 00:00:00 2001
-From: Yinghai Lu <yinghai at kernel.org>
-Date: Sat, 3 Mar 2012 13:29:20 -0800
-Subject: [PATCH 16/60] PNPACPI: Fix device ref leaking in acpi_pnp_match
-
-commit 89e96ada572fb216e582dbe3f64e1a6939a37f74 upstream.
-
-During testing pci root bus removal, found some root bus bridge is not freed.
-If booting with pnpacpi=off, those hostbridge could be freed without problem.
-It turns out that some devices reference are not released during acpi_pnp_match.
-that match should not hold one device ref during every calling.
-Add pu_device calling before returning.
-
-Signed-off-by: Yinghai Lu <yinghai at kernel.org>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/pnp/pnpacpi/core.c |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/pnp/pnpacpi/core.c b/drivers/pnp/pnpacpi/core.c
-index b00c176..d21e8f5 100644
---- a/drivers/pnp/pnpacpi/core.c
-+++ b/drivers/pnp/pnpacpi/core.c
-@@ -321,9 +321,14 @@ static int __init acpi_pnp_match(struct device *dev, void *_pnp)
- {
- 	struct acpi_device *acpi = to_acpi_device(dev);
- 	struct pnp_dev *pnp = _pnp;
-+	struct device *physical_device;
-+
-+	physical_device = acpi_get_physical_device(acpi->handle);
-+	if (physical_device)
-+		put_device(physical_device);
- 
- 	/* true means it matched */
--	return !acpi_get_physical_device(acpi->handle)
-+	return !physical_device
- 	    && compare_pnp_id(pnp->id, acpi_device_hid(acpi));
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch
deleted file mode 100644
index 05e05f3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 3dc8e6e70444a964715bc72938d2a1f5330a0aff Mon Sep 17 00:00:00 2001
-From: Julian Anastasov <ja at ssi.bg>
-Date: Thu, 23 Feb 2012 22:40:43 +0200
-Subject: [PATCH 17/60] ACPICA: Fix regression in FADT revision checks
-
-commit 3e80acd1af40fcd91a200b0416a7616b20c5d647 upstream.
-
-	commit 64b3db22c04586997ab4be46dd5a5b99f8a2d390 (2.6.39),
-"Remove use of unreliable FADT revision field" causes regression
-for old P4 systems because now cst_control and other fields are
-not reset to 0.
-
-	The effect is that acpi_processor_power_init will notice
-cst_control != 0 and a write to CST_CNT register is performed
-that should not happen. As result, the system oopses after the
-"No _CST, giving up" message, sometimes in acpi_ns_internalize_name,
-sometimes in acpi_ns_get_type, usually at random places. May be
-during migration to CPU 1 in acpi_processor_get_throttling.
-
-	Every one of these settings help to avoid this problem:
- - acpi=off
- - processor.nocst=1
- - maxcpus=1
-
-	The fix is to update acpi_gbl_FADT.header.length after
-the original value is used to check for old revisions.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=42700
-https://bugzilla.redhat.com/show_bug.cgi?id=727865
-
-Signed-off-by: Julian Anastasov <ja at ssi.bg>
-Acked-by: Bob Moore <robert.moore at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Cc: Josh Boyer <jwboyer at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/acpi/acpica/tbfadt.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/acpi/acpica/tbfadt.c b/drivers/acpi/acpica/tbfadt.c
-index 6f5588e..4c531b4 100644
---- a/drivers/acpi/acpica/tbfadt.c
-+++ b/drivers/acpi/acpica/tbfadt.c
-@@ -350,10 +350,6 @@ static void acpi_tb_convert_fadt(void)
- 	u32 address32;
- 	u32 i;
- 
--	/* Update the local FADT table header length */
--
--	acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
--
- 	/*
- 	 * Expand the 32-bit FACS and DSDT addresses to 64-bit as necessary.
- 	 * Later code will always use the X 64-bit field. Also, check for an
-@@ -395,6 +391,10 @@ static void acpi_tb_convert_fadt(void)
- 		acpi_gbl_FADT.boot_flags = 0;
- 	}
- 
-+	/* Update the local FADT table header length */
-+
-+	acpi_gbl_FADT.header.length = sizeof(struct acpi_table_fadt);
-+
- 	/*
- 	 * Expand the ACPI 1.0 32-bit addresses to the ACPI 2.0 64-bit "X"
- 	 * generic address structures as necessary. Later code will always use
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0018-modpost-fix-ALL_INIT_DATA_SECTIONS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0018-modpost-fix-ALL_INIT_DATA_SECTIONS.patch
deleted file mode 100644
index 7bd2cc2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0018-modpost-fix-ALL_INIT_DATA_SECTIONS.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 3d588be49327372d7c61bcf5e1c691031ecee200 Mon Sep 17 00:00:00 2001
-From: Jan Beulich <JBeulich at suse.com>
-Date: Thu, 8 Mar 2012 09:41:25 +0000
-Subject: [PATCH 18/60] modpost: fix ALL_INIT_DATA_SECTIONS
-
-commit 9aaf440f8fabcebf9ea79a62ccf4c212e6544b49 upstream.
-
-This was lacking a comma between two supposed to be separate strings.
-
-Signed-off-by: Jan Beulich <jbeulich at suse.com>
-Signed-off-by: Michal Marek <mmarek at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- scripts/mod/modpost.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index 2bd594e..159b4cc 100644
---- a/scripts/mod/modpost.c
-+++ b/scripts/mod/modpost.c
-@@ -849,7 +849,7 @@ static void check_section(const char *modname, struct elf_info *elf,
- 
- #define ALL_INIT_DATA_SECTIONS \
- 	".init.setup$", ".init.rodata$", \
--	".devinit.rodata$", ".cpuinit.rodata$", ".meminit.rodata$" \
-+	".devinit.rodata$", ".cpuinit.rodata$", ".meminit.rodata$", \
- 	".init.data$", ".devinit.data$", ".cpuinit.data$", ".meminit.data$"
- #define ALL_EXIT_DATA_SECTIONS \
- 	".exit.data$", ".devexit.data$", ".cpuexit.data$", ".memexit.data$"
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0019-genirq-Adjust-irq-thread-affinity-on-IRQ_SET_MASK_OK.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0019-genirq-Adjust-irq-thread-affinity-on-IRQ_SET_MASK_OK.patch
deleted file mode 100644
index 1bd3149..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0019-genirq-Adjust-irq-thread-affinity-on-IRQ_SET_MASK_OK.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a62ad6cb0e0456a184ba7678d456a14cd33dfeea Mon Sep 17 00:00:00 2001
-From: Jiang Liu <liuj97 at gmail.com>
-Date: Fri, 30 Mar 2012 23:11:33 +0800
-Subject: [PATCH 19/60] genirq: Adjust irq thread affinity on
- IRQ_SET_MASK_OK_NOCOPY return value
-
-commit f5cb92ac82d06cb583c1f66666314c5c0a4d7913 upstream.
-
-irq_move_masked_irq() checks the return code of
-chip->irq_set_affinity() only for 0, but IRQ_SET_MASK_OK_NOCOPY is
-also a valid return code, which is there to avoid a redundant copy of
-the cpumask. But in case of IRQ_SET_MASK_OK_NOCOPY we not only avoid
-the redundant copy, we also fail to adjust the thread affinity of an
-eventually threaded interrupt handler.
-
-Handle IRQ_SET_MASK_OK (==0) and IRQ_SET_MASK_OK_NOCOPY(==1) return
-values correctly by checking the valid return values seperately.
-
-Signed-off-by: Jiang Liu <jiang.liu at huawei.com>
-Cc: Jiang Liu <liuj97 at gmail.com>
-Cc: Keping Chen <chenkeping at huawei.com>
-Link: http://lkml.kernel.org/r/1333120296-13563-2-git-send-email-jiang.liu@huawei.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/irq/migration.c |   10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/kernel/irq/migration.c b/kernel/irq/migration.c
-index 4742090..c3c8975 100644
---- a/kernel/irq/migration.c
-+++ b/kernel/irq/migration.c
-@@ -43,12 +43,16 @@ void irq_move_masked_irq(struct irq_data *idata)
- 	 * masking the irqs.
- 	 */
- 	if (likely(cpumask_any_and(desc->pending_mask, cpu_online_mask)
--		   < nr_cpu_ids))
--		if (!chip->irq_set_affinity(&desc->irq_data,
--					    desc->pending_mask, false)) {
-+		   < nr_cpu_ids)) {
-+		int ret = chip->irq_set_affinity(&desc->irq_data,
-+						 desc->pending_mask, false);
-+		switch (ret) {
-+		case IRQ_SET_MASK_OK:
- 			cpumask_copy(desc->irq_data.affinity, desc->pending_mask);
-+		case IRQ_SET_MASK_OK_NOCOPY:
- 			irq_set_thread_affinity(desc);
- 		}
-+	}
- 
- 	cpumask_clear(desc->pending_mask);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0020-tracing-Fix-ftrace-stack-trace-entries.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0020-tracing-Fix-ftrace-stack-trace-entries.patch
deleted file mode 100644
index 00288c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0020-tracing-Fix-ftrace-stack-trace-entries.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From fea2076685048df406c2fc4d6542837a4306c6fd Mon Sep 17 00:00:00 2001
-From: Wolfgang Mauerer <wolfgang.mauerer at siemens.com>
-Date: Thu, 22 Mar 2012 11:18:20 +0100
-Subject: [PATCH 20/60] tracing: Fix ftrace stack trace entries
-
-commit 01de982abf8c9e10fc3089e10585cd2cc914bdab upstream.
-
-8 hex characters tell only half the tale for 64 bit CPUs,
-so use the appropriate length.
-
-Link: http://lkml.kernel.org/r/1332411501-8059-2-git-send-email-wolfgang.mauerer@siemens.com
-
-Signed-off-by: Wolfgang Mauerer <wolfgang.mauerer at siemens.com>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/trace/trace_entries.h |   16 ++++++++++++----
- kernel/trace/trace_export.c  |    2 +-
- 2 files changed, 13 insertions(+), 5 deletions(-)
-
-diff --git a/kernel/trace/trace_entries.h b/kernel/trace/trace_entries.h
-index 9336590..205dcac 100644
---- a/kernel/trace/trace_entries.h
-+++ b/kernel/trace/trace_entries.h
-@@ -156,6 +156,12 @@ FTRACE_ENTRY_DUP(wakeup, ctx_switch_entry,
- 
- #define FTRACE_STACK_ENTRIES	8
- 
-+#ifndef CONFIG_64BIT
-+# define IP_FMT "%08lx"
-+#else
-+# define IP_FMT "%016lx"
-+#endif
-+
- FTRACE_ENTRY(kernel_stack, stack_entry,
- 
- 	TRACE_STACK,
-@@ -165,8 +171,9 @@ FTRACE_ENTRY(kernel_stack, stack_entry,
- 		__dynamic_array(unsigned long,	caller	)
- 	),
- 
--	F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n"
--		 "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n",
-+	F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
-+		 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
-+		 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n",
- 		 __entry->caller[0], __entry->caller[1], __entry->caller[2],
- 		 __entry->caller[3], __entry->caller[4], __entry->caller[5],
- 		 __entry->caller[6], __entry->caller[7])
-@@ -181,8 +188,9 @@ FTRACE_ENTRY(user_stack, userstack_entry,
- 		__array(	unsigned long,	caller, FTRACE_STACK_ENTRIES	)
- 	),
- 
--	F_printk("\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n"
--		 "\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n\t=> (%08lx)\n",
-+	F_printk("\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
-+		 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n"
-+		 "\t=> (" IP_FMT ")\n\t=> (" IP_FMT ")\n",
- 		 __entry->caller[0], __entry->caller[1], __entry->caller[2],
- 		 __entry->caller[3], __entry->caller[4], __entry->caller[5],
- 		 __entry->caller[6], __entry->caller[7])
-diff --git a/kernel/trace/trace_export.c b/kernel/trace/trace_export.c
-index bbeec31..ad4000c 100644
---- a/kernel/trace/trace_export.c
-+++ b/kernel/trace/trace_export.c
-@@ -150,7 +150,7 @@ ftrace_define_fields_##name(struct ftrace_event_call *event_call)	\
- #define __dynamic_array(type, item)
- 
- #undef F_printk
--#define F_printk(fmt, args...) #fmt ", "  __stringify(args)
-+#define F_printk(fmt, args...) __stringify(fmt) ", "  __stringify(args)
- 
- #undef FTRACE_ENTRY
- #define FTRACE_ENTRY(call, struct_name, etype, tstruct, print)		\
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0021-tracing-Fix-ent_size-in-trace-output.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0021-tracing-Fix-ent_size-in-trace-output.patch
deleted file mode 100644
index d830db2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0021-tracing-Fix-ent_size-in-trace-output.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 23cc657edadf5b126485d90d9a6178478ccc7a9d Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <srostedt at redhat.com>
-Date: Tue, 27 Mar 2012 10:43:28 -0400
-Subject: [PATCH 21/60] tracing: Fix ent_size in trace output
-
-commit 12b5da349a8b94c9dbc3430a6bc42eabd9eaf50b upstream.
-
-When reading the trace file, the records of each of the per_cpu buffers
-are examined to find the next event to print out. At the point of looking
-at the event, the size of the event is recorded. But if the first event is
-chosen, the other events in the other CPU buffers will reset the event size
-that is stored in the iterator descriptor, causing the event size passed to
-the output functions to be incorrect.
-
-In most cases this is not a problem, but for the case of stack traces, it
-is. With the change to the stack tracing to record a dynamic number of
-back traces, the output depends on the size of the entry instead of the
-fixed 8 back traces. When the entry size is not correct, the back traces
-would not be fully printed.
-
-Note, reading from the per-cpu trace files were not affected.
-
-Reported-by: Thomas Gleixner <tglx at linutronix.de>
-Tested-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/trace/trace.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index f2bd275..697e49d 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -1642,6 +1642,7 @@ __find_next_entry(struct trace_iterator *iter, int *ent_cpu,
- 	int cpu_file = iter->cpu_file;
- 	u64 next_ts = 0, ts;
- 	int next_cpu = -1;
-+	int next_size = 0;
- 	int cpu;
- 
- 	/*
-@@ -1673,9 +1674,12 @@ __find_next_entry(struct trace_iterator *iter, int *ent_cpu,
- 			next_cpu = cpu;
- 			next_ts = ts;
- 			next_lost = lost_events;
-+			next_size = iter->ent_size;
- 		}
- 	}
- 
-+	iter->ent_size = next_size;
-+
- 	if (ent_cpu)
- 		*ent_cpu = next_cpu;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0022-m68k-mac-Add-missing-platform-check-before-registeri.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0022-m68k-mac-Add-missing-platform-check-before-registeri.patch
deleted file mode 100644
index 05958eb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0022-m68k-mac-Add-missing-platform-check-before-registeri.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From fced6a21a4444111945939b57d4f274dcb9d0cdc Mon Sep 17 00:00:00 2001
-From: Geert Uytterhoeven <geert at linux-m68k.org>
-Date: Sun, 18 Mar 2012 13:21:38 +0100
-Subject: [PATCH 22/60] m68k/mac: Add missing platform check before
- registering platform devices
-
-commit 6cfeba53911d6d2f17ebbd1246893557d5ff5aeb upstream.
-
-On multi-platform kernels, the Mac platform devices should be registered
-when running on Mac only. Else it may crash later.
-
-Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/m68k/mac/config.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/m68k/mac/config.c b/arch/m68k/mac/config.c
-index c247de0..1918d76 100644
---- a/arch/m68k/mac/config.c
-+++ b/arch/m68k/mac/config.c
-@@ -950,6 +950,9 @@ int __init mac_platform_init(void)
- {
- 	u8 *swim_base;
- 
-+	if (!MACH_IS_MAC)
-+		return -ENODEV;
-+
- 	/*
- 	 * Serial devices
- 	 */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0023-mac80211-fix-possible-tid_rx-reorder_timer-use-after.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0023-mac80211-fix-possible-tid_rx-reorder_timer-use-after.patch
deleted file mode 100644
index 52d26c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0023-mac80211-fix-possible-tid_rx-reorder_timer-use-after.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 0cf704acf102ad1855f06ce26e56e34ebd63fc3c Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Mon, 19 Mar 2012 16:00:26 +0100
-Subject: [PATCH 23/60] mac80211: fix possible tid_rx->reorder_timer use after
- free
-
-commit d72308bff5c2fa207949a5925b020bce74495e33 upstream.
-
-Is possible that we will arm the tid_rx->reorder_timer after
-del_timer_sync() in ___ieee80211_stop_rx_ba_session(). We need to stop
-timer after RCU grace period finish, so move it to
-ieee80211_free_tid_rx(). Timer will not be armed again, as
-rcu_dereference(sta->ampdu_mlme.tid_rx[tid]) will return NULL.
-
-Debug object detected problem with the following warning:
-ODEBUG: free active (active state 0) object type: timer_list hint: sta_rx_agg_reorder_timer_expired+0x0/0xf0 [mac80211]
-
-Bug report (with all warning messages):
-https://bugzilla.redhat.com/show_bug.cgi?id=804007
-
-Reported-by: "jan p. springer" <jsd at igroup.org>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/agg-rx.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
-index 41c2310..aea1559 100644
---- a/net/mac80211/agg-rx.c
-+++ b/net/mac80211/agg-rx.c
-@@ -49,6 +49,8 @@ static void ieee80211_free_tid_rx(struct rcu_head *h)
- 		container_of(h, struct tid_ampdu_rx, rcu_head);
- 	int i;
- 
-+	del_timer_sync(&tid_rx->reorder_timer);
-+
- 	for (i = 0; i < tid_rx->buf_size; i++)
- 		dev_kfree_skb(tid_rx->reorder_buf[i]);
- 	kfree(tid_rx->reorder_buf);
-@@ -88,7 +90,6 @@ void ___ieee80211_stop_rx_ba_session(struct sta_info *sta, u16 tid,
- 				     tid, 0, reason);
- 
- 	del_timer_sync(&tid_rx->session_timer);
--	del_timer_sync(&tid_rx->reorder_timer);
- 
- 	call_rcu(&tid_rx->rcu_head, ieee80211_free_tid_rx);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0024-rtlwifi-rtl8192ce-rtl8192cu-rtl8192de-Fix-low-gain-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0024-rtlwifi-rtl8192ce-rtl8192cu-rtl8192de-Fix-low-gain-s.patch
deleted file mode 100644
index a6dfc46..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0024-rtlwifi-rtl8192ce-rtl8192cu-rtl8192de-Fix-low-gain-s.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2e80dec6dad3b037b7b6499048c139436c6f0710 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Mon, 26 Mar 2012 09:59:48 -0500
-Subject: [PATCH 24/60] rtlwifi: rtl8192ce: rtl8192cu: rtl8192de: Fix low-gain
- setting when scanning
-
-commit 643c61e119459e9d750087b7b34be94491efebf9 upstream.
-
-In https://bugzilla.redhat.com/show_bug.cgi?id=770207, slowdowns of driver
-rtl8192ce are reported. One fix (commit a9b89e2) has already been applied,
-and it helped, but the maximum RX speed would still drop to 1 Mbps. As in
-the previous fix, the initial gain was determined to be the problem; however,
-the problem arises from a setting of the gain when scans are started.
-
-Driver rtl8192de also has the same code structure - this one is fixed as well.
-
-Reported-and-Tested-by: Ivan Pesin <ivan.pesin at gmail.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c |    2 +-
- drivers/net/wireless/rtlwifi/rtl8192de/phy.c       |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
-index 1f07558..f20678a 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192c/phy_common.c
-@@ -1968,7 +1968,7 @@ void rtl92c_phy_set_io(struct ieee80211_hw *hw)
- 		break;
- 	case IO_CMD_PAUSE_DM_BY_SCAN:
- 		rtlphy->initgain_backup.xaagccore1 = dm_digtable.cur_igvalue;
--		dm_digtable.cur_igvalue = 0x17;
-+		dm_digtable.cur_igvalue = 0x37;
- 		rtl92c_dm_write_dig(hw);
- 		break;
- 	default:
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
-index 0883349..2cf4c5f 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
-@@ -3192,7 +3192,7 @@ static void rtl92d_phy_set_io(struct ieee80211_hw *hw)
- 		break;
- 	case IO_CMD_PAUSE_DM_BY_SCAN:
- 		rtlphy->initgain_backup.xaagccore1 = de_digtable.cur_igvalue;
--		de_digtable.cur_igvalue = 0x17;
-+		de_digtable.cur_igvalue = 0x37;
- 		rtl92d_dm_write_dig(hw);
- 		break;
- 	default:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0025-drm-Validate-requested-virtual-size-against-allocate.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0025-drm-Validate-requested-virtual-size-against-allocate.patch
deleted file mode 100644
index f38c6fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0025-drm-Validate-requested-virtual-size-against-allocate.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 604965714e342993a12bd7aff566b9d4dd531fe9 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Mon, 26 Mar 2012 21:15:53 +0100
-Subject: [PATCH 25/60] drm: Validate requested virtual size against allocated
- fb size
-
-commit 62fb376e214d3c1bfdf6fbb77dac162f6da04d7e upstream.
-
-mplayer -vo fbdev tries to create a screen that is twice as tall as the
-allocated framebuffer for "doublebuffering". By default, and all in-tree
-users, only sufficient memory is allocated and mapped to satisfy the
-smallest framebuffer and the virtual size is no larger than the actual.
-For these users, we should therefore reject any userspace request to
-create a screen that requires a buffer larger than the framebuffer
-originally allocated.
-
-References: https://bugs.freedesktop.org/show_bug.cgi?id=38138
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/drm_fb_helper.c |    8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/drm_fb_helper.c b/drivers/gpu/drm/drm_fb_helper.c
-index 80fe39d..dd58373 100644
---- a/drivers/gpu/drm/drm_fb_helper.c
-+++ b/drivers/gpu/drm/drm_fb_helper.c
-@@ -610,9 +610,13 @@ int drm_fb_helper_check_var(struct fb_var_screeninfo *var,
- 		return -EINVAL;
- 
- 	/* Need to resize the fb object !!! */
--	if (var->bits_per_pixel > fb->bits_per_pixel || var->xres > fb->width || var->yres > fb->height) {
-+	if (var->bits_per_pixel > fb->bits_per_pixel ||
-+	    var->xres > fb->width || var->yres > fb->height ||
-+	    var->xres_virtual > fb->width || var->yres_virtual > fb->height) {
- 		DRM_DEBUG("fb userspace requested width/height/bpp is greater than current fb "
--			  "object %dx%d-%d > %dx%d-%d\n", var->xres, var->yres, var->bits_per_pixel,
-+			  "request %dx%d-%d (virtual %dx%d) > %dx%d-%d\n",
-+			  var->xres, var->yres, var->bits_per_pixel,
-+			  var->xres_virtual, var->yres_virtual,
- 			  fb->width, fb->height, fb->bits_per_pixel);
- 		return -EINVAL;
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0026-drm-radeon-kms-fix-fans-after-resume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0026-drm-radeon-kms-fix-fans-after-resume.patch
deleted file mode 100644
index 44a92d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0026-drm-radeon-kms-fix-fans-after-resume.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From bfb12525292fbd7a9837de23fc1e8dda589b43a1 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Thu, 29 Mar 2012 19:04:08 -0400
-Subject: [PATCH 26/60] drm/radeon/kms: fix fans after resume
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 402976fe51b2d1a58a29ba06fa1ca5ace3a4cdcd upstream.
-
-On pre-R600 asics, the SpeedFanControl table is not
-executed as part of ASIC_Init as it is on newer asics.
-
-Fixes:
-https://bugzilla.kernel.org/show_bug.cgi?id=29412
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/atom.c |   15 ++++++++++++++-
- drivers/gpu/drm/radeon/atom.h |    1 +
- 2 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/radeon/atom.c b/drivers/gpu/drm/radeon/atom.c
-index 14cc88a..3a05cdb 100644
---- a/drivers/gpu/drm/radeon/atom.c
-+++ b/drivers/gpu/drm/radeon/atom.c
-@@ -1304,8 +1304,11 @@ struct atom_context *atom_parse(struct card_info *card, void *bios)
- 
- int atom_asic_init(struct atom_context *ctx)
- {
-+	struct radeon_device *rdev = ctx->card->dev->dev_private;
- 	int hwi = CU16(ctx->data_table + ATOM_DATA_FWI_PTR);
- 	uint32_t ps[16];
-+	int ret;
-+
- 	memset(ps, 0, 64);
- 
- 	ps[0] = cpu_to_le32(CU32(hwi + ATOM_FWI_DEFSCLK_PTR));
-@@ -1315,7 +1318,17 @@ int atom_asic_init(struct atom_context *ctx)
- 
- 	if (!CU16(ctx->cmd_table + 4 + 2 * ATOM_CMD_INIT))
- 		return 1;
--	return atom_execute_table(ctx, ATOM_CMD_INIT, ps);
-+	ret = atom_execute_table(ctx, ATOM_CMD_INIT, ps);
-+	if (ret)
-+		return ret;
-+
-+	memset(ps, 0, 64);
-+
-+	if (rdev->family < CHIP_R600) {
-+		if (CU16(ctx->cmd_table + 4 + 2 * ATOM_CMD_SPDFANCNTL))
-+			atom_execute_table(ctx, ATOM_CMD_SPDFANCNTL, ps);
-+	}
-+	return ret;
- }
- 
- void atom_destroy(struct atom_context *ctx)
-diff --git a/drivers/gpu/drm/radeon/atom.h b/drivers/gpu/drm/radeon/atom.h
-index 93cfe20..25fea63 100644
---- a/drivers/gpu/drm/radeon/atom.h
-+++ b/drivers/gpu/drm/radeon/atom.h
-@@ -44,6 +44,7 @@
- #define ATOM_CMD_SETSCLK	0x0A
- #define ATOM_CMD_SETMCLK	0x0B
- #define ATOM_CMD_SETPCLK	0x0C
-+#define ATOM_CMD_SPDFANCNTL	0x39
- 
- #define ATOM_DATA_FWI_PTR	0xC
- #define ATOM_DATA_IIO_PTR	0x32
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0027-drm-i915-no-lvds-quirk-on-MSI-DC500.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0027-drm-i915-no-lvds-quirk-on-MSI-DC500.patch
deleted file mode 100644
index 2fc0804..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0027-drm-i915-no-lvds-quirk-on-MSI-DC500.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 17729a991754faddaeec8880db9881a5bc4fab5e Mon Sep 17 00:00:00 2001
-From: Anisse Astier <anisse at astier.eu>
-Date: Wed, 7 Mar 2012 18:36:35 +0100
-Subject: [PATCH 27/60] drm/i915: no-lvds quirk on MSI DC500
-
-commit 97effadb65ed08809e1720c8d3ee80b73a93665c upstream.
-
-This hardware doesn't have an LVDS, it's a desktop box. Fix incorrect
-LVDS detection.
-
-Signed-off-by: Anisse Astier <anisse at astier.eu>
-Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_lvds.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index b83f745..583c2d0 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -731,6 +731,14 @@ static const struct dmi_system_id intel_no_lvds[] = {
- 			DMI_MATCH(DMI_BOARD_NAME, "AT5NM10T-I"),
- 		},
- 	},
-+	{
-+		.callback = intel_no_lvds_dmi_callback,
-+		.ident = "MSI Wind Box DC500",
-+		.matches = {
-+			DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
-+			DMI_MATCH(DMI_BOARD_NAME, "MS-7469"),
-+		},
-+	},
- 
- 	{ }	/* terminating entry */
- };
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0028-drm-i915-Sanitize-BIOS-debugging-bits-from-PIPECONF.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0028-drm-i915-Sanitize-BIOS-debugging-bits-from-PIPECONF.patch
deleted file mode 100644
index c70337a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0028-drm-i915-Sanitize-BIOS-debugging-bits-from-PIPECONF.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 2bb2e47c60f77b768affa48bf847526054143d81 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Thu, 22 Mar 2012 15:00:50 +0000
-Subject: [PATCH 28/60] drm/i915: Sanitize BIOS debugging bits from PIPECONF
-
-commit f47166d2b0001fcb752b40c5a2d4db986dfbea68 upstream.
-
-Quoting the BSpec from time immemorial:
-
-  PIPEACONF, bits 28:27: Frame Start Delay (Debug)
-
-  Used to delay the frame start signal that is sent to the display planes.
-  Care must be taken to insure that there are enough lines during VBLANK
-  to support this setting.
-
-An instance of the BIOS leaving these bits set was found in the wild,
-where it caused our modesetting to go all squiffy and skewiff.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47271
-Reported-and-tested-by: Eva Wang <evawang at linpus.com>
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43012
-Reported-and-tested-by: Carl Richell <carl at system76.com>
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_reg.h      |    1 +
- drivers/gpu/drm/i915/intel_display.c |    6 ++++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 1608d2a..2f99fd4 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -2312,6 +2312,7 @@
- #define   PIPECONF_DISABLE	0
- #define   PIPECONF_DOUBLE_WIDE	(1<<30)
- #define   I965_PIPECONF_ACTIVE	(1<<30)
-+#define   PIPECONF_FRAME_START_DELAY_MASK (3<<27)
- #define   PIPECONF_SINGLE_WIDE	0
- #define   PIPECONF_PIPE_UNLOCKED 0
- #define   PIPECONF_PIPE_LOCKED	(1<<25)
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 9ec9755..9011f48 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -7278,6 +7278,12 @@ static void intel_sanitize_modesetting(struct drm_device *dev,
- 	struct drm_i915_private *dev_priv = dev->dev_private;
- 	u32 reg, val;
- 
-+	/* Clear any frame start delays used for debugging left by the BIOS */
-+	for_each_pipe(pipe) {
-+		reg = PIPECONF(pipe);
-+		I915_WRITE(reg, I915_READ(reg) & ~PIPECONF_FRAME_START_DELAY_MASK);
-+	}
-+
- 	if (HAS_PCH_SPLIT(dev))
- 		return;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0029-drm-i915-Add-lock-on-drm_helper_resume_force_mode.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0029-drm-i915-Add-lock-on-drm_helper_resume_force_mode.patch
deleted file mode 100644
index 72dd824..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0029-drm-i915-Add-lock-on-drm_helper_resume_force_mode.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4ab7c0a9a8f866f035d64d0b71dc7cad9bf59f51 Mon Sep 17 00:00:00 2001
-From: Sean Paul <seanpaul at chromium.org>
-Date: Fri, 23 Mar 2012 08:52:58 -0400
-Subject: [PATCH 29/60] drm/i915: Add lock on drm_helper_resume_force_mode
-
-commit 927a2f119e8235238a2fc64871051b16c9bdae75 upstream.
-
-i915_drm_thaw was not locking the mode_config lock when calling
-drm_helper_resume_force_mode. When there were multiple wake sources,
-this caused FDI training failure on SNB which in turn corrupted the
-display.
-
-Signed-off-by: Sean Paul <seanpaul at chromium.org>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_drv.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index d04597d..e52b705 100644
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -508,7 +508,9 @@ static int i915_drm_thaw(struct drm_device *dev)
- 		drm_irq_install(dev);
- 
- 		/* Resume the modeset for every activated CRTC */
-+		mutex_lock(&dev->mode_config.mutex);
- 		drm_helper_resume_force_mode(dev);
-+		mutex_unlock(&dev->mode_config.mutex);
- 
- 		if (IS_IRONLAKE_M(dev))
- 			ironlake_enable_rc6(dev);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0030-drm-i915-quirk-away-broken-OpRegion-VBT.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0030-drm-i915-quirk-away-broken-OpRegion-VBT.patch
deleted file mode 100644
index de8ad51..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0030-drm-i915-quirk-away-broken-OpRegion-VBT.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 58767bacea3aca7d03afa92650f014213ef1681d Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sat, 24 Mar 2012 23:51:30 +0100
-Subject: [PATCH 30/60] drm/i915: quirk away broken OpRegion VBT
-
-commit 25e341cfc33d94435472983825163e97fe370a6c upstream.
-
-Somehow the BIOS manages to screw things up when copying the VBT
-around, because the one we scrap from the VBIOS rom actually works.
-
-Tested-by: Markus Heinz <markus.heinz at uni-dortmund.de>
-Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=28812
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_bios.c |   23 ++++++++++++++++++++++-
- 1 file changed, 22 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_bios.c b/drivers/gpu/drm/i915/intel_bios.c
-index 63880e2..22efb08 100644
---- a/drivers/gpu/drm/i915/intel_bios.c
-+++ b/drivers/gpu/drm/i915/intel_bios.c
-@@ -24,6 +24,7 @@
-  *    Eric Anholt <eric at anholt.net>
-  *
-  */
-+#include <linux/dmi.h>
- #include <drm/drm_dp_helper.h>
- #include "drmP.h"
- #include "drm.h"
-@@ -621,6 +622,26 @@ init_vbt_defaults(struct drm_i915_private *dev_priv)
- 	dev_priv->edp.bpp = 18;
- }
- 
-+static int __init intel_no_opregion_vbt_callback(const struct dmi_system_id *id)
-+{
-+	DRM_DEBUG_KMS("Falling back to manually reading VBT from "
-+		      "VBIOS ROM for %s\n",
-+		      id->ident);
-+	return 1;
-+}
-+
-+static const struct dmi_system_id intel_no_opregion_vbt[] = {
-+	{
-+		.callback = intel_no_opregion_vbt_callback,
-+		.ident = "ThinkCentre A57",
-+		.matches = {
-+			DMI_MATCH(DMI_SYS_VENDOR, "LENOVO"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "97027RG"),
-+		},
-+	},
-+	{ }
-+};
-+
- /**
-  * intel_parse_bios - find VBT and initialize settings from the BIOS
-  * @dev: DRM device
-@@ -641,7 +662,7 @@ intel_parse_bios(struct drm_device *dev)
- 	init_vbt_defaults(dev_priv);
- 
- 	/* XXX Should this validation be moved to intel_opregion.c? */
--	if (dev_priv->opregion.vbt) {
-+	if (!dmi_check_system(intel_no_opregion_vbt) && dev_priv->opregion.vbt) {
- 		struct vbt_header *vbt = dev_priv->opregion.vbt;
- 		if (memcmp(vbt->signature, "$VBT", 4) == 0) {
- 			DRM_DEBUG_KMS("Using VBT from OpRegion: %20s\n",
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0031-r8169-runtime-resume-before-shutdown.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0031-r8169-runtime-resume-before-shutdown.patch
deleted file mode 100644
index b246c48..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0031-r8169-runtime-resume-before-shutdown.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 5cc5bed22b5a987cd388292e64b2b4d473ddef10 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?fran=C3=A7ois=20romieu?= <romieu at fr.zoreil.com>
-Date: Tue, 6 Mar 2012 01:14:12 +0000
-Subject: [PATCH 31/60] r8169: runtime resume before shutdown.
-
-commit 2a15cd2ff488a9fdb55e5e34060f499853b27c77 upstream.
-
-With runtime PM, if the ethernet cable is disconnected, the device is
-transitioned to D3 state to conserve energy. If the system is shutdown
-in this state, any register accesses in rtl_shutdown are dropped on
-the floor. As the device was programmed by .runtime_suspend() to wake
-on link changes, it is thus brought back up as soon as the link recovers.
-
-Resuming every suspended device through the driver core would slow things
-down and it is not clear how many devices really need it now.
-
-Original report and D0 transition patch by Sameer Nanda. Patch has been
-changed to comply with advices by Rafael J. Wysocki and the PM folks.
-
-Reported-by: Sameer Nanda <snanda at chromium.org>
-Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
-Cc: Rafael J. Wysocki <rjw at sisk.pl>
-Cc: Hayes Wang <hayeswang at realtek.com>
-Cc: Alan Stern <stern at rowland.harvard.edu>
-Acked-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/realtek/r8169.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 0cf2351..697cae3 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -6194,6 +6194,9 @@ static void rtl_shutdown(struct pci_dev *pdev)
- {
- 	struct net_device *dev = pci_get_drvdata(pdev);
- 	struct rtl8169_private *tp = netdev_priv(dev);
-+	struct device *d = &pdev->dev;
-+
-+	pm_runtime_get_sync(d);
- 
- 	rtl8169_net_suspend(dev);
- 
-@@ -6215,6 +6218,8 @@ static void rtl_shutdown(struct pci_dev *pdev)
- 		pci_wake_from_d3(pdev, true);
- 		pci_set_power_state(pdev, PCI_D3hot);
- 	}
-+
-+	pm_runtime_put_noidle(d);
- }
- 
- static struct pci_driver rtl8169_pci_driver = {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0032-target-Fix-unsupported-WRITE_SAME-sense-payload.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0032-target-Fix-unsupported-WRITE_SAME-sense-payload.patch
deleted file mode 100644
index 40f2252..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0032-target-Fix-unsupported-WRITE_SAME-sense-payload.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a66bf3e98840599c67fd1d60563bb1aaa0c0622f Mon Sep 17 00:00:00 2001
-From: Martin Svec <martin.svec at zoner.cz>
-Date: Mon, 6 Feb 2012 22:13:25 -0800
-Subject: [PATCH 32/60] target: Fix unsupported WRITE_SAME sense payload
-
-commit 67236c44741e250199ccd77f1115568e68cf8848 upstream.
-
-This patch fixes a bug in target-core where unsupported WRITE_SAME ops
-from a target_check_write_same_discard() failure was incorrectly
-returning CHECK_CONDITION w/ TCM_INVALID_CDB_FIELD sense data.
-This was causing some clients to not properly fall back, so go ahead
-and use the correct TCM_UNSUPPORTED_SCSI_OPCODE sense for this case.
-
-Reported-by: Martin Svec <martin.svec at zoner.cz>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_transport.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index cdb774b..5660916 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -2666,7 +2666,7 @@ static int transport_generic_cmd_sequencer(
- 			cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB;
- 
- 			if (target_check_write_same_discard(&cdb[10], dev) < 0)
--				goto out_invalid_cdb_field;
-+				goto out_unsupported_cdb;
- 			if (!passthrough)
- 				cmd->execute_task = target_emulate_write_same;
- 			break;
-@@ -2949,7 +2949,7 @@ static int transport_generic_cmd_sequencer(
- 		cmd->se_cmd_flags |= SCF_SCSI_CONTROL_SG_IO_CDB;
- 
- 		if (target_check_write_same_discard(&cdb[1], dev) < 0)
--			goto out_invalid_cdb_field;
-+			goto out_unsupported_cdb;
- 		if (!passthrough)
- 			cmd->execute_task = target_emulate_write_same;
- 		break;
-@@ -2972,7 +2972,7 @@ static int transport_generic_cmd_sequencer(
- 		 * of byte 1 bit 3 UNMAP instead of original reserved field
- 		 */
- 		if (target_check_write_same_discard(&cdb[1], dev) < 0)
--			goto out_invalid_cdb_field;
-+			goto out_unsupported_cdb;
- 		if (!passthrough)
- 			cmd->execute_task = target_emulate_write_same;
- 		break;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0033-kgdb-debug_core-pass-the-breakpoint-struct-instead-o.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0033-kgdb-debug_core-pass-the-breakpoint-struct-instead-o.patch
deleted file mode 100644
index 310833f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0033-kgdb-debug_core-pass-the-breakpoint-struct-instead-o.patch
+++ /dev/null
@@ -1,180 +0,0 @@
-From 69214d0d1b5f2f3e05dee62617d28c7e9daccc80 Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Wed, 21 Mar 2012 10:17:03 -0500
-Subject: [PATCH 33/60] kgdb,debug_core: pass the breakpoint struct instead of
- address and memory
-
-commit 98b54aa1a2241b59372468bd1e9c2d207bdba54b upstream.
-
-There is extra state information that needs to be exposed in the
-kgdb_bpt structure for tracking how a breakpoint was installed.  The
-debug_core only uses the the probe_kernel_write() to install
-breakpoints, but this is not enough for all the archs.  Some arch such
-as x86 need to use text_poke() in order to install a breakpoint into a
-read only page.
-
-Passing the kgdb_bpt structure to kgdb_arch_set_breakpoint() and
-kgdb_arch_remove_breakpoint() allows other archs to set the type
-variable which indicates how the breakpoint was installed.
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/kgdb.h      |    4 ++--
- kernel/debug/debug_core.c |   53 ++++++++++++++++++++-------------------------
- 2 files changed, 26 insertions(+), 31 deletions(-)
-
-diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
-index fa39183..e5d689c 100644
---- a/include/linux/kgdb.h
-+++ b/include/linux/kgdb.h
-@@ -207,8 +207,8 @@ extern void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long pc);
- 
- /* Optional functions. */
- extern int kgdb_validate_break_address(unsigned long addr);
--extern int kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr);
--extern int kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle);
-+extern int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt);
-+extern int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt);
- 
- /**
-  *	kgdb_arch_late - Perform any architecture specific initalization.
-diff --git a/kernel/debug/debug_core.c b/kernel/debug/debug_core.c
-index 0d7c087..7fda904 100644
---- a/kernel/debug/debug_core.c
-+++ b/kernel/debug/debug_core.c
-@@ -157,37 +157,39 @@ early_param("nokgdbroundup", opt_nokgdbroundup);
-  * Weak aliases for breakpoint management,
-  * can be overriden by architectures when needed:
-  */
--int __weak kgdb_arch_set_breakpoint(unsigned long addr, char *saved_instr)
-+int __weak kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
- {
- 	int err;
- 
--	err = probe_kernel_read(saved_instr, (char *)addr, BREAK_INSTR_SIZE);
-+	err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr,
-+				BREAK_INSTR_SIZE);
- 	if (err)
- 		return err;
--
--	return probe_kernel_write((char *)addr, arch_kgdb_ops.gdb_bpt_instr,
--				  BREAK_INSTR_SIZE);
-+	err = probe_kernel_write((char *)bpt->bpt_addr,
-+				 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
-+	return err;
- }
- 
--int __weak kgdb_arch_remove_breakpoint(unsigned long addr, char *bundle)
-+int __weak kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt)
- {
--	return probe_kernel_write((char *)addr,
--				  (char *)bundle, BREAK_INSTR_SIZE);
-+	return probe_kernel_write((char *)bpt->bpt_addr,
-+				  (char *)bpt->saved_instr, BREAK_INSTR_SIZE);
- }
- 
- int __weak kgdb_validate_break_address(unsigned long addr)
- {
--	char tmp_variable[BREAK_INSTR_SIZE];
-+	struct kgdb_bkpt tmp;
- 	int err;
--	/* Validate setting the breakpoint and then removing it.  In the
-+	/* Validate setting the breakpoint and then removing it.  If the
- 	 * remove fails, the kernel needs to emit a bad message because we
- 	 * are deep trouble not being able to put things back the way we
- 	 * found them.
- 	 */
--	err = kgdb_arch_set_breakpoint(addr, tmp_variable);
-+	tmp.bpt_addr = addr;
-+	err = kgdb_arch_set_breakpoint(&tmp);
- 	if (err)
- 		return err;
--	err = kgdb_arch_remove_breakpoint(addr, tmp_variable);
-+	err = kgdb_arch_remove_breakpoint(&tmp);
- 	if (err)
- 		printk(KERN_ERR "KGDB: Critical breakpoint error, kernel "
- 		   "memory destroyed at: %lx", addr);
-@@ -231,7 +233,6 @@ static void kgdb_flush_swbreak_addr(unsigned long addr)
-  */
- int dbg_activate_sw_breakpoints(void)
- {
--	unsigned long addr;
- 	int error;
- 	int ret = 0;
- 	int i;
-@@ -240,16 +241,15 @@ int dbg_activate_sw_breakpoints(void)
- 		if (kgdb_break[i].state != BP_SET)
- 			continue;
- 
--		addr = kgdb_break[i].bpt_addr;
--		error = kgdb_arch_set_breakpoint(addr,
--				kgdb_break[i].saved_instr);
-+		error = kgdb_arch_set_breakpoint(&kgdb_break[i]);
- 		if (error) {
- 			ret = error;
--			printk(KERN_INFO "KGDB: BP install failed: %lx", addr);
-+			printk(KERN_INFO "KGDB: BP install failed: %lx",
-+			       kgdb_break[i].bpt_addr);
- 			continue;
- 		}
- 
--		kgdb_flush_swbreak_addr(addr);
-+		kgdb_flush_swbreak_addr(kgdb_break[i].bpt_addr);
- 		kgdb_break[i].state = BP_ACTIVE;
- 	}
- 	return ret;
-@@ -298,7 +298,6 @@ int dbg_set_sw_break(unsigned long addr)
- 
- int dbg_deactivate_sw_breakpoints(void)
- {
--	unsigned long addr;
- 	int error;
- 	int ret = 0;
- 	int i;
-@@ -306,15 +305,14 @@ int dbg_deactivate_sw_breakpoints(void)
- 	for (i = 0; i < KGDB_MAX_BREAKPOINTS; i++) {
- 		if (kgdb_break[i].state != BP_ACTIVE)
- 			continue;
--		addr = kgdb_break[i].bpt_addr;
--		error = kgdb_arch_remove_breakpoint(addr,
--					kgdb_break[i].saved_instr);
-+		error = kgdb_arch_remove_breakpoint(&kgdb_break[i]);
- 		if (error) {
--			printk(KERN_INFO "KGDB: BP remove failed: %lx\n", addr);
-+			printk(KERN_INFO "KGDB: BP remove failed: %lx\n",
-+			       kgdb_break[i].bpt_addr);
- 			ret = error;
- 		}
- 
--		kgdb_flush_swbreak_addr(addr);
-+		kgdb_flush_swbreak_addr(kgdb_break[i].bpt_addr);
- 		kgdb_break[i].state = BP_SET;
- 	}
- 	return ret;
-@@ -348,7 +346,6 @@ int kgdb_isremovedbreak(unsigned long addr)
- 
- int dbg_remove_all_break(void)
- {
--	unsigned long addr;
- 	int error;
- 	int i;
- 
-@@ -356,12 +353,10 @@ int dbg_remove_all_break(void)
- 	for (i = 0; i < KGDB_MAX_BREAKPOINTS; i++) {
- 		if (kgdb_break[i].state != BP_ACTIVE)
- 			goto setundefined;
--		addr = kgdb_break[i].bpt_addr;
--		error = kgdb_arch_remove_breakpoint(addr,
--				kgdb_break[i].saved_instr);
-+		error = kgdb_arch_remove_breakpoint(&kgdb_break[i]);
- 		if (error)
- 			printk(KERN_ERR "KGDB: breakpoint remove failed: %lx\n",
--			   addr);
-+			       kgdb_break[i].bpt_addr);
- setundefined:
- 		kgdb_break[i].state = BP_UNDEFINED;
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0034-kgdbts-Fix-kernel-oops-with-CONFIG_DEBUG_RODATA.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0034-kgdbts-Fix-kernel-oops-with-CONFIG_DEBUG_RODATA.patch
deleted file mode 100644
index 38e88f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0034-kgdbts-Fix-kernel-oops-with-CONFIG_DEBUG_RODATA.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 0c2fe32a76d9c3ab88685250abe3956f2ff555fe Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Mar 2012 06:55:44 -0500
-Subject: [PATCH 34/60] kgdbts: Fix kernel oops with CONFIG_DEBUG_RODATA
-
-commit 456ca7ff24841bf2d2a2dfd690fe7d42ef70d932 upstream.
-
-On x86 the kgdb test suite will oops when the kernel is compiled with
-CONFIG_DEBUG_RODATA and you run the tests after boot time. This is
-regression has existed since 2.6.26 by commit: b33cb815 (kgdbts: Use
-HW breakpoints with CONFIG_DEBUG_RODATA).
-
-The test suite can use hw breakpoints for all the tests, but it has to
-execute the hardware breakpoint specific tests first in order to
-determine that the hw breakpoints actually work.  Specifically the
-very first test causes an oops:
-
-# echo V1I1 > /sys/module/kgdbts/parameters/kgdbts
-kgdb: Registered I/O driver kgdbts.
-kgdbts:RUN plant and detach test
-
-Entering kdb (current=0xffff880017aa9320, pid 1078) on processor 0 due to Keyboard Entry
-[0]kdb> kgdbts: ERROR PUT: end of test buffer on 'plant_and_detach_test' line 1 expected OK got $E14#aa
-WARNING: at drivers/misc/kgdbts.c:730 run_simple_test+0x151/0x2c0()
-[...oops clipped...]
-
-This commit re-orders the running of the tests and puts the RODATA
-check into its own function so as to correctly avoid the kernel oops
-by detecting and using the hw breakpoints.
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/misc/kgdbts.c |   52 ++++++++++++++++++++++++++-----------------------
- 1 file changed, 28 insertions(+), 24 deletions(-)
-
-diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
-index 3f7ad83..997e94d 100644
---- a/drivers/misc/kgdbts.c
-+++ b/drivers/misc/kgdbts.c
-@@ -885,6 +885,22 @@ static void run_singlestep_break_test(void)
- 	kgdbts_break_test();
- }
- 
-+static void test_debug_rodata(void)
-+{
-+#ifdef CONFIG_DEBUG_RODATA
-+	/* Until there is an api to write to read-only text segments, use
-+	 * HW breakpoints for the remainder of any tests, else print a
-+	 * failure message if hw breakpoints do not work.
-+	 */
-+	if (!(arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT && hwbreaks_ok)) {
-+		eprintk("kgdbts: HW breakpoints BROKEN, ending tests\n");
-+		return;
-+	}
-+	force_hwbrks = 1;
-+	v1printk("kgdbts:Using HW breakpoints for SW breakpoint tests\n");
-+#endif /* CONFIG_DEBUG_RODATA */
-+}
-+
- static void kgdbts_run_tests(void)
- {
- 	char *ptr;
-@@ -907,6 +923,18 @@ static void kgdbts_run_tests(void)
- 	if (ptr)
- 		sstep_test = simple_strtol(ptr+1, NULL, 10);
- 
-+	/* All HW break point tests */
-+	if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) {
-+		hwbreaks_ok = 1;
-+		v1printk("kgdbts:RUN hw breakpoint test\n");
-+		run_breakpoint_test(1);
-+		v1printk("kgdbts:RUN hw write breakpoint test\n");
-+		run_hw_break_test(1);
-+		v1printk("kgdbts:RUN access write breakpoint test\n");
-+		run_hw_break_test(0);
-+	}
-+	test_debug_rodata();
-+
- 	/* required internal KGDB tests */
- 	v1printk("kgdbts:RUN plant and detach test\n");
- 	run_plant_and_detach_test(0);
-@@ -924,35 +952,11 @@ static void kgdbts_run_tests(void)
- 
- 	/* ===Optional tests=== */
- 
--	/* All HW break point tests */
--	if (arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT) {
--		hwbreaks_ok = 1;
--		v1printk("kgdbts:RUN hw breakpoint test\n");
--		run_breakpoint_test(1);
--		v1printk("kgdbts:RUN hw write breakpoint test\n");
--		run_hw_break_test(1);
--		v1printk("kgdbts:RUN access write breakpoint test\n");
--		run_hw_break_test(0);
--	}
--
- 	if (nmi_sleep) {
- 		v1printk("kgdbts:RUN NMI sleep %i seconds test\n", nmi_sleep);
- 		run_nmi_sleep_test(nmi_sleep);
- 	}
- 
--#ifdef CONFIG_DEBUG_RODATA
--	/* Until there is an api to write to read-only text segments, use
--	 * HW breakpoints for the remainder of any tests, else print a
--	 * failure message if hw breakpoints do not work.
--	 */
--	if (!(arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT && hwbreaks_ok)) {
--		eprintk("kgdbts: HW breakpoints do not work,"
--			"skipping remaining tests\n");
--		return;
--	}
--	force_hwbrks = 1;
--#endif /* CONFIG_DEBUG_RODATA */
--
- 	/* If the do_fork test is run it will be the last test that is
- 	 * executed because a kernel thread will be spawned at the very
- 	 * end to unregister the debug hooks.
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0035-kgdbts-1-of-2-fix-single-step-awareness-to-work-corr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0035-kgdbts-1-of-2-fix-single-step-awareness-to-work-corr.patch
deleted file mode 100644
index d28b70c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0035-kgdbts-1-of-2-fix-single-step-awareness-to-work-corr.patch
+++ /dev/null
@@ -1,212 +0,0 @@
-From ae549aeda351058e0df140fd174ac71911773ece Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Mar 2012 17:41:24 -0500
-Subject: [PATCH 35/60] kgdbts: (1 of 2) fix single step awareness to work
- correctly with SMP
-
-commit 486c5987a00a89d56c2c04c506417ef8f823ca2e upstream.
-
-The do_fork and sys_open tests have never worked properly on anything
-other than a UP configuration with the kgdb test suite.  This is
-because the test suite did not fully implement the behavior of a real
-debugger.  A real debugger tracks the state of what thread it asked to
-single step and can correctly continue other threads of execution or
-conditionally stop while waiting for the original thread single step
-request to return.
-
-Below is a simple method to cause a fatal kernel oops with the kgdb
-test suite on a 4 processor x86 system:
-
-while [ 1 ] ; do ls > /dev/null 2> /dev/null; done&
-while [ 1 ] ; do ls > /dev/null 2> /dev/null; done&
-while [ 1 ] ; do ls > /dev/null 2> /dev/null; done&
-while [ 1 ] ; do ls > /dev/null 2> /dev/null; done&
-echo V1I1F1000 > /sys/module/kgdbts/parameters/kgdbts
-
-Very soon after starting the test the kernel will oops with a message like:
-
-kgdbts: BP mismatch 3b7da66480 expected ffffffff8106a590
-WARNING: at drivers/misc/kgdbts.c:303 check_and_rewind_pc+0xe0/0x100()
-Call Trace:
- [<ffffffff812994a0>] check_and_rewind_pc+0xe0/0x100
- [<ffffffff81298945>] validate_simple_test+0x25/0xc0
- [<ffffffff81298f77>] run_simple_test+0x107/0x2c0
- [<ffffffff81298a18>] kgdbts_put_char+0x18/0x20
-
-The warn will turn to a hard kernel crash shortly after that because
-the pc will not get properly rewound to the right value after hitting
-a breakpoint leading to a hard lockup.
-
-This change is broken up into 2 pieces because archs that have hw
-single stepping (2.6.26 and up) need different changes than archs that
-do not have hw single stepping (3.0 and up).  This change implements
-the correct behavior for an arch that supports hw single stepping.
-
-A minor defect was fixed where sys_open should be do_sys_open
-for the sys_open break point test.  This solves the problem of running
-a 64 bit with a 32 bit user space.  The sys_open() never gets called
-when using the 32 bit file system for the kgdb testsuite because the
-32 bit binaries invoke the compat_sys_open() call leading to the test
-never completing.
-
-In order to mimic a real debugger, the kgdb test suite now tracks the
-most recent thread that was continued (cont_thread_id), with the
-intent to single step just this thread.  When the response to the
-single step request stops in a different thread that hit the original
-break point that thread will now get continued, while the debugger
-waits for the thread with the single step pending.  Here is a high
-level description of the sequence of events.
-
-   cont_instead_of_sstep = 0;
-
-1) set breakpoint at do_fork
-2) continue
-3)   Save the thread id where we stop to cont_thread_id
-4) Remove breakpoint at do_fork
-5) Reset the PC if needed depending on kernel exception type
-6) if (cont_instead_of_sstep) { continue } else { single step }
-7)   Check where we stopped
-       if current thread != cont_thread_id {
-           cont_instead_of_sstep = 1;
-           goto step 5
-       } else {
-           cont_instead_of_sstep = 0;
-       }
-8) clean up and run test again if needed
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/misc/kgdbts.c |   54 +++++++++++++++++++++++++++++++++++++++----------
- 1 file changed, 43 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
-index 997e94d..3cad9fc 100644
---- a/drivers/misc/kgdbts.c
-+++ b/drivers/misc/kgdbts.c
-@@ -134,6 +134,9 @@ static int force_hwbrks;
- static int hwbreaks_ok;
- static int hw_break_val;
- static int hw_break_val2;
-+static int cont_instead_of_sstep;
-+static unsigned long cont_thread_id;
-+static unsigned long sstep_thread_id;
- #if defined(CONFIG_ARM) || defined(CONFIG_MIPS) || defined(CONFIG_SPARC)
- static int arch_needs_sstep_emulation = 1;
- #else
-@@ -211,7 +214,7 @@ static unsigned long lookup_addr(char *arg)
- 	if (!strcmp(arg, "kgdbts_break_test"))
- 		addr = (unsigned long)kgdbts_break_test;
- 	else if (!strcmp(arg, "sys_open"))
--		addr = (unsigned long)sys_open;
-+		addr = (unsigned long)do_sys_open;
- 	else if (!strcmp(arg, "do_fork"))
- 		addr = (unsigned long)do_fork;
- 	else if (!strcmp(arg, "hw_break_val"))
-@@ -283,6 +286,16 @@ static void hw_break_val_write(void)
- 	hw_break_val++;
- }
- 
-+static int get_thread_id_continue(char *put_str, char *arg)
-+{
-+	char *ptr = &put_str[11];
-+
-+	if (put_str[1] != 'T' || put_str[2] != '0')
-+		return 1;
-+	kgdb_hex2long(&ptr, &cont_thread_id);
-+	return 0;
-+}
-+
- static int check_and_rewind_pc(char *put_str, char *arg)
- {
- 	unsigned long addr = lookup_addr(arg);
-@@ -324,6 +337,18 @@ static int check_single_step(char *put_str, char *arg)
- 	gdb_regs_to_pt_regs(kgdbts_gdb_regs, &kgdbts_regs);
- 	v2printk("Singlestep stopped at IP: %lx\n",
- 		   instruction_pointer(&kgdbts_regs));
-+
-+	if (sstep_thread_id != cont_thread_id && !arch_needs_sstep_emulation) {
-+		/*
-+		 * Ensure we stopped in the same thread id as before, else the
-+		 * debugger should continue until the original thread that was
-+		 * single stepped is scheduled again, emulating gdb's behavior.
-+		 */
-+		v2printk("ThrID does not match: %lx\n", cont_thread_id);
-+		cont_instead_of_sstep = 1;
-+		ts.idx -= 4;
-+		return 0;
-+	}
- 	if (instruction_pointer(&kgdbts_regs) == addr) {
- 		eprintk("kgdbts: SingleStep failed at %lx\n",
- 			   instruction_pointer(&kgdbts_regs));
-@@ -368,7 +393,12 @@ static int got_break(char *put_str, char *arg)
- static void emul_sstep_get(char *arg)
- {
- 	if (!arch_needs_sstep_emulation) {
--		fill_get_buf(arg);
-+		if (cont_instead_of_sstep) {
-+			cont_instead_of_sstep = 0;
-+			fill_get_buf("c");
-+		} else {
-+			fill_get_buf(arg);
-+		}
- 		return;
- 	}
- 	switch (sstep_state) {
-@@ -398,9 +428,11 @@ static void emul_sstep_get(char *arg)
- static int emul_sstep_put(char *put_str, char *arg)
- {
- 	if (!arch_needs_sstep_emulation) {
--		if (!strncmp(put_str+1, arg, 2))
--			return 0;
--		return 1;
-+		char *ptr = &put_str[11];
-+		if (put_str[1] != 'T' || put_str[2] != '0')
-+			return 1;
-+		kgdb_hex2long(&ptr, &sstep_thread_id);
-+		return 0;
- 	}
- 	switch (sstep_state) {
- 	case 1:
-@@ -502,10 +534,10 @@ static struct test_struct bad_read_test[] = {
- static struct test_struct singlestep_break_test[] = {
- 	{ "?", "S0*" }, /* Clear break points */
- 	{ "kgdbts_break_test", "OK", sw_break, }, /* set sw breakpoint */
--	{ "c", "T0*", }, /* Continue */
-+	{ "c", "T0*", NULL, get_thread_id_continue }, /* Continue */
-+	{ "kgdbts_break_test", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "g", "kgdbts_break_test", NULL, check_and_rewind_pc },
- 	{ "write", "OK", write_regs }, /* Write registers */
--	{ "kgdbts_break_test", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */
- 	{ "g", "kgdbts_break_test", NULL, check_single_step },
- 	{ "kgdbts_break_test", "OK", sw_break, }, /* set sw breakpoint */
-@@ -523,10 +555,10 @@ static struct test_struct singlestep_break_test[] = {
- static struct test_struct do_fork_test[] = {
- 	{ "?", "S0*" }, /* Clear break points */
- 	{ "do_fork", "OK", sw_break, }, /* set sw breakpoint */
--	{ "c", "T0*", }, /* Continue */
-+	{ "c", "T0*", NULL, get_thread_id_continue }, /* Continue */
-+	{ "do_fork", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "g", "do_fork", NULL, check_and_rewind_pc }, /* check location */
- 	{ "write", "OK", write_regs }, /* Write registers */
--	{ "do_fork", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */
- 	{ "g", "do_fork", NULL, check_single_step },
- 	{ "do_fork", "OK", sw_break, }, /* set sw breakpoint */
-@@ -541,10 +573,10 @@ static struct test_struct do_fork_test[] = {
- static struct test_struct sys_open_test[] = {
- 	{ "?", "S0*" }, /* Clear break points */
- 	{ "sys_open", "OK", sw_break, }, /* set sw breakpoint */
--	{ "c", "T0*", }, /* Continue */
-+	{ "c", "T0*", NULL, get_thread_id_continue }, /* Continue */
-+	{ "sys_open", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "g", "sys_open", NULL, check_and_rewind_pc }, /* check location */
- 	{ "write", "OK", write_regs }, /* Write registers */
--	{ "sys_open", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */
- 	{ "g", "sys_open", NULL, check_single_step },
- 	{ "sys_open", "OK", sw_break, }, /* set sw breakpoint */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0036-kgdbts-2-of-2-fix-single-step-awareness-to-work-corr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0036-kgdbts-2-of-2-fix-single-step-awareness-to-work-corr.patch
deleted file mode 100644
index 640bc3e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0036-kgdbts-2-of-2-fix-single-step-awareness-to-work-corr.patch
+++ /dev/null
@@ -1,266 +0,0 @@
-From 13053c284b41d7ca50da37f04c9940303b9d33e0 Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Thu, 29 Mar 2012 17:41:24 -0500
-Subject: [PATCH 36/60] kgdbts: (2 of 2) fix single step awareness to work
- correctly with SMP
-
-commit 23bbd8e346f1ef3fc1219c79cea53d8d52b207d8 upstream.
-
-The do_fork and sys_open tests have never worked properly on anything
-other than a UP configuration with the kgdb test suite.  This is
-because the test suite did not fully implement the behavior of a real
-debugger.  A real debugger tracks the state of what thread it asked to
-single step and can correctly continue other threads of execution or
-conditionally stop while waiting for the original thread single step
-request to return.
-
-Below is a simple method to cause a fatal kernel oops with the kgdb
-test suite on a 2 processor ARM system:
-
-while [ 1 ] ; do ls > /dev/null 2> /dev/null; done&
-while [ 1 ] ; do ls > /dev/null 2> /dev/null; done&
-echo V1I1F100 > /sys/module/kgdbts/parameters/kgdbts
-
-Very soon after starting the test the kernel will start warning with
-messages like:
-
-kgdbts: BP mismatch c002487c expected c0024878
-------------[ cut here ]------------
-WARNING: at drivers/misc/kgdbts.c:317 check_and_rewind_pc+0x9c/0xc4()
-[<c01f6520>] (check_and_rewind_pc+0x9c/0xc4)
-[<c01f595c>] (validate_simple_test+0x3c/0xc4)
-[<c01f60d4>] (run_simple_test+0x1e8/0x274)
-
-The kernel will eventually recovers, but the test suite has completely
-failed to test anything useful.
-
-This patch implements behavior similar to a real debugger that does
-not rely on hardware single stepping by using only software planted
-breakpoints.
-
-In order to mimic a real debugger, the kgdb test suite now tracks the
-most recent thread that was continued (cont_thread_id), with the
-intent to single step just this thread.  When the response to the
-single step request stops in a different thread that hit the original
-break point that thread will now get continued, while the debugger
-waits for the thread with the single step pending.  Here is a high
-level description of the sequence of events.
-
-   cont_instead_of_sstep = 0;
-
-1) set breakpoint at do_fork
-2) continue
-3)   Save the thread id where we stop to cont_thread_id
-4) Remove breakpoint at do_fork
-5) Reset the PC if needed depending on kernel exception type
-6) soft single step
-7)   Check where we stopped
-       if current thread != cont_thread_id {
-           if (here for more than 2 times for the same thead) {
-              ### must be a really busy system, start test again ###
-	      goto step 1
-           }
-           goto step 5
-       } else {
-           cont_instead_of_sstep = 0;
-       }
-8) clean up and run test again if needed
-9) Clear out any threads that were waiting on a break point at the
-   point in time the test is ended with get_cont_catch().  This
-   happens sometimes because breakpoints are used in place of single
-   stepping and some threads could have been in the debugger exception
-   handling queue because breakpoints were hit concurrently on
-   different CPUs.  This also means we wait at least one second before
-   unplumbing the debugger connection at the very end, so as respond
-   to any debug threads waiting to be serviced.
-
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/misc/kgdbts.c |   73 +++++++++++++++++++++++++++++++++++++++++--------
- 1 file changed, 62 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
-index 3cad9fc..d087456 100644
---- a/drivers/misc/kgdbts.c
-+++ b/drivers/misc/kgdbts.c
-@@ -142,7 +142,9 @@ static int arch_needs_sstep_emulation = 1;
- #else
- static int arch_needs_sstep_emulation;
- #endif
-+static unsigned long cont_addr;
- static unsigned long sstep_addr;
-+static int restart_from_top_after_write;
- static int sstep_state;
- 
- /* Storage for the registers, in GDB format. */
-@@ -190,7 +192,8 @@ static int kgdbts_unreg_thread(void *ptr)
- 	 */
- 	while (!final_ack)
- 		msleep_interruptible(1500);
--
-+	/* Pause for any other threads to exit after final ack. */
-+	msleep_interruptible(1000);
- 	if (configured)
- 		kgdb_unregister_io_module(&kgdbts_io_ops);
- 	configured = 0;
-@@ -312,13 +315,21 @@ static int check_and_rewind_pc(char *put_str, char *arg)
- 	if (addr + BREAK_INSTR_SIZE == ip)
- 		offset = -BREAK_INSTR_SIZE;
- #endif
--	if (strcmp(arg, "silent") && ip + offset != addr) {
-+
-+	if (arch_needs_sstep_emulation && sstep_addr &&
-+	    ip + offset == sstep_addr &&
-+	    ((!strcmp(arg, "sys_open") || !strcmp(arg, "do_fork")))) {
-+		/* This is special case for emulated single step */
-+		v2printk("Emul: rewind hit single step bp\n");
-+		restart_from_top_after_write = 1;
-+	} else if (strcmp(arg, "silent") && ip + offset != addr) {
- 		eprintk("kgdbts: BP mismatch %lx expected %lx\n",
- 			   ip + offset, addr);
- 		return 1;
- 	}
- 	/* Readjust the instruction pointer if needed */
- 	ip += offset;
-+	cont_addr = ip;
- #ifdef GDB_ADJUSTS_BREAK_OFFSET
- 	instruction_pointer_set(&kgdbts_regs, ip);
- #endif
-@@ -328,6 +339,8 @@ static int check_and_rewind_pc(char *put_str, char *arg)
- static int check_single_step(char *put_str, char *arg)
- {
- 	unsigned long addr = lookup_addr(arg);
-+	static int matched_id;
-+
- 	/*
- 	 * From an arch indepent point of view the instruction pointer
- 	 * should be on a different instruction
-@@ -338,17 +351,28 @@ static int check_single_step(char *put_str, char *arg)
- 	v2printk("Singlestep stopped at IP: %lx\n",
- 		   instruction_pointer(&kgdbts_regs));
- 
--	if (sstep_thread_id != cont_thread_id && !arch_needs_sstep_emulation) {
-+	if (sstep_thread_id != cont_thread_id) {
- 		/*
- 		 * Ensure we stopped in the same thread id as before, else the
- 		 * debugger should continue until the original thread that was
- 		 * single stepped is scheduled again, emulating gdb's behavior.
- 		 */
- 		v2printk("ThrID does not match: %lx\n", cont_thread_id);
-+		if (arch_needs_sstep_emulation) {
-+			if (matched_id &&
-+			    instruction_pointer(&kgdbts_regs) != addr)
-+				goto continue_test;
-+			matched_id++;
-+			ts.idx -= 2;
-+			sstep_state = 0;
-+			return 0;
-+		}
- 		cont_instead_of_sstep = 1;
- 		ts.idx -= 4;
- 		return 0;
- 	}
-+continue_test:
-+	matched_id = 0;
- 	if (instruction_pointer(&kgdbts_regs) == addr) {
- 		eprintk("kgdbts: SingleStep failed at %lx\n",
- 			   instruction_pointer(&kgdbts_regs));
-@@ -390,6 +414,31 @@ static int got_break(char *put_str, char *arg)
- 	return 1;
- }
- 
-+static void get_cont_catch(char *arg)
-+{
-+	/* Always send detach because the test is completed at this point */
-+	fill_get_buf("D");
-+}
-+
-+static int put_cont_catch(char *put_str, char *arg)
-+{
-+	/* This is at the end of the test and we catch any and all input */
-+	v2printk("kgdbts: cleanup task: %lx\n", sstep_thread_id);
-+	ts.idx--;
-+	return 0;
-+}
-+
-+static int emul_reset(char *put_str, char *arg)
-+{
-+	if (strncmp(put_str, "$OK", 3))
-+		return 1;
-+	if (restart_from_top_after_write) {
-+		restart_from_top_after_write = 0;
-+		ts.idx = -1;
-+	}
-+	return 0;
-+}
-+
- static void emul_sstep_get(char *arg)
- {
- 	if (!arch_needs_sstep_emulation) {
-@@ -443,8 +492,7 @@ static int emul_sstep_put(char *put_str, char *arg)
- 		v2printk("Stopped at IP: %lx\n",
- 			 instruction_pointer(&kgdbts_regs));
- 		/* Want to stop at IP + break instruction size by default */
--		sstep_addr = instruction_pointer(&kgdbts_regs) +
--			BREAK_INSTR_SIZE;
-+		sstep_addr = cont_addr + BREAK_INSTR_SIZE;
- 		break;
- 	case 2:
- 		if (strncmp(put_str, "$OK", 3)) {
-@@ -456,6 +504,9 @@ static int emul_sstep_put(char *put_str, char *arg)
- 		if (strncmp(put_str, "$T0", 3)) {
- 			eprintk("kgdbts: failed continue sstep\n");
- 			return 1;
-+		} else {
-+			char *ptr = &put_str[11];
-+			kgdb_hex2long(&ptr, &sstep_thread_id);
- 		}
- 		break;
- 	case 4:
-@@ -558,13 +609,13 @@ static struct test_struct do_fork_test[] = {
- 	{ "c", "T0*", NULL, get_thread_id_continue }, /* Continue */
- 	{ "do_fork", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "g", "do_fork", NULL, check_and_rewind_pc }, /* check location */
--	{ "write", "OK", write_regs }, /* Write registers */
-+	{ "write", "OK", write_regs, emul_reset }, /* Write registers */
- 	{ "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */
- 	{ "g", "do_fork", NULL, check_single_step },
- 	{ "do_fork", "OK", sw_break, }, /* set sw breakpoint */
- 	{ "7", "T0*", skip_back_repeat_test }, /* Loop based on repeat_test */
- 	{ "D", "OK", NULL, final_ack_set }, /* detach and unregister I/O */
--	{ "", "" },
-+	{ "", "", get_cont_catch, put_cont_catch },
- };
- 
- /* Test for hitting a breakpoint at sys_open for what ever the number
-@@ -576,13 +627,13 @@ static struct test_struct sys_open_test[] = {
- 	{ "c", "T0*", NULL, get_thread_id_continue }, /* Continue */
- 	{ "sys_open", "OK", sw_rem_break }, /*remove breakpoint */
- 	{ "g", "sys_open", NULL, check_and_rewind_pc }, /* check location */
--	{ "write", "OK", write_regs }, /* Write registers */
-+	{ "write", "OK", write_regs, emul_reset }, /* Write registers */
- 	{ "s", "T0*", emul_sstep_get, emul_sstep_put }, /* Single step */
- 	{ "g", "sys_open", NULL, check_single_step },
- 	{ "sys_open", "OK", sw_break, }, /* set sw breakpoint */
- 	{ "7", "T0*", skip_back_repeat_test }, /* Loop based on repeat_test */
- 	{ "D", "OK", NULL, final_ack_set }, /* detach and unregister I/O */
--	{ "", "" },
-+	{ "", "", get_cont_catch, put_cont_catch },
- };
- 
- /*
-@@ -725,8 +776,8 @@ static int run_simple_test(int is_get_char, int chr)
- 	/* This callback is a put char which is when kgdb sends data to
- 	 * this I/O module.
- 	 */
--	if (ts.tst[ts.idx].get[0] == '\0' &&
--		ts.tst[ts.idx].put[0] == '\0') {
-+	if (ts.tst[ts.idx].get[0] == '\0' && ts.tst[ts.idx].put[0] == '\0' &&
-+	    !ts.tst[ts.idx].get_handler) {
- 		eprintk("kgdbts: ERROR: beyond end of test on"
- 			   " '%s' line %i\n", ts.name, ts.idx);
- 		return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0037-x86-kgdb-Fix-DEBUG_RODATA-limitation-using-text_poke.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0037-x86-kgdb-Fix-DEBUG_RODATA-limitation-using-text_poke.patch
deleted file mode 100644
index be07398..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0037-x86-kgdb-Fix-DEBUG_RODATA-limitation-using-text_poke.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From d3b769924c0a3a98809ab60e0f7449fef154b26c Mon Sep 17 00:00:00 2001
-From: Jason Wessel <jason.wessel at windriver.com>
-Date: Fri, 23 Mar 2012 09:35:05 -0500
-Subject: [PATCH 37/60] x86,kgdb: Fix DEBUG_RODATA limitation using
- text_poke()
-
-commit 3751d3e85cf693e10e2c47c03c8caa65e171099b upstream.
-
-There has long been a limitation using software breakpoints with a
-kernel compiled with CONFIG_DEBUG_RODATA going back to 2.6.26. For
-this particular patch, it will apply cleanly and has been tested all
-the way back to 2.6.36.
-
-The kprobes code uses the text_poke() function which accommodates
-writing a breakpoint into a read-only page.  The x86 kgdb code can
-solve the problem similarly by overriding the default breakpoint
-set/remove routines and using text_poke() directly.
-
-The x86 kgdb code will first attempt to use the traditional
-probe_kernel_write(), and next try using a the text_poke() function.
-The break point install method is tracked such that the correct break
-point removal routine will get called later on.
-
-Cc: x86 at kernel.org
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Ingo Molnar <mingo at redhat.com>
-Cc: H. Peter Anvin <hpa at zytor.com>
-Inspried-by: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com>
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/kgdb.c |   60 ++++++++++++++++++++++++++++++++++++++++++++++++
- drivers/misc/kgdbts.c  |   17 --------------
- include/linux/kgdb.h   |    3 ++-
- 3 files changed, 62 insertions(+), 18 deletions(-)
-
-diff --git a/arch/x86/kernel/kgdb.c b/arch/x86/kernel/kgdb.c
-index faba577..2f45c4c 100644
---- a/arch/x86/kernel/kgdb.c
-+++ b/arch/x86/kernel/kgdb.c
-@@ -43,6 +43,8 @@
- #include <linux/smp.h>
- #include <linux/nmi.h>
- #include <linux/hw_breakpoint.h>
-+#include <linux/uaccess.h>
-+#include <linux/memory.h>
- 
- #include <asm/debugreg.h>
- #include <asm/apicdef.h>
-@@ -740,6 +742,64 @@ void kgdb_arch_set_pc(struct pt_regs *regs, unsigned long ip)
- 	regs->ip = ip;
- }
- 
-+int kgdb_arch_set_breakpoint(struct kgdb_bkpt *bpt)
-+{
-+	int err;
-+	char opc[BREAK_INSTR_SIZE];
-+
-+	bpt->type = BP_BREAKPOINT;
-+	err = probe_kernel_read(bpt->saved_instr, (char *)bpt->bpt_addr,
-+				BREAK_INSTR_SIZE);
-+	if (err)
-+		return err;
-+	err = probe_kernel_write((char *)bpt->bpt_addr,
-+				 arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE);
-+#ifdef CONFIG_DEBUG_RODATA
-+	if (!err)
-+		return err;
-+	/*
-+	 * It is safe to call text_poke() because normal kernel execution
-+	 * is stopped on all cores, so long as the text_mutex is not locked.
-+	 */
-+	if (mutex_is_locked(&text_mutex))
-+		return -EBUSY;
-+	text_poke((void *)bpt->bpt_addr, arch_kgdb_ops.gdb_bpt_instr,
-+		  BREAK_INSTR_SIZE);
-+	err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
-+	if (err)
-+		return err;
-+	if (memcmp(opc, arch_kgdb_ops.gdb_bpt_instr, BREAK_INSTR_SIZE))
-+		return -EINVAL;
-+	bpt->type = BP_POKE_BREAKPOINT;
-+#endif /* CONFIG_DEBUG_RODATA */
-+	return err;
-+}
-+
-+int kgdb_arch_remove_breakpoint(struct kgdb_bkpt *bpt)
-+{
-+#ifdef CONFIG_DEBUG_RODATA
-+	int err;
-+	char opc[BREAK_INSTR_SIZE];
-+
-+	if (bpt->type != BP_POKE_BREAKPOINT)
-+		goto knl_write;
-+	/*
-+	 * It is safe to call text_poke() because normal kernel execution
-+	 * is stopped on all cores, so long as the text_mutex is not locked.
-+	 */
-+	if (mutex_is_locked(&text_mutex))
-+		goto knl_write;
-+	text_poke((void *)bpt->bpt_addr, bpt->saved_instr, BREAK_INSTR_SIZE);
-+	err = probe_kernel_read(opc, (char *)bpt->bpt_addr, BREAK_INSTR_SIZE);
-+	if (err || memcmp(opc, bpt->saved_instr, BREAK_INSTR_SIZE))
-+		goto knl_write;
-+	return err;
-+knl_write:
-+#endif /* CONFIG_DEBUG_RODATA */
-+	return probe_kernel_write((char *)bpt->bpt_addr,
-+				  (char *)bpt->saved_instr, BREAK_INSTR_SIZE);
-+}
-+
- struct kgdb_arch arch_kgdb_ops = {
- 	/* Breakpoint instruction: */
- 	.gdb_bpt_instr		= { 0xcc },
-diff --git a/drivers/misc/kgdbts.c b/drivers/misc/kgdbts.c
-index d087456..3aa9a96 100644
---- a/drivers/misc/kgdbts.c
-+++ b/drivers/misc/kgdbts.c
-@@ -968,22 +968,6 @@ static void run_singlestep_break_test(void)
- 	kgdbts_break_test();
- }
- 
--static void test_debug_rodata(void)
--{
--#ifdef CONFIG_DEBUG_RODATA
--	/* Until there is an api to write to read-only text segments, use
--	 * HW breakpoints for the remainder of any tests, else print a
--	 * failure message if hw breakpoints do not work.
--	 */
--	if (!(arch_kgdb_ops.flags & KGDB_HW_BREAKPOINT && hwbreaks_ok)) {
--		eprintk("kgdbts: HW breakpoints BROKEN, ending tests\n");
--		return;
--	}
--	force_hwbrks = 1;
--	v1printk("kgdbts:Using HW breakpoints for SW breakpoint tests\n");
--#endif /* CONFIG_DEBUG_RODATA */
--}
--
- static void kgdbts_run_tests(void)
- {
- 	char *ptr;
-@@ -1016,7 +1000,6 @@ static void kgdbts_run_tests(void)
- 		v1printk("kgdbts:RUN access write breakpoint test\n");
- 		run_hw_break_test(0);
- 	}
--	test_debug_rodata();
- 
- 	/* required internal KGDB tests */
- 	v1printk("kgdbts:RUN plant and detach test\n");
-diff --git a/include/linux/kgdb.h b/include/linux/kgdb.h
-index e5d689c..c4d2fc1 100644
---- a/include/linux/kgdb.h
-+++ b/include/linux/kgdb.h
-@@ -63,7 +63,8 @@ enum kgdb_bptype {
- 	BP_HARDWARE_BREAKPOINT,
- 	BP_WRITE_WATCHPOINT,
- 	BP_READ_WATCHPOINT,
--	BP_ACCESS_WATCHPOINT
-+	BP_ACCESS_WATCHPOINT,
-+	BP_POKE_BREAKPOINT,
- };
- 
- enum kgdb_bpstate {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0038-CIFS-Fix-VFS-lock-usage-for-oplocked-files.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0038-CIFS-Fix-VFS-lock-usage-for-oplocked-files.patch
deleted file mode 100644
index 2658ac8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0038-CIFS-Fix-VFS-lock-usage-for-oplocked-files.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From bffd29387e64c0dfb9905f059ecd24bfcccbe572 Mon Sep 17 00:00:00 2001
-From: Pavel Shilovsky <piastry at etersoft.ru>
-Date: Wed, 28 Mar 2012 21:56:19 +0400
-Subject: [PATCH 38/60] CIFS: Fix VFS lock usage for oplocked files
-
-commit 66189be74ff5f9f3fd6444315b85be210d07cef2 upstream.
-
-We can deadlock if we have a write oplock and two processes
-use the same file handle. In this case the first process can't
-unlock its lock if the second process blocked on the lock in the
-same time.
-
-Fix it by using posix_lock_file rather than posix_lock_file_wait
-under cinode->lock_mutex. If we request a blocking lock and
-posix_lock_file indicates that there is another lock that prevents
-us, wait untill that lock is released and restart our call.
-
-Acked-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Pavel Shilovsky <piastry at etersoft.ru>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/file.c     |   10 +++++++++-
- fs/locks.c         |    3 ++-
- include/linux/fs.h |    5 +++++
- 3 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/fs/cifs/file.c b/fs/cifs/file.c
-index 159fcc5..0f7dc22 100644
---- a/fs/cifs/file.c
-+++ b/fs/cifs/file.c
-@@ -835,13 +835,21 @@ cifs_posix_lock_set(struct file *file, struct file_lock *flock)
- 	if ((flock->fl_flags & FL_POSIX) == 0)
- 		return rc;
- 
-+try_again:
- 	mutex_lock(&cinode->lock_mutex);
- 	if (!cinode->can_cache_brlcks) {
- 		mutex_unlock(&cinode->lock_mutex);
- 		return rc;
- 	}
--	rc = posix_lock_file_wait(file, flock);
-+
-+	rc = posix_lock_file(file, flock, NULL);
- 	mutex_unlock(&cinode->lock_mutex);
-+	if (rc == FILE_LOCK_DEFERRED) {
-+		rc = wait_event_interruptible(flock->fl_wait, !flock->fl_next);
-+		if (!rc)
-+			goto try_again;
-+		locks_delete_block(flock);
-+	}
- 	return rc;
- }
- 
-diff --git a/fs/locks.c b/fs/locks.c
-index 637694b..0d68f1f 100644
---- a/fs/locks.c
-+++ b/fs/locks.c
-@@ -510,12 +510,13 @@ static void __locks_delete_block(struct file_lock *waiter)
- 
- /*
-  */
--static void locks_delete_block(struct file_lock *waiter)
-+void locks_delete_block(struct file_lock *waiter)
- {
- 	lock_flocks();
- 	__locks_delete_block(waiter);
- 	unlock_flocks();
- }
-+EXPORT_SYMBOL(locks_delete_block);
- 
- /* Insert waiter into blocker's block list.
-  * We use a circular list so that processes can be easily woken up in
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 10b2288..11f1951 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -1203,6 +1203,7 @@ extern int vfs_setlease(struct file *, long, struct file_lock **);
- extern int lease_modify(struct file_lock **, int);
- extern int lock_may_read(struct inode *, loff_t start, unsigned long count);
- extern int lock_may_write(struct inode *, loff_t start, unsigned long count);
-+extern void locks_delete_block(struct file_lock *waiter);
- extern void lock_flocks(void);
- extern void unlock_flocks(void);
- #else /* !CONFIG_FILE_LOCKING */
-@@ -1347,6 +1348,10 @@ static inline int lock_may_write(struct inode *inode, loff_t start,
- 	return 1;
- }
- 
-+static inline void locks_delete_block(struct file_lock *waiter)
-+{
-+}
-+
- static inline void lock_flocks(void)
- {
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0039-ARM-tegra-remove-Tegra30-errata-from-MACH_TEGRA_DT.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0039-ARM-tegra-remove-Tegra30-errata-from-MACH_TEGRA_DT.patch
deleted file mode 100644
index e43dada..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0039-ARM-tegra-remove-Tegra30-errata-from-MACH_TEGRA_DT.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7255ae998bddcdfad51d059ae1c6acfe07221551 Mon Sep 17 00:00:00 2001
-From: Stephen Warren <swarren at nvidia.com>
-Date: Thu, 5 Apr 2012 16:50:05 -0600
-Subject: [PATCH 39/60] ARM: tegra: remove Tegra30 errata from MACH_TEGRA_DT
-
-[no upstream commit match, as this is a fix for a mis-applied patch in the
-previous 3.2-stable release. - gregkh]
-
-Commit 83e4194 "ARM: tegra: select required CPU and L2 errata options"
-contained two chunks; one was errata for Tegra20 (correctly applied)
-and the second errata for Tegra30. The latter was accidentally applied
-to the wrong config option; Tegra30 support wasn't added until v3.3,
-and so the second chunk should have just been dropped. This patch does
-so.
-
-Signed-off-by: Stephen Warren <swarren at nvidia.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-tegra/Kconfig |    5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/arch/arm/mach-tegra/Kconfig b/arch/arm/mach-tegra/Kconfig
-index dbc59fa..379cdc7 100644
---- a/arch/arm/mach-tegra/Kconfig
-+++ b/arch/arm/mach-tegra/Kconfig
-@@ -61,11 +61,6 @@ config MACH_SEABOARD
- config MACH_TEGRA_DT
- 	bool "Generic Tegra board (FDT support)"
- 	select USE_OF
--	select ARM_ERRATA_743622
--	select ARM_ERRATA_751472
--	select ARM_ERRATA_754322
--	select ARM_ERRATA_764369
--	select PL310_ERRATA_769419 if CACHE_L2X0
- 	help
- 	  Support for generic nVidia Tegra boards using Flattened Device Tree
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0040-mmc-sdhci-dove-Fix-compile-error-by-including-module.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0040-mmc-sdhci-dove-Fix-compile-error-by-including-module.patch
deleted file mode 100644
index 52f0244..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0040-mmc-sdhci-dove-Fix-compile-error-by-including-module.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 0055c53d221f32d89397630ae37a7310b5d974a0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Alf=20H=C3=B8gemark?= <alf at i100.no>
-Date: Wed, 4 Apr 2012 12:27:09 -0400
-Subject: [PATCH 40/60] mmc: sdhci-dove: Fix compile error by including
- module.h
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8c2fc8e413ecc2c96b696e28d4eb1bc6cee8dc84 upstream.
-
-This patch fixes a compile error in drivers/mmc/host/sdhci-dove.c
-by including the linux/module.h file.
-
-Signed-off-by: Alf Høgemark <alf at i100.no>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/host/sdhci-dove.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mmc/host/sdhci-dove.c b/drivers/mmc/host/sdhci-dove.c
-index a81312c..31acb70 100644
---- a/drivers/mmc/host/sdhci-dove.c
-+++ b/drivers/mmc/host/sdhci-dove.c
-@@ -20,6 +20,7 @@
-  */
- 
- #include <linux/io.h>
-+#include <linux/module.h>
- #include <linux/mmc/host.h>
- 
- #include "sdhci-pltfm.h"
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0041-mmc-atmel-mci-correct-data-timeout-computation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0041-mmc-atmel-mci-correct-data-timeout-computation.patch
deleted file mode 100644
index c43c66a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0041-mmc-atmel-mci-correct-data-timeout-computation.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From cd7bf853d4130f7b81d066e7760289e3485beb4b Mon Sep 17 00:00:00 2001
-From: Ludovic Desroches <ludovic.desroches at atmel.com>
-Date: Wed, 28 Mar 2012 12:28:33 +0200
-Subject: [PATCH 41/60] mmc: atmel-mci: correct data timeout computation
-
-commit 66292ad92c6d3f2f1c137a1c826b331ca8595dfd upstream.
-
-The HSMCI operates at a rate of up to Master Clock divided by two.
-Moreover previous calculation can cause overflows and so wrong
-timeouts.
-
-Signed-off-by: Ludovic Desroches <ludovic.desroches at atmel.com>
-Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/host/atmel-mci.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index 9896933..0932024 100644
---- a/drivers/mmc/host/atmel-mci.c
-+++ b/drivers/mmc/host/atmel-mci.c
-@@ -480,7 +480,14 @@ err:
- static inline unsigned int atmci_ns_to_clocks(struct atmel_mci *host,
- 					unsigned int ns)
- {
--	return (ns * (host->bus_hz / 1000000) + 999) / 1000;
-+	/*
-+	 * It is easier here to use us instead of ns for the timeout,
-+	 * it prevents from overflows during calculation.
-+	 */
-+	unsigned int us = DIV_ROUND_UP(ns, 1000);
-+
-+	/* Maximum clock frequency is host->bus_hz/2 */
-+	return us * (DIV_ROUND_UP(host->bus_hz, 2000000));
- }
- 
- static void atmci_set_timeout(struct atmel_mci *host,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0042-tcm_fc-Add-abort-flag-for-gracefully-handling-exchan.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0042-tcm_fc-Add-abort-flag-for-gracefully-handling-exchan.patch
deleted file mode 100644
index d04f680..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0042-tcm_fc-Add-abort-flag-for-gracefully-handling-exchan.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 3d49fca1a4b93c2fad7a36f29c6e58e4126cad8e Mon Sep 17 00:00:00 2001
-From: Mark Rustad <mark.d.rustad at intel.com>
-Date: Tue, 3 Apr 2012 10:24:41 -0700
-Subject: [PATCH 42/60] tcm_fc: Add abort flag for gracefully handling
- exchange timeout
-
-commit e1c4038282c7586c3544542b37872c434669d3ac upstream.
-
-Add abort flag and use it to terminate processing when an exchange
-is timed out or is reset. The abort flag is used in place of the
-transport_generic_free_cmd function call in the reset and timeout
-cases, because calling that function in that context would free
-memory that was in use. The aborted flag allows the lifetime to
-be managed in a more normal way, while truncating the processing.
-
-This change eliminates a source of memory corruption which
-manifested in a variety of ugly ways.
-
-(nab: Drop unused struct fc_exch *ep in ft_recv_seq)
-
-Signed-off-by: Mark Rustad <mark.d.rustad at intel.com>
-Acked-by: Kiran Patil <Kiran.patil at intel.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/tcm_fc/tcm_fc.h  |    1 +
- drivers/target/tcm_fc/tfc_cmd.c |   10 ++++++++--
- drivers/target/tcm_fc/tfc_io.c  |    2 ++
- 3 files changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/target/tcm_fc/tcm_fc.h b/drivers/target/tcm_fc/tcm_fc.h
-index e05c551..be7ed12 100644
---- a/drivers/target/tcm_fc/tcm_fc.h
-+++ b/drivers/target/tcm_fc/tcm_fc.h
-@@ -124,6 +124,7 @@ struct ft_cmd {
- 	/* Local sense buffer */
- 	unsigned char ft_sense_buffer[TRANSPORT_SENSE_BUFFER];
- 	u32 was_ddp_setup:1;		/* Set only if ddp is setup */
-+	u32 aborted:1;			/* Set if aborted by reset or timeout */
- 	struct scatterlist *sg;		/* Set only if DDP is setup */
- 	u32 sg_cnt;			/* No. of item in scatterlist */
- };
-diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
-index 754b669..d95cfe2 100644
---- a/drivers/target/tcm_fc/tfc_cmd.c
-+++ b/drivers/target/tcm_fc/tfc_cmd.c
-@@ -130,6 +130,8 @@ int ft_queue_status(struct se_cmd *se_cmd)
- 	struct fc_exch *ep;
- 	size_t len;
- 
-+	if (cmd->aborted)
-+		return 0;
- 	ft_dump_cmd(cmd, __func__);
- 	ep = fc_seq_exch(cmd->seq);
- 	lport = ep->lp;
-@@ -196,6 +198,8 @@ int ft_write_pending(struct se_cmd *se_cmd)
- 
- 	ft_dump_cmd(cmd, __func__);
- 
-+	if (cmd->aborted)
-+		return 0;
- 	ep = fc_seq_exch(cmd->seq);
- 	lport = ep->lp;
- 	fp = fc_frame_alloc(lport, sizeof(*txrdy));
-@@ -266,10 +270,10 @@ static void ft_recv_seq(struct fc_seq *sp, struct fc_frame *fp, void *arg)
- 	struct ft_cmd *cmd = arg;
- 	struct fc_frame_header *fh;
- 
--	if (IS_ERR(fp)) {
-+	if (unlikely(IS_ERR(fp))) {
- 		/* XXX need to find cmd if queued */
- 		cmd->seq = NULL;
--		transport_generic_free_cmd(&cmd->se_cmd, 0);
-+		cmd->aborted = true;
- 		return;
- 	}
- 
-@@ -447,6 +451,8 @@ int ft_queue_tm_resp(struct se_cmd *se_cmd)
- 	struct se_tmr_req *tmr = se_cmd->se_tmr_req;
- 	enum fcp_resp_rsp_codes code;
- 
-+	if (cmd->aborted)
-+		return 0;
- 	switch (tmr->response) {
- 	case TMR_FUNCTION_COMPLETE:
- 		code = FCP_TMF_CMPL;
-diff --git a/drivers/target/tcm_fc/tfc_io.c b/drivers/target/tcm_fc/tfc_io.c
-index 1369b1c..ada131c 100644
---- a/drivers/target/tcm_fc/tfc_io.c
-+++ b/drivers/target/tcm_fc/tfc_io.c
-@@ -84,6 +84,8 @@ int ft_queue_data_in(struct se_cmd *se_cmd)
- 	void *from;
- 	void *to = NULL;
- 
-+	if (cmd->aborted)
-+		return 0;
- 	ep = fc_seq_exch(cmd->seq);
- 	lport = ep->lp;
- 	cmd->seq = lport->tt.seq_start_next(cmd->seq);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0043-tcm_fc-Do-not-free-tpg-structure-during-wq-allocatio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0043-tcm_fc-Do-not-free-tpg-structure-during-wq-allocatio.patch
deleted file mode 100644
index 79c921e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0043-tcm_fc-Do-not-free-tpg-structure-during-wq-allocatio.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From dd64e41dfd092de59c1dc5c58ceb26837c16a17c Mon Sep 17 00:00:00 2001
-From: Mark Rustad <mark.d.rustad at intel.com>
-Date: Tue, 3 Apr 2012 10:24:52 -0700
-Subject: [PATCH 43/60] tcm_fc: Do not free tpg structure during wq allocation
- failure
-
-commit 06383f10c49f507220594a455c6491ca6f8c94ab upstream.
-
-Avoid freeing a registered tpg structure if an alloc_workqueue call
-fails.  This fixes a bug where the failure was leaking memory associated
-with se_portal_group setup during the original core_tpg_register() call.
-
-Signed-off-by: Mark Rustad <mark.d.rustad at intel.com>
-Acked-by: Kiran Patil <Kiran.patil at intel.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/tcm_fc/tfc_conf.c |   13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/target/tcm_fc/tfc_conf.c b/drivers/target/tcm_fc/tfc_conf.c
-index 9402b73..7962325 100644
---- a/drivers/target/tcm_fc/tfc_conf.c
-+++ b/drivers/target/tcm_fc/tfc_conf.c
-@@ -304,6 +304,7 @@ static struct se_portal_group *ft_add_tpg(
- {
- 	struct ft_lport_acl *lacl;
- 	struct ft_tpg *tpg;
-+	struct workqueue_struct *wq;
- 	unsigned long index;
- 	int ret;
- 
-@@ -325,18 +326,20 @@ static struct se_portal_group *ft_add_tpg(
- 	tpg->lport_acl = lacl;
- 	INIT_LIST_HEAD(&tpg->lun_list);
- 
--	ret = core_tpg_register(&ft_configfs->tf_ops, wwn, &tpg->se_tpg,
--				tpg, TRANSPORT_TPG_TYPE_NORMAL);
--	if (ret < 0) {
-+	wq = alloc_workqueue("tcm_fc", 0, 1);
-+	if (!wq) {
- 		kfree(tpg);
- 		return NULL;
- 	}
- 
--	tpg->workqueue = alloc_workqueue("tcm_fc", 0, 1);
--	if (!tpg->workqueue) {
-+	ret = core_tpg_register(&ft_configfs->tf_ops, wwn, &tpg->se_tpg,
-+				tpg, TRANSPORT_TPG_TYPE_NORMAL);
-+	if (ret < 0) {
-+		destroy_workqueue(wq);
- 		kfree(tpg);
- 		return NULL;
- 	}
-+	tpg->workqueue = wq;
- 
- 	mutex_lock(&ft_lport_lock);
- 	list_add_tail(&tpg->list, &lacl->tpg_list);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0044-sysctl-fix-write-access-to-dmesg_restrict-kptr_restr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0044-sysctl-fix-write-access-to-dmesg_restrict-kptr_restr.patch
deleted file mode 100644
index e9c6efd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0044-sysctl-fix-write-access-to-dmesg_restrict-kptr_restr.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 444559e0fe29e31b1a95a3668c530bd1aed732ce Mon Sep 17 00:00:00 2001
-From: Kees Cook <keescook at chromium.org>
-Date: Wed, 4 Apr 2012 11:40:19 -0700
-Subject: [PATCH 44/60] sysctl: fix write access to
- dmesg_restrict/kptr_restrict
-
-commit 620f6e8e855d6d447688a5f67a4e176944a084e8 upstream.
-
-Commit bfdc0b4 adds code to restrict access to dmesg_restrict,
-however, it incorrectly alters kptr_restrict rather than
-dmesg_restrict.
-
-The original patch from Richard Weinberger
-(https://lkml.org/lkml/2011/3/14/362) alters dmesg_restrict as
-expected, and so the patch seems to have been misapplied.
-
-This adds the CAP_SYS_ADMIN check to both dmesg_restrict and
-kptr_restrict, since both are sensitive.
-
-Reported-by: Phillip Lougher <plougher at redhat.com>
-Signed-off-by: Kees Cook <keescook at chromium.org>
-Acked-by: Serge Hallyn <serge.hallyn at canonical.com>
-Acked-by: Richard Weinberger <richard at nod.at>
-Signed-off-by: James Morris <james.l.morris at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/sysctl.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/kernel/sysctl.c b/kernel/sysctl.c
-index ae27196..ea7ec7f 100644
---- a/kernel/sysctl.c
-+++ b/kernel/sysctl.c
-@@ -166,7 +166,7 @@ static int proc_taint(struct ctl_table *table, int write,
- #endif
- 
- #ifdef CONFIG_PRINTK
--static int proc_dmesg_restrict(struct ctl_table *table, int write,
-+static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
- 				void __user *buffer, size_t *lenp, loff_t *ppos);
- #endif
- 
-@@ -713,7 +713,7 @@ static struct ctl_table kern_table[] = {
- 		.data		= &dmesg_restrict,
- 		.maxlen		= sizeof(int),
- 		.mode		= 0644,
--		.proc_handler	= proc_dointvec_minmax,
-+		.proc_handler	= proc_dointvec_minmax_sysadmin,
- 		.extra1		= &zero,
- 		.extra2		= &one,
- 	},
-@@ -722,7 +722,7 @@ static struct ctl_table kern_table[] = {
- 		.data		= &kptr_restrict,
- 		.maxlen		= sizeof(int),
- 		.mode		= 0644,
--		.proc_handler	= proc_dmesg_restrict,
-+		.proc_handler	= proc_dointvec_minmax_sysadmin,
- 		.extra1		= &zero,
- 		.extra2		= &two,
- 	},
-@@ -2422,7 +2422,7 @@ static int proc_taint(struct ctl_table *table, int write,
- }
- 
- #ifdef CONFIG_PRINTK
--static int proc_dmesg_restrict(struct ctl_table *table, int write,
-+static int proc_dointvec_minmax_sysadmin(struct ctl_table *table, int write,
- 				void __user *buffer, size_t *lenp, loff_t *ppos)
- {
- 	if (write && !capable(CAP_SYS_ADMIN))
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0045-modpost-Fix-modpost-license-checking-of-vmlinux.o.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0045-modpost-Fix-modpost-license-checking-of-vmlinux.o.patch
deleted file mode 100644
index 8fcd35e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0045-modpost-Fix-modpost-license-checking-of-vmlinux.o.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From ee1916e58deb327a1bbaba6fc344e593fc54764f Mon Sep 17 00:00:00 2001
-From: Frank Rowand <frank.rowand at am.sony.com>
-Date: Mon, 9 Apr 2012 17:59:03 -0700
-Subject: [PATCH 45/60] modpost: Fix modpost license checking of vmlinux.o
-
-commit 258f742635360175564e9470eb060ff4d4b984e7 upstream.
-
-Commit f02e8a6596b7 ("module: Sort exported symbols") sorts symbols
-placing each of them in its own elf section.  This sorting and merging
-into the canonical sections are done by the linker.
-
-Unfortunately modpost to generate Module.symvers file parses vmlinux.o
-(which is not linked yet) and all modules object files (which aren't
-linked yet).  These aren't sanitized by the linker yet.  That breaks
-modpost that can't detect license properly for modules.
-
-This patch makes modpost aware of the new exported symbols structure.
-
-[ This above is a slightly corrected version of the explanation of the
-  problem, copied from commit 62a2635610db ("modpost: Fix modpost's
-  license checking V3").  That commit fixed the problem for module
-  object files, but not for vmlinux.o.  This patch fixes modpost for
-  vmlinux.o. ]
-
-Signed-off-by: Frank Rowand <frank.rowand at am.sony.com>
-Signed-off-by: Alessio Igor Bogani <abogani at kernel.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- scripts/mod/modpost.c |    7 +++++--
- scripts/mod/modpost.h |    1 +
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/scripts/mod/modpost.c b/scripts/mod/modpost.c
-index 159b4cc..619228d 100644
---- a/scripts/mod/modpost.c
-+++ b/scripts/mod/modpost.c
-@@ -132,8 +132,10 @@ static struct module *new_module(char *modname)
- 	/* strip trailing .o */
- 	s = strrchr(p, '.');
- 	if (s != NULL)
--		if (strcmp(s, ".o") == 0)
-+		if (strcmp(s, ".o") == 0) {
- 			*s = '\0';
-+			mod->is_dot_o = 1;
-+		}
- 
- 	/* add to list */
- 	mod->name = p;
-@@ -587,7 +589,8 @@ static void handle_modversions(struct module *mod, struct elf_info *info,
- 	unsigned int crc;
- 	enum export export;
- 
--	if (!is_vmlinux(mod->name) && strncmp(symname, "__ksymtab", 9) == 0)
-+	if ((!is_vmlinux(mod->name) || mod->is_dot_o) &&
-+	    strncmp(symname, "__ksymtab", 9) == 0)
- 		export = export_from_secname(info, get_secindex(info, sym));
- 	else
- 		export = export_from_sec(info, get_secindex(info, sym));
-diff --git a/scripts/mod/modpost.h b/scripts/mod/modpost.h
-index 2031119..51207e4 100644
---- a/scripts/mod/modpost.h
-+++ b/scripts/mod/modpost.h
-@@ -113,6 +113,7 @@ struct module {
- 	int has_cleanup;
- 	struct buffer dev_table_buf;
- 	char	     srcversion[25];
-+	int is_dot_o;
- };
- 
- struct elf_info {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0046-x86-PCI-use-host-bridge-_CRS-info-on-MSI-MS-7253.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0046-x86-PCI-use-host-bridge-_CRS-info-on-MSI-MS-7253.patch
deleted file mode 100644
index e122d2a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0046-x86-PCI-use-host-bridge-_CRS-info-on-MSI-MS-7253.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From b8c4c0ffa982752ee73d7eb5afaf39635e86ee43 Mon Sep 17 00:00:00 2001
-From: Jonathan Nieder <jrnieder at gmail.com>
-Date: Tue, 28 Feb 2012 11:51:10 -0700
-Subject: [PATCH 46/60] x86/PCI: use host bridge _CRS info on MSI MS-7253
-
-commit 8411371709610c826bf65684f886bfdfb5780ca1 upstream.
-
-In the spirit of commit 29cf7a30f8a0 ("x86/PCI: use host bridge _CRS
-info on ASUS M2V-MX SE"), this DMI quirk turns on "pci_use_crs" by
-default on a board that needs it.
-
-This fixes boot failures and oopses introduced in 3e3da00c01d0
-("x86/pci: AMD one chain system to use pci read out res").  The quirk
-is quite targetted (to a specific board and BIOS version) for two
-reasons:
-
- (1) to emphasize that this method of tackling the problem one quirk
-     at a time is a little insane
-
- (2) to give BIOS vendors an opportunity to use simpler tables and
-     allow us to return to generic behavior (whatever that happens to
-     be) with a later BIOS update
-
-In other words, I am not at all happy with having quirks like this.
-But it is even worse for the kernel not to work out of the box on
-these machines, so...
-
-Reference: https://bugzilla.kernel.org/show_bug.cgi?id=42619
-Reported-by: Svante Signell <svante.signell at telia.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/pci/acpi.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
-index f8348ab..dc00ad5 100644
---- a/arch/x86/pci/acpi.c
-+++ b/arch/x86/pci/acpi.c
-@@ -54,6 +54,17 @@ static const struct dmi_system_id pci_use_crs_table[] __initconst = {
- 			DMI_MATCH(DMI_BIOS_VENDOR, "American Megatrends Inc."),
- 		},
- 	},
-+	/* https://bugzilla.kernel.org/show_bug.cgi?id=42619 */
-+	{
-+		.callback = set_use_crs,
-+		.ident = "MSI MS-7253",
-+		.matches = {
-+			DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
-+			DMI_MATCH(DMI_BOARD_NAME, "MS-7253"),
-+			DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
-+			DMI_MATCH(DMI_BIOS_VERSION, "V1.6"),
-+		},
-+	},
- 	{}
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0047-x86-PCI-do-not-tie-MSI-MS-7253-use_crs-quirk-to-BIOS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0047-x86-PCI-do-not-tie-MSI-MS-7253-use_crs-quirk-to-BIOS.patch
deleted file mode 100644
index 240d1be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0047-x86-PCI-do-not-tie-MSI-MS-7253-use_crs-quirk-to-BIOS.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 6283a8eb02e48cf6f56470723c8b2f518dbe6554 Mon Sep 17 00:00:00 2001
-From: Jonathan Nieder <jrnieder at gmail.com>
-Date: Tue, 28 Feb 2012 15:31:35 -0600
-Subject: [PATCH 47/60] x86/PCI: do not tie MSI MS-7253 use_crs quirk to BIOS
- version
-
-commit a97f4f5e524bcd09a85ef0b8821a14d35e69335f upstream.
-
-Carlos was getting
-
-	WARNING: at drivers/pci/pci.c:118 pci_ioremap_bar+0x24/0x52()
-
-when probing his sound card, and sound did not work.  After adding
-pci=use_crs to the kernel command line, no more trouble.
-
-Ok, we can add a quirk.  dmidecode output reveals that this is an MSI
-MS-7253, for which we already have a quirk, but the short-sighted
-author tied the quirk to a single BIOS version, making it not kick in
-on Carlos's machine with BIOS V1.2.  If a later BIOS update makes it
-no longer necessary to look at the _CRS info it will still be
-harmless, so let's stop trying to guess which versions have and don't
-have accurate _CRS tables.
-
-Addresses https://bugtrack.alsa-project.org/alsa-bug/view.php?id=5533
-Also see <https://bugzilla.kernel.org/show_bug.cgi?id=42619>.
-
-Reported-by: Carlos Luna <caralu74 at gmail.com>
-Reviewed-by: Bjorn Helgaas <bhelgaas at google.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/pci/acpi.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
-index dc00ad5..0ed97d8 100644
---- a/arch/x86/pci/acpi.c
-+++ b/arch/x86/pci/acpi.c
-@@ -62,7 +62,6 @@ static const struct dmi_system_id pci_use_crs_table[] __initconst = {
- 			DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
- 			DMI_MATCH(DMI_BOARD_NAME, "MS-7253"),
- 			DMI_MATCH(DMI_BIOS_VENDOR, "Phoenix Technologies, LTD"),
--			DMI_MATCH(DMI_BIOS_VERSION, "V1.6"),
- 		},
- 	},
- 	{}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0048-TOMOYO-Fix-mount-flags-checking-order.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0048-TOMOYO-Fix-mount-flags-checking-order.patch
deleted file mode 100644
index 114b0a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0048-TOMOYO-Fix-mount-flags-checking-order.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 94366efb1ed1a86595b8b1bd4f0d22f581b5a6c2 Mon Sep 17 00:00:00 2001
-From: Tetsuo Handa <penguin-kernel at I-love.SAKURA.ne.jp>
-Date: Wed, 29 Feb 2012 21:53:22 +0900
-Subject: [PATCH 48/60] TOMOYO: Fix mount flags checking order.
-
-commit df91e49477a9be15921cb2854e1d12a3bdb5e425 upstream.
-
-Userspace can pass in arbitrary combinations of MS_* flags to mount().
-
-If both MS_BIND and one of MS_SHARED/MS_PRIVATE/MS_SLAVE/MS_UNBINDABLE are
-passed, device name which should be checked for MS_BIND was not checked because
-MS_SHARED/MS_PRIVATE/MS_SLAVE/MS_UNBINDABLE had higher priority than MS_BIND.
-
-If both one of MS_BIND/MS_MOVE and MS_REMOUNT are passed, device name which
-should not be checked for MS_REMOUNT was checked because MS_BIND/MS_MOVE had
-higher priority than MS_REMOUNT.
-
-Fix these bugs by changing priority to MS_REMOUNT -> MS_BIND ->
-MS_SHARED/MS_PRIVATE/MS_SLAVE/MS_UNBINDABLE -> MS_MOVE as with do_mount() does.
-
-Also, unconditionally return -EINVAL if more than one of
-MS_SHARED/MS_PRIVATE/MS_SLAVE/MS_UNBINDABLE is passed so that TOMOYO will not
-generate inaccurate audit logs, for commit 7a2e8a8f "VFS: Sanity check mount
-flags passed to change_mnt_propagation()" clarified that these flags must be
-exclusively passed.
-
-Signed-off-by: Tetsuo Handa <penguin-kernel at I-love.SAKURA.ne.jp>
-Signed-off-by: James Morris <james.l.morris at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- security/tomoyo/mount.c |   38 ++++++++++++++++++++------------------
- 1 file changed, 20 insertions(+), 18 deletions(-)
-
-diff --git a/security/tomoyo/mount.c b/security/tomoyo/mount.c
-index bee09d0..fe00cdf 100644
---- a/security/tomoyo/mount.c
-+++ b/security/tomoyo/mount.c
-@@ -199,30 +199,32 @@ int tomoyo_mount_permission(char *dev_name, struct path *path,
- 	if (flags & MS_REMOUNT) {
- 		type = tomoyo_mounts[TOMOYO_MOUNT_REMOUNT];
- 		flags &= ~MS_REMOUNT;
--	}
--	if (flags & MS_MOVE) {
--		type = tomoyo_mounts[TOMOYO_MOUNT_MOVE];
--		flags &= ~MS_MOVE;
--	}
--	if (flags & MS_BIND) {
-+	} else if (flags & MS_BIND) {
- 		type = tomoyo_mounts[TOMOYO_MOUNT_BIND];
- 		flags &= ~MS_BIND;
--	}
--	if (flags & MS_UNBINDABLE) {
--		type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_UNBINDABLE];
--		flags &= ~MS_UNBINDABLE;
--	}
--	if (flags & MS_PRIVATE) {
-+	} else if (flags & MS_SHARED) {
-+		if (flags & (MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
-+			return -EINVAL;
-+		type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_SHARED];
-+		flags &= ~MS_SHARED;
-+	} else if (flags & MS_PRIVATE) {
-+		if (flags & (MS_SHARED | MS_SLAVE | MS_UNBINDABLE))
-+			return -EINVAL;
- 		type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_PRIVATE];
- 		flags &= ~MS_PRIVATE;
--	}
--	if (flags & MS_SLAVE) {
-+	} else if (flags & MS_SLAVE) {
-+		if (flags & (MS_SHARED | MS_PRIVATE | MS_UNBINDABLE))
-+			return -EINVAL;
- 		type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_SLAVE];
- 		flags &= ~MS_SLAVE;
--	}
--	if (flags & MS_SHARED) {
--		type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_SHARED];
--		flags &= ~MS_SHARED;
-+	} else if (flags & MS_UNBINDABLE) {
-+		if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE))
-+			return -EINVAL;
-+		type = tomoyo_mounts[TOMOYO_MOUNT_MAKE_UNBINDABLE];
-+		flags &= ~MS_UNBINDABLE;
-+	} else if (flags & MS_MOVE) {
-+		type = tomoyo_mounts[TOMOYO_MOUNT_MOVE];
-+		flags &= ~MS_MOVE;
- 	}
- 	if (!type)
- 		type = "<NULL>";
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0049-Revert-x86-ioapic-Add-register-level-checks-to-detec.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0049-Revert-x86-ioapic-Add-register-level-checks-to-detec.patch
deleted file mode 100644
index 505f91f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0049-Revert-x86-ioapic-Add-register-level-checks-to-detec.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 411c3c5e1a3ce763286c32ec38523f111d836fdc Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Tue, 10 Apr 2012 16:04:49 -0700
-Subject: [PATCH 49/60] Revert "x86/ioapic: Add register level checks to
- detect bogus io-apic entries"
-
-This reverts commit 273fb194e86b795b08a724c7646d0f694949070b
-[73d63d038ee9f769f5e5b46792d227fe20e442c5 upstream]
-
-It causes problems, so needs to be reverted from 3.2-stable for now.
-
-Reported-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Cc: Jon Dufresne <jon at jondufresne.org>
-Cc: Suresh Siddha <suresh.b.siddha at intel.com>
-Cc: <yinghai at kernel.org>
-Cc: Josh Boyer <jwboyer at redhat.com>
-Cc: Ingo Molnar <mingo at elte.hu>
-Cc: Teck Choon Giam <giamteckchoon at gmail.com>
-Cc: Ben Guthro <ben at guthro.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/apic/io_apic.c |   40 ++++++++--------------------------------
- 1 file changed, 8 insertions(+), 32 deletions(-)
-
-diff --git a/arch/x86/kernel/apic/io_apic.c b/arch/x86/kernel/apic/io_apic.c
-index a25e276..6d939d7 100644
---- a/arch/x86/kernel/apic/io_apic.c
-+++ b/arch/x86/kernel/apic/io_apic.c
-@@ -3963,36 +3963,18 @@ int mp_find_ioapic_pin(int ioapic, u32 gsi)
- static __init int bad_ioapic(unsigned long address)
- {
- 	if (nr_ioapics >= MAX_IO_APICS) {
--		pr_warn("WARNING: Max # of I/O APICs (%d) exceeded (found %d), skipping\n",
--			MAX_IO_APICS, nr_ioapics);
-+		printk(KERN_WARNING "WARNING: Max # of I/O APICs (%d) exceeded "
-+		       "(found %d), skipping\n", MAX_IO_APICS, nr_ioapics);
- 		return 1;
- 	}
- 	if (!address) {
--		pr_warn("WARNING: Bogus (zero) I/O APIC address found in table, skipping!\n");
-+		printk(KERN_WARNING "WARNING: Bogus (zero) I/O APIC address"
-+		       " found in table, skipping!\n");
- 		return 1;
- 	}
- 	return 0;
- }
- 
--static __init int bad_ioapic_register(int idx)
--{
--	union IO_APIC_reg_00 reg_00;
--	union IO_APIC_reg_01 reg_01;
--	union IO_APIC_reg_02 reg_02;
--
--	reg_00.raw = io_apic_read(idx, 0);
--	reg_01.raw = io_apic_read(idx, 1);
--	reg_02.raw = io_apic_read(idx, 2);
--
--	if (reg_00.raw == -1 && reg_01.raw == -1 && reg_02.raw == -1) {
--		pr_warn("I/O APIC 0x%x registers return all ones, skipping!\n",
--			mpc_ioapic_addr(idx));
--		return 1;
--	}
--
--	return 0;
--}
--
- void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
- {
- 	int idx = 0;
-@@ -4009,12 +3991,6 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
- 	ioapics[idx].mp_config.apicaddr = address;
- 
- 	set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address);
--
--	if (bad_ioapic_register(idx)) {
--		clear_fixmap(FIX_IO_APIC_BASE_0 + idx);
--		return;
--	}
--
- 	ioapics[idx].mp_config.apicid = io_apic_unique_id(id);
- 	ioapics[idx].mp_config.apicver = io_apic_get_version(idx);
- 
-@@ -4035,10 +4011,10 @@ void __init mp_register_ioapic(int id, u32 address, u32 gsi_base)
- 	if (gsi_cfg->gsi_end >= gsi_top)
- 		gsi_top = gsi_cfg->gsi_end + 1;
- 
--	pr_info("IOAPIC[%d]: apic_id %d, version %d, address 0x%x, GSI %d-%d\n",
--		idx, mpc_ioapic_id(idx),
--		mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
--		gsi_cfg->gsi_base, gsi_cfg->gsi_end);
-+	printk(KERN_INFO "IOAPIC[%d]: apic_id %d, version %d, address 0x%x, "
-+	       "GSI %d-%d\n", idx, mpc_ioapic_id(idx),
-+	       mpc_ioapic_ver(idx), mpc_ioapic_addr(idx),
-+	       gsi_cfg->gsi_base, gsi_cfg->gsi_end);
- 
- 	nr_ioapics++;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0050-acer-wmi-No-wifi-rfkill-on-Sony-machines.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0050-acer-wmi-No-wifi-rfkill-on-Sony-machines.patch
deleted file mode 100644
index b564480..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0050-acer-wmi-No-wifi-rfkill-on-Sony-machines.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ad14133a305d5de3309f31b52c0e9456eb3310be Mon Sep 17 00:00:00 2001
-From: "Lee, Chun-Yi" <joeyli.kernel at gmail.com>
-Date: Fri, 23 Mar 2012 12:36:44 +0800
-Subject: [PATCH 50/60] acer-wmi: No wifi rfkill on Sony machines
-
-commit 5719b81988f3c24ff694dc3a37e35b35630a3966 upstream.
-
-The wireless rfkill should charged by sony-laptop but not acer-wmi.
-So, add Sony's SNY5001 acpi device to blacklist in acer-wmi.
-
-Tested on Sony Vaio
-
-Cc: Carlos Corbacho <carlos at strangeworlds.co.uk>
-Cc: Matthew Garrett <mjg at redhat.com>
-Cc: Mattia Dongili <malattia at linux.it>
-Cc: Dimitris N <ddarlac at gmail.com>
-Tested-by: Dimitris N <ddarlac at gmail.com>
-Signed-off-by: Lee, Chun-Yi <jlee at suse.com>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/platform/x86/acer-wmi.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/platform/x86/acer-wmi.c b/drivers/platform/x86/acer-wmi.c
-index 1e5290b..110e4af 100644
---- a/drivers/platform/x86/acer-wmi.c
-+++ b/drivers/platform/x86/acer-wmi.c
-@@ -692,6 +692,7 @@ static const struct acpi_device_id norfkill_ids[] = {
- 	{ "VPC2004", 0},
- 	{ "IBM0068", 0},
- 	{ "LEN0068", 0},
-+	{ "SNY5001", 0},	/* sony-laptop in charge */
- 	{ "", 0},
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0051-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncach.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0051-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncach.patch
deleted file mode 100644
index f755199..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0051-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncach.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 9f35dc6cc9f96e7a45b42dd5e4c8e2eee1e84e05 Mon Sep 17 00:00:00 2001
-From: Sachin Prabhu <sprabhu at redhat.com>
-Date: Thu, 22 Mar 2012 16:46:28 +0000
-Subject: [PATCH 51/60] Fix length of buffer copied in __nfs4_get_acl_uncached
-
-commit 20e0fa98b751facf9a1101edaefbc19c82616a68 upstream.
-
-_copy_from_pages() used to copy data from the temporary buffer to the
-user passed buffer is passed the wrong size parameter when copying
-data. res.acl_len contains both the bitmap and acl lenghts while
-acl_len contains the acl length after adjusting for the bitmap size.
-
-Signed-off-by: Sachin Prabhu <sprabhu at redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Cc: Josh Boyer <jwboyer at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4proc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index d945700..757293b 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3618,7 +3618,7 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 		if (acl_len > buflen)
- 			goto out_free;
- 		_copy_from_pages(buf, pages, res.acl_data_offset,
--				res.acl_len);
-+				acl_len);
- 	}
- 	ret = acl_len;
- out_free:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0052-sched-x86-Fix-overflow-in-cyc2ns_offset.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0052-sched-x86-Fix-overflow-in-cyc2ns_offset.patch
deleted file mode 100644
index 0300631..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0052-sched-x86-Fix-overflow-in-cyc2ns_offset.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 844d37ab7b6069d15d096a879225ac1e71b51974 Mon Sep 17 00:00:00 2001
-From: Salman Qazi <sqazi at google.com>
-Date: Fri, 9 Mar 2012 16:41:01 -0800
-Subject: [PATCH 52/60] sched/x86: Fix overflow in cyc2ns_offset
-
-commit 9993bc635d01a6ee7f6b833b4ee65ce7c06350b1 upstream.
-
-When a machine boots up, the TSC generally gets reset.  However,
-when kexec is used to boot into a kernel, the TSC value would be
-carried over from the previous kernel.  The computation of
-cycns_offset in set_cyc2ns_scale is prone to an overflow, if the
-machine has been up more than 208 days prior to the kexec.  The
-overflow happens when we multiply *scale, even though there is
-enough room to store the final answer.
-
-We fix this issue by decomposing tsc_now into the quotient and
-remainder of division by CYC2NS_SCALE_FACTOR and then performing
-the multiplication separately on the two components.
-
-Refactor code to share the calculation with the previous
-fix in __cycles_2_ns().
-
-Signed-off-by: Salman Qazi <sqazi at google.com>
-Acked-by: John Stultz <john.stultz at linaro.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Paul Turner <pjt at google.com>
-Cc: john stultz <johnstul at us.ibm.com>
-Link: http://lkml.kernel.org/r/20120310004027.19291.88460.stgit@dungbeetle.mtv.corp.google.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Cc: Mike Galbraith <efault at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/timer.h |    8 ++------
- arch/x86/kernel/tsc.c        |    3 ++-
- include/linux/kernel.h       |   13 +++++++++++++
- 3 files changed, 17 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/include/asm/timer.h b/arch/x86/include/asm/timer.h
-index 431793e..34baa0e 100644
---- a/arch/x86/include/asm/timer.h
-+++ b/arch/x86/include/asm/timer.h
-@@ -57,14 +57,10 @@ DECLARE_PER_CPU(unsigned long long, cyc2ns_offset);
- 
- static inline unsigned long long __cycles_2_ns(unsigned long long cyc)
- {
--	unsigned long long quot;
--	unsigned long long rem;
- 	int cpu = smp_processor_id();
- 	unsigned long long ns = per_cpu(cyc2ns_offset, cpu);
--	quot = (cyc >> CYC2NS_SCALE_FACTOR);
--	rem = cyc & ((1ULL << CYC2NS_SCALE_FACTOR) - 1);
--	ns += quot * per_cpu(cyc2ns, cpu) +
--		((rem * per_cpu(cyc2ns, cpu)) >> CYC2NS_SCALE_FACTOR);
-+	ns += mult_frac(cyc, per_cpu(cyc2ns, cpu),
-+			(1UL << CYC2NS_SCALE_FACTOR));
- 	return ns;
- }
- 
-diff --git a/arch/x86/kernel/tsc.c b/arch/x86/kernel/tsc.c
-index 3fe298a..1ec515b 100644
---- a/arch/x86/kernel/tsc.c
-+++ b/arch/x86/kernel/tsc.c
-@@ -622,7 +622,8 @@ static void set_cyc2ns_scale(unsigned long cpu_khz, int cpu)
- 
- 	if (cpu_khz) {
- 		*scale = (NSEC_PER_MSEC << CYC2NS_SCALE_FACTOR)/cpu_khz;
--		*offset = ns_now - (tsc_now * *scale >> CYC2NS_SCALE_FACTOR);
-+		*offset = ns_now - mult_frac(tsc_now, *scale,
-+					     (1UL << CYC2NS_SCALE_FACTOR));
- 	}
- 
- 	sched_clock_idle_wakeup_event(0);
-diff --git a/include/linux/kernel.h b/include/linux/kernel.h
-index e8b1597..a70783d 100644
---- a/include/linux/kernel.h
-+++ b/include/linux/kernel.h
-@@ -85,6 +85,19 @@
- }							\
- )
- 
-+/*
-+ * Multiplies an integer by a fraction, while avoiding unnecessary
-+ * overflow or loss of precision.
-+ */
-+#define mult_frac(x, numer, denom)(			\
-+{							\
-+	typeof(x) quot = (x) / (denom);			\
-+	typeof(x) rem  = (x) % (denom);			\
-+	(quot * (numer)) + ((rem * (numer)) / (denom));	\
-+}							\
-+)
-+
-+
- #define _RET_IP_		(unsigned long)__builtin_return_address(0)
- #define _THIS_IP_  ({ __label__ __here; __here: (unsigned long)&&__here; })
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0053-mfd-Clear-twl6030-IRQ-status-register-only-once.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0053-mfd-Clear-twl6030-IRQ-status-register-only-once.patch
deleted file mode 100644
index 02d849a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0053-mfd-Clear-twl6030-IRQ-status-register-only-once.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 84eaf07729408e49027beda2fb0861aad6f96bce Mon Sep 17 00:00:00 2001
-From: Nishanth Menon <nm at ti.com>
-Date: Wed, 22 Feb 2012 20:03:45 -0600
-Subject: [PATCH 53/60] mfd: Clear twl6030 IRQ status register only once
-
-commit 3f8349e6e98ba0455437724589072523865eae5e upstream.
-
-TWL6030 family of PMIC use a shadow interrupt status register
-while kernel processes the current interrupt event.
-However, any write(0 or 1) to register INT_STS_A, INT_STS_B or
-INT_STS_C clears all 3 interrupt status registers.
-
-Since clear of the interrupt is done on 32k clk, depending on I2C
-bus speed, we could in-adverently clear the status of a interrupt
-status pending on shadow register in the current implementation.
-This is due to the fact that multi-byte i2c write operation into
-three seperate status register could result in multiple load
-and clear of status and result in lost interrupts.
-
-Instead, doing a single byte write to INT_STS_A register with 0x0
-will clear all three interrupt status registers without the related
-risk.
-
-Acked-by: Santosh Shilimkar <santosh.shilimkar at ti.com>
-Signed-off-by: Nishanth Menon <nm at ti.com>
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mfd/twl6030-irq.c |   13 +++++++++++--
- 1 file changed, 11 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mfd/twl6030-irq.c b/drivers/mfd/twl6030-irq.c
-index 3eee45f..83f4988 100644
---- a/drivers/mfd/twl6030-irq.c
-+++ b/drivers/mfd/twl6030-irq.c
-@@ -187,8 +187,17 @@ static int twl6030_irq_thread(void *data)
- 			}
- 		local_irq_enable();
- 		}
--		ret = twl_i2c_write(TWL_MODULE_PIH, sts.bytes,
--				REG_INT_STS_A, 3); /* clear INT_STS_A */
-+
-+		/*
-+		 * NOTE:
-+		 * Simulation confirms that documentation is wrong w.r.t the
-+		 * interrupt status clear operation. A single *byte* write to
-+		 * any one of STS_A to STS_C register results in all three
-+		 * STS registers being reset. Since it does not matter which
-+		 * value is written, all three registers are cleared on a
-+		 * single byte write, so we just use 0x0 to clear.
-+		 */
-+		ret = twl_i2c_write_u8(TWL_MODULE_PIH, 0x00, REG_INT_STS_A);
- 		if (ret)
- 			pr_warning("twl6030: I2C error in clearing PIH ISR\n");
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0054-USB-Add-Motorola-Rokr-E6-Id-to-the-USBNet-driver-zau.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0054-USB-Add-Motorola-Rokr-E6-Id-to-the-USBNet-driver-zau.patch
deleted file mode 100644
index 5a194e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0054-USB-Add-Motorola-Rokr-E6-Id-to-the-USBNet-driver-zau.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From d784d12ff4ada66b51ad2f394ab6cd391859897c Mon Sep 17 00:00:00 2001
-From: Guan Xin <guanx.bac at gmail.com>
-Date: Mon, 26 Mar 2012 04:11:46 +0000
-Subject: [PATCH 54/60] USB: Add Motorola Rokr E6 Id to the USBNet driver
- "zaurus"
-
-commit a2daf263107ba3eb6db33931881731fa51c95045 upstream.
-
-Added Vendor/Device Id of Motorola Rokr E6 (22b8:6027) so it can be
-recognized by the "zaurus" USBNet driver.
-Applies to Linux 3.2.13 and 2.6.39.4.
-Signed-off-by: Guan Xin <guanx.bac at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/zaurus.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/net/usb/zaurus.c b/drivers/net/usb/zaurus.c
-index 246b3bb..c1e6a44 100644
---- a/drivers/net/usb/zaurus.c
-+++ b/drivers/net/usb/zaurus.c
-@@ -332,6 +332,11 @@ static const struct usb_device_id	products [] = {
- 	.driver_info = ZAURUS_PXA_INFO,
- },
- {
-+	/* Motorola Rokr E6 */
-+	USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x6027, USB_CLASS_COMM,
-+			USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE),
-+	.driver_info = (unsigned long) &bogus_mdlm_info,
-+}, {
- 	/* Motorola MOTOMAGX phones */
- 	USB_DEVICE_AND_INTERFACE_INFO(0x22b8, 0x6425, USB_CLASS_COMM,
- 			USB_CDC_SUBCLASS_MDLM, USB_CDC_PROTO_NONE),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0055-ioat-fix-size-of-completion-for-Xen.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0055-ioat-fix-size-of-completion-for-Xen.patch
deleted file mode 100644
index 8dc9bec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0055-ioat-fix-size-of-completion-for-Xen.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-From 5c626e88cf0666b3663b56cdd9c43daff62153cd Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Fri, 23 Mar 2012 13:36:42 -0700
-Subject: [PATCH 55/60] ioat: fix size of 'completion' for Xen
-
-commit 275029353953c2117941ade84f02a2303912fad1 upstream.
-
-Starting with v3.2 Jonathan reports that Xen crashes loading the ioatdma
-driver.  A debug run shows:
-
-  ioatdma 0000:00:16.4: desc[0]: (0x300cc7000->0x300cc7040) cookie: 0 flags: 0x2 ctl: 0x29 (op: 0 int_en: 1 compl: 1)
-  ...
-  ioatdma 0000:00:16.4: ioat_get_current_completion: phys_complete: 0xcc7000
-
-...which shows that in this environment GFP_KERNEL memory may be backed
-by a 64-bit dma address.  This breaks the driver's assumption that an
-unsigned long should be able to contain the physical address for
-descriptor memory.  Switch to dma_addr_t which beyond being the right
-size, is the true type for the data i.e. an io-virtual address
-inidicating the engine's last processed descriptor.
-
-Reported-by: Jonathan Nieder <jrnieder at gmail.com>
-Reported-by: William Dauchy <wdauchy at gmail.com>
-Tested-by: William Dauchy <wdauchy at gmail.com>
-Tested-by: Dave Jiang <dave.jiang at intel.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/dma/ioat/dma.c    |   16 ++++++++--------
- drivers/dma/ioat/dma.h    |    6 +++---
- drivers/dma/ioat/dma_v2.c |    8 ++++----
- drivers/dma/ioat/dma_v3.c |    8 ++++----
- 4 files changed, 19 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/dma/ioat/dma.c b/drivers/dma/ioat/dma.c
-index a4d6cb0..6595180 100644
---- a/drivers/dma/ioat/dma.c
-+++ b/drivers/dma/ioat/dma.c
-@@ -548,9 +548,9 @@ void ioat_dma_unmap(struct ioat_chan_common *chan, enum dma_ctrl_flags flags,
- 			   PCI_DMA_TODEVICE, flags, 0);
- }
- 
--unsigned long ioat_get_current_completion(struct ioat_chan_common *chan)
-+dma_addr_t ioat_get_current_completion(struct ioat_chan_common *chan)
- {
--	unsigned long phys_complete;
-+	dma_addr_t phys_complete;
- 	u64 completion;
- 
- 	completion = *chan->completion;
-@@ -571,7 +571,7 @@ unsigned long ioat_get_current_completion(struct ioat_chan_common *chan)
- }
- 
- bool ioat_cleanup_preamble(struct ioat_chan_common *chan,
--			   unsigned long *phys_complete)
-+			   dma_addr_t *phys_complete)
- {
- 	*phys_complete = ioat_get_current_completion(chan);
- 	if (*phys_complete == chan->last_completion)
-@@ -582,14 +582,14 @@ bool ioat_cleanup_preamble(struct ioat_chan_common *chan,
- 	return true;
- }
- 
--static void __cleanup(struct ioat_dma_chan *ioat, unsigned long phys_complete)
-+static void __cleanup(struct ioat_dma_chan *ioat, dma_addr_t phys_complete)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
- 	struct list_head *_desc, *n;
- 	struct dma_async_tx_descriptor *tx;
- 
--	dev_dbg(to_dev(chan), "%s: phys_complete: %lx\n",
--		 __func__, phys_complete);
-+	dev_dbg(to_dev(chan), "%s: phys_complete: %llx\n",
-+		 __func__, (unsigned long long) phys_complete);
- 	list_for_each_safe(_desc, n, &ioat->used_desc) {
- 		struct ioat_desc_sw *desc;
- 
-@@ -655,7 +655,7 @@ static void __cleanup(struct ioat_dma_chan *ioat, unsigned long phys_complete)
- static void ioat1_cleanup(struct ioat_dma_chan *ioat)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
--	unsigned long phys_complete;
-+	dma_addr_t phys_complete;
- 
- 	prefetch(chan->completion);
- 
-@@ -701,7 +701,7 @@ static void ioat1_timer_event(unsigned long data)
- 		mod_timer(&chan->timer, jiffies + COMPLETION_TIMEOUT);
- 		spin_unlock_bh(&ioat->desc_lock);
- 	} else if (test_bit(IOAT_COMPLETION_PENDING, &chan->state)) {
--		unsigned long phys_complete;
-+		dma_addr_t phys_complete;
- 
- 		spin_lock_bh(&ioat->desc_lock);
- 		/* if we haven't made progress and we have already
-diff --git a/drivers/dma/ioat/dma.h b/drivers/dma/ioat/dma.h
-index 5216c8a..8bebddd 100644
---- a/drivers/dma/ioat/dma.h
-+++ b/drivers/dma/ioat/dma.h
-@@ -88,7 +88,7 @@ struct ioatdma_device {
- struct ioat_chan_common {
- 	struct dma_chan common;
- 	void __iomem *reg_base;
--	unsigned long last_completion;
-+	dma_addr_t last_completion;
- 	spinlock_t cleanup_lock;
- 	dma_cookie_t completed_cookie;
- 	unsigned long state;
-@@ -333,7 +333,7 @@ int __devinit ioat_dma_self_test(struct ioatdma_device *device);
- void __devexit ioat_dma_remove(struct ioatdma_device *device);
- struct dca_provider * __devinit ioat_dca_init(struct pci_dev *pdev,
- 					      void __iomem *iobase);
--unsigned long ioat_get_current_completion(struct ioat_chan_common *chan);
-+dma_addr_t ioat_get_current_completion(struct ioat_chan_common *chan);
- void ioat_init_channel(struct ioatdma_device *device,
- 		       struct ioat_chan_common *chan, int idx);
- enum dma_status ioat_dma_tx_status(struct dma_chan *c, dma_cookie_t cookie,
-@@ -341,7 +341,7 @@ enum dma_status ioat_dma_tx_status(struct dma_chan *c, dma_cookie_t cookie,
- void ioat_dma_unmap(struct ioat_chan_common *chan, enum dma_ctrl_flags flags,
- 		    size_t len, struct ioat_dma_descriptor *hw);
- bool ioat_cleanup_preamble(struct ioat_chan_common *chan,
--			   unsigned long *phys_complete);
-+			   dma_addr_t *phys_complete);
- void ioat_kobject_add(struct ioatdma_device *device, struct kobj_type *type);
- void ioat_kobject_del(struct ioatdma_device *device);
- extern const struct sysfs_ops ioat_sysfs_ops;
-diff --git a/drivers/dma/ioat/dma_v2.c b/drivers/dma/ioat/dma_v2.c
-index 5d65f83..cb8864d 100644
---- a/drivers/dma/ioat/dma_v2.c
-+++ b/drivers/dma/ioat/dma_v2.c
-@@ -126,7 +126,7 @@ static void ioat2_start_null_desc(struct ioat2_dma_chan *ioat)
- 	spin_unlock_bh(&ioat->prep_lock);
- }
- 
--static void __cleanup(struct ioat2_dma_chan *ioat, unsigned long phys_complete)
-+static void __cleanup(struct ioat2_dma_chan *ioat, dma_addr_t phys_complete)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
- 	struct dma_async_tx_descriptor *tx;
-@@ -178,7 +178,7 @@ static void __cleanup(struct ioat2_dma_chan *ioat, unsigned long phys_complete)
- static void ioat2_cleanup(struct ioat2_dma_chan *ioat)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
--	unsigned long phys_complete;
-+	dma_addr_t phys_complete;
- 
- 	spin_lock_bh(&chan->cleanup_lock);
- 	if (ioat_cleanup_preamble(chan, &phys_complete))
-@@ -259,7 +259,7 @@ int ioat2_reset_sync(struct ioat_chan_common *chan, unsigned long tmo)
- static void ioat2_restart_channel(struct ioat2_dma_chan *ioat)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
--	unsigned long phys_complete;
-+	dma_addr_t phys_complete;
- 
- 	ioat2_quiesce(chan, 0);
- 	if (ioat_cleanup_preamble(chan, &phys_complete))
-@@ -274,7 +274,7 @@ void ioat2_timer_event(unsigned long data)
- 	struct ioat_chan_common *chan = &ioat->base;
- 
- 	if (test_bit(IOAT_COMPLETION_PENDING, &chan->state)) {
--		unsigned long phys_complete;
-+		dma_addr_t phys_complete;
- 		u64 status;
- 
- 		status = ioat_chansts(chan);
-diff --git a/drivers/dma/ioat/dma_v3.c b/drivers/dma/ioat/dma_v3.c
-index f519c93..2dbf32b 100644
---- a/drivers/dma/ioat/dma_v3.c
-+++ b/drivers/dma/ioat/dma_v3.c
-@@ -256,7 +256,7 @@ static bool desc_has_ext(struct ioat_ring_ent *desc)
-  * The difference from the dma_v2.c __cleanup() is that this routine
-  * handles extended descriptors and dma-unmapping raid operations.
-  */
--static void __cleanup(struct ioat2_dma_chan *ioat, unsigned long phys_complete)
-+static void __cleanup(struct ioat2_dma_chan *ioat, dma_addr_t phys_complete)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
- 	struct ioat_ring_ent *desc;
-@@ -314,7 +314,7 @@ static void __cleanup(struct ioat2_dma_chan *ioat, unsigned long phys_complete)
- static void ioat3_cleanup(struct ioat2_dma_chan *ioat)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
--	unsigned long phys_complete;
-+	dma_addr_t phys_complete;
- 
- 	spin_lock_bh(&chan->cleanup_lock);
- 	if (ioat_cleanup_preamble(chan, &phys_complete))
-@@ -333,7 +333,7 @@ static void ioat3_cleanup_event(unsigned long data)
- static void ioat3_restart_channel(struct ioat2_dma_chan *ioat)
- {
- 	struct ioat_chan_common *chan = &ioat->base;
--	unsigned long phys_complete;
-+	dma_addr_t phys_complete;
- 
- 	ioat2_quiesce(chan, 0);
- 	if (ioat_cleanup_preamble(chan, &phys_complete))
-@@ -348,7 +348,7 @@ static void ioat3_timer_event(unsigned long data)
- 	struct ioat_chan_common *chan = &ioat->base;
- 
- 	if (test_bit(IOAT_COMPLETION_PENDING, &chan->state)) {
--		unsigned long phys_complete;
-+		dma_addr_t phys_complete;
- 		u64 status;
- 
- 		status = ioat_chansts(chan);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0056-ASoC-ak4642-fixup-mute-needs-1-step.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0056-ASoC-ak4642-fixup-mute-needs-1-step.patch
deleted file mode 100644
index c534626..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0056-ASoC-ak4642-fixup-mute-needs-1-step.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ef89a7b5f82deaac432a4a797155b199d7d39c67 Mon Sep 17 00:00:00 2001
-From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
-Date: Wed, 4 Apr 2012 23:28:01 -0700
-Subject: [PATCH 56/60] ASoC: ak4642: fixup: mute needs +1 step
-
-commit 1f99e44cf059d2ed43c5a0724fa738b83800f725 upstream.
-
-ak4642 out_tlv is +12.0dB to -115.0 dB, and it supports mute.
-But current settings didn't care +1 step for mute.
-This patch adds it
-
-Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/ak4642.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/ak4642.c b/sound/soc/codecs/ak4642.c
-index 12c1bde..1c4999d 100644
---- a/sound/soc/codecs/ak4642.c
-+++ b/sound/soc/codecs/ak4642.c
-@@ -144,7 +144,7 @@
-  * min : 0xFE : -115.0 dB
-  * mute: 0xFF
-  */
--static const DECLARE_TLV_DB_SCALE(out_tlv, -11500, 50, 1);
-+static const DECLARE_TLV_DB_SCALE(out_tlv, -11550, 50, 1);
- 
- static const struct snd_kcontrol_new ak4642_snd_controls[] = {
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0057-cred-copy_process-should-clear-child-replacement_ses.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0057-cred-copy_process-should-clear-child-replacement_ses.patch
deleted file mode 100644
index df101f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0057-cred-copy_process-should-clear-child-replacement_ses.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 58063126ba5d427e0dae0e9319f5dabb5aeee22f Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Mon, 9 Apr 2012 21:03:50 +0200
-Subject: [PATCH 57/60] cred: copy_process() should clear
- child->replacement_session_keyring
-
-commit 79549c6dfda0603dba9a70a53467ce62d9335c33 upstream.
-
-keyctl_session_to_parent(task) sets ->replacement_session_keyring,
-it should be processed and cleared by key_replace_session_keyring().
-
-However, this task can fork before it notices TIF_NOTIFY_RESUME and
-the new child gets the bogus ->replacement_session_keyring copied by
-dup_task_struct(). This is obviously wrong and, if nothing else, this
-leads to put_cred(already_freed_cred).
-
-change copy_creds() to clear this member. If copy_process() fails
-before this point the wrong ->replacement_session_keyring doesn't
-matter, exit_creds() won't be called.
-
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Acked-by: David Howells <dhowells at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/cred.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/kernel/cred.c b/kernel/cred.c
-index 5791612..48c6fd3 100644
---- a/kernel/cred.c
-+++ b/kernel/cred.c
-@@ -385,6 +385,8 @@ int copy_creds(struct task_struct *p, unsigned long clone_flags)
- 	struct cred *new;
- 	int ret;
- 
-+	p->replacement_session_keyring = NULL;
-+
- 	if (
- #ifdef CONFIG_KEYS
- 		!p->cred->thread_keyring &&
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0058-iommu-amd-Make-sure-IOMMU-interrupts-are-re-enabled-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0058-iommu-amd-Make-sure-IOMMU-interrupts-are-re-enabled-.patch
deleted file mode 100644
index 9b5e63a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0058-iommu-amd-Make-sure-IOMMU-interrupts-are-re-enabled-.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 94a56d3bf83bb9f3876415b7e6eea80877e10c16 Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Wed, 11 Apr 2012 18:40:38 +0200
-Subject: [PATCH 58/60] iommu/amd: Make sure IOMMU interrupts are re-enabled
- on resume
-
-commit 9ddd592a191b32f2ee6c4b6ed2bd52665c3a49f5 upstream
-
-Unfortunatly the interrupts for the event log and the
-peripheral page-faults are only enabled at boot but not
-re-enabled at resume. Fix that for 3.2.
-
-Cc: stable at vger.kernel.org
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
----
- drivers/iommu/amd_iommu_init.c |   24 +++++++++++++++++-------
- 1 file changed, 17 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
-index 5c74179..20d5852 100644
---- a/drivers/iommu/amd_iommu_init.c
-+++ b/drivers/iommu/amd_iommu_init.c
-@@ -1033,8 +1033,9 @@ static int iommu_setup_msi(struct amd_iommu *iommu)
- {
- 	int r;
- 
--	if (pci_enable_msi(iommu->dev))
--		return 1;
-+	r = pci_enable_msi(iommu->dev);
-+	if (r)
-+		return r;
- 
- 	r = request_threaded_irq(iommu->dev->irq,
- 				 amd_iommu_int_handler,
-@@ -1044,24 +1045,33 @@ static int iommu_setup_msi(struct amd_iommu *iommu)
- 
- 	if (r) {
- 		pci_disable_msi(iommu->dev);
--		return 1;
-+		return r;
- 	}
- 
- 	iommu->int_enabled = true;
--	iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
- 
- 	return 0;
- }
- 
- static int iommu_init_msi(struct amd_iommu *iommu)
- {
-+	int ret;
-+
- 	if (iommu->int_enabled)
--		return 0;
-+		goto enable_faults;
- 
- 	if (pci_find_capability(iommu->dev, PCI_CAP_ID_MSI))
--		return iommu_setup_msi(iommu);
-+		ret = iommu_setup_msi(iommu);
-+	else
-+		ret = -ENODEV;
- 
--	return 1;
-+	if (ret)
-+		return ret;
-+
-+enable_faults:
-+	iommu_feature_enable(iommu, CONTROL_EVT_INT_EN);
-+
-+	return 0;
- }
- 
- /****************************************************************************
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0059-Bluetooth-Fix-l2cap-conn-failures-for-ssp-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0059-Bluetooth-Fix-l2cap-conn-failures-for-ssp-devices.patch
deleted file mode 100644
index 673bcc9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0059-Bluetooth-Fix-l2cap-conn-failures-for-ssp-devices.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 263961fa56c27b335c9598d7204e004893480253 Mon Sep 17 00:00:00 2001
-From: Peter Hurley <peter at hurleysoftware.com>
-Date: Mon, 2 Apr 2012 13:44:56 +0200
-Subject: [PATCH 59/60] Bluetooth: Fix l2cap conn failures for ssp devices
-
-commit 18daf1644e634bae951a6e3d4d19d89170209762 upstream
-
-Commit 330605423c fixed l2cap conn establishment for non-ssp remote
-devices by not setting HCI_CONN_ENCRYPT_PEND every time conn security
-is tested (which was always returning failure on any subsequent
-security checks).
-
-However, this broke l2cap conn establishment for ssp remote devices
-when an ACL link was already established at SDP-level security. This
-fix ensures that encryption must be pending whenever authentication
-is also pending.
-
-Signed-off-by: Peter Hurley <peter at hurleysoftware.com>
-Tested-by: Daniel Wagner <daniel.wagner at bmw-carit.de>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
----
- net/bluetooth/hci_conn.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/bluetooth/hci_conn.c b/net/bluetooth/hci_conn.c
-index c1c597e..98bfbd5 100644
---- a/net/bluetooth/hci_conn.c
-+++ b/net/bluetooth/hci_conn.c
-@@ -608,6 +608,10 @@ static int hci_conn_auth(struct hci_conn *conn, __u8 sec_level, __u8 auth_type)
- 
- 	if (!test_and_set_bit(HCI_CONN_AUTH_PEND, &conn->pend)) {
- 		struct hci_cp_auth_requested cp;
-+
-+		/* encrypt must be pending if auth is also pending */
-+		set_bit(HCI_CONN_ENCRYPT_PEND, &conn->pend);
-+
- 		cp.handle = cpu_to_le16(conn->handle);
- 		hci_send_cmd(conn->hdev, HCI_OP_AUTH_REQUESTED,
- 							sizeof(cp), &cp);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0060-Linux-3.2.15.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0060-Linux-3.2.15.patch
deleted file mode 100644
index 2127a27..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.15/0060-Linux-3.2.15.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From f7e832912de7d193a1185b9f1440111cbd1dbc46 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 13 Apr 2012 09:11:03 -0700
-Subject: [PATCH 60/60] Linux 3.2.15
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index afe4c7d..6195122 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 14
-+SUBLEVEL = 15
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0001-drm-i915-mask-transcoder-select-bits-before-setting-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0001-drm-i915-mask-transcoder-select-bits-before-setting-.patch
deleted file mode 100644
index 2aae432..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0001-drm-i915-mask-transcoder-select-bits-before-setting-.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 23bf11c621c4c3acfdf83cf7f5587a2463d039ec Mon Sep 17 00:00:00 2001
-From: Jesse Barnes <jbarnes at virtuousgeek.org>
-Date: Thu, 12 Jan 2012 14:51:17 -0800
-Subject: [PATCH 01/68] drm/i915: mask transcoder select bits before setting
- them on LVDS
-
-commit 7885d2052bd94395e337709cfba093a41f273ff1 upstream.
-
-The transcoder port may changed from mode set to mode set, so make sure
-to mask out the selection bits before setting the right ones or we'll
-get black screens when going from transcoder B to A.
-
-Tested-by: Vincent Vanackere <vincent.vanackere at gmail.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Reviewed-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_display.c |   13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 9011f48..390768f 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -5646,12 +5646,15 @@ static int ironlake_crtc_mode_set(struct drm_crtc *crtc,
- 	if (is_lvds) {
- 		temp = I915_READ(PCH_LVDS);
- 		temp |= LVDS_PORT_EN | LVDS_A0A2_CLKA_POWER_UP;
--		if (HAS_PCH_CPT(dev))
-+		if (HAS_PCH_CPT(dev)) {
-+			temp &= ~PORT_TRANS_SEL_MASK;
- 			temp |= PORT_TRANS_SEL_CPT(pipe);
--		else if (pipe == 1)
--			temp |= LVDS_PIPEB_SELECT;
--		else
--			temp &= ~LVDS_PIPEB_SELECT;
-+		} else {
-+			if (pipe == 1)
-+				temp |= LVDS_PIPEB_SELECT;
-+			else
-+				temp &= ~LVDS_PIPEB_SELECT;
-+		}
- 
- 		/* set the corresponsding LVDS_BORDER bit */
- 		temp |= dev_priv->lvds_border_bits;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0002-drm-radeon-kms-fix-DVO-setup-on-some-r4xx-chips.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0002-drm-radeon-kms-fix-DVO-setup-on-some-r4xx-chips.patch
deleted file mode 100644
index aa7ef08..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0002-drm-radeon-kms-fix-DVO-setup-on-some-r4xx-chips.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 7943d755c7abd153158d25f50e2d35cec9bf7e73 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 3 Apr 2012 17:05:41 -0400
-Subject: [PATCH 02/68] drm/radeon/kms: fix DVO setup on some r4xx chips
-
-commit afceb9319f21b18ee3bc15ee9a5f92e18ef8a8c9 upstream.
-
-Some r4xx chips have the wrong frev in the
-DVOEncoderControl table.  It should always be 1
-on r4xx.  Fixes modesetting on DVO on r4xx chips
-with the bad frev.
-
-Reported by twied on #radeon.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/atombios_encoders.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
-index 0f8eb48..5351ee1 100644
---- a/drivers/gpu/drm/radeon/atombios_encoders.c
-+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
-@@ -246,6 +246,10 @@ atombios_dvo_setup(struct drm_encoder *encoder, int action)
- 	if (!atom_parse_cmd_header(rdev->mode_info.atom_context, index, &frev, &crev))
- 		return;
- 
-+	/* some R4xx chips have the wrong frev */
-+	if (rdev->family <= CHIP_RV410)
-+		frev = 1;
-+
- 	switch (frev) {
- 	case 1:
- 		switch (crev) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0003-drm-i915-ringbuffer-Exclude-last-2-cachlines-of-ring.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0003-drm-i915-ringbuffer-Exclude-last-2-cachlines-of-ring.patch
deleted file mode 100644
index a4d9528..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0003-drm-i915-ringbuffer-Exclude-last-2-cachlines-of-ring.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 283aa265f1ec642ce070bb3f1d3d69777b544144 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Mon, 9 Apr 2012 13:59:46 +0100
-Subject: [PATCH 03/68] drm/i915/ringbuffer: Exclude last 2 cachlines of ring
- on 845g
-
-commit 27c1cbd06a7620b354cbb363834f3bb8df4f410d upstream.
-
-The 845g shares the errata with i830 whereby executing a command
-within 2 cachelines of the end of the ringbuffer may cause a GPU hang.
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 30a9af9..8673581 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -1052,7 +1052,7 @@ int intel_init_ring_buffer(struct drm_device *dev,
- 	 * of the buffer.
- 	 */
- 	ring->effective_size = ring->size;
--	if (IS_I830(ring->dev))
-+	if (IS_I830(ring->dev) || IS_845G(ring->dev))
- 		ring->effective_size -= 128;
- 
- 	return 0;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0004-drm-radeon-only-add-the-mm-i2c-bus-if-the-hw_i2c-mod.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0004-drm-radeon-only-add-the-mm-i2c-bus-if-the-hw_i2c-mod.patch
deleted file mode 100644
index ff612c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0004-drm-radeon-only-add-the-mm-i2c-bus-if-the-hw_i2c-mod.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 40d10e38c38f6f39e29b78688a4bcb368e265b5c Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 10 Apr 2012 12:14:27 -0400
-Subject: [PATCH 04/68] drm/radeon: only add the mm i2c bus if the hw_i2c
- module param is set
-
-commit 46783150a6552f9513f08e62cfcc07125d6e502b upstream.
-
-It seems it can corrupt the monitor EDID in certain cases on certain
-boards when running sensors detect.  It's rarely used anyway outside
-of AIW boards.
-
-http://lists.lm-sensors.org/pipermail/lm-sensors/2012-April/035847.html
-http://lists.freedesktop.org/archives/xorg/2011-January/052239.html
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_i2c.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_i2c.c b/drivers/gpu/drm/radeon/radeon_i2c.c
-index 7bb1b07..1441b00 100644
---- a/drivers/gpu/drm/radeon/radeon_i2c.c
-+++ b/drivers/gpu/drm/radeon/radeon_i2c.c
-@@ -890,6 +890,10 @@ struct radeon_i2c_chan *radeon_i2c_create(struct drm_device *dev,
- 	struct radeon_i2c_chan *i2c;
- 	int ret;
- 
-+	/* don't add the mm_i2c bus unless hw_i2c is enabled */
-+	if (rec->mm_i2c && (radeon_hw_i2c == 0))
-+		return NULL;
-+
- 	i2c = kzalloc(sizeof(struct radeon_i2c_chan), GFP_KERNEL);
- 	if (i2c == NULL)
- 		return NULL;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0005-drm-i915-properly-compute-dp-dithering-for-user-crea.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0005-drm-i915-properly-compute-dp-dithering-for-user-crea.patch
deleted file mode 100644
index d1b02ef..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0005-drm-i915-properly-compute-dp-dithering-for-user-crea.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From bfbf01f9468232ac6856b46665b6998afa45e4a6 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Tue, 10 Apr 2012 10:42:36 +0200
-Subject: [PATCH 05/68] drm/i915: properly compute dp dithering for
- user-created modes
-
-commit c4867936474183332db4c19791a65fdad6474fd5 upstream.
-
-We've only computed whether we need to fall back to 6bpc due to dp
-link bandwidth constrains in mode_valid, but not mode_fixup. Under
-various circumstances X likes to create new modes which then lack
-proper 6bpc flags (if required), resulting in mode_fixup failures and
-ultimately black screens.
-
-Chris Wilson pointed out that we still get things wrong for bpp > 24,
-but that should be fixed in another patch (and it'll be easier because
-this patch consolidates the logic).
-
-The likely culprit for this regression is
-
-commit 3d794f87238f74d80e78a7611c7fbde8a54c85c2
-Author: Keith Packard <keithp at keithp.com>
-Date:   Wed Jan 25 08:16:25 2012 -0800
-
-    drm/i915: Force explicit bpp selection for intel_dp_link_required
-
-v2: Fix indentation and tune down the too bold claim that this should
-fix the world. Both noticed by Chris Wilson.
-
-v3: Try to really git add things.
-
-Reported-and-tested-by: Brice Goglin <Brice.Goglin at ens-lyon.org>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48170
-Cc: stable at kernel.org
-Reviewed-by: Adam Jackson <ajax at redhat.com>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_dp.c |   49 ++++++++++++++++++++++++++++-----------
- 1 file changed, 35 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index 94f860c..12eb789 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -219,14 +219,38 @@ intel_dp_max_data_rate(int max_link_clock, int max_lanes)
- 	return (max_link_clock * max_lanes * 8) / 10;
- }
- 
-+static bool
-+intel_dp_adjust_dithering(struct intel_dp *intel_dp,
-+			  struct drm_display_mode *mode,
-+			  struct drm_display_mode *adjusted_mode)
-+{
-+	int max_link_clock = intel_dp_link_clock(intel_dp_max_link_bw(intel_dp));
-+	int max_lanes = intel_dp_max_lane_count(intel_dp);
-+	int max_rate, mode_rate;
-+
-+	mode_rate = intel_dp_link_required(mode->clock, 24);
-+	max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes);
-+
-+	if (mode_rate > max_rate) {
-+		mode_rate = intel_dp_link_required(mode->clock, 18);
-+		if (mode_rate > max_rate)
-+			return false;
-+
-+		if (adjusted_mode)
-+			adjusted_mode->private_flags
-+				|= INTEL_MODE_DP_FORCE_6BPC;
-+
-+		return true;
-+	}
-+
-+	return true;
-+}
-+
- static int
- intel_dp_mode_valid(struct drm_connector *connector,
- 		    struct drm_display_mode *mode)
- {
- 	struct intel_dp *intel_dp = intel_attached_dp(connector);
--	int max_link_clock = intel_dp_link_clock(intel_dp_max_link_bw(intel_dp));
--	int max_lanes = intel_dp_max_lane_count(intel_dp);
--	int max_rate, mode_rate;
- 
- 	if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) {
- 		if (mode->hdisplay > intel_dp->panel_fixed_mode->hdisplay)
-@@ -236,16 +260,8 @@ intel_dp_mode_valid(struct drm_connector *connector,
- 			return MODE_PANEL;
- 	}
- 
--	mode_rate = intel_dp_link_required(mode->clock, 24);
--	max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes);
--
--	if (mode_rate > max_rate) {
--			mode_rate = intel_dp_link_required(mode->clock, 18);
--			if (mode_rate > max_rate)
--				return MODE_CLOCK_HIGH;
--			else
--				mode->private_flags |= INTEL_MODE_DP_FORCE_6BPC;
--	}
-+	if (!intel_dp_adjust_dithering(intel_dp, mode, NULL))
-+		return MODE_CLOCK_HIGH;
- 
- 	if (mode->clock < 10000)
- 		return MODE_CLOCK_LOW;
-@@ -673,7 +689,7 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
- 	int lane_count, clock;
- 	int max_lane_count = intel_dp_max_lane_count(intel_dp);
- 	int max_clock = intel_dp_max_link_bw(intel_dp) == DP_LINK_BW_2_7 ? 1 : 0;
--	int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;
-+	int bpp;
- 	static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 };
- 
- 	if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) {
-@@ -687,6 +703,11 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
- 		mode->clock = intel_dp->panel_fixed_mode->clock;
- 	}
- 
-+	if (!intel_dp_adjust_dithering(intel_dp, mode, adjusted_mode))
-+		return false;
-+
-+	bpp = adjusted_mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;
-+
- 	for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) {
- 		for (clock = 0; clock <= max_clock; clock++) {
- 			int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0006-drm-i915-make-rc6-module-parameter-read-only.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0006-drm-i915-make-rc6-module-parameter-read-only.patch
deleted file mode 100644
index 12db79c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0006-drm-i915-make-rc6-module-parameter-read-only.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From c4e630199ffb5b9fd2b25dbb222316f092915a14 Mon Sep 17 00:00:00 2001
-From: Jesse Barnes <jbarnes at virtuousgeek.org>
-Date: Wed, 11 Apr 2012 09:39:02 -0700
-Subject: [PATCH 06/68] drm/i915: make rc6 module parameter read-only
-
-commit f57f9c167af7cb3fd315e6a8ebe194a8aea0832a upstream.
-
-People have been getting confused and thinking this is a runtime control.
-
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_drv.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index e52b705..d0f8830 100644
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -64,7 +64,7 @@ MODULE_PARM_DESC(semaphores,
- 		"Use semaphores for inter-ring sync (default: -1 (use per-chip defaults))");
- 
- int i915_enable_rc6 __read_mostly = -1;
--module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0600);
-+module_param_named(i915_enable_rc6, i915_enable_rc6, int, 0400);
- MODULE_PARM_DESC(i915_enable_rc6,
- 		"Enable power-saving render C-state 6 (default: -1 (use per-chip default)");
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0007-rtlwifi-Add-missing-DMA-buffer-unmapping-for-PCI-dri.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0007-rtlwifi-Add-missing-DMA-buffer-unmapping-for-PCI-dri.patch
deleted file mode 100644
index 2c7668c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0007-rtlwifi-Add-missing-DMA-buffer-unmapping-for-PCI-dri.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 98861c7257e3ce6dd351c07abed856e73add7858 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Mon, 26 Mar 2012 10:48:20 -0500
-Subject: [PATCH 07/68] rtlwifi: Add missing DMA buffer unmapping for PCI
- drivers
-
-commit 673f7786e205c87b5d978c62827b9a66d097bebb upstream.
-
-In https://bugzilla.kernel.org/show_bug.cgi?id=42976, a system with driver
-rtl8192se used as an AP suffers from "Out of SW-IOMMU space" errors. These
-are caused by the DMA buffers used for beacons never being unmapped.
-
-This bug was also reported at
-https://bugs.launchpad.net/ubuntu/+source/linux/+bug/961618
-
-Reported-and-Tested-by: Da Xue <da at lessconfused.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/rtlwifi/pci.c |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
-index 9afcad3..d44d398 100644
---- a/drivers/net/wireless/rtlwifi/pci.c
-+++ b/drivers/net/wireless/rtlwifi/pci.c
-@@ -926,8 +926,13 @@ static void _rtl_pci_prepare_bcn_tasklet(struct ieee80211_hw *hw)
- 	memset(&tcb_desc, 0, sizeof(struct rtl_tcb_desc));
- 	ring = &rtlpci->tx_ring[BEACON_QUEUE];
- 	pskb = __skb_dequeue(&ring->queue);
--	if (pskb)
-+	if (pskb) {
-+		struct rtl_tx_desc *entry = &ring->desc[ring->idx];
-+		pci_unmap_single(rtlpci->pdev, rtlpriv->cfg->ops->get_desc(
-+				 (u8 *) entry, true, HW_DESC_TXBUFF_ADDR),
-+				 pskb->len, PCI_DMA_TODEVICE);
- 		kfree_skb(pskb);
-+	}
- 
- 	/*NB: the beacon data buffer must be 32-bit aligned. */
- 	pskb = ieee80211_beacon_get(hw, mac->vif);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0008-ARM-7379-1-DT-fix-atags_to_fdt-second-call-site.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0008-ARM-7379-1-DT-fix-atags_to_fdt-second-call-site.patch
deleted file mode 100644
index 77b44ae..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0008-ARM-7379-1-DT-fix-atags_to_fdt-second-call-site.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2c1b118701f57e31e048458bae612029472c768d Mon Sep 17 00:00:00 2001
-From: Marc Zyngier <Marc.Zyngier at arm.com>
-Date: Wed, 11 Apr 2012 14:52:55 +0100
-Subject: [PATCH 08/68] ARM: 7379/1: DT: fix atags_to_fdt() second call site
-
-commit 9c5fd9e85f574d9d0361b2b878f55732290afe5b upstream.
-
-atags_to_fdt() returns 1 when it fails to find a valid FDT signature.
-The CONFIG_ARM_ATAG_DTB_COMPAT code is supposed to retry with another
-location, but only does so when the initial call doesn't fail.
-
-Fix this by using the correct condition in the assembly code.
-
-Acked-by: Nicolas Pitre <nicolas.pitre at linaro.org>
-Signed-off-by: Marc Zyngier <marc.zyngier at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/boot/compressed/head.S |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/boot/compressed/head.S b/arch/arm/boot/compressed/head.S
-index c2effc9..9c18ebd 100644
---- a/arch/arm/boot/compressed/head.S
-+++ b/arch/arm/boot/compressed/head.S
-@@ -273,7 +273,7 @@ restart:	adr	r0, LC0
- 		add	r0, r0, #0x100
- 		mov	r1, r6
- 		sub	r2, sp, r6
--		blne	atags_to_fdt
-+		bleq	atags_to_fdt
- 
- 		ldmfd	sp!, {r0-r3, ip, lr}
- 		sub	sp, sp, #0x10000
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0009-ARM-7384-1-ThumbEE-Disable-userspace-TEEHBR-access-f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0009-ARM-7384-1-ThumbEE-Disable-userspace-TEEHBR-access-f.patch
deleted file mode 100644
index d4c1734..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0009-ARM-7384-1-ThumbEE-Disable-userspace-TEEHBR-access-f.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a950b5b3f82c7cfd682ccc62b65b269268772fff Mon Sep 17 00:00:00 2001
-From: Jonathan Austin <Jonathan.Austin at arm.com>
-Date: Thu, 12 Apr 2012 17:45:25 +0100
-Subject: [PATCH 09/68] ARM: 7384/1: ThumbEE: Disable userspace TEEHBR access
- for !CONFIG_ARM_THUMBEE
-
-commit 078c04545ba56da21567728a909a496df5ff730d upstream.
-
-Currently when ThumbEE is not enabled (!CONFIG_ARM_THUMBEE) the ThumbEE
-register states are not saved/restored at context switch. The default state
-of the ThumbEE Ctrl register (TEECR) allows userspace accesses to the
-ThumbEE Base Handler register (TEEHBR). This can cause unexpected behaviour
-when people use ThumbEE on !CONFIG_ARM_THUMBEE kernels, as well as allowing
-covert communication - eg between userspace tasks running inside chroot
-jails.
-
-This patch sets up TEECR in order to prevent user-space access to TEEHBR
-when !CONFIG_ARM_THUMBEE. In this case, tasks are sent SIGILL if they try to
-access TEEHBR.
-
-Reviewed-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Jonathan Austin <jonathan.austin at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mm/proc-v7.S |   12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
-index 82ef81d..785365e 100644
---- a/arch/arm/mm/proc-v7.S
-+++ b/arch/arm/mm/proc-v7.S
-@@ -382,6 +382,18 @@ __v7_setup:
- 	mcr	p15, 0, r5, c10, c2, 0		@ write PRRR
- 	mcr	p15, 0, r6, c10, c2, 1		@ write NMRR
- #endif
-+#ifndef CONFIG_ARM_THUMBEE
-+	mrc	p15, 0, r0, c0, c1, 0		@ read ID_PFR0 for ThumbEE
-+	and	r0, r0, #(0xf << 12)		@ ThumbEE enabled field
-+	teq	r0, #(1 << 12)			@ check if ThumbEE is present
-+	bne	1f
-+	mov	r5, #0
-+	mcr	p14, 6, r5, c1, c0, 0		@ Initialize TEEHBR to 0
-+	mrc	p14, 6, r0, c0, c0, 0		@ load TEECR
-+	orr	r0, r0, #1			@ set the 1st bit in order to
-+	mcr	p14, 6, r0, c0, c0, 0		@ stop userspace TEEHBR access
-+1:
-+#endif
- 	adr	r5, v7_crval
- 	ldmia	r5, {r5, r6}
- #ifdef CONFIG_CPU_ENDIAN_BE8
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0010-md-bitmap-prevent-bitmap_daemon_work-running-while-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0010-md-bitmap-prevent-bitmap_daemon_work-running-while-i.patch
deleted file mode 100644
index 4970e44..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0010-md-bitmap-prevent-bitmap_daemon_work-running-while-i.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From b694e091929929c8b56fcb1fbf28cba81dc2fe04 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Thu, 12 Apr 2012 16:05:06 +1000
-Subject: [PATCH 10/68] md/bitmap: prevent bitmap_daemon_work running while
- initialising bitmap
-
-commit afbaa90b80b1ec66e5137cc3824746bfdf559b18 upstream.
-
-If a bitmap is added while the array is active, it is possible
-for bitmap_daemon_work to run while the bitmap is being
-initialised.
-This is particularly a problem if bitmap_daemon_work sees
-bitmap->filemap as non-NULL before it has been filled in properly.
-So hold bitmap_info.mutex while filling in ->filemap
-to prevent problems.
-
-This patch is suitable for any -stable kernel, though it might not
-apply cleanly before about 3.1.
-
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/md/bitmap.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/md/bitmap.c b/drivers/md/bitmap.c
-index 2a8722b..62a8e68 100644
---- a/drivers/md/bitmap.c
-+++ b/drivers/md/bitmap.c
-@@ -1819,7 +1819,9 @@ int bitmap_load(struct mddev *mddev)
- 		 * re-add of a missing device */
- 		start = mddev->recovery_cp;
- 
-+	mutex_lock(&mddev->bitmap_info.mutex);
- 	err = bitmap_init_from_disk(bitmap, start);
-+	mutex_unlock(&mddev->bitmap_info.mutex);
- 
- 	if (err)
- 		goto out;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0011-Bluetooth-uart-ldisc-Fix-memory-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0011-Bluetooth-uart-ldisc-Fix-memory-leak.patch
deleted file mode 100644
index 7efdc23..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0011-Bluetooth-uart-ldisc-Fix-memory-leak.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b69f7a1d24573678da4e44e9f2f7028640a6d592 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Wed, 11 Apr 2012 11:24:35 +0200
-Subject: [PATCH 11/68] Bluetooth: uart-ldisc: Fix memory leak
-
-This is a partial, self-contained, minimal backport of commit
-797fe796c4335b35d95d5326824513befdb5d1e9 upstream which fixes the memory
-leak:
-
-Bluetooth: uart-ldisc: Fix memory leak and remove destruct cb
-
-We currently leak the hci_uart object if HCI_UART_PROTO_SET is never set
-because the hci-destruct callback will then never be called.  This fix
-removes the hci-destruct callback and frees the driver internal private
-hci_uart object directly on tty-close. We call hci_unregister_dev() here
-so the hci-core will never call our callbacks again (except destruct).
-Therefore, we can safely free the driver internal data right away and
-set the destruct callback to NULL.
-
-Signed-off-by: David Herrmann <dh.herrmann at googlemail.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/hci_ldisc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
-index 48ad2a7..36dafef 100644
---- a/drivers/bluetooth/hci_ldisc.c
-+++ b/drivers/bluetooth/hci_ldisc.c
-@@ -237,7 +237,6 @@ static void hci_uart_destruct(struct hci_dev *hdev)
- 		return;
- 
- 	BT_DBG("%s", hdev->name);
--	kfree(hdev->driver_data);
- }
- 
- /* ------ LDISC part ------ */
-@@ -316,6 +315,7 @@ static void hci_uart_tty_close(struct tty_struct *tty)
- 				hci_free_dev(hdev);
- 			}
- 		}
-+		kfree(hu);
- 	}
- }
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0012-Bluetooth-hci_ldisc-fix-NULL-pointer-dereference-on-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0012-Bluetooth-hci_ldisc-fix-NULL-pointer-dereference-on-.patch
deleted file mode 100644
index bf4047a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0012-Bluetooth-hci_ldisc-fix-NULL-pointer-dereference-on-.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 37a8e3758523b47f282d19502ea361f1d5c2a033 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Thu, 15 Mar 2012 14:48:40 +0100
-Subject: [PATCH 12/68] Bluetooth: hci_ldisc: fix NULL-pointer dereference on
- tty_close
-
-commit 33b69bf80a3704d45341928e4ff68b6ebd470686 upstream.
-
-Do not close protocol driver until device has been unregistered.
-
-This fixes a race between tty_close and hci_dev_open which can result in
-a NULL-pointer dereference.
-
-The line discipline closes the protocol driver while we may still have
-hci_dev_open sleeping on the req_lock mutex resulting in a NULL-pointer
-dereference when lock is acquired and hci_init_req called.
-
-Bug is 100% reproducible using hciattach and a disconnected serial port:
-
-0. # hciattach -n ttyO1 any noflow
-
-1. hci_dev_open called from hci_power_on grabs req lock
-2. hci_init_req executes but device fails to initialise (times out
-   eventually)
-3. hci_dev_open is called from hci_sock_ioctl and sleeps on req lock
-4. hci_uart_tty_close detaches protocol driver and cancels init req
-5. hci_dev_open (1) releases req lock
-6. hci_dev_open (3) grabs req lock, calls hci_init_req, which triggers oops
-   when request is prepared in hci_uart_send_frame
-
-[  137.201263] Unable to handle kernel NULL pointer dereference at virtual address 00000028
-[  137.209838] pgd = c0004000
-[  137.212677] [00000028] *pgd=00000000
-[  137.216430] Internal error: Oops: 17 [#1]
-[  137.220642] Modules linked in:
-[  137.223846] CPU: 0    Tainted: G        W     (3.3.0-rc6-dirty #406)
-[  137.230529] PC is at __lock_acquire+0x5c/0x1ab0
-[  137.235290] LR is at lock_acquire+0x9c/0x128
-[  137.239776] pc : [<c0071490>]    lr : [<c00733f8>]    psr: 20000093
-[  137.239776] sp : cf869dd8  ip : c0529554  fp : c051c730
-[  137.251800] r10: 00000000  r9 : cf8673c0  r8 : 00000080
-[  137.257293] r7 : 00000028  r6 : 00000002  r5 : 00000000  r4 : c053fd70
-[  137.264129] r3 : 00000000  r2 : 00000000  r1 : 00000000  r0 : 00000001
-[  137.270965] Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
-[  137.278717] Control: 10c5387d  Table: 8f0f4019  DAC: 00000015
-[  137.284729] Process kworker/u:1 (pid: 7, stack limit = 0xcf8682e8)
-[  137.291229] Stack: (0xcf869dd8 to 0xcf86a000)
-[  137.295776] 9dc0:                                                       c0529554 00000000
-[  137.304351] 9de0: cf8673c0 cf868000 d03ea1ef cf868000 000001ef 00000470 00000000 00000002
-[  137.312927] 9e00: cf8673c0 00000001 c051c730 c00716ec 0000000c 00000440 c0529554 00000001
-[  137.321533] 9e20: c051c730 cf868000 d03ea1f3 00000000 c053b978 00000000 00000028 cf868000
-[  137.330078] 9e40: 00000000 00000000 00000002 00000000 00000000 c00733f8 00000002 00000080
-[  137.338684] 9e60: 00000000 c02a1d50 00000000 00000001 60000013 c0969a1c 60000093 c053b96c
-[  137.347259] 9e80: 00000002 00000018 20000013 c02a1d50 cf0ac000 00000000 00000002 cf868000
-[  137.355834] 9ea0: 00000089 c0374130 00000002 00000000 c02a1d50 cf0ac000 0000000c cf0fc540
-[  137.364410] 9ec0: 00000018 c02a1d50 cf0fc540 00000000 cf0fc540 c0282238 c028220c cf178d80
-[  137.372985] 9ee0: 127525d8 c02821cc 9a1fa451 c032727c 9a1fa451 127525d8 cf0fc540 cf0ac4ec
-[  137.381561] 9f00: cf0ac000 cf0fc540 cf0ac584 c03285f4 c0328580 cf0ac4ec cf85c740 c05510cc
-[  137.390136] 9f20: ce825400 c004c914 00000002 00000000 c004c884 ce8254f5 cf869f48 00000000
-[  137.398712] 9f40: c0328580 ce825415 c0a7f914 c061af64 00000000 c048cf3c cf8673c0 cf85c740
-[  137.407287] 9f60: c05510cc c051a66c c05510ec c05510c4 cf85c750 cf868000 00000089 c004d6ac
-[  137.415863] 9f80: 00000000 c0073d14 00000001 cf853ed8 cf85c740 c004d558 00000013 00000000
-[  137.424438] 9fa0: 00000000 00000000 00000000 c00516b0 00000000 00000000 cf85c740 00000000
-[  137.433013] 9fc0: 00000001 dead4ead ffffffff ffffffff c0551674 00000000 00000000 c0450aa4
-[  137.441589] 9fe0: cf869fe0 cf869fe0 cf853ed8 c005162c c0013b30 c0013b30 00ffff00 00ffff00
-[  137.450164] [<c0071490>] (__lock_acquire+0x5c/0x1ab0) from [<c00733f8>] (lock_acquire+0x9c/0x128)
-[  137.459503] [<c00733f8>] (lock_acquire+0x9c/0x128) from [<c0374130>] (_raw_spin_lock_irqsave+0x44/0x58)
-[  137.469360] [<c0374130>] (_raw_spin_lock_irqsave+0x44/0x58) from [<c02a1d50>] (skb_queue_tail+0x18/0x48)
-[  137.479339] [<c02a1d50>] (skb_queue_tail+0x18/0x48) from [<c0282238>] (h4_enqueue+0x2c/0x34)
-[  137.488189] [<c0282238>] (h4_enqueue+0x2c/0x34) from [<c02821cc>] (hci_uart_send_frame+0x34/0x68)
-[  137.497497] [<c02821cc>] (hci_uart_send_frame+0x34/0x68) from [<c032727c>] (hci_send_frame+0x50/0x88)
-[  137.507171] [<c032727c>] (hci_send_frame+0x50/0x88) from [<c03285f4>] (hci_cmd_work+0x74/0xd4)
-[  137.516204] [<c03285f4>] (hci_cmd_work+0x74/0xd4) from [<c004c914>] (process_one_work+0x1a0/0x4ec)
-[  137.525604] [<c004c914>] (process_one_work+0x1a0/0x4ec) from [<c004d6ac>] (worker_thread+0x154/0x344)
-[  137.535278] [<c004d6ac>] (worker_thread+0x154/0x344) from [<c00516b0>] (kthread+0x84/0x90)
-[  137.543975] [<c00516b0>] (kthread+0x84/0x90) from [<c0013b30>] (kernel_thread_exit+0x0/0x8)
-[  137.552734] Code: e59f4e5c e5941000 e3510000 0a000031 (e5971000)
-[  137.559234] ---[ end trace 1b75b31a2719ed1e ]---
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/hci_ldisc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/bluetooth/hci_ldisc.c b/drivers/bluetooth/hci_ldisc.c
-index 36dafef..8f3d6db 100644
---- a/drivers/bluetooth/hci_ldisc.c
-+++ b/drivers/bluetooth/hci_ldisc.c
-@@ -309,11 +309,11 @@ static void hci_uart_tty_close(struct tty_struct *tty)
- 			hci_uart_close(hdev);
- 
- 		if (test_and_clear_bit(HCI_UART_PROTO_SET, &hu->flags)) {
--			hu->proto->close(hu);
- 			if (hdev) {
- 				hci_unregister_dev(hdev);
- 				hci_free_dev(hdev);
- 			}
-+			hu->proto->close(hu);
- 		}
- 		kfree(hu);
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0013-ext4-address-scalability-issue-by-removing-extent-ca.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0013-ext4-address-scalability-issue-by-removing-extent-ca.patch
deleted file mode 100644
index cbf03c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0013-ext4-address-scalability-issue-by-removing-extent-ca.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From bc445f05f44d9e21294eaa8686837b588a27a66a Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Mon, 16 Apr 2012 12:16:20 -0400
-Subject: [PATCH 13/68] ext4: address scalability issue by removing extent
- cache statistics
-
-commit 9cd70b347e9761ea2d2ac3d758c529a48a8193e6 upstream.
-
-Andi Kleen and Tim Chen have reported that under certain circumstances
-the extent cache statistics are causing scalability problems due to
-cache line bounces.
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ext4/ext4.h    |    3 ---
- fs/ext4/extents.c |    4 ----
- fs/ext4/super.c   |   16 ----------------
- 3 files changed, 23 deletions(-)
-
-diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index dbae4d9..7b1cd5c 100644
---- a/fs/ext4/ext4.h
-+++ b/fs/ext4/ext4.h
-@@ -1185,9 +1185,6 @@ struct ext4_sb_info {
- 	unsigned long s_ext_blocks;
- 	unsigned long s_ext_extents;
- #endif
--	/* ext4 extent cache stats */
--	unsigned long extent_cache_hits;
--	unsigned long extent_cache_misses;
- 
- 	/* for buddy allocator */
- 	struct ext4_group_info ***s_group_info;
-diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
-index 7507036..c2a2012 100644
---- a/fs/ext4/extents.c
-+++ b/fs/ext4/extents.c
-@@ -2052,10 +2052,6 @@ static int ext4_ext_check_cache(struct inode *inode, ext4_lblk_t block,
- 		ret = 1;
- 	}
- errout:
--	if (!ret)
--		sbi->extent_cache_misses++;
--	else
--		sbi->extent_cache_hits++;
- 	trace_ext4_ext_in_cache(inode, block, ret);
- 	spin_unlock(&EXT4_I(inode)->i_block_reservation_lock);
- 	return ret;
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index 9281dbe..961059b 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -2504,18 +2504,6 @@ static ssize_t lifetime_write_kbytes_show(struct ext4_attr *a,
- 			  EXT4_SB(sb)->s_sectors_written_start) >> 1)));
- }
- 
--static ssize_t extent_cache_hits_show(struct ext4_attr *a,
--				      struct ext4_sb_info *sbi, char *buf)
--{
--	return snprintf(buf, PAGE_SIZE, "%lu\n", sbi->extent_cache_hits);
--}
--
--static ssize_t extent_cache_misses_show(struct ext4_attr *a,
--					struct ext4_sb_info *sbi, char *buf)
--{
--	return snprintf(buf, PAGE_SIZE, "%lu\n", sbi->extent_cache_misses);
--}
--
- static ssize_t inode_readahead_blks_store(struct ext4_attr *a,
- 					  struct ext4_sb_info *sbi,
- 					  const char *buf, size_t count)
-@@ -2573,8 +2561,6 @@ static struct ext4_attr ext4_attr_##name = __ATTR(name, mode, show, store)
- EXT4_RO_ATTR(delayed_allocation_blocks);
- EXT4_RO_ATTR(session_write_kbytes);
- EXT4_RO_ATTR(lifetime_write_kbytes);
--EXT4_RO_ATTR(extent_cache_hits);
--EXT4_RO_ATTR(extent_cache_misses);
- EXT4_ATTR_OFFSET(inode_readahead_blks, 0644, sbi_ui_show,
- 		 inode_readahead_blks_store, s_inode_readahead_blks);
- EXT4_RW_ATTR_SBI_UI(inode_goal, s_inode_goal);
-@@ -2590,8 +2576,6 @@ static struct attribute *ext4_attrs[] = {
- 	ATTR_LIST(delayed_allocation_blocks),
- 	ATTR_LIST(session_write_kbytes),
- 	ATTR_LIST(lifetime_write_kbytes),
--	ATTR_LIST(extent_cache_hits),
--	ATTR_LIST(extent_cache_misses),
- 	ATTR_LIST(inode_readahead_blks),
- 	ATTR_LIST(inode_goal),
- 	ATTR_LIST(mb_stats),
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0014-ia64-fix-futex_atomic_cmpxchg_inatomic.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0014-ia64-fix-futex_atomic_cmpxchg_inatomic.patch
deleted file mode 100644
index 9175698..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0014-ia64-fix-futex_atomic_cmpxchg_inatomic.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 75d50bfacb4322a1259307cfa50aa0f87a02f160 Mon Sep 17 00:00:00 2001
-From: "Luck, Tony" <tony.luck at intel.com>
-Date: Mon, 16 Apr 2012 16:28:01 -0700
-Subject: [PATCH 14/68] ia64: fix futex_atomic_cmpxchg_inatomic()
-
-commit c76f39bddb84f93f70a5520d9253ec0317bec216 upstream.
-
-Michel Lespinasse cleaned up the futex calling conventions in commit
-37a9d912b24f ("futex: Sanitize cmpxchg_futex_value_locked API").
-
-But the ia64 implementation was subtly broken.  Gcc does not know that
-register "r8" will be updated by the fault handler if the cmpxchg
-instruction takes an exception.  So it feels safe in letting the
-initialization of r8 slide to after the cmpxchg.  Result: we always
-return 0 whether the user address faulted or not.
-
-Fix by moving the initialization of r8 into the __asm__ code so gcc
-won't move it.
-
-Reported-by: <emeric.maschino at gmail.com>
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42757
-Tested-by: <emeric.maschino at gmail.com>
-Acked-by: Michel Lespinasse <walken at google.com>
-Signed-off-by: Tony Luck <tony.luck at intel.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/ia64/include/asm/futex.h |    9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/arch/ia64/include/asm/futex.h b/arch/ia64/include/asm/futex.h
-index 8428525..21ab376 100644
---- a/arch/ia64/include/asm/futex.h
-+++ b/arch/ia64/include/asm/futex.h
-@@ -107,15 +107,16 @@ futex_atomic_cmpxchg_inatomic(u32 *uval, u32 __user *uaddr,
- 		return -EFAULT;
- 
- 	{
--		register unsigned long r8 __asm ("r8") = 0;
-+		register unsigned long r8 __asm ("r8");
- 		unsigned long prev;
- 		__asm__ __volatile__(
- 			"	mf;;					\n"
--			"	mov ar.ccv=%3;;				\n"
--			"[1:]	cmpxchg4.acq %0=[%1],%2,ar.ccv		\n"
-+			"	mov %0=r0				\n"
-+			"	mov ar.ccv=%4;;				\n"
-+			"[1:]	cmpxchg4.acq %1=[%2],%3,ar.ccv		\n"
- 			"	.xdata4 \"__ex_table\", 1b-., 2f-.	\n"
- 			"[2:]"
--			: "=r" (prev)
-+			: "=r" (r8), "=r" (prev)
- 			: "r" (uaddr), "r" (newval),
- 			  "rO" ((long) (unsigned) oldval)
- 			: "memory");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0015-drivers-rtc-rtc-pl031.c-enable-clock-on-all-ST-varia.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0015-drivers-rtc-rtc-pl031.c-enable-clock-on-all-ST-varia.patch
deleted file mode 100644
index a861101..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0015-drivers-rtc-rtc-pl031.c-enable-clock-on-all-ST-varia.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4886a34fc21445895de3bc2584c46792d1a11bec Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij at linaro.org>
-Date: Thu, 12 Apr 2012 12:49:16 -0700
-Subject: [PATCH 15/68] drivers/rtc/rtc-pl031.c: enable clock on all ST
- variants
-
-commit 2f3972168353d355854d6381f1f360ce83b723e5 upstream.
-
-The ST variants of the PL031 all require bit 26 in the control register
-to be set before they work properly.  Discovered this when testing on
-the Nomadik board where it would suprisingly just stand still.
-
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Cc: Mian Yousaf Kaukab <mian.yousaf.kaukab at stericsson.com>
-Cc: Alessandro Rubini <rubini at unipv.it>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/rtc/rtc-pl031.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
-index ff1b84b..e86edfc 100644
---- a/drivers/rtc/rtc-pl031.c
-+++ b/drivers/rtc/rtc-pl031.c
-@@ -339,8 +339,7 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
- 	dev_dbg(&adev->dev, "revision = 0x%01x\n", ldata->hw_revision);
- 
- 	/* Enable the clockwatch on ST Variants */
--	if ((ldata->hw_designer == AMBA_VENDOR_ST) &&
--	    (ldata->hw_revision > 1))
-+	if (ldata->hw_designer == AMBA_VENDOR_ST)
- 		writel(readl(ldata->base + RTC_CR) | RTC_CR_CWEN,
- 		       ldata->base + RTC_CR);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0016-hugetlb-fix-race-condition-in-hugetlb_fault.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0016-hugetlb-fix-race-condition-in-hugetlb_fault.patch
deleted file mode 100644
index 2b5f8b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0016-hugetlb-fix-race-condition-in-hugetlb_fault.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From cabab70ca89f34dacc965ea927f0f67706fcc22b Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Thu, 12 Apr 2012 12:49:15 -0700
-Subject: [PATCH 16/68] hugetlb: fix race condition in hugetlb_fault()
-
-commit 66aebce747eaf9bc456bf1f1b217d8db843031d0 upstream.
-
-The race is as follows:
-
-Suppose a multi-threaded task forks a new process (on cpu A), thus
-bumping up the ref count on all the pages.  While the fork is occurring
-(and thus we have marked all the PTEs as read-only), another thread in
-the original process (on cpu B) tries to write to a huge page, taking an
-access violation from the write-protect and calling hugetlb_cow().  Now,
-suppose the fork() fails.  It will undo the COW and decrement the ref
-count on the pages, so the ref count on the huge page drops back to 1.
-Meanwhile hugetlb_cow() also decrements the ref count by one on the
-original page, since the original address space doesn't need it any
-more, having copied a new page to replace the original page.  This
-leaves the ref count at zero, and when we call unlock_page(), we panic.
-
-	fork on CPU A				fault on CPU B
-	=============				==============
-	...
-	down_write(&parent->mmap_sem);
-	down_write_nested(&child->mmap_sem);
-	...
-	while duplicating vmas
-		if error
-			break;
-	...
-	up_write(&child->mmap_sem);
-	up_write(&parent->mmap_sem);		...
-						down_read(&parent->mmap_sem);
-						...
-						lock_page(page);
-						handle COW
-						page_mapcount(old_page) == 2
-						alloc and prepare new_page
-	...
-	handle error
-	page_remove_rmap(page);
-	put_page(page);
-	...
-						fold new_page into pte
-						page_remove_rmap(page);
-						put_page(page);
-						...
-				oops ==>	unlock_page(page);
-						up_read(&parent->mmap_sem);
-
-The solution is to take an extra reference to the page while we are
-holding the lock on it.
-
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Cc: Hillf Danton <dhillf at gmail.com>
-Cc: Michal Hocko <mhocko at suse.cz>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/hugetlb.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index 2316840..bd936ed 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -2686,6 +2686,7 @@ int hugetlb_fault(struct mm_struct *mm, struct vm_area_struct *vma,
- 	 * so no worry about deadlock.
- 	 */
- 	page = pte_page(entry);
-+	get_page(page);
- 	if (page != pagecache_page)
- 		lock_page(page);
- 
-@@ -2717,6 +2718,7 @@ out_page_table_lock:
- 	}
- 	if (page != pagecache_page)
- 		unlock_page(page);
-+	put_page(page);
- 
- out_mutex:
- 	mutex_unlock(&hugetlb_instantiation_mutex);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0017-staging-iio-hmc5843-Fix-crash-in-probe-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0017-staging-iio-hmc5843-Fix-crash-in-probe-function.patch
deleted file mode 100644
index a1b99a9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0017-staging-iio-hmc5843-Fix-crash-in-probe-function.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 0bc2590c85b786aa29761b2471415c7b159c142c Mon Sep 17 00:00:00 2001
-From: Marek Belisko <marek.belisko at open-nandra.com>
-Date: Thu, 12 Apr 2012 21:48:03 +0200
-Subject: [PATCH 17/68] staging: iio: hmc5843: Fix crash in probe function.
-
-commit 62d2feb9803f18c4e3c8a1a2c7e30a54df8a1d72 upstream.
-
-Fix crash after issuing:
-	echo hmc5843 0x1e > /sys/class/i2c-dev/i2c-2/device/new_device
-
-	[   37.180999] device: '2-001e': device_add
-	[   37.188293] bus: 'i2c': add device 2-001e
-	[   37.194549] PM: Adding info for i2c:2-001e
-	[   37.200958] bus: 'i2c': driver_probe_device: matched device 2-001e with driver hmc5843
-	[   37.210815] bus: 'i2c': really_probe: probing driver hmc5843 with device 2-001e
-	[   37.224884] HMC5843 initialized
-	[   37.228759] ------------[ cut here ]------------
-	[   37.233612] kernel BUG at mm/slab.c:505!
-	[   37.237701] Internal error: Oops - BUG: 0 [#1] PREEMPT
-	[   37.243103] Modules linked in:
-	[   37.246337] CPU: 0    Not tainted  (3.3.1-gta04+ #28)
-	[   37.251647] PC is at kfree+0x84/0x144
-	[   37.255493] LR is at kfree+0x20/0x144
-	[   37.259338] pc : [<c00b408c>]    lr : [<c00b4028>]    psr: 40000093
-	[   37.259368] sp : de249cd8  ip : 0000000c  fp : 00000090
-	[   37.271362] r10: 0000000a  r9 : de229eac  r8 : c0236274
-	[   37.276855] r7 : c09d6490  r6 : a0000013  r5 : de229c00  r4 : de229c10
-	[   37.283691] r3 : c0f00218  r2 : 00000400  r1 : c0eea000  r0 : c00b4028
-	[   37.290527] Flags: nZcv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment user
-	[   37.298095] Control: 10c5387d  Table: 9e1d0019  DAC: 00000015
-	[   37.304107] Process sh (pid: 91, stack limit = 0xde2482f0)
-	[   37.309844] Stack: (0xde249cd8 to 0xde24a000)
-	[   37.314422] 9cc0:                                                       de229c10 de229c00
-	[   37.322998] 9ce0: de229c10 ffffffea 00000005 c0236274 de140a80 c00b4798 dec00080 de140a80
-	[   37.331573] 9d00: c032f37c dec00080 000080d0 00000001 de229c00 de229c10 c048d578 00000005
-	[   37.340148] 9d20: de229eac 0000000a 00000090 c032fa40 00000001 00000000 00000001 de229c10
-	[   37.348724] 9d40: de229eac 00000029 c075b558 00000001 00000003 00000004 de229c10 c048d594
-	[   37.357299] 9d60: 00000000 60000013 00000018 205b0007 37332020 3432322e 5d343838 c0060020
-	[   37.365905] 9d80: de251600 00000001 00000000 de251600 00000001 c0065a84 de229c00 de229c48
-	[   37.374481] 9da0: 00000006 0048d62c de229c38 de229c00 de229c00 de1f6c00 de1f6c20 00000001
-	[   37.383056] 9dc0: 00000000 c048d62c 00000000 de229c00 de229c00 de1f6c00 de1f6c20 00000001
-	[   37.391632] 9de0: 00000000 c048d62c 00000000 c0330164 00000000 de1f6c20 c048d62c de1f6c00
-	[   37.400207] 9e00: c0330078 de1f6c04 c078d714 de189b58 00000000 c02ccfd8 de1f6c20 c0795f40
-	[   37.408782] 9e20: c0238330 00000000 00000000 c02381a8 de1b9fc0 de1f6c20 de1f6c20 de249e48
-	[   37.417358] 9e40: c0238330 c0236bb0 decdbed8 de7d0f14 de1f6c20 de1f6c20 de1f6c54 de1f6c20
-	[   37.425933] 9e60: 00000000 c0238030 de1f6c20 c078d7bc de1f6c20 c02377ec de1f6c20 de1f6c28
-	[   37.434509] 9e80: dee64cb0 c0236138 c047c554 de189b58 00000000 c004b45c de1f6c20 de1f6cd8
-	[   37.443084] 9ea0: c0edfa6c de1f6c00 dee64c68 de1f6c04 de1f6c20 dee64cb8 c047c554 de189b58
-	[   37.451690] 9ec0: 00000000 c02cd634 dee64c68 de249ef4 de23b008 dee64cb0 0000000d de23b000
-	[   37.460266] 9ee0: de23b007 c02cd78c 00000002 00000000 00000000 35636d68 00333438 00000000
-	[   37.468841] 9f00: 00000000 00000000 001e0000 00000000 00000000 00000000 00000000 0a10cec0
-	[   37.477416] 9f20: 00000002 de249f80 0000000d dee62990 de189b40 c0234d88 0000000d c010c354
-	[   37.485992] 9f40: 0000000d de210f28 000acc88 de249f80 0000000d de248000 00000000 c00b7bf8
-	[   37.494567] 9f60: de210f28 000acc88 de210f28 000acc88 00000000 00000000 0000000d c00b7ed8
-	[   37.503143] 9f80: 00000000 00000000 0000000d 00000000 0007fa28 0000000d 000acc88 00000004
-	[   37.511718] 9fa0: c000e544 c000e380 0007fa28 0000000d 00000001 000acc88 0000000d 00000000
-	[   37.520294] 9fc0: 0007fa28 0000000d 000acc88 00000004 00000001 00000020 00000002 00000000
-	[   37.528869] 9fe0: 00000000 beab8624 0000ea05 b6eaebac 600d0010 00000001 00000000 00000000
-	[   37.537475] [<c00b408c>] (kfree+0x84/0x144) from [<c0236274>] (device_add+0x530/0x57c)
-	[   37.545806] [<c0236274>] (device_add+0x530/0x57c) from [<c032fa40>] (iio_device_register+0x8c8/0x990)
-	[   37.555480] [<c032fa40>] (iio_device_register+0x8c8/0x990) from [<c0330164>] (hmc5843_probe+0xec/0x114)
-	[   37.565338] [<c0330164>] (hmc5843_probe+0xec/0x114) from [<c02ccfd8>] (i2c_device_probe+0xc4/0xf8)
-	[   37.574737] [<c02ccfd8>] (i2c_device_probe+0xc4/0xf8) from [<c02381a8>] (driver_probe_device+0x118/0x218)
-	[   37.584777] [<c02381a8>] (driver_probe_device+0x118/0x218) from [<c0236bb0>] (bus_for_each_drv+0x4c/0x84)
-	[   37.594818] [<c0236bb0>] (bus_for_each_drv+0x4c/0x84) from [<c0238030>] (device_attach+0x78/0xa4)
-	[   37.604125] [<c0238030>] (device_attach+0x78/0xa4) from [<c02377ec>] (bus_probe_device+0x28/0x9c)
-	[   37.613433] [<c02377ec>] (bus_probe_device+0x28/0x9c) from [<c0236138>] (device_add+0x3f4/0x57c)
-	[   37.622650] [<c0236138>] (device_add+0x3f4/0x57c) from [<c02cd634>] (i2c_new_device+0xf8/0x19c)
-	[   37.631805] [<c02cd634>] (i2c_new_device+0xf8/0x19c) from [<c02cd78c>] (i2c_sysfs_new_device+0xb4/0x130)
-	[   37.641754] [<c02cd78c>] (i2c_sysfs_new_device+0xb4/0x130) from [<c0234d88>] (dev_attr_store+0x18/0x24)
-	[   37.651611] [<c0234d88>] (dev_attr_store+0x18/0x24) from [<c010c354>] (sysfs_write_file+0x10c/0x140)
-	[   37.661193] [<c010c354>] (sysfs_write_file+0x10c/0x140) from [<c00b7bf8>] (vfs_write+0xb0/0x178)
-	[   37.670410] [<c00b7bf8>] (vfs_write+0xb0/0x178) from [<c00b7ed8>] (sys_write+0x3c/0x68)
-	[   37.678833] [<c00b7ed8>] (sys_write+0x3c/0x68) from [<c000e380>] (ret_fast_syscall+0x0/0x3c)
-	[   37.687683] Code: 1593301c e5932000 e3120080 1a000000 (e7f001f2)
-	[   37.700775] ---[ end trace aaf805debdb69390 ]---
-
-Client data was assigned to iio_dev structure in probe but in
-hmc5843_init_client function casted to private driver data structure which
-is wrong. Possibly calling mutex_init(&data->lock); corrupt data
-which the lead to above crash.
-
-Signed-off-by: Marek Belisko <marek.belisko at open-nandra.com>
-Acked-by: Jonathan Cameron <jic23 at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/iio/magnetometer/hmc5843.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/staging/iio/magnetometer/hmc5843.c b/drivers/staging/iio/magnetometer/hmc5843.c
-index fc9ee97..870db4f 100644
---- a/drivers/staging/iio/magnetometer/hmc5843.c
-+++ b/drivers/staging/iio/magnetometer/hmc5843.c
-@@ -521,7 +521,9 @@ static int hmc5843_detect(struct i2c_client *client,
- /* Called when we have found a new HMC5843. */
- static void hmc5843_init_client(struct i2c_client *client)
- {
--	struct hmc5843_data *data = i2c_get_clientdata(client);
-+	struct iio_dev *indio_dev = i2c_get_clientdata(client);
-+	struct hmc5843_data *data = iio_priv(indio_dev);
-+
- 	hmc5843_set_meas_conf(client, data->meas_conf);
- 	hmc5843_set_rate(client, data->rate);
- 	hmc5843_configure(client, data->operating_mode);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0018-tty-serial-altera_uart-Check-for-NULL-platform_data-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0018-tty-serial-altera_uart-Check-for-NULL-platform_data-.patch
deleted file mode 100644
index 3a39598..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0018-tty-serial-altera_uart-Check-for-NULL-platform_data-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 33fbe982ec60fd99d02c6bf3cca78e10ad49a46a Mon Sep 17 00:00:00 2001
-From: Yuriy Kozlov <ykozlov at ptcusa.com>
-Date: Thu, 29 Mar 2012 09:55:27 +0200
-Subject: [PATCH 18/68] tty: serial: altera_uart: Check for NULL platform_data
- in probe.
-
-commit acede70d6561f2d042d9dbb153d9a3469479c0ed upstream.
-
-Follow altera_jtag_uart.  This fixes a crash if there is a mistake in the DTS.
-
-Signed-off-by: Yuriy Kozlov <ykozlov at ptcusa.com>
-Signed-off-by: Tobias Klauser <tklauser at distanz.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/altera_uart.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/tty/serial/altera_uart.c b/drivers/tty/serial/altera_uart.c
-index 1d04c50..5ba0898 100644
---- a/drivers/tty/serial/altera_uart.c
-+++ b/drivers/tty/serial/altera_uart.c
-@@ -555,7 +555,7 @@ static int __devinit altera_uart_probe(struct platform_device *pdev)
- 	res_mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- 	if (res_mem)
- 		port->mapbase = res_mem->start;
--	else if (platp->mapbase)
-+	else if (platp)
- 		port->mapbase = platp->mapbase;
- 	else
- 		return -EINVAL;
-@@ -563,7 +563,7 @@ static int __devinit altera_uart_probe(struct platform_device *pdev)
- 	res_irq = platform_get_resource(pdev, IORESOURCE_IRQ, 0);
- 	if (res_irq)
- 		port->irq = res_irq->start;
--	else if (platp->irq)
-+	else if (platp)
- 		port->irq = platp->irq;
- 
- 	/* Check platform data first so we can override device node data */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0019-sparc64-Eliminate-obsolete-__handle_softirq-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0019-sparc64-Eliminate-obsolete-__handle_softirq-function.patch
deleted file mode 100644
index f974fd9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0019-sparc64-Eliminate-obsolete-__handle_softirq-function.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 05ab1d059eb55460d5bafab622493a9c7d2b879f Mon Sep 17 00:00:00 2001
-From: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
-Date: Fri, 13 Apr 2012 03:35:13 +0000
-Subject: [PATCH 19/68] sparc64: Eliminate obsolete __handle_softirq()
- function
-
-commit 3d3eeb2ef26112a200785e5fca58ec58dd33bf1e upstream.
-
-The invocation of softirq is now handled by irq_exit(), so there is no
-need for sparc64 to invoke it on the trap-return path.  In fact, doing so
-is a bug because if the trap occurred in the idle loop, this invocation
-can result in lockdep-RCU failures.  The problem is that RCU ignores idle
-CPUs, and the sparc64 trap-return path to the softirq handlers fails to
-tell RCU that the CPU must be considered non-idle while those handlers
-are executing.  This means that RCU is ignoring any RCU read-side critical
-sections in those handlers, which in turn means that RCU-protected data
-can be yanked out from under those read-side critical sections.
-
-The shiny new lockdep-RCU ability to detect RCU read-side critical sections
-that RCU is ignoring located this problem.
-
-The fix is straightforward: Make sparc64 stop manually invoking the
-softirq handlers.
-
-Reported-by: Meelis Roos <mroos at linux.ee>
-Suggested-by: David Miller <davem at davemloft.net>
-Signed-off-by: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
-Tested-by: Meelis Roos <mroos at linux.ee>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/sparc/kernel/rtrap_64.S |    7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S
-index 77f1b95..9171fc2 100644
---- a/arch/sparc/kernel/rtrap_64.S
-+++ b/arch/sparc/kernel/rtrap_64.S
-@@ -20,11 +20,6 @@
- 
- 		.text
- 		.align			32
--__handle_softirq:
--		call			do_softirq
--		 nop
--		ba,a,pt			%xcc, __handle_softirq_continue
--		 nop
- __handle_preemption:
- 		call			schedule
- 		 wrpr			%g0, RTRAP_PSTATE, %pstate
-@@ -89,9 +84,7 @@ rtrap:
- 		cmp			%l1, 0
- 
- 		/* mm/ultra.S:xcall_report_regs KNOWS about this load. */
--		bne,pn			%icc, __handle_softirq
- 		 ldx			[%sp + PTREGS_OFF + PT_V9_TSTATE], %l1
--__handle_softirq_continue:
- rtrap_xcall:
- 		sethi			%hi(0xf << 20), %l4
- 		and			%l1, %l4, %l4
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0020-sparc64-Fix-bootup-crash-on-sun4v.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0020-sparc64-Fix-bootup-crash-on-sun4v.patch
deleted file mode 100644
index ef06859..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0020-sparc64-Fix-bootup-crash-on-sun4v.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From bfc4ac59222dd446f647b3d38cd706a55a3f2320 Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Fri, 13 Apr 2012 11:56:22 -0700
-Subject: [PATCH 20/68] sparc64: Fix bootup crash on sun4v.
-
-commit 9e0daff30fd7ecf698e5d20b0fa7f851e427cca5 upstream.
-
-The DS driver registers as a subsys_initcall() but this can be too
-early, in particular this risks registering before we've had a chance
-to allocate and setup module_kset in kernel/params.c which is
-performed also as a subsyts_initcall().
-
-Register DS using device_initcall() insteal.
-
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/sparc/kernel/ds.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/sparc/kernel/ds.c b/arch/sparc/kernel/ds.c
-index 381edcd..27728e1 100644
---- a/arch/sparc/kernel/ds.c
-+++ b/arch/sparc/kernel/ds.c
-@@ -1267,4 +1267,4 @@ static int __init ds_init(void)
- 	return vio_register_driver(&ds_driver);
- }
- 
--subsys_initcall(ds_init);
-+fs_initcall(ds_init);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0021-cciss-Initialize-scsi-host-max_sectors-for-tape-driv.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0021-cciss-Initialize-scsi-host-max_sectors-for-tape-driv.patch
deleted file mode 100644
index 0d950ee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0021-cciss-Initialize-scsi-host-max_sectors-for-tape-driv.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 21ffb8a828b59cb70af522e6560a975c0e5ddae4 Mon Sep 17 00:00:00 2001
-From: "Stephen M. Cameron" <scameron at beardog.cce.hp.com>
-Date: Thu, 22 Mar 2012 21:40:08 +0100
-Subject: [PATCH 21/68] cciss: Initialize scsi host max_sectors for tape drive
- support
-
-commit 395d287526bb60411ff37b19ad9dd38b58ba8732 upstream.
-
-The default is too small (1024 blocks), use h->cciss_max_sectors (8192 blocks)
-Without this change, if you try to set the block size of a tape drive above
-512*1024, via "mt -f /dev/st0 setblk nnn" where nnn is greater than 524288,
-it won't work right.
-
-Signed-off-by: Stephen M. Cameron <scameron at beardog.cce.hp.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/block/cciss_scsi.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c
-index e820b68..f510a9c 100644
---- a/drivers/block/cciss_scsi.c
-+++ b/drivers/block/cciss_scsi.c
-@@ -866,6 +866,7 @@ cciss_scsi_detect(ctlr_info_t *h)
- 	sh->can_queue = cciss_tape_cmds;
- 	sh->sg_tablesize = h->maxsgentries;
- 	sh->max_cmd_len = MAX_COMMAND_SIZE;
-+	sh->max_sectors = h->cciss_max_sectors;
- 
- 	((struct cciss_scsi_adapter_data_t *) 
- 		h->scsi_ctlr)->scsi_host = sh;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0022-cciss-Fix-scsi-tape-io-with-more-than-255-scatter-ga.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0022-cciss-Fix-scsi-tape-io-with-more-than-255-scatter-ga.patch
deleted file mode 100644
index 6ab9a4e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0022-cciss-Fix-scsi-tape-io-with-more-than-255-scatter-ga.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 3c8f69ec2a543e0b0c3f0f2a84663629ea0a1711 Mon Sep 17 00:00:00 2001
-From: "Stephen M. Cameron" <scameron at beardog.cce.hp.com>
-Date: Thu, 22 Mar 2012 21:40:09 +0100
-Subject: [PATCH 22/68] cciss: Fix scsi tape io with more than 255 scatter
- gather elements
-
-commit bc67f63650fad6b3478d9ddfd5406d45a95987c9 upstream.
-
-The total number of scatter gather elements in the CISS command
-used by the scsi tape code was being cast to a u8, which can hold
-at most 255 scatter gather elements.  It should have been cast to
-a u16.  Without this patch the command gets rejected by the controller
-since the total scatter gather count did not add up to the right
-value resulting in an i/o error.
-
-Signed-off-by: Stephen M. Cameron <scameron at beardog.cce.hp.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/block/cciss_scsi.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/block/cciss_scsi.c b/drivers/block/cciss_scsi.c
-index f510a9c..acda773 100644
---- a/drivers/block/cciss_scsi.c
-+++ b/drivers/block/cciss_scsi.c
-@@ -1411,7 +1411,7 @@ static void cciss_scatter_gather(ctlr_info_t *h, CommandList_struct *c,
- 	/* track how many SG entries we are using */
- 	if (request_nsgs > h->maxSG)
- 		h->maxSG = request_nsgs;
--	c->Header.SGTotal = (__u8) request_nsgs + chained;
-+	c->Header.SGTotal = (u16) request_nsgs + chained;
- 	if (request_nsgs > h->max_cmd_sgentries)
- 		c->Header.SGList = h->max_cmd_sgentries;
- 	else
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0023-video-uvesafb-Fix-oops-that-uvesafb-try-to-execute-N.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0023-video-uvesafb-Fix-oops-that-uvesafb-try-to-execute-N.patch
deleted file mode 100644
index 6fe1c74..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0023-video-uvesafb-Fix-oops-that-uvesafb-try-to-execute-N.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From f60922f4d15cda62654f28c209b6123e7abe0b69 Mon Sep 17 00:00:00 2001
-From: Wang YanQing <udknight at gmail.com>
-Date: Sun, 1 Apr 2012 08:54:02 +0800
-Subject: [PATCH 23/68] video:uvesafb: Fix oops that uvesafb try to execute
- NX-protected page
-
-commit b78f29ca0516266431688c5eb42d39ce42ec039a upstream.
-
-This patch fix the oops below that catched in my machine
-
-[   81.560602] uvesafb: NVIDIA Corporation, GT216 Board - 0696a290, Chip Rev   , OEM: NVIDIA, VBE v3.0
-[   81.609384] uvesafb: protected mode interface info at c000:d350
-[   81.609388] uvesafb: pmi: set display start = c00cd3b3, set palette = c00cd40e
-[   81.609390] uvesafb: pmi: ports = 3b4 3b5 3ba 3c0 3c1 3c4 3c5 3c6 3c7 3c8 3c9 3cc 3ce 3cf 3d0 3d1 3d2 3d3 3d4 3d5 3da
-[   81.614558] uvesafb: VBIOS/hardware doesn't support DDC transfers
-[   81.614562] uvesafb: no monitor limits have been set, default refresh rate will be used
-[   81.614994] uvesafb: scrolling: ypan using protected mode interface, yres_virtual=4915
-[   81.744147] kernel tried to execute NX-protected page - exploit attempt? (uid: 0)
-[   81.744153] BUG: unable to handle kernel paging request at c00cd3b3
-[   81.744159] IP: [<c00cd3b3>] 0xc00cd3b2
-[   81.744167] *pdpt = 00000000016d6001 *pde = 0000000001c7b067 *pte = 80000000000cd163
-[   81.744171] Oops: 0011 [#1] SMP
-[   81.744174] Modules linked in: uvesafb(+) cfbcopyarea cfbimgblt cfbfillrect
-[   81.744178]
-[   81.744181] Pid: 3497, comm: modprobe Not tainted 3.3.0-rc4NX+ #71 Acer            Aspire 4741                    /Aspire 4741
-[   81.744185] EIP: 0060:[<c00cd3b3>] EFLAGS: 00010246 CPU: 0
-[   81.744187] EIP is at 0xc00cd3b3
-[   81.744189] EAX: 00004f07 EBX: 00000000 ECX: 00000000 EDX: 00000000
-[   81.744191] ESI: f763f000 EDI: f763f6e8 EBP: f57f3a0c ESP: f57f3a00
-[   81.744192]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
-[   81.744195] Process modprobe (pid: 3497, ti=f57f2000 task=f748c600 task.ti=f57f2000)
-[   81.744196] Stack:
-[   81.744197]  f82512c5 f759341c 00000000 f57f3a30 c124a9bc 00000001 00000001 000001e0
-[   81.744202]  f8251280 f763f000 f7593400 00000000 f57f3a40 c12598dd f5c0c000 00000000
-[   81.744206]  f57f3b10 c1255efe c125a21a 00000006 f763f09c 00000000 c1c6cb60 f7593400
-[   81.744210] Call Trace:
-[   81.744215]  [<f82512c5>] ? uvesafb_pan_display+0x45/0x60 [uvesafb]
-[   81.744222]  [<c124a9bc>] fb_pan_display+0x10c/0x160
-[   81.744226]  [<f8251280>] ? uvesafb_vbe_find_mode+0x180/0x180 [uvesafb]
-[   81.744230]  [<c12598dd>] bit_update_start+0x1d/0x50
-[   81.744232]  [<c1255efe>] fbcon_switch+0x39e/0x550
-[   81.744235]  [<c125a21a>] ? bit_cursor+0x4ea/0x560
-[   81.744240]  [<c129b6cb>] redraw_screen+0x12b/0x220
-[   81.744245]  [<c128843b>] ? tty_do_resize+0x3b/0xc0
-[   81.744247]  [<c129ef42>] vc_do_resize+0x3d2/0x3e0
-[   81.744250]  [<c129efb4>] vc_resize+0x14/0x20
-[   81.744253]  [<c12586bd>] fbcon_init+0x29d/0x500
-[   81.744255]  [<c12984c4>] ? set_inverse_trans_unicode+0xe4/0x110
-[   81.744258]  [<c129b378>] visual_init+0xb8/0x150
-[   81.744261]  [<c129c16c>] bind_con_driver+0x16c/0x360
-[   81.744264]  [<c129b47e>] ? register_con_driver+0x6e/0x190
-[   81.744267]  [<c129c3a1>] take_over_console+0x41/0x50
-[   81.744269]  [<c1257b7a>] fbcon_takeover+0x6a/0xd0
-[   81.744272]  [<c12594b8>] fbcon_event_notify+0x758/0x790
-[   81.744277]  [<c10929e2>] notifier_call_chain+0x42/0xb0
-[   81.744280]  [<c1092d30>] __blocking_notifier_call_chain+0x60/0x90
-[   81.744283]  [<c1092d7a>] blocking_notifier_call_chain+0x1a/0x20
-[   81.744285]  [<c124a5a1>] fb_notifier_call_chain+0x11/0x20
-[   81.744288]  [<c124b759>] register_framebuffer+0x1d9/0x2b0
-[   81.744293]  [<c1061c73>] ? ioremap_wc+0x33/0x40
-[   81.744298]  [<f82537c6>] uvesafb_probe+0xaba/0xc40 [uvesafb]
-[   81.744302]  [<c12bb81f>] platform_drv_probe+0xf/0x20
-[   81.744306]  [<c12ba558>] driver_probe_device+0x68/0x170
-[   81.744309]  [<c12ba731>] __device_attach+0x41/0x50
-[   81.744313]  [<c12b9088>] bus_for_each_drv+0x48/0x70
-[   81.744316]  [<c12ba7f3>] device_attach+0x83/0xa0
-[   81.744319]  [<c12ba6f0>] ? __driver_attach+0x90/0x90
-[   81.744321]  [<c12b991f>] bus_probe_device+0x6f/0x90
-[   81.744324]  [<c12b8a45>] device_add+0x5e5/0x680
-[   81.744329]  [<c122a1a3>] ? kvasprintf+0x43/0x60
-[   81.744332]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
-[   81.744335]  [<c121e6e4>] ? kobject_set_name_vargs+0x64/0x70
-[   81.744339]  [<c12bbe9f>] platform_device_add+0xff/0x1b0
-[   81.744343]  [<f8252906>] uvesafb_init+0x50/0x9b [uvesafb]
-[   81.744346]  [<c100111f>] do_one_initcall+0x2f/0x170
-[   81.744350]  [<f82528b6>] ? uvesafb_is_valid_mode+0x66/0x66 [uvesafb]
-[   81.744355]  [<c10c6994>] sys_init_module+0xf4/0x1410
-[   81.744359]  [<c1157fc0>] ? vfsmount_lock_local_unlock_cpu+0x30/0x30
-[   81.744363]  [<c144cb10>] sysenter_do_call+0x12/0x36
-[   81.744365] Code: f5 00 00 00 32 f6 66 8b da 66 d1 e3 66 ba d4 03 8a e3 b0 1c 66 ef b0 1e 66 ef 8a e7 b0 1d 66 ef b0 1f 66 ef e8 fa 00 00 00 61 c3 <60> e8 c8 00 00 00 66 8b f3 66 8b da 66 ba d4 03 b0 0c 8a e5 66
-[   81.744388] EIP: [<c00cd3b3>] 0xc00cd3b3 SS:ESP 0068:f57f3a00
-[   81.744391] CR2: 00000000c00cd3b3
-[   81.744393] ---[ end trace 18b2c87c925b54d6 ]---
-
-Signed-off-by: Wang YanQing <udknight at gmail.com>
-Cc: Michal Januszewski <spock at gentoo.org>
-Cc: Alan Cox <alan at lxorguk.ukuu.org.uk>
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/uvesafb.c |   11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/video/uvesafb.c b/drivers/video/uvesafb.c
-index 7f8472c..8813588 100644
---- a/drivers/video/uvesafb.c
-+++ b/drivers/video/uvesafb.c
-@@ -815,8 +815,15 @@ static int __devinit uvesafb_vbe_init(struct fb_info *info)
- 	par->pmi_setpal = pmi_setpal;
- 	par->ypan = ypan;
- 
--	if (par->pmi_setpal || par->ypan)
--		uvesafb_vbe_getpmi(task, par);
-+	if (par->pmi_setpal || par->ypan) {
-+		if (__supported_pte_mask & _PAGE_NX) {
-+			par->pmi_setpal = par->ypan = 0;
-+			printk(KERN_WARNING "uvesafb: NX protection is actively."
-+				"We have better not to use the PMI.\n");
-+		} else {
-+			uvesafb_vbe_getpmi(task, par);
-+		}
-+	}
- #else
- 	/* The protected mode interface is not available on non-x86. */
- 	par->pmi_setpal = par->ypan = 0;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0024-nohz-Fix-stale-jiffies-update-in-tick_nohz_restart.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0024-nohz-Fix-stale-jiffies-update-in-tick_nohz_restart.patch
deleted file mode 100644
index a2cf91f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0024-nohz-Fix-stale-jiffies-update-in-tick_nohz_restart.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 5e1fb3da35cd1e7b3bf1aa1f3384b5d3735c8fa8 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Tue, 27 Mar 2012 15:09:37 -0400
-Subject: [PATCH 24/68] nohz: Fix stale jiffies update in tick_nohz_restart()
-
-commit 6f103929f8979d2638e58d7f7fda0beefcb8ee7e upstream.
-
-Fix tick_nohz_restart() to not use a stale ktime_t "now" value when
-calling tick_do_update_jiffies64(now).
-
-If we reach this point in the loop it means that we crossed a tick
-boundary since we grabbed the "now" timestamp, so at this point "now"
-refers to a time in the old jiffy, so using the old value for "now" is
-incorrect, and is likely to give us a stale jiffies value.
-
-In particular, the first time through the loop the
-tick_do_update_jiffies64(now) call is always a no-op, since the
-caller, tick_nohz_restart_sched_tick(), will have already called
-tick_do_update_jiffies64(now) with that "now" value.
-
-Note that tick_nohz_stop_sched_tick() already uses the correct
-approach: when we notice we cross a jiffy boundary, grab a new
-timestamp with ktime_get(), and *then* update jiffies.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Cc: Ben Segall <bsegall at google.com>
-Cc: Ingo Molnar <mingo at elte.hu>
-Link: http://lkml.kernel.org/r/1332875377-23014-1-git-send-email-ncardwell@google.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/time/tick-sched.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
-index 4042064..c923640 100644
---- a/kernel/time/tick-sched.c
-+++ b/kernel/time/tick-sched.c
-@@ -508,9 +508,9 @@ static void tick_nohz_restart(struct tick_sched *ts, ktime_t now)
- 				hrtimer_get_expires(&ts->sched_timer), 0))
- 				break;
- 		}
--		/* Update jiffies and reread time */
--		tick_do_update_jiffies64(now);
-+		/* Reread time and update jiffies */
- 		now = ktime_get();
-+		tick_do_update_jiffies64(now);
- 	}
- }
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0025-pch_uart-Fix-MSI-setting-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0025-pch_uart-Fix-MSI-setting-issue.patch
deleted file mode 100644
index b0f9df5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0025-pch_uart-Fix-MSI-setting-issue.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 4390c4afeff1688398e91fa58626daa4c476426a Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Mon, 2 Apr 2012 14:36:22 +0900
-Subject: [PATCH 25/68] pch_uart: Fix MSI setting issue
-
-commit 867c902e07d5677e2a5b54c0435e589513abde48 upstream.
-
-The following patch (MSI setting) is not enough.
-
-commit e463595fd9c752fa4bf06b47df93ef9ade3c7cf0
-Author: Alexander Stein <alexander.stein at systec-electronic.com>
-Date:   Mon Jul 4 08:58:31 2011 +0200
-
-    pch_uart: Add MSI support
-
-    Signed-off-by: Alexander Stein <alexander.stein at systec-electronic.com>
-    Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-
-To enable MSI mode, PCI bus-mastering must be enabled.
-This patch enables the setting.
-
-cc: Alexander Stein <alexander.stein at systec-electronic.com>
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/pch_uart.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
-index d6aba8c..da776a0 100644
---- a/drivers/tty/serial/pch_uart.c
-+++ b/drivers/tty/serial/pch_uart.c
-@@ -1438,6 +1438,7 @@ static struct eg20t_port *pch_uart_init_port(struct pci_dev *pdev,
- 	}
- 
- 	pci_enable_msi(pdev);
-+	pci_set_master(pdev);
- 
- 	iobase = pci_resource_start(pdev, 0);
- 	mapbase = pci_resource_start(pdev, 1);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0026-USB-serial-fix-race-between-probe-and-open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0026-USB-serial-fix-race-between-probe-and-open.patch
deleted file mode 100644
index 60b1ca1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0026-USB-serial-fix-race-between-probe-and-open.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 2c3a918f01cceefb6b25eda48f8703c0f07d316d Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Tue, 20 Mar 2012 16:59:33 +0100
-Subject: [PATCH 26/68] USB: serial: fix race between probe and open
-
-commit a65a6f14dc24a90bde3f5d0073ba2364476200bf upstream.
-
-Fix race between probe and open by making sure that the disconnected
-flag is not cleared until all ports have been registered.
-
-A call to tty_open while probe is running may get a reference to the
-serial structure in serial_install before its ports have been
-registered. This may lead to usb_serial_core calling driver open before
-port is fully initialised.
-
-With ftdi_sio this result in the following NULL-pointer dereference as
-the private data has not been initialised at open:
-
-[  199.698286] IP: [<f811a089>] ftdi_open+0x59/0xe0 [ftdi_sio]
-[  199.698297] *pde = 00000000
-[  199.698303] Oops: 0000 [#1] PREEMPT SMP
-[  199.698313] Modules linked in: ftdi_sio usbserial
-[  199.698323]
-[  199.698327] Pid: 1146, comm: ftdi_open Not tainted 3.2.11 #70 Dell Inc. Vostro 1520/0T816J
-[  199.698339] EIP: 0060:[<f811a089>] EFLAGS: 00010286 CPU: 0
-[  199.698344] EIP is at ftdi_open+0x59/0xe0 [ftdi_sio]
-[  199.698348] EAX: 0000003e EBX: f5067000 ECX: 00000000 EDX: 80000600
-[  199.698352] ESI: f48d8800 EDI: 00000001 EBP: f515dd54 ESP: f515dcfc
-[  199.698356]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
-[  199.698361] Process ftdi_open (pid: 1146, ti=f515c000 task=f481e040 task.ti=f515c000)
-[  199.698364] Stack:
-[  199.698368]  f811a9fe f811a9e0 f811b3ef 00000000 00000000 00001388 00000000 f4a86800
-[  199.698387]  00000002 00000000 f806e68e 00000000 f532765c f481e040 00000246 22222222
-[  199.698479]  22222222 22222222 22222222 f5067004 f5327600 f5327638 f515dd74 f806e6ab
-[  199.698496] Call Trace:
-[  199.698504]  [<f806e68e>] ? serial_activate+0x2e/0x70 [usbserial]
-[  199.698511]  [<f806e6ab>] serial_activate+0x4b/0x70 [usbserial]
-[  199.698521]  [<c126380c>] tty_port_open+0x7c/0xd0
-[  199.698527]  [<f806e660>] ? serial_set_termios+0xa0/0xa0 [usbserial]
-[  199.698534]  [<f806e76f>] serial_open+0x2f/0x70 [usbserial]
-[  199.698540]  [<c125d07c>] tty_open+0x20c/0x510
-[  199.698546]  [<c10e9eb7>] chrdev_open+0xe7/0x230
-[  199.698553]  [<c10e48f2>] __dentry_open+0x1f2/0x390
-[  199.698559]  [<c144bfec>] ? _raw_spin_unlock+0x2c/0x50
-[  199.698565]  [<c10e4b76>] nameidata_to_filp+0x66/0x80
-[  199.698570]  [<c10e9dd0>] ? cdev_put+0x20/0x20
-[  199.698576]  [<c10f3e08>] do_last+0x198/0x730
-[  199.698581]  [<c10f4440>] path_openat+0xa0/0x350
-[  199.698587]  [<c10f47d5>] do_filp_open+0x35/0x80
-[  199.698593]  [<c144bfec>] ? _raw_spin_unlock+0x2c/0x50
-[  199.698599]  [<c10ff110>] ? alloc_fd+0xc0/0x100
-[  199.698605]  [<c10f0b72>] ? getname_flags+0x72/0x120
-[  199.698611]  [<c10e4450>] do_sys_open+0xf0/0x1c0
-[  199.698617]  [<c11fcc08>] ? trace_hardirqs_on_thunk+0xc/0x10
-[  199.698623]  [<c10e458e>] sys_open+0x2e/0x40
-[  199.698628]  [<c144c990>] sysenter_do_call+0x12/0x36
-[  199.698632] Code: 85 89 00 00 00 8b 16 8b 4d c0 c1 e2 08 c7 44 24 14 88 13 00 00 81 ca 00 00 00 80 c7 44 24 10 00 00 00 00 c7 44 24 0c 00 00 00 00 <0f> b7 41 78 31 c9 89 44 24 08 c7 44 24 04 00 00 00 00 c7 04 24
-[  199.698884] EIP: [<f811a089>] ftdi_open+0x59/0xe0 [ftdi_sio] SS:ESP 0068:f515dcfc
-[  199.698893] CR2: 0000000000000078
-[  199.698925] ---[ end trace 77c43ec023940cff ]---
-
-Reported-and-tested-by: Ken Huang <csuhgw at gmail.com>
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/usb-serial.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
-index cc274fd..38d7ebd 100644
---- a/drivers/usb/serial/usb-serial.c
-+++ b/drivers/usb/serial/usb-serial.c
-@@ -1059,6 +1059,12 @@ int usb_serial_probe(struct usb_interface *interface,
- 		serial->attached = 1;
- 	}
- 
-+	/* Avoid race with tty_open and serial_install by setting the
-+	 * disconnected flag and not clearing it until all ports have been
-+	 * registered.
-+	 */
-+	serial->disconnected = 1;
-+
- 	if (get_free_serial(serial, num_ports, &minor) == NULL) {
- 		dev_err(&interface->dev, "No more free serial devices\n");
- 		goto probe_error;
-@@ -1083,6 +1089,8 @@ int usb_serial_probe(struct usb_interface *interface,
- 		}
- 	}
- 
-+	serial->disconnected = 0;
-+
- 	usb_serial_console_init(debug, minor);
- 
- exit:
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0027-USB-pl2303-fix-DTR-RTS-being-raised-on-baud-rate-cha.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0027-USB-pl2303-fix-DTR-RTS-being-raised-on-baud-rate-cha.patch
deleted file mode 100644
index 139d5eb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0027-USB-pl2303-fix-DTR-RTS-being-raised-on-baud-rate-cha.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 759454c93c1d1532f9a9c76e16741d8b09f3fefd Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Fri, 23 Mar 2012 15:23:18 +0100
-Subject: [PATCH 27/68] USB: pl2303: fix DTR/RTS being raised on baud rate
- change
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit ce5c9851855bab190c9a142761d54ba583ab094c upstream.
-
-DTR/RTS should only be raised when changing baudrate from B0 and not on
-any baud rate change (> B0).
-
-Reported-by: Søren Holm <sgh at sgh.dk>
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/pl2303.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/pl2303.c b/drivers/usb/serial/pl2303.c
-index fc2d66f..5532ea5 100644
---- a/drivers/usb/serial/pl2303.c
-+++ b/drivers/usb/serial/pl2303.c
-@@ -421,7 +421,7 @@ static void pl2303_set_termios(struct tty_struct *tty,
- 	control = priv->line_control;
- 	if ((cflag & CBAUD) == B0)
- 		priv->line_control &= ~(CONTROL_DTR | CONTROL_RTS);
--	else
-+	else if ((old_termios->c_cflag & CBAUD) == B0)
- 		priv->line_control |= (CONTROL_DTR | CONTROL_RTS);
- 	if (control != priv->line_control) {
- 		control = priv->line_control;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0028-USB-option-re-add-NOVATELWIRELESS_PRODUCT_HSPA_HIGHS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0028-USB-option-re-add-NOVATELWIRELESS_PRODUCT_HSPA_HIGHS.patch
deleted file mode 100644
index c3736bb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0028-USB-option-re-add-NOVATELWIRELESS_PRODUCT_HSPA_HIGHS.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 64b66ecdf795206abc8fe6ed8df7b34f581fb4cc Mon Sep 17 00:00:00 2001
-From: Santiago Garcia Mantinan <manty at debian.org>
-Date: Mon, 19 Mar 2012 18:17:00 +0100
-Subject: [PATCH 28/68] USB: option: re-add
- NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED to option_id
- array
-
-commit 9ac2feb22b5b821d81463bef92698ef7682a3145 upstream.
-
-Re-add NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED to option_id array
-
-Signed-off-by: Santiago Garcia Mantinan <manty at debian.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 54898c9..cbe3451 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -708,6 +708,7 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_EMBEDDED_FULLSPEED) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_EMBEDDED_FULLSPEED) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_EVDO_HIGHSPEED) },
-+	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED3) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED4) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_HSPA_HIGHSPEED5) },
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0029-USB-ftdi_sio-fix-status-line-change-handling-for-TIO.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0029-USB-ftdi_sio-fix-status-line-change-handling-for-TIO.patch
deleted file mode 100644
index 55a36f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0029-USB-ftdi_sio-fix-status-line-change-handling-for-TIO.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 8c15eaa2462cd32b7e2aebf64e4692ed6f6bd775 Mon Sep 17 00:00:00 2001
-From: Simon Arlott <simon at fire.lp0.eu>
-Date: Mon, 26 Mar 2012 21:19:40 +0100
-Subject: [PATCH 29/68] USB: ftdi_sio: fix status line change handling for
- TIOCMIWAIT and TIOCGICOUNT
-
-commit fca5430d48d53eaf103498c33fd0d1984b9f448b upstream.
-
-Handling of TIOCMIWAIT was changed by commit 1d749f9afa657f6ee9336b2bc1fcd750a647d157
- USB: ftdi_sio.c: Use ftdi async_icount structure for TIOCMIWAIT, as in other drivers
-
-FTDI_STATUS_B0_MASK does not indicate the changed modem status lines,
-it indicates the value of the current modem status lines. An xor is
-still required to determine which lines have changed.
-
-The count was only being incremented if the line was high. The only
-reason TIOCMIWAIT still worked was because the status packet is
-repeated every 1ms, so the count was always changing. The wakeup
-itself still ran based on the status lines changing.
-
-This change fixes handling of updates to the modem status lines and
-allows multiple processes to use TIOCMIWAIT concurrently.
-
-Tested with two processes waiting on different status lines being
-toggled independently.
-
-Signed-off-by: Simon Arlott <simon at fire.lp0.eu>
-Cc: Uwe Bonnes <bon at elektron.ikp.physik.tu-darmstadt.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c |   24 +++++++++++++-----------
- 1 file changed, 13 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index f2c9ef7..cfc8e59 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -75,7 +75,7 @@ struct ftdi_private {
- 	unsigned long last_dtr_rts;	/* saved modem control outputs */
- 	struct async_icount	icount;
- 	wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */
--	char prev_status, diff_status;        /* Used for TIOCMIWAIT */
-+	char prev_status;        /* Used for TIOCMIWAIT */
- 	char transmit_empty;	/* If transmitter is empty or not */
- 	struct usb_serial_port *port;
- 	__u16 interface;	/* FT2232C, FT2232H or FT4232H port interface
-@@ -1979,17 +1979,19 @@ static int ftdi_process_packet(struct tty_struct *tty,
- 	   N.B. packet may be processed more than once, but differences
- 	   are only processed once.  */
- 	status = packet[0] & FTDI_STATUS_B0_MASK;
--	if (status & FTDI_RS0_CTS)
--		priv->icount.cts++;
--	if (status & FTDI_RS0_DSR)
--		priv->icount.dsr++;
--	if (status & FTDI_RS0_RI)
--		priv->icount.rng++;
--	if (status & FTDI_RS0_RLSD)
--		priv->icount.dcd++;
- 	if (status != priv->prev_status) {
--		priv->diff_status |= status ^ priv->prev_status;
--		wake_up_interruptible(&priv->delta_msr_wait);
-+		char diff_status = status ^ priv->prev_status;
-+
-+		if (diff_status & FTDI_RS0_CTS)
-+			priv->icount.cts++;
-+		if (diff_status & FTDI_RS0_DSR)
-+			priv->icount.dsr++;
-+		if (diff_status & FTDI_RS0_RI)
-+			priv->icount.rng++;
-+		if (diff_status & FTDI_RS0_RLSD)
-+			priv->icount.dcd++;
-+
-+		wake_up_interruptible_all(&priv->delta_msr_wait);
- 		priv->prev_status = status;
- 	}
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0030-USB-ftdi_sio-fix-race-condition-in-TIOCMIWAIT-and-ab.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0030-USB-ftdi_sio-fix-race-condition-in-TIOCMIWAIT-and-ab.patch
deleted file mode 100644
index 1f825a8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0030-USB-ftdi_sio-fix-race-condition-in-TIOCMIWAIT-and-ab.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 7a6e307dd338f12c1a9ece87fdd962f48b5a56a7 Mon Sep 17 00:00:00 2001
-From: Simon Arlott <simon at fire.lp0.eu>
-Date: Mon, 26 Mar 2012 23:27:59 +0100
-Subject: [PATCH 30/68] USB: ftdi_sio: fix race condition in TIOCMIWAIT, and
- abort of TIOCMIWAIT when the device is removed
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 876ae50d94b02f3f523aa451b45ec5fb9c25d221 upstream.
-
-There are two issues here, one is that the device is generating
-spurious very fast modem status line changes somewhere:
-
-CTS becomes high then low 18µs later:
-[121226.924373] ftdi_process_packet: prev rng=0 dsr=10 dcd=0 cts=6
-[121226.924378] ftdi_process_packet: status=10 prev=00 diff=10
-[121226.924382] ftdi_process_packet: now rng=0 dsr=10 dcd=0 cts=7
-(wake_up_interruptible is called)
-[121226.924391] ftdi_process_packet: prev rng=0 dsr=10 dcd=0 cts=7
-[121226.924394] ftdi_process_packet: status=00 prev=10 diff=10
-[121226.924397] ftdi_process_packet: now rng=0 dsr=10 dcd=0 cts=8
-(wake_up_interruptible is called)
-
-This wakes up the task in TIOCMIWAIT:
-[121226.924405] ftdi_ioctl: 19451 rng=0->0 dsr=10->10 dcd=0->0 cts=6->8
-(wait from 20:51:46 returns and observes both changes)
-
-Which then calls TIOCMIWAIT again:
-20:51:46.400239 ioctl(3, TIOCMIWAIT, 0x20) = 0
-22:11:09.441818 ioctl(3, TIOCMGET, [TIOCM_DTR|TIOCM_RTS]) = 0
-22:11:09.442812 ioctl(3, TIOCMIWAIT, 0x20) = -1 EIO (Input/output error)
-(the second wake_up_interruptible takes effect and an I/O error occurs)
-
-The other issue is that TIOCMIWAIT will wait forever (unless the task is
-interrupted) if the device is removed.
-
-This change removes the -EIO return that occurs if the counts don't
-appear to have changed. Multiple counts may have been processed as
-one or the waiting task may have started waiting after recording the
-current count.
-
-It adds a bool to indicate that the device has been removed so that
-TIOCMIWAIT doesn't wait forever, and wakes up any tasks so that they can
-return -EIO.
-
-Signed-off-by: Simon Arlott <simon at fire.lp0.eu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c |   12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index cfc8e59..c4cf3f3 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -76,6 +76,7 @@ struct ftdi_private {
- 	struct async_icount	icount;
- 	wait_queue_head_t delta_msr_wait; /* Used for TIOCMIWAIT */
- 	char prev_status;        /* Used for TIOCMIWAIT */
-+	bool dev_gone;        /* Used to abort TIOCMIWAIT */
- 	char transmit_empty;	/* If transmitter is empty or not */
- 	struct usb_serial_port *port;
- 	__u16 interface;	/* FT2232C, FT2232H or FT4232H port interface
-@@ -1679,6 +1680,7 @@ static int ftdi_sio_port_probe(struct usb_serial_port *port)
- 	init_waitqueue_head(&priv->delta_msr_wait);
- 
- 	priv->flags = ASYNC_LOW_LATENCY;
-+	priv->dev_gone = false;
- 
- 	if (quirk && quirk->port_probe)
- 		quirk->port_probe(priv);
-@@ -1836,6 +1838,9 @@ static int ftdi_sio_port_remove(struct usb_serial_port *port)
- 
- 	dbg("%s", __func__);
- 
-+	priv->dev_gone = true;
-+	wake_up_interruptible_all(&priv->delta_msr_wait);
-+
- 	remove_sysfs_attrs(port);
- 
- 	kref_put(&priv->kref, ftdi_sio_priv_release);
-@@ -2390,15 +2395,12 @@ static int ftdi_ioctl(struct tty_struct *tty,
- 	 */
- 	case TIOCMIWAIT:
- 		cprev = priv->icount;
--		while (1) {
-+		while (!priv->dev_gone) {
- 			interruptible_sleep_on(&priv->delta_msr_wait);
- 			/* see if a signal did it */
- 			if (signal_pending(current))
- 				return -ERESTARTSYS;
- 			cnow = priv->icount;
--			if (cnow.rng == cprev.rng && cnow.dsr == cprev.dsr &&
--			    cnow.dcd == cprev.dcd && cnow.cts == cprev.cts)
--				return -EIO; /* no change => error */
- 			if (((arg & TIOCM_RNG) && (cnow.rng != cprev.rng)) ||
- 			    ((arg & TIOCM_DSR) && (cnow.dsr != cprev.dsr)) ||
- 			    ((arg & TIOCM_CD)  && (cnow.dcd != cprev.dcd)) ||
-@@ -2407,7 +2409,7 @@ static int ftdi_ioctl(struct tty_struct *tty,
- 			}
- 			cprev = cnow;
- 		}
--		/* not reached */
-+		return -EIO;
- 		break;
- 	case TIOCSERGETLSR:
- 		return get_lsr_info(port, (struct serial_struct __user *)arg);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0031-USB-sierra-add-support-for-Sierra-Wireless-MC7710.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0031-USB-sierra-add-support-for-Sierra-Wireless-MC7710.patch
deleted file mode 100644
index 9de7930..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0031-USB-sierra-add-support-for-Sierra-Wireless-MC7710.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 6f304009cc2e6546ded2d677953ad5e43c8dce88 Mon Sep 17 00:00:00 2001
-From: Anton Samokhvalov <pg83 at yandex.ru>
-Date: Wed, 4 Apr 2012 22:26:01 +0400
-Subject: [PATCH 31/68] USB: sierra: add support for Sierra Wireless MC7710
-
-commit c5d703dcc776cb542b41665f2b7e2ba054efb4a7 upstream.
-
-Just add new device id. 3G works fine, LTE not tested.
-
-Signed-off-by: Anton Samokhvalov <pg83 at yandex.ru>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/sierra.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
-index b18179b..7c3ec9e 100644
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -289,6 +289,7 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x1199, 0x6856) },	/* Sierra Wireless AirCard 881 U */
- 	{ USB_DEVICE(0x1199, 0x6859) },	/* Sierra Wireless AirCard 885 E */
- 	{ USB_DEVICE(0x1199, 0x685A) },	/* Sierra Wireless AirCard 885 E */
-+	{ USB_DEVICE(0x1199, 0x68A2) }, /* Sierra Wireless MC7710 */
- 	/* Sierra Wireless C885 */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6880, 0xFF, 0xFF, 0xFF)},
- 	/* Sierra Wireless C888, Air Card 501, USB 303, USB 304 */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0032-USB-don-t-clear-urb-dev-in-scatter-gather-library.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0032-USB-don-t-clear-urb-dev-in-scatter-gather-library.patch
deleted file mode 100644
index 02e6915..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0032-USB-don-t-clear-urb-dev-in-scatter-gather-library.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From aa2fe95f433d360d0625752971b99e30ecde56bf Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Thu, 22 Mar 2012 11:00:21 -0400
-Subject: [PATCH 32/68] USB: don't clear urb->dev in scatter-gather library
-
-commit bcf398537630bf20b4dbe59ba855b69f404c93cf upstream.
-
-This patch (as1517b) fixes an error in the USB scatter-gather library.
-The library code uses urb->dev to determine whether or nor an URB is
-currently active; the completion handler sets urb->dev to NULL.
-However the core unlinking routines need to use urb->dev.  Since
-unlinking always racing with completion, the completion handler must
-not clear urb->dev -- it can lead to invalid memory accesses when a
-transfer has to be cancelled.
-
-This patch fixes the problem by getting rid of the lines that clear
-urb->dev after urb has been submitted.  As a result we may end up
-trying to unlink an URB that failed in submission or that has already
-completed, so an extra check is added after each unlink to avoid
-printing an error message when this happens.  The checks are updated
-in both sg_complete() and sg_cancel(), and the second is updated to
-match the first (currently it prints out unnecessary warning messages
-if a device is unplugged while a transfer is in progress).
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Reported-and-tested-by: Illia Zaitsev <I.Zaitsev at adbglobal.com>
-CC: Ming Lei <tom.leiming at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/core/message.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
-index b3bdfed..aed3e07 100644
---- a/drivers/usb/core/message.c
-+++ b/drivers/usb/core/message.c
-@@ -308,7 +308,8 @@ static void sg_complete(struct urb *urb)
- 				retval = usb_unlink_urb(io->urbs [i]);
- 				if (retval != -EINPROGRESS &&
- 				    retval != -ENODEV &&
--				    retval != -EBUSY)
-+				    retval != -EBUSY &&
-+				    retval != -EIDRM)
- 					dev_err(&io->dev->dev,
- 						"%s, unlink --> %d\n",
- 						__func__, retval);
-@@ -317,7 +318,6 @@ static void sg_complete(struct urb *urb)
- 		}
- 		spin_lock(&io->lock);
- 	}
--	urb->dev = NULL;
- 
- 	/* on the last completion, signal usb_sg_wait() */
- 	io->bytes += urb->actual_length;
-@@ -524,7 +524,6 @@ void usb_sg_wait(struct usb_sg_request *io)
- 		case -ENXIO:	/* hc didn't queue this one */
- 		case -EAGAIN:
- 		case -ENOMEM:
--			io->urbs[i]->dev = NULL;
- 			retval = 0;
- 			yield();
- 			break;
-@@ -542,7 +541,6 @@ void usb_sg_wait(struct usb_sg_request *io)
- 
- 			/* fail any uncompleted urbs */
- 		default:
--			io->urbs[i]->dev = NULL;
- 			io->urbs[i]->status = retval;
- 			dev_dbg(&io->dev->dev, "%s, submit --> %d\n",
- 				__func__, retval);
-@@ -593,7 +591,10 @@ void usb_sg_cancel(struct usb_sg_request *io)
- 			if (!io->urbs [i]->dev)
- 				continue;
- 			retval = usb_unlink_urb(io->urbs [i]);
--			if (retval != -EINPROGRESS && retval != -EBUSY)
-+			if (retval != -EINPROGRESS
-+					&& retval != -ENODEV
-+					&& retval != -EBUSY
-+					&& retval != -EIDRM)
- 				dev_warn(&io->dev->dev, "%s, unlink --> %d\n",
- 					__func__, retval);
- 		}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0033-USB-don-t-ignore-suspend-errors-for-root-hubs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0033-USB-don-t-ignore-suspend-errors-for-root-hubs.patch
deleted file mode 100644
index 0d9190f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0033-USB-don-t-ignore-suspend-errors-for-root-hubs.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 76cec389c13edcc348d13a0efc7351752c3f71e3 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Wed, 28 Mar 2012 15:56:17 -0400
-Subject: [PATCH 33/68] USB: don't ignore suspend errors for root hubs
-
-commit cd4376e23a59a2adf3084cb5f4a523e6d5fd4e49 upstream.
-
-This patch (as1532) fixes a mistake in the USB suspend code.  When the
-system is going to sleep, we should ignore errors in powering down USB
-devices, because they don't really matter.  The devices will go to low
-power anyway when the entire USB bus gets suspended (except for
-SuperSpeed devices; maybe they will need special treatment later).
-
-However we should not ignore errors in suspending root hubs,
-especially if the error indicates that the suspend raced with a wakeup
-request.  Doing so might leave the bus powered on while the system was
-supposed to be asleep, or it might cause the suspend of the root hub's
-parent controller device to fail, or it might cause a wakeup request
-to be ignored.
-
-The patch fixes the problem by ignoring errors only when the device in
-question is not a root hub.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Reported-by: Chen Peter <B29397 at freescale.com>
-Tested-by: Chen Peter <peter.chen at freescale.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/core/driver.c |    9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/core/driver.c b/drivers/usb/core/driver.c
-index 45887a0..c77f0d6 100644
---- a/drivers/usb/core/driver.c
-+++ b/drivers/usb/core/driver.c
-@@ -1198,8 +1198,13 @@ static int usb_suspend_both(struct usb_device *udev, pm_message_t msg)
- 	if (status == 0) {
- 		status = usb_suspend_device(udev, msg);
- 
--		/* Again, ignore errors during system sleep transitions */
--		if (!PMSG_IS_AUTO(msg))
-+		/*
-+		 * Ignore errors from non-root-hub devices during
-+		 * system sleep transitions.  For the most part,
-+		 * these devices should go to low power anyway when
-+		 * the entire bus is suspended.
-+		 */
-+		if (udev->parent && !PMSG_IS_AUTO(msg))
- 			status = 0;
- 	}
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0034-xhci-don-t-re-enable-IE-constantly.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0034-xhci-don-t-re-enable-IE-constantly.patch
deleted file mode 100644
index 590fa5b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0034-xhci-don-t-re-enable-IE-constantly.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4baf16baa7693c3ef1083347dfc02d92050ee34b Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Thu, 15 Mar 2012 16:37:08 +0200
-Subject: [PATCH 34/68] xhci: don't re-enable IE constantly
-
-commit 4e833c0b87a30798e67f06120cecebef6ee9644c upstream.
-
-While we're at that, define IMAN bitfield to aid readability.
-
-The interrupt enable bit should be set once on driver init, and we
-shouldn't need to continually re-enable it.  Commit c21599a3 introduced
-a read of the irq_pending register, and that allows us to preserve the
-state of the IE bit.  Before that commit, we were blindly writing 0x3 to
-the register.
-
-This patch should be backported to kernels as old as 2.6.36, or ones
-that contain the commit c21599a36165dbc78b380846b254017a548b9de5 "USB:
-xhci: Reduce reads and writes of interrupter registers".
-
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-ring.c |    2 +-
- drivers/usb/host/xhci.h      |    4 ++++
- 2 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
-index ae92dc4..43b3447 100644
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -2343,7 +2343,7 @@ hw_died:
- 		u32 irq_pending;
- 		/* Acknowledge the PCI interrupt */
- 		irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending);
--		irq_pending |= 0x3;
-+		irq_pending |= IMAN_IP;
- 		xhci_writel(xhci, irq_pending, &xhci->ir_set->irq_pending);
- 	}
- 
-diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
-index 09eda3a..4850c4d 100644
---- a/drivers/usb/host/xhci.h
-+++ b/drivers/usb/host/xhci.h
-@@ -205,6 +205,10 @@ struct xhci_op_regs {
- #define CMD_PM_INDEX	(1 << 11)
- /* bits 12:31 are reserved (and should be preserved on writes). */
- 
-+/* IMAN - Interrupt Management Register */
-+#define IMAN_IP		(1 << 1)
-+#define IMAN_IE		(1 << 0)
-+
- /* USBSTS - USB status - status bitmasks */
- /* HC not running - set to 1 when run/stop bit is cleared. */
- #define STS_HALT	XHCI_STS_HALT
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0035-xhci-Don-t-write-zeroed-pointers-to-xHC-registers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0035-xhci-Don-t-write-zeroed-pointers-to-xHC-registers.patch
deleted file mode 100644
index 47e7b05..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0035-xhci-Don-t-write-zeroed-pointers-to-xHC-registers.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From eefbd6d2849f7b6a48865e9946d80f2d08fbda44 Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Fri, 16 Mar 2012 13:09:39 -0700
-Subject: [PATCH 35/68] xhci: Don't write zeroed pointers to xHC registers.
-
-commit 159e1fcc9a60fc7daba23ee8fcdb99799de3fe84 upstream.
-
-When xhci_mem_cleanup() is called, we can't be sure if the xHC is
-actually halted.  We can ask the xHC to halt by writing to the RUN bit
-in the command register, but that might timeout due to a HW hang.
-
-If the host controller is still running, we should not write zeroed
-values to the event ring dequeue pointers or base tables, the DCBAA
-pointers, or the command ring pointers.  Eric Fu reports his VIA VL800
-host accesses the event ring pointers after a failed register restore on
-resume from suspend.  The hypothesis is that the host never actually
-halted before the register write to change the event ring pointer to
-zero.
-
-Remove all writes of zeroed values to pointer registers in
-xhci_mem_cleanup().  Instead, make all callers of the function reset the
-host controller first, which will reset those registers to zero.
-xhci_mem_init() is the only caller that doesn't first halt and reset the
-host controller before calling xhci_mem_cleanup().
-
-This should be backported to kernels as old as 2.6.32.
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Tested-by: Elric Fu <elricfu1 at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-mem.c |    9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index c69cf54..01c3800 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -1704,11 +1704,6 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- 	int i;
- 
- 	/* Free the Event Ring Segment Table and the actual Event Ring */
--	if (xhci->ir_set) {
--		xhci_writel(xhci, 0, &xhci->ir_set->erst_size);
--		xhci_write_64(xhci, 0, &xhci->ir_set->erst_base);
--		xhci_write_64(xhci, 0, &xhci->ir_set->erst_dequeue);
--	}
- 	size = sizeof(struct xhci_erst_entry)*(xhci->erst.num_entries);
- 	if (xhci->erst.entries)
- 		dma_free_coherent(&pdev->dev, size,
-@@ -1720,7 +1715,6 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- 	xhci->event_ring = NULL;
- 	xhci_dbg(xhci, "Freed event ring\n");
- 
--	xhci_write_64(xhci, 0, &xhci->op_regs->cmd_ring);
- 	if (xhci->cmd_ring)
- 		xhci_ring_free(xhci, xhci->cmd_ring);
- 	xhci->cmd_ring = NULL;
-@@ -1749,7 +1743,6 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- 	xhci->medium_streams_pool = NULL;
- 	xhci_dbg(xhci, "Freed medium stream array pool\n");
- 
--	xhci_write_64(xhci, 0, &xhci->op_regs->dcbaa_ptr);
- 	if (xhci->dcbaa)
- 		dma_free_coherent(&pdev->dev, sizeof(*xhci->dcbaa),
- 				xhci->dcbaa, xhci->dcbaa->dma);
-@@ -2358,6 +2351,8 @@ int xhci_mem_init(struct xhci_hcd *xhci, gfp_t flags)
- 
- fail:
- 	xhci_warn(xhci, "Couldn't initialize memory\n");
-+	xhci_halt(xhci);
-+	xhci_reset(xhci);
- 	xhci_mem_cleanup(xhci);
- 	return -ENOMEM;
- }
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0036-xhci-Restore-event-ring-dequeue-pointer-on-resume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0036-xhci-Restore-event-ring-dequeue-pointer-on-resume.patch
deleted file mode 100644
index 3b16ebd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0036-xhci-Restore-event-ring-dequeue-pointer-on-resume.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f8f150a7dd5f865281c14bff1e2260ecc60e9f3f Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Fri, 16 Mar 2012 13:27:39 -0700
-Subject: [PATCH 36/68] xhci: Restore event ring dequeue pointer on resume.
-
-commit fb3d85bc7193f23c9a564502df95564c49a32c91 upstream.
-
-The xhci_save_registers() function saved the event ring dequeue pointer
-in the s3 register structure, but xhci_restore_registers() never
-restored it.  No other code in the xHCI successful resume path would
-ever restore it either.  Fix that.
-
-This should be backported to kernels as old as 2.6.37, that contain the
-commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI: PCI power
-management implementation".
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Tested-by: Elric Fu <elricfu1 at gmail.com>
-Cc: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 034f554..4d44713 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -681,6 +681,7 @@ static void xhci_restore_registers(struct xhci_hcd *xhci)
- 	xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control);
- 	xhci_writel(xhci, xhci->s3.erst_size, &xhci->ir_set->erst_size);
- 	xhci_write_64(xhci, xhci->s3.erst_base, &xhci->ir_set->erst_base);
-+	xhci_write_64(xhci, xhci->s3.erst_dequeue, &xhci->ir_set->erst_dequeue);
- }
- 
- static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0037-USB-fix-bug-of-device-descriptor-got-from-superspeed.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0037-USB-fix-bug-of-device-descriptor-got-from-superspeed.patch
deleted file mode 100644
index 6e94e7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0037-USB-fix-bug-of-device-descriptor-got-from-superspeed.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0060609ba317d6efd3584b4f0ad260944049dc69 Mon Sep 17 00:00:00 2001
-From: Elric Fu <elricfu1 at gmail.com>
-Date: Mon, 26 Mar 2012 21:16:02 +0800
-Subject: [PATCH 37/68] USB: fix bug of device descriptor got from superspeed
- device
-
-commit d8aec3dbdfd02627e198e7956ab4aaeba2a349fa upstream.
-
-When the Seagate Goflex USB3.0 device is attached to VIA xHCI
-host, sometimes the device will downgrade mode to high speed.
-By the USB analyzer, I found the device finished the link
-training process and worked at superspeed mode. But the device
-descriptor got from the device shows the device works at 2.1.
-It is very strange and seems like the device controller of
-Seagate Goflex has a little confusion.
-
-The first 8 bytes of device descriptor should be:
-12 01 00 03 00 00 00 09
-
-But the first 8 bytes of wrong device descriptor are:
-12 01 10 02 00 00 00 40
-
-The wrong device descriptor caused the initialization of mass
-storage failed. After a while, the device would be recognized
-as a high speed device and works fine.
-
-This patch will warm reset the device to fix the issue after
-finding the bcdUSB field of device descriptor isn't 0x0300
-but the speed mode of device is superspeed.
-
-This patch should be backported to kernels as old as 3.2, or ones that
-contain the commit 75d7cf72ab9fa01dc70877aa5c68e8ef477229dc "usbcore:
-refine warm reset logic".
-
-Signed-off-by: Elric Fu <elricfu1 at gmail.com>
-Acked-by: Andiry Xu <Andiry.Xu at amd.com>
-Acked-by: Sergei Shtylyov <sshtylyov at mvista.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/core/hub.c |   16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index f982eeb..18373ec 100644
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -3072,6 +3072,22 @@ hub_port_init (struct usb_hub *hub, struct usb_device *udev, int port1,
- 	if (retval)
- 		goto fail;
- 
-+	/*
-+	 * Some superspeed devices have finished the link training process
-+	 * and attached to a superspeed hub port, but the device descriptor
-+	 * got from those devices show they aren't superspeed devices. Warm
-+	 * reset the port attached by the devices can fix them.
-+	 */
-+	if ((udev->speed == USB_SPEED_SUPER) &&
-+			(le16_to_cpu(udev->descriptor.bcdUSB) < 0x0300)) {
-+		dev_err(&udev->dev, "got a wrong device descriptor, "
-+				"warm reset device\n");
-+		hub_port_reset(hub, port1, udev,
-+				HUB_BH_RESET_TIME, true);
-+		retval = -EINVAL;
-+		goto fail;
-+	}
-+
- 	if (udev->descriptor.bMaxPacketSize0 == 0xff ||
- 			udev->speed == USB_SPEED_SUPER)
- 		i = 512;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0038-xHCI-add-XHCI_RESET_ON_RESUME-quirk-for-VIA-xHCI-hos.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0038-xHCI-add-XHCI_RESET_ON_RESUME-quirk-for-VIA-xHCI-hos.patch
deleted file mode 100644
index 0e54897..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0038-xHCI-add-XHCI_RESET_ON_RESUME-quirk-for-VIA-xHCI-hos.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 8f4c9c4038bbc8e334790983712c1492e292d7f2 Mon Sep 17 00:00:00 2001
-From: Elric Fu <elricfu1 at gmail.com>
-Date: Thu, 29 Mar 2012 15:47:50 +0800
-Subject: [PATCH 38/68] xHCI: add XHCI_RESET_ON_RESUME quirk for VIA xHCI host
-
-commit 457a4f61f9bfc3ae76e5b49f30f25d86bb696f67 upstream.
-
-The suspend operation of VIA xHCI host have some issues and
-hibernate operation works fine, so The XHCI_RESET_ON_RESUME
-quirk is added for it.
-
-This patch should base on "xHCI: Don't write zeroed pointer
-to xHC registers" that is released by Sarah. Otherwise, the
-host system error will ocurr in the hibernate operation
-process.
-
-This should be backported to stable kernels as old as 2.6.37,
-that contain the commit c877b3b2ad5cb9d4fe523c5496185cc328ff3ae9
-"xhci: Add reset on resume quirk for asrock p67 host".
-
-Signed-off-by: Elric Fu <elricfu1 at gmail.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-pci.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index ef98b38..211296a 100644
---- a/drivers/usb/host/xhci-pci.c
-+++ b/drivers/usb/host/xhci-pci.c
-@@ -95,6 +95,8 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
- 		xhci->quirks |= XHCI_RESET_ON_RESUME;
- 		xhci_dbg(xhci, "QUIRK: Resetting on resume\n");
- 	}
-+	if (pdev->vendor == PCI_VENDOR_ID_VIA)
-+		xhci->quirks |= XHCI_RESET_ON_RESUME;
- }
- 
- /* called during probe() after chip reset completes */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0039-xHCI-Correct-the-define-XHCI_LEGACY_DISABLE_SMI.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0039-xHCI-Correct-the-define-XHCI_LEGACY_DISABLE_SMI.patch
deleted file mode 100644
index b184894..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0039-xHCI-Correct-the-define-XHCI_LEGACY_DISABLE_SMI.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f7dd4f23cd64f64dbed76c7cca31533f3ed11037 Mon Sep 17 00:00:00 2001
-From: Alex He <alex.he at amd.com>
-Date: Fri, 30 Mar 2012 10:21:38 +0800
-Subject: [PATCH 39/68] xHCI: Correct the #define XHCI_LEGACY_DISABLE_SMI
-
-commit 95018a53f7653e791bba1f54c8d75d9cb700d1bd upstream.
-
-Re-define XHCI_LEGACY_DISABLE_SMI and used it in right way. All SMI enable
-bits will be cleared to zero and flag bits 29:31 are also cleared to zero.
-Other bits should be presvered as Table 146.
-
-This patch should be backported to kernels as old as 2.6.31.
-
-Signed-off-by: Alex He <alex.he at amd.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/pci-quirks.c    |   10 +++++++---
- drivers/usb/host/xhci-ext-caps.h |    5 +++--
- 2 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
-index 7732d69..2afff88 100644
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
-@@ -825,9 +825,13 @@ static void __devinit quirk_usb_handoff_xhci(struct pci_dev *pdev)
- 		}
- 	}
- 
--	/* Disable any BIOS SMIs */
--	writel(XHCI_LEGACY_DISABLE_SMI,
--			base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
-+	val = readl(base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
-+	/* Mask off (turn off) any enabled SMIs */
-+	val &= XHCI_LEGACY_DISABLE_SMI;
-+	/* Mask all SMI events bits, RW1C */
-+	val |= XHCI_LEGACY_SMI_EVENTS;
-+	/* Disable any BIOS SMIs and clear all SMI events*/
-+	writel(val, base + ext_cap_offset + XHCI_LEGACY_CONTROL_OFFSET);
- 
- 	if (usb_is_intel_switchable_xhci(pdev))
- 		usb_enable_xhci_ports(pdev);
-diff --git a/drivers/usb/host/xhci-ext-caps.h b/drivers/usb/host/xhci-ext-caps.h
-index c7f3312..377f424 100644
---- a/drivers/usb/host/xhci-ext-caps.h
-+++ b/drivers/usb/host/xhci-ext-caps.h
-@@ -62,8 +62,9 @@
- /* USB Legacy Support Control and Status Register  - section 7.1.2 */
- /* Add this offset, plus the value of xECP in HCCPARAMS to the base address */
- #define XHCI_LEGACY_CONTROL_OFFSET	(0x04)
--/* bits 1:2, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */
--#define	XHCI_LEGACY_DISABLE_SMI		((0x3 << 1) + (0xff << 5) + (0x7 << 17))
-+/* bits 1:3, 5:12, and 17:19 need to be preserved; bits 21:28 should be zero */
-+#define	XHCI_LEGACY_DISABLE_SMI		((0x7 << 1) + (0xff << 5) + (0x7 << 17))
-+#define XHCI_LEGACY_SMI_EVENTS		(0x7 << 29)
- 
- /* USB 2.0 xHCI 0.96 L1C capability - section 7.2.2.1.3.2 */
- #define XHCI_L1C               (1 << 16)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0040-fix-tlb-flushing-for-page-table-pages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0040-fix-tlb-flushing-for-page-table-pages.patch
deleted file mode 100644
index 1a6e44c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0040-fix-tlb-flushing-for-page-table-pages.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-From d0cba3dd900c1420176693c3f10ec11ada4553af Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Date: Wed, 11 Apr 2012 14:28:07 +0200
-Subject: [PATCH 40/68] fix tlb flushing for page table pages
-
-commit cd94154cc6a28dd9dc271042c1a59c08d26da886 upstream.
-
-Git commit 36409f6353fc2d7b6516e631415f938eadd92ffa "use generic RCU
-page-table freeing code" introduced a tlb flushing bug. Partially revert
-the above git commit and go back to s390 specific page table flush code.
-
-For s390 the TLB can contain three types of entries, "normal" TLB
-page-table entries, TLB combined region-and-segment-table (CRST) entries
-and real-space entries. Linux does not use real-space entries which
-leaves normal TLB entries and CRST entries. The CRST entries are
-intermediate steps in the page-table translation called translation paths.
-For example a 4K page access in a three-level page table setup will
-create two CRST TLB entries and one page-table TLB entry. The advantage
-of that approach is that a page access next to the previous one can reuse
-the CRST entries and needs just a single read from memory to create the
-page-table TLB entry. The disadvantage is that the TLB flushing rules are
-more complicated, before any page-table may be freed the TLB needs to be
-flushed.
-
-In short: the generic RCU page-table freeing code is incorrect for the
-CRST entries, in particular the check for mm_users < 2 is troublesome.
-
-This is applicable to 3.0+ kernels.
-
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/s390/Kconfig               |    1 -
- arch/s390/include/asm/pgalloc.h |    3 --
- arch/s390/include/asm/tlb.h     |   22 +-------------
- arch/s390/mm/pgtable.c          |   63 +++++++++++++++++++++++++++++++++++++--
- 4 files changed, 61 insertions(+), 28 deletions(-)
-
-diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig
-index f929db9..a3c40e8 100644
---- a/arch/s390/Kconfig
-+++ b/arch/s390/Kconfig
-@@ -90,7 +90,6 @@ config S390
- 	select HAVE_GET_USER_PAGES_FAST
- 	select HAVE_ARCH_MUTEX_CPU_RELAX
- 	select HAVE_ARCH_JUMP_LABEL if !MARCH_G5
--	select HAVE_RCU_TABLE_FREE if SMP
- 	select ARCH_SAVE_PAGE_KEYS if HIBERNATION
- 	select ARCH_INLINE_SPIN_TRYLOCK
- 	select ARCH_INLINE_SPIN_TRYLOCK_BH
-diff --git a/arch/s390/include/asm/pgalloc.h b/arch/s390/include/asm/pgalloc.h
-index 8eef9b5..78e3041 100644
---- a/arch/s390/include/asm/pgalloc.h
-+++ b/arch/s390/include/asm/pgalloc.h
-@@ -22,10 +22,7 @@ void crst_table_free(struct mm_struct *, unsigned long *);
- 
- unsigned long *page_table_alloc(struct mm_struct *, unsigned long);
- void page_table_free(struct mm_struct *, unsigned long *);
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- void page_table_free_rcu(struct mmu_gather *, unsigned long *);
--void __tlb_remove_table(void *_table);
--#endif
- 
- static inline void clear_table(unsigned long *s, unsigned long val, size_t n)
- {
-diff --git a/arch/s390/include/asm/tlb.h b/arch/s390/include/asm/tlb.h
-index c687a2c..775a5ee 100644
---- a/arch/s390/include/asm/tlb.h
-+++ b/arch/s390/include/asm/tlb.h
-@@ -30,14 +30,10 @@
- 
- struct mmu_gather {
- 	struct mm_struct *mm;
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- 	struct mmu_table_batch *batch;
--#endif
- 	unsigned int fullmm;
--	unsigned int need_flush;
- };
- 
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- struct mmu_table_batch {
- 	struct rcu_head		rcu;
- 	unsigned int		nr;
-@@ -49,7 +45,6 @@ struct mmu_table_batch {
- 
- extern void tlb_table_flush(struct mmu_gather *tlb);
- extern void tlb_remove_table(struct mmu_gather *tlb, void *table);
--#endif
- 
- static inline void tlb_gather_mmu(struct mmu_gather *tlb,
- 				  struct mm_struct *mm,
-@@ -57,29 +52,20 @@ static inline void tlb_gather_mmu(struct mmu_gather *tlb,
- {
- 	tlb->mm = mm;
- 	tlb->fullmm = full_mm_flush;
--	tlb->need_flush = 0;
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- 	tlb->batch = NULL;
--#endif
- 	if (tlb->fullmm)
- 		__tlb_flush_mm(mm);
- }
- 
- static inline void tlb_flush_mmu(struct mmu_gather *tlb)
- {
--	if (!tlb->need_flush)
--		return;
--	tlb->need_flush = 0;
--	__tlb_flush_mm(tlb->mm);
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- 	tlb_table_flush(tlb);
--#endif
- }
- 
- static inline void tlb_finish_mmu(struct mmu_gather *tlb,
- 				  unsigned long start, unsigned long end)
- {
--	tlb_flush_mmu(tlb);
-+	tlb_table_flush(tlb);
- }
- 
- /*
-@@ -105,10 +91,8 @@ static inline void tlb_remove_page(struct mmu_gather *tlb, struct page *page)
- static inline void pte_free_tlb(struct mmu_gather *tlb, pgtable_t pte,
- 				unsigned long address)
- {
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- 	if (!tlb->fullmm)
- 		return page_table_free_rcu(tlb, (unsigned long *) pte);
--#endif
- 	page_table_free(tlb->mm, (unsigned long *) pte);
- }
- 
-@@ -125,10 +109,8 @@ static inline void pmd_free_tlb(struct mmu_gather *tlb, pmd_t *pmd,
- #ifdef __s390x__
- 	if (tlb->mm->context.asce_limit <= (1UL << 31))
- 		return;
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- 	if (!tlb->fullmm)
- 		return tlb_remove_table(tlb, pmd);
--#endif
- 	crst_table_free(tlb->mm, (unsigned long *) pmd);
- #endif
- }
-@@ -146,10 +128,8 @@ static inline void pud_free_tlb(struct mmu_gather *tlb, pud_t *pud,
- #ifdef __s390x__
- 	if (tlb->mm->context.asce_limit <= (1UL << 42))
- 		return;
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
- 	if (!tlb->fullmm)
- 		return tlb_remove_table(tlb, pud);
--#endif
- 	crst_table_free(tlb->mm, (unsigned long *) pud);
- #endif
- }
-diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
-index 301c84d..f8ceac4 100644
---- a/arch/s390/mm/pgtable.c
-+++ b/arch/s390/mm/pgtable.c
-@@ -687,8 +687,6 @@ void page_table_free(struct mm_struct *mm, unsigned long *table)
- 	}
- }
- 
--#ifdef CONFIG_HAVE_RCU_TABLE_FREE
--
- static void __page_table_free_rcu(void *table, unsigned bit)
- {
- 	struct page *page;
-@@ -742,7 +740,66 @@ void __tlb_remove_table(void *_table)
- 		free_pages((unsigned long) table, ALLOC_ORDER);
- }
- 
--#endif
-+static void tlb_remove_table_smp_sync(void *arg)
-+{
-+	/* Simply deliver the interrupt */
-+}
-+
-+static void tlb_remove_table_one(void *table)
-+{
-+	/*
-+	 * This isn't an RCU grace period and hence the page-tables cannot be
-+	 * assumed to be actually RCU-freed.
-+	 *
-+	 * It is however sufficient for software page-table walkers that rely
-+	 * on IRQ disabling. See the comment near struct mmu_table_batch.
-+	 */
-+	smp_call_function(tlb_remove_table_smp_sync, NULL, 1);
-+	__tlb_remove_table(table);
-+}
-+
-+static void tlb_remove_table_rcu(struct rcu_head *head)
-+{
-+	struct mmu_table_batch *batch;
-+	int i;
-+
-+	batch = container_of(head, struct mmu_table_batch, rcu);
-+
-+	for (i = 0; i < batch->nr; i++)
-+		__tlb_remove_table(batch->tables[i]);
-+
-+	free_page((unsigned long)batch);
-+}
-+
-+void tlb_table_flush(struct mmu_gather *tlb)
-+{
-+	struct mmu_table_batch **batch = &tlb->batch;
-+
-+	if (*batch) {
-+		__tlb_flush_mm(tlb->mm);
-+		call_rcu_sched(&(*batch)->rcu, tlb_remove_table_rcu);
-+		*batch = NULL;
-+	}
-+}
-+
-+void tlb_remove_table(struct mmu_gather *tlb, void *table)
-+{
-+	struct mmu_table_batch **batch = &tlb->batch;
-+
-+	if (*batch == NULL) {
-+		*batch = (struct mmu_table_batch *)
-+			__get_free_page(GFP_NOWAIT | __GFP_NOWARN);
-+		if (*batch == NULL) {
-+			__tlb_flush_mm(tlb->mm);
-+			tlb_remove_table_one(table);
-+			return;
-+		}
-+		(*batch)->nr = 0;
-+	}
-+	(*batch)->tables[(*batch)->nr++] = table;
-+	if ((*batch)->nr == MAX_TABLE_BATCH)
-+		tlb_table_flush(tlb);
-+}
- 
- /*
-  * switch on pgstes for its userspace process (for kvm)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0041-serial-PL011-clear-pending-interrupts.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0041-serial-PL011-clear-pending-interrupts.patch
deleted file mode 100644
index 3b17d2c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0041-serial-PL011-clear-pending-interrupts.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 83b1f68d0e0fdc6993be1ebf4ef51a439b71180f Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij at linaro.org>
-Date: Tue, 13 Mar 2012 13:27:23 +0100
-Subject: [PATCH 41/68] serial: PL011: clear pending interrupts
-
-commit 9b96fbacda34079dea0638ee1e92c56286f6114a upstream.
-
-Chanho Min reported that when the boot loader transfers
-control to the kernel, there may be pending interrupts
-causing the UART to lock up in an eternal loop trying to
-pick tokens from the FIFO (since the RX interrupt flag
-indicates there are tokens) while in practice there are
-no tokens - in fact there is only a pending IRQ flag.
-
-This patch address the issue with a combination of two
-patches suggested by Russell King that clears and mask
-all interrupts at probe() and clears any pending error
-and RX interrupts at port startup time.
-
-We suspect the spurious interrupts are a side-effect of
-switching the UART from FIFO to non-FIFO mode.
-
-Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu at stericsson.com>
-Reported-by: Chanho Min <chanho0207 at gmail.com>
-Suggested-by: Russell King <linux at arm.linux.org.uk>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Reviewed-by: Jong-Sung Kim <neidhard.kim at lge.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/amba-pl011.c |   15 +++++++++++----
- 1 file changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
-index 8e00926..dddc3f2 100644
---- a/drivers/tty/serial/amba-pl011.c
-+++ b/drivers/tty/serial/amba-pl011.c
-@@ -1380,6 +1380,10 @@ static int pl011_startup(struct uart_port *port)
- 
- 	uap->port.uartclk = clk_get_rate(uap->clk);
- 
-+	/* Clear pending error and receive interrupts */
-+	writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS |
-+	       UART011_RTIS | UART011_RXIS, uap->port.membase + UART011_ICR);
-+
- 	/*
- 	 * Allocate the IRQ
- 	 */
-@@ -1414,10 +1418,6 @@ static int pl011_startup(struct uart_port *port)
- 	cr = UART01x_CR_UARTEN | UART011_CR_RXE | UART011_CR_TXE;
- 	writew(cr, uap->port.membase + UART011_CR);
- 
--	/* Clear pending error interrupts */
--	writew(UART011_OEIS | UART011_BEIS | UART011_PEIS | UART011_FEIS,
--	       uap->port.membase + UART011_ICR);
--
- 	/*
- 	 * initialise the old status of the modem signals
- 	 */
-@@ -1432,6 +1432,9 @@ static int pl011_startup(struct uart_port *port)
- 	 * as well.
- 	 */
- 	spin_lock_irq(&uap->port.lock);
-+	/* Clear out any spuriously appearing RX interrupts */
-+	 writew(UART011_RTIS | UART011_RXIS,
-+		uap->port.membase + UART011_ICR);
- 	uap->im = UART011_RTIM;
- 	if (!pl011_dma_rx_running(uap))
- 		uap->im |= UART011_RXIM;
-@@ -1916,6 +1919,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
- 		goto unmap;
- 	}
- 
-+	/* Ensure interrupts from this UART are masked and cleared */
-+	writew(0, uap->port.membase + UART011_IMSC);
-+	writew(0xffff, uap->port.membase + UART011_ICR);
-+
- 	uap->vendor = vendor;
- 	uap->lcrh_rx = vendor->lcrh_rx;
- 	uap->lcrh_tx = vendor->lcrh_tx;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0042-serial-PL011-move-interrupt-clearing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0042-serial-PL011-move-interrupt-clearing.patch
deleted file mode 100644
index 8ecc1bd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0042-serial-PL011-move-interrupt-clearing.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 39f2e7d1ec34222f7e7262c87425b18964d16b25 Mon Sep 17 00:00:00 2001
-From: Linus Walleij <linus.walleij at linaro.org>
-Date: Wed, 21 Mar 2012 20:15:18 +0100
-Subject: [PATCH 42/68] serial: PL011: move interrupt clearing
-
-commit c3d8b76f61586714cdc5f219ba45592a54caaa55 upstream.
-
-Commit 360f748b204275229f8398cb2f9f53955db1503b
-"serial: PL011: clear pending interrupts"
-attempts to clear interrupts by writing to a
-yet-unassigned memory address. This fixes the issue.
-
-The breaking patch is marked for stable so should be
-carried along with the other patch.
-
-Cc: Shreshtha Kumar Sahu <shreshthakumar.sahu at stericsson.com>
-Cc: Russell King <linux at arm.linux.org.uk>
-Cc: Nicolas Pitre <nico at fluxnic.net>
-Reported-by: Viresh Kumar <viresh.kumar at st.com>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Tested-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/amba-pl011.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
-index dddc3f2..6da8cf8 100644
---- a/drivers/tty/serial/amba-pl011.c
-+++ b/drivers/tty/serial/amba-pl011.c
-@@ -1919,10 +1919,6 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
- 		goto unmap;
- 	}
- 
--	/* Ensure interrupts from this UART are masked and cleared */
--	writew(0, uap->port.membase + UART011_IMSC);
--	writew(0xffff, uap->port.membase + UART011_ICR);
--
- 	uap->vendor = vendor;
- 	uap->lcrh_rx = vendor->lcrh_rx;
- 	uap->lcrh_tx = vendor->lcrh_tx;
-@@ -1939,6 +1935,10 @@ static int pl011_probe(struct amba_device *dev, const struct amba_id *id)
- 	uap->port.line = i;
- 	pl011_dma_probe(uap);
- 
-+	/* Ensure interrupts from this UART are masked and cleared */
-+	writew(0, uap->port.membase + UART011_IMSC);
-+	writew(0xffff, uap->port.membase + UART011_ICR);
-+
- 	snprintf(uap->type, sizeof(uap->type), "PL011 rev%u", amba_rev(dev));
- 
- 	amba_ports[i] = uap;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0043-fcaps-clear-the-same-personality-flags-as-suid-when-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0043-fcaps-clear-the-same-personality-flags-as-suid-when-.patch
deleted file mode 100644
index 3901682..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0043-fcaps-clear-the-same-personality-flags-as-suid-when-.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 131deceebcd7239f193e6f9fef1fe30df267e1c4 Mon Sep 17 00:00:00 2001
-From: Eric Paris <eparis at redhat.com>
-Date: Tue, 17 Apr 2012 16:26:54 -0400
-Subject: [PATCH 43/68] fcaps: clear the same personality flags as suid when
- fcaps are used
-
-commit d52fc5dde171f030170a6cb78034d166b13c9445 upstream.
-
-If a process increases permissions using fcaps all of the dangerous
-personality flags which are cleared for suid apps should also be cleared.
-Thus programs given priviledge with fcaps will continue to have address space
-randomization enabled even if the parent tried to disable it to make it
-easier to attack.
-
-Signed-off-by: Eric Paris <eparis at redhat.com>
-Reviewed-by: Serge Hallyn <serge.hallyn at canonical.com>
-Signed-off-by: James Morris <james.l.morris at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- security/commoncap.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/security/commoncap.c b/security/commoncap.c
-index ee4f848..0aee106 100644
---- a/security/commoncap.c
-+++ b/security/commoncap.c
-@@ -514,6 +514,11 @@ int cap_bprm_set_creds(struct linux_binprm *bprm)
- 	}
- skip:
- 
-+	/* if we have fs caps, clear dangerous personality flags */
-+	if (!cap_issubset(new->cap_permitted, old->cap_permitted))
-+		bprm->per_clear |= PER_CLEAR_ON_SETID;
-+
-+
- 	/* Don't let someone trace a set[ug]id/setpcap binary with the revised
- 	 * credentials unless they have the appropriate permit
- 	 */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0044-ath9k-fix-max-noise-floor-threshold.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0044-ath9k-fix-max-noise-floor-threshold.patch
deleted file mode 100644
index 2fde047..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0044-ath9k-fix-max-noise-floor-threshold.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From dd47cb2da9c6045068d6677d27b4a8acffa9d1a6 Mon Sep 17 00:00:00 2001
-From: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Date: Thu, 15 Mar 2012 06:08:04 +0530
-Subject: [PATCH 44/68] ath9k: fix max noise floor threshold
-
-commit 2ee0a07028d2cde6e131b73f029dae2b93c50f3a upstream.
-
-Currently the maximum noise floor limit is set as too high (-60dB). The
-assumption of having a higher threshold limit is that it would help
-de-sensitize the receiver (reduce phy errors) from continuous
-interference. But when we have a bursty interference where there are
-collisions and then free air time and if the receiver is desensitized too
-much, it will miss the normal packets too. Lets make use of chips
-specific min, nom and max limits always. This patch helps to improve the
-connection stability in congested networks.
-
-Cc: Paul Stewart <pstew at google.com>
-Tested-by: Gary Morain <gmorain at google.com>
-Signed-off-by: Madhan Jaganathan <madhanj at qca.qualcomm.com>
-Signed-off-by: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.0/3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/ath9k/calib.c |    5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/calib.c b/drivers/net/wireless/ath/ath9k/calib.c
-index 8ddef3e..d771de5 100644
---- a/drivers/net/wireless/ath/ath9k/calib.c
-+++ b/drivers/net/wireless/ath/ath9k/calib.c
-@@ -20,7 +20,6 @@
- 
- /* Common calibration code */
- 
--#define ATH9K_NF_TOO_HIGH	-60
- 
- static int16_t ath9k_hw_get_nf_hist_mid(int16_t *nfCalBuffer)
- {
-@@ -348,10 +347,10 @@ static void ath9k_hw_nf_sanitize(struct ath_hw *ah, s16 *nf)
- 			"NF calibrated [%s] [chain %d] is %d\n",
- 			(i >= 3 ? "ext" : "ctl"), i % 3, nf[i]);
- 
--		if (nf[i] > ATH9K_NF_TOO_HIGH) {
-+		if (nf[i] > limit->max) {
- 			ath_dbg(common, ATH_DBG_CALIBRATE,
- 				"NF[%d] (%d) > MAX (%d), correcting to MAX\n",
--				i, nf[i], ATH9K_NF_TOO_HIGH);
-+				i, nf[i], limit->max);
- 			nf[i] = limit->max;
- 		} else if (nf[i] < limit->min) {
- 			ath_dbg(common, ATH_DBG_CALIBRATE,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0045-xhci-Fix-register-save-restore-order.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0045-xhci-Fix-register-save-restore-order.patch
deleted file mode 100644
index b7de663..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0045-xhci-Fix-register-save-restore-order.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5d1eb145d8bd522d7e6fbbd0ee566417535f5291 Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Fri, 16 Mar 2012 13:19:35 -0700
-Subject: [PATCH 45/68] xhci: Fix register save/restore order.
-
-commit c7713e736526d8c9f6f87716fb90562a8ffaff2c upstream.
-
-The xHCI 1.0 spec errata released on June 13, 2011, changes the ordering
-that the xHCI registers are saved and restored in.  It moves the
-interrupt pending (IMAN) and interrupt control (IMOD) registers to be
-saved and restored last.  I believe that's because the host controller
-may attempt to fetch the event ring table when interrupts are
-re-enabled.  Therefore we need to restore the event ring registers
-before we re-enable interrupts.
-
-This should be backported to kernels as old as 2.6.37, that contain the
-commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI: PCI power
-management implementation"
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Tested-by: Elric Fu <elricfu1 at gmail.com>
-Cc: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 4d44713..4c00606 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -664,11 +664,11 @@ static void xhci_save_registers(struct xhci_hcd *xhci)
- 	xhci->s3.dev_nt = xhci_readl(xhci, &xhci->op_regs->dev_notification);
- 	xhci->s3.dcbaa_ptr = xhci_read_64(xhci, &xhci->op_regs->dcbaa_ptr);
- 	xhci->s3.config_reg = xhci_readl(xhci, &xhci->op_regs->config_reg);
--	xhci->s3.irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending);
--	xhci->s3.irq_control = xhci_readl(xhci, &xhci->ir_set->irq_control);
- 	xhci->s3.erst_size = xhci_readl(xhci, &xhci->ir_set->erst_size);
- 	xhci->s3.erst_base = xhci_read_64(xhci, &xhci->ir_set->erst_base);
- 	xhci->s3.erst_dequeue = xhci_read_64(xhci, &xhci->ir_set->erst_dequeue);
-+	xhci->s3.irq_pending = xhci_readl(xhci, &xhci->ir_set->irq_pending);
-+	xhci->s3.irq_control = xhci_readl(xhci, &xhci->ir_set->irq_control);
- }
- 
- static void xhci_restore_registers(struct xhci_hcd *xhci)
-@@ -677,11 +677,11 @@ static void xhci_restore_registers(struct xhci_hcd *xhci)
- 	xhci_writel(xhci, xhci->s3.dev_nt, &xhci->op_regs->dev_notification);
- 	xhci_write_64(xhci, xhci->s3.dcbaa_ptr, &xhci->op_regs->dcbaa_ptr);
- 	xhci_writel(xhci, xhci->s3.config_reg, &xhci->op_regs->config_reg);
--	xhci_writel(xhci, xhci->s3.irq_pending, &xhci->ir_set->irq_pending);
--	xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control);
- 	xhci_writel(xhci, xhci->s3.erst_size, &xhci->ir_set->erst_size);
- 	xhci_write_64(xhci, xhci->s3.erst_base, &xhci->ir_set->erst_base);
- 	xhci_write_64(xhci, xhci->s3.erst_dequeue, &xhci->ir_set->erst_dequeue);
-+	xhci_writel(xhci, xhci->s3.irq_pending, &xhci->ir_set->irq_pending);
-+	xhci_writel(xhci, xhci->s3.irq_control, &xhci->ir_set->irq_control);
- }
- 
- static void xhci_set_cmd_ring_deq(struct xhci_hcd *xhci)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0046-Bluetooth-hci_core-fix-NULL-pointer-dereference-at-u.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0046-Bluetooth-hci_core-fix-NULL-pointer-dereference-at-u.patch
deleted file mode 100644
index 5d271e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0046-Bluetooth-hci_core-fix-NULL-pointer-dereference-at-u.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 5cfa510424e3901b81a0dd9579d078b56f5bca05 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Thu, 15 Mar 2012 14:48:41 +0100
-Subject: [PATCH 46/68] Bluetooth: hci_core: fix NULL-pointer dereference at
- unregister
-
-commit 94324962066231a938564bebad0f941cd2d06bb2 upstream.
-
-Make sure hci_dev_open returns immediately if hci_dev_unregister has
-been called.
-
-This fixes a race between hci_dev_open and hci_dev_unregister which can
-lead to a NULL-pointer dereference.
-
-Bug is 100% reproducible using hciattach and a disconnected serial port:
-
-0. # hciattach -n /dev/ttyO1 any noflow
-
-1. hci_dev_open called from hci_power_on grabs req lock
-2. hci_init_req executes but device fails to initialise (times out
-   eventually)
-3. hci_dev_open is called from hci_sock_ioctl and sleeps on req lock
-4. hci_uart_tty_close calls hci_dev_unregister and sleeps on req lock in
-   hci_dev_do_close
-5. hci_dev_open (1) releases req lock
-6. hci_dev_do_close grabs req lock and returns as device is not up
-7. hci_dev_unregister sleeps in destroy_workqueue
-8. hci_dev_open (3) grabs req lock, calls hci_init_req and eventually sleeps
-9. hci_dev_unregister finishes, while hci_dev_open is still running...
-
-[   79.627136] INFO: trying to register non-static key.
-[   79.632354] the code is fine but needs lockdep annotation.
-[   79.638122] turning off the locking correctness validator.
-[   79.643920] [<c00188bc>] (unwind_backtrace+0x0/0xf8) from [<c00729c4>] (__lock_acquire+0x1590/0x1ab0)
-[   79.653594] [<c00729c4>] (__lock_acquire+0x1590/0x1ab0) from [<c00733f8>] (lock_acquire+0x9c/0x128)
-[   79.663085] [<c00733f8>] (lock_acquire+0x9c/0x128) from [<c0040a88>] (run_timer_softirq+0x150/0x3ac)
-[   79.672668] [<c0040a88>] (run_timer_softirq+0x150/0x3ac) from [<c003a3b8>] (__do_softirq+0xd4/0x22c)
-[   79.682281] [<c003a3b8>] (__do_softirq+0xd4/0x22c) from [<c003a924>] (irq_exit+0x8c/0x94)
-[   79.690856] [<c003a924>] (irq_exit+0x8c/0x94) from [<c0013a50>] (handle_IRQ+0x34/0x84)
-[   79.699157] [<c0013a50>] (handle_IRQ+0x34/0x84) from [<c0008530>] (omap3_intc_handle_irq+0x48/0x4c)
-[   79.708648] [<c0008530>] (omap3_intc_handle_irq+0x48/0x4c) from [<c037499c>] (__irq_usr+0x3c/0x60)
-[   79.718048] Exception stack(0xcf281fb0 to 0xcf281ff8)
-[   79.723358] 1fa0:                                     0001e6a0 be8dab00 0001e698 00036698
-[   79.731933] 1fc0: 0002df98 0002df38 0000001f 00000000 b6f234d0 00000000 00000004 00000000
-[   79.740509] 1fe0: 0001e6f8 be8d6aa0 be8dac50 0000aab8 80000010 ffffffff
-[   79.747497] Unable to handle kernel NULL pointer dereference at virtual address 00000000
-[   79.756011] pgd = cf3b4000
-[   79.758850] [00000000] *pgd=8f0c7831, *pte=00000000, *ppte=00000000
-[   79.765502] Internal error: Oops: 80000007 [#1]
-[   79.770294] Modules linked in:
-[   79.773529] CPU: 0    Tainted: G        W     (3.3.0-rc6-00002-gb5d5c87 #421)
-[   79.781066] PC is at 0x0
-[   79.783721] LR is at run_timer_softirq+0x16c/0x3ac
-[   79.788787] pc : [<00000000>]    lr : [<c0040aa4>]    psr: 60000113
-[   79.788787] sp : cf281ee0  ip : 00000000  fp : cf280000
-[   79.800903] r10: 00000004  r9 : 00000100  r8 : b6f234d0
-[   79.806427] r7 : c0519c28  r6 : cf093488  r5 : c0561a00  r4 : 00000000
-[   79.813323] r3 : 00000000  r2 : c054eee0  r1 : 00000001  r0 : 00000000
-[   79.820190] Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
-[   79.827728] Control: 10c5387d  Table: 8f3b4019  DAC: 00000015
-[   79.833801] Process gpsd (pid: 1265, stack limit = 0xcf2802e8)
-[   79.839965] Stack: (0xcf281ee0 to 0xcf282000)
-[   79.844573] 1ee0: 00000002 00000000 c0040a24 00000000 00000002 cf281f08 00200200 00000000
-[   79.853210] 1f00: 00000000 cf281f18 cf281f08 00000000 00000000 00000000 cf281f18 cf281f18
-[   79.861816] 1f20: 00000000 00000001 c056184c 00000000 00000001 b6f234d0 c0561848 00000004
-[   79.870452] 1f40: cf280000 c003a3b8 c051e79c 00000001 00000000 00000100 3fa9e7b8 0000000a
-[   79.879089] 1f60: 00000025 cf280000 00000025 00000000 00000000 b6f234d0 00000000 00000004
-[   79.887756] 1f80: 00000000 c003a924 c053ad38 c0013a50 fa200000 cf281fb0 ffffffff c0008530
-[   79.896362] 1fa0: 0001e6a0 0000aab8 80000010 c037499c 0001e6a0 be8dab00 0001e698 00036698
-[   79.904998] 1fc0: 0002df98 0002df38 0000001f 00000000 b6f234d0 00000000 00000004 00000000
-[   79.913665] 1fe0: 0001e6f8 be8d6aa0 be8dac50 0000aab8 80000010 ffffffff 00fbf700 04ffff00
-[   79.922302] [<c0040aa4>] (run_timer_softirq+0x16c/0x3ac) from [<c003a3b8>] (__do_softirq+0xd4/0x22c)
-[   79.931945] [<c003a3b8>] (__do_softirq+0xd4/0x22c) from [<c003a924>] (irq_exit+0x8c/0x94)
-[   79.940582] [<c003a924>] (irq_exit+0x8c/0x94) from [<c0013a50>] (handle_IRQ+0x34/0x84)
-[   79.948913] [<c0013a50>] (handle_IRQ+0x34/0x84) from [<c0008530>] (omap3_intc_handle_irq+0x48/0x4c)
-[   79.958404] [<c0008530>] (omap3_intc_handle_irq+0x48/0x4c) from [<c037499c>] (__irq_usr+0x3c/0x60)
-[   79.967773] Exception stack(0xcf281fb0 to 0xcf281ff8)
-[   79.973083] 1fa0:                                     0001e6a0 be8dab00 0001e698 00036698
-[   79.981658] 1fc0: 0002df98 0002df38 0000001f 00000000 b6f234d0 00000000 00000004 00000000
-[   79.990234] 1fe0: 0001e6f8 be8d6aa0 be8dac50 0000aab8 80000010 ffffffff
-[   79.997161] Code: bad PC value
-[   80.000396] ---[ end trace 6f6739840475f9ee ]---
-[   80.005279] Kernel panic - not syncing: Fatal exception in interrupt
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/net/bluetooth/hci.h |    1 +
- net/bluetooth/hci_core.c    |    7 +++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/include/net/bluetooth/hci.h b/include/net/bluetooth/hci.h
-index aaf79af..a7e13bf 100644
---- a/include/net/bluetooth/hci.h
-+++ b/include/net/bluetooth/hci.h
-@@ -84,6 +84,7 @@ enum {
- 	HCI_SERVICE_CACHE,
- 	HCI_LINK_KEYS,
- 	HCI_DEBUG_KEYS,
-+	HCI_UNREGISTER,
- 
- 	HCI_RESET,
- };
-diff --git a/net/bluetooth/hci_core.c b/net/bluetooth/hci_core.c
-index b84458d..857dc88 100644
---- a/net/bluetooth/hci_core.c
-+++ b/net/bluetooth/hci_core.c
-@@ -510,6 +510,11 @@ int hci_dev_open(__u16 dev)
- 
- 	hci_req_lock(hdev);
- 
-+	if (test_bit(HCI_UNREGISTER, &hdev->flags)) {
-+		ret = -ENODEV;
-+		goto done;
-+	}
-+
- 	if (hdev->rfkill && rfkill_blocked(hdev->rfkill)) {
- 		ret = -ERFKILL;
- 		goto done;
-@@ -1540,6 +1545,8 @@ int hci_unregister_dev(struct hci_dev *hdev)
- 
- 	BT_DBG("%p name %s bus %d", hdev, hdev->name, hdev->bus);
- 
-+	set_bit(HCI_UNREGISTER, &hdev->flags);
-+
- 	write_lock_bh(&hci_dev_list_lock);
- 	list_del(&hdev->list);
- 	write_unlock_bh(&hci_dev_list_lock);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0047-pch_gpio-Support-new-device-LAPIS-Semiconductor-ML78.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0047-pch_gpio-Support-new-device-LAPIS-Semiconductor-ML78.patch
deleted file mode 100644
index 68cfa64..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0047-pch_gpio-Support-new-device-LAPIS-Semiconductor-ML78.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From d1d630c1d03f1b6c860fb0f7019aad8df08f4511 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya-linux at dsn.lapis-semi.com>
-Date: Fri, 28 Oct 2011 09:23:32 +0900
-Subject: [PATCH 47/68] pch_gpio: Support new device LAPIS Semiconductor
- ML7831 IOH
-
-commit 868fea0507308b6548bba7debe5f5c2d5ca47fca upstream.
-
-ML7831 is companion chip for Intel Atom E6xx series.
-
-Signed-off-by: Tomoya MORINAGA <tomoya-linux at dsn.lapis-semi.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpio/Kconfig    |   11 ++++++-----
- drivers/gpio/gpio-pch.c |    1 +
- 2 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
-index 8482a23..4e04157 100644
---- a/drivers/gpio/Kconfig
-+++ b/drivers/gpio/Kconfig
-@@ -387,7 +387,7 @@ config GPIO_LANGWELL
- 	  Say Y here to support Intel Langwell/Penwell GPIO.
- 
- config GPIO_PCH
--	tristate "Intel EG20T PCH / OKI SEMICONDUCTOR ML7223 IOH GPIO"
-+	tristate "Intel EG20T PCH/LAPIS Semiconductor IOH(ML7223/ML7831) GPIO"
- 	depends on PCI && X86
- 	select GENERIC_IRQ_CHIP
- 	help
-@@ -395,11 +395,12 @@ config GPIO_PCH
- 	  which is an IOH(Input/Output Hub) for x86 embedded processor.
- 	  This driver can access PCH GPIO device.
- 
--	  This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
--	  Output Hub), ML7223.
-+	  This driver also can be used for LAPIS Semiconductor IOH(Input/
-+	  Output Hub), ML7223 and ML7831.
- 	  ML7223 IOH is for MP(Media Phone) use.
--	  ML7223 is companion chip for Intel Atom E6xx series.
--	  ML7223 is completely compatible for Intel EG20T PCH.
-+	  ML7831 IOH is for general purpose use.
-+	  ML7223/ML7831 is companion chip for Intel Atom E6xx series.
-+	  ML7223/ML7831 is completely compatible for Intel EG20T PCH.
- 
- config GPIO_ML_IOH
- 	tristate "OKI SEMICONDUCTOR ML7213 IOH GPIO support"
-diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c
-index a6008e1..eb574f2 100644
---- a/drivers/gpio/gpio-pch.c
-+++ b/drivers/gpio/gpio-pch.c
-@@ -524,6 +524,7 @@ static DEFINE_PCI_DEVICE_TABLE(pch_gpio_pcidev_id) = {
- 	{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x8803) },
- 	{ PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8014) },
- 	{ PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8043) },
-+	{ PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8803) },
- 	{ 0, }
- };
- MODULE_DEVICE_TABLE(pci, pch_gpio_pcidev_id);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0048-gpio-Add-missing-spin_lock_init-in-gpio-pch-driver.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0048-gpio-Add-missing-spin_lock_init-in-gpio-pch-driver.patch
deleted file mode 100644
index f3d980f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0048-gpio-Add-missing-spin_lock_init-in-gpio-pch-driver.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d318ceeea315d2005b914345b86e62c43a6f37b8 Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin at gmail.com>
-Date: Wed, 1 Feb 2012 10:51:53 +0800
-Subject: [PATCH 48/68] gpio: Add missing spin_lock_init in gpio-pch driver
-
-commit d166370ad86b33b1111af3a0cdd7de94e03789a6 upstream.
-
-This bug was introduced by commit d568a681
-"gpio-pch: add spinlock in suspend/resume processing"
-which adds a spinlock to struct pch_gpio but never init the spinlock.
-
-Reported-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Axel Lin <axel.lin at gmail.com>
-Acked-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpio/gpio-pch.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c
-index eb574f2..779ff70 100644
---- a/drivers/gpio/gpio-pch.c
-+++ b/drivers/gpio/gpio-pch.c
-@@ -392,6 +392,7 @@ static int __devinit pch_gpio_probe(struct pci_dev *pdev,
- 	chip->reg = chip->base;
- 	pci_set_drvdata(pdev, chip);
- 	mutex_init(&chip->lock);
-+	spin_lock_init(&chip->spinlock);
- 	pch_gpio_setup(chip);
- 	ret = gpiochip_add(&chip->gpio);
- 	if (ret) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0049-usb-gadget-pch_udc-Fix-disconnect-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0049-usb-gadget-pch_udc-Fix-disconnect-issue.patch
deleted file mode 100644
index a594419..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0049-usb-gadget-pch_udc-Fix-disconnect-issue.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 71f57b2818d96219c94e582efd23fc0d16186424 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 12 Jan 2012 11:27:05 +0900
-Subject: [PATCH 49/68] usb: gadget: pch_udc: Fix disconnect issue
-
-commit c50a3bff0edb0acd49d8033a12ea4668e09a31ad upstream.
-
-ISSUE:
-When the driver notifies a gadget of a disconnect event, a system
-rarely freezes.
-
-CAUSE:
-When the driver calls dev->driver->disconnect(), it is not calling
-spin_unlock().
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/pch_udc.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
-index dd2313c..521e995 100644
---- a/drivers/usb/gadget/pch_udc.c
-+++ b/drivers/usb/gadget/pch_udc.c
-@@ -2335,8 +2335,11 @@ static void pch_udc_svc_ur_interrupt(struct pch_udc_dev *dev)
- 		/* Complete request queue */
- 		empty_req_queue(ep);
- 	}
--	if (dev->driver && dev->driver->disconnect)
-+	if (dev->driver && dev->driver->disconnect) {
-+		spin_unlock(&dev->lock);
- 		dev->driver->disconnect(&dev->gadget);
-+		spin_lock(&dev->lock);
-+	}
- }
- 
- /**
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0050-usb-gadget-pch_udc-Fix-wrong-return-value.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0050-usb-gadget-pch_udc-Fix-wrong-return-value.patch
deleted file mode 100644
index 7f86508..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0050-usb-gadget-pch_udc-Fix-wrong-return-value.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f081bd91f871a44ac4bf6035aaacfd666024b30a Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 12 Jan 2012 11:27:06 +0900
-Subject: [PATCH 50/68] usb: gadget: pch_udc: Fix wrong return value
-
-commit c802672cd36cd063bfd54d54c8c34825ab5b2357 upstream.
-
-ISSUE:
-If the return value of pch_udc_pcd_init() is False, the return value of
-this function is unsettled.
-Since pch_udc_pcd_init() always returns 0, there is not actually the issue.
-
-CAUSE:
-If pch_udc_pcd_init() is True, the variable, retval, is not set for an
-appropriate value.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/pch_udc.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
-index 521e995..a9a7d8a 100644
---- a/drivers/usb/gadget/pch_udc.c
-+++ b/drivers/usb/gadget/pch_udc.c
-@@ -2915,8 +2915,10 @@ static int pch_udc_probe(struct pci_dev *pdev,
- 	}
- 	pch_udc = dev;
- 	/* initialize the hardware */
--	if (pch_udc_pcd_init(dev))
-+	if (pch_udc_pcd_init(dev)) {
-+		retval = -ENODEV;
- 		goto finished;
-+	}
- 	if (request_irq(pdev->irq, pch_udc_isr, IRQF_SHARED, KBUILD_MODNAME,
- 			dev)) {
- 		dev_err(&pdev->dev, "%s: request_irq(%d) fail\n", __func__,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0051-usb-gadget-pch_udc-Fix-USB-suspend-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0051-usb-gadget-pch_udc-Fix-USB-suspend-issue.patch
deleted file mode 100644
index 52ae325..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0051-usb-gadget-pch_udc-Fix-USB-suspend-issue.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From d99b719a9a857340a246bfd51b329ba5bc09a7ea Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 12 Jan 2012 11:27:07 +0900
-Subject: [PATCH 51/68] usb: gadget: pch_udc: Fix USB suspend issue
-
-commit 84566abba058b2aae8d603dfa90b5a3778a6714f upstream.
-
-ISSUE:
-After USB Suspend, a system rarely freezes.
-
-CAUSE:
-When USB Suspend occurred, the driver is not notifying
-a gadget of the event.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/pch_udc.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
-index a9a7d8a..3ab799c 100644
---- a/drivers/usb/gadget/pch_udc.c
-+++ b/drivers/usb/gadget/pch_udc.c
-@@ -2475,8 +2475,15 @@ static void pch_udc_dev_isr(struct pch_udc_dev *dev, u32 dev_intr)
- 	if (dev_intr & UDC_DEVINT_SC)
- 		pch_udc_svc_cfg_interrupt(dev);
- 	/* USB Suspend interrupt */
--	if (dev_intr & UDC_DEVINT_US)
-+	if (dev_intr & UDC_DEVINT_US) {
-+		if (dev->driver
-+			&& dev->driver->suspend) {
-+			spin_unlock(&dev->lock);
-+			dev->driver->suspend(&dev->gadget);
-+			spin_lock(&dev->lock);
-+		}
- 		dev_dbg(&dev->pdev->dev, "USB_SUSPEND\n");
-+	}
- 	/* Clear the SOF interrupt, if enabled */
- 	if (dev_intr & UDC_DEVINT_SOF)
- 		dev_dbg(&dev->pdev->dev, "SOF\n");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0052-usb-gadget-pch_udc-Fix-usb-gadget-pch_udc-Fix-ether-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0052-usb-gadget-pch_udc-Fix-usb-gadget-pch_udc-Fix-ether-.patch
deleted file mode 100644
index 061b331..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0052-usb-gadget-pch_udc-Fix-usb-gadget-pch_udc-Fix-ether-.patch
+++ /dev/null
@@ -1,153 +0,0 @@
-From f6fb5ed067a0dc147a7ffe713ad3cffbcf7733b9 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 12 Jan 2012 11:27:08 +0900
-Subject: [PATCH 52/68] usb: gadget: pch_udc: Fix usb/gadget/pch_udc: Fix
- ether gadget connect/disconnect issue
-
-commit 1c575d2d2e3ff2a7cb3c2e2165064199cfd8ad32 upstream.
-
-ISSUE:
-After a USB cable is connect/disconnected, the system rarely freezes.
-
-CAUSE:
-Since the USB device controller cannot know to disconnect the USB cable, when
-it is used without detecting VBUS by GPIO, the UDC driver does not notify to
-USB Gadget.
-
-Since USB Gadget cannot know to disconnect, a false setting occurred when the
-USB cable is connected/disconnect repeatedly.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/pch_udc.c |   70 +++++++++++++++++++++++++++++++++++++++---
- 1 file changed, 66 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
-index 3ab799c..f232e65 100644
---- a/drivers/usb/gadget/pch_udc.c
-+++ b/drivers/usb/gadget/pch_udc.c
-@@ -311,6 +311,7 @@ struct pch_udc_ep {
-  * @registered:		driver regsitered with system
-  * @suspended:		driver in suspended state
-  * @connected:		gadget driver associated
-+ * @vbus_session:	required vbus_session state
-  * @set_cfg_not_acked:	pending acknowledgement 4 setup
-  * @waiting_zlp_ack:	pending acknowledgement 4 ZLP
-  * @data_requests:	DMA pool for data requests
-@@ -337,6 +338,7 @@ struct pch_udc_dev {
- 			registered:1,
- 			suspended:1,
- 			connected:1,
-+			vbus_session:1,
- 			set_cfg_not_acked:1,
- 			waiting_zlp_ack:1;
- 	struct pci_pool		*data_requests;
-@@ -554,6 +556,31 @@ static void pch_udc_clear_disconnect(struct pch_udc_dev *dev)
- }
- 
- /**
-+ * pch_udc_reconnect() - This API initializes usb device controller,
-+ *						and clear the disconnect status.
-+ * @dev:		Reference to pch_udc_regs structure
-+ */
-+static void pch_udc_init(struct pch_udc_dev *dev);
-+static void pch_udc_reconnect(struct pch_udc_dev *dev)
-+{
-+	pch_udc_init(dev);
-+
-+	/* enable device interrupts */
-+	/* pch_udc_enable_interrupts() */
-+	pch_udc_bit_clr(dev, UDC_DEVIRQMSK_ADDR,
-+			UDC_DEVINT_UR | UDC_DEVINT_US |
-+			UDC_DEVINT_ENUM |
-+			UDC_DEVINT_SI | UDC_DEVINT_SC);
-+
-+	/* Clear the disconnect */
-+	pch_udc_bit_set(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_RES);
-+	pch_udc_bit_clr(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_SD);
-+	mdelay(1);
-+	/* Resume USB signalling */
-+	pch_udc_bit_clr(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_RES);
-+}
-+
-+/**
-  * pch_udc_vbus_session() - set or clearr the disconnect status.
-  * @dev:	Reference to pch_udc_regs structure
-  * @is_active:	Parameter specifying the action
-@@ -563,10 +590,18 @@ static void pch_udc_clear_disconnect(struct pch_udc_dev *dev)
- static inline void pch_udc_vbus_session(struct pch_udc_dev *dev,
- 					  int is_active)
- {
--	if (is_active)
--		pch_udc_clear_disconnect(dev);
--	else
-+	if (is_active) {
-+		pch_udc_reconnect(dev);
-+		dev->vbus_session = 1;
-+	} else {
-+		if (dev->driver && dev->driver->disconnect) {
-+			spin_unlock(&dev->lock);
-+			dev->driver->disconnect(&dev->gadget);
-+			spin_lock(&dev->lock);
-+		}
- 		pch_udc_set_disconnect(dev);
-+		dev->vbus_session = 0;
-+	}
- }
- 
- /**
-@@ -1126,7 +1161,17 @@ static int pch_udc_pcd_pullup(struct usb_gadget *gadget, int is_on)
- 	if (!gadget)
- 		return -EINVAL;
- 	dev = container_of(gadget, struct pch_udc_dev, gadget);
--	pch_udc_vbus_session(dev, is_on);
-+	if (is_on) {
-+		pch_udc_reconnect(dev);
-+	} else {
-+		if (dev->driver && dev->driver->disconnect) {
-+			spin_unlock(&dev->lock);
-+			dev->driver->disconnect(&dev->gadget);
-+			spin_lock(&dev->lock);
-+		}
-+		pch_udc_set_disconnect(dev);
-+	}
-+
- 	return 0;
- }
- 
-@@ -2482,6 +2527,15 @@ static void pch_udc_dev_isr(struct pch_udc_dev *dev, u32 dev_intr)
- 			dev->driver->suspend(&dev->gadget);
- 			spin_lock(&dev->lock);
- 		}
-+
-+		if (dev->vbus_session == 0) {
-+			if (dev->driver && dev->driver->disconnect) {
-+				spin_unlock(&dev->lock);
-+				dev->driver->disconnect(&dev->gadget);
-+				spin_lock(&dev->lock);
-+			}
-+			pch_udc_reconnect(dev);
-+		}
- 		dev_dbg(&dev->pdev->dev, "USB_SUSPEND\n");
- 	}
- 	/* Clear the SOF interrupt, if enabled */
-@@ -2509,6 +2563,14 @@ static irqreturn_t pch_udc_isr(int irq, void *pdev)
- 	dev_intr = pch_udc_read_device_interrupts(dev);
- 	ep_intr = pch_udc_read_ep_interrupts(dev);
- 
-+	/* For a hot plug, this find that the controller is hung up. */
-+	if (dev_intr == ep_intr)
-+		if (dev_intr == pch_udc_readl(dev, UDC_DEVCFG_ADDR)) {
-+			dev_dbg(&dev->pdev->dev, "UDC: Hung up\n");
-+			/* The controller is reset */
-+			pch_udc_writel(dev, UDC_SRST, UDC_SRST_ADDR);
-+			return IRQ_HANDLED;
-+		}
- 	if (dev_intr)
- 		/* Clear device interrupts */
- 		pch_udc_write_device_interrupts(dev, dev_intr);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0053-usb-gadget-pch_udc-Reduce-redundant-interrupt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0053-usb-gadget-pch_udc-Reduce-redundant-interrupt.patch
deleted file mode 100644
index 681f166..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0053-usb-gadget-pch_udc-Reduce-redundant-interrupt.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From e7a01f05195272844be9a3e9abae0d18086cbc69 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 12 Jan 2012 11:27:09 +0900
-Subject: [PATCH 53/68] usb: gadget: pch_udc: Reduce redundant interrupt
-
-commit 833310402c54ad9b676b465fc53ad276b13d36be upstream.
-
-ISSUE:
-USB Suspend interrupts occur frequently.
-
-CAUSE:
-When it is called pch_udc_reconnect() in USB Suspend, it repeats reset and
-Suspend.
-
-SOLUTION:
-pch_udc_reconnect() does not enable all interrupts.  When an enumeration event
-occurred the driver enables all interrupts.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/pch_udc.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/gadget/pch_udc.c b/drivers/usb/gadget/pch_udc.c
-index f232e65..870897ac 100644
---- a/drivers/usb/gadget/pch_udc.c
-+++ b/drivers/usb/gadget/pch_udc.c
-@@ -568,9 +568,7 @@ static void pch_udc_reconnect(struct pch_udc_dev *dev)
- 	/* enable device interrupts */
- 	/* pch_udc_enable_interrupts() */
- 	pch_udc_bit_clr(dev, UDC_DEVIRQMSK_ADDR,
--			UDC_DEVINT_UR | UDC_DEVINT_US |
--			UDC_DEVINT_ENUM |
--			UDC_DEVINT_SI | UDC_DEVINT_SC);
-+			UDC_DEVINT_UR | UDC_DEVINT_ENUM);
- 
- 	/* Clear the disconnect */
- 	pch_udc_bit_set(dev, UDC_DEVCTL_ADDR, UDC_DEVCTL_RES);
-@@ -2419,6 +2417,11 @@ static void pch_udc_svc_enum_interrupt(struct pch_udc_dev *dev)
- 	pch_udc_set_dma(dev, DMA_DIR_TX);
- 	pch_udc_set_dma(dev, DMA_DIR_RX);
- 	pch_udc_ep_set_rrdy(&(dev->ep[UDC_EP0OUT_IDX]));
-+
-+	/* enable device interrupts */
-+	pch_udc_enable_interrupts(dev, UDC_DEVINT_UR | UDC_DEVINT_US |
-+					UDC_DEVINT_ES | UDC_DEVINT_ENUM |
-+					UDC_DEVINT_SI | UDC_DEVINT_SC);
- }
- 
- /**
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0054-ACPICA-Fix-to-allow-region-arguments-to-reference-ot.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0054-ACPICA-Fix-to-allow-region-arguments-to-reference-ot.patch
deleted file mode 100644
index bcc8661..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0054-ACPICA-Fix-to-allow-region-arguments-to-reference-ot.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 5326c71bbfb0de3fef65c9f702ffdb8589e8e6df Mon Sep 17 00:00:00 2001
-From: Lin Ming <ming.m.lin at intel.com>
-Date: Mon, 28 Nov 2011 09:46:02 +0800
-Subject: [PATCH 54/68] ACPICA: Fix to allow region arguments to reference
- other scopes
-
-commit 8931d9ea78848b073bf299594f148b83abde4a5e upstream.
-
-Allow referenced objects to be in a different scope.
-
-http://www.acpica.org/bugzilla/show_bug.cgi?id=937
-http://marc.info/?l=linux-acpi&m=131636632718222&w=2
-
-ACPI Error: [RAMB] Namespace lookup failure, AE_NOT_FOUND (20110112/psargs-359)
-ACPI Exception: AE_NOT_FOUND, Could not execute arguments for [RAMW] (Region) (20110112/nsinit-349)
-
-    Scope (_SB)
-    {
-        Name (RAMB, 0xDF5A1018)
-        OperationRegion (\RAMW, SystemMemory, RAMB, 0x00010000)
-    }
-
-For above ASL code, we need to save scope node(\_SB) to lookup
-the argument node(\_SB.RAMB).
-
-Reported-by: Jim Green <student.northwestern at gmail.com>
-Signed-off-by: Lin Ming <ming.m.lin at intel.com>
-Signed-off-by: Bob Moore <robert.moore at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Cc: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/acpi/acpica/acobject.h |    1 +
- drivers/acpi/acpica/dsargs.c   |    2 +-
- drivers/acpi/acpica/excreate.c |    6 ++++++
- 3 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/acpi/acpica/acobject.h b/drivers/acpi/acpica/acobject.h
-index 1055769..6d276c2 100644
---- a/drivers/acpi/acpica/acobject.h
-+++ b/drivers/acpi/acpica/acobject.h
-@@ -358,6 +358,7 @@ typedef enum {
-  */
- struct acpi_object_extra {
- 	ACPI_OBJECT_COMMON_HEADER struct acpi_namespace_node *method_REG;	/* _REG method for this region (if any) */
-+	struct acpi_namespace_node *scope_node;
- 	void *region_context;	/* Region-specific data */
- 	u8 *aml_start;
- 	u32 aml_length;
-diff --git a/drivers/acpi/acpica/dsargs.c b/drivers/acpi/acpica/dsargs.c
-index 42163d8..d69e4a5 100644
---- a/drivers/acpi/acpica/dsargs.c
-+++ b/drivers/acpi/acpica/dsargs.c
-@@ -384,7 +384,7 @@ acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc)
- 
- 	/* Execute the argument AML */
- 
--	status = acpi_ds_execute_arguments(node, node->parent,
-+	status = acpi_ds_execute_arguments(node, extra_desc->extra.scope_node,
- 					   extra_desc->extra.aml_length,
- 					   extra_desc->extra.aml_start);
- 	if (ACPI_FAILURE(status)) {
-diff --git a/drivers/acpi/acpica/excreate.c b/drivers/acpi/acpica/excreate.c
-index 110711a..8a06dc5 100644
---- a/drivers/acpi/acpica/excreate.c
-+++ b/drivers/acpi/acpica/excreate.c
-@@ -330,6 +330,12 @@ acpi_ex_create_region(u8 * aml_start,
- 	region_obj2 = obj_desc->common.next_object;
- 	region_obj2->extra.aml_start = aml_start;
- 	region_obj2->extra.aml_length = aml_length;
-+	if (walk_state->scope_info) {
-+		region_obj2->extra.scope_node =
-+		    walk_state->scope_info->scope.node;
-+	} else {
-+		region_obj2->extra.scope_node = node;
-+	}
- 
- 	/* Init the region from the operands */
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0055-security-fix-compile-error-in-commoncap.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0055-security-fix-compile-error-in-commoncap.c.patch
deleted file mode 100644
index cc78b79..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0055-security-fix-compile-error-in-commoncap.c.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 1a4f70eea080bfa569723eb1c16ca46956cebd25 Mon Sep 17 00:00:00 2001
-From: Jonghwan Choi <jhbird.choi at samsung.com>
-Date: Wed, 18 Apr 2012 17:23:04 -0400
-Subject: [PATCH 55/68] security: fix compile error in commoncap.c
-
-commit 51b79bee627d526199b2f6a6bef8ee0c0739b6d1 upstream.
-
-Add missing "personality.h"
-security/commoncap.c: In function 'cap_bprm_set_creds':
-security/commoncap.c:510: error: 'PER_CLEAR_ON_SETID' undeclared (first use in this function)
-security/commoncap.c:510: error: (Each undeclared identifier is reported only once
-security/commoncap.c:510: error: for each function it appears in.)
-
-Signed-off-by: Jonghwan Choi <jhbird.choi at samsung.com>
-Acked-by: Serge Hallyn <serge.hallyn at canonical.com>
-Signed-off-by: James Morris <james.l.morris at oracle.com>
-Cc: Eric Paris <eparis at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- security/commoncap.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/security/commoncap.c b/security/commoncap.c
-index 0aee106..12440ee 100644
---- a/security/commoncap.c
-+++ b/security/commoncap.c
-@@ -28,6 +28,7 @@
- #include <linux/prctl.h>
- #include <linux/securebits.h>
- #include <linux/user_namespace.h>
-+#include <linux/personality.h>
- 
- /*
-  * If a non-root user executes a setuid-root binary in
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0056-pch_gbe-Do-not-abort-probe-on-bad-MAC.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0056-pch_gbe-Do-not-abort-probe-on-bad-MAC.patch
deleted file mode 100644
index 2759af4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0056-pch_gbe-Do-not-abort-probe-on-bad-MAC.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From aebee39c4e129dbeccd9485f8375b7e59a4b7b26 Mon Sep 17 00:00:00 2001
-From: Darren Hart <dvhart at linux.intel.com>
-Date: Mon, 16 Jan 2012 09:50:19 +0000
-Subject: [PATCH 56/68] pch_gbe: Do not abort probe on bad MAC
-
-commit 2b53d07891630dead46d65c8f896955fd3ae0302 upstream.
-
-If the MAC is invalid or not implemented, do not abort the probe. Issue
-a warning and prevent bringing the interface up until a MAC is set manually
-(via ifconfig $IFACE hw ether $MAC).
-
-Tested on two platforms, one with a valid MAC, the other without a MAC. The real
-MAC is used if present, the interface fails to come up until the MAC is set on
-the other. They successfully get an IP over DHCP and pass a simple ping and
-login over ssh test.
-
-This is meant to allow the Inforce SYS940X development board:
-http://www.inforcecomputing.com/SYS940X_ECX.html
-(and others suffering from a missing MAC) to work with the mainline kernel.
-Without this patch, the probe will fail and the interface will not be created,
-preventing the user from configuring the MAC manually.
-
-This does not make any attempt to address a missing or invalid MAC for the
-pch_phub driver.
-
-Signed-off-by: Darren Hart <dvhart at linux.intel.com>
-CC: Arjan van de Ven <arjan at linux.intel.com>
-CC: Alan Cox <alan at linux.intel.com>
-CC: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-CC: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-CC: "David S. Miller" <davem at davemloft.net>
-CC: Paul Gortmaker <paul.gortmaker at windriver.com>
-CC: Jon Mason <jdmason at kudzu.us>
-CC: Mark Brown <broonie at opensource.wolfsonmicro.com>
-CC: David Laight <David.Laight at ACULAB.COM>
-CC: Joe Perches <joe at perches.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c |   17 ++++++++++++++---
- 1 file changed, 14 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
-index 48406ca..43c7b25 100644
---- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
-+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_main.c
-@@ -1745,6 +1745,12 @@ int pch_gbe_up(struct pch_gbe_adapter *adapter)
- 	struct pch_gbe_rx_ring *rx_ring = adapter->rx_ring;
- 	int err;
- 
-+	/* Ensure we have a valid MAC */
-+	if (!is_valid_ether_addr(adapter->hw.mac.addr)) {
-+		pr_err("Error: Invalid MAC address\n");
-+		return -EINVAL;
-+	}
-+
- 	/* hardware has been reset, we need to reload some things */
- 	pch_gbe_set_multi(netdev);
- 
-@@ -2467,9 +2473,14 @@ static int pch_gbe_probe(struct pci_dev *pdev,
- 
- 	memcpy(netdev->dev_addr, adapter->hw.mac.addr, netdev->addr_len);
- 	if (!is_valid_ether_addr(netdev->dev_addr)) {
--		dev_err(&pdev->dev, "Invalid MAC Address\n");
--		ret = -EIO;
--		goto err_free_adapter;
-+		/*
-+		 * If the MAC is invalid (or just missing), display a warning
-+		 * but do not abort setting up the device. pch_gbe_up will
-+		 * prevent the interface from being brought up until a valid MAC
-+		 * is set.
-+		 */
-+		dev_err(&pdev->dev, "Invalid MAC address, "
-+		                    "interface disabled.\n");
- 	}
- 	setup_timer(&adapter->watchdog_timer, pch_gbe_watchdog,
- 		    (unsigned long)adapter);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0057-pch_gbe-memory-corruption-calling-pch_gbe_validate_o.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0057-pch_gbe-memory-corruption-calling-pch_gbe_validate_o.patch
deleted file mode 100644
index 07cc85b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0057-pch_gbe-memory-corruption-calling-pch_gbe_validate_o.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 39ac4e9f39a308616c42f055e6eb61883171826c Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Wed, 29 Feb 2012 21:17:08 +0000
-Subject: [PATCH 57/68] pch_gbe: memory corruption calling
- pch_gbe_validate_option()
-
-commit 73f98eab9b9e0bab492ca06add5657d9e702ddb1 upstream.
-
-pch_gbe_validate_option() modifies 32 bits of memory but we pass
-&hw->phy.autoneg_advertised which only has 16 bits and &hw->mac.fc
-which only has 8 bits.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c |   15 ++++++++-------
- 1 file changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
-index 9cb5f91..29e23be 100644
---- a/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
-+++ b/drivers/net/ethernet/oki-semi/pch_gbe/pch_gbe_param.c
-@@ -321,10 +321,10 @@ static void pch_gbe_check_copper_options(struct pch_gbe_adapter *adapter)
- 			pr_debug("AutoNeg specified along with Speed or Duplex, AutoNeg parameter ignored\n");
- 			hw->phy.autoneg_advertised = opt.def;
- 		} else {
--			hw->phy.autoneg_advertised = AutoNeg;
--			pch_gbe_validate_option(
--				(int *)(&hw->phy.autoneg_advertised),
--				&opt, adapter);
-+			int tmp = AutoNeg;
-+
-+			pch_gbe_validate_option(&tmp, &opt, adapter);
-+			hw->phy.autoneg_advertised = tmp;
- 		}
- 	}
- 
-@@ -495,9 +495,10 @@ void pch_gbe_check_options(struct pch_gbe_adapter *adapter)
- 			.arg  = { .l = { .nr = (int)ARRAY_SIZE(fc_list),
- 					 .p = fc_list } }
- 		};
--		hw->mac.fc = FlowControl;
--		pch_gbe_validate_option((int *)(&hw->mac.fc),
--						&opt, adapter);
-+		int tmp = FlowControl;
-+
-+		pch_gbe_validate_option(&tmp, &opt, adapter);
-+		hw->mac.fc = tmp;
- 	}
- 
- 	pch_gbe_check_copper_options(adapter);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0058-pch_dma-Support-new-device-LAPIS-Semiconductor-ML783.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0058-pch_dma-Support-new-device-LAPIS-Semiconductor-ML783.patch
deleted file mode 100644
index dbf592c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0058-pch_dma-Support-new-device-LAPIS-Semiconductor-ML783.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 0e69eca9d7e396d17ee6350491cb53b68b11f18a Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 17 Nov 2011 16:14:23 +0900
-Subject: [PATCH 58/68] pch_dma: Support new device LAPIS Semiconductor ML7831
- IOH
-
-commit ca7fe2db892dcf91b2c72ee352eda4ff867903a7 upstream.
-
-ML7831 is companion chip for Intel Atom E6xx series.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Vinod Koul <vinod.koul at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/dma/Kconfig   |   13 ++++++-------
- drivers/dma/pch_dma.c |    8 ++++++--
- 2 files changed, 12 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/dma/Kconfig b/drivers/dma/Kconfig
-index 5a99bb3..da85c0d 100644
---- a/drivers/dma/Kconfig
-+++ b/drivers/dma/Kconfig
-@@ -201,18 +201,17 @@ config PL330_DMA
- 	  platform_data for a dma-pl330 device.
- 
- config PCH_DMA
--	tristate "Intel EG20T PCH / OKI Semi IOH(ML7213/ML7223) DMA support"
-+	tristate "Intel EG20T PCH / OKI Semi IOH(ML7213/ML7223/ML7831) DMA support"
- 	depends on PCI && X86
- 	select DMA_ENGINE
- 	help
- 	  Enable support for Intel EG20T PCH DMA engine.
--
- 	  This driver also can be used for OKI SEMICONDUCTOR IOH(Input/
--	  Output Hub), ML7213 and ML7223.
--	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use and ML7223 IOH is
--	  for MP(Media Phone) use.
--	  ML7213/ML7223 is companion chip for Intel Atom E6xx series.
--	  ML7213/ML7223 is completely compatible for Intel EG20T PCH.
-+	  Output Hub), ML7213, ML7223 and ML7831.
-+	  ML7213 IOH is for IVI(In-Vehicle Infotainment) use, ML7223 IOH is
-+	  for MP(Media Phone) use and ML7831 IOH is for general purpose use.
-+	  ML7213/ML7223/ML7831 is companion chip for Intel Atom E6xx series.
-+	  ML7213/ML7223/ML7831 is completely compatible for Intel EG20T PCH.
- 
- config IMX_SDMA
- 	tristate "i.MX SDMA support"
-diff --git a/drivers/dma/pch_dma.c b/drivers/dma/pch_dma.c
-index a6d0e3d..629c430 100644
---- a/drivers/dma/pch_dma.c
-+++ b/drivers/dma/pch_dma.c
-@@ -1018,6 +1018,8 @@ static void __devexit pch_dma_remove(struct pci_dev *pdev)
- #define PCI_DEVICE_ID_ML7223_DMA2_4CH	0x800E
- #define PCI_DEVICE_ID_ML7223_DMA3_4CH	0x8017
- #define PCI_DEVICE_ID_ML7223_DMA4_4CH	0x803B
-+#define PCI_DEVICE_ID_ML7831_DMA1_8CH	0x8810
-+#define PCI_DEVICE_ID_ML7831_DMA2_4CH	0x8815
- 
- DEFINE_PCI_DEVICE_TABLE(pch_dma_id_table) = {
- 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_EG20T_PCH_DMA_8CH), 8 },
-@@ -1030,6 +1032,8 @@ DEFINE_PCI_DEVICE_TABLE(pch_dma_id_table) = {
- 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA2_4CH), 4}, /* Video SPI */
- 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA3_4CH), 4}, /* Security */
- 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_DMA4_4CH), 4}, /* FPGA */
-+	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_DMA1_8CH), 8}, /* UART */
-+	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_DMA2_4CH), 4}, /* SPI */
- 	{ 0, },
- };
- 
-@@ -1057,7 +1061,7 @@ static void __exit pch_dma_exit(void)
- module_init(pch_dma_init);
- module_exit(pch_dma_exit);
- 
--MODULE_DESCRIPTION("Intel EG20T PCH / OKI SEMICONDUCTOR ML7213 IOH "
--		   "DMA controller driver");
-+MODULE_DESCRIPTION("Intel EG20T PCH / OKI SEMICON ML7213/ML7223/ML7831 IOH"
-+			"DMA controller driver");
- MODULE_AUTHOR("Yong Wang <yong.y.wang at intel.com>");
- MODULE_LICENSE("GPL v2");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0059-spi-topcliff-pch-fix-Wuninitialized-warning.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0059-spi-topcliff-pch-fix-Wuninitialized-warning.patch
deleted file mode 100644
index fe20c45..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0059-spi-topcliff-pch-fix-Wuninitialized-warning.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 82a52f9ef76f612159cc947961ce36687ab1d58e Mon Sep 17 00:00:00 2001
-From: Danny Kukawka <danny.kukawka at bisect.de>
-Date: Tue, 14 Feb 2012 15:35:03 +0100
-Subject: [PATCH 59/68] spi-topcliff-pch: fix -Wuninitialized warning
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit de3bd7e6de25141c466773c2e0fa319b2fa93655 upstream.
-
-Fix for:
-drivers/spi/spi-topcliff-pch.c: In function ‘pch_spi_handler_sub’:
-drivers/spi/spi-topcliff-pch.c:325:17: warning: ‘bpw_len’ may be
-  used uninitialized in this function [-Wuninitialized]
-drivers/spi/spi-topcliff-pch.c:325:42: warning: ‘rx_index’ may be
-  used uninitialized in this function [-Wuninitialized]
-drivers/spi/spi-topcliff-pch.c:325:42: warning: ‘tx_index’ may be
-  used uninitialized in this function [-Wuninitialized]
-
-Move usage of tx_index, rx_index and bpw_len into the same
-block as where they are set to prevent uninitialized usage.
-
-v2: instead of init variables with 0 move the whole block
-
-[This patch title "warnings" makes you think "This patch is not
-for bug fix".  However, this patch surely patch for bug fix.]
-
-Signed-off-by: Danny Kukawka <danny.kukawka at bisect.de>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/spi/spi-topcliff-pch.c |   33 +++++++++++++++++----------------
- 1 file changed, 17 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index 027b6d0..ec50541 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -315,22 +315,23 @@ static void pch_spi_handler_sub(struct pch_spi_data *data, u32 reg_spsr_val,
- 		data->tx_index = tx_index;
- 		data->rx_index = rx_index;
- 
--	}
--
--	/* if transfer complete interrupt */
--	if (reg_spsr_val & SPSR_FI_BIT) {
--		if ((tx_index == bpw_len) && (rx_index == tx_index)) {
--			/* disable interrupts */
--			pch_spi_setclr_reg(data->master, PCH_SPCR, 0, PCH_ALL);
--
--			/* transfer is completed;
--			   inform pch_spi_process_messages */
--			data->transfer_complete = true;
--			data->transfer_active = false;
--			wake_up(&data->wait);
--		} else {
--			dev_err(&data->master->dev,
--				"%s : Transfer is not completed", __func__);
-+		/* if transfer complete interrupt */
-+		if (reg_spsr_val & SPSR_FI_BIT) {
-+			if ((tx_index == bpw_len) && (rx_index == tx_index)) {
-+				/* disable interrupts */
-+				pch_spi_setclr_reg(data->master, PCH_SPCR, 0,
-+						   PCH_ALL);
-+
-+				/* transfer is completed;
-+				   inform pch_spi_process_messages */
-+				data->transfer_complete = true;
-+				data->transfer_active = false;
-+				wake_up(&data->wait);
-+			} else {
-+				dev_err(&data->master->dev,
-+					"%s : Transfer is not completed",
-+					__func__);
-+			}
- 		}
- 	}
- }
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0060-spi-topcliff-pch-Support-new-device-LAPIS-Semiconduc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0060-spi-topcliff-pch-Support-new-device-LAPIS-Semiconduc.patch
deleted file mode 100644
index 2014e74..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0060-spi-topcliff-pch-Support-new-device-LAPIS-Semiconduc.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 743c46c92827cc3cd7bd1fa7b0e9e7ca84e7463a Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya-linux at dsn.lapis-semi.com>
-Date: Fri, 28 Oct 2011 09:35:21 +0900
-Subject: [PATCH 60/68] spi-topcliff-pch: Support new device LAPIS
- Semiconductor ML7831 IOH
-
-commit 92b3a5c1bc3c7da1ae4675d014124f4a97ddb632 upstream.
-
-ML7831 is companion chip for Intel Atom E6xx series.
-
-Signed-off-by: Tomoya MORINAGA <tomoya-linux at dsn.lapis-semi.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/spi/Kconfig            |    6 +++---
- drivers/spi/spi-topcliff-pch.c |    5 ++++-
- 2 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/spi/Kconfig b/drivers/spi/Kconfig
-index 8ba4510..7587796 100644
---- a/drivers/spi/Kconfig
-+++ b/drivers/spi/Kconfig
-@@ -346,14 +346,14 @@ config SPI_TI_SSP
- 	  serial port.
- 
- config SPI_TOPCLIFF_PCH
--	tristate "Intel EG20T PCH/OKI SEMICONDUCTOR ML7213 IOH SPI controller"
-+	tristate "Intel EG20T PCH/LAPIS Semicon IOH(ML7213/ML7223/ML7831) SPI"
- 	depends on PCI
- 	help
- 	  SPI driver for the Topcliff PCH (Platform Controller Hub) SPI bus
- 	  used in some x86 embedded processors.
- 
--	  This driver also supports the ML7213, a companion chip for the
--	  Atom E6xx series and compatible with the Intel EG20T PCH.
-+	  This driver also supports the ML7213/ML7223/ML7831, a companion chip
-+	  for the Atom E6xx series and compatible with the Intel EG20T PCH.
- 
- config SPI_TXX9
- 	tristate "Toshiba TXx9 SPI controller"
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index ec50541..54b9d2e 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -95,16 +95,18 @@
- #define PCH_CLOCK_HZ		50000000
- #define PCH_MAX_SPBR		1023
- 
--/* Definition for ML7213 by OKI SEMICONDUCTOR */
-+/* Definition for ML7213/ML7831 by OKI SEMICONDUCTOR */
- #define PCI_VENDOR_ID_ROHM		0x10DB
- #define PCI_DEVICE_ID_ML7213_SPI	0x802c
- #define PCI_DEVICE_ID_ML7223_SPI	0x800F
-+#define PCI_DEVICE_ID_ML7831_SPI	0x8816
- 
- /*
-  * Set the number of SPI instance max
-  * Intel EG20T PCH :		1ch
-  * OKI SEMICONDUCTOR ML7213 IOH :	2ch
-  * OKI SEMICONDUCTOR ML7223 IOH :	1ch
-+ * OKI SEMICONDUCTOR ML7831 IOH :	1ch
- */
- #define PCH_SPI_MAX_DEV			2
- 
-@@ -218,6 +220,7 @@ static struct pci_device_id pch_spi_pcidev_id[] = {
- 	{ PCI_VDEVICE(INTEL, PCI_DEVICE_ID_GE_SPI),    1, },
- 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7213_SPI), 2, },
- 	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7223_SPI), 1, },
-+	{ PCI_VDEVICE(ROHM, PCI_DEVICE_ID_ML7831_SPI), 1, },
- 	{ }
- };
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0061-Bluetooth-Adding-USB-device-13d3-3375-as-an-Atheros-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0061-Bluetooth-Adding-USB-device-13d3-3375-as-an-Atheros-.patch
deleted file mode 100644
index 53132fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0061-Bluetooth-Adding-USB-device-13d3-3375-as-an-Atheros-.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 3100f55ea5eeb7e5c2c03ccf26fffdbcaa29dae7 Mon Sep 17 00:00:00 2001
-From: Eran <eran at over-here.org>
-Date: Mon, 5 Dec 2011 22:15:29 +0000
-Subject: [PATCH 61/68] Bluetooth: Adding USB device 13d3:3375 as an Atheros
- AR3012.
-
-commit 9498ba7a1d38d42eef4ef6d906ab1743c9f0fd6f upstream.
-
-The bluetooth module in the Asus UX31/UX21 is based on Atheros AR3012
-and requires a firmware to be uploaded before it's usable.
-
-output of usb-devices for this module:
-T:  Bus=01 Lev=02 Prnt=02 Port=07 Cnt=03 Dev#=  6 Spd=12  MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=13d3 ProdID=3375 Rev=00.02
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-Signed-off-by: Eran <eran at over-here.org>
-Tested-by: Michal Labedzki <michal.labedzki at tieto.com>
-Signed-off-by: Gustavo F. Padovan <padovan at profusion.mobi>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/ath3k.c |    2 ++
- drivers/bluetooth/btusb.c |    1 +
- 2 files changed, 3 insertions(+)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index db811d2..67a79b0 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -71,6 +71,7 @@ static struct usb_device_id ath3k_table[] = {
- 
- 	/* Atheros AR3012 with sflash firmware*/
- 	{ USB_DEVICE(0x0CF3, 0x3004) },
-+	{ USB_DEVICE(0x13d3, 0x3375) },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xE02C) },
-@@ -87,6 +88,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
- 
- 	/* Atheros AR3012 with sflash firmware*/
- 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 
- 	{ }	/* Terminating entry */
- };
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index c16c750..df0331a 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -126,6 +126,7 @@ static struct usb_device_id blacklist_table[] = {
- 
- 	/* Atheros 3012 with sflash firmware */
- 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0062-Bluetooth-Add-Atheros-maryann-PIDVID-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0062-Bluetooth-Add-Atheros-maryann-PIDVID-support.patch
deleted file mode 100644
index 2fd5762..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0062-Bluetooth-Add-Atheros-maryann-PIDVID-support.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 44d3b492e84ea02e1edd019490f1eeb39c9ab3e6 Mon Sep 17 00:00:00 2001
-From: "Cho, Yu-Chen" <acho at suse.com>
-Date: Wed, 14 Mar 2012 22:01:21 +0200
-Subject: [PATCH 62/68] Bluetooth: Add Atheros maryann PIDVID support
-
-commit 07c0ea874d43c299d185948452945a361052b6e3 upstream.
-
-Add Atheros maryann 0cf3:311d PIDVID support
-This module is AR3012 Series.
-
-Include /sys/kernel/debug/usb/devices output here for reference
-
-before:
-T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0cf3 ProdID=311d Rev= 0.01
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
-E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
-I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
-I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
-
-after:
-T:  Bus=04 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#=  2 Spd=12   MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0cf3 ProdID=311d Rev= 0.02
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
-E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
-I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
-I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
-
-Signed-off-by: Cho, Yu-Chen <acho at suse.com>
-cked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/ath3k.c |    2 ++
- drivers/bluetooth/btusb.c |    1 +
- 2 files changed, 3 insertions(+)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index 67a79b0..003cd8d 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -71,6 +71,7 @@ static struct usb_device_id ath3k_table[] = {
- 
- 	/* Atheros AR3012 with sflash firmware*/
- 	{ USB_DEVICE(0x0CF3, 0x3004) },
-+	{ USB_DEVICE(0x0CF3, 0x311D) },
- 	{ USB_DEVICE(0x13d3, 0x3375) },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
-@@ -88,6 +89,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
- 
- 	/* Atheros AR3012 with sflash firmware*/
- 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 
- 	{ }	/* Terminating entry */
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index df0331a..5a87b2e 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -126,6 +126,7 @@ static struct usb_device_id blacklist_table[] = {
- 
- 	/* Atheros 3012 with sflash firmware */
- 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0063-Bluetooth-Add-support-for-BCM20702A0-0a5c-21e3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0063-Bluetooth-Add-support-for-BCM20702A0-0a5c-21e3.patch
deleted file mode 100644
index cb6c36c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0063-Bluetooth-Add-support-for-BCM20702A0-0a5c-21e3.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 8931ca8a3317ab71c85168b05664efa171563f59 Mon Sep 17 00:00:00 2001
-From: Jesse Sung <jesse.sung at canonical.com>
-Date: Thu, 22 Dec 2011 10:48:47 +0800
-Subject: [PATCH 63/68] Bluetooth: Add support for BCM20702A0 [0a5c:21e3]
-
-commit c0190925dacd976a67044f4382d4effbed568dce upstream.
-
-Add another vendor specific ID for BCM20702A0.
-
-output of usb-devices:
-T: Bus=06 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 4 Spd=12 MxCh= 0
-D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
-P: Vendor=0a5c ProdID=21e3 Rev=01.12
-S: Manufacturer=Broadcom Corp
-S: Product=BCM20702A0
-S: SerialNumber=9439E5CBF66C
-C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
-I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
-
-Signed-off-by: Wen-chien Jesse Sung <jesse.sung at canonical.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Gustavo F. Padovan <padovan at profusion.mobi>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/bluetooth/btusb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index 5a87b2e..db44ad5 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -101,6 +101,7 @@ static struct usb_device_id btusb_table[] = {
- 	{ USB_DEVICE(0x0c10, 0x0000) },
- 
- 	/* Broadcom BCM20702A0 */
-+	{ USB_DEVICE(0x0a5c, 0x21e3) },
- 	{ USB_DEVICE(0x413c, 0x8197) },
- 
- 	{ }	/* Terminating entry */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0064-futex-Do-not-leak-robust-list-to-unprivileged-proces.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0064-futex-Do-not-leak-robust-list-to-unprivileged-proces.patch
deleted file mode 100644
index 0d9c410..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0064-futex-Do-not-leak-robust-list-to-unprivileged-proces.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From 7480d9953ded1b970bb05c7585e2a08001ae8565 Mon Sep 17 00:00:00 2001
-From: Kees Cook <keescook at chromium.org>
-Date: Mon, 19 Mar 2012 16:12:53 -0700
-Subject: [PATCH 64/68] futex: Do not leak robust list to unprivileged process
-
-commit bdbb776f882f5ad431aa1e694c69c1c3d6a4a5b8 upstream.
-
-It was possible to extract the robust list head address from a setuid
-process if it had used set_robust_list(), allowing an ASLR info leak. This
-changes the permission checks to be the same as those used for similar
-info that comes out of /proc.
-
-Running a setuid program that uses robust futexes would have had:
-  cred->euid != pcred->euid
-  cred->euid == pcred->uid
-so the old permissions check would allow it. I'm not aware of any setuid
-programs that use robust futexes, so this is just a preventative measure.
-
-(This patch is based on changes from grsecurity.)
-
-Signed-off-by: Kees Cook <keescook at chromium.org>
-Cc: Darren Hart <dvhart at linux.intel.com>
-Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Jiri Kosina <jkosina at suse.cz>
-Cc: Eric W. Biederman <ebiederm at xmission.com>
-Cc: David Howells <dhowells at redhat.com>
-Cc: Serge E. Hallyn <serge.hallyn at canonical.com>
-Cc: kernel-hardening at lists.openwall.com
-Cc: spender at grsecurity.net
-Link: http://lkml.kernel.org/r/20120319231253.GA20893@www.outflux.net
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/futex.c        |   36 +++++++++++++-----------------------
- kernel/futex_compat.c |   36 +++++++++++++-----------------------
- 2 files changed, 26 insertions(+), 46 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 0677023..866c9d5 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -59,6 +59,7 @@
- #include <linux/magic.h>
- #include <linux/pid.h>
- #include <linux/nsproxy.h>
-+#include <linux/ptrace.h>
- 
- #include <asm/futex.h>
- 
-@@ -2443,40 +2444,29 @@ SYSCALL_DEFINE3(get_robust_list, int, pid,
- {
- 	struct robust_list_head __user *head;
- 	unsigned long ret;
--	const struct cred *cred = current_cred(), *pcred;
-+	struct task_struct *p;
- 
- 	if (!futex_cmpxchg_enabled)
- 		return -ENOSYS;
- 
-+	rcu_read_lock();
-+
-+	ret = -ESRCH;
- 	if (!pid)
--		head = current->robust_list;
-+		p = current;
- 	else {
--		struct task_struct *p;
--
--		ret = -ESRCH;
--		rcu_read_lock();
- 		p = find_task_by_vpid(pid);
- 		if (!p)
- 			goto err_unlock;
--		ret = -EPERM;
--		pcred = __task_cred(p);
--		/* If victim is in different user_ns, then uids are not
--		   comparable, so we must have CAP_SYS_PTRACE */
--		if (cred->user->user_ns != pcred->user->user_ns) {
--			if (!ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE))
--				goto err_unlock;
--			goto ok;
--		}
--		/* If victim is in same user_ns, then uids are comparable */
--		if (cred->euid != pcred->euid &&
--		    cred->euid != pcred->uid &&
--		    !ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE))
--			goto err_unlock;
--ok:
--		head = p->robust_list;
--		rcu_read_unlock();
- 	}
- 
-+	ret = -EPERM;
-+	if (!ptrace_may_access(p, PTRACE_MODE_READ))
-+		goto err_unlock;
-+
-+	head = p->robust_list;
-+	rcu_read_unlock();
-+
- 	if (put_user(sizeof(*head), len_ptr))
- 		return -EFAULT;
- 	return put_user(head, head_ptr);
-diff --git a/kernel/futex_compat.c b/kernel/futex_compat.c
-index 5f9e689..a9642d5 100644
---- a/kernel/futex_compat.c
-+++ b/kernel/futex_compat.c
-@@ -10,6 +10,7 @@
- #include <linux/compat.h>
- #include <linux/nsproxy.h>
- #include <linux/futex.h>
-+#include <linux/ptrace.h>
- 
- #include <asm/uaccess.h>
- 
-@@ -136,40 +137,29 @@ compat_sys_get_robust_list(int pid, compat_uptr_t __user *head_ptr,
- {
- 	struct compat_robust_list_head __user *head;
- 	unsigned long ret;
--	const struct cred *cred = current_cred(), *pcred;
-+	struct task_struct *p;
- 
- 	if (!futex_cmpxchg_enabled)
- 		return -ENOSYS;
- 
-+	rcu_read_lock();
-+
-+	ret = -ESRCH;
- 	if (!pid)
--		head = current->compat_robust_list;
-+		p = current;
- 	else {
--		struct task_struct *p;
--
--		ret = -ESRCH;
--		rcu_read_lock();
- 		p = find_task_by_vpid(pid);
- 		if (!p)
- 			goto err_unlock;
--		ret = -EPERM;
--		pcred = __task_cred(p);
--		/* If victim is in different user_ns, then uids are not
--		   comparable, so we must have CAP_SYS_PTRACE */
--		if (cred->user->user_ns != pcred->user->user_ns) {
--			if (!ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE))
--				goto err_unlock;
--			goto ok;
--		}
--		/* If victim is in same user_ns, then uids are comparable */
--		if (cred->euid != pcred->euid &&
--		    cred->euid != pcred->uid &&
--		    !ns_capable(pcred->user->user_ns, CAP_SYS_PTRACE))
--			goto err_unlock;
--ok:
--		head = p->compat_robust_list;
--		rcu_read_unlock();
- 	}
- 
-+	ret = -EPERM;
-+	if (!ptrace_may_access(p, PTRACE_MODE_READ))
-+		goto err_unlock;
-+
-+	head = p->compat_robust_list;
-+	rcu_read_unlock();
-+
- 	if (put_user(sizeof(*head), len_ptr))
- 		return -EFAULT;
- 	return put_user(ptr_to_compat(head), head_ptr);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0065-drm-radeon-kms-fix-the-regression-of-DVI-connector-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0065-drm-radeon-kms-fix-the-regression-of-DVI-connector-c.patch
deleted file mode 100644
index 8bbc092..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0065-drm-radeon-kms-fix-the-regression-of-DVI-connector-c.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 53b833e3b2bc7382175c75d982087cf6b03a3753 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 18 Apr 2012 15:21:07 +0200
-Subject: [PATCH 65/68] drm/radeon/kms: fix the regression of DVI connector
- check
-
-commit e36325071832f1ba96ac54fb8ba1459f08b05dd8 upstream.
-
-The check of the encoder type in the commit [e00e8b5e: drm/radeon/kms:
-fix analog load detection on DVI-I connectors] is obviously wrong, and
-it's the culprit of the regression on my workstation with DVI-analog
-connection resulting in the blank output.
-
-Fixed the typo now.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_connectors.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
-index f7d39ac..f19ea2e 100644
---- a/drivers/gpu/drm/radeon/radeon_connectors.c
-+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
-@@ -946,7 +946,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
- 
- 			encoder = obj_to_encoder(obj);
- 
--			if (encoder->encoder_type != DRM_MODE_ENCODER_DAC ||
-+			if (encoder->encoder_type != DRM_MODE_ENCODER_DAC &&
- 			    encoder->encoder_type != DRM_MODE_ENCODER_TVDAC)
- 				continue;
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0066-drm-radeon-disable-MSI-on-RV515.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0066-drm-radeon-disable-MSI-on-RV515.patch
deleted file mode 100644
index 624a8ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0066-drm-radeon-disable-MSI-on-RV515.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 4c47e0570154691338fd2e670109120a8e99184c Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied at redhat.com>
-Date: Fri, 13 Apr 2012 11:14:50 +0100
-Subject: [PATCH 66/68] drm/radeon: disable MSI on RV515
-
-commit 16a5e32b83fd946312b9b13590c75d20c95c5202 upstream.
-
-My rv515 card is very flaky with msi enabled. Every so often it loses a rearm
-and never comes back, manually banging the rearm brings it back.
-
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_irq_kms.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
-index e7ddb49..baa019e 100644
---- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
-+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
-@@ -143,6 +143,12 @@ static bool radeon_msi_ok(struct radeon_device *rdev)
- 	    (rdev->pdev->subsystem_device == 0x01fd))
- 		return true;
- 
-+	/* RV515 seems to have MSI issues where it loses
-+	 * MSI rearms occasionally. This leads to lockups and freezes.
-+	 * disable it by default.
-+	 */
-+	if (rdev->family == CHIP_RV515)
-+		return false;
- 	if (rdev->flags & RADEON_IS_IGP) {
- 		/* APUs work fine with MSIs */
- 		if (rdev->family >= CHIP_PALM)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0067-drm-radeon-fix-load-detect-on-rn50-with-hardcoded-ED.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0067-drm-radeon-fix-load-detect-on-rn50-with-hardcoded-ED.patch
deleted file mode 100644
index d026278..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0067-drm-radeon-fix-load-detect-on-rn50-with-hardcoded-ED.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From cfcbd4d6d2b7604aee1daa122663bbdfa5743fd1 Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied at redhat.com>
-Date: Thu, 19 Apr 2012 15:42:58 +0100
-Subject: [PATCH 67/68] drm/radeon: fix load detect on rn50 with hardcoded
- EDIDs.
-
-commit a09d431f344d854e4fe9cfac44f78cb8202f3eb7 upstream.
-
-When the force changes went in back in 3.3.0, we ended up returning
-disconnected in the !force case, and the connected in when forced,
-as it hit the hardcoded check.
-
-Fix it so all exits go via the hardcoded check and stop spurious
-modesets on platforms with hardcoded EDIDs.
-
-Reported-by: Evan McNabb (Red Hat)
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_connectors.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
-index f19ea2e..4a4493f 100644
---- a/drivers/gpu/drm/radeon/radeon_connectors.c
-+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
-@@ -976,6 +976,7 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
- 	 * cases the DVI port is actually a virtual KVM port connected to the service
- 	 * processor.
- 	 */
-+out:
- 	if ((!rdev->is_atom_bios) &&
- 	    (ret == connector_status_disconnected) &&
- 	    rdev->mode_info.bios_hardcoded_edid_size) {
-@@ -983,7 +984,6 @@ radeon_dvi_detect(struct drm_connector *connector, bool force)
- 		ret = connector_status_connected;
- 	}
- 
--out:
- 	/* updated in get modes as well since we need to know if it's analog or digital */
- 	radeon_connector_update_scratch_regs(connector, ret);
- 	return ret;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0068-Linux-3.2.16.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0068-Linux-3.2.16.patch
deleted file mode 100644
index 94f1f5f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.16/0068-Linux-3.2.16.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 45902e2bad446ada74fea7c6b467828211e49430 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Sun, 22 Apr 2012 15:31:32 -0700
-Subject: [PATCH 68/68] Linux 3.2.16
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 6195122..3da29cb 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 15
-+SUBLEVEL = 16
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0001-crypto-sha512-Fix-byte-counter-overflow-in-SHA-512.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0001-crypto-sha512-Fix-byte-counter-overflow-in-SHA-512.patch
deleted file mode 100644
index 55b0324..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0001-crypto-sha512-Fix-byte-counter-overflow-in-SHA-512.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 56ff3a4557bf6cd95220c643eb6fdf28db222370 Mon Sep 17 00:00:00 2001
-From: Kent Yoder <key at linux.vnet.ibm.com>
-Date: Thu, 5 Apr 2012 20:34:20 +0800
-Subject: [PATCH 001/165] crypto: sha512 - Fix byte counter overflow in
- SHA-512
-
-commit 25c3d30c918207556ae1d6e663150ebdf902186b upstream.
-
-The current code only increments the upper 64 bits of the SHA-512 byte
-counter when the number of bytes hashed happens to hit 2^64 exactly.
-
-This patch increments the upper 64 bits whenever the lower 64 bits
-overflows.
-
-Signed-off-by: Kent Yoder <key at linux.vnet.ibm.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- crypto/sha512_generic.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
-index 107f6f7..dd30f40 100644
---- a/crypto/sha512_generic.c
-+++ b/crypto/sha512_generic.c
-@@ -174,7 +174,7 @@ sha512_update(struct shash_desc *desc, const u8 *data, unsigned int len)
- 	index = sctx->count[0] & 0x7f;
- 
- 	/* Update number of bytes */
--	if (!(sctx->count[0] += len))
-+	if ((sctx->count[0] += len) < len)
- 		sctx->count[1]++;
- 
-         part_len = 128 - index;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0002-ALSA-hda-conexant-Don-t-set-HP-pin-control-bit-uncon.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0002-ALSA-hda-conexant-Don-t-set-HP-pin-control-bit-uncon.patch
deleted file mode 100644
index c03a4a3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0002-ALSA-hda-conexant-Don-t-set-HP-pin-control-bit-uncon.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b5fdd927a3527e8ed9a882d3c72e32435fa71dd3 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 19 Apr 2012 15:15:25 +0200
-Subject: [PATCH 002/165] ALSA: hda/conexant - Don't set HP pin-control bit
- unconditionally
-
-commit ca3649de026ff95c6f2847e8d096cf2f411c02b3 upstream.
-
-Some output pins on Conexant chips have no HP control bit, but the
-auto-parser initializes these pins unconditionally with PIN_HP.
-
-Check the pin-capability and avoid the HP bit if not supported.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_conexant.c |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
-index ae94929..99a3378 100644
---- a/sound/pci/hda/patch_conexant.c
-+++ b/sound/pci/hda/patch_conexant.c
-@@ -4003,9 +4003,14 @@ static void cx_auto_init_output(struct hda_codec *codec)
- 	int i;
- 
- 	mute_outputs(codec, spec->multiout.num_dacs, spec->multiout.dac_nids);
--	for (i = 0; i < cfg->hp_outs; i++)
-+	for (i = 0; i < cfg->hp_outs; i++) {
-+		unsigned int val = PIN_OUT;
-+		if (snd_hda_query_pin_caps(codec, cfg->hp_pins[i]) &
-+		    AC_PINCAP_HP_DRV)
-+			val |= AC_PINCTL_HP_EN;
- 		snd_hda_codec_write(codec, cfg->hp_pins[i], 0,
--				    AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_HP);
-+				    AC_VERB_SET_PIN_WIDGET_CONTROL, val);
-+	}
- 	mute_outputs(codec, cfg->hp_outs, cfg->hp_pins);
- 	mute_outputs(codec, cfg->line_outs, cfg->line_out_pins);
- 	mute_outputs(codec, cfg->speaker_outs, cfg->speaker_pins);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0003-ALSA-hda-conexant-Set-up-the-missing-docking-station.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0003-ALSA-hda-conexant-Set-up-the-missing-docking-station.patch
deleted file mode 100644
index b306590..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0003-ALSA-hda-conexant-Set-up-the-missing-docking-station.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 859f08d45339917d263a366170476c1f8389a2ea Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 19 Apr 2012 15:18:08 +0200
-Subject: [PATCH 003/165] ALSA: hda/conexant - Set up the missing
- docking-station pins
-
-commit d70f363222ef373c2037412f09a600357cfa1c7a upstream.
-
-ThinkPad 410,420,510,520 and X201 with cx50585 & co chips have the
-docking-station ports, but BIOS doesn't initialize for these pins.
-Thus, like the former X200, we need to set up the pins manually in the
-driver.
-
-The odd part is that the same PCI SSID is used for X200 and T400, thus
-we need to prepare individual fixup tables for cx5051 and others.
-
-Bugzilla entries:
-	https://bugzilla.redhat.com/show_bug.cgi?id=808559
-	https://bugzilla.redhat.com/show_bug.cgi?id=806217
-	https://bugzilla.redhat.com/show_bug.cgi?id=810697
-
-Reported-by: Josh Boyer <jwboyer at redhat.com>
-Reported-by: Jens Taprogge <jens.taprogge at taprogge.org>
-Tested-by: Jens Taprogge <jens.taprogge at taprogge.org>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_conexant.c |   28 +++++++++++++++++++++++++---
- 1 files changed, 25 insertions(+), 3 deletions(-)
-
-diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
-index 99a3378..51a1afc 100644
---- a/sound/pci/hda/patch_conexant.c
-+++ b/sound/pci/hda/patch_conexant.c
-@@ -4413,8 +4413,10 @@ static void apply_pin_fixup(struct hda_codec *codec,
- 
- enum {
- 	CXT_PINCFG_LENOVO_X200,
-+	CXT_PINCFG_LENOVO_TP410,
- };
- 
-+/* ThinkPad X200 & co with cxt5051 */
- static const struct cxt_pincfg cxt_pincfg_lenovo_x200[] = {
- 	{ 0x16, 0x042140ff }, /* HP (seq# overridden) */
- 	{ 0x17, 0x21a11000 }, /* dock-mic */
-@@ -4422,15 +4424,33 @@ static const struct cxt_pincfg cxt_pincfg_lenovo_x200[] = {
- 	{}
- };
- 
-+/* ThinkPad 410/420/510/520, X201 & co with cxt5066 */
-+static const struct cxt_pincfg cxt_pincfg_lenovo_tp410[] = {
-+	{ 0x19, 0x042110ff }, /* HP (seq# overridden) */
-+	{ 0x1a, 0x21a190f0 }, /* dock-mic */
-+	{ 0x1c, 0x212140ff }, /* dock-HP */
-+	{}
-+};
-+
- static const struct cxt_pincfg *cxt_pincfg_tbl[] = {
- 	[CXT_PINCFG_LENOVO_X200] = cxt_pincfg_lenovo_x200,
-+	[CXT_PINCFG_LENOVO_TP410] = cxt_pincfg_lenovo_tp410,
- };
- 
--static const struct snd_pci_quirk cxt_fixups[] = {
-+static const struct snd_pci_quirk cxt5051_fixups[] = {
- 	SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo X200", CXT_PINCFG_LENOVO_X200),
- 	{}
- };
- 
-+static const struct snd_pci_quirk cxt5066_fixups[] = {
-+	SND_PCI_QUIRK(0x17aa, 0x20f2, "Lenovo T400", CXT_PINCFG_LENOVO_TP410),
-+	SND_PCI_QUIRK(0x17aa, 0x215e, "Lenovo T410", CXT_PINCFG_LENOVO_TP410),
-+	SND_PCI_QUIRK(0x17aa, 0x215f, "Lenovo T510", CXT_PINCFG_LENOVO_TP410),
-+	SND_PCI_QUIRK(0x17aa, 0x21ce, "Lenovo T420", CXT_PINCFG_LENOVO_TP410),
-+	SND_PCI_QUIRK(0x17aa, 0x21cf, "Lenovo T520", CXT_PINCFG_LENOVO_TP410),
-+	{}
-+};
-+
- /* add "fake" mute amp-caps to DACs on cx5051 so that mixer mute switches
-  * can be created (bko#42825)
-  */
-@@ -4467,11 +4487,13 @@ static int patch_conexant_auto(struct hda_codec *codec)
- 		break;
- 	case 0x14f15051:
- 		add_cx5051_fake_mutes(codec);
-+		apply_pin_fixup(codec, cxt5051_fixups, cxt_pincfg_tbl);
-+		break;
-+	default:
-+		apply_pin_fixup(codec, cxt5066_fixups, cxt_pincfg_tbl);
- 		break;
- 	}
- 
--	apply_pin_fixup(codec, cxt_fixups, cxt_pincfg_tbl);
--
- 	err = cx_auto_search_adcs(codec);
- 	if (err < 0)
- 		return err;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0004-ARM-clps711x-serial-driver-hungs-are-a-result-of-cal.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0004-ARM-clps711x-serial-driver-hungs-are-a-result-of-cal.patch
deleted file mode 100644
index 39e5ef5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0004-ARM-clps711x-serial-driver-hungs-are-a-result-of-cal.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 36a5e353678eb6856bf90e322b815865abf4c660 Mon Sep 17 00:00:00 2001
-From: Alexander Shiyan <shc_work at mail.ru>
-Date: Tue, 27 Mar 2012 12:22:49 +0400
-Subject: [PATCH 004/165] ARM: clps711x: serial driver hungs are a result of
- call disable_irq within ISR
-
-commit 7a6fbc9a887193a1e9f8658703881c528040afbc upstream.
-
-Since 2.6.30-rc1 clps711x serial driver hungs system. This is a result
-of call disable_irq from ISR. synchronize_irq waits for end of interrupt
-and goes to infinite loop. This patch fix this problem.
-
-Signed-off-by: Alexander Shiyan <shc_work at mail.ru>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/clps711x.c |   14 ++++++++------
- 1 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/tty/serial/clps711x.c b/drivers/tty/serial/clps711x.c
-index e6c3dbd..836fe273 100644
---- a/drivers/tty/serial/clps711x.c
-+++ b/drivers/tty/serial/clps711x.c
-@@ -154,10 +154,9 @@ static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id)
- 		port->x_char = 0;
- 		return IRQ_HANDLED;
- 	}
--	if (uart_circ_empty(xmit) || uart_tx_stopped(port)) {
--		clps711xuart_stop_tx(port);
--		return IRQ_HANDLED;
--	}
-+
-+	if (uart_circ_empty(xmit) || uart_tx_stopped(port))
-+		goto disable_tx_irq;
- 
- 	count = port->fifosize >> 1;
- 	do {
-@@ -171,8 +170,11 @@ static irqreturn_t clps711xuart_int_tx(int irq, void *dev_id)
- 	if (uart_circ_chars_pending(xmit) < WAKEUP_CHARS)
- 		uart_write_wakeup(port);
- 
--	if (uart_circ_empty(xmit))
--		clps711xuart_stop_tx(port);
-+	if (uart_circ_empty(xmit)) {
-+	disable_tx_irq:
-+		disable_irq_nosync(TX_IRQ(port));
-+		tx_enabled(port) = 0;
-+	}
- 
- 	return IRQ_HANDLED;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0005-ARM-OMAP1-DMTIMER-fix-broken-timer-clock-source-sele.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0005-ARM-OMAP1-DMTIMER-fix-broken-timer-clock-source-sele.patch
deleted file mode 100644
index b7a22c4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0005-ARM-OMAP1-DMTIMER-fix-broken-timer-clock-source-sele.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 69c74a3f01d30c6dd44991f6413a4f317f4591a7 Mon Sep 17 00:00:00 2001
-From: Paul Walmsley <paul at pwsan.com>
-Date: Tue, 10 Apr 2012 18:36:02 -0600
-Subject: [PATCH 005/165] ARM: OMAP1: DMTIMER: fix broken timer clock source
- selection
-
-commit 6aaec67da1e41a0752a2b903b989e73b9f02e182 upstream.
-
-DMTIMER source selection on OMAP1 is broken.  omap1_dm_timer_set_src()
-tries to use __raw_{read,write}l() to read from and write to physical
-addresses, but those functions take virtual addresses.
-
-sparse caught this:
-
-arch/arm/mach-omap1/timer.c:50:13: warning: incorrect type in argument 1 (different base types)
-arch/arm/mach-omap1/timer.c:50:13:    expected void const volatile [noderef] <asn:2>*<noident>
-arch/arm/mach-omap1/timer.c:50:13:    got unsigned int
-arch/arm/mach-omap1/timer.c:52:9: warning: incorrect type in argument 1 (different base types)
-arch/arm/mach-omap1/timer.c:52:9:    expected void const volatile [noderef] <asn:2>*<noident>
-arch/arm/mach-omap1/timer.c:52:9:    got unsigned int
-
-Fix by using omap_{read,writel}(), just like the other users of the
-MOD_CONF_CTRL_1 register in the OMAP1 codebase.  Of course, in the long term,
-removing omap_{read,write}l() is the appropriate thing to do; but
-this will take some work to do this cleanly.
-
-Looks like this was caused by 97933d6 (ARM: OMAP1: dmtimer: conversion
-to platform devices) that dangerously moved code and changed it in
-the same patch.
-
-Signed-off-by: Paul Walmsley <paul at pwsan.com>
-Cc: Tarun Kanti DebBarma <tarun.kanti at ti.com>
-[tony at atomide.com: updated comments to include the breaking commit]
-Signed-off-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mach-omap1/timer.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap1/timer.c b/arch/arm/mach-omap1/timer.c
-index 6e90665..fb202af 100644
---- a/arch/arm/mach-omap1/timer.c
-+++ b/arch/arm/mach-omap1/timer.c
-@@ -47,9 +47,9 @@ static int omap1_dm_timer_set_src(struct platform_device *pdev,
- 	int n = (pdev->id - 1) << 1;
- 	u32 l;
- 
--	l = __raw_readl(MOD_CONF_CTRL_1) & ~(0x03 << n);
-+	l = omap_readl(MOD_CONF_CTRL_1) & ~(0x03 << n);
- 	l |= source << n;
--	__raw_writel(l, MOD_CONF_CTRL_1);
-+	omap_writel(l, MOD_CONF_CTRL_1);
- 
- 	return 0;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0006-mmc-fixes-for-eMMC-v4.5-discard-operation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0006-mmc-fixes-for-eMMC-v4.5-discard-operation.patch
deleted file mode 100644
index 061a8f9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0006-mmc-fixes-for-eMMC-v4.5-discard-operation.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 23e70c192386ff8d0e33f9b9225d984ae5eea97b Mon Sep 17 00:00:00 2001
-From: Adrian Hunter <adrian.hunter at intel.com>
-Date: Thu, 5 Apr 2012 14:45:47 +0300
-Subject: [PATCH 006/165] mmc: fixes for eMMC v4.5 discard operation
-
-commit 7194efb8f063ee3aa0cb50d9002348887e68ec10 upstream.
-
-eMMC v4.5 discard operation is significantly different from the
-existing trim operation because it is not guaranteed to work with
-the new sanitize operation.  Consequently mmc_can_trim() is
-separated from mmc_can_discard().
-
-Also the new discard operation does not result in the sectors being
-set to all-zeros, so discard_zeroes_data must not be set.
-
-In addition, the new discard has the same timeout as trim, but from
-v4.5 trim is defined to use the hc timeout.  The timeout calculation
-is adjusted accordingly.
-
-Fixes apply to linux 3.2 on.
-
-Signed-off-by: Adrian Hunter <adrian.hunter at intel.com>
-Acked-by: Jaehoon Chung <jh80.chung at samsung.com>
-Acked-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mmc/card/queue.c |    2 +-
- drivers/mmc/core/core.c  |    7 ++++---
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/mmc/card/queue.c b/drivers/mmc/card/queue.c
-index dcad59c..78690f2 100644
---- a/drivers/mmc/card/queue.c
-+++ b/drivers/mmc/card/queue.c
-@@ -134,7 +134,7 @@ static void mmc_queue_setup_discard(struct request_queue *q,
- 
- 	queue_flag_set_unlocked(QUEUE_FLAG_DISCARD, q);
- 	q->limits.max_discard_sectors = max_discard;
--	if (card->erased_byte == 0)
-+	if (card->erased_byte == 0 && !mmc_can_discard(card))
- 		q->limits.discard_zeroes_data = 1;
- 	q->limits.discard_granularity = card->pref_erase << 9;
- 	/* granularity must not be greater than max. discard */
-diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
-index 950b97d..c420a9e 100644
---- a/drivers/mmc/core/core.c
-+++ b/drivers/mmc/core/core.c
-@@ -1516,7 +1516,10 @@ static unsigned int mmc_mmc_erase_timeout(struct mmc_card *card,
- {
- 	unsigned int erase_timeout;
- 
--	if (card->ext_csd.erase_group_def & 1) {
-+	if (arg == MMC_DISCARD_ARG ||
-+	    (arg == MMC_TRIM_ARG && card->ext_csd.rev >= 6)) {
-+		erase_timeout = card->ext_csd.trim_timeout;
-+	} else if (card->ext_csd.erase_group_def & 1) {
- 		/* High Capacity Erase Group Size uses HC timeouts */
- 		if (arg == MMC_TRIM_ARG)
- 			erase_timeout = card->ext_csd.trim_timeout;
-@@ -1788,8 +1791,6 @@ int mmc_can_trim(struct mmc_card *card)
- {
- 	if (card->ext_csd.sec_feature_support & EXT_CSD_SEC_GB_CL_EN)
- 		return 1;
--	if (mmc_can_discard(card))
--		return 1;
- 	return 0;
- }
- EXPORT_SYMBOL(mmc_can_trim);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0007-mmc-fixes-for-eMMC-v4.5-sanitize-operation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0007-mmc-fixes-for-eMMC-v4.5-sanitize-operation.patch
deleted file mode 100644
index 602f293..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0007-mmc-fixes-for-eMMC-v4.5-sanitize-operation.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 6e1972f1214d5827d22d15985bb50d1e05307e7e Mon Sep 17 00:00:00 2001
-From: Adrian Hunter <adrian.hunter at intel.com>
-Date: Thu, 5 Apr 2012 14:45:48 +0300
-Subject: [PATCH 007/165] mmc: fixes for eMMC v4.5 sanitize operation
-
-commit 283028122db37621b124f079ca8eae5b64807ad4 upstream.
-
-eMMC v4.5 sanitize operation erases all copies of unmapped
-data.  However trim or erase operations must be used first
-to unmap the required sectors.  That was not being done.
-
-Fixes apply to linux 3.2 on.
-
-Signed-off-by: Adrian Hunter <adrian.hunter at intel.com>
-Acked-by: Jaehoon Chung <jh80.chung at samsung.com>
-Acked-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mmc/card/block.c |   54 ++++++++++++++++++++++++++++++++-------------
- drivers/mmc/core/core.c  |    2 +
- 2 files changed, 40 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
-index 60e8951..6679c4f 100644
---- a/drivers/mmc/card/block.c
-+++ b/drivers/mmc/card/block.c
-@@ -799,7 +799,7 @@ static int mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq,
- {
- 	struct mmc_blk_data *md = mq->data;
- 	struct mmc_card *card = md->queue.card;
--	unsigned int from, nr, arg;
-+	unsigned int from, nr, arg, trim_arg, erase_arg;
- 	int err = 0, type = MMC_BLK_SECDISCARD;
- 
- 	if (!(mmc_can_secure_erase_trim(card) || mmc_can_sanitize(card))) {
-@@ -807,20 +807,26 @@ static int mmc_blk_issue_secdiscard_rq(struct mmc_queue *mq,
- 		goto out;
- 	}
- 
-+	from = blk_rq_pos(req);
-+	nr = blk_rq_sectors(req);
-+
- 	/* The sanitize operation is supported at v4.5 only */
- 	if (mmc_can_sanitize(card)) {
--		err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
--				EXT_CSD_SANITIZE_START, 1, 0);
--		goto out;
-+		erase_arg = MMC_ERASE_ARG;
-+		trim_arg = MMC_TRIM_ARG;
-+	} else {
-+		erase_arg = MMC_SECURE_ERASE_ARG;
-+		trim_arg = MMC_SECURE_TRIM1_ARG;
- 	}
- 
--	from = blk_rq_pos(req);
--	nr = blk_rq_sectors(req);
--
--	if (mmc_can_trim(card) && !mmc_erase_group_aligned(card, from, nr))
--		arg = MMC_SECURE_TRIM1_ARG;
--	else
--		arg = MMC_SECURE_ERASE_ARG;
-+	if (mmc_erase_group_aligned(card, from, nr))
-+		arg = erase_arg;
-+	else if (mmc_can_trim(card))
-+		arg = trim_arg;
-+	else {
-+		err = -EINVAL;
-+		goto out;
-+	}
- retry:
- 	if (card->quirks & MMC_QUIRK_INAND_CMD38) {
- 		err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
-@@ -830,25 +836,41 @@ retry:
- 				 INAND_CMD38_ARG_SECERASE,
- 				 0);
- 		if (err)
--			goto out;
-+			goto out_retry;
- 	}
-+
- 	err = mmc_erase(card, from, nr, arg);
--	if (!err && arg == MMC_SECURE_TRIM1_ARG) {
-+	if (err == -EIO)
-+		goto out_retry;
-+	if (err)
-+		goto out;
-+
-+	if (arg == MMC_SECURE_TRIM1_ARG) {
- 		if (card->quirks & MMC_QUIRK_INAND_CMD38) {
- 			err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
- 					 INAND_CMD38_ARG_EXT_CSD,
- 					 INAND_CMD38_ARG_SECTRIM2,
- 					 0);
- 			if (err)
--				goto out;
-+				goto out_retry;
- 		}
-+
- 		err = mmc_erase(card, from, nr, MMC_SECURE_TRIM2_ARG);
-+		if (err == -EIO)
-+			goto out_retry;
-+		if (err)
-+			goto out;
- 	}
--out:
--	if (err == -EIO && !mmc_blk_reset(md, card->host, type))
-+
-+	if (mmc_can_sanitize(card))
-+		err = mmc_switch(card, EXT_CSD_CMD_SET_NORMAL,
-+				 EXT_CSD_SANITIZE_START, 1, 0);
-+out_retry:
-+	if (err && !mmc_blk_reset(md, card->host, type))
- 		goto retry;
- 	if (!err)
- 		mmc_blk_reset_success(md, type);
-+out:
- 	spin_lock_irq(&md->lock);
- 	__blk_end_request(req, err, blk_rq_bytes(req));
- 	spin_unlock_irq(&md->lock);
-diff --git a/drivers/mmc/core/core.c b/drivers/mmc/core/core.c
-index c420a9e..411a994 100644
---- a/drivers/mmc/core/core.c
-+++ b/drivers/mmc/core/core.c
-@@ -1809,6 +1809,8 @@ EXPORT_SYMBOL(mmc_can_discard);
- 
- int mmc_can_sanitize(struct mmc_card *card)
- {
-+	if (!mmc_can_trim(card) && !mmc_can_erase(card))
-+		return 0;
- 	if (card->ext_csd.sec_feature_support & EXT_CSD_SEC_SANITIZE)
- 		return 1;
- 	return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0008-mmc-unbreak-sdhci-esdhc-imx-on-i.MX25.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0008-mmc-unbreak-sdhci-esdhc-imx-on-i.MX25.patch
deleted file mode 100644
index d3adbdb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0008-mmc-unbreak-sdhci-esdhc-imx-on-i.MX25.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 5c4111343e2cb543a436cd23d7633a513fd8385d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric at eukrea.com>
-Date: Wed, 18 Apr 2012 02:30:20 +0200
-Subject: [PATCH 008/165] mmc: unbreak sdhci-esdhc-imx on i.MX25
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b89152824f993a9572b47eb31f4579feadeac34c upstream.
-
-This was broken by me in 37865fe91582582a6f6c00652f6a2b1ff71f8a78
-("mmc: sdhci-esdhc-imx: fix timeout on i.MX's sdhci") where more
-extensive tests would have shown that read or write of data to the
-card were failing (even if the partition table was correctly read).
-
-Signed-off-by: Eric Bénard <eric at eukrea.com>
-Acked-by: Wolfram Sang <w.sang at pengutronix.de>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mmc/host/sdhci-esdhc-imx.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
-index 4540e37..1b47937 100644
---- a/drivers/mmc/host/sdhci-esdhc-imx.c
-+++ b/drivers/mmc/host/sdhci-esdhc-imx.c
-@@ -467,8 +467,7 @@ static int __devinit sdhci_esdhc_imx_probe(struct platform_device *pdev)
- 	clk_enable(clk);
- 	pltfm_host->clk = clk;
- 
--	if (!is_imx25_esdhc(imx_data))
--		host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
-+	host->quirks |= SDHCI_QUIRK_BROKEN_TIMEOUT_VAL;
- 
- 	if (is_imx25_esdhc(imx_data) || is_imx35_esdhc(imx_data))
- 		/* Fix errata ENGcm07207 present on i.MX25 and i.MX35 */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0009-xen-gntdev-do-not-set-VM_PFNMAP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0009-xen-gntdev-do-not-set-VM_PFNMAP.patch
deleted file mode 100644
index 06bb9fe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0009-xen-gntdev-do-not-set-VM_PFNMAP.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ccc1f53caca147badfafce099bd995a33d04880a Mon Sep 17 00:00:00 2001
-From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Date: Tue, 3 Apr 2012 18:05:47 +0100
-Subject: [PATCH 009/165] xen/gntdev: do not set VM_PFNMAP
-
-commit e8e937be971d706061dc56220ff3605ab77622a7 upstream.
-
-Since we are using the m2p_override we do have struct pages
-corresponding to the user vma mmap'ed by gntdev.
-
-Removing the VM_PFNMAP flag makes get_user_pages work on that vma.
-An example test case would be using a Xen userspace block backend
-(QDISK) on a file on NFS using O_DIRECT.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/xen/gntdev.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/xen/gntdev.c b/drivers/xen/gntdev.c
-index afca14d..625890c 100644
---- a/drivers/xen/gntdev.c
-+++ b/drivers/xen/gntdev.c
-@@ -692,7 +692,7 @@ static int gntdev_mmap(struct file *flip, struct vm_area_struct *vma)
- 	vma->vm_flags |= VM_RESERVED|VM_DONTEXPAND;
- 
- 	if (use_ptemod)
--		vma->vm_flags |= VM_DONTCOPY|VM_PFNMAP;
-+		vma->vm_flags |= VM_DONTCOPY;
- 
- 	vma->vm_private_data = map;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0010-xen-xenbus-Add-quirk-to-deal-with-misconfigured-back.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0010-xen-xenbus-Add-quirk-to-deal-with-misconfigured-back.patch
deleted file mode 100644
index 916237d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0010-xen-xenbus-Add-quirk-to-deal-with-misconfigured-back.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From a3da8d9a1658c86fb74dbd35b8bda473d8fe0717 Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Date: Tue, 17 Apr 2012 22:21:38 -0400
-Subject: [PATCH 010/165] xen/xenbus: Add quirk to deal with misconfigured
- backends.
-
-commit 3066616ce23aad5719c23a0f21f32676402cb44b upstream.
-
-A rather annoying and common case is when booting a PVonHVM guest
-and exposing the PV KBD and PV VFB - as broken toolstacks don't
-always initialize the backends correctly.
-
-Normally The HVM guest is using the VGA driver and the emulated
-keyboard for this (though upstream version of QEMU implements
-PV KBD, but still uses a VGA driver). We provide a very basic
-two-stage wait mechanism - where we wait for 30 seconds for all
-devices, and then for 270 for all them except the two mentioned.
-
-That allows us to wait for the essential devices, like network
-or disk for the full 6 minutes.
-
-To trigger this, put this in your guest config:
-
-vfb = [ 'vnc=1, vnclisten=0.0.0.0 ,vncunused=1']
-
-instead of this:
-vnc=1
-vnclisten="0.0.0.0"
-
-Acked-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-[v3: Split delay in non-essential (30 seconds) and essential
- devices per Ian and Stefano suggestion]
-[v4: Added comments per Stefano suggestion]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/xen/xenbus/xenbus_probe_frontend.c |   69 +++++++++++++++++++++------
- 1 files changed, 53 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/xen/xenbus/xenbus_probe_frontend.c b/drivers/xen/xenbus/xenbus_probe_frontend.c
-index 2f73195..2ce95c0 100644
---- a/drivers/xen/xenbus/xenbus_probe_frontend.c
-+++ b/drivers/xen/xenbus/xenbus_probe_frontend.c
-@@ -129,7 +129,7 @@ static int read_backend_details(struct xenbus_device *xendev)
- 	return xenbus_read_otherend_details(xendev, "backend-id", "backend");
- }
- 
--static int is_device_connecting(struct device *dev, void *data)
-+static int is_device_connecting(struct device *dev, void *data, bool ignore_nonessential)
- {
- 	struct xenbus_device *xendev = to_xenbus_device(dev);
- 	struct device_driver *drv = data;
-@@ -146,16 +146,41 @@ static int is_device_connecting(struct device *dev, void *data)
- 	if (drv && (dev->driver != drv))
- 		return 0;
- 
-+	if (ignore_nonessential) {
-+		/* With older QEMU, for PVonHVM guests the guest config files
-+		 * could contain: vfb = [ 'vnc=1, vnclisten=0.0.0.0']
-+		 * which is nonsensical as there is no PV FB (there can be
-+		 * a PVKB) running as HVM guest. */
-+
-+		if ((strncmp(xendev->nodename, "device/vkbd", 11) == 0))
-+			return 0;
-+
-+		if ((strncmp(xendev->nodename, "device/vfb", 10) == 0))
-+			return 0;
-+	}
- 	xendrv = to_xenbus_driver(dev->driver);
- 	return (xendev->state < XenbusStateConnected ||
- 		(xendev->state == XenbusStateConnected &&
- 		 xendrv->is_ready && !xendrv->is_ready(xendev)));
- }
-+static int essential_device_connecting(struct device *dev, void *data)
-+{
-+	return is_device_connecting(dev, data, true /* ignore PV[KBB+FB] */);
-+}
-+static int non_essential_device_connecting(struct device *dev, void *data)
-+{
-+	return is_device_connecting(dev, data, false);
-+}
- 
--static int exists_connecting_device(struct device_driver *drv)
-+static int exists_essential_connecting_device(struct device_driver *drv)
- {
- 	return bus_for_each_dev(&xenbus_frontend.bus, NULL, drv,
--				is_device_connecting);
-+				essential_device_connecting);
-+}
-+static int exists_non_essential_connecting_device(struct device_driver *drv)
-+{
-+	return bus_for_each_dev(&xenbus_frontend.bus, NULL, drv,
-+				non_essential_device_connecting);
- }
- 
- static int print_device_status(struct device *dev, void *data)
-@@ -186,6 +211,23 @@ static int print_device_status(struct device *dev, void *data)
- /* We only wait for device setup after most initcalls have run. */
- static int ready_to_wait_for_devices;
- 
-+static bool wait_loop(unsigned long start, unsigned int max_delay,
-+		     unsigned int *seconds_waited)
-+{
-+	if (time_after(jiffies, start + (*seconds_waited+5)*HZ)) {
-+		if (!*seconds_waited)
-+			printk(KERN_WARNING "XENBUS: Waiting for "
-+			       "devices to initialise: ");
-+		*seconds_waited += 5;
-+		printk("%us...", max_delay - *seconds_waited);
-+		if (*seconds_waited == max_delay)
-+			return true;
-+	}
-+
-+	schedule_timeout_interruptible(HZ/10);
-+
-+	return false;
-+}
- /*
-  * On a 5-minute timeout, wait for all devices currently configured.  We need
-  * to do this to guarantee that the filesystems and / or network devices
-@@ -209,19 +251,14 @@ static void wait_for_devices(struct xenbus_driver *xendrv)
- 	if (!ready_to_wait_for_devices || !xen_domain())
- 		return;
- 
--	while (exists_connecting_device(drv)) {
--		if (time_after(jiffies, start + (seconds_waited+5)*HZ)) {
--			if (!seconds_waited)
--				printk(KERN_WARNING "XENBUS: Waiting for "
--				       "devices to initialise: ");
--			seconds_waited += 5;
--			printk("%us...", 300 - seconds_waited);
--			if (seconds_waited == 300)
--				break;
--		}
--
--		schedule_timeout_interruptible(HZ/10);
--	}
-+	while (exists_non_essential_connecting_device(drv))
-+		if (wait_loop(start, 30, &seconds_waited))
-+			break;
-+
-+	/* Skips PVKB and PVFB check.*/
-+	while (exists_essential_connecting_device(drv))
-+		if (wait_loop(start, 270, &seconds_waited))
-+			break;
- 
- 	if (seconds_waited)
- 		printk("\n");
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0011-USB-yurex-Remove-allocation-of-coherent-buffer-for-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0011-USB-yurex-Remove-allocation-of-coherent-buffer-for-s.patch
deleted file mode 100644
index c8f316a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0011-USB-yurex-Remove-allocation-of-coherent-buffer-for-s.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 607a2c7f4e227d472b7b1c6b69ec7112f5e8b142 Mon Sep 17 00:00:00 2001
-From: Tomoki Sekiyama <tomoki.sekiyama at gmail.com>
-Date: Fri, 30 Mar 2012 08:51:28 +0900
-Subject: [PATCH 011/165] USB: yurex: Remove allocation of coherent buffer for
- setup-packet buffer
-
-commit 523fc5c14f6cad283e5a266eba0e343aed6e73d5 upstream.
-
-Removes allocation of coherent buffer for the control-request setup-packet
-buffer from the yurex driver. Using coherent buffers for setup-packet is
-obsolete and does not work with some USB host implementations.
-
-Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/misc/yurex.c |    8 ++------
- 1 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
-index ac5bfd6..24bff37 100644
---- a/drivers/usb/misc/yurex.c
-+++ b/drivers/usb/misc/yurex.c
-@@ -99,9 +99,7 @@ static void yurex_delete(struct kref *kref)
- 	usb_put_dev(dev->udev);
- 	if (dev->cntl_urb) {
- 		usb_kill_urb(dev->cntl_urb);
--		if (dev->cntl_req)
--			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
--				dev->cntl_req, dev->cntl_urb->setup_dma);
-+		kfree(dev->cntl_req);
- 		if (dev->cntl_buffer)
- 			usb_free_coherent(dev->udev, YUREX_BUF_SIZE,
- 				dev->cntl_buffer, dev->cntl_urb->transfer_dma);
-@@ -234,9 +232,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
- 	}
- 
- 	/* allocate buffer for control req */
--	dev->cntl_req = usb_alloc_coherent(dev->udev, YUREX_BUF_SIZE,
--					   GFP_KERNEL,
--					   &dev->cntl_urb->setup_dma);
-+	dev->cntl_req = kmalloc(YUREX_BUF_SIZE, GFP_KERNEL);
- 	if (!dev->cntl_req) {
- 		err("Could not allocate cntl_req");
- 		goto error;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0012-USB-yurex-Fix-missing-URB_NO_TRANSFER_DMA_MAP-flag-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0012-USB-yurex-Fix-missing-URB_NO_TRANSFER_DMA_MAP-flag-i.patch
deleted file mode 100644
index b922644..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0012-USB-yurex-Fix-missing-URB_NO_TRANSFER_DMA_MAP-flag-i.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 52f84b7d4cbfe7fc0ed467312e405df648bb1dca Mon Sep 17 00:00:00 2001
-From: Tomoki Sekiyama <tomoki.sekiyama at gmail.com>
-Date: Fri, 30 Mar 2012 08:51:36 +0900
-Subject: [PATCH 012/165] USB: yurex: Fix missing URB_NO_TRANSFER_DMA_MAP flag
- in urb
-
-commit 532f17b5d59bf0deb6f1ff9bc1fb27d5b5011c09 upstream.
-
-Current probing code is setting URB_NO_TRANSFER_DMA_MAP flag into a wrong urb
-structure, and this causes BUG_ON with some USB host implementations.
-This patch fixes the issue.
-
-Signed-off-by: Tomoki Sekiyama <tomoki.sekiyama at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/misc/yurex.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/misc/yurex.c b/drivers/usb/misc/yurex.c
-index 24bff37..2504694 100644
---- a/drivers/usb/misc/yurex.c
-+++ b/drivers/usb/misc/yurex.c
-@@ -282,7 +282,7 @@ static int yurex_probe(struct usb_interface *interface, const struct usb_device_
- 			 usb_rcvintpipe(dev->udev, dev->int_in_endpointAddr),
- 			 dev->int_buffer, YUREX_BUF_SIZE, yurex_interrupt,
- 			 dev, 1);
--	dev->cntl_urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
-+	dev->urb->transfer_flags |= URB_NO_TRANSFER_DMA_MAP;
- 	if (usb_submit_urb(dev->urb, GFP_KERNEL)) {
- 		retval = -EIO;
- 		err("Could not submitting URB");
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0013-uwb-fix-use-of-del_timer_sync-in-interrupt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0013-uwb-fix-use-of-del_timer_sync-in-interrupt.patch
deleted file mode 100644
index 0fbd236..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0013-uwb-fix-use-of-del_timer_sync-in-interrupt.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 73b80f793567a6056f9265c82599b47bc5856db8 Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oliver at neukum.org>
-Date: Mon, 16 Apr 2012 15:28:28 +0200
-Subject: [PATCH 013/165] uwb: fix use of del_timer_sync() in interrupt
-
-commit 9426cd05682745d1024dbabdec5631309bd2f480 upstream.
-
-del_timer_sync() cannot be used in interrupt.
-Replace it with del_timer() and a flag
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/uwb/neh.c |   12 +++++++++++-
- 1 files changed, 11 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/uwb/neh.c b/drivers/uwb/neh.c
-index a269937..8cb71bb 100644
---- a/drivers/uwb/neh.c
-+++ b/drivers/uwb/neh.c
-@@ -107,6 +107,7 @@ struct uwb_rc_neh {
- 	u8 evt_type;
- 	__le16 evt;
- 	u8 context;
-+	u8 completed;
- 	uwb_rc_cmd_cb_f cb;
- 	void *arg;
- 
-@@ -409,6 +410,7 @@ static void uwb_rc_neh_grok_event(struct uwb_rc *rc, struct uwb_rceb *rceb, size
- 	struct device *dev = &rc->uwb_dev.dev;
- 	struct uwb_rc_neh *neh;
- 	struct uwb_rceb *notif;
-+	unsigned long flags;
- 
- 	if (rceb->bEventContext == 0) {
- 		notif = kmalloc(size, GFP_ATOMIC);
-@@ -422,7 +424,11 @@ static void uwb_rc_neh_grok_event(struct uwb_rc *rc, struct uwb_rceb *rceb, size
- 	} else {
- 		neh = uwb_rc_neh_lookup(rc, rceb);
- 		if (neh) {
--			del_timer_sync(&neh->timer);
-+			spin_lock_irqsave(&rc->neh_lock, flags);
-+			/* to guard against a timeout */
-+			neh->completed = 1;
-+			del_timer(&neh->timer);
-+			spin_unlock_irqrestore(&rc->neh_lock, flags);
- 			uwb_rc_neh_cb(neh, rceb, size);
- 		} else
- 			dev_warn(dev, "event 0x%02x/%04x/%02x (%zu bytes): nobody cared\n",
-@@ -568,6 +574,10 @@ static void uwb_rc_neh_timer(unsigned long arg)
- 	unsigned long flags;
- 
- 	spin_lock_irqsave(&rc->neh_lock, flags);
-+	if (neh->completed) {
-+		spin_unlock_irqrestore(&rc->neh_lock, flags);
-+		return;
-+	}
- 	if (neh->context)
- 		__uwb_rc_neh_rm(rc, neh);
- 	else
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0014-uwb-fix-error-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0014-uwb-fix-error-handling.patch
deleted file mode 100644
index f4bf93c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0014-uwb-fix-error-handling.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 8a03e18a4ff4ab7f3a6da08bd3f564f8a7aa2c4e Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oliver at neukum.org>
-Date: Wed, 18 Apr 2012 10:05:55 +0200
-Subject: [PATCH 014/165] uwb: fix error handling
-
-commit 5bd7b419ef2eb4989b207753e088c3437159618a upstream.
-
-Fatal errors such as a device disconnect must not trigger
-error handling. The error returns must be checked.
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/uwb/hwa-rc.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/uwb/hwa-rc.c b/drivers/uwb/hwa-rc.c
-index 2babcd4..86685e9 100644
---- a/drivers/uwb/hwa-rc.c
-+++ b/drivers/uwb/hwa-rc.c
-@@ -645,7 +645,8 @@ void hwarc_neep_cb(struct urb *urb)
- 		dev_err(dev, "NEEP: URB error %d\n", urb->status);
- 	}
- 	result = usb_submit_urb(urb, GFP_ATOMIC);
--	if (result < 0) {
-+	if (result < 0 && result != -ENODEV && result != -EPERM) {
-+		/* ignoring unrecoverable errors */
- 		dev_err(dev, "NEEP: Can't resubmit URB (%d) resetting device\n",
- 			result);
- 		goto error;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0015-davinci_mdio-Fix-MDIO-timeout-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0015-davinci_mdio-Fix-MDIO-timeout-check.patch
deleted file mode 100644
index fab7b50..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0015-davinci_mdio-Fix-MDIO-timeout-check.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From e132279cab18984918fc3cc9f8f02c8bd71e2931 Mon Sep 17 00:00:00 2001
-From: Christian Riesch <christian.riesch at omicron.at>
-Date: Mon, 16 Apr 2012 04:35:25 +0000
-Subject: [PATCH 015/165] davinci_mdio: Fix MDIO timeout check
-
-commit 5b76d0600b2b08eef77f8e9226938b7b6bde3099 upstream.
-
-Under heavy load (flood ping) it is possible for the MDIO timeout to
-expire before the loop checks the GO bit again. This patch adds an
-additional check whether the operation was done before actually
-returning -ETIMEDOUT.
-
-To reproduce this bug, flood ping the device, e.g., ping -f -l 1000
-After some time, a "timed out waiting for user access" warning
-may appear. And even worse, link may go down since the PHY reported a
-timeout.
-
-Signed-off-by: Christian Riesch <christian.riesch at omicron.at>
-Cc: Cyril Chemparathy <cyril at ti.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/ti/davinci_mdio.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/ti/davinci_mdio.c b/drivers/net/ethernet/ti/davinci_mdio.c
-index 1f14be6..3802de3 100644
---- a/drivers/net/ethernet/ti/davinci_mdio.c
-+++ b/drivers/net/ethernet/ti/davinci_mdio.c
-@@ -185,6 +185,11 @@ static inline int wait_for_user_access(struct davinci_mdio_data *data)
- 		__davinci_mdio_reset(data);
- 		return -EAGAIN;
- 	}
-+
-+	reg = __raw_readl(&regs->user[0].access);
-+	if ((reg & USERACCESS_GO) == 0)
-+		return 0;
-+
- 	dev_err(data->dev, "timed out waiting for user access\n");
- 	return -ETIMEDOUT;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0016-mwifiex-update-pcie8766-scratch-register-addresses.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0016-mwifiex-update-pcie8766-scratch-register-addresses.patch
deleted file mode 100644
index fa25fb1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0016-mwifiex-update-pcie8766-scratch-register-addresses.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f0553ecfc94510617f6b54a980e86a197e0746ac Mon Sep 17 00:00:00 2001
-From: Bing Zhao <bzhao at marvell.com>
-Date: Thu, 12 Apr 2012 19:00:35 -0700
-Subject: [PATCH 016/165] mwifiex: update pcie8766 scratch register addresses
-
-commit 428ca8a7065354877db63ceabfc493107686eebe upstream.
-
-The scratch register addresses have been changed for newer chips.
-Since the old chip was never shipped and it will not be supported
-any more, just update register addresses to support the new chips.
-
-Signed-off-by: Bing Zhao <bzhao at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/mwifiex/pcie.h |   18 +++++++++---------
- 1 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/net/wireless/mwifiex/pcie.h b/drivers/net/wireless/mwifiex/pcie.h
-index 445ff21..2f218f9 100644
---- a/drivers/net/wireless/mwifiex/pcie.h
-+++ b/drivers/net/wireless/mwifiex/pcie.h
-@@ -48,15 +48,15 @@
- #define PCIE_HOST_INT_STATUS_MASK			0xC3C
- #define PCIE_SCRATCH_2_REG				0xC40
- #define PCIE_SCRATCH_3_REG				0xC44
--#define PCIE_SCRATCH_4_REG				0xCC0
--#define PCIE_SCRATCH_5_REG				0xCC4
--#define PCIE_SCRATCH_6_REG				0xCC8
--#define PCIE_SCRATCH_7_REG				0xCCC
--#define PCIE_SCRATCH_8_REG				0xCD0
--#define PCIE_SCRATCH_9_REG				0xCD4
--#define PCIE_SCRATCH_10_REG				0xCD8
--#define PCIE_SCRATCH_11_REG				0xCDC
--#define PCIE_SCRATCH_12_REG				0xCE0
-+#define PCIE_SCRATCH_4_REG				0xCD0
-+#define PCIE_SCRATCH_5_REG				0xCD4
-+#define PCIE_SCRATCH_6_REG				0xCD8
-+#define PCIE_SCRATCH_7_REG				0xCDC
-+#define PCIE_SCRATCH_8_REG				0xCE0
-+#define PCIE_SCRATCH_9_REG				0xCE4
-+#define PCIE_SCRATCH_10_REG				0xCE8
-+#define PCIE_SCRATCH_11_REG				0xCEC
-+#define PCIE_SCRATCH_12_REG				0xCF0
- 
- #define CPU_INTR_DNLD_RDY				BIT(0)
- #define CPU_INTR_DOOR_BELL				BIT(1)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0017-brcm80211-smac-resume-transmit-fifo-upon-receiving-f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0017-brcm80211-smac-resume-transmit-fifo-upon-receiving-f.patch
deleted file mode 100644
index cbc4a07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0017-brcm80211-smac-resume-transmit-fifo-upon-receiving-f.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 97f7538da8a6b3e8cef6322b2024817759393079 Mon Sep 17 00:00:00 2001
-From: Arend van Spriel <arend at broadcom.com>
-Date: Wed, 11 Apr 2012 11:52:51 +0200
-Subject: [PATCH 017/165] brcm80211: smac: resume transmit fifo upon receiving
- frames
-
-commit badc4f07622f0f7093a201638f45e85765f1b5e4 upstream.
-
-There have been reports about not being able to use access-points
-on channel 12 and 13 or having connectivity issues when these channels
-were part of the selected regulatory domain. Upon switching to these
-channels the brcmsmac driver suspends the transmit dma fifos. This
-patch resumes them upon handing over the first received beacon to
-mac80211.
-
-This patch is to be applied to the stable tree for kernel versions
-3.2 and 3.3.
-
-Tested-by: Francesco Saverio Schiavarelli <fschiava at libero.it>
-Reviewed-by: Pieter-Paul Giesberts <pieterpg at broadcom.com>
-Reviewed-by: Brett Rudley <brudley at broadcom.com>
-Signed-off-by: Arend van Spriel <arend at broadcom.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/brcm80211/brcmsmac/main.c |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-index 453f58e..f98becc 100644
---- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -7865,6 +7865,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
- {
- 	int len_mpdu;
- 	struct ieee80211_rx_status rx_status;
-+	struct ieee80211_hdr *hdr;
- 
- 	memset(&rx_status, 0, sizeof(rx_status));
- 	prep_mac80211_status(wlc, rxh, p, &rx_status);
-@@ -7874,6 +7875,13 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
- 	skb_pull(p, D11_PHY_HDR_LEN);
- 	__skb_trim(p, len_mpdu);
- 
-+	/* unmute transmit */
-+	if (wlc->hw->suspended_fifos) {
-+		hdr = (struct ieee80211_hdr *)p->data;
-+		if (ieee80211_is_beacon(hdr->frame_control))
-+			brcms_b_mute(wlc->hw, false);
-+	}
-+
- 	memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
- 	ieee80211_rx_irqsafe(wlc->pub->ieee_hw, p);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0018-rc-core-set-mode-for-winbond-cir.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0018-rc-core-set-mode-for-winbond-cir.patch
deleted file mode 100644
index 9e59a20..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0018-rc-core-set-mode-for-winbond-cir.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 6dd8dc1e17571cbe55630e5d1e85aa7e27a0b257 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?David=20H=C3=A4rdeman?= <david at hardeman.nu>
-Date: Sun, 8 Apr 2012 06:13:04 -0300
-Subject: [PATCH 018/165] rc-core: set mode for winbond-cir
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit d9b786955f80fb306471fdb9ea24c6d03af6ca36 upstream.
-
-Setting the correct mode is required by rc-core or scancodes won't be
-generated (which isn't very user-friendly).
-
-This one-line fix should be suitable for 3.4-rc2.
-
-Signed-off-by: David Härdeman <david at hardeman.nu>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/rc/winbond-cir.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c
-index 13f54b5..a7e7d6f 100644
---- a/drivers/media/rc/winbond-cir.c
-+++ b/drivers/media/rc/winbond-cir.c
-@@ -1046,6 +1046,7 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
- 		goto exit_unregister_led;
- 	}
- 
-+	data->dev->driver_type = RC_DRIVER_IR_RAW;
- 	data->dev->driver_name = WBCIR_NAME;
- 	data->dev->input_name = WBCIR_NAME;
- 	data->dev->input_phys = "wbcir/cir0";
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0019-drxk-Does-not-unlock-mutex-if-sanity-check-failed-in.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0019-drxk-Does-not-unlock-mutex-if-sanity-check-failed-in.patch
deleted file mode 100644
index 430687c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0019-drxk-Does-not-unlock-mutex-if-sanity-check-failed-in.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From d5cc94665b578e3e5e87884fb802e49b2f276298 Mon Sep 17 00:00:00 2001
-From: Alexey Khoroshilov <khoroshilov at ispras.ru>
-Date: Thu, 5 Apr 2012 18:53:20 -0300
-Subject: [PATCH 019/165] drxk: Does not unlock mutex if sanity check failed
- in scu_command()
-
-commit e4459e1682c107d7ee1bf102c1ba534230e9b50b upstream.
-
-If sanity check fails in scu_command(), goto error leads to unlock of
-an unheld mutex. The check should not fail in reality, but it nevertheless
-worth fixing.
-
-Found by Linux Driver Verification project (linuxtesting.org).
-
-Signed-off-by: Alexey Khoroshilov <khoroshilov at ispras.ru>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/dvb/frontends/drxk_hard.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/media/dvb/frontends/drxk_hard.c b/drivers/media/dvb/frontends/drxk_hard.c
-index f6431ef..a1f5e3d 100644
---- a/drivers/media/dvb/frontends/drxk_hard.c
-+++ b/drivers/media/dvb/frontends/drxk_hard.c
-@@ -1523,8 +1523,10 @@ static int scu_command(struct drxk_state *state,
- 	dprintk(1, "\n");
- 
- 	if ((cmd == 0) || ((parameterLen > 0) && (parameter == NULL)) ||
--	    ((resultLen > 0) && (result == NULL)))
--		goto error;
-+	    ((resultLen > 0) && (result == NULL))) {
-+		printk(KERN_ERR "drxk: Error %d on %s\n", status, __func__);
-+		return status;
-+	}
- 
- 	mutex_lock(&state->mutex);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0020-cfg80211-fix-interface-combinations-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0020-cfg80211-fix-interface-combinations-check.patch
deleted file mode 100644
index f1969a4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0020-cfg80211-fix-interface-combinations-check.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 9080bb10c5fa9dc3a8c358eec3bffc5e0dd29ea8 Mon Sep 17 00:00:00 2001
-From: Lukasz Kucharczyk <lukasz.kucharczyk at tieto.com>
-Date: Wed, 11 Apr 2012 14:55:10 +0200
-Subject: [PATCH 020/165] cfg80211: fix interface combinations check.
-
-commit e55a4046dab28c440c96890bdddcf02dc8981f2d upstream.
-
-Signed-off-by: Lukasz Kucharczyk <lukasz.kucharczyk at tieto.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/util.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/net/wireless/util.c b/net/wireless/util.c
-index 4dde429..8bf8902 100644
---- a/net/wireless/util.c
-+++ b/net/wireless/util.c
-@@ -996,7 +996,7 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 			if (rdev->wiphy.software_iftypes & BIT(iftype))
- 				continue;
- 			for (j = 0; j < c->n_limits; j++) {
--				if (!(limits[j].types & iftype))
-+				if (!(limits[j].types & BIT(iftype)))
- 					continue;
- 				if (limits[j].max < num[iftype])
- 					goto cont;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0021-Fix-modpost-failures-in-fedora-17.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0021-Fix-modpost-failures-in-fedora-17.patch
deleted file mode 100644
index 5de8b33..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0021-Fix-modpost-failures-in-fedora-17.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 3ff39b2411c6722c1ee6c490ac4ec7f90f026d64 Mon Sep 17 00:00:00 2001
-From: David Miller <davem at davemloft.net>
-Date: Wed, 25 Apr 2012 19:41:32 -0500
-Subject: [PATCH 021/165] Fix modpost failures in fedora 17
-
-commit e88aa7bbbe3046a125ea1936b16bb921cc9c6349 upstream.
-
-The symbol table on x86-64 starts to have entries that have names
-like:
-
-_GLOBAL__sub_I_65535_0___mod_x86cpu_device_table
-
-They are of type STT_FUNCTION and this one had a length of 18.  This
-matched the device ID validation logic and it barfed because the
-length did not meet the device type's criteria.
-
---------------------
-FATAL: arch/x86/crypto/aesni-intel: sizeof(struct x86cpu_device_id)=16 is not a modulo of the size of section __mod_x86cpu_device_table=18.
-Fix definition of struct x86cpu_device_id in mod_devicetable.h
---------------------
-
-These are some kind of compiler tool internal stuff being emitted and
-not something we want to inspect in modpost's device ID table
-validation code.
-
-So skip the symbol if it is not of type STT_OBJECT.
-
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Acked-by: Sam Ravnborg <sam at ravnborg.org>
-Signed-off-by: Michal Marek <mmarek at suse.cz>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- scripts/mod/file2alias.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/scripts/mod/file2alias.c b/scripts/mod/file2alias.c
-index f936d1f..d1d0ae8 100644
---- a/scripts/mod/file2alias.c
-+++ b/scripts/mod/file2alias.c
-@@ -926,6 +926,10 @@ void handle_moddevtable(struct module *mod, struct elf_info *info,
- 	if (!sym->st_shndx || get_secindex(info, sym) >= info->num_sections)
- 		return;
- 
-+	/* We're looking for an object */
-+	if (ELF_ST_TYPE(sym->st_info) != STT_OBJECT)
-+		return;
-+
- 	/* Handle all-NULL symbols allocated into .bss */
- 	if (info->sechdrs[get_secindex(info, sym)].sh_type & SHT_NOBITS) {
- 		zeros = calloc(1, sym->st_size);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0022-mm-fix-s390-BUG-by-__set_page_dirty_no_writeback-on-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0022-mm-fix-s390-BUG-by-__set_page_dirty_no_writeback-on-.patch
deleted file mode 100644
index 4ba10ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0022-mm-fix-s390-BUG-by-__set_page_dirty_no_writeback-on-.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 8afb43e5f076643f012d0267aebb215cc0f0767b Mon Sep 17 00:00:00 2001
-From: Hugh Dickins <hughd at google.com>
-Date: Mon, 23 Apr 2012 11:14:50 -0700
-Subject: [PATCH 022/165] mm: fix s390 BUG by __set_page_dirty_no_writeback on
- swap
-
-commit aca50bd3b4c4bb5528a1878158ba7abce41de534 upstream.
-
-Mel reports a BUG_ON(slot == NULL) in radix_tree_tag_set() on s390
-3.0.13: called from __set_page_dirty_nobuffers() when page_remove_rmap()
-tries to transfer dirty flag from s390 storage key to struct page and
-radix_tree.
-
-That would be because of reclaim's shrink_page_list() calling
-add_to_swap() on this page at the same time: first PageSwapCache is set
-(causing page_mapping(page) to appear as &swapper_space), then
-page->private set, then tree_lock taken, then page inserted into
-radix_tree - so there's an interval before taking the lock when the
-radix_tree slot is empty.
-
-We could fix this by moving __add_to_swap_cache()'s spin_lock_irq up
-before the SetPageSwapCache.  But a better fix is simply to do what's
-five years overdue: Ken Chen introduced __set_page_dirty_no_writeback()
-(if !PageDirty TestSetPageDirty) for tmpfs to skip all the radix_tree
-overhead, and swap is just the same - it ignores the radix_tree tag, and
-does not participate in dirty page accounting, so should be using
-__set_page_dirty_no_writeback() too.
-
-s390 testing now confirms that this does indeed fix the problem.
-
-Reported-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Cc: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Cc: Heiko Carstens <heiko.carstens at de.ibm.com>
-Cc: Rik van Riel <riel at redhat.com>
-Cc: Ken Chen <kenchen at google.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/swap_state.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/mm/swap_state.c b/mm/swap_state.c
-index 78cc4d1..7704d9c 100644
---- a/mm/swap_state.c
-+++ b/mm/swap_state.c
-@@ -27,7 +27,7 @@
-  */
- static const struct address_space_operations swap_aops = {
- 	.writepage	= swap_writepage,
--	.set_page_dirty	= __set_page_dirty_nobuffers,
-+	.set_page_dirty	= __set_page_dirty_no_writeback,
- 	.migratepage	= migrate_page,
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0023-md-fix-possible-corruption-of-array-metadata-on-shut.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0023-md-fix-possible-corruption-of-array-metadata-on-shut.patch
deleted file mode 100644
index 62b6bfd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0023-md-fix-possible-corruption-of-array-metadata-on-shut.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From fd272b3336e1e535826cc345e10353eb104363e8 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Tue, 24 Apr 2012 10:23:16 +1000
-Subject: [PATCH 023/165] md: fix possible corruption of array metadata on
- shutdown.
-
-commit 30b8aa9172dfeaac6d77897c67ee9f9fc574cdbb upstream.
-
-commit c744a65c1e2d59acc54333ce8
-  md: don't set md arrays to readonly on shutdown.
-
-removed the possibility of a 'BUG' when data is written to an array
-that has just been switched to read-only, but also introduced the
-possibility that the array metadata could be corrupted.
-
-If, when md_notify_reboot gets the mddev lock, the array is
-in a state where it is assembled but hasn't been started (as can
-happen if the personality module is not available, or in other unusual
-situations), then incorrect metadata will be written out making it
-impossible to re-assemble the array.
-
-So only call __md_stop_writes() if the array has actually been
-activated.
-
-This patch is needed for any stable kernel which has had the above
-commit applied.
-
-Reported-by: Christoph Nelles <evilazrael at evilazrael.de>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/md.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 6f37aa4..065ab4f 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -8100,7 +8100,8 @@ static int md_notify_reboot(struct notifier_block *this,
- 
- 	for_each_mddev(mddev, tmp) {
- 		if (mddev_trylock(mddev)) {
--			__md_stop_writes(mddev);
-+			if (mddev->pers)
-+				__md_stop_writes(mddev);
- 			mddev->safemode = 2;
- 			mddev_unlock(mddev);
- 		}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0024-jbd2-use-GFP_NOFS-for-blkdev_issue_flush.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0024-jbd2-use-GFP_NOFS-for-blkdev_issue_flush.patch
deleted file mode 100644
index 2c66b9a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0024-jbd2-use-GFP_NOFS-for-blkdev_issue_flush.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 6556e20032c10ba45a6101a9454265c0f8c0fbc6 Mon Sep 17 00:00:00 2001
-From: Shaohua Li <shli at kernel.org>
-Date: Fri, 13 Apr 2012 10:27:35 +0800
-Subject: [PATCH 024/165] jbd2: use GFP_NOFS for blkdev_issue_flush
-
-commit 99aa78466777083255b876293e9e83dec7cd809a upstream.
-
-flush request is issued in transaction commit code path, so looks using
-GFP_KERNEL to allocate memory for flush request bio falls into the classic
-deadlock issue.  I saw btrfs and dm get it right, but ext4, xfs and md are
-using GFP.
-
-Signed-off-by: Shaohua Li <shli at fusionio.com>
-Signed-off-by: Theodore Ts'o <tytso at mit.edu>
-Reviewed-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/jbd2/commit.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/jbd2/commit.c b/fs/jbd2/commit.c
-index 68d704d..d751f04 100644
---- a/fs/jbd2/commit.c
-+++ b/fs/jbd2/commit.c
-@@ -683,7 +683,7 @@ start_journal_io:
- 	if (commit_transaction->t_need_data_flush &&
- 	    (journal->j_fs_dev != journal->j_dev) &&
- 	    (journal->j_flags & JBD2_BARRIER))
--		blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL);
-+		blkdev_issue_flush(journal->j_fs_dev, GFP_NOFS, NULL);
- 
- 	/* Done it all: now write the commit record asynchronously. */
- 	if (JBD2_HAS_INCOMPAT_FEATURE(journal,
-@@ -819,7 +819,7 @@ wait_for_iobuf:
- 	if (JBD2_HAS_INCOMPAT_FEATURE(journal,
- 				      JBD2_FEATURE_INCOMPAT_ASYNC_COMMIT) &&
- 	    journal->j_flags & JBD2_BARRIER) {
--		blkdev_issue_flush(journal->j_dev, GFP_KERNEL, NULL);
-+		blkdev_issue_flush(journal->j_dev, GFP_NOFS, NULL);
- 	}
- 
- 	if (err)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0025-USB-serial-cp210x-Fixed-usb_control_msg-timeout-valu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0025-USB-serial-cp210x-Fixed-usb_control_msg-timeout-valu.patch
deleted file mode 100644
index 027f7e7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0025-USB-serial-cp210x-Fixed-usb_control_msg-timeout-valu.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From f9515bb74e74a5f3f7cb963984bdd8c8731495ff Mon Sep 17 00:00:00 2001
-From: Yuri Matylitski <ym at tekinsoft.com>
-Date: Fri, 20 Apr 2012 12:38:32 +0300
-Subject: [PATCH 025/165] USB: serial: cp210x: Fixed usb_control_msg timeout
- values
-
-commit 2d5733fcd33dd451022d197cb6b476e970519ca7 upstream.
-
-Fixed too small hardcoded timeout values for usb_control_msg
-in driver for SiliconLabs cp210x-based usb-to-serial adapters.
-Replaced with USB_CTRL_GET_TIMEOUT/USB_CTRL_SET_TIMEOUT.
-
-Signed-off-by: Yuri Matylitski <ym at tekinsoft.com>
-Acked-by: Kirill A. Shutemov <kirill at shutemov.name>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/cp210x.c |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 4c12404..f2c57e0 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -285,7 +285,8 @@ static int cp210x_get_config(struct usb_serial_port *port, u8 request,
- 	/* Issue the request, attempting to read 'size' bytes */
- 	result = usb_control_msg(serial->dev, usb_rcvctrlpipe(serial->dev, 0),
- 				request, REQTYPE_DEVICE_TO_HOST, 0x0000,
--				port_priv->bInterfaceNumber, buf, size, 300);
-+				port_priv->bInterfaceNumber, buf, size,
-+				USB_CTRL_GET_TIMEOUT);
- 
- 	/* Convert data into an array of integers */
- 	for (i = 0; i < length; i++)
-@@ -335,12 +336,14 @@ static int cp210x_set_config(struct usb_serial_port *port, u8 request,
- 		result = usb_control_msg(serial->dev,
- 				usb_sndctrlpipe(serial->dev, 0),
- 				request, REQTYPE_HOST_TO_DEVICE, 0x0000,
--				port_priv->bInterfaceNumber, buf, size, 300);
-+				port_priv->bInterfaceNumber, buf, size,
-+				USB_CTRL_SET_TIMEOUT);
- 	} else {
- 		result = usb_control_msg(serial->dev,
- 				usb_sndctrlpipe(serial->dev, 0),
- 				request, REQTYPE_HOST_TO_DEVICE, data[0],
--				port_priv->bInterfaceNumber, NULL, 0, 300);
-+				port_priv->bInterfaceNumber, NULL, 0,
-+				USB_CTRL_SET_TIMEOUT);
- 	}
- 
- 	kfree(buf);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0026-pch_uart-Fix-dma-channel-unallocated-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0026-pch_uart-Fix-dma-channel-unallocated-issue.patch
deleted file mode 100644
index e150ebb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0026-pch_uart-Fix-dma-channel-unallocated-issue.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 069f7216ddee90ddca6e1d040e58b6735f89fca6 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Thu, 12 Apr 2012 10:47:50 +0900
-Subject: [PATCH 026/165] pch_uart: Fix dma channel unallocated issue
-
-commit af6d17cdc8c89aeb3101f0d27cd32fc0592b40b2 upstream.
-
-This driver anticipates pch_uart_verify_port() is not called
-during installation.
-However, actually pch_uart_verify_port() is called during
-installation.
-As a result, memory access violation occurs like below.
-
-0. initial value: use_dma=0
-1. starup()
-    - dma channel is not allocated because use_dma=0
-2. pch_uart_verify_port()
-    - Set use_dma=1
-3. UART processing acts DMA mode because use_dma=1
-     - memory access violation occurs!
-
-This patch fixes the issue.
-
-Solution:
-Whenever pch_uart_verify_port() is called and then
-dma channel is not allocated, the channel should be allocated.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/pch_uart.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
-index da776a0..a4b192d 100644
---- a/drivers/tty/serial/pch_uart.c
-+++ b/drivers/tty/serial/pch_uart.c
-@@ -1356,9 +1356,11 @@ static int pch_uart_verify_port(struct uart_port *port,
- 			__func__);
- 		return -EOPNOTSUPP;
- #endif
--		priv->use_dma = 1;
- 		priv->use_dma_flag = 1;
- 		dev_info(priv->port.dev, "PCH UART : Use DMA Mode\n");
-+		if (!priv->use_dma)
-+			pch_request_dma(port);
-+		priv->use_dma = 1;
- 	}
- 
- 	return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0027-drivers-tty-amiserial.c-add-missing-tty_unlock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0027-drivers-tty-amiserial.c-add-missing-tty_unlock.patch
deleted file mode 100644
index 4b935aa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0027-drivers-tty-amiserial.c-add-missing-tty_unlock.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From fefc2c6916651c05eed1882c3a59a6468d91e417 Mon Sep 17 00:00:00 2001
-From: Julia Lawall <Julia.Lawall at lip6.fr>
-Date: Thu, 19 Apr 2012 18:12:40 +0200
-Subject: [PATCH 027/165] drivers/tty/amiserial.c: add missing tty_unlock
-
-commit d3a7b83f865b46bb7b5e1ed18a129ce1af349db4 upstream.
-
-tty_unlock is used on all other exits from the function.
-
-Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>
-Acked-by: Jiri Slaby <jslaby at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/amiserial.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/tty/amiserial.c b/drivers/tty/amiserial.c
-index b84c834..8daf073 100644
---- a/drivers/tty/amiserial.c
-+++ b/drivers/tty/amiserial.c
-@@ -1113,8 +1113,10 @@ static int set_serial_info(struct async_struct * info,
- 		    (new_serial.close_delay != state->close_delay) ||
- 		    (new_serial.xmit_fifo_size != state->xmit_fifo_size) ||
- 		    ((new_serial.flags & ~ASYNC_USR_MASK) !=
--		     (state->flags & ~ASYNC_USR_MASK)))
-+		     (state->flags & ~ASYNC_USR_MASK))) {
-+			tty_unlock();
- 			return -EPERM;
-+		}
- 		state->flags = ((state->flags & ~ASYNC_USR_MASK) |
- 			       (new_serial.flags & ASYNC_USR_MASK));
- 		info->flags = ((info->flags & ~ASYNC_USR_MASK) |
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0028-USB-sierra-avoid-QMI-wwan-interface-on-MC77xx.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0028-USB-sierra-avoid-QMI-wwan-interface-on-MC77xx.patch
deleted file mode 100644
index 2158fa8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0028-USB-sierra-avoid-QMI-wwan-interface-on-MC77xx.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 769a100618c82ac6e8e284cc14a5fbffe13e31ce Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Tue, 17 Apr 2012 21:37:29 +0200
-Subject: [PATCH 028/165] USB: sierra: avoid QMI/wwan interface on MC77xx
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 749541d19e70905e3971f2a08335a206a98e4d0c upstream.
-
-These devices have a number of non serial interfaces as well.  Use
-the existing "Direct IP" blacklist to prevent binding to interfaces
-which are handled by other drivers.
-
-We also extend the "Direct IP" blacklist with with interfaces only
-seen in "QMI" mode, assuming that these devices use the same
-interface numbers for serial interfaces both in "Direct IP" and in
-"QMI" mode.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/sierra.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
-index 7c3ec9e..e093585 100644
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -221,7 +221,7 @@ static const struct sierra_iface_info typeB_interface_list = {
- };
- 
- /* 'blacklist' of interfaces not served by this driver */
--static const u8 direct_ip_non_serial_ifaces[] = { 7, 8, 9, 10, 11 };
-+static const u8 direct_ip_non_serial_ifaces[] = { 7, 8, 9, 10, 11, 19, 20 };
- static const struct sierra_iface_info direct_ip_interface_blacklist = {
- 	.infolen = ARRAY_SIZE(direct_ip_non_serial_ifaces),
- 	.ifaceinfo = direct_ip_non_serial_ifaces,
-@@ -289,7 +289,6 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x1199, 0x6856) },	/* Sierra Wireless AirCard 881 U */
- 	{ USB_DEVICE(0x1199, 0x6859) },	/* Sierra Wireless AirCard 885 E */
- 	{ USB_DEVICE(0x1199, 0x685A) },	/* Sierra Wireless AirCard 885 E */
--	{ USB_DEVICE(0x1199, 0x68A2) }, /* Sierra Wireless MC7710 */
- 	/* Sierra Wireless C885 */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6880, 0xFF, 0xFF, 0xFF)},
- 	/* Sierra Wireless C888, Air Card 501, USB 303, USB 304 */
-@@ -299,6 +298,9 @@ static const struct usb_device_id id_table[] = {
- 	/* Sierra Wireless HSPA Non-Composite Device */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(0x1199, 0x6892, 0xFF, 0xFF, 0xFF)},
- 	{ USB_DEVICE(0x1199, 0x6893) },	/* Sierra Wireless Device */
-+	{ USB_DEVICE(0x1199, 0x68A2),   /* Sierra Wireless MC77xx in QMI mode */
-+	  .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
-+	},
- 	{ USB_DEVICE(0x1199, 0x68A3), 	/* Sierra Wireless Direct IP modems */
- 	  .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
- 	},
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch
deleted file mode 100644
index ca463cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 611589daeef0bd0f6b36f1fbb17f34b6abf05568 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Tue, 17 Apr 2012 15:24:15 -0400
-Subject: [PATCH 029/165] EHCI: fix criterion for resuming the root hub
-
-commit dc75ce9d929aabeb0843a6b1a4ab320e58ba1597 upstream.
-
-This patch (as1542) changes the criterion ehci-hcd uses to tell when
-it needs to resume the controller's root hub.  A resume is needed when
-a port status change is detected, obviously, but only if the root hub
-is currently suspended.
-
-Right now the driver tests whether the root hub is running, and that
-is not the correct test.  In particular, if the controller has died
-then the root hub should not be restarted.  In addition, some buggy
-hardware occasionally requires the root hub to be running and
-sending out SOF packets even while it is nominally supposed to be
-suspended.
-
-In the end, the test needs to be changed.  Rather than checking whether
-the root hub is currently running, the driver will now check whether
-the root hub is currently suspended.  This will yield the correct
-behavior in all cases.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-CC: Peter Chen <B29397 at freescale.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/ehci-hcd.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
-index 3ff9f82..ffbbf54 100644
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -867,7 +867,7 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
- 		pcd_status = status;
- 
- 		/* resume root hub? */
--		if (!(cmd & CMD_RUN))
-+		if (ehci->rh_state == EHCI_RH_SUSPENDED)
- 			usb_hcd_resume_root_hub(hcd);
- 
- 		/* get per-port change detect bits */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0030-EHCI-always-clear-the-STS_FLR-status-bit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0030-EHCI-always-clear-the-STS_FLR-status-bit.patch
deleted file mode 100644
index 3775ae0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0030-EHCI-always-clear-the-STS_FLR-status-bit.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 2259a159b9b3861dcc0c8cd9c52ef85cb11ad2a5 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Wed, 18 Apr 2012 11:33:00 -0400
-Subject: [PATCH 030/165] EHCI: always clear the STS_FLR status bit
-
-commit 2fbe2bf1fd37f9d99950bd8d8093623cf22cf08b upstream.
-
-This patch (as1544) fixes a problem affecting some EHCI controllers.
-They can generate interrupts whenever the STS_FLR status bit is turned
-on, even though that bit is masked out in the Interrupt Enable
-register.
-
-Since the driver doesn't use STS_FLR anyway, the patch changes the
-interrupt routine to clear that bit whenever it is set, rather than
-leaving it alone.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Reported-and-tested-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/ehci-hcd.c |    7 ++++++-
- 1 files changed, 6 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
-index ffbbf54..da2f711 100644
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -815,8 +815,13 @@ static irqreturn_t ehci_irq (struct usb_hcd *hcd)
- 		goto dead;
- 	}
- 
-+	/*
-+	 * We don't use STS_FLR, but some controllers don't like it to
-+	 * remain on, so mask it out along with the other status bits.
-+	 */
-+	masked_status = status & (INTR_MASK | STS_FLR);
-+
- 	/* Shared IRQ? */
--	masked_status = status & INTR_MASK;
- 	if (!masked_status || unlikely(ehci->rh_state == EHCI_RH_HALTED)) {
- 		spin_unlock(&ehci->lock);
- 		return IRQ_NONE;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0031-USB-fix-deadlock-in-bConfigurationValue-attribute-me.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0031-USB-fix-deadlock-in-bConfigurationValue-attribute-me.patch
deleted file mode 100644
index 629cb81..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0031-USB-fix-deadlock-in-bConfigurationValue-attribute-me.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 770feb782844457789a51d13d2933cca141bb487 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Tue, 17 Apr 2012 15:22:39 -0400
-Subject: [PATCH 031/165] USB: fix deadlock in bConfigurationValue attribute
- method
-
-commit 8963c487a80b4688c9e68dcc504a90074aacc145 upstream.
-
-This patch (as154) fixes a self-deadlock that occurs when userspace
-writes to the bConfigurationValue sysfs attribute for a hub with
-children.  The task tries to lock the bandwidth_mutex at a time when
-it already owns the lock:
-
-	The attribute's method calls usb_set_configuration(),
-	which calls usb_disable_device() with the bandwidth_mutex
-	held.
-
-	usb_disable_device() unregisters the existing interfaces,
-	which causes the hub driver to be unbound.
-
-	The hub_disconnect() routine calls hub_quiesce(), which
-	calls usb_disconnect() for each of the hub's children.
-
-	usb_disconnect() attempts to acquire the bandwidth_mutex
-	around a call to usb_disable_device().
-
-The solution is to make usb_disable_device() acquire the mutex for
-itself instead of requiring the caller to hold it.  Then the mutex can
-cover only the bandwidth deallocation operation and not the region
-where the interfaces are unregistered.
-
-This has the potential to change system behavior slightly when a
-config change races with another config or altsetting change.  Some of
-the bandwidth released from the old config might get claimed by the
-other config or altsetting, make it impossible to restore the old
-config in case of a failure.  But since we don't try to recover from
-config-change failures anyway, this doesn't matter.
-
-[This should be marked for stable kernels that contain the commit
-fccf4e86200b8f5edd9a65da26f150e32ba79808 "USB: Free bandwidth when
-usb_disable_device is called."
-That commit was marked for stable kernels as old as 2.6.32.]
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/hub.c     |    3 ---
- drivers/usb/core/message.c |    6 +++---
- 2 files changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 18373ec..ab4e49f 100644
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -1644,7 +1644,6 @@ void usb_disconnect(struct usb_device **pdev)
- {
- 	struct usb_device	*udev = *pdev;
- 	int			i;
--	struct usb_hcd		*hcd = bus_to_hcd(udev->bus);
- 
- 	/* mark the device as inactive, so any further urb submissions for
- 	 * this device (and any of its children) will fail immediately.
-@@ -1667,9 +1666,7 @@ void usb_disconnect(struct usb_device **pdev)
- 	 * so that the hardware is now fully quiesced.
- 	 */
- 	dev_dbg (&udev->dev, "unregistering device\n");
--	mutex_lock(hcd->bandwidth_mutex);
- 	usb_disable_device(udev, 0);
--	mutex_unlock(hcd->bandwidth_mutex);
- 	usb_hcd_synchronize_unlinks(udev);
- 
- 	usb_remove_ep_devs(&udev->ep0);
-diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
-index aed3e07..ca717da 100644
---- a/drivers/usb/core/message.c
-+++ b/drivers/usb/core/message.c
-@@ -1136,8 +1136,6 @@ void usb_disable_interface(struct usb_device *dev, struct usb_interface *intf,
-  * Deallocates hcd/hardware state for the endpoints (nuking all or most
-  * pending urbs) and usbcore state for the interfaces, so that usbcore
-  * must usb_set_configuration() before any interfaces could be used.
-- *
-- * Must be called with hcd->bandwidth_mutex held.
-  */
- void usb_disable_device(struct usb_device *dev, int skip_ep0)
- {
-@@ -1190,7 +1188,9 @@ void usb_disable_device(struct usb_device *dev, int skip_ep0)
- 			usb_disable_endpoint(dev, i + USB_DIR_IN, false);
- 		}
- 		/* Remove endpoints from the host controller internal state */
-+		mutex_lock(hcd->bandwidth_mutex);
- 		usb_hcd_alloc_bandwidth(dev, NULL, NULL, NULL);
-+		mutex_unlock(hcd->bandwidth_mutex);
- 		/* Second pass: remove endpoint pointers */
- 	}
- 	for (i = skip_ep0; i < 16; ++i) {
-@@ -1750,7 +1750,6 @@ free_interfaces:
- 	/* if it's already configured, clear out old state first.
- 	 * getting rid of old interfaces means unbinding their drivers.
- 	 */
--	mutex_lock(hcd->bandwidth_mutex);
- 	if (dev->state != USB_STATE_ADDRESS)
- 		usb_disable_device(dev, 1);	/* Skip ep0 */
- 
-@@ -1763,6 +1762,7 @@ free_interfaces:
- 	 * host controller will not allow submissions to dropped endpoints.  If
- 	 * this call fails, the device state is unchanged.
- 	 */
-+	mutex_lock(hcd->bandwidth_mutex);
- 	ret = usb_hcd_alloc_bandwidth(dev, cp, NULL, NULL);
- 	if (ret < 0) {
- 		mutex_unlock(hcd->bandwidth_mutex);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0032-usb-gadget-eliminate-NULL-pointer-dereference-bugfix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0032-usb-gadget-eliminate-NULL-pointer-dereference-bugfix.patch
deleted file mode 100644
index 5d5852d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0032-usb-gadget-eliminate-NULL-pointer-dereference-bugfix.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From fadd4263bca7146d233ff944c17cb0f42a6e2112 Mon Sep 17 00:00:00 2001
-From: Andrzej Pietrasiewicz <andrzej.p at samsung.com>
-Date: Wed, 28 Mar 2012 09:30:50 +0200
-Subject: [PATCH 032/165] usb: gadget: eliminate NULL pointer dereference
- (bugfix)
-
-commit 92b0abf80c5c5f0e0d71d1309688a330fd74731b upstream.
-
-usb: gadget: eliminate NULL pointer dereference (bugfix)
-
-This patch fixes a bug which causes NULL pointer dereference in
-ffs_ep0_ioctl. The bug happens when the FunctionFS is not bound (either
-has not been bound yet or has been bound and then unbound) and can be
-reproduced with running the following commands:
-
-$ insmod g_ffs.ko
-$ mount -t functionfs func /dev/usbgadget
-$ ./null
-
-where null.c is:
-
-#include <fcntl.h>
-#include <linux/usb/functionfs.h>
-
-int main(void)
-{
-	int fd = open("/dev/usbgadget/ep0", O_RDWR);
-	ioctl(fd, FUNCTIONFS_CLEAR_HALT);
-
-	return 0;
-}
-
-Signed-off-by: Andrzej Pietrasiewicz <andrzej.p at samsung.com>
-Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/gadget/f_fs.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/gadget/f_fs.c b/drivers/usb/gadget/f_fs.c
-index acb3800..0e641a1 100644
---- a/drivers/usb/gadget/f_fs.c
-+++ b/drivers/usb/gadget/f_fs.c
-@@ -712,7 +712,7 @@ static long ffs_ep0_ioctl(struct file *file, unsigned code, unsigned long value)
- 	if (code == FUNCTIONFS_INTERFACE_REVMAP) {
- 		struct ffs_function *func = ffs->func;
- 		ret = func ? ffs_func_revmap_intf(func, value) : -ENODEV;
--	} else if (gadget->ops->ioctl) {
-+	} else if (gadget && gadget->ops->ioctl) {
- 		ret = gadget->ops->ioctl(gadget, code, value);
- 	} else {
- 		ret = -ENOTTY;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0033-usb-musb-omap-fix-crash-when-musb-glue-omap-gets-ini.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0033-usb-musb-omap-fix-crash-when-musb-glue-omap-gets-ini.patch
deleted file mode 100644
index f8fdb7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0033-usb-musb-omap-fix-crash-when-musb-glue-omap-gets-ini.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 839226b88ef2954d750d72f3ce2c6657393b8a09 Mon Sep 17 00:00:00 2001
-From: Kishon Vijay Abraham I <kishon at ti.com>
-Date: Wed, 21 Mar 2012 21:30:20 +0530
-Subject: [PATCH 033/165] usb: musb: omap: fix crash when musb glue (omap)
- gets initialized
-
-commit 3006dc8c627d738693e910c159630e4368c9e86c upstream.
-
-pm_runtime_enable is being called after omap2430_musb_init. Hence
-pm_runtime_get_sync in omap2430_musb_init does not have any effect (does
-not enable clocks) resulting in a crash during register access. It is
-fixed here.
-
-Signed-off-by: Kishon Vijay Abraham I <kishon at ti.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/musb/omap2430.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
-index dd907d5..bd93e9f 100644
---- a/drivers/usb/musb/omap2430.c
-+++ b/drivers/usb/musb/omap2430.c
-@@ -463,14 +463,14 @@ static int __init omap2430_probe(struct platform_device *pdev)
- 		goto err2;
- 	}
- 
-+	pm_runtime_enable(&pdev->dev);
-+
- 	ret = platform_device_add(musb);
- 	if (ret) {
- 		dev_err(&pdev->dev, "failed to register musb device\n");
- 		goto err2;
- 	}
- 
--	pm_runtime_enable(&pdev->dev);
--
- 	return 0;
- 
- err2:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0034-usb-musb-omap-fix-the-error-check-for-pm_runtime_get.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0034-usb-musb-omap-fix-the-error-check-for-pm_runtime_get.patch
deleted file mode 100644
index 035b000..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0034-usb-musb-omap-fix-the-error-check-for-pm_runtime_get.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 150f1a9111e30cc70efdac57e72af7d537754099 Mon Sep 17 00:00:00 2001
-From: Shubhrajyoti D <shubhrajyoti at ti.com>
-Date: Thu, 22 Mar 2012 12:48:06 +0530
-Subject: [PATCH 034/165] usb: musb: omap: fix the error check for
- pm_runtime_get_sync
-
-commit ad579699c4f0274bf522a9252ff9b20c72197e48 upstream.
-
-pm_runtime_get_sync returns a signed integer. In case of errors
-it returns a negative value. This patch fixes the error check
-by making it signed instead of unsigned thus preventing register
-access if get_sync_fails. Also passes the error cause to the
-debug message.
-
-Cc:  Kishon Vijay Abraham I <kishon at ti.com>
-Signed-off-by: Shubhrajyoti D <shubhrajyoti at ti.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/musb/omap2430.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/musb/omap2430.c b/drivers/usb/musb/omap2430.c
-index bd93e9f..522ac37 100644
---- a/drivers/usb/musb/omap2430.c
-+++ b/drivers/usb/musb/omap2430.c
-@@ -283,7 +283,8 @@ static void musb_otg_notifier_work(struct work_struct *data_notifier_work)
- 
- static int omap2430_musb_init(struct musb *musb)
- {
--	u32 l, status = 0;
-+	u32 l;
-+	int status = 0;
- 	struct device *dev = musb->controller;
- 	struct musb_hdrc_platform_data *plat = dev->platform_data;
- 	struct omap_musb_board_data *data = plat->board_data;
-@@ -302,7 +303,7 @@ static int omap2430_musb_init(struct musb *musb)
- 
- 	status = pm_runtime_get_sync(dev);
- 	if (status < 0) {
--		dev_err(dev, "pm_runtime_get_sync FAILED");
-+		dev_err(dev, "pm_runtime_get_sync FAILED %d\n", status);
- 		goto err1;
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0035-PCI-Add-quirk-for-still-enabled-interrupts-on-Intel-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0035-PCI-Add-quirk-for-still-enabled-interrupts-on-Intel-.patch
deleted file mode 100644
index 5fc8b64..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0035-PCI-Add-quirk-for-still-enabled-interrupts-on-Intel-.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 9a9c948f1f3fdf421e090b10dc1fe15308d325d0 Mon Sep 17 00:00:00 2001
-From: Thomas Jarosch <thomas.jarosch at intra2net.com>
-Date: Wed, 7 Dec 2011 22:08:11 +0100
-Subject: [PATCH 035/165] PCI: Add quirk for still enabled interrupts on Intel
- Sandy Bridge GPUs
-
-commit f67fd55fa96f7d7295b43ffbc4a97d8f55e473aa upstream.
-
-Some BIOS implementations leave the Intel GPU interrupts enabled,
-even though no one is handling them (f.e. i915 driver is never loaded).
-Additionally the interrupt destination is not set up properly
-and the interrupt ends up -somewhere-.
-
-These spurious interrupts are "sticky" and the kernel disables
-the (shared) interrupt line after 100.000+ generated interrupts.
-
-Fix it by disabling the still enabled interrupts.
-This resolves crashes often seen on monitor unplug.
-
-Tested on the following boards:
-- Intel DH61CR: Affected
-- Intel DH67BL: Affected
-- Intel S1200KP server board: Affected
-- Asus P8H61-M LE: Affected, but system does not crash.
-  Probably the IRQ ends up somewhere unnoticed.
-
-According to reports on the net, the Intel DH61WW board is also affected.
-
-Many thanks to Jesse Barnes from Intel for helping
-with the register configuration and to Intel in general
-for providing public hardware documentation.
-
-Signed-off-by: Thomas Jarosch <thomas.jarosch at intra2net.com>
-Tested-by: Charlie Suffin <charlie.suffin at stratus.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/pci/quirks.c |   34 ++++++++++++++++++++++++++++++++++
- 1 files changed, 34 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 6476547..78fda9c 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -2906,6 +2906,40 @@ DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f8, quirk_intel_mc_errata);
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65f9, quirk_intel_mc_errata);
- DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x65fa, quirk_intel_mc_errata);
- 
-+/*
-+ * Some BIOS implementations leave the Intel GPU interrupts enabled,
-+ * even though no one is handling them (f.e. i915 driver is never loaded).
-+ * Additionally the interrupt destination is not set up properly
-+ * and the interrupt ends up -somewhere-.
-+ *
-+ * These spurious interrupts are "sticky" and the kernel disables
-+ * the (shared) interrupt line after 100.000+ generated interrupts.
-+ *
-+ * Fix it by disabling the still enabled interrupts.
-+ * This resolves crashes often seen on monitor unplug.
-+ */
-+#define I915_DEIER_REG 0x4400c
-+static void __devinit disable_igfx_irq(struct pci_dev *dev)
-+{
-+	void __iomem *regs = pci_iomap(dev, 0, 0);
-+	if (regs == NULL) {
-+		dev_warn(&dev->dev, "igfx quirk: Can't iomap PCI device\n");
-+		return;
-+	}
-+
-+	/* Check if any interrupt line is still enabled */
-+	if (readl(regs + I915_DEIER_REG) != 0) {
-+		dev_warn(&dev->dev, "BIOS left Intel GPU interrupts enabled; "
-+			"disabling\n");
-+
-+		writel(0, regs + I915_DEIER_REG);
-+	}
-+
-+	pci_iounmap(dev, regs);
-+}
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq);
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
-+
- static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
- 			  struct pci_fixup *end)
- {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0036-ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0036-ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
deleted file mode 100644
index a2dfb9d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0036-ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7ae05a044d79254f47ba9cb8772f5c3137a9d17d Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Thu, 12 Apr 2012 20:32:25 -0400
-Subject: [PATCH 036/165] ext4: fix endianness breakage in
- ext4_split_extent_at()
-
-commit af1584f570b19b0285e4402a0b54731495d31784 upstream.
-
-->ee_len is __le16, so assigning cpu_to_le32() to it is going to do
-Bad Things(tm) on big-endian hosts...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/extents.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c
-index c2a2012..54f2bdc 100644
---- a/fs/ext4/extents.c
-+++ b/fs/ext4/extents.c
-@@ -2812,7 +2812,7 @@ static int ext4_split_extent_at(handle_t *handle,
- 		if (err)
- 			goto fix_extent_len;
- 		/* update the extent length and mark as initialized */
--		ex->ee_len = cpu_to_le32(ee_len);
-+		ex->ee_len = cpu_to_le16(ee_len);
- 		ext4_ext_try_to_merge(inode, path, ex);
- 		err = ext4_ext_dirty(handle, inode, path + depth);
- 		goto out;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0037-KVM-unmap-pages-from-the-iommu-when-slots-are-remove.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0037-KVM-unmap-pages-from-the-iommu-when-slots-are-remove.patch
deleted file mode 100644
index 937853c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0037-KVM-unmap-pages-from-the-iommu-when-slots-are-remove.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From f6b20107e527f8d57ec7c2c745109f4609d68abf Mon Sep 17 00:00:00 2001
-From: Alex Williamson <alex.williamson at redhat.com>
-Date: Fri, 27 Apr 2012 16:54:08 -0500
-Subject: [PATCH 037/165] KVM: unmap pages from the iommu when slots are
- removed
-
-commit 32f6daad4651a748a58a3ab6da0611862175722f upstream.
-
-We've been adding new mappings, but not destroying old mappings.
-This can lead to a page leak as pages are pinned using
-get_user_pages, but only unpinned with put_page if they still
-exist in the memslots list on vm shutdown.  A memslot that is
-destroyed while an iommu domain is enabled for the guest will
-therefore result in an elevated page reference count that is
-never cleared.
-
-Additionally, without this fix, the iommu is only programmed
-with the first translation for a gpa.  This can result in
-peer-to-peer errors if a mapping is destroyed and replaced by a
-new mapping at the same gpa as the iommu will still be pointing
-to the original, pinned memory address.
-
-Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/kvm_host.h |    6 ++++++
- virt/kvm/iommu.c         |   12 ++++++++----
- virt/kvm/kvm_main.c      |    5 +++--
- 3 files changed, 17 insertions(+), 6 deletions(-)
-
-diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
-index d526231..35410ef 100644
---- a/include/linux/kvm_host.h
-+++ b/include/linux/kvm_host.h
-@@ -562,6 +562,7 @@ void kvm_free_irq_source_id(struct kvm *kvm, int irq_source_id);
- 
- #ifdef CONFIG_IOMMU_API
- int kvm_iommu_map_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
-+void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot);
- int kvm_iommu_map_guest(struct kvm *kvm);
- int kvm_iommu_unmap_guest(struct kvm *kvm);
- int kvm_assign_device(struct kvm *kvm,
-@@ -575,6 +576,11 @@ static inline int kvm_iommu_map_pages(struct kvm *kvm,
- 	return 0;
- }
- 
-+static inline void kvm_iommu_unmap_pages(struct kvm *kvm,
-+					 struct kvm_memory_slot *slot)
-+{
-+}
-+
- static inline int kvm_iommu_map_guest(struct kvm *kvm)
- {
- 	return -ENODEV;
-diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
-index a195c07..fd817a2 100644
---- a/virt/kvm/iommu.c
-+++ b/virt/kvm/iommu.c
-@@ -309,6 +309,11 @@ static void kvm_iommu_put_pages(struct kvm *kvm,
- 	}
- }
- 
-+void kvm_iommu_unmap_pages(struct kvm *kvm, struct kvm_memory_slot *slot)
-+{
-+	kvm_iommu_put_pages(kvm, slot->base_gfn, slot->npages);
-+}
-+
- static int kvm_iommu_unmap_memslots(struct kvm *kvm)
- {
- 	int i, idx;
-@@ -317,10 +322,9 @@ static int kvm_iommu_unmap_memslots(struct kvm *kvm)
- 	idx = srcu_read_lock(&kvm->srcu);
- 	slots = kvm_memslots(kvm);
- 
--	for (i = 0; i < slots->nmemslots; i++) {
--		kvm_iommu_put_pages(kvm, slots->memslots[i].base_gfn,
--				    slots->memslots[i].npages);
--	}
-+	for (i = 0; i < slots->nmemslots; i++)
-+		kvm_iommu_unmap_pages(kvm, &slots->memslots[i]);
-+
- 	srcu_read_unlock(&kvm->srcu, idx);
- 
- 	return 0;
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index d9cfb78..e401c1b 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -802,12 +802,13 @@ skip_lpage:
- 	if (r)
- 		goto out_free;
- 
--	/* map the pages in iommu page table */
-+	/* map/unmap the pages in iommu page table */
- 	if (npages) {
- 		r = kvm_iommu_map_pages(kvm, &new);
- 		if (r)
- 			goto out_free;
--	}
-+	} else
-+		kvm_iommu_unmap_pages(kvm, &old);
- 
- 	r = -ENOMEM;
- 	slots = kzalloc(sizeof(struct kvm_memslots), GFP_KERNEL);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0038-dell-laptop-add-3-machines-that-has-touchpad-LED.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0038-dell-laptop-add-3-machines-that-has-touchpad-LED.patch
deleted file mode 100644
index 4955043..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0038-dell-laptop-add-3-machines-that-has-touchpad-LED.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From bbfc688f2500196757c1d7334d25e335308798c5 Mon Sep 17 00:00:00 2001
-From: AceLan Kao <acelan.kao at canonical.com>
-Date: Thu, 17 Nov 2011 15:30:42 +0800
-Subject: [PATCH 038/165] dell-laptop: add 3 machines that has touchpad LED
-
-commit 2a748853ca395c48ea75baa250f7cea6f0f23dbf upstream.
-
-Add "Vostro 3555", "Inspiron N311z", and "Inspiron M5110" into quirks,
-so that they could have touchpad LED function work.
-
-Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/dell-laptop.c |   27 +++++++++++++++++++++++++++
- 1 files changed, 27 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
-index d93e962..7621ac2 100644
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -184,6 +184,33 @@ static struct dmi_system_id __devinitdata dell_quirks[] = {
- 		},
- 		.driver_data = &quirk_dell_vostro_v130,
- 	},
-+	{
-+		.callback = dmi_matched,
-+		.ident = "Dell Vostro 3555",
-+		.matches = {
-+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Vostro 3555"),
-+		},
-+		.driver_data = &quirk_dell_vostro_v130,
-+	},
-+	{
-+		.callback = dmi_matched,
-+		.ident = "Dell Inspiron N311z",
-+		.matches = {
-+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron N311z"),
-+		},
-+		.driver_data = &quirk_dell_vostro_v130,
-+	},
-+	{
-+		.callback = dmi_matched,
-+		.ident = "Dell Inspiron M5110",
-+		.matches = {
-+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Inspiron M5110"),
-+		},
-+		.driver_data = &quirk_dell_vostro_v130,
-+	},
- };
- 
- static struct calling_interface_buffer *buffer;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0039-dell-laptop-touchpad-LED-should-persist-its-status-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0039-dell-laptop-touchpad-LED-should-persist-its-status-a.patch
deleted file mode 100644
index 7c8a194..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0039-dell-laptop-touchpad-LED-should-persist-its-status-a.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7a2e5d46e7959528fb4a7b45fc3ca55339a2445f Mon Sep 17 00:00:00 2001
-From: AceLan Kao <acelan.kao at canonical.com>
-Date: Tue, 17 Jan 2012 16:18:06 +0800
-Subject: [PATCH 039/165] dell-laptop: touchpad LED should persist its status
- after S3
-
-commit 2d5de9e84928e35b4d9b46b4d8d5dcaac1cff1fa upstream.
-
-Touchpad LED will not turn on after S3, it will make the touchpad status
-doesn't consist with the LED.
-By adding one flag to let the LED device restore it's status.
-
-Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/dell-laptop.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
-index 7621ac2..92e42d4 100644
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -642,6 +642,7 @@ static void touchpad_led_set(struct led_classdev *led_cdev,
- static struct led_classdev touchpad_led = {
- 	.name = "dell-laptop::touchpad",
- 	.brightness_set = touchpad_led_set,
-+	.flags = LED_CORE_SUSPENDRESUME,
- };
- 
- static int __devinit touchpad_led_init(struct device *dev)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0040-Bluetooth-Add-support-for-Atheros-04ca-3005.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0040-Bluetooth-Add-support-for-Atheros-04ca-3005.patch
deleted file mode 100644
index 3fe4be1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0040-Bluetooth-Add-support-for-Atheros-04ca-3005.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From cfa160178e6da132b537331ff5fc6f091a02e44a Mon Sep 17 00:00:00 2001
-From: AceLan Kao <acelan.kao at canonical.com>
-Date: Wed, 28 Mar 2012 10:25:36 +0800
-Subject: [PATCH 040/165] Bluetooth: Add support for Atheros [04ca:3005]
-
-commit 55ed7d4d1469eafbe3ad7e8fcd44f5af27845a81 upstream.
-
-Add another vendor specific ID for Atheros AR3012 device.
-This chip is wrapped by Lite-On Technology Corp.
-
-output of usb-devices:
-T:  Bus=04 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#=  2 Spd=12  MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=04ca ProdID=3005 Rev=00.02
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
-Signed-off-by: Gustavo Padovan <gustavo at padovan.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/ath3k.c |    2 ++
- drivers/bluetooth/btusb.c |    1 +
- 2 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index 003cd8d..99fefbd 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -73,6 +73,7 @@ static struct usb_device_id ath3k_table[] = {
- 	{ USB_DEVICE(0x0CF3, 0x3004) },
- 	{ USB_DEVICE(0x0CF3, 0x311D) },
- 	{ USB_DEVICE(0x13d3, 0x3375) },
-+	{ USB_DEVICE(0x04CA, 0x3005) },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xE02C) },
-@@ -91,6 +92,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
- 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
- 
- 	{ }	/* Terminating entry */
- };
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index db44ad5..e56da6a 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -129,6 +129,7 @@ static struct usb_device_id blacklist_table[] = {
- 	{ USB_DEVICE(0x0cf3, 0x3004), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0041-Don-t-limit-non-nested-epoll-paths.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0041-Don-t-limit-non-nested-epoll-paths.patch
deleted file mode 100644
index 0a59b94..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0041-Don-t-limit-non-nested-epoll-paths.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 53d02f37f9e87191afdb511e740fa506af1fe2fb Mon Sep 17 00:00:00 2001
-From: Jason Baron <jbaron at redhat.com>
-Date: Fri, 16 Mar 2012 16:34:03 -0400
-Subject: [PATCH 041/165] Don't limit non-nested epoll paths
-
-commit 93dc6107a76daed81c07f50215fa6ae77691634f upstream.
-
-Commit 28d82dc1c4ed ("epoll: limit paths") that I did to limit the
-number of possible wakeup paths in epoll is causing a few applications
-to longer work (dovecot for one).
-
-The original patch is really about limiting the amount of epoll nesting
-(since epoll fds can be attached to other fds). Thus, we probably can
-allow an unlimited number of paths of depth 1. My current patch limits
-it at 1000. And enforce the limits on paths that have a greater depth.
-
-This is captured in: https://bugzilla.redhat.com/show_bug.cgi?id=681578
-
-Signed-off-by: Jason Baron <jbaron at redhat.com>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/eventpoll.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index ea54cde..4d9d3a4 100644
---- a/fs/eventpoll.c
-+++ b/fs/eventpoll.c
-@@ -988,6 +988,10 @@ static int path_count[PATH_ARR_SIZE];
- 
- static int path_count_inc(int nests)
- {
-+	/* Allow an arbitrary number of depth 1 paths */
-+	if (nests == 0)
-+		return 0;
-+
- 	if (++path_count[nests] > path_limits[nests])
- 		return -1;
- 	return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0042-spi-Fix-device-unregistration-when-unregistering-the.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0042-spi-Fix-device-unregistration-when-unregistering-the.patch
deleted file mode 100644
index 54fbbfd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0042-spi-Fix-device-unregistration-when-unregistering-the.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e98347051c4edde97c0dfbc704660d9d0e4e0641 Mon Sep 17 00:00:00 2001
-From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Date: Mon, 12 Dec 2011 01:15:06 +0100
-Subject: [PATCH 042/165] spi: Fix device unregistration when unregistering
- the bus master
-
-commit 178db7d30f94707efca1a189753c105ef69942ed upstream.
-
-Device are added as children of the bus master's parent device, but
-spi_unregister_master() looks for devices to unregister in the bus
-master's children. This results in the child devices not being
-unregistered.
-
-Fix this by registering devices as direct children of the bus master.
-
-Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/spi/spi.c b/drivers/spi/spi.c
-index 77eae99..b2ccdea 100644
---- a/drivers/spi/spi.c
-+++ b/drivers/spi/spi.c
-@@ -319,7 +319,7 @@ struct spi_device *spi_alloc_device(struct spi_master *master)
- 	}
- 
- 	spi->master = master;
--	spi->dev.parent = dev;
-+	spi->dev.parent = &master->dev;
- 	spi->dev.bus = &spi_bus_type;
- 	spi->dev.release = spidev_release;
- 	device_initialize(&spi->dev);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0043-spi-mpc83xx-fix-NULL-pdata-dereference-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0043-spi-mpc83xx-fix-NULL-pdata-dereference-bug.patch
deleted file mode 100644
index c857700..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0043-spi-mpc83xx-fix-NULL-pdata-dereference-bug.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From bc5969d96482b42246a0143d3f36744c8d06c8cf Mon Sep 17 00:00:00 2001
-From: Kenth Eriksson <kenth.eriksson at transmode.com>
-Date: Fri, 30 Mar 2012 17:05:30 +0200
-Subject: [PATCH 043/165] spi/mpc83xx: fix NULL pdata dereference bug
-
-commit 5039a86973cd35bdb2f64d28ee12f13fe2bb5a4c upstream.
-
-Commit 178db7d3, "spi: Fix device unregistration when unregistering
-the bus master", changed device initialization to be children of the
-bus master, not children of the bus masters parent device. The pdata
-pointer used in fsl_spi_chipselect must updated to reflect the changed
-initialization.
-
-Signed-off-by: Kenth Eriksson <kenth.eriksson at transmode.com>
-Acked-by: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi-fsl-spi.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c
-index 24cacff..5f748c0 100644
---- a/drivers/spi/spi-fsl-spi.c
-+++ b/drivers/spi/spi-fsl-spi.c
-@@ -139,10 +139,12 @@ static void fsl_spi_change_mode(struct spi_device *spi)
- static void fsl_spi_chipselect(struct spi_device *spi, int value)
- {
- 	struct mpc8xxx_spi *mpc8xxx_spi = spi_master_get_devdata(spi->master);
--	struct fsl_spi_platform_data *pdata = spi->dev.parent->platform_data;
-+	struct fsl_spi_platform_data *pdata;
- 	bool pol = spi->mode & SPI_CS_HIGH;
- 	struct spi_mpc8xxx_cs	*cs = spi->controller_state;
- 
-+	pdata = spi->dev.parent->parent->platform_data;
-+
- 	if (value == BITBANG_CS_INACTIVE) {
- 		if (pdata->cs_control)
- 			pdata->cs_control(spi, !pol);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0044-rt2800-Add-support-for-the-Fujitsu-Stylistic-Q550.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0044-rt2800-Add-support-for-the-Fujitsu-Stylistic-Q550.patch
deleted file mode 100644
index cfced92..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0044-rt2800-Add-support-for-the-Fujitsu-Stylistic-Q550.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 81eef1db7c237ecc52f165049d7b128f081bc1f1 Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Mon, 19 Dec 2011 21:07:33 +0000
-Subject: [PATCH 044/165] rt2800: Add support for the Fujitsu Stylistic Q550
-
-commit 3ac44670ad0fca8b6c43b3e4d8494c67c419f494 upstream.
-
-Just another USB identifier.
-
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index cb71e88..c49b8bf 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -1161,6 +1161,8 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x7392, 0x7722) },
- 	/* Encore */
- 	{ USB_DEVICE(0x203d, 0x14a1) },
-+	/* Fujitsu Stylistic 550 */
-+	{ USB_DEVICE(0x1690, 0x0761) },
- 	/* Gemtek */
- 	{ USB_DEVICE(0x15a9, 0x0010) },
- 	/* Gigabyte */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0045-rt2x00-Identify-rt2800usb-chipsets.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0045-rt2x00-Identify-rt2800usb-chipsets.patch
deleted file mode 100644
index f29f428..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0045-rt2x00-Identify-rt2800usb-chipsets.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 5d35a9613dc2f1483a1b1c8327f7050299363dee Mon Sep 17 00:00:00 2001
-From: Gertjan van Wingerde <gwingerde at gmail.com>
-Date: Wed, 28 Dec 2011 01:53:18 +0100
-Subject: [PATCH 045/165] rt2x00: Identify rt2800usb chipsets.
-
-commit bc93eda7e903ff75cefcb6e247ed9b8e9f8e9783 upstream.
-
-According to the latest USB ID database these are all RT2770 / RT2870 / RT307x
-devices.
-
-Signed-off-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Acked-by: Ivo van Doorn <IvDoorn at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust context for previously cherry-picked
- commit d42a179b941a9e4cc6cf41d0f3cbadd75fc48a89 'rt2x00: Add support
- for D-Link DWA-127 to rt2800usb']
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |   26 ++++++++++++--------------
- 1 files changed, 12 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index c49b8bf..0ffa111 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -914,12 +914,14 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x050d, 0x8053) },
- 	{ USB_DEVICE(0x050d, 0x805c) },
- 	{ USB_DEVICE(0x050d, 0x815c) },
-+	{ USB_DEVICE(0x050d, 0x825a) },
- 	{ USB_DEVICE(0x050d, 0x825b) },
- 	{ USB_DEVICE(0x050d, 0x935a) },
- 	{ USB_DEVICE(0x050d, 0x935b) },
- 	/* Buffalo */
- 	{ USB_DEVICE(0x0411, 0x00e8) },
- 	{ USB_DEVICE(0x0411, 0x0158) },
-+	{ USB_DEVICE(0x0411, 0x015d) },
- 	{ USB_DEVICE(0x0411, 0x016f) },
- 	{ USB_DEVICE(0x0411, 0x01a2) },
- 	/* Corega */
-@@ -934,6 +936,8 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x07d1, 0x3c0e) },
- 	{ USB_DEVICE(0x07d1, 0x3c0f) },
- 	{ USB_DEVICE(0x07d1, 0x3c11) },
-+	{ USB_DEVICE(0x07d1, 0x3c13) },
-+	{ USB_DEVICE(0x07d1, 0x3c15) },
- 	{ USB_DEVICE(0x07d1, 0x3c16) },
- 	{ USB_DEVICE(0x2001, 0x3c1b) },
- 	/* Draytek */
-@@ -944,6 +948,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x7392, 0x7711) },
- 	{ USB_DEVICE(0x7392, 0x7717) },
- 	{ USB_DEVICE(0x7392, 0x7718) },
-+	{ USB_DEVICE(0x7392, 0x7722) },
- 	/* Encore */
- 	{ USB_DEVICE(0x203d, 0x1480) },
- 	{ USB_DEVICE(0x203d, 0x14a9) },
-@@ -978,6 +983,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x1737, 0x0070) },
- 	{ USB_DEVICE(0x1737, 0x0071) },
- 	{ USB_DEVICE(0x1737, 0x0077) },
-+	{ USB_DEVICE(0x1737, 0x0078) },
- 	/* Logitec */
- 	{ USB_DEVICE(0x0789, 0x0162) },
- 	{ USB_DEVICE(0x0789, 0x0163) },
-@@ -1001,9 +1007,13 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x0db0, 0x871b) },
- 	{ USB_DEVICE(0x0db0, 0x871c) },
- 	{ USB_DEVICE(0x0db0, 0x899a) },
-+	/* Ovislink */
-+	{ USB_DEVICE(0x1b75, 0x3071) },
-+	{ USB_DEVICE(0x1b75, 0x3072) },
- 	/* Para */
- 	{ USB_DEVICE(0x20b8, 0x8888) },
- 	/* Pegatron */
-+	{ USB_DEVICE(0x1d4d, 0x0002) },
- 	{ USB_DEVICE(0x1d4d, 0x000c) },
- 	{ USB_DEVICE(0x1d4d, 0x000e) },
- 	{ USB_DEVICE(0x1d4d, 0x0011) },
-@@ -1056,7 +1066,9 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* Sparklan */
- 	{ USB_DEVICE(0x15a9, 0x0006) },
- 	/* Sweex */
-+	{ USB_DEVICE(0x177f, 0x0153) },
- 	{ USB_DEVICE(0x177f, 0x0302) },
-+	{ USB_DEVICE(0x177f, 0x0313) },
- 	/* U-Media */
- 	{ USB_DEVICE(0x157e, 0x300e) },
- 	{ USB_DEVICE(0x157e, 0x3013) },
-@@ -1140,25 +1152,20 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x13d3, 0x3322) },
- 	/* Belkin */
- 	{ USB_DEVICE(0x050d, 0x1003) },
--	{ USB_DEVICE(0x050d, 0x825a) },
- 	/* Buffalo */
- 	{ USB_DEVICE(0x0411, 0x012e) },
- 	{ USB_DEVICE(0x0411, 0x0148) },
- 	{ USB_DEVICE(0x0411, 0x0150) },
--	{ USB_DEVICE(0x0411, 0x015d) },
- 	/* Corega */
- 	{ USB_DEVICE(0x07aa, 0x0041) },
- 	{ USB_DEVICE(0x07aa, 0x0042) },
- 	{ USB_DEVICE(0x18c5, 0x0008) },
- 	/* D-Link */
- 	{ USB_DEVICE(0x07d1, 0x3c0b) },
--	{ USB_DEVICE(0x07d1, 0x3c13) },
--	{ USB_DEVICE(0x07d1, 0x3c15) },
- 	{ USB_DEVICE(0x07d1, 0x3c17) },
- 	{ USB_DEVICE(0x2001, 0x3c17) },
- 	/* Edimax */
- 	{ USB_DEVICE(0x7392, 0x4085) },
--	{ USB_DEVICE(0x7392, 0x7722) },
- 	/* Encore */
- 	{ USB_DEVICE(0x203d, 0x14a1) },
- 	/* Fujitsu Stylistic 550 */
-@@ -1174,19 +1181,13 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* LevelOne */
- 	{ USB_DEVICE(0x1740, 0x0605) },
- 	{ USB_DEVICE(0x1740, 0x0615) },
--	/* Linksys */
--	{ USB_DEVICE(0x1737, 0x0078) },
- 	/* Logitec */
- 	{ USB_DEVICE(0x0789, 0x0168) },
- 	{ USB_DEVICE(0x0789, 0x0169) },
- 	/* Motorola */
- 	{ USB_DEVICE(0x100d, 0x9032) },
--	/* Ovislink */
--	{ USB_DEVICE(0x1b75, 0x3071) },
--	{ USB_DEVICE(0x1b75, 0x3072) },
- 	/* Pegatron */
- 	{ USB_DEVICE(0x05a6, 0x0101) },
--	{ USB_DEVICE(0x1d4d, 0x0002) },
- 	{ USB_DEVICE(0x1d4d, 0x0010) },
- 	/* Planex */
- 	{ USB_DEVICE(0x2019, 0x5201) },
-@@ -1205,9 +1206,6 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x083a, 0xc522) },
- 	{ USB_DEVICE(0x083a, 0xd522) },
- 	{ USB_DEVICE(0x083a, 0xf511) },
--	/* Sweex */
--	{ USB_DEVICE(0x177f, 0x0153) },
--	{ USB_DEVICE(0x177f, 0x0313) },
- 	/* Zyxel */
- 	{ USB_DEVICE(0x0586, 0x341a) },
- #endif
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0046-nfsd-fix-b0rken-error-value-for-setattr-on-read-only.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0046-nfsd-fix-b0rken-error-value-for-setattr-on-read-only.patch
deleted file mode 100644
index dd84974..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0046-nfsd-fix-b0rken-error-value-for-setattr-on-read-only.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 41e39c9a0a6aa1e152db9dfd4019e20a9de8dce6 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 27 Apr 2012 17:42:43 -0500
-Subject: [PATCH 046/165] nfsd: fix b0rken error value for setattr on
- read-only mount
-
-commit 96f6f98501196d46ce52c2697dd758d9300c63f5 upstream.
-
-..._want_write() returns -EROFS on failure, _not_ an NFS error value.
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfsd/nfs4proc.c |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
-index fa38336..35840aa 100644
---- a/fs/nfsd/nfs4proc.c
-+++ b/fs/nfsd/nfs4proc.c
-@@ -827,6 +827,7 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
- 	      struct nfsd4_setattr *setattr)
- {
- 	__be32 status = nfs_ok;
-+	int err;
- 
- 	if (setattr->sa_iattr.ia_valid & ATTR_SIZE) {
- 		nfs4_lock_state();
-@@ -838,9 +839,9 @@ nfsd4_setattr(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
- 			return status;
- 		}
- 	}
--	status = mnt_want_write(cstate->current_fh.fh_export->ex_path.mnt);
--	if (status)
--		return status;
-+	err = mnt_want_write(cstate->current_fh.fh_export->ex_path.mnt);
-+	if (err)
-+		return nfserrno(err);
- 	status = nfs_ok;
- 
- 	status = check_attr_support(rqstp, cstate, setattr->sa_bmval,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0047-nfsd-fix-error-values-returned-by-nfsd4_lockt-when-n.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0047-nfsd-fix-error-values-returned-by-nfsd4_lockt-when-n.patch
deleted file mode 100644
index ccb77cf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0047-nfsd-fix-error-values-returned-by-nfsd4_lockt-when-n.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From d0fb6592c02971a290d199c1e9ee06624fd17c1c Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 00:00:04 -0400
-Subject: [PATCH 047/165] nfsd: fix error values returned by nfsd4_lockt()
- when nfsd_open() fails
-
-commit 04da6e9d63427b2d0fd04766712200c250b3278f upstream.
-
-nfsd_open() already returns an NFS error value; only vfs_test_lock()
-result needs to be fed through nfserrno().  Broken by commit 55ef12
-(nfsd: Ensure nfsv4 calls the underlying filesystem on LOCKT)
-three years ago...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfsd/nfs4state.c |   23 +++++++++--------------
- 1 files changed, 9 insertions(+), 14 deletions(-)
-
-diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
-index 5abced7..4cfe260 100644
---- a/fs/nfsd/nfs4state.c
-+++ b/fs/nfsd/nfs4state.c
-@@ -4080,16 +4080,14 @@ out:
-  * vfs_test_lock.  (Arguably perhaps test_lock should be done with an
-  * inode operation.)
-  */
--static int nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock)
-+static __be32 nfsd_test_lock(struct svc_rqst *rqstp, struct svc_fh *fhp, struct file_lock *lock)
- {
- 	struct file *file;
--	int err;
--
--	err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_READ, &file);
--	if (err)
--		return err;
--	err = vfs_test_lock(file, lock);
--	nfsd_close(file);
-+	__be32 err = nfsd_open(rqstp, fhp, S_IFREG, NFSD_MAY_READ, &file);
-+	if (!err) {
-+		err = nfserrno(vfs_test_lock(file, lock));
-+		nfsd_close(file);
-+	}
- 	return err;
- }
- 
-@@ -4103,7 +4101,6 @@ nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
- 	struct inode *inode;
- 	struct file_lock file_lock;
- 	struct nfs4_lockowner *lo;
--	int error;
- 	__be32 status;
- 
- 	if (locks_in_grace())
-@@ -4149,12 +4146,10 @@ nfsd4_lockt(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
- 
- 	nfs4_transform_lock_offset(&file_lock);
- 
--	status = nfs_ok;
--	error = nfsd_test_lock(rqstp, &cstate->current_fh, &file_lock);
--	if (error) {
--		status = nfserrno(error);
-+	status = nfsd_test_lock(rqstp, &cstate->current_fh, &file_lock);
-+	if (status)
- 		goto out;
--	}
-+
- 	if (file_lock.fl_type != F_UNLCK) {
- 		status = nfserr_denied;
- 		nfs4_set_lock_denied(&file_lock, &lockt->lt_denied);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0048-nfsd-fix-endianness-breakage-in-TEST_STATEID-handlin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0048-nfsd-fix-endianness-breakage-in-TEST_STATEID-handlin.patch
deleted file mode 100644
index ce62319..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0048-nfsd-fix-endianness-breakage-in-TEST_STATEID-handlin.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c0326b2209aa31faeb2369d7311d0754d7b6d202 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 00:10:34 -0400
-Subject: [PATCH 048/165] nfsd: fix endianness breakage in TEST_STATEID
- handling
-
-commit 02f5fde5df0ea930e70f93763dd48beff182b208 upstream.
-
-->ts_id_status gets nfs errno, i.e. it's already big-endian; no need
-to apply htonl() to it.  Broken by commit 174568 (NFSD: Added TEST_STATEID
-operation) last year...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Cc: "J. Bruce Fields" <bfields at fieldses.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfsd/nfs4xdr.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
-index b6fa792..9cfa60a 100644
---- a/fs/nfsd/nfs4xdr.c
-+++ b/fs/nfsd/nfs4xdr.c
-@@ -3411,7 +3411,7 @@ nfsd4_encode_test_stateid(struct nfsd4_compoundres *resp, int nfserr,
- 		nfsd4_decode_stateid(argp, &si);
- 		valid = nfs4_validate_stateid(cl, &si);
- 		RESERVE_SPACE(4);
--		*p++ = htonl(valid);
-+		*p++ = valid;
- 		resp->p = p;
- 	}
- 	nfs4_unlock_state();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0049-nfsd-fix-compose_entry_fh-failure-exits.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0049-nfsd-fix-compose_entry_fh-failure-exits.patch
deleted file mode 100644
index 8294bc4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0049-nfsd-fix-compose_entry_fh-failure-exits.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 58c574420bacc1f5dc171dff6f0915ebc5749ee3 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 00:32:14 -0400
-Subject: [PATCH 049/165] nfsd: fix compose_entry_fh() failure exits
-
-commit efe39651f08813180f37dc508d950fc7d92b29a8 upstream.
-
-Restore the original logics ("fail on mountpoints, negatives and in
-case of fh_compose() failures").  Since commit 8177e (nfsd: clean up
-readdirplus encoding) that got broken -
-	rv = fh_compose(fhp, exp, dchild, &cd->fh);
-	if (rv)
-	       goto out;
-	if (!dchild->d_inode)
-		goto out;
-	rv = 0;
-out:
-is equivalent to
-	rv = fh_compose(fhp, exp, dchild, &cd->fh);
-out:
-and the second check has no effect whatsoever...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfsd/nfs3xdr.c |   22 ++++++++--------------
- 1 files changed, 8 insertions(+), 14 deletions(-)
-
-diff --git a/fs/nfsd/nfs3xdr.c b/fs/nfsd/nfs3xdr.c
-index 08c6e36..43f46cd 100644
---- a/fs/nfsd/nfs3xdr.c
-+++ b/fs/nfsd/nfs3xdr.c
-@@ -803,13 +803,13 @@ encode_entry_baggage(struct nfsd3_readdirres *cd, __be32 *p, const char *name,
- 	return p;
- }
- 
--static int
-+static __be32
- compose_entry_fh(struct nfsd3_readdirres *cd, struct svc_fh *fhp,
- 		const char *name, int namlen)
- {
- 	struct svc_export	*exp;
- 	struct dentry		*dparent, *dchild;
--	int rv = 0;
-+	__be32 rv = nfserr_noent;
- 
- 	dparent = cd->fh.fh_dentry;
- 	exp  = cd->fh.fh_export;
-@@ -817,26 +817,20 @@ compose_entry_fh(struct nfsd3_readdirres *cd, struct svc_fh *fhp,
- 	if (isdotent(name, namlen)) {
- 		if (namlen == 2) {
- 			dchild = dget_parent(dparent);
--			if (dchild == dparent) {
--				/* filesystem root - cannot return filehandle for ".." */
--				dput(dchild);
--				return -ENOENT;
--			}
-+			/* filesystem root - cannot return filehandle for ".." */
-+			if (dchild == dparent)
-+				goto out;
- 		} else
- 			dchild = dget(dparent);
- 	} else
- 		dchild = lookup_one_len(name, dparent, namlen);
- 	if (IS_ERR(dchild))
--		return -ENOENT;
--	rv = -ENOENT;
-+		return rv;
- 	if (d_mountpoint(dchild))
- 		goto out;
--	rv = fh_compose(fhp, exp, dchild, &cd->fh);
--	if (rv)
--		goto out;
- 	if (!dchild->d_inode)
- 		goto out;
--	rv = 0;
-+	rv = fh_compose(fhp, exp, dchild, &cd->fh);
- out:
- 	dput(dchild);
- 	return rv;
-@@ -845,7 +839,7 @@ out:
- static __be32 *encode_entryplus_baggage(struct nfsd3_readdirres *cd, __be32 *p, const char *name, int namlen)
- {
- 	struct svc_fh	fh;
--	int err;
-+	__be32 err;
- 
- 	fh_init(&fh, NFS3_FHSIZE);
- 	err = compose_entry_fh(cd, &fh, name, namlen);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0050-btrfs-btrfs_root_readonly-broken-on-big-endian.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0050-btrfs-btrfs_root_readonly-broken-on-big-endian.patch
deleted file mode 100644
index 939c880..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0050-btrfs-btrfs_root_readonly-broken-on-big-endian.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From f34178385ffae408ee0ade44819875816104a99a Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 11:49:04 -0400
-Subject: [PATCH 050/165] btrfs: btrfs_root_readonly() broken on big-endian
-
-commit 6ed3cf2cdfce4c9f1d73171bd3f27d9cb77b734e upstream.
-
-->root_flags is __le64 and all accesses to it go through the helpers
-that do proper conversions.  Except for btrfs_root_readonly(), which
-checks bit 0 as in host-endian...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/btrfs/ctree.h |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h
-index 6738503..83a871f 100644
---- a/fs/btrfs/ctree.h
-+++ b/fs/btrfs/ctree.h
-@@ -2025,7 +2025,7 @@ BTRFS_SETGET_STACK_FUNCS(root_last_snapshot, struct btrfs_root_item,
- 
- static inline bool btrfs_root_readonly(struct btrfs_root *root)
- {
--	return root->root_item.flags & BTRFS_ROOT_SUBVOL_RDONLY;
-+	return (root->root_item.flags & cpu_to_le64(BTRFS_ROOT_SUBVOL_RDONLY)) != 0;
- }
- 
- /* struct btrfs_root_backup */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0051-ocfs2-l_next_free_req-breakage-on-big-endian.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0051-ocfs2-l_next_free_req-breakage-on-big-endian.patch
deleted file mode 100644
index 75f2e65..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0051-ocfs2-l_next_free_req-breakage-on-big-endian.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e72fdd80481fa4848f1d90be6e8bcdc24db469f8 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 12:22:00 -0400
-Subject: [PATCH 051/165] ocfs2: ->l_next_free_req breakage on big-endian
-
-commit 3a251f04fe97c3d335b745c98e4b377e3c3899f2 upstream.
-
-It's le16, not le32...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ocfs2/alloc.c        |    2 +-
- fs/ocfs2/refcounttree.c |    4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
-index 3165aeb..31b9463 100644
---- a/fs/ocfs2/alloc.c
-+++ b/fs/ocfs2/alloc.c
-@@ -1134,7 +1134,7 @@ static int ocfs2_adjust_rightmost_branch(handle_t *handle,
- 	}
- 
- 	el = path_leaf_el(path);
--	rec = &el->l_recs[le32_to_cpu(el->l_next_free_rec) - 1];
-+	rec = &el->l_recs[le16_to_cpu(el->l_next_free_rec) - 1];
- 
- 	ocfs2_adjust_rightmost_records(handle, et, path, rec);
- 
-diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
-index cf78233..a7b7217 100644
---- a/fs/ocfs2/refcounttree.c
-+++ b/fs/ocfs2/refcounttree.c
-@@ -1036,14 +1036,14 @@ static int ocfs2_get_refcount_cpos_end(struct ocfs2_caching_info *ci,
- 
- 	tmp_el = left_path->p_node[subtree_root].el;
- 	blkno = left_path->p_node[subtree_root+1].bh->b_blocknr;
--	for (i = 0; i < le32_to_cpu(tmp_el->l_next_free_rec); i++) {
-+	for (i = 0; i < le16_to_cpu(tmp_el->l_next_free_rec); i++) {
- 		if (le64_to_cpu(tmp_el->l_recs[i].e_blkno) == blkno) {
- 			*cpos_end = le32_to_cpu(tmp_el->l_recs[i+1].e_cpos);
- 			break;
- 		}
- 	}
- 
--	BUG_ON(i == le32_to_cpu(tmp_el->l_next_free_rec));
-+	BUG_ON(i == le16_to_cpu(tmp_el->l_next_free_rec));
- 
- out:
- 	ocfs2_free_path(left_path);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0052-ocfs-rl_used-breakage-on-big-endian.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0052-ocfs-rl_used-breakage-on-big-endian.patch
deleted file mode 100644
index 872b422..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0052-ocfs-rl_used-breakage-on-big-endian.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 88f1278427aa9c75c6b4c7f59b160a9a29ae8f17 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 12:27:11 -0400
-Subject: [PATCH 052/165] ocfs: ->rl_used breakage on big-endian
-
-commit e1bf4cc620fd143766ddfcee3b004a1d1bb34fd0 upstream.
-
-it's le16, not le32 or le64...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ocfs2/refcounttree.c |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
-index a7b7217..bc90ebc 100644
---- a/fs/ocfs2/refcounttree.c
-+++ b/fs/ocfs2/refcounttree.c
-@@ -1468,7 +1468,7 @@ static int ocfs2_divide_leaf_refcount_block(struct buffer_head *ref_leaf_bh,
- 
- 	trace_ocfs2_divide_leaf_refcount_block(
- 		(unsigned long long)ref_leaf_bh->b_blocknr,
--		le32_to_cpu(rl->rl_count), le32_to_cpu(rl->rl_used));
-+		le32_to_cpu(rl->rl_count), le16_to_cpu(rl->rl_used));
- 
- 	/*
- 	 * XXX: Improvement later.
-@@ -2411,7 +2411,7 @@ static int ocfs2_calc_refcount_meta_credits(struct super_block *sb,
- 				rb = (struct ocfs2_refcount_block *)
- 							prev_bh->b_data;
- 
--				if (le64_to_cpu(rb->rf_records.rl_used) +
-+				if (le16_to_cpu(rb->rf_records.rl_used) +
- 				    recs_add >
- 				    le16_to_cpu(rb->rf_records.rl_count))
- 					ref_blocks++;
-@@ -2476,7 +2476,7 @@ static int ocfs2_calc_refcount_meta_credits(struct super_block *sb,
- 	if (prev_bh) {
- 		rb = (struct ocfs2_refcount_block *)prev_bh->b_data;
- 
--		if (le64_to_cpu(rb->rf_records.rl_used) + recs_add >
-+		if (le16_to_cpu(rb->rf_records.rl_used) + recs_add >
- 		    le16_to_cpu(rb->rf_records.rl_count))
- 			ref_blocks++;
- 
-@@ -3629,7 +3629,7 @@ int ocfs2_refcounted_xattr_delete_need(struct inode *inode,
- 			 * one will split a refcount rec, so totally we need
- 			 * clusters * 2 new refcount rec.
- 			 */
--			if (le64_to_cpu(rb->rf_records.rl_used) + clusters * 2 >
-+			if (le16_to_cpu(rb->rf_records.rl_used) + clusters * 2 >
- 			    le16_to_cpu(rb->rf_records.rl_count))
- 				ref_blocks++;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0053-ocfs2-rl_count-endianness-breakage.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0053-ocfs2-rl_count-endianness-breakage.patch
deleted file mode 100644
index d60dcb7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0053-ocfs2-rl_count-endianness-breakage.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From de962467d8b4d7cd0903b5151bc5fbde4f09552f Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 12:28:21 -0400
-Subject: [PATCH 053/165] ocfs2: ->rl_count endianness breakage
-
-commit 28748b325dc2d730ccc312830a91c4ae0c0d9379 upstream.
-
-le16, not le32...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ocfs2/refcounttree.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/ocfs2/refcounttree.c b/fs/ocfs2/refcounttree.c
-index bc90ebc..9f32d7c 100644
---- a/fs/ocfs2/refcounttree.c
-+++ b/fs/ocfs2/refcounttree.c
-@@ -1468,7 +1468,7 @@ static int ocfs2_divide_leaf_refcount_block(struct buffer_head *ref_leaf_bh,
- 
- 	trace_ocfs2_divide_leaf_refcount_block(
- 		(unsigned long long)ref_leaf_bh->b_blocknr,
--		le32_to_cpu(rl->rl_count), le16_to_cpu(rl->rl_used));
-+		le16_to_cpu(rl->rl_count), le16_to_cpu(rl->rl_used));
- 
- 	/*
- 	 * XXX: Improvement later.
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0054-ocfs2-e_leaf_clusters-endianness-breakage.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0054-ocfs2-e_leaf_clusters-endianness-breakage.patch
deleted file mode 100644
index d30eb97..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0054-ocfs2-e_leaf_clusters-endianness-breakage.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c38877f92a9e0858b5a4902440cef2c0df1b1632 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 12:30:02 -0400
-Subject: [PATCH 054/165] ocfs2: ->e_leaf_clusters endianness breakage
-
-commit 72094e43e3af5020510f920321d71f1798fa896d upstream.
-
-le16, not le32...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ocfs2/suballoc.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ocfs2/suballoc.c b/fs/ocfs2/suballoc.c
-index ba5d97e..f169da4 100644
---- a/fs/ocfs2/suballoc.c
-+++ b/fs/ocfs2/suballoc.c
-@@ -600,7 +600,7 @@ static void ocfs2_bg_alloc_cleanup(handle_t *handle,
- 		ret = ocfs2_free_clusters(handle, cluster_ac->ac_inode,
- 					  cluster_ac->ac_bh,
- 					  le64_to_cpu(rec->e_blkno),
--					  le32_to_cpu(rec->e_leaf_clusters));
-+					  le16_to_cpu(rec->e_leaf_clusters));
- 		if (ret)
- 			mlog_errno(ret);
- 		/* Try all the clusters to free */
-@@ -1628,7 +1628,7 @@ static int ocfs2_bg_discontig_fix_by_rec(struct ocfs2_suballoc_result *res,
- {
- 	unsigned int bpc = le16_to_cpu(cl->cl_bpc);
- 	unsigned int bitoff = le32_to_cpu(rec->e_cpos) * bpc;
--	unsigned int bitcount = le32_to_cpu(rec->e_leaf_clusters) * bpc;
-+	unsigned int bitcount = le16_to_cpu(rec->e_leaf_clusters) * bpc;
- 
- 	if (res->sr_bit_offset < bitoff)
- 		return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0055-lockd-fix-the-endianness-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0055-lockd-fix-the-endianness-bug.patch
deleted file mode 100644
index b5a1ab8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0055-lockd-fix-the-endianness-bug.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3257f4da731bb45c2117beda34ed3202df1c74e4 Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Fri, 13 Apr 2012 13:49:47 -0400
-Subject: [PATCH 055/165] lockd: fix the endianness bug
-
-commit e847469bf77a1d339274074ed068d461f0c872bc upstream.
-
-comparing be32 values for < is not doing the right thing...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/lockd/clnt4xdr.c |    2 +-
- fs/lockd/clntxdr.c  |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/lockd/clnt4xdr.c b/fs/lockd/clnt4xdr.c
-index f848b52..046bb77 100644
---- a/fs/lockd/clnt4xdr.c
-+++ b/fs/lockd/clnt4xdr.c
-@@ -241,7 +241,7 @@ static int decode_nlm4_stat(struct xdr_stream *xdr, __be32 *stat)
- 	p = xdr_inline_decode(xdr, 4);
- 	if (unlikely(p == NULL))
- 		goto out_overflow;
--	if (unlikely(*p > nlm4_failed))
-+	if (unlikely(ntohl(*p) > ntohl(nlm4_failed)))
- 		goto out_bad_xdr;
- 	*stat = *p;
- 	return 0;
-diff --git a/fs/lockd/clntxdr.c b/fs/lockd/clntxdr.c
-index 180ac34..36057ce 100644
---- a/fs/lockd/clntxdr.c
-+++ b/fs/lockd/clntxdr.c
-@@ -236,7 +236,7 @@ static int decode_nlm_stat(struct xdr_stream *xdr,
- 	p = xdr_inline_decode(xdr, 4);
- 	if (unlikely(p == NULL))
- 		goto out_overflow;
--	if (unlikely(*p > nlm_lck_denied_grace_period))
-+	if (unlikely(ntohl(*p) > ntohl(nlm_lck_denied_grace_period)))
- 		goto out_enum;
- 	*stat = *p;
- 	return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0056-usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0056-usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch
deleted file mode 100644
index de20c2b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0056-usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ab98d1498e030766394cbc78259a2a9a1aa5edbe Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Wed, 21 Mar 2012 11:44:00 +0200
-Subject: [PATCH 056/165] usb: dwc3: ep0: increment "actual" on bounced ep0
- case
-
-commit cd423dd3634a5232a3019eb372b144619a61cd16 upstream.
-
-due to a HW limitation we have a bounce buffer for ep0
-out transfers which are not aligned with MaxPacketSize.
-
-On such case we were not increment r->actual as we should.
-
-This patch fixes that mistake.
-
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/dwc3/ep0.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
-index 27bd50a..c0dcf69 100644
---- a/drivers/usb/dwc3/ep0.c
-+++ b/drivers/usb/dwc3/ep0.c
-@@ -572,9 +572,10 @@ static void dwc3_ep0_complete_data(struct dwc3 *dwc,
- 		dwc->ep0_bounced = false;
- 	} else {
- 		transferred = ur->length - trb.length;
--		ur->actual += transferred;
- 	}
- 
-+	ur->actual += transferred;
-+
- 	if ((epnum & 1) && ur->actual < ur->length) {
- 		/* for some reason we did not get everything out */
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0057-net-fix-proc-net-dev-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0057-net-fix-proc-net-dev-regression.patch
deleted file mode 100644
index 369b0fa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0057-net-fix-proc-net-dev-regression.patch
+++ /dev/null
@@ -1,185 +0,0 @@
-From 83b74fb7bfab64f75ff56f20f3736c44b035c823 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Mon, 2 Apr 2012 22:33:02 +0000
-Subject: [PATCH 057/165] net: fix /proc/net/dev regression
-
-[ Upstream commit 2def16ae6b0c77571200f18ba4be049b03d75579 ]
-
-Commit f04565ddf52 (dev: use name hash for dev_seq_ops) added a second
-regression, as some devices are missing from /proc/net/dev if many
-devices are defined.
-
-When seq_file buffer is filled, the last ->next/show() method is
-canceled (pos value is reverted to value prior ->next() call)
-
-Problem is after above commit, we dont restart the lookup at right
-position in ->start() method.
-
-Fix this by removing the internal 'pos' pointer added in commit, since
-we need to use the 'loff_t *pos' provided by seq_file layer.
-
-This also reverts commit 5cac98dd0 (net: Fix corruption
-in /proc/*/net/dev_mcast), since its not needed anymore.
-
-Reported-by: Ben Greear <greearb at candelatech.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Mihai Maruseac <mmaruseac at ixiacom.com>
-Tested-by:  Ben Greear <greearb at candelatech.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/netdevice.h |    2 -
- net/core/dev.c            |   58 ++++++++++----------------------------------
- net/core/dev_addr_lists.c |    3 +-
- 3 files changed, 15 insertions(+), 48 deletions(-)
-
-diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index a82ad4d..cbeb586 100644
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
-@@ -2536,8 +2536,6 @@ extern void		net_disable_timestamp(void);
- extern void *dev_seq_start(struct seq_file *seq, loff_t *pos);
- extern void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos);
- extern void dev_seq_stop(struct seq_file *seq, void *v);
--extern int dev_seq_open_ops(struct inode *inode, struct file *file,
--			    const struct seq_operations *ops);
- #endif
- 
- extern int netdev_class_create_file(struct class_attribute *class_attr);
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 55cd370..cd5050e 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -4102,54 +4102,41 @@ static int dev_ifconf(struct net *net, char __user *arg)
- 
- #ifdef CONFIG_PROC_FS
- 
--#define BUCKET_SPACE (32 - NETDEV_HASHBITS)
--
--struct dev_iter_state {
--	struct seq_net_private p;
--	unsigned int pos; /* bucket << BUCKET_SPACE + offset */
--};
-+#define BUCKET_SPACE (32 - NETDEV_HASHBITS - 1)
- 
- #define get_bucket(x) ((x) >> BUCKET_SPACE)
- #define get_offset(x) ((x) & ((1 << BUCKET_SPACE) - 1))
- #define set_bucket_offset(b, o) ((b) << BUCKET_SPACE | (o))
- 
--static inline struct net_device *dev_from_same_bucket(struct seq_file *seq)
-+static inline struct net_device *dev_from_same_bucket(struct seq_file *seq, loff_t *pos)
- {
--	struct dev_iter_state *state = seq->private;
- 	struct net *net = seq_file_net(seq);
- 	struct net_device *dev;
- 	struct hlist_node *p;
- 	struct hlist_head *h;
--	unsigned int count, bucket, offset;
-+	unsigned int count = 0, offset = get_offset(*pos);
- 
--	bucket = get_bucket(state->pos);
--	offset = get_offset(state->pos);
--	h = &net->dev_name_head[bucket];
--	count = 0;
-+	h = &net->dev_name_head[get_bucket(*pos)];
- 	hlist_for_each_entry_rcu(dev, p, h, name_hlist) {
--		if (count++ == offset) {
--			state->pos = set_bucket_offset(bucket, count);
-+		if (++count == offset)
- 			return dev;
--		}
- 	}
- 
- 	return NULL;
- }
- 
--static inline struct net_device *dev_from_new_bucket(struct seq_file *seq)
-+static inline struct net_device *dev_from_bucket(struct seq_file *seq, loff_t *pos)
- {
--	struct dev_iter_state *state = seq->private;
- 	struct net_device *dev;
- 	unsigned int bucket;
- 
--	bucket = get_bucket(state->pos);
- 	do {
--		dev = dev_from_same_bucket(seq);
-+		dev = dev_from_same_bucket(seq, pos);
- 		if (dev)
- 			return dev;
- 
--		bucket++;
--		state->pos = set_bucket_offset(bucket, 0);
-+		bucket = get_bucket(*pos) + 1;
-+		*pos = set_bucket_offset(bucket, 1);
- 	} while (bucket < NETDEV_HASHENTRIES);
- 
- 	return NULL;
-@@ -4162,33 +4149,20 @@ static inline struct net_device *dev_from_new_bucket(struct seq_file *seq)
- void *dev_seq_start(struct seq_file *seq, loff_t *pos)
- 	__acquires(RCU)
- {
--	struct dev_iter_state *state = seq->private;
--
- 	rcu_read_lock();
- 	if (!*pos)
- 		return SEQ_START_TOKEN;
- 
--	/* check for end of the hash */
--	if (state->pos == 0 && *pos > 1)
-+	if (get_bucket(*pos) >= NETDEV_HASHENTRIES)
- 		return NULL;
- 
--	return dev_from_new_bucket(seq);
-+	return dev_from_bucket(seq, pos);
- }
- 
- void *dev_seq_next(struct seq_file *seq, void *v, loff_t *pos)
- {
--	struct net_device *dev;
--
- 	++*pos;
--
--	if (v == SEQ_START_TOKEN)
--		return dev_from_new_bucket(seq);
--
--	dev = dev_from_same_bucket(seq);
--	if (dev)
--		return dev;
--
--	return dev_from_new_bucket(seq);
-+	return dev_from_bucket(seq, pos);
- }
- 
- void dev_seq_stop(struct seq_file *seq, void *v)
-@@ -4287,13 +4261,7 @@ static const struct seq_operations dev_seq_ops = {
- static int dev_seq_open(struct inode *inode, struct file *file)
- {
- 	return seq_open_net(inode, file, &dev_seq_ops,
--			    sizeof(struct dev_iter_state));
--}
--
--int dev_seq_open_ops(struct inode *inode, struct file *file,
--		     const struct seq_operations *ops)
--{
--	return seq_open_net(inode, file, ops, sizeof(struct dev_iter_state));
-+			    sizeof(struct seq_net_private));
- }
- 
- static const struct file_operations dev_seq_fops = {
-diff --git a/net/core/dev_addr_lists.c b/net/core/dev_addr_lists.c
-index febba51..277faef 100644
---- a/net/core/dev_addr_lists.c
-+++ b/net/core/dev_addr_lists.c
-@@ -696,7 +696,8 @@ static const struct seq_operations dev_mc_seq_ops = {
- 
- static int dev_mc_seq_open(struct inode *inode, struct file *file)
- {
--	return dev_seq_open_ops(inode, file, &dev_mc_seq_ops);
-+	return seq_open_net(inode, file, &dev_mc_seq_ops,
-+			    sizeof(struct seq_net_private));
- }
- 
- static const struct file_operations dev_mc_seq_fops = {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0058-nfsd-don-t-fail-unchecked-creates-of-non-special-fil.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0058-nfsd-don-t-fail-unchecked-creates-of-non-special-fil.patch
deleted file mode 100644
index 1eb56e6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0058-nfsd-don-t-fail-unchecked-creates-of-non-special-fil.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 5a9807ef2e73be0be4b878dbec1691f91d875585 Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at redhat.com>
-Date: Mon, 9 Apr 2012 18:06:49 -0400
-Subject: [PATCH 058/165] nfsd: don't fail unchecked creates of non-special
- files
-
-commit 9dc4e6c4d1182d34604ea40fef641775f5b15456 upstream.
-
-Allow a v3 unchecked open of a non-regular file succeed as if it were a
-lookup; typically a client in such a case will want to fall back on a
-local open, so succeeding and giving it the filehandle is more useful
-than failing with nfserr_exist, which makes it appear that nothing at
-all exists by that name.
-
-Similarly for v4, on an open-create, return the same errors we would on
-an attempt to open a non-regular file, instead of returning
-nfserr_exist.
-
-This fixes a problem found doing a v4 open of a symlink with
-O_RDONLY|O_CREAT, which resulted in the current client returning EEXIST.
-
-Thanks also to Trond for analysis.
-
-Reported-by: Orion Poplawski <orion at cora.nwra.com>
-Tested-by: Orion Poplawski <orion at cora.nwra.com>
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-[bwh: Backported to 3.2: use &resfh, not resfh]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfsd/nfs4proc.c |    8 ++++----
- fs/nfsd/vfs.c      |    2 +-
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c
-index 35840aa..b8c5538 100644
---- a/fs/nfsd/nfs4proc.c
-+++ b/fs/nfsd/nfs4proc.c
-@@ -231,17 +231,17 @@ do_open_lookup(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_o
- 		 */
- 		if (open->op_createmode == NFS4_CREATE_EXCLUSIVE && status == 0)
- 			open->op_bmval[1] = (FATTR4_WORD1_TIME_ACCESS |
--						FATTR4_WORD1_TIME_MODIFY);
-+							FATTR4_WORD1_TIME_MODIFY);
- 	} else {
- 		status = nfsd_lookup(rqstp, current_fh,
- 				     open->op_fname.data, open->op_fname.len, &resfh);
- 		fh_unlock(current_fh);
--		if (status)
--			goto out;
--		status = nfsd_check_obj_isreg(&resfh);
- 	}
- 	if (status)
- 		goto out;
-+	status = nfsd_check_obj_isreg(&resfh);
-+	if (status)
-+		goto out;
- 
- 	if (is_create_with_attrs(open) && open->op_acl != NULL)
- 		do_set_nfs4_acl(rqstp, &resfh, open->op_acl, open->op_bmval);
-diff --git a/fs/nfsd/vfs.c b/fs/nfsd/vfs.c
-index 7a2e442..5c3cd82 100644
---- a/fs/nfsd/vfs.c
-+++ b/fs/nfsd/vfs.c
-@@ -1439,7 +1439,7 @@ do_nfsd_create(struct svc_rqst *rqstp, struct svc_fh *fhp,
- 		switch (createmode) {
- 		case NFS3_CREATE_UNCHECKED:
- 			if (! S_ISREG(dchild->d_inode->i_mode))
--				err = nfserr_exist;
-+				goto out;
- 			else if (truncp) {
- 				/* in nfsv4, we need to treat this case a little
- 				 * differently.  we don't want to truncate the
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0059-ppp-Don-t-stop-and-restart-queue-on-every-TX-packet.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0059-ppp-Don-t-stop-and-restart-queue-on-every-TX-packet.patch
deleted file mode 100644
index 4e154ad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0059-ppp-Don-t-stop-and-restart-queue-on-every-TX-packet.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 8d46ef3ec21fd542ad3165d165a6db90427e61d8 Mon Sep 17 00:00:00 2001
-From: David Woodhouse <David.Woodhouse at intel.com>
-Date: Tue, 24 Apr 2012 22:09:47 -0400
-Subject: [PATCH 059/165] ppp: Don't stop and restart queue on every TX packet
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ This combines upstream commit
-  e675f0cc9a872fd152edc0c77acfed19bf28b81e and follow-on bug fix
-  commit 9a5d2bd99e0dfe9a31b3c160073ac445ba3d773f ]
-
-For every transmitted packet, ppp_start_xmit() will stop the netdev
-queue and then, if appropriate, restart it. This causes the TX softirq
-to run, entirely gratuitously.
-
-This is "only" a waste of CPU time in the normal case, but it's actively
-harmful when the PPP device is a TEQL slave — the wakeup will cause the
-offending device to receive the next TX packet from the TEQL queue, when
-it *should* have gone to the next slave in the list. We end up seeing
-large bursts of packets on just *one* slave device, rather than using
-the full available bandwidth over all slaves.
-
-This patch fixes the problem by *not* unconditionally stopping the queue
-in ppp_start_xmit(). It adds a return value from ppp_xmit_process()
-which indicates whether the queue should be stopped or not.
-
-It *doesn't* remove the call to netif_wake_queue() from
-ppp_xmit_process(), because other code paths (especially from
-ppp_output_wakeup()) need it there and it's messy to push it out to the
-other callers to do it based on the return value. So we leave it in
-place — it's a no-op in the case where the queue wasn't stopped, so it's
-harmless in the TX path.
-
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ppp/ppp_generic.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ppp/ppp_generic.c b/drivers/net/ppp/ppp_generic.c
-index 486b404..3ed983c 100644
---- a/drivers/net/ppp/ppp_generic.c
-+++ b/drivers/net/ppp/ppp_generic.c
-@@ -968,7 +968,6 @@ ppp_start_xmit(struct sk_buff *skb, struct net_device *dev)
- 	proto = npindex_to_proto[npi];
- 	put_unaligned_be16(proto, pp);
- 
--	netif_stop_queue(dev);
- 	skb_queue_tail(&ppp->file.xq, skb);
- 	ppp_xmit_process(ppp);
- 	return NETDEV_TX_OK;
-@@ -1063,6 +1062,8 @@ ppp_xmit_process(struct ppp *ppp)
- 		   code that we can accept some more. */
- 		if (!ppp->xmit_pending && !skb_peek(&ppp->file.xq))
- 			netif_wake_queue(ppp->dev);
-+		else
-+			netif_stop_queue(ppp->dev);
- 	}
- 	ppp_xmit_unlock(ppp);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0060-tcp-allow-splice-to-build-full-TSO-packets.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0060-tcp-allow-splice-to-build-full-TSO-packets.patch
deleted file mode 100644
index ab1c612..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0060-tcp-allow-splice-to-build-full-TSO-packets.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 2d09c2df4957a8d73ea24c4464ad6942efedf590 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 24 Apr 2012 22:12:06 -0400
-Subject: [PATCH 060/165] tcp: allow splice() to build full TSO packets
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ This combines upstream commit
-  2f53384424251c06038ae612e56231b96ab610ee and the follow-on bug fix
-  commit 35f9c09fe9c72eb8ca2b8e89a593e1c151f28fc2 ]
-
-vmsplice()/splice(pipe, socket) call do_tcp_sendpages() one page at a
-time, adding at most 4096 bytes to an skb. (assuming PAGE_SIZE=4096)
-
-The call to tcp_push() at the end of do_tcp_sendpages() forces an
-immediate xmit when pipe is not already filled, and tso_fragment() try
-to split these skb to MSS multiples.
-
-4096 bytes are usually split in a skb with 2 MSS, and a remaining
-sub-mss skb (assuming MTU=1500)
-
-This makes slow start suboptimal because many small frames are sent to
-qdisc/driver layers instead of big ones (constrained by cwnd and packets
-in flight of course)
-
-In fact, applications using sendmsg() (adding an additional memory copy)
-instead of vmsplice()/splice()/sendfile() are a bit faster because of
-this anomaly, especially if serving small files in environments with
-large initial [c]wnd.
-
-Call tcp_push() only if MSG_MORE is not set in the flags parameter.
-
-This bit is automatically provided by splice() internals but for the
-last page, or on all pages if user specified SPLICE_F_MORE splice()
-flag.
-
-In some workloads, this can reduce number of sent logical packets by an
-order of magnitude, making zero-copy TCP actually faster than
-one-copy :)
-
-Reported-by: Tom Herbert <therbert at google.com>
-Cc: Nandita Dukkipati <nanditad at google.com>
-Cc: Neal Cardwell <ncardwell at google.com>
-Cc: Tom Herbert <therbert at google.com>
-Cc: Yuchung Cheng <ycheng at google.com>
-Cc: H.K. Jerry Chu <hkchu at google.com>
-Cc: Maciej Żenczykowski <maze at google.com>
-Cc: Mahesh Bandewar <maheshb at google.com>
-Cc: Ilpo Järvinen <ilpo.jarvinen at helsinki.fi>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/splice.c            |    5 ++++-
- include/linux/socket.h |    2 +-
- net/ipv4/tcp.c         |    2 +-
- net/socket.c           |    6 +++---
- 4 files changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/fs/splice.c b/fs/splice.c
-index fa2defa..6d0dfb8 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -31,6 +31,7 @@
- #include <linux/uio.h>
- #include <linux/security.h>
- #include <linux/gfp.h>
-+#include <linux/socket.h>
- 
- /*
-  * Attempt to steal a page from a pipe buffer. This should perhaps go into
-@@ -691,7 +692,9 @@ static int pipe_to_sendpage(struct pipe_inode_info *pipe,
- 	if (!likely(file->f_op && file->f_op->sendpage))
- 		return -EINVAL;
- 
--	more = (sd->flags & SPLICE_F_MORE) || sd->len < sd->total_len;
-+	more = (sd->flags & SPLICE_F_MORE) ? MSG_MORE : 0;
-+	if (sd->len < sd->total_len)
-+		more |= MSG_SENDPAGE_NOTLAST;
- 	return file->f_op->sendpage(file, buf->page, buf->offset,
- 				    sd->len, &pos, more);
- }
-diff --git a/include/linux/socket.h b/include/linux/socket.h
-index d0e77f6..ad919e0 100644
---- a/include/linux/socket.h
-+++ b/include/linux/socket.h
-@@ -265,7 +265,7 @@ struct ucred {
- #define MSG_NOSIGNAL	0x4000	/* Do not generate SIGPIPE */
- #define MSG_MORE	0x8000	/* Sender will send more */
- #define MSG_WAITFORONE	0x10000	/* recvmmsg(): block until 1+ packets avail */
--
-+#define MSG_SENDPAGE_NOTLAST 0x20000 /* sendpage() internal : not the last page */
- #define MSG_EOF         MSG_FIN
- 
- #define MSG_CMSG_CLOEXEC 0x40000000	/* Set close_on_exit for file
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 34f5db1..36611ab 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -860,7 +860,7 @@ wait_for_memory:
- 	}
- 
- out:
--	if (copied)
-+	if (copied && !(flags & MSG_SENDPAGE_NOTLAST))
- 		tcp_push(sk, flags, mss_now, tp->nonagle);
- 	return copied;
- 
-diff --git a/net/socket.c b/net/socket.c
-index 2dce67a..273cbce 100644
---- a/net/socket.c
-+++ b/net/socket.c
-@@ -791,9 +791,9 @@ static ssize_t sock_sendpage(struct file *file, struct page *page,
- 
- 	sock = file->private_data;
- 
--	flags = !(file->f_flags & O_NONBLOCK) ? 0 : MSG_DONTWAIT;
--	if (more)
--		flags |= MSG_MORE;
-+	flags = (file->f_flags & O_NONBLOCK) ? MSG_DONTWAIT : 0;
-+	/* more is a combination of MSG_MORE and MSG_SENDPAGE_NOTLAST */
-+	flags |= more;
- 
- 	return kernel_sendpage(sock, page, offset, size, flags);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0061-sctp-Allow-struct-sctp_event_subscribe-to-grow-witho.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0061-sctp-Allow-struct-sctp_event_subscribe-to-grow-witho.patch
deleted file mode 100644
index a322ca9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0061-sctp-Allow-struct-sctp_event_subscribe-to-grow-witho.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 8dda68d22ab01e2780f80a6afb814387fb904aa2 Mon Sep 17 00:00:00 2001
-From: Thomas Graf <tgraf at infradead.org>
-Date: Tue, 3 Apr 2012 22:17:53 +0000
-Subject: [PATCH 061/165] sctp: Allow struct sctp_event_subscribe to grow
- without breaking binaries
-
-[ Upstream commit acdd5985364f8dc511a0762fab2e683f29d9d692 ]
-
-getsockopt(..., SCTP_EVENTS, ...) performs a length check and returns
-an error if the user provides less bytes than the size of struct
-sctp_event_subscribe.
-
-Struct sctp_event_subscribe needs to be extended by an u8 for every
-new event or notification type that is added.
-
-This obviously makes getsockopt fail for binaries that are compiled
-against an older versions of <net/sctp/user.h> which do not contain
-all event types.
-
-This patch changes getsockopt behaviour to no longer return an error
-if not enough bytes are being provided by the user. Instead, it
-returns as much of sctp_event_subscribe as fits into the provided buffer.
-
-This leads to the new behavior that users see what they have been aware
-of at compile time.
-
-The setsockopt(..., SCTP_EVENTS, ...) API is already behaving like this.
-
-Signed-off-by: Thomas Graf <tgraf at suug.ch>
-Acked-by: Vlad Yasevich <vladislav.yasevich at hp.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sctp/socket.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index 54a7cd2..0075554 100644
---- a/net/sctp/socket.c
-+++ b/net/sctp/socket.c
-@@ -4133,9 +4133,10 @@ static int sctp_getsockopt_disable_fragments(struct sock *sk, int len,
- static int sctp_getsockopt_events(struct sock *sk, int len, char __user *optval,
- 				  int __user *optlen)
- {
--	if (len < sizeof(struct sctp_event_subscribe))
-+	if (len <= 0)
- 		return -EINVAL;
--	len = sizeof(struct sctp_event_subscribe);
-+	if (len > sizeof(struct sctp_event_subscribe))
-+		len = sizeof(struct sctp_event_subscribe);
- 	if (put_user(len, optlen))
- 		return -EFAULT;
- 	if (copy_to_user(optval, &sctp_sk(sk)->subscribe, len))
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0062-bridge-Do-not-send-queries-on-multicast-group-leaves.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0062-bridge-Do-not-send-queries-on-multicast-group-leaves.patch
deleted file mode 100644
index 8fdd946..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0062-bridge-Do-not-send-queries-on-multicast-group-leaves.patch
+++ /dev/null
@@ -1,199 +0,0 @@
-From 9f8774d2e33d8c44b98e76db91cfc0d35b187f58 Mon Sep 17 00:00:00 2001
-From: Herbert Xu <herbert at gondor.apana.org.au>
-Date: Wed, 4 Apr 2012 01:01:20 +0000
-Subject: [PATCH 062/165] bridge: Do not send queries on multicast group
- leaves
-
-[ Upstream commit 996304bbea3d2a094b7ba54c3bd65d3fffeac57b ]
-
-As it stands the bridge IGMP snooping system will respond to
-group leave messages with queries for remaining membership.
-This is both unnecessary and undesirable.  First of all any
-multicast routers present should be doing this rather than us.
-What's more the queries that we send may end up upsetting other
-multicast snooping swithces in the system that are buggy.
-
-In fact, we can simply remove the code that send these queries
-because the existing membership expiry mechanism doesn't rely
-on them anyway.
-
-So this patch simply removes all code associated with group
-queries in response to group leave messages.
-
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/bridge/br_multicast.c |   81 ---------------------------------------------
- net/bridge/br_private.h   |    4 --
- 2 files changed, 0 insertions(+), 85 deletions(-)
-
-diff --git a/net/bridge/br_multicast.c b/net/bridge/br_multicast.c
-index 8eb6b15..5ac1811 100644
---- a/net/bridge/br_multicast.c
-+++ b/net/bridge/br_multicast.c
-@@ -241,7 +241,6 @@ static void br_multicast_group_expired(unsigned long data)
- 	hlist_del_rcu(&mp->hlist[mdb->ver]);
- 	mdb->size--;
- 
--	del_timer(&mp->query_timer);
- 	call_rcu_bh(&mp->rcu, br_multicast_free_group);
- 
- out:
-@@ -271,7 +270,6 @@ static void br_multicast_del_pg(struct net_bridge *br,
- 		rcu_assign_pointer(*pp, p->next);
- 		hlist_del_init(&p->mglist);
- 		del_timer(&p->timer);
--		del_timer(&p->query_timer);
- 		call_rcu_bh(&p->rcu, br_multicast_free_pg);
- 
- 		if (!mp->ports && !mp->mglist &&
-@@ -507,74 +505,6 @@ static struct sk_buff *br_multicast_alloc_query(struct net_bridge *br,
- 	return NULL;
- }
- 
--static void br_multicast_send_group_query(struct net_bridge_mdb_entry *mp)
--{
--	struct net_bridge *br = mp->br;
--	struct sk_buff *skb;
--
--	skb = br_multicast_alloc_query(br, &mp->addr);
--	if (!skb)
--		goto timer;
--
--	netif_rx(skb);
--
--timer:
--	if (++mp->queries_sent < br->multicast_last_member_count)
--		mod_timer(&mp->query_timer,
--			  jiffies + br->multicast_last_member_interval);
--}
--
--static void br_multicast_group_query_expired(unsigned long data)
--{
--	struct net_bridge_mdb_entry *mp = (void *)data;
--	struct net_bridge *br = mp->br;
--
--	spin_lock(&br->multicast_lock);
--	if (!netif_running(br->dev) || !mp->mglist ||
--	    mp->queries_sent >= br->multicast_last_member_count)
--		goto out;
--
--	br_multicast_send_group_query(mp);
--
--out:
--	spin_unlock(&br->multicast_lock);
--}
--
--static void br_multicast_send_port_group_query(struct net_bridge_port_group *pg)
--{
--	struct net_bridge_port *port = pg->port;
--	struct net_bridge *br = port->br;
--	struct sk_buff *skb;
--
--	skb = br_multicast_alloc_query(br, &pg->addr);
--	if (!skb)
--		goto timer;
--
--	br_deliver(port, skb);
--
--timer:
--	if (++pg->queries_sent < br->multicast_last_member_count)
--		mod_timer(&pg->query_timer,
--			  jiffies + br->multicast_last_member_interval);
--}
--
--static void br_multicast_port_group_query_expired(unsigned long data)
--{
--	struct net_bridge_port_group *pg = (void *)data;
--	struct net_bridge_port *port = pg->port;
--	struct net_bridge *br = port->br;
--
--	spin_lock(&br->multicast_lock);
--	if (!netif_running(br->dev) || hlist_unhashed(&pg->mglist) ||
--	    pg->queries_sent >= br->multicast_last_member_count)
--		goto out;
--
--	br_multicast_send_port_group_query(pg);
--
--out:
--	spin_unlock(&br->multicast_lock);
--}
--
- static struct net_bridge_mdb_entry *br_multicast_get_group(
- 	struct net_bridge *br, struct net_bridge_port *port,
- 	struct br_ip *group, int hash)
-@@ -690,8 +620,6 @@ rehash:
- 	mp->addr = *group;
- 	setup_timer(&mp->timer, br_multicast_group_expired,
- 		    (unsigned long)mp);
--	setup_timer(&mp->query_timer, br_multicast_group_query_expired,
--		    (unsigned long)mp);
- 
- 	hlist_add_head_rcu(&mp->hlist[mdb->ver], &mdb->mhash[hash]);
- 	mdb->size++;
-@@ -746,8 +674,6 @@ static int br_multicast_add_group(struct net_bridge *br,
- 	hlist_add_head(&p->mglist, &port->mglist);
- 	setup_timer(&p->timer, br_multicast_port_group_expired,
- 		    (unsigned long)p);
--	setup_timer(&p->query_timer, br_multicast_port_group_query_expired,
--		    (unsigned long)p);
- 
- 	rcu_assign_pointer(*pp, p);
- 
-@@ -1291,9 +1217,6 @@ static void br_multicast_leave_group(struct net_bridge *br,
- 		     time_after(mp->timer.expires, time) :
- 		     try_to_del_timer_sync(&mp->timer) >= 0)) {
- 			mod_timer(&mp->timer, time);
--
--			mp->queries_sent = 0;
--			mod_timer(&mp->query_timer, now);
- 		}
- 
- 		goto out;
-@@ -1310,9 +1233,6 @@ static void br_multicast_leave_group(struct net_bridge *br,
- 		     time_after(p->timer.expires, time) :
- 		     try_to_del_timer_sync(&p->timer) >= 0)) {
- 			mod_timer(&p->timer, time);
--
--			p->queries_sent = 0;
--			mod_timer(&p->query_timer, now);
- 		}
- 
- 		break;
-@@ -1680,7 +1600,6 @@ void br_multicast_stop(struct net_bridge *br)
- 		hlist_for_each_entry_safe(mp, p, n, &mdb->mhash[i],
- 					  hlist[ver]) {
- 			del_timer(&mp->timer);
--			del_timer(&mp->query_timer);
- 			call_rcu_bh(&mp->rcu, br_multicast_free_group);
- 		}
- 	}
-diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
-index d7d6fb0..93264df 100644
---- a/net/bridge/br_private.h
-+++ b/net/bridge/br_private.h
-@@ -82,9 +82,7 @@ struct net_bridge_port_group {
- 	struct hlist_node		mglist;
- 	struct rcu_head			rcu;
- 	struct timer_list		timer;
--	struct timer_list		query_timer;
- 	struct br_ip			addr;
--	u32				queries_sent;
- };
- 
- struct net_bridge_mdb_entry
-@@ -94,10 +92,8 @@ struct net_bridge_mdb_entry
- 	struct net_bridge_port_group __rcu *ports;
- 	struct rcu_head			rcu;
- 	struct timer_list		timer;
--	struct timer_list		query_timer;
- 	struct br_ip			addr;
- 	bool				mglist;
--	u32				queries_sent;
- };
- 
- struct net_bridge_mdb_htable
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0063-ipv6-fix-array-index-in-ip6_mc_add_src.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0063-ipv6-fix-array-index-in-ip6_mc_add_src.patch
deleted file mode 100644
index afc26e4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0063-ipv6-fix-array-index-in-ip6_mc_add_src.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From dda800eb86fb88c28f63c0136cc76b1346322feb Mon Sep 17 00:00:00 2001
-From: "RongQing.Li" <roy.qing.li at gmail.com>
-Date: Wed, 4 Apr 2012 16:47:04 +0000
-Subject: [PATCH 063/165] ipv6: fix array index in ip6_mc_add_src()
-
-[ Upstream commit 78d50217baf36093ab320f95bae0d6452daec85c ]
-
-Convert array index from the loop bound to the loop index.
-
-And remove the void type conversion to ip6_mc_del1_src() return
-code, seem it is unnecessary, since ip6_mc_del1_src() does not
-use __must_check similar attribute, no compiler will report the
-warning when it is removed.
-
-v2: enrich the commit header
-
-Signed-off-by: RongQing.Li <roy.qing.li at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv6/mcast.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/net/ipv6/mcast.c b/net/ipv6/mcast.c
-index 2257366..f2d74ea 100644
---- a/net/ipv6/mcast.c
-+++ b/net/ipv6/mcast.c
-@@ -2054,7 +2054,7 @@ static int ip6_mc_add_src(struct inet6_dev *idev, const struct in6_addr *pmca,
- 		if (!delta)
- 			pmc->mca_sfcount[sfmode]--;
- 		for (j=0; j<i; j++)
--			(void) ip6_mc_del1_src(pmc, sfmode, &psfsrc[i]);
-+			ip6_mc_del1_src(pmc, sfmode, &psfsrc[j]);
- 	} else if (isexclude != (pmc->mca_sfcount[MCAST_EXCLUDE] != 0)) {
- 		struct ip6_sf_list *psf;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0064-phonet-Check-input-from-user-before-allocating.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0064-phonet-Check-input-from-user-before-allocating.patch
deleted file mode 100644
index e6d6ac0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0064-phonet-Check-input-from-user-before-allocating.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 636e8de47aae86650672a0065eb401e918544d34 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Thu, 5 Apr 2012 12:07:45 +0000
-Subject: [PATCH 064/165] phonet: Check input from user before allocating
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit bcf1b70ac6eb0ed8286c66e6bf37cb747cbaa04c ]
-
-A phonet packet is limited to USHRT_MAX bytes, this is never checked during
-tx which means that the user can specify any size he wishes, and the kernel
-will attempt to allocate that size.
-
-In the good case, it'll lead to the following warning, but it may also cause
-the kernel to kick in the OOM and kill a random task on the server.
-
-[ 8921.744094] WARNING: at mm/page_alloc.c:2255 __alloc_pages_slowpath+0x65/0x730()
-[ 8921.749770] Pid: 5081, comm: trinity Tainted: G        W    3.4.0-rc1-next-20120402-sasha #46
-[ 8921.756672] Call Trace:
-[ 8921.758185]  [<ffffffff810b2ba7>] warn_slowpath_common+0x87/0xb0
-[ 8921.762868]  [<ffffffff810b2be5>] warn_slowpath_null+0x15/0x20
-[ 8921.765399]  [<ffffffff8117eae5>] __alloc_pages_slowpath+0x65/0x730
-[ 8921.769226]  [<ffffffff81179c8a>] ? zone_watermark_ok+0x1a/0x20
-[ 8921.771686]  [<ffffffff8117d045>] ? get_page_from_freelist+0x625/0x660
-[ 8921.773919]  [<ffffffff8117f3a8>] __alloc_pages_nodemask+0x1f8/0x240
-[ 8921.776248]  [<ffffffff811c03e0>] kmalloc_large_node+0x70/0xc0
-[ 8921.778294]  [<ffffffff811c4bd4>] __kmalloc_node_track_caller+0x34/0x1c0
-[ 8921.780847]  [<ffffffff821b0e3c>] ? sock_alloc_send_pskb+0xbc/0x260
-[ 8921.783179]  [<ffffffff821b3c65>] __alloc_skb+0x75/0x170
-[ 8921.784971]  [<ffffffff821b0e3c>] sock_alloc_send_pskb+0xbc/0x260
-[ 8921.787111]  [<ffffffff821b002e>] ? release_sock+0x7e/0x90
-[ 8921.788973]  [<ffffffff821b0ff0>] sock_alloc_send_skb+0x10/0x20
-[ 8921.791052]  [<ffffffff824cfc20>] pep_sendmsg+0x60/0x380
-[ 8921.792931]  [<ffffffff824cb4a6>] ? pn_socket_bind+0x156/0x180
-[ 8921.794917]  [<ffffffff824cb50f>] ? pn_socket_autobind+0x3f/0x90
-[ 8921.797053]  [<ffffffff824cb63f>] pn_socket_sendmsg+0x4f/0x70
-[ 8921.798992]  [<ffffffff821ab8e7>] sock_aio_write+0x187/0x1b0
-[ 8921.801395]  [<ffffffff810e325e>] ? sub_preempt_count+0xae/0xf0
-[ 8921.803501]  [<ffffffff8111842c>] ? __lock_acquire+0x42c/0x4b0
-[ 8921.805505]  [<ffffffff821ab760>] ? __sock_recv_ts_and_drops+0x140/0x140
-[ 8921.807860]  [<ffffffff811e07cc>] do_sync_readv_writev+0xbc/0x110
-[ 8921.809986]  [<ffffffff811958e7>] ? might_fault+0x97/0xa0
-[ 8921.811998]  [<ffffffff817bd99e>] ? security_file_permission+0x1e/0x90
-[ 8921.814595]  [<ffffffff811e17e2>] do_readv_writev+0xe2/0x1e0
-[ 8921.816702]  [<ffffffff810b8dac>] ? do_setitimer+0x1ac/0x200
-[ 8921.818819]  [<ffffffff810e2ec1>] ? get_parent_ip+0x11/0x50
-[ 8921.820863]  [<ffffffff810e325e>] ? sub_preempt_count+0xae/0xf0
-[ 8921.823318]  [<ffffffff811e1926>] vfs_writev+0x46/0x60
-[ 8921.825219]  [<ffffffff811e1a3f>] sys_writev+0x4f/0xb0
-[ 8921.827127]  [<ffffffff82658039>] system_call_fastpath+0x16/0x1b
-[ 8921.829384] ---[ end trace dffe390f30db9eb7 ]---
-
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Acked-by: Rémi Denis-Courmont <remi.denis-courmont at nokia.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/phonet/pep.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/net/phonet/pep.c b/net/phonet/pep.c
-index 2ba6e9f..007546d 100644
---- a/net/phonet/pep.c
-+++ b/net/phonet/pep.c
-@@ -1046,6 +1046,9 @@ static int pep_sendmsg(struct kiocb *iocb, struct sock *sk,
- 	int flags = msg->msg_flags;
- 	int err, done;
- 
-+	if (len > USHRT_MAX)
-+		return -EMSGSIZE;
-+
- 	if ((msg->msg_flags & ~(MSG_DONTWAIT|MSG_EOR|MSG_NOSIGNAL|
- 				MSG_CMSG_COMPAT)) ||
- 			!(msg->msg_flags & MSG_EOR))
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0065-bonding-properly-unset-current_arp_slave-on-slave-li.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0065-bonding-properly-unset-current_arp_slave-on-slave-li.patch
deleted file mode 100644
index 74876f6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0065-bonding-properly-unset-current_arp_slave-on-slave-li.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1413698b8d47c7fb2783cafd906ac1db9b1723d7 Mon Sep 17 00:00:00 2001
-From: Veaceslav Falico <vfalico at redhat.com>
-Date: Thu, 5 Apr 2012 03:47:43 +0000
-Subject: [PATCH 065/165] bonding: properly unset current_arp_slave on slave
- link up
-
-[ Upstream commit 5a4309746cd74734daa964acb02690c22b3c8911 ]
-
-When a slave comes up, we're unsetting the current_arp_slave without
-removing active flags from it, which can lead to situations where we have
-more than one slave with active flags in active-backup mode.
-
-To avoid this situation we must remove the active flags from a slave before
-removing it as a current_arp_slave.
-
-Signed-off-by: Veaceslav Falico <vfalico at redhat.com>
-Signed-off-by: Jay Vosburgh <fubar at us.ibm.com>
-Signed-off-by: Andy Gospodarek <andy at greyhouse.net>
-Signed-off-by: Marcelo Ricardo Leitner <mleitner at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/bonding/bond_main.c |    6 +++++-
- 1 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index e58aa2b..f65e0b9 100644
---- a/drivers/net/bonding/bond_main.c
-+++ b/drivers/net/bonding/bond_main.c
-@@ -2982,7 +2982,11 @@ static void bond_ab_arp_commit(struct bonding *bond, int delta_in_ticks)
- 					   trans_start + delta_in_ticks)) ||
- 			    bond->curr_active_slave != slave) {
- 				slave->link = BOND_LINK_UP;
--				bond->current_arp_slave = NULL;
-+				if (bond->current_arp_slave) {
-+					bond_set_slave_inactive_flags(
-+						bond->current_arp_slave);
-+					bond->current_arp_slave = NULL;
-+				}
- 
- 				pr_info("%s: link status definitely up for interface %s.\n",
- 					bond->dev->name, slave->dev->name);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0066-wimax-i2400m-prevent-a-possible-kernel-bug-due-to-mi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0066-wimax-i2400m-prevent-a-possible-kernel-bug-due-to-mi.patch
deleted file mode 100644
index 7e6a8ee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0066-wimax-i2400m-prevent-a-possible-kernel-bug-due-to-mi.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 5454ccf43f7636614fc378283890bf911c2e2058 Mon Sep 17 00:00:00 2001
-From: Phil Sutter <phil.sutter at viprinet.com>
-Date: Mon, 26 Mar 2012 09:01:30 +0000
-Subject: [PATCH 066/165] wimax: i2400m - prevent a possible kernel bug due to
- missing fw_name string
-
-[ Upstream commit 4eee6a3a04e8bb53fbe7de0f64d0524d3fbe3f80 ]
-
-This happened on a machine with a custom hotplug script calling nameif,
-probably due to slow firmware loading. At the time nameif uses ethtool
-to gather interface information, i2400m->fw_name is zero and so a null
-pointer dereference occurs from within i2400m_get_drvinfo().
-
-Signed-off-by: Phil Sutter <phil.sutter at viprinet.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wimax/i2400m/netdev.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wimax/i2400m/netdev.c b/drivers/net/wimax/i2400m/netdev.c
-index 64a1106..4697cf3 100644
---- a/drivers/net/wimax/i2400m/netdev.c
-+++ b/drivers/net/wimax/i2400m/netdev.c
-@@ -607,7 +607,8 @@ static void i2400m_get_drvinfo(struct net_device *net_dev,
- 	struct i2400m *i2400m = net_dev_to_i2400m(net_dev);
- 
- 	strncpy(info->driver, KBUILD_MODNAME, sizeof(info->driver) - 1);
--	strncpy(info->fw_version, i2400m->fw_name, sizeof(info->fw_version) - 1);
-+	strncpy(info->fw_version,
-+	        i2400m->fw_name ? : "", sizeof(info->fw_version) - 1);
- 	if (net_dev->dev.parent)
- 		strncpy(info->bus_info, dev_name(net_dev->dev.parent),
- 			sizeof(info->bus_info) - 1);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0067-netlink-fix-races-after-skb-queueing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0067-netlink-fix-races-after-skb-queueing.patch
deleted file mode 100644
index a7ee423..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0067-netlink-fix-races-after-skb-queueing.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 0f7eb8a3cb853edf31ec23d26623b195603814b2 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Thu, 5 Apr 2012 22:17:46 +0000
-Subject: [PATCH 067/165] netlink: fix races after skb queueing
-
-[ Upstream commit 4a7e7c2ad540e54c75489a70137bf0ec15d3a127 ]
-
-As soon as an skb is queued into socket receive_queue, another thread
-can consume it, so we are not allowed to reference skb anymore, or risk
-use after free.
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/netlink/af_netlink.c |   24 +++++++++++++-----------
- 1 files changed, 13 insertions(+), 11 deletions(-)
-
-diff --git a/net/netlink/af_netlink.c b/net/netlink/af_netlink.c
-index 1201b6d..a99fb41 100644
---- a/net/netlink/af_netlink.c
-+++ b/net/netlink/af_netlink.c
-@@ -830,12 +830,19 @@ int netlink_attachskb(struct sock *sk, struct sk_buff *skb,
- 	return 0;
- }
- 
--int netlink_sendskb(struct sock *sk, struct sk_buff *skb)
-+static int __netlink_sendskb(struct sock *sk, struct sk_buff *skb)
- {
- 	int len = skb->len;
- 
- 	skb_queue_tail(&sk->sk_receive_queue, skb);
- 	sk->sk_data_ready(sk, len);
-+	return len;
-+}
-+
-+int netlink_sendskb(struct sock *sk, struct sk_buff *skb)
-+{
-+	int len = __netlink_sendskb(sk, skb);
-+
- 	sock_put(sk);
- 	return len;
- }
-@@ -960,8 +967,7 @@ static inline int netlink_broadcast_deliver(struct sock *sk,
- 	if (atomic_read(&sk->sk_rmem_alloc) <= sk->sk_rcvbuf &&
- 	    !test_bit(0, &nlk->state)) {
- 		skb_set_owner_r(skb, sk);
--		skb_queue_tail(&sk->sk_receive_queue, skb);
--		sk->sk_data_ready(sk, skb->len);
-+		__netlink_sendskb(sk, skb);
- 		return atomic_read(&sk->sk_rmem_alloc) > sk->sk_rcvbuf;
- 	}
- 	return -1;
-@@ -1684,10 +1690,8 @@ static int netlink_dump(struct sock *sk)
- 
- 		if (sk_filter(sk, skb))
- 			kfree_skb(skb);
--		else {
--			skb_queue_tail(&sk->sk_receive_queue, skb);
--			sk->sk_data_ready(sk, skb->len);
--		}
-+		else
-+			__netlink_sendskb(sk, skb);
- 		return 0;
- 	}
- 
-@@ -1701,10 +1705,8 @@ static int netlink_dump(struct sock *sk)
- 
- 	if (sk_filter(sk, skb))
- 		kfree_skb(skb);
--	else {
--		skb_queue_tail(&sk->sk_receive_queue, skb);
--		sk->sk_data_ready(sk, skb->len);
--	}
-+	else
-+		__netlink_sendskb(sk, skb);
- 
- 	if (cb->done)
- 		cb->done(cb);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0068-net-fix-a-race-in-sock_queue_err_skb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0068-net-fix-a-race-in-sock_queue_err_skb.patch
deleted file mode 100644
index 94cfa00..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0068-net-fix-a-race-in-sock_queue_err_skb.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 86e0251999e198af9ae73f58db4d5689f14862ec Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Fri, 6 Apr 2012 10:49:10 +0200
-Subject: [PATCH 068/165] net: fix a race in sock_queue_err_skb()
-
-[ Upstream commit 110c43304db6f06490961529536c362d9ac5732f ]
-
-As soon as an skb is queued into socket error queue, another thread
-can consume it, so we are not allowed to reference skb anymore, or risk
-use after free.
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/skbuff.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 3c30ee4..29cb392 100644
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -3111,6 +3111,8 @@ static void sock_rmem_free(struct sk_buff *skb)
-  */
- int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb)
- {
-+	int len = skb->len;
-+
- 	if (atomic_read(&sk->sk_rmem_alloc) + skb->truesize >=
- 	    (unsigned)sk->sk_rcvbuf)
- 		return -ENOMEM;
-@@ -3125,7 +3127,7 @@ int sock_queue_err_skb(struct sock *sk, struct sk_buff *skb)
- 
- 	skb_queue_tail(&sk->sk_error_queue, skb);
- 	if (!sock_flag(sk, SOCK_DEAD))
--		sk->sk_data_ready(sk, skb->len);
-+		sk->sk_data_ready(sk, len);
- 	return 0;
- }
- EXPORT_SYMBOL(sock_queue_err_skb);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0069-tcp-fix-tcp_rcv_rtt_update-use-of-an-unscaled-RTT-sa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0069-tcp-fix-tcp_rcv_rtt_update-use-of-an-unscaled-RTT-sa.patch
deleted file mode 100644
index db29f8d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0069-tcp-fix-tcp_rcv_rtt_update-use-of-an-unscaled-RTT-sa.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From e371feec366591f88fd4df14f701359bd08d33e7 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Tue, 10 Apr 2012 07:59:20 +0000
-Subject: [PATCH 069/165] tcp: fix tcp_rcv_rtt_update() use of an unscaled RTT
- sample
-
-[ Upstream commit 18a223e0b9ec8979320ba364b47c9772391d6d05 ]
-
-Fix a code path in tcp_rcv_rtt_update() that was comparing scaled and
-unscaled RTT samples.
-
-The intent in the code was to only use the 'm' measurement if it was a
-new minimum.  However, since 'm' had not yet been shifted left 3 bits
-but 'new_sample' had, this comparison would nearly always succeed,
-leading us to erroneously set our receive-side RTT estimate to the 'm'
-sample when that sample could be nearly 8x too high to use.
-
-The overall effect is to often cause the receive-side RTT estimate to
-be significantly too large (up to 40% too large for brief periods in
-my tests).
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp_input.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index e4d1e4a..4c46fa7 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -473,8 +473,11 @@ static void tcp_rcv_rtt_update(struct tcp_sock *tp, u32 sample, int win_dep)
- 		if (!win_dep) {
- 			m -= (new_sample >> 3);
- 			new_sample += m;
--		} else if (m < new_sample)
--			new_sample = m << 3;
-+		} else {
-+			m <<= 3;
-+			if (m < new_sample)
-+				new_sample = m;
-+		}
- 	} else {
- 		/* No previous measure. */
- 		new_sample = m << 3;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0070-net-allow-pskb_expand_head-to-get-maximum-tailroom.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0070-net-allow-pskb_expand_head-to-get-maximum-tailroom.patch
deleted file mode 100644
index 822c589..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0070-net-allow-pskb_expand_head-to-get-maximum-tailroom.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 03bdfc1371ae4ad8b2bbe50475baa6d983f62511 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 10 Apr 2012 20:08:39 +0000
-Subject: [PATCH 070/165] net: allow pskb_expand_head() to get maximum
- tailroom
-
-[ Upstream commit 87151b8689d890dfb495081f7be9b9e257f7a2df ]
-
-Marc Merlin reported many order-1 allocations failures in TX path on its
-wireless setup, that dont make any sense with MTU=1500 network, and non
-SG capable hardware.
-
-Turns out part of the problem comes from pskb_expand_head() not using
-ksize() to get exact head size given by kmalloc(). Doing the same thing
-than __alloc_skb() allows more tailroom in skb and can prevent future
-reallocations.
-
-As a bonus, struct skb_shared_info becomes cache line aligned.
-
-Reported-by: Marc MERLIN <marc at merlins.org>
-Tested-by: Marc MERLIN <marc at merlins.org>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/skbuff.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 29cb392..2ec200de 100644
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -903,9 +903,11 @@ int pskb_expand_head(struct sk_buff *skb, int nhead, int ntail,
- 		goto adjust_others;
- 	}
- 
--	data = kmalloc(size + sizeof(struct skb_shared_info), gfp_mask);
-+	data = kmalloc(size + SKB_DATA_ALIGN(sizeof(struct skb_shared_info)),
-+		       gfp_mask);
- 	if (!data)
- 		goto nodata;
-+	size = SKB_WITH_OVERHEAD(ksize(data));
- 
- 	/* Copy only real data... and, alas, header. This should be
- 	 * optimized for the cases when header is void.
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0071-tcp-fix-tcp_trim_head.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0071-tcp-fix-tcp_trim_head.patch
deleted file mode 100644
index da267d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0071-tcp-fix-tcp_trim_head.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 137530e7322e536a814836856ef12183cd786e5f Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Sun, 4 Dec 2011 08:51:08 +0000
-Subject: [PATCH 071/165] tcp: fix tcp_trim_head()
-
-[ Upstream commit 4fa48bf3c75069d636fc8830743c929a062e80dc ]
-
-commit f07d960df3 (tcp: avoid frag allocation for small frames)
-breaked assumption in tcp stack that skb is either linear (skb->data_len
-== 0), or fully fragged (skb->data_len == skb->len)
-
-tcp_trim_head() made this assumption, we must fix it.
-
-Thanks to Vijay for providing a very detailed explanation.
-
-Reported-by: Vijay Subramanian <subramanian.vijay at gmail.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp_output.c |   13 ++++++++-----
- 1 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
-index 097e0c7..7413437 100644
---- a/net/ipv4/tcp_output.c
-+++ b/net/ipv4/tcp_output.c
-@@ -1093,6 +1093,13 @@ static void __pskb_trim_head(struct sk_buff *skb, int len)
- {
- 	int i, k, eat;
- 
-+	eat = min_t(int, len, skb_headlen(skb));
-+	if (eat) {
-+		__skb_pull(skb, eat);
-+		len -= eat;
-+		if (!len)
-+			return;
-+	}
- 	eat = len;
- 	k = 0;
- 	for (i = 0; i < skb_shinfo(skb)->nr_frags; i++) {
-@@ -1124,11 +1131,7 @@ int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len)
- 	if (skb_cloned(skb) && pskb_expand_head(skb, 0, 0, GFP_ATOMIC))
- 		return -ENOMEM;
- 
--	/* If len == headlen, we avoid __skb_pull to preserve alignment. */
--	if (unlikely(len < skb_headlen(skb)))
--		__skb_pull(skb, len);
--	else
--		__pskb_trim_head(skb, len - skb_headlen(skb));
-+	__pskb_trim_head(skb, len);
- 
- 	TCP_SKB_CB(skb)->seq += len;
- 	skb->ip_summed = CHECKSUM_PARTIAL;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0072-tcp-avoid-order-1-allocations-on-wifi-and-tx-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0072-tcp-avoid-order-1-allocations-on-wifi-and-tx-path.patch
deleted file mode 100644
index ed03503..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0072-tcp-avoid-order-1-allocations-on-wifi-and-tx-path.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From f5e6c8aa4ebb62b560068b1636d889b4932c4dbc Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 24 Apr 2012 23:01:22 -0400
-Subject: [PATCH 072/165] tcp: avoid order-1 allocations on wifi and tx path
-
-[ This combines upstream commit
-  a21d45726acacc963d8baddf74607d9b74e2b723 and the follow-on bug fix
-  commit 22b4a4f22da4b39c6f7f679fd35f3d35c91bf851 ]
-
-Marc Merlin reported many order-1 allocations failures in TX path on its
-wireless setup, that dont make any sense with MTU=1500 network, and non
-SG capable hardware.
-
-After investigation, it turns out TCP uses sk_stream_alloc_skb() and
-used as a convention skb_tailroom(skb) to know how many bytes of data
-payload could be put in this skb (for non SG capable devices)
-
-Note : these skb used kmalloc-4096 (MTU=1500 + MAX_HEADER +
-sizeof(struct skb_shared_info) being above 2048)
-
-Later, mac80211 layer need to add some bytes at the tail of skb
-(IEEE80211_ENCRYPT_TAILROOM = 18 bytes) and since no more tailroom is
-available has to call pskb_expand_head() and request order-1
-allocations.
-
-This patch changes sk_stream_alloc_skb() so that only
-sk->sk_prot->max_header bytes of headroom are reserved, and use a new
-skb field, avail_size to hold the data payload limit.
-
-This way, order-0 allocations done by TCP stack can leave more than 2 KB
-of tailroom and no more allocation is performed in mac80211 layer (or
-any layer needing some tailroom)
-
-avail_size is unioned with mark/dropcount, since mark will be set later
-in IP stack for output packets. Therefore, skb size is unchanged.
-
-Reported-by: Marc MERLIN <marc at merlins.org>
-Tested-by: Marc MERLIN <marc at merlins.org>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Correct commit hash for follow-on bug fix]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/skbuff.h |   13 +++++++++++++
- net/ipv4/tcp.c         |    8 ++++----
- net/ipv4/tcp_output.c  |    3 ++-
- 3 files changed, 19 insertions(+), 5 deletions(-)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index 6cf8b53..e689b47 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -458,6 +458,7 @@ struct sk_buff {
- 	union {
- 		__u32		mark;
- 		__u32		dropcount;
-+		__u32		avail_size;
- 	};
- 
- 	__u16			vlan_tci;
-@@ -1326,6 +1327,18 @@ static inline int skb_tailroom(const struct sk_buff *skb)
- }
- 
- /**
-+ *	skb_availroom - bytes at buffer end
-+ *	@skb: buffer to check
-+ *
-+ *	Return the number of bytes of free space at the tail of an sk_buff
-+ *	allocated by sk_stream_alloc()
-+ */
-+static inline int skb_availroom(const struct sk_buff *skb)
-+{
-+	return skb_is_nonlinear(skb) ? 0 : skb->avail_size - skb->len;
-+}
-+
-+/**
-  *	skb_reserve - adjust headroom
-  *	@skb: buffer to alter
-  *	@len: bytes to move
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 36611ab..7904db4 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -701,11 +701,12 @@ struct sk_buff *sk_stream_alloc_skb(struct sock *sk, int size, gfp_t gfp)
- 	skb = alloc_skb_fclone(size + sk->sk_prot->max_header, gfp);
- 	if (skb) {
- 		if (sk_wmem_schedule(sk, skb->truesize)) {
-+			skb_reserve(skb, sk->sk_prot->max_header);
- 			/*
- 			 * Make sure that we have exactly size bytes
- 			 * available to the caller, no more, no less.
- 			 */
--			skb_reserve(skb, skb_tailroom(skb) - size);
-+			skb->avail_size = size;
- 			return skb;
- 		}
- 		__kfree_skb(skb);
-@@ -995,10 +996,9 @@ new_segment:
- 				copy = seglen;
- 
- 			/* Where to copy to? */
--			if (skb_tailroom(skb) > 0) {
-+			if (skb_availroom(skb) > 0) {
- 				/* We have some space in skb head. Superb! */
--				if (copy > skb_tailroom(skb))
--					copy = skb_tailroom(skb);
-+				copy = min_t(int, copy, skb_availroom(skb));
- 				err = skb_add_data_nocache(sk, skb, from, copy);
- 				if (err)
- 					goto do_fault;
-diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
-index 7413437..c51dd5b 100644
---- a/net/ipv4/tcp_output.c
-+++ b/net/ipv4/tcp_output.c
-@@ -1096,6 +1096,7 @@ static void __pskb_trim_head(struct sk_buff *skb, int len)
- 	eat = min_t(int, len, skb_headlen(skb));
- 	if (eat) {
- 		__skb_pull(skb, eat);
-+		skb->avail_size -= eat;
- 		len -= eat;
- 		if (!len)
- 			return;
-@@ -2060,7 +2061,7 @@ static void tcp_retrans_try_collapse(struct sock *sk, struct sk_buff *to,
- 		/* Punt if not enough space exists in the first SKB for
- 		 * the data in the second
- 		 */
--		if (skb->len > skb_tailroom(to))
-+		if (skb->len > skb_availroom(to))
- 			break;
- 
- 		if (after(TCP_SKB_CB(skb)->end_seq, tcp_wnd_end(tp)))
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0073-atl1-fix-kernel-panic-in-case-of-DMA-errors.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0073-atl1-fix-kernel-panic-in-case-of-DMA-errors.patch
deleted file mode 100644
index 3a883a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0073-atl1-fix-kernel-panic-in-case-of-DMA-errors.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 9785af56c9a0c73e462058b63999df1c95cf6ce7 Mon Sep 17 00:00:00 2001
-From: Tony Zelenoff <antonz at parallels.com>
-Date: Wed, 11 Apr 2012 06:15:03 +0000
-Subject: [PATCH 073/165] atl1: fix kernel panic in case of DMA errors
-
-[ Upstream commit 03662e41c7cff64a776bfb1b3816de4be43de881 ]
-
-Problem:
-There was two separate work_struct structures which share one
-handler. Unfortunately getting atl1_adapter structure from
-work_struct in case of DMA error was done from incorrect
-offset which cause kernel panics.
-
-Solution:
-The useless work_struct for DMA error removed and
-handler name changed to more generic one.
-
-Signed-off-by: Tony Zelenoff <antonz at parallels.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/atheros/atlx/atl1.c |   12 +++++-------
- drivers/net/ethernet/atheros/atlx/atl1.h |    3 +--
- drivers/net/ethernet/atheros/atlx/atlx.c |    2 +-
- 3 files changed, 7 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/net/ethernet/atheros/atlx/atl1.c b/drivers/net/ethernet/atheros/atlx/atl1.c
-index 33a4e35..ee532e1 100644
---- a/drivers/net/ethernet/atheros/atlx/atl1.c
-+++ b/drivers/net/ethernet/atheros/atlx/atl1.c
-@@ -2473,7 +2473,7 @@ static irqreturn_t atl1_intr(int irq, void *data)
- 					"pcie phy link down %x\n", status);
- 			if (netif_running(adapter->netdev)) {	/* reset MAC */
- 				iowrite32(0, adapter->hw.hw_addr + REG_IMR);
--				schedule_work(&adapter->pcie_dma_to_rst_task);
-+				schedule_work(&adapter->reset_dev_task);
- 				return IRQ_HANDLED;
- 			}
- 		}
-@@ -2485,7 +2485,7 @@ static irqreturn_t atl1_intr(int irq, void *data)
- 					"pcie DMA r/w error (status = 0x%x)\n",
- 					status);
- 			iowrite32(0, adapter->hw.hw_addr + REG_IMR);
--			schedule_work(&adapter->pcie_dma_to_rst_task);
-+			schedule_work(&adapter->reset_dev_task);
- 			return IRQ_HANDLED;
- 		}
- 
-@@ -2630,10 +2630,10 @@ static void atl1_down(struct atl1_adapter *adapter)
- 	atl1_clean_rx_ring(adapter);
- }
- 
--static void atl1_tx_timeout_task(struct work_struct *work)
-+static void atl1_reset_dev_task(struct work_struct *work)
- {
- 	struct atl1_adapter *adapter =
--		container_of(work, struct atl1_adapter, tx_timeout_task);
-+		container_of(work, struct atl1_adapter, reset_dev_task);
- 	struct net_device *netdev = adapter->netdev;
- 
- 	netif_device_detach(netdev);
-@@ -3032,12 +3032,10 @@ static int __devinit atl1_probe(struct pci_dev *pdev,
- 		    (unsigned long)adapter);
- 	adapter->phy_timer_pending = false;
- 
--	INIT_WORK(&adapter->tx_timeout_task, atl1_tx_timeout_task);
-+	INIT_WORK(&adapter->reset_dev_task, atl1_reset_dev_task);
- 
- 	INIT_WORK(&adapter->link_chg_task, atlx_link_chg_task);
- 
--	INIT_WORK(&adapter->pcie_dma_to_rst_task, atl1_tx_timeout_task);
--
- 	err = register_netdev(netdev);
- 	if (err)
- 		goto err_common;
-diff --git a/drivers/net/ethernet/atheros/atlx/atl1.h b/drivers/net/ethernet/atheros/atlx/atl1.h
-index 109d6da..e04bf4d 100644
---- a/drivers/net/ethernet/atheros/atlx/atl1.h
-+++ b/drivers/net/ethernet/atheros/atlx/atl1.h
-@@ -758,9 +758,8 @@ struct atl1_adapter {
- 	u16 link_speed;
- 	u16 link_duplex;
- 	spinlock_t lock;
--	struct work_struct tx_timeout_task;
-+	struct work_struct reset_dev_task;
- 	struct work_struct link_chg_task;
--	struct work_struct pcie_dma_to_rst_task;
- 
- 	struct timer_list phy_config_timer;
- 	bool phy_timer_pending;
-diff --git a/drivers/net/ethernet/atheros/atlx/atlx.c b/drivers/net/ethernet/atheros/atlx/atlx.c
-index aabcf4b..41c6d83 100644
---- a/drivers/net/ethernet/atheros/atlx/atlx.c
-+++ b/drivers/net/ethernet/atheros/atlx/atlx.c
-@@ -193,7 +193,7 @@ static void atlx_tx_timeout(struct net_device *netdev)
- {
- 	struct atlx_adapter *adapter = netdev_priv(netdev);
- 	/* Do the reset outside of interrupt context */
--	schedule_work(&adapter->tx_timeout_task);
-+	schedule_work(&adapter->reset_dev_task);
- }
- 
- /*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0074-8139cp-set-intr-mask-after-its-handler-is-registered.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0074-8139cp-set-intr-mask-after-its-handler-is-registered.patch
deleted file mode 100644
index 5f7d3f5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0074-8139cp-set-intr-mask-after-its-handler-is-registered.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d3b5873235963930f20f0900871e72ff3b80274b Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 11 Apr 2012 22:10:54 +0000
-Subject: [PATCH 074/165] 8139cp: set intr mask after its handler is
- registered
-
-[ Upstream commit a8c9cb106fe79c28d6b7f1397652cadd228715ff ]
-
-We set intr mask before its handler is registered, this does not work well when
-8139cp is sharing irq line with other devices. As the irq could be enabled by
-the device before 8139cp's hander is registered which may lead unhandled
-irq. Fix this by introducing an helper cp_irq_enable() and call it after
-request_irq().
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Reviewed-by: Flavio Leitner <fbl at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/realtek/8139cp.c |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c
-index aba4f67..8f47907 100644
---- a/drivers/net/ethernet/realtek/8139cp.c
-+++ b/drivers/net/ethernet/realtek/8139cp.c
-@@ -961,6 +961,11 @@ static inline void cp_start_hw (struct cp_private *cp)
- 	cpw8(Cmd, RxOn | TxOn);
- }
- 
-+static void cp_enable_irq(struct cp_private *cp)
-+{
-+	cpw16_f(IntrMask, cp_intr_mask);
-+}
-+
- static void cp_init_hw (struct cp_private *cp)
- {
- 	struct net_device *dev = cp->dev;
-@@ -1000,8 +1005,6 @@ static void cp_init_hw (struct cp_private *cp)
- 
- 	cpw16(MultiIntr, 0);
- 
--	cpw16_f(IntrMask, cp_intr_mask);
--
- 	cpw8_f(Cfg9346, Cfg9346_Lock);
- }
- 
-@@ -1133,6 +1136,8 @@ static int cp_open (struct net_device *dev)
- 	if (rc)
- 		goto err_out_hw;
- 
-+	cp_enable_irq(cp);
-+
- 	netif_carrier_off(dev);
- 	mii_check_media(&cp->mii_if, netif_msg_link(cp), true);
- 	netif_start_queue(dev);
-@@ -2034,6 +2039,7 @@ static int cp_resume (struct pci_dev *pdev)
- 	/* FIXME: sh*t may happen if the Rx ring buffer is depleted */
- 	cp_init_rings_index (cp);
- 	cp_init_hw (cp);
-+	cp_enable_irq(cp);
- 	netif_start_queue (dev);
- 
- 	spin_lock_irqsave (&cp->lock, flags);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0075-net-smsc911x-fix-skb-handling-in-receive-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0075-net-smsc911x-fix-skb-handling-in-receive-path.patch
deleted file mode 100644
index 996bfc4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0075-net-smsc911x-fix-skb-handling-in-receive-path.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From d886ddd4ea18bd874325e888d3272a8db0a972ea Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Thu, 12 Apr 2012 05:54:09 +0000
-Subject: [PATCH 075/165] net: smsc911x: fix skb handling in receive path
-
-[ Upstream commit 3c5e979bd037888dd7d722da22da4b43659af485 ]
-
-The SMSC911x driver resets the ->head, ->data and ->tail pointers in the
-skb on the reset path in order to avoid buffer overflow due to packet
-padding performed by the hardware.
-
-This patch fixes the receive path so that the skb pointers are fixed up
-after the data has been read from the device, The error path is also
-fixed to use number of words consistently and prevent erroneous FIFO
-fastforwarding when skipping over bad data.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/smsc/smsc911x.c |   14 +++++---------
- 1 files changed, 5 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/net/ethernet/smsc/smsc911x.c b/drivers/net/ethernet/smsc/smsc911x.c
-index 8843071..8c7dd21 100644
---- a/drivers/net/ethernet/smsc/smsc911x.c
-+++ b/drivers/net/ethernet/smsc/smsc911x.c
-@@ -1089,10 +1089,8 @@ smsc911x_rx_counterrors(struct net_device *dev, unsigned int rxstat)
- 
- /* Quickly dumps bad packets */
- static void
--smsc911x_rx_fastforward(struct smsc911x_data *pdata, unsigned int pktbytes)
-+smsc911x_rx_fastforward(struct smsc911x_data *pdata, unsigned int pktwords)
- {
--	unsigned int pktwords = (pktbytes + NET_IP_ALIGN + 3) >> 2;
--
- 	if (likely(pktwords >= 4)) {
- 		unsigned int timeout = 500;
- 		unsigned int val;
-@@ -1156,7 +1154,7 @@ static int smsc911x_poll(struct napi_struct *napi, int budget)
- 			continue;
- 		}
- 
--		skb = netdev_alloc_skb(dev, pktlength + NET_IP_ALIGN);
-+		skb = netdev_alloc_skb(dev, pktwords << 2);
- 		if (unlikely(!skb)) {
- 			SMSC_WARN(pdata, rx_err,
- 				  "Unable to allocate skb for rx packet");
-@@ -1166,14 +1164,12 @@ static int smsc911x_poll(struct napi_struct *napi, int budget)
- 			break;
- 		}
- 
--		skb->data = skb->head;
--		skb_reset_tail_pointer(skb);
-+		pdata->ops->rx_readfifo(pdata,
-+				 (unsigned int *)skb->data, pktwords);
- 
- 		/* Align IP on 16B boundary */
- 		skb_reserve(skb, NET_IP_ALIGN);
- 		skb_put(skb, pktlength - 4);
--		pdata->ops->rx_readfifo(pdata,
--				 (unsigned int *)skb->head, pktwords);
- 		skb->protocol = eth_type_trans(skb, dev);
- 		skb_checksum_none_assert(skb);
- 		netif_receive_skb(skb);
-@@ -1396,7 +1392,7 @@ static int smsc911x_open(struct net_device *dev)
- 	smsc911x_reg_write(pdata, FIFO_INT, temp);
- 
- 	/* set RX Data offset to 2 bytes for alignment */
--	smsc911x_reg_write(pdata, RX_CFG, (2 << 8));
-+	smsc911x_reg_write(pdata, RX_CFG, (NET_IP_ALIGN << 8));
- 
- 	/* enable NAPI polling before enabling RX interrupts */
- 	napi_enable(&pdata->napi);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0076-net-ethernet-ks8851_mll-fix-rx-frame-buffer-overflow.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0076-net-ethernet-ks8851_mll-fix-rx-frame-buffer-overflow.patch
deleted file mode 100644
index 627d288..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0076-net-ethernet-ks8851_mll-fix-rx-frame-buffer-overflow.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 64adebf7ebe78704f2a1f09614184f1ede7631b2 Mon Sep 17 00:00:00 2001
-From: Davide Ciminaghi <ciminaghi at gnudd.com>
-Date: Fri, 13 Apr 2012 04:48:25 +0000
-Subject: [PATCH 076/165] net/ethernet: ks8851_mll fix rx frame buffer
- overflow
-
-[ Upstream commit 8a9a0ea6032186e3030419262678d652b88bf6a8 ]
-
-At the beginning of ks_rcv(), a for loop retrieves the
-header information relevant to all the frames stored
-in the mac's internal buffers. The number of pending
-frames is stored as an 8 bits field in KS_RXFCTR.
-If interrupts are disabled long enough to allow for more than
-32 frames to accumulate in the MAC's internal buffers, a buffer
-overflow occurs.
-This patch fixes the problem by making the
-driver's frame_head_info buffer big enough.
-Well actually, since the chip appears to have 12K of
-internal rx buffers and the shortest ethernet frame should
-be 64 bytes long, maybe the limit could be set to
-12*1024/64 = 192 frames, but 255 should be safer.
-
-Signed-off-by: Davide Ciminaghi <ciminaghi at gnudd.com>
-Signed-off-by: Raffaele Recalcati <raffaele.recalcati at bticino.it>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/micrel/ks8851_mll.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ks8851_mll.c b/drivers/net/ethernet/micrel/ks8851_mll.c
-index d19c849..77241b6 100644
---- a/drivers/net/ethernet/micrel/ks8851_mll.c
-+++ b/drivers/net/ethernet/micrel/ks8851_mll.c
-@@ -40,7 +40,7 @@
- #define	DRV_NAME	"ks8851_mll"
- 
- static u8 KS_DEFAULT_MAC_ADDRESS[] = { 0x00, 0x10, 0xA1, 0x86, 0x95, 0x11 };
--#define MAX_RECV_FRAMES			32
-+#define MAX_RECV_FRAMES			255
- #define MAX_BUF_SIZE			2048
- #define TX_BUF_SIZE			2000
- #define RX_BUF_SIZE			2000
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0077-net_sched-gred-Fix-oops-in-gred_dump-in-WRED-mode.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0077-net_sched-gred-Fix-oops-in-gred_dump-in-WRED-mode.patch
deleted file mode 100644
index 0ffd9a5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0077-net_sched-gred-Fix-oops-in-gred_dump-in-WRED-mode.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From fad0985a19b237d9b48ab19b767413a95314b90d Mon Sep 17 00:00:00 2001
-From: David Ward <david.ward at ll.mit.edu>
-Date: Sun, 15 Apr 2012 12:31:45 +0000
-Subject: [PATCH 077/165] net_sched: gred: Fix oops in gred_dump() in WRED
- mode
-
-[ Upstream commit 244b65dbfede788f2fa3fe2463c44d0809e97c6b ]
-
-A parameter set exists for WRED mode, called wred_set, to hold the same
-values for qavg and qidlestart across all VQs. The WRED mode values had
-been previously held in the VQ for the default DP. After these values
-were moved to wred_set, the VQ for the default DP was no longer created
-automatically (so that it could be omitted on purpose, to have packets
-in the default DP enqueued directly to the device without using RED).
-
-However, gred_dump() was overlooked during that change; in WRED mode it
-still reads qavg/qidlestart from the VQ for the default DP, which might
-not even exist. As a result, this command sequence will cause an oops:
-
-tc qdisc add dev $DEV handle $HANDLE parent $PARENT gred setup \
-    DPs 3 default 2 grio
-tc qdisc change dev $DEV handle $HANDLE gred DP 0 prio 8 $RED_OPTIONS
-tc qdisc change dev $DEV handle $HANDLE gred DP 1 prio 8 $RED_OPTIONS
-
-This fixes gred_dump() in WRED mode to use the values held in wred_set.
-
-Signed-off-by: David Ward <david.ward at ll.mit.edu>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sched/sch_gred.c |    7 ++-----
- 1 files changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/net/sched/sch_gred.c b/net/sched/sch_gred.c
-index 6cd8ddf..e1afe0c 100644
---- a/net/sched/sch_gred.c
-+++ b/net/sched/sch_gred.c
-@@ -544,11 +544,8 @@ static int gred_dump(struct Qdisc *sch, struct sk_buff *skb)
- 		opt.packets	= q->packetsin;
- 		opt.bytesin	= q->bytesin;
- 
--		if (gred_wred_mode(table)) {
--			q->parms.qidlestart =
--				table->tab[table->def]->parms.qidlestart;
--			q->parms.qavg = table->tab[table->def]->parms.qavg;
--		}
-+		if (gred_wred_mode(table))
-+			gred_load_wred_set(table, q);
- 
- 		opt.qave = red_calc_qavg(&q->parms, q->parms.qavg);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0078-net-usb-smsc75xx-fix-mtu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0078-net-usb-smsc75xx-fix-mtu.patch
deleted file mode 100644
index 38677b0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0078-net-usb-smsc75xx-fix-mtu.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From a242d0ff40b2ef87f4c23c4676441ed1c4ee20cd Mon Sep 17 00:00:00 2001
-From: Stephane Fillod <fillods at users.sf.net>
-Date: Sun, 15 Apr 2012 11:38:29 +0000
-Subject: [PATCH 078/165] net: usb: smsc75xx: fix mtu
-
-[ Upstream commit a99ff7d0123b19ecad3b589480b6542716ab6b52 ]
-
-Make smsc75xx recalculate the hard_mtu after adjusting the
-hard_header_len.
-
-Without this, usbnet adjusts the MTU down to 1492 bytes, and the host is
-unable to receive standard 1500-byte frames from the device.
-
-Inspired by same fix on cdc_eem 78fb72f7936c01d5b426c03a691eca082b03f2b9.
-
-Tested on ARM/Omap3 with EVB-LAN7500-LC.
-
-Signed-off-by: Stephane Fillod <fillods at users.sf.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/smsc75xx.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/usb/smsc75xx.c b/drivers/net/usb/smsc75xx.c
-index a5b9b12..7bd219b 100644
---- a/drivers/net/usb/smsc75xx.c
-+++ b/drivers/net/usb/smsc75xx.c
-@@ -1050,6 +1050,7 @@ static int smsc75xx_bind(struct usbnet *dev, struct usb_interface *intf)
- 	dev->net->ethtool_ops = &smsc75xx_ethtool_ops;
- 	dev->net->flags |= IFF_MULTICAST;
- 	dev->net->hard_header_len += SMSC75XX_TX_OVERHEAD;
-+	dev->hard_mtu = dev->net->mtu + dev->net->hard_header_len;
- 	return 0;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0079-dummy-Add-ndo_uninit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0079-dummy-Add-ndo_uninit.patch
deleted file mode 100644
index 2a8aa71..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0079-dummy-Add-ndo_uninit.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From ee79f6838bd3f230ebf00849029dac3b9be112e5 Mon Sep 17 00:00:00 2001
-From: Hiroaki SHIMODA <shimoda.hiroaki at gmail.com>
-Date: Sun, 15 Apr 2012 13:26:01 +0000
-Subject: [PATCH 079/165] dummy: Add ndo_uninit().
-
-commit 890fdf2a0cb88202d1427589db2cf29c1bdd3c1d upstream.
-
-In register_netdevice(), when ndo_init() is successful and later
-some error occurred, ndo_uninit() will be called.
-So dummy deivce is desirable to implement ndo_uninit() method
-to free percpu stats for this case.
-And, ndo_uninit() is also called along with dev->destructor() when
-device is unregistered, so in order to prevent dev->dstats from
-being freed twice, dev->destructor is modified to free_netdev().
-
-Signed-off-by: Hiroaki SHIMODA <shimoda.hiroaki at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/dummy.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
-index a7c5e88..eeac9ca 100644
---- a/drivers/net/dummy.c
-+++ b/drivers/net/dummy.c
-@@ -106,14 +106,14 @@ static int dummy_dev_init(struct net_device *dev)
- 	return 0;
- }
- 
--static void dummy_dev_free(struct net_device *dev)
-+static void dummy_dev_uninit(struct net_device *dev)
- {
- 	free_percpu(dev->dstats);
--	free_netdev(dev);
- }
- 
- static const struct net_device_ops dummy_netdev_ops = {
- 	.ndo_init		= dummy_dev_init,
-+	.ndo_uninit		= dummy_dev_uninit,
- 	.ndo_start_xmit		= dummy_xmit,
- 	.ndo_validate_addr	= eth_validate_addr,
- 	.ndo_set_rx_mode	= set_multicast_list,
-@@ -127,7 +127,7 @@ static void dummy_setup(struct net_device *dev)
- 
- 	/* Initialize the device structure. */
- 	dev->netdev_ops = &dummy_netdev_ops;
--	dev->destructor = dummy_dev_free;
-+	dev->destructor = free_netdev;
- 
- 	/* Fill in device structure with ethernet-generic values. */
- 	dev->tx_queue_len = 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0080-tcp-fix-tcp_grow_window-for-large-incoming-frames.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0080-tcp-fix-tcp_grow_window-for-large-incoming-frames.patch
deleted file mode 100644
index 3ed3591..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0080-tcp-fix-tcp_grow_window-for-large-incoming-frames.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 57c5b1028d7bffa4d7784dd4bd8743710dc62d0c Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Mon, 16 Apr 2012 23:28:07 +0000
-Subject: [PATCH 080/165] tcp: fix tcp_grow_window() for large incoming frames
-
-[ Upstream commit 4d846f02392a710f9604892ac3329e628e60a230 ]
-
-tcp_grow_window() has to grow rcv_ssthresh up to window_clamp, allowing
-sender to increase its window.
-
-tcp_grow_window() still assumes a tcp frame is under MSS, but its no
-longer true with LRO/GRO.
-
-This patch fixes one of the performance issue we noticed with GRO on.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Neal Cardwell <ncardwell at google.com>
-Cc: Tom Herbert <therbert at google.com>
-Acked-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp_input.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 4c46fa7..daedc07 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -334,6 +334,7 @@ static void tcp_grow_window(struct sock *sk, const struct sk_buff *skb)
- 			incr = __tcp_grow_window(sk, skb);
- 
- 		if (incr) {
-+			incr = max_t(int, incr, 2 * skb->len);
- 			tp->rcv_ssthresh = min(tp->rcv_ssthresh + incr,
- 					       tp->window_clamp);
- 			inet_csk(sk)->icsk_ack.quick |= 1;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0081-netns-do-not-leak-net_generic-data-on-failed-init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0081-netns-do-not-leak-net_generic-data-on-failed-init.patch
deleted file mode 100644
index b5c686d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0081-netns-do-not-leak-net_generic-data-on-failed-init.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 4637103c9e0f2f7cef243c369f6b451550a4944d Mon Sep 17 00:00:00 2001
-From: Julian Anastasov <ja at ssi.bg>
-Date: Mon, 16 Apr 2012 04:43:15 +0000
-Subject: [PATCH 081/165] netns: do not leak net_generic data on failed init
-
-[ Upstream commit b922934d017f1cc831b017913ed7d1a56c558b43 ]
-
-ops_init should free the net_generic data on
-init failure and __register_pernet_operations should not
-call ops_free when NET_NS is not enabled.
-
-Signed-off-by: Julian Anastasov <ja at ssi.bg>
-Reviewed-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/net_namespace.c |   33 ++++++++++++++++++---------------
- 1 files changed, 18 insertions(+), 15 deletions(-)
-
-diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
-index 0e950fd..31a5ae5 100644
---- a/net/core/net_namespace.c
-+++ b/net/core/net_namespace.c
-@@ -83,21 +83,29 @@ assign:
- 
- static int ops_init(const struct pernet_operations *ops, struct net *net)
- {
--	int err;
-+	int err = -ENOMEM;
-+	void *data = NULL;
-+
- 	if (ops->id && ops->size) {
--		void *data = kzalloc(ops->size, GFP_KERNEL);
-+		data = kzalloc(ops->size, GFP_KERNEL);
- 		if (!data)
--			return -ENOMEM;
-+			goto out;
- 
- 		err = net_assign_generic(net, *ops->id, data);
--		if (err) {
--			kfree(data);
--			return err;
--		}
-+		if (err)
-+			goto cleanup;
- 	}
-+	err = 0;
- 	if (ops->init)
--		return ops->init(net);
--	return 0;
-+		err = ops->init(net);
-+	if (!err)
-+		return 0;
-+
-+cleanup:
-+	kfree(data);
-+
-+out:
-+	return err;
- }
- 
- static void ops_free(const struct pernet_operations *ops, struct net *net)
-@@ -448,12 +456,7 @@ static void __unregister_pernet_operations(struct pernet_operations *ops)
- static int __register_pernet_operations(struct list_head *list,
- 					struct pernet_operations *ops)
- {
--	int err = 0;
--	err = ops_init(ops, &init_net);
--	if (err)
--		ops_free(ops, &init_net);
--	return err;
--	
-+	return ops_init(ops, &init_net);
- }
- 
- static void __unregister_pernet_operations(struct pernet_operations *ops)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0082-ksz884x-don-t-copy-too-much-in-netdev_set_mac_addres.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0082-ksz884x-don-t-copy-too-much-in-netdev_set_mac_addres.patch
deleted file mode 100644
index bf01b93..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0082-ksz884x-don-t-copy-too-much-in-netdev_set_mac_addres.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 921c1088587031a14b41d53e69c15ea76d4124ce Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Thu, 19 Apr 2012 10:00:19 +0300
-Subject: [PATCH 082/165] ksz884x: don't copy too much in
- netdev_set_mac_address()
-
-[ Upstream commit 716af4abd6e6370226f567af50bfaca274515980 ]
-
-MAX_ADDR_LEN is 32.  ETH_ALEN is 6.  mac->sa_data is a 14 byte array, so
-the memcpy() is doing a read past the end of the array.  I asked about
-this on netdev and Ben Hutchings told me it's supposed to be copying
-ETH_ALEN bytes (thanks Ben).
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/micrel/ksz884x.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/micrel/ksz884x.c b/drivers/net/ethernet/micrel/ksz884x.c
-index 7ece990..4b9f4bd 100644
---- a/drivers/net/ethernet/micrel/ksz884x.c
-+++ b/drivers/net/ethernet/micrel/ksz884x.c
-@@ -5679,7 +5679,7 @@ static int netdev_set_mac_address(struct net_device *dev, void *addr)
- 		memcpy(hw->override_addr, mac->sa_data, MAC_ADDR_LEN);
- 	}
- 
--	memcpy(dev->dev_addr, mac->sa_data, MAX_ADDR_LEN);
-+	memcpy(dev->dev_addr, mac->sa_data, ETH_ALEN);
- 
- 	interrupt = hw_block_intr(hw);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0083-net-ax25-Reorder-ax25_exit-to-remove-races.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0083-net-ax25-Reorder-ax25_exit-to-remove-races.patch
deleted file mode 100644
index b0dc17d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0083-net-ax25-Reorder-ax25_exit-to-remove-races.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 5d2236761edc280d899b5721a6aa29d2cd1d1718 Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Wed, 18 Apr 2012 16:11:23 +0000
-Subject: [PATCH 083/165] net ax25: Reorder ax25_exit to remove races.
-
-[ Upstream commit 3adadc08cc1e2cbcc15a640d639297ef5fcb17f5 ]
-
-While reviewing the sysctl code in ax25 I spotted races in ax25_exit
-where it is possible to receive notifications and packets after already
-freeing up some of the data structures needed to process those
-notifications and updates.
-
-Call unregister_netdevice_notifier early so that the rest of the cleanup
-code does not need to deal with network devices.  This takes advantage
-of my recent enhancement to unregister_netdevice_notifier to send
-unregister notifications of all network devices that are current
-registered.
-
-Move the unregistration for packet types, socket types and protocol
-types before we cleanup any of the ax25 data structures to remove the
-possibilities of other races.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ax25/af_ax25.c |    9 +++++----
- 1 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/net/ax25/af_ax25.c b/net/ax25/af_ax25.c
-index e7c69f4..b04a6ef 100644
---- a/net/ax25/af_ax25.c
-+++ b/net/ax25/af_ax25.c
-@@ -2006,16 +2006,17 @@ static void __exit ax25_exit(void)
- 	proc_net_remove(&init_net, "ax25_route");
- 	proc_net_remove(&init_net, "ax25");
- 	proc_net_remove(&init_net, "ax25_calls");
--	ax25_rt_free();
--	ax25_uid_free();
--	ax25_dev_free();
- 
--	ax25_unregister_sysctl();
- 	unregister_netdevice_notifier(&ax25_dev_notifier);
-+	ax25_unregister_sysctl();
- 
- 	dev_remove_pack(&ax25_packet_type);
- 
- 	sock_unregister(PF_AX25);
- 	proto_unregister(&ax25_proto);
-+
-+	ax25_rt_free();
-+	ax25_uid_free();
-+	ax25_dev_free();
- }
- module_exit(ax25_exit);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0084-tcp-fix-TCP_MAXSEG-for-established-IPv6-passive-sock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0084-tcp-fix-TCP_MAXSEG-for-established-IPv6-passive-sock.patch
deleted file mode 100644
index dbf428a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0084-tcp-fix-TCP_MAXSEG-for-established-IPv6-passive-sock.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 0f6ddd1f2a2e87994e797d2877e7270cfc7ec03c Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Sun, 22 Apr 2012 09:45:47 +0000
-Subject: [PATCH 084/165] tcp: fix TCP_MAXSEG for established IPv6 passive
- sockets
-
-[ Upstream commit d135c522f1234f62e81be29cebdf59e9955139ad ]
-
-Commit f5fff5d forgot to fix TCP_MAXSEG behavior IPv6 sockets, so IPv6
-TCP server sockets that used TCP_MAXSEG would find that the advmss of
-child sockets would be incorrect. This commit mirrors the advmss logic
-from tcp_v4_syn_recv_sock in tcp_v6_syn_recv_sock. Eventually this
-logic should probably be shared between IPv4 and IPv6, but this at
-least fixes this issue.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv6/tcp_ipv6.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
-index b859e4a..4a56574 100644
---- a/net/ipv6/tcp_ipv6.c
-+++ b/net/ipv6/tcp_ipv6.c
-@@ -1494,6 +1494,10 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
- 	tcp_mtup_init(newsk);
- 	tcp_sync_mss(newsk, dst_mtu(dst));
- 	newtp->advmss = dst_metric_advmss(dst);
-+	if (tcp_sk(sk)->rx_opt.user_mss &&
-+	    tcp_sk(sk)->rx_opt.user_mss < newtp->advmss)
-+		newtp->advmss = tcp_sk(sk)->rx_opt.user_mss;
-+
- 	tcp_initialize_rcv_mss(newsk);
- 	if (tcp_rsk(req)->snt_synack)
- 		tcp_valid_rtt_meas(newsk,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0085-nfs-Enclose-hostname-in-brackets-when-needed-in-nfs_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0085-nfs-Enclose-hostname-in-brackets-when-needed-in-nfs_.patch
deleted file mode 100644
index c718104..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0085-nfs-Enclose-hostname-in-brackets-when-needed-in-nfs_.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5d341b71950df3cbd21a7abf61ab903aac90531b Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Sat, 3 Sep 2011 01:09:43 +0200
-Subject: [PATCH 085/165] nfs: Enclose hostname in brackets when needed in
- nfs_do_root_mount
-
-commit 98a2139f4f4d7b5fcc3a54c7fddbe88612abed20 upstream.
-
-When hostname contains colon (e.g. when it is an IPv6 address) it needs
-to be enclosed in brackets to make parsing of NFS device string possible.
-Fix nfs_do_root_mount() to enclose hostname properly when needed. NFS code
-actually does not need this as it does not parse the string passed by
-nfs_do_root_mount() but the device string is exposed to userspace in
-/proc/mounts.
-
-CC: Josh Boyer <jwboyer at redhat.com>
-CC: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/super.c |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfs/super.c b/fs/nfs/super.c
-index 3ada13c..376cd65 100644
---- a/fs/nfs/super.c
-+++ b/fs/nfs/super.c
-@@ -2708,11 +2708,15 @@ static struct vfsmount *nfs_do_root_mount(struct file_system_type *fs_type,
- 	char *root_devname;
- 	size_t len;
- 
--	len = strlen(hostname) + 3;
-+	len = strlen(hostname) + 5;
- 	root_devname = kmalloc(len, GFP_KERNEL);
- 	if (root_devname == NULL)
- 		return ERR_PTR(-ENOMEM);
--	snprintf(root_devname, len, "%s:/", hostname);
-+	/* Does hostname needs to be enclosed in brackets? */
-+	if (strchr(hostname, ':'))
-+		snprintf(root_devname, len, "[%s]:/", hostname);
-+	else
-+		snprintf(root_devname, len, "%s:/", hostname);
- 	root_mnt = vfs_kern_mount(fs_type, flags, root_devname, data);
- 	kfree(root_devname);
- 	return root_mnt;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0086-NFSv4-Ensure-that-the-LOCK-code-sets-exception-inode.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0086-NFSv4-Ensure-that-the-LOCK-code-sets-exception-inode.patch
deleted file mode 100644
index a0dff9c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0086-NFSv4-Ensure-that-the-LOCK-code-sets-exception-inode.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 4fd3b67b3816e020c889f75e986ba290110c3224 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Wed, 18 Apr 2012 12:20:10 -0400
-Subject: [PATCH 086/165] NFSv4: Ensure that the LOCK code sets
- exception->inode
-
-commit 05ffe24f5290dc095f98fbaf84afe51ef404ccc5 upstream.
-
-All callers of nfs4_handle_exception() that need to handle
-NFS4ERR_OPENMODE correctly should set exception->inode
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 757293b..57f9971 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -4453,7 +4453,9 @@ static int _nfs4_do_setlk(struct nfs4_state *state, int cmd, struct file_lock *f
- static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request)
- {
- 	struct nfs_server *server = NFS_SERVER(state->inode);
--	struct nfs4_exception exception = { };
-+	struct nfs4_exception exception = {
-+		.inode = state->inode,
-+	};
- 	int err;
- 
- 	do {
-@@ -4471,7 +4473,9 @@ static int nfs4_lock_reclaim(struct nfs4_state *state, struct file_lock *request
- static int nfs4_lock_expired(struct nfs4_state *state, struct file_lock *request)
- {
- 	struct nfs_server *server = NFS_SERVER(state->inode);
--	struct nfs4_exception exception = { };
-+	struct nfs4_exception exception = {
-+		.inode = state->inode,
-+	};
- 	int err;
- 
- 	err = nfs4_set_lock_state(state, request);
-@@ -4551,6 +4555,7 @@ static int nfs4_proc_setlk(struct nfs4_state *state, int cmd, struct file_lock *
- {
- 	struct nfs4_exception exception = {
- 		.state = state,
-+		.inode = state->inode,
- 	};
- 	int err;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0087-NFSv4-Ensure-that-we-check-lock-exclusive-shared-typ.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0087-NFSv4-Ensure-that-we-check-lock-exclusive-shared-typ.patch
deleted file mode 100644
index 8a5f01d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0087-NFSv4-Ensure-that-we-check-lock-exclusive-shared-typ.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 2057efde24445d1ca4d192617bf7d5f4fe0f38ce Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Wed, 18 Apr 2012 12:48:35 -0400
-Subject: [PATCH 087/165] NFSv4: Ensure that we check lock exclusive/shared
- type against open modes
-
-commit 55725513b5ef9d462aa3e18527658a0362aaae83 upstream.
-
-Since we may be simulating flock() locks using NFS byte range locks,
-we can't rely on the VFS having checked the file open mode for us.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |   14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 57f9971..51f6a40 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -4601,6 +4601,20 @@ nfs4_proc_lock(struct file *filp, int cmd, struct file_lock *request)
- 
- 	if (state == NULL)
- 		return -ENOLCK;
-+	/*
-+	 * Don't rely on the VFS having checked the file open mode,
-+	 * since it won't do this for flock() locks.
-+	 */
-+	switch (request->fl_type & (F_RDLCK|F_WRLCK|F_UNLCK)) {
-+	case F_RDLCK:
-+		if (!(filp->f_mode & FMODE_READ))
-+			return -EBADF;
-+		break;
-+	case F_WRLCK:
-+		if (!(filp->f_mode & FMODE_WRITE))
-+			return -EBADF;
-+	}
-+
- 	do {
- 		status = nfs4_proc_setlk(state, cmd, request);
- 		if ((status != -EAGAIN) || IS_SETLK(cmd))
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0088-NFS-put-open-context-on-error-in-nfs_pagein_multi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0088-NFS-put-open-context-on-error-in-nfs_pagein_multi.patch
deleted file mode 100644
index b0b0149..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0088-NFS-put-open-context-on-error-in-nfs_pagein_multi.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 24f8b6b7ed6a71c4bb6b7c586a1cfa9d70e9775e Mon Sep 17 00:00:00 2001
-From: Fred Isaman <iisaman at netapp.com>
-Date: Fri, 20 Apr 2012 14:47:34 -0400
-Subject: [PATCH 088/165] NFS: put open context on error in nfs_pagein_multi
-
-commit 73fb7bc7c57d971b11f2e00536ac2d3e316e0609 upstream.
-
-Signed-off-by: Fred Isaman <iisaman at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/read.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/nfs/read.c b/fs/nfs/read.c
-index cfa175c..41bae32 100644
---- a/fs/nfs/read.c
-+++ b/fs/nfs/read.c
-@@ -324,7 +324,7 @@ out_bad:
- 	while (!list_empty(res)) {
- 		data = list_entry(res->next, struct nfs_read_data, list);
- 		list_del(&data->list);
--		nfs_readdata_free(data);
-+		nfs_readdata_release(data);
- 	}
- 	nfs_readpage_release(req);
- 	return -ENOMEM;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0089-NFS-put-open-context-on-error-in-nfs_flush_multi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0089-NFS-put-open-context-on-error-in-nfs_flush_multi.patch
deleted file mode 100644
index aff198a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0089-NFS-put-open-context-on-error-in-nfs_flush_multi.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From dbef91f49d543a546ee1cbe3e839c97c69486744 Mon Sep 17 00:00:00 2001
-From: Fred Isaman <iisaman at netapp.com>
-Date: Fri, 20 Apr 2012 14:47:35 -0400
-Subject: [PATCH 089/165] NFS: put open context on error in nfs_flush_multi
-
-commit 8ccd271f7a3a846ce6f85ead0760d9d12994a611 upstream.
-
-Signed-off-by: Fred Isaman <iisaman at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/write.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/nfs/write.c b/fs/nfs/write.c
-index 1dda78d..4efd421 100644
---- a/fs/nfs/write.c
-+++ b/fs/nfs/write.c
-@@ -974,7 +974,7 @@ out_bad:
- 	while (!list_empty(res)) {
- 		data = list_entry(res->next, struct nfs_write_data, list);
- 		list_del(&data->list);
--		nfs_writedata_free(data);
-+		nfs_writedata_release(data);
- 	}
- 	nfs_redirty_request(req);
- 	return -ENOMEM;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0090-x86-microcode-Fix-sysfs-warning-during-module-unload.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0090-x86-microcode-Fix-sysfs-warning-during-module-unload.patch
deleted file mode 100644
index 89e7192..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0090-x86-microcode-Fix-sysfs-warning-during-module-unload.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From e7e6ba91db68ef0028d61a2bf8b9f3965595b944 Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Thu, 12 Apr 2012 16:48:01 +0200
-Subject: [PATCH 090/165] x86, microcode: Fix sysfs warning during module
- unload on unsupported CPUs
-
-commit a956bd6f8583326b18348ab1452b4686778f785d upstream.
-
-Loading the microcode driver on an unsupported CPU and subsequently
-unloading the driver causes
-
- WARNING: at fs/sysfs/group.c:138 mc_device_remove+0x5f/0x70 [microcode]()
- Hardware name: 01972NG
- sysfs group ffffffffa00013d0 not found for kobject 'cpu0'
- Modules linked in: snd_hda_codec_hdmi snd_hda_codec_conexant snd_hda_intel btusb snd_hda_codec bluetooth thinkpad_acpi rfkill microcode(-) [last unloaded: cfg80211]
- Pid: 4560, comm: modprobe Not tainted 3.4.0-rc2-00002-g258f742 #5
- Call Trace:
-  [<ffffffff8103113b>] ? warn_slowpath_common+0x7b/0xc0
-  [<ffffffff81031235>] ? warn_slowpath_fmt+0x45/0x50
-  [<ffffffff81120e74>] ? sysfs_remove_group+0x34/0x120
-  [<ffffffffa00000ef>] ? mc_device_remove+0x5f/0x70 [microcode]
-  [<ffffffff81331eb9>] ? subsys_interface_unregister+0x69/0xa0
-  [<ffffffff81563526>] ? mutex_lock+0x16/0x40
-  [<ffffffffa0000c3e>] ? microcode_exit+0x50/0x92 [microcode]
-  [<ffffffff8107051d>] ? sys_delete_module+0x16d/0x260
-  [<ffffffff810a0065>] ? wait_iff_congested+0x45/0x110
-  [<ffffffff815656af>] ? page_fault+0x1f/0x30
-  [<ffffffff81565ba2>] ? system_call_fastpath+0x16/0x1b
-
-on recent kernels.
-
-This is due to commit 8a25a2fd126c ("cpu: convert 'cpu' and
-'machinecheck' sysdev_class to a regular subsystem") which renders
-commit 6c53cbfced04 ("x86, microcode: Correct sysdev_add error path")
-useless.
-
-See http://marc.info/?l=linux-kernel&m=133416246406478
-
-Avoid above warning by restoring the old driver behaviour before
-6c53cbfced04 ("x86, microcode: Correct sysdev_add error path").
-
-Cc: Tigran Aivazian <tigran at aivazian.fsnet.co.uk>
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Link: http://lkml.kernel.org/r/20120411163849.GE4794@alberich.amd.com
-Signed-off-by: Borislav Petkov <borislav.petkov at amd.com>
-[bwh: Backported to 3.2: deleted line uses sys_dev, not dev]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/microcode_core.c |    4 +---
- 1 files changed, 1 insertions(+), 3 deletions(-)
-
-diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c
-index 9d46f5e..563a09d 100644
---- a/arch/x86/kernel/microcode_core.c
-+++ b/arch/x86/kernel/microcode_core.c
-@@ -418,10 +418,8 @@ static int mc_sysdev_add(struct sys_device *sys_dev)
- 	if (err)
- 		return err;
- 
--	if (microcode_init_cpu(cpu) == UCODE_ERROR) {
--		sysfs_remove_group(&sys_dev->kobj, &mc_attr_group);
-+	if (microcode_init_cpu(cpu) == UCODE_ERROR)
- 		return -EINVAL;
--	}
- 
- 	return err;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0091-x86-apic-APIC-code-touches-invalid-MSR-on-P5-class-m.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0091-x86-apic-APIC-code-touches-invalid-MSR-on-P5-class-m.patch
deleted file mode 100644
index d46b6ce..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0091-x86-apic-APIC-code-touches-invalid-MSR-on-P5-class-m.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 46ed52ce8ccfe7b4b4edf99fb0aeed2fbf817727 Mon Sep 17 00:00:00 2001
-From: Bryan O'Donoghue <bryan.odonoghue at linux.intel.com>
-Date: Wed, 18 Apr 2012 17:37:39 +0100
-Subject: [PATCH 091/165] x86, apic: APIC code touches invalid MSR on P5 class
- machines
-
-commit cbf2829b61c136edcba302a5e1b6b40e97d32c00 upstream.
-
-Current APIC code assumes MSR_IA32_APICBASE is present for all systems.
-Pentium Classic P5 and friends didn't have this MSR. MSR_IA32_APICBASE
-was introduced as an architectural MSR by Intel @ P6.
-
-Code paths that can touch this MSR invalidly are when vendor == Intel &&
-cpu-family == 5 and APIC bit is set in CPUID - or when you simply pass
-lapic on the kernel command line, on a P5.
-
-The below patch stops Linux incorrectly interfering with the
-MSR_IA32_APICBASE for P5 class machines. Other code paths exist that
-touch the MSR - however those paths are not currently reachable for a
-conformant P5.
-
-Signed-off-by: Bryan O'Donoghue <bryan.odonoghue at linux.intel.com>
-Link: http://lkml.kernel.org/r/4F8EEDD3.1080404@linux.intel.com
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/apic/apic.c |   34 ++++++++++++++++++++--------------
- 1 files changed, 20 insertions(+), 14 deletions(-)
-
-diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
-index f98d84c..c4e3581 100644
---- a/arch/x86/kernel/apic/apic.c
-+++ b/arch/x86/kernel/apic/apic.c
-@@ -1577,9 +1577,11 @@ static int __init apic_verify(void)
- 	mp_lapic_addr = APIC_DEFAULT_PHYS_BASE;
- 
- 	/* The BIOS may have set up the APIC at some other address */
--	rdmsr(MSR_IA32_APICBASE, l, h);
--	if (l & MSR_IA32_APICBASE_ENABLE)
--		mp_lapic_addr = l & MSR_IA32_APICBASE_BASE;
-+	if (boot_cpu_data.x86 >= 6) {
-+		rdmsr(MSR_IA32_APICBASE, l, h);
-+		if (l & MSR_IA32_APICBASE_ENABLE)
-+			mp_lapic_addr = l & MSR_IA32_APICBASE_BASE;
-+	}
- 
- 	pr_info("Found and enabled local APIC!\n");
- 	return 0;
-@@ -1597,13 +1599,15 @@ int __init apic_force_enable(unsigned long addr)
- 	 * MSR. This can only be done in software for Intel P6 or later
- 	 * and AMD K7 (Model > 1) or later.
- 	 */
--	rdmsr(MSR_IA32_APICBASE, l, h);
--	if (!(l & MSR_IA32_APICBASE_ENABLE)) {
--		pr_info("Local APIC disabled by BIOS -- reenabling.\n");
--		l &= ~MSR_IA32_APICBASE_BASE;
--		l |= MSR_IA32_APICBASE_ENABLE | addr;
--		wrmsr(MSR_IA32_APICBASE, l, h);
--		enabled_via_apicbase = 1;
-+	if (boot_cpu_data.x86 >= 6) {
-+		rdmsr(MSR_IA32_APICBASE, l, h);
-+		if (!(l & MSR_IA32_APICBASE_ENABLE)) {
-+			pr_info("Local APIC disabled by BIOS -- reenabling.\n");
-+			l &= ~MSR_IA32_APICBASE_BASE;
-+			l |= MSR_IA32_APICBASE_ENABLE | addr;
-+			wrmsr(MSR_IA32_APICBASE, l, h);
-+			enabled_via_apicbase = 1;
-+		}
- 	}
- 	return apic_verify();
- }
-@@ -2149,10 +2153,12 @@ static void lapic_resume(void)
- 		 * FIXME! This will be wrong if we ever support suspend on
- 		 * SMP! We'll need to do this as part of the CPU restore!
- 		 */
--		rdmsr(MSR_IA32_APICBASE, l, h);
--		l &= ~MSR_IA32_APICBASE_BASE;
--		l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr;
--		wrmsr(MSR_IA32_APICBASE, l, h);
-+		if (boot_cpu_data.x86 >= 6) {
-+			rdmsr(MSR_IA32_APICBASE, l, h);
-+			l &= ~MSR_IA32_APICBASE_BASE;
-+			l |= MSR_IA32_APICBASE_ENABLE | mp_lapic_addr;
-+			wrmsr(MSR_IA32_APICBASE, l, h);
-+		}
- 	}
- 
- 	maxlvt = lapic_get_maxlvt();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0092-Revert-autofs-work-around-unhappy-compat-problem-on-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0092-Revert-autofs-work-around-unhappy-compat-problem-on-.patch
deleted file mode 100644
index a4c0c07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0092-Revert-autofs-work-around-unhappy-compat-problem-on-.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 57ae2e2d36a3b53fa55c4e1e6cf073f566921c40 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sat, 28 Apr 2012 08:29:56 -0700
-Subject: [PATCH 092/165] Revert "autofs: work around unhappy compat problem
- on x86-64"
-
-commit fcbf94b9dedd2ce08e798a99aafc94fec8668161 upstream.
-
-This reverts commit a32744d4abae24572eff7269bc17895c41bd0085.
-
-While that commit was technically the right thing to do, and made the
-x86-64 compat mode work identically to native 32-bit mode (and thus
-fixing the problem with a 32-bit systemd install on a 64-bit kernel), it
-turns out that the automount binaries had workarounds for this compat
-problem.
-
-Now, the workarounds are disgusting: doing an "uname()" to find out the
-architecture of the kernel, and then comparing it for the 64-bit cases
-and fixing up the size of the read() in automount for those.  And they
-were confused: it's not actually a generic 64-bit issue at all, it's
-very much tied to just x86-64, which has different alignment for an
-'u64' in 64-bit mode than in 32-bit mode.
-
-But the end result is that fixing the compat layer actually breaks the
-case of a 32-bit automount on a x86-64 kernel.
-
-There are various approaches to fix this (including just doing a
-"strcmp()" on current->comm and comparing it to "automount"), but I
-think that I will do the one that teaches pipes about a special "packet
-mode", which will allow user space to not have to care too deeply about
-the padding at the end of the autofs packet.
-
-That change will make the compat workaround unnecessary, so let's revert
-it first, and get automount working again in compat mode.  The
-packetized pipes will then fix autofs for systemd.
-
-Reported-and-requested-by: Michael Tokarev <mjt at tls.msk.ru>
-Cc: Ian Kent <raven at themaw.net>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/autofs4/autofs_i.h  |    1 -
- fs/autofs4/dev-ioctl.c |    1 -
- fs/autofs4/inode.c     |    2 --
- fs/autofs4/waitq.c     |   22 +++-------------------
- 4 files changed, 3 insertions(+), 23 deletions(-)
-
-diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
-index 308a98b..326dc08 100644
---- a/fs/autofs4/autofs_i.h
-+++ b/fs/autofs4/autofs_i.h
-@@ -110,7 +110,6 @@ struct autofs_sb_info {
- 	int sub_version;
- 	int min_proto;
- 	int max_proto;
--	int compat_daemon;
- 	unsigned long exp_timeout;
- 	unsigned int type;
- 	int reghost_enabled;
-diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
-index 56bac70..509fe1e 100644
---- a/fs/autofs4/dev-ioctl.c
-+++ b/fs/autofs4/dev-ioctl.c
-@@ -385,7 +385,6 @@ static int autofs_dev_ioctl_setpipefd(struct file *fp,
- 		sbi->pipefd = pipefd;
- 		sbi->pipe = pipe;
- 		sbi->catatonic = 0;
--		sbi->compat_daemon = is_compat_task();
- 	}
- out:
- 	mutex_unlock(&sbi->wq_mutex);
-diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
-index 98a5695..8179f1a 100644
---- a/fs/autofs4/inode.c
-+++ b/fs/autofs4/inode.c
-@@ -19,7 +19,6 @@
- #include <linux/parser.h>
- #include <linux/bitops.h>
- #include <linux/magic.h>
--#include <linux/compat.h>
- #include "autofs_i.h"
- #include <linux/module.h>
- 
-@@ -225,7 +224,6 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
- 	set_autofs_type_indirect(&sbi->type);
- 	sbi->min_proto = 0;
- 	sbi->max_proto = 0;
--	sbi->compat_daemon = is_compat_task();
- 	mutex_init(&sbi->wq_mutex);
- 	spin_lock_init(&sbi->fs_lock);
- 	sbi->queues = NULL;
-diff --git a/fs/autofs4/waitq.c b/fs/autofs4/waitq.c
-index 6861f61..e1fbdee 100644
---- a/fs/autofs4/waitq.c
-+++ b/fs/autofs4/waitq.c
-@@ -90,24 +90,7 @@ static int autofs4_write(struct file *file, const void *addr, int bytes)
- 
- 	return (bytes > 0);
- }
--
--/*
-- * The autofs_v5 packet was misdesigned.
-- *
-- * The packets are identical on x86-32 and x86-64, but have different
-- * alignment. Which means that 'sizeof()' will give different results.
-- * Fix it up for the case of running 32-bit user mode on a 64-bit kernel.
-- */
--static noinline size_t autofs_v5_packet_size(struct autofs_sb_info *sbi)
--{
--	size_t pktsz = sizeof(struct autofs_v5_packet);
--#if defined(CONFIG_X86_64) && defined(CONFIG_COMPAT)
--	if (sbi->compat_daemon > 0)
--		pktsz -= 4;
--#endif
--	return pktsz;
--}
--
-+	
- static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
- 				 struct autofs_wait_queue *wq,
- 				 int type)
-@@ -164,7 +147,8 @@ static void autofs4_notify_daemon(struct autofs_sb_info *sbi,
- 	{
- 		struct autofs_v5_packet *packet = &pkt.v5_pkt.v5_packet;
- 
--		pktsz = autofs_v5_packet_size(sbi);
-+		pktsz = sizeof(*packet);
-+
- 		packet->wait_queue_token = wq->wait_queue_token;
- 		packet->len = wq->name.len;
- 		memcpy(packet->name, wq->name.name, wq->name.len);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0093-xen-correctly-check-for-pending-events-when-restorin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0093-xen-correctly-check-for-pending-events-when-restorin.patch
deleted file mode 100644
index 970ac1c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0093-xen-correctly-check-for-pending-events-when-restorin.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From d989ae8669c297a7873a9b5c7e406bc467323388 Mon Sep 17 00:00:00 2001
-From: David Vrabel <david.vrabel at citrix.com>
-Date: Thu, 26 Apr 2012 19:44:06 +0100
-Subject: [PATCH 093/165] xen: correctly check for pending events when
- restoring irq flags
-
-commit 7eb7ce4d2e8991aff4ecb71a81949a907ca755ac upstream.
-
-In xen_restore_fl_direct(), xen_force_evtchn_callback() was being
-called even if no events were pending.  This resulted in (depending on
-workload) about a 100 times as many xen_version hypercalls as
-necessary.
-
-Fix this by correcting the sense of the conditional jump.
-
-This seems to give a significant performance benefit for some
-workloads.
-
-There is some subtle tricksy "..since the check here is trying to
-check both pending and masked in a single cmpw, but I think this is
-correct. It will call check_events now only when the combined
-mask+pending word is 0x0001 (aka unmasked, pending)." (Ian)
-
-Acked-by: Ian Campbell <ian.campbell at citrix.com>
-Signed-off-by: David Vrabel <david.vrabel at citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/xen-asm.S |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S
-index 79d7362..3e45aa0 100644
---- a/arch/x86/xen/xen-asm.S
-+++ b/arch/x86/xen/xen-asm.S
-@@ -96,7 +96,7 @@ ENTRY(xen_restore_fl_direct)
- 
- 	/* check for unmasked and pending */
- 	cmpw $0x0001, PER_CPU_VAR(xen_vcpu_info) + XEN_vcpu_info_pending
--	jz 1f
-+	jnz 1f
- 2:	call check_events
- 1:
- ENDPATCH(xen_restore_fl_direct)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0094-xen-smp-Fix-crash-when-booting-with-ACPI-hotplug-CPU.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0094-xen-smp-Fix-crash-when-booting-with-ACPI-hotplug-CPU.patch
deleted file mode 100644
index 02b157f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0094-xen-smp-Fix-crash-when-booting-with-ACPI-hotplug-CPU.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 7e7b9fb05d7e36d2d585a422de52c3b2e3345cdf Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Date: Thu, 26 Apr 2012 13:50:03 -0400
-Subject: [PATCH 094/165] xen/smp: Fix crash when booting with ACPI hotplug
- CPUs.
-
-commit cf405ae612b0f7e2358db7ff594c0e94846137aa upstream.
-
-When we boot on a machine that can hotplug CPUs and we
-are using 'dom0_max_vcpus=X' on the Xen hypervisor line
-to clip the amount of CPUs available to the initial domain,
-we get this:
-
-(XEN) Command line: com1=115200,8n1 dom0_mem=8G noreboot dom0_max_vcpus=8 sync_console mce_verbosity=verbose console=com1,vga loglvl=all guest_loglvl=all
-.. snip..
-DMI: Intel Corporation S2600CP/S2600CP, BIOS SE5C600.86B.99.99.x032.072520111118 07/25/2011
-.. snip.
-SMP: Allowing 64 CPUs, 32 hotplug CPUs
-installing Xen timer for CPU 7
-cpu 7 spinlock event irq 361
-NMI watchdog: disabled (cpu7): hardware events not enabled
-Brought up 8 CPUs
-.. snip..
-	[acpi processor finds the CPUs are not initialized and starts calling
-	arch_register_cpu, which creates /sys/devices/system/cpu/cpu8/online]
-CPU 8 got hotplugged
-CPU 9 got hotplugged
-CPU 10 got hotplugged
-.. snip..
-initcall 1_acpi_battery_init_async+0x0/0x1b returned 0 after 406 usecs
-calling  erst_init+0x0/0x2bb @ 1
-
-	[and the scheduler sticks newly started tasks on the new CPUs, but
-	said CPUs cannot be initialized b/c the hypervisor has limited the
-	amount of vCPUS to 8 - as per the dom0_max_vcpus=8 flag.
-	The spinlock tries to kick the other CPU, but the structure for that
-	is not initialized and we crash.]
-BUG: unable to handle kernel paging request at fffffffffffffed8
-IP: [<ffffffff81035289>] xen_spin_lock+0x29/0x60
-PGD 180d067 PUD 180e067 PMD 0
-Oops: 0002 [#1] SMP
-CPU 7
-Modules linked in:
-
-Pid: 1, comm: swapper/0 Not tainted 3.4.0-rc2upstream-00001-gf5154e8 #1 Intel Corporation S2600CP/S2600CP
-RIP: e030:[<ffffffff81035289>]  [<ffffffff81035289>] xen_spin_lock+0x29/0x60
-RSP: e02b:ffff8801fb9b3a70  EFLAGS: 00010282
-
-With this patch, we cap the amount of vCPUS that the initial domain
-can run, to exactly what dom0_max_vcpus=X has specified.
-
-In the future, if there is a hypercall that will allow a running
-domain to expand past its initial set of vCPUS, this patch should
-be re-evaluated.
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/smp.c |   15 +++++++++++++++
- 1 files changed, 15 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/smp.c b/arch/x86/xen/smp.c
-index 041d4fe..9a23fff 100644
---- a/arch/x86/xen/smp.c
-+++ b/arch/x86/xen/smp.c
-@@ -172,6 +172,7 @@ static void __init xen_fill_possible_map(void)
- static void __init xen_filter_cpu_maps(void)
- {
- 	int i, rc;
-+	unsigned int subtract = 0;
- 
- 	if (!xen_initial_domain())
- 		return;
-@@ -186,8 +187,22 @@ static void __init xen_filter_cpu_maps(void)
- 		} else {
- 			set_cpu_possible(i, false);
- 			set_cpu_present(i, false);
-+			subtract++;
- 		}
- 	}
-+#ifdef CONFIG_HOTPLUG_CPU
-+	/* This is akin to using 'nr_cpus' on the Linux command line.
-+	 * Which is OK as when we use 'dom0_max_vcpus=X' we can only
-+	 * have up to X, while nr_cpu_ids is greater than X. This
-+	 * normally is not a problem, except when CPU hotplugging
-+	 * is involved and then there might be more than X CPUs
-+	 * in the guest - which will not work as there is no
-+	 * hypercall to expand the max number of VCPUs an already
-+	 * running guest has. So cap it up to X. */
-+	if (subtract)
-+		nr_cpu_ids = nr_cpu_ids - subtract;
-+#endif
-+
- }
- 
- static void __init xen_smp_prepare_boot_cpu(void)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0095-ASoC-dapm-Ensure-power-gets-managed-for-line-widgets.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0095-ASoC-dapm-Ensure-power-gets-managed-for-line-widgets.patch
deleted file mode 100644
index e8e04c8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0095-ASoC-dapm-Ensure-power-gets-managed-for-line-widgets.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5cf5b5db94847bec15c83a7ba69697a74e5248e0 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Thu, 12 Apr 2012 17:29:36 +0100
-Subject: [PATCH 095/165] ASoC: dapm: Ensure power gets managed for line
- widgets
-
-commit 7e1f7c8a6e517900cd84da1b8ae020f08f286c3b upstream.
-
-Line widgets had not been included in either the power up or power down
-sequences so if a widget had an event associated with it that event would
-never be run. Fix this minimally by adding them to the sequences, we
-should probably be doing away with the specific widget types as they all
-have the same priority anyway.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/soc-dapm.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
-index ea909c5..90e93bf 100644
---- a/sound/soc/soc-dapm.c
-+++ b/sound/soc/soc-dapm.c
-@@ -69,6 +69,7 @@ static int dapm_up_seq[] = {
- 	[snd_soc_dapm_out_drv] = 10,
- 	[snd_soc_dapm_hp] = 10,
- 	[snd_soc_dapm_spk] = 10,
-+	[snd_soc_dapm_line] = 10,
- 	[snd_soc_dapm_post] = 11,
- };
- 
-@@ -77,6 +78,7 @@ static int dapm_down_seq[] = {
- 	[snd_soc_dapm_adc] = 1,
- 	[snd_soc_dapm_hp] = 2,
- 	[snd_soc_dapm_spk] = 2,
-+	[snd_soc_dapm_line] = 2,
- 	[snd_soc_dapm_out_drv] = 2,
- 	[snd_soc_dapm_pga] = 4,
- 	[snd_soc_dapm_mixer_named_ctl] = 5,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0096-ASoC-wm8994-Improve-sequencing-of-AIF-channel-enable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0096-ASoC-wm8994-Improve-sequencing-of-AIF-channel-enable.patch
deleted file mode 100644
index a576f06..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0096-ASoC-wm8994-Improve-sequencing-of-AIF-channel-enable.patch
+++ /dev/null
@@ -1,389 +0,0 @@
-From 18ea02a9ec95869c1210e6ea2f10dee99c36edbd Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Thu, 12 Apr 2012 19:47:11 +0100
-Subject: [PATCH 096/165] ASoC: wm8994: Improve sequencing of AIF channel
- enables
-
-commit 1a38336b8611a04f0a624330c1f815421f4bf5f4 upstream.
-
-This ensures a clean startup of the channels, without this change some
-use cases could result in issues in a small proportion of cases.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/wm8994.c |  276 ++++++++++++++++++++++++++++++++++++---------
- 1 files changed, 222 insertions(+), 54 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index 2f1f5f8..7806301 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -883,61 +883,170 @@ static void wm8994_update_class_w(struct snd_soc_codec *codec)
- 	}
- }
- 
--static int late_enable_ev(struct snd_soc_dapm_widget *w,
--			  struct snd_kcontrol *kcontrol, int event)
-+static int aif1clk_ev(struct snd_soc_dapm_widget *w,
-+		      struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
--	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
-+	struct wm8994 *control = codec->control_data;
-+	int mask = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC1R_ENA;
-+	int dac;
-+	int adc;
-+	int val;
-+
-+	switch (control->type) {
-+	case WM8994:
-+	case WM8958:
-+		mask |= WM8994_AIF1DAC2L_ENA | WM8994_AIF1DAC2R_ENA;
-+		break;
-+	default:
-+		break;
-+	}
- 
- 	switch (event) {
- 	case SND_SOC_DAPM_PRE_PMU:
--		if (wm8994->aif1clk_enable) {
--			snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
--					    WM8994_AIF1CLK_ENA_MASK,
--					    WM8994_AIF1CLK_ENA);
--			wm8994->aif1clk_enable = 0;
--		}
--		if (wm8994->aif2clk_enable) {
--			snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
--					    WM8994_AIF2CLK_ENA_MASK,
--					    WM8994_AIF2CLK_ENA);
--			wm8994->aif2clk_enable = 0;
--		}
-+		val = snd_soc_read(codec, WM8994_AIF1_CONTROL_1);
-+		if ((val & WM8994_AIF1ADCL_SRC) &&
-+		    (val & WM8994_AIF1ADCR_SRC))
-+			adc = WM8994_AIF1ADC1R_ENA | WM8994_AIF1ADC2R_ENA;
-+		else if (!(val & WM8994_AIF1ADCL_SRC) &&
-+			 !(val & WM8994_AIF1ADCR_SRC))
-+			adc = WM8994_AIF1ADC1L_ENA | WM8994_AIF1ADC2L_ENA;
-+		else
-+			adc = WM8994_AIF1ADC1R_ENA | WM8994_AIF1ADC2R_ENA |
-+				WM8994_AIF1ADC1L_ENA | WM8994_AIF1ADC2L_ENA;
-+
-+		val = snd_soc_read(codec, WM8994_AIF1_CONTROL_2);
-+		if ((val & WM8994_AIF1DACL_SRC) &&
-+		    (val & WM8994_AIF1DACR_SRC))
-+			dac = WM8994_AIF1DAC1R_ENA | WM8994_AIF1DAC2R_ENA;
-+		else if (!(val & WM8994_AIF1DACL_SRC) &&
-+			 !(val & WM8994_AIF1DACR_SRC))
-+			dac = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC2L_ENA;
-+		else
-+			dac = WM8994_AIF1DAC1R_ENA | WM8994_AIF1DAC2R_ENA |
-+				WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC2L_ENA;
-+
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4,
-+				    mask, adc);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+				    mask, dac);
-+		snd_soc_update_bits(codec, WM8994_CLOCKING_1,
-+				    WM8994_AIF1DSPCLK_ENA |
-+				    WM8994_SYSDSPCLK_ENA,
-+				    WM8994_AIF1DSPCLK_ENA |
-+				    WM8994_SYSDSPCLK_ENA);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4, mask,
-+				    WM8994_AIF1ADC1R_ENA |
-+				    WM8994_AIF1ADC1L_ENA |
-+				    WM8994_AIF1ADC2R_ENA |
-+				    WM8994_AIF1ADC2L_ENA);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5, mask,
-+				    WM8994_AIF1DAC1R_ENA |
-+				    WM8994_AIF1DAC1L_ENA |
-+				    WM8994_AIF1DAC2R_ENA |
-+				    WM8994_AIF1DAC2L_ENA);
-+		break;
-+
-+	case SND_SOC_DAPM_PRE_PMD:
-+	case SND_SOC_DAPM_POST_PMD:
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+				    mask, 0);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4,
-+				    mask, 0);
-+
-+		val = snd_soc_read(codec, WM8994_CLOCKING_1);
-+		if (val & WM8994_AIF2DSPCLK_ENA)
-+			val = WM8994_SYSDSPCLK_ENA;
-+		else
-+			val = 0;
-+		snd_soc_update_bits(codec, WM8994_CLOCKING_1,
-+				    WM8994_SYSDSPCLK_ENA |
-+				    WM8994_AIF1DSPCLK_ENA, val);
- 		break;
- 	}
- 
--	/* We may also have postponed startup of DSP, handle that. */
--	wm8958_aif_ev(w, kcontrol, event);
--
- 	return 0;
- }
- 
--static int late_disable_ev(struct snd_soc_dapm_widget *w,
--			   struct snd_kcontrol *kcontrol, int event)
-+static int aif2clk_ev(struct snd_soc_dapm_widget *w,
-+		      struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
--	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
-+	int dac;
-+	int adc;
-+	int val;
- 
- 	switch (event) {
-+	case SND_SOC_DAPM_PRE_PMU:
-+		val = snd_soc_read(codec, WM8994_AIF2_CONTROL_1);
-+		if ((val & WM8994_AIF2ADCL_SRC) &&
-+		    (val & WM8994_AIF2ADCR_SRC))
-+			adc = WM8994_AIF2ADCR_ENA;
-+		else if (!(val & WM8994_AIF2ADCL_SRC) &&
-+			 !(val & WM8994_AIF2ADCR_SRC))
-+			adc = WM8994_AIF2ADCL_ENA;
-+		else
-+			adc = WM8994_AIF2ADCL_ENA | WM8994_AIF2ADCR_ENA;
-+
-+
-+		val = snd_soc_read(codec, WM8994_AIF2_CONTROL_2);
-+		if ((val & WM8994_AIF2DACL_SRC) &&
-+		    (val & WM8994_AIF2DACR_SRC))
-+			dac = WM8994_AIF2DACR_ENA;
-+		else if (!(val & WM8994_AIF2DACL_SRC) &&
-+			 !(val & WM8994_AIF2DACR_SRC))
-+			dac = WM8994_AIF2DACL_ENA;
-+		else
-+			dac = WM8994_AIF2DACL_ENA | WM8994_AIF2DACR_ENA;
-+
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4,
-+				    WM8994_AIF2ADCL_ENA |
-+				    WM8994_AIF2ADCR_ENA, adc);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+				    WM8994_AIF2DACL_ENA |
-+				    WM8994_AIF2DACR_ENA, dac);
-+		snd_soc_update_bits(codec, WM8994_CLOCKING_1,
-+				    WM8994_AIF2DSPCLK_ENA |
-+				    WM8994_SYSDSPCLK_ENA,
-+				    WM8994_AIF2DSPCLK_ENA |
-+				    WM8994_SYSDSPCLK_ENA);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4,
-+				    WM8994_AIF2ADCL_ENA |
-+				    WM8994_AIF2ADCR_ENA,
-+				    WM8994_AIF2ADCL_ENA |
-+				    WM8994_AIF2ADCR_ENA);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+				    WM8994_AIF2DACL_ENA |
-+				    WM8994_AIF2DACR_ENA,
-+				    WM8994_AIF2DACL_ENA |
-+				    WM8994_AIF2DACR_ENA);
-+		break;
-+
-+	case SND_SOC_DAPM_PRE_PMD:
- 	case SND_SOC_DAPM_POST_PMD:
--		if (wm8994->aif1clk_disable) {
--			snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
--					    WM8994_AIF1CLK_ENA_MASK, 0);
--			wm8994->aif1clk_disable = 0;
--		}
--		if (wm8994->aif2clk_disable) {
--			snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
--					    WM8994_AIF2CLK_ENA_MASK, 0);
--			wm8994->aif2clk_disable = 0;
--		}
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+				    WM8994_AIF2DACL_ENA |
-+				    WM8994_AIF2DACR_ENA, 0);
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+				    WM8994_AIF2ADCL_ENA |
-+				    WM8994_AIF2ADCR_ENA, 0);
-+
-+		val = snd_soc_read(codec, WM8994_CLOCKING_1);
-+		if (val & WM8994_AIF1DSPCLK_ENA)
-+			val = WM8994_SYSDSPCLK_ENA;
-+		else
-+			val = 0;
-+		snd_soc_update_bits(codec, WM8994_CLOCKING_1,
-+				    WM8994_SYSDSPCLK_ENA |
-+				    WM8994_AIF2DSPCLK_ENA, val);
- 		break;
- 	}
- 
- 	return 0;
- }
- 
--static int aif1clk_ev(struct snd_soc_dapm_widget *w,
--		      struct snd_kcontrol *kcontrol, int event)
-+static int aif1clk_late_ev(struct snd_soc_dapm_widget *w,
-+			   struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
- 	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
-@@ -954,8 +1063,8 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w,
- 	return 0;
- }
- 
--static int aif2clk_ev(struct snd_soc_dapm_widget *w,
--		      struct snd_kcontrol *kcontrol, int event)
-+static int aif2clk_late_ev(struct snd_soc_dapm_widget *w,
-+			   struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
- 	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
-@@ -972,6 +1081,63 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
- 	return 0;
- }
- 
-+static int late_enable_ev(struct snd_soc_dapm_widget *w,
-+			  struct snd_kcontrol *kcontrol, int event)
-+{
-+	struct snd_soc_codec *codec = w->codec;
-+	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
-+
-+	switch (event) {
-+	case SND_SOC_DAPM_PRE_PMU:
-+		if (wm8994->aif1clk_enable) {
-+			aif1clk_ev(w, kcontrol, event);
-+			snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
-+					    WM8994_AIF1CLK_ENA_MASK,
-+					    WM8994_AIF1CLK_ENA);
-+			wm8994->aif1clk_enable = 0;
-+		}
-+		if (wm8994->aif2clk_enable) {
-+			aif2clk_ev(w, kcontrol, event);
-+			snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
-+					    WM8994_AIF2CLK_ENA_MASK,
-+					    WM8994_AIF2CLK_ENA);
-+			wm8994->aif2clk_enable = 0;
-+		}
-+		break;
-+	}
-+
-+	/* We may also have postponed startup of DSP, handle that. */
-+	wm8958_aif_ev(w, kcontrol, event);
-+
-+	return 0;
-+}
-+
-+static int late_disable_ev(struct snd_soc_dapm_widget *w,
-+			   struct snd_kcontrol *kcontrol, int event)
-+{
-+	struct snd_soc_codec *codec = w->codec;
-+	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
-+
-+	switch (event) {
-+	case SND_SOC_DAPM_POST_PMD:
-+		if (wm8994->aif1clk_disable) {
-+			snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
-+					    WM8994_AIF1CLK_ENA_MASK, 0);
-+			aif1clk_ev(w, kcontrol, event);
-+			wm8994->aif1clk_disable = 0;
-+		}
-+		if (wm8994->aif2clk_disable) {
-+			snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
-+					    WM8994_AIF2CLK_ENA_MASK, 0);
-+			aif2clk_ev(w, kcontrol, event);
-+			wm8994->aif2clk_disable = 0;
-+		}
-+		break;
-+	}
-+
-+	return 0;
-+}
-+
- static int adc_mux_ev(struct snd_soc_dapm_widget *w,
- 		      struct snd_kcontrol *kcontrol, int event)
- {
-@@ -1268,9 +1434,9 @@ static const struct snd_kcontrol_new aif2dacr_src_mux =
- 	SOC_DAPM_ENUM("AIF2DACR Mux", aif2dacr_src_enum);
- 
- static const struct snd_soc_dapm_widget wm8994_lateclk_revd_widgets[] = {
--SND_SOC_DAPM_SUPPLY("AIF1CLK", SND_SOC_NOPM, 0, 0, aif1clk_ev,
-+SND_SOC_DAPM_SUPPLY("AIF1CLK", SND_SOC_NOPM, 0, 0, aif1clk_late_ev,
- 	SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
--SND_SOC_DAPM_SUPPLY("AIF2CLK", SND_SOC_NOPM, 0, 0, aif2clk_ev,
-+SND_SOC_DAPM_SUPPLY("AIF2CLK", SND_SOC_NOPM, 0, 0, aif2clk_late_ev,
- 	SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
- 
- SND_SOC_DAPM_PGA_E("Late DAC1L Enable PGA", SND_SOC_NOPM, 0, 0, NULL, 0,
-@@ -1299,8 +1465,10 @@ SND_SOC_DAPM_POST("Late Disable PGA", late_disable_ev)
- };
- 
- static const struct snd_soc_dapm_widget wm8994_lateclk_widgets[] = {
--SND_SOC_DAPM_SUPPLY("AIF1CLK", WM8994_AIF1_CLOCKING_1, 0, 0, NULL, 0),
--SND_SOC_DAPM_SUPPLY("AIF2CLK", WM8994_AIF2_CLOCKING_1, 0, 0, NULL, 0),
-+SND_SOC_DAPM_SUPPLY("AIF1CLK", WM8994_AIF1_CLOCKING_1, 0, 0, aif1clk_ev,
-+		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
-+SND_SOC_DAPM_SUPPLY("AIF2CLK", WM8994_AIF2_CLOCKING_1, 0, 0, aif2clk_ev,
-+		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_PGA("Direct Voice", SND_SOC_NOPM, 0, 0, NULL, 0),
- SND_SOC_DAPM_MIXER("SPKL", WM8994_POWER_MANAGEMENT_3, 8, 0,
- 		   left_speaker_mixer, ARRAY_SIZE(left_speaker_mixer)),
-@@ -1353,30 +1521,30 @@ SND_SOC_DAPM_SUPPLY("VMID", SND_SOC_NOPM, 0, 0, vmid_event,
- SND_SOC_DAPM_SUPPLY("CLK_SYS", SND_SOC_NOPM, 0, 0, clk_sys_event,
- 		    SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
- 
--SND_SOC_DAPM_SUPPLY("DSP1CLK", WM8994_CLOCKING_1, 3, 0, NULL, 0),
--SND_SOC_DAPM_SUPPLY("DSP2CLK", WM8994_CLOCKING_1, 2, 0, NULL, 0),
--SND_SOC_DAPM_SUPPLY("DSPINTCLK", WM8994_CLOCKING_1, 1, 0, NULL, 0),
-+SND_SOC_DAPM_SUPPLY("DSP1CLK", SND_SOC_NOPM, 3, 0, NULL, 0),
-+SND_SOC_DAPM_SUPPLY("DSP2CLK", SND_SOC_NOPM, 2, 0, NULL, 0),
-+SND_SOC_DAPM_SUPPLY("DSPINTCLK", SND_SOC_NOPM, 1, 0, NULL, 0),
- 
- SND_SOC_DAPM_AIF_OUT("AIF1ADC1L", NULL,
--		     0, WM8994_POWER_MANAGEMENT_4, 9, 0),
-+		     0, SND_SOC_NOPM, 9, 0),
- SND_SOC_DAPM_AIF_OUT("AIF1ADC1R", NULL,
--		     0, WM8994_POWER_MANAGEMENT_4, 8, 0),
-+		     0, SND_SOC_NOPM, 8, 0),
- SND_SOC_DAPM_AIF_IN_E("AIF1DAC1L", NULL, 0,
--		      WM8994_POWER_MANAGEMENT_5, 9, 0, wm8958_aif_ev,
-+		      SND_SOC_NOPM, 9, 0, wm8958_aif_ev,
- 		      SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
- SND_SOC_DAPM_AIF_IN_E("AIF1DAC1R", NULL, 0,
--		      WM8994_POWER_MANAGEMENT_5, 8, 0, wm8958_aif_ev,
-+		      SND_SOC_NOPM, 8, 0, wm8958_aif_ev,
- 		      SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
- 
- SND_SOC_DAPM_AIF_OUT("AIF1ADC2L", NULL,
--		     0, WM8994_POWER_MANAGEMENT_4, 11, 0),
-+		     0, SND_SOC_NOPM, 11, 0),
- SND_SOC_DAPM_AIF_OUT("AIF1ADC2R", NULL,
--		     0, WM8994_POWER_MANAGEMENT_4, 10, 0),
-+		     0, SND_SOC_NOPM, 10, 0),
- SND_SOC_DAPM_AIF_IN_E("AIF1DAC2L", NULL, 0,
--		      WM8994_POWER_MANAGEMENT_5, 11, 0, wm8958_aif_ev,
-+		      SND_SOC_NOPM, 11, 0, wm8958_aif_ev,
- 		      SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
- SND_SOC_DAPM_AIF_IN_E("AIF1DAC2R", NULL, 0,
--		      WM8994_POWER_MANAGEMENT_5, 10, 0, wm8958_aif_ev,
-+		      SND_SOC_NOPM, 10, 0, wm8958_aif_ev,
- 		      SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_POST_PMD),
- 
- SND_SOC_DAPM_MIXER("AIF1ADC1L Mixer", SND_SOC_NOPM, 0, 0,
-@@ -1403,14 +1571,14 @@ SND_SOC_DAPM_MIXER("DAC1R Mixer", SND_SOC_NOPM, 0, 0,
- 		   dac1r_mix, ARRAY_SIZE(dac1r_mix)),
- 
- SND_SOC_DAPM_AIF_OUT("AIF2ADCL", NULL, 0,
--		     WM8994_POWER_MANAGEMENT_4, 13, 0),
-+		     SND_SOC_NOPM, 13, 0),
- SND_SOC_DAPM_AIF_OUT("AIF2ADCR", NULL, 0,
--		     WM8994_POWER_MANAGEMENT_4, 12, 0),
-+		     SND_SOC_NOPM, 12, 0),
- SND_SOC_DAPM_AIF_IN_E("AIF2DACL", NULL, 0,
--		      WM8994_POWER_MANAGEMENT_5, 13, 0, wm8958_aif_ev,
-+		      SND_SOC_NOPM, 13, 0, wm8958_aif_ev,
- 		      SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_AIF_IN_E("AIF2DACR", NULL, 0,
--		      WM8994_POWER_MANAGEMENT_5, 12, 0, wm8958_aif_ev,
-+		      SND_SOC_NOPM, 12, 0, wm8958_aif_ev,
- 		      SND_SOC_DAPM_POST_PMU | SND_SOC_DAPM_PRE_PMD),
- 
- SND_SOC_DAPM_AIF_IN("AIF1DACDAT", "AIF1 Playback", 0, SND_SOC_NOPM, 0, 0),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0097-dmaengine-at_hdmac-remove-clear-on-read-in-atc_dosta.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0097-dmaengine-at_hdmac-remove-clear-on-read-in-atc_dosta.patch
deleted file mode 100644
index b670af2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0097-dmaengine-at_hdmac-remove-clear-on-read-in-atc_dosta.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 461507ae293668a6dd1543092d2506fa4524d8ec Mon Sep 17 00:00:00 2001
-From: Nicolas Ferre <nicolas.ferre at atmel.com>
-Date: Mon, 16 Apr 2012 14:46:30 +0200
-Subject: [PATCH 097/165] dmaengine: at_hdmac: remove clear-on-read in
- atc_dostart()
-
-commit ed8b0d67f33518a16c6b2450fe5ebebf180c2d04 upstream.
-
-This loop on EBCISR register was designed to clear IRQ sources before enabling
-a DMA channel. This register is clear-on-read so a race condition can appear if
-another channel is already active and has just finished its transfer.
-Removing this read on EBCISR is fixing the issue as there is no case where an IRQ
-could be pending: we already make sure that this register is drained at probe()
-time and during resume.
-
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Vinod Koul <vinod.koul at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/dma/at_hdmac.c |    4 ----
- 1 files changed, 0 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
-index a60adbf..79dcf6e 100644
---- a/drivers/dma/at_hdmac.c
-+++ b/drivers/dma/at_hdmac.c
-@@ -239,10 +239,6 @@ static void atc_dostart(struct at_dma_chan *atchan, struct at_desc *first)
- 
- 	vdbg_dump_regs(atchan);
- 
--	/* clear any pending interrupt */
--	while (dma_readl(atdma, EBCISR))
--		cpu_relax();
--
- 	channel_writel(atchan, SADDR, 0);
- 	channel_writel(atchan, DADDR, 0);
- 	channel_writel(atchan, CTRLA, 0);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0098-sched-Fix-OOPS-when-build_sched_domains-percpu-alloc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0098-sched-Fix-OOPS-when-build_sched_domains-percpu-alloc.patch
deleted file mode 100644
index 91318c4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0098-sched-Fix-OOPS-when-build_sched_domains-percpu-alloc.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 9568d8a7012a9ca0fafc44570e46030d60f22a91 Mon Sep 17 00:00:00 2001
-From: "he, bo" <bo.he at intel.com>
-Date: Wed, 25 Apr 2012 19:59:21 +0800
-Subject: [PATCH 098/165] sched: Fix OOPS when build_sched_domains() percpu
- allocation fails
-
-commit fb2cf2c660971bea0ad86a9a5c19ad39eab61344 upstream.
-
-Under extreme memory used up situations, percpu allocation
-might fail. We hit it when system goes to suspend-to-ram,
-causing a kworker panic:
-
- EIP: [<c124411a>] build_sched_domains+0x23a/0xad0
- Kernel panic - not syncing: Fatal exception
- Pid: 3026, comm: kworker/u:3
- 3.0.8-137473-gf42fbef #1
-
- Call Trace:
-  [<c18cc4f2>] panic+0x66/0x16c
-  [...]
-  [<c1244c37>] partition_sched_domains+0x287/0x4b0
-  [<c12a77be>] cpuset_update_active_cpus+0x1fe/0x210
-  [<c123712d>] cpuset_cpu_inactive+0x1d/0x30
-  [...]
-
-With this fix applied build_sched_domains() will return -ENOMEM and
-the suspend attempt fails.
-
-Signed-off-by: he, bo <bo.he at intel.com>
-Reviewed-by: Zhang, Yanmin <yanmin.zhang at intel.com>
-Reviewed-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Link: http://lkml.kernel.org/r/1335355161.5892.17.camel@hebo
-[ So, we fail to deallocate a CPU because we cannot allocate RAM :-/
-  I don't like that kind of sad behavior but nevertheless it should
-  not crash under high memory load. ]
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-[bwh: Backported to 3.2: change filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/sched.c |   22 ++++++++++++++++------
- 1 files changed, 16 insertions(+), 6 deletions(-)
-
-diff --git a/kernel/sched.c b/kernel/sched.c
-index d6b149c..106a3b8 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -7605,16 +7605,26 @@ static void __sdt_free(const struct cpumask *cpu_map)
- 		struct sd_data *sdd = &tl->data;
- 
- 		for_each_cpu(j, cpu_map) {
--			struct sched_domain *sd = *per_cpu_ptr(sdd->sd, j);
--			if (sd && (sd->flags & SD_OVERLAP))
--				free_sched_groups(sd->groups, 0);
--			kfree(*per_cpu_ptr(sdd->sd, j));
--			kfree(*per_cpu_ptr(sdd->sg, j));
--			kfree(*per_cpu_ptr(sdd->sgp, j));
-+			struct sched_domain *sd;
-+
-+			if (sdd->sd) {
-+				sd = *per_cpu_ptr(sdd->sd, j);
-+				if (sd && (sd->flags & SD_OVERLAP))
-+					free_sched_groups(sd->groups, 0);
-+				kfree(*per_cpu_ptr(sdd->sd, j));
-+			}
-+
-+			if (sdd->sg)
-+				kfree(*per_cpu_ptr(sdd->sg, j));
-+			if (sdd->sgp)
-+				kfree(*per_cpu_ptr(sdd->sgp, j));
- 		}
- 		free_percpu(sdd->sd);
-+		sdd->sd = NULL;
- 		free_percpu(sdd->sg);
-+		sdd->sg = NULL;
- 		free_percpu(sdd->sgp);
-+		sdd->sgp = NULL;
- 	}
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0099-tracing-Fix-stacktrace-of-latency-tracers-irqsoff-an.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0099-tracing-Fix-stacktrace-of-latency-tracers-irqsoff-an.patch
deleted file mode 100644
index 191d6b8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0099-tracing-Fix-stacktrace-of-latency-tracers-irqsoff-an.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From e2b214ae8c691f0fd7aeb572dda62401b9221ee4 Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <srostedt at redhat.com>
-Date: Thu, 19 Apr 2012 10:31:47 -0400
-Subject: [PATCH 099/165] tracing: Fix stacktrace of latency tracers (irqsoff
- and friends)
-
-commit db4c75cbebd7e5910cd3bcb6790272fcc3042857 upstream.
-
-While debugging a latency with someone on IRC (mirage335) on #linux-rt (OFTC),
-we discovered that the stacktrace output of the latency tracers
-(preemptirqsoff) was empty.
-
-This bug was caused by the creation of the dynamic length stack trace
-again (like commit 12b5da3 "tracing: Fix ent_size in trace output" was).
-
-This bug is caused by the latency tracers requiring the next event
-to determine the time between the current event and the next. But by
-grabbing the next event, the iter->ent_size is set to the next event
-instead of the current one. As the stacktrace event is the last event,
-this makes the ent_size zero and causes nothing to be printed for
-the stack trace. The dynamic stacktrace uses the ent_size to determine
-how much of the stack can be printed. The ent_size of zero means
-no stack.
-
-The simple fix is to save the iter->ent_size before finding the next event.
-
-Note, mirage335 asked to remain anonymous from LKML and git, so I will
-not add the Reported-by and Tested-by tags, even though he did report
-the issue and tested the fix.
-
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/trace/trace_output.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/kernel/trace/trace_output.c b/kernel/trace/trace_output.c
-index 5199930..1dcf253 100644
---- a/kernel/trace/trace_output.c
-+++ b/kernel/trace/trace_output.c
-@@ -638,6 +638,8 @@ int trace_print_lat_context(struct trace_iterator *iter)
- {
- 	u64 next_ts;
- 	int ret;
-+	/* trace_find_next_entry will reset ent_size */
-+	int ent_size = iter->ent_size;
- 	struct trace_seq *s = &iter->seq;
- 	struct trace_entry *entry = iter->ent,
- 			   *next_entry = trace_find_next_entry(iter, NULL,
-@@ -646,6 +648,9 @@ int trace_print_lat_context(struct trace_iterator *iter)
- 	unsigned long abs_usecs = ns2usecs(iter->ts - iter->tr->time_start);
- 	unsigned long rel_usecs;
- 
-+	/* Restore the original ent_size */
-+	iter->ent_size = ent_size;
-+
- 	if (!next_entry)
- 		next_ts = iter->ts;
- 	rel_usecs = ns2usecs(next_ts - iter->ts);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0100-hwmon-fam15h_power-fix-bogus-values-with-current-BIO.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0100-hwmon-fam15h_power-fix-bogus-values-with-current-BIO.patch
deleted file mode 100644
index b09d80f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0100-hwmon-fam15h_power-fix-bogus-values-with-current-BIO.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 9c1a0e414fb67307c1e9e7c7a81f5aa32fb3165d Mon Sep 17 00:00:00 2001
-From: Andre Przywara <andre.przywara at amd.com>
-Date: Mon, 9 Apr 2012 18:16:34 -0400
-Subject: [PATCH 100/165] hwmon: fam15h_power: fix bogus values with current
- BIOSes
-
-commit 00250ec90963b7ef6678438888f3244985ecde14 upstream.
-
-Newer BKDG[1] versions recommend a different initialization value for
-the running average range register in the northbridge. This improves
-the power reading by avoiding counter saturations resulting in bogus
-values for anything below about 80% of TDP power consumption.
-Updated BIOSes will have this new value set up from the beginning,
-but meanwhile we correct this value ourselves.
-This needs to be done on all northbridges, even on those where the
-driver itself does not register at.
-
-This fixes the driver on all current machines to provide proper
-values for idle load.
-
-[1]
-http://support.amd.com/us/Processor_TechDocs/42301_15h_Mod_00h-0Fh_BKDG.pdf
-Chapter 3.8: D18F5xE0 Processor TDP Running Average (p. 452)
-
-Signed-off-by: Andre Przywara <andre.przywara at amd.com>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-[guenter.roeck at ericsson.com: Removed unnecessary return statement]
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/fam15h_power.c |   39 +++++++++++++++++++++++++++++++++++++++
- 1 files changed, 39 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
-index 930370d..99aaf2e 100644
---- a/drivers/hwmon/fam15h_power.c
-+++ b/drivers/hwmon/fam15h_power.c
-@@ -122,6 +122,38 @@ static bool __devinit fam15h_power_is_internal_node0(struct pci_dev *f4)
- 	return true;
- }
- 
-+/*
-+ * Newer BKDG versions have an updated recommendation on how to properly
-+ * initialize the running average range (was: 0xE, now: 0x9). This avoids
-+ * counter saturations resulting in bogus power readings.
-+ * We correct this value ourselves to cope with older BIOSes.
-+ */
-+static void __devinit tweak_runavg_range(struct pci_dev *pdev)
-+{
-+	u32 val;
-+	const struct pci_device_id affected_device = {
-+		PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) };
-+
-+	/*
-+	 * let this quirk apply only to the current version of the
-+	 * northbridge, since future versions may change the behavior
-+	 */
-+	if (!pci_match_id(&affected_device, pdev))
-+		return;
-+
-+	pci_bus_read_config_dword(pdev->bus,
-+		PCI_DEVFN(PCI_SLOT(pdev->devfn), 5),
-+		REG_TDP_RUNNING_AVERAGE, &val);
-+	if ((val & 0xf) != 0xe)
-+		return;
-+
-+	val &= ~0xf;
-+	val |=  0x9;
-+	pci_bus_write_config_dword(pdev->bus,
-+		PCI_DEVFN(PCI_SLOT(pdev->devfn), 5),
-+		REG_TDP_RUNNING_AVERAGE, val);
-+}
-+
- static void __devinit fam15h_power_init_data(struct pci_dev *f4,
- 					     struct fam15h_power_data *data)
- {
-@@ -155,6 +187,13 @@ static int __devinit fam15h_power_probe(struct pci_dev *pdev,
- 	struct device *dev;
- 	int err;
- 
-+	/*
-+	 * though we ignore every other northbridge, we still have to
-+	 * do the tweaking on _each_ node in MCM processors as the counters
-+	 * are working hand-in-hand
-+	 */
-+	tweak_runavg_range(pdev);
-+
- 	if (!fam15h_power_is_internal_node0(pdev)) {
- 		err = -ENODEV;
- 		goto exit;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0101-hwmon-fam15h_power-Fix-pci_device_id-array.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0101-hwmon-fam15h_power-Fix-pci_device_id-array.patch
deleted file mode 100644
index 44a4282..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0101-hwmon-fam15h_power-Fix-pci_device_id-array.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 1acc2cf212b6af4889076ca69cc08f56ddb02161 Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <guenter.roeck at ericsson.com>
-Date: Wed, 25 Apr 2012 13:44:20 -0700
-Subject: [PATCH 101/165] hwmon: (fam15h_power) Fix pci_device_id array
-
-commit c3e40a9972428d6e2d8e287ed0233a57a218c30f upstream.
-
-pci_match_id() takes an *array* of IDs which must be properly zero-
-terminated.
-
-Reported-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/fam15h_power.c |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
-index 99aaf2e..9a4c3ab 100644
---- a/drivers/hwmon/fam15h_power.c
-+++ b/drivers/hwmon/fam15h_power.c
-@@ -128,17 +128,20 @@ static bool __devinit fam15h_power_is_internal_node0(struct pci_dev *f4)
-  * counter saturations resulting in bogus power readings.
-  * We correct this value ourselves to cope with older BIOSes.
-  */
-+static DEFINE_PCI_DEVICE_TABLE(affected_device) = {
-+	{ PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) },
-+	{ 0 }
-+};
-+
- static void __devinit tweak_runavg_range(struct pci_dev *pdev)
- {
- 	u32 val;
--	const struct pci_device_id affected_device = {
--		PCI_VDEVICE(AMD, PCI_DEVICE_ID_AMD_15H_NB_F4) };
- 
- 	/*
- 	 * let this quirk apply only to the current version of the
- 	 * northbridge, since future versions may change the behavior
- 	 */
--	if (!pci_match_id(&affected_device, pdev))
-+	if (!pci_match_id(affected_device, pdev))
- 		return;
- 
- 	pci_bus_read_config_dword(pdev->bus,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0102-dell-laptop-Terminate-quirks-list-properly.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0102-dell-laptop-Terminate-quirks-list-properly.patch
deleted file mode 100644
index 69d4748..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0102-dell-laptop-Terminate-quirks-list-properly.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d53a6237d32c4a220706555cb5ac5bfa439495fc Mon Sep 17 00:00:00 2001
-From: Martin Nyhus <martin.nyhus at gmx.com>
-Date: Thu, 15 Mar 2012 18:25:48 +0100
-Subject: [PATCH 102/165] dell-laptop: Terminate quirks list properly
-
-commit d62d421b071b08249361044d8e56c8b5c3ed6aa7 upstream.
-
-Add missing DMI_NONE entry to end of the quirks list so
-dmi_check_system() won't read past the end of the list.
-
-Signed-off-by: Martin Nyhus <martin.nyhus at gmx.com>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/dell-laptop.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/platform/x86/dell-laptop.c b/drivers/platform/x86/dell-laptop.c
-index 92e42d4..1d3bcce 100644
---- a/drivers/platform/x86/dell-laptop.c
-+++ b/drivers/platform/x86/dell-laptop.c
-@@ -211,6 +211,7 @@ static struct dmi_system_id __devinitdata dell_quirks[] = {
- 		},
- 		.driver_data = &quirk_dell_vostro_v130,
- 	},
-+	{ }
- };
- 
- static struct calling_interface_buffer *buffer;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0103-drm-radeon-kms-need-to-set-up-ss-on-DP-bridges-as-we.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0103-drm-radeon-kms-need-to-set-up-ss-on-DP-bridges-as-we.patch
deleted file mode 100644
index f444f58..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0103-drm-radeon-kms-need-to-set-up-ss-on-DP-bridges-as-we.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8c6a4eb92e96889d0a8666eb32fd43307db5e554 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Fri, 27 Apr 2012 17:18:59 -0400
-Subject: [PATCH 103/165] drm/radeon/kms: need to set up ss on DP bridges as
- well
-
-commit 700698e7c303f5095107c62a81872c2c3dad1702 upstream.
-
-Makes Nutmeg DP to VGA bridges work for me.
-
-Fixes:
-https://bugs.freedesktop.org/show_bug.cgi?id=42490
-
-Noticed by Jerome Glisse (after weeks of debugging).
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/atombios_crtc.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
-index b30081f..757c549 100644
---- a/drivers/gpu/drm/radeon/atombios_crtc.c
-+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
-@@ -917,8 +917,8 @@ static void atombios_crtc_set_pll(struct drm_crtc *crtc, struct drm_display_mode
- 		break;
- 	}
- 
--	if (radeon_encoder->active_device &
--	    (ATOM_DEVICE_LCD_SUPPORT | ATOM_DEVICE_DFP_SUPPORT)) {
-+	if ((radeon_encoder->active_device & (ATOM_DEVICE_LCD_SUPPORT | ATOM_DEVICE_DFP_SUPPORT)) ||
-+	    (radeon_encoder_get_dp_bridge_encoder_id(encoder) != ENCODER_OBJECT_ID_NONE)) {
- 		struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
- 		struct drm_connector *connector =
- 			radeon_get_connector_for_encoder(encoder);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0104-drm-i915-handle-input-output-sdvo-timings-separately.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0104-drm-i915-handle-input-output-sdvo-timings-separately.patch
deleted file mode 100644
index 36df16e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0104-drm-i915-handle-input-output-sdvo-timings-separately.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 5ac88fb769b43e9c87ffe472fa1ed93f0dd1e526 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sun, 1 Apr 2012 19:16:18 +0200
-Subject: [PATCH 104/165] drm/i915: handle input/output sdvo timings
- separately in mode_set
-
-commit 6651819b4b4fc3caa6964c5d825eb4bb996f3905 upstream.
-
-We seem to have a decent confusion between the output timings and the
-input timings of the sdvo encoder. If I understand the code correctly,
-we use the original mode unchanged for the output timings, safe for
-the lvds case. And we should use the adjusted mode for input timings.
-
-Clarify the situation by adding an explicit output_dtd to the sdvo
-mode_set function and streamline the code-flow by moving the input and
-output mode setting in the sdvo encode together.
-
-Furthermore testing showed that the sdvo input timing needs the
-unadjusted dotclock, the sdvo chip will automatically compute the
-required pixel multiplier to get a dotclock above 100 MHz.
-
-Fix this up when converting a drm mode to an sdvo dtd.
-
-This regression was introduced in
-
-commit c74696b9c890074c1e1ee3d7496fc71eb3680ced
-Author: Pavel Roskin <proski at gnu.org>
-Date:   Thu Sep 2 14:46:34 2010 -0400
-
-    i915: revert some checks added by commit 32aad86f
-
-particularly the following hunk:
-
-> diff --git a/drivers/gpu/drm/i915/intel_sdvo.c
-> b/drivers/gpu/drm/i915/intel_sdvo.c
-> index 093e914..62d22ae 100644
-> --- a/drivers/gpu/drm/i915/intel_sdvo.c
-> +++ b/drivers/gpu/drm/i915/intel_sdvo.c
-> @@ -1122,11 +1123,9 @@ static void intel_sdvo_mode_set(struct drm_encoder *encoder,
->
->      /* We have tried to get input timing in mode_fixup, and filled into
->         adjusted_mode */
-> -    if (intel_sdvo->is_tv || intel_sdvo->is_lvds) {
-> -        intel_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode);
-> +    intel_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode);
-> +    if (intel_sdvo->is_tv || intel_sdvo->is_lvds)
->          input_dtd.part2.sdvo_flags = intel_sdvo->sdvo_flags;
-> -    } else
-> -        intel_sdvo_get_dtd_from_mode(&input_dtd, mode);
->
->      /* If it's a TV, we already set the output timing in mode_fixup.
->       * Otherwise, the output timing is equal to the input timing.
-
-Due to questions raised in review, below a more elaborate analysis of
-the bug at hand:
-
-Sdvo seems to have two timings, one is the output timing which will be
-sent over whatever is connected on the other side of the sdvo chip (panel,
-hdmi screen, tv), the other is the input timing which will be generated by
-the gmch pipe. It looks like sdvo is expected to scale between the two.
-
-To make things slightly more complicated, we have a bunch of special
-cases:
-- For lvds panel we always use a fixed output timing, namely
-  intel_sdvo->sdvo_lvds_fixed_mode, hence that special case.
-- Sdvo has an interface to generate a preferred input timing for a given
-  output timing. This is the confusing thing that I've tried to clear up
-  with the follow-on patches.
-- A special requirement is that the input pixel clock needs to be between
-  100MHz and 200MHz (likely to keep it within the electromechanical design
-  range of PCIe), 270MHz on later gen4+. Lower pixel clocks are
-  doubled/quadrupled.
-
-The thing this patch tries to fix is that the pipe needs to be
-explicitly instructed to double/quadruple the pixels and needs the
-correspondingly higher pixel clock, whereas the sdvo adaptor seems to
-do that itself and needs the unadjusted pixel clock. For the sdvo
-encode side we already set the pixel mutliplier with a different
-command (0x21).
-
-This patch tries to fix this mess by:
-- Keeping the output mode timing in the unadjusted plain mode, safe
-  for the lvds case.
-- Storing the input timing in the adjusted_mode with the adjusted
-  pixel clock. This way we don't need to frob around with the core
-  crtc mode set code.
-- Fixing up the pixelclock when constructing the sdvo dtd timing
-  struct. This is why the first hunk of the patch is an integral part
-  of the series.
-- Dropping the is_tv special case because input_dtd is equivalent to
-  adjusted_mode after these changes. Follow-up patches clear this up
-  further (by simply ripping out intel_sdvo->input_dtd because it's
-  not needed).
-
-v2: Extend commit message with an in-depth bug analysis.
-
-Reported-and-Tested-by: Bernard Blackham <b-linuxgit at largestprime.net>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=48157
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Indented the hunk quoted above so quilt doesn't try to apply it]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_sdvo.c |   34 ++++++++++++++++++----------------
- 1 files changed, 18 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
-index e334ec3..0a877dd 100644
---- a/drivers/gpu/drm/i915/intel_sdvo.c
-+++ b/drivers/gpu/drm/i915/intel_sdvo.c
-@@ -731,6 +731,7 @@ static void intel_sdvo_get_dtd_from_mode(struct intel_sdvo_dtd *dtd,
- 	uint16_t width, height;
- 	uint16_t h_blank_len, h_sync_len, v_blank_len, v_sync_len;
- 	uint16_t h_sync_offset, v_sync_offset;
-+	int mode_clock;
- 
- 	width = mode->crtc_hdisplay;
- 	height = mode->crtc_vdisplay;
-@@ -745,7 +746,11 @@ static void intel_sdvo_get_dtd_from_mode(struct intel_sdvo_dtd *dtd,
- 	h_sync_offset = mode->crtc_hsync_start - mode->crtc_hblank_start;
- 	v_sync_offset = mode->crtc_vsync_start - mode->crtc_vblank_start;
- 
--	dtd->part1.clock = mode->clock / 10;
-+	mode_clock = mode->clock;
-+	mode_clock /= intel_mode_get_pixel_multiplier(mode) ?: 1;
-+	mode_clock /= 10;
-+	dtd->part1.clock = mode_clock;
-+
- 	dtd->part1.h_active = width & 0xff;
- 	dtd->part1.h_blank = h_blank_len & 0xff;
- 	dtd->part1.h_high = (((width >> 8) & 0xf) << 4) |
-@@ -997,7 +1002,7 @@ static void intel_sdvo_mode_set(struct drm_encoder *encoder,
- 	struct intel_sdvo *intel_sdvo = to_intel_sdvo(encoder);
- 	u32 sdvox;
- 	struct intel_sdvo_in_out_map in_out;
--	struct intel_sdvo_dtd input_dtd;
-+	struct intel_sdvo_dtd input_dtd, output_dtd;
- 	int pixel_multiplier = intel_mode_get_pixel_multiplier(adjusted_mode);
- 	int rate;
- 
-@@ -1022,20 +1027,13 @@ static void intel_sdvo_mode_set(struct drm_encoder *encoder,
- 					  intel_sdvo->attached_output))
- 		return;
- 
--	/* We have tried to get input timing in mode_fixup, and filled into
--	 * adjusted_mode.
--	 */
--	if (intel_sdvo->is_tv || intel_sdvo->is_lvds) {
--		input_dtd = intel_sdvo->input_dtd;
--	} else {
--		/* Set the output timing to the screen */
--		if (!intel_sdvo_set_target_output(intel_sdvo,
--						  intel_sdvo->attached_output))
--			return;
--
--		intel_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode);
--		(void) intel_sdvo_set_output_timing(intel_sdvo, &input_dtd);
--	}
-+	/* lvds has a special fixed output timing. */
-+	if (intel_sdvo->is_lvds)
-+		intel_sdvo_get_dtd_from_mode(&output_dtd,
-+					     intel_sdvo->sdvo_lvds_fixed_mode);
-+	else
-+		intel_sdvo_get_dtd_from_mode(&output_dtd, mode);
-+	(void) intel_sdvo_set_output_timing(intel_sdvo, &output_dtd);
- 
- 	/* Set the input timing to the screen. Assume always input 0. */
- 	if (!intel_sdvo_set_target_input(intel_sdvo))
-@@ -1053,6 +1051,10 @@ static void intel_sdvo_mode_set(struct drm_encoder *encoder,
- 	    !intel_sdvo_set_tv_format(intel_sdvo))
- 		return;
- 
-+	/* We have tried to get input timing in mode_fixup, and filled into
-+	 * adjusted_mode.
-+	 */
-+	intel_sdvo_get_dtd_from_mode(&input_dtd, adjusted_mode);
- 	(void) intel_sdvo_set_input_timing(intel_sdvo, &input_dtd);
- 
- 	switch (pixel_multiplier) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0105-drm-i915-relative_constants_mode-race-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0105-drm-i915-relative_constants_mode-race-fix.patch
deleted file mode 100644
index e074c3b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0105-drm-i915-relative_constants_mode-race-fix.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From c1f4cbb7a7af1e7a02e2516bd82215fd79b9edbd Mon Sep 17 00:00:00 2001
-From: Ben Widawsky <ben at bwidawsk.net>
-Date: Mon, 12 Dec 2011 19:21:57 -0800
-Subject: [PATCH 105/165] drm/i915: relative_constants_mode race fix
-
-commit e2971bdab2b761683353da383c0fd5ac704d1cca upstream.
-
-dev_priv keeps track of the current addressing mode that gets set at
-execbuffer time. Unfortunately the existing code was doing this before
-acquiring struct_mutex which leaves a race with another thread also
-doing an execbuffer. If that wasn't bad enough, relocate_slow drops
-struct_mutex which opens a much more likely error where another thread
-comes in and modifies the state while relocate_slow is being slow.
-
-The solution here is to just defer setting this state until we
-absolutely need it, and we know we'll have struct_mutex for the
-remainder of our code path.
-
-v2: Keith noticed a bug in the original patch.
-
-Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_gem_execbuffer.c |   29 +++++++++++++++------------
- 1 files changed, 16 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index b9da890..7d64f83 100644
---- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -1033,19 +1033,6 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 			if (INTEL_INFO(dev)->gen > 5 &&
- 			    mode == I915_EXEC_CONSTANTS_REL_SURFACE)
- 				return -EINVAL;
--
--			ret = intel_ring_begin(ring, 4);
--			if (ret)
--				return ret;
--
--			intel_ring_emit(ring, MI_NOOP);
--			intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
--			intel_ring_emit(ring, INSTPM);
--			intel_ring_emit(ring,
--					I915_EXEC_CONSTANTS_MASK << 16 | mode);
--			intel_ring_advance(ring);
--
--			dev_priv->relative_constants_mode = mode;
- 		}
- 		break;
- 	default:
-@@ -1176,6 +1163,22 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 		}
- 	}
- 
-+	if (ring == &dev_priv->ring[RCS] &&
-+	    mode != dev_priv->relative_constants_mode) {
-+		ret = intel_ring_begin(ring, 4);
-+		if (ret)
-+				goto err;
-+
-+		intel_ring_emit(ring, MI_NOOP);
-+		intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
-+		intel_ring_emit(ring, INSTPM);
-+		intel_ring_emit(ring,
-+				I915_EXEC_CONSTANTS_MASK << 16 | mode);
-+		intel_ring_advance(ring);
-+
-+		dev_priv->relative_constants_mode = mode;
-+	}
-+
- 	trace_i915_gem_ring_dispatch(ring, seqno);
- 
- 	exec_start = batch_obj->gtt_offset + args->batch_start_offset;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0106-drm-i915-Force-sync-command-ordering-Gen6.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0106-drm-i915-Force-sync-command-ordering-Gen6.patch
deleted file mode 100644
index e59e166..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0106-drm-i915-Force-sync-command-ordering-Gen6.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 04029d7c030fddf168b85e9f39f76fcc282b768b Mon Sep 17 00:00:00 2001
-From: Ben Widawsky <ben at bwidawsk.net>
-Date: Mon, 12 Dec 2011 19:21:58 -0800
-Subject: [PATCH 106/165] drm/i915: Force sync command ordering (Gen6+)
-
-commit 84f9f938be4156e4baea466688bd6abae1c9e6ba upstream.
-
-The docs say this is required for Gen7, and since the bit was added for
-Gen6, we are also setting it there pit pf paranoia. Particularly as
-Chris points out, if PIPE_CONTROL counts as a 3d state packet.
-
-This was found through doc inspection by Ken and applies to Gen6+;
-
-Reported-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Reviewed-by: Eric Anholt <eric at anholt.net>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_gem_execbuffer.c |    9 +++++++--
- drivers/gpu/drm/i915/i915_reg.h            |    1 +
- drivers/gpu/drm/i915/intel_ringbuffer.c    |    5 +++++
- 3 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index 7d64f83..ed00f29 100644
---- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -984,6 +984,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 	struct intel_ring_buffer *ring;
- 	u32 exec_start, exec_len;
- 	u32 seqno;
-+	u32 mask;
- 	int ret, mode, i;
- 
- 	if (!i915_gem_check_execbuffer(args)) {
-@@ -1021,6 +1022,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 	}
- 
- 	mode = args->flags & I915_EXEC_CONSTANTS_MASK;
-+	mask = I915_EXEC_CONSTANTS_MASK;
- 	switch (mode) {
- 	case I915_EXEC_CONSTANTS_REL_GENERAL:
- 	case I915_EXEC_CONSTANTS_ABSOLUTE:
-@@ -1033,6 +1035,10 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 			if (INTEL_INFO(dev)->gen > 5 &&
- 			    mode == I915_EXEC_CONSTANTS_REL_SURFACE)
- 				return -EINVAL;
-+
-+			/* The HW changed the meaning on this bit on gen6 */
-+			if (INTEL_INFO(dev)->gen >= 6)
-+				mask &= ~I915_EXEC_CONSTANTS_REL_SURFACE;
- 		}
- 		break;
- 	default:
-@@ -1172,8 +1178,7 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 		intel_ring_emit(ring, MI_NOOP);
- 		intel_ring_emit(ring, MI_LOAD_REGISTER_IMM(1));
- 		intel_ring_emit(ring, INSTPM);
--		intel_ring_emit(ring,
--				I915_EXEC_CONSTANTS_MASK << 16 | mode);
-+		intel_ring_emit(ring, mask << 16 | mode);
- 		intel_ring_advance(ring);
- 
- 		dev_priv->relative_constants_mode = mode;
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 2f99fd4..beca72f 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -442,6 +442,7 @@
- #define   INSTPM_AGPBUSY_DIS (1<<11) /* gen3: when disabled, pending interrupts
- 					will not assert AGPBUSY# and will only
- 					be delivered when out of C3. */
-+#define   INSTPM_FORCE_ORDERING				(1<<7) /* GEN6+ */
- #define ACTHD	        0x020c8
- #define FW_BLC		0x020d8
- #define FW_BLC2		0x020dc
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 8673581..3c9c086 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -414,6 +414,11 @@ static int init_render_ring(struct intel_ring_buffer *ring)
- 			return ret;
- 	}
- 
-+	if (INTEL_INFO(dev)->gen >= 6) {
-+		I915_WRITE(INSTPM,
-+			   INSTPM_FORCE_ORDERING << 16 | INSTPM_FORCE_ORDERING);
-+	}
-+
- 	return ret;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0107-drm-i915-Set-the-Stencil-Cache-eviction-policy-to-no.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0107-drm-i915-Set-the-Stencil-Cache-eviction-policy-to-no.patch
deleted file mode 100644
index 9b0ecd8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0107-drm-i915-Set-the-Stencil-Cache-eviction-policy-to-no.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 623fa1ce0a50adf5f5e1133e459b5d725a378a6d Mon Sep 17 00:00:00 2001
-From: Kenneth Graunke <kenneth at whitecape.org>
-Date: Fri, 27 Apr 2012 12:44:41 -0700
-Subject: [PATCH 107/165] drm/i915: Set the Stencil Cache eviction policy to
- non-LRA mode.
-
-commit 3a69ddd6f872180b6f61fda87152b37202118fbc upstream.
-
-Clearing bit 5 of CACHE_MODE_0 is necessary to prevent GPU hangs in
-OpenGL programs such as Google MapsGL, Google Earth, and gzdoom when
-using separate stencil buffers.  Without it, the GPU tries to use the
-LRA eviction policy, which isn't supported.  This was supposed to be off
-by default, but seems to be on for many machines.
-
-This cannot be done in gen6_init_clock_gating with most of the other
-workaround bits; the render ring needs to exist.  Otherwise, the
-register write gets dropped on the floor (one printk will show it
-changed, but a second printk immediately following shows the value
-reverts to the old one).
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=47535
-Cc: Rob Castle <futuredub at gmail.com>
-Cc: Eric Appleman <erappleman at gmail.com>
-Cc: aaron667 at gmx.net
-Cc: Keith Packard <keithp at keithp.com>
-Signed-off-by: Kenneth Graunke <kenneth at whitecape.org>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Acked-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_reg.h         |    1 +
- drivers/gpu/drm/i915/intel_ringbuffer.c |    8 ++++++++
- 2 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index beca72f..cbe5a88 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -523,6 +523,7 @@
- #define   CM0_MASK_SHIFT          16
- #define   CM0_IZ_OPT_DISABLE      (1<<6)
- #define   CM0_ZR_OPT_DISABLE      (1<<5)
-+#define	  CM0_STC_EVICT_DISABLE_LRA_SNB	(1<<5)
- #define   CM0_DEPTH_EVICT_DISABLE (1<<4)
- #define   CM0_COLOR_EVICT_DISABLE (1<<3)
- #define   CM0_DEPTH_WRITE_DISABLE (1<<1)
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 3c9c086..273f403 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -417,6 +417,14 @@ static int init_render_ring(struct intel_ring_buffer *ring)
- 	if (INTEL_INFO(dev)->gen >= 6) {
- 		I915_WRITE(INSTPM,
- 			   INSTPM_FORCE_ORDERING << 16 | INSTPM_FORCE_ORDERING);
-+
-+		/* From the Sandybridge PRM, volume 1 part 3, page 24:
-+		 * "If this bit is set, STCunit will have LRA as replacement
-+		 *  policy. [...] This bit must be reset.  LRA replacement
-+		 *  policy is not supported."
-+		 */
-+		I915_WRITE(CACHE_MODE_0,
-+			   CM0_STC_EVICT_DISABLE_LRA_SNB << CM0_MASK_SHIFT);
- 	}
- 
- 	return ret;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0108-drm-i915-fix-integer-overflow-in-i915_gem_execbuffer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0108-drm-i915-fix-integer-overflow-in-i915_gem_execbuffer.patch
deleted file mode 100644
index b726175..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0108-drm-i915-fix-integer-overflow-in-i915_gem_execbuffer.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 8f2f90a48393e092ca95f2a6e112baada0db0a3c Mon Sep 17 00:00:00 2001
-From: Xi Wang <xi.wang at gmail.com>
-Date: Mon, 23 Apr 2012 04:06:41 -0400
-Subject: [PATCH 108/165] drm/i915: fix integer overflow in
- i915_gem_execbuffer2()
-
-commit ed8cd3b2cd61004cab85380c52b1817aca1ca49b upstream.
-
-On 32-bit systems, a large args->buffer_count from userspace via ioctl
-may overflow the allocation size, leading to out-of-bounds access.
-
-This vulnerability was introduced in commit 8408c282 ("drm/i915:
-First try a normal large kmalloc for the temporary exec buffers").
-
-Signed-off-by: Xi Wang <xi.wang at gmail.com>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_gem_execbuffer.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index ed00f29..5b6fe31 100644
---- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -1322,7 +1322,8 @@ i915_gem_execbuffer2(struct drm_device *dev, void *data,
- 	struct drm_i915_gem_exec_object2 *exec2_list = NULL;
- 	int ret;
- 
--	if (args->buffer_count < 1) {
-+	if (args->buffer_count < 1 ||
-+	    args->buffer_count > UINT_MAX / sizeof(*exec2_list)) {
- 		DRM_ERROR("execbuf2 with %d buffers\n", args->buffer_count);
- 		return -EINVAL;
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0109-drm-i915-fix-integer-overflow-in-i915_gem_do_execbuf.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0109-drm-i915-fix-integer-overflow-in-i915_gem_do_execbuf.patch
deleted file mode 100644
index c60b3d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0109-drm-i915-fix-integer-overflow-in-i915_gem_do_execbuf.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From f69e43d73be5dc1a1b1550c12c06f32d7eeee9b5 Mon Sep 17 00:00:00 2001
-From: Xi Wang <xi.wang at gmail.com>
-Date: Mon, 23 Apr 2012 04:06:42 -0400
-Subject: [PATCH 109/165] drm/i915: fix integer overflow in
- i915_gem_do_execbuffer()
-
-commit 44afb3a04391a74309d16180d1e4f8386fdfa745 upstream.
-
-On 32-bit systems, a large args->num_cliprects from userspace via ioctl
-may overflow the allocation size, leading to out-of-bounds access.
-
-This vulnerability was introduced in commit 432e58ed ("drm/i915: Avoid
-allocation for execbuffer object list").
-
-Signed-off-by: Xi Wang <xi.wang at gmail.com>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_gem_execbuffer.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-index 5b6fe31..a6c2f7a 100644
---- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-+++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c
-@@ -1057,6 +1057,11 @@ i915_gem_do_execbuffer(struct drm_device *dev, void *data,
- 			return -EINVAL;
- 		}
- 
-+		if (args->num_cliprects > UINT_MAX / sizeof(*cliprects)) {
-+			DRM_DEBUG("execbuf with %u cliprects\n",
-+				  args->num_cliprects);
-+			return -EINVAL;
-+		}
- 		cliprects = kmalloc(args->num_cliprects * sizeof(*cliprects),
- 				    GFP_KERNEL);
- 		if (cliprects == NULL) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0110-nl80211-ensure-interface-is-up-in-various-APIs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0110-nl80211-ensure-interface-is-up-in-various-APIs.patch
deleted file mode 100644
index ced33cf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0110-nl80211-ensure-interface-is-up-in-various-APIs.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From aed930a331278472b81fbea0dfbdbe27672d41cd Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Mon, 2 Apr 2012 10:51:55 +0200
-Subject: [PATCH 110/165] nl80211: ensure interface is up in various APIs
-
-commit 2b5f8b0b44e17e625cfba1e7b88db44f4dcc0441 upstream.
-[backported by Ben Greear]
-
-The nl80211 handling code should ensure as much as
-it can that the interface is in a valid state, it
-can certainly ensure the interface is running.
-
-Not doing so can cause calls through mac80211 into
-the driver that result in warnings and unspecified
-behaviour in the driver.
-
-Reported-by: Ben Greear <greearb at candelatech.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Greear <greearb at candelatech.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/nl80211.c |   29 +++++++++++++++++------------
- 1 files changed, 17 insertions(+), 12 deletions(-)
-
-diff --git a/net/wireless/nl80211.c b/net/wireless/nl80211.c
-index ffafda5..c06c365 100644
---- a/net/wireless/nl80211.c
-+++ b/net/wireless/nl80211.c
-@@ -1258,6 +1258,11 @@ static int nl80211_set_wiphy(struct sk_buff *skb, struct genl_info *info)
- 			goto bad_res;
- 		}
- 
-+		if (!netif_running(netdev)) {
-+			result = -ENETDOWN;
-+			goto bad_res;
-+		}
-+
- 		nla_for_each_nested(nl_txq_params,
- 				    info->attrs[NL80211_ATTR_WIPHY_TXQ_PARAMS],
- 				    rem_txq_params) {
-@@ -5944,7 +5949,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_get_key,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -5976,7 +5981,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
- 		.doit = nl80211_addset_beacon,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -5984,7 +5989,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
- 		.doit = nl80211_addset_beacon,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6008,7 +6013,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_set_station,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6024,7 +6029,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_del_station,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6057,7 +6062,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_del_mpath,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6065,7 +6070,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_set_bss,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6091,7 +6096,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_get_mesh_config,
- 		.policy = nl80211_policy,
- 		/* can be retrieved by unprivileged users */
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6224,7 +6229,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_setdel_pmksa,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6232,7 +6237,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_setdel_pmksa,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6240,7 +6245,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_flush_pmksa,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
-@@ -6328,7 +6333,7 @@ static struct genl_ops nl80211_ops[] = {
- 		.doit = nl80211_set_wds_peer,
- 		.policy = nl80211_policy,
- 		.flags = GENL_ADMIN_PERM,
--		.internal_flags = NL80211_FLAG_NEED_NETDEV |
-+		.internal_flags = NL80211_FLAG_NEED_NETDEV_UP |
- 				  NL80211_FLAG_NEED_RTNL,
- 	},
- 	{
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0111-ALSA-HDA-Add-external-mic-quirk-for-Asus-Zenbook-UX3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0111-ALSA-HDA-Add-external-mic-quirk-for-Asus-Zenbook-UX3.patch
deleted file mode 100644
index 86dbcea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0111-ALSA-HDA-Add-external-mic-quirk-for-Asus-Zenbook-UX3.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 12bea9197ab5065d6eebf8a3746d486acc05963d Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Fri, 20 Apr 2012 10:01:46 +0200
-Subject: [PATCH 111/165] ALSA: HDA: Add external mic quirk for Asus Zenbook
- UX31E
-
-commit 5ac57550f279c3d991ef0b398681bcaca18169f7 upstream.
-
-According to the reporter, external mic starts to work if the
-laptop-dmic model is used. According to BIOS pin config, all
-pins are consistent with the alc269vb_laptop_dmic fixup, except
-for the external mic, which is not present.
-
-BugLink: https://bugs.launchpad.net/bugs/950490
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index dc8a6fc..0bc5a46 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5032,6 +5032,7 @@ static const struct alc_fixup alc269_fixups[] = {
- };
- 
- static const struct snd_pci_quirk alc269_fixup_tbl[] = {
-+	SND_PCI_QUIRK(0x1043, 0x1427, "Asus Zenbook UX31E", ALC269VB_FIXUP_DMIC),
- 	SND_PCI_QUIRK(0x1043, 0x1a13, "Asus G73Jw", ALC269_FIXUP_ASUS_G73JW),
- 	SND_PCI_QUIRK(0x1043, 0x16e3, "ASUS UX50", ALC269_FIXUP_STEREO_DMIC),
- 	SND_PCI_QUIRK(0x1043, 0x831a, "ASUS P901", ALC269_FIXUP_STEREO_DMIC),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0112-USB-cdc-wdm-fix-race-leading-leading-to-memory-corru.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0112-USB-cdc-wdm-fix-race-leading-leading-to-memory-corru.patch
deleted file mode 100644
index 2167487..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0112-USB-cdc-wdm-fix-race-leading-leading-to-memory-corru.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 5fe563d7ee35fedc59e2e8b230b31394aee32651 Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oliver at neukum.org>
-Date: Thu, 26 Apr 2012 21:59:10 +0200
-Subject: [PATCH 112/165] USB: cdc-wdm: fix race leading leading to memory
- corruption
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 5c22837adca7c30b66121cf18ad3e160134268d4 upstream.
-
-This patch fixes a race whereby a pointer to a buffer
-would be overwritten while the buffer was in use leading
-to a double free and a memory leak. This causes crashes.
-This bug was introduced in 2.6.34
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Tested-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 9eb71d8..2db0327 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -108,8 +108,9 @@ static void wdm_out_callback(struct urb *urb)
- 	spin_lock(&desc->iuspin);
- 	desc->werr = urb->status;
- 	spin_unlock(&desc->iuspin);
--	clear_bit(WDM_IN_USE, &desc->flags);
- 	kfree(desc->outbuf);
-+	desc->outbuf = NULL;
-+	clear_bit(WDM_IN_USE, &desc->flags);
- 	wake_up(&desc->wait);
- }
- 
-@@ -312,7 +313,7 @@ static ssize_t wdm_write
- 	if (we < 0)
- 		return -EIO;
- 
--	desc->outbuf = buf = kmalloc(count, GFP_KERNEL);
-+	buf = kmalloc(count, GFP_KERNEL);
- 	if (!buf) {
- 		rv = -ENOMEM;
- 		goto outnl;
-@@ -376,10 +377,12 @@ static ssize_t wdm_write
- 	req->wIndex = desc->inum;
- 	req->wLength = cpu_to_le16(count);
- 	set_bit(WDM_IN_USE, &desc->flags);
-+	desc->outbuf = buf;
- 
- 	rv = usb_submit_urb(desc->command, GFP_KERNEL);
- 	if (rv < 0) {
- 		kfree(buf);
-+		desc->outbuf = NULL;
- 		clear_bit(WDM_IN_USE, &desc->flags);
- 		dev_err(&desc->intf->dev, "Tx URB error: %d\n", rv);
- 	} else {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0113-USB-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0113-USB-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch
deleted file mode 100644
index ddf3dcf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0113-USB-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From 37377ccfbb44158128be2372cc9088b6c670e440 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Tue, 24 Apr 2012 14:07:22 -0400
-Subject: [PATCH 113/165] USB: EHCI: fix crash during suspend on ASUS
- computers
-
-commit 151b61284776be2d6f02d48c23c3625678960b97 upstream.
-
-This patch (as1545) fixes a problem affecting several ASUS computers:
-The machine crashes or corrupts memory when going into suspend if the
-ehci-hcd driver is bound to any controllers.  Users have been forced
-to unbind or unload ehci-hcd before putting their systems to sleep.
-
-After extensive testing, it was determined that the machines don't
-like going into suspend when any EHCI controllers are in the PCI D3
-power state.  Presumably this is a firmware bug, but there's nothing
-we can do about it except to avoid putting the controllers in D3
-during system sleep.
-
-The patch adds a new flag to indicate whether the problem is present,
-and avoids changing the controller's power state if the flag is set.
-Runtime suspend is unaffected; this matters only for system suspend.
-However as a side effect, the controller will not respond to remote
-wakeup requests while the system is asleep.  Hence USB wakeup is not
-functional -- but of course, this is already true in the current state
-of affairs.
-
-This fixes Bugzilla #42728.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Tested-by: Steven Rostedt <rostedt at goodmis.org>
-Tested-by: Andrey Rahmatullin <wrar at wrar.name>
-Tested-by: Oleksij Rempel (fishor) <bug-track at fisher-privat.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/hcd-pci.c  |    9 +++++++++
- drivers/usb/host/ehci-pci.c |    8 ++++++++
- include/linux/usb/hcd.h     |    2 ++
- 3 files changed, 19 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
-index 61d08dd..5f1404a 100644
---- a/drivers/usb/core/hcd-pci.c
-+++ b/drivers/usb/core/hcd-pci.c
-@@ -495,6 +495,15 @@ static int hcd_pci_suspend_noirq(struct device *dev)
- 
- 	pci_save_state(pci_dev);
- 
-+	/*
-+	 * Some systems crash if an EHCI controller is in D3 during
-+	 * a sleep transition.  We have to leave such controllers in D0.
-+	 */
-+	if (hcd->broken_pci_sleep) {
-+		dev_dbg(dev, "Staying in PCI D0\n");
-+		return retval;
-+	}
-+
- 	/* If the root hub is dead rather than suspended, disallow remote
- 	 * wakeup.  usb_hc_died() should ensure that both hosts are marked as
- 	 * dying, so we only need to check the primary roothub.
-diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
-index f4b627d..971d312 100644
---- a/drivers/usb/host/ehci-pci.c
-+++ b/drivers/usb/host/ehci-pci.c
-@@ -144,6 +144,14 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
- 			hcd->has_tt = 1;
- 			tdi_reset(ehci);
- 		}
-+		if (pdev->subsystem_vendor == PCI_VENDOR_ID_ASUSTEK) {
-+			/* EHCI #1 or #2 on 6 Series/C200 Series chipset */
-+			if (pdev->device == 0x1c26 || pdev->device == 0x1c2d) {
-+				ehci_info(ehci, "broken D3 during system sleep on ASUS\n");
-+				hcd->broken_pci_sleep = 1;
-+				device_set_wakeup_capable(&pdev->dev, false);
-+			}
-+		}
- 		break;
- 	case PCI_VENDOR_ID_TDI:
- 		if (pdev->device == PCI_DEVICE_ID_TDI_EHCI) {
-diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
-index 03354d5..64cec8d 100644
---- a/include/linux/usb/hcd.h
-+++ b/include/linux/usb/hcd.h
-@@ -128,6 +128,8 @@ struct usb_hcd {
- 	unsigned		wireless:1;	/* Wireless USB HCD */
- 	unsigned		authorized_default:1;
- 	unsigned		has_tt:1;	/* Integrated TT in root hub */
-+	unsigned		broken_pci_sleep:1;	/* Don't put the
-+			controller in PCI-D3 for system sleep */
- 
- 	int			irq;		/* irq allocated */
- 	void __iomem		*regs;		/* device memory/io */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0114-USB-gadget-storage-gadgets-send-wrong-error-code-for.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0114-USB-gadget-storage-gadgets-send-wrong-error-code-for.patch
deleted file mode 100644
index 52f75c8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0114-USB-gadget-storage-gadgets-send-wrong-error-code-for.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From e2ac51161592388a8e729fda87a35c467e56eb7b Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Wed, 11 Apr 2012 16:09:10 -0400
-Subject: [PATCH 114/165] USB: gadget: storage gadgets send wrong error code
- for unknown commands
-
-commit c85dcdac5852295cf6822f5c4331a6ddab72581f upstream.
-
-This patch (as1539) fixes a minor bug in the mass-storage gadget
-drivers.  When an unknown command is received, the error code sent
-back is "Invalid Field in CDB" rather than "Invalid Command".  This is
-because the bitmask of CDB bytes allowed to be nonzero is incorrect.
-
-When handling an unknown command, we don't care which command bytes
-are nonzero.  All the bits in the mask should be set, not just eight
-of them.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-CC: <Michal Nazarewicz <mina86 at mina86.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/gadget/f_mass_storage.c |    2 +-
- drivers/usb/gadget/file_storage.c   |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/gadget/f_mass_storage.c b/drivers/usb/gadget/f_mass_storage.c
-index 1a6f415..a5570b6 100644
---- a/drivers/usb/gadget/f_mass_storage.c
-+++ b/drivers/usb/gadget/f_mass_storage.c
-@@ -2182,7 +2182,7 @@ unknown_cmnd:
- 		common->data_size_from_cmnd = 0;
- 		sprintf(unknown, "Unknown x%02x", common->cmnd[0]);
- 		reply = check_command(common, common->cmnd_size,
--				      DATA_DIR_UNKNOWN, 0xff, 0, unknown);
-+				      DATA_DIR_UNKNOWN, ~0, 0, unknown);
- 		if (reply == 0) {
- 			common->curlun->sense_data = SS_INVALID_COMMAND;
- 			reply = -EINVAL;
-diff --git a/drivers/usb/gadget/file_storage.c b/drivers/usb/gadget/file_storage.c
-index 17a7047..41056e2 100644
---- a/drivers/usb/gadget/file_storage.c
-+++ b/drivers/usb/gadget/file_storage.c
-@@ -2569,7 +2569,7 @@ static int do_scsi_command(struct fsg_dev *fsg)
- 		fsg->data_size_from_cmnd = 0;
- 		sprintf(unknown, "Unknown x%02x", fsg->cmnd[0]);
- 		if ((reply = check_command(fsg, fsg->cmnd_size,
--				DATA_DIR_UNKNOWN, 0xff, 0, unknown)) == 0) {
-+				DATA_DIR_UNKNOWN, ~0, 0, unknown)) == 0) {
- 			fsg->curlun->sense_data = SS_INVALID_COMMAND;
- 			reply = -EINVAL;
- 		}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0115-usb-gadget-dummy-do-not-call-pullup-on-udc_stop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0115-usb-gadget-dummy-do-not-call-pullup-on-udc_stop.patch
deleted file mode 100644
index 9338500..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0115-usb-gadget-dummy-do-not-call-pullup-on-udc_stop.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 19436e7f0105b1503a6c0685311c287f094f0a88 Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Wed, 18 Apr 2012 13:59:30 +0300
-Subject: [PATCH 115/165] usb: gadget: dummy: do not call pullup() on
- udc_stop()
-
-commit 15b120d67019d691e4389372967332d74a80522a upstream.
-
-pullup() is already called properly by udc-core.c and
-there's no need to call it from udc_stop(), in fact that
-will cause issues.
-
-Reviewed-by: Alexander Shishkin <alexander.shishkin at linux.intel.com>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/gadget/dummy_hcd.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/gadget/dummy_hcd.c b/drivers/usb/gadget/dummy_hcd.c
-index db815c2..9098642 100644
---- a/drivers/usb/gadget/dummy_hcd.c
-+++ b/drivers/usb/gadget/dummy_hcd.c
-@@ -924,7 +924,6 @@ static int dummy_udc_stop(struct usb_gadget *g,
- 
- 	dum->driver = NULL;
- 
--	dummy_pullup(&dum->gadget, 0);
- 	return 0;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0116-usb-gadget-uvc-uvc_request_data-length-field-must-be.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0116-usb-gadget-uvc-uvc_request_data-length-field-must-be.patch
deleted file mode 100644
index 3f5d159..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0116-usb-gadget-uvc-uvc_request_data-length-field-must-be.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From c50d42c9d902b99077153d177a0fba885220552f Mon Sep 17 00:00:00 2001
-From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Date: Tue, 24 Apr 2012 11:29:42 +0200
-Subject: [PATCH 116/165] usb gadget: uvc: uvc_request_data::length field must
- be signed
-
-commit 6f6543f53f9ce136e01d7114bf6f0818ca54fb41 upstream.
-
-The field is used to pass the UVC request data length, but can also be
-used to signal an error when setting it to a negative value. Switch from
-unsigned int to __s32.
-
-Reported-by: Fernandez Gonzalo <gfernandez at copreci.es>
-Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/gadget/uvc.h      |    2 +-
- drivers/usb/gadget/uvc_v4l2.c |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/gadget/uvc.h b/drivers/usb/gadget/uvc.h
-index bc78c60..ca4e03a 100644
---- a/drivers/usb/gadget/uvc.h
-+++ b/drivers/usb/gadget/uvc.h
-@@ -28,7 +28,7 @@
- 
- struct uvc_request_data
- {
--	unsigned int length;
-+	__s32 length;
- 	__u8 data[60];
- };
- 
-diff --git a/drivers/usb/gadget/uvc_v4l2.c b/drivers/usb/gadget/uvc_v4l2.c
-index f6e083b..54d7ca5 100644
---- a/drivers/usb/gadget/uvc_v4l2.c
-+++ b/drivers/usb/gadget/uvc_v4l2.c
-@@ -39,7 +39,7 @@ uvc_send_response(struct uvc_device *uvc, struct uvc_request_data *data)
- 	if (data->length < 0)
- 		return usb_ep_set_halt(cdev->gadget->ep0);
- 
--	req->length = min(uvc->event_length, data->length);
-+	req->length = min_t(unsigned int, uvc->event_length, data->length);
- 	req->zero = data->length < uvc->event_length;
- 	req->dma = DMA_ADDR_INVALID;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0117-pipes-add-a-packetized-pipe-mode-for-writing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0117-pipes-add-a-packetized-pipe-mode-for-writing.patch
deleted file mode 100644
index e25c9d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0117-pipes-add-a-packetized-pipe-mode-for-writing.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 458c33bdfc9d408f94038a4db0544ab348d0d96d Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sun, 29 Apr 2012 13:12:42 -0700
-Subject: [PATCH 117/165] pipes: add a "packetized pipe" mode for writing
-
-commit 9883035ae7edef3ec62ad215611cb8e17d6a1a5d upstream.
-
-The actual internal pipe implementation is already really about
-individual packets (called "pipe buffers"), and this simply exposes that
-as a special packetized mode.
-
-When we are in the packetized mode (marked by O_DIRECT as suggested by
-Alan Cox), a write() on a pipe will not merge the new data with previous
-writes, so each write will get a pipe buffer of its own.  The pipe
-buffer is then marked with the PIPE_BUF_FLAG_PACKET flag, which in turn
-will tell the reader side to break the read at that boundary (and throw
-away any partial packet contents that do not fit in the read buffer).
-
-End result: as long as you do writes less than PIPE_BUF in size (so that
-the pipe doesn't have to split them up), you can now treat the pipe as a
-packet interface, where each read() system call will read one packet at
-a time.  You can just use a sufficiently big read buffer (PIPE_BUF is
-sufficient, since bigger than that doesn't guarantee atomicity anyway),
-and the return value of the read() will naturally give you the size of
-the packet.
-
-NOTE! We do not support zero-sized packets, and zero-sized reads and
-writes to a pipe continue to be no-ops.  Also note that big packets will
-currently be split at write time, but that the size at which that
-happens is not really specified (except that it's bigger than PIPE_BUF).
-Currently that limit is the system page size, but we might want to
-explicitly support bigger packets some day.
-
-The main user for this is going to be the autofs packet interface,
-allowing us to stop having to care so deeply about exact packet sizes
-(which have had bugs with 32/64-bit compatibility modes).  But user
-space can create packetized pipes with "pipe2(fd, O_DIRECT)", which will
-fail with an EINVAL on kernels that do not support this interface.
-
-Tested-by: Michael Tokarev <mjt at tls.msk.ru>
-Cc: Alan Cox <alan at lxorguk.ukuu.org.uk>
-Cc: David Miller <davem at davemloft.net>
-Cc: Ian Kent <raven at themaw.net>
-Cc: Thomas Meyer <thomas at m3y3r.de>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/pipe.c                 |   31 +++++++++++++++++++++++++++++--
- include/linux/pipe_fs_i.h |    1 +
- 2 files changed, 30 insertions(+), 2 deletions(-)
-
-diff --git a/fs/pipe.c b/fs/pipe.c
-index 4065f07..05ed5ca 100644
---- a/fs/pipe.c
-+++ b/fs/pipe.c
-@@ -345,6 +345,16 @@ static const struct pipe_buf_operations anon_pipe_buf_ops = {
- 	.get = generic_pipe_buf_get,
- };
- 
-+static const struct pipe_buf_operations packet_pipe_buf_ops = {
-+	.can_merge = 0,
-+	.map = generic_pipe_buf_map,
-+	.unmap = generic_pipe_buf_unmap,
-+	.confirm = generic_pipe_buf_confirm,
-+	.release = anon_pipe_buf_release,
-+	.steal = generic_pipe_buf_steal,
-+	.get = generic_pipe_buf_get,
-+};
-+
- static ssize_t
- pipe_read(struct kiocb *iocb, const struct iovec *_iov,
- 	   unsigned long nr_segs, loff_t pos)
-@@ -406,6 +416,13 @@ redo:
- 			ret += chars;
- 			buf->offset += chars;
- 			buf->len -= chars;
-+
-+			/* Was it a packet buffer? Clean up and exit */
-+			if (buf->flags & PIPE_BUF_FLAG_PACKET) {
-+				total_len = chars;
-+				buf->len = 0;
-+			}
-+
- 			if (!buf->len) {
- 				buf->ops = NULL;
- 				ops->release(pipe, buf);
-@@ -458,6 +475,11 @@ redo:
- 	return ret;
- }
- 
-+static inline int is_packetized(struct file *file)
-+{
-+	return (file->f_flags & O_DIRECT) != 0;
-+}
-+
- static ssize_t
- pipe_write(struct kiocb *iocb, const struct iovec *_iov,
- 	    unsigned long nr_segs, loff_t ppos)
-@@ -592,6 +614,11 @@ redo2:
- 			buf->ops = &anon_pipe_buf_ops;
- 			buf->offset = 0;
- 			buf->len = chars;
-+			buf->flags = 0;
-+			if (is_packetized(filp)) {
-+				buf->ops = &packet_pipe_buf_ops;
-+				buf->flags = PIPE_BUF_FLAG_PACKET;
-+			}
- 			pipe->nrbufs = ++bufs;
- 			pipe->tmp_page = NULL;
- 
-@@ -1012,7 +1039,7 @@ struct file *create_write_pipe(int flags)
- 		goto err_dentry;
- 	f->f_mapping = inode->i_mapping;
- 
--	f->f_flags = O_WRONLY | (flags & O_NONBLOCK);
-+	f->f_flags = O_WRONLY | (flags & (O_NONBLOCK | O_DIRECT));
- 	f->f_version = 0;
- 
- 	return f;
-@@ -1056,7 +1083,7 @@ int do_pipe_flags(int *fd, int flags)
- 	int error;
- 	int fdw, fdr;
- 
--	if (flags & ~(O_CLOEXEC | O_NONBLOCK))
-+	if (flags & ~(O_CLOEXEC | O_NONBLOCK | O_DIRECT))
- 		return -EINVAL;
- 
- 	fw = create_write_pipe(flags);
-diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h
-index 77257c9..0072a53 100644
---- a/include/linux/pipe_fs_i.h
-+++ b/include/linux/pipe_fs_i.h
-@@ -8,6 +8,7 @@
- #define PIPE_BUF_FLAG_LRU	0x01	/* page is on the LRU */
- #define PIPE_BUF_FLAG_ATOMIC	0x02	/* was atomically mapped */
- #define PIPE_BUF_FLAG_GIFT	0x04	/* page is a gift */
-+#define PIPE_BUF_FLAG_PACKET	0x08	/* read() as a packet */
- 
- /**
-  *	struct pipe_buffer - a linux kernel pipe buffer
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0118-autofs-make-the-autofsv5-packet-file-descriptor-use-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0118-autofs-make-the-autofsv5-packet-file-descriptor-use-.patch
deleted file mode 100644
index 26baefc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0118-autofs-make-the-autofsv5-packet-file-descriptor-use-.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 06cd49dc3fc506eec882f7cf754eacd9804a79cd Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sun, 29 Apr 2012 13:30:08 -0700
-Subject: [PATCH 118/165] autofs: make the autofsv5 packet file descriptor use
- a packetized pipe
-
-commit 64f371bc3107e69efce563a3d0f0e6880de0d537 upstream.
-
-The autofs packet size has had a very unfortunate size problem on x86:
-because the alignment of 'u64' differs in 32-bit and 64-bit modes, and
-because the packet data was not 8-byte aligned, the size of the autofsv5
-packet structure differed between 32-bit and 64-bit modes despite
-looking otherwise identical (300 vs 304 bytes respectively).
-
-We first fixed that up by making the 64-bit compat mode know about this
-problem in commit a32744d4abae ("autofs: work around unhappy compat
-problem on x86-64"), and that made a 32-bit 'systemd' work happily on a
-64-bit kernel because everything then worked the same way as on a 32-bit
-kernel.
-
-But it turned out that 'automount' had actually known and worked around
-this problem in user space, so fixing the kernel to do the proper 32-bit
-compatibility handling actually *broke* 32-bit automount on a 64-bit
-kernel, because it knew that the packet sizes were wrong and expected
-those incorrect sizes.
-
-As a result, we ended up reverting that compatibility mode fix, and
-thus breaking systemd again, in commit fcbf94b9dedd.
-
-With both automount and systemd doing a single read() system call, and
-verifying that they get *exactly* the size they expect but using
-different sizes, it seemed that fixing one of them inevitably seemed to
-break the other.  At one point, a patch I seriously considered applying
-from Michael Tokarev did a "strcmp()" to see if it was automount that
-was doing the operation.  Ugly, ugly.
-
-However, a prettier solution exists now thanks to the packetized pipe
-mode.  By marking the communication pipe as being packetized (by simply
-setting the O_DIRECT flag), we can always just write the bigger packet
-size, and if user-space does a smaller read, it will just get that
-partial end result and the extra alignment padding will simply be thrown
-away.
-
-This makes both automount and systemd happy, since they now get the size
-they asked for, and the kernel side of autofs simply no longer needs to
-care - it could pad out the packet arbitrarily.
-
-Of course, if there is some *other* user of autofs (please, please,
-please tell me it ain't so - and we haven't heard of any) that tries to
-read the packets with multiple writes, that other user will now be
-broken - the whole point of the packetized mode is that one system call
-gets exactly one packet, and you cannot read a packet in pieces.
-
-Tested-by: Michael Tokarev <mjt at tls.msk.ru>
-Cc: Alan Cox <alan at lxorguk.ukuu.org.uk>
-Cc: David Miller <davem at davemloft.net>
-Cc: Ian Kent <raven at themaw.net>
-Cc: Thomas Meyer <thomas at m3y3r.de>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/autofs4/autofs_i.h  |   11 +++++++++++
- fs/autofs4/dev-ioctl.c |    2 +-
- fs/autofs4/inode.c     |    2 +-
- 3 files changed, 13 insertions(+), 2 deletions(-)
-
-diff --git a/fs/autofs4/autofs_i.h b/fs/autofs4/autofs_i.h
-index 326dc08..650d520 100644
---- a/fs/autofs4/autofs_i.h
-+++ b/fs/autofs4/autofs_i.h
-@@ -268,6 +268,17 @@ int autofs4_fill_super(struct super_block *, void *, int);
- struct autofs_info *autofs4_new_ino(struct autofs_sb_info *);
- void autofs4_clean_ino(struct autofs_info *);
- 
-+static inline int autofs_prepare_pipe(struct file *pipe)
-+{
-+	if (!pipe->f_op || !pipe->f_op->write)
-+		return -EINVAL;
-+	if (!S_ISFIFO(pipe->f_dentry->d_inode->i_mode))
-+		return -EINVAL;
-+	/* We want a packet pipe */
-+	pipe->f_flags |= O_DIRECT;
-+	return 0;
-+}
-+
- /* Queue management functions */
- 
- int autofs4_wait(struct autofs_sb_info *,struct dentry *, enum autofs_notify);
-diff --git a/fs/autofs4/dev-ioctl.c b/fs/autofs4/dev-ioctl.c
-index 509fe1e..de54271 100644
---- a/fs/autofs4/dev-ioctl.c
-+++ b/fs/autofs4/dev-ioctl.c
-@@ -376,7 +376,7 @@ static int autofs_dev_ioctl_setpipefd(struct file *fp,
- 			err = -EBADF;
- 			goto out;
- 		}
--		if (!pipe->f_op || !pipe->f_op->write) {
-+		if (autofs_prepare_pipe(pipe) < 0) {
- 			err = -EPIPE;
- 			fput(pipe);
- 			goto out;
-diff --git a/fs/autofs4/inode.c b/fs/autofs4/inode.c
-index 8179f1a..7b5293e 100644
---- a/fs/autofs4/inode.c
-+++ b/fs/autofs4/inode.c
-@@ -292,7 +292,7 @@ int autofs4_fill_super(struct super_block *s, void *data, int silent)
- 		printk("autofs: could not open pipe file descriptor\n");
- 		goto fail_dput;
- 	}
--	if (!pipe->f_op || !pipe->f_op->write)
-+	if (autofs_prepare_pipe(pipe) < 0)
- 		goto fail_fput;
- 	sbi->pipe = pipe;
- 	sbi->pipefd = pipefd;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0119-ARM-7396-1-errata-only-handle-ARM-erratum-326103-on-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0119-ARM-7396-1-errata-only-handle-ARM-erratum-326103-on-.patch
deleted file mode 100644
index 645bdb6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0119-ARM-7396-1-errata-only-handle-ARM-erratum-326103-on-.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 73a8033457dd006878a2eeeb14133724923cd6af Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 20 Apr 2012 17:20:08 +0100
-Subject: [PATCH 119/165] ARM: 7396/1: errata: only handle ARM erratum #326103
- on affected cores
-
-commit f0c4b8d653f5ee091fb8d4d02ed7eaad397491bb upstream.
-
-Erratum #326103 ("FSR write bit incorrect on a SWP to read-only memory")
-only affects the ARM 1136 core prior to r1p0. The workaround
-disassembles the faulting instruction to determine whether it was a read
-or write access on all v6 cores.
-
-An issue has been reported on the ARM 11MPCore whereby loading the
-faulting instruction may happen in parallel with that page being
-unmapped, resulting in a deadlock due to the lack of TLB broadcasting
-in hardware:
-
-http://lists.infradead.org/pipermail/linux-arm-kernel/2012-March/091561.html
-
-This patch limits the workaround so that it is only used on affected
-cores, which are known to be UP only. Other v6 cores can rely on the
-FSR to indicate the access type correctly.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/Kconfig        |    9 +++++++++
- arch/arm/mm/abort-ev6.S |   17 +++++++++++------
- 2 files changed, 20 insertions(+), 6 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 6cd71ec..26574f0 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -1156,6 +1156,15 @@ if !MMU
- source "arch/arm/Kconfig-nommu"
- endif
- 
-+config ARM_ERRATA_326103
-+	bool "ARM errata: FSR write bit incorrect on a SWP to read-only memory"
-+	depends on CPU_V6
-+	help
-+	  Executing a SWP instruction to read-only memory does not set bit 11
-+	  of the FSR on the ARM 1136 prior to r1p0. This causes the kernel to
-+	  treat the access as a read, preventing a COW from occurring and
-+	  causing the faulting task to livelock.
-+
- config ARM_ERRATA_411920
- 	bool "ARM errata: Invalidation of the Instruction Cache operation can fail"
- 	depends on CPU_V6 || CPU_V6K
-diff --git a/arch/arm/mm/abort-ev6.S b/arch/arm/mm/abort-ev6.S
-index ff1f7cc..8074199 100644
---- a/arch/arm/mm/abort-ev6.S
-+++ b/arch/arm/mm/abort-ev6.S
-@@ -26,18 +26,23 @@ ENTRY(v6_early_abort)
- 	mrc	p15, 0, r1, c5, c0, 0		@ get FSR
- 	mrc	p15, 0, r0, c6, c0, 0		@ get FAR
- /*
-- * Faulty SWP instruction on 1136 doesn't set bit 11 in DFSR (erratum 326103).
-- * The test below covers all the write situations, including Java bytecodes
-+ * Faulty SWP instruction on 1136 doesn't set bit 11 in DFSR.
-  */
--	bic	r1, r1, #1 << 11		@ clear bit 11 of FSR
-+#ifdef CONFIG_ARM_ERRATA_326103
-+	ldr	ip, =0x4107b36
-+	mrc	p15, 0, r3, c0, c0, 0		@ get processor id
-+	teq	ip, r3, lsr #4			@ r0 ARM1136?
-+	bne	do_DataAbort
- 	tst	r5, #PSR_J_BIT			@ Java?
-+	tsteq	r5, #PSR_T_BIT			@ Thumb?
- 	bne	do_DataAbort
--	do_thumb_abort fsr=r1, pc=r4, psr=r5, tmp=r3
--	ldreq	r3, [r4]			@ read aborted ARM instruction
-+	bic	r1, r1, #1 << 11		@ clear bit 11 of FSR
-+	ldr	r3, [r4]			@ read aborted ARM instruction
- #ifdef CONFIG_CPU_ENDIAN_BE8
--	reveq	r3, r3
-+	rev	r3, r3
- #endif
- 	do_ldrd_abort tmp=ip, insn=r3
- 	tst	r3, #1 << 20			@ L = 0 -> write
- 	orreq	r1, r1, #1 << 11		@ yes.
-+#endif
- 	b	do_DataAbort
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0120-ARM-7397-1-l2x0-only-apply-workaround-for-erratum-75.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0120-ARM-7397-1-l2x0-only-apply-workaround-for-erratum-75.patch
deleted file mode 100644
index 32e3a48..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0120-ARM-7397-1-l2x0-only-apply-workaround-for-erratum-75.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 8d2876b00b257ea48fddbccfb531ad618d83ed0b Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 20 Apr 2012 17:21:08 +0100
-Subject: [PATCH 120/165] ARM: 7397/1: l2x0: only apply workaround for erratum
- #753970 on PL310
-
-commit f154fe9b806574437b47f08e924ad10c0e240b23 upstream.
-
-The workaround for PL310 erratum #753970 can lead to deadlock on systems
-with an L220 cache controller.
-
-This patch makes the workaround effective only when the cache controller
-is identified as a PL310 at probe time.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mm/cache-l2x0.c |   12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
-index b1e192b..971d527 100644
---- a/arch/arm/mm/cache-l2x0.c
-+++ b/arch/arm/mm/cache-l2x0.c
-@@ -32,6 +32,7 @@ static void __iomem *l2x0_base;
- static DEFINE_RAW_SPINLOCK(l2x0_lock);
- static uint32_t l2x0_way_mask;	/* Bitmask of active ways */
- static uint32_t l2x0_size;
-+static unsigned long sync_reg_offset = L2X0_CACHE_SYNC;
- 
- struct l2x0_regs l2x0_saved_regs;
- 
-@@ -61,12 +62,7 @@ static inline void cache_sync(void)
- {
- 	void __iomem *base = l2x0_base;
- 
--#ifdef CONFIG_PL310_ERRATA_753970
--	/* write to an unmmapped register */
--	writel_relaxed(0, base + L2X0_DUMMY_REG);
--#else
--	writel_relaxed(0, base + L2X0_CACHE_SYNC);
--#endif
-+	writel_relaxed(0, base + sync_reg_offset);
- 	cache_wait(base + L2X0_CACHE_SYNC, 1);
- }
- 
-@@ -331,6 +327,10 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)
- 		else
- 			ways = 8;
- 		type = "L310";
-+#ifdef CONFIG_PL310_ERRATA_753970
-+		/* Unmapped register. */
-+		sync_reg_offset = L2X0_DUMMY_REG;
-+#endif
- 		break;
- 	case L2X0_CACHE_ID_PART_L210:
- 		ways = (aux >> 13) & 0xf;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0121-ARM-7398-1-l2x0-only-write-to-debug-registers-on-PL3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0121-ARM-7398-1-l2x0-only-write-to-debug-registers-on-PL3.patch
deleted file mode 100644
index ffd9e26..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0121-ARM-7398-1-l2x0-only-write-to-debug-registers-on-PL3.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From a927ce0f8dd30f05ced7a71a5523ca5d82eab5d6 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 20 Apr 2012 17:22:11 +0100
-Subject: [PATCH 121/165] ARM: 7398/1: l2x0: only write to debug registers on
- PL310
-
-commit ab4d536890853ab6675ede65db40e2c0980cb0ea upstream.
-
-PL310 errata #588369 and #727915 require writes to the debug registers
-of the cache controller to work around known problems. Writing these
-registers on L220 may cause deadlock, so ensure that we only perform
-this operation when we identify a PL310 at probe time.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mm/cache-l2x0.c |   13 ++++++++-----
- 1 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/mm/cache-l2x0.c b/arch/arm/mm/cache-l2x0.c
-index 971d527..db7bcc0 100644
---- a/arch/arm/mm/cache-l2x0.c
-+++ b/arch/arm/mm/cache-l2x0.c
-@@ -81,10 +81,13 @@ static inline void l2x0_inv_line(unsigned long addr)
- }
- 
- #if defined(CONFIG_PL310_ERRATA_588369) || defined(CONFIG_PL310_ERRATA_727915)
-+static inline void debug_writel(unsigned long val)
-+{
-+	if (outer_cache.set_debug)
-+		outer_cache.set_debug(val);
-+}
- 
--#define debug_writel(val)	outer_cache.set_debug(val)
--
--static void l2x0_set_debug(unsigned long val)
-+static void pl310_set_debug(unsigned long val)
- {
- 	writel_relaxed(val, l2x0_base + L2X0_DEBUG_CTRL);
- }
-@@ -94,7 +97,7 @@ static inline void debug_writel(unsigned long val)
- {
- }
- 
--#define l2x0_set_debug	NULL
-+#define pl310_set_debug	NULL
- #endif
- 
- #ifdef CONFIG_PL310_ERRATA_588369
-@@ -331,6 +334,7 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)
- 		/* Unmapped register. */
- 		sync_reg_offset = L2X0_DUMMY_REG;
- #endif
-+		outer_cache.set_debug = pl310_set_debug;
- 		break;
- 	case L2X0_CACHE_ID_PART_L210:
- 		ways = (aux >> 13) & 0xf;
-@@ -379,7 +383,6 @@ void __init l2x0_init(void __iomem *base, __u32 aux_val, __u32 aux_mask)
- 	outer_cache.flush_all = l2x0_flush_all;
- 	outer_cache.inv_all = l2x0_inv_all;
- 	outer_cache.disable = l2x0_disable;
--	outer_cache.set_debug = l2x0_set_debug;
- 
- 	printk(KERN_INFO "%s cache controller enabled\n", type);
- 	printk(KERN_INFO "l2x0: %d ways, CACHE_ID 0x%08x, AUX_CTRL 0x%08x, Cache size: %d B\n",
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0122-ARM-7403-1-tls-remove-covert-channel-via-TPIDRURW.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0122-ARM-7403-1-tls-remove-covert-channel-via-TPIDRURW.patch
deleted file mode 100644
index 3caa8b6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0122-ARM-7403-1-tls-remove-covert-channel-via-TPIDRURW.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 3130ecbd0c24f4b31da00862223e9985010690c2 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 27 Apr 2012 12:45:07 +0100
-Subject: [PATCH 122/165] ARM: 7403/1: tls: remove covert channel via TPIDRURW
-
-commit 6a1c53124aa161eb624ce7b1e40ade728186d34c upstream.
-
-TPIDRURW is a user read/write register forming part of the group of
-thread registers in more recent versions of the ARM architecture (~v6+).
-
-Currently, the kernel does not touch this register, which allows tasks
-to communicate covertly by reading and writing to the register without
-context-switching affecting its contents.
-
-This patch clears TPIDRURW when TPIDRURO is updated via the set_tls
-macro, which is called directly from __switch_to. Since the current
-behaviour makes the register useless to userspace as far as thread
-pointers are concerned, simply clearing the register (rather than saving
-and restoring it) will not cause any problems to userspace.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/include/asm/tls.h |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/include/asm/tls.h b/arch/arm/include/asm/tls.h
-index 60843eb..73409e6 100644
---- a/arch/arm/include/asm/tls.h
-+++ b/arch/arm/include/asm/tls.h
-@@ -7,6 +7,8 @@
- 
- 	.macro set_tls_v6k, tp, tmp1, tmp2
- 	mcr	p15, 0, \tp, c13, c0, 3		@ set TLS register
-+	mov	\tmp1, #0
-+	mcr	p15, 0, \tmp1, c13, c0, 2	@ clear user r/w TLS register
- 	.endm
- 
- 	.macro set_tls_v6, tp, tmp1, tmp2
-@@ -15,6 +17,8 @@
- 	mov	\tmp2, #0xffff0fff
- 	tst	\tmp1, #HWCAP_TLS		@ hardware TLS available?
- 	mcrne	p15, 0, \tp, c13, c0, 3		@ yes, set TLS register
-+	movne	\tmp1, #0
-+	mcrne	p15, 0, \tmp1, c13, c0, 2	@ clear user r/w TLS register
- 	streq	\tp, [\tmp2, #-15]		@ set TLS value at 0xffff0ff0
- 	.endm
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0123-ARM-7406-1-hotplug-copy-the-affinity-mask-when-force.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0123-ARM-7406-1-hotplug-copy-the-affinity-mask-when-force.patch
deleted file mode 100644
index 7f66991..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0123-ARM-7406-1-hotplug-copy-the-affinity-mask-when-force.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 453a85cabdd26d6525b6563e7d1b804b4b88d42f Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 27 Apr 2012 12:56:24 +0100
-Subject: [PATCH 123/165] ARM: 7406/1: hotplug: copy the affinity mask when
- forcefully migrating IRQs
-
-commit 5e7371ded05adfcfcee44a8bc070bfc37979b8f2 upstream.
-
-When a CPU is hotplugged off, we migrate any IRQs currently affine to it
-away and onto another online CPU by calling the irq_set_affinity
-function of the relevant interrupt controller chip. This function
-returns either IRQ_SET_MASK_OK or IRQ_SET_MASK_OK_NOCOPY, to indicate
-whether irq_data.affinity was updated.
-
-If we are forcefully migrating an interrupt (because the affinity mask
-no longer identifies any online CPUs) then we should update the IRQ
-affinity mask to reflect the new CPU set. Failure to do so can
-potentially leave /proc/irq/n/smp_affinity identifying only offline
-CPUs, which may confuse userspace IRQ balancing daemons.
-
-This patch updates migrate_one_irq to copy the affinity mask when
-the interrupt chip returns IRQ_SET_MASK_OK after forcefully changing the
-affinity of an interrupt.
-
-Reported-by: Leif Lindholm <leif.lindholm at arm.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/kernel/irq.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/kernel/irq.c b/arch/arm/kernel/irq.c
-index 3efd82c..87c8be5 100644
---- a/arch/arm/kernel/irq.c
-+++ b/arch/arm/kernel/irq.c
-@@ -156,10 +156,10 @@ static bool migrate_one_irq(struct irq_desc *desc)
- 	}
- 
- 	c = irq_data_get_irq_chip(d);
--	if (c->irq_set_affinity)
--		c->irq_set_affinity(d, affinity, true);
--	else
-+	if (!c->irq_set_affinity)
- 		pr_debug("IRQ%u: unable to set affinity\n", d->irq);
-+	else if (c->irq_set_affinity(d, affinity, true) == IRQ_SET_MASK_OK && ret)
-+		cpumask_copy(d->affinity, affinity);
- 
- 	return ret;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0124-libsas-fix-sas_find_bcast_phy-in-the-presence-of-vac.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0124-libsas-fix-sas_find_bcast_phy-in-the-presence-of-vac.patch
deleted file mode 100644
index c29f0ac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0124-libsas-fix-sas_find_bcast_phy-in-the-presence-of-vac.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 8656241ad68bd13cec3e1fc5bf4ce8006b838b74 Mon Sep 17 00:00:00 2001
-From: Thomas Jackson <thomas.p.jackson at intel.com>
-Date: Fri, 17 Feb 2012 18:33:10 -0800
-Subject: [PATCH 124/165] libsas: fix sas_find_bcast_phy() in the presence of
- 'vacant' phys
-
-commit 1699490db339e2c6b3037ea8e7dcd6b2755b688e upstream.
-
-If an expander reports 'PHY VACANT' for a phy index prior to the one
-that generated a BCN libsas fails rediscovery.  Since a vacant phy is
-defined as a valid phy index that will never have an attached device
-just continue the search.
-
-Signed-off-by: Thomas Jackson <thomas.p.jackson at intel.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/libsas/sas_expander.c |   17 ++++++++++++-----
- 1 files changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
-index 1b831c5..a68780b 100644
---- a/drivers/scsi/libsas/sas_expander.c
-+++ b/drivers/scsi/libsas/sas_expander.c
-@@ -1643,9 +1643,17 @@ static int sas_find_bcast_phy(struct domain_device *dev, int *phy_id,
- 		int phy_change_count = 0;
- 
- 		res = sas_get_phy_change_count(dev, i, &phy_change_count);
--		if (res)
--			goto out;
--		else if (phy_change_count != ex->ex_phy[i].phy_change_count) {
-+		switch (res) {
-+		case SMP_RESP_PHY_VACANT:
-+		case SMP_RESP_NO_PHY:
-+			continue;
-+		case SMP_RESP_FUNC_ACC:
-+			break;
-+		default:
-+			return res;
-+		}
-+
-+		if (phy_change_count != ex->ex_phy[i].phy_change_count) {
- 			if (update)
- 				ex->ex_phy[i].phy_change_count =
- 					phy_change_count;
-@@ -1653,8 +1661,7 @@ static int sas_find_bcast_phy(struct domain_device *dev, int *phy_id,
- 			return 0;
- 		}
- 	}
--out:
--	return res;
-+	return 0;
- }
- 
- static int sas_get_ex_change_count(struct domain_device *dev, int *ecc)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0125-libsas-fix-false-positive-device-attached-conditions.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0125-libsas-fix-false-positive-device-attached-conditions.patch
deleted file mode 100644
index cb5c192..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0125-libsas-fix-false-positive-device-attached-conditions.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 18c33d9e87a0a285218cc075f4a471fe53142061 Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Tue, 20 Mar 2012 10:50:27 -0700
-Subject: [PATCH 125/165] libsas: fix false positive 'device attached'
- conditions
-
-commit 7d1d865181185bdf1316d236b1b4bd02c9020729 upstream.
-
-Normalize phy->attached_sas_addr to return a zero-address in the case
-when device-type == NO_DEVICE or the linkrate is invalid to handle
-expanders that put non-zero sas addresses in the discovery response:
-
- sas: ex 5001b4da000f903f phy02:U:0 attached: 0100000000000000 (no device)
- sas: ex 5001b4da000f903f phy01:U:0 attached: 0100000000000000 (no device)
- sas: ex 5001b4da000f903f phy03:U:0 attached: 0100000000000000 (no device)
- sas: ex 5001b4da000f903f phy00:U:0 attached: 0100000000000000 (no device)
-
-Reported-by: Andrzej Jakowski <andrzej.jakowski at intel.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/libsas/sas_expander.c |    9 ++++++++-
- 1 files changed, 8 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
-index a68780b..e48ba4b 100644
---- a/drivers/scsi/libsas/sas_expander.c
-+++ b/drivers/scsi/libsas/sas_expander.c
-@@ -192,7 +192,14 @@ static void sas_set_ex_phy(struct domain_device *dev, int phy_id,
- 	phy->attached_sata_ps   = dr->attached_sata_ps;
- 	phy->attached_iproto = dr->iproto << 1;
- 	phy->attached_tproto = dr->tproto << 1;
--	memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE);
-+	/* help some expanders that fail to zero sas_address in the 'no
-+	 * device' case
-+	 */
-+	if (phy->attached_dev_type == NO_DEVICE ||
-+	    phy->linkrate < SAS_LINK_RATE_1_5_GBPS)
-+		memset(phy->attached_sas_addr, 0, SAS_ADDR_SIZE);
-+	else
-+		memcpy(phy->attached_sas_addr, dr->attached_sas_addr, SAS_ADDR_SIZE);
- 	phy->attached_phy_id = dr->attached_phy_id;
- 	phy->phy_change_count = dr->change_count;
- 	phy->routing_attr = dr->routing_attr;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0126-efi-Add-new-variable-attributes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0126-efi-Add-new-variable-attributes.patch
deleted file mode 100644
index e5bc69d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0126-efi-Add-new-variable-attributes.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 9b4ee1cca5f9cce3c72d4a34597a0c1dc0c786bd Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg at redhat.com>
-Date: Mon, 30 Apr 2012 16:11:29 -0400
-Subject: [PATCH 126/165] efi: Add new variable attributes
-
-commit 41b3254c93acc56adc3c4477fef7c9512d47659e upstream.
-
-More recent versions of the UEFI spec have added new attributes for
-variables. Add them.
-
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/efi.h |   13 ++++++++++++-
- 1 files changed, 12 insertions(+), 1 deletions(-)
-
-diff --git a/include/linux/efi.h b/include/linux/efi.h
-index 2362a0b..1328d8c 100644
---- a/include/linux/efi.h
-+++ b/include/linux/efi.h
-@@ -383,7 +383,18 @@ extern int __init efi_setup_pcdp_console(char *);
- #define EFI_VARIABLE_NON_VOLATILE       0x0000000000000001
- #define EFI_VARIABLE_BOOTSERVICE_ACCESS 0x0000000000000002
- #define EFI_VARIABLE_RUNTIME_ACCESS     0x0000000000000004
--
-+#define EFI_VARIABLE_HARDWARE_ERROR_RECORD 0x0000000000000008
-+#define EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS 0x0000000000000010
-+#define EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS 0x0000000000000020
-+#define EFI_VARIABLE_APPEND_WRITE	0x0000000000000040
-+
-+#define EFI_VARIABLE_MASK 	(EFI_VARIABLE_NON_VOLATILE | \
-+				EFI_VARIABLE_BOOTSERVICE_ACCESS | \
-+				EFI_VARIABLE_RUNTIME_ACCESS | \
-+				EFI_VARIABLE_HARDWARE_ERROR_RECORD | \
-+				EFI_VARIABLE_AUTHENTICATED_WRITE_ACCESS | \
-+				EFI_VARIABLE_TIME_BASED_AUTHENTICATED_WRITE_ACCESS | \
-+				EFI_VARIABLE_APPEND_WRITE)
- /*
-  * EFI Device Path information
-  */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0127-efi-Validate-UEFI-boot-variables.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0127-efi-Validate-UEFI-boot-variables.patch
deleted file mode 100644
index 92781aa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0127-efi-Validate-UEFI-boot-variables.patch
+++ /dev/null
@@ -1,231 +0,0 @@
-From 620a8b56785ca32ec7cde5f632617d89409a21ba Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg at redhat.com>
-Date: Mon, 30 Apr 2012 16:11:30 -0400
-Subject: [PATCH 127/165] efi: Validate UEFI boot variables
-
-commit fec6c20b570bcf541e581fc97f2e0cbdb9725b98 upstream.
-
-A common flaw in UEFI systems is a refusal to POST triggered by a malformed
-boot variable. Once in this state, machines may only be restored by
-reflashing their firmware with an external hardware device. While this is
-obviously a firmware bug, the serious nature of the outcome suggests that
-operating systems should filter their variable writes in order to prevent
-a malicious user from rendering the machine unusable.
-
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/firmware/efivars.c |  182 ++++++++++++++++++++++++++++++++++++++++++++
- 1 files changed, 182 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c
-index b0a8117..150e4ec 100644
---- a/drivers/firmware/efivars.c
-+++ b/drivers/firmware/efivars.c
-@@ -191,6 +191,176 @@ utf16_strncmp(const efi_char16_t *a, const efi_char16_t *b, size_t len)
- 	}
- }
- 
-+static bool
-+validate_device_path(struct efi_variable *var, int match, u8 *buffer, int len)
-+{
-+	struct efi_generic_dev_path *node;
-+	int offset = 0;
-+
-+	node = (struct efi_generic_dev_path *)buffer;
-+
-+	while (offset < len) {
-+		offset += node->length;
-+
-+		if (offset > len)
-+			return false;
-+
-+		if ((node->type == EFI_DEV_END_PATH ||
-+		     node->type == EFI_DEV_END_PATH2) &&
-+		    node->sub_type == EFI_DEV_END_ENTIRE)
-+			return true;
-+
-+		node = (struct efi_generic_dev_path *)(buffer + offset);
-+	}
-+
-+	/*
-+	 * If we're here then either node->length pointed past the end
-+	 * of the buffer or we reached the end of the buffer without
-+	 * finding a device path end node.
-+	 */
-+	return false;
-+}
-+
-+static bool
-+validate_boot_order(struct efi_variable *var, int match, u8 *buffer, int len)
-+{
-+	/* An array of 16-bit integers */
-+	if ((len % 2) != 0)
-+		return false;
-+
-+	return true;
-+}
-+
-+static bool
-+validate_load_option(struct efi_variable *var, int match, u8 *buffer, int len)
-+{
-+	u16 filepathlength;
-+	int i, desclength = 0;
-+
-+	/* Either "Boot" or "Driver" followed by four digits of hex */
-+	for (i = match; i < match+4; i++) {
-+		if (hex_to_bin(var->VariableName[i] & 0xff) < 0)
-+			return true;
-+	}
-+
-+	/* A valid entry must be at least 6 bytes */
-+	if (len < 6)
-+		return false;
-+
-+	filepathlength = buffer[4] | buffer[5] << 8;
-+
-+	/*
-+	 * There's no stored length for the description, so it has to be
-+	 * found by hand
-+	 */
-+	desclength = utf16_strsize((efi_char16_t *)(buffer + 6), len) + 2;
-+
-+	/* Each boot entry must have a descriptor */
-+	if (!desclength)
-+		return false;
-+
-+	/*
-+	 * If the sum of the length of the description, the claimed filepath
-+	 * length and the original header are greater than the length of the
-+	 * variable, it's malformed
-+	 */
-+	if ((desclength + filepathlength + 6) > len)
-+		return false;
-+
-+	/*
-+	 * And, finally, check the filepath
-+	 */
-+	return validate_device_path(var, match, buffer + desclength + 6,
-+				    filepathlength);
-+}
-+
-+static bool
-+validate_uint16(struct efi_variable *var, int match, u8 *buffer, int len)
-+{
-+	/* A single 16-bit integer */
-+	if (len != 2)
-+		return false;
-+
-+	return true;
-+}
-+
-+static bool
-+validate_ascii_string(struct efi_variable *var, int match, u8 *buffer, int len)
-+{
-+	int i;
-+
-+	for (i = 0; i < len; i++) {
-+		if (buffer[i] > 127)
-+			return false;
-+
-+		if (buffer[i] == 0)
-+			return true;
-+	}
-+
-+	return false;
-+}
-+
-+struct variable_validate {
-+	char *name;
-+	bool (*validate)(struct efi_variable *var, int match, u8 *data,
-+			 int len);
-+};
-+
-+static const struct variable_validate variable_validate[] = {
-+	{ "BootNext", validate_uint16 },
-+	{ "BootOrder", validate_boot_order },
-+	{ "DriverOrder", validate_boot_order },
-+	{ "Boot*", validate_load_option },
-+	{ "Driver*", validate_load_option },
-+	{ "ConIn", validate_device_path },
-+	{ "ConInDev", validate_device_path },
-+	{ "ConOut", validate_device_path },
-+	{ "ConOutDev", validate_device_path },
-+	{ "ErrOut", validate_device_path },
-+	{ "ErrOutDev", validate_device_path },
-+	{ "Timeout", validate_uint16 },
-+	{ "Lang", validate_ascii_string },
-+	{ "PlatformLang", validate_ascii_string },
-+	{ "", NULL },
-+};
-+
-+static bool
-+validate_var(struct efi_variable *var, u8 *data, int len)
-+{
-+	int i;
-+	u16 *unicode_name = var->VariableName;
-+
-+	for (i = 0; variable_validate[i].validate != NULL; i++) {
-+		const char *name = variable_validate[i].name;
-+		int match;
-+
-+		for (match = 0; ; match++) {
-+			char c = name[match];
-+			u16 u = unicode_name[match];
-+
-+			/* All special variables are plain ascii */
-+			if (u > 127)
-+				return true;
-+
-+			/* Wildcard in the matching name means we've matched */
-+			if (c == '*')
-+				return variable_validate[i].validate(var,
-+							     match, data, len);
-+
-+			/* Case sensitive match */
-+			if (c != u)
-+				break;
-+
-+			/* Reached the end of the string while matching */
-+			if (!c)
-+				return variable_validate[i].validate(var,
-+							     match, data, len);
-+		}
-+	}
-+
-+	return true;
-+}
-+
- static efi_status_t
- get_var_data_locked(struct efivars *efivars, struct efi_variable *var)
- {
-@@ -324,6 +494,12 @@ efivar_store_raw(struct efivar_entry *entry, const char *buf, size_t count)
- 		return -EINVAL;
- 	}
- 
-+	if ((new_var->Attributes & ~EFI_VARIABLE_MASK) != 0 ||
-+	    validate_var(new_var, new_var->Data, new_var->DataSize) == false) {
-+		printk(KERN_ERR "efivars: Malformed variable content\n");
-+		return -EINVAL;
-+	}
-+
- 	spin_lock(&efivars->lock);
- 	status = efivars->ops->set_variable(new_var->VariableName,
- 					    &new_var->VendorGuid,
-@@ -624,6 +800,12 @@ static ssize_t efivar_create(struct file *filp, struct kobject *kobj,
- 	if (!capable(CAP_SYS_ADMIN))
- 		return -EACCES;
- 
-+	if ((new_var->Attributes & ~EFI_VARIABLE_MASK) != 0 ||
-+	    validate_var(new_var, new_var->Data, new_var->DataSize) == false) {
-+		printk(KERN_ERR "efivars: Malformed variable content\n");
-+		return -EINVAL;
-+	}
-+
- 	spin_lock(&efivars->lock);
- 
- 	/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0128-PM-Hibernate-fix-the-number-of-pages-used-for-hibern.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0128-PM-Hibernate-fix-the-number-of-pages-used-for-hibern.patch
deleted file mode 100644
index 913b473..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0128-PM-Hibernate-fix-the-number-of-pages-used-for-hibern.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From a33123cb0368231d84b8839f9f56bee45c51016d Mon Sep 17 00:00:00 2001
-From: Bojan Smojver <bojan at rexursive.com>
-Date: Tue, 24 Apr 2012 23:53:28 +0200
-Subject: [PATCH 128/165] PM / Hibernate: fix the number of pages used for
- hibernate/thaw buffering
-
-commit f8262d476823a7ea1eb497ff9676d1eab2393c75 upstream.
-
-Hibernation regression fix, since 3.2.
-
-Calculate the number of required free pages based on non-high memory
-pages only, because that is where the buffers will come from.
-
-Commit 081a9d043c983f161b78fdc4671324d1342b86bc introduced a new buffer
-page allocation logic during hibernation, in order to improve the
-performance. The amount of pages allocated was calculated based on total
-amount of pages available, although only non-high memory pages are
-usable for this purpose. This caused hibernation code to attempt to over
-allocate pages on platforms that have high memory, which led to hangs.
-
-Signed-off-by: Bojan Smojver <bojan at rexursive.com>
-Signed-off-by: Rafael J. Wysocki <rjw at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/power/swap.c |   28 ++++++++++++++++++++++------
- 1 files changed, 22 insertions(+), 6 deletions(-)
-
-diff --git a/kernel/power/swap.c b/kernel/power/swap.c
-index 11a594c..b313086 100644
---- a/kernel/power/swap.c
-+++ b/kernel/power/swap.c
-@@ -52,6 +52,23 @@
- 
- #define MAP_PAGE_ENTRIES	(PAGE_SIZE / sizeof(sector_t) - 1)
- 
-+/*
-+ * Number of free pages that are not high.
-+ */
-+static inline unsigned long low_free_pages(void)
-+{
-+	return nr_free_pages() - nr_free_highpages();
-+}
-+
-+/*
-+ * Number of pages required to be kept free while writing the image. Always
-+ * half of all available low pages before the writing starts.
-+ */
-+static inline unsigned long reqd_free_pages(void)
-+{
-+	return low_free_pages() / 2;
-+}
-+
- struct swap_map_page {
- 	sector_t entries[MAP_PAGE_ENTRIES];
- 	sector_t next_swap;
-@@ -73,7 +90,7 @@ struct swap_map_handle {
- 	sector_t cur_swap;
- 	sector_t first_sector;
- 	unsigned int k;
--	unsigned long nr_free_pages, written;
-+	unsigned long reqd_free_pages;
- 	u32 crc32;
- };
- 
-@@ -317,8 +334,7 @@ static int get_swap_writer(struct swap_map_handle *handle)
- 		goto err_rel;
- 	}
- 	handle->k = 0;
--	handle->nr_free_pages = nr_free_pages() >> 1;
--	handle->written = 0;
-+	handle->reqd_free_pages = reqd_free_pages();
- 	handle->first_sector = handle->cur_swap;
- 	return 0;
- err_rel:
-@@ -353,11 +369,11 @@ static int swap_write_page(struct swap_map_handle *handle, void *buf,
- 		handle->cur_swap = offset;
- 		handle->k = 0;
- 	}
--	if (bio_chain && ++handle->written > handle->nr_free_pages) {
-+	if (bio_chain && low_free_pages() <= handle->reqd_free_pages) {
- 		error = hib_wait_on_bio_chain(bio_chain);
- 		if (error)
- 			goto out;
--		handle->written = 0;
-+		handle->reqd_free_pages = reqd_free_pages();
- 	}
-  out:
- 	return error;
-@@ -619,7 +635,7 @@ static int save_image_lzo(struct swap_map_handle *handle,
- 	 * Adjust number of free pages after all allocations have been done.
- 	 * We don't want to run out of pages when writing.
- 	 */
--	handle->nr_free_pages = nr_free_pages() >> 1;
-+	handle->reqd_free_pages = reqd_free_pages();
- 
- 	/*
- 	 * Start the CRC32 thread.
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0129-drm-i915-enable-dip-before-writing-data-on-gen4.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0129-drm-i915-enable-dip-before-writing-data-on-gen4.patch
deleted file mode 100644
index 639addc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0129-drm-i915-enable-dip-before-writing-data-on-gen4.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 239f17a64c2c70a830feacf5fe07fb8ca1b288fb Mon Sep 17 00:00:00 2001
-From: Paulo Zanoni <paulo.r.zanoni at intel.com>
-Date: Wed, 2 May 2012 22:55:43 -0300
-Subject: [PATCH 129/165] drm/i915: enable dip before writing data on gen4
-
-commit c1230df7e19e0f27655c0eb9d966c7e03be7cc50 upstream.
-
-While testing with the intel_infoframes tool on gen4, I see that when
-video DIP is disabled, what we write to the DATA memory is not exactly
-what we read back later.
-
-This regression has been introduce in
-
-commit 64a8fc0145a1d0fdc25fc9367c2e6c621955fb3b
-Author: Jesse Barnes <jbarnes at virtuousgeek.org>
-Date:   Thu Sep 22 11:16:00 2011 +0530
-
-    drm/i915: fix ILK+ infoframe support
-
-That commit was setting VIDEO_DIP_CTL to 0 when initializing, which
-caused the problem.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43947
-Tested-by: Yang Guang <guang.a.yang at intel.com>
-Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-[danvet: Pimped commit message by using the usual commit citation
-layout.]
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_hdmi.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
-index 64541f7..9cd81ba 100644
---- a/drivers/gpu/drm/i915/intel_hdmi.c
-+++ b/drivers/gpu/drm/i915/intel_hdmi.c
-@@ -136,7 +136,7 @@ static void i9xx_write_infoframe(struct drm_encoder *encoder,
- 
- 	val &= ~VIDEO_DIP_SELECT_MASK;
- 
--	I915_WRITE(VIDEO_DIP_CTL, val | port | flags);
-+	I915_WRITE(VIDEO_DIP_CTL, VIDEO_DIP_ENABLE | val | port | flags);
- 
- 	for (i = 0; i < len; i += 4) {
- 		I915_WRITE(VIDEO_DIP_DATA, *data);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0130-sched-Fix-nohz-load-accounting-again.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0130-sched-Fix-nohz-load-accounting-again.patch
deleted file mode 100644
index 44a254b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0130-sched-Fix-nohz-load-accounting-again.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From 01347c8bd017f3c031bc472db23953f9695fd65c Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <peterz at infradead.org>
-Date: Thu, 1 Mar 2012 15:04:46 +0100
-Subject: [PATCH 130/165] sched: Fix nohz load accounting -- again!
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit c308b56b5398779cd3da0f62ab26b0453494c3d4 upstream.
-
-Various people reported nohz load tracking still being wrecked, but Doug
-spotted the actual problem. We fold the nohz remainder in too soon,
-causing us to loose samples and under-account.
-
-So instead of playing catch-up up-front, always do a single load-fold
-with whatever state we encounter and only then fold the nohz remainder
-and play catch-up.
-
-Reported-by: Doug Smythies <dsmythies at telus.net>
-Reported-by: LesÅ=82aw Kope=C4=87 <leslaw.kopec at nasza-klasa.pl>
-Reported-by: Aman Gupta <aman at tmm1.net>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Link: http://lkml.kernel.org/n/tip-4v31etnhgg9kwd6ocgx3rxl8@git.kernel.org
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-[bwh: Backported to 3.2: change filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/sched.c |   53 ++++++++++++++++++++++++++---------------------------
- 1 files changed, 26 insertions(+), 27 deletions(-)
-
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 106a3b8..299f55c 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -3538,13 +3538,10 @@ calc_load_n(unsigned long load, unsigned long exp,
-  * Once we've updated the global active value, we need to apply the exponential
-  * weights adjusted to the number of cycles missed.
-  */
--static void calc_global_nohz(unsigned long ticks)
-+static void calc_global_nohz(void)
- {
- 	long delta, active, n;
- 
--	if (time_before(jiffies, calc_load_update))
--		return;
--
- 	/*
- 	 * If we crossed a calc_load_update boundary, make sure to fold
- 	 * any pending idle changes, the respective CPUs might have
-@@ -3556,31 +3553,25 @@ static void calc_global_nohz(unsigned long ticks)
- 		atomic_long_add(delta, &calc_load_tasks);
- 
- 	/*
--	 * If we were idle for multiple load cycles, apply them.
-+	 * It could be the one fold was all it took, we done!
- 	 */
--	if (ticks >= LOAD_FREQ) {
--		n = ticks / LOAD_FREQ;
-+	if (time_before(jiffies, calc_load_update + 10))
-+		return;
- 
--		active = atomic_long_read(&calc_load_tasks);
--		active = active > 0 ? active * FIXED_1 : 0;
-+	/*
-+	 * Catch-up, fold however many we are behind still
-+	 */
-+	delta = jiffies - calc_load_update - 10;
-+	n = 1 + (delta / LOAD_FREQ);
- 
--		avenrun[0] = calc_load_n(avenrun[0], EXP_1, active, n);
--		avenrun[1] = calc_load_n(avenrun[1], EXP_5, active, n);
--		avenrun[2] = calc_load_n(avenrun[2], EXP_15, active, n);
-+	active = atomic_long_read(&calc_load_tasks);
-+	active = active > 0 ? active * FIXED_1 : 0;
- 
--		calc_load_update += n * LOAD_FREQ;
--	}
-+	avenrun[0] = calc_load_n(avenrun[0], EXP_1, active, n);
-+	avenrun[1] = calc_load_n(avenrun[1], EXP_5, active, n);
-+	avenrun[2] = calc_load_n(avenrun[2], EXP_15, active, n);
- 
--	/*
--	 * Its possible the remainder of the above division also crosses
--	 * a LOAD_FREQ period, the regular check in calc_global_load()
--	 * which comes after this will take care of that.
--	 *
--	 * Consider us being 11 ticks before a cycle completion, and us
--	 * sleeping for 4*LOAD_FREQ + 22 ticks, then the above code will
--	 * age us 4 cycles, and the test in calc_global_load() will
--	 * pick up the final one.
--	 */
-+	calc_load_update += n * LOAD_FREQ;
- }
- #else
- static void calc_load_account_idle(struct rq *this_rq)
-@@ -3592,7 +3583,7 @@ static inline long calc_load_fold_idle(void)
- 	return 0;
- }
- 
--static void calc_global_nohz(unsigned long ticks)
-+static void calc_global_nohz(void)
- {
- }
- #endif
-@@ -3620,8 +3611,6 @@ void calc_global_load(unsigned long ticks)
- {
- 	long active;
- 
--	calc_global_nohz(ticks);
--
- 	if (time_before(jiffies, calc_load_update + 10))
- 		return;
- 
-@@ -3633,6 +3622,16 @@ void calc_global_load(unsigned long ticks)
- 	avenrun[2] = calc_load(avenrun[2], EXP_15, active);
- 
- 	calc_load_update += LOAD_FREQ;
-+
-+	/*
-+	 * Account one period with whatever state we found before
-+	 * folding in the nohz state and ageing the entire idle period.
-+	 *
-+	 * This avoids loosing a sample when we go idle between 
-+	 * calc_load_account_active() (10 ticks ago) and now and thus
-+	 * under-accounting.
-+	 */
-+	calc_global_nohz();
- }
- 
- /*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0131-efivars-Improve-variable-validation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0131-efivars-Improve-variable-validation.patch
deleted file mode 100644
index c87a8b7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0131-efivars-Improve-variable-validation.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From aa7664378bab4f65e93402fa64c031a1fd52369c Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg at redhat.com>
-Date: Thu, 3 May 2012 16:50:46 -0400
-Subject: [PATCH 131/165] efivars: Improve variable validation
-
-commit 54b3a4d311c98ad94b737802a8b5f2c8c6bfd627 upstream.
-
-Ben Hutchings pointed out that the validation in efivars was inadequate -
-most obviously, an entry with size 0 would server as a DoS against the
-kernel. Improve this based on his suggestions.
-
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/firmware/efivars.c |   46 ++++++++++++++++++++++++++++---------------
- 1 files changed, 30 insertions(+), 16 deletions(-)
-
-diff --git a/drivers/firmware/efivars.c b/drivers/firmware/efivars.c
-index 150e4ec..0535c21 100644
---- a/drivers/firmware/efivars.c
-+++ b/drivers/firmware/efivars.c
-@@ -192,18 +192,21 @@ utf16_strncmp(const efi_char16_t *a, const efi_char16_t *b, size_t len)
- }
- 
- static bool
--validate_device_path(struct efi_variable *var, int match, u8 *buffer, int len)
-+validate_device_path(struct efi_variable *var, int match, u8 *buffer,
-+		     unsigned long len)
- {
- 	struct efi_generic_dev_path *node;
- 	int offset = 0;
- 
- 	node = (struct efi_generic_dev_path *)buffer;
- 
--	while (offset < len) {
--		offset += node->length;
-+	if (len < sizeof(*node))
-+		return false;
- 
--		if (offset > len)
--			return false;
-+	while (offset <= len - sizeof(*node) &&
-+	       node->length >= sizeof(*node) &&
-+		node->length <= len - offset) {
-+		offset += node->length;
- 
- 		if ((node->type == EFI_DEV_END_PATH ||
- 		     node->type == EFI_DEV_END_PATH2) &&
-@@ -222,7 +225,8 @@ validate_device_path(struct efi_variable *var, int match, u8 *buffer, int len)
- }
- 
- static bool
--validate_boot_order(struct efi_variable *var, int match, u8 *buffer, int len)
-+validate_boot_order(struct efi_variable *var, int match, u8 *buffer,
-+		    unsigned long len)
- {
- 	/* An array of 16-bit integers */
- 	if ((len % 2) != 0)
-@@ -232,19 +236,27 @@ validate_boot_order(struct efi_variable *var, int match, u8 *buffer, int len)
- }
- 
- static bool
--validate_load_option(struct efi_variable *var, int match, u8 *buffer, int len)
-+validate_load_option(struct efi_variable *var, int match, u8 *buffer,
-+		     unsigned long len)
- {
- 	u16 filepathlength;
--	int i, desclength = 0;
-+	int i, desclength = 0, namelen;
-+
-+	namelen = utf16_strnlen(var->VariableName, sizeof(var->VariableName));
- 
- 	/* Either "Boot" or "Driver" followed by four digits of hex */
- 	for (i = match; i < match+4; i++) {
--		if (hex_to_bin(var->VariableName[i] & 0xff) < 0)
-+		if (var->VariableName[i] > 127 ||
-+		    hex_to_bin(var->VariableName[i] & 0xff) < 0)
- 			return true;
- 	}
- 
--	/* A valid entry must be at least 6 bytes */
--	if (len < 6)
-+	/* Reject it if there's 4 digits of hex and then further content */
-+	if (namelen > match + 4)
-+		return false;
-+
-+	/* A valid entry must be at least 8 bytes */
-+	if (len < 8)
- 		return false;
- 
- 	filepathlength = buffer[4] | buffer[5] << 8;
-@@ -253,7 +265,7 @@ validate_load_option(struct efi_variable *var, int match, u8 *buffer, int len)
- 	 * There's no stored length for the description, so it has to be
- 	 * found by hand
- 	 */
--	desclength = utf16_strsize((efi_char16_t *)(buffer + 6), len) + 2;
-+	desclength = utf16_strsize((efi_char16_t *)(buffer + 6), len - 6) + 2;
- 
- 	/* Each boot entry must have a descriptor */
- 	if (!desclength)
-@@ -275,7 +287,8 @@ validate_load_option(struct efi_variable *var, int match, u8 *buffer, int len)
- }
- 
- static bool
--validate_uint16(struct efi_variable *var, int match, u8 *buffer, int len)
-+validate_uint16(struct efi_variable *var, int match, u8 *buffer,
-+		unsigned long len)
- {
- 	/* A single 16-bit integer */
- 	if (len != 2)
-@@ -285,7 +298,8 @@ validate_uint16(struct efi_variable *var, int match, u8 *buffer, int len)
- }
- 
- static bool
--validate_ascii_string(struct efi_variable *var, int match, u8 *buffer, int len)
-+validate_ascii_string(struct efi_variable *var, int match, u8 *buffer,
-+		      unsigned long len)
- {
- 	int i;
- 
-@@ -303,7 +317,7 @@ validate_ascii_string(struct efi_variable *var, int match, u8 *buffer, int len)
- struct variable_validate {
- 	char *name;
- 	bool (*validate)(struct efi_variable *var, int match, u8 *data,
--			 int len);
-+			 unsigned long len);
- };
- 
- static const struct variable_validate variable_validate[] = {
-@@ -325,7 +339,7 @@ static const struct variable_validate variable_validate[] = {
- };
- 
- static bool
--validate_var(struct efi_variable *var, u8 *data, int len)
-+validate_var(struct efi_variable *var, u8 *data, unsigned long len)
- {
- 	int i;
- 	u16 *unicode_name = var->VariableName;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0132-fs-cifs-fix-parsing-of-dfs-referrals.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0132-fs-cifs-fix-parsing-of-dfs-referrals.patch
deleted file mode 100644
index d39f6d8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0132-fs-cifs-fix-parsing-of-dfs-referrals.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 39565f288e6b2270679f089aae07d579bbf8a156 Mon Sep 17 00:00:00 2001
-From: Stefan Metzmacher <metze at samba.org>
-Date: Fri, 4 May 2012 00:19:28 +0200
-Subject: [PATCH 132/165] fs/cifs: fix parsing of dfs referrals
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit d8f2799b105a24bb0bbd3380a0d56e6348484058 upstream.
-
-The problem was that the first referral was parsed more than once
-and so the caller tried the same referrals multiple times.
-
-The problem was introduced partly by commit
-066ce6899484d9026acd6ba3a8dbbedb33d7ae1b,
-where 'ref += le16_to_cpu(ref->Size);' got lost,
-but that was also wrong...
-
-Signed-off-by: Stefan Metzmacher <metze at samba.org>
-Tested-by: Björn Jacke <bj at sernet.de>
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-[bwh: Backport to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/cifssmb.c |    6 +++++-
- 1 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
-index 0e6adac..e89803b 100644
---- a/fs/cifs/cifssmb.c
-+++ b/fs/cifs/cifssmb.c
-@@ -4826,8 +4826,12 @@ parse_DFS_referrals(TRANSACTION2_GET_DFS_REFER_RSP *pSMBr,
- 		max_len = data_end - temp;
- 		node->node_name = cifs_strndup_from_ucs(temp, max_len,
- 						      is_unicode, nls_codepage);
--		if (!node->node_name)
-+		if (!node->node_name) {
- 			rc = -ENOMEM;
-+			goto parse_DFS_referrals_exit;
-+		}
-+
-+		ref++;
- 	}
- 
- parse_DFS_referrals_exit:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0133-Fix-__read_seqcount_begin-to-use-ACCESS_ONCE-for-seq.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0133-Fix-__read_seqcount_begin-to-use-ACCESS_ONCE-for-seq.patch
deleted file mode 100644
index d922110..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0133-Fix-__read_seqcount_begin-to-use-ACCESS_ONCE-for-seq.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 9daab99a20e2ce18687c16c10546e0c5343e22c2 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Fri, 4 May 2012 14:46:02 -0700
-Subject: [PATCH 133/165] Fix __read_seqcount_begin() to use ACCESS_ONCE for
- sequence value read
-
-commit 2f624278626677bfaf73fef97f86b37981621f5c upstream.
-
-We really need to use a ACCESS_ONCE() on the sequence value read in
-__read_seqcount_begin(), because otherwise the compiler might end up
-reloading the value in between the test and the return of it.  As a
-result, it might end up returning an odd value (which means that a write
-is in progress).
-
-If the reader is then fast enough that that odd value is still the
-current one when the read_seqcount_retry() is done, we might end up with
-a "successful" read sequence, even despite the concurrent write being
-active.
-
-In practice this probably never really happens - there just isn't
-anything else going on around the read of the sequence count, and the
-common case is that we end up having a read barrier immediately
-afterwards.
-
-So the code sequence in which gcc might decide to reaload from memory is
-small, and there's no reason to believe it would ever actually do the
-reload.  But if the compiler ever were to decide to do so, it would be
-incredibly annoying to debug.  Let's just make sure.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/seqlock.h |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/include/linux/seqlock.h b/include/linux/seqlock.h
-index c6db9fb..bb1fac5 100644
---- a/include/linux/seqlock.h
-+++ b/include/linux/seqlock.h
-@@ -141,7 +141,7 @@ static inline unsigned __read_seqcount_begin(const seqcount_t *s)
- 	unsigned ret;
- 
- repeat:
--	ret = s->sequence;
-+	ret = ACCESS_ONCE(s->sequence);
- 	if (unlikely(ret & 1)) {
- 		cpu_relax();
- 		goto repeat;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0134-hwmon-coretemp-Increase-CPU-core-limit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0134-hwmon-coretemp-Increase-CPU-core-limit.patch
deleted file mode 100644
index d1fc79d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0134-hwmon-coretemp-Increase-CPU-core-limit.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From d0c9c20fe1b85573de668afb64f38b05c6263998 Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <guenter.roeck at ericsson.com>
-Date: Tue, 1 May 2012 08:15:42 -0700
-Subject: [PATCH 134/165] hwmon: (coretemp) Increase CPU core limit
-
-commit bdc71c9a87b898e4c380c23b2e3e18071312ecde upstream.
-
-CPU core ID is used to index the core_data[] array. The core ID is, however, not
-sequential; 10-core CPUS can have a core ID as high as 25. Increase the limit to
-32 to be able to deal with current CPUs.
-
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Acked-by: Durgadoss R <durgadoss.r at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/coretemp.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
-index 104b376..8b53a7a 100644
---- a/drivers/hwmon/coretemp.c
-+++ b/drivers/hwmon/coretemp.c
-@@ -51,7 +51,7 @@ module_param_named(tjmax, force_tjmax, int, 0444);
- MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius");
- 
- #define BASE_SYSFS_ATTR_NO	2	/* Sysfs Base attr no for coretemp */
--#define NUM_REAL_CORES		16	/* Number of Real cores per cpu */
-+#define NUM_REAL_CORES		32	/* Number of Real cores per cpu */
- #define CORETEMP_NAME_LENGTH	17	/* String Length of attrs */
- #define MAX_CORE_ATTRS		4	/* Maximum no of basic attrs */
- #define TOTAL_ATTRS		(MAX_CORE_ATTRS + 1)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0135-nouveau-initialise-has_optimus-variable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0135-nouveau-initialise-has_optimus-variable.patch
deleted file mode 100644
index 5a24108..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0135-nouveau-initialise-has_optimus-variable.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From c6ecb5ef76bc2c141529aeab1ef2490b377e1906 Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied at redhat.com>
-Date: Wed, 2 May 2012 20:26:24 +0100
-Subject: [PATCH 135/165] nouveau: initialise has_optimus variable.
-
-commit addde4ec31456c5f1e9b61aae3edcfeb0f338f87 upstream.
-
-We should initialise this to 0 really to avoid getting false positives.
-
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nouveau_acpi.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_acpi.c b/drivers/gpu/drm/nouveau/nouveau_acpi.c
-index 525744d..3df56c7 100644
---- a/drivers/gpu/drm/nouveau/nouveau_acpi.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_acpi.c
-@@ -245,7 +245,7 @@ static bool nouveau_dsm_detect(void)
- 	struct acpi_buffer buffer = {sizeof(acpi_method_name), acpi_method_name};
- 	struct pci_dev *pdev = NULL;
- 	int has_dsm = 0;
--	int has_optimus;
-+	int has_optimus = 0;
- 	int vga_count = 0;
- 	bool guid_valid;
- 	int retval;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0136-hwmon-coretemp-fix-oops-on-cpu-unplug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0136-hwmon-coretemp-fix-oops-on-cpu-unplug.patch
deleted file mode 100644
index e2fa646..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0136-hwmon-coretemp-fix-oops-on-cpu-unplug.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From f9b3a3cd3a49c5c547207f4e8496a39f9d470536 Mon Sep 17 00:00:00 2001
-From: "Kirill A. Shutemov" <kirill.shutemov at linux.intel.com>
-Date: Mon, 30 Apr 2012 09:18:01 -0400
-Subject: [PATCH 136/165] hwmon: (coretemp) fix oops on cpu unplug
-
-commit b704871124b477807966f06789c2b32f2de58bf7 upstream.
-
-coretemp tries to access core_data array beyond bounds on cpu unplug if
-core id of the cpu if more than NUM_REAL_CORES-1.
-
-BUG: unable to handle kernel NULL pointer dereference at 000000000000013c
-IP: [<ffffffffa00159af>] coretemp_cpu_callback+0x93/0x1ba [coretemp]
-PGD 673e5a067 PUD 66e9b3067 PMD 0
-Oops: 0000 [#1] SMP
-CPU 79
-Modules linked in: sunrpc cpufreq_ondemand acpi_cpufreq freq_table mperf bnep bluetooth rfkill ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 ip6table_filter nf_conntrack_ipv4 nf_defrag_ipv4 ip6_tables xt_state nf_conntrack coretemp crc32c_intel asix tpm_tis pcspkr usbnet iTCO_wdt i2c_i801 microcode mii joydev tpm i2c_core iTCO_vendor_support tpm_bios i7core_edac igb ioatdma edac_core dca megaraid_sas [last unloaded: oprofile]
-
-Pid: 3315, comm: set-cpus Tainted: G        W    3.4.0-rc5+ #2 QCI QSSC-S4R/QSSC-S4R
-RIP: 0010:[<ffffffffa00159af>]  [<ffffffffa00159af>] coretemp_cpu_callback+0x93/0x1ba [coretemp]
-RSP: 0018:ffff880472fb3d48  EFLAGS: 00010246
-RAX: 0000000000000124 RBX: 0000000000000034 RCX: 00000000ffffffff
-RDX: 0000000000000000 RSI: 0000000000000046 RDI: 0000000000000246
-RBP: ffff880472fb3d88 R08: ffff88077fcd36c0 R09: 0000000000000001
-R10: ffffffff8184bc48 R11: 0000000000000000 R12: ffff880273095800
-R13: 0000000000000013 R14: ffff8802730a1810 R15: 0000000000000000
-FS:  00007f694a20f720(0000) GS:ffff88077fcc0000(0000) knlGS:0000000000000000
-CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-CR2: 000000000000013c CR3: 000000067209b000 CR4: 00000000000007e0
-DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-Process set-cpus (pid: 3315, threadinfo ffff880472fb2000, task ffff880471fa0000)
-Stack:
- ffff880277b4c308 0000000000000003 ffff880472fb3d88 0000000000000005
- 0000000000000034 00000000ffffffd1 ffffffff81cadc70 ffff880472fb3e14
- ffff880472fb3dc8 ffffffff8161f48d ffff880471fa0000 0000000000000034
-Call Trace:
- [<ffffffff8161f48d>] notifier_call_chain+0x4d/0x70
- [<ffffffff8107f1be>] __raw_notifier_call_chain+0xe/0x10
- [<ffffffff81059d30>] __cpu_notify+0x20/0x40
- [<ffffffff815fa251>] _cpu_down+0x81/0x270
- [<ffffffff815fa477>] cpu_down+0x37/0x50
- [<ffffffff815fd6a3>] store_online+0x63/0xc0
- [<ffffffff813c7078>] dev_attr_store+0x18/0x30
- [<ffffffff811f02cf>] sysfs_write_file+0xef/0x170
- [<ffffffff81180443>] vfs_write+0xb3/0x180
- [<ffffffff8118076a>] sys_write+0x4a/0x90
- [<ffffffff816236a9>] system_call_fastpath+0x16/0x1b
-Code: 48 c7 c7 94 60 01 a0 44 0f b7 ac 10 ac 00 00 00 31 c0 e8 41 b7 5f e1 41 83 c5 02 49 63 c5 49 8b 44 c4 10 48 85 c0 74 56 45 31 ff <39> 58 18 75 4e eb 1f 49 63 d7 4c 89 f7 48 89 45 c8 48 6b d2 28
-RIP  [<ffffffffa00159af>] coretemp_cpu_callback+0x93/0x1ba [coretemp]
- RSP <ffff880472fb3d48>
-CR2: 000000000000013c
-
-Signed-off-by: Kirill A. Shutemov <kirill.shutemov at linux.intel.com>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/coretemp.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
-index 8b53a7a..427468f 100644
---- a/drivers/hwmon/coretemp.c
-+++ b/drivers/hwmon/coretemp.c
-@@ -705,6 +705,10 @@ static void __cpuinit put_core_offline(unsigned int cpu)
- 
- 	indx = TO_ATTR_NO(cpu);
- 
-+	/* The core id is too big, just return */
-+	if (indx > MAX_CORE_DATA - 1)
-+		return;
-+
- 	if (pdata->core_data[indx] && pdata->core_data[indx]->cpu == cpu)
- 		coretemp_remove_core(pdata, &pdev->dev, indx);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0137-libata-skip-old-error-history-when-counting-probe-tr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0137-libata-skip-old-error-history-when-counting-probe-tr.patch
deleted file mode 100644
index 581c14d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0137-libata-skip-old-error-history-when-counting-probe-tr.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a826ba1d1dd61542f0790e7c646e8534d170d7f6 Mon Sep 17 00:00:00 2001
-From: Lin Ming <ming.m.lin at intel.com>
-Date: Thu, 3 May 2012 22:15:07 +0800
-Subject: [PATCH 137/165] libata: skip old error history when counting probe
- trials
-
-commit 6868225e3e92399068be9a5f1635752d91012ad5 upstream.
-
-Commit d902747("[libata] Add ATA transport class") introduced
-ATA_EFLAG_OLD_ER to mark entries in the error ring as cleared.
-
-But ata_count_probe_trials_cb() didn't check this flag and it still
-counts the old error history. So wrong probe trials count is returned
-and it causes problem, for example, SATA link speed is slowed down from
-3.0Gbps to 1.5Gbps.
-
-Fix it by checking ATA_EFLAG_OLD_ER in ata_count_probe_trials_cb().
-
-Signed-off-by: Lin Ming <ming.m.lin at intel.com>
-Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/ata/libata-eh.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c
-index a9b2820..58db834 100644
---- a/drivers/ata/libata-eh.c
-+++ b/drivers/ata/libata-eh.c
-@@ -3500,7 +3500,8 @@ static int ata_count_probe_trials_cb(struct ata_ering_entry *ent, void *void_arg
- 	u64 now = get_jiffies_64();
- 	int *trials = void_arg;
- 
--	if (ent->timestamp < now - min(now, interval))
-+	if ((ent->eflags & ATA_EFLAG_OLD_ER) ||
-+	    (ent->timestamp < now - min(now, interval)))
- 		return -1;
- 
- 	(*trials)++;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch
deleted file mode 100644
index c3de0fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 9edb0f56a8e94b830ce7a97706689fbe8d362066 Mon Sep 17 00:00:00 2001
-From: Seth Forshee <seth.forshee at canonical.com>
-Date: Wed, 25 Apr 2012 17:28:00 -0500
-Subject: [PATCH 138/165] b43: only reload config after successful
- initialization
-
-commit dbdedbdf4fbff3d4962a0786f37aa86dfdc48a7e upstream.
-
-Commit 2a19032 (b43: reload phy and bss settings after core restarts)
-introduced an unconditional call to b43_op_config() at the end of
-b43_op_start(). When firmware fails to load this can wedge the system.
-There's no need to reload the configuration after a failed
-initialization anyway, so only make the call if initialization was
-successful.
-
-BugLink: http://bugs.launchpad.net/bugs/950295
-Cc: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: Seth Forshee <seth.forshee at canonical.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/b43/main.c |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/b43/main.c b/drivers/net/wireless/b43/main.c
-index 5634d9a..680709c 100644
---- a/drivers/net/wireless/b43/main.c
-+++ b/drivers/net/wireless/b43/main.c
-@@ -4820,8 +4820,14 @@ static int b43_op_start(struct ieee80211_hw *hw)
-  out_mutex_unlock:
- 	mutex_unlock(&wl->mutex);
- 
--	/* reload configuration */
--	b43_op_config(hw, ~0);
-+	/*
-+	 * Configuration may have been overwritten during initialization.
-+	 * Reload the configuration, but only if initialization was
-+	 * successful. Reloading the configuration after a failed init
-+	 * may hang the system.
-+	 */
-+	if (!err)
-+		b43_op_config(hw, ~0);
- 
- 	return err;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0139-i2c-pnx-Disable-clk-in-suspend.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0139-i2c-pnx-Disable-clk-in-suspend.patch
deleted file mode 100644
index 58200f9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0139-i2c-pnx-Disable-clk-in-suspend.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 3413f898d1af58e99c56510c996fb039b6c5cd37 Mon Sep 17 00:00:00 2001
-From: Roland Stigge <stigge at antcom.de>
-Date: Wed, 4 Apr 2012 10:34:37 +0200
-Subject: [PATCH 139/165] i2c: pnx: Disable clk in suspend
-
-commit 6c557cfee08751d22aed34840f389b846f0f4508 upstream.
-
-In the driver's suspend function, clk_enable() was used instead of
-clk_disable(). This is corrected with this patch.
-
-Signed-off-by: Roland Stigge <stigge at antcom.de>
-Reviewed-by: Arnd Bergmann <arnd at arndb.de>
-
-[wsa: reworded commit header slightly]
-
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/i2c/busses/i2c-pnx.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c
-index 04be9f8..eb8ad53 100644
---- a/drivers/i2c/busses/i2c-pnx.c
-+++ b/drivers/i2c/busses/i2c-pnx.c
-@@ -546,8 +546,7 @@ static int i2c_pnx_controller_suspend(struct platform_device *pdev,
- {
- 	struct i2c_pnx_algo_data *alg_data = platform_get_drvdata(pdev);
- 
--	/* FIXME: shouldn't this be clk_disable? */
--	clk_enable(alg_data->clk);
-+	clk_disable(alg_data->clk);
- 
- 	return 0;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0140-ipw2200-Fix-race-condition-in-the-command-completion.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0140-ipw2200-Fix-race-condition-in-the-command-completion.patch
deleted file mode 100644
index ce811ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0140-ipw2200-Fix-race-condition-in-the-command-completion.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 306bd550f671e8d7ac5503cba114e5bb525aa787 Mon Sep 17 00:00:00 2001
-From: Stanislav Yakovlev <stas.yakovlev at gmail.com>
-Date: Thu, 19 Apr 2012 15:55:09 -0400
-Subject: [PATCH 140/165] ipw2200: Fix race condition in the command
- completion acknowledge
-
-commit dd447319895d0c0af423e483d9b63f84f3f8869a upstream.
-
-Driver incorrectly validates command completion: instead of waiting
-for a command to be acknowledged it continues execution.  Most of the
-time driver gets acknowledge of the command completion in a tasklet
-before it executes the next one. But sometimes it sends the next
-command before it gets acknowledge for the previous one. In such a
-case one of the following error messages appear in the log:
-
-Failed to send SYSTEM_CONFIG: Already sending a command.
-Failed to send ASSOCIATE: Already sending a command.
-Failed to send TX_POWER: Already sending a command.
-
-After that you need to reload the driver to get it working again.
-
-This bug occurs during roaming (reported by Sam Varshavchik)
-https://bugzilla.redhat.com/show_bug.cgi?id=738508
-and machine booting (reported by Tom Gundersen and Mads Kiilerich)
-https://bugs.archlinux.org/task/28097
-https://bugzilla.redhat.com/show_bug.cgi?id=802106
-
-This patch doesn't fix the delay issue during firmware load.
-But at least device now works as usual after boot.
-
-Signed-off-by: Stanislav Yakovlev <stas.yakovlev at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ipw2x00/ipw2200.c |   13 ++++++++++++-
- 1 files changed, 12 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
-index 99a710d..827889b 100644
---- a/drivers/net/wireless/ipw2x00/ipw2200.c
-+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
-@@ -2183,6 +2183,7 @@ static int __ipw_send_cmd(struct ipw_priv *priv, struct host_cmd *cmd)
- {
- 	int rc = 0;
- 	unsigned long flags;
-+	unsigned long now, end;
- 
- 	spin_lock_irqsave(&priv->lock, flags);
- 	if (priv->status & STATUS_HCMD_ACTIVE) {
-@@ -2224,10 +2225,20 @@ static int __ipw_send_cmd(struct ipw_priv *priv, struct host_cmd *cmd)
- 	}
- 	spin_unlock_irqrestore(&priv->lock, flags);
- 
-+	now = jiffies;
-+	end = now + HOST_COMPLETE_TIMEOUT;
-+again:
- 	rc = wait_event_interruptible_timeout(priv->wait_command_queue,
- 					      !(priv->
- 						status & STATUS_HCMD_ACTIVE),
--					      HOST_COMPLETE_TIMEOUT);
-+					      end - now);
-+	if (rc < 0) {
-+		now = jiffies;
-+		if (time_before(now, end))
-+			goto again;
-+		rc = 0;
-+	}
-+
- 	if (rc == 0) {
- 		spin_lock_irqsave(&priv->lock, flags);
- 		if (priv->status & STATUS_HCMD_ACTIVE) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0141-mac80211-fix-AP-mode-EAP-tx-for-VLAN-stations.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0141-mac80211-fix-AP-mode-EAP-tx-for-VLAN-stations.patch
deleted file mode 100644
index 5a35f40..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0141-mac80211-fix-AP-mode-EAP-tx-for-VLAN-stations.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d60da87d5ec426412fc4c55d4231c292ceb51a41 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Sun, 29 Apr 2012 15:44:16 +0200
-Subject: [PATCH 141/165] mac80211: fix AP mode EAP tx for VLAN stations
-
-commit 66f2c99af3d6f2d0aa1120884cf1c60613ef61c0 upstream.
-
-EAP frames for stations in an AP VLAN are sent on the main AP interface
-to avoid race conditions wrt. moving stations.
-For that to work properly, sta_info_get_bss must be used instead of
-sta_info_get when sending EAP packets.
-Previously this was only done for cooked monitor injected packets, so
-this patch adds a check for tx->skb->protocol to the same place.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/mac80211/tx.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index eff1f4e..4ff35bf 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -1121,7 +1121,8 @@ ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata,
- 		tx->sta = rcu_dereference(sdata->u.vlan.sta);
- 		if (!tx->sta && sdata->dev->ieee80211_ptr->use_4addr)
- 			return TX_DROP;
--	} else if (info->flags & IEEE80211_TX_CTL_INJECTED) {
-+	} else if (info->flags & IEEE80211_TX_CTL_INJECTED ||
-+		   tx->sdata->control_port_protocol == tx->skb->protocol) {
- 		tx->sta = sta_info_get_bss(sdata, hdr->addr1);
- 	}
- 	if (!tx->sta)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0142-rtlwifi-Fix-oops-on-unload.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0142-rtlwifi-Fix-oops-on-unload.patch
deleted file mode 100644
index 6a60247..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0142-rtlwifi-Fix-oops-on-unload.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 53290583562535da122f89cc3acb6babf2c55e66 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Thu, 19 Apr 2012 21:39:06 -0500
-Subject: [PATCH 142/165] rtlwifi: Fix oops on unload
-
-commit 44eb65cfd8da4b9c231238998729e858e963a980 upstream.
-
-Under some circumstances, a PCI-based driver reports the following OOPs:
-
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Oops: 0000 [#1] SMP
---snip--
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Pid: 19627, comm: rmmod
-Not tainted 3.2.9-2.fc16.x86_64 #1 LENOVO 05962RU/05962RU
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] RIP:
-0010:[<ffffffffa0418d39>]  [<ffffffffa0418d39>]
-rtl92ce_get_desc+0x19/0xd0 [rtl8192ce]
---snip--
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Process rmmod (pid:
-19627, threadinfo ffff880050262000, task ffff8801156d5cc0)
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Stack:
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  0000000000000002
-ffff8801176c2540 ffff880050263ca8 ffffffffa03348e7
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  0000000000000282
-0000000180150014 ffff880050263fd8 ffff8801176c2810
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  ffff880050263bc8
-ffffffff810550e2 00000000000002c0 ffff8801176c0d40
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Call Trace:
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  [<ffffffffa03348e7>]
-_rtl_pci_rx_interrupt+0x187/0x650 [rtlwifi]
---snip--
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] Code: ff 09 d0 89 07 48
-83 c4 08 5b 5d c3 66 0f 1f 44 00 00 55 48 89 e5 53 48 83 ec 08 66 66
-66 66 90 40 84 f6 89 d3 74 13 84 d2 75 57 <8b> 07 48 83 c4 08 5b 5d c1
-e8 1f c3 0f 1f 00 84 d2 74 ed 80 fa
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] RIP
-[<ffffffffa0418d39>] rtl92ce_get_desc+0x19/0xd0 [rtl8192ce]
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011]  RSP <ffff880050263b58>
-Mar 19 08:14:35 kvothe kernel: [ 6584.626011] CR2: 00000000000006e0
-Mar 19 08:14:35 kvothe kernel: [ 6584.646491] ---[ end trace
-8636c766dcfbe0e6 ]---
-
-This oops is due to interrupts not being disabled in this particular path.
-
-Reported-by: Dave Airlie <airlied at gmail.com>
-Tested-by: Dave Airlie <airlied at gmail.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rtlwifi/pci.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/pci.c b/drivers/net/wireless/rtlwifi/pci.c
-index d44d398..47ba0f7 100644
---- a/drivers/net/wireless/rtlwifi/pci.c
-+++ b/drivers/net/wireless/rtlwifi/pci.c
-@@ -1961,6 +1961,7 @@ void rtl_pci_disconnect(struct pci_dev *pdev)
- 		rtl_deinit_deferred_work(hw);
- 		rtlpriv->intf_ops->adapter_stop(hw);
- 	}
-+	rtlpriv->cfg->ops->disable_interrupt(hw);
- 
- 	/*deinit rfkill */
- 	rtl_deinit_rfkill(hw);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0143-wl1251-fix-crash-on-remove-due-to-premature-kfree.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0143-wl1251-fix-crash-on-remove-due-to-premature-kfree.patch
deleted file mode 100644
index c07b0d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0143-wl1251-fix-crash-on-remove-due-to-premature-kfree.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7b9847c5e4ba91a74d25b755ee45703487c5189e Mon Sep 17 00:00:00 2001
-From: Grazvydas Ignotas <notasas at gmail.com>
-Date: Thu, 26 Apr 2012 23:07:43 +0300
-Subject: [PATCH 143/165] wl1251: fix crash on remove due to premature kfree
-
-commit 328c32f0f85467af5a6c4c3289e168d9ad2555af upstream.
-
-Currently SDIO glue frees it's own structure before calling
-wl1251_free_hw(), which in turn calls ieee80211_unregister_hw().
-The later call may result in a need to communicate with the chip
-to stop it (as it happens now if the interface is still up before
-rmmod), which means calls are made back to the glue, resulting in
-freed memory access.
-
-Fix this by freeing glue data last.
-
-Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/wl1251/sdio.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/wl1251/sdio.c b/drivers/net/wireless/wl1251/sdio.c
-index f786942..1b851f6 100644
---- a/drivers/net/wireless/wl1251/sdio.c
-+++ b/drivers/net/wireless/wl1251/sdio.c
-@@ -315,8 +315,8 @@ static void __devexit wl1251_sdio_remove(struct sdio_func *func)
- 
- 	if (wl->irq)
- 		free_irq(wl->irq, wl);
--	kfree(wl_sdio);
- 	wl1251_free_hw(wl);
-+	kfree(wl_sdio);
- 
- 	sdio_claim_host(func);
- 	sdio_release_irq(func);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0144-wl1251-fix-crash-on-remove-due-to-leftover-work-item.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0144-wl1251-fix-crash-on-remove-due-to-leftover-work-item.patch
deleted file mode 100644
index 3873825..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0144-wl1251-fix-crash-on-remove-due-to-leftover-work-item.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From aac395832157e17755262dfe2f08d99a454f66f9 Mon Sep 17 00:00:00 2001
-From: Grazvydas Ignotas <notasas at gmail.com>
-Date: Thu, 26 Apr 2012 23:07:44 +0300
-Subject: [PATCH 144/165] wl1251: fix crash on remove due to leftover work
- item
-
-commit 4c1bcdb5a3354b250b82a67549f57ac27a3bb85f upstream.
-
-This driver currently leaves elp_work behind when stopping, which
-occasionally results in data corruption because work function ends
-up accessing freed memory, typical symptoms of this are various
-worker_thread crashes. Fix it by cancelling elp_work.
-
-Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/wl1251/main.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/wl1251/main.c b/drivers/net/wireless/wl1251/main.c
-index ba3268e..40c1574 100644
---- a/drivers/net/wireless/wl1251/main.c
-+++ b/drivers/net/wireless/wl1251/main.c
-@@ -479,6 +479,7 @@ static void wl1251_op_stop(struct ieee80211_hw *hw)
- 	cancel_work_sync(&wl->irq_work);
- 	cancel_work_sync(&wl->tx_work);
- 	cancel_work_sync(&wl->filter_work);
-+	cancel_delayed_work_sync(&wl->elp_work);
- 
- 	mutex_lock(&wl->mutex);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0145-iwlwifi-do-not-nulify-ctx-vif-on-reset.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0145-iwlwifi-do-not-nulify-ctx-vif-on-reset.patch
deleted file mode 100644
index cdd9c4a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0145-iwlwifi-do-not-nulify-ctx-vif-on-reset.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 3fabef3cff16e308410b75ac612ba271be969051 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Wed, 18 Apr 2012 08:01:15 -0700
-Subject: [PATCH 145/165] iwlwifi: do not nulify ctx->vif on reset
-
-commit 8db4c7e25d153fb049e81715d72fa3be3a0c3b69 upstream.
-
-ctx->vif is dereferenced in different part of iwlwifi code, so do not
-nullify it.
-
-This should address at least one of the possible reasons of WARNING at
-iwlagn_mac_remove_interface, and perhaps some random crashes when
-firmware reset is performed.
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2:
- - Change filename iwl-mac80211.c to iwl-core.c
- - Change context in iwlagn_prepare_restart()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-agn.c  |    3 ---
- drivers/net/wireless/iwlwifi/iwl-core.c |   10 +++++++++-
- 2 files changed, 9 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
-index e0e9a3d..d7d2512 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -1504,7 +1504,6 @@ static void iwl_bg_run_time_calib_work(struct work_struct *work)
- 
- static void iwlagn_prepare_restart(struct iwl_priv *priv)
- {
--	struct iwl_rxon_context *ctx;
- 	bool bt_full_concurrent;
- 	u8 bt_ci_compliance;
- 	u8 bt_load;
-@@ -1513,8 +1512,6 @@ static void iwlagn_prepare_restart(struct iwl_priv *priv)
- 
- 	lockdep_assert_held(&priv->shrd->mutex);
- 
--	for_each_context(priv, ctx)
--		ctx->vif = NULL;
- 	priv->is_open = 0;
- 
- 	/*
-diff --git a/drivers/net/wireless/iwlwifi/iwl-core.c b/drivers/net/wireless/iwlwifi/iwl-core.c
-index 3d75d4c..832ec4d 100644
---- a/drivers/net/wireless/iwlwifi/iwl-core.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-core.c
-@@ -1228,6 +1228,7 @@ int iwlagn_mac_add_interface(struct ieee80211_hw *hw,
- 	struct iwl_rxon_context *tmp, *ctx = NULL;
- 	int err;
- 	enum nl80211_iftype viftype = ieee80211_vif_type_p2p(vif);
-+	bool reset = false;
- 
- 	IWL_DEBUG_MAC80211(priv, "enter: type %d, addr %pM\n",
- 			   viftype, vif->addr);
-@@ -1249,6 +1250,13 @@ int iwlagn_mac_add_interface(struct ieee80211_hw *hw,
- 			tmp->interface_modes | tmp->exclusive_interface_modes;
- 
- 		if (tmp->vif) {
-+			/* On reset we need to add the same interface again */
-+			if (tmp->vif == vif) {
-+				reset = true;
-+				ctx = tmp;
-+				break;
-+			}
-+
- 			/* check if this busy context is exclusive */
- 			if (tmp->exclusive_interface_modes &
- 						BIT(tmp->vif->type)) {
-@@ -1275,7 +1283,7 @@ int iwlagn_mac_add_interface(struct ieee80211_hw *hw,
- 	ctx->vif = vif;
- 
- 	err = iwl_setup_interface(priv, ctx);
--	if (!err)
-+	if (!err || reset)
- 		goto out;
- 
- 	ctx->vif = NULL;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0146-iwlwifi-fix-hardware-queue-programming.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0146-iwlwifi-fix-hardware-queue-programming.patch
deleted file mode 100644
index c86049b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0146-iwlwifi-fix-hardware-queue-programming.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From dabe62a4921edd9f40f1477912cc0ac706f5e63d Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Mon, 23 Apr 2012 14:17:50 -0700
-Subject: [PATCH 146/165] iwlwifi: fix hardware queue programming
-
-commit 5ef4acd58ab2abd0dd0c8e3cacd61a0dc5d73646 upstream.
-
-Newer devices have 20 (5000 series) or 30 (6000 series)
-hardware queues, rather than the 16 that 4965 had. This
-was added to the driver a long time ago, but improperly:
-the queue registers for the higher queues aren't just
-continuations of the registers for the first 16 queues,
-they are in other places. Therefore, the hardware would
-lock up when trying to activate queue 16 or above and
-the device would have to be restarted.
-
-Thanks goes to Emmanuel who identified this and told me
-how the queue programming should be done.
-
-Note that we don't use queues 20 and higher today and
-doing so needs more work than this.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-fh.h   |   24 +++++++++++++++++++-----
- drivers/net/wireless/iwlwifi/iwl-prph.h |   27 ++++++++++++++++++++++++---
- 2 files changed, 43 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-fh.h b/drivers/net/wireless/iwlwifi/iwl-fh.h
-index 5bede9d..aae992a 100644
---- a/drivers/net/wireless/iwlwifi/iwl-fh.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-fh.h
-@@ -104,15 +104,29 @@
-  * (see struct iwl_tfd_frame).  These 16 pointer registers are offset by 0x04
-  * bytes from one another.  Each TFD circular buffer in DRAM must be 256-byte
-  * aligned (address bits 0-7 must be 0).
-+ * Later devices have 20 (5000 series) or 30 (higher) queues, but the registers
-+ * for them are in different places.
-  *
-  * Bit fields in each pointer register:
-  *  27-0: TFD CB physical base address [35:8], must be 256-byte aligned
-  */
--#define FH_MEM_CBBC_LOWER_BOUND          (FH_MEM_LOWER_BOUND + 0x9D0)
--#define FH_MEM_CBBC_UPPER_BOUND          (FH_MEM_LOWER_BOUND + 0xA10)
--
--/* Find TFD CB base pointer for given queue (range 0-15). */
--#define FH_MEM_CBBC_QUEUE(x)  (FH_MEM_CBBC_LOWER_BOUND + (x) * 0x4)
-+#define FH_MEM_CBBC_0_15_LOWER_BOUND		(FH_MEM_LOWER_BOUND + 0x9D0)
-+#define FH_MEM_CBBC_0_15_UPPER_BOUND		(FH_MEM_LOWER_BOUND + 0xA10)
-+#define FH_MEM_CBBC_16_19_LOWER_BOUND		(FH_MEM_LOWER_BOUND + 0xBF0)
-+#define FH_MEM_CBBC_16_19_UPPER_BOUND		(FH_MEM_LOWER_BOUND + 0xC00)
-+#define FH_MEM_CBBC_20_31_LOWER_BOUND		(FH_MEM_LOWER_BOUND + 0xB20)
-+#define FH_MEM_CBBC_20_31_UPPER_BOUND		(FH_MEM_LOWER_BOUND + 0xB80)
-+
-+/* Find TFD CB base pointer for given queue */
-+static inline unsigned int FH_MEM_CBBC_QUEUE(unsigned int chnl)
-+{
-+	if (chnl < 16)
-+		return FH_MEM_CBBC_0_15_LOWER_BOUND + 4 * chnl;
-+	if (chnl < 20)
-+		return FH_MEM_CBBC_16_19_LOWER_BOUND + 4 * (chnl - 16);
-+	WARN_ON_ONCE(chnl >= 32);
-+	return FH_MEM_CBBC_20_31_LOWER_BOUND + 4 * (chnl - 20);
-+}
- 
- 
- /**
-diff --git a/drivers/net/wireless/iwlwifi/iwl-prph.h b/drivers/net/wireless/iwlwifi/iwl-prph.h
-index bebdd82..d9b089e 100644
---- a/drivers/net/wireless/iwlwifi/iwl-prph.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-prph.h
-@@ -227,12 +227,33 @@
- #define SCD_AIT			(SCD_BASE + 0x0c)
- #define SCD_TXFACT		(SCD_BASE + 0x10)
- #define SCD_ACTIVE		(SCD_BASE + 0x14)
--#define SCD_QUEUE_WRPTR(x)	(SCD_BASE + 0x18 + (x) * 4)
--#define SCD_QUEUE_RDPTR(x)	(SCD_BASE + 0x68 + (x) * 4)
- #define SCD_QUEUECHAIN_SEL	(SCD_BASE + 0xe8)
- #define SCD_AGGR_SEL		(SCD_BASE + 0x248)
- #define SCD_INTERRUPT_MASK	(SCD_BASE + 0x108)
--#define SCD_QUEUE_STATUS_BITS(x)	(SCD_BASE + 0x10c + (x) * 4)
-+
-+static inline unsigned int SCD_QUEUE_WRPTR(unsigned int chnl)
-+{
-+	if (chnl < 20)
-+		return SCD_BASE + 0x18 + chnl * 4;
-+	WARN_ON_ONCE(chnl >= 32);
-+	return SCD_BASE + 0x284 + (chnl - 20) * 4;
-+}
-+
-+static inline unsigned int SCD_QUEUE_RDPTR(unsigned int chnl)
-+{
-+	if (chnl < 20)
-+		return SCD_BASE + 0x68 + chnl * 4;
-+	WARN_ON_ONCE(chnl >= 32);
-+	return SCD_BASE + 0x2B4 + (chnl - 20) * 4;
-+}
-+
-+static inline unsigned int SCD_QUEUE_STATUS_BITS(unsigned int chnl)
-+{
-+	if (chnl < 20)
-+		return SCD_BASE + 0x10c + chnl * 4;
-+	WARN_ON_ONCE(chnl >= 32);
-+	return SCD_BASE + 0x384 + (chnl - 20) * 4;
-+}
- 
- /*********************** END TX SCHEDULER *************************************/
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0147-hfsplus-Fix-potential-buffer-overflows.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0147-hfsplus-Fix-potential-buffer-overflows.patch
deleted file mode 100644
index f379dc3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0147-hfsplus-Fix-potential-buffer-overflows.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From e5c4ffba0f91d7315823292c6a46a0e3a35cf5f1 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 4 May 2012 12:09:39 -0700
-Subject: [PATCH 147/165] hfsplus: Fix potential buffer overflows
-
-commit 6f24f892871acc47b40dd594c63606a17c714f77 upstream.
-
-Commit ec81aecb2966 ("hfs: fix a potential buffer overflow") fixed a few
-potential buffer overflows in the hfs filesystem.  But as Timo Warns
-pointed out, these changes also need to be made on the hfsplus
-filesystem as well.
-
-Reported-by: Timo Warns <warns at pre-sense.de>
-Acked-by: WANG Cong <amwang at redhat.com>
-Cc: Alexey Khoroshilov <khoroshilov at ispras.ru>
-Cc: Miklos Szeredi <mszeredi at suse.cz>
-Cc: Sage Weil <sage at newdream.net>
-Cc: Eugene Teo <eteo at redhat.com>
-Cc: Roman Zippel <zippel at linux-m68k.org>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Cc: Christoph Hellwig <hch at lst.de>
-Cc: Alexey Dobriyan <adobriyan at gmail.com>
-Cc: Dave Anderson <anderson at redhat.com>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/hfsplus/catalog.c |    4 ++++
- fs/hfsplus/dir.c     |   11 +++++++++++
- 2 files changed, 15 insertions(+), 0 deletions(-)
-
-diff --git a/fs/hfsplus/catalog.c b/fs/hfsplus/catalog.c
-index 4dfbfec..ec2a9c2 100644
---- a/fs/hfsplus/catalog.c
-+++ b/fs/hfsplus/catalog.c
-@@ -366,6 +366,10 @@ int hfsplus_rename_cat(u32 cnid,
- 	err = hfs_brec_find(&src_fd);
- 	if (err)
- 		goto out;
-+	if (src_fd.entrylength > sizeof(entry) || src_fd.entrylength < 0) {
-+		err = -EIO;
-+		goto out;
-+	}
- 
- 	hfs_bnode_read(src_fd.bnode, &entry, src_fd.entryoffset,
- 				src_fd.entrylength);
-diff --git a/fs/hfsplus/dir.c b/fs/hfsplus/dir.c
-index 4536cd3..5adb740 100644
---- a/fs/hfsplus/dir.c
-+++ b/fs/hfsplus/dir.c
-@@ -150,6 +150,11 @@ static int hfsplus_readdir(struct file *filp, void *dirent, filldir_t filldir)
- 		filp->f_pos++;
- 		/* fall through */
- 	case 1:
-+		if (fd.entrylength > sizeof(entry) || fd.entrylength < 0) {
-+			err = -EIO;
-+			goto out;
-+		}
-+
- 		hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
- 			fd.entrylength);
- 		if (be16_to_cpu(entry.type) != HFSPLUS_FOLDER_THREAD) {
-@@ -181,6 +186,12 @@ static int hfsplus_readdir(struct file *filp, void *dirent, filldir_t filldir)
- 			err = -EIO;
- 			goto out;
- 		}
-+
-+		if (fd.entrylength > sizeof(entry) || fd.entrylength < 0) {
-+			err = -EIO;
-+			goto out;
-+		}
-+
- 		hfs_bnode_read(fd.bnode, &entry, fd.entryoffset,
- 			fd.entrylength);
- 		type = be16_to_cpu(entry.type);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0148-ASoC-tlv312aic23-unbreak-resume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0148-ASoC-tlv312aic23-unbreak-resume.patch
deleted file mode 100644
index 9f93387..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0148-ASoC-tlv312aic23-unbreak-resume.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b0209aed70b2cc2a544817e2b57d68d9dfcf4635 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Eric=20B=C3=A9nard?= <eric at eukrea.com>
-Date: Sun, 29 Apr 2012 17:37:57 +0200
-Subject: [PATCH 148/165] ASoC: tlv312aic23: unbreak resume
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit e875c1e3e758447ba81ca450d89434b3b0496d37 upstream.
-
-* commit f9dfbf9 "ASoC: tlv320aic23: convert to soc-cache" leads to
-a bug preventing resumeof the codec as regmap expects a 9 bits data
-register but 0xFFFF is passed in tlv320aic23_set_bias_level and this
-values gets cached preventing any write to the TLV320AIC23_PWR
-register as the final value produced by regmap is (register << 9) | value
-
-* this patch solves the problem by only working on the 9 bits the
-register contains.
-
-Signed-off-by: Eric Bénard <eric at eukrea.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/tlv320aic23.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/codecs/tlv320aic23.c b/sound/soc/codecs/tlv320aic23.c
-index 336de8f..0e7e26e 100644
---- a/sound/soc/codecs/tlv320aic23.c
-+++ b/sound/soc/codecs/tlv320aic23.c
-@@ -473,7 +473,7 @@ static int tlv320aic23_set_dai_sysclk(struct snd_soc_dai *codec_dai,
- static int tlv320aic23_set_bias_level(struct snd_soc_codec *codec,
- 				      enum snd_soc_bias_level level)
- {
--	u16 reg = snd_soc_read(codec, TLV320AIC23_PWR) & 0xff7f;
-+	u16 reg = snd_soc_read(codec, TLV320AIC23_PWR) & 0x17f;
- 
- 	switch (level) {
- 	case SND_SOC_BIAS_ON:
-@@ -492,7 +492,7 @@ static int tlv320aic23_set_bias_level(struct snd_soc_codec *codec,
- 	case SND_SOC_BIAS_OFF:
- 		/* everything off, dac mute, inactive */
- 		snd_soc_write(codec, TLV320AIC23_ACTIVE, 0x0);
--		snd_soc_write(codec, TLV320AIC23_PWR, 0xffff);
-+		snd_soc_write(codec, TLV320AIC23_PWR, 0x1ff);
- 		break;
- 	}
- 	codec->dapm.bias_level = level;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0149-asm-generic-Use-__BITS_PER_LONG-in-statfs.h.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0149-asm-generic-Use-__BITS_PER_LONG-in-statfs.h.patch
deleted file mode 100644
index 43289d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0149-asm-generic-Use-__BITS_PER_LONG-in-statfs.h.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 09fdfacc87dfa2183da3d66ac788901636ef33f2 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Thu, 26 Apr 2012 11:45:16 -0700
-Subject: [PATCH 149/165] asm-generic: Use __BITS_PER_LONG in statfs.h
-
-commit f5c2347ee20a8d6964d6a6b1ad04f200f8d4dfa7 upstream.
-
-<asm-generic/statfs.h> is exported to userspace, so using
-BITS_PER_LONG is invalid.  We need to use __BITS_PER_LONG instead.
-
-This is kernel bugzilla 43165.
-
-Reported-by: H.J. Lu <hjl.tools at gmail.com>
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Link: http://lkml.kernel.org/r/1335465916-16965-1-git-send-email-hpa@linux.intel.com
-Acked-by: Arnd Bergmann <arnd at arndb.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/asm-generic/statfs.h |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/include/asm-generic/statfs.h b/include/asm-generic/statfs.h
-index 0fd28e0..c749af9 100644
---- a/include/asm-generic/statfs.h
-+++ b/include/asm-generic/statfs.h
-@@ -15,7 +15,7 @@ typedef __kernel_fsid_t	fsid_t;
-  * with a 10' pole.
-  */
- #ifndef __statfs_word
--#if BITS_PER_LONG == 64
-+#if __BITS_PER_LONG == 64
- #define __statfs_word long
- #else
- #define __statfs_word __u32
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0150-x86-relocs-Remove-an-unused-variable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0150-x86-relocs-Remove-an-unused-variable.patch
deleted file mode 100644
index 5b06381..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0150-x86-relocs-Remove-an-unused-variable.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 174b97406f578b117e9403dde42ac98f80919a0b Mon Sep 17 00:00:00 2001
-From: Kusanagi Kouichi <slash at ac.auone-net.jp>
-Date: Sun, 1 Apr 2012 17:29:32 +0900
-Subject: [PATCH 150/165] x86, relocs: Remove an unused variable
-
-commit 7c77cda0fe742ed07622827ce80963bbeebd1e3f upstream.
-
-sh_symtab is set but not used.
-
-[ hpa: putting this in urgent because of the sheer harmlessness of the patch:
-  it quiets a build warning but does not change any generated code. ]
-
-Signed-off-by: Kusanagi Kouichi <slash at ac.auone-net.jp>
-Link: http://lkml.kernel.org/r/20120401082932.D5E066FC03D@msa105.auone-net.jp
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/boot/compressed/relocs.c |    2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c
-index 89bbf4e..e77f4e4 100644
---- a/arch/x86/boot/compressed/relocs.c
-+++ b/arch/x86/boot/compressed/relocs.c
-@@ -402,13 +402,11 @@ static void print_absolute_symbols(void)
- 	for (i = 0; i < ehdr.e_shnum; i++) {
- 		struct section *sec = &secs[i];
- 		char *sym_strtab;
--		Elf32_Sym *sh_symtab;
- 		int j;
- 
- 		if (sec->shdr.sh_type != SHT_SYMTAB) {
- 			continue;
- 		}
--		sh_symtab = sec->symtab;
- 		sym_strtab = sec->link->strtab;
- 		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) {
- 			Elf32_Sym *sym;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0151-ARM-7410-1-Add-extra-clobber-registers-for-assembly-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0151-ARM-7410-1-Add-extra-clobber-registers-for-assembly-.patch
deleted file mode 100644
index b712f67..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0151-ARM-7410-1-Add-extra-clobber-registers-for-assembly-.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 8a73393b01a8d2a9959a094d34d037802d78161b Mon Sep 17 00:00:00 2001
-From: Tim Bird <tim.bird at am.sony.com>
-Date: Wed, 2 May 2012 22:55:39 +0100
-Subject: [PATCH 151/165] ARM: 7410/1: Add extra clobber registers for
- assembly in kernel_execve
-
-commit e787ec1376e862fcea1bfd523feb7c5fb43ecdb9 upstream.
-
-The inline assembly in kernel_execve() uses r8 and r9.  Since this
-code sequence does not return, it usually doesn't matter if the
-register clobber list is accurate.  However, I saw a case where a
-particular version of gcc used r8 as an intermediate for the value
-eventually passed to r9.  Because r8 is used in the inline
-assembly, and not mentioned in the clobber list, r9 was set
-to an incorrect value.
-
-This resulted in a kernel panic on execution of the first user-space
-program in the system.  r9 is used in ret_to_user as the thread_info
-pointer, and if it's wrong, bad things happen.
-
-Signed-off-by: Tim Bird <tim.bird at am.sony.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/kernel/sys_arm.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/kernel/sys_arm.c b/arch/arm/kernel/sys_arm.c
-index d2b1779..76cbb05 100644
---- a/arch/arm/kernel/sys_arm.c
-+++ b/arch/arm/kernel/sys_arm.c
-@@ -115,7 +115,7 @@ int kernel_execve(const char *filename,
- 		  "Ir" (THREAD_START_SP - sizeof(regs)),
- 		  "r" (&regs),
- 		  "Ir" (sizeof(regs))
--		: "r0", "r1", "r2", "r3", "ip", "lr", "memory");
-+		: "r0", "r1", "r2", "r3", "r8", "r9", "ip", "lr", "memory");
- 
-  out:
- 	return ret;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0152-ARM-7414-1-SMP-prevent-use-of-the-console-when-using.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0152-ARM-7414-1-SMP-prevent-use-of-the-console-when-using.patch
deleted file mode 100644
index d84c0d4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0152-ARM-7414-1-SMP-prevent-use-of-the-console-when-using.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From c4c0043207f643dbe84706b1f3d6948b1e2de64d Mon Sep 17 00:00:00 2001
-From: Colin Cross <ccross at android.com>
-Date: Sat, 5 May 2012 20:58:13 +0100
-Subject: [PATCH 152/165] ARM: 7414/1: SMP: prevent use of the console when
- using idmap_pgd
-
-commit fde165b2a29673aabf18ceff14dea1f1cfb0daad upstream.
-
-Commit 4e8ee7de227e3ab9a72040b448ad728c5428a042 (ARM: SMP: use
-idmap_pgd for mapping MMU enable during secondary booting)
-switched secondary boot to use idmap_pgd, which is initialized
-during early_initcall, instead of a page table initialized during
-__cpu_up.  This causes idmap_pgd to contain the static mappings
-but be missing all dynamic mappings.
-
-If a console is registered that creates a dynamic mapping, the
-printk in secondary_start_kernel will trigger a data abort on
-the missing mapping before the exception handlers have been
-initialized, leading to a hang.  Initial boot is not affected
-because no consoles have been registered, and resume is usually
-not affected because the offending console is suspended.
-Onlining a cpu with hotplug triggers the problem.
-
-A workaround is to the printk in secondary_start_kernel until
-after the page tables have been switched back to init_mm.
-
-Signed-off-by: Colin Cross <ccross at android.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/kernel/smp.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
-index ef5640b..e10e59a 100644
---- a/arch/arm/kernel/smp.c
-+++ b/arch/arm/kernel/smp.c
-@@ -297,8 +297,6 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
- 	struct mm_struct *mm = &init_mm;
- 	unsigned int cpu = smp_processor_id();
- 
--	printk("CPU%u: Booted secondary processor\n", cpu);
--
- 	/*
- 	 * All kernel threads share the same mm context; grab a
- 	 * reference and switch to it.
-@@ -310,6 +308,8 @@ asmlinkage void __cpuinit secondary_start_kernel(void)
- 	enter_lazy_tlb(mm, current);
- 	local_flush_tlb_all();
- 
-+	printk("CPU%u: Booted secondary processor\n", cpu);
-+
- 	cpu_init();
- 	preempt_disable();
- 	trace_hardirqs_off();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0153-drm-i915-disable-sdvo-hotplug-on-i945g-gm.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0153-drm-i915-disable-sdvo-hotplug-on-i945g-gm.patch
deleted file mode 100644
index 4ce1011..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0153-drm-i915-disable-sdvo-hotplug-on-i945g-gm.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From fa5bf9a9b89ddc63cb451a2aecb112c7715aaffb Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Fri, 4 May 2012 11:29:56 +0200
-Subject: [PATCH 153/165] drm/i915: disable sdvo hotplug on i945g/gm
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 768b107e4b3be0acf6f58e914afe4f337c00932b upstream.
-
-Chris Wilson dug out a hw erratum saying that there's noise on the
-interrupt line on i945G chips. We also have a bug report from a i945GM
-chip with an sdvo hotplug interrupt storm (and no apparent cause).
-
-Play it safe and disable sdvo hotplug on all i945 variants.
-
-Note that this is a regression that has been introduced in 3.1,
-when we've enabled sdvo hotplug support with
-
-commit cc68c81aed7d892deaf12d720d5455208e94cd0a
-Author: Simon Farnsworth <simon.farnsworth at onelan.co.uk>
-Date:   Wed Sep 21 17:13:30 2011 +0100
-
-    drm/i915: Enable SDVO hotplug interrupts for HDMI and DVI
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=38442
-Reported-and-tested-by: Dominik Köppl <dominik at devwork.org>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_sdvo.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
-index 0a877dd..8eddcca 100644
---- a/drivers/gpu/drm/i915/intel_sdvo.c
-+++ b/drivers/gpu/drm/i915/intel_sdvo.c
-@@ -1221,8 +1221,14 @@ static bool intel_sdvo_get_capabilities(struct intel_sdvo *intel_sdvo, struct in
- 
- static int intel_sdvo_supports_hotplug(struct intel_sdvo *intel_sdvo)
- {
-+	struct drm_device *dev = intel_sdvo->base.base.dev;
- 	u8 response[2];
- 
-+	/* HW Erratum: SDVO Hotplug is broken on all i945G chips, there's noise
-+	 * on the line. */
-+	if (IS_I945G(dev) || IS_I945GM(dev))
-+		return false;
-+
- 	return intel_sdvo_get_value(intel_sdvo, SDVO_CMD_GET_HOT_PLUG_SUPPORT,
- 				    &response, 2) && response[0];
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0154-drm-i915-Do-no-set-Stencil-Cache-eviction-LRA-w-a-on.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0154-drm-i915-Do-no-set-Stencil-Cache-eviction-LRA-w-a-on.patch
deleted file mode 100644
index f5c50b2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0154-drm-i915-Do-no-set-Stencil-Cache-eviction-LRA-w-a-on.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 69056e5ea1d5eef50061b03d95dc6afd26ee9627 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sun, 6 May 2012 16:50:24 +0200
-Subject: [PATCH 154/165] drm/i915: Do no set Stencil Cache eviction LRA w/a
- on gen7+
-
-commit 2e7a44814d802c8ba479164b8924070cd908d6b5 upstream.
-
-I've flagged this while reviewing the first version and Ken Graunke
-fixed it up in v2, but unfortunately Dave Airlie picked up the wrong
-version.
-
-Cc: Dave Airlie <airlied at redhat.com>
-Cc: Kenneth Graunke <kenneth at whitecape.org>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 273f403..62f9ac5 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -414,10 +414,8 @@ static int init_render_ring(struct intel_ring_buffer *ring)
- 			return ret;
- 	}
- 
--	if (INTEL_INFO(dev)->gen >= 6) {
--		I915_WRITE(INSTPM,
--			   INSTPM_FORCE_ORDERING << 16 | INSTPM_FORCE_ORDERING);
- 
-+	if (IS_GEN6(dev)) {
- 		/* From the Sandybridge PRM, volume 1 part 3, page 24:
- 		 * "If this bit is set, STCunit will have LRA as replacement
- 		 *  policy. [...] This bit must be reset.  LRA replacement
-@@ -427,6 +425,11 @@ static int init_render_ring(struct intel_ring_buffer *ring)
- 			   CM0_STC_EVICT_DISABLE_LRA_SNB << CM0_MASK_SHIFT);
- 	}
- 
-+	if (INTEL_INFO(dev)->gen >= 6) {
-+		I915_WRITE(INSTPM,
-+			   INSTPM_FORCE_ORDERING << 16 | INSTPM_FORCE_ORDERING);
-+	}
-+
- 	return ret;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0155-xen-pte-Fix-crashes-when-trying-to-see-non-existent-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0155-xen-pte-Fix-crashes-when-trying-to-see-non-existent-.patch
deleted file mode 100644
index 97aed57..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0155-xen-pte-Fix-crashes-when-trying-to-see-non-existent-.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 9476d5b9241f9e02cf2d0b0789e8e229709d54bf Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Date: Thu, 3 May 2012 16:14:14 -0400
-Subject: [PATCH 155/165] xen/pte: Fix crashes when trying to see non-existent
- PGD/PMD/PUD/PTEs
-
-commit b7e5ffe5d83fa40d702976d77452004abbe35791 upstream.
-
-If I try to do "cat /sys/kernel/debug/kernel_page_tables"
-I end up with:
-
-BUG: unable to handle kernel paging request at ffffc7fffffff000
-IP: [<ffffffff8106aa51>] ptdump_show+0x221/0x480
-PGD 0
-Oops: 0000 [#1] SMP
-CPU 0
-.. snip..
-RAX: 0000000000000000 RBX: ffffc00000000fff RCX: 0000000000000000
-RDX: 0000800000000000 RSI: 0000000000000000 RDI: ffffc7fffffff000
-
-which is due to the fact we are trying to access a PFN that is not
-accessible to us. The reason (at least in this case) was that
-PGD[256] is set to __HYPERVISOR_VIRT_START which was setup (by the
-hypervisor) to point to a read-only linear map of the MFN->PFN array.
-During our parsing we would get the MFN (a valid one), try to look
-it up in the MFN->PFN tree and find it invalid and return ~0 as PFN.
-Then pte_mfn_to_pfn would happilly feed that in, attach the flags
-and return it back to the caller. 'ptdump_show' bitshifts it and
-gets and invalid value that it tries to dereference.
-
-Instead of doing all of that, we detect the ~0 case and just
-return !_PAGE_PRESENT.
-
-This bug has been in existence .. at least until 2.6.37 (yikes!)
-
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/mmu.c |    7 ++++++-
- 1 files changed, 6 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/xen/mmu.c b/arch/x86/xen/mmu.c
-index 87f6673..ec3d603 100644
---- a/arch/x86/xen/mmu.c
-+++ b/arch/x86/xen/mmu.c
-@@ -353,8 +353,13 @@ static pteval_t pte_mfn_to_pfn(pteval_t val)
- {
- 	if (val & _PAGE_PRESENT) {
- 		unsigned long mfn = (val & PTE_PFN_MASK) >> PAGE_SHIFT;
-+		unsigned long pfn = mfn_to_pfn(mfn);
-+
- 		pteval_t flags = val & PTE_FLAGS_MASK;
--		val = ((pteval_t)mfn_to_pfn(mfn) << PAGE_SHIFT) | flags;
-+		if (unlikely(pfn == ~0))
-+			val = flags & ~_PAGE_PRESENT;
-+		else
-+			val = ((pteval_t)pfn << PAGE_SHIFT) | flags;
- 	}
- 
- 	return val;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0156-xen-pci-don-t-use-PCI-BIOS-service-for-configuration.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0156-xen-pci-don-t-use-PCI-BIOS-service-for-configuration.patch
deleted file mode 100644
index f2f42b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0156-xen-pci-don-t-use-PCI-BIOS-service-for-configuration.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 26cb931f7927821d30686897588964e66b9ec156 Mon Sep 17 00:00:00 2001
-From: David Vrabel <david.vrabel at citrix.com>
-Date: Fri, 4 May 2012 14:29:46 +0100
-Subject: [PATCH 156/165] xen/pci: don't use PCI BIOS service for
- configuration space accesses
-
-commit 76a8df7b49168509df02461f83fab117a4a86e08 upstream.
-
-The accessing PCI configuration space with the PCI BIOS32 service does
-not work in PV guests.
-
-On systems without MMCONFIG or where the BIOS hasn't marked the
-MMCONFIG region as reserved in the e820 map, the BIOS service is
-probed (even though direct access is preferred) and this hangs.
-
-Acked-by: Jan Beulich <jbeulich at suse.com>
-Signed-off-by: David Vrabel <david.vrabel at citrix.com>
-[v1: Fixed compile error when CONFIG_PCI is not set]
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/enlighten.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index 1f92865..e7c920b 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -62,6 +62,7 @@
- #include <asm/reboot.h>
- #include <asm/stackprotector.h>
- #include <asm/hypervisor.h>
-+#include <asm/pci_x86.h>
- 
- #include "xen-ops.h"
- #include "mmu.h"
-@@ -1278,8 +1279,10 @@ asmlinkage void __init xen_start_kernel(void)
- 		/* Make sure ACS will be enabled */
- 		pci_request_acs();
- 	}
--		
--
-+#ifdef CONFIG_PCI
-+	/* PCI BIOS service won't work from a PV guest. */
-+	pci_probe &= ~PCI_PROBE_BIOS;
-+#endif
- 	xen_raw_console_write("about to get started...\n");
- 
- 	xen_setup_runstate_info(0);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0157-percpu-x86-don-t-use-PMD_SIZE-as-embedded-atom_size-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0157-percpu-x86-don-t-use-PMD_SIZE-as-embedded-atom_size-.patch
deleted file mode 100644
index c948145..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0157-percpu-x86-don-t-use-PMD_SIZE-as-embedded-atom_size-.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 40bfc308a453997d543e78d6c825275710c48a1c Mon Sep 17 00:00:00 2001
-From: Tejun Heo <tj at kernel.org>
-Date: Fri, 27 Apr 2012 10:54:35 -0700
-Subject: [PATCH 157/165] percpu, x86: don't use PMD_SIZE as embedded
- atom_size on 32bit
-
-commit d5e28005a1d2e67833852f4c9ea8ec206ea3ff85 upstream.
-
-With the embed percpu first chunk allocator, x86 uses either PAGE_SIZE
-or PMD_SIZE for atom_size.  PMD_SIZE is used when CPU supports PSE so
-that percpu areas are aligned to PMD mappings and possibly allow using
-PMD mappings in vmalloc areas in the future.  Using larger atom_size
-doesn't waste actual memory; however, it does require larger vmalloc
-space allocation later on for !first chunks.
-
-With reasonably sized vmalloc area, PMD_SIZE shouldn't be a problem
-but x86_32 at this point is anything but reasonable in terms of
-address space and using larger atom_size reportedly leads to frequent
-percpu allocation failures on certain setups.
-
-As there is no reason to not use PMD_SIZE on x86_64 as vmalloc space
-is aplenty and most x86_64 configurations support PSE, fix the issue
-by always using PMD_SIZE on x86_64 and PAGE_SIZE on x86_32.
-
-v2: drop cpu_has_pse test and make x86_64 always use PMD_SIZE and
-    x86_32 PAGE_SIZE as suggested by hpa.
-
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Reported-by: Yanmin Zhang <yanmin.zhang at intel.com>
-Reported-by: ShuoX Liu <shuox.liu at intel.com>
-Acked-by: H. Peter Anvin <hpa at zytor.com>
-LKML-Reference: <4F97BA98.6010001 at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/setup_percpu.c |   14 +++++++++++++-
- 1 files changed, 13 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/kernel/setup_percpu.c b/arch/x86/kernel/setup_percpu.c
-index 71f4727..5a98aa2 100644
---- a/arch/x86/kernel/setup_percpu.c
-+++ b/arch/x86/kernel/setup_percpu.c
-@@ -185,10 +185,22 @@ void __init setup_per_cpu_areas(void)
- #endif
- 	rc = -EINVAL;
- 	if (pcpu_chosen_fc != PCPU_FC_PAGE) {
--		const size_t atom_size = cpu_has_pse ? PMD_SIZE : PAGE_SIZE;
- 		const size_t dyn_size = PERCPU_MODULE_RESERVE +
- 			PERCPU_DYNAMIC_RESERVE - PERCPU_FIRST_CHUNK_RESERVE;
-+		size_t atom_size;
- 
-+		/*
-+		 * On 64bit, use PMD_SIZE for atom_size so that embedded
-+		 * percpu areas are aligned to PMD.  This, in the future,
-+		 * can also allow using PMD mappings in vmalloc area.  Use
-+		 * PAGE_SIZE on 32bit as vmalloc space is highly contended
-+		 * and large vmalloc area allocs can easily fail.
-+		 */
-+#ifdef CONFIG_X86_64
-+		atom_size = PMD_SIZE;
-+#else
-+		atom_size = PAGE_SIZE;
-+#endif
- 		rc = pcpu_embed_first_chunk(PERCPU_FIRST_CHUNK_RESERVE,
- 					    dyn_size, atom_size,
- 					    pcpu_cpu_distance,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0158-iwlagn-allow-up-to-uCode-API-6-for-6000-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0158-iwlagn-allow-up-to-uCode-API-6-for-6000-devices.patch
deleted file mode 100644
index 7e27234..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0158-iwlagn-allow-up-to-uCode-API-6-for-6000-devices.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From cad1b4d0f128eb46af3732795f91e3aba5ea4fbb Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Fri, 4 Nov 2011 07:22:37 -0700
-Subject: [PATCH 158/165] iwlagn: allow up to uCode API 6 for 6000 devices
-
-commit b914811524fbe9e91fe50845f5d7bd4316b8a6ee upstream.
-
-Since the uCode hasn't been released (yet?),
-warn only if using older than API 4, but load
-anything up to API 6.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-6000.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
-index c840c78..ae3ea32 100644
---- a/drivers/net/wireless/iwlwifi/iwl-6000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
-@@ -46,11 +46,12 @@
- #include "iwl-cfg.h"
- 
- /* Highest firmware API version supported */
--#define IWL6000_UCODE_API_MAX 4
-+#define IWL6000_UCODE_API_MAX 6
- #define IWL6050_UCODE_API_MAX 5
- #define IWL6000G2_UCODE_API_MAX 6
- 
- /* Oldest version we won't warn about */
-+#define IWL6000_UCODE_API_OK 4
- #define IWL6000G2_UCODE_API_OK 5
- 
- /* Lowest firmware API version supported */
-@@ -479,6 +480,7 @@ struct iwl_cfg iwl130_bg_cfg = {
- #define IWL_DEVICE_6000i					\
- 	.fw_name_pre = IWL6000_FW_PRE,				\
- 	.ucode_api_max = IWL6000_UCODE_API_MAX,			\
-+	.ucode_api_ok = IWL6000_UCODE_API_OK,			\
- 	.ucode_api_min = IWL6000_UCODE_API_MIN,			\
- 	.valid_tx_ant = ANT_BC,		/* .cfg overwrite */	\
- 	.valid_rx_ant = ANT_BC,		/* .cfg overwrite */	\
-@@ -559,6 +561,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
- 	.name = "Intel(R) Centrino(R) Ultimate-N 6300 AGN",
- 	.fw_name_pre = IWL6000_FW_PRE,
- 	.ucode_api_max = IWL6000_UCODE_API_MAX,
-+	.ucode_api_ok = IWL6000_UCODE_API_OK,
- 	.ucode_api_min = IWL6000_UCODE_API_MIN,
- 	.eeprom_ver = EEPROM_6000_EEPROM_VERSION,
- 	.eeprom_calib_ver = EEPROM_6000_TX_POWER_VERSION,
-@@ -569,7 +572,7 @@ struct iwl_cfg iwl6000_3agn_cfg = {
- 	.led_mode = IWL_LED_BLINK,
- };
- 
--MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_MAX));
-+MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_OK));
- MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX));
- MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX));
- MODULE_FIRMWARE(IWL6030_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0159-iwlwifi-use-correct-released-ucode-version.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0159-iwlwifi-use-correct-released-ucode-version.patch
deleted file mode 100644
index e6ea8fa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0159-iwlwifi-use-correct-released-ucode-version.patch
+++ /dev/null
@@ -1,159 +0,0 @@
-From 6ae066df7c16000f163eab3a745b711447536e70 Mon Sep 17 00:00:00 2001
-From: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Date: Sun, 22 Apr 2012 07:55:27 -0700
-Subject: [PATCH 159/165] iwlwifi: use correct released ucode version
-
-commit 78cbcf2b9dbe0565820dc7721316f9c401000a68 upstream.
-
-Report correctly the latest released version
-of the iwlwifi firmware for all
-iwlwifi-supported devices.
-
-Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-1000.c |    8 ++++----
- drivers/net/wireless/iwlwifi/iwl-2000.c |   16 ++++++++--------
- drivers/net/wireless/iwlwifi/iwl-5000.c |   11 +++++++++--
- drivers/net/wireless/iwlwifi/iwl-6000.c |   10 ++++++----
- 4 files changed, 27 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-1000.c b/drivers/net/wireless/iwlwifi/iwl-1000.c
-index dd008b0..1e6c8cc 100644
---- a/drivers/net/wireless/iwlwifi/iwl-1000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-1000.c
-@@ -45,8 +45,8 @@
- #include "iwl-cfg.h"
- 
- /* Highest firmware API version supported */
--#define IWL1000_UCODE_API_MAX 6
--#define IWL100_UCODE_API_MAX 6
-+#define IWL1000_UCODE_API_MAX 5
-+#define IWL100_UCODE_API_MAX 5
- 
- /* Oldest version we won't warn about */
- #define IWL1000_UCODE_API_OK 5
-@@ -244,5 +244,5 @@ struct iwl_cfg iwl100_bg_cfg = {
- 	IWL_DEVICE_100,
- };
- 
--MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_MAX));
-+MODULE_FIRMWARE(IWL1000_MODULE_FIRMWARE(IWL1000_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL100_MODULE_FIRMWARE(IWL100_UCODE_API_OK));
-diff --git a/drivers/net/wireless/iwlwifi/iwl-2000.c b/drivers/net/wireless/iwlwifi/iwl-2000.c
-index 7943197..9823e41 100644
---- a/drivers/net/wireless/iwlwifi/iwl-2000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-2000.c
-@@ -51,10 +51,10 @@
- #define IWL135_UCODE_API_MAX 6
- 
- /* Oldest version we won't warn about */
--#define IWL2030_UCODE_API_OK 5
--#define IWL2000_UCODE_API_OK 5
--#define IWL105_UCODE_API_OK 5
--#define IWL135_UCODE_API_OK 5
-+#define IWL2030_UCODE_API_OK 6
-+#define IWL2000_UCODE_API_OK 6
-+#define IWL105_UCODE_API_OK 6
-+#define IWL135_UCODE_API_OK 6
- 
- /* Lowest firmware API version supported */
- #define IWL2030_UCODE_API_MIN 5
-@@ -372,7 +372,7 @@ struct iwl_cfg iwl135_bgn_cfg = {
- 	.ht_params = &iwl2000_ht_params,
- };
- 
--MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL135_MODULE_FIRMWARE(IWL135_UCODE_API_MAX));
-+MODULE_FIRMWARE(IWL2000_MODULE_FIRMWARE(IWL2000_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL2030_MODULE_FIRMWARE(IWL2030_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL105_MODULE_FIRMWARE(IWL105_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL135_MODULE_FIRMWARE(IWL135_UCODE_API_OK));
-diff --git a/drivers/net/wireless/iwlwifi/iwl-5000.c b/drivers/net/wireless/iwlwifi/iwl-5000.c
-index f55fb2d..606213f 100644
---- a/drivers/net/wireless/iwlwifi/iwl-5000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-5000.c
-@@ -50,6 +50,10 @@
- #define IWL5000_UCODE_API_MAX 5
- #define IWL5150_UCODE_API_MAX 2
- 
-+/* Oldest version we won't warn about */
-+#define IWL5000_UCODE_API_OK 5
-+#define IWL5150_UCODE_API_OK 2
-+
- /* Lowest firmware API version supported */
- #define IWL5000_UCODE_API_MIN 1
- #define IWL5150_UCODE_API_MIN 1
-@@ -373,6 +377,7 @@ static struct iwl_ht_params iwl5000_ht_params = {
- #define IWL_DEVICE_5000						\
- 	.fw_name_pre = IWL5000_FW_PRE,				\
- 	.ucode_api_max = IWL5000_UCODE_API_MAX,			\
-+	.ucode_api_ok = IWL5000_UCODE_API_OK,			\
- 	.ucode_api_min = IWL5000_UCODE_API_MIN,			\
- 	.eeprom_ver = EEPROM_5000_EEPROM_VERSION,		\
- 	.eeprom_calib_ver = EEPROM_5000_TX_POWER_VERSION,	\
-@@ -416,6 +421,7 @@ struct iwl_cfg iwl5350_agn_cfg = {
- 	.name = "Intel(R) WiMAX/WiFi Link 5350 AGN",
- 	.fw_name_pre = IWL5000_FW_PRE,
- 	.ucode_api_max = IWL5000_UCODE_API_MAX,
-+	.ucode_api_ok = IWL5000_UCODE_API_OK,
- 	.ucode_api_min = IWL5000_UCODE_API_MIN,
- 	.eeprom_ver = EEPROM_5050_EEPROM_VERSION,
- 	.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,
-@@ -429,6 +435,7 @@ struct iwl_cfg iwl5350_agn_cfg = {
- #define IWL_DEVICE_5150						\
- 	.fw_name_pre = IWL5150_FW_PRE,				\
- 	.ucode_api_max = IWL5150_UCODE_API_MAX,			\
-+	.ucode_api_ok = IWL5150_UCODE_API_OK,			\
- 	.ucode_api_min = IWL5150_UCODE_API_MIN,			\
- 	.eeprom_ver = EEPROM_5050_EEPROM_VERSION,		\
- 	.eeprom_calib_ver = EEPROM_5050_TX_POWER_VERSION,	\
-@@ -450,5 +457,5 @@ struct iwl_cfg iwl5150_abg_cfg = {
- 	IWL_DEVICE_5150,
- };
- 
--MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_MAX));
-+MODULE_FIRMWARE(IWL5000_MODULE_FIRMWARE(IWL5000_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL5150_MODULE_FIRMWARE(IWL5150_UCODE_API_OK));
-diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
-index ae3ea32..9509298 100644
---- a/drivers/net/wireless/iwlwifi/iwl-6000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
-@@ -53,6 +53,8 @@
- /* Oldest version we won't warn about */
- #define IWL6000_UCODE_API_OK 4
- #define IWL6000G2_UCODE_API_OK 5
-+#define IWL6050_UCODE_API_OK 5
-+#define IWL6000G2B_UCODE_API_OK 6
- 
- /* Lowest firmware API version supported */
- #define IWL6000_UCODE_API_MIN 4
-@@ -359,7 +361,7 @@ static struct iwl_bt_params iwl6000_bt_params = {
- #define IWL_DEVICE_6005						\
- 	.fw_name_pre = IWL6005_FW_PRE,				\
- 	.ucode_api_max = IWL6000G2_UCODE_API_MAX,		\
--	.ucode_api_ok = IWL6000G2_UCODE_API_OK,			\
-+	.ucode_api_ok = IWL6000G2B_UCODE_API_OK,		\
- 	.ucode_api_min = IWL6000G2_UCODE_API_MIN,		\
- 	.eeprom_ver = EEPROM_6005_EEPROM_VERSION,		\
- 	.eeprom_calib_ver = EEPROM_6005_TX_POWER_VERSION,	\
-@@ -573,6 +575,6 @@ struct iwl_cfg iwl6000_3agn_cfg = {
- };
- 
- MODULE_FIRMWARE(IWL6000_MODULE_FIRMWARE(IWL6000_UCODE_API_OK));
--MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX));
--MODULE_FIRMWARE(IWL6030_MODULE_FIRMWARE(IWL6000G2_UCODE_API_MAX));
-+MODULE_FIRMWARE(IWL6050_MODULE_FIRMWARE(IWL6050_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL6005_MODULE_FIRMWARE(IWL6000G2_UCODE_API_OK));
-+MODULE_FIRMWARE(IWL6030_MODULE_FIRMWARE(IWL6000G2B_UCODE_API_OK));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0160-iwlwifi-use-6000G2B-for-6030-device-series.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0160-iwlwifi-use-6000G2B-for-6030-device-series.patch
deleted file mode 100644
index 94d460a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0160-iwlwifi-use-6000G2B-for-6030-device-series.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 4d665b9d5d7be0652d0942fe8bd0ea3bd3d73ebd Mon Sep 17 00:00:00 2001
-From: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Date: Wed, 25 Apr 2012 08:10:08 -0700
-Subject: [PATCH 160/165] iwlwifi: use 6000G2B for 6030 device series
-
-commit 1ed2ec37b44e86eaa8e0a03b908a39c80f65ee45 upstream.
-
-"iwlwifi: use correct released ucode version" change
-the ucode api ok from 6000G2 to 6000G2B, but it shall belong
-to 6030 device series, not the 6005 device series. Fix it
-
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-6000.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
-index 9509298..b4f809c 100644
---- a/drivers/net/wireless/iwlwifi/iwl-6000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
-@@ -361,7 +361,7 @@ static struct iwl_bt_params iwl6000_bt_params = {
- #define IWL_DEVICE_6005						\
- 	.fw_name_pre = IWL6005_FW_PRE,				\
- 	.ucode_api_max = IWL6000G2_UCODE_API_MAX,		\
--	.ucode_api_ok = IWL6000G2B_UCODE_API_OK,		\
-+	.ucode_api_ok = IWL6000G2_UCODE_API_OK,			\
- 	.ucode_api_min = IWL6000G2_UCODE_API_MIN,		\
- 	.eeprom_ver = EEPROM_6005_EEPROM_VERSION,		\
- 	.eeprom_calib_ver = EEPROM_6005_TX_POWER_VERSION,	\
-@@ -402,7 +402,7 @@ struct iwl_cfg iwl6005_2agn_d_cfg = {
- #define IWL_DEVICE_6030						\
- 	.fw_name_pre = IWL6030_FW_PRE,				\
- 	.ucode_api_max = IWL6000G2_UCODE_API_MAX,		\
--	.ucode_api_ok = IWL6000G2_UCODE_API_OK,			\
-+	.ucode_api_ok = IWL6000G2B_UCODE_API_OK,		\
- 	.ucode_api_min = IWL6000G2_UCODE_API_MIN,		\
- 	.eeprom_ver = EEPROM_6030_EEPROM_VERSION,		\
- 	.eeprom_calib_ver = EEPROM_6030_TX_POWER_VERSION,	\
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0161-exit_signal-simplify-the-we-have-changed-execution-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0161-exit_signal-simplify-the-we-have-changed-execution-d.patch
deleted file mode 100644
index 228a391..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0161-exit_signal-simplify-the-we-have-changed-execution-d.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 24b4ef6e688f21346c5385ef56f4d9bc8c9e4c2c Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Mon, 19 Mar 2012 17:03:22 +0100
-Subject: [PATCH 161/165] exit_signal: simplify the "we have changed execution
- domain" logic
-
-commit e636825346b36a07ccfc8e30946d52855e21f681 upstream.
-
-exit_notify() checks "tsk->self_exec_id != tsk->parent_exec_id"
-to handle the "we have changed execution domain" case.
-
-We can change do_thread() to always set ->exit_signal = SIGCHLD
-and remove this check to simplify the code.
-
-We could change setup_new_exec() instead, this looks more logical
-because it increments ->self_exec_id. But note that de_thread()
-already resets ->exit_signal if it changes the leader, let's keep
-both changes close to each other.
-
-Note that we change ->exit_signal lockless, this changes the rules.
-Thereafter ->exit_signal is not stable under tasklist but this is
-fine, the only possible change is OLDSIG -> SIGCHLD. This can race
-with eligible_child() but the race is harmless. We can race with
-reparent_leader() which changes our ->exit_signal in parallel, but
-it does the same change to SIGCHLD.
-
-The noticeable user-visible change is that the execing task is not
-"visible" to do_wait()->eligible_child(__WCLONE) right after exec.
-To me this looks more logical, and this is consistent with mt case.
-
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/exec.c     |    3 +++
- kernel/exit.c |    7 +------
- 2 files changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/fs/exec.c b/fs/exec.c
-index 3625464..160cd2f 100644
---- a/fs/exec.c
-+++ b/fs/exec.c
-@@ -973,6 +973,9 @@ static int de_thread(struct task_struct *tsk)
- 	sig->notify_count = 0;
- 
- no_thread_group:
-+	/* we have changed execution domain */
-+	tsk->exit_signal = SIGCHLD;
-+
- 	if (current->mm)
- 		setmax_mm_hiwater_rss(&sig->maxrss, current->mm);
- 
-diff --git a/kernel/exit.c b/kernel/exit.c
-index e6e01b9..ab66cb0 100644
---- a/kernel/exit.c
-+++ b/kernel/exit.c
-@@ -828,14 +828,9 @@ static void exit_notify(struct task_struct *tsk, int group_dead)
- 	 * If the parent exec id doesn't match the exec id we saved
- 	 * when we started then we know the parent has changed security
- 	 * domain.
--	 *
--	 * If our self_exec id doesn't match our parent_exec_id then
--	 * we have changed execution domain as these two values started
--	 * the same after a fork.
- 	 */
- 	if (thread_group_leader(tsk) && tsk->exit_signal != SIGCHLD &&
--	    (tsk->parent_exec_id != tsk->real_parent->self_exec_id ||
--	     tsk->self_exec_id != tsk->parent_exec_id))
-+	    tsk->parent_exec_id != tsk->real_parent->self_exec_id)
- 		tsk->exit_signal = SIGCHLD;
- 
- 	if (unlikely(tsk->ptrace)) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0162-exit_signal-fix-the-parent-has-changed-security-doma.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0162-exit_signal-fix-the-parent-has-changed-security-doma.patch
deleted file mode 100644
index 2942964..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0162-exit_signal-fix-the-parent-has-changed-security-doma.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From a24587831e14c94ca7bc3d947ecea53269b37d96 Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Mon, 19 Mar 2012 17:03:41 +0100
-Subject: [PATCH 162/165] exit_signal: fix the "parent has changed security
- domain" logic
-
-commit b6e238dceed36891cc633167afe7151f1f3d83c5 upstream.
-
-exit_notify() changes ->exit_signal if the parent already did exec.
-This doesn't really work, we are not going to send the signal now
-if there is another live thread or the exiting task is traced. The
-parent can exec before the last dies or the tracer detaches.
-
-Move this check into do_notify_parent() which actually sends the
-signal.
-
-The user-visible change is that we do not change ->exit_signal,
-and thus the exiting task is still "clone children" for
-do_wait()->eligible_child(__WCLONE). Hopefully this is fine, the
-current logic is racy anyway.
-
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/exit.c   |   14 --------------
- kernel/signal.c |    9 +++++++++
- 2 files changed, 9 insertions(+), 14 deletions(-)
-
-diff --git a/kernel/exit.c b/kernel/exit.c
-index ab66cb0..5a8a66e 100644
---- a/kernel/exit.c
-+++ b/kernel/exit.c
-@@ -819,20 +819,6 @@ static void exit_notify(struct task_struct *tsk, int group_dead)
- 	if (group_dead)
- 		kill_orphaned_pgrp(tsk->group_leader, NULL);
- 
--	/* Let father know we died
--	 *
--	 * Thread signals are configurable, but you aren't going to use
--	 * that to send signals to arbitrary processes.
--	 * That stops right now.
--	 *
--	 * If the parent exec id doesn't match the exec id we saved
--	 * when we started then we know the parent has changed security
--	 * domain.
--	 */
--	if (thread_group_leader(tsk) && tsk->exit_signal != SIGCHLD &&
--	    tsk->parent_exec_id != tsk->real_parent->self_exec_id)
--		tsk->exit_signal = SIGCHLD;
--
- 	if (unlikely(tsk->ptrace)) {
- 		int sig = thread_group_leader(tsk) &&
- 				thread_group_empty(tsk) &&
-diff --git a/kernel/signal.c b/kernel/signal.c
-index 2065515..08e0b97 100644
---- a/kernel/signal.c
-+++ b/kernel/signal.c
-@@ -1610,6 +1610,15 @@ bool do_notify_parent(struct task_struct *tsk, int sig)
- 	BUG_ON(!tsk->ptrace &&
- 	       (tsk->group_leader != tsk || !thread_group_empty(tsk)));
- 
-+	if (sig != SIGCHLD) {
-+		/*
-+		 * This is only possible if parent == real_parent.
-+		 * Check if it has changed security domain.
-+		 */
-+		if (tsk->parent_exec_id != tsk->parent->self_exec_id)
-+			sig = SIGCHLD;
-+	}
-+
- 	info.si_signo = sig;
- 	info.si_errno = 0;
- 	/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0163-staging-r8712u-Fix-regression-caused-by-commit-8c213.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0163-staging-r8712u-Fix-regression-caused-by-commit-8c213.patch
deleted file mode 100644
index de44b79..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0163-staging-r8712u-Fix-regression-caused-by-commit-8c213.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 2bf1f9816fc88b740d28781d6aa902daa3e4d6b1 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sat, 25 Feb 2012 18:10:21 -0600
-Subject: [PATCH 163/165] staging: r8712u: Fix regression caused by commit
- 8c213fa
-
-commit 2080913e017ab9f88379d93fd09546ad95faf87b upstream.
-
-In commit 8c213fa "staging: r8712u: Use asynchronous firmware loading",
-the command to release the firmware was placed in the wrong routine.
-
-In combination with the bug introduced in commit a5ee652 "staging: r8712u:
-Interface-state not fully tracked", the driver attempts to upload firmware
-that had already been released. This bug is the source of one of the
-problems in https://bugs.archlinux.org/task/27996#comment89833.
-
-Tested-by: Alberto Lago Ballesteros <saniukeokusainaya at gmail.com>
-Tested-by: Adrian <agib at gmx.de>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/staging/rtl8712/os_intfs.c |    3 ---
- drivers/staging/rtl8712/usb_intf.c |    5 +++++
- 2 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
-index fb11743..4bb2797 100644
---- a/drivers/staging/rtl8712/os_intfs.c
-+++ b/drivers/staging/rtl8712/os_intfs.c
-@@ -476,9 +476,6 @@ static int netdev_close(struct net_device *pnetdev)
- 	r8712_free_assoc_resources(padapter);
- 	/*s2-4.*/
- 	r8712_free_network_queue(padapter);
--	release_firmware(padapter->fw);
--	/* never exit with a firmware callback pending */
--	wait_for_completion(&padapter->rtl8712_fw_ready);
- 	return 0;
- }
- 
-diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c
-index 9bade18..ec41d38 100644
---- a/drivers/staging/rtl8712/usb_intf.c
-+++ b/drivers/staging/rtl8712/usb_intf.c
-@@ -30,6 +30,7 @@
- 
- #include <linux/usb.h>
- #include <linux/module.h>
-+#include <linux/firmware.h>
- 
- #include "osdep_service.h"
- #include "drv_types.h"
-@@ -621,6 +622,10 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf)
- 	struct _adapter *padapter = netdev_priv(pnetdev);
- 	struct usb_device *udev = interface_to_usbdev(pusb_intf);
- 
-+	if (padapter->fw_found)
-+		release_firmware(padapter->fw);
-+	/* never exit with a firmware callback pending */
-+	wait_for_completion(&padapter->rtl8712_fw_ready);
- 	usb_set_intfdata(pusb_intf, NULL);
- 	if (padapter) {
- 		if (drvpriv.drv_registered == true)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0164-smsc95xx-mark-link-down-on-startup-and-let-PHY-inter.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0164-smsc95xx-mark-link-down-on-startup-and-let-PHY-inter.patch
deleted file mode 100644
index 01c337d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0164-smsc95xx-mark-link-down-on-startup-and-let-PHY-inter.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0f1ae32284c0946f9ea7acabb3177ac20b22b9e5 Mon Sep 17 00:00:00 2001
-From: Paolo Pisati <paolo.pisati at canonical.com>
-Date: Mon, 23 Apr 2012 04:05:20 +0000
-Subject: [PATCH 164/165] smsc95xx: mark link down on startup and let PHY
- interrupt deal with carrier changes
-
-commit 07d69d4238418746a7b85c5d05ec17c658a2a390 upstream.
-
-Without this patch sysfs reports the cable as present
-
-flag at flag-desktop:~$ cat /sys/class/net/eth0/carrier
-1
-
-while it's not:
-
-flag at flag-desktop:~$ sudo mii-tool eth0
-eth0: no link
-
-Tested on my Beagle XM.
-
-v2: added mantainer to the list of recipient
-
-Signed-off-by: Paolo Pisati <paolo.pisati at canonical.com>
-Acked-by: Steve Glendinning <steve.glendinning at shawell.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/smsc95xx.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/usb/smsc95xx.c b/drivers/net/usb/smsc95xx.c
-index eff6767..55b3218 100644
---- a/drivers/net/usb/smsc95xx.c
-+++ b/drivers/net/usb/smsc95xx.c
-@@ -1190,7 +1190,7 @@ static const struct driver_info smsc95xx_info = {
- 	.rx_fixup	= smsc95xx_rx_fixup,
- 	.tx_fixup	= smsc95xx_tx_fixup,
- 	.status		= smsc95xx_status,
--	.flags		= FLAG_ETHER | FLAG_SEND_ZLP,
-+	.flags		= FLAG_ETHER | FLAG_SEND_ZLP | FLAG_LINK_INTR,
- };
- 
- static const struct usb_device_id products[] = {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0165-Linux-3.2.17.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0165-Linux-3.2.17.patch
deleted file mode 100644
index 2cb7e1c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.17/0165-Linux-3.2.17.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 4780abf2e3c25a099dd269b676d9696763f3eed6 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Fri, 11 May 2012 13:15:38 +0100
-Subject: [PATCH 165/165] Linux 3.2.17
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 3da29cb..4c4efa3 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 16
-+SUBLEVEL = 17
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0001-regulator-Fix-the-logic-to-ensure-new-voltage-settin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0001-regulator-Fix-the-logic-to-ensure-new-voltage-settin.patch
deleted file mode 100644
index 444cb56..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0001-regulator-Fix-the-logic-to-ensure-new-voltage-settin.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 94383ff64ebeaa09055462cb48260eb2831235ef Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin at gmail.com>
-Date: Wed, 11 Apr 2012 20:53:58 +0800
-Subject: [PATCH 01/56] regulator: Fix the logic to ensure new voltage setting
- in valid range
-
-commit f55205f4d4a8823a11bb8b37ef2ecbd78fb09463 upstream.
-
-I think this is a typo.
-To ensure new voltage setting won't greater than desc->max,
-the equation should be desc->min + desc->step * new_val <= desc->max.
-
-Signed-off-by: Axel Lin <axel.lin at gmail.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/regulator/max8997.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/regulator/max8997.c b/drivers/regulator/max8997.c
-index 6176129..8cba82d 100644
---- a/drivers/regulator/max8997.c
-+++ b/drivers/regulator/max8997.c
-@@ -689,7 +689,7 @@ static int max8997_set_voltage_buck(struct regulator_dev *rdev,
- 		}
- 
- 		new_val++;
--	} while (desc->min + desc->step + new_val <= desc->max);
-+	} while (desc->min + desc->step * new_val <= desc->max);
- 
- 	new_idx = tmp_idx;
- 	new_val = tmp_val;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0002-ARM-OMAP-Revert-ARM-OMAP-ctrl-Fix-CONTROL_DSIPHY-reg.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0002-ARM-OMAP-Revert-ARM-OMAP-ctrl-Fix-CONTROL_DSIPHY-reg.patch
deleted file mode 100644
index eb9eb3c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0002-ARM-OMAP-Revert-ARM-OMAP-ctrl-Fix-CONTROL_DSIPHY-reg.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From c0d0663f26ba8ed987704a454a360b1a5997e1d7 Mon Sep 17 00:00:00 2001
-From: Archit Taneja <archit at ti.com>
-Date: Thu, 19 Apr 2012 17:39:16 +0530
-Subject: [PATCH 02/56] ARM: OMAP: Revert "ARM: OMAP: ctrl: Fix CONTROL_DSIPHY
- register fields"
-
-commit 08ca7444f589bedf9ad5d82883e5d0754852d73b upstream.
-
-This reverts commit 46f8c3c7e95c0d30d95911e7975ddc4f93b3e237.
-
-The commit above swapped the DSI1_PPID and DSI2_PPID register fields in
-CONTROL_DSIPHY to be in sync with the newer public OMAP TRMs(after version V).
-
-With this commit, contention errors were reported on DSI lanes some OMAP4 SDPs.
-After probing the DSI lanes on OMAP4 SDP, it was seen that setting bits in the
-DSI2_PPID field was pulling up voltage on DSI1 lanes, and DSI1_PPID field was
-pulling up voltage on DSI2 lanes.
-
-This proves that the current version of OMAP4 TRM is incorrect, swap the
-position of register fields according to the older TRM versions as they were
-correct.
-
-Acked-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Signed-off-by: Archit Taneja <archit at ti.com>
-Signed-off-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- .../include/mach/ctrl_module_pad_core_44xx.h       |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h b/arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h
-index 1e2d332..c88420d 100644
---- a/arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h
-+++ b/arch/arm/mach-omap2/include/mach/ctrl_module_pad_core_44xx.h
-@@ -941,10 +941,10 @@
- #define OMAP4_DSI2_LANEENABLE_MASK				(0x7 << 29)
- #define OMAP4_DSI1_LANEENABLE_SHIFT				24
- #define OMAP4_DSI1_LANEENABLE_MASK				(0x1f << 24)
--#define OMAP4_DSI2_PIPD_SHIFT					19
--#define OMAP4_DSI2_PIPD_MASK					(0x1f << 19)
--#define OMAP4_DSI1_PIPD_SHIFT					14
--#define OMAP4_DSI1_PIPD_MASK					(0x1f << 14)
-+#define OMAP4_DSI1_PIPD_SHIFT					19
-+#define OMAP4_DSI1_PIPD_MASK					(0x1f << 19)
-+#define OMAP4_DSI2_PIPD_SHIFT					14
-+#define OMAP4_DSI2_PIPD_MASK					(0x1f << 14)
- 
- /* CONTROL_MCBSPLP */
- #define OMAP4_ALBCTRLRX_FSX_SHIFT				31
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0003-ALSA-echoaudio-Remove-incorrect-part-of-assertion.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0003-ALSA-echoaudio-Remove-incorrect-part-of-assertion.patch
deleted file mode 100644
index 3e8bed3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0003-ALSA-echoaudio-Remove-incorrect-part-of-assertion.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From d88c1668a535d2abb3d201b8a521e46eff3f5e0e Mon Sep 17 00:00:00 2001
-From: Mark Hills <mark at pogo.org.uk>
-Date: Mon, 30 Apr 2012 19:39:22 +0100
-Subject: [PATCH 03/56] ALSA: echoaudio: Remove incorrect part of assertion
-
-commit c914f55f7cdfafe9d7d5b248751902c7ab57691e upstream.
-
-This assertion seems to imply that chip->dsp_code_to_load is a pointer.
-It's actually an integer handle on the actual firmware, and 0 has no
-special meaning.
-
-The assertion prevents initialisation of a Darla20 card, but would also
-affect other models. It seems it was introduced in commit dd7b254d.
-
-ALSA sound/pci/echoaudio/echoaudio.c:2061 Echoaudio driver starting...
-ALSA sound/pci/echoaudio/echoaudio.c:1969 chip=ebe4e000
-ALSA sound/pci/echoaudio/echoaudio.c:2007 pci=ed568000 irq=19 subdev=0010 Init hardware...
-ALSA sound/pci/echoaudio/darla20_dsp.c:36 init_hw() - Darla20
-------------[ cut here ]------------
-WARNING: at sound/pci/echoaudio/echoaudio_dsp.c:478 init_hw+0x1d1/0x86c [snd_darla20]()
-Hardware name: Dell DM051
-BUG? (!chip->dsp_code_to_load || !chip->comm_page)
-
-Signed-off-by: Mark Hills <mark at pogo.org.uk>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/echoaudio/echoaudio_dsp.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sound/pci/echoaudio/echoaudio_dsp.c b/sound/pci/echoaudio/echoaudio_dsp.c
-index 64417a7..d8c670c 100644
---- a/sound/pci/echoaudio/echoaudio_dsp.c
-+++ b/sound/pci/echoaudio/echoaudio_dsp.c
-@@ -475,7 +475,7 @@ static int load_firmware(struct echoaudio *chip)
- 	const struct firmware *fw;
- 	int box_type, err;
- 
--	if (snd_BUG_ON(!chip->dsp_code_to_load || !chip->comm_page))
-+	if (snd_BUG_ON(!chip->comm_page))
- 		return -EPERM;
- 
- 	/* See if the ASIC is present and working - only if the DSP is already loaded */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0004-ARM-orion5x-Fix-GPIO-enable-bits-for-MPP9.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0004-ARM-orion5x-Fix-GPIO-enable-bits-for-MPP9.patch
deleted file mode 100644
index da89cfa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0004-ARM-orion5x-Fix-GPIO-enable-bits-for-MPP9.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 900f27b9d47023edb709aad271b5d7516bb7c990 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 8 Apr 2012 05:18:53 +0100
-Subject: [PATCH 04/56] ARM: orion5x: Fix GPIO enable bits for MPP9
-
-commit 48d99f47a81a66bdd61a348c7fe8df5a7afdf5f3 upstream.
-
-Commit 554cdaefd1cf7bb54b209c4e68c7cec87ce442a9 ('ARM: orion5x: Refactor
-mpp code to use common orion platform mpp.') seems to have accidentally
-inverted the GPIO valid bits for MPP9 (only).  For the mv2120 platform
-which uses MPP9 as a GPIO LED device, this results in the error:
-
-[   12.711476] leds-gpio: probe of leds-gpio failed with error -22
-
-Reported-by: Henry von Tresckow <hvontres at gmail.com>
-References: http://bugs.debian.org/667446
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Tested-by: Hans Henry von Tresckow <hvontres at gmail.com>
-Signed-off-by: Jason Cooper <jason at lakedaemon.net>
----
- arch/arm/mach-orion5x/mpp.h |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-orion5x/mpp.h b/arch/arm/mach-orion5x/mpp.h
-index eac6897..db70e79 100644
---- a/arch/arm/mach-orion5x/mpp.h
-+++ b/arch/arm/mach-orion5x/mpp.h
-@@ -65,8 +65,8 @@
- #define MPP8_GIGE               MPP(8,  0x1, 0, 0, 1,   1,   1)
- 
- #define MPP9_UNUSED		MPP(9,  0x0, 0, 0, 1,   1,   1)
--#define MPP9_GPIO		MPP(9,  0x0, 0, 0, 1,   1,   1)
--#define MPP9_GIGE               MPP(9,  0x1, 1, 1, 1,   1,   1)
-+#define MPP9_GPIO		MPP(9,  0x0, 1, 1, 1,   1,   1)
-+#define MPP9_GIGE               MPP(9,  0x1, 0, 0, 1,   1,   1)
- 
- #define MPP10_UNUSED		MPP(10, 0x0, 0, 0, 1,   1,   1)
- #define MPP10_GPIO		MPP(10, 0x0, 1, 1, 1,   1,   1)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0005-ALSA-HDA-Lessen-CPU-usage-when-waiting-for-chip-to-r.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0005-ALSA-HDA-Lessen-CPU-usage-when-waiting-for-chip-to-r.patch
deleted file mode 100644
index 9cdf2a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0005-ALSA-HDA-Lessen-CPU-usage-when-waiting-for-chip-to-r.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 3c3471703a78272a055d786ba1474384494bb7fc Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Fri, 4 May 2012 11:05:55 +0200
-Subject: [PATCH 05/56] ALSA: HDA: Lessen CPU usage when waiting for chip to
- respond
-
-commit 32cf4023e689ad5b3a81a749d8cc99d7f184cb99 upstream.
-
-When an IRQ for some reason gets lost, we wait up to a second using
-udelay, which is CPU intensive. This patch improves the situation by
-waiting about 30 ms in the CPU intensive mode, then stepping down to
-using msleep(2) instead. In essence, we trade some granularity in
-exchange for less CPU consumption when the waiting time is a bit longer.
-
-As a result, PulseAudio should no longer be killed by the kernel
-for taking up to much RT-prio CPU time. At least not for *this* reason.
-
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Tested-by: Arun Raghavan <arun.raghavan at collabora.co.uk>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/hda_intel.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
-index 192e6c0..53345bc 100644
---- a/sound/pci/hda/hda_intel.c
-+++ b/sound/pci/hda/hda_intel.c
-@@ -769,11 +769,13 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus,
- {
- 	struct azx *chip = bus->private_data;
- 	unsigned long timeout;
-+	unsigned long loopcounter;
- 	int do_poll = 0;
- 
-  again:
- 	timeout = jiffies + msecs_to_jiffies(1000);
--	for (;;) {
-+
-+	for (loopcounter = 0;; loopcounter++) {
- 		if (chip->polling_mode || do_poll) {
- 			spin_lock_irq(&chip->reg_lock);
- 			azx_update_rirb(chip);
-@@ -789,7 +791,7 @@ static unsigned int azx_rirb_get_response(struct hda_bus *bus,
- 		}
- 		if (time_after(jiffies, timeout))
- 			break;
--		if (bus->needs_damn_long_delay)
-+		if (bus->needs_damn_long_delay || loopcounter > 3000)
- 			msleep(2); /* temporary workaround */
- 		else {
- 			udelay(10);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0006-percpu-pcpu_embed_first_chunk-should-free-unused-par.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0006-percpu-pcpu_embed_first_chunk-should-free-unused-par.patch
deleted file mode 100644
index 26c5bd4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0006-percpu-pcpu_embed_first_chunk-should-free-unused-par.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c49984f9b2cba3ae4eb6ac7056e45cde17629a20 Mon Sep 17 00:00:00 2001
-From: Tejun Heo <tj at kernel.org>
-Date: Fri, 27 Apr 2012 08:42:53 -0700
-Subject: [PATCH 06/56] percpu: pcpu_embed_first_chunk() should free unused
- parts after all allocs are complete
-
-commit 42b64281453249dac52861f9b97d18552a7ec62b upstream.
-
-pcpu_embed_first_chunk() allocates memory for each node, copies percpu
-data and frees unused portions of it before proceeding to the next
-group.  This assumes that allocations for different nodes doesn't
-overlap; however, depending on memory topology, the bootmem allocator
-may end up allocating memory from a different node than the requested
-one which may overlap with the portion freed from one of the previous
-percpu areas.  This leads to percpu groups for different nodes
-overlapping which is a serious bug.
-
-This patch separates out copy & partial free from the allocation loop
-such that all allocations are complete before partial frees happen.
-
-This also fixes overlapping frees which could happen on allocation
-failure path - out_free_areas path frees whole groups but the groups
-could have portions freed at that point.
-
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Reported-by: "Pavel V. Panteleev" <pp_84 at mail.ru>
-Tested-by: "Pavel V. Panteleev" <pp_84 at mail.ru>
-LKML-Reference: <E1SNhwY-0007ui-V7.pp_84-mail-ru at f220.mail.ru>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/percpu.c |   10 ++++++++++
- 1 files changed, 10 insertions(+), 0 deletions(-)
-
-diff --git a/mm/percpu.c b/mm/percpu.c
-index 716eb4a..5c29750 100644
---- a/mm/percpu.c
-+++ b/mm/percpu.c
-@@ -1642,6 +1642,16 @@ int __init pcpu_embed_first_chunk(size_t reserved_size, size_t dyn_size,
- 		areas[group] = ptr;
- 
- 		base = min(ptr, base);
-+	}
-+
-+	/*
-+	 * Copy data and free unused parts.  This should happen after all
-+	 * allocations are complete; otherwise, we may end up with
-+	 * overlapping groups.
-+	 */
-+	for (group = 0; group < ai->nr_groups; group++) {
-+		struct pcpu_group_info *gi = &ai->groups[group];
-+		void *ptr = areas[group];
- 
- 		for (i = 0; i < gi->nr_units; i++, ptr += ai->unit_size) {
- 			if (gi->cpu_map[i] == NR_CPUS) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0007-hugetlb-prevent-BUG_ON-in-hugetlb_fault-hugetlb_cow.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0007-hugetlb-prevent-BUG_ON-in-hugetlb_fault-hugetlb_cow.patch
deleted file mode 100644
index c7f28af..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0007-hugetlb-prevent-BUG_ON-in-hugetlb_fault-hugetlb_cow.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 264ef98284920c3c4b7139ce642f41f9b253bc24 Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Thu, 10 May 2012 13:01:44 -0700
-Subject: [PATCH 07/56] hugetlb: prevent BUG_ON in hugetlb_fault() ->
- hugetlb_cow()
-
-commit 4998a6c0edce7fae9c0a5463f6ec3fa585258ee7 upstream.
-
-Commit 66aebce747eaf ("hugetlb: fix race condition in hugetlb_fault()")
-added code to avoid a race condition by elevating the page refcount in
-hugetlb_fault() while calling hugetlb_cow().
-
-However, one code path in hugetlb_cow() includes an assertion that the
-page count is 1, whereas it may now also have the value 2 in this path.
-
-The consensus is that this BUG_ON has served its purpose, so rather than
-extending it to cover both cases, we just remove it.
-
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Acked-by: Mel Gorman <mel at csn.ul.ie>
-Acked-by: Hillf Danton <dhillf at gmail.com>
-Acked-by: Hugh Dickins <hughd at google.com>
-Cc: Michal Hocko <mhocko at suse.cz>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/hugetlb.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index bd936ed..7120c2e 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -2405,7 +2405,6 @@ retry_avoidcopy:
- 		if (outside_reserve) {
- 			BUG_ON(huge_pte_none(pte));
- 			if (unmap_ref_private(mm, vma, old_page, address)) {
--				BUG_ON(page_count(old_page) != 1);
- 				BUG_ON(huge_pte_none(pte));
- 				spin_lock(&mm->page_table_lock);
- 				goto retry_avoidcopy;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0008-namespaces-pid_ns-fix-leakage-on-fork-failure.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0008-namespaces-pid_ns-fix-leakage-on-fork-failure.patch
deleted file mode 100644
index 6810b96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0008-namespaces-pid_ns-fix-leakage-on-fork-failure.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 524ae74866597ebc0894b12ce456d8a53f80f533 Mon Sep 17 00:00:00 2001
-From: Mike Galbraith <efault at gmx.de>
-Date: Thu, 10 May 2012 13:01:45 -0700
-Subject: [PATCH 08/56] namespaces, pid_ns: fix leakage on fork() failure
-
-commit 5e2bf0142231194d36fdc9596b36a261ed2b9fe7 upstream.
-
-Fork() failure post namespace creation for a child cloned with
-CLONE_NEWPID leaks pid_namespace/mnt_cache due to proc being mounted
-during creation, but not unmounted during cleanup.  Call
-pid_ns_release_proc() during cleanup.
-
-Signed-off-by: Mike Galbraith <efault at gmx.de>
-Acked-by: Oleg Nesterov <oleg at redhat.com>
-Reviewed-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Cc: Pavel Emelyanov <xemul at parallels.com>
-Cc: Cyrill Gorcunov <gorcunov at openvz.org>
-Cc: Louis Rilling <louis.rilling at kerlabs.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/fork.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 0acf42c0..26f1ab0 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -47,6 +47,7 @@
- #include <linux/audit.h>
- #include <linux/memcontrol.h>
- #include <linux/ftrace.h>
-+#include <linux/proc_fs.h>
- #include <linux/profile.h>
- #include <linux/rmap.h>
- #include <linux/ksm.h>
-@@ -1387,6 +1388,8 @@ bad_fork_cleanup_io:
- 	if (p->io_context)
- 		exit_io_context(p);
- bad_fork_cleanup_namespaces:
-+	if (unlikely(clone_flags & CLONE_NEWPID))
-+		pid_ns_release_proc(p->nsproxy->pid_ns);
- 	exit_task_namespaces(p);
- bad_fork_cleanup_mm:
- 	if (p->mm)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0009-mm-nobootmem-fix-sign-extend-problem-in-__free_pages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0009-mm-nobootmem-fix-sign-extend-problem-in-__free_pages.patch
deleted file mode 100644
index c6208eb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0009-mm-nobootmem-fix-sign-extend-problem-in-__free_pages.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 06ae235e974156cc9304c169f89bba4d6ea4f6e4 Mon Sep 17 00:00:00 2001
-From: Russ Anderson <rja at sgi.com>
-Date: Thu, 10 May 2012 13:01:46 -0700
-Subject: [PATCH 09/56] mm: nobootmem: fix sign extend problem in
- __free_pages_memory()
-
-commit 6bc2e853c6b46a6041980d58200ad9b0a73a60ff upstream.
-
-Systems with 8 TBytes of memory or greater can hit a problem where only
-the the first 8 TB of memory shows up.  This is due to "int i" being
-smaller than "unsigned long start_aligned", causing the high bits to be
-dropped.
-
-The fix is to change `i' to unsigned long to match start_aligned
-and end_aligned.
-
-Thanks to Jack Steiner for assistance tracking this down.
-
-Signed-off-by: Russ Anderson <rja at sgi.com>
-Cc: Jack Steiner <steiner at sgi.com>
-Cc: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Tejun Heo <tj at kernel.org>
-Cc: David S. Miller <davem at davemloft.net>
-Cc: Yinghai Lu <yinghai at kernel.org>
-Cc: Gavin Shan <shangw at linux.vnet.ibm.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/nobootmem.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/mm/nobootmem.c b/mm/nobootmem.c
-index 7fa41b4..07c08c4 100644
---- a/mm/nobootmem.c
-+++ b/mm/nobootmem.c
-@@ -83,8 +83,7 @@ void __init free_bootmem_late(unsigned long addr, unsigned long size)
- 
- static void __init __free_pages_memory(unsigned long start, unsigned long end)
- {
--	int i;
--	unsigned long start_aligned, end_aligned;
-+	unsigned long i, start_aligned, end_aligned;
- 	int order = ilog2(BITS_PER_LONG);
- 
- 	start_aligned = (start + (BITS_PER_LONG - 1)) & ~(BITS_PER_LONG - 1);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0010-asix-Fix-tx-transfer-padding-for-full-speed-USB.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0010-asix-Fix-tx-transfer-padding-for-full-speed-USB.patch
deleted file mode 100644
index c08dcb3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0010-asix-Fix-tx-transfer-padding-for-full-speed-USB.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From ccd532b836540eb1f0e1d9eee4a87b8403d729c1 Mon Sep 17 00:00:00 2001
-From: Ingo van Lil <inguin at gmx.de>
-Date: Mon, 23 Apr 2012 22:05:38 +0000
-Subject: [PATCH 10/56] asix: Fix tx transfer padding for full-speed USB
-
-[ Upstream commit 2a5809499e35b53a6044fd34e72b242688b7a862 ]
-
-The asix.c USB Ethernet driver avoids ending a tx transfer with a zero-
-length packet by appending a four-byte padding to transfers whose length
-is a multiple of maxpacket. However, the hard-coded 512 byte maxpacket
-length is valid for high-speed USB only; full-speed USB uses 64 byte
-packets.
-
-Signed-off-by: Ingo van Lil <inguin at gmx.de>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/asix.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
-index fda4be2..a9abee8 100644
---- a/drivers/net/usb/asix.c
-+++ b/drivers/net/usb/asix.c
-@@ -403,7 +403,7 @@ static struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
- 	u32 packet_len;
- 	u32 padbytes = 0xffff0000;
- 
--	padlen = ((skb->len + 4) % 512) ? 0 : 4;
-+	padlen = ((skb->len + 4) & (dev->maxpacket - 1)) ? 0 : 4;
- 
- 	if ((!skb_cloned(skb)) &&
- 	    ((headroom + tailroom) >= (4 + padlen))) {
-@@ -425,7 +425,7 @@ static struct sk_buff *asix_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
- 	cpu_to_le32s(&packet_len);
- 	skb_copy_to_linear_data(skb, &packet_len, sizeof(packet_len));
- 
--	if ((skb->len % 512) == 0) {
-+	if (padlen) {
- 		cpu_to_le32s(&padbytes);
- 		memcpy(skb_tail_pointer(skb), &padbytes, sizeof(padbytes));
- 		skb_put(skb, sizeof(padbytes));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0011-netem-fix-possible-skb-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0011-netem-fix-possible-skb-leak.patch
deleted file mode 100644
index d57c44c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0011-netem-fix-possible-skb-leak.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From abb480a271308924f4174413f6d6969ecaaba892 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Sun, 29 Apr 2012 09:08:22 +0000
-Subject: [PATCH 11/56] netem: fix possible skb leak
-
-[ Upstream commit 116a0fc31c6c9b8fc821be5a96e5bf0b43260131 ]
-
-skb_checksum_help(skb) can return an error, we must free skb in this
-case. qdisc_drop(skb, sch) can also be feeded with a NULL skb (if
-skb_unshare() failed), so lets use this generic helper.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Stephen Hemminger <shemminger at osdl.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sched/sch_netem.c |    6 ++----
- 1 files changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
-index 7801b15..a489d8b 100644
---- a/net/sched/sch_netem.c
-+++ b/net/sched/sch_netem.c
-@@ -351,10 +351,8 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch)
- 	if (q->corrupt && q->corrupt >= get_crandom(&q->corrupt_cor)) {
- 		if (!(skb = skb_unshare(skb, GFP_ATOMIC)) ||
- 		    (skb->ip_summed == CHECKSUM_PARTIAL &&
--		     skb_checksum_help(skb))) {
--			sch->qstats.drops++;
--			return NET_XMIT_DROP;
--		}
-+		     skb_checksum_help(skb)))
-+			return qdisc_drop(skb, sch);
- 
- 		skb->data[net_random() % skb_headlen(skb)] ^= 1<<(net_random() % 8);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0012-net-In-unregister_netdevice_notifier-unregister-the-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0012-net-In-unregister_netdevice_notifier-unregister-the-.patch
deleted file mode 100644
index 0c1ea20..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0012-net-In-unregister_netdevice_notifier-unregister-the-.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From d2b1ac073ca1e2caabafe219d0d1f04f4a2d1467 Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Fri, 6 Apr 2012 15:33:35 +0000
-Subject: [PATCH 12/56] net: In unregister_netdevice_notifier unregister the
- netdevices.
-
-[ Upstream commit 7d3d43dab4e978d8d9ad1acf8af15c9b1c4b0f0f ]
-
-We already synthesize events in register_netdevice_notifier and synthesizing
-events in unregister_netdevice_notifier allows to us remove the need for
-special case cleanup code.
-
-This change should be safe as it adds no new cases for existing callers
-of unregiser_netdevice_notifier to handle.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/dev.c |   20 ++++++++++++++++++++
- 1 files changed, 20 insertions(+), 0 deletions(-)
-
-diff --git a/net/core/dev.c b/net/core/dev.c
-index cd5050e..61a7baa 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -1421,14 +1421,34 @@ EXPORT_SYMBOL(register_netdevice_notifier);
-  *	register_netdevice_notifier(). The notifier is unlinked into the
-  *	kernel structures and may then be reused. A negative errno code
-  *	is returned on a failure.
-+ *
-+ * 	After unregistering unregister and down device events are synthesized
-+ *	for all devices on the device list to the removed notifier to remove
-+ *	the need for special case cleanup code.
-  */
- 
- int unregister_netdevice_notifier(struct notifier_block *nb)
- {
-+	struct net_device *dev;
-+	struct net *net;
- 	int err;
- 
- 	rtnl_lock();
- 	err = raw_notifier_chain_unregister(&netdev_chain, nb);
-+	if (err)
-+		goto unlock;
-+
-+	for_each_net(net) {
-+		for_each_netdev(net, dev) {
-+			if (dev->flags & IFF_UP) {
-+				nb->notifier_call(nb, NETDEV_GOING_DOWN, dev);
-+				nb->notifier_call(nb, NETDEV_DOWN, dev);
-+			}
-+			nb->notifier_call(nb, NETDEV_UNREGISTER, dev);
-+			nb->notifier_call(nb, NETDEV_UNREGISTER_BATCH, dev);
-+		}
-+	}
-+unlock:
- 	rtnl_unlock();
- 	return err;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0013-net-l2tp-unlock-socket-lock-before-returning-from-l2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0013-net-l2tp-unlock-socket-lock-before-returning-from-l2.patch
deleted file mode 100644
index 199864f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0013-net-l2tp-unlock-socket-lock-before-returning-from-l2.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 1b3ded810906676f03b6eab986308b1cf5e6b135 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Wed, 2 May 2012 03:58:43 +0000
-Subject: [PATCH 13/56] net: l2tp: unlock socket lock before returning from
- l2tp_ip_sendmsg
-
-[ Upstream commit 84768edbb2721637620b2d84501bb0d5aed603f1 ]
-
-l2tp_ip_sendmsg could return without releasing socket lock, making it all the
-way to userspace, and generating the following warning:
-
-[  130.891594] ================================================
-[  130.894569] [ BUG: lock held when returning to user space! ]
-[  130.897257] 3.4.0-rc5-next-20120501-sasha #104 Tainted: G        W
-[  130.900336] ------------------------------------------------
-[  130.902996] trinity/8384 is leaving the kernel with locks still held!
-[  130.906106] 1 lock held by trinity/8384:
-[  130.907924]  #0:  (sk_lock-AF_INET){+.+.+.}, at: [<ffffffff82b9503f>] l2tp_ip_sendmsg+0x2f/0x550
-
-Introduced by commit 2f16270 ("l2tp: Fix locking in l2tp_ip.c").
-
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/l2tp/l2tp_ip.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
-index 55670ec..2a2a3e7 100644
---- a/net/l2tp/l2tp_ip.c
-+++ b/net/l2tp/l2tp_ip.c
-@@ -441,8 +441,9 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
- 
- 		daddr = lip->l2tp_addr.s_addr;
- 	} else {
-+		rc = -EDESTADDRREQ;
- 		if (sk->sk_state != TCP_ESTABLISHED)
--			return -EDESTADDRREQ;
-+			goto out;
- 
- 		daddr = inet->inet_daddr;
- 		connected = 1;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0014-sky2-propogate-rx-hash-when-packet-is-copied.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0014-sky2-propogate-rx-hash-when-packet-is-copied.patch
deleted file mode 100644
index 55d6ef9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0014-sky2-propogate-rx-hash-when-packet-is-copied.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 040442d719f91dcb002eaa1efaffbebd2fd44328 Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Mon, 30 Apr 2012 05:49:45 +0000
-Subject: [PATCH 14/56] sky2: propogate rx hash when packet is copied
-
-[ Upstream commit 3f42941b5d1d13542b1a755a9e4f633aa72e4d3e ]
-
-When a small packet is received, the driver copies it to a new skb to allow
-reusing the full size Rx buffer. The copy was propogating the checksum offload
-but not the receive hash information. The bug is impact was mostly harmless
-and therefore not observed until reviewing this area of code.
-
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/marvell/sky2.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
-index 7eb8a00..e1f4b65 100644
---- a/drivers/net/ethernet/marvell/sky2.c
-+++ b/drivers/net/ethernet/marvell/sky2.c
-@@ -2475,8 +2475,11 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2,
- 		skb_copy_from_linear_data(re->skb, skb->data, length);
- 		skb->ip_summed = re->skb->ip_summed;
- 		skb->csum = re->skb->csum;
-+		skb->rxhash = re->skb->rxhash;
-+
- 		pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
- 					       length, PCI_DMA_FROMDEVICE);
-+		re->skb->rxhash = 0;
- 		re->skb->ip_summed = CHECKSUM_NONE;
- 		skb_put(skb, length);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0015-sky2-fix-receive-length-error-in-mixed-non-VLAN-VLAN.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0015-sky2-fix-receive-length-error-in-mixed-non-VLAN-VLAN.patch
deleted file mode 100644
index ba0888d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0015-sky2-fix-receive-length-error-in-mixed-non-VLAN-VLAN.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 27f7b26b133f97629f82ce156d481a32a881472b Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Mon, 30 Apr 2012 06:47:37 +0000
-Subject: [PATCH 15/56] sky2: fix receive length error in mixed non-VLAN/VLAN
- traffic
-
-[ Upstream commit e072b3fad5f3915102c94628b4971f52ff99dd05 ]
-
-Bug: The VLAN bit of the MAC RX Status Word is unreliable in several older
-supported chips. Sometimes the VLAN bit is not set for valid VLAN packets
-and also sometimes the VLAN bit is set for non-VLAN packets that came after
-a VLAN packet. This results in a receive length error when VLAN hardware
-tagging is enabled.
-
-Fix: Variation on original fix proposed by Mirko.
-The VLAN information is decoded in the status loop, and can be
-applied to the received SKB there. This eliminates the need for the
-separate tag field in the interface data structure. The tag has to
-be copied and cleared if packet is copied. This version checked out
-with vlan and normal traffic.
-
-Note: vlan_tx_tag_present should be renamed vlan_tag_present, but that
-is outside scope of this.
-
-Reported-by: Mirko Lindner <mlindner at marvell.com>
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/marvell/sky2.c |   28 +++++++++++++++++-----------
- drivers/net/ethernet/marvell/sky2.h |    1 -
- 2 files changed, 17 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
-index e1f4b65..65c51ff 100644
---- a/drivers/net/ethernet/marvell/sky2.c
-+++ b/drivers/net/ethernet/marvell/sky2.c
-@@ -2476,9 +2476,11 @@ static struct sk_buff *receive_copy(struct sky2_port *sky2,
- 		skb->ip_summed = re->skb->ip_summed;
- 		skb->csum = re->skb->csum;
- 		skb->rxhash = re->skb->rxhash;
-+		skb->vlan_tci = re->skb->vlan_tci;
- 
- 		pci_dma_sync_single_for_device(sky2->hw->pdev, re->data_addr,
- 					       length, PCI_DMA_FROMDEVICE);
-+		re->skb->vlan_tci = 0;
- 		re->skb->rxhash = 0;
- 		re->skb->ip_summed = CHECKSUM_NONE;
- 		skb_put(skb, length);
-@@ -2564,9 +2566,6 @@ static struct sk_buff *sky2_receive(struct net_device *dev,
- 	struct sk_buff *skb = NULL;
- 	u16 count = (status & GMR_FS_LEN) >> 16;
- 
--	if (status & GMR_FS_VLAN)
--		count -= VLAN_HLEN;	/* Account for vlan tag */
--
- 	netif_printk(sky2, rx_status, KERN_DEBUG, dev,
- 		     "rx slot %u status 0x%x len %d\n",
- 		     sky2->rx_next, status, length);
-@@ -2574,6 +2573,9 @@ static struct sk_buff *sky2_receive(struct net_device *dev,
- 	sky2->rx_next = (sky2->rx_next + 1) % sky2->rx_pending;
- 	prefetch(sky2->rx_ring + sky2->rx_next);
- 
-+	if (vlan_tx_tag_present(re->skb))
-+		count -= VLAN_HLEN;	/* Account for vlan tag */
-+
- 	/* This chip has hardware problems that generates bogus status.
- 	 * So do only marginal checking and expect higher level protocols
- 	 * to handle crap frames.
-@@ -2631,11 +2633,8 @@ static inline void sky2_tx_done(struct net_device *dev, u16 last)
- }
- 
- static inline void sky2_skb_rx(const struct sky2_port *sky2,
--			       u32 status, struct sk_buff *skb)
-+			       struct sk_buff *skb)
- {
--	if (status & GMR_FS_VLAN)
--		__vlan_hwaccel_put_tag(skb, be16_to_cpu(sky2->rx_tag));
--
- 	if (skb->ip_summed == CHECKSUM_NONE)
- 		netif_receive_skb(skb);
- 	else
-@@ -2689,6 +2688,14 @@ static void sky2_rx_checksum(struct sky2_port *sky2, u32 status)
- 	}
- }
- 
-+static void sky2_rx_tag(struct sky2_port *sky2, u16 length)
-+{
-+	struct sk_buff *skb;
-+
-+	skb = sky2->rx_ring[sky2->rx_next].skb;
-+	__vlan_hwaccel_put_tag(skb, be16_to_cpu(length));
-+}
-+
- static void sky2_rx_hash(struct sky2_port *sky2, u32 status)
- {
- 	struct sk_buff *skb;
-@@ -2747,8 +2754,7 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do, u16 idx)
- 			}
- 
- 			skb->protocol = eth_type_trans(skb, dev);
--
--			sky2_skb_rx(sky2, status, skb);
-+			sky2_skb_rx(sky2, skb);
- 
- 			/* Stop after net poll weight */
- 			if (++work_done >= to_do)
-@@ -2756,11 +2762,11 @@ static int sky2_status_intr(struct sky2_hw *hw, int to_do, u16 idx)
- 			break;
- 
- 		case OP_RXVLAN:
--			sky2->rx_tag = length;
-+			sky2_rx_tag(sky2, length);
- 			break;
- 
- 		case OP_RXCHKSVLAN:
--			sky2->rx_tag = length;
-+			sky2_rx_tag(sky2, length);
- 			/* fall through */
- 		case OP_RXCHKS:
- 			if (likely(dev->features & NETIF_F_RXCSUM))
-diff --git a/drivers/net/ethernet/marvell/sky2.h b/drivers/net/ethernet/marvell/sky2.h
-index ff6f58b..3c896ce 100644
---- a/drivers/net/ethernet/marvell/sky2.h
-+++ b/drivers/net/ethernet/marvell/sky2.h
-@@ -2241,7 +2241,6 @@ struct sky2_port {
- 	u16		     rx_pending;
- 	u16		     rx_data_size;
- 	u16		     rx_nfrags;
--	u16		     rx_tag;
- 
- 	struct {
- 		unsigned long last;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0016-sungem-Fix-WakeOnLan.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0016-sungem-Fix-WakeOnLan.patch
deleted file mode 100644
index f750148..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0016-sungem-Fix-WakeOnLan.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 4fb3cd4329db7cba66335fe4d74f5234030cf1a9 Mon Sep 17 00:00:00 2001
-From: Gerard Lledo <gerard.lledo at gmail.com>
-Date: Sat, 28 Apr 2012 08:52:37 +0000
-Subject: [PATCH 16/56] sungem: Fix WakeOnLan
-
-[ Upstream commit 5a8887d39e1ba5ee2d4ccb94b14d6f2dce5ddfca ]
-
-WakeOnLan was broken in this driver because gp->asleep_wol is a 1-bit
-bitfield and it was being assigned WAKE_MAGIC, which is (1 << 5).
-gp->asleep_wol remains 0 and the machine never wakes up.  Fixed by casting
-gp->wake_on_lan to bool.  Tested on an iBook G4.
-
-Signed-off-by: Gerard Lledo <gerard.lledo at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/sun/sungem.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/sun/sungem.c b/drivers/net/ethernet/sun/sungem.c
-index ceab215..c508d6a 100644
---- a/drivers/net/ethernet/sun/sungem.c
-+++ b/drivers/net/ethernet/sun/sungem.c
-@@ -2340,7 +2340,7 @@ static int gem_suspend(struct pci_dev *pdev, pm_message_t state)
- 	netif_device_detach(dev);
- 
- 	/* Switch off chip, remember WOL setting */
--	gp->asleep_wol = gp->wake_on_lan;
-+	gp->asleep_wol = !!gp->wake_on_lan;
- 	gem_do_stop(dev, gp->asleep_wol);
- 
- 	/* Unlock the network stack */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0017-tg3-Avoid-panic-from-reserved-statblk-field-access.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0017-tg3-Avoid-panic-from-reserved-statblk-field-access.patch
deleted file mode 100644
index 1fbe741..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0017-tg3-Avoid-panic-from-reserved-statblk-field-access.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From ec9a6575908fa9558b613ace25ec0a9f5e1795ec Mon Sep 17 00:00:00 2001
-From: Matt Carlson <mcarlson at broadcom.com>
-Date: Tue, 24 Apr 2012 13:37:01 +0000
-Subject: [PATCH 17/56] tg3: Avoid panic from reserved statblk field access
-
-[ Upstream commit f891ea1634ce41f5f47ae40d8594809f4cd2ca66 ]
-
-When RSS is enabled, interrupt vector 0 does not receive any rx traffic.
-The rx producer index fields for vector 0's status block should be
-considered reserved in this case.  This patch changes the code to
-respect these reserved fields, which avoids a kernel panic when these
-fields take on non-zero values.
-
-Signed-off-by: Matt Carlson <mcarlson at broadcom.com>
-Signed-off-by: Michael Chan <mchan at broadcom.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/broadcom/tg3.c |   18 ++++++++++++++++--
- 1 files changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
-index 3d55883..2dcac28 100644
---- a/drivers/net/ethernet/broadcom/tg3.c
-+++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -879,8 +879,13 @@ static inline unsigned int tg3_has_work(struct tg3_napi *tnapi)
- 		if (sblk->status & SD_STATUS_LINK_CHG)
- 			work_exists = 1;
- 	}
--	/* check for RX/TX work to do */
--	if (sblk->idx[0].tx_consumer != tnapi->tx_cons ||
-+
-+	/* check for TX work to do */
-+	if (sblk->idx[0].tx_consumer != tnapi->tx_cons)
-+		work_exists = 1;
-+
-+	/* check for RX work to do */
-+	if (tnapi->rx_rcb_prod_idx &&
- 	    *(tnapi->rx_rcb_prod_idx) != tnapi->rx_rcb_ptr)
- 		work_exists = 1;
- 
-@@ -5895,6 +5900,9 @@ static int tg3_poll_work(struct tg3_napi *tnapi, int work_done, int budget)
- 			return work_done;
- 	}
- 
-+	if (!tnapi->rx_rcb_prod_idx)
-+		return work_done;
-+
- 	/* run RX thread, within the bounds set by NAPI.
- 	 * All RX "locking" is done by ensuring outside
- 	 * code synchronizes with tg3->napi.poll()
-@@ -7448,6 +7456,12 @@ static int tg3_alloc_consistent(struct tg3 *tp)
- 		 */
- 		switch (i) {
- 		default:
-+			if (tg3_flag(tp, ENABLE_RSS)) {
-+				tnapi->rx_rcb_prod_idx = NULL;
-+				break;
-+			}
-+			/* Fall through */
-+		case 1:
- 			tnapi->rx_rcb_prod_idx = &sblk->idx[0].rx_producer;
- 			break;
- 		case 2:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0018-tcp-fix-infinite-cwnd-in-tcp_complete_cwr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0018-tcp-fix-infinite-cwnd-in-tcp_complete_cwr.patch
deleted file mode 100644
index 7e2818d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0018-tcp-fix-infinite-cwnd-in-tcp_complete_cwr.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 6b142c33b94fd1c35b6a19be0982ae408ce8d162 Mon Sep 17 00:00:00 2001
-From: Yuchung Cheng <ycheng at google.com>
-Date: Mon, 30 Apr 2012 06:00:18 +0000
-Subject: [PATCH 18/56] tcp: fix infinite cwnd in tcp_complete_cwr()
-
-[ Upstream commit 1cebce36d660c83bd1353e41f3e66abd4686f215 ]
-
-When the cwnd reduction is done, ssthresh may be infinite
-if TCP enters CWR via ECN or F-RTO. If cwnd is not undone, i.e.,
-undo_marker is set, tcp_complete_cwr() falsely set cwnd to the
-infinite ssthresh value. The correct operation is to keep cwnd
-intact because it has been updated in ECN or F-RTO.
-
-Signed-off-by: Yuchung Cheng <ycheng at google.com>
-Acked-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp_input.c |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index daedc07..db07c9e 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -2868,11 +2868,14 @@ static inline void tcp_complete_cwr(struct sock *sk)
- 
- 	/* Do not moderate cwnd if it's already undone in cwr or recovery. */
- 	if (tp->undo_marker) {
--		if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR)
-+		if (inet_csk(sk)->icsk_ca_state == TCP_CA_CWR) {
- 			tp->snd_cwnd = min(tp->snd_cwnd, tp->snd_ssthresh);
--		else /* PRR */
-+			tp->snd_cwnd_stamp = tcp_time_stamp;
-+		} else if (tp->snd_ssthresh < TCP_INFINITE_SSTHRESH) {
-+			/* PRR algorithm. */
- 			tp->snd_cwnd = tp->snd_ssthresh;
--		tp->snd_cwnd_stamp = tcp_time_stamp;
-+			tp->snd_cwnd_stamp = tcp_time_stamp;
-+		}
- 	}
- 	tcp_ca_event(sk, CA_EVENT_COMPLETE_CWR);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0019-tcp-change-tcp_adv_win_scale-and-tcp_rmem-2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0019-tcp-change-tcp_adv_win_scale-and-tcp_rmem-2.patch
deleted file mode 100644
index e0e1dda..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0019-tcp-change-tcp_adv_win_scale-and-tcp_rmem-2.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 98d841428279a8060b46cf13a1463ebbeca65b4a Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Wed, 2 May 2012 02:28:41 +0000
-Subject: [PATCH 19/56] tcp: change tcp_adv_win_scale and tcp_rmem[2]
-
-[ Upstream commit b49960a05e32121d29316cfdf653894b88ac9190 ]
-
-tcp_adv_win_scale default value is 2, meaning we expect a good citizen
-skb to have skb->len / skb->truesize ratio of 75% (3/4)
-
-In 2.6 kernels we (mis)accounted for typical MSS=1460 frame :
-1536 + 64 + 256 = 1856 'estimated truesize', and 1856 * 3/4 = 1392.
-So these skbs were considered as not bloated.
-
-With recent truesize fixes, a typical MSS=1460 frame truesize is now the
-more precise :
-2048 + 256 = 2304. But 2304 * 3/4 = 1728.
-So these skb are not good citizen anymore, because 1460 < 1728
-
-(GRO can escape this problem because it build skbs with a too low
-truesize.)
-
-This also means tcp advertises a too optimistic window for a given
-allocated rcvspace : When receiving frames, sk_rmem_alloc can hit
-sk_rcvbuf limit and we call tcp_prune_queue()/tcp_collapse() too often,
-especially when application is slow to drain its receive queue or in
-case of losses (netperf is fast, scp is slow). This is a major latency
-source.
-
-We should adjust the len/truesize ratio to 50% instead of 75%
-
-This patch :
-
-1) changes tcp_adv_win_scale default to 1 instead of 2
-
-2) increase tcp_rmem[2] limit from 4MB to 6MB to take into account
-better truesize tracking and to allow autotuning tcp receive window to
-reach same value than before. Note that same amount of kernel memory is
-consumed compared to 2.6 kernels.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Neal Cardwell <ncardwell at google.com>
-Cc: Tom Herbert <therbert at google.com>
-Cc: Yuchung Cheng <ycheng at google.com>
-Acked-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- Documentation/networking/ip-sysctl.txt |    4 ++--
- net/ipv4/tcp.c                         |    9 +++++----
- net/ipv4/tcp_input.c                   |    2 +-
- 3 files changed, 8 insertions(+), 7 deletions(-)
-
-diff --git a/Documentation/networking/ip-sysctl.txt b/Documentation/networking/ip-sysctl.txt
-index 589f2da..a4399f5 100644
---- a/Documentation/networking/ip-sysctl.txt
-+++ b/Documentation/networking/ip-sysctl.txt
-@@ -137,7 +137,7 @@ tcp_adv_win_scale - INTEGER
- 	(if tcp_adv_win_scale > 0) or bytes-bytes/2^(-tcp_adv_win_scale),
- 	if it is <= 0.
- 	Possible values are [-31, 31], inclusive.
--	Default: 2
-+	Default: 1
- 
- tcp_allowed_congestion_control - STRING
- 	Show/set the congestion control choices available to non-privileged
-@@ -397,7 +397,7 @@ tcp_rmem - vector of 3 INTEGERs: min, default, max
- 	net.core.rmem_max.  Calling setsockopt() with SO_RCVBUF disables
- 	automatic tuning of that socket's receive buffer size, in which
- 	case this value is ignored.
--	Default: between 87380B and 4MB, depending on RAM size.
-+	Default: between 87380B and 6MB, depending on RAM size.
- 
- tcp_sack - BOOLEAN
- 	Enable select acknowledgments (SACKS).
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 7904db4..8f826b1 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -3216,7 +3216,7 @@ void __init tcp_init(void)
- {
- 	struct sk_buff *skb = NULL;
- 	unsigned long limit;
--	int i, max_share, cnt;
-+	int i, max_rshare, max_wshare, cnt;
- 	unsigned long jiffy = jiffies;
- 
- 	BUILD_BUG_ON(sizeof(struct tcp_skb_cb) > sizeof(skb->cb));
-@@ -3280,15 +3280,16 @@ void __init tcp_init(void)
- 
- 	/* Set per-socket limits to no more than 1/128 the pressure threshold */
- 	limit = ((unsigned long)sysctl_tcp_mem[1]) << (PAGE_SHIFT - 7);
--	max_share = min(4UL*1024*1024, limit);
-+	max_wshare = min(4UL*1024*1024, limit);
-+	max_rshare = min(6UL*1024*1024, limit);
- 
- 	sysctl_tcp_wmem[0] = SK_MEM_QUANTUM;
- 	sysctl_tcp_wmem[1] = 16*1024;
--	sysctl_tcp_wmem[2] = max(64*1024, max_share);
-+	sysctl_tcp_wmem[2] = max(64*1024, max_wshare);
- 
- 	sysctl_tcp_rmem[0] = SK_MEM_QUANTUM;
- 	sysctl_tcp_rmem[1] = 87380;
--	sysctl_tcp_rmem[2] = max(87380, max_share);
-+	sysctl_tcp_rmem[2] = max(87380, max_rshare);
- 
- 	printk(KERN_INFO "TCP: Hash tables configured "
- 	       "(established %u bind %u)\n",
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index db07c9e..9726927 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -83,7 +83,7 @@ int sysctl_tcp_ecn __read_mostly = 2;
- EXPORT_SYMBOL(sysctl_tcp_ecn);
- int sysctl_tcp_dsack __read_mostly = 1;
- int sysctl_tcp_app_win __read_mostly = 31;
--int sysctl_tcp_adv_win_scale __read_mostly = 2;
-+int sysctl_tcp_adv_win_scale __read_mostly = 1;
- EXPORT_SYMBOL(sysctl_tcp_adv_win_scale);
- 
- int sysctl_tcp_stdurg __read_mostly;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0020-brcm80211-smac-pass-missing-argument-to-brcms_b_mute.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0020-brcm80211-smac-pass-missing-argument-to-brcms_b_mute.patch
deleted file mode 100644
index 92501a2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0020-brcm80211-smac-pass-missing-argument-to-brcms_b_mute.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 9edfb7d2fb5250828aabc9ad47708b56184fa010 Mon Sep 17 00:00:00 2001
-From: Jonathan Nieder <jrnieder at gmail.com>
-Date: Fri, 11 May 2012 19:35:33 -0500
-Subject: [PATCH 20/56] brcm80211: smac: pass missing argument to
- 'brcms_b_mute'
-
-[Not needed upstream --- this bug is specific to 3.2.y.]
-
-Commit c6c44893c864, which removes the flag argument from brcms_b_mute,
-is not part of 3.2.y, and we forgot to adjust a new call accordingly
-when applying commit badc4f07622f ("brcm80211: smac: resume transmit
-fifo upon receiving frames").
-
- drivers/net/wireless/brcm80211/brcmsmac/main.c: In function 'brcms_c_recvctl':
- drivers/net/wireless/brcm80211/brcmsmac/main.c:7882:4: error: too few arguments to function 'brcms_b_mute'
- drivers/net/wireless/brcm80211/brcmsmac/main.c:2538:13: note: declared here
-
-Earlier build tests missed this because they didn't include this driver
-due to 'depends on BCMA=n'.
-
-Reported-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/brcm80211/brcmsmac/main.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-index f98becc..833cbef 100644
---- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -7879,7 +7879,7 @@ brcms_c_recvctl(struct brcms_c_info *wlc, struct d11rxhdr *rxh,
- 	if (wlc->hw->suspended_fifos) {
- 		hdr = (struct ieee80211_hdr *)p->data;
- 		if (ieee80211_is_beacon(hdr->frame_control))
--			brcms_b_mute(wlc->hw, false);
-+			brcms_b_mute(wlc->hw, false, 0);
- 	}
- 
- 	memcpy(IEEE80211_SKB_RXCB(p), &rx_status, sizeof(rx_status));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0021-phy-icplus-fix-Auto-Power-Saving-in-ip101a_config_in.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0021-phy-icplus-fix-Auto-Power-Saving-in-ip101a_config_in.patch
deleted file mode 100644
index 5b7769f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0021-phy-icplus-fix-Auto-Power-Saving-in-ip101a_config_in.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 78381ca9729f5c7508cc74701d29cc325f37c5b7 Mon Sep 17 00:00:00 2001
-From: Srinivas Kandagatla <srinivas.kandagatla at st.com>
-Date: Mon, 2 Apr 2012 00:02:09 +0000
-Subject: [PATCH 21/56] phy:icplus:fix Auto Power Saving in
- ip101a_config_init.
-
-[ Upstream commit b3300146aa8efc5d3937fd33f3cfdc580a3843bc ]
-
-This patch fixes Auto Power Saving configuration in ip101a_config_init
-which was broken as there is no phy register write followed after
-setting IP101A_APS_ON flag.
-
-This patch also fixes the return value of ip101a_config_init.
-
-Without this patch ip101a_config_init returns 2 which is not an error
-accroding to IS_ERR and the mac driver will continue accessing 2 as
-valid pointer to phy_dev resulting in memory fault.
-
-Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla at st.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/phy/icplus.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/phy/icplus.c b/drivers/net/phy/icplus.c
-index c81f136..b142300 100644
---- a/drivers/net/phy/icplus.c
-+++ b/drivers/net/phy/icplus.c
-@@ -150,7 +150,8 @@ static int ip101a_config_init(struct phy_device *phydev)
- 	/* Enable Auto Power Saving mode */
- 	c = phy_read(phydev, IP10XX_SPEC_CTRL_STATUS);
- 	c |= IP101A_APS_ON;
--	return c;
-+
-+	return phy_write(phydev, IP10XX_SPEC_CTRL_STATUS, c);
- }
- 
- static int ip175c_read_status(struct phy_device *phydev)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0022-NFSv4-Revalidate-uid-gid-after-open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0022-NFSv4-Revalidate-uid-gid-after-open.patch
deleted file mode 100644
index edc0c91..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0022-NFSv4-Revalidate-uid-gid-after-open.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 28797e10f3879232042e0f636e6650a2b35912f6 Mon Sep 17 00:00:00 2001
-From: Jonathan Nieder <jrnieder at gmail.com>
-Date: Fri, 11 May 2012 04:20:20 -0500
-Subject: [PATCH 22/56] NFSv4: Revalidate uid/gid after open
-
-This is a shorter (and more appropriate for stable kernels) analog to
-the following upstream commit:
-
-commit 6926afd1925a54a13684ebe05987868890665e2b
-Author: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date:   Sat Jan 7 13:22:46 2012 -0500
-
-    NFSv4: Save the owner/group name string when doing open
-
-    ...so that we can do the uid/gid mapping outside the asynchronous RPC
-    context.
-    This fixes a bug in the current NFSv4 atomic open code where the client
-    isn't able to determine what the true uid/gid fields of the file are,
-    (because the asynchronous nature of the OPEN call denies it the ability
-    to do an upcall) and so fills them with default values, marking the
-    inode as needing revalidation.
-    Unfortunately, in some cases, the VFS will do some additional sanity
-    checks on the file, and may override the server's decision to allow
-    the open because it sees the wrong owner/group fields.
-
-    Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-
-Without this patch, logging into two different machines with home
-directories mounted over NFS4 and then running "vim" and typing ":q"
-in each reliably produces the following error on the second machine:
-
-	E137: Viminfo file is not writable: /users/system/rtheys/.viminfo
-
-This regression was introduced by 80e52aced138 ("NFSv4: Don't do
-idmapper upcalls for asynchronous RPC calls", merged during the 2.6.32
-cycle) --- after the OPEN call, .viminfo has the default values for
-st_uid and st_gid (0xfffffffe) cached because we do not want to let
-rpciod wait for an idmapper upcall to fill them in.
-
-The fix used in mainline is to save the owner and group as strings and
-perform the upcall in _nfs4_proc_open outside the rpciod context,
-which takes about 600 lines.  For stable, we can do something similar
-with a one-liner: make open check for the stale fields and make a
-(synchronous) GETATTR call to fill them when needed.
-
-Trond dictated the patch, I typed it in, and Rik tested it.
-
-Addresses http://bugs.debian.org/659111 and
-          https://bugzilla.redhat.com/789298
-
-Reported-by: Rik Theys <Rik.Theys at esat.kuleuven.be>
-Explained-by: David Flyn <davidf at rd.bbc.co.uk>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Tested-by: Rik Theys <Rik.Theys at esat.kuleuven.be>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 51f6a40..bab7c58 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -1802,6 +1802,7 @@ static int _nfs4_do_open(struct inode *dir, struct dentry *dentry, fmode_t fmode
- 			nfs_setattr_update_inode(state->inode, sattr);
- 		nfs_post_op_update_inode(state->inode, opendata->o_res.f_attr);
- 	}
-+	nfs_revalidate_inode(server, state->inode);
- 	nfs4_opendata_put(opendata);
- 	nfs4_put_state_owner(sp);
- 	*res = state;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0023-target-Drop-incorrect-se_lun_acl-release-for-dynamic.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0023-target-Drop-incorrect-se_lun_acl-release-for-dynamic.patch
deleted file mode 100644
index 66d0601..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0023-target-Drop-incorrect-se_lun_acl-release-for-dynamic.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From ca92b5c1f22073e079dae19162698441a231e36f Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Thu, 10 May 2012 22:05:49 -0700
-Subject: [PATCH 23/56] target: Drop incorrect se_lun_acl release for dynamic
- -> explict ACL conversion
-
-commit cfebf8f42f47327fa54cf05c19b98f4bd5236a26 upstream.
-
-This patch removes some potentially problematic legacy code within
-core_clear_initiator_node_from_tpg() that was originally intended to
-release left over se_lun_acl setup during dynamic NodeACL+MappedLUN
-generate when running with TPG demo-mode operation.
-
-Since we now only ever expect to allocate and release se_lun_acl from
-within target_core_fabric_configfs.c:target_fabric_make_mappedlun() and
-target_fabric_drop_mappedlun() context respectively, this code for
-demo-mode release is incorrect and needs to be removed.
-
-Cc: Christoph Hellwig <hch at lst.de>
-Cc: Andy Grover <agrover at redhat.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_tpg.c |   22 ----------------------
- 1 files changed, 0 insertions(+), 22 deletions(-)
-
-diff --git a/drivers/target/target_core_tpg.c b/drivers/target/target_core_tpg.c
-index 8ddd133..d91fe44 100644
---- a/drivers/target/target_core_tpg.c
-+++ b/drivers/target/target_core_tpg.c
-@@ -63,7 +63,6 @@ static void core_clear_initiator_node_from_tpg(
- 	int i;
- 	struct se_dev_entry *deve;
- 	struct se_lun *lun;
--	struct se_lun_acl *acl, *acl_tmp;
- 
- 	spin_lock_irq(&nacl->device_list_lock);
- 	for (i = 0; i < TRANSPORT_MAX_LUNS_PER_TPG; i++) {
-@@ -84,28 +83,7 @@ static void core_clear_initiator_node_from_tpg(
- 		core_update_device_list_for_node(lun, NULL, deve->mapped_lun,
- 			TRANSPORT_LUNFLAGS_NO_ACCESS, nacl, tpg, 0);
- 
--		spin_lock(&lun->lun_acl_lock);
--		list_for_each_entry_safe(acl, acl_tmp,
--					&lun->lun_acl_list, lacl_list) {
--			if (!strcmp(acl->initiatorname, nacl->initiatorname) &&
--			    (acl->mapped_lun == deve->mapped_lun))
--				break;
--		}
--
--		if (!acl) {
--			pr_err("Unable to locate struct se_lun_acl for %s,"
--				" mapped_lun: %u\n", nacl->initiatorname,
--				deve->mapped_lun);
--			spin_unlock(&lun->lun_acl_lock);
--			spin_lock_irq(&nacl->device_list_lock);
--			continue;
--		}
--
--		list_del(&acl->lacl_list);
--		spin_unlock(&lun->lun_acl_lock);
--
- 		spin_lock_irq(&nacl->device_list_lock);
--		kfree(acl);
- 	}
- 	spin_unlock_irq(&nacl->device_list_lock);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0024-marvell-cam-fix-an-ARM-build-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0024-marvell-cam-fix-an-ARM-build-error.patch
deleted file mode 100644
index 09a02df..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0024-marvell-cam-fix-an-ARM-build-error.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 10b936ceae2bf61d07542014bf9140f302810892 Mon Sep 17 00:00:00 2001
-From: Jonathan Corbet <corbet at lwn.net>
-Date: Fri, 20 Apr 2012 12:22:50 -0300
-Subject: [PATCH 24/56] marvell-cam: fix an ARM build error
-
-commit 9967232f1be5bab10c7b7a8dcf51ff5c3c1a6d77 upstream.
-
-One of the OLPC changes lost a little in its translation to mainline,
-leading to build errors on the ARM architecture.  Remove the offending
-line, and all will be well.
-
-Reported-by: Mathieu Poirier <mathieu.poirier at linaro.org>
-Signed-off-by: Jonathan Corbet <corbet at lwn.net>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/video/marvell-ccic/mmp-driver.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/media/video/marvell-ccic/mmp-driver.c b/drivers/media/video/marvell-ccic/mmp-driver.c
-index fb0b124..a6b7657 100644
---- a/drivers/media/video/marvell-ccic/mmp-driver.c
-+++ b/drivers/media/video/marvell-ccic/mmp-driver.c
-@@ -175,7 +175,6 @@ static int mmpcam_probe(struct platform_device *pdev)
- 	INIT_LIST_HEAD(&cam->devlist);
- 
- 	mcam = &cam->mcam;
--	mcam->platform = MHP_Armada610;
- 	mcam->plat_power_up = mmpcam_power_up;
- 	mcam->plat_power_down = mmpcam_power_down;
- 	mcam->dev = &pdev->dev;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0025-rc-Postpone-ISR-registration.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0025-rc-Postpone-ISR-registration.patch
deleted file mode 100644
index 501e7d8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0025-rc-Postpone-ISR-registration.patch
+++ /dev/null
@@ -1,325 +0,0 @@
-From 51e9e3cdf5aa99d1bda7d03d213cc4dc0766c7ed Mon Sep 17 00:00:00 2001
-From: Luis Henriques <luis.henriques at canonical.com>
-Date: Sat, 21 Apr 2012 12:25:21 -0300
-Subject: [PATCH 25/56] rc: Postpone ISR registration
-
-commit 9ef449c6b31bb6a8e6dedc24de475a3b8c79be20 upstream.
-
-An early registration of an ISR was causing a crash to several users (for
-example, with the ite-cir driver: http://bugs.launchpad.net/bugs/972723).
-The reason was that IRQs were being triggered before a driver
-initialisation was completed.
-
-This patch fixes this by moving the invocation to request_irq() and to
-request_region() to a later stage on the driver probe function.
-
-Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
-Acked-by: Jarod Wilson <jarod at redhat.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/rc/ene_ir.c      |   32 ++++++++--------
- drivers/media/rc/fintek-cir.c  |   20 +++++-----
- drivers/media/rc/ite-cir.c     |   20 +++++-----
- drivers/media/rc/nuvoton-cir.c |   36 +++++++++---------
- drivers/media/rc/winbond-cir.c |   78 ++++++++++++++++++++--------------------
- 5 files changed, 93 insertions(+), 93 deletions(-)
-
-diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c
-index 860c112..bef5296 100644
---- a/drivers/media/rc/ene_ir.c
-+++ b/drivers/media/rc/ene_ir.c
-@@ -1018,22 +1018,6 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
- 
- 	spin_lock_init(&dev->hw_lock);
- 
--	/* claim the resources */
--	error = -EBUSY;
--	dev->hw_io = pnp_port_start(pnp_dev, 0);
--	if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
--		dev->hw_io = -1;
--		dev->irq = -1;
--		goto error;
--	}
--
--	dev->irq = pnp_irq(pnp_dev, 0);
--	if (request_irq(dev->irq, ene_isr,
--			IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
--		dev->irq = -1;
--		goto error;
--	}
--
- 	pnp_set_drvdata(pnp_dev, dev);
- 	dev->pnp_dev = pnp_dev;
- 
-@@ -1086,6 +1070,22 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
- 	device_set_wakeup_capable(&pnp_dev->dev, true);
- 	device_set_wakeup_enable(&pnp_dev->dev, true);
- 
-+	/* claim the resources */
-+	error = -EBUSY;
-+	dev->hw_io = pnp_port_start(pnp_dev, 0);
-+	if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
-+		dev->hw_io = -1;
-+		dev->irq = -1;
-+		goto error;
-+	}
-+
-+	dev->irq = pnp_irq(pnp_dev, 0);
-+	if (request_irq(dev->irq, ene_isr,
-+			IRQF_SHARED, ENE_DRIVER_NAME, (void *)dev)) {
-+		dev->irq = -1;
-+		goto error;
-+	}
-+
- 	error = rc_register_device(rdev);
- 	if (error < 0)
- 		goto error;
-diff --git a/drivers/media/rc/fintek-cir.c b/drivers/media/rc/fintek-cir.c
-index 7f7079b..4218f73 100644
---- a/drivers/media/rc/fintek-cir.c
-+++ b/drivers/media/rc/fintek-cir.c
-@@ -504,16 +504,6 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
- 
- 	spin_lock_init(&fintek->fintek_lock);
- 
--	ret = -EBUSY;
--	/* now claim resources */
--	if (!request_region(fintek->cir_addr,
--			    fintek->cir_port_len, FINTEK_DRIVER_NAME))
--		goto failure;
--
--	if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
--			FINTEK_DRIVER_NAME, (void *)fintek))
--		goto failure;
--
- 	pnp_set_drvdata(pdev, fintek);
- 	fintek->pdev = pdev;
- 
-@@ -548,6 +538,16 @@ static int fintek_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id
- 	/* rx resolution is hardwired to 50us atm, 1, 25, 100 also possible */
- 	rdev->rx_resolution = US_TO_NS(CIR_SAMPLE_PERIOD);
- 
-+	ret = -EBUSY;
-+	/* now claim resources */
-+	if (!request_region(fintek->cir_addr,
-+			    fintek->cir_port_len, FINTEK_DRIVER_NAME))
-+		goto failure;
-+
-+	if (request_irq(fintek->cir_irq, fintek_cir_isr, IRQF_SHARED,
-+			FINTEK_DRIVER_NAME, (void *)fintek))
-+		goto failure;
-+
- 	ret = rc_register_device(rdev);
- 	if (ret)
- 		goto failure;
-diff --git a/drivers/media/rc/ite-cir.c b/drivers/media/rc/ite-cir.c
-index 682009d..0e49c99 100644
---- a/drivers/media/rc/ite-cir.c
-+++ b/drivers/media/rc/ite-cir.c
-@@ -1515,16 +1515,6 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
- 	/* initialize raw event */
- 	init_ir_raw_event(&itdev->rawir);
- 
--	ret = -EBUSY;
--	/* now claim resources */
--	if (!request_region(itdev->cir_addr,
--				dev_desc->io_region_size, ITE_DRIVER_NAME))
--		goto failure;
--
--	if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
--			ITE_DRIVER_NAME, (void *)itdev))
--		goto failure;
--
- 	/* set driver data into the pnp device */
- 	pnp_set_drvdata(pdev, itdev);
- 	itdev->pdev = pdev;
-@@ -1600,6 +1590,16 @@ static int ite_probe(struct pnp_dev *pdev, const struct pnp_device_id
- 	rdev->driver_name = ITE_DRIVER_NAME;
- 	rdev->map_name = RC_MAP_RC6_MCE;
- 
-+	ret = -EBUSY;
-+	/* now claim resources */
-+	if (!request_region(itdev->cir_addr,
-+				dev_desc->io_region_size, ITE_DRIVER_NAME))
-+		goto failure;
-+
-+	if (request_irq(itdev->cir_irq, ite_cir_isr, IRQF_SHARED,
-+			ITE_DRIVER_NAME, (void *)itdev))
-+		goto failure;
-+
- 	ret = rc_register_device(rdev);
- 	if (ret)
- 		goto failure;
-diff --git a/drivers/media/rc/nuvoton-cir.c b/drivers/media/rc/nuvoton-cir.c
-index 144f3f5..8b2c071 100644
---- a/drivers/media/rc/nuvoton-cir.c
-+++ b/drivers/media/rc/nuvoton-cir.c
-@@ -1021,24 +1021,6 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
- 	spin_lock_init(&nvt->nvt_lock);
- 	spin_lock_init(&nvt->tx.lock);
- 
--	ret = -EBUSY;
--	/* now claim resources */
--	if (!request_region(nvt->cir_addr,
--			    CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
--		goto failure;
--
--	if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
--			NVT_DRIVER_NAME, (void *)nvt))
--		goto failure;
--
--	if (!request_region(nvt->cir_wake_addr,
--			    CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
--		goto failure;
--
--	if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED,
--			NVT_DRIVER_NAME, (void *)nvt))
--		goto failure;
--
- 	pnp_set_drvdata(pdev, nvt);
- 	nvt->pdev = pdev;
- 
-@@ -1085,6 +1067,24 @@ static int nvt_probe(struct pnp_dev *pdev, const struct pnp_device_id *dev_id)
- 	rdev->tx_resolution = XYZ;
- #endif
- 
-+	ret = -EBUSY;
-+	/* now claim resources */
-+	if (!request_region(nvt->cir_addr,
-+			    CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
-+		goto failure;
-+
-+	if (request_irq(nvt->cir_irq, nvt_cir_isr, IRQF_SHARED,
-+			NVT_DRIVER_NAME, (void *)nvt))
-+		goto failure;
-+
-+	if (!request_region(nvt->cir_wake_addr,
-+			    CIR_IOREG_LENGTH, NVT_DRIVER_NAME))
-+		goto failure;
-+
-+	if (request_irq(nvt->cir_wake_irq, nvt_cir_wake_isr, IRQF_SHARED,
-+			NVT_DRIVER_NAME, (void *)nvt))
-+		goto failure;
-+
- 	ret = rc_register_device(rdev);
- 	if (ret)
- 		goto failure;
-diff --git a/drivers/media/rc/winbond-cir.c b/drivers/media/rc/winbond-cir.c
-index a7e7d6f..4591770 100644
---- a/drivers/media/rc/winbond-cir.c
-+++ b/drivers/media/rc/winbond-cir.c
-@@ -991,39 +991,10 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
- 		"(w: 0x%lX, e: 0x%lX, s: 0x%lX, i: %u)\n",
- 		data->wbase, data->ebase, data->sbase, data->irq);
- 
--	if (!request_region(data->wbase, WAKEUP_IOMEM_LEN, DRVNAME)) {
--		dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
--			data->wbase, data->wbase + WAKEUP_IOMEM_LEN - 1);
--		err = -EBUSY;
--		goto exit_free_data;
--	}
--
--	if (!request_region(data->ebase, EHFUNC_IOMEM_LEN, DRVNAME)) {
--		dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
--			data->ebase, data->ebase + EHFUNC_IOMEM_LEN - 1);
--		err = -EBUSY;
--		goto exit_release_wbase;
--	}
--
--	if (!request_region(data->sbase, SP_IOMEM_LEN, DRVNAME)) {
--		dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
--			data->sbase, data->sbase + SP_IOMEM_LEN - 1);
--		err = -EBUSY;
--		goto exit_release_ebase;
--	}
--
--	err = request_irq(data->irq, wbcir_irq_handler,
--			  IRQF_DISABLED, DRVNAME, device);
--	if (err) {
--		dev_err(dev, "Failed to claim IRQ %u\n", data->irq);
--		err = -EBUSY;
--		goto exit_release_sbase;
--	}
--
- 	led_trigger_register_simple("cir-tx", &data->txtrigger);
- 	if (!data->txtrigger) {
- 		err = -ENOMEM;
--		goto exit_free_irq;
-+		goto exit_free_data;
- 	}
- 
- 	led_trigger_register_simple("cir-rx", &data->rxtrigger);
-@@ -1062,9 +1033,38 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
- 	data->dev->priv = data;
- 	data->dev->dev.parent = &device->dev;
- 
-+	if (!request_region(data->wbase, WAKEUP_IOMEM_LEN, DRVNAME)) {
-+		dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
-+			data->wbase, data->wbase + WAKEUP_IOMEM_LEN - 1);
-+		err = -EBUSY;
-+		goto exit_free_rc;
-+	}
-+
-+	if (!request_region(data->ebase, EHFUNC_IOMEM_LEN, DRVNAME)) {
-+		dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
-+			data->ebase, data->ebase + EHFUNC_IOMEM_LEN - 1);
-+		err = -EBUSY;
-+		goto exit_release_wbase;
-+	}
-+
-+	if (!request_region(data->sbase, SP_IOMEM_LEN, DRVNAME)) {
-+		dev_err(dev, "Region 0x%lx-0x%lx already in use!\n",
-+			data->sbase, data->sbase + SP_IOMEM_LEN - 1);
-+		err = -EBUSY;
-+		goto exit_release_ebase;
-+	}
-+
-+	err = request_irq(data->irq, wbcir_irq_handler,
-+			  IRQF_DISABLED, DRVNAME, device);
-+	if (err) {
-+		dev_err(dev, "Failed to claim IRQ %u\n", data->irq);
-+		err = -EBUSY;
-+		goto exit_release_sbase;
-+	}
-+
- 	err = rc_register_device(data->dev);
- 	if (err)
--		goto exit_free_rc;
-+		goto exit_free_irq;
- 
- 	device_init_wakeup(&device->dev, 1);
- 
-@@ -1072,14 +1072,6 @@ wbcir_probe(struct pnp_dev *device, const struct pnp_device_id *dev_id)
- 
- 	return 0;
- 
--exit_free_rc:
--	rc_free_device(data->dev);
--exit_unregister_led:
--	led_classdev_unregister(&data->led);
--exit_unregister_rxtrigger:
--	led_trigger_unregister_simple(data->rxtrigger);
--exit_unregister_txtrigger:
--	led_trigger_unregister_simple(data->txtrigger);
- exit_free_irq:
- 	free_irq(data->irq, device);
- exit_release_sbase:
-@@ -1088,6 +1080,14 @@ exit_release_ebase:
- 	release_region(data->ebase, EHFUNC_IOMEM_LEN);
- exit_release_wbase:
- 	release_region(data->wbase, WAKEUP_IOMEM_LEN);
-+exit_free_rc:
-+	rc_free_device(data->dev);
-+exit_unregister_led:
-+	led_classdev_unregister(&data->led);
-+exit_unregister_rxtrigger:
-+	led_trigger_unregister_simple(data->rxtrigger);
-+exit_unregister_txtrigger:
-+	led_trigger_unregister_simple(data->txtrigger);
- exit_free_data:
- 	kfree(data);
- 	pnp_set_drvdata(device, NULL);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0026-cdc_ether-Ignore-bogus-union-descriptor-for-RNDIS-de.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0026-cdc_ether-Ignore-bogus-union-descriptor-for-RNDIS-de.patch
deleted file mode 100644
index 718254a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0026-cdc_ether-Ignore-bogus-union-descriptor-for-RNDIS-de.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 701699958f6f1770bf758ebac587fd85e73e8c76 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Thu, 26 Apr 2012 02:35:10 +0000
-Subject: [PATCH 26/56] cdc_ether: Ignore bogus union descriptor for RNDIS
- devices
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 6eddcb4c82883451aec3be1240f17793370fa62f upstream.
-
-Some RNDIS devices include a bogus CDC Union descriptor pointing
-to non-existing interfaces.  The RNDIS code is already prepared
-to handle devices without a CDC Union descriptor by hardwiring
-the driver to use interfaces 0 and 1, which is correct for the
-devices with the bogus descriptor as well. So we can reuse the
-existing workaround.
-
-Cc: Markus Kolb <linux-201011 at tower-net.de>
-Cc: Iker Salmón San Millán <shaola at esdebian.org>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Cc: Oliver Neukum <oliver at neukum.org>
-Cc: 655387 at bugs.debian.org
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/cdc_ether.c |   14 ++++++++++++--
- 1 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
-index 4fd4144..eac4886 100644
---- a/drivers/net/usb/cdc_ether.c
-+++ b/drivers/net/usb/cdc_ether.c
-@@ -83,6 +83,7 @@ int usbnet_generic_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
- 	struct cdc_state		*info = (void *) &dev->data;
- 	int				status;
- 	int				rndis;
-+	bool				android_rndis_quirk = false;
- 	struct usb_driver		*driver = driver_of(intf);
- 	struct usb_cdc_mdlm_desc	*desc = NULL;
- 	struct usb_cdc_mdlm_detail_desc *detail = NULL;
-@@ -195,6 +196,11 @@ int usbnet_generic_cdc_bind(struct usbnet *dev, struct usb_interface *intf)
- 					info->control,
- 					info->u->bSlaveInterface0,
- 					info->data);
-+				/* fall back to hard-wiring for RNDIS */
-+				if (rndis) {
-+					android_rndis_quirk = true;
-+					goto next_desc;
-+				}
- 				goto bad_desc;
- 			}
- 			if (info->control != intf) {
-@@ -271,11 +277,15 @@ next_desc:
- 	/* Microsoft ActiveSync based and some regular RNDIS devices lack the
- 	 * CDC descriptors, so we'll hard-wire the interfaces and not check
- 	 * for descriptors.
-+	 *
-+	 * Some Android RNDIS devices have a CDC Union descriptor pointing
-+	 * to non-existing interfaces.  Ignore that and attempt the same
-+	 * hard-wired 0 and 1 interfaces.
- 	 */
--	if (rndis && !info->u) {
-+	if (rndis && (!info->u || android_rndis_quirk)) {
- 		info->control = usb_ifnum_to_if(dev->udev, 0);
- 		info->data = usb_ifnum_to_if(dev->udev, 1);
--		if (!info->control || !info->data) {
-+		if (!info->control || !info->data || info->control != intf) {
- 			dev_dbg(&intf->dev,
- 				"rndis: master #0/%p slave #1/%p\n",
- 				info->control,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0027-jffs2-Fix-lock-acquisition-order-bug-in-gc-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0027-jffs2-Fix-lock-acquisition-order-bug-in-gc-path.patch
deleted file mode 100644
index 4f32155..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0027-jffs2-Fix-lock-acquisition-order-bug-in-gc-path.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From f1c7fc81d6b170d79df0dc657040e42ece3b1953 Mon Sep 17 00:00:00 2001
-From: Josh Cartwright <joshc at linux.com>
-Date: Thu, 29 Mar 2012 19:34:53 -0400
-Subject: [PATCH 27/56] jffs2: Fix lock acquisition order bug in gc path
-
-commit 226bb7df3d22bcf4a1c0fe8206c80cc427498eae upstream.
-
-The locking policy is such that the erase_complete_block spinlock is
-nested within the alloc_sem mutex.  This fixes a case in which the
-acquisition order was erroneously reversed.  This issue was caught by
-the following lockdep splat:
-
-   =======================================================
-   [ INFO: possible circular locking dependency detected ]
-   3.0.5 #1
-   -------------------------------------------------------
-   jffs2_gcd_mtd6/299 is trying to acquire lock:
-    (&c->alloc_sem){+.+.+.}, at: [<c01f7714>] jffs2_garbage_collect_pass+0x314/0x890
-
-   but task is already holding lock:
-    (&(&c->erase_completion_lock)->rlock){+.+...}, at: [<c01f7708>] jffs2_garbage_collect_pass+0x308/0x890
-
-   which lock already depends on the new lock.
-
-   the existing dependency chain (in reverse order) is:
-
-   -> #1 (&(&c->erase_completion_lock)->rlock){+.+...}:
-          [<c008bec4>] validate_chain+0xe6c/0x10bc
-          [<c008c660>] __lock_acquire+0x54c/0xba4
-          [<c008d240>] lock_acquire+0xa4/0x114
-          [<c046780c>] _raw_spin_lock+0x3c/0x4c
-          [<c01f744c>] jffs2_garbage_collect_pass+0x4c/0x890
-          [<c01f937c>] jffs2_garbage_collect_thread+0x1b4/0x1cc
-          [<c0071a68>] kthread+0x98/0xa0
-          [<c000f264>] kernel_thread_exit+0x0/0x8
-
-   -> #0 (&c->alloc_sem){+.+.+.}:
-          [<c008ad2c>] print_circular_bug+0x70/0x2c4
-          [<c008c08c>] validate_chain+0x1034/0x10bc
-          [<c008c660>] __lock_acquire+0x54c/0xba4
-          [<c008d240>] lock_acquire+0xa4/0x114
-          [<c0466628>] mutex_lock_nested+0x74/0x33c
-          [<c01f7714>] jffs2_garbage_collect_pass+0x314/0x890
-          [<c01f937c>] jffs2_garbage_collect_thread+0x1b4/0x1cc
-          [<c0071a68>] kthread+0x98/0xa0
-          [<c000f264>] kernel_thread_exit+0x0/0x8
-
-   other info that might help us debug this:
-
-    Possible unsafe locking scenario:
-
-          CPU0                    CPU1
-          ----                    ----
-     lock(&(&c->erase_completion_lock)->rlock);
-                                  lock(&c->alloc_sem);
-                                  lock(&(&c->erase_completion_lock)->rlock);
-     lock(&c->alloc_sem);
-
-    *** DEADLOCK ***
-
-   1 lock held by jffs2_gcd_mtd6/299:
-    #0:  (&(&c->erase_completion_lock)->rlock){+.+...}, at: [<c01f7708>] jffs2_garbage_collect_pass+0x308/0x890
-
-   stack backtrace:
-   [<c00155dc>] (unwind_backtrace+0x0/0x100) from [<c0463dc0>] (dump_stack+0x20/0x24)
-   [<c0463dc0>] (dump_stack+0x20/0x24) from [<c008ae84>] (print_circular_bug+0x1c8/0x2c4)
-   [<c008ae84>] (print_circular_bug+0x1c8/0x2c4) from [<c008c08c>] (validate_chain+0x1034/0x10bc)
-   [<c008c08c>] (validate_chain+0x1034/0x10bc) from [<c008c660>] (__lock_acquire+0x54c/0xba4)
-   [<c008c660>] (__lock_acquire+0x54c/0xba4) from [<c008d240>] (lock_acquire+0xa4/0x114)
-   [<c008d240>] (lock_acquire+0xa4/0x114) from [<c0466628>] (mutex_lock_nested+0x74/0x33c)
-   [<c0466628>] (mutex_lock_nested+0x74/0x33c) from [<c01f7714>] (jffs2_garbage_collect_pass+0x314/0x890)
-   [<c01f7714>] (jffs2_garbage_collect_pass+0x314/0x890) from [<c01f937c>] (jffs2_garbage_collect_thread+0x1b4/0x1cc)
-   [<c01f937c>] (jffs2_garbage_collect_thread+0x1b4/0x1cc) from [<c0071a68>] (kthread+0x98/0xa0)
-   [<c0071a68>] (kthread+0x98/0xa0) from [<c000f264>] (kernel_thread_exit+0x0/0x8)
-
-This was introduce in '81cfc9f jffs2: Fix serious write stall due to erase'.
-
-Signed-off-by: Josh Cartwright <joshc at linux.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/jffs2/gc.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/jffs2/gc.c b/fs/jffs2/gc.c
-index 31dce61..4bbd521 100644
---- a/fs/jffs2/gc.c
-+++ b/fs/jffs2/gc.c
-@@ -225,8 +225,8 @@ int jffs2_garbage_collect_pass(struct jffs2_sb_info *c)
- 			return 0;
- 
- 		D1(printk(KERN_DEBUG "No progress from erasing blocks; doing GC anyway\n"));
--		spin_lock(&c->erase_completion_lock);
- 		mutex_lock(&c->alloc_sem);
-+		spin_lock(&c->erase_completion_lock);
- 	}
- 
- 	/* First, work out which block we're garbage-collecting */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0028-s5p-fimc-Fix-locking-in-subdev-set_crop-op.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0028-s5p-fimc-Fix-locking-in-subdev-set_crop-op.patch
deleted file mode 100644
index df322fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0028-s5p-fimc-Fix-locking-in-subdev-set_crop-op.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From fdde7964742c3802205c7fa50677abfe7b462bfd Mon Sep 17 00:00:00 2001
-From: Sylwester Nawrocki <s.nawrocki at samsung.com>
-Date: Sat, 21 Apr 2012 18:46:30 -0300
-Subject: [PATCH 28/56] s5p-fimc: Fix locking in subdev set_crop op
-
-commit e985dbf7d93e2a3e114b4525413e50f83613e0cb upstream.
-
-When setting TRY crop on the sub-device the mutex was erroneously acquired
-rather than released on exit path. This bug is present in kernels starting
-from v3.2.
-
-Signed-off-by: Sylwester Nawrocki <s.nawrocki at samsung.com>
-Signed-off-by: Kyungmin Park <kyungmin.park at samsung.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/video/s5p-fimc/fimc-capture.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/media/video/s5p-fimc/fimc-capture.c b/drivers/media/video/s5p-fimc/fimc-capture.c
-index 2cc3b91..327a81f 100644
---- a/drivers/media/video/s5p-fimc/fimc-capture.c
-+++ b/drivers/media/video/s5p-fimc/fimc-capture.c
-@@ -1304,7 +1304,7 @@ static int fimc_subdev_set_crop(struct v4l2_subdev *sd,
- 	fimc_capture_try_crop(ctx, r, crop->pad);
- 
- 	if (crop->which == V4L2_SUBDEV_FORMAT_TRY) {
--		mutex_lock(&fimc->lock);
-+		mutex_unlock(&fimc->lock);
- 		*v4l2_subdev_get_try_crop(fh, crop->pad) = *r;
- 		return 0;
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0029-dm-mpath-check-if-scsi_dh-module-already-loaded-befo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0029-dm-mpath-check-if-scsi_dh-module-already-loaded-befo.patch
deleted file mode 100644
index cbbc4f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0029-dm-mpath-check-if-scsi_dh-module-already-loaded-befo.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 6cbf63344c48a119864df9c5873d0407a32d9872 Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Sat, 12 May 2012 01:43:21 +0100
-Subject: [PATCH 29/56] dm mpath: check if scsi_dh module already loaded
- before trying to load
-
-commit 510193a2d3d2e03ae53b95c0ae4f33cdff02cbf8 upstream.
-
-If the requested scsi_dh module is already loaded then skip
-request_module().
-
-Multipath table loads can hang in an unnecessary __request_module.
-
-Reported-by: Ben Marzinski <bmarzins at redhat.com>
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/dm-mpath.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
-index 801d92d..a417f94 100644
---- a/drivers/md/dm-mpath.c
-+++ b/drivers/md/dm-mpath.c
-@@ -698,8 +698,8 @@ static int parse_hw_handler(struct dm_arg_set *as, struct multipath *m)
- 		return 0;
- 
- 	m->hw_handler_name = kstrdup(dm_shift_arg(as), GFP_KERNEL);
--	request_module("scsi_dh_%s", m->hw_handler_name);
--	if (scsi_dh_handler_exist(m->hw_handler_name) == 0) {
-+	if (!try_then_request_module(scsi_dh_handler_exist(m->hw_handler_name),
-+				     "scsi_dh_%s", m->hw_handler_name)) {
- 		ti->error = "unknown hardware handler type";
- 		ret = -EINVAL;
- 		goto fail;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0030-sparc64-Do-not-clobber-g2-in-xcall_fetch_glob_regs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0030-sparc64-Do-not-clobber-g2-in-xcall_fetch_glob_regs.patch
deleted file mode 100644
index a684875..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0030-sparc64-Do-not-clobber-g2-in-xcall_fetch_glob_regs.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 03ddf7fce874ca8243c81666ca3cc742f195781b Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Thu, 10 May 2012 11:00:46 -0700
-Subject: [PATCH 30/56] sparc64: Do not clobber %g2 in
- xcall_fetch_glob_regs().
-
-[ Upstream commit a5a737e090e25981e99d69f01400e3a80356581c ]
-
-%g2 is meant to hold the CPUID number throughout this routine, since
-at the very beginning, and at the very end, we use %g2 to calculate
-indexes into per-cpu arrays.
-
-However we erroneously clobber it in order to hold the %cwp register
-value mid-stream.
-
-Fix this code to use %g3 for the %cwp read and related calulcations
-instead.
-
-Reported-by: Meelis Roos <mroos at linux.ee>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/sparc/kernel/central.c |    2 +-
- arch/sparc/mm/ultra.S       |    6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/sparc/kernel/central.c b/arch/sparc/kernel/central.c
-index 38d48a5..9708851 100644
---- a/arch/sparc/kernel/central.c
-+++ b/arch/sparc/kernel/central.c
-@@ -269,4 +269,4 @@ static int __init sunfire_init(void)
- 	return 0;
- }
- 
--subsys_initcall(sunfire_init);
-+fs_initcall(sunfire_init);
-diff --git a/arch/sparc/mm/ultra.S b/arch/sparc/mm/ultra.S
-index b57a594..874162a 100644
---- a/arch/sparc/mm/ultra.S
-+++ b/arch/sparc/mm/ultra.S
-@@ -495,11 +495,11 @@ xcall_fetch_glob_regs:
- 	stx		%o7, [%g1 + GR_SNAP_O7]
- 	stx		%i7, [%g1 + GR_SNAP_I7]
- 	/* Don't try this at home kids... */
--	rdpr		%cwp, %g2
--	sub		%g2, 1, %g7
-+	rdpr		%cwp, %g3
-+	sub		%g3, 1, %g7
- 	wrpr		%g7, %cwp
- 	mov		%i7, %g7
--	wrpr		%g2, %cwp
-+	wrpr		%g3, %cwp
- 	stx		%g7, [%g1 + GR_SNAP_RPC]
- 	sethi		%hi(trap_block), %g7
- 	or		%g7, %lo(trap_block), %g7
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0031-gpio-Add-missing-spin_lock_init-in-gpio-ml-ioh-drive.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0031-gpio-Add-missing-spin_lock_init-in-gpio-ml-ioh-drive.patch
deleted file mode 100644
index bc85a02..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0031-gpio-Add-missing-spin_lock_init-in-gpio-ml-ioh-drive.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 37f2f887df9f3c8428bd1776a5c0ca1d302b3ea1 Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin at gmail.com>
-Date: Wed, 1 Feb 2012 10:50:05 +0800
-Subject: [PATCH 31/56] gpio: Add missing spin_lock_init in gpio-ml-ioh driver
-
-commit 7e3a70fb7bccada029c188c89bfbf3c0a63c1500 upstream.
-
-This bug was introduced by commit 54be5663
-"gpio-ml-ioh: Support interrupt function" which adds a spinlock to struct
-ioh_gpio but never init the spinlock.
-
-Signed-off-by: Axel Lin <axel.lin at gmail.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpio/gpio-ml-ioh.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/gpio/gpio-ml-ioh.c b/drivers/gpio/gpio-ml-ioh.c
-index 461958f..271fd49 100644
---- a/drivers/gpio/gpio-ml-ioh.c
-+++ b/drivers/gpio/gpio-ml-ioh.c
-@@ -448,6 +448,7 @@ static int __devinit ioh_gpio_probe(struct pci_dev *pdev,
- 		chip->reg = chip->base;
- 		chip->ch = i;
- 		mutex_init(&chip->lock);
-+		spin_lock_init(&chip->spinlock);
- 		ioh_gpio_setup(chip, num_ports[i]);
- 		ret = gpiochip_add(&chip->gpio);
- 		if (ret) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0032-spi-topcliff-pch-Modify-pci-bus-number-dynamically-t.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0032-spi-topcliff-pch-Modify-pci-bus-number-dynamically-t.patch
deleted file mode 100644
index e46fe62..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0032-spi-topcliff-pch-Modify-pci-bus-number-dynamically-t.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e985aa700788ca6b938d4505cbe1dbdd88a3dbfd Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Fri, 9 Dec 2011 13:11:42 +0900
-Subject: [PATCH 32/56] spi-topcliff-pch: Modify pci-bus number dynamically to
- get DMA device info
-
-commit ee2ece5261a639b89f194d141444b03b4c923179 upstream.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi-topcliff-pch.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index 54b9d2e..3238ec8 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -924,7 +924,8 @@ static void pch_spi_request_dma(struct pch_spi_data *data, int bpw)
- 	dma_cap_set(DMA_SLAVE, mask);
- 
- 	/* Get DMA's dev information */
--	dma_dev = pci_get_bus_and_slot(2, PCI_DEVFN(12, 0));
-+	dma_dev = pci_get_bus_and_slot(data->board_dat->pdev->bus->number,
-+				       PCI_DEVFN(12, 0));
- 
- 	/* Set Tx DMA */
- 	param = &dma->param_tx;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0033-spi-topcliff-pch-Fix-issue-for-transmitting-over-4KB.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0033-spi-topcliff-pch-Fix-issue-for-transmitting-over-4KB.patch
deleted file mode 100644
index f11f8c1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0033-spi-topcliff-pch-Fix-issue-for-transmitting-over-4KB.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From fcd3dfee85be4b4bdde47eecba12490ede6218d2 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Fri, 9 Dec 2011 13:13:27 +0900
-Subject: [PATCH 33/56] spi-topcliff-pch: Fix issue for transmitting over
- 4KByte
-
-commit 7d05b3e868ee0f9231baf40cb77be3df5dd1f18c upstream.
-
-Currently, when spi-topcliff-pch receives transmit request over 4KByte,
-this driver can't process correctly. This driver needs to divide the data
-into 4Kbyte unit.
-This patch fixes the issue.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi-topcliff-pch.c |   66 +++++++++++++++++++++++++++++++++-------
- 1 files changed, 55 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index 3238ec8..1e60827 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -196,6 +196,7 @@ struct pch_spi_data {
- 	struct pch_spi_dma_ctrl dma;
- 	int use_dma;
- 	u8 irq_reg_sts;
-+	int save_total_len;
- };
- 
- /**
-@@ -823,11 +824,13 @@ static void pch_spi_copy_rx_data_for_dma(struct pch_spi_data *data, int bpw)
- 		rx_dma_buf = data->dma.rx_buf_virt;
- 		for (j = 0; j < data->bpw_len; j++)
- 			*rx_buf++ = *rx_dma_buf++ & 0xFF;
-+		data->cur_trans->rx_buf = rx_buf;
- 	} else {
- 		rx_sbuf = data->cur_trans->rx_buf;
- 		rx_dma_sbuf = data->dma.rx_buf_virt;
- 		for (j = 0; j < data->bpw_len; j++)
- 			*rx_sbuf++ = *rx_dma_sbuf++;
-+		data->cur_trans->rx_buf = rx_sbuf;
- 	}
- }
- 
-@@ -853,6 +856,9 @@ static int pch_spi_start_transfer(struct pch_spi_data *data)
- 	rtn = wait_event_interruptible_timeout(data->wait,
- 					       data->transfer_complete,
- 					       msecs_to_jiffies(2 * HZ));
-+	if (!rtn)
-+		dev_err(&data->master->dev,
-+			"%s wait-event timeout\n", __func__);
- 
- 	dma_sync_sg_for_cpu(&data->master->dev, dma->sg_rx_p, dma->nent,
- 			    DMA_FROM_DEVICE);
-@@ -989,6 +995,7 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
- 	int i;
- 	int size;
- 	int rem;
-+	int head;
- 	unsigned long flags;
- 	struct pch_spi_dma_ctrl *dma;
- 
-@@ -1017,6 +1024,11 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
- 	}
- 	data->bpw_len = data->cur_trans->len / (*bpw / 8);
- 
-+	if (data->bpw_len > PCH_BUF_SIZE) {
-+		data->bpw_len = PCH_BUF_SIZE;
-+		data->cur_trans->len -= PCH_BUF_SIZE;
-+	}
-+
- 	/* copy Tx Data */
- 	if (data->cur_trans->tx_buf != NULL) {
- 		if (*bpw == 8) {
-@@ -1031,10 +1043,17 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
- 				*tx_dma_sbuf++ = *tx_sbuf++;
- 		}
- 	}
-+
-+	/* Calculate Rx parameter for DMA transmitting */
- 	if (data->bpw_len > PCH_DMA_TRANS_SIZE) {
--		num = data->bpw_len / PCH_DMA_TRANS_SIZE + 1;
-+		if (data->bpw_len % PCH_DMA_TRANS_SIZE) {
-+			num = data->bpw_len / PCH_DMA_TRANS_SIZE + 1;
-+			rem = data->bpw_len % PCH_DMA_TRANS_SIZE;
-+		} else {
-+			num = data->bpw_len / PCH_DMA_TRANS_SIZE;
-+			rem = PCH_DMA_TRANS_SIZE;
-+		}
- 		size = PCH_DMA_TRANS_SIZE;
--		rem = data->bpw_len % PCH_DMA_TRANS_SIZE;
- 	} else {
- 		num = 1;
- 		size = data->bpw_len;
-@@ -1094,15 +1113,23 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
- 	dma->nent = num;
- 	dma->desc_rx = desc_rx;
- 
--	/* TX */
--	if (data->bpw_len > PCH_DMA_TRANS_SIZE) {
--		num = data->bpw_len / PCH_DMA_TRANS_SIZE;
-+	/* Calculate Tx parameter for DMA transmitting */
-+	if (data->bpw_len > PCH_MAX_FIFO_DEPTH) {
-+		head = PCH_MAX_FIFO_DEPTH - PCH_DMA_TRANS_SIZE;
-+		if (data->bpw_len % PCH_DMA_TRANS_SIZE > 4) {
-+			num = data->bpw_len / PCH_DMA_TRANS_SIZE + 1;
-+			rem = data->bpw_len % PCH_DMA_TRANS_SIZE - head;
-+		} else {
-+			num = data->bpw_len / PCH_DMA_TRANS_SIZE;
-+			rem = data->bpw_len % PCH_DMA_TRANS_SIZE +
-+			      PCH_DMA_TRANS_SIZE - head;
-+		}
- 		size = PCH_DMA_TRANS_SIZE;
--		rem = 16;
- 	} else {
- 		num = 1;
- 		size = data->bpw_len;
- 		rem = data->bpw_len;
-+		head = 0;
- 	}
- 
- 	dma->sg_tx_p = kzalloc(sizeof(struct scatterlist)*num, GFP_ATOMIC);
-@@ -1112,11 +1139,17 @@ static void pch_spi_handle_dma(struct pch_spi_data *data, int *bpw)
- 	for (i = 0; i < num; i++, sg++) {
- 		if (i == 0) {
- 			sg->offset = 0;
-+			sg_set_page(sg, virt_to_page(dma->tx_buf_virt), size + head,
-+				    sg->offset);
-+			sg_dma_len(sg) = size + head;
-+		} else if (i == (num - 1)) {
-+			sg->offset = head + size * i;
-+			sg->offset = sg->offset * (*bpw / 8);
- 			sg_set_page(sg, virt_to_page(dma->tx_buf_virt), rem,
- 				    sg->offset);
- 			sg_dma_len(sg) = rem;
- 		} else {
--			sg->offset = rem + size * (i - 1);
-+			sg->offset = head + size * i;
- 			sg->offset = sg->offset * (*bpw / 8);
- 			sg_set_page(sg, virt_to_page(dma->tx_buf_virt), size,
- 				    sg->offset);
-@@ -1204,6 +1237,7 @@ static void pch_spi_process_messages(struct work_struct *pwork)
- 				    data->current_msg->spi->bits_per_word);
- 	pch_spi_writereg(data->master, PCH_SSNXCR, SSN_NO_CONTROL);
- 	do {
-+		int cnt;
- 		/* If we are already processing a message get the next
- 		transfer structure from the message otherwise retrieve
- 		the 1st transfer request from the message. */
-@@ -1223,11 +1257,20 @@ static void pch_spi_process_messages(struct work_struct *pwork)
- 		}
- 		spin_unlock(&data->lock);
- 
-+		if (!data->cur_trans->len)
-+			goto out;
-+		cnt = (data->cur_trans->len - 1) / PCH_BUF_SIZE + 1;
-+		data->save_total_len = data->cur_trans->len;
- 		if (data->use_dma) {
--			pch_spi_handle_dma(data, &bpw);
--			if (!pch_spi_start_transfer(data))
--				goto out;
--			pch_spi_copy_rx_data_for_dma(data, bpw);
-+			int i;
-+			char *save_rx_buf = data->cur_trans->rx_buf;
-+			for (i = 0; i < cnt; i ++) {
-+				pch_spi_handle_dma(data, &bpw);
-+				if (!pch_spi_start_transfer(data))
-+					goto out;
-+				pch_spi_copy_rx_data_for_dma(data, bpw);
-+			}
-+			data->cur_trans->rx_buf = save_rx_buf;
- 		} else {
- 			pch_spi_set_tx(data, &bpw);
- 			pch_spi_set_ir(data);
-@@ -1238,6 +1281,7 @@ static void pch_spi_process_messages(struct work_struct *pwork)
- 			data->pkt_tx_buff = NULL;
- 		}
- 		/* increment message count */
-+		data->cur_trans->len = data->save_total_len;
- 		data->current_msg->actual_length += data->cur_trans->len;
- 
- 		dev_dbg(&data->master->dev,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0034-spi-topcliff-pch-supports-a-spi-mode-setup-and-bit-o.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0034-spi-topcliff-pch-supports-a-spi-mode-setup-and-bit-o.patch
deleted file mode 100644
index c9d0ab7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0034-spi-topcliff-pch-supports-a-spi-mode-setup-and-bit-o.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 3e43ac1c2f64e955c74f598621363028d87a93c2 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Fri, 9 Dec 2011 13:13:28 +0900
-Subject: [PATCH 34/56] spi-topcliff-pch: supports a spi mode setup and bit
- order setup by IO control
-
-commit f258b44e22e07f5e98ac2260c70acff5784791b6 upstream.
-
-This patch supports a spi mode setup and bit order setup by IO control.
-    spi mode:     mode 0 to mode 3
-    bit order:    LSB first, MSB first
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi-topcliff-pch.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index 1e60827..0c4efed 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -1434,6 +1434,7 @@ static int __devinit pch_spi_pd_probe(struct platform_device *plat_dev)
- 	master->num_chipselect = PCH_MAX_CS;
- 	master->setup = pch_spi_setup;
- 	master->transfer = pch_spi_transfer;
-+	master->mode_bits = SPI_CPOL | SPI_CPHA | SPI_LSB_FIRST;
- 
- 	data->board_dat = board_dat;
- 	data->plat_dev = plat_dev;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0035-spi-topcliff-pch-add-recovery-processing-in-case-wai.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0035-spi-topcliff-pch-add-recovery-processing-in-case-wai.patch
deleted file mode 100644
index 5370de5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0035-spi-topcliff-pch-add-recovery-processing-in-case-wai.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0c6c9c1d69fbdd6a1f54668a2c9f8f306c702728 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Fri, 9 Dec 2011 13:13:29 +0900
-Subject: [PATCH 35/56] spi-topcliff-pch: add recovery processing in case
- wait-event timeout
-
-commit 0f57e168aa109775430c76cc663fb64909813d84 upstream.
-
-Currently, pch_spi_start_transfer failure is not anticipated.
-This patch adds the processing.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi-topcliff-pch.c |   10 +++++++++-
- 1 files changed, 9 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/spi/spi-topcliff-pch.c b/drivers/spi/spi-topcliff-pch.c
-index 0c4efed..1590dbd 100644
---- a/drivers/spi/spi-topcliff-pch.c
-+++ b/drivers/spi/spi-topcliff-pch.c
-@@ -1266,8 +1266,16 @@ static void pch_spi_process_messages(struct work_struct *pwork)
- 			char *save_rx_buf = data->cur_trans->rx_buf;
- 			for (i = 0; i < cnt; i ++) {
- 				pch_spi_handle_dma(data, &bpw);
--				if (!pch_spi_start_transfer(data))
-+				if (!pch_spi_start_transfer(data)) {
-+					data->transfer_complete = true;
-+					data->current_msg->status = -EIO;
-+					data->current_msg->complete
-+						   (data->current_msg->context);
-+					data->bcurrent_msg_processing = false;
-+					data->current_msg = NULL;
-+					data->cur_trans = NULL;
- 					goto out;
-+				}
- 				pch_spi_copy_rx_data_for_dma(data, bpw);
- 			}
- 			data->cur_trans->rx_buf = save_rx_buf;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0036-ext4-avoid-deadlock-on-sync-mounted-FS-w-o-journal.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0036-ext4-avoid-deadlock-on-sync-mounted-FS-w-o-journal.patch
deleted file mode 100644
index ffdd996..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0036-ext4-avoid-deadlock-on-sync-mounted-FS-w-o-journal.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From ee9d8cc0c47d0095d5d27b81b7459fa534c56a67 Mon Sep 17 00:00:00 2001
-From: Eric Sandeen <sandeen at redhat.com>
-Date: Mon, 20 Feb 2012 23:06:18 -0500
-Subject: [PATCH 36/56] ext4: avoid deadlock on sync-mounted FS w/o journal
-
-commit c1bb05a657fb3d8c6179a4ef7980261fae4521d7 upstream.
-
-Processes hang forever on a sync-mounted ext2 file system that
-is mounted with the ext4 module (default in Fedora 16).
-
-I can reproduce this reliably by mounting an ext2 partition with
-"-o sync" and opening a new file an that partition with vim. vim
-will hang in "D" state forever.  The same happens on ext4 without
-a journal.
-
-I am attaching a small patch here that solves this issue for me.
-In the sync mounted case without a journal,
-ext4_handle_dirty_metadata() may call sync_dirty_buffer(), which
-can't be called with buffer lock held.
-
-Also move mb_cache_entry_release inside lock to avoid race
-fixed previously by 8a2bfdcb ext[34]: EA block reference count racing fix
-Note too that ext2 fixed this same problem in 2006 with
-b2f49033 [PATCH] fix deadlock in ext2
-
-Signed-off-by: Martin.Wilck at ts.fujitsu.com
-[sandeen at redhat.com: move mb_cache_entry_release before unlock, edit commit msg]
-Signed-off-by: Eric Sandeen <sandeen at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/xattr.c |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ext4/xattr.c b/fs/ext4/xattr.c
-index 93a00d8..4410ae7 100644
---- a/fs/ext4/xattr.c
-+++ b/fs/ext4/xattr.c
-@@ -487,18 +487,19 @@ ext4_xattr_release_block(handle_t *handle, struct inode *inode,
- 		ext4_free_blocks(handle, inode, bh, 0, 1,
- 				 EXT4_FREE_BLOCKS_METADATA |
- 				 EXT4_FREE_BLOCKS_FORGET);
-+		unlock_buffer(bh);
- 	} else {
- 		le32_add_cpu(&BHDR(bh)->h_refcount, -1);
-+		if (ce)
-+			mb_cache_entry_release(ce);
-+		unlock_buffer(bh);
- 		error = ext4_handle_dirty_metadata(handle, inode, bh);
- 		if (IS_SYNC(inode))
- 			ext4_handle_sync(handle);
- 		dquot_free_block(inode, 1);
- 		ea_bdebug(bh, "refcount now=%d; releasing",
- 			  le32_to_cpu(BHDR(bh)->h_refcount));
--		if (ce)
--			mb_cache_entry_release(ce);
- 	}
--	unlock_buffer(bh);
- out:
- 	ext4_std_error(inode->i_sb, error);
- 	return;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0037-ia64-Add-accept4-syscall.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0037-ia64-Add-accept4-syscall.patch
deleted file mode 100644
index fa24f4d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0037-ia64-Add-accept4-syscall.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 0ab7c7f97658245faa8a63b0e4870f5459f53e6e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=89meric=20Maschino?= <emeric.maschino at gmail.com>
-Date: Mon, 9 Jan 2012 12:55:10 -0800
-Subject: [PATCH 37/56] ia64: Add accept4() syscall
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 65cc21b4523e94d5640542a818748cd3be8cd6b4 upstream.
-
-While debugging udev > 170 failure on Debian Wheezy
-(http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648325), it appears
-that the issue was in fact due to missing accept4() in ia64.
-
-This patch simply adds accept4() to ia64.
-
-Signed-off-by: Émeric Maschino <emeric.maschino at gmail.com>
-Signed-off-by: Tony Luck <tony.luck at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/ia64/include/asm/unistd.h |    3 ++-
- arch/ia64/kernel/entry.S       |    1 +
- 2 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/arch/ia64/include/asm/unistd.h b/arch/ia64/include/asm/unistd.h
-index 7617248..7a3bd25 100644
---- a/arch/ia64/include/asm/unistd.h
-+++ b/arch/ia64/include/asm/unistd.h
-@@ -323,11 +323,12 @@
- #define __NR_sendmmsg			1331
- #define __NR_process_vm_readv		1332
- #define __NR_process_vm_writev		1333
-+#define __NR_accept4			1334
- 
- #ifdef __KERNEL__
- 
- 
--#define NR_syscalls			310 /* length of syscall table */
-+#define NR_syscalls			311 /* length of syscall table */
- 
- /*
-  * The following defines stop scripts/checksyscalls.sh from complaining about
-diff --git a/arch/ia64/kernel/entry.S b/arch/ia64/kernel/entry.S
-index 5b31d46..1ccbe12 100644
---- a/arch/ia64/kernel/entry.S
-+++ b/arch/ia64/kernel/entry.S
-@@ -1779,6 +1779,7 @@ sys_call_table:
- 	data8 sys_sendmmsg
- 	data8 sys_process_vm_readv
- 	data8 sys_process_vm_writev
-+	data8 sys_accept4
- 
- 	.org sys_call_table + 8*NR_syscalls	// guard against failures to increase NR_syscalls
- #endif /* __IA64_ASM_PARAVIRTUALIZED_NATIVE */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0038-brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0038-brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch
deleted file mode 100644
index 09f5e5b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0038-brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 258bf060571803e3260270a579344d4a69eafe98 Mon Sep 17 00:00:00 2001
-From: Arend van Spriel <arend at broadcom.com>
-Date: Thu, 9 Feb 2012 21:08:58 +0100
-Subject: [PATCH 38/56] brcm80211: smac: fix endless retry of A-MPDU
- transmissions
-
-commit 5e379203c7788b7af01150bfadbc74d2797a2ef4 upstream.
-
-The A-MPDU code checked against a retry limit, but it was using
-the wrong variable to do so. This patch fixes this to assure
-proper retry mechanism.
-
-This problem had a side-effect causing the mac80211 flush callback
-to remain waiting forever as well. That side effect has been fixed
-by commit by Stanislaw Gruszka:
-
-commit f96b08a7e6f69c0f0a576554df3df5b1b519c479
-Date:   Tue Jan 17 12:38:50 2012 +0100
-
-    brcmsmac: fix tx queue flush infinite loop
-
-    Reference:
-    https://bugzilla.kernel.org/show_bug.cgi?id=42576
-
-Cc: Stanislaw Gruszka <sgruszka at redhat.com>
-Reviewed-by: Pieter-Paul Giesberts <pieterpg at broadcom.com>
-Reviewed-by: Alwin Beukers <alwin at broadcom.com>
-Signed-off-by: Arend van Spriel <arend at broadcom.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/brcm80211/brcmsmac/ampdu.c |    6 +-----
- 1 files changed, 1 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
-index 7f27dbd..0515862 100644
---- a/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/ampdu.c
-@@ -1053,17 +1053,13 @@ brcms_c_ampdu_dotxstatus_complete(struct ampdu_info *ampdu, struct scb *scb,
- 		}
- 		/* either retransmit or send bar if ack not recd */
- 		if (!ack_recd) {
--			struct ieee80211_tx_rate *txrate =
--			    tx_info->status.rates;
--			if (retry && (txrate[0].count < (int)retry_limit)) {
-+			if (retry && (ini->txretry[index] < (int)retry_limit)) {
- 				ini->txretry[index]++;
- 				ini->tx_in_transit--;
- 				/*
- 				 * Use high prededence for retransmit to
- 				 * give some punch
- 				 */
--				/* brcms_c_txq_enq(wlc, scb, p,
--				 * BRCMS_PRIO_TO_PREC(tid)); */
- 				brcms_c_txq_enq(wlc, scb, p,
- 						BRCMS_PRIO_TO_HI_PREC(tid));
- 			} else {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0039-ARM-7417-1-vfp-ensure-preemption-is-disabled-when-en.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0039-ARM-7417-1-vfp-ensure-preemption-is-disabled-when-en.patch
deleted file mode 100644
index 9c2fe73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0039-ARM-7417-1-vfp-ensure-preemption-is-disabled-when-en.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 51fdc0c99703cfde72be81bef9c7e38ac5c023a0 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 11 May 2012 17:42:37 +0100
-Subject: [PATCH 39/56] ARM: 7417/1: vfp: ensure preemption is disabled when
- enabling VFP access
-
-commit 998de4acb2ba188d20768d1065658377a2e7d29b upstream.
-
-The vfp_enable function enables access to the VFP co-processor register
-space (cp10 and cp11) on the current CPU and must be called with
-preemption disabled. Unfortunately, the vfp_init late initcall does not
-disable preemption and can lead to an oops during boot if thread
-migration occurs at the wrong time and we end up attempting to access
-the FPSID on a CPU with VFP access disabled.
-
-This patch fixes the initcall to call vfp_enable from a non-preemptible
-context on each CPU and adds a BUG_ON(preemptible) to ensure that any
-similar problems are easily spotted in the future.
-
-Reported-by: Hyungwoo Yang <hwoo.yang at gmail.com>
-Signed-off-by: Hyungwoo Yang <hyungwooy at nvidia.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/vfp/vfpmodule.c |   10 ++++++----
- 1 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
-index 8f3ccdd..8ea07e4 100644
---- a/arch/arm/vfp/vfpmodule.c
-+++ b/arch/arm/vfp/vfpmodule.c
-@@ -11,6 +11,7 @@
- #include <linux/types.h>
- #include <linux/cpu.h>
- #include <linux/cpu_pm.h>
-+#include <linux/hardirq.h>
- #include <linux/kernel.h>
- #include <linux/notifier.h>
- #include <linux/signal.h>
-@@ -428,7 +429,10 @@ void VFP_bounce(u32 trigger, u32 fpexc, struct pt_regs *regs)
- 
- static void vfp_enable(void *unused)
- {
--	u32 access = get_copro_access();
-+	u32 access;
-+
-+	BUG_ON(preemptible());
-+	access = get_copro_access();
- 
- 	/*
- 	 * Enable full access to VFP (cp10 and cp11)
-@@ -556,7 +560,7 @@ static int __init vfp_init(void)
- 	unsigned int cpu_arch = cpu_architecture();
- 
- 	if (cpu_arch >= CPU_ARCH_ARMv6)
--		vfp_enable(NULL);
-+		on_each_cpu(vfp_enable, NULL, 1);
- 
- 	/*
- 	 * First check that there is a VFP that we can use.
-@@ -577,8 +581,6 @@ static int __init vfp_init(void)
- 	} else {
- 		hotcpu_notifier(vfp_hotplug, 0);
- 
--		smp_call_function(vfp_enable, NULL, 1);
--
- 		VFP_arch = (vfpsid & FPSID_ARCH_MASK) >> FPSID_ARCH_BIT;  /* Extract the architecture version */
- 		printk("implementor %02x architecture %d part %02x variant %x rev %x\n",
- 			(vfpsid & FPSID_IMPLEMENTER_MASK) >> FPSID_IMPLEMENTER_BIT,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0040-target-Fix-SPC-2-RELEASE-bug-for-multi-session-iSCSI.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0040-target-Fix-SPC-2-RELEASE-bug-for-multi-session-iSCSI.patch
deleted file mode 100644
index cf2db91..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0040-target-Fix-SPC-2-RELEASE-bug-for-multi-session-iSCSI.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From b081b9481296d51cdb05548b8f67888a240a675f Mon Sep 17 00:00:00 2001
-From: Bernhard Kohl <Riedel-und-Kohl at t-online.de>
-Date: Sun, 13 May 2012 23:39:37 +0200
-Subject: [PATCH 40/56] target: Fix SPC-2 RELEASE bug for multi-session iSCSI
- client setups
-
-commit edc318d9fea6854df752ec8c645b960b0d5a1d23 upstream.
-
-This patch addresses a bug in a special case for target core SPC-2 RELEASE
-logic where the same physical client (eg: iSCSI InitiatorName) with
-differing iSCSI session identifiers (ISID) is allowed to incorrectly release
-the same client's SPC-2 reservation from the non reservation holding path.
-
-Note this bug is specific to iscsi-target w/ SPC-2 reservations, and
-with the default enforce_pr_isids=1 device attr setting in target-core
-controls if a InitiatorName + different ISID reservations are handled
-the same as a single iSCSI client entity.
-
-Signed-off-by: Bernhard Kohl <bernhard.kohl at gmx.net>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_pr.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index 6cf6ff4..b75bc92 100644
---- a/drivers/target/target_core_pr.c
-+++ b/drivers/target/target_core_pr.c
-@@ -223,6 +223,9 @@ int target_scsi2_reservation_release(struct se_task *task)
- 	if (dev->dev_reserved_node_acl != sess->se_node_acl)
- 		goto out_unlock;
- 
-+	if (dev->dev_res_bin_isid != sess->sess_bin_isid)
-+		goto out_unlock;
-+
- 	dev->dev_reserved_node_acl = NULL;
- 	dev->dev_flags &= ~DF_SPC2_RESERVATIONS;
- 	if (dev->dev_flags & DF_SPC2_RESERVATIONS_WITH_ISID) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0041-crypto-mv_cesa-requires-on-CRYPTO_HASH-to-build.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0041-crypto-mv_cesa-requires-on-CRYPTO_HASH-to-build.patch
deleted file mode 100644
index 8176064..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0041-crypto-mv_cesa-requires-on-CRYPTO_HASH-to-build.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From d5f0e3adeaf18edfac8b3c7d8f867fe92923a4ab Mon Sep 17 00:00:00 2001
-From: Alexander Clouter <alex at digriz.org.uk>
-Date: Sat, 12 May 2012 09:45:08 +0100
-Subject: [PATCH 41/56] crypto: mv_cesa requires on CRYPTO_HASH to build
-
-commit 1ebfefcf37a6e308266a8d786e8cfea0a454058c upstream.
-
-Without CRYPTO_HASH being selected, mv_cesa has a lot of hooks
-into undefined exports.
-----
-  MODPOST 81 modules
-  Kernel: arch/arm/boot/Image is ready
-  AS      arch/arm/boot/compressed/head.o
-  GZIP    arch/arm/boot/compressed/piggy.gzip
-  CC      arch/arm/boot/compressed/misc.o
-  CC      arch/arm/boot/compressed/decompress.o
-ERROR: "crypto_ahash_type" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_shash_final" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_register_ahash" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_unregister_ahash" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_shash_update" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_shash_digest" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_shash_setkey" [drivers/crypto/mv_cesa.ko] undefined!
-ERROR: "crypto_alloc_shash" [drivers/crypto/mv_cesa.ko] undefined!
-make[1]: *** [__modpost] Error 1
-make: *** [modules] Error 2
-make: *** Waiting for unfinished jobs....
-----
-
-Signed-off-by: Alexander Clouter <alex at digriz.org.uk>
-Signed-off-by: Jason Cooper <jason at lakedaemon.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/crypto/Kconfig |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/crypto/Kconfig b/drivers/crypto/Kconfig
-index 6d16b4b..7e3002b 100644
---- a/drivers/crypto/Kconfig
-+++ b/drivers/crypto/Kconfig
-@@ -173,6 +173,7 @@ config CRYPTO_DEV_MV_CESA
- 	select CRYPTO_ALGAPI
- 	select CRYPTO_AES
- 	select CRYPTO_BLKCIPHER2
-+	select CRYPTO_HASH
- 	help
- 	  This driver allows you to utilize the Cryptographic Engines and
- 	  Security Accelerator (CESA) which can be found on the Marvell Orion
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0042-ALSA-hda-idt-Fix-power-map-for-speaker-pins-with-som.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0042-ALSA-hda-idt-Fix-power-map-for-speaker-pins-with-som.patch
deleted file mode 100644
index 21705fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0042-ALSA-hda-idt-Fix-power-map-for-speaker-pins-with-som.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e7a10d7bb94e2d5618757447f0ac108d8951b4a6 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Tue, 15 May 2012 08:07:31 +0200
-Subject: [PATCH 42/56] ALSA: hda/idt - Fix power-map for speaker-pins with
- some HP laptops
-
-commit b0791dda813c179e539b0fc1ecd3f5f30f2571e2 upstream.
-
-BIOS on some HP laptops don't set the speaker-pins as fixed but expose
-as jacks, and this confuses the driver as if these pins are
-jack-detectable.  As a result, the machine doesn't get sounds from
-speakers because the driver prepares the power-map update via jack
-unsol events which never come up in reality.  The bug was introduced
-in some time in 3.2 for enabling the power-mapping feature.
-
-This patch fixes the problem by replacing the check of the persistent
-power-map bits with a proper is_jack_detectable() call.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43240
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_sigmatel.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index ed67698..7b7a516 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -4484,9 +4484,9 @@ static int stac92xx_init(struct hda_codec *codec)
- 		def_conf = get_defcfg_connect(def_conf);
- 		/* skip any ports that don't have jacks since presence
-  		 * detection is useless */
--		if (def_conf != AC_JACK_PORT_COMPLEX) {
--			if (def_conf != AC_JACK_PORT_NONE)
--				stac_toggle_power_map(codec, nid, 1);
-+		if (def_conf != AC_JACK_PORT_NONE &&
-+		    !is_jack_detectable(codec, nid)) {
-+			stac_toggle_power_map(codec, nid, 1);
- 			continue;
- 		}
- 		if (enable_pin_detect(codec, nid, STAC_PWR_EVENT)) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0043-ASoC-wm8994-Fix-AIF2ADC-power-down.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0043-ASoC-wm8994-Fix-AIF2ADC-power-down.patch
deleted file mode 100644
index 505ca3f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0043-ASoC-wm8994-Fix-AIF2ADC-power-down.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From ffbe8f6bb9d1b143aa8d3e37c4c237219b71544d Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Tue, 15 May 2012 18:13:00 +0100
-Subject: [PATCH 43/56] ASoC: wm8994: Fix AIF2ADC power down
-
-commit c7f5f2389377b66028bc129890aa653deafe8d39 upstream.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/wm8994.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index 7806301..3e7aa22 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -1027,7 +1027,7 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
- 		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
- 				    WM8994_AIF2DACL_ENA |
- 				    WM8994_AIF2DACR_ENA, 0);
--		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-+		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_4,
- 				    WM8994_AIF2ADCL_ENA |
- 				    WM8994_AIF2ADCR_ENA, 0);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0044-usbnet-fix-skb-traversing-races-during-unlink-v2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0044-usbnet-fix-skb-traversing-races-during-unlink-v2.patch
deleted file mode 100644
index 080b001..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0044-usbnet-fix-skb-traversing-races-during-unlink-v2.patch
+++ /dev/null
@@ -1,222 +0,0 @@
-From 5dc6e8a33ae9998d96530b6e6778654685d02b86 Mon Sep 17 00:00:00 2001
-From: Ming Lei <tom.leiming at gmail.com>
-Date: Thu, 26 Apr 2012 11:33:46 +0800
-Subject: [PATCH 44/56] usbnet: fix skb traversing races during unlink(v2)
-
-commit 5b6e9bcdeb65634b4ad604eb4536404bbfc62cfa upstream.
-
-Commit 4231d47e6fe69f061f96c98c30eaf9fb4c14b96d(net/usbnet: avoid
-recursive locking in usbnet_stop()) fixes the recursive locking
-problem by releasing the skb queue lock before unlink, but may
-cause skb traversing races:
-	- after URB is unlinked and the queue lock is released,
-	the refered skb and skb->next may be moved to done queue,
-	even be released
-	- in skb_queue_walk_safe, the next skb is still obtained
-	by next pointer of the last skb
-	- so maybe trigger oops or other problems
-
-This patch extends the usage of entry->state to describe 'start_unlink'
-state, so always holding the queue(rx/tx) lock to change the state if
-the referd skb is in rx or tx queue because we need to know if the
-refered urb has been started unlinking in unlink_urbs.
-
-The other part of this patch is based on Huajun's patch:
-always traverse from head of the tx/rx queue to get skb which is
-to be unlinked but not been started unlinking.
-
-Signed-off-by: Huajun Li <huajun.li.lee at gmail.com>
-Signed-off-by: Ming Lei <tom.leiming at gmail.com>
-Cc: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/usbnet.c   |   54 +++++++++++++++++++++++++++++++-------------
- include/linux/usb/usbnet.h |    3 +-
- 2 files changed, 40 insertions(+), 17 deletions(-)
-
-diff --git a/drivers/net/usb/usbnet.c b/drivers/net/usb/usbnet.c
-index 750e330..b873b5d 100644
---- a/drivers/net/usb/usbnet.c
-+++ b/drivers/net/usb/usbnet.c
-@@ -281,17 +281,32 @@ int usbnet_change_mtu (struct net_device *net, int new_mtu)
- }
- EXPORT_SYMBOL_GPL(usbnet_change_mtu);
- 
-+/* The caller must hold list->lock */
-+static void __usbnet_queue_skb(struct sk_buff_head *list,
-+			struct sk_buff *newsk, enum skb_state state)
-+{
-+	struct skb_data *entry = (struct skb_data *) newsk->cb;
-+
-+	__skb_queue_tail(list, newsk);
-+	entry->state = state;
-+}
-+
- /*-------------------------------------------------------------------------*/
- 
- /* some LK 2.4 HCDs oopsed if we freed or resubmitted urbs from
-  * completion callbacks.  2.5 should have fixed those bugs...
-  */
- 
--static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_head *list)
-+static enum skb_state defer_bh(struct usbnet *dev, struct sk_buff *skb,
-+		struct sk_buff_head *list, enum skb_state state)
- {
- 	unsigned long		flags;
-+	enum skb_state 		old_state;
-+	struct skb_data *entry = (struct skb_data *) skb->cb;
- 
- 	spin_lock_irqsave(&list->lock, flags);
-+	old_state = entry->state;
-+	entry->state = state;
- 	__skb_unlink(skb, list);
- 	spin_unlock(&list->lock);
- 	spin_lock(&dev->done.lock);
-@@ -299,6 +314,7 @@ static void defer_bh(struct usbnet *dev, struct sk_buff *skb, struct sk_buff_hea
- 	if (dev->done.qlen == 1)
- 		tasklet_schedule(&dev->bh);
- 	spin_unlock_irqrestore(&dev->done.lock, flags);
-+	return old_state;
- }
- 
- /* some work can't be done in tasklets, so we use keventd
-@@ -339,7 +355,6 @@ static int rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags)
- 	entry = (struct skb_data *) skb->cb;
- 	entry->urb = urb;
- 	entry->dev = dev;
--	entry->state = rx_start;
- 	entry->length = 0;
- 
- 	usb_fill_bulk_urb (urb, dev->udev, dev->in,
-@@ -371,7 +386,7 @@ static int rx_submit (struct usbnet *dev, struct urb *urb, gfp_t flags)
- 			tasklet_schedule (&dev->bh);
- 			break;
- 		case 0:
--			__skb_queue_tail (&dev->rxq, skb);
-+			__usbnet_queue_skb(&dev->rxq, skb, rx_start);
- 		}
- 	} else {
- 		netif_dbg(dev, ifdown, dev->net, "rx: stopped\n");
-@@ -422,16 +437,17 @@ static void rx_complete (struct urb *urb)
- 	struct skb_data		*entry = (struct skb_data *) skb->cb;
- 	struct usbnet		*dev = entry->dev;
- 	int			urb_status = urb->status;
-+	enum skb_state		state;
- 
- 	skb_put (skb, urb->actual_length);
--	entry->state = rx_done;
-+	state = rx_done;
- 	entry->urb = NULL;
- 
- 	switch (urb_status) {
- 	/* success */
- 	case 0:
- 		if (skb->len < dev->net->hard_header_len) {
--			entry->state = rx_cleanup;
-+			state = rx_cleanup;
- 			dev->net->stats.rx_errors++;
- 			dev->net->stats.rx_length_errors++;
- 			netif_dbg(dev, rx_err, dev->net,
-@@ -470,7 +486,7 @@ static void rx_complete (struct urb *urb)
- 				  "rx throttle %d\n", urb_status);
- 		}
- block:
--		entry->state = rx_cleanup;
-+		state = rx_cleanup;
- 		entry->urb = urb;
- 		urb = NULL;
- 		break;
-@@ -481,17 +497,18 @@ block:
- 		// FALLTHROUGH
- 
- 	default:
--		entry->state = rx_cleanup;
-+		state = rx_cleanup;
- 		dev->net->stats.rx_errors++;
- 		netif_dbg(dev, rx_err, dev->net, "rx status %d\n", urb_status);
- 		break;
- 	}
- 
--	defer_bh(dev, skb, &dev->rxq);
-+	state = defer_bh(dev, skb, &dev->rxq, state);
- 
- 	if (urb) {
- 		if (netif_running (dev->net) &&
--		    !test_bit (EVENT_RX_HALT, &dev->flags)) {
-+		    !test_bit (EVENT_RX_HALT, &dev->flags) &&
-+		    state != unlink_start) {
- 			rx_submit (dev, urb, GFP_ATOMIC);
- 			return;
- 		}
-@@ -577,16 +594,23 @@ EXPORT_SYMBOL_GPL(usbnet_purge_paused_rxq);
- static int unlink_urbs (struct usbnet *dev, struct sk_buff_head *q)
- {
- 	unsigned long		flags;
--	struct sk_buff		*skb, *skbnext;
-+	struct sk_buff		*skb;
- 	int			count = 0;
- 
- 	spin_lock_irqsave (&q->lock, flags);
--	skb_queue_walk_safe(q, skb, skbnext) {
-+	while (!skb_queue_empty(q)) {
- 		struct skb_data		*entry;
- 		struct urb		*urb;
- 		int			retval;
- 
--		entry = (struct skb_data *) skb->cb;
-+		skb_queue_walk(q, skb) {
-+			entry = (struct skb_data *) skb->cb;
-+			if (entry->state != unlink_start)
-+				goto found;
-+		}
-+		break;
-+found:
-+		entry->state = unlink_start;
- 		urb = entry->urb;
- 
- 		/*
-@@ -1037,8 +1061,7 @@ static void tx_complete (struct urb *urb)
- 	}
- 
- 	usb_autopm_put_interface_async(dev->intf);
--	entry->state = tx_done;
--	defer_bh(dev, skb, &dev->txq);
-+	(void) defer_bh(dev, skb, &dev->txq, tx_done);
- }
- 
- /*-------------------------------------------------------------------------*/
-@@ -1094,7 +1117,6 @@ netdev_tx_t usbnet_start_xmit (struct sk_buff *skb,
- 	entry = (struct skb_data *) skb->cb;
- 	entry->urb = urb;
- 	entry->dev = dev;
--	entry->state = tx_start;
- 	entry->length = length;
- 
- 	usb_fill_bulk_urb (urb, dev->udev, dev->out,
-@@ -1153,7 +1175,7 @@ netdev_tx_t usbnet_start_xmit (struct sk_buff *skb,
- 		break;
- 	case 0:
- 		net->trans_start = jiffies;
--		__skb_queue_tail (&dev->txq, skb);
-+		__usbnet_queue_skb(&dev->txq, skb, tx_start);
- 		if (dev->txq.qlen >= TX_QLEN (dev))
- 			netif_stop_queue (net);
- 	}
-diff --git a/include/linux/usb/usbnet.h b/include/linux/usb/usbnet.h
-index 605b0aa..76f4396 100644
---- a/include/linux/usb/usbnet.h
-+++ b/include/linux/usb/usbnet.h
-@@ -191,7 +191,8 @@ extern void usbnet_cdc_status(struct usbnet *, struct urb *);
- enum skb_state {
- 	illegal = 0,
- 	tx_start, tx_done,
--	rx_start, rx_done, rx_cleanup
-+	rx_start, rx_done, rx_cleanup,
-+	unlink_start
- };
- 
- struct skb_data {	/* skb->cb is one of these */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0045-cdc_ether-add-Novatel-USB551L-device-IDs-for-FLAG_WW.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0045-cdc_ether-add-Novatel-USB551L-device-IDs-for-FLAG_WW.patch
deleted file mode 100644
index 2310ee5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0045-cdc_ether-add-Novatel-USB551L-device-IDs-for-FLAG_WW.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 3a586ee50e3f8a380125a8ce332de9f4c0ef727e Mon Sep 17 00:00:00 2001
-From: Dan Williams <dcbw at redhat.com>
-Date: Mon, 7 May 2012 04:24:51 +0000
-Subject: [PATCH 45/56] cdc_ether: add Novatel USB551L device IDs for
- FLAG_WWAN
-
-commit 4e6304b8420aba5311ba21fd68dab2924ae4d91a upstream.
-
-Needs to be tagged with FLAG_WWAN, which since it has generic
-descriptors, won't happen if we don't override the generic
-driver info.
-
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Dan Williams <dcbw at redhat.com>
-Acked-by: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/cdc_ether.c |   16 ++++++++++++++++
- 1 files changed, 16 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/usb/cdc_ether.c b/drivers/net/usb/cdc_ether.c
-index eac4886..2ba40cf 100644
---- a/drivers/net/usb/cdc_ether.c
-+++ b/drivers/net/usb/cdc_ether.c
-@@ -482,6 +482,7 @@ static const struct driver_info wwan_info = {
- /*-------------------------------------------------------------------------*/
- 
- #define HUAWEI_VENDOR_ID	0x12D1
-+#define NOVATEL_VENDOR_ID	0x1410
- 
- static const struct usb_device_id	products [] = {
- /*
-@@ -599,6 +600,21 @@ static const struct usb_device_id	products [] = {
-  * because of bugs/quirks in a given product (like Zaurus, above).
-  */
- {
-+	/* Novatel USB551L */
-+	/* This match must come *before* the generic CDC-ETHER match so that
-+	 * we get FLAG_WWAN set on the device, since it's descriptors are
-+	 * generic CDC-ETHER.
-+	 */
-+	.match_flags    =   USB_DEVICE_ID_MATCH_VENDOR
-+		 | USB_DEVICE_ID_MATCH_PRODUCT
-+		 | USB_DEVICE_ID_MATCH_INT_INFO,
-+	.idVendor               = NOVATEL_VENDOR_ID,
-+	.idProduct		= 0xB001,
-+	.bInterfaceClass	= USB_CLASS_COMM,
-+	.bInterfaceSubClass	= USB_CDC_SUBCLASS_ETHERNET,
-+	.bInterfaceProtocol	= USB_CDC_PROTO_NONE,
-+	.driver_info = (unsigned long)&wwan_info,
-+}, {
- 	USB_INTERFACE_INFO(USB_CLASS_COMM, USB_CDC_SUBCLASS_ETHERNET,
- 			USB_CDC_PROTO_NONE),
- 	.driver_info = (unsigned long) &cdc_info,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0046-ARM-prevent-VM_GROWSDOWN-mmaps-extending-below-FIRST.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0046-ARM-prevent-VM_GROWSDOWN-mmaps-extending-below-FIRST.patch
deleted file mode 100644
index 59cacc9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0046-ARM-prevent-VM_GROWSDOWN-mmaps-extending-below-FIRST.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From bb7f36d5a6a8621f37a79996cfbf0f0318862fcd Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel at arm.linux.org.uk>
-Date: Wed, 16 May 2012 15:19:20 +0100
-Subject: [PATCH 46/56] ARM: prevent VM_GROWSDOWN mmaps extending below
- FIRST_USER_ADDRESS
-
-commit 9b61a4d1b2064dbd0c9e61754305ac852170509f upstream.
-
-Reported-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mm/fault.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mm/fault.c b/arch/arm/mm/fault.c
-index aa33949..4b0bc37 100644
---- a/arch/arm/mm/fault.c
-+++ b/arch/arm/mm/fault.c
-@@ -267,7 +267,9 @@ good_area:
- 	return fault;
- 
- check_stack:
--	if (vma->vm_flags & VM_GROWSDOWN && !expand_stack(vma, addr))
-+	/* Don't allow expansion below FIRST_USER_ADDRESS */
-+	if (vma->vm_flags & VM_GROWSDOWN &&
-+	    addr >= FIRST_USER_ADDRESS && !expand_stack(vma, addr))
- 		goto good_area;
- out:
- 	return fault;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0047-arch-tile-apply-commit-74fca9da0-to-the-compat-signa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0047-arch-tile-apply-commit-74fca9da0-to-the-compat-signa.patch
deleted file mode 100644
index 2b95a67..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0047-arch-tile-apply-commit-74fca9da0-to-the-compat-signa.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 4fb637e8e8bd6149d99d92389a104494bb234540 Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Wed, 16 May 2012 14:54:20 -0400
-Subject: [PATCH 47/56] arch/tile: apply commit 74fca9da0 to the compat signal
- handling as well
-
-commit a134d228298c6aa9007205c6b81cae0cac0acb5d upstream.
-
-This passes siginfo and mcontext to tilegx32 signal handlers that
-don't have SA_SIGINFO set just as we have been doing for tilegx64.
-
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/tile/kernel/compat_signal.c |   12 +++++-------
- 1 files changed, 5 insertions(+), 7 deletions(-)
-
-diff --git a/arch/tile/kernel/compat_signal.c b/arch/tile/kernel/compat_signal.c
-index a7869ad..41459d8 100644
---- a/arch/tile/kernel/compat_signal.c
-+++ b/arch/tile/kernel/compat_signal.c
-@@ -406,19 +406,17 @@ int compat_setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
- 	 * Set up registers for signal handler.
- 	 * Registers that we don't modify keep the value they had from
- 	 * user-space at the time we took the signal.
-+	 * We always pass siginfo and mcontext, regardless of SA_SIGINFO,
-+	 * since some things rely on this (e.g. glibc's debug/segfault.c).
- 	 */
- 	regs->pc = ptr_to_compat_reg(ka->sa.sa_handler);
- 	regs->ex1 = PL_ICS_EX1(USER_PL, 1); /* set crit sec in handler */
- 	regs->sp = ptr_to_compat_reg(frame);
- 	regs->lr = restorer;
- 	regs->regs[0] = (unsigned long) usig;
--
--	if (ka->sa.sa_flags & SA_SIGINFO) {
--		/* Need extra arguments, so mark to restore caller-saves. */
--		regs->regs[1] = ptr_to_compat_reg(&frame->info);
--		regs->regs[2] = ptr_to_compat_reg(&frame->uc);
--		regs->flags |= PT_FLAGS_CALLER_SAVES;
--	}
-+	regs->regs[1] = ptr_to_compat_reg(&frame->info);
-+	regs->regs[2] = ptr_to_compat_reg(&frame->uc);
-+	regs->flags |= PT_FLAGS_CALLER_SAVES;
- 
- 	/*
- 	 * Notify any tracer that was single-stepping it.
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0048-MD-Add-del_timer_sync-to-mddev_suspend-fix-nasty-pan.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0048-MD-Add-del_timer_sync-to-mddev_suspend-fix-nasty-pan.patch
deleted file mode 100644
index 8daf07a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0048-MD-Add-del_timer_sync-to-mddev_suspend-fix-nasty-pan.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From efbb3ae65b6bd81ebb5b7487fdfc4d65812b0825 Mon Sep 17 00:00:00 2001
-From: Jonathan Brassow <jbrassow at redhat.com>
-Date: Wed, 16 May 2012 04:06:14 -0500
-Subject: [PATCH 48/56] MD: Add del_timer_sync to mddev_suspend (fix nasty
- panic)
-
-commit 0d9f4f135eb6dea06bdcb7065b1e4ff78274a5e9 upstream.
-
-Use del_timer_sync to remove timer before mddev_suspend finishes.
-
-We don't want a timer going off after an mddev_suspend is called.  This is
-especially true with device-mapper, since it can call the destructor function
-immediately following a suspend.  This results in the removal (kfree) of the
-structures upon which the timer depends - resulting in a very ugly panic.
-Therefore, we add a del_timer_sync to mddev_suspend to prevent this.
-
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/md.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 065ab4f..adcd850 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -392,6 +392,8 @@ void mddev_suspend(struct mddev *mddev)
- 	synchronize_rcu();
- 	wait_event(mddev->sb_wait, atomic_read(&mddev->active_io) == 0);
- 	mddev->pers->quiesce(mddev, 1);
-+
-+	del_timer_sync(&mddev->safemode_timer);
- }
- EXPORT_SYMBOL_GPL(mddev_suspend);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0049-target-Fix-bug-in-handling-of-FILEIO-block_device-re.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0049-target-Fix-bug-in-handling-of-FILEIO-block_device-re.patch
deleted file mode 100644
index 9422e65..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0049-target-Fix-bug-in-handling-of-FILEIO-block_device-re.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 08671b3fdc83c369484ee2b4e9bfab6b0a6ee48d Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Wed, 16 May 2012 16:05:26 -0700
-Subject: [PATCH 49/56] target: Fix bug in handling of FILEIO + block_device
- resize ops
-
-commit cd9323fd68aee3c1c6b5b21e5746c9d1b586fb58 upstream.
-
-This patch fixes a bug in the handling of FILEIO w/ underlying block_device
-resize operations where the original fd_dev->fd_dev_size was incorrectly being
-used in fd_get_blocks() for READ_CAPACITY response payloads.
-
-This patch avoids using fd_dev->fd_dev_size for FILEIO devices with
-an underlying block_device, and instead changes fd_get_blocks() to
-get the sector count directly from i_size_read() as recommended by hch.
-
-Reported-by: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_file.c |   22 ++++++++++++++++------
- 1 files changed, 16 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
-index b4864fb..cad8b92 100644
---- a/drivers/target/target_core_file.c
-+++ b/drivers/target/target_core_file.c
-@@ -170,6 +170,7 @@ static struct se_device *fd_create_virtdevice(
- 	inode = file->f_mapping->host;
- 	if (S_ISBLK(inode->i_mode)) {
- 		struct request_queue *q;
-+		unsigned long long dev_size;
- 		/*
- 		 * Setup the local scope queue_limits from struct request_queue->limits
- 		 * to pass into transport_add_device_to_core_hba() as struct se_dev_limits.
-@@ -184,13 +185,12 @@ static struct se_device *fd_create_virtdevice(
- 		 * one (1) logical sector from underlying struct block_device
- 		 */
- 		fd_dev->fd_block_size = bdev_logical_block_size(inode->i_bdev);
--		fd_dev->fd_dev_size = (i_size_read(file->f_mapping->host) -
-+		dev_size = (i_size_read(file->f_mapping->host) -
- 				       fd_dev->fd_block_size);
- 
- 		pr_debug("FILEIO: Using size: %llu bytes from struct"
- 			" block_device blocks: %llu logical_block_size: %d\n",
--			fd_dev->fd_dev_size,
--			div_u64(fd_dev->fd_dev_size, fd_dev->fd_block_size),
-+			dev_size, div_u64(dev_size, fd_dev->fd_block_size),
- 			fd_dev->fd_block_size);
- 	} else {
- 		if (!(fd_dev->fbd_flags & FBDF_HAS_SIZE)) {
-@@ -606,10 +606,20 @@ static u32 fd_get_device_type(struct se_device *dev)
- static sector_t fd_get_blocks(struct se_device *dev)
- {
- 	struct fd_dev *fd_dev = dev->dev_ptr;
--	unsigned long long blocks_long = div_u64(fd_dev->fd_dev_size,
--			dev->se_sub_dev->se_dev_attrib.block_size);
-+	struct file *f = fd_dev->fd_file;
-+	struct inode *i = f->f_mapping->host;
-+	unsigned long long dev_size;
-+	/*
-+	 * When using a file that references an underlying struct block_device,
-+	 * ensure dev_size is always based on the current inode size in order
-+	 * to handle underlying block_device resize operations.
-+	 */
-+	if (S_ISBLK(i->i_mode))
-+		dev_size = (i_size_read(i) - fd_dev->fd_block_size);
-+	else
-+		dev_size = fd_dev->fd_dev_size;
- 
--	return blocks_long;
-+	return div_u64(dev_size, dev->se_sub_dev->se_dev_attrib.block_size);
- }
- 
- static struct se_subsystem_api fileio_template = {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0050-tcp-do_tcp_sendpages-must-try-to-push-data-out-on-oo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0050-tcp-do_tcp_sendpages-must-try-to-push-data-out-on-oo.patch
deleted file mode 100644
index 1e3a68b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0050-tcp-do_tcp_sendpages-must-try-to-push-data-out-on-oo.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 8c6c5b3fb938b8af747c79cfe8c5cb39db72202a Mon Sep 17 00:00:00 2001
-From: Willy Tarreau <w at 1wt.eu>
-Date: Thu, 17 May 2012 11:14:14 +0000
-Subject: [PATCH 50/56] tcp: do_tcp_sendpages() must try to push data out on
- oom conditions
-
-commit bad115cfe5b509043b684d3a007ab54b80090aa1 upstream.
-
-Since recent changes on TCP splicing (starting with commits 2f533844
-"tcp: allow splice() to build full TSO packets" and 35f9c09f "tcp:
-tcp_sendpages() should call tcp_push() once"), I started seeing
-massive stalls when forwarding traffic between two sockets using
-splice() when pipe buffers were larger than socket buffers.
-
-Latest changes (net: netdev_alloc_skb() use build_skb()) made the
-problem even more apparent.
-
-The reason seems to be that if do_tcp_sendpages() fails on out of memory
-condition without being able to send at least one byte, tcp_push() is not
-called and the buffers cannot be flushed.
-
-After applying the attached patch, I cannot reproduce the stalls at all
-and the data rate it perfectly stable and steady under any condition
-which previously caused the problem to be permanent.
-
-The issue seems to have been there since before the kernel migrated to
-git, which makes me think that the stalls I occasionally experienced
-with tux during stress-tests years ago were probably related to the
-same issue.
-
-This issue was first encountered on 3.0.31 and 3.2.17, so please backport
-to -stable.
-
-Signed-off-by: Willy Tarreau <w at 1wt.eu>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 8f826b1..11ba922 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -851,8 +851,7 @@ new_segment:
- wait_for_sndbuf:
- 		set_bit(SOCK_NOSPACE, &sk->sk_socket->flags);
- wait_for_memory:
--		if (copied)
--			tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH);
-+		tcp_push(sk, flags & ~MSG_MORE, mss_now, TCP_NAGLE_PUSH);
- 
- 		if ((err = sk_stream_wait_memory(sk, &timeo)) != 0)
- 			goto do_error;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0051-e1000-Prevent-reset-task-killing-itself.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0051-e1000-Prevent-reset-task-killing-itself.patch
deleted file mode 100644
index 1a3cdf4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0051-e1000-Prevent-reset-task-killing-itself.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 4cad7c8fe708e7795f298240e246cec993a7e74b Mon Sep 17 00:00:00 2001
-From: Tushar Dave <tushar.n.dave at intel.com>
-Date: Thu, 17 May 2012 01:04:50 +0000
-Subject: [PATCH 51/56] e1000: Prevent reset task killing itself.
-
-commit 8ce6909f77ba1b7bcdea65cc2388fd1742b6d669 upstream.
-
-Killing reset task while adapter is resetting causes deadlock.
-Only kill reset task if adapter is not resetting.
-Ref bug #43132 on bugzilla.kernel.org
-
-Signed-off-by: Tushar Dave <tushar.n.dave at intel.com>
-Tested-by: Aaron Brown <aaron.f.brown at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/intel/e1000/e1000_main.c |    6 +++++-
- 1 files changed, 5 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
-index cf480b5..de00805 100644
---- a/drivers/net/ethernet/intel/e1000/e1000_main.c
-+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
-@@ -494,7 +494,11 @@ out:
- static void e1000_down_and_stop(struct e1000_adapter *adapter)
- {
- 	set_bit(__E1000_DOWN, &adapter->flags);
--	cancel_work_sync(&adapter->reset_task);
-+
-+	/* Only kill reset task if adapter is not resetting */
-+	if (!test_bit(__E1000_RESETTING, &adapter->flags))
-+		cancel_work_sync(&adapter->reset_task);
-+
- 	cancel_delayed_work_sync(&adapter->watchdog_task);
- 	cancel_delayed_work_sync(&adapter->phy_info_task);
- 	cancel_delayed_work_sync(&adapter->fifo_stall_task);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0052-mtd-map.h-fix-arm-cross-build-failure.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0052-mtd-map.h-fix-arm-cross-build-failure.patch
deleted file mode 100644
index 297eb07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0052-mtd-map.h-fix-arm-cross-build-failure.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From e3478e0a8885a446eed02cd159394c0ea74ecfd0 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Fri, 30 Dec 2011 18:28:01 +0200
-Subject: [PATCH 52/56] mtd: map.h: fix arm cross-build failure
-
-commit 4a42243886b87cd28a39b192161767c2af851a55 upstream.
-
-This patch fixes the following build failure:
-In file included from include/linux/mtd/qinfo.h:4:0,
-                 from include/linux/mtd/pfow.h:7,
-                 from drivers/mtd/lpddr/lpddr_cmds.c:27:
-include/linux/mtd/map.h: In function 'inline_map_read':
-include/linux/mtd/map.h:409:3: error: implicit declaration of function 'BUILD_BUG_ON' [-Werror=implicit-function-declaration]
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/mtd/map.h |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/include/linux/mtd/map.h b/include/linux/mtd/map.h
-index a9e6ba4..daad4e6 100644
---- a/include/linux/mtd/map.h
-+++ b/include/linux/mtd/map.h
-@@ -26,7 +26,7 @@
- #include <linux/list.h>
- #include <linux/string.h>
- #include <linux/bug.h>
--
-+#include <linux/kernel.h>
- 
- #include <asm/unaligned.h>
- #include <asm/system.h>
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0053-stmmac-Fix-compilation-error-in-mmc_core.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0053-stmmac-Fix-compilation-error-in-mmc_core.c.patch
deleted file mode 100644
index 5a0b0d7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0053-stmmac-Fix-compilation-error-in-mmc_core.c.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 19ccd03475be60d00e4ac87f05020c31201ae29d Mon Sep 17 00:00:00 2001
-From: Stefan Roese <sr at denx.de>
-Date: Tue, 10 Jan 2012 01:47:40 +0000
-Subject: [PATCH 53/56] stmmac: Fix compilation error in mmc_core.c
-
-commit 1dd8117e3320fb42ec40ef2ace982871572d34ed upstream.
-
-Fix this error:
-
-  CC      drivers/net/ethernet/stmicro/stmmac/mmc_core.o
-drivers/net/ethernet/stmicro/stmmac/mmc_core.c: In function 'dwmac_mmc_ctrl':
-drivers/net/ethernet/stmicro/stmmac/mmc_core.c:143:2: error: implicit
-  declaration of function 'pr_debug' [-Werror=implicit-function-declaration]
-
-Signed-off-by: Stefan Roese <sr at denx.de>
-Cc: Giuseppe Cavallaro <peppe.cavallaro at st.com>
-Acked-by: Giuseppe Cavallaro <peppe.cavallaro at st.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/stmicro/stmmac/mmc_core.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
-index 41e6b33..c07cfe9 100644
---- a/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/mmc_core.c
-@@ -22,6 +22,7 @@
-   Author: Giuseppe Cavallaro <peppe.cavallaro at st.com>
- *******************************************************************************/
- 
-+#include <linux/kernel.h>
- #include <linux/io.h>
- #include "mmc.h"
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0054-pktgen-fix-crash-at-module-unload.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0054-pktgen-fix-crash-at-module-unload.patch
deleted file mode 100644
index 3d38f55..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0054-pktgen-fix-crash-at-module-unload.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 0db05d78c77595936a7494aa049850169c49b861 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Wed, 9 May 2012 13:29:51 +0000
-Subject: [PATCH 54/56] pktgen: fix crash at module unload
-
-commit c57b54684060c8aced64a5b78ff69ff289af97b9 upstream.
-
-commit 7d3d43dab4e9 (net: In unregister_netdevice_notifier unregister
-the netdevices.) makes pktgen crashing at module unload.
-
-[  296.820578] BUG: spinlock bad magic on CPU#6, rmmod/3267
-[  296.820719]  lock: ffff880310c38000, .magic: ffff8803, .owner: <none>/-1, .owner_cpu: -1
-[  296.820943] Pid: 3267, comm: rmmod Not tainted 3.4.0-rc5+ #254
-[  296.821079] Call Trace:
-[  296.821211]  [<ffffffff8168a715>] spin_dump+0x8a/0x8f
-[  296.821345]  [<ffffffff8168a73b>] spin_bug+0x21/0x26
-[  296.821507]  [<ffffffff812b4741>] do_raw_spin_lock+0x131/0x140
-[  296.821648]  [<ffffffff8169188e>] _raw_spin_lock+0x1e/0x20
-[  296.821786]  [<ffffffffa00cc0fd>] __pktgen_NN_threads+0x4d/0x140 [pktgen]
-[  296.821928]  [<ffffffffa00ccf8d>] pktgen_device_event+0x10d/0x1e0 [pktgen]
-[  296.822073]  [<ffffffff8154ed4f>] unregister_netdevice_notifier+0x7f/0x100
-[  296.822216]  [<ffffffffa00d2a0b>] pg_cleanup+0x48/0x73 [pktgen]
-[  296.822357]  [<ffffffff8109528e>] sys_delete_module+0x17e/0x2a0
-[  296.822502]  [<ffffffff81699652>] system_call_fastpath+0x16/0x1b
-
-Hold the pktgen_thread_lock while splicing pktgen_threads, and test
-pktgen_exiting in pktgen_device_event() to make unload faster.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Eric W. Biederman <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/pktgen.c |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/net/core/pktgen.c b/net/core/pktgen.c
-index 0001c24..657e5f9 100644
---- a/net/core/pktgen.c
-+++ b/net/core/pktgen.c
-@@ -1932,7 +1932,7 @@ static int pktgen_device_event(struct notifier_block *unused,
- {
- 	struct net_device *dev = ptr;
- 
--	if (!net_eq(dev_net(dev), &init_net))
-+	if (!net_eq(dev_net(dev), &init_net) || pktgen_exiting)
- 		return NOTIFY_DONE;
- 
- 	/* It is OK that we do not hold the group lock right now,
-@@ -3758,12 +3758,18 @@ static void __exit pg_cleanup(void)
- {
- 	struct pktgen_thread *t;
- 	struct list_head *q, *n;
-+	struct list_head list;
- 
- 	/* Stop all interfaces & threads */
- 	pktgen_exiting = true;
- 
--	list_for_each_safe(q, n, &pktgen_threads) {
-+	mutex_lock(&pktgen_thread_lock);
-+	list_splice(&list, &pktgen_threads);
-+	mutex_unlock(&pktgen_thread_lock);
-+
-+	list_for_each_safe(q, n, &list) {
- 		t = list_entry(q, struct pktgen_thread, th_list);
-+		list_del(&t->th_list);
- 		kthread_stop(t->tsk);
- 		kfree(t);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0055-pktgen-fix-module-unload-for-good.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0055-pktgen-fix-module-unload-for-good.patch
deleted file mode 100644
index 1f86f35..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0055-pktgen-fix-module-unload-for-good.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 20b87e11f8ebb8b1fa74b668770c7f2b301b40b4 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Thu, 17 May 2012 23:52:26 +0000
-Subject: [PATCH 55/56] pktgen: fix module unload for good
-
-commit d4b1133558e0d417342d5d2c49e4c35b428ff20d upstream.
-
-commit c57b5468406 (pktgen: fix crash at module unload) did a very poor
-job with list primitives.
-
-1) list_splice() arguments were in the wrong order
-
-2) list_splice(list, head) has undefined behavior if head is not
-initialized.
-
-3) We should use the list_splice_init() variant to clear pktgen_threads
-list.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/pktgen.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/core/pktgen.c b/net/core/pktgen.c
-index 657e5f9..df878de 100644
---- a/net/core/pktgen.c
-+++ b/net/core/pktgen.c
-@@ -3758,13 +3758,13 @@ static void __exit pg_cleanup(void)
- {
- 	struct pktgen_thread *t;
- 	struct list_head *q, *n;
--	struct list_head list;
-+	LIST_HEAD(list);
- 
- 	/* Stop all interfaces & threads */
- 	pktgen_exiting = true;
- 
- 	mutex_lock(&pktgen_thread_lock);
--	list_splice(&list, &pktgen_threads);
-+	list_splice_init(&pktgen_threads, &list);
- 	mutex_unlock(&pktgen_thread_lock);
- 
- 	list_for_each_safe(q, n, &list) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0056-Linux-3.2.18.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0056-Linux-3.2.18.patch
deleted file mode 100644
index a8809ed..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.18/0056-Linux-3.2.18.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From c04a2fde6b61eb063267b611c43371e61d0cabc3 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 20 May 2012 22:56:54 +0100
-Subject: [PATCH 56/56] Linux 3.2.18
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 4c4efa3..add68f1 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 17
-+SUBLEVEL = 18
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0001-KVM-mmu_notifier-Flush-TLBs-before-releasing-mmu_loc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0001-KVM-mmu_notifier-Flush-TLBs-before-releasing-mmu_loc.patch
deleted file mode 100644
index dff41fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0001-KVM-mmu_notifier-Flush-TLBs-before-releasing-mmu_loc.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From e29e69cb6dff635429cbda9a9548c3d0390689f9 Mon Sep 17 00:00:00 2001
-From: Takuya Yoshikawa <yoshikawa.takuya at oss.ntt.co.jp>
-Date: Fri, 10 Feb 2012 15:28:31 +0900
-Subject: [PATCH 001/117] KVM: mmu_notifier: Flush TLBs before releasing
- mmu_lock
-
-(cherry picked from commit 565f3be2174611f364405bbea2d86e153c2e7e78
-
-Other threads may process the same page in that small window and skip
-TLB flush and then return before these functions do flush.
-
-Signed-off-by: Takuya Yoshikawa <yoshikawa.takuya at oss.ntt.co.jp>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- virt/kvm/kvm_main.c |   19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index e401c1b..9ffac2e 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -289,15 +289,15 @@ static void kvm_mmu_notifier_invalidate_page(struct mmu_notifier *mn,
- 	 */
- 	idx = srcu_read_lock(&kvm->srcu);
- 	spin_lock(&kvm->mmu_lock);
-+
- 	kvm->mmu_notifier_seq++;
- 	need_tlb_flush = kvm_unmap_hva(kvm, address) | kvm->tlbs_dirty;
--	spin_unlock(&kvm->mmu_lock);
--	srcu_read_unlock(&kvm->srcu, idx);
--
- 	/* we've to flush the tlb before the pages can be freed */
- 	if (need_tlb_flush)
- 		kvm_flush_remote_tlbs(kvm);
- 
-+	spin_unlock(&kvm->mmu_lock);
-+	srcu_read_unlock(&kvm->srcu, idx);
- }
- 
- static void kvm_mmu_notifier_change_pte(struct mmu_notifier *mn,
-@@ -335,12 +335,12 @@ static void kvm_mmu_notifier_invalidate_range_start(struct mmu_notifier *mn,
- 	for (; start < end; start += PAGE_SIZE)
- 		need_tlb_flush |= kvm_unmap_hva(kvm, start);
- 	need_tlb_flush |= kvm->tlbs_dirty;
--	spin_unlock(&kvm->mmu_lock);
--	srcu_read_unlock(&kvm->srcu, idx);
--
- 	/* we've to flush the tlb before the pages can be freed */
- 	if (need_tlb_flush)
- 		kvm_flush_remote_tlbs(kvm);
-+
-+	spin_unlock(&kvm->mmu_lock);
-+	srcu_read_unlock(&kvm->srcu, idx);
- }
- 
- static void kvm_mmu_notifier_invalidate_range_end(struct mmu_notifier *mn,
-@@ -378,13 +378,14 @@ static int kvm_mmu_notifier_clear_flush_young(struct mmu_notifier *mn,
- 
- 	idx = srcu_read_lock(&kvm->srcu);
- 	spin_lock(&kvm->mmu_lock);
--	young = kvm_age_hva(kvm, address);
--	spin_unlock(&kvm->mmu_lock);
--	srcu_read_unlock(&kvm->srcu, idx);
- 
-+	young = kvm_age_hva(kvm, address);
- 	if (young)
- 		kvm_flush_remote_tlbs(kvm);
- 
-+	spin_unlock(&kvm->mmu_lock);
-+	srcu_read_unlock(&kvm->srcu, idx);
-+
- 	return young;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0002-KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0002-KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch
deleted file mode 100644
index 801ab45..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0002-KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From 54719e9d5196e2af1e358795de9face038502343 Mon Sep 17 00:00:00 2001
-From: Avi Kivity <avi at redhat.com>
-Date: Mon, 5 Mar 2012 14:23:29 +0200
-Subject: [PATCH 002/117] KVM: Ensure all vcpus are consistent with in-kernel
- irqchip settings
-
-(cherry picked from commit 3e515705a1f46beb1c942bb8043c16f8ac7b1e9e)
-
-If some vcpus are created before KVM_CREATE_IRQCHIP, then
-irqchip_in_kernel() and vcpu->arch.apic will be inconsistent, leading
-to potential NULL pointer dereferences.
-
-Fix by:
-- ensuring that no vcpus are installed when KVM_CREATE_IRQCHIP is called
-- ensuring that a vcpu has an apic if it is installed after KVM_CREATE_IRQCHIP
-
-This is somewhat long winded because vcpu->arch.apic is created without
-kvm->lock held.
-
-Based on earlier patch by Michael Ellerman.
-
-Signed-off-by: Michael Ellerman <michael at ellerman.id.au>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/ia64/kvm/kvm-ia64.c |    5 +++++
- arch/x86/kvm/x86.c       |    8 ++++++++
- include/linux/kvm_host.h |    7 +++++++
- virt/kvm/kvm_main.c      |    4 ++++
- 4 files changed, 24 insertions(+)
-
-diff --git a/arch/ia64/kvm/kvm-ia64.c b/arch/ia64/kvm/kvm-ia64.c
-index 43f4c92..7073185 100644
---- a/arch/ia64/kvm/kvm-ia64.c
-+++ b/arch/ia64/kvm/kvm-ia64.c
-@@ -1169,6 +1169,11 @@ out:
- 
- #define PALE_RESET_ENTRY    0x80000000ffffffb0UL
- 
-+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
-+{
-+	return irqchip_in_kernel(vcpu->kcm) == (vcpu->arch.apic != NULL);
-+}
-+
- int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
- {
- 	struct kvm_vcpu *v;
-diff --git a/arch/x86/kvm/x86.c b/arch/x86/kvm/x86.c
-index e04cae1..4fc5323 100644
---- a/arch/x86/kvm/x86.c
-+++ b/arch/x86/kvm/x86.c
-@@ -3579,6 +3579,9 @@ long kvm_arch_vm_ioctl(struct file *filp,
- 		r = -EEXIST;
- 		if (kvm->arch.vpic)
- 			goto create_irqchip_unlock;
-+		r = -EINVAL;
-+		if (atomic_read(&kvm->online_vcpus))
-+			goto create_irqchip_unlock;
- 		r = -ENOMEM;
- 		vpic = kvm_create_pic(kvm);
- 		if (vpic) {
-@@ -6486,6 +6489,11 @@ void kvm_arch_check_processor_compat(void *rtn)
- 	kvm_x86_ops->check_processor_compatibility(rtn);
- }
- 
-+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu)
-+{
-+	return irqchip_in_kernel(vcpu->kvm) == (vcpu->arch.apic != NULL);
-+}
-+
- int kvm_arch_vcpu_init(struct kvm_vcpu *vcpu)
- {
- 	struct page *page;
-diff --git a/include/linux/kvm_host.h b/include/linux/kvm_host.h
-index 35410ef..6136821 100644
---- a/include/linux/kvm_host.h
-+++ b/include/linux/kvm_host.h
-@@ -744,6 +744,13 @@ static inline bool kvm_vcpu_is_bsp(struct kvm_vcpu *vcpu)
- {
- 	return vcpu->kvm->bsp_vcpu_id == vcpu->vcpu_id;
- }
-+
-+bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu);
-+
-+#else
-+
-+static inline bool kvm_vcpu_compatible(struct kvm_vcpu *vcpu) { return true; }
-+
- #endif
- 
- #ifdef __KVM_HAVE_DEVICE_ASSIGNMENT
-diff --git a/virt/kvm/kvm_main.c b/virt/kvm/kvm_main.c
-index 9ffac2e..ec747dc 100644
---- a/virt/kvm/kvm_main.c
-+++ b/virt/kvm/kvm_main.c
-@@ -1667,6 +1667,10 @@ static int kvm_vm_ioctl_create_vcpu(struct kvm *kvm, u32 id)
- 		goto vcpu_destroy;
- 
- 	mutex_lock(&kvm->lock);
-+	if (!kvm_vcpu_compatible(vcpu)) {
-+		r = -EINVAL;
-+		goto unlock_vcpu_destroy;
-+	}
- 	if (atomic_read(&kvm->online_vcpus) == KVM_MAX_VCPUS) {
- 		r = -EINVAL;
- 		goto unlock_vcpu_destroy;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0003-KVM-lock-slots_lock-around-device-assignment.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0003-KVM-lock-slots_lock-around-device-assignment.patch
deleted file mode 100644
index 12c9a1e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0003-KVM-lock-slots_lock-around-device-assignment.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 2464830dde6595631a26a5178946f8d8d0ac974f Mon Sep 17 00:00:00 2001
-From: Alex Williamson <alex.williamson at redhat.com>
-Date: Tue, 17 Apr 2012 21:46:44 -0600
-Subject: [PATCH 003/117] KVM: lock slots_lock around device assignment
-
-(cherry picked from commit 21a1416a1c945c5aeaeaf791b63c64926018eb77)
-
-As pointed out by Jason Baron, when assigning a device to a guest
-we first set the iommu domain pointer, which enables mapping
-and unmapping of memory slots to the iommu.  This leaves a window
-where this path is enabled, but we haven't synchronized the iommu
-mappings to the existing memory slots.  Thus a slot being removed
-at that point could send us down unexpected code paths removing
-non-existent pinnings and iommu mappings.  Take the slots_lock
-around creating the iommu domain and initial mappings as well as
-around iommu teardown to avoid this race.
-
-Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- virt/kvm/iommu.c |   23 +++++++++++++++--------
- 1 file changed, 15 insertions(+), 8 deletions(-)
-
-diff --git a/virt/kvm/iommu.c b/virt/kvm/iommu.c
-index fd817a2..533db33 100644
---- a/virt/kvm/iommu.c
-+++ b/virt/kvm/iommu.c
-@@ -239,9 +239,13 @@ int kvm_iommu_map_guest(struct kvm *kvm)
- 		return -ENODEV;
- 	}
- 
-+	mutex_lock(&kvm->slots_lock);
-+
- 	kvm->arch.iommu_domain = iommu_domain_alloc(&pci_bus_type);
--	if (!kvm->arch.iommu_domain)
--		return -ENOMEM;
-+	if (!kvm->arch.iommu_domain) {
-+		r = -ENOMEM;
-+		goto out_unlock;
-+	}
- 
- 	if (!allow_unsafe_assigned_interrupts &&
- 	    !iommu_domain_has_cap(kvm->arch.iommu_domain,
-@@ -252,17 +256,16 @@ int kvm_iommu_map_guest(struct kvm *kvm)
- 		       " module option.\n", __func__);
- 		iommu_domain_free(kvm->arch.iommu_domain);
- 		kvm->arch.iommu_domain = NULL;
--		return -EPERM;
-+		r = -EPERM;
-+		goto out_unlock;
- 	}
- 
- 	r = kvm_iommu_map_memslots(kvm);
- 	if (r)
--		goto out_unmap;
--
--	return 0;
-+		kvm_iommu_unmap_memslots(kvm);
- 
--out_unmap:
--	kvm_iommu_unmap_memslots(kvm);
-+out_unlock:
-+	mutex_unlock(&kvm->slots_lock);
- 	return r;
- }
- 
-@@ -338,7 +341,11 @@ int kvm_iommu_unmap_guest(struct kvm *kvm)
- 	if (!domain)
- 		return 0;
- 
-+	mutex_lock(&kvm->slots_lock);
- 	kvm_iommu_unmap_memslots(kvm);
-+	kvm->arch.iommu_domain = NULL;
-+	mutex_unlock(&kvm->slots_lock);
-+
- 	iommu_domain_free(domain);
- 	return 0;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0004-KVM-nVMX-Fix-erroneous-exception-bitmap-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0004-KVM-nVMX-Fix-erroneous-exception-bitmap-check.patch
deleted file mode 100644
index 34538bd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0004-KVM-nVMX-Fix-erroneous-exception-bitmap-check.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c997d0a009e5eb7b372287c13fc9eaba901533e8 Mon Sep 17 00:00:00 2001
-From: Nadav Har'El <nyh at math.technion.ac.il>
-Date: Tue, 6 Mar 2012 16:39:22 +0200
-Subject: [PATCH 004/117] KVM: nVMX: Fix erroneous exception bitmap check
-
-(cherry picked from commit 9587190107d0c0cbaccbf7bf6b0245d29095a9ae)
-
-The code which checks whether to inject a pagefault to L1 or L2 (in
-nested VMX) was wrong, incorrect in how it checked the PF_VECTOR bit.
-Thanks to Dan Carpenter for spotting this.
-
-Signed-off-by: Nadav Har'El <nyh at il.ibm.com>
-Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kvm/vmx.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 4ea7678..7ac5993 100644
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -1677,7 +1677,7 @@ static int nested_pf_handled(struct kvm_vcpu *vcpu)
- 	struct vmcs12 *vmcs12 = get_vmcs12(vcpu);
- 
- 	/* TODO: also check PFEC_MATCH/MASK, not just EB.PF. */
--	if (!(vmcs12->exception_bitmap & PF_VECTOR))
-+	if (!(vmcs12->exception_bitmap & (1u << PF_VECTOR)))
- 		return 0;
- 
- 	nested_vmx_vmexit(vcpu);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0005-KVM-VMX-vmx_set_cr0-expects-kvm-srcu-locked.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0005-KVM-VMX-vmx_set_cr0-expects-kvm-srcu-locked.patch
deleted file mode 100644
index 6a3536f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0005-KVM-VMX-vmx_set_cr0-expects-kvm-srcu-locked.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 6d02e81e40e77ff4e0d65ae89cf91a7402d3255f Mon Sep 17 00:00:00 2001
-From: Marcelo Tosatti <mtosatti at redhat.com>
-Date: Tue, 27 Mar 2012 19:47:26 -0300
-Subject: [PATCH 005/117] KVM: VMX: vmx_set_cr0 expects kvm->srcu locked
-
-(cherry picked from commit 7a4f5ad051e02139a9f1c0f7f4b1acb88915852b)
-
-vmx_set_cr0 is called from vcpu run context, therefore it expects
-kvm->srcu to be held (for setting up the real-mode TSS).
-
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kvm/vmx.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 7ac5993..7315488 100644
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -3915,7 +3915,9 @@ static int vmx_vcpu_reset(struct kvm_vcpu *vcpu)
- 		vmcs_write16(VIRTUAL_PROCESSOR_ID, vmx->vpid);
- 
- 	vmx->vcpu.arch.cr0 = X86_CR0_NW | X86_CR0_CD | X86_CR0_ET;
-+	vcpu->srcu_idx = srcu_read_lock(&vcpu->kvm->srcu);
- 	vmx_set_cr0(&vmx->vcpu, kvm_read_cr0(vcpu)); /* enter rmode */
-+	srcu_read_unlock(&vcpu->kvm->srcu, vcpu->srcu_idx);
- 	vmx_set_cr4(&vmx->vcpu, 0);
- 	vmx_set_efer(&vmx->vcpu, 0);
- 	vmx_fpu_activate(&vmx->vcpu);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0006-KVM-s390-do-store-status-after-handling-STOP_ON_STOP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0006-KVM-s390-do-store-status-after-handling-STOP_ON_STOP.patch
deleted file mode 100644
index f47e28d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0006-KVM-s390-do-store-status-after-handling-STOP_ON_STOP.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 4ec77e205d0abcfd9d48332ac0a8d60322966562 Mon Sep 17 00:00:00 2001
-From: Jens Freimann <jfrei at linux.vnet.ibm.com>
-Date: Mon, 6 Feb 2012 10:59:03 +0100
-Subject: [PATCH 006/117] KVM: s390: do store status after handling
- STOP_ON_STOP bit
-
-(cherry picked from commit 9e0d5473e2f0ba2d2fe9dab9408edef3060b710e)
-
-In handle_stop() handle the stop bit before doing the store status as
-described for "Stop and Store Status" in the Principles of Operation.
-We have to give up the local_int.lock before calling kvm store status
-since it calls gmap_fault() which might sleep. Since local_int.lock
-only protects local_int.* and not guest memory we can give up the lock.
-
-Signed-off-by: Jens Freimann <jfrei at linux.vnet.ibm.com>
-Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/kvm/intercept.c |   20 ++++++++++++--------
- 1 file changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/arch/s390/kvm/intercept.c b/arch/s390/kvm/intercept.c
-index 0243454..a5f6eff 100644
---- a/arch/s390/kvm/intercept.c
-+++ b/arch/s390/kvm/intercept.c
-@@ -133,13 +133,6 @@ static int handle_stop(struct kvm_vcpu *vcpu)
- 
- 	vcpu->stat.exit_stop_request++;
- 	spin_lock_bh(&vcpu->arch.local_int.lock);
--	if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) {
--		vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP;
--		rc = kvm_s390_vcpu_store_status(vcpu,
--						  KVM_S390_STORE_STATUS_NOADDR);
--		if (rc >= 0)
--			rc = -EOPNOTSUPP;
--	}
- 
- 	if (vcpu->arch.local_int.action_bits & ACTION_RELOADVCPU_ON_STOP) {
- 		vcpu->arch.local_int.action_bits &= ~ACTION_RELOADVCPU_ON_STOP;
-@@ -155,7 +148,18 @@ static int handle_stop(struct kvm_vcpu *vcpu)
- 		rc = -EOPNOTSUPP;
- 	}
- 
--	spin_unlock_bh(&vcpu->arch.local_int.lock);
-+	if (vcpu->arch.local_int.action_bits & ACTION_STORE_ON_STOP) {
-+		vcpu->arch.local_int.action_bits &= ~ACTION_STORE_ON_STOP;
-+		/* store status must be called unlocked. Since local_int.lock
-+		 * only protects local_int.* and not guest memory we can give
-+		 * up the lock here */
-+		spin_unlock_bh(&vcpu->arch.local_int.lock);
-+		rc = kvm_s390_vcpu_store_status(vcpu,
-+						KVM_S390_STORE_STATUS_NOADDR);
-+		if (rc >= 0)
-+			rc = -EOPNOTSUPP;
-+	} else
-+		spin_unlock_bh(&vcpu->arch.local_int.lock);
- 	return rc;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0007-KVM-s390-Sanitize-fpc-registers-for-KVM_SET_FPU.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0007-KVM-s390-Sanitize-fpc-registers-for-KVM_SET_FPU.patch
deleted file mode 100644
index cd494d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0007-KVM-s390-Sanitize-fpc-registers-for-KVM_SET_FPU.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 12632a351defb18140a84df1720a363d94991973 Mon Sep 17 00:00:00 2001
-From: Christian Borntraeger <borntraeger at de.ibm.com>
-Date: Mon, 6 Feb 2012 10:59:02 +0100
-Subject: [PATCH 007/117] KVM: s390: Sanitize fpc registers for KVM_SET_FPU
-
-(cherry picked from commit 851755871c1f3184f4124c466e85881f17fa3226)
-
-commit 7eef87dc99e419b1cc051e4417c37e4744d7b661 (KVM: s390: fix
-register setting) added a load of the floating point control register
-to the KVM_SET_FPU path. Lets make sure that the fpc is valid.
-
-Signed-off-by: Christian Borntraeger <borntraeger at de.ibm.com>
-Signed-off-by: Marcelo Tosatti <mtosatti at redhat.com>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/kvm/kvm-s390.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/s390/kvm/kvm-s390.c b/arch/s390/kvm/kvm-s390.c
-index d1c44573..d3cb86c 100644
---- a/arch/s390/kvm/kvm-s390.c
-+++ b/arch/s390/kvm/kvm-s390.c
-@@ -418,7 +418,7 @@ int kvm_arch_vcpu_ioctl_get_sregs(struct kvm_vcpu *vcpu,
- int kvm_arch_vcpu_ioctl_set_fpu(struct kvm_vcpu *vcpu, struct kvm_fpu *fpu)
- {
- 	memcpy(&vcpu->arch.guest_fpregs.fprs, &fpu->fprs, sizeof(fpu->fprs));
--	vcpu->arch.guest_fpregs.fpc = fpu->fpc;
-+	vcpu->arch.guest_fpregs.fpc = fpu->fpc & FPC_VALID_MASK;
- 	restore_fp_regs(&vcpu->arch.guest_fpregs);
- 	return 0;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0008-bio-don-t-overflow-in-bio_get_nr_vecs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0008-bio-don-t-overflow-in-bio_get_nr_vecs.patch
deleted file mode 100644
index d0b79e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0008-bio-don-t-overflow-in-bio_get_nr_vecs.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From ac72e8c98ddb0c511b506472d9bc5afcf720babc Mon Sep 17 00:00:00 2001
-From: Kent Overstreet <kent.overstreet at gmail.com>
-Date: Wed, 8 Feb 2012 22:07:18 +0100
-Subject: [PATCH 008/117] bio: don't overflow in bio_get_nr_vecs()
-
-commit 5abebfdd02450fa1349daacf242e70b3736581e3 upstream.
-
-There were two places bio_get_nr_vecs() could overflow:
-
-First, it did a left shift to convert from sectors to bytes immediately
-before dividing by PAGE_SIZE.  If PAGE_SIZE ever was less than 512 a great
-many things would break, so dividing by PAGE_SIZE >> 9 is safe and will
-generate smaller code too.
-
-The nastier overflow was in the DIV_ROUND_UP() (that's what the code was
-effectively doing, anyways).  If n + d overflowed, the whole thing would
-return 0 which breaks things rather effectively.
-
-bio_get_nr_vecs() doesn't claim to give an exact value anyways, so the
-DIV_ROUND_UP() is silly; we could do a straight divide except if a
-device's queue_max_sectors was less than PAGE_SIZE we'd return 0.  So we
-just add 1; this should always be safe - things will break badly if
-bio_get_nr_vecs() returns > BIO_MAX_PAGES (bio_alloc() will suddenly start
-failing) but it's queue_max_segments that must guard against this, if
-queue_max_sectors is preventing this from happen things are going to
-explode on architectures with different PAGE_SIZE.
-
-Signed-off-by: Kent Overstreet <koverstreet at google.com>
-Cc: Tejun Heo <tj at kernel.org>
-Acked-by: Valdis Kletnieks <Valdis.Kletnieks at vt.edu>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/bio.c |   10 +++-------
- 1 file changed, 3 insertions(+), 7 deletions(-)
-
-diff --git a/fs/bio.c b/fs/bio.c
-index b1fe82c..b980ecd 100644
---- a/fs/bio.c
-+++ b/fs/bio.c
-@@ -505,13 +505,9 @@ EXPORT_SYMBOL(bio_clone);
- int bio_get_nr_vecs(struct block_device *bdev)
- {
- 	struct request_queue *q = bdev_get_queue(bdev);
--	int nr_pages;
--
--	nr_pages = ((queue_max_sectors(q) << 9) + PAGE_SIZE - 1) >> PAGE_SHIFT;
--	if (nr_pages > queue_max_segments(q))
--		nr_pages = queue_max_segments(q);
--
--	return nr_pages;
-+	return min_t(unsigned,
-+		     queue_max_segments(q),
-+		     queue_max_sectors(q) / (PAGE_SIZE >> 9) + 1);
- }
- EXPORT_SYMBOL(bio_get_nr_vecs);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0009-bio-allocation-failure-due-to-bio_get_nr_vecs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0009-bio-allocation-failure-due-to-bio_get_nr_vecs.patch
deleted file mode 100644
index 1be8875..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0009-bio-allocation-failure-due-to-bio_get_nr_vecs.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From a98c14f6d0a745c09fa0ebf22c2ce8913c211d9b Mon Sep 17 00:00:00 2001
-From: Bernd Schubert <bernd.schubert at itwm.fraunhofer.de>
-Date: Fri, 11 May 2012 16:36:44 +0200
-Subject: [PATCH 009/117] bio allocation failure due to bio_get_nr_vecs()
-
-commit f908ee9463b09ddd05e1c1a0111132212dc05fac upstream.
-
-The number of bio_get_nr_vecs() is passed down via bio_alloc() to
-bvec_alloc_bs(), which fails the bio allocation if
-nr_iovecs > BIO_MAX_PAGES. For the underlying caller this causes an
-unexpected bio allocation failure.
-Limiting to queue_max_segments() is not sufficient, as max_segments
-also might be very large.
-
-bvec_alloc_bs(gfp_mask, nr_iovecs, ) => NULL when nr_iovecs  > BIO_MAX_PAGES
-bio_alloc_bioset(gfp_mask, nr_iovecs, ...)
-bio_alloc(GFP_NOIO, nvecs)
-xfs_alloc_ioend_bio()
-
-Signed-off-by: Bernd Schubert <bernd.schubert at itwm.fraunhofer.de>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/bio.c |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/fs/bio.c b/fs/bio.c
-index b980ecd..4fc4dbb 100644
---- a/fs/bio.c
-+++ b/fs/bio.c
-@@ -505,9 +505,14 @@ EXPORT_SYMBOL(bio_clone);
- int bio_get_nr_vecs(struct block_device *bdev)
- {
- 	struct request_queue *q = bdev_get_queue(bdev);
--	return min_t(unsigned,
-+	int nr_pages;
-+
-+	nr_pages = min_t(unsigned,
- 		     queue_max_segments(q),
- 		     queue_max_sectors(q) / (PAGE_SIZE >> 9) + 1);
-+
-+	return min_t(unsigned, nr_pages, BIO_MAX_PAGES);
-+
- }
- EXPORT_SYMBOL(bio_get_nr_vecs);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0010-block-fix-buffer-overflow-when-printing-partition-UU.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0010-block-fix-buffer-overflow-when-printing-partition-UU.patch
deleted file mode 100644
index 65aff34..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0010-block-fix-buffer-overflow-when-printing-partition-UU.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 6a6f5fba154e1400185844d74b953fba440fda63 Mon Sep 17 00:00:00 2001
-From: Tejun Heo <tj at kernel.org>
-Date: Tue, 15 May 2012 08:22:04 +0200
-Subject: [PATCH 010/117] block: fix buffer overflow when printing partition
- UUIDs
-
-commit 05c69d298c96703741cac9a5cbbf6c53bd55a6e2 upstream.
-
-6d1d8050b4bc8 "block, partition: add partition_meta_info to hd_struct"
-added part_unpack_uuid() which assumes that the passed in buffer has
-enough space for sprintfing "%pU" - 37 characters including '\0'.
-
-Unfortunately, b5af921ec0233 "init: add support for root devices
-specified by partition UUID" supplied 33 bytes buffer to the function
-leading to the following panic with stackprotector enabled.
-
-  Kernel panic - not syncing: stack-protector: Kernel stack corrupted in: ffffffff81b14c7e
-
-  [<ffffffff815e226b>] panic+0xba/0x1c6
-  [<ffffffff81b14c7e>] ? printk_all_partitions+0x259/0x26xb
-  [<ffffffff810566bb>] __stack_chk_fail+0x1b/0x20
-  [<ffffffff81b15c7e>] printk_all_paritions+0x259/0x26xb
-  [<ffffffff81aedfe0>] mount_block_root+0x1bc/0x27f
-  [<ffffffff81aee0fa>] mount_root+0x57/0x5b
-  [<ffffffff81aee23b>] prepare_namespace+0x13d/0x176
-  [<ffffffff8107eec0>] ? release_tgcred.isra.4+0x330/0x30
-  [<ffffffff81aedd60>] kernel_init+0x155/0x15a
-  [<ffffffff81087b97>] ? schedule_tail+0x27/0xb0
-  [<ffffffff815f4d24>] kernel_thread_helper+0x5/0x10
-  [<ffffffff81aedc0b>] ? start_kernel+0x3c5/0x3c5
-  [<ffffffff815f4d20>] ? gs_change+0x13/0x13
-
-Increase the buffer size, remove the dangerous part_unpack_uuid() and
-use snprintf() directly from printk_all_partitions().
-
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Reported-by: Szymon Gruszczynski <sz.gruszczynski at googlemail.com>
-Cc: Will Drewry <wad at chromium.org>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- block/genhd.c         |   10 ++++++----
- include/linux/genhd.h |    6 ------
- 2 files changed, 6 insertions(+), 10 deletions(-)
-
-diff --git a/block/genhd.c b/block/genhd.c
-index 997afd6..4927476 100644
---- a/block/genhd.c
-+++ b/block/genhd.c
-@@ -744,7 +744,7 @@ void __init printk_all_partitions(void)
- 		struct hd_struct *part;
- 		char name_buf[BDEVNAME_SIZE];
- 		char devt_buf[BDEVT_SIZE];
--		u8 uuid[PARTITION_META_INFO_UUIDLTH * 2 + 1];
-+		char uuid_buf[PARTITION_META_INFO_UUIDLTH * 2 + 5];
- 
- 		/*
- 		 * Don't show empty devices or things that have been
-@@ -763,14 +763,16 @@ void __init printk_all_partitions(void)
- 		while ((part = disk_part_iter_next(&piter))) {
- 			bool is_part0 = part == &disk->part0;
- 
--			uuid[0] = 0;
-+			uuid_buf[0] = '\0';
- 			if (part->info)
--				part_unpack_uuid(part->info->uuid, uuid);
-+				snprintf(uuid_buf, sizeof(uuid_buf), "%pU",
-+					 part->info->uuid);
- 
- 			printk("%s%s %10llu %s %s", is_part0 ? "" : "  ",
- 			       bdevt_str(part_devt(part), devt_buf),
- 			       (unsigned long long)part->nr_sects >> 1,
--			       disk_name(disk, part->partno, name_buf), uuid);
-+			       disk_name(disk, part->partno, name_buf),
-+			       uuid_buf);
- 			if (is_part0) {
- 				if (disk->driverfs_dev != NULL &&
- 				    disk->driverfs_dev->driver != NULL)
-diff --git a/include/linux/genhd.h b/include/linux/genhd.h
-index c6f7f6a..4eec461 100644
---- a/include/linux/genhd.h
-+++ b/include/linux/genhd.h
-@@ -222,12 +222,6 @@ static inline void part_pack_uuid(const u8 *uuid_str, u8 *to)
- 	}
- }
- 
--static inline char *part_unpack_uuid(const u8 *uuid, char *out)
--{
--	sprintf(out, "%pU", uuid);
--	return out;
--}
--
- static inline int disk_max_parts(struct gendisk *disk)
- {
- 	if (disk->flags & GENHD_FL_EXT_DEVT)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0011-fix-PA1.1-oops-on-boot.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0011-fix-PA1.1-oops-on-boot.patch
deleted file mode 100644
index 8ca8689..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0011-fix-PA1.1-oops-on-boot.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 882770bdde14aed9bf896980f51fe2fc8a55623f Mon Sep 17 00:00:00 2001
-From: James Bottomley <JBottomley at Parallels.com>
-Date: Tue, 15 May 2012 11:04:19 +0100
-Subject: [PATCH 011/117] fix PA1.1 oops on boot
-
-commit 5e185581d7c46ddd33cd9c01106d1fc86efb9376 upstream.
-
-All PA1.1 systems have been oopsing on boot since
-
-commit f311847c2fcebd81912e2f0caf8a461dec28db41
-Author: James Bottomley <James.Bottomley at HansenPartnership.com>
-Date:   Wed Dec 22 10:22:11 2010 -0600
-
-    parisc: flush pages through tmpalias space
-
-because a PA2.0 instruction was accidentally introduced into the PA1.1 TLB
-insertion interruption path when it was consolidated with the do_alias macro.
-Fix the do_alias macro only to use PA2.0 instructions if compiled for 64 bit.
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/parisc/kernel/entry.S |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
-index 6f05944..5350342 100644
---- a/arch/parisc/kernel/entry.S
-+++ b/arch/parisc/kernel/entry.S
-@@ -581,7 +581,11 @@
- 	 */
- 	cmpiclr,=	0x01,\tmp,%r0
- 	ldi		(_PAGE_DIRTY|_PAGE_READ|_PAGE_WRITE),\prot
-+#ifdef CONFIG_64BIT
- 	depd,z		\prot,8,7,\prot
-+#else
-+	depw,z		\prot,8,7,\prot
-+#endif
- 	/*
- 	 * OK, it is in the temp alias region, check whether "from" or "to".
- 	 * Check "subtle" note in pacache.S re: r23/r26.
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0012-fix-crash-in-flush_icache_page_asm-on-PA1.1.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0012-fix-crash-in-flush_icache_page_asm-on-PA1.1.patch
deleted file mode 100644
index a5f6121..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0012-fix-crash-in-flush_icache_page_asm-on-PA1.1.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 95093fb411e522ec7a6c33d12863107ba841fe72 Mon Sep 17 00:00:00 2001
-From: John David Anglin <dave.anglin at bell.net>
-Date: Wed, 16 May 2012 10:14:52 +0100
-Subject: [PATCH 012/117] fix crash in flush_icache_page_asm on PA1.1
-
-commit 207f583d7179f707f402c36a7bda5ca1fd03ad5b upstream.
-
-As pointed out by serveral people, PA1.1 only has a type 26 instruction
-meaning that the space register must be explicitly encoded.  Not giving an
-explicit space means that the compiler uses the type 24 version which is PA2.0
-only resulting in an illegal instruction crash.
-
-This regression was caused by
-
-    commit f311847c2fcebd81912e2f0caf8a461dec28db41
-    Author: James Bottomley <James.Bottomley at HansenPartnership.com>
-    Date:   Wed Dec 22 10:22:11 2010 -0600
-
-        parisc: flush pages through tmpalias space
-
-Reported-by: Helge Deller <deller at gmx.de>
-Signed-off-by: John David Anglin <dave.anglin at bell.net>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/parisc/kernel/pacache.S |   38 ++++++++++++++++++++------------------
- 1 file changed, 20 insertions(+), 18 deletions(-)
-
-diff --git a/arch/parisc/kernel/pacache.S b/arch/parisc/kernel/pacache.S
-index 93ff3d9..5d7218a 100644
---- a/arch/parisc/kernel/pacache.S
-+++ b/arch/parisc/kernel/pacache.S
-@@ -692,7 +692,7 @@ ENTRY(flush_icache_page_asm)
- 
- 	/* Purge any old translation */
- 
--	pitlb		(%sr0,%r28)
-+	pitlb		(%sr4,%r28)
- 
- 	ldil		L%icache_stride, %r1
- 	ldw		R%icache_stride(%r1), %r1
-@@ -706,27 +706,29 @@ ENTRY(flush_icache_page_asm)
- 	sub		%r25, %r1, %r25
- 
- 
--1:      fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
--	fic,m		%r1(%r28)
-+	/* fic only has the type 26 form on PA1.1, requiring an
-+	 * explicit space specification, so use %sr4 */
-+1:      fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
-+	fic,m		%r1(%sr4,%r28)
- 	cmpb,COND(<<)		%r28, %r25,1b
--	fic,m		%r1(%r28)
-+	fic,m		%r1(%sr4,%r28)
- 
- 	sync
- 	bv		%r0(%r2)
--	pitlb		(%sr0,%r25)
-+	pitlb		(%sr4,%r25)
- 	.exit
- 
- 	.procend
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0013-fix-panic-on-prefetch-NULL-on-PA7300LC.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0013-fix-panic-on-prefetch-NULL-on-PA7300LC.patch
deleted file mode 100644
index 461025a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0013-fix-panic-on-prefetch-NULL-on-PA7300LC.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From ae4fc9e89e9e7fb510ddbff1c3ca6d41477f45e1 Mon Sep 17 00:00:00 2001
-From: James Bottomley <JBottomley at Parallels.com>
-Date: Wed, 16 May 2012 11:10:27 +0100
-Subject: [PATCH 013/117] fix panic on prefetch(NULL) on PA7300LC
-
-commit b3cb8674811d1851bbf1486a73d62b90c119b994 upstream.
-
-Due to an errata, the PA7300LC generates a TLB miss interruption even on the
-prefetch instruction.  This means that prefetch(NULL), which is supposed to be
-a nop on linux actually generates a NULL deref fault.  Fix this by testing the
-address of prefetch against NULL before doing the prefetch.
-
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/parisc/include/asm/prefetch.h |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/arch/parisc/include/asm/prefetch.h b/arch/parisc/include/asm/prefetch.h
-index c5edc60..1ee7c82 100644
---- a/arch/parisc/include/asm/prefetch.h
-+++ b/arch/parisc/include/asm/prefetch.h
-@@ -21,7 +21,12 @@
- #define ARCH_HAS_PREFETCH
- static inline void prefetch(const void *addr)
- {
--	__asm__("ldw 0(%0), %%r0" : : "r" (addr));
-+	__asm__(
-+#ifndef CONFIG_PA20
-+		/* Need to avoid prefetch of NULL on PA7300LC */
-+		"	extrw,u,= %0,31,32,%%r0\n"
-+#endif
-+		"	ldw 0(%0), %%r0" : : "r" (addr));
- }
- 
- /* LDD is a PA2.0 addition. */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0014-arch-tile-Kconfig-remove-pointless-M386-test.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0014-arch-tile-Kconfig-remove-pointless-M386-test.patch
deleted file mode 100644
index abfee03..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0014-arch-tile-Kconfig-remove-pointless-M386-test.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 083a3c3d326ad085b05c8606f4ea8594ca6467b8 Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Tue, 27 Mar 2012 13:47:57 -0400
-Subject: [PATCH 014/117] arch/tile/Kconfig: remove pointless "!M386" test.
-
-commit 8d6951439ef524683057251f1231df232046b6b6 upstream.
-
-Looks like a cut and paste bug from the x86 version.
-
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/tile/Kconfig |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
-index 70a0de4..7c9d2d4 100644
---- a/arch/tile/Kconfig
-+++ b/arch/tile/Kconfig
-@@ -12,7 +12,7 @@ config TILE
- 	select GENERIC_PENDING_IRQ if SMP
- 	select GENERIC_IRQ_SHOW
- 	select SYS_HYPERVISOR
--	select ARCH_HAVE_NMI_SAFE_CMPXCHG if !M386
-+	select ARCH_HAVE_NMI_SAFE_CMPXCHG
- 
- # FIXME: investigate whether we need/want these options.
- #	select HAVE_IOREMAP_PROT
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0015-tilegx-enable-SYSCALL_WRAPPERS-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0015-tilegx-enable-SYSCALL_WRAPPERS-support.patch
deleted file mode 100644
index 593e184..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0015-tilegx-enable-SYSCALL_WRAPPERS-support.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 7f297eaca9b90a9be05ebe02c90efca3692136db Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Fri, 18 May 2012 13:33:24 -0400
-Subject: [PATCH 015/117] tilegx: enable SYSCALL_WRAPPERS support
-
-commit e6d9668e119af44ae5bcd5f1197174531458afe3 upstream.
-
-Some discussion with the glibc mailing lists revealed that this was
-necessary for 64-bit platforms with MIPS-like sign-extension rules
-for 32-bit values.  The original symptom was that passing (uid_t)-1 to
-setreuid() was failing in programs linked -pthread because of the "setxid"
-mechanism for passing setxid-type function arguments to the syscall code.
-SYSCALL_WRAPPERS handles ensuring that all syscall arguments end up with
-proper sign-extension and is thus the appropriate fix for this problem.
-
-On other platforms (s390, powerpc, sparc64, and mips) this was fixed
-in 2.6.28.6.  The general issue is tracked as CVE-2009-0029.
-
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/tile/Kconfig |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/tile/Kconfig b/arch/tile/Kconfig
-index 7c9d2d4..6cb8319 100644
---- a/arch/tile/Kconfig
-+++ b/arch/tile/Kconfig
-@@ -11,6 +11,7 @@ config TILE
- 	select GENERIC_IRQ_PROBE
- 	select GENERIC_PENDING_IRQ if SMP
- 	select GENERIC_IRQ_SHOW
-+	select HAVE_SYSCALL_WRAPPERS if TILEGX
- 	select SYS_HYPERVISOR
- 	select ARCH_HAVE_NMI_SAFE_CMPXCHG
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0016-mtd-sm_ftl-fix-typo-in-major-number.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0016-mtd-sm_ftl-fix-typo-in-major-number.patch
deleted file mode 100644
index 14de1ba..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0016-mtd-sm_ftl-fix-typo-in-major-number.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 183929ad3fad7588523ae70fa91912196d4697db Mon Sep 17 00:00:00 2001
-From: Maxim Levitsky <maximlevitsky at gmail.com>
-Date: Sat, 17 Mar 2012 20:16:53 +0200
-Subject: [PATCH 016/117] mtd: sm_ftl: fix typo in major number.
-
-commit 452380efbd72d8d41f53ea64c8a6ea1fedc4394d upstream.
-
-major == 0 allocates dynamic major, not major == -1
-
-Signed-off-by: Maxim Levitsky <maximlevitsky at gmail.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mtd/sm_ftl.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/sm_ftl.c b/drivers/mtd/sm_ftl.c
-index fddb714..a9ff89ff 100644
---- a/drivers/mtd/sm_ftl.c
-+++ b/drivers/mtd/sm_ftl.c
-@@ -1256,7 +1256,7 @@ static void sm_remove_dev(struct mtd_blktrans_dev *dev)
- 
- static struct mtd_blktrans_ops sm_ftl_ops = {
- 	.name		= "smblk",
--	.major		= -1,
-+	.major		= 0,
- 	.part_bits	= SM_FTL_PARTN_BITS,
- 	.blksize	= SM_SECTOR_SIZE,
- 	.getgeo		= sm_getgeo,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0017-hpsa-Fix-problem-with-MSA2xxx-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0017-hpsa-Fix-problem-with-MSA2xxx-devices.patch
deleted file mode 100644
index 58f4fce..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0017-hpsa-Fix-problem-with-MSA2xxx-devices.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 3b1c9abc52f8145721d64abf54bf65139554f2be Mon Sep 17 00:00:00 2001
-From: "Stephen M. Cameron" <scameron at beardog.cce.hp.com>
-Date: Thu, 19 Jan 2012 14:01:04 -0600
-Subject: [PATCH 017/117] hpsa: Fix problem with MSA2xxx devices
-
-commit 9bc3711cbb67ac620bf09b4a147cbab45b2c36c0 upstream.
-
-Upgraded firmware on Smart Array P7xx (and some others) made them show up as
-SCSI revision 5 devices and this caused the driver to fail to map MSA2xxx
-logical drives to the correct bus/target/lun.  A symptom of this would be that
-the target ID of the logical drives as presented by the external storage array
-is ignored, and all such logical drives are assigned to target zero,
-differentiated only by LUN.  Some multipath software reportedly does not deal
-well with this behavior, failing to recognize different paths to the same
-device as such.
-
-Signed-off-by: Stephen M. Cameron <scameron at beardog.cce.hp.com>
-Signed-off-by: Scott Teel <scott.teel at hp.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/hpsa.c |   34 +++++++++++++++-------------------
- 1 file changed, 15 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
-index 865d452..dc9dea3 100644
---- a/drivers/scsi/hpsa.c
-+++ b/drivers/scsi/hpsa.c
-@@ -1674,30 +1674,26 @@ static void figure_bus_target_lun(struct ctlr_info *h,
- 
- 	if (is_logical_dev_addr_mode(lunaddrbytes)) {
- 		/* logical device */
--		if (unlikely(is_scsi_rev_5(h))) {
--			/* p1210m, logical drives lun assignments
--			 * match SCSI REPORT LUNS data.
-+		lunid = le32_to_cpu(*((__le32 *) lunaddrbytes));
-+		if (is_msa2xxx(h, device)) {
-+			/* msa2xxx way, put logicals on bus 1
-+			 * and match target/lun numbers box
-+			 * reports.
- 			 */
--			lunid = le32_to_cpu(*((__le32 *) lunaddrbytes));
--			*bus = 0;
--			*target = 0;
--			*lun = (lunid & 0x3fff) + 1;
-+			*bus = 1;
-+			*target = (lunid >> 16) & 0x3fff;
-+			*lun = lunid & 0x00ff;
- 		} else {
--			/* not p1210m... */
--			lunid = le32_to_cpu(*((__le32 *) lunaddrbytes));
--			if (is_msa2xxx(h, device)) {
--				/* msa2xxx way, put logicals on bus 1
--				 * and match target/lun numbers box
--				 * reports.
--				 */
--				*bus = 1;
--				*target = (lunid >> 16) & 0x3fff;
--				*lun = lunid & 0x00ff;
-+			if (likely(is_scsi_rev_5(h))) {
-+				/* All current smart arrays (circa 2011) */
-+				*bus = 0;
-+				*target = 0;
-+				*lun = (lunid & 0x3fff) + 1;
- 			} else {
--				/* Traditional smart array way. */
-+				/* Traditional old smart array way. */
- 				*bus = 0;
--				*lun = 0;
- 				*target = lunid & 0x3fff;
-+				*lun = 0;
- 			}
- 		}
- 	} else {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0018-SELinux-if-sel_make_bools-errors-don-t-leave-inconsi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0018-SELinux-if-sel_make_bools-errors-don-t-leave-inconsi.patch
deleted file mode 100644
index dc82d8d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0018-SELinux-if-sel_make_bools-errors-don-t-leave-inconsi.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From d5263c321d2e9dcacc4eed438d3dad60c13f95ba Mon Sep 17 00:00:00 2001
-From: Eric Paris <eparis at redhat.com>
-Date: Wed, 4 Apr 2012 13:47:11 -0400
-Subject: [PATCH 018/117] SELinux: if sel_make_bools errors don't leave
- inconsistent state
-
-commit 154c50ca4eb9ae472f50b6a481213e21ead4457d upstream.
-
-We reset the bool names and values array to NULL, but do not reset the
-number of entries in these arrays to 0.  If we error out and then get back
-into this function we will walk these NULL pointers based on the belief
-that they are non-zero length.
-
-Signed-off-by: Eric Paris <eparis at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- security/selinux/selinuxfs.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/security/selinux/selinuxfs.c b/security/selinux/selinuxfs.c
-index f466587..b4f802d 100644
---- a/security/selinux/selinuxfs.c
-+++ b/security/selinux/selinuxfs.c
-@@ -1238,6 +1238,7 @@ static int sel_make_bools(void)
- 		kfree(bool_pending_names[i]);
- 	kfree(bool_pending_names);
- 	kfree(bool_pending_values);
-+	bool_num = 0;
- 	bool_pending_names = NULL;
- 	bool_pending_values = NULL;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0019-cfg80211-warn-if-db.txt-is-empty-with-CONFIG_CFG8021.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0019-cfg80211-warn-if-db.txt-is-empty-with-CONFIG_CFG8021.patch
deleted file mode 100644
index 20927de..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0019-cfg80211-warn-if-db.txt-is-empty-with-CONFIG_CFG8021.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From d9029a9d61ea9f9f8b153d7967365d66229b3874 Mon Sep 17 00:00:00 2001
-From: "Luis R. Rodriguez" <mcgrof at frijolero.org>
-Date: Fri, 23 Mar 2012 07:23:31 -0700
-Subject: [PATCH 019/117] cfg80211: warn if db.txt is empty with
- CONFIG_CFG80211_INTERNAL_REGDB
-
-commit 80007efeff0568375b08faf93c7aad65602cb97e upstream.
-
-It has happened twice now where elaborate troubleshooting has
-undergone on systems where CONFIG_CFG80211_INTERNAL_REGDB [0]
-has been set but yet net/wireless/db.txt was not updated.
-
-Despite the documentation on this it seems system integrators could
-use some more help with this, so throw out a kernel warning at boot time
-when their database is empty.
-
-This does mean that the error-prone system integrator won't likely
-realize the issue until they boot the machine but -- it does not seem
-to make sense to enable a build bug breaking random build testing.
-
-[0] http://wireless.kernel.org/en/developers/Regulatory/CRDA#CONFIG_CFG80211_INTERNAL_REGDB
-
-Cc: Stephen Rothwell <sfr at canb.auug.org.au>
-Cc: Youngsin Lee <youngsin at qualcomm.com>
-Cc: Raja Mani <rmani at qca.qualcomm.com>
-Cc: Senthil Kumar Balasubramanian <senthilb at qca.qualcomm.com>
-Cc: Vipin Mehta <vipimeht at qca.qualcomm.com>
-Cc: yahuan at qca.qualcomm.com
-Cc: jjan at qca.qualcomm.com
-Cc: vthiagar at qca.qualcomm.com
-Cc: henrykim at qualcomm.com
-Cc: jouni at qca.qualcomm.com
-Cc: athiruve at qca.qualcomm.com
-Cc: cjkim at qualcomm.com
-Cc: philipk at qca.qualcomm.com
-Cc: sunnykim at qualcomm.com
-Cc: sskwak at qualcomm.com
-Cc: kkim at qualcomm.com
-Cc: mattbyun at qualcomm.com
-Cc: ryanlee at qualcomm.com
-Cc: simbap at qualcomm.com
-Cc: krislee at qualcomm.com
-Cc: conner at qualcomm.com
-Cc: hojinkim at qualcomm.com
-Cc: honglee at qualcomm.com
-Cc: johnwkim at qualcomm.com
-Cc: jinyong at qca.qualcomm.com
-Signed-off-by: Luis R. Rodriguez <mcgrof at frijolero.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/reg.c |   10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/net/wireless/reg.c b/net/wireless/reg.c
-index 3302c56..c1c99dd 100644
---- a/net/wireless/reg.c
-+++ b/net/wireless/reg.c
-@@ -379,7 +379,15 @@ static void reg_regdb_query(const char *alpha2)
- 
- 	schedule_work(&reg_regdb_work);
- }
-+
-+/* Feel free to add any other sanity checks here */
-+static void reg_regdb_size_check(void)
-+{
-+	/* We should ideally BUILD_BUG_ON() but then random builds would fail */
-+	WARN_ONCE(!reg_regdb_size, "db.txt is empty, you should update it...");
-+}
- #else
-+static inline void reg_regdb_size_check(void) {}
- static inline void reg_regdb_query(const char *alpha2) {}
- #endif /* CONFIG_CFG80211_INTERNAL_REGDB */
- 
-@@ -2236,6 +2244,8 @@ int __init regulatory_init(void)
- 	spin_lock_init(&reg_requests_lock);
- 	spin_lock_init(&reg_pending_beacons_lock);
- 
-+	reg_regdb_size_check();
-+
- 	cfg80211_regdomain = cfg80211_world_regdom;
- 
- 	user_alpha2[0] = '9';
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0020-mpt2sas-Fix-for-panic-happening-because-of-improper-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0020-mpt2sas-Fix-for-panic-happening-because-of-improper-.patch
deleted file mode 100644
index d27b465..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0020-mpt2sas-Fix-for-panic-happening-because-of-improper-.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From b12bc1d8337657ea79d90aecba397eaee36d10f6 Mon Sep 17 00:00:00 2001
-From: "nagalakshmi.nandigama at lsi.com" <nagalakshmi.nandigama at lsi.com>
-Date: Tue, 20 Mar 2012 12:10:01 +0530
-Subject: [PATCH 020/117] mpt2sas: Fix for panic happening because of improper
- memory allocation
-
-commit e42fafc25fa86c61824e8d4c5e7582316415d24f upstream.
-
-The ioc->pfacts member in the IOC structure is getting set to zero
-following a call to _base_get_ioc_facts due to the memset in that routine.
-So if the ioc->pfacts was read after a host reset, there would be a NULL
-pointer dereference. The routine _base_get_ioc_facts is called from context
-of host reset.  The problem in _base_get_ioc_facts  is the size of
-Mpi2IOCFactsReply is 64, whereas the sizeof "struct mpt2sas_facts" is 60,
-so there is a four byte overflow resulting from the memset.
-
-Also, there is memset in _base_get_port_facts using the incorrect structure,
-it should be "struct mpt2sas_port_facts" instead of Mpi2PortFactsReply.
-
-Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama at lsi.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/mpt2sas/mpt2sas_base.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
-index b1ddfef..ac336e1 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_base.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
-@@ -3274,7 +3274,7 @@ _base_get_port_facts(struct MPT2SAS_ADAPTER *ioc, int port, int sleep_flag)
- 	}
- 
- 	pfacts = &ioc->pfacts[port];
--	memset(pfacts, 0, sizeof(Mpi2PortFactsReply_t));
-+	memset(pfacts, 0, sizeof(struct mpt2sas_port_facts));
- 	pfacts->PortNumber = mpi_reply.PortNumber;
- 	pfacts->VP_ID = mpi_reply.VP_ID;
- 	pfacts->VF_ID = mpi_reply.VF_ID;
-@@ -3316,7 +3316,7 @@ _base_get_ioc_facts(struct MPT2SAS_ADAPTER *ioc, int sleep_flag)
- 	}
- 
- 	facts = &ioc->facts;
--	memset(facts, 0, sizeof(Mpi2IOCFactsReply_t));
-+	memset(facts, 0, sizeof(struct mpt2sas_facts));
- 	facts->MsgVersion = le16_to_cpu(mpi_reply.MsgVersion);
- 	facts->HeaderVersion = le16_to_cpu(mpi_reply.HeaderVersion);
- 	facts->VP_ID = mpi_reply.VP_ID;
-@@ -4193,7 +4193,7 @@ mpt2sas_base_attach(struct MPT2SAS_ADAPTER *ioc)
- 		goto out_free_resources;
- 
- 	ioc->pfacts = kcalloc(ioc->facts.NumberOfPorts,
--	    sizeof(Mpi2PortFactsReply_t), GFP_KERNEL);
-+	    sizeof(struct mpt2sas_port_facts), GFP_KERNEL);
- 	if (!ioc->pfacts) {
- 		r = -ENOMEM;
- 		goto out_free_resources;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0021-isdn-gigaset-ratelimit-CAPI-message-dumps.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0021-isdn-gigaset-ratelimit-CAPI-message-dumps.patch
deleted file mode 100644
index ba58393..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0021-isdn-gigaset-ratelimit-CAPI-message-dumps.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From cb510e3381f2dda5ad0cdf3519e6eee50ee2081e Mon Sep 17 00:00:00 2001
-From: Tilman Schmidt <tilman at imap.cc>
-Date: Wed, 25 Apr 2012 13:02:19 +0000
-Subject: [PATCH 021/117] isdn/gigaset: ratelimit CAPI message dumps
-
-commit 8e618aad5348b6e6c5a90e8d97ea643197963b20 upstream.
-
-Introduce a global ratelimit for CAPI message dumps to protect
-against possible log flood.
-Drop the ratelimit for ignored messages which is now covered by the
-global one.
-
-Signed-off-by: Tilman Schmidt <tilman at imap.cc>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/isdn/gigaset/capi.c |   22 +++++++++-------------
- 1 file changed, 9 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c
-index 6d5ceee..5b80ef7 100644
---- a/drivers/isdn/gigaset/capi.c
-+++ b/drivers/isdn/gigaset/capi.c
-@@ -14,6 +14,7 @@
- #include "gigaset.h"
- #include <linux/proc_fs.h>
- #include <linux/seq_file.h>
-+#include <linux/ratelimit.h>
- #include <linux/isdn/capilli.h>
- #include <linux/isdn/capicmd.h>
- #include <linux/isdn/capiutil.h>
-@@ -223,10 +224,14 @@ get_appl(struct gigaset_capi_ctr *iif, u16 appl)
- static inline void dump_cmsg(enum debuglevel level, const char *tag, _cmsg *p)
- {
- #ifdef CONFIG_GIGASET_DEBUG
-+	/* dump at most 20 messages in 20 secs */
-+	static DEFINE_RATELIMIT_STATE(msg_dump_ratelimit, 20 * HZ, 20);
- 	_cdebbuf *cdb;
- 
- 	if (!(gigaset_debuglevel & level))
- 		return;
-+	if (!___ratelimit(&msg_dump_ratelimit, tag))
-+		return;
- 
- 	cdb = capi_cmsg2str(p);
- 	if (cdb) {
-@@ -2059,12 +2064,6 @@ static void do_reset_b3_req(struct gigaset_capi_ctr *iif,
- }
- 
- /*
-- * dump unsupported/ignored messages at most twice per minute,
-- * some apps send those very frequently
-- */
--static unsigned long ignored_msg_dump_time;
--
--/*
-  * unsupported CAPI message handler
-  */
- static void do_unsupported(struct gigaset_capi_ctr *iif,
-@@ -2073,8 +2072,7 @@ static void do_unsupported(struct gigaset_capi_ctr *iif,
- {
- 	/* decode message */
- 	capi_message2cmsg(&iif->acmsg, skb->data);
--	if (printk_timed_ratelimit(&ignored_msg_dump_time, 30 * 1000))
--		dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg);
-+	dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg);
- 	send_conf(iif, ap, skb, CapiMessageNotSupportedInCurrentState);
- }
- 
-@@ -2085,11 +2083,9 @@ static void do_nothing(struct gigaset_capi_ctr *iif,
- 		       struct gigaset_capi_appl *ap,
- 		       struct sk_buff *skb)
- {
--	if (printk_timed_ratelimit(&ignored_msg_dump_time, 30 * 1000)) {
--		/* decode message */
--		capi_message2cmsg(&iif->acmsg, skb->data);
--		dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg);
--	}
-+	/* decode message */
-+	capi_message2cmsg(&iif->acmsg, skb->data);
-+	dump_cmsg(DEBUG_CMD, __func__, &iif->acmsg);
- 	dev_kfree_skb_any(skb);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0022-isdn-gigaset-fix-CAPI-disconnect-B3-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0022-isdn-gigaset-fix-CAPI-disconnect-B3-handling.patch
deleted file mode 100644
index 92a5406..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0022-isdn-gigaset-fix-CAPI-disconnect-B3-handling.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 49aed427d03f5bc84f690900a4a13c52b4c0916c Mon Sep 17 00:00:00 2001
-From: Tilman Schmidt <tilman at imap.cc>
-Date: Wed, 25 Apr 2012 13:02:20 +0000
-Subject: [PATCH 022/117] isdn/gigaset: fix CAPI disconnect B3 handling
-
-commit 62a1cfe052346b96a552b6a9178d412c709711bb upstream.
-
-If DISCONNECT_B3_IND was synthesized because of a DISCONNECT_REQ
-with existing logical connections, the connection state wasn't
-updated accordingly. Also the emitted DISCONNECT_B3_IND message
-wasn't included in the debug log as requested.
-This patch fixes both of these issues.
-
-Signed-off-by: Tilman Schmidt <tilman at imap.cc>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/isdn/gigaset/capi.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/isdn/gigaset/capi.c b/drivers/isdn/gigaset/capi.c
-index 5b80ef7..fd17bb3 100644
---- a/drivers/isdn/gigaset/capi.c
-+++ b/drivers/isdn/gigaset/capi.c
-@@ -1887,6 +1887,9 @@ static void do_disconnect_req(struct gigaset_capi_ctr *iif,
- 
- 	/* check for active logical connection */
- 	if (bcs->apconnstate >= APCONN_ACTIVE) {
-+		/* clear it */
-+		bcs->apconnstate = APCONN_SETUP;
-+
- 		/*
- 		 * emit DISCONNECT_B3_IND with cause 0x3301
- 		 * use separate cmsg structure, as the content of iif->acmsg
-@@ -1911,6 +1914,7 @@ static void do_disconnect_req(struct gigaset_capi_ctr *iif,
- 		}
- 		capi_cmsg2message(b3cmsg,
- 			__skb_put(b3skb, CAPI_DISCONNECT_B3_IND_BASELEN));
-+		dump_cmsg(DEBUG_CMD, __func__, b3cmsg);
- 		kfree(b3cmsg);
- 		capi_ctr_handle_message(&iif->ctr, ap->id, b3skb);
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0023-isdn-gigaset-improve-error-handling-querying-firmwar.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0023-isdn-gigaset-improve-error-handling-querying-firmwar.patch
deleted file mode 100644
index efbdbbb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0023-isdn-gigaset-improve-error-handling-querying-firmwar.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From acee45e91a831a741676284dc84513b074705805 Mon Sep 17 00:00:00 2001
-From: Tilman Schmidt <tilman at imap.cc>
-Date: Wed, 25 Apr 2012 13:02:20 +0000
-Subject: [PATCH 023/117] isdn/gigaset: improve error handling querying
- firmware version
-
-commit e055d03dc088a990fe5ea24a2d64033a168da23c upstream.
-
-An out-of-place "OK" response to the "AT+GMR" (get firmware version)
-command turns out to be, more often than not, a delayed response to
-a previous command rather than an actual error, so continue waiting
-for the version number in that case.
-
-Signed-off-by: Tilman Schmidt <tilman at imap.cc>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 3.2: adjust indentation]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/isdn/gigaset/ev-layer.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/isdn/gigaset/ev-layer.c b/drivers/isdn/gigaset/ev-layer.c
-index 6d12623..e95fac0 100644
---- a/drivers/isdn/gigaset/ev-layer.c
-+++ b/drivers/isdn/gigaset/ev-layer.c
-@@ -190,6 +190,7 @@ struct reply_t gigaset_tab_nocid[] =
- 							  ACT_INIT} },
- {RSP_OK,	121, 121, -1,			  0,  0, {ACT_GOTVER,
- 							  ACT_INIT} },
-+{RSP_NONE,	121, 121, -1,			120,  0, {ACT_GETSTRING} },
- 
- /* leave dle mode */
- {RSP_INIT,	  0,   0, SEQ_DLE0,		201,  5, {0},	"^SDLE=0\r"},
-@@ -1314,8 +1315,9 @@ static void do_action(int action, struct cardstate *cs,
- 		s = ev->ptr;
- 
- 		if (!strcmp(s, "OK")) {
-+			/* OK without version string: assume old response */
- 			*p_genresp = 1;
--			*p_resp_code = RSP_ERROR;
-+			*p_resp_code = RSP_NONE;
- 			break;
- 		}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0024-KEYS-Use-the-compat-keyctl-syscall-wrapper-on-Sparc6.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0024-KEYS-Use-the-compat-keyctl-syscall-wrapper-on-Sparc6.patch
deleted file mode 100644
index 52b1d96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0024-KEYS-Use-the-compat-keyctl-syscall-wrapper-on-Sparc6.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From ab5b15d0550f35ed49bb445fe04092d8b6fac542 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells at redhat.com>
-Date: Fri, 11 May 2012 10:56:56 +0100
-Subject: [PATCH 024/117] KEYS: Use the compat keyctl() syscall wrapper on
- Sparc64 for Sparc32 compat
-
-commit 45de6767dc51358a188f75dc4ad9dfddb7fb9480 upstream.
-
-Use the 32-bit compat keyctl() syscall wrapper on Sparc64 for Sparc32 binary
-compatibility.
-
-Without this, keyctl(KEYCTL_INSTANTIATE_IOV) is liable to malfunction as it
-uses an iovec array read from userspace - though the kernel should survive this
-as it checks pointers and sizes anyway.
-
-I think all the other keyctl() function should just work, provided (a) the top
-32-bits of each 64-bit argument register are cleared prior to invoking the
-syscall routine, and the 32-bit address space is right at the 0-end of the
-64-bit address space.  Most of the arguments are 32-bit anyway, and so for
-those clearing is not required.
-
-Signed-off-by: David Howells <dhowells at redhat.com
-cc: "David S. Miller" <davem at davemloft.net>
-cc: sparclinux at vger.kernel.org
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/sparc/Kconfig             |    3 +++
- arch/sparc/kernel/systbls_64.S |    2 +-
- 2 files changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/arch/sparc/Kconfig b/arch/sparc/Kconfig
-index f92602e..f210d51 100644
---- a/arch/sparc/Kconfig
-+++ b/arch/sparc/Kconfig
-@@ -583,6 +583,9 @@ config SYSVIPC_COMPAT
- 	depends on COMPAT && SYSVIPC
- 	default y
- 
-+config KEYS_COMPAT
-+	def_bool y if COMPAT && KEYS
-+
- endmenu
- 
- source "net/Kconfig"
-diff --git a/arch/sparc/kernel/systbls_64.S b/arch/sparc/kernel/systbls_64.S
-index db86b1a..3a58e0d 100644
---- a/arch/sparc/kernel/systbls_64.S
-+++ b/arch/sparc/kernel/systbls_64.S
-@@ -74,7 +74,7 @@ sys_call_table32:
- 	.word sys_timer_delete, compat_sys_timer_create, sys_ni_syscall, compat_sys_io_setup, sys_io_destroy
- /*270*/	.word sys32_io_submit, sys_io_cancel, compat_sys_io_getevents, sys32_mq_open, sys_mq_unlink
- 	.word compat_sys_mq_timedsend, compat_sys_mq_timedreceive, compat_sys_mq_notify, compat_sys_mq_getsetattr, compat_sys_waitid
--/*280*/	.word sys32_tee, sys_add_key, sys_request_key, sys_keyctl, compat_sys_openat
-+/*280*/	.word sys32_tee, sys_add_key, sys_request_key, compat_sys_keyctl, compat_sys_openat
- 	.word sys_mkdirat, sys_mknodat, sys_fchownat, compat_sys_futimesat, compat_sys_fstatat64
- /*290*/	.word sys_unlinkat, sys_renameat, sys_linkat, sys_symlinkat, sys_readlinkat
- 	.word sys_fchmodat, sys_faccessat, compat_sys_pselect6, compat_sys_ppoll, sys_unshare
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0025-IB-core-Fix-mismatch-between-locked-and-pinned-pages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0025-IB-core-Fix-mismatch-between-locked-and-pinned-pages.patch
deleted file mode 100644
index fe3c1e7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0025-IB-core-Fix-mismatch-between-locked-and-pinned-pages.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From a107ab4ce96a6243eca41ca139acc033a8be253b Mon Sep 17 00:00:00 2001
-From: Yishai Hadas <yishaih at mellanox.com>
-Date: Thu, 10 May 2012 23:28:05 +0300
-Subject: [PATCH 025/117] IB/core: Fix mismatch between locked and pinned
- pages
-
-commit c4870eb874ac16dccef40e1bc7a002c7e9156adc upstream.
-
-Commit bc3e53f682d9 ("mm: distinguish between mlocked and pinned
-pages") introduced a separate counter for pinned pages and used it in
-the IB stack.  However, in ib_umem_get() the pinned counter is
-incremented, but ib_umem_release() wrongly decrements the locked
-counter.  Fix this.
-
-Signed-off-by: Yishai Hadas <yishaih at mellanox.com>
-Reviewed-by: Christoph Lameter <cl at linux.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/infiniband/core/umem.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/infiniband/core/umem.c b/drivers/infiniband/core/umem.c
-index 71f0c0f..a841123 100644
---- a/drivers/infiniband/core/umem.c
-+++ b/drivers/infiniband/core/umem.c
-@@ -269,7 +269,7 @@ void ib_umem_release(struct ib_umem *umem)
- 	} else
- 		down_write(&mm->mmap_sem);
- 
--	current->mm->locked_vm -= diff;
-+	current->mm->pinned_vm -= diff;
- 	up_write(&mm->mmap_sem);
- 	mmput(mm);
- 	kfree(umem);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0026-regulator-core-Release-regulator-regulator-supplies-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0026-regulator-core-Release-regulator-regulator-supplies-.patch
deleted file mode 100644
index 027fb88..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0026-regulator-core-Release-regulator-regulator-supplies-.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 675478b722ec5e21b9e1db453e3c59ced85b2008 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Sun, 13 May 2012 18:35:56 +0100
-Subject: [PATCH 026/117] regulator: core: Release regulator-regulator
- supplies on error
-
-commit e81dba85c6388dfabcb76cbc2b8bd02836a53ae5 upstream.
-
-If we fail while registering a regulator make sure we release the supply
-for the regulator if there is one.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Acked-by: Liam Girdwood <lrg at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/regulator/core.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/regulator/core.c b/drivers/regulator/core.c
-index 938398f..6ec610c 100644
---- a/drivers/regulator/core.c
-+++ b/drivers/regulator/core.c
-@@ -2765,6 +2765,8 @@ unset_supplies:
- 	unset_regulator_supplies(rdev);
- 
- scrub:
-+	if (rdev->supply)
-+		regulator_put(rdev->supply);
- 	kfree(rdev->constraints);
- 	device_unregister(&rdev->dev);
- 	/* device core frees rdev */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0027-iommu-Fix-off-by-one-in-dmar_get_fault_reason.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0027-iommu-Fix-off-by-one-in-dmar_get_fault_reason.patch
deleted file mode 100644
index 4ab581b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0027-iommu-Fix-off-by-one-in-dmar_get_fault_reason.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 3dd0f718e41c8a6e580d3c11f8153ffd7ddeacde Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Sun, 13 May 2012 20:09:38 +0300
-Subject: [PATCH 027/117] iommu: Fix off by one in dmar_get_fault_reason()
-
-commit fefe1ed1398b81e3fadc92d11d91162d343c8836 upstream.
-
-fault_reason - 0x20 == ARRAY_SIZE(irq_remap_fault_reasons) is
-one past the end of the array.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Cc: Joerg Roedel <joerg.roedel at amd.com>
-Cc: Youquan Song <youquan.song at intel.com>
-Cc: walter harms <wharms at bfs.de>
-Cc: Suresh Siddha <suresh.b.siddha at intel.com>
-Link: http://lkml.kernel.org/r/20120513170938.GA4280@elgon.mountain
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-[bwh: Backported to 3.2: s/irq_remap_fault_reasons/intr_remap_fault_reasons/]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/dmar.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/iommu/dmar.c b/drivers/iommu/dmar.c
-index 35c1e17..97b2e21 100644
---- a/drivers/iommu/dmar.c
-+++ b/drivers/iommu/dmar.c
-@@ -1056,8 +1056,8 @@ static const char *intr_remap_fault_reasons[] =
- 
- const char *dmar_get_fault_reason(u8 fault_reason, int *fault_type)
- {
--	if (fault_reason >= 0x20 && (fault_reason <= 0x20 +
--				     ARRAY_SIZE(intr_remap_fault_reasons))) {
-+	if (fault_reason >= 0x20 && (fault_reason - 0x20 <
-+					ARRAY_SIZE(intr_remap_fault_reasons))) {
- 		*fault_type = INTR_REMAP;
- 		return intr_remap_fault_reasons[fault_reason - 0x20];
- 	} else if (fault_reason < ARRAY_SIZE(dma_remap_fault_reasons)) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0028-RDMA-cxgb4-Always-wake-up-waiters-in-c4iw_peer_abort.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0028-RDMA-cxgb4-Always-wake-up-waiters-in-c4iw_peer_abort.patch
deleted file mode 100644
index 9fde99c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0028-RDMA-cxgb4-Always-wake-up-waiters-in-c4iw_peer_abort.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e8cefa61ecf62e7ec98658843627df00696699d5 Mon Sep 17 00:00:00 2001
-From: Steve Wise <swise at opengridcomputing.com>
-Date: Fri, 27 Apr 2012 09:59:16 -0500
-Subject: [PATCH 028/117] RDMA/cxgb4: Always wake up waiters in
- c4iw_peer_abort_intr()
-
-commit 0f1dcfae6bc5563424346ad3a03282b8235a4c33 upstream.
-
-This fixes a race where an ingress abort fails to wake up the thread
-blocked in rdma_init() causing the app to hang.
-
-Signed-off-by: Steve Wise <swise at opengridcomputing.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/infiniband/hw/cxgb4/cm.c |    5 +----
- 1 file changed, 1 insertion(+), 4 deletions(-)
-
-diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
-index 0747004..151334c 100644
---- a/drivers/infiniband/hw/cxgb4/cm.c
-+++ b/drivers/infiniband/hw/cxgb4/cm.c
-@@ -2725,11 +2725,8 @@ static int peer_abort_intr(struct c4iw_dev *dev, struct sk_buff *skb)
- 
- 	/*
- 	 * Wake up any threads in rdma_init() or rdma_fini().
--	 * However, this is not needed if com state is just
--	 * MPA_REQ_SENT
- 	 */
--	if (ep->com.state != MPA_REQ_SENT)
--		c4iw_wake_up(&ep->com.wr_wait, -ECONNRESET);
-+	c4iw_wake_up(&ep->com.wr_wait, -ECONNRESET);
- 	sched(dev, skb);
- 	return 0;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0029-RDMA-cxgb4-Drop-peer_abort-when-no-endpoint-found.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0029-RDMA-cxgb4-Drop-peer_abort-when-no-endpoint-found.patch
deleted file mode 100644
index 99be4e3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0029-RDMA-cxgb4-Drop-peer_abort-when-no-endpoint-found.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 6ccdd0ede34681b1bdda91a5735e700274db9e5c Mon Sep 17 00:00:00 2001
-From: Steve Wise <swise at opengridcomputing.com>
-Date: Mon, 30 Apr 2012 15:31:29 -0500
-Subject: [PATCH 029/117] RDMA/cxgb4: Drop peer_abort when no endpoint found
-
-commit 14b9222808bb8bfefc71f72bc0dbdcf3b2f0140f upstream.
-
-Log a warning and drop the abort message.  Otherwise we will do a
-bogus wake_up() and crash.
-
-Signed-off-by: Steve Wise <swise at opengridcomputing.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/infiniband/hw/cxgb4/cm.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/infiniband/hw/cxgb4/cm.c b/drivers/infiniband/hw/cxgb4/cm.c
-index 151334c..2e6a538 100644
---- a/drivers/infiniband/hw/cxgb4/cm.c
-+++ b/drivers/infiniband/hw/cxgb4/cm.c
-@@ -2714,6 +2714,12 @@ static int peer_abort_intr(struct c4iw_dev *dev, struct sk_buff *skb)
- 	unsigned int tid = GET_TID(req);
- 
- 	ep = lookup_tid(t, tid);
-+	if (!ep) {
-+		printk(KERN_WARNING MOD
-+		       "Abort on non-existent endpoint, tid %d\n", tid);
-+		kfree_skb(skb);
-+		return 0;
-+	}
- 	if (is_neg_adv_abort(req->status)) {
- 		PDBG("%s neg_adv_abort ep %p tid %u\n", __func__, ep,
- 		     ep->hwtid);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0030-s390-pfault-fix-task-state-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0030-s390-pfault-fix-task-state-race.patch
deleted file mode 100644
index bd7759f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0030-s390-pfault-fix-task-state-race.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From f292f8180fb1ab073d5e88859f3d05608fa1fbe7 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <heiko.carstens at de.ibm.com>
-Date: Wed, 9 May 2012 09:37:30 +0200
-Subject: [PATCH 030/117] s390/pfault: fix task state race
-
-commit d5e50a51ccbda36b379aba9d1131a852eb908dda upstream.
-
-When setting the current task state to TASK_UNINTERRUPTIBLE this can
-race with a different cpu. The other cpu could set the task state after
-it inspected it (while it was still TASK_RUNNING) to TASK_RUNNING which
-would change the state from TASK_UNINTERRUPTIBLE to TASK_RUNNING again.
-
-This race was always present in the pfault interrupt code but didn't
-cause anything harmful before commit f2db2e6c "[S390] pfault: cpu hotplug
-vs missing completion interrupts" which relied on the fact that after
-setting the task state to TASK_UNINTERRUPTIBLE the task would really
-sleep.
-Since this is not necessarily the case the result may be a list corruption
-of the pfault_list or, as observed, a use-after-free bug while trying to
-access the task_struct of a task which terminated itself already.
-
-To fix this, we need to get a reference of the affected task when receiving
-the initial pfault interrupt and add special handling if we receive yet
-another initial pfault interrupt when the task is already enqueued in the
-pfault list.
-
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Reviewed-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/mm/fault.c |   14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
-index c7f0fbc..b28aaa4 100644
---- a/arch/s390/mm/fault.c
-+++ b/arch/s390/mm/fault.c
-@@ -583,6 +583,7 @@ static void pfault_interrupt(unsigned int ext_int_code,
- 			tsk->thread.pfault_wait = 0;
- 			list_del(&tsk->thread.list);
- 			wake_up_process(tsk);
-+			put_task_struct(tsk);
- 		} else {
- 			/* Completion interrupt was faster than initial
- 			 * interrupt. Set pfault_wait to -1 so the initial
-@@ -597,14 +598,22 @@ static void pfault_interrupt(unsigned int ext_int_code,
- 		put_task_struct(tsk);
- 	} else {
- 		/* signal bit not set -> a real page is missing. */
--		if (tsk->thread.pfault_wait == -1) {
-+		if (tsk->thread.pfault_wait == 1) {
-+			/* Already on the list with a reference: put to sleep */
-+			set_task_state(tsk, TASK_UNINTERRUPTIBLE);
-+			set_tsk_need_resched(tsk);
-+		} else if (tsk->thread.pfault_wait == -1) {
- 			/* Completion interrupt was faster than the initial
- 			 * interrupt (pfault_wait == -1). Set pfault_wait
- 			 * back to zero and exit. */
- 			tsk->thread.pfault_wait = 0;
- 		} else {
- 			/* Initial interrupt arrived before completion
--			 * interrupt. Let the task sleep. */
-+			 * interrupt. Let the task sleep.
-+			 * An extra task reference is needed since a different
-+			 * cpu may set the task state to TASK_RUNNING again
-+			 * before the scheduler is reached. */
-+			get_task_struct(tsk);
- 			tsk->thread.pfault_wait = 1;
- 			list_add(&tsk->thread.list, &pfault_list);
- 			set_task_state(tsk, TASK_UNINTERRUPTIBLE);
-@@ -629,6 +638,7 @@ static int __cpuinit pfault_cpu_notify(struct notifier_block *self,
- 			list_del(&thread->list);
- 			tsk = container_of(thread, struct task_struct, thread);
- 			wake_up_process(tsk);
-+			put_task_struct(tsk);
- 		}
- 		spin_unlock_irq(&pfault_lock);
- 		break;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0031-isci-fix-oem-parameter-validation-on-single-controll.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0031-isci-fix-oem-parameter-validation-on-single-controll.patch
deleted file mode 100644
index 000d1dc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0031-isci-fix-oem-parameter-validation-on-single-controll.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 51945640120dea3c9b3a0207bc864138c6c1c8a8 Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Mon, 30 Apr 2012 11:57:44 -0700
-Subject: [PATCH 031/117] isci: fix oem parameter validation on single
- controller skus
-
-commit fc25f79af321c01a739150ba2c09435cf977a63d upstream.
-
-OEM parameters [1] are parsed from the platform option-rom / efi
-driver.  By default the driver was validating the parameters for the
-dual-controller case, but in single-controller case only the first set
-of parameters may be valid.
-
-Limit the validation to the number of actual controllers detected
-otherwise the driver may fail to parse the valid parameters leading to
-driver-load or runtime failures.
-
-[1] the platform specific set of phy address, configuration,and analog
-    tuning values
-
-[stable v3.0+]
-Reported-by: Dave Jiang <dave.jiang at intel.com>
-Tested-by: Dave Jiang <dave.jiang at intel.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/isci/init.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/isci/init.c b/drivers/scsi/isci/init.c
-index a97edab..83d08b6 100644
---- a/drivers/scsi/isci/init.c
-+++ b/drivers/scsi/isci/init.c
-@@ -465,7 +465,7 @@ static int __devinit isci_pci_probe(struct pci_dev *pdev, const struct pci_devic
- 	if (!orom)
- 		orom = isci_request_oprom(pdev);
- 
--	for (i = 0; orom && i < ARRAY_SIZE(orom->ctrl); i++) {
-+	for (i = 0; orom && i < num_controllers(pdev); i++) {
- 		if (sci_oem_parameters_validate(&orom->ctrl[i])) {
- 			dev_warn(&pdev->dev,
- 				 "[%d]: invalid oem parameters detected, falling back to firmware\n", i);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0032-Fix-blocking-allocations-called-very-early-during-bo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0032-Fix-blocking-allocations-called-very-early-during-bo.patch
deleted file mode 100644
index 231e430..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0032-Fix-blocking-allocations-called-very-early-during-bo.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 193433aeaf9380a822cd4bf7f5777e70b2e86550 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Mon, 21 May 2012 12:52:42 -0700
-Subject: [PATCH 032/117] Fix blocking allocations called very early during
- bootup
-
-commit 31a67102f4762df5544bc2dfb34a931233d2a5b2 upstream.
-
-During early boot, when the scheduler hasn't really been fully set up,
-we really can't do blocking allocations because with certain (dubious)
-configurations the "might_resched()" calls can actually result in
-scheduling events.
-
-We could just make such users always use GFP_ATOMIC, but quite often the
-code that does the allocation isn't really aware of the fact that the
-scheduler isn't up yet, and forcing that kind of random knowledge on the
-initialization code is just annoying and not good for anybody.
-
-And we actually have a the 'gfp_allowed_mask' exactly for this reason:
-it's just that the kernel init sequence happens to set it to allow
-blocking allocations much too early.
-
-So move the 'gfp_allowed_mask' initialization from 'start_kernel()'
-(which is some of the earliest init code, and runs with preemption
-disabled for good reasons) into 'kernel_init()'.  kernel_init() is run
-in the newly created thread that will become the 'init' process, as
-opposed to the early startup code that runs within the context of what
-will be the first idle thread.
-
-So by the time we reach 'kernel_init()', we know that the scheduler must
-be at least limping along, because we've already scheduled from the idle
-thread into the init thread.
-
-Reported-by: Steven Rostedt <rostedt at goodmis.org>
-Cc: David Rientjes <rientjes at google.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- init/main.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/init/main.c b/init/main.c
-index 217ed23..cb08fea2 100644
---- a/init/main.c
-+++ b/init/main.c
-@@ -563,9 +563,6 @@ asmlinkage void __init start_kernel(void)
- 	early_boot_irqs_disabled = false;
- 	local_irq_enable();
- 
--	/* Interrupts are enabled now so all GFP allocations are safe. */
--	gfp_allowed_mask = __GFP_BITS_MASK;
--
- 	kmem_cache_init_late();
- 
- 	/*
-@@ -798,6 +795,10 @@ static int __init kernel_init(void * unused)
- 	 * Wait until kthreadd is all set-up.
- 	 */
- 	wait_for_completion(&kthreadd_done);
-+
-+	/* Now the scheduler is fully set up and can do blocking allocations */
-+	gfp_allowed_mask = __GFP_BITS_MASK;
-+
- 	/*
- 	 * init can allocate pages on any node
- 	 */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0033-vfs-make-AIO-use-the-proper-rw_verify_area-area-help.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0033-vfs-make-AIO-use-the-proper-rw_verify_area-area-help.patch
deleted file mode 100644
index e496eb2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0033-vfs-make-AIO-use-the-proper-rw_verify_area-area-help.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 078dda1f3c0c180fc5d408f9f087752a0afbed3f Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Mon, 21 May 2012 16:06:20 -0700
-Subject: [PATCH 033/117] vfs: make AIO use the proper rw_verify_area() area
- helpers
-
-commit a70b52ec1aaeaf60f4739edb1b422827cb6f3893 upstream.
-
-We had for some reason overlooked the AIO interface, and it didn't use
-the proper rw_verify_area() helper function that checks (for example)
-mandatory locking on the file, and that the size of the access doesn't
-cause us to overflow the provided offset limits etc.
-
-Instead, AIO did just the security_file_permission() thing (that
-rw_verify_area() also does) directly.
-
-This fixes it to do all the proper helper functions, which not only
-means that now mandatory file locking works with AIO too, we can
-actually remove lines of code.
-
-Reported-by: Manish Honap <manish_honap_vit at yahoo.co.in>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/aio.c |   30 ++++++++++++++----------------
- 1 file changed, 14 insertions(+), 16 deletions(-)
-
-diff --git a/fs/aio.c b/fs/aio.c
-index b9d64d8..3b65ee7 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -1477,6 +1477,10 @@ static ssize_t aio_setup_vectored_rw(int type, struct kiocb *kiocb, bool compat)
- 	if (ret < 0)
- 		goto out;
- 
-+	ret = rw_verify_area(type, kiocb->ki_filp, &kiocb->ki_pos, ret);
-+	if (ret < 0)
-+		goto out;
-+
- 	kiocb->ki_nr_segs = kiocb->ki_nbytes;
- 	kiocb->ki_cur_seg = 0;
- 	/* ki_nbytes/left now reflect bytes instead of segs */
-@@ -1488,11 +1492,17 @@ out:
- 	return ret;
- }
- 
--static ssize_t aio_setup_single_vector(struct kiocb *kiocb)
-+static ssize_t aio_setup_single_vector(int type, struct file * file, struct kiocb *kiocb)
- {
-+	int bytes;
-+
-+	bytes = rw_verify_area(type, file, &kiocb->ki_pos, kiocb->ki_left);
-+	if (bytes < 0)
-+		return bytes;
-+
- 	kiocb->ki_iovec = &kiocb->ki_inline_vec;
- 	kiocb->ki_iovec->iov_base = kiocb->ki_buf;
--	kiocb->ki_iovec->iov_len = kiocb->ki_left;
-+	kiocb->ki_iovec->iov_len = bytes;
- 	kiocb->ki_nr_segs = 1;
- 	kiocb->ki_cur_seg = 0;
- 	return 0;
-@@ -1517,10 +1527,7 @@ static ssize_t aio_setup_iocb(struct kiocb *kiocb, bool compat)
- 		if (unlikely(!access_ok(VERIFY_WRITE, kiocb->ki_buf,
- 			kiocb->ki_left)))
- 			break;
--		ret = security_file_permission(file, MAY_READ);
--		if (unlikely(ret))
--			break;
--		ret = aio_setup_single_vector(kiocb);
-+		ret = aio_setup_single_vector(READ, file, kiocb);
- 		if (ret)
- 			break;
- 		ret = -EINVAL;
-@@ -1535,10 +1542,7 @@ static ssize_t aio_setup_iocb(struct kiocb *kiocb, bool compat)
- 		if (unlikely(!access_ok(VERIFY_READ, kiocb->ki_buf,
- 			kiocb->ki_left)))
- 			break;
--		ret = security_file_permission(file, MAY_WRITE);
--		if (unlikely(ret))
--			break;
--		ret = aio_setup_single_vector(kiocb);
-+		ret = aio_setup_single_vector(WRITE, file, kiocb);
- 		if (ret)
- 			break;
- 		ret = -EINVAL;
-@@ -1549,9 +1553,6 @@ static ssize_t aio_setup_iocb(struct kiocb *kiocb, bool compat)
- 		ret = -EBADF;
- 		if (unlikely(!(file->f_mode & FMODE_READ)))
- 			break;
--		ret = security_file_permission(file, MAY_READ);
--		if (unlikely(ret))
--			break;
- 		ret = aio_setup_vectored_rw(READ, kiocb, compat);
- 		if (ret)
- 			break;
-@@ -1563,9 +1564,6 @@ static ssize_t aio_setup_iocb(struct kiocb *kiocb, bool compat)
- 		ret = -EBADF;
- 		if (unlikely(!(file->f_mode & FMODE_WRITE)))
- 			break;
--		ret = security_file_permission(file, MAY_WRITE);
--		if (unlikely(ret))
--			break;
- 		ret = aio_setup_vectored_rw(WRITE, kiocb, compat);
- 		if (ret)
- 			break;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0034-docs-update-HOWTO-for-2.6.x-3.x-versioning.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0034-docs-update-HOWTO-for-2.6.x-3.x-versioning.patch
deleted file mode 100644
index 2539418..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0034-docs-update-HOWTO-for-2.6.x-3.x-versioning.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From d2c7de1fefbc917e3731bf69e18b553b3c7a165f Mon Sep 17 00:00:00 2001
-From: Kees Cook <keescook at chromium.org>
-Date: Wed, 18 Apr 2012 23:16:45 -0700
-Subject: [PATCH 034/117] docs: update HOWTO for 2.6.x -> 3.x versioning
-
-commit 591bfc6bf9e5e25e464fd4c87d64afd5135667c4 upstream.
-
-The HOWTO document needed updating for the new kernel versioning. The
-git URI for -next was updated as well.
-
-Signed-off-by: Kees Cook <keescook at chromium.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- Documentation/HOWTO |   32 ++++++++++++++++----------------
- 1 file changed, 16 insertions(+), 16 deletions(-)
-
-diff --git a/Documentation/HOWTO b/Documentation/HOWTO
-index f7ade3b..59c080f 100644
---- a/Documentation/HOWTO
-+++ b/Documentation/HOWTO
-@@ -218,16 +218,16 @@ The development process
- Linux kernel development process currently consists of a few different
- main kernel "branches" and lots of different subsystem-specific kernel
- branches.  These different branches are:
--  - main 2.6.x kernel tree
--  - 2.6.x.y -stable kernel tree
--  - 2.6.x -git kernel patches
-+  - main 3.x kernel tree
-+  - 3.x.y -stable kernel tree
-+  - 3.x -git kernel patches
-   - subsystem specific kernel trees and patches
--  - the 2.6.x -next kernel tree for integration tests
-+  - the 3.x -next kernel tree for integration tests
- 
--2.6.x kernel tree
-+3.x kernel tree
- -----------------
--2.6.x kernels are maintained by Linus Torvalds, and can be found on
--kernel.org in the pub/linux/kernel/v2.6/ directory.  Its development
-+3.x kernels are maintained by Linus Torvalds, and can be found on
-+kernel.org in the pub/linux/kernel/v3.x/ directory.  Its development
- process is as follows:
-   - As soon as a new kernel is released a two weeks window is open,
-     during this period of time maintainers can submit big diffs to
-@@ -262,20 +262,20 @@ mailing list about kernel releases:
- 	released according to perceived bug status, not according to a
- 	preconceived timeline."
- 
--2.6.x.y -stable kernel tree
-+3.x.y -stable kernel tree
- ---------------------------
--Kernels with 4-part versions are -stable kernels. They contain
-+Kernels with 3-part versions are -stable kernels. They contain
- relatively small and critical fixes for security problems or significant
--regressions discovered in a given 2.6.x kernel.
-+regressions discovered in a given 3.x kernel.
- 
- This is the recommended branch for users who want the most recent stable
- kernel and are not interested in helping test development/experimental
- versions.
- 
--If no 2.6.x.y kernel is available, then the highest numbered 2.6.x
-+If no 3.x.y kernel is available, then the highest numbered 3.x
- kernel is the current stable kernel.
- 
--2.6.x.y are maintained by the "stable" team <stable at vger.kernel.org>, and
-+3.x.y are maintained by the "stable" team <stable at vger.kernel.org>, and
- are released as needs dictate.  The normal release period is approximately
- two weeks, but it can be longer if there are no pressing problems.  A
- security-related problem, instead, can cause a release to happen almost
-@@ -285,7 +285,7 @@ The file Documentation/stable_kernel_rules.txt in the kernel tree
- documents what kinds of changes are acceptable for the -stable tree, and
- how the release process works.
- 
--2.6.x -git patches
-+3.x -git patches
- ------------------
- These are daily snapshots of Linus' kernel tree which are managed in a
- git repository (hence the name.) These patches are usually released
-@@ -317,13 +317,13 @@ revisions to it, and maintainers can mark patches as under review,
- accepted, or rejected.  Most of these patchwork sites are listed at
- http://patchwork.kernel.org/.
- 
--2.6.x -next kernel tree for integration tests
-+3.x -next kernel tree for integration tests
- ---------------------------------------------
--Before updates from subsystem trees are merged into the mainline 2.6.x
-+Before updates from subsystem trees are merged into the mainline 3.x
- tree, they need to be integration-tested.  For this purpose, a special
- testing repository exists into which virtually all subsystem trees are
- pulled on an almost daily basis:
--	http://git.kernel.org/?p=linux/kernel/git/sfr/linux-next.git
-+	http://git.kernel.org/?p=linux/kernel/git/next/linux-next.git
- 	http://linux.f-seidel.de/linux-next/pmwiki/
- 
- This way, the -next kernel gives a summary outlook onto what will be
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0035-drivers-staging-comedi-comedi_fops.c-add-missing-vfr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0035-drivers-staging-comedi-comedi_fops.c-add-missing-vfr.patch
deleted file mode 100644
index 0286930..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0035-drivers-staging-comedi-comedi_fops.c-add-missing-vfr.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From bf21ec2ca510b5e8d017ea1177ffa78a2fec5b93 Mon Sep 17 00:00:00 2001
-From: Julia Lawall <Julia.Lawall at lip6.fr>
-Date: Sun, 22 Apr 2012 13:37:09 +0200
-Subject: [PATCH 035/117] drivers/staging/comedi/comedi_fops.c: add missing
- vfree
-
-commit abae41e6438b798e046d721b6ccdd55b4a398170 upstream.
-
-aux_free is freed on all other exits from the function.  By removing the
-return, we can benefit from the vfree already at the end of the function.
-
-Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/staging/comedi/comedi_fops.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/staging/comedi/comedi_fops.c b/drivers/staging/comedi/comedi_fops.c
-index 5e78c77..4ad2c0e 100644
---- a/drivers/staging/comedi/comedi_fops.c
-+++ b/drivers/staging/comedi/comedi_fops.c
-@@ -280,7 +280,7 @@ static int do_devconfig_ioctl(struct comedi_device *dev,
- 	if (ret == 0) {
- 		if (!try_module_get(dev->driver->module)) {
- 			comedi_device_detach(dev);
--			return -ENOSYS;
-+			ret = -ENOSYS;
- 		}
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0036-USB-move-usb_translate_errors-to-linux-usb.h.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0036-USB-move-usb_translate_errors-to-linux-usb.h.patch
deleted file mode 100644
index b1eb787..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0036-USB-move-usb_translate_errors-to-linux-usb.h.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From a62e9c8e391b91bd60c705748ea8ec207ef72eab Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Thu, 10 Nov 2011 14:58:26 +0100
-Subject: [PATCH 036/117] USB: move usb_translate_errors to linux/usb.h
-
-commit 2c4d6bf295ae10ffcd84f0df6cb642598eb66603 upstream.
-
-Move usb_translate_errors from usb core to linux/usb.h as it is meant to
-be accessed from drivers.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/usb.h |   14 --------------
- include/linux/usb.h    |   13 +++++++++++++
- 2 files changed, 13 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/usb/core/usb.h b/drivers/usb/core/usb.h
-index 3888778..45e8479 100644
---- a/drivers/usb/core/usb.h
-+++ b/drivers/usb/core/usb.h
-@@ -132,20 +132,6 @@ static inline int is_usb_device_driver(struct device_driver *drv)
- 			for_devices;
- }
- 
--/* translate USB error codes to codes user space understands */
--static inline int usb_translate_errors(int error_code)
--{
--	switch (error_code) {
--	case 0:
--	case -ENOMEM:
--	case -ENODEV:
--		return error_code;
--	default:
--		return -EIO;
--	}
--}
--
--
- /* for labeling diagnostics */
- extern const char *usbcore_name;
- 
-diff --git a/include/linux/usb.h b/include/linux/usb.h
-index 7626e5a..68cdc84 100644
---- a/include/linux/usb.h
-+++ b/include/linux/usb.h
-@@ -1600,6 +1600,19 @@ usb_maxpacket(struct usb_device *udev, int pipe, int is_out)
- 
- /* ----------------------------------------------------------------------- */
- 
-+/* translate USB error codes to codes user space understands */
-+static inline int usb_translate_errors(int error_code)
-+{
-+	switch (error_code) {
-+	case 0:
-+	case -ENOMEM:
-+	case -ENODEV:
-+		return error_code;
-+	default:
-+		return -EIO;
-+	}
-+}
-+
- /* Events from the usb core */
- #define USB_DEVICE_ADD		0x0001
- #define USB_DEVICE_REMOVE	0x0002
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0037-USB-cdc-wdm-sanitize-error-returns.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0037-USB-cdc-wdm-sanitize-error-returns.patch
deleted file mode 100644
index bbb4964..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0037-USB-cdc-wdm-sanitize-error-returns.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 1676590583666a41bf8b26924d0ab9b729455813 Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oliver at neukum.org>
-Date: Fri, 27 Apr 2012 14:23:54 +0200
-Subject: [PATCH 037/117] USB: cdc-wdm: sanitize error returns
-
-commit 24a85bae5da2b43fed423859c09c5a81ab359473 upstream.
-
-wdm_flush() returns unsanitized USB error codes.
-They must be cleaned up to before being anded to user space
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 2db0327..ac9099a 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -500,7 +500,7 @@ static int wdm_flush(struct file *file, fl_owner_t id)
- 		dev_err(&desc->intf->dev, "Error in flush path: %d\n",
- 			desc->werr);
- 
--	return desc->werr;
-+	return usb_translate_errors(desc->werr);
- }
- 
- static unsigned int wdm_poll(struct file *file, struct poll_table_struct *wait)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0038-USB-cdc-wdm-fix-memory-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0038-USB-cdc-wdm-fix-memory-leak.patch
deleted file mode 100644
index 06dd85c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0038-USB-cdc-wdm-fix-memory-leak.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From bc51604d6cadd35fa7a9a4d70644471cb6ab81f8 Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oliver at neukum.org>
-Date: Fri, 27 Apr 2012 14:36:37 +0200
-Subject: [PATCH 038/117] USB: cdc-wdm: fix memory leak
-
-commit 2f338c8a1904e2e7aa5a8bd12fb0cf2422d17da4 upstream.
-
-cleanup() is not called if the last close() comes after
-disconnect(). That leads to a memory leak. Rectified
-by checking for an earlier disconnect() in release()
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index ac9099a..cfe5be4 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -590,6 +590,8 @@ static int wdm_release(struct inode *inode, struct file *file)
- 		kill_urbs(desc);
- 		if (!test_bit(WDM_DISCONNECTING, &desc->flags))
- 			desc->intf->needs_remote_wakeup = 0;
-+		else
-+			cleanup(desc);
- 	}
- 	mutex_unlock(&wdm_mutex);
- 	return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0039-8250_pci-fix-pch-uart-matching.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0039-8250_pci-fix-pch-uart-matching.patch
deleted file mode 100644
index c895c80..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0039-8250_pci-fix-pch-uart-matching.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From e90d4ef7a5801bf1e9c956edf51d22f6c8f33611 Mon Sep 17 00:00:00 2001
-From: Arnaud Patard <apatard at hupstream.com>
-Date: Wed, 25 Apr 2012 12:17:24 +0200
-Subject: [PATCH 039/117] 8250_pci: fix pch uart matching
-
-commit aaa10eb1d0034eccc096f583fe308f0921617598 upstream.
-
-The rules used to make 8250_pci "ignore" the PCH uarts are lacking pci subids
-entries, preventing it to match and thus is breaking serial port support for
-theses systems.
-
-This has been tested on a nanoETXexpress-TT, which has a specifici uart clock.
-
-Tested-by: Erwan Velu <Erwan.Velu at zodiacaerospace.com>
-Signed-off-by: Arnaud Patard <apatard at hupstream.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/8250_pci.c |   18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/tty/serial/8250_pci.c b/drivers/tty/serial/8250_pci.c
-index 825937a..482d51e 100644
---- a/drivers/tty/serial/8250_pci.c
-+++ b/drivers/tty/serial/8250_pci.c
-@@ -1590,54 +1590,72 @@ static struct pci_serial_quirk pci_serial_quirks[] __refdata = {
- 	{
- 		.vendor         = PCI_VENDOR_ID_INTEL,
- 		.device         = 0x8811,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = PCI_VENDOR_ID_INTEL,
- 		.device         = 0x8812,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = PCI_VENDOR_ID_INTEL,
- 		.device         = 0x8813,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = PCI_VENDOR_ID_INTEL,
- 		.device         = 0x8814,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = 0x10DB,
- 		.device         = 0x8027,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = 0x10DB,
- 		.device         = 0x8028,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = 0x10DB,
- 		.device         = 0x8029,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = 0x10DB,
- 		.device         = 0x800C,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
- 	{
- 		.vendor         = 0x10DB,
- 		.device         = 0x800D,
-+		.subvendor	= PCI_ANY_ID,
-+		.subdevice	= PCI_ANY_ID,
- 		.init		= pci_eg20t_init,
- 		.setup		= pci_default_setup,
- 	},
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0040-usb-add-USB_QUIRK_RESET_RESUME-for-M-Audio-88es.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0040-usb-add-USB_QUIRK_RESET_RESUME-for-M-Audio-88es.patch
deleted file mode 100644
index 5d78e49..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0040-usb-add-USB_QUIRK_RESET_RESUME-for-M-Audio-88es.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From aa66cb26f7b032f3ae43ff3cb126b3a3cff9b151 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Steffen=20M=C3=BCller?= <steffen.mueller at radio-frei.de>
-Date: Mon, 30 Apr 2012 13:05:34 +0200
-Subject: [PATCH 040/117] usb: add USB_QUIRK_RESET_RESUME for M-Audio 88es
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 166cb70e97bd83d7ae9bbec6ae59a178fd9bb823 upstream.
-
-Tested-by: Steffen Müller <steffen.mueller at radio-frei.de>
-Signed-off-by: Steffen Müller <steffen.mueller at radio-frei.de>
-Signed-off-by: Stefan Seyfried <seife+kernel at b1-systems.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/quirks.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/usb/core/quirks.c b/drivers/usb/core/quirks.c
-index 4c65eb6..32d3adc 100644
---- a/drivers/usb/core/quirks.c
-+++ b/drivers/usb/core/quirks.c
-@@ -123,6 +123,9 @@ static const struct usb_device_id usb_quirk_list[] = {
- 	/* Guillemot Webcam Hercules Dualpix Exchange*/
- 	{ USB_DEVICE(0x06f8, 0x3005), .driver_info = USB_QUIRK_RESET_RESUME },
- 
-+	/* Midiman M-Audio Keystation 88es */
-+	{ USB_DEVICE(0x0763, 0x0192), .driver_info = USB_QUIRK_RESET_RESUME },
-+
- 	/* M-Systems Flash Disk Pioneers */
- 	{ USB_DEVICE(0x08ec, 0x1000), .driver_info = USB_QUIRK_RESET_RESUME },
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0041-usb-usbtest-two-super-speed-fixes-for-usbtest.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0041-usb-usbtest-two-super-speed-fixes-for-usbtest.patch
deleted file mode 100644
index 2bc330a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0041-usb-usbtest-two-super-speed-fixes-for-usbtest.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From bb6dfbca863a06884b7af33a6c46fddb690eb7d3 Mon Sep 17 00:00:00 2001
-From: Paul Zimmerman <Paul.Zimmerman at synopsys.com>
-Date: Mon, 16 Apr 2012 14:19:07 -0700
-Subject: [PATCH 041/117] usb: usbtest: two super speed fixes for usbtest
-
-commit 6a23ccd216b6a8ba2c67a9f9d8969b4431ad2920 upstream.
-
-bMaxPacketSize0 field for super speed is a power of 2, not a count.
-The size itself is always 512.
-
-Max packet size for a super speed bulk endpoint is 1024, so
-allocate the urb size in halt_simple() accordingly.
-
-Signed-off-by: Paul Zimmerman <paulz at synopsys.com>
-Acked-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/misc/usbtest.c |   17 ++++++++++++-----
- 1 file changed, 12 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/misc/usbtest.c b/drivers/usb/misc/usbtest.c
-index bd6d008..b9ac9a3 100644
---- a/drivers/usb/misc/usbtest.c
-+++ b/drivers/usb/misc/usbtest.c
-@@ -1025,7 +1025,10 @@ test_ctrl_queue(struct usbtest_dev *dev, struct usbtest_param *param)
- 		case 13:	/* short read, resembling case 10 */
- 			req.wValue = cpu_to_le16((USB_DT_CONFIG << 8) | 0);
- 			/* last data packet "should" be DATA1, not DATA0 */
--			len = 1024 - udev->descriptor.bMaxPacketSize0;
-+			if (udev->speed == USB_SPEED_SUPER)
-+				len = 1024 - 512;
-+			else
-+				len = 1024 - udev->descriptor.bMaxPacketSize0;
- 			expected = -EREMOTEIO;
- 			break;
- 		case 14:	/* short read; try to fill the last packet */
-@@ -1384,11 +1387,15 @@ static int test_halt(struct usbtest_dev *tdev, int ep, struct urb *urb)
- 
- static int halt_simple(struct usbtest_dev *dev)
- {
--	int		ep;
--	int		retval = 0;
--	struct urb	*urb;
-+	int			ep;
-+	int			retval = 0;
-+	struct urb		*urb;
-+	struct usb_device	*udev = testdev_to_usbdev(dev);
- 
--	urb = simple_alloc_urb(testdev_to_usbdev(dev), 0, 512);
-+	if (udev->speed == USB_SPEED_SUPER)
-+		urb = simple_alloc_urb(udev, 0, 1024);
-+	else
-+		urb = simple_alloc_urb(udev, 0, 512);
- 	if (urb == NULL)
- 		return -ENOMEM;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0042-8250.c-less-than-2400-baud-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0042-8250.c-less-than-2400-baud-fix.patch
deleted file mode 100644
index 1c7547e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0042-8250.c-less-than-2400-baud-fix.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 52c1820cb4b5f10c0664104bb6f570305d0c49cc Mon Sep 17 00:00:00 2001
-From: Christian Melki <christian.melki at ericsson.se>
-Date: Mon, 30 Apr 2012 11:21:26 +0200
-Subject: [PATCH 042/117] 8250.c: less than 2400 baud fix.
-
-commit f9a9111b540fd67db5dab332f4b83d86c90e27b1 upstream.
-
-We noticed that we were loosing data at speed less than 2400 baud.
-It turned out our (TI16750 compatible) uart with 64 byte outgoing fifo
-was truncated to 16 byte (bit 5 sets fifo len) when modifying the fcr
-reg.
-The input code still fills the buffer with 64 bytes if I remember
-correctly and thus data is lost.
-Our fix was to remove whiping of the fcr content and just add the
-TRIGGER_1 which we want for latency.
-I can't see why this would not work on less than 2400 always, for all
-uarts ...
-Otherwise one would have to make sure the filling of the fifo re-checks
-the current state of available fifo size (urrk).
-
-Signed-off-by: Christian Melki <christian.melki at ericsson.se>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust filename; replace *port with up->port]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/8250.c |    9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/tty/serial/8250.c b/drivers/tty/serial/8250.c
-index eeadf1b..70585b6 100644
---- a/drivers/tty/serial/8250.c
-+++ b/drivers/tty/serial/8250.c
-@@ -2327,10 +2327,11 @@ serial8250_do_set_termios(struct uart_port *port, struct ktermios *termios,
- 		quot++;
- 
- 	if (up->capabilities & UART_CAP_FIFO && up->port.fifosize > 1) {
--		if (baud < 2400)
--			fcr = UART_FCR_ENABLE_FIFO | UART_FCR_TRIGGER_1;
--		else
--			fcr = uart_config[up->port.type].fcr;
-+		fcr = uart_config[up->port.type].fcr;
-+		if (baud < 2400) {
-+			fcr &= ~UART_FCR_TRIGGER_MASK;
-+			fcr |= UART_FCR_TRIGGER_1;
-+		}
- 	}
- 
- 	/*
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0043-usb-xhci-Handle-COMP_TX_ERR-for-isoc-tds.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0043-usb-xhci-Handle-COMP_TX_ERR-for-isoc-tds.patch
deleted file mode 100644
index ce641a4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0043-usb-xhci-Handle-COMP_TX_ERR-for-isoc-tds.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5ccddedea273a8a59eda8f3a7ad026d0751ada3d Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede at redhat.com>
-Date: Mon, 23 Apr 2012 15:06:09 +0200
-Subject: [PATCH 043/117] usb-xhci: Handle COMP_TX_ERR for isoc tds
-
-commit 9c745995ae5c4ff787f34a359de908facc11ee00 upstream.
-
-While testing unplugging an UVC HD webcam with usb-redirection (so through
-usbdevfs), my userspace usb-redir code was getting a value of -1 in
-iso_frame_desc[n].status, which according to Documentation/usb/error-codes.txt
-is not a valid value.
-
-The source of this -1 is the default case in xhci-ring.c:process_isoc_td()
-adding a kprintf there showed the value of trb_comp_code to be COMP_TX_ERR
-in this case, so this patch adds handling for that completion code to
-process_isoc_td().
-
-This was observed and tested with the following xhci controller:
-1033:0194 NEC Corporation uPD720200 USB 3.0 Host Controller (rev 04)
-
-Note: I also wonder if setting frame->status to -1 (-EPERM) is the best we can
-do, but since I cannot come up with anything better I've left that as is.
-
-This patch should be backported to kernels as old as 2.6.36, which contain the
-commit 04e51901dd44f40a5a385ced897f6bca87d5f40a "USB: xHCI: Isochronous
-transfer implementation".
-
-Signed-off-by: Hans de Goede <hdegoede at redhat.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci-ring.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
-index 43b3447..2304c45 100644
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -1752,6 +1752,7 @@ static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
- 		break;
- 	case COMP_DEV_ERR:
- 	case COMP_STALL:
-+	case COMP_TX_ERR:
- 		frame->status = -EPROTO;
- 		skip_td = true;
- 		break;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0044-xhci-Avoid-dead-ports-when-CONFIG_USB_XHCI_HCD-n.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0044-xhci-Avoid-dead-ports-when-CONFIG_USB_XHCI_HCD-n.patch
deleted file mode 100644
index eaa0ec5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0044-xhci-Avoid-dead-ports-when-CONFIG_USB_XHCI_HCD-n.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 48a73f4c8ba6d9e5587a29aa4f9710f405a28cc7 Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Mon, 16 Apr 2012 10:56:47 -0700
-Subject: [PATCH 044/117] xhci: Avoid dead ports when CONFIG_USB_XHCI_HCD=n
-
-commit 51c9e6c7732b67769c0a514d31f505e49fa82dd4 upstream.
-
-If the user chooses to say "no" to CONFIG_USB_XHCI_HCD on a system
-with an Intel Panther Point chipset, the PCI quirks code or the EHCI
-driver will switch the ports over to the xHCI host, but the xHCI driver
-will never load.  The ports will be powered off and seem "dead" to the
-user.
-
-Fix this by only switching the ports over if CONFIG_USB_XHCI_HCD is
-either compiled in, or compiled as a module.
-
-This patch should be backported to stable kernels as old as 3.0,
-that contain commit 69e848c2090aebba5698a1620604c7dccb448684
-"Intel xhci: Support EHCI/xHCI port switching."
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Reported-by: Eric Anholt <eric.anholt at intel.com>
-Reported-by: David Bein <d.bein at f5.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/pci-quirks.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
-index 2afff88..a33362b 100644
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
-@@ -9,6 +9,7 @@
-  */
- 
- #include <linux/types.h>
-+#include <linux/kconfig.h>
- #include <linux/kernel.h>
- #include <linux/pci.h>
- #include <linux/init.h>
-@@ -742,6 +743,19 @@ void usb_enable_xhci_ports(struct pci_dev *xhci_pdev)
- {
- 	u32		ports_available;
- 
-+	/* Don't switchover the ports if the user hasn't compiled the xHCI
-+	 * driver.  Otherwise they will see "dead" USB ports that don't power
-+	 * the devices.
-+	 */
-+	if (!IS_ENABLED(CONFIG_USB_XHCI_HCD)) {
-+		dev_warn(&xhci_pdev->dev,
-+				"CONFIG_USB_XHCI_HCD is turned off, "
-+				"defaulting to EHCI.\n");
-+		dev_warn(&xhci_pdev->dev,
-+				"USB 3.0 devices will work at USB 2.0 speeds.\n");
-+		return;
-+	}
-+
- 	ports_available = 0xffffffff;
- 	/* Write USB3_PSSEN, the USB 3.0 Port SuperSpeed Enable
- 	 * Register, to turn on SuperSpeed terminations for all
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0045-xhci-Add-Lynx-Point-to-list-of-Intel-switchable-host.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0045-xhci-Add-Lynx-Point-to-list-of-Intel-switchable-host.patch
deleted file mode 100644
index 2bd8bcd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0045-xhci-Add-Lynx-Point-to-list-of-Intel-switchable-host.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From cc4326a34985d9ce41cd590e7cf7275a0fbaa9dd Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Thu, 9 Feb 2012 15:55:13 -0800
-Subject: [PATCH 045/117] xhci: Add Lynx Point to list of Intel switchable
- hosts.
-
-commit 1c12443ab8eba71a658fae4572147e56d1f84f66 upstream.
-
-The upcoming Intel Lynx Point chipset includes an xHCI host controller
-that can have ports switched from the EHCI host controller, just like
-the Intel Panther Point xHCI host.  This time, ports from both EHCI
-hosts can be switched to the xHCI host controller.  The PCI config
-registers to do the port switching are in the exact same place in the
-xHCI PCI configuration registers, with the same semantics.
-
-Hooray for shipping patches for next-gen hardware before the current gen
-hardware is even available for purchase!
-
-This patch should be backported to stable kernels as old as 3.0,
-that contain commit 69e848c2090aebba5698a1620604c7dccb448684
-"Intel xhci: Support EHCI/xHCI port switching."
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/ehci-pci.c   |    4 +++-
- drivers/usb/host/pci-quirks.c |   18 +++++++++++++++++-
- 2 files changed, 20 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
-index 971d312..ee85e81 100644
---- a/drivers/usb/host/ehci-pci.c
-+++ b/drivers/usb/host/ehci-pci.c
-@@ -365,7 +365,9 @@ static bool usb_is_intel_switchable_ehci(struct pci_dev *pdev)
- {
- 	return pdev->class == PCI_CLASS_SERIAL_USB_EHCI &&
- 		pdev->vendor == PCI_VENDOR_ID_INTEL &&
--		pdev->device == 0x1E26;
-+		(pdev->device == 0x1E26 ||
-+		 pdev->device == 0x8C2D ||
-+		 pdev->device == 0x8C26);
- }
- 
- static void ehci_enable_xhci_companion(void)
-diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
-index a33362b..833b3c6 100644
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
-@@ -713,12 +713,28 @@ static int handshake(void __iomem *ptr, u32 mask, u32 done,
- 	return -ETIMEDOUT;
- }
- 
--bool usb_is_intel_switchable_xhci(struct pci_dev *pdev)
-+#define PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI	0x8C31
-+
-+bool usb_is_intel_ppt_switchable_xhci(struct pci_dev *pdev)
- {
- 	return pdev->class == PCI_CLASS_SERIAL_USB_XHCI &&
- 		pdev->vendor == PCI_VENDOR_ID_INTEL &&
- 		pdev->device == PCI_DEVICE_ID_INTEL_PANTHERPOINT_XHCI;
- }
-+
-+/* The Intel Lynx Point chipset also has switchable ports. */
-+bool usb_is_intel_lpt_switchable_xhci(struct pci_dev *pdev)
-+{
-+	return pdev->class == PCI_CLASS_SERIAL_USB_XHCI &&
-+		pdev->vendor == PCI_VENDOR_ID_INTEL &&
-+		pdev->device == PCI_DEVICE_ID_INTEL_LYNX_POINT_XHCI;
-+}
-+
-+bool usb_is_intel_switchable_xhci(struct pci_dev *pdev)
-+{
-+	return usb_is_intel_ppt_switchable_xhci(pdev) ||
-+		usb_is_intel_lpt_switchable_xhci(pdev);
-+}
- EXPORT_SYMBOL_GPL(usb_is_intel_switchable_xhci);
- 
- /*
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0046-usb-gadget-fsl_udc_core-dTD-s-next-dtd-pointer-need-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0046-usb-gadget-fsl_udc_core-dTD-s-next-dtd-pointer-need-.patch
deleted file mode 100644
index 5e46323..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0046-usb-gadget-fsl_udc_core-dTD-s-next-dtd-pointer-need-.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 45bf78829065725fa73b4cacfaf2a2142056d301 Mon Sep 17 00:00:00 2001
-From: Peter Chen <peter.chen at freescale.com>
-Date: Sun, 1 Apr 2012 15:17:16 +0800
-Subject: [PATCH 046/117] usb: gadget: fsl_udc_core: dTD's next dtd pointer
- need to be updated once written
-
-commit 4d0947dec4db1224354e2f6f00ae22ce38e62a43 upstream.
-
-dTD's next dtd pointer need to be updated once CPU writes it, or this
-request may not be handled by controller, then host will get NAK from
-device forever.
-
-This problem occurs when there is a request is handling, we need to add
-a new request to dTD list, if this new request is added before the current
-one is finished, the new request is intended to added as next dtd pointer
-at current dTD, but without wmb(), the dTD's next dtd pointer may not be
-updated when the controller reads it. In that case, the controller will
-still get Terminate Bit is 1 at dTD's next dtd pointer, that means there is
-no next request, then this new request is missed by controller.
-
-Signed-off-by: Peter Chen <peter.chen at freescale.com>
-Acked-by: Li Yang <leoli at freescale.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/gadget/fsl_udc_core.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/gadget/fsl_udc_core.c b/drivers/usb/gadget/fsl_udc_core.c
-index 9085d14..185db03 100644
---- a/drivers/usb/gadget/fsl_udc_core.c
-+++ b/drivers/usb/gadget/fsl_udc_core.c
-@@ -736,6 +736,8 @@ static void fsl_queue_td(struct fsl_ep *ep, struct fsl_req *req)
- 		lastreq = list_entry(ep->queue.prev, struct fsl_req, queue);
- 		lastreq->tail->next_td_ptr =
- 			cpu_to_hc32(req->head->td_dma & DTD_ADDR_MASK);
-+		/* Ensure dTD's next dtd pointer to be updated */
-+		wmb();
- 		/* Read prime bit, if 1 goto done */
- 		if (fsl_readl(&dr_regs->endpointprime) & bitmask)
- 			return;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0047-Add-missing-call-to-uart_update_timeout.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0047-Add-missing-call-to-uart_update_timeout.patch
deleted file mode 100644
index 9c15081..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0047-Add-missing-call-to-uart_update_timeout.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 17e2d3e18d2042fb6fb23605752754deb87772c5 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Lothar=20Wa=C3=9Fmann?= <LW at KARO-electronics.de>
-Date: Thu, 3 May 2012 11:37:12 +0200
-Subject: [PATCH 047/117] Add missing call to uart_update_timeout()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8b979f7c6bf13a57e7b6002f1175312a44773960 upstream.
-
-This patch fixes a problem reported here:
-http://article.gmane.org/gmane.linux.ports.arm.kernel/155242/match=auart
-
-Signed-off-by: Lothar Waßmann <LW at KARO-electronics.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/mxs-auart.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/tty/serial/mxs-auart.c b/drivers/tty/serial/mxs-auart.c
-index 7e02c9c..5b3d063 100644
---- a/drivers/tty/serial/mxs-auart.c
-+++ b/drivers/tty/serial/mxs-auart.c
-@@ -368,6 +368,8 @@ static void mxs_auart_settermios(struct uart_port *u,
- 
- 	writel(ctrl, u->membase + AUART_LINECTRL);
- 	writel(ctrl2, u->membase + AUART_CTRL2);
-+
-+	uart_update_timeout(u, termios->c_cflag, baud);
- }
- 
- static irqreturn_t mxs_auart_irq_handle(int irq, void *context)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0048-USB-ftdi-sio-add-support-for-Physik-Instrumente-E-86.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0048-USB-ftdi-sio-add-support-for-Physik-Instrumente-E-86.patch
deleted file mode 100644
index 493344b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0048-USB-ftdi-sio-add-support-for-Physik-Instrumente-E-86.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 52bf48eda8302a253e63ac9ec069a1635932b237 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=C3=89ric=20Piel?= <piel at delmic.com>
-Date: Mon, 7 May 2012 12:37:54 +0200
-Subject: [PATCH 048/117] USB: ftdi-sio: add support for Physik Instrumente
- E-861
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b69cc672052540e8efb1368420f10d7d4d8b8a3d upstream.
-
-This adds VID/PID for the PI E-861. Without it, I had to do:
-modprobe -q ftdi-sio product=0x1008 vendor=0x1a72
-
-http://www.physikinstrumente.com/en/products/prdetail.php?sortnr=900610
-
-Signed-off-by: Éric Piel <piel at delmic.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/ftdi_sio.c     |    1 +
- drivers/usb/serial/ftdi_sio_ids.h |    8 ++++++++
- 2 files changed, 9 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index c4cf3f3..450bdfe 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -809,6 +809,7 @@ static struct usb_device_id id_table_combined [] = {
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
- 	{ USB_DEVICE(LARSENBRUSGAARD_VID, LB_ALTITRACK_PID) },
- 	{ USB_DEVICE(GN_OTOMETRICS_VID, AURICAL_USB_PID) },
-+	{ USB_DEVICE(PI_VID, PI_E861_PID) },
- 	{ USB_DEVICE(BAYER_VID, BAYER_CONTOUR_CABLE_PID) },
- 	{ USB_DEVICE(FTDI_VID, MARVELL_OPENRD_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index c6dd18e..219b199 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -785,6 +785,14 @@
- #define RTSYSTEMS_SERIAL_VX7_PID	0x9e52	/* Serial converter for VX-7 Radios using FT232RL */
- #define RTSYSTEMS_CT29B_PID		0x9e54	/* CT29B Radio Cable */
- 
-+
-+/*
-+ * Physik Instrumente
-+ * http://www.physikinstrumente.com/en/products/
-+ */
-+#define PI_VID              0x1a72  /* Vendor ID */
-+#define PI_E861_PID         0x1008  /* E-861 piezo controller USB connection */
-+
- /*
-  * Bayer Ascensia Contour blood glucose meter USB-converter cable.
-  * http://winglucofacts.com/cables/
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0049-USB-ffs-test-fix-length-argument-of-out-function-cal.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0049-USB-ffs-test-fix-length-argument-of-out-function-cal.patch
deleted file mode 100644
index 81f1eb1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0049-USB-ffs-test-fix-length-argument-of-out-function-cal.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7041c376790f592d9ed3c6b88a44a6cf18b8423c Mon Sep 17 00:00:00 2001
-From: Matthias Fend <Matthias.Fend at wolfvision.net>
-Date: Mon, 7 May 2012 14:37:30 +0200
-Subject: [PATCH 049/117] USB: ffs-test: fix length argument of out function
- call
-
-commit eb9c5836384cd2a276254df6254ed71117983626 upstream.
-
-The out functions should only handle actual available data instead of the complete buffer.
-Otherwise for example the ep0_consume function will report ghost events since it tries to decode
-the complete buffer - which may contain partly invalid data.
-
-Signed-off-by: Matthias Fend <matthias.fend at wolfvision.net>
-Acked-by: Michal Nazarewicz <mina86 at mina86.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- tools/usb/ffs-test.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/tools/usb/ffs-test.c b/tools/usb/ffs-test.c
-index b9c7986..f17dfee 100644
---- a/tools/usb/ffs-test.c
-+++ b/tools/usb/ffs-test.c
-@@ -324,7 +324,7 @@ static void *start_thread_helper(void *arg)
- 
- 		ret = t->in(t, t->buf, t->buf_size);
- 		if (ret > 0) {
--			ret = t->out(t, t->buf, t->buf_size);
-+			ret = t->out(t, t->buf, ret);
- 			name = out_name;
- 			op = "write";
- 		} else {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0050-HID-wiimote-Fix-IR-data-parser.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0050-HID-wiimote-Fix-IR-data-parser.patch
deleted file mode 100644
index c5f666a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0050-HID-wiimote-Fix-IR-data-parser.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 0842fcae9a509f08c6d540dfa4d3f097c4f3f92d Mon Sep 17 00:00:00 2001
-From: David Herrmann <dh.herrmann at googlemail.com>
-Date: Tue, 8 May 2012 16:52:31 +0200
-Subject: [PATCH 050/117] HID: wiimote: Fix IR data parser
-
-commit 74b89e8a3625c17c7452532dfb997ac4f1a38751 upstream.
-
-We incorrectly parse incoming IR data. The extra byte contains the upper
-bits and not the lower bits of the x/y coordinates. User-space expects
-absolute position data from us so this patch does not break existing
-applications. On the contrary, it extends the virtual view and fixes
-garbage reports for margin areas of the virtual screen.
-
-Reported-by: Peter Bukovsky <bukovsky.peter at gmail.com>
-Signed-off-by: David Herrmann <dh.herrmann at googlemail.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hid/hid-wiimote.c |   16 +++++-----------
- 1 file changed, 5 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/hid/hid-wiimote.c b/drivers/hid/hid-wiimote.c
-index 76739c0..bfa9a27 100644
---- a/drivers/hid/hid-wiimote.c
-+++ b/drivers/hid/hid-wiimote.c
-@@ -829,7 +829,7 @@ static void __ir_to_input(struct wiimote_data *wdata, const __u8 *ir,
- 
- 	/*
- 	 * Basic IR data is encoded into 3 bytes. The first two bytes are the
--	 * upper 8 bit of the X/Y data, the 3rd byte contains the lower 2 bits
-+	 * lower 8 bit of the X/Y data, the 3rd byte contains the upper 2 bits
- 	 * of both.
- 	 * If data is packed, then the 3rd byte is put first and slightly
- 	 * reordered. This allows to interleave packed and non-packed data to
-@@ -838,17 +838,11 @@ static void __ir_to_input(struct wiimote_data *wdata, const __u8 *ir,
- 	 */
- 
- 	if (packed) {
--		x = ir[1] << 2;
--		y = ir[2] << 2;
--
--		x |= ir[0] & 0x3;
--		y |= (ir[0] >> 2) & 0x3;
-+		x = ir[1] | ((ir[0] & 0x03) << 8);
-+		y = ir[2] | ((ir[0] & 0x0c) << 6);
- 	} else {
--		x = ir[0] << 2;
--		y = ir[1] << 2;
--
--		x |= (ir[2] >> 4) & 0x3;
--		y |= (ir[2] >> 6) & 0x3;
-+		x = ir[0] | ((ir[2] & 0x30) << 4);
-+		y = ir[1] | ((ir[2] & 0xc0) << 2);
- 	}
- 
- 	input_report_abs(wdata->ir, xid, x);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0051-usb-storage-unusual_devs-entry-for-Yarvik-PMP400-MP4.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0051-usb-storage-unusual_devs-entry-for-Yarvik-PMP400-MP4.patch
deleted file mode 100644
index 6a9b5d9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0051-usb-storage-unusual_devs-entry-for-Yarvik-PMP400-MP4.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From a595c200511d66729bc55aadbb93adb96988c590 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Tue, 8 May 2012 15:15:25 -0400
-Subject: [PATCH 051/117] usb-storage: unusual_devs entry for Yarvik PMP400
- MP4 player
-
-commit df767b71e5816692134d59c0c17e0f77cd73333d upstream.
-
-This patch (as1553) adds an unusual_dev entrie for the Yarvik PMP400
-MP4 music player.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Reported-by: Jesse Feddema <jdfeddema at gmail.com>
-Tested-by: Jesse Feddema <jdfeddema at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/storage/unusual_devs.h |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/usb/storage/unusual_devs.h b/drivers/usb/storage/unusual_devs.h
-index 24caba7..591f57f 100644
---- a/drivers/usb/storage/unusual_devs.h
-+++ b/drivers/usb/storage/unusual_devs.h
-@@ -1885,6 +1885,13 @@ UNUSUAL_DEV(  0x1652, 0x6600, 0x0201, 0x0201,
- 		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
- 		US_FL_IGNORE_RESIDUE ),
- 
-+/* Reported by Jesse Feddema <jdfeddema at gmail.com> */
-+UNUSUAL_DEV(  0x177f, 0x0400, 0x0000, 0x0000,
-+		"Yarvik",
-+		"PMP400",
-+		USB_SC_DEVICE, USB_PR_DEVICE, NULL,
-+		US_FL_BULK_IGNORE_TAG | US_FL_MAX_SECTORS_64 ),
-+
- /* Reported by Hans de Goede <hdegoede at redhat.com>
-  * These Appotech controllers are found in Picture Frames, they provide a
-  * (buggy) emulation of a cdrom drive which contains the windows software
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0052-USB-ohci-at91-add-a-reset-function-to-fix-race-condi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0052-USB-ohci-at91-add-a-reset-function-to-fix-race-condi.patch
deleted file mode 100644
index 3f380bb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0052-USB-ohci-at91-add-a-reset-function-to-fix-race-condi.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ac7728e7d633262cd020d764404abf381f282d12 Mon Sep 17 00:00:00 2001
-From: Nicolas Ferre <nicolas.ferre at atmel.com>
-Date: Wed, 9 May 2012 10:48:54 +0200
-Subject: [PATCH 052/117] USB: ohci-at91: add a reset function to fix race
- condition
-
-commit 07e4e556eff4938eb2edf2591de3aa7d7fb82b52 upstream.
-
-A possible race condition appears because we are not initializing
-the ohci->regs before calling usb_hcd_request_irqs().
-We move the call to ohci_init() in hcd->driver->reset() instead of
-hcd->driver->start() to fix this.
-This was experienced when we share the same IRQ line between OHCI and EHCI
-controllers.
-
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Tested-by: Christian Eggers <christian.eggers at kathrein.de>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/ohci-at91.c |   11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/ohci-at91.c b/drivers/usb/host/ohci-at91.c
-index 95a9fec..a60c7aa 100644
---- a/drivers/usb/host/ohci-at91.c
-+++ b/drivers/usb/host/ohci-at91.c
-@@ -199,7 +199,7 @@ static void usb_hcd_at91_remove(struct usb_hcd *hcd,
- /*-------------------------------------------------------------------------*/
- 
- static int __devinit
--ohci_at91_start (struct usb_hcd *hcd)
-+ohci_at91_reset (struct usb_hcd *hcd)
- {
- 	struct at91_usbh_data	*board = hcd->self.controller->platform_data;
- 	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);
-@@ -209,6 +209,14 @@ ohci_at91_start (struct usb_hcd *hcd)
- 		return ret;
- 
- 	ohci->num_ports = board->ports;
-+	return 0;
-+}
-+
-+static int __devinit
-+ohci_at91_start (struct usb_hcd *hcd)
-+{
-+	struct ohci_hcd		*ohci = hcd_to_ohci (hcd);
-+	int			ret;
- 
- 	if ((ret = ohci_run(ohci)) < 0) {
- 		err("can't start %s", hcd->self.bus_name);
-@@ -390,6 +398,7 @@ static const struct hc_driver ohci_at91_hc_driver = {
- 	/*
- 	 * basic lifecycle operations
- 	 */
-+	.reset =		ohci_at91_reset,
- 	.start =		ohci_at91_start,
- 	.stop =			ohci_stop,
- 	.shutdown =		ohci_shutdown,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0053-HID-logitech-read-all-32-bits-of-report-type-bitfiel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0053-HID-logitech-read-all-32-bits-of-report-type-bitfiel.patch
deleted file mode 100644
index 181bd55..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0053-HID-logitech-read-all-32-bits-of-report-type-bitfiel.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 4061b435a02342ee10ee34fb69f2c75d53e8da70 Mon Sep 17 00:00:00 2001
-From: Jonathan Nieder <jrnieder at gmail.com>
-Date: Fri, 11 May 2012 16:17:16 +0200
-Subject: [PATCH 053/117] HID: logitech: read all 32 bits of report type
- bitfield
-
-commit 44d27f7dfedd9aadc082cda31462f6600f56e4ec upstream.
-
-On big-endian systems (e.g., Apple PowerBook), trying to use a
-logitech wireless mouse with the Logitech Unifying Receiver does not
-work with v3.2 and later kernels.  The device doesn't show up in
-/dev/input.  Older kernels work fine.
-
-That is because the new hid-logitech-dj driver claims the device.  The
-device arrival notification appears:
-
-	20 00 41 02 00 00 00 00 00 00 00 00 00 00 00
-
-and we read the report_types bitfield (02 00 00 00) to find out what
-kind of device it is.  Unfortunately the driver only reads the first 8
-bits and treats that value as a 32-bit little-endian number, so on a
-powerpc the report type seems to be 0x02000000 and is not recognized.
-
-Even on little-endian machines, connecting a media center remote
-control (report type 00 01 00 00) with this driver loaded would
-presumably fail for the same reason.
-
-Fix both problems by using get_unaligned_le32() to read all four
-bytes, which is a little clearer anyway.  After this change, the
-wireless mouse works on Hugo's PowerBook again.
-
-Based on a patch by Nestor Lopez Casado.
-Addresses http://bugs.debian.org/671292
-
-Reported-by: Hugo Osvaldo Barrera <hugo at osvaldobarrera.com.ar>
-Inspired-by: Nestor Lopez Casado <nlopezcasad at logitech.com>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Nestor Lopez Casado <nlopezcasad at logitech.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hid/hid-logitech-dj.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/hid/hid-logitech-dj.c b/drivers/hid/hid-logitech-dj.c
-index 38b12e4..2eac8c5 100644
---- a/drivers/hid/hid-logitech-dj.c
-+++ b/drivers/hid/hid-logitech-dj.c
-@@ -26,6 +26,7 @@
- #include <linux/hid.h>
- #include <linux/module.h>
- #include <linux/usb.h>
-+#include <asm/unaligned.h>
- #include "usbhid/usbhid.h"
- #include "hid-ids.h"
- #include "hid-logitech-dj.h"
-@@ -265,8 +266,8 @@ static void logi_dj_recv_add_djhid_device(struct dj_receiver_dev *djrcv_dev,
- 		goto dj_device_allocate_fail;
- 	}
- 
--	dj_dev->reports_supported = le32_to_cpu(
--		dj_report->report_params[DEVICE_PAIRED_RF_REPORT_TYPE]);
-+	dj_dev->reports_supported = get_unaligned_le32(
-+		dj_report->report_params + DEVICE_PAIRED_RF_REPORT_TYPE);
- 	dj_dev->hdev = dj_hiddev;
- 	dj_dev->dj_receiver_dev = djrcv_dev;
- 	dj_dev->device_index = dj_report->device_index;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0054-USB-serial-ti_usb_3410_5052-Add-support-for-the-FRI2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0054-USB-serial-ti_usb_3410_5052-Add-support-for-the-FRI2.patch
deleted file mode 100644
index 105ed17..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0054-USB-serial-ti_usb_3410_5052-Add-support-for-the-FRI2.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 38827d01920cd8adbdbdb89d79b749f6cb50b8f0 Mon Sep 17 00:00:00 2001
-From: Darren Hart <dvhart at linux.intel.com>
-Date: Fri, 11 May 2012 13:56:57 -0700
-Subject: [PATCH 054/117] USB: serial: ti_usb_3410_5052: Add support for the
- FRI2 serial console
-
-commit 975dc33b82cb887d75a29b1e3835c8eb063a8e99 upstream.
-
-The Kontron M2M development board, also known as the Fish River Island II,
-has an optional daughter card providing access to the PCH_UART (EG20T) via
-a ti_usb_3410_5052 uart to usb chip.
-
-http://us.kontron.com/products/systems+and+platforms/m2m/m2m+smart+services+developer+kit.html
-
-Signed-off-by: Darren Hart <dvhart at linux.intel.com>
-CC: Al Borchers <alborchers at steinerpoint.com>
-CC: Peter Berger <pberger at brimson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/ti_usb_3410_5052.c |    6 ++++--
- drivers/usb/serial/ti_usb_3410_5052.h |    1 +
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
-index 21c82b0..2856474 100644
---- a/drivers/usb/serial/ti_usb_3410_5052.c
-+++ b/drivers/usb/serial/ti_usb_3410_5052.c
-@@ -165,7 +165,7 @@ static unsigned int product_5052_count;
- /* the array dimension is the number of default entries plus */
- /* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */
- /* null entry */
--static struct usb_device_id ti_id_table_3410[14+TI_EXTRA_VID_PID_COUNT+1] = {
-+static struct usb_device_id ti_id_table_3410[15+TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
- 	{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
-@@ -180,6 +180,7 @@ static struct usb_device_id ti_id_table_3410[14+TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) },
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) },
- 	{ USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_PRODUCT_ID) },
-+	{ USB_DEVICE(TI_VENDOR_ID, FRI2_PRODUCT_ID) },
- };
- 
- static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = {
-@@ -189,7 +190,7 @@ static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) },
- };
- 
--static struct usb_device_id ti_id_table_combined[18+2*TI_EXTRA_VID_PID_COUNT+1] = {
-+static struct usb_device_id ti_id_table_combined[19+2*TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
- 	{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
-@@ -208,6 +209,7 @@ static struct usb_device_id ti_id_table_combined[18+2*TI_EXTRA_VID_PID_COUNT+1]
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) },
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) },
- 	{ USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_PRODUCT_ID) },
-+	{ USB_DEVICE(TI_VENDOR_ID, FRI2_PRODUCT_ID) },
- 	{ }
- };
- 
-diff --git a/drivers/usb/serial/ti_usb_3410_5052.h b/drivers/usb/serial/ti_usb_3410_5052.h
-index f140f1b..b353e7e 100644
---- a/drivers/usb/serial/ti_usb_3410_5052.h
-+++ b/drivers/usb/serial/ti_usb_3410_5052.h
-@@ -37,6 +37,7 @@
- #define TI_5152_BOOT_PRODUCT_ID		0x5152	/* no EEPROM, no firmware */
- #define TI_5052_EEPROM_PRODUCT_ID	0x505A	/* EEPROM, no firmware */
- #define TI_5052_FIRMWARE_PRODUCT_ID	0x505F	/* firmware is running */
-+#define FRI2_PRODUCT_ID			0x5053  /* Fish River Island II */
- 
- /* Multi-Tech vendor and product ids */
- #define MTS_VENDOR_ID			0x06E0
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0055-USB-cdc-wdm-poll-must-return-POLLHUP-if-device-is-go.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0055-USB-cdc-wdm-poll-must-return-POLLHUP-if-device-is-go.patch
deleted file mode 100644
index 40e98b3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0055-USB-cdc-wdm-poll-must-return-POLLHUP-if-device-is-go.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 420e76b95a867f5105ee9b3d824c47f62601c19b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Wed, 9 May 2012 13:53:21 +0200
-Subject: [PATCH 055/117] USB: cdc-wdm: poll must return POLLHUP if device is
- gone
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 616b6937e348ef2b4c6ea5fef2cd3c441145efb0 upstream.
-
-Else the poll will be restarted indefinitely in a tight loop,
-preventing final device cleanup.
-
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index cfe5be4..38d8c33 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -511,7 +511,7 @@ static unsigned int wdm_poll(struct file *file, struct poll_table_struct *wait)
- 
- 	spin_lock_irqsave(&desc->iuspin, flags);
- 	if (test_bit(WDM_DISCONNECTING, &desc->flags)) {
--		mask = POLLERR;
-+		mask = POLLHUP | POLLERR;
- 		spin_unlock_irqrestore(&desc->iuspin, flags);
- 		goto desc_out;
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0056-USB-cdc-wdm-add-debug-messages-on-cleanup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0056-USB-cdc-wdm-add-debug-messages-on-cleanup.patch
deleted file mode 100644
index 4ad688a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0056-USB-cdc-wdm-add-debug-messages-on-cleanup.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From ec4941d4623bada1da050a962485961da8c928d6 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 30 Apr 2012 09:26:11 +0200
-Subject: [PATCH 056/117] USB: cdc-wdm: add debug messages on cleanup
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 880bca3a2a6f159d7453e0cbcbfe2f1d8204d907 upstream.
-
-Device state cleanup is done in either wdm_disconnect or
-wdm_release depending on the order they are called. Adding
-a couple of debug messages to document the program flow.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Acked-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |    8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 38d8c33..40a3f0b 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -588,10 +588,12 @@ static int wdm_release(struct inode *inode, struct file *file)
- 	if (!desc->count) {
- 		dev_dbg(&desc->intf->dev, "wdm_release: cleanup");
- 		kill_urbs(desc);
--		if (!test_bit(WDM_DISCONNECTING, &desc->flags))
-+		if (!test_bit(WDM_DISCONNECTING, &desc->flags)) {
- 			desc->intf->needs_remote_wakeup = 0;
--		else
-+		} else {
-+			dev_dbg(&desc->intf->dev, "%s: device gone - cleaning up\n", __func__);
- 			cleanup(desc);
-+		}
- 	}
- 	mutex_unlock(&wdm_mutex);
- 	return 0;
-@@ -807,6 +809,8 @@ static void wdm_disconnect(struct usb_interface *intf)
- 	mutex_unlock(&desc->rlock);
- 	if (!desc->count)
- 		cleanup(desc);
-+	else
-+		dev_dbg(&intf->dev, "%s: %d open files - postponing cleanup\n", __func__, desc->count);
- 	mutex_unlock(&wdm_mutex);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0057-USB-cdc-wdm-cannot-use-dev_printk-when-device-is-gon.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0057-USB-cdc-wdm-cannot-use-dev_printk-when-device-is-gon.patch
deleted file mode 100644
index 146b18b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0057-USB-cdc-wdm-cannot-use-dev_printk-when-device-is-gon.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From beaa75548738c322895c5b3ca7c010397cfb0afb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Wed, 9 May 2012 13:53:22 +0200
-Subject: [PATCH 057/117] USB: cdc-wdm: cannot use dev_printk when device is
- gone
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 6b0b79d38806481c1c8fffa7c5842f3c83679a42 upstream.
-
-We cannot dereference a removed USB interface for
-dev_printk. Use pr_debug instead where necessary.
-
-Flush errors are expected if device is unplugged and are
-therefore best ingored at this point.
-
-Move the kill_urbs() call in wdm_release with dev_dbg()
-for the non disconnect, as we know it has already been
-called if WDM_DISCONNECTING is set.  This does not
-actually fix anything, but keeps the code more consistent.
-
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |   11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 40a3f0b..554ac90 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -496,7 +496,9 @@ static int wdm_flush(struct file *file, fl_owner_t id)
- 	struct wdm_device *desc = file->private_data;
- 
- 	wait_event(desc->wait, !test_bit(WDM_IN_USE, &desc->flags));
--	if (desc->werr < 0)
-+
-+	/* cannot dereference desc->intf if WDM_DISCONNECTING */
-+	if (desc->werr < 0 && !test_bit(WDM_DISCONNECTING, &desc->flags))
- 		dev_err(&desc->intf->dev, "Error in flush path: %d\n",
- 			desc->werr);
- 
-@@ -586,12 +588,13 @@ static int wdm_release(struct inode *inode, struct file *file)
- 	mutex_unlock(&desc->wlock);
- 
- 	if (!desc->count) {
--		dev_dbg(&desc->intf->dev, "wdm_release: cleanup");
--		kill_urbs(desc);
- 		if (!test_bit(WDM_DISCONNECTING, &desc->flags)) {
-+			dev_dbg(&desc->intf->dev, "wdm_release: cleanup");
-+			kill_urbs(desc);
- 			desc->intf->needs_remote_wakeup = 0;
- 		} else {
--			dev_dbg(&desc->intf->dev, "%s: device gone - cleaning up\n", __func__);
-+			/* must avoid dev_printk here as desc->intf is invalid */
-+			pr_debug(KBUILD_MODNAME " %s: device gone - cleaning up\n", __func__);
- 			cleanup(desc);
- 		}
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0058-tty-Allow-uart_register-unregister-register.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0058-tty-Allow-uart_register-unregister-register.patch
deleted file mode 100644
index 8c999bc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0058-tty-Allow-uart_register-unregister-register.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d3f8f68e0ff8065d2769fc80ebab6cd4a99df65d Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Mon, 14 May 2012 14:51:22 +0100
-Subject: [PATCH 058/117] tty: Allow uart_register/unregister/register
-
-commit 1e66cded334e6cea596c72f6f650eec351b1e959 upstream.
-
-This is legitimate but because we don't clear the drv->state pointer in the
-unregister code causes a bogus BUG().
-
-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=42880
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/serial_core.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/tty/serial/serial_core.c b/drivers/tty/serial/serial_core.c
-index 0406d7f..af5ffb9 100644
---- a/drivers/tty/serial/serial_core.c
-+++ b/drivers/tty/serial/serial_core.c
-@@ -2305,6 +2305,7 @@ void uart_unregister_driver(struct uart_driver *drv)
- 	tty_unregister_driver(p);
- 	put_tty_driver(p);
- 	kfree(drv->state);
-+	drv->state = NULL;
- 	drv->tty_driver = NULL;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0059-workqueue-skip-nr_running-sanity-check-in-worker_ent.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0059-workqueue-skip-nr_running-sanity-check-in-worker_ent.patch
deleted file mode 100644
index 22d6da3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0059-workqueue-skip-nr_running-sanity-check-in-worker_ent.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From ac2fd7de4ac5b536aace631588cdab6c27a3ef9d Mon Sep 17 00:00:00 2001
-From: Tejun Heo <tj at kernel.org>
-Date: Mon, 14 May 2012 15:04:50 -0700
-Subject: [PATCH 059/117] workqueue: skip nr_running sanity check in
- worker_enter_idle() if trustee is active
-
-commit 544ecf310f0e7f51fa057ac2a295fc1b3b35a9d3 upstream.
-
-worker_enter_idle() has WARN_ON_ONCE() which triggers if nr_running
-isn't zero when every worker is idle.  This can trigger spuriously
-while a cpu is going down due to the way trustee sets %WORKER_ROGUE
-and zaps nr_running.
-
-It first sets %WORKER_ROGUE on all workers without updating
-nr_running, releases gcwq->lock, schedules, regrabs gcwq->lock and
-then zaps nr_running.  If the last running worker enters idle
-inbetween, it would see stale nr_running which hasn't been zapped yet
-and trigger the WARN_ON_ONCE().
-
-Fix it by performing the sanity check iff the trustee is idle.
-
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Reported-by: "Paul E. McKenney" <paulmck at linux.vnet.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/workqueue.c |    9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index bb425b1..7947e16 100644
---- a/kernel/workqueue.c
-+++ b/kernel/workqueue.c
-@@ -1215,8 +1215,13 @@ static void worker_enter_idle(struct worker *worker)
- 	} else
- 		wake_up_all(&gcwq->trustee_wait);
- 
--	/* sanity check nr_running */
--	WARN_ON_ONCE(gcwq->nr_workers == gcwq->nr_idle &&
-+	/*
-+	 * Sanity check nr_running.  Because trustee releases gcwq->lock
-+	 * between setting %WORKER_ROGUE and zapping nr_running, the
-+	 * warning may trigger spuriously.  Check iff trustee is idle.
-+	 */
-+	WARN_ON_ONCE(gcwq->trustee_state == TRUSTEE_DONE &&
-+		     gcwq->nr_workers == gcwq->nr_idle &&
- 		     atomic_read(get_gcwq_nr_running(gcwq->cpu)));
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0060-xhci-Add-new-short-TX-quirk-for-Fresco-Logic-host.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0060-xhci-Add-new-short-TX-quirk-for-Fresco-Logic-host.patch
deleted file mode 100644
index 58e0547..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0060-xhci-Add-new-short-TX-quirk-for-Fresco-Logic-host.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 24338a0903923d202e90e35100abe050436bf00a Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Tue, 8 May 2012 09:22:49 -0700
-Subject: [PATCH 060/117] xhci: Add new short TX quirk for Fresco Logic host.
-
-commit 1530bbc6272d9da1e39ef8e06190d42c13a02733 upstream.
-
-Sergio reported that when he recorded audio from a USB headset mic
-plugged into the USB 3.0 port on his ASUS N53SV-DH72, the audio sounded
-"robotic".  When plugged into the USB 2.0 port under EHCI on the same
-laptop, the audio sounded fine.  The device is:
-
-Bus 002 Device 004: ID 046d:0a0c Logitech, Inc. Clear Chat Comfort USB Headset
-
-The problem was tracked down to the Fresco Logic xHCI host controller
-not correctly reporting short transfers on isochronous IN endpoints.
-The driver would submit a 96 byte transfer, the device would only send
-88 or 90 bytes, and the xHCI host would report the transfer had a
-"successful" completion code, with an untransferred buffer length of 8
-or 6 bytes.
-
-The successful completion code and non-zero untransferred length is a
-contradiction.  The xHCI host is supposed to only mark a transfer as
-successful if all the bytes are transferred.  Otherwise, the transfer
-should be marked with a short packet completion code.  Without the EHCI
-bus trace, we wouldn't know whether the xHCI driver should trust the
-completion code or the untransferred length.  With it, we know to trust
-the untransferred length.
-
-Add a new xHCI quirk for the Fresco Logic host controller.  If a
-transfer is reported as successful, but the untransferred length is
-non-zero, print a warning.  For the Fresco Logic host, change the
-completion code to COMP_SHORT_TX and process the transfer like a short
-transfer.
-
-This should be backported to stable kernels that contain the commit
-f5182b4155b9d686c5540a6822486400e34ddd98 "xhci: Disable MSI for some
-Fresco Logic hosts."  That commit was marked for stable kernels as old
-as 2.6.36.
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Reported-by: Sergio Correia <lists at uece.net>
-Tested-by: Sergio Correia <lists at uece.net>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci-pci.c  |    1 +
- drivers/usb/host/xhci-ring.c |   20 +++++++++++++++++---
- drivers/usb/host/xhci.h      |    1 +
- 3 files changed, 19 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/host/xhci-pci.c b/drivers/usb/host/xhci-pci.c
-index 211296a..daf5754 100644
---- a/drivers/usb/host/xhci-pci.c
-+++ b/drivers/usb/host/xhci-pci.c
-@@ -72,6 +72,7 @@ static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
- 		xhci_dbg(xhci, "QUIRK: Fresco Logic revision %u "
- 				"has broken MSI implementation\n",
- 				pdev->revision);
-+		xhci->quirks |= XHCI_TRUST_TX_LENGTH;
- 	}
- 
- 	if (pdev->vendor == PCI_VENDOR_ID_NEC)
-diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
-index 2304c45..fb0981e 100644
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -1735,8 +1735,12 @@ static int process_isoc_td(struct xhci_hcd *xhci, struct xhci_td *td,
- 	/* handle completion code */
- 	switch (trb_comp_code) {
- 	case COMP_SUCCESS:
--		frame->status = 0;
--		break;
-+		if (TRB_LEN(le32_to_cpu(event->transfer_len)) == 0) {
-+			frame->status = 0;
-+			break;
-+		}
-+		if ((xhci->quirks & XHCI_TRUST_TX_LENGTH))
-+			trb_comp_code = COMP_SHORT_TX;
- 	case COMP_SHORT_TX:
- 		frame->status = td->urb->transfer_flags & URB_SHORT_NOT_OK ?
- 				-EREMOTEIO : 0;
-@@ -1833,13 +1837,16 @@ static int process_bulk_intr_td(struct xhci_hcd *xhci, struct xhci_td *td,
- 	switch (trb_comp_code) {
- 	case COMP_SUCCESS:
- 		/* Double check that the HW transferred everything. */
--		if (event_trb != td->last_trb) {
-+		if (event_trb != td->last_trb ||
-+				TRB_LEN(le32_to_cpu(event->transfer_len)) != 0) {
- 			xhci_warn(xhci, "WARN Successful completion "
- 					"on short TX\n");
- 			if (td->urb->transfer_flags & URB_SHORT_NOT_OK)
- 				*status = -EREMOTEIO;
- 			else
- 				*status = 0;
-+			if ((xhci->quirks & XHCI_TRUST_TX_LENGTH))
-+				trb_comp_code = COMP_SHORT_TX;
- 		} else {
- 			*status = 0;
- 		}
-@@ -1978,6 +1985,13 @@ static int handle_tx_event(struct xhci_hcd *xhci,
- 	 * transfer type
- 	 */
- 	case COMP_SUCCESS:
-+		if (TRB_LEN(le32_to_cpu(event->transfer_len)) == 0)
-+			break;
-+		if (xhci->quirks & XHCI_TRUST_TX_LENGTH)
-+			trb_comp_code = COMP_SHORT_TX;
-+		else
-+			xhci_warn(xhci, "WARN Successful completion on short TX: "
-+					"needs XHCI_TRUST_TX_LENGTH quirk?\n");
- 	case COMP_SHORT_TX:
- 		break;
- 	case COMP_STOP:
-diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
-index 4850c4d..363b141 100644
---- a/drivers/usb/host/xhci.h
-+++ b/drivers/usb/host/xhci.h
-@@ -1466,6 +1466,7 @@ struct xhci_hcd {
- #define XHCI_RESET_ON_RESUME	(1 << 7)
- #define	XHCI_SW_BW_CHECKING	(1 << 8)
- #define XHCI_AMD_0x96_HOST	(1 << 9)
-+#define XHCI_TRUST_TX_LENGTH	(1 << 10)
- 	unsigned int		num_active_eps;
- 	unsigned int		limit_active_eps;
- 	/* There are two roothubs to keep track of bus suspend info for */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0061-usbcore-enable-USB2-LPM-if-port-suspend-fails.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0061-usbcore-enable-USB2-LPM-if-port-suspend-fails.patch
deleted file mode 100644
index 230c80a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0061-usbcore-enable-USB2-LPM-if-port-suspend-fails.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 644753e795bddc5e687932d9e8b6795859553ac3 Mon Sep 17 00:00:00 2001
-From: Andiry Xu <andiry.xu at gmail.com>
-Date: Sat, 5 May 2012 00:50:10 +0800
-Subject: [PATCH 061/117] usbcore: enable USB2 LPM if port suspend fails
-
-commit c3e751e4f4754793bb52bd5ae30e9cc027edbb12 upstream.
-
-USB2 LPM is disabled when device begin to suspend and enabled after device
-is resumed. That's because USB spec does not define the transition from
-U1/U2 state to U3 state.
-
-If usb_port_suspend() fails, usb_port_resume() is never called, and USB2 LPM
-is disabled in this situation. Enable USB2 LPM if port suspend fails.
-
-This patch should be backported to kernels as old as 3.2, that contain
-the commit 65580b4321eb36f16ae8b5987bfa1bb948fc5112 "xHCI: set USB2
-hardware LPM".
-
-Signed-off-by: Andiry Xu <andiry.xu at gmail.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/hub.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index ab4e49f..50cf41a 100644
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -2420,6 +2420,10 @@ int usb_port_suspend(struct usb_device *udev, pm_message_t msg)
- 				NULL, 0,
- 				USB_CTRL_SET_TIMEOUT);
- 
-+		/* Try to enable USB2 hardware LPM again */
-+		if (udev->usb2_hw_lpm_capable == 1)
-+			usb_set_usb2_hardware_lpm(udev, 1);
-+
- 		/* System sleep transitions should never fail */
- 		if (!PMSG_IS_AUTO(msg))
- 			status = 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0062-perf-x86-Update-event-scheduling-constraints-for-AMD.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0062-perf-x86-Update-event-scheduling-constraints-for-AMD.patch
deleted file mode 100644
index 92793f3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0062-perf-x86-Update-event-scheduling-constraints-for-AMD.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 2ece12a2e8f1df09f28dbed203e3295d99d94c83 Mon Sep 17 00:00:00 2001
-From: Robert Richter <robert.richter at amd.com>
-Date: Fri, 18 May 2012 12:40:42 +0200
-Subject: [PATCH 062/117] perf/x86: Update event scheduling constraints for
- AMD family 15h models
-
-commit 5bcdf5e4fee3c45e1281c25e4941f2163cb28c65 upstream.
-
-This update is for newer family 15h cpu models from 0x02 to 0x1f.
-
-Signed-off-by: Robert Richter <robert.richter at amd.com>
-Acked-by: Peter Zijlstra <peterz at infradead.org>
-Cc: Stephane Eranian <eranian at google.com>
-Link: http://lkml.kernel.org/r/1337337642-1621-1-git-send-email-robert.richter@amd.com
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/cpu/perf_event_amd.c |   11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/kernel/cpu/perf_event_amd.c b/arch/x86/kernel/cpu/perf_event_amd.c
-index f64a039..3dbfb00 100644
---- a/arch/x86/kernel/cpu/perf_event_amd.c
-+++ b/arch/x86/kernel/cpu/perf_event_amd.c
-@@ -473,6 +473,7 @@ static __initconst const struct x86_pmu amd_pmu = {
-  * 0x023	DE	PERF_CTL[2:0]
-  * 0x02D	LS	PERF_CTL[3]
-  * 0x02E	LS	PERF_CTL[3,0]
-+ * 0x031	LS	PERF_CTL[2:0] (**)
-  * 0x043	CU	PERF_CTL[2:0]
-  * 0x045	CU	PERF_CTL[2:0]
-  * 0x046	CU	PERF_CTL[2:0]
-@@ -486,10 +487,12 @@ static __initconst const struct x86_pmu amd_pmu = {
-  * 0x0DD	LS	PERF_CTL[5:0]
-  * 0x0DE	LS	PERF_CTL[5:0]
-  * 0x0DF	LS	PERF_CTL[5:0]
-+ * 0x1C0	EX	PERF_CTL[5:3]
-  * 0x1D6	EX	PERF_CTL[5:0]
-  * 0x1D8	EX	PERF_CTL[5:0]
-  *
-- * (*) depending on the umask all FPU counters may be used
-+ * (*)  depending on the umask all FPU counters may be used
-+ * (**) only one unitmask enabled at a time
-  */
- 
- static struct event_constraint amd_f15_PMC0  = EVENT_CONSTRAINT(0, 0x01, 0);
-@@ -539,6 +542,12 @@ amd_get_event_constraints_f15h(struct cpu_hw_events *cpuc, struct perf_event *ev
- 			return &amd_f15_PMC3;
- 		case 0x02E:
- 			return &amd_f15_PMC30;
-+		case 0x031:
-+			if (hweight_long(hwc->config & ARCH_PERFMON_EVENTSEL_UMASK) <= 1)
-+				return &amd_f15_PMC20;
-+			return &emptyconstraint;
-+		case 0x1C0:
-+			return &amd_f15_PMC53;
- 		default:
- 			return &amd_f15_PMC50;
- 		}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0063-USB-fix-resource-leak-in-xhci-power-loss-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0063-USB-fix-resource-leak-in-xhci-power-loss-path.patch
deleted file mode 100644
index 4f897b4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0063-USB-fix-resource-leak-in-xhci-power-loss-path.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 51025bed29bdd5301f9028357e13707356ae9692 Mon Sep 17 00:00:00 2001
-From: Oliver Neukum <oneukum at suse.de>
-Date: Thu, 10 May 2012 10:19:21 +0200
-Subject: [PATCH 063/117] USB: fix resource leak in xhci power loss path
-
-commit f8a9e72d125f4e00ec529ba67b674321a1f3bf31 upstream.
-
-Some more data structures must be freed and counters
-reset if an XHCI controller has lost power. The failure
-to do so renders some chips inoperative after a certain number
-of S4 cycles.
-
-This patch should be backported to kernels as old as 3.2,
-that contain the commits c29eea621900f18287d50519f72cb9113746d75a
-"xhci: Implement HS/FS/LS bandwidth checking." and
-commit 839c817ce67178ca3c7c7ad534c571bba1e69ebe
-"xhci: Implement HS/FS/LS bandwidth checking."
-
-Signed-off-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci-mem.c |   26 ++++++++++++++++++++++++++
- 1 file changed, 26 insertions(+)
-
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index 01c3800..a7b0676 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -1699,6 +1699,14 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- {
- 	struct pci_dev	*pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
- 	struct dev_info	*dev_info, *next;
-+	struct list_head *tt_list_head;
-+	struct list_head *tt;
-+	struct list_head *endpoints;
-+	struct list_head *ep, *q;
-+	struct xhci_tt_bw_info *tt_info;
-+	struct xhci_interval_bw_table *bwt;
-+	struct xhci_virt_ep *virt_ep;
-+
- 	unsigned long	flags;
- 	int size;
- 	int i;
-@@ -1757,8 +1765,26 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- 	}
- 	spin_unlock_irqrestore(&xhci->lock, flags);
- 
-+	bwt = &xhci->rh_bw->bw_table;
-+	for (i = 0; i < XHCI_MAX_INTERVAL; i++) {
-+		endpoints = &bwt->interval_bw[i].endpoints;
-+		list_for_each_safe(ep, q, endpoints) {
-+			virt_ep = list_entry(ep, struct xhci_virt_ep, bw_endpoint_list);
-+			list_del(&virt_ep->bw_endpoint_list);
-+			kfree(virt_ep);
-+		}
-+	}
-+
-+	tt_list_head = &xhci->rh_bw->tts;
-+	list_for_each_safe(tt, q, tt_list_head) {
-+		tt_info = list_entry(tt, struct xhci_tt_bw_info, tt_list);
-+		list_del(tt);
-+		kfree(tt_info);
-+	}
-+
- 	xhci->num_usb2_ports = 0;
- 	xhci->num_usb3_ports = 0;
-+	xhci->num_active_eps = 0;
- 	kfree(xhci->usb2_ports);
- 	kfree(xhci->usb3_ports);
- 	kfree(xhci->port_array);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0064-xhci-Reset-reserved-command-ring-TRBs-on-cleanup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0064-xhci-Reset-reserved-command-ring-TRBs-on-cleanup.patch
deleted file mode 100644
index f28b167..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0064-xhci-Reset-reserved-command-ring-TRBs-on-cleanup.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 06abda2cc51b6f5ffcb67e7b7299ffd7e3af966b Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Tue, 8 May 2012 07:09:26 -0700
-Subject: [PATCH 064/117] xhci: Reset reserved command ring TRBs on cleanup.
-
-commit 33b2831ac870d50cc8e01c317b07fb1e69c13fe1 upstream.
-
-When the xHCI driver needs to clean up memory (perhaps due to a failed
-register restore on resume from S3 or resume from S4), it needs to reset
-the number of reserved TRBs on the command ring to zero.  Otherwise,
-several resume cycles (about 30) with a UAS device attached will
-continually increment the number of reserved TRBs, until all command
-submissions fail because there isn't enough room on the command ring.
-
-This patch should be backported to kernels as old as 2.6.32,
-that contain the commit 913a8a344ffcaf0b4a586d6662a2c66a7106557d
-"USB: xhci: Change how xHCI commands are handled."
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci-mem.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index a7b0676..4232e868 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -1723,6 +1723,7 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- 	xhci->event_ring = NULL;
- 	xhci_dbg(xhci, "Freed event ring\n");
- 
-+	xhci->cmd_ring_reserved_trbs = 0;
- 	if (xhci->cmd_ring)
- 		xhci_ring_free(xhci, xhci->cmd_ring);
- 	xhci->cmd_ring = NULL;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0065-USB-Remove-races-in-devio.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0065-USB-Remove-races-in-devio.c.patch
deleted file mode 100644
index 4814713..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0065-USB-Remove-races-in-devio.c.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 13538bbeb4fc2e5f45d426579967a675474e4f16 Mon Sep 17 00:00:00 2001
-From: Huajun Li <huajun.li.lee at gmail.com>
-Date: Fri, 18 May 2012 20:12:51 +0800
-Subject: [PATCH 065/117] USB: Remove races in devio.c
-
-commit 4e09dcf20f7b5358615514c2ec8584b248ab8874 upstream.
-
-There exist races in devio.c, below is one case,
-and there are similar races in destroy_async()
-and proc_unlinkurb().  Remove these races.
-
- cancel_bulk_urbs()        async_completed()
--------------------                -----------------------
- spin_unlock(&ps->lock);
-
-                           list_move_tail(&as->asynclist,
-		                    &ps->async_completed);
-
-                           wake_up(&ps->wait);
-
-                           Lead to free_async() be triggered,
-                           then urb and 'as' will be freed.
-
- usb_unlink_urb(as->urb);
- ===> refer to the freed 'as'
-
-Signed-off-by: Huajun Li <huajun.li.lee at gmail.com>
-Cc: Alan Stern <stern at rowland.harvard.edu>
-Cc: Oncaphillis <oncaphillis at snafu.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/devio.c |   33 +++++++++++++++++++++++++--------
- 1 file changed, 25 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
-index 7abf060..f6ff837 100644
---- a/drivers/usb/core/devio.c
-+++ b/drivers/usb/core/devio.c
-@@ -295,17 +295,14 @@ static struct async *async_getcompleted(struct dev_state *ps)
- static struct async *async_getpending(struct dev_state *ps,
- 					     void __user *userurb)
- {
--	unsigned long flags;
- 	struct async *as;
- 
--	spin_lock_irqsave(&ps->lock, flags);
- 	list_for_each_entry(as, &ps->async_pending, asynclist)
- 		if (as->userurb == userurb) {
- 			list_del_init(&as->asynclist);
--			spin_unlock_irqrestore(&ps->lock, flags);
- 			return as;
- 		}
--	spin_unlock_irqrestore(&ps->lock, flags);
-+
- 	return NULL;
- }
- 
-@@ -360,6 +357,7 @@ static void cancel_bulk_urbs(struct dev_state *ps, unsigned bulk_addr)
- __releases(ps->lock)
- __acquires(ps->lock)
- {
-+	struct urb *urb;
- 	struct async *as;
- 
- 	/* Mark all the pending URBs that match bulk_addr, up to but not
-@@ -382,8 +380,11 @@ __acquires(ps->lock)
- 	list_for_each_entry(as, &ps->async_pending, asynclist) {
- 		if (as->bulk_status == AS_UNLINK) {
- 			as->bulk_status = 0;		/* Only once */
-+			urb = as->urb;
-+			usb_get_urb(urb);
- 			spin_unlock(&ps->lock);		/* Allow completions */
--			usb_unlink_urb(as->urb);
-+			usb_unlink_urb(urb);
-+			usb_put_urb(urb);
- 			spin_lock(&ps->lock);
- 			goto rescan;
- 		}
-@@ -434,6 +435,7 @@ static void async_completed(struct urb *urb)
- 
- static void destroy_async(struct dev_state *ps, struct list_head *list)
- {
-+	struct urb *urb;
- 	struct async *as;
- 	unsigned long flags;
- 
-@@ -441,10 +443,13 @@ static void destroy_async(struct dev_state *ps, struct list_head *list)
- 	while (!list_empty(list)) {
- 		as = list_entry(list->next, struct async, asynclist);
- 		list_del_init(&as->asynclist);
-+		urb = as->urb;
-+		usb_get_urb(urb);
- 
- 		/* drop the spinlock so the completion handler can run */
- 		spin_unlock_irqrestore(&ps->lock, flags);
--		usb_kill_urb(as->urb);
-+		usb_kill_urb(urb);
-+		usb_put_urb(urb);
- 		spin_lock_irqsave(&ps->lock, flags);
- 	}
- 	spin_unlock_irqrestore(&ps->lock, flags);
-@@ -1350,12 +1355,24 @@ static int proc_submiturb(struct dev_state *ps, void __user *arg)
- 
- static int proc_unlinkurb(struct dev_state *ps, void __user *arg)
- {
-+	struct urb *urb;
- 	struct async *as;
-+	unsigned long flags;
- 
-+	spin_lock_irqsave(&ps->lock, flags);
- 	as = async_getpending(ps, arg);
--	if (!as)
-+	if (!as) {
-+		spin_unlock_irqrestore(&ps->lock, flags);
- 		return -EINVAL;
--	usb_kill_urb(as->urb);
-+	}
-+
-+	urb = as->urb;
-+	usb_get_urb(urb);
-+	spin_unlock_irqrestore(&ps->lock, flags);
-+
-+	usb_kill_urb(urb);
-+	usb_put_urb(urb);
-+
- 	return 0;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0066-md-using-GFP_NOIO-to-allocate-bio-for-flush-request.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0066-md-using-GFP_NOIO-to-allocate-bio-for-flush-request.patch
deleted file mode 100644
index dc48a60..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0066-md-using-GFP_NOIO-to-allocate-bio-for-flush-request.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From d4bae88d4fc370e24457c3cf69fb343316b8f759 Mon Sep 17 00:00:00 2001
-From: Shaohua Li <shli at kernel.org>
-Date: Mon, 21 May 2012 09:26:59 +1000
-Subject: [PATCH 066/117] md: using GFP_NOIO to allocate bio for flush request
-
-commit b5e1b8cee7ad58a15d2fa79bcd7946acb592602d upstream.
-
-A flush request is usually issued in transaction commit code path, so
-using GFP_KERNEL to allocate memory for flush request bio falls into
-the classic deadlock issue.
-
-This is suitable for any -stable kernel to which it applies as it
-avoids a possible deadlock.
-
-Signed-off-by: Shaohua Li <shli at fusionio.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/md.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index adcd850..700ecae 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -453,7 +453,7 @@ static void submit_flushes(struct work_struct *ws)
- 			atomic_inc(&rdev->nr_pending);
- 			atomic_inc(&rdev->nr_pending);
- 			rcu_read_unlock();
--			bi = bio_alloc_mddev(GFP_KERNEL, 0, mddev);
-+			bi = bio_alloc_mddev(GFP_NOIO, 0, mddev);
- 			bi->bi_end_io = md_end_flush;
- 			bi->bi_private = rdev;
- 			bi->bi_bdev = rdev->bdev;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0067-um-Implement-a-custom-pte_same-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0067-um-Implement-a-custom-pte_same-function.patch
deleted file mode 100644
index 346a207..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0067-um-Implement-a-custom-pte_same-function.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ed8e2c17d62006fb136c30abeb552673727c5eee Mon Sep 17 00:00:00 2001
-From: Richard Weinberger <richard at nod.at>
-Date: Sat, 14 Apr 2012 17:29:30 +0200
-Subject: [PATCH 067/117] um: Implement a custom pte_same() function
-
-commit f15b9000eb1d09bbaa4b0a6b2089d7e1f64e84b3 upstream.
-
-UML uses the _PAGE_NEWPAGE flag to mark pages which are not jet
-installed on the host side using mmap().
-pte_same() has to ignore this flag, otherwise unuse_pte_range()
-is unable to unuse the page because two identical
-page tables entries with different _PAGE_NEWPAGE flags would not
-match and swapoff() would never return.
-
-Analyzed-by: Hugh Dickins <hughd at google.com>
-Signed-off-by: Richard Weinberger <richard at nod.at>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/um/include/asm/pgtable.h |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h
-index 41474fb..0fea0ec 100644
---- a/arch/um/include/asm/pgtable.h
-+++ b/arch/um/include/asm/pgtable.h
-@@ -271,6 +271,12 @@ static inline void set_pte(pte_t *pteptr, pte_t pteval)
- }
- #define set_pte_at(mm,addr,ptep,pteval) set_pte(ptep,pteval)
- 
-+#define __HAVE_ARCH_PTE_SAME
-+static inline int pte_same(pte_t pte_a, pte_t pte_b)
-+{
-+	return !((pte_val(pte_a) ^ pte_val(pte_b)) & ~_PAGE_NEWPAGE);
-+}
-+
- /*
-  * Conversion functions: convert a page and protection to a page entry,
-  * and a page entry and page directory to the page they refer to.
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0068-um-Fix-__swp_type.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0068-um-Fix-__swp_type.patch
deleted file mode 100644
index cdb5252..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0068-um-Fix-__swp_type.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From a8f0308ef13a60d8103b7635fdbd54e10a621a0a Mon Sep 17 00:00:00 2001
-From: Richard Weinberger <richard at nod.at>
-Date: Sat, 14 Apr 2012 17:46:01 +0200
-Subject: [PATCH 068/117] um: Fix __swp_type()
-
-commit 2b76ebaa728f8a3967c52aa189261c72fe56a6f1 upstream.
-
-The current __swp_type() function uses a too small bitshift.
-Using more than one swap files causes bad pages because
-the type bits clash with other page flags.
-
-Analyzed-by: Hugh Dickins <hughd at google.com>
-Signed-off-by: Richard Weinberger <richard at nod.at>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/um/include/asm/pgtable.h |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/um/include/asm/pgtable.h b/arch/um/include/asm/pgtable.h
-index 0fea0ec..aa365c5 100644
---- a/arch/um/include/asm/pgtable.h
-+++ b/arch/um/include/asm/pgtable.h
-@@ -352,11 +352,11 @@ extern pte_t *virt_to_pte(struct mm_struct *mm, unsigned long addr);
- #define update_mmu_cache(vma,address,ptep) do ; while (0)
- 
- /* Encode and de-code a swap entry */
--#define __swp_type(x)			(((x).val >> 4) & 0x3f)
-+#define __swp_type(x)			(((x).val >> 5) & 0x1f)
- #define __swp_offset(x)			((x).val >> 11)
- 
- #define __swp_entry(type, offset) \
--	((swp_entry_t) { ((type) << 4) | ((offset) << 11) })
-+	((swp_entry_t) { ((type) << 5) | ((offset) << 11) })
- #define __pte_to_swp_entry(pte) \
- 	((swp_entry_t) { pte_val(pte_mkuptodate(pte)) })
- #define __swp_entry_to_pte(x)		((pte_t) { (x).val })
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0069-swap-don-t-do-discard-if-no-discard-option-added.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0069-swap-don-t-do-discard-if-no-discard-option-added.patch
deleted file mode 100644
index b4f1a5f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0069-swap-don-t-do-discard-if-no-discard-option-added.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From c3ad2b1e42ce62ce0b8aa5283e5f1eee851dd3fb Mon Sep 17 00:00:00 2001
-From: Shaohua Li <shli at kernel.org>
-Date: Wed, 21 Mar 2012 16:34:17 -0700
-Subject: [PATCH 069/117] swap: don't do discard if no discard option added
-
-commit 052b1987faca3606109d88d96bce124851f7c4c2 upstream.
-
-When swapon() was not passed the SWAP_FLAG_DISCARD option, sys_swapon()
-will still perform a discard operation.  This can cause problems if
-discard is slow or buggy.
-
-Reverse the order of the check so that a discard operation is performed
-only if the sys_swapon() caller is attempting to enable discard.
-
-Signed-off-by: Shaohua Li <shli at fusionio.com>
-Reported-by: Holger Kiehl <Holger.Kiehl at dwd.de>
-Tested-by: Holger Kiehl <Holger.Kiehl at dwd.de>
-Cc: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/swapfile.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mm/swapfile.c b/mm/swapfile.c
-index 2015a1e..d3955f2 100644
---- a/mm/swapfile.c
-+++ b/mm/swapfile.c
-@@ -2102,7 +2102,7 @@ SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
- 			p->flags |= SWP_SOLIDSTATE;
- 			p->cluster_next = 1 + (random32() % p->highest_bit);
- 		}
--		if (discard_swap(p) == 0 && (swap_flags & SWAP_FLAG_DISCARD))
-+		if ((swap_flags & SWAP_FLAG_DISCARD) && discard_swap(p) == 0)
- 			p->flags |= SWP_DISCARDABLE;
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0070-Input-wacom-relax-Bamboo-stylus-ID-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0070-Input-wacom-relax-Bamboo-stylus-ID-check.patch
deleted file mode 100644
index cf106b4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0070-Input-wacom-relax-Bamboo-stylus-ID-check.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From ae03191fbcee985e26e744fc2e3b928077e647a1 Mon Sep 17 00:00:00 2001
-From: Chris Bagwell <chris at cnpbagwell.com>
-Date: Wed, 26 Oct 2011 22:28:34 -0700
-Subject: [PATCH 070/117] Input: wacom - relax Bamboo stylus ID check
-
-commit c5981411f60c31f0dff6f0f98d2d3711384badaf upstream.
-
-Bit 0x02 always means tip versus eraser. Bit 0x01 is something related
-to version of stylus and different values are starting to be used.
-
-Relaxing proximity check is required to be used with 3rd generation
-Bamboo Pen and Touch tablets.
-
-Signed-off-by: Chris Bagwell <chris at cnpbagwell.com>
-Acked-by: Ping Cheng <pingc at wacom.com>
-Signed-off-by: Dmitry Torokhov <dtor at mail.ru>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/input/tablet/wacom_wac.c |    7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/drivers/input/tablet/wacom_wac.c b/drivers/input/tablet/wacom_wac.c
-index 2ee47d0..f00c70e 100644
---- a/drivers/input/tablet/wacom_wac.c
-+++ b/drivers/input/tablet/wacom_wac.c
-@@ -843,12 +843,7 @@ static int wacom_bpt_pen(struct wacom_wac *wacom)
- 	unsigned char *data = wacom->data;
- 	int prox = 0, x = 0, y = 0, p = 0, d = 0, pen = 0, btn1 = 0, btn2 = 0;
- 
--	/*
--	 * Similar to Graphire protocol, data[1] & 0x20 is proximity and
--	 * data[1] & 0x18 is tool ID.  0x30 is safety check to ignore
--	 * 2 unused tool ID's.
--	 */
--	prox = (data[1] & 0x30) == 0x30;
-+	prox = (data[1] & 0x20) == 0x20;
- 
- 	/*
- 	 * All reports shared between PEN and RUBBER tool must be
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0071-ahci-Detect-Marvell-88SE9172-SATA-controller.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0071-ahci-Detect-Marvell-88SE9172-SATA-controller.patch
deleted file mode 100644
index b1855cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0071-ahci-Detect-Marvell-88SE9172-SATA-controller.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3e4b4afbb70e3054734cacd6aacf50024f27c3dd Mon Sep 17 00:00:00 2001
-From: Matt Johnson <johnso87 at illinois.edu>
-Date: Fri, 27 Apr 2012 01:42:30 -0500
-Subject: [PATCH 071/117] ahci: Detect Marvell 88SE9172 SATA controller
-
-commit 642d89252201c4155fc3946bf9cdea409e5d263e upstream.
-
-The Marvell 88SE9172 SATA controller (PCI ID 1b4b 917a) already worked
-once it was detected, but was missing an ahci_pci_tbl entry.
-
-Boot tested on a Gigabyte Z68X-UD3H-B3 motherboard.
-
-Signed-off-by: Matt Johnson <johnso87 at illinois.edu>
-Signed-off-by: Jeff Garzik <jgarzik at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/ata/ahci.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/ata/ahci.c b/drivers/ata/ahci.c
-index cf26222..fb65915 100644
---- a/drivers/ata/ahci.c
-+++ b/drivers/ata/ahci.c
-@@ -384,6 +384,8 @@ static const struct pci_device_id ahci_pci_tbl[] = {
- 	  .driver_data = board_ahci_yes_fbs },			/* 88se9128 */
- 	{ PCI_DEVICE(0x1b4b, 0x9125),
- 	  .driver_data = board_ahci_yes_fbs },			/* 88se9125 */
-+	{ PCI_DEVICE(0x1b4b, 0x917a),
-+	  .driver_data = board_ahci_yes_fbs },			/* 88se9172 */
- 	{ PCI_DEVICE(0x1b4b, 0x91a3),
- 	  .driver_data = board_ahci_yes_fbs },
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0072-ARM-7365-1-drop-unused-parameter-from-flush_cache_us.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0072-ARM-7365-1-drop-unused-parameter-from-flush_cache_us.patch
deleted file mode 100644
index 9af45a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0072-ARM-7365-1-drop-unused-parameter-from-flush_cache_us.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 06d6cd667991ac824b4e32c07ad4c382e202b920 Mon Sep 17 00:00:00 2001
-From: Dima Zavin <dima at android.com>
-Date: Thu, 29 Mar 2012 20:44:06 +0100
-Subject: [PATCH 072/117] ARM: 7365/1: drop unused parameter from
- flush_cache_user_range
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 4542b6a0fa6b48d9ae6b41c1efeb618b7a221b2a upstream.
-
-vma isn't used and flush_cache_user_range isn't a standard macro that
-is used on several archs with the same prototype. In fact only unicore32
-has a macro with the same name (with an identical implementation and no
-in-tree users).
-
-This is a part of a patch proposed by Dima Zavin (with Message-id:
-1272439931-12795-1-git-send-email-dima at android.com) that didn't get
-accepted.
-
-Cc: Dima Zavin <dima at android.com>
-Acked-by: Catalin Marinas <catalin.marinas at arm.com>
-Signed-off-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/include/asm/cacheflush.h |    2 +-
- arch/arm/kernel/traps.c           |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/include/asm/cacheflush.h b/arch/arm/include/asm/cacheflush.h
-index d5d8d5c..1252a26 100644
---- a/arch/arm/include/asm/cacheflush.h
-+++ b/arch/arm/include/asm/cacheflush.h
-@@ -249,7 +249,7 @@ extern void flush_cache_page(struct vm_area_struct *vma, unsigned long user_addr
-  * Harvard caches are synchronised for the user space address range.
-  * This is used for the ARM private sys_cacheflush system call.
-  */
--#define flush_cache_user_range(vma,start,end) \
-+#define flush_cache_user_range(start,end) \
- 	__cpuc_coherent_user_range((start) & PAGE_MASK, PAGE_ALIGN(end))
- 
- /*
-diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index 99a5727..f363ad9 100644
---- a/arch/arm/kernel/traps.c
-+++ b/arch/arm/kernel/traps.c
-@@ -488,7 +488,7 @@ do_cache_op(unsigned long start, unsigned long end, int flags)
- 		if (end > vma->vm_end)
- 			end = vma->vm_end;
- 
--		flush_cache_user_range(vma, start, end);
-+		flush_cache_user_range(start, end);
- 	}
- 	up_read(&mm->mmap_sem);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0073-ARM-7409-1-Do-not-call-flush_cache_user_range-with-m.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0073-ARM-7409-1-Do-not-call-flush_cache_user_range-with-m.patch
deleted file mode 100644
index bb8d026..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0073-ARM-7409-1-Do-not-call-flush_cache_user_range-with-m.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From bf1dbf3f545a79e9ac5ff460053283f2760f095b Mon Sep 17 00:00:00 2001
-From: Dima Zavin <dima at android.com>
-Date: Mon, 30 Apr 2012 10:26:14 +0100
-Subject: [PATCH 073/117] ARM: 7409/1: Do not call flush_cache_user_range with
- mmap_sem held
-
-commit 435a7ef52db7d86e67a009b36cac1457f8972391 upstream.
-
-We can't be holding the mmap_sem while calling flush_cache_user_range
-because the flush can fault. If we fault on a user address, the
-page fault handler will try to take mmap_sem again. Since both places
-acquire the read lock, most of the time it succeeds. However, if another
-thread tries to acquire the write lock on the mmap_sem (e.g. mmap) in
-between the call to flush_cache_user_range and the fault, the down_read
-in do_page_fault will deadlock.
-
-[will: removed drop of vma parameter as already queued by rmk (7365/1)]
-
-Acked-by: Catalin Marinas <catalin.marinas at arm.com>
-Signed-off-by: Dima Zavin <dima at android.com>
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/kernel/traps.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index f363ad9..160cb16 100644
---- a/arch/arm/kernel/traps.c
-+++ b/arch/arm/kernel/traps.c
-@@ -488,7 +488,9 @@ do_cache_op(unsigned long start, unsigned long end, int flags)
- 		if (end > vma->vm_end)
- 			end = vma->vm_end;
- 
-+		up_read(&mm->mmap_sem);
- 		flush_cache_user_range(start, end);
-+		return;
- 	}
- 	up_read(&mm->mmap_sem);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0074-sony-laptop-Enable-keyboard-backlight-by-default.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0074-sony-laptop-Enable-keyboard-backlight-by-default.patch
deleted file mode 100644
index 615aa31..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0074-sony-laptop-Enable-keyboard-backlight-by-default.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 444d2b8e5c56b431d2aa79db0c1742c6159b661a Mon Sep 17 00:00:00 2001
-From: Josh Boyer <jwboyer at redhat.com>
-Date: Wed, 2 Nov 2011 14:32:00 -0400
-Subject: [PATCH 074/117] sony-laptop: Enable keyboard backlight by default
-
-commit 6fe6ae56a7cebaebc2e6daa11c423e4692f9b592 upstream.
-
-When the keyboard backlight support was originally added, the commit said
-to default it to on with a 10 second timeout.  That actually wasn't the
-case, as the default value is commented out for the kbd_backlight parameter.
-Because it is a static variable, it gets set to 0 by default without some
-other form of initialization.
-
-However, it seems the function to set the value wasn't actually called
-immediately, so whatever state the keyboard was in initially would remain.
-Then commit df410d522410e67660 was introduced during the 2.6.39 timeframe to
-immediately set whatever value was present (as well as attempt to
-restore/reset the state on module removal or resume).  That seems to have
-now forced the light off immediately when the module is loaded unless
-the option kbd_backlight=1 is specified.
-
-Let's enable it by default again (for the first time).  This should solve
-https://bugzilla.redhat.com/show_bug.cgi?id=728478
-
-Signed-off-by: Josh Boyer <jwboyer at redhat.com>
-Acked-by: Mattia Dongili <malattia at linux.it>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/sony-laptop.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/platform/x86/sony-laptop.c b/drivers/platform/x86/sony-laptop.c
-index c006dee..40c4705 100644
---- a/drivers/platform/x86/sony-laptop.c
-+++ b/drivers/platform/x86/sony-laptop.c
-@@ -127,7 +127,7 @@ MODULE_PARM_DESC(minor,
- 		 "default is -1 (automatic)");
- #endif
- 
--static int kbd_backlight;	/* = 1 */
-+static int kbd_backlight = 1;
- module_param(kbd_backlight, int, 0444);
- MODULE_PARM_DESC(kbd_backlight,
- 		 "set this to 0 to disable keyboard backlight, "
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0075-init-don-t-try-mounting-device-as-nfs-root-unless-ty.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0075-init-don-t-try-mounting-device-as-nfs-root-unless-ty.patch
deleted file mode 100644
index e86f89a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0075-init-don-t-try-mounting-device-as-nfs-root-unless-ty.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From b277e4c19f3668e1a58e03d8933a3c6cd612c5e2 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Sat, 5 May 2012 17:06:35 +0200
-Subject: [PATCH 075/117] init: don't try mounting device as nfs root unless
- type fully matches
-
-commit 377485f6244af255b04d662cf19cddbbc4ae4310 upstream.
-
-Currently, we'll try mounting any device who's major device number is
-UNNAMED_MAJOR as NFS root.  This would happen for non-NFS devices as
-well (such as 9p devices) but it wouldn't cause any issues since
-mounting the device as NFS would fail quickly and the code proceeded to
-doing the proper mount:
-
-       [  101.522716] VFS: Unable to mount root fs via NFS, trying floppy.
-       [  101.534499] VFS: Mounted root (9p filesystem) on device 0:18.
-
-Commit 6829a048102a ("NFS: Retry mounting NFSROOT") introduced retries
-when mounting NFS root, which means that now we don't immediately fail
-and instead it takes an additional 90+ seconds until we stop retrying,
-which has revealed the issue this patch fixes.
-
-This meant that it would take an additional 90 seconds to boot when
-we're not using a device type which gets detected in order before NFS.
-
-This patch modifies the NFS type check to require device type to be
-'Root_NFS' instead of requiring the device to have an UNNAMED_MAJOR
-major.  This makes boot process cleaner since we now won't go through
-the NFS mounting code at all when the device isn't an NFS root
-("/dev/nfs").
-
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- init/do_mounts.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/init/do_mounts.c b/init/do_mounts.c
-index db6e5ee..d6c229f 100644
---- a/init/do_mounts.c
-+++ b/init/do_mounts.c
-@@ -470,7 +470,7 @@ void __init change_floppy(char *fmt, ...)
- void __init mount_root(void)
- {
- #ifdef CONFIG_ROOT_NFS
--	if (MAJOR(ROOT_DEV) == UNNAMED_MAJOR) {
-+	if (ROOT_DEV == Root_NFS) {
- 		if (mount_nfs_root())
- 			return;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0076-memcg-free-spare-array-to-avoid-memory-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0076-memcg-free-spare-array-to-avoid-memory-leak.patch
deleted file mode 100644
index 0d731c2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0076-memcg-free-spare-array-to-avoid-memory-leak.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 0b0f028ae418e6b772241ed68bee5f2d0c6bcb3a Mon Sep 17 00:00:00 2001
-From: Sha Zhengju <handai.szj at taobao.com>
-Date: Thu, 10 May 2012 13:01:45 -0700
-Subject: [PATCH 076/117] memcg: free spare array to avoid memory leak
-
-commit 8c7577637ca31385e92769a77e2ab5b428e8b99c upstream.
-
-When the last event is unregistered, there is no need to keep the spare
-array anymore.  So free it to avoid memory leak.
-
-Signed-off-by: Sha Zhengju <handai.szj at taobao.com>
-Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Reviewed-by: Kirill A. Shutemov <kirill at shutemov.name>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/memcontrol.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index 778554f..c8425b1 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -4549,6 +4549,12 @@ static void mem_cgroup_usage_unregister_event(struct cgroup *cgrp,
- swap_buffers:
- 	/* Swap primary and spare array */
- 	thresholds->spare = thresholds->primary;
-+	/* If all events are unregistered, free the spare array */
-+	if (!new) {
-+		kfree(thresholds->spare);
-+		thresholds->spare = NULL;
-+	}
-+
- 	rcu_assign_pointer(thresholds->primary, new);
- 
- 	/* To be sure that nobody uses thresholds */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0077-compat-Fix-RT-signal-mask-corruption-via-sigprocmask.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0077-compat-Fix-RT-signal-mask-corruption-via-sigprocmask.patch
deleted file mode 100644
index de65263..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0077-compat-Fix-RT-signal-mask-corruption-via-sigprocmask.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 2ed9e3e61cd65b3a43998d48846744be1b263394 Mon Sep 17 00:00:00 2001
-From: Jan Kiszka <jan.kiszka at siemens.com>
-Date: Thu, 10 May 2012 10:04:36 -0300
-Subject: [PATCH 077/117] compat: Fix RT signal mask corruption via
- sigprocmask
-
-commit b7dafa0ef3145c31d7753be0a08b3cbda51f0209 upstream.
-
-compat_sys_sigprocmask reads a smaller signal mask from userspace than
-sigprogmask accepts for setting.  So the high word of blocked.sig[0]
-will be cleared, releasing any potentially blocked RT signal.
-
-This was discovered via userspace code that relies on get/setcontext.
-glibc's i386 versions of those functions use sigprogmask instead of
-rt_sigprogmask to save/restore signal mask and caused RT signal
-unblocking this way.
-
-As suggested by Linus, this replaces the sys_sigprocmask based compat
-version with one that open-codes the required logic, including the merge
-of the existing blocked set with the new one provided on SIG_SETMASK.
-
-Signed-off-by: Jan Kiszka <jan.kiszka at siemens.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/compat.c |   63 ++++++++++++++++++++++++++++++++++++++++---------------
- 1 file changed, 46 insertions(+), 17 deletions(-)
-
-diff --git a/kernel/compat.c b/kernel/compat.c
-index f346ced..a6d0649 100644
---- a/kernel/compat.c
-+++ b/kernel/compat.c
-@@ -320,25 +320,54 @@ asmlinkage long compat_sys_sigpending(compat_old_sigset_t __user *set)
- 
- #ifdef __ARCH_WANT_SYS_SIGPROCMASK
- 
--asmlinkage long compat_sys_sigprocmask(int how, compat_old_sigset_t __user *set,
--		compat_old_sigset_t __user *oset)
-+/*
-+ * sys_sigprocmask SIG_SETMASK sets the first (compat) word of the
-+ * blocked set of signals to the supplied signal set
-+ */
-+static inline void compat_sig_setmask(sigset_t *blocked, compat_sigset_word set)
- {
--	old_sigset_t s;
--	long ret;
--	mm_segment_t old_fs;
-+	memcpy(blocked->sig, &set, sizeof(set));
-+}
- 
--	if (set && get_user(s, set))
--		return -EFAULT;
--	old_fs = get_fs();
--	set_fs(KERNEL_DS);
--	ret = sys_sigprocmask(how,
--			      set ? (old_sigset_t __user *) &s : NULL,
--			      oset ? (old_sigset_t __user *) &s : NULL);
--	set_fs(old_fs);
--	if (ret == 0)
--		if (oset)
--			ret = put_user(s, oset);
--	return ret;
-+asmlinkage long compat_sys_sigprocmask(int how,
-+				       compat_old_sigset_t __user *nset,
-+				       compat_old_sigset_t __user *oset)
-+{
-+	old_sigset_t old_set, new_set;
-+	sigset_t new_blocked;
-+
-+	old_set = current->blocked.sig[0];
-+
-+	if (nset) {
-+		if (get_user(new_set, nset))
-+			return -EFAULT;
-+		new_set &= ~(sigmask(SIGKILL) | sigmask(SIGSTOP));
-+
-+		new_blocked = current->blocked;
-+
-+		switch (how) {
-+		case SIG_BLOCK:
-+			sigaddsetmask(&new_blocked, new_set);
-+			break;
-+		case SIG_UNBLOCK:
-+			sigdelsetmask(&new_blocked, new_set);
-+			break;
-+		case SIG_SETMASK:
-+			compat_sig_setmask(&new_blocked, new_set);
-+			break;
-+		default:
-+			return -EINVAL;
-+		}
-+
-+		set_current_blocked(&new_blocked);
-+	}
-+
-+	if (oset) {
-+		if (put_user(old_set, oset))
-+			return -EFAULT;
-+	}
-+
-+	return 0;
- }
- 
- #endif
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0078-ext3-Fix-error-handling-on-inode-bitmap-corruption.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0078-ext3-Fix-error-handling-on-inode-bitmap-corruption.patch
deleted file mode 100644
index d7a8016..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0078-ext3-Fix-error-handling-on-inode-bitmap-corruption.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c95c67d82938539844654f8d12a831e06ddae45a Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Thu, 8 Dec 2011 21:13:46 +0100
-Subject: [PATCH 078/117] ext3: Fix error handling on inode bitmap corruption
-
-commit 1415dd8705394399d59a3df1ab48d149e1e41e77 upstream.
-
-When insert_inode_locked() fails in ext3_new_inode() it most likely
-means inode bitmap got corrupted and we allocated again inode which
-is already in use. Also doing unlock_new_inode() during error recovery
-is wrong since inode does not have I_NEW set. Fix the problem by jumping
-to fail: (instead of fail_drop:) which declares filesystem error and
-does not call unlock_new_inode().
-
-Reviewed-by: Eric Sandeen <sandeen at redhat.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext3/ialloc.c |    8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ext3/ialloc.c b/fs/ext3/ialloc.c
-index 5c866e0..adae962 100644
---- a/fs/ext3/ialloc.c
-+++ b/fs/ext3/ialloc.c
-@@ -525,8 +525,12 @@ got:
- 	if (IS_DIRSYNC(inode))
- 		handle->h_sync = 1;
- 	if (insert_inode_locked(inode) < 0) {
--		err = -EINVAL;
--		goto fail_drop;
-+		/*
-+		 * Likely a bitmap corruption causing inode to be allocated
-+		 * twice.
-+		 */
-+		err = -EIO;
-+		goto fail;
- 	}
- 	spin_lock(&sbi->s_next_gen_lock);
- 	inode->i_generation = sbi->s_next_generation++;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0079-ext4-fix-error-handling-on-inode-bitmap-corruption.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0079-ext4-fix-error-handling-on-inode-bitmap-corruption.patch
deleted file mode 100644
index 4d6aacf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0079-ext4-fix-error-handling-on-inode-bitmap-corruption.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 92d372ef4ce9cea8d08163f727e4eeac7e9a2472 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Sun, 18 Dec 2011 17:37:02 -0500
-Subject: [PATCH 079/117] ext4: fix error handling on inode bitmap corruption
-
-commit acd6ad83517639e8f09a8c5525b1dccd81cd2a10 upstream.
-
-When insert_inode_locked() fails in ext4_new_inode() it most likely means inode
-bitmap got corrupted and we allocated again inode which is already in use. Also
-doing unlock_new_inode() during error recovery is wrong since the inode does
-not have I_NEW set. Fix the problem by jumping to fail: (instead of fail_drop:)
-which declares filesystem error and does not call unlock_new_inode().
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/ialloc.c |    8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
-index 00beb4f..8fb6844 100644
---- a/fs/ext4/ialloc.c
-+++ b/fs/ext4/ialloc.c
-@@ -885,8 +885,12 @@ got:
- 	if (IS_DIRSYNC(inode))
- 		ext4_handle_sync(handle);
- 	if (insert_inode_locked(inode) < 0) {
--		err = -EINVAL;
--		goto fail_drop;
-+		/*
-+		 * Likely a bitmap corruption causing inode to be allocated
-+		 * twice.
-+		 */
-+		err = -EIO;
-+		goto fail;
- 	}
- 	spin_lock(&sbi->s_next_gen_lock);
- 	inode->i_generation = sbi->s_next_generation++;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0080-ACPI-PM-Add-Sony-Vaio-VPCCW29FX-to-nonvs-blacklist.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0080-ACPI-PM-Add-Sony-Vaio-VPCCW29FX-to-nonvs-blacklist.patch
deleted file mode 100644
index 1460ce3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0080-ACPI-PM-Add-Sony-Vaio-VPCCW29FX-to-nonvs-blacklist.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 1155d70b0cfab4cef0edb62753bc9b5053d6fa8e Mon Sep 17 00:00:00 2001
-From: Lan Tianyu <tianyu.lan at intel.com>
-Date: Sat, 21 Jan 2012 09:23:56 +0800
-Subject: [PATCH 080/117] ACPI / PM: Add Sony Vaio VPCCW29FX to nonvs
- blacklist.
-
-commit 93f770846e8dedc5d9117bd4ad9d7efd18420627 upstream.
-
-Sony Vaio VPCCW29FX does not resume correctly without
-acpi_sleep=nonvs, so add it to the ACPI sleep blacklist.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=34722
-
-Signed-off-by: Lan Tianyu <tianyu.lan at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/sleep.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
-index 0a7ed69..ca191ff 100644
---- a/drivers/acpi/sleep.c
-+++ b/drivers/acpi/sleep.c
-@@ -438,6 +438,14 @@ static struct dmi_system_id __initdata acpisleep_dmi_table[] = {
- 	},
- 	{
- 	.callback = init_nvs_nosave,
-+	.ident = "Sony Vaio VPCCW29FX",
-+	.matches = {
-+		DMI_MATCH(DMI_SYS_VENDOR, "Sony Corporation"),
-+		DMI_MATCH(DMI_PRODUCT_NAME, "VPCCW29FX"),
-+		},
-+	},
-+	{
-+	.callback = init_nvs_nosave,
- 	.ident = "Averatec AV1020-ED2",
- 	.matches = {
- 		DMI_MATCH(DMI_SYS_VENDOR, "AVERATEC"),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0081-hpsa-Add-IRQF_SHARED-back-in-for-the-non-MSI-X-inter.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0081-hpsa-Add-IRQF_SHARED-back-in-for-the-non-MSI-X-inter.patch
deleted file mode 100644
index f16c608..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0081-hpsa-Add-IRQF_SHARED-back-in-for-the-non-MSI-X-inter.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a9b96c2354127a1d9d0401564b6359403aecdb66 Mon Sep 17 00:00:00 2001
-From: "Stephen M. Cameron" <scameron at beardog.cce.hp.com>
-Date: Mon, 28 Nov 2011 10:15:20 -0600
-Subject: [PATCH 081/117] hpsa: Add IRQF_SHARED back in for the non-MSI(X)
- interrupt handler
-
-commit 45bcf018d1a4779d592764ef57517c92589d55d7 upstream.
-
-IRQF_SHARED is required for older controllers that don't support MSI(X)
-and which may end up sharing an interrupt.  All the controllers hpsa
-normally supports have MSI(X) capability, but older controllers may be
-encountered via the hpsa_allow_any=1 module parameter.
-
-Also remove deprecated IRQF_DISABLED.
-
-Signed-off-by: Stephen M. Cameron <scameron at beardog.cce.hp.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/hpsa.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/hpsa.c b/drivers/scsi/hpsa.c
-index dc9dea3..b4d2c86 100644
---- a/drivers/scsi/hpsa.c
-+++ b/drivers/scsi/hpsa.c
-@@ -4068,10 +4068,10 @@ static int hpsa_request_irq(struct ctlr_info *h,
- 
- 	if (h->msix_vector || h->msi_vector)
- 		rc = request_irq(h->intr[h->intr_mode], msixhandler,
--				IRQF_DISABLED, h->devname, h);
-+				0, h->devname, h);
- 	else
- 		rc = request_irq(h->intr[h->intr_mode], intxhandler,
--				IRQF_DISABLED, h->devname, h);
-+				IRQF_SHARED, h->devname, h);
- 	if (rc) {
- 		dev_err(&h->pdev->dev, "unable to get irq %d for %s\n",
- 		       h->intr[h->intr_mode], h->devname);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0082-wake-up-s_wait_unfrozen-when-freeze_fs-fails.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0082-wake-up-s_wait_unfrozen-when-freeze_fs-fails.patch
deleted file mode 100644
index b25a680..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0082-wake-up-s_wait_unfrozen-when-freeze_fs-fails.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From ab66f47089f09bceebe3bee38d5e76e08ec748d0 Mon Sep 17 00:00:00 2001
-From: Kazuya Mio <k-mio at sx.jp.nec.com>
-Date: Thu, 1 Dec 2011 16:51:07 +0900
-Subject: [PATCH 082/117] wake up s_wait_unfrozen when ->freeze_fs fails
-
-commit e1616300a20c80396109c1cf013ba9a36055a3da upstream.
-
-dd slept infinitely when fsfeeze failed because of EIO.
-To fix this problem, if ->freeze_fs fails, freeze_super() wakes up
-the tasks waiting for the filesystem to become unfrozen.
-
-When s_frozen isn't SB_UNFROZEN in __generic_file_aio_write(),
-the function sleeps until FITHAW ioctl wakes up s_wait_unfrozen.
-
-However, if ->freeze_fs fails, s_frozen is set to SB_UNFROZEN and then
-freeze_super() returns an error number. In this case, FITHAW ioctl returns
-EINVAL because s_frozen is already SB_UNFROZEN. There is no way to wake up
-s_wait_unfrozen, so __generic_file_aio_write() sleeps infinitely.
-
-Signed-off-by: Kazuya Mio <k-mio at sx.jp.nec.com>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/super.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/super.c b/fs/super.c
-index afd0f1a..2a698f6 100644
---- a/fs/super.c
-+++ b/fs/super.c
-@@ -1166,6 +1166,8 @@ int freeze_super(struct super_block *sb)
- 			printk(KERN_ERR
- 				"VFS:Filesystem freeze failed\n");
- 			sb->s_frozen = SB_UNFROZEN;
-+			smp_wmb();
-+			wake_up(&sb->s_wait_unfrozen);
- 			deactivate_locked_super(sb);
- 			return ret;
- 		}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0083-cifs-fix-revalidation-test-in-cifs_llseek.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0083-cifs-fix-revalidation-test-in-cifs_llseek.patch
deleted file mode 100644
index 0d16878..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0083-cifs-fix-revalidation-test-in-cifs_llseek.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 3f974a0efbf9480d3a540a029f5a98da92ce772e Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Mon, 30 Apr 2012 17:36:21 +0300
-Subject: [PATCH 083/117] cifs: fix revalidation test in cifs_llseek()
-
-commit 48a5730e5b71201e226ff06e245bf308feba5f10 upstream.
-
-This test is always true so it means we revalidate the length every
-time, which generates more network traffic.  When it is SEEK_SET or
-SEEK_CUR, then we don't need to revalidate.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/cifsfs.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
-index b4c2c99..b1451af 100644
---- a/fs/cifs/cifsfs.c
-+++ b/fs/cifs/cifsfs.c
-@@ -703,7 +703,7 @@ static loff_t cifs_llseek(struct file *file, loff_t offset, int origin)
- 	 * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
- 	 * the cached file length
- 	 */
--	if (origin != SEEK_SET || origin != SEEK_CUR) {
-+	if (origin != SEEK_SET && origin != SEEK_CUR) {
- 		int rc;
- 		struct inode *inode = file->f_path.dentry->d_inode;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0084-dl2k-Clean-up-rio_ioctl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0084-dl2k-Clean-up-rio_ioctl.patch
deleted file mode 100644
index d3a6229..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0084-dl2k-Clean-up-rio_ioctl.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 69fa22d4b635612c73cb0427447c5916e18a217e Mon Sep 17 00:00:00 2001
-From: Jeff Mahoney <jeffm at suse.com>
-Date: Wed, 25 Apr 2012 14:32:09 +0000
-Subject: [PATCH 084/117] dl2k: Clean up rio_ioctl
-
-commit 1bb57e940e1958e40d51f2078f50c3a96a9b2d75 upstream.
-
-The dl2k driver's rio_ioctl call has a few issues:
-- No permissions checking
-- Implements SIOCGMIIREG and SIOCGMIIREG using the SIOCDEVPRIVATE numbers
-- Has a few ioctls that may have been used for debugging at one point
-  but have no place in the kernel proper.
-
-This patch removes all but the MII ioctls, renumbers them to use the
-standard ones, and adds the proper permission check for SIOCSMIIREG.
-
-We can also get rid of the dl2k-specific struct mii_data in favor of
-the generic struct mii_ioctl_data.
-
-Since we have the phyid on hand, we can add the SIOCGMIIPHY ioctl too.
-
-Most of the MII code for the driver could probably be converted to use
-the generic MII library but I don't have a device to test the results.
-
-Reported-by: Stephan Mueller <stephan.mueller at atsec.com>
-Signed-off-by: Jeff Mahoney <jeffm at suse.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/dlink/dl2k.c |   52 +++++++------------------------------
- drivers/net/ethernet/dlink/dl2k.h |    7 -----
- 2 files changed, 9 insertions(+), 50 deletions(-)
-
-diff --git a/drivers/net/ethernet/dlink/dl2k.c b/drivers/net/ethernet/dlink/dl2k.c
-index b2dc2c8..2e09edb 100644
---- a/drivers/net/ethernet/dlink/dl2k.c
-+++ b/drivers/net/ethernet/dlink/dl2k.c
-@@ -1259,55 +1259,21 @@ rio_ioctl (struct net_device *dev, struct ifreq *rq, int cmd)
- {
- 	int phy_addr;
- 	struct netdev_private *np = netdev_priv(dev);
--	struct mii_data *miidata = (struct mii_data *) &rq->ifr_ifru;
--
--	struct netdev_desc *desc;
--	int i;
-+	struct mii_ioctl_data *miidata = if_mii(rq);
- 
- 	phy_addr = np->phy_addr;
- 	switch (cmd) {
--	case SIOCDEVPRIVATE:
--		break;
--
--	case SIOCDEVPRIVATE + 1:
--		miidata->out_value = mii_read (dev, phy_addr, miidata->reg_num);
-+	case SIOCGMIIPHY:
-+		miidata->phy_id = phy_addr;
- 		break;
--	case SIOCDEVPRIVATE + 2:
--		mii_write (dev, phy_addr, miidata->reg_num, miidata->in_value);
-+	case SIOCGMIIREG:
-+		miidata->val_out = mii_read (dev, phy_addr, miidata->reg_num);
- 		break;
--	case SIOCDEVPRIVATE + 3:
--		break;
--	case SIOCDEVPRIVATE + 4:
--		break;
--	case SIOCDEVPRIVATE + 5:
--		netif_stop_queue (dev);
-+	case SIOCSMIIREG:
-+		if (!capable(CAP_NET_ADMIN))
-+			return -EPERM;
-+		mii_write (dev, phy_addr, miidata->reg_num, miidata->val_in);
- 		break;
--	case SIOCDEVPRIVATE + 6:
--		netif_wake_queue (dev);
--		break;
--	case SIOCDEVPRIVATE + 7:
--		printk
--		    ("tx_full=%x cur_tx=%lx old_tx=%lx cur_rx=%lx old_rx=%lx\n",
--		     netif_queue_stopped(dev), np->cur_tx, np->old_tx, np->cur_rx,
--		     np->old_rx);
--		break;
--	case SIOCDEVPRIVATE + 8:
--		printk("TX ring:\n");
--		for (i = 0; i < TX_RING_SIZE; i++) {
--			desc = &np->tx_ring[i];
--			printk
--			    ("%02x:cur:%08x next:%08x status:%08x frag1:%08x frag0:%08x",
--			     i,
--			     (u32) (np->tx_ring_dma + i * sizeof (*desc)),
--			     (u32)le64_to_cpu(desc->next_desc),
--			     (u32)le64_to_cpu(desc->status),
--			     (u32)(le64_to_cpu(desc->fraginfo) >> 32),
--			     (u32)le64_to_cpu(desc->fraginfo));
--			printk ("\n");
--		}
--		printk ("\n");
--		break;
--
- 	default:
- 		return -EOPNOTSUPP;
- 	}
-diff --git a/drivers/net/ethernet/dlink/dl2k.h b/drivers/net/ethernet/dlink/dl2k.h
-index ba0adca..30c2da3 100644
---- a/drivers/net/ethernet/dlink/dl2k.h
-+++ b/drivers/net/ethernet/dlink/dl2k.h
-@@ -365,13 +365,6 @@ struct ioctl_data {
- 	char *data;
- };
- 
--struct mii_data {
--	__u16 reserved;
--	__u16 reg_num;
--	__u16 in_value;
--	__u16 out_value;
--};
--
- /* The Rx and Tx buffer descriptors. */
- struct netdev_desc {
- 	__le64 next_desc;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0085-OMAPDSS-VENC-fix-NULL-pointer-dereference-in-DSS2-VE.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0085-OMAPDSS-VENC-fix-NULL-pointer-dereference-in-DSS2-VE.patch
deleted file mode 100644
index 0c09aac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0085-OMAPDSS-VENC-fix-NULL-pointer-dereference-in-DSS2-VE.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ad7129ee930fa9b9efd04490a4ddcd5d5a9039a9 Mon Sep 17 00:00:00 2001
-From: Danny Kukawka <danny.kukawka at bisect.de>
-Date: Tue, 24 Jan 2012 16:44:42 +0100
-Subject: [PATCH 085/117] OMAPDSS: VENC: fix NULL pointer dereference in DSS2
- VENC sysfs debug attr on OMAP4
-
-commit cc1d3e032df53d83d0ca4d537d8eb67eb5b3e808 upstream.
-
-Commit ba02fa37de80bea10d706f39f076dd848348320a disabled the
-venc driver registration on OMAP4. Since the driver never gets
-probed/initialised your get a dereferenceed NULL pointer if you
-try to get info from /sys/kernel/debug/omapdss/venc
-
-Return info message about disabled venc if venc_dump_regs() gets called.
-
-Signed-off-by: Danny Kukawka <danny.kukawka at bisect.de>
-Signed-off-by: Tomi Valkeinen <tomi.valkeinen at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/video/omap2/dss/venc.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/video/omap2/dss/venc.c b/drivers/video/omap2/dss/venc.c
-index 7533458..7152b53 100644
---- a/drivers/video/omap2/dss/venc.c
-+++ b/drivers/video/omap2/dss/venc.c
-@@ -679,6 +679,11 @@ void venc_dump_regs(struct seq_file *s)
- {
- #define DUMPREG(r) seq_printf(s, "%-35s %08x\n", #r, venc_read_reg(r))
- 
-+	if (cpu_is_omap44xx()) {
-+		seq_printf(s, "VENC currently disabled on OMAP44xx\n");
-+		return;
-+	}
-+
- 	if (venc_runtime_get())
- 		return;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0086-i2c-eg20t-change-timeout-value-50msec-to-1000msec.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0086-i2c-eg20t-change-timeout-value-50msec-to-1000msec.patch
deleted file mode 100644
index f2be4cd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0086-i2c-eg20t-change-timeout-value-50msec-to-1000msec.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 64affee5c2afb0dff67a4c3669e3c44c98575809 Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Mon, 26 Mar 2012 14:55:25 +0900
-Subject: [PATCH 086/117] i2c-eg20t: change timeout value 50msec to 1000msec
-
-commit 8a52f9f347da721b199b7f9dcc0168bbe7d0baae upstream.
-
-Currently, during i2c works alone, wait-event timeout is not occurred.
-However, as CPU load increases, timeout occurs frequently.
-So, I modified like this patch.
-Modifying like this patch, I've never seen the timeout event with high
-load test.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/i2c/busses/i2c-eg20t.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
-index 730215e..2cda65bf 100644
---- a/drivers/i2c/busses/i2c-eg20t.c
-+++ b/drivers/i2c/busses/i2c-eg20t.c
-@@ -315,7 +315,7 @@ static s32 pch_i2c_wait_for_xfer_complete(struct i2c_algo_pch_data *adap)
- {
- 	long ret;
- 	ret = wait_event_timeout(pch_event,
--			(adap->pch_event_flag != 0), msecs_to_jiffies(50));
-+			(adap->pch_event_flag != 0), msecs_to_jiffies(1000));
- 
- 	if (ret == 0) {
- 		pch_err(adap, "timeout: %x\n", adap->pch_event_flag);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0087-drm-i915-GEN7-Use-HW-scheduler-for-fixed-function-sh.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0087-drm-i915-GEN7-Use-HW-scheduler-for-fixed-function-sh.patch
deleted file mode 100644
index d48f0e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0087-drm-i915-GEN7-Use-HW-scheduler-for-fixed-function-sh.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From b8fd6d0d306fe861b9a5d692b5d14c169a14bc7e Mon Sep 17 00:00:00 2001
-From: Ben Widawsky <ben at bwidawsk.net>
-Date: Sat, 14 Apr 2012 18:41:32 -0700
-Subject: [PATCH 087/117] drm/i915: [GEN7] Use HW scheduler for fixed function
- shaders
-
-commit a1e969e0332de7a430e62822cee8f2ec8d83cd7c upstream.
-
-This originally started as a patch from Bernard as a way of simply
-setting the VS scheduler. After submitting the RFC patch, we decided to
-also modify the DS scheduler. To be most explicit, I've made the patch
-explicitly set all scheduler modes, and included the defines for other
-modes (in case someone feels frisky later).
-
-The rest of the story gets a bit weird. The first version of the patch
-showed an almost unbelievable performance improvement. Since rebasing my
-branch it appears the performance improvement has gone, unfortunately.
-But setting these bits seem to be the right thing to do given that the
-docs describe corruption that can occur with the default settings.
-
-In summary, I am seeing no more perf improvements (or regressions) in my
-limited testing, but we believe this should be set to prevent rendering
-corruption, therefore cc stable.
-
-v1: Clear bit 4 also (Ken + Eugeni)
-Do a full clear + set of the bits we want (Me).
-
-Cc: Bernard Kilarski <bernard.r.kilarski at intel.com>
-Reviewed-by (RFC): Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Ben Widawsky <benjamin.widawsky at intel.com>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_reg.h      |   15 +++++++++++++++
- drivers/gpu/drm/i915/intel_display.c |   14 ++++++++++++++
- 2 files changed, 29 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index cbe5a88..a1d53b6 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -570,6 +570,21 @@
- 
- #define GEN6_BSD_RNCID			0x12198
- 
-+#define GEN7_FF_THREAD_MODE		0x20a0
-+#define   GEN7_FF_SCHED_MASK		0x0077070
-+#define   GEN7_FF_TS_SCHED_HS1		(0x5<<16)
-+#define   GEN7_FF_TS_SCHED_HS0		(0x3<<16)
-+#define   GEN7_FF_TS_SCHED_LOAD_BALANCE	(0x1<<16)
-+#define   GEN7_FF_TS_SCHED_HW		(0x0<<16) /* Default */
-+#define   GEN7_FF_VS_SCHED_HS1		(0x5<<12)
-+#define   GEN7_FF_VS_SCHED_HS0		(0x3<<12)
-+#define   GEN7_FF_VS_SCHED_LOAD_BALANCE	(0x1<<12) /* Default */
-+#define   GEN7_FF_VS_SCHED_HW		(0x0<<12)
-+#define   GEN7_FF_DS_SCHED_HS1		(0x5<<4)
-+#define   GEN7_FF_DS_SCHED_HS0		(0x3<<4)
-+#define   GEN7_FF_DS_SCHED_LOAD_BALANCE	(0x1<<4)  /* Default */
-+#define   GEN7_FF_DS_SCHED_HW		(0x0<<4)
-+
- /*
-  * Framebuffer compression (915+ only)
-  */
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 390768f..68fa8f8 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8245,6 +8245,18 @@ static void gen6_init_clock_gating(struct drm_device *dev)
- 	}
- }
- 
-+static void gen7_setup_fixed_func_scheduler(struct drm_i915_private *dev_priv)
-+{
-+	uint32_t reg = I915_READ(GEN7_FF_THREAD_MODE);
-+
-+	reg &= ~GEN7_FF_SCHED_MASK;
-+	reg |= GEN7_FF_TS_SCHED_HW;
-+	reg |= GEN7_FF_VS_SCHED_HW;
-+	reg |= GEN7_FF_DS_SCHED_HW;
-+
-+	I915_WRITE(GEN7_FF_THREAD_MODE, reg);
-+}
-+
- static void ivybridge_init_clock_gating(struct drm_device *dev)
- {
- 	struct drm_i915_private *dev_priv = dev->dev_private;
-@@ -8285,6 +8297,8 @@ static void ivybridge_init_clock_gating(struct drm_device *dev)
- 			   DISPPLANE_TRICKLE_FEED_DISABLE);
- 		intel_flush_display_plane(dev_priv, pipe);
- 	}
-+
-+	gen7_setup_fixed_func_scheduler(dev_priv);
- }
- 
- static void g4x_init_clock_gating(struct drm_device *dev)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0088-mmc-sdio-avoid-spurious-calls-to-interrupt-handlers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0088-mmc-sdio-avoid-spurious-calls-to-interrupt-handlers.patch
deleted file mode 100644
index 4fcc89e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0088-mmc-sdio-avoid-spurious-calls-to-interrupt-handlers.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 418111eaa285eb1418ef4634eb2a24e955d0c0a4 Mon Sep 17 00:00:00 2001
-From: Nicolas Pitre <nicolas.pitre at linaro.org>
-Date: Mon, 16 Apr 2012 19:16:54 -0400
-Subject: [PATCH 088/117] mmc: sdio: avoid spurious calls to interrupt
- handlers
-
-commit bbbc4c4d8c5face097d695f9bf3a39647ba6b7e7 upstream.
-
-Commit 06e8935feb ("optimized SDIO IRQ handling for single irq")
-introduced some spurious calls to SDIO function interrupt handlers,
-such as when the SDIO IRQ thread is started, or the safety check
-performed upon a system resume.  Let's add a flag to perform the
-optimization only when a real interrupt is signaled by the host
-driver and we know there is no point confirming it.
-
-Reported-by: Sujit Reddy Thumma <sthumma at codeaurora.org>
-Signed-off-by: Nicolas Pitre <nico at linaro.org>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mmc/core/sdio.c     |    2 +-
- drivers/mmc/core/sdio_irq.c |   11 +++++++----
- include/linux/mmc/host.h    |    2 ++
- 3 files changed, 10 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c
-index 3ab565e..558a495 100644
---- a/drivers/mmc/core/sdio.c
-+++ b/drivers/mmc/core/sdio.c
-@@ -663,7 +663,7 @@ static int mmc_sdio_resume(struct mmc_host *host)
- 	}
- 
- 	if (!err && host->sdio_irqs)
--		mmc_signal_sdio_irq(host);
-+		wake_up_process(host->sdio_irq_thread);
- 	mmc_release_host(host);
- 
- 	/*
-diff --git a/drivers/mmc/core/sdio_irq.c b/drivers/mmc/core/sdio_irq.c
-index 68f81b9..9dd0462 100644
---- a/drivers/mmc/core/sdio_irq.c
-+++ b/drivers/mmc/core/sdio_irq.c
-@@ -28,18 +28,20 @@
- 
- #include "sdio_ops.h"
- 
--static int process_sdio_pending_irqs(struct mmc_card *card)
-+static int process_sdio_pending_irqs(struct mmc_host *host)
- {
-+	struct mmc_card *card = host->card;
- 	int i, ret, count;
- 	unsigned char pending;
- 	struct sdio_func *func;
- 
- 	/*
- 	 * Optimization, if there is only 1 function interrupt registered
--	 * call irq handler directly
-+	 * and we know an IRQ was signaled then call irq handler directly.
-+	 * Otherwise do the full probe.
- 	 */
- 	func = card->sdio_single_irq;
--	if (func) {
-+	if (func && host->sdio_irq_pending) {
- 		func->irq_handler(func);
- 		return 1;
- 	}
-@@ -116,7 +118,8 @@ static int sdio_irq_thread(void *_host)
- 		ret = __mmc_claim_host(host, &host->sdio_irq_thread_abort);
- 		if (ret)
- 			break;
--		ret = process_sdio_pending_irqs(host->card);
-+		ret = process_sdio_pending_irqs(host);
-+		host->sdio_irq_pending = false;
- 		mmc_release_host(host);
- 
- 		/*
-diff --git a/include/linux/mmc/host.h b/include/linux/mmc/host.h
-index a3ac9c4..deb6282 100644
---- a/include/linux/mmc/host.h
-+++ b/include/linux/mmc/host.h
-@@ -303,6 +303,7 @@ struct mmc_host {
- 
- 	unsigned int		sdio_irqs;
- 	struct task_struct	*sdio_irq_thread;
-+	bool			sdio_irq_pending;
- 	atomic_t		sdio_irq_thread_abort;
- 
- 	mmc_pm_flag_t		pm_flags;	/* requested pm features */
-@@ -356,6 +357,7 @@ extern int mmc_cache_ctrl(struct mmc_host *, u8);
- static inline void mmc_signal_sdio_irq(struct mmc_host *host)
- {
- 	host->ops->enable_sdio_irq(host, 0);
-+	host->sdio_irq_pending = true;
- 	wake_up_process(host->sdio_irq_thread);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0089-smsusb-add-autodetection-support-for-USB-ID-2040-c0a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0089-smsusb-add-autodetection-support-for-USB-ID-2040-c0a.patch
deleted file mode 100644
index a1606fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0089-smsusb-add-autodetection-support-for-USB-ID-2040-c0a.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From f408079974e4190a820716d82a01af3f3201cd56 Mon Sep 17 00:00:00 2001
-From: Michael Krufky <mkrufky at linuxtv.org>
-Date: Thu, 22 Mar 2012 13:55:05 -0300
-Subject: [PATCH 089/117] smsusb: add autodetection support for USB ID
- 2040:c0a0
-
-commit 4d1b58b84472d1d300a66e1c5fd765b21e74ba15 upstream.
-
-Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/dvb/siano/smsusb.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/media/dvb/siano/smsusb.c b/drivers/media/dvb/siano/smsusb.c
-index 51c7121..b7d1e3e 100644
---- a/drivers/media/dvb/siano/smsusb.c
-+++ b/drivers/media/dvb/siano/smsusb.c
-@@ -542,6 +542,8 @@ static const struct usb_device_id smsusb_id_table[] __devinitconst = {
- 		.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
- 	{ USB_DEVICE(0x2040, 0xc090),
- 		.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
-+	{ USB_DEVICE(0x2040, 0xc0a0),
-+		.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
- 	{ } /* Terminating entry */
- 	};
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0090-uvcvideo-Fix-ENUMINPUT-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0090-uvcvideo-Fix-ENUMINPUT-handling.patch
deleted file mode 100644
index 08a9b59..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0090-uvcvideo-Fix-ENUMINPUT-handling.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1565ef649160b0fb7c0911ce172ecc475db2741e Mon Sep 17 00:00:00 2001
-From: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Date: Wed, 21 Mar 2012 09:50:36 -0300
-Subject: [PATCH 090/117] uvcvideo: Fix ENUMINPUT handling
-
-commit 31c5f0c5e25ed71eeced170f113bb590f2f1f6f3 upstream.
-
-Properly validate the user-supplied index against the number of inputs.
-The code used the pin local variable instead of the index by mistake.
-
-Reported-by: Jozef Vesely <vesely at gjh.sk>
-Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/video/uvc/uvc_v4l2.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/media/video/uvc/uvc_v4l2.c b/drivers/media/video/uvc/uvc_v4l2.c
-index cf7788f..1030479 100644
---- a/drivers/media/video/uvc/uvc_v4l2.c
-+++ b/drivers/media/video/uvc/uvc_v4l2.c
-@@ -689,7 +689,7 @@ static long uvc_v4l2_do_ioctl(struct file *file, unsigned int cmd, void *arg)
- 					break;
- 			}
- 			pin = iterm->id;
--		} else if (pin < selector->bNrInPins) {
-+		} else if (index < selector->bNrInPins) {
- 			pin = selector->baSourceID[index];
- 			list_for_each_entry(iterm, &chain->entities, chain) {
- 				if (!UVC_ENTITY_IS_ITERM(iterm))
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0091-drm-i915-Avoid-a-double-read-of-PCH_IIR-during-inter.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0091-drm-i915-Avoid-a-double-read-of-PCH_IIR-during-inter.patch
deleted file mode 100644
index 41055a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0091-drm-i915-Avoid-a-double-read-of-PCH_IIR-during-inter.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From e7fcb3c81686f5853ff08909c0f580536291be51 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Wed, 9 May 2012 21:45:43 +0100
-Subject: [PATCH 091/117] drm/i915: Avoid a double-read of PCH_IIR during
- interrupt handling
-
-commit 9adab8b5a7fde248504f484e197589f3e3c922e2 upstream.
-
-Currently the code re-reads PCH_IIR during the hotplug interrupt
-processing. Not only is this a wasted read, but introduces a potential
-for handling a spurious interrupt as we then may not clear all the
-interrupts processed (since the re-read IIR may contains more interrupts
-asserted than we clear using the result of the original read).
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_irq.c |    9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index d47a53b..d3820c2 100644
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -424,14 +424,11 @@ static void gen6_pm_rps_work(struct work_struct *work)
- 	mutex_unlock(&dev_priv->dev->struct_mutex);
- }
- 
--static void pch_irq_handler(struct drm_device *dev)
-+static void pch_irq_handler(struct drm_device *dev, u32 pch_iir)
- {
- 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
--	u32 pch_iir;
- 	int pipe;
- 
--	pch_iir = I915_READ(SDEIIR);
--
- 	if (pch_iir & SDE_AUDIO_POWER_MASK)
- 		DRM_DEBUG_DRIVER("PCH audio power change on port %d\n",
- 				 (pch_iir & SDE_AUDIO_POWER_MASK) >>
-@@ -529,7 +526,7 @@ static irqreturn_t ivybridge_irq_handler(DRM_IRQ_ARGS)
- 	if (de_iir & DE_PCH_EVENT_IVB) {
- 		if (pch_iir & SDE_HOTPLUG_MASK_CPT)
- 			queue_work(dev_priv->wq, &dev_priv->hotplug_work);
--		pch_irq_handler(dev);
-+		pch_irq_handler(dev, pch_iir);
- 	}
- 
- 	if (pm_iir & GEN6_PM_DEFERRED_EVENTS) {
-@@ -629,7 +626,7 @@ static irqreturn_t ironlake_irq_handler(DRM_IRQ_ARGS)
- 	if (de_iir & DE_PCH_EVENT) {
- 		if (pch_iir & hotplug_mask)
- 			queue_work(dev_priv->wq, &dev_priv->hotplug_work);
--		pch_irq_handler(dev);
-+		pch_irq_handler(dev, pch_iir);
- 	}
- 
- 	if (de_iir & DE_PCU_EVENT) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0092-b43legacy-Fix-error-due-to-MMIO-access-with-SSB-unpo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0092-b43legacy-Fix-error-due-to-MMIO-access-with-SSB-unpo.patch
deleted file mode 100644
index 2a97b80..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0092-b43legacy-Fix-error-due-to-MMIO-access-with-SSB-unpo.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 6f8ba55029ac1a15f55de85122401036a08d6b89 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sun, 6 May 2012 16:01:05 -0500
-Subject: [PATCH 092/117] b43legacy: Fix error due to MMIO access with SSB
- unpowered
-
-commit 8f4b20388fa77226a3605627a33a23f90d559e50 upstream.
-
-There is a dummy read of a PCI MMIO register that occurs before the SSB bus
-has been powered, which is an error. This bug has not been seen earlier,
-but was apparently exposed when udev was updated to version 182.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/b43legacy/main.c |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/drivers/net/wireless/b43legacy/main.c b/drivers/net/wireless/b43legacy/main.c
-index 20f0243..c5ce163 100644
---- a/drivers/net/wireless/b43legacy/main.c
-+++ b/drivers/net/wireless/b43legacy/main.c
-@@ -1564,8 +1564,6 @@ static int b43legacy_request_firmware(struct b43legacy_wldev *dev)
- 	const char *filename;
- 	int err;
- 
--	/* do dummy read */
--	ssb_read32(dev->dev, SSB_TMSHIGH);
- 	if (!fw->ucode) {
- 		if (rev == 2)
- 			filename = "ucode2";
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0093-gpio-mpc8xxx-Prevent-NULL-pointer-deref-in-demux-han.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0093-gpio-mpc8xxx-Prevent-NULL-pointer-deref-in-demux-han.patch
deleted file mode 100644
index b3e3fa6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0093-gpio-mpc8xxx-Prevent-NULL-pointer-deref-in-demux-han.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 3a36f1d3f5cc6f221848df7c4cdc1269fc2085e9 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Thu, 3 May 2012 12:22:06 +0200
-Subject: [PATCH 093/117] gpio: mpc8xxx: Prevent NULL pointer deref in demux
- handler
-
-commit d6de85e85edcc38c9edcde45a0a568818fcddc13 upstream.
-
-commit cfadd838(powerpc/8xxx: Fix interrupt handling in MPC8xxx GPIO
-driver) added an unconditional call of chip->irq_eoi() to the demux
-handler.
-
-This leads to a NULL pointer derefernce on MPC512x platforms which use
-this driver as well.
-
-Make it conditional.
-
-Reported-by: Thomas Wucher <thwucher at linutronix.de>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Cc: Felix Radensky <felix at embedded-sol.com>
-Cc: Kumar Gala <galak at kernel.crashing.org>
-Cc: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpio/gpio-mpc8xxx.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpio/gpio-mpc8xxx.c b/drivers/gpio/gpio-mpc8xxx.c
-index 5cd04b6..edcffd6 100644
---- a/drivers/gpio/gpio-mpc8xxx.c
-+++ b/drivers/gpio/gpio-mpc8xxx.c
-@@ -163,7 +163,8 @@ static void mpc8xxx_gpio_irq_cascade(unsigned int irq, struct irq_desc *desc)
- 	if (mask)
- 		generic_handle_irq(irq_linear_revmap(mpc8xxx_gc->irq,
- 						     32 - ffs(mask)));
--	chip->irq_eoi(&desc->irq_data);
-+	if (chip->irq_eoi)
-+		chip->irq_eoi(&desc->irq_data);
- }
- 
- static void mpc8xxx_irq_unmask(struct irq_data *d)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0094-drm-i915-don-t-clobber-the-pipe-param-in-sanitize_mo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0094-drm-i915-don-t-clobber-the-pipe-param-in-sanitize_mo.patch
deleted file mode 100644
index 9e3e30e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0094-drm-i915-don-t-clobber-the-pipe-param-in-sanitize_mo.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 031b0156d47e41f3815fcee8b2043c0b7d21dba0 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sun, 13 May 2012 22:29:25 +0200
-Subject: [PATCH 094/117] drm/i915: don't clobber the pipe param in
- sanitize_modesetting
-
-commit a9dcf84b14ef4e9a609910367576995e6f32f3dc upstream.
-
-... we need it later on in the function to clean up pipe <-> plane
-associations. This regression has been introduced in
-
-commit f47166d2b0001fcb752b40c5a2d4db986dfbea68
-Author: Chris Wilson <chris at chris-wilson.co.uk>
-Date:   Thu Mar 22 15:00:50 2012 +0000
-
-    drm/i915: Sanitize BIOS debugging bits from PIPECONF
-
-Spotted by staring at debug output of an (as it turns out) totally
-unrelated bug.
-
-v2: I've totally failed to do the s/pipe/i/ correctly, spotted by
-Chris Wilson.
-
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 68fa8f8..3ff980d 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -7280,10 +7280,11 @@ static void intel_sanitize_modesetting(struct drm_device *dev,
- {
- 	struct drm_i915_private *dev_priv = dev->dev_private;
- 	u32 reg, val;
-+	int i;
- 
- 	/* Clear any frame start delays used for debugging left by the BIOS */
--	for_each_pipe(pipe) {
--		reg = PIPECONF(pipe);
-+	for_each_pipe(i) {
-+		reg = PIPECONF(i);
- 		I915_WRITE(reg, I915_READ(reg) & ~PIPECONF_FRAME_START_DELAY_MASK);
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0095-spi-spi-fsl-spi-reference-correct-pdata-in-fsl_spi_c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0095-spi-spi-fsl-spi-reference-correct-pdata-in-fsl_spi_c.patch
deleted file mode 100644
index 3dc340b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0095-spi-spi-fsl-spi-reference-correct-pdata-in-fsl_spi_c.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From ee003c924af5accb5545a0f07b09f488cdd16e76 Mon Sep 17 00:00:00 2001
-From: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
-Date: Fri, 11 May 2012 15:29:50 -0700
-Subject: [PATCH 095/117] spi/spi-fsl-spi: reference correct pdata in
- fsl_spi_cs_control
-
-commit 067aa4815a9bc12a569d8a06afef50ba5773afbf upstream.
-
-Commit 178db7d3, "spi: Fix device unregistration when unregistering
-the bus master", changed spi device initialization of dev.parent pointer
-to be the master's device pointer instead of his parent.
-
-This introduced a bug in spi-fsl-spi, since its usage of spi device
-pointer was not updated accordingly. This was later fixed by commit
-5039a86, "spi/mpc83xx: fix NULL pdata dereference bug", but it missed
-another spot on fsl_spi_cs_control function where we also need to update
-usage of spi device pointer. This change address that.
-
-Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
-Acked-by: Joakim Tjernlund <Joakim.Tjernlund at transmode.se>
-Signed-off-by: Grant Likely <grant.likely at secretlab.ca>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/spi/spi-fsl-spi.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/spi/spi-fsl-spi.c b/drivers/spi/spi-fsl-spi.c
-index 5f748c0..6a62934 100644
---- a/drivers/spi/spi-fsl-spi.c
-+++ b/drivers/spi/spi-fsl-spi.c
-@@ -933,7 +933,7 @@ err:
- 
- static void fsl_spi_cs_control(struct spi_device *spi, bool on)
- {
--	struct device *dev = spi->dev.parent;
-+	struct device *dev = spi->dev.parent->parent;
- 	struct mpc8xxx_spi_probe_info *pinfo = to_of_pinfo(dev->platform_data);
- 	u16 cs = spi->chip_select;
- 	int gpio = pinfo->gpios[cs];
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0096-xen-do-not-map-the-same-GSI-twice-in-PVHVM-guests.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0096-xen-do-not-map-the-same-GSI-twice-in-PVHVM-guests.patch
deleted file mode 100644
index 64f01ae..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0096-xen-do-not-map-the-same-GSI-twice-in-PVHVM-guests.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From ccee9896b442dd46dc0fd4c7ae4b9e8e470fab2b Mon Sep 17 00:00:00 2001
-From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Date: Mon, 21 May 2012 16:54:10 +0100
-Subject: [PATCH 096/117] xen: do not map the same GSI twice in PVHVM guests.
-
-commit 68c2c39a76b094e9b2773e5846424ea674bf2c46 upstream.
-
-PV on HVM guests map GSIs into event channels. At restore time the
-event channels are resumed by restore_pirqs.
-
-Device drivers might try to register the same GSI again through ACPI at
-restore time, but the GSI has already been mapped and bound by
-restore_pirqs. This patch detects these situations and avoids
- mapping the same GSI multiple times.
-
-Without this patch we get:
-(XEN) irq.c:2235: dom4: pirq 23 or emuirq 28 already mapped
-and waste a pirq.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/pci/xen.c   |    4 ++++
- drivers/xen/events.c |    5 +++--
- include/xen/events.h |    3 +++
- 3 files changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
-index d99346e..4c262f6 100644
---- a/arch/x86/pci/xen.c
-+++ b/arch/x86/pci/xen.c
-@@ -64,6 +64,10 @@ static int xen_register_pirq(u32 gsi, int gsi_override, int triggering,
- 	int shareable = 0;
- 	char *name;
- 
-+	irq = xen_irq_from_gsi(gsi);
-+	if (irq > 0)
-+		return irq;
-+
- 	if (set_pirq)
- 		pirq = gsi;
- 
-diff --git a/drivers/xen/events.c b/drivers/xen/events.c
-index 6e075cd..fec1204 100644
---- a/drivers/xen/events.c
-+++ b/drivers/xen/events.c
-@@ -600,7 +600,7 @@ static void disable_pirq(struct irq_data *data)
- 	disable_dynirq(data);
- }
- 
--static int find_irq_by_gsi(unsigned gsi)
-+int xen_irq_from_gsi(unsigned gsi)
- {
- 	struct irq_info *info;
- 
-@@ -614,6 +614,7 @@ static int find_irq_by_gsi(unsigned gsi)
- 
- 	return -1;
- }
-+EXPORT_SYMBOL_GPL(xen_irq_from_gsi);
- 
- /*
-  * Do not make any assumptions regarding the relationship between the
-@@ -633,7 +634,7 @@ int xen_bind_pirq_gsi_to_irq(unsigned gsi,
- 
- 	mutex_lock(&irq_mapping_update_lock);
- 
--	irq = find_irq_by_gsi(gsi);
-+	irq = xen_irq_from_gsi(gsi);
- 	if (irq != -1) {
- 		printk(KERN_INFO "xen_map_pirq_gsi: returning irq %d for gsi %u\n",
- 		       irq, gsi);
-diff --git a/include/xen/events.h b/include/xen/events.h
-index d287997..8f3d622 100644
---- a/include/xen/events.h
-+++ b/include/xen/events.h
-@@ -96,6 +96,9 @@ int xen_irq_from_pirq(unsigned pirq);
- /* Return the pirq allocated to the irq. */
- int xen_pirq_from_irq(unsigned irq);
- 
-+/* Return the irq allocated to the gsi */
-+int xen_irq_from_gsi(unsigned gsi);
-+
- /* Determine whether to ignore this IRQ if it is passed to a guest. */
- int xen_test_irq_shared(int irq);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0097-nouveau-nouveau_set_bo_placement-takes-TTM-flags.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0097-nouveau-nouveau_set_bo_placement-takes-TTM-flags.patch
deleted file mode 100644
index 7698a84..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0097-nouveau-nouveau_set_bo_placement-takes-TTM-flags.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 49228e195ea0ed24fe598a16c8721ee019df508d Mon Sep 17 00:00:00 2001
-From: Dave Airlie <airlied at redhat.com>
-Date: Fri, 18 May 2012 15:31:12 +0100
-Subject: [PATCH 097/117] nouveau: nouveau_set_bo_placement takes TTM flags
-
-commit c284815debba2f14ee2fd07b1b4cc972ab116110 upstream.
-
-This seems to be wrong to me, spotted while thinking about dma-buf.
-
-Reviewed-by: Ben Skeggs <bskeggs at redhat.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nouveau_bo.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_bo.c b/drivers/gpu/drm/nouveau/nouveau_bo.c
-index 7cc37e6..d5af089 100644
---- a/drivers/gpu/drm/nouveau/nouveau_bo.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_bo.c
-@@ -1024,7 +1024,7 @@ nouveau_ttm_fault_reserve_notify(struct ttm_buffer_object *bo)
- 
- 	nvbo->placement.fpfn = 0;
- 	nvbo->placement.lpfn = dev_priv->fb_mappable_pages;
--	nouveau_bo_placement_set(nvbo, TTM_PL_VRAM, 0);
-+	nouveau_bo_placement_set(nvbo, TTM_PL_FLAG_VRAM, 0);
- 	return nouveau_bo_validate(nvbo, false, true, false);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0098-MCE-Fix-vm86-handling-for-32bit-mce-handler.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0098-MCE-Fix-vm86-handling-for-32bit-mce-handler.patch
deleted file mode 100644
index 4d21aff..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0098-MCE-Fix-vm86-handling-for-32bit-mce-handler.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 7a3402ddb979d26b777cc6f99824881af9362e8d Mon Sep 17 00:00:00 2001
-From: Andi Kleen <andi at firstfloor.org>
-Date: Fri, 19 Nov 2010 13:16:22 +0100
-Subject: [PATCH 098/117] MCE: Fix vm86 handling for 32bit mce handler
-
-commit a129a7c84582629741e5fa6f40026efcd7a65bd4 upstream.
-
-When running on 32bit the mce handler could misinterpret
-vm86 mode as ring 0. This can affect whether it does recovery
-or not; it was possible to panic when recovery was actually
-possible.
-
-Fix this by always forcing vm86 to look like ring 3.
-
-Signed-off-by: Andi Kleen <ak at linux.intel.com>
-Signed-off-by: Tony Luck <tony.luck at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/cpu/mcheck/mce.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
-index 2af127d..b0f1271 100644
---- a/arch/x86/kernel/cpu/mcheck/mce.c
-+++ b/arch/x86/kernel/cpu/mcheck/mce.c
-@@ -389,6 +389,14 @@ static inline void mce_gather_info(struct mce *m, struct pt_regs *regs)
- 		if (m->mcgstatus & (MCG_STATUS_RIPV|MCG_STATUS_EIPV)) {
- 			m->ip = regs->ip;
- 			m->cs = regs->cs;
-+
-+			/*
-+			 * When in VM86 mode make the cs look like ring 3
-+			 * always. This is a lie, but it's better than passing
-+			 * the additional vm86 bit around everywhere.
-+			 */
-+			if (v8086_mode(regs))
-+				m->cs |= 3;
- 		}
- 		/* Use accurate RIP reporting if available. */
- 		if (rip_msr)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0099-x86-mce-Fix-check-for-processor-context-when-machine.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0099-x86-mce-Fix-check-for-processor-context-when-machine.patch
deleted file mode 100644
index 05cd8cf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0099-x86-mce-Fix-check-for-processor-context-when-machine.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 7938ffb57366a0e5f4b878955148f515d9940453 Mon Sep 17 00:00:00 2001
-From: Tony Luck <tony.luck at intel.com>
-Date: Wed, 23 May 2012 14:14:22 -0700
-Subject: [PATCH 099/117] x86/mce: Fix check for processor context when
- machine check was taken.
-
-commit 875e26648cf9b6db9d8dc07b7959d7c61fb3f49c upstream.
-
-Linus pointed out that there was no value is checking whether m->ip
-was zero - because zero is a legimate value.  If we have a reliable
-(or faked in the VM86 case) "m->cs" we can use it to tell whether we
-were in user mode or kernelwhen the machine check hit.
-
-Reported-by: Linus Torvalds <torvalds at linuxfoundation.org>
-Signed-off-by: Tony Luck <tony.luck at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/cpu/mcheck/mce-severity.c |   16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/arch/x86/kernel/cpu/mcheck/mce-severity.c b/arch/x86/kernel/cpu/mcheck/mce-severity.c
-index 7395d5f..c9c9cfe 100644
---- a/arch/x86/kernel/cpu/mcheck/mce-severity.c
-+++ b/arch/x86/kernel/cpu/mcheck/mce-severity.c
-@@ -145,15 +145,19 @@ static struct severity {
- };
- 
- /*
-- * If the EIPV bit is set, it means the saved IP is the
-- * instruction which caused the MCE.
-+ * If mcgstatus indicated that ip/cs on the stack were
-+ * no good, then "m->cs" will be zero and we will have
-+ * to assume the worst case (IN_KERNEL) as we actually
-+ * have no idea what we were executing when the machine
-+ * check hit.
-+ * If we do have a good "m->cs" (or a faked one in the
-+ * case we were executing in VM86 mode) we can use it to
-+ * distinguish an exception taken in user from from one
-+ * taken in the kernel.
-  */
- static int error_context(struct mce *m)
- {
--	if (m->mcgstatus & MCG_STATUS_EIPV)
--		return (m->ip && (m->cs & 3) == 3) ? IN_USER : IN_KERNEL;
--	/* Unknown, assume kernel */
--	return IN_KERNEL;
-+	return ((m->cs & 3) == 3) ? IN_USER : IN_KERNEL;
- }
- 
- int mce_severity(struct mce *m, int tolerant, char **msg)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0100-tile-fix-bug-where-fls-0-was-not-returning-0.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0100-tile-fix-bug-where-fls-0-was-not-returning-0.patch
deleted file mode 100644
index 26aba7e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0100-tile-fix-bug-where-fls-0-was-not-returning-0.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 91587d2e157874620dcdb8378b2512b809605c26 Mon Sep 17 00:00:00 2001
-From: Chris Metcalf <cmetcalf at tilera.com>
-Date: Fri, 25 May 2012 12:32:09 -0400
-Subject: [PATCH 100/117] tile: fix bug where fls(0) was not returning 0
-
-commit 9f1d62bed7f015d11b9164078b7fea433b474114 upstream.
-
-This is because __builtin_clz(0) returns 64 for the "undefined" case
-of 0, since the builtin just does a right-shift 32 and "clz" instruction.
-So, use the alpha approach of casting to u32 and using __builtin_clzll().
-
-Signed-off-by: Chris Metcalf <cmetcalf at tilera.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/tile/include/asm/bitops.h |   12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/arch/tile/include/asm/bitops.h b/arch/tile/include/asm/bitops.h
-index 16f1fa5..bd186c4 100644
---- a/arch/tile/include/asm/bitops.h
-+++ b/arch/tile/include/asm/bitops.h
-@@ -77,6 +77,11 @@ static inline int ffs(int x)
- 	return __builtin_ffs(x);
- }
- 
-+static inline int fls64(__u64 w)
-+{
-+	return (sizeof(__u64) * 8) - __builtin_clzll(w);
-+}
-+
- /**
-  * fls - find last set bit in word
-  * @x: the word to search
-@@ -90,12 +95,7 @@ static inline int ffs(int x)
-  */
- static inline int fls(int x)
- {
--	return (sizeof(int) * 8) - __builtin_clz(x);
--}
--
--static inline int fls64(__u64 w)
--{
--	return (sizeof(__u64) * 8) - __builtin_clzll(w);
-+	return fls64((unsigned int) x);
- }
- 
- static inline unsigned int __arch_hweight32(unsigned int w)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0101-intel-iommu-Add-device-info-into-list-before-doing-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0101-intel-iommu-Add-device-info-into-list-before-doing-c.patch
deleted file mode 100644
index 8ab6c6e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0101-intel-iommu-Add-device-info-into-list-before-doing-c.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 7049f47a9ae3e01f50957ed9349d850579905544 Mon Sep 17 00:00:00 2001
-From: David Woodhouse <dwmw2 at infradead.org>
-Date: Fri, 25 May 2012 17:42:54 +0100
-Subject: [PATCH 101/117] intel-iommu: Add device info into list before doing
- context mapping
-
-commit e2ad23d04c1304431ab5176c89b7b476ded2d995 upstream.
-
-Add device info into list before doing context mapping, because device
-info will be used by iommu_enable_dev_iotlb(). Without it, ATS won't get
-enabled as it should be.
-
-ATS, while a dubious decision from a security point of view, can be very
-important for performance.
-
-Signed-off-by: Xudong Hao <xudong.hao at intel.com>
-Signed-off-by: Xiantao Zhang <xiantao.zhang at intel.com>
-Acked-by: Chris Wright <chrisw at sous-sol.org>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/intel-iommu.c |   17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c
-index bdc447f..ccf347f 100644
---- a/drivers/iommu/intel-iommu.c
-+++ b/drivers/iommu/intel-iommu.c
-@@ -2267,12 +2267,6 @@ static int domain_add_dev_info(struct dmar_domain *domain,
- 	if (!info)
- 		return -ENOMEM;
- 
--	ret = domain_context_mapping(domain, pdev, translation);
--	if (ret) {
--		free_devinfo_mem(info);
--		return ret;
--	}
--
- 	info->segment = pci_domain_nr(pdev->bus);
- 	info->bus = pdev->bus->number;
- 	info->devfn = pdev->devfn;
-@@ -2285,6 +2279,17 @@ static int domain_add_dev_info(struct dmar_domain *domain,
- 	pdev->dev.archdata.iommu = info;
- 	spin_unlock_irqrestore(&device_domain_lock, flags);
- 
-+	ret = domain_context_mapping(domain, pdev, translation);
-+	if (ret) {
-+		spin_lock_irqsave(&device_domain_lock, flags);
-+		list_del(&info->link);
-+		list_del(&info->global);
-+		pdev->dev.archdata.iommu = NULL;
-+		spin_unlock_irqrestore(&device_domain_lock, flags);
-+		free_devinfo_mem(info);
-+		return ret;
-+	}
-+
- 	return 0;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0102-ethtool-Null-terminate-filename-passed-to-ethtool_op.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0102-ethtool-Null-terminate-filename-passed-to-ethtool_op.patch
deleted file mode 100644
index 0a655d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0102-ethtool-Null-terminate-filename-passed-to-ethtool_op.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 79bd1de9faf5778df943c48022550d78a85d18d5 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <bhutchings at solarflare.com>
-Date: Wed, 1 Feb 2012 09:32:25 +0000
-Subject: [PATCH 102/117] ethtool: Null-terminate filename passed to
- ethtool_ops::flash_device
-
-commit 786f528119722f564a22ad953411374e06116333 upstream.
-
-The parameters for ETHTOOL_FLASHDEV include a filename, which ought to
-be null-terminated.  Currently the only driver that implements
-ethtool_ops::flash_device attempts to add a null terminator if
-necessary, but does it wrongly.  Do it in the ethtool core instead.
-
-Signed-off-by: Ben Hutchings <bhutchings at solarflare.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/emulex/benet/be_ethtool.c |    6 +-----
- net/core/ethtool.c                             |    2 ++
- 2 files changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/ethernet/emulex/benet/be_ethtool.c b/drivers/net/ethernet/emulex/benet/be_ethtool.c
-index bf8153e..7570c1a 100644
---- a/drivers/net/ethernet/emulex/benet/be_ethtool.c
-+++ b/drivers/net/ethernet/emulex/benet/be_ethtool.c
-@@ -649,12 +649,8 @@ static int
- be_do_flash(struct net_device *netdev, struct ethtool_flash *efl)
- {
- 	struct be_adapter *adapter = netdev_priv(netdev);
--	char file_name[ETHTOOL_FLASH_MAX_FILENAME];
- 
--	file_name[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0;
--	strcpy(file_name, efl->data);
--
--	return be_load_fw(adapter, file_name);
-+	return be_load_fw(adapter, efl->data);
- }
- 
- static int
-diff --git a/net/core/ethtool.c b/net/core/ethtool.c
-index f444817..2b587ec 100644
---- a/net/core/ethtool.c
-+++ b/net/core/ethtool.c
-@@ -1549,6 +1549,8 @@ static noinline_for_stack int ethtool_flash_device(struct net_device *dev,
- 	if (!dev->ethtool_ops->flash_device)
- 		return -EOPNOTSUPP;
- 
-+	efl.data[ETHTOOL_FLASH_MAX_FILENAME - 1] = 0;
-+
- 	return dev->ethtool_ops->flash_device(dev, &efl);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0103-block-don-t-mark-buffers-beyond-end-of-disk-as-mappe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0103-block-don-t-mark-buffers-beyond-end-of-disk-as-mappe.patch
deleted file mode 100644
index 143e752..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0103-block-don-t-mark-buffers-beyond-end-of-disk-as-mappe.patch
+++ /dev/null
@@ -1,157 +0,0 @@
-From 27066ac72b55b4402110f19a0897cc67d2b514d3 Mon Sep 17 00:00:00 2001
-From: Jeff Moyer <jmoyer at redhat.com>
-Date: Fri, 11 May 2012 16:34:10 +0200
-Subject: [PATCH 103/117] block: don't mark buffers beyond end of disk as
- mapped
-
-commit 080399aaaf3531f5b8761ec0ac30ff98891e8686 upstream.
-
-Hi,
-
-We have a bug report open where a squashfs image mounted on ppc64 would
-exhibit errors due to trying to read beyond the end of the disk.  It can
-easily be reproduced by doing the following:
-
-[root at ibm-p750e-02-lp3 ~]# ls -l install.img
--rw-r--r-- 1 root root 142032896 Apr 30 16:46 install.img
-[root at ibm-p750e-02-lp3 ~]# mount -o loop ./install.img /mnt/test
-[root at ibm-p750e-02-lp3 ~]# dd if=/dev/loop0 of=/dev/null
-dd: reading `/dev/loop0': Input/output error
-277376+0 records in
-277376+0 records out
-142016512 bytes (142 MB) copied, 0.9465 s, 150 MB/s
-
-In dmesg, you'll find the following:
-
-squashfs: version 4.0 (2009/01/31) Phillip Lougher
-[   43.106012] attempt to access beyond end of device
-[   43.106029] loop0: rw=0, want=277410, limit=277408
-[   43.106039] Buffer I/O error on device loop0, logical block 138704
-[   43.106053] attempt to access beyond end of device
-[   43.106057] loop0: rw=0, want=277412, limit=277408
-[   43.106061] Buffer I/O error on device loop0, logical block 138705
-[   43.106066] attempt to access beyond end of device
-[   43.106070] loop0: rw=0, want=277414, limit=277408
-[   43.106073] Buffer I/O error on device loop0, logical block 138706
-[   43.106078] attempt to access beyond end of device
-[   43.106081] loop0: rw=0, want=277416, limit=277408
-[   43.106085] Buffer I/O error on device loop0, logical block 138707
-[   43.106089] attempt to access beyond end of device
-[   43.106093] loop0: rw=0, want=277418, limit=277408
-[   43.106096] Buffer I/O error on device loop0, logical block 138708
-[   43.106101] attempt to access beyond end of device
-[   43.106104] loop0: rw=0, want=277420, limit=277408
-[   43.106108] Buffer I/O error on device loop0, logical block 138709
-[   43.106112] attempt to access beyond end of device
-[   43.106116] loop0: rw=0, want=277422, limit=277408
-[   43.106120] Buffer I/O error on device loop0, logical block 138710
-[   43.106124] attempt to access beyond end of device
-[   43.106128] loop0: rw=0, want=277424, limit=277408
-[   43.106131] Buffer I/O error on device loop0, logical block 138711
-[   43.106135] attempt to access beyond end of device
-[   43.106139] loop0: rw=0, want=277426, limit=277408
-[   43.106143] Buffer I/O error on device loop0, logical block 138712
-[   43.106147] attempt to access beyond end of device
-[   43.106151] loop0: rw=0, want=277428, limit=277408
-[   43.106154] Buffer I/O error on device loop0, logical block 138713
-[   43.106158] attempt to access beyond end of device
-[   43.106162] loop0: rw=0, want=277430, limit=277408
-[   43.106166] attempt to access beyond end of device
-[   43.106169] loop0: rw=0, want=277432, limit=277408
-...
-[   43.106307] attempt to access beyond end of device
-[   43.106311] loop0: rw=0, want=277470, limit=2774
-
-Squashfs manages to read in the end block(s) of the disk during the
-mount operation.  Then, when dd reads the block device, it leads to
-block_read_full_page being called with buffers that are beyond end of
-disk, but are marked as mapped.  Thus, it would end up submitting read
-I/O against them, resulting in the errors mentioned above.  I fixed the
-problem by modifying init_page_buffers to only set the buffer mapped if
-it fell inside of i_size.
-
-Cheers,
-Jeff
-
-Signed-off-by: Jeff Moyer <jmoyer at redhat.com>
-Acked-by: Nick Piggin <npiggin at kernel.dk>
-
---
-
-Changes from v1->v2: re-used max_block, as suggested by Nick Piggin.
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/block_dev.c     |    6 +++---
- fs/buffer.c        |    4 +++-
- include/linux/fs.h |    1 +
- 3 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/fs/block_dev.c b/fs/block_dev.c
-index abe9b48..9b98987 100644
---- a/fs/block_dev.c
-+++ b/fs/block_dev.c
-@@ -68,7 +68,7 @@ static void bdev_inode_switch_bdi(struct inode *inode,
- 	spin_unlock(&dst->wb.list_lock);
- }
- 
--static sector_t max_block(struct block_device *bdev)
-+sector_t blkdev_max_block(struct block_device *bdev)
- {
- 	sector_t retval = ~((sector_t)0);
- 	loff_t sz = i_size_read(bdev->bd_inode);
-@@ -139,7 +139,7 @@ static int
- blkdev_get_block(struct inode *inode, sector_t iblock,
- 		struct buffer_head *bh, int create)
- {
--	if (iblock >= max_block(I_BDEV(inode))) {
-+	if (iblock >= blkdev_max_block(I_BDEV(inode))) {
- 		if (create)
- 			return -EIO;
- 
-@@ -161,7 +161,7 @@ static int
- blkdev_get_blocks(struct inode *inode, sector_t iblock,
- 		struct buffer_head *bh, int create)
- {
--	sector_t end_block = max_block(I_BDEV(inode));
-+	sector_t end_block = blkdev_max_block(I_BDEV(inode));
- 	unsigned long max_blocks = bh->b_size >> inode->i_blkbits;
- 
- 	if ((iblock + max_blocks) > end_block) {
-diff --git a/fs/buffer.c b/fs/buffer.c
-index 19d8eb7..c807931 100644
---- a/fs/buffer.c
-+++ b/fs/buffer.c
-@@ -971,6 +971,7 @@ init_page_buffers(struct page *page, struct block_device *bdev,
- 	struct buffer_head *head = page_buffers(page);
- 	struct buffer_head *bh = head;
- 	int uptodate = PageUptodate(page);
-+	sector_t end_block = blkdev_max_block(I_BDEV(bdev->bd_inode));
- 
- 	do {
- 		if (!buffer_mapped(bh)) {
-@@ -979,7 +980,8 @@ init_page_buffers(struct page *page, struct block_device *bdev,
- 			bh->b_blocknr = block;
- 			if (uptodate)
- 				set_buffer_uptodate(bh);
--			set_buffer_mapped(bh);
-+			if (block < end_block)
-+				set_buffer_mapped(bh);
- 		}
- 		block++;
- 		bh = bh->b_this_page;
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 11f1951..43d36b7 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -2094,6 +2094,7 @@ extern void unregister_blkdev(unsigned int, const char *);
- extern struct block_device *bdget(dev_t);
- extern struct block_device *bdgrab(struct block_device *bdev);
- extern void bd_set_size(struct block_device *, loff_t size);
-+extern sector_t blkdev_max_block(struct block_device *bdev);
- extern void bd_forget(struct inode *inode);
- extern void bdput(struct block_device *);
- extern void invalidate_bdev(struct block_device *);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0104-drivers-rtc-rtc-pl031.c-configure-correct-wday-for-2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0104-drivers-rtc-rtc-pl031.c-configure-correct-wday-for-2.patch
deleted file mode 100644
index 1362765..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0104-drivers-rtc-rtc-pl031.c-configure-correct-wday-for-2.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 39c43ea9fecaddcfddd03787b920b8accdb87884 Mon Sep 17 00:00:00 2001
-From: Rajkumar Kasirajan <rajkumar.kasirajan at stericsson.com>
-Date: Thu, 17 May 2012 17:03:24 -0700
-Subject: [PATCH 104/117] drivers/rtc/rtc-pl031.c: configure correct wday for
- 2000-01-01
-
-commit c0a5f4a05af588a0f9951f8d24e2564b09501918 upstream.
-
-The reset date of the ST Micro version of PL031 is 2000-01-01.  The
-correct weekday for 2000-01-01 is saturday, but pl031 is initialized to
-sunday.  This may lead to alarm malfunction, so configure the correct
-wday if RTC_DR indicates reset.
-
-Signed-off-by: Rajkumar Kasirajan <rajkumar.kasirajan at stericsson.com>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Cc: Mattias Wallin <mattias.wallin at stericsson.com>
-Cc: Alessandro Zummo <a.zummo at towertech.it>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/rtc/rtc-pl031.c |   18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/rtc/rtc-pl031.c b/drivers/rtc/rtc-pl031.c
-index e86edfc..1e80a48 100644
---- a/drivers/rtc/rtc-pl031.c
-+++ b/drivers/rtc/rtc-pl031.c
-@@ -312,6 +312,7 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
- 	int ret;
- 	struct pl031_local *ldata;
- 	struct rtc_class_ops *ops = id->data;
-+	unsigned long time;
- 
- 	ret = amba_request_regions(adev, NULL);
- 	if (ret)
-@@ -343,6 +344,23 @@ static int pl031_probe(struct amba_device *adev, const struct amba_id *id)
- 		writel(readl(ldata->base + RTC_CR) | RTC_CR_CWEN,
- 		       ldata->base + RTC_CR);
- 
-+	/*
-+	 * On ST PL031 variants, the RTC reset value does not provide correct
-+	 * weekday for 2000-01-01. Correct the erroneous sunday to saturday.
-+	 */
-+	if (ldata->hw_designer == AMBA_VENDOR_ST) {
-+		if (readl(ldata->base + RTC_YDR) == 0x2000) {
-+			time = readl(ldata->base + RTC_DR);
-+			if ((time &
-+			     (RTC_MON_MASK | RTC_MDAY_MASK | RTC_WDAY_MASK))
-+			    == 0x02120000) {
-+				time = time | (0x7 << RTC_WDAY_SHIFT);
-+				writel(0x2000, ldata->base + RTC_YLR);
-+				writel(time, ldata->base + RTC_LR);
-+			}
-+		}
-+	}
-+
- 	ldata->rtc = rtc_device_register("pl031", &adev->dev, ops,
- 					THIS_MODULE);
- 	if (IS_ERR(ldata->rtc)) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0105-rtlwifi-Preallocate-USB-read-buffers-and-eliminate-k.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0105-rtlwifi-Preallocate-USB-read-buffers-and-eliminate-k.patch
deleted file mode 100644
index 67b25e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0105-rtlwifi-Preallocate-USB-read-buffers-and-eliminate-k.patch
+++ /dev/null
@@ -1,136 +0,0 @@
-From 91ccd8364ff45f06a05715225583247c09be4bbc Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Mon, 19 Mar 2012 15:44:31 -0500
-Subject: [PATCH 105/117] rtlwifi: Preallocate USB read buffers and eliminate
- kalloc in read routine
-
-commit a7959c1394d4126a70a53b914ce4105f5173d0aa upstream.
-
-The current version of rtlwifi for USB operations uses kmalloc to
-acquire a 32-bit buffer for each read of the device. When
-_usb_read_sync() is called with the rcu_lock held, the result is
-a "sleeping function called from invalid context" BUG. This is
-reported for two cases in https://bugzilla.kernel.org/show_bug.cgi?id=42775.
-The first case has the lock originating from within rtlwifi and could
-be fixed by rearranging the locking; however, the second originates from
-within mac80211. The kmalloc() call is removed from _usb_read_sync()
-by creating a ring buffer pointer in the private area and
-allocating the buffer data in the probe routine.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[This version will apply to 3.2 and earlier. - Larry]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rtlwifi/usb.c  |   34 ++++++++++++++++------------------
- drivers/net/wireless/rtlwifi/wifi.h |    6 +++++-
- 2 files changed, 21 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
-index 2b7bcc8..db34db6 100644
---- a/drivers/net/wireless/rtlwifi/usb.c
-+++ b/drivers/net/wireless/rtlwifi/usb.c
-@@ -113,46 +113,38 @@ static int _usbctrl_vendorreq_sync_read(struct usb_device *udev, u8 request,
- 	return status;
- }
- 
--static u32 _usb_read_sync(struct usb_device *udev, u32 addr, u16 len)
-+static u32 _usb_read_sync(struct rtl_priv *rtlpriv, u32 addr, u16 len)
- {
-+	struct device *dev = rtlpriv->io.dev;
-+	struct usb_device *udev = to_usb_device(dev);
- 	u8 request;
- 	u16 wvalue;
- 	u16 index;
--	u32 *data;
--	u32 ret;
-+	__le32 *data = &rtlpriv->usb_data[rtlpriv->usb_data_index];
- 
--	data = kmalloc(sizeof(u32), GFP_KERNEL);
--	if (!data)
--		return -ENOMEM;
- 	request = REALTEK_USB_VENQT_CMD_REQ;
- 	index = REALTEK_USB_VENQT_CMD_IDX; /* n/a */
- 
- 	wvalue = (u16)addr;
- 	_usbctrl_vendorreq_sync_read(udev, request, wvalue, index, data, len);
--	ret = *data;
--	kfree(data);
--	return ret;
-+	if (++rtlpriv->usb_data_index >= RTL_USB_MAX_RX_COUNT)
-+		rtlpriv->usb_data_index = 0;
-+	return le32_to_cpu(*data);
- }
- 
- static u8 _usb_read8_sync(struct rtl_priv *rtlpriv, u32 addr)
- {
--	struct device *dev = rtlpriv->io.dev;
--
--	return (u8)_usb_read_sync(to_usb_device(dev), addr, 1);
-+	return (u8)_usb_read_sync(rtlpriv, addr, 1);
- }
- 
- static u16 _usb_read16_sync(struct rtl_priv *rtlpriv, u32 addr)
- {
--	struct device *dev = rtlpriv->io.dev;
--
--	return (u16)_usb_read_sync(to_usb_device(dev), addr, 2);
-+	return (u16)_usb_read_sync(rtlpriv, addr, 2);
- }
- 
- static u32 _usb_read32_sync(struct rtl_priv *rtlpriv, u32 addr)
- {
--	struct device *dev = rtlpriv->io.dev;
--
--	return _usb_read_sync(to_usb_device(dev), addr, 4);
-+	return _usb_read_sync(rtlpriv, addr, 4);
- }
- 
- static void _usb_write_async(struct usb_device *udev, u32 addr, u32 val,
-@@ -913,6 +905,11 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
- 		return -ENOMEM;
- 	}
- 	rtlpriv = hw->priv;
-+	rtlpriv->usb_data = kzalloc(RTL_USB_MAX_RX_COUNT * sizeof(u32),
-+				    GFP_KERNEL);
-+	if (!rtlpriv->usb_data)
-+		return -ENOMEM;
-+	rtlpriv->usb_data_index = 0;
- 	SET_IEEE80211_DEV(hw, &intf->dev);
- 	udev = interface_to_usbdev(intf);
- 	usb_get_dev(udev);
-@@ -990,6 +987,7 @@ void rtl_usb_disconnect(struct usb_interface *intf)
- 	/* rtl_deinit_rfkill(hw); */
- 	rtl_usb_deinit(hw);
- 	rtl_deinit_core(hw);
-+	kfree(rtlpriv->usb_data);
- 	rtlpriv->cfg->ops->deinit_sw_leds(hw);
- 	rtlpriv->cfg->ops->deinit_sw_vars(hw);
- 	_rtl_usb_io_handler_release(hw);
-diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
-index 713c7dd..b1e9deb 100644
---- a/drivers/net/wireless/rtlwifi/wifi.h
-+++ b/drivers/net/wireless/rtlwifi/wifi.h
-@@ -63,7 +63,7 @@
- #define AC_MAX					4
- #define QOS_QUEUE_NUM				4
- #define RTL_MAC80211_NUM_QUEUE			5
--
-+#define RTL_USB_MAX_RX_COUNT			100
- #define QBSS_LOAD_SIZE				5
- #define MAX_WMMELE_LENGTH			64
- 
-@@ -1621,6 +1621,10 @@ struct rtl_priv {
- 	   interface or hardware */
- 	unsigned long status;
- 
-+	/* data buffer pointer for USB reads */
-+	__le32 *usb_data;
-+	int usb_data_index;
-+
- 	/*This must be the last item so
- 	   that it points to the data allocated
- 	   beyond  this structure like:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0106-NFS4-fix-compile-warnings-in-nfs4proc.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0106-NFS4-fix-compile-warnings-in-nfs4proc.c.patch
deleted file mode 100644
index 678add0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0106-NFS4-fix-compile-warnings-in-nfs4proc.c.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 697781d208d92b5998815e584411f29c34048cd6 Mon Sep 17 00:00:00 2001
-From: Peng Tao <bergwolf at gmail.com>
-Date: Tue, 10 Jan 2012 22:42:47 +0800
-Subject: [PATCH 106/117] NFS4: fix compile warnings in nfs4proc.c
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit de040beccd52bb5fcac90031505384d037b1111c upstream.
-
-compile in nfs-for-3.3 branch shows following warnings. Fix it here.
-
-fs/nfs/nfs4proc.c: In function ‘__nfs4_get_acl_uncached’:
-fs/nfs/nfs4proc.c:3589: warning: format ‘%ld’ expects type ‘long int’, but argument 4 has type ‘size_t’
-fs/nfs/nfs4proc.c:3589: warning: format ‘%ld’ expects type ‘long int’, but argument 6 has type ‘size_t’
-
-Signed-off-by: Peng Tao <peng_tao at emc.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index bab7c58..065f82e 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3601,7 +3601,7 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 		res.acl_flags |= NFS4_ACL_LEN_REQUEST;
- 	resp_buf = page_address(pages[0]);
- 
--	dprintk("%s  buf %p buflen %ld npages %d args.acl_len %ld\n",
-+	dprintk("%s  buf %p buflen %zu npages %d args.acl_len %zu\n",
- 		__func__, buf, buflen, npages, args.acl_len);
- 	ret = nfs4_call_sync(NFS_SERVER(inode)->client, NFS_SERVER(inode),
- 			     &msg, &args.seq_args, &res.seq_res, 0);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0107-Avoid-reading-past-buffer-when-calling-GETACL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0107-Avoid-reading-past-buffer-when-calling-GETACL.patch
deleted file mode 100644
index 6859029..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0107-Avoid-reading-past-buffer-when-calling-GETACL.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From c47d1a5a922ddebee44945d665affd7214f2dbf3 Mon Sep 17 00:00:00 2001
-From: Sachin Prabhu <sprabhu at redhat.com>
-Date: Tue, 17 Apr 2012 14:35:39 +0100
-Subject: [PATCH 107/117] Avoid reading past buffer when calling GETACL
-
-commit 5a00689930ab975fdd1b37b034475017e460cf2a upstream.
-
-Bug noticed in commit
-bf118a342f10dafe44b14451a1392c3254629a1f
-
-When calling GETACL, if the size of the bitmap array, the length
-attribute and the acl returned by the server is greater than the
-allocated buffer(args.acl_len), we can Oops with a General Protection
-fault at _copy_from_pages() when we attempt to read past the pages
-allocated.
-
-This patch allocates an extra PAGE for the bitmap and checks to see that
-the bitmap + attribute_length + ACLs don't exceed the buffer space
-allocated to it.
-
-Signed-off-by: Sachin Prabhu <sprabhu at redhat.com>
-Reported-by: Jian Li <jiali at redhat.com>
-[Trond: Fixed a size_t vs unsigned int printk() warning]
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |   16 ++++++++++------
- fs/nfs/nfs4xdr.c  |   18 +++++++++++-------
- 2 files changed, 21 insertions(+), 13 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 065f82e..39e5341 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3582,19 +3582,23 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 	if (npages == 0)
- 		npages = 1;
- 
-+	/* Add an extra page to handle the bitmap returned */
-+	npages++;
-+
- 	for (i = 0; i < npages; i++) {
- 		pages[i] = alloc_page(GFP_KERNEL);
- 		if (!pages[i])
- 			goto out_free;
- 	}
--	if (npages > 1) {
--		/* for decoding across pages */
--		res.acl_scratch = alloc_page(GFP_KERNEL);
--		if (!res.acl_scratch)
--			goto out_free;
--	}
-+
-+	/* for decoding across pages */
-+	res.acl_scratch = alloc_page(GFP_KERNEL);
-+	if (!res.acl_scratch)
-+		goto out_free;
-+
- 	args.acl_len = npages * PAGE_SIZE;
- 	args.acl_pgbase = 0;
-+
- 	/* Let decode_getfacl know not to fail if the ACL data is larger than
- 	 * the page we send as a guess */
- 	if (buf == NULL)
-diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
-index 68adab4..d7e6f7b 100644
---- a/fs/nfs/nfs4xdr.c
-+++ b/fs/nfs/nfs4xdr.c
-@@ -4965,11 +4965,19 @@ static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req,
- 		 bitmap[3] = {0};
- 	struct kvec *iov = req->rq_rcv_buf.head;
- 	int status;
-+	size_t page_len = xdr->buf->page_len;
- 
- 	res->acl_len = 0;
- 	if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0)
- 		goto out;
-+
- 	bm_p = xdr->p;
-+	res->acl_data_offset = be32_to_cpup(bm_p) + 2;
-+	res->acl_data_offset <<= 2;
-+	/* Check if the acl data starts beyond the allocated buffer */
-+	if (res->acl_data_offset > page_len)
-+		return -ERANGE;
-+
- 	if ((status = decode_attr_bitmap(xdr, bitmap)) != 0)
- 		goto out;
- 	if ((status = decode_attr_length(xdr, &attrlen, &savep)) != 0)
-@@ -4979,28 +4987,24 @@ static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req,
- 		return -EIO;
- 	if (likely(bitmap[0] & FATTR4_WORD0_ACL)) {
- 		size_t hdrlen;
--		u32 recvd;
- 
- 		/* The bitmap (xdr len + bitmaps) and the attr xdr len words
- 		 * are stored with the acl data to handle the problem of
- 		 * variable length bitmaps.*/
- 		xdr->p = bm_p;
--		res->acl_data_offset = be32_to_cpup(bm_p) + 2;
--		res->acl_data_offset <<= 2;
- 
- 		/* We ignore &savep and don't do consistency checks on
- 		 * the attr length.  Let userspace figure it out.... */
- 		hdrlen = (u8 *)xdr->p - (u8 *)iov->iov_base;
- 		attrlen += res->acl_data_offset;
--		recvd = req->rq_rcv_buf.len - hdrlen;
--		if (attrlen > recvd) {
-+		if (attrlen > page_len) {
- 			if (res->acl_flags & NFS4_ACL_LEN_REQUEST) {
- 				/* getxattr interface called with a NULL buf */
- 				res->acl_len = attrlen;
- 				goto out;
- 			}
--			dprintk("NFS: acl reply: attrlen %u > recvd %u\n",
--					attrlen, recvd);
-+			dprintk("NFS: acl reply: attrlen %zu > page_len %u\n",
-+					attrlen, page_len);
- 			return -EINVAL;
- 		}
- 		xdr_read_pages(xdr, attrlen);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0108-Avoid-beyond-bounds-copy-while-caching-ACL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0108-Avoid-beyond-bounds-copy-while-caching-ACL.patch
deleted file mode 100644
index 4334d5c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0108-Avoid-beyond-bounds-copy-while-caching-ACL.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 883e739eda3448cf83266a155d8ad39b1fe7ac6e Mon Sep 17 00:00:00 2001
-From: Sachin Prabhu <sprabhu at redhat.com>
-Date: Tue, 17 Apr 2012 14:36:40 +0100
-Subject: [PATCH 108/117] Avoid beyond bounds copy while caching ACL
-
-commit 5794d21ef4639f0e33440927bb903f9598c21e92 upstream.
-
-When attempting to cache ACLs returned from the server, if the bitmap
-size + the ACL size is greater than a PAGE_SIZE but the ACL size itself
-is smaller than a PAGE_SIZE, we can read past the buffer page boundary.
-
-Signed-off-by: Sachin Prabhu <sprabhu at redhat.com>
-Reported-by: Jian Li <jiali at redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |   12 +++++-------
- fs/nfs/nfs4xdr.c  |    2 +-
- 2 files changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 39e5341..03d9b90 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3526,16 +3526,16 @@ out:
- 	return ret;
- }
- 
--static void nfs4_write_cached_acl(struct inode *inode, const char *buf, size_t acl_len)
-+static void nfs4_write_cached_acl(struct inode *inode, struct page **pages, size_t pgbase, size_t acl_len)
- {
- 	struct nfs4_cached_acl *acl;
- 
--	if (buf && acl_len <= PAGE_SIZE) {
-+	if (pages && acl_len <= PAGE_SIZE) {
- 		acl = kmalloc(sizeof(*acl) + acl_len, GFP_KERNEL);
- 		if (acl == NULL)
- 			goto out;
- 		acl->cached = 1;
--		memcpy(acl->data, buf, acl_len);
-+		_copy_from_pages(acl->data, pages, pgbase, acl_len);
- 	} else {
- 		acl = kmalloc(sizeof(*acl), GFP_KERNEL);
- 		if (acl == NULL)
-@@ -3568,7 +3568,6 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 	struct nfs_getaclres res = {
- 		.acl_len = buflen,
- 	};
--	void *resp_buf;
- 	struct rpc_message msg = {
- 		.rpc_proc = &nfs4_procedures[NFSPROC4_CLNT_GETACL],
- 		.rpc_argp = &args,
-@@ -3603,7 +3602,6 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 	 * the page we send as a guess */
- 	if (buf == NULL)
- 		res.acl_flags |= NFS4_ACL_LEN_REQUEST;
--	resp_buf = page_address(pages[0]);
- 
- 	dprintk("%s  buf %p buflen %zu npages %d args.acl_len %zu\n",
- 		__func__, buf, buflen, npages, args.acl_len);
-@@ -3614,9 +3612,9 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 
- 	acl_len = res.acl_len - res.acl_data_offset;
- 	if (acl_len > args.acl_len)
--		nfs4_write_cached_acl(inode, NULL, acl_len);
-+		nfs4_write_cached_acl(inode, NULL, 0, acl_len);
- 	else
--		nfs4_write_cached_acl(inode, resp_buf + res.acl_data_offset,
-+		nfs4_write_cached_acl(inode, pages, res.acl_data_offset,
- 				      acl_len);
- 	if (buf) {
- 		ret = -ERANGE;
-diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
-index d7e6f7b..bdd5bdc 100644
---- a/fs/nfs/nfs4xdr.c
-+++ b/fs/nfs/nfs4xdr.c
-@@ -5003,7 +5003,7 @@ static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req,
- 				res->acl_len = attrlen;
- 				goto out;
- 			}
--			dprintk("NFS: acl reply: attrlen %zu > page_len %u\n",
-+			dprintk("NFS: acl reply: attrlen %u > page_len %zu\n",
- 					attrlen, page_len);
- 			return -EINVAL;
- 		}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0109-i2c-tegra-notify-transfer-complete-after-clearing-st.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0109-i2c-tegra-notify-transfer-complete-after-clearing-st.patch
deleted file mode 100644
index e6899f5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0109-i2c-tegra-notify-transfer-complete-after-clearing-st.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 0f8821cf8d7d8c94c8d29d8d32c02d90363ffe9b Mon Sep 17 00:00:00 2001
-From: Laxman Dewangan <ldewangan at nvidia.com>
-Date: Mon, 7 May 2012 12:16:19 +0530
-Subject: [PATCH 109/117] i2c: tegra: notify transfer-complete after clearing
- status.
-
-commit c889e91d2cc22123f20f40dde0c0a91856a20eea upstream.
-
-The notification of the transfer complete by calling complete()
-should be done after clearing all interrupt status.
-This avoids the race condition of misconfigure the i2c controller
-in multi-core environment.
-
-Signed-off-by: Laxman Dewangan <ldewangan at nvidia.com>
-Acked-by: Stephen Warren <swarren at wwwdotorg.org>
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/i2c/busses/i2c-tegra.c |   13 ++++++-------
- 1 file changed, 6 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c
-index 46b6500..3d7885a 100644
---- a/drivers/i2c/busses/i2c-tegra.c
-+++ b/drivers/i2c/busses/i2c-tegra.c
-@@ -401,8 +401,6 @@ static irqreturn_t tegra_i2c_isr(int irq, void *dev_id)
- 			disable_irq_nosync(i2c_dev->irq);
- 			i2c_dev->irq_disabled = 1;
- 		}
--
--		complete(&i2c_dev->msg_complete);
- 		goto err;
- 	}
- 
-@@ -411,7 +409,6 @@ static irqreturn_t tegra_i2c_isr(int irq, void *dev_id)
- 			i2c_dev->msg_err |= I2C_ERR_NO_ACK;
- 		if (status & I2C_INT_ARBITRATION_LOST)
- 			i2c_dev->msg_err |= I2C_ERR_ARBITRATION_LOST;
--		complete(&i2c_dev->msg_complete);
- 		goto err;
- 	}
- 
-@@ -429,14 +426,14 @@ static irqreturn_t tegra_i2c_isr(int irq, void *dev_id)
- 			tegra_i2c_mask_irq(i2c_dev, I2C_INT_TX_FIFO_DATA_REQ);
- 	}
- 
-+	i2c_writel(i2c_dev, status, I2C_INT_STATUS);
-+	if (i2c_dev->is_dvc)
-+		dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS);
-+
- 	if (status & I2C_INT_PACKET_XFER_COMPLETE) {
- 		BUG_ON(i2c_dev->msg_buf_remaining);
- 		complete(&i2c_dev->msg_complete);
- 	}
--
--	i2c_writel(i2c_dev, status, I2C_INT_STATUS);
--	if (i2c_dev->is_dvc)
--		dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS);
- 	return IRQ_HANDLED;
- err:
- 	/* An error occurred, mask all interrupts */
-@@ -446,6 +443,8 @@ err:
- 	i2c_writel(i2c_dev, status, I2C_INT_STATUS);
- 	if (i2c_dev->is_dvc)
- 		dvc_writel(i2c_dev, DVC_STATUS_I2C_DONE_INTR, DVC_STATUS);
-+
-+	complete(&i2c_dev->msg_complete);
- 	return IRQ_HANDLED;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0110-i2c-davinci-Free-requested-IRQ-in-remove.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0110-i2c-davinci-Free-requested-IRQ-in-remove.patch
deleted file mode 100644
index 7b921ac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0110-i2c-davinci-Free-requested-IRQ-in-remove.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 38de7136cb639352d20e39a90c41bb93f63a03e6 Mon Sep 17 00:00:00 2001
-From: Marcus Folkesson <marcus.folkesson at gmail.com>
-Date: Thu, 3 May 2012 15:56:36 +0200
-Subject: [PATCH 110/117] i2c: davinci: Free requested IRQ in remove
-
-commit 9868a060ccf769c08ec378a9829137e272e9a92c upstream.
-
-The freed IRQ is not necessary the one requested in probe.
-Even if it was, with two or more i2c-controllers it will fails anyway.
-
-Signed-off-by: Marcus Folkesson <marcus.folkesson at gmail.com>
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/i2c/busses/i2c-davinci.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c
-index a76d85f..79b4bcb 100644
---- a/drivers/i2c/busses/i2c-davinci.c
-+++ b/drivers/i2c/busses/i2c-davinci.c
-@@ -755,7 +755,7 @@ static int davinci_i2c_remove(struct platform_device *pdev)
- 	dev->clk = NULL;
- 
- 	davinci_i2c_write_reg(dev, DAVINCI_I2C_MDR_REG, 0);
--	free_irq(IRQ_I2C, dev);
-+	free_irq(dev->irq, dev);
- 	iounmap(dev->base);
- 	kfree(dev);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0111-x86-realmode-16-bit-real-mode-code-support-for-reloc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0111-x86-realmode-16-bit-real-mode-code-support-for-reloc.patch
deleted file mode 100644
index dfd1310..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0111-x86-realmode-16-bit-real-mode-code-support-for-reloc.patch
+++ /dev/null
@@ -1,1651 +0,0 @@
-From 873824542d50e967bda4a3526b4aceec80641c6d Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Tue, 8 May 2012 21:22:24 +0300
-Subject: [PATCH 111/117] x86, realmode: 16-bit real-mode code support for
- relocs tool
-
-commit 6520fe5564acf07ade7b18a1272db1184835c487 upstream.
-
-A new option is added to the relocs tool called '--realmode'.
-This option causes the generation of 16-bit segment relocations
-and 32-bit linear relocations for the real-mode code. When
-the real-mode code is moved to the low-memory during kernel
-initialization, these relocation entries can be used to
-relocate the code properly.
-
-In the assembly code 16-bit segment relocations must be relative
-to the 'real_mode_seg' absolute symbol. Linear relocations must be
-relative to a symbol prefixed with 'pa_'.
-
-16-bit segment relocation is used to load cs:ip in 16-bit code.
-Linear relocations are used in the 32-bit code for relocatable
-data references. They are declared in the linker script of the
-real-mode code.
-
-The relocs tool is moved to arch/x86/tools/relocs.c, and added new
-target archscripts that can be used to build scripts needed building
-an architecture.  be compiled before building the arch/x86 tree.
-
-[ hpa: accelerating this because it detects invalid absolute
-  relocations, a serious bug in binutils 2.22.52.0.x which currently
-  produces bad kernels. ]
-
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Link: http://lkml.kernel.org/r/1336501366-28617-2-git-send-email-jarkko.sakkinen@intel.com
-Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen at intel.com>
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Cc: <stable at vger.kernel.org>
-[bwh: Backported to 3.2:
- - Adjust context (no archheaders; no insn_sanity)
- - Expand put_unaligned_le32()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- Makefile                          |    9 +-
- arch/x86/Makefile                 |    3 +
- arch/x86/boot/compressed/Makefile |    9 +-
- arch/x86/boot/compressed/relocs.c |  680 -------------------------------
- arch/x86/tools/.gitignore         |    1 +
- arch/x86/tools/Makefile           |    3 +
- arch/x86/tools/relocs.c           |  799 +++++++++++++++++++++++++++++++++++++
- scripts/Makefile                  |    2 +
- 8 files changed, 818 insertions(+), 688 deletions(-)
- delete mode 100644 arch/x86/boot/compressed/relocs.c
- create mode 100644 arch/x86/tools/.gitignore
- create mode 100644 arch/x86/tools/relocs.c
-
-diff --git a/Makefile b/Makefile
-index add68f1..0226da5 100644
---- a/Makefile
-+++ b/Makefile
-@@ -442,7 +442,7 @@ asm-generic:
- 
- no-dot-config-targets := clean mrproper distclean \
- 			 cscope gtags TAGS tags help %docs check% coccicheck \
--			 include/linux/version.h headers_% \
-+			 include/linux/version.h headers_% archscripts \
- 			 kernelversion %src-pkg
- 
- config-targets := 0
-@@ -979,7 +979,7 @@ prepare1: prepare2 include/linux/version.h include/generated/utsrelease.h \
-                    include/config/auto.conf
- 	$(cmd_crmodverdir)
- 
--archprepare: prepare1 scripts_basic
-+archprepare: archscripts prepare1 scripts_basic
- 
- prepare0: archprepare FORCE
- 	$(Q)$(MAKE) $(build)=.
-@@ -1046,8 +1046,11 @@ hdr-inst := -rR -f $(srctree)/scripts/Makefile.headersinst obj
- # If we do an all arch process set dst to asm-$(hdr-arch)
- hdr-dst = $(if $(KBUILD_HEADERS), dst=include/asm-$(hdr-arch), dst=include/asm)
- 
-+PHONY += archscripts
-+archscripts:
-+
- PHONY += __headers
--__headers: include/linux/version.h scripts_basic asm-generic FORCE
-+__headers: include/linux/version.h scripts_basic asm-generic archscripts FORCE
- 	$(Q)$(MAKE) $(build)=scripts build_unifdef
- 
- PHONY += headers_install_all
-diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index b02e509..774fd16 100644
---- a/arch/x86/Makefile
-+++ b/arch/x86/Makefile
-@@ -117,6 +117,9 @@ KBUILD_CFLAGS += $(call cc-option,-mno-sse -mno-mmx -mno-sse2 -mno-3dnow,)
- KBUILD_CFLAGS += $(mflags-y)
- KBUILD_AFLAGS += $(mflags-y)
- 
-+archscripts:
-+	$(Q)$(MAKE) $(build)=arch/x86/tools relocs
-+
- ###
- # Kernel objects
- 
-diff --git a/arch/x86/boot/compressed/Makefile b/arch/x86/boot/compressed/Makefile
-index 09664ef..77453c6 100644
---- a/arch/x86/boot/compressed/Makefile
-+++ b/arch/x86/boot/compressed/Makefile
-@@ -31,13 +31,12 @@ OBJCOPYFLAGS_vmlinux.bin :=  -R .comment -S
- $(obj)/vmlinux.bin: vmlinux FORCE
- 	$(call if_changed,objcopy)
- 
-+targets += vmlinux.bin.all vmlinux.relocs
- 
--targets += vmlinux.bin.all vmlinux.relocs relocs
--hostprogs-$(CONFIG_X86_NEED_RELOCS) += relocs
--
-+CMD_RELOCS = arch/x86/tools/relocs
- quiet_cmd_relocs = RELOCS  $@
--      cmd_relocs = $(obj)/relocs $< > $@;$(obj)/relocs --abs-relocs $<
--$(obj)/vmlinux.relocs: vmlinux $(obj)/relocs FORCE
-+      cmd_relocs = $(CMD_RELOCS) $< > $@;$(CMD_RELOCS) --abs-relocs $<
-+$(obj)/vmlinux.relocs: vmlinux FORCE
- 	$(call if_changed,relocs)
- 
- vmlinux.bin.all-y := $(obj)/vmlinux.bin
-diff --git a/arch/x86/boot/compressed/relocs.c b/arch/x86/boot/compressed/relocs.c
-deleted file mode 100644
-index e77f4e4..0000000
---- a/arch/x86/boot/compressed/relocs.c
-+++ /dev/null
-@@ -1,680 +0,0 @@
--#include <stdio.h>
--#include <stdarg.h>
--#include <stdlib.h>
--#include <stdint.h>
--#include <string.h>
--#include <errno.h>
--#include <unistd.h>
--#include <elf.h>
--#include <byteswap.h>
--#define USE_BSD
--#include <endian.h>
--#include <regex.h>
--
--static void die(char *fmt, ...);
--
--#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
--static Elf32_Ehdr ehdr;
--static unsigned long reloc_count, reloc_idx;
--static unsigned long *relocs;
--
--struct section {
--	Elf32_Shdr     shdr;
--	struct section *link;
--	Elf32_Sym      *symtab;
--	Elf32_Rel      *reltab;
--	char           *strtab;
--};
--static struct section *secs;
--
--/*
-- * Following symbols have been audited. There values are constant and do
-- * not change if bzImage is loaded at a different physical address than
-- * the address for which it has been compiled. Don't warn user about
-- * absolute relocations present w.r.t these symbols.
-- */
--static const char abs_sym_regex[] =
--	"^(xen_irq_disable_direct_reloc$|"
--	"xen_save_fl_direct_reloc$|"
--	"VDSO|"
--	"__crc_)";
--static regex_t abs_sym_regex_c;
--static int is_abs_reloc(const char *sym_name)
--{
--	return !regexec(&abs_sym_regex_c, sym_name, 0, NULL, 0);
--}
--
--/*
-- * These symbols are known to be relative, even if the linker marks them
-- * as absolute (typically defined outside any section in the linker script.)
-- */
--static const char rel_sym_regex[] =
--	"^_end$";
--static regex_t rel_sym_regex_c;
--static int is_rel_reloc(const char *sym_name)
--{
--	return !regexec(&rel_sym_regex_c, sym_name, 0, NULL, 0);
--}
--
--static void regex_init(void)
--{
--        char errbuf[128];
--        int err;
--	
--        err = regcomp(&abs_sym_regex_c, abs_sym_regex,
--                      REG_EXTENDED|REG_NOSUB);
--        if (err) {
--                regerror(err, &abs_sym_regex_c, errbuf, sizeof errbuf);
--                die("%s", errbuf);
--        }
--
--        err = regcomp(&rel_sym_regex_c, rel_sym_regex,
--                      REG_EXTENDED|REG_NOSUB);
--        if (err) {
--                regerror(err, &rel_sym_regex_c, errbuf, sizeof errbuf);
--                die("%s", errbuf);
--        }
--}
--
--static void die(char *fmt, ...)
--{
--	va_list ap;
--	va_start(ap, fmt);
--	vfprintf(stderr, fmt, ap);
--	va_end(ap);
--	exit(1);
--}
--
--static const char *sym_type(unsigned type)
--{
--	static const char *type_name[] = {
--#define SYM_TYPE(X) [X] = #X
--		SYM_TYPE(STT_NOTYPE),
--		SYM_TYPE(STT_OBJECT),
--		SYM_TYPE(STT_FUNC),
--		SYM_TYPE(STT_SECTION),
--		SYM_TYPE(STT_FILE),
--		SYM_TYPE(STT_COMMON),
--		SYM_TYPE(STT_TLS),
--#undef SYM_TYPE
--	};
--	const char *name = "unknown sym type name";
--	if (type < ARRAY_SIZE(type_name)) {
--		name = type_name[type];
--	}
--	return name;
--}
--
--static const char *sym_bind(unsigned bind)
--{
--	static const char *bind_name[] = {
--#define SYM_BIND(X) [X] = #X
--		SYM_BIND(STB_LOCAL),
--		SYM_BIND(STB_GLOBAL),
--		SYM_BIND(STB_WEAK),
--#undef SYM_BIND
--	};
--	const char *name = "unknown sym bind name";
--	if (bind < ARRAY_SIZE(bind_name)) {
--		name = bind_name[bind];
--	}
--	return name;
--}
--
--static const char *sym_visibility(unsigned visibility)
--{
--	static const char *visibility_name[] = {
--#define SYM_VISIBILITY(X) [X] = #X
--		SYM_VISIBILITY(STV_DEFAULT),
--		SYM_VISIBILITY(STV_INTERNAL),
--		SYM_VISIBILITY(STV_HIDDEN),
--		SYM_VISIBILITY(STV_PROTECTED),
--#undef SYM_VISIBILITY
--	};
--	const char *name = "unknown sym visibility name";
--	if (visibility < ARRAY_SIZE(visibility_name)) {
--		name = visibility_name[visibility];
--	}
--	return name;
--}
--
--static const char *rel_type(unsigned type)
--{
--	static const char *type_name[] = {
--#define REL_TYPE(X) [X] = #X
--		REL_TYPE(R_386_NONE),
--		REL_TYPE(R_386_32),
--		REL_TYPE(R_386_PC32),
--		REL_TYPE(R_386_GOT32),
--		REL_TYPE(R_386_PLT32),
--		REL_TYPE(R_386_COPY),
--		REL_TYPE(R_386_GLOB_DAT),
--		REL_TYPE(R_386_JMP_SLOT),
--		REL_TYPE(R_386_RELATIVE),
--		REL_TYPE(R_386_GOTOFF),
--		REL_TYPE(R_386_GOTPC),
--#undef REL_TYPE
--	};
--	const char *name = "unknown type rel type name";
--	if (type < ARRAY_SIZE(type_name) && type_name[type]) {
--		name = type_name[type];
--	}
--	return name;
--}
--
--static const char *sec_name(unsigned shndx)
--{
--	const char *sec_strtab;
--	const char *name;
--	sec_strtab = secs[ehdr.e_shstrndx].strtab;
--	name = "<noname>";
--	if (shndx < ehdr.e_shnum) {
--		name = sec_strtab + secs[shndx].shdr.sh_name;
--	}
--	else if (shndx == SHN_ABS) {
--		name = "ABSOLUTE";
--	}
--	else if (shndx == SHN_COMMON) {
--		name = "COMMON";
--	}
--	return name;
--}
--
--static const char *sym_name(const char *sym_strtab, Elf32_Sym *sym)
--{
--	const char *name;
--	name = "<noname>";
--	if (sym->st_name) {
--		name = sym_strtab + sym->st_name;
--	}
--	else {
--		name = sec_name(secs[sym->st_shndx].shdr.sh_name);
--	}
--	return name;
--}
--
--
--
--#if BYTE_ORDER == LITTLE_ENDIAN
--#define le16_to_cpu(val) (val)
--#define le32_to_cpu(val) (val)
--#endif
--#if BYTE_ORDER == BIG_ENDIAN
--#define le16_to_cpu(val) bswap_16(val)
--#define le32_to_cpu(val) bswap_32(val)
--#endif
--
--static uint16_t elf16_to_cpu(uint16_t val)
--{
--	return le16_to_cpu(val);
--}
--
--static uint32_t elf32_to_cpu(uint32_t val)
--{
--	return le32_to_cpu(val);
--}
--
--static void read_ehdr(FILE *fp)
--{
--	if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) {
--		die("Cannot read ELF header: %s\n",
--			strerror(errno));
--	}
--	if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) {
--		die("No ELF magic\n");
--	}
--	if (ehdr.e_ident[EI_CLASS] != ELFCLASS32) {
--		die("Not a 32 bit executable\n");
--	}
--	if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB) {
--		die("Not a LSB ELF executable\n");
--	}
--	if (ehdr.e_ident[EI_VERSION] != EV_CURRENT) {
--		die("Unknown ELF version\n");
--	}
--	/* Convert the fields to native endian */
--	ehdr.e_type      = elf16_to_cpu(ehdr.e_type);
--	ehdr.e_machine   = elf16_to_cpu(ehdr.e_machine);
--	ehdr.e_version   = elf32_to_cpu(ehdr.e_version);
--	ehdr.e_entry     = elf32_to_cpu(ehdr.e_entry);
--	ehdr.e_phoff     = elf32_to_cpu(ehdr.e_phoff);
--	ehdr.e_shoff     = elf32_to_cpu(ehdr.e_shoff);
--	ehdr.e_flags     = elf32_to_cpu(ehdr.e_flags);
--	ehdr.e_ehsize    = elf16_to_cpu(ehdr.e_ehsize);
--	ehdr.e_phentsize = elf16_to_cpu(ehdr.e_phentsize);
--	ehdr.e_phnum     = elf16_to_cpu(ehdr.e_phnum);
--	ehdr.e_shentsize = elf16_to_cpu(ehdr.e_shentsize);
--	ehdr.e_shnum     = elf16_to_cpu(ehdr.e_shnum);
--	ehdr.e_shstrndx  = elf16_to_cpu(ehdr.e_shstrndx);
--
--	if ((ehdr.e_type != ET_EXEC) && (ehdr.e_type != ET_DYN)) {
--		die("Unsupported ELF header type\n");
--	}
--	if (ehdr.e_machine != EM_386) {
--		die("Not for x86\n");
--	}
--	if (ehdr.e_version != EV_CURRENT) {
--		die("Unknown ELF version\n");
--	}
--	if (ehdr.e_ehsize != sizeof(Elf32_Ehdr)) {
--		die("Bad Elf header size\n");
--	}
--	if (ehdr.e_phentsize != sizeof(Elf32_Phdr)) {
--		die("Bad program header entry\n");
--	}
--	if (ehdr.e_shentsize != sizeof(Elf32_Shdr)) {
--		die("Bad section header entry\n");
--	}
--	if (ehdr.e_shstrndx >= ehdr.e_shnum) {
--		die("String table index out of bounds\n");
--	}
--}
--
--static void read_shdrs(FILE *fp)
--{
--	int i;
--	Elf32_Shdr shdr;
--
--	secs = calloc(ehdr.e_shnum, sizeof(struct section));
--	if (!secs) {
--		die("Unable to allocate %d section headers\n",
--		    ehdr.e_shnum);
--	}
--	if (fseek(fp, ehdr.e_shoff, SEEK_SET) < 0) {
--		die("Seek to %d failed: %s\n",
--			ehdr.e_shoff, strerror(errno));
--	}
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		struct section *sec = &secs[i];
--		if (fread(&shdr, sizeof shdr, 1, fp) != 1)
--			die("Cannot read ELF section headers %d/%d: %s\n",
--			    i, ehdr.e_shnum, strerror(errno));
--		sec->shdr.sh_name      = elf32_to_cpu(shdr.sh_name);
--		sec->shdr.sh_type      = elf32_to_cpu(shdr.sh_type);
--		sec->shdr.sh_flags     = elf32_to_cpu(shdr.sh_flags);
--		sec->shdr.sh_addr      = elf32_to_cpu(shdr.sh_addr);
--		sec->shdr.sh_offset    = elf32_to_cpu(shdr.sh_offset);
--		sec->shdr.sh_size      = elf32_to_cpu(shdr.sh_size);
--		sec->shdr.sh_link      = elf32_to_cpu(shdr.sh_link);
--		sec->shdr.sh_info      = elf32_to_cpu(shdr.sh_info);
--		sec->shdr.sh_addralign = elf32_to_cpu(shdr.sh_addralign);
--		sec->shdr.sh_entsize   = elf32_to_cpu(shdr.sh_entsize);
--		if (sec->shdr.sh_link < ehdr.e_shnum)
--			sec->link = &secs[sec->shdr.sh_link];
--	}
--
--}
--
--static void read_strtabs(FILE *fp)
--{
--	int i;
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		struct section *sec = &secs[i];
--		if (sec->shdr.sh_type != SHT_STRTAB) {
--			continue;
--		}
--		sec->strtab = malloc(sec->shdr.sh_size);
--		if (!sec->strtab) {
--			die("malloc of %d bytes for strtab failed\n",
--				sec->shdr.sh_size);
--		}
--		if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) {
--			die("Seek to %d failed: %s\n",
--				sec->shdr.sh_offset, strerror(errno));
--		}
--		if (fread(sec->strtab, 1, sec->shdr.sh_size, fp)
--		    != sec->shdr.sh_size) {
--			die("Cannot read symbol table: %s\n",
--				strerror(errno));
--		}
--	}
--}
--
--static void read_symtabs(FILE *fp)
--{
--	int i,j;
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		struct section *sec = &secs[i];
--		if (sec->shdr.sh_type != SHT_SYMTAB) {
--			continue;
--		}
--		sec->symtab = malloc(sec->shdr.sh_size);
--		if (!sec->symtab) {
--			die("malloc of %d bytes for symtab failed\n",
--				sec->shdr.sh_size);
--		}
--		if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) {
--			die("Seek to %d failed: %s\n",
--				sec->shdr.sh_offset, strerror(errno));
--		}
--		if (fread(sec->symtab, 1, sec->shdr.sh_size, fp)
--		    != sec->shdr.sh_size) {
--			die("Cannot read symbol table: %s\n",
--				strerror(errno));
--		}
--		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) {
--			Elf32_Sym *sym = &sec->symtab[j];
--			sym->st_name  = elf32_to_cpu(sym->st_name);
--			sym->st_value = elf32_to_cpu(sym->st_value);
--			sym->st_size  = elf32_to_cpu(sym->st_size);
--			sym->st_shndx = elf16_to_cpu(sym->st_shndx);
--		}
--	}
--}
--
--
--static void read_relocs(FILE *fp)
--{
--	int i,j;
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		struct section *sec = &secs[i];
--		if (sec->shdr.sh_type != SHT_REL) {
--			continue;
--		}
--		sec->reltab = malloc(sec->shdr.sh_size);
--		if (!sec->reltab) {
--			die("malloc of %d bytes for relocs failed\n",
--				sec->shdr.sh_size);
--		}
--		if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) {
--			die("Seek to %d failed: %s\n",
--				sec->shdr.sh_offset, strerror(errno));
--		}
--		if (fread(sec->reltab, 1, sec->shdr.sh_size, fp)
--		    != sec->shdr.sh_size) {
--			die("Cannot read symbol table: %s\n",
--				strerror(errno));
--		}
--		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
--			Elf32_Rel *rel = &sec->reltab[j];
--			rel->r_offset = elf32_to_cpu(rel->r_offset);
--			rel->r_info   = elf32_to_cpu(rel->r_info);
--		}
--	}
--}
--
--
--static void print_absolute_symbols(void)
--{
--	int i;
--	printf("Absolute symbols\n");
--	printf(" Num:    Value Size  Type       Bind        Visibility  Name\n");
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		struct section *sec = &secs[i];
--		char *sym_strtab;
--		int j;
--
--		if (sec->shdr.sh_type != SHT_SYMTAB) {
--			continue;
--		}
--		sym_strtab = sec->link->strtab;
--		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) {
--			Elf32_Sym *sym;
--			const char *name;
--			sym = &sec->symtab[j];
--			name = sym_name(sym_strtab, sym);
--			if (sym->st_shndx != SHN_ABS) {
--				continue;
--			}
--			printf("%5d %08x %5d %10s %10s %12s %s\n",
--				j, sym->st_value, sym->st_size,
--				sym_type(ELF32_ST_TYPE(sym->st_info)),
--				sym_bind(ELF32_ST_BIND(sym->st_info)),
--				sym_visibility(ELF32_ST_VISIBILITY(sym->st_other)),
--				name);
--		}
--	}
--	printf("\n");
--}
--
--static void print_absolute_relocs(void)
--{
--	int i, printed = 0;
--
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		struct section *sec = &secs[i];
--		struct section *sec_applies, *sec_symtab;
--		char *sym_strtab;
--		Elf32_Sym *sh_symtab;
--		int j;
--		if (sec->shdr.sh_type != SHT_REL) {
--			continue;
--		}
--		sec_symtab  = sec->link;
--		sec_applies = &secs[sec->shdr.sh_info];
--		if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
--			continue;
--		}
--		sh_symtab  = sec_symtab->symtab;
--		sym_strtab = sec_symtab->link->strtab;
--		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
--			Elf32_Rel *rel;
--			Elf32_Sym *sym;
--			const char *name;
--			rel = &sec->reltab[j];
--			sym = &sh_symtab[ELF32_R_SYM(rel->r_info)];
--			name = sym_name(sym_strtab, sym);
--			if (sym->st_shndx != SHN_ABS) {
--				continue;
--			}
--
--			/* Absolute symbols are not relocated if bzImage is
--			 * loaded at a non-compiled address. Display a warning
--			 * to user at compile time about the absolute
--			 * relocations present.
--			 *
--			 * User need to audit the code to make sure
--			 * some symbols which should have been section
--			 * relative have not become absolute because of some
--			 * linker optimization or wrong programming usage.
--			 *
--			 * Before warning check if this absolute symbol
--			 * relocation is harmless.
--			 */
--			if (is_abs_reloc(name) || is_rel_reloc(name))
--				continue;
--
--			if (!printed) {
--				printf("WARNING: Absolute relocations"
--					" present\n");
--				printf("Offset     Info     Type     Sym.Value "
--					"Sym.Name\n");
--				printed = 1;
--			}
--
--			printf("%08x %08x %10s %08x  %s\n",
--				rel->r_offset,
--				rel->r_info,
--				rel_type(ELF32_R_TYPE(rel->r_info)),
--				sym->st_value,
--				name);
--		}
--	}
--
--	if (printed)
--		printf("\n");
--}
--
--static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym))
--{
--	int i;
--	/* Walk through the relocations */
--	for (i = 0; i < ehdr.e_shnum; i++) {
--		char *sym_strtab;
--		Elf32_Sym *sh_symtab;
--		struct section *sec_applies, *sec_symtab;
--		int j;
--		struct section *sec = &secs[i];
--
--		if (sec->shdr.sh_type != SHT_REL) {
--			continue;
--		}
--		sec_symtab  = sec->link;
--		sec_applies = &secs[sec->shdr.sh_info];
--		if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
--			continue;
--		}
--		sh_symtab = sec_symtab->symtab;
--		sym_strtab = sec_symtab->link->strtab;
--		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
--			Elf32_Rel *rel;
--			Elf32_Sym *sym;
--			unsigned r_type;
--			rel = &sec->reltab[j];
--			sym = &sh_symtab[ELF32_R_SYM(rel->r_info)];
--			r_type = ELF32_R_TYPE(rel->r_info);
--			/* Don't visit relocations to absolute symbols */
--			if (sym->st_shndx == SHN_ABS &&
--			    !is_rel_reloc(sym_name(sym_strtab, sym))) {
--				continue;
--			}
--			switch (r_type) {
--			case R_386_NONE:
--			case R_386_PC32:
--				/*
--				 * NONE can be ignored and and PC relative
--				 * relocations don't need to be adjusted.
--				 */
--				break;
--			case R_386_32:
--				/* Visit relocations that need to be adjusted */
--				visit(rel, sym);
--				break;
--			default:
--				die("Unsupported relocation type: %s (%d)\n",
--				    rel_type(r_type), r_type);
--				break;
--			}
--		}
--	}
--}
--
--static void count_reloc(Elf32_Rel *rel, Elf32_Sym *sym)
--{
--	reloc_count += 1;
--}
--
--static void collect_reloc(Elf32_Rel *rel, Elf32_Sym *sym)
--{
--	/* Remember the address that needs to be adjusted. */
--	relocs[reloc_idx++] = rel->r_offset;
--}
--
--static int cmp_relocs(const void *va, const void *vb)
--{
--	const unsigned long *a, *b;
--	a = va; b = vb;
--	return (*a == *b)? 0 : (*a > *b)? 1 : -1;
--}
--
--static void emit_relocs(int as_text)
--{
--	int i;
--	/* Count how many relocations I have and allocate space for them. */
--	reloc_count = 0;
--	walk_relocs(count_reloc);
--	relocs = malloc(reloc_count * sizeof(relocs[0]));
--	if (!relocs) {
--		die("malloc of %d entries for relocs failed\n",
--			reloc_count);
--	}
--	/* Collect up the relocations */
--	reloc_idx = 0;
--	walk_relocs(collect_reloc);
--
--	/* Order the relocations for more efficient processing */
--	qsort(relocs, reloc_count, sizeof(relocs[0]), cmp_relocs);
--
--	/* Print the relocations */
--	if (as_text) {
--		/* Print the relocations in a form suitable that
--		 * gas will like.
--		 */
--		printf(".section \".data.reloc\",\"a\"\n");
--		printf(".balign 4\n");
--		for (i = 0; i < reloc_count; i++) {
--			printf("\t .long 0x%08lx\n", relocs[i]);
--		}
--		printf("\n");
--	}
--	else {
--		unsigned char buf[4];
--		/* Print a stop */
--		fwrite("\0\0\0\0", 4, 1, stdout);
--		/* Now print each relocation */
--		for (i = 0; i < reloc_count; i++) {
--			buf[0] = (relocs[i] >>  0) & 0xff;
--			buf[1] = (relocs[i] >>  8) & 0xff;
--			buf[2] = (relocs[i] >> 16) & 0xff;
--			buf[3] = (relocs[i] >> 24) & 0xff;
--			fwrite(buf, 4, 1, stdout);
--		}
--	}
--}
--
--static void usage(void)
--{
--	die("relocs [--abs-syms |--abs-relocs | --text] vmlinux\n");
--}
--
--int main(int argc, char **argv)
--{
--	int show_absolute_syms, show_absolute_relocs;
--	int as_text;
--	const char *fname;
--	FILE *fp;
--	int i;
--
--	regex_init();
--
--	show_absolute_syms = 0;
--	show_absolute_relocs = 0;
--	as_text = 0;
--	fname = NULL;
--	for (i = 1; i < argc; i++) {
--		char *arg = argv[i];
--		if (*arg == '-') {
--			if (strcmp(argv[1], "--abs-syms") == 0) {
--				show_absolute_syms = 1;
--				continue;
--			}
--
--			if (strcmp(argv[1], "--abs-relocs") == 0) {
--				show_absolute_relocs = 1;
--				continue;
--			}
--			else if (strcmp(argv[1], "--text") == 0) {
--				as_text = 1;
--				continue;
--			}
--		}
--		else if (!fname) {
--			fname = arg;
--			continue;
--		}
--		usage();
--	}
--	if (!fname) {
--		usage();
--	}
--	fp = fopen(fname, "r");
--	if (!fp) {
--		die("Cannot open %s: %s\n",
--			fname, strerror(errno));
--	}
--	read_ehdr(fp);
--	read_shdrs(fp);
--	read_strtabs(fp);
--	read_symtabs(fp);
--	read_relocs(fp);
--	if (show_absolute_syms) {
--		print_absolute_symbols();
--		return 0;
--	}
--	if (show_absolute_relocs) {
--		print_absolute_relocs();
--		return 0;
--	}
--	emit_relocs(as_text);
--	return 0;
--}
-diff --git a/arch/x86/tools/.gitignore b/arch/x86/tools/.gitignore
-new file mode 100644
-index 0000000..be0ed06
---- /dev/null
-+++ b/arch/x86/tools/.gitignore
-@@ -0,0 +1 @@
-+relocs
-diff --git a/arch/x86/tools/Makefile b/arch/x86/tools/Makefile
-index f820826..162a34a 100644
---- a/arch/x86/tools/Makefile
-+++ b/arch/x86/tools/Makefile
-@@ -29,3 +29,6 @@ HOSTCFLAGS_test_get_len.o := -Wall -I$(objtree)/arch/x86/lib/ -I$(srctree)/arch/
- # Dependencies are also needed.
- $(obj)/test_get_len.o: $(srctree)/arch/x86/lib/insn.c $(srctree)/arch/x86/lib/inat.c $(srctree)/arch/x86/include/asm/inat_types.h $(srctree)/arch/x86/include/asm/inat.h $(srctree)/arch/x86/include/asm/insn.h $(objtree)/arch/x86/lib/inat-tables.c
- 
-+HOST_EXTRACFLAGS += -I$(srctree)/tools/include
-+hostprogs-y	+= relocs
-+relocs: $(obj)/relocs
-diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
-new file mode 100644
-index 0000000..2071bad
---- /dev/null
-+++ b/arch/x86/tools/relocs.c
-@@ -0,0 +1,799 @@
-+#include <stdio.h>
-+#include <stdarg.h>
-+#include <stdlib.h>
-+#include <stdint.h>
-+#include <string.h>
-+#include <errno.h>
-+#include <unistd.h>
-+#include <elf.h>
-+#include <byteswap.h>
-+#define USE_BSD
-+#include <endian.h>
-+#include <regex.h>
-+
-+static void die(char *fmt, ...);
-+
-+#define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
-+static Elf32_Ehdr ehdr;
-+static unsigned long reloc_count, reloc_idx;
-+static unsigned long *relocs;
-+static unsigned long reloc16_count, reloc16_idx;
-+static unsigned long *relocs16;
-+
-+struct section {
-+	Elf32_Shdr     shdr;
-+	struct section *link;
-+	Elf32_Sym      *symtab;
-+	Elf32_Rel      *reltab;
-+	char           *strtab;
-+};
-+static struct section *secs;
-+
-+enum symtype {
-+	S_ABS,
-+	S_REL,
-+	S_SEG,
-+	S_LIN,
-+	S_NSYMTYPES
-+};
-+
-+static const char * const sym_regex_kernel[S_NSYMTYPES] = {
-+/*
-+ * Following symbols have been audited. There values are constant and do
-+ * not change if bzImage is loaded at a different physical address than
-+ * the address for which it has been compiled. Don't warn user about
-+ * absolute relocations present w.r.t these symbols.
-+ */
-+	[S_ABS] =
-+	"^(xen_irq_disable_direct_reloc$|"
-+	"xen_save_fl_direct_reloc$|"
-+	"VDSO|"
-+	"__crc_)",
-+
-+/*
-+ * These symbols are known to be relative, even if the linker marks them
-+ * as absolute (typically defined outside any section in the linker script.)
-+ */
-+	[S_REL] =
-+	"^_end$",
-+};
-+
-+
-+static const char * const sym_regex_realmode[S_NSYMTYPES] = {
-+/*
-+ * These are 16-bit segment symbols when compiling 16-bit code.
-+ */
-+	[S_SEG] =
-+	"^real_mode_seg$",
-+
-+/*
-+ * These are offsets belonging to segments, as opposed to linear addresses,
-+ * when compiling 16-bit code.
-+ */
-+	[S_LIN] =
-+	"^pa_",
-+};
-+
-+static const char * const *sym_regex;
-+
-+static regex_t sym_regex_c[S_NSYMTYPES];
-+static int is_reloc(enum symtype type, const char *sym_name)
-+{
-+	return sym_regex[type] &&
-+		!regexec(&sym_regex_c[type], sym_name, 0, NULL, 0);
-+}
-+
-+static void regex_init(int use_real_mode)
-+{
-+        char errbuf[128];
-+        int err;
-+	int i;
-+
-+	if (use_real_mode)
-+		sym_regex = sym_regex_realmode;
-+	else
-+		sym_regex = sym_regex_kernel;
-+
-+	for (i = 0; i < S_NSYMTYPES; i++) {
-+		if (!sym_regex[i])
-+			continue;
-+
-+		err = regcomp(&sym_regex_c[i], sym_regex[i],
-+			      REG_EXTENDED|REG_NOSUB);
-+
-+		if (err) {
-+			regerror(err, &sym_regex_c[i], errbuf, sizeof errbuf);
-+			die("%s", errbuf);
-+		}
-+        }
-+}
-+
-+static void die(char *fmt, ...)
-+{
-+	va_list ap;
-+	va_start(ap, fmt);
-+	vfprintf(stderr, fmt, ap);
-+	va_end(ap);
-+	exit(1);
-+}
-+
-+static const char *sym_type(unsigned type)
-+{
-+	static const char *type_name[] = {
-+#define SYM_TYPE(X) [X] = #X
-+		SYM_TYPE(STT_NOTYPE),
-+		SYM_TYPE(STT_OBJECT),
-+		SYM_TYPE(STT_FUNC),
-+		SYM_TYPE(STT_SECTION),
-+		SYM_TYPE(STT_FILE),
-+		SYM_TYPE(STT_COMMON),
-+		SYM_TYPE(STT_TLS),
-+#undef SYM_TYPE
-+	};
-+	const char *name = "unknown sym type name";
-+	if (type < ARRAY_SIZE(type_name)) {
-+		name = type_name[type];
-+	}
-+	return name;
-+}
-+
-+static const char *sym_bind(unsigned bind)
-+{
-+	static const char *bind_name[] = {
-+#define SYM_BIND(X) [X] = #X
-+		SYM_BIND(STB_LOCAL),
-+		SYM_BIND(STB_GLOBAL),
-+		SYM_BIND(STB_WEAK),
-+#undef SYM_BIND
-+	};
-+	const char *name = "unknown sym bind name";
-+	if (bind < ARRAY_SIZE(bind_name)) {
-+		name = bind_name[bind];
-+	}
-+	return name;
-+}
-+
-+static const char *sym_visibility(unsigned visibility)
-+{
-+	static const char *visibility_name[] = {
-+#define SYM_VISIBILITY(X) [X] = #X
-+		SYM_VISIBILITY(STV_DEFAULT),
-+		SYM_VISIBILITY(STV_INTERNAL),
-+		SYM_VISIBILITY(STV_HIDDEN),
-+		SYM_VISIBILITY(STV_PROTECTED),
-+#undef SYM_VISIBILITY
-+	};
-+	const char *name = "unknown sym visibility name";
-+	if (visibility < ARRAY_SIZE(visibility_name)) {
-+		name = visibility_name[visibility];
-+	}
-+	return name;
-+}
-+
-+static const char *rel_type(unsigned type)
-+{
-+	static const char *type_name[] = {
-+#define REL_TYPE(X) [X] = #X
-+		REL_TYPE(R_386_NONE),
-+		REL_TYPE(R_386_32),
-+		REL_TYPE(R_386_PC32),
-+		REL_TYPE(R_386_GOT32),
-+		REL_TYPE(R_386_PLT32),
-+		REL_TYPE(R_386_COPY),
-+		REL_TYPE(R_386_GLOB_DAT),
-+		REL_TYPE(R_386_JMP_SLOT),
-+		REL_TYPE(R_386_RELATIVE),
-+		REL_TYPE(R_386_GOTOFF),
-+		REL_TYPE(R_386_GOTPC),
-+		REL_TYPE(R_386_8),
-+		REL_TYPE(R_386_PC8),
-+		REL_TYPE(R_386_16),
-+		REL_TYPE(R_386_PC16),
-+#undef REL_TYPE
-+	};
-+	const char *name = "unknown type rel type name";
-+	if (type < ARRAY_SIZE(type_name) && type_name[type]) {
-+		name = type_name[type];
-+	}
-+	return name;
-+}
-+
-+static const char *sec_name(unsigned shndx)
-+{
-+	const char *sec_strtab;
-+	const char *name;
-+	sec_strtab = secs[ehdr.e_shstrndx].strtab;
-+	name = "<noname>";
-+	if (shndx < ehdr.e_shnum) {
-+		name = sec_strtab + secs[shndx].shdr.sh_name;
-+	}
-+	else if (shndx == SHN_ABS) {
-+		name = "ABSOLUTE";
-+	}
-+	else if (shndx == SHN_COMMON) {
-+		name = "COMMON";
-+	}
-+	return name;
-+}
-+
-+static const char *sym_name(const char *sym_strtab, Elf32_Sym *sym)
-+{
-+	const char *name;
-+	name = "<noname>";
-+	if (sym->st_name) {
-+		name = sym_strtab + sym->st_name;
-+	}
-+	else {
-+		name = sec_name(sym->st_shndx);
-+	}
-+	return name;
-+}
-+
-+
-+
-+#if BYTE_ORDER == LITTLE_ENDIAN
-+#define le16_to_cpu(val) (val)
-+#define le32_to_cpu(val) (val)
-+#endif
-+#if BYTE_ORDER == BIG_ENDIAN
-+#define le16_to_cpu(val) bswap_16(val)
-+#define le32_to_cpu(val) bswap_32(val)
-+#endif
-+
-+static uint16_t elf16_to_cpu(uint16_t val)
-+{
-+	return le16_to_cpu(val);
-+}
-+
-+static uint32_t elf32_to_cpu(uint32_t val)
-+{
-+	return le32_to_cpu(val);
-+}
-+
-+static void read_ehdr(FILE *fp)
-+{
-+	if (fread(&ehdr, sizeof(ehdr), 1, fp) != 1) {
-+		die("Cannot read ELF header: %s\n",
-+			strerror(errno));
-+	}
-+	if (memcmp(ehdr.e_ident, ELFMAG, SELFMAG) != 0) {
-+		die("No ELF magic\n");
-+	}
-+	if (ehdr.e_ident[EI_CLASS] != ELFCLASS32) {
-+		die("Not a 32 bit executable\n");
-+	}
-+	if (ehdr.e_ident[EI_DATA] != ELFDATA2LSB) {
-+		die("Not a LSB ELF executable\n");
-+	}
-+	if (ehdr.e_ident[EI_VERSION] != EV_CURRENT) {
-+		die("Unknown ELF version\n");
-+	}
-+	/* Convert the fields to native endian */
-+	ehdr.e_type      = elf16_to_cpu(ehdr.e_type);
-+	ehdr.e_machine   = elf16_to_cpu(ehdr.e_machine);
-+	ehdr.e_version   = elf32_to_cpu(ehdr.e_version);
-+	ehdr.e_entry     = elf32_to_cpu(ehdr.e_entry);
-+	ehdr.e_phoff     = elf32_to_cpu(ehdr.e_phoff);
-+	ehdr.e_shoff     = elf32_to_cpu(ehdr.e_shoff);
-+	ehdr.e_flags     = elf32_to_cpu(ehdr.e_flags);
-+	ehdr.e_ehsize    = elf16_to_cpu(ehdr.e_ehsize);
-+	ehdr.e_phentsize = elf16_to_cpu(ehdr.e_phentsize);
-+	ehdr.e_phnum     = elf16_to_cpu(ehdr.e_phnum);
-+	ehdr.e_shentsize = elf16_to_cpu(ehdr.e_shentsize);
-+	ehdr.e_shnum     = elf16_to_cpu(ehdr.e_shnum);
-+	ehdr.e_shstrndx  = elf16_to_cpu(ehdr.e_shstrndx);
-+
-+	if ((ehdr.e_type != ET_EXEC) && (ehdr.e_type != ET_DYN)) {
-+		die("Unsupported ELF header type\n");
-+	}
-+	if (ehdr.e_machine != EM_386) {
-+		die("Not for x86\n");
-+	}
-+	if (ehdr.e_version != EV_CURRENT) {
-+		die("Unknown ELF version\n");
-+	}
-+	if (ehdr.e_ehsize != sizeof(Elf32_Ehdr)) {
-+		die("Bad Elf header size\n");
-+	}
-+	if (ehdr.e_phentsize != sizeof(Elf32_Phdr)) {
-+		die("Bad program header entry\n");
-+	}
-+	if (ehdr.e_shentsize != sizeof(Elf32_Shdr)) {
-+		die("Bad section header entry\n");
-+	}
-+	if (ehdr.e_shstrndx >= ehdr.e_shnum) {
-+		die("String table index out of bounds\n");
-+	}
-+}
-+
-+static void read_shdrs(FILE *fp)
-+{
-+	int i;
-+	Elf32_Shdr shdr;
-+
-+	secs = calloc(ehdr.e_shnum, sizeof(struct section));
-+	if (!secs) {
-+		die("Unable to allocate %d section headers\n",
-+		    ehdr.e_shnum);
-+	}
-+	if (fseek(fp, ehdr.e_shoff, SEEK_SET) < 0) {
-+		die("Seek to %d failed: %s\n",
-+			ehdr.e_shoff, strerror(errno));
-+	}
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		struct section *sec = &secs[i];
-+		if (fread(&shdr, sizeof shdr, 1, fp) != 1)
-+			die("Cannot read ELF section headers %d/%d: %s\n",
-+			    i, ehdr.e_shnum, strerror(errno));
-+		sec->shdr.sh_name      = elf32_to_cpu(shdr.sh_name);
-+		sec->shdr.sh_type      = elf32_to_cpu(shdr.sh_type);
-+		sec->shdr.sh_flags     = elf32_to_cpu(shdr.sh_flags);
-+		sec->shdr.sh_addr      = elf32_to_cpu(shdr.sh_addr);
-+		sec->shdr.sh_offset    = elf32_to_cpu(shdr.sh_offset);
-+		sec->shdr.sh_size      = elf32_to_cpu(shdr.sh_size);
-+		sec->shdr.sh_link      = elf32_to_cpu(shdr.sh_link);
-+		sec->shdr.sh_info      = elf32_to_cpu(shdr.sh_info);
-+		sec->shdr.sh_addralign = elf32_to_cpu(shdr.sh_addralign);
-+		sec->shdr.sh_entsize   = elf32_to_cpu(shdr.sh_entsize);
-+		if (sec->shdr.sh_link < ehdr.e_shnum)
-+			sec->link = &secs[sec->shdr.sh_link];
-+	}
-+
-+}
-+
-+static void read_strtabs(FILE *fp)
-+{
-+	int i;
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		struct section *sec = &secs[i];
-+		if (sec->shdr.sh_type != SHT_STRTAB) {
-+			continue;
-+		}
-+		sec->strtab = malloc(sec->shdr.sh_size);
-+		if (!sec->strtab) {
-+			die("malloc of %d bytes for strtab failed\n",
-+				sec->shdr.sh_size);
-+		}
-+		if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) {
-+			die("Seek to %d failed: %s\n",
-+				sec->shdr.sh_offset, strerror(errno));
-+		}
-+		if (fread(sec->strtab, 1, sec->shdr.sh_size, fp)
-+		    != sec->shdr.sh_size) {
-+			die("Cannot read symbol table: %s\n",
-+				strerror(errno));
-+		}
-+	}
-+}
-+
-+static void read_symtabs(FILE *fp)
-+{
-+	int i,j;
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		struct section *sec = &secs[i];
-+		if (sec->shdr.sh_type != SHT_SYMTAB) {
-+			continue;
-+		}
-+		sec->symtab = malloc(sec->shdr.sh_size);
-+		if (!sec->symtab) {
-+			die("malloc of %d bytes for symtab failed\n",
-+				sec->shdr.sh_size);
-+		}
-+		if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) {
-+			die("Seek to %d failed: %s\n",
-+				sec->shdr.sh_offset, strerror(errno));
-+		}
-+		if (fread(sec->symtab, 1, sec->shdr.sh_size, fp)
-+		    != sec->shdr.sh_size) {
-+			die("Cannot read symbol table: %s\n",
-+				strerror(errno));
-+		}
-+		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) {
-+			Elf32_Sym *sym = &sec->symtab[j];
-+			sym->st_name  = elf32_to_cpu(sym->st_name);
-+			sym->st_value = elf32_to_cpu(sym->st_value);
-+			sym->st_size  = elf32_to_cpu(sym->st_size);
-+			sym->st_shndx = elf16_to_cpu(sym->st_shndx);
-+		}
-+	}
-+}
-+
-+
-+static void read_relocs(FILE *fp)
-+{
-+	int i,j;
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		struct section *sec = &secs[i];
-+		if (sec->shdr.sh_type != SHT_REL) {
-+			continue;
-+		}
-+		sec->reltab = malloc(sec->shdr.sh_size);
-+		if (!sec->reltab) {
-+			die("malloc of %d bytes for relocs failed\n",
-+				sec->shdr.sh_size);
-+		}
-+		if (fseek(fp, sec->shdr.sh_offset, SEEK_SET) < 0) {
-+			die("Seek to %d failed: %s\n",
-+				sec->shdr.sh_offset, strerror(errno));
-+		}
-+		if (fread(sec->reltab, 1, sec->shdr.sh_size, fp)
-+		    != sec->shdr.sh_size) {
-+			die("Cannot read symbol table: %s\n",
-+				strerror(errno));
-+		}
-+		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
-+			Elf32_Rel *rel = &sec->reltab[j];
-+			rel->r_offset = elf32_to_cpu(rel->r_offset);
-+			rel->r_info   = elf32_to_cpu(rel->r_info);
-+		}
-+	}
-+}
-+
-+
-+static void print_absolute_symbols(void)
-+{
-+	int i;
-+	printf("Absolute symbols\n");
-+	printf(" Num:    Value Size  Type       Bind        Visibility  Name\n");
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		struct section *sec = &secs[i];
-+		char *sym_strtab;
-+		int j;
-+
-+		if (sec->shdr.sh_type != SHT_SYMTAB) {
-+			continue;
-+		}
-+		sym_strtab = sec->link->strtab;
-+		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Sym); j++) {
-+			Elf32_Sym *sym;
-+			const char *name;
-+			sym = &sec->symtab[j];
-+			name = sym_name(sym_strtab, sym);
-+			if (sym->st_shndx != SHN_ABS) {
-+				continue;
-+			}
-+			printf("%5d %08x %5d %10s %10s %12s %s\n",
-+				j, sym->st_value, sym->st_size,
-+				sym_type(ELF32_ST_TYPE(sym->st_info)),
-+				sym_bind(ELF32_ST_BIND(sym->st_info)),
-+				sym_visibility(ELF32_ST_VISIBILITY(sym->st_other)),
-+				name);
-+		}
-+	}
-+	printf("\n");
-+}
-+
-+static void print_absolute_relocs(void)
-+{
-+	int i, printed = 0;
-+
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		struct section *sec = &secs[i];
-+		struct section *sec_applies, *sec_symtab;
-+		char *sym_strtab;
-+		Elf32_Sym *sh_symtab;
-+		int j;
-+		if (sec->shdr.sh_type != SHT_REL) {
-+			continue;
-+		}
-+		sec_symtab  = sec->link;
-+		sec_applies = &secs[sec->shdr.sh_info];
-+		if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
-+			continue;
-+		}
-+		sh_symtab  = sec_symtab->symtab;
-+		sym_strtab = sec_symtab->link->strtab;
-+		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
-+			Elf32_Rel *rel;
-+			Elf32_Sym *sym;
-+			const char *name;
-+			rel = &sec->reltab[j];
-+			sym = &sh_symtab[ELF32_R_SYM(rel->r_info)];
-+			name = sym_name(sym_strtab, sym);
-+			if (sym->st_shndx != SHN_ABS) {
-+				continue;
-+			}
-+
-+			/* Absolute symbols are not relocated if bzImage is
-+			 * loaded at a non-compiled address. Display a warning
-+			 * to user at compile time about the absolute
-+			 * relocations present.
-+			 *
-+			 * User need to audit the code to make sure
-+			 * some symbols which should have been section
-+			 * relative have not become absolute because of some
-+			 * linker optimization or wrong programming usage.
-+			 *
-+			 * Before warning check if this absolute symbol
-+			 * relocation is harmless.
-+			 */
-+			if (is_reloc(S_ABS, name) || is_reloc(S_REL, name))
-+				continue;
-+
-+			if (!printed) {
-+				printf("WARNING: Absolute relocations"
-+					" present\n");
-+				printf("Offset     Info     Type     Sym.Value "
-+					"Sym.Name\n");
-+				printed = 1;
-+			}
-+
-+			printf("%08x %08x %10s %08x  %s\n",
-+				rel->r_offset,
-+				rel->r_info,
-+				rel_type(ELF32_R_TYPE(rel->r_info)),
-+				sym->st_value,
-+				name);
-+		}
-+	}
-+
-+	if (printed)
-+		printf("\n");
-+}
-+
-+static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
-+			int use_real_mode)
-+{
-+	int i;
-+	/* Walk through the relocations */
-+	for (i = 0; i < ehdr.e_shnum; i++) {
-+		char *sym_strtab;
-+		Elf32_Sym *sh_symtab;
-+		struct section *sec_applies, *sec_symtab;
-+		int j;
-+		struct section *sec = &secs[i];
-+
-+		if (sec->shdr.sh_type != SHT_REL) {
-+			continue;
-+		}
-+		sec_symtab  = sec->link;
-+		sec_applies = &secs[sec->shdr.sh_info];
-+		if (!(sec_applies->shdr.sh_flags & SHF_ALLOC)) {
-+			continue;
-+		}
-+		sh_symtab = sec_symtab->symtab;
-+		sym_strtab = sec_symtab->link->strtab;
-+		for (j = 0; j < sec->shdr.sh_size/sizeof(Elf32_Rel); j++) {
-+			Elf32_Rel *rel;
-+			Elf32_Sym *sym;
-+			unsigned r_type;
-+			const char *symname;
-+			rel = &sec->reltab[j];
-+			sym = &sh_symtab[ELF32_R_SYM(rel->r_info)];
-+			r_type = ELF32_R_TYPE(rel->r_info);
-+
-+			switch (r_type) {
-+			case R_386_NONE:
-+			case R_386_PC32:
-+			case R_386_PC16:
-+			case R_386_PC8:
-+				/*
-+				 * NONE can be ignored and and PC relative
-+				 * relocations don't need to be adjusted.
-+				 */
-+				break;
-+
-+			case R_386_16:
-+				symname = sym_name(sym_strtab, sym);
-+				if (!use_real_mode)
-+					goto bad;
-+				if (sym->st_shndx == SHN_ABS) {
-+					if (is_reloc(S_ABS, symname))
-+						break;
-+					else if (!is_reloc(S_SEG, symname))
-+						goto bad;
-+				} else {
-+					if (is_reloc(S_LIN, symname))
-+						goto bad;
-+					else
-+						break;
-+				}
-+				visit(rel, sym);
-+				break;
-+
-+			case R_386_32:
-+				symname = sym_name(sym_strtab, sym);
-+				if (sym->st_shndx == SHN_ABS) {
-+					if (is_reloc(S_ABS, symname))
-+						break;
-+					else if (!is_reloc(S_REL, symname))
-+						goto bad;
-+				} else {
-+					if (use_real_mode &&
-+					    !is_reloc(S_LIN, symname))
-+						break;
-+				}
-+				visit(rel, sym);
-+				break;
-+			default:
-+				die("Unsupported relocation type: %s (%d)\n",
-+				    rel_type(r_type), r_type);
-+				break;
-+			bad:
-+				symname = sym_name(sym_strtab, sym);
-+				die("Invalid %s relocation: %s\n",
-+				    rel_type(r_type), symname);
-+			}
-+		}
-+	}
-+}
-+
-+static void count_reloc(Elf32_Rel *rel, Elf32_Sym *sym)
-+{
-+	if (ELF32_R_TYPE(rel->r_info) == R_386_16)
-+		reloc16_count++;
-+	else
-+		reloc_count++;
-+}
-+
-+static void collect_reloc(Elf32_Rel *rel, Elf32_Sym *sym)
-+{
-+	/* Remember the address that needs to be adjusted. */
-+	if (ELF32_R_TYPE(rel->r_info) == R_386_16)
-+		relocs16[reloc16_idx++] = rel->r_offset;
-+	else
-+		relocs[reloc_idx++] = rel->r_offset;
-+}
-+
-+static int cmp_relocs(const void *va, const void *vb)
-+{
-+	const unsigned long *a, *b;
-+	a = va; b = vb;
-+	return (*a == *b)? 0 : (*a > *b)? 1 : -1;
-+}
-+
-+static int write32(unsigned int v, FILE *f)
-+{
-+	unsigned char buf[4];
-+
-+	buf[0] = (v >>  0) & 0xff;
-+	buf[1] = (v >>  8) & 0xff;
-+	buf[2] = (v >> 16) & 0xff;
-+	buf[3] = (v >> 24) & 0xff;
-+	return fwrite(buf, 1, 4, f) == 4 ? 0 : -1;
-+}
-+
-+static void emit_relocs(int as_text, int use_real_mode)
-+{
-+	int i;
-+	/* Count how many relocations I have and allocate space for them. */
-+	reloc_count = 0;
-+	walk_relocs(count_reloc, use_real_mode);
-+	relocs = malloc(reloc_count * sizeof(relocs[0]));
-+	if (!relocs) {
-+		die("malloc of %d entries for relocs failed\n",
-+			reloc_count);
-+	}
-+
-+	relocs16 = malloc(reloc16_count * sizeof(relocs[0]));
-+	if (!relocs16) {
-+		die("malloc of %d entries for relocs16 failed\n",
-+			reloc16_count);
-+	}
-+	/* Collect up the relocations */
-+	reloc_idx = 0;
-+	walk_relocs(collect_reloc, use_real_mode);
-+
-+	if (reloc16_count && !use_real_mode)
-+		die("Segment relocations found but --realmode not specified\n");
-+
-+	/* Order the relocations for more efficient processing */
-+	qsort(relocs, reloc_count, sizeof(relocs[0]), cmp_relocs);
-+	qsort(relocs16, reloc16_count, sizeof(relocs16[0]), cmp_relocs);
-+
-+	/* Print the relocations */
-+	if (as_text) {
-+		/* Print the relocations in a form suitable that
-+		 * gas will like.
-+		 */
-+		printf(".section \".data.reloc\",\"a\"\n");
-+		printf(".balign 4\n");
-+		if (use_real_mode) {
-+			printf("\t.long %lu\n", reloc16_count);
-+			for (i = 0; i < reloc16_count; i++)
-+				printf("\t.long 0x%08lx\n", relocs16[i]);
-+			printf("\t.long %lu\n", reloc_count);
-+			for (i = 0; i < reloc_count; i++) {
-+				printf("\t.long 0x%08lx\n", relocs[i]);
-+			}
-+		} else {
-+			/* Print a stop */
-+			printf("\t.long 0x%08lx\n", (unsigned long)0);
-+			for (i = 0; i < reloc_count; i++) {
-+				printf("\t.long 0x%08lx\n", relocs[i]);
-+			}
-+		}
-+
-+		printf("\n");
-+	}
-+	else {
-+		if (use_real_mode) {
-+			write32(reloc16_count, stdout);
-+			for (i = 0; i < reloc16_count; i++)
-+				write32(relocs16[i], stdout);
-+			write32(reloc_count, stdout);
-+
-+			/* Now print each relocation */
-+			for (i = 0; i < reloc_count; i++)
-+				write32(relocs[i], stdout);
-+		} else {
-+			/* Print a stop */
-+			write32(0, stdout);
-+
-+			/* Now print each relocation */
-+			for (i = 0; i < reloc_count; i++) {
-+				write32(relocs[i], stdout);
-+			}
-+		}
-+	}
-+}
-+
-+static void usage(void)
-+{
-+	die("relocs [--abs-syms|--abs-relocs|--text|--realmode] vmlinux\n");
-+}
-+
-+int main(int argc, char **argv)
-+{
-+	int show_absolute_syms, show_absolute_relocs;
-+	int as_text, use_real_mode;
-+	const char *fname;
-+	FILE *fp;
-+	int i;
-+
-+	show_absolute_syms = 0;
-+	show_absolute_relocs = 0;
-+	as_text = 0;
-+	use_real_mode = 0;
-+	fname = NULL;
-+	for (i = 1; i < argc; i++) {
-+		char *arg = argv[i];
-+		if (*arg == '-') {
-+			if (strcmp(arg, "--abs-syms") == 0) {
-+				show_absolute_syms = 1;
-+				continue;
-+			}
-+			if (strcmp(arg, "--abs-relocs") == 0) {
-+				show_absolute_relocs = 1;
-+				continue;
-+			}
-+			if (strcmp(arg, "--text") == 0) {
-+				as_text = 1;
-+				continue;
-+			}
-+			if (strcmp(arg, "--realmode") == 0) {
-+				use_real_mode = 1;
-+				continue;
-+			}
-+		}
-+		else if (!fname) {
-+			fname = arg;
-+			continue;
-+		}
-+		usage();
-+	}
-+	if (!fname) {
-+		usage();
-+	}
-+	regex_init(use_real_mode);
-+	fp = fopen(fname, "r");
-+	if (!fp) {
-+		die("Cannot open %s: %s\n",
-+			fname, strerror(errno));
-+	}
-+	read_ehdr(fp);
-+	read_shdrs(fp);
-+	read_strtabs(fp);
-+	read_symtabs(fp);
-+	read_relocs(fp);
-+	if (show_absolute_syms) {
-+		print_absolute_symbols();
-+		return 0;
-+	}
-+	if (show_absolute_relocs) {
-+		print_absolute_relocs();
-+		return 0;
-+	}
-+	emit_relocs(as_text, use_real_mode);
-+	return 0;
-+}
-diff --git a/scripts/Makefile b/scripts/Makefile
-index df7678f..3626666 100644
---- a/scripts/Makefile
-+++ b/scripts/Makefile
-@@ -8,6 +8,8 @@
- # conmakehash:	 Create arrays for initializing the kernel console tables
- # docproc:       Used in Documentation/DocBook
- 
-+HOST_EXTRACFLAGS += -I$(srctree)/tools/include
-+
- hostprogs-$(CONFIG_KALLSYMS)     += kallsyms
- hostprogs-$(CONFIG_LOGO)         += pnmtologo
- hostprogs-$(CONFIG_VT)           += conmakehash
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0112-x86-relocs-Workaround-for-binutils-2.22.52.0.1-secti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0112-x86-relocs-Workaround-for-binutils-2.22.52.0.1-secti.patch
deleted file mode 100644
index 870616f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0112-x86-relocs-Workaround-for-binutils-2.22.52.0.1-secti.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 41c3afdbac5e0d6a1dd88fcffb21e0916a517409 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Fri, 18 May 2012 00:24:09 -0700
-Subject: [PATCH 112/117] x86, relocs: Workaround for binutils 2.22.52.0.1
- section bug
-
-commit a3e854d95a76862cd37937e0b0438f540536771a upstream.
-
-GNU ld 2.22.52.0.1 has a bug that it blindly changes symbols from
-section-relative to absolute if they are in a section of zero length.
-This turns the symbols __init_begin and __init_end into absolute
-symbols.  Let the relocs program know that those should be treated as
-relative symbols.
-
-Reported-by: Ingo Molnar <mingo at kernel.org>
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Cc: H.J. Lu <hjl.tools at gmail.com>
-Cc: Jarkko Sakkinen <jarkko.sakkinen at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/tools/relocs.c |    6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
-index 2071bad..c218b07 100644
---- a/arch/x86/tools/relocs.c
-+++ b/arch/x86/tools/relocs.c
-@@ -55,7 +55,11 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
-  * as absolute (typically defined outside any section in the linker script.)
-  */
- 	[S_REL] =
--	"^_end$",
-+	"^(__init_(begin|end)|"
-+	"__x86_cpu_dev_(start|end)|"
-+	"(__parainstructions|__alt_instructions)(|_end)|"
-+	"(__iommu_table|__apicdrivers|__smp_locks)(|_end)|"
-+	"_end)$"
- };
- 
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0113-x86-relocs-When-printing-an-error-say-relative-or-ab.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0113-x86-relocs-When-printing-an-error-say-relative-or-ab.patch
deleted file mode 100644
index 1908b5f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0113-x86-relocs-When-printing-an-error-say-relative-or-ab.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 4deb87f411769d6a601fa0994480b83e2b39e49c Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Fri, 18 May 2012 09:52:01 -0700
-Subject: [PATCH 113/117] x86, relocs: When printing an error, say relative or
- absolute
-
-commit 24ab82bd9bf18f3efc69a131d73577940941e1b7 upstream.
-
-When the relocs tool throws an error, let the error message say if it
-is an absolute or relative symbol.  This should make it a lot more
-clear what action the programmer needs to take and should help us find
-the reason if additional symbol bugs show up.
-
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/tools/relocs.c |   11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
-index c218b07..c075507 100644
---- a/arch/x86/tools/relocs.c
-+++ b/arch/x86/tools/relocs.c
-@@ -562,10 +562,14 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
- 			Elf32_Sym *sym;
- 			unsigned r_type;
- 			const char *symname;
-+			int shn_abs;
-+
- 			rel = &sec->reltab[j];
- 			sym = &sh_symtab[ELF32_R_SYM(rel->r_info)];
- 			r_type = ELF32_R_TYPE(rel->r_info);
- 
-+			shn_abs = sym->st_shndx == SHN_ABS;
-+
- 			switch (r_type) {
- 			case R_386_NONE:
- 			case R_386_PC32:
-@@ -581,7 +585,7 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
- 				symname = sym_name(sym_strtab, sym);
- 				if (!use_real_mode)
- 					goto bad;
--				if (sym->st_shndx == SHN_ABS) {
-+				if (shn_abs) {
- 					if (is_reloc(S_ABS, symname))
- 						break;
- 					else if (!is_reloc(S_SEG, symname))
-@@ -597,7 +601,7 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
- 
- 			case R_386_32:
- 				symname = sym_name(sym_strtab, sym);
--				if (sym->st_shndx == SHN_ABS) {
-+				if (shn_abs) {
- 					if (is_reloc(S_ABS, symname))
- 						break;
- 					else if (!is_reloc(S_REL, symname))
-@@ -615,7 +619,8 @@ static void walk_relocs(void (*visit)(Elf32_Rel *rel, Elf32_Sym *sym),
- 				break;
- 			bad:
- 				symname = sym_name(sym_strtab, sym);
--				die("Invalid %s relocation: %s\n",
-+				die("Invalid %s %s relocation: %s\n",
-+				    shn_abs ? "absolute" : "relative",
- 				    rel_type(r_type), symname);
- 			}
- 		}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0114-x86-relocs-Build-clean-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0114-x86-relocs-Build-clean-fix.patch
deleted file mode 100644
index e05d5e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0114-x86-relocs-Build-clean-fix.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From fcc41e2fb71499938dcbeef7614bb60e1d3be391 Mon Sep 17 00:00:00 2001
-From: Jarkko Sakkinen <jarkko.sakkinen at intel.com>
-Date: Mon, 21 May 2012 20:51:24 +0300
-Subject: [PATCH 114/117] x86, relocs: Build clean fix
-
-commit b2d668da9307c4c163dd603d2bb3cadb10f9fd37 upstream.
-
-relocs was not cleaned up when "make clean" is issued. This
-patch fixes the issue.
-
-Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen at intel.com>
-Link: http://lkml.kernel.org/r/1337622684-6834-1-git-send-email-jarkko.sakkinen@intel.com
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/Makefile |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/Makefile b/arch/x86/Makefile
-index 774fd16..03dbc7f5b 100644
---- a/arch/x86/Makefile
-+++ b/arch/x86/Makefile
-@@ -183,6 +183,7 @@ archclean:
- 	$(Q)rm -rf $(objtree)/arch/i386
- 	$(Q)rm -rf $(objtree)/arch/x86_64
- 	$(Q)$(MAKE) $(clean)=$(boot)
-+	$(Q)$(MAKE) $(clean)=arch/x86/tools
- 
- define archhelp
-   echo  '* bzImage      - Compressed kernel image (arch/x86/boot/bzImage)'
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0115-x86-32-relocs-Whitelist-more-symbols-for-ld-bug-work.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0115-x86-32-relocs-Whitelist-more-symbols-for-ld-bug-work.patch
deleted file mode 100644
index da90c19..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0115-x86-32-relocs-Whitelist-more-symbols-for-ld-bug-work.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 4cef8ea9c2bb186461b7f50c806d2e1ecfb81ceb Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at zytor.com>
-Date: Wed, 23 May 2012 14:02:34 -0700
-Subject: [PATCH 115/117] x86-32, relocs: Whitelist more symbols for ld bug
- workaround
-
-commit fd952815307f0f272bf49fd364a7fd2f9992bc42 upstream.
-
-As noted in checkin:
-
-a3e854d95 x86, relocs: Workaround for binutils 2.22.52.0.1 section bug
-
-ld version 2.22.52.0.[12] can incorrectly promote relative symbols to
-absolute, if the output section they appear in is otherwise empty.
-
-Since checkin:
-
-6520fe55 x86, realmode: 16-bit real-mode code support for relocs tool
-
-we actually check for this and error out rather than silently creating
-a kernel which will malfunction if relocated.
-
-Ingo found a configuration in which __start_builtin_fw triggered the
-warning.
-
-Go through the linker script sources and look for more symbols that
-could plausibly get bogusly promoted to absolute, and add them to the
-whitelist.
-
-In general, if the following error triggers:
-
-	Invalid absolute R_386_32 relocation: <symbol>
-
-... then we should verify that <symbol> is really meant to be
-relocated, and add it and any related symbols manually to the S_REL
-regexp.
-
-Please note that 6520fe55 does not introduce the error, only the check
-for the error -- without 6520fe55 this version of ld will simply
-produce a corrupt kernel if CONFIG_RELOCATABLE is set on x86-32.
-
-Reported-by: Ingo Molnar <mingo at kernel.org>
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/tools/relocs.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
-index c075507..eb1ad63 100644
---- a/arch/x86/tools/relocs.c
-+++ b/arch/x86/tools/relocs.c
-@@ -59,6 +59,17 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
- 	"__x86_cpu_dev_(start|end)|"
- 	"(__parainstructions|__alt_instructions)(|_end)|"
- 	"(__iommu_table|__apicdrivers|__smp_locks)(|_end)|"
-+	"__(start|end)_pci_.*|"
-+	"__(start|end)_builtin_fw|"
-+	"__(start|stop)___ksymtab(|_gpl|_unused|_unused_gpl|_gpl_future)|"
-+	"__(start|stop)___kcrctab(|_gpl|_unused|_unused_gpl|_gpl_future)|"
-+	"__(start|stop)___param|"
-+	"__(start|stop)___modver|"
-+	"__(start|stop)___bug_table|"
-+	"__tracedata_(start|end)|"
-+	"__(start|stop)_notes|"
-+	"__end_rodata|"
-+	"__initramfs_start|"
- 	"_end)$"
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0116-x86-relocs-Add-jiffies-and-jiffies_64-to-the-relativ.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0116-x86-relocs-Add-jiffies-and-jiffies_64-to-the-relativ.patch
deleted file mode 100644
index ad47cac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0116-x86-relocs-Add-jiffies-and-jiffies_64-to-the-relativ.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 31885c2e45d56acc14aff8d0fafe4b0bee3be940 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at zytor.com>
-Date: Thu, 24 May 2012 07:01:38 -0700
-Subject: [PATCH 116/117] x86, relocs: Add jiffies and jiffies_64 to the
- relative whitelist
-
-commit ea17e7414bc62e8d3bde8d08e3df1d921c518c17 upstream.
-
-The symbol jiffies is created in the linker script as an alias to
-jiffies_64.  Unfortunately this is done outside any section, and
-apparently GNU ld 2.21 doesn't carry the section with it, so we end up
-with an absolute symbol and therefore a broken kernel.
-
-Add jiffies and jiffies_64 to the whitelist.
-
-The most disturbing bit with this discovery is that it shows that we
-have had multiple linker bugs in this area crossing multiple
-generations, and have been silently building bad kernels for some time.
-
-Link: http://lkml.kernel.org/r/20120524171604.0d98284f3affc643e9714470@canb.auug.org.au
-Reported-by: Stephen Rothwell <sfr at canb.auug.org.au>
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/tools/relocs.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/x86/tools/relocs.c b/arch/x86/tools/relocs.c
-index eb1ad63..e529730 100644
---- a/arch/x86/tools/relocs.c
-+++ b/arch/x86/tools/relocs.c
-@@ -70,6 +70,7 @@ static const char * const sym_regex_kernel[S_NSYMTYPES] = {
- 	"__(start|stop)_notes|"
- 	"__end_rodata|"
- 	"__initramfs_start|"
-+	"(jiffies|jiffies_64)|"
- 	"_end)$"
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0117-Linux-3.2.19.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0117-Linux-3.2.19.patch
deleted file mode 100644
index e71638b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.19/0117-Linux-3.2.19.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 6ffcfc07eaa7389cee6c647a604b444e3b890a21 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Thu, 31 May 2012 00:44:12 +0100
-Subject: [PATCH 117/117] Linux 3.2.19
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 0226da5..c291184 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 18
-+SUBLEVEL = 19
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0001-mtdoops-fix-the-oops_page_used-array-size.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0001-mtdoops-fix-the-oops_page_used-array-size.patch
deleted file mode 100644
index ed10e3a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0001-mtdoops-fix-the-oops_page_used-array-size.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 8ca3e7c57df66813802542ce347e79ba5537f303 Mon Sep 17 00:00:00 2001
-From: Roman Tereshonkov <roman.tereshonkov at nokia.com>
-Date: Tue, 29 Nov 2011 12:49:18 +0200
-Subject: [PATCH 001/129] mtdoops: fix the oops_page_used array size
-
-commit 556f063580db2953a7e53cd46b47724246320f60 upstream.
-
-The array of unsigned long pointed by oops_page_used is allocated
-by vmalloc which requires the size to be in bytes.
-
-BITS_PER_LONG is equal to 32.
-If we want to allocate memory for 32 pages with one bit per page then
-32 / BITS_PER_LONG  is equal to 1 byte that is 8 bits.
-To fix it we need to multiply the result by sizeof(unsigned long) equal to 4.
-
-Signed-off-by: Roman Tereshonkov <roman.tereshonkov at nokia.com>
-Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/mtdoops.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c
-index 1e2fa62..0782b31 100644
---- a/drivers/mtd/mtdoops.c
-+++ b/drivers/mtd/mtdoops.c
-@@ -369,7 +369,7 @@ static void mtdoops_notify_add(struct mtd_info *mtd)
- 
- 	/* oops_page_used is a bit field */
- 	cxt->oops_page_used = vmalloc(DIV_ROUND_UP(mtdoops_pages,
--			BITS_PER_LONG));
-+			BITS_PER_LONG) * sizeof(unsigned long));
- 	if (!cxt->oops_page_used) {
- 		printk(KERN_ERR "mtdoops: could not allocate page array\n");
- 		return;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0002-mtd-mtdoops-skip-reading-initially-bad-blocks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0002-mtd-mtdoops-skip-reading-initially-bad-blocks.patch
deleted file mode 100644
index 3933c59..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0002-mtd-mtdoops-skip-reading-initially-bad-blocks.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From bfaedde2c4ae9dcab0aabf7dc7172999df5669ec Mon Sep 17 00:00:00 2001
-From: Roman Tereshonkov <roman.tereshonkov at nokia.com>
-Date: Fri, 2 Dec 2011 15:07:17 +0200
-Subject: [PATCH 002/129] mtd: mtdoops: skip reading initially bad blocks
-
-commit 3538c56329936c78f7d356889908790006d0124c upstream.
-
-Use block_isbad to check and skip the bad blocks reading.
-This will allow to get rid of the read errors if bad blocks
-are present initially.
-
-Signed-off-by: Roman Tereshonkov <roman.tereshonkov at nokia.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/mtdoops.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/mtd/mtdoops.c b/drivers/mtd/mtdoops.c
-index 0782b31..f3cdce9 100644
---- a/drivers/mtd/mtdoops.c
-+++ b/drivers/mtd/mtdoops.c
-@@ -253,6 +253,9 @@ static void find_next_position(struct mtdoops_context *cxt)
- 	size_t retlen;
- 
- 	for (page = 0; page < cxt->oops_pages; page++) {
-+		if (mtd->block_isbad &&
-+		    mtd->block_isbad(mtd, page * record_size))
-+			continue;
- 		/* Assume the page is used */
- 		mark_page_used(cxt, page);
- 		ret = mtd->read(mtd, page * record_size, MTDOOPS_HEADER_SIZE,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0003-mtd-mtd_blkdevs-don-t-increase-open-count-on-error-p.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0003-mtd-mtd_blkdevs-don-t-increase-open-count-on-error-p.patch
deleted file mode 100644
index 11ea583..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0003-mtd-mtd_blkdevs-don-t-increase-open-count-on-error-p.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 1e5cac540c54d687fea366251cc0ddf9266c0685 Mon Sep 17 00:00:00 2001
-From: Brian Norris <computersforpeace at gmail.com>
-Date: Mon, 7 Nov 2011 15:51:05 -0800
-Subject: [PATCH 003/129] mtd: mtd_blkdevs: don't increase 'open' count on
- error path
-
-commit 342ff28f5a2e5aa3236617bd2bddf6c749677ef2 upstream.
-
-Some error paths in mtd_blkdevs were fixed in the following commit:
-
-    commit 94735ec4044a6d318b83ad3c5794e931ed168d10
-    mtd: mtd_blkdevs: fix error path in blktrans_open
-
-But on these error paths, the block device's `dev->open' count is
-already incremented before we check for errors. This meant that, while
-the error path was handled correctly on the first time through
-blktrans_open(), the device is erroneously considered already open on
-the second time through.
-
-This problem can be seen, for instance, when a UBI volume is
-simultaneously mounted as a UBIFS partition and read through its
-corresponding gluebi mtdblockX device. This results in blktrans_open()
-passing its error checks (with `dev->open > 0') without actually having
-a handle on the device. Here's a summarized log of the actions and
-results with nandsim:
-
-    # modprobe nandsim
-    # modprobe mtdblock
-    # modprobe gluebi
-    # modprobe ubifs
-    # ubiattach /dev/ubi_ctrl -m 0
-    ...
-    # ubimkvol /dev/ubi0 -N test -s 16MiB
-    ...
-    # mount -t ubifs ubi0:test /mnt
-    # ls /dev/mtdblock*
-    /dev/mtdblock0  /dev/mtdblock1
-    # cat /dev/mtdblock1 > /dev/null
-    cat: can't open '/dev/mtdblock4': Device or resource busy
-    # cat /dev/mtdblock1 > /dev/null
-
-    CPU 0 Unable to handle kernel paging request at virtual address
-    fffffff0, epc == 8031536c, ra == 8031f280
-    Oops[#1]:
-    ...
-    Call Trace:
-    [<8031536c>] ubi_leb_read+0x14/0x164
-    [<8031f280>] gluebi_read+0xf0/0x148
-    [<802edba8>] mtdblock_readsect+0x64/0x198
-    [<802ecfe4>] mtd_blktrans_thread+0x330/0x3f4
-    [<8005be98>] kthread+0x88/0x90
-    [<8000bc04>] kernel_thread_helper+0x10/0x18
-
-Signed-off-by: Brian Norris <computersforpeace at gmail.com>
-Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/mtd_blkdevs.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/mtd_blkdevs.c b/drivers/mtd/mtd_blkdevs.c
-index ed8b5e7..424ca5f 100644
---- a/drivers/mtd/mtd_blkdevs.c
-+++ b/drivers/mtd/mtd_blkdevs.c
-@@ -215,7 +215,7 @@ static int blktrans_open(struct block_device *bdev, fmode_t mode)
- 
- 	mutex_lock(&dev->lock);
- 
--	if (dev->open++)
-+	if (dev->open)
- 		goto unlock;
- 
- 	kref_get(&dev->ref);
-@@ -235,6 +235,7 @@ static int blktrans_open(struct block_device *bdev, fmode_t mode)
- 		goto error_release;
- 
- unlock:
-+	dev->open++;
- 	mutex_unlock(&dev->lock);
- 	blktrans_dev_put(dev);
- 	return ret;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0004-mtd-tests-stresstest-bail-out-if-device-has-not-enou.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0004-mtd-tests-stresstest-bail-out-if-device-has-not-enou.patch
deleted file mode 100644
index 6a4a0e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0004-mtd-tests-stresstest-bail-out-if-device-has-not-enou.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 401f9918c9daf754c70eb65a895c8ef3bde5b441 Mon Sep 17 00:00:00 2001
-From: Wolfram Sang <w.sang at pengutronix.de>
-Date: Tue, 29 Nov 2011 15:34:08 +0100
-Subject: [PATCH 004/129] mtd: tests: stresstest: bail out if device has not
- enough eraseblocks
-
-commit 2f4478ccff7df845dc9c0f8996a96373122c4417 upstream.
-
-stresstest needs at least two eraseblocks. Bail out gracefully if that
-condition is not met. Fixes the following 'division by zero' OOPS:
-
-[  619.100000] mtd_stresstest: MTD device size 131072, eraseblock size 131072, page size 2048, count of eraseblocks 1, pages per eraseblock 64, OOB size 64
-[  619.120000] mtd_stresstest: scanning for bad eraseblocks
-[  619.120000] mtd_stresstest: scanned 1 eraseblocks, 0 are bad
-[  619.130000] mtd_stresstest: doing operations
-[  619.130000] mtd_stresstest: 0 operations done
-[  619.140000] Division by zero in kernel.
-...
-
-caused by
-
-        /* Read or write up 2 eraseblocks at a time - hence 'ebcnt - 1' */
-        eb %= (ebcnt - 1);
-
-Signed-off-by: Wolfram Sang <w.sang at pengutronix.de>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/tests/mtd_stresstest.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/mtd/tests/mtd_stresstest.c b/drivers/mtd/tests/mtd_stresstest.c
-index 52ffd91..811642f 100644
---- a/drivers/mtd/tests/mtd_stresstest.c
-+++ b/drivers/mtd/tests/mtd_stresstest.c
-@@ -284,6 +284,12 @@ static int __init mtd_stresstest_init(void)
- 	       (unsigned long long)mtd->size, mtd->erasesize,
- 	       pgsize, ebcnt, pgcnt, mtd->oobsize);
- 
-+	if (ebcnt < 2) {
-+		printk(PRINT_PREF "error: need at least 2 eraseblocks\n");
-+		err = -ENOSPC;
-+		goto out_put_mtd;
-+	}
-+
- 	/* Read or write up 2 eraseblocks at a time */
- 	bufsize = mtd->erasesize * 2;
- 
-@@ -322,6 +328,7 @@ out:
- 	kfree(bbt);
- 	vfree(writebuf);
- 	vfree(readbuf);
-+out_put_mtd:
- 	put_mtd_device(mtd);
- 	if (err)
- 		printk(PRINT_PREF "error %d occurred\n", err);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0005-drivers-rtc-interface.c-fix-alarm-rollover-when-day-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0005-drivers-rtc-interface.c-fix-alarm-rollover-when-day-.patch
deleted file mode 100644
index 26ba973..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0005-drivers-rtc-interface.c-fix-alarm-rollover-when-day-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 4795aa3e23be426bc3971ce821f37983dcee409f Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Tue, 10 Jan 2012 15:11:02 -0800
-Subject: [PATCH 005/129] drivers/rtc/interface.c: fix alarm rollover when day
- or month is out-of-range
-
-commit e74a8f2edb92cb690b467cea0ab652c509e9f624 upstream.
-
-Commit f44f7f96a20a ("RTC: Initialize kernel state from RTC") introduced a
-potential infinite loop.  If an alarm time contains a wildcard month and
-an invalid day (> 31), or a wildcard year and an invalid month (>= 12),
-the loop searching for the next matching date will never terminate.  Treat
-the invalid values as wildcards.
-
-Fixes <http://bugs.debian.org/646429>, <http://bugs.debian.org/653331>
-
-Reported-by: leo weppelman <leoweppelman at googlemail.com>
-Reported-by: "P. van Gaans" <mailme667 at yahoo.co.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Jonathan Nieder <jrnieder at gmail.com>
-Cc: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Cc: Marcelo Roberto Jimenez <mroberto at cpti.cetuc.puc-rio.br>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: John Stultz <john.stultz at linaro.org>
-Acked-by: Alessandro Zummo <a.zummo at towertech.it>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/rtc/interface.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/rtc/interface.c b/drivers/rtc/interface.c
-index 8e28625..8a1c031 100644
---- a/drivers/rtc/interface.c
-+++ b/drivers/rtc/interface.c
-@@ -228,11 +228,11 @@ int __rtc_read_alarm(struct rtc_device *rtc, struct rtc_wkalrm *alarm)
- 		alarm->time.tm_hour = now.tm_hour;
- 
- 	/* For simplicity, only support date rollover for now */
--	if (alarm->time.tm_mday == -1) {
-+	if (alarm->time.tm_mday < 1 || alarm->time.tm_mday > 31) {
- 		alarm->time.tm_mday = now.tm_mday;
- 		missing = day;
- 	}
--	if (alarm->time.tm_mon == -1) {
-+	if ((unsigned)alarm->time.tm_mon >= 12) {
- 		alarm->time.tm_mon = now.tm_mon;
- 		if (missing == none)
- 			missing = month;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0006-ext4-add-missing-ext4_resize_end-on-error-paths.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0006-ext4-add-missing-ext4_resize_end-on-error-paths.patch
deleted file mode 100644
index 31d7359..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0006-ext4-add-missing-ext4_resize_end-on-error-paths.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From e6f3a0306b95afbc5965b42a05d85c102401b48c Mon Sep 17 00:00:00 2001
-From: Djalal Harouni <tixxdz at opendz.org>
-Date: Wed, 4 Jan 2012 17:09:52 -0500
-Subject: [PATCH 006/129] ext4: add missing ext4_resize_end on error paths
-
-commit 014a1770371a028d22f364718c805f4216911ecd upstream.
-
-Online resize ioctls 'EXT4_IOC_GROUP_EXTEND' and 'EXT4_IOC_GROUP_ADD'
-call ext4_resize_begin() to check permissions and to set the
-EXT4_RESIZING bit lock, they do their work and they must finish with
-ext4_resize_end() which calls clear_bit_unlock() to unlock and to
-avoid -EBUSY errors for the next resize operations.
-
-This patch adds the missing ext4_resize_end() calls on error paths.
-
-Patch tested.
-
-Signed-off-by: Djalal Harouni <tixxdz at opendz.org>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/ext4/ioctl.c |   28 ++++++++++++++++++----------
- 1 file changed, 18 insertions(+), 10 deletions(-)
-
-diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
-index a567968..ab25f57 100644
---- a/fs/ext4/ioctl.c
-+++ b/fs/ext4/ioctl.c
-@@ -182,19 +182,22 @@ setversion_out:
- 		if (err)
- 			return err;
- 
--		if (get_user(n_blocks_count, (__u32 __user *)arg))
--			return -EFAULT;
-+		if (get_user(n_blocks_count, (__u32 __user *)arg)) {
-+			err = -EFAULT;
-+			goto group_extend_out;
-+		}
- 
- 		if (EXT4_HAS_RO_COMPAT_FEATURE(sb,
- 			       EXT4_FEATURE_RO_COMPAT_BIGALLOC)) {
- 			ext4_msg(sb, KERN_ERR,
- 				 "Online resizing not supported with bigalloc");
--			return -EOPNOTSUPP;
-+			err = -EOPNOTSUPP;
-+			goto group_extend_out;
- 		}
- 
- 		err = mnt_want_write(filp->f_path.mnt);
- 		if (err)
--			return err;
-+			goto group_extend_out;
- 
- 		err = ext4_group_extend(sb, EXT4_SB(sb)->s_es, n_blocks_count);
- 		if (EXT4_SB(sb)->s_journal) {
-@@ -204,9 +207,10 @@ setversion_out:
- 		}
- 		if (err == 0)
- 			err = err2;
-+
- 		mnt_drop_write(filp->f_path.mnt);
-+group_extend_out:
- 		ext4_resize_end(sb);
--
- 		return err;
- 	}
- 
-@@ -267,19 +271,22 @@ mext_out:
- 			return err;
- 
- 		if (copy_from_user(&input, (struct ext4_new_group_input __user *)arg,
--				sizeof(input)))
--			return -EFAULT;
-+				sizeof(input))) {
-+			err = -EFAULT;
-+			goto group_add_out;
-+		}
- 
- 		if (EXT4_HAS_RO_COMPAT_FEATURE(sb,
- 			       EXT4_FEATURE_RO_COMPAT_BIGALLOC)) {
- 			ext4_msg(sb, KERN_ERR,
- 				 "Online resizing not supported with bigalloc");
--			return -EOPNOTSUPP;
-+			err = -EOPNOTSUPP;
-+			goto group_add_out;
- 		}
- 
- 		err = mnt_want_write(filp->f_path.mnt);
- 		if (err)
--			return err;
-+			goto group_add_out;
- 
- 		err = ext4_group_add(sb, &input);
- 		if (EXT4_SB(sb)->s_journal) {
-@@ -289,9 +296,10 @@ mext_out:
- 		}
- 		if (err == 0)
- 			err = err2;
-+
- 		mnt_drop_write(filp->f_path.mnt);
-+group_add_out:
- 		ext4_resize_end(sb);
--
- 		return err;
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0007-ext4-fix-undefined-behavior-in-ext4_fill_flex_info.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0007-ext4-fix-undefined-behavior-in-ext4_fill_flex_info.patch
deleted file mode 100644
index 8d8449f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0007-ext4-fix-undefined-behavior-in-ext4_fill_flex_info.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 7105c77677c92d13510d38fd5dd085944464015e Mon Sep 17 00:00:00 2001
-From: Xi Wang <xi.wang at gmail.com>
-Date: Tue, 10 Jan 2012 11:51:10 -0500
-Subject: [PATCH 007/129] ext4: fix undefined behavior in
- ext4_fill_flex_info()
-
-commit d50f2ab6f050311dbf7b8f5501b25f0bf64a439b upstream.
-
-Commit 503358ae01b70ce6909d19dd01287093f6b6271c ("ext4: avoid divide by
-zero when trying to mount a corrupted file system") fixes CVE-2009-4307
-by performing a sanity check on s_log_groups_per_flex, since it can be
-set to a bogus value by an attacker.
-
-	sbi->s_log_groups_per_flex = sbi->s_es->s_log_groups_per_flex;
-	groups_per_flex = 1 << sbi->s_log_groups_per_flex;
-
-	if (groups_per_flex < 2) { ... }
-
-This patch fixes two potential issues in the previous commit.
-
-1) The sanity check might only work on architectures like PowerPC.
-On x86, 5 bits are used for the shifting amount.  That means, given a
-large s_log_groups_per_flex value like 36, groups_per_flex = 1 << 36
-is essentially 1 << 4 = 16, rather than 0.  This will bypass the check,
-leaving s_log_groups_per_flex and groups_per_flex inconsistent.
-
-2) The sanity check relies on undefined behavior, i.e., oversized shift.
-A standard-confirming C compiler could rewrite the check in unexpected
-ways.  Consider the following equivalent form, assuming groups_per_flex
-is unsigned for simplicity.
-
-	groups_per_flex = 1 << sbi->s_log_groups_per_flex;
-	if (groups_per_flex == 0 || groups_per_flex == 1) {
-
-We compile the code snippet using Clang 3.0 and GCC 4.6.  Clang will
-completely optimize away the check groups_per_flex == 0, leaving the
-patched code as vulnerable as the original.  GCC keeps the check, but
-there is no guarantee that future versions will do the same.
-
-Signed-off-by: Xi Wang <xi.wang at gmail.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/ext4/super.c |    7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index 3e1329e..9281dbe 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -2006,17 +2006,16 @@ static int ext4_fill_flex_info(struct super_block *sb)
- 	struct ext4_group_desc *gdp = NULL;
- 	ext4_group_t flex_group_count;
- 	ext4_group_t flex_group;
--	int groups_per_flex = 0;
-+	unsigned int groups_per_flex = 0;
- 	size_t size;
- 	int i;
- 
- 	sbi->s_log_groups_per_flex = sbi->s_es->s_log_groups_per_flex;
--	groups_per_flex = 1 << sbi->s_log_groups_per_flex;
--
--	if (groups_per_flex < 2) {
-+	if (sbi->s_log_groups_per_flex < 1 || sbi->s_log_groups_per_flex > 31) {
- 		sbi->s_log_groups_per_flex = 0;
- 		return 1;
- 	}
-+	groups_per_flex = 1 << sbi->s_log_groups_per_flex;
- 
- 	/* We allocate both existing and potentially added groups */
- 	flex_group_count = ((sbi->s_groups_count + groups_per_flex - 1) +
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0008-ALSA-snd-usb-us122l-Delete-calls-to-preempt_disable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0008-ALSA-snd-usb-us122l-Delete-calls-to-preempt_disable.patch
deleted file mode 100644
index bf1692b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0008-ALSA-snd-usb-us122l-Delete-calls-to-preempt_disable.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 14f05d5692c7431710f71ea914ad07dc0b60d2a2 Mon Sep 17 00:00:00 2001
-From: Karsten Wiese <fzu at wemgehoertderstaat.de>
-Date: Fri, 30 Dec 2011 01:42:01 +0100
-Subject: [PATCH 008/129] ALSA: snd-usb-us122l: Delete calls to
- preempt_disable
-
-commit d0f3a2eb9062560bebca8b923424f3ca02a331ba upstream.
-
-They are not needed here.
-
-Signed-off-by: Karsten Wiese <fzu at wemgehoertderstaat.de>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/usb/usx2y/usb_stream.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/sound/usb/usx2y/usb_stream.c b/sound/usb/usx2y/usb_stream.c
-index c400ade..1e7a47a 100644
---- a/sound/usb/usx2y/usb_stream.c
-+++ b/sound/usb/usx2y/usb_stream.c
-@@ -674,7 +674,7 @@ dotry:
- 		inurb->transfer_buffer_length =
- 			inurb->number_of_packets *
- 			inurb->iso_frame_desc[0].length;
--		preempt_disable();
-+
- 		if (u == 0) {
- 			int now;
- 			struct usb_device *dev = inurb->dev;
-@@ -686,19 +686,17 @@ dotry:
- 		}
- 		err = usb_submit_urb(inurb, GFP_ATOMIC);
- 		if (err < 0) {
--			preempt_enable();
- 			snd_printk(KERN_ERR"usb_submit_urb(sk->inurb[%i])"
- 				   " returned %i\n", u, err);
- 			return err;
- 		}
- 		err = usb_submit_urb(outurb, GFP_ATOMIC);
- 		if (err < 0) {
--			preempt_enable();
- 			snd_printk(KERN_ERR"usb_submit_urb(sk->outurb[%i])"
- 				   " returned %i\n", u, err);
- 			return err;
- 		}
--		preempt_enable();
-+
- 		if (inurb->start_frame != outurb->start_frame) {
- 			snd_printd(KERN_DEBUG
- 				   "u[%i] start_frames differ in:%u out:%u\n",
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0009-ALSA-HDA-Fix-master-control-for-Cirrus-Logic-421X.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0009-ALSA-HDA-Fix-master-control-for-Cirrus-Logic-421X.patch
deleted file mode 100644
index 17e9a30..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0009-ALSA-HDA-Fix-master-control-for-Cirrus-Logic-421X.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 78e0e9b19b4202874115f3a2745dad208dad51e2 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Mon, 2 Jan 2012 12:40:15 +0100
-Subject: [PATCH 009/129] ALSA: HDA: Fix master control for Cirrus Logic 421X
-
-commit 40d03e63e91af8ddccdfd5a536cc2a6e51433e1d upstream.
-
-The control name "HP/Speakers" is non-standard, and since there is
-only one DAC on this chip there is no need for a virtual master
-anyway.
-
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/patch_cirrus.c |   13 +------------
- 1 file changed, 1 insertion(+), 12 deletions(-)
-
-diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
-index 70a7abd..f55ceb6 100644
---- a/sound/pci/hda/patch_cirrus.c
-+++ b/sound/pci/hda/patch_cirrus.c
-@@ -1771,30 +1771,19 @@ static int build_cs421x_output(struct hda_codec *codec)
- 	struct auto_pin_cfg *cfg = &spec->autocfg;
- 	struct snd_kcontrol *kctl;
- 	int err;
--	char *name = "HP/Speakers";
-+	char *name = "Master";
- 
- 	fix_volume_caps(codec, dac);
--	if (!spec->vmaster_sw) {
--		err = add_vmaster(codec, dac);
--		if (err < 0)
--			return err;
--	}
- 
- 	err = add_mute(codec, name, 0,
- 			HDA_COMPOSE_AMP_VAL(dac, 3, 0, HDA_OUTPUT), 0, &kctl);
- 	if (err < 0)
- 		return err;
--	err = snd_ctl_add_slave(spec->vmaster_sw, kctl);
--	if (err < 0)
--		return err;
- 
- 	err = add_volume(codec, name, 0,
- 			HDA_COMPOSE_AMP_VAL(dac, 3, 0, HDA_OUTPUT), 0, &kctl);
- 	if (err < 0)
- 		return err;
--	err = snd_ctl_add_slave(spec->vmaster_vol, kctl);
--	if (err < 0)
--		return err;
- 
- 	if (cfg->speaker_outs) {
- 		err = snd_hda_ctl_add(codec, 0,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0010-ALSA-HDA-Fix-automute-for-Cirrus-Logic-421x.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0010-ALSA-HDA-Fix-automute-for-Cirrus-Logic-421x.patch
deleted file mode 100644
index 4d0d47a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0010-ALSA-HDA-Fix-automute-for-Cirrus-Logic-421x.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d16d6a4af51d31f0b7a1a0109c99fd926416cd1f Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Mon, 2 Jan 2012 12:40:16 +0100
-Subject: [PATCH 010/129] ALSA: HDA: Fix automute for Cirrus Logic 421x
-
-commit 78e2a928e377d5124932d4399c6c581908b027a0 upstream.
-
-There was a bug in the automute logic causing speakers not to
-mute when headphones were plugged in.
-
-Tested-by: Hsin-Yi Chen <hychen at canonical.com>
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/patch_cirrus.c |   14 ++++++--------
- 1 file changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
-index f55ceb6..5b0a9bb 100644
---- a/sound/pci/hda/patch_cirrus.c
-+++ b/sound/pci/hda/patch_cirrus.c
-@@ -920,16 +920,14 @@ static void cs_automute(struct hda_codec *codec)
- 
- 	/* mute speakers if spdif or hp jack is plugged in */
- 	for (i = 0; i < cfg->speaker_outs; i++) {
-+		int pin_ctl = hp_present ? 0 : PIN_OUT;
-+		/* detect on spdif is specific to CS421x */
-+		if (spdif_present && (spec->vendor_nid == CS421X_VENDOR_NID))
-+			pin_ctl = 0;
-+
- 		nid = cfg->speaker_pins[i];
- 		snd_hda_codec_write(codec, nid, 0,
--				    AC_VERB_SET_PIN_WIDGET_CONTROL,
--				    hp_present ? 0 : PIN_OUT);
--		/* detect on spdif is specific to CS421x */
--		if (spec->vendor_nid == CS421X_VENDOR_NID) {
--			snd_hda_codec_write(codec, nid, 0,
--					AC_VERB_SET_PIN_WIDGET_CONTROL,
--					spdif_present ? 0 : PIN_OUT);
--		}
-+				    AC_VERB_SET_PIN_WIDGET_CONTROL, pin_ctl);
- 	}
- 	if (spec->gpio_eapd_hp) {
- 		unsigned int gpio = hp_present ?
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0011-ALSA-ice1724-Check-for-ac97-to-avoid-kernel-oops.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0011-ALSA-ice1724-Check-for-ac97-to-avoid-kernel-oops.patch
deleted file mode 100644
index 4187528..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0011-ALSA-ice1724-Check-for-ac97-to-avoid-kernel-oops.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 97a18462c03b9c0c3e22aaec73045024f198aacc Mon Sep 17 00:00:00 2001
-From: Pavel Hofman <pavel.hofman at ivitera.com>
-Date: Thu, 5 Jan 2012 23:05:18 +0100
-Subject: [PATCH 011/129] ALSA: ice1724 - Check for ac97 to avoid kernel oops
-
-commit e7848163aa2a649d9065f230fadff80dc3519775 upstream.
-
-Cards with identical PCI ids but no AC97 config in EEPROM do not have
-the ac97 field initialized. We must check for this case to avoid kernel oops.
-
-Signed-off-by: Pavel Hofman <pavel.hofman at ivitera.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/ice1712/amp.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/ice1712/amp.c b/sound/pci/ice1712/amp.c
-index e328cfb..e525da2 100644
---- a/sound/pci/ice1712/amp.c
-+++ b/sound/pci/ice1712/amp.c
-@@ -68,8 +68,11 @@ static int __devinit snd_vt1724_amp_init(struct snd_ice1712 *ice)
- 
- static int __devinit snd_vt1724_amp_add_controls(struct snd_ice1712 *ice)
- {
--	/* we use pins 39 and 41 of the VT1616 for left and right read outputs */
--	snd_ac97_write_cache(ice->ac97, 0x5a, snd_ac97_read(ice->ac97, 0x5a) & ~0x8000);
-+	if (ice->ac97)
-+		/* we use pins 39 and 41 of the VT1616 for left and right
-+		read outputs */
-+		snd_ac97_write_cache(ice->ac97, 0x5a,
-+			snd_ac97_read(ice->ac97, 0x5a) & ~0x8000);
- 	return 0;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0012-ALSA-usb-audio-Avoid-flood-of-frame-active-debug-mes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0012-ALSA-usb-audio-Avoid-flood-of-frame-active-debug-mes.patch
deleted file mode 100644
index 1fe6016..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0012-ALSA-usb-audio-Avoid-flood-of-frame-active-debug-mes.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From fc0b965ed3b89f9f6cacff2dcd472f473b82ed99 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 9 Jan 2012 11:37:20 +0100
-Subject: [PATCH 012/129] ALSA: usb-audio - Avoid flood of frame-active debug
- messages
-
-commit 80c8a2a372599e604b04a9c568952fe39cd1851d upstream.
-
-With some buggy devices, the usb-audio driver may give "frame xxx active"
-kernel messages too often.  Better to keep it as debug-only using
-snd_printdd(), and also add the rate-limit for avoiding floods.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=738681
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/usb/endpoint.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/sound/usb/endpoint.c b/sound/usb/endpoint.c
-index 81c6ede..08dcce5 100644
---- a/sound/usb/endpoint.c
-+++ b/sound/usb/endpoint.c
-@@ -17,6 +17,7 @@
- 
- #include <linux/gfp.h>
- #include <linux/init.h>
-+#include <linux/ratelimit.h>
- #include <linux/usb.h>
- #include <linux/usb/audio.h>
- 
-@@ -458,8 +459,8 @@ static int retire_capture_urb(struct snd_usb_substream *subs,
- 
- 	for (i = 0; i < urb->number_of_packets; i++) {
- 		cp = (unsigned char *)urb->transfer_buffer + urb->iso_frame_desc[i].offset;
--		if (urb->iso_frame_desc[i].status) {
--			snd_printd(KERN_ERR "frame %d active: %d\n", i, urb->iso_frame_desc[i].status);
-+		if (urb->iso_frame_desc[i].status && printk_ratelimit()) {
-+			snd_printdd("frame %d active: %d\n", i, urb->iso_frame_desc[i].status);
- 			// continue;
- 		}
- 		bytes = urb->iso_frame_desc[i].actual_length;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0013-ALSA-hda-Use-auto-parser-for-HP-laptops-with-cx20459.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0013-ALSA-hda-Use-auto-parser-for-HP-laptops-with-cx20459.patch
deleted file mode 100644
index 5ab9509..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0013-ALSA-hda-Use-auto-parser-for-HP-laptops-with-cx20459.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 0f951c7e3066c834b47172ee36435129c7c1d978 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Tue, 10 Jan 2012 08:59:56 +0100
-Subject: [PATCH 013/129] ALSA: hda - Use auto-parser for HP laptops with
- cx20459 codec
-
-commit de4da59e480cdf1075b33dbaf8078fc87bc52241 upstream.
-
-These laptops can work well with the auto-parser and their BIOS setups,
-and in addition, the auto-parser fixes the problem with S3/S4 where
-the unsol event handling is killed after resume due to fallback to the
-single-cmd mode.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740115
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/patch_conexant.c |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
-index 0de2119..7072251 100644
---- a/sound/pci/hda/patch_conexant.c
-+++ b/sound/pci/hda/patch_conexant.c
-@@ -1120,8 +1120,6 @@ static const char * const cxt5045_models[CXT5045_MODELS] = {
- 
- static const struct snd_pci_quirk cxt5045_cfg_tbl[] = {
- 	SND_PCI_QUIRK(0x103c, 0x30d5, "HP 530", CXT5045_LAPTOP_HP530),
--	SND_PCI_QUIRK_MASK(0x103c, 0xff00, 0x3000, "HP DV Series",
--			   CXT5045_LAPTOP_HPSENSE),
- 	SND_PCI_QUIRK(0x1179, 0xff31, "Toshiba P105", CXT5045_LAPTOP_MICSENSE),
- 	SND_PCI_QUIRK(0x152d, 0x0753, "Benq R55E", CXT5045_BENQ),
- 	SND_PCI_QUIRK(0x1734, 0x10ad, "Fujitsu Si1520", CXT5045_LAPTOP_MICSENSE),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0014-ALSA-hda-Return-the-error-from-get_wcaps_type-for-in.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0014-ALSA-hda-Return-the-error-from-get_wcaps_type-for-in.patch
deleted file mode 100644
index 5278905..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0014-ALSA-hda-Return-the-error-from-get_wcaps_type-for-in.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 244e54a801fd96fbe05447599832c9eb110debeb Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Tue, 10 Jan 2012 12:41:22 +0100
-Subject: [PATCH 014/129] ALSA: hda - Return the error from get_wcaps_type()
- for invalid NIDs
-
-commit 3a90274de3548ebb2aabfbf488cea8e275a73dc6 upstream.
-
-When an invalid NID is given, get_wcaps() returns zero as the error,
-but get_wcaps_type() takes it as the normal value and returns a bogus
-AC_WID_AUD_OUT value.  This confuses the parser.
-
-With this patch, get_wcaps_type() returns -1 when value 0 is given,
-i.e. an invalid NID is passed to get_wcaps().
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740118
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/hda_local.h |    7 ++++++-
- sound/pci/hda/hda_proc.c  |    2 ++
- 2 files changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
-index 618ddad..368f0c5 100644
---- a/sound/pci/hda/hda_local.h
-+++ b/sound/pci/hda/hda_local.h
-@@ -487,7 +487,12 @@ static inline u32 get_wcaps(struct hda_codec *codec, hda_nid_t nid)
- }
- 
- /* get the widget type from widget capability bits */
--#define get_wcaps_type(wcaps) (((wcaps) & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT)
-+static inline int get_wcaps_type(unsigned int wcaps)
-+{
-+	if (!wcaps)
-+		return -1; /* invalid type */
-+	return (wcaps & AC_WCAP_TYPE) >> AC_WCAP_TYPE_SHIFT;
-+}
- 
- static inline unsigned int get_wcaps_channels(u32 wcaps)
- {
-diff --git a/sound/pci/hda/hda_proc.c b/sound/pci/hda/hda_proc.c
-index 2c981b5..254ab52 100644
---- a/sound/pci/hda/hda_proc.c
-+++ b/sound/pci/hda/hda_proc.c
-@@ -54,6 +54,8 @@ static const char *get_wid_type_name(unsigned int wid_value)
- 		[AC_WID_BEEP] = "Beep Generator Widget",
- 		[AC_WID_VENDOR] = "Vendor Defined Widget",
- 	};
-+	if (wid_value == -1)
-+		return "UNKNOWN Widget";
- 	wid_value &= 0xf;
- 	if (names[wid_value])
- 		return names[wid_value];
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0015-ALSA-hda-Fix-the-detection-of-Loopback-Mixing-contro.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0015-ALSA-hda-Fix-the-detection-of-Loopback-Mixing-contro.patch
deleted file mode 100644
index 5284246..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0015-ALSA-hda-Fix-the-detection-of-Loopback-Mixing-contro.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From cf6e92f0c3bbf4cdbd62a8838b9b8f2153d9607a Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Tue, 10 Jan 2012 15:16:02 +0100
-Subject: [PATCH 015/129] ALSA: hda - Fix the detection of "Loopback Mixing"
- control for VIA codecs
-
-commit 4808d12d1dddb046ec86425e5f6766f02e950292 upstream.
-
-Currently the driver checks only the out_mix_path[] for the primary
-output route for judging whether to create the loopback-mixing control
-or not.  But, there are cases where aamix-routing is available only on
-headphone or speaker paths but not on the primary output path.  So, the
-driver ignores such cases inappropriately.
-
-This patch fixes the check of the loopback-mixing control by testing
-all mix-routing paths.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/patch_via.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
-index b513762..8d69e59 100644
---- a/sound/pci/hda/patch_via.c
-+++ b/sound/pci/hda/patch_via.c
-@@ -2200,7 +2200,10 @@ static int via_auto_create_loopback_switch(struct hda_codec *codec)
- {
- 	struct via_spec *spec = codec->spec;
- 
--	if (!spec->aa_mix_nid || !spec->out_mix_path.depth)
-+	if (!spec->aa_mix_nid)
-+		return 0; /* no loopback switching available */
-+	if (!(spec->out_mix_path.depth || spec->hp_mix_path.depth ||
-+	      spec->speaker_path.depth))
- 		return 0; /* no loopback switching available */
- 	if (!via_clone_control(spec, &via_aamix_ctl_enum))
- 		return -ENOMEM;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0016-ALSA-hda-Fix-the-lost-power-setup-of-seconary-pins-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0016-ALSA-hda-Fix-the-lost-power-setup-of-seconary-pins-a.patch
deleted file mode 100644
index 457ebc2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0016-ALSA-hda-Fix-the-lost-power-setup-of-seconary-pins-a.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 2fb2fe7e67d82706d84fdcf8876c28958c69998b Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 11 Jan 2012 12:34:11 +0100
-Subject: [PATCH 016/129] ALSA: hda - Fix the lost power-setup of seconary
- pins after PM resume
-
-commit f2cbba7602383cd9cdd21f0a5d0b8bd1aad47b33 upstream.
-
-When multiple headphone or other detectable output pins are present,
-the power-map has to be updated after resume appropriately, but the
-current driver doesn't check all pins but only the first pin (since
-it's enough to check it for the mute-behavior).  This resulted in the
-silent output from the secondary outputs after PM resume.
-
-This patch fixes the problem by checking all pins at (re-)init time.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=740347
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/patch_sigmatel.c |   36 +++++++++++++++++++++++-------------
- 1 file changed, 23 insertions(+), 13 deletions(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index 616678f..a87b260 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -4326,6 +4326,27 @@ static void stac_store_hints(struct hda_codec *codec)
- 	}
- }
- 
-+static void stac_issue_unsol_events(struct hda_codec *codec, int num_pins,
-+				    const hda_nid_t *pins)
-+{
-+	while (num_pins--)
-+		stac_issue_unsol_event(codec, *pins++);
-+}
-+
-+/* fake event to set up pins */
-+static void stac_fake_hp_events(struct hda_codec *codec)
-+{
-+	struct sigmatel_spec *spec = codec->spec;
-+
-+	if (spec->autocfg.hp_outs)
-+		stac_issue_unsol_events(codec, spec->autocfg.hp_outs,
-+					spec->autocfg.hp_pins);
-+	if (spec->autocfg.line_outs &&
-+	    spec->autocfg.line_out_pins[0] != spec->autocfg.hp_pins[0])
-+		stac_issue_unsol_events(codec, spec->autocfg.line_outs,
-+					spec->autocfg.line_out_pins);
-+}
-+
- static int stac92xx_init(struct hda_codec *codec)
- {
- 	struct sigmatel_spec *spec = codec->spec;
-@@ -4376,10 +4397,7 @@ static int stac92xx_init(struct hda_codec *codec)
- 		stac92xx_auto_set_pinctl(codec, spec->autocfg.line_out_pins[0],
- 				AC_PINCTL_OUT_EN);
- 		/* fake event to set up pins */
--		if (cfg->hp_pins[0])
--			stac_issue_unsol_event(codec, cfg->hp_pins[0]);
--		else if (cfg->line_out_pins[0])
--			stac_issue_unsol_event(codec, cfg->line_out_pins[0]);
-+		stac_fake_hp_events(codec);
- 	} else {
- 		stac92xx_auto_init_multi_out(codec);
- 		stac92xx_auto_init_hp_out(codec);
-@@ -5028,19 +5046,11 @@ static void stac927x_proc_hook(struct snd_info_buffer *buffer,
- #ifdef CONFIG_PM
- static int stac92xx_resume(struct hda_codec *codec)
- {
--	struct sigmatel_spec *spec = codec->spec;
--
- 	stac92xx_init(codec);
- 	snd_hda_codec_resume_amp(codec);
- 	snd_hda_codec_resume_cache(codec);
- 	/* fake event to set up pins again to override cached values */
--	if (spec->hp_detect) {
--		if (spec->autocfg.hp_pins[0])
--			stac_issue_unsol_event(codec, spec->autocfg.hp_pins[0]);
--		else if (spec->autocfg.line_out_pins[0])
--			stac_issue_unsol_event(codec,
--					       spec->autocfg.line_out_pins[0]);
--	}
-+	stac_fake_hp_events(codec);
- 	return 0;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0017-drm-radeon-kms-workaround-invalid-AVI-infoframe-chec.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0017-drm-radeon-kms-workaround-invalid-AVI-infoframe-chec.patch
deleted file mode 100644
index f39bef5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0017-drm-radeon-kms-workaround-invalid-AVI-infoframe-chec.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 27ce68d3d7c9f0815bb269da0495aa675eebf846 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>
-Date: Fri, 23 Dec 2011 20:32:18 +0100
-Subject: [PATCH 017/129] drm/radeon/kms: workaround invalid AVI infoframe
- checksum issue
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 92db7f6c860b8190571a9dc1fcbc16d003422fe8 upstream.
-
-This change was verified to fix both issues with no video I've
-investigated. I've also checked checksum calculation with fglrx on:
-RV620, HD54xx, HD5450, HD6310, HD6320.
-
-Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/gpu/drm/radeon/r600_hdmi.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/r600_hdmi.c b/drivers/gpu/drm/radeon/r600_hdmi.c
-index f5ac7e7..c45d921 100644
---- a/drivers/gpu/drm/radeon/r600_hdmi.c
-+++ b/drivers/gpu/drm/radeon/r600_hdmi.c
-@@ -196,6 +196,13 @@ static void r600_hdmi_videoinfoframe(
- 	frame[0xD] = (right_bar >> 8);
- 
- 	r600_hdmi_infoframe_checksum(0x82, 0x02, 0x0D, frame);
-+	/* Our header values (type, version, length) should be alright, Intel
-+	 * is using the same. Checksum function also seems to be OK, it works
-+	 * fine for audio infoframe. However calculated value is always lower
-+	 * by 2 in comparison to fglrx. It breaks displaying anything in case
-+	 * of TVs that strictly check the checksum. Hack it manually here to
-+	 * workaround this issue. */
-+	frame[0x0] += 2;
- 
- 	WREG32(offset+R600_HDMI_VIDEOINFOFRAME_0,
- 		frame[0x0] | (frame[0x1] << 8) | (frame[0x2] << 16) | (frame[0x3] << 24));
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0018-drm-radeon-kms-disable-writeback-on-pre-R300-asics.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0018-drm-radeon-kms-disable-writeback-on-pre-R300-asics.patch
deleted file mode 100644
index 8eb632d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0018-drm-radeon-kms-disable-writeback-on-pre-R300-asics.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 4080c93fb98e70e64d31c2ab2bd036a940c0807b Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 3 Jan 2012 09:48:38 -0500
-Subject: [PATCH 018/129] drm/radeon/kms: disable writeback on pre-R300 asics
-
-commit 28eebb703e28bc455ba704adb1026f76649b768c upstream.
-
-We often end up missing fences on older asics with
-writeback enabled which leads to delays in the userspace
-accel code, so just disable it by default on those asics.
-
-Reported-by: Helge Deller <deller at gmx.de>
-Reported-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/gpu/drm/radeon/radeon_device.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index c4d00a1..9b39145 100644
---- a/drivers/gpu/drm/radeon/radeon_device.c
-+++ b/drivers/gpu/drm/radeon/radeon_device.c
-@@ -224,8 +224,11 @@ int radeon_wb_init(struct radeon_device *rdev)
- 	if (radeon_no_wb == 1)
- 		rdev->wb.enabled = false;
- 	else {
--		/* often unreliable on AGP */
- 		if (rdev->flags & RADEON_IS_AGP) {
-+			/* often unreliable on AGP */
-+			rdev->wb.enabled = false;
-+		} else if (rdev->family < CHIP_R300) {
-+			/* often unreliable on pre-r300 */
- 			rdev->wb.enabled = false;
- 		} else {
- 			rdev->wb.enabled = true;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0019-radeon-Fix-disabling-PCI-bus-mastering-on-big-endian.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0019-radeon-Fix-disabling-PCI-bus-mastering-on-big-endian.patch
deleted file mode 100644
index 64a0b20..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0019-radeon-Fix-disabling-PCI-bus-mastering-on-big-endian.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 73267cb0dea18d38a023f20c110e79b742c030c9 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer at amd.com>
-Date: Thu, 5 Jan 2012 18:42:17 +0100
-Subject: [PATCH 019/129] radeon: Fix disabling PCI bus mastering on big
- endian hosts.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 3df96909b75835d487a9178761622b0cbd7310d4 upstream.
-
-It would previously write basically random bits to PCI configuration space...
-Not very surprising that the GPU tended to stop responding completely. The
-resulting MCE even froze the whole machine sometimes.
-
-Now resetting the GPU after a lockup has at least a fighting chance of
-succeeding.
-
-Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/gpu/drm/radeon/r100.c  |    5 +++--
- drivers/gpu/drm/radeon/rs600.c |    4 ++--
- 2 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
-index bfc08f6..31b0d1a 100644
---- a/drivers/gpu/drm/radeon/r100.c
-+++ b/drivers/gpu/drm/radeon/r100.c
-@@ -2177,6 +2177,7 @@ bool r100_gpu_is_lockup(struct radeon_device *rdev)
- void r100_bm_disable(struct radeon_device *rdev)
- {
- 	u32 tmp;
-+	u16 tmp16;
- 
- 	/* disable bus mastering */
- 	tmp = RREG32(R_000030_BUS_CNTL);
-@@ -2187,8 +2188,8 @@ void r100_bm_disable(struct radeon_device *rdev)
- 	WREG32(R_000030_BUS_CNTL, (tmp & 0xFFFFFFFF) | 0x00000040);
- 	tmp = RREG32(RADEON_BUS_CNTL);
- 	mdelay(1);
--	pci_read_config_word(rdev->pdev, 0x4, (u16*)&tmp);
--	pci_write_config_word(rdev->pdev, 0x4, tmp & 0xFFFB);
-+	pci_read_config_word(rdev->pdev, 0x4, &tmp16);
-+	pci_write_config_word(rdev->pdev, 0x4, tmp16 & 0xFFFB);
- 	mdelay(1);
- }
- 
-diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c
-index b1053d6..c259e21 100644
---- a/drivers/gpu/drm/radeon/rs600.c
-+++ b/drivers/gpu/drm/radeon/rs600.c
-@@ -324,10 +324,10 @@ void rs600_hpd_fini(struct radeon_device *rdev)
- 
- void rs600_bm_disable(struct radeon_device *rdev)
- {
--	u32 tmp;
-+	u16 tmp;
- 
- 	/* disable bus mastering */
--	pci_read_config_word(rdev->pdev, 0x4, (u16*)&tmp);
-+	pci_read_config_word(rdev->pdev, 0x4, &tmp);
- 	pci_write_config_word(rdev->pdev, 0x4, tmp & 0xFFFB);
- 	mdelay(1);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch
deleted file mode 100644
index 68ba056..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 873440a8680a5cf108ce5372f065fec762b7f73c Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Fri, 6 Jan 2012 09:28:12 +0200
-Subject: [PATCH 020/129] pnfs-obj: pNFS errors are communicated on
- iodata->pnfs_error
-
-commit 5c0b4129c07b902b27d3f3ebc087757f534a3abd upstream.
-
-Some time along the way pNFS IO errors were switched to
-communicate with a special iodata->pnfs_error member instead
-of the regular RPC members. But objlayout was not switched
-over.
-
-Fix that!
-Without this fix any IO error is hanged, because IO is not
-switched to MDS and pages are never cleared or read.
-
-[Applies to 3.2.0. Same bug different patch for 3.1/0 Kernels]
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/objlayout/objlayout.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/fs/nfs/objlayout/objlayout.c b/fs/nfs/objlayout/objlayout.c
-index 72074e3..b3c2903 100644
---- a/fs/nfs/objlayout/objlayout.c
-+++ b/fs/nfs/objlayout/objlayout.c
-@@ -254,6 +254,8 @@ objlayout_read_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
- 	oir->status = rdata->task.tk_status = status;
- 	if (status >= 0)
- 		rdata->res.count = status;
-+	else
-+		rdata->pnfs_error = status;
- 	objlayout_iodone(oir);
- 	/* must not use oir after this point */
- 
-@@ -334,6 +336,8 @@ objlayout_write_done(struct objlayout_io_res *oir, ssize_t status, bool sync)
- 	if (status >= 0) {
- 		wdata->res.count = status;
- 		wdata->verf.committed = oir->committed;
-+	} else {
-+		wdata->pnfs_error = status;
- 	}
- 	objlayout_iodone(oir);
- 	/* must not use oir after this point */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0021-pnfs-obj-Must-return-layout-on-IO-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0021-pnfs-obj-Must-return-layout-on-IO-error.patch
deleted file mode 100644
index b05bc19..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0021-pnfs-obj-Must-return-layout-on-IO-error.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From e20497d523b9954e6fe3a3cd333d1286e3c241ed Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Fri, 6 Jan 2012 09:31:20 +0200
-Subject: [PATCH 021/129] pnfs-obj: Must return layout on IO error
-
-commit fe0fe83585f88346557868a803a479dfaaa0688a upstream.
-
-As mandated by the standard. In case of an IO error, a pNFS
-objects layout driver must return it's layout. This is because
-all device errors are reported to the server as part of the
-layout return buffer.
-
-This is implemented the same way PNFS_LAYOUTRET_ON_SETATTR
-is done, through a bit flag on the pnfs_layoutdriver_type->flags
-member. The flag is set by the layout driver that wants a
-layout_return preformed at pnfs_ld_{write,read}_done in case
-of an error.
-(Though I have not defined a wrapper like pnfs_ld_layoutret_on_setattr
- because this code is never called outside of pnfs.c and pnfs IO
- paths)
-
-Without this patch 3.[0-2] Kernels leak memory and have an annoying
-WARN_ON after every IO error utilizing the pnfs-obj driver.
-
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/objlayout/objio_osd.c |    3 ++-
- fs/nfs/pnfs.c                |   12 ++++++++++++
- fs/nfs/pnfs.h                |    1 +
- 3 files changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/fs/nfs/objlayout/objio_osd.c b/fs/nfs/objlayout/objio_osd.c
-index c807ab9..55d0128 100644
---- a/fs/nfs/objlayout/objio_osd.c
-+++ b/fs/nfs/objlayout/objio_osd.c
-@@ -551,7 +551,8 @@ static const struct nfs_pageio_ops objio_pg_write_ops = {
- static struct pnfs_layoutdriver_type objlayout_type = {
- 	.id = LAYOUT_OSD2_OBJECTS,
- 	.name = "LAYOUT_OSD2_OBJECTS",
--	.flags                   = PNFS_LAYOUTRET_ON_SETATTR,
-+	.flags                   = PNFS_LAYOUTRET_ON_SETATTR |
-+				   PNFS_LAYOUTRET_ON_ERROR,
- 
- 	.alloc_layout_hdr        = objlayout_alloc_layout_hdr,
- 	.free_layout_hdr         = objlayout_free_layout_hdr,
-diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
-index 8e672a2..f881a63 100644
---- a/fs/nfs/pnfs.c
-+++ b/fs/nfs/pnfs.c
-@@ -1178,6 +1178,15 @@ void pnfs_ld_write_done(struct nfs_write_data *data)
- 		put_lseg(data->lseg);
- 		data->lseg = NULL;
- 		dprintk("pnfs write error = %d\n", data->pnfs_error);
-+		if (NFS_SERVER(data->inode)->pnfs_curr_ld->flags &
-+						PNFS_LAYOUTRET_ON_ERROR) {
-+			/* Don't lo_commit on error, Server will needs to
-+			 * preform a file recovery.
-+			 */
-+			clear_bit(NFS_INO_LAYOUTCOMMIT,
-+				  &NFS_I(data->inode)->flags);
-+			pnfs_return_layout(data->inode);
-+		}
- 	}
- 	data->mds_ops->rpc_release(data);
- }
-@@ -1267,6 +1276,9 @@ static void pnfs_ld_handle_read_error(struct nfs_read_data *data)
- 	put_lseg(data->lseg);
- 	data->lseg = NULL;
- 	dprintk("pnfs write error = %d\n", data->pnfs_error);
-+	if (NFS_SERVER(data->inode)->pnfs_curr_ld->flags &
-+						PNFS_LAYOUTRET_ON_ERROR)
-+		pnfs_return_layout(data->inode);
- 
- 	nfs_pageio_init_read_mds(&pgio, data->inode);
- 
-diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
-index 1509530..53d593a 100644
---- a/fs/nfs/pnfs.h
-+++ b/fs/nfs/pnfs.h
-@@ -68,6 +68,7 @@ enum {
- enum layoutdriver_policy_flags {
- 	/* Should the pNFS client commit and return the layout upon a setattr */
- 	PNFS_LAYOUTRET_ON_SETATTR	= 1 << 0,
-+	PNFS_LAYOUTRET_ON_ERROR		= 1 << 1,
- };
- 
- struct nfs4_deviceid_node;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0022-NFS-Retry-mounting-NFSROOT.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0022-NFS-Retry-mounting-NFSROOT.patch
deleted file mode 100644
index ceac5a9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0022-NFS-Retry-mounting-NFSROOT.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 51a699a0c53b199599fe16688248143ee98a167e Mon Sep 17 00:00:00 2001
-From: Chuck Lever <chuck.lever at oracle.com>
-Date: Mon, 5 Dec 2011 15:40:30 -0500
-Subject: [PATCH 022/129] NFS: Retry mounting NFSROOT
-
-commit 43717c7daebf10b43f12e68512484b3095bb1ba5 upstream.
-
-Lukas Razik <linux at razik.name> reports that on his SPARC system,
-booting with an NFS root file system stopped working after commit
-56463e50 "NFS: Use super.c for NFSROOT mount option parsing."
-
-We found that the network switch to which Lukas' client was attached
-was delaying access to the LAN after the client's NIC driver reported
-that its link was up.  The delay was longer than the timeouts used in
-the NFS client during mounting.
-
-NFSROOT worked for Lukas before commit 56463e50 because in those
-kernels, the client's first operation was an rpcbind request to
-determine which port the NFS server was listening on.  When that
-request failed after a long timeout, the client simply selected the
-default NFS port (2049).  By that time the switch was allowing access
-to the LAN, and the mount succeeded.
-
-Neither of these client behaviors is desirable, so reverting 56463e50
-is really not a choice.  Instead, introduce a mechanism that retries
-the NFSROOT mount request several times.  This is the same tactic that
-normal user space NFS mounts employ to overcome server and network
-delays.
-
-Signed-off-by: Lukas Razik <linux at razik.name>
-[ cel: match kernel coding style, add proper patch description ]
-[ cel: add exponential back-off ]
-Signed-off-by: Chuck Lever <chuck.lever at oracle.com>
-Tested-by: Lukas Razik <linux at razik.name>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- init/do_mounts.c |   35 +++++++++++++++++++++++++++++++----
- 1 file changed, 31 insertions(+), 4 deletions(-)
-
-diff --git a/init/do_mounts.c b/init/do_mounts.c
-index 0f6e1d9..db6e5ee 100644
---- a/init/do_mounts.c
-+++ b/init/do_mounts.c
-@@ -398,15 +398,42 @@ out:
- }
-  
- #ifdef CONFIG_ROOT_NFS
-+
-+#define NFSROOT_TIMEOUT_MIN	5
-+#define NFSROOT_TIMEOUT_MAX	30
-+#define NFSROOT_RETRY_MAX	5
-+
- static int __init mount_nfs_root(void)
- {
- 	char *root_dev, *root_data;
-+	unsigned int timeout;
-+	int try, err;
- 
--	if (nfs_root_data(&root_dev, &root_data) != 0)
--		return 0;
--	if (do_mount_root(root_dev, "nfs", root_mountflags, root_data) != 0)
-+	err = nfs_root_data(&root_dev, &root_data);
-+	if (err != 0)
- 		return 0;
--	return 1;
-+
-+	/*
-+	 * The server or network may not be ready, so try several
-+	 * times.  Stop after a few tries in case the client wants
-+	 * to fall back to other boot methods.
-+	 */
-+	timeout = NFSROOT_TIMEOUT_MIN;
-+	for (try = 1; ; try++) {
-+		err = do_mount_root(root_dev, "nfs",
-+					root_mountflags, root_data);
-+		if (err == 0)
-+			return 1;
-+		if (try > NFSROOT_RETRY_MAX)
-+			break;
-+
-+		/* Wait, in case the server refused us immediately */
-+		ssleep(timeout);
-+		timeout <<= 1;
-+		if (timeout > NFSROOT_TIMEOUT_MAX)
-+			timeout = NFSROOT_TIMEOUT_MAX;
-+	}
-+	return 0;
- }
- #endif
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0023-NFSv4.1-fix-backchannel-slotid-off-by-one-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0023-NFSv4.1-fix-backchannel-slotid-off-by-one-bug.patch
deleted file mode 100644
index 34ea494..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0023-NFSv4.1-fix-backchannel-slotid-off-by-one-bug.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 4d12390d5a9b1c151416e0fbef4702455f4a2626 Mon Sep 17 00:00:00 2001
-From: Andy Adamson <andros at netapp.com>
-Date: Wed, 9 Nov 2011 13:58:20 -0500
-Subject: [PATCH 023/129] NFSv4.1: fix backchannel slotid off-by-one bug
-
-commit 61f2e5106582d02f30b6807e3f9c07463c572ccb upstream.
-
-Signed-off-by: Andy Adamson <andros at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/callback_proc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c
-index 43926ad..54cea8a 100644
---- a/fs/nfs/callback_proc.c
-+++ b/fs/nfs/callback_proc.c
-@@ -339,7 +339,7 @@ validate_seqid(struct nfs4_slot_table *tbl, struct cb_sequenceargs * args)
- 	dprintk("%s enter. slotid %d seqid %d\n",
- 		__func__, args->csa_slotid, args->csa_sequenceid);
- 
--	if (args->csa_slotid > NFS41_BC_MAX_CALLBACKS)
-+	if (args->csa_slotid >= NFS41_BC_MAX_CALLBACKS)
- 		return htonl(NFS4ERR_BADSLOT);
- 
- 	slot = tbl->slots + args->csa_slotid;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0024-NFS-fix-recent-breakage-to-NFS-error-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0024-NFS-fix-recent-breakage-to-NFS-error-handling.patch
deleted file mode 100644
index 70d96b3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0024-NFS-fix-recent-breakage-to-NFS-error-handling.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 7aab7b372a174e80233a74ff10d55ded1ea28c2f Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Wed, 16 Nov 2011 11:46:31 +1100
-Subject: [PATCH 024/129] NFS - fix recent breakage to NFS error handling.
-
-commit 2edb6bc3852c681c0d948245bd55108dc6407604 upstream.
-
-	From c6d615d2b97fe305cbf123a8751ced859dca1d5e Mon Sep 17 00:00:00 2001
-	From: NeilBrown <neilb at suse.de>
-	Date: Wed, 16 Nov 2011 09:39:05 +1100
-	Subject: NFS - fix recent breakage to NFS error handling.
-
-commit 02c24a82187d5a628c68edfe71ae60dc135cd178 made a small and
-presumably unintended change to write error handling in NFS.
-
-Previously an error from filemap_write_and_wait_range would only be of
-interest if nfs_file_fsync did not return an error.  After this commit,
-an error from filemap_write_and_wait_range would mean that (the rest of)
-nfs_file_fsync would not even be called.
-
-This means that:
- 1/ you are more likely to see EIO than e.g. EDQUOT or ENOSPC.
- 2/ NFS_CONTEXT_ERROR_WRITE remains set for longer so more writes are
-    synchronous.
-
-This patch restores previous behaviour.
-
-Cc: Josef Bacik <josef at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/file.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfs/file.c b/fs/nfs/file.c
-index 606ef0f..c43a452 100644
---- a/fs/nfs/file.c
-+++ b/fs/nfs/file.c
-@@ -272,13 +272,13 @@ nfs_file_fsync(struct file *file, loff_t start, loff_t end, int datasync)
- 			datasync);
- 
- 	ret = filemap_write_and_wait_range(inode->i_mapping, start, end);
--	if (ret)
--		return ret;
- 	mutex_lock(&inode->i_mutex);
- 
- 	nfs_inc_stats(inode, NFSIOS_VFSFSYNC);
- 	have_error = test_and_clear_bit(NFS_CONTEXT_ERROR_WRITE, &ctx->flags);
- 	status = nfs_commit_inode(inode, FLUSH_SYNC);
-+	if (status >= 0 && ret < 0)
-+		status = ret;
- 	have_error |= test_bit(NFS_CONTEXT_ERROR_WRITE, &ctx->flags);
- 	if (have_error)
- 		ret = xchg(&ctx->error, 0);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0025-NFSv4-include-bitmap-in-nfsv4-get-acl-data.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0025-NFSv4-include-bitmap-in-nfsv4-get-acl-data.patch
deleted file mode 100644
index f57d732..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0025-NFSv4-include-bitmap-in-nfsv4-get-acl-data.patch
+++ /dev/null
@@ -1,313 +0,0 @@
-From 0ae2afe3f515d5e56beeefa0f0e5fd23cb358f4a Mon Sep 17 00:00:00 2001
-From: Andy Adamson <andros at netapp.com>
-Date: Wed, 7 Dec 2011 11:55:27 -0500
-Subject: [PATCH 025/129] NFSv4: include bitmap in nfsv4 get acl data
-
-commit bf118a342f10dafe44b14451a1392c3254629a1f upstream.
-
-The NFSv4 bitmap size is unbounded: a server can return an arbitrary
-sized bitmap in an FATTR4_WORD0_ACL request.  Replace using the
-nfs4_fattr_bitmap_maxsz as a guess to the maximum bitmask returned by a server
-with the inclusion of the bitmap (xdr length plus bitmasks) and the acl data
-xdr length to the (cached) acl page data.
-
-This is a general solution to commit e5012d1f "NFSv4.1: update
-nfs4_fattr_bitmap_maxsz" and fixes hitting a BUG_ON in xdr_shrink_bufhead
-when getting ACLs.
-
-Fix a bug in decode_getacl that returned -EINVAL on ACLs > page when getxattr
-was called with a NULL buffer, preventing ACL > PAGE_SIZE from being retrieved.
-
-Signed-off-by: Andy Adamson <andros at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/nfs4proc.c          |   96 ++++++++++++++++++++++++++------------------
- fs/nfs/nfs4xdr.c           |   31 ++++++++++----
- include/linux/nfs_xdr.h    |    5 +++
- include/linux/sunrpc/xdr.h |    2 +
- net/sunrpc/xdr.c           |    3 +-
- 5 files changed, 89 insertions(+), 48 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index d9f4d78..055d702 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3430,19 +3430,6 @@ static inline int nfs4_server_supports_acls(struct nfs_server *server)
-  */
- #define NFS4ACL_MAXPAGES (XATTR_SIZE_MAX >> PAGE_CACHE_SHIFT)
- 
--static void buf_to_pages(const void *buf, size_t buflen,
--		struct page **pages, unsigned int *pgbase)
--{
--	const void *p = buf;
--
--	*pgbase = offset_in_page(buf);
--	p -= *pgbase;
--	while (p < buf + buflen) {
--		*(pages++) = virt_to_page(p);
--		p += PAGE_CACHE_SIZE;
--	}
--}
--
- static int buf_to_pages_noslab(const void *buf, size_t buflen,
- 		struct page **pages, unsigned int *pgbase)
- {
-@@ -3539,9 +3526,19 @@ out:
- 	nfs4_set_cached_acl(inode, acl);
- }
- 
-+/*
-+ * The getxattr API returns the required buffer length when called with a
-+ * NULL buf. The NFSv4 acl tool then calls getxattr again after allocating
-+ * the required buf.  On a NULL buf, we send a page of data to the server
-+ * guessing that the ACL request can be serviced by a page. If so, we cache
-+ * up to the page of ACL data, and the 2nd call to getxattr is serviced by
-+ * the cache. If not so, we throw away the page, and cache the required
-+ * length. The next getxattr call will then produce another round trip to
-+ * the server, this time with the input buf of the required size.
-+ */
- static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t buflen)
- {
--	struct page *pages[NFS4ACL_MAXPAGES];
-+	struct page *pages[NFS4ACL_MAXPAGES] = {NULL, };
- 	struct nfs_getaclargs args = {
- 		.fh = NFS_FH(inode),
- 		.acl_pages = pages,
-@@ -3556,41 +3553,60 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 		.rpc_argp = &args,
- 		.rpc_resp = &res,
- 	};
--	struct page *localpage = NULL;
--	int ret;
-+	int ret = -ENOMEM, npages, i, acl_len = 0;
- 
--	if (buflen < PAGE_SIZE) {
--		/* As long as we're doing a round trip to the server anyway,
--		 * let's be prepared for a page of acl data. */
--		localpage = alloc_page(GFP_KERNEL);
--		resp_buf = page_address(localpage);
--		if (localpage == NULL)
--			return -ENOMEM;
--		args.acl_pages[0] = localpage;
--		args.acl_pgbase = 0;
--		args.acl_len = PAGE_SIZE;
--	} else {
--		resp_buf = buf;
--		buf_to_pages(buf, buflen, args.acl_pages, &args.acl_pgbase);
-+	npages = (buflen + PAGE_SIZE - 1) >> PAGE_SHIFT;
-+	/* As long as we're doing a round trip to the server anyway,
-+	 * let's be prepared for a page of acl data. */
-+	if (npages == 0)
-+		npages = 1;
-+
-+	for (i = 0; i < npages; i++) {
-+		pages[i] = alloc_page(GFP_KERNEL);
-+		if (!pages[i])
-+			goto out_free;
-+	}
-+	if (npages > 1) {
-+		/* for decoding across pages */
-+		args.acl_scratch = alloc_page(GFP_KERNEL);
-+		if (!args.acl_scratch)
-+			goto out_free;
- 	}
--	ret = nfs4_call_sync(NFS_SERVER(inode)->client, NFS_SERVER(inode), &msg, &args.seq_args, &res.seq_res, 0);
-+	args.acl_len = npages * PAGE_SIZE;
-+	args.acl_pgbase = 0;
-+	/* Let decode_getfacl know not to fail if the ACL data is larger than
-+	 * the page we send as a guess */
-+	if (buf == NULL)
-+		res.acl_flags |= NFS4_ACL_LEN_REQUEST;
-+	resp_buf = page_address(pages[0]);
-+
-+	dprintk("%s  buf %p buflen %ld npages %d args.acl_len %ld\n",
-+		__func__, buf, buflen, npages, args.acl_len);
-+	ret = nfs4_call_sync(NFS_SERVER(inode)->client, NFS_SERVER(inode),
-+			     &msg, &args.seq_args, &res.seq_res, 0);
- 	if (ret)
- 		goto out_free;
--	if (res.acl_len > args.acl_len)
--		nfs4_write_cached_acl(inode, NULL, res.acl_len);
-+
-+	acl_len = res.acl_len - res.acl_data_offset;
-+	if (acl_len > args.acl_len)
-+		nfs4_write_cached_acl(inode, NULL, acl_len);
- 	else
--		nfs4_write_cached_acl(inode, resp_buf, res.acl_len);
-+		nfs4_write_cached_acl(inode, resp_buf + res.acl_data_offset,
-+				      acl_len);
- 	if (buf) {
- 		ret = -ERANGE;
--		if (res.acl_len > buflen)
-+		if (acl_len > buflen)
- 			goto out_free;
--		if (localpage)
--			memcpy(buf, resp_buf, res.acl_len);
-+		_copy_from_pages(buf, pages, res.acl_data_offset,
-+				res.acl_len);
- 	}
--	ret = res.acl_len;
-+	ret = acl_len;
- out_free:
--	if (localpage)
--		__free_page(localpage);
-+	for (i = 0; i < npages; i++)
-+		if (pages[i])
-+			__free_page(pages[i]);
-+	if (args.acl_scratch)
-+		__free_page(args.acl_scratch);
- 	return ret;
- }
- 
-@@ -3621,6 +3637,8 @@ static ssize_t nfs4_proc_get_acl(struct inode *inode, void *buf, size_t buflen)
- 		nfs_zap_acl_cache(inode);
- 	ret = nfs4_read_cached_acl(inode, buf, buflen);
- 	if (ret != -ENOENT)
-+		/* -ENOENT is returned if there is no ACL or if there is an ACL
-+		 * but no cached acl data, just the acl length */
- 		return ret;
- 	return nfs4_get_acl_uncached(inode, buf, buflen);
- }
-diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
-index e6161b2..dcaf693 100644
---- a/fs/nfs/nfs4xdr.c
-+++ b/fs/nfs/nfs4xdr.c
-@@ -2517,11 +2517,13 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst *req, struct xdr_stream *xdr,
- 	encode_compound_hdr(xdr, req, &hdr);
- 	encode_sequence(xdr, &args->seq_args, &hdr);
- 	encode_putfh(xdr, args->fh, &hdr);
--	replen = hdr.replen + op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz + 1;
-+	replen = hdr.replen + op_decode_hdr_maxsz + 1;
- 	encode_getattr_two(xdr, FATTR4_WORD0_ACL, 0, &hdr);
- 
- 	xdr_inline_pages(&req->rq_rcv_buf, replen << 2,
- 		args->acl_pages, args->acl_pgbase, args->acl_len);
-+	xdr_set_scratch_buffer(xdr, page_address(args->acl_scratch), PAGE_SIZE);
-+
- 	encode_nops(&hdr);
- }
- 
-@@ -4957,17 +4959,18 @@ decode_restorefh(struct xdr_stream *xdr)
- }
- 
- static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req,
--		size_t *acl_len)
-+			 struct nfs_getaclres *res)
- {
--	__be32 *savep;
-+	__be32 *savep, *bm_p;
- 	uint32_t attrlen,
- 		 bitmap[3] = {0};
- 	struct kvec *iov = req->rq_rcv_buf.head;
- 	int status;
- 
--	*acl_len = 0;
-+	res->acl_len = 0;
- 	if ((status = decode_op_hdr(xdr, OP_GETATTR)) != 0)
- 		goto out;
-+	bm_p = xdr->p;
- 	if ((status = decode_attr_bitmap(xdr, bitmap)) != 0)
- 		goto out;
- 	if ((status = decode_attr_length(xdr, &attrlen, &savep)) != 0)
-@@ -4979,18 +4982,30 @@ static int decode_getacl(struct xdr_stream *xdr, struct rpc_rqst *req,
- 		size_t hdrlen;
- 		u32 recvd;
- 
-+		/* The bitmap (xdr len + bitmaps) and the attr xdr len words
-+		 * are stored with the acl data to handle the problem of
-+		 * variable length bitmaps.*/
-+		xdr->p = bm_p;
-+		res->acl_data_offset = be32_to_cpup(bm_p) + 2;
-+		res->acl_data_offset <<= 2;
-+
- 		/* We ignore &savep and don't do consistency checks on
- 		 * the attr length.  Let userspace figure it out.... */
- 		hdrlen = (u8 *)xdr->p - (u8 *)iov->iov_base;
-+		attrlen += res->acl_data_offset;
- 		recvd = req->rq_rcv_buf.len - hdrlen;
- 		if (attrlen > recvd) {
--			dprintk("NFS: server cheating in getattr"
--					" acl reply: attrlen %u > recvd %u\n",
-+			if (res->acl_flags & NFS4_ACL_LEN_REQUEST) {
-+				/* getxattr interface called with a NULL buf */
-+				res->acl_len = attrlen;
-+				goto out;
-+			}
-+			dprintk("NFS: acl reply: attrlen %u > recvd %u\n",
- 					attrlen, recvd);
- 			return -EINVAL;
- 		}
- 		xdr_read_pages(xdr, attrlen);
--		*acl_len = attrlen;
-+		res->acl_len = attrlen;
- 	} else
- 		status = -EOPNOTSUPP;
- 
-@@ -6028,7 +6043,7 @@ nfs4_xdr_dec_getacl(struct rpc_rqst *rqstp, struct xdr_stream *xdr,
- 	status = decode_putfh(xdr);
- 	if (status)
- 		goto out;
--	status = decode_getacl(xdr, rqstp, &res->acl_len);
-+	status = decode_getacl(xdr, rqstp, res);
- 
- out:
- 	return status;
-diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
-index 2a7c533..6c898af 100644
---- a/include/linux/nfs_xdr.h
-+++ b/include/linux/nfs_xdr.h
-@@ -602,11 +602,16 @@ struct nfs_getaclargs {
- 	size_t				acl_len;
- 	unsigned int			acl_pgbase;
- 	struct page **			acl_pages;
-+	struct page *			acl_scratch;
- 	struct nfs4_sequence_args 	seq_args;
- };
- 
-+/* getxattr ACL interface flags */
-+#define NFS4_ACL_LEN_REQUEST	0x0001	/* zero length getxattr buffer */
- struct nfs_getaclres {
- 	size_t				acl_len;
-+	size_t				acl_data_offset;
-+	int				acl_flags;
- 	struct nfs4_sequence_res	seq_res;
- };
- 
-diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h
-index a20970e..af70af3 100644
---- a/include/linux/sunrpc/xdr.h
-+++ b/include/linux/sunrpc/xdr.h
-@@ -191,6 +191,8 @@ extern int xdr_decode_array2(struct xdr_buf *buf, unsigned int base,
- 			     struct xdr_array2_desc *desc);
- extern int xdr_encode_array2(struct xdr_buf *buf, unsigned int base,
- 			     struct xdr_array2_desc *desc);
-+extern void _copy_from_pages(char *p, struct page **pages, size_t pgbase,
-+			     size_t len);
- 
- /*
-  * Provide some simple tools for XDR buffer overflow-checking etc.
-diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
-index 277ebd4..593f4c6 100644
---- a/net/sunrpc/xdr.c
-+++ b/net/sunrpc/xdr.c
-@@ -296,7 +296,7 @@ _copy_to_pages(struct page **pages, size_t pgbase, const char *p, size_t len)
-  * Copies data into an arbitrary memory location from an array of pages
-  * The copy is assumed to be non-overlapping.
-  */
--static void
-+void
- _copy_from_pages(char *p, struct page **pages, size_t pgbase, size_t len)
- {
- 	struct page **pgfrom;
-@@ -324,6 +324,7 @@ _copy_from_pages(char *p, struct page **pages, size_t pgbase, size_t len)
- 
- 	} while ((len -= copy) != 0);
- }
-+EXPORT_SYMBOL_GPL(_copy_from_pages);
- 
- /*
-  * xdr_shrink_bufhead
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0026-nfs-fix-regression-in-handling-of-context-option-in-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0026-nfs-fix-regression-in-handling-of-context-option-in-.patch
deleted file mode 100644
index ccc04bd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0026-nfs-fix-regression-in-handling-of-context-option-in-.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 116cbe8665b2a7fd6538b2d92e04f016317fee84 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Tue, 20 Dec 2011 06:57:45 -0500
-Subject: [PATCH 026/129] nfs: fix regression in handling of context= option
- in NFSv4
-
-commit 8a0d551a59ac92d8ff048d6cb29d3a02073e81e8 upstream.
-
-Setting the security context of a NFSv4 mount via the context= mount
-option is currently broken. The NFSv4 codepath allocates a parsed
-options struct, and then parses the mount options to fill it. It
-eventually calls nfs4_remote_mount which calls security_init_mnt_opts.
-That clobbers the lsm_opts struct that was populated earlier. This bug
-also looks like it causes a small memory leak on each v4 mount where
-context= is used.
-
-Fix this by moving the initialization of the lsm_opts into
-nfs_alloc_parsed_mount_data. Also, add a destructor for
-nfs_parsed_mount_data to make it easier to free all of the allocations
-hanging off of it, and to ensure that the security_free_mnt_opts is
-called whenever security_init_mnt_opts is.
-
-I believe this regression was introduced quite some time ago, probably
-by commit c02d7adf.
-
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/super.c |   43 +++++++++++++++++++------------------------
- 1 file changed, 19 insertions(+), 24 deletions(-)
-
-diff --git a/fs/nfs/super.c b/fs/nfs/super.c
-index 1347774..3ada13c 100644
---- a/fs/nfs/super.c
-+++ b/fs/nfs/super.c
-@@ -909,10 +909,24 @@ static struct nfs_parsed_mount_data *nfs_alloc_parsed_mount_data(unsigned int ve
- 		data->auth_flavor_len	= 1;
- 		data->version		= version;
- 		data->minorversion	= 0;
-+		security_init_mnt_opts(&data->lsm_opts);
- 	}
- 	return data;
- }
- 
-+static void nfs_free_parsed_mount_data(struct nfs_parsed_mount_data *data)
-+{
-+	if (data) {
-+		kfree(data->client_address);
-+		kfree(data->mount_server.hostname);
-+		kfree(data->nfs_server.export_path);
-+		kfree(data->nfs_server.hostname);
-+		kfree(data->fscache_uniq);
-+		security_free_mnt_opts(&data->lsm_opts);
-+		kfree(data);
-+	}
-+}
-+
- /*
-  * Sanity-check a server address provided by the mount command.
-  *
-@@ -2220,9 +2234,7 @@ static struct dentry *nfs_fs_mount(struct file_system_type *fs_type,
- 	data = nfs_alloc_parsed_mount_data(NFS_DEFAULT_VERSION);
- 	mntfh = nfs_alloc_fhandle();
- 	if (data == NULL || mntfh == NULL)
--		goto out_free_fh;
--
--	security_init_mnt_opts(&data->lsm_opts);
-+		goto out;
- 
- 	/* Validate the mount data */
- 	error = nfs_validate_mount_data(raw_data, data, mntfh, dev_name);
-@@ -2234,8 +2246,6 @@ static struct dentry *nfs_fs_mount(struct file_system_type *fs_type,
- #ifdef CONFIG_NFS_V4
- 	if (data->version == 4) {
- 		mntroot = nfs4_try_mount(flags, dev_name, data);
--		kfree(data->client_address);
--		kfree(data->nfs_server.export_path);
- 		goto out;
- 	}
- #endif	/* CONFIG_NFS_V4 */
-@@ -2290,13 +2300,8 @@ static struct dentry *nfs_fs_mount(struct file_system_type *fs_type,
- 	s->s_flags |= MS_ACTIVE;
- 
- out:
--	kfree(data->nfs_server.hostname);
--	kfree(data->mount_server.hostname);
--	kfree(data->fscache_uniq);
--	security_free_mnt_opts(&data->lsm_opts);
--out_free_fh:
-+	nfs_free_parsed_mount_data(data);
- 	nfs_free_fhandle(mntfh);
--	kfree(data);
- 	return mntroot;
- 
- out_err_nosb:
-@@ -2623,9 +2628,7 @@ nfs4_remote_mount(struct file_system_type *fs_type, int flags,
- 
- 	mntfh = nfs_alloc_fhandle();
- 	if (data == NULL || mntfh == NULL)
--		goto out_free_fh;
--
--	security_init_mnt_opts(&data->lsm_opts);
-+		goto out;
- 
- 	/* Get a volume representation */
- 	server = nfs4_create_server(data, mntfh);
-@@ -2677,13 +2680,10 @@ nfs4_remote_mount(struct file_system_type *fs_type, int flags,
- 
- 	s->s_flags |= MS_ACTIVE;
- 
--	security_free_mnt_opts(&data->lsm_opts);
- 	nfs_free_fhandle(mntfh);
- 	return mntroot;
- 
- out:
--	security_free_mnt_opts(&data->lsm_opts);
--out_free_fh:
- 	nfs_free_fhandle(mntfh);
- 	return ERR_PTR(error);
- 
-@@ -2838,7 +2838,7 @@ static struct dentry *nfs4_mount(struct file_system_type *fs_type,
- 
- 	data = nfs_alloc_parsed_mount_data(4);
- 	if (data == NULL)
--		goto out_free_data;
-+		goto out;
- 
- 	/* Validate the mount data */
- 	error = nfs4_validate_mount_data(raw_data, data, dev_name);
-@@ -2852,12 +2852,7 @@ static struct dentry *nfs4_mount(struct file_system_type *fs_type,
- 		error = PTR_ERR(res);
- 
- out:
--	kfree(data->client_address);
--	kfree(data->nfs_server.export_path);
--	kfree(data->nfs_server.hostname);
--	kfree(data->fscache_uniq);
--out_free_data:
--	kfree(data);
-+	nfs_free_parsed_mount_data(data);
- 	dprintk("<-- nfs4_mount() = %d%s\n", error,
- 			error != 0 ? " [error]" : "");
- 	return res;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0027-HID-bump-maximum-global-item-tag-report-size-to-96-b.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0027-HID-bump-maximum-global-item-tag-report-size-to-96-b.patch
deleted file mode 100644
index 22df17c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0027-HID-bump-maximum-global-item-tag-report-size-to-96-b.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b475e4ad0950706030ae96b367c2dbb065a785be Mon Sep 17 00:00:00 2001
-From: Chase Douglas <chase.douglas at canonical.com>
-Date: Mon, 7 Nov 2011 11:08:05 -0800
-Subject: [PATCH 027/129] HID: bump maximum global item tag report size to 96
- bytes
-
-commit e46e927b9b7e8d95526e69322855243882b7e1a3 upstream.
-
-This allows the latest N-Trig devices to function properly.
-
-BugLink: https://bugs.launchpad.net/bugs/724831
-
-Signed-off-by: Chase Douglas <chase.douglas at canonical.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-core.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index af35384..1473067 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -362,7 +362,7 @@ static int hid_parser_global(struct hid_parser *parser, struct hid_item *item)
- 
- 	case HID_GLOBAL_ITEM_TAG_REPORT_SIZE:
- 		parser->global.report_size = item_udata(item);
--		if (parser->global.report_size > 32) {
-+		if (parser->global.report_size > 96) {
- 			dbg_hid("invalid report_size %d\n",
- 					parser->global.report_size);
- 			return -1;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0028-HID-wiimote-Select-INPUT_FF_MEMLESS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0028-HID-wiimote-Select-INPUT_FF_MEMLESS.patch
deleted file mode 100644
index 0216672..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0028-HID-wiimote-Select-INPUT_FF_MEMLESS.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 2cfaf0fb0c2b2fb54ecae98d34df27d549a6e92c Mon Sep 17 00:00:00 2001
-From: David Herrmann <dh.herrmann at googlemail.com>
-Date: Wed, 7 Dec 2011 21:33:59 +0100
-Subject: [PATCH 028/129] HID: wiimote: Select INPUT_FF_MEMLESS
-
-commit ef6f41157f3864d9bf42671b2ed66062dcafb72e upstream.
-
-We depend on memless force-feedback support, therefore correctly select the
-related config options.
-
-Reported-by: Randy Dunlap <rdunlap at xenotime.net>
-Signed-off-by: David Herrmann <dh.herrmann at googlemail.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/Kconfig |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 22a4a05..332c22a 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -620,6 +620,7 @@ config HID_WIIMOTE
- 	depends on BT_HIDP
- 	depends on LEDS_CLASS
- 	select POWER_SUPPLY
-+	select INPUT_FF_MEMLESS
- 	---help---
- 	Support for the Nintendo Wii Remote bluetooth device.
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0029-UBI-fix-missing-scrub-when-there-is-a-bit-flip.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0029-UBI-fix-missing-scrub-when-there-is-a-bit-flip.patch
deleted file mode 100644
index 75dbf57..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0029-UBI-fix-missing-scrub-when-there-is-a-bit-flip.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 68ff23dc67132bf9668c4e7dab105f7d8a83937f Mon Sep 17 00:00:00 2001
-From: Bhavesh Parekh <bparekh at nvidia.com>
-Date: Wed, 30 Nov 2011 17:43:42 +0530
-Subject: [PATCH 029/129] UBI: fix missing scrub when there is a bit-flip
-
-commit e801e128b2200c40a0ec236cf2330b2586b6e05a upstream.
-
-Under some cases, when scrubbing the PEB if we did not get the lock on
-the PEB it fails to scrub. Add that PEB again to the scrub list
-
-Artem: minor amendments.
-
-Signed-off-by: Bhavesh Parekh <bparekh at nvidia.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/ubi/eba.c |    6 ++++--
- drivers/mtd/ubi/ubi.h |    2 ++
- drivers/mtd/ubi/wl.c  |    5 ++++-
- 3 files changed, 10 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/mtd/ubi/eba.c b/drivers/mtd/ubi/eba.c
-index fb7f19b..cd26da8 100644
---- a/drivers/mtd/ubi/eba.c
-+++ b/drivers/mtd/ubi/eba.c
-@@ -1028,12 +1028,14 @@ int ubi_eba_copy_leb(struct ubi_device *ubi, int from, int to,
- 	 * 'ubi_wl_put_peb()' function on the @ubi->move_mutex. In turn, we are
- 	 * holding @ubi->move_mutex and go sleep on the LEB lock. So, if the
- 	 * LEB is already locked, we just do not move it and return
--	 * %MOVE_CANCEL_RACE, which means that UBI will re-try, but later.
-+	 * %MOVE_RETRY. Note, we do not return %MOVE_CANCEL_RACE here because
-+	 * we do not know the reasons of the contention - it may be just a
-+	 * normal I/O on this LEB, so we want to re-try.
- 	 */
- 	err = leb_write_trylock(ubi, vol_id, lnum);
- 	if (err) {
- 		dbg_wl("contention on LEB %d:%d, cancel", vol_id, lnum);
--		return MOVE_CANCEL_RACE;
-+		return MOVE_RETRY;
- 	}
- 
- 	/*
-diff --git a/drivers/mtd/ubi/ubi.h b/drivers/mtd/ubi/ubi.h
-index dc64c76..d51d75d 100644
---- a/drivers/mtd/ubi/ubi.h
-+++ b/drivers/mtd/ubi/ubi.h
-@@ -120,6 +120,7 @@ enum {
-  *                     PEB
-  * MOVE_CANCEL_BITFLIPS: canceled because a bit-flip was detected in the
-  *                       target PEB
-+ * MOVE_RETRY: retry scrubbing the PEB
-  */
- enum {
- 	MOVE_CANCEL_RACE = 1,
-@@ -127,6 +128,7 @@ enum {
- 	MOVE_TARGET_RD_ERR,
- 	MOVE_TARGET_WR_ERR,
- 	MOVE_CANCEL_BITFLIPS,
-+	MOVE_RETRY,
- };
- 
- /**
-diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
-index 42c684c..277c429 100644
---- a/drivers/mtd/ubi/wl.c
-+++ b/drivers/mtd/ubi/wl.c
-@@ -795,7 +795,10 @@ static int wear_leveling_worker(struct ubi_device *ubi, struct ubi_work *wrk,
- 			protect = 1;
- 			goto out_not_moved;
- 		}
--
-+		if (err == MOVE_RETRY) {
-+			scrubbing = 1;
-+			goto out_not_moved;
-+		}
- 		if (err == MOVE_CANCEL_BITFLIPS || err == MOVE_TARGET_WR_ERR ||
- 		    err == MOVE_TARGET_RD_ERR) {
- 			/*
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0030-UBI-fix-use-after-free-on-error-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0030-UBI-fix-use-after-free-on-error-path.patch
deleted file mode 100644
index ee5d64c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0030-UBI-fix-use-after-free-on-error-path.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 917c71669ddf01983d843f8fc19bbdc296748a9c Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Thu, 5 Jan 2012 10:47:18 +0200
-Subject: [PATCH 030/129] UBI: fix use-after-free on error path
-
-commit e57e0d8e818512047fe379157c3f77f1b9fabffb upstream.
-
-When we fail to erase a PEB, we free the corresponding erase entry object,
-but then re-schedule this object if the error code was something like -EAGAIN.
-Obviously, it is a bug to use the object after we have freed it.
-
-Reported-by: Emese Revfy <re.emese at gmail.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/ubi/wl.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/mtd/ubi/wl.c b/drivers/mtd/ubi/wl.c
-index 277c429..0696e36 100644
---- a/drivers/mtd/ubi/wl.c
-+++ b/drivers/mtd/ubi/wl.c
-@@ -1052,7 +1052,6 @@ static int erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk,
- 
- 	ubi_err("failed to erase PEB %d, error %d", pnum, err);
- 	kfree(wl_wrk);
--	kmem_cache_free(ubi_wl_entry_slab, e);
- 
- 	if (err == -EINTR || err == -ENOMEM || err == -EAGAIN ||
- 	    err == -EBUSY) {
-@@ -1065,14 +1064,16 @@ static int erase_worker(struct ubi_device *ubi, struct ubi_work *wl_wrk,
- 			goto out_ro;
- 		}
- 		return err;
--	} else if (err != -EIO) {
-+	}
-+
-+	kmem_cache_free(ubi_wl_entry_slab, e);
-+	if (err != -EIO)
- 		/*
- 		 * If this is not %-EIO, we have no idea what to do. Scheduling
- 		 * this physical eraseblock for erasure again would cause
- 		 * errors again and again. Well, lets switch to R/O mode.
- 		 */
- 		goto out_ro;
--	}
- 
- 	/* It is %-EIO, the PEB went bad */
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0031-PCI-Fix-PCI_EXP_TYPE_RC_EC-value.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0031-PCI-Fix-PCI_EXP_TYPE_RC_EC-value.patch
deleted file mode 100644
index ab3d2d4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0031-PCI-Fix-PCI_EXP_TYPE_RC_EC-value.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 9e38af95ee520c7c6ffa8b4fcc976a3437ef8103 Mon Sep 17 00:00:00 2001
-From: Alex Williamson <alex.williamson at redhat.com>
-Date: Wed, 16 Nov 2011 09:24:16 -0700
-Subject: [PATCH 031/129] PCI: Fix PCI_EXP_TYPE_RC_EC value
-
-commit 1830ea91c20b06608f7cdb2455ce05ba834b3214 upstream.
-
-Spec shows this as 1010b = 0xa
-
-Signed-off-by: Alex Williamson <alex.williamson at redhat.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- include/linux/pci_regs.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/linux/pci_regs.h b/include/linux/pci_regs.h
-index b5d9657..411c412 100644
---- a/include/linux/pci_regs.h
-+++ b/include/linux/pci_regs.h
-@@ -392,7 +392,7 @@
- #define  PCI_EXP_TYPE_DOWNSTREAM 0x6	/* Downstream Port */
- #define  PCI_EXP_TYPE_PCI_BRIDGE 0x7	/* PCI/PCI-X Bridge */
- #define  PCI_EXP_TYPE_RC_END	0x9	/* Root Complex Integrated Endpoint */
--#define  PCI_EXP_TYPE_RC_EC	0x10	/* Root Complex Event Collector */
-+#define  PCI_EXP_TYPE_RC_EC	0xa	/* Root Complex Event Collector */
- #define PCI_EXP_FLAGS_SLOT	0x0100	/* Slot implemented */
- #define PCI_EXP_FLAGS_IRQ	0x3e00	/* Interrupt message number */
- #define PCI_EXP_DEVCAP		4	/* Device capabilities */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0032-PCI-msi-Disable-msi-interrupts-when-we-initialize-a-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0032-PCI-msi-Disable-msi-interrupts-when-we-initialize-a-.patch
deleted file mode 100644
index 6da8ef8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0032-PCI-msi-Disable-msi-interrupts-when-we-initialize-a-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 948a5d9ea80dfda0b40581e02217f30ffefd8e60 Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Mon, 17 Oct 2011 11:46:06 -0700
-Subject: [PATCH 032/129] PCI: msi: Disable msi interrupts when we initialize
- a pci device
-
-commit a776c491ca5e38c26d9f66923ff574d041e747f4 upstream.
-
-I traced a nasty kexec on panic boot failure to the fact that we had
-screaming msi interrupts and we were not disabling the msi messages at
-kernel startup.  The booting kernel had not enabled those interupts so
-was not prepared to handle them.
-
-I can see no reason why we would ever want to leave the msi interrupts
-enabled at boot if something else has enabled those interrupts.  The pci
-spec specifies that msi interrupts should be off by default.  Drivers
-are expected to enable the msi interrupts if they want to use them.  Our
-interrupt handling code reprograms the interrupt handlers at boot and
-will not be be able to do anything useful with an unexpected interrupt.
-
-This patch applies cleanly all of the way back to 2.6.32 where I noticed
-the problem.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/pci/msi.c |   10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/drivers/pci/msi.c b/drivers/pci/msi.c
-index 0e6d04d..e3efb43 100644
---- a/drivers/pci/msi.c
-+++ b/drivers/pci/msi.c
-@@ -870,5 +870,15 @@ EXPORT_SYMBOL(pci_msi_enabled);
- 
- void pci_msi_init_pci_dev(struct pci_dev *dev)
- {
-+	int pos;
- 	INIT_LIST_HEAD(&dev->msi_list);
-+
-+	/* Disable the msi hardware to avoid screaming interrupts
-+	 * during boot.  This is the power on reset default so
-+	 * usually this should be a noop.
-+	 */
-+	pos = pci_find_capability(dev, PCI_CAP_ID_MSI);
-+	if (pos)
-+		msi_set_enable(dev, pos, 0);
-+	msix_set_enable(dev, 0);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0033-x86-PCI-Ignore-CPU-non-addressable-_CRS-reserved-mem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0033-x86-PCI-Ignore-CPU-non-addressable-_CRS-reserved-mem.patch
deleted file mode 100644
index b7dc6e8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0033-x86-PCI-Ignore-CPU-non-addressable-_CRS-reserved-mem.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 08ba39eb25bcf540f859e7204c3307ee43b52eff Mon Sep 17 00:00:00 2001
-From: Gary Hade <garyhade at us.ibm.com>
-Date: Mon, 14 Nov 2011 15:42:16 -0800
-Subject: [PATCH 033/129] x86/PCI: Ignore CPU non-addressable _CRS reserved
- memory resources
-
-commit ae5cd86455381282ece162966183d3f208c6fad7 upstream.
-
-This assures that a _CRS reserved host bridge window or window region is
-not used if it is not addressable by the CPU.  The new code either trims
-the window to exclude the non-addressable portion or totally ignores the
-window if the entire window is non-addressable.
-
-The current code has been shown to be problematic with 32-bit non-PAE
-kernels on systems where _CRS reserves resources above 4GB.
-
-Signed-off-by: Gary Hade <garyhade at us.ibm.com>
-Reviewed-by: Bjorn Helgaas <bhelgaas at google.com>
-Cc: Thomas Renninger <trenn at novell.com>
-Cc: linux-kernel at vger.kernel.org
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/pci/acpi.c |   18 ++++++++++++++++--
- 1 file changed, 16 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/pci/acpi.c b/arch/x86/pci/acpi.c
-index 404f21a..f8348ab 100644
---- a/arch/x86/pci/acpi.c
-+++ b/arch/x86/pci/acpi.c
-@@ -149,7 +149,7 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
- 	struct acpi_resource_address64 addr;
- 	acpi_status status;
- 	unsigned long flags;
--	u64 start, end;
-+	u64 start, orig_end, end;
- 
- 	status = resource_to_addr(acpi_res, &addr);
- 	if (!ACPI_SUCCESS(status))
-@@ -165,7 +165,21 @@ setup_resource(struct acpi_resource *acpi_res, void *data)
- 		return AE_OK;
- 
- 	start = addr.minimum + addr.translation_offset;
--	end = addr.maximum + addr.translation_offset;
-+	orig_end = end = addr.maximum + addr.translation_offset;
-+
-+	/* Exclude non-addressable range or non-addressable portion of range */
-+	end = min(end, (u64)iomem_resource.end);
-+	if (end <= start) {
-+		dev_info(&info->bridge->dev,
-+			"host bridge window [%#llx-%#llx] "
-+			"(ignored, not CPU addressable)\n", start, orig_end);
-+		return AE_OK;
-+	} else if (orig_end != end) {
-+		dev_info(&info->bridge->dev,
-+			"host bridge window [%#llx-%#llx] "
-+			"([%#llx-%#llx] ignored, not CPU addressable)\n",
-+			start, orig_end, end + 1, orig_end);
-+	}
- 
- 	res = &info->res[info->res_num];
- 	res->name = info->name;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0034-x86-PCI-amd-factor-out-MMCONFIG-discovery.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0034-x86-PCI-amd-factor-out-MMCONFIG-discovery.patch
deleted file mode 100644
index 8d30b65..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0034-x86-PCI-amd-factor-out-MMCONFIG-discovery.patch
+++ /dev/null
@@ -1,160 +0,0 @@
-From 64525bdf1bbff67faf88ccd7bc83ef856489ed24 Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas at google.com>
-Date: Thu, 5 Jan 2012 14:27:19 -0700
-Subject: [PATCH 034/129] x86/PCI: amd: factor out MMCONFIG discovery
-
-commit 24d25dbfa63c376323096660bfa9ad45a08870ce upstream.
-
-This factors out the AMD native MMCONFIG discovery so we can use it
-outside amd_bus.c.
-
-amd_bus.c reads AMD MSRs so it can remove the MMCONFIG area from the
-PCI resources.  We may also need the MMCONFIG information to work
-around BIOS defects in the ACPI MCFG table.
-
-Cc: Borislav Petkov <borislav.petkov at amd.com>
-Cc: Yinghai Lu <yinghai at kernel.org>
-Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/include/asm/amd_nb.h |    2 ++
- arch/x86/kernel/amd_nb.c      |   31 ++++++++++++++++++++++++++++++
- arch/x86/pci/amd_bus.c        |   42 +++++++++++------------------------------
- 3 files changed, 44 insertions(+), 31 deletions(-)
-
-diff --git a/arch/x86/include/asm/amd_nb.h b/arch/x86/include/asm/amd_nb.h
-index 8e41071..49ad773 100644
---- a/arch/x86/include/asm/amd_nb.h
-+++ b/arch/x86/include/asm/amd_nb.h
-@@ -1,6 +1,7 @@
- #ifndef _ASM_X86_AMD_NB_H
- #define _ASM_X86_AMD_NB_H
- 
-+#include <linux/ioport.h>
- #include <linux/pci.h>
- 
- struct amd_nb_bus_dev_range {
-@@ -13,6 +14,7 @@ extern const struct pci_device_id amd_nb_misc_ids[];
- extern const struct amd_nb_bus_dev_range amd_nb_bus_dev_ranges[];
- 
- extern bool early_is_amd_nb(u32 value);
-+extern struct resource *amd_get_mmconfig_range(struct resource *res);
- extern int amd_cache_northbridges(void);
- extern void amd_flush_garts(void);
- extern int amd_numa_init(void);
-diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c
-index 4c39baa..bae1efe 100644
---- a/arch/x86/kernel/amd_nb.c
-+++ b/arch/x86/kernel/amd_nb.c
-@@ -119,6 +119,37 @@ bool __init early_is_amd_nb(u32 device)
- 	return false;
- }
- 
-+struct resource *amd_get_mmconfig_range(struct resource *res)
-+{
-+	u32 address;
-+	u64 base, msr;
-+	unsigned segn_busn_bits;
-+
-+	if (boot_cpu_data.x86_vendor != X86_VENDOR_AMD)
-+		return NULL;
-+
-+	/* assume all cpus from fam10h have mmconfig */
-+        if (boot_cpu_data.x86 < 0x10)
-+		return NULL;
-+
-+	address = MSR_FAM10H_MMIO_CONF_BASE;
-+	rdmsrl(address, msr);
-+
-+	/* mmconfig is not enabled */
-+	if (!(msr & FAM10H_MMIO_CONF_ENABLE))
-+		return NULL;
-+
-+	base = msr & (FAM10H_MMIO_CONF_BASE_MASK<<FAM10H_MMIO_CONF_BASE_SHIFT);
-+
-+	segn_busn_bits = (msr >> FAM10H_MMIO_CONF_BUSRANGE_SHIFT) &
-+			 FAM10H_MMIO_CONF_BUSRANGE_MASK;
-+
-+	res->flags = IORESOURCE_MEM;
-+	res->start = base;
-+	res->end = base + (1ULL<<(segn_busn_bits + 20)) - 1;
-+	return res;
-+}
-+
- int amd_get_subcaches(int cpu)
- {
- 	struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))->link;
-diff --git a/arch/x86/pci/amd_bus.c b/arch/x86/pci/amd_bus.c
-index 026e493..385a940 100644
---- a/arch/x86/pci/amd_bus.c
-+++ b/arch/x86/pci/amd_bus.c
-@@ -30,34 +30,6 @@ static struct pci_hostbridge_probe pci_probes[] __initdata = {
- 	{ 0, 0x18, PCI_VENDOR_ID_AMD, 0x1300 },
- };
- 
--static u64 __initdata fam10h_mmconf_start;
--static u64 __initdata fam10h_mmconf_end;
--static void __init get_pci_mmcfg_amd_fam10h_range(void)
--{
--	u32 address;
--	u64 base, msr;
--	unsigned segn_busn_bits;
--
--	/* assume all cpus from fam10h have mmconf */
--        if (boot_cpu_data.x86 < 0x10)
--		return;
--
--	address = MSR_FAM10H_MMIO_CONF_BASE;
--	rdmsrl(address, msr);
--
--	/* mmconfig is not enable */
--	if (!(msr & FAM10H_MMIO_CONF_ENABLE))
--		return;
--
--	base = msr & (FAM10H_MMIO_CONF_BASE_MASK<<FAM10H_MMIO_CONF_BASE_SHIFT);
--
--	segn_busn_bits = (msr >> FAM10H_MMIO_CONF_BUSRANGE_SHIFT) &
--			 FAM10H_MMIO_CONF_BUSRANGE_MASK;
--
--	fam10h_mmconf_start = base;
--	fam10h_mmconf_end = base + (1ULL<<(segn_busn_bits + 20)) - 1;
--}
--
- #define RANGE_NUM 16
- 
- /**
-@@ -85,6 +57,9 @@ static int __init early_fill_mp_bus_info(void)
- 	u64 val;
- 	u32 address;
- 	bool found;
-+	struct resource fam10h_mmconf_res, *fam10h_mmconf;
-+	u64 fam10h_mmconf_start;
-+	u64 fam10h_mmconf_end;
- 
- 	if (!early_pci_allowed())
- 		return -1;
-@@ -211,12 +186,17 @@ static int __init early_fill_mp_bus_info(void)
- 		subtract_range(range, RANGE_NUM, 0, end);
- 
- 	/* get mmconfig */
--	get_pci_mmcfg_amd_fam10h_range();
-+	fam10h_mmconf = amd_get_mmconfig_range(&fam10h_mmconf_res);
- 	/* need to take out mmconf range */
--	if (fam10h_mmconf_end) {
--		printk(KERN_DEBUG "Fam 10h mmconf [%llx, %llx]\n", fam10h_mmconf_start, fam10h_mmconf_end);
-+	if (fam10h_mmconf) {
-+		printk(KERN_DEBUG "Fam 10h mmconf %pR\n", fam10h_mmconf);
-+		fam10h_mmconf_start = fam10h_mmconf->start;
-+		fam10h_mmconf_end = fam10h_mmconf->end;
- 		subtract_range(range, RANGE_NUM, fam10h_mmconf_start,
- 				 fam10h_mmconf_end + 1);
-+	} else {
-+		fam10h_mmconf_start = 0;
-+		fam10h_mmconf_end = 0;
- 	}
- 
- 	/* mmio resource */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0035-x86-PCI-build-amd_bus.o-only-when-CONFIG_AMD_NB-y.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0035-x86-PCI-build-amd_bus.o-only-when-CONFIG_AMD_NB-y.patch
deleted file mode 100644
index 3fd79be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0035-x86-PCI-build-amd_bus.o-only-when-CONFIG_AMD_NB-y.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ab624504467af8cf207855de15bc8b835605ba88 Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas at google.com>
-Date: Thu, 12 Jan 2012 08:01:40 -0700
-Subject: [PATCH 035/129] x86/PCI: build amd_bus.o only when CONFIG_AMD_NB=y
-
-commit 5cf9a4e69c1ff0ccdd1d2b7404f95c0531355274 upstream.
-
-We only need amd_bus.o for AMD systems with PCI.  arch/x86/pci/Makefile
-already depends on CONFIG_PCI=y, so this patch just adds the dependency
-on CONFIG_AMD_NB.
-
-Cc: Yinghai Lu <yinghai at kernel.org>
-Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/pci/Makefile |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/pci/Makefile b/arch/x86/pci/Makefile
-index 6b8759f..d24d3da 100644
---- a/arch/x86/pci/Makefile
-+++ b/arch/x86/pci/Makefile
-@@ -18,8 +18,9 @@ obj-$(CONFIG_X86_NUMAQ)		+= numaq_32.o
- obj-$(CONFIG_X86_MRST)		+= mrst.o
- 
- obj-y				+= common.o early.o
--obj-y				+= amd_bus.o bus_numa.o
-+obj-y				+= bus_numa.o
- 
-+obj-$(CONFIG_AMD_NB)		+= amd_bus.o
- obj-$(CONFIG_PCI_CNB20LE_QUIRK)	+= broadcom_bus.o
- 
- ifeq ($(CONFIG_PCI_DEBUG),y)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0036-SCSI-mpt2sas-Release-spinlock-for-the-raid-device-li.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0036-SCSI-mpt2sas-Release-spinlock-for-the-raid-device-li.patch
deleted file mode 100644
index 411ca8b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0036-SCSI-mpt2sas-Release-spinlock-for-the-raid-device-li.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From b76617ff2fa38409d3065f944359e5e47b290014 Mon Sep 17 00:00:00 2001
-From: "nagalakshmi.nandigama at lsi.com" <nagalakshmi.nandigama at lsi.com>
-Date: Thu, 1 Dec 2011 07:52:56 +0530
-Subject: [PATCH 036/129] SCSI: mpt2sas: Release spinlock for the raid device
- list before blocking it
-
-commit 30c43282f3d347f47f9e05199d2b14f56f3f2837 upstream.
-
-Added code to release the spinlock that is used to protect the
-raid device list before calling a function that can block. The
-blocking was causing a reschedule, and subsequently it is tried
-to acquire the same lock, resulting in a panic (NMI Watchdog
-detecting a CPU lockup).
-
-Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama at lsi.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/scsi/mpt2sas/mpt2sas_scsih.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-index d570573..3a4f666 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-@@ -6714,6 +6714,7 @@ _scsih_mark_responding_raid_device(struct MPT2SAS_ADAPTER *ioc, u64 wwid,
- 			} else
- 				sas_target_priv_data = NULL;
- 			raid_device->responding = 1;
-+			spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
- 			starget_printk(KERN_INFO, raid_device->starget,
- 			    "handle(0x%04x), wwid(0x%016llx)\n", handle,
- 			    (unsigned long long)raid_device->wwid);
-@@ -6724,16 +6725,16 @@ _scsih_mark_responding_raid_device(struct MPT2SAS_ADAPTER *ioc, u64 wwid,
- 			 */
- 			_scsih_init_warpdrive_properties(ioc, raid_device);
- 			if (raid_device->handle == handle)
--				goto out;
-+				return;
- 			printk(KERN_INFO "\thandle changed from(0x%04x)!!!\n",
- 			    raid_device->handle);
- 			raid_device->handle = handle;
- 			if (sas_target_priv_data)
- 				sas_target_priv_data->handle = handle;
--			goto out;
-+			return;
- 		}
- 	}
-- out:
-+
- 	spin_unlock_irqrestore(&ioc->raid_device_lock, flags);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0037-SCSI-mpt2sas-Fix-for-memory-allocation-error-for-lar.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0037-SCSI-mpt2sas-Fix-for-memory-allocation-error-for-lar.patch
deleted file mode 100644
index d58ff27..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0037-SCSI-mpt2sas-Fix-for-memory-allocation-error-for-lar.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From c987e1592482d819fd950fbaad9a1405f892c39e Mon Sep 17 00:00:00 2001
-From: "nagalakshmi.nandigama at lsi.com" <nagalakshmi.nandigama at lsi.com>
-Date: Thu, 1 Dec 2011 07:53:08 +0530
-Subject: [PATCH 037/129] SCSI: mpt2sas : Fix for memory allocation error for
- large host credits
-
-commit aff132d95ffe14eca96cab90597cdd010b457af7 upstream.
-
-The amount of memory required for tracking chain buffers is rather
-large, and when the host credit count is big, memory allocation
-failure occurs inside __get_free_pages.
-
-The fix is to limit the number of chains to 100,000.  In addition,
-the number of host credits is limited to 30,000 IOs. However this
-limitation can be overridden this using the command line option
-max_queue_depth.  The algorithm for calculating the
-reply_post_queue_depth is changed so that it is equal to
-(reply_free_queue_depth + 16), previously it was (reply_free_queue_depth * 2).
-
-Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama at lsi.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/scsi/mpt2sas/mpt2sas_base.c  |   83 +++++++++++-----------------------
- drivers/scsi/mpt2sas/mpt2sas_scsih.c |    4 +-
- 2 files changed, 29 insertions(+), 58 deletions(-)
-
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
-index beda04a..0794c72 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_base.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
-@@ -65,6 +65,8 @@ static MPT_CALLBACK	mpt_callbacks[MPT_MAX_CALLBACKS];
- 
- #define FAULT_POLLING_INTERVAL 1000 /* in milliseconds */
- 
-+#define MAX_HBA_QUEUE_DEPTH	30000
-+#define MAX_CHAIN_DEPTH		100000
- static int max_queue_depth = -1;
- module_param(max_queue_depth, int, 0);
- MODULE_PARM_DESC(max_queue_depth, " max controller queue depth ");
-@@ -2311,8 +2313,6 @@ _base_release_memory_pools(struct MPT2SAS_ADAPTER *ioc)
- 		}
- 		if (ioc->chain_dma_pool)
- 			pci_pool_destroy(ioc->chain_dma_pool);
--	}
--	if (ioc->chain_lookup) {
- 		free_pages((ulong)ioc->chain_lookup, ioc->chain_pages);
- 		ioc->chain_lookup = NULL;
- 	}
-@@ -2330,9 +2330,7 @@ static int
- _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc,  int sleep_flag)
- {
- 	struct mpt2sas_facts *facts;
--	u32 queue_size, queue_diff;
- 	u16 max_sge_elements;
--	u16 num_of_reply_frames;
- 	u16 chains_needed_per_io;
- 	u32 sz, total_sz, reply_post_free_sz;
- 	u32 retry_sz;
-@@ -2359,7 +2357,8 @@ _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc,  int sleep_flag)
- 		max_request_credit = (max_queue_depth < facts->RequestCredit)
- 		    ? max_queue_depth : facts->RequestCredit;
- 	else
--		max_request_credit = facts->RequestCredit;
-+		max_request_credit = min_t(u16, facts->RequestCredit,
-+		    MAX_HBA_QUEUE_DEPTH);
- 
- 	ioc->hba_queue_depth = max_request_credit;
- 	ioc->hi_priority_depth = facts->HighPriorityCredit;
-@@ -2400,50 +2399,25 @@ _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc,  int sleep_flag)
- 	}
- 	ioc->chains_needed_per_io = chains_needed_per_io;
- 
--	/* reply free queue sizing - taking into account for events */
--	num_of_reply_frames = ioc->hba_queue_depth + 32;
--
--	/* number of replies frames can't be a multiple of 16 */
--	/* decrease number of reply frames by 1 */
--	if (!(num_of_reply_frames % 16))
--		num_of_reply_frames--;
--
--	/* calculate number of reply free queue entries
--	 *  (must be multiple of 16)
--	 */
--
--	/* (we know reply_free_queue_depth is not a multiple of 16) */
--	queue_size = num_of_reply_frames;
--	queue_size += 16 - (queue_size % 16);
--	ioc->reply_free_queue_depth = queue_size;
--
--	/* reply descriptor post queue sizing */
--	/* this size should be the number of request frames + number of reply
--	 * frames
--	 */
--
--	queue_size = ioc->hba_queue_depth + num_of_reply_frames + 1;
--	/* round up to 16 byte boundary */
--	if (queue_size % 16)
--		queue_size += 16 - (queue_size % 16);
--
--	/* check against IOC maximum reply post queue depth */
--	if (queue_size > facts->MaxReplyDescriptorPostQueueDepth) {
--		queue_diff = queue_size -
--		    facts->MaxReplyDescriptorPostQueueDepth;
-+	/* reply free queue sizing - taking into account for 64 FW events */
-+	ioc->reply_free_queue_depth = ioc->hba_queue_depth + 64;
- 
--		/* round queue_diff up to multiple of 16 */
--		if (queue_diff % 16)
--			queue_diff += 16 - (queue_diff % 16);
--
--		/* adjust hba_queue_depth, reply_free_queue_depth,
--		 * and queue_size
--		 */
--		ioc->hba_queue_depth -= (queue_diff / 2);
--		ioc->reply_free_queue_depth -= (queue_diff / 2);
--		queue_size = facts->MaxReplyDescriptorPostQueueDepth;
-+	/* align the reply post queue on the next 16 count boundary */
-+	if (!ioc->reply_free_queue_depth % 16)
-+		ioc->reply_post_queue_depth = ioc->reply_free_queue_depth + 16;
-+	else
-+		ioc->reply_post_queue_depth = ioc->reply_free_queue_depth +
-+				32 - (ioc->reply_free_queue_depth % 16);
-+	if (ioc->reply_post_queue_depth >
-+	    facts->MaxReplyDescriptorPostQueueDepth) {
-+		ioc->reply_post_queue_depth = min_t(u16,
-+		    (facts->MaxReplyDescriptorPostQueueDepth -
-+		    (facts->MaxReplyDescriptorPostQueueDepth % 16)),
-+		    (ioc->hba_queue_depth - (ioc->hba_queue_depth % 16)));
-+		ioc->reply_free_queue_depth = ioc->reply_post_queue_depth - 16;
-+		ioc->hba_queue_depth = ioc->reply_free_queue_depth - 64;
- 	}
--	ioc->reply_post_queue_depth = queue_size;
-+
- 
- 	dinitprintk(ioc, printk(MPT2SAS_INFO_FMT "scatter gather: "
- 	    "sge_in_main_msg(%d), sge_per_chain(%d), sge_per_io(%d), "
-@@ -2529,15 +2503,12 @@ _base_allocate_memory_pools(struct MPT2SAS_ADAPTER *ioc,  int sleep_flag)
- 	    "depth(%d)\n", ioc->name, ioc->request,
- 	    ioc->scsiio_depth));
- 
--	/* loop till the allocation succeeds */
--	do {
--		sz = ioc->chain_depth * sizeof(struct chain_tracker);
--		ioc->chain_pages = get_order(sz);
--		ioc->chain_lookup = (struct chain_tracker *)__get_free_pages(
--		    GFP_KERNEL, ioc->chain_pages);
--		if (ioc->chain_lookup == NULL)
--			ioc->chain_depth -= 100;
--	} while (ioc->chain_lookup == NULL);
-+	ioc->chain_depth = min_t(u32, ioc->chain_depth, MAX_CHAIN_DEPTH);
-+	sz = ioc->chain_depth * sizeof(struct chain_tracker);
-+	ioc->chain_pages = get_order(sz);
-+
-+	ioc->chain_lookup = (struct chain_tracker *)__get_free_pages(
-+	    GFP_KERNEL, ioc->chain_pages);
- 	ioc->chain_dma_pool = pci_pool_create("chain pool", ioc->pdev,
- 	    ioc->request_sz, 16, 0);
- 	if (!ioc->chain_dma_pool) {
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-index 3a4f666..9bc6fb2 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-@@ -1007,8 +1007,8 @@ _scsih_get_chain_buffer_tracker(struct MPT2SAS_ADAPTER *ioc, u16 smid)
- 	spin_lock_irqsave(&ioc->scsi_lookup_lock, flags);
- 	if (list_empty(&ioc->free_chain_list)) {
- 		spin_unlock_irqrestore(&ioc->scsi_lookup_lock, flags);
--		printk(MPT2SAS_WARN_FMT "chain buffers not available\n",
--		    ioc->name);
-+		dfailprintk(ioc, printk(MPT2SAS_WARN_FMT "chain buffers not "
-+			"available\n", ioc->name));
- 		return NULL;
- 	}
- 	chain_req = list_entry(ioc->free_chain_list.next,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0038-xen-xenbus-Reject-replies-with-payload-XENSTORE_PAYL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0038-xen-xenbus-Reject-replies-with-payload-XENSTORE_PAYL.patch
deleted file mode 100644
index ce8871b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0038-xen-xenbus-Reject-replies-with-payload-XENSTORE_PAYL.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 60ff826ed445ff093db42fd2e5ac97839c3c43d4 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <Ian.Campbell at citrix.com>
-Date: Wed, 4 Jan 2012 09:34:49 +0000
-Subject: [PATCH 038/129] xen/xenbus: Reject replies with payload >
- XENSTORE_PAYLOAD_MAX.
-
-commit 9e7860cee18241633eddb36a4c34c7b61d8cecbc upstream.
-
-Haogang Chen found out that:
-
- There is a potential integer overflow in process_msg() that could result
- in cross-domain attack.
-
- 	body = kmalloc(msg->hdr.len + 1, GFP_NOIO | __GFP_HIGH);
-
- When a malicious guest passes 0xffffffff in msg->hdr.len, the subsequent
- call to xb_read() would write to a zero-length buffer.
-
- The other end of this connection is always the xenstore backend daemon
- so there is no guest (malicious or otherwise) which can do this. The
- xenstore daemon is a trusted component in the system.
-
- However this seem like a reasonable robustness improvement so we should
- have it.
-
-And Ian when read the API docs found that:
-        The payload length (len field of the header) is limited to 4096
-        (XENSTORE_PAYLOAD_MAX) in both directions.  If a client exceeds the
-        limit, its xenstored connection will be immediately killed by
-        xenstored, which is usually catastrophic from the client's point of
-        view.  Clients (particularly domains, which cannot just reconnect)
-        should avoid this.
-
-so this patch checks against that instead.
-
-This also avoids a potential integer overflow pointed out by Haogang Chen.
-
-Signed-off-by: Ian Campbell <ian.campbell at citrix.com>
-Cc: Haogang Chen <haogangchen at gmail.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/xen/xenbus/xenbus_xs.c     |    6 ++++++
- include/xen/interface/io/xs_wire.h |    3 +++
- 2 files changed, 9 insertions(+)
-
-diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
-index ede860f..a580b17 100644
---- a/drivers/xen/xenbus/xenbus_xs.c
-+++ b/drivers/xen/xenbus/xenbus_xs.c
-@@ -801,6 +801,12 @@ static int process_msg(void)
- 		goto out;
- 	}
- 
-+	if (msg->hdr.len > XENSTORE_PAYLOAD_MAX) {
-+		kfree(msg);
-+		err = -EINVAL;
-+		goto out;
-+	}
-+
- 	body = kmalloc(msg->hdr.len + 1, GFP_NOIO | __GFP_HIGH);
- 	if (body == NULL) {
- 		kfree(msg);
-diff --git a/include/xen/interface/io/xs_wire.h b/include/xen/interface/io/xs_wire.h
-index f6f07aa..7cdfca2 100644
---- a/include/xen/interface/io/xs_wire.h
-+++ b/include/xen/interface/io/xs_wire.h
-@@ -87,4 +87,7 @@ struct xenstore_domain_interface {
-     XENSTORE_RING_IDX rsp_cons, rsp_prod;
- };
- 
-+/* Violating this is very bad.  See docs/misc/xenstore.txt. */
-+#define XENSTORE_PAYLOAD_MAX 4096
-+
- #endif /* _XS_WIRE_H */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0039-md-raid1-perform-bad-block-tests-for-WriteMostly-dev.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0039-md-raid1-perform-bad-block-tests-for-WriteMostly-dev.patch
deleted file mode 100644
index a6df906..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0039-md-raid1-perform-bad-block-tests-for-WriteMostly-dev.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 4f2bf4b7d712836951cdbfa4807ae0309711487c Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Mon, 9 Jan 2012 01:41:51 +1100
-Subject: [PATCH 039/129] md/raid1: perform bad-block tests for WriteMostly
- devices too.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 307729c8bc5b5a41361af8af95906eee7552acb1 upstream.
-
-We normally try to avoid reading from write-mostly devices, but when
-we do we really have to check for bad blocks and be sure not to
-try reading them.
-
-With the current code, best_good_sectors might not get set and that
-causes zero-length read requests to be send down which is very
-confusing.
-
-This bug was introduced in commit d2eb35acfdccbe2 and so the patch
-is suitable for 3.1.x and 3.2.x
-
-Reported-and-tested-by: Michał Mirosław <mirq-linux at rere.qmqm.pl>
-Reported-and-tested-by: Art -kwaak- van Breemen <ard at telegraafnet.nl>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/md/raid1.c |   11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index ede2461..7d9e071 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -525,8 +525,17 @@ static int read_balance(struct r1conf *conf, struct r1bio *r1_bio, int *max_sect
- 		if (test_bit(WriteMostly, &rdev->flags)) {
- 			/* Don't balance among write-mostly, just
- 			 * use the first as a last resort */
--			if (best_disk < 0)
-+			if (best_disk < 0) {
-+				if (is_badblock(rdev, this_sector, sectors,
-+						&first_bad, &bad_sectors)) {
-+					if (first_bad < this_sector)
-+						/* Cannot use this */
-+						continue;
-+					best_good_sectors = first_bad - this_sector;
-+				} else
-+					best_good_sectors = sectors;
- 				best_disk = disk;
-+			}
- 			continue;
- 		}
- 		/* This is a reasonable device to use.  It might
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0040-ima-free-duplicate-measurement-memory.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0040-ima-free-duplicate-measurement-memory.patch
deleted file mode 100644
index 221f3df..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0040-ima-free-duplicate-measurement-memory.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 5800ae9277818c4ce77d7efd4a1035738ec40400 Mon Sep 17 00:00:00 2001
-From: Roberto Sassu <roberto.sassu at polito.it>
-Date: Mon, 19 Dec 2011 15:57:27 +0100
-Subject: [PATCH 040/129] ima: free duplicate measurement memory
-
-commit 45fae7493970d7c45626ccd96d4a74f5f1eea5a9 upstream.
-
-Info about new measurements are cached in the iint for performance.  When
-the inode is flushed from cache, the associated iint is flushed as well.
-Subsequent access to the inode will cause the inode to be re-measured and
-will attempt to add a duplicate entry to the measurement list.
-
-This patch frees the duplicate measurement memory, fixing a memory leak.
-
-Signed-off-by: Roberto Sassu <roberto.sassu at polito.it>
-Signed-off-by: Mimi Zohar <zohar at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- security/integrity/ima/ima_api.c   |    4 ++--
- security/integrity/ima/ima_queue.c |    1 +
- 2 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/security/integrity/ima/ima_api.c b/security/integrity/ima/ima_api.c
-index 0d50df0..88a2788 100644
---- a/security/integrity/ima/ima_api.c
-+++ b/security/integrity/ima/ima_api.c
-@@ -178,8 +178,8 @@ void ima_store_measurement(struct integrity_iint_cache *iint,
- 	strncpy(entry->template.file_name, filename, IMA_EVENT_NAME_LEN_MAX);
- 
- 	result = ima_store_template(entry, violation, inode);
--	if (!result)
-+	if (!result || result == -EEXIST)
- 		iint->flags |= IMA_MEASURED;
--	else
-+	if (result < 0)
- 		kfree(entry);
- }
-diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
-index 8e28f04..e1a5062 100644
---- a/security/integrity/ima/ima_queue.c
-+++ b/security/integrity/ima/ima_queue.c
-@@ -114,6 +114,7 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation,
- 		memcpy(digest, entry->digest, sizeof digest);
- 		if (ima_lookup_digest_entry(digest)) {
- 			audit_cause = "hash_exists";
-+			result = -EEXIST;
- 			goto out;
- 		}
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0041-ima-fix-invalid-memory-reference.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0041-ima-fix-invalid-memory-reference.patch
deleted file mode 100644
index 3f30fe2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0041-ima-fix-invalid-memory-reference.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 2c5908ebba650537dda1db47220afc062e7d61bd Mon Sep 17 00:00:00 2001
-From: Roberto Sassu <roberto.sassu at polito.it>
-Date: Mon, 19 Dec 2011 15:57:28 +0100
-Subject: [PATCH 041/129] ima: fix invalid memory reference
-
-commit 7b7e5916aa2f46e57f8bd8cb89c34620ebfda5da upstream.
-
-Don't free a valid measurement entry on TPM PCR extend failure.
-
-Signed-off-by: Roberto Sassu <roberto.sassu at polito.it>
-Signed-off-by: Mimi Zohar <zohar at us.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- security/integrity/ima/ima_queue.c |   16 +++++++++++-----
- 1 file changed, 11 insertions(+), 5 deletions(-)
-
-diff --git a/security/integrity/ima/ima_queue.c b/security/integrity/ima/ima_queue.c
-index e1a5062..55a6271 100644
---- a/security/integrity/ima/ima_queue.c
-+++ b/security/integrity/ima/ima_queue.c
-@@ -23,6 +23,8 @@
- #include <linux/slab.h>
- #include "ima.h"
- 
-+#define AUDIT_CAUSE_LEN_MAX 32
-+
- LIST_HEAD(ima_measurements);	/* list of all measurements */
- 
- /* key: inode (before secure-hashing a file) */
-@@ -94,7 +96,8 @@ static int ima_pcr_extend(const u8 *hash)
- 
- 	result = tpm_pcr_extend(TPM_ANY_NUM, CONFIG_IMA_MEASURE_PCR_IDX, hash);
- 	if (result != 0)
--		pr_err("IMA: Error Communicating to TPM chip\n");
-+		pr_err("IMA: Error Communicating to TPM chip, result: %d\n",
-+		       result);
- 	return result;
- }
- 
-@@ -106,8 +109,9 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation,
- {
- 	u8 digest[IMA_DIGEST_SIZE];
- 	const char *audit_cause = "hash_added";
-+	char tpm_audit_cause[AUDIT_CAUSE_LEN_MAX];
- 	int audit_info = 1;
--	int result = 0;
-+	int result = 0, tpmresult = 0;
- 
- 	mutex_lock(&ima_extend_list_mutex);
- 	if (!violation) {
-@@ -129,9 +133,11 @@ int ima_add_template_entry(struct ima_template_entry *entry, int violation,
- 	if (violation)		/* invalidate pcr */
- 		memset(digest, 0xff, sizeof digest);
- 
--	result = ima_pcr_extend(digest);
--	if (result != 0) {
--		audit_cause = "TPM error";
-+	tpmresult = ima_pcr_extend(digest);
-+	if (tpmresult != 0) {
-+		snprintf(tpm_audit_cause, AUDIT_CAUSE_LEN_MAX, "TPM_error(%d)",
-+			 tpmresult);
-+		audit_cause = tpm_audit_cause;
- 		audit_info = 0;
- 	}
- out:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0042-slub-fix-a-possible-memleak-in-__slab_alloc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0042-slub-fix-a-possible-memleak-in-__slab_alloc.patch
deleted file mode 100644
index 2af89dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0042-slub-fix-a-possible-memleak-in-__slab_alloc.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 71490e8f6f58ec56533554888983ce09d6ee5cb1 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 13 Dec 2011 04:57:06 +0100
-Subject: [PATCH 042/129] slub: fix a possible memleak in __slab_alloc()
-
-commit 73736e0387ba0e6d2b703407b4d26168d31516a7 upstream.
-
-Zhihua Che reported a possible memleak in slub allocator on
-CONFIG_PREEMPT=y builds.
-
-It is possible current thread migrates right before disabling irqs in
-__slab_alloc(). We must check again c->freelist, and perform a normal
-allocation instead of scratching c->freelist.
-
-Many thanks to Zhihua Che for spotting this bug, introduced in 2.6.39
-
-V2: Its also possible an IRQ freed one (or several) object(s) and
-populated c->freelist, so its not a CONFIG_PREEMPT only problem.
-
-Reported-by: Zhihua Che <zhihua.che at gmail.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Acked-by: Christoph Lameter <cl at linux.com>
-Signed-off-by: Pekka Enberg <penberg at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- mm/slub.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/mm/slub.c b/mm/slub.c
-index ed3334d..1a919f0 100644
---- a/mm/slub.c
-+++ b/mm/slub.c
-@@ -2166,6 +2166,11 @@ redo:
- 		goto new_slab;
- 	}
- 
-+	/* must check again c->freelist in case of cpu migration or IRQ */
-+	object = c->freelist;
-+	if (object)
-+		goto load_freelist;
-+
- 	stat(s, ALLOC_SLOWPATH);
- 
- 	do {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0043-PNP-work-around-Dell-1536-1546-BIOS-MMCONFIG-bug-tha.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0043-PNP-work-around-Dell-1536-1546-BIOS-MMCONFIG-bug-tha.patch
deleted file mode 100644
index c8c5bd7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0043-PNP-work-around-Dell-1536-1546-BIOS-MMCONFIG-bug-tha.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From ac901f18d34bc2bf1be5e6b56cf6eeb045c0bbee Mon Sep 17 00:00:00 2001
-From: Bjorn Helgaas <bhelgaas at google.com>
-Date: Thu, 5 Jan 2012 14:27:24 -0700
-Subject: [PATCH 043/129] PNP: work around Dell 1536/1546 BIOS MMCONFIG bug
- that breaks USB
-
-commit eb31aae8cb5eb54e234ed2d857ddac868195d911 upstream.
-
-Some Dell BIOSes have MCFG tables that don't report the entire
-MMCONFIG area claimed by the chipset.  If we move PCI devices into
-that claimed-but-unreported area, they don't work.
-
-This quirk reads the AMD MMCONFIG MSRs and adds PNP0C01 resources as
-needed to cover the entire area.
-
-Example problem scenario:
-
-  BIOS-e820: 00000000cfec5400 - 00000000d4000000 (reserved)
-  Fam 10h mmconf [d0000000, dfffffff]
-  PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xd0000000-0xd3ffffff] (base 0xd0000000)
-  pnp 00:0c: [mem 0xd0000000-0xd3ffffff]
-  pci 0000:00:12.0: reg 10: [mem 0xffb00000-0xffb00fff]
-  pci 0000:00:12.0: no compatible bridge window for [mem 0xffb00000-0xffb00fff]
-  pci 0000:00:12.0: BAR 0: assigned [mem 0xd4000000-0xd40000ff]
-
-Reported-by: Lisa Salimbas <lisa.salimbas at canonical.com>
-Reported-by: <thuban at singularity.fr>
-Tested-by: dann frazier <dann.frazier at canonical.com>
-References: https://bugzilla.kernel.org/show_bug.cgi?id=31602
-References: https://bugs.launchpad.net/ubuntu/+source/linux/+bug/647043
-References: https://bugzilla.redhat.com/show_bug.cgi?id=770308
-Signed-off-by: Bjorn Helgaas <bhelgaas at google.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/pnp/quirks.c |   42 ++++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 42 insertions(+)
-
-diff --git a/drivers/pnp/quirks.c b/drivers/pnp/quirks.c
-index dfbd5a6..258fef2 100644
---- a/drivers/pnp/quirks.c
-+++ b/drivers/pnp/quirks.c
-@@ -295,6 +295,45 @@ static void quirk_system_pci_resources(struct pnp_dev *dev)
- 	}
- }
- 
-+#ifdef CONFIG_AMD_NB
-+
-+#include <asm/amd_nb.h>
-+
-+static void quirk_amd_mmconfig_area(struct pnp_dev *dev)
-+{
-+	resource_size_t start, end;
-+	struct pnp_resource *pnp_res;
-+	struct resource *res;
-+	struct resource mmconfig_res, *mmconfig;
-+
-+	mmconfig = amd_get_mmconfig_range(&mmconfig_res);
-+	if (!mmconfig)
-+		return;
-+
-+	list_for_each_entry(pnp_res, &dev->resources, list) {
-+		res = &pnp_res->res;
-+		if (res->end < mmconfig->start || res->start > mmconfig->end ||
-+		    (res->start == mmconfig->start && res->end == mmconfig->end))
-+			continue;
-+
-+		dev_info(&dev->dev, FW_BUG
-+			 "%pR covers only part of AMD MMCONFIG area %pR; adding more reservations\n",
-+			 res, mmconfig);
-+		if (mmconfig->start < res->start) {
-+			start = mmconfig->start;
-+			end = res->start - 1;
-+			pnp_add_mem_resource(dev, start, end, 0);
-+		}
-+		if (mmconfig->end > res->end) {
-+			start = res->end + 1;
-+			end = mmconfig->end;
-+			pnp_add_mem_resource(dev, start, end, 0);
-+		}
-+		break;
-+	}
-+}
-+#endif
-+
- /*
-  *  PnP Quirks
-  *  Cards or devices that need some tweaking due to incomplete resource info
-@@ -322,6 +361,9 @@ static struct pnp_fixup pnp_fixups[] = {
- 	/* PnP resources that might overlap PCI BARs */
- 	{"PNP0c01", quirk_system_pci_resources},
- 	{"PNP0c02", quirk_system_pci_resources},
-+#ifdef CONFIG_AMD_NB
-+	{"PNP0c01", quirk_amd_mmconfig_area},
-+#endif
- 	{""}
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0044-asix-fix-setting-custom-MAC-address-on-Asix-88178-de.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0044-asix-fix-setting-custom-MAC-address-on-Asix-88178-de.patch
deleted file mode 100644
index ec9189d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0044-asix-fix-setting-custom-MAC-address-on-Asix-88178-de.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 45268a6d90150936994e8b3e21eb91a54586685e Mon Sep 17 00:00:00 2001
-From: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Date: Tue, 10 Jan 2012 06:40:23 +0000
-Subject: [PATCH 044/129] asix: fix setting custom MAC address on Asix 88178
- devices
-
-commit 71bc5d94061516c4e70303570128797bcf768b10 upstream.
-
-In kernel v3.2 initialization sequence for Asix 88178 devices was changed so
-that hardware is reseted on every time interface is brought up (ifconfig up),
-instead just at USB probe time. This causes problem with setting custom MAC
-address to device as ax88178_reset causes reload of MAC address from EEPROM.
-
-This patch fixes the issue by rewriting MAC address at end of ax88178_reset.
-
-Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Acked-by: Grant Grundler <grundler at chromium.org>
-Cc: Allan Chou <allan at asix.com.tw>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/usb/asix.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
-index dd2625a..b495821 100644
---- a/drivers/net/usb/asix.c
-+++ b/drivers/net/usb/asix.c
-@@ -1316,6 +1316,13 @@ static int ax88178_reset(struct usbnet *dev)
- 	if (ret < 0)
- 		return ret;
- 
-+	/* Rewrite MAC address */
-+	memcpy(data->mac_addr, dev->net->dev_addr, ETH_ALEN);
-+	ret = asix_write_cmd(dev, AX_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN,
-+							data->mac_addr);
-+	if (ret < 0)
-+		return ret;
-+
- 	ret = asix_write_rx_ctl(dev, AX_DEFAULT_RX_CTL);
- 	if (ret < 0)
- 		return ret;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0045-asix-fix-setting-custom-MAC-address-on-Asix-88772-de.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0045-asix-fix-setting-custom-MAC-address-on-Asix-88772-de.patch
deleted file mode 100644
index b39ee83..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0045-asix-fix-setting-custom-MAC-address-on-Asix-88772-de.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From fa83c408b16aae1d3d85868c528caf491e14af76 Mon Sep 17 00:00:00 2001
-From: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Date: Tue, 10 Jan 2012 06:40:17 +0000
-Subject: [PATCH 045/129] asix: fix setting custom MAC address on Asix 88772
- devices
-
-commit 8ef66bdc4bda6aac2dae73b84d79dc8c2db33637 upstream.
-
-In kernel v3.2 initialization sequence for Asix 88772 devices was changed so
-that hardware is reseted on every time interface is brought up (ifconfig up),
-instead just at USB probe time. This causes problem with setting custom MAC
-address to device as ax88772_reset causes reload of MAC address from EEPROM.
-
-This patch fixes the issue by rewriting MAC address at end of ax88772_reset.
-
-Signed-off-by: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Acked-by: Grant Grundler <grundler at chromium.org>
-Cc: Allan Chou <allan at asix.com.tw>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/usb/asix.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
-index b495821..f5e063a 100644
---- a/drivers/net/usb/asix.c
-+++ b/drivers/net/usb/asix.c
-@@ -974,6 +974,7 @@ static int ax88772_link_reset(struct usbnet *dev)
- 
- static int ax88772_reset(struct usbnet *dev)
- {
-+	struct asix_data *data = (struct asix_data *)&dev->data;
- 	int ret, embd_phy;
- 	u16 rx_ctl;
- 
-@@ -1051,6 +1052,13 @@ static int ax88772_reset(struct usbnet *dev)
- 		goto out;
- 	}
- 
-+	/* Rewrite MAC address */
-+	memcpy(data->mac_addr, dev->net->dev_addr, ETH_ALEN);
-+	ret = asix_write_cmd(dev, AX_CMD_WRITE_NODE_ID, 0, 0, ETH_ALEN,
-+							data->mac_addr);
-+	if (ret < 0)
-+		goto out;
-+
- 	/* Set RX_CTL to default values with 2k buffer, and enable cactus */
- 	ret = asix_write_rx_ctl(dev, AX_DEFAULT_RX_CTL);
- 	if (ret < 0)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0046-include-linux-crash_dump.h-needs-elf.h.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0046-include-linux-crash_dump.h-needs-elf.h.patch
deleted file mode 100644
index 3fe1fc7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0046-include-linux-crash_dump.h-needs-elf.h.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From a509baa477542eca7e6f6d8d23dc1ba04248a62f Mon Sep 17 00:00:00 2001
-From: Fabio Estevam <festevam at gmail.com>
-Date: Thu, 12 Jan 2012 17:20:20 -0800
-Subject: [PATCH 046/129] include/linux/crash_dump.h needs elf.h
-
-commit 1f536b9e9f85456df93614b3c2f6a1a2b7d7cb9b upstream.
-
-Building an ARM target we get the following warnings:
-
-  CC      arch/arm/kernel/setup.o
-  In file included from arch/arm/kernel/setup.c:39:
-  arch/arm/include/asm/elf.h:102:1: warning: "vmcore_elf64_check_arch" redefined
-  In file included from arch/arm/kernel/setup.c:24:
-  include/linux/crash_dump.h:30:1: warning: this is the location of the previous definition
-
-Quoting Russell King:
-
-"linux/crash_dump.h makes no attempt to include asm/elf.h, but it depends
-on stuff in asm/elf.h to determine how stuff inside this file is defined
-at parse time.
-
-So, if asm/elf.h is included after linux/crash_dump.h or not at all, you
-get a different result from the situation where asm/elf.h is included
-before."
-
-So add elf.h header to crash_dump.h to avoid this problem.
-
-The original discussion about this can be found at:
-http://www.spinics.net/lists/arm-kernel/msg154113.html
-
-Signed-off-by: Fabio Estevam <fabio.estevam at freescale.com>
-Cc: Russell King <rmk at arm.linux.org.uk>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- include/linux/crash_dump.h |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/linux/crash_dump.h b/include/linux/crash_dump.h
-index 5c4abce..b936763 100644
---- a/include/linux/crash_dump.h
-+++ b/include/linux/crash_dump.h
-@@ -5,6 +5,7 @@
- #include <linux/kexec.h>
- #include <linux/device.h>
- #include <linux/proc_fs.h>
-+#include <linux/elf.h>
- 
- #define ELFCORE_ADDR_MAX	(-1ULL)
- #define ELFCORE_ADDR_ERR	(-2ULL)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0047-rtl8192se-Fix-BUG-caused-by-failure-to-check-skb-all.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0047-rtl8192se-Fix-BUG-caused-by-failure-to-check-skb-all.patch
deleted file mode 100644
index 083f876..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0047-rtl8192se-Fix-BUG-caused-by-failure-to-check-skb-all.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From b12320439e84a510f0043ea4b2540080c8bbb9a7 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Wed, 4 Jan 2012 20:50:47 -0600
-Subject: [PATCH 047/129] rtl8192se: Fix BUG caused by failure to check skb
- allocation
-
-commit d90db4b12bc1b9b8a787ef28550fdb767ee25a49 upstream.
-
-When downloading firmware into the device, the driver fails to check the
-return when allocating an skb. When the allocation fails, a BUG can be
-generated, as seen in https://bugzilla.redhat.com/show_bug.cgi?id=771656.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/rtlwifi/rtl8192se/fw.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192se/fw.c b/drivers/net/wireless/rtlwifi/rtl8192se/fw.c
-index 6f91a14..3fda6b1 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192se/fw.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192se/fw.c
-@@ -196,6 +196,8 @@ static bool _rtl92s_firmware_downloadcode(struct ieee80211_hw *hw,
- 		/* Allocate skb buffer to contain firmware */
- 		/* info and tx descriptor info. */
- 		skb = dev_alloc_skb(frag_length);
-+		if (!skb)
-+			return false;
- 		skb_reserve(skb, extra_descoffset);
- 		seg_ptr = (u8 *)skb_put(skb, (u32)(frag_length -
- 					extra_descoffset));
-@@ -573,6 +575,8 @@ static bool _rtl92s_firmware_set_h2c_cmd(struct ieee80211_hw *hw, u8 h2c_cmd,
- 
- 	len = _rtl92s_get_h2c_cmdlen(MAX_TRANSMIT_BUFFER_SIZE, 1, &cmd_len);
- 	skb = dev_alloc_skb(len);
-+	if (!skb)
-+		return false;
- 	cb_desc = (struct rtl_tcb_desc *)(skb->cb);
- 	cb_desc->queue_index = TXCMD_QUEUE;
- 	cb_desc->cmd_or_init = DESC_PACKET_TYPE_NORMAL;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0048-mac80211-fix-rx-key-NULL-pointer-dereference-in-prom.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0048-mac80211-fix-rx-key-NULL-pointer-dereference-in-prom.patch
deleted file mode 100644
index e7063df..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0048-mac80211-fix-rx-key-NULL-pointer-dereference-in-prom.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 12b3ec5c806e2daef619f068f80115f4dc0aa6bb Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Wed, 11 Jan 2012 09:26:54 +0100
-Subject: [PATCH 048/129] mac80211: fix rx->key NULL pointer dereference in
- promiscuous mode
-
-commit 1140afa862842ac3e56678693050760edc4ecde9 upstream.
-
-Since:
-
-commit 816c04fe7ef01dd9649f5ccfe796474db8708be5
-Author: Christian Lamparter <chunkeey at googlemail.com>
-Date:   Sat Apr 30 15:24:30 2011 +0200
-
-    mac80211: consolidate MIC failure report handling
-
-is possible to that we dereference rx->key == NULL when driver set
-RX_FLAG_MMIC_STRIPPED and not RX_FLAG_IV_STRIPPED and we are in
-promiscuous mode. This happen with rt73usb and rt61pci at least.
-
-Before the commit we always check rx->key against NULL, so I assume
-fix should be done in mac80211 (also mic_fail path has similar check).
-
-References:
-https://bugzilla.redhat.com/show_bug.cgi?id=769766
-http://rt2x00.serialmonkey.com/pipermail/users_rt2x00.serialmonkey.com/2012-January/004395.html
-
-Reported-by: Stuart D Gathman <stuart at gathman.org>
-Reported-by: Kai Wohlfahrt <kai.scorpio at gmail.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- net/mac80211/wpa.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/mac80211/wpa.c b/net/mac80211/wpa.c
-index f614ce7..28a39bb 100644
---- a/net/mac80211/wpa.c
-+++ b/net/mac80211/wpa.c
-@@ -106,7 +106,7 @@ ieee80211_rx_h_michael_mic_verify(struct ieee80211_rx_data *rx)
- 		if (status->flag & RX_FLAG_MMIC_ERROR)
- 			goto mic_fail;
- 
--		if (!(status->flag & RX_FLAG_IV_STRIPPED))
-+		if (!(status->flag & RX_FLAG_IV_STRIPPED) && rx->key)
- 			goto update_iv;
- 
- 		return RX_CONTINUE;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0049-ath9k-Fix-regression-in-channelwidth-switch-at-the-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0049-ath9k-Fix-regression-in-channelwidth-switch-at-the-s.patch
deleted file mode 100644
index 1313103..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0049-ath9k-Fix-regression-in-channelwidth-switch-at-the-s.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From f7938357cefb08ed00118138736f4d475fbc6578 Mon Sep 17 00:00:00 2001
-From: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Date: Mon, 9 Jan 2012 15:37:53 +0530
-Subject: [PATCH 049/129] ath9k: Fix regression in channelwidth switch at the
- same channel
-
-commit 1a19f77f3642b8194ad9cf55548cc5d92e841766 upstream.
-
-The commit "ath9k: Fix invalid noisefloor reading due to channel update"
-preserves the current channel noisefloor readings before updating
-channel type at the same channel index. It is also updating the curchan
-pointer. As survey updation is also referring curchan pointer to fetch
-the appropriate index, which might leads to invalid memory access. This
-patch partially reverts the change and stores the noise floor history
-buffer before updating channel type w/o updating curchan.
-
-Cc: Gary Morain <gmorain at google.com>
-Cc: Paul Stewart <pstew at google.com>
-Reported-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/ath/ath9k/calib.c |    1 +
- drivers/net/wireless/ath/ath9k/main.c  |    8 ++------
- 2 files changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/calib.c b/drivers/net/wireless/ath/ath9k/calib.c
-index 9953881..8ddef3e 100644
---- a/drivers/net/wireless/ath/ath9k/calib.c
-+++ b/drivers/net/wireless/ath/ath9k/calib.c
-@@ -402,6 +402,7 @@ bool ath9k_hw_getnf(struct ath_hw *ah, struct ath9k_channel *chan)
- 	ah->noise = ath9k_hw_getchan_noise(ah, chan);
- 	return true;
- }
-+EXPORT_SYMBOL(ath9k_hw_getnf);
- 
- void ath9k_init_nfcal_hist_buffer(struct ath_hw *ah,
- 				  struct ath9k_channel *chan)
-diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
-index a9c5ae7..f76a814 100644
---- a/drivers/net/wireless/ath/ath9k/main.c
-+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1667,7 +1667,6 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
- 
- 	if (changed & IEEE80211_CONF_CHANGE_CHANNEL) {
- 		struct ieee80211_channel *curchan = hw->conf.channel;
--		struct ath9k_channel old_chan;
- 		int pos = curchan->hw_value;
- 		int old_pos = -1;
- 		unsigned long flags;
-@@ -1693,11 +1692,8 @@ static int ath9k_config(struct ieee80211_hw *hw, u32 changed)
- 		 * Preserve the current channel values, before updating
- 		 * the same channel
- 		 */
--		if (old_pos == pos) {
--			memcpy(&old_chan, &sc->sc_ah->channels[pos],
--				sizeof(struct ath9k_channel));
--			ah->curchan = &old_chan;
--		}
-+		if (ah->curchan && (old_pos == pos))
-+			ath9k_hw_getnf(ah, ah->curchan);
- 
- 		ath9k_cmn_update_ichannel(&sc->sc_ah->channels[pos],
- 					  curchan, conf->channel_type);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0050-memcg-add-mem_cgroup_replace_page_cache-to-fix-LRU-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0050-memcg-add-mem_cgroup_replace_page_cache-to-fix-LRU-i.patch
deleted file mode 100644
index a3cc188..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0050-memcg-add-mem_cgroup_replace_page_cache-to-fix-LRU-i.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From 3a43cb3518148d31838d97bff3e6fcc29487499d Mon Sep 17 00:00:00 2001
-From: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Date: Thu, 12 Jan 2012 17:17:44 -0800
-Subject: [PATCH 050/129] memcg: add mem_cgroup_replace_page_cache() to fix
- LRU issue
-
-commit ab936cbcd02072a34b60d268f94440fd5cf1970b upstream.
-
-Commit ef6a3c6311 ("mm: add replace_page_cache_page() function") added a
-function replace_page_cache_page().  This function replaces a page in the
-radix-tree with a new page.  WHen doing this, memory cgroup needs to fix
-up the accounting information.  memcg need to check PCG_USED bit etc.
-
-In some(many?) cases, 'newpage' is on LRU before calling
-replace_page_cache().  So, memcg's LRU accounting information should be
-fixed, too.
-
-This patch adds mem_cgroup_replace_page_cache() and removes the old hooks.
- In that function, old pages will be unaccounted without touching
-res_counter and new page will be accounted to the memcg (of old page).
-WHen overwriting pc->mem_cgroup of newpage, take zone->lru_lock and avoid
-races with LRU handling.
-
-Background:
-  replace_page_cache_page() is called by FUSE code in its splice() handling.
-  Here, 'newpage' is replacing oldpage but this newpage is not a newly allocated
-  page and may be on LRU. LRU mis-accounting will be critical for memory cgroup
-  because rmdir() checks the whole LRU is empty and there is no account leak.
-  If a page is on the other LRU than it should be, rmdir() will fail.
-
-This bug was added in March 2011, but no bug report yet.  I guess there
-are not many people who use memcg and FUSE at the same time with upstream
-kernels.
-
-The result of this bug is that admin cannot destroy a memcg because of
-account leak.  So, no panic, no deadlock.  And, even if an active cgroup
-exist, umount can succseed.  So no problem at shutdown.
-
-Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Acked-by: Johannes Weiner <hannes at cmpxchg.org>
-Acked-by: Michal Hocko <mhocko at suse.cz>
-Cc: Miklos Szeredi <mszeredi at suse.cz>
-Cc: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- include/linux/memcontrol.h |    6 ++++++
- mm/filemap.c               |   18 ++----------------
- mm/memcontrol.c            |   44 ++++++++++++++++++++++++++++++++++++++++++++
- 3 files changed, 52 insertions(+), 16 deletions(-)
-
-diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h
-index b87068a..81572af 100644
---- a/include/linux/memcontrol.h
-+++ b/include/linux/memcontrol.h
-@@ -119,6 +119,8 @@ struct zone_reclaim_stat*
- mem_cgroup_get_reclaim_stat_from_page(struct page *page);
- extern void mem_cgroup_print_oom_info(struct mem_cgroup *memcg,
- 					struct task_struct *p);
-+extern void mem_cgroup_replace_page_cache(struct page *oldpage,
-+					struct page *newpage);
- 
- #ifdef CONFIG_CGROUP_MEM_RES_CTLR_SWAP
- extern int do_swap_account;
-@@ -366,6 +368,10 @@ static inline
- void mem_cgroup_count_vm_event(struct mm_struct *mm, enum vm_event_item idx)
- {
- }
-+static inline void mem_cgroup_replace_page_cache(struct page *oldpage,
-+				struct page *newpage)
-+{
-+}
- #endif /* CONFIG_CGROUP_MEM_CONT */
- 
- #if !defined(CONFIG_CGROUP_MEM_RES_CTLR) || !defined(CONFIG_DEBUG_VM)
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 5f0a3c9..90286a4 100644
---- a/mm/filemap.c
-+++ b/mm/filemap.c
-@@ -393,24 +393,11 @@ EXPORT_SYMBOL(filemap_write_and_wait_range);
- int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask)
- {
- 	int error;
--	struct mem_cgroup *memcg = NULL;
- 
- 	VM_BUG_ON(!PageLocked(old));
- 	VM_BUG_ON(!PageLocked(new));
- 	VM_BUG_ON(new->mapping);
- 
--	/*
--	 * This is not page migration, but prepare_migration and
--	 * end_migration does enough work for charge replacement.
--	 *
--	 * In the longer term we probably want a specialized function
--	 * for moving the charge from old to new in a more efficient
--	 * manner.
--	 */
--	error = mem_cgroup_prepare_migration(old, new, &memcg, gfp_mask);
--	if (error)
--		return error;
--
- 	error = radix_tree_preload(gfp_mask & ~__GFP_HIGHMEM);
- 	if (!error) {
- 		struct address_space *mapping = old->mapping;
-@@ -432,13 +419,12 @@ int replace_page_cache_page(struct page *old, struct page *new, gfp_t gfp_mask)
- 		if (PageSwapBacked(new))
- 			__inc_zone_page_state(new, NR_SHMEM);
- 		spin_unlock_irq(&mapping->tree_lock);
-+		/* mem_cgroup codes must not be called under tree_lock */
-+		mem_cgroup_replace_page_cache(old, new);
- 		radix_tree_preload_end();
- 		if (freepage)
- 			freepage(old);
- 		page_cache_release(old);
--		mem_cgroup_end_migration(memcg, old, new, true);
--	} else {
--		mem_cgroup_end_migration(memcg, old, new, false);
- 	}
- 
- 	return error;
-diff --git a/mm/memcontrol.c b/mm/memcontrol.c
-index b63f5f7..f538e9b 100644
---- a/mm/memcontrol.c
-+++ b/mm/memcontrol.c
-@@ -3366,6 +3366,50 @@ void mem_cgroup_end_migration(struct mem_cgroup *memcg,
- 	cgroup_release_and_wakeup_rmdir(&memcg->css);
- }
- 
-+/*
-+ * At replace page cache, newpage is not under any memcg but it's on
-+ * LRU. So, this function doesn't touch res_counter but handles LRU
-+ * in correct way. Both pages are locked so we cannot race with uncharge.
-+ */
-+void mem_cgroup_replace_page_cache(struct page *oldpage,
-+				  struct page *newpage)
-+{
-+	struct mem_cgroup *memcg;
-+	struct page_cgroup *pc;
-+	struct zone *zone;
-+	enum charge_type type = MEM_CGROUP_CHARGE_TYPE_CACHE;
-+	unsigned long flags;
-+
-+	if (mem_cgroup_disabled())
-+		return;
-+
-+	pc = lookup_page_cgroup(oldpage);
-+	/* fix accounting on old pages */
-+	lock_page_cgroup(pc);
-+	memcg = pc->mem_cgroup;
-+	mem_cgroup_charge_statistics(memcg, PageCgroupCache(pc), -1);
-+	ClearPageCgroupUsed(pc);
-+	unlock_page_cgroup(pc);
-+
-+	if (PageSwapBacked(oldpage))
-+		type = MEM_CGROUP_CHARGE_TYPE_SHMEM;
-+
-+	zone = page_zone(newpage);
-+	pc = lookup_page_cgroup(newpage);
-+	/*
-+	 * Even if newpage->mapping was NULL before starting replacement,
-+	 * the newpage may be on LRU(or pagevec for LRU) already. We lock
-+	 * LRU while we overwrite pc->mem_cgroup.
-+	 */
-+	spin_lock_irqsave(&zone->lru_lock, flags);
-+	if (PageLRU(newpage))
-+		del_page_from_lru_list(zone, newpage, page_lru(newpage));
-+	__mem_cgroup_commit_charge(memcg, newpage, 1, pc, type);
-+	if (PageLRU(newpage))
-+		add_page_to_lru_list(zone, newpage, page_lru(newpage));
-+	spin_unlock_irqrestore(&zone->lru_lock, flags);
-+}
-+
- #ifdef CONFIG_DEBUG_VM
- static struct page_cgroup *lookup_page_cgroup_used(struct page *page)
- {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0051-x86-Fix-mmap-random-address-range.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0051-x86-Fix-mmap-random-address-range.patch
deleted file mode 100644
index fce1568..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0051-x86-Fix-mmap-random-address-range.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 65ce587697fd360eea3dc06a3a1422d63a159fd1 Mon Sep 17 00:00:00 2001
-From: Ludwig Nussel <ludwig.nussel at suse.de>
-Date: Tue, 15 Nov 2011 14:46:46 -0800
-Subject: [PATCH 051/129] x86: Fix mmap random address range
-
-commit 9af0c7a6fa860698d080481f24a342ba74b68982 upstream.
-
-On x86_32 casting the unsigned int result of get_random_int() to
-long may result in a negative value.  On x86_32 the range of
-mmap_rnd() therefore was -255 to 255.  The 32bit mode on x86_64
-used 0 to 255 as intended.
-
-The bug was introduced by 675a081 ("x86: unify mmap_{32|64}.c")
-in January 2008.
-
-Signed-off-by: Ludwig Nussel <ludwig.nussel at suse.de>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: harvey.harrison at gmail.com
-Cc: "H. Peter Anvin" <hpa at zytor.com>
-Cc: Harvey Harrison <harvey.harrison at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Link: http://lkml.kernel.org/r/201111152246.pAFMklOB028527@wpaz5.hot.corp.google.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/mm/mmap.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/mm/mmap.c b/arch/x86/mm/mmap.c
-index 4b5ba85..845df68 100644
---- a/arch/x86/mm/mmap.c
-+++ b/arch/x86/mm/mmap.c
-@@ -75,9 +75,9 @@ static unsigned long mmap_rnd(void)
- 	*/
- 	if (current->flags & PF_RANDOMIZE) {
- 		if (mmap_is_ia32())
--			rnd = (long)get_random_int() % (1<<8);
-+			rnd = get_random_int() % (1<<8);
- 		else
--			rnd = (long)(get_random_int() % (1<<28));
-+			rnd = get_random_int() % (1<<28);
- 	}
- 	return rnd << PAGE_SHIFT;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0052-UBI-fix-nameless-volumes-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0052-UBI-fix-nameless-volumes-handling.patch
deleted file mode 100644
index 5d261cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0052-UBI-fix-nameless-volumes-handling.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From addbb632cd11d02b5386a9ebf040b0f89b6e2c84 Mon Sep 17 00:00:00 2001
-From: Richard Weinberger <richard at nod.at>
-Date: Fri, 13 Jan 2012 15:07:40 +0100
-Subject: [PATCH 052/129] UBI: fix nameless volumes handling
-
-commit 4a59c797a18917a5cf3ff7ade296b46134d91e6a upstream.
-
-Currently it's possible to create a volume without a name. E.g:
-ubimkvol -n 32 -s 2MiB -t static /dev/ubi0 -N ""
-
-After that vtbl_check() will always fail because it does not permit
-empty strings.
-
-Signed-off-by: Richard Weinberger <richard at nod.at>
-Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/ubi/cdev.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/mtd/ubi/cdev.c b/drivers/mtd/ubi/cdev.c
-index 3320a50..ad76592 100644
---- a/drivers/mtd/ubi/cdev.c
-+++ b/drivers/mtd/ubi/cdev.c
-@@ -632,6 +632,9 @@ static int verify_mkvol_req(const struct ubi_device *ubi,
- 	if (req->alignment != 1 && n)
- 		goto bad;
- 
-+	if (!req->name[0] || !req->name_len)
-+		goto bad;
-+
- 	if (req->name_len > UBI_VOL_NAME_MAX) {
- 		err = -ENAMETOOLONG;
- 		goto bad;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0053-UBI-fix-debugging-messages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0053-UBI-fix-debugging-messages.patch
deleted file mode 100644
index 83cd1b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0053-UBI-fix-debugging-messages.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 96bd5436400b64fe57b0be756f9424b1e1d1e430 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Tue, 10 Jan 2012 19:32:30 +0200
-Subject: [PATCH 053/129] UBI: fix debugging messages
-
-commit 72f0d453d81d35087b1d3ad7c8285628c2be6e1d upstream.
-
-Patch ab50ff684707031ed4bad2fdd313208ae392e5bb broke UBI debugging messages:
-before that commit when UBI debugging was enabled, users saw few useful
-debugging messages after attaching an MTD device. However, that patch turned
-'dbg_msg()' into 'pr_debug()', so to enable the debugging messages users have
-to enable them first via /sys/kernel/debug/dynamic_debug/control, which is
-very impractical.
-
-This commit makes 'dbg_msg()' to use 'printk()' instead of 'pr_debug()', just
-as it was before the breakage.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/ubi/debug.h |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/ubi/debug.h b/drivers/mtd/ubi/debug.h
-index 64fbb00..ead2cd1 100644
---- a/drivers/mtd/ubi/debug.h
-+++ b/drivers/mtd/ubi/debug.h
-@@ -43,7 +43,10 @@
- 	pr_debug("UBI DBG " type ": " fmt "\n", ##__VA_ARGS__)
- 
- /* Just a debugging messages not related to any specific UBI subsystem */
--#define dbg_msg(fmt, ...) ubi_dbg_msg("msg", fmt, ##__VA_ARGS__)
-+#define dbg_msg(fmt, ...)                                    \
-+	printk(KERN_DEBUG "UBI DBG (pid %d): %s: " fmt "\n", \
-+	       current->pid, __func__, ##__VA_ARGS__)
-+
- /* General debugging messages */
- #define dbg_gen(fmt, ...) ubi_dbg_msg("gen", fmt, ##__VA_ARGS__)
- /* Messages from the eraseblock association sub-system */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0054-UBI-make-vid_hdr-non-static.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0054-UBI-make-vid_hdr-non-static.patch
deleted file mode 100644
index 2790744..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0054-UBI-make-vid_hdr-non-static.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From f767fd8bc40accebf74bdee01946ed6452a626df Mon Sep 17 00:00:00 2001
-From: Richard Weinberger <rw at linutronix.de>
-Date: Thu, 22 Dec 2011 16:12:57 +0100
-Subject: [PATCH 054/129] UBI: make vid_hdr non-static
-
-commit 6bdccffe8c4268d02f71873102131fb6ed37ed9a upstream.
-
-Remove 'static' modifier from the 'vid_hdr' local variable. I do not know
-how it slipped in, but this is a bug and will break UBI if someone attaches
-2 UBI volumes at the same time.
-
-Artem: amended teh commit message, added -stable.
-
-Signed-off-by: Richard Weinberger <rw at linutronix.de>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mtd/ubi/vtbl.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/ubi/vtbl.c b/drivers/mtd/ubi/vtbl.c
-index 9ad18da..890754c 100644
---- a/drivers/mtd/ubi/vtbl.c
-+++ b/drivers/mtd/ubi/vtbl.c
-@@ -306,7 +306,7 @@ static int create_vtbl(struct ubi_device *ubi, struct ubi_scan_info *si,
- 		       int copy, void *vtbl)
- {
- 	int err, tries = 0;
--	static struct ubi_vid_hdr *vid_hdr;
-+	struct ubi_vid_hdr *vid_hdr;
- 	struct ubi_scan_leb *new_seb;
- 
- 	ubi_msg("create volume table (copy #%d)", copy + 1);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0055-UBIFS-fix-debugging-messages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0055-UBIFS-fix-debugging-messages.patch
deleted file mode 100644
index 9c45712..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0055-UBIFS-fix-debugging-messages.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 6c07a86a7e8ac8231be518705c91ba4b32da1813 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Tue, 10 Jan 2012 19:32:30 +0200
-Subject: [PATCH 055/129] UBIFS: fix debugging messages
-
-commit d34315da9146253351146140ea4b277193ee5e5f upstream.
-
-Patch 56e46742e846e4de167dde0e1e1071ace1c882a5 broke UBIFS debugging messages:
-before that commit when UBIFS debugging was enabled, users saw few useful
-debugging messages after mount. However, that patch turned 'dbg_msg()' into
-'pr_debug()', so to enable the debugging messages users have to enable them
-first via /sys/kernel/debug/dynamic_debug/control, which is very impractical.
-
-This commit makes 'dbg_msg()' to use 'printk()' instead of 'pr_debug()', just
-as it was before the breakage.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/ubifs/debug.h |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/fs/ubifs/debug.h b/fs/ubifs/debug.h
-index 8d9c468..3f65829 100644
---- a/fs/ubifs/debug.h
-+++ b/fs/ubifs/debug.h
-@@ -190,7 +190,10 @@ extern spinlock_t dbg_lock;
- } while (0)
- 
- /* Just a debugging messages not related to any specific UBIFS subsystem */
--#define dbg_msg(fmt, ...)   ubifs_dbg_msg("msg", fmt, ##__VA_ARGS__)
-+#define dbg_msg(fmt, ...)                                                     \
-+	printk(KERN_DEBUG "UBIFS DBG (pid %d): %s: " fmt "\n", current->pid,  \
-+	       __func__, ##__VA_ARGS__)
-+
- /* General messages */
- #define dbg_gen(fmt, ...)   ubifs_dbg_msg("gen", fmt, ##__VA_ARGS__)
- /* Additional journal messages */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0056-UBIFS-make-debugging-messages-light-again.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0056-UBIFS-make-debugging-messages-light-again.patch
deleted file mode 100644
index 8ad2285..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0056-UBIFS-make-debugging-messages-light-again.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 400fba6cfdfd168d550113f665c3b168cf9214cf Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Wed, 11 Jan 2012 15:13:27 +0200
-Subject: [PATCH 056/129] UBIFS: make debugging messages light again
-
-commit 1f5d78dc4823a85f112aaa2d0f17624f8c2a6c52 upstream.
-
-We switch to dynamic debugging in commit
-56e46742e846e4de167dde0e1e1071ace1c882a5 but did not take into account that
-now we do not control anymore whether a specific message is enabled or not.
-So now we lock the "dbg_lock" and release it in every debugging macro, which
-make them not so light-weight.
-
-This commit removes the "dbg_lock" protection from the debugging macros to
-fix the issue.
-
-The downside is that now our DBGKEY() stuff is broken, but this is not
-critical at all and will be fixed later.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/ubifs/debug.h |   12 +++++-------
- 1 file changed, 5 insertions(+), 7 deletions(-)
-
-diff --git a/fs/ubifs/debug.h b/fs/ubifs/debug.h
-index 3f65829..c9d2941 100644
---- a/fs/ubifs/debug.h
-+++ b/fs/ubifs/debug.h
-@@ -175,19 +175,17 @@ const char *dbg_key_str1(const struct ubifs_info *c,
- 			 const union ubifs_key *key);
- 
- /*
-- * DBGKEY macros require @dbg_lock to be held, which it is in the dbg message
-- * macros.
-+ * TODO: these macros are now broken because there is no locking around them
-+ * and we use a global buffer for the key string. This means that in case of
-+ * concurrent execution we will end up with incorrect and messy key strings.
-  */
- #define DBGKEY(key) dbg_key_str0(c, (key))
- #define DBGKEY1(key) dbg_key_str1(c, (key))
- 
- extern spinlock_t dbg_lock;
- 
--#define ubifs_dbg_msg(type, fmt, ...) do {                        \
--	spin_lock(&dbg_lock);                                     \
--	pr_debug("UBIFS DBG " type ": " fmt "\n", ##__VA_ARGS__); \
--	spin_unlock(&dbg_lock);                                   \
--} while (0)
-+#define ubifs_dbg_msg(type, fmt, ...) \
-+	pr_debug("UBIFS DBG " type ": " fmt "\n", ##__VA_ARGS__)
- 
- /* Just a debugging messages not related to any specific UBIFS subsystem */
- #define dbg_msg(fmt, ...)                                                     \
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0057-i2c-Fix-error-value-returned-by-several-bus-drivers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0057-i2c-Fix-error-value-returned-by-several-bus-drivers.patch
deleted file mode 100644
index 528fc93..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0057-i2c-Fix-error-value-returned-by-several-bus-drivers.patch
+++ /dev/null
@@ -1,197 +0,0 @@
-From c9f51b32db94ab1e2dc628cc379f7cc7013801f5 Mon Sep 17 00:00:00 2001
-From: Jean Delvare <khali at linux-fr.org>
-Date: Thu, 12 Jan 2012 20:32:03 +0100
-Subject: [PATCH 057/129] i2c: Fix error value returned by several bus drivers
-
-commit 7c1f59c9d5caf3a84f35549b5d58f3c055a68da5 upstream.
-
-When adding checks for ACPI resource conflicts to many bus drivers,
-not enough attention was paid to the error paths, and for several
-drivers this causes 0 to be returned on error in some cases. Fix this
-by properly returning a non-zero value on every error.
-
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/i2c/busses/i2c-ali1535.c |   11 +++++++----
- drivers/i2c/busses/i2c-nforce2.c |    2 +-
- drivers/i2c/busses/i2c-sis5595.c |    4 ++--
- drivers/i2c/busses/i2c-sis630.c  |    6 +++++-
- drivers/i2c/busses/i2c-viapro.c  |    7 +++++--
- 5 files changed, 20 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/i2c/busses/i2c-ali1535.c b/drivers/i2c/busses/i2c-ali1535.c
-index b6807db..5b667e5 100644
---- a/drivers/i2c/busses/i2c-ali1535.c
-+++ b/drivers/i2c/busses/i2c-ali1535.c
-@@ -140,7 +140,7 @@ static unsigned short ali1535_smba;
-    defined to make the transition easier. */
- static int __devinit ali1535_setup(struct pci_dev *dev)
- {
--	int retval = -ENODEV;
-+	int retval;
- 	unsigned char temp;
- 
- 	/* Check the following things:
-@@ -155,6 +155,7 @@ static int __devinit ali1535_setup(struct pci_dev *dev)
- 	if (ali1535_smba == 0) {
- 		dev_warn(&dev->dev,
- 			"ALI1535_smb region uninitialized - upgrade BIOS?\n");
-+		retval = -ENODEV;
- 		goto exit;
- 	}
- 
-@@ -167,6 +168,7 @@ static int __devinit ali1535_setup(struct pci_dev *dev)
- 			    ali1535_driver.name)) {
- 		dev_err(&dev->dev, "ALI1535_smb region 0x%x already in use!\n",
- 			ali1535_smba);
-+		retval = -EBUSY;
- 		goto exit;
- 	}
- 
-@@ -174,6 +176,7 @@ static int __devinit ali1535_setup(struct pci_dev *dev)
- 	pci_read_config_byte(dev, SMBCFG, &temp);
- 	if ((temp & ALI1535_SMBIO_EN) == 0) {
- 		dev_err(&dev->dev, "SMB device not enabled - upgrade BIOS?\n");
-+		retval = -ENODEV;
- 		goto exit_free;
- 	}
- 
-@@ -181,6 +184,7 @@ static int __devinit ali1535_setup(struct pci_dev *dev)
- 	pci_read_config_byte(dev, SMBHSTCFG, &temp);
- 	if ((temp & 1) == 0) {
- 		dev_err(&dev->dev, "SMBus controller not enabled - upgrade BIOS?\n");
-+		retval = -ENODEV;
- 		goto exit_free;
- 	}
- 
-@@ -198,12 +202,11 @@ static int __devinit ali1535_setup(struct pci_dev *dev)
- 	dev_dbg(&dev->dev, "SMBREV = 0x%X\n", temp);
- 	dev_dbg(&dev->dev, "ALI1535_smba = 0x%X\n", ali1535_smba);
- 
--	retval = 0;
--exit:
--	return retval;
-+	return 0;
- 
- exit_free:
- 	release_region(ali1535_smba, ALI1535_SMB_IOSIZE);
-+exit:
- 	return retval;
- }
- 
-diff --git a/drivers/i2c/busses/i2c-nforce2.c b/drivers/i2c/busses/i2c-nforce2.c
-index ff1e127..4853b52 100644
---- a/drivers/i2c/busses/i2c-nforce2.c
-+++ b/drivers/i2c/busses/i2c-nforce2.c
-@@ -356,7 +356,7 @@ static int __devinit nforce2_probe_smb (struct pci_dev *dev, int bar,
- 	error = acpi_check_region(smbus->base, smbus->size,
- 				  nforce2_driver.name);
- 	if (error)
--		return -1;
-+		return error;
- 
- 	if (!request_region(smbus->base, smbus->size, nforce2_driver.name)) {
- 		dev_err(&smbus->adapter.dev, "Error requesting region %02x .. %02X for %s\n",
-diff --git a/drivers/i2c/busses/i2c-sis5595.c b/drivers/i2c/busses/i2c-sis5595.c
-index 4375866..6d60284 100644
---- a/drivers/i2c/busses/i2c-sis5595.c
-+++ b/drivers/i2c/busses/i2c-sis5595.c
-@@ -147,7 +147,7 @@ static int __devinit sis5595_setup(struct pci_dev *SIS5595_dev)
- 	u16 a;
- 	u8 val;
- 	int *i;
--	int retval = -ENODEV;
-+	int retval;
- 
- 	/* Look for imposters */
- 	for (i = blacklist; *i != 0; i++) {
-@@ -223,7 +223,7 @@ static int __devinit sis5595_setup(struct pci_dev *SIS5595_dev)
- 
- error:
- 	release_region(sis5595_base + SMB_INDEX, 2);
--	return retval;
-+	return -ENODEV;
- }
- 
- static int sis5595_transaction(struct i2c_adapter *adap)
-diff --git a/drivers/i2c/busses/i2c-sis630.c b/drivers/i2c/busses/i2c-sis630.c
-index e6f539e..b617fd0 100644
---- a/drivers/i2c/busses/i2c-sis630.c
-+++ b/drivers/i2c/busses/i2c-sis630.c
-@@ -393,7 +393,7 @@ static int __devinit sis630_setup(struct pci_dev *sis630_dev)
- {
- 	unsigned char b;
- 	struct pci_dev *dummy = NULL;
--	int retval = -ENODEV, i;
-+	int retval, i;
- 
- 	/* check for supported SiS devices */
- 	for (i=0; supported[i] > 0 ; i++) {
-@@ -418,18 +418,21 @@ static int __devinit sis630_setup(struct pci_dev *sis630_dev)
- 	*/
- 	if (pci_read_config_byte(sis630_dev, SIS630_BIOS_CTL_REG,&b)) {
- 		dev_err(&sis630_dev->dev, "Error: Can't read bios ctl reg\n");
-+		retval = -ENODEV;
- 		goto exit;
- 	}
- 	/* if ACPI already enabled , do nothing */
- 	if (!(b & 0x80) &&
- 	    pci_write_config_byte(sis630_dev, SIS630_BIOS_CTL_REG, b | 0x80)) {
- 		dev_err(&sis630_dev->dev, "Error: Can't enable ACPI\n");
-+		retval = -ENODEV;
- 		goto exit;
- 	}
- 
- 	/* Determine the ACPI base address */
- 	if (pci_read_config_word(sis630_dev,SIS630_ACPI_BASE_REG,&acpi_base)) {
- 		dev_err(&sis630_dev->dev, "Error: Can't determine ACPI base address\n");
-+		retval = -ENODEV;
- 		goto exit;
- 	}
- 
-@@ -445,6 +448,7 @@ static int __devinit sis630_setup(struct pci_dev *sis630_dev)
- 			    sis630_driver.name)) {
- 		dev_err(&sis630_dev->dev, "SMBus registers 0x%04x-0x%04x already "
- 			"in use!\n", acpi_base + SMB_STS, acpi_base + SMB_SAA);
-+		retval = -EBUSY;
- 		goto exit;
- 	}
- 
-diff --git a/drivers/i2c/busses/i2c-viapro.c b/drivers/i2c/busses/i2c-viapro.c
-index 0b012f1..58261d4 100644
---- a/drivers/i2c/busses/i2c-viapro.c
-+++ b/drivers/i2c/busses/i2c-viapro.c
-@@ -324,7 +324,7 @@ static int __devinit vt596_probe(struct pci_dev *pdev,
- 				 const struct pci_device_id *id)
- {
- 	unsigned char temp;
--	int error = -ENODEV;
-+	int error;
- 
- 	/* Determine the address of the SMBus areas */
- 	if (force_addr) {
-@@ -390,6 +390,7 @@ found:
- 			dev_err(&pdev->dev, "SMBUS: Error: Host SMBus "
- 				"controller not enabled! - upgrade BIOS or "
- 				"use force=1\n");
-+			error = -ENODEV;
- 			goto release_region;
- 		}
- 	}
-@@ -422,9 +423,11 @@ found:
- 		 "SMBus Via Pro adapter at %04x", vt596_smba);
- 
- 	vt596_pdev = pci_dev_get(pdev);
--	if (i2c_add_adapter(&vt596_adapter)) {
-+	error = i2c_add_adapter(&vt596_adapter);
-+	if (error) {
- 		pci_dev_put(vt596_pdev);
- 		vt596_pdev = NULL;
-+		goto release_region;
- 	}
- 
- 	/* Always return failure here.  This is to allow other drivers to bind
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0058-mmc-core-Fix-voltage-select-in-DDR-mode.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0058-mmc-core-Fix-voltage-select-in-DDR-mode.patch
deleted file mode 100644
index db3a0d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0058-mmc-core-Fix-voltage-select-in-DDR-mode.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4272b6efe99cd197257777ddeaff1b2bf5428a13 Mon Sep 17 00:00:00 2001
-From: Girish K S <girish.shivananjappa at linaro.org>
-Date: Thu, 15 Dec 2011 17:27:42 +0530
-Subject: [PATCH 058/129] mmc: core: Fix voltage select in DDR mode
-
-commit 913047e9e5787a90696533a9f109552b7694ecc9 upstream.
-
-This patch fixes the wrong comparison before setting the interface
-voltage in DDR mode.
-
-The assignment to the variable ddr before comaprison is either
-ddr = MMC_1_2V_DDR_MODE; or ddr == MMC_1_8V_DDR_MODE. But the comparison
-is done with the extended csd value if ddr == EXT_CSD_CARD_TYPE_DDR_1_2V.
-
-Signed-off-by: Girish K S <girish.shivananjappa at linaro.org>
-Acked-by: Subhash Jadavani <subhashj at codeaurora.org>
-Acked-by: Philip Rakity <prakity at marvell.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mmc/core/mmc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mmc/core/mmc.c b/drivers/mmc/core/mmc.c
-index d240427..fb7c27f 100644
---- a/drivers/mmc/core/mmc.c
-+++ b/drivers/mmc/core/mmc.c
-@@ -1048,7 +1048,7 @@ static int mmc_init_card(struct mmc_host *host, u32 ocr,
- 			 *
- 			 * WARNING: eMMC rules are NOT the same as SD DDR
- 			 */
--			if (ddr == EXT_CSD_CARD_TYPE_DDR_1_2V) {
-+			if (ddr == MMC_1_2V_DDR_MODE) {
- 				err = mmc_set_signal_voltage(host,
- 					MMC_SIGNAL_VOLTAGE_120, 0);
- 				if (err)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0059-mmc-sdhci-Fix-tuning-timer-incorrect-setting-when-su.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0059-mmc-sdhci-Fix-tuning-timer-incorrect-setting-when-su.patch
deleted file mode 100644
index 2d01133..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0059-mmc-sdhci-Fix-tuning-timer-incorrect-setting-when-su.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 5fda16f987c13e470fd4a4ae87dd3ed6b4f5be46 Mon Sep 17 00:00:00 2001
-From: Aaron Lu <aaron.lu at amd.com>
-Date: Wed, 28 Dec 2011 11:11:12 +0800
-Subject: [PATCH 059/129] mmc: sdhci: Fix tuning timer incorrect setting when
- suspending host
-
-commit c6ced0db08010ed75df221a2946c5228454b38d5 upstream.
-
-When suspending host, the tuning timer shoule be deactivated.
-And the HOST_NEEDS_TUNING flag should be set after tuning timer is
-deactivated.
-
-Signed-off-by: Philip Rakity <prakity at marvell.com>
-Signed-off-by: Aaron Lu <aaron.lu at amd.com>
-Acked-by: Adrian Hunter <adrian.hunter at intel.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mmc/host/sdhci.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
-index 19ed580..9279c1b 100644
---- a/drivers/mmc/host/sdhci.c
-+++ b/drivers/mmc/host/sdhci.c
-@@ -2336,9 +2336,8 @@ int sdhci_suspend_host(struct sdhci_host *host)
- 	/* Disable tuning since we are suspending */
- 	if (host->version >= SDHCI_SPEC_300 && host->tuning_count &&
- 	    host->tuning_mode == SDHCI_TUNING_MODE_1) {
-+		del_timer_sync(&host->tuning_timer);
- 		host->flags &= ~SDHCI_NEEDS_RETUNING;
--		mod_timer(&host->tuning_timer, jiffies +
--			host->tuning_count * HZ);
- 	}
- 
- 	ret = mmc_suspend_host(host->mmc);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0060-mmc-sd-Fix-SDR12-timing-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0060-mmc-sd-Fix-SDR12-timing-regression.patch
deleted file mode 100644
index 0760c62..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0060-mmc-sd-Fix-SDR12-timing-regression.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 54914e0a2c7c46dd863ba4ca2f530591c8cea37f Mon Sep 17 00:00:00 2001
-From: Alexander Elbs <alex at segv.de>
-Date: Tue, 3 Jan 2012 23:26:53 -0500
-Subject: [PATCH 060/129] mmc: sd: Fix SDR12 timing regression
-
-commit dd8df17fe83483d7ea06ff229895e35a42071599 upstream.
-
-This patch fixes a failure to recognize SD cards reported on a Dell
-Vostro with O2 Micro SD card reader.  Patch 49c468f ("mmc: sd: add
-support for uhs bus speed mode selection") caused the problem, by
-setting the SDHCI_CTRL_HISPD flag even for legacy timings.
-
-Signed-off-by: Alexander Elbs <alex at segv.de>
-Acked-by: Philip Rakity <prakity at marvell.com>
-Acked-by: Arindam Nath <arindam.nath at amd.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/mmc/host/sdhci.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c
-index 9279c1b..6ce32a7 100644
---- a/drivers/mmc/host/sdhci.c
-+++ b/drivers/mmc/host/sdhci.c
-@@ -1364,8 +1364,7 @@ static void sdhci_do_set_ios(struct sdhci_host *host, struct mmc_ios *ios)
- 		if ((ios->timing == MMC_TIMING_UHS_SDR50) ||
- 		    (ios->timing == MMC_TIMING_UHS_SDR104) ||
- 		    (ios->timing == MMC_TIMING_UHS_DDR50) ||
--		    (ios->timing == MMC_TIMING_UHS_SDR25) ||
--		    (ios->timing == MMC_TIMING_UHS_SDR12))
-+		    (ios->timing == MMC_TIMING_UHS_SDR25))
- 			ctrl |= SDHCI_CTRL_HISPD;
- 
- 		ctrl_2 = sdhci_readw(host, SDHCI_HOST_CONTROL2);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0061-V4L-DVB-v4l2-ioctl-integer-overflow-in-video_usercop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0061-V4L-DVB-v4l2-ioctl-integer-overflow-in-video_usercop.patch
deleted file mode 100644
index 293dd52..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0061-V4L-DVB-v4l2-ioctl-integer-overflow-in-video_usercop.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 51aa88e66716df0c5b5df5b8815cbf0b7b50ac35 Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Thu, 5 Jan 2012 02:27:57 -0300
-Subject: [PATCH 061/129] V4L/DVB: v4l2-ioctl: integer overflow in
- video_usercopy()
-
-commit 6c06108be53ca5e94d8b0e93883d534dd9079646 upstream.
-
-If ctrls->count is too high the multiplication could overflow and
-array_size would be lower than expected.  Mauro and Hans Verkuil
-suggested that we cap it at 1024.  That comes from the maximum
-number of controls with lots of room for expantion.
-
-$ grep V4L2_CID include/linux/videodev2.h | wc -l
-211
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/media/video/v4l2-ioctl.c |    4 ++++
- include/linux/videodev2.h        |    1 +
- 2 files changed, 5 insertions(+)
-
-diff --git a/drivers/media/video/v4l2-ioctl.c b/drivers/media/video/v4l2-ioctl.c
-index e1da8fc..639abee 100644
---- a/drivers/media/video/v4l2-ioctl.c
-+++ b/drivers/media/video/v4l2-ioctl.c
-@@ -2226,6 +2226,10 @@ static int check_array_args(unsigned int cmd, void *parg, size_t *array_size,
- 		struct v4l2_ext_controls *ctrls = parg;
- 
- 		if (ctrls->count != 0) {
-+			if (ctrls->count > V4L2_CID_MAX_CTRLS) {
-+				ret = -EINVAL;
-+				break;
-+			}
- 			*user_ptr = (void __user *)ctrls->controls;
- 			*kernel_ptr = (void *)&ctrls->controls;
- 			*array_size = sizeof(struct v4l2_ext_control)
-diff --git a/include/linux/videodev2.h b/include/linux/videodev2.h
-index 4b752d5..45a7698 100644
---- a/include/linux/videodev2.h
-+++ b/include/linux/videodev2.h
-@@ -1131,6 +1131,7 @@ struct v4l2_querymenu {
- #define V4L2_CTRL_FLAG_NEXT_CTRL	0x80000000
- 
- /*  User-class control IDs defined by V4L2 */
-+#define V4L2_CID_MAX_CTRLS		1024
- #define V4L2_CID_BASE			(V4L2_CTRL_CLASS_USER | 0x900)
- #define V4L2_CID_USER_BASE 		V4L2_CID_BASE
- /*  IDs reserved for driver specific controls */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0062-Unused-iocbs-in-a-batch-should-not-be-accounted-as-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0062-Unused-iocbs-in-a-batch-should-not-be-accounted-as-a.patch
deleted file mode 100644
index 1ca3eae..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0062-Unused-iocbs-in-a-batch-should-not-be-accounted-as-a.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 0eeb9347d25c283bdbdd1a9e4d7d4881852887d1 Mon Sep 17 00:00:00 2001
-From: Gleb Natapov <gleb at redhat.com>
-Date: Sun, 8 Jan 2012 17:07:28 +0200
-Subject: [PATCH 062/129] Unused iocbs in a batch should not be accounted as
- active.
-
-commit 69e4747ee9727d660b88d7e1efe0f4afcb35db1b upstream.
-
-Since commit 080d676de095 ("aio: allocate kiocbs in batches") iocbs are
-allocated in a batch during processing of first iocbs.  All iocbs in a
-batch are automatically added to ctx->active_reqs list and accounted in
-ctx->reqs_active.
-
-If one (not the last one) of iocbs submitted by an user fails, further
-iocbs are not processed, but they are still present in ctx->active_reqs
-and accounted in ctx->reqs_active.  This causes process to stuck in a D
-state in wait_for_all_aios() on exit since ctx->reqs_active will never
-go down to zero.  Furthermore since kiocb_batch_free() frees iocb
-without removing it from active_reqs list the list become corrupted
-which may cause oops.
-
-Fix this by removing iocb from ctx->active_reqs and updating
-ctx->reqs_active in kiocb_batch_free().
-
-Signed-off-by: Gleb Natapov <gleb at redhat.com>
-Reviewed-by: Jeff Moyer <jmoyer at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/aio.c |   11 +++++++++--
- 1 file changed, 9 insertions(+), 2 deletions(-)
-
-diff --git a/fs/aio.c b/fs/aio.c
-index 78c514c..969beb0 100644
---- a/fs/aio.c
-+++ b/fs/aio.c
-@@ -476,14 +476,21 @@ static void kiocb_batch_init(struct kiocb_batch *batch, long total)
- 	batch->count = total;
- }
- 
--static void kiocb_batch_free(struct kiocb_batch *batch)
-+static void kiocb_batch_free(struct kioctx *ctx, struct kiocb_batch *batch)
- {
- 	struct kiocb *req, *n;
- 
-+	if (list_empty(&batch->head))
-+		return;
-+
-+	spin_lock_irq(&ctx->ctx_lock);
- 	list_for_each_entry_safe(req, n, &batch->head, ki_batch) {
- 		list_del(&req->ki_batch);
-+		list_del(&req->ki_list);
- 		kmem_cache_free(kiocb_cachep, req);
-+		ctx->reqs_active--;
- 	}
-+	spin_unlock_irq(&ctx->ctx_lock);
- }
- 
- /*
-@@ -1742,7 +1749,7 @@ long do_io_submit(aio_context_t ctx_id, long nr,
- 	}
- 	blk_finish_plug(&plug);
- 
--	kiocb_batch_free(&batch);
-+	kiocb_batch_free(ctx, &batch);
- 	put_ioctx(ctx);
- 	return i ? i : ret;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0063-ftrace-Fix-unregister-ftrace_ops-accounting.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0063-ftrace-Fix-unregister-ftrace_ops-accounting.patch
deleted file mode 100644
index 4a0cf7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0063-ftrace-Fix-unregister-ftrace_ops-accounting.patch
+++ /dev/null
@@ -1,227 +0,0 @@
-From 87a8f79b24eaa28f865547dc85b9c10b97a80686 Mon Sep 17 00:00:00 2001
-From: Jiri Olsa <jolsa at redhat.com>
-Date: Mon, 5 Dec 2011 18:22:48 +0100
-Subject: [PATCH 063/129] ftrace: Fix unregister ftrace_ops accounting
-
-commit 30fb6aa74011dcf595f306ca2727254d708b786e upstream.
-
-Multiple users of the function tracer can register their functions
-with the ftrace_ops structure. The accounting within ftrace will
-update the counter on each function record that is being traced.
-When the ftrace_ops filtering adds or removes functions, the
-function records will be updated accordingly if the ftrace_ops is
-still registered.
-
-When a ftrace_ops is removed, the counter of the function records,
-that the ftrace_ops traces, are decremented. When they reach zero
-the functions that they represent are modified to stop calling the
-mcount code.
-
-When changes are made, the code is updated via stop_machine() with
-a command passed to the function to tell it what to do. There is an
-ENABLE and DISABLE command that tells the called function to enable
-or disable the functions. But the ENABLE is really a misnomer as it
-should just update the records, as records that have been enabled
-and now have a count of zero should be disabled.
-
-The DISABLE command is used to disable all functions regardless of
-their counter values. This is the big off switch and is not the
-complement of the ENABLE command.
-
-To make matters worse, when a ftrace_ops is unregistered and there
-is another ftrace_ops registered, neither the DISABLE nor the
-ENABLE command are set when calling into the stop_machine() function
-and the records will not be updated to match their counter. A command
-is passed to that function that will update the mcount code to call
-the registered callback directly if it is the only one left. This
-means that the ftrace_ops that is still registered will have its callback
-called by all functions that have been set for it as well as the ftrace_ops
-that was just unregistered.
-
-Here's a way to trigger this bug. Compile the kernel with
-CONFIG_FUNCTION_PROFILER set and with CONFIG_FUNCTION_GRAPH not set:
-
- CONFIG_FUNCTION_PROFILER=y
- # CONFIG_FUNCTION_GRAPH is not set
-
-This will force the function profiler to use the function tracer instead
-of the function graph tracer.
-
-  # cd /sys/kernel/debug/tracing
-  # echo schedule > set_ftrace_filter
-  # echo function > current_tracer
-  # cat set_ftrace_filter
- schedule
-  # cat trace
- # tracer: nop
- #
- # entries-in-buffer/entries-written: 692/68108025   #P:4
- #
- #                              _-----=> irqs-off
- #                             / _----=> need-resched
- #                            | / _---=> hardirq/softirq
- #                            || / _--=> preempt-depth
- #                            ||| /     delay
- #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
- #              | |       |   ||||       |         |
-      kworker/0:2-909   [000] ....   531.235574: schedule <-worker_thread
-           <idle>-0     [001] .N..   531.235575: schedule <-cpu_idle
-      kworker/0:2-909   [000] ....   531.235597: schedule <-worker_thread
-             sshd-2563  [001] ....   531.235647: schedule <-schedule_hrtimeout_range_clock
-
-  # echo 1 > function_profile_enabled
-  # echo 0 > function_porfile_enabled
-  # cat set_ftrace_filter
- schedule
-  # cat trace
- # tracer: function
- #
- # entries-in-buffer/entries-written: 159701/118821262   #P:4
- #
- #                              _-----=> irqs-off
- #                             / _----=> need-resched
- #                            | / _---=> hardirq/softirq
- #                            || / _--=> preempt-depth
- #                            ||| /     delay
- #           TASK-PID   CPU#  ||||    TIMESTAMP  FUNCTION
- #              | |       |   ||||       |         |
-           <idle>-0     [002] ...1   604.870655: local_touch_nmi <-cpu_idle
-           <idle>-0     [002] d..1   604.870655: enter_idle <-cpu_idle
-           <idle>-0     [002] d..1   604.870656: atomic_notifier_call_chain <-enter_idle
-           <idle>-0     [002] d..1   604.870656: __atomic_notifier_call_chain <-atomic_notifier_call_chain
-
-The same problem could have happened with the trace_probe_ops,
-but they are modified with the set_frace_filter file which does the
-update at closure of the file.
-
-The simple solution is to change ENABLE to UPDATE and call it every
-time an ftrace_ops is unregistered.
-
-Link: http://lkml.kernel.org/r/1323105776-26961-3-git-send-email-jolsa@redhat.com
-
-Signed-off-by: Jiri Olsa <jolsa at redhat.com>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- kernel/trace/ftrace.c |   27 +++++++++++++--------------
- 1 file changed, 13 insertions(+), 14 deletions(-)
-
-diff --git a/kernel/trace/ftrace.c b/kernel/trace/ftrace.c
-index b1e8943..25b4f4d 100644
---- a/kernel/trace/ftrace.c
-+++ b/kernel/trace/ftrace.c
-@@ -948,7 +948,7 @@ struct ftrace_func_probe {
- };
- 
- enum {
--	FTRACE_ENABLE_CALLS		= (1 << 0),
-+	FTRACE_UPDATE_CALLS		= (1 << 0),
- 	FTRACE_DISABLE_CALLS		= (1 << 1),
- 	FTRACE_UPDATE_TRACE_FUNC	= (1 << 2),
- 	FTRACE_START_FUNC_RET		= (1 << 3),
-@@ -1519,7 +1519,7 @@ int ftrace_text_reserved(void *start, void *end)
- 
- 
- static int
--__ftrace_replace_code(struct dyn_ftrace *rec, int enable)
-+__ftrace_replace_code(struct dyn_ftrace *rec, int update)
- {
- 	unsigned long ftrace_addr;
- 	unsigned long flag = 0UL;
-@@ -1527,17 +1527,17 @@ __ftrace_replace_code(struct dyn_ftrace *rec, int enable)
- 	ftrace_addr = (unsigned long)FTRACE_ADDR;
- 
- 	/*
--	 * If we are enabling tracing:
-+	 * If we are updating calls:
- 	 *
- 	 *   If the record has a ref count, then we need to enable it
- 	 *   because someone is using it.
- 	 *
- 	 *   Otherwise we make sure its disabled.
- 	 *
--	 * If we are disabling tracing, then disable all records that
-+	 * If we are disabling calls, then disable all records that
- 	 * are enabled.
- 	 */
--	if (enable && (rec->flags & ~FTRACE_FL_MASK))
-+	if (update && (rec->flags & ~FTRACE_FL_MASK))
- 		flag = FTRACE_FL_ENABLED;
- 
- 	/* If the state of this record hasn't changed, then do nothing */
-@@ -1553,7 +1553,7 @@ __ftrace_replace_code(struct dyn_ftrace *rec, int enable)
- 	return ftrace_make_nop(NULL, rec, ftrace_addr);
- }
- 
--static void ftrace_replace_code(int enable)
-+static void ftrace_replace_code(int update)
- {
- 	struct dyn_ftrace *rec;
- 	struct ftrace_page *pg;
-@@ -1567,7 +1567,7 @@ static void ftrace_replace_code(int enable)
- 		if (rec->flags & FTRACE_FL_FREE)
- 			continue;
- 
--		failed = __ftrace_replace_code(rec, enable);
-+		failed = __ftrace_replace_code(rec, update);
- 		if (failed) {
- 			ftrace_bug(failed, rec->ip);
- 			/* Stop processing */
-@@ -1623,7 +1623,7 @@ static int __ftrace_modify_code(void *data)
- 	 */
- 	function_trace_stop++;
- 
--	if (*command & FTRACE_ENABLE_CALLS)
-+	if (*command & FTRACE_UPDATE_CALLS)
- 		ftrace_replace_code(1);
- 	else if (*command & FTRACE_DISABLE_CALLS)
- 		ftrace_replace_code(0);
-@@ -1691,7 +1691,7 @@ static int ftrace_startup(struct ftrace_ops *ops, int command)
- 		return -ENODEV;
- 
- 	ftrace_start_up++;
--	command |= FTRACE_ENABLE_CALLS;
-+	command |= FTRACE_UPDATE_CALLS;
- 
- 	/* ops marked global share the filter hashes */
- 	if (ops->flags & FTRACE_OPS_FL_GLOBAL) {
-@@ -1743,8 +1743,7 @@ static void ftrace_shutdown(struct ftrace_ops *ops, int command)
- 	if (ops != &global_ops || !global_start_up)
- 		ops->flags &= ~FTRACE_OPS_FL_ENABLED;
- 
--	if (!ftrace_start_up)
--		command |= FTRACE_DISABLE_CALLS;
-+	command |= FTRACE_UPDATE_CALLS;
- 
- 	if (saved_ftrace_func != ftrace_trace_function) {
- 		saved_ftrace_func = ftrace_trace_function;
-@@ -1766,7 +1765,7 @@ static void ftrace_startup_sysctl(void)
- 	saved_ftrace_func = NULL;
- 	/* ftrace_start_up is true if we want ftrace running */
- 	if (ftrace_start_up)
--		ftrace_run_update_code(FTRACE_ENABLE_CALLS);
-+		ftrace_run_update_code(FTRACE_UPDATE_CALLS);
- }
- 
- static void ftrace_shutdown_sysctl(void)
-@@ -2919,7 +2918,7 @@ ftrace_set_regex(struct ftrace_ops *ops, unsigned char *buf, int len,
- 	ret = ftrace_hash_move(ops, enable, orig_hash, hash);
- 	if (!ret && ops->flags & FTRACE_OPS_FL_ENABLED
- 	    && ftrace_enabled)
--		ftrace_run_update_code(FTRACE_ENABLE_CALLS);
-+		ftrace_run_update_code(FTRACE_UPDATE_CALLS);
- 
- 	mutex_unlock(&ftrace_lock);
- 
-@@ -3107,7 +3106,7 @@ ftrace_regex_release(struct inode *inode, struct file *file)
- 				       orig_hash, iter->hash);
- 		if (!ret && (iter->ops->flags & FTRACE_OPS_FL_ENABLED)
- 		    && ftrace_enabled)
--			ftrace_run_update_code(FTRACE_ENABLE_CALLS);
-+			ftrace_run_update_code(FTRACE_UPDATE_CALLS);
- 
- 		mutex_unlock(&ftrace_lock);
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0064-kconfig-streamline-config.pl-Simplify-backslash-line.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0064-kconfig-streamline-config.pl-Simplify-backslash-line.patch
deleted file mode 100644
index 383b3f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0064-kconfig-streamline-config.pl-Simplify-backslash-line.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From a3bca61c4e149d9e00102d41a0b81cae4fbca06f Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <srostedt at redhat.com>
-Date: Fri, 13 Jan 2012 17:50:39 -0500
-Subject: [PATCH 064/129] kconfig/streamline-config.pl: Simplify backslash
- line concatination
-
-commit d060d963e88f3e990cec2fe5214de49de9a49eca upstream.
-
-Simplify the way lines ending with backslashes (continuation) in Makefiles
-is parsed. This is needed to implement a necessary fix.
-
-Tested-by: Thomas Lange <thomas-lange2 at gmx.de>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- scripts/kconfig/streamline_config.pl |   25 ++++++++++++-------------
- 1 file changed, 12 insertions(+), 13 deletions(-)
-
-diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
-index ec7afce..42ef5ea 100644
---- a/scripts/kconfig/streamline_config.pl
-+++ b/scripts/kconfig/streamline_config.pl
-@@ -253,17 +253,22 @@ if ($kconfig) {
- # Read all Makefiles to map the configs to the objects
- foreach my $makefile (@makefiles) {
- 
--    my $cont = 0;
-+    my $line = "";
- 
-     open(MIN,$makefile) || die "Can't open $makefile";
-     while (<MIN>) {
--	my $objs;
--
--	# is this a line after a line with a backslash?
--	if ($cont && /(\S.*)$/) {
--	    $objs = $1;
-+	# if this line ends with a backslash, continue
-+	chomp;
-+	if (/^(.*)\\$/) {
-+	    $line .= $1;
-+	    next;
- 	}
--	$cont = 0;
-+
-+	$line .= $_;
-+	$_ = $line;
-+	$line = "";
-+
-+	my $objs;
- 
- 	# collect objects after obj-$(CONFIG_FOO_BAR)
- 	if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) {
-@@ -271,12 +276,6 @@ foreach my $makefile (@makefiles) {
- 	    $objs = $2;
- 	}
- 	if (defined($objs)) {
--	    # test if the line ends with a backslash
--	    if ($objs =~ m,(.*)\\$,) {
--		$objs = $1;
--		$cont = 1;
--	    }
--
- 	    foreach my $obj (split /\s+/,$objs) {
- 		$obj =~ s/-/_/g;
- 		if ($obj =~ /(.*)\.o$/) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0065-kconfig-streamline-config.pl-Fix-parsing-Makefile-wi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0065-kconfig-streamline-config.pl-Fix-parsing-Makefile-wi.patch
deleted file mode 100644
index 141754e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0065-kconfig-streamline-config.pl-Fix-parsing-Makefile-wi.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From ac774661d11eb00497542857681b22c652d3d67c Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <srostedt at redhat.com>
-Date: Fri, 13 Jan 2012 17:53:40 -0500
-Subject: [PATCH 065/129] kconfig/streamline-config.pl: Fix parsing Makefile
- with variables
-
-commit 364212fddaaa60c5a64f67a0f5624ad996ecc8a0 upstream.
-
-Thomas Lange reported that when he did a 'make localmodconfig', his
-config was missing the brcmsmac driver, even though he had the module
-loaded.
-
-Looking into this, I found the file:
-drivers/net/wireless/brcm80211/brcmsmac/Makefile
-had the following in the Makefile:
-
-MODULEPFX := brcmsmac
-
-obj-$(CONFIG_BRCMSMAC)  += $(MODULEPFX).o
-
-The way streamline-config.pl works, is parsing all the
- obj-$(CONFIG_FOO) += foo.o
-lines to find that CONFIG_FOO belongs to the module foo.ko.
-
-But in this case, the brcmsmac.o was not used, but a variable in its place.
-
-By changing streamline-config.pl to remember defined variables in Makefiles
-and substituting them when they are used in the obj-X lines, allows
-Thomas (and others) to have their brcmsmac module stay configured
-when it is loaded and running "make localmodconfig".
-
-Reported-by: Thomas Lange <thomas-lange2 at gmx.de>
-Tested-by: Thomas Lange <thomas-lange2 at gmx.de>
-Cc: Arend van Spriel <arend at broadcom.com>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- scripts/kconfig/streamline_config.pl |   29 +++++++++++++++++++++++++++++
- 1 file changed, 29 insertions(+)
-
-diff --git a/scripts/kconfig/streamline_config.pl b/scripts/kconfig/streamline_config.pl
-index 42ef5ea..bccf07dd 100644
---- a/scripts/kconfig/streamline_config.pl
-+++ b/scripts/kconfig/streamline_config.pl
-@@ -250,10 +250,33 @@ if ($kconfig) {
-     read_kconfig($kconfig);
- }
- 
-+sub convert_vars {
-+    my ($line, %vars) = @_;
-+
-+    my $process = "";
-+
-+    while ($line =~ s/^(.*?)(\$\((.*?)\))//) {
-+	my $start = $1;
-+	my $variable = $2;
-+	my $var = $3;
-+
-+	if (defined($vars{$var})) {
-+	    $process .= $start . $vars{$var};
-+	} else {
-+	    $process .= $start . $variable;
-+	}
-+    }
-+
-+    $process .= $line;
-+
-+    return $process;
-+}
-+
- # Read all Makefiles to map the configs to the objects
- foreach my $makefile (@makefiles) {
- 
-     my $line = "";
-+    my %make_vars;
- 
-     open(MIN,$makefile) || die "Can't open $makefile";
-     while (<MIN>) {
-@@ -270,10 +293,16 @@ foreach my $makefile (@makefiles) {
- 
- 	my $objs;
- 
-+	$_ = convert_vars($_, %make_vars);
-+
- 	# collect objects after obj-$(CONFIG_FOO_BAR)
- 	if (/obj-\$\((CONFIG_[^\)]*)\)\s*[+:]?=\s*(.*)/) {
- 	    $var = $1;
- 	    $objs = $2;
-+
-+	# check if variables are set
-+	} elsif (/^\s*(\S+)\s*[:]?=\s*(.*\S)/) {
-+	    $make_vars{$1} = $2;
- 	}
- 	if (defined($objs)) {
- 	    foreach my $obj (split /\s+/,$objs) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0066-svcrpc-fix-double-free-on-shutdown-of-nfsd-after-cha.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0066-svcrpc-fix-double-free-on-shutdown-of-nfsd-after-cha.patch
deleted file mode 100644
index 76168fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0066-svcrpc-fix-double-free-on-shutdown-of-nfsd-after-cha.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 184eee2d8b585d5e2a0ec3f2c50f682e91ef769a Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at redhat.com>
-Date: Thu, 22 Dec 2011 18:22:49 -0700
-Subject: [PATCH 066/129] svcrpc: fix double-free on shutdown of nfsd after
- changing pool mode
-
-commit 61c8504c428edcebf23b97775a129c5b393a302b upstream.
-
-The pool_to and to_pool fields of the global svc_pool_map are freed on
-shutdown, but are initialized in nfsd startup only in the
-SVC_POOL_PERCPU and SVC_POOL_PERNODE cases.
-
-They *are* initialized to zero on kernel startup.  So as long as you use
-only SVC_POOL_GLOBAL (the default), this will never be a problem.
-
-You're also OK if you only ever use SVC_POOL_PERCPU or SVC_POOL_PERNODE.
-
-However, the following sequence events leads to a double-free:
-
-	1. set SVC_POOL_PERCPU or SVC_POOL_PERNODE
-	2. start nfsd: both fields are initialized.
-	3. shutdown nfsd: both fields are freed.
-	4. set SVC_POOL_GLOBAL
-	5. start nfsd: the fields are left untouched.
-	6. shutdown nfsd: now we try to free them again.
-
-Step 4 is actually unnecessary, since (for some bizarre reason), nfsd
-automatically resets the pool mode to SVC_POOL_GLOBAL on shutdown.
-
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- net/sunrpc/svc.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index 6e03888..5443ffd 100644
---- a/net/sunrpc/svc.c
-+++ b/net/sunrpc/svc.c
-@@ -167,6 +167,7 @@ svc_pool_map_alloc_arrays(struct svc_pool_map *m, unsigned int maxpools)
- 
- fail_free:
- 	kfree(m->to_pool);
-+	m->to_pool = NULL;
- fail:
- 	return -ENOMEM;
- }
-@@ -287,7 +288,9 @@ svc_pool_map_put(void)
- 	if (!--m->count) {
- 		m->mode = SVC_POOL_DEFAULT;
- 		kfree(m->to_pool);
-+		m->to_pool = NULL;
- 		kfree(m->pool_to);
-+		m->pool_to = NULL;
- 		m->npools = 0;
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0067-svcrpc-destroy-server-sockets-all-at-once.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0067-svcrpc-destroy-server-sockets-all-at-once.patch
deleted file mode 100644
index 23264ca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0067-svcrpc-destroy-server-sockets-all-at-once.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 7bbbb974406d83275664903d43b9e9bf4b99c131 Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at redhat.com>
-Date: Tue, 29 Nov 2011 11:35:35 -0500
-Subject: [PATCH 067/129] svcrpc: destroy server sockets all at once
-
-commit 2fefb8a09e7ed251ae8996e0c69066e74c5aa560 upstream.
-
-There's no reason I can see that we need to call sv_shutdown between
-closing the two lists of sockets.
-
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- include/linux/sunrpc/svcsock.h |    2 +-
- net/sunrpc/svc.c               |    7 +------
- net/sunrpc/svc_xprt.c          |   11 ++++++++++-
- 3 files changed, 12 insertions(+), 8 deletions(-)
-
-diff --git a/include/linux/sunrpc/svcsock.h b/include/linux/sunrpc/svcsock.h
-index 85c50b4..c84e974 100644
---- a/include/linux/sunrpc/svcsock.h
-+++ b/include/linux/sunrpc/svcsock.h
-@@ -34,7 +34,7 @@ struct svc_sock {
- /*
-  * Function prototypes.
-  */
--void		svc_close_all(struct list_head *);
-+void		svc_close_all(struct svc_serv *);
- int		svc_recv(struct svc_rqst *, long);
- int		svc_send(struct svc_rqst *);
- void		svc_drop(struct svc_rqst *);
-diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index 5443ffd..7ddfb04 100644
---- a/net/sunrpc/svc.c
-+++ b/net/sunrpc/svc.c
-@@ -531,16 +531,11 @@ svc_destroy(struct svc_serv *serv)
- 
- 	del_timer_sync(&serv->sv_temptimer);
- 
--	svc_close_all(&serv->sv_tempsocks);
-+	svc_close_all(serv);
- 
- 	if (serv->sv_shutdown)
- 		serv->sv_shutdown(serv);
- 
--	svc_close_all(&serv->sv_permsocks);
--
--	BUG_ON(!list_empty(&serv->sv_permsocks));
--	BUG_ON(!list_empty(&serv->sv_tempsocks));
--
- 	cache_clean_deferred(serv);
- 
- 	if (svc_serv_is_pooled(serv))
-diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
-index 447cd0e..dcdc8df 100644
---- a/net/sunrpc/svc_xprt.c
-+++ b/net/sunrpc/svc_xprt.c
-@@ -928,7 +928,7 @@ void svc_close_xprt(struct svc_xprt *xprt)
- }
- EXPORT_SYMBOL_GPL(svc_close_xprt);
- 
--void svc_close_all(struct list_head *xprt_list)
-+static void svc_close_list(struct list_head *xprt_list)
- {
- 	struct svc_xprt *xprt;
- 	struct svc_xprt *tmp;
-@@ -946,6 +946,15 @@ void svc_close_all(struct list_head *xprt_list)
- 	}
- }
- 
-+void svc_close_all(struct svc_serv *serv)
-+{
-+	svc_close_list(&serv->sv_tempsocks);
-+	svc_close_list(&serv->sv_permsocks);
-+	BUG_ON(!list_empty(&serv->sv_permsocks));
-+	BUG_ON(!list_empty(&serv->sv_tempsocks));
-+
-+}
-+
- /*
-  * Handle defer and revisit of requests
-  */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0068-svcrpc-avoid-memory-corruption-on-pool-shutdown.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0068-svcrpc-avoid-memory-corruption-on-pool-shutdown.patch
deleted file mode 100644
index 494d909..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0068-svcrpc-avoid-memory-corruption-on-pool-shutdown.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From 5faa65a4101dc292e7d43c525e87f4f2acae40e3 Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at redhat.com>
-Date: Tue, 29 Nov 2011 17:00:26 -0500
-Subject: [PATCH 068/129] svcrpc: avoid memory-corruption on pool shutdown
-
-commit b4f36f88b3ee7cf26bf0be84e6c7fc15f84dcb71 upstream.
-
-Socket callbacks use svc_xprt_enqueue() to add an xprt to a
-pool->sp_sockets list.  In normal operation a server thread will later
-come along and take the xprt off that list.  On shutdown, after all the
-threads have exited, we instead manually walk the sv_tempsocks and
-sv_permsocks lists to find all the xprt's and delete them.
-
-So the sp_sockets lists don't really matter any more.  As a result,
-we've mostly just ignored them and hoped they would go away.
-
-Which has gotten us into trouble; witness for example ebc63e531cc6
-"svcrpc: fix list-corrupting race on nfsd shutdown", the result of Ben
-Greear noticing that a still-running svc_xprt_enqueue() could re-add an
-xprt to an sp_sockets list just before it was deleted.  The fix was to
-remove it from the list at the end of svc_delete_xprt().  But that only
-made corruption less likely--I can see nothing that prevents a
-svc_xprt_enqueue() from adding another xprt to the list at the same
-moment that we're removing this xprt from the list.  In fact, despite
-the earlier xpo_detach(), I don't even see what guarantees that
-svc_xprt_enqueue() couldn't still be running on this xprt.
-
-So, instead, note that svc_xprt_enqueue() essentially does:
-	lock sp_lock
-		if XPT_BUSY unset
-			add to sp_sockets
-	unlock sp_lock
-
-So, if we do:
-
-	set XPT_BUSY on every xprt.
-	Empty every sp_sockets list, under the sp_socks locks.
-
-Then we're left knowing that the sp_sockets lists are all empty and will
-stay that way, since any svc_xprt_enqueue() will check XPT_BUSY under
-the sp_lock and see it set.
-
-And *then* we can continue deleting the xprt's.
-
-(Thanks to Jeff Layton for being correctly suspicious of this code....)
-
-Cc: Ben Greear <greearb at candelatech.com>
-Cc: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- net/sunrpc/svc.c      |   10 +++++++++-
- net/sunrpc/svc_xprt.c |   48 +++++++++++++++++++++++++++++-------------------
- 2 files changed, 38 insertions(+), 20 deletions(-)
-
-diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index 7ddfb04..d4ad50e 100644
---- a/net/sunrpc/svc.c
-+++ b/net/sunrpc/svc.c
-@@ -530,7 +530,15 @@ svc_destroy(struct svc_serv *serv)
- 		printk("svc_destroy: no threads for serv=%p!\n", serv);
- 
- 	del_timer_sync(&serv->sv_temptimer);
--
-+	/*
-+	 * The set of xprts (contained in the sv_tempsocks and
-+	 * sv_permsocks lists) is now constant, since it is modified
-+	 * only by accepting new sockets (done by service threads in
-+	 * svc_recv) or aging old ones (done by sv_temptimer), or
-+	 * configuration changes (excluded by whatever locking the
-+	 * caller is using--nfsd_mutex in the case of nfsd).  So it's
-+	 * safe to traverse those lists and shut everything down:
-+	 */
- 	svc_close_all(serv);
- 
- 	if (serv->sv_shutdown)
-diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
-index dcdc8df..9ed2cd0 100644
---- a/net/sunrpc/svc_xprt.c
-+++ b/net/sunrpc/svc_xprt.c
-@@ -893,14 +893,7 @@ void svc_delete_xprt(struct svc_xprt *xprt)
- 	spin_lock_bh(&serv->sv_lock);
- 	if (!test_and_set_bit(XPT_DETACHED, &xprt->xpt_flags))
- 		list_del_init(&xprt->xpt_list);
--	/*
--	 * The only time we're called while xpt_ready is still on a list
--	 * is while the list itself is about to be destroyed (in
--	 * svc_destroy).  BUT svc_xprt_enqueue could still be attempting
--	 * to add new entries to the sp_sockets list, so we can't leave
--	 * a freed xprt on it.
--	 */
--	list_del_init(&xprt->xpt_ready);
-+	BUG_ON(!list_empty(&xprt->xpt_ready));
- 	if (test_bit(XPT_TEMP, &xprt->xpt_flags))
- 		serv->sv_tmpcnt--;
- 	spin_unlock_bh(&serv->sv_lock);
-@@ -931,28 +924,45 @@ EXPORT_SYMBOL_GPL(svc_close_xprt);
- static void svc_close_list(struct list_head *xprt_list)
- {
- 	struct svc_xprt *xprt;
--	struct svc_xprt *tmp;
- 
--	/*
--	 * The server is shutting down, and no more threads are running.
--	 * svc_xprt_enqueue() might still be running, but at worst it
--	 * will re-add the xprt to sp_sockets, which will soon get
--	 * freed.  So we don't bother with any more locking, and don't
--	 * leave the close to the (nonexistent) server threads:
--	 */
--	list_for_each_entry_safe(xprt, tmp, xprt_list, xpt_list) {
-+	list_for_each_entry(xprt, xprt_list, xpt_list) {
- 		set_bit(XPT_CLOSE, &xprt->xpt_flags);
--		svc_delete_xprt(xprt);
-+		set_bit(XPT_BUSY, &xprt->xpt_flags);
- 	}
- }
- 
- void svc_close_all(struct svc_serv *serv)
- {
-+	struct svc_pool *pool;
-+	struct svc_xprt *xprt;
-+	struct svc_xprt *tmp;
-+	int i;
-+
- 	svc_close_list(&serv->sv_tempsocks);
- 	svc_close_list(&serv->sv_permsocks);
-+
-+	for (i = 0; i < serv->sv_nrpools; i++) {
-+		pool = &serv->sv_pools[i];
-+
-+		spin_lock_bh(&pool->sp_lock);
-+		while (!list_empty(&pool->sp_sockets)) {
-+			xprt = list_first_entry(&pool->sp_sockets, struct svc_xprt, xpt_ready);
-+			list_del_init(&xprt->xpt_ready);
-+		}
-+		spin_unlock_bh(&pool->sp_lock);
-+	}
-+	/*
-+	 * At this point the sp_sockets lists will stay empty, since
-+	 * svc_enqueue will not add new entries without taking the
-+	 * sp_lock and checking XPT_BUSY.
-+	 */
-+	list_for_each_entry_safe(xprt, tmp, &serv->sv_tempsocks, xpt_list)
-+		svc_delete_xprt(xprt);
-+	list_for_each_entry_safe(xprt, tmp, &serv->sv_permsocks, xpt_list)
-+		svc_delete_xprt(xprt);
-+
- 	BUG_ON(!list_empty(&serv->sv_permsocks));
- 	BUG_ON(!list_empty(&serv->sv_tempsocks));
--
- }
- 
- /*
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0069-nfsd4-fix-lockowner-matching.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0069-nfsd4-fix-lockowner-matching.patch
deleted file mode 100644
index 06f300b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0069-nfsd4-fix-lockowner-matching.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 041400912607efd62cf9aa6ad4e5ad6baf957f1a Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at redhat.com>
-Date: Mon, 7 Nov 2011 16:37:57 -0500
-Subject: [PATCH 069/129] nfsd4: fix lockowner matching
-
-commit b93d87c19821ba7d3ee11557403d782e541071ad upstream.
-
-Lockowners are looked up by file as well as by owner, but we were
-forgetting to do a comparison on the file.  This could cause an
-incorrect result from lockt.
-
-(Note looking up the inode from the lockowner is pretty awkward here.
-The data structures need fixing.)
-
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfsd/nfs4state.c |   17 +++++++++++++++--
- 1 file changed, 15 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
-index 47e94e3..5abced7 100644
---- a/fs/nfsd/nfs4state.c
-+++ b/fs/nfsd/nfs4state.c
-@@ -3809,16 +3809,29 @@ nevermind:
- 		deny->ld_type = NFS4_WRITE_LT;
- }
- 
-+static bool same_lockowner_ino(struct nfs4_lockowner *lo, struct inode *inode, clientid_t *clid, struct xdr_netobj *owner)
-+{
-+	struct nfs4_ol_stateid *lst;
-+
-+	if (!same_owner_str(&lo->lo_owner, owner, clid))
-+		return false;
-+	lst = list_first_entry(&lo->lo_owner.so_stateids,
-+			       struct nfs4_ol_stateid, st_perstateowner);
-+	return lst->st_file->fi_inode == inode;
-+}
-+
- static struct nfs4_lockowner *
- find_lockowner_str(struct inode *inode, clientid_t *clid,
- 		struct xdr_netobj *owner)
- {
- 	unsigned int hashval = lock_ownerstr_hashval(inode, clid->cl_id, owner);
-+	struct nfs4_lockowner *lo;
- 	struct nfs4_stateowner *op;
- 
- 	list_for_each_entry(op, &lock_ownerstr_hashtbl[hashval], so_strhash) {
--		if (same_owner_str(op, owner, clid))
--			return lockowner(op);
-+		lo = lockowner(op);
-+		if (same_lockowner_ino(lo, inode, clid, owner))
-+			return lo;
- 	}
- 	return NULL;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0070-nfsd-Fix-oops-when-parsing-a-0-length-export.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0070-nfsd-Fix-oops-when-parsing-a-0-length-export.patch
deleted file mode 100644
index 42f3853..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0070-nfsd-Fix-oops-when-parsing-a-0-length-export.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 57a7686869f3ca7dfb8694583c88b5dfd510e4f6 Mon Sep 17 00:00:00 2001
-From: Sasha Levin <levinsasha928 at gmail.com>
-Date: Fri, 18 Nov 2011 12:14:49 +0200
-Subject: [PATCH 070/129] nfsd: Fix oops when parsing a 0 length export
-
-commit b2ea70afade7080360ac55c4e64ff7a5fafdb67b upstream.
-
-expkey_parse() oopses when handling a 0 length export. This is easily
-triggerable from usermode by writing 0 bytes into
-'/proc/[proc id]/net/rpc/nfsd.fh/channel'.
-
-Below is the log:
-
-[ 1402.286893] BUG: unable to handle kernel paging request at ffff880077c49fff
-[ 1402.287632] IP: [<ffffffff812b4b99>] expkey_parse+0x28/0x2e1
-[ 1402.287632] PGD 2206063 PUD 1fdfd067 PMD 1ffbc067 PTE 8000000077c49160
-[ 1402.287632] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
-[ 1402.287632] CPU 1
-[ 1402.287632] Pid: 20198, comm: trinity Not tainted 3.2.0-rc2-sasha-00058-gc65cd37 #6
-[ 1402.287632] RIP: 0010:[<ffffffff812b4b99>]  [<ffffffff812b4b99>] expkey_parse+0x28/0x2e1
-[ 1402.287632] RSP: 0018:ffff880077f0fd68  EFLAGS: 00010292
-[ 1402.287632] RAX: ffff880077c49fff RBX: 00000000ffffffea RCX: 0000000001043400
-[ 1402.287632] RDX: 0000000000000000 RSI: ffff880077c4a000 RDI: ffffffff82283de0
-[ 1402.287632] RBP: ffff880077f0fe18 R08: 0000000000000001 R09: ffff880000000000
-[ 1402.287632] R10: 0000000000000000 R11: 0000000000000001 R12: ffff880077c4a000
-[ 1402.287632] R13: ffffffff82283de0 R14: 0000000001043400 R15: ffffffff82283de0
-[ 1402.287632] FS:  00007f25fec3f700(0000) GS:ffff88007d400000(0000) knlGS:0000000000000000
-[ 1402.287632] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-[ 1402.287632] CR2: ffff880077c49fff CR3: 0000000077e1d000 CR4: 00000000000406e0
-[ 1402.287632] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-[ 1402.287632] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-[ 1402.287632] Process trinity (pid: 20198, threadinfo ffff880077f0e000, task ffff880077db17b0)
-[ 1402.287632] Stack:
-[ 1402.287632]  ffff880077db17b0 ffff880077c4a000 ffff880077f0fdb8 ffffffff810b411e
-[ 1402.287632]  ffff880000000000 ffff880077db17b0 ffff880077c4a000 ffffffff82283de0
-[ 1402.287632]  0000000001043400 ffffffff82283de0 ffff880077f0fde8 ffffffff81111f63
-[ 1402.287632] Call Trace:
-[ 1402.287632]  [<ffffffff810b411e>] ? lock_release+0x1af/0x1bc
-[ 1402.287632]  [<ffffffff81111f63>] ? might_fault+0x97/0x9e
-[ 1402.287632]  [<ffffffff81111f1a>] ? might_fault+0x4e/0x9e
-[ 1402.287632]  [<ffffffff81a8bcf2>] cache_do_downcall+0x3e/0x4f
-[ 1402.287632]  [<ffffffff81a8c950>] cache_write.clone.16+0xbb/0x130
-[ 1402.287632]  [<ffffffff81a8c9df>] ? cache_write_pipefs+0x1a/0x1a
-[ 1402.287632]  [<ffffffff81a8c9f8>] cache_write_procfs+0x19/0x1b
-[ 1402.287632]  [<ffffffff8118dc54>] proc_reg_write+0x8e/0xad
-[ 1402.287632]  [<ffffffff8113fe81>] vfs_write+0xaa/0xfd
-[ 1402.287632]  [<ffffffff8114142d>] ? fget_light+0x35/0x9e
-[ 1402.287632]  [<ffffffff8113ff8b>] sys_write+0x48/0x6f
-[ 1402.287632]  [<ffffffff81bbdb92>] system_call_fastpath+0x16/0x1b
-[ 1402.287632] Code: c0 c9 c3 55 48 63 d2 48 89 e5 48 8d 44 32 ff 41 57 41 56 41 55 41 54 53 bb ea ff ff ff 48 81 ec 88 00 00 00 48 89 b5 58 ff ff ff
-[ 1402.287632]  38 0a 0f 85 89 02 00 00 c6 00 00 48 8b 3d 44 4a e5 01 48 85
-[ 1402.287632] RIP  [<ffffffff812b4b99>] expkey_parse+0x28/0x2e1
-[ 1402.287632]  RSP <ffff880077f0fd68>
-[ 1402.287632] CR2: ffff880077c49fff
-[ 1402.287632] ---[ end trace 368ef53ff773a5e3 ]---
-
-Cc: "J. Bruce Fields" <bfields at fieldses.org>
-Cc: Neil Brown <neilb at suse.de>
-Cc: linux-nfs at vger.kernel.org
-Signed-off-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfsd/export.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/nfsd/export.c b/fs/nfsd/export.c
-index 62f3b90..5f312ab 100644
---- a/fs/nfsd/export.c
-+++ b/fs/nfsd/export.c
-@@ -87,7 +87,7 @@ static int expkey_parse(struct cache_detail *cd, char *mesg, int mlen)
- 	struct svc_expkey key;
- 	struct svc_expkey *ek = NULL;
- 
--	if (mesg[mlen-1] != '\n')
-+	if (mlen < 1 || mesg[mlen-1] != '\n')
- 		return -EINVAL;
- 	mesg[mlen-1] = 0;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0071-fsnotify-don-t-BUG-in-fsnotify_destroy_mark.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0071-fsnotify-don-t-BUG-in-fsnotify_destroy_mark.patch
deleted file mode 100644
index b320467..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0071-fsnotify-don-t-BUG-in-fsnotify_destroy_mark.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 25778654573b3763a5f34e694b17ec9ff43fb3bb Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi at suse.cz>
-Date: Thu, 12 Jan 2012 17:59:46 +0100
-Subject: [PATCH 071/129] fsnotify: don't BUG in fsnotify_destroy_mark()
-
-commit fed474857efbed79cd390d0aee224231ca718f63 upstream.
-
-Removing the parent of a watched file results in "kernel BUG at
-fs/notify/mark.c:139".
-
-To reproduce
-
-  add "-w /tmp/audit/dir/watched_file" to audit.rules
-  rm -rf /tmp/audit/dir
-
-This is caused by fsnotify_destroy_mark() being called without an
-extra reference taken by the caller.
-
-Reported by Francesco Cosoleto here:
-
-  https://bugzilla.novell.com/show_bug.cgi?id=689860
-
-Fix by removing the BUG_ON and adding a comment about not accessing mark after
-the iput.
-
-Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/notify/mark.c |    8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/fs/notify/mark.c b/fs/notify/mark.c
-index e14587d..f104d56 100644
---- a/fs/notify/mark.c
-+++ b/fs/notify/mark.c
-@@ -135,9 +135,6 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
- 
- 	mark->flags &= ~FSNOTIFY_MARK_FLAG_ALIVE;
- 
--	/* 1 from caller and 1 for being on i_list/g_list */
--	BUG_ON(atomic_read(&mark->refcnt) < 2);
--
- 	spin_lock(&group->mark_lock);
- 
- 	if (mark->flags & FSNOTIFY_MARK_FLAG_INODE) {
-@@ -182,6 +179,11 @@ void fsnotify_destroy_mark(struct fsnotify_mark *mark)
- 		iput(inode);
- 
- 	/*
-+	 * We don't necessarily have a ref on mark from caller so the above iput
-+	 * may have already destroyed it.  Don't touch from now on.
-+	 */
-+
-+	/*
- 	 * it's possible that this group tried to destroy itself, but this
- 	 * this mark was simultaneously being freed by inode.  If that's the
- 	 * case, we finish freeing the group here.
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0072-x86-UV-Update-Boot-messages-for-SGI-UV2-platform.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0072-x86-UV-Update-Boot-messages-for-SGI-UV2-platform.patch
deleted file mode 100644
index fc5632b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0072-x86-UV-Update-Boot-messages-for-SGI-UV2-platform.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 76df9b14b1edf95a3f1194c0b08547e50931fefd Mon Sep 17 00:00:00 2001
-From: Jack Steiner <steiner at sgi.com>
-Date: Fri, 6 Jan 2012 13:19:00 -0600
-Subject: [PATCH 072/129] x86, UV: Update Boot messages for SGI UV2 platform
-
-commit da517a08ac5913cd80ce3507cddd00f2a091b13c upstream.
-
-SGI UV systems print a message during boot:
-
-	UV: Found <num> blades
-
-Due to packaging changes, the blade count is not accurate for
-on the next generation of the platform. This patch corrects the
-count.
-
-Signed-off-by: Jack Steiner <steiner at sgi.com>
-Link: http://lkml.kernel.org/r/20120106191900.GA19772@sgi.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/kernel/apic/x2apic_uv_x.c |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/kernel/apic/x2apic_uv_x.c b/arch/x86/kernel/apic/x2apic_uv_x.c
-index 9d59bba..79b05b8 100644
---- a/arch/x86/kernel/apic/x2apic_uv_x.c
-+++ b/arch/x86/kernel/apic/x2apic_uv_x.c
-@@ -769,7 +769,12 @@ void __init uv_system_init(void)
- 	for(i = 0; i < UVH_NODE_PRESENT_TABLE_DEPTH; i++)
- 		uv_possible_blades +=
- 		  hweight64(uv_read_local_mmr( UVH_NODE_PRESENT_TABLE + i * 8));
--	printk(KERN_DEBUG "UV: Found %d blades\n", uv_num_possible_blades());
-+
-+	/* uv_num_possible_blades() is really the hub count */
-+	printk(KERN_INFO "UV: Found %d blades, %d hubs\n",
-+			is_uv1_hub() ? uv_num_possible_blades() :
-+			(uv_num_possible_blades() + 1) / 2,
-+			uv_num_possible_blades());
- 
- 	bytes = sizeof(struct uv_blade_info) * uv_num_possible_blades();
- 	uv_blade_info = kzalloc(bytes, GFP_KERNEL);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0073-recordmcount-Fix-handling-of-elf64-big-endian-object.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0073-recordmcount-Fix-handling-of-elf64-big-endian-object.patch
deleted file mode 100644
index 06552c0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0073-recordmcount-Fix-handling-of-elf64-big-endian-object.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 4b493a169e4e0955d63015a30910a15d4d2cefed Mon Sep 17 00:00:00 2001
-From: David Daney <david.daney at cavium.com>
-Date: Mon, 19 Dec 2011 17:42:42 -0800
-Subject: [PATCH 073/129] recordmcount: Fix handling of elf64 big-endian
- objects.
-
-commit 2e885057b7f75035f0b85e02f737891482815a81 upstream.
-
-In ELF64, the sh_flags field is 64-bits wide.  recordmcount was
-erroneously treating it as a 32-bit wide field.  For little endian
-objects this works because the flags of interest (SHF_EXECINSTR)
-reside in the lower 32 bits of the word, and you get the same result
-with either a 32-bit or 64-bit read.  Big endian objects on the
-other hand do not work at all with this error.
-
-The fix:  Correctly treat sh_flags as 64-bits wide in elf64 objects.
-
-The symptom I observed was that my
-__start_mcount_loc..__stop_mcount_loc was empty even though ftrace
-function tracing was enabled.
-
-Link: http://lkml.kernel.org/r/1324345362-12230-1-git-send-email-ddaney.cavm@gmail.com
-
-Signed-off-by: David Daney <david.daney at cavium.com>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- scripts/recordmcount.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/scripts/recordmcount.h b/scripts/recordmcount.h
-index f40a6af6..54e35c1 100644
---- a/scripts/recordmcount.h
-+++ b/scripts/recordmcount.h
-@@ -462,7 +462,7 @@ __has_rel_mcount(Elf_Shdr const *const relhdr,  /* is SHT_REL or SHT_RELA */
- 		succeed_file();
- 	}
- 	if (w(txthdr->sh_type) != SHT_PROGBITS ||
--	    !(w(txthdr->sh_flags) & SHF_EXECINSTR))
-+	    !(_w(txthdr->sh_flags) & SHF_EXECINSTR))
- 		return NULL;
- 	return txtname;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0074-uvcvideo-Fix-integer-overflow-in-uvc_ioctl_ctrl_map.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0074-uvcvideo-Fix-integer-overflow-in-uvc_ioctl_ctrl_map.patch
deleted file mode 100644
index d9a8f19..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0074-uvcvideo-Fix-integer-overflow-in-uvc_ioctl_ctrl_map.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From ea50d13fefca15eb7d541f1830b2361943090063 Mon Sep 17 00:00:00 2001
-From: Haogang Chen <haogangchen at gmail.com>
-Date: Tue, 29 Nov 2011 18:32:25 -0300
-Subject: [PATCH 074/129] uvcvideo: Fix integer overflow in
- uvc_ioctl_ctrl_map()
-
-commit 806e23e95f94a27ee445022d724060b9b45cb64a upstream.
-
-There is a potential integer overflow in uvc_ioctl_ctrl_map(). When a
-large xmap->menu_count is passed from the userspace, the subsequent call
-to kmalloc() will allocate a buffer smaller than expected.
-map->menu_count and map->menu_info would later be used in a loop (e.g.
-in uvc_query_v4l2_ctrl), which leads to out-of-bound access.
-
-The patch checks the ioctl argument and returns -EINVAL for zero or too
-large values in xmap->menu_count.
-
-Signed-off-by: Haogang Chen <haogangchen at gmail.com>
-[laurent.pinchart at ideasonboard.com Prevent excessive memory consumption]
-Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/media/video/uvc/uvc_v4l2.c |    9 +++++++++
- drivers/media/video/uvc/uvcvideo.h |    1 +
- 2 files changed, 10 insertions(+)
-
-diff --git a/drivers/media/video/uvc/uvc_v4l2.c b/drivers/media/video/uvc/uvc_v4l2.c
-index dadf11f..cf7788f 100644
---- a/drivers/media/video/uvc/uvc_v4l2.c
-+++ b/drivers/media/video/uvc/uvc_v4l2.c
-@@ -58,6 +58,15 @@ static int uvc_ioctl_ctrl_map(struct uvc_video_chain *chain,
- 		break;
- 
- 	case V4L2_CTRL_TYPE_MENU:
-+		/* Prevent excessive memory consumption, as well as integer
-+		 * overflows.
-+		 */
-+		if (xmap->menu_count == 0 ||
-+		    xmap->menu_count > UVC_MAX_CONTROL_MENU_ENTRIES) {
-+			ret = -EINVAL;
-+			goto done;
-+		}
-+
- 		size = xmap->menu_count * sizeof(*map->menu_info);
- 		map->menu_info = kmalloc(size, GFP_KERNEL);
- 		if (map->menu_info == NULL) {
-diff --git a/drivers/media/video/uvc/uvcvideo.h b/drivers/media/video/uvc/uvcvideo.h
-index 4c1392e..bc446ba 100644
---- a/drivers/media/video/uvc/uvcvideo.h
-+++ b/drivers/media/video/uvc/uvcvideo.h
-@@ -113,6 +113,7 @@
- 
- /* Maximum allowed number of control mappings per device */
- #define UVC_MAX_CONTROL_MAPPINGS	1024
-+#define UVC_MAX_CONTROL_MENU_ENTRIES	32
- 
- /* Devices quirks */
- #define UVC_QUIRK_STATUS_INTERVAL	0x00000001
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0075-dcache-use-a-dispose-list-in-select_parent.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0075-dcache-use-a-dispose-list-in-select_parent.patch
deleted file mode 100644
index 9ab9f3d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0075-dcache-use-a-dispose-list-in-select_parent.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From 4289e10c1a424c39e50bb4c44447da025fdf37b9 Mon Sep 17 00:00:00 2001
-From: Dave Chinner <david at fromorbit.com>
-Date: Tue, 23 Aug 2011 18:56:24 +1000
-Subject: [PATCH 075/129] dcache: use a dispose list in select_parent
-
-commit b48f03b319ba78f3abf9a7044d1f436d8d90f4f9 upstream.
-
-select_parent currently abuses the dentry cache LRU to provide
-cleanup features for child dentries that need to be freed. It moves
-them to the tail of the LRU, then tells shrink_dcache_parent() to
-calls __shrink_dcache_sb to unconditionally move them to a dispose
-list (as DCACHE_REFERENCED is ignored). __shrink_dcache_sb() has to
-relock the dentries to move them off the LRU onto the dispose list,
-but otherwise does not touch the dentries that select_parent() moved
-to the tail of the LRU. It then passses the dispose list to
-shrink_dentry_list() which tries to free the dentries.
-
-IOWs, the use of __shrink_dcache_sb() is superfluous - we can build
-exactly the same list of dentries for disposal directly in
-select_parent() and call shrink_dentry_list() instead of calling
-__shrink_dcache_sb() to do that. This means that we avoid long holds
-on the lru lock walking the LRU moving dentries to the dispose list
-We also avoid the need to relock each dentry just to move it off the
-LRU, reducing the numebr of times we lock each dentry to dispose of
-them in shrink_dcache_parent() from 3 to 2 times.
-
-Further, we remove one of the two callers of __shrink_dcache_sb().
-This also means that __shrink_dcache_sb can be moved into back into
-prune_dcache_sb() and we no longer have to handle referenced
-dentries conditionally, simplifying the code.
-
-Signed-off-by: Dave Chinner <dchinner at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/dcache.c |   63 ++++++++++++++++++++---------------------------------------
- 1 file changed, 21 insertions(+), 42 deletions(-)
-
-diff --git a/fs/dcache.c b/fs/dcache.c
-index 89509b5..108116e 100644
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -275,15 +275,15 @@ static void dentry_lru_prune(struct dentry *dentry)
- 	}
- }
- 
--static void dentry_lru_move_tail(struct dentry *dentry)
-+static void dentry_lru_move_list(struct dentry *dentry, struct list_head *list)
- {
- 	spin_lock(&dcache_lru_lock);
- 	if (list_empty(&dentry->d_lru)) {
--		list_add_tail(&dentry->d_lru, &dentry->d_sb->s_dentry_lru);
-+		list_add_tail(&dentry->d_lru, list);
- 		dentry->d_sb->s_nr_dentry_unused++;
- 		dentry_stat.nr_unused++;
- 	} else {
--		list_move_tail(&dentry->d_lru, &dentry->d_sb->s_dentry_lru);
-+		list_move_tail(&dentry->d_lru, list);
- 	}
- 	spin_unlock(&dcache_lru_lock);
- }
-@@ -769,14 +769,18 @@ static void shrink_dentry_list(struct list_head *list)
- }
- 
- /**
-- * __shrink_dcache_sb - shrink the dentry LRU on a given superblock
-- * @sb:		superblock to shrink dentry LRU.
-- * @count:	number of entries to prune
-- * @flags:	flags to control the dentry processing
-+ * prune_dcache_sb - shrink the dcache
-+ * @sb: superblock
-+ * @count: number of entries to try to free
-+ *
-+ * Attempt to shrink the superblock dcache LRU by @count entries. This is
-+ * done when we need more memory an called from the superblock shrinker
-+ * function.
-  *
-- * If flags contains DCACHE_REFERENCED reference dentries will not be pruned.
-+ * This function may fail to free any resources if all the dentries are in
-+ * use.
-  */
--static void __shrink_dcache_sb(struct super_block *sb, int count, int flags)
-+void prune_dcache_sb(struct super_block *sb, int count)
- {
- 	struct dentry *dentry;
- 	LIST_HEAD(referenced);
-@@ -795,13 +799,7 @@ relock:
- 			goto relock;
- 		}
- 
--		/*
--		 * If we are honouring the DCACHE_REFERENCED flag and the
--		 * dentry has this flag set, don't free it.  Clear the flag
--		 * and put it back on the LRU.
--		 */
--		if (flags & DCACHE_REFERENCED &&
--				dentry->d_flags & DCACHE_REFERENCED) {
-+		if (dentry->d_flags & DCACHE_REFERENCED) {
- 			dentry->d_flags &= ~DCACHE_REFERENCED;
- 			list_move(&dentry->d_lru, &referenced);
- 			spin_unlock(&dentry->d_lock);
-@@ -821,23 +819,6 @@ relock:
- }
- 
- /**
-- * prune_dcache_sb - shrink the dcache
-- * @sb: superblock
-- * @nr_to_scan: number of entries to try to free
-- *
-- * Attempt to shrink the superblock dcache LRU by @nr_to_scan entries. This is
-- * done when we need more memory an called from the superblock shrinker
-- * function.
-- *
-- * This function may fail to free any resources if all the dentries are in
-- * use.
-- */
--void prune_dcache_sb(struct super_block *sb, int nr_to_scan)
--{
--	__shrink_dcache_sb(sb, nr_to_scan, DCACHE_REFERENCED);
--}
--
--/**
-  * shrink_dcache_sb - shrink dcache for a superblock
-  * @sb: superblock
-  *
-@@ -1091,7 +1072,7 @@ EXPORT_SYMBOL(have_submounts);
-  * drop the lock and return early due to latency
-  * constraints.
-  */
--static int select_parent(struct dentry * parent)
-+static int select_parent(struct dentry *parent, struct list_head *dispose)
- {
- 	struct dentry *this_parent;
- 	struct list_head *next;
-@@ -1113,12 +1094,11 @@ resume:
- 
- 		spin_lock_nested(&dentry->d_lock, DENTRY_D_LOCK_NESTED);
- 
--		/* 
--		 * move only zero ref count dentries to the end 
--		 * of the unused list for prune_dcache
-+		/*
-+		 * move only zero ref count dentries to the dispose list.
- 		 */
- 		if (!dentry->d_count) {
--			dentry_lru_move_tail(dentry);
-+			dentry_lru_move_list(dentry, dispose);
- 			found++;
- 		} else {
- 			dentry_lru_del(dentry);
-@@ -1180,14 +1160,13 @@ rename_retry:
-  *
-  * Prune the dcache to remove unused children of the parent dentry.
-  */
-- 
- void shrink_dcache_parent(struct dentry * parent)
- {
--	struct super_block *sb = parent->d_sb;
-+	LIST_HEAD(dispose);
- 	int found;
- 
--	while ((found = select_parent(parent)) != 0)
--		__shrink_dcache_sb(sb, found, 0);
-+	while ((found = select_parent(parent, &dispose)) != 0)
-+		shrink_dentry_list(&dispose);
- }
- EXPORT_SYMBOL(shrink_dcache_parent);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0076-fix-shrink_dcache_parent-livelock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0076-fix-shrink_dcache_parent-livelock.patch
deleted file mode 100644
index 7d33d3c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0076-fix-shrink_dcache_parent-livelock.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 72a350429f61098d46984c13e8da293ec7a8ffe4 Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <miklos at szeredi.hu>
-Date: Tue, 10 Jan 2012 18:22:25 +0100
-Subject: [PATCH 076/129] fix shrink_dcache_parent() livelock
-
-commit eaf5f9073533cde21c7121c136f1c3f072d9cf59 upstream.
-
-Two (or more) concurrent calls of shrink_dcache_parent() on the same dentry may
-cause shrink_dcache_parent() to loop forever.
-
-Here's what appears to happen:
-
-1 - CPU0: select_parent(P) finds C and puts it on dispose list, returns 1
-
-2 - CPU1: select_parent(P) locks P->d_lock
-
-3 - CPU0: shrink_dentry_list() locks C->d_lock
-   dentry_kill(C) tries to lock P->d_lock but fails, unlocks C->d_lock
-
-4 - CPU1: select_parent(P) locks C->d_lock,
-         moves C from dispose list being processed on CPU0 to the new
-dispose list, returns 1
-
-5 - CPU0: shrink_dentry_list() finds dispose list empty, returns
-
-6 - Goto 2 with CPU0 and CPU1 switched
-
-Basically select_parent() steals the dentry from shrink_dentry_list() and thinks
-it found a new one, causing shrink_dentry_list() to think it's making progress
-and loop over and over.
-
-One way to trigger this is to make udev calls stat() on the sysfs file while it
-is going away.
-
-Having a file in /lib/udev/rules.d/ with only this one rule seems to the trick:
-
-ATTR{vendor}=="0x8086", ATTR{device}=="0x10ca", ENV{PCI_SLOT_NAME}="%k", ENV{MATCHADDR}="$attr{address}", RUN+="/bin/true"
-
-Then execute the following loop:
-
-while true; do
-        echo -bond0 > /sys/class/net/bonding_masters
-        echo +bond0 > /sys/class/net/bonding_masters
-        echo -bond1 > /sys/class/net/bonding_masters
-        echo +bond1 > /sys/class/net/bonding_masters
-done
-
-One fix would be to check all callers and prevent concurrent calls to
-shrink_dcache_parent().  But I think a better solution is to stop the
-stealing behavior.
-
-This patch adds a new dentry flag that is set when the dentry is added to the
-dispose list.  The flag is cleared in dentry_lru_del() in case the dentry gets a
-new reference just before being pruned.
-
-If the dentry has this flag, select_parent() will skip it and let
-shrink_dentry_list() retry pruning it.  With select_parent() skipping those
-dentries there will not be the appearance of progress (new dentries found) when
-there is none, hence shrink_dcache_parent() will not loop forever.
-
-Set the flag is also set in prune_dcache_sb() for consistency as suggested by
-Linus.
-
-Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/dcache.c            |   15 +++++++++++----
- include/linux/dcache.h |    1 +
- 2 files changed, 12 insertions(+), 4 deletions(-)
-
-diff --git a/fs/dcache.c b/fs/dcache.c
-index 108116e..f7908ae 100644
---- a/fs/dcache.c
-+++ b/fs/dcache.c
-@@ -242,6 +242,7 @@ static void dentry_lru_add(struct dentry *dentry)
- static void __dentry_lru_del(struct dentry *dentry)
- {
- 	list_del_init(&dentry->d_lru);
-+	dentry->d_flags &= ~DCACHE_SHRINK_LIST;
- 	dentry->d_sb->s_nr_dentry_unused--;
- 	dentry_stat.nr_unused--;
- }
-@@ -805,6 +806,7 @@ relock:
- 			spin_unlock(&dentry->d_lock);
- 		} else {
- 			list_move_tail(&dentry->d_lru, &tmp);
-+			dentry->d_flags |= DCACHE_SHRINK_LIST;
- 			spin_unlock(&dentry->d_lock);
- 			if (!--count)
- 				break;
-@@ -1096,14 +1098,19 @@ resume:
- 
- 		/*
- 		 * move only zero ref count dentries to the dispose list.
-+		 *
-+		 * Those which are presently on the shrink list, being processed
-+		 * by shrink_dentry_list(), shouldn't be moved.  Otherwise the
-+		 * loop in shrink_dcache_parent() might not make any progress
-+		 * and loop forever.
- 		 */
--		if (!dentry->d_count) {
-+		if (dentry->d_count) {
-+			dentry_lru_del(dentry);
-+		} else if (!(dentry->d_flags & DCACHE_SHRINK_LIST)) {
- 			dentry_lru_move_list(dentry, dispose);
-+			dentry->d_flags |= DCACHE_SHRINK_LIST;
- 			found++;
--		} else {
--			dentry_lru_del(dentry);
- 		}
--
- 		/*
- 		 * We can return to the caller if we have found some (this
- 		 * ensures forward progress). We'll be coming back to find
-diff --git a/include/linux/dcache.h b/include/linux/dcache.h
-index ed9f74f..4eb8c80 100644
---- a/include/linux/dcache.h
-+++ b/include/linux/dcache.h
-@@ -203,6 +203,7 @@ struct dentry_operations {
- 
- #define DCACHE_CANT_MOUNT	0x0100
- #define DCACHE_GENOCIDE		0x0200
-+#define DCACHE_SHRINK_LIST	0x0400
- 
- #define DCACHE_NFSFS_RENAMED	0x1000
-      /* this dentry has been "silly renamed" and has to be deleted on the last
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0077-pnfsblock-acquire-im_lock-in-_preload_range.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0077-pnfsblock-acquire-im_lock-in-_preload_range.patch
deleted file mode 100644
index 50c770c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0077-pnfsblock-acquire-im_lock-in-_preload_range.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From ff2123e28998f18ebfddf17f1babbc0db77e9857 Mon Sep 17 00:00:00 2001
-From: Peng Tao <bergwolf at gmail.com>
-Date: Thu, 12 Jan 2012 23:18:41 +0800
-Subject: [PATCH 077/129] pnfsblock: acquire im_lock in _preload_range
-
-commit 39e567ae36fe03c2b446e1b83ee3d39bea08f90b upstream.
-
-When calling _add_entry, we should take the im_lock to protect
-agains other modifiers.
-
-Signed-off-by: Peng Tao <peng_tao at emc.com>
-Signed-off-by: Benny Halevy <bhalevy at tonian.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/blocklayout/extents.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/fs/nfs/blocklayout/extents.c b/fs/nfs/blocklayout/extents.c
-index 19fa7b0..c69682a 100644
---- a/fs/nfs/blocklayout/extents.c
-+++ b/fs/nfs/blocklayout/extents.c
-@@ -139,11 +139,13 @@ static int _set_range(struct my_tree *tree, int32_t tag, u64 s, u64 length)
- }
- 
- /* Ensure that future operations on given range of tree will not malloc */
--static int _preload_range(struct my_tree *tree, u64 offset, u64 length)
-+static int _preload_range(struct pnfs_inval_markings *marks,
-+		u64 offset, u64 length)
- {
- 	u64 start, end, s;
- 	int count, i, used = 0, status = -ENOMEM;
- 	struct pnfs_inval_tracking **storage;
-+	struct my_tree  *tree = &marks->im_tree;
- 
- 	dprintk("%s(%llu, %llu) enter\n", __func__, offset, length);
- 	start = normalize(offset, tree->mtt_step_size);
-@@ -161,12 +163,11 @@ static int _preload_range(struct my_tree *tree, u64 offset, u64 length)
- 			goto out_cleanup;
- 	}
- 
--	/* Now need lock - HOW??? */
--
-+	spin_lock(&marks->im_lock);
- 	for (s = start; s < end; s += tree->mtt_step_size)
- 		used += _add_entry(tree, s, INTERNAL_EXISTS, storage[used]);
-+	spin_unlock(&marks->im_lock);
- 
--	/* Unlock - HOW??? */
- 	status = 0;
- 
-  out_cleanup:
-@@ -286,7 +287,7 @@ int bl_mark_sectors_init(struct pnfs_inval_markings *marks,
- 
- 	start = normalize(offset, marks->im_block_size);
- 	end = normalize_up(offset + length, marks->im_block_size);
--	if (_preload_range(&marks->im_tree, start, end - start))
-+	if (_preload_range(marks, start, end - start))
- 		goto outerr;
- 
- 	spin_lock(&marks->im_lock);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0078-pnfsblock-don-t-spinlock-when-freeing-block_dev.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0078-pnfsblock-don-t-spinlock-when-freeing-block_dev.patch
deleted file mode 100644
index bc8b40d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0078-pnfsblock-don-t-spinlock-when-freeing-block_dev.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From c483f16efb181ee2384aa9d5672ebebfc714ab1d Mon Sep 17 00:00:00 2001
-From: Peng Tao <bergwolf at gmail.com>
-Date: Thu, 12 Jan 2012 23:18:47 +0800
-Subject: [PATCH 078/129] pnfsblock: don't spinlock when freeing block_dev
-
-commit 93a3844ee0f843b05a1df4b52e1a19ff26b98d24 upstream.
-
-bl_free_block_dev() may sleep. We can not call it with spinlock held.
-Besides, there is no need to take bm_lock as we are last user freeing bm_devlist.
-
-Signed-off-by: Peng Tao <peng_tao at emc.com>
-Signed-off-by: Benny Halevy <bhalevy at tonian.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/blocklayout/blocklayout.c |   11 ++++-------
- 1 file changed, 4 insertions(+), 7 deletions(-)
-
-diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
-index 281ae95..ce8129d 100644
---- a/fs/nfs/blocklayout/blocklayout.c
-+++ b/fs/nfs/blocklayout/blocklayout.c
-@@ -779,16 +779,13 @@ bl_cleanup_layoutcommit(struct nfs4_layoutcommit_data *lcdata)
- static void free_blk_mountid(struct block_mount_id *mid)
- {
- 	if (mid) {
--		struct pnfs_block_dev *dev;
--		spin_lock(&mid->bm_lock);
--		while (!list_empty(&mid->bm_devlist)) {
--			dev = list_first_entry(&mid->bm_devlist,
--					       struct pnfs_block_dev,
--					       bm_node);
-+		struct pnfs_block_dev *dev, *tmp;
-+
-+		/* No need to take bm_lock as we are last user freeing bm_devlist */
-+		list_for_each_entry_safe(dev, tmp, &mid->bm_devlist, bm_node) {
- 			list_del(&dev->bm_node);
- 			bl_free_block_dev(dev);
- 		}
--		spin_unlock(&mid->bm_lock);
- 		kfree(mid);
- 	}
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0079-pnfsblock-limit-bio-page-count.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0079-pnfsblock-limit-bio-page-count.patch
deleted file mode 100644
index f003ff0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0079-pnfsblock-limit-bio-page-count.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From a9de14f6624613210b273a24046142495f745038 Mon Sep 17 00:00:00 2001
-From: Peng Tao <bergwolf at gmail.com>
-Date: Thu, 12 Jan 2012 23:18:48 +0800
-Subject: [PATCH 079/129] pnfsblock: limit bio page count
-
-commit 74a6eeb44ca6174d9cc93b9b8b4d58211c57bc80 upstream.
-
-One bio can have at most BIO_MAX_PAGES pages. We should limit it bec otherwise
-bio_alloc will fail when there are many pages in one read/write_pagelist.
-
-Signed-off-by: Peng Tao <peng_tao at emc.com>
-Signed-off-by: Benny Halevy <bhalevy at tonian.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/nfs/blocklayout/blocklayout.c |   17 +++++++++++------
- 1 file changed, 11 insertions(+), 6 deletions(-)
-
-diff --git a/fs/nfs/blocklayout/blocklayout.c b/fs/nfs/blocklayout/blocklayout.c
-index ce8129d..3db6b82 100644
---- a/fs/nfs/blocklayout/blocklayout.c
-+++ b/fs/nfs/blocklayout/blocklayout.c
-@@ -146,14 +146,19 @@ static struct bio *bl_alloc_init_bio(int npg, sector_t isect,
- {
- 	struct bio *bio;
- 
-+	npg = min(npg, BIO_MAX_PAGES);
- 	bio = bio_alloc(GFP_NOIO, npg);
--	if (!bio)
--		return NULL;
-+	if (!bio && (current->flags & PF_MEMALLOC)) {
-+		while (!bio && (npg /= 2))
-+			bio = bio_alloc(GFP_NOIO, npg);
-+	}
- 
--	bio->bi_sector = isect - be->be_f_offset + be->be_v_offset;
--	bio->bi_bdev = be->be_mdev;
--	bio->bi_end_io = end_io;
--	bio->bi_private = par;
-+	if (bio) {
-+		bio->bi_sector = isect - be->be_f_offset + be->be_v_offset;
-+		bio->bi_bdev = be->be_mdev;
-+		bio->bi_end_io = end_io;
-+		bio->bi_private = par;
-+	}
- 	return bio;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0080-mac80211-revert-on-channel-work-optimisations.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0080-mac80211-revert-on-channel-work-optimisations.patch
deleted file mode 100644
index 77b753d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0080-mac80211-revert-on-channel-work-optimisations.patch
+++ /dev/null
@@ -1,635 +0,0 @@
-From 785fae0af79dd35416a44469930c2cbe87ff2c48 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Tue, 29 Nov 2011 10:20:02 +0100
-Subject: [PATCH 080/129] mac80211: revert on-channel work optimisations
-
-commit e76aadc572288a158ae18ae1c10fe395c7bca066 upstream.
-
-Backport note:
-This patch it's a full revert of commit b23b025f "mac80211: Optimize
-scans on current operating channel.". On upstrem revert e76aadc5 we
-keep some bits from that commit, which are needed for upstream version
-of mac80211.
-
-The on-channel work optimisations have caused a
-number of issues, and the code is unfortunately
-very complex and almost impossible to follow.
-Instead of attempting to put in more workarounds
-let's just remove those optimisations, we can
-work on them again later, after we change the
-whole auth/assoc design.
-
-This should fix rate_control_send_low() warnings,
-see RH bug 731365.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- net/mac80211/ieee80211_i.h |   13 ++++----
- net/mac80211/main.c        |   58 ++++-----------------------------
- net/mac80211/offchannel.c  |   68 ++++++++++++++++++--------------------
- net/mac80211/rx.c          |   10 ++++--
- net/mac80211/scan.c        |   77 +++++++++++++-------------------------------
- net/mac80211/tx.c          |    3 +-
- net/mac80211/work.c        |   77 +++++++-------------------------------------
- 7 files changed, 85 insertions(+), 221 deletions(-)
-
-diff --git a/net/mac80211/ieee80211_i.h b/net/mac80211/ieee80211_i.h
-index ea10a51..73495f1 100644
---- a/net/mac80211/ieee80211_i.h
-+++ b/net/mac80211/ieee80211_i.h
-@@ -702,6 +702,8 @@ struct tpt_led_trigger {
-  *	well be on the operating channel
-  * @SCAN_HW_SCANNING: The hardware is scanning for us, we have no way to
-  *	determine if we are on the operating channel or not
-+ * @SCAN_OFF_CHANNEL: We're off our operating channel for scanning,
-+ *	gets only set in conjunction with SCAN_SW_SCANNING
-  * @SCAN_COMPLETED: Set for our scan work function when the driver reported
-  *	that the scan completed.
-  * @SCAN_ABORTED: Set for our scan work function when the driver reported
-@@ -710,6 +712,7 @@ struct tpt_led_trigger {
- enum {
- 	SCAN_SW_SCANNING,
- 	SCAN_HW_SCANNING,
-+	SCAN_OFF_CHANNEL,
- 	SCAN_COMPLETED,
- 	SCAN_ABORTED,
- };
-@@ -1140,14 +1143,10 @@ int ieee80211_request_sched_scan_stop(struct ieee80211_sub_if_data *sdata);
- void ieee80211_sched_scan_stopped_work(struct work_struct *work);
- 
- /* off-channel helpers */
--bool ieee80211_cfg_on_oper_channel(struct ieee80211_local *local);
--void ieee80211_offchannel_enable_all_ps(struct ieee80211_local *local,
--					bool tell_ap);
--void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local,
--				    bool offchannel_ps_enable);
-+void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local);
-+void ieee80211_offchannel_stop_station(struct ieee80211_local *local);
- void ieee80211_offchannel_return(struct ieee80211_local *local,
--				 bool enable_beaconing,
--				 bool offchannel_ps_disable);
-+				 bool enable_beaconing);
- void ieee80211_hw_roc_setup(struct ieee80211_local *local);
- 
- /* interface handling */
-diff --git a/net/mac80211/main.c b/net/mac80211/main.c
-index cae4435..a7536fd 100644
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -92,47 +92,6 @@ static void ieee80211_reconfig_filter(struct work_struct *work)
- 	ieee80211_configure_filter(local);
- }
- 
--/*
-- * Returns true if we are logically configured to be on
-- * the operating channel AND the hardware-conf is currently
-- * configured on the operating channel.  Compares channel-type
-- * as well.
-- */
--bool ieee80211_cfg_on_oper_channel(struct ieee80211_local *local)
--{
--	struct ieee80211_channel *chan, *scan_chan;
--	enum nl80211_channel_type channel_type;
--
--	/* This logic needs to match logic in ieee80211_hw_config */
--	if (local->scan_channel) {
--		chan = local->scan_channel;
--		/* If scanning on oper channel, use whatever channel-type
--		 * is currently in use.
--		 */
--		if (chan == local->oper_channel)
--			channel_type = local->_oper_channel_type;
--		else
--			channel_type = NL80211_CHAN_NO_HT;
--	} else if (local->tmp_channel) {
--		chan = scan_chan = local->tmp_channel;
--		channel_type = local->tmp_channel_type;
--	} else {
--		chan = local->oper_channel;
--		channel_type = local->_oper_channel_type;
--	}
--
--	if (chan != local->oper_channel ||
--	    channel_type != local->_oper_channel_type)
--		return false;
--
--	/* Check current hardware-config against oper_channel. */
--	if ((local->oper_channel != local->hw.conf.channel) ||
--	    (local->_oper_channel_type != local->hw.conf.channel_type))
--		return false;
--
--	return true;
--}
--
- int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
- {
- 	struct ieee80211_channel *chan, *scan_chan;
-@@ -145,9 +104,6 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
- 
- 	scan_chan = local->scan_channel;
- 
--	/* If this off-channel logic ever changes,  ieee80211_on_oper_channel
--	 * may need to change as well.
--	 */
- 	offchannel_flag = local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL;
- 	if (scan_chan) {
- 		chan = scan_chan;
-@@ -158,19 +114,17 @@ int ieee80211_hw_config(struct ieee80211_local *local, u32 changed)
- 			channel_type = local->_oper_channel_type;
- 		else
- 			channel_type = NL80211_CHAN_NO_HT;
--	} else if (local->tmp_channel) {
-+		local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL;
-+	} else if (local->tmp_channel &&
-+		   local->oper_channel != local->tmp_channel) {
- 		chan = scan_chan = local->tmp_channel;
- 		channel_type = local->tmp_channel_type;
-+		local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL;
- 	} else {
- 		chan = local->oper_channel;
- 		channel_type = local->_oper_channel_type;
--	}
--
--	if (chan != local->oper_channel ||
--	    channel_type != local->_oper_channel_type)
--		local->hw.conf.flags |= IEEE80211_CONF_OFFCHANNEL;
--	else
- 		local->hw.conf.flags &= ~IEEE80211_CONF_OFFCHANNEL;
-+	}
- 
- 	offchannel_flag ^= local->hw.conf.flags & IEEE80211_CONF_OFFCHANNEL;
- 
-@@ -279,7 +233,7 @@ void ieee80211_bss_info_change_notify(struct ieee80211_sub_if_data *sdata,
- 
- 	if (changed & BSS_CHANGED_BEACON_ENABLED) {
- 		if (local->quiescing || !ieee80211_sdata_running(sdata) ||
--		    test_bit(SDATA_STATE_OFFCHANNEL, &sdata->state)) {
-+		    test_bit(SCAN_SW_SCANNING, &local->scanning)) {
- 			sdata->vif.bss_conf.enable_beacon = false;
- 		} else {
- 			/*
-diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
-index 3d41441..1b239be 100644
---- a/net/mac80211/offchannel.c
-+++ b/net/mac80211/offchannel.c
-@@ -18,14 +18,10 @@
- #include "driver-trace.h"
- 
- /*
-- * Tell our hardware to disable PS.
-- * Optionally inform AP that we will go to sleep so that it will buffer
-- * the frames while we are doing off-channel work.  This is optional
-- * because we *may* be doing work on-operating channel, and want our
-- * hardware unconditionally awake, but still let the AP send us normal frames.
-+ * inform AP that we will go to sleep so that it will buffer the frames
-+ * while we scan
-  */
--static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata,
--					   bool tell_ap)
-+static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata)
- {
- 	struct ieee80211_local *local = sdata->local;
- 	struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
-@@ -46,8 +42,8 @@ static void ieee80211_offchannel_ps_enable(struct ieee80211_sub_if_data *sdata,
- 		ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS);
- 	}
- 
--	if (tell_ap && (!local->offchannel_ps_enabled ||
--			!(local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK)))
-+	if (!(local->offchannel_ps_enabled) ||
-+	    !(local->hw.flags & IEEE80211_HW_PS_NULLFUNC_STACK))
- 		/*
- 		 * If power save was enabled, no need to send a nullfunc
- 		 * frame because AP knows that we are sleeping. But if the
-@@ -82,9 +78,6 @@ static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata)
- 		 * we are sleeping, let's just enable power save mode in
- 		 * hardware.
- 		 */
--		/* TODO:  Only set hardware if CONF_PS changed?
--		 * TODO:  Should we set offchannel_ps_enabled to false?
--		 */
- 		local->hw.conf.flags |= IEEE80211_CONF_PS;
- 		ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_PS);
- 	} else if (local->hw.conf.dynamic_ps_timeout > 0) {
-@@ -103,61 +96,63 @@ static void ieee80211_offchannel_ps_disable(struct ieee80211_sub_if_data *sdata)
- 	ieee80211_sta_reset_conn_monitor(sdata);
- }
- 
--void ieee80211_offchannel_stop_vifs(struct ieee80211_local *local,
--				    bool offchannel_ps_enable)
-+void ieee80211_offchannel_stop_beaconing(struct ieee80211_local *local)
- {
- 	struct ieee80211_sub_if_data *sdata;
- 
--	/*
--	 * notify the AP about us leaving the channel and stop all
--	 * STA interfaces.
--	 */
- 	mutex_lock(&local->iflist_mtx);
- 	list_for_each_entry(sdata, &local->interfaces, list) {
- 		if (!ieee80211_sdata_running(sdata))
- 			continue;
- 
--		if (sdata->vif.type != NL80211_IFTYPE_MONITOR)
--			set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state);
--
--		/* Check to see if we should disable beaconing. */
-+		/* disable beaconing */
- 		if (sdata->vif.type == NL80211_IFTYPE_AP ||
- 		    sdata->vif.type == NL80211_IFTYPE_ADHOC ||
- 		    sdata->vif.type == NL80211_IFTYPE_MESH_POINT)
- 			ieee80211_bss_info_change_notify(
- 				sdata, BSS_CHANGED_BEACON_ENABLED);
- 
--		if (sdata->vif.type != NL80211_IFTYPE_MONITOR) {
-+		/*
-+		 * only handle non-STA interfaces here, STA interfaces
-+		 * are handled in ieee80211_offchannel_stop_station(),
-+		 * e.g., from the background scan state machine.
-+		 *
-+		 * In addition, do not stop monitor interface to allow it to be
-+		 * used from user space controlled off-channel operations.
-+		 */
-+		if (sdata->vif.type != NL80211_IFTYPE_STATION &&
-+		    sdata->vif.type != NL80211_IFTYPE_MONITOR) {
-+			set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state);
- 			netif_tx_stop_all_queues(sdata->dev);
--			if (offchannel_ps_enable &&
--			    (sdata->vif.type == NL80211_IFTYPE_STATION) &&
--			    sdata->u.mgd.associated)
--				ieee80211_offchannel_ps_enable(sdata, true);
- 		}
- 	}
- 	mutex_unlock(&local->iflist_mtx);
- }
- 
--void ieee80211_offchannel_enable_all_ps(struct ieee80211_local *local,
--					bool tell_ap)
-+void ieee80211_offchannel_stop_station(struct ieee80211_local *local)
- {
- 	struct ieee80211_sub_if_data *sdata;
- 
-+	/*
-+	 * notify the AP about us leaving the channel and stop all STA interfaces
-+	 */
- 	mutex_lock(&local->iflist_mtx);
- 	list_for_each_entry(sdata, &local->interfaces, list) {
- 		if (!ieee80211_sdata_running(sdata))
- 			continue;
- 
--		if (sdata->vif.type == NL80211_IFTYPE_STATION &&
--		    sdata->u.mgd.associated)
--			ieee80211_offchannel_ps_enable(sdata, tell_ap);
-+		if (sdata->vif.type == NL80211_IFTYPE_STATION) {
-+			set_bit(SDATA_STATE_OFFCHANNEL, &sdata->state);
-+			netif_tx_stop_all_queues(sdata->dev);
-+			if (sdata->u.mgd.associated)
-+				ieee80211_offchannel_ps_enable(sdata);
-+		}
- 	}
- 	mutex_unlock(&local->iflist_mtx);
- }
- 
- void ieee80211_offchannel_return(struct ieee80211_local *local,
--				 bool enable_beaconing,
--				 bool offchannel_ps_disable)
-+				 bool enable_beaconing)
- {
- 	struct ieee80211_sub_if_data *sdata;
- 
-@@ -167,8 +162,7 @@ void ieee80211_offchannel_return(struct ieee80211_local *local,
- 			continue;
- 
- 		/* Tell AP we're back */
--		if (offchannel_ps_disable &&
--		    sdata->vif.type == NL80211_IFTYPE_STATION) {
-+		if (sdata->vif.type == NL80211_IFTYPE_STATION) {
- 			if (sdata->u.mgd.associated)
- 				ieee80211_offchannel_ps_disable(sdata);
- 		}
-@@ -188,7 +182,7 @@ void ieee80211_offchannel_return(struct ieee80211_local *local,
- 			netif_tx_wake_all_queues(sdata->dev);
- 		}
- 
--		/* Check to see if we should re-enable beaconing */
-+		/* re-enable beaconing */
- 		if (enable_beaconing &&
- 		    (sdata->vif.type == NL80211_IFTYPE_AP ||
- 		     sdata->vif.type == NL80211_IFTYPE_ADHOC ||
-diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
-index fb123e2..5c51607 100644
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -421,10 +421,16 @@ ieee80211_rx_h_passive_scan(struct ieee80211_rx_data *rx)
- 		return RX_CONTINUE;
- 
- 	if (test_bit(SCAN_HW_SCANNING, &local->scanning) ||
--	    test_bit(SCAN_SW_SCANNING, &local->scanning) ||
- 	    local->sched_scanning)
- 		return ieee80211_scan_rx(rx->sdata, skb);
- 
-+	if (test_bit(SCAN_SW_SCANNING, &local->scanning)) {
-+		/* drop all the other packets during a software scan anyway */
-+		if (ieee80211_scan_rx(rx->sdata, skb) != RX_QUEUED)
-+			dev_kfree_skb(skb);
-+		return RX_QUEUED;
-+	}
-+
- 	/* scanning finished during invoking of handlers */
- 	I802_DEBUG_INC(local->rx_handlers_drop_passive_scan);
- 	return RX_DROP_UNUSABLE;
-@@ -2858,7 +2864,7 @@ static void __ieee80211_rx_handle_packet(struct ieee80211_hw *hw,
- 		local->dot11ReceivedFragmentCount++;
- 
- 	if (unlikely(test_bit(SCAN_HW_SCANNING, &local->scanning) ||
--		     test_bit(SCAN_SW_SCANNING, &local->scanning)))
-+		     test_bit(SCAN_OFF_CHANNEL, &local->scanning)))
- 		status->rx_flags |= IEEE80211_RX_IN_SCAN;
- 
- 	if (ieee80211_is_mgmt(fc))
-diff --git a/net/mac80211/scan.c b/net/mac80211/scan.c
-index 105436d..5279300 100644
---- a/net/mac80211/scan.c
-+++ b/net/mac80211/scan.c
-@@ -213,14 +213,6 @@ ieee80211_scan_rx(struct ieee80211_sub_if_data *sdata, struct sk_buff *skb)
- 	if (bss)
- 		ieee80211_rx_bss_put(sdata->local, bss);
- 
--	/* If we are on-operating-channel, and this packet is for the
--	 * current channel, pass the pkt on up the stack so that
--	 * the rest of the stack can make use of it.
--	 */
--	if (ieee80211_cfg_on_oper_channel(sdata->local)
--	    && (channel == sdata->local->oper_channel))
--		return RX_CONTINUE;
--
- 	dev_kfree_skb(skb);
- 	return RX_QUEUED;
- }
-@@ -264,8 +256,6 @@ static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted,
- 				       bool was_hw_scan)
- {
- 	struct ieee80211_local *local = hw_to_local(hw);
--	bool on_oper_chan;
--	bool enable_beacons = false;
- 
- 	lockdep_assert_held(&local->mtx);
- 
-@@ -298,25 +288,11 @@ static void __ieee80211_scan_completed(struct ieee80211_hw *hw, bool aborted,
- 	local->scanning = 0;
- 	local->scan_channel = NULL;
- 
--	on_oper_chan = ieee80211_cfg_on_oper_channel(local);
--
--	if (was_hw_scan || !on_oper_chan)
--		ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL);
--	else
--		/* Set power back to normal operating levels. */
--		ieee80211_hw_config(local, 0);
--
-+	ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL);
- 	if (!was_hw_scan) {
--		bool on_oper_chan2;
- 		ieee80211_configure_filter(local);
- 		drv_sw_scan_complete(local);
--		on_oper_chan2 = ieee80211_cfg_on_oper_channel(local);
--		/* We should always be on-channel at this point. */
--		WARN_ON(!on_oper_chan2);
--		if (on_oper_chan2 && (on_oper_chan != on_oper_chan2))
--			enable_beacons = true;
--
--		ieee80211_offchannel_return(local, enable_beacons, true);
-+		ieee80211_offchannel_return(local, true);
- 	}
- 
- 	ieee80211_recalc_idle(local);
-@@ -357,15 +333,13 @@ static int ieee80211_start_sw_scan(struct ieee80211_local *local)
- 	 */
- 	drv_sw_scan_start(local);
- 
-+	ieee80211_offchannel_stop_beaconing(local);
-+
- 	local->leave_oper_channel_time = 0;
- 	local->next_scan_state = SCAN_DECISION;
- 	local->scan_channel_idx = 0;
- 
--	/* We always want to use off-channel PS, even if we
--	 * are not really leaving oper-channel.  Don't
--	 * tell the AP though, as long as we are on-channel.
--	 */
--	ieee80211_offchannel_enable_all_ps(local, false);
-+	drv_flush(local, false);
- 
- 	ieee80211_configure_filter(local);
- 
-@@ -508,20 +482,7 @@ static void ieee80211_scan_state_decision(struct ieee80211_local *local,
- 	}
- 	mutex_unlock(&local->iflist_mtx);
- 
--	next_chan = local->scan_req->channels[local->scan_channel_idx];
--
--	if (ieee80211_cfg_on_oper_channel(local)) {
--		/* We're currently on operating channel. */
--		if (next_chan == local->oper_channel)
--			/* We don't need to move off of operating channel. */
--			local->next_scan_state = SCAN_SET_CHANNEL;
--		else
--			/*
--			 * We do need to leave operating channel, as next
--			 * scan is somewhere else.
--			 */
--			local->next_scan_state = SCAN_LEAVE_OPER_CHANNEL;
--	} else {
-+	if (local->scan_channel) {
- 		/*
- 		 * we're currently scanning a different channel, let's
- 		 * see if we can scan another channel without interfering
-@@ -537,6 +498,7 @@ static void ieee80211_scan_state_decision(struct ieee80211_local *local,
- 		 *
- 		 * Otherwise switch back to the operating channel.
- 		 */
-+		next_chan = local->scan_req->channels[local->scan_channel_idx];
- 
- 		bad_latency = time_after(jiffies +
- 				ieee80211_scan_get_channel_time(next_chan),
-@@ -554,6 +516,12 @@ static void ieee80211_scan_state_decision(struct ieee80211_local *local,
- 			local->next_scan_state = SCAN_ENTER_OPER_CHANNEL;
- 		else
- 			local->next_scan_state = SCAN_SET_CHANNEL;
-+	} else {
-+		/*
-+		 * we're on the operating channel currently, let's
-+		 * leave that channel now to scan another one
-+		 */
-+		local->next_scan_state = SCAN_LEAVE_OPER_CHANNEL;
- 	}
- 
- 	*next_delay = 0;
-@@ -562,10 +530,9 @@ static void ieee80211_scan_state_decision(struct ieee80211_local *local,
- static void ieee80211_scan_state_leave_oper_channel(struct ieee80211_local *local,
- 						    unsigned long *next_delay)
- {
--	/* PS will already be in off-channel mode,
--	 * we do that once at the beginning of scanning.
--	 */
--	ieee80211_offchannel_stop_vifs(local, false);
-+	ieee80211_offchannel_stop_station(local);
-+
-+	__set_bit(SCAN_OFF_CHANNEL, &local->scanning);
- 
- 	/*
- 	 * What if the nullfunc frames didn't arrive?
-@@ -588,15 +555,15 @@ static void ieee80211_scan_state_enter_oper_channel(struct ieee80211_local *loca
- {
- 	/* switch back to the operating channel */
- 	local->scan_channel = NULL;
--	if (!ieee80211_cfg_on_oper_channel(local))
--		ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL);
-+	ieee80211_hw_config(local, IEEE80211_CONF_CHANGE_CHANNEL);
- 
- 	/*
--	 * Re-enable vifs and beaconing.  Leave PS
--	 * in off-channel state..will put that back
--	 * on-channel at the end of scanning.
-+	 * Only re-enable station mode interface now; beaconing will be
-+	 * re-enabled once the full scan has been completed.
- 	 */
--	ieee80211_offchannel_return(local, true, false);
-+	ieee80211_offchannel_return(local, false);
-+
-+	__clear_bit(SCAN_OFF_CHANNEL, &local->scanning);
- 
- 	*next_delay = HZ / 5;
- 	local->next_scan_state = SCAN_DECISION;
-diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
-index 1f8b120..eff1f4e 100644
---- a/net/mac80211/tx.c
-+++ b/net/mac80211/tx.c
-@@ -259,8 +259,7 @@ ieee80211_tx_h_check_assoc(struct ieee80211_tx_data *tx)
- 	if (unlikely(info->flags & IEEE80211_TX_CTL_INJECTED))
- 		return TX_CONTINUE;
- 
--	if (unlikely(test_bit(SCAN_SW_SCANNING, &tx->local->scanning)) &&
--	    test_bit(SDATA_STATE_OFFCHANNEL, &tx->sdata->state) &&
-+	if (unlikely(test_bit(SCAN_OFF_CHANNEL, &tx->local->scanning)) &&
- 	    !ieee80211_is_probe_req(hdr->frame_control) &&
- 	    !ieee80211_is_nullfunc(hdr->frame_control))
- 		/*
-diff --git a/net/mac80211/work.c b/net/mac80211/work.c
-index 6c53b6d..99165ef 100644
---- a/net/mac80211/work.c
-+++ b/net/mac80211/work.c
-@@ -899,26 +899,6 @@ static bool ieee80211_work_ct_coexists(enum nl80211_channel_type wk_ct,
- 	return false;
- }
- 
--static enum nl80211_channel_type
--ieee80211_calc_ct(enum nl80211_channel_type wk_ct,
--		  enum nl80211_channel_type oper_ct)
--{
--	switch (wk_ct) {
--	case NL80211_CHAN_NO_HT:
--		return oper_ct;
--	case NL80211_CHAN_HT20:
--		if (oper_ct != NL80211_CHAN_NO_HT)
--			return oper_ct;
--		return wk_ct;
--	case NL80211_CHAN_HT40MINUS:
--	case NL80211_CHAN_HT40PLUS:
--		return wk_ct;
--	}
--	WARN_ON(1); /* shouldn't get here */
--	return wk_ct;
--}
--
--
- static void ieee80211_work_timer(unsigned long data)
- {
- 	struct ieee80211_local *local = (void *) data;
-@@ -969,52 +949,18 @@ static void ieee80211_work_work(struct work_struct *work)
- 		}
- 
- 		if (!started && !local->tmp_channel) {
--			bool on_oper_chan;
--			bool tmp_chan_changed = false;
--			bool on_oper_chan2;
--			enum nl80211_channel_type wk_ct;
--			on_oper_chan = ieee80211_cfg_on_oper_channel(local);
--
--			/* Work with existing channel type if possible. */
--			wk_ct = wk->chan_type;
--			if (wk->chan == local->hw.conf.channel)
--				wk_ct = ieee80211_calc_ct(wk->chan_type,
--						local->hw.conf.channel_type);
--
--			if (local->tmp_channel)
--				if ((local->tmp_channel != wk->chan) ||
--				    (local->tmp_channel_type != wk_ct))
--					tmp_chan_changed = true;
--
--			local->tmp_channel = wk->chan;
--			local->tmp_channel_type = wk_ct;
- 			/*
--			 * Leave the station vifs in awake mode if they
--			 * happen to be on the same channel as
--			 * the requested channel.
-+			 * TODO: could optimize this by leaving the
-+			 *	 station vifs in awake mode if they
-+			 *	 happen to be on the same channel as
-+			 *	 the requested channel
- 			 */
--			on_oper_chan2 = ieee80211_cfg_on_oper_channel(local);
--			if (on_oper_chan != on_oper_chan2) {
--				if (on_oper_chan2) {
--					/* going off oper channel, PS too */
--					ieee80211_offchannel_stop_vifs(local,
--								       true);
--					ieee80211_hw_config(local, 0);
--				} else {
--					/* going on channel, but leave PS
--					 * off-channel. */
--					ieee80211_hw_config(local, 0);
--					ieee80211_offchannel_return(local,
--								    true,
--								    false);
--				}
--			} else if (tmp_chan_changed)
--				/* Still off-channel, but on some other
--				 * channel, so update hardware.
--				 * PS should already be off-channel.
--				 */
--				ieee80211_hw_config(local, 0);
-+			ieee80211_offchannel_stop_beaconing(local);
-+			ieee80211_offchannel_stop_station(local);
- 
-+			local->tmp_channel = wk->chan;
-+			local->tmp_channel_type = wk->chan_type;
-+			ieee80211_hw_config(local, 0);
- 			started = true;
- 			wk->timeout = jiffies;
- 		}
-@@ -1100,8 +1046,7 @@ static void ieee80211_work_work(struct work_struct *work)
- 		 * we still need to do a hardware config.  Currently,
- 		 * we cannot be here while scanning, however.
- 		 */
--		if (!ieee80211_cfg_on_oper_channel(local))
--			ieee80211_hw_config(local, 0);
-+		ieee80211_hw_config(local, 0);
- 
- 		/* At the least, we need to disable offchannel_ps,
- 		 * so just go ahead and run the entire offchannel
-@@ -1109,7 +1054,7 @@ static void ieee80211_work_work(struct work_struct *work)
- 		 * beaconing if we were already on-oper-channel
- 		 * as a future optimization.
- 		 */
--		ieee80211_offchannel_return(local, true, true);
-+		ieee80211_offchannel_return(local, true);
- 
- 		/* give connection some time to breathe */
- 		run_again(local, jiffies + HZ/2);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0081-HID-hid-multitouch-add-another-eGalax-id.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0081-HID-hid-multitouch-add-another-eGalax-id.patch
deleted file mode 100644
index 5db3fea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0081-HID-hid-multitouch-add-another-eGalax-id.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 15efaf9be89966a57b4d147511de686976e4a4eb Mon Sep 17 00:00:00 2001
-From: Chris Bagwell <chris at cnpbagwell.com>
-Date: Wed, 23 Nov 2011 10:54:27 +0100
-Subject: [PATCH 081/129] HID: hid-multitouch - add another eGalax id
-
-commit 1fd8f047490dd0ec4e4db710fcbc1bd4798d944c upstream.
-
-This allows ASUS Eee Slate touchscreens to work.
-
-Signed-off-by: Chris Bagwell <chris at cnpbagwell.com>
-Reviewed-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-core.c       |    1 +
- drivers/hid/hid-ids.h        |    1 +
- drivers/hid/hid-multitouch.c |    3 +++
- 3 files changed, 5 insertions(+)
-
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index 1473067..b51cbf2 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1409,6 +1409,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH5) },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 4a441a6..4c9a342 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -235,6 +235,7 @@
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2	0x72a1
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3	0x480e
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4	0x726b
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH5	0xa001
- 
- #define USB_VENDOR_ID_ELECOM		0x056e
- #define USB_DEVICE_ID_ELECOM_BM084	0x0061
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index f1c909f..a59d939 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -662,6 +662,9 @@ static const struct hid_device_id mt_devices[] = {
- 	{  .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
- 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
-+	{  .driver_data = MT_CLS_EGALAX,
-+		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH5) },
- 
- 	/* Elo TouchSystems IntelliTouch Plus panel */
- 	{ .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0082-HID-multitouch-cleanup-with-eGalax-PID-definitions.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0082-HID-multitouch-cleanup-with-eGalax-PID-definitions.patch
deleted file mode 100644
index 807223b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0082-HID-multitouch-cleanup-with-eGalax-PID-definitions.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 13e475d4826aa0be579632fd2a7473aee213e82b Mon Sep 17 00:00:00 2001
-From: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Date: Wed, 23 Nov 2011 10:54:31 +0100
-Subject: [PATCH 082/129] HID: multitouch: cleanup with eGalax PID definitions
-
-commit e36f690b37945e0a9bb1554e1546eeec93f7d1f6 upstream.
-
-This is just a renaming of USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH{N}
-to USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_{PID} to handle more eGalax
-devices.
-
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-core.c       |   12 ++++++------
- drivers/hid/hid-ids.h        |   12 ++++++------
- drivers/hid/hid-multitouch.c |   24 ++++++++++++------------
- 3 files changed, 24 insertions(+), 24 deletions(-)
-
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index b51cbf2..4434aba 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1404,12 +1404,12 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_CYPRESS, USB_DEVICE_ID_CYPRESS_TRUETOUCH) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, 0x0006) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DRAGONRISE, 0x0011) },
--	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH) },
--	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1) },
--	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2) },
--	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) },
--	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
--	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH5) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_EMS, USB_DEVICE_ID_EMS_TRIO_LINKER_PLUS_II) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 4c9a342..9db8789 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -230,12 +230,12 @@
- 
- #define USB_VENDOR_ID_DWAV		0x0eef
- #define USB_DEVICE_ID_EGALAX_TOUCHCONTROLLER	0x0001
--#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH	0x480d
--#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1	0x720c
--#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2	0x72a1
--#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3	0x480e
--#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4	0x726b
--#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH5	0xa001
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D	0x480d
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E	0x480e
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C	0x720c
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B	0x726b
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1	0x72a1
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001	0xa001
- 
- #define USB_VENDOR_ID_ELECOM		0x056e
- #define USB_DEVICE_ID_ELECOM_BM084	0x0061
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index a59d939..815bd22 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -645,26 +645,26 @@ static const struct hid_device_id mt_devices[] = {
- 			USB_DEVICE_ID_CYPRESS_TRUETOUCH) },
- 
- 	/* eGalax devices (resistive) */
--	{  .driver_data = MT_CLS_EGALAX,
-+	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH) },
--	{  .driver_data = MT_CLS_EGALAX,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480D) },
-+	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH3) },
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_480E) },
- 
- 	/* eGalax devices (capacitive) */
--	{  .driver_data = MT_CLS_EGALAX,
-+	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH1) },
--	{  .driver_data = MT_CLS_EGALAX,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) },
-+	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH2) },
--	{  .driver_data = MT_CLS_EGALAX,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) },
-+	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH4) },
--	{  .driver_data = MT_CLS_EGALAX,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
-+	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH5) },
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
- 
- 	/* Elo TouchSystems IntelliTouch Plus panel */
- 	{ .driver_data = MT_CLS_DUAL_NSMU_CONTACTID,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0083-HID-multitouch-Add-egalax-ID-for-Acer-Iconia-W500.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0083-HID-multitouch-Add-egalax-ID-for-Acer-Iconia-W500.patch
deleted file mode 100644
index f038705..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0083-HID-multitouch-Add-egalax-ID-for-Acer-Iconia-W500.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From d92a1f3e6dbdf628dec0f2a37f3920f89ef304fa Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marek.vasut at gmail.com>
-Date: Wed, 23 Nov 2011 10:54:32 +0100
-Subject: [PATCH 083/129] HID: multitouch: Add egalax ID for Acer Iconia W500
-
-commit bb9ff21072043634f147c05ac65dbf8185d4af6d upstream.
-
-This patch adds USB ID for the touchpanel in Acer Iconia W500. The panel
-supports up to five fingers, therefore the need for a new addition of panel
-types.
-
-Signed-off-by: Marek Vasut <marek.vasut at gmail.com>
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-core.c       |    1 +
- drivers/hid/hid-ids.h        |    1 +
- drivers/hid/hid-multitouch.c |    3 +++
- 3 files changed, 5 insertions(+)
-
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index 4434aba..9cee7b2 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1409,6 +1409,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_DWAV, USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_ELECOM, USB_DEVICE_ID_ELECOM_BM084) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_ELO, USB_DEVICE_ID_ELO_TS2515) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 9db8789..9eb90b1 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -235,6 +235,7 @@
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C	0x720c
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B	0x726b
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1	0x72a1
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302	0x7302
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001	0xa001
- 
- #define USB_VENDOR_ID_ELECOM		0x056e
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 815bd22..c77d495 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -664,6 +664,9 @@ static const struct hid_device_id mt_devices[] = {
- 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
- 	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
-+	{ .driver_data = MT_CLS_EGALAX,
-+		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
- 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001) },
- 
- 	/* Elo TouchSystems IntelliTouch Plus panel */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0084-HID-multitouch-add-support-for-the-MSI-Windpad-110W.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0084-HID-multitouch-add-support-for-the-MSI-Windpad-110W.patch
deleted file mode 100644
index 94eb6c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0084-HID-multitouch-add-support-for-the-MSI-Windpad-110W.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From a68c39aa3ae77996cb2f2cefe21ad1e62e1767a5 Mon Sep 17 00:00:00 2001
-From: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Date: Wed, 23 Nov 2011 10:54:33 +0100
-Subject: [PATCH 084/129] HID: multitouch: add support for the MSI Windpad
- 110W
-
-commit 66f06127f34ad6e8a1b24a2c03144b694d19f99f upstream.
-
-Just another eGalax device.
-Please note that adding this device to have_special_driver
-in hid-core.c is not required anymore.
-
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-ids.h        |    1 +
- drivers/hid/hid-multitouch.c |    3 +++
- 2 files changed, 4 insertions(+)
-
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 9eb90b1..6ccd7df 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -235,6 +235,7 @@
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_720C	0x720c
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_726B	0x726b
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1	0x72a1
-+#define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA	0x72fa
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302	0x7302
- #define USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_A001	0xa001
- 
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index c77d495..6f6b1d9 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -664,6 +664,9 @@ static const struct hid_device_id mt_devices[] = {
- 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72A1) },
- 	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
-+			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_72FA) },
-+	{ .driver_data = MT_CLS_EGALAX,
-+		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
- 			USB_DEVICE_ID_DWAV_EGALAX_MULTITOUCH_7302) },
- 	{ .driver_data = MT_CLS_EGALAX,
- 		HID_USB_DEVICE(USB_VENDOR_ID_DWAV,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0085-HID-hid-multitouch-add-support-for-new-Hanvon-panels.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0085-HID-hid-multitouch-add-support-for-new-Hanvon-panels.patch
deleted file mode 100644
index f04d3ee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0085-HID-hid-multitouch-add-support-for-new-Hanvon-panels.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 4ed2fc990faee86390129e45efc3a3538bbac92b Mon Sep 17 00:00:00 2001
-From: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Date: Tue, 29 Nov 2011 13:13:12 +0100
-Subject: [PATCH 085/129] HID: hid-multitouch: add support for new Hanvon
- panels
-
-commit 545803651da8dde248eeb8ce3ed1e547e9e4ac0a upstream.
-
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires at enac.fr>
-Acked-by: Henrik Rydberg <rydberg at euromail.se>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-core.c       |    1 +
- drivers/hid/hid-ids.h        |    3 +++
- drivers/hid/hid-multitouch.c |    5 +++++
- 3 files changed, 9 insertions(+)
-
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index 9cee7b2..a1cb906 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1425,6 +1425,7 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_2) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_GYRATION, USB_DEVICE_ID_GYRATION_REMOTE_3) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_HANVON, USB_DEVICE_ID_HANVON_MULTITOUCH) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT, USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) },
-  	{ HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM, USB_DEVICE_ID_IDEACOM_IDC6650) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_HOLTEK, USB_DEVICE_ID_HOLTEK_ON_LINE_GRIP) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_ILITEK, USB_DEVICE_ID_ILITEK_MULTITOUCH) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 6ccd7df..56df290 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -359,6 +359,9 @@
- #define USB_VENDOR_ID_HANVON		0x20b3
- #define USB_DEVICE_ID_HANVON_MULTITOUCH	0x0a18
- 
-+#define USB_VENDOR_ID_HANVON_ALT	0x22ed
-+#define USB_DEVICE_ID_HANVON_ALT_MULTITOUCH	0x1010
-+
- #define USB_VENDOR_ID_HAPP		0x078b
- #define USB_DEVICE_ID_UGCI_DRIVING	0x0010
- #define USB_DEVICE_ID_UGCI_FLYING	0x0020
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 6f6b1d9..ea20c8e 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -687,6 +687,11 @@ static const struct hid_device_id mt_devices[] = {
- 		HID_USB_DEVICE(USB_VENDOR_ID_GOODTOUCH,
- 			USB_DEVICE_ID_GOODTOUCH_000f) },
- 
-+	/* Hanvon panels */
-+	{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTID,
-+		HID_USB_DEVICE(USB_VENDOR_ID_HANVON_ALT,
-+			USB_DEVICE_ID_HANVON_ALT_MULTITOUCH) },
-+
- 	/* Ideacom panel */
- 	{ .driver_data = MT_CLS_SERIAL,
- 		HID_USB_DEVICE(USB_VENDOR_ID_IDEACOM,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0086-HID-multitouch-add-support-of-Atmel-multitouch-panel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0086-HID-multitouch-add-support-of-Atmel-multitouch-panel.patch
deleted file mode 100644
index 4298a32..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0086-HID-multitouch-add-support-of-Atmel-multitouch-panel.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From e554f29a63f8eae08e42cb59b1bc715fbf91b340 Mon Sep 17 00:00:00 2001
-From: Benjamin Tissoires <benjamin.tissoires at gmail.com>
-Date: Fri, 23 Dec 2011 15:40:59 +0100
-Subject: [PATCH 086/129] HID: multitouch: add support of Atmel multitouch
- panels
-
-commit b105712469d957cf1ab223c1ea72b7ba88edb926 upstream.
-
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
-Acked-by: Henrik Rydberg <rydberg at euromail.se>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/Kconfig          |    1 +
- drivers/hid/hid-ids.h        |    3 +++
- drivers/hid/hid-multitouch.c |    5 +++++
- 3 files changed, 9 insertions(+)
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 332c22a..36f5df3 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -335,6 +335,7 @@ config HID_MULTITOUCH
- 	  Say Y here if you have one of the following devices:
- 	  - 3M PCT touch screens
- 	  - ActionStar dual touch panels
-+	  - Atmel panels
- 	  - Cando dual touch panels
- 	  - Chunghwa panels
- 	  - CVTouch panels
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 56df290..bf95a50 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -145,6 +145,9 @@
- #define USB_DEVICE_ID_ATEN_4PORTKVM	0x2205
- #define USB_DEVICE_ID_ATEN_4PORTKVMC	0x2208
- 
-+#define USB_VENDOR_ID_ATMEL		0x03eb
-+#define USB_DEVICE_ID_ATMEL_MULTITOUCH	0x211c
-+
- #define USB_VENDOR_ID_AVERMEDIA		0x07ca
- #define USB_DEVICE_ID_AVER_FM_MR800	0xb800
- 
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index ea20c8e..7f83024 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -615,6 +615,11 @@ static const struct hid_device_id mt_devices[] = {
- 		HID_USB_DEVICE(USB_VENDOR_ID_ACTIONSTAR,
- 			USB_DEVICE_ID_ACTIONSTAR_1011) },
- 
-+	/* Atmel panels */
-+	{ .driver_data = MT_CLS_SERIAL,
-+		HID_USB_DEVICE(USB_VENDOR_ID_ATMEL,
-+			USB_DEVICE_ID_ATMEL_MULTITOUCH) },
-+
- 	/* Cando panels */
- 	{ .driver_data = MT_CLS_DUAL_INRANGE_CONTACTNUMBER,
- 		HID_USB_DEVICE(USB_VENDOR_ID_CANDO,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0087-HID-multitouch-add-support-for-3M-32.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0087-HID-multitouch-add-support-for-3M-32.patch
deleted file mode 100644
index f3afca5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0087-HID-multitouch-add-support-for-3M-32.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 40fd7506c85fcb799dedb54d4bce3118a56078cc Mon Sep 17 00:00:00 2001
-From: Benjamin Tissoires <benjamin.tissoires at gmail.com>
-Date: Fri, 23 Dec 2011 15:41:00 +0100
-Subject: [PATCH 087/129] HID: multitouch: add support for 3M 32"
-
-commit c4fad877cd0efb51d8180ae2eaa791c99c92051c upstream.
-
-Signed-off-by: Benjamin Tissoires <benjamin.tissoires at gmail.com>
-Acked-by: Henrik Rydberg <rydberg at euromail.se>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/hid-ids.h        |    1 +
- drivers/hid/hid-multitouch.c |    3 +++
- 2 files changed, 4 insertions(+)
-
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index bf95a50..6e53391a 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -21,6 +21,7 @@
- #define USB_VENDOR_ID_3M		0x0596
- #define USB_DEVICE_ID_3M1968		0x0500
- #define USB_DEVICE_ID_3M2256		0x0502
-+#define USB_DEVICE_ID_3M3266		0x0506
- 
- #define USB_VENDOR_ID_A4TECH		0x09da
- #define USB_DEVICE_ID_A4TECH_WCP32PU	0x0006
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 7f83024..4a63dee 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -609,6 +609,9 @@ static const struct hid_device_id mt_devices[] = {
- 	{ .driver_data = MT_CLS_3M,
- 		HID_USB_DEVICE(USB_VENDOR_ID_3M,
- 			USB_DEVICE_ID_3M2256) },
-+	{ .driver_data = MT_CLS_3M,
-+		HID_USB_DEVICE(USB_VENDOR_ID_3M,
-+			USB_DEVICE_ID_3M3266) },
- 
- 	/* ActionStar panels */
- 	{ .driver_data = MT_CLS_DEFAULT,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0088-HID-hid-multitouch-add-support-9-new-Xiroku-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0088-HID-hid-multitouch-add-support-9-new-Xiroku-devices.patch
deleted file mode 100644
index 8d2bfef..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0088-HID-hid-multitouch-add-support-9-new-Xiroku-devices.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 7d63e2bd6f004a4c99c40f9768efe4fa3bef6d28 Mon Sep 17 00:00:00 2001
-From: Masatoshi Hoshikawa <hoshikawa at xiroku.com>
-Date: Thu, 5 Jan 2012 11:53:46 +0900
-Subject: [PATCH 088/129] HID: hid-multitouch: add support 9 new Xiroku
- devices
-
-commit 11576c6114c3b6505aea2e0c988bedb856a0e20c upstream.
-
-This patch adds support for the Xiroku Inc. panels (SPX/MPX/CSR/etc.).
-
-Signed-off-by: Masatoshi Hoshikawa <hoshikawa at xiroku.com>
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/hid/Kconfig          |    1 +
- drivers/hid/hid-core.c       |    9 +++++++++
- drivers/hid/hid-ids.h        |   11 +++++++++++
- drivers/hid/hid-multitouch.c |   29 +++++++++++++++++++++++++++++
- 4 files changed, 50 insertions(+)
-
-diff --git a/drivers/hid/Kconfig b/drivers/hid/Kconfig
-index 36f5df3..d21f6d0 100644
---- a/drivers/hid/Kconfig
-+++ b/drivers/hid/Kconfig
-@@ -356,6 +356,7 @@ config HID_MULTITOUCH
- 	  - Touch International Panels
- 	  - Unitec Panels
- 	  - XAT optical touch panels
-+	  - Xiroku optical touch panels
- 
- 	  If unsure, say N.
- 
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index a1cb906..bb656d8 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1552,6 +1552,15 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_10_6_INCH) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_WALTOP, USB_DEVICE_ID_WALTOP_MEDIA_TABLET_14_1_INCH) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_XAT, USB_DEVICE_ID_XAT_CSR) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_SPX) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_MPX) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_SPX1) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_MPX1) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR1) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_SPX2) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_MPX2) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_XIROKU, USB_DEVICE_ID_XIROKU_CSR2) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_X_TENSIONS, USB_DEVICE_ID_SPEEDLINK_VAD_CEZANNE) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0005) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_ZEROPLUS, 0x0030) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 6e53391a..00cabb3 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -717,6 +717,17 @@
- #define USB_VENDOR_ID_XAT	0x2505
- #define USB_DEVICE_ID_XAT_CSR	0x0220
- 
-+#define USB_VENDOR_ID_XIROKU		0x1477
-+#define USB_DEVICE_ID_XIROKU_SPX	0x1006
-+#define USB_DEVICE_ID_XIROKU_MPX	0x1007
-+#define USB_DEVICE_ID_XIROKU_CSR	0x100e
-+#define USB_DEVICE_ID_XIROKU_SPX1	0x1021
-+#define USB_DEVICE_ID_XIROKU_CSR1	0x1022
-+#define USB_DEVICE_ID_XIROKU_MPX1	0x1023
-+#define USB_DEVICE_ID_XIROKU_SPX2	0x1024
-+#define USB_DEVICE_ID_XIROKU_CSR2	0x1025
-+#define USB_DEVICE_ID_XIROKU_MPX2	0x1026
-+
- #define USB_VENDOR_ID_YEALINK		0x6993
- #define USB_DEVICE_ID_YEALINK_P1K_P4K_B2K	0xb001
- 
-diff --git a/drivers/hid/hid-multitouch.c b/drivers/hid/hid-multitouch.c
-index 4a63dee..995fc4c 100644
---- a/drivers/hid/hid-multitouch.c
-+++ b/drivers/hid/hid-multitouch.c
-@@ -780,6 +780,35 @@ static const struct hid_device_id mt_devices[] = {
- 		HID_USB_DEVICE(USB_VENDOR_ID_XAT,
- 			USB_DEVICE_ID_XAT_CSR) },
- 
-+	/* Xiroku */
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_SPX) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_MPX) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_CSR) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_SPX1) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_MPX1) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_CSR1) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_SPX2) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_MPX2) },
-+	{ .driver_data = MT_CLS_DEFAULT,
-+		HID_USB_DEVICE(USB_VENDOR_ID_XIROKU,
-+			USB_DEVICE_ID_XIROKU_CSR2) },
-+
- 	{ }
- };
- MODULE_DEVICE_TABLE(hid, mt_devices);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0089-fix-cputime-overflow-in-uptime_proc_show.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0089-fix-cputime-overflow-in-uptime_proc_show.patch
deleted file mode 100644
index 94a3da3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0089-fix-cputime-overflow-in-uptime_proc_show.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 36934c4efd11c4f65dd956b2a6649d99ccf5bd86 Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Date: Thu, 15 Dec 2011 14:56:10 +0100
-Subject: [PATCH 089/129] fix cputime overflow in uptime_proc_show
-
-commit c3e0ef9a298e028a82ada28101ccd5cf64d209ee upstream.
-
-For 32-bit architectures using standard jiffies the idletime calculation
-in uptime_proc_show will quickly overflow. It takes (2^32 / HZ) seconds
-of idle-time, or e.g. 12.45 days with no load on a quad-core with HZ=1000.
-Switch to 64-bit calculations.
-
-Cc: Michael Abbott <michael.abbott at diamond.ac.uk>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/proc/uptime.c |    9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/fs/proc/uptime.c b/fs/proc/uptime.c
-index 766b1d4..29166ec 100644
---- a/fs/proc/uptime.c
-+++ b/fs/proc/uptime.c
-@@ -11,15 +11,20 @@ static int uptime_proc_show(struct seq_file *m, void *v)
- {
- 	struct timespec uptime;
- 	struct timespec idle;
-+	cputime64_t idletime;
-+	u64 nsec;
-+	u32 rem;
- 	int i;
--	cputime_t idletime = cputime_zero;
- 
-+	idletime = 0;
- 	for_each_possible_cpu(i)
- 		idletime = cputime64_add(idletime, kstat_cpu(i).cpustat.idle);
- 
- 	do_posix_clock_monotonic_gettime(&uptime);
- 	monotonic_to_bootbased(&uptime);
--	cputime_to_timespec(idletime, &idle);
-+	nsec = cputime64_to_jiffies64(idletime) * TICK_NSEC;
-+	idle.tv_sec = div_u64_rem(nsec, NSEC_PER_SEC, &rem);
-+	idle.tv_nsec = rem;
- 	seq_printf(m, "%lu.%02lu %lu.%02lu\n",
- 			(unsigned long) uptime.tv_sec,
- 			(uptime.tv_nsec / (NSEC_PER_SEC / 100)),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0090-block-add-and-use-scsi_blk_cmd_ioctl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0090-block-add-and-use-scsi_blk_cmd_ioctl.patch
deleted file mode 100644
index e9a2e70..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0090-block-add-and-use-scsi_blk_cmd_ioctl.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 151de2f79ddb7f437ada87d5f204be82db004f9d Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <pbonzini at redhat.com>
-Date: Thu, 12 Jan 2012 16:01:27 +0100
-Subject: [PATCH 090/129] block: add and use scsi_blk_cmd_ioctl
-
-commit 577ebb374c78314ac4617242f509e2f5e7156649 upstream.
-
-Introduce a wrapper around scsi_cmd_ioctl that takes a block device.
-
-The function will then be enhanced to detect partition block devices
-and, in that case, subject the ioctls to whitelisting.
-
-Cc: linux-scsi at vger.kernel.org
-Cc: Jens Axboe <axboe at kernel.dk>
-Cc: James Bottomley <JBottomley at parallels.com>
-Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- block/scsi_ioctl.c             |    7 +++++++
- drivers/block/cciss.c          |    6 +++---
- drivers/block/ub.c             |    3 +--
- drivers/block/virtio_blk.c     |    4 ++--
- drivers/cdrom/cdrom.c          |    3 +--
- drivers/ide/ide-floppy_ioctl.c |    3 +--
- drivers/scsi/sd.c              |    2 +-
- include/linux/blkdev.h         |    2 ++
- 8 files changed, 18 insertions(+), 12 deletions(-)
-
-diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
-index fbdf0d8..a2c11f3 100644
---- a/block/scsi_ioctl.c
-+++ b/block/scsi_ioctl.c
-@@ -690,6 +690,13 @@ int scsi_cmd_ioctl(struct request_queue *q, struct gendisk *bd_disk, fmode_t mod
- }
- EXPORT_SYMBOL(scsi_cmd_ioctl);
- 
-+int scsi_cmd_blk_ioctl(struct block_device *bd, fmode_t mode,
-+		       unsigned int cmd, void __user *arg)
-+{
-+	return scsi_cmd_ioctl(bd->bd_disk->queue, bd->bd_disk, mode, cmd, arg);
-+}
-+EXPORT_SYMBOL(scsi_cmd_blk_ioctl);
-+
- static int __init blk_scsi_ioctl_init(void)
- {
- 	blk_set_cmd_filter_defaults(&blk_default_cmd_filter);
-diff --git a/drivers/block/cciss.c b/drivers/block/cciss.c
-index 587cce5..b0f553b 100644
---- a/drivers/block/cciss.c
-+++ b/drivers/block/cciss.c
-@@ -1735,7 +1735,7 @@ static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
- 	case CCISS_BIG_PASSTHRU:
- 		return cciss_bigpassthru(h, argp);
- 
--	/* scsi_cmd_ioctl handles these, below, though some are not */
-+	/* scsi_cmd_blk_ioctl handles these, below, though some are not */
- 	/* very meaningful for cciss.  SG_IO is the main one people want. */
- 
- 	case SG_GET_VERSION_NUM:
-@@ -1746,9 +1746,9 @@ static int cciss_ioctl(struct block_device *bdev, fmode_t mode,
- 	case SG_EMULATED_HOST:
- 	case SG_IO:
- 	case SCSI_IOCTL_SEND_COMMAND:
--		return scsi_cmd_ioctl(disk->queue, disk, mode, cmd, argp);
-+		return scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
- 
--	/* scsi_cmd_ioctl would normally handle these, below, but */
-+	/* scsi_cmd_blk_ioctl would normally handle these, below, but */
- 	/* they aren't a good fit for cciss, as CD-ROMs are */
- 	/* not supported, and we don't have any bus/target/lun */
- 	/* which we present to the kernel. */
-diff --git a/drivers/block/ub.c b/drivers/block/ub.c
-index 0e376d4..7333b9e 100644
---- a/drivers/block/ub.c
-+++ b/drivers/block/ub.c
-@@ -1744,12 +1744,11 @@ static int ub_bd_release(struct gendisk *disk, fmode_t mode)
- static int ub_bd_ioctl(struct block_device *bdev, fmode_t mode,
-     unsigned int cmd, unsigned long arg)
- {
--	struct gendisk *disk = bdev->bd_disk;
- 	void __user *usermem = (void __user *) arg;
- 	int ret;
- 
- 	mutex_lock(&ub_mutex);
--	ret = scsi_cmd_ioctl(disk->queue, disk, mode, cmd, usermem);
-+	ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, usermem);
- 	mutex_unlock(&ub_mutex);
- 
- 	return ret;
-diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
-index 4d0b70a..e46f2f7 100644
---- a/drivers/block/virtio_blk.c
-+++ b/drivers/block/virtio_blk.c
-@@ -243,8 +243,8 @@ static int virtblk_ioctl(struct block_device *bdev, fmode_t mode,
- 	if (!virtio_has_feature(vblk->vdev, VIRTIO_BLK_F_SCSI))
- 		return -ENOTTY;
- 
--	return scsi_cmd_ioctl(disk->queue, disk, mode, cmd,
--			      (void __user *)data);
-+	return scsi_cmd_blk_ioctl(bdev, mode, cmd,
-+				  (void __user *)data);
- }
- 
- /* We provide getgeo only to please some old bootloader/partitioning tools */
-diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
-index f997c27..cedb231 100644
---- a/drivers/cdrom/cdrom.c
-+++ b/drivers/cdrom/cdrom.c
-@@ -2747,12 +2747,11 @@ int cdrom_ioctl(struct cdrom_device_info *cdi, struct block_device *bdev,
- {
- 	void __user *argp = (void __user *)arg;
- 	int ret;
--	struct gendisk *disk = bdev->bd_disk;
- 
- 	/*
- 	 * Try the generic SCSI command ioctl's first.
- 	 */
--	ret = scsi_cmd_ioctl(disk->queue, disk, mode, cmd, argp);
-+	ret = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
- 	if (ret != -ENOTTY)
- 		return ret;
- 
-diff --git a/drivers/ide/ide-floppy_ioctl.c b/drivers/ide/ide-floppy_ioctl.c
-index d267b7a..a22ca84 100644
---- a/drivers/ide/ide-floppy_ioctl.c
-+++ b/drivers/ide/ide-floppy_ioctl.c
-@@ -292,8 +292,7 @@ int ide_floppy_ioctl(ide_drive_t *drive, struct block_device *bdev,
- 	 * and CDROM_SEND_PACKET (legacy) ioctls
- 	 */
- 	if (cmd != CDROM_SEND_PACKET && cmd != SCSI_IOCTL_SEND_COMMAND)
--		err = scsi_cmd_ioctl(bdev->bd_disk->queue, bdev->bd_disk,
--				mode, cmd, argp);
-+		err = scsi_cmd_blk_ioctl(bdev, mode, cmd, argp);
- 
- 	if (err == -ENOTTY)
- 		err = generic_ide_ioctl(drive, bdev, cmd, arg);
-diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index fa3a591..ffa1c79 100644
---- a/drivers/scsi/sd.c
-+++ b/drivers/scsi/sd.c
-@@ -1096,7 +1096,7 @@ static int sd_ioctl(struct block_device *bdev, fmode_t mode,
- 			error = scsi_ioctl(sdp, cmd, p);
- 			break;
- 		default:
--			error = scsi_cmd_ioctl(disk->queue, disk, mode, cmd, p);
-+			error = scsi_cmd_blk_ioctl(bdev, mode, cmd, p);
- 			if (error != -ENOTTY)
- 				break;
- 			error = scsi_ioctl(sdp, cmd, p);
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index 94acd81..ca7b869 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -675,6 +675,8 @@ extern int blk_insert_cloned_request(struct request_queue *q,
- 				     struct request *rq);
- extern void blk_delay_queue(struct request_queue *, unsigned long);
- extern void blk_recount_segments(struct request_queue *, struct bio *);
-+extern int scsi_cmd_blk_ioctl(struct block_device *, fmode_t,
-+			      unsigned int, void __user *);
- extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
- 			  unsigned int, void __user *);
- extern int sg_scsi_ioctl(struct request_queue *, struct gendisk *, fmode_t,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0091-block-fail-SCSI-passthrough-ioctls-on-partition-devi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0091-block-fail-SCSI-passthrough-ioctls-on-partition-devi.patch
deleted file mode 100644
index 1fa4e50..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0091-block-fail-SCSI-passthrough-ioctls-on-partition-devi.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 8dbedb00985bf3ed9848b179a45bb399a733d311 Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <pbonzini at redhat.com>
-Date: Thu, 12 Jan 2012 16:01:28 +0100
-Subject: [PATCH 091/129] block: fail SCSI passthrough ioctls on partition
- devices
-
-commit 0bfc96cb77224736dfa35c3c555d37b3646ef35e upstream.
-
-[ Changes with respect to 3.3: return -ENOTTY from scsi_verify_blk_ioctl
-  and -ENOIOCTLCMD from sd_compat_ioctl. ]
-
-Linux allows executing the SG_IO ioctl on a partition or LVM volume, and
-will pass the command to the underlying block device.  This is
-well-known, but it is also a large security problem when (via Unix
-permissions, ACLs, SELinux or a combination thereof) a program or user
-needs to be granted access only to part of the disk.
-
-This patch lets partitions forward a small set of harmless ioctls;
-others are logged with printk so that we can see which ioctls are
-actually sent.  In my tests only CDROM_GET_CAPABILITY actually occurred.
-Of course it was being sent to a (partition on a) hard disk, so it would
-have failed with ENOTTY and the patch isn't changing anything in
-practice.  Still, I'm treating it specially to avoid spamming the logs.
-
-In principle, this restriction should include programs running with
-CAP_SYS_RAWIO.  If for example I let a program access /dev/sda2 and
-/dev/sdb, it still should not be able to read/write outside the
-boundaries of /dev/sda2 independent of the capabilities.  However, for
-now programs with CAP_SYS_RAWIO will still be allowed to send the
-ioctls.  Their actions will still be logged.
-
-This patch does not affect the non-libata IDE driver.  That driver
-however already tests for bd != bd->bd_contains before issuing some
-ioctl; it could be restricted further to forbid these ioctls even for
-programs running with CAP_SYS_ADMIN/CAP_SYS_RAWIO.
-
-Cc: linux-scsi at vger.kernel.org
-Cc: Jens Axboe <axboe at kernel.dk>
-Cc: James Bottomley <JBottomley at parallels.com>
-Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
-[ Make it also print the command name when warning - Linus ]
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- block/scsi_ioctl.c     |   45 +++++++++++++++++++++++++++++++++++++++++++++
- drivers/scsi/sd.c      |   11 +++++++++--
- include/linux/blkdev.h |    1 +
- 3 files changed, 55 insertions(+), 2 deletions(-)
-
-diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
-index a2c11f3..688be8a 100644
---- a/block/scsi_ioctl.c
-+++ b/block/scsi_ioctl.c
-@@ -24,6 +24,7 @@
- #include <linux/capability.h>
- #include <linux/completion.h>
- #include <linux/cdrom.h>
-+#include <linux/ratelimit.h>
- #include <linux/slab.h>
- #include <linux/times.h>
- #include <asm/uaccess.h>
-@@ -690,9 +691,53 @@ int scsi_cmd_ioctl(struct request_queue *q, struct gendisk *bd_disk, fmode_t mod
- }
- EXPORT_SYMBOL(scsi_cmd_ioctl);
- 
-+int scsi_verify_blk_ioctl(struct block_device *bd, unsigned int cmd)
-+{
-+	if (bd && bd == bd->bd_contains)
-+		return 0;
-+
-+	/* Actually none of these is particularly useful on a partition,
-+	 * but they are safe.
-+	 */
-+	switch (cmd) {
-+	case SCSI_IOCTL_GET_IDLUN:
-+	case SCSI_IOCTL_GET_BUS_NUMBER:
-+	case SCSI_IOCTL_GET_PCI:
-+	case SCSI_IOCTL_PROBE_HOST:
-+	case SG_GET_VERSION_NUM:
-+	case SG_SET_TIMEOUT:
-+	case SG_GET_TIMEOUT:
-+	case SG_GET_RESERVED_SIZE:
-+	case SG_SET_RESERVED_SIZE:
-+	case SG_EMULATED_HOST:
-+		return 0;
-+	case CDROM_GET_CAPABILITY:
-+		/* Keep this until we remove the printk below.  udev sends it
-+		 * and we do not want to spam dmesg about it.   CD-ROMs do
-+		 * not have partitions, so we get here only for disks.
-+		 */
-+		return -ENOTTY;
-+	default:
-+		break;
-+	}
-+
-+	/* In particular, rule out all resets and host-specific ioctls.  */
-+	printk_ratelimited(KERN_WARNING
-+			   "%s: sending ioctl %x to a partition!\n", current->comm, cmd);
-+
-+	return capable(CAP_SYS_RAWIO) ? 0 : -ENOTTY;
-+}
-+EXPORT_SYMBOL(scsi_verify_blk_ioctl);
-+
- int scsi_cmd_blk_ioctl(struct block_device *bd, fmode_t mode,
- 		       unsigned int cmd, void __user *arg)
- {
-+	int ret;
-+
-+	ret = scsi_verify_blk_ioctl(bd, cmd);
-+	if (ret < 0)
-+		return ret;
-+
- 	return scsi_cmd_ioctl(bd->bd_disk->queue, bd->bd_disk, mode, cmd, arg);
- }
- EXPORT_SYMBOL(scsi_cmd_blk_ioctl);
-diff --git a/drivers/scsi/sd.c b/drivers/scsi/sd.c
-index ffa1c79..4b63c73 100644
---- a/drivers/scsi/sd.c
-+++ b/drivers/scsi/sd.c
-@@ -1074,6 +1074,10 @@ static int sd_ioctl(struct block_device *bdev, fmode_t mode,
- 	SCSI_LOG_IOCTL(1, sd_printk(KERN_INFO, sdkp, "sd_ioctl: disk=%s, "
- 				    "cmd=0x%x\n", disk->disk_name, cmd));
- 
-+	error = scsi_verify_blk_ioctl(bdev, cmd);
-+	if (error < 0)
-+		return error;
-+
- 	/*
- 	 * If we are in the middle of error recovery, don't let anyone
- 	 * else try and use this device.  Also, if error recovery fails, it
-@@ -1266,6 +1270,11 @@ static int sd_compat_ioctl(struct block_device *bdev, fmode_t mode,
- 			   unsigned int cmd, unsigned long arg)
- {
- 	struct scsi_device *sdev = scsi_disk(bdev->bd_disk)->device;
-+	int ret;
-+
-+	ret = scsi_verify_blk_ioctl(bdev, cmd);
-+	if (ret < 0)
-+		return -ENOIOCTLCMD;
- 
- 	/*
- 	 * If we are in the middle of error recovery, don't let anyone
-@@ -1277,8 +1286,6 @@ static int sd_compat_ioctl(struct block_device *bdev, fmode_t mode,
- 		return -ENODEV;
- 	       
- 	if (sdev->host->hostt->compat_ioctl) {
--		int ret;
--
- 		ret = sdev->host->hostt->compat_ioctl(sdev, cmd, (void __user *)arg);
- 
- 		return ret;
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index ca7b869..0ed1eb0 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -675,6 +675,7 @@ extern int blk_insert_cloned_request(struct request_queue *q,
- 				     struct request *rq);
- extern void blk_delay_queue(struct request_queue *, unsigned long);
- extern void blk_recount_segments(struct request_queue *, struct bio *);
-+extern int scsi_verify_blk_ioctl(struct block_device *, unsigned int);
- extern int scsi_cmd_blk_ioctl(struct block_device *, fmode_t,
- 			      unsigned int, void __user *);
- extern int scsi_cmd_ioctl(struct request_queue *, struct gendisk *, fmode_t,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0092-dm-do-not-forward-ioctls-from-logical-volumes-to-the.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0092-dm-do-not-forward-ioctls-from-logical-volumes-to-the.patch
deleted file mode 100644
index 044086f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0092-dm-do-not-forward-ioctls-from-logical-volumes-to-the.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 3d35ea93b3f19f86a464814e7b59464ec3832e9c Mon Sep 17 00:00:00 2001
-From: Paolo Bonzini <pbonzini at redhat.com>
-Date: Thu, 12 Jan 2012 16:01:29 +0100
-Subject: [PATCH 092/129] dm: do not forward ioctls from logical volumes to
- the underlying device
-
-commit ec8013beddd717d1740cfefb1a9b900deef85462 upstream.
-
-A logical volume can map to just part of underlying physical volume.
-In this case, it must be treated like a partition.
-
-Based on a patch from Alasdair G Kergon.
-
-Cc: Alasdair G Kergon <agk at redhat.com>
-Cc: dm-devel at redhat.com
-Signed-off-by: Paolo Bonzini <pbonzini at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/md/dm-flakey.c |   11 ++++++++++-
- drivers/md/dm-linear.c |   12 +++++++++++-
- drivers/md/dm-mpath.c  |    6 ++++++
- 3 files changed, 27 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/dm-flakey.c b/drivers/md/dm-flakey.c
-index f84c080..9fb18c1 100644
---- a/drivers/md/dm-flakey.c
-+++ b/drivers/md/dm-flakey.c
-@@ -368,8 +368,17 @@ static int flakey_status(struct dm_target *ti, status_type_t type,
- static int flakey_ioctl(struct dm_target *ti, unsigned int cmd, unsigned long arg)
- {
- 	struct flakey_c *fc = ti->private;
-+	struct dm_dev *dev = fc->dev;
-+	int r = 0;
- 
--	return __blkdev_driver_ioctl(fc->dev->bdev, fc->dev->mode, cmd, arg);
-+	/*
-+	 * Only pass ioctls through if the device sizes match exactly.
-+	 */
-+	if (fc->start ||
-+	    ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT)
-+		r = scsi_verify_blk_ioctl(NULL, cmd);
-+
-+	return r ? : __blkdev_driver_ioctl(dev->bdev, dev->mode, cmd, arg);
- }
- 
- static int flakey_merge(struct dm_target *ti, struct bvec_merge_data *bvm,
-diff --git a/drivers/md/dm-linear.c b/drivers/md/dm-linear.c
-index 3921e3b..9728839 100644
---- a/drivers/md/dm-linear.c
-+++ b/drivers/md/dm-linear.c
-@@ -116,7 +116,17 @@ static int linear_ioctl(struct dm_target *ti, unsigned int cmd,
- 			unsigned long arg)
- {
- 	struct linear_c *lc = (struct linear_c *) ti->private;
--	return __blkdev_driver_ioctl(lc->dev->bdev, lc->dev->mode, cmd, arg);
-+	struct dm_dev *dev = lc->dev;
-+	int r = 0;
-+
-+	/*
-+	 * Only pass ioctls through if the device sizes match exactly.
-+	 */
-+	if (lc->start ||
-+	    ti->len != i_size_read(dev->bdev->bd_inode) >> SECTOR_SHIFT)
-+		r = scsi_verify_blk_ioctl(NULL, cmd);
-+
-+	return r ? : __blkdev_driver_ioctl(dev->bdev, dev->mode, cmd, arg);
- }
- 
- static int linear_merge(struct dm_target *ti, struct bvec_merge_data *bvm,
-diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
-index 5e0090e..801d92d 100644
---- a/drivers/md/dm-mpath.c
-+++ b/drivers/md/dm-mpath.c
-@@ -1520,6 +1520,12 @@ static int multipath_ioctl(struct dm_target *ti, unsigned int cmd,
- 
- 	spin_unlock_irqrestore(&m->lock, flags);
- 
-+	/*
-+	 * Only pass ioctls through if the device sizes match exactly.
-+	 */
-+	if (!r && ti->len != i_size_read(bdev->bd_inode) >> SECTOR_SHIFT)
-+		r = scsi_verify_blk_ioctl(NULL, cmd);
-+
- 	return r ? : __blkdev_driver_ioctl(bdev, mode, cmd, arg);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0093-proc-clean-up-and-fix-proc-pid-mem-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0093-proc-clean-up-and-fix-proc-pid-mem-handling.patch
deleted file mode 100644
index 5c2c566..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0093-proc-clean-up-and-fix-proc-pid-mem-handling.patch
+++ /dev/null
@@ -1,271 +0,0 @@
-From b1eff256d4110a894a3a70a224d3581136645ada Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Tue, 17 Jan 2012 15:21:19 -0800
-Subject: [PATCH 093/129] proc: clean up and fix /proc/<pid>/mem handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit e268337dfe26dfc7efd422a804dbb27977a3cccc upstream.
-
-Jüri Aedla reported that the /proc/<pid>/mem handling really isn't very
-robust, and it also doesn't match the permission checking of any of the
-other related files.
-
-This changes it to do the permission checks at open time, and instead of
-tracking the process, it tracks the VM at the time of the open.  That
-simplifies the code a lot, but does mean that if you hold the file
-descriptor open over an execve(), you'll continue to read from the _old_
-VM.
-
-That is different from our previous behavior, but much simpler.  If
-somebody actually finds a load where this matters, we'll need to revert
-this commit.
-
-I suspect that nobody will ever notice - because the process mapping
-addresses will also have changed as part of the execve.  So you cannot
-actually usefully access the fd across a VM change simply because all
-the offsets for IO would have changed too.
-
-Reported-by: Jüri Aedla <asd at ut.ee>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/proc/base.c |  145 +++++++++++++++-----------------------------------------
- 1 file changed, 39 insertions(+), 106 deletions(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 851ba3d..1fc1dca 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -194,65 +194,7 @@ static int proc_root_link(struct inode *inode, struct path *path)
- 	return result;
- }
- 
--static struct mm_struct *__check_mem_permission(struct task_struct *task)
--{
--	struct mm_struct *mm;
--
--	mm = get_task_mm(task);
--	if (!mm)
--		return ERR_PTR(-EINVAL);
--
--	/*
--	 * A task can always look at itself, in case it chooses
--	 * to use system calls instead of load instructions.
--	 */
--	if (task == current)
--		return mm;
--
--	/*
--	 * If current is actively ptrace'ing, and would also be
--	 * permitted to freshly attach with ptrace now, permit it.
--	 */
--	if (task_is_stopped_or_traced(task)) {
--		int match;
--		rcu_read_lock();
--		match = (ptrace_parent(task) == current);
--		rcu_read_unlock();
--		if (match && ptrace_may_access(task, PTRACE_MODE_ATTACH))
--			return mm;
--	}
--
--	/*
--	 * No one else is allowed.
--	 */
--	mmput(mm);
--	return ERR_PTR(-EPERM);
--}
--
--/*
-- * If current may access user memory in @task return a reference to the
-- * corresponding mm, otherwise ERR_PTR.
-- */
--static struct mm_struct *check_mem_permission(struct task_struct *task)
--{
--	struct mm_struct *mm;
--	int err;
--
--	/*
--	 * Avoid racing if task exec's as we might get a new mm but validate
--	 * against old credentials.
--	 */
--	err = mutex_lock_killable(&task->signal->cred_guard_mutex);
--	if (err)
--		return ERR_PTR(err);
--
--	mm = __check_mem_permission(task);
--	mutex_unlock(&task->signal->cred_guard_mutex);
--
--	return mm;
--}
--
--struct mm_struct *mm_for_maps(struct task_struct *task)
-+static struct mm_struct *mm_access(struct task_struct *task, unsigned int mode)
- {
- 	struct mm_struct *mm;
- 	int err;
-@@ -263,7 +205,7 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
- 
- 	mm = get_task_mm(task);
- 	if (mm && mm != current->mm &&
--			!ptrace_may_access(task, PTRACE_MODE_READ)) {
-+			!ptrace_may_access(task, mode)) {
- 		mmput(mm);
- 		mm = ERR_PTR(-EACCES);
- 	}
-@@ -272,6 +214,11 @@ struct mm_struct *mm_for_maps(struct task_struct *task)
- 	return mm;
- }
- 
-+struct mm_struct *mm_for_maps(struct task_struct *task)
-+{
-+	return mm_access(task, PTRACE_MODE_READ);
-+}
-+
- static int proc_pid_cmdline(struct task_struct *task, char * buffer)
- {
- 	int res = 0;
-@@ -816,38 +763,39 @@ static const struct file_operations proc_single_file_operations = {
- 
- static int mem_open(struct inode* inode, struct file* file)
- {
--	file->private_data = (void*)((long)current->self_exec_id);
-+	struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+	struct mm_struct *mm;
-+
-+	if (!task)
-+		return -ESRCH;
-+
-+	mm = mm_access(task, PTRACE_MODE_ATTACH);
-+	put_task_struct(task);
-+
-+	if (IS_ERR(mm))
-+		return PTR_ERR(mm);
-+
- 	/* OK to pass negative loff_t, we can catch out-of-range */
- 	file->f_mode |= FMODE_UNSIGNED_OFFSET;
-+	file->private_data = mm;
-+
- 	return 0;
- }
- 
- static ssize_t mem_read(struct file * file, char __user * buf,
- 			size_t count, loff_t *ppos)
- {
--	struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
-+	int ret;
- 	char *page;
- 	unsigned long src = *ppos;
--	int ret = -ESRCH;
--	struct mm_struct *mm;
-+	struct mm_struct *mm = file->private_data;
- 
--	if (!task)
--		goto out_no_task;
-+	if (!mm)
-+		return 0;
- 
--	ret = -ENOMEM;
- 	page = (char *)__get_free_page(GFP_TEMPORARY);
- 	if (!page)
--		goto out;
--
--	mm = check_mem_permission(task);
--	ret = PTR_ERR(mm);
--	if (IS_ERR(mm))
--		goto out_free;
--
--	ret = -EIO;
-- 
--	if (file->private_data != (void*)((long)current->self_exec_id))
--		goto out_put;
-+		return -ENOMEM;
- 
- 	ret = 0;
-  
-@@ -874,13 +822,7 @@ static ssize_t mem_read(struct file * file, char __user * buf,
- 	}
- 	*ppos = src;
- 
--out_put:
--	mmput(mm);
--out_free:
- 	free_page((unsigned long) page);
--out:
--	put_task_struct(task);
--out_no_task:
- 	return ret;
- }
- 
-@@ -889,27 +831,15 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- {
- 	int copied;
- 	char *page;
--	struct task_struct *task = get_proc_task(file->f_path.dentry->d_inode);
- 	unsigned long dst = *ppos;
--	struct mm_struct *mm;
-+	struct mm_struct *mm = file->private_data;
- 
--	copied = -ESRCH;
--	if (!task)
--		goto out_no_task;
-+	if (!mm)
-+		return 0;
- 
--	copied = -ENOMEM;
- 	page = (char *)__get_free_page(GFP_TEMPORARY);
- 	if (!page)
--		goto out_task;
--
--	mm = check_mem_permission(task);
--	copied = PTR_ERR(mm);
--	if (IS_ERR(mm))
--		goto out_free;
--
--	copied = -EIO;
--	if (file->private_data != (void *)((long)current->self_exec_id))
--		goto out_mm;
-+		return -ENOMEM;
- 
- 	copied = 0;
- 	while (count > 0) {
-@@ -933,13 +863,7 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- 	}
- 	*ppos = dst;
- 
--out_mm:
--	mmput(mm);
--out_free:
- 	free_page((unsigned long) page);
--out_task:
--	put_task_struct(task);
--out_no_task:
- 	return copied;
- }
- 
-@@ -959,11 +883,20 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
- 	return file->f_pos;
- }
- 
-+static int mem_release(struct inode *inode, struct file *file)
-+{
-+	struct mm_struct *mm = file->private_data;
-+
-+	mmput(mm);
-+	return 0;
-+}
-+
- static const struct file_operations proc_mem_operations = {
- 	.llseek		= mem_lseek,
- 	.read		= mem_read,
- 	.write		= mem_write,
- 	.open		= mem_open,
-+	.release	= mem_release,
- };
- 
- static ssize_t environ_read(struct file *file, char __user *buf,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0094-ALSA-HDA-Use-LPIB-position-fix-for-Macbook-Pro-7-1.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0094-ALSA-HDA-Use-LPIB-position-fix-for-Macbook-Pro-7-1.patch
deleted file mode 100644
index 92722cf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0094-ALSA-HDA-Use-LPIB-position-fix-for-Macbook-Pro-7-1.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From a8cd5ec584f74044ccca71a50312fac4e69f4d64 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Thu, 12 Jan 2012 16:31:14 +0100
-Subject: [PATCH 094/129] ALSA: HDA: Use LPIB position fix for Macbook Pro 7,1
-
-commit b01de4fb40137fbda7530550ff0cd37171dafb0c upstream.
-
-Several users have reported "choppy" audio under the 3.2 kernel,
-and that changing position_fix to 1 has resolved their problem.
-The chip is an nVidia Corporation MCP89 High Definition Audio,
-[10de:0d94] (rev a2).
-
-BugLink: https://bugs.launchpad.net/bugs/909419
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/hda_intel.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
-index c2f79e6..5b2b75b 100644
---- a/sound/pci/hda/hda_intel.c
-+++ b/sound/pci/hda/hda_intel.c
-@@ -2509,6 +2509,7 @@ static struct snd_pci_quirk position_fix_list[] __devinitdata = {
- 	SND_PCI_QUIRK(0x1043, 0x81e7, "ASUS M2V", POS_FIX_LPIB),
- 	SND_PCI_QUIRK(0x1043, 0x83ce, "ASUS 1101HA", POS_FIX_LPIB),
- 	SND_PCI_QUIRK(0x104d, 0x9069, "Sony VPCS11V9E", POS_FIX_LPIB),
-+	SND_PCI_QUIRK(0x10de, 0xcb89, "Macbook Pro 7,1", POS_FIX_LPIB),
- 	SND_PCI_QUIRK(0x1297, 0x3166, "Shuttle", POS_FIX_LPIB),
- 	SND_PCI_QUIRK(0x1458, 0xa022, "ga-ma770-ud3", POS_FIX_LPIB),
- 	SND_PCI_QUIRK(0x1462, 0x1002, "MSI Wind U115", POS_FIX_LPIB),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0095-ALSA-virtuoso-Xonar-DS-fix-polarity-of-front-output.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0095-ALSA-virtuoso-Xonar-DS-fix-polarity-of-front-output.patch
deleted file mode 100644
index 5e1651f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0095-ALSA-virtuoso-Xonar-DS-fix-polarity-of-front-output.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 142a4939e76aa02d8e2d8338a63dabf59bc83f1b Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens at ladisch.de>
-Date: Sat, 14 Jan 2012 16:42:24 +0100
-Subject: [PATCH 095/129] ALSA: virtuoso: Xonar DS: fix polarity of front
- output
-
-commit f0e48b6bd4e407459715240cd241ddb6b89bdf81 upstream.
-
-The two DACs for the front output and the surround/center/LFE/back
-outputs are wired up out of phase, so when channels are duplicated,
-their sound can cancel out each other and result in a weaker bass
-response.  To fix this, reverse the polarity of the neutron flow to
-the front output.
-
-Reported-any-tested-by: Daniel Hill <daniel at enemyplanet.geek.nz>
-Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/oxygen/xonar_wm87x6.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/oxygen/xonar_wm87x6.c b/sound/pci/oxygen/xonar_wm87x6.c
-index 42d1ab1..915546a 100644
---- a/sound/pci/oxygen/xonar_wm87x6.c
-+++ b/sound/pci/oxygen/xonar_wm87x6.c
-@@ -177,6 +177,7 @@ static void wm8776_registers_init(struct oxygen *chip)
- 	struct xonar_wm87x6 *data = chip->model_data;
- 
- 	wm8776_write(chip, WM8776_RESET, 0);
-+	wm8776_write(chip, WM8776_PHASESWAP, WM8776_PH_MASK);
- 	wm8776_write(chip, WM8776_DACCTRL1, WM8776_DZCEN |
- 		     WM8776_PL_LEFT_LEFT | WM8776_PL_RIGHT_RIGHT);
- 	wm8776_write(chip, WM8776_DACMUTE, chip->dac_mute ? WM8776_DMUTE : 0);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0096-ALSA-HDA-Fix-internal-microphone-on-Dell-Studio-16-X.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0096-ALSA-HDA-Fix-internal-microphone-on-Dell-Studio-16-X.patch
deleted file mode 100644
index 6bad4a4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0096-ALSA-HDA-Fix-internal-microphone-on-Dell-Studio-16-X.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From c46905cc61a1b5ff0500d15d79ba8110283e6c58 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Mon, 16 Jan 2012 10:52:20 +0100
-Subject: [PATCH 096/129] ALSA: HDA: Fix internal microphone on Dell Studio 16
- XPS 1645
-
-commit ffe535edb9a9c5b4d5fe03dfa3d89a1495580f1b upstream.
-
-More than one user reports that changing the model from "both" to
-"dmic" makes their Internal Mic work.
-
-Tested-by: Martin Ling <martin-launchpad at earth.li>
-BugLink: https://bugs.launchpad.net/bugs/795823
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- sound/pci/hda/patch_sigmatel.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index a87b260..f3c73a9 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -1631,7 +1631,7 @@ static const struct snd_pci_quirk stac92hd73xx_cfg_tbl[] = {
- 	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02bd,
- 				"Dell Studio 1557", STAC_DELL_M6_DMIC),
- 	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x02fe,
--				"Dell Studio XPS 1645", STAC_DELL_M6_BOTH),
-+				"Dell Studio XPS 1645", STAC_DELL_M6_DMIC),
- 	SND_PCI_QUIRK(PCI_VENDOR_ID_DELL, 0x0413,
- 				"Dell Studio 1558", STAC_DELL_M6_DMIC),
- 	{} /* terminator */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0097-TOMOYO-Accept-000-as-a-valid-character.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0097-TOMOYO-Accept-000-as-a-valid-character.patch
deleted file mode 100644
index 3393f76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0097-TOMOYO-Accept-000-as-a-valid-character.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From df8b89ac669c66d219a762da1ba79151acce2bf1 Mon Sep 17 00:00:00 2001
-From: Tetsuo Handa <from-tomoyo-users-en at I-love.SAKURA.ne.jp>
-Date: Sun, 15 Jan 2012 11:05:59 +0900
-Subject: [PATCH 097/129] TOMOYO: Accept \000 as a valid character.
-
-commit 25add8cf99c9ec8b8dc0acd8b9241e963fc0d29c upstream.
-
-TOMOYO 2.5 in Linux 3.2 and later handles Unix domain socket's address.
-Thus, tomoyo_correct_word2() needs to accept \000 as a valid character, or
-TOMOYO 2.5 cannot handle Unix domain's abstract socket address.
-
-Reported-by: Steven Allen <steven at stebalien.com>
-Signed-off-by: Tetsuo Handa <penguin-kernel at I-love.SAKURA.ne.jp>
-Signed-off-by: James Morris <jmorris at namei.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- security/tomoyo/util.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/security/tomoyo/util.c b/security/tomoyo/util.c
-index 4a9b4b2..867558c 100644
---- a/security/tomoyo/util.c
-+++ b/security/tomoyo/util.c
-@@ -492,13 +492,13 @@ static bool tomoyo_correct_word2(const char *string, size_t len)
- 				if (d < '0' || d > '7' || e < '0' || e > '7')
- 					break;
- 				c = tomoyo_make_byte(c, d, e);
--				if (tomoyo_invalid(c))
--					continue; /* pattern is not \000 */
-+				if (c <= ' ' || c >= 127)
-+					continue;
- 			}
- 			goto out;
- 		} else if (in_repetition && c == '/') {
- 			goto out;
--		} else if (tomoyo_invalid(c)) {
-+		} else if (c <= ' ' || c >= 127) {
- 			goto out;
- 		}
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0098-intel-idle-Make-idle-driver-more-robust.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0098-intel-idle-Make-idle-driver-more-robust.patch
deleted file mode 100644
index 410dc4f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0098-intel-idle-Make-idle-driver-more-robust.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0e193a44b182c4d14fd4ec0eda63e1cba9e4a0a7 Mon Sep 17 00:00:00 2001
-From: Thomas Renninger <trenn at suse.de>
-Date: Sun, 4 Dec 2011 22:17:29 +0100
-Subject: [PATCH 098/129] intel idle: Make idle driver more robust
-
-commit 5c2a9f06a9cd7194f884cdc88144866235dec07d upstream.
-
-kvm -cpu host passes the original cpuid info to the guest.
-
-Latest kvm version seem to return true for mwait_leaf cpuid
-function on recent Intel CPUs. But it does not return mwait
-C-states (mwait_substates), instead zero is returned.
-
-While real CPUs seem to always return non-zero values, the intel
-idle driver should not get active in kvm (mwait_substates == 0)
-case and bail out.
-Otherwise a Null pointer exception will happen later when the
-cpuidle subsystem tries to get active:
-[0.984807] BUG: unable to handle kernel NULL pointer dereference at (null)
-[0.984807] IP: [<(null)>] (null)
-...
-[0.984807][<ffffffff8143cf34>] ? cpuidle_idle_call+0xb4/0x340
-[0.984807][<ffffffff8159e7bc>] ? __atomic_notifier_call_chain+0x4c/0x70
-[0.984807][<ffffffff81001198>] ? cpu_idle+0x78/0xd0
-
-Reference:
-https://bugzilla.novell.com/show_bug.cgi?id=726296
-
-Signed-off-by: Thomas Renninger <trenn at suse.de>
-CC: Bruno Friedmann <bruno at ioda-net.ch>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/idle/intel_idle.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
-index 5d2f8e1..1dafcc3 100644
---- a/drivers/idle/intel_idle.c
-+++ b/drivers/idle/intel_idle.c
-@@ -348,7 +348,8 @@ static int intel_idle_probe(void)
- 	cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &mwait_substates);
- 
- 	if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) ||
--		!(ecx & CPUID5_ECX_INTERRUPT_BREAK))
-+	    !(ecx & CPUID5_ECX_INTERRUPT_BREAK) ||
-+	    !mwait_substates)
- 			return -ENODEV;
- 
- 	pr_debug(PREFIX "MWAIT substates: 0x%x\n", mwait_substates);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0099-intel_idle-fix-API-misuse.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0099-intel_idle-fix-API-misuse.patch
deleted file mode 100644
index cbebf3b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0099-intel_idle-fix-API-misuse.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c8fa4b79449fe6d516847fc308c7126e65d5eec1 Mon Sep 17 00:00:00 2001
-From: Shaohua Li <shaohua.li at intel.com>
-Date: Tue, 10 Jan 2012 15:48:19 -0800
-Subject: [PATCH 099/129] intel_idle: fix API misuse
-
-commit 39a74fdedd1c1461d6fb6d330b5266886513c98f upstream.
-
-smp_call_function() only lets all other CPUs execute a specific function,
-while we expect all CPUs do in intel_idle.  Without the fix, we could have
-one cpu which has auto_demotion enabled or has no broadcast timer setup.
-Usually we don't see impact because auto demotion just harms power and the
-intel_idle init is called in CPU 0, where boradcast timer delivers
-interrupt, but this still could be a problem.
-
-Signed-off-by: Shaohua Li <shaohua.li at intel.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/idle/intel_idle.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/idle/intel_idle.c b/drivers/idle/intel_idle.c
-index 1dafcc3..5b39216 100644
---- a/drivers/idle/intel_idle.c
-+++ b/drivers/idle/intel_idle.c
-@@ -395,7 +395,7 @@ static int intel_idle_probe(void)
- 	if (boot_cpu_has(X86_FEATURE_ARAT))	/* Always Reliable APIC Timer */
- 		lapic_timer_reliable_states = LAPIC_TIMER_ALWAYS_RELIABLE;
- 	else {
--		smp_call_function(__setup_broadcast_timer, (void *)true, 1);
-+		on_each_cpu(__setup_broadcast_timer, (void *)true, 1);
- 		register_cpu_notifier(&setup_broadcast_notifier);
- 	}
- 
-@@ -472,7 +472,7 @@ static int intel_idle_cpuidle_driver_init(void)
- 	}
- 
- 	if (auto_demotion_disable_flags)
--		smp_call_function(auto_demotion_disable, NULL, 1);
-+		on_each_cpu(auto_demotion_disable, NULL, 1);
- 
- 	return 0;
- }
-@@ -569,7 +569,7 @@ static void __exit intel_idle_exit(void)
- 	cpuidle_unregister_driver(&intel_idle_driver);
- 
- 	if (lapic_timer_reliable_states != LAPIC_TIMER_ALWAYS_RELIABLE) {
--		smp_call_function(__setup_broadcast_timer, (void *)false, 1);
-+		on_each_cpu(__setup_broadcast_timer, (void *)false, 1);
- 		unregister_cpu_notifier(&setup_broadcast_notifier);
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0100-ACPI-Store-SRAT-table-revision.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0100-ACPI-Store-SRAT-table-revision.patch
deleted file mode 100644
index 5f6eb01..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0100-ACPI-Store-SRAT-table-revision.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 8f15cb284e8a758b4040fd87729b365bb7805dbb Mon Sep 17 00:00:00 2001
-From: Kurt Garloff <kurt at garloff.de>
-Date: Tue, 17 Jan 2012 04:18:02 -0500
-Subject: [PATCH 100/129] ACPI: Store SRAT table revision
-
-commit 8df0eb7c9d96f9e82f233ee8b74e0f0c8471f868 upstream.
-
-In SRAT v1, we had 8bit proximity domain (PXM) fields; SRAT v2 provides
-32bits for these. The new fields were reserved before.
-According to the ACPI spec, the OS must disregrard reserved fields.
-In order to know whether or not, we must know what version the SRAT
-table has.
-
-This patch stores the SRAT table revision for later consumption
-by arch specific __init functions.
-
-Signed-off-by: Kurt Garloff <kurt at garloff.de>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/acpi/numa.c      |    6 ++++++
- include/acpi/acpi_numa.h |    1 +
- 2 files changed, 7 insertions(+)
-
-diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c
-index 3b5c318..e56f3be 100644
---- a/drivers/acpi/numa.c
-+++ b/drivers/acpi/numa.c
-@@ -45,6 +45,8 @@ static int pxm_to_node_map[MAX_PXM_DOMAINS]
- static int node_to_pxm_map[MAX_NUMNODES]
- 			= { [0 ... MAX_NUMNODES - 1] = PXM_INVAL };
- 
-+unsigned char acpi_srat_revision __initdata;
-+
- int pxm_to_node(int pxm)
- {
- 	if (pxm < 0)
-@@ -255,9 +257,13 @@ acpi_parse_memory_affinity(struct acpi_subtable_header * header,
- 
- static int __init acpi_parse_srat(struct acpi_table_header *table)
- {
-+	struct acpi_table_srat *srat;
- 	if (!table)
- 		return -EINVAL;
- 
-+	srat = (struct acpi_table_srat *)table;
-+	acpi_srat_revision = srat->header.revision;
-+
- 	/* Real work done in acpi_table_parse_srat below. */
- 
- 	return 0;
-diff --git a/include/acpi/acpi_numa.h b/include/acpi/acpi_numa.h
-index 1739726..451823c 100644
---- a/include/acpi/acpi_numa.h
-+++ b/include/acpi/acpi_numa.h
-@@ -15,6 +15,7 @@ extern int pxm_to_node(int);
- extern int node_to_pxm(int);
- extern void __acpi_map_pxm_to_node(int, int);
- extern int acpi_map_pxm_to_node(int);
-+extern unsigned char acpi_srat_revision;
- 
- #endif				/* CONFIG_ACPI_NUMA */
- #endif				/* __ACP_NUMA_H */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0101-ACPI-x86-Use-SRAT-table-rev-to-use-8bit-or-32bit-PXM.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0101-ACPI-x86-Use-SRAT-table-rev-to-use-8bit-or-32bit-PXM.patch
deleted file mode 100644
index 2209860..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0101-ACPI-x86-Use-SRAT-table-rev-to-use-8bit-or-32bit-PXM.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 63a87105c14ecf9a81f741a3864b775901237f53 Mon Sep 17 00:00:00 2001
-From: Kurt Garloff <kurt at garloff.de>
-Date: Tue, 17 Jan 2012 04:20:31 -0500
-Subject: [PATCH 101/129] ACPI, x86: Use SRAT table rev to use 8bit or 32bit
- PXM fields (x86/x86-64)
-
-commit cd298f60a2451a16e0f077404bf69b62ec868733 upstream.
-
-In SRAT v1, we had 8bit proximity domain (PXM) fields; SRAT v2 provides
-32bits for these. The new fields were reserved before.
-According to the ACPI spec, the OS must disregrard reserved fields.
-
-x86/x86-64 was rather inconsistent prior to this patch; it used 8 bits
-for the pxm field in cpu_affinity, but 32 bits in mem_affinity.
-This patch makes it consistent: Either use 8 bits consistently (SRAT
-rev 1 or lower) or 32 bits (SRAT rev 2 or higher).
-
-cc: x86 at kernel.org
-Signed-off-by: Kurt Garloff <kurt at garloff.de>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/mm/srat.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/arch/x86/mm/srat.c b/arch/x86/mm/srat.c
-index 81dbfde..7efd0c6 100644
---- a/arch/x86/mm/srat.c
-+++ b/arch/x86/mm/srat.c
-@@ -104,6 +104,8 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
- 	if ((pa->flags & ACPI_SRAT_CPU_ENABLED) == 0)
- 		return;
- 	pxm = pa->proximity_domain_lo;
-+	if (acpi_srat_revision >= 2)
-+		pxm |= *((unsigned int*)pa->proximity_domain_hi) << 8;
- 	node = setup_node(pxm);
- 	if (node < 0) {
- 		printk(KERN_ERR "SRAT: Too many proximity domains %x\n", pxm);
-@@ -155,6 +157,8 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)
- 	start = ma->base_address;
- 	end = start + ma->length;
- 	pxm = ma->proximity_domain;
-+	if (acpi_srat_revision <= 1)
-+		pxm &= 0xff;
- 	node = setup_node(pxm);
- 	if (node < 0) {
- 		printk(KERN_ERR "SRAT: Too many proximity domains.\n");
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0102-ACPI-ia64-Use-SRAT-table-rev-to-use-8bit-or-16-32bit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0102-ACPI-ia64-Use-SRAT-table-rev-to-use-8bit-or-16-32bit.patch
deleted file mode 100644
index 9aa68af..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0102-ACPI-ia64-Use-SRAT-table-rev-to-use-8bit-or-16-32bit.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From d9beea03fc99ab5df65264a47802449c6630a8bf Mon Sep 17 00:00:00 2001
-From: Kurt Garloff <kurt at garloff.de>
-Date: Tue, 17 Jan 2012 04:21:49 -0500
-Subject: [PATCH 102/129] ACPI, ia64: Use SRAT table rev to use 8bit or
- 16/32bit PXM fields (ia64)
-
-commit 9f10f6a520deb3639fac78d81151a3ade88b4e7f upstream.
-
-In SRAT v1, we had 8bit proximity domain (PXM) fields; SRAT v2 provides
-32bits for these. The new fields were reserved before.
-According to the ACPI spec, the OS must disregrard reserved fields.
-
-ia64 did handle the PXM fields almost consistently, but depending on
-sgi's sn2 platform. This patch leaves the sn2 logic in, but does also
-use 16/32 bits for PXM if the SRAT has rev 2 or higher.
-
-The patch also adds __init to the two pxm accessor functions, as they
-access __initdata now and are called from an __init function only anyway.
-
-Note that the code only uses 16 bits for the PXM field in the processor
-proximity field; the patch does not address this as 16 bits are more than
-enough.
-
-Signed-off-by: Kurt Garloff <kurt at garloff.de>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/ia64/kernel/acpi.c |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c
-index bfb4d01..5207035 100644
---- a/arch/ia64/kernel/acpi.c
-+++ b/arch/ia64/kernel/acpi.c
-@@ -429,22 +429,24 @@ static u32 __devinitdata pxm_flag[PXM_FLAG_LEN];
- static struct acpi_table_slit __initdata *slit_table;
- cpumask_t early_cpu_possible_map = CPU_MASK_NONE;
- 
--static int get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
-+static int __init
-+get_processor_proximity_domain(struct acpi_srat_cpu_affinity *pa)
- {
- 	int pxm;
- 
- 	pxm = pa->proximity_domain_lo;
--	if (ia64_platform_is("sn2"))
-+	if (ia64_platform_is("sn2") || acpi_srat_revision >= 2)
- 		pxm += pa->proximity_domain_hi[0] << 8;
- 	return pxm;
- }
- 
--static int get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
-+static int __init
-+get_memory_proximity_domain(struct acpi_srat_mem_affinity *ma)
- {
- 	int pxm;
- 
- 	pxm = ma->proximity_domain;
--	if (!ia64_platform_is("sn2"))
-+	if (!ia64_platform_is("sn2") && acpi_srat_revision <= 1)
- 		pxm &= 0xff;
- 
- 	return pxm;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0103-ACPICA-Put-back-the-call-to-acpi_os_validate_address.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0103-ACPICA-Put-back-the-call-to-acpi_os_validate_address.patch
deleted file mode 100644
index 66d9672..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0103-ACPICA-Put-back-the-call-to-acpi_os_validate_address.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 0279b040f1dafa5f545c9ef255b39a99f9490750 Mon Sep 17 00:00:00 2001
-From: Lin Ming <ming.m.lin at intel.com>
-Date: Tue, 29 Nov 2011 22:13:35 +0800
-Subject: [PATCH 103/129] ACPICA: Put back the call to
- acpi_os_validate_address
-
-commit da4d8b287abe783d30e968155614531a0937d090 upstream.
-
-The call to acpi_os_validate_address in acpi_ds_get_region_arguments was
-removed by mistake in commit 9ad19ac(ACPICA: Split large dsopcode and
-dsload.c files).
-
-Put it back.
-
-Reported-and-bisected-by: Luca Tettamanti <kronos.it at gmail.com>
-Signed-off-by: Lin Ming <ming.m.lin at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/acpi/acpica/dsargs.c |   24 ++++++++++++++++++++++++
- 1 file changed, 24 insertions(+)
-
-diff --git a/drivers/acpi/acpica/dsargs.c b/drivers/acpi/acpica/dsargs.c
-index 8c7b997..42163d8 100644
---- a/drivers/acpi/acpica/dsargs.c
-+++ b/drivers/acpi/acpica/dsargs.c
-@@ -387,5 +387,29 @@ acpi_status acpi_ds_get_region_arguments(union acpi_operand_object *obj_desc)
- 	status = acpi_ds_execute_arguments(node, node->parent,
- 					   extra_desc->extra.aml_length,
- 					   extra_desc->extra.aml_start);
-+	if (ACPI_FAILURE(status)) {
-+		return_ACPI_STATUS(status);
-+	}
-+
-+	/* Validate the region address/length via the host OS */
-+
-+	status = acpi_os_validate_address(obj_desc->region.space_id,
-+					  obj_desc->region.address,
-+					  (acpi_size) obj_desc->region.length,
-+					  acpi_ut_get_node_name(node));
-+
-+	if (ACPI_FAILURE(status)) {
-+		/*
-+		 * Invalid address/length. We will emit an error message and mark
-+		 * the region as invalid, so that it will cause an additional error if
-+		 * it is ever used. Then return AE_OK.
-+		 */
-+		ACPI_EXCEPTION((AE_INFO, status,
-+				"During address validation of OpRegion [%4.4s]",
-+				node->name.ascii));
-+		obj_desc->common.flags |= AOPOBJ_INVALID;
-+		status = AE_OK;
-+	}
-+
- 	return_ACPI_STATUS(status);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0104-ACPI-processor-fix-acpi_get_cpuid-for-UP-processor.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0104-ACPI-processor-fix-acpi_get_cpuid-for-UP-processor.patch
deleted file mode 100644
index edd3fc3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0104-ACPI-processor-fix-acpi_get_cpuid-for-UP-processor.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 639adc94e82ece74d00c447a2e5d9180bdfd5355 Mon Sep 17 00:00:00 2001
-From: Lin Ming <ming.m.lin at intel.com>
-Date: Tue, 13 Dec 2011 09:36:03 +0800
-Subject: [PATCH 104/129] ACPI: processor: fix acpi_get_cpuid for UP processor
-
-commit d640113fe80e45ebd4a5b420b220d3f6bf37f682 upstream.
-
-For UP processor, it is likely that no _MAT method or MADT table defined.
-So currently acpi_get_cpuid(...) always return -1 for UP processor.
-This is wrong. It should return valid value for CPU0.
-
-In the other hand, BIOS may define multiple CPU handles even for UP
-processor, for example
-
-        Scope (_PR)
-        {
-            Processor (CPU0, 0x00, 0x00000410, 0x06) {}
-            Processor (CPU1, 0x01, 0x00000410, 0x06) {}
-            Processor (CPU2, 0x02, 0x00000410, 0x06) {}
-            Processor (CPU3, 0x03, 0x00000410, 0x06) {}
-        }
-
-We should only return valid value for CPU0's acpi handle.
-And return invalid value for others.
-
-http://marc.info/?t=132329819900003&r=1&w=2
-
-Reported-and-tested-by: wallak at free.fr
-Signed-off-by: Lin Ming <ming.m.lin at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/acpi/processor_core.c |   26 ++++++++++++++++++++++++--
- 1 file changed, 24 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
-index 3a0428e..c850de4 100644
---- a/drivers/acpi/processor_core.c
-+++ b/drivers/acpi/processor_core.c
-@@ -173,8 +173,30 @@ int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id)
- 	apic_id = map_mat_entry(handle, type, acpi_id);
- 	if (apic_id == -1)
- 		apic_id = map_madt_entry(type, acpi_id);
--	if (apic_id == -1)
--		return apic_id;
-+	if (apic_id == -1) {
-+		/*
-+		 * On UP processor, there is no _MAT or MADT table.
-+		 * So above apic_id is always set to -1.
-+		 *
-+		 * BIOS may define multiple CPU handles even for UP processor.
-+		 * For example,
-+		 *
-+		 * Scope (_PR)
-+                 * {
-+		 *     Processor (CPU0, 0x00, 0x00000410, 0x06) {}
-+		 *     Processor (CPU1, 0x01, 0x00000410, 0x06) {}
-+		 *     Processor (CPU2, 0x02, 0x00000410, 0x06) {}
-+		 *     Processor (CPU3, 0x03, 0x00000410, 0x06) {}
-+		 * }
-+		 *
-+		 * Ignores apic_id and always return 0 for CPU0's handle.
-+		 * Return -1 for other CPU's handle.
-+		 */
-+		if (acpi_id == 0)
-+			return acpi_id;
-+		else
-+			return apic_id;
-+	}
- 
- #ifdef CONFIG_SMP
- 	for_each_possible_cpu(i) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0105-sym53c8xx-Fix-NULL-pointer-dereference-in-slave_dest.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0105-sym53c8xx-Fix-NULL-pointer-dereference-in-slave_dest.patch
deleted file mode 100644
index e91b360..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0105-sym53c8xx-Fix-NULL-pointer-dereference-in-slave_dest.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From af1ad4d4ecbbfca6424c1f8fa40e1aec8fae4836 Mon Sep 17 00:00:00 2001
-From: Stratos Psomadakis <psomas at gentoo.org>
-Date: Sun, 4 Dec 2011 02:23:54 +0200
-Subject: [PATCH 105/129] sym53c8xx: Fix NULL pointer dereference in
- slave_destroy
-
-commit cced5041ed5a2d1352186510944b0ddfbdbe4c0b upstream.
-
-sym53c8xx_slave_destroy unconditionally assumes that sym53c8xx_slave_alloc has
-succesesfully allocated a sym_lcb. This can lead to a NULL pointer dereference
-(exposed by commit 4e6c82b).
-
-Signed-off-by: Stratos Psomadakis <psomas at gentoo.org>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/scsi/sym53c8xx_2/sym_glue.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/scsi/sym53c8xx_2/sym_glue.c b/drivers/scsi/sym53c8xx_2/sym_glue.c
-index b4543f5..36d1ed7 100644
---- a/drivers/scsi/sym53c8xx_2/sym_glue.c
-+++ b/drivers/scsi/sym53c8xx_2/sym_glue.c
-@@ -839,6 +839,10 @@ static void sym53c8xx_slave_destroy(struct scsi_device *sdev)
- 	struct sym_lcb *lp = sym_lp(tp, sdev->lun);
- 	unsigned long flags;
- 
-+	/* if slave_alloc returned before allocating a sym_lcb, return */
-+	if (!lp)
-+		return;
-+
- 	spin_lock_irqsave(np->s.host->host_lock, flags);
- 
- 	if (lp->busy_itlq || lp->busy_itl) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0106-target-Set-response-format-in-INQUIRY-response.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0106-target-Set-response-format-in-INQUIRY-response.patch
deleted file mode 100644
index 22c0c37..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0106-target-Set-response-format-in-INQUIRY-response.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 860d8eb163f67712acbcc072e5362e3ca01ef2b8 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Tue, 6 Dec 2011 10:02:09 -0800
-Subject: [PATCH 106/129] target: Set response format in INQUIRY response
-
-commit ce136176fea522fc8f4c16dcae7e8ed1d890ca39 upstream.
-
-Current SCSI specs say that the "response format" field in the standard
-INQUIRY response should be set to 2, and all the real SCSI devices I
-have do put 2 here.  So let's do that too.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/target/target_core_cdb.c |   12 ++++++++++++
- 1 file changed, 12 insertions(+)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 831468b..2e8c1be 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -94,6 +94,18 @@ target_emulate_inquiry_std(struct se_cmd *cmd)
- 	buf[2] = dev->transport->get_device_rev(dev);
- 
- 	/*
-+	 * NORMACA and HISUP = 0, RESPONSE DATA FORMAT = 2
-+	 *
-+	 * SPC4 says:
-+	 *   A RESPONSE DATA FORMAT field set to 2h indicates that the
-+	 *   standard INQUIRY data is in the format defined in this
-+	 *   standard. Response data format values less than 2h are
-+	 *   obsolete. Response data format values greater than 2h are
-+	 *   reserved.
-+	 */
-+	buf[3] = 2;
-+
-+	/*
- 	 * Enable SCCS and TPGS fields for Emulated ALUA
- 	 */
- 	if (dev->se_sub_dev->t10_alua.alua_type == SPC3_ALUA_EMULATED)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0107-target-Set-additional-sense-length-field-in-sense-da.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0107-target-Set-additional-sense-length-field-in-sense-da.patch
deleted file mode 100644
index 2d2bff5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0107-target-Set-additional-sense-length-field-in-sense-da.patch
+++ /dev/null
@@ -1,177 +0,0 @@
-From ae86c4561c40068ef81f484829a47512c99853d0 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Tue, 13 Dec 2011 14:55:33 -0800
-Subject: [PATCH 107/129] target: Set additional sense length field in sense
- data
-
-commit 895f3022523361e9b383cf48f51feb1f7d5e7e53 upstream.
-
-The target code was not setting the additional sense length field in the
-sense data it returned, which meant that at least the Linux stack
-ignored the ASC/ASCQ fields.  For example, without this patch, on a
-tcm_loop device:
-
-    # sg_raw -v /dev/sda 2 0 0 0 0 0
-
-gives
-
-        cdb to send: 02 00 00 00 00 00
-    SCSI Status: Check Condition
-
-    Sense Information:
-     Fixed format, current;  Sense key: Illegal Request
-      Raw sense data (in hex):
-            70 00 05 00 00 00 00 00
-
-while after the patch we correctly get the following (which matches what
-a regular disk returns):
-
-        cdb to send: 02 00 00 00 00 00
-    SCSI Status: Check Condition
-
-    Sense Information:
-     Fixed format, current;  Sense key: Illegal Request
-     Additional sense: Invalid command operation code
-     Raw sense data (in hex):
-            70 00 05 00 00 00 00 0a  00 00 00 00 20 00 00 00
-            00 00
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/target/target_core_transport.c |   14 ++++++++++++++
- include/target/target_core_base.h      |    1 +
- 2 files changed, 15 insertions(+)
-
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index 0257658..e87d0eb 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -4353,6 +4353,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_NON_EXISTENT_LUN:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ILLEGAL REQUEST */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
- 		/* LOGICAL UNIT NOT SUPPORTED */
-@@ -4362,6 +4363,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_SECTOR_COUNT_TOO_MANY:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ILLEGAL REQUEST */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
- 		/* INVALID COMMAND OPERATION CODE */
-@@ -4370,6 +4372,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_UNKNOWN_MODE_PAGE:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ILLEGAL REQUEST */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
- 		/* INVALID FIELD IN CDB */
-@@ -4378,6 +4381,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_CHECK_CONDITION_ABORT_CMD:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* BUS DEVICE RESET FUNCTION OCCURRED */
-@@ -4387,6 +4391,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_INCORRECT_AMOUNT_OF_DATA:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* WRITE ERROR */
-@@ -4397,6 +4402,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_INVALID_CDB_FIELD:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* INVALID FIELD IN CDB */
-@@ -4405,6 +4411,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_INVALID_PARAMETER_LIST:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* INVALID FIELD IN PARAMETER LIST */
-@@ -4413,6 +4420,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_UNEXPECTED_UNSOLICITED_DATA:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* WRITE ERROR */
-@@ -4423,6 +4431,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_SERVICE_CRC_ERROR:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* PROTOCOL SERVICE CRC ERROR */
-@@ -4433,6 +4442,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_SNACK_REJECTED:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ABORTED COMMAND */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
- 		/* READ ERROR */
-@@ -4443,6 +4453,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_WRITE_PROTECTED:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* DATA PROTECT */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = DATA_PROTECT;
- 		/* WRITE PROTECTED */
-@@ -4451,6 +4462,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_CHECK_CONDITION_UNIT_ATTENTION:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* UNIT ATTENTION */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = UNIT_ATTENTION;
- 		core_scsi3_ua_for_check_condition(cmd, &asc, &ascq);
-@@ -4460,6 +4472,7 @@ int transport_send_check_condition_and_sense(
- 	case TCM_CHECK_CONDITION_NOT_READY:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* Not Ready */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = NOT_READY;
- 		transport_get_sense_codes(cmd, &asc, &ascq);
-@@ -4470,6 +4483,7 @@ int transport_send_check_condition_and_sense(
- 	default:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
- 		/* ILLEGAL REQUEST */
- 		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
- 		/* LOGICAL UNIT COMMUNICATION FAILURE */
-diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
-index 6873c7d..a79886c 100644
---- a/include/target/target_core_base.h
-+++ b/include/target/target_core_base.h
-@@ -34,6 +34,7 @@
- #define TRANSPORT_SENSE_BUFFER			SCSI_SENSE_BUFFERSIZE
- /* Used by transport_send_check_condition_and_sense() */
- #define SPC_SENSE_KEY_OFFSET			2
-+#define SPC_ADD_SENSE_LEN_OFFSET		7
- #define SPC_ASC_KEY_OFFSET			12
- #define SPC_ASCQ_KEY_OFFSET			13
- #define TRANSPORT_IQN_LEN			224
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0108-bcma-invalidate-the-mapped-core-over-suspend-resume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0108-bcma-invalidate-the-mapped-core-over-suspend-resume.patch
deleted file mode 100644
index 1d681ad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0108-bcma-invalidate-the-mapped-core-over-suspend-resume.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 744b53e5115a140039ef4e7834bb84797b4db37e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Rafa=C5=82=20Mi=C5=82ecki?= <zajec5 at gmail.com>
-Date: Fri, 13 Jan 2012 23:58:38 +0100
-Subject: [PATCH 108/129] bcma: invalidate the mapped core over suspend/resume
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 28e7d218da975f6ae1751e293aed938952c55c98 upstream.
-
-This clears the currently mapped core when suspending, to force
-re-mapping after resume. Without that we were touching default core
-registers believing some other core is mapped. Such a behaviour
-resulted in lockups on some machines.
-
-Signed-off-by: Rafał Miłecki <zajec5 at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/bcma/host_pci.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/bcma/host_pci.c b/drivers/bcma/host_pci.c
-index 990f5a8..48e06be 100644
---- a/drivers/bcma/host_pci.c
-+++ b/drivers/bcma/host_pci.c
-@@ -227,11 +227,14 @@ static void bcma_host_pci_remove(struct pci_dev *dev)
- #ifdef CONFIG_PM
- static int bcma_host_pci_suspend(struct pci_dev *dev, pm_message_t state)
- {
-+	struct bcma_bus *bus = pci_get_drvdata(dev);
-+
- 	/* Host specific */
- 	pci_save_state(dev);
- 	pci_disable_device(dev);
- 	pci_set_power_state(dev, pci_choose_state(dev, state));
- 
-+	bus->mapped_core = NULL;
- 	return 0;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0109-cx23885-dvb-check-if-dvb_attach-succeded.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0109-cx23885-dvb-check-if-dvb_attach-succeded.patch
deleted file mode 100644
index 281a380..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0109-cx23885-dvb-check-if-dvb_attach-succeded.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3fcecb64e1ce21bda3d69718f0fefa1ed0d7f06b Mon Sep 17 00:00:00 2001
-From: Miroslav Slugen <thunder.mmm at gmail.com>
-Date: Sun, 11 Dec 2011 18:57:58 -0300
-Subject: [PATCH 109/129] cx23885-dvb: check if dvb_attach() succeded
-
-commit a7c8aadad39428b64d26c3971d967f8314e2397d upstream.
-
-Fix possible null dereference for Leadtek DTV 3200H
-XC4000 tuner when no firmware file available.
-
-Signed-off-by: Miroslav Slugen <thunder.mmm at gmail.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/media/video/cx23885/cx23885-dvb.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/media/video/cx23885/cx23885-dvb.c b/drivers/media/video/cx23885/cx23885-dvb.c
-index bcb45be..f0482b2 100644
---- a/drivers/media/video/cx23885/cx23885-dvb.c
-+++ b/drivers/media/video/cx23885/cx23885-dvb.c
-@@ -940,6 +940,11 @@ static int dvb_register(struct cx23885_tsport *port)
- 
- 			fe = dvb_attach(xc4000_attach, fe0->dvb.frontend,
- 					&dev->i2c_bus[1].i2c_adap, &cfg);
-+			if (!fe) {
-+				printk(KERN_ERR "%s/2: xc4000 attach failed\n",
-+				       dev->name);
-+				goto frontend_detach;
-+			}
- 		}
- 		break;
- 	case CX23885_BOARD_TBS_6920:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0110-cx88-fix-don-t-duplicate-xc4000-entry-for-radio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0110-cx88-fix-don-t-duplicate-xc4000-entry-for-radio.patch
deleted file mode 100644
index 3bb70b8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0110-cx88-fix-don-t-duplicate-xc4000-entry-for-radio.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From dedbeeab016e8baaeed49bae9f4a0dab47da8a54 Mon Sep 17 00:00:00 2001
-From: Miroslav Slugen <thunder.mmm at gmail.com>
-Date: Sun, 11 Dec 2011 19:00:06 -0300
-Subject: [PATCH 110/129] cx88: fix: don't duplicate xc4000 entry for radio
-
-commit b6854e3f31402476bcc9d2f41570389fa491de17 upstream.
-
-All radio tuners in cx88 driver using same address for radio and tuner,
-so there is no need to probe it twice for same tuner and we can use
-radio_type UNSET, this also fix broken radio since kernel 2.6.39-rc1
-for those tuners.
-
-Signed-off-by: Miroslav Slugen <thunder.mmm at gmail.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/media/video/cx88/cx88-cards.c |   24 ++++++++++++------------
- 1 file changed, 12 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/media/video/cx88/cx88-cards.c b/drivers/media/video/cx88/cx88-cards.c
-index 0d719fa..3929d93 100644
---- a/drivers/media/video/cx88/cx88-cards.c
-+++ b/drivers/media/video/cx88/cx88-cards.c
-@@ -1573,8 +1573,8 @@ static const struct cx88_board cx88_boards[] = {
- 		.name           = "Pinnacle Hybrid PCTV",
- 		.tuner_type     = TUNER_XC2028,
- 		.tuner_addr     = 0x61,
--		.radio_type     = TUNER_XC2028,
--		.radio_addr     = 0x61,
-+		.radio_type     = UNSET,
-+		.radio_addr     = ADDR_UNSET,
- 		.input          = { {
- 			.type   = CX88_VMUX_TELEVISION,
- 			.vmux   = 0,
-@@ -1611,8 +1611,8 @@ static const struct cx88_board cx88_boards[] = {
- 		.name           = "Leadtek TV2000 XP Global",
- 		.tuner_type     = TUNER_XC2028,
- 		.tuner_addr     = 0x61,
--		.radio_type     = TUNER_XC2028,
--		.radio_addr     = 0x61,
-+		.radio_type     = UNSET,
-+		.radio_addr     = ADDR_UNSET,
- 		.input          = { {
- 			.type   = CX88_VMUX_TELEVISION,
- 			.vmux   = 0,
-@@ -2043,8 +2043,8 @@ static const struct cx88_board cx88_boards[] = {
- 		.name           = "Terratec Cinergy HT PCI MKII",
- 		.tuner_type     = TUNER_XC2028,
- 		.tuner_addr     = 0x61,
--		.radio_type     = TUNER_XC2028,
--		.radio_addr     = 0x61,
-+		.radio_type     = UNSET,
-+		.radio_addr     = ADDR_UNSET,
- 		.input          = { {
- 			.type   = CX88_VMUX_TELEVISION,
- 			.vmux   = 0,
-@@ -2082,9 +2082,9 @@ static const struct cx88_board cx88_boards[] = {
- 	[CX88_BOARD_WINFAST_DTV1800H] = {
- 		.name           = "Leadtek WinFast DTV1800 Hybrid",
- 		.tuner_type     = TUNER_XC2028,
--		.radio_type     = TUNER_XC2028,
-+		.radio_type     = UNSET,
- 		.tuner_addr     = 0x61,
--		.radio_addr     = 0x61,
-+		.radio_addr     = ADDR_UNSET,
- 		/*
- 		 * GPIO setting
- 		 *
-@@ -2123,9 +2123,9 @@ static const struct cx88_board cx88_boards[] = {
- 	[CX88_BOARD_WINFAST_DTV1800H_XC4000] = {
- 		.name		= "Leadtek WinFast DTV1800 H (XC4000)",
- 		.tuner_type	= TUNER_XC4000,
--		.radio_type	= TUNER_XC4000,
-+		.radio_type	= UNSET,
- 		.tuner_addr	= 0x61,
--		.radio_addr	= 0x61,
-+		.radio_addr	= ADDR_UNSET,
- 		/*
- 		 * GPIO setting
- 		 *
-@@ -2164,9 +2164,9 @@ static const struct cx88_board cx88_boards[] = {
- 	[CX88_BOARD_WINFAST_DTV2000H_PLUS] = {
- 		.name		= "Leadtek WinFast DTV2000 H PLUS",
- 		.tuner_type	= TUNER_XC4000,
--		.radio_type	= TUNER_XC4000,
-+		.radio_type	= UNSET,
- 		.tuner_addr	= 0x61,
--		.radio_addr	= 0x61,
-+		.radio_addr	= ADDR_UNSET,
- 		/*
- 		 * GPIO
- 		 *   2: 1: mute audio
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0111-tuner-Fix-numberspace-conflict-between-xc4000-and-pt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0111-tuner-Fix-numberspace-conflict-between-xc4000-and-pt.patch
deleted file mode 100644
index ca03460..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0111-tuner-Fix-numberspace-conflict-between-xc4000-and-pt.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 5af871e87d37ab57459c6c7244aa4837993ee9eb Mon Sep 17 00:00:00 2001
-From: Miroslav Slugen <thunder.mmm at gmail.com>
-Date: Sun, 11 Dec 2011 18:47:32 -0300
-Subject: [PATCH 111/129] tuner: Fix numberspace conflict between xc4000 and
- pti 5nf05 tuners
-
-commit cd4ca7afc61d3b18fcd635002459fb6b1d701099 upstream.
-
-Update xc4000 tuner definition, number 81 is already in use by
-TUNER_PARTSNIC_PTI_5NF05.
-
-Signed-off-by: Miroslav Slugen <thunder.mmm at gmail.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- include/media/tuner.h |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/include/media/tuner.h b/include/media/tuner.h
-index 89c290b..29e1920 100644
---- a/include/media/tuner.h
-+++ b/include/media/tuner.h
-@@ -127,7 +127,6 @@
- #define TUNER_PHILIPS_FMD1216MEX_MK3	78
- #define TUNER_PHILIPS_FM1216MK5		79
- #define TUNER_PHILIPS_FQ1216LME_MK3	80	/* Active loopthrough, no FM */
--#define TUNER_XC4000			81	/* Xceive Silicon Tuner */
- 
- #define TUNER_PARTSNIC_PTI_5NF05	81
- #define TUNER_PHILIPS_CU1216L           82
-@@ -136,6 +135,8 @@
- #define TUNER_PHILIPS_FQ1236_MK5	85	/* NTSC, TDA9885, no FM radio */
- #define TUNER_TENA_TNF_5337		86
- 
-+#define TUNER_XC4000			87	/* Xceive Silicon Tuner */
-+
- /* tv card specific */
- #define TDA9887_PRESENT 		(1<<0)
- #define TDA9887_PORT1_INACTIVE 		(1<<1)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0112-tracepoints-module-Fix-disabling-tracepoints-with-ta.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0112-tracepoints-module-Fix-disabling-tracepoints-with-ta.patch
deleted file mode 100644
index fa68a22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0112-tracepoints-module-Fix-disabling-tracepoints-with-ta.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 1c99223cf33c02c8f79d74bda8a0f4352bd4d7f6 Mon Sep 17 00:00:00 2001
-From: Steven Rostedt <srostedt at redhat.com>
-Date: Fri, 13 Jan 2012 21:40:59 -0500
-Subject: [PATCH 112/129] tracepoints/module: Fix disabling tracepoints with
- taint CRAP or OOT
-
-commit c10076c4304083af15a41f6bc5e657e781c1f9a6 upstream.
-
-Tracepoints are disabled for tainted modules, which is usually because the
-module is either proprietary or was forced, and we don't want either of them
-using kernel tracepoints.
-
-But, a module can also be tainted by being in the staging directory or
-compiled out of tree. Either is fine for use with tracepoints, no need
-to punish them.  I found this out when I noticed that my sample trace event
-module, when done out of tree, stopped working.
-
-Cc: Mathieu Desnoyers <mathieu.desnoyers at efficios.com>
-Cc: Ben Hutchings <ben at decadent.org.uk>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Greg Kroah-Hartman <gregkh at suse.de>
-Cc: Rusty Russell <rusty at rustcorp.com.au>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- kernel/tracepoint.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
-index db110b8..f1539de 100644
---- a/kernel/tracepoint.c
-+++ b/kernel/tracepoint.c
-@@ -634,10 +634,11 @@ static int tracepoint_module_coming(struct module *mod)
- 	int ret = 0;
- 
- 	/*
--	 * We skip modules that tain the kernel, especially those with different
--	 * module header (for forced load), to make sure we don't cause a crash.
-+	 * We skip modules that taint the kernel, especially those with different
-+	 * module headers (for forced load), to make sure we don't cause a crash.
-+	 * Staging and out-of-tree GPL modules are fine.
- 	 */
--	if (mod->taints)
-+	if (mod->taints & ~((1 << TAINT_OOT_MODULE) | (1 << TAINT_CRAP)))
- 		return 0;
- 	mutex_lock(&tracepoints_mutex);
- 	tp_mod = kmalloc(sizeof(struct tp_module), GFP_KERNEL);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0113-x86-UV2-Fix-new-UV2-hardware-by-using-native-UV2-bro.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0113-x86-UV2-Fix-new-UV2-hardware-by-using-native-UV2-bro.patch
deleted file mode 100644
index aec3465..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0113-x86-UV2-Fix-new-UV2-hardware-by-using-native-UV2-bro.patch
+++ /dev/null
@@ -1,350 +0,0 @@
-From ebde7b91a72ac0cc014d021051f8a46a786dbb00 Mon Sep 17 00:00:00 2001
-From: Cliff Wickman <cpw at sgi.com>
-Date: Mon, 16 Jan 2012 15:17:50 -0600
-Subject: [PATCH 113/129] x86/UV2: Fix new UV2 hardware by using native UV2
- broadcast mode
-
-commit da87c937e5a2374686edd58df06cfd5050b125fa upstream.
-
-Update the use of the Broadcast Assist Unit on SGI Altix UV2 to
-the use of native UV2 mode on new hardware (not the legacy mode).
-
-UV2 native mode has a different format for a broadcast message.
-We also need quick differentiaton between UV1 and UV2.
-
-Signed-off-by: Cliff Wickman <cpw at sgi.com>
-Link: http://lkml.kernel.org/r/20120116211750.GA5767@sgi.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/include/asm/uv/uv_bau.h |   93 +++++++++++++++++++++++++++++++++++---
- arch/x86/platform/uv/tlb_uv.c    |   88 ++++++++++++++++++++++++++----------
- 2 files changed, 151 insertions(+), 30 deletions(-)
-
-diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
-index 8e862aa..4a46b27 100644
---- a/arch/x86/include/asm/uv/uv_bau.h
-+++ b/arch/x86/include/asm/uv/uv_bau.h
-@@ -65,7 +65,7 @@
-  * UV2: Bit 19 selects between
-  *  (0): 10 microsecond timebase and
-  *  (1): 80 microseconds
-- *  we're using 655us, similar to UV1: 65 units of 10us
-+ *  we're using 560us, similar to UV1: 65 units of 10us
-  */
- #define UV1_INTD_SOFT_ACK_TIMEOUT_PERIOD (9UL)
- #define UV2_INTD_SOFT_ACK_TIMEOUT_PERIOD (15UL)
-@@ -235,10 +235,10 @@ struct bau_msg_payload {
- 
- 
- /*
-- * Message header:  16 bytes (128 bits) (bytes 0x30-0x3f of descriptor)
-+ * UV1 Message header:  16 bytes (128 bits) (bytes 0x30-0x3f of descriptor)
-  * see table 4.2.3.0.1 in broacast_assist spec.
-  */
--struct bau_msg_header {
-+struct uv1_bau_msg_header {
- 	unsigned int	dest_subnodeid:6;	/* must be 0x10, for the LB */
- 	/* bits 5:0 */
- 	unsigned int	base_dest_nasid:15;	/* nasid of the first bit */
-@@ -318,19 +318,87 @@ struct bau_msg_header {
- };
- 
- /*
-+ * UV2 Message header:  16 bytes (128 bits) (bytes 0x30-0x3f of descriptor)
-+ * see figure 9-2 of harp_sys.pdf
-+ */
-+struct uv2_bau_msg_header {
-+	unsigned int	base_dest_nasid:15;	/* nasid of the first bit */
-+	/* bits 14:0 */				/* in uvhub map */
-+	unsigned int	dest_subnodeid:5;	/* must be 0x10, for the LB */
-+	/* bits 19:15 */
-+	unsigned int	rsvd_1:1;		/* must be zero */
-+	/* bit 20 */
-+	/* Address bits 59:21 */
-+	/* bits 25:2 of address (44:21) are payload */
-+	/* these next 24 bits become bytes 12-14 of msg */
-+	/* bits 28:21 land in byte 12 */
-+	unsigned int	replied_to:1;		/* sent as 0 by the source to
-+						   byte 12 */
-+	/* bit 21 */
-+	unsigned int	msg_type:3;		/* software type of the
-+						   message */
-+	/* bits 24:22 */
-+	unsigned int	canceled:1;		/* message canceled, resource
-+						   is to be freed*/
-+	/* bit 25 */
-+	unsigned int	payload_1:3;		/* not currently used */
-+	/* bits 28:26 */
-+
-+	/* bits 36:29 land in byte 13 */
-+	unsigned int	payload_2a:3;		/* not currently used */
-+	unsigned int	payload_2b:5;		/* not currently used */
-+	/* bits 36:29 */
-+
-+	/* bits 44:37 land in byte 14 */
-+	unsigned int	payload_3:8;		/* not currently used */
-+	/* bits 44:37 */
-+
-+	unsigned int	rsvd_2:7;		/* reserved */
-+	/* bits 51:45 */
-+	unsigned int	swack_flag:1;		/* software acknowledge flag */
-+	/* bit 52 */
-+	unsigned int	rsvd_3a:3;		/* must be zero */
-+	unsigned int	rsvd_3b:8;		/* must be zero */
-+	unsigned int	rsvd_3c:8;		/* must be zero */
-+	unsigned int	rsvd_3d:3;		/* must be zero */
-+	/* bits 74:53 */
-+	unsigned int	fairness:3;		/* usually zero */
-+	/* bits 77:75 */
-+
-+	unsigned int	sequence:16;		/* message sequence number */
-+	/* bits 93:78  Suppl_A  */
-+	unsigned int	chaining:1;		/* next descriptor is part of
-+						   this activation*/
-+	/* bit 94 */
-+	unsigned int	multilevel:1;		/* multi-level multicast
-+						   format */
-+	/* bit 95 */
-+	unsigned int	rsvd_4:24;		/* ordered / source node /
-+						   source subnode / aging
-+						   must be zero */
-+	/* bits 119:96 */
-+	unsigned int	command:8;		/* message type */
-+	/* bits 127:120 */
-+};
-+
-+/*
-  * The activation descriptor:
-  * The format of the message to send, plus all accompanying control
-  * Should be 64 bytes
-  */
- struct bau_desc {
--	struct pnmask			distribution;
-+	struct pnmask				distribution;
- 	/*
- 	 * message template, consisting of header and payload:
- 	 */
--	struct bau_msg_header		header;
--	struct bau_msg_payload		payload;
-+	union bau_msg_header {
-+		struct uv1_bau_msg_header	uv1_hdr;
-+		struct uv2_bau_msg_header	uv2_hdr;
-+	} header;
-+
-+	struct bau_msg_payload			payload;
- };
--/*
-+/* UV1:
-  *   -payload--    ---------header------
-  *   bytes 0-11    bits 41-56  bits 58-81
-  *       A           B  (2)      C (3)
-@@ -340,6 +408,16 @@ struct bau_desc {
-  *   bytes 0-11  bytes 12-14  bytes 16-17  (byte 15 filled in by hw as vector)
-  *   ------------payload queue-----------
-  */
-+/* UV2:
-+ *   -payload--    ---------header------
-+ *   bytes 0-11    bits 70-78  bits 21-44
-+ *       A           B  (2)      C (3)
-+ *
-+ *            A/B/C are moved to:
-+ *       A            C          B
-+ *   bytes 0-11  bytes 12-14  bytes 16-17  (byte 15 filled in by hw as vector)
-+ *   ------------payload queue-----------
-+ */
- 
- /*
-  * The payload queue on the destination side is an array of these.
-@@ -511,6 +589,7 @@ struct bau_control {
- 	short			osnode;
- 	short			uvhub_cpu;
- 	short			uvhub;
-+	short			uvhub_version;
- 	short			cpus_in_socket;
- 	short			cpus_in_uvhub;
- 	short			partition_base_pnode;
-diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
-index 5b55219..1341a2e 100644
---- a/arch/x86/platform/uv/tlb_uv.c
-+++ b/arch/x86/platform/uv/tlb_uv.c
-@@ -573,7 +573,7 @@ static int wait_completion(struct bau_desc *bau_desc,
- 		right_shift = ((cpu - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE);
- 	}
- 
--	if (is_uv1_hub())
-+	if (bcp->uvhub_version == 1)
- 		return uv1_wait_completion(bau_desc, mmr_offset, right_shift,
- 								bcp, try);
- 	else
-@@ -757,15 +757,22 @@ int uv_flush_send_and_wait(struct bau_desc *bau_desc,
- {
- 	int seq_number = 0;
- 	int completion_stat = 0;
-+	int uv1 = 0;
- 	long try = 0;
- 	unsigned long index;
- 	cycles_t time1;
- 	cycles_t time2;
- 	struct ptc_stats *stat = bcp->statp;
- 	struct bau_control *hmaster = bcp->uvhub_master;
-+	struct uv1_bau_msg_header *uv1_hdr = NULL;
-+	struct uv2_bau_msg_header *uv2_hdr = NULL;
- 
--	if (is_uv1_hub())
-+	if (bcp->uvhub_version == 1) {
-+		uv1 = 1;
- 		uv1_throttle(hmaster, stat);
-+		uv1_hdr = &bau_desc->header.uv1_hdr;
-+	} else
-+		uv2_hdr = &bau_desc->header.uv2_hdr;
- 
- 	while (hmaster->uvhub_quiesce)
- 		cpu_relax();
-@@ -773,14 +780,23 @@ int uv_flush_send_and_wait(struct bau_desc *bau_desc,
- 	time1 = get_cycles();
- 	do {
- 		if (try == 0) {
--			bau_desc->header.msg_type = MSG_REGULAR;
-+			if (uv1)
-+				uv1_hdr->msg_type = MSG_REGULAR;
-+			else
-+				uv2_hdr->msg_type = MSG_REGULAR;
- 			seq_number = bcp->message_number++;
- 		} else {
--			bau_desc->header.msg_type = MSG_RETRY;
-+			if (uv1)
-+				uv1_hdr->msg_type = MSG_RETRY;
-+			else
-+				uv2_hdr->msg_type = MSG_RETRY;
- 			stat->s_retry_messages++;
- 		}
- 
--		bau_desc->header.sequence = seq_number;
-+		if (uv1)
-+			uv1_hdr->sequence = seq_number;
-+		else
-+			uv2_hdr->sequence = seq_number;
- 		index = (1UL << AS_PUSH_SHIFT) | bcp->uvhub_cpu;
- 		bcp->send_message = get_cycles();
- 
-@@ -967,7 +983,7 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
- 		stat->s_ntargself++;
- 
- 	bau_desc = bcp->descriptor_base;
--	bau_desc += ITEMS_PER_DESC * bcp->uvhub_cpu;
-+	bau_desc += (ITEMS_PER_DESC * bcp->uvhub_cpu);
- 	bau_uvhubs_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE);
- 	if (set_distrib_bits(flush_mask, bcp, bau_desc, &locals, &remotes))
- 		return NULL;
-@@ -1083,7 +1099,7 @@ static void __init enable_timeouts(void)
- 		 */
- 		mmr_image |= (1L << SOFTACK_MSHIFT);
- 		if (is_uv2_hub()) {
--			mmr_image |= (1L << UV2_LEG_SHFT);
-+			mmr_image &= ~(1L << UV2_LEG_SHFT);
- 			mmr_image |= (1L << UV2_EXT_SHFT);
- 		}
- 		write_mmr_misc_control(pnode, mmr_image);
-@@ -1432,12 +1448,15 @@ static void activation_descriptor_init(int node, int pnode, int base_pnode)
- {
- 	int i;
- 	int cpu;
-+	int uv1 = 0;
- 	unsigned long gpa;
- 	unsigned long m;
- 	unsigned long n;
- 	size_t dsize;
- 	struct bau_desc *bau_desc;
- 	struct bau_desc *bd2;
-+	struct uv1_bau_msg_header *uv1_hdr;
-+	struct uv2_bau_msg_header *uv2_hdr;
- 	struct bau_control *bcp;
- 
- 	/*
-@@ -1451,6 +1470,8 @@ static void activation_descriptor_init(int node, int pnode, int base_pnode)
- 	gpa = uv_gpa(bau_desc);
- 	n = uv_gpa_to_gnode(gpa);
- 	m = uv_gpa_to_offset(gpa);
-+	if (is_uv1_hub())
-+		uv1 = 1;
- 
- 	/* the 14-bit pnode */
- 	write_mmr_descriptor_base(pnode, (n << UV_DESC_PSHIFT | m));
-@@ -1461,21 +1482,33 @@ static void activation_descriptor_init(int node, int pnode, int base_pnode)
- 	 */
- 	for (i = 0, bd2 = bau_desc; i < (ADP_SZ * ITEMS_PER_DESC); i++, bd2++) {
- 		memset(bd2, 0, sizeof(struct bau_desc));
--		bd2->header.swack_flag =	1;
--		/*
--		 * The base_dest_nasid set in the message header is the nasid
--		 * of the first uvhub in the partition. The bit map will
--		 * indicate destination pnode numbers relative to that base.
--		 * They may not be consecutive if nasid striding is being used.
--		 */
--		bd2->header.base_dest_nasid =	UV_PNODE_TO_NASID(base_pnode);
--		bd2->header.dest_subnodeid =	UV_LB_SUBNODEID;
--		bd2->header.command =		UV_NET_ENDPOINT_INTD;
--		bd2->header.int_both =		1;
--		/*
--		 * all others need to be set to zero:
--		 *   fairness chaining multilevel count replied_to
--		 */
-+		if (uv1) {
-+			uv1_hdr = &bd2->header.uv1_hdr;
-+			uv1_hdr->swack_flag =	1;
-+			/*
-+			 * The base_dest_nasid set in the message header
-+			 * is the nasid of the first uvhub in the partition.
-+			 * The bit map will indicate destination pnode numbers
-+			 * relative to that base. They may not be consecutive
-+			 * if nasid striding is being used.
-+			 */
-+			uv1_hdr->base_dest_nasid =
-+						UV_PNODE_TO_NASID(base_pnode);
-+			uv1_hdr->dest_subnodeid =	UV_LB_SUBNODEID;
-+			uv1_hdr->command =		UV_NET_ENDPOINT_INTD;
-+			uv1_hdr->int_both =		1;
-+			/*
-+			 * all others need to be set to zero:
-+			 *   fairness chaining multilevel count replied_to
-+			 */
-+		} else {
-+			uv2_hdr = &bd2->header.uv2_hdr;
-+			uv2_hdr->swack_flag =	1;
-+			uv2_hdr->base_dest_nasid =
-+						UV_PNODE_TO_NASID(base_pnode);
-+			uv2_hdr->dest_subnodeid =	UV_LB_SUBNODEID;
-+			uv2_hdr->command =		UV_NET_ENDPOINT_INTD;
-+		}
- 	}
- 	for_each_present_cpu(cpu) {
- 		if (pnode != uv_blade_to_pnode(uv_cpu_to_blade_id(cpu)))
-@@ -1728,6 +1761,14 @@ static int scan_sock(struct socket_desc *sdp, struct uvhub_desc *bdp,
- 		bcp->cpus_in_socket = sdp->num_cpus;
- 		bcp->socket_master = *smasterp;
- 		bcp->uvhub = bdp->uvhub;
-+		if (is_uv1_hub())
-+			bcp->uvhub_version = 1;
-+		else if (is_uv2_hub())
-+			bcp->uvhub_version = 2;
-+		else {
-+			printk(KERN_EMERG "uvhub version not 1 or 2\n");
-+			return 1;
-+		}
- 		bcp->uvhub_master = *hmasterp;
- 		bcp->uvhub_cpu = uv_cpu_hub_info(cpu)->blade_processor_id;
- 		if (bcp->uvhub_cpu >= MAX_CPUS_PER_UVHUB) {
-@@ -1867,7 +1908,8 @@ static int __init uv_bau_init(void)
- 			val = 1L << 63;
- 			write_gmmr_activation(pnode, val);
- 			mmr = 1; /* should be 1 to broadcast to both sockets */
--			write_mmr_data_broadcast(pnode, mmr);
-+			if (!is_uv1_hub())
-+				write_mmr_data_broadcast(pnode, mmr);
- 		}
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0114-x86-UV2-Fix-BAU-destination-timeout-initialization.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0114-x86-UV2-Fix-BAU-destination-timeout-initialization.patch
deleted file mode 100644
index 02118c9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0114-x86-UV2-Fix-BAU-destination-timeout-initialization.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From dcca45052472bcbd331d0451777cb947588e1dd5 Mon Sep 17 00:00:00 2001
-From: Cliff Wickman <cpw at sgi.com>
-Date: Mon, 16 Jan 2012 15:18:48 -0600
-Subject: [PATCH 114/129] x86/UV2: Fix BAU destination timeout initialization
-
-commit d059f9fa84a30e04279c6ff615e9e2cf3b260191 upstream.
-
-Move the call to enable_timeouts() forward so that
-BAU_MISC_CONTROL is initialized before using it in
-calculate_destination_timeout().
-
-Fix the calculation of a BAU destination timeout
-for UV2 (in calculate_destination_timeout()).
-
-Signed-off-by: Cliff Wickman <cpw at sgi.com>
-Link: http://lkml.kernel.org/r/20120116211848.GB5767@sgi.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/platform/uv/tlb_uv.c |   13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
-index 1341a2e..c425ff1 100644
---- a/arch/x86/platform/uv/tlb_uv.c
-+++ b/arch/x86/platform/uv/tlb_uv.c
-@@ -1617,14 +1617,14 @@ static int calculate_destination_timeout(void)
- 		ts_ns = base * mult1 * mult2;
- 		ret = ts_ns / 1000;
- 	} else {
--		/* 4 bits  0/1 for 10/80us, 3 bits of multiplier */
--		mmr_image = uv_read_local_mmr(UVH_AGING_PRESCALE_SEL);
-+		/* 4 bits  0/1 for 10/80us base, 3 bits of multiplier */
-+		mmr_image = uv_read_local_mmr(UVH_LB_BAU_MISC_CONTROL);
- 		mmr_image = (mmr_image & UV_SA_MASK) >> UV_SA_SHFT;
- 		if (mmr_image & (1L << UV2_ACK_UNITS_SHFT))
--			mult1 = 80;
-+			base = 80;
- 		else
--			mult1 = 10;
--		base = mmr_image & UV2_ACK_MASK;
-+			base = 10;
-+		mult1 = mmr_image & UV2_ACK_MASK;
- 		ret = mult1 * base;
- 	}
- 	return ret;
-@@ -1886,6 +1886,8 @@ static int __init uv_bau_init(void)
- 			uv_base_pnode = uv_blade_to_pnode(uvhub);
- 	}
- 
-+	enable_timeouts();
-+
- 	if (init_per_cpu(nuvhubs, uv_base_pnode)) {
- 		nobau = 1;
- 		return 0;
-@@ -1896,7 +1898,6 @@ static int __init uv_bau_init(void)
- 		if (uv_blade_nr_possible_cpus(uvhub))
- 			init_uvhub(uvhub, vector, uv_base_pnode);
- 
--	enable_timeouts();
- 	alloc_intr_gate(vector, uv_bau_message_intr1);
- 
- 	for_each_possible_blade(uvhub) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0115-x86-UV2-Work-around-BAU-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0115-x86-UV2-Work-around-BAU-bug.patch
deleted file mode 100644
index 11d610c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0115-x86-UV2-Work-around-BAU-bug.patch
+++ /dev/null
@@ -1,570 +0,0 @@
-From 3ebb4a034dca1cd312f42c9ff1ff47c873f211b6 Mon Sep 17 00:00:00 2001
-From: Cliff Wickman <cpw at sgi.com>
-Date: Mon, 16 Jan 2012 15:19:47 -0600
-Subject: [PATCH 115/129] x86/UV2: Work around BAU bug
-
-commit c5d35d399e685acccc85a675e8765c26b2a9813a upstream.
-
-This patch implements a workaround for a UV2 hardware bug.
-The bug is a non-atomic update of a memory-mapped register. When
-hardware message delivery and software message acknowledge occur
-simultaneously the pending message acknowledge for the arriving
-message may be lost.  This causes the sender's message status to
-stay busy.
-
-Part of the workaround is to not acknowledge a completed message
-until it is verified that no other message is actually using the
-resource that is mistakenly recorded in the completed message.
-
-Part of the workaround is to test for long elapsed time in such
-a busy condition, then handle it by using a spare sending
-descriptor. The stay-busy condition is eventually timed out by
-hardware, and then the original sending descriptor can be
-re-used. Most of that logic change is in keeping track of the
-current descriptor and the state of the spares.
-
-The occurrences of the workaround are added to the BAU
-statistics.
-
-Signed-off-by: Cliff Wickman <cpw at sgi.com>
-Link: http://lkml.kernel.org/r/20120116211947.GC5767@sgi.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/x86/include/asm/uv/uv_bau.h |   13 +-
- arch/x86/platform/uv/tlb_uv.c    |  274 +++++++++++++++++++++++++++++++++-----
- 2 files changed, 254 insertions(+), 33 deletions(-)
-
-diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
-index 4a46b27..1b82f7e 100644
---- a/arch/x86/include/asm/uv/uv_bau.h
-+++ b/arch/x86/include/asm/uv/uv_bau.h
-@@ -167,6 +167,7 @@
- #define FLUSH_RETRY_TIMEOUT		2
- #define FLUSH_GIVEUP			3
- #define FLUSH_COMPLETE			4
-+#define FLUSH_RETRY_BUSYBUG		5
- 
- /*
-  * tuning the action when the numalink network is extremely delayed
-@@ -463,7 +464,6 @@ struct bau_pq_entry {
- struct msg_desc {
- 	struct bau_pq_entry	*msg;
- 	int			msg_slot;
--	int			swack_slot;
- 	struct bau_pq_entry	*queue_first;
- 	struct bau_pq_entry	*queue_last;
- };
-@@ -517,6 +517,9 @@ struct ptc_stats {
- 	unsigned long	s_retry_messages;	/* retry broadcasts */
- 	unsigned long	s_bau_reenabled;	/* for bau enable/disable */
- 	unsigned long	s_bau_disabled;		/* for bau enable/disable */
-+	unsigned long	s_uv2_wars;		/* uv2 workaround, perm. busy */
-+	unsigned long	s_uv2_wars_hw;		/* uv2 workaround, hiwater */
-+	unsigned long	s_uv2_war_waits;	/* uv2 workaround, long waits */
- 	/* destination statistics */
- 	unsigned long	d_alltlb;		/* times all tlb's on this
- 						   cpu were flushed */
-@@ -593,6 +596,8 @@ struct bau_control {
- 	short			cpus_in_socket;
- 	short			cpus_in_uvhub;
- 	short			partition_base_pnode;
-+	short			using_desc; /* an index, like uvhub_cpu */
-+	unsigned int		inuse_map;
- 	unsigned short		message_number;
- 	unsigned short		uvhub_quiesce;
- 	short			socket_acknowledge_count[DEST_Q_SIZE];
-@@ -610,6 +615,7 @@ struct bau_control {
- 	int			cong_response_us;
- 	int			cong_reps;
- 	int			cong_period;
-+	unsigned long		clocks_per_100_usec;
- 	cycles_t		period_time;
- 	long			period_requests;
- 	struct hub_and_pnode	*thp;
-@@ -670,6 +676,11 @@ static inline void write_mmr_sw_ack(unsigned long mr)
- 	uv_write_local_mmr(UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS, mr);
- }
- 
-+static inline void write_gmmr_sw_ack(int pnode, unsigned long mr)
-+{
-+	write_gmmr(pnode, UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE_ALIAS, mr);
-+}
-+
- static inline unsigned long read_mmr_sw_ack(void)
- {
- 	return read_lmmr(UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE);
-diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
-index c425ff1..9010ca7 100644
---- a/arch/x86/platform/uv/tlb_uv.c
-+++ b/arch/x86/platform/uv/tlb_uv.c
-@@ -157,13 +157,14 @@ static int __init uvhub_to_first_apicid(int uvhub)
-  * clear of the Timeout bit (as well) will free the resource. No reply will
-  * be sent (the hardware will only do one reply per message).
-  */
--static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp)
-+static void reply_to_message(struct msg_desc *mdp, struct bau_control *bcp,
-+						int do_acknowledge)
- {
- 	unsigned long dw;
- 	struct bau_pq_entry *msg;
- 
- 	msg = mdp->msg;
--	if (!msg->canceled) {
-+	if (!msg->canceled && do_acknowledge) {
- 		dw = (msg->swack_vec << UV_SW_ACK_NPENDING) | msg->swack_vec;
- 		write_mmr_sw_ack(dw);
- 	}
-@@ -212,8 +213,8 @@ static void bau_process_retry_msg(struct msg_desc *mdp,
- 			if (mmr & (msg_res << UV_SW_ACK_NPENDING)) {
- 				unsigned long mr;
- 				/*
--				 * is the resource timed out?
--				 * make everyone ignore the cancelled message.
-+				 * Is the resource timed out?
-+				 * Make everyone ignore the cancelled message.
- 				 */
- 				msg2->canceled = 1;
- 				stat->d_canceled++;
-@@ -231,8 +232,8 @@ static void bau_process_retry_msg(struct msg_desc *mdp,
-  * Do all the things a cpu should do for a TLB shootdown message.
-  * Other cpu's may come here at the same time for this message.
-  */
--static void bau_process_message(struct msg_desc *mdp,
--					struct bau_control *bcp)
-+static void bau_process_message(struct msg_desc *mdp, struct bau_control *bcp,
-+						int do_acknowledge)
- {
- 	short socket_ack_count = 0;
- 	short *sp;
-@@ -284,8 +285,9 @@ static void bau_process_message(struct msg_desc *mdp,
- 		if (msg_ack_count == bcp->cpus_in_uvhub) {
- 			/*
- 			 * All cpus in uvhub saw it; reply
-+			 * (unless we are in the UV2 workaround)
- 			 */
--			reply_to_message(mdp, bcp);
-+			reply_to_message(mdp, bcp, do_acknowledge);
- 		}
- 	}
- 
-@@ -491,27 +493,138 @@ static int uv1_wait_completion(struct bau_desc *bau_desc,
- /*
-  * UV2 has an extra bit of status in the ACTIVATION_STATUS_2 register.
-  */
--static unsigned long uv2_read_status(unsigned long offset, int rshft, int cpu)
-+static unsigned long uv2_read_status(unsigned long offset, int rshft, int desc)
- {
- 	unsigned long descriptor_status;
- 	unsigned long descriptor_status2;
- 
- 	descriptor_status = ((read_lmmr(offset) >> rshft) & UV_ACT_STATUS_MASK);
--	descriptor_status2 = (read_mmr_uv2_status() >> cpu) & 0x1UL;
-+	descriptor_status2 = (read_mmr_uv2_status() >> desc) & 0x1UL;
- 	descriptor_status = (descriptor_status << 1) | descriptor_status2;
- 	return descriptor_status;
- }
- 
-+/*
-+ * Return whether the status of the descriptor that is normally used for this
-+ * cpu (the one indexed by its hub-relative cpu number) is busy.
-+ * The status of the original 32 descriptors is always reflected in the 64
-+ * bits of UVH_LB_BAU_SB_ACTIVATION_STATUS_0.
-+ * The bit provided by the activation_status_2 register is irrelevant to
-+ * the status if it is only being tested for busy or not busy.
-+ */
-+int normal_busy(struct bau_control *bcp)
-+{
-+	int cpu = bcp->uvhub_cpu;
-+	int mmr_offset;
-+	int right_shift;
-+
-+	mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_0;
-+	right_shift = cpu * UV_ACT_STATUS_SIZE;
-+	return (((((read_lmmr(mmr_offset) >> right_shift) &
-+				UV_ACT_STATUS_MASK)) << 1) == UV2H_DESC_BUSY);
-+}
-+
-+/*
-+ * Entered when a bau descriptor has gone into a permanent busy wait because
-+ * of a hardware bug.
-+ * Workaround the bug.
-+ */
-+int handle_uv2_busy(struct bau_control *bcp)
-+{
-+	int busy_one = bcp->using_desc;
-+	int normal = bcp->uvhub_cpu;
-+	int selected = -1;
-+	int i;
-+	unsigned long descriptor_status;
-+	unsigned long status;
-+	int mmr_offset;
-+	struct bau_desc *bau_desc_old;
-+	struct bau_desc *bau_desc_new;
-+	struct bau_control *hmaster = bcp->uvhub_master;
-+	struct ptc_stats *stat = bcp->statp;
-+	cycles_t ttm;
-+
-+	stat->s_uv2_wars++;
-+	spin_lock(&hmaster->uvhub_lock);
-+	/* try for the original first */
-+	if (busy_one != normal) {
-+		if (!normal_busy(bcp))
-+			selected = normal;
-+	}
-+	if (selected < 0) {
-+		/* can't use the normal, select an alternate */
-+		mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_1;
-+		descriptor_status = read_lmmr(mmr_offset);
-+
-+		/* scan available descriptors 32-63 */
-+		for (i = 0; i < UV_CPUS_PER_AS; i++) {
-+			if ((hmaster->inuse_map & (1 << i)) == 0) {
-+				status = ((descriptor_status >>
-+						(i * UV_ACT_STATUS_SIZE)) &
-+						UV_ACT_STATUS_MASK) << 1;
-+				if (status != UV2H_DESC_BUSY) {
-+					selected = i + UV_CPUS_PER_AS;
-+					break;
-+				}
-+			}
-+		}
-+	}
-+
-+	if (busy_one != normal)
-+		/* mark the busy alternate as not in-use */
-+		hmaster->inuse_map &= ~(1 << (busy_one - UV_CPUS_PER_AS));
-+
-+	if (selected >= 0) {
-+		/* switch to the selected descriptor */
-+		if (selected != normal) {
-+			/* set the selected alternate as in-use */
-+			hmaster->inuse_map |=
-+					(1 << (selected - UV_CPUS_PER_AS));
-+			if (selected > stat->s_uv2_wars_hw)
-+				stat->s_uv2_wars_hw = selected;
-+		}
-+		bau_desc_old = bcp->descriptor_base;
-+		bau_desc_old += (ITEMS_PER_DESC * busy_one);
-+		bcp->using_desc = selected;
-+		bau_desc_new = bcp->descriptor_base;
-+		bau_desc_new += (ITEMS_PER_DESC * selected);
-+		*bau_desc_new = *bau_desc_old;
-+	} else {
-+		/*
-+		 * All are busy. Wait for the normal one for this cpu to
-+		 * free up.
-+		 */
-+		stat->s_uv2_war_waits++;
-+		spin_unlock(&hmaster->uvhub_lock);
-+		ttm = get_cycles();
-+		do {
-+			cpu_relax();
-+		} while (normal_busy(bcp));
-+		spin_lock(&hmaster->uvhub_lock);
-+		/* switch to the original descriptor */
-+		bcp->using_desc = normal;
-+		bau_desc_old = bcp->descriptor_base;
-+		bau_desc_old += (ITEMS_PER_DESC * bcp->using_desc);
-+		bcp->using_desc = (ITEMS_PER_DESC * normal);
-+		bau_desc_new = bcp->descriptor_base;
-+		bau_desc_new += (ITEMS_PER_DESC * normal);
-+		*bau_desc_new = *bau_desc_old; /* copy the entire descriptor */
-+	}
-+	spin_unlock(&hmaster->uvhub_lock);
-+	return FLUSH_RETRY_BUSYBUG;
-+}
-+
- static int uv2_wait_completion(struct bau_desc *bau_desc,
- 				unsigned long mmr_offset, int right_shift,
- 				struct bau_control *bcp, long try)
- {
- 	unsigned long descriptor_stat;
- 	cycles_t ttm;
--	int cpu = bcp->uvhub_cpu;
-+	int desc = bcp->using_desc;
-+	long busy_reps = 0;
- 	struct ptc_stats *stat = bcp->statp;
- 
--	descriptor_stat = uv2_read_status(mmr_offset, right_shift, cpu);
-+	descriptor_stat = uv2_read_status(mmr_offset, right_shift, desc);
- 
- 	/* spin on the status MMR, waiting for it to go idle */
- 	while (descriptor_stat != UV2H_DESC_IDLE) {
-@@ -542,12 +655,23 @@ static int uv2_wait_completion(struct bau_desc *bau_desc,
- 			bcp->conseccompletes = 0;
- 			return FLUSH_RETRY_TIMEOUT;
- 		} else {
-+			busy_reps++;
-+			if (busy_reps > 1000000) {
-+				/* not to hammer on the clock */
-+				busy_reps = 0;
-+				ttm = get_cycles();
-+				if ((ttm - bcp->send_message) >
-+					(bcp->clocks_per_100_usec)) {
-+					return handle_uv2_busy(bcp);
-+				}
-+			}
- 			/*
- 			 * descriptor_stat is still BUSY
- 			 */
- 			cpu_relax();
- 		}
--		descriptor_stat = uv2_read_status(mmr_offset, right_shift, cpu);
-+		descriptor_stat = uv2_read_status(mmr_offset, right_shift,
-+									desc);
- 	}
- 	bcp->conseccompletes++;
- 	return FLUSH_COMPLETE;
-@@ -563,14 +687,14 @@ static int wait_completion(struct bau_desc *bau_desc,
- {
- 	int right_shift;
- 	unsigned long mmr_offset;
--	int cpu = bcp->uvhub_cpu;
-+	int desc = bcp->using_desc;
- 
--	if (cpu < UV_CPUS_PER_AS) {
-+	if (desc < UV_CPUS_PER_AS) {
- 		mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_0;
--		right_shift = cpu * UV_ACT_STATUS_SIZE;
-+		right_shift = desc * UV_ACT_STATUS_SIZE;
- 	} else {
- 		mmr_offset = UVH_LB_BAU_SB_ACTIVATION_STATUS_1;
--		right_shift = ((cpu - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE);
-+		right_shift = ((desc - UV_CPUS_PER_AS) * UV_ACT_STATUS_SIZE);
- 	}
- 
- 	if (bcp->uvhub_version == 1)
-@@ -752,8 +876,7 @@ static void handle_cmplt(int completion_status, struct bau_desc *bau_desc,
-  * Returns 1 if it gives up entirely and the original cpu mask is to be
-  * returned to the kernel.
-  */
--int uv_flush_send_and_wait(struct bau_desc *bau_desc,
--			struct cpumask *flush_mask, struct bau_control *bcp)
-+int uv_flush_send_and_wait(struct cpumask *flush_mask, struct bau_control *bcp)
- {
- 	int seq_number = 0;
- 	int completion_stat = 0;
-@@ -766,20 +889,24 @@ int uv_flush_send_and_wait(struct bau_desc *bau_desc,
- 	struct bau_control *hmaster = bcp->uvhub_master;
- 	struct uv1_bau_msg_header *uv1_hdr = NULL;
- 	struct uv2_bau_msg_header *uv2_hdr = NULL;
-+	struct bau_desc *bau_desc;
- 
--	if (bcp->uvhub_version == 1) {
--		uv1 = 1;
-+	if (bcp->uvhub_version == 1)
- 		uv1_throttle(hmaster, stat);
--		uv1_hdr = &bau_desc->header.uv1_hdr;
--	} else
--		uv2_hdr = &bau_desc->header.uv2_hdr;
- 
- 	while (hmaster->uvhub_quiesce)
- 		cpu_relax();
- 
- 	time1 = get_cycles();
- 	do {
--		if (try == 0) {
-+		bau_desc = bcp->descriptor_base;
-+		bau_desc += (ITEMS_PER_DESC * bcp->using_desc);
-+		if (bcp->uvhub_version == 1) {
-+			uv1 = 1;
-+			uv1_hdr = &bau_desc->header.uv1_hdr;
-+		} else
-+			uv2_hdr = &bau_desc->header.uv2_hdr;
-+		if ((try == 0) || (completion_stat == FLUSH_RETRY_BUSYBUG)) {
- 			if (uv1)
- 				uv1_hdr->msg_type = MSG_REGULAR;
- 			else
-@@ -797,13 +924,14 @@ int uv_flush_send_and_wait(struct bau_desc *bau_desc,
- 			uv1_hdr->sequence = seq_number;
- 		else
- 			uv2_hdr->sequence = seq_number;
--		index = (1UL << AS_PUSH_SHIFT) | bcp->uvhub_cpu;
-+		index = (1UL << AS_PUSH_SHIFT) | bcp->using_desc;
- 		bcp->send_message = get_cycles();
- 
- 		write_mmr_activation(index);
- 
- 		try++;
- 		completion_stat = wait_completion(bau_desc, bcp, try);
-+		/* UV2: wait_completion() may change the bcp->using_desc */
- 
- 		handle_cmplt(completion_stat, bau_desc, bcp, hmaster, stat);
- 
-@@ -814,6 +942,7 @@ int uv_flush_send_and_wait(struct bau_desc *bau_desc,
- 		}
- 		cpu_relax();
- 	} while ((completion_stat == FLUSH_RETRY_PLUGGED) ||
-+		 (completion_stat == FLUSH_RETRY_BUSYBUG) ||
- 		 (completion_stat == FLUSH_RETRY_TIMEOUT));
- 
- 	time2 = get_cycles();
-@@ -828,6 +957,7 @@ int uv_flush_send_and_wait(struct bau_desc *bau_desc,
- 	record_send_stats(time1, time2, bcp, stat, completion_stat, try);
- 
- 	if (completion_stat == FLUSH_GIVEUP)
-+		/* FLUSH_GIVEUP will fall back to using IPI's for tlb flush */
- 		return 1;
- 	return 0;
- }
-@@ -983,7 +1113,7 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
- 		stat->s_ntargself++;
- 
- 	bau_desc = bcp->descriptor_base;
--	bau_desc += (ITEMS_PER_DESC * bcp->uvhub_cpu);
-+	bau_desc += (ITEMS_PER_DESC * bcp->using_desc);
- 	bau_uvhubs_clear(&bau_desc->distribution, UV_DISTRIBUTION_SIZE);
- 	if (set_distrib_bits(flush_mask, bcp, bau_desc, &locals, &remotes))
- 		return NULL;
-@@ -996,13 +1126,86 @@ const struct cpumask *uv_flush_tlb_others(const struct cpumask *cpumask,
- 	 * uv_flush_send_and_wait returns 0 if all cpu's were messaged,
- 	 * or 1 if it gave up and the original cpumask should be returned.
- 	 */
--	if (!uv_flush_send_and_wait(bau_desc, flush_mask, bcp))
-+	if (!uv_flush_send_and_wait(flush_mask, bcp))
- 		return NULL;
- 	else
- 		return cpumask;
- }
- 
- /*
-+ * Search the message queue for any 'other' message with the same software
-+ * acknowledge resource bit vector.
-+ */
-+struct bau_pq_entry *find_another_by_swack(struct bau_pq_entry *msg,
-+			struct bau_control *bcp, unsigned char swack_vec)
-+{
-+	struct bau_pq_entry *msg_next = msg + 1;
-+
-+	if (msg_next > bcp->queue_last)
-+		msg_next = bcp->queue_first;
-+	while ((msg_next->swack_vec != 0) && (msg_next != msg)) {
-+		if (msg_next->swack_vec == swack_vec)
-+			return msg_next;
-+		msg_next++;
-+		if (msg_next > bcp->queue_last)
-+			msg_next = bcp->queue_first;
-+	}
-+	return NULL;
-+}
-+
-+/*
-+ * UV2 needs to work around a bug in which an arriving message has not
-+ * set a bit in the UVH_LB_BAU_INTD_SOFTWARE_ACKNOWLEDGE register.
-+ * Such a message must be ignored.
-+ */
-+void process_uv2_message(struct msg_desc *mdp, struct bau_control *bcp)
-+{
-+	unsigned long mmr_image;
-+	unsigned char swack_vec;
-+	struct bau_pq_entry *msg = mdp->msg;
-+	struct bau_pq_entry *other_msg;
-+
-+	mmr_image = read_mmr_sw_ack();
-+	swack_vec = msg->swack_vec;
-+
-+	if ((swack_vec & mmr_image) == 0) {
-+		/*
-+		 * This message was assigned a swack resource, but no
-+		 * reserved acknowlegment is pending.
-+		 * The bug has prevented this message from setting the MMR.
-+		 * And no other message has used the same sw_ack resource.
-+		 * Do the requested shootdown but do not reply to the msg.
-+		 * (the 0 means make no acknowledge)
-+		 */
-+		bau_process_message(mdp, bcp, 0);
-+		return;
-+	}
-+
-+	/*
-+	 * Some message has set the MMR 'pending' bit; it might have been
-+	 * another message.  Look for that message.
-+	 */
-+	other_msg = find_another_by_swack(msg, bcp, msg->swack_vec);
-+	if (other_msg) {
-+		/* There is another.  Do not ack the current one. */
-+		bau_process_message(mdp, bcp, 0);
-+		/*
-+		 * Let the natural processing of that message acknowledge
-+		 * it. Don't get the processing of sw_ack's out of order.
-+		 */
-+		return;
-+	}
-+
-+	/*
-+	 * There is no other message using this sw_ack, so it is safe to
-+	 * acknowledge it.
-+	 */
-+	bau_process_message(mdp, bcp, 1);
-+
-+	return;
-+}
-+
-+/*
-  * The BAU message interrupt comes here. (registered by set_intr_gate)
-  * See entry_64.S
-  *
-@@ -1038,9 +1241,11 @@ void uv_bau_message_interrupt(struct pt_regs *regs)
- 		count++;
- 
- 		msgdesc.msg_slot = msg - msgdesc.queue_first;
--		msgdesc.swack_slot = ffs(msg->swack_vec) - 1;
- 		msgdesc.msg = msg;
--		bau_process_message(&msgdesc, bcp);
-+		if (bcp->uvhub_version == 2)
-+			process_uv2_message(&msgdesc, bcp);
-+		else
-+			bau_process_message(&msgdesc, bcp, 1);
- 
- 		msg++;
- 		if (msg > msgdesc.queue_last)
-@@ -1158,7 +1363,7 @@ static int ptc_seq_show(struct seq_file *file, void *data)
- 		seq_printf(file,
- 			"all one mult none retry canc nocan reset rcan ");
- 		seq_printf(file,
--			"disable enable\n");
-+			"disable enable wars warshw warwaits\n");
- 	}
- 	if (cpu < num_possible_cpus() && cpu_online(cpu)) {
- 		stat = &per_cpu(ptcstats, cpu);
-@@ -1189,8 +1394,10 @@ static int ptc_seq_show(struct seq_file *file, void *data)
- 			   stat->d_nomsg, stat->d_retries, stat->d_canceled,
- 			   stat->d_nocanceled, stat->d_resets,
- 			   stat->d_rcanceled);
--		seq_printf(file, "%ld %ld\n",
--			stat->s_bau_disabled, stat->s_bau_reenabled);
-+		seq_printf(file, "%ld %ld %ld %ld %ld\n",
-+			stat->s_bau_disabled, stat->s_bau_reenabled,
-+			stat->s_uv2_wars, stat->s_uv2_wars_hw,
-+			stat->s_uv2_war_waits);
- 	}
- 	return 0;
- }
-@@ -1564,6 +1771,7 @@ static void pq_init(int node, int pnode)
- 	write_mmr_payload_first(pnode, pn_first);
- 	write_mmr_payload_tail(pnode, first);
- 	write_mmr_payload_last(pnode, last);
-+	write_gmmr_sw_ack(pnode, 0xffffUL);
- 
- 	/* in effect, all msg_type's are set to MSG_NOOP */
- 	memset(pqp, 0, sizeof(struct bau_pq_entry) * DEST_Q_SIZE);
-@@ -1651,6 +1859,7 @@ static void __init init_per_cpu_tunables(void)
- 		bcp->cong_response_us		= congested_respns_us;
- 		bcp->cong_reps			= congested_reps;
- 		bcp->cong_period		= congested_period;
-+		bcp->clocks_per_100_usec =	usec_2_cycles(100);
- 	}
- }
- 
-@@ -1771,6 +1980,7 @@ static int scan_sock(struct socket_desc *sdp, struct uvhub_desc *bdp,
- 		}
- 		bcp->uvhub_master = *hmasterp;
- 		bcp->uvhub_cpu = uv_cpu_hub_info(cpu)->blade_processor_id;
-+		bcp->using_desc = bcp->uvhub_cpu;
- 		if (bcp->uvhub_cpu >= MAX_CPUS_PER_UVHUB) {
- 			printk(KERN_EMERG "%d cpus per uvhub invalid\n",
- 				bcp->uvhub_cpu);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0116-ath9k_hw-fix-interpretation-of-the-rx-KeyMiss-flag.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0116-ath9k_hw-fix-interpretation-of-the-rx-KeyMiss-flag.patch
deleted file mode 100644
index 33c2028..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0116-ath9k_hw-fix-interpretation-of-the-rx-KeyMiss-flag.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 36fed113f3b66718282151fa962f644e793520f5 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Sat, 14 Jan 2012 15:08:34 +0100
-Subject: [PATCH 116/129] ath9k_hw: fix interpretation of the rx KeyMiss flag
-
-commit 7a532fe7131216a02c81a6c1b1f8632da1195a58 upstream.
-
-Documentation states that the KeyMiss flag is only valid if RxFrameOK is
-unset, however empirical evidence has shown that this is false.
-When KeyMiss is set (and RxFrameOK is 1), the hardware passes a valid frame
-which has not been decrypted. The driver then falsely marks the frame
-as decrypted, and when using CCMP this corrupts the rx CCMP PN, leading
-to connection hangs.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/ath/ath9k/ar9003_mac.c |    5 +++--
- drivers/net/wireless/ath/ath9k/mac.c        |    5 +++--
- 2 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/ar9003_mac.c b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
-index ccde784..f5ae3c6 100644
---- a/drivers/net/wireless/ath/ath9k/ar9003_mac.c
-+++ b/drivers/net/wireless/ath/ath9k/ar9003_mac.c
-@@ -526,10 +526,11 @@ int ath9k_hw_process_rxdesc_edma(struct ath_hw *ah, struct ath_rx_status *rxs,
- 			rxs->rs_status |= ATH9K_RXERR_DECRYPT;
- 		else if (rxsp->status11 & AR_MichaelErr)
- 			rxs->rs_status |= ATH9K_RXERR_MIC;
--		if (rxsp->status11 & AR_KeyMiss)
--			rxs->rs_status |= ATH9K_RXERR_KEYMISS;
- 	}
- 
-+	if (rxsp->status11 & AR_KeyMiss)
-+		rxs->rs_status |= ATH9K_RXERR_KEYMISS;
-+
- 	return 0;
- }
- EXPORT_SYMBOL(ath9k_hw_process_rxdesc_edma);
-diff --git a/drivers/net/wireless/ath/ath9k/mac.c b/drivers/net/wireless/ath/ath9k/mac.c
-index ecdb6fd..bbcb777 100644
---- a/drivers/net/wireless/ath/ath9k/mac.c
-+++ b/drivers/net/wireless/ath/ath9k/mac.c
-@@ -621,10 +621,11 @@ int ath9k_hw_rxprocdesc(struct ath_hw *ah, struct ath_desc *ds,
- 			rs->rs_status |= ATH9K_RXERR_DECRYPT;
- 		else if (ads.ds_rxstatus8 & AR_MichaelErr)
- 			rs->rs_status |= ATH9K_RXERR_MIC;
--		if (ads.ds_rxstatus8 & AR_KeyMiss)
--			rs->rs_status |= ATH9K_RXERR_KEYMISS;
- 	}
- 
-+	if (ads.ds_rxstatus8 & AR_KeyMiss)
-+		rs->rs_status |= ATH9K_RXERR_KEYMISS;
-+
- 	return 0;
- }
- EXPORT_SYMBOL(ath9k_hw_rxprocdesc);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0117-rt2800pci-fix-spurious-interrupts-generation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0117-rt2800pci-fix-spurious-interrupts-generation.patch
deleted file mode 100644
index 9fc97d7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0117-rt2800pci-fix-spurious-interrupts-generation.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From a84e0b6f2dfb09db9a5cb66bb913f619d8973a62 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Fri, 13 Jan 2012 12:59:32 +0100
-Subject: [PATCH 117/129] rt2800pci: fix spurious interrupts generation
-
-commit dfd00c4c8f3dfa1fd7cec45f83d98b2a49743dcd upstream.
-
-Same devices can generate interrupt without properly setting bit in
-INT_SOURCE_CSR register (spurious interrupt), what will cause IRQ line
-will be disabled by interrupts controller driver.
-
-We discovered that clearing INT_MASK_CSR stops such behaviour. We
-previously first read that register, and then clear all know interrupt
-sources bits and do not touch reserved bits. After this patch, we write
-to all register content (I believe writing to reserved bits on that
-register will not cause any problems, I tested that on my rt2800pci
-device).
-
-This fix very bad performance problem, practically making device
-unusable (since worked without interrupts), reported in:
-https://bugzilla.redhat.com/show_bug.cgi?id=658451
-
-We previously tried to workaround that issue in commit
-4ba7d9997869d25bd223dea7536fc1ce9fab3b3b "rt2800pci: handle spurious
-interrupts", but it was reverted in commit
-82e5fc2a34fa9ffea38f00c4066b7e600a0ca5e6
-as thing, that will prevent to detect real spurious interrupts.
-
-Reported-and-tested-by: Amir Hedayaty <hedayaty at gmail.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/rt2x00/rt2800pci.c |   28 ++++++++--------------------
- 1 file changed, 8 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800pci.c b/drivers/net/wireless/rt2x00/rt2800pci.c
-index da48c8a..837b460 100644
---- a/drivers/net/wireless/rt2x00/rt2800pci.c
-+++ b/drivers/net/wireless/rt2x00/rt2800pci.c
-@@ -422,7 +422,6 @@ static int rt2800pci_init_queues(struct rt2x00_dev *rt2x00dev)
- static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev,
- 				 enum dev_state state)
- {
--	int mask = (state == STATE_RADIO_IRQ_ON);
- 	u32 reg;
- 	unsigned long flags;
- 
-@@ -436,25 +435,14 @@ static void rt2800pci_toggle_irq(struct rt2x00_dev *rt2x00dev,
- 	}
- 
- 	spin_lock_irqsave(&rt2x00dev->irqmask_lock, flags);
--	rt2x00pci_register_read(rt2x00dev, INT_MASK_CSR, &reg);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_RXDELAYINT, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_TXDELAYINT, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_RX_DONE, mask);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_AC0_DMA_DONE, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_AC1_DMA_DONE, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_AC2_DMA_DONE, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_AC3_DMA_DONE, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_HCCA_DMA_DONE, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_MGMT_DMA_DONE, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_MCU_COMMAND, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_RXTX_COHERENT, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_TBTT, mask);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_PRE_TBTT, mask);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_TX_FIFO_STATUS, mask);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_AUTO_WAKEUP, mask);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_GPTIMER, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_RX_COHERENT, 0);
--	rt2x00_set_field32(&reg, INT_MASK_CSR_TX_COHERENT, 0);
-+	reg = 0;
-+	if (state == STATE_RADIO_IRQ_ON) {
-+		rt2x00_set_field32(&reg, INT_MASK_CSR_RX_DONE, 1);
-+		rt2x00_set_field32(&reg, INT_MASK_CSR_TBTT, 1);
-+		rt2x00_set_field32(&reg, INT_MASK_CSR_PRE_TBTT, 1);
-+		rt2x00_set_field32(&reg, INT_MASK_CSR_TX_FIFO_STATUS, 1);
-+		rt2x00_set_field32(&reg, INT_MASK_CSR_AUTO_WAKEUP, 1);
-+	}
- 	rt2x00pci_register_write(rt2x00dev, INT_MASK_CSR, reg);
- 	spin_unlock_irqrestore(&rt2x00dev->irqmask_lock, flags);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0118-xfs-fix-endian-conversion-issue-in-discard-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0118-xfs-fix-endian-conversion-issue-in-discard-code.patch
deleted file mode 100644
index 6a0feaa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0118-xfs-fix-endian-conversion-issue-in-discard-code.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1075b6106024e51af7a5108626091322d2e91710 Mon Sep 17 00:00:00 2001
-From: Dave Chinner <dchinner at redhat.com>
-Date: Wed, 18 Jan 2012 14:41:45 -0600
-Subject: [PATCH 118/129] xfs: fix endian conversion issue in discard code
-
-commit b1c770c273a4787069306fc82aab245e9ac72e9d upstream
-
-When finding the longest extent in an AG, we read the value directly
-out of the AGF buffer without endian conversion. This will give an
-incorrect length, resulting in FITRIM operations potentially not
-trimming everything that it should.
-
-Signed-off-by: Dave Chinner <dchinner at redhat.com>
-Reviewed-by: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Ben Myers <bpm at sgi.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/xfs/xfs_discard.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/xfs/xfs_discard.c b/fs/xfs/xfs_discard.c
-index 8a24f0c..286a051 100644
---- a/fs/xfs/xfs_discard.c
-+++ b/fs/xfs/xfs_discard.c
-@@ -68,7 +68,7 @@ xfs_trim_extents(
- 	 * Look up the longest btree in the AGF and start with it.
- 	 */
- 	error = xfs_alloc_lookup_le(cur, 0,
--				    XFS_BUF_TO_AGF(agbp)->agf_longest, &i);
-+			    be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_longest), &i);
- 	if (error)
- 		goto out_del_cursor;
- 
-@@ -84,7 +84,7 @@ xfs_trim_extents(
- 		if (error)
- 			goto out_del_cursor;
- 		XFS_WANT_CORRUPTED_GOTO(i == 1, out_del_cursor);
--		ASSERT(flen <= XFS_BUF_TO_AGF(agbp)->agf_longest);
-+		ASSERT(flen <= be32_to_cpu(XFS_BUF_TO_AGF(agbp)->agf_longest));
- 
- 		/*
- 		 * Too small?  Give up.
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0119-i2c-eg20t-modified-the-setting-of-transfer-rate.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0119-i2c-eg20t-modified-the-setting-of-transfer-rate.patch
deleted file mode 100644
index 1539167..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0119-i2c-eg20t-modified-the-setting-of-transfer-rate.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From d73358012ed5ac74a1f51fa250d221be5e3ca304 Mon Sep 17 00:00:00 2001
-From: Toshiharu Okada <toshiharu-linux at dsn.okisemi.com>
-Date: Mon, 26 Sep 2011 16:16:23 +0900
-Subject: [PATCH 119/129] i2c-eg20t: modified the setting of transfer rate.
-
-commit ff35e8b18984ad2a82cbd259fc07f0be4b34b1aa upstream.
-
-This patch modified the setting value of
-I2C Bus Transfer Rate Setting Counter regisrer.
-
-Signed-off-by: Toshiharu Okada <toshiharu-linux at dsn.okisemi.com>
-Signed-off-by: Ben Dooks <ben-linux at fluff.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/i2c/busses/i2c-eg20t.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/i2c/busses/i2c-eg20t.c b/drivers/i2c/busses/i2c-eg20t.c
-index 18936ac..730215e 100644
---- a/drivers/i2c/busses/i2c-eg20t.c
-+++ b/drivers/i2c/busses/i2c-eg20t.c
-@@ -243,7 +243,7 @@ static void pch_i2c_init(struct i2c_algo_pch_data *adap)
- 	if (pch_clk > PCH_MAX_CLK)
- 		pch_clk = 62500;
- 
--	pch_i2cbc = (pch_clk + (pch_i2c_speed * 4)) / pch_i2c_speed * 8;
-+	pch_i2cbc = (pch_clk + (pch_i2c_speed * 4)) / (pch_i2c_speed * 8);
- 	/* Set transfer speed in I2CBC */
- 	iowrite32(pch_i2cbc, p + PCH_I2CBC);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0120-score-fix-off-by-one-index-into-syscall-table.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0120-score-fix-off-by-one-index-into-syscall-table.patch
deleted file mode 100644
index 7926f22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0120-score-fix-off-by-one-index-into-syscall-table.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 9391ba8a34c0947af9b6c756387fc8bf70959648 Mon Sep 17 00:00:00 2001
-From: Dan Rosenberg <drosenberg at vsecurity.com>
-Date: Fri, 20 Jan 2012 14:34:27 -0800
-Subject: [PATCH 120/129] score: fix off-by-one index into syscall table
-
-commit c25a785d6647984505fa165b5cd84cfc9a95970b upstream.
-
-If the provided system call number is equal to __NR_syscalls, the
-current check will pass and a function pointer just after the system
-call table may be called, since sys_call_table is an array with total
-size __NR_syscalls.
-
-Whether or not this is a security bug depends on what the compiler puts
-immediately after the system call table.  It's likely that this won't do
-anything bad because there is an additional NULL check on the syscall
-entry, but if there happens to be a non-NULL value immediately after the
-system call table, this may result in local privilege escalation.
-
-Signed-off-by: Dan Rosenberg <drosenberg at vsecurity.com>
-Cc: Chen Liqin <liqin.chen at sunplusct.com>
-Cc: Lennox Wu <lennox.wu at gmail.com>
-Cc: Eugene Teo <eugeneteo at kernel.sg>
-Cc: Arnd Bergmann <arnd at arndb.de>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- arch/score/kernel/entry.S |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/score/kernel/entry.S b/arch/score/kernel/entry.S
-index 577abba..83bb960 100644
---- a/arch/score/kernel/entry.S
-+++ b/arch/score/kernel/entry.S
-@@ -408,7 +408,7 @@ ENTRY(handle_sys)
- 	sw	r9, [r0, PT_EPC]
- 
- 	cmpi.c	r27, __NR_syscalls 	# check syscall number
--	bgtu	illegal_syscall
-+	bgeu	illegal_syscall
- 
- 	slli	r8, r27, 2		# get syscall routine
- 	la	r11, sys_call_table
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0121-cifs-lower-default-wsize-when-unix-extensions-are-no.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0121-cifs-lower-default-wsize-when-unix-extensions-are-no.patch
deleted file mode 100644
index f857485..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0121-cifs-lower-default-wsize-when-unix-extensions-are-no.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 95b45505920a18fb705ad35e9144aaf94ea01421 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Tue, 17 Jan 2012 16:08:51 -0500
-Subject: [PATCH 121/129] cifs: lower default wsize when unix extensions are
- not used
-
-commit ce91acb3acae26f4163c5a6f1f695d1a1e8d9009 upstream.
-
-We've had some reports of servers (namely, the Solaris in-kernel CIFS
-server) that don't deal properly with writes that are "too large" even
-though they set CAP_LARGE_WRITE_ANDX. Change the default to better
-mirror what windows clients do.
-
-Cc: Pavel Shilovsky <piastry at etersoft.ru>
-Reported-by: Nick Davis <phireph0x at yahoo.com>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/cifs/connect.c |   23 +++++++++++++++++++----
- 1 file changed, 19 insertions(+), 4 deletions(-)
-
-diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
-index f3670cf..63e4be4 100644
---- a/fs/cifs/connect.c
-+++ b/fs/cifs/connect.c
-@@ -2914,18 +2914,33 @@ void cifs_setup_cifs_sb(struct smb_vol *pvolume_info,
- #define CIFS_DEFAULT_IOSIZE (1024 * 1024)
- 
- /*
-- * Windows only supports a max of 60k reads. Default to that when posix
-- * extensions aren't in force.
-+ * Windows only supports a max of 60kb reads and 65535 byte writes. Default to
-+ * those values when posix extensions aren't in force. In actuality here, we
-+ * use 65536 to allow for a write that is a multiple of 4k. Most servers seem
-+ * to be ok with the extra byte even though Windows doesn't send writes that
-+ * are that large.
-+ *
-+ * Citation:
-+ *
-+ * http://blogs.msdn.com/b/openspecification/archive/2009/04/10/smb-maximum-transmit-buffer-size-and-performance-tuning.aspx
-  */
- #define CIFS_DEFAULT_NON_POSIX_RSIZE (60 * 1024)
-+#define CIFS_DEFAULT_NON_POSIX_WSIZE (65536)
- 
- static unsigned int
- cifs_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *pvolume_info)
- {
- 	__u64 unix_cap = le64_to_cpu(tcon->fsUnixInfo.Capability);
- 	struct TCP_Server_Info *server = tcon->ses->server;
--	unsigned int wsize = pvolume_info->wsize ? pvolume_info->wsize :
--				CIFS_DEFAULT_IOSIZE;
-+	unsigned int wsize;
-+
-+	/* start with specified wsize, or default */
-+	if (pvolume_info->wsize)
-+		wsize = pvolume_info->wsize;
-+	else if (tcon->unix_ext && (unix_cap & CIFS_UNIX_LARGE_WRITE_CAP))
-+		wsize = CIFS_DEFAULT_IOSIZE;
-+	else
-+		wsize = CIFS_DEFAULT_NON_POSIX_WSIZE;
- 
- 	/* can server support 24-bit write sizes? (via UNIX extensions) */
- 	if (!tcon->unix_ext || !(unix_cap & CIFS_UNIX_LARGE_WRITE_CAP))
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0122-kprobes-initialize-before-using-a-hlist.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0122-kprobes-initialize-before-using-a-hlist.patch
deleted file mode 100644
index ff82995..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0122-kprobes-initialize-before-using-a-hlist.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From b15b8b5f7a9cfc20c2e68ba4a6a402ff44bb6c4a Mon Sep 17 00:00:00 2001
-From: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
-Date: Fri, 20 Jan 2012 14:34:04 -0800
-Subject: [PATCH 122/129] kprobes: initialize before using a hlist
-
-commit d496aab567e7e52b3e974c9192a5de6e77dce32c upstream.
-
-Commit ef53d9c5e ("kprobes: improve kretprobe scalability with hashed
-locking") introduced a bug where we can potentially leak
-kretprobe_instances since we initialize a hlist head after having used
-it.
-
-Initialize the hlist head before using it.
-
-Reported by: Jim Keniston <jkenisto at us.ibm.com>
-Acked-by: Jim Keniston <jkenisto at us.ibm.com>
-Signed-off-by: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
-Acked-by: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com>
-Cc: Srinivasa D S <srinivasa at in.ibm.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- kernel/kprobes.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/kernel/kprobes.c b/kernel/kprobes.c
-index e5d8464..52fd049 100644
---- a/kernel/kprobes.c
-+++ b/kernel/kprobes.c
-@@ -1077,6 +1077,7 @@ void __kprobes kprobe_flush_task(struct task_struct *tk)
- 		/* Early boot.  kretprobe_table_locks not yet initialized. */
- 		return;
- 
-+	INIT_HLIST_HEAD(&empty_rp);
- 	hash = hash_ptr(tk, KPROBE_HASH_BITS);
- 	head = &kretprobe_inst_table[hash];
- 	kretprobe_table_lock(hash, &flags);
-@@ -1085,7 +1086,6 @@ void __kprobes kprobe_flush_task(struct task_struct *tk)
- 			recycle_rp_inst(ri, &empty_rp);
- 	}
- 	kretprobe_table_unlock(hash, &flags);
--	INIT_HLIST_HEAD(&empty_rp);
- 	hlist_for_each_entry_safe(ri, node, tmp, &empty_rp, hlist) {
- 		hlist_del(&ri->hlist);
- 		kfree(ri);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0123-proc-clear_refs-do-not-clear-reserved-pages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0123-proc-clear_refs-do-not-clear-reserved-pages.patch
deleted file mode 100644
index 521c3d5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0123-proc-clear_refs-do-not-clear-reserved-pages.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 8077f2d3611dd0c75c64f018c7e01dc2a4948a27 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 20 Jan 2012 14:34:09 -0800
-Subject: [PATCH 123/129] proc: clear_refs: do not clear reserved pages
-
-commit 85e72aa5384b1a614563ad63257ded0e91d1a620 upstream.
-
-/proc/pid/clear_refs is used to clear the Referenced and YOUNG bits for
-pages and corresponding page table entries of the task with PID pid, which
-includes any special mappings inserted into the page tables in order to
-provide things like vDSOs and user helper functions.
-
-On ARM this causes a problem because the vectors page is mapped as a
-global mapping and since ec706dab ("ARM: add a vma entry for the user
-accessible vector page"), a VMA is also inserted into each task for this
-page to aid unwinding through signals and syscall restarts.  Since the
-vectors page is required for handling faults, clearing the YOUNG bit (and
-subsequently writing a faulting pte) means that we lose the vectors page
-*globally* and cannot fault it back in.  This results in a system deadlock
-on the next exception.
-
-To see this problem in action, just run:
-
-	$ echo 1 > /proc/self/clear_refs
-
-on an ARM platform (as any user) and watch your system hang.  I think this
-has been the case since 2.6.37
-
-This patch avoids clearing the aforementioned bits for reserved pages,
-therefore leaving the vectors page intact on ARM.  Since reserved pages
-are not candidates for swap, this change should not have any impact on the
-usefulness of clear_refs.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Reported-by: Moussa Ba <moussaba at micron.com>
-Acked-by: Hugh Dickins <hughd at google.com>
-Cc: David Rientjes <rientjes at google.com>
-Cc: Russell King <rmk at arm.linux.org.uk>
-Acked-by: Nicolas Pitre <nico at linaro.org>
-Cc: Matt Mackall <mpm at selenic.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- fs/proc/task_mmu.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/fs/proc/task_mmu.c b/fs/proc/task_mmu.c
-index e418c5a..7dcd2a2 100644
---- a/fs/proc/task_mmu.c
-+++ b/fs/proc/task_mmu.c
-@@ -518,6 +518,9 @@ static int clear_refs_pte_range(pmd_t *pmd, unsigned long addr,
- 		if (!page)
- 			continue;
- 
-+		if (PageReserved(page))
-+			continue;
-+
- 		/* Clear accessed and referenced bits. */
- 		ptep_test_and_clear_young(vma, addr, pte);
- 		ClearPageReferenced(page);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0124-mm-fix-NULL-ptr-dereference-in-__count_immobile_page.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0124-mm-fix-NULL-ptr-dereference-in-__count_immobile_page.patch
deleted file mode 100644
index 1d4d2f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0124-mm-fix-NULL-ptr-dereference-in-__count_immobile_page.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From e4131b26d39c1bf1f739fd09451ade0906252661 Mon Sep 17 00:00:00 2001
-From: Michal Hocko <mhocko at suse.cz>
-Date: Fri, 20 Jan 2012 14:33:55 -0800
-Subject: [PATCH 124/129] mm: fix NULL ptr dereference in
- __count_immobile_pages
-
-commit 687875fb7de4a95223af20ee024282fa9099f860 upstream.
-
-Fix the following NULL ptr dereference caused by
-
-  cat /sys/devices/system/memory/memory0/removable
-
-Pid: 13979, comm: sed Not tainted 3.0.13-0.5-default #1 IBM BladeCenter LS21 -[7971PAM]-/Server Blade
-RIP: __count_immobile_pages+0x4/0x100
-Process sed (pid: 13979, threadinfo ffff880221c36000, task ffff88022e788480)
-Call Trace:
-  is_pageblock_removable_nolock+0x34/0x40
-  is_mem_section_removable+0x74/0xf0
-  show_mem_removable+0x41/0x70
-  sysfs_read_file+0xfe/0x1c0
-  vfs_read+0xc7/0x130
-  sys_read+0x53/0xa0
-  system_call_fastpath+0x16/0x1b
-
-We are crashing because we are trying to dereference NULL zone which
-came from pfn=0 (struct page ffffea0000000000). According to the boot
-log this page is marked reserved:
-e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
-
-and early_node_map confirms that:
-early_node_map[3] active PFN ranges
-    1: 0x00000010 -> 0x0000009c
-    1: 0x00000100 -> 0x000bffa3
-    1: 0x00100000 -> 0x00240000
-
-The problem is that memory_present works in PAGE_SECTION_MASK aligned
-blocks so the reserved range sneaks into the the section as well.  This
-also means that free_area_init_node will not take care of those reserved
-pages and they stay uninitialized.
-
-When we try to read the removable status we walk through all available
-sections and hope that the zone is valid for all pages in the section.
-But this is not true in this case as the zone and nid are not initialized.
-
-We have only one node in this particular case and it is marked as node=1
-(rather than 0) and that made the problem visible because page_to_nid will
-return 0 and there are no zones on the node.
-
-Let's check that the zone is valid and that the given pfn falls into its
-boundaries and mark the section not removable.  This might cause some
-false positives, probably, but we do not have any sane way to find out
-whether the page is reserved by the platform or it is just not used for
-whatever other reasons.
-
-Signed-off-by: Michal Hocko <mhocko at suse.cz>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: David Rientjes <rientjes at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- mm/page_alloc.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 2b8ba3a..485be89 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -5608,6 +5608,17 @@ __count_immobile_pages(struct zone *zone, struct page *page, int count)
- bool is_pageblock_removable_nolock(struct page *page)
- {
- 	struct zone *zone = page_zone(page);
-+	unsigned long pfn = page_to_pfn(page);
-+
-+	/*
-+	 * We have to be careful here because we are iterating over memory
-+	 * sections which are not zone aware so we might end up outside of
-+	 * the zone but still within the section.
-+	 */
-+	if (!zone || zone->zone_start_pfn > pfn ||
-+			zone->zone_start_pfn + zone->spanned_pages <= pfn)
-+		return false;
-+
- 	return __count_immobile_pages(zone, page, 0);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0125-iwlagn-check-for-SMPS-mode.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0125-iwlagn-check-for-SMPS-mode.patch
deleted file mode 100644
index b0cda03..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0125-iwlagn-check-for-SMPS-mode.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 70fd986c5b5171460831de5af79b0d62af90411f Mon Sep 17 00:00:00 2001
-From: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Date: Thu, 10 Nov 2011 06:55:04 -0800
-Subject: [PATCH 125/129] iwlagn: check for SMPS mode
-
-commit b2ccccdca46273c7b321ecf5041c362cd950da20 upstream.
-
-Check and report WARN only when its invalid
-
-Resolves:
-https://bugzilla.kernel.org/show_bug.cgi?id=42621
-https://bugzilla.redhat.com/show_bug.cgi?id=766071
-
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/iwlwifi/iwl-agn-lib.c  |    1 +
- drivers/net/wireless/iwlwifi/iwl-agn-rxon.c |    3 +++
- 2 files changed, 4 insertions(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
-index 1a52ed2..6465983 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-lib.c
-@@ -827,6 +827,7 @@ static int iwl_get_idle_rx_chain_count(struct iwl_priv *priv, int active_cnt)
- 	case IEEE80211_SMPS_STATIC:
- 	case IEEE80211_SMPS_DYNAMIC:
- 		return IWL_NUM_IDLE_CHAINS_SINGLE;
-+	case IEEE80211_SMPS_AUTOMATIC:
- 	case IEEE80211_SMPS_OFF:
- 		return active_cnt;
- 	default:
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-index 5c7c17c..d552fa3 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rxon.c
-@@ -559,6 +559,9 @@ int iwlagn_mac_config(struct ieee80211_hw *hw, u32 changed)
- 
- 	mutex_lock(&priv->shrd->mutex);
- 
-+	if (test_bit(STATUS_EXIT_PENDING, &priv->shrd->status))
-+		goto out;
-+
- 	if (unlikely(test_bit(STATUS_SCANNING, &priv->shrd->status))) {
- 		IWL_DEBUG_MAC80211(priv, "leave - scanning\n");
- 		goto out;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch
deleted file mode 100644
index b00ae5c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 2daa9185b2ac519603743cbc902f00633947e878 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Fri, 23 Dec 2011 08:13:50 +0100
-Subject: [PATCH 126/129] iwlegacy: 3945: fix hw passive scan on radar
- channels
-
-commit 68acc4afb040d98ddfd2cae0de09e2f4e1ee127f upstream.
-
-Patch fix firmware error on "iw dev wlan0 scan passive" for
-hardware scanning (with disable_hw_scan=0 module parameter).
-
- iwl3945 0000:03:00.0: Microcode SW error detected. Restarting 0x82000008.
- iwl3945 0000:03:00.0: Loaded firmware version: 15.32.2.9
- iwl3945 0000:03:00.0: Start IWL Error Log Dump:
- iwl3945 0000:03:00.0: Status: 0x0002A2E4, count: 1
- iwl3945 0000:03:00.0: Desc       Time       asrtPC blink2 ilink1  nmiPC   Line
- iwl3945 0000:03:00.0: SYSASSERT     (0x5) 0041263900 0x13756 0x0031C 0x00000 764
- iwl3945 0000:03:00.0: Error Reply type 0x000002FC cmd C_SCAN (0x80) seq 0x443E ser 0x00340000
- iwl3945 0000:03:00.0: Command C_SCAN failed: FW Error
- iwl3945 0000:03:00.0: Can't stop Rx DMA.
-
-We have disable ability to change passive scanning to active on
-particular channel when traffic is detected on that channel. Otherwise
-firmware will report error, when we try to do passive scan on radar
-channels.
-
-Reported-and-debugged-by: Pedro Francisco <pedrogfrancisco at gmail.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/iwlegacy/iwl3945-base.c |    9 ++++-----
- 1 file changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlegacy/iwl3945-base.c b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-index b282d86..05f2ad1 100644
---- a/drivers/net/wireless/iwlegacy/iwl3945-base.c
-+++ b/drivers/net/wireless/iwlegacy/iwl3945-base.c
-@@ -2656,14 +2656,13 @@ int iwl3945_request_scan(struct iwl_priv *priv, struct ieee80211_vif *vif)
- 		IWL_WARN(priv, "Invalid scan band\n");
- 		return -EIO;
- 	}
--
- 	/*
--	 * If active scaning is requested but a certain channel
--	 * is marked passive, we can do active scanning if we
--	 * detect transmissions.
-+	 * If active scaning is requested but a certain channel is marked
-+	 * passive, we can do active scanning if we detect transmissions. For
-+	 * passive only scanning disable switching to active on any channel.
- 	 */
- 	scan->good_CRC_th = is_active ? IWL_GOOD_CRC_TH_DEFAULT :
--					IWL_GOOD_CRC_TH_DISABLED;
-+					IWL_GOOD_CRC_TH_NEVER;
- 
- 	len = iwl_legacy_fill_probe_req(priv, (struct ieee80211_mgmt *)scan->data,
- 					vif->addr, priv->scan_request->ie,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0127-SHM_UNLOCK-fix-long-unpreemptible-section.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0127-SHM_UNLOCK-fix-long-unpreemptible-section.patch
deleted file mode 100644
index dfab752..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0127-SHM_UNLOCK-fix-long-unpreemptible-section.patch
+++ /dev/null
@@ -1,186 +0,0 @@
-From e74be920e142da39a0824238a5031649fbec2890 Mon Sep 17 00:00:00 2001
-From: Hugh Dickins <hughd at google.com>
-Date: Fri, 20 Jan 2012 14:34:19 -0800
-Subject: [PATCH 127/129] SHM_UNLOCK: fix long unpreemptible section
-
-commit 85046579bde15e532983438f86b36856e358f417 upstream.
-
-scan_mapping_unevictable_pages() is used to make SysV SHM_LOCKed pages
-evictable again once the shared memory is unlocked.  It does this with
-pagevec_lookup()s across the whole object (which might occupy most of
-memory), and takes 300ms to unlock 7GB here.  A cond_resched() every
-PAGEVEC_SIZE pages would be good.
-
-However, KOSAKI-san points out that this is called under shmem.c's
-info->lock, and it's also under shm.c's shm_lock(), both spinlocks.
-There is no strong reason for that: we need to take these pages off the
-unevictable list soonish, but those locks are not required for it.
-
-So move the call to scan_mapping_unevictable_pages() from shmem.c's
-unlock handling up to shm.c's unlock handling.  Remove the recently
-added barrier, not needed now we have spin_unlock() before the scan.
-
-Use get_file(), with subsequent fput(), to make sure we have a reference
-to mapping throughout scan_mapping_unevictable_pages(): that's something
-that was previously guaranteed by the shm_lock().
-
-Remove shmctl's lru_add_drain_all(): we don't fault in pages at SHM_LOCK
-time, and we lazily discover them to be Unevictable later, so it serves
-no purpose for SHM_LOCK; and serves no purpose for SHM_UNLOCK, since
-pages still on pagevec are not marked Unevictable.
-
-The original code avoided redundant rescans by checking VM_LOCKED flag
-at its level: now avoid them by checking shp's SHM_LOCKED.
-
-The original code called scan_mapping_unevictable_pages() on a locked
-area at shm_destroy() time: perhaps we once had accounting cross-checks
-which required that, but not now, so skip the overhead and just let
-inode eviction deal with them.
-
-Put check_move_unevictable_page() and scan_mapping_unevictable_pages()
-under CONFIG_SHMEM (with stub for the TINY case when ramfs is used),
-more as comment than to save space; comment them used for SHM_UNLOCK.
-
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Reviewed-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Rik van Riel <riel at redhat.com>
-Cc: Shaohua Li <shaohua.li at intel.com>
-Cc: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Michel Lespinasse <walken at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- ipc/shm.c   |   37 ++++++++++++++++++++++---------------
- mm/shmem.c  |    7 -------
- mm/vmscan.c |   12 +++++++++++-
- 3 files changed, 33 insertions(+), 23 deletions(-)
-
-diff --git a/ipc/shm.c b/ipc/shm.c
-index 02ecf2c..854ab58 100644
---- a/ipc/shm.c
-+++ b/ipc/shm.c
-@@ -870,9 +870,7 @@ SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
- 	case SHM_LOCK:
- 	case SHM_UNLOCK:
- 	{
--		struct file *uninitialized_var(shm_file);
--
--		lru_add_drain_all();  /* drain pagevecs to lru lists */
-+		struct file *shm_file;
- 
- 		shp = shm_lock_check(ns, shmid);
- 		if (IS_ERR(shp)) {
-@@ -895,22 +893,31 @@ SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
- 		err = security_shm_shmctl(shp, cmd);
- 		if (err)
- 			goto out_unlock;
--		
--		if(cmd==SHM_LOCK) {
-+
-+		shm_file = shp->shm_file;
-+		if (is_file_hugepages(shm_file))
-+			goto out_unlock;
-+
-+		if (cmd == SHM_LOCK) {
- 			struct user_struct *user = current_user();
--			if (!is_file_hugepages(shp->shm_file)) {
--				err = shmem_lock(shp->shm_file, 1, user);
--				if (!err && !(shp->shm_perm.mode & SHM_LOCKED)){
--					shp->shm_perm.mode |= SHM_LOCKED;
--					shp->mlock_user = user;
--				}
-+			err = shmem_lock(shm_file, 1, user);
-+			if (!err && !(shp->shm_perm.mode & SHM_LOCKED)) {
-+				shp->shm_perm.mode |= SHM_LOCKED;
-+				shp->mlock_user = user;
- 			}
--		} else if (!is_file_hugepages(shp->shm_file)) {
--			shmem_lock(shp->shm_file, 0, shp->mlock_user);
--			shp->shm_perm.mode &= ~SHM_LOCKED;
--			shp->mlock_user = NULL;
-+			goto out_unlock;
- 		}
-+
-+		/* SHM_UNLOCK */
-+		if (!(shp->shm_perm.mode & SHM_LOCKED))
-+			goto out_unlock;
-+		shmem_lock(shm_file, 0, shp->mlock_user);
-+		shp->shm_perm.mode &= ~SHM_LOCKED;
-+		shp->mlock_user = NULL;
-+		get_file(shm_file);
- 		shm_unlock(shp);
-+		scan_mapping_unevictable_pages(shm_file->f_mapping);
-+		fput(shm_file);
- 		goto out;
- 	}
- 	case IPC_RMID:
-diff --git a/mm/shmem.c b/mm/shmem.c
-index d6722506..cc6d40b2 100644
---- a/mm/shmem.c
-+++ b/mm/shmem.c
-@@ -1068,13 +1068,6 @@ int shmem_lock(struct file *file, int lock, struct user_struct *user)
- 		user_shm_unlock(inode->i_size, user);
- 		info->flags &= ~VM_LOCKED;
- 		mapping_clear_unevictable(file->f_mapping);
--		/*
--		 * Ensure that a racing putback_lru_page() can see
--		 * the pages of this mapping are evictable when we
--		 * skip them due to !PageLRU during the scan.
--		 */
--		smp_mb__after_clear_bit();
--		scan_mapping_unevictable_pages(file->f_mapping);
- 	}
- 	retval = 0;
- 
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index f54a05b..824676a 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -3353,6 +3353,7 @@ int page_evictable(struct page *page, struct vm_area_struct *vma)
- 	return 1;
- }
- 
-+#ifdef CONFIG_SHMEM
- /**
-  * check_move_unevictable_page - check page for evictability and move to appropriate zone lru list
-  * @page: page to check evictability and move to appropriate lru list
-@@ -3363,6 +3364,8 @@ int page_evictable(struct page *page, struct vm_area_struct *vma)
-  *
-  * Restrictions: zone->lru_lock must be held, page must be on LRU and must
-  * have PageUnevictable set.
-+ *
-+ * This function is only used for SysV IPC SHM_UNLOCK.
-  */
- static void check_move_unevictable_page(struct page *page, struct zone *zone)
- {
-@@ -3396,6 +3399,8 @@ retry:
-  *
-  * Scan all pages in mapping.  Check unevictable pages for
-  * evictability and move them to the appropriate zone lru list.
-+ *
-+ * This function is only used for SysV IPC SHM_UNLOCK.
-  */
- void scan_mapping_unevictable_pages(struct address_space *mapping)
- {
-@@ -3441,9 +3446,14 @@ void scan_mapping_unevictable_pages(struct address_space *mapping)
- 		pagevec_release(&pvec);
- 
- 		count_vm_events(UNEVICTABLE_PGSCANNED, pg_scanned);
-+		cond_resched();
- 	}
--
- }
-+#else
-+void scan_mapping_unevictable_pages(struct address_space *mapping)
-+{
-+}
-+#endif /* CONFIG_SHMEM */
- 
- static void warn_scan_unevictable_pages(void)
- {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0128-SHM_UNLOCK-fix-Unevictable-pages-stranded-after-swap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0128-SHM_UNLOCK-fix-Unevictable-pages-stranded-after-swap.patch
deleted file mode 100644
index 70d0fee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0128-SHM_UNLOCK-fix-Unevictable-pages-stranded-after-swap.patch
+++ /dev/null
@@ -1,342 +0,0 @@
-From 67890984571f0de5f3d975ef1d67643d89d92174 Mon Sep 17 00:00:00 2001
-From: Hugh Dickins <hughd at google.com>
-Date: Fri, 20 Jan 2012 14:34:21 -0800
-Subject: [PATCH 128/129] SHM_UNLOCK: fix Unevictable pages stranded after
- swap
-
-commit 245132643e1cfcd145bbc86a716c1818371fcb93 upstream.
-
-Commit cc39c6a9bbde ("mm: account skipped entries to avoid looping in
-find_get_pages") correctly fixed an infinite loop; but left a problem
-that find_get_pages() on shmem would return 0 (appearing to callers to
-mean end of tree) when it meets a run of nr_pages swap entries.
-
-The only uses of find_get_pages() on shmem are via pagevec_lookup(),
-called from invalidate_mapping_pages(), and from shmctl SHM_UNLOCK's
-scan_mapping_unevictable_pages().  The first is already commented, and
-not worth worrying about; but the second can leave pages on the
-Unevictable list after an unusual sequence of swapping and locking.
-
-Fix that by using shmem_find_get_pages_and_swap() (then ignoring the
-swap) instead of pagevec_lookup().
-
-But I don't want to contaminate vmscan.c with shmem internals, nor
-shmem.c with LRU locking.  So move scan_mapping_unevictable_pages() into
-shmem.c, renaming it shmem_unlock_mapping(); and rename
-check_move_unevictable_page() to check_move_unevictable_pages(), looping
-down an array of pages, oftentimes under the same lock.
-
-Leave out the "rotate unevictable list" block: that's a leftover from
-when this was used for /proc/sys/vm/scan_unevictable_pages, whose flawed
-handling involved looking at pages at tail of LRU.
-
-Was there significance to the sequence first ClearPageUnevictable, then
-test page_evictable, then SetPageUnevictable here? I think not, we're
-under LRU lock, and have no barriers between those.
-
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Reviewed-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Rik van Riel <riel at redhat.com>
-Cc: Shaohua Li <shaohua.li at intel.com>
-Cc: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Michel Lespinasse <walken at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- include/linux/shmem_fs.h |    1 +
- include/linux/swap.h     |    2 +-
- ipc/shm.c                |    2 +-
- mm/shmem.c               |   46 +++++++++++++++--
- mm/vmscan.c              |  122 ++++++++++++++--------------------------------
- 5 files changed, 81 insertions(+), 92 deletions(-)
-
-diff --git a/include/linux/shmem_fs.h b/include/linux/shmem_fs.h
-index 9291ac3..6f10c9c 100644
---- a/include/linux/shmem_fs.h
-+++ b/include/linux/shmem_fs.h
-@@ -48,6 +48,7 @@ extern struct file *shmem_file_setup(const char *name,
- 					loff_t size, unsigned long flags);
- extern int shmem_zero_setup(struct vm_area_struct *);
- extern int shmem_lock(struct file *file, int lock, struct user_struct *user);
-+extern void shmem_unlock_mapping(struct address_space *mapping);
- extern struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
- 					pgoff_t index, gfp_t gfp_mask);
- extern void shmem_truncate_range(struct inode *inode, loff_t start, loff_t end);
-diff --git a/include/linux/swap.h b/include/linux/swap.h
-index 1e22e12..67b3fa3 100644
---- a/include/linux/swap.h
-+++ b/include/linux/swap.h
-@@ -272,7 +272,7 @@ static inline int zone_reclaim(struct zone *z, gfp_t mask, unsigned int order)
- #endif
- 
- extern int page_evictable(struct page *page, struct vm_area_struct *vma);
--extern void scan_mapping_unevictable_pages(struct address_space *);
-+extern void check_move_unevictable_pages(struct page **, int nr_pages);
- 
- extern unsigned long scan_unevictable_pages;
- extern int scan_unevictable_handler(struct ctl_table *, int,
-diff --git a/ipc/shm.c b/ipc/shm.c
-index 854ab58..b76be5b 100644
---- a/ipc/shm.c
-+++ b/ipc/shm.c
-@@ -916,7 +916,7 @@ SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
- 		shp->mlock_user = NULL;
- 		get_file(shm_file);
- 		shm_unlock(shp);
--		scan_mapping_unevictable_pages(shm_file->f_mapping);
-+		shmem_unlock_mapping(shm_file->f_mapping);
- 		fput(shm_file);
- 		goto out;
- 	}
-diff --git a/mm/shmem.c b/mm/shmem.c
-index cc6d40b2..6c253f7 100644
---- a/mm/shmem.c
-+++ b/mm/shmem.c
-@@ -379,7 +379,7 @@ static int shmem_free_swap(struct address_space *mapping,
- /*
-  * Pagevec may contain swap entries, so shuffle up pages before releasing.
-  */
--static void shmem_pagevec_release(struct pagevec *pvec)
-+static void shmem_deswap_pagevec(struct pagevec *pvec)
- {
- 	int i, j;
- 
-@@ -389,7 +389,36 @@ static void shmem_pagevec_release(struct pagevec *pvec)
- 			pvec->pages[j++] = page;
- 	}
- 	pvec->nr = j;
--	pagevec_release(pvec);
-+}
-+
-+/*
-+ * SysV IPC SHM_UNLOCK restore Unevictable pages to their evictable lists.
-+ */
-+void shmem_unlock_mapping(struct address_space *mapping)
-+{
-+	struct pagevec pvec;
-+	pgoff_t indices[PAGEVEC_SIZE];
-+	pgoff_t index = 0;
-+
-+	pagevec_init(&pvec, 0);
-+	/*
-+	 * Minor point, but we might as well stop if someone else SHM_LOCKs it.
-+	 */
-+	while (!mapping_unevictable(mapping)) {
-+		/*
-+		 * Avoid pagevec_lookup(): find_get_pages() returns 0 as if it
-+		 * has finished, if it hits a row of PAGEVEC_SIZE swap entries.
-+		 */
-+		pvec.nr = shmem_find_get_pages_and_swap(mapping, index,
-+					PAGEVEC_SIZE, pvec.pages, indices);
-+		if (!pvec.nr)
-+			break;
-+		index = indices[pvec.nr - 1] + 1;
-+		shmem_deswap_pagevec(&pvec);
-+		check_move_unevictable_pages(pvec.pages, pvec.nr);
-+		pagevec_release(&pvec);
-+		cond_resched();
-+	}
- }
- 
- /*
-@@ -440,7 +469,8 @@ void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
- 			}
- 			unlock_page(page);
- 		}
--		shmem_pagevec_release(&pvec);
-+		shmem_deswap_pagevec(&pvec);
-+		pagevec_release(&pvec);
- 		mem_cgroup_uncharge_end();
- 		cond_resched();
- 		index++;
-@@ -470,7 +500,8 @@ void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
- 			continue;
- 		}
- 		if (index == start && indices[0] > end) {
--			shmem_pagevec_release(&pvec);
-+			shmem_deswap_pagevec(&pvec);
-+			pagevec_release(&pvec);
- 			break;
- 		}
- 		mem_cgroup_uncharge_start();
-@@ -494,7 +525,8 @@ void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
- 			}
- 			unlock_page(page);
- 		}
--		shmem_pagevec_release(&pvec);
-+		shmem_deswap_pagevec(&pvec);
-+		pagevec_release(&pvec);
- 		mem_cgroup_uncharge_end();
- 		index++;
- 	}
-@@ -2439,6 +2471,10 @@ int shmem_lock(struct file *file, int lock, struct user_struct *user)
- 	return 0;
- }
- 
-+void shmem_unlock_mapping(struct address_space *mapping)
-+{
-+}
-+
- void shmem_truncate_range(struct inode *inode, loff_t lstart, loff_t lend)
- {
- 	truncate_inode_pages_range(inode->i_mapping, lstart, lend);
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 824676a..cb33d9c 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -636,7 +636,7 @@ redo:
- 		 * When racing with an mlock or AS_UNEVICTABLE clearing
- 		 * (page is unlocked) make sure that if the other thread
- 		 * does not observe our setting of PG_lru and fails
--		 * isolation/check_move_unevictable_page,
-+		 * isolation/check_move_unevictable_pages,
- 		 * we see PG_mlocked/AS_UNEVICTABLE cleared below and move
- 		 * the page back to the evictable list.
- 		 *
-@@ -3355,104 +3355,56 @@ int page_evictable(struct page *page, struct vm_area_struct *vma)
- 
- #ifdef CONFIG_SHMEM
- /**
-- * check_move_unevictable_page - check page for evictability and move to appropriate zone lru list
-- * @page: page to check evictability and move to appropriate lru list
-- * @zone: zone page is in
-+ * check_move_unevictable_pages - check pages for evictability and move to appropriate zone lru list
-+ * @pages:	array of pages to check
-+ * @nr_pages:	number of pages to check
-  *
-- * Checks a page for evictability and moves the page to the appropriate
-- * zone lru list.
-- *
-- * Restrictions: zone->lru_lock must be held, page must be on LRU and must
-- * have PageUnevictable set.
-+ * Checks pages for evictability and moves them to the appropriate lru list.
-  *
-  * This function is only used for SysV IPC SHM_UNLOCK.
-  */
--static void check_move_unevictable_page(struct page *page, struct zone *zone)
-+void check_move_unevictable_pages(struct page **pages, int nr_pages)
- {
--	VM_BUG_ON(PageActive(page));
-+	struct zone *zone = NULL;
-+	int pgscanned = 0;
-+	int pgrescued = 0;
-+	int i;
- 
--retry:
--	ClearPageUnevictable(page);
--	if (page_evictable(page, NULL)) {
--		enum lru_list l = page_lru_base_type(page);
-+	for (i = 0; i < nr_pages; i++) {
-+		struct page *page = pages[i];
-+		struct zone *pagezone;
- 
--		__dec_zone_state(zone, NR_UNEVICTABLE);
--		list_move(&page->lru, &zone->lru[l].list);
--		mem_cgroup_move_lists(page, LRU_UNEVICTABLE, l);
--		__inc_zone_state(zone, NR_INACTIVE_ANON + l);
--		__count_vm_event(UNEVICTABLE_PGRESCUED);
--	} else {
--		/*
--		 * rotate unevictable list
--		 */
--		SetPageUnevictable(page);
--		list_move(&page->lru, &zone->lru[LRU_UNEVICTABLE].list);
--		mem_cgroup_rotate_lru_list(page, LRU_UNEVICTABLE);
--		if (page_evictable(page, NULL))
--			goto retry;
--	}
--}
--
--/**
-- * scan_mapping_unevictable_pages - scan an address space for evictable pages
-- * @mapping: struct address_space to scan for evictable pages
-- *
-- * Scan all pages in mapping.  Check unevictable pages for
-- * evictability and move them to the appropriate zone lru list.
-- *
-- * This function is only used for SysV IPC SHM_UNLOCK.
-- */
--void scan_mapping_unevictable_pages(struct address_space *mapping)
--{
--	pgoff_t next = 0;
--	pgoff_t end   = (i_size_read(mapping->host) + PAGE_CACHE_SIZE - 1) >>
--			 PAGE_CACHE_SHIFT;
--	struct zone *zone;
--	struct pagevec pvec;
-+		pgscanned++;
-+		pagezone = page_zone(page);
-+		if (pagezone != zone) {
-+			if (zone)
-+				spin_unlock_irq(&zone->lru_lock);
-+			zone = pagezone;
-+			spin_lock_irq(&zone->lru_lock);
-+		}
- 
--	if (mapping->nrpages == 0)
--		return;
-+		if (!PageLRU(page) || !PageUnevictable(page))
-+			continue;
- 
--	pagevec_init(&pvec, 0);
--	while (next < end &&
--		pagevec_lookup(&pvec, mapping, next, PAGEVEC_SIZE)) {
--		int i;
--		int pg_scanned = 0;
--
--		zone = NULL;
--
--		for (i = 0; i < pagevec_count(&pvec); i++) {
--			struct page *page = pvec.pages[i];
--			pgoff_t page_index = page->index;
--			struct zone *pagezone = page_zone(page);
--
--			pg_scanned++;
--			if (page_index > next)
--				next = page_index;
--			next++;
--
--			if (pagezone != zone) {
--				if (zone)
--					spin_unlock_irq(&zone->lru_lock);
--				zone = pagezone;
--				spin_lock_irq(&zone->lru_lock);
--			}
-+		if (page_evictable(page, NULL)) {
-+			enum lru_list lru = page_lru_base_type(page);
- 
--			if (PageLRU(page) && PageUnevictable(page))
--				check_move_unevictable_page(page, zone);
-+			VM_BUG_ON(PageActive(page));
-+			ClearPageUnevictable(page);
-+			__dec_zone_state(zone, NR_UNEVICTABLE);
-+			list_move(&page->lru, &zone->lru[lru].list);
-+			mem_cgroup_move_lists(page, LRU_UNEVICTABLE, lru);
-+			__inc_zone_state(zone, NR_INACTIVE_ANON + lru);
-+			pgrescued++;
- 		}
--		if (zone)
--			spin_unlock_irq(&zone->lru_lock);
--		pagevec_release(&pvec);
-+	}
- 
--		count_vm_events(UNEVICTABLE_PGSCANNED, pg_scanned);
--		cond_resched();
-+	if (zone) {
-+		__count_vm_events(UNEVICTABLE_PGRESCUED, pgrescued);
-+		__count_vm_events(UNEVICTABLE_PGSCANNED, pgscanned);
-+		spin_unlock_irq(&zone->lru_lock);
- 	}
- }
--#else
--void scan_mapping_unevictable_pages(struct address_space *mapping)
--{
--}
- #endif /* CONFIG_SHMEM */
- 
- static void warn_scan_unevictable_pages(void)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0129-Linux-3.2.2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0129-Linux-3.2.2.patch
deleted file mode 100644
index 191a68f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.2/0129-Linux-3.2.2.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 9c4bad0da47e7a8597bf0135088e482b1a970ba7 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at suse.de>
-Date: Wed, 25 Jan 2012 16:39:32 -0800
-Subject: [PATCH 129/129] Linux 3.2.2
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index c5edffa..2f684da 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 1
-+SUBLEVEL = 2
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0001-iommu-amd-Add-workaround-for-event-log-erratum.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0001-iommu-amd-Add-workaround-for-event-log-erratum.patch
deleted file mode 100644
index fbb8207..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0001-iommu-amd-Add-workaround-for-event-log-erratum.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From d08904adc2bdce433151a95add376e5446af13de Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Thu, 12 Apr 2012 14:12:00 +0200
-Subject: [PATCH 01/86] iommu/amd: Add workaround for event log erratum
-
-commit 3d06fca8d2aa3543030e40b95f1d62f9f5a03540 upstream.
-
-Due to a recent erratum it can happen that the head pointer
-of the event-log is updated before the actual event-log
-entry is written. This patch implements the recommended
-workaround.
-
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/amd_iommu.c |   29 +++++++++++++++++++++++------
- 1 file changed, 23 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index 966a6e7..f1d5408 100644
---- a/drivers/iommu/amd_iommu.c
-+++ b/drivers/iommu/amd_iommu.c
-@@ -381,12 +381,27 @@ static void dump_command(unsigned long phys_addr)
- 
- static void iommu_print_event(struct amd_iommu *iommu, void *__evt)
- {
--	u32 *event = __evt;
--	int type  = (event[1] >> EVENT_TYPE_SHIFT)  & EVENT_TYPE_MASK;
--	int devid = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK;
--	int domid = (event[1] >> EVENT_DOMID_SHIFT) & EVENT_DOMID_MASK;
--	int flags = (event[1] >> EVENT_FLAGS_SHIFT) & EVENT_FLAGS_MASK;
--	u64 address = (u64)(((u64)event[3]) << 32) | event[2];
-+	int type, devid, domid, flags;
-+	volatile u32 *event = __evt;
-+	int count = 0;
-+	u64 address;
-+
-+retry:
-+	type    = (event[1] >> EVENT_TYPE_SHIFT)  & EVENT_TYPE_MASK;
-+	devid   = (event[0] >> EVENT_DEVID_SHIFT) & EVENT_DEVID_MASK;
-+	domid   = (event[1] >> EVENT_DOMID_SHIFT) & EVENT_DOMID_MASK;
-+	flags   = (event[1] >> EVENT_FLAGS_SHIFT) & EVENT_FLAGS_MASK;
-+	address = (u64)(((u64)event[3]) << 32) | event[2];
-+
-+	if (type == 0) {
-+		/* Did we hit the erratum? */
-+		if (++count == LOOP_TIMEOUT) {
-+			pr_err("AMD-Vi: No event written to event log\n");
-+			return;
-+		}
-+		udelay(1);
-+		goto retry;
-+	}
- 
- 	printk(KERN_ERR "AMD-Vi: Event logged [");
- 
-@@ -439,6 +454,8 @@ static void iommu_print_event(struct amd_iommu *iommu, void *__evt)
- 	default:
- 		printk(KERN_ERR "UNKNOWN type=0x%02x]\n", type);
- 	}
-+
-+	memset(__evt, 0, 4 * sizeof(u32));
- }
- 
- static void iommu_poll_events(struct amd_iommu *iommu)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0002-MIPS-BCM63XX-Add-missing-include-for-bcm63xx_gpio.h.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0002-MIPS-BCM63XX-Add-missing-include-for-bcm63xx_gpio.h.patch
deleted file mode 100644
index 33c5e4c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0002-MIPS-BCM63XX-Add-missing-include-for-bcm63xx_gpio.h.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 46955a5e45c31c112caee68f0b31b6caac294ce0 Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jonas.gorski at gmail.com>
-Date: Tue, 15 May 2012 17:47:52 +0200
-Subject: [PATCH 02/86] MIPS: BCM63XX: Add missing include for bcm63xx_gpio.h
-
-commit 442209f31dafef9fde852858e1ce566b675b720d upstream.
-
-bcm63xx_gpio.h uses macros defined in bcm63xx_cpu.h without including it,
-leading to the following build failure:
-
-  CC [M]  drivers/mmc/core/cd-gpio.o
-In file included from arch/mips/include/asm/mach-bcm63xx/gpio.h:4:0,
-                 from arch/mips/include/asm/gpio.h:4,
-                 from include/linux/gpio.h:30,
-                 from drivers/mmc/core/cd-gpio.c:12:
-
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h: In function 'bcm63xx_gpio_count':
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:10:2: error: implicit declaration of function 'bcm63xx_get_cpu_id'
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:11:7: error: 'BCM6358_CPU_ID' undeclared (first use in this function)
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:11:7: note: each undeclared identifier is reported only once for each function it appears in
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:13:7: error: 'BCM6338_CPU_ID' undeclared (first use in this function)
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:15:7: error: 'BCM6345_CPU_ID' undeclared (first use in this function)
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:17:7: error: 'BCM6368_CPU_ID' undeclared (first use in this function)
-arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h:19:7: error: 'BCM6348_CPU_ID' undeclared (first use in this function)
-
-make[7]: *** [drivers/mmc/core/cd-gpio.o] Error 1
-
-Signed-off-by: Jonas Gorski <jonas.gorski at gmail.com>
-Cc: linux-mips at linux-mips.org
-Cc: Maxime Bizon <mbizon at freebox.fr>
-Cc: Florian Fainelli <florian at openwrt.org>
-Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
-index 3999ec0..67d1ce0 100644
---- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
-+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
-@@ -2,6 +2,7 @@
- #define BCM63XX_GPIO_H
- 
- #include <linux/init.h>
-+#include <bcm63xx_cpu.h>
- 
- int __init bcm63xx_gpio_init(void);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0003-cifs-Include-backup-intent-search-flags-during-searc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0003-cifs-Include-backup-intent-search-flags-during-searc.patch
deleted file mode 100644
index 33f7854..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0003-cifs-Include-backup-intent-search-flags-during-searc.patch
+++ /dev/null
@@ -1,152 +0,0 @@
-From 173ad16c027991780b0eb74f6ad49ae7621647f5 Mon Sep 17 00:00:00 2001
-From: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Date: Tue, 15 May 2012 10:19:16 -0500
-Subject: [PATCH 03/86] cifs: Include backup intent search flags during
- searches {try #2)
-
-commit 2608bee744a92d60d15ff4e6e0b913d8b406aedd upstream.
-
-As observed and suggested by Tushar Gosavi...
-
----------
-readdir calls these function to send TRANS2_FIND_FIRST and
-TRANS2_FIND_NEXT command to the server. The current cifs module is
-not specifying CIFS_SEARCH_BACKUP_SEARCH flag while sending these
-command when backupuid/backupgid is specified. This can be resolved
-by specifying CIFS_SEARCH_BACKUP_SEARCH flag.
----------
-
-Reported-and-Tested-by: Tushar Gosavi <tugosavi at in.ibm.com>
-Signed-off-by: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Acked-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/cifsproto.h |    6 ++++--
- fs/cifs/cifssmb.c   |   12 +++++-------
- fs/cifs/readdir.c   |   15 +++++++++++++--
- 3 files changed, 22 insertions(+), 11 deletions(-)
-
-diff --git a/fs/cifs/cifsproto.h b/fs/cifs/cifsproto.h
-index 6f4e243..26917d3 100644
---- a/fs/cifs/cifsproto.h
-+++ b/fs/cifs/cifsproto.h
-@@ -184,11 +184,13 @@ extern int CIFSTCon(unsigned int xid, struct cifs_ses *ses,
- 
- extern int CIFSFindFirst(const int xid, struct cifs_tcon *tcon,
- 		const char *searchName, const struct nls_table *nls_codepage,
--		__u16 *searchHandle, struct cifs_search_info *psrch_inf,
-+		__u16 *searchHandle, __u16 search_flags,
-+		struct cifs_search_info *psrch_inf,
- 		int map, const char dirsep);
- 
- extern int CIFSFindNext(const int xid, struct cifs_tcon *tcon,
--		__u16 searchHandle, struct cifs_search_info *psrch_inf);
-+		__u16 searchHandle, __u16 search_flags,
-+		struct cifs_search_info *psrch_inf);
- 
- extern int CIFSFindClose(const int, struct cifs_tcon *tcon,
- 			const __u16 search_handle);
-diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
-index e89803b..6aa7457 100644
---- a/fs/cifs/cifssmb.c
-+++ b/fs/cifs/cifssmb.c
-@@ -4327,7 +4327,7 @@ int
- CIFSFindFirst(const int xid, struct cifs_tcon *tcon,
- 	      const char *searchName,
- 	      const struct nls_table *nls_codepage,
--	      __u16 *pnetfid,
-+	      __u16 *pnetfid, __u16 search_flags,
- 	      struct cifs_search_info *psrch_inf, int remap, const char dirsep)
- {
- /* level 257 SMB_ */
-@@ -4399,8 +4399,7 @@ findFirstRetry:
- 	    cpu_to_le16(ATTR_READONLY | ATTR_HIDDEN | ATTR_SYSTEM |
- 			ATTR_DIRECTORY);
- 	pSMB->SearchCount = cpu_to_le16(CIFSMaxBufSize/sizeof(FILE_UNIX_INFO));
--	pSMB->SearchFlags = cpu_to_le16(CIFS_SEARCH_CLOSE_AT_END |
--		CIFS_SEARCH_RETURN_RESUME);
-+	pSMB->SearchFlags = cpu_to_le16(search_flags);
- 	pSMB->InformationLevel = cpu_to_le16(psrch_inf->info_level);
- 
- 	/* BB what should we set StorageType to? Does it matter? BB */
-@@ -4470,8 +4469,8 @@ findFirstRetry:
- 	return rc;
- }
- 
--int CIFSFindNext(const int xid, struct cifs_tcon *tcon,
--		 __u16 searchHandle, struct cifs_search_info *psrch_inf)
-+int CIFSFindNext(const int xid, struct cifs_tcon *tcon, __u16 searchHandle,
-+		 __u16 search_flags, struct cifs_search_info *psrch_inf)
- {
- 	TRANSACTION2_FNEXT_REQ *pSMB = NULL;
- 	TRANSACTION2_FNEXT_RSP *pSMBr = NULL;
-@@ -4514,8 +4513,7 @@ int CIFSFindNext(const int xid, struct cifs_tcon *tcon,
- 		cpu_to_le16(CIFSMaxBufSize / sizeof(FILE_UNIX_INFO));
- 	pSMB->InformationLevel = cpu_to_le16(psrch_inf->info_level);
- 	pSMB->ResumeKey = psrch_inf->resume_key;
--	pSMB->SearchFlags =
--	      cpu_to_le16(CIFS_SEARCH_CLOSE_AT_END | CIFS_SEARCH_RETURN_RESUME);
-+	pSMB->SearchFlags = cpu_to_le16(search_flags);
- 
- 	name_len = psrch_inf->resume_name_len;
- 	params += name_len;
-diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
-index a090bbe..db4a138 100644
---- a/fs/cifs/readdir.c
-+++ b/fs/cifs/readdir.c
-@@ -219,6 +219,7 @@ int get_symlink_reparse_path(char *full_path, struct cifs_sb_info *cifs_sb,
- 
- static int initiate_cifs_search(const int xid, struct file *file)
- {
-+	__u16 search_flags;
- 	int rc = 0;
- 	char *full_path = NULL;
- 	struct cifsFileInfo *cifsFile;
-@@ -270,8 +271,12 @@ ffirst_retry:
- 		cifsFile->srch_inf.info_level = SMB_FIND_FILE_DIRECTORY_INFO;
- 	}
- 
-+	search_flags = CIFS_SEARCH_CLOSE_AT_END | CIFS_SEARCH_RETURN_RESUME;
-+	if (backup_cred(cifs_sb))
-+		search_flags |= CIFS_SEARCH_BACKUP_SEARCH;
-+
- 	rc = CIFSFindFirst(xid, pTcon, full_path, cifs_sb->local_nls,
--		&cifsFile->netfid, &cifsFile->srch_inf,
-+		&cifsFile->netfid, search_flags, &cifsFile->srch_inf,
- 		cifs_sb->mnt_cifs_flags &
- 			CIFS_MOUNT_MAP_SPECIAL_CHR, CIFS_DIR_SEP(cifs_sb));
- 	if (rc == 0)
-@@ -502,11 +507,13 @@ static int cifs_save_resume_key(const char *current_entry,
- static int find_cifs_entry(const int xid, struct cifs_tcon *pTcon,
- 	struct file *file, char **ppCurrentEntry, int *num_to_ret)
- {
-+	__u16 search_flags;
- 	int rc = 0;
- 	int pos_in_buf = 0;
- 	loff_t first_entry_in_buffer;
- 	loff_t index_to_find = file->f_pos;
- 	struct cifsFileInfo *cifsFile = file->private_data;
-+	struct cifs_sb_info *cifs_sb = CIFS_SB(file->f_path.dentry->d_sb);
- 	/* check if index in the buffer */
- 
- 	if ((cifsFile == NULL) || (ppCurrentEntry == NULL) ||
-@@ -560,10 +567,14 @@ static int find_cifs_entry(const int xid, struct cifs_tcon *pTcon,
- 						cifsFile);
- 	}
- 
-+	search_flags = CIFS_SEARCH_CLOSE_AT_END | CIFS_SEARCH_RETURN_RESUME;
-+	if (backup_cred(cifs_sb))
-+		search_flags |= CIFS_SEARCH_BACKUP_SEARCH;
-+
- 	while ((index_to_find >= cifsFile->srch_inf.index_of_last_entry) &&
- 	      (rc == 0) && !cifsFile->srch_inf.endOfSearch) {
- 		cFYI(1, "calling findnext2");
--		rc = CIFSFindNext(xid, pTcon, cifsFile->netfid,
-+		rc = CIFSFindNext(xid, pTcon, cifsFile->netfid, search_flags,
- 				  &cifsFile->srch_inf);
- 		/* FindFirst/Next set last_entry to NULL on malformed reply */
- 		if (cifsFile->srch_inf.last_entry)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0004-sunrpc-fix-loss-of-task-tk_status-after-rpc_delay-ca.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0004-sunrpc-fix-loss-of-task-tk_status-after-rpc_delay-ca.patch
deleted file mode 100644
index f3aea62..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0004-sunrpc-fix-loss-of-task-tk_status-after-rpc_delay-ca.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 0a5a9dc98eefca8c849daa43b5763fc53d672ebf Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Sat, 19 May 2012 12:12:53 -0400
-Subject: [PATCH 04/86] sunrpc: fix loss of task->tk_status after rpc_delay
- call in xprt_alloc_slot
-
-commit 1afeaf5c29aa07db25760d2fbed5c08a3aec3498 upstream.
-
-xprt_alloc_slot will call rpc_delay() to make the task wait a bit before
-retrying when it gets back an -ENOMEM error from xprt_dynamic_alloc_slot.
-The problem is that rpc_delay will clear the task->tk_status, causing
-call_reserveresult to abort the task.
-
-The solution is simply to let call_reserveresult handle the ENOMEM error
-directly.
-
-Reported-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sunrpc/clnt.c |    2 ++
- net/sunrpc/xprt.c |    5 +++--
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
-index f0268ea..b2250da 100644
---- a/net/sunrpc/clnt.c
-+++ b/net/sunrpc/clnt.c
-@@ -959,6 +959,8 @@ call_reserveresult(struct rpc_task *task)
- 	}
- 
- 	switch (status) {
-+	case -ENOMEM:
-+		rpc_delay(task, HZ >> 2);
- 	case -EAGAIN:	/* woken up; retry */
- 		task->tk_action = call_reserve;
- 		return;
-diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
-index c64c0ef..3ac9789 100644
---- a/net/sunrpc/xprt.c
-+++ b/net/sunrpc/xprt.c
-@@ -977,15 +977,16 @@ static void xprt_alloc_slot(struct rpc_task *task)
- 		goto out_init_req;
- 	switch (PTR_ERR(req)) {
- 	case -ENOMEM:
--		rpc_delay(task, HZ >> 2);
- 		dprintk("RPC:       dynamic allocation of request slot "
- 				"failed! Retrying\n");
-+		task->tk_status = -ENOMEM;
- 		break;
- 	case -EAGAIN:
- 		rpc_sleep_on(&xprt->backlog, task, NULL);
- 		dprintk("RPC:       waiting for request slot\n");
-+	default:
-+		task->tk_status = -EAGAIN;
- 	}
--	task->tk_status = -EAGAIN;
- 	return;
- out_init_req:
- 	task->tk_status = 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0005-exofs-Fix-CRASH-on-very-early-IO-errors.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0005-exofs-Fix-CRASH-on-very-early-IO-errors.patch
deleted file mode 100644
index 0b0abbd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0005-exofs-Fix-CRASH-on-very-early-IO-errors.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From afd117116e98d0444a0ace7d152207a54cc15ff5 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Wed, 16 May 2012 14:22:21 +0300
-Subject: [PATCH 05/86] exofs: Fix CRASH on very early IO errors.
-
-commit 6abe4a87f7bc7978705c386dbba0ca0c7790b3ec upstream.
-
-If at exofs_fill_super() we had an early termination
-do to any error, like an IO error while reading the
-super-block. We would crash inside exofs_free_sbi().
-
-This is because sbi->oc.numdevs was set to 1, before
-we actually have a device table at all.
-
-Fix it by moving the sbi->oc.numdevs = 1 to after the
-allocation of the device table.
-
-Reported-by: Johannes Schild <JSchild at gmx.de>
-
-Stable: This is a bug since v3.2.0
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/exofs/super.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/exofs/super.c b/fs/exofs/super.c
-index e6085ec..7ed5000 100644
---- a/fs/exofs/super.c
-+++ b/fs/exofs/super.c
-@@ -745,7 +745,6 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
- 	sbi->one_comp.obj.partition = opts->pid;
- 	sbi->one_comp.obj.id = 0;
- 	exofs_make_credential(sbi->one_comp.cred, &sbi->one_comp.obj);
--	sbi->oc.numdevs = 1;
- 	sbi->oc.single_comp = EC_SINGLE_COMP;
- 	sbi->oc.comps = &sbi->one_comp;
- 
-@@ -803,6 +802,7 @@ static int exofs_fill_super(struct super_block *sb, void *data, int silent)
- 			goto free_sbi;
- 
- 		ore_comp_set_dev(&sbi->oc, 0, od);
-+		sbi->oc.numdevs = 1;
- 	}
- 
- 	__sbi_read_stats(sbi);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0006-cifs-fix-oops-while-traversing-open-file-list-try-4.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0006-cifs-fix-oops-while-traversing-open-file-list-try-4.patch
deleted file mode 100644
index d54b0cd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0006-cifs-fix-oops-while-traversing-open-file-list-try-4.patch
+++ /dev/null
@@ -1,141 +0,0 @@
-From 4efa0e1388965846f96dfa4afd84b6ee7560eec7 Mon Sep 17 00:00:00 2001
-From: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Date: Mon, 21 May 2012 09:20:12 -0500
-Subject: [PATCH 06/86] cifs: fix oops while traversing open file list (try
- #4)
-
-commit 2c0c2a08bed7a3b791f88d09d16ace56acb3dd98 upstream.
-
-While traversing the linked list of open file handles, if the identfied
-file handle is invalid, a reopen is attempted and if it fails, we
-resume traversing where we stopped and cifs can oops while accessing
-invalid next element, for list might have changed.
-
-So mark the invalid file handle and attempt reopen if no
-valid file handle is found in rest of the list.
-If reopen fails, move the invalid file handle to the end of the list
-and start traversing the list again from the begining.
-Repeat this four times before giving up and returning an error if
-file reopen keeps failing.
-
-Signed-off-by: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <sfrench at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/cifsglob.h |    1 +
- fs/cifs/file.c     |   57 ++++++++++++++++++++++++++++++----------------------
- 2 files changed, 34 insertions(+), 24 deletions(-)
-
-diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
-index c467ac8..2f3ff59 100644
---- a/fs/cifs/cifsglob.h
-+++ b/fs/cifs/cifsglob.h
-@@ -43,6 +43,7 @@
- 
- #define CIFS_MIN_RCV_POOL 4
- 
-+#define MAX_REOPEN_ATT	5 /* these many maximum attempts to reopen a file */
- /*
-  * default attribute cache timeout (jiffies)
-  */
-diff --git a/fs/cifs/file.c b/fs/cifs/file.c
-index 0f7dc22..0bb785f 100644
---- a/fs/cifs/file.c
-+++ b/fs/cifs/file.c
-@@ -1534,10 +1534,11 @@ struct cifsFileInfo *find_readable_file(struct cifsInodeInfo *cifs_inode,
- struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *cifs_inode,
- 					bool fsuid_only)
- {
--	struct cifsFileInfo *open_file;
-+	struct cifsFileInfo *open_file, *inv_file = NULL;
- 	struct cifs_sb_info *cifs_sb;
- 	bool any_available = false;
- 	int rc;
-+	unsigned int refind = 0;
- 
- 	/* Having a null inode here (because mapping->host was set to zero by
- 	the VFS or MM) should not happen but we had reports of on oops (due to
-@@ -1557,40 +1558,25 @@ struct cifsFileInfo *find_writable_file(struct cifsInodeInfo *cifs_inode,
- 
- 	spin_lock(&cifs_file_list_lock);
- refind_writable:
-+	if (refind > MAX_REOPEN_ATT) {
-+		spin_unlock(&cifs_file_list_lock);
-+		return NULL;
-+	}
- 	list_for_each_entry(open_file, &cifs_inode->openFileList, flist) {
- 		if (!any_available && open_file->pid != current->tgid)
- 			continue;
- 		if (fsuid_only && open_file->uid != current_fsuid())
- 			continue;
- 		if (OPEN_FMODE(open_file->f_flags) & FMODE_WRITE) {
--			cifsFileInfo_get(open_file);
--
- 			if (!open_file->invalidHandle) {
- 				/* found a good writable file */
-+				cifsFileInfo_get(open_file);
- 				spin_unlock(&cifs_file_list_lock);
- 				return open_file;
-+			} else {
-+				if (!inv_file)
-+					inv_file = open_file;
- 			}
--
--			spin_unlock(&cifs_file_list_lock);
--
--			/* Had to unlock since following call can block */
--			rc = cifs_reopen_file(open_file, false);
--			if (!rc)
--				return open_file;
--
--			/* if it fails, try another handle if possible */
--			cFYI(1, "wp failed on reopen file");
--			cifsFileInfo_put(open_file);
--
--			spin_lock(&cifs_file_list_lock);
--
--			/* else we simply continue to the next entry. Thus
--			   we do not loop on reopen errors.  If we
--			   can not reopen the file, for example if we
--			   reconnected to a server with another client
--			   racing to delete or lock the file we would not
--			   make progress if we restarted before the beginning
--			   of the loop here. */
- 		}
- 	}
- 	/* couldn't find useable FH with same pid, try any available */
-@@ -1598,7 +1584,30 @@ refind_writable:
- 		any_available = true;
- 		goto refind_writable;
- 	}
-+
-+	if (inv_file) {
-+		any_available = false;
-+		cifsFileInfo_get(inv_file);
-+	}
-+
- 	spin_unlock(&cifs_file_list_lock);
-+
-+	if (inv_file) {
-+		rc = cifs_reopen_file(inv_file, false);
-+		if (!rc)
-+			return inv_file;
-+		else {
-+			spin_lock(&cifs_file_list_lock);
-+			list_move_tail(&inv_file->flist,
-+					&cifs_inode->openFileList);
-+			spin_unlock(&cifs_file_list_lock);
-+			cifsFileInfo_put(inv_file);
-+			spin_lock(&cifs_file_list_lock);
-+			++refind;
-+			goto refind_writable;
-+		}
-+	}
-+
- 	return NULL;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0007-Fix-dm-multipath-starvation-when-scsi-host-is-busy.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0007-Fix-dm-multipath-starvation-when-scsi-host-is-busy.patch
deleted file mode 100644
index abd3752..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0007-Fix-dm-multipath-starvation-when-scsi-host-is-busy.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 49f60fdaf9a6a36e04829a74b3b1f28ab99dc96a Mon Sep 17 00:00:00 2001
-From: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
-Date: Tue, 22 May 2012 18:57:17 +0900
-Subject: [PATCH 07/86] Fix dm-multipath starvation when scsi host is busy
-
-commit b7e94a1686c5daef4f649f7f4f839cc294f07710 upstream.
-
-block congestion control doesn't have any concept of fairness across
-multiple queues.  This means that if SCSI reports the host as busy in
-the queue congestion control it can result in an unfair starvation
-situation in dm-mp if there are multiple multipath devices on the same
-host.  For example:
-http://www.redhat.com/archives/dm-devel/2012-May/msg00123.html
-
-The fix for this is to report only the sdev busy state (and ignore the
-host busy state) in the block congestion control call back.
-The host is still congested, but the SCSI subsystem will sort out the
-congestion in a fair way because it knows the relation between the
-queues and the host.
-
-[jejb: fixed up trailing whitespace]
-Reported-by: Bernd Schubert <bernd.schubert at itwm.fraunhofer.de>
-Tested-by: Bernd Schubert <bernd.schubert at itwm.fraunhofer.de>
-Signed-off-by: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/scsi_lib.c |   11 +++++++----
- 1 file changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index f85cfa6..f0ab58e 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -1382,16 +1382,19 @@ static int scsi_lld_busy(struct request_queue *q)
- {
- 	struct scsi_device *sdev = q->queuedata;
- 	struct Scsi_Host *shost;
--	struct scsi_target *starget;
- 
- 	if (!sdev)
- 		return 0;
- 
- 	shost = sdev->host;
--	starget = scsi_target(sdev);
- 
--	if (scsi_host_in_recovery(shost) || scsi_host_is_busy(shost) ||
--	    scsi_target_is_busy(starget) || scsi_device_is_busy(sdev))
-+	/*
-+	 * Ignore host/starget busy state.
-+	 * Since block layer does not have a concept of fairness across
-+	 * multiple queues, congestion of host/starget needs to be handled
-+	 * in SCSI layer.
-+	 */
-+	if (scsi_host_in_recovery(shost) || scsi_device_is_busy(sdev))
- 		return 1;
- 
- 	return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0008-ixp4xx-fix-compilation-by-adding-gpiolib-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0008-ixp4xx-fix-compilation-by-adding-gpiolib-support.patch
deleted file mode 100644
index 57522bf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0008-ixp4xx-fix-compilation-by-adding-gpiolib-support.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-From ee8e09be6e0d533351740fc80d291bab8e2686c3 Mon Sep 17 00:00:00 2001
-From: Richard Cochran <richardcochran at gmail.com>
-Date: Wed, 23 May 2012 18:19:51 +0200
-Subject: [PATCH 08/86] ixp4xx: fix compilation by adding gpiolib support
-
-commit 9dde0ae3769875ec1370cb316e50c54b57d52c1a upstream.
-
-Once again, ixp4xx no longer even compiles. This patch fixes the issue
-by converting over to gpiolib. This patch was first made by Imre and
-posted by Marc, and I added in Russell's suggestion to empty the gpio
-header file.
-
-This fix should also go for 3.1, 3.2, 3.3, and 3.4.
-
-Signed-off-by: Richard Cochran <richardcochran at gmail.com>
-Signed-off-by: Arnd Bergmann <arnd at arndb.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/Kconfig                         |    2 +-
- arch/arm/mach-ixp4xx/common.c            |   48 +++++++++++++++++-
- arch/arm/mach-ixp4xx/include/mach/gpio.h |   79 +-----------------------------
- 3 files changed, 48 insertions(+), 81 deletions(-)
-
-diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
-index 26574f0..cad2ec2 100644
---- a/arch/arm/Kconfig
-+++ b/arch/arm/Kconfig
-@@ -520,7 +520,7 @@ config ARCH_IXP4XX
- 	depends on MMU
- 	select CLKSRC_MMIO
- 	select CPU_XSCALE
--	select GENERIC_GPIO
-+	select ARCH_REQUIRE_GPIOLIB
- 	select GENERIC_CLOCKEVENTS
- 	select HAVE_SCHED_CLOCK
- 	select MIGHT_HAVE_PCI
-diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c
-index b86a005..caf28fc 100644
---- a/arch/arm/mach-ixp4xx/common.c
-+++ b/arch/arm/mach-ixp4xx/common.c
-@@ -29,6 +29,7 @@
- #include <linux/clockchips.h>
- #include <linux/io.h>
- #include <linux/export.h>
-+#include <linux/gpio.h>
- 
- #include <mach/udc.h>
- #include <mach/hardware.h>
-@@ -106,7 +107,7 @@ static signed char irq2gpio[32] = {
- 	 7,  8,  9, 10, 11, 12, -1, -1,
- };
- 
--int gpio_to_irq(int gpio)
-+static int ixp4xx_gpio_to_irq(struct gpio_chip *chip, unsigned gpio)
- {
- 	int irq;
- 
-@@ -116,7 +117,6 @@ int gpio_to_irq(int gpio)
- 	}
- 	return -EINVAL;
- }
--EXPORT_SYMBOL(gpio_to_irq);
- 
- int irq_to_gpio(unsigned int irq)
- {
-@@ -376,12 +376,56 @@ static struct platform_device *ixp46x_devices[] __initdata = {
- unsigned long ixp4xx_exp_bus_size;
- EXPORT_SYMBOL(ixp4xx_exp_bus_size);
- 
-+static int ixp4xx_gpio_direction_input(struct gpio_chip *chip, unsigned gpio)
-+{
-+	gpio_line_config(gpio, IXP4XX_GPIO_IN);
-+
-+	return 0;
-+}
-+
-+static int ixp4xx_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,
-+					int level)
-+{
-+	gpio_line_set(gpio, level);
-+	gpio_line_config(gpio, IXP4XX_GPIO_OUT);
-+
-+	return 0;
-+}
-+
-+static int ixp4xx_gpio_get_value(struct gpio_chip *chip, unsigned gpio)
-+{
-+	int value;
-+
-+	gpio_line_get(gpio, &value);
-+
-+	return value;
-+}
-+
-+static void ixp4xx_gpio_set_value(struct gpio_chip *chip, unsigned gpio,
-+				  int value)
-+{
-+	gpio_line_set(gpio, value);
-+}
-+
-+static struct gpio_chip ixp4xx_gpio_chip = {
-+	.label			= "IXP4XX_GPIO_CHIP",
-+	.direction_input	= ixp4xx_gpio_direction_input,
-+	.direction_output	= ixp4xx_gpio_direction_output,
-+	.get			= ixp4xx_gpio_get_value,
-+	.set			= ixp4xx_gpio_set_value,
-+	.to_irq			= ixp4xx_gpio_to_irq,
-+	.base			= 0,
-+	.ngpio			= 16,
-+};
-+
- void __init ixp4xx_sys_init(void)
- {
- 	ixp4xx_exp_bus_size = SZ_16M;
- 
- 	platform_add_devices(ixp4xx_devices, ARRAY_SIZE(ixp4xx_devices));
- 
-+	gpiochip_add(&ixp4xx_gpio_chip);
-+
- 	if (cpu_is_ixp46x()) {
- 		int region;
- 
-diff --git a/arch/arm/mach-ixp4xx/include/mach/gpio.h b/arch/arm/mach-ixp4xx/include/mach/gpio.h
-index 83d6b4e..ef37f26 100644
---- a/arch/arm/mach-ixp4xx/include/mach/gpio.h
-+++ b/arch/arm/mach-ixp4xx/include/mach/gpio.h
-@@ -1,79 +1,2 @@
--/*
-- * arch/arm/mach-ixp4xx/include/mach/gpio.h
-- *
-- * IXP4XX GPIO wrappers for arch-neutral GPIO calls
-- *
-- * Written by Milan Svoboda <msvoboda at ra.rockwell.com>
-- * Based on PXA implementation by Philipp Zabel <philipp.zabel at gmail.com>
-- *
-- * This program is free software; you can redistribute it and/or modify
-- * it under the terms of the GNU General Public License as published by
-- * the Free Software Foundation; either version 2 of the License, or
-- * (at your option) any later version.
-- *
-- * This program is distributed in the hope that it will be useful,
-- * but WITHOUT ANY WARRANTY; without even the implied warranty of
-- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-- * GNU General Public License for more details.
-- *
-- * You should have received a copy of the GNU General Public License
-- * along with this program; if not, write to the Free Software
-- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-- *
-- */
--
--#ifndef __ASM_ARCH_IXP4XX_GPIO_H
--#define __ASM_ARCH_IXP4XX_GPIO_H
--
--#include <linux/kernel.h>
--#include <mach/hardware.h>
--
--#define __ARM_GPIOLIB_COMPLEX
--
--static inline int gpio_request(unsigned gpio, const char *label)
--{
--	return 0;
--}
--
--static inline void gpio_free(unsigned gpio)
--{
--	might_sleep();
--
--	return;
--}
--
--static inline int gpio_direction_input(unsigned gpio)
--{
--	gpio_line_config(gpio, IXP4XX_GPIO_IN);
--	return 0;
--}
--
--static inline int gpio_direction_output(unsigned gpio, int level)
--{
--	gpio_line_set(gpio, level);
--	gpio_line_config(gpio, IXP4XX_GPIO_OUT);
--	return 0;
--}
--
--static inline int gpio_get_value(unsigned gpio)
--{
--	int value;
--
--	gpio_line_get(gpio, &value);
--
--	return value;
--}
--
--static inline void gpio_set_value(unsigned gpio, int value)
--{
--	gpio_line_set(gpio, value);
--}
--
--#include <asm-generic/gpio.h>			/* cansleep wrappers */
--
--extern int gpio_to_irq(int gpio);
--#define gpio_to_irq gpio_to_irq
--extern int irq_to_gpio(unsigned int irq);
--
--#endif
-+/* empty */
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0009-drm-i915-properly-handle-interlaced-bit-for-sdvo-dtd.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0009-drm-i915-properly-handle-interlaced-bit-for-sdvo-dtd.patch
deleted file mode 100644
index c470feb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0009-drm-i915-properly-handle-interlaced-bit-for-sdvo-dtd.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From b519a21cd90e7ce2e8e8474c5beb3671862018b3 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sat, 12 May 2012 22:22:58 +0200
-Subject: [PATCH 09/86] drm/i915: properly handle interlaced bit for sdvo dtd
- conversion
-
-commit 59d92bfa5f0cdf57f82f5181b0ad6af75c3fdf41 upstream.
-
-We've simply ignored this, which isn't too great. With this, interlaced
-1080i works on my HDMI screen connected through sdvo. For no apparent
-reason anything else still doesn't work as it should.
-
-While at it, give these magic numbers in the dtd proper names and
-add a comment that they match with EDID detailed timings.
-
-v2: Actually use the right bit for interlaced.
-
-Tested-by: Peter Ross <pross at xvid.org>
-Reviewed-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_sdvo.c      |   12 ++++++++----
- drivers/gpu/drm/i915/intel_sdvo_regs.h |    5 +++++
- 2 files changed, 13 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
-index 8eddcca..a8d8ee5 100644
---- a/drivers/gpu/drm/i915/intel_sdvo.c
-+++ b/drivers/gpu/drm/i915/intel_sdvo.c
-@@ -769,10 +769,12 @@ static void intel_sdvo_get_dtd_from_mode(struct intel_sdvo_dtd *dtd,
- 		((v_sync_len & 0x30) >> 4);
- 
- 	dtd->part2.dtd_flags = 0x18;
-+	if (mode->flags & DRM_MODE_FLAG_INTERLACE)
-+		dtd->part2.dtd_flags |= DTD_FLAG_INTERLACE;
- 	if (mode->flags & DRM_MODE_FLAG_PHSYNC)
--		dtd->part2.dtd_flags |= 0x2;
-+		dtd->part2.dtd_flags |= DTD_FLAG_HSYNC_POSITIVE;
- 	if (mode->flags & DRM_MODE_FLAG_PVSYNC)
--		dtd->part2.dtd_flags |= 0x4;
-+		dtd->part2.dtd_flags |= DTD_FLAG_VSYNC_POSITIVE;
- 
- 	dtd->part2.sdvo_flags = 0;
- 	dtd->part2.v_sync_off_high = v_sync_offset & 0xc0;
-@@ -806,9 +808,11 @@ static void intel_sdvo_get_mode_from_dtd(struct drm_display_mode * mode,
- 	mode->clock = dtd->part1.clock * 10;
- 
- 	mode->flags &= ~(DRM_MODE_FLAG_PHSYNC | DRM_MODE_FLAG_PVSYNC);
--	if (dtd->part2.dtd_flags & 0x2)
-+	if (dtd->part2.dtd_flags & DTD_FLAG_INTERLACE)
-+		mode->flags |= DRM_MODE_FLAG_INTERLACE;
-+	if (dtd->part2.dtd_flags & DTD_FLAG_HSYNC_POSITIVE)
- 		mode->flags |= DRM_MODE_FLAG_PHSYNC;
--	if (dtd->part2.dtd_flags & 0x4)
-+	if (dtd->part2.dtd_flags & DTD_FLAG_VSYNC_POSITIVE)
- 		mode->flags |= DRM_MODE_FLAG_PVSYNC;
- }
- 
-diff --git a/drivers/gpu/drm/i915/intel_sdvo_regs.h b/drivers/gpu/drm/i915/intel_sdvo_regs.h
-index 4aa6f34..372f33b 100644
---- a/drivers/gpu/drm/i915/intel_sdvo_regs.h
-+++ b/drivers/gpu/drm/i915/intel_sdvo_regs.h
-@@ -61,6 +61,11 @@ struct intel_sdvo_caps {
- 	u16 output_flags;
- } __attribute__((packed));
- 
-+/* Note: SDVO detailed timing flags match EDID misc flags. */
-+#define DTD_FLAG_HSYNC_POSITIVE (1 << 1)
-+#define DTD_FLAG_VSYNC_POSITIVE (1 << 2)
-+#define DTD_FLAG_INTERLACE	(1 << 7)
-+
- /** This matches the EDID DTD structure, more or less */
- struct intel_sdvo_dtd {
- 	struct {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0010-drm-i915-enable-vdd-when-switching-off-the-eDP-panel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0010-drm-i915-enable-vdd-when-switching-off-the-eDP-panel.patch
deleted file mode 100644
index 78fa10a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0010-drm-i915-enable-vdd-when-switching-off-the-eDP-panel.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From d915c2455a13d5067c95770d33dd71dae5fdabf0 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sun, 20 May 2012 17:14:50 +0200
-Subject: [PATCH 10/86] drm/i915: enable vdd when switching off the eDP panel
-
-commit 6cb49835da0426f69a2931bc2a0a8156344b0e41 upstream.
-
-We have one bug report from a validation team that we get the eDP
-panel sequencing still somewhat wrong: We need to enable VDD while
-switching off the panel and backlight. Unfortunately that reporter
-seems to have fallen off the earth :(
-
-For another reporter this actually fixes a black panel issue because
-without this the backlight/panel gets confused and doesn't light up
-again.
-
-v2: I've forgotten to remove the vdd_off call in panel_off which is
-now bogus. This essentially reverts
-
-commit 17038de5f16569a25343cf68668f3b657eafb00e
-Author: Chris Wilson <chris at chris-wilson.co.uk>
-Date:   Mon Apr 16 22:43:42 2012 +0100
-
-    drm/i915/dp: Flush any outstanding work to turn the VDD off
-
-v3: the current panel_off code forces off the vdd power, too. Which is
-bogus and resulted in some funny warnings later on when we've tried to
-do aux channel communications with just the vdd forced on. Fix this,
-too.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=46312
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=43163
-Tested-by: Vincent Frentzel <zcecc22 at gmail.com>
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: nothing to revert here]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_dp.c |   17 ++++++++---------
- 1 file changed, 8 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index 12eb789..d4c4937 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -1149,10 +1149,10 @@ static void ironlake_edp_panel_off(struct intel_dp *intel_dp)
- 
- 	DRM_DEBUG_KMS("Turn eDP power off\n");
- 
--	WARN(intel_dp->want_panel_vdd, "Cannot turn power off while VDD is on\n");
-+	WARN(!intel_dp->want_panel_vdd, "Need VDD to turn off panel\n");
- 
- 	pp = ironlake_get_pp_control(dev_priv);
--	pp &= ~(POWER_TARGET_ON | EDP_FORCE_VDD | PANEL_POWER_RESET | EDP_BLC_ENABLE);
-+	pp &= ~(POWER_TARGET_ON | PANEL_POWER_RESET | EDP_BLC_ENABLE);
- 	I915_WRITE(PCH_PP_CONTROL, pp);
- 	POSTING_READ(PCH_PP_CONTROL);
- 
-@@ -1260,18 +1260,16 @@ static void intel_dp_prepare(struct drm_encoder *encoder)
- {
- 	struct intel_dp *intel_dp = enc_to_intel_dp(encoder);
- 
-+
-+	/* Make sure the panel is off before trying to change the mode. But also
-+	 * ensure that we have vdd while we switch off the panel. */
-+	ironlake_edp_panel_vdd_on(intel_dp);
- 	ironlake_edp_backlight_off(intel_dp);
- 	ironlake_edp_panel_off(intel_dp);
- 
--	/* Wake up the sink first */
--	ironlake_edp_panel_vdd_on(intel_dp);
- 	intel_dp_sink_dpms(intel_dp, DRM_MODE_DPMS_ON);
- 	intel_dp_link_down(intel_dp);
- 	ironlake_edp_panel_vdd_off(intel_dp, false);
--
--	/* Make sure the panel is off before trying to
--	 * change the mode
--	 */
- }
- 
- static void intel_dp_commit(struct drm_encoder *encoder)
-@@ -1303,10 +1301,11 @@ intel_dp_dpms(struct drm_encoder *encoder, int mode)
- 	uint32_t dp_reg = I915_READ(intel_dp->output_reg);
- 
- 	if (mode != DRM_MODE_DPMS_ON) {
-+		/* Switching the panel off requires vdd. */
-+		ironlake_edp_panel_vdd_on(intel_dp);
- 		ironlake_edp_backlight_off(intel_dp);
- 		ironlake_edp_panel_off(intel_dp);
- 
--		ironlake_edp_panel_vdd_on(intel_dp);
- 		intel_dp_sink_dpms(intel_dp, mode);
- 		intel_dp_link_down(intel_dp);
- 		ironlake_edp_panel_vdd_off(intel_dp, false);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0011-drm-i915-Add-Clientron-E830-to-the-ignore-LVDS-list.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0011-drm-i915-Add-Clientron-E830-to-the-ignore-LVDS-list.patch
deleted file mode 100644
index ad6ab9f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0011-drm-i915-Add-Clientron-E830-to-the-ignore-LVDS-list.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ef4b47456ac4610f22bb2920e5562a6f854193d6 Mon Sep 17 00:00:00 2001
-From: Joel Sass <jsass at disklessworkstations.com>
-Date: Tue, 10 Jan 2012 13:03:55 -0500
-Subject: [PATCH 11/86] drm/i915: Add Clientron E830 to the ignore LVDS list
-
-commit 44306ab302687b519a31aa498b954c1e26f95a6b upstream.
-
-Signed-off-by: Joel Sass <jsass at disklessworkstations.com>
-Reviewed-by: Adam Jackson <ajax at redhat.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_lvds.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index 583c2d0..8b42354 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -716,6 +716,14 @@ static const struct dmi_system_id intel_no_lvds[] = {
- 		},
- 	},
- 	{
-+                .callback = intel_no_lvds_dmi_callback,
-+                .ident = "Clientron E830",
-+                .matches = {
-+                        DMI_MATCH(DMI_SYS_VENDOR, "Clientron"),
-+                        DMI_MATCH(DMI_PRODUCT_NAME, "E830"),
-+                },
-+        },
-+        {
- 		.callback = intel_no_lvds_dmi_callback,
- 		.ident = "Asus EeeBox PC EB1007",
- 		.matches = {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0012-drm-i915-Ignore-LVDS-on-hp-t5745-and-hp-st5747-thin-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0012-drm-i915-Ignore-LVDS-on-hp-t5745-and-hp-st5747-thin-.patch
deleted file mode 100644
index 8ffca2f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0012-drm-i915-Ignore-LVDS-on-hp-t5745-and-hp-st5747-thin-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 6beb441393de6232df05c7850c99d26dd5ebbded Mon Sep 17 00:00:00 2001
-From: Marc Gariepy <mgariepy at ubuntu.com>
-Date: Thu, 9 Feb 2012 09:35:21 -0500
-Subject: [PATCH 12/86] drm/i915: Ignore LVDS on hp t5745 and hp st5747 thin
- client
-
-commit f5b8a7ed0405d48fd096acce48fbefbed77fb055 upstream.
-
-Add a no_lvds quirk for the HP t5745 and HP st5747 thin clients
-
-dmidecode for those thin clients are attached in thoses bugs:
-https://bugs.launchpad.net/ubuntu/+source/linux/+bug/911916
-https://bugs.launchpad.net/ubuntu/+source/linux/+bug/911920
-
-Signed-off-by: Marc Gariepy <mgariepy at ubuntu.com>
-Acked-by: Adam Jackson <ajax at redhat.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: adjust context because these quirk entries aren't
- consistently cc'd to stable and are now being applied out of order]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_lvds.c |   16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index 8b42354..8c8a242 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -741,6 +741,22 @@ static const struct dmi_system_id intel_no_lvds[] = {
- 	},
- 	{
- 		.callback = intel_no_lvds_dmi_callback,
-+		.ident = "Hewlett-Packard t5745",
-+		.matches = {
-+			DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"),
-+			DMI_MATCH(DMI_BOARD_NAME, "hp t5745"),
-+		},
-+	},
-+	{
-+		.callback = intel_no_lvds_dmi_callback,
-+		.ident = "Hewlett-Packard st5747",
-+		.matches = {
-+			DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"),
-+			DMI_MATCH(DMI_BOARD_NAME, "hp st5747"),
-+		},
-+	},
-+	{
-+		.callback = intel_no_lvds_dmi_callback,
- 		.ident = "MSI Wind Box DC500",
- 		.matches = {
- 			DMI_MATCH(DMI_BOARD_VENDOR, "MICRO-STAR INTERNATIONAL CO., LTD"),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0013-drm-i915-no-lvds-quirk-for-HP-t5740e-Thin-Client.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0013-drm-i915-no-lvds-quirk-for-HP-t5740e-Thin-Client.patch
deleted file mode 100644
index dc269a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0013-drm-i915-no-lvds-quirk-for-HP-t5740e-Thin-Client.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From f2171756e0e65d51316644162826fd3c64774734 Mon Sep 17 00:00:00 2001
-From: Jan-Benedict Glaw <jan-benedict.glaw at getslash.de>
-Date: Tue, 22 May 2012 15:21:53 +0200
-Subject: [PATCH 13/86] drm/i915: no lvds quirk for HP t5740e Thin Client
-
-commit 3347111999870c37eab1b969e90af9fdaf0334ba upstream.
-
-This box has DisplayPort and VGA, but no LVDS. Product specs are at
-http://h10010.www1.hp.com/wwpc/us/en/sm/WF25a/12454-12454-321959-338927-3640406-4282707.html?dnr=1
-and dmidecode output can be found at http://www.getslash.de/bug_attachments/dmidecode-t5740e.txt
-
-Signed-off-by: Jan-Benedict Glaw <jbglaw at getslash.de>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_lvds.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index 8c8a242..ceec71b 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -741,6 +741,14 @@ static const struct dmi_system_id intel_no_lvds[] = {
- 	},
- 	{
- 		.callback = intel_no_lvds_dmi_callback,
-+		.ident = "Hewlett-Packard HP t5740e Thin Client",
-+		.matches = {
-+			DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "HP t5740e Thin Client"),
-+		},
-+	},
-+	{
-+		.callback = intel_no_lvds_dmi_callback,
- 		.ident = "Hewlett-Packard t5745",
- 		.matches = {
- 			DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0014-drm-i915-wait-for-a-vblank-to-pass-after-tv-detect.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0014-drm-i915-wait-for-a-vblank-to-pass-after-tv-detect.patch
deleted file mode 100644
index 8a83f69..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0014-drm-i915-wait-for-a-vblank-to-pass-after-tv-detect.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From f3a0b43b245485fb298eac1ba14679bf95a2a88b Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Tue, 22 May 2012 21:41:25 +0200
-Subject: [PATCH 14/86] drm/i915: wait for a vblank to pass after tv detect
-
-commit bf2125e2f7e931b50a6c76ba0435ba001409ccbf upstream.
-
-Otherwise the hw will get confused and result in a black screen.
-
-This regression has been most likely introduce in
-
-commit 974b93315b2213b74a42a87e8a9d4fc8c0dbe90c
-Author: Chris Wilson <chris at chris-wilson.co.uk>
-Date:   Sun Sep 5 00:44:20 2010 +0100
-
-    drm/i915/tv: Poll for DAC state change
-
-That commit replace the first msleep(20) with a busy-loop, but failed
-to keep the 2nd msleep around. Later on we've replaced all these
-msleep(20) by proper vblanks.
-
-For reference also see the commit in xf86-video-intel:
-
-commit 1142be53eb8d2ee8a9b60ace5d49f0ba27332275
-Author: Jesse Barnes <jbarnes at hobbes.lan>
-Date:   Mon Jun 9 08:52:59 2008 -0700
-
-    Fix TV programming:  add vblank wait after TV_CTL writes
-
-    Fxies FDO bug #14000; we need to wait for vblank after
-    writing TV_CTL or following "DPMS on" calls may not actually enable the output.
-
-v2: As suggested by Chris Wilson, add a small comment to ensure that
-no one accidentally removes this vblank wait again - there really
-seems to be no sane explanation for why we need it, but it is
-required.
-
-Launchpad: https://bugs.launchpad.net/ubuntu/+source/xserver-xorg-video-intel/+bug/763688
-Reported-and-Tested-by: Robert Lowery <rglowery at exemail.com.au>
-Cc: Rodrigo Vivi <rodrigo.vivi at gmail.com>
-Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_tv.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index 2b1fcad..12041fa 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -1307,6 +1307,11 @@ intel_tv_detect_type(struct intel_tv *intel_tv,
- 
- 	I915_WRITE(TV_DAC, save_tv_dac & ~TVDAC_STATE_CHG_EN);
- 	I915_WRITE(TV_CTL, save_tv_ctl);
-+	POSTING_READ(TV_CTL);
-+
-+	/* For unknown reasons the hw barfs if we don't do this vblank wait. */
-+	intel_wait_for_vblank(intel_tv->base.base.dev,
-+			      to_intel_crtc(intel_tv->base.base.crtc)->pipe);
- 
- 	/* Restore interrupt config */
- 	if (connector->polled & DRM_CONNECTOR_POLL_HPD) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0015-drm-i915-Update-GEN6_RP_CONTROL-definitions.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0015-drm-i915-Update-GEN6_RP_CONTROL-definitions.patch
deleted file mode 100644
index 74edb53..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0015-drm-i915-Update-GEN6_RP_CONTROL-definitions.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From f303698996052a0fcd44d1fbfbfa58a20d59a1e1 Mon Sep 17 00:00:00 2001
-From: Ben Widawsky <ben at bwidawsk.net>
-Date: Mon, 12 Dec 2011 19:21:59 -0800
-Subject: [PATCH 15/86] drm/i915: Update GEN6_RP_CONTROL definitions
-
-commit 6ed55ee7da15329476174bc5821dbc723f671f44 upstream.
-
-This matches the modern specs more accurately.
-
-This will be used by the following patch to fix the way we display RC
-status.
-
-Signed-off-by: Ben Widawsky <ben at bwidawsk.net>
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_reg.h      |    6 +++++-
- drivers/gpu/drm/i915/intel_display.c |    2 +-
- 2 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index a1d53b6..06ec1e5 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -3533,7 +3533,11 @@
- #define   GEN6_CAGF_MASK			(0x7f << GEN6_CAGF_SHIFT)
- #define GEN6_RP_CONTROL				0xA024
- #define   GEN6_RP_MEDIA_TURBO			(1<<11)
--#define   GEN6_RP_USE_NORMAL_FREQ		(1<<9)
-+#define   GEN6_RP_MEDIA_MODE_MASK		(3<<9)
-+#define   GEN6_RP_MEDIA_HW_TURBO_MODE		(3<<9)
-+#define   GEN6_RP_MEDIA_HW_NORMAL_MODE		(2<<9)
-+#define   GEN6_RP_MEDIA_HW_MODE			(1<<9)
-+#define   GEN6_RP_MEDIA_SW_MODE			(0<<9)
- #define   GEN6_RP_MEDIA_IS_GFX			(1<<8)
- #define   GEN6_RP_ENABLE			(1<<7)
- #define   GEN6_RP_UP_IDLE_MIN			(0x1<<3)
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 3ff980d..ed27fbc 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8005,7 +8005,7 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
- 	I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 10);
- 	I915_WRITE(GEN6_RP_CONTROL,
- 		   GEN6_RP_MEDIA_TURBO |
--		   GEN6_RP_USE_NORMAL_FREQ |
-+		   GEN6_RP_MEDIA_HW_MODE |
- 		   GEN6_RP_MEDIA_IS_GFX |
- 		   GEN6_RP_ENABLE |
- 		   GEN6_RP_UP_BUSY_AVG |
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0016-drm-i915-always-use-RPNSWREQ-for-turbo-change-reques.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0016-drm-i915-always-use-RPNSWREQ-for-turbo-change-reques.patch
deleted file mode 100644
index 5a9ce7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0016-drm-i915-always-use-RPNSWREQ-for-turbo-change-reques.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f3c8f039e644d5ce7961567174a9d5b8ebb4b447 Mon Sep 17 00:00:00 2001
-From: Jesse Barnes <jbarnes at virtuousgeek.org>
-Date: Tue, 22 May 2012 09:30:33 -0700
-Subject: [PATCH 16/86] drm/i915: always use RPNSWREQ for turbo change
- requests
-
-commit 89ba829e38bd500f438bc08af4229204c8ed7f35 upstream.
-
-Media turbo requests can either use RPVSWREQ or RPNSWREQ to indicate
-what the interrupt handler should do.  Since we only deal with the
-latter in our turbo code, make the media engine use that for turbo
-requests.
-
-Tested-by: Joe Bloggsian <joebloggsian at gmail.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index ed27fbc..41bbe78 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8005,7 +8005,7 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
- 	I915_WRITE(GEN6_RP_IDLE_HYSTERSIS, 10);
- 	I915_WRITE(GEN6_RP_CONTROL,
- 		   GEN6_RP_MEDIA_TURBO |
--		   GEN6_RP_MEDIA_HW_MODE |
-+		   GEN6_RP_MEDIA_HW_NORMAL_MODE |
- 		   GEN6_RP_MEDIA_IS_GFX |
- 		   GEN6_RP_ENABLE |
- 		   GEN6_RP_UP_BUSY_AVG |
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0017-solos-pci-Fix-DMA-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0017-solos-pci-Fix-DMA-support.patch
deleted file mode 100644
index 8767291..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0017-solos-pci-Fix-DMA-support.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 44882d3e1cf0d691b04f438f70a32e6b918961d7 Mon Sep 17 00:00:00 2001
-From: David Woodhouse <dwmw2 at infradead.org>
-Date: Thu, 24 May 2012 04:58:27 +0000
-Subject: [PATCH 17/86] solos-pci: Fix DMA support
-
-commit b4bd8ad9bb311e8536f726f7a633620ccd358cde upstream.
-
-DMA support has finally made its way to the top of the TODO list, having
-realised that a Geode using MMIO can't keep up with two ADSL2+ lines
-each running at 21Mb/s.
-
-This patch fixes a couple of bugs in the DMA support in the driver, so
-once the corresponding FPGA update is complete and tested everything
-should work properly.
-
-We weren't storing the currently-transmitting skb, so we were never
-unmapping it and never freeing/popping it when the TX was done.
-And the addition of pci_set_master() is fairly self-explanatory.
-
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/atm/solos-pci.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/atm/solos-pci.c b/drivers/atm/solos-pci.c
-index 5d1d076..d452592 100644
---- a/drivers/atm/solos-pci.c
-+++ b/drivers/atm/solos-pci.c
-@@ -984,6 +984,7 @@ static uint32_t fpga_tx(struct solos_card *card)
- 			} else if (skb && card->using_dma) {
- 				SKB_CB(skb)->dma_addr = pci_map_single(card->dev, skb->data,
- 								       skb->len, PCI_DMA_TODEVICE);
-+				card->tx_skb[port] = skb;
- 				iowrite32(SKB_CB(skb)->dma_addr,
- 					  card->config_regs + TX_DMA_ADDR(port));
- 			}
-@@ -1152,7 +1153,8 @@ static int fpga_probe(struct pci_dev *dev, const struct pci_device_id *id)
- 		db_fpga_upgrade = db_firmware_upgrade = 0;
- 	}
- 
--	if (card->fpga_version >= DMA_SUPPORTED){
-+	if (card->fpga_version >= DMA_SUPPORTED) {
-+		pci_set_master(dev);
- 		card->using_dma = 1;
- 	} else {
- 		card->using_dma = 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0018-microblaze-Do-not-select-GENERIC_GPIO-by-default.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0018-microblaze-Do-not-select-GENERIC_GPIO-by-default.patch
deleted file mode 100644
index 0aa2bca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0018-microblaze-Do-not-select-GENERIC_GPIO-by-default.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d821eff0a262c36772be73973e20aea13568911e Mon Sep 17 00:00:00 2001
-From: Lars-Peter Clausen <lars at metafoo.de>
-Date: Mon, 9 Apr 2012 15:05:44 +0200
-Subject: [PATCH 18/86] microblaze: Do not select GENERIC_GPIO by default
-
-commit 59516b07b4ffa7e607a5787674ea3c405f1b390c upstream.
-
-The microblaze architecture does not provide a native GPIO API implementation
-nor requires GPIOLIB, but still selects GENERIC_GPIO by default. As a result the
-following build error occurs, if GPIOLIB is not selected:
-
-	include/asm-generic/gpio.h: In function 'gpio_get_value_cansleep':
-	include/asm-generic/gpio.h:218: error: implicit declaration of function '__gpio_get_value'
-	include/asm-generic/gpio.h: In function 'gpio_set_value_cansleep':
-	include/asm-generic/gpio.h:224: error: implicit declaration of function '__gpio_set_value'
-
-This patch addresses the issue by not selecting GENERIC_GPIO by default. This
-causes the GPIO API to be stubbed out if no implementation is provided.
-
-Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
-Tested-by: Michal Simek <monstr at monstr.eu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/microblaze/Kconfig |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/microblaze/Kconfig b/arch/microblaze/Kconfig
-index e446bab..a93ed04 100644
---- a/arch/microblaze/Kconfig
-+++ b/arch/microblaze/Kconfig
-@@ -46,7 +46,7 @@ config GENERIC_CLOCKEVENTS
- 	def_bool y
- 
- config GENERIC_GPIO
--	def_bool y
-+	bool
- 
- config GENERIC_CSUM
- 	def_bool y
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0019-fix-boot-failure-on-32-bit-systems-caused-by-branch-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0019-fix-boot-failure-on-32-bit-systems-caused-by-branch-.patch
deleted file mode 100644
index 5bf5053..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0019-fix-boot-failure-on-32-bit-systems-caused-by-branch-.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c3697804cdbf0ae3b5ae49ce49abea593e03e08c Mon Sep 17 00:00:00 2001
-From: John David Anglin <dave.anglin at bell.net>
-Date: Thu, 17 May 2012 10:34:34 -0400
-Subject: [PATCH 19/86] fix boot failure on 32-bit systems caused by branch
- stubs placed before .text
-
-commit ed5fb2471b7060767957fb964eb1aaec71533ab1 upstream.
-
-In certain configurations, the resulting kernel becomes too large to boot
-because the linker places the long branch stubs for the merged .text section
-at the very start of the image.  As a result, the initial transfer of control
-jumps to an unexpected location.  Fix this by placing the head text in a
-separate section so the stubs for .text are not at the start of the image.
-
-Signed-off-by: John David Anglin <dave.anglin at bell.net>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/parisc/kernel/vmlinux.lds.S |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/arch/parisc/kernel/vmlinux.lds.S b/arch/parisc/kernel/vmlinux.lds.S
-index fa6f2b8..64a9998 100644
---- a/arch/parisc/kernel/vmlinux.lds.S
-+++ b/arch/parisc/kernel/vmlinux.lds.S
-@@ -50,8 +50,10 @@ SECTIONS
- 	. = KERNEL_BINARY_TEXT_START;
- 
- 	_text = .;		/* Text and read-only data */
--	.text ALIGN(16) : {
-+	.head ALIGN(16) : {
- 		HEAD_TEXT
-+	} = 0
-+	.text ALIGN(16) : {
- 		TEXT_TEXT
- 		SCHED_TEXT
- 		LOCK_TEXT
-@@ -65,7 +67,7 @@ SECTIONS
- 		*(.fixup)
- 		*(.lock.text)		/* out-of-line lock text */
- 		*(.gnu.warning)
--	} = 0
-+	}
- 	/* End of text section */
- 	_etext = .;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0020-fix-TLB-fault-path-on-PA2.0-narrow-systems.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0020-fix-TLB-fault-path-on-PA2.0-narrow-systems.patch
deleted file mode 100644
index 45a00c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0020-fix-TLB-fault-path-on-PA2.0-narrow-systems.patch
+++ /dev/null
@@ -1,142 +0,0 @@
-From 4eb3b7f46aefa5899d72767e3bf1a826fd563a7a Mon Sep 17 00:00:00 2001
-From: James Bottomley <JBottomley at Parallels.com>
-Date: Mon, 21 May 2012 07:49:01 +0100
-Subject: [PATCH 20/86] fix TLB fault path on PA2.0 narrow systems
-
-commit 2f649c1f6f0fef445ce79a19b79e5ce8fe9d7f19 upstream.
-
-commit 5e185581d7c46ddd33cd9c01106d1fc86efb9376
-Author: James Bottomley <JBottomley at Parallels.com>
-
-    [PARISC] fix PA1.1 oops on boot
-
-Didn't quite fix the crash on boot.  It moved it from PA1.1 processors to
-PA2.0 narrow kernels.  The final fix is to make sure the [id]tlb_miss_20 paths
-also work.  Even on narrow systems, these paths require using the wide
-instructions becuase the tlb insertion format is wide.  Fix this by
-conditioning the dep[wd],z on whether we're being called from _11 or _20[w]
-paths.
-
-Tested-by: Helge Deller <deller at gmx.de>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/parisc/kernel/entry.S |   30 +++++++++++++++++-------------
- 1 file changed, 17 insertions(+), 13 deletions(-)
-
-diff --git a/arch/parisc/kernel/entry.S b/arch/parisc/kernel/entry.S
-index 5350342..07ef351 100644
---- a/arch/parisc/kernel/entry.S
-+++ b/arch/parisc/kernel/entry.S
-@@ -552,7 +552,7 @@
- 	 * entry (identifying the physical page) and %r23 up with
- 	 * the from tlb entry (or nothing if only a to entry---for
- 	 * clear_user_page_asm) */
--	.macro		do_alias	spc,tmp,tmp1,va,pte,prot,fault
-+	.macro		do_alias	spc,tmp,tmp1,va,pte,prot,fault,patype
- 	cmpib,COND(<>),n 0,\spc,\fault
- 	ldil		L%(TMPALIAS_MAP_START),\tmp
- #if defined(CONFIG_64BIT) && (TMPALIAS_MAP_START >= 0x80000000)
-@@ -581,11 +581,15 @@
- 	 */
- 	cmpiclr,=	0x01,\tmp,%r0
- 	ldi		(_PAGE_DIRTY|_PAGE_READ|_PAGE_WRITE),\prot
--#ifdef CONFIG_64BIT
-+.ifc \patype,20
- 	depd,z		\prot,8,7,\prot
--#else
-+.else
-+.ifc \patype,11
- 	depw,z		\prot,8,7,\prot
--#endif
-+.else
-+	.error "undefined PA type to do_alias"
-+.endif
-+.endif
- 	/*
- 	 * OK, it is in the temp alias region, check whether "from" or "to".
- 	 * Check "subtle" note in pacache.S re: r23/r26.
-@@ -1189,7 +1193,7 @@ dtlb_miss_20w:
- 	nop
- 
- dtlb_check_alias_20w:
--	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault
-+	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault,20
- 
- 	idtlbt          pte,prot
- 
-@@ -1213,7 +1217,7 @@ nadtlb_miss_20w:
- 	nop
- 
- nadtlb_check_alias_20w:
--	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate
-+	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate,20
- 
- 	idtlbt          pte,prot
- 
-@@ -1245,7 +1249,7 @@ dtlb_miss_11:
- 	nop
- 
- dtlb_check_alias_11:
--	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault
-+	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault,11
- 
- 	idtlba          pte,(va)
- 	idtlbp          prot,(va)
-@@ -1277,7 +1281,7 @@ nadtlb_miss_11:
- 	nop
- 
- nadtlb_check_alias_11:
--	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate
-+	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate,11
- 
- 	idtlba          pte,(va)
- 	idtlbp          prot,(va)
-@@ -1304,7 +1308,7 @@ dtlb_miss_20:
- 	nop
- 
- dtlb_check_alias_20:
--	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault
-+	do_alias	spc,t0,t1,va,pte,prot,dtlb_fault,20
- 	
- 	idtlbt          pte,prot
- 
-@@ -1330,7 +1334,7 @@ nadtlb_miss_20:
- 	nop
- 
- nadtlb_check_alias_20:
--	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate
-+	do_alias	spc,t0,t1,va,pte,prot,nadtlb_emulate,20
- 
- 	idtlbt          pte,prot
- 
-@@ -1457,7 +1461,7 @@ naitlb_miss_20w:
- 	nop
- 
- naitlb_check_alias_20w:
--	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault
-+	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault,20
- 
- 	iitlbt		pte,prot
- 
-@@ -1511,7 +1515,7 @@ naitlb_miss_11:
- 	nop
- 
- naitlb_check_alias_11:
--	do_alias	spc,t0,t1,va,pte,prot,itlb_fault
-+	do_alias	spc,t0,t1,va,pte,prot,itlb_fault,11
- 
- 	iitlba          pte,(%sr0, va)
- 	iitlbp          prot,(%sr0, va)
-@@ -1557,7 +1561,7 @@ naitlb_miss_20:
- 	nop
- 
- naitlb_check_alias_20:
--	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault
-+	do_alias	spc,t0,t1,va,pte,prot,naitlb_fault,20
- 
- 	iitlbt          pte,prot
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0021-iwlwifi-update-BT-traffic-load-states-correctly.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0021-iwlwifi-update-BT-traffic-load-states-correctly.patch
deleted file mode 100644
index ae85f30..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0021-iwlwifi-update-BT-traffic-load-states-correctly.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d6c8a717c65d6ffaf27d7eead214275785dfd47d Mon Sep 17 00:00:00 2001
-From: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Date: Wed, 16 May 2012 22:35:57 +0200
-Subject: [PATCH 21/86] iwlwifi: update BT traffic load states correctly
-
-commit 882dde8eb0d49ce0f853f8f4084dde56a21fe55f upstream.
-
-When BT traffic load changes from its
-previous state, a new LQ command needs to be
-sent down to the firmware. This needs to
-be done only once per change. The state
-variable that keeps track of this change is
-last_bt_traffic_load. However, it was not
-being updated when the change had been
-handled. Not updating this variable was
-causing a flood of advanced BT config
-commands to be sent to the firmware. Fix
-this.
-
-Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-agn-rs.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-index 66118ce..9ba2c1b 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-@@ -886,6 +886,7 @@ static void rs_bt_update_lq(struct iwl_priv *priv, struct iwl_rxon_context *ctx,
- 	if ((priv->bt_traffic_load != priv->last_bt_traffic_load) ||
- 	    (priv->bt_full_concurrent != full_concurrent)) {
- 		priv->bt_full_concurrent = full_concurrent;
-+		priv->last_bt_traffic_load = priv->bt_traffic_load;
- 
- 		/* Update uCode's rate table. */
- 		tbl = &(lq_sta->lq_info[lq_sta->active_tbl]);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0022-iwlwifi-do-not-use-shadow-registers-by-default.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0022-iwlwifi-do-not-use-shadow-registers-by-default.patch
deleted file mode 100644
index e07210e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0022-iwlwifi-do-not-use-shadow-registers-by-default.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 1b2a3d0a7a21c97a9803bafe00e150d6b7d6b7c3 Mon Sep 17 00:00:00 2001
-From: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Date: Wed, 16 May 2012 22:35:59 +0200
-Subject: [PATCH 22/86] iwlwifi: do not use shadow registers by default
-
-commit 66a770729a5cdd24efed8afa5258f81232d8bba2 upstream.
-
-Shadow registers in the device are meant to
-allow the driver to update certain device
-registers without needing to wake up all
-components of the device. However, using
-this feature in the device causes
-communication between the driver and the
-device to become unreliable, resulting in
-host command timeouts.
-
-Disable this feature by default till a fix is
-available for the bug.
-
-Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-2000.c |    4 ++--
- drivers/net/wireless/iwlwifi/iwl-6000.c |    6 +++---
- 2 files changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-2000.c b/drivers/net/wireless/iwlwifi/iwl-2000.c
-index 9823e41..a97a52a 100644
---- a/drivers/net/wireless/iwlwifi/iwl-2000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-2000.c
-@@ -211,7 +211,7 @@ static struct iwl_base_params iwl2000_base_params = {
- 	.chain_noise_scale = 1000,
- 	.wd_timeout = IWL_DEF_WD_TIMEOUT,
- 	.max_event_log_size = 512,
--	.shadow_reg_enable = true,
-+	.shadow_reg_enable = false, /* TODO: fix bugs using this feature */
- 	.hd_v2 = true,
- };
- 
-@@ -230,7 +230,7 @@ static struct iwl_base_params iwl2030_base_params = {
- 	.chain_noise_scale = 1000,
- 	.wd_timeout = IWL_LONG_WD_TIMEOUT,
- 	.max_event_log_size = 512,
--	.shadow_reg_enable = true,
-+	.shadow_reg_enable = false, /* TODO: fix bugs using this feature */
- 	.hd_v2 = true,
- };
- 
-diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
-index b4f809c..0b9f797 100644
---- a/drivers/net/wireless/iwlwifi/iwl-6000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
-@@ -308,7 +308,7 @@ static struct iwl_base_params iwl6000_base_params = {
- 	.chain_noise_scale = 1000,
- 	.wd_timeout = IWL_DEF_WD_TIMEOUT,
- 	.max_event_log_size = 512,
--	.shadow_reg_enable = true,
-+	.shadow_reg_enable = false, /* TODO: fix bugs using this feature */
- };
- 
- static struct iwl_base_params iwl6050_base_params = {
-@@ -325,7 +325,7 @@ static struct iwl_base_params iwl6050_base_params = {
- 	.chain_noise_scale = 1500,
- 	.wd_timeout = IWL_DEF_WD_TIMEOUT,
- 	.max_event_log_size = 1024,
--	.shadow_reg_enable = true,
-+	.shadow_reg_enable = false, /* TODO: fix bugs using this feature */
- };
- static struct iwl_base_params iwl6000_g2_base_params = {
- 	.eeprom_size = OTP_LOW_IMAGE_SIZE,
-@@ -341,7 +341,7 @@ static struct iwl_base_params iwl6000_g2_base_params = {
- 	.chain_noise_scale = 1000,
- 	.wd_timeout = IWL_LONG_WD_TIMEOUT,
- 	.max_event_log_size = 512,
--	.shadow_reg_enable = true,
-+	.shadow_reg_enable = false, /* TODO: fix bugs using this feature */
- };
- 
- static struct iwl_ht_params iwl6000_ht_params = {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0023-wl1251-fix-oops-on-early-interrupt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0023-wl1251-fix-oops-on-early-interrupt.patch
deleted file mode 100644
index 63e29df..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0023-wl1251-fix-oops-on-early-interrupt.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 430e704f68d8b8c21a7d764e1f0ea94614a303e2 Mon Sep 17 00:00:00 2001
-From: Grazvydas Ignotas <notasas at gmail.com>
-Date: Fri, 18 May 2012 03:04:08 +0300
-Subject: [PATCH 23/86] wl1251: fix oops on early interrupt
-
-commit f380f2c4a12e913356bd49f8790ec1063c4fe9f8 upstream.
-
-This driver disables interrupt just after requesting it and enables it
-later, after interface is up. However currently there is a time window
-between request_irq() and disable_irq() where if interrupt arrives, the
-driver oopses because it's not yet ready to process it. This can be
-reproduced by inserting the module, associating and removing the module
-multiple times.
-
-Eliminate this race by setting IRQF_NOAUTOEN flag before request_irq().
-
-Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/wl1251/sdio.c |    2 +-
- drivers/net/wireless/wl1251/spi.c  |    3 +--
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/wireless/wl1251/sdio.c b/drivers/net/wireless/wl1251/sdio.c
-index 1b851f6..e2750a1 100644
---- a/drivers/net/wireless/wl1251/sdio.c
-+++ b/drivers/net/wireless/wl1251/sdio.c
-@@ -260,6 +260,7 @@ static int wl1251_sdio_probe(struct sdio_func *func,
- 	}
- 
- 	if (wl->irq) {
-+		irq_set_status_flags(wl->irq, IRQ_NOAUTOEN);
- 		ret = request_irq(wl->irq, wl1251_line_irq, 0, "wl1251", wl);
- 		if (ret < 0) {
- 			wl1251_error("request_irq() failed: %d", ret);
-@@ -267,7 +268,6 @@ static int wl1251_sdio_probe(struct sdio_func *func,
- 		}
- 
- 		irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
--		disable_irq(wl->irq);
- 
- 		wl1251_sdio_ops.enable_irq = wl1251_enable_line_irq;
- 		wl1251_sdio_ops.disable_irq = wl1251_disable_line_irq;
-diff --git a/drivers/net/wireless/wl1251/spi.c b/drivers/net/wireless/wl1251/spi.c
-index eaa5f95..134ae9c 100644
---- a/drivers/net/wireless/wl1251/spi.c
-+++ b/drivers/net/wireless/wl1251/spi.c
-@@ -281,6 +281,7 @@ static int __devinit wl1251_spi_probe(struct spi_device *spi)
- 
- 	wl->use_eeprom = pdata->use_eeprom;
- 
-+	irq_set_status_flags(wl->irq, IRQ_NOAUTOEN);
- 	ret = request_irq(wl->irq, wl1251_irq, 0, DRIVER_NAME, wl);
- 	if (ret < 0) {
- 		wl1251_error("request_irq() failed: %d", ret);
-@@ -289,8 +290,6 @@ static int __devinit wl1251_spi_probe(struct spi_device *spi)
- 
- 	irq_set_irq_type(wl->irq, IRQ_TYPE_EDGE_RISING);
- 
--	disable_irq(wl->irq);
--
- 	ret = wl1251_init_ieee80211(wl);
- 	if (ret)
- 		goto out_irq;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0024-NFSv4-Map-NFS4ERR_SHARE_DENIED-into-an-EACCES-error-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0024-NFSv4-Map-NFS4ERR_SHARE_DENIED-into-an-EACCES-error-.patch
deleted file mode 100644
index 0eacfc1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0024-NFSv4-Map-NFS4ERR_SHARE_DENIED-into-an-EACCES-error-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From b93bea69232a6e245feb4094ffbb43181a057a31 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Mon, 28 May 2012 11:36:28 -0400
-Subject: [PATCH 24/86] NFSv4: Map NFS4ERR_SHARE_DENIED into an EACCES error
- instead of EIO
-
-commit fb13bfa7e1bcfdcfdece47c24b62f1a1cad957e9 upstream.
-
-If a file OPEN is denied due to a share lock, the resulting
-NFS4ERR_SHARE_DENIED is currently mapped to the default EIO.
-This patch adds a more appropriate mapping, and brings Linux
-into line with what Solaris 10 does.
-
-See https://bugzilla.kernel.org/show_bug.cgi?id=43286
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 03d9b90..a3cae5d 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -96,6 +96,8 @@ static int nfs4_map_errors(int err)
- 	case -NFS4ERR_BADOWNER:
- 	case -NFS4ERR_BADNAME:
- 		return -EINVAL;
-+	case -NFS4ERR_SHARE_DENIED:
-+		return -EACCES;
- 	default:
- 		dprintk("%s could not handle NFSv4 error %d\n",
- 				__func__, -err);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0025-drm-radeon-fix-XFX-quirk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0025-drm-radeon-fix-XFX-quirk.patch
deleted file mode 100644
index 4f3f165..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0025-drm-radeon-fix-XFX-quirk.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From cce4054d32b88b0f9402746063937e36af798333 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Wed, 23 May 2012 11:48:59 -0400
-Subject: [PATCH 25/86] drm/radeon: fix XFX quirk
-
-commit 1ebf169ad4dc68f18cc0dab35163b0f324fc6c41 upstream.
-
-Only override the ddc bus if the connector doesn't have
-a valid one.  The existing code overrode the ddc bus for
-all connectors even if it had ddc bus.
-
-Fixes ddc on another XFX card with the same pci ids that
-was broken by the quirk overwriting the correct ddc bus.
-
-Reported-by: Mehdi Aqadjani Memar <m.aqadjanimemar at student.ru.nl>
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/radeon_atombios.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_atombios.c b/drivers/gpu/drm/radeon/radeon_atombios.c
-index 8e1532f..9d2c369 100644
---- a/drivers/gpu/drm/radeon/radeon_atombios.c
-+++ b/drivers/gpu/drm/radeon/radeon_atombios.c
-@@ -438,7 +438,9 @@ static bool radeon_atom_apply_quirks(struct drm_device *dev,
- 	 */
- 	if ((dev->pdev->device == 0x9498) &&
- 	    (dev->pdev->subsystem_vendor == 0x1682) &&
--	    (dev->pdev->subsystem_device == 0x2452)) {
-+	    (dev->pdev->subsystem_device == 0x2452) &&
-+	    (i2c_bus->valid == false) &&
-+	    !(supported_device & (ATOM_DEVICE_TV_SUPPORT | ATOM_DEVICE_CV_SUPPORT))) {
- 		struct radeon_device *rdev = dev->dev_private;
- 		*i2c_bus = radeon_lookup_i2c_gpio(rdev, 0x93);
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0026-ath9k-fix-a-use-after-free-bug-when-ath_tx_setup_buf.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0026-ath9k-fix-a-use-after-free-bug-when-ath_tx_setup_buf.patch
deleted file mode 100644
index ee6bd61..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0026-ath9k-fix-a-use-after-free-bug-when-ath_tx_setup_buf.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 1e0f99c0848ee2dfcc5a814f141c2c81c20a23ca Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Thu, 24 May 2012 14:32:20 +0200
-Subject: [PATCH 26/86] ath9k: fix a use-after-free-bug when
- ath_tx_setup_buffer() fails
-
-commit 81357a281dcc454841532c46b30e6f2ba12b73ea upstream.
-
-ath_tx_setup_buffer() can fail if there is no ath_buf left, or if mapping DMA
-failed. In this case it frees the skb passed to it.
-If ath_tx_setup_buffer is called from ath_tx_form_aggr, the skb is still
-linked into the tid buffer list and must be dequeued before being released.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/xmit.c |   16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
-index 03b0a65..76fd277 100644
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -64,7 +64,8 @@ static void ath_tx_update_baw(struct ath_softc *sc, struct ath_atx_tid *tid,
- static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc,
- 					   struct ath_txq *txq,
- 					   struct ath_atx_tid *tid,
--					   struct sk_buff *skb);
-+					   struct sk_buff *skb,
-+					   bool dequeue);
- 
- enum {
- 	MCS_HT20,
-@@ -761,7 +762,7 @@ static enum ATH_AGGR_STATUS ath_tx_form_aggr(struct ath_softc *sc,
- 		fi = get_frame_info(skb);
- 		bf = fi->bf;
- 		if (!fi->bf)
--			bf = ath_tx_setup_buffer(sc, txq, tid, skb);
-+			bf = ath_tx_setup_buffer(sc, txq, tid, skb, true);
- 
- 		if (!bf)
- 			continue;
-@@ -1669,7 +1670,7 @@ static void ath_tx_send_ampdu(struct ath_softc *sc, struct ath_atx_tid *tid,
- 		return;
- 	}
- 
--	bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb);
-+	bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb, false);
- 	if (!bf)
- 		return;
- 
-@@ -1696,7 +1697,7 @@ static void ath_tx_send_normal(struct ath_softc *sc, struct ath_txq *txq,
- 
- 	bf = fi->bf;
- 	if (!bf)
--		bf = ath_tx_setup_buffer(sc, txq, tid, skb);
-+		bf = ath_tx_setup_buffer(sc, txq, tid, skb, false);
- 
- 	if (!bf)
- 		return;
-@@ -1761,7 +1762,8 @@ u8 ath_txchainmask_reduction(struct ath_softc *sc, u8 chainmask, u32 rate)
- static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc,
- 					   struct ath_txq *txq,
- 					   struct ath_atx_tid *tid,
--					   struct sk_buff *skb)
-+					   struct sk_buff *skb,
-+					   bool dequeue)
- {
- 	struct ath_common *common = ath9k_hw_common(sc->sc_ah);
- 	struct ath_frame_info *fi = get_frame_info(skb);
-@@ -1802,6 +1804,8 @@ static struct ath_buf *ath_tx_setup_buffer(struct ath_softc *sc,
- 	return bf;
- 
- error:
-+	if (dequeue)
-+		__skb_unlink(skb, &tid->buf_q);
- 	dev_kfree_skb_any(skb);
- 	return NULL;
- }
-@@ -1833,7 +1837,7 @@ static void ath_tx_start_dma(struct ath_softc *sc, struct sk_buff *skb,
- 		 */
- 		ath_tx_send_ampdu(sc, tid, skb, txctl);
- 	} else {
--		bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb);
-+		bf = ath_tx_setup_buffer(sc, txctl->txq, tid, skb, false);
- 		if (!bf)
- 			goto out;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0027-mac80211-fix-ADDBA-declined-after-suspend-with-wowla.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0027-mac80211-fix-ADDBA-declined-after-suspend-with-wowla.patch
deleted file mode 100644
index d357b19..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0027-mac80211-fix-ADDBA-declined-after-suspend-with-wowla.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8446a84cc5885f2d4b3816dccac474f97fc047a9 Mon Sep 17 00:00:00 2001
-From: Eyal Shapira <eyal at wizery.com>
-Date: Tue, 29 May 2012 02:00:22 -0700
-Subject: [PATCH 27/86] mac80211: fix ADDBA declined after suspend with wowlan
-
-commit 7b21aea04d084916ac4e0e8852dcc9cd60ec0d1d upstream.
-
-WLAN_STA_BLOCK_BA is set while suspending but doesn't get cleared
-when resuming in case of wowlan. This causes further ADDBA requests
-received to be rejected. Fix it by clearing it in the wowlan path
-as well.
-
-Signed-off-by: Eyal Shapira <eyal at wizery.com>
-Reviewed-by: Johannes Berg <johannes at sipsolutions.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/mac80211/util.c |   12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/net/mac80211/util.c b/net/mac80211/util.c
-index d5230ec..7095ae5 100644
---- a/net/mac80211/util.c
-+++ b/net/mac80211/util.c
-@@ -1111,6 +1111,12 @@ int ieee80211_reconfig(struct ieee80211_local *local)
- 		}
- 	}
- 
-+	/* add back keys */
-+	list_for_each_entry(sdata, &local->interfaces, list)
-+		if (ieee80211_sdata_running(sdata))
-+			ieee80211_enable_keys(sdata);
-+
-+ wake_up:
- 	/*
- 	 * Clear the WLAN_STA_BLOCK_BA flag so new aggregation
- 	 * sessions can be established after a resume.
-@@ -1132,12 +1138,6 @@ int ieee80211_reconfig(struct ieee80211_local *local)
- 		mutex_unlock(&local->sta_mtx);
- 	}
- 
--	/* add back keys */
--	list_for_each_entry(sdata, &local->interfaces, list)
--		if (ieee80211_sdata_running(sdata))
--			ieee80211_enable_keys(sdata);
--
-- wake_up:
- 	ieee80211_wake_queues_by_reason(hw,
- 			IEEE80211_QUEUE_STOP_REASON_SUSPEND);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0028-mm-fork-fix-overflow-in-vma-length-when-copying-mmap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0028-mm-fork-fix-overflow-in-vma-length-when-copying-mmap.patch
deleted file mode 100644
index 56441d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0028-mm-fork-fix-overflow-in-vma-length-when-copying-mmap.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 078ef70fff8b069bb9bc4eb27aa649ee8aa977dd Mon Sep 17 00:00:00 2001
-From: Siddhesh Poyarekar <siddhesh.poyarekar at gmail.com>
-Date: Tue, 29 May 2012 15:06:22 -0700
-Subject: [PATCH 28/86] mm/fork: fix overflow in vma length when copying mmap
- on clone
-
-commit 7edc8b0ac16cbaed7cb4ea4c6b95ce98d2997e84 upstream.
-
-The vma length in dup_mmap is calculated and stored in a unsigned int,
-which is insufficient and hence overflows for very large maps (beyond
-16TB). The following program demonstrates this:
-
-#include <stdio.h>
-#include <unistd.h>
-#include <sys/mman.h>
-
-#define GIG 1024 * 1024 * 1024L
-#define EXTENT 16393
-
-int main(void)
-{
-        int i, r;
-        void *m;
-        char buf[1024];
-
-        for (i = 0; i < EXTENT; i++) {
-                m = mmap(NULL, (size_t) 1 * 1024 * 1024 * 1024L,
-                         PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, 0, 0);
-
-                if (m == (void *)-1)
-                        printf("MMAP Failed: %d\n", m);
-                else
-                        printf("%d : MMAP returned %p\n", i, m);
-
-                r = fork();
-
-                if (r == 0) {
-                        printf("%d: successed\n", i);
-                        return 0;
-                } else if (r < 0)
-                        printf("FORK Failed: %d\n", r);
-                else if (r > 0)
-                        wait(NULL);
-        }
-        return 0;
-}
-
-Increase the storage size of the result to unsigned long, which is
-sufficient for storing the difference between addresses.
-
-Signed-off-by: Siddhesh Poyarekar <siddhesh.poyarekar at gmail.com>
-Cc: Tejun Heo <tj at kernel.org>
-Cc: Oleg Nesterov <oleg at redhat.com>
-Cc: Jens Axboe <axboe at kernel.dk>
-Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/fork.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 26f1ab0..79ee71f 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -352,7 +352,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
- 		}
- 		charge = 0;
- 		if (mpnt->vm_flags & VM_ACCOUNT) {
--			unsigned int len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
-+			unsigned long len;
-+			len = (mpnt->vm_end - mpnt->vm_start) >> PAGE_SHIFT;
- 			if (security_vm_enough_memory(len))
- 				goto fail_nomem;
- 			charge = len;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0029-mm-consider-all-swapped-back-pages-in-used-once-logi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0029-mm-consider-all-swapped-back-pages-in-used-once-logi.patch
deleted file mode 100644
index efa5eeb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0029-mm-consider-all-swapped-back-pages-in-used-once-logi.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From cf8d6db03ffac6e6a8fa566942bb47d2cc2957bf Mon Sep 17 00:00:00 2001
-From: Michal Hocko <mhocko at suse.cz>
-Date: Tue, 29 May 2012 15:06:45 -0700
-Subject: [PATCH 29/86] mm: consider all swapped back pages in used-once logic
-
-commit e48982734ea0500d1eba4f9d96195acc5406cad6 upstream.
-
-Commit 645747462435 ("vmscan: detect mapped file pages used only once")
-made mapped pages have another round in inactive list because they might
-be just short lived and so we could consider them again next time.  This
-heuristic helps to reduce pressure on the active list with a streaming
-IO worklods.
-
-This patch fixes a regression introduced by this commit for heavy shmem
-based workloads because unlike Anon pages, which are excluded from this
-heuristic because they are usually long lived, shmem pages are handled
-as a regular page cache.
-
-This doesn't work quite well, unfortunately, if the workload is mostly
-backed by shmem (in memory database sitting on 80% of memory) with a
-streaming IO in the background (backup - up to 20% of memory).  Anon
-inactive list is full of (dirty) shmem pages when watermarks are hit.
-Shmem pages are kept in the inactive list (they are referenced) in the
-first round and it is hard to reclaim anything else so we reach lower
-scanning priorities very quickly which leads to an excessive swap out.
-
-Let's fix this by excluding all swap backed pages (they tend to be long
-lived wrt.  the regular page cache anyway) from used-once heuristic and
-rather activate them if they are referenced.
-
-The customer's workload is shmem backed database (80% of RAM) and they
-are measuring transactions/s with an IO in the background (20%).
-Transactions touch more or less random rows in the table.  The
-transaction rate fell by a factor of 3 (in the worst case) because of
-commit 64574746.  This patch restores the previous numbers.
-
-Signed-off-by: Michal Hocko <mhocko at suse.cz>
-Acked-by: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Mel Gorman <mel at csn.ul.ie>
-Cc: Minchan Kim <minchan at kernel.org>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index cb33d9c..fbe2d2c 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -697,7 +697,7 @@ static enum page_references page_check_references(struct page *page,
- 		return PAGEREF_RECLAIM;
- 
- 	if (referenced_ptes) {
--		if (PageAnon(page))
-+		if (PageSwapBacked(page))
- 			return PAGEREF_ACTIVATE;
- 		/*
- 		 * All mapped pages start out with page table
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0030-hugetlb-fix-resv_map-leak-in-error-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0030-hugetlb-fix-resv_map-leak-in-error-path.patch
deleted file mode 100644
index eb99e73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0030-hugetlb-fix-resv_map-leak-in-error-path.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From a82ac9b8fd3715f2bb17cd888fad25cfefa4bccb Mon Sep 17 00:00:00 2001
-From: Dave Hansen <dave at linux.vnet.ibm.com>
-Date: Fri, 18 May 2012 11:46:30 -0700
-Subject: [PATCH 30/86] hugetlb: fix resv_map leak in error path
-
-commit c50ac050811d6485616a193eb0f37bfbd191cc89 upstream.
-
-When called for anonymous (non-shared) mappings, hugetlb_reserve_pages()
-does a resv_map_alloc().  It depends on code in hugetlbfs's
-vm_ops->close() to release that allocation.
-
-However, in the mmap() failure path, we do a plain unmap_region() without
-the remove_vma() which actually calls vm_ops->close().
-
-This is a decent fix.  This leak could get reintroduced if new code (say,
-after hugetlb_reserve_pages() in hugetlbfs_file_mmap()) decides to return
-an error.  But, I think it would have to unroll the reservation anyway.
-
-Christoph's test case:
-
-	http://marc.info/?l=linux-mm&m=133728900729735
-
-Signed-off-by: Dave Hansen <dave at linux.vnet.ibm.com>
-[Christoph Lameter: I have rediffed the patch against 2.6.32 and 3.2.0.]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/hugetlb.c |   28 ++++++++++++++++++++++------
- 1 file changed, 22 insertions(+), 6 deletions(-)
-
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index 7120c2e..c715bb9 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -2068,6 +2068,15 @@ static void hugetlb_vm_op_open(struct vm_area_struct *vma)
- 		kref_get(&reservations->refs);
- }
- 
-+static void resv_map_put(struct vm_area_struct *vma)
-+{
-+	struct resv_map *reservations = vma_resv_map(vma);
-+
-+	if (!reservations)
-+		return;
-+	kref_put(&reservations->refs, resv_map_release);
-+}
-+
- static void hugetlb_vm_op_close(struct vm_area_struct *vma)
- {
- 	struct hstate *h = hstate_vma(vma);
-@@ -2083,7 +2092,7 @@ static void hugetlb_vm_op_close(struct vm_area_struct *vma)
- 		reserve = (end - start) -
- 			region_count(&reservations->regions, start, end);
- 
--		kref_put(&reservations->refs, resv_map_release);
-+		resv_map_put(vma);
- 
- 		if (reserve) {
- 			hugetlb_acct_memory(h, -reserve);
-@@ -2884,12 +2893,16 @@ int hugetlb_reserve_pages(struct inode *inode,
- 		set_vma_resv_flags(vma, HPAGE_RESV_OWNER);
- 	}
- 
--	if (chg < 0)
--		return chg;
-+	if (chg < 0) {
-+		ret = chg;
-+		goto out_err;
-+	}
- 
- 	/* There must be enough filesystem quota for the mapping */
--	if (hugetlb_get_quota(inode->i_mapping, chg))
--		return -ENOSPC;
-+	if (hugetlb_get_quota(inode->i_mapping, chg)) {
-+		ret = -ENOSPC;
-+		goto out_err;
-+	}
- 
- 	/*
- 	 * Check enough hugepages are available for the reservation.
-@@ -2898,7 +2911,7 @@ int hugetlb_reserve_pages(struct inode *inode,
- 	ret = hugetlb_acct_memory(h, chg);
- 	if (ret < 0) {
- 		hugetlb_put_quota(inode->i_mapping, chg);
--		return ret;
-+		goto out_err;
- 	}
- 
- 	/*
-@@ -2915,6 +2928,9 @@ int hugetlb_reserve_pages(struct inode *inode,
- 	if (!vma || vma->vm_flags & VM_MAYSHARE)
- 		region_add(&inode->i_mapping->private_list, from, to);
- 	return 0;
-+out_err:
-+	resv_map_put(vma);
-+	return ret;
- }
- 
- void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0031-mm-vmalloc.c-change-void-into-explict-vm_struct.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0031-mm-vmalloc.c-change-void-into-explict-vm_struct.patch
deleted file mode 100644
index 002d8e8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0031-mm-vmalloc.c-change-void-into-explict-vm_struct.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From ac48cea598418be2acfa451a3488cdd51570641e Mon Sep 17 00:00:00 2001
-From: Minchan Kim <minchan at kernel.org>
-Date: Tue, 10 Jan 2012 15:08:39 -0800
-Subject: [PATCH 31/86] mm/vmalloc.c: change void* into explict vm_struct*
-
-commit db1aecafef58b5dda39c4228debe2c845e4a27ab upstream.
-
-vmap_area->private is void* but we don't use the field for various purpose
-but use only for vm_struct.  So change it to a vm_struct* with naming to
-improve for readability and type checking.
-
-Signed-off-by: Minchan Kim <minchan at kernel.org>
-Acked-by: David Rientjes <rientjes at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmalloc.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/mm/vmalloc.c b/mm/vmalloc.c
-index 21fdf46..877ca04 100644
---- a/mm/vmalloc.c
-+++ b/mm/vmalloc.c
-@@ -256,7 +256,7 @@ struct vmap_area {
- 	struct rb_node rb_node;		/* address sorted rbtree */
- 	struct list_head list;		/* address sorted list */
- 	struct list_head purge_list;	/* "lazy purge" list */
--	void *private;
-+	struct vm_struct *vm;
- 	struct rcu_head rcu_head;
- };
- 
-@@ -1285,7 +1285,7 @@ static void setup_vmalloc_vm(struct vm_struct *vm, struct vmap_area *va,
- 	vm->addr = (void *)va->va_start;
- 	vm->size = va->va_end - va->va_start;
- 	vm->caller = caller;
--	va->private = vm;
-+	va->vm = vm;
- 	va->flags |= VM_VM_AREA;
- }
- 
-@@ -1408,7 +1408,7 @@ static struct vm_struct *find_vm_area(const void *addr)
- 
- 	va = find_vmap_area((unsigned long)addr);
- 	if (va && va->flags & VM_VM_AREA)
--		return va->private;
-+		return va->vm;
- 
- 	return NULL;
- }
-@@ -1427,7 +1427,7 @@ struct vm_struct *remove_vm_area(const void *addr)
- 
- 	va = find_vmap_area((unsigned long)addr);
- 	if (va && va->flags & VM_VM_AREA) {
--		struct vm_struct *vm = va->private;
-+		struct vm_struct *vm = va->vm;
- 
- 		if (!(vm->flags & VM_UNLIST)) {
- 			struct vm_struct *tmp, **p;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0032-mm-fix-faulty-initialization-in-vmalloc_init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0032-mm-fix-faulty-initialization-in-vmalloc_init.patch
deleted file mode 100644
index 8018140..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0032-mm-fix-faulty-initialization-in-vmalloc_init.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 25ca214b138f89e6881a9fee029f1c55756bd8a3 Mon Sep 17 00:00:00 2001
-From: KyongHo <pullip.cho at samsung.com>
-Date: Tue, 29 May 2012 15:06:49 -0700
-Subject: [PATCH 32/86] mm: fix faulty initialization in vmalloc_init()
-
-commit dbda591d920b4c7692725b13e3f68ecb251e9080 upstream.
-
-The transfer of ->flags causes some of the static mapping virtual
-addresses to be prematurely freed (before the mapping is removed) because
-VM_LAZY_FREE gets "set" if tmp->flags has VM_IOREMAP set.  This might
-cause subsequent vmalloc/ioremap calls to fail because it might allocate
-one of the freed virtual address ranges that aren't unmapped.
-
-va->flags has different types of flags from tmp->flags.  If a region with
-VM_IOREMAP set is registered with vm_area_add_early(), it will be removed
-by __purge_vmap_area_lazy().
-
-Fix vmalloc_init() to correctly initialize vmap_area for the given
-vm_struct.
-
-Also initialise va->vm.  If it is not set, find_vm_area() for the early
-vm regions will always fail.
-
-Signed-off-by: KyongHo Cho <pullip.cho at samsung.com>
-Cc: "Olav Haugan" <ohaugan at codeaurora.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmalloc.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/mm/vmalloc.c b/mm/vmalloc.c
-index 877ca04..577e51d 100644
---- a/mm/vmalloc.c
-+++ b/mm/vmalloc.c
-@@ -1185,9 +1185,10 @@ void __init vmalloc_init(void)
- 	/* Import existing vmlist entries. */
- 	for (tmp = vmlist; tmp; tmp = tmp->next) {
- 		va = kzalloc(sizeof(struct vmap_area), GFP_NOWAIT);
--		va->flags = tmp->flags | VM_VM_AREA;
-+		va->flags = VM_VM_AREA;
- 		va->va_start = (unsigned long)tmp->addr;
- 		va->va_end = va->va_start + tmp->size;
-+		va->vm = tmp;
- 		__insert_vmap_area(va);
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0033-fix-scsi_wait_scan.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0033-fix-scsi_wait_scan.patch
deleted file mode 100644
index e95f557..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0033-fix-scsi_wait_scan.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From f7eda9338b67b376df9a1d42b9533035dde4bf80 Mon Sep 17 00:00:00 2001
-From: James Bottomley <jbottomley at parallels.com>
-Date: Wed, 30 May 2012 09:45:39 +0000
-Subject: [PATCH 33/86] fix scsi_wait_scan
-
-commit 1ff2f40305772b159a91c19590ee159d3a504afc upstream.
-
-Commit  c751085943362143f84346d274e0011419c84202
-Author: Rafael J. Wysocki <rjw at sisk.pl>
-Date:   Sun Apr 12 20:06:56 2009 +0200
-
-    PM/Hibernate: Wait for SCSI devices scan to complete during resume
-
-Broke the scsi_wait_scan module in 2.6.30.  Apparently debian still uses it so
-fix it and backport to stable before removing it in 3.6.
-
-The breakage is caused because the function template in
-include/scsi/scsi_scan.h is defined to be a nop unless SCSI is built in.
-That means that in the modular case (which is every distro), the
-scsi_wait_scan module does a simple async_synchronize_full() instead of
-waiting for scans.
-
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/scsi_wait_scan.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/scsi_wait_scan.c b/drivers/scsi/scsi_wait_scan.c
-index 74708fc..ae78148 100644
---- a/drivers/scsi/scsi_wait_scan.c
-+++ b/drivers/scsi/scsi_wait_scan.c
-@@ -12,7 +12,7 @@
- 
- #include <linux/module.h>
- #include <linux/device.h>
--#include <scsi/scsi_scan.h>
-+#include "scsi_priv.h"
- 
- static int __init wait_scan_init(void)
- {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0034-mm-fix-vma_resv_map-NULL-pointer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0034-mm-fix-vma_resv_map-NULL-pointer.patch
deleted file mode 100644
index df28752..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0034-mm-fix-vma_resv_map-NULL-pointer.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 17ceee89567f7c23b2f1eb1d44a323e20912dd59 Mon Sep 17 00:00:00 2001
-From: Dave Hansen <dave at linux.vnet.ibm.com>
-Date: Wed, 30 May 2012 07:51:07 -0700
-Subject: [PATCH 34/86] mm: fix vma_resv_map() NULL pointer
-
-commit 4523e1458566a0e8ecfaff90f380dd23acc44d27 upstream.
-
-hugetlb_reserve_pages() can be used for either normal file-backed
-hugetlbfs mappings, or MAP_HUGETLB.  In the MAP_HUGETLB, semi-anonymous
-mode, there is not a VMA around.  The new call to resv_map_put() assumed
-that there was, and resulted in a NULL pointer dereference:
-
-  BUG: unable to handle kernel NULL pointer dereference at 0000000000000030
-  IP: vma_resv_map+0x9/0x30
-  PGD 141453067 PUD 1421e1067 PMD 0
-  Oops: 0000 [#1] PREEMPT SMP
-  ...
-  Pid: 14006, comm: trinity-child6 Not tainted 3.4.0+ #36
-  RIP: vma_resv_map+0x9/0x30
-  ...
-  Process trinity-child6 (pid: 14006, threadinfo ffff8801414e0000, task ffff8801414f26b0)
-  Call Trace:
-    resv_map_put+0xe/0x40
-    hugetlb_reserve_pages+0xa6/0x1d0
-    hugetlb_file_setup+0x102/0x2c0
-    newseg+0x115/0x360
-    ipcget+0x1ce/0x310
-    sys_shmget+0x5a/0x60
-    system_call_fastpath+0x16/0x1b
-
-This was reported by Dave Jones, but was reproducible with the
-libhugetlbfs test cases, so shame on me for not running them in the
-first place.
-
-With this, the oops is gone, and the output of libhugetlbfs's
-run_tests.py is identical to plain 3.4 again.
-
-[ Marked for stable, since this was introduced by commit c50ac050811d
-  ("hugetlb: fix resv_map leak in error path") which was also marked for
-  stable ]
-
-Reported-by: Dave Jones <davej at redhat.com>
-Cc: Mel Gorman <mel at csn.ul.ie>
-Cc: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Cc: Christoph Lameter <cl at linux.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/hugetlb.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index c715bb9..5f5c545 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -2929,7 +2929,8 @@ int hugetlb_reserve_pages(struct inode *inode,
- 		region_add(&inode->i_mapping->private_list, from, to);
- 	return 0;
- out_err:
--	resv_map_put(vma);
-+	if (vma)
-+		resv_map_put(vma);
- 	return ret;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0035-x86-amd-xen-Avoid-NULL-pointer-paravirt-references.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0035-x86-amd-xen-Avoid-NULL-pointer-paravirt-references.patch
deleted file mode 100644
index 53bf549..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0035-x86-amd-xen-Avoid-NULL-pointer-paravirt-references.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 827eb1e22d5bbbd59b40cffc5d1e811c4d2e6a24 Mon Sep 17 00:00:00 2001
-From: Konrad Rzeszutek Wilk <konrad at darnok.org>
-Date: Wed, 30 May 2012 18:23:56 -0400
-Subject: [PATCH 35/86] x86, amd, xen: Avoid NULL pointer paravirt references
-
-commit 1ab46fd319bcf1fcd9fb6311727d532b580e4eba upstream.
-
-Stub out MSR methods that aren't actually needed.  This fixes a crash
-as Xen Dom0 on AMD Trinity systems.  A bigger patch should be added to
-remove the paravirt machinery completely for the methods which
-apparently have no users!
-
-Reported-by: Andre Przywara <andre.przywara at amd.com>
-Link: http://lkml.kernel.org/r/20120530222356.GA28417@andromeda.dapyr.net
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/enlighten.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index e7c920b..cca659e 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -982,7 +982,10 @@ static const struct pv_cpu_ops xen_cpu_ops __initconst = {
- 	.wbinvd = native_wbinvd,
- 
- 	.read_msr = native_read_msr_safe,
-+	.rdmsr_regs = native_rdmsr_safe_regs,
- 	.write_msr = xen_write_msr_safe,
-+	.wrmsr_regs = native_wrmsr_safe_regs,
-+
- 	.read_tsc = native_read_tsc,
- 	.read_pmc = native_read_pmc,
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0036-slub-fix-a-memory-leak-in-get_partial_node.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0036-slub-fix-a-memory-leak-in-get_partial_node.patch
deleted file mode 100644
index e399e07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0036-slub-fix-a-memory-leak-in-get_partial_node.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From e03e067f960f7714ac98fdef365cafff22086a6b Mon Sep 17 00:00:00 2001
-From: Joonsoo Kim <js1304 at gmail.com>
-Date: Thu, 17 May 2012 00:13:02 +0900
-Subject: [PATCH 36/86] slub: fix a memory leak in get_partial_node()
-
-commit 02d7633fa567be7bf55a993b79d2a31b95ce2227 upstream.
-
-In the case which is below,
-
-1. acquire slab for cpu partial list
-2. free object to it by remote cpu
-3. page->freelist = t
-
-then memory leak is occurred.
-
-Change acquire_slab() not to zap freelist when it works for cpu partial list.
-I think it is a sufficient solution for fixing a memory leak.
-
-Below is output of 'slabinfo -r kmalloc-256'
-when './perf stat -r 30 hackbench 50 process 4000 > /dev/null' is done.
-
-***Vanilla***
-Sizes (bytes)     Slabs              Debug                Memory
-------------------------------------------------------------------------
-Object :     256  Total  :     468   Sanity Checks : Off  Total: 3833856
-SlabObj:     256  Full   :     111   Redzoning     : Off  Used : 2004992
-SlabSiz:    8192  Partial:     302   Poisoning     : Off  Loss : 1828864
-Loss   :       0  CpuSlab:      55   Tracking      : Off  Lalig:       0
-Align  :       8  Objects:      32   Tracing       : Off  Lpadd:       0
-
-***Patched***
-Sizes (bytes)     Slabs              Debug                Memory
-------------------------------------------------------------------------
-Object :     256  Total  :     300   Sanity Checks : Off  Total: 2457600
-SlabObj:     256  Full   :     204   Redzoning     : Off  Used : 2348800
-SlabSiz:    8192  Partial:      33   Poisoning     : Off  Loss :  108800
-Loss   :       0  CpuSlab:      63   Tracking      : Off  Lalig:       0
-Align  :       8  Objects:      32   Tracing       : Off  Lpadd:       0
-
-Total and loss number is the impact of this patch.
-
-Acked-by: Christoph Lameter <cl at linux.com>
-Signed-off-by: Joonsoo Kim <js1304 at gmail.com>
-Signed-off-by: Pekka Enberg <penberg at kernel.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/slub.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/mm/slub.c b/mm/slub.c
-index a99c785..af47188 100644
---- a/mm/slub.c
-+++ b/mm/slub.c
-@@ -1506,15 +1506,19 @@ static inline void *acquire_slab(struct kmem_cache *s,
- 		freelist = page->freelist;
- 		counters = page->counters;
- 		new.counters = counters;
--		if (mode)
-+		if (mode) {
- 			new.inuse = page->objects;
-+			new.freelist = NULL;
-+		} else {
-+			new.freelist = freelist;
-+		}
- 
- 		VM_BUG_ON(new.frozen);
- 		new.frozen = 1;
- 
- 	} while (!__cmpxchg_double_slab(s, page,
- 			freelist, counters,
--			NULL, new.counters,
-+			new.freelist, new.counters,
- 			"lock and freeze"));
- 
- 	remove_partial(n, page);
-@@ -1556,7 +1560,6 @@ static void *get_partial_node(struct kmem_cache *s,
- 			object = t;
- 			available =  page->objects - page->inuse;
- 		} else {
--			page->freelist = t;
- 			available = put_cpu_partial(s, page, 0);
- 		}
- 		if (kmem_cache_debug(s) || available > s->cpu_partial / 2)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0037-ext4-force-ro-mount-if-ext4_setup_super-fails.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0037-ext4-force-ro-mount-if-ext4_setup_super-fails.patch
deleted file mode 100644
index 6fbcfa0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0037-ext4-force-ro-mount-if-ext4_setup_super-fails.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From ce325abe66432bbcf9d8dc2834d7c8c77f32ce52 Mon Sep 17 00:00:00 2001
-From: Eric Sandeen <sandeen at redhat.com>
-Date: Mon, 28 May 2012 14:17:25 -0400
-Subject: [PATCH 37/86] ext4: force ro mount if ext4_setup_super() fails
-
-commit 7e84b6216467b84cd332c8e567bf5aa113fd2f38 upstream.
-
-If ext4_setup_super() fails i.e. due to a too-high revision,
-the error is logged in dmesg but the fs is not mounted RO as
-indicated.
-
-Tested by:
-
-# mkfs.ext4 -r 4 /dev/sdb6
-# mount /dev/sdb6 /mnt/test
-# dmesg | grep "too high"
-[164919.759248] EXT4-fs (sdb6): revision level too high, forcing read-only mode
-# grep sdb6 /proc/mounts
-/dev/sdb6 /mnt/test2 ext4 rw,seclabel,relatime,data=ordered 0 0
-
-Reviewed-by: Andreas Dilger <adilger at whamcloud.com>
-Signed-off-by: Eric Sandeen <sandeen at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/super.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index 961059b..c91811e 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -3727,7 +3727,8 @@ no_journal:
- 		goto failed_mount4;
- 	}
- 
--	ext4_setup_super(sb, es, sb->s_flags & MS_RDONLY);
-+	if (ext4_setup_super(sb, es, sb->s_flags & MS_RDONLY))
-+		sb->s_flags |= MS_RDONLY;
- 
- 	/* determine the minimum size of new large inodes, if present */
- 	if (sbi->s_inode_size > EXT4_GOOD_OLD_INODE_SIZE) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0038-ext4-disallow-hard-linked-directory-in-ext4_lookup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0038-ext4-disallow-hard-linked-directory-in-ext4_lookup.patch
deleted file mode 100644
index 60e970a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0038-ext4-disallow-hard-linked-directory-in-ext4_lookup.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 7d7a4c4be4fc37041962a101a848c38bf13dc0c4 Mon Sep 17 00:00:00 2001
-From: Andreas Dilger <adilger at dilger.ca>
-Date: Mon, 28 May 2012 17:02:25 -0400
-Subject: [PATCH 38/86] ext4: disallow hard-linked directory in ext4_lookup
-
-commit 7e936b737211e6b54e34b71a827e56b872e958d8 upstream.
-
-A hard-linked directory to its parent can cause the VFS to deadlock,
-and is a sign of a corrupted file system.  So detect this case in
-ext4_lookup(), before the rmdir() lockup scenario can take place.
-
-Signed-off-by: Andreas Dilger <adilger at dilger.ca>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/namei.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
-index aa4c782..4dd0890 100644
---- a/fs/ext4/namei.c
-+++ b/fs/ext4/namei.c
-@@ -1037,6 +1037,12 @@ static struct dentry *ext4_lookup(struct inode *dir, struct dentry *dentry, stru
- 			EXT4_ERROR_INODE(dir, "bad inode number: %u", ino);
- 			return ERR_PTR(-EIO);
- 		}
-+		if (unlikely(ino == dir->i_ino)) {
-+			EXT4_ERROR_INODE(dir, "'%.*s' linked to parent dir",
-+					 dentry->d_name.len,
-+					 dentry->d_name.name);
-+			return ERR_PTR(-EIO);
-+		}
- 		inode = ext4_iget(dir->i_sb, ino);
- 		if (inode == ERR_PTR(-ESTALE)) {
- 			EXT4_ERROR_INODE(dir,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0039-mtd-nand-fix-scan_read_raw_oob.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0039-mtd-nand-fix-scan_read_raw_oob.patch
deleted file mode 100644
index e2b0f24..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0039-mtd-nand-fix-scan_read_raw_oob.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From ec329940d4991f4051c3b8cf971aa2e67ad9da20 Mon Sep 17 00:00:00 2001
-From: Dmitry Maluka <D.Maluka at adbglobal.com>
-Date: Fri, 11 May 2012 20:51:51 +0300
-Subject: [PATCH 39/86] mtd: nand: fix scan_read_raw_oob
-
-commit 34a5704d91d6f8376a4c0a0143a1dd3eb3ccb37e upstream.
-
-It seems there is a bug in scan_read_raw_oob() in nand_bbt.c which
-should cause wrong functioning of NAND_BBT_SCANALLPAGES option.
-
-Artem: the patch did not apply and I had to amend it a bit.
-
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mtd/nand/nand_bbt.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/mtd/nand/nand_bbt.c b/drivers/mtd/nand/nand_bbt.c
-index 69148ae..f024375 100644
---- a/drivers/mtd/nand/nand_bbt.c
-+++ b/drivers/mtd/nand/nand_bbt.c
-@@ -324,6 +324,7 @@ static int scan_read_raw_oob(struct mtd_info *mtd, uint8_t *buf, loff_t offs,
- 
- 		buf += mtd->oobsize + mtd->writesize;
- 		len -= mtd->writesize;
-+		offs += mtd->writesize;
- 	}
- 	return 0;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0040-vfs-increment-iversion-when-a-file-is-truncated.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0040-vfs-increment-iversion-when-a-file-is-truncated.patch
deleted file mode 100644
index cab17c9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0040-vfs-increment-iversion-when-a-file-is-truncated.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From dcbd120f33b3df21a22bb7e09710f9f078c5b459 Mon Sep 17 00:00:00 2001
-From: Dmitry Kasatkin <dmitry.kasatkin at intel.com>
-Date: Tue, 29 May 2012 11:02:21 -0700
-Subject: [PATCH 40/86] vfs: increment iversion when a file is truncated
-
-commit 799243a389bde0de10fa21ca1ca453d2fe538b85 upstream.
-
-When a file is truncated with truncate()/ftruncate() and then closed,
-iversion is not updated.  This patch uses ATTR_SIZE flag as an indication
-to increment iversion.
-
-Mimi said:
-
-On fput(), i_version is used to detect and flag files that have changed
-and need to be re-measured in the IMA measurement policy.  When a file
-is truncated with truncate()/ftruncate() and then closed, i_version is
-not updated.  As a result, although the file has changed, it will not be
-re-measured and added to the IMA measurement list on subsequent access.
-
-Signed-off-by: Dmitry Kasatkin <dmitry.kasatkin at intel.com>
-Acked-by: Mimi Zohar <zohar at us.ibm.com>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/attr.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/fs/attr.c b/fs/attr.c
-index 7ee7ba4..b8f55c4 100644
---- a/fs/attr.c
-+++ b/fs/attr.c
-@@ -176,6 +176,11 @@ int notify_change(struct dentry * dentry, struct iattr * attr)
- 			return -EPERM;
- 	}
- 
-+	if ((ia_valid & ATTR_SIZE) && IS_I_VERSION(inode)) {
-+		if (attr->ia_size != inode->i_size)
-+			inode_inc_iversion(inode);
-+	}
-+
- 	if ((ia_valid & ATTR_MODE)) {
- 		mode_t amode = attr->ia_mode;
- 		/* Flag setting protected by i_mutex */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0041-vfs-umount_tree-might-be-called-on-subtree-that-had-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0041-vfs-umount_tree-might-be-called-on-subtree-that-had-.patch
deleted file mode 100644
index 99722a5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0041-vfs-umount_tree-might-be-called-on-subtree-that-had-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 7124b305f5c83709f41473a2cf6025bcdb9b88fe Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Tue, 29 May 2012 22:03:48 -0400
-Subject: [PATCH 41/86] vfs: umount_tree() might be called on subtree that had
- never made it
-
-commit 63d37a84ab6004c235314ffd7a76c5eb28c2fae0 upstream.
-
-__mnt_make_shortterm() in there undoes the effect of __mnt_make_longterm()
-we'd done back when we set ->mnt_ns non-NULL; it should not be done to
-vfsmounts that had never gone through commit_tree() and friends.  Kudos to
-lczerner for catching that one...
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/namespace.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/fs/namespace.c b/fs/namespace.c
-index cfc6d44..ca4913a 100644
---- a/fs/namespace.c
-+++ b/fs/namespace.c
-@@ -1244,8 +1244,9 @@ void umount_tree(struct vfsmount *mnt, int propagate, struct list_head *kill)
- 		list_del_init(&p->mnt_expire);
- 		list_del_init(&p->mnt_list);
- 		__touch_mnt_namespace(p->mnt_ns);
-+		if (p->mnt_ns)
-+			__mnt_make_shortterm(p);
- 		p->mnt_ns = NULL;
--		__mnt_make_shortterm(p);
- 		list_del_init(&p->mnt_child);
- 		if (p->mnt_parent != p) {
- 			p->mnt_parent->mnt_ghosts++;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0042-ext4-add-missing-save_error_info-to-ext4_error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0042-ext4-add-missing-save_error_info-to-ext4_error.patch
deleted file mode 100644
index e9720b2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0042-ext4-add-missing-save_error_info-to-ext4_error.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1b72b00b0a3384ac8e6b2ddb6b06132e714e9441 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Wed, 30 May 2012 23:00:16 -0400
-Subject: [PATCH 42/86] ext4: add missing save_error_info() to ext4_error()
-
-commit f3fc0210c0fc91900766c995f089c39170e68305 upstream.
-
-The ext4_error() function is missing a call to save_error_info().
-Since this is the function which marks the file system as containing
-an error, this oversight (which was introduced in 2.6.36) is quite
-significant, and should be backported to older stable kernels with
-high urgency.
-
-Reported-by: Ken Sumrall <ksumrall at google.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Cc: ksumrall at google.com
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/super.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index c91811e..ab7aa3f 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -480,6 +480,7 @@ void __ext4_error(struct super_block *sb, const char *function,
- 	printk(KERN_CRIT "EXT4-fs error (device %s): %s:%d: comm %s: %pV\n",
- 	       sb->s_id, function, line, current->comm, &vaf);
- 	va_end(args);
-+	save_error_info(sb, function, line);
- 
- 	ext4_handle_error(sb);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0043-ALSA-usb-audio-fix-rate_list-memory-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0043-ALSA-usb-audio-fix-rate_list-memory-leak.patch
deleted file mode 100644
index 7c69f66..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0043-ALSA-usb-audio-fix-rate_list-memory-leak.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 881cf192607e150b2843d5a504a6c05bd6be8136 Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens at ladisch.de>
-Date: Fri, 18 May 2012 18:00:43 +0200
-Subject: [PATCH 43/86] ALSA: usb-audio: fix rate_list memory leak
-
-commit 5cd5d7c44990658df6ab49f6253c39617c53b03d upstream.
-
-The array of sample rates is reallocated every time when opening
-the PCM device, but was freed only once when unplugging the device.
-
-Reported-by: "Alexander E. Patrakov" <patrakov at gmail.com>
-Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/usb/pcm.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sound/usb/pcm.c b/sound/usb/pcm.c
-index 0220b0f..839165f 100644
---- a/sound/usb/pcm.c
-+++ b/sound/usb/pcm.c
-@@ -698,6 +698,9 @@ static int snd_usb_pcm_check_knot(struct snd_pcm_runtime *runtime,
- 	int count = 0, needs_knot = 0;
- 	int err;
- 
-+	kfree(subs->rate_list.list);
-+	subs->rate_list.list = NULL;
-+
- 	list_for_each_entry(fp, &subs->fmt_list, list) {
- 		if (fp->rates & SNDRV_PCM_RATE_CONTINUOUS)
- 			return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0044-ext4-add-ext4_mb_unload_buddy-in-the-error-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0044-ext4-add-ext4_mb_unload_buddy-in-the-error-path.patch
deleted file mode 100644
index 63a6bf4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0044-ext4-add-ext4_mb_unload_buddy-in-the-error-path.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 63234d728c49257d747db57d3dfeb9989b9d040a Mon Sep 17 00:00:00 2001
-From: Salman Qazi <sqazi at google.com>
-Date: Thu, 31 May 2012 23:51:27 -0400
-Subject: [PATCH 44/86] ext4: add ext4_mb_unload_buddy in the error path
-
-commit 02b7831019ea4e7994968c84b5826fa8b248ffc8 upstream.
-
-ext4_free_blocks fails to pair an ext4_mb_load_buddy with a matching
-ext4_mb_unload_buddy when it fails a memory allocation.
-
-Signed-off-by: Salman Qazi <sqazi at google.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/mballoc.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
-index e2d8be8..382e4fc 100644
---- a/fs/ext4/mballoc.c
-+++ b/fs/ext4/mballoc.c
-@@ -4693,6 +4693,7 @@ do_more:
- 		 */
- 		new_entry = kmem_cache_alloc(ext4_free_ext_cachep, GFP_NOFS);
- 		if (!new_entry) {
-+			ext4_mb_unload_buddy(&e4b);
- 			err = -ENOMEM;
- 			goto error_return;
- 		}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0045-ext4-remove-mb_groups-before-tearing-down-the-buddy_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0045-ext4-remove-mb_groups-before-tearing-down-the-buddy_.patch
deleted file mode 100644
index 0fc4e4b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0045-ext4-remove-mb_groups-before-tearing-down-the-buddy_.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 36ac3cf2860adbbe83743fd5ec6f89e54e67605c Mon Sep 17 00:00:00 2001
-From: Salman Qazi <sqazi at google.com>
-Date: Thu, 31 May 2012 23:52:14 -0400
-Subject: [PATCH 45/86] ext4: remove mb_groups before tearing down the
- buddy_cache
-
-commit 95599968d19db175829fb580baa6b68939b320fb upstream.
-
-We can't have references held on pages in the s_buddy_cache while we are
-trying to truncate its pages and put the inode.  All the pages must be
-gone before we reach clear_inode.  This can only be gauranteed if we
-can prevent new users from grabbing references to s_buddy_cache's pages.
-
-The original bug can be reproduced and the bug fix can be verified by:
-
-while true; do mount -t ext4 /dev/ram0 /export/hda3/ram0; \
-	umount /export/hda3/ram0; done &
-
-while true; do cat /proc/fs/ext4/ram0/mb_groups; done
-
-Signed-off-by: Salman Qazi <sqazi at google.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/mballoc.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ext4/mballoc.c b/fs/ext4/mballoc.c
-index 382e4fc..1d07c12 100644
---- a/fs/ext4/mballoc.c
-+++ b/fs/ext4/mballoc.c
-@@ -2567,6 +2567,9 @@ int ext4_mb_release(struct super_block *sb)
- 	struct ext4_sb_info *sbi = EXT4_SB(sb);
- 	struct kmem_cache *cachep = get_groupinfo_cache(sb->s_blocksize_bits);
- 
-+	if (sbi->s_proc)
-+		remove_proc_entry("mb_groups", sbi->s_proc);
-+
- 	if (sbi->s_group_info) {
- 		for (i = 0; i < ngroups; i++) {
- 			grinfo = ext4_get_group_info(sb, i);
-@@ -2614,8 +2617,6 @@ int ext4_mb_release(struct super_block *sb)
- 	}
- 
- 	free_percpu(sbi->s_locality_groups);
--	if (sbi->s_proc)
--		remove_proc_entry("mb_groups", sbi->s_proc);
- 
- 	return 0;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0046-drm-radeon-fix-bank-information-in-tiling-config.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0046-drm-radeon-fix-bank-information-in-tiling-config.patch
deleted file mode 100644
index 96c23ec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0046-drm-radeon-fix-bank-information-in-tiling-config.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 08a5d338c177aeaff3fed888cf9a36feb07a033d Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Thu, 31 May 2012 18:53:36 -0400
-Subject: [PATCH 46/86] drm/radeon: fix bank information in tiling config
-
-commit 29d654067a98c1cb8874c774e5fd799a038af8a6 upstream.
-
-While there are cards with more than 8 mem banks, the max
-number of banks from a tiling perspective is 8, so cap
-the tiling config at 8 banks.
-
-Fixes:
-https://bugs.freedesktop.org/show_bug.cgi?id=43448
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-[bwh: Backported to 3.2: fix up context and indentation for missing
- IGP condition in ni.c]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/evergreen.c |    9 ++++++---
- drivers/gpu/drm/radeon/ni.c        |    6 ++++--
- drivers/gpu/drm/radeon/rv770.c     |    8 ++++++--
- 3 files changed, 16 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 92c9628..88d080c 100644
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -2074,9 +2074,12 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
- 	/* num banks is 8 on all fusion asics. 0 = 4, 1 = 8, 2 = 16 */
- 	if (rdev->flags & RADEON_IS_IGP)
- 		rdev->config.evergreen.tile_config |= 1 << 4;
--	else
--		rdev->config.evergreen.tile_config |=
--			((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) << 4;
-+	else {
-+		if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT)
-+			rdev->config.evergreen.tile_config |= 1 << 4;
-+		else
-+			rdev->config.evergreen.tile_config |= 0 << 4;
-+	}
- 	rdev->config.evergreen.tile_config |=
- 		((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT) << 8;
- 	rdev->config.evergreen.tile_config |=
-diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
-index 0e57998..9e50814 100644
---- a/drivers/gpu/drm/radeon/ni.c
-+++ b/drivers/gpu/drm/radeon/ni.c
-@@ -804,8 +804,10 @@ static void cayman_gpu_init(struct radeon_device *rdev)
- 		rdev->config.cayman.tile_config |= (3 << 0);
- 		break;
- 	}
--	rdev->config.cayman.tile_config |=
--		((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) << 4;
-+	if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT)
-+		rdev->config.cayman.tile_config |= 1 << 4;
-+	else
-+		rdev->config.cayman.tile_config |= 0 << 4;
- 	rdev->config.cayman.tile_config |=
- 		((gb_addr_config & PIPE_INTERLEAVE_SIZE_MASK) >> PIPE_INTERLEAVE_SIZE_SHIFT) << 8;
- 	rdev->config.cayman.tile_config |=
-diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
-index 23ae1c6..e3f01b8 100644
---- a/drivers/gpu/drm/radeon/rv770.c
-+++ b/drivers/gpu/drm/radeon/rv770.c
-@@ -689,8 +689,12 @@ static void rv770_gpu_init(struct radeon_device *rdev)
- 
- 	if (rdev->family == CHIP_RV770)
- 		gb_tiling_config |= BANK_TILING(1);
--	else
--		gb_tiling_config |= BANK_TILING((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT);
-+	else {
-+		if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT)
-+			gb_tiling_config |= BANK_TILING(1);
-+		else
-+			gb_tiling_config |= BANK_TILING(0);
-+	}
- 	rdev->config.rv770.tiling_nbanks = 4 << ((gb_tiling_config >> 4) & 0x3);
- 	gb_tiling_config |= GROUP_SIZE((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT);
- 	if ((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0047-drm-radeon-properly-program-gart-on-rv740-juniper-cy.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0047-drm-radeon-properly-program-gart-on-rv740-juniper-cy.patch
deleted file mode 100644
index 51d41d9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0047-drm-radeon-properly-program-gart-on-rv740-juniper-cy.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From b872949a1d4d4a7587bbbfa4adb1a69216c625a8 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Thu, 31 May 2012 18:54:43 -0400
-Subject: [PATCH 47/86] drm/radeon: properly program gart on rv740, juniper,
- cypress, barts, hemlock
-
-commit 0b8c30bc4943137a4a36b9cb059b1cc684f5d702 upstream.
-
-Need to program an additional VM register.  This doesn't not currently
-cause any problems, but allows us to program the proper backend
-map in a subsequent patch which should improve performance on these
-asics.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/evergreen.c  |    5 +++++
- drivers/gpu/drm/radeon/evergreend.h |    1 +
- drivers/gpu/drm/radeon/rv770.c      |    2 ++
- drivers/gpu/drm/radeon/rv770d.h     |    1 +
- 4 files changed, 9 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 88d080c..7777c2f 100644
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -977,6 +977,11 @@ int evergreen_pcie_gart_enable(struct radeon_device *rdev)
- 		WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp);
- 		WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp);
- 		WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp);
-+		if ((rdev->family == CHIP_JUNIPER) ||
-+		    (rdev->family == CHIP_CYPRESS) ||
-+		    (rdev->family == CHIP_HEMLOCK) ||
-+		    (rdev->family == CHIP_BARTS))
-+			WREG32(MC_VM_MD_L1_TLB3_CNTL, tmp);
- 	}
- 	WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp);
- 	WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp);
-diff --git a/drivers/gpu/drm/radeon/evergreend.h b/drivers/gpu/drm/radeon/evergreend.h
-index e00039e..0128445 100644
---- a/drivers/gpu/drm/radeon/evergreend.h
-+++ b/drivers/gpu/drm/radeon/evergreend.h
-@@ -230,6 +230,7 @@
- #define	MC_VM_MD_L1_TLB0_CNTL				0x2654
- #define	MC_VM_MD_L1_TLB1_CNTL				0x2658
- #define	MC_VM_MD_L1_TLB2_CNTL				0x265C
-+#define	MC_VM_MD_L1_TLB3_CNTL				0x2698
- 
- #define	FUS_MC_VM_MD_L1_TLB0_CNTL			0x265C
- #define	FUS_MC_VM_MD_L1_TLB1_CNTL			0x2660
-diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
-index e3f01b8..e36ba7f 100644
---- a/drivers/gpu/drm/radeon/rv770.c
-+++ b/drivers/gpu/drm/radeon/rv770.c
-@@ -151,6 +151,8 @@ int rv770_pcie_gart_enable(struct radeon_device *rdev)
- 	WREG32(MC_VM_MD_L1_TLB0_CNTL, tmp);
- 	WREG32(MC_VM_MD_L1_TLB1_CNTL, tmp);
- 	WREG32(MC_VM_MD_L1_TLB2_CNTL, tmp);
-+	if (rdev->family == CHIP_RV740)
-+		WREG32(MC_VM_MD_L1_TLB3_CNTL, tmp);
- 	WREG32(MC_VM_MB_L1_TLB0_CNTL, tmp);
- 	WREG32(MC_VM_MB_L1_TLB1_CNTL, tmp);
- 	WREG32(MC_VM_MB_L1_TLB2_CNTL, tmp);
-diff --git a/drivers/gpu/drm/radeon/rv770d.h b/drivers/gpu/drm/radeon/rv770d.h
-index 79fa588..7538092 100644
---- a/drivers/gpu/drm/radeon/rv770d.h
-+++ b/drivers/gpu/drm/radeon/rv770d.h
-@@ -174,6 +174,7 @@
- #define	MC_VM_MD_L1_TLB0_CNTL				0x2654
- #define	MC_VM_MD_L1_TLB1_CNTL				0x2658
- #define	MC_VM_MD_L1_TLB2_CNTL				0x265C
-+#define	MC_VM_MD_L1_TLB3_CNTL				0x2698
- #define	MC_VM_SYSTEM_APERTURE_DEFAULT_ADDR		0x203C
- #define	MC_VM_SYSTEM_APERTURE_HIGH_ADDR			0x2038
- #define	MC_VM_SYSTEM_APERTURE_LOW_ADDR			0x2034
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0048-drm-radeon-fix-HD6790-HD6570-backend-programming.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0048-drm-radeon-fix-HD6790-HD6570-backend-programming.patch
deleted file mode 100644
index e4ec73c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0048-drm-radeon-fix-HD6790-HD6570-backend-programming.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 78a76c99190cb06c44e3432b33fa1641f6c75fa9 Mon Sep 17 00:00:00 2001
-From: Jerome Glisse <jglisse at redhat.com>
-Date: Thu, 31 May 2012 19:00:24 -0400
-Subject: [PATCH 48/86] drm/radeon: fix HD6790, HD6570 backend programming
-
-commit 95c4b23ec4e2fa5604df229ddf134e31d7b3b378 upstream.
-
-Without this bit sets we get broken rendering and
-lockups.
-
-fglrx sets this bit.
-
-Bugs that should be fixed by this patch :
-https://bugs.freedesktop.org/show_bug.cgi?id=49792
-https://bugzilla.kernel.org/show_bug.cgi?id=43207
-https://bugs.freedesktop.org/show_bug.cgi?id=39282
-
-Signed-off-by: Jerome Glisse <jglisse at redhat.com>
-Acked-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/evergreen.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 7777c2f..dac178b 100644
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -2116,9 +2116,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
- 		WREG32(CC_SYS_RB_BACKEND_DISABLE, rb);
- 		WREG32(GC_USER_RB_BACKEND_DISABLE, rb);
- 		WREG32(CC_GC_SHADER_PIPE_CONFIG, sp);
--        }
-+	}
- 
--	grbm_gfx_index |= SE_BROADCAST_WRITES;
-+	grbm_gfx_index = INSTANCE_BROADCAST_WRITES | SE_BROADCAST_WRITES;
- 	WREG32(GRBM_GFX_INDEX, grbm_gfx_index);
- 	WREG32(RLC_GFX_INDEX, grbm_gfx_index);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0049-drm-ttm-Fix-spinlock-imbalance.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0049-drm-ttm-Fix-spinlock-imbalance.patch
deleted file mode 100644
index 6529366..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0049-drm-ttm-Fix-spinlock-imbalance.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 309af9e8861e14263a958a70779944d8208f4323 Mon Sep 17 00:00:00 2001
-From: Thomas Hellstrom <thellstrom at vmware.com>
-Date: Fri, 1 Jun 2012 15:39:11 +0200
-Subject: [PATCH 49/86] drm/ttm: Fix spinlock imbalance
-
-commit a8ff3ee211fccf708e1911bbc096625453ebf759 upstream.
-
-This imbalance may cause hangs when TTM is trying to swap out a buffer
-that is already on the delayed delete list.
-
-Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
-Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/ttm/ttm_bo.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/gpu/drm/ttm/ttm_bo.c b/drivers/gpu/drm/ttm/ttm_bo.c
-index 0bb0f5f..0d27bff 100644
---- a/drivers/gpu/drm/ttm/ttm_bo.c
-+++ b/drivers/gpu/drm/ttm/ttm_bo.c
-@@ -1816,6 +1816,7 @@ static int ttm_bo_swapout(struct ttm_mem_shrink *shrink)
- 			spin_unlock(&glob->lru_lock);
- 			(void) ttm_bo_cleanup_refs(bo, false, false, false);
- 			kref_put(&bo->list_kref, ttm_bo_release_list);
-+			spin_lock(&glob->lru_lock);
- 			continue;
- 		}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0050-drm-vmwgfx-Fix-nasty-write-past-alloced-memory-area.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0050-drm-vmwgfx-Fix-nasty-write-past-alloced-memory-area.patch
deleted file mode 100644
index 81726bb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0050-drm-vmwgfx-Fix-nasty-write-past-alloced-memory-area.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 345d5c3e9925e3a22b7974adfdb8bbb257432aee Mon Sep 17 00:00:00 2001
-From: Thomas Hellstrom <thellstrom at vmware.com>
-Date: Fri, 1 Jun 2012 15:48:04 +0200
-Subject: [PATCH 50/86] drm/vmwgfx: Fix nasty write past alloced memory area
-
-commit 0824db38e515644f8d1bfd64adbd7cb2c6ea7c62 upstream.
-
-Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
-Reviewed-by: Jakob Bornecrantz <jakob at vmware.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
-index f4e7763..c41226a 100644
---- a/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
-+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_gmr.c
-@@ -66,7 +66,7 @@ static int vmw_gmr2_bind(struct vmw_private *dev_priv,
- 	cmd += sizeof(remap_cmd) / sizeof(uint32);
- 
- 	for (i = 0; i < num_pages; ++i) {
--		if (VMW_PPN_SIZE > 4)
-+		if (VMW_PPN_SIZE <= 4)
- 			*cmd = page_to_pfn(*pages++);
- 		else
- 			*((uint64_t *)cmd) = page_to_pfn(*pages++);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0051-mtd-of_parts-fix-breakage-in-Kconfig.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0051-mtd-of_parts-fix-breakage-in-Kconfig.patch
deleted file mode 100644
index f2451df..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0051-mtd-of_parts-fix-breakage-in-Kconfig.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From a0ca2787e60cec97689e654987149ead8fa6253b Mon Sep 17 00:00:00 2001
-From: Frank Svendsboe <frank.svendsboe at gmail.com>
-Date: Thu, 17 May 2012 22:43:09 +0200
-Subject: [PATCH 51/86] mtd: of_parts: fix breakage in Kconfig
-
-commit 2e929d001e85126d9267de373d4b76014789661d upstream.
-
-MTD_OF_PARTS and the default setting is not working due to using 'Y'
-instead of 'y', introduced in commit
-d6137badeff1ef64b4e0092ec249ebdeaeb3ff37. This made our board, and
-possibly other boards using DTS defined partitions and not having
-CONFIG_MTD_OF_PARTS=y defined in the defconfig, fail to mount root.
-
-Signed-off-by: Frank Svendsboe <frank.svendsboe at gmail.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mtd/Kconfig |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/Kconfig b/drivers/mtd/Kconfig
-index 318a869..4035b6d 100644
---- a/drivers/mtd/Kconfig
-+++ b/drivers/mtd/Kconfig
-@@ -128,7 +128,7 @@ config MTD_AFS_PARTS
- 
- config MTD_OF_PARTS
- 	tristate "OpenFirmware partitioning information support"
--	default Y
-+	default y
- 	depends on OF
- 	help
- 	  This provides a partition parsing function which derives
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0052-fec_mpc52xx-fix-timestamp-filtering.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0052-fec_mpc52xx-fix-timestamp-filtering.patch
deleted file mode 100644
index c808bfe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0052-fec_mpc52xx-fix-timestamp-filtering.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From cc0b272fadb6be36a03152cbd37a95725a5114d4 Mon Sep 17 00:00:00 2001
-From: Stephan Gatzka <stephan at gatzka.org>
-Date: Sat, 2 Jun 2012 03:04:06 +0000
-Subject: [PATCH 52/86] fec_mpc52xx: fix timestamp filtering
-
-commit 9ca3cc6f3026946ba655e863ca2096339e667639 upstream.
-
-skb_defer_rx_timestamp was called with a freshly allocated skb but must
-be called with rskb instead.
-
-Signed-off-by: Stephan Gatzka <stephan at gatzka.org>
-Acked-by: Richard Cochran <richardcochran at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/freescale/fec_mpc52xx.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/freescale/fec_mpc52xx.c b/drivers/net/ethernet/freescale/fec_mpc52xx.c
-index 30745b5..1e52736 100644
---- a/drivers/net/ethernet/freescale/fec_mpc52xx.c
-+++ b/drivers/net/ethernet/freescale/fec_mpc52xx.c
-@@ -437,7 +437,7 @@ static irqreturn_t mpc52xx_fec_rx_interrupt(int irq, void *dev_id)
- 		length = status & BCOM_FEC_RX_BD_LEN_MASK;
- 		skb_put(rskb, length - 4);	/* length without CRC32 */
- 		rskb->protocol = eth_type_trans(rskb, dev);
--		if (!skb_defer_rx_timestamp(skb))
-+		if (!skb_defer_rx_timestamp(rskb))
- 			netif_rx(rskb);
- 
- 		spin_lock(&priv->lock);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0053-Bluetooth-btusb-Add-vendor-specific-ID-0a5c-21f3-for.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0053-Bluetooth-btusb-Add-vendor-specific-ID-0a5c-21f3-for.patch
deleted file mode 100644
index e8bb82b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0053-Bluetooth-btusb-Add-vendor-specific-ID-0a5c-21f3-for.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From b57ea95f303c57eecda3fabdf246147ca9236cc3 Mon Sep 17 00:00:00 2001
-From: Manoj Iyer <manoj.iyer at canonical.com>
-Date: Thu, 2 Feb 2012 09:32:36 -0600
-Subject: [PATCH 53/86] Bluetooth: btusb: Add vendor specific ID (0a5c 21f3)
- for BCM20702A0
-
-commit 37305cf649689a4d2341dd6fd89b091c6007f9ba upstream.
-
-T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=03 Dev#= 5 Spd=12 MxCh= 0
-D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
-P: Vendor=0a5c ProdID=21f3 Rev=01.12
-S: Manufacturer=Broadcom Corp
-S: Product=BCM20702A0
-S: SerialNumber=74DE2B344A7B
-C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
-I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
-
-Signed-off-by: Manoj Iyer <manoj.iyer at canonical.com>
-Tested-by: Dennis Chua <dennis.chua at canonical.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/btusb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index e56da6a..1f8c8ca 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -102,6 +102,7 @@ static struct usb_device_id btusb_table[] = {
- 
- 	/* Broadcom BCM20702A0 */
- 	{ USB_DEVICE(0x0a5c, 0x21e3) },
-+	{ USB_DEVICE(0x0a5c, 0x21f3) },
- 	{ USB_DEVICE(0x413c, 0x8197) },
- 
- 	{ }	/* Terminating entry */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0054-Bluetooth-btusb-add-support-for-BCM20702A0-0a5c-21e6.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0054-Bluetooth-btusb-add-support-for-BCM20702A0-0a5c-21e6.patch
deleted file mode 100644
index 4adefec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0054-Bluetooth-btusb-add-support-for-BCM20702A0-0a5c-21e6.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From c2b51905d0a995131d0e4ad248ebe4bc4a5c9470 Mon Sep 17 00:00:00 2001
-From: "James M. Leddy" <james.leddy at canonical.com>
-Date: Tue, 6 Mar 2012 02:41:33 +0200
-Subject: [PATCH 54/86] Bluetooth: btusb: add support for BCM20702A0
- [0a5c:21e6]
-
-commit 0a4eaeeb993658a4d6cff054a863241f32d3d2fb upstream.
-
-Add another vendor specific ID for BCM20702A0.  This has been tested and
-works on hardware with this device.
-
-output of usb-devices:
-T: Bus=01 Lev=02 Prnt=02 Port=03 Cnt=04 Dev#= 6 Spd=12 MxCh= 0
-D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
-P: Vendor=0a5c ProdID=21e6 Rev=01.12
-S: Manufacturer=Broadcom Corp
-S: Product=BCM20702A0
-S: SerialNumber=D0DF9AFB227B
-C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
-I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
-
-Signed-off-by: James M. Leddy <james.leddy at canonical.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/btusb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index 1f8c8ca..fde7512 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -102,6 +102,7 @@ static struct usb_device_id btusb_table[] = {
- 
- 	/* Broadcom BCM20702A0 */
- 	{ USB_DEVICE(0x0a5c, 0x21e3) },
-+	{ USB_DEVICE(0x0a5c, 0x21e6) },
- 	{ USB_DEVICE(0x0a5c, 0x21f3) },
- 	{ USB_DEVICE(0x413c, 0x8197) },
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0055-Bluetooth-btusb-Add-USB-device-ID-0a5c-21e8.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0055-Bluetooth-btusb-Add-USB-device-ID-0a5c-21e8.patch
deleted file mode 100644
index 65aed69..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0055-Bluetooth-btusb-Add-USB-device-ID-0a5c-21e8.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 67248cba79392f35493056ea7262d27fc1fe06f3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Jo=C3=A3o=20Paulo=20Rechi=20Vita?= <jprvita at openbossa.org>
-Date: Wed, 14 Mar 2012 21:45:16 +0200
-Subject: [PATCH 55/86] Bluetooth: btusb: Add USB device ID "0a5c 21e8"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 6dfc326f0605fd87e4c10ccde10de0ce4280d72d upstream.
-
-One more vendor-specific ID for BCM20702A0.
-
-T:  Bus=01 Lev=03 Prnt=05 Port=02 Cnt=01 Dev#=  9 Spd=12  MxCh= 0
-D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0a5c ProdID=21e8 Rev=01.12
-S:  Manufacturer=Broadcom Corp
-S:  Product=BCM20702A0
-S:  SerialNumber=00027221F4E2
-C:  #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-I:  If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
-
-Signed-off-by: João Paulo Rechi Vita <jprvita at openbossa.org>
-Acked-by: Gustavo F. Padovan <padovan at profusion.mobi>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/btusb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index fde7512..d4859bf 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -103,6 +103,7 @@ static struct usb_device_id btusb_table[] = {
- 	/* Broadcom BCM20702A0 */
- 	{ USB_DEVICE(0x0a5c, 0x21e3) },
- 	{ USB_DEVICE(0x0a5c, 0x21e6) },
-+	{ USB_DEVICE(0x0a5c, 0x21e8) },
- 	{ USB_DEVICE(0x0a5c, 0x21f3) },
- 	{ USB_DEVICE(0x413c, 0x8197) },
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0056-Bluetooth-btusb-typo-in-Broadcom-SoftSailing-id.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0056-Bluetooth-btusb-typo-in-Broadcom-SoftSailing-id.patch
deleted file mode 100644
index 35c5c39..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0056-Bluetooth-btusb-typo-in-Broadcom-SoftSailing-id.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From e109dadcc7d05181ac8e093311d8a242b0d58ca7 Mon Sep 17 00:00:00 2001
-From: Don Zickus <dzickus at redhat.com>
-Date: Wed, 28 Mar 2012 16:41:11 -0400
-Subject: [PATCH 56/86] Bluetooth: btusb: typo in Broadcom SoftSailing id
-
-commit 2e8b506310f6433d5558387fd568d4bfb1d6a799 upstream.
-
-I was trying to backport the following commit to RHEL-6
-
-    From 0cea73465cd22373c5cd43a3edd25fbd4bb532ef Mon Sep 17 00:00:00 2001
-    From: Oliver Neukum <oliver at neukum.org>
-    Date: Wed, 21 Sep 2011 11:37:15 +0200
-    Subject: [PATCH] btusb: add device entry for Broadcom SoftSailing
-
-and noticed it wasn't working on an HP Elitebook.  Looking into the patch I
-noticed a very subtle typo in the ids.  The patch has '0x05ac' instead of
-'0x0a5c'.  A snippet of the lsusb -v output also shows this:
-
-Bus 002 Device 003: ID 0a5c:21e1 Broadcom Corp.
-Device Descriptor:
-  bLength                18
-  bDescriptorType         1
-  bcdUSB               2.00
-  bDeviceClass          255 Vendor Specific Class
-  bDeviceSubClass         1
-  bDeviceProtocol         1
-  bMaxPacketSize0        64
-  idVendor           0x0a5c Broadcom Corp.
-  idProduct          0x21e1
-  bcdDevice            1.12
-  iManufacturer           1 Broadcom Corp
-  iProduct                2 BCM20702A0
-  iSerial                 3 60D819F0338C
-  bNumConfigurations      1
-
-Looking at other Broadcom ids, the fix matches them whereas the original patch
-matches Apple's ids.
-
-Tested on an HP Elitebook 8760w.  The btusb binds and the userspace stuff loads
-correctly.
-
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Don Zickus <dzickus at redhat.com>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/btusb.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index d4859bf..f8a0b7f 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -61,7 +61,7 @@ static struct usb_device_id btusb_table[] = {
- 	{ USB_DEVICE_INFO(0xe0, 0x01, 0x01) },
- 
- 	/* Broadcom SoftSailing reporting vendor specific */
--	{ USB_DEVICE(0x05ac, 0x21e1) },
-+	{ USB_DEVICE(0x0a5c, 0x21e1) },
- 
- 	/* Apple MacBookPro 7,1 */
- 	{ USB_DEVICE(0x05ac, 0x8213) },
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0057-Bluetooth-btusb-Add-vendor-specific-ID-0489-e042-for.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0057-Bluetooth-btusb-Add-vendor-specific-ID-0489-e042-for.patch
deleted file mode 100644
index 4e9b6d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0057-Bluetooth-btusb-Add-vendor-specific-ID-0489-e042-for.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d7988c4b2a641a23d6156b650616eada6ba6152a Mon Sep 17 00:00:00 2001
-From: Manoj Iyer <manoj.iyer at canonical.com>
-Date: Mon, 9 Apr 2012 09:22:28 -0500
-Subject: [PATCH 57/86] Bluetooth: btusb: Add vendor specific ID (0489 e042)
- for BCM20702A0
-
-commit 79cd76022044f8177bb00e3fd590ec8d6b5f8c35 upstream.
-
-T: Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
-D: Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs= 1
-P: Vendor=0489 ProdID=e042 Rev=01.12
-S: Manufacturer=Broadcom Corp
-S: Product=BCM20702A0
-S: SerialNumber=E4D53DCA61B5
-C: #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=0mA
-I: If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=(none)
-I: If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-I: If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
-
-Reported-by: Dennis Chua <dennis.chua at canonical.com>
-Signed-off-by: Manoj Iyer <manoj.iyer at canonical.com>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/btusb.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index f8a0b7f..41fe990 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -101,6 +101,7 @@ static struct usb_device_id btusb_table[] = {
- 	{ USB_DEVICE(0x0c10, 0x0000) },
- 
- 	/* Broadcom BCM20702A0 */
-+	{ USB_DEVICE(0x0489, 0xe042) },
- 	{ USB_DEVICE(0x0a5c, 0x21e3) },
- 	{ USB_DEVICE(0x0a5c, 0x21e6) },
- 	{ USB_DEVICE(0x0a5c, 0x21e8) },
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0058-Bluetooth-Add-support-for-Atheros-13d3-3362.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0058-Bluetooth-Add-support-for-Atheros-13d3-3362.patch
deleted file mode 100644
index f383af8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0058-Bluetooth-Add-support-for-Atheros-13d3-3362.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From e98b15f43ca380ca2d8adeae78da99222cf12f8a Mon Sep 17 00:00:00 2001
-From: AceLan Kao <acelan.kao at canonical.com>
-Date: Fri, 13 Apr 2012 17:39:57 +0800
-Subject: [PATCH 58/86] Bluetooth: Add support for Atheros [13d3:3362]
-
-commit 87522a433ba6886b5ccbb497e0a7cb8097def64e upstream.
-
-Add another vendor specific ID for Atheros AR3012 device.
-This chip is wrapped by IMC Networks.
-
-output of usb-devices:
-T:  Bus=01 Lev=02 Prnt=02 Port=00 Cnt=01 Dev#=  5 Spd=12  MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=13d3 ProdID=3362 Rev=00.02
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
-Signed-off-by: Johan Hedberg <johan.hedberg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/ath3k.c |    2 ++
- drivers/bluetooth/btusb.c |    1 +
- 2 files changed, 3 insertions(+)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index 99fefbd..90482ef 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -74,6 +74,7 @@ static struct usb_device_id ath3k_table[] = {
- 	{ USB_DEVICE(0x0CF3, 0x311D) },
- 	{ USB_DEVICE(0x13d3, 0x3375) },
- 	{ USB_DEVICE(0x04CA, 0x3005) },
-+	{ USB_DEVICE(0x13d3, 0x3362) },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xE02C) },
-@@ -93,6 +94,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
- 	{ USB_DEVICE(0x0cf3, 0x311D), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 },
- 
- 	{ }	/* Terminating entry */
- };
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index 41fe990..1329fa7 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -134,6 +134,7 @@ static struct usb_device_id blacklist_table[] = {
- 	{ USB_DEVICE(0x0cf3, 0x311d), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0059-Bluetooth-Add-support-for-AR3012-0cf3-e004.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0059-Bluetooth-Add-support-for-AR3012-0cf3-e004.patch
deleted file mode 100644
index b52635a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0059-Bluetooth-Add-support-for-AR3012-0cf3-e004.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From d86daa62c84ee4f586aed288307d8086ffd03db9 Mon Sep 17 00:00:00 2001
-From: AceLan Kao <acelan.kao at canonical.com>
-Date: Thu, 19 Apr 2012 14:53:45 +0800
-Subject: [PATCH 59/86] Bluetooth: Add support for AR3012 [0cf3:e004]
-
-commit ac71311e65e2c4c2dbac76db698fecbee755b016 upstream.
-
-Add another vendor specific ID for Atheros AR3012
-
-output of usb-devices:
-T:  Bus=02 Lev=02 Prnt=02 Port=04 Cnt=01 Dev#=  4 Spd=12  MxCh= 0
-D:  Ver= 1.10 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0cf3 ProdID=e004 Rev=00.02
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:  #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:  If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-I:  If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-
-BugLink: https://bugs.launchpad.net/bugs/922715
-
-Signed-off-by: AceLan Kao <acelan.kao at canonical.com>
-Signed-off-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/ath3k.c |    2 ++
- drivers/bluetooth/btusb.c |    1 +
- 2 files changed, 3 insertions(+)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index 90482ef..7e0b3c4 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -75,6 +75,7 @@ static struct usb_device_id ath3k_table[] = {
- 	{ USB_DEVICE(0x13d3, 0x3375) },
- 	{ USB_DEVICE(0x04CA, 0x3005) },
- 	{ USB_DEVICE(0x13d3, 0x3362) },
-+	{ USB_DEVICE(0x0CF3, 0xE004) },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xE02C) },
-@@ -95,6 +96,7 @@ static struct usb_device_id ath3k_blist_tbl[] = {
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 },
- 
- 	{ }	/* Terminating entry */
- };
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index 1329fa7..d6217c2 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -135,6 +135,7 @@ static struct usb_device_id blacklist_table[] = {
- 	{ USB_DEVICE(0x13d3, 0x3375), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x04ca, 0x3005), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 },
-+	{ USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 },
- 
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0060-Add-Foxconn-Hon-Hai-IDs-for-btusb-module.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0060-Add-Foxconn-Hon-Hai-IDs-for-btusb-module.patch
deleted file mode 100644
index ca759ca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0060-Add-Foxconn-Hon-Hai-IDs-for-btusb-module.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From ebe49536c92d57d8147efb128bbd6e3aff2e9289 Mon Sep 17 00:00:00 2001
-From: Steven Harms <sjharms at gmail.com>
-Date: Fri, 13 Apr 2012 14:45:55 -0400
-Subject: [PATCH 60/86] Add Foxconn / Hon Hai IDs for btusb module
-
-commit 985140369be1e886754d8ac0375dd64e4f727311 upstream.
-
-This change adds 0x0489:0xe033 to the btusb module.
-
-This bluetooth usb device is integrated in the Acer TimelineX AS4830TG-6808 notebook.
-
-Output from /sys/kernel/debug/usb/devices:
-
-T:  Bus=01 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#=  4 Spd=12   MxCh= 0
-D:  Ver= 2.00 Cls=ff(vend.) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0489 ProdID=e033 Rev= 2.29
-S:  Manufacturer=Broadcom Corp
-S:  Product=Acer Module
-S:  SerialNumber=60D819F74101
-C:* #Ifs= 4 Cfg#= 1 Atr=e0 MxPwr=  0mA
-I:* If#= 0 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
-E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
-E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-I:  If#= 1 Alt= 1 #EPs= 2 Cls=ff(vend.) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  32 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  32 Ivl=1ms
-I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
-I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  64 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  64 Ivl=1ms
-I:* If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
-E:  Ad=84(I) Atr=02(Bulk) MxPS=  32 Ivl=0ms
-E:  Ad=04(O) Atr=02(Bulk) MxPS=  32 Ivl=0ms
-I:* If#= 3 Alt= 0 #EPs= 0 Cls=fe(app. ) Sub=01 Prot=01 Driver=(none)
-
-Signed-off-by: Steven Harms <sjharms at gmail.com>
-Signed-off-by: Gustavo Padovan <gustavo at padovan.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/btusb.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index d6217c2..fdceeac 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -108,6 +108,9 @@ static struct usb_device_id btusb_table[] = {
- 	{ USB_DEVICE(0x0a5c, 0x21f3) },
- 	{ USB_DEVICE(0x413c, 0x8197) },
- 
-+	/* Foxconn - Hon Hai */
-+	{ USB_DEVICE(0x0489, 0xe033) },
-+
- 	{ }	/* Terminating entry */
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0061-Bluetooth-Add-support-for-Foxconn-Hon-Hai-AR5BBU22-0.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0061-Bluetooth-Add-support-for-Foxconn-Hon-Hai-AR5BBU22-0.patch
deleted file mode 100644
index f0c30e1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0061-Bluetooth-Add-support-for-Foxconn-Hon-Hai-AR5BBU22-0.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From c28bcb8c3f6bdeb976832e0726872944c739ae6a Mon Sep 17 00:00:00 2001
-From: Michael Gruetzner <mgruetzn at gmx.de>
-Date: Wed, 2 May 2012 22:33:40 +0200
-Subject: [PATCH 61/86] Bluetooth: Add support for Foxconn/Hon Hai AR5BBU22
- 0489:E03C
-
-commit 85d59726c5c66016a507f1f4a60db8e374dd284d upstream.
-
-Add Foxconn/Hon Hai AR5BBU22 Bluetooth Module( 0x489:0xE03C) to
-the blacklist of btusb module and add it to the ath3k module to properly
-load the firmware in Kernel 3.3.4
-The device is integrated in  e.g. some  Acer Aspire 7750G.
-
-Output from /sys/kernel/debug/usb/devices:
-
-T:  Bus=01 Lev=02 Prnt=02 Port=05 Cnt=02 Dev#=  6 Spd=12   MxCh= 0
-D:  Ver= 2.00 Cls=e0(wlcon) Sub=01 Prot=01 MxPS=64 #Cfgs=  1
-P:  Vendor=0489 ProdID=e03c Rev= 0.02
-S:  Manufacturer=Atheros Communications
-S:  Product=Bluetooth USB Host Controller
-S:  SerialNumber=Alaska Day 2006
-C:* #Ifs= 2 Cfg#= 1 Atr=e0 MxPwr=100mA
-I:* If#= 0 Alt= 0 #EPs= 3 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=81(I) Atr=03(Int.) MxPS=  16 Ivl=1ms
-E:  Ad=82(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms
-I:* If#= 1 Alt= 0 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   0 Ivl=1ms
-I:  If#= 1 Alt= 1 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=   9 Ivl=1ms
-I:  If#= 1 Alt= 2 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  17 Ivl=1ms
-I:  If#= 1 Alt= 3 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  25 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  25 Ivl=1ms
-I:  If#= 1 Alt= 4 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  33 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  33 Ivl=1ms
-I:  If#= 1 Alt= 5 #EPs= 2 Cls=e0(wlcon) Sub=01 Prot=01 Driver=btusb
-E:  Ad=83(I) Atr=01(Isoc) MxPS=  49 Ivl=1ms
-E:  Ad=03(O) Atr=01(Isoc) MxPS=  49 Ivl=1ms
-
-Signed-off-by: Michael Gruetzner <mgruetzn at gmx.de>
-Signed-off-by: Gustavo Padovan <gustavo at padovan.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/bluetooth/ath3k.c |    6 ++++++
- drivers/bluetooth/btusb.c |    3 +++
- 2 files changed, 9 insertions(+)
-
-diff --git a/drivers/bluetooth/ath3k.c b/drivers/bluetooth/ath3k.c
-index 7e0b3c4..f1bd44f 100644
---- a/drivers/bluetooth/ath3k.c
-+++ b/drivers/bluetooth/ath3k.c
-@@ -80,6 +80,9 @@ static struct usb_device_id ath3k_table[] = {
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xE02C) },
- 
-+	/* Atheros AR5BBU22 with sflash firmware */
-+	{ USB_DEVICE(0x0489, 0xE03C) },
-+
- 	{ }	/* Terminating entry */
- };
- 
-@@ -98,6 +101,9 @@ static struct usb_device_id ath3k_blist_tbl[] = {
- 	{ USB_DEVICE(0x13d3, 0x3362), .driver_info = BTUSB_ATH3012 },
- 	{ USB_DEVICE(0x0cf3, 0xe004), .driver_info = BTUSB_ATH3012 },
- 
-+	/* Atheros AR5BBU22 with sflash firmware */
-+	{ USB_DEVICE(0x0489, 0xE03C), .driver_info = BTUSB_ATH3012 },
-+
- 	{ }	/* Terminating entry */
- };
- 
-diff --git a/drivers/bluetooth/btusb.c b/drivers/bluetooth/btusb.c
-index fdceeac..fc4bcd6 100644
---- a/drivers/bluetooth/btusb.c
-+++ b/drivers/bluetooth/btusb.c
-@@ -143,6 +143,9 @@ static struct usb_device_id blacklist_table[] = {
- 	/* Atheros AR5BBU12 with sflash firmware */
- 	{ USB_DEVICE(0x0489, 0xe02c), .driver_info = BTUSB_IGNORE },
- 
-+	/* Atheros AR5BBU12 with sflash firmware */
-+	{ USB_DEVICE(0x0489, 0xe03c), .driver_info = BTUSB_ATH3012 },
-+
- 	/* Broadcom BCM2035 */
- 	{ USB_DEVICE(0x0a5c, 0x2035), .driver_info = BTUSB_WRONG_SCO_MTU },
- 	{ USB_DEVICE(0x0a5c, 0x200a), .driver_info = BTUSB_WRONG_SCO_MTU },
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0062-drm-i915-Disable-FBC-on-SandyBridge.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0062-drm-i915-Disable-FBC-on-SandyBridge.patch
deleted file mode 100644
index de38173..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0062-drm-i915-Disable-FBC-on-SandyBridge.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From d23ccb0cbe37783fcfb8879480160ed840488bb2 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Tue, 8 Nov 2011 23:17:34 +0000
-Subject: [PATCH 62/86] drm/i915:: Disable FBC on SandyBridge
-
-commit d56d8b28e9247e7e35e02fbb12b12239a2c33ad1 upstream.
-
-Enabling FBC is causing the BLT ring to run between 10-100x slower than
-normal and frequently lockup. The interim solution is disable FBC once
-more until we know why.
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 41bbe78..4720397 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -1864,7 +1864,7 @@ static void intel_update_fbc(struct drm_device *dev)
- 	if (enable_fbc < 0) {
- 		DRM_DEBUG_KMS("fbc set to per-chip default\n");
- 		enable_fbc = 1;
--		if (INTEL_INFO(dev)->gen <= 5)
-+		if (INTEL_INFO(dev)->gen <= 6)
- 			enable_fbc = 0;
- 	}
- 	if (!enable_fbc) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0063-ipv4-Do-not-use-dead-fib_info-entries.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0063-ipv4-Do-not-use-dead-fib_info-entries.patch
deleted file mode 100644
index 71f8710..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0063-ipv4-Do-not-use-dead-fib_info-entries.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 1fc7ceff08329209e4c28263a5b545343d4cce19 Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Thu, 10 May 2012 22:16:32 -0400
-Subject: [PATCH 63/86] ipv4: Do not use dead fib_info entries.
-
-[ Upstream commit dccd9ecc374462e5d6a5b8f8110415a86c2213d8 ]
-
-Due to RCU lookups and RCU based release, fib_info objects can
-be found during lookup which have fi->fib_dead set.
-
-We must ignore these entries, otherwise we risk dereferencing
-the parts of the entry which are being torn down.
-
-Reported-by: Yevgen Pronenko <yevgen.pronenko at sonymobile.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/fib_trie.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
-index 3ce23f9..cd2d639 100644
---- a/net/ipv4/fib_trie.c
-+++ b/net/ipv4/fib_trie.c
-@@ -1372,6 +1372,8 @@ static int check_leaf(struct fib_table *tb, struct trie *t, struct leaf *l,
- 
- 			if (fa->fa_tos && fa->fa_tos != flp->flowi4_tos)
- 				continue;
-+			if (fi->fib_dead)
-+				continue;
- 			if (fa->fa_info->fib_scope < flp->flowi4_scope)
- 				continue;
- 			fib_alias_accessed(fa);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0064-ipv4-fix-the-rcu-race-between-free_fib_info-and-ip_r.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0064-ipv4-fix-the-rcu-race-between-free_fib_info-and-ip_r.patch
deleted file mode 100644
index 80f8f2c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0064-ipv4-fix-the-rcu-race-between-free_fib_info-and-ip_r.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 5d360e327490263d01b60ed06f9c48ec923e93c4 Mon Sep 17 00:00:00 2001
-From: Yanmin Zhang <yanmin_zhang at linux.intel.com>
-Date: Wed, 23 May 2012 15:39:45 +0000
-Subject: [PATCH 64/86] ipv4: fix the rcu race between free_fib_info and
- ip_route_output_slow
-
-[ Upstream commit e49cc0da7283088c5e03d475ffe2fdcb24a6d5b1 ]
-
-We hit a kernel OOPS.
-
-<3>[23898.789643] BUG: sleeping function called from invalid context at
-/data/buildbot/workdir/ics/hardware/intel/linux-2.6/arch/x86/mm/fault.c:1103
-<3>[23898.862215] in_atomic(): 0, irqs_disabled(): 0, pid: 10526, name:
-Thread-6683
-<4>[23898.967805] HSU serial 0000:00:05.1: 0000:00:05.2:HSU serial prevented me
-to suspend...
-<4>[23899.258526] Pid: 10526, comm: Thread-6683 Tainted: G        W
-3.0.8-137685-ge7742f9 #1
-<4>[23899.357404] HSU serial 0000:00:05.1: 0000:00:05.2:HSU serial prevented me
-to suspend...
-<4>[23899.904225] Call Trace:
-<4>[23899.989209]  [<c1227f50>] ? pgtable_bad+0x130/0x130
-<4>[23900.000416]  [<c1238c2a>] __might_sleep+0x10a/0x110
-<4>[23900.007357]  [<c1228021>] do_page_fault+0xd1/0x3c0
-<4>[23900.013764]  [<c18e9ba9>] ? restore_all+0xf/0xf
-<4>[23900.024024]  [<c17c007b>] ? napi_complete+0x8b/0x690
-<4>[23900.029297]  [<c1227f50>] ? pgtable_bad+0x130/0x130
-<4>[23900.123739]  [<c1227f50>] ? pgtable_bad+0x130/0x130
-<4>[23900.128955]  [<c18ea0c3>] error_code+0x5f/0x64
-<4>[23900.133466]  [<c1227f50>] ? pgtable_bad+0x130/0x130
-<4>[23900.138450]  [<c17f6298>] ? __ip_route_output_key+0x698/0x7c0
-<4>[23900.144312]  [<c17f5f8d>] ? __ip_route_output_key+0x38d/0x7c0
-<4>[23900.150730]  [<c17f63df>] ip_route_output_flow+0x1f/0x60
-<4>[23900.156261]  [<c181de58>] ip4_datagram_connect+0x188/0x2b0
-<4>[23900.161960]  [<c18e981f>] ? _raw_spin_unlock_bh+0x1f/0x30
-<4>[23900.167834]  [<c18298d6>] inet_dgram_connect+0x36/0x80
-<4>[23900.173224]  [<c14f9e88>] ? _copy_from_user+0x48/0x140
-<4>[23900.178817]  [<c17ab9da>] sys_connect+0x9a/0xd0
-<4>[23900.183538]  [<c132e93c>] ? alloc_file+0xdc/0x240
-<4>[23900.189111]  [<c123925d>] ? sub_preempt_count+0x3d/0x50
-
-Function free_fib_info resets nexthop_nh->nh_dev to NULL before releasing
-fi. Other cpu might be accessing fi. Fixing it by delaying the releasing.
-
-With the patch, we ran MTBF testing on Android mobile for 12 hours
-and didn't trigger the issue.
-
-Thank Eric for very detailed review/checking the issue.
-
-Signed-off-by: Yanmin Zhang <yanmin_zhang at linux.intel.com>
-Signed-off-by: Kun Jiang <kunx.jiang at intel.com>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/fib_semantics.c |   12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/net/ipv4/fib_semantics.c b/net/ipv4/fib_semantics.c
-index 80106d8..d01f9c6 100644
---- a/net/ipv4/fib_semantics.c
-+++ b/net/ipv4/fib_semantics.c
-@@ -146,6 +146,12 @@ static void free_fib_info_rcu(struct rcu_head *head)
- {
- 	struct fib_info *fi = container_of(head, struct fib_info, rcu);
- 
-+	change_nexthops(fi) {
-+		if (nexthop_nh->nh_dev)
-+			dev_put(nexthop_nh->nh_dev);
-+	} endfor_nexthops(fi);
-+
-+	release_net(fi->fib_net);
- 	if (fi->fib_metrics != (u32 *) dst_default_metrics)
- 		kfree(fi->fib_metrics);
- 	kfree(fi);
-@@ -157,13 +163,7 @@ void free_fib_info(struct fib_info *fi)
- 		pr_warning("Freeing alive fib_info %p\n", fi);
- 		return;
- 	}
--	change_nexthops(fi) {
--		if (nexthop_nh->nh_dev)
--			dev_put(nexthop_nh->nh_dev);
--		nexthop_nh->nh_dev = NULL;
--	} endfor_nexthops(fi);
- 	fib_info_cnt--;
--	release_net(fi->fib_net);
- 	call_rcu(&fi->rcu, free_fib_info_rcu);
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0065-set-fake_rtable-s-dst-to-NULL-to-avoid-kernel-Oops.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0065-set-fake_rtable-s-dst-to-NULL-to-avoid-kernel-Oops.patch
deleted file mode 100644
index 2d13453..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0065-set-fake_rtable-s-dst-to-NULL-to-avoid-kernel-Oops.patch
+++ /dev/null
@@ -1,110 +0,0 @@
-From aebe9f30c2e54be6030a3a5a25c005053d1e26ef Mon Sep 17 00:00:00 2001
-From: "Peter Huang (Peng)" <peter.huangpeng at huawei.com>
-Date: Thu, 19 Apr 2012 20:12:51 +0000
-Subject: [PATCH 65/86] set fake_rtable's dst to NULL to avoid kernel Oops
-
-[ Upstream commit a881e963c7fe1f226e991ee9bbe8907acda93294 ]
-
-bridge: set fake_rtable's dst to NULL to avoid kernel Oops
-
-when bridge is deleted before tap/vif device's delete, kernel may
-encounter an oops because of NULL reference to fake_rtable's dst.
-Set fake_rtable's dst to NULL before sending packets out can solve
-this problem.
-
-v4 reformat, change br_drop_fake_rtable(skb) to {}
-
-v3 enrich commit header
-
-v2 introducing new flag DST_FAKE_RTABLE to dst_entry struct.
-
-[ Use "do { } while (0)" for nop br_drop_fake_rtable()
-  implementation -DaveM ]
-
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: Peter Huang <peter.huangpeng at huawei.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/netfilter_bridge.h |    9 +++++++++
- include/net/dst.h                |    1 +
- net/bridge/br_forward.c          |    1 +
- net/bridge/br_netfilter.c        |    8 ++------
- 4 files changed, 13 insertions(+), 6 deletions(-)
-
-diff --git a/include/linux/netfilter_bridge.h b/include/linux/netfilter_bridge.h
-index 0ddd161..31d2844 100644
---- a/include/linux/netfilter_bridge.h
-+++ b/include/linux/netfilter_bridge.h
-@@ -104,9 +104,18 @@ struct bridge_skb_cb {
- 	} daddr;
- };
- 
-+static inline void br_drop_fake_rtable(struct sk_buff *skb)
-+{
-+	struct dst_entry *dst = skb_dst(skb);
-+
-+	if (dst && (dst->flags & DST_FAKE_RTABLE))
-+		skb_dst_drop(skb);
-+}
-+
- #else
- #define nf_bridge_maybe_copy_header(skb)	(0)
- #define nf_bridge_pad(skb)			(0)
-+#define br_drop_fake_rtable(skb)	        do { } while (0)
- #endif /* CONFIG_BRIDGE_NETFILTER */
- 
- #endif /* __KERNEL__ */
-diff --git a/include/net/dst.h b/include/net/dst.h
-index 75766b4..65bca65 100644
---- a/include/net/dst.h
-+++ b/include/net/dst.h
-@@ -54,6 +54,7 @@ struct dst_entry {
- #define DST_NOCACHE		0x0010
- #define DST_NOCOUNT		0x0020
- #define DST_NOPEER		0x0040
-+#define DST_FAKE_RTABLE		0x0080
- 
- 	short			error;
- 	short			obsolete;
-diff --git a/net/bridge/br_forward.c b/net/bridge/br_forward.c
-index ee64287..e221f88 100644
---- a/net/bridge/br_forward.c
-+++ b/net/bridge/br_forward.c
-@@ -47,6 +47,7 @@ int br_dev_queue_push_xmit(struct sk_buff *skb)
- 		kfree_skb(skb);
- 	} else {
- 		skb_push(skb, ETH_HLEN);
-+		br_drop_fake_rtable(skb);
- 		dev_queue_xmit(skb);
- 	}
- 
-diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
-index fa8b8f7..577ea5d 100644
---- a/net/bridge/br_netfilter.c
-+++ b/net/bridge/br_netfilter.c
-@@ -147,7 +147,7 @@ void br_netfilter_rtable_init(struct net_bridge *br)
- 	rt->dst.dev = br->dev;
- 	rt->dst.path = &rt->dst;
- 	dst_init_metrics(&rt->dst, br_dst_default_metrics, true);
--	rt->dst.flags	= DST_NOXFRM | DST_NOPEER;
-+	rt->dst.flags	= DST_NOXFRM | DST_NOPEER | DST_FAKE_RTABLE;
- 	rt->dst.ops = &fake_dst_ops;
- }
- 
-@@ -687,11 +687,7 @@ static unsigned int br_nf_local_in(unsigned int hook, struct sk_buff *skb,
- 				   const struct net_device *out,
- 				   int (*okfn)(struct sk_buff *))
- {
--	struct rtable *rt = skb_rtable(skb);
--
--	if (rt && rt == bridge_parent_rtable(in))
--		skb_dst_drop(skb);
--
-+	br_drop_fake_rtable(skb);
- 	return NF_ACCEPT;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0066-ipv6-fix-incorrect-ipsec-fragment.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0066-ipv6-fix-incorrect-ipsec-fragment.patch
deleted file mode 100644
index c9b4d22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0066-ipv6-fix-incorrect-ipsec-fragment.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 8e6278442fffb4bfa735336a954144198fd7d778 Mon Sep 17 00:00:00 2001
-From: Gao feng <gaofeng at cn.fujitsu.com>
-Date: Sat, 26 May 2012 01:30:53 +0000
-Subject: [PATCH 66/86] ipv6: fix incorrect ipsec fragment
-
-[ Upstream commit 0c1833797a5a6ec23ea9261d979aa18078720b74 ]
-
-Since commit ad0081e43a
-"ipv6: Fragment locally generated tunnel-mode IPSec6 packets as needed"
-the fragment of packets is incorrect.
-because tunnel mode needs IPsec headers and trailer for all fragments,
-while on transport mode it is sufficient to add the headers to the
-first fragment and the trailer to the last.
-
-so modify mtu and maxfraglen base on ipsec mode and if fragment is first
-or last.
-
-with my test,it work well(every fragment's size is the mtu)
-and does not trigger slow fragment path.
-
-Changes from v1:
-	though optimization, mtu_prev and maxfraglen_prev can be delete.
-	replace xfrm mode codes with dst_entry's new frag DST_XFRM_TUNNEL.
-	add fuction ip6_append_data_mtu to make codes clearer.
-
-Signed-off-by: Gao feng <gaofeng at cn.fujitsu.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/net/dst.h      |    1 +
- net/ipv6/ip6_output.c  |   68 +++++++++++++++++++++++++++++++++++-------------
- net/xfrm/xfrm_policy.c |    3 +++
- 3 files changed, 54 insertions(+), 18 deletions(-)
-
-diff --git a/include/net/dst.h b/include/net/dst.h
-index 65bca65..16010d1 100644
---- a/include/net/dst.h
-+++ b/include/net/dst.h
-@@ -55,6 +55,7 @@ struct dst_entry {
- #define DST_NOCOUNT		0x0020
- #define DST_NOPEER		0x0040
- #define DST_FAKE_RTABLE		0x0080
-+#define DST_XFRM_TUNNEL		0x0100
- 
- 	short			error;
- 	short			obsolete;
-diff --git a/net/ipv6/ip6_output.c b/net/ipv6/ip6_output.c
-index f7f07e2..ae98e09 100644
---- a/net/ipv6/ip6_output.c
-+++ b/net/ipv6/ip6_output.c
-@@ -1178,6 +1178,29 @@ static inline struct ipv6_rt_hdr *ip6_rthdr_dup(struct ipv6_rt_hdr *src,
- 	return src ? kmemdup(src, (src->hdrlen + 1) * 8, gfp) : NULL;
- }
- 
-+static void ip6_append_data_mtu(int *mtu,
-+				int *maxfraglen,
-+				unsigned int fragheaderlen,
-+				struct sk_buff *skb,
-+				struct rt6_info *rt)
-+{
-+	if (!(rt->dst.flags & DST_XFRM_TUNNEL)) {
-+		if (skb == NULL) {
-+			/* first fragment, reserve header_len */
-+			*mtu = *mtu - rt->dst.header_len;
-+
-+		} else {
-+			/*
-+			 * this fragment is not first, the headers
-+			 * space is regarded as data space.
-+			 */
-+			*mtu = dst_mtu(rt->dst.path);
-+		}
-+		*maxfraglen = ((*mtu - fragheaderlen) & ~7)
-+			      + fragheaderlen - sizeof(struct frag_hdr);
-+	}
-+}
-+
- int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
- 	int offset, int len, int odd, struct sk_buff *skb),
- 	void *from, int length, int transhdrlen,
-@@ -1187,7 +1210,7 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
- 	struct inet_sock *inet = inet_sk(sk);
- 	struct ipv6_pinfo *np = inet6_sk(sk);
- 	struct inet_cork *cork;
--	struct sk_buff *skb;
-+	struct sk_buff *skb, *skb_prev = NULL;
- 	unsigned int maxfraglen, fragheaderlen;
- 	int exthdrlen;
- 	int dst_exthdrlen;
-@@ -1245,8 +1268,12 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
- 		inet->cork.fl.u.ip6 = *fl6;
- 		np->cork.hop_limit = hlimit;
- 		np->cork.tclass = tclass;
--		mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ?
--		      rt->dst.dev->mtu : dst_mtu(&rt->dst);
-+		if (rt->dst.flags & DST_XFRM_TUNNEL)
-+			mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ?
-+			      rt->dst.dev->mtu : dst_mtu(&rt->dst);
-+		else
-+			mtu = np->pmtudisc == IPV6_PMTUDISC_PROBE ?
-+			      rt->dst.dev->mtu : dst_mtu(rt->dst.path);
- 		if (np->frag_size < mtu) {
- 			if (np->frag_size)
- 				mtu = np->frag_size;
-@@ -1342,25 +1369,27 @@ int ip6_append_data(struct sock *sk, int getfrag(void *from, char *to,
- 			unsigned int fraglen;
- 			unsigned int fraggap;
- 			unsigned int alloclen;
--			struct sk_buff *skb_prev;
- alloc_new_skb:
--			skb_prev = skb;
--
- 			/* There's no room in the current skb */
--			if (skb_prev)
--				fraggap = skb_prev->len - maxfraglen;
-+			if (skb)
-+				fraggap = skb->len - maxfraglen;
- 			else
- 				fraggap = 0;
-+			/* update mtu and maxfraglen if necessary */
-+			if (skb == NULL || skb_prev == NULL)
-+				ip6_append_data_mtu(&mtu, &maxfraglen,
-+						    fragheaderlen, skb, rt);
-+
-+			skb_prev = skb;
- 
- 			/*
- 			 * If remaining data exceeds the mtu,
- 			 * we know we need more fragment(s).
- 			 */
- 			datalen = length + fraggap;
--			if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fragheaderlen)
--				datalen = maxfraglen - fragheaderlen;
- 
--			fraglen = datalen + fragheaderlen;
-+			if (datalen > (cork->length <= mtu && !(cork->flags & IPCORK_ALLFRAG) ? mtu : maxfraglen) - fragheaderlen)
-+				datalen = maxfraglen - fragheaderlen - rt->dst.trailer_len;
- 			if ((flags & MSG_MORE) &&
- 			    !(rt->dst.dev->features&NETIF_F_SG))
- 				alloclen = mtu;
-@@ -1369,13 +1398,16 @@ alloc_new_skb:
- 
- 			alloclen += dst_exthdrlen;
- 
--			/*
--			 * The last fragment gets additional space at tail.
--			 * Note: we overallocate on fragments with MSG_MODE
--			 * because we have no idea if we're the last one.
--			 */
--			if (datalen == length + fraggap)
--				alloclen += rt->dst.trailer_len;
-+			if (datalen != length + fraggap) {
-+				/*
-+				 * this is not the last fragment, the trailer
-+				 * space is regarded as data space.
-+				 */
-+				datalen += rt->dst.trailer_len;
-+			}
-+
-+			alloclen += rt->dst.trailer_len;
-+			fraglen = datalen + fragheaderlen;
- 
- 			/*
- 			 * We just reserve space for fragment header.
-diff --git a/net/xfrm/xfrm_policy.c b/net/xfrm/xfrm_policy.c
-index 9049a5c..0174034 100644
---- a/net/xfrm/xfrm_policy.c
-+++ b/net/xfrm/xfrm_policy.c
-@@ -1919,6 +1919,9 @@ no_transform:
- 	}
- ok:
- 	xfrm_pols_put(pols, drop_pols);
-+	if (dst && dst->xfrm &&
-+	    dst->xfrm->props.mode == XFRM_MODE_TUNNEL)
-+		dst->flags |= DST_XFRM_TUNNEL;
- 	return dst;
- 
- nopol:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0067-l2tp-fix-oops-in-L2TP-IP-sockets-for-connect-AF_UNSP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0067-l2tp-fix-oops-in-L2TP-IP-sockets-for-connect-AF_UNSP.patch
deleted file mode 100644
index 258e412..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0067-l2tp-fix-oops-in-L2TP-IP-sockets-for-connect-AF_UNSP.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From d1517b97762180b241f3e888abb8c1ec72e760be Mon Sep 17 00:00:00 2001
-From: James Chapman <jchapman at katalix.com>
-Date: Tue, 29 May 2012 23:13:23 +0000
-Subject: [PATCH 67/86] l2tp: fix oops in L2TP IP sockets for connect()
- AF_UNSPEC case
-
-[ Upstream commit c51ce49735c183ef2592db70f918ee698716276b ]
-
-An application may call connect() to disconnect a socket using an
-address with family AF_UNSPEC. The L2TP IP sockets were not handling
-this case when the socket is not bound and an attempt to connect()
-using AF_UNSPEC in such cases would result in an oops. This patch
-addresses the problem by protecting the sk_prot->disconnect() call
-against trying to unhash the socket before it is bound.
-
-The patch also adds more checks that the sockaddr supplied to bind()
-and connect() calls is valid.
-
- RIP: 0010:[<ffffffff82e133b0>]  [<ffffffff82e133b0>] inet_unhash+0x50/0xd0
- RSP: 0018:ffff88001989be28  EFLAGS: 00010293
- Stack:
-  ffff8800407a8000 0000000000000000 ffff88001989be78 ffffffff82e3a249
-  ffffffff82e3a050 ffff88001989bec8 ffff88001989be88 ffff8800407a8000
-  0000000000000010 ffff88001989bec8 ffff88001989bea8 ffffffff82e42639
- Call Trace:
- [<ffffffff82e3a249>] udp_disconnect+0x1f9/0x290
- [<ffffffff82e42639>] inet_dgram_connect+0x29/0x80
- [<ffffffff82d012fc>] sys_connect+0x9c/0x100
-
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: James Chapman <jchapman at katalix.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/l2tp/l2tp_ip.c |   30 ++++++++++++++++++++++++------
- 1 file changed, 24 insertions(+), 6 deletions(-)
-
-diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
-index 2a2a3e7..2fbbe1f 100644
---- a/net/l2tp/l2tp_ip.c
-+++ b/net/l2tp/l2tp_ip.c
-@@ -251,9 +251,16 @@ static int l2tp_ip_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
- {
- 	struct inet_sock *inet = inet_sk(sk);
- 	struct sockaddr_l2tpip *addr = (struct sockaddr_l2tpip *) uaddr;
--	int ret = -EINVAL;
-+	int ret;
- 	int chk_addr_ret;
- 
-+	if (!sock_flag(sk, SOCK_ZAPPED))
-+		return -EINVAL;
-+	if (addr_len < sizeof(struct sockaddr_l2tpip))
-+		return -EINVAL;
-+	if (addr->l2tp_family != AF_INET)
-+		return -EINVAL;
-+
- 	ret = -EADDRINUSE;
- 	read_lock_bh(&l2tp_ip_lock);
- 	if (__l2tp_ip_bind_lookup(&init_net, addr->l2tp_addr.s_addr, sk->sk_bound_dev_if, addr->l2tp_conn_id))
-@@ -283,6 +290,8 @@ static int l2tp_ip_bind(struct sock *sk, struct sockaddr *uaddr, int addr_len)
- 	sk_del_node_init(sk);
- 	write_unlock_bh(&l2tp_ip_lock);
- 	ret = 0;
-+	sock_reset_flag(sk, SOCK_ZAPPED);
-+
- out:
- 	release_sock(sk);
- 
-@@ -303,13 +312,14 @@ static int l2tp_ip_connect(struct sock *sk, struct sockaddr *uaddr, int addr_len
- 	__be32 saddr;
- 	int oif, rc;
- 
--	rc = -EINVAL;
-+	if (sock_flag(sk, SOCK_ZAPPED)) /* Must bind first - autobinding does not work */
-+		return -EINVAL;
-+
- 	if (addr_len < sizeof(*lsa))
--		goto out;
-+		return -EINVAL;
- 
--	rc = -EAFNOSUPPORT;
- 	if (lsa->l2tp_family != AF_INET)
--		goto out;
-+		return -EAFNOSUPPORT;
- 
- 	lock_sock(sk);
- 
-@@ -363,6 +373,14 @@ out:
- 	return rc;
- }
- 
-+static int l2tp_ip_disconnect(struct sock *sk, int flags)
-+{
-+	if (sock_flag(sk, SOCK_ZAPPED))
-+		return 0;
-+
-+	return udp_disconnect(sk, flags);
-+}
-+
- static int l2tp_ip_getname(struct socket *sock, struct sockaddr *uaddr,
- 			   int *uaddr_len, int peer)
- {
-@@ -598,7 +616,7 @@ static struct proto l2tp_ip_prot = {
- 	.close		   = l2tp_ip_close,
- 	.bind		   = l2tp_ip_bind,
- 	.connect	   = l2tp_ip_connect,
--	.disconnect	   = udp_disconnect,
-+	.disconnect	   = l2tp_ip_disconnect,
- 	.ioctl		   = udp_ioctl,
- 	.destroy	   = l2tp_ip_destroy_sock,
- 	.setsockopt	   = ip_setsockopt,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0068-r8169-missing-barriers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0068-r8169-missing-barriers.patch
deleted file mode 100644
index 3cc1e86..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0068-r8169-missing-barriers.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From c354bf6217e04a41a963b465634ff37450c68c1e Mon Sep 17 00:00:00 2001
-From: Francois Romieu <romieu at fr.zoreil.com>
-Date: Fri, 27 Jan 2012 15:05:38 +0100
-Subject: [PATCH 68/86] r8169: missing barriers.
-
-[ Upstream commit 1e874e041fc7c222cbd85b20c4406070be1f687a ]
-
-Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
-Cc: Hayes Wang <hayeswang at realtek.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/realtek/r8169.c |    5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 697cae3..5104d76 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -5562,7 +5562,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
- 
- 	if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) {
- 		netif_stop_queue(dev);
--		smp_rmb();
-+		smp_mb();
- 		if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)
- 			netif_wake_queue(dev);
- 	}
-@@ -5663,7 +5663,7 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
- 
- 	if (tp->dirty_tx != dirty_tx) {
- 		tp->dirty_tx = dirty_tx;
--		smp_wmb();
-+		smp_mb();
- 		if (netif_queue_stopped(dev) &&
- 		    (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
- 			netif_wake_queue(dev);
-@@ -5674,7 +5674,6 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
- 		 * of start_xmit activity is detected (if it is not detected,
- 		 * it is slow enough). -- FR
- 		 */
--		smp_rmb();
- 		if (tp->cur_tx != dirty_tx)
- 			RTL_W8(TxPoll, NPQ);
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0069-r8169-fix-early-queue-wake-up.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0069-r8169-fix-early-queue-wake-up.patch
deleted file mode 100644
index e8e1ad5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0069-r8169-fix-early-queue-wake-up.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 88d5ff14a80522c59577194a954942feefd47d67 Mon Sep 17 00:00:00 2001
-From: Francois Romieu <romieu at fr.zoreil.com>
-Date: Tue, 31 Jan 2012 00:00:19 +0100
-Subject: [PATCH 69/86] r8169: fix early queue wake-up.
-
-[ Upstream commit ae1f23fb433ac0aaff8aeaa5a7b14348e9aa8277 ]
-
-With infinite gratitude to Eric Dumazet for allowing me to identify
-the error.
-
-Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Hayes Wang <hayeswang at realtek.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/realtek/r8169.c |   18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 5104d76..5f3fa32 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -5561,7 +5561,18 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
- 	RTL_W8(TxPoll, NPQ);
- 
- 	if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) {
-+		/* Avoid wrongly optimistic queue wake-up: rtl_tx thread must
-+		 * not miss a ring update when it notices a stopped queue.
-+		 */
-+		smp_wmb();
- 		netif_stop_queue(dev);
-+		/* Sync with rtl_tx:
-+		 * - publish queue status and cur_tx ring index (write barrier)
-+		 * - refresh dirty_tx ring index (read barrier).
-+		 * May the current thread have a pessimistic view of the ring
-+		 * status and forget to wake up queue, a racing rtl_tx thread
-+		 * can't.
-+		 */
- 		smp_mb();
- 		if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)
- 			netif_wake_queue(dev);
-@@ -5663,6 +5674,13 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
- 
- 	if (tp->dirty_tx != dirty_tx) {
- 		tp->dirty_tx = dirty_tx;
-+		/* Sync with rtl8169_start_xmit:
-+		 * - publish dirty_tx ring index (write barrier)
-+		 * - refresh cur_tx ring index and queue status (read barrier)
-+		 * May the current thread miss the stopped queue condition,
-+		 * a racing xmit thread can only have a right view of the
-+		 * ring status.
-+		 */
- 		smp_mb();
- 		if (netif_queue_stopped(dev) &&
- 		    (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0070-r8169-fix-unsigned-int-wraparound-with-TSO.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0070-r8169-fix-unsigned-int-wraparound-with-TSO.patch
deleted file mode 100644
index c124fb6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0070-r8169-fix-unsigned-int-wraparound-with-TSO.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 70031dbb0e0a38f332ddb13359f9984bd25eb8c2 Mon Sep 17 00:00:00 2001
-From: Julien Ducourthial <jducourt at free.fr>
-Date: Wed, 9 May 2012 00:00:06 +0200
-Subject: [PATCH 70/86] r8169: fix unsigned int wraparound with TSO
-
-[ Upstream commit 477206a018f902895bfcd069dd820bfe94c187b1 ]
-
-The r8169 may get stuck or show bad behaviour after activating TSO :
-the net_device is not stopped when it has no more TX descriptors.
-This problem comes from TX_BUFS_AVAIL which may reach -1 when all
-transmit descriptors are in use. The patch simply tries to keep positive
-values.
-
-Tested with 8111d(onboard) on a D510MO, and with 8111e(onboard) on a
-Zotac 890GXITX.
-
-Signed-off-by: Julien Ducourthial <jducourt at free.fr>
-Acked-by: Francois Romieu <romieu at fr.zoreil.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/realtek/r8169.c |   16 ++++++++++------
- 1 file changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 5f3fa32..cc2565c 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -62,8 +62,12 @@
- #define R8169_MSG_DEFAULT \
- 	(NETIF_MSG_DRV | NETIF_MSG_PROBE | NETIF_MSG_IFUP | NETIF_MSG_IFDOWN)
- 
--#define TX_BUFFS_AVAIL(tp) \
--	(tp->dirty_tx + NUM_TX_DESC - tp->cur_tx - 1)
-+#define TX_SLOTS_AVAIL(tp) \
-+	(tp->dirty_tx + NUM_TX_DESC - tp->cur_tx)
-+
-+/* A skbuff with nr_frags needs nr_frags+1 entries in the tx queue */
-+#define TX_FRAGS_READY_FOR(tp,nr_frags) \
-+	(TX_SLOTS_AVAIL(tp) >= (nr_frags + 1))
- 
- /* Maximum number of multicast addresses to filter (vs. Rx-all-multicast).
-    The RTL chips use a 64 element hash table based on the Ethernet CRC. */
-@@ -5512,7 +5516,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
- 	u32 opts[2];
- 	int frags;
- 
--	if (unlikely(TX_BUFFS_AVAIL(tp) < skb_shinfo(skb)->nr_frags)) {
-+	if (unlikely(!TX_FRAGS_READY_FOR(tp, skb_shinfo(skb)->nr_frags))) {
- 		netif_err(tp, drv, dev, "BUG! Tx Ring full when queue awake!\n");
- 		goto err_stop_0;
- 	}
-@@ -5560,7 +5564,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
- 
- 	RTL_W8(TxPoll, NPQ);
- 
--	if (TX_BUFFS_AVAIL(tp) < MAX_SKB_FRAGS) {
-+	if (!TX_FRAGS_READY_FOR(tp, MAX_SKB_FRAGS)) {
- 		/* Avoid wrongly optimistic queue wake-up: rtl_tx thread must
- 		 * not miss a ring update when it notices a stopped queue.
- 		 */
-@@ -5574,7 +5578,7 @@ static netdev_tx_t rtl8169_start_xmit(struct sk_buff *skb,
- 		 * can't.
- 		 */
- 		smp_mb();
--		if (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)
-+		if (TX_FRAGS_READY_FOR(tp, MAX_SKB_FRAGS))
- 			netif_wake_queue(dev);
- 	}
- 
-@@ -5683,7 +5687,7 @@ static void rtl8169_tx_interrupt(struct net_device *dev,
- 		 */
- 		smp_mb();
- 		if (netif_queue_stopped(dev) &&
--		    (TX_BUFFS_AVAIL(tp) >= MAX_SKB_FRAGS)) {
-+		    TX_FRAGS_READY_FOR(tp, MAX_SKB_FRAGS)) {
- 			netif_wake_queue(dev);
- 		}
- 		/*
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0071-Revert-net-maintain-namespace-isolation-between-vlan.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0071-Revert-net-maintain-namespace-isolation-between-vlan.patch
deleted file mode 100644
index 53583ee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0071-Revert-net-maintain-namespace-isolation-between-vlan.patch
+++ /dev/null
@@ -1,138 +0,0 @@
-From 8094a25020703041f42a531dfac0a2ee24319119 Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Thu, 10 May 2012 23:03:34 -0400
-Subject: [PATCH 71/86] Revert "net: maintain namespace isolation between vlan
- and real device"
-
-[ Upstream commit 59b9997baba5242997ddc7bd96b1391f5275a5a4 ]
-
-This reverts commit 8a83a00b0735190384a348156837918271034144.
-
-It causes regressions for S390 devices, because it does an
-unconditional DST drop on SKBs for vlans and the QETH device
-needs the neighbour entry hung off the DST for certain things
-on transmit.
-
-Arnd can't remember exactly why he even needed this change.
-
-Conflicts:
-
-	drivers/net/macvlan.c
-	net/8021q/vlan_dev.c
-	net/core/dev.c
-
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/macvlan.c     |    2 +-
- include/linux/netdevice.h |    9 ---------
- net/8021q/vlan_dev.c      |    2 +-
- net/core/dev.c            |   36 +++++-------------------------------
- 4 files changed, 7 insertions(+), 42 deletions(-)
-
-diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
-index 959d448..97f342e 100644
---- a/drivers/net/macvlan.c
-+++ b/drivers/net/macvlan.c
-@@ -258,7 +258,7 @@ static int macvlan_queue_xmit(struct sk_buff *skb, struct net_device *dev)
- 
- xmit_world:
- 	skb->ip_summed = ip_summed;
--	skb_set_dev(skb, vlan->lowerdev);
-+	skb->dev = vlan->lowerdev;
- 	return dev_queue_xmit(skb);
- }
- 
-diff --git a/include/linux/netdevice.h b/include/linux/netdevice.h
-index cbeb586..cb52340 100644
---- a/include/linux/netdevice.h
-+++ b/include/linux/netdevice.h
-@@ -1420,15 +1420,6 @@ static inline bool netdev_uses_dsa_tags(struct net_device *dev)
- 	return 0;
- }
- 
--#ifndef CONFIG_NET_NS
--static inline void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
--{
--	skb->dev = dev;
--}
--#else /* CONFIG_NET_NS */
--void skb_set_dev(struct sk_buff *skb, struct net_device *dev);
--#endif
--
- static inline bool netdev_uses_trailer_tags(struct net_device *dev)
- {
- #ifdef CONFIG_NET_DSA_TAG_TRAILER
-diff --git a/net/8021q/vlan_dev.c b/net/8021q/vlan_dev.c
-index bc25286..0cccca8 100644
---- a/net/8021q/vlan_dev.c
-+++ b/net/8021q/vlan_dev.c
-@@ -156,7 +156,7 @@ static netdev_tx_t vlan_dev_hard_start_xmit(struct sk_buff *skb,
- 		skb = __vlan_hwaccel_put_tag(skb, vlan_tci);
- 	}
- 
--	skb_set_dev(skb, vlan_dev_info(dev)->real_dev);
-+	skb->dev = vlan_dev_info(dev)->real_dev;
- 	len = skb->len;
- 	ret = dev_queue_xmit(skb);
- 
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 61a7baa..1cbddc9 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -1607,10 +1607,14 @@ int dev_forward_skb(struct net_device *dev, struct sk_buff *skb)
- 		kfree_skb(skb);
- 		return NET_RX_DROP;
- 	}
--	skb_set_dev(skb, dev);
-+	skb->dev = dev;
-+	skb_dst_drop(skb);
- 	skb->tstamp.tv64 = 0;
- 	skb->pkt_type = PACKET_HOST;
- 	skb->protocol = eth_type_trans(skb, dev);
-+	skb->mark = 0;
-+	secpath_reset(skb);
-+	nf_reset(skb);
- 	return netif_rx(skb);
- }
- EXPORT_SYMBOL_GPL(dev_forward_skb);
-@@ -1865,36 +1869,6 @@ void netif_device_attach(struct net_device *dev)
- }
- EXPORT_SYMBOL(netif_device_attach);
- 
--/**
-- * skb_dev_set -- assign a new device to a buffer
-- * @skb: buffer for the new device
-- * @dev: network device
-- *
-- * If an skb is owned by a device already, we have to reset
-- * all data private to the namespace a device belongs to
-- * before assigning it a new device.
-- */
--#ifdef CONFIG_NET_NS
--void skb_set_dev(struct sk_buff *skb, struct net_device *dev)
--{
--	skb_dst_drop(skb);
--	if (skb->dev && !net_eq(dev_net(skb->dev), dev_net(dev))) {
--		secpath_reset(skb);
--		nf_reset(skb);
--		skb_init_secmark(skb);
--		skb->mark = 0;
--		skb->priority = 0;
--		skb->nf_trace = 0;
--		skb->ipvs_property = 0;
--#ifdef CONFIG_NET_SCHED
--		skb->tc_index = 0;
--#endif
--	}
--	skb->dev = dev;
--}
--EXPORT_SYMBOL(skb_set_dev);
--#endif /* CONFIG_NET_NS */
--
- /*
-  * Invalidate hardware checksum when packet is to be mangled, and
-  * complete checksum manually on outgoing path.
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0072-sctp-check-cached-dst-before-using-it.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0072-sctp-check-cached-dst-before-using-it.patch
deleted file mode 100644
index 6cb2e1a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0072-sctp-check-cached-dst-before-using-it.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 23c5783d07dcd62f8b86c4eaefef08f2892cbbd0 Mon Sep 17 00:00:00 2001
-From: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
-Date: Fri, 4 May 2012 05:24:54 +0000
-Subject: [PATCH 72/86] sctp: check cached dst before using it
-
-[ Upstream commit e0268868ba064980488fc8c194db3d8e9fb2959c ]
-
-dst_check() will take care of SA (and obsolete field), hence
-IPsec rekeying scenario is taken into account.
-
-Signed-off-by: Nicolas Dichtel <nicolas.dichtel at 6wind.com>
-Acked-by: Vlad Yaseivch <vyasevich at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/net/sctp/sctp.h |   13 +++++++++++++
- net/sctp/output.c       |    4 +---
- net/sctp/transport.c    |   17 -----------------
- 3 files changed, 14 insertions(+), 20 deletions(-)
-
-diff --git a/include/net/sctp/sctp.h b/include/net/sctp/sctp.h
-index 6a72a58..ad03988 100644
---- a/include/net/sctp/sctp.h
-+++ b/include/net/sctp/sctp.h
-@@ -703,4 +703,17 @@ static inline void sctp_v4_map_v6(union sctp_addr *addr)
- 	addr->v6.sin6_addr.s6_addr32[2] = htonl(0x0000ffff);
- }
- 
-+/* The cookie is always 0 since this is how it's used in the
-+ * pmtu code.
-+ */
-+static inline struct dst_entry *sctp_transport_dst_check(struct sctp_transport *t)
-+{
-+	if (t->dst && !dst_check(t->dst, 0)) {
-+		dst_release(t->dst);
-+		t->dst = NULL;
-+	}
-+
-+	return t->dst;
-+}
-+
- #endif /* __net_sctp_h__ */
-diff --git a/net/sctp/output.c b/net/sctp/output.c
-index 817174e..8fc4dcd 100644
---- a/net/sctp/output.c
-+++ b/net/sctp/output.c
-@@ -377,9 +377,7 @@ int sctp_packet_transmit(struct sctp_packet *packet)
- 	 */
- 	skb_set_owner_w(nskb, sk);
- 
--	/* The 'obsolete' field of dst is set to 2 when a dst is freed. */
--	if (!dst || (dst->obsolete > 1)) {
--		dst_release(dst);
-+	if (!sctp_transport_dst_check(tp)) {
- 		sctp_transport_route(tp, NULL, sctp_sk(sk));
- 		if (asoc && (asoc->param_flags & SPP_PMTUD_ENABLE)) {
- 			sctp_assoc_sync_pmtu(asoc);
-diff --git a/net/sctp/transport.c b/net/sctp/transport.c
-index 394c57c..8da4481 100644
---- a/net/sctp/transport.c
-+++ b/net/sctp/transport.c
-@@ -226,23 +226,6 @@ void sctp_transport_pmtu(struct sctp_transport *transport, struct sock *sk)
- 		transport->pathmtu = SCTP_DEFAULT_MAXSEGMENT;
- }
- 
--/* this is a complete rip-off from __sk_dst_check
-- * the cookie is always 0 since this is how it's used in the
-- * pmtu code
-- */
--static struct dst_entry *sctp_transport_dst_check(struct sctp_transport *t)
--{
--	struct dst_entry *dst = t->dst;
--
--	if (dst && dst->obsolete && dst->ops->check(dst, 0) == NULL) {
--		dst_release(t->dst);
--		t->dst = NULL;
--		return NULL;
--	}
--
--	return dst;
--}
--
- void sctp_transport_update_pmtu(struct sctp_transport *t, u32 pmtu)
- {
- 	struct dst_entry *dst;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0073-skb-avoid-unnecessary-reallocations-in-__skb_cow.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0073-skb-avoid-unnecessary-reallocations-in-__skb_cow.patch
deleted file mode 100644
index 797dd94..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0073-skb-avoid-unnecessary-reallocations-in-__skb_cow.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 102f9a70f2f084fe0380f1df716f89427cf5f965 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Tue, 29 May 2012 03:35:08 +0000
-Subject: [PATCH 73/86] skb: avoid unnecessary reallocations in __skb_cow
-
-[ Upstream commit 617c8c11236716dcbda877e764b7bf37c6fd8063 ]
-
-At the beginning of __skb_cow, headroom gets set to a minimum of
-NET_SKB_PAD. This causes unnecessary reallocations if the buffer was not
-cloned and the headroom is just below NET_SKB_PAD, but still more than the
-amount requested by the caller.
-This was showing up frequently in my tests on VLAN tx, where
-vlan_insert_tag calls skb_cow_head(skb, VLAN_HLEN).
-
-Locally generated packets should have enough headroom, and for forward
-paths, we already have NET_SKB_PAD bytes of headroom, so we don't need to
-add any extra space here.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/skbuff.h |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index e689b47..bdb4590 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -1866,8 +1866,6 @@ static inline int __skb_cow(struct sk_buff *skb, unsigned int headroom,
- {
- 	int delta = 0;
- 
--	if (headroom < NET_SKB_PAD)
--		headroom = NET_SKB_PAD;
- 	if (headroom > skb_headroom(skb))
- 		delta = headroom - skb_headroom(skb);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0074-xfrm-take-net-hdr-len-into-account-for-esp-payload-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0074-xfrm-take-net-hdr-len-into-account-for-esp-payload-s.patch
deleted file mode 100644
index 421e97a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0074-xfrm-take-net-hdr-len-into-account-for-esp-payload-s.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From f7088713900622e33404d09b3b16e44d780ea515 Mon Sep 17 00:00:00 2001
-From: Benjamin Poirier <bpoirier at suse.de>
-Date: Thu, 24 May 2012 11:32:38 +0000
-Subject: [PATCH 74/86] xfrm: take net hdr len into account for esp payload
- size calculation
-
-[ Upstream commit 91657eafb64b4cb53ec3a2fbc4afc3497f735788 ]
-
-Corrects the function that determines the esp payload size. The calculations
-done in esp{4,6}_get_mtu() lead to overlength frames in transport mode for
-certain mtu values and suboptimal frames for others.
-
-According to what is done, mainly in esp{,6}_output() and tcp_mtu_to_mss(),
-net_header_len must be taken into account before doing the alignment
-calculation.
-
-Signed-off-by: Benjamin Poirier <bpoirier at suse.de>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/esp4.c |   24 +++++++++---------------
- net/ipv6/esp6.c |   18 +++++++-----------
- 2 files changed, 16 insertions(+), 26 deletions(-)
-
-diff --git a/net/ipv4/esp4.c b/net/ipv4/esp4.c
-index a5b4134..530787b 100644
---- a/net/ipv4/esp4.c
-+++ b/net/ipv4/esp4.c
-@@ -457,28 +457,22 @@ static u32 esp4_get_mtu(struct xfrm_state *x, int mtu)
- 	struct esp_data *esp = x->data;
- 	u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
- 	u32 align = max_t(u32, blksize, esp->padlen);
--	u32 rem;
--
--	mtu -= x->props.header_len + crypto_aead_authsize(esp->aead);
--	rem = mtu & (align - 1);
--	mtu &= ~(align - 1);
-+	unsigned int net_adj;
- 
- 	switch (x->props.mode) {
--	case XFRM_MODE_TUNNEL:
--		break;
--	default:
- 	case XFRM_MODE_TRANSPORT:
--		/* The worst case */
--		mtu -= blksize - 4;
--		mtu += min_t(u32, blksize - 4, rem);
--		break;
- 	case XFRM_MODE_BEET:
--		/* The worst case. */
--		mtu += min_t(u32, IPV4_BEET_PHMAXLEN, rem);
-+		net_adj = sizeof(struct iphdr);
- 		break;
-+	case XFRM_MODE_TUNNEL:
-+		net_adj = 0;
-+		break;
-+	default:
-+		BUG();
- 	}
- 
--	return mtu - 2;
-+	return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
-+		 net_adj) & ~(align - 1)) + (net_adj - 2);
- }
- 
- static void esp4_err(struct sk_buff *skb, u32 info)
-diff --git a/net/ipv6/esp6.c b/net/ipv6/esp6.c
-index 1ac7938..65dd543 100644
---- a/net/ipv6/esp6.c
-+++ b/net/ipv6/esp6.c
-@@ -411,19 +411,15 @@ static u32 esp6_get_mtu(struct xfrm_state *x, int mtu)
- 	struct esp_data *esp = x->data;
- 	u32 blksize = ALIGN(crypto_aead_blocksize(esp->aead), 4);
- 	u32 align = max_t(u32, blksize, esp->padlen);
--	u32 rem;
-+	unsigned int net_adj;
- 
--	mtu -= x->props.header_len + crypto_aead_authsize(esp->aead);
--	rem = mtu & (align - 1);
--	mtu &= ~(align - 1);
--
--	if (x->props.mode != XFRM_MODE_TUNNEL) {
--		u32 padsize = ((blksize - 1) & 7) + 1;
--		mtu -= blksize - padsize;
--		mtu += min_t(u32, blksize - padsize, rem);
--	}
-+	if (x->props.mode != XFRM_MODE_TUNNEL)
-+		net_adj = sizeof(struct ipv6hdr);
-+	else
-+		net_adj = 0;
- 
--	return mtu - 2;
-+	return ((mtu - x->props.header_len - crypto_aead_authsize(esp->aead) -
-+		 net_adj) & ~(align - 1)) + (net_adj - 2);
- }
- 
- static void esp6_err(struct sk_buff *skb, struct inet6_skb_parm *opt,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0075-ACPI-battery-only-refresh-the-sysfs-files-when-perti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0075-ACPI-battery-only-refresh-the-sysfs-files-when-perti.patch
deleted file mode 100644
index 868bcce..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0075-ACPI-battery-only-refresh-the-sysfs-files-when-perti.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From f01aa357417f413fff9af7ef10496ece02d2c8d7 Mon Sep 17 00:00:00 2001
-From: Andy Whitcroft <apw at canonical.com>
-Date: Thu, 3 May 2012 14:48:26 +0100
-Subject: [PATCH 75/86] ACPI battery: only refresh the sysfs files when
- pertinent information changes
-
-commit c5971456964290da7e98222892797b71ef793e62 upstream.
-
-We only need to regenerate the sysfs files when the capacity units
-change, avoid the update otherwise.
-
-The origin of this issue is dates way back to 2.6.38:
-da8aeb92d4853f37e281f11fddf61f9c7d84c3cd
-(ACPI / Battery: Update information on info notification and resume)
-
-Signed-off-by: Andy Whitcroft <apw at canonical.com>
-Tested-by: Ralf Jung <post at ralfj.de>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/battery.c |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/acpi/battery.c b/drivers/acpi/battery.c
-index 7711d94..5535477 100644
---- a/drivers/acpi/battery.c
-+++ b/drivers/acpi/battery.c
-@@ -643,11 +643,19 @@ static int acpi_battery_update(struct acpi_battery *battery)
- 
- static void acpi_battery_refresh(struct acpi_battery *battery)
- {
-+	int power_unit;
-+
- 	if (!battery->bat.dev)
- 		return;
- 
-+	power_unit = battery->power_unit;
-+
- 	acpi_battery_get_info(battery);
--	/* The battery may have changed its reporting units. */
-+
-+	if (power_unit == battery->power_unit)
-+		return;
-+
-+	/* The battery has changed its reporting units. */
- 	sysfs_remove_battery(battery);
- 	sysfs_add_battery(battery);
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0076-target-file-Use-O_DSYNC-by-default-for-FILEIO-backen.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0076-target-file-Use-O_DSYNC-by-default-for-FILEIO-backen.patch
deleted file mode 100644
index 7c0a003..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0076-target-file-Use-O_DSYNC-by-default-for-FILEIO-backen.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-From f959a45c2bfd20be1435dee828b7e4eadd862b45 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Wed, 30 May 2012 16:25:41 -0700
-Subject: [PATCH 76/86] target/file: Use O_DSYNC by default for FILEIO
- backends
-
-commit a4dff3043c231d57f982af635c9d2192ee40e5ae upstream.
-
-Convert to use O_DSYNC for all cases at FILEIO backend creation time to
-avoid the extra syncing of pure timestamp updates with legacy O_SYNC during
-default operation as recommended by hch.  Continue to do this independently of
-Write Cache Enable (WCE) bit, as WCE=0 is currently the default for all backend
-devices and enabled by user on per device basis via attrib/emulate_write_cache.
-
-This patch drops the now unnecessary fd_buffered_io= token usage that was
-originally signalling when to explictly disable O_SYNC at backend creation
-time for buffered I/O operation.  This can end up being dangerous for a number
-of reasons during physical node failure, so go ahead and drop this option
-for now when O_DSYNC is used as the default.
-
-Also allow explict FUA WRITEs -> vfs_fsync_range() call to function in
-fd_execute_cmd() independently of WCE bit setting.
-
-Reported-by: Christoph Hellwig <hch at lst.de>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-[bwh: Backported to 3.2:
- - We have fd_do_task() and not fd_execute_cmd()
- - Various fields are in struct se_task rather than struct se_cmd
- - fd_create_virtdevice() flags initialisation hasn't been cleaned up]
----
- drivers/target/target_core_file.c |   78 ++++++++-----------------------------
- drivers/target/target_core_file.h |    1 -
- 2 files changed, 17 insertions(+), 62 deletions(-)
-
-diff --git a/drivers/target/target_core_file.c b/drivers/target/target_core_file.c
-index cad8b92..455a251 100644
---- a/drivers/target/target_core_file.c
-+++ b/drivers/target/target_core_file.c
-@@ -134,21 +134,11 @@ static struct se_device *fd_create_virtdevice(
- 		ret = PTR_ERR(dev_p);
- 		goto fail;
- 	}
--#if 0
--	if (di->no_create_file)
--		flags = O_RDWR | O_LARGEFILE;
--	else
--		flags = O_RDWR | O_CREAT | O_LARGEFILE;
--#else
--	flags = O_RDWR | O_CREAT | O_LARGEFILE;
--#endif
--/*	flags |= O_DIRECT; */
- 	/*
--	 * If fd_buffered_io=1 has not been set explicitly (the default),
--	 * use O_SYNC to force FILEIO writes to disk.
-+	 * Use O_DSYNC by default instead of O_SYNC to forgo syncing
-+	 * of pure timestamp updates.
- 	 */
--	if (!(fd_dev->fbd_flags & FDBD_USE_BUFFERED_IO))
--		flags |= O_SYNC;
-+	flags = O_RDWR | O_CREAT | O_LARGEFILE | O_DSYNC;
- 
- 	file = filp_open(dev_p, flags, 0600);
- 	if (IS_ERR(file)) {
-@@ -400,26 +390,6 @@ static void fd_emulate_sync_cache(struct se_task *task)
- 		transport_complete_sync_cache(cmd, ret == 0);
- }
- 
--/*
-- * WRITE Force Unit Access (FUA) emulation on a per struct se_task
-- * LBA range basis..
-- */
--static void fd_emulate_write_fua(struct se_cmd *cmd, struct se_task *task)
--{
--	struct se_device *dev = cmd->se_dev;
--	struct fd_dev *fd_dev = dev->dev_ptr;
--	loff_t start = task->task_lba * dev->se_sub_dev->se_dev_attrib.block_size;
--	loff_t end = start + task->task_size;
--	int ret;
--
--	pr_debug("FILEIO: FUA WRITE LBA: %llu, bytes: %u\n",
--			task->task_lba, task->task_size);
--
--	ret = vfs_fsync_range(fd_dev->fd_file, start, end, 1);
--	if (ret != 0)
--		pr_err("FILEIO: vfs_fsync_range() failed: %d\n", ret);
--}
--
- static int fd_do_task(struct se_task *task)
- {
- 	struct se_cmd *cmd = task->task_se_cmd;
-@@ -434,19 +404,21 @@ static int fd_do_task(struct se_task *task)
- 		ret = fd_do_readv(task);
- 	} else {
- 		ret = fd_do_writev(task);
--
-+		/*
-+		 * Perform implict vfs_fsync_range() for fd_do_writev() ops
-+		 * for SCSI WRITEs with Forced Unit Access (FUA) set.
-+		 * Allow this to happen independent of WCE=0 setting.
-+		 */
- 		if (ret > 0 &&
--		    dev->se_sub_dev->se_dev_attrib.emulate_write_cache > 0 &&
- 		    dev->se_sub_dev->se_dev_attrib.emulate_fua_write > 0 &&
- 		    (cmd->se_cmd_flags & SCF_FUA)) {
--			/*
--			 * We might need to be a bit smarter here
--			 * and return some sense data to let the initiator
--			 * know the FUA WRITE cache sync failed..?
--			 */
--			fd_emulate_write_fua(cmd, task);
--		}
-+			struct fd_dev *fd_dev = dev->dev_ptr;
-+			loff_t start = task->task_lba *
-+				dev->se_sub_dev->se_dev_attrib.block_size;
-+			loff_t end = start + task->task_size;
- 
-+			vfs_fsync_range(fd_dev->fd_file, start, end, 1);
-+		}
- 	}
- 
- 	if (ret < 0) {
-@@ -478,7 +450,6 @@ enum {
- static match_table_t tokens = {
- 	{Opt_fd_dev_name, "fd_dev_name=%s"},
- 	{Opt_fd_dev_size, "fd_dev_size=%s"},
--	{Opt_fd_buffered_io, "fd_buffered_io=%d"},
- 	{Opt_err, NULL}
- };
- 
-@@ -490,7 +461,7 @@ static ssize_t fd_set_configfs_dev_params(
- 	struct fd_dev *fd_dev = se_dev->se_dev_su_ptr;
- 	char *orig, *ptr, *arg_p, *opts;
- 	substring_t args[MAX_OPT_ARGS];
--	int ret = 0, arg, token;
-+	int ret = 0, token;
- 
- 	opts = kstrdup(page, GFP_KERNEL);
- 	if (!opts)
-@@ -534,19 +505,6 @@ static ssize_t fd_set_configfs_dev_params(
- 					" bytes\n", fd_dev->fd_dev_size);
- 			fd_dev->fbd_flags |= FBDF_HAS_SIZE;
- 			break;
--		case Opt_fd_buffered_io:
--			match_int(args, &arg);
--			if (arg != 1) {
--				pr_err("bogus fd_buffered_io=%d value\n", arg);
--				ret = -EINVAL;
--				goto out;
--			}
--
--			pr_debug("FILEIO: Using buffered I/O"
--				" operations for struct fd_dev\n");
--
--			fd_dev->fbd_flags |= FDBD_USE_BUFFERED_IO;
--			break;
- 		default:
- 			break;
- 		}
-@@ -578,10 +536,8 @@ static ssize_t fd_show_configfs_dev_params(
- 	ssize_t bl = 0;
- 
- 	bl = sprintf(b + bl, "TCM FILEIO ID: %u", fd_dev->fd_dev_id);
--	bl += sprintf(b + bl, "        File: %s  Size: %llu  Mode: %s\n",
--		fd_dev->fd_dev_name, fd_dev->fd_dev_size,
--		(fd_dev->fbd_flags & FDBD_USE_BUFFERED_IO) ?
--		"Buffered" : "Synchronous");
-+	bl += sprintf(b + bl, "        File: %s  Size: %llu  Mode: O_DSYNC\n",
-+		fd_dev->fd_dev_name, fd_dev->fd_dev_size);
- 	return bl;
- }
- 
-diff --git a/drivers/target/target_core_file.h b/drivers/target/target_core_file.h
-index 59e6e73..53ece69 100644
---- a/drivers/target/target_core_file.h
-+++ b/drivers/target/target_core_file.h
-@@ -18,7 +18,6 @@ struct fd_request {
- 
- #define FBDF_HAS_PATH		0x01
- #define FBDF_HAS_SIZE		0x02
--#define FDBD_USE_BUFFERED_IO	0x04
- 
- struct fd_dev {
- 	u32		fbd_flags;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0077-iommu-amd-Cache-pdev-pointer-to-root-bridge.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0077-iommu-amd-Cache-pdev-pointer-to-root-bridge.patch
deleted file mode 100644
index 5d13500..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0077-iommu-amd-Cache-pdev-pointer-to-root-bridge.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 24791636a8052063d0f0ee3df30d8fce92e59398 Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Thu, 31 May 2012 17:38:11 +0200
-Subject: [PATCH 77/86] iommu/amd: Cache pdev pointer to root-bridge
-
-commit c1bf94ec1e12d76838ad485158aecf208ebd8fb9 upstream.
-
-At some point pci_get_bus_and_slot started to enable
-interrupts. Since this function is used in the
-amd_iommu_resume path it will enable interrupts on resume
-which causes a warning. The fix will use a cached pointer
-to the root-bridge to re-enable the IOMMU in case the BIOS
-is broken.
-
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/amd_iommu_init.c  |   13 +++++--------
- drivers/iommu/amd_iommu_types.h |    3 +++
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
-index 20d5852..6269eb0 100644
---- a/drivers/iommu/amd_iommu_init.c
-+++ b/drivers/iommu/amd_iommu_init.c
-@@ -943,6 +943,9 @@ static int __init init_iommu_one(struct amd_iommu *iommu, struct ivhd_header *h)
- 	if (!iommu->dev)
- 		return 1;
- 
-+	iommu->root_pdev = pci_get_bus_and_slot(iommu->dev->bus->number,
-+						PCI_DEVFN(0, 0));
-+
- 	iommu->cap_ptr = h->cap_ptr;
- 	iommu->pci_seg = h->pci_seg;
- 	iommu->mmio_phys = h->mmio_phys;
-@@ -1225,20 +1228,16 @@ static void iommu_apply_resume_quirks(struct amd_iommu *iommu)
- {
- 	int i, j;
- 	u32 ioc_feature_control;
--	struct pci_dev *pdev = NULL;
-+	struct pci_dev *pdev = iommu->root_pdev;
- 
- 	/* RD890 BIOSes may not have completely reconfigured the iommu */
--	if (!is_rd890_iommu(iommu->dev))
-+	if (!is_rd890_iommu(iommu->dev) || !pdev)
- 		return;
- 
- 	/*
- 	 * First, we need to ensure that the iommu is enabled. This is
- 	 * controlled by a register in the northbridge
- 	 */
--	pdev = pci_get_bus_and_slot(iommu->dev->bus->number, PCI_DEVFN(0, 0));
--
--	if (!pdev)
--		return;
- 
- 	/* Select Northbridge indirect register 0x75 and enable writing */
- 	pci_write_config_dword(pdev, 0x60, 0x75 | (1 << 7));
-@@ -1248,8 +1247,6 @@ static void iommu_apply_resume_quirks(struct amd_iommu *iommu)
- 	if (!(ioc_feature_control & 0x1))
- 		pci_write_config_dword(pdev, 0x64, ioc_feature_control | 1);
- 
--	pci_dev_put(pdev);
--
- 	/* Restore the iommu BAR */
- 	pci_write_config_dword(iommu->dev, iommu->cap_ptr + 4,
- 			       iommu->stored_addr_lo);
-diff --git a/drivers/iommu/amd_iommu_types.h b/drivers/iommu/amd_iommu_types.h
-index 5b9c507..40ab83b 100644
---- a/drivers/iommu/amd_iommu_types.h
-+++ b/drivers/iommu/amd_iommu_types.h
-@@ -385,6 +385,9 @@ struct amd_iommu {
- 	/* Pointer to PCI device of this IOMMU */
- 	struct pci_dev *dev;
- 
-+	/* Cache pdev to root device for resume quirks */
-+	struct pci_dev *root_pdev;
-+
- 	/* physical address of MMIO space */
- 	u64 mmio_phys;
- 	/* virtual address of MMIO space */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0078-drm-radeon-kms-add-new-Palm-Sumo-PCI-ids.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0078-drm-radeon-kms-add-new-Palm-Sumo-PCI-ids.patch
deleted file mode 100644
index 70ca675..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0078-drm-radeon-kms-add-new-Palm-Sumo-PCI-ids.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From eec9a1ae19fea9a7eeab32de2371932e845f8486 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 5 Jun 2012 09:50:29 -0400
-Subject: [PATCH 78/86] drm/radeon/kms: add new Palm, Sumo PCI ids
-
-commit 4a6991cc1fad514745b79181df3ace72d561e7aa upstream.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/drm/drm_pciids.h |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
-index 14b6cd0..78654ca 100644
---- a/include/drm/drm_pciids.h
-+++ b/include/drm/drm_pciids.h
-@@ -493,6 +493,7 @@
- 	{0x1002, 0x9645, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO2|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- 	{0x1002, 0x9647, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- 	{0x1002, 0x9648, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
-+	{0x1002, 0x9649, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_IS_MOBILITY|RADEON_NEW_MEMMAP|RADEON_IS_IGP},\
- 	{0x1002, 0x964a, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- 	{0x1002, 0x964b, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- 	{0x1002, 0x964c, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_SUMO|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
-@@ -512,6 +513,7 @@
- 	{0x1002, 0x9807, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- 	{0x1002, 0x9808, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- 	{0x1002, 0x9809, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
-+	{0x1002, 0x980A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_PALM|RADEON_NEW_MEMMAP|RADEON_IS_IGP}, \
- 	{0, 0, 0}
- 
- #define r128_PCI_IDS \
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0079-drm-radeon-kms-add-new-BTC-PCI-ids.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0079-drm-radeon-kms-add-new-BTC-PCI-ids.patch
deleted file mode 100644
index 024015e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0079-drm-radeon-kms-add-new-BTC-PCI-ids.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 3ed59dee924ffa272751ccbb5d84c57cef96a779 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 5 Jun 2012 09:50:30 -0400
-Subject: [PATCH 79/86] drm/radeon/kms: add new BTC PCI ids
-
-commit a2bef8ce826dd1e787fd8ad9b6e0566ba59dab43 upstream.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/drm/drm_pciids.h |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/include/drm/drm_pciids.h b/include/drm/drm_pciids.h
-index 78654ca..def807c 100644
---- a/include/drm/drm_pciids.h
-+++ b/include/drm/drm_pciids.h
-@@ -181,6 +181,7 @@
- 	{0x1002, 0x6747, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6748, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6749, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
-+	{0x1002, 0x674A, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6750, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6751, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6758, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_TURKS|RADEON_NEW_MEMMAP}, \
-@@ -198,6 +199,7 @@
- 	{0x1002, 0x6767, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6768, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6770, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
-+	{0x1002, 0x6771, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6772, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6778, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
- 	{0x1002, 0x6779, PCI_ANY_ID, PCI_ANY_ID, 0, 0, CHIP_CAICOS|RADEON_NEW_MEMMAP}, \
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0080-btree-fix-tree-corruption-in-btree_get_prev.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0080-btree-fix-tree-corruption-in-btree_get_prev.patch
deleted file mode 100644
index 7314c7d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0080-btree-fix-tree-corruption-in-btree_get_prev.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From b209359cc7df5f400a4c1cd342bf19afc377961e Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Thu, 7 Jun 2012 14:21:13 -0700
-Subject: [PATCH 80/86] btree: fix tree corruption in btree_get_prev()
-
-commit cbf8ae32f66a9ceb8907ad9e16663c2a29e48990 upstream.
-
-The memory the parameter __key points to is used as an iterator in
-btree_get_prev(), so if we save off a bkey() pointer in retry_key and
-then assign that to __key, we'll end up corrupting the btree internals
-when we do eg
-
-	longcpy(__key, bkey(geo, node, i), geo->keylen);
-
-to return the key value.  What we should do instead is use longcpy() to
-copy the key value that retry_key points to __key.
-
-This can cause a btree to get corrupted by seemingly read-only
-operations such as btree_for_each_safe.
-
-[akpm at linux-foundation.org: avoid the double longcpy()]
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Acked-by: Joern Engel <joern at logfs.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- lib/btree.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/lib/btree.c b/lib/btree.c
-index 2a34392..297124d 100644
---- a/lib/btree.c
-+++ b/lib/btree.c
-@@ -319,8 +319,8 @@ void *btree_get_prev(struct btree_head *head, struct btree_geo *geo,
- 
- 	if (head->height == 0)
- 		return NULL;
--retry:
- 	longcpy(key, __key, geo->keylen);
-+retry:
- 	dec_key(geo, key);
- 
- 	node = head->node;
-@@ -351,7 +351,7 @@ retry:
- 	}
- miss:
- 	if (retry_key) {
--		__key = retry_key;
-+		longcpy(key, retry_key, geo->keylen);
- 		retry_key = NULL;
- 		goto retry;
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0081-kbuild-install-kernel-page-flags.h.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0081-kbuild-install-kernel-page-flags.h.patch
deleted file mode 100644
index 0c34a7d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0081-kbuild-install-kernel-page-flags.h.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 5e25d4d8ce731b609f1be874fd76f66bc03de441 Mon Sep 17 00:00:00 2001
-From: Ulrich Drepper <drepper at akkadia.org>
-Date: Tue, 29 May 2012 15:06:30 -0700
-Subject: [PATCH 81/86] kbuild: install kernel-page-flags.h
-
-commit 9295b7a07c859a42346221b5839be0ae612333b0 upstream.
-
-Programs using /proc/kpageflags need to know about the various flags.  The
-<linux/kernel-page-flags.h> provides them and the comments in the file
-indicate that it is supposed to be used by user-level code.  But the file
-is not installed.
-
-Install the headers and mark the unstable flags as out-of-bounds.  The
-page-type tool is also adjusted to not duplicate the definitions
-
-Signed-off-by: Ulrich Drepper <drepper at gmail.com>
-Acked-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Acked-by: Fengguang Wu <fengguang.wu at intel.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2: adjust context; drop change to missing tools/vm/]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/Kbuild              |    1 +
- include/linux/kernel-page-flags.h |    4 ++++
- 2 files changed, 5 insertions(+)
-
-diff --git a/include/linux/Kbuild b/include/linux/Kbuild
-index 619b565..bd21ecd 100644
---- a/include/linux/Kbuild
-+++ b/include/linux/Kbuild
-@@ -224,6 +224,7 @@ header-y += kd.h
- header-y += kdev_t.h
- header-y += kernel.h
- header-y += kernelcapi.h
-+header-y += kernel-page-flags.h
- header-y += keyboard.h
- header-y += keyctl.h
- header-y += l2tp.h
-diff --git a/include/linux/kernel-page-flags.h b/include/linux/kernel-page-flags.h
-index bd92a89..096b05d 100644
---- a/include/linux/kernel-page-flags.h
-+++ b/include/linux/kernel-page-flags.h
-@@ -31,6 +31,8 @@
- 
- #define KPF_KSM			21
- 
-+#ifdef __KERNEL__
-+
- /* kernel hacking assistances
-  * WARNING: subject to change, never rely on them!
-  */
-@@ -43,4 +45,6 @@
- #define KPF_ARCH		38
- #define KPF_UNCACHED		39
- 
-+#endif /* __KERNEL__ */
-+
- #endif /* LINUX_KERNEL_PAGE_FLAGS_H */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0082-asix-allow-full-size-8021Q-frames-to-be-received.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0082-asix-allow-full-size-8021Q-frames-to-be-received.patch
deleted file mode 100644
index a55d8f9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0082-asix-allow-full-size-8021Q-frames-to-be-received.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 7d6dc5bd5f0608f96ec3d12d9eaecf45b053ccb8 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Mon, 28 May 2012 22:31:41 +0000
-Subject: [PATCH 82/86] asix: allow full size 8021Q frames to be received
-
-commit 9dae31009b1a00d926c6fe032d5a88099620adc3 upstream.
-
-asix driver drops 8021Q full size frames because it doesn't take into
-account VLAN header size.
-
-Tested on AX88772 adapter.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-CC: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-CC: Allan Chou <allan at asix.com.tw>
-CC: Trond Wuellner <trond at chromium.org>
-CC: Grant Grundler <grundler at chromium.org>
-CC: Paul Stewart <pstew at chromium.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 3.2: no offset used in asix_rx_fixup()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/asix.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/usb/asix.c b/drivers/net/usb/asix.c
-index a9abee8..fc147a5 100644
---- a/drivers/net/usb/asix.c
-+++ b/drivers/net/usb/asix.c
-@@ -35,6 +35,7 @@
- #include <linux/crc32.h>
- #include <linux/usb/usbnet.h>
- #include <linux/slab.h>
-+#include <linux/if_vlan.h>
- 
- #define DRIVER_VERSION "08-Nov-2011"
- #define DRIVER_NAME "asix"
-@@ -348,7 +349,7 @@ static int asix_rx_fixup(struct usbnet *dev, struct sk_buff *skb)
- 			return 2;
- 		}
- 
--		if (size > dev->net->mtu + ETH_HLEN) {
-+		if (size > dev->net->mtu + ETH_HLEN + VLAN_HLEN) {
- 			netdev_err(dev->net, "asix_rx_fixup() Bad RX Length %d\n",
- 				   size);
- 			return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0083-ext4-don-t-trash-state-flags-in-EXT4_IOC_SETFLAGS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0083-ext4-don-t-trash-state-flags-in-EXT4_IOC_SETFLAGS.patch
deleted file mode 100644
index b306294..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0083-ext4-don-t-trash-state-flags-in-EXT4_IOC_SETFLAGS.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2060683e126ab7d9bb0ed4a089f572d6f1563015 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Thu, 31 May 2012 23:46:01 -0400
-Subject: [PATCH 83/86] ext4: don't trash state flags in EXT4_IOC_SETFLAGS
-
-commit 79906964a187c405db72a3abc60eb9b50d804fbc upstream.
-
-In commit 353eb83c we removed i_state_flags with 64-bit longs, But
-when handling the EXT4_IOC_SETFLAGS ioctl, we replace i_flags
-directly, which trashes the state flags which are stored in the high
-32-bits of i_flags on 64-bit platforms.  So use the the
-ext4_{set,clear}_inode_flags() functions which use atomic bit
-manipulation functions instead.
-
-Reported-by: Tao Ma <boyu.mt at taobao.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/ioctl.c |   12 +++++++++---
- 1 file changed, 9 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
-index ab25f57..1b7bc39 100644
---- a/fs/ext4/ioctl.c
-+++ b/fs/ext4/ioctl.c
-@@ -36,7 +36,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
- 		handle_t *handle = NULL;
- 		int err, migrate = 0;
- 		struct ext4_iloc iloc;
--		unsigned int oldflags;
-+		unsigned int oldflags, mask, i;
- 		unsigned int jflag;
- 
- 		if (!inode_owner_or_capable(inode))
-@@ -113,8 +113,14 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
- 		if (err)
- 			goto flags_err;
- 
--		flags = flags & EXT4_FL_USER_MODIFIABLE;
--		flags |= oldflags & ~EXT4_FL_USER_MODIFIABLE;
-+		for (i = 0, mask = 1; i < 32; i++, mask <<= 1) {
-+			if (!(mask & EXT4_FL_USER_MODIFIABLE))
-+				continue;
-+			if (mask & flags)
-+				ext4_set_inode_flag(inode, i);
-+			else
-+				ext4_clear_inode_flag(inode, i);
-+		}
- 		ei->i_flags = flags;
- 
- 		ext4_set_inode_flags(inode);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0084-ext4-don-t-set-i_flags-in-EXT4_IOC_SETFLAGS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0084-ext4-don-t-set-i_flags-in-EXT4_IOC_SETFLAGS.patch
deleted file mode 100644
index 1529c65..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0084-ext4-don-t-set-i_flags-in-EXT4_IOC_SETFLAGS.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 829f95bac40b76e3eb7d26d5bab4a156d749ae33 Mon Sep 17 00:00:00 2001
-From: Tao Ma <boyu.mt at taobao.com>
-Date: Thu, 7 Jun 2012 19:04:19 -0400
-Subject: [PATCH 84/86] ext4: don't set i_flags in EXT4_IOC_SETFLAGS
-
-commit b22b1f178f6799278d3178d894f37facb2085765 upstream.
-
-Commit 7990696 uses the ext4_{set,clear}_inode_flags() functions to
-change the i_flags automatically but fails to remove the error setting
-of i_flags.  So we still have the problem of trashing state flags.
-Fix this by removing the assignment.
-
-Signed-off-by: Tao Ma <boyu.mt at taobao.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/ioctl.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/fs/ext4/ioctl.c b/fs/ext4/ioctl.c
-index 1b7bc39..76a6e3b 100644
---- a/fs/ext4/ioctl.c
-+++ b/fs/ext4/ioctl.c
-@@ -121,7 +121,6 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
- 			else
- 				ext4_clear_inode_flag(inode, i);
- 		}
--		ei->i_flags = flags;
- 
- 		ext4_set_inode_flags(inode);
- 		inode->i_ctime = ext4_current_time(inode);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0085-ext4-fix-the-free-blocks-calculation-for-ext3-file-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0085-ext4-fix-the-free-blocks-calculation-for-ext3-file-s.patch
deleted file mode 100644
index 3d05f08..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0085-ext4-fix-the-free-blocks-calculation-for-ext3-file-s.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From f83716d6c669e13a5c79262a51a267a752559c5d Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Thu, 7 Jun 2012 18:56:06 -0400
-Subject: [PATCH 85/86] ext4: fix the free blocks calculation for ext3 file
- systems w/ uninit_bg
-
-commit b0dd6b70f0fda17ae9762fbb72d98e40a4f66556 upstream.
-
-Ext3 filesystems that are converted to use as many ext4 file system
-features as possible will enable uninit_bg to speed up e2fsck times.
-These file systems will have a native ext3 layout of inode tables and
-block allocation bitmaps (as opposed to ext4's flex_bg layout).
-Unfortunately, in these cases, when first allocating a block in an
-uninitialized block group, ext4 would incorrectly calculate the number
-of free blocks in that block group, and then errorneously report that
-the file system was corrupt:
-
-EXT4-fs error (device vdd): ext4_mb_generate_buddy:741: group 30, 32254 clusters in bitmap, 32258 in gd
-
-This problem can be reproduced via:
-
-    mke2fs -q -t ext4 -O ^flex_bg /dev/vdd 5g
-    mount -t ext4 /dev/vdd /mnt
-    fallocate -l 4600m /mnt/test
-
-The problem was caused by a bone headed mistake in the check to see if a
-particular metadata block was part of the block group.
-
-Many thanks to Kees Cook for finding and bisecting the buggy commit
-which introduced this bug (commit fd034a84e1, present since v3.2).
-
-Reported-by: Sander Eikelenboom <linux at eikelenboom.it>
-Reported-by: Kees Cook <keescook at chromium.org>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Tested-by: Kees Cook <keescook at chromium.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/balloc.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
-index 12ccacd..914bf9e 100644
---- a/fs/ext4/balloc.c
-+++ b/fs/ext4/balloc.c
-@@ -88,8 +88,8 @@ unsigned ext4_num_overhead_clusters(struct super_block *sb,
- 	 * unusual file system layouts.
- 	 */
- 	if (ext4_block_in_group(sb, ext4_block_bitmap(sb, gdp), block_group)) {
--		block_cluster = EXT4_B2C(sbi, (start -
--					       ext4_block_bitmap(sb, gdp)));
-+		block_cluster = EXT4_B2C(sbi,
-+					 ext4_block_bitmap(sb, gdp) - start);
- 		if (block_cluster < num_clusters)
- 			block_cluster = -1;
- 		else if (block_cluster == num_clusters) {
-@@ -100,7 +100,7 @@ unsigned ext4_num_overhead_clusters(struct super_block *sb,
- 
- 	if (ext4_block_in_group(sb, ext4_inode_bitmap(sb, gdp), block_group)) {
- 		inode_cluster = EXT4_B2C(sbi,
--					 start - ext4_inode_bitmap(sb, gdp));
-+					 ext4_inode_bitmap(sb, gdp) - start);
- 		if (inode_cluster < num_clusters)
- 			inode_cluster = -1;
- 		else if (inode_cluster == num_clusters) {
-@@ -112,7 +112,7 @@ unsigned ext4_num_overhead_clusters(struct super_block *sb,
- 	itbl_blk = ext4_inode_table(sb, gdp);
- 	for (i = 0; i < sbi->s_itb_per_group; i++) {
- 		if (ext4_block_in_group(sb, itbl_blk + i, block_group)) {
--			c = EXT4_B2C(sbi, start - itbl_blk + i);
-+			c = EXT4_B2C(sbi, itbl_blk + i - start);
- 			if ((c < num_clusters) || (c == inode_cluster) ||
- 			    (c == block_cluster) || (c == itbl_cluster))
- 				continue;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0086-Linux-3.2.20.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0086-Linux-3.2.20.patch
deleted file mode 100644
index 58597da..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.20/0086-Linux-3.2.20.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 12056d4d781913f38e7d7a05fbf7c1b48a1f7d4d Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 10 Jun 2012 14:42:13 +0100
-Subject: [PATCH 86/86] Linux 3.2.20
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index c291184..c7e9cc4 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 19
-+SUBLEVEL = 20
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0001-drm-i915-Mark-the-ringbuffers-as-being-in-the-GTT-do.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0001-drm-i915-Mark-the-ringbuffers-as-being-in-the-GTT-do.patch
deleted file mode 100644
index f55f3ea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0001-drm-i915-Mark-the-ringbuffers-as-being-in-the-GTT-do.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 70a948c214a99cc13d1258bee77c13ca8a430c3d Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Mon, 4 Jun 2012 17:05:40 +0100
-Subject: [PATCH 01/67] drm/i915: Mark the ringbuffers as being in the GTT
- domain
-
-commit 3eef8918ff440837f6af791942d8dd07e1a268ee upstream.
-
-By correctly describing the rinbuffers as being in the GTT domain, it
-appears that we are more careful with the management of the CPU cache
-upon resume and so prevent some coherency issue when submitting commands
-to the GPU later. A secondary effect is that the debug logs are then
-consistent with the actual usage (i.e. they no longer describe the
-ringbuffers as being in the CPU write domain when we are accessing them
-through an wc iomapping.)
-
-Reported-and-tested-by: Daniel Gnoutcheff <daniel at gnoutcheff.name>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41092
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 62f9ac5..83da6e5 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -1045,6 +1045,10 @@ int intel_init_ring_buffer(struct drm_device *dev,
- 	if (ret)
- 		goto err_unref;
- 
-+	ret = i915_gem_object_set_to_gtt_domain(obj, true);
-+	if (ret)
-+		goto err_unpin;
-+
- 	ring->map.size = ring->size;
- 	ring->map.offset = dev->agp->base + obj->gtt_offset;
- 	ring->map.type = 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0002-drm-i915-hold-forcewake-around-ring-hw-init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0002-drm-i915-hold-forcewake-around-ring-hw-init.patch
deleted file mode 100644
index 14782bd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0002-drm-i915-hold-forcewake-around-ring-hw-init.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 56894d493cca01018bd2f3222a8a20b87abc1edd Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Mon, 4 Jun 2012 11:18:15 +0200
-Subject: [PATCH 02/67] drm/i915: hold forcewake around ring hw init
-
-commit b7884eb45ec98c0d34c7f49005ae9d4b4b4e38f6 upstream.
-
-Empirical evidence suggests that we need to: On at least one ivb
-machine when running the hangman i-g-t test, the rings don't properly
-initialize properly - the RING_START registers seems to be stuck at
-all zeros.
-
-Holding forcewake around this register init sequences makes chip reset
-reliable again. Note that this is not the first such issue:
-
-commit f01db988ef6f6c70a6cc36ee71e4a98a68901229
-Author: Sean Paul <seanpaul at chromium.org>
-Date:   Fri Mar 16 12:43:22 2012 -0400
-
-    drm/i915: Add wait_for in init_ring_common
-
-added delay loops to make RING_START and RING_CTL initialization
-reliable on the blt ring at boot-up. So I guess it won't hurt if we do
-this unconditionally for all force_wake needing gpus.
-
-To avoid copy&pasting of the HAS_FORCE_WAKE check I've added a new
-intel_info bit for that.
-
-v2: Fixup missing commas in static struct and properly handling the
-error case in init_ring_common, both noticed by Jani Nikula.
-
-Reported-and-tested-by: Yang Guang <guang.a.yang at intel.com>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50522
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2:
- - drop changes to Haswell device information
- - NEEDS_FORCE_WAKE didn't refer to Valley View anyway]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_drv.c         |    6 +++++-
- drivers/gpu/drm/i915/i915_drv.h         |    3 +++
- drivers/gpu/drm/i915/intel_ringbuffer.c |   16 +++++++++++++---
- 3 files changed, 21 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index d0f8830..3a1bfd7 100644
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -214,6 +214,7 @@ static const struct intel_device_info intel_sandybridge_d_info = {
- 	.need_gfx_hws = 1, .has_hotplug = 1,
- 	.has_bsd_ring = 1,
- 	.has_blt_ring = 1,
-+	.has_force_wake = 1,
- };
- 
- static const struct intel_device_info intel_sandybridge_m_info = {
-@@ -222,6 +223,7 @@ static const struct intel_device_info intel_sandybridge_m_info = {
- 	.has_fbc = 1,
- 	.has_bsd_ring = 1,
- 	.has_blt_ring = 1,
-+	.has_force_wake = 1,
- };
- 
- static const struct intel_device_info intel_ivybridge_d_info = {
-@@ -229,6 +231,7 @@ static const struct intel_device_info intel_ivybridge_d_info = {
- 	.need_gfx_hws = 1, .has_hotplug = 1,
- 	.has_bsd_ring = 1,
- 	.has_blt_ring = 1,
-+	.has_force_wake = 1,
- };
- 
- static const struct intel_device_info intel_ivybridge_m_info = {
-@@ -237,6 +240,7 @@ static const struct intel_device_info intel_ivybridge_m_info = {
- 	.has_fbc = 0,	/* FBC is not enabled on Ivybridge mobile yet */
- 	.has_bsd_ring = 1,
- 	.has_blt_ring = 1,
-+	.has_force_wake = 1,
- };
- 
- static const struct pci_device_id pciidlist[] = {		/* aka */
-@@ -939,7 +943,7 @@ MODULE_LICENSE("GPL and additional rights");
- 
- /* We give fast paths for the really cool registers */
- #define NEEDS_FORCE_WAKE(dev_priv, reg) \
--	(((dev_priv)->info->gen >= 6) && \
-+	((HAS_FORCE_WAKE((dev_priv)->dev)) && \
- 	 ((reg) < 0x40000) &&		 \
- 	 ((reg) != FORCEWAKE) &&	 \
- 	 ((reg) != ECOBUS))
-diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index ae294a0..d62c731 100644
---- a/drivers/gpu/drm/i915/i915_drv.h
-+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -244,6 +244,7 @@ struct intel_device_info {
- 	u8 is_broadwater:1;
- 	u8 is_crestline:1;
- 	u8 is_ivybridge:1;
-+	u8 has_force_wake:1;
- 	u8 has_fbc:1;
- 	u8 has_pipe_cxsr:1;
- 	u8 has_hotplug:1;
-@@ -1001,6 +1002,8 @@ struct drm_i915_file_private {
- #define HAS_PCH_CPT(dev) (INTEL_PCH_TYPE(dev) == PCH_CPT)
- #define HAS_PCH_IBX(dev) (INTEL_PCH_TYPE(dev) == PCH_IBX)
- 
-+#define HAS_FORCE_WAKE(dev) (INTEL_INFO(dev)->has_force_wake)
-+
- #include "i915_trace.h"
- 
- extern struct drm_ioctl_desc i915_ioctls[];
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 83da6e5..933e66b 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -263,10 +263,15 @@ u32 intel_ring_get_active_head(struct intel_ring_buffer *ring)
- 
- static int init_ring_common(struct intel_ring_buffer *ring)
- {
--	drm_i915_private_t *dev_priv = ring->dev->dev_private;
-+	struct drm_device *dev = ring->dev;
-+	drm_i915_private_t *dev_priv = dev->dev_private;
- 	struct drm_i915_gem_object *obj = ring->obj;
-+	int ret = 0;
- 	u32 head;
- 
-+	if (HAS_FORCE_WAKE(dev))
-+		gen6_gt_force_wake_get(dev_priv);
-+
- 	/* Stop the ring if it's running. */
- 	I915_WRITE_CTL(ring, 0);
- 	I915_WRITE_HEAD(ring, 0);
-@@ -314,7 +319,8 @@ static int init_ring_common(struct intel_ring_buffer *ring)
- 				I915_READ_HEAD(ring),
- 				I915_READ_TAIL(ring),
- 				I915_READ_START(ring));
--		return -EIO;
-+		ret = -EIO;
-+		goto out;
- 	}
- 
- 	if (!drm_core_check_feature(ring->dev, DRIVER_MODESET))
-@@ -325,7 +331,11 @@ static int init_ring_common(struct intel_ring_buffer *ring)
- 		ring->space = ring_space(ring);
- 	}
- 
--	return 0;
-+out:
-+	if (HAS_FORCE_WAKE(dev))
-+		gen6_gt_force_wake_put(dev_priv);
-+
-+	return ret;
- }
- 
- static int
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0003-drm-i915-Unpin-the-flip-target-if-we-fail-to-queue-t.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0003-drm-i915-Unpin-the-flip-target-if-we-fail-to-queue-t.patch
deleted file mode 100644
index 9593526..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0003-drm-i915-Unpin-the-flip-target-if-we-fail-to-queue-t.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From d2d41b738ccb89bf3e5903fdf04bb43a712dd5d3 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Tue, 17 Apr 2012 19:35:53 +0100
-Subject: [PATCH 03/67] drm/i915: Unpin the flip target if we fail to queue
- the flip
-
-commit 83d4092b0381e5dd6f312b2ec57121dcf0fcbade upstream.
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2:
- - adjust context
- - we don't have intel_unpin_fb_obj(); use i915_gem_object_unpin()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |   50 ++++++++++++++++++++++++----------
- 1 file changed, 35 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 4720397..1f43ae5 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -7009,14 +7009,14 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
- 
- 	ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv));
- 	if (ret)
--		goto out;
-+		goto err;
- 
- 	/* Offset into the new buffer for cases of shared fbs between CRTCs */
- 	offset = crtc->y * fb->pitch + crtc->x * fb->bits_per_pixel/8;
- 
- 	ret = BEGIN_LP_RING(6);
- 	if (ret)
--		goto out;
-+		goto err_unpin;
- 
- 	/* Can't queue multiple flips, so wait for the previous
- 	 * one to finish before executing the next.
-@@ -7033,7 +7033,11 @@ static int intel_gen2_queue_flip(struct drm_device *dev,
- 	OUT_RING(obj->gtt_offset + offset);
- 	OUT_RING(MI_NOOP);
- 	ADVANCE_LP_RING();
--out:
-+	return 0;
-+
-+err_unpin:
-+	i915_gem_object_unpin(obj);
-+err:
- 	return ret;
- }
- 
-@@ -7050,14 +7054,14 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
- 
- 	ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv));
- 	if (ret)
--		goto out;
-+		goto err;
- 
- 	/* Offset into the new buffer for cases of shared fbs between CRTCs */
- 	offset = crtc->y * fb->pitch + crtc->x * fb->bits_per_pixel/8;
- 
- 	ret = BEGIN_LP_RING(6);
- 	if (ret)
--		goto out;
-+		goto err_unpin;
- 
- 	if (intel_crtc->plane)
- 		flip_mask = MI_WAIT_FOR_PLANE_B_FLIP;
-@@ -7072,7 +7076,11 @@ static int intel_gen3_queue_flip(struct drm_device *dev,
- 	OUT_RING(MI_NOOP);
- 
- 	ADVANCE_LP_RING();
--out:
-+	return 0;
-+
-+err_unpin:
-+	i915_gem_object_unpin(obj);
-+err:
- 	return ret;
- }
- 
-@@ -7088,11 +7096,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
- 
- 	ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv));
- 	if (ret)
--		goto out;
-+		goto err;
- 
- 	ret = BEGIN_LP_RING(4);
- 	if (ret)
--		goto out;
-+		goto err_unpin;
- 
- 	/* i965+ uses the linear or tiled offsets from the
- 	 * Display Registers (which do not change across a page-flip)
-@@ -7111,7 +7119,11 @@ static int intel_gen4_queue_flip(struct drm_device *dev,
- 	pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
- 	OUT_RING(pf | pipesrc);
- 	ADVANCE_LP_RING();
--out:
-+	return 0;
-+
-+err_unpin:
-+	i915_gem_object_unpin(obj);
-+err:
- 	return ret;
- }
- 
-@@ -7127,11 +7139,11 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
- 
- 	ret = intel_pin_and_fence_fb_obj(dev, obj, LP_RING(dev_priv));
- 	if (ret)
--		goto out;
-+		goto err;
- 
- 	ret = BEGIN_LP_RING(4);
- 	if (ret)
--		goto out;
-+		goto err_unpin;
- 
- 	OUT_RING(MI_DISPLAY_FLIP |
- 		 MI_DISPLAY_FLIP_PLANE(intel_crtc->plane));
-@@ -7142,7 +7154,11 @@ static int intel_gen6_queue_flip(struct drm_device *dev,
- 	pipesrc = I915_READ(PIPESRC(intel_crtc->pipe)) & 0x0fff0fff;
- 	OUT_RING(pf | pipesrc);
- 	ADVANCE_LP_RING();
--out:
-+	return 0;
-+
-+err_unpin:
-+	i915_gem_object_unpin(obj);
-+err:
- 	return ret;
- }
- 
-@@ -7164,18 +7180,22 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
- 
- 	ret = intel_pin_and_fence_fb_obj(dev, obj, ring);
- 	if (ret)
--		goto out;
-+		goto err;
- 
- 	ret = intel_ring_begin(ring, 4);
- 	if (ret)
--		goto out;
-+		goto err_unpin;
- 
- 	intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | (intel_crtc->plane << 19));
- 	intel_ring_emit(ring, (fb->pitch | obj->tiling_mode));
- 	intel_ring_emit(ring, (obj->gtt_offset));
- 	intel_ring_emit(ring, (MI_NOOP));
- 	intel_ring_advance(ring);
--out:
-+	return 0;
-+
-+err_unpin:
-+	i915_gem_object_unpin(obj);
-+err:
- 	return ret;
- }
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0004-drm-i915-fix-up-ivb-plane-3-pageflips.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0004-drm-i915-fix-up-ivb-plane-3-pageflips.patch
deleted file mode 100644
index 33031c7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0004-drm-i915-fix-up-ivb-plane-3-pageflips.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From e76a063bd6b6038a0fd3ab502ae6f14ebc145944 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Wed, 23 May 2012 14:02:00 +0200
-Subject: [PATCH 04/67] drm/i915: fix up ivb plane 3 pageflips
-
-commit cb05d8dedefa3066bf5d74ef88c6ca6cf4bd1c87 upstream.
-
-Or at least plug another gapping hole. Apparrently hw desingers only
-moved the bit field, but did not bother ot re-enumerate the planes
-when adding support for a 3rd pipe.
-
-Discovered by i-g-t/flip_test.
-
-This may or may not fix the reference bugzilla, because that one
-smells like we have still larger fish to fry.
-
-v2: Fixup the impossible case to catch programming errors, noticed by
-Chris Wilson.
-
-References: https://bugs.freedesktop.org/show_bug.cgi?id=50069
-Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_reg.h      |    8 ++++++++
- drivers/gpu/drm/i915/intel_display.c |   19 ++++++++++++++++++-
- 2 files changed, 26 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_reg.h b/drivers/gpu/drm/i915/i915_reg.h
-index 06ec1e5..fd53122 100644
---- a/drivers/gpu/drm/i915/i915_reg.h
-+++ b/drivers/gpu/drm/i915/i915_reg.h
-@@ -164,6 +164,14 @@
- #define MI_DISPLAY_FLIP		MI_INSTR(0x14, 2)
- #define MI_DISPLAY_FLIP_I915	MI_INSTR(0x14, 1)
- #define   MI_DISPLAY_FLIP_PLANE(n) ((n) << 20)
-+/* IVB has funny definitions for which plane to flip. */
-+#define   MI_DISPLAY_FLIP_IVB_PLANE_A  (0 << 19)
-+#define   MI_DISPLAY_FLIP_IVB_PLANE_B  (1 << 19)
-+#define   MI_DISPLAY_FLIP_IVB_SPRITE_A (2 << 19)
-+#define   MI_DISPLAY_FLIP_IVB_SPRITE_B (3 << 19)
-+#define   MI_DISPLAY_FLIP_IVB_PLANE_C  (4 << 19)
-+#define   MI_DISPLAY_FLIP_IVB_SPRITE_C (5 << 19)
-+
- #define MI_SET_CONTEXT		MI_INSTR(0x18, 0)
- #define   MI_MM_SPACE_GTT		(1<<8)
- #define   MI_MM_SPACE_PHYSICAL		(0<<8)
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 1f43ae5..5c1cdb8 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -7176,17 +7176,34 @@ static int intel_gen7_queue_flip(struct drm_device *dev,
- 	struct drm_i915_private *dev_priv = dev->dev_private;
- 	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
- 	struct intel_ring_buffer *ring = &dev_priv->ring[BCS];
-+	uint32_t plane_bit = 0;
- 	int ret;
- 
- 	ret = intel_pin_and_fence_fb_obj(dev, obj, ring);
- 	if (ret)
- 		goto err;
- 
-+	switch(intel_crtc->plane) {
-+	case PLANE_A:
-+		plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_A;
-+		break;
-+	case PLANE_B:
-+		plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_B;
-+		break;
-+	case PLANE_C:
-+		plane_bit = MI_DISPLAY_FLIP_IVB_PLANE_C;
-+		break;
-+	default:
-+		WARN_ONCE(1, "unknown plane in flip command\n");
-+		ret = -ENODEV;
-+		goto err;
-+	}
-+
- 	ret = intel_ring_begin(ring, 4);
- 	if (ret)
- 		goto err_unpin;
- 
--	intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | (intel_crtc->plane << 19));
-+	intel_ring_emit(ring, MI_DISPLAY_FLIP_I915 | plane_bit);
- 	intel_ring_emit(ring, (fb->pitch | obj->tiling_mode));
- 	intel_ring_emit(ring, (obj->gtt_offset));
- 	intel_ring_emit(ring, (MI_NOOP));
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0005-char-agp-add-another-Ironlake-host-bridge.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0005-char-agp-add-another-Ironlake-host-bridge.patch
deleted file mode 100644
index 8b303d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0005-char-agp-add-another-Ironlake-host-bridge.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From afd5d9b3973b65b15dd6c48f3f403c4809f71b66 Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Wed, 6 Jun 2012 11:59:06 -0300
-Subject: [PATCH 05/67] char/agp: add another Ironlake host bridge
-
-commit 67384fe3fd450536342330f684ea1f7dcaef8130 upstream.
-
-This seems to come on Gigabyte H55M-S2V and was discovered through the
-https://bugs.freedesktop.org/show_bug.cgi?id=50381 debugging.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50381
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/agp/intel-agp.c |    1 +
- drivers/char/agp/intel-agp.h |    1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/drivers/char/agp/intel-agp.c b/drivers/char/agp/intel-agp.c
-index b427711..58b49d1 100644
---- a/drivers/char/agp/intel-agp.c
-+++ b/drivers/char/agp/intel-agp.c
-@@ -897,6 +897,7 @@ static struct pci_device_id agp_intel_pci_table[] = {
- 	ID(PCI_DEVICE_ID_INTEL_B43_HB),
- 	ID(PCI_DEVICE_ID_INTEL_B43_1_HB),
- 	ID(PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB),
-+	ID(PCI_DEVICE_ID_INTEL_IRONLAKE_D2_HB),
- 	ID(PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB),
- 	ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB),
- 	ID(PCI_DEVICE_ID_INTEL_IRONLAKE_MC2_HB),
-diff --git a/drivers/char/agp/intel-agp.h b/drivers/char/agp/intel-agp.h
-index 5da67f1..6f24604 100644
---- a/drivers/char/agp/intel-agp.h
-+++ b/drivers/char/agp/intel-agp.h
-@@ -211,6 +211,7 @@
- #define PCI_DEVICE_ID_INTEL_G41_HB          0x2E30
- #define PCI_DEVICE_ID_INTEL_G41_IG          0x2E32
- #define PCI_DEVICE_ID_INTEL_IRONLAKE_D_HB	    0x0040
-+#define PCI_DEVICE_ID_INTEL_IRONLAKE_D2_HB	    0x0069
- #define PCI_DEVICE_ID_INTEL_IRONLAKE_D_IG	    0x0042
- #define PCI_DEVICE_ID_INTEL_IRONLAKE_M_HB	    0x0044
- #define PCI_DEVICE_ID_INTEL_IRONLAKE_MA_HB	    0x0062
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0006-x86-uv-Fix-UV2-BAU-legacy-mode.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0006-x86-uv-Fix-UV2-BAU-legacy-mode.patch
deleted file mode 100644
index 26dc10f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0006-x86-uv-Fix-UV2-BAU-legacy-mode.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From ccfbdd3321d88685a0c3a2f69838a7a4706e32ef Mon Sep 17 00:00:00 2001
-From: Cliff Wickman <cpw at sgi.com>
-Date: Thu, 7 Jun 2012 08:31:40 -0500
-Subject: [PATCH 06/67] x86/uv: Fix UV2 BAU legacy mode
-
-commit d5d2d2eea84b0d8450b082edbc3dbde41fb8bfd8 upstream.
-
-The SGI Altix UV2 BAU (Broadcast Assist Unit) as used for
-tlb-shootdown (selective broadcast mode) always uses UV2
-broadcast descriptor format. There is no need to clear the
-'legacy' (UV1) mode, because the hardware always uses UV2 mode
-for selective broadcast.
-
-But the BIOS uses general broadcast and legacy mode, and the
-hardware pays attention to the legacy mode bit for general
-broadcast. So the kernel must not clear that mode bit.
-
-Signed-off-by: Cliff Wickman <cpw at sgi.com>
-Link: http://lkml.kernel.org/r/E1SccoO-0002Lh-Cb@eag09.americas.sgi.com
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/include/asm/uv/uv_bau.h |    1 -
- arch/x86/platform/uv/tlb_uv.c    |    1 -
- 2 files changed, 2 deletions(-)
-
-diff --git a/arch/x86/include/asm/uv/uv_bau.h b/arch/x86/include/asm/uv/uv_bau.h
-index 1b82f7e..679229f 100644
---- a/arch/x86/include/asm/uv/uv_bau.h
-+++ b/arch/x86/include/asm/uv/uv_bau.h
-@@ -149,7 +149,6 @@
- /* 4 bits of software ack period */
- #define UV2_ACK_MASK			0x7UL
- #define UV2_ACK_UNITS_SHFT		3
--#define UV2_LEG_SHFT UV2H_LB_BAU_MISC_CONTROL_USE_LEGACY_DESCRIPTOR_FORMATS_SHFT
- #define UV2_EXT_SHFT UV2H_LB_BAU_MISC_CONTROL_ENABLE_EXTENDED_SB_STATUS_SHFT
- 
- /*
-diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
-index 81aee5a..29a69550 100644
---- a/arch/x86/platform/uv/tlb_uv.c
-+++ b/arch/x86/platform/uv/tlb_uv.c
-@@ -1304,7 +1304,6 @@ static void __init enable_timeouts(void)
- 		 */
- 		mmr_image |= (1L << SOFTACK_MSHIFT);
- 		if (is_uv2_hub()) {
--			mmr_image &= ~(1L << UV2_LEG_SHFT);
- 			mmr_image |= (1L << UV2_EXT_SHFT);
- 		}
- 		write_mmr_misc_control(pnode, mmr_image);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0007-powerpc-Fix-kernel-panic-during-kernel-module-load.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0007-powerpc-Fix-kernel-panic-during-kernel-module-load.patch
deleted file mode 100644
index 3076ce9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0007-powerpc-Fix-kernel-panic-during-kernel-module-load.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 5c6f8c50fe40cec7015a6bfa9762bf76d52211d6 Mon Sep 17 00:00:00 2001
-From: Steffen Rumler <steffen.rumler.ext at nsn.com>
-Date: Wed, 6 Jun 2012 16:37:17 +0200
-Subject: [PATCH 07/67] powerpc: Fix kernel panic during kernel module load
-
-commit 3c75296562f43e6fbc6cddd3de948a7b3e4e9bcf upstream.
-
-This fixes a problem which can causes kernel oopses while loading
-a kernel module.
-
-According to the PowerPC EABI specification, GPR r11 is assigned
-the dedicated function to point to the previous stack frame.
-In the powerpc-specific kernel module loader, do_plt_call()
-(in arch/powerpc/kernel/module_32.c), GPR r11 is also used
-to generate trampoline code.
-
-This combination crashes the kernel, in the case where the compiler
-chooses to use a helper function for saving GPRs on entry, and the
-module loader has placed the .init.text section far away from the
-.text section, meaning that it has to generate a trampoline for
-functions in the .init.text section to call the GPR save helper.
-Because the trampoline trashes r11, references to the stack frame
-using r11 can cause an oops.
-
-The fix just uses GPR r12 instead of GPR r11 for generating the
-trampoline code.  According to the statements from Freescale, this is
-safe from an EABI perspective.
-
-I've tested the fix for kernel 2.6.33 on MPC8541.
-
-Signed-off-by: Steffen Rumler <steffen.rumler.ext at nsn.com>
-[paulus at samba.org: reworded the description]
-Signed-off-by: Paul Mackerras <paulus at samba.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/powerpc/kernel/module_32.c |   11 +++++------
- 1 file changed, 5 insertions(+), 6 deletions(-)
-
-diff --git a/arch/powerpc/kernel/module_32.c b/arch/powerpc/kernel/module_32.c
-index 0b6d796..2e3200c 100644
---- a/arch/powerpc/kernel/module_32.c
-+++ b/arch/powerpc/kernel/module_32.c
-@@ -176,8 +176,8 @@ int module_frob_arch_sections(Elf32_Ehdr *hdr,
- 
- static inline int entry_matches(struct ppc_plt_entry *entry, Elf32_Addr val)
- {
--	if (entry->jump[0] == 0x3d600000 + ((val + 0x8000) >> 16)
--	    && entry->jump[1] == 0x396b0000 + (val & 0xffff))
-+	if (entry->jump[0] == 0x3d800000 + ((val + 0x8000) >> 16)
-+	    && entry->jump[1] == 0x398c0000 + (val & 0xffff))
- 		return 1;
- 	return 0;
- }
-@@ -204,10 +204,9 @@ static uint32_t do_plt_call(void *location,
- 		entry++;
- 	}
- 
--	/* Stolen from Paul Mackerras as well... */
--	entry->jump[0] = 0x3d600000+((val+0x8000)>>16);	/* lis r11,sym at ha */
--	entry->jump[1] = 0x396b0000 + (val&0xffff);	/* addi r11,r11,sym at l*/
--	entry->jump[2] = 0x7d6903a6;			/* mtctr r11 */
-+	entry->jump[0] = 0x3d800000+((val+0x8000)>>16); /* lis r12,sym at ha */
-+	entry->jump[1] = 0x398c0000 + (val&0xffff);     /* addi r12,r12,sym at l*/
-+	entry->jump[2] = 0x7d8903a6;                    /* mtctr r12 */
- 	entry->jump[3] = 0x4e800420;			/* bctr */
- 
- 	DEBUGP("Initialized plt for 0x%x at %p\n", val, entry);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0008-drm-nouveau-determine-a-value-for-display_info.bpc-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0008-drm-nouveau-determine-a-value-for-display_info.bpc-i.patch
deleted file mode 100644
index 4b3559b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0008-drm-nouveau-determine-a-value-for-display_info.bpc-i.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From ac9d749e3f0fcf7e8ce73cf00cf3a7d91debdc89 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs at redhat.com>
-Date: Mon, 17 Oct 2011 10:24:49 +1000
-Subject: [PATCH 08/67] drm/nouveau: determine a value for display_info.bpc if
- edid doesn't
-
-commit 6322175530c89ab719cea28202f96a3660491727 upstream.
-
-Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nouveau_connector.c |   46 +++++++++++++++++++++++++++
- 1 file changed, 46 insertions(+)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
-index cea6696..e2c50d8 100644
---- a/drivers/gpu/drm/nouveau/nouveau_connector.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
-@@ -602,6 +602,46 @@ nouveau_connector_scaler_modes_add(struct drm_connector *connector)
- 	return modes;
- }
- 
-+static void
-+nouveau_connector_detect_depth(struct drm_connector *connector)
-+{
-+	struct drm_nouveau_private *dev_priv = connector->dev->dev_private;
-+	struct nouveau_connector *nv_connector = nouveau_connector(connector);
-+	struct nouveau_encoder *nv_encoder = nv_connector->detected_encoder;
-+	struct nvbios *bios = &dev_priv->vbios;
-+	struct drm_display_mode *mode = nv_connector->native_mode;
-+	bool duallink;
-+
-+	/* if the edid is feeling nice enough to provide this info, use it */
-+	if (nv_connector->edid && connector->display_info.bpc)
-+		return;
-+
-+	/* if not, we're out of options unless we're LVDS, default to 6bpc */
-+	connector->display_info.bpc = 6;
-+	if (nv_encoder->dcb->type != OUTPUT_LVDS)
-+		return;
-+
-+	/* LVDS: panel straps */
-+	if (bios->fp_no_ddc) {
-+		if (bios->fp.if_is_24bit)
-+			connector->display_info.bpc = 8;
-+		return;
-+	}
-+
-+	/* LVDS: DDC panel, need to first determine the number of links to
-+	 * know which if_is_24bit flag to check...
-+	 */
-+	if (nv_connector->edid &&
-+	    nv_connector->dcb->type == DCB_CONNECTOR_LVDS_SPWG)
-+		duallink = ((u8 *)nv_connector->edid)[121] == 2;
-+	else
-+		duallink = mode->clock >= bios->fp.duallink_transition_clk;
-+
-+	if ((!duallink && (bios->fp.strapless_is_24bit & 1)) ||
-+	    ( duallink && (bios->fp.strapless_is_24bit & 2)))
-+		connector->display_info.bpc = 8;
-+}
-+
- static int
- nouveau_connector_get_modes(struct drm_connector *connector)
- {
-@@ -646,6 +686,12 @@ nouveau_connector_get_modes(struct drm_connector *connector)
- 		ret = 1;
- 	}
- 
-+	/* Attempt to determine display colour depth, this has to happen after
-+	 * we've determined the "native" mode for LVDS, as the VBIOS tables
-+	 * require us to compare against a pixel clock in some cases..
-+	 */
-+	nouveau_connector_detect_depth(connector);
-+
- 	if (nv_encoder->dcb->type == OUTPUT_TV)
- 		ret = get_slave_funcs(encoder)->get_modes(encoder, connector);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0009-drm-nouveau-default-to-8bpc-for-non-LVDS-panels-if-E.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0009-drm-nouveau-default-to-8bpc-for-non-LVDS-panels-if-E.patch
deleted file mode 100644
index eeb07d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0009-drm-nouveau-default-to-8bpc-for-non-LVDS-panels-if-E.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 672b73575b5fb47166e255cc9a374b858d5f59da Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs at redhat.com>
-Date: Sat, 24 Mar 2012 16:26:13 +1000
-Subject: [PATCH 09/67] drm/nouveau: default to 8bpc for non-LVDS panels if
- EDID isn't useful
-
-commit c8435362f2211086b34ce871fa9c3fcc7ca79ff9 upstream.
-
-A few reports of bad behaviour since the autodetection defaulted to 6bpc,
-lets fix this.
-
-Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nouveau_connector.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
-index e2c50d8..eeaa8ca 100644
---- a/drivers/gpu/drm/nouveau/nouveau_connector.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
-@@ -616,10 +616,13 @@ nouveau_connector_detect_depth(struct drm_connector *connector)
- 	if (nv_connector->edid && connector->display_info.bpc)
- 		return;
- 
--	/* if not, we're out of options unless we're LVDS, default to 6bpc */
--	connector->display_info.bpc = 6;
--	if (nv_encoder->dcb->type != OUTPUT_LVDS)
-+	/* if not, we're out of options unless we're LVDS, default to 8bpc */
-+	if (nv_encoder->dcb->type != OUTPUT_LVDS) {
-+		connector->display_info.bpc = 8;
- 		return;
-+	}
-+
-+	connector->display_info.bpc = 6;
- 
- 	/* LVDS: panel straps */
- 	if (bios->fp_no_ddc) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0010-drm-nouveau-disp-fix-dithering-not-being-enabled-on-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0010-drm-nouveau-disp-fix-dithering-not-being-enabled-on-.patch
deleted file mode 100644
index f9a2041..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0010-drm-nouveau-disp-fix-dithering-not-being-enabled-on-.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 1c16b668a8c284025dc8c639a1b760eccaed3864 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs at redhat.com>
-Date: Sat, 5 May 2012 00:39:21 +1000
-Subject: [PATCH 10/67] drm/nouveau/disp: fix dithering not being enabled on
- some eDP macbooks
-
-commit a6a17859f1bdf607650ee055101f54c5f207762b upstream.
-
-Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
-[Maarten Lankhorst backported to 3.2,
- changing nv_connector->type to nv_connector->dcb->type]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nouveau_connector.c |    8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_connector.c b/drivers/gpu/drm/nouveau/nouveau_connector.c
-index eeaa8ca..1e72db5 100644
---- a/drivers/gpu/drm/nouveau/nouveau_connector.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_connector.c
-@@ -616,7 +616,13 @@ nouveau_connector_detect_depth(struct drm_connector *connector)
- 	if (nv_connector->edid && connector->display_info.bpc)
- 		return;
- 
--	/* if not, we're out of options unless we're LVDS, default to 8bpc */
-+	/* EDID 1.4 is *supposed* to be supported on eDP, but, Apple... */
-+	if (nv_connector->dcb->type == DCB_CONNECTOR_eDP) {
-+		connector->display_info.bpc = 6;
-+		return;
-+	}
-+
-+	/* we're out of options unless we're LVDS, default to 8bpc */
- 	if (nv_encoder->dcb->type != OUTPUT_LVDS) {
- 		connector->display_info.bpc = 8;
- 		return;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0011-fuse-fix-stat-call-on-32-bit-platforms.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0011-fuse-fix-stat-call-on-32-bit-platforms.patch
deleted file mode 100644
index 041098a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0011-fuse-fix-stat-call-on-32-bit-platforms.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 16bebb9a3715d7d06a3bcc4b4ec1c1209251d494 Mon Sep 17 00:00:00 2001
-From: Pavel Shilovsky <piastry at etersoft.ru>
-Date: Thu, 10 May 2012 19:49:38 +0400
-Subject: [PATCH 11/67] fuse: fix stat call on 32 bit platforms
-
-commit 45c72cd73c788dd18c8113d4a404d6b4a01decf1 upstream.
-
-Now we store attr->ino at inode->i_ino, return attr->ino at the
-first time and then return inode->i_ino if the attribute timeout
-isn't expired. That's wrong on 32 bit platforms because attr->ino
-is 64 bit and inode->i_ino is 32 bit in this case.
-
-Fix this by saving 64 bit ino in fuse_inode structure and returning
-it every time we call getattr. Also squash attr->ino into inode->i_ino
-explicitly.
-
-Signed-off-by: Pavel Shilovsky <piastry at etersoft.ru>
-Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/fuse/dir.c    |    1 +
- fs/fuse/fuse_i.h |    3 +++
- fs/fuse/inode.c  |   17 ++++++++++++++++-
- 3 files changed, 20 insertions(+), 1 deletion(-)
-
-diff --git a/fs/fuse/dir.c b/fs/fuse/dir.c
-index 9f63e49..5ef7afb 100644
---- a/fs/fuse/dir.c
-+++ b/fs/fuse/dir.c
-@@ -858,6 +858,7 @@ int fuse_update_attributes(struct inode *inode, struct kstat *stat,
- 		if (stat) {
- 			generic_fillattr(inode, stat);
- 			stat->mode = fi->orig_i_mode;
-+			stat->ino = fi->orig_ino;
- 		}
- 	}
- 
-diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h
-index cf6db0a..89c4a58 100644
---- a/fs/fuse/fuse_i.h
-+++ b/fs/fuse/fuse_i.h
-@@ -82,6 +82,9 @@ struct fuse_inode {
- 	    preserve the original mode */
- 	mode_t orig_i_mode;
- 
-+	/** 64 bit inode number */
-+	u64 orig_ino;
-+
- 	/** Version of last attribute change */
- 	u64 attr_version;
- 
-diff --git a/fs/fuse/inode.c b/fs/fuse/inode.c
-index aa83109..1f82d95 100644
---- a/fs/fuse/inode.c
-+++ b/fs/fuse/inode.c
-@@ -91,6 +91,7 @@ static struct inode *fuse_alloc_inode(struct super_block *sb)
- 	fi->nlookup = 0;
- 	fi->attr_version = 0;
- 	fi->writectr = 0;
-+	fi->orig_ino = 0;
- 	INIT_LIST_HEAD(&fi->write_files);
- 	INIT_LIST_HEAD(&fi->queued_writes);
- 	INIT_LIST_HEAD(&fi->writepages);
-@@ -140,6 +141,18 @@ static int fuse_remount_fs(struct super_block *sb, int *flags, char *data)
- 	return 0;
- }
- 
-+/*
-+ * ino_t is 32-bits on 32-bit arch. We have to squash the 64-bit value down
-+ * so that it will fit.
-+ */
-+static ino_t fuse_squash_ino(u64 ino64)
-+{
-+	ino_t ino = (ino_t) ino64;
-+	if (sizeof(ino_t) < sizeof(u64))
-+		ino ^= ino64 >> (sizeof(u64) - sizeof(ino_t)) * 8;
-+	return ino;
-+}
-+
- void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
- 				   u64 attr_valid)
- {
-@@ -149,7 +162,7 @@ void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
- 	fi->attr_version = ++fc->attr_version;
- 	fi->i_time = attr_valid;
- 
--	inode->i_ino     = attr->ino;
-+	inode->i_ino     = fuse_squash_ino(attr->ino);
- 	inode->i_mode    = (inode->i_mode & S_IFMT) | (attr->mode & 07777);
- 	set_nlink(inode, attr->nlink);
- 	inode->i_uid     = attr->uid;
-@@ -175,6 +188,8 @@ void fuse_change_attributes_common(struct inode *inode, struct fuse_attr *attr,
- 	fi->orig_i_mode = inode->i_mode;
- 	if (!(fc->flags & FUSE_DEFAULT_PERMISSIONS))
- 		inode->i_mode &= ~S_ISVTX;
-+
-+	fi->orig_ino = attr->ino;
- }
- 
- void fuse_change_attributes(struct inode *inode, struct fuse_attr *attr,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0012-x86-MCE-AMD-Make-APIC-LVT-thresholding-interrupt-opt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0012-x86-MCE-AMD-Make-APIC-LVT-thresholding-interrupt-opt.patch
deleted file mode 100644
index 29c6318..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0012-x86-MCE-AMD-Make-APIC-LVT-thresholding-interrupt-opt.patch
+++ /dev/null
@@ -1,146 +0,0 @@
-From 558e69f643c0c8492df4bb6898cbf3caf3e1e160 Mon Sep 17 00:00:00 2001
-From: Borislav Petkov <borislav.petkov at amd.com>
-Date: Sun, 10 Jun 2012 00:50:15 +0900
-Subject: [PATCH 12/67] x86, MCE, AMD: Make APIC LVT thresholding interrupt
- optional
-
-commit f227d4306cf30e1d5b6f231e8ef9006c34f3d186 upstream.
-
-Currently, the APIC LVT interrupt for error thresholding is implicitly
-enabled. However, there are models in the F15h range which do not enable
-it. Make the code machinery which sets up the APIC interrupt support
-an optional setting and add an ->interrupt_capable member to the bank
-representation mirroring that capability and enable the interrupt offset
-programming only if it is true.
-
-Simplify code and fixup comment style while at it.
-
-This patch is for stable kernels v3.0 to v3.2.
-
-Signed-off-by: Borislav Petkov <borislav.petkov at amd.com>
-Signed-off-by: Robert Richter <robert.richter at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/cpu/mcheck/mce_amd.c |   55 +++++++++++++++++++++++++++-------
- 1 file changed, 44 insertions(+), 11 deletions(-)
-
-diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c
-index f547421..445a61c 100644
---- a/arch/x86/kernel/cpu/mcheck/mce_amd.c
-+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
-@@ -52,6 +52,7 @@ struct threshold_block {
- 	unsigned int		cpu;
- 	u32			address;
- 	u16			interrupt_enable;
-+	bool			interrupt_capable;
- 	u16			threshold_limit;
- 	struct kobject		kobj;
- 	struct list_head	miscj;
-@@ -86,6 +87,21 @@ struct thresh_restart {
- 	u16			old_limit;
- };
- 
-+static bool lvt_interrupt_supported(unsigned int bank, u32 msr_high_bits)
-+{
-+	/*
-+	 * bank 4 supports APIC LVT interrupts implicitly since forever.
-+	 */
-+	if (bank == 4)
-+		return true;
-+
-+	/*
-+	 * IntP: interrupt present; if this bit is set, the thresholding
-+	 * bank can generate APIC LVT interrupts
-+	 */
-+	return msr_high_bits & BIT(28);
-+}
-+
- static int lvt_off_valid(struct threshold_block *b, int apic, u32 lo, u32 hi)
- {
- 	int msr = (hi & MASK_LVTOFF_HI) >> 20;
-@@ -107,8 +123,10 @@ static int lvt_off_valid(struct threshold_block *b, int apic, u32 lo, u32 hi)
- 	return 1;
- };
- 
--/* must be called with correct cpu affinity */
--/* Called via smp_call_function_single() */
-+/*
-+ * Called via smp_call_function_single(), must be called with correct
-+ * cpu affinity.
-+ */
- static void threshold_restart_bank(void *_tr)
- {
- 	struct thresh_restart *tr = _tr;
-@@ -131,6 +149,12 @@ static void threshold_restart_bank(void *_tr)
- 		    (new_count & THRESHOLD_MAX);
- 	}
- 
-+	/* clear IntType */
-+	hi &= ~MASK_INT_TYPE_HI;
-+
-+	if (!tr->b->interrupt_capable)
-+		goto done;
-+
- 	if (tr->set_lvt_off) {
- 		if (lvt_off_valid(tr->b, tr->lvt_off, lo, hi)) {
- 			/* set new lvt offset */
-@@ -139,9 +163,10 @@ static void threshold_restart_bank(void *_tr)
- 		}
- 	}
- 
--	tr->b->interrupt_enable ?
--	    (hi = (hi & ~MASK_INT_TYPE_HI) | INT_TYPE_APIC) :
--	    (hi &= ~MASK_INT_TYPE_HI);
-+	if (tr->b->interrupt_enable)
-+		hi |= INT_TYPE_APIC;
-+
-+ done:
- 
- 	hi |= MASK_COUNT_EN_HI;
- 	wrmsr(tr->b->address, lo, hi);
-@@ -206,14 +231,18 @@ void mce_amd_feature_init(struct cpuinfo_x86 *c)
- 			if (shared_bank[bank] && c->cpu_core_id)
- 				break;
- #endif
--			offset = setup_APIC_mce(offset,
--						(high & MASK_LVTOFF_HI) >> 20);
- 
- 			memset(&b, 0, sizeof(b));
--			b.cpu		= cpu;
--			b.bank		= bank;
--			b.block		= block;
--			b.address	= address;
-+			b.cpu			= cpu;
-+			b.bank			= bank;
-+			b.block			= block;
-+			b.address		= address;
-+			b.interrupt_capable	= lvt_interrupt_supported(bank, high);
-+
-+			if (b.interrupt_capable) {
-+				int new = (high & MASK_LVTOFF_HI) >> 20;
-+				offset  = setup_APIC_mce(offset, new);
-+			}
- 
- 			mce_threshold_block_init(&b, offset);
- 			mce_threshold_vector = amd_threshold_interrupt;
-@@ -313,6 +342,9 @@ store_interrupt_enable(struct threshold_block *b, const char *buf, size_t size)
- 	struct thresh_restart tr;
- 	unsigned long new;
- 
-+	if (!b->interrupt_capable)
-+		return -EINVAL;
-+
- 	if (strict_strtoul(buf, 0, &new) < 0)
- 		return -EINVAL;
- 
-@@ -471,6 +503,7 @@ static __cpuinit int allocate_threshold_blocks(unsigned int cpu,
- 	b->cpu			= cpu;
- 	b->address		= address;
- 	b->interrupt_enable	= 0;
-+	b->interrupt_capable	= lvt_interrupt_supported(bank, high);
- 	b->threshold_limit	= THRESHOLD_MAX;
- 
- 	INIT_LIST_HEAD(&b->miscj);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0013-x86-amd-Re-enable-CPU-topology-extensions-in-case-BI.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0013-x86-amd-Re-enable-CPU-topology-extensions-in-case-BI.patch
deleted file mode 100644
index e453609..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0013-x86-amd-Re-enable-CPU-topology-extensions-in-case-BI.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From ab8b86f7a27c50219b82e9dfc92a21d8715403bf Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Tue, 3 Apr 2012 12:13:07 +0200
-Subject: [PATCH 13/67] x86/amd: Re-enable CPU topology extensions in case
- BIOS has disabled it
-
-BIOS will switch off the corresponding feature flag on family
-15h models 10h-1fh non-desktop CPUs.
-
-The topology extension CPUID leafs are required to detect which
-cores belong to the same compute unit. (thread siblings mask is
-set accordingly and also correct information about L1i and L2
-cache sharing depends on this).
-
-W/o this patch we wouldn't see which cores belong to the same
-compute unit and also cache sharing information for L1i and L2
-would be incorrect on such systems.
-
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-(cherry picked from commit f7f286a910221ae18b21c18d9d0f4cd88965829f)
-
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/cpu/amd.c |   18 ++++++++++++++++++
- 1 file changed, 18 insertions(+)
-
-diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
-index 0bab2b1..3524e1f 100644
---- a/arch/x86/kernel/cpu/amd.c
-+++ b/arch/x86/kernel/cpu/amd.c
-@@ -571,6 +571,24 @@ static void __cpuinit init_amd(struct cpuinfo_x86 *c)
- 		}
- 	}
- 
-+	/* re-enable TopologyExtensions if switched off by BIOS */
-+	if ((c->x86 == 0x15) &&
-+	    (c->x86_model >= 0x10) && (c->x86_model <= 0x1f) &&
-+	    !cpu_has(c, X86_FEATURE_TOPOEXT)) {
-+		u64 val;
-+
-+		if (!rdmsrl_amd_safe(0xc0011005, &val)) {
-+			val |= 1ULL << 54;
-+			wrmsrl_amd_safe(0xc0011005, val);
-+			rdmsrl(0xc0011005, val);
-+			if (val & (1ULL << 54)) {
-+				set_cpu_cap(c, X86_FEATURE_TOPOEXT);
-+				printk(KERN_INFO FW_INFO "CPU: Re-enabling "
-+				  "disabled Topology Extensions Support\n");
-+			}
-+		}
-+	}
-+
- 	cpu_detect_cache_sizes(c);
- 
- 	/* Multi core CPU? */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0014-hwmon-fam15h_power-Increase-output-resolution.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0014-hwmon-fam15h_power-Increase-output-resolution.patch
deleted file mode 100644
index cf74ee5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0014-hwmon-fam15h_power-Increase-output-resolution.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From e88182a80fd1abfed0a667c28fd70632c728b9b0 Mon Sep 17 00:00:00 2001
-From: Andre Przywara <andre.przywara at amd.com>
-Date: Fri, 23 Mar 2012 10:02:17 +0100
-Subject: [PATCH 14/67] hwmon: (fam15h_power) Increase output resolution
-
-On high CPU load the accumulating values in the running_avg_cap
-register are very low (below 10), so averaging them too early leads
-to unnecessary poor output resolution. Since we pretend to output
-micro-Watt we better keep all the bits we have as long as possible.
-
-Signed-off-by: Andre Przywara <andre.przywara at amd.com>
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Acked-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-(cherry picked from commit 941a956b0e387b21f385f486c34ef67576775cfc)
-
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/fam15h_power.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
-index 9a4c3ab..e8e18ca 100644
---- a/drivers/hwmon/fam15h_power.c
-+++ b/drivers/hwmon/fam15h_power.c
-@@ -61,14 +61,14 @@ static ssize_t show_power(struct device *dev,
- 				  REG_TDP_RUNNING_AVERAGE, &val);
- 	running_avg_capture = (val >> 4) & 0x3fffff;
- 	running_avg_capture = sign_extend32(running_avg_capture, 21);
--	running_avg_range = val & 0xf;
-+	running_avg_range = (val & 0xf) + 1;
- 
- 	pci_bus_read_config_dword(f4->bus, PCI_DEVFN(PCI_SLOT(f4->devfn), 5),
- 				  REG_TDP_LIMIT3, &val);
- 
- 	tdp_limit = val >> 16;
--	curr_pwr_watts = tdp_limit + data->base_tdp -
--		(s32)(running_avg_capture >> (running_avg_range + 1));
-+	curr_pwr_watts = (tdp_limit + data->base_tdp) << running_avg_range;
-+	curr_pwr_watts -= running_avg_capture;
- 	curr_pwr_watts *= data->tdp_to_watts;
- 
- 	/*
-@@ -78,7 +78,7 @@ static ssize_t show_power(struct device *dev,
- 	 * scaling factor 1/(2^16).  For conversion we use
- 	 * (10^6)/(2^16) = 15625/(2^10)
- 	 */
--	curr_pwr_watts = (curr_pwr_watts * 15625) >> 10;
-+	curr_pwr_watts = (curr_pwr_watts * 15625) >> (10 + running_avg_range);
- 	return sprintf(buf, "%u\n", (unsigned int) curr_pwr_watts);
- }
- static DEVICE_ATTR(power1_input, S_IRUGO, show_power, NULL);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0015-sched-Fix-the-relax_domain_level-boot-parameter.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0015-sched-Fix-the-relax_domain_level-boot-parameter.patch
deleted file mode 100644
index ea7a120..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0015-sched-Fix-the-relax_domain_level-boot-parameter.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 701bbc54cf5b05f981bd595a0662317d4d7576fc Mon Sep 17 00:00:00 2001
-From: Dimitri Sivanich <sivanich at sgi.com>
-Date: Tue, 5 Jun 2012 13:44:36 -0500
-Subject: [PATCH 15/67] sched: Fix the relax_domain_level boot parameter
-
-commit a841f8cef4bb124f0f5563314d0beaf2e1249d72 upstream.
-
-It does not get processed because sched_domain_level_max is 0 at the
-time that setup_relax_domain_level() is run.
-
-Simply accept the value as it is, as we don't know the value of
-sched_domain_level_max until sched domain construction is completed.
-
-Fix sched_relax_domain_level in cpuset.  The build_sched_domain() routine calls
-the set_domain_attribute() routine prior to setting the sd->level, however,
-the set_domain_attribute() routine relies on the sd->level to decide whether
-idle load balancing will be off/on.
-
-Signed-off-by: Dimitri Sivanich <sivanich at sgi.com>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Link: http://lkml.kernel.org/r/20120605184436.GA15668@sgi.com
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-[bwh: Backported to 3.2: adjust the filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/sched.c |    9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 299f55c..576a27f 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -7429,11 +7429,8 @@ int sched_domain_level_max;
- 
- static int __init setup_relax_domain_level(char *str)
- {
--	unsigned long val;
--
--	val = simple_strtoul(str, NULL, 0);
--	if (val < sched_domain_level_max)
--		default_relax_domain_level = val;
-+	if (kstrtoint(str, 0, &default_relax_domain_level))
-+		pr_warn("Unable to set relax_domain_level\n");
- 
- 	return 1;
- }
-@@ -7636,7 +7633,6 @@ struct sched_domain *build_sched_domain(struct sched_domain_topology_level *tl,
- 	if (!sd)
- 		return child;
- 
--	set_domain_attribute(sd, attr);
- 	cpumask_and(sched_domain_span(sd), cpu_map, tl->mask(cpu));
- 	if (child) {
- 		sd->level = child->level + 1;
-@@ -7644,6 +7640,7 @@ struct sched_domain *build_sched_domain(struct sched_domain_topology_level *tl,
- 		child->parent = sd;
- 	}
- 	sd->child = child;
-+	set_domain_attribute(sd, attr);
- 
- 	return sd;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0016-iwlwifi-don-t-mess-up-the-SCD-when-removing-a-key.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0016-iwlwifi-don-t-mess-up-the-SCD-when-removing-a-key.patch
deleted file mode 100644
index 01d143e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0016-iwlwifi-don-t-mess-up-the-SCD-when-removing-a-key.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 9dfeca7b52fe58b2a49b59834a976405a424b622 Mon Sep 17 00:00:00 2001
-From: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Date: Wed, 6 Jun 2012 09:13:36 +0200
-Subject: [PATCH 16/67] iwlwifi: don't mess up the SCD when removing a key
-
-commit d6ee27eb13beab94056e0de52d81220058ca2297 upstream.
-
-When we remove a key, we put a key index which was supposed
-to tell the fw that we are actually removing the key. But
-instead the fw took that index as a valid index and messed
-up the SRAM of the device.
-
-This memory corruption on the device mangled the data of
-the SCD. The impact on the user is that SCD queue 2 got
-stuck after having removed keys.
-The message is the log that was printed is:
-
-Queue 2 stuck for 10000ms
-
-This doesn't seem to fix the higher queues that get stuck
-from time to time.
-
-Reviewed-by: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-agn-sta.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
-index 5cfb3d1..ccf1524 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-sta.c
-@@ -1245,7 +1245,7 @@ int iwl_remove_dynamic_key(struct iwl_priv *priv,
- 		key_flags |= STA_KEY_MULTICAST_MSK;
- 
- 	sta_cmd.key.key_flags = key_flags;
--	sta_cmd.key.key_offset = WEP_INVALID_OFFSET;
-+	sta_cmd.key.key_offset = keyconf->hw_key_idx;
- 	sta_cmd.sta.modify_mask = STA_MODIFY_KEY_MASK;
- 	sta_cmd.mode = STA_CONTROL_MODIFY_MSK;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0017-hwrng-atmel-rng-fix-race-condition-leading-to-repeat.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0017-hwrng-atmel-rng-fix-race-condition-leading-to-repeat.patch
deleted file mode 100644
index 24e1bed..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0017-hwrng-atmel-rng-fix-race-condition-leading-to-repeat.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 1468193368592ea5ed063093a7f776a19af2a131 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet at sunsite.dk>
-Date: Thu, 31 May 2012 20:53:08 +1000
-Subject: [PATCH 17/67] hwrng: atmel-rng - fix race condition leading to
- repeated bits
-
-commit 121daad8fd1dce63076fa55aaedd5dc3f981b334 upstream.
-
-Data valid gets cleared by reading the ISR (status register) and NOT from
-reading ODATA (data register). A new data word can become available between
-checking ISR and reading ODATA, causing us to reuse the same data word next
-time atmel_trng_read() gets called, if that happens before the following
-data word is ready.
-
-With this fixed, rngtest no longer complains of 'Continous run' errors.
-Before:
-
-rngtest -c 1000 < /dev/hwrng
-rngtest 3
-Copyright (c) 2004 by Henrique de Moraes Holschuh
-This is free software; see the source for copying conditions.  There is NO warr.
-
-rngtest: starting FIPS tests...
-rngtest: bits received from input: 20000032
-rngtest: FIPS 140-2 successes: 923
-rngtest: FIPS 140-2 failures: 77
-rngtest: FIPS 140-2(2001-10-10) Monobit: 0
-rngtest: FIPS 140-2(2001-10-10) Poker: 0
-rngtest: FIPS 140-2(2001-10-10) Runs: 1
-rngtest: FIPS 140-2(2001-10-10) Long run: 0
-rngtest: FIPS 140-2(2001-10-10) Continuous run: 76
-rngtest: input channel speed: (min=721.402; avg=46003.510; max=49321.338)Kibitss
-rngtest: FIPS tests speed: (min=11.442; avg=12.714; max=12.801)Mibits/s
-rngtest: Program run time: 1931860 microseconds
-
-After:
-
-rngtest -c 1000 < /dev/hwrng
-rngtest 3
-Copyright (c) 2004 by Henrique de Moraes Holschuh
-This is free software; see the source for copying conditions.  There is NO warr.
-
-rngtest: starting FIPS tests...
-rngtest: bits received from input: 20000032
-rngtest: FIPS 140-2 successes: 1000
-rngtest: FIPS 140-2 failures: 0
-rngtest: FIPS 140-2(2001-10-10) Monobit: 0
-rngtest: FIPS 140-2(2001-10-10) Poker: 0
-rngtest: FIPS 140-2(2001-10-10) Runs: 0
-rngtest: FIPS 140-2(2001-10-10) Long run: 0
-rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
-rngtest: input channel speed: (min=777.518; avg=36988.482; max=43115.342)Kibitss
-rngtest: FIPS tests speed: (min=11.951; avg=12.715; max=12.887)Mibits/s
-rngtest: Program run time: 2035543 microseconds
-
-Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
-Reported-by: George Pontis <GPontis at z9.com>
-Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/hw_random/atmel-rng.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/char/hw_random/atmel-rng.c b/drivers/char/hw_random/atmel-rng.c
-index 241df2e..0477982 100644
---- a/drivers/char/hw_random/atmel-rng.c
-+++ b/drivers/char/hw_random/atmel-rng.c
-@@ -36,6 +36,13 @@ static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max,
- 	/* data ready? */
- 	if (readl(trng->base + TRNG_ODATA) & 1) {
- 		*data = readl(trng->base + TRNG_ODATA);
-+		/*
-+		  ensure data ready is only set again AFTER the next data
-+		  word is ready in case it got set between checking ISR
-+		  and reading ODATA, so we don't risk re-reading the
-+		  same word
-+		*/
-+		readl(trng->base + TRNG_ISR);
- 		return 4;
- 	} else
- 		return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0018-crypto-aesni-intel-fix-unaligned-cbc-decrypt-for-x86.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0018-crypto-aesni-intel-fix-unaligned-cbc-decrypt-for-x86.patch
deleted file mode 100644
index fa13f31..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0018-crypto-aesni-intel-fix-unaligned-cbc-decrypt-for-x86.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e7814580e8b3d8f81dac54f4919f7f3b75b40c0d Mon Sep 17 00:00:00 2001
-From: Mathias Krause <minipli at googlemail.com>
-Date: Wed, 30 May 2012 01:43:08 +0200
-Subject: [PATCH 18/67] crypto: aesni-intel - fix unaligned cbc decrypt for
- x86-32
-
-commit 7c8d51848a88aafdb68f42b6b650c83485ea2f84 upstream.
-
-The 32 bit variant of cbc(aes) decrypt is using instructions requiring
-128 bit aligned memory locations but fails to ensure this constraint in
-the code. Fix this by loading the data into intermediate registers with
-load unaligned instructions.
-
-This fixes reported general protection faults related to aesni.
-
-References: https://bugzilla.kernel.org/show_bug.cgi?id=43223
-Reported-by: Daniel <garkein at mailueberfall.de>
-Signed-off-by: Mathias Krause <minipli at googlemail.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/crypto/aesni-intel_asm.S |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/crypto/aesni-intel_asm.S b/arch/x86/crypto/aesni-intel_asm.S
-index be6d9e3..3470624 100644
---- a/arch/x86/crypto/aesni-intel_asm.S
-+++ b/arch/x86/crypto/aesni-intel_asm.S
-@@ -2460,10 +2460,12 @@ ENTRY(aesni_cbc_dec)
- 	pxor IN3, STATE4
- 	movaps IN4, IV
- #else
--	pxor (INP), STATE2
--	pxor 0x10(INP), STATE3
- 	pxor IN1, STATE4
- 	movaps IN2, IV
-+	movups (INP), IN1
-+	pxor IN1, STATE2
-+	movups 0x10(INP), IN2
-+	pxor IN2, STATE3
- #endif
- 	movups STATE1, (OUTP)
- 	movups STATE2, 0x10(OUTP)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0019-xen-setup-filter-APERFMPERF-cpuid-feature-out.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0019-xen-setup-filter-APERFMPERF-cpuid-feature-out.patch
deleted file mode 100644
index 7135b15..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0019-xen-setup-filter-APERFMPERF-cpuid-feature-out.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 88d89048f346736a57637924307749c8cc782751 Mon Sep 17 00:00:00 2001
-From: Andre Przywara <andre.przywara at amd.com>
-Date: Tue, 29 May 2012 13:07:31 +0200
-Subject: [PATCH 19/67] xen/setup: filter APERFMPERF cpuid feature out
-
-commit 5e626254206a709c6e937f3dda69bf26c7344f6f upstream.
-
-Xen PV kernels allow access to the APERF/MPERF registers to read the
-effective frequency. Access to the MSRs is however redirected to the
-currently scheduled physical CPU, making consecutive read and
-compares unreliable. In addition each rdmsr traps into the hypervisor.
-So to avoid bogus readouts and expensive traps, disable the kernel
-internal feature flag for APERF/MPERF if running under Xen.
-This will
-a) remove the aperfmperf flag from /proc/cpuinfo
-b) not mislead the power scheduler (arch/x86/kernel/cpu/sched.c) to
-   use the feature to improve scheduling (by default disabled)
-c) not mislead the cpufreq driver to use the MSRs
-
-This does not cover userland programs which access the MSRs via the
-device file interface, but this will be addressed separately.
-
-Signed-off-by: Andre Przywara <andre.przywara at amd.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/enlighten.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/arch/x86/xen/enlighten.c b/arch/x86/xen/enlighten.c
-index cca659e..44d4393 100644
---- a/arch/x86/xen/enlighten.c
-+++ b/arch/x86/xen/enlighten.c
-@@ -198,6 +198,9 @@ static void __init xen_banner(void)
- 	       xen_feature(XENFEAT_mmu_pt_update_preserve_ad) ? " (preserve-AD)" : "");
- }
- 
-+#define CPUID_THERM_POWER_LEAF 6
-+#define APERFMPERF_PRESENT 0
-+
- static __read_mostly unsigned int cpuid_leaf1_edx_mask = ~0;
- static __read_mostly unsigned int cpuid_leaf1_ecx_mask = ~0;
- 
-@@ -218,6 +221,11 @@ static void xen_cpuid(unsigned int *ax, unsigned int *bx,
- 		maskedx = cpuid_leaf1_edx_mask;
- 		break;
- 
-+	case CPUID_THERM_POWER_LEAF:
-+		/* Disabling APERFMPERF for kernel usage */
-+		maskecx = ~(1 << APERFMPERF_PRESENT);
-+		break;
-+
- 	case 0xb:
- 		/* Suppress extended topology stuff */
- 		maskebx = 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0020-NFSv4.1-Fix-a-request-leak-on-the-back-channel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0020-NFSv4.1-Fix-a-request-leak-on-the-back-channel.patch
deleted file mode 100644
index 8d9f08c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0020-NFSv4.1-Fix-a-request-leak-on-the-back-channel.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 11e050e0bcf1f48f656630c0e603752e8d537126 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Thu, 31 May 2012 15:26:38 -0400
-Subject: [PATCH 20/67] NFSv4.1: Fix a request leak on the back channel
-
-commit b3b02ae5865c2dcd506322e0fc6def59a042e72f upstream.
-
-If the call to svc_process_common() fails, then the request
-needs to be freed before we can exit bc_svc_process.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sunrpc/svc.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
-index d4ad50e..c80c162 100644
---- a/net/sunrpc/svc.c
-+++ b/net/sunrpc/svc.c
-@@ -1358,7 +1358,8 @@ bc_svc_process(struct svc_serv *serv, struct rpc_rqst *req,
- 						sizeof(req->rq_snd_buf));
- 		return bc_send(req);
- 	} else {
--		/* Nothing to do to drop request */
-+		/* drop request */
-+		xprt_free_bc_request(req);
- 		return 0;
- 	}
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0021-can-c_can-fix-BUG-echo_skb-is-occupied-during-transm.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0021-can-c_can-fix-BUG-echo_skb-is-occupied-during-transm.patch
deleted file mode 100644
index b2ff99b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0021-can-c_can-fix-BUG-echo_skb-is-occupied-during-transm.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From a17c423f5b57ba5a2c6dc959b6259d07f7d32741 Mon Sep 17 00:00:00 2001
-From: AnilKumar Ch <anilkumar at ti.com>
-Date: Wed, 23 May 2012 17:45:09 +0530
-Subject: [PATCH 21/67] can: c_can: fix "BUG! echo_skb is occupied!" during
- transmit
-
-commit 617caccebe451716df21c069b079d5936ed7b0f3 upstream.
-
-This patch fixes an issue with transmit routine, which causes
-"can_put_echo_skb: BUG! echo_skb is occupied!" message when
-using "cansequence -p" on D_CAN controller.
-
-In c_can driver, while transmitting packets tx_echo flag holds
-the no of can frames put for transmission into the hardware.
-
-As the comment above c_can_do_tx() indicates, if we find any packet
-which is not transmitted then we should stop looking for more.
-In the current implementation this is not taken care of causing the
-said message.
-
-Also, fix the condition used to find if the packet is transmitted
-or not. Current code skips the first tx message object and ends up
-checking one extra invalid object.
-
-While at it, fix the comment on top of c_can_do_tx() to use the
-terminology "packet" instead of "package" since it is more
-standard.
-
-Signed-off-by: AnilKumar Ch <anilkumar at ti.com>
-Acked-by: Wolfgang Grandegger <wg at grandegger.com>
-Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/can/c_can/c_can.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
-index 536bda0..9ac28df 100644
---- a/drivers/net/can/c_can/c_can.c
-+++ b/drivers/net/can/c_can/c_can.c
-@@ -686,7 +686,7 @@ static int c_can_get_berr_counter(const struct net_device *dev,
-  *
-  * We iterate from priv->tx_echo to priv->tx_next and check if the
-  * packet has been transmitted, echo it back to the CAN framework.
-- * If we discover a not yet transmitted package, stop looking for more.
-+ * If we discover a not yet transmitted packet, stop looking for more.
-  */
- static void c_can_do_tx(struct net_device *dev)
- {
-@@ -698,7 +698,7 @@ static void c_can_do_tx(struct net_device *dev)
- 	for (/* nix */; (priv->tx_next - priv->tx_echo) > 0; priv->tx_echo++) {
- 		msg_obj_no = get_tx_echo_msg_obj(priv);
- 		val = c_can_read_reg32(priv, &priv->regs->txrqst1);
--		if (!(val & (1 << msg_obj_no))) {
-+		if (!(val & (1 << (msg_obj_no - 1)))) {
- 			can_get_echo_skb(dev,
- 					msg_obj_no - C_CAN_MSG_OBJ_TX_FIRST);
- 			stats->tx_bytes += priv->read_reg(priv,
-@@ -706,6 +706,8 @@ static void c_can_do_tx(struct net_device *dev)
- 					& IF_MCONT_DLC_MASK;
- 			stats->tx_packets++;
- 			c_can_inval_msg_object(dev, 0, msg_obj_no);
-+		} else {
-+			break;
- 		}
- 	}
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0022-can-c_can-fix-an-interrupt-thrash-issue-with-c_can-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0022-can-c_can-fix-an-interrupt-thrash-issue-with-c_can-d.patch
deleted file mode 100644
index 34b220e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0022-can-c_can-fix-an-interrupt-thrash-issue-with-c_can-d.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From b030affc0fa9283e4ee79a349f6b41d3217c0dc7 Mon Sep 17 00:00:00 2001
-From: AnilKumar Ch <anilkumar at ti.com>
-Date: Wed, 23 May 2012 17:45:10 +0530
-Subject: [PATCH 22/67] can: c_can: fix an interrupt thrash issue with c_can
- driver
-
-commit 148c87c89e1a8863d3d965179f3ab1a06490569e upstream.
-
-This patch fixes an interrupt thrash issue with c_can driver.
-
-In c_can_isr() function interrupts are disabled and enabled only in
-c_can_poll() function. c_can_isr() & c_can_poll() both read the
-irqstatus flag. However, irqstatus is always read as 0 in c_can_poll()
-because all C_CAN interrupts are disabled in c_can_isr(). This causes
-all interrupts to be re-enabled in c_can_poll() which in turn causes
-another interrupt since the event is not really handled. This keeps
-happening causing a flood of interrupts.
-
-To fix this, read the irqstatus register in isr and use the same cached
-value in the poll function.
-
-Signed-off-by: AnilKumar Ch <anilkumar at ti.com>
-Acked-by: Wolfgang Grandegger <wg at grandegger.com>
-Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/can/c_can/c_can.c |    7 +++----
- drivers/net/can/c_can/c_can.h |    1 +
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
-index 9ac28df..fa01621 100644
---- a/drivers/net/can/c_can/c_can.c
-+++ b/drivers/net/can/c_can/c_can.c
-@@ -952,7 +952,7 @@ static int c_can_poll(struct napi_struct *napi, int quota)
- 	struct net_device *dev = napi->dev;
- 	struct c_can_priv *priv = netdev_priv(dev);
- 
--	irqstatus = priv->read_reg(priv, &priv->regs->interrupt);
-+	irqstatus = priv->irqstatus;
- 	if (!irqstatus)
- 		goto end;
- 
-@@ -1030,12 +1030,11 @@ end:
- 
- static irqreturn_t c_can_isr(int irq, void *dev_id)
- {
--	u16 irqstatus;
- 	struct net_device *dev = (struct net_device *)dev_id;
- 	struct c_can_priv *priv = netdev_priv(dev);
- 
--	irqstatus = priv->read_reg(priv, &priv->regs->interrupt);
--	if (!irqstatus)
-+	priv->irqstatus = priv->read_reg(priv, &priv->regs->interrupt);
-+	if (!priv->irqstatus)
- 		return IRQ_NONE;
- 
- 	/* disable all interrupts and schedule the NAPI */
-diff --git a/drivers/net/can/c_can/c_can.h b/drivers/net/can/c_can/c_can.h
-index 9b7fbef..5f32d34 100644
---- a/drivers/net/can/c_can/c_can.h
-+++ b/drivers/net/can/c_can/c_can.h
-@@ -76,6 +76,7 @@ struct c_can_priv {
- 	unsigned int tx_next;
- 	unsigned int tx_echo;
- 	void *priv;		/* for board-specific data */
-+	u16 irqstatus;
- };
- 
- struct net_device *alloc_c_can_dev(void);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0023-can-c_can-fix-race-condition-in-c_can_open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0023-can-c_can-fix-race-condition-in-c_can_open.patch
deleted file mode 100644
index 8baf6c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0023-can-c_can-fix-race-condition-in-c_can_open.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From cf14ce22ab2b0faada7f120865c7970a07a0d06d Mon Sep 17 00:00:00 2001
-From: AnilKumar Ch <anilkumar at ti.com>
-Date: Wed, 23 May 2012 17:45:11 +0530
-Subject: [PATCH 23/67] can: c_can: fix race condition in c_can_open()
-
-commit f461f27a4436dbe691908fe08b867ef888848cc3 upstream.
-
-Fix the issue of C_CAN interrupts getting disabled forever when canconfig
-utility is used multiple times. According to NAPI usage we disable all
-the hardware interrupts in ISR and re-enable them in poll(). Current
-implementation calls napi_enable() after hardware interrupts are enabled.
-If we get any interrupts between these two steps then we do not process
-those interrupts because napi is not enabled. Mostly these interrupts
-come because of STATUS is not 0x7 or ERROR interrupts. If napi_enable()
-happens before HW interrupts enabled then c_can_poll() function will be
-called eventual re-enabling.
-
-This patch moves the napi_enable() call before interrupts enabled.
-
-Signed-off-by: AnilKumar Ch <anilkumar at ti.com>
-Acked-by: Wolfgang Grandegger <wg at grandegger.com>
-Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/can/c_can/c_can.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
-index fa01621..8dc84d6 100644
---- a/drivers/net/can/c_can/c_can.c
-+++ b/drivers/net/can/c_can/c_can.c
-@@ -1064,10 +1064,11 @@ static int c_can_open(struct net_device *dev)
- 		goto exit_irq_fail;
- 	}
- 
-+	napi_enable(&priv->napi);
-+
- 	/* start the c_can controller */
- 	c_can_start(dev);
- 
--	napi_enable(&priv->napi);
- 	netif_start_queue(dev);
- 
- 	return 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0024-ARM-i.MX53-Fix-PLL4-base-address.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0024-ARM-i.MX53-Fix-PLL4-base-address.patch
deleted file mode 100644
index 6714a86..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0024-ARM-i.MX53-Fix-PLL4-base-address.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 8b306e31b138a75a790c1f78f911714fee071ab8 Mon Sep 17 00:00:00 2001
-From: Sascha Hauer <s.hauer at pengutronix.de>
-Date: Mon, 4 Jun 2012 14:58:07 +0200
-Subject: [PATCH 24/67] ARM i.MX53: Fix PLL4 base address
-
-commit cdd781ab1906d039c2a93078385645d2d5af8491 upstream.
-
-MX53_DPLL4_BASE accidently returned the base address of PLL3.
-Fix this.
-
-Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mach-mx5/crm_regs.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-mx5/crm_regs.h b/arch/arm/mach-mx5/crm_regs.h
-index 5e11ba7..5e3f1f0 100644
---- a/arch/arm/mach-mx5/crm_regs.h
-+++ b/arch/arm/mach-mx5/crm_regs.h
-@@ -23,7 +23,7 @@
- #define MX53_DPLL1_BASE		MX53_IO_ADDRESS(MX53_PLL1_BASE_ADDR)
- #define MX53_DPLL2_BASE		MX53_IO_ADDRESS(MX53_PLL2_BASE_ADDR)
- #define MX53_DPLL3_BASE		MX53_IO_ADDRESS(MX53_PLL3_BASE_ADDR)
--#define MX53_DPLL4_BASE		MX53_IO_ADDRESS(MX53_PLL3_BASE_ADDR)
-+#define MX53_DPLL4_BASE		MX53_IO_ADDRESS(MX53_PLL4_BASE_ADDR)
- 
- /* PLL Register Offsets */
- #define MXC_PLL_DP_CTL			0x00
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0025-usb-musb_gadget-fix-crash-caused-by-dangling-pointer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0025-usb-musb_gadget-fix-crash-caused-by-dangling-pointer.patch
deleted file mode 100644
index d7a896e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0025-usb-musb_gadget-fix-crash-caused-by-dangling-pointer.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From cb8353a20faf8ec806f2e04848e1a8d2ba17194c Mon Sep 17 00:00:00 2001
-From: Grazvydas Ignotas <notasas at gmail.com>
-Date: Sat, 26 May 2012 00:21:33 +0300
-Subject: [PATCH 25/67] usb: musb_gadget: fix crash caused by dangling pointer
-
-commit 08f75bf14fadaa81fe362d5acda9b77b113dd0a2 upstream.
-
-usb_ep_ops.disable must clear external copy of the endpoint descriptor,
-otherwise musb crashes after loading/unloading several gadget modules
-in a row:
-
-Unable to handle kernel paging request at virtual address bf013730
-pgd = c0004000
-[bf013730] *pgd=8f26d811, *pte=00000000, *ppte=00000000
-Internal error: Oops: 7 [#1]
-Modules linked in: g_cdc [last unloaded: g_file_storage]
-CPU: 0    Not tainted  (3.2.17 #647)
-PC is at musb_gadget_enable+0x4c/0x24c
-LR is at _raw_spin_lock_irqsave+0x4c/0x58
-[<c027c030>] (musb_gadget_enable+0x4c/0x24c) from [<bf01b760>] (gether_connect+0x3c/0x19c [g_cdc])
-[<bf01b760>] (gether_connect+0x3c/0x19c [g_cdc]) from [<bf01ba1c>] (ecm_set_alt+0x15c/0x180 [g_cdc])
-[<bf01ba1c>] (ecm_set_alt+0x15c/0x180 [g_cdc]) from [<bf01ecd4>] (composite_setup+0x85c/0xac4 [g_cdc])
-[<bf01ecd4>] (composite_setup+0x85c/0xac4 [g_cdc]) from [<c027b744>] (musb_g_ep0_irq+0x844/0x924)
-[<c027b744>] (musb_g_ep0_irq+0x844/0x924) from [<c027a97c>] (musb_interrupt+0x79c/0x864)
-[<c027a97c>] (musb_interrupt+0x79c/0x864) from [<c027aaa8>] (generic_interrupt+0x64/0x7c)
-[<c027aaa8>] (generic_interrupt+0x64/0x7c) from [<c00797cc>] (handle_irq_event_percpu+0x28/0x178)
-...
-
-Signed-off-by: Grazvydas Ignotas <notasas at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/musb/musb_gadget.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
-index 47349ca..28ea50c 100644
---- a/drivers/usb/musb/musb_gadget.c
-+++ b/drivers/usb/musb/musb_gadget.c
-@@ -1206,6 +1206,7 @@ static int musb_gadget_disable(struct usb_ep *ep)
- 	}
- 
- 	musb_ep->desc = NULL;
-+	musb_ep->end_point.desc = NULL;
- 
- 	/* abort all pending DMA and requests */
- 	nuke(musb_ep, -ESHUTDOWN);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0026-mac80211-clean-up-remain-on-channel-on-interface-sto.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0026-mac80211-clean-up-remain-on-channel-on-interface-sto.patch
deleted file mode 100644
index 0829b27..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0026-mac80211-clean-up-remain-on-channel-on-interface-sto.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 7b2ac3203d120ea1afdf29bdcd5e99d59875e348 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Thu, 31 May 2012 15:09:27 +0200
-Subject: [PATCH 26/67] mac80211: clean up remain-on-channel on interface stop
-
-commit 71ecfa1893034eeb1c93e02e22ee2ad26d080858 upstream.
-
-When any interface goes down, it could be the one that we
-were doing a remain-on-channel with. We therefore need to
-cancel the remain-on-channel and flush the related work
-structs so they don't run after the interface has been
-removed or even destroyed.
-
-It's also possible in this case that an off-channel SKB
-was never transmitted, so free it if this is the case.
-Note that this can also happen if the driver finishes
-the off-channel period without ever starting it.
-
-Reported-by: Nirav Shah <nirav.j2.shah at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/mac80211/iface.c      |   12 ++++++++++++
- net/mac80211/offchannel.c |   16 ++++++++++++++++
- 2 files changed, 28 insertions(+)
-
-diff --git a/net/mac80211/iface.c b/net/mac80211/iface.c
-index 30d7355..f4ddf34 100644
---- a/net/mac80211/iface.c
-+++ b/net/mac80211/iface.c
-@@ -495,6 +495,18 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata,
- 		ieee80211_configure_filter(local);
- 		break;
- 	default:
-+		mutex_lock(&local->mtx);
-+		if (local->hw_roc_dev == sdata->dev &&
-+		    local->hw_roc_channel) {
-+			/* ignore return value since this is racy */
-+			drv_cancel_remain_on_channel(local);
-+			ieee80211_queue_work(&local->hw, &local->hw_roc_done);
-+		}
-+		mutex_unlock(&local->mtx);
-+
-+		flush_work(&local->hw_roc_start);
-+		flush_work(&local->hw_roc_done);
-+
- 		flush_work(&sdata->work);
- 		/*
- 		 * When we get here, the interface is marked down.
-diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c
-index 1b239be..db2c215 100644
---- a/net/mac80211/offchannel.c
-+++ b/net/mac80211/offchannel.c
-@@ -246,6 +246,22 @@ static void ieee80211_hw_roc_done(struct work_struct *work)
- 		return;
- 	}
- 
-+	/* was never transmitted */
-+	if (local->hw_roc_skb) {
-+		u64 cookie;
-+
-+		cookie = local->hw_roc_cookie ^ 2;
-+
-+		cfg80211_mgmt_tx_status(local->hw_roc_dev, cookie,
-+					local->hw_roc_skb->data,
-+					local->hw_roc_skb->len, false,
-+					GFP_KERNEL);
-+
-+		kfree_skb(local->hw_roc_skb);
-+		local->hw_roc_skb = NULL;
-+		local->hw_roc_skb_for_status = NULL;
-+	}
-+
- 	if (!local->hw_roc_for_tx)
- 		cfg80211_remain_on_channel_expired(local->hw_roc_dev,
- 						   local->hw_roc_cookie,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0027-rt2x00-use-atomic-variable-for-seqno.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0027-rt2x00-use-atomic-variable-for-seqno.patch
deleted file mode 100644
index 892b6c2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0027-rt2x00-use-atomic-variable-for-seqno.patch
+++ /dev/null
@@ -1,174 +0,0 @@
-From da83f4fb1b871f4b4398362b12ca03b82b223a2e Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Fri, 1 Jun 2012 11:29:40 +0200
-Subject: [PATCH 27/67] rt2x00: use atomic variable for seqno
-
-commit e5851dac2c95af7159716832300b9f50c62c648e upstream.
-
-Remove spinlock as atomic_t can be used instead. Note we use only 16
-lower bits, upper bits are changed but we impilcilty cast to u16.
-
-This fix possible deadlock on IBSS mode reproted by lockdep:
-
-=================================
-[ INFO: inconsistent lock state ]
-3.4.0-wl+ #4 Not tainted
----------------------------------
-inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage.
-kworker/u:2/30374 [HC0[0]:SC0[0]:HE1:SE1] takes:
- (&(&intf->seqlock)->rlock){+.?...}, at: [<f9979a20>] rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
-{IN-SOFTIRQ-W} state was registered at:
-  [<c04978ab>] __lock_acquire+0x47b/0x1050
-  [<c0498504>] lock_acquire+0x84/0xf0
-  [<c0835733>] _raw_spin_lock+0x33/0x40
-  [<f9979a20>] rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
-  [<f9979f2a>] rt2x00queue_write_tx_frame+0x1a/0x300 [rt2x00lib]
-  [<f997834f>] rt2x00mac_tx+0x7f/0x380 [rt2x00lib]
-  [<f98fe363>] __ieee80211_tx+0x1b3/0x300 [mac80211]
-  [<f98ffdf5>] ieee80211_tx+0x105/0x130 [mac80211]
-  [<f99000dd>] ieee80211_xmit+0xad/0x100 [mac80211]
-  [<f9900519>] ieee80211_subif_start_xmit+0x2d9/0x930 [mac80211]
-  [<c0782e87>] dev_hard_start_xmit+0x307/0x660
-  [<c079bb71>] sch_direct_xmit+0xa1/0x1e0
-  [<c0784bb3>] dev_queue_xmit+0x183/0x730
-  [<c078c27a>] neigh_resolve_output+0xfa/0x1e0
-  [<c07b436a>] ip_finish_output+0x24a/0x460
-  [<c07b4897>] ip_output+0xb7/0x100
-  [<c07b2d60>] ip_local_out+0x20/0x60
-  [<c07e01ff>] igmpv3_sendpack+0x4f/0x60
-  [<c07e108f>] igmp_ifc_timer_expire+0x29f/0x330
-  [<c04520fc>] run_timer_softirq+0x15c/0x2f0
-  [<c0449e3e>] __do_softirq+0xae/0x1e0
-irq event stamp: 18380437
-hardirqs last  enabled at (18380437): [<c0526027>] __slab_alloc.clone.3+0x67/0x5f0
-hardirqs last disabled at (18380436): [<c0525ff3>] __slab_alloc.clone.3+0x33/0x5f0
-softirqs last  enabled at (18377616): [<c0449eb3>] __do_softirq+0x123/0x1e0
-softirqs last disabled at (18377611): [<c041278d>] do_softirq+0x9d/0xe0
-
-other info that might help us debug this:
- Possible unsafe locking scenario:
-
-       CPU0
-       ----
-  lock(&(&intf->seqlock)->rlock);
-  <Interrupt>
-    lock(&(&intf->seqlock)->rlock);
-
- *** DEADLOCK ***
-
-4 locks held by kworker/u:2/30374:
- #0:  (wiphy_name(local->hw.wiphy)){++++.+}, at: [<c045cf99>] process_one_work+0x109/0x3f0
- #1:  ((&sdata->work)){+.+.+.}, at: [<c045cf99>] process_one_work+0x109/0x3f0
- #2:  (&ifibss->mtx){+.+.+.}, at: [<f98f005b>] ieee80211_ibss_work+0x1b/0x470 [mac80211]
- #3:  (&intf->beacon_skb_mutex){+.+...}, at: [<f997a644>] rt2x00queue_update_beacon+0x24/0x50 [rt2x00lib]
-
-stack backtrace:
-Pid: 30374, comm: kworker/u:2 Not tainted 3.4.0-wl+ #4
-Call Trace:
- [<c04962a6>] print_usage_bug+0x1f6/0x220
- [<c0496a12>] mark_lock+0x2c2/0x300
- [<c0495ff0>] ? check_usage_forwards+0xc0/0xc0
- [<c04978ec>] __lock_acquire+0x4bc/0x1050
- [<c0527890>] ? __kmalloc_track_caller+0x1c0/0x1d0
- [<c0777fb6>] ? copy_skb_header+0x26/0x90
- [<c0498504>] lock_acquire+0x84/0xf0
- [<f9979a20>] ? rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
- [<c0835733>] _raw_spin_lock+0x33/0x40
- [<f9979a20>] ? rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
- [<f9979a20>] rt2x00queue_create_tx_descriptor+0x380/0x490 [rt2x00lib]
- [<f997a5cf>] rt2x00queue_update_beacon_locked+0x5f/0xb0 [rt2x00lib]
- [<f997a64d>] rt2x00queue_update_beacon+0x2d/0x50 [rt2x00lib]
- [<f9977e3a>] rt2x00mac_bss_info_changed+0x1ca/0x200 [rt2x00lib]
- [<f9977c70>] ? rt2x00mac_remove_interface+0x70/0x70 [rt2x00lib]
- [<f98e4dd0>] ieee80211_bss_info_change_notify+0xe0/0x1d0 [mac80211]
- [<f98ef7b8>] __ieee80211_sta_join_ibss+0x3b8/0x610 [mac80211]
- [<c0496ab4>] ? mark_held_locks+0x64/0xc0
- [<c0440012>] ? virt_efi_query_capsule_caps+0x12/0x50
- [<f98efb09>] ieee80211_sta_join_ibss+0xf9/0x140 [mac80211]
- [<f98f0456>] ieee80211_ibss_work+0x416/0x470 [mac80211]
- [<c0496d8b>] ? trace_hardirqs_on+0xb/0x10
- [<c077683b>] ? skb_dequeue+0x4b/0x70
- [<f98f207f>] ieee80211_iface_work+0x13f/0x230 [mac80211]
- [<c045cf99>] ? process_one_work+0x109/0x3f0
- [<c045d015>] process_one_work+0x185/0x3f0
- [<c045cf99>] ? process_one_work+0x109/0x3f0
- [<f98f1f40>] ? ieee80211_teardown_sdata+0xa0/0xa0 [mac80211]
- [<c045ed86>] worker_thread+0x116/0x270
- [<c045ec70>] ? manage_workers+0x1e0/0x1e0
- [<c0462f64>] kthread+0x84/0x90
- [<c0462ee0>] ? __init_kthread_worker+0x60/0x60
- [<c083d382>] kernel_thread_helper+0x6/0x10
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Acked-by: Helmut Schaa <helmut.schaa at googlemail.com>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2x00.h      |    3 +--
- drivers/net/wireless/rt2x00/rt2x00mac.c   |    1 -
- drivers/net/wireless/rt2x00/rt2x00queue.c |   13 ++++++-------
- 3 files changed, 7 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2x00.h b/drivers/net/wireless/rt2x00/rt2x00.h
-index 99ff12d..c778164 100644
---- a/drivers/net/wireless/rt2x00/rt2x00.h
-+++ b/drivers/net/wireless/rt2x00/rt2x00.h
-@@ -390,8 +390,7 @@ struct rt2x00_intf {
- 	 * for hardware which doesn't support hardware
- 	 * sequence counting.
- 	 */
--	spinlock_t seqlock;
--	u16 seqno;
-+	atomic_t seqno;
- };
- 
- static inline struct rt2x00_intf* vif_to_intf(struct ieee80211_vif *vif)
-diff --git a/drivers/net/wireless/rt2x00/rt2x00mac.c b/drivers/net/wireless/rt2x00/rt2x00mac.c
-index 373dae1..921da9a 100644
---- a/drivers/net/wireless/rt2x00/rt2x00mac.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00mac.c
-@@ -277,7 +277,6 @@ int rt2x00mac_add_interface(struct ieee80211_hw *hw,
- 	else
- 		rt2x00dev->intf_sta_count++;
- 
--	spin_lock_init(&intf->seqlock);
- 	mutex_init(&intf->beacon_skb_mutex);
- 	intf->beacon = entry;
- 
-diff --git a/drivers/net/wireless/rt2x00/rt2x00queue.c b/drivers/net/wireless/rt2x00/rt2x00queue.c
-index 9b1b2b7..50f92d5 100644
---- a/drivers/net/wireless/rt2x00/rt2x00queue.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00queue.c
-@@ -207,6 +207,7 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
- 	struct ieee80211_tx_info *tx_info = IEEE80211_SKB_CB(skb);
- 	struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data;
- 	struct rt2x00_intf *intf = vif_to_intf(tx_info->control.vif);
-+	u16 seqno;
- 
- 	if (!(tx_info->flags & IEEE80211_TX_CTL_ASSIGN_SEQ))
- 		return;
-@@ -227,15 +228,13 @@ static void rt2x00queue_create_tx_descriptor_seq(struct rt2x00_dev *rt2x00dev,
- 	 * sequence counting per-frame, since those will override the
- 	 * sequence counter given by mac80211.
- 	 */
--	spin_lock(&intf->seqlock);
--
- 	if (test_bit(ENTRY_TXD_FIRST_FRAGMENT, &txdesc->flags))
--		intf->seqno += 0x10;
--	hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
--	hdr->seq_ctrl |= cpu_to_le16(intf->seqno);
--
--	spin_unlock(&intf->seqlock);
-+		seqno = atomic_add_return(0x10, &intf->seqno);
-+	else
-+		seqno = atomic_read(&intf->seqno);
- 
-+	hdr->seq_ctrl &= cpu_to_le16(IEEE80211_SCTL_FRAG);
-+	hdr->seq_ctrl |= cpu_to_le16(seqno);
- }
- 
- static void rt2x00queue_create_tx_descriptor_plcp(struct rt2x00_dev *rt2x00dev,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0028-iwlwifi-disable-WoWLAN-if-CONFIG_PM_SLEEP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0028-iwlwifi-disable-WoWLAN-if-CONFIG_PM_SLEEP.patch
deleted file mode 100644
index 2902592..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0028-iwlwifi-disable-WoWLAN-if-CONFIG_PM_SLEEP.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 17276afbec2e85771fb30bc2ea9150e4d75ccc89 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Mon, 4 Jun 2012 13:43:11 +0200
-Subject: [PATCH 28/67] iwlwifi: disable WoWLAN if !CONFIG_PM_SLEEP
-
-commit fcb6ff5e2cb83e1de10631f6621f45ca3401bf61 upstream.
-
-If CONFIG_PM_SLEEP is disabled, then iwlwifi doesn't
-support suspend/resume handlers and thus mac80211
-(correctly) refuses advertising WoWLAN. Disable
-WoWLAN in the driver in this case.
-
-Reported-by: Sebastian Kemper <sebastian_ml at gmx.net>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-agn.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
-index d7d2512..8b88e87 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -1696,6 +1696,7 @@ static int iwlagn_mac_setup_register(struct iwl_priv *priv,
- 			    WIPHY_FLAG_DISABLE_BEACON_HINTS |
- 			    WIPHY_FLAG_IBSS_RSN;
- 
-+#ifdef CONFIG_PM_SLEEP
- 	if (priv->ucode_wowlan.code.len && device_can_wakeup(bus(priv)->dev)) {
- 		hw->wiphy->wowlan.flags = WIPHY_WOWLAN_MAGIC_PKT |
- 					  WIPHY_WOWLAN_DISCONNECT |
-@@ -1712,6 +1713,7 @@ static int iwlagn_mac_setup_register(struct iwl_priv *priv,
- 		hw->wiphy->wowlan.pattern_max_len =
- 					IWLAGN_WOWLAN_MAX_PATTERN_LEN;
- 	}
-+#endif
- 
- 	if (iwlagn_mod_params.power_save)
- 		hw->wiphy->flags |= WIPHY_FLAG_PS_ON_BY_DEFAULT;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0029-ASoC-wm8994-Ensure-all-AIFnCLK-events-are-run-from-t.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0029-ASoC-wm8994-Ensure-all-AIFnCLK-events-are-run-from-t.patch
deleted file mode 100644
index 4b600f2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0029-ASoC-wm8994-Ensure-all-AIFnCLK-events-are-run-from-t.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From d3ca90f12aa66e72ccb2e1674664d498971f0d77 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Tue, 5 Jun 2012 12:25:19 +0100
-Subject: [PATCH 29/67] ASoC: wm8994: Ensure all AIFnCLK events are run from
- the _late variants
-
-commit c8fdc1b56611faa7b38eab6b99da5e20113661ff upstream.
-
-Ensure that all the actions get taken at appropriate times by calling the
-_PRE and _POST events for the aifNclk_ev functions explicitly.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/wm8994.c |   12 ++++++++----
- 1 file changed, 8 insertions(+), 4 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index 3e7aa22..3de9c6a 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -1090,17 +1090,19 @@ static int late_enable_ev(struct snd_soc_dapm_widget *w,
- 	switch (event) {
- 	case SND_SOC_DAPM_PRE_PMU:
- 		if (wm8994->aif1clk_enable) {
--			aif1clk_ev(w, kcontrol, event);
-+			aif1clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMU);
- 			snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
- 					    WM8994_AIF1CLK_ENA_MASK,
- 					    WM8994_AIF1CLK_ENA);
-+			aif1clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMU);
- 			wm8994->aif1clk_enable = 0;
- 		}
- 		if (wm8994->aif2clk_enable) {
--			aif2clk_ev(w, kcontrol, event);
-+			aif2clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMU);
- 			snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
- 					    WM8994_AIF2CLK_ENA_MASK,
- 					    WM8994_AIF2CLK_ENA);
-+			aif2clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMU);
- 			wm8994->aif2clk_enable = 0;
- 		}
- 		break;
-@@ -1121,15 +1123,17 @@ static int late_disable_ev(struct snd_soc_dapm_widget *w,
- 	switch (event) {
- 	case SND_SOC_DAPM_POST_PMD:
- 		if (wm8994->aif1clk_disable) {
-+			aif1clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMD);
- 			snd_soc_update_bits(codec, WM8994_AIF1_CLOCKING_1,
- 					    WM8994_AIF1CLK_ENA_MASK, 0);
--			aif1clk_ev(w, kcontrol, event);
-+			aif1clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMD);
- 			wm8994->aif1clk_disable = 0;
- 		}
- 		if (wm8994->aif2clk_disable) {
-+			aif2clk_ev(w, kcontrol, SND_SOC_DAPM_PRE_PMD);
- 			snd_soc_update_bits(codec, WM8994_AIF2_CLOCKING_1,
- 					    WM8994_AIF2CLK_ENA_MASK, 0);
--			aif2clk_ev(w, kcontrol, event);
-+			aif2clk_ev(w, kcontrol, SND_SOC_DAPM_POST_PMD);
- 			wm8994->aif2clk_disable = 0;
- 		}
- 		break;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0030-ASoC-wm8994-Apply-volume-updates-with-clocks-enabled.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0030-ASoC-wm8994-Apply-volume-updates-with-clocks-enabled.patch
deleted file mode 100644
index 5d536db..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0030-ASoC-wm8994-Apply-volume-updates-with-clocks-enabled.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From 35621bc53d008a89c20278c6bf5e049addcd4cd1 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Tue, 5 Jun 2012 12:31:32 +0100
-Subject: [PATCH 30/67] ASoC: wm8994: Apply volume updates with clocks enabled
-
-commit bfd37bb5f681961e255fd2f346c20fdae2ef3f27 upstream.
-
-Volume updates may not be acted upon if there is no clock applied when
-the volume update is written. Ensure this doesn't happen by writing out
-registers with volume updates after we enable each of the clocks.
-
-There are more registers updated than before as previously we were
-relying on wm_hubs to set those for controls it manages.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/wm8994.c |   93 ++++++++++++++++++++++++++++-----------------
- 1 file changed, 58 insertions(+), 35 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index 3de9c6a..de61b8a 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -41,6 +41,39 @@
- #define WM8994_NUM_DRC 3
- #define WM8994_NUM_EQ  3
- 
-+static struct {
-+	unsigned int reg;
-+	unsigned int mask;
-+} wm8994_vu_bits[] = {
-+	{ WM8994_LEFT_LINE_INPUT_1_2_VOLUME, WM8994_IN1_VU },
-+	{ WM8994_RIGHT_LINE_INPUT_1_2_VOLUME, WM8994_IN1_VU },
-+	{ WM8994_LEFT_LINE_INPUT_3_4_VOLUME, WM8994_IN2_VU },
-+	{ WM8994_RIGHT_LINE_INPUT_3_4_VOLUME, WM8994_IN2_VU },
-+	{ WM8994_SPEAKER_VOLUME_LEFT, WM8994_SPKOUT_VU },
-+	{ WM8994_SPEAKER_VOLUME_RIGHT, WM8994_SPKOUT_VU },
-+	{ WM8994_LEFT_OUTPUT_VOLUME, WM8994_HPOUT1_VU },
-+	{ WM8994_RIGHT_OUTPUT_VOLUME, WM8994_HPOUT1_VU },
-+	{ WM8994_LEFT_OPGA_VOLUME, WM8994_MIXOUT_VU },
-+	{ WM8994_RIGHT_OPGA_VOLUME, WM8994_MIXOUT_VU },
-+
-+	{ WM8994_AIF1_DAC1_LEFT_VOLUME, WM8994_AIF1DAC1_VU },
-+	{ WM8994_AIF1_DAC1_RIGHT_VOLUME, WM8994_AIF1DAC1_VU },
-+	{ WM8994_AIF1_DAC2_LEFT_VOLUME, WM8994_AIF1DAC2_VU },
-+	{ WM8994_AIF1_DAC2_RIGHT_VOLUME, WM8994_AIF1DAC2_VU },
-+	{ WM8994_AIF2_DAC_LEFT_VOLUME, WM8994_AIF2DAC_VU },
-+	{ WM8994_AIF2_DAC_RIGHT_VOLUME, WM8994_AIF2DAC_VU },
-+	{ WM8994_AIF1_ADC1_LEFT_VOLUME, WM8994_AIF1ADC1_VU },
-+	{ WM8994_AIF1_ADC1_RIGHT_VOLUME, WM8994_AIF1ADC1_VU },
-+	{ WM8994_AIF1_ADC2_LEFT_VOLUME, WM8994_AIF1ADC2_VU },
-+	{ WM8994_AIF1_ADC2_RIGHT_VOLUME, WM8994_AIF1ADC2_VU },
-+	{ WM8994_AIF2_ADC_LEFT_VOLUME, WM8994_AIF2ADC_VU },
-+	{ WM8994_AIF2_ADC_RIGHT_VOLUME, WM8994_AIF1ADC2_VU },
-+	{ WM8994_DAC1_LEFT_VOLUME, WM8994_DAC1_VU },
-+	{ WM8994_DAC1_RIGHT_VOLUME, WM8994_DAC1_VU },
-+	{ WM8994_DAC2_LEFT_VOLUME, WM8994_DAC2_VU },
-+	{ WM8994_DAC2_RIGHT_VOLUME, WM8994_DAC2_VU },
-+};
-+
- static int wm8994_drc_base[] = {
- 	WM8994_AIF1_DRC1_1,
- 	WM8994_AIF1_DRC2_1,
-@@ -889,6 +922,7 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w,
- 	struct snd_soc_codec *codec = w->codec;
- 	struct wm8994 *control = codec->control_data;
- 	int mask = WM8994_AIF1DAC1L_ENA | WM8994_AIF1DAC1R_ENA;
-+	int i;
- 	int dac;
- 	int adc;
- 	int val;
-@@ -947,6 +981,13 @@ static int aif1clk_ev(struct snd_soc_dapm_widget *w,
- 				    WM8994_AIF1DAC2L_ENA);
- 		break;
- 
-+	case SND_SOC_DAPM_POST_PMU:
-+		for (i = 0; i < ARRAY_SIZE(wm8994_vu_bits); i++)
-+			snd_soc_write(codec, wm8994_vu_bits[i].reg,
-+				      snd_soc_read(codec,
-+						   wm8994_vu_bits[i].reg));
-+		break;
-+
- 	case SND_SOC_DAPM_PRE_PMD:
- 	case SND_SOC_DAPM_POST_PMD:
- 		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-@@ -972,6 +1013,7 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
- 		      struct snd_kcontrol *kcontrol, int event)
- {
- 	struct snd_soc_codec *codec = w->codec;
-+	int i;
- 	int dac;
- 	int adc;
- 	int val;
-@@ -1022,6 +1064,13 @@ static int aif2clk_ev(struct snd_soc_dapm_widget *w,
- 				    WM8994_AIF2DACR_ENA);
- 		break;
- 
-+	case SND_SOC_DAPM_POST_PMU:
-+		for (i = 0; i < ARRAY_SIZE(wm8994_vu_bits); i++)
-+			snd_soc_write(codec, wm8994_vu_bits[i].reg,
-+				      snd_soc_read(codec,
-+						   wm8994_vu_bits[i].reg));
-+		break;
-+
- 	case SND_SOC_DAPM_PRE_PMD:
- 	case SND_SOC_DAPM_POST_PMD:
- 		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_5,
-@@ -1470,9 +1519,11 @@ SND_SOC_DAPM_POST("Late Disable PGA", late_disable_ev)
- 
- static const struct snd_soc_dapm_widget wm8994_lateclk_widgets[] = {
- SND_SOC_DAPM_SUPPLY("AIF1CLK", WM8994_AIF1_CLOCKING_1, 0, 0, aif1clk_ev,
--		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
-+		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
-+		    SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_SUPPLY("AIF2CLK", WM8994_AIF2_CLOCKING_1, 0, 0, aif2clk_ev,
--		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_PRE_PMD),
-+		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
-+		    SND_SOC_DAPM_PRE_PMD),
- SND_SOC_DAPM_PGA("Direct Voice", SND_SOC_NOPM, 0, 0, NULL, 0),
- SND_SOC_DAPM_MIXER("SPKL", WM8994_POWER_MANAGEMENT_3, 8, 0,
- 		   left_speaker_mixer, ARRAY_SIZE(left_speaker_mixer)),
-@@ -3486,39 +3537,11 @@ static int wm8994_codec_probe(struct snd_soc_codec *codec)
- 
- 	wm8994_set_bias_level(codec, SND_SOC_BIAS_STANDBY);
- 
--	/* Latch volume updates (right only; we always do left then right). */
--	snd_soc_update_bits(codec, WM8994_AIF1_DAC1_LEFT_VOLUME,
--			    WM8994_AIF1DAC1_VU, WM8994_AIF1DAC1_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_DAC1_RIGHT_VOLUME,
--			    WM8994_AIF1DAC1_VU, WM8994_AIF1DAC1_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_DAC2_LEFT_VOLUME,
--			    WM8994_AIF1DAC2_VU, WM8994_AIF1DAC2_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_DAC2_RIGHT_VOLUME,
--			    WM8994_AIF1DAC2_VU, WM8994_AIF1DAC2_VU);
--	snd_soc_update_bits(codec, WM8994_AIF2_DAC_LEFT_VOLUME,
--			    WM8994_AIF2DAC_VU, WM8994_AIF2DAC_VU);
--	snd_soc_update_bits(codec, WM8994_AIF2_DAC_RIGHT_VOLUME,
--			    WM8994_AIF2DAC_VU, WM8994_AIF2DAC_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_ADC1_LEFT_VOLUME,
--			    WM8994_AIF1ADC1_VU, WM8994_AIF1ADC1_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_ADC1_RIGHT_VOLUME,
--			    WM8994_AIF1ADC1_VU, WM8994_AIF1ADC1_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_ADC2_LEFT_VOLUME,
--			    WM8994_AIF1ADC2_VU, WM8994_AIF1ADC2_VU);
--	snd_soc_update_bits(codec, WM8994_AIF1_ADC2_RIGHT_VOLUME,
--			    WM8994_AIF1ADC2_VU, WM8994_AIF1ADC2_VU);
--	snd_soc_update_bits(codec, WM8994_AIF2_ADC_LEFT_VOLUME,
--			    WM8994_AIF2ADC_VU, WM8994_AIF1ADC2_VU);
--	snd_soc_update_bits(codec, WM8994_AIF2_ADC_RIGHT_VOLUME,
--			    WM8994_AIF2ADC_VU, WM8994_AIF1ADC2_VU);
--	snd_soc_update_bits(codec, WM8994_DAC1_LEFT_VOLUME,
--			    WM8994_DAC1_VU, WM8994_DAC1_VU);
--	snd_soc_update_bits(codec, WM8994_DAC1_RIGHT_VOLUME,
--			    WM8994_DAC1_VU, WM8994_DAC1_VU);
--	snd_soc_update_bits(codec, WM8994_DAC2_LEFT_VOLUME,
--			    WM8994_DAC2_VU, WM8994_DAC2_VU);
--	snd_soc_update_bits(codec, WM8994_DAC2_RIGHT_VOLUME,
--			    WM8994_DAC2_VU, WM8994_DAC2_VU);
-+	/* Latch volume update bits */
-+	for (i = 0; i < ARRAY_SIZE(wm8994_vu_bits); i++)
-+		snd_soc_update_bits(codec, wm8994_vu_bits[i].reg,
-+				    wm8994_vu_bits[i].mask,
-+				    wm8994_vu_bits[i].mask);
- 
- 	/* Set the low bit of the 3D stereo depth so TLV matches */
- 	snd_soc_update_bits(codec, WM8994_AIF1_DAC1_FILTERS_2,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0031-iwlwifi-unregister-LEDs-if-mac80211-registration-fai.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0031-iwlwifi-unregister-LEDs-if-mac80211-registration-fai.patch
deleted file mode 100644
index 51d633b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0031-iwlwifi-unregister-LEDs-if-mac80211-registration-fai.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 95f7667f3af2005c125446c8a5d59f60a4d05ad7 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Tue, 5 Jun 2012 09:38:35 +0200
-Subject: [PATCH 31/67] iwlwifi: unregister LEDs if mac80211 registration
- fails
-
-commit 0e1fa7ef25004b9c1a14147bce61c15c2f1c6744 upstream.
-
-Otherwise the LEDs stick around and cause issues the
-next time around since they're still there but not
-really hooked up.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-agn.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn.c b/drivers/net/wireless/iwlwifi/iwl-agn.c
-index 8b88e87..16cdd12 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn.c
-@@ -1741,6 +1741,7 @@ static int iwlagn_mac_setup_register(struct iwl_priv *priv,
- 	ret = ieee80211_register_hw(priv->hw);
- 	if (ret) {
- 		IWL_ERR(priv, "Failed to register hw (error %d)\n", ret);
-+		iwl_leds_exit(priv);
- 		return ret;
- 	}
- 	priv->mac80211_registered = 1;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0032-cfg80211-fix-interface-combinations-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0032-cfg80211-fix-interface-combinations-check.patch
deleted file mode 100644
index fd32445..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0032-cfg80211-fix-interface-combinations-check.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 5b6e7b80e2a121632158da46a21f6be9d561ce8c Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Tue, 5 Jun 2012 12:16:50 +0200
-Subject: [PATCH 32/67] cfg80211: fix interface combinations check
-
-commit 463454b5dbd8dbab6e2fc6c557329e5b811b9c32 upstream.
-
-If a given interface combination doesn't contain
-a required interface type then we missed checking
-that and erroneously allowed it even though iface
-type wasn't there at all. Add a check that makes
-sure that all interface types are accounted for.
-
-Reported-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/util.c |   19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/net/wireless/util.c b/net/wireless/util.c
-index 8bf8902..d38815d 100644
---- a/net/wireless/util.c
-+++ b/net/wireless/util.c
-@@ -943,6 +943,7 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 				  enum nl80211_iftype iftype)
- {
- 	struct wireless_dev *wdev_iter;
-+	u32 used_iftypes = BIT(iftype);
- 	int num[NUM_NL80211_IFTYPES];
- 	int total = 1;
- 	int i, j;
-@@ -976,12 +977,14 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 
- 		num[wdev_iter->iftype]++;
- 		total++;
-+		used_iftypes |= BIT(wdev_iter->iftype);
- 	}
- 	mutex_unlock(&rdev->devlist_mtx);
- 
- 	for (i = 0; i < rdev->wiphy.n_iface_combinations; i++) {
- 		const struct ieee80211_iface_combination *c;
- 		struct ieee80211_iface_limit *limits;
-+		u32 all_iftypes = 0;
- 
- 		c = &rdev->wiphy.iface_combinations[i];
- 
-@@ -996,6 +999,7 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 			if (rdev->wiphy.software_iftypes & BIT(iftype))
- 				continue;
- 			for (j = 0; j < c->n_limits; j++) {
-+				all_iftypes |= limits[j].types;
- 				if (!(limits[j].types & BIT(iftype)))
- 					continue;
- 				if (limits[j].max < num[iftype])
-@@ -1003,7 +1007,20 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 				limits[j].max -= num[iftype];
- 			}
- 		}
--		/* yay, it fits */
-+
-+		/*
-+		 * Finally check that all iftypes that we're currently
-+		 * using are actually part of this combination. If they
-+		 * aren't then we can't use this combination and have
-+		 * to continue to the next.
-+		 */
-+		if ((all_iftypes & used_iftypes) != used_iftypes)
-+			goto cont;
-+
-+		/*
-+		 * This combination covered all interface types and
-+		 * supported the requested numbers, so we're good.
-+		 */
- 		kfree(limits);
- 		return 0;
-  cont:
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0033-mpt2sas-Fix-unsafe-using-smp_processor_id-in-preempt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0033-mpt2sas-Fix-unsafe-using-smp_processor_id-in-preempt.patch
deleted file mode 100644
index d51719d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0033-mpt2sas-Fix-unsafe-using-smp_processor_id-in-preempt.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3c997939218ed3d4fec3441eaea74d04392d2007 Mon Sep 17 00:00:00 2001
-From: "nagalakshmi.nandigama at lsi.com" <nagalakshmi.nandigama at lsi.com>
-Date: Tue, 17 Apr 2012 11:25:04 +0530
-Subject: [PATCH 33/67] mpt2sas: Fix unsafe using smp_processor_id() in
- preemptible
-
-commit a2c658505bf5c75516ee0a79287223e86a2474af upstream.
-
-When CONFIG_DEBUG_PREEMPT is enabled, bug is observed in the smp_processor_id().
-This is because smp_processor_id() is not called in preempt safe condition.
-
-To fix this issue, use raw_smp_processor_id instead of smp_processor_id.
-
-Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama at lsi.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/mpt2sas/mpt2sas_base.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
-index ac336e1..e903077 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_base.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
-@@ -1739,7 +1739,7 @@ static inline void _base_writeq(__u64 b, volatile void __iomem *addr,
- static inline u8
- _base_get_msix_index(struct MPT2SAS_ADAPTER *ioc)
- {
--	return ioc->cpu_msix_table[smp_processor_id()];
-+	return ioc->cpu_msix_table[raw_smp_processor_id()];
- }
- 
- /**
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0034-net-sierra_net-device-IDs-for-Aircard-320U.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0034-net-sierra_net-device-IDs-for-Aircard-320U.patch
deleted file mode 100644
index 797282b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0034-net-sierra_net-device-IDs-for-Aircard-320U.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From a6d6029227b3b65257a974953df957d28ea190e7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Tue, 5 Jun 2012 21:18:10 +0000
-Subject: [PATCH 34/67] net: sierra_net: device IDs for Aircard 320U++
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit dd03cff23d694cfb0fdae80cb618e7ced05ea696 upstream.
-
-Adding device IDs for Aircard 320U and two other devices
-found in the out-of-tree version of this driver.
-
-Cc: linux at sierrawireless.com
-Cc: Autif Khan <autif.mlist at gmail.com>
-Cc: Tom Cassidy <tomas.cassidy at gmail.com>
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/sierra_net.c |   14 ++++++++++----
- 1 file changed, 10 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/usb/sierra_net.c b/drivers/net/usb/sierra_net.c
-index ed1b432..864448b 100644
---- a/drivers/net/usb/sierra_net.c
-+++ b/drivers/net/usb/sierra_net.c
-@@ -943,7 +943,7 @@ struct sk_buff *sierra_net_tx_fixup(struct usbnet *dev, struct sk_buff *skb,
- }
- 
- static const u8 sierra_net_ifnum_list[] = { 7, 10, 11 };
--static const struct sierra_net_info_data sierra_net_info_data_68A3 = {
-+static const struct sierra_net_info_data sierra_net_info_data_direct_ip = {
- 	.rx_urb_size = 8 * 1024,
- 	.whitelist = {
- 		.infolen = ARRAY_SIZE(sierra_net_ifnum_list),
-@@ -951,7 +951,7 @@ static const struct sierra_net_info_data sierra_net_info_data_68A3 = {
- 	}
- };
- 
--static const struct driver_info sierra_net_info_68A3 = {
-+static const struct driver_info sierra_net_info_direct_ip = {
- 	.description = "Sierra Wireless USB-to-WWAN Modem",
- 	.flags = FLAG_WWAN | FLAG_SEND_ZLP,
- 	.bind = sierra_net_bind,
-@@ -959,12 +959,18 @@ static const struct driver_info sierra_net_info_68A3 = {
- 	.status = sierra_net_status,
- 	.rx_fixup = sierra_net_rx_fixup,
- 	.tx_fixup = sierra_net_tx_fixup,
--	.data = (unsigned long)&sierra_net_info_data_68A3,
-+	.data = (unsigned long)&sierra_net_info_data_direct_ip,
- };
- 
- static const struct usb_device_id products[] = {
- 	{USB_DEVICE(0x1199, 0x68A3), /* Sierra Wireless USB-to-WWAN modem */
--	.driver_info = (unsigned long) &sierra_net_info_68A3},
-+	.driver_info = (unsigned long) &sierra_net_info_direct_ip},
-+	{USB_DEVICE(0x0F3D, 0x68A3), /* AT&T Direct IP modem */
-+	.driver_info = (unsigned long) &sierra_net_info_direct_ip},
-+	{USB_DEVICE(0x1199, 0x68AA), /* Sierra Wireless Direct IP LTE modem */
-+	.driver_info = (unsigned long) &sierra_net_info_direct_ip},
-+	{USB_DEVICE(0x0F3D, 0x68AA), /* AT&T Direct IP LTE modem */
-+	.driver_info = (unsigned long) &sierra_net_info_direct_ip},
- 
- 	{}, /* last item */
- };
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0035-ARM-imx6-exit-coherency-when-shutting-down-a-cpu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0035-ARM-imx6-exit-coherency-when-shutting-down-a-cpu.patch
deleted file mode 100644
index e14a5f3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0035-ARM-imx6-exit-coherency-when-shutting-down-a-cpu.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 863d8967cf0028dc6f7ca98d88f4e93045ec143e Mon Sep 17 00:00:00 2001
-From: Shawn Guo <shawn.guo at linaro.org>
-Date: Tue, 22 May 2012 22:13:46 +0800
-Subject: [PATCH 35/67] ARM: imx6: exit coherency when shutting down a cpu
-
-commit 602bf40971d7f9a1ec0b7ba2b7e6427849828651 upstream.
-
-There is a system hang issue on imx6q which can easily be seen with
-running a cpu hotplug stress testing (hotplug secondary cores from
-user space via sysfs interface for thousands iterations).
-
-It turns out that the issue is caused by coherency of the cpu that
-is being shut down.  When shutting down a cpu, we need to have the
-cpu exit coherency to prevent it from receiving cache, TLB, or BTB
-maintenance operations broadcast by other CPUs in the cluster.
-
-Copy cpu_enter_lowpower() and cpu_leave_lowpower() from mach-vexpress
-to have coherency properly handled in platform_cpu_die(), thus fix
-the issue.
-
-Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mach-imx/hotplug.c |   42 +++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 41 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-imx/hotplug.c b/arch/arm/mach-imx/hotplug.c
-index 89493ab..20ed2d5 100644
---- a/arch/arm/mach-imx/hotplug.c
-+++ b/arch/arm/mach-imx/hotplug.c
-@@ -12,6 +12,7 @@
- 
- #include <linux/errno.h>
- #include <asm/cacheflush.h>
-+#include <asm/cp15.h>
- #include <mach/common.h>
- 
- int platform_cpu_kill(unsigned int cpu)
-@@ -19,6 +20,44 @@ int platform_cpu_kill(unsigned int cpu)
- 	return 1;
- }
- 
-+static inline void cpu_enter_lowpower(void)
-+{
-+	unsigned int v;
-+
-+	flush_cache_all();
-+	asm volatile(
-+		"mcr	p15, 0, %1, c7, c5, 0\n"
-+	"	mcr	p15, 0, %1, c7, c10, 4\n"
-+	/*
-+	 * Turn off coherency
-+	 */
-+	"	mrc	p15, 0, %0, c1, c0, 1\n"
-+	"	bic	%0, %0, %3\n"
-+	"	mcr	p15, 0, %0, c1, c0, 1\n"
-+	"	mrc	p15, 0, %0, c1, c0, 0\n"
-+	"	bic	%0, %0, %2\n"
-+	"	mcr	p15, 0, %0, c1, c0, 0\n"
-+	  : "=&r" (v)
-+	  : "r" (0), "Ir" (CR_C), "Ir" (0x40)
-+	  : "cc");
-+}
-+
-+static inline void cpu_leave_lowpower(void)
-+{
-+	unsigned int v;
-+
-+	asm volatile(
-+		"mrc	p15, 0, %0, c1, c0, 0\n"
-+	"	orr	%0, %0, %1\n"
-+	"	mcr	p15, 0, %0, c1, c0, 0\n"
-+	"	mrc	p15, 0, %0, c1, c0, 1\n"
-+	"	orr	%0, %0, %2\n"
-+	"	mcr	p15, 0, %0, c1, c0, 1\n"
-+	  : "=&r" (v)
-+	  : "Ir" (CR_C), "Ir" (0x40)
-+	  : "cc");
-+}
-+
- /*
-  * platform-specific code to shutdown a CPU
-  *
-@@ -26,9 +65,10 @@ int platform_cpu_kill(unsigned int cpu)
-  */
- void platform_cpu_die(unsigned int cpu)
- {
--	flush_cache_all();
-+	cpu_enter_lowpower();
- 	imx_enable_cpu(cpu, false);
- 	cpu_do_idle();
-+	cpu_leave_lowpower();
- 
- 	/* We should never return from idle */
- 	panic("cpu %d unexpectedly exit from shutdown\n", cpu);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0036-ARM-i.MX-imx21ads-Fix-overlapping-static-i-o-mapping.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0036-ARM-i.MX-imx21ads-Fix-overlapping-static-i-o-mapping.patch
deleted file mode 100644
index e0f48f5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0036-ARM-i.MX-imx21ads-Fix-overlapping-static-i-o-mapping.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From b56e5718560c09bd064d57a3de17be1a329f2c65 Mon Sep 17 00:00:00 2001
-From: Jaccon Bastiaansen <jaccon.bastiaansen at gmail.com>
-Date: Mon, 30 Apr 2012 11:53:43 +0200
-Subject: [PATCH 36/67] ARM i.MX imx21ads: Fix overlapping static i/o mappings
-
-commit 350ab15bb2ffe7103bc6bf6c634f3c5b286eaf2a upstream.
-
-The statically defined I/O memory regions for the i.MX21 on chip
-peripherals and the on board I/O peripherals of the i.MX21ADS board
-overlap. This results in a kernel crash during startup. This is fixed
-by reducing the memory range for the on board I/O peripherals to the
-actually required range.
-
-Signed-off-by: Jaccon Bastiaansen <jaccon.bastiaansen at gmail.com>
-Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mach-imx/mach-mx21ads.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-imx/mach-mx21ads.c b/arch/arm/mach-imx/mach-mx21ads.c
-index 25f8402..ad994b3 100644
---- a/arch/arm/mach-imx/mach-mx21ads.c
-+++ b/arch/arm/mach-imx/mach-mx21ads.c
-@@ -32,7 +32,7 @@
-  * Memory-mapped I/O on MX21ADS base board
-  */
- #define MX21ADS_MMIO_BASE_ADDR   0xf5000000
--#define MX21ADS_MMIO_SIZE        SZ_16M
-+#define MX21ADS_MMIO_SIZE        0xc00000
- 
- #define MX21ADS_REG_ADDR(offset)    (void __force __iomem *) \
- 		(MX21ADS_MMIO_BASE_ADDR + (offset))
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0037-NFSv4-Fix-unnecessary-delegation-returns-in-nfs4_do_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0037-NFSv4-Fix-unnecessary-delegation-returns-in-nfs4_do_.patch
deleted file mode 100644
index 9f00f9f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0037-NFSv4-Fix-unnecessary-delegation-returns-in-nfs4_do_.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 2b0262efb8720c3199a4fc4c119de05df5957bbc Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Fri, 8 Jun 2012 10:58:09 -0400
-Subject: [PATCH 37/67] NFSv4: Fix unnecessary delegation returns in
- nfs4_do_open
-
-commit 2d0dbc6ae8a5194aaecb9cfffb9053f38fce8b86 upstream.
-
-While nfs4_do_open() expects the fmode argument to be restricted to
-combinations of FMODE_READ and FMODE_WRITE, both nfs4_atomic_open()
-and nfs4_proc_create will pass the nfs_open_context->mode,
-which contains the full fmode_t.
-
-This patch ensures that nfs4_do_open strips the other fmode_t bits,
-fixing a problem in which the nfs4_do_open call would result in an
-unnecessary delegation return.
-
-Reported-by: Fred Isaman <iisaman at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4proc.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index a3cae5d..8000459 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -1825,6 +1825,7 @@ static struct nfs4_state *nfs4_do_open(struct inode *dir, struct dentry *dentry,
- 	struct nfs4_state *res;
- 	int status;
- 
-+	fmode &= FMODE_READ|FMODE_WRITE;
- 	do {
- 		status = _nfs4_do_open(dir, dentry, fmode, flags, sattr, cred, &res);
- 		if (status == 0)
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0038-iwlwifi-use-correct-supported-firmware-for-6035-and-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0038-iwlwifi-use-correct-supported-firmware-for-6035-and-.patch
deleted file mode 100644
index 0bc6ade..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0038-iwlwifi-use-correct-supported-firmware-for-6035-and-.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From f4ef6f3f77fa0419a906d75f96c4dea111956872 Mon Sep 17 00:00:00 2001
-From: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Date: Tue, 5 Jun 2012 20:24:37 +0200
-Subject: [PATCH 38/67] iwlwifi: use correct supported firmware for 6035 and
- 6000g2
-
-commit d2c8b15d0cb486f4938ba7f2af349d9d1220cb10 upstream.
-
-My patch
-
-   iwlwifi: use correct released ucode version
-
-did not correctly report supported firmware
-for the 6035 device. This patch fixes it. The
-minimum supported firmware version for 6035
-is v6.
-
-Also correct the minimum supported firmware
-version for the 6000g2 series of devices.
-
-Signed-off-by: Meenakshi Venkataraman <meenakshi.venkataraman at intel.com>
-Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2:
- - adjust context
- - make IWL_DEVICE_6035 identical for IWL_DEVICE_6030 except for the
-   ucode_api_* fields]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-6000.c |   22 ++++++++++++++++++++--
- 1 file changed, 20 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-6000.c b/drivers/net/wireless/iwlwifi/iwl-6000.c
-index 0b9f797..9b6b010 100644
---- a/drivers/net/wireless/iwlwifi/iwl-6000.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-6000.c
-@@ -49,17 +49,20 @@
- #define IWL6000_UCODE_API_MAX 6
- #define IWL6050_UCODE_API_MAX 5
- #define IWL6000G2_UCODE_API_MAX 6
-+#define IWL6035_UCODE_API_MAX 6
- 
- /* Oldest version we won't warn about */
- #define IWL6000_UCODE_API_OK 4
- #define IWL6000G2_UCODE_API_OK 5
- #define IWL6050_UCODE_API_OK 5
- #define IWL6000G2B_UCODE_API_OK 6
-+#define IWL6035_UCODE_API_OK 6
- 
- /* Lowest firmware API version supported */
- #define IWL6000_UCODE_API_MIN 4
- #define IWL6050_UCODE_API_MIN 4
--#define IWL6000G2_UCODE_API_MIN 4
-+#define IWL6000G2_UCODE_API_MIN 5
-+#define IWL6035_UCODE_API_MIN 6
- 
- #define IWL6000_FW_PRE "iwlwifi-6000-"
- #define IWL6000_MODULE_FIRMWARE(api) IWL6000_FW_PRE __stringify(api) ".ucode"
-@@ -436,9 +439,24 @@ struct iwl_cfg iwl6030_2bg_cfg = {
- 	IWL_DEVICE_6030,
- };
- 
-+#define IWL_DEVICE_6035						\
-+	.fw_name_pre = IWL6030_FW_PRE,				\
-+	.ucode_api_max = IWL6035_UCODE_API_MAX,			\
-+	.ucode_api_ok = IWL6035_UCODE_API_OK,			\
-+	.ucode_api_min = IWL6035_UCODE_API_MIN,			\
-+	.eeprom_ver = EEPROM_6030_EEPROM_VERSION,		\
-+	.eeprom_calib_ver = EEPROM_6030_TX_POWER_VERSION,	\
-+	.lib = &iwl6030_lib,					\
-+	.base_params = &iwl6000_g2_base_params,			\
-+	.bt_params = &iwl6000_bt_params,			\
-+	.need_dc_calib = true,					\
-+	.need_temp_offset_calib = true,				\
-+	.led_mode = IWL_LED_RF_STATE,				\
-+	.adv_pm = true
-+
- struct iwl_cfg iwl6035_2agn_cfg = {
- 	.name = "6035 Series 2x2 AGN/BT",
--	IWL_DEVICE_6030,
-+	IWL_DEVICE_6035,
- 	.ht_params = &iwl6000_ht_params,
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0039-iwlwifi-disable-the-buggy-chain-extension-feature-in.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0039-iwlwifi-disable-the-buggy-chain-extension-feature-in.patch
deleted file mode 100644
index e13734b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0039-iwlwifi-disable-the-buggy-chain-extension-feature-in.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 0011758ae1822920fd9c6bcd18cafb780971a7b3 Mon Sep 17 00:00:00 2001
-From: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Date: Wed, 6 Jun 2012 13:55:02 +0200
-Subject: [PATCH 39/67] iwlwifi: disable the buggy chain extension feature in
- HW
-
-commit d012d04e4d6312ea157b6cf19e9689af934f5aa7 upstream.
-
-This feature has been reported to be buggy and enabled by
-default. We therefore need to disable it manually.
-
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2 as instructed: pass bus(trans) to iwl_write_prph()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-prph.h       |    1 +
- drivers/net/wireless/iwlwifi/iwl-trans-pcie.c |    5 +++++
- 2 files changed, 6 insertions(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-prph.h b/drivers/net/wireless/iwlwifi/iwl-prph.h
-index d9b089e..0683006 100644
---- a/drivers/net/wireless/iwlwifi/iwl-prph.h
-+++ b/drivers/net/wireless/iwlwifi/iwl-prph.h
-@@ -228,6 +228,7 @@
- #define SCD_TXFACT		(SCD_BASE + 0x10)
- #define SCD_ACTIVE		(SCD_BASE + 0x14)
- #define SCD_QUEUECHAIN_SEL	(SCD_BASE + 0xe8)
-+#define SCD_CHAINEXT_EN		(SCD_BASE + 0x244)
- #define SCD_AGGR_SEL		(SCD_BASE + 0x248)
- #define SCD_INTERRUPT_MASK	(SCD_BASE + 0x108)
- 
-diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
-index 5f17ab8..5815cf5 100644
---- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
-@@ -868,6 +868,11 @@ static void iwl_trans_pcie_tx_start(struct iwl_trans *trans)
- 	iwl_write_prph(bus(trans), SCD_DRAM_BASE_ADDR,
- 		       trans_pcie->scd_bc_tbls.dma >> 10);
- 
-+	/* The chain extension of the SCD doesn't work well. This feature is
-+	 * enabled by default by the HW, so we need to disable it manually.
-+	 */
-+	iwl_write_prph(bus(trans), SCD_CHAINEXT_EN, 0);
-+
- 	/* Enable DMA channel */
- 	for (chan = 0; chan < FH_TCSR_CHNL_NUM ; chan++)
- 		iwl_write_direct32(bus(trans), FH_TCSR_CHNL_TX_CONFIG_REG(chan),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0040-ALSA-hda-Add-codec-no_jack_detect-flag.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0040-ALSA-hda-Add-codec-no_jack_detect-flag.patch
deleted file mode 100644
index 619df98..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0040-ALSA-hda-Add-codec-no_jack_detect-flag.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6b9a3be3e496ccc4125e0c6daded90e823864642 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 13 Feb 2012 11:55:02 +0100
-Subject: [PATCH 40/67] ALSA: hda - Add codec->no_jack_detect flag
-
-commit 71b1e9e43d5199f57c109e20c0f4dffc5c048130 upstream.
-
-Add a new flag to indicate that the codec has no jack-detection cap.
-This flag should be set for hardwares that have no jack-detect
-implementation although the codec chip itself supports it.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-[bwh: Backported to 3.2: adjust filename and context for is_jack_detectable()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/hda_codec.h |    1 +
- sound/pci/hda/hda_local.h |    2 ++
- 2 files changed, 3 insertions(+)
-
-diff --git a/sound/pci/hda/hda_codec.h b/sound/pci/hda/hda_codec.h
-index 71f6744..78b2223 100644
---- a/sound/pci/hda/hda_codec.h
-+++ b/sound/pci/hda/hda_codec.h
-@@ -858,6 +858,7 @@ struct hda_codec {
- 	unsigned int pins_shutup:1;	/* pins are shut up */
- 	unsigned int no_trigger_sense:1; /* don't trigger at pin-sensing */
- 	unsigned int ignore_misc_bit:1; /* ignore MISC_NO_PRESENCE bit */
-+	unsigned int no_jack_detect:1;	/* Machine has no jack-detection */
- #ifdef CONFIG_SND_HDA_POWER_SAVE
- 	unsigned int power_on :1;	/* current (global) power-state */
- 	unsigned int power_transition :1; /* power-state in transition */
-diff --git a/sound/pci/hda/hda_local.h b/sound/pci/hda/hda_local.h
-index 368f0c5..c78b753 100644
---- a/sound/pci/hda/hda_local.h
-+++ b/sound/pci/hda/hda_local.h
-@@ -515,6 +515,8 @@ int snd_hda_jack_detect(struct hda_codec *codec, hda_nid_t nid);
- 
- static inline bool is_jack_detectable(struct hda_codec *codec, hda_nid_t nid)
- {
-+	if (codec->no_jack_detect)
-+		return false;
- 	if (!(snd_hda_query_pin_caps(codec, nid) & AC_PINCAP_PRES_DETECT))
- 		return false;
- 	if (!codec->ignore_misc_bit &&
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0041-ALSA-hda-add-support-for-Uniwill-ECS-M31EI-notebook.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0041-ALSA-hda-add-support-for-Uniwill-ECS-M31EI-notebook.patch
deleted file mode 100644
index f040ea2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0041-ALSA-hda-add-support-for-Uniwill-ECS-M31EI-notebook.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 0c29db802dc506ead06e7fac2b2d4d139e818ae3 Mon Sep 17 00:00:00 2001
-From: Jaroslav Kysela <perex at perex.cz>
-Date: Tue, 7 Feb 2012 14:18:14 +0100
-Subject: [PATCH 41/67] ALSA: hda - add support for Uniwill ECS M31EI notebook
-
-commit 416846d2b31fc740ed9d5a5ec116964fb43c4358 upstream.
-
-This hardware requires same fixup for the node 0x0f like Asus A6Rp.
-More information: https://bugzilla.redhat.com/show_bug.cgi?id=785417
-
-Signed-off-by: Jaroslav Kysela <perex at perex.cz>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 0bc5a46..7d304af 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5318,6 +5318,7 @@ static const struct alc_fixup alc861_fixups[] = {
- 
- static const struct snd_pci_quirk alc861_fixup_tbl[] = {
- 	SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", PINFIX_ASUS_A6RP),
-+	SND_PCI_QUIRK(0x1584, 0x0000, "Uniwill ECS M31EI", PINFIX_ASUS_A6RP),	
- 	SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", PINFIX_ASUS_A6RP),
- 	SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505),
- 	{}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0042-ALSA-hda-Suppress-auto-mute-feature-on-some-machines.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0042-ALSA-hda-Suppress-auto-mute-feature-on-some-machines.patch
deleted file mode 100644
index 588a0ed..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0042-ALSA-hda-Suppress-auto-mute-feature-on-some-machines.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From bc9c3f7a38a28cba8ad0455548f064a81a8c9a69 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 13 Feb 2012 11:56:25 +0100
-Subject: [PATCH 42/67] ALSA: hda - Suppress auto-mute feature on some
- machines with ALC861
-
-commit e652f4c861fb7f1f59ff0828db0d85578471932d upstream.
-
-A few machines with ALC861 & co are reported not to work properly with
-the auto-mute feature in software.  The auto-mute feature is implemented
-in the hardware level, and the jack-detection never works with them.
-
-Also, rename the fixup index as ALC861_FIXUP_* to follow the standard.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |   38 ++++++++++++++++++++++++++++++--------
- 1 file changed, 30 insertions(+), 8 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 7d304af..d4616fb 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5278,8 +5278,10 @@ static const struct hda_amp_list alc861_loopbacks[] = {
- 
- /* Pin config fixes */
- enum {
--	PINFIX_FSC_AMILO_PI1505,
--	PINFIX_ASUS_A6RP,
-+	ALC861_FIXUP_FSC_AMILO_PI1505,
-+	ALC861_FIXUP_AMP_VREF_0F,
-+	ALC861_FIXUP_NO_JACK_DETECT,
-+	ALC861_FIXUP_ASUS_A6RP,
- };
- 
- /* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */
-@@ -5301,8 +5303,16 @@ static void alc861_fixup_asus_amp_vref_0f(struct hda_codec *codec,
- 	spec->keep_vref_in_automute = 1;
- }
- 
-+/* suppress the jack-detection */
-+static void alc_fixup_no_jack_detect(struct hda_codec *codec,
-+				     const struct alc_fixup *fix, int action)
-+{
-+	if (action == ALC_FIXUP_ACT_PRE_PROBE)
-+		codec->no_jack_detect = 1;
-+}	
-+
- static const struct alc_fixup alc861_fixups[] = {
--	[PINFIX_FSC_AMILO_PI1505] = {
-+	[ALC861_FIXUP_FSC_AMILO_PI1505] = {
- 		.type = ALC_FIXUP_PINS,
- 		.v.pins = (const struct alc_pincfg[]) {
- 			{ 0x0b, 0x0221101f }, /* HP */
-@@ -5310,17 +5320,29 @@ static const struct alc_fixup alc861_fixups[] = {
- 			{ }
- 		}
- 	},
--	[PINFIX_ASUS_A6RP] = {
-+	[ALC861_FIXUP_AMP_VREF_0F] = {
- 		.type = ALC_FIXUP_FUNC,
- 		.v.func = alc861_fixup_asus_amp_vref_0f,
- 	},
-+	[ALC861_FIXUP_NO_JACK_DETECT] = {
-+		.type = ALC_FIXUP_FUNC,
-+		.v.func = alc_fixup_no_jack_detect,
-+	},
-+	[ALC861_FIXUP_ASUS_A6RP] = {
-+		.type = ALC_FIXUP_FUNC,
-+		.v.func = alc861_fixup_asus_amp_vref_0f,
-+		.chained = true,
-+		.chain_id = ALC861_FIXUP_NO_JACK_DETECT,
-+	}
- };
- 
- static const struct snd_pci_quirk alc861_fixup_tbl[] = {
--	SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", PINFIX_ASUS_A6RP),
--	SND_PCI_QUIRK(0x1584, 0x0000, "Uniwill ECS M31EI", PINFIX_ASUS_A6RP),	
--	SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", PINFIX_ASUS_A6RP),
--	SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505),
-+	SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", ALC861_FIXUP_ASUS_A6RP),
-+	SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", ALC861_FIXUP_AMP_VREF_0F),
-+	SND_PCI_QUIRK(0x1462, 0x7254, "HP DX2200", ALC861_FIXUP_NO_JACK_DETECT),
-+	SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", ALC861_FIXUP_AMP_VREF_0F),
-+	SND_PCI_QUIRK(0x1584, 0x0000, "Uniwill ECS M31EI", ALC861_FIXUP_AMP_VREF_0F),
-+	SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", ALC861_FIXUP_FSC_AMILO_PI1505),
- 	{}
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0043-ALSA-hda-Add-another-jack-detection-suppression-for-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0043-ALSA-hda-Add-another-jack-detection-suppression-for-.patch
deleted file mode 100644
index bfbb148..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0043-ALSA-hda-Add-another-jack-detection-suppression-for-.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 5dadca9a4cd269970d942d9e235320f30c425b31 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 13 Feb 2012 12:03:25 +0100
-Subject: [PATCH 43/67] ALSA: hda - Add another jack-detection suppression for
- ASUS ALC892
-
-commit 1565cc358585be40608b46f18f7ac431a1aae2bc upstream.
-
-Add the jack-detect suppression for an ASUS machine with ALC892 codec.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42655
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index d4616fb..ba8a877 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5594,6 +5594,7 @@ enum {
- 	ALC662_FIXUP_ASUS_MODE6,
- 	ALC662_FIXUP_ASUS_MODE7,
- 	ALC662_FIXUP_ASUS_MODE8,
-+	ALC662_FIXUP_NO_JACK_DETECT,
- };
- 
- static const struct alc_fixup alc662_fixups[] = {
-@@ -5739,6 +5740,10 @@ static const struct alc_fixup alc662_fixups[] = {
- 		.chained = true,
- 		.chain_id = ALC662_FIXUP_SKU_IGNORE
- 	},
-+	[ALC662_FIXUP_NO_JACK_DETECT] = {
-+		.type = ALC_FIXUP_FUNC,
-+		.v.func = alc_fixup_no_jack_detect,
-+	},
- };
- 
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -5747,6 +5752,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x1025, 0x031c, "Gateway NV79", ALC662_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x1025, 0x038b, "Acer Aspire 8943G", ALC662_FIXUP_ASPIRE),
- 	SND_PCI_QUIRK(0x103c, 0x1632, "HP RP5800", ALC662_FIXUP_HP_RP5800),
-+	SND_PCI_QUIRK(0x1043, 0x8469, "ASUS mobo", ALC662_FIXUP_NO_JACK_DETECT),
- 	SND_PCI_QUIRK(0x105b, 0x0cd6, "Foxconn", ALC662_FIXUP_ASUS_MODE2),
- 	SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
- 	SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0044-ALSA-HDA-Pin-fixup-for-Zotac-Z68-motherboard.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0044-ALSA-HDA-Pin-fixup-for-Zotac-Z68-motherboard.patch
deleted file mode 100644
index 925129a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0044-ALSA-HDA-Pin-fixup-for-Zotac-Z68-motherboard.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 733c9de011d1599e23402465b1bd33730bee4fc1 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Tue, 12 Jun 2012 13:15:12 +0200
-Subject: [PATCH 44/67] ALSA: HDA: Pin fixup for Zotac Z68 motherboard
-
-commit edfe3bfc1b779ddda9bcff523eb022dda37b93c8 upstream.
-
-Pin 0x1b was connected to the front panel connector, which according to
-the HDA standard should contain a mic and a headphone. In this case,
-the headphone was listed as "line out" by BIOS.
-
-BugLink: https://bugs.launchpad.net/bugs/993162
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index ba8a877..0005bde 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5595,6 +5595,7 @@ enum {
- 	ALC662_FIXUP_ASUS_MODE7,
- 	ALC662_FIXUP_ASUS_MODE8,
- 	ALC662_FIXUP_NO_JACK_DETECT,
-+	ALC662_FIXUP_ZOTAC_Z68,
- };
- 
- static const struct alc_fixup alc662_fixups[] = {
-@@ -5744,6 +5745,13 @@ static const struct alc_fixup alc662_fixups[] = {
- 		.type = ALC_FIXUP_FUNC,
- 		.v.func = alc_fixup_no_jack_detect,
- 	},
-+	[ALC662_FIXUP_ZOTAC_Z68] = {
-+		.type = ALC_FIXUP_PINS,
-+		.v.pins = (const struct alc_pincfg[]) {
-+			{ 0x1b, 0x02214020 }, /* Front HP */
-+			{ }
-+		}
-+	},
- };
- 
- static const struct snd_pci_quirk alc662_fixup_tbl[] = {
-@@ -5757,6 +5765,7 @@ static const struct snd_pci_quirk alc662_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x144d, 0xc051, "Samsung R720", ALC662_FIXUP_IDEAPAD),
- 	SND_PCI_QUIRK(0x17aa, 0x38af, "Lenovo Ideapad Y550P", ALC662_FIXUP_IDEAPAD),
- 	SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Ideapad Y550", ALC662_FIXUP_IDEAPAD),
-+	SND_PCI_QUIRK(0x19da, 0xa130, "Zotac Z68", ALC662_FIXUP_ZOTAC_Z68),
- 	SND_PCI_QUIRK(0x1b35, 0x2206, "CZC P10T", ALC662_FIXUP_CZC_P10T),
- 
- #if 0
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0045-usb-cdc-wdm-Add-device-id-for-Huawei-3G-LTE-modems.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0045-usb-cdc-wdm-Add-device-id-for-Huawei-3G-LTE-modems.patch
deleted file mode 100644
index 940c459..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0045-usb-cdc-wdm-Add-device-id-for-Huawei-3G-LTE-modems.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 4b2cda453ae678e21afaa8d35cb77d670239e9cb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Wed, 25 Jan 2012 13:03:29 +0100
-Subject: [PATCH 45/67] usb: cdc-wdm: Add device-id for Huawei 3G/LTE modems
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit fec67b45bf045582c3172101970090d640cd56d9 upstream.
-
-[v2: Editorial changes suggested by Sergei Shtylyov]
-
-These modems use the Qualcomm MSM Interface (QMI) protocol for
-management of their CDC ECM like wwan interface.  This driver
-is perfect for exporting the protocol to userspace.
-
-The created character device will be indistinguishable from a
-common AT command based Device Management interface, so
-userspace applications must do some intelligent matching
-on the USB device.
-
-Cc: Sergei Shtylyov <sshtylyov at mvista.com>
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Acked-by: Oliver Neukum <oneukum at suse.de>
-Acked-by: Marcel Holtmann <marcel at holtmann.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |   16 ++++++++++++++++
- 1 file changed, 16 insertions(+)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 554ac90..19fb5fa 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -31,6 +31,8 @@
- #define DRIVER_AUTHOR "Oliver Neukum"
- #define DRIVER_DESC "USB Abstract Control Model driver for USB WCM Device Management"
- 
-+#define HUAWEI_VENDOR_ID	0x12D1
-+
- static const struct usb_device_id wdm_ids[] = {
- 	{
- 		.match_flags = USB_DEVICE_ID_MATCH_INT_CLASS |
-@@ -38,6 +40,20 @@ static const struct usb_device_id wdm_ids[] = {
- 		.bInterfaceClass = USB_CLASS_COMM,
- 		.bInterfaceSubClass = USB_CDC_SUBCLASS_DMM
- 	},
-+	{
-+		/* 
-+		 * Huawei E392, E398 and possibly other Qualcomm based modems
-+		 * embed the Qualcomm QMI protocol inside CDC on CDC ECM like
-+		 * control interfaces.  Userspace access to this is required
-+		 * to configure the accompanying data interface
-+		 */
-+		.match_flags        = USB_DEVICE_ID_MATCH_VENDOR |
-+					USB_DEVICE_ID_MATCH_INT_INFO,
-+		.idVendor           = HUAWEI_VENDOR_ID,
-+		.bInterfaceClass    = USB_CLASS_VENDOR_SPEC,
-+		.bInterfaceSubClass = 1,
-+		.bInterfaceProtocol = 9, /* NOTE: CDC ECM control interface! */
-+	},
- 	{ }
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0046-USB-qcserial-Add-Sierra-Wireless-device-IDs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0046-USB-qcserial-Add-Sierra-Wireless-device-IDs.patch
deleted file mode 100644
index 954ac8c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0046-USB-qcserial-Add-Sierra-Wireless-device-IDs.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 1fc193abca612fd776509b13f114254443d79300 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Thu, 24 May 2012 11:19:04 +0200
-Subject: [PATCH 46/67] USB: qcserial: Add Sierra Wireless device IDs
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit c41444ccfa33a1c20efa319e554cb531576e64a2 upstream.
-
-Some additional IDs found in the BSD/GPL licensed out-of-tree
-GobiSerial driver from Sierra Wireless.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/qcserial.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/usb/serial/qcserial.c b/drivers/usb/serial/qcserial.c
-index 3187d8b..6634477 100644
---- a/drivers/usb/serial/qcserial.c
-+++ b/drivers/usb/serial/qcserial.c
-@@ -105,7 +105,13 @@ static const struct usb_device_id id_table[] = {
- 	{USB_DEVICE(0x1410, 0xa021)},	/* Novatel Gobi 3000 Composite */
- 	{USB_DEVICE(0x413c, 0x8193)},	/* Dell Gobi 3000 QDL */
- 	{USB_DEVICE(0x413c, 0x8194)},	/* Dell Gobi 3000 Composite */
-+	{USB_DEVICE(0x1199, 0x9010)},	/* Sierra Wireless Gobi 3000 QDL */
-+	{USB_DEVICE(0x1199, 0x9012)},	/* Sierra Wireless Gobi 3000 QDL */
- 	{USB_DEVICE(0x1199, 0x9013)},	/* Sierra Wireless Gobi 3000 Modem device (MC8355) */
-+	{USB_DEVICE(0x1199, 0x9014)},	/* Sierra Wireless Gobi 3000 QDL */
-+	{USB_DEVICE(0x1199, 0x9015)},	/* Sierra Wireless Gobi 3000 Modem device */
-+	{USB_DEVICE(0x1199, 0x9018)},	/* Sierra Wireless Gobi 3000 QDL */
-+	{USB_DEVICE(0x1199, 0x9019)},	/* Sierra Wireless Gobi 3000 Modem device */
- 	{USB_DEVICE(0x12D1, 0x14F0)},	/* Sony Gobi 3000 QDL */
- 	{USB_DEVICE(0x12D1, 0x14F1)},	/* Sony Gobi 3000 Composite */
- 	{ }				/* Terminating entry */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0047-USB-ftdi-sio-Add-support-for-RT-Systems-USB-RTS01-se.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0047-USB-ftdi-sio-Add-support-for-RT-Systems-USB-RTS01-se.patch
deleted file mode 100644
index 7d101e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0047-USB-ftdi-sio-Add-support-for-RT-Systems-USB-RTS01-se.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 4303646551b97b4a9d0dfe195a85a32840e920b6 Mon Sep 17 00:00:00 2001
-From: Evan McNabb <evan at mcnabbs.org>
-Date: Fri, 25 May 2012 22:46:14 -0400
-Subject: [PATCH 47/67] USB: ftdi-sio: Add support for RT Systems USB-RTS01
- serial adapter
-
-commit e00a54d772210d450e5c1a801534c3c8a448549f upstream.
-
-Add support for RT Systems USB-RTS01 USB to Serial adapter:
-http://www.rtsystemsinc.com/Photos/USBRTS01.html
-
-Tested by controlling Icom IC-718 amateur radio transceiver via hamlib.
-
-Signed-off-by: Evan McNabb <evan at mcnabbs.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/ftdi_sio.c     |    1 +
- drivers/usb/serial/ftdi_sio_ids.h |    1 +
- 2 files changed, 2 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 450bdfe..4045e39 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -737,6 +737,7 @@ static struct usb_device_id id_table_combined [] = {
- 	{ USB_DEVICE(TELLDUS_VID, TELLDUS_TELLSTICK_PID) },
- 	{ USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_SERIAL_VX7_PID) },
- 	{ USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_CT29B_PID) },
-+	{ USB_DEVICE(RTSYSTEMS_VID, RTSYSTEMS_RTS01_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_MAXSTREAM_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_PHI_FISCO_PID) },
- 	{ USB_DEVICE(TML_VID, TML_USB_SERIAL_PID) },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index 219b199..d27d7d7 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -784,6 +784,7 @@
- #define RTSYSTEMS_VID			0x2100	/* Vendor ID */
- #define RTSYSTEMS_SERIAL_VX7_PID	0x9e52	/* Serial converter for VX-7 Radios using FT232RL */
- #define RTSYSTEMS_CT29B_PID		0x9e54	/* CT29B Radio Cable */
-+#define RTSYSTEMS_RTS01_PID		0x9e57	/* USB-RTS01 Radio Cable */
- 
- 
- /*
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0048-USB-serial-cp210x-add-Optris-MS-Pro-usb-id.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0048-USB-serial-cp210x-add-Optris-MS-Pro-usb-id.patch
deleted file mode 100644
index 276c640..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0048-USB-serial-cp210x-add-Optris-MS-Pro-usb-id.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From e7e29e6887d233e82b4dae59804228688370bcfa Mon Sep 17 00:00:00 2001
-From: Mikko Tuumanen <mikko.tuumanen at qemsoftware.com>
-Date: Fri, 1 Jun 2012 11:28:55 +0300
-Subject: [PATCH 48/67] USB: serial: cp210x: add Optris MS Pro usb id
-
-commit 5bbfa6f427c1d7244a5ee154ab8fa37265a5e049 upstream.
-
-Signed-off-by: Mikko Tuumanen <mikko.tuumanen at qemsoftware.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/cp210x.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index f2c57e0..aa0c43f 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -82,6 +82,7 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x10C4, 0x8066) }, /* Argussoft In-System Programmer */
- 	{ USB_DEVICE(0x10C4, 0x806F) }, /* IMS USB to RS422 Converter Cable */
- 	{ USB_DEVICE(0x10C4, 0x807A) }, /* Crumb128 board */
-+	{ USB_DEVICE(0x10C4, 0x80C4) }, /* Cygnal Integrated Products, Inc., Optris infrared thermometer */
- 	{ USB_DEVICE(0x10C4, 0x80CA) }, /* Degree Controls Inc */
- 	{ USB_DEVICE(0x10C4, 0x80DD) }, /* Tracient RFID */
- 	{ USB_DEVICE(0x10C4, 0x80F6) }, /* Suunto sports instrument */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0049-USB-serial-sierra-Add-support-for-Sierra-Wireless-Ai.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0049-USB-serial-sierra-Add-support-for-Sierra-Wireless-Ai.patch
deleted file mode 100644
index 2932333..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0049-USB-serial-sierra-Add-support-for-Sierra-Wireless-Ai.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 73b49603c6b6e058eeff4bea1866156fd35847d1 Mon Sep 17 00:00:00 2001
-From: Tom Cassidy <tomas.cassidy at gmail.com>
-Date: Wed, 6 Jun 2012 17:08:48 +1000
-Subject: [PATCH 49/67] USB: serial: sierra: Add support for Sierra Wireless
- AirCard 320U modem
-
-commit 19a3dd1575e954e8c004413bee3e12d3962f2525 upstream.
-
-Add support for Sierra Wireless AirCard 320U modem
-
-Signed-off-by: Tomas Cassidy <tomas.cassidy at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/sierra.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/usb/serial/sierra.c b/drivers/usb/serial/sierra.c
-index e093585..535d087 100644
---- a/drivers/usb/serial/sierra.c
-+++ b/drivers/usb/serial/sierra.c
-@@ -304,6 +304,10 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x1199, 0x68A3), 	/* Sierra Wireless Direct IP modems */
- 	  .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
- 	},
-+	/* AT&T Direct IP LTE modems */
-+	{ USB_DEVICE_AND_INTERFACE_INFO(0x0F3D, 0x68AA, 0xFF, 0xFF, 0xFF),
-+	  .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
-+	},
- 	{ USB_DEVICE(0x0f3d, 0x68A3), 	/* Airprime/Sierra Wireless Direct IP modems */
- 	  .driver_info = (kernel_ulong_t)&direct_ip_interface_blacklist
- 	},
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0050-USB-option-Updated-Huawei-K4605-has-better-id.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0050-USB-option-Updated-Huawei-K4605-has-better-id.patch
deleted file mode 100644
index 0685a5c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0050-USB-option-Updated-Huawei-K4605-has-better-id.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 547f4fcdd71718e4522557b1d9210d11ef00d17e Mon Sep 17 00:00:00 2001
-From: Andrew Bird <ajb at spheresystems.co.uk>
-Date: Mon, 28 May 2012 12:43:06 +0100
-Subject: [PATCH 50/67] USB: option: Updated Huawei K4605 has better id
-
-commit 42ca7da1c2363dbef4ba1b6917c4c02274b6a5e2 upstream.
-
-Later firmwares for this device now have proper subclass and
-protocol info so we can identify it nicely without needing to use
-the blacklist. I'm not removing the old 0xff matching as there
-may be devices in the field that still need that.
-
-Signed-off-by: Andrew Bird <ajb at spheresystems.co.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index cbe3451..ef57b1e 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -666,6 +666,8 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3806, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t) &huawei_cdc12_blacklist },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0x01, 0x31) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K4605, 0xff, 0x01, 0x32) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x31) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3770, 0xff, 0x02, 0x32) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(HUAWEI_VENDOR_ID, HUAWEI_PRODUCT_K3771, 0xff, 0x02, 0x31) },
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0051-USB-mct_u232-Fix-incorrect-TIOCMSET-return.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0051-USB-mct_u232-Fix-incorrect-TIOCMSET-return.patch
deleted file mode 100644
index 3c0c6a4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0051-USB-mct_u232-Fix-incorrect-TIOCMSET-return.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 1c51f7fd275092f5a0aa6063a04711bc5d0a2ede Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Tue, 22 May 2012 20:45:13 +0100
-Subject: [PATCH 51/67] USB: mct_u232: Fix incorrect TIOCMSET return
-
-commit 1aa3c63cf0a79153ee13c8f82e4eb6c40b66a161 upstream.
-
-The low level helper returns 1 on success. The ioctl should however return
-0. As this is the only user of the helper return, make the helper return 0 or
-an error code.
-
-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=43009
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/mct_u232.c |   13 ++++++++-----
- 1 file changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/serial/mct_u232.c b/drivers/usb/serial/mct_u232.c
-index ba0d287..42de17b 100644
---- a/drivers/usb/serial/mct_u232.c
-+++ b/drivers/usb/serial/mct_u232.c
-@@ -359,13 +359,16 @@ static int mct_u232_set_modem_ctrl(struct usb_serial *serial,
- 			MCT_U232_SET_REQUEST_TYPE,
- 			0, 0, buf, MCT_U232_SET_MODEM_CTRL_SIZE,
- 			WDR_TIMEOUT);
--	if (rc < 0)
--		dev_err(&serial->dev->dev,
--			"Set MODEM CTRL 0x%x failed (error = %d)\n", mcr, rc);
-+	kfree(buf);
-+
- 	dbg("set_modem_ctrl: state=0x%x ==> mcr=0x%x", control_state, mcr);
- 
--	kfree(buf);
--	return rc;
-+	if (rc < 0) {
-+		dev_err(&serial->dev->dev,
-+			"Set MODEM CTRL 0x%x failed (error = %d)\n", mcr, rc);
-+		return rc;
-+	}
-+	return 0;
- } /* mct_u232_set_modem_ctrl */
- 
- static int mct_u232_get_modem_stat(struct usb_serial *serial,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0052-USB-option-fix-port-data-abuse.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0052-USB-option-fix-port-data-abuse.patch
deleted file mode 100644
index 7e8970a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0052-USB-option-fix-port-data-abuse.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From 34491f4f5c53bc499adfe6eec7c146592f295bed Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Tue, 29 May 2012 17:57:52 +0200
-Subject: [PATCH 52/67] USB: option: fix port-data abuse
-
-commit 4273f9878b0a8271df055e3c8f2e7f08c6a4a2f4 upstream.
-
-Commit 8b4c6a3ab596961b78465 ("USB: option: Use generic USB wwan code")
-moved option port-data allocation to usb_wwan_startup but still cast the
-port data to the old struct...
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |   34 +++-------------------------------
- 1 file changed, 3 insertions(+), 31 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index ef57b1e..5be3915 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -1269,35 +1269,6 @@ static struct usb_serial_driver option_1port_device = {
- 
- static int debug;
- 
--/* per port private data */
--
--#define N_IN_URB 4
--#define N_OUT_URB 4
--#define IN_BUFLEN 4096
--#define OUT_BUFLEN 4096
--
--struct option_port_private {
--	/* Input endpoints and buffer for this port */
--	struct urb *in_urbs[N_IN_URB];
--	u8 *in_buffer[N_IN_URB];
--	/* Output endpoints and buffer for this port */
--	struct urb *out_urbs[N_OUT_URB];
--	u8 *out_buffer[N_OUT_URB];
--	unsigned long out_busy;		/* Bit vector of URBs in use */
--	int opened;
--	struct usb_anchor delayed;
--
--	/* Settings for the port */
--	int rts_state;	/* Handshaking pins (outputs) */
--	int dtr_state;
--	int cts_state;	/* Handshaking pins (inputs) */
--	int dsr_state;
--	int dcd_state;
--	int ri_state;
--
--	unsigned long tx_start_time[N_OUT_URB];
--};
--
- /* Functions used by new usb-serial code. */
- static int __init option_init(void)
- {
-@@ -1400,7 +1371,8 @@ static void option_instat_callback(struct urb *urb)
- 	int err;
- 	int status = urb->status;
- 	struct usb_serial_port *port =  urb->context;
--	struct option_port_private *portdata = usb_get_serial_port_data(port);
-+	struct usb_wwan_port_private *portdata =
-+					usb_get_serial_port_data(port);
- 
- 	dbg("%s", __func__);
- 	dbg("%s: urb %p port %p has data %p", __func__, urb, port, portdata);
-@@ -1461,7 +1433,7 @@ static int option_send_setup(struct usb_serial_port *port)
- 	struct usb_serial *serial = port->serial;
- 	struct usb_wwan_intf_private *intfdata =
- 		(struct usb_wwan_intf_private *) serial->private;
--	struct option_port_private *portdata;
-+	struct usb_wwan_port_private *portdata;
- 	int ifNum = serial->interface->cur_altsetting->desc.bInterfaceNumber;
- 	int val = 0;
- 	dbg("%s", __func__);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0053-USB-option-fix-memory-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0053-USB-option-fix-memory-leak.patch
deleted file mode 100644
index 3b0f86d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0053-USB-option-fix-memory-leak.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 84fb397f8fc0802c2f0422044a4c9cd34f480b44 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Tue, 29 May 2012 18:22:48 +0200
-Subject: [PATCH 53/67] USB: option: fix memory leak
-
-commit b9c3aab315b51f81649a0d737c4c73783fbd8de0 upstream.
-
-Fix memory leak introduced by commit 383cedc3bb435de7a2 ("USB: serial:
-full autosuspend support for the option driver") which allocates
-usb-serial data but never frees it.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |   12 +++++++++++-
- 1 file changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 5be3915..4bd2b85 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -47,6 +47,7 @@
- /* Function prototypes */
- static int  option_probe(struct usb_serial *serial,
- 			const struct usb_device_id *id);
-+static void option_release(struct usb_serial *serial);
- static int option_send_setup(struct usb_serial_port *port);
- static void option_instat_callback(struct urb *urb);
- 
-@@ -1259,7 +1260,7 @@ static struct usb_serial_driver option_1port_device = {
- 	.ioctl             = usb_wwan_ioctl,
- 	.attach            = usb_wwan_startup,
- 	.disconnect        = usb_wwan_disconnect,
--	.release           = usb_wwan_release,
-+	.release           = option_release,
- 	.read_int_callback = option_instat_callback,
- #ifdef CONFIG_PM
- 	.suspend           = usb_wwan_suspend,
-@@ -1366,6 +1367,15 @@ static int option_probe(struct usb_serial *serial,
- 	return 0;
- }
- 
-+static void option_release(struct usb_serial *serial)
-+{
-+	struct usb_wwan_intf_private *priv = usb_get_serial_data(serial);
-+
-+	usb_wwan_release(serial);
-+
-+	kfree(priv);
-+}
-+
- static void option_instat_callback(struct urb *urb)
- {
- 	int err;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0054-USB-option-add-more-YUGA-device-ids.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0054-USB-option-add-more-YUGA-device-ids.patch
deleted file mode 100644
index 750f0cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0054-USB-option-add-more-YUGA-device-ids.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 8d06ef9e804169ec35e4b67ae24e8712b0fa87bb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?=E8=AF=B4=E4=B8=8D=E5=BE=97?= <gavin.kx at qq.com>
-Date: Mon, 28 May 2012 21:31:29 +0800
-Subject: [PATCH 54/67] USB: option: add more YUGA device ids
-
-commit 0ef0be15fd2564767f114c249fc4af704d8e16f4 upstream.
-
-Signed-off-by: gavin zhu <gavin.zhu at qq.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |   44 ++++++++++++++++++++++++++-----------------
- 1 file changed, 27 insertions(+), 17 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 4bd2b85..61d6c31 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -426,7 +426,7 @@ static void option_instat_callback(struct urb *urb);
- #define SAMSUNG_VENDOR_ID                       0x04e8
- #define SAMSUNG_PRODUCT_GT_B3730                0x6889
- 
--/* YUGA products  www.yuga-info.com*/
-+/* YUGA products  www.yuga-info.com gavin.kx at qq.com */
- #define YUGA_VENDOR_ID				0x257A
- #define YUGA_PRODUCT_CEM600			0x1601
- #define YUGA_PRODUCT_CEM610			0x1602
-@@ -443,6 +443,8 @@ static void option_instat_callback(struct urb *urb);
- #define YUGA_PRODUCT_CEU516			0x160C
- #define YUGA_PRODUCT_CEU528			0x160D
- #define YUGA_PRODUCT_CEU526			0x160F
-+#define YUGA_PRODUCT_CEU881			0x161F
-+#define YUGA_PRODUCT_CEU882			0x162F
- 
- #define YUGA_PRODUCT_CWM600			0x2601
- #define YUGA_PRODUCT_CWM610			0x2602
-@@ -458,23 +460,26 @@ static void option_instat_callback(struct urb *urb);
- #define YUGA_PRODUCT_CWU518			0x260B
- #define YUGA_PRODUCT_CWU516			0x260C
- #define YUGA_PRODUCT_CWU528			0x260D
-+#define YUGA_PRODUCT_CWU581			0x260E
- #define YUGA_PRODUCT_CWU526			0x260F
--
--#define YUGA_PRODUCT_CLM600			0x2601
--#define YUGA_PRODUCT_CLM610			0x2602
--#define YUGA_PRODUCT_CLM500			0x2603
--#define YUGA_PRODUCT_CLM510			0x2604
--#define YUGA_PRODUCT_CLM800			0x2605
--#define YUGA_PRODUCT_CLM900			0x2606
--
--#define YUGA_PRODUCT_CLU718			0x2607
--#define YUGA_PRODUCT_CLU716			0x2608
--#define YUGA_PRODUCT_CLU728			0x2609
--#define YUGA_PRODUCT_CLU726			0x260A
--#define YUGA_PRODUCT_CLU518			0x260B
--#define YUGA_PRODUCT_CLU516			0x260C
--#define YUGA_PRODUCT_CLU528			0x260D
--#define YUGA_PRODUCT_CLU526			0x260F
-+#define YUGA_PRODUCT_CWU582			0x261F
-+#define YUGA_PRODUCT_CWU583			0x262F
-+
-+#define YUGA_PRODUCT_CLM600			0x3601
-+#define YUGA_PRODUCT_CLM610			0x3602
-+#define YUGA_PRODUCT_CLM500			0x3603
-+#define YUGA_PRODUCT_CLM510			0x3604
-+#define YUGA_PRODUCT_CLM800			0x3605
-+#define YUGA_PRODUCT_CLM900			0x3606
-+
-+#define YUGA_PRODUCT_CLU718			0x3607
-+#define YUGA_PRODUCT_CLU716			0x3608
-+#define YUGA_PRODUCT_CLU728			0x3609
-+#define YUGA_PRODUCT_CLU726			0x360A
-+#define YUGA_PRODUCT_CLU518			0x360B
-+#define YUGA_PRODUCT_CLU516			0x360C
-+#define YUGA_PRODUCT_CLU528			0x360D
-+#define YUGA_PRODUCT_CLU526			0x360F
- 
- /* Viettel products */
- #define VIETTEL_VENDOR_ID			0x2262
-@@ -1210,6 +1215,11 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU516) },
- 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU528) },
- 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU526) },
-+	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU881) },
-+	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CEU882) },
-+	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU581) },
-+	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU582) },
-+	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CWU583) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0055-target-Return-error-to-initiator-if-SET-TARGET-PORT-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0055-target-Return-error-to-initiator-if-SET-TARGET-PORT-.patch
deleted file mode 100644
index 6102fca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0055-target-Return-error-to-initiator-if-SET-TARGET-PORT-.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From c9d1a254f6f1c91f6d43d9ec46d7d1d76f2f82ee Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 4 Jun 2012 23:24:51 -0700
-Subject: [PATCH 55/67] target: Return error to initiator if SET TARGET PORT
- GROUPS emulation fails
-
-commit 59e4f541baf728dbb426949bfa9f6862387ffd0e upstream.
-
-The error paths in target_emulate_set_target_port_groups() are all
-essentially "rc = -EINVAL; goto out;" but the code at "out:" ignores
-rc and always returns success.  This means that even if eg explicit
-ALUA is turned off, the initiator will always see a good SCSI status
-for SET TARGET PORT GROUPS.
-
-Fix this by returning rc as is intended.  It appears this bug was
-added by the following patch:
-
-commit 05d1c7c0d0db4cc25548d9aadebb416888a82327
-Author: Andy Grover <agrover at redhat.com>
-Date:   Wed Jul 20 19:13:28 2011 +0000
-
-    target: Make all control CDBs scatter-gather
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Cc: Andy Grover <agrover at redhat.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-[bwh: Backported to 3.2: we have transport_complete_task()
- and not target_complete_cmd()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_alua.c |    8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
-index 5b05744..0364ca2 100644
---- a/drivers/target/target_core_alua.c
-+++ b/drivers/target/target_core_alua.c
-@@ -352,9 +352,11 @@ int target_emulate_set_target_port_groups(struct se_task *task)
- 
- out:
- 	transport_kunmap_data_sg(cmd);
--	task->task_scsi_status = GOOD;
--	transport_complete_task(task, 1);
--	return 0;
-+	if (!rc) {
-+		task->task_scsi_status = GOOD;
-+		transport_complete_task(task, 1);
-+	}
-+	return rc;
- }
- 
- static inline int core_alua_state_nonoptimized(
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0056-USB-add-NO_D3_DURING_SLEEP-flag-and-revert-151b61284.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0056-USB-add-NO_D3_DURING_SLEEP-flag-and-revert-151b61284.patch
deleted file mode 100644
index 1231863..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0056-USB-add-NO_D3_DURING_SLEEP-flag-and-revert-151b61284.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From edf1db1d2784e8b11a07eb3e6b7efb3cb45291ae Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Wed, 13 Jun 2012 11:20:19 -0400
-Subject: [PATCH 56/67] USB: add NO_D3_DURING_SLEEP flag and revert
- 151b61284776be2
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit c2fb8a3fa25513de8fedb38509b1f15a5bbee47b upstream.
-
-This patch (as1558) fixes a problem affecting several ASUS computers:
-The machine crashes or corrupts memory when going into suspend if the
-ehci-hcd driver is bound to any controllers.  Users have been forced
-to unbind or unload ehci-hcd before putting their systems to sleep.
-
-After extensive testing, it was determined that the machines don't
-like going into suspend when any EHCI controllers are in the PCI D3
-power state.  Presumably this is a firmware bug, but there's nothing
-we can do about it except to avoid putting the controllers in D3
-during system sleep.
-
-The patch adds a new flag to indicate whether the problem is present,
-and avoids changing the controller's power state if the flag is set.
-Runtime suspend is unaffected; this matters only for system suspend.
-However as a side effect, the controller will not respond to remote
-wakeup requests while the system is asleep.  Hence USB wakeup is not
-functional -- but of course, this is already true in the current state
-of affairs.
-
-A similar patch has already been applied as commit
-151b61284776be2d6f02d48c23c3625678960b97 (USB: EHCI: fix crash during
-suspend on ASUS computers).  The patch supersedes that one and reverts
-it.  There are two differences:
-
-	The old patch added the flag at the USB level; this patch
-	adds it at the PCI level.
-
-	The old patch applied to all chipsets with the same vendor,
-	subsystem vendor, and product IDs; this patch makes an
-	exception for a known-good system (based on DMI information).
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Tested-by: Dâniel Fraga <fragabr at gmail.com>
-Tested-by: Andrey Rahmatullin <wrar at wrar.name>
-Tested-by: Steven Rostedt <rostedt at goodmis.org>
-Reviewed-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/pci/pci.c           |    5 +++++
- drivers/pci/quirks.c        |   26 ++++++++++++++++++++++++++
- drivers/usb/core/hcd-pci.c  |    9 ---------
- drivers/usb/host/ehci-pci.c |    8 --------
- include/linux/pci.h         |    2 ++
- include/linux/usb/hcd.h     |    2 --
- 6 files changed, 33 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
-index 6d4a531..e5b75eb 100644
---- a/drivers/pci/pci.c
-+++ b/drivers/pci/pci.c
-@@ -1689,6 +1689,11 @@ int pci_prepare_to_sleep(struct pci_dev *dev)
- 	if (target_state == PCI_POWER_ERROR)
- 		return -EIO;
- 
-+	/* Some devices mustn't be in D3 during system sleep */
-+	if (target_state == PCI_D3hot &&
-+			(dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP))
-+		return 0;
-+
- 	pci_enable_wake(dev, target_state, device_may_wakeup(&dev->dev));
- 
- 	error = pci_set_power_state(dev, target_state);
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 78fda9c..3c56fec 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -2940,6 +2940,32 @@ static void __devinit disable_igfx_irq(struct pci_dev *dev)
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq);
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
- 
-+/*
-+ * The Intel 6 Series/C200 Series chipset's EHCI controllers on many
-+ * ASUS motherboards will cause memory corruption or a system crash
-+ * if they are in D3 while the system is put into S3 sleep.
-+ */
-+static void __devinit asus_ehci_no_d3(struct pci_dev *dev)
-+{
-+	const char *sys_info;
-+	static const char good_Asus_board[] = "P8Z68-V";
-+
-+	if (dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP)
-+		return;
-+	if (dev->subsystem_vendor != PCI_VENDOR_ID_ASUSTEK)
-+		return;
-+	sys_info = dmi_get_system_info(DMI_BOARD_NAME);
-+	if (sys_info && memcmp(sys_info, good_Asus_board,
-+			sizeof(good_Asus_board) - 1) == 0)
-+		return;
-+
-+	dev_info(&dev->dev, "broken D3 during system sleep on ASUS\n");
-+	dev->dev_flags |= PCI_DEV_FLAGS_NO_D3_DURING_SLEEP;
-+	device_set_wakeup_capable(&dev->dev, false);
-+}
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c26, asus_ehci_no_d3);
-+DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c2d, asus_ehci_no_d3);
-+
- static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
- 			  struct pci_fixup *end)
- {
-diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
-index 5f1404a..61d08dd 100644
---- a/drivers/usb/core/hcd-pci.c
-+++ b/drivers/usb/core/hcd-pci.c
-@@ -495,15 +495,6 @@ static int hcd_pci_suspend_noirq(struct device *dev)
- 
- 	pci_save_state(pci_dev);
- 
--	/*
--	 * Some systems crash if an EHCI controller is in D3 during
--	 * a sleep transition.  We have to leave such controllers in D0.
--	 */
--	if (hcd->broken_pci_sleep) {
--		dev_dbg(dev, "Staying in PCI D0\n");
--		return retval;
--	}
--
- 	/* If the root hub is dead rather than suspended, disallow remote
- 	 * wakeup.  usb_hc_died() should ensure that both hosts are marked as
- 	 * dying, so we only need to check the primary roothub.
-diff --git a/drivers/usb/host/ehci-pci.c b/drivers/usb/host/ehci-pci.c
-index ee85e81..a79e64b 100644
---- a/drivers/usb/host/ehci-pci.c
-+++ b/drivers/usb/host/ehci-pci.c
-@@ -144,14 +144,6 @@ static int ehci_pci_setup(struct usb_hcd *hcd)
- 			hcd->has_tt = 1;
- 			tdi_reset(ehci);
- 		}
--		if (pdev->subsystem_vendor == PCI_VENDOR_ID_ASUSTEK) {
--			/* EHCI #1 or #2 on 6 Series/C200 Series chipset */
--			if (pdev->device == 0x1c26 || pdev->device == 0x1c2d) {
--				ehci_info(ehci, "broken D3 during system sleep on ASUS\n");
--				hcd->broken_pci_sleep = 1;
--				device_set_wakeup_capable(&pdev->dev, false);
--			}
--		}
- 		break;
- 	case PCI_VENDOR_ID_TDI:
- 		if (pdev->device == PCI_DEVICE_ID_TDI_EHCI) {
-diff --git a/include/linux/pci.h b/include/linux/pci.h
-index 7cda65b..c0cfa0d 100644
---- a/include/linux/pci.h
-+++ b/include/linux/pci.h
-@@ -176,6 +176,8 @@ enum pci_dev_flags {
- 	PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t) 2,
- 	/* Provide indication device is assigned by a Virtual Machine Manager */
- 	PCI_DEV_FLAGS_ASSIGNED = (__force pci_dev_flags_t) 4,
-+	/* Device causes system crash if in D3 during S3 sleep */
-+	PCI_DEV_FLAGS_NO_D3_DURING_SLEEP = (__force pci_dev_flags_t) 8,
- };
- 
- enum pci_irq_reroute_variant {
-diff --git a/include/linux/usb/hcd.h b/include/linux/usb/hcd.h
-index 64cec8d..03354d5 100644
---- a/include/linux/usb/hcd.h
-+++ b/include/linux/usb/hcd.h
-@@ -128,8 +128,6 @@ struct usb_hcd {
- 	unsigned		wireless:1;	/* Wireless USB HCD */
- 	unsigned		authorized_default:1;
- 	unsigned		has_tt:1;	/* Integrated TT in root hub */
--	unsigned		broken_pci_sleep:1;	/* Don't put the
--			controller in PCI-D3 for system sleep */
- 
- 	int			irq;		/* irq allocated */
- 	void __iomem		*regs;		/* device memory/io */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0057-USB-serial-Enforce-USB-driver-and-USB-serial-driver-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0057-USB-serial-Enforce-USB-driver-and-USB-serial-driver-.patch
deleted file mode 100644
index abcb4c9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0057-USB-serial-Enforce-USB-driver-and-USB-serial-driver-.patch
+++ /dev/null
@@ -1,162 +0,0 @@
-From 445ae7e401ef25e383d9784a4602b815b2a580e1 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Wed, 30 May 2012 10:00:14 +0200
-Subject: [PATCH 57/67] USB: serial: Enforce USB driver and USB serial driver
- match
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 954c3f8a5f1b7716be9eee978b3bc85bae92d7c8 upstream.
-
-We need to make sure that the USB serial driver we find
-matches the USB driver whose probe we are currently
-executing. Otherwise we will end up with USB serial
-devices bound to the correct serial driver but wrong
-USB driver.
-
-An example of such cross-probing, where the usbserial_generic
-USB driver has found the sierra serial driver:
-
-May 29 18:26:15 nemi kernel: [ 4442.559246] usbserial_generic 4-4:1.0: Sierra USB modem converter detected
-May 29 18:26:20 nemi kernel: [ 4447.556747] usbserial_generic 4-4:1.2: Sierra USB modem converter detected
-May 29 18:26:25 nemi kernel: [ 4452.557288] usbserial_generic 4-4:1.3: Sierra USB modem converter detected
-
-sysfs view of the same problem:
-
-bjorn at nemi:~$ ls -l /sys/bus/usb/drivers/sierra/
-total 0
---w------- 1 root root 4096 May 29 18:23 bind
-lrwxrwxrwx 1 root root    0 May 29 18:23 module -> ../../../../module/usbserial
---w------- 1 root root 4096 May 29 18:23 uevent
---w------- 1 root root 4096 May 29 18:23 unbind
-bjorn at nemi:~$ ls -l /sys/bus/usb-serial/drivers/sierra/
-total 0
---w------- 1 root root 4096 May 29 18:23 bind
-lrwxrwxrwx 1 root root    0 May 29 18:23 module -> ../../../../module/sierra
--rw-r--r-- 1 root root 4096 May 29 18:23 new_id
-lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0/ttyUSB0
-lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB1 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2/ttyUSB1
-lrwxrwxrwx 1 root root    0 May 29 18:32 ttyUSB2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3/ttyUSB2
---w------- 1 root root 4096 May 29 18:23 uevent
---w------- 1 root root 4096 May 29 18:23 unbind
-
-bjorn at nemi:~$ ls -l /sys/bus/usb/drivers/usbserial_generic/
-total 0
-lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.0 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.0
-lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.2 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.2
-lrwxrwxrwx 1 root root    0 May 29 18:33 4-4:1.3 -> ../../../../devices/pci0000:00/0000:00:1d.7/usb4/4-4/4-4:1.3
---w------- 1 root root 4096 May 29 18:33 bind
-lrwxrwxrwx 1 root root    0 May 29 18:33 module -> ../../../../module/usbserial
---w------- 1 root root 4096 May 29 18:22 uevent
---w------- 1 root root 4096 May 29 18:33 unbind
-bjorn at nemi:~$ ls -l /sys/bus/usb-serial/drivers/generic/
-total 0
---w------- 1 root root 4096 May 29 18:33 bind
-lrwxrwxrwx 1 root root    0 May 29 18:33 module -> ../../../../module/usbserial
--rw-r--r-- 1 root root 4096 May 29 18:33 new_id
---w------- 1 root root 4096 May 29 18:22 uevent
---w------- 1 root root 4096 May 29 18:33 unbind
-
-So we end up with a mismatch between the USB driver and the
-USB serial driver.  The reason for the above is simple: The
-USB driver probe will succeed if *any* registered serial
-driver matches, and will use that serial driver for all
-serial driver functions.
-
-This makes ref counting go wrong. We count the USB driver
-as used, but not the USB serial driver.  This may result
-in Oops'es as demonstrated by Johan Hovold <jhovold at gmail.com>:
-
-[11811.646396] drivers/usb/serial/usb-serial.c: get_free_serial 1
-[11811.646443] drivers/usb/serial/usb-serial.c: get_free_serial - minor base = 0
-[11811.646460] drivers/usb/serial/usb-serial.c: usb_serial_probe - registering ttyUSB0
-[11811.646766] usb 6-1: pl2303 converter now attached to ttyUSB0
-[11812.264197] USB Serial deregistering driver FTDI USB Serial Device
-[11812.264865] usbcore: deregistering interface driver ftdi_sio
-[11812.282180] USB Serial deregistering driver pl2303
-[11812.283141] pl2303 ttyUSB0: pl2303 converter now disconnected from ttyUSB0
-[11812.283272] usbcore: deregistering interface driver pl2303
-[11812.301056] USB Serial deregistering driver generic
-[11812.301186] usbcore: deregistering interface driver usbserial_generic
-[11812.301259] drivers/usb/serial/usb-serial.c: usb_serial_disconnect
-[11812.301823] BUG: unable to handle kernel paging request at f8e7438c
-[11812.301845] IP: [<f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial]
-[11812.301871] *pde = 357ef067 *pte = 00000000
-[11812.301957] Oops: 0000 [#1] PREEMPT SMP
-[11812.301983] Modules linked in: usbserial(-) [last unloaded: pl2303]
-[11812.302008]
-[11812.302019] Pid: 1323, comm: modprobe Tainted: G        W    3.4.0-rc7+ #101 Dell Inc. Vostro 1520/0T816J
-[11812.302115] EIP: 0060:[<f8e38445>] EFLAGS: 00010246 CPU: 1
-[11812.302130] EIP is at usb_serial_disconnect+0xb5/0x100 [usbserial]
-[11812.302141] EAX: f508a180 EBX: f508a180 ECX: 00000000 EDX: f8e74300
-[11812.302151] ESI: f5050800 EDI: 00000001 EBP: f5141e78 ESP: f5141e58
-[11812.302160]  DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068
-[11812.302170] CR0: 8005003b CR2: f8e7438c CR3: 34848000 CR4: 000007d0
-[11812.302180] DR0: 00000000 DR1: 00000000 DR2: 00000000 DR3: 00000000
-[11812.302189] DR6: ffff0ff0 DR7: 00000400
-[11812.302199] Process modprobe (pid: 1323, ti=f5140000 task=f61e2bc0 task.ti=f5140000)
-[11812.302209] Stack:
-[11812.302216]  f8e3be0f f8e3b29c f8e3ae00 00000000 f513641c f5136400 f513641c f507a540
-[11812.302325]  f5141e98 c133d2c1 00000000 00000000 f509c400 f513641c f507a590 f5136450
-[11812.302372]  f5141ea8 c12f0344 f513641c f507a590 f5141ebc c12f0c67 00000000 f507a590
-[11812.302419] Call Trace:
-[11812.302439]  [<c133d2c1>] usb_unbind_interface+0x51/0x190
-[11812.302456]  [<c12f0344>] __device_release_driver+0x64/0xb0
-[11812.302469]  [<c12f0c67>] driver_detach+0x97/0xa0
-[11812.302483]  [<c12f001c>] bus_remove_driver+0x6c/0xe0
-[11812.302500]  [<c145938d>] ? __mutex_unlock_slowpath+0xcd/0x140
-[11812.302514]  [<c12f0ff9>] driver_unregister+0x49/0x80
-[11812.302528]  [<c1457df6>] ? printk+0x1d/0x1f
-[11812.302540]  [<c133c50d>] usb_deregister+0x5d/0xb0
-[11812.302557]  [<f8e37c55>] ? usb_serial_deregister+0x45/0x50 [usbserial]
-[11812.302575]  [<f8e37c8d>] usb_serial_deregister_drivers+0x2d/0x40 [usbserial]
-[11812.302593]  [<f8e3a6e2>] usb_serial_generic_deregister+0x12/0x20 [usbserial]
-[11812.302611]  [<f8e3acf0>] usb_serial_exit+0x8/0x32 [usbserial]
-[11812.302716]  [<c1080b48>] sys_delete_module+0x158/0x260
-[11812.302730]  [<c110594e>] ? mntput+0x1e/0x30
-[11812.302746]  [<c145c3c3>] ? sysenter_exit+0xf/0x18
-[11812.302746]  [<c107777c>] ? trace_hardirqs_on_caller+0xec/0x170
-[11812.302746]  [<c145c390>] sysenter_do_call+0x12/0x36
-[11812.302746] Code: 24 02 00 00 e8 dd f3 20 c8 f6 86 74 02 00 00 02 74 b4 8d 86 4c 02 00 00 47 e8 78 55 4b c8 0f b6 43 0e 39 f8 7f a9 8b 53 04 89 d8 <ff> 92 8c 00 00 00 89 d8 e8 0e ff ff ff 8b 45 f0 c7 44 24 04 2f
-[11812.302746] EIP: [<f8e38445>] usb_serial_disconnect+0xb5/0x100 [usbserial] SS:ESP 0068:f5141e58
-[11812.302746] CR2: 00000000f8e7438c
-
-Fix by only evaluating serial drivers pointing back to the
-USB driver we are currently probing.  This still allows two
-or more drivers to match the same device, running their
-serial driver probes to sort out which one to use.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Reviewed-by: Felipe Balbi <balbi at ti.com>
-Tested-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/usb-serial.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/usb-serial.c b/drivers/usb/serial/usb-serial.c
-index 38d7ebd..8bea45c 100644
---- a/drivers/usb/serial/usb-serial.c
-+++ b/drivers/usb/serial/usb-serial.c
-@@ -669,12 +669,14 @@ exit:
- static struct usb_serial_driver *search_serial_device(
- 					struct usb_interface *iface)
- {
--	const struct usb_device_id *id;
-+	const struct usb_device_id *id = NULL;
- 	struct usb_serial_driver *drv;
-+	struct usb_driver *driver = to_usb_driver(iface->dev.driver);
- 
- 	/* Check if the usb id matches a known device */
- 	list_for_each_entry(drv, &usb_serial_driver_list, driver_list) {
--		id = get_iface_id(drv, iface);
-+		if (drv->usb_driver == driver)
-+			id = get_iface_id(drv, iface);
- 		if (id)
- 			return drv;
- 	}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0058-xhci-Fix-invalid-loop-check-in-xhci_free_tt_info.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0058-xhci-Fix-invalid-loop-check-in-xhci_free_tt_info.patch
deleted file mode 100644
index 6243e98..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0058-xhci-Fix-invalid-loop-check-in-xhci_free_tt_info.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 6007e93797d693599661f4547d329258ec711a9f Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Fri, 1 Jun 2012 10:06:23 +0200
-Subject: [PATCH 58/67] xhci: Fix invalid loop check in xhci_free_tt_info()
-
-commit 46ed8f00d8982e49f8fe2c1a9cea192f640cb3ba upstream.
-
-xhci_free_tt_info() may access the invalid memory when it removes the
-last entry but the list is not empty.  Then tt_next reaches to the
-list head but it still tries to check the tt_info of that entry.
-
-This patch fixes the bug and cleans up the messy code by rewriting
-with a simple list_for_each_entry_safe().
-
-This patch should be backported to kernels as old as 3.2, that contain
-the commit 839c817ce67178ca3c7c7ad534c571bba1e69ebe "xhci: Store
-information about roothubs and TTs."
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Reviewed-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci-mem.c |   39 ++++++++++-----------------------------
- 1 file changed, 10 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index 4232e868..b85eb36 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -693,10 +693,9 @@ static void xhci_free_tt_info(struct xhci_hcd *xhci,
- 		struct xhci_virt_device *virt_dev,
- 		int slot_id)
- {
--	struct list_head *tt;
- 	struct list_head *tt_list_head;
--	struct list_head *tt_next;
--	struct xhci_tt_bw_info *tt_info;
-+	struct xhci_tt_bw_info *tt_info, *next;
-+	bool slot_found = false;
- 
- 	/* If the device never made it past the Set Address stage,
- 	 * it may not have the real_port set correctly.
-@@ -708,34 +707,16 @@ static void xhci_free_tt_info(struct xhci_hcd *xhci,
- 	}
- 
- 	tt_list_head = &(xhci->rh_bw[virt_dev->real_port - 1].tts);
--	if (list_empty(tt_list_head))
--		return;
--
--	list_for_each(tt, tt_list_head) {
--		tt_info = list_entry(tt, struct xhci_tt_bw_info, tt_list);
--		if (tt_info->slot_id == slot_id)
-+	list_for_each_entry_safe(tt_info, next, tt_list_head, tt_list) {
-+		/* Multi-TT hubs will have more than one entry */
-+		if (tt_info->slot_id == slot_id) {
-+			slot_found = true;
-+			list_del(&tt_info->tt_list);
-+			kfree(tt_info);
-+		} else if (slot_found) {
- 			break;
-+		}
- 	}
--	/* Cautionary measure in case the hub was disconnected before we
--	 * stored the TT information.
--	 */
--	if (tt_info->slot_id != slot_id)
--		return;
--
--	tt_next = tt->next;
--	tt_info = list_entry(tt, struct xhci_tt_bw_info,
--			tt_list);
--	/* Multi-TT hubs will have more than one entry */
--	do {
--		list_del(tt);
--		kfree(tt_info);
--		tt = tt_next;
--		if (list_empty(tt_list_head))
--			break;
--		tt_next = tt->next;
--		tt_info = list_entry(tt, struct xhci_tt_bw_info,
--				tt_list);
--	} while (tt_info->slot_id == slot_id);
- }
- 
- int xhci_alloc_tt_info(struct xhci_hcd *xhci,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0059-xhci-Don-t-free-endpoints-in-xhci_mem_cleanup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0059-xhci-Don-t-free-endpoints-in-xhci_mem_cleanup.patch
deleted file mode 100644
index 41ec5ed..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0059-xhci-Don-t-free-endpoints-in-xhci_mem_cleanup.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From fcb37c126483592a507dafef265b134f975a749f Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Fri, 1 Jun 2012 10:06:24 +0200
-Subject: [PATCH 59/67] xhci: Don't free endpoints in xhci_mem_cleanup()
-
-commit 32f1d2c536d0c26c5814cb0e6a0606c42d02fac1 upstream.
-
-This patch fixes a few issues introduced in the recent fix
-[f8a9e72d: USB: fix resource leak in xhci power loss path]
-
-- The endpoints listed in bw table are just links and each entry is an
- array member of dev->eps[].  But the commit above adds a kfree() call
- to these instances, and thus it results in memory corruption.
-
-- It clears only the first entry of rh_bw[], but there can be multiple
-  ports.
-
-- It'd be safer to clear the list_head of ep as well, not only
-  removing from the list, as it's checked in
-  xhci_discover_or_reset_device().
-
-This patch should be backported to kernels as old as 3.2, that contain
-the commit 839c817ce67178ca3c7c7ad534c571bba1e69ebe "xhci: Store
-information about roothubs and TTs."
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Reviewed-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci-mem.c |   35 ++++++++++++++---------------------
- 1 file changed, 14 insertions(+), 21 deletions(-)
-
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index b85eb36..a40ab98 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -1680,17 +1680,9 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- {
- 	struct pci_dev	*pdev = to_pci_dev(xhci_to_hcd(xhci)->self.controller);
- 	struct dev_info	*dev_info, *next;
--	struct list_head *tt_list_head;
--	struct list_head *tt;
--	struct list_head *endpoints;
--	struct list_head *ep, *q;
--	struct xhci_tt_bw_info *tt_info;
--	struct xhci_interval_bw_table *bwt;
--	struct xhci_virt_ep *virt_ep;
--
- 	unsigned long	flags;
- 	int size;
--	int i;
-+	int i, j, num_ports;
- 
- 	/* Free the Event Ring Segment Table and the actual Event Ring */
- 	size = sizeof(struct xhci_erst_entry)*(xhci->erst.num_entries);
-@@ -1747,21 +1739,22 @@ void xhci_mem_cleanup(struct xhci_hcd *xhci)
- 	}
- 	spin_unlock_irqrestore(&xhci->lock, flags);
- 
--	bwt = &xhci->rh_bw->bw_table;
--	for (i = 0; i < XHCI_MAX_INTERVAL; i++) {
--		endpoints = &bwt->interval_bw[i].endpoints;
--		list_for_each_safe(ep, q, endpoints) {
--			virt_ep = list_entry(ep, struct xhci_virt_ep, bw_endpoint_list);
--			list_del(&virt_ep->bw_endpoint_list);
--			kfree(virt_ep);
-+	num_ports = HCS_MAX_PORTS(xhci->hcs_params1);
-+	for (i = 0; i < num_ports; i++) {
-+		struct xhci_interval_bw_table *bwt = &xhci->rh_bw[i].bw_table;
-+		for (j = 0; j < XHCI_MAX_INTERVAL; j++) {
-+			struct list_head *ep = &bwt->interval_bw[j].endpoints;
-+			while (!list_empty(ep))
-+				list_del_init(ep->next);
- 		}
- 	}
- 
--	tt_list_head = &xhci->rh_bw->tts;
--	list_for_each_safe(tt, q, tt_list_head) {
--		tt_info = list_entry(tt, struct xhci_tt_bw_info, tt_list);
--		list_del(tt);
--		kfree(tt_info);
-+	for (i = 0; i < num_ports; i++) {
-+		struct xhci_tt_bw_info *tt, *n;
-+		list_for_each_entry_safe(tt, n, &xhci->rh_bw[i].tts, tt_list) {
-+			list_del(&tt->tt_list);
-+			kfree(tt);
-+		}
- 	}
- 
- 	xhci->num_usb2_ports = 0;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0060-xHCI-Increase-the-timeout-for-controller-save-restor.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0060-xHCI-Increase-the-timeout-for-controller-save-restor.patch
deleted file mode 100644
index 6ca5f78..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0060-xHCI-Increase-the-timeout-for-controller-save-restor.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 989ee831bd73b7de3030e3d01068f4b115f277f9 Mon Sep 17 00:00:00 2001
-From: Andiry Xu <andiry.xu at gmail.com>
-Date: Wed, 13 Jun 2012 10:51:57 +0800
-Subject: [PATCH 60/67] xHCI: Increase the timeout for controller save/restore
- state operation
-
-commit 622eb783fe6ff4c1baa47db16c3a5db97f9e6e50 upstream.
-
-When system software decides to power down the xHC with the intent of
-resuming operation at a later time, it will ask xHC to save the internal
-state and restore it when resume to correctly recover from a power event.
-Two bits are used to enable this operation: Save State and Restore State.
-
-xHCI spec 4.23.2 says software should "Set the Controller Save/Restore
-State flag in the USBCMD register and wait for the Save/Restore State
-Status flag in the USBSTS register to transition to '0'". However, it does
-not define how long software should wait for the SSS/RSS bit to transition
-to 0.
-
-Currently the timeout is set to 1ms. There is bug report
-(https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1002697)
-indicates that the timeout is too short for ASMedia ASM1042 host controller
-to save/restore the state successfully. Increase the timeout to 10ms helps to
-resolve the issue.
-
-This patch should be backported to stable kernels as old as 2.6.37, that
-contain the commit 5535b1d5f8885695c6ded783c692e3c0d0eda8ca "USB: xHCI:
-PCI power management implementation"
-
-Signed-off-by: Andiry Xu <andiry.xu at gmail.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Cc: Ming Lei <ming.lei at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/xhci.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index 4c00606..05f82e9 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -783,8 +783,8 @@ int xhci_suspend(struct xhci_hcd *xhci)
- 	command = xhci_readl(xhci, &xhci->op_regs->command);
- 	command |= CMD_CSS;
- 	xhci_writel(xhci, command, &xhci->op_regs->command);
--	if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10*100)) {
--		xhci_warn(xhci, "WARN: xHC CMD_CSS timeout\n");
-+	if (handshake(xhci, &xhci->op_regs->status, STS_SAVE, 0, 10 * 1000)) {
-+		xhci_warn(xhci, "WARN: xHC save state timeout\n");
- 		spin_unlock_irq(&xhci->lock);
- 		return -ETIMEDOUT;
- 	}
-@@ -836,8 +836,8 @@ int xhci_resume(struct xhci_hcd *xhci, bool hibernated)
- 		command |= CMD_CRS;
- 		xhci_writel(xhci, command, &xhci->op_regs->command);
- 		if (handshake(xhci, &xhci->op_regs->status,
--			      STS_RESTORE, 0, 10*100)) {
--			xhci_dbg(xhci, "WARN: xHC CMD_CSS timeout\n");
-+			      STS_RESTORE, 0, 10 * 1000)) {
-+			xhci_warn(xhci, "WARN: xHC restore state timeout\n");
- 			spin_unlock_irq(&xhci->lock);
- 			return -ETIMEDOUT;
- 		}
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0061-usb-PS3-EHCI-QH-read-work-around.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0061-usb-PS3-EHCI-QH-read-work-around.patch
deleted file mode 100644
index 940cd4c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0061-usb-PS3-EHCI-QH-read-work-around.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 8358979f2727e09ed8658dfbc95fa3ffdbbdac75 Mon Sep 17 00:00:00 2001
-From: Geoff Levand <geoff at infradead.org>
-Date: Tue, 8 Nov 2011 16:01:18 -0800
-Subject: [PATCH 61/67] usb: PS3 EHCI QH read work-around
-
-commit aaa0ef289afe9186f81e2340114ea413eef0492a upstream.
-
-PS3 EHCI HC errata fix 244.  The SCC EHCI HC will not correctly perform QH
-reads that occur near or span a micro-frame boundry.  This is due to a problem
-in the Nak Count Reload Control logic (EHCI Specification 1.0 Section 4.9.1).
-
-The work-around for this problem is for the HC driver to set I=1 (inactive) for
-QHs with H=1 (list head).
-
-Signed-off-by: Geoff Levand <geoff at infradead.org>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/ehci-hcd.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
-index da2f711..64c0d7b 100644
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -620,6 +620,7 @@ static int ehci_init(struct usb_hcd *hcd)
- 	hw = ehci->async->hw;
- 	hw->hw_next = QH_NEXT(ehci, ehci->async->qh_dma);
- 	hw->hw_info1 = cpu_to_hc32(ehci, QH_HEAD);
-+	hw->hw_info1 |= cpu_to_hc32(ehci, (1 << 7));	/* I = 1 */
- 	hw->hw_token = cpu_to_hc32(ehci, QTD_STS_HALT);
- 	hw->hw_qtd_next = EHCI_LIST_END(ehci);
- 	ehci->async->qh_state = QH_STATE_LINKED;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0062-USB-fix-PS3-EHCI-systems.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0062-USB-fix-PS3-EHCI-systems.patch
deleted file mode 100644
index d3476fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0062-USB-fix-PS3-EHCI-systems.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 5ed14fb69997843bfb782a2f742ef8c583e44f4b Mon Sep 17 00:00:00 2001
-From: Ricardo Martins <rasm at fe.up.pt>
-Date: Tue, 22 May 2012 18:02:03 +0100
-Subject: [PATCH 62/67] USB: fix PS3 EHCI systems
-
-commit 4f7a67e2dd49fbfba002c453bc24bf00e701cc71 upstream.
-
-After commit aaa0ef289afe9186f81e2340114ea413eef0492a "PS3 EHCI QH
-read work-around", Terratec Grabby (em28xx) stopped working with AMD
-Geode LX 800 (USB controller AMD CS5536). Since this is a PS3 only
-fix, the following patch adds a conditional block around it.
-
-Signed-off-by: Ricardo Martins <rasm at fe.up.pt>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/host/ehci-hcd.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/host/ehci-hcd.c b/drivers/usb/host/ehci-hcd.c
-index 64c0d7b..339be10 100644
---- a/drivers/usb/host/ehci-hcd.c
-+++ b/drivers/usb/host/ehci-hcd.c
-@@ -620,7 +620,9 @@ static int ehci_init(struct usb_hcd *hcd)
- 	hw = ehci->async->hw;
- 	hw->hw_next = QH_NEXT(ehci, ehci->async->qh_dma);
- 	hw->hw_info1 = cpu_to_hc32(ehci, QH_HEAD);
-+#if defined(CONFIG_PPC_PS3)
- 	hw->hw_info1 |= cpu_to_hc32(ehci, (1 << 7));	/* I = 1 */
-+#endif
- 	hw->hw_token = cpu_to_hc32(ehci, QTD_STS_HALT);
- 	hw->hw_qtd_next = EHCI_LIST_END(ehci);
- 	ehci->async->qh_state = QH_STATE_LINKED;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0063-usb-cdc-acm-fix-devices-not-unthrottled-on-open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0063-usb-cdc-acm-fix-devices-not-unthrottled-on-open.patch
deleted file mode 100644
index 8eab02a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0063-usb-cdc-acm-fix-devices-not-unthrottled-on-open.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d48aade3b822cbd46666d0ef17a646bb5eba2bd3 Mon Sep 17 00:00:00 2001
-From: Otto Meta <otto.patches at sister-shadow.de>
-Date: Wed, 6 Jun 2012 18:46:21 +0200
-Subject: [PATCH 63/67] usb: cdc-acm: fix devices not unthrottled on open
-
-commit 6c4707f3f8c44ec18282e1c014c80e1c257042f9 upstream.
-
-Currently CDC-ACM devices stay throttled when their TTY is closed while
-throttled, stalling further communication attempts after the next open.
-
-Unthrottling during open/activate got lost starting with kernel
-3.0.0 and this patch reintroduces it.
-
-Signed-off-by: Otto Meta <otto.patches at sister-shadow.de>
-Acked-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-acm.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/usb/class/cdc-acm.c b/drivers/usb/class/cdc-acm.c
-index e61d9c4..1094469 100644
---- a/drivers/usb/class/cdc-acm.c
-+++ b/drivers/usb/class/cdc-acm.c
-@@ -498,6 +498,14 @@ static int acm_tty_open(struct tty_struct *tty, struct file *filp)
- 
- 	usb_autopm_put_interface(acm->control);
- 
-+	/*
-+	 * Unthrottle device in case the TTY was closed while throttled.
-+	 */
-+	spin_lock_irq(&acm->read_lock);
-+	acm->throttled = 0;
-+	acm->throttle_req = 0;
-+	spin_unlock_irq(&acm->read_lock);
-+
- 	if (acm_submit_read_urbs(acm, GFP_KERNEL))
- 		goto bail_out;
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0064-USB-fix-gathering-of-interface-associations.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0064-USB-fix-gathering-of-interface-associations.patch
deleted file mode 100644
index 8131498..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0064-USB-fix-gathering-of-interface-associations.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 88948e29878410f75f424d93c132dae0771bbb38 Mon Sep 17 00:00:00 2001
-From: Daniel Mack <zonque at gmail.com>
-Date: Tue, 12 Jun 2012 20:23:52 +0200
-Subject: [PATCH 64/67] USB: fix gathering of interface associations
-
-commit b3a3dd074f7053ef824ad077e5331b52220ceba1 upstream.
-
-TEAC's UD-H01 (and probably other devices) have a gap in the interface
-number allocation of their descriptors:
-
-  Configuration Descriptor:
-    bLength                 9
-    bDescriptorType         2
-    wTotalLength          220
-    bNumInterfaces          3
-    [...]
-    Interface Descriptor:
-      bLength                 9
-      bDescriptorType         4
-      bInterfaceNumber        0
-      bAlternateSetting       0
-      [...]
-    Interface Association:
-      bLength                 8
-      bDescriptorType        11
-      bFirstInterface         2
-      bInterfaceCount         2
-      bFunctionClass          1 Audio
-      bFunctionSubClass       0
-      bFunctionProtocol      32
-      iFunction               4
-    Interface Descriptor:
-      bLength                 9
-      bDescriptorType         4
-      bInterfaceNumber        2
-      bAlternateSetting       0
-      [...]
-
-Once a configuration is selected, usb_set_configuration() walks the
-known interfaces of a given configuration and calls find_iad() on
-each of them to set the interface association pointer the interface
-is included in.
-
-The problem here is that the loop variable is taken for the interface
-number in the comparison logic that gathers the association. Which is
-fine as long as the descriptors are sane.
-
-In the case above, however, the logic gets out of sync and the
-interface association fields of all interfaces beyond the interface
-number gap are wrong.
-
-Fix this by passing the interface's bInterfaceNumber to find_iad()
-instead.
-
-Signed-off-by: Daniel Mack <zonque at gmail.com>
-Reported-by: bEN <ml_all at circa.be>
-Reported-by: Ivan Perrone <ivanperrone at hotmail.com>
-Tested-by: ivan perrone <ivanperrone at hotmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/message.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/core/message.c b/drivers/usb/core/message.c
-index ca717da..ef116a5 100644
---- a/drivers/usb/core/message.c
-+++ b/drivers/usb/core/message.c
-@@ -1803,7 +1803,6 @@ free_interfaces:
- 		intfc = cp->intf_cache[i];
- 		intf->altsetting = intfc->altsetting;
- 		intf->num_altsetting = intfc->num_altsetting;
--		intf->intf_assoc = find_iad(dev, cp, i);
- 		kref_get(&intfc->ref);
- 
- 		alt = usb_altnum_to_altsetting(intf, 0);
-@@ -1816,6 +1815,8 @@ free_interfaces:
- 		if (!alt)
- 			alt = &intf->altsetting[0];
- 
-+		intf->intf_assoc =
-+			find_iad(dev, cp, alt->desc.bInterfaceNumber);
- 		intf->cur_altsetting = alt;
- 		usb_enable_interface(dev, intf, true);
- 		intf->dev.parent = &dev->dev;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0065-swap-fix-shmem-swapping-when-more-than-8-areas.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0065-swap-fix-shmem-swapping-when-more-than-8-areas.patch
deleted file mode 100644
index ebf34f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0065-swap-fix-shmem-swapping-when-more-than-8-areas.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From aa557a3d3043ce3af6fb9349fcb59db12972784d Mon Sep 17 00:00:00 2001
-From: Hugh Dickins <hughd at google.com>
-Date: Fri, 15 Jun 2012 17:55:50 -0700
-Subject: [PATCH 65/67] swap: fix shmem swapping when more than 8 areas
-
-commit 9b15b817f3d62409290fd56fe3cbb076a931bb0a upstream.
-
-Minchan Kim reports that when a system has many swap areas, and tmpfs
-swaps out to the ninth or more, shmem_getpage_gfp()'s attempts to read
-back the page cannot locate it, and the read fails with -ENOMEM.
-
-Whoops.  Yes, I blindly followed read_swap_header()'s pte_to_swp_entry(
-swp_entry_to_pte()) technique for determining maximum usable swap
-offset, without stopping to realize that that actually depends upon the
-pte swap encoding shifting swap offset to the higher bits and truncating
-it there.  Whereas our radix_tree swap encoding leaves offset in the
-lower bits: it's swap "type" (that is, index of swap area) that was
-truncated.
-
-Fix it by reducing the SWP_TYPE_SHIFT() in swapops.h, and removing the
-broken radix_to_swp_entry(swp_to_radix_entry()) from read_swap_header().
-
-This does not reduce the usable size of a swap area any further, it
-leaves it as claimed when making the original commit: no change from 3.0
-on x86_64, nor on i386 without PAE; but 3.0's 512GB is reduced to 128GB
-per swapfile on i386 with PAE.  It's not a change I would have risked
-five years ago, but with x86_64 supported for ten years, I believe it's
-appropriate now.
-
-Hmm, and what if some architecture implements its swap pte with offset
-encoded below type? That would equally break the maximum usable swap
-offset check.  Happily, they all follow the same tradition of encoding
-offset above type, but I'll prepare a check on that for next.
-
-Reported-and-Reviewed-and-Tested-by: Minchan Kim <minchan at kernel.org>
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/swapops.h |    8 +++++---
- mm/swapfile.c           |   12 ++++--------
- 2 files changed, 9 insertions(+), 11 deletions(-)
-
-diff --git a/include/linux/swapops.h b/include/linux/swapops.h
-index 2189d3f..d6955607 100644
---- a/include/linux/swapops.h
-+++ b/include/linux/swapops.h
-@@ -8,13 +8,15 @@
-  * get good packing density in that tree, so the index should be dense in
-  * the low-order bits.
-  *
-- * We arrange the `type' and `offset' fields so that `type' is at the five
-+ * We arrange the `type' and `offset' fields so that `type' is at the seven
-  * high-order bits of the swp_entry_t and `offset' is right-aligned in the
-- * remaining bits.
-+ * remaining bits.  Although `type' itself needs only five bits, we allow for
-+ * shmem/tmpfs to shift it all up a further two bits: see swp_to_radix_entry().
-  *
-  * swp_entry_t's are *never* stored anywhere in their arch-dependent format.
-  */
--#define SWP_TYPE_SHIFT(e)	(sizeof(e.val) * 8 - MAX_SWAPFILES_SHIFT)
-+#define SWP_TYPE_SHIFT(e)	((sizeof(e.val) * 8) - \
-+			(MAX_SWAPFILES_SHIFT + RADIX_TREE_EXCEPTIONAL_SHIFT))
- #define SWP_OFFSET_MASK(e)	((1UL << SWP_TYPE_SHIFT(e)) - 1)
- 
- /*
-diff --git a/mm/swapfile.c b/mm/swapfile.c
-index d3955f2..fad1830 100644
---- a/mm/swapfile.c
-+++ b/mm/swapfile.c
-@@ -1921,24 +1921,20 @@ static unsigned long read_swap_header(struct swap_info_struct *p,
- 
- 	/*
- 	 * Find out how many pages are allowed for a single swap
--	 * device. There are three limiting factors: 1) the number
-+	 * device. There are two limiting factors: 1) the number
- 	 * of bits for the swap offset in the swp_entry_t type, and
- 	 * 2) the number of bits in the swap pte as defined by the
--	 * the different architectures, and 3) the number of free bits
--	 * in an exceptional radix_tree entry. In order to find the
-+	 * different architectures. In order to find the
- 	 * largest possible bit mask, a swap entry with swap type 0
- 	 * and swap offset ~0UL is created, encoded to a swap pte,
- 	 * decoded to a swp_entry_t again, and finally the swap
- 	 * offset is extracted. This will mask all the bits from
- 	 * the initial ~0UL mask that can't be encoded in either
- 	 * the swp_entry_t or the architecture definition of a
--	 * swap pte.  Then the same is done for a radix_tree entry.
-+	 * swap pte.
- 	 */
- 	maxpages = swp_offset(pte_to_swp_entry(
--			swp_entry_to_pte(swp_entry(0, ~0UL))));
--	maxpages = swp_offset(radix_to_swp_entry(
--			swp_to_radix_entry(swp_entry(0, maxpages)))) + 1;
--
-+			swp_entry_to_pte(swp_entry(0, ~0UL)))) + 1;
- 	if (maxpages > swap_header->info.last_page) {
- 		maxpages = swap_header->info.last_page + 1;
- 		/* p->max is an unsigned int: don't overflow it */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0066-drm-radeon-add-some-additional-6xx-7xx-EG-register-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0066-drm-radeon-add-some-additional-6xx-7xx-EG-register-i.patch
deleted file mode 100644
index 8c259c2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0066-drm-radeon-add-some-additional-6xx-7xx-EG-register-i.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 5e599e218c67e5888e56cd171473ac988facb120 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Thu, 14 Jun 2012 22:06:36 +0200
-Subject: [PATCH 66/67] drm/radeon: add some additional 6xx/7xx/EG register
- init
-
-commit b866d1334ba2d544bc575d75357dea6bdcdc7f46 upstream.
-
-- SMX_SAR_CTL0 needs to be programmed correctly to prevent
-problems with memory exports in certain cases.
-- VC_ENHANCE needs to be initialized on 6xx/7xx.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/evergreen.c  |    3 +++
- drivers/gpu/drm/radeon/evergreend.h |    1 +
- drivers/gpu/drm/radeon/r600.c       |    1 +
- drivers/gpu/drm/radeon/r600d.h      |    1 +
- drivers/gpu/drm/radeon/rv770.c      |    5 ++++-
- drivers/gpu/drm/radeon/rv770d.h     |    3 +++
- 6 files changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index dac178b..931f4df 100644
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -2148,6 +2148,9 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
- 	smx_dc_ctl0 |= NUMBER_OF_SETS(rdev->config.evergreen.sx_num_of_sets);
- 	WREG32(SMX_DC_CTL0, smx_dc_ctl0);
- 
-+	if (rdev->family <= CHIP_SUMO2)
-+		WREG32(SMX_SAR_CTL0, 0x00010000);
-+
- 	WREG32(SX_EXPORT_BUFFER_SIZES, (COLOR_BUFFER_SIZE((rdev->config.evergreen.sx_max_export_size / 4) - 1) |
- 					POSITION_BUFFER_SIZE((rdev->config.evergreen.sx_max_export_pos_size / 4) - 1) |
- 					SMX_BUFFER_SIZE((rdev->config.evergreen.sx_max_export_smx_size / 4) - 1)));
-diff --git a/drivers/gpu/drm/radeon/evergreend.h b/drivers/gpu/drm/radeon/evergreend.h
-index 0128445..6ecd23f 100644
---- a/drivers/gpu/drm/radeon/evergreend.h
-+++ b/drivers/gpu/drm/radeon/evergreend.h
-@@ -270,6 +270,7 @@
- #define	SCRATCH_UMSK					0x8540
- #define	SCRATCH_ADDR					0x8544
- 
-+#define	SMX_SAR_CTL0					0xA008
- #define	SMX_DC_CTL0					0xA020
- #define		USE_HASH_FUNCTION				(1 << 0)
- #define		NUMBER_OF_SETS(x)				((x) << 1)
-diff --git a/drivers/gpu/drm/radeon/r600.c b/drivers/gpu/drm/radeon/r600.c
-index 9cdda0b..bdfa82a 100644
---- a/drivers/gpu/drm/radeon/r600.c
-+++ b/drivers/gpu/drm/radeon/r600.c
-@@ -1905,6 +1905,7 @@ void r600_gpu_init(struct radeon_device *rdev)
- 	WREG32(PA_CL_ENHANCE, (CLIP_VTX_REORDER_ENA |
- 			       NUM_CLIP_SEQ(3)));
- 	WREG32(PA_SC_ENHANCE, FORCE_EOV_MAX_CLK_CNT(4095));
-+	WREG32(VC_ENHANCE, 0);
- }
- 
- 
-diff --git a/drivers/gpu/drm/radeon/r600d.h b/drivers/gpu/drm/radeon/r600d.h
-index bfe1b5d..d4d23a8d 100644
---- a/drivers/gpu/drm/radeon/r600d.h
-+++ b/drivers/gpu/drm/radeon/r600d.h
-@@ -461,6 +461,7 @@
- #define		TC_L2_SIZE(x)					((x)<<5)
- #define		L2_DISABLE_LATE_HIT				(1<<9)
- 
-+#define	VC_ENHANCE					0x9714
- 
- #define	VGT_CACHE_INVALIDATION				0x88C4
- #define		CACHE_INVALIDATION(x)				((x)<<0)
-diff --git a/drivers/gpu/drm/radeon/rv770.c b/drivers/gpu/drm/radeon/rv770.c
-index e36ba7f..cc79449 100644
---- a/drivers/gpu/drm/radeon/rv770.c
-+++ b/drivers/gpu/drm/radeon/rv770.c
-@@ -782,6 +782,9 @@ static void rv770_gpu_init(struct radeon_device *rdev)
- 				       ACK_FLUSH_CTL(3) |
- 				       SYNC_FLUSH_CTL));
- 
-+	if (rdev->family != CHIP_RV770)
-+		WREG32(SMX_SAR_CTL0, 0x00003f3f);
-+
- 	db_debug3 = RREG32(DB_DEBUG3);
- 	db_debug3 &= ~DB_CLK_OFF_DELAY(0x1f);
- 	switch (rdev->family) {
-@@ -960,7 +963,7 @@ static void rv770_gpu_init(struct radeon_device *rdev)
- 
- 	WREG32(PA_CL_ENHANCE, (CLIP_VTX_REORDER_ENA |
- 					  NUM_CLIP_SEQ(3)));
--
-+	WREG32(VC_ENHANCE, 0);
- }
- 
- void r700_vram_gtt_location(struct radeon_device *rdev, struct radeon_mc *mc)
-diff --git a/drivers/gpu/drm/radeon/rv770d.h b/drivers/gpu/drm/radeon/rv770d.h
-index 7538092..7095a71 100644
---- a/drivers/gpu/drm/radeon/rv770d.h
-+++ b/drivers/gpu/drm/radeon/rv770d.h
-@@ -208,6 +208,7 @@
- #define	SCRATCH_UMSK					0x8540
- #define	SCRATCH_ADDR					0x8544
- 
-+#define	SMX_SAR_CTL0					0xA008
- #define	SMX_DC_CTL0					0xA020
- #define		USE_HASH_FUNCTION				(1 << 0)
- #define		CACHE_DEPTH(x)					((x) << 1)
-@@ -307,6 +308,8 @@
- #define	TCP_CNTL					0x9610
- #define	TCP_CHAN_STEER					0x9614
- 
-+#define	VC_ENHANCE					0x9714
-+
- #define	VGT_CACHE_INVALIDATION				0x88C4
- #define		CACHE_INVALIDATION(x)				((x)<<0)
- #define			VC_ONLY						0
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0067-Linux-3.2.21.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0067-Linux-3.2.21.patch
deleted file mode 100644
index d9d9f9f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.21/0067-Linux-3.2.21.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 1eb1eabe86e7b13627d8f03d32a2e402e26d77a5 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Tue, 19 Jun 2012 23:18:30 +0100
-Subject: [PATCH 67/67] Linux 3.2.21
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index c7e9cc4..7eb465e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 20
-+SUBLEVEL = 21
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0001-staging-iio-ad7606-Re-add-missing-scale-attribute.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0001-staging-iio-ad7606-Re-add-missing-scale-attribute.patch
deleted file mode 100644
index 4f7f561..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0001-staging-iio-ad7606-Re-add-missing-scale-attribute.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From ea62444a6898324ec9aeb8799a8fd518073fe5a8 Mon Sep 17 00:00:00 2001
-From: Lars-Peter Clausen <lars at metafoo.de>
-Date: Tue, 5 Jun 2012 18:16:31 +0200
-Subject: [PATCH 01/46] staging:iio:ad7606: Re-add missing scale attribute
-
-commit 279bf2e57c30c9a4482b2b6ede11b31c41e35e78 upstream.
-
-Commit 50ac23be ("staging:iio:adc:ad7606 add local define for chan_spec
-structures.") accidentally removed the scale info_mask flag. This patch
-adds it back again.
-
-Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
-Acked-by: Jonathan Cameron <jic23 at kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[bwh: Backported to 3.2:
- - info_mask was completely gone rather than set to another flag
- - IIO_CHAN_INFO_SCALE_SHARED_BIT was not defined; write it out as a shift]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/staging/iio/adc/ad7606_core.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/staging/iio/adc/ad7606_core.c b/drivers/staging/iio/adc/ad7606_core.c
-index 54423ab..2ee187f 100644
---- a/drivers/staging/iio/adc/ad7606_core.c
-+++ b/drivers/staging/iio/adc/ad7606_core.c
-@@ -241,6 +241,7 @@ static const struct attribute_group ad7606_attribute_group = {
- 		.indexed = 1,				\
- 		.channel = num,				\
- 		.address = num,				\
-+		.info_mask = (1 << IIO_CHAN_INFO_SCALE_SHARED), \
- 		.scan_index = num,			\
- 		.scan_type = IIO_ST('s', 16, 16, 0),	\
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0002-Tools-hv-verify-origin-of-netlink-connector-message.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0002-Tools-hv-verify-origin-of-netlink-connector-message.patch
deleted file mode 100644
index 7b4da32..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0002-Tools-hv-verify-origin-of-netlink-connector-message.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 510150c1fa93796d65a9b598a8e1509629f5d84e Mon Sep 17 00:00:00 2001
-From: Olaf Hering <olaf at aepfle.de>
-Date: Thu, 31 May 2012 16:40:06 +0200
-Subject: [PATCH 02/46] Tools: hv: verify origin of netlink connector message
-
-commit bcc2c9c3fff859e0eb019fe6fec26f9b8eba795c upstream.
-
-The SuSE security team suggested to use recvfrom instead of recv to be
-certain that the connector message is originated from kernel.
-
-CVE-2012-2669
-
-Signed-off-by: Olaf Hering <olaf at aepfle.de>
-Signed-off-by: Marcus Meissner <meissner at suse.de>
-Signed-off-by: Sebastian Krahmer <krahmer at suse.de>
-Signed-off-by: K. Y. Srinivasan <kys at microsoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- tools/hv/hv_kvp_daemon.c |   10 +++++++---
- 1 file changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/tools/hv/hv_kvp_daemon.c b/tools/hv/hv_kvp_daemon.c
-index 11224ed..323d4d9 100644
---- a/tools/hv/hv_kvp_daemon.c
-+++ b/tools/hv/hv_kvp_daemon.c
-@@ -384,14 +384,18 @@ int main(void)
- 	pfd.fd = fd;
- 
- 	while (1) {
-+		struct sockaddr *addr_p = (struct sockaddr *) &addr;
-+		socklen_t addr_l = sizeof(addr);
- 		pfd.events = POLLIN;
- 		pfd.revents = 0;
- 		poll(&pfd, 1, -1);
- 
--		len = recv(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0);
-+		len = recvfrom(fd, kvp_recv_buffer, sizeof(kvp_recv_buffer), 0,
-+				addr_p, &addr_l);
- 
--		if (len < 0) {
--			syslog(LOG_ERR, "recv failed; error:%d", len);
-+		if (len < 0 || addr.nl_pid) {
-+			syslog(LOG_ERR, "recvfrom failed; pid:%u error:%d %s",
-+					addr.nl_pid, errno, strerror(errno));
- 			close(fd);
- 			return -1;
- 		}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0003-edac-avoid-mce-decoding-crash-after-edac-driver-unlo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0003-edac-avoid-mce-decoding-crash-after-edac-driver-unlo.patch
deleted file mode 100644
index 6670761..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0003-edac-avoid-mce-decoding-crash-after-edac-driver-unlo.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 081ba8d6f6253982766e17b90992c1002c31acb0 Mon Sep 17 00:00:00 2001
-From: Chen Gong <gong.chen at linux.intel.com>
-Date: Tue, 8 May 2012 20:40:12 -0300
-Subject: [PATCH 03/46] edac: avoid mce decoding crash after edac driver
- unloaded
-
-commit e35fca4791fcdd43dc1fd769797df40c562ab491 upstream.
-
-Some edac drivers register themselves as mce decoders via
-notifier_chain. But in current notifier_chain implementation logic,
-it doesn't accept same notifier registered twice. If so, it will be
-wrong when adding/removing the element from the list. For example,
-on one SandyBridge platform, remove module sb_edac and then trigger
-one error, it will hit oops because it has no mce decoder registered
-but related notifier_chain still points to an invalid callback
-function. Here is an example:
-
-Call Trace:
- [<ffffffff8150ef6a>] atomic_notifier_call_chain+0x1a/0x20
- [<ffffffff8102b936>] mce_log+0x46/0x180
- [<ffffffff8102eaea>] apei_mce_report_mem_error+0x4a/0x60
- [<ffffffff812e19d2>] ghes_do_proc+0x192/0x210
- [<ffffffff812e2066>] ghes_proc+0x46/0x70
- [<ffffffff812e20d8>] ghes_notify_sci+0x48/0x80
- [<ffffffff8150ef05>] notifier_call_chain+0x55/0x80
- [<ffffffff81076f1a>] __blocking_notifier_call_chain+0x5a/0x80
- [<ffffffff812aea11>] ? acpi_os_wait_events_complete+0x23/0x23
- [<ffffffff81076f56>] blocking_notifier_call_chain+0x16/0x20
- [<ffffffff812ddc4d>] acpi_hed_notify+0x19/0x1b
- [<ffffffff812b16bd>] acpi_device_notify+0x19/0x1b
- [<ffffffff812beb38>] acpi_ev_notify_dispatch+0x67/0x7f
- [<ffffffff812aea3a>] acpi_os_execute_deferred+0x29/0x36
- [<ffffffff81069dc2>] process_one_work+0x132/0x450
- [<ffffffff8106bbcb>] worker_thread+0x17b/0x3c0
- [<ffffffff8106ba50>] ? manage_workers+0x120/0x120
- [<ffffffff81070aee>] kthread+0x9e/0xb0
- [<ffffffff81514724>] kernel_thread_helper+0x4/0x10
- [<ffffffff81070a50>] ? kthread_freezable_should_stop+0x70/0x70
- [<ffffffff81514720>] ? gs_change+0x13/0x13
-Code: f3 49 89 d4 45 85 ed 4d 89 c6 48 8b 0f 74 48 48 85 c9 75 17 eb 41
-0f 1f 80 00 00 00 00 41 83 ed 01 4c 89 f9 74 22 4d 85 ff 74 1d <4c> 8b
-79 08 4c 89 e2 48 89 de 48 89 cf ff 11 4d 85 f6 74 04 41
-RIP  [<ffffffff8150eef6>] notifier_call_chain+0x46/0x80
- RSP <ffff88042868fb20>
-CR2: ffffffffa01af838
----[ end trace 0100930068e73e6f ]---
-BUG: unable to handle kernel paging request at fffffffffffffff8
-IP: [<ffffffff810705b0>] kthread_data+0x10/0x20
-PGD 1a0d067 PUD 1a0e067 PMD 0
-Oops: 0000 [#2] SMP
-
-Only i7core_edac and sb_edac have such issues because they have more
-than one memory controller which means they have to register mce
-decoder many times.
-
-Signed-off-by: Chen Gong <gong.chen at linux.intel.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-[bwh: Backported to 3.2: drivers call atomic_notifier_chain_{,un}register()
- directly]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/edac/i7core_edac.c |   15 ++++-----------
- drivers/edac/sb_edac.c     |   10 ++++------
- 2 files changed, 8 insertions(+), 17 deletions(-)
-
-diff --git a/drivers/edac/i7core_edac.c b/drivers/edac/i7core_edac.c
-index 70ad892..b3ccefa 100644
---- a/drivers/edac/i7core_edac.c
-+++ b/drivers/edac/i7core_edac.c
-@@ -1932,12 +1932,6 @@ static int i7core_mce_check_error(struct notifier_block *nb, unsigned long val,
- 	if (mce->bank != 8)
- 		return NOTIFY_DONE;
- 
--#ifdef CONFIG_SMP
--	/* Only handle if it is the right mc controller */
--	if (mce->socketid != pvt->i7core_dev->socket)
--		return NOTIFY_DONE;
--#endif
--
- 	smp_rmb();
- 	if ((pvt->mce_out + 1) % MCE_LOG_LEN == pvt->mce_in) {
- 		smp_wmb();
-@@ -2234,8 +2228,6 @@ static void i7core_unregister_mci(struct i7core_dev *i7core_dev)
- 	if (pvt->enable_scrub)
- 		disable_sdram_scrub_setting(mci);
- 
--	atomic_notifier_chain_unregister(&x86_mce_decoder_chain, &i7_mce_dec);
--
- 	/* Disable EDAC polling */
- 	i7core_pci_ctl_release(pvt);
- 
-@@ -2336,8 +2328,6 @@ static int i7core_register_mci(struct i7core_dev *i7core_dev)
- 	/* DCLK for scrub rate setting */
- 	pvt->dclk_freq = get_dclk_freq();
- 
--	atomic_notifier_chain_register(&x86_mce_decoder_chain, &i7_mce_dec);
--
- 	return 0;
- 
- fail0:
-@@ -2481,8 +2471,10 @@ static int __init i7core_init(void)
- 
- 	pci_rc = pci_register_driver(&i7core_driver);
- 
--	if (pci_rc >= 0)
-+	if (pci_rc >= 0) {
-+		atomic_notifier_chain_register(&x86_mce_decoder_chain, &i7_mce_dec);
- 		return 0;
-+	}
- 
- 	i7core_printk(KERN_ERR, "Failed to register device with error %d.\n",
- 		      pci_rc);
-@@ -2498,6 +2490,7 @@ static void __exit i7core_exit(void)
- {
- 	debugf2("MC: " __FILE__ ": %s()\n", __func__);
- 	pci_unregister_driver(&i7core_driver);
-+	atomic_notifier_chain_unregister(&x86_mce_decoder_chain, &i7_mce_dec);
- }
- 
- module_init(i7core_init);
-diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
-index 7a402bf..18a1293 100644
---- a/drivers/edac/sb_edac.c
-+++ b/drivers/edac/sb_edac.c
-@@ -1661,9 +1661,6 @@ static void sbridge_unregister_mci(struct sbridge_dev *sbridge_dev)
- 	debugf0("MC: " __FILE__ ": %s(): mci = %p, dev = %p\n",
- 		__func__, mci, &sbridge_dev->pdev[0]->dev);
- 
--	atomic_notifier_chain_unregister(&x86_mce_decoder_chain,
--					 &sbridge_mce_dec);
--
- 	/* Remove MC sysfs nodes */
- 	edac_mc_del_mc(mci->dev);
- 
-@@ -1731,8 +1728,6 @@ static int sbridge_register_mci(struct sbridge_dev *sbridge_dev)
- 		goto fail0;
- 	}
- 
--	atomic_notifier_chain_register(&x86_mce_decoder_chain,
--				       &sbridge_mce_dec);
- 	return 0;
- 
- fail0:
-@@ -1861,8 +1856,10 @@ static int __init sbridge_init(void)
- 
- 	pci_rc = pci_register_driver(&sbridge_driver);
- 
--	if (pci_rc >= 0)
-+	if (pci_rc >= 0) {
-+		atomic_notifier_chain_register(&x86_mce_decoder_chain, &sbridge_mce_dec);
- 		return 0;
-+	}
- 
- 	sbridge_printk(KERN_ERR, "Failed to register device with error %d.\n",
- 		      pci_rc);
-@@ -1878,6 +1875,7 @@ static void __exit sbridge_exit(void)
- {
- 	debugf2("MC: " __FILE__ ": %s()\n", __func__);
- 	pci_unregister_driver(&sbridge_driver);
-+	atomic_notifier_chain_unregister(&x86_mce_decoder_chain, &sbridge_mce_dec);
- }
- 
- module_init(sbridge_init);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch
deleted file mode 100644
index 85105de..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 28a0aa72b2ef00a665564ea05846ad22cb3f18ee Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet at sunsite.dk>
-Date: Tue, 12 Jun 2012 08:27:04 +0800
-Subject: [PATCH 04/46] hwrng: atmel-rng - fix data valid check
-
-commit c475c06f4bb689d6ad87d7512e036d6dface3160 upstream.
-
-Brown paper bag: Data valid is LSB of the ISR (status register), and NOT
-of ODATA (current random data word)!
-
-With this, rngtest is a lot happier. Before:
-
-rngtest 3
-Copyright (c) 2004 by Henrique de Moraes Holschuh
-This is free software; see the source for copying conditions.  There is NO warr.
-
-rngtest: starting FIPS tests...
-rngtest: bits received from input: 20000032
-rngtest: FIPS 140-2 successes: 3
-rngtest: FIPS 140-2 failures: 997
-rngtest: FIPS 140-2(2001-10-10) Monobit: 604
-rngtest: FIPS 140-2(2001-10-10) Poker: 996
-rngtest: FIPS 140-2(2001-10-10) Runs: 36
-rngtest: FIPS 140-2(2001-10-10) Long run: 0
-rngtest: FIPS 140-2(2001-10-10) Continuous run: 117
-rngtest: input channel speed: (min=622.371; avg=23682.481; max=28224.350)Kibitss
-rngtest: FIPS tests speed: (min=12.361; avg=12.718; max=12.861)Mibits/s
-rngtest: Program run time: 2331696 microsecondsx
-
-After:
-rngtest 3
-Copyright (c) 2004 by Henrique de Moraes Holschuh
-This is free software; see the source for copying conditions.  There is NO warr.
-
-rngtest: starting FIPS tests...
-rngtest: bits received from input: 20000032
-rngtest: FIPS 140-2 successes: 999
-rngtest: FIPS 140-2 failures: 1
-rngtest: FIPS 140-2(2001-10-10) Monobit: 0
-rngtest: FIPS 140-2(2001-10-10) Poker: 0
-rngtest: FIPS 140-2(2001-10-10) Runs: 1
-rngtest: FIPS 140-2(2001-10-10) Long run: 0
-rngtest: FIPS 140-2(2001-10-10) Continuous run: 0
-rngtest: input channel speed: (min=777.363; avg=43588.270; max=47870.711)Kibitss
-rngtest: FIPS tests speed: (min=11.943; avg=12.716; max=12.844)Mibits/s
-rngtest: Program run time: 1955282 microseconds
-
-Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
-Reported-by: George Pontis <GPontis at z9.com>
-Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/hw_random/atmel-rng.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/char/hw_random/atmel-rng.c b/drivers/char/hw_random/atmel-rng.c
-index 0477982..1b5675b 100644
---- a/drivers/char/hw_random/atmel-rng.c
-+++ b/drivers/char/hw_random/atmel-rng.c
-@@ -34,7 +34,7 @@ static int atmel_trng_read(struct hwrng *rng, void *buf, size_t max,
- 	u32 *data = buf;
- 
- 	/* data ready? */
--	if (readl(trng->base + TRNG_ODATA) & 1) {
-+	if (readl(trng->base + TRNG_ISR) & 1) {
- 		*data = readl(trng->base + TRNG_ODATA);
- 		/*
- 		  ensure data ready is only set again AFTER the next data
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0005-staging-r8712u-Add-new-USB-IDs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0005-staging-r8712u-Add-new-USB-IDs.patch
deleted file mode 100644
index 2bc87d7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0005-staging-r8712u-Add-new-USB-IDs.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 4f4723008a7461c6840e643bc66fcd92bfbf26b3 Mon Sep 17 00:00:00 2001
-From: Lubomir Schmidt <gentoo.lubomir at googlemail.com>
-Date: Fri, 15 Jun 2012 15:12:17 -0500
-Subject: [PATCH 05/46] staging: r8712u: Add new USB IDs
-
-commit 3026b0e942c65c65c8fc80d391d004228b52b916 upstream.
-
-There are two new devices for this driver.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/staging/rtl8712/usb_intf.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c
-index ec41d38..f4b738f 100644
---- a/drivers/staging/rtl8712/usb_intf.c
-+++ b/drivers/staging/rtl8712/usb_intf.c
-@@ -102,6 +102,8 @@ static struct usb_device_id rtl871x_usb_id_tbl[] = {
- 	/* - */
- 	{USB_DEVICE(0x20F4, 0x646B)},
- 	{USB_DEVICE(0x083A, 0xC512)},
-+	{USB_DEVICE(0x25D4, 0x4CA1)},
-+	{USB_DEVICE(0x25D4, 0x4CAB)},
- 
- /* RTL8191SU */
- 	/* Realtek */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0006-hwmon-applesmc-Limit-key-length-in-warning-messages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0006-hwmon-applesmc-Limit-key-length-in-warning-messages.patch
deleted file mode 100644
index dc75f16..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0006-hwmon-applesmc-Limit-key-length-in-warning-messages.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d94e9fcf553861cd10a1780c6aeaa6a4419ba5ce Mon Sep 17 00:00:00 2001
-From: Henrik Rydberg <rydberg at euromail.se>
-Date: Thu, 7 Jun 2012 04:54:29 -0400
-Subject: [PATCH 06/46] hwmon: (applesmc) Limit key length in warning messages
-
-commit ac852edb47b15900886ba2564eeeb13b3b526e3e upstream.
-
-Key lookups may call read_smc() with a fixed-length key string,
-and if the lookup fails, trailing stack content may appear in the
-kernel log. Fixed with this patch.
-
-Signed-off-by: Henrik Rydberg <rydberg at euromail.se>
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/applesmc.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/hwmon/applesmc.c b/drivers/hwmon/applesmc.c
-index 4c07436..d99aa84 100644
---- a/drivers/hwmon/applesmc.c
-+++ b/drivers/hwmon/applesmc.c
-@@ -215,7 +215,7 @@ static int read_smc(u8 cmd, const char *key, u8 *buffer, u8 len)
- 	int i;
- 
- 	if (send_command(cmd) || send_argument(key)) {
--		pr_warn("%s: read arg fail\n", key);
-+		pr_warn("%.4s: read arg fail\n", key);
- 		return -EIO;
- 	}
- 
-@@ -223,7 +223,7 @@ static int read_smc(u8 cmd, const char *key, u8 *buffer, u8 len)
- 
- 	for (i = 0; i < len; i++) {
- 		if (__wait_status(0x05)) {
--			pr_warn("%s: read data fail\n", key);
-+			pr_warn("%.4s: read data fail\n", key);
- 			return -EIO;
- 		}
- 		buffer[i] = inb(APPLESMC_DATA_PORT);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0007-mm-pmd_read_atomic-fix-32bit-PAE-pmd-walk-vs-pmd_pop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0007-mm-pmd_read_atomic-fix-32bit-PAE-pmd-walk-vs-pmd_pop.patch
deleted file mode 100644
index 9cac18d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0007-mm-pmd_read_atomic-fix-32bit-PAE-pmd-walk-vs-pmd_pop.patch
+++ /dev/null
@@ -1,218 +0,0 @@
-From 8bf1709b6925d4e05120bdfed73992d50e7f11bf Mon Sep 17 00:00:00 2001
-From: Andrea Arcangeli <aarcange at redhat.com>
-Date: Tue, 29 May 2012 15:06:49 -0700
-Subject: [PATCH 07/46] mm: pmd_read_atomic: fix 32bit PAE pmd walk vs
- pmd_populate SMP race condition
-
-commit 26c191788f18129af0eb32a358cdaea0c7479626 upstream.
-
-When holding the mmap_sem for reading, pmd_offset_map_lock should only
-run on a pmd_t that has been read atomically from the pmdp pointer,
-otherwise we may read only half of it leading to this crash.
-
-PID: 11679  TASK: f06e8000  CPU: 3   COMMAND: "do_race_2_panic"
- #0 [f06a9dd8] crash_kexec at c049b5ec
- #1 [f06a9e2c] oops_end at c083d1c2
- #2 [f06a9e40] no_context at c0433ded
- #3 [f06a9e64] bad_area_nosemaphore at c043401a
- #4 [f06a9e6c] __do_page_fault at c0434493
- #5 [f06a9eec] do_page_fault at c083eb45
- #6 [f06a9f04] error_code (via page_fault) at c083c5d5
-    EAX: 01fb470c EBX: fff35000 ECX: 00000003 EDX: 00000100 EBP:
-    00000000
-    DS:  007b     ESI: 9e201000 ES:  007b     EDI: 01fb4700 GS:  00e0
-    CS:  0060     EIP: c083bc14 ERR: ffffffff EFLAGS: 00010246
- #7 [f06a9f38] _spin_lock at c083bc14
- #8 [f06a9f44] sys_mincore at c0507b7d
- #9 [f06a9fb0] system_call at c083becd
-                         start           len
-    EAX: ffffffda  EBX: 9e200000  ECX: 00001000  EDX: 6228537f
-    DS:  007b      ESI: 00000000  ES:  007b      EDI: 003d0f00
-    SS:  007b      ESP: 62285354  EBP: 62285388  GS:  0033
-    CS:  0073      EIP: 00291416  ERR: 000000da  EFLAGS: 00000286
-
-This should be a longstanding bug affecting x86 32bit PAE without THP.
-Only archs with 64bit large pmd_t and 32bit unsigned long should be
-affected.
-
-With THP enabled the barrier() in pmd_none_or_trans_huge_or_clear_bad()
-would partly hide the bug when the pmd transition from none to stable,
-by forcing a re-read of the *pmd in pmd_offset_map_lock, but when THP is
-enabled a new set of problem arises by the fact could then transition
-freely in any of the none, pmd_trans_huge or pmd_trans_stable states.
-So making the barrier in pmd_none_or_trans_huge_or_clear_bad()
-unconditional isn't good idea and it would be a flakey solution.
-
-This should be fully fixed by introducing a pmd_read_atomic that reads
-the pmd in order with THP disabled, or by reading the pmd atomically
-with cmpxchg8b with THP enabled.
-
-Luckily this new race condition only triggers in the places that must
-already be covered by pmd_none_or_trans_huge_or_clear_bad() so the fix
-is localized there but this bug is not related to THP.
-
-NOTE: this can trigger on x86 32bit systems with PAE enabled with more
-than 4G of ram, otherwise the high part of the pmd will never risk to be
-truncated because it would be zero at all times, in turn so hiding the
-SMP race.
-
-This bug was discovered and fully debugged by Ulrich, quote:
-
-----
-[..]
-pmd_none_or_trans_huge_or_clear_bad() loads the content of edx and
-eax.
-
-    496 static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t
-    *pmd)
-    497 {
-    498         /* depend on compiler for an atomic pmd read */
-    499         pmd_t pmdval = *pmd;
-
-                                // edi = pmd pointer
-0xc0507a74 <sys_mincore+548>:   mov    0x8(%esp),%edi
-...
-                                // edx = PTE page table high address
-0xc0507a84 <sys_mincore+564>:   mov    0x4(%edi),%edx
-...
-                                // eax = PTE page table low address
-0xc0507a8e <sys_mincore+574>:   mov    (%edi),%eax
-
-[..]
-
-Please note that the PMD is not read atomically. These are two "mov"
-instructions where the high order bits of the PMD entry are fetched
-first. Hence, the above machine code is prone to the following race.
-
--  The PMD entry {high|low} is 0x0000000000000000.
-   The "mov" at 0xc0507a84 loads 0x00000000 into edx.
-
--  A page fault (on another CPU) sneaks in between the two "mov"
-   instructions and instantiates the PMD.
-
--  The PMD entry {high|low} is now 0x00000003fda38067.
-   The "mov" at 0xc0507a8e loads 0xfda38067 into eax.
-----
-
-Reported-by: Ulrich Obergfell <uobergfe at redhat.com>
-Signed-off-by: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Mel Gorman <mgorman at suse.de>
-Cc: Hugh Dickins <hughd at google.com>
-Cc: Larry Woodman <lwoodman at redhat.com>
-Cc: Petr Matousek <pmatouse at redhat.com>
-Cc: Rik van Riel <riel at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/include/asm/pgtable-3level.h |   50 +++++++++++++++++++++++++++++++++
- include/asm-generic/pgtable.h         |   22 +++++++++++++--
- 2 files changed, 70 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
-index effff47..43876f1 100644
---- a/arch/x86/include/asm/pgtable-3level.h
-+++ b/arch/x86/include/asm/pgtable-3level.h
-@@ -31,6 +31,56 @@ static inline void native_set_pte(pte_t *ptep, pte_t pte)
- 	ptep->pte_low = pte.pte_low;
- }
- 
-+#define pmd_read_atomic pmd_read_atomic
-+/*
-+ * pte_offset_map_lock on 32bit PAE kernels was reading the pmd_t with
-+ * a "*pmdp" dereference done by gcc. Problem is, in certain places
-+ * where pte_offset_map_lock is called, concurrent page faults are
-+ * allowed, if the mmap_sem is hold for reading. An example is mincore
-+ * vs page faults vs MADV_DONTNEED. On the page fault side
-+ * pmd_populate rightfully does a set_64bit, but if we're reading the
-+ * pmd_t with a "*pmdp" on the mincore side, a SMP race can happen
-+ * because gcc will not read the 64bit of the pmd atomically. To fix
-+ * this all places running pmd_offset_map_lock() while holding the
-+ * mmap_sem in read mode, shall read the pmdp pointer using this
-+ * function to know if the pmd is null nor not, and in turn to know if
-+ * they can run pmd_offset_map_lock or pmd_trans_huge or other pmd
-+ * operations.
-+ *
-+ * Without THP if the mmap_sem is hold for reading, the
-+ * pmd can only transition from null to not null while pmd_read_atomic runs.
-+ * So there's no need of literally reading it atomically.
-+ *
-+ * With THP if the mmap_sem is hold for reading, the pmd can become
-+ * THP or null or point to a pte (and in turn become "stable") at any
-+ * time under pmd_read_atomic, so it's mandatory to read it atomically
-+ * with cmpxchg8b.
-+ */
-+#ifndef CONFIG_TRANSPARENT_HUGEPAGE
-+static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
-+{
-+	pmdval_t ret;
-+	u32 *tmp = (u32 *)pmdp;
-+
-+	ret = (pmdval_t) (*tmp);
-+	if (ret) {
-+		/*
-+		 * If the low part is null, we must not read the high part
-+		 * or we can end up with a partial pmd.
-+		 */
-+		smp_rmb();
-+		ret |= ((pmdval_t)*(tmp + 1)) << 32;
-+	}
-+
-+	return (pmd_t) { ret };
-+}
-+#else /* CONFIG_TRANSPARENT_HUGEPAGE */
-+static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
-+{
-+	return (pmd_t) { atomic64_read((atomic64_t *)pmdp) };
-+}
-+#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
-+
- static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
- {
- 	set_64bit((unsigned long long *)(ptep), native_pte_val(pte));
-diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index a03c098..831924a 100644
---- a/include/asm-generic/pgtable.h
-+++ b/include/asm-generic/pgtable.h
-@@ -445,6 +445,18 @@ static inline int pmd_write(pmd_t pmd)
- #endif /* __HAVE_ARCH_PMD_WRITE */
- #endif /* CONFIG_TRANSPARENT_HUGEPAGE */
- 
-+#ifndef pmd_read_atomic
-+static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
-+{
-+	/*
-+	 * Depend on compiler for an atomic pmd read. NOTE: this is
-+	 * only going to work, if the pmdval_t isn't larger than
-+	 * an unsigned long.
-+	 */
-+	return *pmdp;
-+}
-+#endif
-+
- /*
-  * This function is meant to be used by sites walking pagetables with
-  * the mmap_sem hold in read mode to protect against MADV_DONTNEED and
-@@ -458,11 +470,17 @@ static inline int pmd_write(pmd_t pmd)
-  * undefined so behaving like if the pmd was none is safe (because it
-  * can return none anyway). The compiler level barrier() is critically
-  * important to compute the two checks atomically on the same pmdval.
-+ *
-+ * For 32bit kernels with a 64bit large pmd_t this automatically takes
-+ * care of reading the pmd atomically to avoid SMP race conditions
-+ * against pmd_populate() when the mmap_sem is hold for reading by the
-+ * caller (a special atomic read not done by "gcc" as in the generic
-+ * version above, is also needed when THP is disabled because the page
-+ * fault can populate the pmd from under us).
-  */
- static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
- {
--	/* depend on compiler for an atomic pmd read */
--	pmd_t pmdval = *pmd;
-+	pmd_t pmdval = pmd_read_atomic(pmd);
- 	/*
- 	 * The barrier will stabilize the pmdval in a register or on
- 	 * the stack so that it will stop changing under the code.
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0008-thp-avoid-atomic64_read-in-pmd_read_atomic-for-32bit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0008-thp-avoid-atomic64_read-in-pmd_read_atomic-for-32bit.patch
deleted file mode 100644
index 79be9e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0008-thp-avoid-atomic64_read-in-pmd_read_atomic-for-32bit.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From dcfb4634621189a74522dee4d0dab8b5c1786b02 Mon Sep 17 00:00:00 2001
-From: Andrea Arcangeli <aarcange at redhat.com>
-Date: Wed, 20 Jun 2012 12:52:57 -0700
-Subject: [PATCH 08/46] thp: avoid atomic64_read in pmd_read_atomic for 32bit
- PAE
-
-commit e4eed03fd06578571c01d4f1478c874bb432c815 upstream.
-
-In the x86 32bit PAE CONFIG_TRANSPARENT_HUGEPAGE=y case while holding the
-mmap_sem for reading, cmpxchg8b cannot be used to read pmd contents under
-Xen.
-
-So instead of dealing only with "consistent" pmdvals in
-pmd_none_or_trans_huge_or_clear_bad() (which would be conceptually
-simpler) we let pmd_none_or_trans_huge_or_clear_bad() deal with pmdvals
-where the low 32bit and high 32bit could be inconsistent (to avoid having
-to use cmpxchg8b).
-
-The only guarantee we get from pmd_read_atomic is that if the low part of
-the pmd was found null, the high part will be null too (so the pmd will be
-considered unstable).  And if the low part of the pmd is found "stable"
-later, then it means the whole pmd was read atomically (because after a
-pmd is stable, neither MADV_DONTNEED nor page faults can alter it anymore,
-and we read the high part after the low part).
-
-In the 32bit PAE x86 case, it is enough to read the low part of the pmdval
-atomically to declare the pmd as "stable" and that's true for THP and no
-THP, furthermore in the THP case we also have a barrier() that will
-prevent any inconsistent pmdvals to be cached by a later re-read of the
-*pmd.
-
-Signed-off-by: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Jonathan Nieder <jrnieder at gmail.com>
-Cc: Ulrich Obergfell <uobergfe at redhat.com>
-Cc: Mel Gorman <mgorman at suse.de>
-Cc: Hugh Dickins <hughd at google.com>
-Cc: Larry Woodman <lwoodman at redhat.com>
-Cc: Petr Matousek <pmatouse at redhat.com>
-Cc: Rik van Riel <riel at redhat.com>
-Cc: Jan Beulich <jbeulich at suse.com>
-Cc: KOSAKI Motohiro <kosaki.motohiro at gmail.com>
-Tested-by: Andrew Jones <drjones at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/include/asm/pgtable-3level.h |   30 +++++++++++++++++-------------
- include/asm-generic/pgtable.h         |   10 ++++++++++
- 2 files changed, 27 insertions(+), 13 deletions(-)
-
-diff --git a/arch/x86/include/asm/pgtable-3level.h b/arch/x86/include/asm/pgtable-3level.h
-index 43876f1..cb00ccc 100644
---- a/arch/x86/include/asm/pgtable-3level.h
-+++ b/arch/x86/include/asm/pgtable-3level.h
-@@ -47,16 +47,26 @@ static inline void native_set_pte(pte_t *ptep, pte_t pte)
-  * they can run pmd_offset_map_lock or pmd_trans_huge or other pmd
-  * operations.
-  *
-- * Without THP if the mmap_sem is hold for reading, the
-- * pmd can only transition from null to not null while pmd_read_atomic runs.
-- * So there's no need of literally reading it atomically.
-+ * Without THP if the mmap_sem is hold for reading, the pmd can only
-+ * transition from null to not null while pmd_read_atomic runs. So
-+ * we can always return atomic pmd values with this function.
-  *
-  * With THP if the mmap_sem is hold for reading, the pmd can become
-- * THP or null or point to a pte (and in turn become "stable") at any
-- * time under pmd_read_atomic, so it's mandatory to read it atomically
-- * with cmpxchg8b.
-+ * trans_huge or none or point to a pte (and in turn become "stable")
-+ * at any time under pmd_read_atomic. We could read it really
-+ * atomically here with a atomic64_read for the THP enabled case (and
-+ * it would be a whole lot simpler), but to avoid using cmpxchg8b we
-+ * only return an atomic pmdval if the low part of the pmdval is later
-+ * found stable (i.e. pointing to a pte). And we're returning a none
-+ * pmdval if the low part of the pmd is none. In some cases the high
-+ * and low part of the pmdval returned may not be consistent if THP is
-+ * enabled (the low part may point to previously mapped hugepage,
-+ * while the high part may point to a more recently mapped hugepage),
-+ * but pmd_none_or_trans_huge_or_clear_bad() only needs the low part
-+ * of the pmd to be read atomically to decide if the pmd is unstable
-+ * or not, with the only exception of when the low part of the pmd is
-+ * zero in which case we return a none pmd.
-  */
--#ifndef CONFIG_TRANSPARENT_HUGEPAGE
- static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
- {
- 	pmdval_t ret;
-@@ -74,12 +84,6 @@ static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
- 
- 	return (pmd_t) { ret };
- }
--#else /* CONFIG_TRANSPARENT_HUGEPAGE */
--static inline pmd_t pmd_read_atomic(pmd_t *pmdp)
--{
--	return (pmd_t) { atomic64_read((atomic64_t *)pmdp) };
--}
--#endif /* CONFIG_TRANSPARENT_HUGEPAGE */
- 
- static inline void native_set_pte_atomic(pte_t *ptep, pte_t pte)
- {
-diff --git a/include/asm-generic/pgtable.h b/include/asm-generic/pgtable.h
-index 831924a..bc00876 100644
---- a/include/asm-generic/pgtable.h
-+++ b/include/asm-generic/pgtable.h
-@@ -484,6 +484,16 @@ static inline int pmd_none_or_trans_huge_or_clear_bad(pmd_t *pmd)
- 	/*
- 	 * The barrier will stabilize the pmdval in a register or on
- 	 * the stack so that it will stop changing under the code.
-+	 *
-+	 * When CONFIG_TRANSPARENT_HUGEPAGE=y on x86 32bit PAE,
-+	 * pmd_read_atomic is allowed to return a not atomic pmdval
-+	 * (for example pointing to an hugepage that has never been
-+	 * mapped in the pmd). The below checks will only care about
-+	 * the low part of the pmd with 32bit PAE x86 anyway, with the
-+	 * exception of pmd_none(). So the important thing is that if
-+	 * the low part of the pmd is found null, the high part will
-+	 * be also null or the pmd_none() check below would be
-+	 * confused.
- 	 */
- #ifdef CONFIG_TRANSPARENT_HUGEPAGE
- 	barrier();
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0009-nilfs2-ensure-proper-cache-clearing-for-gc-inodes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0009-nilfs2-ensure-proper-cache-clearing-for-gc-inodes.patch
deleted file mode 100644
index 4cfe490..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0009-nilfs2-ensure-proper-cache-clearing-for-gc-inodes.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From c1a7e61b722c55f0bbbe234d8f16ab19882a0c6b Mon Sep 17 00:00:00 2001
-From: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Date: Wed, 20 Jun 2012 12:52:57 -0700
-Subject: [PATCH 09/46] nilfs2: ensure proper cache clearing for gc-inodes
-
-commit fbb24a3a915f105016f1c828476be11aceac8504 upstream.
-
-A gc-inode is a pseudo inode used to buffer the blocks to be moved by
-garbage collection.
-
-Block caches of gc-inodes must be cleared every time a garbage collection
-function (nilfs_clean_segments) completes.  Otherwise, stale blocks
-buffered in the caches may be wrongly reused in successive calls of the GC
-function.
-
-For user files, this is not a problem because their gc-inodes are
-distinguished by a checkpoint number as well as an inode number.  They
-never buffer different blocks if either an inode number, a checkpoint
-number, or a block offset differs.
-
-However, gc-inodes of sufile, cpfile and DAT file can store different data
-for the same block offset.  Thus, the nilfs_clean_segments function can
-move incorrect block for these meta-data files if an old block is cached.
-I found this is really causing meta-data corruption in nilfs.
-
-This fixes the issue by ensuring cache clear of gc-inodes and resolves
-reported GC problems including checkpoint file corruption, b-tree
-corruption, and the following warning during GC.
-
-  nilfs_palloc_freev: entry number 307234 already freed.
-  ...
-
-Signed-off-by: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Tested-by: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nilfs2/gcinode.c |    2 ++
- fs/nilfs2/segment.c |    2 ++
- 2 files changed, 4 insertions(+)
-
-diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c
-index 08a07a2..57ceaf3 100644
---- a/fs/nilfs2/gcinode.c
-+++ b/fs/nilfs2/gcinode.c
-@@ -191,6 +191,8 @@ void nilfs_remove_all_gcinodes(struct the_nilfs *nilfs)
- 	while (!list_empty(head)) {
- 		ii = list_first_entry(head, struct nilfs_inode_info, i_dirty);
- 		list_del_init(&ii->i_dirty);
-+		truncate_inode_pages(&ii->vfs_inode.i_data, 0);
-+		nilfs_btnode_cache_clear(&ii->i_btnode_cache);
- 		iput(&ii->vfs_inode);
- 	}
- }
-diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
-index bb24ab6..6f24e67 100644
---- a/fs/nilfs2/segment.c
-+++ b/fs/nilfs2/segment.c
-@@ -2309,6 +2309,8 @@ nilfs_remove_written_gcinodes(struct the_nilfs *nilfs, struct list_head *head)
- 		if (!test_bit(NILFS_I_UPDATED, &ii->i_state))
- 			continue;
- 		list_del_init(&ii->i_dirty);
-+		truncate_inode_pages(&ii->vfs_inode.i_data, 0);
-+		nilfs_btnode_cache_clear(&ii->i_btnode_cache);
- 		iput(&ii->vfs_inode);
- 	}
- }
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0010-drm-i915-Finish-any-pending-operations-on-the-frameb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0010-drm-i915-Finish-any-pending-operations-on-the-frameb.patch
deleted file mode 100644
index 9d0f37e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0010-drm-i915-Finish-any-pending-operations-on-the-frameb.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 4c0724b407a2c71dbb932d74363e386f798dca61 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Tue, 3 Apr 2012 17:58:35 +0100
-Subject: [PATCH 10/46] drm/i915: Finish any pending operations on the
- framebuffer before disabling
-
-Similar to the case where we are changing from one framebuffer to
-another, we need to be sure that there are no pending WAIT_FOR_EVENTs on
-the pipe for the current framebuffer before switching. If we disable the
-pipe, and then try to execute a WAIT_FOR_EVENT it will block
-indefinitely and cause a GPU hang.
-
-We attempted to fix this in commit 85345517fe6d4de27b0d6ca19fef9d28ac947c4a
-(drm/i915: Retire any pending operations on the old scanout when switching)
-for the case of mode switching, but this leaves the condition where we
-are switching off the pipe vulnerable.
-
-There still remains the race condition were a display may be unplugged,
-switched off by the core, a uevent sent to notify the DDX and the DDX
-may issue a WAIT_FOR_EVENT before it processes the uevent. This window
-does not exist if the pipe is only switched off in response to the
-uevent. Time to make sure that is so...
-
-Reported-by: Francis Leblanc <Francis.Leblanc-Lebeau at verint.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=36515
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45413
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-[danvet: fixup spelling in comment, noticed by Eugeni.]
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-(cherry picked from commit 14667a4bde4361b7ac420d68a2e9e9b9b2df5231)
-Signed-off-by: Timo Aaltonen <timo.aaltonen at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |   65 ++++++++++++++++++++++++----------
- 1 file changed, 46 insertions(+), 19 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 5c1cdb8..6aa7716 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -2187,6 +2187,33 @@ intel_pipe_set_base_atomic(struct drm_crtc *crtc, struct drm_framebuffer *fb,
- }
- 
- static int
-+intel_finish_fb(struct drm_framebuffer *old_fb)
-+{
-+	struct drm_i915_gem_object *obj = to_intel_framebuffer(old_fb)->obj;
-+	struct drm_i915_private *dev_priv = obj->base.dev->dev_private;
-+	bool was_interruptible = dev_priv->mm.interruptible;
-+	int ret;
-+
-+	wait_event(dev_priv->pending_flip_queue,
-+		   atomic_read(&dev_priv->mm.wedged) ||
-+		   atomic_read(&obj->pending_flip) == 0);
-+
-+	/* Big Hammer, we also need to ensure that any pending
-+	 * MI_WAIT_FOR_EVENT inside a user batch buffer on the
-+	 * current scanout is retired before unpinning the old
-+	 * framebuffer.
-+	 *
-+	 * This should only fail upon a hung GPU, in which case we
-+	 * can safely continue.
-+	 */
-+	dev_priv->mm.interruptible = false;
-+	ret = i915_gem_object_finish_gpu(obj);
-+	dev_priv->mm.interruptible = was_interruptible;
-+
-+	return ret;
-+}
-+
-+static int
- intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
- 		    struct drm_framebuffer *old_fb)
- {
-@@ -2224,25 +2251,8 @@ intel_pipe_set_base(struct drm_crtc *crtc, int x, int y,
- 		return ret;
- 	}
- 
--	if (old_fb) {
--		struct drm_i915_private *dev_priv = dev->dev_private;
--		struct drm_i915_gem_object *obj = to_intel_framebuffer(old_fb)->obj;
--
--		wait_event(dev_priv->pending_flip_queue,
--			   atomic_read(&dev_priv->mm.wedged) ||
--			   atomic_read(&obj->pending_flip) == 0);
--
--		/* Big Hammer, we also need to ensure that any pending
--		 * MI_WAIT_FOR_EVENT inside a user batch buffer on the
--		 * current scanout is retired before unpinning the old
--		 * framebuffer.
--		 *
--		 * This should only fail upon a hung GPU, in which case we
--		 * can safely continue.
--		 */
--		ret = i915_gem_object_finish_gpu(obj);
--		(void) ret;
--	}
-+	if (old_fb)
-+		intel_finish_fb(old_fb);
- 
- 	ret = intel_pipe_set_base_atomic(crtc, crtc->fb, x, y,
- 					 LEAVE_ATOMIC_MODE_SET);
-@@ -3312,6 +3322,23 @@ static void intel_crtc_disable(struct drm_crtc *crtc)
- 	struct drm_crtc_helper_funcs *crtc_funcs = crtc->helper_private;
- 	struct drm_device *dev = crtc->dev;
- 
-+	/* Flush any pending WAITs before we disable the pipe. Note that
-+	 * we need to drop the struct_mutex in order to acquire it again
-+	 * during the lowlevel dpms routines around a couple of the
-+	 * operations. It does not look trivial nor desirable to move
-+	 * that locking higher. So instead we leave a window for the
-+	 * submission of further commands on the fb before we can actually
-+	 * disable it. This race with userspace exists anyway, and we can
-+	 * only rely on the pipe being disabled by userspace after it
-+	 * receives the hotplug notification and has flushed any pending
-+	 * batches.
-+	 */
-+	if (crtc->fb) {
-+		mutex_lock(&dev->struct_mutex);
-+		intel_finish_fb(crtc->fb);
-+		mutex_unlock(&dev->struct_mutex);
-+	}
-+
- 	crtc_funcs->dpms(crtc, DRM_MODE_DPMS_OFF);
- 
- 	if (crtc->fb) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0011-drm-i915-Remove-use-of-the-autoreported-ringbuffer-H.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0011-drm-i915-Remove-use-of-the-autoreported-ringbuffer-H.patch
deleted file mode 100644
index ad69a94..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0011-drm-i915-Remove-use-of-the-autoreported-ringbuffer-H.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 7e3ac17c5a78a999c5932d6617f63a6ca7cf91b0 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Wed, 8 Feb 2012 13:34:13 +0000
-Subject: [PATCH 11/46] drm/i915: Remove use of the autoreported ringbuffer
- HEAD position
-
-This is a revert of 6aa56062eaba67adfb247cded244fd877329588d.
-
-This was originally introduced to workaround reads of the ringbuffer
-registers returning 0 on SandyBridge causing hangs due to ringbuffer
-overflow. The root cause here was reads through the GT powerwell require
-the forcewake dance, something we only learnt of later. Now it appears
-that reading the reported head position from the HWS is returning
-garbage, leading once again to hangs.
-
-For example, on q35 the autoreported head reports:
-  [  217.975608] head now 00010000, actual 00010000
-  [  436.725613] head now 00200000, actual 00200000
-  [  462.956033] head now 00210000, actual 00210010
-  [  485.501409] head now 00400000, actual 00400020
-  [  508.064280] head now 00410000, actual 00410000
-  [  530.576078] head now 00600000, actual 00600020
-  [  553.273489] head now 00610000, actual 00610018
-which appears reasonably sane. In contrast, if we look at snb:
-  [  141.970680] head now 00e10000, actual 00008238
-  [  141.974062] head now 02734000, actual 000083c8
-  [  141.974425] head now 00e10000, actual 00008488
-  [  141.980374] head now 032b5000, actual 000088b8
-  [  141.980885] head now 03271000, actual 00008950
-  [  142.040628] head now 02101000, actual 00008b40
-  [  142.180173] head now 02734000, actual 00009050
-  [  142.181090] head now 00000000, actual 00000ae0
-  [  142.183737] head now 02734000, actual 00009050
-
-In addition, the automatic reporting of the head position is scheduled
-to be defeatured in the future. It has no more utility, remove it.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45492
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Tested-by: Eric Anholt <eric at anholt.net>
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-(cherry picked from commit 5d031e5b633d910f35e6e0abce94d9d842390006)
-Signed-off-by: Timo Aaltonen <timo.aaltonen at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |   14 +-------------
- 1 file changed, 1 insertion(+), 13 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 933e66b..f6613dc 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -306,7 +306,7 @@ static int init_ring_common(struct intel_ring_buffer *ring)
- 
- 	I915_WRITE_CTL(ring,
- 			((ring->size - PAGE_SIZE) & RING_NR_PAGES)
--			| RING_REPORT_64K | RING_VALID);
-+			| RING_VALID);
- 
- 	/* If the head is still not zero, the ring is dead */
- 	if ((I915_READ_CTL(ring) & RING_VALID) == 0 ||
-@@ -1157,18 +1157,6 @@ int intel_wait_ring_buffer(struct intel_ring_buffer *ring, int n)
- 	struct drm_device *dev = ring->dev;
- 	struct drm_i915_private *dev_priv = dev->dev_private;
- 	unsigned long end;
--	u32 head;
--
--	/* If the reported head position has wrapped or hasn't advanced,
--	 * fallback to the slow and accurate path.
--	 */
--	head = intel_read_status_page(ring, 4);
--	if (head > ring->head) {
--		ring->head = head;
--		ring->space = ring_space(ring);
--		if (ring->space >= n)
--			return 0;
--	}
- 
- 	trace_i915_ring_wait_begin(ring);
- 	end = jiffies + 3 * HZ;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0012-e1000e-Disable-ASPM-L1-on-82574.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0012-e1000e-Disable-ASPM-L1-on-82574.patch
deleted file mode 100644
index b47746d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0012-e1000e-Disable-ASPM-L1-on-82574.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 7bc45fa1ef48339e44c48d53e0cdb9d0d4e33d43 Mon Sep 17 00:00:00 2001
-From: Chris Boot <bootc at bootc.net>
-Date: Tue, 24 Apr 2012 07:24:52 +0000
-Subject: [PATCH 12/46] e1000e: Disable ASPM L1 on 82574
-
-commit id d4a4206ebbaf48b55803a7eb34e330530d83a889
-
-ASPM on the 82574 causes trouble. Currently the driver disables L0s for
-this NIC but only disables L1 if the MTU is >1500. This patch simply
-causes L1 to be disabled regardless of the MTU setting.
-
-Signed-off-by: Chris Boot <bootc at bootc.net>
-Cc: "Wyborny, Carolyn" <carolyn.wyborny at intel.com>
-Cc: Nix <nix at esperi.org.uk>
-Link: https://lkml.org/lkml/2012/3/19/362
-Tested-by: Jeff Pieper <jeffrey.e.pieper at intel.com>
-[Jeff Kirsher: Backport to 3.2-3.4 kernels]
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/intel/e1000e/82571.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
-index a3e65fd..e556fc3 100644
---- a/drivers/net/ethernet/intel/e1000e/82571.c
-+++ b/drivers/net/ethernet/intel/e1000e/82571.c
-@@ -2080,8 +2080,9 @@ const struct e1000_info e1000_82574_info = {
- 				  | FLAG_HAS_SMART_POWER_DOWN
- 				  | FLAG_HAS_AMT
- 				  | FLAG_HAS_CTRLEXT_ON_LOAD,
--	.flags2			  = FLAG2_CHECK_PHY_HANG
-+	.flags2			= FLAG2_CHECK_PHY_HANG
- 				  | FLAG2_DISABLE_ASPM_L0S
-+				  | FLAG2_DISABLE_ASPM_L1
- 				  | FLAG2_NO_DISABLE_RX,
- 	.pba			= 32,
- 	.max_hw_frame_size	= DEFAULT_JUMBO,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0013-e1000e-Remove-special-case-for-82573-82574-ASPM-L1-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0013-e1000e-Remove-special-case-for-82573-82574-ASPM-L1-d.patch
deleted file mode 100644
index 3eeacc0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0013-e1000e-Remove-special-case-for-82573-82574-ASPM-L1-d.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 51d8e7091033042d3ae09363abe5e93d0698930e Mon Sep 17 00:00:00 2001
-From: Chris Boot <bootc at bootc.net>
-Date: Tue, 24 Apr 2012 07:24:58 +0000
-Subject: [PATCH 13/46] e1000e: Remove special case for 82573/82574 ASPM L1
- disablement
-
-commit 59aed95263bdd0e2b48eb9be5a94346d2d4abf90 upstream.
-
-For the 82573, ASPM L1 gets disabled wholesale so this special-case code
-is not required. For the 82574 the previous patch does the same as for
-the 82573, disabling L1 on the adapter. Thus, this code is no longer
-required and can be removed.
-
-Signed-off-by: Chris Boot <bootc at bootc.net>
-Tested-by: Jeff Pieper <jeffrey.e.pieper at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/intel/e1000e/netdev.c |    8 --------
- 1 file changed, 8 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/netdev.c b/drivers/net/ethernet/intel/e1000e/netdev.c
-index 4e933d1..64d3f98 100644
---- a/drivers/net/ethernet/intel/e1000e/netdev.c
-+++ b/drivers/net/ethernet/intel/e1000e/netdev.c
-@@ -5132,14 +5132,6 @@ static int e1000_change_mtu(struct net_device *netdev, int new_mtu)
- 		return -EINVAL;
- 	}
- 
--	/* 82573 Errata 17 */
--	if (((adapter->hw.mac.type == e1000_82573) ||
--	     (adapter->hw.mac.type == e1000_82574)) &&
--	    (max_frame > ETH_FRAME_LEN + ETH_FCS_LEN)) {
--		adapter->flags2 |= FLAG2_DISABLE_ASPM_L1;
--		e1000e_disable_aspm(adapter->pdev, PCIE_LINK_STATE_L1);
--	}
--
- 	while (test_and_set_bit(__E1000_RESETTING, &adapter->state))
- 		usleep_range(1000, 2000);
- 	/* e1000e_down -> e1000e_reset dependent on max_frame_size & mtu */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0014-drm-i915-Do-the-fallback-non-IRQ-wait-in-ring-thrott.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0014-drm-i915-Do-the-fallback-non-IRQ-wait-in-ring-thrott.patch
deleted file mode 100644
index 3601ef4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0014-drm-i915-Do-the-fallback-non-IRQ-wait-in-ring-thrott.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f00febe1475d06993b3f723ece375388dcf3bb9b Mon Sep 17 00:00:00 2001
-From: Eric Anholt <eric at anholt.net>
-Date: Thu, 22 Dec 2011 14:54:59 -0800
-Subject: [PATCH 14/46] drm/i915: Do the fallback non-IRQ wait in ring
- throttle, too.
-
-commit 7ea29b13e5e3e1e61e612349eb0366efdb6457f3 upstream.
-
-As a workaround for IRQ synchronization issues in the gen7 BLT ring,
-we want to turn the two wait functions into polling loops.
-
-Signed-off-by: Eric Anholt <eric at anholt.net>
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Acked-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_gem.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 3e7c478..3e2edc6 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -3312,6 +3312,10 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
- 
- 			if (ret == 0 && atomic_read(&dev_priv->mm.wedged))
- 				ret = -EIO;
-+		} else if (wait_for(i915_seqno_passed(ring->get_seqno(ring),
-+						      seqno) ||
-+				    atomic_read(&dev_priv->mm.wedged), 3000)) {
-+			ret = -EBUSY;
- 		}
- 	}
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0015-staging-rts_pstor-Fix-possible-panic-by-NULL-pointer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0015-staging-rts_pstor-Fix-possible-panic-by-NULL-pointer.patch
deleted file mode 100644
index bfe82b6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0015-staging-rts_pstor-Fix-possible-panic-by-NULL-pointer.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 1c17511004913ab88dd06ac7df912125a97ea2c3 Mon Sep 17 00:00:00 2001
-From: wwang <wei_wang at realsil.com.cn>
-Date: Tue, 27 Mar 2012 16:43:11 +0800
-Subject: [PATCH 15/46] staging:rts_pstor:Fix possible panic by NULL pointer
- dereference
-
-commit 0d05568ac79bfc595f1eadc3e0fd7a20a45f7b69 upstream.
-
-rtsx_transport.c (rtsx_transfer_sglist_adma_partial):
-pointer struct scatterlist *sg, which is mapped in dma_map_sg,
-is used as an iterator in later transfer operation. It is corrupted and
-passed to dma_unmap_sg, thus causing fatal unmap of some erroneous address.
-Fix it by duplicating *sg_ptr for iterating.
-
-Signed-off-by: wwang <wei_wang at realsil.com.cn>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/staging/rts_pstor/rtsx_transport.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/staging/rts_pstor/rtsx_transport.c b/drivers/staging/rts_pstor/rtsx_transport.c
-index 4e3d2c1..9b2e5c9 100644
---- a/drivers/staging/rts_pstor/rtsx_transport.c
-+++ b/drivers/staging/rts_pstor/rtsx_transport.c
-@@ -335,6 +335,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card,
- 	int sg_cnt, i, resid;
- 	int err = 0;
- 	long timeleft;
-+	struct scatterlist *sg_ptr;
- 	u32 val = TRIG_DMA;
- 
- 	if ((sg == NULL) || (num_sg <= 0) || !offset || !index)
-@@ -371,7 +372,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card,
- 	sg_cnt = dma_map_sg(&(rtsx->pci->dev), sg, num_sg, dma_dir);
- 
- 	resid = size;
--
-+	sg_ptr = sg;
- 	chip->sgi = 0;
- 	/* Usually the next entry will be @sg@ + 1, but if this sg element
- 	 * is part of a chained scatterlist, it could jump to the start of
-@@ -379,14 +380,14 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card,
- 	 * the proper sg
- 	 */
- 	for (i = 0; i < *index; i++)
--		sg = sg_next(sg);
-+		sg_ptr = sg_next(sg_ptr);
- 	for (i = *index; i < sg_cnt; i++) {
- 		dma_addr_t addr;
- 		unsigned int len;
- 		u8 option;
- 
--		addr = sg_dma_address(sg);
--		len = sg_dma_len(sg);
-+		addr = sg_dma_address(sg_ptr);
-+		len = sg_dma_len(sg_ptr);
- 
- 		RTSX_DEBUGP("DMA addr: 0x%x, Len: 0x%x\n",
- 			     (unsigned int)addr, len);
-@@ -415,7 +416,7 @@ static int rtsx_transfer_sglist_adma_partial(struct rtsx_chip *chip, u8 card,
- 		if (!resid)
- 			break;
- 
--		sg = sg_next(sg);
-+		sg_ptr = sg_next(sg_ptr);
- 	}
- 
- 	RTSX_DEBUGP("SG table count = %d\n", chip->sgi);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0016-gspca-core-Fix-buffers-staying-in-queued-state-after.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0016-gspca-core-Fix-buffers-staying-in-queued-state-after.patch
deleted file mode 100644
index 152c0d5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0016-gspca-core-Fix-buffers-staying-in-queued-state-after.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From f9f47b15a0eb3d8ae86f5d034fd8924ab258a4d2 Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede at redhat.com>
-Date: Tue, 22 May 2012 11:24:05 -0300
-Subject: [PATCH 16/46] gspca-core: Fix buffers staying in queued state after
- a stream_off
-
-commit af05ef01e9cde84620c6855a8d8ab9c8a1db9009 upstream.
-
-This fixes a regression introduced by commit f7059ea and should be
-backported to all supported stable kernels which have this commit.
-
-Signed-off-by: Hans de Goede <hdegoede at redhat.com>
-Tested-by: Antonio Ospite <ospite at studenti.unina.it>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/video/gspca/gspca.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/media/video/gspca/gspca.c b/drivers/media/video/gspca/gspca.c
-index 2ca10df..981501f 100644
---- a/drivers/media/video/gspca/gspca.c
-+++ b/drivers/media/video/gspca/gspca.c
-@@ -1697,7 +1697,7 @@ static int vidioc_streamoff(struct file *file, void *priv,
- 				enum v4l2_buf_type buf_type)
- {
- 	struct gspca_dev *gspca_dev = priv;
--	int ret;
-+	int i, ret;
- 
- 	if (buf_type != V4L2_BUF_TYPE_VIDEO_CAPTURE)
- 		return -EINVAL;
-@@ -1728,6 +1728,8 @@ static int vidioc_streamoff(struct file *file, void *priv,
- 	wake_up_interruptible(&gspca_dev->wq);
- 
- 	/* empty the transfer queues */
-+	for (i = 0; i < gspca_dev->nframes; i++)
-+		gspca_dev->frame[i].v4l2_buf.flags &= ~BUF_ALL_FLAGS;
- 	atomic_set(&gspca_dev->fr_q, 0);
- 	atomic_set(&gspca_dev->fr_i, 0);
- 	gspca_dev->fr_o = 0;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0017-smsusb-add-autodetection-support-for-USB-ID-2040-f5a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0017-smsusb-add-autodetection-support-for-USB-ID-2040-f5a.patch
deleted file mode 100644
index 84e2eb9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0017-smsusb-add-autodetection-support-for-USB-ID-2040-f5a.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From ac5a4cc2f5d46f744484e577f41441acdbb0a68b Mon Sep 17 00:00:00 2001
-From: Michael Krufky <mkrufky at linuxtv.org>
-Date: Fri, 25 May 2012 09:29:12 -0300
-Subject: [PATCH 17/46] smsusb: add autodetection support for USB ID 2040:f5a0
-
-commit 3e1141e2ce5667301a74ca2ef396d9bd5e995f7f upstream.
-
-Signed-off-by: Michael Krufky <mkrufky at linuxtv.org>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/dvb/siano/smsusb.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/media/dvb/siano/smsusb.c b/drivers/media/dvb/siano/smsusb.c
-index b7d1e3e..fb68805 100644
---- a/drivers/media/dvb/siano/smsusb.c
-+++ b/drivers/media/dvb/siano/smsusb.c
-@@ -544,6 +544,8 @@ static const struct usb_device_id smsusb_id_table[] __devinitconst = {
- 		.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
- 	{ USB_DEVICE(0x2040, 0xc0a0),
- 		.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
-+	{ USB_DEVICE(0x2040, 0xf5a0),
-+		.driver_info = SMS1XXX_BOARD_HAUPPAUGE_WINDHAM },
- 	{ } /* Terminating entry */
- 	};
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0018-drm-edid-don-t-return-stack-garbage-from-supports_rb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0018-drm-edid-don-t-return-stack-garbage-from-supports_rb.patch
deleted file mode 100644
index 87ce7d9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0018-drm-edid-don-t-return-stack-garbage-from-supports_rb.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 2d6a30faab149fe943e5648ef8ed9a6de7c112b1 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Tue, 19 Jun 2012 11:33:06 +0200
-Subject: [PATCH 18/46] drm/edid: don't return stack garbage from supports_rb
-
-commit b196a4980ff7bb54db478e2a408dc8b12be15304 upstream.
-
-We need to initialize this to false, because the is_rb callback only
-ever sets it to true.
-
-Noticed while reading through the code.
-
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Reviewed-by: Adam Jackson <ajax at redhat.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/drm_edid.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/drm_edid.c b/drivers/gpu/drm/drm_edid.c
-index 3e927ce..a1ee634 100644
---- a/drivers/gpu/drm/drm_edid.c
-+++ b/drivers/gpu/drm/drm_edid.c
-@@ -585,7 +585,7 @@ static bool
- drm_monitor_supports_rb(struct edid *edid)
- {
- 	if (edid->revision >= 4) {
--		bool ret;
-+		bool ret = false;
- 		drm_for_each_detailed_block((u8 *)edid, is_rb, &ret);
- 		return ret;
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0019-drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0019-drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
deleted file mode 100644
index 85deab4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0019-drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 94823f5367fcb795a9e2d263b23c600ffa1b465f Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs at redhat.com>
-Date: Tue, 26 Jun 2012 12:12:30 +1000
-Subject: [PATCH 19/46] drm/nouveau/fbcon: using nv_two_heads is not a good
- idea
-
-commit 9bd0c15fcfb42f6245447c53347d65ad9e72080b upstream.
-
-nv_two_heads() was never meant to be used outside of pre-nv50 code.  The
-code checks for >= NV_10 for 2 CRTCs, then downgrades a few specific
-chipsets to 1 CRTC based on (pci_device & 0x0ff0).
-
-The breakage example seen is on GTX 560Ti, with a pciid of 0x1200, which
-gets detected as an NV20 (0x020x) with 1 CRTC by nv_two_heads(), causing
-memory corruption because there's actually 2 CRTCs..
-
-This switches fbcon to use the CRTC count directly from the mode_config
-structure, which will also fix the same issue on Kepler boards which have
-4 CRTCs.
-
-Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nouveau_fbcon.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_fbcon.c b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
-index 3a4cc32..cc0801d 100644
---- a/drivers/gpu/drm/nouveau/nouveau_fbcon.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_fbcon.c
-@@ -499,7 +499,7 @@ int nouveau_fbcon_init(struct drm_device *dev)
- 	nfbdev->helper.funcs = &nouveau_fbcon_helper_funcs;
- 
- 	ret = drm_fb_helper_init(dev, &nfbdev->helper,
--				 nv_two_heads(dev) ? 2 : 1, 4);
-+				 dev->mode_config.num_crtc, 4);
- 	if (ret) {
- 		kfree(nfbdev);
- 		return ret;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0020-dm-thin-reinstate-missing-mempool_free-in-cell_relea.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0020-dm-thin-reinstate-missing-mempool_free-in-cell_relea.patch
deleted file mode 100644
index 725aa12..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0020-dm-thin-reinstate-missing-mempool_free-in-cell_relea.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 41466ed94cbd995e8553e3f6bd76b698cdb398ab Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Sat, 12 May 2012 01:43:12 +0100
-Subject: [PATCH 20/46] dm thin: reinstate missing mempool_free in
- cell_release_singleton
-
-commit 03aaae7cdc71bc306888440b1f569d463e917b6d upstream.
-
-Fix a significant memory leak inadvertently introduced during
-simplification of cell_release_singleton() in commit
-6f94a4c45a6f744383f9f695dde019998db3df55 ("dm thin: fix stacked bi_next
-usage").
-
-A cell's hlist_del() must be accompanied by a mempool_free().
-Use __cell_release() to do this, like before.
-
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/dm-thin.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
-index da2f021..532a902 100644
---- a/drivers/md/dm-thin.c
-+++ b/drivers/md/dm-thin.c
-@@ -288,8 +288,10 @@ static void __cell_release(struct cell *cell, struct bio_list *inmates)
- 
- 	hlist_del(&cell->list);
- 
--	bio_list_add(inmates, cell->holder);
--	bio_list_merge(inmates, &cell->bios);
-+	if (inmates) {
-+		bio_list_add(inmates, cell->holder);
-+		bio_list_merge(inmates, &cell->bios);
-+	}
- 
- 	mempool_free(cell, prison->cell_pool);
- }
-@@ -312,9 +314,10 @@ static void cell_release(struct cell *cell, struct bio_list *bios)
-  */
- static void __cell_release_singleton(struct cell *cell, struct bio *bio)
- {
--	hlist_del(&cell->list);
- 	BUG_ON(cell->holder != bio);
- 	BUG_ON(!bio_list_empty(&cell->bios));
-+
-+	__cell_release(cell, NULL);
- }
- 
- static void cell_release_singleton(struct cell *cell, struct bio *bio)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0021-ath9k-Fix-a-WARNING-on-suspend-resume-with-IBSS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0021-ath9k-Fix-a-WARNING-on-suspend-resume-with-IBSS.patch
deleted file mode 100644
index a3917dc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0021-ath9k-Fix-a-WARNING-on-suspend-resume-with-IBSS.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 5bd15d249215ca79b080b366616c0a5f1c38904c Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Wed, 6 Jun 2012 10:33:10 +0530
-Subject: [PATCH 21/46] ath9k: Fix a WARNING on suspend/resume with IBSS
-
-commit 2031b4c2b4904f7448ab9e4bc6b9bf16e32709f5 upstream.
-
-this patch is dependent on the patch "cfg80211: fix interface
-combinations"
-
-In ath9k currently we have ADHOC interface as a single incompatible
-interface. when drv_add_interface is called during resume we got to
-consider number of vifs already present in addition to checking the
-drivers 'opmode' information about ADHOC.  we incorrectly assume
-an ADHOC interface is already present. Then we may miss some driver
-specific data for the ADHOC interface after resume.
-
-The above mentioned checks can be removed from the driver,
-as the patch 'cfg80211: fix interface combinations' ensures that
-if an interface type is not advertised by the driver in any of the
-interface combinations(via ieee80211_iface_combination) then it shall
-be treated as a single incompatible interface. Fixes the following
-warning on suspend/resume with ibss interface.
-
-        ath: phy0: Cannot create ADHOC interface when other
-        interfaces already exist.
-        WARNING: at net/mac80211/driver-ops.h:12
-        ieee80211_reconfig+0x1882/0x1ca0 [mac80211]()
-        Hardware name: 2842RK1
-        wlan2:  Failed check-sdata-in-driver check, flags: 0x0
-
-        Call Trace:
-        [<c01361b2>] warn_slowpath_common+0x72/0xa0
-        [<f8aaa7c2>] ? ieee80211_reconfig+0x1882/0x1ca0
-        [mac80211]
-        [<f8aaa7c2>] ? ieee80211_reconfig+0x1882/0x1ca0
-        [mac80211]
-        [<c0136283>] warn_slowpath_fmt+0x33/0x40
-        [<f8aaa7c2>] ieee80211_reconfig+0x1882/0x1ca0 [mac80211]
-        [<c06c1d1a>] ? mutex_lock_nested+0x23a/0x2f0
-        [<f8a95097>] ieee80211_resume+0x27/0x70 [mac80211]
-        [<fd177edf>] wiphy_resume+0x8f/0xa0 [cfg80211]
-
-Cc: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/main.c |    9 ---------
- 1 file changed, 9 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
-index f76a814..5b22ecd 100644
---- a/drivers/net/wireless/ath/ath9k/main.c
-+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1486,15 +1486,6 @@ static int ath9k_add_interface(struct ieee80211_hw *hw,
- 		}
- 	}
- 
--	if ((ah->opmode == NL80211_IFTYPE_ADHOC) ||
--	    ((vif->type == NL80211_IFTYPE_ADHOC) &&
--	     sc->nvifs > 0)) {
--		ath_err(common, "Cannot create ADHOC interface when other"
--			" interfaces already exist.\n");
--		ret = -EINVAL;
--		goto out;
--	}
--
- 	ath_dbg(common, ATH_DBG_CONFIG,
- 		"Attach a VIF of type: %d\n", vif->type);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0022-cfg80211-fix-potential-deadlock-in-regulatory.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0022-cfg80211-fix-potential-deadlock-in-regulatory.patch
deleted file mode 100644
index fe1bc4b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0022-cfg80211-fix-potential-deadlock-in-regulatory.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From 76f7c2172698cade04f33c7f8841b641c95ddeda Mon Sep 17 00:00:00 2001
-From: Eliad Peller <eliad at wizery.com>
-Date: Tue, 12 Jun 2012 12:53:13 +0300
-Subject: [PATCH 22/46] cfg80211: fix potential deadlock in regulatory
-
-commit fe20b39ec32e975f1054c0b7866c873a954adf05 upstream.
-
-reg_timeout_work() calls restore_regulatory_settings() which
-takes cfg80211_mutex.
-
-reg_set_request_processed() already holds cfg80211_mutex
-before calling cancel_delayed_work_sync(reg_timeout),
-so it might deadlock.
-
-Call the async cancel_delayed_work instead, in order
-to avoid the potential deadlock.
-
-This is the relevant lockdep warning:
-
-cfg80211: Calling CRDA for country: XX
-
-======================================================
-[ INFO: possible circular locking dependency detected ]
-3.4.0-rc5-wl+ #26 Not tainted
--------------------------------------------------------
-kworker/0:2/1391 is trying to acquire lock:
- (cfg80211_mutex){+.+.+.}, at: [<bf28ae00>] restore_regulatory_settings+0x34/0x418 [cfg80211]
-
-but task is already holding lock:
- ((reg_timeout).work){+.+...}, at: [<c0059e94>] process_one_work+0x1f0/0x480
-
-which lock already depends on the new lock.
-
-the existing dependency chain (in reverse order) is:
-
--> #2 ((reg_timeout).work){+.+...}:
-       [<c008fd44>] validate_chain+0xb94/0x10f0
-       [<c0090b68>] __lock_acquire+0x8c8/0x9b0
-       [<c0090d40>] lock_acquire+0xf0/0x114
-       [<c005b600>] wait_on_work+0x4c/0x154
-       [<c005c000>] __cancel_work_timer+0xd4/0x11c
-       [<c005c064>] cancel_delayed_work_sync+0x1c/0x20
-       [<bf28b274>] reg_set_request_processed+0x50/0x78 [cfg80211]
-       [<bf28bd84>] set_regdom+0x550/0x600 [cfg80211]
-       [<bf294cd8>] nl80211_set_reg+0x218/0x258 [cfg80211]
-       [<c03c7738>] genl_rcv_msg+0x1a8/0x1e8
-       [<c03c6a00>] netlink_rcv_skb+0x5c/0xc0
-       [<c03c7584>] genl_rcv+0x28/0x34
-       [<c03c6720>] netlink_unicast+0x15c/0x228
-       [<c03c6c7c>] netlink_sendmsg+0x218/0x298
-       [<c03933c8>] sock_sendmsg+0xa4/0xc0
-       [<c039406c>] __sys_sendmsg+0x1e4/0x268
-       [<c0394228>] sys_sendmsg+0x4c/0x70
-       [<c0013840>] ret_fast_syscall+0x0/0x3c
-
--> #1 (reg_mutex){+.+.+.}:
-       [<c008fd44>] validate_chain+0xb94/0x10f0
-       [<c0090b68>] __lock_acquire+0x8c8/0x9b0
-       [<c0090d40>] lock_acquire+0xf0/0x114
-       [<c04734dc>] mutex_lock_nested+0x48/0x320
-       [<bf28b2cc>] reg_todo+0x30/0x538 [cfg80211]
-       [<c0059f44>] process_one_work+0x2a0/0x480
-       [<c005a4b4>] worker_thread+0x1bc/0x2bc
-       [<c0061148>] kthread+0x98/0xa4
-       [<c0014af4>] kernel_thread_exit+0x0/0x8
-
--> #0 (cfg80211_mutex){+.+.+.}:
-       [<c008ed58>] print_circular_bug+0x68/0x2cc
-       [<c008fb28>] validate_chain+0x978/0x10f0
-       [<c0090b68>] __lock_acquire+0x8c8/0x9b0
-       [<c0090d40>] lock_acquire+0xf0/0x114
-       [<c04734dc>] mutex_lock_nested+0x48/0x320
-       [<bf28ae00>] restore_regulatory_settings+0x34/0x418 [cfg80211]
-       [<bf28b200>] reg_timeout_work+0x1c/0x20 [cfg80211]
-       [<c0059f44>] process_one_work+0x2a0/0x480
-       [<c005a4b4>] worker_thread+0x1bc/0x2bc
-       [<c0061148>] kthread+0x98/0xa4
-       [<c0014af4>] kernel_thread_exit+0x0/0x8
-
-other info that might help us debug this:
-
-Chain exists of:
-  cfg80211_mutex --> reg_mutex --> (reg_timeout).work
-
- Possible unsafe locking scenario:
-
-       CPU0                    CPU1
-       ----                    ----
-  lock((reg_timeout).work);
-                               lock(reg_mutex);
-                               lock((reg_timeout).work);
-  lock(cfg80211_mutex);
-
- *** DEADLOCK ***
-
-2 locks held by kworker/0:2/1391:
- #0:  (events){.+.+.+}, at: [<c0059e94>] process_one_work+0x1f0/0x480
- #1:  ((reg_timeout).work){+.+...}, at: [<c0059e94>] process_one_work+0x1f0/0x480
-
-stack backtrace:
-[<c001b928>] (unwind_backtrace+0x0/0x12c) from [<c0471d3c>] (dump_stack+0x20/0x24)
-[<c0471d3c>] (dump_stack+0x20/0x24) from [<c008ef70>] (print_circular_bug+0x280/0x2cc)
-[<c008ef70>] (print_circular_bug+0x280/0x2cc) from [<c008fb28>] (validate_chain+0x978/0x10f0)
-[<c008fb28>] (validate_chain+0x978/0x10f0) from [<c0090b68>] (__lock_acquire+0x8c8/0x9b0)
-[<c0090b68>] (__lock_acquire+0x8c8/0x9b0) from [<c0090d40>] (lock_acquire+0xf0/0x114)
-[<c0090d40>] (lock_acquire+0xf0/0x114) from [<c04734dc>] (mutex_lock_nested+0x48/0x320)
-[<c04734dc>] (mutex_lock_nested+0x48/0x320) from [<bf28ae00>] (restore_regulatory_settings+0x34/0x418 [cfg80211])
-[<bf28ae00>] (restore_regulatory_settings+0x34/0x418 [cfg80211]) from [<bf28b200>] (reg_timeout_work+0x1c/0x20 [cfg80211])
-[<bf28b200>] (reg_timeout_work+0x1c/0x20 [cfg80211]) from [<c0059f44>] (process_one_work+0x2a0/0x480)
-[<c0059f44>] (process_one_work+0x2a0/0x480) from [<c005a4b4>] (worker_thread+0x1bc/0x2bc)
-[<c005a4b4>] (worker_thread+0x1bc/0x2bc) from [<c0061148>] (kthread+0x98/0xa4)
-[<c0061148>] (kthread+0x98/0xa4) from [<c0014af4>] (kernel_thread_exit+0x0/0x8)
-cfg80211: Calling CRDA to update world regulatory domain
-cfg80211: World regulatory domain updated:
-cfg80211:   (start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)
-cfg80211:   (2402000 KHz - 2472000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
-cfg80211:   (2457000 KHz - 2482000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
-cfg80211:   (2474000 KHz - 2494000 KHz @ 20000 KHz), (300 mBi, 2000 mBm)
-cfg80211:   (5170000 KHz - 5250000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
-cfg80211:   (5735000 KHz - 5835000 KHz @ 40000 KHz), (300 mBi, 2000 mBm)
-
-Signed-off-by: Eliad Peller <eliad at wizery.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/reg.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/wireless/reg.c b/net/wireless/reg.c
-index c1c99dd..d57d05b 100644
---- a/net/wireless/reg.c
-+++ b/net/wireless/reg.c
-@@ -1369,7 +1369,7 @@ static void reg_set_request_processed(void)
- 	spin_unlock(&reg_requests_lock);
- 
- 	if (last_request->initiator == NL80211_REGDOM_SET_BY_USER)
--		cancel_delayed_work_sync(&reg_timeout);
-+		cancel_delayed_work(&reg_timeout);
- 
- 	if (need_more_processing)
- 		schedule_work(&reg_work);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0023-ath9k-Fix-softlockup-in-AR9485.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0023-ath9k-Fix-softlockup-in-AR9485.patch
deleted file mode 100644
index 7a88ca0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0023-ath9k-Fix-softlockup-in-AR9485.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 7195eb3dcc15a2a0ea8c557806abf32241e276d1 Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Wed, 13 Jun 2012 21:28:09 +0530
-Subject: [PATCH 23/46] ath9k: Fix softlockup in AR9485
-
-commit bcb7ad7bcbef030e6ba71ede1f9866368aca7c99 upstream.
-
-steps to recreate:
-load latest ath9k driver with AR9485
-stop the network-manager and wpa_supplicant
-bring the interface up
-
-	Call Trace:
-	[<ffffffffa0517490>] ? ath_hw_check+0xe0/0xe0 [ath9k]
-	[<ffffffff812cd1e8>] __const_udelay+0x28/0x30
-	[<ffffffffa03bae7a>] ar9003_get_pll_sqsum_dvc+0x4a/0x80 [ath9k_hw]
-	[<ffffffffa05174eb>] ath_hw_pll_work+0x5b/0xe0 [ath9k]
-	[<ffffffff810744fe>] process_one_work+0x11e/0x470
-	[<ffffffff8107530f>] worker_thread+0x15f/0x360
-	[<ffffffff810751b0>] ? manage_workers+0x230/0x230
-	[<ffffffff81079af3>] kthread+0x93/0xa0
-	[<ffffffff815fd3a4>] kernel_thread_helper+0x4/0x10
-	[<ffffffff81079a60>] ? kthread_freezable_should_stop+0x70/0x70
-	[<ffffffff815fd3a0>] ? gs_change+0x13/0x13
-
-ensure that the PLL-WAR for AR9485/AR9340 is executed only if the STA is
-associated (or) IBSS/AP mode had started beaconing. Ideally this WAR
-is needed to recover from some rare beacon stuck during stress testing.
-Before the STA is associated/IBSS had started beaconing, PLL4(0x1618c)
-always seem to have zero even though we had configured PLL3(0x16188) to
-query about PLL's locking status. When we keep on polling infinitely PLL4's
-8th bit(ie check for PLL locking measurements is done), machine hangs
-due to softlockup.
-
-fixes https://bugzilla.redhat.com/show_bug.cgi?id=811142
-
-Reported-by: Rolf Offermanns <rolf.offermanns at gmx.net>
-Tested-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/main.c |    9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/drivers/net/wireless/ath/ath9k/main.c b/drivers/net/wireless/ath/ath9k/main.c
-index 5b22ecd..95437fc 100644
---- a/drivers/net/wireless/ath/ath9k/main.c
-+++ b/drivers/net/wireless/ath/ath9k/main.c
-@@ -1042,6 +1042,15 @@ void ath_hw_pll_work(struct work_struct *work)
- 					    hw_pll_work.work);
- 	u32 pll_sqsum;
- 
-+	/*
-+	 * ensure that the PLL WAR is executed only
-+	 * after the STA is associated (or) if the
-+	 * beaconing had started in interfaces that
-+	 * uses beacons.
-+	 */
-+	if (!(sc->sc_flags & SC_OP_BEACONS))
-+		return;
-+
- 	if (AR_SREV_9485(sc->sc_ah)) {
- 
- 		ath9k_ps_wakeup(sc);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0024-can-c_can-precedence-error-in-c_can_chip_config.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0024-can-c_can-precedence-error-in-c_can_chip_config.patch
deleted file mode 100644
index 4fd58e4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0024-can-c_can-precedence-error-in-c_can_chip_config.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From a06c6152d3db3bab83eefcbff5a1e41c91c8295d Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Fri, 15 Jun 2012 00:20:44 +0000
-Subject: [PATCH 24/46] can: c_can: precedence error in c_can_chip_config()
-
-commit d9cb9bd63eb27ac19f26a8547128c053f43a5da8 upstream.
-
-(CAN_CTRLMODE_LISTENONLY & CAN_CTRLMODE_LOOPBACK) is (0x02 & 0x01) which
-is zero so the condition is never true.  The intent here was to test
-that both flags were set.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Acked-by: Oliver Hartkopp <socketcan at hartkopp.net>
-Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/can/c_can/c_can.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/can/c_can/c_can.c b/drivers/net/can/c_can/c_can.c
-index 8dc84d6..86cd532 100644
---- a/drivers/net/can/c_can/c_can.c
-+++ b/drivers/net/can/c_can/c_can.c
-@@ -590,8 +590,8 @@ static void c_can_chip_config(struct net_device *dev)
- 	priv->write_reg(priv, &priv->regs->control,
- 			CONTROL_ENABLE_AR);
- 
--	if (priv->can.ctrlmode & (CAN_CTRLMODE_LISTENONLY &
--					CAN_CTRLMODE_LOOPBACK)) {
-+	if ((priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) &&
-+	    (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK)) {
- 		/* loopback + silent mode : useful for hot self-test */
- 		priv->write_reg(priv, &priv->regs->control, CONTROL_EIE |
- 				CONTROL_SIE | CONTROL_IE | CONTROL_TEST);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch
deleted file mode 100644
index 82df3fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From aabb8d6daa5fecfc6086a480865312860e6a1080 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Fri, 15 Jun 2012 03:04:52 +0200
-Subject: [PATCH 25/46] ath9k: fix a tx rate duration calculation bug
-
-commit 76591bea9714a58d8924154068c78d702eb2cb17 upstream.
-
-The rate pointer variable for a rate series is used in a loop before it is
-initialized. This went unnoticed because it was used earlier for the RTS/CTS
-rate. This bug can lead to the wrong PHY type being passed to the
-duration calculation function.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/xmit.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/xmit.c b/drivers/net/wireless/ath/ath9k/xmit.c
-index 76fd277..c59c592 100644
---- a/drivers/net/wireless/ath/ath9k/xmit.c
-+++ b/drivers/net/wireless/ath/ath9k/xmit.c
-@@ -936,13 +936,13 @@ static void ath_buf_set_rate(struct ath_softc *sc, struct ath_buf *bf,
- 		}
- 
- 		/* legacy rates */
-+		rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx];
- 		if ((tx_info->band == IEEE80211_BAND_2GHZ) &&
- 		    !(rate->flags & IEEE80211_RATE_ERP_G))
- 			phy = WLAN_RC_PHY_CCK;
- 		else
- 			phy = WLAN_RC_PHY_OFDM;
- 
--		rate = &sc->sbands[tx_info->band].bitrates[rates[i].idx];
- 		info->rates[i].Rate = rate->hw_value;
- 		if (rate->hw_value_short) {
- 			if (rates[i].flags & IEEE80211_TX_RC_USE_SHORT_PREAMBLE)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0026-batman-adv-fix-skb-data-assignment.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0026-batman-adv-fix-skb-data-assignment.patch
deleted file mode 100644
index f64ab78..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0026-batman-adv-fix-skb-data-assignment.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 124c9eb2772ae36b2a2d9afa510976cc38a497ef Mon Sep 17 00:00:00 2001
-From: Antonio Quartulli <ordex at autistici.org>
-Date: Fri, 29 Jun 2012 22:58:03 +0200
-Subject: [PATCH 26/46] batman-adv: fix skb->data assignment
-
-commit 2c995ff892313009e336ecc8ec3411022f5b1c39 upstream.
-
-skb_linearize(skb) possibly rearranges the skb internal data and then changes
-the skb->data pointer value. For this reason any other pointer in the code that
-was assigned skb->data before invoking skb_linearise(skb) must be re-assigned.
-
-In the current tt_query message handling code this is not done and therefore, in
-case of skb linearization, the pointer used to handle the packet header ends up
-in pointing to free'd memory.
-
-This bug was introduced by a73105b8d4c765d9ebfb664d0a66802127d8e4c7
-(batman-adv: improved client announcement mechanism)
-
-Signed-off-by: Antonio Quartulli <ordex at autistici.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[This patch is a backport for kernel versions 3.1 and 3.2 - Antonio]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/batman-adv/routing.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/batman-adv/routing.c b/net/batman-adv/routing.c
-index f961cc5..da587ad 100644
---- a/net/batman-adv/routing.c
-+++ b/net/batman-adv/routing.c
-@@ -619,6 +619,8 @@ int recv_tt_query(struct sk_buff *skb, struct hard_iface *recv_if)
- 		/* packet needs to be linearized to access the TT changes */
- 		if (skb_linearize(skb) < 0)
- 			goto out;
-+		/* skb_linearize() possibly changed skb->data */
-+		tt_query = (struct tt_query_packet *)skb->data;
- 
- 		if (is_my_mac(tt_query->dst))
- 			handle_tt_response(bat_priv, tt_query);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0027-ARM-SAMSUNG-Should-check-for-IS_ERR-clk-instead-of-N.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0027-ARM-SAMSUNG-Should-check-for-IS_ERR-clk-instead-of-N.patch
deleted file mode 100644
index 99b9398..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0027-ARM-SAMSUNG-Should-check-for-IS_ERR-clk-instead-of-N.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From dcf35ea664aae563cd99db11c78285f28b7bdcde Mon Sep 17 00:00:00 2001
-From: Jonghwan Choi <jhbird.choi at samsung.com>
-Date: Wed, 20 Jun 2012 17:05:37 +0900
-Subject: [PATCH 27/46] ARM: SAMSUNG: Should check for IS_ERR(clk) instead of
- NULL
-
-commit a5d8f4765f0e92ef027492a8cb979c5b8d45f2c3 upstream.
-
-On the error condition clk_get() returns ERR_PTR().
-
-Signed-off-by: Jonghwan Choi <jhbird.choi at samsung.com>
-Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/plat-samsung/include/plat/watchdog-reset.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/plat-samsung/include/plat/watchdog-reset.h b/arch/arm/plat-samsung/include/plat/watchdog-reset.h
-index 40dbb2b..11b19ea 100644
---- a/arch/arm/plat-samsung/include/plat/watchdog-reset.h
-+++ b/arch/arm/plat-samsung/include/plat/watchdog-reset.h
-@@ -24,7 +24,7 @@ static inline void arch_wdt_reset(void)
- 
- 	__raw_writel(0, S3C2410_WTCON);	  /* disable watchdog, to be safe  */
- 
--	if (s3c2410_wdtclk)
-+	if (!IS_ERR(s3c2410_wdtclk))
- 		clk_enable(s3c2410_wdtclk);
- 
- 	/* put initial values into count and data */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0028-ath9k_hw-avoid-possible-infinite-loop-in-ar9003_get_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0028-ath9k_hw-avoid-possible-infinite-loop-in-ar9003_get_.patch
deleted file mode 100644
index 2b1b0a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0028-ath9k_hw-avoid-possible-infinite-loop-in-ar9003_get_.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 750f92b77aa8db48a56f5d34dd6a61a3184cf119 Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Mon, 18 Jun 2012 13:13:30 +0530
-Subject: [PATCH 28/46] ath9k_hw: avoid possible infinite loop in
- ar9003_get_pll_sqsum_dvc
-
-commit f18e3c6b67f448ec47b3a5b242789bd3d5644879 upstream.
-
-"ath9k: Fix softlockup in AR9485" with commit id
-64bc1239c790e051ff677e023435d770d2ffa174 fixed the reported
-issue, yet its better to avoid the possible infinite loop
-in ar9003_get_pll_sqsum_dvc by having a timeout as suggested
-by ath9k maintainers.
-http://www.spinics.net/lists/linux-wireless/msg92126.html.
-Based on my testing PLL's locking measurement is done in
-~200us (2 iterations).
-
-Cc: Rolf Offermanns <rolf.offermanns at gmx.net>
-Cc: Sujith Manoharan <c_manoha at qca.qualcomm.com>
-Cc: Senthil Balasubramanian <senthilb at qca.qualcomm.com>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/hw.c |   14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
-index 8b0c2ca..6973620 100644
---- a/drivers/net/wireless/ath/ath9k/hw.c
-+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -718,13 +718,25 @@ static void ath9k_hw_init_qos(struct ath_hw *ah)
- 
- u32 ar9003_get_pll_sqsum_dvc(struct ath_hw *ah)
- {
-+	struct ath_common *common = ath9k_hw_common(ah);
-+	int i = 0;
-+
- 	REG_CLR_BIT(ah, PLL3, PLL3_DO_MEAS_MASK);
- 	udelay(100);
- 	REG_SET_BIT(ah, PLL3, PLL3_DO_MEAS_MASK);
- 
--	while ((REG_READ(ah, PLL4) & PLL4_MEAS_DONE) == 0)
-+	while ((REG_READ(ah, PLL4) & PLL4_MEAS_DONE) == 0) {
-+
- 		udelay(100);
- 
-+		if (WARN_ON_ONCE(i >= 100)) {
-+			ath_err(common, "PLL4 meaurement not done\n");
-+			break;
-+		}
-+
-+		i++;
-+	}
-+
- 	return (REG_READ(ah, PLL3) & SQSUM_DVC_MASK) >> 3;
- }
- EXPORT_SYMBOL(ar9003_get_pll_sqsum_dvc);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0029-iwlwifi-remove-log_event-debugfs-file-debugging-is-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0029-iwlwifi-remove-log_event-debugfs-file-debugging-is-d.patch
deleted file mode 100644
index 65fb0be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0029-iwlwifi-remove-log_event-debugfs-file-debugging-is-d.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 470e08b2e73b3ce64336de8d55b009e4782735b8 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Wed, 20 Jun 2012 08:46:25 +0200
-Subject: [PATCH 29/46] iwlwifi: remove log_event debugfs file debugging is
- disabled
-
-commit 882b7b7d11d65e8eccce738f1ce97cdfdb998f9f upstream.
-
-When debugging is disabled, the event log functions aren't
-functional in the way that the debugfs file expects. This
-leads to the debugfs access crashing. Since the event log
-functions aren't functional then, remove the debugfs file
-when CONFIG_IWLWIFI_DEBUG is not set.
-
-Reported-by: Lekensteyn <lekensteyn at gmail.com>
-Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-trans-pcie.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
-index 5815cf5..4661a64 100644
---- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie.c
-@@ -1777,6 +1777,7 @@ static ssize_t iwl_dbgfs_rx_queue_read(struct file *file,
- 	return simple_read_from_buffer(user_buf, count, ppos, buf, pos);
- }
- 
-+#ifdef CONFIG_IWLWIFI_DEBUG
- static ssize_t iwl_dbgfs_log_event_read(struct file *file,
- 					 char __user *user_buf,
- 					 size_t count, loff_t *ppos)
-@@ -1814,6 +1815,7 @@ static ssize_t iwl_dbgfs_log_event_write(struct file *file,
- 
- 	return count;
- }
-+#endif
- 
- static ssize_t iwl_dbgfs_interrupt_read(struct file *file,
- 					char __user *user_buf,
-@@ -1941,7 +1943,9 @@ static ssize_t iwl_dbgfs_fh_reg_read(struct file *file,
- 	return ret;
- }
- 
-+#ifdef CONFIG_IWLWIFI_DEBUG
- DEBUGFS_READ_WRITE_FILE_OPS(log_event);
-+#endif
- DEBUGFS_READ_WRITE_FILE_OPS(interrupt);
- DEBUGFS_READ_FILE_OPS(fh_reg);
- DEBUGFS_READ_FILE_OPS(rx_queue);
-@@ -1957,7 +1961,9 @@ static int iwl_trans_pcie_dbgfs_register(struct iwl_trans *trans,
- {
- 	DEBUGFS_ADD_FILE(rx_queue, dir, S_IRUSR);
- 	DEBUGFS_ADD_FILE(tx_queue, dir, S_IRUSR);
-+#ifdef CONFIG_IWLWIFI_DEBUG
- 	DEBUGFS_ADD_FILE(log_event, dir, S_IWUSR | S_IRUSR);
-+#endif
- 	DEBUGFS_ADD_FILE(interrupt, dir, S_IWUSR | S_IRUSR);
- 	DEBUGFS_ADD_FILE(csr, dir, S_IWUSR);
- 	DEBUGFS_ADD_FILE(fh_reg, dir, S_IRUSR);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0030-ARM-SAMSUNG-Fix-for-S3C2412-EBI-memory-mapping.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0030-ARM-SAMSUNG-Fix-for-S3C2412-EBI-memory-mapping.patch
deleted file mode 100644
index 4a91186..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0030-ARM-SAMSUNG-Fix-for-S3C2412-EBI-memory-mapping.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 4885fac40cf4f8adf4c6832d90b3b60c4ac44f19 Mon Sep 17 00:00:00 2001
-From: Jose Miguel Goncalves <jose.goncalves at inov.pt>
-Date: Sat, 12 May 2012 06:11:49 +0900
-Subject: [PATCH 30/46] ARM: SAMSUNG: Fix for S3C2412 EBI memory mapping
-
-commit 3dca938656c7b0ff6b0717a5dde0f5f45e592be5 upstream.
-
-While upgrading the kernel on a S3C2412 based board I've noted
-that it was impossible to boot the board with a 2.6.32 or upper
-kernel. I've tracked down the problem to the EBI virtual memory
-mapping that is in conflict with the IO mapping definition in
-arch/arm/mach-s3c24xx/s3c2412.c.
-
-Signed-off-by: Jose Miguel Goncalves <jose.goncalves at inov.pt>
-Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/plat-samsung/include/plat/map-s3c.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/plat-samsung/include/plat/map-s3c.h b/arch/arm/plat-samsung/include/plat/map-s3c.h
-index 7d04875..c0c70a8 100644
---- a/arch/arm/plat-samsung/include/plat/map-s3c.h
-+++ b/arch/arm/plat-samsung/include/plat/map-s3c.h
-@@ -22,7 +22,7 @@
- #define S3C24XX_VA_WATCHDOG	S3C_VA_WATCHDOG
- 
- #define S3C2412_VA_SSMC		S3C_ADDR_CPU(0x00000000)
--#define S3C2412_VA_EBI		S3C_ADDR_CPU(0x00010000)
-+#define S3C2412_VA_EBI		S3C_ADDR_CPU(0x00100000)
- 
- #define S3C2410_PA_UART		(0x50000000)
- #define S3C24XX_PA_UART		S3C2410_PA_UART
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0031-USB-option-add-id-for-Cellient-MEN-200.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0031-USB-option-add-id-for-Cellient-MEN-200.patch
deleted file mode 100644
index d41471f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0031-USB-option-add-id-for-Cellient-MEN-200.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 8ca01cdb21b1e0daed013a4536ca89543f844424 Mon Sep 17 00:00:00 2001
-From: Dmitry Shmygov <shmygov at rambler.ru>
-Date: Wed, 20 Jun 2012 15:51:40 +0400
-Subject: [PATCH 31/46] USB: option: add id for Cellient MEN-200
-
-commit 1e2c4e59d2b8797973471b4a287a43eac12a0f40 upstream.
-
-Add vendor and product ID to option.c driver
-for Cellient MEN-200 EVDO Rev.B 450MHz data module.
-http://cellient.com
-
-Signed-off-by: Dmitry Shmygov <shmygov at rambler.ru>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 61d6c31..e311711c 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -496,6 +496,10 @@ static void option_instat_callback(struct urb *urb);
- /* MediaTek products */
- #define MEDIATEK_VENDOR_ID			0x0e8d
- 
-+/* Cellient products */
-+#define CELLIENT_VENDOR_ID			0x2692
-+#define CELLIENT_PRODUCT_MEN200			0x9005
-+
- /* some devices interfaces need special handling due to a number of reasons */
- enum option_blacklist_reason {
- 		OPTION_BLACKLIST_NONE = 0,
-@@ -1227,6 +1231,7 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) },        /* MediaTek MT6276M modem & app port */
-+	{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
- 	{ } /* Terminating entry */
- };
- MODULE_DEVICE_TABLE(usb, option_ids);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0032-oprofile-perf-use-NR_CPUS-instead-or-nr_cpumask_bits.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0032-oprofile-perf-use-NR_CPUS-instead-or-nr_cpumask_bits.patch
deleted file mode 100644
index e2c5be8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0032-oprofile-perf-use-NR_CPUS-instead-or-nr_cpumask_bits.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From fa7b3de0ebfa0cd8a833ea2daa5ded5ea50fd085 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 8 Jun 2012 16:16:04 +0100
-Subject: [PATCH 32/46] oprofile: perf: use NR_CPUS instead or nr_cpumask_bits
- for static array
-
-commit e734568b675c985db2026848fefaac01c22977a5 upstream.
-
-The OProfile perf backend uses a static array to keep track of the
-perf events on the system. When compiling with CONFIG_CPUMASK_OFFSTACK=y
-&& SMP, nr_cpumask_bits is not a compile-time constant and the build
-will fail with:
-
-oprofile_perf.c:28: error: variably modified 'perf_events' at file scope
-
-This patch uses NR_CPUs instead of nr_cpumask_bits for the array
-initialisation. If this causes space problems in the future, we can
-always move to dynamic allocation for the events array.
-
-Cc: Matt Fleming <matt at console-pimps.org>
-Reported-by: Russell King - ARM Linux <linux at arm.linux.org.uk>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Robert Richter <robert.richter at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/oprofile/oprofile_perf.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/oprofile/oprofile_perf.c b/drivers/oprofile/oprofile_perf.c
-index da14432..efc4b7f 100644
---- a/drivers/oprofile/oprofile_perf.c
-+++ b/drivers/oprofile/oprofile_perf.c
-@@ -25,7 +25,7 @@ static int oprofile_perf_enabled;
- static DEFINE_MUTEX(oprofile_perf_mutex);
- 
- static struct op_counter_config *counter_config;
--static struct perf_event **perf_events[nr_cpumask_bits];
-+static struct perf_event **perf_events[NR_CPUS];
- static int num_counters;
- 
- /*
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0033-drm-i915-Refactor-the-deferred-PM_IIR-handling-into-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0033-drm-i915-Refactor-the-deferred-PM_IIR-handling-into-.patch
deleted file mode 100644
index ac1efd7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0033-drm-i915-Refactor-the-deferred-PM_IIR-handling-into-.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 179d0e42c797861a350b6f72e534edad4dac0f65 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Sun, 15 Apr 2012 11:56:03 +0100
-Subject: [PATCH 33/46] drm/i915: Refactor the deferred PM_IIR handling into a
- single function
-
-commit fc6826d1dcd65f3d1e9a5377678882e4e08f02be upstream.
-
-This function, along with the registers and deferred work hander, are
-all shared with SandyBridge, IvyBridge and their variants. So remove the
-duplicate code into a single function.
-
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-[bwh: Backported to 3.2: adjust context; drop changes for Valley View]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_irq.c |   58 +++++++++++++++++++--------------------
- 1 file changed, 29 insertions(+), 29 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index d3820c2..17c335e 100644
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -424,6 +424,31 @@ static void gen6_pm_rps_work(struct work_struct *work)
- 	mutex_unlock(&dev_priv->dev->struct_mutex);
- }
- 
-+static void gen6_queue_rps_work(struct drm_i915_private *dev_priv,
-+				u32 pm_iir)
-+{
-+	unsigned long flags;
-+
-+	/*
-+	 * IIR bits should never already be set because IMR should
-+	 * prevent an interrupt from being shown in IIR. The warning
-+	 * displays a case where we've unsafely cleared
-+	 * dev_priv->pm_iir. Although missing an interrupt of the same
-+	 * type is not a problem, it displays a problem in the logic.
-+	 *
-+	 * The mask bit in IMR is cleared by rps_work.
-+	 */
-+
-+	spin_lock_irqsave(&dev_priv->rps_lock, flags);
-+	WARN(dev_priv->pm_iir & pm_iir, "Missed a PM interrupt\n");
-+	dev_priv->pm_iir |= pm_iir;
-+	I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir);
-+	POSTING_READ(GEN6_PMIMR);
-+	spin_unlock_irqrestore(&dev_priv->rps_lock, flags);
-+
-+	queue_work(dev_priv->wq, &dev_priv->rps_work);
-+}
-+
- static void pch_irq_handler(struct drm_device *dev, u32 pch_iir)
- {
- 	drm_i915_private_t *dev_priv = (drm_i915_private_t *) dev->dev_private;
-@@ -529,16 +554,8 @@ static irqreturn_t ivybridge_irq_handler(DRM_IRQ_ARGS)
- 		pch_irq_handler(dev, pch_iir);
- 	}
- 
--	if (pm_iir & GEN6_PM_DEFERRED_EVENTS) {
--		unsigned long flags;
--		spin_lock_irqsave(&dev_priv->rps_lock, flags);
--		WARN(dev_priv->pm_iir & pm_iir, "Missed a PM interrupt\n");
--		dev_priv->pm_iir |= pm_iir;
--		I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir);
--		POSTING_READ(GEN6_PMIMR);
--		spin_unlock_irqrestore(&dev_priv->rps_lock, flags);
--		queue_work(dev_priv->wq, &dev_priv->rps_work);
--	}
-+	if (pm_iir & GEN6_PM_DEFERRED_EVENTS)
-+		gen6_queue_rps_work(dev_priv, pm_iir);
- 
- 	/* should clear PCH hotplug event before clear CPU irq */
- 	I915_WRITE(SDEIIR, pch_iir);
-@@ -634,25 +651,8 @@ static irqreturn_t ironlake_irq_handler(DRM_IRQ_ARGS)
- 		i915_handle_rps_change(dev);
- 	}
- 
--	if (IS_GEN6(dev) && pm_iir & GEN6_PM_DEFERRED_EVENTS) {
--		/*
--		 * IIR bits should never already be set because IMR should
--		 * prevent an interrupt from being shown in IIR. The warning
--		 * displays a case where we've unsafely cleared
--		 * dev_priv->pm_iir. Although missing an interrupt of the same
--		 * type is not a problem, it displays a problem in the logic.
--		 *
--		 * The mask bit in IMR is cleared by rps_work.
--		 */
--		unsigned long flags;
--		spin_lock_irqsave(&dev_priv->rps_lock, flags);
--		WARN(dev_priv->pm_iir & pm_iir, "Missed a PM interrupt\n");
--		dev_priv->pm_iir |= pm_iir;
--		I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir);
--		POSTING_READ(GEN6_PMIMR);
--		spin_unlock_irqrestore(&dev_priv->rps_lock, flags);
--		queue_work(dev_priv->wq, &dev_priv->rps_work);
--	}
-+	if (IS_GEN6(dev) && pm_iir & GEN6_PM_DEFERRED_EVENTS)
-+		gen6_queue_rps_work(dev_priv, pm_iir);
- 
- 	/* should clear PCH hotplug event before clear CPU irq */
- 	I915_WRITE(SDEIIR, pch_iir);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0034-drm-i915-rip-out-the-PM_IIR-WARN.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0034-drm-i915-rip-out-the-PM_IIR-WARN.patch
deleted file mode 100644
index bd34e07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0034-drm-i915-rip-out-the-PM_IIR-WARN.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From a01c3081fec2775e6ed17963f2f70ea67d5e6401 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Thu, 21 Jun 2012 14:55:22 +0200
-Subject: [PATCH 34/46] drm/i915: rip out the PM_IIR WARN
-
-commit 58bf8062d0b293b8e1028e5b0342082002886bd4 upstream.
-
-After banging my head against this for the past few months, I still
-don't see how this could possible race under the premise that once an
-irq bit is masked in PM_IMR and reset in PM_IIR it won't show up again
-until we unmask it in PM_IMR.
-
-Still, we have reports of this being seen in the wild. Now Bspec has
-this little bit of lovely language in the PMIIR register:
-
-Public SNB Docs, Vol3Part2, 2.5.14 "PMIIR":
-
-"For each bit, the IIR can store a second pending interrupt if two or
-more of the same interrupt conditions occur before the first condition
-is cleared. Upon clearing the interrupt, the IIR bit will momentarily
-go low, then return high to indicate there is another interrupt
-pending."
-
-Now if we presume that PMIMR only prevent new interrupts from being
-queued, we could easily end up masking an interrupt and clearing it,
-but the 2nd pending interrupt setting the bit in PMIIR right away
-again. Which leads, the next time the irq handler runs, to hitting the
-WARN.
-
-Also, no bad side effects of this have ever been reported. And we've
-tracked down our issues with the gpu turbo getting stuck to bogus
-interrupt generation limits in th RPLIMIT register.
-
-So let's just rip out this WARN as bogus and call it a day. The only
-shallow thing here is that this 2-deep irq queue in the hw makes you
-wonder how racy the windows irq handler is ...
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42907
-Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_irq.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index 17c335e..578ddfc 100644
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -440,7 +440,6 @@ static void gen6_queue_rps_work(struct drm_i915_private *dev_priv,
- 	 */
- 
- 	spin_lock_irqsave(&dev_priv->rps_lock, flags);
--	WARN(dev_priv->pm_iir & pm_iir, "Missed a PM interrupt\n");
- 	dev_priv->pm_iir |= pm_iir;
- 	I915_WRITE(GEN6_PMIMR, dev_priv->pm_iir);
- 	POSTING_READ(GEN6_PMIMR);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0035-drm-i915-Fix-eDP-blank-screen-after-S3-resume-on-HP-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0035-drm-i915-Fix-eDP-blank-screen-after-S3-resume-on-HP-.patch
deleted file mode 100644
index 7f6394c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0035-drm-i915-Fix-eDP-blank-screen-after-S3-resume-on-HP-.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e083a17405e8771aaa8853534c66721aa5aa36ea Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 21 Jun 2012 15:30:41 +0200
-Subject: [PATCH 35/46] drm/i915: Fix eDP blank screen after S3 resume on HP
- desktops
-
-commit 6db65cbb941f9d433659bdad02b307f6d94465df upstream.
-
-This patch fixes the problem on some HP desktop machines with eDP
-which give blank screens after S3 resume.
-
-It turned out that BLC_PWM_CPU_CTL must be written after
-BLC_PWM_CPU_CTL2.  Otherwise it doesn't take effect on these
-SNB machines.
-
-Tested with 3.5-rc3 kernel.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=49233
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_suspend.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
-index a1eb83d..f38d196 100644
---- a/drivers/gpu/drm/i915/i915_suspend.c
-+++ b/drivers/gpu/drm/i915/i915_suspend.c
-@@ -739,8 +739,11 @@ static void i915_restore_display(struct drm_device *dev)
- 	if (HAS_PCH_SPLIT(dev)) {
- 		I915_WRITE(BLC_PWM_PCH_CTL1, dev_priv->saveBLC_PWM_CTL);
- 		I915_WRITE(BLC_PWM_PCH_CTL2, dev_priv->saveBLC_PWM_CTL2);
--		I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL);
-+		/* NOTE: BLC_PWM_CPU_CTL must be written after BLC_PWM_CPU_CTL2;
-+		 * otherwise we get blank eDP screen after S3 on some machines
-+		 */
- 		I915_WRITE(BLC_PWM_CPU_CTL2, dev_priv->saveBLC_CPU_PWM_CTL2);
-+		I915_WRITE(BLC_PWM_CPU_CTL, dev_priv->saveBLC_CPU_PWM_CTL);
- 		I915_WRITE(PCH_PP_ON_DELAYS, dev_priv->savePP_ON_DELAYS);
- 		I915_WRITE(PCH_PP_OFF_DELAYS, dev_priv->savePP_OFF_DELAYS);
- 		I915_WRITE(PCH_PP_DIVISOR, dev_priv->savePP_DIVISOR);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0036-PM-Sleep-Prevent-waiting-forever-on-asynchronous-sus.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0036-PM-Sleep-Prevent-waiting-forever-on-asynchronous-sus.patch
deleted file mode 100644
index 0426542..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0036-PM-Sleep-Prevent-waiting-forever-on-asynchronous-sus.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 148576d5144418385e4a0d59c5c9547d662ae0f2 Mon Sep 17 00:00:00 2001
-From: Mandeep Singh Baines <msb at chromium.org>
-Date: Sun, 24 Jun 2012 23:31:09 +0200
-Subject: [PATCH 36/46] PM / Sleep: Prevent waiting forever on asynchronous
- suspend after abort
-
-commit 1f758b23177d588a71b96ad02990e715949bb82f upstream.
-
-__device_suspend() must always send a completion. Otherwise, parent
-devices will wait forever.
-
-Commit 1e2ef05b, "PM: Limit race conditions between runtime PM and
-system sleep (v2)", introduced a regression by short-circuiting the
-complete_all() for certain error cases.
-
-This patch fixes the bug by always signalling a completion.
-
-Addresses http://crosbug.com/31972
-
-Tested by injecting an abort.
-
-Signed-off-by: Mandeep Singh Baines <msb at chromium.org>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/base/power/main.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/base/power/main.c b/drivers/base/power/main.c
-index c3d2dfc..b96544a 100644
---- a/drivers/base/power/main.c
-+++ b/drivers/base/power/main.c
-@@ -869,7 +869,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
- 	dpm_wait_for_children(dev, async);
- 
- 	if (async_error)
--		return 0;
-+		goto Complete;
- 
- 	pm_runtime_get_noresume(dev);
- 	if (pm_runtime_barrier(dev) && device_may_wakeup(dev))
-@@ -878,7 +878,7 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
- 	if (pm_wakeup_pending()) {
- 		pm_runtime_put_sync(dev);
- 		async_error = -EBUSY;
--		return 0;
-+		goto Complete;
- 	}
- 
- 	device_lock(dev);
-@@ -926,6 +926,8 @@ static int __device_suspend(struct device *dev, pm_message_t state, bool async)
- 	}
- 
- 	device_unlock(dev);
-+
-+ Complete:
- 	complete_all(&dev->power.completion);
- 
- 	if (error) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0037-x86-cpufeature-Rename-X86_FEATURE_DTS-to-X86_FEATURE.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0037-x86-cpufeature-Rename-X86_FEATURE_DTS-to-X86_FEATURE.patch
deleted file mode 100644
index c536a73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0037-x86-cpufeature-Rename-X86_FEATURE_DTS-to-X86_FEATURE.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From edb1135bf688ed567d95e964af22488274890640 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Fri, 22 Jun 2012 10:58:06 -0700
-Subject: [PATCH 37/46] x86, cpufeature: Rename X86_FEATURE_DTS to
- X86_FEATURE_DTHERM
-
-commit 4ad33411308596f2f918603509729922a1ec4411 upstream.
-
-It makes sense to label "Digital Thermal Sensor" as "DTS", but
-unfortunately the string "dts" was already used for "Debug Store", and
-/proc/cpuinfo is a user space ABI.
-
-Therefore, rename this to "dtherm".
-
-This conflict went into mainline via the hwmon tree without any x86
-maintainer ack, and without any kind of hint in the subject.
-
-    a4659053 x86/hwmon: fix initialization of coretemp
-
-Reported-by: Jean Delvare <khali at linux-fr.org>
-Link: http://lkml.kernel.org/r/4FE34BCB.5050305@linux.intel.com
-Cc: Jan Beulich <JBeulich at suse.com>
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-[bwh: Backported to 3.2: drop the coretemp device table change]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/include/asm/cpufeature.h |    2 +-
- arch/x86/kernel/cpu/scattered.c   |    2 +-
- drivers/hwmon/coretemp.c          |    2 +-
- 3 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/x86/include/asm/cpufeature.h b/arch/x86/include/asm/cpufeature.h
-index f3444f7..0c3b775 100644
---- a/arch/x86/include/asm/cpufeature.h
-+++ b/arch/x86/include/asm/cpufeature.h
-@@ -175,7 +175,7 @@
- #define X86_FEATURE_XSAVEOPT	(7*32+ 4) /* Optimized Xsave */
- #define X86_FEATURE_PLN		(7*32+ 5) /* Intel Power Limit Notification */
- #define X86_FEATURE_PTS		(7*32+ 6) /* Intel Package Thermal Status */
--#define X86_FEATURE_DTS		(7*32+ 7) /* Digital Thermal Sensor */
-+#define X86_FEATURE_DTHERM	(7*32+ 7) /* Digital Thermal Sensor */
- 
- /* Virtualization flags: Linux defined, word 8 */
- #define X86_FEATURE_TPR_SHADOW  (8*32+ 0) /* Intel TPR Shadow */
-diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
-index c7f64e6..ea6106c 100644
---- a/arch/x86/kernel/cpu/scattered.c
-+++ b/arch/x86/kernel/cpu/scattered.c
-@@ -31,7 +31,7 @@ void __cpuinit init_scattered_cpuid_features(struct cpuinfo_x86 *c)
- 	const struct cpuid_bit *cb;
- 
- 	static const struct cpuid_bit __cpuinitconst cpuid_bits[] = {
--		{ X86_FEATURE_DTS,		CR_EAX, 0, 0x00000006, 0 },
-+		{ X86_FEATURE_DTHERM,		CR_EAX, 0, 0x00000006, 0 },
- 		{ X86_FEATURE_IDA,		CR_EAX, 1, 0x00000006, 0 },
- 		{ X86_FEATURE_ARAT,		CR_EAX, 2, 0x00000006, 0 },
- 		{ X86_FEATURE_PLN,		CR_EAX, 4, 0x00000006, 0 },
-diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
-index 427468f..0790c98 100644
---- a/drivers/hwmon/coretemp.c
-+++ b/drivers/hwmon/coretemp.c
-@@ -660,7 +660,7 @@ static void __cpuinit get_core_online(unsigned int cpu)
- 	 * sensors. We check this bit only, all the early CPUs
- 	 * without thermal sensors will be filtered out.
- 	 */
--	if (!cpu_has(c, X86_FEATURE_DTS))
-+	if (!cpu_has(c, X86_FEATURE_DTHERM))
- 		return;
- 
- 	if (!pdev) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0038-stable-Allow-merging-of-backports-for-serious-user-v.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0038-stable-Allow-merging-of-backports-for-serious-user-v.patch
deleted file mode 100644
index 37925c6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0038-stable-Allow-merging-of-backports-for-serious-user-v.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 2bbcf955f97142e2b38c1da222da381d3729beb9 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 21 Jun 2012 11:36:50 +0100
-Subject: [PATCH 38/46] stable: Allow merging of backports for serious
- user-visible performance issues
-
-commit eb3979f64d25120d60b9e761a4c58f70b1a02f86 upstream.
-
-Distribution kernel maintainers routinely backport fixes for users that
-were deemed important but not "something critical" as defined by the
-rules. To users of these kernels they are very serious and failing to fix
-them reduces the value of -stable.
-
-The problem is that the patches fixing these issues are often subtle and
-prone to regressions in other ways and need greater care and attention.
-To combat this, these "serious" backports should have a higher barrier
-to entry.
-
-This patch relaxes the rules to allow a distribution maintainer to merge
-to -stable a backported patch or small series that fixes a "serious"
-user-visible performance issue. They should include additional information on
-the user-visible bug affected and a link to the bugzilla entry if available.
-The same rules about the patch being already in mainline still apply.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- Documentation/stable_kernel_rules.txt |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt
-index 21fd05c..e1f856b 100644
---- a/Documentation/stable_kernel_rules.txt
-+++ b/Documentation/stable_kernel_rules.txt
-@@ -12,6 +12,12 @@ Rules on what kind of patches are accepted, and which ones are not, into the
-    marked CONFIG_BROKEN), an oops, a hang, data corruption, a real
-    security issue, or some "oh, that's not good" issue.  In short, something
-    critical.
-+ - Serious issues as reported by a user of a distribution kernel may also
-+   be considered if they fix a notable performance or interactivity issue.
-+   As these fixes are not as obvious and have a higher risk of a subtle
-+   regression they should only be submitted by a distribution kernel
-+   maintainer and include an addendum linking to a bugzilla entry if it
-+   exists and additional information on the user-visible impact.
-  - New device IDs and quirks are also accepted.
-  - No "theoretical race condition" issues, unless an explanation of how the
-    race can be exploited is also provided.
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0039-ALSA-hda-Add-Realtek-ALC280-codec-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0039-ALSA-hda-Add-Realtek-ALC280-codec-support.patch
deleted file mode 100644
index a784376..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0039-ALSA-hda-Add-Realtek-ALC280-codec-support.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 0aab048a80bd01c77244fa5d7e714a1174401ab1 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Mon, 25 Jun 2012 19:49:28 +0200
-Subject: [PATCH 39/46] ALSA: hda - Add Realtek ALC280 codec support
-
-commit befae82e2906cb7155020876a531b0b8c6c8d8c8 upstream.
-
-This chip looks very similar to ALC269 and ALC27* variants. The bug reporter
-has verified that sound was working after this patch had been applied.
-
-BugLink: https://bugs.launchpad.net/bugs/1017017
-Tested-by: Richard Crossley <richardcrossley at o2.co.uk>
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 0005bde..5f096a5 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5988,6 +5988,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
- 	{ .id = 0x10ec0272, .name = "ALC272", .patch = patch_alc662 },
- 	{ .id = 0x10ec0275, .name = "ALC275", .patch = patch_alc269 },
- 	{ .id = 0x10ec0276, .name = "ALC276", .patch = patch_alc269 },
-+	{ .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 },
- 	{ .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",
- 	  .patch = patch_alc861 },
- 	{ .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd },
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0040-USB-option-Add-USB-ID-for-Novatel-Ovation-MC551.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0040-USB-option-Add-USB-ID-for-Novatel-Ovation-MC551.patch
deleted file mode 100644
index 4e011cd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0040-USB-option-Add-USB-ID-for-Novatel-Ovation-MC551.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 2e5d03393a6928616737edfb24457da88d21102b Mon Sep 17 00:00:00 2001
-From: Forest Bond <forest.bond at rapidrollout.com>
-Date: Fri, 22 Jun 2012 10:30:38 -0400
-Subject: [PATCH 40/46] USB: option: Add USB ID for Novatel Ovation MC551
-
-commit 065b07e7a14676f4138ce4619d229c0be5a74230 upstream.
-
-This device is also known as the Verizon USB551L.
-
-Signed-off-by: Forest Bond <forest.bond at rapidrollout.com>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index e311711c..21a4734 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -235,6 +235,7 @@ static void option_instat_callback(struct urb *urb);
- #define NOVATELWIRELESS_PRODUCT_G1		0xA001
- #define NOVATELWIRELESS_PRODUCT_G1_M		0xA002
- #define NOVATELWIRELESS_PRODUCT_G2		0xA010
-+#define NOVATELWIRELESS_PRODUCT_MC551		0xB001
- 
- /* AMOI PRODUCTS */
- #define AMOI_VENDOR_ID				0x1614
-@@ -734,6 +735,8 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G1) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G1_M) },
- 	{ USB_DEVICE(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_G2) },
-+	/* Novatel Ovation MC551 a.k.a. Verizon USB551L */
-+	{ USB_DEVICE_AND_INTERFACE_INFO(NOVATELWIRELESS_VENDOR_ID, NOVATELWIRELESS_PRODUCT_MC551, 0xff, 0xff, 0xff) },
- 
- 	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01) },
- 	{ USB_DEVICE(AMOI_VENDOR_ID, AMOI_PRODUCT_H01A) },
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0041-USB-CP210x-Add-10-Device-IDs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0041-USB-CP210x-Add-10-Device-IDs.patch
deleted file mode 100644
index f6509bf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0041-USB-CP210x-Add-10-Device-IDs.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 88093f6173b2c203d31bf67ed055419f5ec21953 Mon Sep 17 00:00:00 2001
-From: Craig Shelley <craig at microtron.org.uk>
-Date: Tue, 26 Jun 2012 23:20:04 +0100
-Subject: [PATCH 41/46] USB: CP210x Add 10 Device IDs
-
-commit 3fcc8f96829776cf181918461923d1e3bbb831a2 upstream.
-
-This patch adds 10 device IDs for CP210x based devices from the following manufacturers:
-Timewave
-Clipsal
-Festo
-Link Instruments
-
-Signed-off-by: Craig Shelley <craig at microtron.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/cp210x.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index aa0c43f..35e6b5f 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -93,6 +93,7 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x10C4, 0x814B) }, /* West Mountain Radio RIGtalk */
- 	{ USB_DEVICE(0x10C4, 0x8156) }, /* B&G H3000 link cable */
- 	{ USB_DEVICE(0x10C4, 0x815E) }, /* Helicomm IP-Link 1220-DVM */
-+	{ USB_DEVICE(0x10C4, 0x815F) }, /* Timewave HamLinkUSB */
- 	{ USB_DEVICE(0x10C4, 0x818B) }, /* AVIT Research USB to TTL */
- 	{ USB_DEVICE(0x10C4, 0x819F) }, /* MJS USB Toslink Switcher */
- 	{ USB_DEVICE(0x10C4, 0x81A6) }, /* ThinkOptics WavIt */
-@@ -134,7 +135,13 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x10CE, 0xEA6A) }, /* Silicon Labs MobiData GPRS USB Modem 100EU */
- 	{ USB_DEVICE(0x13AD, 0x9999) }, /* Baltech card reader */
- 	{ USB_DEVICE(0x1555, 0x0004) }, /* Owen AC4 USB-RS485 Converter */
-+	{ USB_DEVICE(0x166A, 0x0201) }, /* Clipsal 5500PACA C-Bus Pascal Automation Controller */
-+	{ USB_DEVICE(0x166A, 0x0301) }, /* Clipsal 5800PC C-Bus Wireless PC Interface */
- 	{ USB_DEVICE(0x166A, 0x0303) }, /* Clipsal 5500PCU C-Bus USB interface */
-+	{ USB_DEVICE(0x166A, 0x0304) }, /* Clipsal 5000CT2 C-Bus Black and White Touchscreen */
-+	{ USB_DEVICE(0x166A, 0x0305) }, /* Clipsal C-5000CT2 C-Bus Spectrum Colour Touchscreen */
-+	{ USB_DEVICE(0x166A, 0x0401) }, /* Clipsal L51xx C-Bus Architectural Dimmer */
-+	{ USB_DEVICE(0x166A, 0x0101) }, /* Clipsal 5560884 C-Bus Multi-room Audio Matrix Switcher */
- 	{ USB_DEVICE(0x16D6, 0x0001) }, /* Jablotron serial interface */
- 	{ USB_DEVICE(0x16DC, 0x0010) }, /* W-IE-NE-R Plein & Baus GmbH PL512 Power Supply */
- 	{ USB_DEVICE(0x16DC, 0x0011) }, /* W-IE-NE-R Plein & Baus GmbH RCM Remote Control for MARATON Power Supply */
-@@ -146,7 +153,11 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
- 	{ USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
- 	{ USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
-+	{ USB_DEVICE(0x1E29, 0x0102) }, /* Festo CPX-USB */
-+	{ USB_DEVICE(0x1E29, 0x0501) }, /* Festo CMSP */
- 	{ USB_DEVICE(0x3195, 0xF190) }, /* Link Instruments MSO-19 */
-+	{ USB_DEVICE(0x3195, 0xF280) }, /* Link Instruments MSO-28 */
-+	{ USB_DEVICE(0x3195, 0xF281) }, /* Link Instruments MSO-28 */
- 	{ USB_DEVICE(0x413C, 0x9500) }, /* DW700 GPS USB interface */
- 	{ } /* Terminating Entry */
- };
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0042-xen-netfront-teardown-the-device-before-unregisterin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0042-xen-netfront-teardown-the-device-before-unregisterin.patch
deleted file mode 100644
index 5847cb6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0042-xen-netfront-teardown-the-device-before-unregisterin.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 55cebafff1e8327fe9dfa3b66d6f70bf88138902 Mon Sep 17 00:00:00 2001
-From: Ian Campbell <Ian.Campbell at citrix.com>
-Date: Mon, 25 Jun 2012 22:48:41 +0000
-Subject: [PATCH 42/46] xen/netfront: teardown the device before unregistering
- it.
-
-commit 6bc96d047fe32d76ef79f3195c52a542edf7c705 upstream.
-
-Fixes:
-[   15.470311] WARNING: at /local/scratch/ianc/devel/kernels/linux/fs/sysfs/file.c:498 sysfs_attr_ns+0x95/0xa0()
-[   15.470326] sysfs: kobject eth0 without dirent
-[   15.470333] Modules linked in:
-[   15.470342] Pid: 12, comm: xenwatch Not tainted 3.4.0-x86_32p-xenU #93
-and
-[    9.150554] BUG: unable to handle kernel paging request at 2b359000
-[    9.150577] IP: [<c1279561>] linkwatch_do_dev+0x81/0xc0
-[    9.150592] *pdpt = 000000002c3c9027 *pde = 0000000000000000
-[    9.150604] Oops: 0002 [#1] SMP
-[    9.150613] Modules linked in:
-
-This is http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=675190
-
-Reported-by: George Shuklin <george.shuklin at gmail.com>
-Signed-off-by: Ian Campbell <ian.campbell at citrix.com>
-Tested-by: William Dauchy <wdauchy at gmail.com>
-Cc: 675190 at bugs.debian.org
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/xen-netfront.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/xen-netfront.c b/drivers/net/xen-netfront.c
-index 226faab..fc35308 100644
---- a/drivers/net/xen-netfront.c
-+++ b/drivers/net/xen-netfront.c
-@@ -1922,14 +1922,14 @@ static int __devexit xennet_remove(struct xenbus_device *dev)
- 
- 	dev_dbg(&dev->dev, "%s\n", dev->nodename);
- 
--	unregister_netdev(info->netdev);
--
- 	xennet_disconnect_backend(info);
- 
--	del_timer_sync(&info->rx_refill_timer);
--
- 	xennet_sysfs_delif(info->netdev);
- 
-+	unregister_netdev(info->netdev);
-+
-+	del_timer_sync(&info->rx_refill_timer);
-+
- 	free_percpu(info->stats);
- 
- 	free_netdev(info->netdev);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0043-can-flexcan-use-be32_to_cpup-to-handle-the-value-of-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0043-can-flexcan-use-be32_to_cpup-to-handle-the-value-of-.patch
deleted file mode 100644
index fa007b3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0043-can-flexcan-use-be32_to_cpup-to-handle-the-value-of-.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 06f8253f22e3ba961cc490243917206e2a8a8502 Mon Sep 17 00:00:00 2001
-From: Hui Wang <jason77.wang at gmail.com>
-Date: Wed, 27 Jun 2012 16:19:18 +0800
-Subject: [PATCH 43/46] can: flexcan: use be32_to_cpup to handle the value of
- dt entry
-
-commit 85f2f834e85517307f13e30e630a5fc86f757cb5 upstream.
-
-The freescale arm i.MX series platform can support this driver, and
-usually the arm cpu works in the little endian mode by default, while
-device tree entry value is stored in big endian format, we should use
-be32_to_cpup() to handle them, after modification, it can work well
-both on the le cpu and be cpu.
-
-Cc: Shawn Guo <shawn.guo at linaro.org>
-Signed-off-by: Hui Wang <jason77.wang at gmail.com>
-Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/can/flexcan.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/can/flexcan.c b/drivers/net/can/flexcan.c
-index e023379..e59d006 100644
---- a/drivers/net/can/flexcan.c
-+++ b/drivers/net/can/flexcan.c
-@@ -933,12 +933,12 @@ static int __devinit flexcan_probe(struct platform_device *pdev)
- 	u32 clock_freq = 0;
- 
- 	if (pdev->dev.of_node) {
--		const u32 *clock_freq_p;
-+		const __be32 *clock_freq_p;
- 
- 		clock_freq_p = of_get_property(pdev->dev.of_node,
- 						"clock-frequency", NULL);
- 		if (clock_freq_p)
--			clock_freq = *clock_freq_p;
-+			clock_freq = be32_to_cpup(clock_freq_p);
- 	}
- 
- 	if (!clock_freq) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0044-acpi_pad-fix-power_saving-thread-deadlock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0044-acpi_pad-fix-power_saving-thread-deadlock.patch
deleted file mode 100644
index fd063f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0044-acpi_pad-fix-power_saving-thread-deadlock.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 64a1cb8318eb947d5217e72c7b295a1bda892ecd Mon Sep 17 00:00:00 2001
-From: Stuart Hayes <Stuart_Hayes at Dell.com>
-Date: Wed, 13 Jun 2012 16:10:45 -0500
-Subject: [PATCH 44/46] acpi_pad: fix power_saving thread deadlock
-
-commit 5f1601261050251a5ca293378b492a69d590dacb upstream.
-
-The acpi_pad driver can get stuck in destroy_power_saving_task()
-waiting for kthread_stop() to stop a power_saving thread.  The problem
-is that the isolated_cpus_lock mutex is owned when
-destroy_power_saving_task() calls kthread_stop(), which waits for a
-power_saving thread to end, and the power_saving thread tries to
-acquire the isolated_cpus_lock when it calls round_robin_cpu().  This
-patch fixes the issue by making round_robin_cpu() use its own mutex.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=42981
-
-Signed-off-by: Stuart Hayes <Stuart_Hayes at Dell.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/acpi_pad.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/acpi/acpi_pad.c b/drivers/acpi/acpi_pad.c
-index a43fa1a..1502c502 100644
---- a/drivers/acpi/acpi_pad.c
-+++ b/drivers/acpi/acpi_pad.c
-@@ -36,6 +36,7 @@
- #define ACPI_PROCESSOR_AGGREGATOR_DEVICE_NAME "Processor Aggregator"
- #define ACPI_PROCESSOR_AGGREGATOR_NOTIFY 0x80
- static DEFINE_MUTEX(isolated_cpus_lock);
-+static DEFINE_MUTEX(round_robin_lock);
- 
- static unsigned long power_saving_mwait_eax;
- 
-@@ -107,7 +108,7 @@ static void round_robin_cpu(unsigned int tsk_index)
- 	if (!alloc_cpumask_var(&tmp, GFP_KERNEL))
- 		return;
- 
--	mutex_lock(&isolated_cpus_lock);
-+	mutex_lock(&round_robin_lock);
- 	cpumask_clear(tmp);
- 	for_each_cpu(cpu, pad_busy_cpus)
- 		cpumask_or(tmp, tmp, topology_thread_cpumask(cpu));
-@@ -116,7 +117,7 @@ static void round_robin_cpu(unsigned int tsk_index)
- 	if (cpumask_empty(tmp))
- 		cpumask_andnot(tmp, cpu_online_mask, pad_busy_cpus);
- 	if (cpumask_empty(tmp)) {
--		mutex_unlock(&isolated_cpus_lock);
-+		mutex_unlock(&round_robin_lock);
- 		return;
- 	}
- 	for_each_cpu(cpu, tmp) {
-@@ -131,7 +132,7 @@ static void round_robin_cpu(unsigned int tsk_index)
- 	tsk_in_cpu[tsk_index] = preferred_cpu;
- 	cpumask_set_cpu(preferred_cpu, pad_busy_cpus);
- 	cpu_weight[preferred_cpu]++;
--	mutex_unlock(&isolated_cpus_lock);
-+	mutex_unlock(&round_robin_lock);
- 
- 	set_cpus_allowed_ptr(current, cpumask_of(preferred_cpu));
- }
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0045-batman-adv-only-drop-packets-of-known-wifi-clients.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0045-batman-adv-only-drop-packets-of-known-wifi-clients.patch
deleted file mode 100644
index ce2107d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0045-batman-adv-only-drop-packets-of-known-wifi-clients.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From b3f045e43695ea8ac7c43715d0c98d58d488683d Mon Sep 17 00:00:00 2001
-From: Marek Lindner <lindner_marek at yahoo.de>
-Date: Wed, 20 Jun 2012 17:16:05 +0200
-Subject: [PATCH 45/46] batman-adv: only drop packets of known wifi clients
-
-commit 5870adc68fc39d81089f1e80efdf64b97e5c37a1 upstream.
-
-bug introduced with 59b699cdee039d75915c354da06937102d1f9a84
-
-If the source or destination mac address of an ethernet packet
-could not be found in the translation table the packet was
-dropped if AP isolation was turned on. This behavior would
-make it impossible to send broadcast packets over the mesh as
-the broadcast address will never enter the translation table.
-
-Signed-off-by: Marek Lindner <lindner_marek at yahoo.de>
-Acked-by: Antonio Quartulli <ordex at autistici.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/batman-adv/translation-table.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/net/batman-adv/translation-table.c b/net/batman-adv/translation-table.c
-index 5f09a57..088af45 100644
---- a/net/batman-adv/translation-table.c
-+++ b/net/batman-adv/translation-table.c
-@@ -1816,10 +1816,10 @@ bool is_ap_isolated(struct bat_priv *bat_priv, uint8_t *src, uint8_t *dst)
- {
- 	struct tt_local_entry *tt_local_entry = NULL;
- 	struct tt_global_entry *tt_global_entry = NULL;
--	bool ret = true;
-+	bool ret = false;
- 
- 	if (!atomic_read(&bat_priv->ap_isolation))
--		return false;
-+		goto out;
- 
- 	tt_local_entry = tt_local_hash_find(bat_priv, dst);
- 	if (!tt_local_entry)
-@@ -1829,10 +1829,10 @@ bool is_ap_isolated(struct bat_priv *bat_priv, uint8_t *src, uint8_t *dst)
- 	if (!tt_global_entry)
- 		goto out;
- 
--	if (_is_ap_isolated(tt_local_entry, tt_global_entry))
-+	if (!_is_ap_isolated(tt_local_entry, tt_global_entry))
- 		goto out;
- 
--	ret = false;
-+	ret = true;
- 
- out:
- 	if (tt_global_entry)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0046-Linux-3.2.22.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0046-Linux-3.2.22.patch
deleted file mode 100644
index f96d4a6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.22/0046-Linux-3.2.22.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 453efabb6ea10cbe4a726e9637b76991f39d3655 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 4 Jul 2012 05:44:35 +0100
-Subject: [PATCH 46/46] Linux 3.2.22
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 7eb465e..9a7d921 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 21
-+SUBLEVEL = 22
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0001-splice-fix-racy-pipe-buffers-uses.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0001-splice-fix-racy-pipe-buffers-uses.patch
deleted file mode 100644
index 6441cc2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0001-splice-fix-racy-pipe-buffers-uses.patch
+++ /dev/null
@@ -1,298 +0,0 @@
-From e02d361ade75d22d28ce36460954b4bc6439fc74 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Tue, 12 Jun 2012 15:24:40 +0200
-Subject: [PATCH 01/49] splice: fix racy pipe->buffers uses
-
-commit 047fe3605235888f3ebcda0c728cb31937eadfe6 upstream.
-
-Dave Jones reported a kernel BUG at mm/slub.c:3474! triggered
-by splice_shrink_spd() called from vmsplice_to_pipe()
-
-commit 35f3d14dbbc5 (pipe: add support for shrinking and growing pipes)
-added capability to adjust pipe->buffers.
-
-Problem is some paths don't hold pipe mutex and assume pipe->buffers
-doesn't change for their duration.
-
-Fix this by adding nr_pages_max field in struct splice_pipe_desc, and
-use it in place of pipe->buffers where appropriate.
-
-splice_shrink_spd() loses its struct pipe_inode_info argument.
-
-Reported-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Jens Axboe <axboe at kernel.dk>
-Cc: Alexander Viro <viro at zeniv.linux.org.uk>
-Cc: Tom Herbert <therbert at google.com>
-Tested-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-[bwh: Backported to 3.2:
- - Adjust context in vmsplice_to_pipe()
- - Update one more call to splice_shrink_spd(), from skb_splice_bits()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/splice.c            |   35 ++++++++++++++++++++---------------
- include/linux/splice.h |    8 ++++----
- kernel/relay.c         |    5 +++--
- kernel/trace/trace.c   |    6 ++++--
- mm/shmem.c             |    3 ++-
- net/core/skbuff.c      |    3 ++-
- 6 files changed, 35 insertions(+), 25 deletions(-)
-
-diff --git a/fs/splice.c b/fs/splice.c
-index 6d0dfb8..014fcb4 100644
---- a/fs/splice.c
-+++ b/fs/splice.c
-@@ -274,13 +274,16 @@ void spd_release_page(struct splice_pipe_desc *spd, unsigned int i)
-  * Check if we need to grow the arrays holding pages and partial page
-  * descriptions.
-  */
--int splice_grow_spd(struct pipe_inode_info *pipe, struct splice_pipe_desc *spd)
-+int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc *spd)
- {
--	if (pipe->buffers <= PIPE_DEF_BUFFERS)
-+	unsigned int buffers = ACCESS_ONCE(pipe->buffers);
-+
-+	spd->nr_pages_max = buffers;
-+	if (buffers <= PIPE_DEF_BUFFERS)
- 		return 0;
- 
--	spd->pages = kmalloc(pipe->buffers * sizeof(struct page *), GFP_KERNEL);
--	spd->partial = kmalloc(pipe->buffers * sizeof(struct partial_page), GFP_KERNEL);
-+	spd->pages = kmalloc(buffers * sizeof(struct page *), GFP_KERNEL);
-+	spd->partial = kmalloc(buffers * sizeof(struct partial_page), GFP_KERNEL);
- 
- 	if (spd->pages && spd->partial)
- 		return 0;
-@@ -290,10 +293,9 @@ int splice_grow_spd(struct pipe_inode_info *pipe, struct splice_pipe_desc *spd)
- 	return -ENOMEM;
- }
- 
--void splice_shrink_spd(struct pipe_inode_info *pipe,
--		       struct splice_pipe_desc *spd)
-+void splice_shrink_spd(struct splice_pipe_desc *spd)
- {
--	if (pipe->buffers <= PIPE_DEF_BUFFERS)
-+	if (spd->nr_pages_max <= PIPE_DEF_BUFFERS)
- 		return;
- 
- 	kfree(spd->pages);
-@@ -316,6 +318,7 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
- 	struct splice_pipe_desc spd = {
- 		.pages = pages,
- 		.partial = partial,
-+		.nr_pages_max = PIPE_DEF_BUFFERS,
- 		.flags = flags,
- 		.ops = &page_cache_pipe_buf_ops,
- 		.spd_release = spd_release_page,
-@@ -327,7 +330,7 @@ __generic_file_splice_read(struct file *in, loff_t *ppos,
- 	index = *ppos >> PAGE_CACHE_SHIFT;
- 	loff = *ppos & ~PAGE_CACHE_MASK;
- 	req_pages = (len + loff + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
--	nr_pages = min(req_pages, pipe->buffers);
-+	nr_pages = min(req_pages, spd.nr_pages_max);
- 
- 	/*
- 	 * Lookup the (hopefully) full range of pages we need.
-@@ -498,7 +501,7 @@ fill_it:
- 	if (spd.nr_pages)
- 		error = splice_to_pipe(pipe, &spd);
- 
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- 	return error;
- }
- 
-@@ -599,6 +602,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
- 	struct splice_pipe_desc spd = {
- 		.pages = pages,
- 		.partial = partial,
-+		.nr_pages_max = PIPE_DEF_BUFFERS,
- 		.flags = flags,
- 		.ops = &default_pipe_buf_ops,
- 		.spd_release = spd_release_page,
-@@ -609,8 +613,8 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
- 
- 	res = -ENOMEM;
- 	vec = __vec;
--	if (pipe->buffers > PIPE_DEF_BUFFERS) {
--		vec = kmalloc(pipe->buffers * sizeof(struct iovec), GFP_KERNEL);
-+	if (spd.nr_pages_max > PIPE_DEF_BUFFERS) {
-+		vec = kmalloc(spd.nr_pages_max * sizeof(struct iovec), GFP_KERNEL);
- 		if (!vec)
- 			goto shrink_ret;
- 	}
-@@ -618,7 +622,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
- 	offset = *ppos & ~PAGE_CACHE_MASK;
- 	nr_pages = (len + offset + PAGE_CACHE_SIZE - 1) >> PAGE_CACHE_SHIFT;
- 
--	for (i = 0; i < nr_pages && i < pipe->buffers && len; i++) {
-+	for (i = 0; i < nr_pages && i < spd.nr_pages_max && len; i++) {
- 		struct page *page;
- 
- 		page = alloc_page(GFP_USER);
-@@ -666,7 +670,7 @@ ssize_t default_file_splice_read(struct file *in, loff_t *ppos,
- shrink_ret:
- 	if (vec != __vec)
- 		kfree(vec);
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- 	return res;
- 
- err:
-@@ -1616,6 +1620,7 @@ static long vmsplice_to_pipe(struct file *file, const struct iovec __user *iov,
- 	struct splice_pipe_desc spd = {
- 		.pages = pages,
- 		.partial = partial,
-+		.nr_pages_max = PIPE_DEF_BUFFERS,
- 		.flags = flags,
- 		.ops = &user_page_pipe_buf_ops,
- 		.spd_release = spd_release_page,
-@@ -1631,13 +1636,13 @@ static long vmsplice_to_pipe(struct file *file, const struct iovec __user *iov,
- 
- 	spd.nr_pages = get_iovec_page_array(iov, nr_segs, spd.pages,
- 					    spd.partial, flags & SPLICE_F_GIFT,
--					    pipe->buffers);
-+					    spd.nr_pages_max);
- 	if (spd.nr_pages <= 0)
- 		ret = spd.nr_pages;
- 	else
- 		ret = splice_to_pipe(pipe, &spd);
- 
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- 	return ret;
- }
- 
-diff --git a/include/linux/splice.h b/include/linux/splice.h
-index 26e5b61..09a545a 100644
---- a/include/linux/splice.h
-+++ b/include/linux/splice.h
-@@ -51,7 +51,8 @@ struct partial_page {
- struct splice_pipe_desc {
- 	struct page **pages;		/* page map */
- 	struct partial_page *partial;	/* pages[] may not be contig */
--	int nr_pages;			/* number of pages in map */
-+	int nr_pages;			/* number of populated pages in map */
-+	unsigned int nr_pages_max;	/* pages[] & partial[] arrays size */
- 	unsigned int flags;		/* splice flags */
- 	const struct pipe_buf_operations *ops;/* ops associated with output pipe */
- 	void (*spd_release)(struct splice_pipe_desc *, unsigned int);
-@@ -85,9 +86,8 @@ extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
- /*
-  * for dynamic pipe sizing
-  */
--extern int splice_grow_spd(struct pipe_inode_info *, struct splice_pipe_desc *);
--extern void splice_shrink_spd(struct pipe_inode_info *,
--				struct splice_pipe_desc *);
-+extern int splice_grow_spd(const struct pipe_inode_info *, struct splice_pipe_desc *);
-+extern void splice_shrink_spd(struct splice_pipe_desc *);
- extern void spd_release_page(struct splice_pipe_desc *, unsigned int);
- 
- extern const struct pipe_buf_operations page_cache_pipe_buf_ops;
-diff --git a/kernel/relay.c b/kernel/relay.c
-index b6f803a..a535fc9 100644
---- a/kernel/relay.c
-+++ b/kernel/relay.c
-@@ -1235,6 +1235,7 @@ static ssize_t subbuf_splice_actor(struct file *in,
- 	struct splice_pipe_desc spd = {
- 		.pages = pages,
- 		.nr_pages = 0,
-+		.nr_pages_max = PIPE_DEF_BUFFERS,
- 		.partial = partial,
- 		.flags = flags,
- 		.ops = &relay_pipe_buf_ops,
-@@ -1302,8 +1303,8 @@ static ssize_t subbuf_splice_actor(struct file *in,
-                 ret += padding;
- 
- out:
--	splice_shrink_spd(pipe, &spd);
--        return ret;
-+	splice_shrink_spd(&spd);
-+	return ret;
- }
- 
- static ssize_t relay_file_splice_read(struct file *in,
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 697e49d..7e4edd3 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -3456,6 +3456,7 @@ static ssize_t tracing_splice_read_pipe(struct file *filp,
- 		.pages		= pages_def,
- 		.partial	= partial_def,
- 		.nr_pages	= 0, /* This gets updated below. */
-+		.nr_pages_max	= PIPE_DEF_BUFFERS,
- 		.flags		= flags,
- 		.ops		= &tracing_pipe_buf_ops,
- 		.spd_release	= tracing_spd_release_pipe,
-@@ -3527,7 +3528,7 @@ static ssize_t tracing_splice_read_pipe(struct file *filp,
- 
- 	ret = splice_to_pipe(pipe, &spd);
- out:
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- 	return ret;
- 
- out_err:
-@@ -4017,6 +4018,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
- 	struct splice_pipe_desc spd = {
- 		.pages		= pages_def,
- 		.partial	= partial_def,
-+		.nr_pages_max	= PIPE_DEF_BUFFERS,
- 		.flags		= flags,
- 		.ops		= &buffer_pipe_buf_ops,
- 		.spd_release	= buffer_spd_release,
-@@ -4104,7 +4106,7 @@ tracing_buffers_splice_read(struct file *file, loff_t *ppos,
- 	}
- 
- 	ret = splice_to_pipe(pipe, &spd);
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- out:
- 	return ret;
- }
-diff --git a/mm/shmem.c b/mm/shmem.c
-index 6c253f7..7a82174 100644
---- a/mm/shmem.c
-+++ b/mm/shmem.c
-@@ -1359,6 +1359,7 @@ static ssize_t shmem_file_splice_read(struct file *in, loff_t *ppos,
- 	struct splice_pipe_desc spd = {
- 		.pages = pages,
- 		.partial = partial,
-+		.nr_pages_max = PIPE_DEF_BUFFERS,
- 		.flags = flags,
- 		.ops = &page_cache_pipe_buf_ops,
- 		.spd_release = spd_release_page,
-@@ -1447,7 +1448,7 @@ static ssize_t shmem_file_splice_read(struct file *in, loff_t *ppos,
- 	if (spd.nr_pages)
- 		error = splice_to_pipe(pipe, &spd);
- 
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- 
- 	if (error > 0) {
- 		*ppos += error;
-diff --git a/net/core/skbuff.c b/net/core/skbuff.c
-index 2ec200de..af9c3c6 100644
---- a/net/core/skbuff.c
-+++ b/net/core/skbuff.c
-@@ -1663,6 +1663,7 @@ int skb_splice_bits(struct sk_buff *skb, unsigned int offset,
- 	struct splice_pipe_desc spd = {
- 		.pages = pages,
- 		.partial = partial,
-+		.nr_pages_max = MAX_SKB_FRAGS,
- 		.flags = flags,
- 		.ops = &sock_pipe_buf_ops,
- 		.spd_release = sock_spd_release,
-@@ -1709,7 +1710,7 @@ done:
- 		lock_sock(sk);
- 	}
- 
--	splice_shrink_spd(pipe, &spd);
-+	splice_shrink_spd(&spd);
- 	return ret;
- }
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0002-umem-fix-up-unplugging.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0002-umem-fix-up-unplugging.patch
deleted file mode 100644
index 0b28837..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0002-umem-fix-up-unplugging.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From fd0fcfd8f28824587f180ccde95c03fca533ab05 Mon Sep 17 00:00:00 2001
-From: Tao Guo <glorioustao at gmail.com>
-Date: Wed, 13 Jun 2012 21:17:21 +0200
-Subject: [PATCH 02/49] umem: fix up unplugging
-
-commit 32587371ad3db2f9d335de10dbd8cffd4fff5669 upstream.
-
-Fix a regression introduced by 7eaceaccab5f40 ("block: remove per-queue
-plugging").  In that patch, Jens removed the whole mm_unplug_device()
-function, which used to be the trigger to make umem start to work.
-
-We need to implement unplugging to make umem start to work, or I/O will
-never be triggered.
-
-Signed-off-by: Tao Guo <Tao.Guo at emc.com>
-Cc: Neil Brown <neilb at suse.de>
-Cc: Jens Axboe <axboe at kernel.dk>
-Cc: Shaohua Li <shli at kernel.org>
-Acked-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/block/umem.c |   40 ++++++++++++++++++++++++++++++++++++++++
- 1 file changed, 40 insertions(+)
-
-diff --git a/drivers/block/umem.c b/drivers/block/umem.c
-index aa27120..9a72277 100644
---- a/drivers/block/umem.c
-+++ b/drivers/block/umem.c
-@@ -513,6 +513,44 @@ static void process_page(unsigned long data)
- 	}
- }
- 
-+struct mm_plug_cb {
-+	struct blk_plug_cb cb;
-+	struct cardinfo *card;
-+};
-+
-+static void mm_unplug(struct blk_plug_cb *cb)
-+{
-+	struct mm_plug_cb *mmcb = container_of(cb, struct mm_plug_cb, cb);
-+
-+	spin_lock_irq(&mmcb->card->lock);
-+	activate(mmcb->card);
-+	spin_unlock_irq(&mmcb->card->lock);
-+	kfree(mmcb);
-+}
-+
-+static int mm_check_plugged(struct cardinfo *card)
-+{
-+	struct blk_plug *plug = current->plug;
-+	struct mm_plug_cb *mmcb;
-+
-+	if (!plug)
-+		return 0;
-+
-+	list_for_each_entry(mmcb, &plug->cb_list, cb.list) {
-+		if (mmcb->cb.callback == mm_unplug && mmcb->card == card)
-+			return 1;
-+	}
-+	/* Not currently on the callback list */
-+	mmcb = kmalloc(sizeof(*mmcb), GFP_ATOMIC);
-+	if (!mmcb)
-+		return 0;
-+
-+	mmcb->card = card;
-+	mmcb->cb.callback = mm_unplug;
-+	list_add(&mmcb->cb.list, &plug->cb_list);
-+	return 1;
-+}
-+
- static void mm_make_request(struct request_queue *q, struct bio *bio)
- {
- 	struct cardinfo *card = q->queuedata;
-@@ -523,6 +561,8 @@ static void mm_make_request(struct request_queue *q, struct bio *bio)
- 	*card->biotail = bio;
- 	bio->bi_next = NULL;
- 	card->biotail = &bio->bi_next;
-+	if (bio->bi_rw & REQ_SYNC || !mm_check_plugged(card))
-+		activate(card);
- 	spin_unlock_irq(&card->lock);
- 
- 	return;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0003-mwifiex-fix-11n-rx-packet-drop-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0003-mwifiex-fix-11n-rx-packet-drop-issue.patch
deleted file mode 100644
index eef5de7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0003-mwifiex-fix-11n-rx-packet-drop-issue.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From 8c92af27a522bcec5dc2ced7b49b8f3f57492b21 Mon Sep 17 00:00:00 2001
-From: Stone Piao <piaoyun at marvell.com>
-Date: Wed, 20 Jun 2012 20:21:10 -0700
-Subject: [PATCH 03/49] mwifiex: fix 11n rx packet drop issue
-
-commit 925839243dc9aa4ef25305f5afd10ed18258a4ac upstream.
-
-Currently we check the sequence number of last packet received
-against start_win. If a sequence hole is detected, start_win is
-updated to next sequence number.
-
-Since the rx sequence number is initialized to 0, a corner case
-exists when BA setup happens immediately after association. As
-0 is a valid sequence number, start_win gets increased to 1
-incorrectly. This causes the first packet with sequence number 0
-being dropped.
-
-Initialize rx sequence number as 0xffff and skip adjusting
-start_win if the sequence number remains 0xffff. The sequence
-number will be updated once the first packet is received.
-
-Signed-off-by: Stone Piao <piaoyun at marvell.com>
-Signed-off-by: Avinash Patil <patila at marvell.com>
-Signed-off-by: Kiran Divekar <dkiran at marvell.com>
-Signed-off-by: Bing Zhao <bzhao at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/mwifiex/11n_rxreorder.c |    5 +++--
- drivers/net/wireless/mwifiex/11n_rxreorder.h |    7 +++++++
- drivers/net/wireless/mwifiex/wmm.c           |    2 ++
- 3 files changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/mwifiex/11n_rxreorder.c b/drivers/net/wireless/mwifiex/11n_rxreorder.c
-index 7aa9aa0..39fd4d5 100644
---- a/drivers/net/wireless/mwifiex/11n_rxreorder.c
-+++ b/drivers/net/wireless/mwifiex/11n_rxreorder.c
-@@ -267,7 +267,8 @@ mwifiex_11n_create_rx_reorder_tbl(struct mwifiex_private *priv, u8 *ta,
- 	else
- 		last_seq = priv->rx_seq[tid];
- 
--	if (last_seq >= new_node->start_win)
-+	if (last_seq != MWIFIEX_DEF_11N_RX_SEQ_NUM &&
-+	    last_seq >= new_node->start_win)
- 		new_node->start_win = last_seq + 1;
- 
- 	new_node->win_size = win_size;
-@@ -611,5 +612,5 @@ void mwifiex_11n_cleanup_reorder_tbl(struct mwifiex_private *priv)
- 	spin_unlock_irqrestore(&priv->rx_reorder_tbl_lock, flags);
- 
- 	INIT_LIST_HEAD(&priv->rx_reorder_tbl_ptr);
--	memset(priv->rx_seq, 0, sizeof(priv->rx_seq));
-+	mwifiex_reset_11n_rx_seq_num(priv);
- }
-diff --git a/drivers/net/wireless/mwifiex/11n_rxreorder.h b/drivers/net/wireless/mwifiex/11n_rxreorder.h
-index 033c8ad..7128baa 100644
---- a/drivers/net/wireless/mwifiex/11n_rxreorder.h
-+++ b/drivers/net/wireless/mwifiex/11n_rxreorder.h
-@@ -37,6 +37,13 @@
- 
- #define ADDBA_RSP_STATUS_ACCEPT 0
- 
-+#define MWIFIEX_DEF_11N_RX_SEQ_NUM	0xffff
-+
-+static inline void mwifiex_reset_11n_rx_seq_num(struct mwifiex_private *priv)
-+{
-+	memset(priv->rx_seq, 0xff, sizeof(priv->rx_seq));
-+}
-+
- int mwifiex_11n_rx_reorder_pkt(struct mwifiex_private *,
- 			       u16 seqNum,
- 			       u16 tid, u8 *ta,
-diff --git a/drivers/net/wireless/mwifiex/wmm.c b/drivers/net/wireless/mwifiex/wmm.c
-index 6c239c3..b94a349 100644
---- a/drivers/net/wireless/mwifiex/wmm.c
-+++ b/drivers/net/wireless/mwifiex/wmm.c
-@@ -406,6 +406,8 @@ mwifiex_wmm_init(struct mwifiex_adapter *adapter)
- 		priv->add_ba_param.tx_win_size = MWIFIEX_AMPDU_DEF_TXWINSIZE;
- 		priv->add_ba_param.rx_win_size = MWIFIEX_AMPDU_DEF_RXWINSIZE;
- 
-+		mwifiex_reset_11n_rx_seq_num(priv);
-+
- 		atomic_set(&priv->wmm.tx_pkts_queued, 0);
- 		atomic_set(&priv->wmm.highest_queued_prio, HIGH_PRIO_TID);
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0004-mwifiex-fix-WPS-eapol-handshake-failure.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0004-mwifiex-fix-WPS-eapol-handshake-failure.patch
deleted file mode 100644
index b25c446..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0004-mwifiex-fix-WPS-eapol-handshake-failure.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From ea7217bde3c1bbcb215d3b67a4308399ac1d574c Mon Sep 17 00:00:00 2001
-From: Stone Piao <piaoyun at marvell.com>
-Date: Wed, 20 Jun 2012 20:21:11 -0700
-Subject: [PATCH 04/49] mwifiex: fix WPS eapol handshake failure
-
-commit f03ba7e9a24e5e9efaad56bd1713b994ea556b16 upstream.
-
-After association, STA will go through eapol handshake with WPS
-enabled AP. It's observed that WPS handshake fails with some 11n
-AP. The reason for the failure is that the eapol packet is sent
-via 11n frame aggregation.
-
-The eapol packet should be sent directly without 11n aggregation.
-
-This patch fixes the problem by adding WPS session control while
-dequeuing Tx packets for transmission.
-
-Signed-off-by: Stone Piao <piaoyun at marvell.com>
-Signed-off-by: Avinash Patil <patila at marvell.com>
-Signed-off-by: Bing Zhao <bzhao at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: reformat the if-statement per earlier
- upstream commit c65a30f35f938b421ac67c34a9e70b0e49e6019a]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/mwifiex/wmm.c |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/mwifiex/wmm.c b/drivers/net/wireless/mwifiex/wmm.c
-index b94a349..06fcf1e 100644
---- a/drivers/net/wireless/mwifiex/wmm.c
-+++ b/drivers/net/wireless/mwifiex/wmm.c
-@@ -1211,10 +1211,12 @@ mwifiex_dequeue_tx_packet(struct mwifiex_adapter *adapter)
- 		return 0;
- 	}
- 
--	if (!ptr->is_11n_enabled || mwifiex_is_ba_stream_setup(priv, ptr, tid)
--	    || ((priv->sec_info.wpa_enabled
--		  || priv->sec_info.wpa2_enabled) && !priv->wpa_is_gtk_set)
--		) {
-+	if (!ptr->is_11n_enabled ||
-+	    mwifiex_is_ba_stream_setup(priv, ptr, tid) ||
-+	    priv->wps.session_enable ||
-+	    ((priv->sec_info.wpa_enabled ||
-+	      priv->sec_info.wpa2_enabled) &&
-+	     !priv->wpa_is_gtk_set)) {
- 		mwifiex_send_single_packet(priv, ptr, ptr_index, flags);
- 		/* ra_list_spinlock has been freed in
- 		   mwifiex_send_single_packet() */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0005-NFC-Prevent-multiple-buffer-overflows-in-NCI.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0005-NFC-Prevent-multiple-buffer-overflows-in-NCI.patch
deleted file mode 100644
index 10ae647..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0005-NFC-Prevent-multiple-buffer-overflows-in-NCI.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From e7d858dec1d8cf3c283019ff51adae14b8be9388 Mon Sep 17 00:00:00 2001
-From: Dan Rosenberg <dan.j.rosenberg at gmail.com>
-Date: Mon, 25 Jun 2012 16:05:27 +0200
-Subject: [PATCH 05/49] NFC: Prevent multiple buffer overflows in NCI
-
-commit 67de956ff5dc1d4f321e16cfbd63f5be3b691b43 upstream.
-
-Fix multiple remotely-exploitable stack-based buffer overflows due to
-the NCI code pulling length fields directly from incoming frames and
-copying too much data into statically-sized arrays.
-
-Signed-off-by: Dan Rosenberg <dan.j.rosenberg at gmail.com>
-Cc: security at kernel.org
-Cc: Lauro Ramos Venancio <lauro.venancio at openbossa.org>
-Cc: Aloisio Almeida Jr <aloisio.almeida at openbossa.org>
-Cc: Samuel Ortiz <sameo at linux.intel.com>
-Cc: David S. Miller <davem at davemloft.net>
-Acked-by: Ilan Elias <ilane at ti.com>
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-[bwh: Backported to 3.2:
- - Drop changes to parsing of tech B and tech F parameters
- - Various renaming]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/nfc/nci/ntf.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/nfc/nci/ntf.c b/net/nfc/nci/ntf.c
-index 96633f5..12b6a80 100644
---- a/net/nfc/nci/ntf.c
-+++ b/net/nfc/nci/ntf.c
-@@ -86,7 +86,7 @@ static int nci_rf_activate_nfca_passive_poll(struct nci_dev *ndev,
- 	nfca_poll->sens_res = __le16_to_cpu(*((__u16 *)data));
- 	data += 2;
- 
--	nfca_poll->nfcid1_len = *data++;
-+	nfca_poll->nfcid1_len = min_t(__u8, *data++, sizeof(nfca_poll->nfcid1));
- 
- 	nfc_dbg("sens_res 0x%x, nfcid1_len %d",
- 		nfca_poll->sens_res,
-@@ -111,7 +111,7 @@ static int nci_rf_activate_nfca_passive_poll(struct nci_dev *ndev,
- 
- 	switch (ntf->rf_interface_type) {
- 	case NCI_RF_INTERFACE_ISO_DEP:
--		nfca_poll_iso_dep->rats_res_len = *data++;
-+		nfca_poll_iso_dep->rats_res_len = min_t(__u8, *data++, 20);
- 		if (nfca_poll_iso_dep->rats_res_len > 0) {
- 			memcpy(nfca_poll_iso_dep->rats_res,
- 				data,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0006-ath9k-fix-dynamic-WEP-related-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0006-ath9k-fix-dynamic-WEP-related-regression.patch
deleted file mode 100644
index e8fe414..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0006-ath9k-fix-dynamic-WEP-related-regression.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 11f5e090b288e9e933c8b7790626db9a5beef760 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Sat, 23 Jun 2012 19:23:31 +0200
-Subject: [PATCH 06/49] ath9k: fix dynamic WEP related regression
-
-commit bed3d9c0b71f9afbfec905cb6db3b9f16be29d4d upstream.
-
-commit 7a532fe7131216a02c81a6c1b1f8632da1195a58
-ath9k_hw: fix interpretation of the rx KeyMiss flag
-
-This commit used the rx key miss indication to detect packets that were
-passed from the hardware without being decrypted, however it seems that
-this bit is not only undefined in the static WEP case, but also for
-dynamically allocated WEP keys. This caused a regression when using
-WEP-LEAP.
-
-This patch fixes the regression by keeping track of which key indexes
-refer to CCMP keys and only using the key miss indication for those.
-
-Reported-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath.h        |    1 +
- drivers/net/wireless/ath/ath9k/recv.c |    3 ++-
- drivers/net/wireless/ath/key.c        |    4 ++++
- 3 files changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath.h b/drivers/net/wireless/ath/ath.h
-index 0f9ee46..4cc4a8b 100644
---- a/drivers/net/wireless/ath/ath.h
-+++ b/drivers/net/wireless/ath/ath.h
-@@ -143,6 +143,7 @@ struct ath_common {
- 	u32 keymax;
- 	DECLARE_BITMAP(keymap, ATH_KEYMAX);
- 	DECLARE_BITMAP(tkip_keymap, ATH_KEYMAX);
-+	DECLARE_BITMAP(ccmp_keymap, ATH_KEYMAX);
- 	enum ath_crypt_caps crypt_caps;
- 
- 	unsigned int clockrate;
-diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
-index 2f3aeac..e6d791c 100644
---- a/drivers/net/wireless/ath/ath9k/recv.c
-+++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -829,7 +829,8 @@ static bool ath9k_rx_accept(struct ath_common *common,
- 	 * descriptor does contain a valid key index. This has been observed
- 	 * mostly with CCMP encryption.
- 	 */
--	if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID)
-+	if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID ||
-+	    !test_bit(rx_stats->rs_keyix, common->ccmp_keymap))
- 		rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS;
- 
- 	if (!rx_stats->rs_datalen)
-diff --git a/drivers/net/wireless/ath/key.c b/drivers/net/wireless/ath/key.c
-index 4cf7c5e..1ec3fa5 100644
---- a/drivers/net/wireless/ath/key.c
-+++ b/drivers/net/wireless/ath/key.c
-@@ -556,6 +556,9 @@ int ath_key_config(struct ath_common *common,
- 		return -EIO;
- 
- 	set_bit(idx, common->keymap);
-+	if (key->cipher == WLAN_CIPHER_SUITE_CCMP)
-+		set_bit(idx, common->ccmp_keymap);
-+
- 	if (key->cipher == WLAN_CIPHER_SUITE_TKIP) {
- 		set_bit(idx + 64, common->keymap);
- 		set_bit(idx, common->tkip_keymap);
-@@ -582,6 +585,7 @@ void ath_key_delete(struct ath_common *common, struct ieee80211_key_conf *key)
- 		return;
- 
- 	clear_bit(key->hw_key_idx, common->keymap);
-+	clear_bit(key->hw_key_idx, common->ccmp_keymap);
- 	if (key->cipher != WLAN_CIPHER_SUITE_TKIP)
- 		return;
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0007-NFC-Return-from-rawsock_release-when-sk-is-NULL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0007-NFC-Return-from-rawsock_release-when-sk-is-NULL.patch
deleted file mode 100644
index 43801f4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0007-NFC-Return-from-rawsock_release-when-sk-is-NULL.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From fd1f8dc4e31b8daeec0cb785256de7297a06e300 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Tue, 12 Jun 2012 00:47:58 +0200
-Subject: [PATCH 07/49] NFC: Return from rawsock_release when sk is NULL
-
-commit 03e934f620101ca2cfc9383bd76172dd3e1f8567 upstream.
-
-Sasha Levin reported following panic :
-
-[ 2136.383310] BUG: unable to handle kernel NULL pointer dereference at
-00000000000003b0
-[ 2136.384022] IP: [<ffffffff8114e400>] __lock_acquire+0xc0/0x4b0
-[ 2136.384022] PGD 131c4067 PUD 11c0c067 PMD 0
-[ 2136.388106] Oops: 0000 [#1] PREEMPT SMP DEBUG_PAGEALLOC
-[ 2136.388106] CPU 1
-[ 2136.388106] Pid: 24855, comm: trinity-child1 Tainted: G        W
-3.5.0-rc2-sasha-00015-g7b268f7 #374
-[ 2136.388106] RIP: 0010:[<ffffffff8114e400>]  [<ffffffff8114e400>]
-__lock_acquire+0xc0/0x4b0
-[ 2136.388106] RSP: 0018:ffff8800130b3ca8  EFLAGS: 00010046
-[ 2136.388106] RAX: 0000000000000086 RBX: ffff88001186b000 RCX:
-0000000000000000
-[ 2136.388106] RDX: 0000000000000000 RSI: 0000000000000000 RDI:
-0000000000000000
-[ 2136.388106] RBP: ffff8800130b3d08 R08: 0000000000000001 R09:
-0000000000000000
-[ 2136.388106] R10: 0000000000000000 R11: 0000000000000001 R12:
-0000000000000002
-[ 2136.388106] R13: 00000000000003b0 R14: 0000000000000000 R15:
-0000000000000000
-[ 2136.388106] FS:  00007fa5b1bd4700(0000) GS:ffff88001b800000(0000)
-knlGS:0000000000000000
-[ 2136.388106] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-[ 2136.388106] CR2: 00000000000003b0 CR3: 0000000011d1f000 CR4:
-00000000000406e0
-[ 2136.388106] DR0: 0000000000000000 DR1: 0000000000000000 DR2:
-0000000000000000
-[ 2136.388106] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7:
-0000000000000400
-[ 2136.388106] Process trinity-child1 (pid: 24855, threadinfo
-ffff8800130b2000, task ffff88001186b000)
-[ 2136.388106] Stack:
-[ 2136.388106]  ffff8800130b3cd8 ffffffff81121785 ffffffff81236774
-000080d000000001
-[ 2136.388106]  ffff88001b9d6c00 00000000001d6c00 ffffffff130b3d08
-ffff88001186b000
-[ 2136.388106]  0000000000000000 0000000000000002 0000000000000000
-0000000000000000
-[ 2136.388106] Call Trace:
-[ 2136.388106]  [<ffffffff81121785>] ? sched_clock_local+0x25/0x90
-[ 2136.388106]  [<ffffffff81236774>] ? get_empty_filp+0x74/0x220
-[ 2136.388106]  [<ffffffff8114e97a>] lock_acquire+0x18a/0x1e0
-[ 2136.388106]  [<ffffffff836b37df>] ? rawsock_release+0x4f/0xa0
-[ 2136.388106]  [<ffffffff837c0ef0>] _raw_write_lock_bh+0x40/0x80
-[ 2136.388106]  [<ffffffff836b37df>] ? rawsock_release+0x4f/0xa0
-[ 2136.388106]  [<ffffffff836b37df>] rawsock_release+0x4f/0xa0
-[ 2136.388106]  [<ffffffff8321cfe8>] sock_release+0x18/0x70
-[ 2136.388106]  [<ffffffff8321d069>] sock_close+0x29/0x30
-[ 2136.388106]  [<ffffffff81236bca>] __fput+0x11a/0x2c0
-[ 2136.388106]  [<ffffffff81236d85>] fput+0x15/0x20
-[ 2136.388106]  [<ffffffff8321de34>] sys_accept4+0x1b4/0x200
-[ 2136.388106]  [<ffffffff837c165c>] ? _raw_spin_unlock_irq+0x4c/0x80
-[ 2136.388106]  [<ffffffff837c1669>] ? _raw_spin_unlock_irq+0x59/0x80
-[ 2136.388106]  [<ffffffff837c2565>] ? sysret_check+0x22/0x5d
-[ 2136.388106]  [<ffffffff8321de8b>] sys_accept+0xb/0x10
-[ 2136.388106]  [<ffffffff837c2539>] system_call_fastpath+0x16/0x1b
-[ 2136.388106] Code: ec 04 00 0f 85 ea 03 00 00 be d5 0b 00 00 48 c7 c7
-8a c1 40 84 e8 b1 a5 f8 ff 31 c0 e9 d4 03 00 00 66 2e 0f 1f 84 00 00 00
-00 00 <49> 81 7d 00 60 73 5e 85 b8 01 00 00 00 44 0f 44 e0 83 fe 01 77
-[ 2136.388106] RIP  [<ffffffff8114e400>] __lock_acquire+0xc0/0x4b0
-[ 2136.388106]  RSP <ffff8800130b3ca8>
-[ 2136.388106] CR2: 00000000000003b0
-[ 2136.388106] ---[ end trace 6d450e935ee18982 ]---
-[ 2136.388106] Kernel panic - not syncing: Fatal exception in interrupt
-
-rawsock_release() should test if sock->sk is NULL before calling
-sock_orphan()/sock_put()
-
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Tested-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-[bwh: Backported to 3.2: keep using nfc_dbg(), not pr_debug()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/nfc/rawsock.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/net/nfc/rawsock.c b/net/nfc/rawsock.c
-index ee7b2b3..7a167fc 100644
---- a/net/nfc/rawsock.c
-+++ b/net/nfc/rawsock.c
-@@ -52,7 +52,10 @@ static int rawsock_release(struct socket *sock)
- {
- 	struct sock *sk = sock->sk;
- 
--	nfc_dbg("sock=%p", sock);
-+	nfc_dbg("sock=%p sk=%p", sock, sk);
-+
-+	if (!sk)
-+		return 0;
- 
- 	sock_orphan(sk);
- 	sock_put(sk);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0008-rtlwifi-rtl8192cu-New-USB-IDs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0008-rtlwifi-rtl8192cu-New-USB-IDs.patch
deleted file mode 100644
index 99f6f60..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0008-rtlwifi-rtl8192cu-New-USB-IDs.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From a771eb7b20c60a73ec422943dd387fbca27cf94d Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Mon, 25 Jun 2012 18:01:12 -0500
-Subject: [PATCH 08/49] rtlwifi: rtl8192cu: New USB IDs
-
-commit f63d7dabd5da9ef41f28f6d69b29bc084db0ca5a upstream.
-
-The latest Realtek driver for the RTL8188CU and RTL8192CU chips adds three
-new USB IDs.
-
-Reported-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rtlwifi/rtl8192cu/sw.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-index 94a3e17..0302148 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192cu/sw.c
-@@ -311,9 +311,11 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
- 	{RTL_USB_DEVICE(0x07b8, 0x8188, rtl92cu_hal_cfg)}, /*Abocom - Abocom*/
- 	{RTL_USB_DEVICE(0x07b8, 0x8189, rtl92cu_hal_cfg)}, /*Funai - Abocom*/
- 	{RTL_USB_DEVICE(0x0846, 0x9041, rtl92cu_hal_cfg)}, /*NetGear WNA1000M*/
-+	{RTL_USB_DEVICE(0x0bda, 0x5088, rtl92cu_hal_cfg)}, /*Thinkware-CC&C*/
- 	{RTL_USB_DEVICE(0x0df6, 0x0052, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
- 	{RTL_USB_DEVICE(0x0df6, 0x005c, rtl92cu_hal_cfg)}, /*Sitecom - Edimax*/
- 	{RTL_USB_DEVICE(0x0eb0, 0x9071, rtl92cu_hal_cfg)}, /*NO Brand - Etop*/
-+	{RTL_USB_DEVICE(0x4856, 0x0091, rtl92cu_hal_cfg)}, /*NetweeN - Feixun*/
- 	/* HP - Lite-On ,8188CUS Slim Combo */
- 	{RTL_USB_DEVICE(0x103c, 0x1629, rtl92cu_hal_cfg)},
- 	{RTL_USB_DEVICE(0x13d3, 0x3357, rtl92cu_hal_cfg)}, /* AzureWave */
-@@ -355,6 +357,7 @@ static struct usb_device_id rtl8192c_usb_ids[] = {
- 	{RTL_USB_DEVICE(0x07b8, 0x8178, rtl92cu_hal_cfg)}, /*Funai -Abocom*/
- 	{RTL_USB_DEVICE(0x0846, 0x9021, rtl92cu_hal_cfg)}, /*Netgear-Sercomm*/
- 	{RTL_USB_DEVICE(0x0b05, 0x17ab, rtl92cu_hal_cfg)}, /*ASUS-Edimax*/
-+	{RTL_USB_DEVICE(0x0bda, 0x8186, rtl92cu_hal_cfg)}, /*Realtek 92CE-VAU*/
- 	{RTL_USB_DEVICE(0x0df6, 0x0061, rtl92cu_hal_cfg)}, /*Sitecom-Edimax*/
- 	{RTL_USB_DEVICE(0x0e66, 0x0019, rtl92cu_hal_cfg)}, /*Hawking-Edimax*/
- 	{RTL_USB_DEVICE(0x2001, 0x3307, rtl92cu_hal_cfg)}, /*D-Link-Cameo*/
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0009-ath9k-enable-serialize_regmode-for-non-PCIE-AR9287.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0009-ath9k-enable-serialize_regmode-for-non-PCIE-AR9287.patch
deleted file mode 100644
index 383dda2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0009-ath9k-enable-serialize_regmode-for-non-PCIE-AR9287.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From f65b74252f667d75391a86a6dee82aefb0e9b983 Mon Sep 17 00:00:00 2001
-From: Panayiotis Karabassis <panayk at gmail.com>
-Date: Tue, 26 Jun 2012 23:37:17 +0300
-Subject: [PATCH 09/49] ath9k: enable serialize_regmode for non-PCIE AR9287
-
-commit 7508b657967cf664b5aa0f6367d05016e7e3bc2a upstream.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=42903
-
-Based on the work of <fynivx at gmail.com>
-
-Signed-off-by: Panayiotis Karabassis <panayk at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/hw.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
-index 6973620..7f97164 100644
---- a/drivers/net/wireless/ath/ath9k/hw.c
-+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -557,7 +557,7 @@ static int __ath9k_hw_init(struct ath_hw *ah)
- 
- 	if (ah->config.serialize_regmode == SER_REG_MODE_AUTO) {
- 		if (ah->hw_version.macVersion == AR_SREV_VERSION_5416_PCI ||
--		    ((AR_SREV_9160(ah) || AR_SREV_9280(ah)) &&
-+		    ((AR_SREV_9160(ah) || AR_SREV_9280(ah) || AR_SREV_9287(ah)) &&
- 		     !ah->is_pciexpress)) {
- 			ah->config.serialize_regmode =
- 				SER_REG_MODE_ON;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0010-mac80211-correct-behaviour-on-unrecognised-action-fr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0010-mac80211-correct-behaviour-on-unrecognised-action-fr.patch
deleted file mode 100644
index 3aafce8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0010-mac80211-correct-behaviour-on-unrecognised-action-fr.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 21cdc703702f7ffbf440dc29b68044ac13363078 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Wed, 27 Jun 2012 15:38:56 +0200
-Subject: [PATCH 10/49] mac80211: correct behaviour on unrecognised action
- frames
-
-commit 4b5ebccc40843104d980f0714bc86bfcd5568941 upstream.
-
-When receiving an "individually addressed" action frame, the
-receiver is required to return it to the sender. mac80211
-gets this wrong as it also returns group addressed (mcast)
-frames to the sender. Fix this and update the reference to
-the new 802.11 standards version since things were shuffled
-around significantly.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/mac80211/rx.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
-index 064d20f..cda4875 100644
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -2389,7 +2389,7 @@ ieee80211_rx_h_action_return(struct ieee80211_rx_data *rx)
- 	 * frames that we didn't handle, including returning unknown
- 	 * ones. For all other modes we will return them to the sender,
- 	 * setting the 0x80 bit in the action category, as required by
--	 * 802.11-2007 7.3.1.11.
-+	 * 802.11-2012 9.24.4.
- 	 * Newer versions of hostapd shall also use the management frame
- 	 * registration mechanisms, but older ones still use cooked
- 	 * monitor interfaces so push all frames there.
-@@ -2399,6 +2399,9 @@ ieee80211_rx_h_action_return(struct ieee80211_rx_data *rx)
- 	     sdata->vif.type == NL80211_IFTYPE_AP_VLAN))
- 		return RX_DROP_MONITOR;
- 
-+	if (is_multicast_ether_addr(mgmt->da))
-+		return RX_DROP_MONITOR;
-+
- 	/* do not return rejected action frames */
- 	if (mgmt->u.action.category & 0x80)
- 		return RX_DROP_UNUSABLE;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0011-ASoC-tlv320aic3x-Fix-codec-pll-configure-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0011-ASoC-tlv320aic3x-Fix-codec-pll-configure-bug.patch
deleted file mode 100644
index 29139a1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0011-ASoC-tlv320aic3x-Fix-codec-pll-configure-bug.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 8ba42ffb182648185f9f5f924d26cf97b6be721f Mon Sep 17 00:00:00 2001
-From: "Hebbar, Gururaja" <gururaja.hebbar at ti.com>
-Date: Tue, 26 Jun 2012 19:25:11 +0530
-Subject: [PATCH 11/49] ASoC: tlv320aic3x: Fix codec pll configure bug
-
-commit c9fe573a6584034670c1a55ee8162d623519cbbf upstream.
-
-In sound/soc/codecs/tlv320aic3x.c
-
-        data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG);
-        snd_soc_write(codec, AIC3X_PLL_PROGA_REG,
-                      data | (pll_p << PLLP_SHIFT));
-
-In the above code, pll-p value is OR'ed with previous value without
-clearing it. Bug is not seen if pll-p value doesn't change across
-Sampling frequency.
-
-However on some platforms (like AM335x EVM-SK), pll-p may have different
-values across different sampling frequencies. In such case, above code
-configures the pll with a wrong value.
-Because of this bug, when a audio stream is played with pll value
-different from previous stream, audio is heard as differently(like its
-stretched).
-
-Signed-off-by: Hebbar, Gururaja <gururaja.hebbar at ti.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/tlv320aic3x.c |    4 +---
- sound/soc/codecs/tlv320aic3x.h |    1 +
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
-index d0dbac1..cdb473c 100644
---- a/sound/soc/codecs/tlv320aic3x.c
-+++ b/sound/soc/codecs/tlv320aic3x.c
-@@ -963,9 +963,7 @@ static int aic3x_hw_params(struct snd_pcm_substream *substream,
- 	}
- 
- found:
--	data = snd_soc_read(codec, AIC3X_PLL_PROGA_REG);
--	snd_soc_write(codec, AIC3X_PLL_PROGA_REG,
--		      data | (pll_p << PLLP_SHIFT));
-+	snd_soc_update_bits(codec, AIC3X_PLL_PROGA_REG, PLLP_MASK, pll_p);
- 	snd_soc_write(codec, AIC3X_OVRF_STATUS_AND_PLLR_REG,
- 		      pll_r << PLLR_SHIFT);
- 	snd_soc_write(codec, AIC3X_PLL_PROGB_REG, pll_j << PLLJ_SHIFT);
-diff --git a/sound/soc/codecs/tlv320aic3x.h b/sound/soc/codecs/tlv320aic3x.h
-index 06a1978..16d9999 100644
---- a/sound/soc/codecs/tlv320aic3x.h
-+++ b/sound/soc/codecs/tlv320aic3x.h
-@@ -166,6 +166,7 @@
- 
- /* PLL registers bitfields */
- #define PLLP_SHIFT		0
-+#define PLLP_MASK		7
- #define PLLQ_SHIFT		3
- #define PLLR_SHIFT		0
- #define PLLJ_SHIFT		2
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0012-powerpc-xmon-Use-cpumask-iterator-to-avoid-warning.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0012-powerpc-xmon-Use-cpumask-iterator-to-avoid-warning.patch
deleted file mode 100644
index 217ab5d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0012-powerpc-xmon-Use-cpumask-iterator-to-avoid-warning.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 6d7506b0391c86ac347dce94f2c4642ce126cf45 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Thu, 28 Jun 2012 19:28:57 +0000
-Subject: [PATCH 12/49] powerpc/xmon: Use cpumask iterator to avoid warning
-
-commit bc1d7702910c7c7e88eb60b58429dbfe293683ce upstream.
-
-We have a bug report where the kernel hits a warning in the cpumask
-code:
-
-WARNING: at include/linux/cpumask.h:107
-
-Which is:
-        WARN_ON_ONCE(cpu >= nr_cpumask_bits);
-
-The backtrace is:
-        cpu_cmd
-        cmds
-        xmon_core
-        xmon
-        die
-
-xmon is iterating through 0 to NR_CPUS. I'm not sure why we are still
-open coding this but iterating above nr_cpu_ids is definitely a bug.
-
-This patch iterates through all possible cpus, in case we issue a
-system reset and CPUs in an offline state call in.
-
-Perhaps the old code was trying to handle CPUs that were in the
-partition but were never started (eg kexec into a kernel with an
-nr_cpus= boot option). They are going to die way before we get into
-xmon since we haven't set any kernel state up for them.
-
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/powerpc/xmon/xmon.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/xmon/xmon.c b/arch/powerpc/xmon/xmon.c
-index 03a217a..b7e63d8 100644
---- a/arch/powerpc/xmon/xmon.c
-+++ b/arch/powerpc/xmon/xmon.c
-@@ -975,7 +975,7 @@ static int cpu_cmd(void)
- 		/* print cpus waiting or in xmon */
- 		printf("cpus stopped:");
- 		count = 0;
--		for (cpu = 0; cpu < NR_CPUS; ++cpu) {
-+		for_each_possible_cpu(cpu) {
- 			if (cpumask_test_cpu(cpu, &cpus_in_xmon)) {
- 				if (count == 0)
- 					printf(" %x", cpu);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0013-powerpc-kvm-sldi-should-be-sld.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0013-powerpc-kvm-sldi-should-be-sld.patch
deleted file mode 100644
index 9f77ca5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0013-powerpc-kvm-sldi-should-be-sld.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From af803001738a2e5609dbbe767f8f7a61bef3cf9c Mon Sep 17 00:00:00 2001
-From: Michael Neuling <mikey at neuling.org>
-Date: Mon, 25 Jun 2012 13:33:11 +0000
-Subject: [PATCH 13/49] powerpc/kvm: sldi should be sld
-
-commit 2f584a146a2965b82fce89b8d2f95dc5cfe468d0 upstream.
-
-Since we are taking a registers, this should never have been an sldi.
-Talking to paulus offline, this is the correct fix.
-
-Was introduced by:
- commit 19ccb76a1938ab364a412253daec64613acbf3df
- Author: Paul Mackerras <paulus at samba.org>
- Date:   Sat Jul 23 17:42:46 2011 +1000
-
-Talking to paulus, this shouldn't be a literal.
-
-Signed-off-by: Michael Neuling <mikey at neuling.org>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/powerpc/kvm/book3s_hv_rmhandlers.S |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/kvm/book3s_hv_rmhandlers.S b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
-index 44d8829..5e8dc08 100644
---- a/arch/powerpc/kvm/book3s_hv_rmhandlers.S
-+++ b/arch/powerpc/kvm/book3s_hv_rmhandlers.S
-@@ -763,7 +763,7 @@ END_FTR_SECTION_IFSET(CPU_FTR_ARCH_201)
- 	lwz	r3,VCORE_NAPPING_THREADS(r5)
- 	lwz	r4,VCPU_PTID(r9)
- 	li	r0,1
--	sldi	r0,r0,r4
-+	sld	r0,r0,r4
- 	andc.	r3,r3,r0		/* no sense IPI'ing ourselves */
- 	beq	43f
- 	mulli	r4,r4,PACA_SIZE		/* get paca for thread 0 */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0014-md-raid10-Don-t-try-to-recovery-unmatched-and-unused.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0014-md-raid10-Don-t-try-to-recovery-unmatched-and-unused.patch
deleted file mode 100644
index e6c64f5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0014-md-raid10-Don-t-try-to-recovery-unmatched-and-unused.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 8002ce8e1b7a0ef6b60567ed63ed12fe6780b98a Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Tue, 3 Jul 2012 10:37:30 +1000
-Subject: [PATCH 14/49] md/raid10: Don't try to recovery unmatched (and
- unused) chunks.
-
-commit fc448a18ae6219af9a73257b1fbcd009efab4a81 upstream.
-
-If a RAID10 has an odd number of chunks - as might happen when there
-are an odd number of devices - the last chunk has no pair and so is
-not mirrored.  We don't store data there, but when recovering the last
-device in an array we retry to recover that last chunk from a
-non-existent location.  This results in an error, and the recovery
-aborts.
-
-When we get to that last chunk we should just stop - there is nothing
-more to do anyway.
-
-This bug has been present since the introduction of RAID10, so the
-patch is appropriate for any -stable kernel.
-
-Reported-by: Christian Balzer <chibi at gol.com>
-Tested-by: Christian Balzer <chibi at gol.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid10.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index b219449..3b67566 100644
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -2436,6 +2436,12 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr,
- 			/* want to reconstruct this device */
- 			rb2 = r10_bio;
- 			sect = raid10_find_virt(conf, sector_nr, i);
-+			if (sect >= mddev->resync_max_sectors) {
-+				/* last stripe is not complete - don't
-+				 * try to recover this sector.
-+				 */
-+				continue;
-+			}
- 			/* Unless we are doing a full sync, we only need
- 			 * to recover the block if it is set in the bitmap
- 			 */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0015-md-raid5-Do-not-add-data_offset-before-call-to-is_ba.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0015-md-raid5-Do-not-add-data_offset-before-call-to-is_ba.patch
deleted file mode 100644
index 953b3b6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0015-md-raid5-Do-not-add-data_offset-before-call-to-is_ba.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2afec61845b4c0bed64c257a0acc2612e1862885 Mon Sep 17 00:00:00 2001
-From: majianpeng <majianpeng at gmail.com>
-Date: Tue, 12 Jun 2012 08:31:10 +0800
-Subject: [PATCH 15/49] md/raid5: Do not add data_offset before call to
- is_badblock
-
-commit 6c0544e255dd6582a9899572e120fb55d9f672a4 upstream.
-
-In chunk_aligned_read() we are adding data_offset before calling
-is_badblock.  But is_badblock also adds data_offset, so that is bad.
-
-So move the addition of data_offset to after the call to
-is_badblock.
-
-This bug was introduced by commit 31c176ecdf3563140e639
-     md/raid5: avoid reading from known bad blocks.
-which first appeared in 3.0.  So that patch is suitable for any
--stable kernel from 3.0.y onwards.  However it will need minor
-revision for most of those (as the comment didn't appear until
-recently).
-
-Signed-off-by: majianpeng <majianpeng at gmail.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-[bwh: Backported to 3.2: ignored missing comment]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid5.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 858fdbb..d423c7e 100644
---- a/drivers/md/raid5.c
-+++ b/drivers/md/raid5.c
-@@ -3621,7 +3621,6 @@ static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio)
- 		raid_bio->bi_next = (void*)rdev;
- 		align_bi->bi_bdev =  rdev->bdev;
- 		align_bi->bi_flags &= ~(1 << BIO_SEG_VALID);
--		align_bi->bi_sector += rdev->data_offset;
- 
- 		if (!bio_fits_rdev(align_bi) ||
- 		    is_badblock(rdev, align_bi->bi_sector, align_bi->bi_size>>9,
-@@ -3632,6 +3631,9 @@ static int chunk_aligned_read(struct mddev *mddev, struct bio * raid_bio)
- 			return 0;
- 		}
- 
-+		/* No reshape active, so we can trust rdev->data_offset */
-+		align_bi->bi_sector += rdev->data_offset;
-+
- 		spin_lock_irq(&conf->device_lock);
- 		wait_event_lock_irq(conf->wait_for_stripe,
- 				    conf->quiesce == 0,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0016-md-raid5-In-ops_run_io-inc-nr_pending-before-calling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0016-md-raid5-In-ops_run_io-inc-nr_pending-before-calling.patch
deleted file mode 100644
index 493b6be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0016-md-raid5-In-ops_run_io-inc-nr_pending-before-calling.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 1e6a8f24c1ff905a8bae6dd5222bc128eb60f886 Mon Sep 17 00:00:00 2001
-From: majianpeng <majianpeng at gmail.com>
-Date: Tue, 3 Jul 2012 12:11:54 +1000
-Subject: [PATCH 16/49] md/raid5: In ops_run_io, inc nr_pending before calling
- md_wait_for_blocked_rdev
-
-commit 1850753d2e6d9ca7856581ca5d3cf09521e6a5d7 upstream.
-
-In ops_run_io(), the call to md_wait_for_blocked_rdev will decrement
-nr_pending so we lose the reference we hold on the rdev.
-So atomic_inc it first to maintain the reference.
-
-This bug was introduced by commit  73e92e51b7969ef5477d
-    md/raid5.  Don't write to known bad block on doubtful devices.
-
-which appeared in 3.0, so patch is suitable for stable kernels since
-then.
-
-Signed-off-by: majianpeng <majianpeng at gmail.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid5.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index d423c7e..6ba4954 100644
---- a/drivers/md/raid5.c
-+++ b/drivers/md/raid5.c
-@@ -542,6 +542,12 @@ static void ops_run_io(struct stripe_head *sh, struct stripe_head_state *s)
- 					 * a chance*/
- 					md_check_recovery(conf->mddev);
- 				}
-+				/*
-+				 * Because md_wait_for_blocked_rdev
-+				 * will dec nr_pending, we must
-+				 * increment it first.
-+				 */
-+				atomic_inc(&rdev->nr_pending);
- 				md_wait_for_blocked_rdev(rdev, conf->mddev);
- 			} else {
- 				/* Acknowledged bad block - skip the write */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0017-md-raid10-fix-failure-when-trying-to-repair-a-read-e.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0017-md-raid10-fix-failure-when-trying-to-repair-a-read-e.patch
deleted file mode 100644
index 1f96efa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0017-md-raid10-fix-failure-when-trying-to-repair-a-read-e.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 4c1df6ee8b798576a23b25ab391cd7f3b5835bcd Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Tue, 3 Jul 2012 15:55:33 +1000
-Subject: [PATCH 17/49] md/raid10: fix failure when trying to repair a read
- error.
-
-commit 055d3747dbf00ce85c6872ecca4d466638e80c22 upstream.
-
-commit 58c54fcca3bac5bf9290cfed31c76e4c4bfbabaf
-     md/raid10: handle further errors during fix_read_error better.
-
-in 3.1 added "r10_sync_page_io" which takes an IO size in sectors.
-But we were passing the IO size in bytes!!!
-This resulting in bio_add_page failing, and empty request being sent
-down, and a consequent BUG_ON in scsi_lib.
-
-[fix missing space in error message at same time]
-
-This fix is suitable for 3.1.y and later.
-
-Reported-by: Christian Balzer <chibi at gol.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid10.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/md/raid10.c b/drivers/md/raid10.c
-index 3b67566..7a9eef6 100644
---- a/drivers/md/raid10.c
-+++ b/drivers/md/raid10.c
-@@ -1919,7 +1919,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
- 			if (r10_sync_page_io(rdev,
- 					     r10_bio->devs[sl].addr +
- 					     sect,
--					     s<<9, conf->tmppage, WRITE)
-+					     s, conf->tmppage, WRITE)
- 			    == 0) {
- 				/* Well, this device is dead */
- 				printk(KERN_NOTICE
-@@ -1956,7 +1956,7 @@ static void fix_read_error(struct r10conf *conf, struct mddev *mddev, struct r10
- 			switch (r10_sync_page_io(rdev,
- 					     r10_bio->devs[sl].addr +
- 					     sect,
--					     s<<9, conf->tmppage,
-+					     s, conf->tmppage,
- 						 READ)) {
- 			case 0:
- 				/* Well, this device is dead */
-@@ -2119,7 +2119,7 @@ read_more:
- 	rdev = conf->mirrors[mirror].rdev;
- 	printk_ratelimited(
- 		KERN_ERR
--		"md/raid10:%s: %s: redirecting"
-+		"md/raid10:%s: %s: redirecting "
- 		"sector %llu to another mirror\n",
- 		mdname(mddev),
- 		bdevname(rdev->bdev, b),
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0018-drm-i915-kick-any-firmware-framebuffers-before-claim.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0018-drm-i915-kick-any-firmware-framebuffers-before-claim.patch
deleted file mode 100644
index ab9e976..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0018-drm-i915-kick-any-firmware-framebuffers-before-claim.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From 3426f0a75320d87b4fd5a63263ff4f1a7574fd90 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sun, 1 Jul 2012 17:09:42 +0200
-Subject: [PATCH 18/49] drm/i915: kick any firmware framebuffers before
- claiming the gtt
-
-commit 9f846a16d213523fbe6daea17e20df6b8ac5a1e5 upstream.
-
-Especially vesafb likes to map everything as uc- (yikes), and if that
-mapping hangs around still while we try to map the gtt as wc the
-kernel will downgrade our request to uc-, resulting in abyssal
-performance.
-
-Unfortunately we can't do this as early as readon does (i.e. as the
-first thing we do when initializing the hw) because our fb/mmio space
-region moves around on a per-gen basis. So I've had to move it below
-the gtt initialization, but that seems to work, too. The important
-thing is that we do this before we set up the gtt wc mapping.
-
-Now an altogether different question is why people compile their
-kernels with vesafb enabled, but I guess making things just work isn't
-bad per se ...
-
-v2:
-- s/radeondrmfb/inteldrmfb/
-- fix up error handling
-
-v3: Kill #ifdef X86, this is Intel after all. Noticed by Ben Widawsky.
-
-v4: Jani Nikula complained about the pointless bool primary
-initialization.
-
-v5: Don't oops if we can't allocate, noticed by Chris Wilson.
-
-v6: Resolve conflicts with agp rework and fixup whitespace.
-
-This is commit e188719a2891f01b3100d in drm-next.
-
-Backport to 3.5 -fixes queue requested by Dave Airlie - due to grub
-using vesa on fedora their initrd seems to load vesafb before loading
-the real kms driver. So tons more people actually experience a
-dead-slow gpu. Hence also the Cc: stable.
-
-Reported-and-tested-by: "Kilarski, Bernard R" <bernard.r.kilarski at intel.com>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_dma.c |   37 ++++++++++++++++++++++++++++++-------
- 1 file changed, 30 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index c4da951..ca67338 100644
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -1890,6 +1890,27 @@ ips_ping_for_i915_load(void)
- 	}
- }
- 
-+static void i915_kick_out_firmware_fb(struct drm_i915_private *dev_priv)
-+{
-+	struct apertures_struct *ap;
-+	struct pci_dev *pdev = dev_priv->dev->pdev;
-+	bool primary;
-+
-+	ap = alloc_apertures(1);
-+	if (!ap)
-+		return;
-+
-+	ap->ranges[0].base = dev_priv->dev->agp->base;
-+	ap->ranges[0].size =
-+		dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
-+	primary =
-+		pdev->resource[PCI_ROM_RESOURCE].flags & IORESOURCE_ROM_SHADOW;
-+
-+	remove_conflicting_framebuffers(ap, "inteldrmfb", primary);
-+
-+	kfree(ap);
-+}
-+
- /**
-  * i915_driver_load - setup chip and create an initial config
-  * @dev: DRM device
-@@ -1927,6 +1948,15 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
- 		goto free_priv;
- 	}
- 
-+	dev_priv->mm.gtt = intel_gtt_get();
-+	if (!dev_priv->mm.gtt) {
-+		DRM_ERROR("Failed to initialize GTT\n");
-+		ret = -ENODEV;
-+		goto put_bridge;
-+	}
-+
-+	i915_kick_out_firmware_fb(dev_priv);
-+
- 	/* overlay on gen2 is broken and can't address above 1G */
- 	if (IS_GEN2(dev))
- 		dma_set_coherent_mask(&dev->pdev->dev, DMA_BIT_MASK(30));
-@@ -1950,13 +1980,6 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
- 		goto put_bridge;
- 	}
- 
--	dev_priv->mm.gtt = intel_gtt_get();
--	if (!dev_priv->mm.gtt) {
--		DRM_ERROR("Failed to initialize GTT\n");
--		ret = -ENODEV;
--		goto out_rmmap;
--	}
--
- 	agp_size = dev_priv->mm.gtt->gtt_mappable_entries << PAGE_SHIFT;
- 
- 	dev_priv->mm.gtt_mapping =
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0019-dm-persistent-data-fix-shadow_info_leak-on-dm_tm_des.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0019-dm-persistent-data-fix-shadow_info_leak-on-dm_tm_des.patch
deleted file mode 100644
index 9ac2fb5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0019-dm-persistent-data-fix-shadow_info_leak-on-dm_tm_des.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 97bbf28874e2f7467c0d05db53041e556488087a Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Tue, 3 Jul 2012 12:55:33 +0100
-Subject: [PATCH 19/49] dm persistent data: fix shadow_info_leak on
- dm_tm_destroy
-
-commit 25d7cd6faa7ae6ed2565617c3ee2500ccb8a9f7f upstream.
-
-Cleanup the shadow table before destroying the transaction manager.
-
-Reference: leak was identified with kmemleak when running
-test_discard_random_sectors in the thinp-test-suite.
-
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/persistent-data/dm-transaction-manager.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/md/persistent-data/dm-transaction-manager.c b/drivers/md/persistent-data/dm-transaction-manager.c
-index 6f8d387..e5902d1 100644
---- a/drivers/md/persistent-data/dm-transaction-manager.c
-+++ b/drivers/md/persistent-data/dm-transaction-manager.c
-@@ -138,6 +138,9 @@ EXPORT_SYMBOL_GPL(dm_tm_create_non_blocking_clone);
- 
- void dm_tm_destroy(struct dm_transaction_manager *tm)
- {
-+	if (!tm->is_clone)
-+		wipe_shadow_table(tm);
-+
- 	kfree(tm);
- }
- EXPORT_SYMBOL_GPL(dm_tm_destroy);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0020-dm-persistent-data-handle-space-map-checker-creation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0020-dm-persistent-data-handle-space-map-checker-creation.patch
deleted file mode 100644
index f186538..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0020-dm-persistent-data-handle-space-map-checker-creation.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 5ac62b535b410eb5bfbb5457703fd42f5b517088 Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Tue, 3 Jul 2012 12:55:35 +0100
-Subject: [PATCH 20/49] dm persistent data: handle space map checker creation
- failure
-
-commit 62662303e7f590fdfbb0070ab820a0ad4267c119 upstream.
-
-If CONFIG_DM_DEBUG_SPACE_MAPS is enabled and dm_sm_checker_create()
-fails, dm_tm_create_internal() would still return success even though it
-cleaned up all resources it was supposed to have created.  This will
-lead to a kernel crash:
-
-general protection fault: 0000 [#1] SMP DEBUG_PAGEALLOC
-...
-RIP: 0010:[<ffffffff81593659>]  [<ffffffff81593659>] dm_bufio_get_block_size+0x9/0x20
-Call Trace:
-  [<ffffffff81599bae>] dm_bm_block_size+0xe/0x10
-  [<ffffffff8159b8b8>] sm_ll_init+0x78/0xd0
-  [<ffffffff8159c1a6>] sm_ll_new_disk+0x16/0xa0
-  [<ffffffff8159c98e>] dm_sm_disk_create+0xfe/0x160
-  [<ffffffff815abf6e>] dm_pool_metadata_open+0x16e/0x6a0
-  [<ffffffff815aa010>] pool_ctr+0x3f0/0x900
-  [<ffffffff8158d565>] dm_table_add_target+0x195/0x450
-  [<ffffffff815904c4>] table_load+0xe4/0x330
-  [<ffffffff815917ea>] ctl_ioctl+0x15a/0x2c0
-  [<ffffffff81591963>] dm_ctl_ioctl+0x13/0x20
-  [<ffffffff8116a4f8>] do_vfs_ioctl+0x98/0x560
-  [<ffffffff8116aa51>] sys_ioctl+0x91/0xa0
-  [<ffffffff81869f52>] system_call_fastpath+0x16/0x1b
-
-Fix the space map checker code to return an appropriate ERR_PTR and have
-dm_sm_disk_create() and dm_tm_create_internal() check for it with
-IS_ERR.
-
-Reported-by: Vivek Goyal <vgoyal at redhat.com>
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/persistent-data/dm-space-map-checker.c  |   24 ++++++++++----------
- drivers/md/persistent-data/dm-space-map-disk.c     |   11 ++++++++-
- .../md/persistent-data/dm-transaction-manager.c    |    8 +++++--
- 3 files changed, 28 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/md/persistent-data/dm-space-map-checker.c b/drivers/md/persistent-data/dm-space-map-checker.c
-index 50ed53b..6d7c832 100644
---- a/drivers/md/persistent-data/dm-space-map-checker.c
-+++ b/drivers/md/persistent-data/dm-space-map-checker.c
-@@ -343,25 +343,25 @@ struct dm_space_map *dm_sm_checker_create(struct dm_space_map *sm)
- 	int r;
- 	struct sm_checker *smc;
- 
--	if (!sm)
--		return NULL;
-+	if (IS_ERR_OR_NULL(sm))
-+		return ERR_PTR(-EINVAL);
- 
- 	smc = kmalloc(sizeof(*smc), GFP_KERNEL);
- 	if (!smc)
--		return NULL;
-+		return ERR_PTR(-ENOMEM);
- 
- 	memcpy(&smc->sm, &ops_, sizeof(smc->sm));
- 	r = ca_create(&smc->old_counts, sm);
- 	if (r) {
- 		kfree(smc);
--		return NULL;
-+		return ERR_PTR(r);
- 	}
- 
- 	r = ca_create(&smc->counts, sm);
- 	if (r) {
- 		ca_destroy(&smc->old_counts);
- 		kfree(smc);
--		return NULL;
-+		return ERR_PTR(r);
- 	}
- 
- 	smc->real_sm = sm;
-@@ -371,7 +371,7 @@ struct dm_space_map *dm_sm_checker_create(struct dm_space_map *sm)
- 		ca_destroy(&smc->counts);
- 		ca_destroy(&smc->old_counts);
- 		kfree(smc);
--		return NULL;
-+		return ERR_PTR(r);
- 	}
- 
- 	r = ca_commit(&smc->old_counts, &smc->counts);
-@@ -379,7 +379,7 @@ struct dm_space_map *dm_sm_checker_create(struct dm_space_map *sm)
- 		ca_destroy(&smc->counts);
- 		ca_destroy(&smc->old_counts);
- 		kfree(smc);
--		return NULL;
-+		return ERR_PTR(r);
- 	}
- 
- 	return &smc->sm;
-@@ -391,25 +391,25 @@ struct dm_space_map *dm_sm_checker_create_fresh(struct dm_space_map *sm)
- 	int r;
- 	struct sm_checker *smc;
- 
--	if (!sm)
--		return NULL;
-+	if (IS_ERR_OR_NULL(sm))
-+		return ERR_PTR(-EINVAL);
- 
- 	smc = kmalloc(sizeof(*smc), GFP_KERNEL);
- 	if (!smc)
--		return NULL;
-+		return ERR_PTR(-ENOMEM);
- 
- 	memcpy(&smc->sm, &ops_, sizeof(smc->sm));
- 	r = ca_create(&smc->old_counts, sm);
- 	if (r) {
- 		kfree(smc);
--		return NULL;
-+		return ERR_PTR(r);
- 	}
- 
- 	r = ca_create(&smc->counts, sm);
- 	if (r) {
- 		ca_destroy(&smc->old_counts);
- 		kfree(smc);
--		return NULL;
-+		return ERR_PTR(r);
- 	}
- 
- 	smc->real_sm = sm;
-diff --git a/drivers/md/persistent-data/dm-space-map-disk.c b/drivers/md/persistent-data/dm-space-map-disk.c
-index fc469ba..3d0ed53 100644
---- a/drivers/md/persistent-data/dm-space-map-disk.c
-+++ b/drivers/md/persistent-data/dm-space-map-disk.c
-@@ -290,7 +290,16 @@ struct dm_space_map *dm_sm_disk_create(struct dm_transaction_manager *tm,
- 				       dm_block_t nr_blocks)
- {
- 	struct dm_space_map *sm = dm_sm_disk_create_real(tm, nr_blocks);
--	return dm_sm_checker_create_fresh(sm);
-+	struct dm_space_map *smc;
-+
-+	if (IS_ERR_OR_NULL(sm))
-+		return sm;
-+
-+	smc = dm_sm_checker_create_fresh(sm);
-+	if (IS_ERR(smc))
-+		dm_sm_destroy(sm);
-+
-+	return smc;
- }
- EXPORT_SYMBOL_GPL(dm_sm_disk_create);
- 
-diff --git a/drivers/md/persistent-data/dm-transaction-manager.c b/drivers/md/persistent-data/dm-transaction-manager.c
-index e5902d1..ba54aac 100644
---- a/drivers/md/persistent-data/dm-transaction-manager.c
-+++ b/drivers/md/persistent-data/dm-transaction-manager.c
-@@ -345,8 +345,10 @@ static int dm_tm_create_internal(struct dm_block_manager *bm,
- 		}
- 
- 		*sm = dm_sm_checker_create(inner);
--		if (!*sm)
-+		if (IS_ERR(*sm)) {
-+			r = PTR_ERR(*sm);
- 			goto bad2;
-+		}
- 
- 	} else {
- 		r = dm_bm_write_lock(dm_tm_get_bm(*tm), sb_location,
-@@ -365,8 +367,10 @@ static int dm_tm_create_internal(struct dm_block_manager *bm,
- 		}
- 
- 		*sm = dm_sm_checker_create(inner);
--		if (!*sm)
-+		if (IS_ERR(*sm)) {
-+			r = PTR_ERR(*sm);
- 			goto bad2;
-+		}
- 	}
- 
- 	return 0;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0021-dm-persistent-data-fix-allocation-failure-in-space-m.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0021-dm-persistent-data-fix-allocation-failure-in-space-m.patch
deleted file mode 100644
index b8121c8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0021-dm-persistent-data-fix-allocation-failure-in-space-m.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From d93e7e98bbff07495ac95fd10c02c2e0d5392079 Mon Sep 17 00:00:00 2001
-From: Mike Snitzer <snitzer at redhat.com>
-Date: Tue, 3 Jul 2012 12:55:37 +0100
-Subject: [PATCH 21/49] dm persistent data: fix allocation failure in space
- map checker init
-
-commit b0239faaf87c38bb419c9264bf20817438ddc3a9 upstream.
-
-If CONFIG_DM_DEBUG_SPACE_MAPS is enabled and memory is fragmented and a
-sufficiently-large metadata device is used in a thin pool then the space
-map checker will fail to allocate the memory it requires.
-
-Switch from kmalloc to vmalloc to allow larger virtually contiguous
-allocations for the space map checker's internal count arrays.
-
-Reported-by: Vivek Goyal <vgoyal at redhat.com>
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/persistent-data/dm-space-map-checker.c |   30 +++++++++++++--------
- 1 file changed, 19 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/md/persistent-data/dm-space-map-checker.c b/drivers/md/persistent-data/dm-space-map-checker.c
-index 6d7c832..fc90c11 100644
---- a/drivers/md/persistent-data/dm-space-map-checker.c
-+++ b/drivers/md/persistent-data/dm-space-map-checker.c
-@@ -8,6 +8,7 @@
- 
- #include <linux/device-mapper.h>
- #include <linux/export.h>
-+#include <linux/vmalloc.h>
- 
- #ifdef CONFIG_DM_DEBUG_SPACE_MAPS
- 
-@@ -89,13 +90,23 @@ static int ca_create(struct count_array *ca, struct dm_space_map *sm)
- 
- 	ca->nr = nr_blocks;
- 	ca->nr_free = nr_blocks;
--	ca->counts = kzalloc(sizeof(*ca->counts) * nr_blocks, GFP_KERNEL);
--	if (!ca->counts)
--		return -ENOMEM;
-+
-+	if (!nr_blocks)
-+		ca->counts = NULL;
-+	else {
-+		ca->counts = vzalloc(sizeof(*ca->counts) * nr_blocks);
-+		if (!ca->counts)
-+			return -ENOMEM;
-+	}
- 
- 	return 0;
- }
- 
-+static void ca_destroy(struct count_array *ca)
-+{
-+	vfree(ca->counts);
-+}
-+
- static int ca_load(struct count_array *ca, struct dm_space_map *sm)
- {
- 	int r;
-@@ -126,12 +137,14 @@ static int ca_load(struct count_array *ca, struct dm_space_map *sm)
- static int ca_extend(struct count_array *ca, dm_block_t extra_blocks)
- {
- 	dm_block_t nr_blocks = ca->nr + extra_blocks;
--	uint32_t *counts = kzalloc(sizeof(*counts) * nr_blocks, GFP_KERNEL);
-+	uint32_t *counts = vzalloc(sizeof(*counts) * nr_blocks);
- 	if (!counts)
- 		return -ENOMEM;
- 
--	memcpy(counts, ca->counts, sizeof(*counts) * ca->nr);
--	kfree(ca->counts);
-+	if (ca->counts) {
-+		memcpy(counts, ca->counts, sizeof(*counts) * ca->nr);
-+		ca_destroy(ca);
-+	}
- 	ca->nr = nr_blocks;
- 	ca->nr_free += extra_blocks;
- 	ca->counts = counts;
-@@ -151,11 +164,6 @@ static int ca_commit(struct count_array *old, struct count_array *new)
- 	return 0;
- }
- 
--static void ca_destroy(struct count_array *ca)
--{
--	kfree(ca->counts);
--}
--
- /*----------------------------------------------------------------*/
- 
- struct sm_checker {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0022-ALSA-hda-Fix-power-map-regression-for-HP-dv6-co.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0022-ALSA-hda-Fix-power-map-regression-for-HP-dv6-co.patch
deleted file mode 100644
index 3b85ba7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0022-ALSA-hda-Fix-power-map-regression-for-HP-dv6-co.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 6411ef218c12f6719597631d388f2b13945a5251 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Tue, 26 Jun 2012 17:35:10 +0200
-Subject: [PATCH 22/49] ALSA: hda - Fix power-map regression for HP dv6 & co
-
-commit 6e1c39c6b00d9141a82c231ba7c5e5b1716974b2 upstream.
-
-The recent fix for power-map controls (commit b0791dda813) caused
-regressions on some other HP laptops.  They have fixed pins but these
-pins are exposed as jack-detectable.  Thus the driver tries to control
-the power-map dynamically per jack detection where it never gets on.
-
-This patch adds the check of connection and it assumes the no jack
-detection is available for fixed pins no matter what pin capability
-says.
-
-BugLink: http://bugs.launchpad.net/bugs/1013183
-Reported-by: Luis Henriques <luis.henriques at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_sigmatel.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index 7b7a516..2b973f5 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -4457,7 +4457,7 @@ static int stac92xx_init(struct hda_codec *codec)
- 					 AC_PINCTL_IN_EN);
- 	for (i = 0; i < spec->num_pwrs; i++)  {
- 		hda_nid_t nid = spec->pwr_nids[i];
--		int pinctl, def_conf;
-+		unsigned int pinctl, def_conf;
- 
- 		/* power on when no jack detection is available */
- 		/* or when the VREF is used for controlling LED */
-@@ -4484,7 +4484,7 @@ static int stac92xx_init(struct hda_codec *codec)
- 		def_conf = get_defcfg_connect(def_conf);
- 		/* skip any ports that don't have jacks since presence
-  		 * detection is useless */
--		if (def_conf != AC_JACK_PORT_NONE &&
-+		if (def_conf != AC_JACK_PORT_COMPLEX ||
- 		    !is_jack_detectable(codec, nid)) {
- 			stac_toggle_power_map(codec, nid, 1);
- 			continue;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0023-tracing-change-CPU-ring-buffer-state-from-tracing_cp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0023-tracing-change-CPU-ring-buffer-state-from-tracing_cp.patch
deleted file mode 100644
index eb84795..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0023-tracing-change-CPU-ring-buffer-state-from-tracing_cp.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 04098d77869c04c5bf703846783cb89b4297b2bb Mon Sep 17 00:00:00 2001
-From: Vaibhav Nagarnaik <vnagarnaik at google.com>
-Date: Thu, 3 May 2012 18:59:52 -0700
-Subject: [PATCH 23/49] tracing: change CPU ring buffer state from
- tracing_cpumask
-
-commit 71babb2705e2203a64c27ede13ae3508a0d2c16c upstream.
-
-According to Documentation/trace/ftrace.txt:
-
-tracing_cpumask:
-
-        This is a mask that lets the user only trace
-        on specified CPUS. The format is a hex string
-        representing the CPUS.
-
-The tracing_cpumask currently doesn't affect the tracing state of
-per-CPU ring buffers.
-
-This patch enables/disables CPU recording as its corresponding bit in
-tracing_cpumask is set/unset.
-
-Link: http://lkml.kernel.org/r/1336096792-25373-3-git-send-email-vnagarnaik@google.com
-
-Cc: Frederic Weisbecker <fweisbec at gmail.com>
-Cc: Ingo Molnar <mingo at redhat.com>
-Cc: Laurent Chavey <chavey at google.com>
-Cc: Justin Teravest <teravest at google.com>
-Cc: David Sharp <dhsharp at google.com>
-Signed-off-by: Vaibhav Nagarnaik <vnagarnaik at google.com>
-Signed-off-by: Steven Rostedt <rostedt at goodmis.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/trace/trace.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/kernel/trace/trace.c b/kernel/trace/trace.c
-index 7e4edd3..5638104 100644
---- a/kernel/trace/trace.c
-+++ b/kernel/trace/trace.c
-@@ -2541,10 +2541,12 @@ tracing_cpumask_write(struct file *filp, const char __user *ubuf,
- 		if (cpumask_test_cpu(cpu, tracing_cpumask) &&
- 				!cpumask_test_cpu(cpu, tracing_cpumask_new)) {
- 			atomic_inc(&global_trace.data[cpu]->disabled);
-+			ring_buffer_record_disable_cpu(global_trace.buffer, cpu);
- 		}
- 		if (!cpumask_test_cpu(cpu, tracing_cpumask) &&
- 				cpumask_test_cpu(cpu, tracing_cpumask_new)) {
- 			atomic_dec(&global_trace.data[cpu]->disabled);
-+			ring_buffer_record_enable_cpu(global_trace.buffer, cpu);
- 		}
- 	}
- 	arch_spin_unlock(&ftrace_max_lock);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0024-mwifiex-fix-wrong-return-values-in-add_virtual_intf-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0024-mwifiex-fix-wrong-return-values-in-add_virtual_intf-.patch
deleted file mode 100644
index e7cb513..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0024-mwifiex-fix-wrong-return-values-in-add_virtual_intf-.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 0b53b4fb097d5d599a3a3fcd0ac10ad140bdf9c4 Mon Sep 17 00:00:00 2001
-From: Bing Zhao <bzhao at marvell.com>
-Date: Tue, 3 Jul 2012 20:43:56 -0700
-Subject: [PATCH 24/49] mwifiex: fix wrong return values in add_virtual_intf()
- error cases
-
-commit 858faa57dd9e2b91f3f870fbb1185982e42f5a2b upstream
-
-backported for linux-3.2.y, linux-3.3.y, linux-3.4.y
-
-add_virtual_intf() needs to return an ERR_PTR(), instead of NULL,
-on errors, otherwise cfg80211 will crash.
-
-Reported-by: Johannes Berg <johannes at sipsolutions.net>
-Signed-off-by: Bing Zhao <bzhao at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/mwifiex/cfg80211.c |   21 +++++++++------------
- 1 file changed, 9 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
-index 462c710..01dcb1a 100644
---- a/drivers/net/wireless/mwifiex/cfg80211.c
-+++ b/drivers/net/wireless/mwifiex/cfg80211.c
-@@ -1177,11 +1177,11 @@ struct net_device *mwifiex_add_virtual_intf(struct wiphy *wiphy,
- 	void *mdev_priv;
- 
- 	if (!priv)
--		return NULL;
-+		return ERR_PTR(-EFAULT);
- 
- 	adapter = priv->adapter;
- 	if (!adapter)
--		return NULL;
-+		return ERR_PTR(-EFAULT);
- 
- 	switch (type) {
- 	case NL80211_IFTYPE_UNSPECIFIED:
-@@ -1190,7 +1190,7 @@ struct net_device *mwifiex_add_virtual_intf(struct wiphy *wiphy,
- 		if (priv->bss_mode) {
- 			wiphy_err(wiphy, "cannot create multiple"
- 					" station/adhoc interfaces\n");
--			return NULL;
-+			return ERR_PTR(-EINVAL);
- 		}
- 
- 		if (type == NL80211_IFTYPE_UNSPECIFIED)
-@@ -1208,14 +1208,15 @@ struct net_device *mwifiex_add_virtual_intf(struct wiphy *wiphy,
- 		break;
- 	default:
- 		wiphy_err(wiphy, "type not supported\n");
--		return NULL;
-+		return ERR_PTR(-EINVAL);
- 	}
- 
- 	dev = alloc_netdev_mq(sizeof(struct mwifiex_private *), name,
- 			      ether_setup, 1);
- 	if (!dev) {
- 		wiphy_err(wiphy, "no memory available for netdevice\n");
--		goto error;
-+		priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED;
-+		return ERR_PTR(-ENOMEM);
- 	}
- 
- 	dev_net_set(dev, wiphy_net(wiphy));
-@@ -1240,7 +1241,9 @@ struct net_device *mwifiex_add_virtual_intf(struct wiphy *wiphy,
- 	/* Register network device */
- 	if (register_netdevice(dev)) {
- 		wiphy_err(wiphy, "cannot register virtual network device\n");
--		goto error;
-+		free_netdev(dev);
-+		priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED;
-+		return ERR_PTR(-EFAULT);
- 	}
- 
- 	sema_init(&priv->async_sem, 1);
-@@ -1252,12 +1255,6 @@ struct net_device *mwifiex_add_virtual_intf(struct wiphy *wiphy,
- 	mwifiex_dev_debugfs_init(priv);
- #endif
- 	return dev;
--error:
--	if (dev && (dev->reg_state == NETREG_UNREGISTERED))
--		free_netdev(dev);
--	priv->bss_mode = NL80211_IFTYPE_UNSPECIFIED;
--
--	return NULL;
- }
- EXPORT_SYMBOL_GPL(mwifiex_add_virtual_intf);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0025-udf-Use-ret-instead-of-abusing-i-in-udf_load_logical.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0025-udf-Use-ret-instead-of-abusing-i-in-udf_load_logical.patch
deleted file mode 100644
index 0d5c179..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0025-udf-Use-ret-instead-of-abusing-i-in-udf_load_logical.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 4d7257d8f5c970ce0f699d893f6050fd8bd11f3c Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Wed, 27 Jun 2012 20:08:44 +0200
-Subject: [PATCH 25/49] udf: Use 'ret' instead of abusing 'i' in
- udf_load_logicalvol()
-
-commit cb14d340ef1737c24125dd663eff77734a482d47 upstream.
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/udf/super.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/fs/udf/super.c b/fs/udf/super.c
-index 87cb24a..eea2bfe 100644
---- a/fs/udf/super.c
-+++ b/fs/udf/super.c
-@@ -1235,11 +1235,9 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
- 	BUG_ON(ident != TAG_IDENT_LVD);
- 	lvd = (struct logicalVolDesc *)bh->b_data;
- 
--	i = udf_sb_alloc_partition_maps(sb, le32_to_cpu(lvd->numPartitionMaps));
--	if (i != 0) {
--		ret = i;
-+	ret = udf_sb_alloc_partition_maps(sb, le32_to_cpu(lvd->numPartitionMaps));
-+	if (ret)
- 		goto out_bh;
--	}
- 
- 	for (i = 0, offset = 0;
- 	     i < sbi->s_partitions && offset < le32_to_cpu(lvd->mapTableLength);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0026-udf-Avoid-run-away-loop-when-partition-table-length-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0026-udf-Avoid-run-away-loop-when-partition-table-length-.patch
deleted file mode 100644
index b9fb57a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0026-udf-Avoid-run-away-loop-when-partition-table-length-.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 0a9d08974ed753d12541081ae062e5f69298d791 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Wed, 27 Jun 2012 20:20:22 +0200
-Subject: [PATCH 26/49] udf: Avoid run away loop when partition table length
- is corrupted
-
-commit adee11b2085bee90bd8f4f52123ffb07882d6256 upstream.
-
-Check provided length of partition table so that (possibly maliciously)
-corrupted partition table cannot cause accessing data beyond current buffer.
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/udf/super.c |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/fs/udf/super.c b/fs/udf/super.c
-index eea2bfe..800e839 100644
---- a/fs/udf/super.c
-+++ b/fs/udf/super.c
-@@ -1227,6 +1227,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
- 	struct genericPartitionMap *gpm;
- 	uint16_t ident;
- 	struct buffer_head *bh;
-+	unsigned int table_len;
- 	int ret = 0;
- 
- 	bh = udf_read_tagged(sb, block, block, &ident);
-@@ -1234,13 +1235,20 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
- 		return 1;
- 	BUG_ON(ident != TAG_IDENT_LVD);
- 	lvd = (struct logicalVolDesc *)bh->b_data;
-+	table_len = le32_to_cpu(lvd->mapTableLength);
-+	if (sizeof(*lvd) + table_len > sb->s_blocksize) {
-+		udf_err(sb, "error loading logical volume descriptor: "
-+			"Partition table too long (%u > %lu)\n", table_len,
-+			sb->s_blocksize - sizeof(*lvd));
-+		goto out_bh;
-+	}
- 
- 	ret = udf_sb_alloc_partition_maps(sb, le32_to_cpu(lvd->numPartitionMaps));
- 	if (ret)
- 		goto out_bh;
- 
- 	for (i = 0, offset = 0;
--	     i < sbi->s_partitions && offset < le32_to_cpu(lvd->mapTableLength);
-+	     i < sbi->s_partitions && offset < table_len;
- 	     i++, offset += gpm->partitionMapLength) {
- 		struct udf_part_map *map = &sbi->s_partmaps[i];
- 		gpm = (struct genericPartitionMap *)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0027-udf-Fortify-loading-of-sparing-table.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0027-udf-Fortify-loading-of-sparing-table.patch
deleted file mode 100644
index 2c4b706..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0027-udf-Fortify-loading-of-sparing-table.patch
+++ /dev/null
@@ -1,134 +0,0 @@
-From 9db7244bafd8f99123cf5fe816e4961115831ca9 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Wed, 27 Jun 2012 21:23:07 +0200
-Subject: [PATCH 27/49] udf: Fortify loading of sparing table
-
-commit 1df2ae31c724e57be9d7ac00d78db8a5dabdd050 upstream.
-
-Add sanity checks when loading sparing table from disk to avoid accessing
-unallocated memory or writing to it.
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/udf/super.c |   86 ++++++++++++++++++++++++++++++++++----------------------
- 1 file changed, 53 insertions(+), 33 deletions(-)
-
-diff --git a/fs/udf/super.c b/fs/udf/super.c
-index 800e839..270e135 100644
---- a/fs/udf/super.c
-+++ b/fs/udf/super.c
-@@ -56,6 +56,7 @@
- #include <linux/seq_file.h>
- #include <linux/bitmap.h>
- #include <linux/crc-itu-t.h>
-+#include <linux/log2.h>
- #include <asm/byteorder.h>
- 
- #include "udf_sb.h"
-@@ -1217,11 +1218,59 @@ out_bh:
- 	return ret;
- }
- 
-+static int udf_load_sparable_map(struct super_block *sb,
-+				 struct udf_part_map *map,
-+				 struct sparablePartitionMap *spm)
-+{
-+	uint32_t loc;
-+	uint16_t ident;
-+	struct sparingTable *st;
-+	struct udf_sparing_data *sdata = &map->s_type_specific.s_sparing;
-+	int i;
-+	struct buffer_head *bh;
-+
-+	map->s_partition_type = UDF_SPARABLE_MAP15;
-+	sdata->s_packet_len = le16_to_cpu(spm->packetLength);
-+	if (!is_power_of_2(sdata->s_packet_len)) {
-+		udf_err(sb, "error loading logical volume descriptor: "
-+			"Invalid packet length %u\n",
-+			(unsigned)sdata->s_packet_len);
-+		return -EIO;
-+	}
-+	if (spm->numSparingTables > 4) {
-+		udf_err(sb, "error loading logical volume descriptor: "
-+			"Too many sparing tables (%d)\n",
-+			(int)spm->numSparingTables);
-+		return -EIO;
-+	}
-+
-+	for (i = 0; i < spm->numSparingTables; i++) {
-+		loc = le32_to_cpu(spm->locSparingTable[i]);
-+		bh = udf_read_tagged(sb, loc, loc, &ident);
-+		if (!bh)
-+			continue;
-+
-+		st = (struct sparingTable *)bh->b_data;
-+		if (ident != 0 ||
-+		    strncmp(st->sparingIdent.ident, UDF_ID_SPARING,
-+			    strlen(UDF_ID_SPARING)) ||
-+		    sizeof(*st) + le16_to_cpu(st->reallocationTableLen) >
-+							sb->s_blocksize) {
-+			brelse(bh);
-+			continue;
-+		}
-+
-+		sdata->s_spar_map[i] = bh;
-+	}
-+	map->s_partition_func = udf_get_pblock_spar15;
-+	return 0;
-+}
-+
- static int udf_load_logicalvol(struct super_block *sb, sector_t block,
- 			       struct kernel_lb_addr *fileset)
- {
- 	struct logicalVolDesc *lvd;
--	int i, j, offset;
-+	int i, offset;
- 	uint8_t type;
- 	struct udf_sb_info *sbi = UDF_SB(sb);
- 	struct genericPartitionMap *gpm;
-@@ -1283,38 +1332,9 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
- 			} else if (!strncmp(upm2->partIdent.ident,
- 						UDF_ID_SPARABLE,
- 						strlen(UDF_ID_SPARABLE))) {
--				uint32_t loc;
--				struct sparingTable *st;
--				struct sparablePartitionMap *spm =
--					(struct sparablePartitionMap *)gpm;
--
--				map->s_partition_type = UDF_SPARABLE_MAP15;
--				map->s_type_specific.s_sparing.s_packet_len =
--						le16_to_cpu(spm->packetLength);
--				for (j = 0; j < spm->numSparingTables; j++) {
--					struct buffer_head *bh2;
--
--					loc = le32_to_cpu(
--						spm->locSparingTable[j]);
--					bh2 = udf_read_tagged(sb, loc, loc,
--							     &ident);
--					map->s_type_specific.s_sparing.
--							s_spar_map[j] = bh2;
--
--					if (bh2 == NULL)
--						continue;
--
--					st = (struct sparingTable *)bh2->b_data;
--					if (ident != 0 || strncmp(
--						st->sparingIdent.ident,
--						UDF_ID_SPARING,
--						strlen(UDF_ID_SPARING))) {
--						brelse(bh2);
--						map->s_type_specific.s_sparing.
--							s_spar_map[j] = NULL;
--					}
--				}
--				map->s_partition_func = udf_get_pblock_spar15;
-+				if (udf_load_sparable_map(sb, map,
-+				    (struct sparablePartitionMap *)gpm) < 0)
-+					goto out_bh;
- 			} else if (!strncmp(upm2->partIdent.ident,
- 						UDF_ID_METADATA,
- 						strlen(UDF_ID_METADATA))) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0028-ARM-fix-rcu-stalls-on-SMP-platforms.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0028-ARM-fix-rcu-stalls-on-SMP-platforms.patch
deleted file mode 100644
index 4187adc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0028-ARM-fix-rcu-stalls-on-SMP-platforms.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From cb4aa2ef6f748fa3a3e6cd3889153c191e63d48e Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel at arm.linux.org.uk>
-Date: Thu, 19 Jan 2012 15:20:58 +0000
-Subject: [PATCH 28/49] ARM: fix rcu stalls on SMP platforms
-
-commit 7deabca0acfe02b8e18f59a4c95676012f49a304 upstream.
-
-We can stall RCU processing on SMP platforms if a CPU sits in its idle
-loop for a long time.  This happens because we don't call irq_enter()
-and irq_exit() around generic_smp_call_function_interrupt() and
-friends.  Add the necessary calls, and remove the one from within
-ipi_timer(), so that they're all in a common place.
-
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/kernel/smp.c |   10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/kernel/smp.c b/arch/arm/kernel/smp.c
-index e10e59a..1d1710e 100644
---- a/arch/arm/kernel/smp.c
-+++ b/arch/arm/kernel/smp.c
-@@ -471,9 +471,7 @@ static DEFINE_PER_CPU(struct clock_event_device, percpu_clockevent);
- static void ipi_timer(void)
- {
- 	struct clock_event_device *evt = &__get_cpu_var(percpu_clockevent);
--	irq_enter();
- 	evt->event_handler(evt);
--	irq_exit();
- }
- 
- #ifdef CONFIG_GENERIC_CLOCKEVENTS_BROADCAST
-@@ -572,7 +570,9 @@ void handle_IPI(int ipinr, struct pt_regs *regs)
- 
- 	switch (ipinr) {
- 	case IPI_TIMER:
-+		irq_enter();
- 		ipi_timer();
-+		irq_exit();
- 		break;
- 
- 	case IPI_RESCHEDULE:
-@@ -580,15 +580,21 @@ void handle_IPI(int ipinr, struct pt_regs *regs)
- 		break;
- 
- 	case IPI_CALL_FUNC:
-+		irq_enter();
- 		generic_smp_call_function_interrupt();
-+		irq_exit();
- 		break;
- 
- 	case IPI_CALL_FUNC_SINGLE:
-+		irq_enter();
- 		generic_smp_call_function_single_interrupt();
-+		irq_exit();
- 		break;
- 
- 	case IPI_CPU_STOP:
-+		irq_enter();
- 		ipi_cpu_stop(cpu);
-+		irq_exit();
- 		break;
- 
- 	default:
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0029-net-sock-validate-data_len-before-allocating-skb-in-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0029-net-sock-validate-data_len-before-allocating-skb-in-.patch
deleted file mode 100644
index 7ede727..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0029-net-sock-validate-data_len-before-allocating-skb-in-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 9e88f1e8bf3f7dbc0cb410a09c003180052bd7d4 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 30 May 2012 21:18:10 +0000
-Subject: [PATCH 29/49] net: sock: validate data_len before allocating skb in
- sock_alloc_send_pskb()
-
-[ Upstream commit cc9b17ad29ecaa20bfe426a8d4dbfb94b13ff1cc ]
-
-We need to validate the number of pages consumed by data_len, otherwise frags
-array could be overflowed by userspace. So this patch validate data_len and
-return -EMSGSIZE when data_len may occupies more frags than MAX_SKB_FRAGS.
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/sock.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/net/core/sock.c b/net/core/sock.c
-index b23f174..8d095b9 100644
---- a/net/core/sock.c
-+++ b/net/core/sock.c
-@@ -1497,6 +1497,11 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,
- 	gfp_t gfp_mask;
- 	long timeo;
- 	int err;
-+	int npages = (data_len + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
-+
-+	err = -EMSGSIZE;
-+	if (npages > MAX_SKB_FRAGS)
-+		goto failure;
- 
- 	gfp_mask = sk->sk_allocation;
- 	if (gfp_mask & __GFP_WAIT)
-@@ -1515,14 +1520,12 @@ struct sk_buff *sock_alloc_send_pskb(struct sock *sk, unsigned long header_len,
- 		if (atomic_read(&sk->sk_wmem_alloc) < sk->sk_sndbuf) {
- 			skb = alloc_skb(header_len, gfp_mask);
- 			if (skb) {
--				int npages;
- 				int i;
- 
- 				/* No pages, we're done... */
- 				if (!data_len)
- 					break;
- 
--				npages = (data_len + (PAGE_SIZE - 1)) >> PAGE_SHIFT;
- 				skb->truesize += data_len;
- 				skb_shinfo(skb)->nr_frags = npages;
- 				for (i = 0; i < npages; i++) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0030-cipso-handle-CIPSO-options-correctly-when-NetLabel-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0030-cipso-handle-CIPSO-options-correctly-when-NetLabel-i.patch
deleted file mode 100644
index 8310ad9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0030-cipso-handle-CIPSO-options-correctly-when-NetLabel-i.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From e3e2beb00731e994722f01a1c284e3bcc69264ba Mon Sep 17 00:00:00 2001
-From: Paul Moore <pmoore at redhat.com>
-Date: Fri, 1 Jun 2012 05:54:56 +0000
-Subject: [PATCH 30/49] cipso: handle CIPSO options correctly when NetLabel is
- disabled
-
-[ Upstream commit 20e2a86485967c385d7c7befc1646e4d1d39362e ]
-
-When NetLabel is not enabled, e.g. CONFIG_NETLABEL=n, and the system
-receives a CIPSO tagged packet it is dropped (cipso_v4_validate()
-returns non-zero).  In most cases this is the correct and desired
-behavior, however, in the case where we are simply forwarding the
-traffic, e.g. acting as a network bridge, this becomes a problem.
-
-This patch fixes the forwarding problem by providing the basic CIPSO
-validation code directly in ip_options_compile() without the need for
-the NetLabel or CIPSO code.  The new validation code can not perform
-any of the CIPSO option label/value verification that
-cipso_v4_validate() does, but it can verify the basic CIPSO option
-format.
-
-The behavior when NetLabel is enabled is unchanged.
-
-Signed-off-by: Paul Moore <pmoore at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/net/cipso_ipv4.h |   29 ++++++++++++++++++++++++++++-
- 1 file changed, 28 insertions(+), 1 deletion(-)
-
-diff --git a/include/net/cipso_ipv4.h b/include/net/cipso_ipv4.h
-index 9808877..a7a683e 100644
---- a/include/net/cipso_ipv4.h
-+++ b/include/net/cipso_ipv4.h
-@@ -42,6 +42,7 @@
- #include <net/netlabel.h>
- #include <net/request_sock.h>
- #include <linux/atomic.h>
-+#include <asm/unaligned.h>
- 
- /* known doi values */
- #define CIPSO_V4_DOI_UNKNOWN          0x00000000
-@@ -285,7 +286,33 @@ static inline int cipso_v4_skbuff_getattr(const struct sk_buff *skb,
- static inline int cipso_v4_validate(const struct sk_buff *skb,
- 				    unsigned char **option)
- {
--	return -ENOSYS;
-+	unsigned char *opt = *option;
-+	unsigned char err_offset = 0;
-+	u8 opt_len = opt[1];
-+	u8 opt_iter;
-+
-+	if (opt_len < 8) {
-+		err_offset = 1;
-+		goto out;
-+	}
-+
-+	if (get_unaligned_be32(&opt[2]) == 0) {
-+		err_offset = 2;
-+		goto out;
-+	}
-+
-+	for (opt_iter = 6; opt_iter < opt_len;) {
-+		if (opt[opt_iter + 1] > (opt_len - opt_iter)) {
-+			err_offset = opt_iter + 1;
-+			goto out;
-+		}
-+		opt_iter += opt[opt_iter + 1];
-+	}
-+
-+out:
-+	*option = opt + err_offset;
-+	return err_offset;
-+
- }
- #endif /* CONFIG_NETLABEL */
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0031-net-l2tp_eth-fix-kernel-panic-on-rmmod-l2tp_eth.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0031-net-l2tp_eth-fix-kernel-panic-on-rmmod-l2tp_eth.patch
deleted file mode 100644
index 27a349b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0031-net-l2tp_eth-fix-kernel-panic-on-rmmod-l2tp_eth.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b5ad3a0c0628afa77ab9de116e252fbac91f6db2 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Thu, 7 Jun 2012 00:07:20 +0000
-Subject: [PATCH 31/49] net: l2tp_eth: fix kernel panic on rmmod l2tp_eth
-
-[ Upstream commit a06998b88b1651c5f71c0e35f528bf2057188ead ]
-
-We must prevent module unloading if some devices are still attached to
-l2tp_eth driver.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Reported-by: Denys Fedoryshchenko <denys at visp.net.lb>
-Tested-by: Denys Fedoryshchenko <denys at visp.net.lb>
-Cc: James Chapman <jchapman at katalix.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/l2tp/l2tp_eth.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/net/l2tp/l2tp_eth.c b/net/l2tp/l2tp_eth.c
-index d2726a7..3c55f63 100644
---- a/net/l2tp/l2tp_eth.c
-+++ b/net/l2tp/l2tp_eth.c
-@@ -167,6 +167,7 @@ static void l2tp_eth_delete(struct l2tp_session *session)
- 		if (dev) {
- 			unregister_netdev(dev);
- 			spriv->dev = NULL;
-+			module_put(THIS_MODULE);
- 		}
- 	}
- }
-@@ -254,6 +255,7 @@ static int l2tp_eth_create(struct net *net, u32 tunnel_id, u32 session_id, u32 p
- 	if (rc < 0)
- 		goto out_del_dev;
- 
-+	__module_get(THIS_MODULE);
- 	/* Must be done after register_netdev() */
- 	strlcpy(session->ifname, dev->name, IFNAMSIZ);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0032-l2tp-fix-a-race-in-l2tp_ip_sendmsg.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0032-l2tp-fix-a-race-in-l2tp_ip_sendmsg.patch
deleted file mode 100644
index 60f8a9d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0032-l2tp-fix-a-race-in-l2tp_ip_sendmsg.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a2ee8c14e43a7432b50a050cd07c06d43caa9314 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Fri, 8 Jun 2012 06:25:00 +0000
-Subject: [PATCH 32/49] l2tp: fix a race in l2tp_ip_sendmsg()
-
-[ Upstream commit 4399a4df98a63e30fd16e9d0cecc46ea92269e8f ]
-
-Commit 081b1b1bb27f (l2tp: fix l2tp_ip_sendmsg() route handling) added
-a race, in case IP route cache is disabled.
-
-In this case, we should not do the dst_release(&rt->dst), since it'll
-free the dst immediately, instead of waiting a RCU grace period.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: James Chapman <jchapman at katalix.com>
-Cc: Denys Fedoryshchenko <denys at visp.net.lb>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/l2tp/l2tp_ip.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
-index 2fbbe1f..6c7e609 100644
---- a/net/l2tp/l2tp_ip.c
-+++ b/net/l2tp/l2tp_ip.c
-@@ -515,10 +515,12 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
- 					   sk->sk_bound_dev_if);
- 		if (IS_ERR(rt))
- 			goto no_route;
--		if (connected)
-+		if (connected) {
- 			sk_setup_caps(sk, &rt->dst);
--		else
--			dst_release(&rt->dst); /* safe since we hold rcu_read_lock */
-+		} else {
-+			skb_dst_set(skb, &rt->dst);
-+			goto xmit;
-+		}
- 	}
- 
- 	/* We dont need to clone dst here, it is guaranteed to not disappear.
-@@ -526,6 +528,7 @@ static int l2tp_ip_sendmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *m
- 	 */
- 	skb_dst_set_noref(skb, &rt->dst);
- 
-+xmit:
- 	/* Queue the packet to IP for output */
- 	rc = ip_queue_xmit(skb, &inet->cork.fl);
- 	rcu_read_unlock();
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0033-sky2-fix-checksum-bit-management-on-some-chips.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0033-sky2-fix-checksum-bit-management-on-some-chips.patch
deleted file mode 100644
index f1d1fb6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0033-sky2-fix-checksum-bit-management-on-some-chips.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From f13b66c5fac7aa65e68a960806d6c5e97df723eb Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Wed, 6 Jun 2012 10:01:30 +0000
-Subject: [PATCH 33/49] sky2: fix checksum bit management on some chips
-
-[ Upstream commit 5ff0feac88ced864f44adb145142269196fa79d9 ]
-
-The newer flavors of Yukon II use a different method for receive
-checksum offload. This is indicated in the driver by the SKY2_HW_NEW_LE
-flag. On these newer chips, the BMU_ENA_RX_CHKSUM should not be set.
-
-The driver would get incorrectly toggle the bit, enabling the old
-checksum logic on these chips and cause a BUG_ON() assertion. If
-receive checksum was toggled via ethtool.
-
-Reported-by: Kirill Smelkov <kirr at mns.spb.ru>
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/marvell/sky2.c |   10 ++++++----
- 1 file changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/ethernet/marvell/sky2.c b/drivers/net/ethernet/marvell/sky2.c
-index 65c51ff..11ddd838 100644
---- a/drivers/net/ethernet/marvell/sky2.c
-+++ b/drivers/net/ethernet/marvell/sky2.c
-@@ -4361,10 +4361,12 @@ static int sky2_set_features(struct net_device *dev, u32 features)
- 	struct sky2_port *sky2 = netdev_priv(dev);
- 	u32 changed = dev->features ^ features;
- 
--	if (changed & NETIF_F_RXCSUM) {
--		u32 on = features & NETIF_F_RXCSUM;
--		sky2_write32(sky2->hw, Q_ADDR(rxqaddr[sky2->port], Q_CSR),
--			     on ? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM);
-+	if ((changed & NETIF_F_RXCSUM) &&
-+	    !(sky2->hw->flags & SKY2_HW_NEW_LE)) {
-+		sky2_write32(sky2->hw,
-+			     Q_ADDR(rxqaddr[sky2->port], Q_CSR),
-+			     (features & NETIF_F_RXCSUM)
-+			     ? BMU_ENA_RX_CHKSUM : BMU_DIS_RX_CHKSUM);
- 	}
- 
- 	if (changed & NETIF_F_RXHASH)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0034-be2net-fix-a-race-in-be_xmit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0034-be2net-fix-a-race-in-be_xmit.patch
deleted file mode 100644
index c67c72a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0034-be2net-fix-a-race-in-be_xmit.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 5588c981e9bc21ca9bd050a8e15feb4adb1215b9 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Thu, 7 Jun 2012 22:59:59 +0000
-Subject: [PATCH 34/49] be2net: fix a race in be_xmit()
-
-[ Upstream commit cd8f76c0a0c6fce0b2cf23c9bd0123f91453f46d ]
-
-As soon as hardware is notified of a transmit, we no longer can assume
-skb can be dereferenced, as TX completion might have freed the packet.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Sathya Perla <sathya.perla at emulex.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/emulex/benet/be_main.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/emulex/benet/be_main.c b/drivers/net/ethernet/emulex/benet/be_main.c
-index bf266a0..36c7c4e 100644
---- a/drivers/net/ethernet/emulex/benet/be_main.c
-+++ b/drivers/net/ethernet/emulex/benet/be_main.c
-@@ -696,6 +696,8 @@ static netdev_tx_t be_xmit(struct sk_buff *skb,
- 
- 	copied = make_tx_wrbs(adapter, txq, skb, wrb_cnt, dummy_wrb);
- 	if (copied) {
-+		int gso_segs = skb_shinfo(skb)->gso_segs;
-+
- 		/* record the sent skb in the sent_skb table */
- 		BUG_ON(txo->sent_skb_list[start]);
- 		txo->sent_skb_list[start] = skb;
-@@ -713,8 +715,7 @@ static netdev_tx_t be_xmit(struct sk_buff *skb,
- 
- 		be_txq_notify(adapter, txq->id, wrb_cnt);
- 
--		be_tx_stats_update(txo, wrb_cnt, copied,
--				skb_shinfo(skb)->gso_segs, stopped);
-+		be_tx_stats_update(txo, wrb_cnt, copied, gso_segs, stopped);
- 	} else {
- 		txq->head = start;
- 		dev_kfree_skb_any(skb);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0035-dummy-fix-rcu_sched-self-detected-stalls.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0035-dummy-fix-rcu_sched-self-detected-stalls.patch
deleted file mode 100644
index 33f9ffa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0035-dummy-fix-rcu_sched-self-detected-stalls.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 6e4b4fb46ccc49cacb3258764f2414ecd4fb27a4 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Sun, 10 Jun 2012 21:11:57 +0000
-Subject: [PATCH 35/49] dummy: fix rcu_sched self-detected stalls
-
-[ Upstream commit 16b0dc29c1af9df341428f4c49ada4f626258082 ]
-
-Trying to "modprobe dummy numdummies=30000" triggers :
-
-INFO: rcu_sched self-detected stall on CPU { 8} (t=60000 jiffies)
-
-After this splat, RTNL is locked and reboot is needed.
-
-We must call cond_resched() to avoid this, even holding RTNL.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/dummy.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/dummy.c b/drivers/net/dummy.c
-index eeac9ca..68fe73c 100644
---- a/drivers/net/dummy.c
-+++ b/drivers/net/dummy.c
-@@ -37,6 +37,7 @@
- #include <linux/rtnetlink.h>
- #include <net/rtnetlink.h>
- #include <linux/u64_stats_sync.h>
-+#include <linux/sched.h>
- 
- static int numdummies = 1;
- 
-@@ -186,8 +187,10 @@ static int __init dummy_init_module(void)
- 	rtnl_lock();
- 	err = __rtnl_link_register(&dummy_link_ops);
- 
--	for (i = 0; i < numdummies && !err; i++)
-+	for (i = 0; i < numdummies && !err; i++) {
- 		err = dummy_init_one();
-+		cond_resched();
-+	}
- 	if (err < 0)
- 		__rtnl_link_unregister(&dummy_link_ops);
- 	rtnl_unlock();
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0036-bonding-Fix-corrupted-queue_mapping.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0036-bonding-Fix-corrupted-queue_mapping.patch
deleted file mode 100644
index 6f9681c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0036-bonding-Fix-corrupted-queue_mapping.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 218ae95441a945d2a474b2277156749f416b8859 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Tue, 12 Jun 2012 06:03:51 +0000
-Subject: [PATCH 36/49] bonding: Fix corrupted queue_mapping
-
-[ Upstream commit 5ee31c6898ea5537fcea160999d60dc63bc0c305 ]
-
-In the transmit path of the bonding driver, skb->cb is used to
-stash the skb->queue_mapping so that the bonding device can set its
-own queue mapping.  This value becomes corrupted since the skb->cb is
-also used in __dev_xmit_skb.
-
-When transmitting through bonding driver, bond_select_queue is
-called from dev_queue_xmit.  In bond_select_queue the original
-skb->queue_mapping is copied into skb->cb (via bond_queue_mapping)
-and skb->queue_mapping is overwritten with the bond driver queue.
-
-Subsequently in dev_queue_xmit, __dev_xmit_skb is called which writes
-the packet length into skb->cb, thereby overwriting the stashed
-queue mappping.  In bond_dev_queue_xmit (called from hard_start_xmit),
-the queue mapping for the skb is set to the stashed value which is now
-the skb length and hence is an invalid queue for the slave device.
-
-If we want to save skb->queue_mapping into skb->cb[], best place is to
-add a field in struct qdisc_skb_cb, to make sure it wont conflict with
-other layers (eg : Qdiscc, Infiniband...)
-
-This patchs also makes sure (struct qdisc_skb_cb)->data is aligned on 8
-bytes :
-
-netem qdisc for example assumes it can store an u64 in it, without
-misalignment penalty.
-
-Note : we only have 20 bytes left in (struct qdisc_skb_cb)->data[].
-The largest user is CHOKe and it fills it.
-
-Based on a previous patch from Tom Herbert.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Reported-by: Tom Herbert <therbert at google.com>
-Cc: John Fastabend <john.r.fastabend at intel.com>
-Cc: Roland Dreier <roland at kernel.org>
-Acked-by: Neil Horman <nhorman at tuxdriver.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/bonding/bond_main.c |    9 +++++----
- include/net/sch_generic.h       |    7 +++++--
- 2 files changed, 10 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index f65e0b9..1a88e38 100644
---- a/drivers/net/bonding/bond_main.c
-+++ b/drivers/net/bonding/bond_main.c
-@@ -77,6 +77,7 @@
- #include <net/route.h>
- #include <net/net_namespace.h>
- #include <net/netns/generic.h>
-+#include <net/pkt_sched.h>
- #include "bonding.h"
- #include "bond_3ad.h"
- #include "bond_alb.h"
-@@ -382,8 +383,6 @@ struct vlan_entry *bond_next_vlan(struct bonding *bond, struct vlan_entry *curr)
- 	return next;
- }
- 
--#define bond_queue_mapping(skb) (*(u16 *)((skb)->cb))
--
- /**
-  * bond_dev_queue_xmit - Prepare skb for xmit.
-  *
-@@ -396,7 +395,9 @@ int bond_dev_queue_xmit(struct bonding *bond, struct sk_buff *skb,
- {
- 	skb->dev = slave_dev;
- 
--	skb->queue_mapping = bond_queue_mapping(skb);
-+	BUILD_BUG_ON(sizeof(skb->queue_mapping) !=
-+		     sizeof(qdisc_skb_cb(skb)->bond_queue_mapping));
-+	skb->queue_mapping = qdisc_skb_cb(skb)->bond_queue_mapping;
- 
- 	if (unlikely(netpoll_tx_running(slave_dev)))
- 		bond_netpoll_send_skb(bond_get_slave_by_dev(bond, slave_dev), skb);
-@@ -4151,7 +4152,7 @@ static u16 bond_select_queue(struct net_device *dev, struct sk_buff *skb)
- 	/*
- 	 * Save the original txq to restore before passing to the driver
- 	 */
--	bond_queue_mapping(skb) = skb->queue_mapping;
-+	qdisc_skb_cb(skb)->bond_queue_mapping = skb->queue_mapping;
- 
- 	if (unlikely(txq >= dev->real_num_tx_queues)) {
- 		do {
-diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
-index 55ce96b..9d7d54a 100644
---- a/include/net/sch_generic.h
-+++ b/include/net/sch_generic.h
-@@ -220,13 +220,16 @@ struct tcf_proto {
- 
- struct qdisc_skb_cb {
- 	unsigned int		pkt_len;
--	unsigned char		data[24];
-+	u16			bond_queue_mapping;
-+	u16			_pad;
-+	unsigned char		data[20];
- };
- 
- static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz)
- {
- 	struct qdisc_skb_cb *qcb;
--	BUILD_BUG_ON(sizeof(skb->cb) < sizeof(unsigned int) + sz);
-+
-+	BUILD_BUG_ON(sizeof(skb->cb) < offsetof(struct qdisc_skb_cb, data) + sz);
- 	BUILD_BUG_ON(sizeof(qcb->data) < sz);
- }
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0037-ethtool-allow-ETHTOOL_GSSET_INFO-for-users.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0037-ethtool-allow-ETHTOOL_GSSET_INFO-for-users.patch
deleted file mode 100644
index 6e02ce1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0037-ethtool-allow-ETHTOOL_GSSET_INFO-for-users.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7d1a3b73b1d85f034aeb9e5c1e4eb44ce56658be Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Micha=C5=82=20Miros=C5=82aw?= <mirq-linux at rere.qmqm.pl>
-Date: Sun, 22 Jan 2012 00:20:40 +0000
-Subject: [PATCH 37/49] ethtool: allow ETHTOOL_GSSET_INFO for users
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit f80400a26a2e8bff541de12834a1134358bb6642 ]
-
-Allow ETHTOOL_GSSET_INFO ethtool ioctl() for unprivileged users.
-ETHTOOL_GSTRINGS is already allowed, but is unusable without this one.
-
-Signed-off-by: Michał Mirosław <mirq-linux at rere.qmqm.pl>
-Acked-by: Ben Hutchings <bhutchings at solarflare.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/ethtool.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/net/core/ethtool.c b/net/core/ethtool.c
-index 2b587ec..2367246 100644
---- a/net/core/ethtool.c
-+++ b/net/core/ethtool.c
-@@ -1672,6 +1672,7 @@ int dev_ethtool(struct net *net, struct ifreq *ifr)
- 	case ETHTOOL_GRXCSUM:
- 	case ETHTOOL_GTXCSUM:
- 	case ETHTOOL_GSG:
-+	case ETHTOOL_GSSET_INFO:
- 	case ETHTOOL_GSTRINGS:
- 	case ETHTOOL_GTSO:
- 	case ETHTOOL_GPERMADDR:
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0038-netpoll-fix-netpoll_send_udp-bugs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0038-netpoll-fix-netpoll_send_udp-bugs.patch
deleted file mode 100644
index e906246..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0038-netpoll-fix-netpoll_send_udp-bugs.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 1757946f8c246a1b46bf27d40716d4f78145f4a1 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Tue, 12 Jun 2012 19:30:21 +0000
-Subject: [PATCH 38/49] netpoll: fix netpoll_send_udp() bugs
-
-[ Upstream commit 954fba0274058d27c7c07b5ea07c41b3b7477894 ]
-
-Bogdan Hamciuc diagnosed and fixed following bug in netpoll_send_udp() :
-
-"skb->len += len;" instead of "skb_put(skb, len);"
-
-Meaning that _if_ a network driver needs to call skb_realloc_headroom(),
-only packet headers would be copied, leaving garbage in the payload.
-
-However the skb_realloc_headroom() must be avoided as much as possible
-since it requires memory and netpoll tries hard to work even if memory
-is exhausted (using a pool of preallocated skbs)
-
-It appears netpoll_send_udp() reserved 16 bytes for the ethernet header,
-which happens to work for typicall drivers but not all.
-
-Right thing is to use LL_RESERVED_SPACE(dev)
-(And also add dev->needed_tailroom of tailroom)
-
-This patch combines both fixes.
-
-Many thanks to Bogdan for raising this issue.
-
-Reported-by: Bogdan Hamciuc <bogdan.hamciuc at freescale.com>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Tested-by: Bogdan Hamciuc <bogdan.hamciuc at freescale.com>
-Cc: Herbert Xu <herbert at gondor.apana.org.au>
-Cc: Neil Horman <nhorman at tuxdriver.com>
-Reviewed-by: Neil Horman <nhorman at tuxdriver.com>
-Reviewed-by: Cong Wang <xiyou.wangcong at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/netpoll.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/net/core/netpoll.c b/net/core/netpoll.c
-index ab0633f..db4bb7a 100644
---- a/net/core/netpoll.c
-+++ b/net/core/netpoll.c
-@@ -351,22 +351,23 @@ EXPORT_SYMBOL(netpoll_send_skb_on_dev);
- 
- void netpoll_send_udp(struct netpoll *np, const char *msg, int len)
- {
--	int total_len, eth_len, ip_len, udp_len;
-+	int total_len, ip_len, udp_len;
- 	struct sk_buff *skb;
- 	struct udphdr *udph;
- 	struct iphdr *iph;
- 	struct ethhdr *eth;
- 
- 	udp_len = len + sizeof(*udph);
--	ip_len = eth_len = udp_len + sizeof(*iph);
--	total_len = eth_len + ETH_HLEN + NET_IP_ALIGN;
-+	ip_len = udp_len + sizeof(*iph);
-+	total_len = ip_len + LL_RESERVED_SPACE(np->dev);
- 
--	skb = find_skb(np, total_len, total_len - len);
-+	skb = find_skb(np, total_len + np->dev->needed_tailroom,
-+		       total_len - len);
- 	if (!skb)
- 		return;
- 
- 	skb_copy_to_linear_data(skb, msg, len);
--	skb->len += len;
-+	skb_put(skb, len);
- 
- 	skb_push(skb, sizeof(*udph));
- 	skb_reset_transport_header(skb);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0039-ipv6-Move-ipv6-proc-file-registration-to-end-of-init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0039-ipv6-Move-ipv6-proc-file-registration-to-end-of-init.patch
deleted file mode 100644
index 202fca3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0039-ipv6-Move-ipv6-proc-file-registration-to-end-of-init.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From 0991f9681e1142099a36959648a920e9ee9dda33 Mon Sep 17 00:00:00 2001
-From: Thomas Graf <tgraf at suug.ch>
-Date: Mon, 18 Jun 2012 12:08:33 +0000
-Subject: [PATCH 39/49] ipv6: Move ipv6 proc file registration to end of init
- order
-
-[ Upstream commit d189634ecab947c10f6f832258b103d0bbfe73cc ]
-
-/proc/net/ipv6_route reflects the contents of fib_table_hash. The proc
-handler is installed in ip6_route_net_init() whereas fib_table_hash is
-allocated in fib6_net_init() _after_ the proc handler has been installed.
-
-This opens up a short time frame to access fib_table_hash with its pants
-down.
-
-Move the registration of the proc files to a later point in the init
-order to avoid the race.
-
-Tested :-)
-
-Signed-off-by: Thomas Graf <tgraf at suug.ch>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv6/route.c |   41 +++++++++++++++++++++++++++++++----------
- 1 file changed, 31 insertions(+), 10 deletions(-)
-
-diff --git a/net/ipv6/route.c b/net/ipv6/route.c
-index 059b9d9..2e21751 100644
---- a/net/ipv6/route.c
-+++ b/net/ipv6/route.c
-@@ -2881,10 +2881,6 @@ static int __net_init ip6_route_net_init(struct net *net)
- 	net->ipv6.sysctl.ip6_rt_mtu_expires = 10*60*HZ;
- 	net->ipv6.sysctl.ip6_rt_min_advmss = IPV6_MIN_MTU - 20 - 40;
- 
--#ifdef CONFIG_PROC_FS
--	proc_net_fops_create(net, "ipv6_route", 0, &ipv6_route_proc_fops);
--	proc_net_fops_create(net, "rt6_stats", S_IRUGO, &rt6_stats_seq_fops);
--#endif
- 	net->ipv6.ip6_rt_gc_expire = 30*HZ;
- 
- 	ret = 0;
-@@ -2905,10 +2901,6 @@ out_ip6_dst_ops:
- 
- static void __net_exit ip6_route_net_exit(struct net *net)
- {
--#ifdef CONFIG_PROC_FS
--	proc_net_remove(net, "ipv6_route");
--	proc_net_remove(net, "rt6_stats");
--#endif
- 	kfree(net->ipv6.ip6_null_entry);
- #ifdef CONFIG_IPV6_MULTIPLE_TABLES
- 	kfree(net->ipv6.ip6_prohibit_entry);
-@@ -2917,11 +2909,33 @@ static void __net_exit ip6_route_net_exit(struct net *net)
- 	dst_entries_destroy(&net->ipv6.ip6_dst_ops);
- }
- 
-+static int __net_init ip6_route_net_init_late(struct net *net)
-+{
-+#ifdef CONFIG_PROC_FS
-+	proc_net_fops_create(net, "ipv6_route", 0, &ipv6_route_proc_fops);
-+	proc_net_fops_create(net, "rt6_stats", S_IRUGO, &rt6_stats_seq_fops);
-+#endif
-+	return 0;
-+}
-+
-+static void __net_exit ip6_route_net_exit_late(struct net *net)
-+{
-+#ifdef CONFIG_PROC_FS
-+	proc_net_remove(net, "ipv6_route");
-+	proc_net_remove(net, "rt6_stats");
-+#endif
-+}
-+
- static struct pernet_operations ip6_route_net_ops = {
- 	.init = ip6_route_net_init,
- 	.exit = ip6_route_net_exit,
- };
- 
-+static struct pernet_operations ip6_route_net_late_ops = {
-+	.init = ip6_route_net_init_late,
-+	.exit = ip6_route_net_exit_late,
-+};
-+
- static struct notifier_block ip6_route_dev_notifier = {
- 	.notifier_call = ip6_route_dev_notify,
- 	.priority = 0,
-@@ -2971,19 +2985,25 @@ int __init ip6_route_init(void)
- 	if (ret)
- 		goto xfrm6_init;
- 
-+	ret = register_pernet_subsys(&ip6_route_net_late_ops);
-+	if (ret)
-+		goto fib6_rules_init;
-+
- 	ret = -ENOBUFS;
- 	if (__rtnl_register(PF_INET6, RTM_NEWROUTE, inet6_rtm_newroute, NULL, NULL) ||
- 	    __rtnl_register(PF_INET6, RTM_DELROUTE, inet6_rtm_delroute, NULL, NULL) ||
- 	    __rtnl_register(PF_INET6, RTM_GETROUTE, inet6_rtm_getroute, NULL, NULL))
--		goto fib6_rules_init;
-+		goto out_register_late_subsys;
- 
- 	ret = register_netdevice_notifier(&ip6_route_dev_notifier);
- 	if (ret)
--		goto fib6_rules_init;
-+		goto out_register_late_subsys;
- 
- out:
- 	return ret;
- 
-+out_register_late_subsys:
-+	unregister_pernet_subsys(&ip6_route_net_late_ops);
- fib6_rules_init:
- 	fib6_rules_cleanup();
- xfrm6_init:
-@@ -3002,6 +3022,7 @@ out_kmem_cache:
- void ip6_route_cleanup(void)
- {
- 	unregister_netdevice_notifier(&ip6_route_dev_notifier);
-+	unregister_pernet_subsys(&ip6_route_net_late_ops);
- 	fib6_rules_cleanup();
- 	xfrm6_fini();
- 	fib6_gc_cleanup();
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0040-bridge-Assign-rtnl_link_ops-to-bridge-devices-create.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0040-bridge-Assign-rtnl_link_ops-to-bridge-devices-create.patch
deleted file mode 100644
index bacca53..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0040-bridge-Assign-rtnl_link_ops-to-bridge-devices-create.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From e310ae5ff49ec77b2c991cffe288ac766e5f5203 Mon Sep 17 00:00:00 2001
-From: stephen hemminger <shemminger at vyatta.com>
-Date: Tue, 26 Jun 2012 05:48:45 +0000
-Subject: [PATCH 40/49] bridge: Assign rtnl_link_ops to bridge devices created
- via ioctl (v2)
-
-[ Upstream commit 149ddd83a92b02c658d6c61f3276eb6500d585e8 ]
-
-This ensures that bridges created with brctl(8) or ioctl(2) directly
-also carry IFLA_LINKINFO when dumped over netlink. This also allows
-to create a bridge with ioctl(2) and delete it with RTM_DELLINK.
-
-Signed-off-by: Thomas Graf <tgraf at suug.ch>
-Signed-off-by: Stephen Hemminger <shemminger at vyatta.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/bridge/br_if.c      |    1 +
- net/bridge/br_netlink.c |    2 +-
- net/bridge/br_private.h |    1 +
- 3 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/net/bridge/br_if.c b/net/bridge/br_if.c
-index f603e5b..f3f75ad 100644
---- a/net/bridge/br_if.c
-+++ b/net/bridge/br_if.c
-@@ -240,6 +240,7 @@ int br_add_bridge(struct net *net, const char *name)
- 		return -ENOMEM;
- 
- 	dev_net_set(dev, net);
-+	dev->rtnl_link_ops = &br_link_ops;
- 
- 	res = register_netdev(dev);
- 	if (res)
-diff --git a/net/bridge/br_netlink.c b/net/bridge/br_netlink.c
-index a1daf82..cbf9ccd 100644
---- a/net/bridge/br_netlink.c
-+++ b/net/bridge/br_netlink.c
-@@ -211,7 +211,7 @@ static int br_validate(struct nlattr *tb[], struct nlattr *data[])
- 	return 0;
- }
- 
--static struct rtnl_link_ops br_link_ops __read_mostly = {
-+struct rtnl_link_ops br_link_ops __read_mostly = {
- 	.kind		= "bridge",
- 	.priv_size	= sizeof(struct net_bridge),
- 	.setup		= br_dev_setup,
-diff --git a/net/bridge/br_private.h b/net/bridge/br_private.h
-index 93264df..b9bba8f 100644
---- a/net/bridge/br_private.h
-+++ b/net/bridge/br_private.h
-@@ -536,6 +536,7 @@ extern int (*br_fdb_test_addr_hook)(struct net_device *dev, unsigned char *addr)
- #endif
- 
- /* br_netlink.c */
-+extern struct rtnl_link_ops br_link_ops;
- extern int br_netlink_init(void);
- extern void br_netlink_fini(void);
- extern void br_ifinfo_notify(int event, struct net_bridge_port *port);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0041-Btrfs-run-delayed-directory-updates-during-log-repla.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0041-Btrfs-run-delayed-directory-updates-during-log-repla.patch
deleted file mode 100644
index c6b1663..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0041-Btrfs-run-delayed-directory-updates-during-log-repla.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 478ed8ce8490d599e1bb8e79007b85d6a9e7f1a0 Mon Sep 17 00:00:00 2001
-From: Chris Mason <chris.mason at fusionio.com>
-Date: Mon, 2 Jul 2012 15:29:53 -0400
-Subject: [PATCH 41/49] Btrfs: run delayed directory updates during log replay
-
-commit b6305567e7d31b0bec1b8cb9ec0cadd7f7086f5f upstream.
-
-While we are resolving directory modifications in the
-tree log, we are triggering delayed metadata updates to
-the filesystem btrees.
-
-This commit forces the delayed updates to run so the
-replay code can find any modifications done.  It stops
-us from crashing because the directory deleltion replay
-expects items to be removed immediately from the tree.
-
-Signed-off-by: Chris Mason <chris.mason at fusionio.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/btrfs/tree-log.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
-index 3568374..19b127c 100644
---- a/fs/btrfs/tree-log.c
-+++ b/fs/btrfs/tree-log.c
-@@ -692,6 +692,8 @@ static noinline int drop_one_dir_item(struct btrfs_trans_handle *trans,
- 	kfree(name);
- 
- 	iput(inode);
-+
-+	btrfs_run_delayed_items(trans, root);
- 	return ret;
- }
- 
-@@ -897,6 +899,7 @@ again:
- 				ret = btrfs_unlink_inode(trans, root, dir,
- 							 inode, victim_name,
- 							 victim_name_len);
-+				btrfs_run_delayed_items(trans, root);
- 			}
- 			kfree(victim_name);
- 			ptr = (unsigned long)(victim_ref + 1) + victim_name_len;
-@@ -1477,6 +1480,9 @@ again:
- 			ret = btrfs_unlink_inode(trans, root, dir, inode,
- 						 name, name_len);
- 			BUG_ON(ret);
-+
-+			btrfs_run_delayed_items(trans, root);
-+
- 			kfree(name);
- 			iput(inode);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0042-cifs-when-server-doesn-t-set-CAP_LARGE_READ_X-cap-de.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0042-cifs-when-server-doesn-t-set-CAP_LARGE_READ_X-cap-de.patch
deleted file mode 100644
index 435c9cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0042-cifs-when-server-doesn-t-set-CAP_LARGE_READ_X-cap-de.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 3ef708aec9359ad6b05d8ae43663cf5e73c58e9d Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Mon, 2 Jul 2012 07:24:25 -0400
-Subject: [PATCH 42/49] cifs: when server doesn't set CAP_LARGE_READ_X, cap
- default rsize at MaxBufferSize
-
-commit ec01d738a1691dfc85b96b9f796020267a7be577 upstream.
-
-When the server doesn't advertise CAP_LARGE_READ_X, then MS-CIFS states
-that you must cap the size of the read at the client's MaxBufferSize.
-Unfortunately, testing with many older servers shows that they often
-can't service a read larger than their own MaxBufferSize.
-
-Since we can't assume what the server will do in this situation, we must
-be conservative here for the default. When the server can't do large
-reads, then assume that it can't satisfy any read larger than its
-MaxBufferSize either.
-
-Luckily almost all modern servers can do large reads, so this won't
-affect them. This is really just for older win9x and OS/2 era servers.
-Also, note that this patch just governs the default rsize. The admin can
-always override this if he so chooses.
-
-Reported-by: David H. Durgee <dhdurgee at acm.org>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steven French <sfrench at w500smf.(none)>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/connect.c |    9 +++------
- 1 file changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
-index 9e0675a..b21670c 100644
---- a/fs/cifs/connect.c
-+++ b/fs/cifs/connect.c
-@@ -2975,18 +2975,15 @@ cifs_negotiate_rsize(struct cifs_tcon *tcon, struct smb_vol *pvolume_info)
- 	 * MS-CIFS indicates that servers are only limited by the client's
- 	 * bufsize for reads, testing against win98se shows that it throws
- 	 * INVALID_PARAMETER errors if you try to request too large a read.
-+	 * OS/2 just sends back short reads.
- 	 *
--	 * If the server advertises a MaxBufferSize of less than one page,
--	 * assume that it also can't satisfy reads larger than that either.
--	 *
--	 * FIXME: Is there a better heuristic for this?
-+	 * If the server doesn't advertise CAP_LARGE_READ_X, then assume that
-+	 * it can't handle a read request larger than its MaxBufferSize either.
- 	 */
- 	if (tcon->unix_ext && (unix_cap & CIFS_UNIX_LARGE_READ_CAP))
- 		defsize = CIFS_DEFAULT_IOSIZE;
- 	else if (server->capabilities & CAP_LARGE_READ_X)
- 		defsize = CIFS_DEFAULT_NON_POSIX_RSIZE;
--	else if (server->maxBuf >= PAGE_CACHE_SIZE)
--		defsize = CIFSMaxBufSize;
- 	else
- 		defsize = server->maxBuf - sizeof(READ_RSP);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0043-ocfs2-clear-unaligned-io-flag-when-dio-fails.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0043-ocfs2-clear-unaligned-io-flag-when-dio-fails.patch
deleted file mode 100644
index c07be0d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0043-ocfs2-clear-unaligned-io-flag-when-dio-fails.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 605e639247e5f40be06b013748769bd2cc252e04 Mon Sep 17 00:00:00 2001
-From: Junxiao Bi <junxiao.bi at oracle.com>
-Date: Wed, 27 Jun 2012 17:09:55 +0800
-Subject: [PATCH 43/49] ocfs2: clear unaligned io flag when dio fails
-
-commit 3e5d3c35a68c9a933bdbdd8685bd1a205b57e806 upstream.
-
-The unaligned io flag is set in the kiocb when an unaligned
-dio is issued, it should be cleared even when the dio fails,
-or it may affect the following io which are using the same
-kiocb.
-
-Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
-Signed-off-by: Joel Becker <jlbec at evilplan.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ocfs2/file.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
-index 6e39668..07ee5b4 100644
---- a/fs/ocfs2/file.c
-+++ b/fs/ocfs2/file.c
-@@ -2422,8 +2422,10 @@ out_dio:
- 		unaligned_dio = 0;
- 	}
- 
--	if (unaligned_dio)
-+	if (unaligned_dio) {
-+		ocfs2_iocb_clear_unaligned_aio(iocb);
- 		atomic_dec(&OCFS2_I(inode)->ip_unaligned_aio);
-+	}
- 
- out:
- 	if (rw_level != -1)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch
deleted file mode 100644
index 1084fef..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 21dbeb828448f788ffb3590cf6706c074bb1048f Mon Sep 17 00:00:00 2001
-From: Junxiao Bi <junxiao.bi at oracle.com>
-Date: Wed, 27 Jun 2012 17:09:54 +0800
-Subject: [PATCH 44/49] aio: make kiocb->private NUll in init_sync_kiocb()
-
-commit 2dfd06036ba7ae8e7be2daf5a2fff1dac42390bf upstream.
-
-Ocfs2 uses kiocb.*private as a flag of unsigned long size. In
-commit a11f7e6 ocfs2: serialize unaligned aio, the unaligned
-io flag is involved in it to serialize the unaligned aio. As
-*private is not initialized in init_sync_kiocb() of do_sync_write(),
-this unaligned io flag may be unexpectly set in an aligned dio.
-And this will cause OCFS2_I(inode)->ip_unaligned_aio decreased
-to -1 in ocfs2_dio_end_io(), thus the following unaligned dio
-will hang forever at ocfs2_aiodio_wait() in ocfs2_file_aio_write().
-
-Signed-off-by: Junxiao Bi <junxiao.bi at oracle.com>
-Acked-by: Jeff Moyer <jmoyer at redhat.com>
-Signed-off-by: Joel Becker <jlbec at evilplan.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/aio.h |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/linux/aio.h b/include/linux/aio.h
-index 2314ad8..b1a520e 100644
---- a/include/linux/aio.h
-+++ b/include/linux/aio.h
-@@ -140,6 +140,7 @@ struct kiocb {
- 		(x)->ki_dtor = NULL;			\
- 		(x)->ki_obj.tsk = tsk;			\
- 		(x)->ki_user_data = 0;                  \
-+		(x)->private = NULL;			\
- 	} while (0)
- 
- #define AIO_RING_MAGIC			0xa10a10a1
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0045-mtd-cafe_nand-fix-an-vs-mistake.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0045-mtd-cafe_nand-fix-an-vs-mistake.patch
deleted file mode 100644
index 9003be4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0045-mtd-cafe_nand-fix-an-vs-mistake.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From e48907a3c090265dcbe0965537bbe9b510a1f7ef Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Sat, 9 Jun 2012 19:08:25 +0300
-Subject: [PATCH 45/49] mtd: cafe_nand: fix an & vs | mistake
-
-commit 48f8b641297df49021093763a3271119a84990a2 upstream.
-
-The intent here was clearly to set result to true if the 0x40000000 flag
-was set.  But instead there was a | vs & typo and we always set result
-to true.
-
-Artem: check the spec at
-wiki.laptop.org/images/5/5c/88ALP01_Datasheet_July_2007.pdf
-and this fix looks correct.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mtd/nand/cafe_nand.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/mtd/nand/cafe_nand.c b/drivers/mtd/nand/cafe_nand.c
-index 72d3f23..68ecf48 100644
---- a/drivers/mtd/nand/cafe_nand.c
-+++ b/drivers/mtd/nand/cafe_nand.c
-@@ -102,7 +102,7 @@ static const char *part_probes[] = { "cmdlinepart", "RedBoot", NULL };
- static int cafe_device_ready(struct mtd_info *mtd)
- {
- 	struct cafe_priv *cafe = mtd->priv;
--	int result = !!(cafe_readl(cafe, NAND_STATUS) | 0x40000000);
-+	int result = !!(cafe_readl(cafe, NAND_STATUS) & 0x40000000);
- 	uint32_t irqs = cafe_readl(cafe, NAND_IRQ);
- 
- 	cafe_writel(cafe, irqs, NAND_IRQ);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0046-mm-Hold-a-file-reference-in-madvise_remove.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0046-mm-Hold-a-file-reference-in-madvise_remove.patch
deleted file mode 100644
index 82bb8b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0046-mm-Hold-a-file-reference-in-madvise_remove.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 565460286859b1512972fc637f2c653cf648d622 Mon Sep 17 00:00:00 2001
-From: Andy Lutomirski <luto at amacapital.net>
-Date: Thu, 5 Jul 2012 16:00:11 -0700
-Subject: [PATCH 46/49] mm: Hold a file reference in madvise_remove
-
-commit 9ab4233dd08036fe34a89c7dc6f47a8bf2eb29eb upstream.
-
-Otherwise the code races with munmap (causing a use-after-free
-of the vma) or with close (causing a use-after-free of the struct
-file).
-
-The bug was introduced by commit 90ed52ebe481 ("[PATCH] holepunch: fix
-mmap_sem i_mutex deadlock")
-
-Cc: Hugh Dickins <hugh at veritas.com>
-Cc: Miklos Szeredi <mszeredi at suse.cz>
-Cc: Badari Pulavarty <pbadari at us.ibm.com>
-Cc: Nick Piggin <npiggin at suse.de>
-Signed-off-by: Andy Lutomirski <luto at amacapital.net>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2:
- - Adjust context
- - madvise_remove() calls vmtruncate_range(), not do_fallocate()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/madvise.c |   16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/mm/madvise.c b/mm/madvise.c
-index 74bf193..23d3a6b 100644
---- a/mm/madvise.c
-+++ b/mm/madvise.c
-@@ -13,6 +13,7 @@
- #include <linux/hugetlb.h>
- #include <linux/sched.h>
- #include <linux/ksm.h>
-+#include <linux/file.h>
- 
- /*
-  * Any behaviour which results in changes to the vma->vm_flags needs to
-@@ -197,14 +198,16 @@ static long madvise_remove(struct vm_area_struct *vma,
- 	struct address_space *mapping;
- 	loff_t offset, endoff;
- 	int error;
-+	struct file *f;
- 
- 	*prev = NULL;	/* tell sys_madvise we drop mmap_sem */
- 
- 	if (vma->vm_flags & (VM_LOCKED|VM_NONLINEAR|VM_HUGETLB))
- 		return -EINVAL;
- 
--	if (!vma->vm_file || !vma->vm_file->f_mapping
--		|| !vma->vm_file->f_mapping->host) {
-+	f = vma->vm_file;
-+
-+	if (!f || !f->f_mapping || !f->f_mapping->host) {
- 			return -EINVAL;
- 	}
- 
-@@ -218,9 +221,16 @@ static long madvise_remove(struct vm_area_struct *vma,
- 	endoff = (loff_t)(end - vma->vm_start - 1)
- 			+ ((loff_t)vma->vm_pgoff << PAGE_SHIFT);
- 
--	/* vmtruncate_range needs to take i_mutex */
-+	/*
-+	 * vmtruncate_range may need to take i_mutex.  We need to
-+	 * explicitly grab a reference because the vma (and hence the
-+	 * vma's reference to the file) can go away as soon as we drop
-+	 * mmap_sem.
-+	 */
-+	get_file(f);
- 	up_read(&current->mm->mmap_sem);
- 	error = vmtruncate_range(mapping->host, offset, endoff);
-+	fput(f);
- 	down_read(&current->mm->mmap_sem);
- 	return error;
- }
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0047-tcm_fc-Resolve-suspicious-RCU-usage-warnings.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0047-tcm_fc-Resolve-suspicious-RCU-usage-warnings.patch
deleted file mode 100644
index e0373e0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0047-tcm_fc-Resolve-suspicious-RCU-usage-warnings.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 7b764186beda304507cde2161d84f4e9b16c8ce6 Mon Sep 17 00:00:00 2001
-From: Mark Rustad <mark.d.rustad at intel.com>
-Date: Tue, 26 Jun 2012 15:57:30 -0700
-Subject: [PATCH 47/49] tcm_fc: Resolve suspicious RCU usage warnings
-
-commit 863555be0c81558b1af277addcf68acb8f778860 upstream.
-
-Use rcu_dereference_protected to tell rcu that the ft_lport_lock
-is held during ft_lport_create. This resolved "suspicious RCU usage"
-warnings when debugging options are turned on.
-
-Signed-off-by: Mark Rustad <mark.d.rustad at intel.com>
-Tested-by: Ross Brattain <ross.b.brattain at intel.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/tcm_fc/tfc_sess.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/target/tcm_fc/tfc_sess.c b/drivers/target/tcm_fc/tfc_sess.c
-index 3269213..64ddb63 100644
---- a/drivers/target/tcm_fc/tfc_sess.c
-+++ b/drivers/target/tcm_fc/tfc_sess.c
-@@ -61,7 +61,8 @@ static struct ft_tport *ft_tport_create(struct fc_lport *lport)
- 	struct ft_tport *tport;
- 	int i;
- 
--	tport = rcu_dereference(lport->prov[FC_TYPE_FCP]);
-+	tport = rcu_dereference_protected(lport->prov[FC_TYPE_FCP],
-+					  lockdep_is_held(&ft_lport_lock));
- 	if (tport && tport->tpg)
- 		return tport;
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0048-vfs-make-O_PATH-file-descriptors-usable-for-fchdir.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0048-vfs-make-O_PATH-file-descriptors-usable-for-fchdir.patch
deleted file mode 100644
index eb450c1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0048-vfs-make-O_PATH-file-descriptors-usable-for-fchdir.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 7c0f859e15ad91f6d6921970fc9d48f1f7804bf9 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sat, 7 Jul 2012 10:17:00 -0700
-Subject: [PATCH 48/49] vfs: make O_PATH file descriptors usable for
- 'fchdir()'
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 332a2e1244bd08b9e3ecd378028513396a004a24 upstream.
-
-We already use them for openat() and friends, but fchdir() also wants to
-be able to use O_PATH file descriptors.  This should make it comparable
-to the O_SEARCH of Solaris.  In particular, O_PATH allows you to access
-(not-quite-open) a directory you don't have read persmission to, only
-execute permission.
-
-Noticed during development of multithread support for ksh93.
-
-Reported-by: ольга крыжановская <olga.kryzhanovska at gmail.com>
-Cc: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/open.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/fs/open.c b/fs/open.c
-index 22c41b5..e2b5d51 100644
---- a/fs/open.c
-+++ b/fs/open.c
-@@ -396,10 +396,10 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
- {
- 	struct file *file;
- 	struct inode *inode;
--	int error;
-+	int error, fput_needed;
- 
- 	error = -EBADF;
--	file = fget(fd);
-+	file = fget_raw_light(fd, &fput_needed);
- 	if (!file)
- 		goto out;
- 
-@@ -413,7 +413,7 @@ SYSCALL_DEFINE1(fchdir, unsigned int, fd)
- 	if (!error)
- 		set_fs_pwd(current->fs, &file->f_path);
- out_putf:
--	fput(file);
-+	fput_light(file, fput_needed);
- out:
- 	return error;
- }
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0049-Linux-3.2.23.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0049-Linux-3.2.23.patch
deleted file mode 100644
index 6fa83d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.23/0049-Linux-3.2.23.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 70aac971ed12a5a23e0b10035df743f2ada81151 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Thu, 12 Jul 2012 04:32:21 +0100
-Subject: [PATCH 49/49] Linux 3.2.23
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 9a7d921..40d1e3b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 22
-+SUBLEVEL = 23
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0001-samsung-laptop-make-the-dmi-check-less-strict.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0001-samsung-laptop-make-the-dmi-check-less-strict.patch
deleted file mode 100644
index 613acd7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0001-samsung-laptop-make-the-dmi-check-less-strict.patch
+++ /dev/null
@@ -1,306 +0,0 @@
-From fe36d7279bb09c09b2c07b1b8bfe786a3ab12486 Mon Sep 17 00:00:00 2001
-From: Corentin Chary <corentincj at iksaif.net>
-Date: Sat, 26 Nov 2011 11:00:10 +0100
-Subject: [PATCH 001/109] samsung-laptop: make the dmi check less strict
-
-commit 3be324a94df0c3f032178d04549dbfbf6cccb09a upstream.
-
-This enable the driver for everything that look like
-a laptop and is from vendor "SAMSUNG ELECTRONICS CO., LTD.".
-Note that laptop supported by samsung-q10 seem to have a different
-vendor strict.
-
-Also remove every log output until we know that we have a SABI interface
-(except if the driver is forced to load, or debug is enabled).
-
-Keeping a whitelist of laptop with a model granularity is something that can't
-work without close vendor cooperation (and we don't have that).
-
-Signed-off-by: Corentin Chary <corentincj at iksaif.net>
-Acked-by: Greg Kroah-Hartman <gregkh at suse.de>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-[bwh: Backported to 3.2:
- - Adjust context
- - Drop changes relating to ACPI video]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/samsung-laptop.c |  225 ++-------------------------------
- 1 files changed, 8 insertions(+), 217 deletions(-)
-
-diff --git a/drivers/platform/x86/samsung-laptop.c b/drivers/platform/x86/samsung-laptop.c
-index 09e26bf..af1e296 100644
---- a/drivers/platform/x86/samsung-laptop.c
-+++ b/drivers/platform/x86/samsung-laptop.c
-@@ -540,245 +540,34 @@ static DEVICE_ATTR(performance_level, S_IWUSR | S_IRUGO,
- 		   get_performance_level, set_performance_level);
- 
- 
--static int __init dmi_check_cb(const struct dmi_system_id *id)
--{
--	pr_info("found laptop model '%s'\n",
--		id->ident);
--	return 1;
--}
--
- static struct dmi_system_id __initdata samsung_dmi_table[] = {
- 	{
--		.ident = "N128",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N128"),
--			DMI_MATCH(DMI_BOARD_NAME, "N128"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "N130",
- 		.matches = {
- 			DMI_MATCH(DMI_SYS_VENDOR,
- 					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N130"),
--			DMI_MATCH(DMI_BOARD_NAME, "N130"),
-+			DMI_MATCH(DMI_CHASSIS_TYPE, "8"), /* Portable */
- 		},
--		.callback = dmi_check_cb,
- 	},
- 	{
--		.ident = "N510",
- 		.matches = {
- 			DMI_MATCH(DMI_SYS_VENDOR,
- 					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N510"),
--			DMI_MATCH(DMI_BOARD_NAME, "N510"),
-+			DMI_MATCH(DMI_CHASSIS_TYPE, "9"), /* Laptop */
- 		},
--		.callback = dmi_check_cb,
- 	},
- 	{
--		.ident = "X125",
- 		.matches = {
- 			DMI_MATCH(DMI_SYS_VENDOR,
- 					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "X125"),
--			DMI_MATCH(DMI_BOARD_NAME, "X125"),
-+			DMI_MATCH(DMI_CHASSIS_TYPE, "10"), /* Notebook */
- 		},
--		.callback = dmi_check_cb,
- 	},
- 	{
--		.ident = "X120/X170",
- 		.matches = {
- 			DMI_MATCH(DMI_SYS_VENDOR,
- 					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "X120/X170"),
--			DMI_MATCH(DMI_BOARD_NAME, "X120/X170"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "NC10",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "NC10"),
--			DMI_MATCH(DMI_BOARD_NAME, "NC10"),
--		},
--		.callback = dmi_check_cb,
--	},
--		{
--		.ident = "NP-Q45",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "SQ45S70S"),
--			DMI_MATCH(DMI_BOARD_NAME, "SQ45S70S"),
--		},
--		.callback = dmi_check_cb,
--		},
--	{
--		.ident = "X360",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "X360"),
--			DMI_MATCH(DMI_BOARD_NAME, "X360"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R410 Plus",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "R410P"),
--			DMI_MATCH(DMI_BOARD_NAME, "R460"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R518",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "R518"),
--			DMI_MATCH(DMI_BOARD_NAME, "R518"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R519/R719",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "R519/R719"),
--			DMI_MATCH(DMI_BOARD_NAME, "R519/R719"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "N150/N210/N220",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N150/N210/N220"),
--			DMI_MATCH(DMI_BOARD_NAME, "N150/N210/N220"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "N220",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N220"),
--			DMI_MATCH(DMI_BOARD_NAME, "N220"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "N150/N210/N220/N230",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N150/N210/N220/N230"),
--			DMI_MATCH(DMI_BOARD_NAME, "N150/N210/N220/N230"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "N150P/N210P/N220P",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N150P/N210P/N220P"),
--			DMI_MATCH(DMI_BOARD_NAME, "N150P/N210P/N220P"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R700",
--		.matches = {
--		      DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--		      DMI_MATCH(DMI_PRODUCT_NAME, "SR700"),
--		      DMI_MATCH(DMI_BOARD_NAME, "SR700"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R530/R730",
--		.matches = {
--		      DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--		      DMI_MATCH(DMI_PRODUCT_NAME, "R530/R730"),
--		      DMI_MATCH(DMI_BOARD_NAME, "R530/R730"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "NF110/NF210/NF310",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "NF110/NF210/NF310"),
--			DMI_MATCH(DMI_BOARD_NAME, "NF110/NF210/NF310"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "N145P/N250P/N260P",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "N145P/N250P/N260P"),
--			DMI_MATCH(DMI_BOARD_NAME, "N145P/N250P/N260P"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R70/R71",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR,
--					"SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "R70/R71"),
--			DMI_MATCH(DMI_BOARD_NAME, "R70/R71"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "P460",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "P460"),
--			DMI_MATCH(DMI_BOARD_NAME, "P460"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "R528/R728",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "R528/R728"),
--			DMI_MATCH(DMI_BOARD_NAME, "R528/R728"),
--		},
--		.callback = dmi_check_cb,
--	},
--	{
--		.ident = "NC210/NC110",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "NC210/NC110"),
--			DMI_MATCH(DMI_BOARD_NAME, "NC210/NC110"),
--		},
--		.callback = dmi_check_cb,
--	},
--		{
--		.ident = "X520",
--		.matches = {
--			DMI_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
--			DMI_MATCH(DMI_PRODUCT_NAME, "X520"),
--			DMI_MATCH(DMI_BOARD_NAME, "X520"),
-+			DMI_MATCH(DMI_CHASSIS_TYPE, "14"), /* Sub-Notebook */
- 		},
--		.callback = dmi_check_cb,
- 	},
- 	{ },
- };
-@@ -819,7 +608,8 @@ static int __init samsung_init(void)
- 
- 	f0000_segment = ioremap_nocache(0xf0000, 0xffff);
- 	if (!f0000_segment) {
--		pr_err("Can't map the segment at 0xf0000\n");
-+		if (debug || force)
-+			pr_err("Can't map the segment at 0xf0000\n");
- 		return -EINVAL;
- 	}
- 
-@@ -832,7 +622,8 @@ static int __init samsung_init(void)
- 	}
- 
- 	if (loca == 0xffff) {
--		pr_err("This computer does not support SABI\n");
-+		if (debug || force)
-+			pr_err("This computer does not support SABI\n");
- 		goto error_no_signature;
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0002-raid5-delayed-stripe-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0002-raid5-delayed-stripe-fix.patch
deleted file mode 100644
index bb9ebfa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0002-raid5-delayed-stripe-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From c3041d04e675a5d38a1d57fee3c59d4f073f512e Mon Sep 17 00:00:00 2001
-From: Shaohua Li <shli at kernel.org>
-Date: Tue, 3 Jul 2012 15:57:19 +1000
-Subject: [PATCH 002/109] raid5: delayed stripe fix
-
-commit fab363b5ff502d1b39ddcfec04271f5858d9f26e upstream.
-
-There isn't locking setting STRIPE_DELAYED and STRIPE_PREREAD_ACTIVE bits, but
-the two bits have relationship. A delayed stripe can be moved to hold list only
-when preread active stripe count is below IO_THRESHOLD. If a stripe has both
-the bits set, such stripe will be in delayed list and preread count not 0,
-which will make such stripe never leave delayed list.
-
-Signed-off-by: Shaohua Li <shli at fusionio.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid5.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/md/raid5.c b/drivers/md/raid5.c
-index 6ba4954..26ef63a 100644
---- a/drivers/md/raid5.c
-+++ b/drivers/md/raid5.c
-@@ -196,12 +196,14 @@ static void __release_stripe(struct r5conf *conf, struct stripe_head *sh)
- 		BUG_ON(!list_empty(&sh->lru));
- 		BUG_ON(atomic_read(&conf->active_stripes)==0);
- 		if (test_bit(STRIPE_HANDLE, &sh->state)) {
--			if (test_bit(STRIPE_DELAYED, &sh->state))
-+			if (test_bit(STRIPE_DELAYED, &sh->state) &&
-+			    !test_bit(STRIPE_PREREAD_ACTIVE, &sh->state))
- 				list_add_tail(&sh->lru, &conf->delayed_list);
- 			else if (test_bit(STRIPE_BIT_DELAY, &sh->state) &&
- 				   sh->bm_seq - conf->seq_write > 0)
- 				list_add_tail(&sh->lru, &conf->bitmap_list);
- 			else {
-+				clear_bit(STRIPE_DELAYED, &sh->state);
- 				clear_bit(STRIPE_BIT_DELAY, &sh->state);
- 				list_add_tail(&sh->lru, &conf->handle_list);
- 			}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0003-tcp-drop-SYN-FIN-messages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0003-tcp-drop-SYN-FIN-messages.patch
deleted file mode 100644
index 6eb3824..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0003-tcp-drop-SYN-FIN-messages.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From ebf148a0ca2e0c9fb824a069c0fd5311bb6ae297 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Fri, 2 Dec 2011 23:41:42 +0000
-Subject: [PATCH 003/109] tcp: drop SYN+FIN messages
-
-commit fdf5af0daf8019cec2396cdef8fb042d80fe71fa upstream.
-
-Denys Fedoryshchenko reported that SYN+FIN attacks were bringing his
-linux machines to their limits.
-
-Dont call conn_request() if the TCP flags includes SYN flag
-
-Reported-by: Denys Fedoryshchenko <denys at visp.net.lb>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp_input.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 9726927..32e6ca2 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -5836,6 +5836,8 @@ int tcp_rcv_state_process(struct sock *sk, struct sk_buff *skb,
- 			goto discard;
- 
- 		if (th->syn) {
-+			if (th->fin)
-+				goto discard;
- 			if (icsk->icsk_af_ops->conn_request(sk, skb) < 0)
- 				return 1;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0004-tg3-Apply-short-DMA-frag-workaround-to-5906.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0004-tg3-Apply-short-DMA-frag-workaround-to-5906.patch
deleted file mode 100644
index 15f5906..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0004-tg3-Apply-short-DMA-frag-workaround-to-5906.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 389c56a2dfc90eecb97841668a8d61fc3424f2c8 Mon Sep 17 00:00:00 2001
-From: Matt Carlson <mcarlson at broadcom.com>
-Date: Thu, 7 Jun 2012 12:56:54 +0000
-Subject: [PATCH 004/109] tg3: Apply short DMA frag workaround to 5906
-
-commit b7abee6ef888117f92db370620ebf116a38e3f4d upstream.
-
-5906 devices also need the short DMA fragment workaround.  This patch
-makes the necessary change.
-
-Signed-off-by: Matt Carlson <mcarlson at broadcom.com>
-Tested-by: Christian Kujau <lists at nerdbynature.de>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/broadcom/tg3.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/broadcom/tg3.c b/drivers/net/ethernet/broadcom/tg3.c
-index 2dcac28..6b258d9 100644
---- a/drivers/net/ethernet/broadcom/tg3.c
-+++ b/drivers/net/ethernet/broadcom/tg3.c
-@@ -14046,7 +14046,8 @@ static int __devinit tg3_get_invariants(struct tg3 *tp)
- 		}
- 	}
- 
--	if (tg3_flag(tp, 5755_PLUS))
-+	if (tg3_flag(tp, 5755_PLUS) ||
-+	    GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5906)
- 		tg3_flag_set(tp, SHORT_DMA_BUG);
- 
- 	if (GET_ASIC_REV(tp->pci_chip_rev_id) == ASIC_REV_5719)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch
deleted file mode 100644
index 5a01a08..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From c8ad2074ce769ad8b16677e0a9bee9232be03acc Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Wed, 16 May 2012 11:06:21 +0200
-Subject: [PATCH 005/109] rtl8187: ->brightness_set can not sleep
-
-commit 0fde0a8cfd0ede7f310d6a681c8e5a7cb3e32406 upstream.
-
-Fix:
-
-BUG: sleeping function called from invalid context at kernel/workqueue.c:2547
-in_atomic(): 1, irqs_disabled(): 0, pid: 629, name: wpa_supplicant
-2 locks held by wpa_supplicant/629:
- #0:  (rtnl_mutex){+.+.+.}, at: [<c08b2b84>] rtnl_lock+0x14/0x20
- #1:  (&trigger->leddev_list_lock){.+.?..}, at: [<c0867f41>] led_trigger_event+0x21/0x80
-Pid: 629, comm: wpa_supplicant Not tainted 3.3.0-0.rc3.git5.1.fc17.i686
-Call Trace:
- [<c046a9f6>] __might_sleep+0x126/0x1d0
- [<c0457d6c>] wait_on_work+0x2c/0x1d0
- [<c045a09a>] __cancel_work_timer+0x6a/0x120
- [<c045a160>] cancel_delayed_work_sync+0x10/0x20
- [<f7dd3c22>] rtl8187_led_brightness_set+0x82/0xf0 [rtl8187]
- [<c0867f7c>] led_trigger_event+0x5c/0x80
- [<f7ff5e6d>] ieee80211_led_radio+0x1d/0x40 [mac80211]
- [<f7ff3583>] ieee80211_stop_device+0x13/0x230 [mac80211]
-
-Removing _sync is ok, because if led_on work is currently running
-it will be finished before led_off work start to perform, since
-they are always queued on the same mac80211 local->workqueue.
-
-Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=795176
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Acked-by: Larry Finger <Larry.Finger at lwfinger.net>
-Acked-by: Hin-Tak Leung <htl10 at users.sourceforge.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rtl818x/rtl8187/leds.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/rtl818x/rtl8187/leds.c b/drivers/net/wireless/rtl818x/rtl8187/leds.c
-index 2e0de2f..c2d5b49 100644
---- a/drivers/net/wireless/rtl818x/rtl8187/leds.c
-+++ b/drivers/net/wireless/rtl818x/rtl8187/leds.c
-@@ -117,7 +117,7 @@ static void rtl8187_led_brightness_set(struct led_classdev *led_dev,
- 			radio_on = true;
- 		} else if (radio_on) {
- 			radio_on = false;
--			cancel_delayed_work_sync(&priv->led_on);
-+			cancel_delayed_work(&priv->led_on);
- 			ieee80211_queue_delayed_work(hw, &priv->led_off, 0);
- 		}
- 	} else if (radio_on) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0006-net-wireless-ipw2x00-add-supported-cipher-suites-to-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0006-net-wireless-ipw2x00-add-supported-cipher-suites-to-.patch
deleted file mode 100644
index 68fca84..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0006-net-wireless-ipw2x00-add-supported-cipher-suites-to-.patch
+++ /dev/null
@@ -1,102 +0,0 @@
-From 54490f32c07630f7c6bd6429bf73d7507b06e3db Mon Sep 17 00:00:00 2001
-From: Stanislav Yakovlev <stas.yakovlev at gmail.com>
-Date: Tue, 10 Apr 2012 21:44:47 -0400
-Subject: [PATCH 006/109] net/wireless: ipw2x00: add supported cipher suites
- to wiphy initialization
-
-commit a141e6a0097118bb35024485f1faffc0d9042f5c upstream.
-
-Driver doesn't report its supported cipher suites through cfg80211
-interface. It still uses wext interface and probably will not work
-through nl80211, but will at least correctly advertise supported
-features.
-
-Bug was reported by Omar Siam.
-https://bugzilla.kernel.org/show_bug.cgi?id=43049
-
-Signed-off-by: Stanislav Yakovlev <stas.yakovlev at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ipw2x00/ipw.h     |   23 +++++++++++++++++++++++
- drivers/net/wireless/ipw2x00/ipw2100.c |    4 ++++
- drivers/net/wireless/ipw2x00/ipw2200.c |    4 ++++
- 3 files changed, 31 insertions(+), 0 deletions(-)
- create mode 100644 drivers/net/wireless/ipw2x00/ipw.h
-
-diff --git a/drivers/net/wireless/ipw2x00/ipw.h b/drivers/net/wireless/ipw2x00/ipw.h
-new file mode 100644
-index 0000000..4007bf5
---- /dev/null
-+++ b/drivers/net/wireless/ipw2x00/ipw.h
-@@ -0,0 +1,23 @@
-+/*
-+ * Intel Pro/Wireless 2100, 2200BG, 2915ABG network connection driver
-+ *
-+ * Copyright 2012 Stanislav Yakovlev <stas.yakovlev at gmail.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ */
-+
-+#ifndef __IPW_H__
-+#define __IPW_H__
-+
-+#include <linux/ieee80211.h>
-+
-+static const u32 ipw_cipher_suites[] = {
-+	WLAN_CIPHER_SUITE_WEP40,
-+	WLAN_CIPHER_SUITE_WEP104,
-+	WLAN_CIPHER_SUITE_TKIP,
-+	WLAN_CIPHER_SUITE_CCMP,
-+};
-+
-+#endif
-diff --git a/drivers/net/wireless/ipw2x00/ipw2100.c b/drivers/net/wireless/ipw2x00/ipw2100.c
-index 127e9c6..10862d4 100644
---- a/drivers/net/wireless/ipw2x00/ipw2100.c
-+++ b/drivers/net/wireless/ipw2x00/ipw2100.c
-@@ -166,6 +166,7 @@ that only one external action is invoked at a time.
- #include <net/lib80211.h>
- 
- #include "ipw2100.h"
-+#include "ipw.h"
- 
- #define IPW2100_VERSION "git-1.2.2"
- 
-@@ -1955,6 +1956,9 @@ static int ipw2100_wdev_init(struct net_device *dev)
- 		wdev->wiphy->bands[IEEE80211_BAND_2GHZ] = bg_band;
- 	}
- 
-+	wdev->wiphy->cipher_suites = ipw_cipher_suites;
-+	wdev->wiphy->n_cipher_suites = ARRAY_SIZE(ipw_cipher_suites);
-+
- 	set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev);
- 	if (wiphy_register(wdev->wiphy)) {
- 		ipw2100_down(priv);
-diff --git a/drivers/net/wireless/ipw2x00/ipw2200.c b/drivers/net/wireless/ipw2x00/ipw2200.c
-index 827889b..56bd370 100644
---- a/drivers/net/wireless/ipw2x00/ipw2200.c
-+++ b/drivers/net/wireless/ipw2x00/ipw2200.c
-@@ -34,6 +34,7 @@
- #include <linux/slab.h>
- #include <net/cfg80211-wext.h>
- #include "ipw2200.h"
-+#include "ipw.h"
- 
- 
- #ifndef KBUILD_EXTMOD
-@@ -11535,6 +11536,9 @@ static int ipw_wdev_init(struct net_device *dev)
- 		wdev->wiphy->bands[IEEE80211_BAND_5GHZ] = a_band;
- 	}
- 
-+	wdev->wiphy->cipher_suites = ipw_cipher_suites;
-+	wdev->wiphy->n_cipher_suites = ARRAY_SIZE(ipw_cipher_suites);
-+
- 	set_wiphy_dev(wdev->wiphy, &priv->pci_dev->dev);
- 
- 	/* With that information in place, we can now register the wiphy... */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0007-drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0007-drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch
deleted file mode 100644
index ac8f0c7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0007-drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From ae8e28c4c0aaba535e88908a7a2c560bb55061f9 Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Tue, 14 Feb 2012 11:44:48 -0200
-Subject: [PATCH 007/109] drm/i915: do not enable RC6p on Sandy Bridge
-
-commit 1c8ecf80fdee4e7b23a9e7da7ff9bd59ba2dcf96 upstream.
-
-With base on latest findings, RC6p seems to be respondible for RC6-related
-issues on Sandy Bridge platform. To work-around those issues, the previous
-solution was to completely disable RC6 on Sandy Bridge for the past few
-releases, even if plain RC6 was not giving any issues.
-
-What this patch does is preventing RC6p from being enabled on Sandy Bridge
-even if users enable RC6 via a kernel parameter. So it won't change the
-defaults in any way, but will ensure that if users do enable RC6 manually
-it won't break their machines by enabling this extra state.
-
-Proper fix for this (enabling specific RC6 states according to the GPU
-generation) were proposed for the -next kernel, but we are too late in the
-release process now to pick such changes.
-
-Acked-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index 6aa7716..c63ca5f 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8043,8 +8043,8 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
- 	I915_WRITE(GEN6_RC6pp_THRESHOLD, 64000); /* unused */
- 
- 	if (intel_enable_rc6(dev_priv->dev))
--		rc6_mask = GEN6_RC_CTL_RC6p_ENABLE |
--			GEN6_RC_CTL_RC6_ENABLE;
-+		rc6_mask = GEN6_RC_CTL_RC6_ENABLE |
-+			(IS_GEN7(dev_priv->dev)) ? GEN6_RC_CTL_RC6p_ENABLE : 0;
- 
- 	I915_WRITE(GEN6_RC_CONTROL,
- 		   rc6_mask |
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0008-drm-i915-fix-operator-precedence-when-enabling-RC6p.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0008-drm-i915-fix-operator-precedence-when-enabling-RC6p.patch
deleted file mode 100644
index 18b111f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0008-drm-i915-fix-operator-precedence-when-enabling-RC6p.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 2c5df93ac56c5ec76f87a0daf418966abb25b03b Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Thu, 23 Feb 2012 23:57:06 -0200
-Subject: [PATCH 008/109] drm/i915: fix operator precedence when enabling RC6p
-
-commit c0e2ee1bc0cf82eec89e26b7afe7e4db0561b7d9 upstream.
-
-As noticed by Torsten Kaiser, the operator precedence can play tricks with
-us here.
-
-CC: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_display.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_display.c b/drivers/gpu/drm/i915/intel_display.c
-index c63ca5f..cc75c4b 100644
---- a/drivers/gpu/drm/i915/intel_display.c
-+++ b/drivers/gpu/drm/i915/intel_display.c
-@@ -8044,7 +8044,7 @@ void gen6_enable_rps(struct drm_i915_private *dev_priv)
- 
- 	if (intel_enable_rc6(dev_priv->dev))
- 		rc6_mask = GEN6_RC_CTL_RC6_ENABLE |
--			(IS_GEN7(dev_priv->dev)) ? GEN6_RC_CTL_RC6p_ENABLE : 0;
-+			((IS_GEN7(dev_priv->dev)) ? GEN6_RC_CTL_RC6p_ENABLE : 0);
- 
- 	I915_WRITE(GEN6_RC_CONTROL,
- 		   rc6_mask |
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0009-kbuild-do-not-check-for-ancient-modutils-tools.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0009-kbuild-do-not-check-for-ancient-modutils-tools.patch
deleted file mode 100644
index 281b4e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0009-kbuild-do-not-check-for-ancient-modutils-tools.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6ad602fb1ad21f96e203b4525aa56c7e0cc6ac4f Mon Sep 17 00:00:00 2001
-From: Lucas De Marchi <lucas.demarchi at profusion.mobi>
-Date: Tue, 17 Jan 2012 14:50:51 -0200
-Subject: [PATCH 009/109] kbuild: do not check for ancient modutils tools
-
-commit 620c231c7a7f48745094727bb612f6321cfc8844 upstream.
-
-scripts/depmod.sh checks for the output of '-V' expecting that it has
-module-init-tools in it. It's a hack to prevent users from using
-modutils instead of module-init-tools, that only works with 2.4.x
-kernels. This however prints an annoying warning for kmod tool, that is
-currently replacing module-init-tools.
-
-Rather than putting another check for kmod's version, just remove it
-since users of 2.4.x kernel are unlikely to upgrade to 3.x, and if they
-do, let depmod fail in that case because they should know what they are
-doing.
-
-Signed-off-by: Lucas De Marchi <lucas.demarchi at profusion.mobi>
-Acked-by: WANG Cong <amwang at redhat.com>
-Acked-By: Kay Sievers <kay.sievers at vrfy.org>
-Signed-off-by: Michal Marek <mmarek at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- scripts/depmod.sh |    6 ------
- 1 files changed, 0 insertions(+), 6 deletions(-)
-
-diff --git a/scripts/depmod.sh b/scripts/depmod.sh
-index a272356..2ae4817 100755
---- a/scripts/depmod.sh
-+++ b/scripts/depmod.sh
-@@ -9,12 +9,6 @@ fi
- DEPMOD=$1
- KERNELRELEASE=$2
- 
--if ! "$DEPMOD" -V 2>/dev/null | grep -q module-init-tools; then
--	echo "Warning: you may need to install module-init-tools" >&2
--	echo "See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt" >&2
--	sleep 1
--fi
--
- if ! test -r System.map -a -x "$DEPMOD"; then
- 	exit 0
- fi
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0010-brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0010-brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch
deleted file mode 100644
index a22e50d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0010-brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From bc3f81b80966fcd6e91b61c76408eed675a1b364 Mon Sep 17 00:00:00 2001
-From: Eldad Zack <eldad at fogrefinery.com>
-Date: Sun, 22 Apr 2012 00:48:04 +0200
-Subject: [PATCH 010/109] brcmsmac: "INTERMEDIATE but not AMPDU" only when
- tracing
-
-commit 6ead629b27269c553c9092c47cd8f5ab0309ee3b upstream.
-
-I keep getting the following messages on the log buffer:
-[ 2167.097507] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-[ 2281.331305] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-[ 2281.332539] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-[ 2329.876605] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-[ 2329.877354] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-[ 2462.280756] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-[ 2615.651689] ieee80211 phy0: brcms_c_dotxstatus: INTERMEDIATE but not AMPDU
-
-From the code comment I understand that this something that can -
-and does, quite frequently - happen.
-
-Signed-off-by: Eldad Zack <eldad at fogrefinery.com>
-Acked-by: Franky Lin<frankyl at broadcom.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/brcm80211/brcmsmac/main.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-index 833cbef..8a40ff9 100644
---- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -900,8 +900,7 @@ brcms_c_dotxstatus(struct brcms_c_info *wlc, struct tx_status *txs)
- 	 */
- 	if (!(txs->status & TX_STATUS_AMPDU)
- 	    && (txs->status & TX_STATUS_INTERMEDIATE)) {
--		wiphy_err(wlc->wiphy, "%s: INTERMEDIATE but not AMPDU\n",
--			  __func__);
-+		BCMMSG(wlc->wiphy, "INTERMEDIATE but not AMPDU\n");
- 		return false;
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0011-NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0011-NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch
deleted file mode 100644
index 44b7c81..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0011-NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 9c6259f9486461da338a097ae1655d55b7bead3a Mon Sep 17 00:00:00 2001
-From: William Dauchy <wdauchy at gmail.com>
-Date: Wed, 14 Mar 2012 12:32:04 +0100
-Subject: [PATCH 011/109] NFSv4: Rate limit the state manager for lock reclaim
- warning messages
-
-commit 96dcadc2fdd111dca90d559f189a30c65394451a upstream.
-
-Adding rate limit on `Lock reclaim failed` messages since it could fill
-up system logs
-Signed-off-by: William Dauchy <wdauchy at gmail.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-[bwh: Backported to 3.2: add the 'NFS:' prefix at the same time]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/nfs4state.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index 66020ac..07354b7 100644
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -1186,8 +1186,9 @@ restart:
- 				spin_lock(&state->state_lock);
- 				list_for_each_entry(lock, &state->lock_states, ls_locks) {
- 					if (!(lock->ls_flags & NFS_LOCK_INITIALIZED))
--						printk("%s: Lock reclaim failed!\n",
--							__func__);
-+						pr_warn_ratelimited("NFS: "
-+							"%s: Lock reclaim "
-+							"failed!\n", __func__);
- 				}
- 				spin_unlock(&state->state_lock);
- 				nfs4_put_open_state(state);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0012-ext4-Report-max_batch_time-option-correctly.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0012-ext4-Report-max_batch_time-option-correctly.patch
deleted file mode 100644
index 5bd27b4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0012-ext4-Report-max_batch_time-option-correctly.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 877ee75ef7f45fd1022c37f6a8a957e9d1b098b7 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 4 Jan 2012 21:22:51 -0500
-Subject: [PATCH 012/109] ext4: Report max_batch_time option correctly
-
-commit 1d526fc91bea04ee35b7599bf8b82f86c0aaf46c upstream.
-
-Currently the value reported for max_batch_time is really the
-value of min_batch_time.
-
-Reported-by: Russell Coker <russell at coker.com.au>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/super.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index ab7aa3f..a93486e 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -1097,7 +1097,7 @@ static int ext4_show_options(struct seq_file *seq, struct vfsmount *vfs)
- 	}
- 	if (sbi->s_max_batch_time != EXT4_DEF_MAX_BATCH_TIME) {
- 		seq_printf(seq, ",max_batch_time=%u",
--			   (unsigned) sbi->s_min_batch_time);
-+			   (unsigned) sbi->s_max_batch_time);
- 	}
- 
- 	/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0013-hugepages-fix-use-after-free-bug-in-quota-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0013-hugepages-fix-use-after-free-bug-in-quota-handling.patch
deleted file mode 100644
index bdfa386..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0013-hugepages-fix-use-after-free-bug-in-quota-handling.patch
+++ /dev/null
@@ -1,464 +0,0 @@
-From 5babdc7487f6c78c06d8e085efe841d91a77ff48 Mon Sep 17 00:00:00 2001
-From: David Gibson <david at gibson.dropbear.id.au>
-Date: Wed, 21 Mar 2012 16:34:12 -0700
-Subject: [PATCH 013/109] hugepages: fix use after free bug in "quota"
- handling
-
-commit 90481622d75715bfcb68501280a917dbfe516029 upstream.
-
-hugetlbfs_{get,put}_quota() are badly named.  They don't interact with the
-general quota handling code, and they don't much resemble its behaviour.
-Rather than being about maintaining limits on on-disk block usage by
-particular users, they are instead about maintaining limits on in-memory
-page usage (including anonymous MAP_PRIVATE copied-on-write pages)
-associated with a particular hugetlbfs filesystem instance.
-
-Worse, they work by having callbacks to the hugetlbfs filesystem code from
-the low-level page handling code, in particular from free_huge_page().
-This is a layering violation of itself, but more importantly, if the
-kernel does a get_user_pages() on hugepages (which can happen from KVM
-amongst others), then the free_huge_page() can be delayed until after the
-associated inode has already been freed.  If an unmount occurs at the
-wrong time, even the hugetlbfs superblock where the "quota" limits are
-stored may have been freed.
-
-Andrew Barry proposed a patch to fix this by having hugepages, instead of
-storing a pointer to their address_space and reaching the superblock from
-there, had the hugepages store pointers directly to the superblock,
-bumping the reference count as appropriate to avoid it being freed.
-Andrew Morton rejected that version, however, on the grounds that it made
-the existing layering violation worse.
-
-This is a reworked version of Andrew's patch, which removes the extra, and
-some of the existing, layering violation.  It works by introducing the
-concept of a hugepage "subpool" at the lower hugepage mm layer - that is a
-finite logical pool of hugepages to allocate from.  hugetlbfs now creates
-a subpool for each filesystem instance with a page limit set, and a
-pointer to the subpool gets added to each allocated hugepage, instead of
-the address_space pointer used now.  The subpool has its own lifetime and
-is only freed once all pages in it _and_ all other references to it (i.e.
-superblocks) are gone.
-
-subpools are optional - a NULL subpool pointer is taken by the code to
-mean that no subpool limits are in effect.
-
-Previous discussion of this bug found in:  "Fix refcounting in hugetlbfs
-quota handling.". See:  https://lkml.org/lkml/2011/8/11/28 or
-http://marc.info/?l=linux-mm&m=126928970510627&w=1
-
-v2: Fixed a bug spotted by Hillf Danton, and removed the extra parameter to
-alloc_huge_page() - since it already takes the vma, it is not necessary.
-
-Signed-off-by: Andrew Barry <abarry at cray.com>
-Signed-off-by: David Gibson <david at gibson.dropbear.id.au>
-Cc: Hugh Dickins <hughd at google.com>
-Cc: Mel Gorman <mgorman at suse.de>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Hillf Danton <dhillf at gmail.com>
-Cc: Paul Mackerras <paulus at samba.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2: adjust context to apply after commit
- c50ac050811d6485616a193eb0f37bfbd191cc89 'hugetlb: fix resv_map leak in
- error path', backported in 3.2.20]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/hugetlbfs/inode.c    |   54 +++++++-----------
- include/linux/hugetlb.h |   14 ++++--
- mm/hugetlb.c            |  135 +++++++++++++++++++++++++++++++++++++---------
- 3 files changed, 139 insertions(+), 64 deletions(-)
-
-diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index 2d0ca24..ebc2f4d 100644
---- a/fs/hugetlbfs/inode.c
-+++ b/fs/hugetlbfs/inode.c
-@@ -592,9 +592,15 @@ static int hugetlbfs_statfs(struct dentry *dentry, struct kstatfs *buf)
- 		spin_lock(&sbinfo->stat_lock);
- 		/* If no limits set, just report 0 for max/free/used
- 		 * blocks, like simple_statfs() */
--		if (sbinfo->max_blocks >= 0) {
--			buf->f_blocks = sbinfo->max_blocks;
--			buf->f_bavail = buf->f_bfree = sbinfo->free_blocks;
-+		if (sbinfo->spool) {
-+			long free_pages;
-+
-+			spin_lock(&sbinfo->spool->lock);
-+			buf->f_blocks = sbinfo->spool->max_hpages;
-+			free_pages = sbinfo->spool->max_hpages
-+				- sbinfo->spool->used_hpages;
-+			buf->f_bavail = buf->f_bfree = free_pages;
-+			spin_unlock(&sbinfo->spool->lock);
- 			buf->f_files = sbinfo->max_inodes;
- 			buf->f_ffree = sbinfo->free_inodes;
- 		}
-@@ -610,6 +616,10 @@ static void hugetlbfs_put_super(struct super_block *sb)
- 
- 	if (sbi) {
- 		sb->s_fs_info = NULL;
-+
-+		if (sbi->spool)
-+			hugepage_put_subpool(sbi->spool);
-+
- 		kfree(sbi);
- 	}
- }
-@@ -841,10 +851,14 @@ hugetlbfs_fill_super(struct super_block *sb, void *data, int silent)
- 	sb->s_fs_info = sbinfo;
- 	sbinfo->hstate = config.hstate;
- 	spin_lock_init(&sbinfo->stat_lock);
--	sbinfo->max_blocks = config.nr_blocks;
--	sbinfo->free_blocks = config.nr_blocks;
- 	sbinfo->max_inodes = config.nr_inodes;
- 	sbinfo->free_inodes = config.nr_inodes;
-+	sbinfo->spool = NULL;
-+	if (config.nr_blocks != -1) {
-+		sbinfo->spool = hugepage_new_subpool(config.nr_blocks);
-+		if (!sbinfo->spool)
-+			goto out_free;
-+	}
- 	sb->s_maxbytes = MAX_LFS_FILESIZE;
- 	sb->s_blocksize = huge_page_size(config.hstate);
- 	sb->s_blocksize_bits = huge_page_shift(config.hstate);
-@@ -864,38 +878,12 @@ hugetlbfs_fill_super(struct super_block *sb, void *data, int silent)
- 	sb->s_root = root;
- 	return 0;
- out_free:
-+	if (sbinfo->spool)
-+		kfree(sbinfo->spool);
- 	kfree(sbinfo);
- 	return -ENOMEM;
- }
- 
--int hugetlb_get_quota(struct address_space *mapping, long delta)
--{
--	int ret = 0;
--	struct hugetlbfs_sb_info *sbinfo = HUGETLBFS_SB(mapping->host->i_sb);
--
--	if (sbinfo->free_blocks > -1) {
--		spin_lock(&sbinfo->stat_lock);
--		if (sbinfo->free_blocks - delta >= 0)
--			sbinfo->free_blocks -= delta;
--		else
--			ret = -ENOMEM;
--		spin_unlock(&sbinfo->stat_lock);
--	}
--
--	return ret;
--}
--
--void hugetlb_put_quota(struct address_space *mapping, long delta)
--{
--	struct hugetlbfs_sb_info *sbinfo = HUGETLBFS_SB(mapping->host->i_sb);
--
--	if (sbinfo->free_blocks > -1) {
--		spin_lock(&sbinfo->stat_lock);
--		sbinfo->free_blocks += delta;
--		spin_unlock(&sbinfo->stat_lock);
--	}
--}
--
- static struct dentry *hugetlbfs_mount(struct file_system_type *fs_type,
- 	int flags, const char *dev_name, void *data)
- {
-diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
-index d9d6c86..c5ed2f1 100644
---- a/include/linux/hugetlb.h
-+++ b/include/linux/hugetlb.h
-@@ -14,6 +14,15 @@ struct user_struct;
- #include <linux/shm.h>
- #include <asm/tlbflush.h>
- 
-+struct hugepage_subpool {
-+	spinlock_t lock;
-+	long count;
-+	long max_hpages, used_hpages;
-+};
-+
-+struct hugepage_subpool *hugepage_new_subpool(long nr_blocks);
-+void hugepage_put_subpool(struct hugepage_subpool *spool);
-+
- int PageHuge(struct page *page);
- 
- void reset_vma_resv_huge_pages(struct vm_area_struct *vma);
-@@ -138,12 +147,11 @@ struct hugetlbfs_config {
- };
- 
- struct hugetlbfs_sb_info {
--	long	max_blocks;   /* blocks allowed */
--	long	free_blocks;  /* blocks free */
- 	long	max_inodes;   /* inodes allowed */
- 	long	free_inodes;  /* inodes free */
- 	spinlock_t	stat_lock;
- 	struct hstate *hstate;
-+	struct hugepage_subpool *spool;
- };
- 
- 
-@@ -166,8 +174,6 @@ extern const struct file_operations hugetlbfs_file_operations;
- extern const struct vm_operations_struct hugetlb_vm_ops;
- struct file *hugetlb_file_setup(const char *name, size_t size, vm_flags_t acct,
- 				struct user_struct **user, int creat_flags);
--int hugetlb_get_quota(struct address_space *mapping, long delta);
--void hugetlb_put_quota(struct address_space *mapping, long delta);
- 
- static inline int is_file_hugepages(struct file *file)
- {
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index 5f5c545..7c535b0 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -53,6 +53,84 @@ static unsigned long __initdata default_hstate_size;
-  */
- static DEFINE_SPINLOCK(hugetlb_lock);
- 
-+static inline void unlock_or_release_subpool(struct hugepage_subpool *spool)
-+{
-+	bool free = (spool->count == 0) && (spool->used_hpages == 0);
-+
-+	spin_unlock(&spool->lock);
-+
-+	/* If no pages are used, and no other handles to the subpool
-+	 * remain, free the subpool the subpool remain */
-+	if (free)
-+		kfree(spool);
-+}
-+
-+struct hugepage_subpool *hugepage_new_subpool(long nr_blocks)
-+{
-+	struct hugepage_subpool *spool;
-+
-+	spool = kmalloc(sizeof(*spool), GFP_KERNEL);
-+	if (!spool)
-+		return NULL;
-+
-+	spin_lock_init(&spool->lock);
-+	spool->count = 1;
-+	spool->max_hpages = nr_blocks;
-+	spool->used_hpages = 0;
-+
-+	return spool;
-+}
-+
-+void hugepage_put_subpool(struct hugepage_subpool *spool)
-+{
-+	spin_lock(&spool->lock);
-+	BUG_ON(!spool->count);
-+	spool->count--;
-+	unlock_or_release_subpool(spool);
-+}
-+
-+static int hugepage_subpool_get_pages(struct hugepage_subpool *spool,
-+				      long delta)
-+{
-+	int ret = 0;
-+
-+	if (!spool)
-+		return 0;
-+
-+	spin_lock(&spool->lock);
-+	if ((spool->used_hpages + delta) <= spool->max_hpages) {
-+		spool->used_hpages += delta;
-+	} else {
-+		ret = -ENOMEM;
-+	}
-+	spin_unlock(&spool->lock);
-+
-+	return ret;
-+}
-+
-+static void hugepage_subpool_put_pages(struct hugepage_subpool *spool,
-+				       long delta)
-+{
-+	if (!spool)
-+		return;
-+
-+	spin_lock(&spool->lock);
-+	spool->used_hpages -= delta;
-+	/* If hugetlbfs_put_super couldn't free spool due to
-+	* an outstanding quota reference, free it now. */
-+	unlock_or_release_subpool(spool);
-+}
-+
-+static inline struct hugepage_subpool *subpool_inode(struct inode *inode)
-+{
-+	return HUGETLBFS_SB(inode->i_sb)->spool;
-+}
-+
-+static inline struct hugepage_subpool *subpool_vma(struct vm_area_struct *vma)
-+{
-+	return subpool_inode(vma->vm_file->f_dentry->d_inode);
-+}
-+
- /*
-  * Region tracking -- allows tracking of reservations and instantiated pages
-  *                    across the pages in a mapping.
-@@ -533,9 +611,9 @@ static void free_huge_page(struct page *page)
- 	 */
- 	struct hstate *h = page_hstate(page);
- 	int nid = page_to_nid(page);
--	struct address_space *mapping;
-+	struct hugepage_subpool *spool =
-+		(struct hugepage_subpool *)page_private(page);
- 
--	mapping = (struct address_space *) page_private(page);
- 	set_page_private(page, 0);
- 	page->mapping = NULL;
- 	BUG_ON(page_count(page));
-@@ -551,8 +629,7 @@ static void free_huge_page(struct page *page)
- 		enqueue_huge_page(h, page);
- 	}
- 	spin_unlock(&hugetlb_lock);
--	if (mapping)
--		hugetlb_put_quota(mapping, 1);
-+	hugepage_subpool_put_pages(spool, 1);
- }
- 
- static void prep_new_huge_page(struct hstate *h, struct page *page, int nid)
-@@ -966,11 +1043,12 @@ static void return_unused_surplus_pages(struct hstate *h,
- /*
-  * Determine if the huge page at addr within the vma has an associated
-  * reservation.  Where it does not we will need to logically increase
-- * reservation and actually increase quota before an allocation can occur.
-- * Where any new reservation would be required the reservation change is
-- * prepared, but not committed.  Once the page has been quota'd allocated
-- * an instantiated the change should be committed via vma_commit_reservation.
-- * No action is required on failure.
-+ * reservation and actually increase subpool usage before an allocation
-+ * can occur.  Where any new reservation would be required the
-+ * reservation change is prepared, but not committed.  Once the page
-+ * has been allocated from the subpool and instantiated the change should
-+ * be committed via vma_commit_reservation.  No action is required on
-+ * failure.
-  */
- static long vma_needs_reservation(struct hstate *h,
- 			struct vm_area_struct *vma, unsigned long addr)
-@@ -1019,24 +1097,24 @@ static void vma_commit_reservation(struct hstate *h,
- static struct page *alloc_huge_page(struct vm_area_struct *vma,
- 				    unsigned long addr, int avoid_reserve)
- {
-+	struct hugepage_subpool *spool = subpool_vma(vma);
- 	struct hstate *h = hstate_vma(vma);
- 	struct page *page;
--	struct address_space *mapping = vma->vm_file->f_mapping;
--	struct inode *inode = mapping->host;
- 	long chg;
- 
- 	/*
--	 * Processes that did not create the mapping will have no reserves and
--	 * will not have accounted against quota. Check that the quota can be
--	 * made before satisfying the allocation
--	 * MAP_NORESERVE mappings may also need pages and quota allocated
--	 * if no reserve mapping overlaps.
-+	 * Processes that did not create the mapping will have no
-+	 * reserves and will not have accounted against subpool
-+	 * limit. Check that the subpool limit can be made before
-+	 * satisfying the allocation MAP_NORESERVE mappings may also
-+	 * need pages and subpool limit allocated allocated if no reserve
-+	 * mapping overlaps.
- 	 */
- 	chg = vma_needs_reservation(h, vma, addr);
- 	if (chg < 0)
- 		return ERR_PTR(-VM_FAULT_OOM);
- 	if (chg)
--		if (hugetlb_get_quota(inode->i_mapping, chg))
-+		if (hugepage_subpool_get_pages(spool, chg))
- 			return ERR_PTR(-VM_FAULT_SIGBUS);
- 
- 	spin_lock(&hugetlb_lock);
-@@ -1046,12 +1124,12 @@ static struct page *alloc_huge_page(struct vm_area_struct *vma,
- 	if (!page) {
- 		page = alloc_buddy_huge_page(h, NUMA_NO_NODE);
- 		if (!page) {
--			hugetlb_put_quota(inode->i_mapping, chg);
-+			hugepage_subpool_put_pages(spool, chg);
- 			return ERR_PTR(-VM_FAULT_SIGBUS);
- 		}
- 	}
- 
--	set_page_private(page, (unsigned long) mapping);
-+	set_page_private(page, (unsigned long)spool);
- 
- 	vma_commit_reservation(h, vma, addr);
- 
-@@ -2081,6 +2159,7 @@ static void hugetlb_vm_op_close(struct vm_area_struct *vma)
- {
- 	struct hstate *h = hstate_vma(vma);
- 	struct resv_map *reservations = vma_resv_map(vma);
-+	struct hugepage_subpool *spool = subpool_vma(vma);
- 	unsigned long reserve;
- 	unsigned long start;
- 	unsigned long end;
-@@ -2096,7 +2175,7 @@ static void hugetlb_vm_op_close(struct vm_area_struct *vma)
- 
- 		if (reserve) {
- 			hugetlb_acct_memory(h, -reserve);
--			hugetlb_put_quota(vma->vm_file->f_mapping, reserve);
-+			hugepage_subpool_put_pages(spool, reserve);
- 		}
- 	}
- }
-@@ -2326,7 +2405,7 @@ static int unmap_ref_private(struct mm_struct *mm, struct vm_area_struct *vma,
- 	address = address & huge_page_mask(h);
- 	pgoff = ((address - vma->vm_start) >> PAGE_SHIFT)
- 		+ (vma->vm_pgoff >> PAGE_SHIFT);
--	mapping = (struct address_space *)page_private(page);
-+	mapping = vma->vm_file->f_dentry->d_inode->i_mapping;
- 
- 	/*
- 	 * Take the mapping lock for the duration of the table walk. As
-@@ -2865,11 +2944,12 @@ int hugetlb_reserve_pages(struct inode *inode,
- {
- 	long ret, chg;
- 	struct hstate *h = hstate_inode(inode);
-+	struct hugepage_subpool *spool = subpool_inode(inode);
- 
- 	/*
- 	 * Only apply hugepage reservation if asked. At fault time, an
- 	 * attempt will be made for VM_NORESERVE to allocate a page
--	 * and filesystem quota without using reserves
-+	 * without using reserves
- 	 */
- 	if (vm_flags & VM_NORESERVE)
- 		return 0;
-@@ -2898,19 +2978,19 @@ int hugetlb_reserve_pages(struct inode *inode,
- 		goto out_err;
- 	}
- 
--	/* There must be enough filesystem quota for the mapping */
--	if (hugetlb_get_quota(inode->i_mapping, chg)) {
-+	/* There must be enough pages in the subpool for the mapping */
-+	if (hugepage_subpool_get_pages(spool, chg)) {
- 		ret = -ENOSPC;
- 		goto out_err;
- 	}
- 
- 	/*
- 	 * Check enough hugepages are available for the reservation.
--	 * Hand back the quota if there are not
-+	 * Hand the pages back to the subpool if there are not
- 	 */
- 	ret = hugetlb_acct_memory(h, chg);
- 	if (ret < 0) {
--		hugetlb_put_quota(inode->i_mapping, chg);
-+		hugepage_subpool_put_pages(spool, chg);
- 		goto out_err;
- 	}
- 
-@@ -2938,12 +3018,13 @@ void hugetlb_unreserve_pages(struct inode *inode, long offset, long freed)
- {
- 	struct hstate *h = hstate_inode(inode);
- 	long chg = region_truncate(&inode->i_mapping->private_list, offset);
-+	struct hugepage_subpool *spool = subpool_inode(inode);
- 
- 	spin_lock(&inode->i_lock);
- 	inode->i_blocks -= (blocks_per_huge_page(h) * freed);
- 	spin_unlock(&inode->i_lock);
- 
--	hugetlb_put_quota(inode->i_mapping, (chg - freed));
-+	hugepage_subpool_put_pages(spool, (chg - freed));
- 	hugetlb_acct_memory(h, -(chg - freed));
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0014-NFSv4-Reduce-the-footprint-of-the-idmapper.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0014-NFSv4-Reduce-the-footprint-of-the-idmapper.patch
deleted file mode 100644
index 008fc3e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0014-NFSv4-Reduce-the-footprint-of-the-idmapper.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From e45792228b6a4487d859334c757322554c960397 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Tue, 7 Feb 2012 14:59:05 -0500
-Subject: [PATCH 014/109] NFSv4: Reduce the footprint of the idmapper
-
-commit d073e9b541e1ac3f52d72c3a153855d9a9ee3278 upstream.
-
-Instead of pre-allocating the storage for all the strings, we can
-significantly reduce the size of that table by doing the allocation
-when we do the downcall.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-[bwh: Backported to 3.2: adjust context in nfs_idmap_delete()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/idmap.c |   16 +++++++++++++---
- 1 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c
-index 47d1c6f..b8c41c3 100644
---- a/fs/nfs/idmap.c
-+++ b/fs/nfs/idmap.c
-@@ -318,7 +318,7 @@ struct idmap_hashent {
- 	unsigned long		ih_expires;
- 	__u32			ih_id;
- 	size_t			ih_namelen;
--	char			ih_name[IDMAP_NAMESZ];
-+	const char		*ih_name;
- };
- 
- struct idmap_hashtable {
-@@ -382,11 +382,16 @@ void
- nfs_idmap_delete(struct nfs_client *clp)
- {
- 	struct idmap *idmap = clp->cl_idmap;
-+	int i;
- 
- 	if (!idmap)
- 		return;
- 	rpc_unlink(idmap->idmap_dentry);
- 	clp->cl_idmap = NULL;
-+	for (i = 0; i < ARRAY_SIZE(idmap->idmap_user_hash.h_entries); i++)
-+		kfree(idmap->idmap_user_hash.h_entries[i].ih_name);
-+	for (i = 0; i < ARRAY_SIZE(idmap->idmap_group_hash.h_entries); i++)
-+		kfree(idmap->idmap_group_hash.h_entries[i].ih_name);
- 	kfree(idmap);
- }
- 
-@@ -449,9 +454,14 @@ static void
- idmap_update_entry(struct idmap_hashent *he, const char *name,
- 		size_t namelen, __u32 id)
- {
-+	char *str = kmalloc(namelen + 1, GFP_KERNEL);
-+	if (str == NULL)
-+		return;
-+	kfree(he->ih_name);
- 	he->ih_id = id;
--	memcpy(he->ih_name, name, namelen);
--	he->ih_name[namelen] = '\0';
-+	memcpy(str, name, namelen);
-+	str[namelen] = '\0';
-+	he->ih_name = str;
- 	he->ih_namelen = namelen;
- 	he->ih_expires = jiffies + nfs_idmap_cache_timeout;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0015-NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0015-NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch
deleted file mode 100644
index 018a5ef..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0015-NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From c297b1ec9340ec265bceeb8c1b8198ee476f0573 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Wed, 8 Feb 2012 13:39:15 -0500
-Subject: [PATCH 015/109] NFSv4: Further reduce the footprint of the idmapper
-
-commit 685f50f9188ac1e8244d0340a9d6ea36b6136cec upstream.
-
-Don't allocate the legacy idmapper tables until we actually need
-them.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Reviewed-by: Jeff Layton <jlayton at redhat.com>
-[bwh: Backported to 3.2: adjust context in nfs_idmap_delete()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/idmap.c |   42 ++++++++++++++++++++++++++++++++++++------
- 1 files changed, 36 insertions(+), 6 deletions(-)
-
-diff --git a/fs/nfs/idmap.c b/fs/nfs/idmap.c
-index b8c41c3..b122af8 100644
---- a/fs/nfs/idmap.c
-+++ b/fs/nfs/idmap.c
-@@ -323,7 +323,7 @@ struct idmap_hashent {
- 
- struct idmap_hashtable {
- 	__u8			h_type;
--	struct idmap_hashent	h_entries[IDMAP_HASH_SZ];
-+	struct idmap_hashent	*h_entries;
- };
- 
- struct idmap {
-@@ -378,20 +378,39 @@ nfs_idmap_new(struct nfs_client *clp)
- 	return 0;
- }
- 
-+static void
-+idmap_alloc_hashtable(struct idmap_hashtable *h)
-+{
-+	if (h->h_entries != NULL)
-+		return;
-+	h->h_entries = kcalloc(IDMAP_HASH_SZ,
-+			sizeof(*h->h_entries),
-+			GFP_KERNEL);
-+}
-+
-+static void
-+idmap_free_hashtable(struct idmap_hashtable *h)
-+{
-+	int i;
-+
-+	if (h->h_entries == NULL)
-+		return;
-+	for (i = 0; i < IDMAP_HASH_SZ; i++)
-+		kfree(h->h_entries[i].ih_name);
-+	kfree(h->h_entries);
-+}
-+
- void
- nfs_idmap_delete(struct nfs_client *clp)
- {
- 	struct idmap *idmap = clp->cl_idmap;
--	int i;
- 
- 	if (!idmap)
- 		return;
- 	rpc_unlink(idmap->idmap_dentry);
- 	clp->cl_idmap = NULL;
--	for (i = 0; i < ARRAY_SIZE(idmap->idmap_user_hash.h_entries); i++)
--		kfree(idmap->idmap_user_hash.h_entries[i].ih_name);
--	for (i = 0; i < ARRAY_SIZE(idmap->idmap_group_hash.h_entries); i++)
--		kfree(idmap->idmap_group_hash.h_entries[i].ih_name);
-+	idmap_free_hashtable(&idmap->idmap_user_hash);
-+	idmap_free_hashtable(&idmap->idmap_group_hash);
- 	kfree(idmap);
- }
- 
-@@ -401,6 +420,8 @@ nfs_idmap_delete(struct nfs_client *clp)
- static inline struct idmap_hashent *
- idmap_name_hash(struct idmap_hashtable* h, const char *name, size_t len)
- {
-+	if (h->h_entries == NULL)
-+		return NULL;
- 	return &h->h_entries[fnvhash32(name, len) % IDMAP_HASH_SZ];
- }
- 
-@@ -409,6 +430,8 @@ idmap_lookup_name(struct idmap_hashtable *h, const char *name, size_t len)
- {
- 	struct idmap_hashent *he = idmap_name_hash(h, name, len);
- 
-+	if (he == NULL)
-+		return NULL;
- 	if (he->ih_namelen != len || memcmp(he->ih_name, name, len) != 0)
- 		return NULL;
- 	if (time_after(jiffies, he->ih_expires))
-@@ -419,6 +442,8 @@ idmap_lookup_name(struct idmap_hashtable *h, const char *name, size_t len)
- static inline struct idmap_hashent *
- idmap_id_hash(struct idmap_hashtable* h, __u32 id)
- {
-+	if (h->h_entries == NULL)
-+		return NULL;
- 	return &h->h_entries[fnvhash32(&id, sizeof(id)) % IDMAP_HASH_SZ];
- }
- 
-@@ -426,6 +451,9 @@ static struct idmap_hashent *
- idmap_lookup_id(struct idmap_hashtable *h, __u32 id)
- {
- 	struct idmap_hashent *he = idmap_id_hash(h, id);
-+
-+	if (he == NULL)
-+		return NULL;
- 	if (he->ih_id != id || he->ih_namelen == 0)
- 		return NULL;
- 	if (time_after(jiffies, he->ih_expires))
-@@ -441,12 +469,14 @@ idmap_lookup_id(struct idmap_hashtable *h, __u32 id)
- static inline struct idmap_hashent *
- idmap_alloc_name(struct idmap_hashtable *h, char *name, size_t len)
- {
-+	idmap_alloc_hashtable(h);
- 	return idmap_name_hash(h, name, len);
- }
- 
- static inline struct idmap_hashent *
- idmap_alloc_id(struct idmap_hashtable *h, __u32 id)
- {
-+	idmap_alloc_hashtable(h);
- 	return idmap_id_hash(h, id);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0016-macvtap-zerocopy-fix-offset-calculation-when-buildin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0016-macvtap-zerocopy-fix-offset-calculation-when-buildin.patch
deleted file mode 100644
index d19f672..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0016-macvtap-zerocopy-fix-offset-calculation-when-buildin.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 6c4e2ff1b19d58c2a2f016d25b96eee0f733d7aa Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 2 May 2012 11:41:30 +0800
-Subject: [PATCH 016/109] macvtap: zerocopy: fix offset calculation when
- building skb
-
-commit 3afc9621f15701c557e60f61eba9242bac2771dd upstream.
-
-This patch fixes the offset calculation when building skb:
-
-- offset1 were used as skb data offset not vector offset
-- reset offset to zero only when we advance to next vector
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/macvtap.c |   13 +++++++------
- 1 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index 1b7082d..4505008 100644
---- a/drivers/net/macvtap.c
-+++ b/drivers/net/macvtap.c
-@@ -504,10 +504,11 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 		if (copy > size) {
- 			++from;
- 			--count;
--		}
-+			offset = 0;
-+		} else
-+			offset += size;
- 		copy -= size;
- 		offset1 += size;
--		offset = 0;
- 	}
- 
- 	if (len == offset1)
-@@ -518,13 +519,13 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 		int num_pages;
- 		unsigned long base;
- 
--		len = from->iov_len - offset1;
-+		len = from->iov_len - offset;
- 		if (!len) {
--			offset1 = 0;
-+			offset = 0;
- 			++from;
- 			continue;
- 		}
--		base = (unsigned long)from->iov_base + offset1;
-+		base = (unsigned long)from->iov_base + offset;
- 		size = ((base & ~PAGE_MASK) + len + ~PAGE_MASK) >> PAGE_SHIFT;
- 		num_pages = get_user_pages_fast(base, size, 0, &page[i]);
- 		if ((num_pages != size) ||
-@@ -545,7 +546,7 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 			len -= size;
- 			i++;
- 		}
--		offset1 = 0;
-+		offset = 0;
- 		++from;
- 	}
- 	return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0017-macvtap-zerocopy-fix-truesize-underestimation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0017-macvtap-zerocopy-fix-truesize-underestimation.patch
deleted file mode 100644
index b00f0b9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0017-macvtap-zerocopy-fix-truesize-underestimation.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From e2261c8945dd5af5a0627ac72f7a39f676f3b657 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 2 May 2012 11:41:44 +0800
-Subject: [PATCH 017/109] macvtap: zerocopy: fix truesize underestimation
-
-commit 4ef67ebedffa44ed9939b34708ac2fee06d2f65f upstream.
-
-As the skb fragment were pinned/built from user pages, we should
-account the page instead of length for truesize.
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/macvtap.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index 4505008..c7a84eb 100644
---- a/drivers/net/macvtap.c
-+++ b/drivers/net/macvtap.c
-@@ -518,6 +518,7 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 		struct page *page[MAX_SKB_FRAGS];
- 		int num_pages;
- 		unsigned long base;
-+		unsigned long truesize;
- 
- 		len = from->iov_len - offset;
- 		if (!len) {
-@@ -532,10 +533,11 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 		    (num_pages > MAX_SKB_FRAGS - skb_shinfo(skb)->nr_frags))
- 			/* put_page is in skb free */
- 			return -EFAULT;
-+		truesize = size * PAGE_SIZE;
- 		skb->data_len += len;
- 		skb->len += len;
--		skb->truesize += len;
--		atomic_add(len, &skb->sk->sk_wmem_alloc);
-+		skb->truesize += truesize;
-+		atomic_add(truesize, &skb->sk->sk_wmem_alloc);
- 		while (len) {
- 			int off = base & ~PAGE_MASK;
- 			int size = min_t(int, len, PAGE_SIZE - off);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0018-macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0018-macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch
deleted file mode 100644
index 55fc073..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0018-macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 13d71d7ee644607d525480330c8b6a4268c18c0e Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 2 May 2012 11:41:58 +0800
-Subject: [PATCH 018/109] macvtap: zerocopy: put page when fail to get all
- requested user pages
-
-commit 02ce04bb3d28c3333231f43bca677228dbc686fe upstream.
-
-When get_user_pages_fast() fails to get all requested pages, we could not use
-kfree_skb() to free it as it has not been put in the skb fragments. So we need
-to call put_page() instead.
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/macvtap.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index c7a84eb..f217247 100644
---- a/drivers/net/macvtap.c
-+++ b/drivers/net/macvtap.c
-@@ -530,9 +530,11 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 		size = ((base & ~PAGE_MASK) + len + ~PAGE_MASK) >> PAGE_SHIFT;
- 		num_pages = get_user_pages_fast(base, size, 0, &page[i]);
- 		if ((num_pages != size) ||
--		    (num_pages > MAX_SKB_FRAGS - skb_shinfo(skb)->nr_frags))
--			/* put_page is in skb free */
-+		    (num_pages > MAX_SKB_FRAGS - skb_shinfo(skb)->nr_frags)) {
-+			for (i = 0; i < num_pages; i++)
-+				put_page(page[i]);
- 			return -EFAULT;
-+		}
- 		truesize = size * PAGE_SIZE;
- 		skb->data_len += len;
- 		skb->len += len;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0019-macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0019-macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch
deleted file mode 100644
index 737ed5c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0019-macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From c57df8c118c4c11ef6023034aa454636dd8780db Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 2 May 2012 11:42:06 +0800
-Subject: [PATCH 019/109] macvtap: zerocopy: set SKBTX_DEV_ZEROCOPY only when
- skb is built successfully
-
-commit 01d6657b388438def19c8baaea28e742b6ed32ec upstream.
-
-Current the SKBTX_DEV_ZEROCOPY is set unconditionally after
-zerocopy_sg_from_iovec(), this would lead NULL pointer when macvtap
-fails to build zerocopy skb because destructor_arg was not
-initialized. Solve this by set this flag after the skb were built
-successfully.
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/macvtap.c |    9 +++++----
- 1 files changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index f217247..7fecd66 100644
---- a/drivers/net/macvtap.c
-+++ b/drivers/net/macvtap.c
-@@ -698,10 +698,9 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
- 	if (!skb)
- 		goto err;
- 
--	if (zerocopy) {
-+	if (zerocopy)
- 		err = zerocopy_sg_from_iovec(skb, iv, vnet_hdr_len, count);
--		skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY;
--	} else
-+	else
- 		err = skb_copy_datagram_from_iovec(skb, 0, iv, vnet_hdr_len,
- 						   len);
- 	if (err)
-@@ -720,8 +719,10 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
- 	rcu_read_lock_bh();
- 	vlan = rcu_dereference_bh(q->vlan);
- 	/* copy skb_ubuf_info for callback when skb has no error */
--	if (zerocopy)
-+	if (zerocopy) {
- 		skb_shinfo(skb)->destructor_arg = m->msg_control;
-+		skb_shinfo(skb)->tx_flags |= SKBTX_DEV_ZEROCOPY;
-+	}
- 	if (vlan)
- 		macvlan_start_xmit(skb, vlan->dev);
- 	else
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0020-macvtap-zerocopy-validate-vectors-before-building-sk.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0020-macvtap-zerocopy-validate-vectors-before-building-sk.patch
deleted file mode 100644
index a46ddcb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0020-macvtap-zerocopy-validate-vectors-before-building-sk.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From c93ad33631e3efbb6f02f24c6b6817227b2c9252 Mon Sep 17 00:00:00 2001
-From: Jason Wang <jasowang at redhat.com>
-Date: Wed, 2 May 2012 11:42:15 +0800
-Subject: [PATCH 020/109] macvtap: zerocopy: validate vectors before building
- skb
-
-commit b92946e2919134ebe2a4083e4302236295ea2a73 upstream.
-
-There're several reasons that the vectors need to be validated:
-
-- Return error when caller provides vectors whose num is greater than UIO_MAXIOV.
-- Linearize part of skb when userspace provides vectors grater than MAX_SKB_FRAGS.
-- Return error when userspace provides vectors whose total length may exceed
-- MAX_SKB_FRAGS * PAGE_SIZE.
-
-Signed-off-by: Jason Wang <jasowang at redhat.com>
-Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/macvtap.c |   25 +++++++++++++++++++++----
- 1 files changed, 21 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/macvtap.c b/drivers/net/macvtap.c
-index 7fecd66..26106c0 100644
---- a/drivers/net/macvtap.c
-+++ b/drivers/net/macvtap.c
-@@ -528,9 +528,10 @@ static int zerocopy_sg_from_iovec(struct sk_buff *skb, const struct iovec *from,
- 		}
- 		base = (unsigned long)from->iov_base + offset;
- 		size = ((base & ~PAGE_MASK) + len + ~PAGE_MASK) >> PAGE_SHIFT;
-+		if (i + size > MAX_SKB_FRAGS)
-+			return -EMSGSIZE;
- 		num_pages = get_user_pages_fast(base, size, 0, &page[i]);
--		if ((num_pages != size) ||
--		    (num_pages > MAX_SKB_FRAGS - skb_shinfo(skb)->nr_frags)) {
-+		if (num_pages != size) {
- 			for (i = 0; i < num_pages; i++)
- 				put_page(page[i]);
- 			return -EFAULT;
-@@ -650,7 +651,7 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
- 	int err;
- 	struct virtio_net_hdr vnet_hdr = { 0 };
- 	int vnet_hdr_len = 0;
--	int copylen;
-+	int copylen = 0;
- 	bool zerocopy = false;
- 
- 	if (q->flags & IFF_VNET_HDR) {
-@@ -679,15 +680,31 @@ static ssize_t macvtap_get_user(struct macvtap_queue *q, struct msghdr *m,
- 	if (unlikely(len < ETH_HLEN))
- 		goto err;
- 
-+	err = -EMSGSIZE;
-+	if (unlikely(count > UIO_MAXIOV))
-+		goto err;
-+
- 	if (m && m->msg_control && sock_flag(&q->sk, SOCK_ZEROCOPY))
- 		zerocopy = true;
- 
- 	if (zerocopy) {
-+		/* Userspace may produce vectors with count greater than
-+		 * MAX_SKB_FRAGS, so we need to linearize parts of the skb
-+		 * to let the rest of data to be fit in the frags.
-+		 */
-+		if (count > MAX_SKB_FRAGS) {
-+			copylen = iov_length(iv, count - MAX_SKB_FRAGS);
-+			if (copylen < vnet_hdr_len)
-+				copylen = 0;
-+			else
-+				copylen -= vnet_hdr_len;
-+		}
- 		/* There are 256 bytes to be copied in skb, so there is enough
- 		 * room for skb expand head in case it is used.
- 		 * The rest buffer is mapped from userspace.
- 		 */
--		copylen = vnet_hdr.hdr_len;
-+		if (copylen < vnet_hdr.hdr_len)
-+			copylen = vnet_hdr.hdr_len;
- 		if (!copylen)
- 			copylen = GOODCOPY_LEN;
- 	} else
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0021-KVM-Fix-buffer-overflow-in-kvm_set_irq.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0021-KVM-Fix-buffer-overflow-in-kvm_set_irq.patch
deleted file mode 100644
index 45dfb2d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0021-KVM-Fix-buffer-overflow-in-kvm_set_irq.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 274c1b4b54a12df73eb5fc2763a294ff2a04669c Mon Sep 17 00:00:00 2001
-From: Avi Kivity <avi at redhat.com>
-Date: Sun, 22 Apr 2012 17:02:11 +0300
-Subject: [PATCH 021/109] KVM: Fix buffer overflow in kvm_set_irq()
-
-commit f2ebd422f71cda9c791f76f85d2ca102ae34a1ed upstream.
-
-kvm_set_irq() has an internal buffer of three irq routing entries, allowing
-connecting a GSI to three IRQ chips or on MSI.  However setup_routing_entry()
-does not properly enforce this, allowing three irqchip routes followed by
-an MSI route to overflow the buffer.
-
-Fix by ensuring that an MSI entry is added to an empty list.
-
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- virt/kvm/irq_comm.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/virt/kvm/irq_comm.c b/virt/kvm/irq_comm.c
-index 9f614b4..272407c 100644
---- a/virt/kvm/irq_comm.c
-+++ b/virt/kvm/irq_comm.c
-@@ -318,6 +318,7 @@ static int setup_routing_entry(struct kvm_irq_routing_table *rt,
- 	 */
- 	hlist_for_each_entry(ei, n, &rt->map[ue->gsi], link)
- 		if (ei->type == KVM_IRQ_ROUTING_MSI ||
-+		    ue->type == KVM_IRQ_ROUTING_MSI ||
- 		    ue->u.irqchip.irqchip == ei->irqchip.irqchip)
- 			return r;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0022-scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0022-scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch
deleted file mode 100644
index 86b471c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0022-scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From d0ef0e99137f622218e0395ccc12210e4804b5ed Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Fri, 15 Jun 2012 12:52:46 +0200
-Subject: [PATCH 022/109] scsi: Silence unnecessary warnings about ioctl to
- partition
-
-commit 6d9359280753d2955f86d6411047516a9431eb51 upstream.
-
-Sometimes, warnings about ioctls to partition happen often enough that they
-form majority of the warnings in the kernel log and users complain. In some
-cases warnings are about ioctls such as SG_IO so it's not good to get rid of
-the warnings completely as they can ease debugging of userspace problems
-when ioctl is refused.
-
-Since I have seen warnings from lots of commands, including some proprietary
-userspace applications, I don't think disallowing the ioctls for processes
-with CAP_SYS_RAWIO will happen in the near future if ever. So lets just
-stop warning for processes with CAP_SYS_RAWIO for which ioctl is allowed.
-
-CC: Paolo Bonzini <pbonzini at redhat.com>
-CC: James Bottomley <JBottomley at parallels.com>
-CC: linux-scsi at vger.kernel.org
-Acked-by: Paolo Bonzini <pbonzini at redhat.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-[bwh: Backported to 3.2: use ENOTTY, not ENOIOCTLCMD]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- block/scsi_ioctl.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/block/scsi_ioctl.c b/block/scsi_ioctl.c
-index 688be8a..9e76a32 100644
---- a/block/scsi_ioctl.c
-+++ b/block/scsi_ioctl.c
-@@ -721,11 +721,14 @@ int scsi_verify_blk_ioctl(struct block_device *bd, unsigned int cmd)
- 		break;
- 	}
- 
-+	if (capable(CAP_SYS_RAWIO))
-+		return 0;
-+
- 	/* In particular, rule out all resets and host-specific ioctls.  */
- 	printk_ratelimited(KERN_WARNING
- 			   "%s: sending ioctl %x to a partition!\n", current->comm, cmd);
- 
--	return capable(CAP_SYS_RAWIO) ? 0 : -ENOTTY;
-+	return -ENOTTY;
- }
- EXPORT_SYMBOL(scsi_verify_blk_ioctl);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0023-epoll-clear-the-tfile_check_list-on-ELOOP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0023-epoll-clear-the-tfile_check_list-on-ELOOP.patch
deleted file mode 100644
index 8dbe37d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0023-epoll-clear-the-tfile_check_list-on-ELOOP.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 4255dce0ae728fe63f19ded56b5dc2c324d6f18d Mon Sep 17 00:00:00 2001
-From: Jason Baron <jbaron at redhat.com>
-Date: Wed, 25 Apr 2012 16:01:47 -0700
-Subject: [PATCH 023/109] epoll: clear the tfile_check_list on -ELOOP
-
-commit 13d518074a952d33d47c428419693f63389547e9 upstream.
-
-An epoll_ctl(,EPOLL_CTL_ADD,,) operation can return '-ELOOP' to prevent
-circular epoll dependencies from being created.  However, in that case we
-do not properly clear the 'tfile_check_list'.  Thus, add a call to
-clear_tfile_check_list() for the -ELOOP case.
-
-Signed-off-by: Jason Baron <jbaron at redhat.com>
-Reported-by: Yurij M. Plotnikov <Yurij.Plotnikov at oktetlabs.ru>
-Cc: Nelson Elhage <nelhage at nelhage.com>
-Cc: Davide Libenzi <davidel at xmailserver.org>
-Tested-by: Alexandra N. Kossovsky <Alexandra.Kossovsky at oktetlabs.ru>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/eventpoll.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index 4d9d3a4..a6f3763 100644
---- a/fs/eventpoll.c
-+++ b/fs/eventpoll.c
-@@ -1629,8 +1629,10 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
- 	if (op == EPOLL_CTL_ADD) {
- 		if (is_file_epoll(tfile)) {
- 			error = -ELOOP;
--			if (ep_loop_check(ep, tfile) != 0)
-+			if (ep_loop_check(ep, tfile) != 0) {
-+				clear_tfile_check_list();
- 				goto error_tgt_fput;
-+			}
- 		} else
- 			list_add(&tfile->f_tfile_llink, &tfile_check_list);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0024-iommu-amd-Fix-missing-iommu_shutdown-initialization-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0024-iommu-amd-Fix-missing-iommu_shutdown-initialization-.patch
deleted file mode 100644
index 4c75e8e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0024-iommu-amd-Fix-missing-iommu_shutdown-initialization-.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From be1ab01a00ec19b273050ad8f3fbb9472238b026 Mon Sep 17 00:00:00 2001
-From: Shuah Khan <shuah.khan at hp.com>
-Date: Wed, 6 Jun 2012 10:50:06 -0600
-Subject: [PATCH 024/109] iommu/amd: Fix missing iommu_shutdown initialization
- in passthrough mode
-
-commit f2f12b6fc032c7b1419fd6db84e2868b5f05a878 upstream.
-
-The iommu_shutdown callback is not initialized when the AMD
-IOMMU driver runs in passthrough mode. Fix that by moving
-the callback initialization before the check for
-passthrough mode.
-
-Signed-off-by: Shuah Khan <shuah.khan at hp.com>
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/amd_iommu_init.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/iommu/amd_iommu_init.c b/drivers/iommu/amd_iommu_init.c
-index 6269eb0..ef2d493 100644
---- a/drivers/iommu/amd_iommu_init.c
-+++ b/drivers/iommu/amd_iommu_init.c
-@@ -1468,6 +1468,8 @@ static int __init amd_iommu_init(void)
- 
- 	register_syscore_ops(&amd_iommu_syscore_ops);
- 
-+	x86_platform.iommu_shutdown = disable_iommus;
-+
- 	if (iommu_pass_through)
- 		goto out;
- 
-@@ -1476,7 +1478,6 @@ static int __init amd_iommu_init(void)
- 	else
- 		printk(KERN_INFO "AMD-Vi: Lazy IO/TLB flushing enabled\n");
- 
--	x86_platform.iommu_shutdown = disable_iommus;
- out:
- 	return ret;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0025-iommu-amd-Initialize-dma_ops-for-hotplug-and-sriov-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0025-iommu-amd-Initialize-dma_ops-for-hotplug-and-sriov-d.patch
deleted file mode 100644
index 053d5e7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0025-iommu-amd-Initialize-dma_ops-for-hotplug-and-sriov-d.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 60eec119060fbd35f569fd77fd448dbcd8d8f011 Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Thu, 21 Jun 2012 14:52:40 +0200
-Subject: [PATCH 025/109] iommu/amd: Initialize dma_ops for hotplug and sriov
- devices
-
-commit ac1534a55d1e87d59a21c09c570605933b551480 upstream.
-
-When a device is added to the system at runtime the AMD
-IOMMU driver initializes the necessary data structures to
-handle translation for it. But it forgets to change the
-per-device dma_ops to point to the AMD IOMMU driver. So
-mapping actually never happens and all DMA accesses end in
-an IO_PAGE_FAULT. Fix this.
-
-Reported-by: Stefan Assmann <sassmann at redhat.com>
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-[bwh: Backported to 3.2:
- - Adjust context
- - Use global iommu_pass_through; there is no per-device pass_through]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/amd_iommu.c |    7 +++++++
- 1 files changed, 7 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index f1d5408..a1b8caa 100644
---- a/drivers/iommu/amd_iommu.c
-+++ b/drivers/iommu/amd_iommu.c
-@@ -59,6 +59,8 @@ static struct protection_domain *pt_domain;
- 
- static struct iommu_ops amd_iommu_ops;
- 
-+static struct dma_map_ops amd_iommu_dma_ops;
-+
- /*
-  * general struct to manage commands send to an IOMMU
-  */
-@@ -1878,6 +1880,11 @@ static int device_change_notifier(struct notifier_block *nb,
- 		list_add_tail(&dma_domain->list, &iommu_pd_list);
- 		spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
- 
-+		if (!iommu_pass_through)
-+			dev->archdata.dma_ops = &amd_iommu_dma_ops;
-+		else
-+			dev->archdata.dma_ops = &nommu_dma_ops;
-+
- 		break;
- 	case BUS_NOTIFY_DEL_DEVICE:
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0026-usb-Add-support-for-root-hub-port-status-CAS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0026-usb-Add-support-for-root-hub-port-status-CAS.patch
deleted file mode 100644
index 827fcec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0026-usb-Add-support-for-root-hub-port-status-CAS.patch
+++ /dev/null
@@ -1,170 +0,0 @@
-From 6455e1a5be4eb27a1587322e0ed3a7ff6c3d8e4f Mon Sep 17 00:00:00 2001
-From: Stanislaw Ledwon <staszek.ledwon at linux.jf.intel.com>
-Date: Mon, 18 Jun 2012 15:20:00 +0200
-Subject: [PATCH 026/109] usb: Add support for root hub port status CAS
-
-commit 8bea2bd37df08aaa599aa361a9f8b836ba98e554 upstream.
-
-The host controller port status register supports CAS (Cold Attach
-Status) bit. This bit could be set when USB3.0 device is connected
-when system is in Sx state. When the system wakes to S0 this port
-status with CAS bit is reported and this port can't be used by any
-device.
-
-When CAS bit is set the port should be reset by warm reset. This
-was not supported by xhci driver.
-
-The issue was found when pendrive was connected to suspended
-platform. The link state of "Compliance Mode" was reported together
-with CAS bit. This link state was also not supported by xhci and
-core/hub.c.
-
-The CAS bit is defined only for xhci root hub port and it is
-not supported on regular hubs. The link status is used to force
-warm reset on port. Make the USB core issue a warm reset when port
-is in ether the 'inactive' or 'compliance mode'. Change the xHCI driver
-to report 'compliance mode' when the CAS is set. This force warm reset
-on the root hub port.
-
-This patch should be backported to stable kernels as old as 3.2, that
-contain the commit 10d674a82e553cb8a1f41027bb3c3e309b3f6804 "USB: When
-hot reset for USB3 fails, try warm reset."
-
-Signed-off-by: Stanislaw Ledwon <staszek.ledwon at linux.intel.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Acked-by: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/hub.c      |   18 +++++++++-------
- drivers/usb/host/xhci-hub.c |   44 +++++++++++++++++++++++++++++++++++++-----
- drivers/usb/host/xhci.h     |    6 ++++-
- 3 files changed, 53 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 50cf41a..2bc736f 100644
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -2039,12 +2039,16 @@ static unsigned hub_is_wusb(struct usb_hub *hub)
- static int hub_port_reset(struct usb_hub *hub, int port1,
- 			struct usb_device *udev, unsigned int delay, bool warm);
- 
--/* Is a USB 3.0 port in the Inactive state? */
--static bool hub_port_inactive(struct usb_hub *hub, u16 portstatus)
-+/* Is a USB 3.0 port in the Inactive or Complinance Mode state?
-+ * Port worm reset is required to recover
-+ */
-+static bool hub_port_warm_reset_required(struct usb_hub *hub, u16 portstatus)
- {
- 	return hub_is_superspeed(hub->hdev) &&
--		(portstatus & USB_PORT_STAT_LINK_STATE) ==
--		USB_SS_PORT_LS_SS_INACTIVE;
-+		(((portstatus & USB_PORT_STAT_LINK_STATE) ==
-+		  USB_SS_PORT_LS_SS_INACTIVE) ||
-+		 ((portstatus & USB_PORT_STAT_LINK_STATE) ==
-+		  USB_SS_PORT_LS_COMP_MOD)) ;
- }
- 
- static int hub_port_wait_reset(struct usb_hub *hub, int port1,
-@@ -2080,7 +2084,7 @@ static int hub_port_wait_reset(struct usb_hub *hub, int port1,
- 			 *
- 			 * See https://bugzilla.kernel.org/show_bug.cgi?id=41752
- 			 */
--			if (hub_port_inactive(hub, portstatus)) {
-+			if (hub_port_warm_reset_required(hub, portstatus)) {
- 				int ret;
- 
- 				if ((portchange & USB_PORT_STAT_C_CONNECTION))
-@@ -3646,9 +3650,7 @@ static void hub_events(void)
- 			/* Warm reset a USB3 protocol port if it's in
- 			 * SS.Inactive state.
- 			 */
--			if (hub_is_superspeed(hub->hdev) &&
--				(portstatus & USB_PORT_STAT_LINK_STATE)
--					== USB_SS_PORT_LS_SS_INACTIVE) {
-+			if (hub_port_warm_reset_required(hub, portstatus)) {
- 				dev_dbg(hub_dev, "warm reset port %d\n", i);
- 				hub_port_reset(hub, i, NULL,
- 						HUB_BH_RESET_TIME, true);
-diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
-index a8b2980..fd8a2c2 100644
---- a/drivers/usb/host/xhci-hub.c
-+++ b/drivers/usb/host/xhci-hub.c
-@@ -438,6 +438,42 @@ void xhci_test_and_clear_bit(struct xhci_hcd *xhci, __le32 __iomem **port_array,
- 	}
- }
- 
-+/* Updates Link Status for super Speed port */
-+static void xhci_hub_report_link_state(u32 *status, u32 status_reg)
-+{
-+	u32 pls = status_reg & PORT_PLS_MASK;
-+
-+	/* resume state is a xHCI internal state.
-+	 * Do not report it to usb core.
-+	 */
-+	if (pls == XDEV_RESUME)
-+		return;
-+
-+	/* When the CAS bit is set then warm reset
-+	 * should be performed on port
-+	 */
-+	if (status_reg & PORT_CAS) {
-+		/* The CAS bit can be set while the port is
-+		 * in any link state.
-+		 * Only roothubs have CAS bit, so we
-+		 * pretend to be in compliance mode
-+		 * unless we're already in compliance
-+		 * or the inactive state.
-+		 */
-+		if (pls != USB_SS_PORT_LS_COMP_MOD &&
-+		    pls != USB_SS_PORT_LS_SS_INACTIVE) {
-+			pls = USB_SS_PORT_LS_COMP_MOD;
-+		}
-+		/* Return also connection bit -
-+		 * hub state machine resets port
-+		 * when this bit is set.
-+		 */
-+		pls |= USB_PORT_STAT_CONNECTION;
-+	}
-+	/* update status field */
-+	*status |= pls;
-+}
-+
- int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
- 		u16 wIndex, char *buf, u16 wLength)
- {
-@@ -579,13 +615,9 @@ int xhci_hub_control(struct usb_hcd *hcd, u16 typeReq, u16 wValue,
- 			else
- 				status |= USB_PORT_STAT_POWER;
- 		}
--		/* Port Link State */
-+		/* Update Port Link State for super speed ports*/
- 		if (hcd->speed == HCD_USB3) {
--			/* resume state is a xHCI internal state.
--			 * Do not report it to usb core.
--			 */
--			if ((temp & PORT_PLS_MASK) != XDEV_RESUME)
--				status |= (temp & PORT_PLS_MASK);
-+			xhci_hub_report_link_state(&status, temp);
- 		}
- 		if (bus_state->port_c_suspend & (1 << wIndex))
- 			status |= 1 << USB_PORT_FEAT_C_SUSPEND;
-diff --git a/drivers/usb/host/xhci.h b/drivers/usb/host/xhci.h
-index 363b141..7a56805 100644
---- a/drivers/usb/host/xhci.h
-+++ b/drivers/usb/host/xhci.h
-@@ -341,7 +341,11 @@ struct xhci_op_regs {
- #define PORT_PLC	(1 << 22)
- /* port configure error change - port failed to configure its link partner */
- #define PORT_CEC	(1 << 23)
--/* bit 24 reserved */
-+/* Cold Attach Status - xHC can set this bit to report device attached during
-+ * Sx state. Warm port reset should be perfomed to clear this bit and move port
-+ * to connected state.
-+ */
-+#define PORT_CAS	(1 << 24)
- /* wake on connect (enable) */
- #define PORT_WKCONN_E	(1 << 25)
- /* wake on disconnect (enable) */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0027-gpiolib-wm8994-Pay-attention-to-the-value-set-when-e.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0027-gpiolib-wm8994-Pay-attention-to-the-value-set-when-e.patch
deleted file mode 100644
index 706d989..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0027-gpiolib-wm8994-Pay-attention-to-the-value-set-when-e.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 5cdc2897a0bb7b11585d5b14eb3f2faa1505348c Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Sat, 9 Jun 2012 11:07:56 +0800
-Subject: [PATCH 027/109] gpiolib: wm8994: Pay attention to the value set when
- enabling as output
-
-commit 8cd578b6e28693f357867a77598a88ef3deb6b39 upstream.
-
-Not paying attention to the value being set is a bad thing because it
-means that we'll not set the hardware up to reflect what was requested.
-Not setting the hardware up to reflect what was requested means that the
-caller won't get the results they wanted.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpio/gpio-wm8994.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpio/gpio-wm8994.c b/drivers/gpio/gpio-wm8994.c
-index 96198f3..a2da8f2 100644
---- a/drivers/gpio/gpio-wm8994.c
-+++ b/drivers/gpio/gpio-wm8994.c
-@@ -89,8 +89,11 @@ static int wm8994_gpio_direction_out(struct gpio_chip *chip,
- 	struct wm8994_gpio *wm8994_gpio = to_wm8994_gpio(chip);
- 	struct wm8994 *wm8994 = wm8994_gpio->wm8994;
- 
-+	if (value)
-+		value = WM8994_GPN_LVL;
-+
- 	return wm8994_set_bits(wm8994, WM8994_GPIO_1 + offset,
--			       WM8994_GPN_DIR, 0);
-+			       WM8994_GPN_DIR | WM8994_GPN_LVL, value);
- }
- 
- static void wm8994_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0028-sched-nohz-Rewrite-and-fix-load-avg-computation-agai.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0028-sched-nohz-Rewrite-and-fix-load-avg-computation-agai.patch
deleted file mode 100644
index 5659ce7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0028-sched-nohz-Rewrite-and-fix-load-avg-computation-agai.patch
+++ /dev/null
@@ -1,462 +0,0 @@
-From a7d3f237430003ca8d32d1703770f04d32a02b27 Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Date: Fri, 22 Jun 2012 15:52:09 +0200
-Subject: [PATCH 028/109] sched/nohz: Rewrite and fix load-avg computation --
- again
-
-commit 5167e8d5417bf5c322a703d2927daec727ea40dd upstream.
-
-Thanks to Charles Wang for spotting the defects in the current code:
-
- - If we go idle during the sample window -- after sampling, we get a
-   negative bias because we can negate our own sample.
-
- - If we wake up during the sample window we get a positive bias
-   because we push the sample to a known active period.
-
-So rewrite the entire nohz load-avg muck once again, now adding
-copious documentation to the code.
-
-Reported-and-tested-by: Doug Smythies <dsmythies at telus.net>
-Reported-and-tested-by: Charles Wang <muming.wq at gmail.com>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Cc: Andrew Morton <akpm at linux-foundation.org>
-Link: http://lkml.kernel.org/r/1340373782.18025.74.camel@twins
-[ minor edits ]
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-[bwh: Backported to 3.2: adjust filenames, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/sched.h    |    8 ++
- kernel/sched.c           |  276 ++++++++++++++++++++++++++++++++++------------
- kernel/sched_idletask.c  |    1 -
- kernel/time/tick-sched.c |    2 +
- 4 files changed, 213 insertions(+), 74 deletions(-)
-
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 1c4f3e9..5afa2a3 100644
---- a/include/linux/sched.h
-+++ b/include/linux/sched.h
-@@ -1892,6 +1892,14 @@ static inline int set_cpus_allowed_ptr(struct task_struct *p,
- }
- #endif
- 
-+#ifdef CONFIG_NO_HZ
-+void calc_load_enter_idle(void);
-+void calc_load_exit_idle(void);
-+#else
-+static inline void calc_load_enter_idle(void) { }
-+static inline void calc_load_exit_idle(void) { }
-+#endif /* CONFIG_NO_HZ */
-+
- #ifndef CONFIG_CPUMASK_OFFSTACK
- static inline int set_cpus_allowed(struct task_struct *p, cpumask_t new_mask)
- {
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 576a27f..52ac69b 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -1885,7 +1885,6 @@ static void double_rq_unlock(struct rq *rq1, struct rq *rq2)
- 
- #endif
- 
--static void calc_load_account_idle(struct rq *this_rq);
- static void update_sysctl(void);
- static int get_update_sysctl_factor(void);
- static void update_cpu_load(struct rq *this_rq);
-@@ -3401,11 +3400,73 @@ unsigned long this_cpu_load(void)
- }
- 
- 
-+/*
-+ * Global load-average calculations
-+ *
-+ * We take a distributed and async approach to calculating the global load-avg
-+ * in order to minimize overhead.
-+ *
-+ * The global load average is an exponentially decaying average of nr_running +
-+ * nr_uninterruptible.
-+ *
-+ * Once every LOAD_FREQ:
-+ *
-+ *   nr_active = 0;
-+ *   for_each_possible_cpu(cpu)
-+ *   	nr_active += cpu_of(cpu)->nr_running + cpu_of(cpu)->nr_uninterruptible;
-+ *
-+ *   avenrun[n] = avenrun[0] * exp_n + nr_active * (1 - exp_n)
-+ *
-+ * Due to a number of reasons the above turns in the mess below:
-+ *
-+ *  - for_each_possible_cpu() is prohibitively expensive on machines with
-+ *    serious number of cpus, therefore we need to take a distributed approach
-+ *    to calculating nr_active.
-+ *
-+ *        \Sum_i x_i(t) = \Sum_i x_i(t) - x_i(t_0) | x_i(t_0) := 0
-+ *                      = \Sum_i { \Sum_j=1 x_i(t_j) - x_i(t_j-1) }
-+ *
-+ *    So assuming nr_active := 0 when we start out -- true per definition, we
-+ *    can simply take per-cpu deltas and fold those into a global accumulate
-+ *    to obtain the same result. See calc_load_fold_active().
-+ *
-+ *    Furthermore, in order to avoid synchronizing all per-cpu delta folding
-+ *    across the machine, we assume 10 ticks is sufficient time for every
-+ *    cpu to have completed this task.
-+ *
-+ *    This places an upper-bound on the IRQ-off latency of the machine. Then
-+ *    again, being late doesn't loose the delta, just wrecks the sample.
-+ *
-+ *  - cpu_rq()->nr_uninterruptible isn't accurately tracked per-cpu because
-+ *    this would add another cross-cpu cacheline miss and atomic operation
-+ *    to the wakeup path. Instead we increment on whatever cpu the task ran
-+ *    when it went into uninterruptible state and decrement on whatever cpu
-+ *    did the wakeup. This means that only the sum of nr_uninterruptible over
-+ *    all cpus yields the correct result.
-+ *
-+ *  This covers the NO_HZ=n code, for extra head-aches, see the comment below.
-+ */
-+
- /* Variables and functions for calc_load */
- static atomic_long_t calc_load_tasks;
- static unsigned long calc_load_update;
- unsigned long avenrun[3];
--EXPORT_SYMBOL(avenrun);
-+EXPORT_SYMBOL(avenrun); /* should be removed */
-+
-+/**
-+ * get_avenrun - get the load average array
-+ * @loads:	pointer to dest load array
-+ * @offset:	offset to add
-+ * @shift:	shift count to shift the result left
-+ *
-+ * These values are estimates at best, so no need for locking.
-+ */
-+void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
-+{
-+	loads[0] = (avenrun[0] + offset) << shift;
-+	loads[1] = (avenrun[1] + offset) << shift;
-+	loads[2] = (avenrun[2] + offset) << shift;
-+}
- 
- static long calc_load_fold_active(struct rq *this_rq)
- {
-@@ -3422,6 +3483,9 @@ static long calc_load_fold_active(struct rq *this_rq)
- 	return delta;
- }
- 
-+/*
-+ * a1 = a0 * e + a * (1 - e)
-+ */
- static unsigned long
- calc_load(unsigned long load, unsigned long exp, unsigned long active)
- {
-@@ -3433,30 +3497,118 @@ calc_load(unsigned long load, unsigned long exp, unsigned long active)
- 
- #ifdef CONFIG_NO_HZ
- /*
-- * For NO_HZ we delay the active fold to the next LOAD_FREQ update.
-+ * Handle NO_HZ for the global load-average.
-+ *
-+ * Since the above described distributed algorithm to compute the global
-+ * load-average relies on per-cpu sampling from the tick, it is affected by
-+ * NO_HZ.
-+ *
-+ * The basic idea is to fold the nr_active delta into a global idle-delta upon
-+ * entering NO_HZ state such that we can include this as an 'extra' cpu delta
-+ * when we read the global state.
-+ *
-+ * Obviously reality has to ruin such a delightfully simple scheme:
-+ *
-+ *  - When we go NO_HZ idle during the window, we can negate our sample
-+ *    contribution, causing under-accounting.
-+ *
-+ *    We avoid this by keeping two idle-delta counters and flipping them
-+ *    when the window starts, thus separating old and new NO_HZ load.
-+ *
-+ *    The only trick is the slight shift in index flip for read vs write.
-+ *
-+ *        0s            5s            10s           15s
-+ *          +10           +10           +10           +10
-+ *        |-|-----------|-|-----------|-|-----------|-|
-+ *    r:0 0 1           1 0           0 1           1 0
-+ *    w:0 1 1           0 0           1 1           0 0
-+ *
-+ *    This ensures we'll fold the old idle contribution in this window while
-+ *    accumlating the new one.
-+ *
-+ *  - When we wake up from NO_HZ idle during the window, we push up our
-+ *    contribution, since we effectively move our sample point to a known
-+ *    busy state.
-+ *
-+ *    This is solved by pushing the window forward, and thus skipping the
-+ *    sample, for this cpu (effectively using the idle-delta for this cpu which
-+ *    was in effect at the time the window opened). This also solves the issue
-+ *    of having to deal with a cpu having been in NOHZ idle for multiple
-+ *    LOAD_FREQ intervals.
-  *
-  * When making the ILB scale, we should try to pull this in as well.
-  */
--static atomic_long_t calc_load_tasks_idle;
-+static atomic_long_t calc_load_idle[2];
-+static int calc_load_idx;
- 
--static void calc_load_account_idle(struct rq *this_rq)
-+static inline int calc_load_write_idx(void)
- {
-+	int idx = calc_load_idx;
-+
-+	/*
-+	 * See calc_global_nohz(), if we observe the new index, we also
-+	 * need to observe the new update time.
-+	 */
-+	smp_rmb();
-+
-+	/*
-+	 * If the folding window started, make sure we start writing in the
-+	 * next idle-delta.
-+	 */
-+	if (!time_before(jiffies, calc_load_update))
-+		idx++;
-+
-+	return idx & 1;
-+}
-+
-+static inline int calc_load_read_idx(void)
-+{
-+	return calc_load_idx & 1;
-+}
-+
-+void calc_load_enter_idle(void)
-+{
-+	struct rq *this_rq = this_rq();
- 	long delta;
- 
-+	/*
-+	 * We're going into NOHZ mode, if there's any pending delta, fold it
-+	 * into the pending idle delta.
-+	 */
- 	delta = calc_load_fold_active(this_rq);
--	if (delta)
--		atomic_long_add(delta, &calc_load_tasks_idle);
-+	if (delta) {
-+		int idx = calc_load_write_idx();
-+		atomic_long_add(delta, &calc_load_idle[idx]);
-+	}
- }
- 
--static long calc_load_fold_idle(void)
-+void calc_load_exit_idle(void)
- {
--	long delta = 0;
-+	struct rq *this_rq = this_rq();
-+
-+	/*
-+	 * If we're still before the sample window, we're done.
-+	 */
-+	if (time_before(jiffies, this_rq->calc_load_update))
-+		return;
- 
- 	/*
--	 * Its got a race, we don't care...
-+	 * We woke inside or after the sample window, this means we're already
-+	 * accounted through the nohz accounting, so skip the entire deal and
-+	 * sync up for the next window.
- 	 */
--	if (atomic_long_read(&calc_load_tasks_idle))
--		delta = atomic_long_xchg(&calc_load_tasks_idle, 0);
-+	this_rq->calc_load_update = calc_load_update;
-+	if (time_before(jiffies, this_rq->calc_load_update + 10))
-+		this_rq->calc_load_update += LOAD_FREQ;
-+}
-+
-+static long calc_load_fold_idle(void)
-+{
-+	int idx = calc_load_read_idx();
-+	long delta = 0;
-+
-+	if (atomic_long_read(&calc_load_idle[idx]))
-+		delta = atomic_long_xchg(&calc_load_idle[idx], 0);
- 
- 	return delta;
- }
-@@ -3542,66 +3694,39 @@ static void calc_global_nohz(void)
- {
- 	long delta, active, n;
- 
--	/*
--	 * If we crossed a calc_load_update boundary, make sure to fold
--	 * any pending idle changes, the respective CPUs might have
--	 * missed the tick driven calc_load_account_active() update
--	 * due to NO_HZ.
--	 */
--	delta = calc_load_fold_idle();
--	if (delta)
--		atomic_long_add(delta, &calc_load_tasks);
--
--	/*
--	 * It could be the one fold was all it took, we done!
--	 */
--	if (time_before(jiffies, calc_load_update + 10))
--		return;
--
--	/*
--	 * Catch-up, fold however many we are behind still
--	 */
--	delta = jiffies - calc_load_update - 10;
--	n = 1 + (delta / LOAD_FREQ);
-+	if (!time_before(jiffies, calc_load_update + 10)) {
-+		/*
-+		 * Catch-up, fold however many we are behind still
-+		 */
-+		delta = jiffies - calc_load_update - 10;
-+		n = 1 + (delta / LOAD_FREQ);
- 
--	active = atomic_long_read(&calc_load_tasks);
--	active = active > 0 ? active * FIXED_1 : 0;
-+		active = atomic_long_read(&calc_load_tasks);
-+		active = active > 0 ? active * FIXED_1 : 0;
- 
--	avenrun[0] = calc_load_n(avenrun[0], EXP_1, active, n);
--	avenrun[1] = calc_load_n(avenrun[1], EXP_5, active, n);
--	avenrun[2] = calc_load_n(avenrun[2], EXP_15, active, n);
-+		avenrun[0] = calc_load_n(avenrun[0], EXP_1, active, n);
-+		avenrun[1] = calc_load_n(avenrun[1], EXP_5, active, n);
-+		avenrun[2] = calc_load_n(avenrun[2], EXP_15, active, n);
- 
--	calc_load_update += n * LOAD_FREQ;
--}
--#else
--static void calc_load_account_idle(struct rq *this_rq)
--{
--}
-+		calc_load_update += n * LOAD_FREQ;
-+	}
- 
--static inline long calc_load_fold_idle(void)
--{
--	return 0;
-+	/*
-+	 * Flip the idle index...
-+	 *
-+	 * Make sure we first write the new time then flip the index, so that
-+	 * calc_load_write_idx() will see the new time when it reads the new
-+	 * index, this avoids a double flip messing things up.
-+	 */
-+	smp_wmb();
-+	calc_load_idx++;
- }
-+#else /* !CONFIG_NO_HZ */
- 
--static void calc_global_nohz(void)
--{
--}
--#endif
-+static inline long calc_load_fold_idle(void) { return 0; }
-+static inline void calc_global_nohz(void) { }
- 
--/**
-- * get_avenrun - get the load average array
-- * @loads:	pointer to dest load array
-- * @offset:	offset to add
-- * @shift:	shift count to shift the result left
-- *
-- * These values are estimates at best, so no need for locking.
-- */
--void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
--{
--	loads[0] = (avenrun[0] + offset) << shift;
--	loads[1] = (avenrun[1] + offset) << shift;
--	loads[2] = (avenrun[2] + offset) << shift;
--}
-+#endif /* CONFIG_NO_HZ */
- 
- /*
-  * calc_load - update the avenrun load estimates 10 ticks after the
-@@ -3609,11 +3734,18 @@ void get_avenrun(unsigned long *loads, unsigned long offset, int shift)
-  */
- void calc_global_load(unsigned long ticks)
- {
--	long active;
-+	long active, delta;
- 
- 	if (time_before(jiffies, calc_load_update + 10))
- 		return;
- 
-+	/*
-+	 * Fold the 'old' idle-delta to include all NO_HZ cpus.
-+	 */
-+	delta = calc_load_fold_idle();
-+	if (delta)
-+		atomic_long_add(delta, &calc_load_tasks);
-+
- 	active = atomic_long_read(&calc_load_tasks);
- 	active = active > 0 ? active * FIXED_1 : 0;
- 
-@@ -3624,12 +3756,7 @@ void calc_global_load(unsigned long ticks)
- 	calc_load_update += LOAD_FREQ;
- 
- 	/*
--	 * Account one period with whatever state we found before
--	 * folding in the nohz state and ageing the entire idle period.
--	 *
--	 * This avoids loosing a sample when we go idle between 
--	 * calc_load_account_active() (10 ticks ago) and now and thus
--	 * under-accounting.
-+	 * In case we idled for multiple LOAD_FREQ intervals, catch up in bulk.
- 	 */
- 	calc_global_nohz();
- }
-@@ -3646,7 +3773,6 @@ static void calc_load_account_active(struct rq *this_rq)
- 		return;
- 
- 	delta  = calc_load_fold_active(this_rq);
--	delta += calc_load_fold_idle();
- 	if (delta)
- 		atomic_long_add(delta, &calc_load_tasks);
- 
-@@ -3654,6 +3780,10 @@ static void calc_load_account_active(struct rq *this_rq)
- }
- 
- /*
-+ * End of global load-average stuff
-+ */
-+
-+/*
-  * The exact cpuload at various idx values, calculated at every tick would be
-  * load = (2^idx - 1) / 2^idx * load + 1 / 2^idx * cur_load
-  *
-diff --git a/kernel/sched_idletask.c b/kernel/sched_idletask.c
-index 0a51882..be92bfe 100644
---- a/kernel/sched_idletask.c
-+++ b/kernel/sched_idletask.c
-@@ -23,7 +23,6 @@ static void check_preempt_curr_idle(struct rq *rq, struct task_struct *p, int fl
- static struct task_struct *pick_next_task_idle(struct rq *rq)
- {
- 	schedstat_inc(rq, sched_goidle);
--	calc_load_account_idle(rq);
- 	return rq->idle;
- }
- 
-diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
-index c923640..9955ebd 100644
---- a/kernel/time/tick-sched.c
-+++ b/kernel/time/tick-sched.c
-@@ -430,6 +430,7 @@ void tick_nohz_stop_sched_tick(int inidle)
- 		 */
- 		if (!ts->tick_stopped) {
- 			select_nohz_load_balancer(1);
-+			calc_load_enter_idle();
- 
- 			ts->idle_tick = hrtimer_get_expires(&ts->sched_timer);
- 			ts->tick_stopped = 1;
-@@ -563,6 +564,7 @@ void tick_nohz_restart_sched_tick(void)
- 		account_idle_ticks(ticks);
- #endif
- 
-+	calc_load_exit_idle();
- 	touch_softlockup_watchdog();
- 	/*
- 	 * Cancel the scheduled timer and restore the tick
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0029-USB-option-add-ZTE-MF60.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0029-USB-option-add-ZTE-MF60.patch
deleted file mode 100644
index 0c6d8be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0029-USB-option-add-ZTE-MF60.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 4090ab847de2c528ae152e864a7ce604ef300837 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 2 Jul 2012 19:53:55 +0200
-Subject: [PATCH 029/109] USB: option: add ZTE MF60
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 8e16e33c168a6efd0c9f7fa9dd4c1e1db9a74553 upstream.
-
-Switches into a composite device by ejecting the initial
-driver CD.  The four interfaces are: QCDM, AT, QMI/wwan
-and mass storage.  Let this driver manage the two serial
-interfaces:
-
-T:  Bus=02 Lev=01 Prnt=01 Port=01 Cnt=01 Dev#= 28 Spd=480  MxCh= 0
-D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
-P:  Vendor=19d2 ProdID=1402 Rev= 0.00
-S:  Manufacturer=ZTE,Incorporated
-S:  Product=ZTE WCDMA Technologies MSM
-S:  SerialNumber=xxxxx
-C:* #Ifs= 4 Cfg#= 1 Atr=c0 MxPwr=500mA
-I:* If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-E:  Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E:  Ad=01(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
-I:* If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
-E:  Ad=82(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E:  Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
-I:* If#= 2 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=qmi_wwan
-E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=2ms
-E:  Ad=84(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E:  Ad=03(O) Atr=02(Bulk) MxPS= 512 Ivl=4ms
-I:* If#= 3 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
-E:  Ad=04(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-E:  Ad=85(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 21a4734..5960c7b 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -553,6 +553,10 @@ static const struct option_blacklist_info net_intf1_blacklist = {
- 	.reserved = BIT(1),
- };
- 
-+static const struct option_blacklist_info net_intf2_blacklist = {
-+	.reserved = BIT(2),
-+};
-+
- static const struct option_blacklist_info net_intf3_blacklist = {
- 	.reserved = BIT(3),
- };
-@@ -1093,6 +1097,8 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff),
-+		.driver_info = (kernel_ulong_t)&net_intf2_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff,
- 	  0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0030-USB-option-Add-MEDIATEK-product-ids.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0030-USB-option-Add-MEDIATEK-product-ids.patch
deleted file mode 100644
index 0091085..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0030-USB-option-Add-MEDIATEK-product-ids.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 26b05210d9f77b9b92fb12a73da5b9f6cb1b3f07 Mon Sep 17 00:00:00 2001
-From: Gaosen Zhang <gaosen.zhang at mediatek.com>
-Date: Thu, 5 Jul 2012 21:49:00 +0800
-Subject: [PATCH 030/109] USB: option: Add MEDIATEK product ids
-
-commit aacef9c561a693341566a6850c451ce3df68cb9a upstream.
-
-Signed-off-by: Gaosen Zhang <gaosen.zhang at mediatek.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |   20 ++++++++++++++++++++
- 1 files changed, 20 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 5960c7b..5971c95 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -496,6 +496,15 @@ static void option_instat_callback(struct urb *urb);
- 
- /* MediaTek products */
- #define MEDIATEK_VENDOR_ID			0x0e8d
-+#define MEDIATEK_PRODUCT_DC_1COM		0x00a0
-+#define MEDIATEK_PRODUCT_DC_4COM		0x00a5
-+#define MEDIATEK_PRODUCT_DC_5COM		0x00a4
-+#define MEDIATEK_PRODUCT_7208_1COM		0x7101
-+#define MEDIATEK_PRODUCT_7208_2COM		0x7102
-+#define MEDIATEK_PRODUCT_FP_1COM		0x0003
-+#define MEDIATEK_PRODUCT_FP_2COM		0x0023
-+#define MEDIATEK_PRODUCT_FPDC_1COM		0x0043
-+#define MEDIATEK_PRODUCT_FPDC_2COM		0x0033
- 
- /* Cellient products */
- #define CELLIENT_VENDOR_ID			0x2692
-@@ -1240,6 +1249,17 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a1, 0xff, 0x02, 0x01) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x00, 0x00) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, 0x00a2, 0xff, 0x02, 0x01) },        /* MediaTek MT6276M modem & app port */
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_1COM, 0x0a, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x02, 0x01) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_5COM, 0xff, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x02, 0x01) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_DC_4COM, 0xff, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_1COM, 0x02, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_7208_2COM, 0x02, 0x02, 0x01) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_1COM, 0x0a, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FP_2COM, 0x0a, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_1COM, 0x0a, 0x00, 0x00) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(MEDIATEK_VENDOR_ID, MEDIATEK_PRODUCT_FPDC_2COM, 0x0a, 0x00, 0x00) },
- 	{ USB_DEVICE(CELLIENT_VENDOR_ID, CELLIENT_PRODUCT_MEN200) },
- 	{ } /* Terminating entry */
- };
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0031-USB-cdc-wdm-fix-lockup-on-error-in-wdm_read.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0031-USB-cdc-wdm-fix-lockup-on-error-in-wdm_read.patch
deleted file mode 100644
index 3fb9fae..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0031-USB-cdc-wdm-fix-lockup-on-error-in-wdm_read.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 6fb488dec8482c866a2c7cd4d1da06b85b8b28c7 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 2 Jul 2012 10:33:14 +0200
-Subject: [PATCH 031/109] USB: cdc-wdm: fix lockup on error in wdm_read
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b086b6b10d9f182cd8d2f0dcfd7fd11edba93fc9 upstream.
-
-Clear the WDM_READ flag on empty reads to avoid running
-forever in an infinite tight loop, causing lockups:
-
-Jul  1 21:58:11 nemi kernel: [ 3658.898647] qmi_wwan 2-1:1.2: Unexpected error -71
-Jul  1 21:58:36 nemi kernel: [ 3684.072021] BUG: soft lockup - CPU#0 stuck for 23s! [qmi.pl:12235]
-Jul  1 21:58:36 nemi kernel: [ 3684.072212] CPU 0
-Jul  1 21:58:36 nemi kernel: [ 3684.072355]
-Jul  1 21:58:36 nemi kernel: [ 3684.072367] Pid: 12235, comm: qmi.pl Tainted: P           O 3.5.0-rc2+ #13 LENOVO 2776LEG/2776LEG
-Jul  1 21:58:36 nemi kernel: [ 3684.072383] RIP: 0010:[<ffffffffa0635008>]  [<ffffffffa0635008>] spin_unlock_irq+0x8/0xc [cdc_wdm]
-Jul  1 21:58:36 nemi kernel: [ 3684.072388] RSP: 0018:ffff88022dca1e70  EFLAGS: 00000282
-Jul  1 21:58:36 nemi kernel: [ 3684.072393] RAX: ffff88022fc3f650 RBX: ffffffff811c56f7 RCX: 00000001000ce8c1
-Jul  1 21:58:36 nemi kernel: [ 3684.072398] RDX: 0000000000000010 RSI: 000000000267d810 RDI: ffff88022fc3f650
-Jul  1 21:58:36 nemi kernel: [ 3684.072403] RBP: ffff88022dca1eb0 R08: ffffffffa063578e R09: 0000000000000000
-Jul  1 21:58:36 nemi kernel: [ 3684.072407] R10: 0000000000000008 R11: 0000000000000246 R12: 0000000000000002
-Jul  1 21:58:36 nemi kernel: [ 3684.072412] R13: 0000000000000246 R14: ffffffff00000002 R15: ffff8802281d8c88
-Jul  1 21:58:36 nemi kernel: [ 3684.072418] FS:  00007f666a260700(0000) GS:ffff88023bc00000(0000) knlGS:0000000000000000
-Jul  1 21:58:36 nemi kernel: [ 3684.072423] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
-Jul  1 21:58:36 nemi kernel: [ 3684.072428] CR2: 000000000270d9d8 CR3: 000000022e865000 CR4: 00000000000007f0
-Jul  1 21:58:36 nemi kernel: [ 3684.072433] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-Jul  1 21:58:36 nemi kernel: [ 3684.072438] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-Jul  1 21:58:36 nemi kernel: [ 3684.072444] Process qmi.pl (pid: 12235, threadinfo ffff88022dca0000, task ffff88022ff76380)
-Jul  1 21:58:36 nemi kernel: [ 3684.072448] Stack:
-Jul  1 21:58:36 nemi kernel: [ 3684.072458]  ffffffffa063592e 0000000100020000 ffff88022fc3f650 ffff88022fc3f6a8
-Jul  1 21:58:36 nemi kernel: [ 3684.072466]  0000000000000200 0000000100000000 000000000267d810 0000000000000000
-Jul  1 21:58:36 nemi kernel: [ 3684.072475]  0000000000000000 ffff880212cfb6d0 0000000000000200 ffff880212cfb6c0
-Jul  1 21:58:36 nemi kernel: [ 3684.072479] Call Trace:
-Jul  1 21:58:36 nemi kernel: [ 3684.072489]  [<ffffffffa063592e>] ? wdm_read+0x1a0/0x263 [cdc_wdm]
-Jul  1 21:58:36 nemi kernel: [ 3684.072500]  [<ffffffff8110adb7>] ? vfs_read+0xa1/0xfb
-Jul  1 21:58:36 nemi kernel: [ 3684.072509]  [<ffffffff81040589>] ? alarm_setitimer+0x35/0x64
-Jul  1 21:58:36 nemi kernel: [ 3684.072517]  [<ffffffff8110aec7>] ? sys_read+0x45/0x6e
-Jul  1 21:58:36 nemi kernel: [ 3684.072525]  [<ffffffff813725f9>] ? system_call_fastpath+0x16/0x1b
-Jul  1 21:58:36 nemi kernel: [ 3684.072557] Code: <66> 66 90 c3 83 ff ed 89 f8 74 16 7f 06 83 ff a1 75 0a c3 83 ff f4
-
-The WDM_READ flag is normally cleared by wdm_int_callback
-before resubmitting the read urb, and set by wdm_in_callback
-when this urb returns with data or an error.  But a crashing
-device may cause both a read error and cancelling all urbs.
-Make sure that the flag is cleared by wdm_read if the buffer
-is empty.
-
-We don't clear the flag on errors, as there may be pending
-data in the buffer which should be processed.  The flag will
-instead be cleared on the next wdm_read call.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Acked-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/class/cdc-wdm.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 19fb5fa..9aaed0d 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -473,6 +473,8 @@ retry:
- 			goto retry;
- 		}
- 		if (!desc->reslength) { /* zero length read */
-+			dev_dbg(&desc->intf->dev, "%s: zero length - clearing WDM_READ\n", __func__);
-+			clear_bit(WDM_READ, &desc->flags);
- 			spin_unlock_irq(&desc->iuspin);
- 			goto retry;
- 		}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0032-mtd-nandsim-don-t-open-code-a-do_div-helper.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0032-mtd-nandsim-don-t-open-code-a-do_div-helper.patch
deleted file mode 100644
index e96b5c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0032-mtd-nandsim-don-t-open-code-a-do_div-helper.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From bb5561cb838492a05e5dae25114d768828fe2dfe Mon Sep 17 00:00:00 2001
-From: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
-Date: Wed, 16 May 2012 16:21:52 -0300
-Subject: [PATCH 032/109] mtd: nandsim: don't open code a do_div helper
-
-commit 596fd46268634082314b3af1ded4612e1b7f3f03 upstream.
-
-We don't need to open code the divide function, just use div_u64 that
-already exists and do the same job. While this is a straightforward
-clean up, there is more to that, the real motivation for this.
-
-While building on a cross compiling environment in armel, using gcc
-4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5), I was getting the following build
-error:
-
-ERROR: "__aeabi_uldivmod" [drivers/mtd/nand/nandsim.ko] undefined!
-
-After investigating with objdump and hand built assembly version
-generated with the compiler, I narrowed __aeabi_uldivmod as being
-generated from the divide function. When nandsim.c is built with
--fno-inline-functions-called-once, that happens when
-CONFIG_DEBUG_SECTION_MISMATCH is enabled, the do_div optimization in
-arch/arm/include/asm/div64.h doesn't work as expected with the open
-coded divide function: even if the do_div we are using doesn't have a
-constant divisor, the compiler still includes the else parts of the
-optimized do_div macro, and translates the divisions there to use
-__aeabi_uldivmod, instead of only calling __do_div_asm -> __do_div64 and
-optimizing/removing everything else out.
-
-So to reproduce, gcc 4.6 plus CONFIG_DEBUG_SECTION_MISMATCH=y and
-CONFIG_MTD_NAND_NANDSIM=m should do it, building on armel.
-
-After this change, the compiler does the intended thing even with
--fno-inline-functions-called-once, and optimizes out as expected the
-constant handling in the optimized do_div on arm. As this also avoids a
-build issue, I'm marking for Stable, as I think is applicable for this
-case.
-
-Signed-off-by: Herton Ronaldo Krzesinski <herton.krzesinski at canonical.com>
-Acked-by: Nicolas Pitre <nico at linaro.org>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mtd/nand/nandsim.c |   12 +++---------
- 1 files changed, 3 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/mtd/nand/nandsim.c b/drivers/mtd/nand/nandsim.c
-index 34c03be..83e8e1b 100644
---- a/drivers/mtd/nand/nandsim.c
-+++ b/drivers/mtd/nand/nandsim.c
-@@ -28,7 +28,7 @@
- #include <linux/module.h>
- #include <linux/moduleparam.h>
- #include <linux/vmalloc.h>
--#include <asm/div64.h>
-+#include <linux/math64.h>
- #include <linux/slab.h>
- #include <linux/errno.h>
- #include <linux/string.h>
-@@ -547,12 +547,6 @@ static char *get_partition_name(int i)
- 	return kstrdup(buf, GFP_KERNEL);
- }
- 
--static uint64_t divide(uint64_t n, uint32_t d)
--{
--	do_div(n, d);
--	return n;
--}
--
- /*
-  * Initialize the nandsim structure.
-  *
-@@ -581,7 +575,7 @@ static int init_nandsim(struct mtd_info *mtd)
- 	ns->geom.oobsz    = mtd->oobsize;
- 	ns->geom.secsz    = mtd->erasesize;
- 	ns->geom.pgszoob  = ns->geom.pgsz + ns->geom.oobsz;
--	ns->geom.pgnum    = divide(ns->geom.totsz, ns->geom.pgsz);
-+	ns->geom.pgnum    = div_u64(ns->geom.totsz, ns->geom.pgsz);
- 	ns->geom.totszoob = ns->geom.totsz + (uint64_t)ns->geom.pgnum * ns->geom.oobsz;
- 	ns->geom.secshift = ffs(ns->geom.secsz) - 1;
- 	ns->geom.pgshift  = chip->page_shift;
-@@ -924,7 +918,7 @@ static int setup_wear_reporting(struct mtd_info *mtd)
- 
- 	if (!rptwear)
- 		return 0;
--	wear_eb_count = divide(mtd->size, mtd->erasesize);
-+	wear_eb_count = div_u64(mtd->size, mtd->erasesize);
- 	mem = wear_eb_count * sizeof(unsigned long);
- 	if (mem / sizeof(unsigned long) != wear_eb_count) {
- 		NS_ERR("Too many erase blocks for wear reporting\n");
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0033-dvb-core-Release-semaphore-on-error-path-dvb_registe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0033-dvb-core-Release-semaphore-on-error-path-dvb_registe.patch
deleted file mode 100644
index 4ad1726..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0033-dvb-core-Release-semaphore-on-error-path-dvb_registe.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9b4b8dd705a1a7f9c4b7c2128663d2e31b1d0265 Mon Sep 17 00:00:00 2001
-From: Santosh Nayak <santoshprasadnayak at gmail.com>
-Date: Sat, 23 Jun 2012 07:59:54 -0300
-Subject: [PATCH 033/109] dvb-core: Release semaphore on error path
- dvb_register_device()
-
-commit 82163edcdfa4eb3d74516cc8e9f38dd3d039b67d upstream.
-
-There is a missing "up_write()" here. Semaphore should be released
-before returning error value.
-
-Signed-off-by: Santosh Nayak <santoshprasadnayak at gmail.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/dvb/dvb-core/dvbdev.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/media/dvb/dvb-core/dvbdev.c b/drivers/media/dvb/dvb-core/dvbdev.c
-index f732877..d5cda35 100644
---- a/drivers/media/dvb/dvb-core/dvbdev.c
-+++ b/drivers/media/dvb/dvb-core/dvbdev.c
-@@ -243,6 +243,7 @@ int dvb_register_device(struct dvb_adapter *adap, struct dvb_device **pdvbdev,
- 	if (minor == MAX_DVB_MINORS) {
- 		kfree(dvbdevfops);
- 		kfree(dvbdev);
-+		up_write(&minor_rwsem);
- 		mutex_unlock(&dvbdev_register_lock);
- 		return -EINVAL;
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0034-hwspinlock-core-use-global-ID-to-register-hwspinlock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0034-hwspinlock-core-use-global-ID-to-register-hwspinlock.patch
deleted file mode 100644
index 11ba36d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0034-hwspinlock-core-use-global-ID-to-register-hwspinlock.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 6c6190dbd1e0054c77445ed61dcbc70db441d4d2 Mon Sep 17 00:00:00 2001
-From: Shinya Kuribayashi <shinya.kuribayashi.px at renesas.com>
-Date: Sat, 7 Jul 2012 13:37:42 +0300
-Subject: [PATCH 034/109] hwspinlock/core: use global ID to register
- hwspinlocks on multiple devices
-
-commit 476a7eeb60e70ddab138e7cb4bc44ef5ac20782e upstream.
-
-Commit 300bab9770 (hwspinlock/core: register a bank of hwspinlocks in a
-single API call, 2011-09-06) introduced 'hwspin_lock_register_single()'
-to register numerous (a bank of) hwspinlock instances in a single API,
-'hwspin_lock_register()'.
-
-At which time, 'hwspin_lock_register()' accidentally passes 'local IDs'
-to 'hwspin_lock_register_single()', despite that ..._single() requires
-'global IDs' to register hwspinlocks.
-
-We have to convert into global IDs by supplying the missing 'base_id'.
-
-Signed-off-by: Shinya Kuribayashi <shinya.kuribayashi.px at renesas.com>
-[ohad: fix error path of hwspin_lock_register, too]
-Signed-off-by: Ohad Ben-Cohen <ohad at wizery.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwspinlock/hwspinlock_core.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/hwspinlock/hwspinlock_core.c b/drivers/hwspinlock/hwspinlock_core.c
-index 61c9cf1..1201a15 100644
---- a/drivers/hwspinlock/hwspinlock_core.c
-+++ b/drivers/hwspinlock/hwspinlock_core.c
-@@ -345,7 +345,7 @@ int hwspin_lock_register(struct hwspinlock_device *bank, struct device *dev,
- 		spin_lock_init(&hwlock->lock);
- 		hwlock->bank = bank;
- 
--		ret = hwspin_lock_register_single(hwlock, i);
-+		ret = hwspin_lock_register_single(hwlock, base_id + i);
- 		if (ret)
- 			goto reg_failed;
- 	}
-@@ -354,7 +354,7 @@ int hwspin_lock_register(struct hwspinlock_device *bank, struct device *dev,
- 
- reg_failed:
- 	while (--i >= 0)
--		hwspin_lock_unregister_single(i);
-+		hwspin_lock_unregister_single(base_id + i);
- 	return ret;
- }
- EXPORT_SYMBOL_GPL(hwspin_lock_register);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0035-libsas-fix-taskfile-corruption-in-sas_ata_qc_fill_rt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0035-libsas-fix-taskfile-corruption-in-sas_ata_qc_fill_rt.patch
deleted file mode 100644
index 88c7627..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0035-libsas-fix-taskfile-corruption-in-sas_ata_qc_fill_rt.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 65719aa5de077d1ccbfe535e9b934d6e91d11601 Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Fri, 22 Jun 2012 10:52:34 -0700
-Subject: [PATCH 035/109] libsas: fix taskfile corruption in
- sas_ata_qc_fill_rtf
-
-commit 6ef1b512f4e6f936d89aa20be3d97a7ec7c290ac upstream.
-
-fill_result_tf() grabs the taskfile flags from the originating qc which
-sas_ata_qc_fill_rtf() promptly overwrites.  The presence of an
-ata_taskfile in the sata_device makes it tempting to just copy the full
-contents in sas_ata_qc_fill_rtf().  However, libata really only wants
-the fis contents and expects the other portions of the taskfile to not
-be touched by ->qc_fill_rtf.  To that end store a fis buffer in the
-sata_device and use ata_tf_from_fis() like every other ->qc_fill_rtf()
-implementation.
-
-Reported-by: Praveen Murali <pmurali at logicube.com>
-Tested-by: Praveen Murali <pmurali at logicube.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/aic94xx/aic94xx_task.c |    2 +-
- drivers/scsi/libsas/sas_ata.c       |   12 ++++++------
- include/scsi/libsas.h               |    6 ++++--
- 3 files changed, 11 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/scsi/aic94xx/aic94xx_task.c b/drivers/scsi/aic94xx/aic94xx_task.c
-index 532d212..393e7ce 100644
---- a/drivers/scsi/aic94xx/aic94xx_task.c
-+++ b/drivers/scsi/aic94xx/aic94xx_task.c
-@@ -201,7 +201,7 @@ static void asd_get_response_tasklet(struct asd_ascb *ascb,
- 
- 		if (SAS_STATUS_BUF_SIZE >= sizeof(*resp)) {
- 			resp->frame_len = le16_to_cpu(*(__le16 *)(r+6));
--			memcpy(&resp->ending_fis[0], r+16, 24);
-+			memcpy(&resp->ending_fis[0], r+16, ATA_RESP_FIS_SIZE);
- 			ts->buf_valid_size = sizeof(*resp);
- 		}
- 	}
-diff --git a/drivers/scsi/libsas/sas_ata.c b/drivers/scsi/libsas/sas_ata.c
-index db9238f..4868fc9 100644
---- a/drivers/scsi/libsas/sas_ata.c
-+++ b/drivers/scsi/libsas/sas_ata.c
-@@ -112,12 +112,12 @@ static void sas_ata_task_done(struct sas_task *task)
- 	if (stat->stat == SAS_PROTO_RESPONSE || stat->stat == SAM_STAT_GOOD ||
- 	    ((stat->stat == SAM_STAT_CHECK_CONDITION &&
- 	      dev->sata_dev.command_set == ATAPI_COMMAND_SET))) {
--		ata_tf_from_fis(resp->ending_fis, &dev->sata_dev.tf);
-+		memcpy(dev->sata_dev.fis, resp->ending_fis, ATA_RESP_FIS_SIZE);
- 
- 		if (!link->sactive) {
--			qc->err_mask |= ac_err_mask(dev->sata_dev.tf.command);
-+			qc->err_mask |= ac_err_mask(dev->sata_dev.fis[2]);
- 		} else {
--			link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.tf.command);
-+			link->eh_info.err_mask |= ac_err_mask(dev->sata_dev.fis[2]);
- 			if (unlikely(link->eh_info.err_mask))
- 				qc->flags |= ATA_QCFLAG_FAILED;
- 		}
-@@ -138,8 +138,8 @@ static void sas_ata_task_done(struct sas_task *task)
- 				qc->flags |= ATA_QCFLAG_FAILED;
- 			}
- 
--			dev->sata_dev.tf.feature = 0x04; /* status err */
--			dev->sata_dev.tf.command = ATA_ERR;
-+			dev->sata_dev.fis[3] = 0x04; /* status err */
-+			dev->sata_dev.fis[2] = ATA_ERR;
- 		}
- 	}
- 
-@@ -252,7 +252,7 @@ static bool sas_ata_qc_fill_rtf(struct ata_queued_cmd *qc)
- {
- 	struct domain_device *dev = qc->ap->private_data;
- 
--	memcpy(&qc->result_tf, &dev->sata_dev.tf, sizeof(qc->result_tf));
-+	ata_tf_from_fis(dev->sata_dev.fis, &qc->result_tf);
- 	return true;
- }
- 
-diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
-index 6a308d4..1e100c6 100644
---- a/include/scsi/libsas.h
-+++ b/include/scsi/libsas.h
-@@ -159,6 +159,8 @@ enum ata_command_set {
-         ATAPI_COMMAND_SET = 1,
- };
- 
-+#define ATA_RESP_FIS_SIZE 24
-+
- struct sata_device {
-         enum   ata_command_set command_set;
-         struct smp_resp        rps_resp; /* report_phy_sata_resp */
-@@ -170,7 +172,7 @@ struct sata_device {
- 
- 	struct ata_port *ap;
- 	struct ata_host ata_host;
--	struct ata_taskfile tf;
-+	u8     fis[ATA_RESP_FIS_SIZE];
- 	u32 sstatus;
- 	u32 serror;
- 	u32 scontrol;
-@@ -486,7 +488,7 @@ enum exec_status {
-  */
- struct ata_task_resp {
- 	u16  frame_len;
--	u8   ending_fis[24];	  /* dev to host or data-in */
-+	u8   ending_fis[ATA_RESP_FIS_SIZE];	  /* dev to host or data-in */
- 	u32  sstatus;
- 	u32  serror;
- 	u32  scontrol;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0036-md-raid1-fix-use-after-free-bug-in-RAID1-data-check-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0036-md-raid1-fix-use-after-free-bug-in-RAID1-data-check-.patch
deleted file mode 100644
index 442a6e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0036-md-raid1-fix-use-after-free-bug-in-RAID1-data-check-.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 2710006f98cf587ce6b3108f543689de1bb6d60b Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Mon, 9 Jul 2012 11:34:13 +1000
-Subject: [PATCH 036/109] md/raid1: fix use-after-free bug in RAID1 data-check
- code.
-
-commit 2d4f4f3384d4ef4f7c571448e803a1ce721113d5 upstream.
-
-This bug has been present ever since data-check was introduce
-in 2.6.16.  However it would only fire if a data-check were
-done on a degraded array, which was only possible if the array
-has 3 or more devices.  This is certainly possible, but is quite
-uncommon.
-
-Since hot-replace was added in 3.3 it can happen more often as
-the same condition can arise if not all possible replacements are
-present.
-
-The problem is that as soon as we submit the last read request, the
-'r1_bio' structure could be freed at any time, so we really should
-stop looking at it.  If the last device is being read from we will
-stop looking at it.  However if the last device is not due to be read
-from, we will still check the bio pointer in the r1_bio, but the
-r1_bio might already be free.
-
-So use the read_targets counter to make sure we stop looking for bios
-to submit as soon as we have submitted them all.
-
-This fix is suitable for any -stable kernel since 2.6.16.
-
-Reported-by: Arnold Schulz <arnysch at gmx.net>
-Signed-off-by: NeilBrown <neilb at suse.de>
-[bwh: Backported to 3.2: no doubling of conf->raid_disks; we don't have
- hot-replace support]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid1.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index 7af60ec..58f0055 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -2378,9 +2378,10 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipp
- 	 */
- 	if (test_bit(MD_RECOVERY_REQUESTED, &mddev->recovery)) {
- 		atomic_set(&r1_bio->remaining, read_targets);
--		for (i=0; i<conf->raid_disks; i++) {
-+		for (i = 0; i < conf->raid_disks && read_targets; i++) {
- 			bio = r1_bio->bios[i];
- 			if (bio->bi_end_io == end_sync_read) {
-+				read_targets--;
- 				md_sync_acct(bio->bi_bdev, nr_sectors);
- 				generic_make_request(bio);
- 			}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0037-PCI-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0037-PCI-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch
deleted file mode 100644
index a5540c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0037-PCI-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch
+++ /dev/null
@@ -1,166 +0,0 @@
-From 45cd1f6207fb66990e5f25e11fb4cd9486c31794 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Mon, 9 Jul 2012 11:09:21 -0400
-Subject: [PATCH 037/109] PCI: EHCI: fix crash during suspend on ASUS
- computers
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit dbf0e4c7257f8d684ec1a3c919853464293de66e upstream.
-
-Quite a few ASUS computers experience a nasty problem, related to the
-EHCI controllers, when going into system suspend.  It was observed
-that the problem didn't occur if the controllers were not put into the
-D3 power state before starting the suspend, and commit
-151b61284776be2d6f02d48c23c3625678960b97 (USB: EHCI: fix crash during
-suspend on ASUS computers) was created to do this.
-
-It turned out this approach messed up other computers that didn't have
-the problem -- it prevented USB wakeup from working.  Consequently
-commit c2fb8a3fa25513de8fedb38509b1f15a5bbee47b (USB: add
-NO_D3_DURING_SLEEP flag and revert 151b61284776be2) was merged; it
-reverted the earlier commit and added a whitelist of known good board
-names.
-
-Now we know the actual cause of the problem.  Thanks to AceLan Kao for
-tracking it down.
-
-According to him, an engineer at ASUS explained that some of their
-BIOSes contain a bug that was added in an attempt to work around a
-problem in early versions of Windows.  When the computer goes into S3
-suspend, the BIOS tries to verify that the EHCI controllers were first
-quiesced by the OS.  Nothing's wrong with this, but the BIOS does it
-by checking that the PCI COMMAND registers contain 0 without checking
-the controllers' power state.  If the register isn't 0, the BIOS
-assumes the controller needs to be quiesced and tries to do so.  This
-involves making various MMIO accesses to the controller, which don't
-work very well if the controller is already in D3.  The end result is
-a system hang or memory corruption.
-
-Since the value in the PCI COMMAND register doesn't matter once the
-controller has been suspended, and since the value will be restored
-anyway when the controller is resumed, we can work around the BIOS bug
-simply by setting the register to 0 during system suspend.  This patch
-(as1590) does so and also reverts the second commit mentioned above,
-which is now unnecessary.
-
-In theory we could do this for every PCI device.  However to avoid
-introducing new problems, the patch restricts itself to EHCI host
-controllers.
-
-Finally the affected systems can suspend with USB wakeup working
-properly.
-
-Reference: https://bugzilla.kernel.org/show_bug.cgi?id=37632
-Reference: https://bugzilla.kernel.org/show_bug.cgi?id=42728
-Based-on-patch-by: AceLan Kao <acelan.kao at canonical.com>
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Tested-by: Dâniel Fraga <fragabr at gmail.com>
-Tested-by: Javier Marcet <jmarcet at gmail.com>
-Tested-by: Andrey Rahmatullin <wrar at wrar.name>
-Tested-by: Oleksij Rempel <bug-track at fisher-privat.net>
-Tested-by: Pavel Pisa <pisa at cmp.felk.cvut.cz>
-Acked-by: Bjorn Helgaas <bhelgaas at google.com>
-Acked-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/pci/pci-driver.c |   12 ++++++++++++
- drivers/pci/pci.c        |    5 -----
- drivers/pci/quirks.c     |   26 --------------------------
- include/linux/pci.h      |    2 --
- 4 files changed, 12 insertions(+), 33 deletions(-)
-
-diff --git a/drivers/pci/pci-driver.c b/drivers/pci/pci-driver.c
-index 12d1e81..d024f83 100644
---- a/drivers/pci/pci-driver.c
-+++ b/drivers/pci/pci-driver.c
-@@ -742,6 +742,18 @@ static int pci_pm_suspend_noirq(struct device *dev)
- 
- 	pci_pm_set_unknown_state(pci_dev);
- 
-+	/*
-+	 * Some BIOSes from ASUS have a bug: If a USB EHCI host controller's
-+	 * PCI COMMAND register isn't 0, the BIOS assumes that the controller
-+	 * hasn't been quiesced and tries to turn it off.  If the controller
-+	 * is already in D3, this can hang or cause memory corruption.
-+	 *
-+	 * Since the value of the COMMAND register doesn't matter once the
-+	 * device has been suspended, we can safely set it to 0 here.
-+	 */
-+	if (pci_dev->class == PCI_CLASS_SERIAL_USB_EHCI)
-+		pci_write_config_word(pci_dev, PCI_COMMAND, 0);
-+
- 	return 0;
- }
- 
-diff --git a/drivers/pci/pci.c b/drivers/pci/pci.c
-index e5b75eb..6d4a531 100644
---- a/drivers/pci/pci.c
-+++ b/drivers/pci/pci.c
-@@ -1689,11 +1689,6 @@ int pci_prepare_to_sleep(struct pci_dev *dev)
- 	if (target_state == PCI_POWER_ERROR)
- 		return -EIO;
- 
--	/* Some devices mustn't be in D3 during system sleep */
--	if (target_state == PCI_D3hot &&
--			(dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP))
--		return 0;
--
- 	pci_enable_wake(dev, target_state, device_may_wakeup(&dev->dev));
- 
- 	error = pci_set_power_state(dev, target_state);
-diff --git a/drivers/pci/quirks.c b/drivers/pci/quirks.c
-index 3c56fec..78fda9c 100644
---- a/drivers/pci/quirks.c
-+++ b/drivers/pci/quirks.c
-@@ -2940,32 +2940,6 @@ static void __devinit disable_igfx_irq(struct pci_dev *dev)
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x0102, disable_igfx_irq);
- DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x010a, disable_igfx_irq);
- 
--/*
-- * The Intel 6 Series/C200 Series chipset's EHCI controllers on many
-- * ASUS motherboards will cause memory corruption or a system crash
-- * if they are in D3 while the system is put into S3 sleep.
-- */
--static void __devinit asus_ehci_no_d3(struct pci_dev *dev)
--{
--	const char *sys_info;
--	static const char good_Asus_board[] = "P8Z68-V";
--
--	if (dev->dev_flags & PCI_DEV_FLAGS_NO_D3_DURING_SLEEP)
--		return;
--	if (dev->subsystem_vendor != PCI_VENDOR_ID_ASUSTEK)
--		return;
--	sys_info = dmi_get_system_info(DMI_BOARD_NAME);
--	if (sys_info && memcmp(sys_info, good_Asus_board,
--			sizeof(good_Asus_board) - 1) == 0)
--		return;
--
--	dev_info(&dev->dev, "broken D3 during system sleep on ASUS\n");
--	dev->dev_flags |= PCI_DEV_FLAGS_NO_D3_DURING_SLEEP;
--	device_set_wakeup_capable(&dev->dev, false);
--}
--DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c26, asus_ehci_no_d3);
--DECLARE_PCI_FIXUP_FINAL(PCI_VENDOR_ID_INTEL, 0x1c2d, asus_ehci_no_d3);
--
- static void pci_do_fixups(struct pci_dev *dev, struct pci_fixup *f,
- 			  struct pci_fixup *end)
- {
-diff --git a/include/linux/pci.h b/include/linux/pci.h
-index c0cfa0d..7cda65b 100644
---- a/include/linux/pci.h
-+++ b/include/linux/pci.h
-@@ -176,8 +176,6 @@ enum pci_dev_flags {
- 	PCI_DEV_FLAGS_NO_D3 = (__force pci_dev_flags_t) 2,
- 	/* Provide indication device is assigned by a Virtual Machine Manager */
- 	PCI_DEV_FLAGS_ASSIGNED = (__force pci_dev_flags_t) 4,
--	/* Device causes system crash if in D3 during S3 sleep */
--	PCI_DEV_FLAGS_NO_D3_DURING_SLEEP = (__force pci_dev_flags_t) 8,
- };
- 
- enum pci_irq_reroute_variant {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0038-memory-hotplug-fix-invalid-memory-access-caused-by-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0038-memory-hotplug-fix-invalid-memory-access-caused-by-s.patch
deleted file mode 100644
index 5d3cef2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0038-memory-hotplug-fix-invalid-memory-access-caused-by-s.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From c9a4beeb70f62ec5976dcbb9086683fda56d6aec Mon Sep 17 00:00:00 2001
-From: Jiang Liu <jiang.liu at huawei.com>
-Date: Wed, 11 Jul 2012 14:01:52 -0700
-Subject: [PATCH 038/109] memory hotplug: fix invalid memory access caused by
- stale kswapd pointer
-
-commit d8adde17e5f858427504725218c56aef90e90fc7 upstream.
-
-kswapd_stop() is called to destroy the kswapd work thread when all memory
-of a NUMA node has been offlined.  But kswapd_stop() only terminates the
-work thread without resetting NODE_DATA(nid)->kswapd to NULL.  The stale
-pointer will prevent kswapd_run() from creating a new work thread when
-adding memory to the memory-less NUMA node again.  Eventually the stale
-pointer may cause invalid memory access.
-
-An example stack dump as below. It's reproduced with 2.6.32, but latest
-kernel has the same issue.
-
-  BUG: unable to handle kernel NULL pointer dereference at (null)
-  IP: [<ffffffff81051a94>] exit_creds+0x12/0x78
-  PGD 0
-  Oops: 0000 [#1] SMP
-  last sysfs file: /sys/devices/system/memory/memory391/state
-  CPU 11
-  Modules linked in: cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq microcode fuse loop dm_mod tpm_tis rtc_cmos i2c_i801 rtc_core tpm serio_raw pcspkr sg tpm_bios igb i2c_core iTCO_wdt rtc_lib mptctl iTCO_vendor_support button dca bnx2 usbhid hid uhci_hcd ehci_hcd usbcore sd_mod crc_t10dif edd ext3 mbcache jbd fan ide_pci_generic ide_core ata_generic ata_piix libata thermal processor thermal_sys hwmon mptsas mptscsih mptbase scsi_transport_sas scsi_mod
-  Pid: 7949, comm: sh Not tainted 2.6.32.12-qiuxishi-5-default #92 Tecal RH2285
-  RIP: 0010:exit_creds+0x12/0x78
-  RSP: 0018:ffff8806044f1d78  EFLAGS: 00010202
-  RAX: 0000000000000000 RBX: ffff880604f22140 RCX: 0000000000019502
-  RDX: 0000000000000000 RSI: 0000000000000202 RDI: 0000000000000000
-  RBP: ffff880604f22150 R08: 0000000000000000 R09: ffffffff81a4dc10
-  R10: 00000000000032a0 R11: ffff880006202500 R12: 0000000000000000
-  R13: 0000000000c40000 R14: 0000000000008000 R15: 0000000000000001
-  FS:  00007fbc03d066f0(0000) GS:ffff8800282e0000(0000) knlGS:0000000000000000
-  CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-  CR2: 0000000000000000 CR3: 000000060f029000 CR4: 00000000000006e0
-  DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-  DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-  Process sh (pid: 7949, threadinfo ffff8806044f0000, task ffff880603d7c600)
-  Stack:
-   ffff880604f22140 ffffffff8103aac5 ffff880604f22140 ffffffff8104d21e
-   ffff880006202500 0000000000008000 0000000000c38000 ffffffff810bd5b1
-   0000000000000000 ffff880603d7c600 00000000ffffdd29 0000000000000003
-  Call Trace:
-    __put_task_struct+0x5d/0x97
-    kthread_stop+0x50/0x58
-    offline_pages+0x324/0x3da
-    memory_block_change_state+0x179/0x1db
-    store_mem_state+0x9e/0xbb
-    sysfs_write_file+0xd0/0x107
-    vfs_write+0xad/0x169
-    sys_write+0x45/0x6e
-    system_call_fastpath+0x16/0x1b
-  Code: ff 4d 00 0f 94 c0 84 c0 74 08 48 89 ef e8 1f fd ff ff 5b 5d 31 c0 41 5c c3 53 48 8b 87 20 06 00 00 48 89 fb 48 8b bf 18 06 00 00 <8b> 00 48 c7 83 18 06 00 00 00 00 00 00 f0 ff 0f 0f 94 c0 84 c0
-  RIP  exit_creds+0x12/0x78
-   RSP <ffff8806044f1d78>
-  CR2: 0000000000000000
-
-[akpm at linux-foundation.org: add pglist_data.kswapd locking comments]
-Signed-off-by: Xishi Qiu <qiuxishi at huawei.com>
-Signed-off-by: Jiang Liu <jiang.liu at huawei.com>
-Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Acked-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Acked-by: David Rientjes <rientjes at google.com>
-Reviewed-by: Minchan Kim <minchan at kernel.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/mmzone.h |    2 +-
- mm/vmscan.c            |    7 +++++--
- 2 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
-index 188cb2f..905b1e1 100644
---- a/include/linux/mmzone.h
-+++ b/include/linux/mmzone.h
-@@ -652,7 +652,7 @@ typedef struct pglist_data {
- 					     range, including holes */
- 	int node_id;
- 	wait_queue_head_t kswapd_wait;
--	struct task_struct *kswapd;
-+	struct task_struct *kswapd;	/* Protected by lock_memory_hotplug() */
- 	int kswapd_max_order;
- 	enum zone_type classzone_idx;
- } pg_data_t;
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index fbe2d2c..72cf498 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -3090,14 +3090,17 @@ int kswapd_run(int nid)
- }
- 
- /*
-- * Called by memory hotplug when all memory in a node is offlined.
-+ * Called by memory hotplug when all memory in a node is offlined.  Caller must
-+ * hold lock_memory_hotplug().
-  */
- void kswapd_stop(int nid)
- {
- 	struct task_struct *kswapd = NODE_DATA(nid)->kswapd;
- 
--	if (kswapd)
-+	if (kswapd) {
- 		kthread_stop(kswapd);
-+		NODE_DATA(nid)->kswapd = NULL;
-+	}
- }
- 
- static int __init kswapd_init(void)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0039-ocfs2-fix-NULL-pointer-dereference-in-__ocfs2_change.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0039-ocfs2-fix-NULL-pointer-dereference-in-__ocfs2_change.patch
deleted file mode 100644
index 64d18e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0039-ocfs2-fix-NULL-pointer-dereference-in-__ocfs2_change.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 827be17f16d9325db1c05f012ceab345139f7cad Mon Sep 17 00:00:00 2001
-From: Luis Henriques <luis.henriques at canonical.com>
-Date: Wed, 11 Jul 2012 14:02:10 -0700
-Subject: [PATCH 039/109] ocfs2: fix NULL pointer dereference in
- __ocfs2_change_file_space()
-
-commit a4e08d001f2e50bb8b3c4eebadcf08e5535f02ee upstream.
-
-As ocfs2_fallocate() will invoke __ocfs2_change_file_space() with a NULL
-as the first parameter (file), it may trigger a NULL pointer dereferrence
-due to a missing check.
-
-Addresses http://bugs.launchpad.net/bugs/1006012
-
-Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
-Reported-by: Bret Towe <magnade at gmail.com>
-Tested-by: Bret Towe <magnade at gmail.com>
-Cc: Sunil Mushran <sunil.mushran at oracle.com>
-Acked-by: Joel Becker <jlbec at evilplan.org>
-Acked-by: Mark Fasheh <mfasheh at suse.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ocfs2/file.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c
-index 07ee5b4..1c7d45e 100644
---- a/fs/ocfs2/file.c
-+++ b/fs/ocfs2/file.c
-@@ -1950,7 +1950,7 @@ static int __ocfs2_change_file_space(struct file *file, struct inode *inode,
- 	if (ret < 0)
- 		mlog_errno(ret);
- 
--	if (file->f_flags & O_SYNC)
-+	if (file && (file->f_flags & O_SYNC))
- 		handle->h_sync = 1;
- 
- 	ocfs2_commit_trans(osb, handle);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0040-mm-thp-abort-compaction-if-migration-page-cannot-be-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0040-mm-thp-abort-compaction-if-migration-page-cannot-be-.patch
deleted file mode 100644
index 74ca9bf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0040-mm-thp-abort-compaction-if-migration-page-cannot-be-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 6a918e81eb228757f20a244ee0d81c32ba7feedc Mon Sep 17 00:00:00 2001
-From: David Rientjes <rientjes at google.com>
-Date: Wed, 11 Jul 2012 14:02:13 -0700
-Subject: [PATCH 040/109] mm, thp: abort compaction if migration page cannot
- be charged to memcg
-
-commit 4bf2bba3750f10aa9e62e6949bc7e8329990f01b upstream.
-
-If page migration cannot charge the temporary page to the memcg,
-migrate_pages() will return -ENOMEM.  This isn't considered in memory
-compaction however, and the loop continues to iterate over all
-pageblocks trying to isolate and migrate pages.  If a small number of
-very large memcgs happen to be oom, however, these attempts will mostly
-be futile leading to an enormous amout of cpu consumption due to the
-page migration failures.
-
-This patch will short circuit and fail memory compaction if
-migrate_pages() returns -ENOMEM.  COMPACT_PARTIAL is returned in case
-some migrations were successful so that the page allocator will retry.
-
-Signed-off-by: David Rientjes <rientjes at google.com>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Cc: Minchan Kim <minchan at kernel.org>
-Cc: Kamezawa Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Rik van Riel <riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/compaction.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/mm/compaction.c b/mm/compaction.c
-index 8fb8a40..50f1c60 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -592,8 +592,11 @@ static int compact_zone(struct zone *zone, struct compact_control *cc)
- 		if (err) {
- 			putback_lru_pages(&cc->migratepages);
- 			cc->nr_migratepages = 0;
-+			if (err == -ENOMEM) {
-+				ret = COMPACT_PARTIAL;
-+				goto out;
-+			}
- 		}
--
- 	}
- 
- out:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0041-drivers-rtc-rtc-mxc.c-fix-irq-enabled-interrupts-war.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0041-drivers-rtc-rtc-mxc.c-fix-irq-enabled-interrupts-war.patch
deleted file mode 100644
index 0df7b6e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0041-drivers-rtc-rtc-mxc.c-fix-irq-enabled-interrupts-war.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 810c142eafb17318d32209a727060a756a57235d Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Beno=C3=AEt=20Th=C3=A9baudeau?=
- <benoit.thebaudeau at advansee.com>
-Date: Wed, 11 Jul 2012 14:02:32 -0700
-Subject: [PATCH 041/109] drivers/rtc/rtc-mxc.c: fix irq enabled interrupts
- warning
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b59f6d1febd6cbe9fae4589bf72da0ed32bc69e0 upstream.
-
-Fixes
-
-  WARNING: at irq/handle.c:146 handle_irq_event_percpu+0x19c/0x1b8()
-  irq 25 handler mxc_rtc_interrupt+0x0/0xac enabled interrupts
-  Modules linked in:
-   (unwind_backtrace+0x0/0xf0) from (warn_slowpath_common+0x4c/0x64)
-   (warn_slowpath_common+0x4c/0x64) from (warn_slowpath_fmt+0x30/0x40)
-   (warn_slowpath_fmt+0x30/0x40) from (handle_irq_event_percpu+0x19c/0x1b8)
-   (handle_irq_event_percpu+0x19c/0x1b8) from (handle_irq_event+0x28/0x38)
-   (handle_irq_event+0x28/0x38) from (handle_level_irq+0x80/0xc4)
-   (handle_level_irq+0x80/0xc4) from (generic_handle_irq+0x24/0x38)
-   (generic_handle_irq+0x24/0x38) from (handle_IRQ+0x30/0x84)
-   (handle_IRQ+0x30/0x84) from (avic_handle_irq+0x2c/0x4c)
-   (avic_handle_irq+0x2c/0x4c) from (__irq_svc+0x40/0x60)
-  Exception stack(0xc050bf60 to 0xc050bfa8)
-  bf60: 00000001 00000000 003c4208 c0018e20 c050a000 c050a000 c054a4c8 c050a000
-  bf80: c05157a8 4117b363 80503bb4 00000000 01000000 c050bfa8 c0018e2c c000e808
-  bfa0: 60000013 ffffffff
-   (__irq_svc+0x40/0x60) from (default_idle+0x1c/0x30)
-   (default_idle+0x1c/0x30) from (cpu_idle+0x68/0xa8)
-   (cpu_idle+0x68/0xa8) from (start_kernel+0x22c/0x26c)
-
-Signed-off-by: Benoît Thébaudeau <benoit.thebaudeau at advansee.com>
-Cc: Alessandro Zummo <a.zummo at towertech.it>
-Cc: Sascha Hauer <kernel at pengutronix.de>
-Acked-by: Uwe Kleine-König <u.kleine-koenig at pengutronix.de>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/rtc/rtc-mxc.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/rtc/rtc-mxc.c b/drivers/rtc/rtc-mxc.c
-index 39e41fb..5160354 100644
---- a/drivers/rtc/rtc-mxc.c
-+++ b/drivers/rtc/rtc-mxc.c
-@@ -191,10 +191,11 @@ static irqreturn_t mxc_rtc_interrupt(int irq, void *dev_id)
- 	struct platform_device *pdev = dev_id;
- 	struct rtc_plat_data *pdata = platform_get_drvdata(pdev);
- 	void __iomem *ioaddr = pdata->ioaddr;
-+	unsigned long flags;
- 	u32 status;
- 	u32 events = 0;
- 
--	spin_lock_irq(&pdata->rtc->irq_lock);
-+	spin_lock_irqsave(&pdata->rtc->irq_lock, flags);
- 	status = readw(ioaddr + RTC_RTCISR) & readw(ioaddr + RTC_RTCIENR);
- 	/* clear interrupt sources */
- 	writew(status, ioaddr + RTC_RTCISR);
-@@ -217,7 +218,7 @@ static irqreturn_t mxc_rtc_interrupt(int irq, void *dev_id)
- 		rtc_update_alarm(&pdev->dev, &pdata->g_rtc_alarm);
- 
- 	rtc_update_irq(pdata->rtc, 1, events);
--	spin_unlock_irq(&pdata->rtc->irq_lock);
-+	spin_unlock_irqrestore(&pdata->rtc->irq_lock, flags);
- 
- 	return IRQ_HANDLED;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0042-fs-ramfs-file-nommu-add-SetPageUptodate.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0042-fs-ramfs-file-nommu-add-SetPageUptodate.patch
deleted file mode 100644
index 89f0fea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0042-fs-ramfs-file-nommu-add-SetPageUptodate.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From e3b50d463ce69af9fb5b2d4a54e6c37637c2ecef Mon Sep 17 00:00:00 2001
-From: Bob Liu <lliubbo at gmail.com>
-Date: Wed, 11 Jul 2012 14:02:35 -0700
-Subject: [PATCH 042/109] fs: ramfs: file-nommu: add SetPageUptodate()
-
-commit fea9f718b3d68147f162ed2d870183ce5e0ad8d8 upstream.
-
-There is a bug in the below scenario for !CONFIG_MMU:
-
- 1. create a new file
- 2. mmap the file and write to it
- 3. read the file can't get the correct value
-
-Because
-
-  sys_read() -> generic_file_aio_read() -> simple_readpage() -> clear_page()
-
-which causes the page to be zeroed.
-
-Add SetPageUptodate() to ramfs_nommu_expand_for_mapping() so that
-generic_file_aio_read() do not call simple_readpage().
-
-Signed-off-by: Bob Liu <lliubbo at gmail.com>
-Cc: Hugh Dickins <hughd at google.com>
-Cc: David Howells <dhowells at redhat.com>
-Cc: Geert Uytterhoeven <geert at linux-m68k.org>
-Cc: Greg Ungerer <gerg at uclinux.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ramfs/file-nommu.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/fs/ramfs/file-nommu.c b/fs/ramfs/file-nommu.c
-index fbb0b47..d5378d0 100644
---- a/fs/ramfs/file-nommu.c
-+++ b/fs/ramfs/file-nommu.c
-@@ -110,6 +110,7 @@ int ramfs_nommu_expand_for_mapping(struct inode *inode, size_t newsize)
- 
- 		/* prevent the page from being discarded on memory pressure */
- 		SetPageDirty(page);
-+		SetPageUptodate(page);
- 
- 		unlock_page(page);
- 		put_page(page);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0043-cpufreq-ACPI-Fix-not-loading-acpi-cpufreq-driver-reg.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0043-cpufreq-ACPI-Fix-not-loading-acpi-cpufreq-driver-reg.patch
deleted file mode 100644
index 21c973d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0043-cpufreq-ACPI-Fix-not-loading-acpi-cpufreq-driver-reg.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8d63c0484f5ed79f498c5bf3e5b90de29555bcb7 Mon Sep 17 00:00:00 2001
-From: Thomas Renninger <trenn at suse.de>
-Date: Thu, 12 Jul 2012 12:24:33 +0200
-Subject: [PATCH 043/109] cpufreq / ACPI: Fix not loading acpi-cpufreq driver
- regression
-
-commit c4686c71a9183f76e3ef59098da5c098748672f6 upstream.
-
-Commit d640113fe80e45ebd4a5b420b introduced a regression on SMP
-systems where the processor core with ACPI id zero is disabled
-(typically should be the case because of hyperthreading).
-The regression got spread through stable kernels.
-On 3.0.X it got introduced via 3.0.18.
-
-Such platforms may be rare, but do exist.
-Look out for a disabled processor with acpi_id 0 in dmesg:
-ACPI: LAPIC (acpi_id[0x00] lapic_id[0x10] disabled)
-
-This problem has been observed on a:
-HP Proliant BL280c G6 blade
-
-This patch restricts the introduced workaround to platforms
-with nr_cpu_ids <= 1.
-
-Signed-off-by: Thomas Renninger <trenn at suse.de>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/processor_core.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/acpi/processor_core.c b/drivers/acpi/processor_core.c
-index c850de4..eff7222 100644
---- a/drivers/acpi/processor_core.c
-+++ b/drivers/acpi/processor_core.c
-@@ -189,10 +189,12 @@ int acpi_get_cpuid(acpi_handle handle, int type, u32 acpi_id)
- 		 *     Processor (CPU3, 0x03, 0x00000410, 0x06) {}
- 		 * }
- 		 *
--		 * Ignores apic_id and always return 0 for CPU0's handle.
-+		 * Ignores apic_id and always returns 0 for the processor
-+		 * handle with acpi id 0 if nr_cpu_ids is 1.
-+		 * This should be the case if SMP tables are not found.
- 		 * Return -1 for other CPU's handle.
- 		 */
--		if (acpi_id == 0)
-+		if (nr_cpu_ids <= 1 && acpi_id == 0)
- 			return acpi_id;
- 		else
- 			return apic_id;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0044-hwmon-it87-Preserve-configuration-register-bits-on-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0044-hwmon-it87-Preserve-configuration-register-bits-on-i.patch
deleted file mode 100644
index f7d45cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0044-hwmon-it87-Preserve-configuration-register-bits-on-i.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 9b12ab6f8a8a5859e0165b3510dbecae16ca98e3 Mon Sep 17 00:00:00 2001
-From: Jean Delvare <khali at linux-fr.org>
-Date: Thu, 12 Jul 2012 22:47:37 +0200
-Subject: [PATCH 044/109] hwmon: (it87) Preserve configuration register bits
- on init
-
-commit 41002f8dd5938d5ad1d008ce5bfdbfe47fa7b4e8 upstream.
-
-We were accidentally losing one bit in the configuration register on
-device initialization. It was reported to freeze one specific system
-right away. Properly preserve all bits we don't explicitly want to
-change in order to prevent that.
-
-Reported-by: Stevie Trujillo <stevie.trujillo at gmail.com>
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Reviewed-by: Guenter Roeck <linux at roeck-us.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hwmon/it87.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/hwmon/it87.c b/drivers/hwmon/it87.c
-index d912649..1ba7af2 100644
---- a/drivers/hwmon/it87.c
-+++ b/drivers/hwmon/it87.c
-@@ -2086,7 +2086,7 @@ static void __devinit it87_init_device(struct platform_device *pdev)
- 
- 	/* Start monitoring */
- 	it87_write_value(data, IT87_REG_CONFIG,
--			 (it87_read_value(data, IT87_REG_CONFIG) & 0x36)
-+			 (it87_read_value(data, IT87_REG_CONFIG) & 0x3e)
- 			 | (update_vbat ? 0x41 : 0x01));
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0045-ARM-SAMSUNG-fix-race-in-s3c_adc_start-for-ADC.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0045-ARM-SAMSUNG-fix-race-in-s3c_adc_start-for-ADC.patch
deleted file mode 100644
index be44eb3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0045-ARM-SAMSUNG-fix-race-in-s3c_adc_start-for-ADC.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 81b7824449f04aec76681f7723b0f7911ad66f11 Mon Sep 17 00:00:00 2001
-From: Todd Poynor <toddpoynor at google.com>
-Date: Fri, 13 Jul 2012 15:30:48 +0900
-Subject: [PATCH 045/109] ARM: SAMSUNG: fix race in s3c_adc_start for ADC
-
-commit 8265981bb439f3ecc5356fb877a6c2a6636ac88a upstream.
-
-Checking for adc->ts_pend already claimed should be done with the
-lock held.
-
-Signed-off-by: Todd Poynor <toddpoynor at google.com>
-Acked-by: Ben Dooks <ben-linux at fluff.org>
-Signed-off-by: Kukjin Kim <kgene.kim at samsung.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/plat-samsung/adc.c |    8 +++++---
- 1 files changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/plat-samsung/adc.c b/arch/arm/plat-samsung/adc.c
-index 33ecd0c..b1e05cc 100644
---- a/arch/arm/plat-samsung/adc.c
-+++ b/arch/arm/plat-samsung/adc.c
-@@ -157,11 +157,13 @@ int s3c_adc_start(struct s3c_adc_client *client,
- 		return -EINVAL;
- 	}
- 
--	if (client->is_ts && adc->ts_pend)
--		return -EAGAIN;
--
- 	spin_lock_irqsave(&adc->lock, flags);
- 
-+	if (client->is_ts && adc->ts_pend) {
-+		spin_unlock_irqrestore(&adc->lock, flags);
-+		return -EAGAIN;
-+	}
-+
- 	client->channel = channel;
- 	client->nr_samples = nr_samples;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0046-block-fix-infinite-loop-in-__getblk_slow.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0046-block-fix-infinite-loop-in-__getblk_slow.patch
deleted file mode 100644
index 6c5d9b8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0046-block-fix-infinite-loop-in-__getblk_slow.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 898f4d272514d19aafee8cd66b796c0553fca080 Mon Sep 17 00:00:00 2001
-From: Jeff Moyer <jmoyer at redhat.com>
-Date: Thu, 12 Jul 2012 09:43:14 -0400
-Subject: [PATCH 046/109] block: fix infinite loop in __getblk_slow
-
-commit 91f68c89d8f35fe98ea04159b9a3b42d0149478f upstream.
-
-Commit 080399aaaf35 ("block: don't mark buffers beyond end of disk as
-mapped") exposed a bug in __getblk_slow that causes mount to hang as it
-loops infinitely waiting for a buffer that lies beyond the end of the
-disk to become uptodate.
-
-The problem was initially reported by Torsten Hilbrich here:
-
-    https://lkml.org/lkml/2012/6/18/54
-
-and also reported independently here:
-
-    http://www.sysresccd.org/forums/viewtopic.php?f=13&t=4511
-
-and then Richard W.M.  Jones and Marcos Mello noted a few separate
-bugzillas also associated with the same issue.  This patch has been
-confirmed to fix:
-
-    https://bugzilla.redhat.com/show_bug.cgi?id=835019
-
-The main problem is here, in __getblk_slow:
-
-        for (;;) {
-                struct buffer_head * bh;
-                int ret;
-
-                bh = __find_get_block(bdev, block, size);
-                if (bh)
-                        return bh;
-
-                ret = grow_buffers(bdev, block, size);
-                if (ret < 0)
-                        return NULL;
-                if (ret == 0)
-                        free_more_memory();
-        }
-
-__find_get_block does not find the block, since it will not be marked as
-mapped, and so grow_buffers is called to fill in the buffers for the
-associated page.  I believe the for (;;) loop is there primarily to
-retry in the case of memory pressure keeping grow_buffers from
-succeeding.  However, we also continue to loop for other cases, like the
-block lying beond the end of the disk.  So, the fix I came up with is to
-only loop when grow_buffers fails due to memory allocation issues
-(return value of 0).
-
-The attached patch was tested by myself, Torsten, and Rich, and was
-found to resolve the problem in call cases.
-
-Signed-off-by: Jeff Moyer <jmoyer at redhat.com>
-Reported-and-Tested-by: Torsten Hilbrich <torsten.hilbrich at secunet.com>
-Tested-by: Richard W.M. Jones <rjones at redhat.com>
-Reviewed-by: Josh Boyer <jwboyer at redhat.com>
-[ Jens is on vacation, taking this directly  - Linus ]
---
-Stable Notes: this patch requires backport to 3.0, 3.2 and 3.3.
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/buffer.c |   22 +++++++++++++---------
- 1 files changed, 13 insertions(+), 9 deletions(-)
-
-diff --git a/fs/buffer.c b/fs/buffer.c
-index c807931..4115eca 100644
---- a/fs/buffer.c
-+++ b/fs/buffer.c
-@@ -1087,6 +1087,9 @@ grow_buffers(struct block_device *bdev, sector_t block, int size)
- static struct buffer_head *
- __getblk_slow(struct block_device *bdev, sector_t block, int size)
- {
-+	int ret;
-+	struct buffer_head *bh;
-+
- 	/* Size must be multiple of hard sectorsize */
- 	if (unlikely(size & (bdev_logical_block_size(bdev)-1) ||
- 			(size < 512 || size > PAGE_SIZE))) {
-@@ -1099,20 +1102,21 @@ __getblk_slow(struct block_device *bdev, sector_t block, int size)
- 		return NULL;
- 	}
- 
--	for (;;) {
--		struct buffer_head * bh;
--		int ret;
-+retry:
-+	bh = __find_get_block(bdev, block, size);
-+	if (bh)
-+		return bh;
- 
-+	ret = grow_buffers(bdev, block, size);
-+	if (ret == 0) {
-+		free_more_memory();
-+		goto retry;
-+	} else if (ret > 0) {
- 		bh = __find_get_block(bdev, block, size);
- 		if (bh)
- 			return bh;
--
--		ret = grow_buffers(bdev, block, size);
--		if (ret < 0)
--			return NULL;
--		if (ret == 0)
--			free_more_memory();
- 	}
-+	return NULL;
- }
- 
- /*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0047-Remove-easily-user-triggerable-BUG-from-generic_setl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0047-Remove-easily-user-triggerable-BUG-from-generic_setl.patch
deleted file mode 100644
index 8747220..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0047-Remove-easily-user-triggerable-BUG-from-generic_setl.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 51b23c5c8a3aacf16acf8b723c35a23c07c37115 Mon Sep 17 00:00:00 2001
-From: Dave Jones <davej at redhat.com>
-Date: Fri, 13 Jul 2012 13:35:36 -0400
-Subject: [PATCH 047/109] Remove easily user-triggerable BUG from
- generic_setlease
-
-commit 8d657eb3b43861064d36241e88d9d61c709f33f0 upstream.
-
-This can be trivially triggered from userspace by passing in something unexpected.
-
-    kernel BUG at fs/locks.c:1468!
-    invalid opcode: 0000 [#1] SMP
-    RIP: 0010:generic_setlease+0xc2/0x100
-    Call Trace:
-      __vfs_setlease+0x35/0x40
-      fcntl_setlease+0x76/0x150
-      sys_fcntl+0x1c6/0x810
-      system_call_fastpath+0x1a/0x1f
-
-Signed-off-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/locks.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/locks.c b/fs/locks.c
-index 0d68f1f..6a64f15 100644
---- a/fs/locks.c
-+++ b/fs/locks.c
-@@ -1465,7 +1465,7 @@ int generic_setlease(struct file *filp, long arg, struct file_lock **flp)
- 	case F_WRLCK:
- 		return generic_add_lease(filp, arg, flp);
- 	default:
--		BUG();
-+		return -EINVAL;
- 	}
- }
- EXPORT_SYMBOL(generic_setlease);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0048-NFC-Export-nfc.h-to-userland.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0048-NFC-Export-nfc.h-to-userland.patch
deleted file mode 100644
index 90d6d7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0048-NFC-Export-nfc.h-to-userland.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8750544d6522f38e7f5722ee263d0f95941c9bd8 Mon Sep 17 00:00:00 2001
-From: Samuel Ortiz <sameo at linux.intel.com>
-Date: Thu, 10 May 2012 19:45:51 +0200
-Subject: [PATCH 048/109] NFC: Export nfc.h to userland
-
-commit dbd4fcaf8d664fab4163b1f8682e41ad8bff3444 upstream.
-
-The netlink commands and attributes, along with the socket structure
-definitions need to be exported.
-
-Signed-off-by: Samuel Ortiz <sameo at linux.intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/Kbuild |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/include/linux/Kbuild b/include/linux/Kbuild
-index bd21ecd..a3ce901 100644
---- a/include/linux/Kbuild
-+++ b/include/linux/Kbuild
-@@ -268,6 +268,7 @@ header-y += netfilter_ipv4.h
- header-y += netfilter_ipv6.h
- header-y += netlink.h
- header-y += netrom.h
-+header-y += nfc.h
- header-y += nfs.h
- header-y += nfs2.h
- header-y += nfs3.h
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0049-PM-Hibernate-Hibernate-thaw-fixes-improvements.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0049-PM-Hibernate-Hibernate-thaw-fixes-improvements.patch
deleted file mode 100644
index b0b708b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0049-PM-Hibernate-Hibernate-thaw-fixes-improvements.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From b6807062ada796cdfde2c0f5ca59390b0c916aae Mon Sep 17 00:00:00 2001
-From: Bojan Smojver <bojan at rexursive.com>
-Date: Sun, 29 Apr 2012 22:42:06 +0200
-Subject: [PATCH 049/109] PM / Hibernate: Hibernate/thaw fixes/improvements
-
-commit 5a21d489fd9541a4a66b9a500659abaca1b19a51 upstream.
-
- 1. Do not allocate memory for buffers from emergency pools, unless
-    absolutely required. Do not warn about and do not retry non-essential
-    failed allocations.
-
- 2. Do not check the amount of free pages left on every single page
-    write, but wait until one map is completely populated and then check.
-
- 3. Set maximum number of pages for read buffering consistently, instead
-    of inadvertently depending on the size of the sector type.
-
- 4. Fix copyright line, which I missed when I submitted the hibernation
-    threading patch.
-
- 5. Dispense with bit shifting arithmetic to improve readability.
-
- 6. Really recalculate the number of pages required to be free after all
-    allocations have been done.
-
- 7. Fix calculation of pages required for read buffering. Only count in
-    pages that do not belong to high memory.
-
-Signed-off-by: Bojan Smojver <bojan at rexursive.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/power/swap.c |   62 ++++++++++++++++++++++++++++++++-------------------
- 1 files changed, 39 insertions(+), 23 deletions(-)
-
-diff --git a/kernel/power/swap.c b/kernel/power/swap.c
-index b313086..64f8f97 100644
---- a/kernel/power/swap.c
-+++ b/kernel/power/swap.c
-@@ -6,7 +6,7 @@
-  *
-  * Copyright (C) 1998,2001-2005 Pavel Machek <pavel at ucw.cz>
-  * Copyright (C) 2006 Rafael J. Wysocki <rjw at sisk.pl>
-- * Copyright (C) 2010 Bojan Smojver <bojan at rexursive.com>
-+ * Copyright (C) 2010-2012 Bojan Smojver <bojan at rexursive.com>
-  *
-  * This file is released under the GPLv2.
-  *
-@@ -283,14 +283,17 @@ static int write_page(void *buf, sector_t offset, struct bio **bio_chain)
- 		return -ENOSPC;
- 
- 	if (bio_chain) {
--		src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH);
-+		src = (void *)__get_free_page(__GFP_WAIT | __GFP_NOWARN |
-+		                              __GFP_NORETRY);
- 		if (src) {
- 			copy_page(src, buf);
- 		} else {
- 			ret = hib_wait_on_bio_chain(bio_chain); /* Free pages */
- 			if (ret)
- 				return ret;
--			src = (void *)__get_free_page(__GFP_WAIT | __GFP_HIGH);
-+			src = (void *)__get_free_page(__GFP_WAIT |
-+			                              __GFP_NOWARN |
-+			                              __GFP_NORETRY);
- 			if (src) {
- 				copy_page(src, buf);
- 			} else {
-@@ -368,12 +371,17 @@ static int swap_write_page(struct swap_map_handle *handle, void *buf,
- 		clear_page(handle->cur);
- 		handle->cur_swap = offset;
- 		handle->k = 0;
--	}
--	if (bio_chain && low_free_pages() <= handle->reqd_free_pages) {
--		error = hib_wait_on_bio_chain(bio_chain);
--		if (error)
--			goto out;
--		handle->reqd_free_pages = reqd_free_pages();
-+
-+		if (bio_chain && low_free_pages() <= handle->reqd_free_pages) {
-+			error = hib_wait_on_bio_chain(bio_chain);
-+			if (error)
-+				goto out;
-+			/*
-+			 * Recalculate the number of required free pages, to
-+			 * make sure we never take more than half.
-+			 */
-+			handle->reqd_free_pages = reqd_free_pages();
-+		}
- 	}
-  out:
- 	return error;
-@@ -420,8 +428,9 @@ static int swap_writer_finish(struct swap_map_handle *handle,
- /* Maximum number of threads for compression/decompression. */
- #define LZO_THREADS	3
- 
--/* Maximum number of pages for read buffering. */
--#define LZO_READ_PAGES	(MAP_PAGE_ENTRIES * 8)
-+/* Minimum/maximum number of pages for read buffering. */
-+#define LZO_MIN_RD_PAGES	1024
-+#define LZO_MAX_RD_PAGES	8192
- 
- 
- /**
-@@ -632,12 +641,6 @@ static int save_image_lzo(struct swap_map_handle *handle,
- 	}
- 
- 	/*
--	 * Adjust number of free pages after all allocations have been done.
--	 * We don't want to run out of pages when writing.
--	 */
--	handle->reqd_free_pages = reqd_free_pages();
--
--	/*
- 	 * Start the CRC32 thread.
- 	 */
- 	init_waitqueue_head(&crc->go);
-@@ -658,6 +661,12 @@ static int save_image_lzo(struct swap_map_handle *handle,
- 		goto out_clean;
- 	}
- 
-+	/*
-+	 * Adjust the number of required free pages after all allocations have
-+	 * been done. We don't want to run out of pages when writing.
-+	 */
-+	handle->reqd_free_pages = reqd_free_pages();
-+
- 	printk(KERN_INFO
- 		"PM: Using %u thread(s) for compression.\n"
- 		"PM: Compressing and saving image data (%u pages) ...     ",
-@@ -1067,7 +1076,7 @@ static int load_image_lzo(struct swap_map_handle *handle,
- 	unsigned i, thr, run_threads, nr_threads;
- 	unsigned ring = 0, pg = 0, ring_size = 0,
- 	         have = 0, want, need, asked = 0;
--	unsigned long read_pages;
-+	unsigned long read_pages = 0;
- 	unsigned char **page = NULL;
- 	struct dec_data *data = NULL;
- 	struct crc_data *crc = NULL;
-@@ -1079,7 +1088,7 @@ static int load_image_lzo(struct swap_map_handle *handle,
- 	nr_threads = num_online_cpus() - 1;
- 	nr_threads = clamp_val(nr_threads, 1, LZO_THREADS);
- 
--	page = vmalloc(sizeof(*page) * LZO_READ_PAGES);
-+	page = vmalloc(sizeof(*page) * LZO_MAX_RD_PAGES);
- 	if (!page) {
- 		printk(KERN_ERR "PM: Failed to allocate LZO page\n");
- 		ret = -ENOMEM;
-@@ -1144,15 +1153,22 @@ static int load_image_lzo(struct swap_map_handle *handle,
- 	}
- 
- 	/*
--	 * Adjust number of pages for read buffering, in case we are short.
-+	 * Set the number of pages for read buffering.
-+	 * This is complete guesswork, because we'll only know the real
-+	 * picture once prepare_image() is called, which is much later on
-+	 * during the image load phase. We'll assume the worst case and
-+	 * say that none of the image pages are from high memory.
- 	 */
--	read_pages = (nr_free_pages() - snapshot_get_image_size()) >> 1;
--	read_pages = clamp_val(read_pages, LZO_CMP_PAGES, LZO_READ_PAGES);
-+	if (low_free_pages() > snapshot_get_image_size())
-+		read_pages = (low_free_pages() - snapshot_get_image_size()) / 2;
-+	read_pages = clamp_val(read_pages, LZO_MIN_RD_PAGES, LZO_MAX_RD_PAGES);
- 
- 	for (i = 0; i < read_pages; i++) {
- 		page[i] = (void *)__get_free_page(i < LZO_CMP_PAGES ?
- 		                                  __GFP_WAIT | __GFP_HIGH :
--		                                  __GFP_WAIT);
-+		                                  __GFP_WAIT | __GFP_NOWARN |
-+		                                  __GFP_NORETRY);
-+
- 		if (!page[i]) {
- 			if (i < LZO_CMP_PAGES) {
- 				ring_size = i;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0050-cfg80211-check-iface-combinations-only-when-iface-is.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0050-cfg80211-check-iface-combinations-only-when-iface-is.patch
deleted file mode 100644
index c9a9c98..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0050-cfg80211-check-iface-combinations-only-when-iface-is.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From c83354ed38bbb4ebfa25f954d825594453b160c1 Mon Sep 17 00:00:00 2001
-From: Michal Kazior <michal.kazior at tieto.com>
-Date: Fri, 8 Jun 2012 10:55:44 +0200
-Subject: [PATCH 050/109] cfg80211: check iface combinations only when iface
- is running
-
-commit f8cdddb8d61d16a156229f0910f7ecfc7a82c003 upstream.
-
-Don't validate interface combinations on a stopped
-interface. Otherwise we might end up being able to
-create a new interface with a certain type, but
-won't be able to change an existing interface
-into that type.
-
-This also skips some other functions when
-interface is stopped and changing interface type.
-
-Signed-off-by: Michal Kazior <michal.kazior at tieto.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/util.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/net/wireless/util.c b/net/wireless/util.c
-index d38815d..74d5292 100644
---- a/net/wireless/util.c
-+++ b/net/wireless/util.c
-@@ -813,7 +813,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
- 	     ntype == NL80211_IFTYPE_P2P_CLIENT))
- 		return -EBUSY;
- 
--	if (ntype != otype) {
-+	if (ntype != otype && netif_running(dev)) {
- 		err = cfg80211_can_change_interface(rdev, dev->ieee80211_ptr,
- 						    ntype);
- 		if (err)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0051-intel_ips-blacklist-HP-ProBook-laptops.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0051-intel_ips-blacklist-HP-ProBook-laptops.patch
deleted file mode 100644
index d1c0f9b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0051-intel_ips-blacklist-HP-ProBook-laptops.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From ea2ca0ebd427d4a745043e6e030619221fe9a55b Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 25 Jun 2012 15:07:17 +0200
-Subject: [PATCH 051/109] intel_ips: blacklist HP ProBook laptops
-
-commit 88ca518b0bb4161e5f20f8a1d9cc477cae294e54 upstream.
-
-intel_ips driver spews the warning message
-  "ME failed to update for more than 1s, likely hung"
-at each second endlessly on HP ProBook laptops with IronLake.
-
-As this has never worked, better to blacklist the driver for now.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/intel_ips.c |   22 ++++++++++++++++++++++
- 1 files changed, 22 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/platform/x86/intel_ips.c b/drivers/platform/x86/intel_ips.c
-index 809a3ae..b46ec11 100644
---- a/drivers/platform/x86/intel_ips.c
-+++ b/drivers/platform/x86/intel_ips.c
-@@ -72,6 +72,7 @@
- #include <linux/string.h>
- #include <linux/tick.h>
- #include <linux/timer.h>
-+#include <linux/dmi.h>
- #include <drm/i915_drm.h>
- #include <asm/msr.h>
- #include <asm/processor.h>
-@@ -1505,6 +1506,24 @@ static DEFINE_PCI_DEVICE_TABLE(ips_id_table) = {
- 
- MODULE_DEVICE_TABLE(pci, ips_id_table);
- 
-+static int ips_blacklist_callback(const struct dmi_system_id *id)
-+{
-+	pr_info("Blacklisted intel_ips for %s\n", id->ident);
-+	return 1;
-+}
-+
-+static const struct dmi_system_id ips_blacklist[] = {
-+	{
-+		.callback = ips_blacklist_callback,
-+		.ident = "HP ProBook",
-+		.matches = {
-+			DMI_MATCH(DMI_SYS_VENDOR, "Hewlett-Packard"),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "HP ProBook"),
-+		},
-+	},
-+	{ }	/* terminating entry */
-+};
-+
- static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
- {
- 	u64 platform_info;
-@@ -1514,6 +1533,9 @@ static int ips_probe(struct pci_dev *dev, const struct pci_device_id *id)
- 	u16 htshi, trc, trc_required_mask;
- 	u8 tse;
- 
-+	if (dmi_check_system(ips_blacklist))
-+		return -ENODEV;
-+
- 	ips = kzalloc(sizeof(struct ips_driver), GFP_KERNEL);
- 	if (!ips)
- 		return -ENOMEM;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0052-atl1c-fix-issue-of-transmit-queue-0-timed-out.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0052-atl1c-fix-issue-of-transmit-queue-0-timed-out.patch
deleted file mode 100644
index 92f5a27..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0052-atl1c-fix-issue-of-transmit-queue-0-timed-out.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 0e6bee2eb164145946ea6ca49c4fd1e02c7177fa Mon Sep 17 00:00:00 2001
-From: Cloud Ren <cjren at qca.qualcomm.com>
-Date: Tue, 3 Jul 2012 16:51:48 +0000
-Subject: [PATCH 052/109] atl1c: fix issue of transmit queue 0 timed out
-
-commit b94e52f62683dc0b00c6d1b58b80929a078c0fd5 upstream.
-
-some people report atl1c could cause system hang with following
-kernel trace info:
----------------------------------------
-WARNING: at.../net/sched/sch_generic.c:258 dev_watchdog+0x1db/0x1d0()
-...
-NETDEV WATCHDOG: eth0 (atl1c): transmit queue 0 timed out
-...
----------------------------------------
-This is caused by netif_stop_queue calling when cable Link is down.
-So remove netif_stop_queue, because link_watch will take it over.
-
-Signed-off-by: xiong <xiong at qca.qualcomm.com>
-Signed-off-by: Cloud Ren <cjren at qca.qualcomm.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/atheros/atl1c/atl1c_main.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-index eccdcff..5ae7df7 100644
---- a/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-+++ b/drivers/net/ethernet/atheros/atl1c/atl1c_main.c
-@@ -267,7 +267,6 @@ static void atl1c_check_link_status(struct atl1c_adapter *adapter)
- 				dev_warn(&pdev->dev, "stop mac failed\n");
- 		atl1c_set_aspm(hw, false);
- 		netif_carrier_off(netdev);
--		netif_stop_queue(netdev);
- 		atl1c_phy_reset(hw);
- 		atl1c_phy_init(&adapter->hw);
- 	} else {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0053-rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0053-rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
deleted file mode 100644
index 17d4e14..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0053-rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 6b52d1306665e9da06ac76126a97888849dbf290 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Wed, 4 Jul 2012 13:10:02 +0200
-Subject: [PATCH 053/109] rt2x00usb: fix indexes ordering on RX queue kick
-
-commit efd821182cec8c92babef6e00a95066d3252fda4 upstream.
-
-On rt2x00_dmastart() we increase index specified by Q_INDEX and on
-rt2x00_dmadone() we increase index specified by Q_INDEX_DONE. So entries
-between Q_INDEX_DONE and Q_INDEX are those we currently process in the
-hardware. Entries between Q_INDEX and Q_INDEX_DONE are those we can
-submit to the hardware.
-
-According to that fix rt2x00usb_kick_queue(), as we need to submit RX
-entries that are not processed by the hardware. It worked before only
-for empty queue, otherwise was broken.
-
-Note that for TX queues indexes ordering are ok. We need to kick entries
-that have filled skb, but was not submitted to the hardware, i.e.
-started from Q_INDEX_DONE and have ENTRY_DATA_PENDING bit set.
-
-From practical standpoint this fixes RX queue stall, usually reproducible
-in AP mode, like for example reported here:
-https://bugzilla.redhat.com/show_bug.cgi?id=828824
-
-Reported-and-tested-by: Franco Miceli <fmiceli at plan.ceibal.edu.uy>
-Reported-and-tested-by: Tom Horsley <horsley1953 at gmail.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2x00usb.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2x00usb.c b/drivers/net/wireless/rt2x00/rt2x00usb.c
-index 1e31050..ba28807 100644
---- a/drivers/net/wireless/rt2x00/rt2x00usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2x00usb.c
-@@ -426,8 +426,8 @@ void rt2x00usb_kick_queue(struct data_queue *queue)
- 	case QID_RX:
- 		if (!rt2x00queue_full(queue))
- 			rt2x00queue_for_each_entry(queue,
--						   Q_INDEX_DONE,
- 						   Q_INDEX,
-+						   Q_INDEX_DONE,
- 						   NULL,
- 						   rt2x00usb_kick_rx_entry);
- 		break;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0054-iwlegacy-always-monitor-for-stuck-queues.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0054-iwlegacy-always-monitor-for-stuck-queues.patch
deleted file mode 100644
index 83172fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0054-iwlegacy-always-monitor-for-stuck-queues.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From b7d2c1e70d2c94585ac5839e38b861bdc6d469d2 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Wed, 4 Jul 2012 13:20:20 +0200
-Subject: [PATCH 054/109] iwlegacy: always monitor for stuck queues
-
-commit c2ca7d92ed4bbd779516beb6eb226e19f7f7ab0f upstream.
-
-This is iwlegacy version of:
-
-commit 342bbf3fee2fa9a18147e74b2e3c4229a4564912
-Author: Johannes Berg <johannes.berg at intel.com>
-Date:   Sun Mar 4 08:50:46 2012 -0800
-
-    iwlwifi: always monitor for stuck queues
-
-    If we only monitor while associated, the following
-    can happen:
-     - we're associated, and the queue stuck check
-       runs, setting the queue "touch" time to X
-     - we disassociate, stopping the monitoring,
-       which leaves the time set to X
-     - almost 2s later, we associate, and enqueue
-       a frame
-     - before the frame is transmitted, we monitor
-       for stuck queues, and find the time set to
-       X, although it is now later than X + 2000ms,
-       so we decide that the queue is stuck and
-       erroneously restart the device
-
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename, function and variable names]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlegacy/iwl-core.c |   14 ++++++--------
- 1 files changed, 6 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlegacy/iwl-core.c b/drivers/net/wireless/iwlegacy/iwl-core.c
-index 2bd5659..1bb64c9 100644
---- a/drivers/net/wireless/iwlegacy/iwl-core.c
-+++ b/drivers/net/wireless/iwlegacy/iwl-core.c
-@@ -1884,14 +1884,12 @@ void iwl_legacy_bg_watchdog(unsigned long data)
- 		return;
- 
- 	/* monitor and check for other stuck queues */
--	if (iwl_legacy_is_any_associated(priv)) {
--		for (cnt = 0; cnt < priv->hw_params.max_txq_num; cnt++) {
--			/* skip as we already checked the command queue */
--			if (cnt == priv->cmd_queue)
--				continue;
--			if (iwl_legacy_check_stuck_queue(priv, cnt))
--				return;
--		}
-+	for (cnt = 0; cnt < priv->hw_params.max_txq_num; cnt++) {
-+		/* skip as we already checked the command queue */
-+		if (cnt == priv->cmd_queue)
-+			continue;
-+		if (iwl_legacy_check_stuck_queue(priv, cnt))
-+			return;
- 	}
- 
- 	mod_timer(&priv->watchdog, jiffies +
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0055-iwlegacy-don-t-mess-up-the-SCD-when-removing-a-key.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0055-iwlegacy-don-t-mess-up-the-SCD-when-removing-a-key.patch
deleted file mode 100644
index f5bbca6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0055-iwlegacy-don-t-mess-up-the-SCD-when-removing-a-key.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 910c9012a7e02b93cc1f877aa8ef245dd1d99fbe Mon Sep 17 00:00:00 2001
-From: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Date: Wed, 4 Jul 2012 13:59:08 +0200
-Subject: [PATCH 055/109] iwlegacy: don't mess up the SCD when removing a key
-
-commit b48d96652626b315229b1b82c6270eead6a77a6d upstream.
-
-When we remove a key, we put a key index which was supposed
-to tell the fw that we are actually removing the key. But
-instead the fw took that index as a valid index and messed
-up the SRAM of the device.
-
-This memory corruption on the device mangled the data of
-the SCD. The impact on the user is that SCD queue 2 got
-stuck after having removed keys.
-
-Reported-by: Paul Bolle <pebolle at tiscali.nl>
-Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename, context and variable name]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlegacy/iwl-4965-sta.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlegacy/iwl-4965-sta.c b/drivers/net/wireless/iwlegacy/iwl-4965-sta.c
-index a262c23..0116ca8 100644
---- a/drivers/net/wireless/iwlegacy/iwl-4965-sta.c
-+++ b/drivers/net/wireless/iwlegacy/iwl-4965-sta.c
-@@ -466,7 +466,7 @@ int iwl4965_remove_dynamic_key(struct iwl_priv *priv,
- 		return 0;
- 	}
- 
--	if (priv->stations[sta_id].sta.key.key_offset == WEP_INVALID_OFFSET) {
-+	if (priv->stations[sta_id].sta.key.key_flags & STA_KEY_FLG_INVALID) {
- 		IWL_WARN(priv, "Removing wrong key %d 0x%x\n",
- 			    keyconf->keyidx, key_flags);
- 		spin_unlock_irqrestore(&priv->sta_lock, flags);
-@@ -483,7 +483,7 @@ int iwl4965_remove_dynamic_key(struct iwl_priv *priv,
- 					sizeof(struct iwl4965_keyinfo));
- 	priv->stations[sta_id].sta.key.key_flags =
- 			STA_KEY_FLG_NO_ENC | STA_KEY_FLG_INVALID;
--	priv->stations[sta_id].sta.key.key_offset = WEP_INVALID_OFFSET;
-+	priv->stations[sta_id].sta.key.key_offset = keyconf->hw_key_idx;
- 	priv->stations[sta_id].sta.sta.modify_mask = STA_MODIFY_KEY_MASK;
- 	priv->stations[sta_id].sta.mode = STA_CONTROL_MODIFY_MSK;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0056-e1000e-Correct-link-check-logic-for-82571-serdes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0056-e1000e-Correct-link-check-logic-for-82571-serdes.patch
deleted file mode 100644
index b7cf900..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0056-e1000e-Correct-link-check-logic-for-82571-serdes.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From c82dafb3ba87352cb605641f7d709ec76dc64168 Mon Sep 17 00:00:00 2001
-From: Tushar Dave <tushar.n.dave at intel.com>
-Date: Thu, 12 Jul 2012 08:56:56 +0000
-Subject: [PATCH 056/109] e1000e: Correct link check logic for 82571 serdes
-
-commit d0efa8f23a644f7cb7d1f8e78dd9a223efa412a3 upstream.
-
-SYNCH bit and IV bit of RXCW register are sticky. Before examining these bits,
-RXCW should be read twice to filter out one-time false events and have correct
-values for these bits. Incorrect values of these bits in link check logic can
-cause weird link stability issues if auto-negotiation fails.
-
-Reported-by: Dean Nelson <dnelson at redhat.com>
-Signed-off-by: Tushar Dave <tushar.n.dave at intel.com>
-Reviewed-by: Bruce Allan <bruce.w.allan at intel.com>
-Tested-by: Jeff Pieper <jeffrey.e.pieper at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/intel/e1000e/82571.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
-index e556fc3..3072d35 100644
---- a/drivers/net/ethernet/intel/e1000e/82571.c
-+++ b/drivers/net/ethernet/intel/e1000e/82571.c
-@@ -1571,6 +1571,9 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
- 	ctrl = er32(CTRL);
- 	status = er32(STATUS);
- 	rxcw = er32(RXCW);
-+	/* SYNCH bit and IV bit are sticky */
-+	udelay(10);
-+	rxcw = er32(RXCW);
- 
- 	if ((rxcw & E1000_RXCW_SYNCH) && !(rxcw & E1000_RXCW_IV)) {
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0057-tcm_fc-Fix-crash-seen-with-aborts-and-large-reads.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0057-tcm_fc-Fix-crash-seen-with-aborts-and-large-reads.patch
deleted file mode 100644
index eb1e62d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0057-tcm_fc-Fix-crash-seen-with-aborts-and-large-reads.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From f846f3528f3dcd02646a919a50696d026e0864ae Mon Sep 17 00:00:00 2001
-From: Mark Rustad <mark.d.rustad at intel.com>
-Date: Fri, 13 Jul 2012 18:18:04 -0700
-Subject: [PATCH 057/109] tcm_fc: Fix crash seen with aborts and large reads
-
-commit 3cc5d2a6b9a2fd1bf024aa5e52dd22961eecaf13 upstream.
-
-This patch fixes a crash seen when large reads have their exchange
-aborted by either timing out or being reset. Because the exchange
-abort results in the seq pointer being set to NULL, because the
-sequence is no longer valid, it must not be dereferenced. This
-patch changes the function ft_get_task_tag to return ~0 if it is
-unable to get the tag for this reason. Because the get_task_tag
-interface provides no means of returning an error, this seems
-like the best way to fix this issue at the moment.
-
-Signed-off-by: Mark Rustad <mark.d.rustad at intel.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/tcm_fc/tfc_cmd.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/target/tcm_fc/tfc_cmd.c b/drivers/target/tcm_fc/tfc_cmd.c
-index d95cfe2..278819c 100644
---- a/drivers/target/tcm_fc/tfc_cmd.c
-+++ b/drivers/target/tcm_fc/tfc_cmd.c
-@@ -249,6 +249,8 @@ u32 ft_get_task_tag(struct se_cmd *se_cmd)
- {
- 	struct ft_cmd *cmd = container_of(se_cmd, struct ft_cmd, se_cmd);
- 
-+	if (cmd->aborted)
-+		return ~0;
- 	return fc_seq_exch(cmd->seq)->rxid;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0058-fifo-Do-not-restart-open-if-it-already-found-a-partn.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0058-fifo-Do-not-restart-open-if-it-already-found-a-partn.patch
deleted file mode 100644
index 99a8db5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0058-fifo-Do-not-restart-open-if-it-already-found-a-partn.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From 13d0304203a528b1c1c76b5c9b6f5b8dc093f996 Mon Sep 17 00:00:00 2001
-From: Anders Kaseorg <andersk at MIT.EDU>
-Date: Sun, 15 Jul 2012 17:14:25 -0400
-Subject: [PATCH 058/109] fifo: Do not restart open() if it already found a
- partner
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 05d290d66be6ef77a0b962ebecf01911bd984a78 upstream.
-
-If a parent and child process open the two ends of a fifo, and the
-child immediately exits, the parent may receive a SIGCHLD before its
-open() returns.  In that case, we need to make sure that open() will
-return successfully after the SIGCHLD handler returns, instead of
-throwing EINTR or being restarted.  Otherwise, the restarted open()
-would incorrectly wait for a second partner on the other end.
-
-The following test demonstrates the EINTR that was wrongly thrown from
-the parent’s open().  Change .sa_flags = 0 to .sa_flags = SA_RESTART
-to see a deadlock instead, in which the restarted open() waits for a
-second reader that will never come.  (On my systems, this happens
-pretty reliably within about 5 to 500 iterations.  Others report that
-it manages to loop ~forever sometimes; YMMV.)
-
-  #include <sys/stat.h>
-  #include <sys/types.h>
-  #include <sys/wait.h>
-  #include <fcntl.h>
-  #include <signal.h>
-  #include <stdio.h>
-  #include <stdlib.h>
-  #include <unistd.h>
-
-  #define CHECK(x) do if ((x) == -1) {perror(#x); abort();} while(0)
-
-  void handler(int signum) {}
-
-  int main()
-  {
-      struct sigaction act = {.sa_handler = handler, .sa_flags = 0};
-      CHECK(sigaction(SIGCHLD, &act, NULL));
-      CHECK(mknod("fifo", S_IFIFO | S_IRWXU, 0));
-      for (;;) {
-          int fd;
-          pid_t pid;
-          putc('.', stderr);
-          CHECK(pid = fork());
-          if (pid == 0) {
-              CHECK(fd = open("fifo", O_RDONLY));
-              _exit(0);
-          }
-          CHECK(fd = open("fifo", O_WRONLY));
-          CHECK(close(fd));
-          CHECK(waitpid(pid, NULL, 0));
-      }
-  }
-
-This is what I suspect was causing the Git test suite to fail in
-t9010-svn-fe.sh:
-
-	http://bugs.debian.org/678852
-
-Signed-off-by: Anders Kaseorg <andersk at mit.edu>
-Reviewed-by: Jonathan Nieder <jrnieder at gmail.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/fifo.c |    9 ++++-----
- 1 files changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/fs/fifo.c b/fs/fifo.c
-index b1a524d..cf6f434 100644
---- a/fs/fifo.c
-+++ b/fs/fifo.c
-@@ -14,7 +14,7 @@
- #include <linux/sched.h>
- #include <linux/pipe_fs_i.h>
- 
--static void wait_for_partner(struct inode* inode, unsigned int *cnt)
-+static int wait_for_partner(struct inode* inode, unsigned int *cnt)
- {
- 	int cur = *cnt;	
- 
-@@ -23,6 +23,7 @@ static void wait_for_partner(struct inode* inode, unsigned int *cnt)
- 		if (signal_pending(current))
- 			break;
- 	}
-+	return cur == *cnt ? -ERESTARTSYS : 0;
- }
- 
- static void wake_up_partner(struct inode* inode)
-@@ -67,8 +68,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
- 				 * seen a writer */
- 				filp->f_version = pipe->w_counter;
- 			} else {
--				wait_for_partner(inode, &pipe->w_counter);
--				if(signal_pending(current))
-+				if (wait_for_partner(inode, &pipe->w_counter))
- 					goto err_rd;
- 			}
- 		}
-@@ -90,8 +90,7 @@ static int fifo_open(struct inode *inode, struct file *filp)
- 			wake_up_partner(inode);
- 
- 		if (!pipe->readers) {
--			wait_for_partner(inode, &pipe->r_counter);
--			if (signal_pending(current))
-+			if (wait_for_partner(inode, &pipe->r_counter))
- 				goto err_wr;
- 		}
- 		break;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0059-target-Clean-up-returning-errors-in-PR-handling-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0059-target-Clean-up-returning-errors-in-PR-handling-code.patch
deleted file mode 100644
index 273c119..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0059-target-Clean-up-returning-errors-in-PR-handling-code.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From ab68c7b575aff70124f83d2ec207d06c60eea003 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 15:17:10 -0700
-Subject: [PATCH 059/109] target: Clean up returning errors in PR handling
- code
-
-commit d35212f3ca3bf4fb49d15e37f530c9931e2d2183 upstream.
-
- - instead of (PTR_ERR(file) < 0) just use IS_ERR(file)
- - return -EINVAL instead of EINVAL
- - all other error returns in target_scsi3_emulate_pr_out() use
-   "goto out" -- get rid of the one remaining straight "return."
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_pr.c |    7 ++++---
- 1 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index b75bc92..9145141 100644
---- a/drivers/target/target_core_pr.c
-+++ b/drivers/target/target_core_pr.c
-@@ -2042,7 +2042,7 @@ static int __core_scsi3_write_aptpl_to_file(
- 	if (IS_ERR(file) || !file || !file->f_dentry) {
- 		pr_err("filp_open(%s) for APTPL metadata"
- 			" failed\n", path);
--		return (PTR_ERR(file) < 0 ? PTR_ERR(file) : -ENOENT);
-+		return IS_ERR(file) ? PTR_ERR(file) : -ENOENT;
- 	}
- 
- 	iov[0].iov_base = &buf[0];
-@@ -3853,7 +3853,7 @@ int target_scsi3_emulate_pr_out(struct se_task *task)
- 			" SPC-2 reservation is held, returning"
- 			" RESERVATION_CONFLICT\n");
- 		cmd->scsi_sense_reason = TCM_RESERVATION_CONFLICT;
--		ret = EINVAL;
-+		ret = -EINVAL;
- 		goto out;
- 	}
- 
-@@ -3863,7 +3863,8 @@ int target_scsi3_emulate_pr_out(struct se_task *task)
- 	 */
- 	if (!cmd->se_sess) {
- 		cmd->scsi_sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
--		return -EINVAL;
-+		ret = -EINVAL;
-+		goto out;
- 	}
- 
- 	if (cmd->data_length < 24) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0060-target-Fix-range-calculation-in-WRITE-SAME-emulation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0060-target-Fix-range-calculation-in-WRITE-SAME-emulation.patch
deleted file mode 100644
index 264206d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0060-target-Fix-range-calculation-in-WRITE-SAME-emulation.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 63a96e329f2c66af145a93d6f42067e54ef932af Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 17:10:17 -0700
-Subject: [PATCH 060/109] target: Fix range calculation in WRITE SAME
- emulation when num blocks == 0
-
-commit 1765fe5edcb83f53fc67edeb559fcf4bc82c6460 upstream.
-
-When NUMBER OF LOGICAL BLOCKS is 0, WRITE SAME is supposed to write
-all the blocks from the specified LBA through the end of the device.
-However, dev->transport->get_blocks(dev) (perhaps confusingly) returns
-the last valid LBA rather than the number of blocks, so the correct
-number of blocks to write starting with lba is
-
-dev->transport->get_blocks(dev) - lba + 1
-
-(nab: Backport roland's for-3.6 patch to for-3.5)
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_cdb.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 65ea65a..93b9406 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -1199,7 +1199,7 @@ int target_emulate_write_same(struct se_task *task)
- 	if (num_blocks != 0)
- 		range = num_blocks;
- 	else
--		range = (dev->transport->get_blocks(dev) - lba);
-+		range = (dev->transport->get_blocks(dev) - lba) + 1;
- 
- 	pr_debug("WRITE_SAME UNMAP: LBA: %llu Range: %llu\n",
- 		 (unsigned long long)lba, (unsigned long long)range);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0061-cifs-on-CONFIG_HIGHMEM-machines-limit-the-rsize-wsiz.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0061-cifs-on-CONFIG_HIGHMEM-machines-limit-the-rsize-wsiz.patch
deleted file mode 100644
index e3fc6d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0061-cifs-on-CONFIG_HIGHMEM-machines-limit-the-rsize-wsiz.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 0028855e0b717cadb5fc6b05934af9bd9d2cc4c1 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Wed, 11 Jul 2012 09:09:35 -0400
-Subject: [PATCH 061/109] cifs: on CONFIG_HIGHMEM machines, limit the
- rsize/wsize to the kmap space
-
-commit 3ae629d98bd5ed77585a878566f04f310adbc591 upstream.
-
-We currently rely on being able to kmap all of the pages in an async
-read or write request. If you're on a machine that has CONFIG_HIGHMEM
-set then that kmap space is limited, sometimes to as low as 512 slots.
-
-With 512 slots, we can only support up to a 2M r/wsize, and that's
-assuming that we can get our greedy little hands on all of them. There
-are other users however, so it's possible we'll end up stuck with a
-size that large.
-
-Since we can't handle a rsize or wsize larger than that currently, cap
-those options at the number of kmap slots we have. We could consider
-capping it even lower, but we currently default to a max of 1M. Might as
-well allow those luddites on 32 bit arches enough rope to hang
-themselves.
-
-A more robust fix would be to teach the send and receive routines how
-to contend with an array of pages so we don't need to marshal up a kvec
-array at all. That's a fairly significant overhaul though, so we'll need
-this limit in place until that's ready.
-
-Reported-by: Jian Li <jiali at redhat.com>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/connect.c |   18 ++++++++++++++++++
- 1 files changed, 18 insertions(+), 0 deletions(-)
-
-diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
-index b21670c..56c152d 100644
---- a/fs/cifs/connect.c
-+++ b/fs/cifs/connect.c
-@@ -2925,6 +2925,18 @@ void cifs_setup_cifs_sb(struct smb_vol *pvolume_info,
- #define CIFS_DEFAULT_NON_POSIX_RSIZE (60 * 1024)
- #define CIFS_DEFAULT_NON_POSIX_WSIZE (65536)
- 
-+/*
-+ * On hosts with high memory, we can't currently support wsize/rsize that are
-+ * larger than we can kmap at once. Cap the rsize/wsize at
-+ * LAST_PKMAP * PAGE_SIZE. We'll never be able to fill a read or write request
-+ * larger than that anyway.
-+ */
-+#ifdef CONFIG_HIGHMEM
-+#define CIFS_KMAP_SIZE_LIMIT	(LAST_PKMAP * PAGE_CACHE_SIZE)
-+#else /* CONFIG_HIGHMEM */
-+#define CIFS_KMAP_SIZE_LIMIT	(1<<24)
-+#endif /* CONFIG_HIGHMEM */
-+
- static unsigned int
- cifs_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *pvolume_info)
- {
-@@ -2955,6 +2967,9 @@ cifs_negotiate_wsize(struct cifs_tcon *tcon, struct smb_vol *pvolume_info)
- 		wsize = min_t(unsigned int, wsize,
- 				server->maxBuf - sizeof(WRITE_REQ) + 4);
- 
-+	/* limit to the amount that we can kmap at once */
-+	wsize = min_t(unsigned int, wsize, CIFS_KMAP_SIZE_LIMIT);
-+
- 	/* hard limit of CIFS_MAX_WSIZE */
- 	wsize = min_t(unsigned int, wsize, CIFS_MAX_WSIZE);
- 
-@@ -2996,6 +3011,9 @@ cifs_negotiate_rsize(struct cifs_tcon *tcon, struct smb_vol *pvolume_info)
- 	if (!(server->capabilities & CAP_LARGE_READ_X))
- 		rsize = min_t(unsigned int, CIFSMaxBufSize, rsize);
- 
-+	/* limit to the amount that we can kmap at once */
-+	rsize = min_t(unsigned int, rsize, CIFS_KMAP_SIZE_LIMIT);
-+
- 	/* hard limit of CIFS_MAX_RSIZE */
- 	rsize = min_t(unsigned int, rsize, CIFS_MAX_RSIZE);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0062-cifs-always-update-the-inode-cache-with-the-results-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0062-cifs-always-update-the-inode-cache-with-the-results-.patch
deleted file mode 100644
index 6e67cc9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0062-cifs-always-update-the-inode-cache-with-the-results-.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 3d7e548a161a109e404e1068901f834c69eeb0ea Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Fri, 6 Jul 2012 07:09:42 -0400
-Subject: [PATCH 062/109] cifs: always update the inode cache with the results
- from a FIND_*
-
-commit cd60042cc1392e79410dc8de9e9c1abb38a29e57 upstream.
-
-When we get back a FIND_FIRST/NEXT result, we have some info about the
-dentry that we use to instantiate a new inode. We were ignoring and
-discarding that info when we had an existing dentry in the cache.
-
-Fix this by updating the inode in place when we find an existing dentry
-and the uniqueid is the same.
-
-Reported-and-Tested-by: Andrew Bartlett <abartlet at samba.org>
-Reported-by: Bill Robertson <bill_robertson at debortoli.com.au>
-Reported-by: Dion Edwards <dion_edwards at debortoli.com.au>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/readdir.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/fs/cifs/readdir.c b/fs/cifs/readdir.c
-index db4a138..4c37ed4 100644
---- a/fs/cifs/readdir.c
-+++ b/fs/cifs/readdir.c
-@@ -86,9 +86,12 @@ cifs_readdir_lookup(struct dentry *parent, struct qstr *name,
- 
- 	dentry = d_lookup(parent, name);
- 	if (dentry) {
--		/* FIXME: check for inode number changes? */
--		if (dentry->d_inode != NULL)
-+		inode = dentry->d_inode;
-+		/* update inode in place if i_ino didn't change */
-+		if (inode && CIFS_I(inode)->uniqueid == fattr->cf_uniqueid) {
-+			cifs_fattr_to_inode(inode, fattr);
- 			return dentry;
-+		}
- 		d_drop(dentry);
- 		dput(dentry);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0063-mm-fix-lost-kswapd-wakeup-in-kswapd_stop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0063-mm-fix-lost-kswapd-wakeup-in-kswapd_stop.patch
deleted file mode 100644
index 198dc15..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0063-mm-fix-lost-kswapd-wakeup-in-kswapd_stop.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From 6ece4e48bfa223f77eff8fc4d2fcc4808214f42e Mon Sep 17 00:00:00 2001
-From: Aaditya Kumar <aaditya.kumar.30 at gmail.com>
-Date: Tue, 17 Jul 2012 15:48:07 -0700
-Subject: [PATCH 063/109] mm: fix lost kswapd wakeup in kswapd_stop()
-
-commit 1c7e7f6c0703d03af6bcd5ccc11fc15d23e5ecbe upstream.
-
-Offlining memory may block forever, waiting for kswapd() to wake up
-because kswapd() does not check the event kthread->should_stop before
-sleeping.
-
-The proper pattern, from Documentation/memory-barriers.txt, is:
-
-   ---  waker  ---
-   event_indicated = 1;
-   wake_up_process(event_daemon);
-
-   ---  sleeper  ---
-   for (;;) {
-      set_current_state(TASK_UNINTERRUPTIBLE);
-      if (event_indicated)
-         break;
-      schedule();
-   }
-
-   set_current_state() may be wrapped by:
-      prepare_to_wait();
-
-In the kswapd() case, event_indicated is kthread->should_stop.
-
-  === offlining memory (waker) ===
-   kswapd_stop()
-      kthread_stop()
-         kthread->should_stop = 1
-         wake_up_process()
-         wait_for_completion()
-
-  ===  kswapd_try_to_sleep (sleeper) ===
-   kswapd_try_to_sleep()
-      prepare_to_wait()
-           .
-           .
-      schedule()
-           .
-           .
-      finish_wait()
-
-The schedule() needs to be protected by a test of kthread->should_stop,
-which is wrapped by kthread_should_stop().
-
-Reproducer:
-   Do heavy file I/O in background.
-   Do a memory offline/online in a tight loop
-
-Signed-off-by: Aaditya Kumar <aaditya.kumar at ap.sony.com>
-Acked-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Reviewed-by: Minchan Kim <minchan at kernel.org>
-Acked-by: Mel Gorman <mel at csn.ul.ie>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 72cf498..8342119 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2824,7 +2824,10 @@ static void kswapd_try_to_sleep(pg_data_t *pgdat, int order, int classzone_idx)
- 		 * them before going back to sleep.
- 		 */
- 		set_pgdat_percpu_threshold(pgdat, calculate_normal_threshold);
--		schedule();
-+
-+		if (!kthread_should_stop())
-+			schedule();
-+
- 		set_pgdat_percpu_threshold(pgdat, calculate_pressure_threshold);
- 	} else {
- 		if (remaining)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0064-md-avoid-crash-when-stopping-md-array-races-with-clo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0064-md-avoid-crash-when-stopping-md-array-races-with-clo.patch
deleted file mode 100644
index 3ef68e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0064-md-avoid-crash-when-stopping-md-array-races-with-clo.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 22c2c30192d85ffa042433e89e929b4ea08ab528 Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Thu, 19 Jul 2012 15:59:18 +1000
-Subject: [PATCH 064/109] md: avoid crash when stopping md array races with
- closing other open fds.
-
-commit a05b7ea03d72f36edb0cec05e8893803335c61a0 upstream.
-
-md will refuse to stop an array if any other fd (or mounted fs) is
-using it.
-When any fs is unmounted of when the last open fd is closed all
-pending IO will be flushed (e.g. sync_blockdev call in __blkdev_put)
-so there will be no pending IO to worry about when the array is
-stopped.
-
-However in order to send the STOP_ARRAY ioctl to stop the array one
-must first get and open fd on the block device.
-If some fd is being used to write to the block device and it is closed
-after mdadm open the block device, but before mdadm issues the
-STOP_ARRAY ioctl, then there will be no last-close on the md device so
-__blkdev_put will not call sync_blockdev.
-
-If this happens, then IO can still be in-flight while md tears down
-the array and bad things can happen (use-after-free and subsequent
-havoc).
-
-So in the case where do_md_stop is being called from an open file
-descriptor, call sync_block after taking the mutex to ensure there
-will be no new openers.
-
-This is needed when setting a read-write device to read-only too.
-
-Reported-by: majianpeng <majianpeng at gmail.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/md.c |   36 +++++++++++++++++++++++-------------
- 1 files changed, 23 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/md/md.c b/drivers/md/md.c
-index 700ecae..d8646d7 100644
---- a/drivers/md/md.c
-+++ b/drivers/md/md.c
-@@ -3700,8 +3700,8 @@ array_state_show(struct mddev *mddev, char *page)
- 	return sprintf(page, "%s\n", array_states[st]);
- }
- 
--static int do_md_stop(struct mddev * mddev, int ro, int is_open);
--static int md_set_readonly(struct mddev * mddev, int is_open);
-+static int do_md_stop(struct mddev * mddev, int ro, struct block_device *bdev);
-+static int md_set_readonly(struct mddev * mddev, struct block_device *bdev);
- static int do_md_run(struct mddev * mddev);
- static int restart_array(struct mddev *mddev);
- 
-@@ -3717,14 +3717,14 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len)
- 		/* stopping an active array */
- 		if (atomic_read(&mddev->openers) > 0)
- 			return -EBUSY;
--		err = do_md_stop(mddev, 0, 0);
-+		err = do_md_stop(mddev, 0, NULL);
- 		break;
- 	case inactive:
- 		/* stopping an active array */
- 		if (mddev->pers) {
- 			if (atomic_read(&mddev->openers) > 0)
- 				return -EBUSY;
--			err = do_md_stop(mddev, 2, 0);
-+			err = do_md_stop(mddev, 2, NULL);
- 		} else
- 			err = 0; /* already inactive */
- 		break;
-@@ -3732,7 +3732,7 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len)
- 		break; /* not supported yet */
- 	case readonly:
- 		if (mddev->pers)
--			err = md_set_readonly(mddev, 0);
-+			err = md_set_readonly(mddev, NULL);
- 		else {
- 			mddev->ro = 1;
- 			set_disk_ro(mddev->gendisk, 1);
-@@ -3742,7 +3742,7 @@ array_state_store(struct mddev *mddev, const char *buf, size_t len)
- 	case read_auto:
- 		if (mddev->pers) {
- 			if (mddev->ro == 0)
--				err = md_set_readonly(mddev, 0);
-+				err = md_set_readonly(mddev, NULL);
- 			else if (mddev->ro == 1)
- 				err = restart_array(mddev);
- 			if (err == 0) {
-@@ -5078,15 +5078,17 @@ void md_stop(struct mddev *mddev)
- }
- EXPORT_SYMBOL_GPL(md_stop);
- 
--static int md_set_readonly(struct mddev *mddev, int is_open)
-+static int md_set_readonly(struct mddev *mddev, struct block_device *bdev)
- {
- 	int err = 0;
- 	mutex_lock(&mddev->open_mutex);
--	if (atomic_read(&mddev->openers) > is_open) {
-+	if (atomic_read(&mddev->openers) > !!bdev) {
- 		printk("md: %s still in use.\n",mdname(mddev));
- 		err = -EBUSY;
- 		goto out;
- 	}
-+	if (bdev)
-+		sync_blockdev(bdev);
- 	if (mddev->pers) {
- 		__md_stop_writes(mddev);
- 
-@@ -5108,18 +5110,26 @@ out:
-  *   0 - completely stop and dis-assemble array
-  *   2 - stop but do not disassemble array
-  */
--static int do_md_stop(struct mddev * mddev, int mode, int is_open)
-+static int do_md_stop(struct mddev * mddev, int mode,
-+		      struct block_device *bdev)
- {
- 	struct gendisk *disk = mddev->gendisk;
- 	struct md_rdev *rdev;
- 
- 	mutex_lock(&mddev->open_mutex);
--	if (atomic_read(&mddev->openers) > is_open ||
-+	if (atomic_read(&mddev->openers) > !!bdev ||
- 	    mddev->sysfs_active) {
- 		printk("md: %s still in use.\n",mdname(mddev));
- 		mutex_unlock(&mddev->open_mutex);
- 		return -EBUSY;
- 	}
-+	if (bdev)
-+		/* It is possible IO was issued on some other
-+		 * open file which was closed before we took ->open_mutex.
-+		 * As that was not the last close __blkdev_put will not
-+		 * have called sync_blockdev, so we must.
-+		 */
-+		sync_blockdev(bdev);
- 
- 	if (mddev->pers) {
- 		if (mddev->ro)
-@@ -5193,7 +5203,7 @@ static void autorun_array(struct mddev *mddev)
- 	err = do_md_run(mddev);
- 	if (err) {
- 		printk(KERN_WARNING "md: do_md_run() returned %d\n", err);
--		do_md_stop(mddev, 0, 0);
-+		do_md_stop(mddev, 0, NULL);
- 	}
- }
- 
-@@ -6184,11 +6194,11 @@ static int md_ioctl(struct block_device *bdev, fmode_t mode,
- 			goto done_unlock;
- 
- 		case STOP_ARRAY:
--			err = do_md_stop(mddev, 0, 1);
-+			err = do_md_stop(mddev, 0, bdev);
- 			goto done_unlock;
- 
- 		case STOP_ARRAY_RO:
--			err = md_set_readonly(mddev, 1);
-+			err = md_set_readonly(mddev, bdev);
- 			goto done_unlock;
- 
- 		case BLKROSET:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0065-md-raid1-close-some-possible-races-on-write-errors-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0065-md-raid1-close-some-possible-races-on-write-errors-d.patch
deleted file mode 100644
index b3bd32c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0065-md-raid1-close-some-possible-races-on-write-errors-d.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From a5f676adf9ef247dd5363de5f0e26d0bdb6597bc Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Thu, 19 Jul 2012 15:59:18 +1000
-Subject: [PATCH 065/109] md/raid1: close some possible races on write errors
- during resync
-
-commit 58e94ae18478c08229626daece2fc108a4a23261 upstream.
-
-commit 4367af556133723d0f443e14ca8170d9447317cb
-   md/raid1: clear bad-block record when write succeeds.
-
-Added a 'reschedule_retry' call possibility at the end of
-end_sync_write, but didn't add matching code at the end of
-sync_request_write.  So if the writes complete very quickly, or
-scheduling makes it seem that way, then we can miss rescheduling
-the request and the resync could hang.
-
-Also commit 73d5c38a9536142e062c35997b044e89166e063b
-    md: avoid races when stopping resync.
-
-Fix a race condition in this same code in end_sync_write but didn't
-make the change in sync_request_write.
-
-This patch updates sync_request_write to fix both of those.
-Patch is suitable for 3.1 and later kernels.
-
-Reported-by: Alexander Lyakas <alex.bolshoy at gmail.com>
-Original-version-by: Alexander Lyakas <alex.bolshoy at gmail.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid1.c |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index 58f0055..2d97bf0 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -1713,8 +1713,14 @@ static void sync_request_write(struct mddev *mddev, struct r1bio *r1_bio)
- 
- 	if (atomic_dec_and_test(&r1_bio->remaining)) {
- 		/* if we're here, all write(s) have completed, so clean up */
--		md_done_sync(mddev, r1_bio->sectors, 1);
--		put_buf(r1_bio);
-+		int s = r1_bio->sectors;
-+		if (test_bit(R1BIO_MadeGood, &r1_bio->state) ||
-+		    test_bit(R1BIO_WriteError, &r1_bio->state))
-+			reschedule_retry(r1_bio);
-+		else {
-+			put_buf(r1_bio);
-+			md_done_sync(mddev, s, 1);
-+		}
- 	}
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0066-MIPS-Properly-align-the-.data.init_task-section.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0066-MIPS-Properly-align-the-.data.init_task-section.patch
deleted file mode 100644
index c9ab6f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0066-MIPS-Properly-align-the-.data.init_task-section.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 892d35f24ea2801daef7e48e41d8ec4e9bac34e8 Mon Sep 17 00:00:00 2001
-From: David Daney <david.daney at cavium.com>
-Date: Thu, 19 Jul 2012 09:11:14 +0200
-Subject: [PATCH 066/109] MIPS: Properly align the .data..init_task section.
-
-commit 7b1c0d26a8e272787f0f9fcc5f3e8531df3b3409 upstream.
-
-Improper alignment can lead to unbootable systems and/or random
-crashes.
-
-[ralf at linux-mips.org: This is a lond standing bug since
-6eb10bc9e2deab06630261cd05c4cb1e9a60e980 (kernel.org) rsp.
-c422a10917f75fd19fa7fe070aaaa23e384dae6f (lmo) [MIPS: Clean up linker script
-using new linker script macros.] so dates back to 2.6.32.]
-
-Signed-off-by: David Daney <david.daney at cavium.com>
-Cc: linux-mips at linux-mips.org
-Patchwork: https://patchwork.linux-mips.org/patch/3881/
-Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/mips/include/asm/thread_info.h |    4 ++--
- arch/mips/kernel/vmlinux.lds.S      |    3 ++-
- 2 files changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/arch/mips/include/asm/thread_info.h b/arch/mips/include/asm/thread_info.h
-index 97f8bf6..adda036 100644
---- a/arch/mips/include/asm/thread_info.h
-+++ b/arch/mips/include/asm/thread_info.h
-@@ -60,6 +60,8 @@ struct thread_info {
- register struct thread_info *__current_thread_info __asm__("$28");
- #define current_thread_info()  __current_thread_info
- 
-+#endif /* !__ASSEMBLY__ */
-+
- /* thread information allocation */
- #if defined(CONFIG_PAGE_SIZE_4KB) && defined(CONFIG_32BIT)
- #define THREAD_SIZE_ORDER (1)
-@@ -97,8 +99,6 @@ register struct thread_info *__current_thread_info __asm__("$28");
- 
- #define free_thread_info(info) kfree(info)
- 
--#endif /* !__ASSEMBLY__ */
--
- #define PREEMPT_ACTIVE		0x10000000
- 
- /*
-diff --git a/arch/mips/kernel/vmlinux.lds.S b/arch/mips/kernel/vmlinux.lds.S
-index a81176f..be281c6 100644
---- a/arch/mips/kernel/vmlinux.lds.S
-+++ b/arch/mips/kernel/vmlinux.lds.S
-@@ -1,5 +1,6 @@
- #include <asm/asm-offsets.h>
- #include <asm/page.h>
-+#include <asm/thread_info.h>
- #include <asm-generic/vmlinux.lds.h>
- 
- #undef mips
-@@ -73,7 +74,7 @@ SECTIONS
- 	.data : {	/* Data */
- 		. = . + DATAOFFSET;		/* for CONFIG_MAPPED_KERNEL */
- 
--		INIT_TASK_DATA(PAGE_SIZE)
-+		INIT_TASK_DATA(THREAD_SIZE)
- 		NOSAVE_DATA
- 		CACHELINE_ALIGNED_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
- 		READ_MOSTLY_DATA(1 << CONFIG_MIPS_L1_CACHE_SHIFT)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0067-UBIFS-fix-a-bug-in-empty-space-fix-up.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0067-UBIFS-fix-a-bug-in-empty-space-fix-up.patch
deleted file mode 100644
index c51b177..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0067-UBIFS-fix-a-bug-in-empty-space-fix-up.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From f6ba94c29333fa6df9b3b553415e93bafbd3c831 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <Artem.Bityutskiy at linux.intel.com>
-Date: Sat, 14 Jul 2012 14:33:09 +0300
-Subject: [PATCH 067/109] UBIFS: fix a bug in empty space fix-up
-
-commit c6727932cfdb13501108b16c38463c09d5ec7a74 upstream.
-
-UBIFS has a feature called "empty space fix-up" which is a quirk to work-around
-limitations of dumb flasher programs. Namely, of those flashers that are unable
-to skip NAND pages full of 0xFFs while flashing, resulting in empty space at
-the end of half-filled eraseblocks to be unusable for UBIFS. This feature is
-relatively new (introduced in v3.0).
-
-The fix-up routine (fixup_free_space()) is executed only once at the very first
-mount if the superblock has the 'space_fixup' flag set (can be done with -F
-option of mkfs.ubifs). It basically reads all the UBIFS data and metadata and
-writes it back to the same LEB. The routine assumes the image is pristine and
-does not have anything in the journal.
-
-There was a bug in 'fixup_free_space()' where it fixed up the log incorrectly.
-All but one LEB of the log of a pristine file-system are empty. And one
-contains just a commit start node. And 'fixup_free_space()' just unmapped this
-LEB, which resulted in wiping the commit start node. As a result, some users
-were unable to mount the file-system next time with the following symptom:
-
-UBIFS error (pid 1): replay_log_leb: first log node at LEB 3:0 is not CS node
-UBIFS error (pid 1): replay_log_leb: log error detected while replaying the log at LEB 3:0
-
-The root-cause of this bug was that 'fixup_free_space()' wrongly assumed
-that the beginning of empty space in the log head (c->lhead_offs) was known
-on mount. However, it is not the case - it was always 0. UBIFS does not store
-in it the master node and finds out by scanning the log on every mount.
-
-The fix is simple - just pass commit start node size instead of 0 to
-'fixup_leb()'.
-
-Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy at linux.intel.com>
-Reported-by: Iwo Mergler <Iwo.Mergler at netcommwireless.com>
-Tested-by: Iwo Mergler <Iwo.Mergler at netcommwireless.com>
-Reported-by: James Nute <newten82 at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ubifs/sb.c |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ubifs/sb.c b/fs/ubifs/sb.c
-index 6094c5a..b73ecd8 100644
---- a/fs/ubifs/sb.c
-+++ b/fs/ubifs/sb.c
-@@ -715,8 +715,12 @@ static int fixup_free_space(struct ubifs_info *c)
- 		lnum = ubifs_next_log_lnum(c, lnum);
- 	}
- 
--	/* Fixup the current log head */
--	err = fixup_leb(c, c->lhead_lnum, c->lhead_offs);
-+	/*
-+	 * Fixup the log head which contains the only a CS node at the
-+	 * beginning.
-+	 */
-+	err = fixup_leb(c, c->lhead_lnum,
-+			ALIGN(UBIFS_CS_NODE_SZ, c->min_io_size));
- 	if (err)
- 		goto out;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0068-ore-Fix-NFS-crash-by-supporting-any-unaligned-RAID-I.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0068-ore-Fix-NFS-crash-by-supporting-any-unaligned-RAID-I.patch
deleted file mode 100644
index 0dabe3b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0068-ore-Fix-NFS-crash-by-supporting-any-unaligned-RAID-I.patch
+++ /dev/null
@@ -1,211 +0,0 @@
-From b4c39a3690fd0d723f50eba441fe567e8fee68f1 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Fri, 8 Jun 2012 01:19:07 +0300
-Subject: [PATCH 068/109] ore: Fix NFS crash by supporting any unaligned RAID
- IO
-
-commit 9ff19309a9623f2963ac5a136782ea4d8b5d67fb upstream.
-
-In RAID_5/6 We used to not permit an IO that it's end
-byte is not stripe_size aligned and spans more than one stripe.
-.i.e the caller must check if after submission the actual
-transferred bytes is shorter, and would need to resubmit
-a new IO with the remainder.
-
-Exofs supports this, and NFS was supposed to support this
-as well with it's short write mechanism. But late testing has
-exposed a CRASH when this is used with none-RPC layout-drivers.
-
-The change at NFS is deep and risky, in it's place the fix
-at ORE to lift the limitation is actually clean and simple.
-So here it is below.
-
-The principal here is that in the case of unaligned IO on
-both ends, beginning and end, we will send two read requests
-one like old code, before the calculation of the first stripe,
-and also a new site, before the calculation of the last stripe.
-If any "boundary" is aligned or the complete IO is within a single
-stripe. we do a single read like before.
-
-The code is clean and simple by splitting the old _read_4_write
-into 3 even parts:
-1._read_4_write_first_stripe
-2. _read_4_write_last_stripe
-3. _read_4_write_execute
-
-And calling 1+3 at the same place as before. 2+3 before last
-stripe, and in the case of all in a single stripe then 1+2+3
-is preformed additively.
-
-Why did I not think of it before. Well I had a strike of
-genius because I have stared at this code for 2 years, and did
-not find this simple solution, til today. Not that I did not try.
-
-This solution is much better for NFS than the previous supposedly
-solution because the short write was dealt  with out-of-band after
-IO_done, which would cause for a seeky IO pattern where as in here
-we execute in order. At both solutions we do 2 separate reads, only
-here we do it within a single IO request. (And actually combine two
-writes into a single submission)
-
-NFS/exofs code need not change since the ORE API communicates the new
-shorter length on return, what will happen is that this case would not
-occur anymore.
-
-hurray!!
-
-[Stable this is an NFS bug since 3.2 Kernel should apply cleanly]
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/exofs/ore_raid.c |   67 +++++++++++++++++++++++++++-----------------------
- 1 files changed, 36 insertions(+), 31 deletions(-)
-
-diff --git a/fs/exofs/ore_raid.c b/fs/exofs/ore_raid.c
-index d222c77..fff2070 100644
---- a/fs/exofs/ore_raid.c
-+++ b/fs/exofs/ore_raid.c
-@@ -461,16 +461,12 @@ static void _mark_read4write_pages_uptodate(struct ore_io_state *ios, int ret)
-  * ios->sp2d[p][*], xor is calculated the same way. These pages are
-  * allocated/freed and don't go through cache
-  */
--static int _read_4_write(struct ore_io_state *ios)
-+static int _read_4_write_first_stripe(struct ore_io_state *ios)
- {
--	struct ore_io_state *ios_read;
- 	struct ore_striping_info read_si;
- 	struct __stripe_pages_2d *sp2d = ios->sp2d;
- 	u64 offset = ios->si.first_stripe_start;
--	u64 last_stripe_end;
--	unsigned bytes_in_stripe = ios->si.bytes_in_stripe;
--	unsigned i, c, p, min_p = sp2d->pages_in_unit, max_p = -1;
--	int ret;
-+	unsigned c, p, min_p = sp2d->pages_in_unit, max_p = -1;
- 
- 	if (offset == ios->offset) /* Go to start collect $200 */
- 		goto read_last_stripe;
-@@ -478,6 +474,9 @@ static int _read_4_write(struct ore_io_state *ios)
- 	min_p = _sp2d_min_pg(sp2d);
- 	max_p = _sp2d_max_pg(sp2d);
- 
-+	ORE_DBGMSG("stripe_start=0x%llx ios->offset=0x%llx min_p=%d max_p=%d\n",
-+		   offset, ios->offset, min_p, max_p);
-+
- 	for (c = 0; ; c++) {
- 		ore_calc_stripe_info(ios->layout, offset, 0, &read_si);
- 		read_si.obj_offset += min_p * PAGE_SIZE;
-@@ -512,6 +511,18 @@ static int _read_4_write(struct ore_io_state *ios)
- 	}
- 
- read_last_stripe:
-+	return 0;
-+}
-+
-+static int _read_4_write_last_stripe(struct ore_io_state *ios)
-+{
-+	struct ore_striping_info read_si;
-+	struct __stripe_pages_2d *sp2d = ios->sp2d;
-+	u64 offset;
-+	u64 last_stripe_end;
-+	unsigned bytes_in_stripe = ios->si.bytes_in_stripe;
-+	unsigned c, p, min_p = sp2d->pages_in_unit, max_p = -1;
-+
- 	offset = ios->offset + ios->length;
- 	if (offset % PAGE_SIZE)
- 		_add_to_r4w_last_page(ios, &offset);
-@@ -527,15 +538,15 @@ read_last_stripe:
- 	c = _dev_order(ios->layout->group_width * ios->layout->mirrors_p1,
- 		       ios->layout->mirrors_p1, read_si.par_dev, read_si.dev);
- 
--	BUG_ON(ios->si.first_stripe_start + bytes_in_stripe != last_stripe_end);
--	/* unaligned IO must be within a single stripe */
--
- 	if (min_p == sp2d->pages_in_unit) {
- 		/* Didn't do it yet */
- 		min_p = _sp2d_min_pg(sp2d);
- 		max_p = _sp2d_max_pg(sp2d);
- 	}
- 
-+	ORE_DBGMSG("offset=0x%llx stripe_end=0x%llx min_p=%d max_p=%d\n",
-+		   offset, last_stripe_end, min_p, max_p);
-+
- 	while (offset < last_stripe_end) {
- 		struct __1_page_stripe *_1ps = &sp2d->_1p_stripes[p];
- 
-@@ -568,6 +579,15 @@ read_last_stripe:
- 	}
- 
- read_it:
-+	return 0;
-+}
-+
-+static int _read_4_write_execute(struct ore_io_state *ios)
-+{
-+	struct ore_io_state *ios_read;
-+	unsigned i;
-+	int ret;
-+
- 	ios_read = ios->ios_read_4_write;
- 	if (!ios_read)
- 		return 0;
-@@ -591,6 +611,8 @@ read_it:
- 	}
- 
- 	_mark_read4write_pages_uptodate(ios_read, ret);
-+	ore_put_io_state(ios_read);
-+	ios->ios_read_4_write = NULL; /* Might need a reuse at last stripe */
- 	return 0;
- }
- 
-@@ -626,8 +648,11 @@ int _ore_add_parity_unit(struct ore_io_state *ios,
- 			/* If first stripe, Read in all read4write pages
- 			 * (if needed) before we calculate the first parity.
- 			 */
--			_read_4_write(ios);
-+			_read_4_write_first_stripe(ios);
- 		}
-+		if (!cur_len) /* If last stripe r4w pages of last stripe */
-+			_read_4_write_last_stripe(ios);
-+		_read_4_write_execute(ios);
- 
- 		for (i = 0; i < num_pages; i++) {
- 			pages[i] = _raid_page_alloc();
-@@ -654,34 +679,14 @@ int _ore_add_parity_unit(struct ore_io_state *ios,
- 
- int _ore_post_alloc_raid_stuff(struct ore_io_state *ios)
- {
--	struct ore_layout *layout = ios->layout;
--
- 	if (ios->parity_pages) {
-+		struct ore_layout *layout = ios->layout;
- 		unsigned pages_in_unit = layout->stripe_unit / PAGE_SIZE;
--		unsigned stripe_size = ios->si.bytes_in_stripe;
--		u64 last_stripe, first_stripe;
- 
- 		if (_sp2d_alloc(pages_in_unit, layout->group_width,
- 				layout->parity, &ios->sp2d)) {
- 			return -ENOMEM;
- 		}
--
--		/* Round io down to last full strip */
--		first_stripe = div_u64(ios->offset, stripe_size);
--		last_stripe = div_u64(ios->offset + ios->length, stripe_size);
--
--		/* If an IO spans more then a single stripe it must end at
--		 * a stripe boundary. The reminder at the end is pushed into the
--		 * next IO.
--		 */
--		if (last_stripe != first_stripe) {
--			ios->length = last_stripe * stripe_size - ios->offset;
--
--			BUG_ON(!ios->length);
--			ios->nr_pages = (ios->length + PAGE_SIZE - 1) /
--					PAGE_SIZE;
--			ios->si.length = ios->length; /*make it consistent */
--		}
- 	}
- 	return 0;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0069-ore-Remove-support-of-partial-IO-request-NFS-crash.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0069-ore-Remove-support-of-partial-IO-request-NFS-crash.patch
deleted file mode 100644
index dade112..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0069-ore-Remove-support-of-partial-IO-request-NFS-crash.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a2f43c94b074e0bf567ddc35e17504bbcd237ae1 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Fri, 8 Jun 2012 04:30:40 +0300
-Subject: [PATCH 069/109] ore: Remove support of partial IO request (NFS
- crash)
-
-commit 62b62ad873f2accad9222a4d7ffbe1e93f6714c1 upstream.
-
-Do to OOM situations the ore might fail to allocate all resources
-needed for IO of the full request. If some progress was possible
-it would proceed with a partial/short request, for the sake of
-forward progress.
-
-Since this crashes NFS-core and exofs is just fine without it just
-remove this contraption, and fail.
-
-TODO:
-	Support real forward progress with some reserved allocations
-	of resources, such as mem pools and/or bio_sets
-
-[Bug since 3.2 Kernel]
-CC: Benny Halevy <bhalevy at tonian.com>
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/exofs/ore.c |    8 +-------
- 1 files changed, 1 insertions(+), 7 deletions(-)
-
-diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
-index 49cf230..24a49d4 100644
---- a/fs/exofs/ore.c
-+++ b/fs/exofs/ore.c
-@@ -735,13 +735,7 @@ static int _prepare_for_striping(struct ore_io_state *ios)
- out:
- 	ios->numdevs = devs_in_group;
- 	ios->pages_consumed = cur_pg;
--	if (unlikely(ret)) {
--		if (length == ios->length)
--			return ret;
--		else
--			ios->length -= length;
--	}
--	return 0;
-+	return ret;
- }
- 
- int ore_create(struct ore_io_state *ios)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0070-pnfs-obj-don-t-leak-objio_state-if-ore_write-read-fa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0070-pnfs-obj-don-t-leak-objio_state-if-ore_write-read-fa.patch
deleted file mode 100644
index c1659ca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0070-pnfs-obj-don-t-leak-objio_state-if-ore_write-read-fa.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 7b47a0e2114e8530614a25d7ec998fd52d069853 Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Fri, 8 Jun 2012 05:29:40 +0300
-Subject: [PATCH 070/109] pnfs-obj: don't leak objio_state if ore_write/read
- fails
-
-commit 9909d45a8557455ca5f8ee7af0f253debc851f1a upstream.
-
-[Bug since 3.2 Kernel]
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/objlayout/objio_osd.c |    9 +++++++--
- 1 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nfs/objlayout/objio_osd.c b/fs/nfs/objlayout/objio_osd.c
-index 55d0128..0e7b3fc 100644
---- a/fs/nfs/objlayout/objio_osd.c
-+++ b/fs/nfs/objlayout/objio_osd.c
-@@ -433,7 +433,10 @@ int objio_read_pagelist(struct nfs_read_data *rdata)
- 	objios->ios->done = _read_done;
- 	dprintk("%s: offset=0x%llx length=0x%x\n", __func__,
- 		rdata->args.offset, rdata->args.count);
--	return ore_read(objios->ios);
-+	ret = ore_read(objios->ios);
-+	if (unlikely(ret))
-+		objio_free_result(&objios->oir);
-+	return ret;
- }
- 
- /*
-@@ -517,8 +520,10 @@ int objio_write_pagelist(struct nfs_write_data *wdata, int how)
- 	dprintk("%s: offset=0x%llx length=0x%x\n", __func__,
- 		wdata->args.offset, wdata->args.count);
- 	ret = ore_write(objios->ios);
--	if (unlikely(ret))
-+	if (unlikely(ret)) {
-+		objio_free_result(&objios->oir);
- 		return ret;
-+	}
- 
- 	if (objios->sync)
- 		_write_done(objios->ios, objios);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0071-pnfs-obj-Fix-__r4w_get_page-when-offset-is-beyond-i_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0071-pnfs-obj-Fix-__r4w_get_page-when-offset-is-beyond-i_.patch
deleted file mode 100644
index 95152cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0071-pnfs-obj-Fix-__r4w_get_page-when-offset-is-beyond-i_.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From e4750a0414e24bcd0106493a2f8f251dd02264bf Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Fri, 8 Jun 2012 02:02:30 +0300
-Subject: [PATCH 071/109] pnfs-obj: Fix __r4w_get_page when offset is beyond
- i_size
-
-commit c999ff68029ebd0f56ccae75444f640f6d5a27d2 upstream.
-
-It is very common for the end of the file to be unaligned on
-stripe size. But since we know it's beyond file's end then
-the XOR should be preformed with all zeros.
-
-Old code used to just read zeros out of the OSD devices, which is a great
-waist. But what scares me more about this situation is that, we now have
-pages attached to the file's mapping that are beyond i_size. I don't
-like the kind of bugs this calls for.
-
-Fix both birds, by returning a global zero_page, if offset is beyond
-i_size.
-
-TODO:
-	Change the API to ->__r4w_get_page() so a NULL can be
-	returned without being considered as error, since XOR API
-	treats NULL entries as zero_pages.
-
-[Bug since 3.2. Should apply the same way to all Kernels since]
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-[bwh: Backported to 3.2: adjust for lack of wdata->header]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/objlayout/objio_osd.c |   16 +++++++++++++---
- 1 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/fs/nfs/objlayout/objio_osd.c b/fs/nfs/objlayout/objio_osd.c
-index 0e7b3fc..a03ee52 100644
---- a/fs/nfs/objlayout/objio_osd.c
-+++ b/fs/nfs/objlayout/objio_osd.c
-@@ -467,8 +467,16 @@ static struct page *__r4w_get_page(void *priv, u64 offset, bool *uptodate)
- 	struct objio_state *objios = priv;
- 	struct nfs_write_data *wdata = objios->oir.rpcdata;
- 	pgoff_t index = offset / PAGE_SIZE;
--	struct page *page = find_get_page(wdata->inode->i_mapping, index);
-+	struct page *page;
-+	loff_t i_size = i_size_read(wdata->inode);
- 
-+	if (offset >= i_size) {
-+		*uptodate = true;
-+		dprintk("%s: g_zero_page index=0x%lx\n", __func__, index);
-+		return ZERO_PAGE(0);
-+	}
-+
-+	page = find_get_page(wdata->inode->i_mapping, index);
- 	if (!page) {
- 		page = find_or_create_page(wdata->inode->i_mapping,
- 						index, GFP_NOFS);
-@@ -489,8 +497,10 @@ static struct page *__r4w_get_page(void *priv, u64 offset, bool *uptodate)
- 
- static void __r4w_put_page(void *priv, struct page *page)
- {
--	dprintk("%s: index=0x%lx\n", __func__, page->index);
--	page_cache_release(page);
-+	dprintk("%s: index=0x%lx\n", __func__,
-+		(page == ZERO_PAGE(0)) ? -1UL : page->index);
-+	if (ZERO_PAGE(0) != page)
-+		page_cache_release(page);
- 	return;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0072-dm-raid1-fix-crash-with-mirror-recovery-and-discard.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0072-dm-raid1-fix-crash-with-mirror-recovery-and-discard.patch
deleted file mode 100644
index 60a39d3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0072-dm-raid1-fix-crash-with-mirror-recovery-and-discard.patch
+++ /dev/null
@@ -1,114 +0,0 @@
-From 035afb0de8406d0f820abf43471d51a377add326 Mon Sep 17 00:00:00 2001
-From: Mikulas Patocka <mpatocka at redhat.com>
-Date: Fri, 20 Jul 2012 14:25:03 +0100
-Subject: [PATCH 072/109] dm raid1: fix crash with mirror recovery and discard
-
-commit 751f188dd5ab95b3f2b5f2f467c38aae5a2877eb upstream.
-
-This patch fixes a crash when a discard request is sent during mirror
-recovery.
-
-Firstly, some background.  Generally, the following sequence happens during
-mirror synchronization:
-- function do_recovery is called
-- do_recovery calls dm_rh_recovery_prepare
-- dm_rh_recovery_prepare uses a semaphore to limit the number
-  simultaneously recovered regions (by default the semaphore value is 1,
-  so only one region at a time is recovered)
-- dm_rh_recovery_prepare calls __rh_recovery_prepare,
-  __rh_recovery_prepare asks the log driver for the next region to
-  recover. Then, it sets the region state to DM_RH_RECOVERING. If there
-  are no pending I/Os on this region, the region is added to
-  quiesced_regions list. If there are pending I/Os, the region is not
-  added to any list. It is added to the quiesced_regions list later (by
-  dm_rh_dec function) when all I/Os finish.
-- when the region is on quiesced_regions list, there are no I/Os in
-  flight on this region. The region is popped from the list in
-  dm_rh_recovery_start function. Then, a kcopyd job is started in the
-  recover function.
-- when the kcopyd job finishes, recovery_complete is called. It calls
-  dm_rh_recovery_end. dm_rh_recovery_end adds the region to
-  recovered_regions or failed_recovered_regions list (depending on
-  whether the copy operation was successful or not).
-
-The above mechanism assumes that if the region is in DM_RH_RECOVERING
-state, no new I/Os are started on this region. When I/O is started,
-dm_rh_inc_pending is called, which increases reg->pending count. When
-I/O is finished, dm_rh_dec is called. It decreases reg->pending count.
-If the count is zero and the region was in DM_RH_RECOVERING state,
-dm_rh_dec adds it to the quiesced_regions list.
-
-Consequently, if we call dm_rh_inc_pending/dm_rh_dec while the region is
-in DM_RH_RECOVERING state, it could be added to quiesced_regions list
-multiple times or it could be added to this list when kcopyd is copying
-data (it is assumed that the region is not on any list while kcopyd does
-its jobs). This results in memory corruption and crash.
-
-There already exist bypasses for REQ_FLUSH requests: REQ_FLUSH requests
-do not belong to any region, so they are always added to the sync list
-in do_writes. dm_rh_inc_pending does not increase count for REQ_FLUSH
-requests. In mirror_end_io, dm_rh_dec is never called for REQ_FLUSH
-requests. These bypasses avoid the crash possibility described above.
-
-These bypasses were improperly implemented for REQ_DISCARD when
-the mirror target gained discard support in commit
-5fc2ffeabb9ee0fc0e71ff16b49f34f0ed3d05b4 (dm raid1: support discard).
-
-In do_writes, REQ_DISCARD requests is always added to the sync queue and
-immediately dispatched (even if the region is in DM_RH_RECOVERING).  However,
-dm_rh_inc and dm_rh_dec is called for REQ_DISCARD resusts.  So it violates the
-rule that no I/Os are started on DM_RH_RECOVERING regions, and causes the list
-corruption described above.
-
-This patch changes it so that REQ_DISCARD requests follow the same path
-as REQ_FLUSH. This avoids the crash.
-
-Reference: https://bugzilla.redhat.com/837607
-
-Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/dm-raid1.c       |    2 +-
- drivers/md/dm-region-hash.c |    5 ++++-
- 2 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
-index 9bfd057..42ef54f 100644
---- a/drivers/md/dm-raid1.c
-+++ b/drivers/md/dm-raid1.c
-@@ -1210,7 +1210,7 @@ static int mirror_end_io(struct dm_target *ti, struct bio *bio,
- 	 * We need to dec pending if this was a write.
- 	 */
- 	if (rw == WRITE) {
--		if (!(bio->bi_rw & REQ_FLUSH))
-+		if (!(bio->bi_rw & (REQ_FLUSH | REQ_DISCARD)))
- 			dm_rh_dec(ms->rh, map_context->ll);
- 		return error;
- 	}
-diff --git a/drivers/md/dm-region-hash.c b/drivers/md/dm-region-hash.c
-index 7771ed2..69732e0 100644
---- a/drivers/md/dm-region-hash.c
-+++ b/drivers/md/dm-region-hash.c
-@@ -404,6 +404,9 @@ void dm_rh_mark_nosync(struct dm_region_hash *rh, struct bio *bio)
- 		return;
- 	}
- 
-+	if (bio->bi_rw & REQ_DISCARD)
-+		return;
-+
- 	/* We must inform the log that the sync count has changed. */
- 	log->type->set_region_sync(log, region, 0);
- 
-@@ -524,7 +527,7 @@ void dm_rh_inc_pending(struct dm_region_hash *rh, struct bio_list *bios)
- 	struct bio *bio;
- 
- 	for (bio = bios->head; bio; bio = bio->bi_next) {
--		if (bio->bi_rw & REQ_FLUSH)
-+		if (bio->bi_rw & (REQ_FLUSH | REQ_DISCARD))
- 			continue;
- 		rh_inc(rh, dm_rh_bio_to_region(rh, bio));
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch
deleted file mode 100644
index b5f81f2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From e8cf7231ce4f6464f8962ae6ef0421da40ddad15 Mon Sep 17 00:00:00 2001
-From: Mikulas Patocka <mpatocka at redhat.com>
-Date: Fri, 20 Jul 2012 14:25:07 +0100
-Subject: [PATCH 073/109] dm raid1: set discard_zeroes_data_unsupported
-
-commit 7c8d3a42fe1c58a7e8fd3f6a013e7d7b474ff931 upstream.
-
-We can't guarantee that REQ_DISCARD on dm-mirror zeroes the data even if
-the underlying disks support zero on discard.  So this patch sets
-ti->discard_zeroes_data_unsupported.
-
-For example, if the mirror is in the process of resynchronizing, it may
-happen that kcopyd reads a piece of data, then discard is sent on the
-same area and then kcopyd writes the piece of data to another leg.
-Consequently, the data is not zeroed.
-
-The flag was made available by commit 983c7db347db8ce2d8453fd1d89b7a4bb6920d56
-(dm crypt: always disable discard_zeroes_data).
-
-Signed-off-by: Mikulas Patocka <mpatocka at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/dm-raid1.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/md/dm-raid1.c b/drivers/md/dm-raid1.c
-index 42ef54f..dae2b7a 100644
---- a/drivers/md/dm-raid1.c
-+++ b/drivers/md/dm-raid1.c
-@@ -1080,6 +1080,7 @@ static int mirror_ctr(struct dm_target *ti, unsigned int argc, char **argv)
- 	ti->split_io = dm_rh_get_region_size(ms->rh);
- 	ti->num_flush_requests = 1;
- 	ti->num_discard_requests = 1;
-+	ti->discard_zeroes_data_unsupported = 1;
- 
- 	ms->kmirrord_wq = alloc_workqueue("kmirrord",
- 					  WQ_NON_REENTRANT | WQ_MEM_RECLAIM, 0);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0074-ntp-Fix-leap-second-hrtimer-livelock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0074-ntp-Fix-leap-second-hrtimer-livelock.patch
deleted file mode 100644
index 5042065..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0074-ntp-Fix-leap-second-hrtimer-livelock.patch
+++ /dev/null
@@ -1,349 +0,0 @@
-From 19aeba1469884ed9a789b143cf73ce047663c095 Mon Sep 17 00:00:00 2001
-From: John Stultz <john.stultz at linaro.org>
-Date: Tue, 17 Jul 2012 03:05:14 -0400
-Subject: [PATCH 074/109] ntp: Fix leap-second hrtimer livelock
-
-This is a backport of 6b43ae8a619d17c4935c3320d2ef9e92bdeed05d
-
-This should have been backported when it was commited, but I
-mistook the problem as requiring the ntp_lock changes
-that landed in 3.4 in order for it to occur.
-
-Unfortunately the same issue can happen (with only one cpu)
-as follows:
-do_adjtimex()
- write_seqlock_irq(&xtime_lock);
-  process_adjtimex_modes()
-   process_adj_status()
-    ntp_start_leap_timer()
-     hrtimer_start()
-      hrtimer_reprogram()
-       tick_program_event()
-        clockevents_program_event()
-         ktime_get()
-          seq = req_seqbegin(xtime_lock); [DEADLOCK]
-
-This deadlock will no always occur, as it requires the
-leap_timer to force a hrtimer_reprogram which only happens
-if its set and there's no sooner timer to expire.
-
-NOTE: This patch, being faithful to the original commit,
-introduces a bug (we don't update wall_to_monotonic),
-which will be resovled by backporting a following fix.
-
-Original commit message below:
-
-Since commit 7dffa3c673fbcf835cd7be80bb4aec8ad3f51168 the ntp
-subsystem has used an hrtimer for triggering the leapsecond
-adjustment. However, this can cause a potential livelock.
-
-Thomas diagnosed this as the following pattern:
-CPU 0                                                    CPU 1
-do_adjtimex()
-  spin_lock_irq(&ntp_lock);
-    process_adjtimex_modes();				 timer_interrupt()
-      process_adj_status();                                do_timer()
-        ntp_start_leap_timer();                             write_lock(&xtime_lock);
-          hrtimer_start();                                  update_wall_time();
-             hrtimer_reprogram();                            ntp_tick_length()
-               tick_program_event()                            spin_lock(&ntp_lock);
-                 clockevents_program_event()
-		   ktime_get()
-                     seq = req_seqbegin(xtime_lock);
-
-This patch tries to avoid the problem by reverting back to not using
-an hrtimer to inject leapseconds, and instead we handle the leapsecond
-processing in the second_overflow() function.
-
-The downside to this change is that on systems that support highres
-timers, the leap second processing will occur on a HZ tick boundary,
-(ie: ~1-10ms, depending on HZ)  after the leap second instead of
-possibly sooner (~34us in my tests w/ x86_64 lapic).
-
-This patch applies on top of tip/timers/core.
-
-CC: Sasha Levin <levinsasha928 at gmail.com>
-CC: Thomas Gleixner <tglx at linutronix.de>
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Diagnoised-by: Thomas Gleixner <tglx at linutronix.de>
-Tested-by: Sasha Levin <levinsasha928 at gmail.com>
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/timex.h     |    2 +-
- kernel/time/ntp.c         |  122 +++++++++++++++------------------------------
- kernel/time/timekeeping.c |   18 +++----
- 3 files changed, 48 insertions(+), 94 deletions(-)
-
-diff --git a/include/linux/timex.h b/include/linux/timex.h
-index aa60fe7..08e90fb 100644
---- a/include/linux/timex.h
-+++ b/include/linux/timex.h
-@@ -266,7 +266,7 @@ static inline int ntp_synced(void)
- /* Returns how long ticks are at present, in ns / 2^NTP_SCALE_SHIFT. */
- extern u64 tick_length;
- 
--extern void second_overflow(void);
-+extern int second_overflow(unsigned long secs);
- extern void update_ntp_one_tick(void);
- extern int do_adjtimex(struct timex *);
- extern void hardpps(const struct timespec *, const struct timespec *);
-diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
-index 4b85a7a..4508f7f 100644
---- a/kernel/time/ntp.c
-+++ b/kernel/time/ntp.c
-@@ -31,8 +31,6 @@ unsigned long			tick_nsec;
- u64				tick_length;
- static u64			tick_length_base;
- 
--static struct hrtimer		leap_timer;
--
- #define MAX_TICKADJ		500LL		/* usecs */
- #define MAX_TICKADJ_SCALED \
- 	(((MAX_TICKADJ * NSEC_PER_USEC) << NTP_SCALE_SHIFT) / NTP_INTERVAL_FREQ)
-@@ -350,60 +348,60 @@ void ntp_clear(void)
- }
- 
- /*
-- * Leap second processing. If in leap-insert state at the end of the
-- * day, the system clock is set back one second; if in leap-delete
-- * state, the system clock is set ahead one second.
-+ * this routine handles the overflow of the microsecond field
-+ *
-+ * The tricky bits of code to handle the accurate clock support
-+ * were provided by Dave Mills (Mills at UDEL.EDU) of NTP fame.
-+ * They were originally developed for SUN and DEC kernels.
-+ * All the kudos should go to Dave for this stuff.
-+ *
-+ * Also handles leap second processing, and returns leap offset
-  */
--static enum hrtimer_restart ntp_leap_second(struct hrtimer *timer)
-+int second_overflow(unsigned long secs)
- {
--	enum hrtimer_restart res = HRTIMER_NORESTART;
--
--	write_seqlock(&xtime_lock);
-+	int leap = 0;
-+	s64 delta;
- 
-+	/*
-+	 * Leap second processing. If in leap-insert state at the end of the
-+	 * day, the system clock is set back one second; if in leap-delete
-+	 * state, the system clock is set ahead one second.
-+	 */
- 	switch (time_state) {
- 	case TIME_OK:
-+		if (time_status & STA_INS)
-+			time_state = TIME_INS;
-+		else if (time_status & STA_DEL)
-+			time_state = TIME_DEL;
- 		break;
- 	case TIME_INS:
--		timekeeping_leap_insert(-1);
--		time_state = TIME_OOP;
--		printk(KERN_NOTICE
--			"Clock: inserting leap second 23:59:60 UTC\n");
--		hrtimer_add_expires_ns(&leap_timer, NSEC_PER_SEC);
--		res = HRTIMER_RESTART;
-+		if (secs % 86400 == 0) {
-+			leap = -1;
-+			time_state = TIME_OOP;
-+			printk(KERN_NOTICE
-+				"Clock: inserting leap second 23:59:60 UTC\n");
-+		}
- 		break;
- 	case TIME_DEL:
--		timekeeping_leap_insert(1);
--		time_tai--;
--		time_state = TIME_WAIT;
--		printk(KERN_NOTICE
--			"Clock: deleting leap second 23:59:59 UTC\n");
-+		if ((secs + 1) % 86400 == 0) {
-+			leap = 1;
-+			time_tai--;
-+			time_state = TIME_WAIT;
-+			printk(KERN_NOTICE
-+				"Clock: deleting leap second 23:59:59 UTC\n");
-+		}
- 		break;
- 	case TIME_OOP:
- 		time_tai++;
- 		time_state = TIME_WAIT;
--		/* fall through */
-+		break;
-+
- 	case TIME_WAIT:
- 		if (!(time_status & (STA_INS | STA_DEL)))
- 			time_state = TIME_OK;
- 		break;
- 	}
- 
--	write_sequnlock(&xtime_lock);
--
--	return res;
--}
--
--/*
-- * this routine handles the overflow of the microsecond field
-- *
-- * The tricky bits of code to handle the accurate clock support
-- * were provided by Dave Mills (Mills at UDEL.EDU) of NTP fame.
-- * They were originally developed for SUN and DEC kernels.
-- * All the kudos should go to Dave for this stuff.
-- */
--void second_overflow(void)
--{
--	s64 delta;
- 
- 	/* Bump the maxerror field */
- 	time_maxerror += MAXFREQ / NSEC_PER_USEC;
-@@ -423,23 +421,25 @@ void second_overflow(void)
- 	pps_dec_valid();
- 
- 	if (!time_adjust)
--		return;
-+		goto out;
- 
- 	if (time_adjust > MAX_TICKADJ) {
- 		time_adjust -= MAX_TICKADJ;
- 		tick_length += MAX_TICKADJ_SCALED;
--		return;
-+		goto out;
- 	}
- 
- 	if (time_adjust < -MAX_TICKADJ) {
- 		time_adjust += MAX_TICKADJ;
- 		tick_length -= MAX_TICKADJ_SCALED;
--		return;
-+		goto out;
- 	}
- 
- 	tick_length += (s64)(time_adjust * NSEC_PER_USEC / NTP_INTERVAL_FREQ)
- 							 << NTP_SCALE_SHIFT;
- 	time_adjust = 0;
-+out:
-+	return leap;
- }
- 
- #ifdef CONFIG_GENERIC_CMOS_UPDATE
-@@ -501,27 +501,6 @@ static void notify_cmos_timer(void)
- static inline void notify_cmos_timer(void) { }
- #endif
- 
--/*
-- * Start the leap seconds timer:
-- */
--static inline void ntp_start_leap_timer(struct timespec *ts)
--{
--	long now = ts->tv_sec;
--
--	if (time_status & STA_INS) {
--		time_state = TIME_INS;
--		now += 86400 - now % 86400;
--		hrtimer_start(&leap_timer, ktime_set(now, 0), HRTIMER_MODE_ABS);
--
--		return;
--	}
--
--	if (time_status & STA_DEL) {
--		time_state = TIME_DEL;
--		now += 86400 - (now + 1) % 86400;
--		hrtimer_start(&leap_timer, ktime_set(now, 0), HRTIMER_MODE_ABS);
--	}
--}
- 
- /*
-  * Propagate a new txc->status value into the NTP state:
-@@ -546,22 +525,6 @@ static inline void process_adj_status(struct timex *txc, struct timespec *ts)
- 	time_status &= STA_RONLY;
- 	time_status |= txc->status & ~STA_RONLY;
- 
--	switch (time_state) {
--	case TIME_OK:
--		ntp_start_leap_timer(ts);
--		break;
--	case TIME_INS:
--	case TIME_DEL:
--		time_state = TIME_OK;
--		ntp_start_leap_timer(ts);
--	case TIME_WAIT:
--		if (!(time_status & (STA_INS | STA_DEL)))
--			time_state = TIME_OK;
--		break;
--	case TIME_OOP:
--		hrtimer_restart(&leap_timer);
--		break;
--	}
- }
- /*
-  * Called with the xtime lock held, so we can access and modify
-@@ -643,9 +606,6 @@ int do_adjtimex(struct timex *txc)
- 		    (txc->tick <  900000/USER_HZ ||
- 		     txc->tick > 1100000/USER_HZ))
- 			return -EINVAL;
--
--		if (txc->modes & ADJ_STATUS && time_state != TIME_OK)
--			hrtimer_cancel(&leap_timer);
- 	}
- 
- 	if (txc->modes & ADJ_SETOFFSET) {
-@@ -967,6 +927,4 @@ __setup("ntp_tick_adj=", ntp_tick_adj_setup);
- void __init ntp_init(void)
- {
- 	ntp_clear();
--	hrtimer_init(&leap_timer, CLOCK_REALTIME, HRTIMER_MODE_ABS);
--	leap_timer.function = ntp_leap_second;
- }
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 2378413..4780a7d 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -169,15 +169,6 @@ static struct timespec raw_time;
- /* flag for if timekeeping is suspended */
- int __read_mostly timekeeping_suspended;
- 
--/* must hold xtime_lock */
--void timekeeping_leap_insert(int leapsecond)
--{
--	xtime.tv_sec += leapsecond;
--	wall_to_monotonic.tv_sec -= leapsecond;
--	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
--			timekeeper.mult);
--}
--
- /**
-  * timekeeping_forward_now - update clock to the current time
-  *
-@@ -942,9 +933,11 @@ static cycle_t logarithmic_accumulation(cycle_t offset, int shift)
- 
- 	timekeeper.xtime_nsec += timekeeper.xtime_interval << shift;
- 	while (timekeeper.xtime_nsec >= nsecps) {
-+		int leap;
- 		timekeeper.xtime_nsec -= nsecps;
- 		xtime.tv_sec++;
--		second_overflow();
-+		leap = second_overflow(xtime.tv_sec);
-+		xtime.tv_sec += leap;
- 	}
- 
- 	/* Accumulate raw time */
-@@ -1050,9 +1043,12 @@ static void update_wall_time(void)
- 	 * xtime.tv_nsec isn't larger then NSEC_PER_SEC
- 	 */
- 	if (unlikely(xtime.tv_nsec >= NSEC_PER_SEC)) {
-+		int leap;
- 		xtime.tv_nsec -= NSEC_PER_SEC;
- 		xtime.tv_sec++;
--		second_overflow();
-+		leap = second_overflow(xtime.tv_sec);
-+		xtime.tv_sec += leap;
-+
- 	}
- 
- 	/* check to see if there is a new clocksource to use */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0075-ntp-Correct-TAI-offset-during-leap-second.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0075-ntp-Correct-TAI-offset-during-leap-second.patch
deleted file mode 100644
index ec72a79..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0075-ntp-Correct-TAI-offset-during-leap-second.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 106227da17ad8a279e7e104b8592ada4e81dbd8b Mon Sep 17 00:00:00 2001
-From: Richard Cochran <richardcochran at gmail.com>
-Date: Thu, 26 Apr 2012 14:11:32 +0200
-Subject: [PATCH 075/109] ntp: Correct TAI offset during leap second
-
-commit dd48d708ff3e917f6d6b6c2b696c3f18c019feed upstream.
-
-When repeating a UTC time value during a leap second (when the UTC
-time should be 23:59:60), the TAI timescale should not stop. The kernel
-NTP code increments the TAI offset one second too late. This patch fixes
-the issue by incrementing the offset during the leap second itself.
-
-Signed-off-by: Richard Cochran <richardcochran at gmail.com>
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/time/ntp.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/kernel/time/ntp.c b/kernel/time/ntp.c
-index 4508f7f..f1eb182 100644
---- a/kernel/time/ntp.c
-+++ b/kernel/time/ntp.c
-@@ -378,6 +378,7 @@ int second_overflow(unsigned long secs)
- 		if (secs % 86400 == 0) {
- 			leap = -1;
- 			time_state = TIME_OOP;
-+			time_tai++;
- 			printk(KERN_NOTICE
- 				"Clock: inserting leap second 23:59:60 UTC\n");
- 		}
-@@ -392,7 +393,6 @@ int second_overflow(unsigned long secs)
- 		}
- 		break;
- 	case TIME_OOP:
--		time_tai++;
- 		time_state = TIME_WAIT;
- 		break;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0076-timekeeping-Fix-CLOCK_MONOTONIC-inconsistency-during.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0076-timekeeping-Fix-CLOCK_MONOTONIC-inconsistency-during.patch
deleted file mode 100644
index cd6cd91..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0076-timekeeping-Fix-CLOCK_MONOTONIC-inconsistency-during.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 7a063ddaad98f05f7976e0e8c9c1455cc9d0f5da Mon Sep 17 00:00:00 2001
-From: John Stultz <john.stultz at linaro.org>
-Date: Wed, 30 May 2012 10:54:57 -0700
-Subject: [PATCH 076/109] timekeeping: Fix CLOCK_MONOTONIC inconsistency
- during leapsecond
-
-This is a backport of fad0c66c4bb836d57a5f125ecd38bed653ca863a
-which resolves a bug the previous commit.
-
-Commit 6b43ae8a61 (ntp: Fix leap-second hrtimer livelock) broke the
-leapsecond update of CLOCK_MONOTONIC. The missing leapsecond update to
-wall_to_monotonic causes discontinuities in CLOCK_MONOTONIC.
-
-Adjust wall_to_monotonic when NTP inserted a leapsecond.
-
-Reported-by: Richard Cochran <richardcochran at gmail.com>
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Tested-by: Richard Cochran <richardcochran at gmail.com>
-Link: http://lkml.kernel.org/r/1338400497-12420-1-git-send-email-john.stultz@linaro.org
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/time/timekeeping.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 4780a7d..5c9b67e 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -938,6 +938,7 @@ static cycle_t logarithmic_accumulation(cycle_t offset, int shift)
- 		xtime.tv_sec++;
- 		leap = second_overflow(xtime.tv_sec);
- 		xtime.tv_sec += leap;
-+		wall_to_monotonic.tv_sec -= leap;
- 	}
- 
- 	/* Accumulate raw time */
-@@ -1048,7 +1049,7 @@ static void update_wall_time(void)
- 		xtime.tv_sec++;
- 		leap = second_overflow(xtime.tv_sec);
- 		xtime.tv_sec += leap;
--
-+		wall_to_monotonic.tv_sec -= leap;
- 	}
- 
- 	/* check to see if there is a new clocksource to use */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0077-time-Move-common-updates-to-a-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0077-time-Move-common-updates-to-a-function.patch
deleted file mode 100644
index 792fe39..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0077-time-Move-common-updates-to-a-function.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 540e83f9da352839ff29ce5445fc499de8d54570 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Sun, 13 Nov 2011 23:19:49 +0000
-Subject: [PATCH 077/109] time: Move common updates to a function
-
-This is a backport of cc06268c6a87db156af2daed6e96a936b955cc82
-
-[John Stultz: While not a bugfix itself, it allows following fixes
- to backport in a more straightforward manner.]
-
-CC: Thomas Gleixner <tglx at linutronix.de>
-CC: Eric Dumazet <eric.dumazet at gmail.com>
-CC: Richard Cochran <richardcochran at gmail.com>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <john.stultz at linaro.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/time/timekeeping.c |   34 +++++++++++++++++-----------------
- 1 files changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 5c9b67e..5d55185 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -166,6 +166,19 @@ static struct timespec total_sleep_time;
-  */
- static struct timespec raw_time;
- 
-+/* must hold write on xtime_lock */
-+static void timekeeping_update(bool clearntp)
-+{
-+	if (clearntp) {
-+		timekeeper.ntp_error = 0;
-+		ntp_clear();
-+	}
-+	update_vsyscall(&xtime, &wall_to_monotonic,
-+			 timekeeper.clock, timekeeper.mult);
-+}
-+
-+
-+
- /* flag for if timekeeping is suspended */
- int __read_mostly timekeeping_suspended;
- 
-@@ -366,11 +379,7 @@ int do_settimeofday(const struct timespec *tv)
- 
- 	xtime = *tv;
- 
--	timekeeper.ntp_error = 0;
--	ntp_clear();
--
--	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
--				timekeeper.mult);
-+	timekeeping_update(true);
- 
- 	write_sequnlock_irqrestore(&xtime_lock, flags);
- 
-@@ -403,11 +412,7 @@ int timekeeping_inject_offset(struct timespec *ts)
- 	xtime = timespec_add(xtime, *ts);
- 	wall_to_monotonic = timespec_sub(wall_to_monotonic, *ts);
- 
--	timekeeper.ntp_error = 0;
--	ntp_clear();
--
--	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
--				timekeeper.mult);
-+	timekeeping_update(true);
- 
- 	write_sequnlock_irqrestore(&xtime_lock, flags);
- 
-@@ -636,10 +641,7 @@ void timekeeping_inject_sleeptime(struct timespec *delta)
- 
- 	__timekeeping_inject_sleeptime(delta);
- 
--	timekeeper.ntp_error = 0;
--	ntp_clear();
--	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
--				timekeeper.mult);
-+	timekeeping_update(true);
- 
- 	write_sequnlock_irqrestore(&xtime_lock, flags);
- 
-@@ -1052,9 +1054,7 @@ static void update_wall_time(void)
- 		wall_to_monotonic.tv_sec -= leap;
- 	}
- 
--	/* check to see if there is a new clocksource to use */
--	update_vsyscall(&xtime, &wall_to_monotonic, timekeeper.clock,
--				timekeeper.mult);
-+	timekeeping_update(false);
- }
- 
- /**
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0078-hrtimer-Provide-clock_was_set_delayed.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0078-hrtimer-Provide-clock_was_set_delayed.patch
deleted file mode 100644
index 90b7639..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0078-hrtimer-Provide-clock_was_set_delayed.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From b6da5d5a3a7e128fd17b15dc64fda7c1aea694e6 Mon Sep 17 00:00:00 2001
-From: John Stultz <johnstul at us.ibm.com>
-Date: Tue, 10 Jul 2012 18:43:19 -0400
-Subject: [PATCH 078/109] hrtimer: Provide clock_was_set_delayed()
-
-commit f55a6faa384304c89cfef162768e88374d3312cb upstream.
-
-clock_was_set() cannot be called from hard interrupt context because
-it calls on_each_cpu().
-
-For fixing the widely reported leap seconds issue it is necessary to
-call it from hard interrupt context, i.e. the timer tick code, which
-does the timekeeping updates.
-
-Provide a new function which denotes it in the hrtimer cpu base
-structure of the cpu on which it is called and raise the hrtimer
-softirq. We then execute the clock_was_set() notificiation from
-softirq context in run_hrtimer_softirq(). The hrtimer softirq is
-rarely used, so polling the flag there is not a performance issue.
-
-[ tglx: Made it depend on CONFIG_HIGH_RES_TIMERS. We really should get
-  rid of all this ifdeffery ASAP ]
-
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Reported-by: Jan Engelhardt <jengelh at inai.de>
-Reviewed-by: Ingo Molnar <mingo at kernel.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Prarit Bhargava <prarit at redhat.com>
-Link: http://lkml.kernel.org/r/1341960205-56738-2-git-send-email-johnstul@us.ibm.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/hrtimer.h |    9 ++++++++-
- kernel/hrtimer.c        |   20 ++++++++++++++++++++
- 2 files changed, 28 insertions(+), 1 deletions(-)
-
-diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index fd0dc30..c9ec940 100644
---- a/include/linux/hrtimer.h
-+++ b/include/linux/hrtimer.h
-@@ -165,6 +165,7 @@ enum  hrtimer_base_type {
-  * @lock:		lock protecting the base and associated clock bases
-  *			and timers
-  * @active_bases:	Bitfield to mark bases with active timers
-+ * @clock_was_set:	Indicates that clock was set from irq context.
-  * @expires_next:	absolute time of the next event which was scheduled
-  *			via clock_set_next_event()
-  * @hres_active:	State of high resolution mode
-@@ -177,7 +178,8 @@ enum  hrtimer_base_type {
-  */
- struct hrtimer_cpu_base {
- 	raw_spinlock_t			lock;
--	unsigned long			active_bases;
-+	unsigned int			active_bases;
-+	unsigned int			clock_was_set;
- #ifdef CONFIG_HIGH_RES_TIMERS
- 	ktime_t				expires_next;
- 	int				hres_active;
-@@ -286,6 +288,8 @@ extern void hrtimer_peek_ahead_timers(void);
- # define MONOTONIC_RES_NSEC	HIGH_RES_NSEC
- # define KTIME_MONOTONIC_RES	KTIME_HIGH_RES
- 
-+extern void clock_was_set_delayed(void);
-+
- #else
- 
- # define MONOTONIC_RES_NSEC	LOW_RES_NSEC
-@@ -306,6 +310,9 @@ static inline int hrtimer_is_hres_active(struct hrtimer *timer)
- {
- 	return 0;
- }
-+
-+static inline void clock_was_set_delayed(void) { }
-+
- #endif
- 
- extern void clock_was_set(void);
-diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index ae34bf5..3c24fb2 100644
---- a/kernel/hrtimer.c
-+++ b/kernel/hrtimer.c
-@@ -717,6 +717,19 @@ static int hrtimer_switch_to_hres(void)
- 	return 1;
- }
- 
-+/*
-+ * Called from timekeeping code to reprogramm the hrtimer interrupt
-+ * device. If called from the timer interrupt context we defer it to
-+ * softirq context.
-+ */
-+void clock_was_set_delayed(void)
-+{
-+	struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
-+
-+	cpu_base->clock_was_set = 1;
-+	__raise_softirq_irqoff(HRTIMER_SOFTIRQ);
-+}
-+
- #else
- 
- static inline int hrtimer_hres_active(void) { return 0; }
-@@ -1395,6 +1408,13 @@ void hrtimer_peek_ahead_timers(void)
- 
- static void run_hrtimer_softirq(struct softirq_action *h)
- {
-+	struct hrtimer_cpu_base *cpu_base = &__get_cpu_var(hrtimer_bases);
-+
-+	if (cpu_base->clock_was_set) {
-+		cpu_base->clock_was_set = 0;
-+		clock_was_set();
-+	}
-+
- 	hrtimer_peek_ahead_timers();
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0079-timekeeping-Fix-leapsecond-triggered-load-spike-issu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0079-timekeeping-Fix-leapsecond-triggered-load-spike-issu.patch
deleted file mode 100644
index 8965a59..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0079-timekeeping-Fix-leapsecond-triggered-load-spike-issu.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 61642041369832a7f8d29d27fcd9e88d523f3163 Mon Sep 17 00:00:00 2001
-From: John Stultz <johnstul at us.ibm.com>
-Date: Tue, 10 Jul 2012 18:43:20 -0400
-Subject: [PATCH 079/109] timekeeping: Fix leapsecond triggered load spike
- issue
-
-This is a backport of 4873fa070ae84a4115f0b3c9dfabc224f1bc7c51
-
-The timekeeping code misses an update of the hrtimer subsystem after a
-leap second happened. Due to that timers based on CLOCK_REALTIME are
-either expiring a second early or late depending on whether a leap
-second has been inserted or deleted until an operation is initiated
-which causes that update. Unless the update happens by some other
-means this discrepancy between the timekeeping and the hrtimer data
-stays forever and timers are expired either early or late.
-
-The reported immediate workaround - $ data -s "`date`" - is causing a
-call to clock_was_set() which updates the hrtimer data structures.
-See: http://www.sheeri.com/content/mysql-and-leap-second-high-cpu-and-fix
-
-Add the missing clock_was_set() call to update_wall_time() in case of
-a leap second event. The actual update is deferred to softirq context
-as the necessary smp function call cannot be invoked from hard
-interrupt context.
-
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Reported-by: Jan Engelhardt <jengelh at inai.de>
-Reviewed-by: Ingo Molnar <mingo at kernel.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Prarit Bhargava <prarit at redhat.com>
-Link: http://lkml.kernel.org/r/1341960205-56738-3-git-send-email-johnstul@us.ibm.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/time/timekeeping.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 5d55185..8958ad7 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -941,6 +941,8 @@ static cycle_t logarithmic_accumulation(cycle_t offset, int shift)
- 		leap = second_overflow(xtime.tv_sec);
- 		xtime.tv_sec += leap;
- 		wall_to_monotonic.tv_sec -= leap;
-+		if (leap)
-+			clock_was_set_delayed();
- 	}
- 
- 	/* Accumulate raw time */
-@@ -1052,6 +1054,8 @@ static void update_wall_time(void)
- 		leap = second_overflow(xtime.tv_sec);
- 		xtime.tv_sec += leap;
- 		wall_to_monotonic.tv_sec -= leap;
-+		if (leap)
-+			clock_was_set_delayed();
- 	}
- 
- 	timekeeping_update(false);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0080-timekeeping-Maintain-ktime_t-based-offsets-for-hrtim.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0080-timekeeping-Maintain-ktime_t-based-offsets-for-hrtim.patch
deleted file mode 100644
index f00962d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0080-timekeeping-Maintain-ktime_t-based-offsets-for-hrtim.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 711cebfd4050d5a41606f9f8ad56986d0377df08 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Tue, 10 Jul 2012 18:43:21 -0400
-Subject: [PATCH 080/109] timekeeping: Maintain ktime_t based offsets for
- hrtimers
-
-This is a backport of 5b9fe759a678e05be4937ddf03d50e950207c1c0
-
-We need to update the hrtimer clock offsets from the hrtimer interrupt
-context. To avoid conversions from timespec to ktime_t maintain a
-ktime_t based representation of those offsets in the timekeeper. This
-puts the conversion overhead into the code which updates the
-underlying offsets and provides fast accessible values in the hrtimer
-interrupt.
-
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Reviewed-by: Ingo Molnar <mingo at kernel.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Prarit Bhargava <prarit at redhat.com>
-Link: http://lkml.kernel.org/r/1341960205-56738-4-git-send-email-johnstul@us.ibm.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[John Stultz: Backported to 3.2]
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/time/timekeeping.c |   25 ++++++++++++++++++++++++-
- 1 files changed, 24 insertions(+), 1 deletions(-)
-
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 8958ad7..d5d0e5d 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -161,18 +161,34 @@ static struct timespec xtime __attribute__ ((aligned (16)));
- static struct timespec wall_to_monotonic __attribute__ ((aligned (16)));
- static struct timespec total_sleep_time;
- 
-+/* Offset clock monotonic -> clock realtime */
-+static ktime_t offs_real;
-+
-+/* Offset clock monotonic -> clock boottime */
-+static ktime_t offs_boot;
-+
- /*
-  * The raw monotonic time for the CLOCK_MONOTONIC_RAW posix clock.
-  */
- static struct timespec raw_time;
- 
- /* must hold write on xtime_lock */
-+static void update_rt_offset(void)
-+{
-+	struct timespec tmp, *wtm = &wall_to_monotonic;
-+
-+	set_normalized_timespec(&tmp, -wtm->tv_sec, -wtm->tv_nsec);
-+	offs_real = timespec_to_ktime(tmp);
-+}
-+
-+/* must hold write on xtime_lock */
- static void timekeeping_update(bool clearntp)
- {
- 	if (clearntp) {
- 		timekeeper.ntp_error = 0;
- 		ntp_clear();
- 	}
-+	update_rt_offset();
- 	update_vsyscall(&xtime, &wall_to_monotonic,
- 			 timekeeper.clock, timekeeper.mult);
- }
-@@ -587,6 +603,7 @@ void __init timekeeping_init(void)
- 	}
- 	set_normalized_timespec(&wall_to_monotonic,
- 				-boot.tv_sec, -boot.tv_nsec);
-+	update_rt_offset();
- 	total_sleep_time.tv_sec = 0;
- 	total_sleep_time.tv_nsec = 0;
- 	write_sequnlock_irqrestore(&xtime_lock, flags);
-@@ -595,6 +612,12 @@ void __init timekeeping_init(void)
- /* time in seconds when suspend began */
- static struct timespec timekeeping_suspend_time;
- 
-+static void update_sleep_time(struct timespec t)
-+{
-+	total_sleep_time = t;
-+	offs_boot = timespec_to_ktime(t);
-+}
-+
- /**
-  * __timekeeping_inject_sleeptime - Internal function to add sleep interval
-  * @delta: pointer to a timespec delta value
-@@ -612,7 +635,7 @@ static void __timekeeping_inject_sleeptime(struct timespec *delta)
- 
- 	xtime = timespec_add(xtime, *delta);
- 	wall_to_monotonic = timespec_sub(wall_to_monotonic, *delta);
--	total_sleep_time = timespec_add(total_sleep_time, *delta);
-+	update_sleep_time(timespec_add(total_sleep_time, *delta));
- }
- 
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0081-hrtimers-Move-lock-held-region-in-hrtimer_interrupt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0081-hrtimers-Move-lock-held-region-in-hrtimer_interrupt.patch
deleted file mode 100644
index 5444d54..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0081-hrtimers-Move-lock-held-region-in-hrtimer_interrupt.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 6783d1f7e46f4450b489d970bbf4d62db9296c1f Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Tue, 10 Jul 2012 18:43:23 -0400
-Subject: [PATCH 081/109] hrtimers: Move lock held region in
- hrtimer_interrupt()
-
-commit 196951e91262fccda81147d2bcf7fdab08668b40 upstream.
-
-We need to update the base offsets from this code and we need to do
-that under base->lock. Move the lock held region around the
-ktime_get() calls. The ktime_get() calls are going to be replaced with
-a function which gets the time and the offsets atomically.
-
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Reviewed-by: Ingo Molnar <mingo at kernel.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Prarit Bhargava <prarit at redhat.com>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Link: http://lkml.kernel.org/r/1341960205-56738-6-git-send-email-johnstul@us.ibm.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/hrtimer.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 3c24fb2..8f320af 100644
---- a/kernel/hrtimer.c
-+++ b/kernel/hrtimer.c
-@@ -1263,11 +1263,10 @@ void hrtimer_interrupt(struct clock_event_device *dev)
- 	cpu_base->nr_events++;
- 	dev->next_event.tv64 = KTIME_MAX;
- 
-+	raw_spin_lock(&cpu_base->lock);
- 	entry_time = now = ktime_get();
- retry:
- 	expires_next.tv64 = KTIME_MAX;
--
--	raw_spin_lock(&cpu_base->lock);
- 	/*
- 	 * We set expires_next to KTIME_MAX here with cpu_base->lock
- 	 * held to prevent that a timer is enqueued in our queue via
-@@ -1344,6 +1343,7 @@ retry:
- 	 * interrupt routine. We give it 3 attempts to avoid
- 	 * overreacting on some spurious event.
- 	 */
-+	raw_spin_lock(&cpu_base->lock);
- 	now = ktime_get();
- 	cpu_base->nr_retries++;
- 	if (++retries < 3)
-@@ -1356,6 +1356,7 @@ retry:
- 	 */
- 	cpu_base->nr_hangs++;
- 	cpu_base->hang_detected = 1;
-+	raw_spin_unlock(&cpu_base->lock);
- 	delta = ktime_sub(now, entry_time);
- 	if (delta.tv64 > cpu_base->max_hang_time.tv64)
- 		cpu_base->max_hang_time = delta;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0082-timekeeping-Provide-hrtimer-update-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0082-timekeeping-Provide-hrtimer-update-function.patch
deleted file mode 100644
index a973540..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0082-timekeeping-Provide-hrtimer-update-function.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From d6cadfb2bf29a5913562d3f63c49a937bc98540d Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Tue, 10 Jul 2012 18:43:24 -0400
-Subject: [PATCH 082/109] timekeeping: Provide hrtimer update function
-
-This is a backport of f6c06abfb3972ad4914cef57d8348fcb2932bc3b
-
-To finally fix the infamous leap second issue and other race windows
-caused by functions which change the offsets between the various time
-bases (CLOCK_MONOTONIC, CLOCK_REALTIME and CLOCK_BOOTTIME) we need a
-function which atomically gets the current monotonic time and updates
-the offsets of CLOCK_REALTIME and CLOCK_BOOTTIME with minimalistic
-overhead. The previous patch which provides ktime_t offsets allows us
-to make this function almost as cheap as ktime_get() which is going to
-be replaced in hrtimer_interrupt().
-
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Reviewed-by: Ingo Molnar <mingo at kernel.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Prarit Bhargava <prarit at redhat.com>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Link: http://lkml.kernel.org/r/1341960205-56738-7-git-send-email-johnstul@us.ibm.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-[John Stultz: Backported to 3.2]
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/hrtimer.h   |    1 +
- kernel/time/timekeeping.c |   34 ++++++++++++++++++++++++++++++++++
- 2 files changed, 35 insertions(+), 0 deletions(-)
-
-diff --git a/include/linux/hrtimer.h b/include/linux/hrtimer.h
-index c9ec940..cc07d27 100644
---- a/include/linux/hrtimer.h
-+++ b/include/linux/hrtimer.h
-@@ -327,6 +327,7 @@ extern ktime_t ktime_get(void);
- extern ktime_t ktime_get_real(void);
- extern ktime_t ktime_get_boottime(void);
- extern ktime_t ktime_get_monotonic_offset(void);
-+extern ktime_t ktime_get_update_offsets(ktime_t *offs_real, ktime_t *offs_boot);
- 
- DECLARE_PER_CPU(struct tick_device, tick_cpu_device);
- 
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index d5d0e5d..4938c5e 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -1240,6 +1240,40 @@ void get_xtime_and_monotonic_and_sleep_offset(struct timespec *xtim,
- 	} while (read_seqretry(&xtime_lock, seq));
- }
- 
-+#ifdef CONFIG_HIGH_RES_TIMERS
-+/**
-+ * ktime_get_update_offsets - hrtimer helper
-+ * @real:	pointer to storage for monotonic -> realtime offset
-+ * @_boot:	pointer to storage for monotonic -> boottime offset
-+ *
-+ * Returns current monotonic time and updates the offsets
-+ * Called from hrtimer_interupt() or retrigger_next_event()
-+ */
-+ktime_t ktime_get_update_offsets(ktime_t *real, ktime_t *boot)
-+{
-+	ktime_t now;
-+	unsigned int seq;
-+	u64 secs, nsecs;
-+
-+	do {
-+		seq = read_seqbegin(&xtime_lock);
-+
-+		secs = xtime.tv_sec;
-+		nsecs = xtime.tv_nsec;
-+		nsecs += timekeeping_get_ns();
-+		/* If arch requires, add in gettimeoffset() */
-+		nsecs += arch_gettimeoffset();
-+
-+		*real = offs_real;
-+		*boot = offs_boot;
-+	} while (read_seqretry(&xtime_lock, seq));
-+
-+	now = ktime_add_ns(ktime_set(secs, 0), nsecs);
-+	now = ktime_sub(now, *real);
-+	return now;
-+}
-+#endif
-+
- /**
-  * ktime_get_monotonic_offset() - get wall_to_monotonic in ktime_t format
-  */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0083-hrtimer-Update-hrtimer-base-offsets-each-hrtimer_int.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0083-hrtimer-Update-hrtimer-base-offsets-each-hrtimer_int.patch
deleted file mode 100644
index d047f31..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0083-hrtimer-Update-hrtimer-base-offsets-each-hrtimer_int.patch
+++ /dev/null
@@ -1,125 +0,0 @@
-From 532c526ac9349430b41f6a16f32fc808c4270647 Mon Sep 17 00:00:00 2001
-From: John Stultz <johnstul at us.ibm.com>
-Date: Tue, 10 Jul 2012 18:43:25 -0400
-Subject: [PATCH 083/109] hrtimer: Update hrtimer base offsets each
- hrtimer_interrupt
-
-commit 5baefd6d84163443215f4a99f6a20f054ef11236 upstream.
-
-The update of the hrtimer base offsets on all cpus cannot be made
-atomically from the timekeeper.lock held and interrupt disabled region
-as smp function calls are not allowed there.
-
-clock_was_set(), which enforces the update on all cpus, is called
-either from preemptible process context in case of do_settimeofday()
-or from the softirq context when the offset modification happened in
-the timer interrupt itself due to a leap second.
-
-In both cases there is a race window for an hrtimer interrupt between
-dropping timekeeper lock, enabling interrupts and clock_was_set()
-issuing the updates. Any interrupt which arrives in that window will
-see the new time but operate on stale offsets.
-
-So we need to make sure that an hrtimer interrupt always sees a
-consistent state of time and offsets.
-
-ktime_get_update_offsets() allows us to get the current monotonic time
-and update the per cpu hrtimer base offsets from hrtimer_interrupt()
-to capture a consistent state of monotonic time and the offsets. The
-function replaces the existing ktime_get() calls in hrtimer_interrupt().
-
-The overhead of the new function vs. ktime_get() is minimal as it just
-adds two store operations.
-
-This ensures that any changes to realtime or boottime offsets are
-noticed and stored into the per-cpu hrtimer base structures, prior to
-any hrtimer expiration and guarantees that timers are not expired early.
-
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Reviewed-by: Ingo Molnar <mingo at kernel.org>
-Acked-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Prarit Bhargava <prarit at redhat.com>
-Link: http://lkml.kernel.org/r/1341960205-56738-8-git-send-email-johnstul@us.ibm.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/hrtimer.c |   28 ++++++++++++++--------------
- 1 files changed, 14 insertions(+), 14 deletions(-)
-
-diff --git a/kernel/hrtimer.c b/kernel/hrtimer.c
-index 8f320af..6db7a5e 100644
---- a/kernel/hrtimer.c
-+++ b/kernel/hrtimer.c
-@@ -657,6 +657,14 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
- 	return 0;
- }
- 
-+static inline ktime_t hrtimer_update_base(struct hrtimer_cpu_base *base)
-+{
-+	ktime_t *offs_real = &base->clock_base[HRTIMER_BASE_REALTIME].offset;
-+	ktime_t *offs_boot = &base->clock_base[HRTIMER_BASE_BOOTTIME].offset;
-+
-+	return ktime_get_update_offsets(offs_real, offs_boot);
-+}
-+
- /*
-  * Retrigger next event is called after clock was set
-  *
-@@ -665,22 +673,12 @@ static inline int hrtimer_enqueue_reprogram(struct hrtimer *timer,
- static void retrigger_next_event(void *arg)
- {
- 	struct hrtimer_cpu_base *base = &__get_cpu_var(hrtimer_bases);
--	struct timespec realtime_offset, xtim, wtm, sleep;
- 
- 	if (!hrtimer_hres_active())
- 		return;
- 
--	/* Optimized out for !HIGH_RES */
--	get_xtime_and_monotonic_and_sleep_offset(&xtim, &wtm, &sleep);
--	set_normalized_timespec(&realtime_offset, -wtm.tv_sec, -wtm.tv_nsec);
--
--	/* Adjust CLOCK_REALTIME offset */
- 	raw_spin_lock(&base->lock);
--	base->clock_base[HRTIMER_BASE_REALTIME].offset =
--		timespec_to_ktime(realtime_offset);
--	base->clock_base[HRTIMER_BASE_BOOTTIME].offset =
--		timespec_to_ktime(sleep);
--
-+	hrtimer_update_base(base);
- 	hrtimer_force_reprogram(base, 0);
- 	raw_spin_unlock(&base->lock);
- }
-@@ -710,7 +708,6 @@ static int hrtimer_switch_to_hres(void)
- 		base->clock_base[i].resolution = KTIME_HIGH_RES;
- 
- 	tick_setup_sched_timer();
--
- 	/* "Retrigger" the interrupt to get things going */
- 	retrigger_next_event(NULL);
- 	local_irq_restore(flags);
-@@ -1264,7 +1261,7 @@ void hrtimer_interrupt(struct clock_event_device *dev)
- 	dev->next_event.tv64 = KTIME_MAX;
- 
- 	raw_spin_lock(&cpu_base->lock);
--	entry_time = now = ktime_get();
-+	entry_time = now = hrtimer_update_base(cpu_base);
- retry:
- 	expires_next.tv64 = KTIME_MAX;
- 	/*
-@@ -1342,9 +1339,12 @@ retry:
- 	 * We need to prevent that we loop forever in the hrtimer
- 	 * interrupt routine. We give it 3 attempts to avoid
- 	 * overreacting on some spurious event.
-+	 *
-+	 * Acquire base lock for updating the offsets and retrieving
-+	 * the current time.
- 	 */
- 	raw_spin_lock(&cpu_base->lock);
--	now = ktime_get();
-+	now = hrtimer_update_base(cpu_base);
- 	cpu_base->nr_retries++;
- 	if (++retries < 3)
- 		goto retry;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0084-timekeeping-Add-missing-update-call-in-timekeeping_r.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0084-timekeeping-Add-missing-update-call-in-timekeeping_r.patch
deleted file mode 100644
index 06445f0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0084-timekeeping-Add-missing-update-call-in-timekeeping_r.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 666e725f56fc4c9a6e4f0e00b5a180866863f724 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Mon, 16 Jul 2012 12:50:42 -0400
-Subject: [PATCH 084/109] timekeeping: Add missing update call in
- timekeeping_resume()
-
-This is a backport of 3e997130bd2e8c6f5aaa49d6e3161d4d29b43ab0
-
-The leap second rework unearthed another issue of inconsistent data.
-
-On timekeeping_resume() the timekeeper data is updated, but nothing
-calls timekeeping_update(), so now the update code in the timer
-interrupt sees stale values.
-
-This has been the case before those changes, but then the timer
-interrupt was using stale data as well so this went unnoticed for quite
-some time.
-
-Add the missing update call, so all the data is consistent everywhere.
-
-Reported-by: Andreas Schwab <schwab at linux-m68k.org>
-Reported-and-tested-by: "Rafael J. Wysocki" <rjw at sisk.pl>
-Reported-and-tested-by: Martin Steigerwald <Martin at lichtvoll.de>
-Cc: LKML <linux-kernel at vger.kernel.org>
-Cc: Linux PM list <linux-pm at vger.kernel.org>
-Cc: John Stultz <johnstul at us.ibm.com>
-Cc: Ingo Molnar <mingo at kernel.org>
-Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>,
-Cc: Prarit Bhargava <prarit at redhat.com>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[John Stultz: Backported to 3.2]
-Cc: Prarit Bhargava <prarit at redhat.com>
-Cc: Thomas Gleixner <tglx at linutronix.de>
-Cc: Linux Kernel <linux-kernel at vger.kernel.org>
-Signed-off-by: John Stultz <johnstul at us.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/time/timekeeping.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/kernel/time/timekeeping.c b/kernel/time/timekeeping.c
-index 4938c5e..03e67d4 100644
---- a/kernel/time/timekeeping.c
-+++ b/kernel/time/timekeeping.c
-@@ -699,6 +699,7 @@ static void timekeeping_resume(void)
- 	timekeeper.clock->cycle_last = timekeeper.clock->read(timekeeper.clock);
- 	timekeeper.ntp_error = 0;
- 	timekeeping_suspended = 0;
-+	timekeeping_update(false);
- 	write_sequnlock_irqrestore(&xtime_lock, flags);
- 
- 	touch_softlockup_watchdog();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0085-powerpc-Fix-wrong-divisor-in-usecs_to_cputime.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0085-powerpc-Fix-wrong-divisor-in-usecs_to_cputime.patch
deleted file mode 100644
index eb4249f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0085-powerpc-Fix-wrong-divisor-in-usecs_to_cputime.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From ec9436c865d11ebd0fd6909a9ef2a63e5536ff29 Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab at linux-m68k.org>
-Date: Fri, 9 Dec 2011 11:35:08 +0000
-Subject: [PATCH 085/109] powerpc: Fix wrong divisor in usecs_to_cputime
-
-commit 9f5072d4f63f28d30d343573830ac6c85fc0deff upstream.
-
-Commit d57af9b (taskstats: use real microsecond granularity for CPU times)
-renamed msecs_to_cputime to usecs_to_cputime, but failed to update all
-numbers on the way.  This causes nonsensical cpu idle/iowait values to be
-displayed in /proc/stat (the only user of usecs_to_cputime so far).
-
-This also renames __cputime_msec_factor to __cputime_usec_factor, adapting
-its value and using it directly in cputime_to_usecs instead of doing two
-multiplications.
-
-Signed-off-by: Andreas Schwab <schwab at linux-m68k.org>
-Acked-by: Anton Blanchard <anton at samba.org>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/powerpc/include/asm/cputime.h |    6 +++---
- arch/powerpc/kernel/time.c         |   10 +++++-----
- 2 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/arch/powerpc/include/asm/cputime.h b/arch/powerpc/include/asm/cputime.h
-index 98b7c4b..fa3f921 100644
---- a/arch/powerpc/include/asm/cputime.h
-+++ b/arch/powerpc/include/asm/cputime.h
-@@ -126,11 +126,11 @@ static inline u64 cputime64_to_jiffies64(const cputime_t ct)
- /*
-  * Convert cputime <-> microseconds
-  */
--extern u64 __cputime_msec_factor;
-+extern u64 __cputime_usec_factor;
- 
- static inline unsigned long cputime_to_usecs(const cputime_t ct)
- {
--	return mulhdu(ct, __cputime_msec_factor) * USEC_PER_MSEC;
-+	return mulhdu(ct, __cputime_usec_factor);
- }
- 
- static inline cputime_t usecs_to_cputime(const unsigned long us)
-@@ -143,7 +143,7 @@ static inline cputime_t usecs_to_cputime(const unsigned long us)
- 	sec = us / 1000000;
- 	if (ct) {
- 		ct *= tb_ticks_per_sec;
--		do_div(ct, 1000);
-+		do_div(ct, 1000000);
- 	}
- 	if (sec)
- 		ct += (cputime_t) sec * tb_ticks_per_sec;
-diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
-index 5db163c..ec8affe 100644
---- a/arch/powerpc/kernel/time.c
-+++ b/arch/powerpc/kernel/time.c
-@@ -168,13 +168,13 @@ EXPORT_SYMBOL_GPL(ppc_tb_freq);
- #ifdef CONFIG_VIRT_CPU_ACCOUNTING
- /*
-  * Factors for converting from cputime_t (timebase ticks) to
-- * jiffies, milliseconds, seconds, and clock_t (1/USER_HZ seconds).
-+ * jiffies, microseconds, seconds, and clock_t (1/USER_HZ seconds).
-  * These are all stored as 0.64 fixed-point binary fractions.
-  */
- u64 __cputime_jiffies_factor;
- EXPORT_SYMBOL(__cputime_jiffies_factor);
--u64 __cputime_msec_factor;
--EXPORT_SYMBOL(__cputime_msec_factor);
-+u64 __cputime_usec_factor;
-+EXPORT_SYMBOL(__cputime_usec_factor);
- u64 __cputime_sec_factor;
- EXPORT_SYMBOL(__cputime_sec_factor);
- u64 __cputime_clockt_factor;
-@@ -192,8 +192,8 @@ static void calc_cputime_factors(void)
- 
- 	div128_by_32(HZ, 0, tb_ticks_per_sec, &res);
- 	__cputime_jiffies_factor = res.result_low;
--	div128_by_32(1000, 0, tb_ticks_per_sec, &res);
--	__cputime_msec_factor = res.result_low;
-+	div128_by_32(1000000, 0, tb_ticks_per_sec, &res);
-+	__cputime_usec_factor = res.result_low;
- 	div128_by_32(1, 0, tb_ticks_per_sec, &res);
- 	__cputime_sec_factor = res.result_low;
- 	div128_by_32(USER_HZ, 0, tb_ticks_per_sec, &res);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0086-vhost-don-t-forget-to-schedule.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0086-vhost-don-t-forget-to-schedule.patch
deleted file mode 100644
index fded3c6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0086-vhost-don-t-forget-to-schedule.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 164965e103d2cfc11c59b563aa95ce2e8c372b65 Mon Sep 17 00:00:00 2001
-From: Nadav Har'El <nyh at math.technion.ac.il>
-Date: Mon, 27 Feb 2012 15:07:29 +0200
-Subject: [PATCH 086/109] vhost: don't forget to schedule()
-
-commit d550dda192c1bd039afb774b99485e88b70d7cb8 upstream.
-
-This is a tiny, but important, patch to vhost.
-
-Vhost's worker thread only called schedule() when it had no work to do, and
-it wanted to go to sleep. But if there's always work to do, e.g., the guest
-is running a network-intensive program like netperf with small message sizes,
-schedule() was *never* called. This had several negative implications (on
-non-preemptive kernels):
-
- 1. Passing time was not properly accounted to the "vhost" process (ps and
-    top would wrongly show it using zero CPU time).
-
- 2. Sometimes error messages about RCU timeouts would be printed, if the
-    core running the vhost thread didn't schedule() for a very long time.
-
- 3. Worst of all, a vhost thread would "hog" the core. If several vhost
-    threads need to share the same core, typically one would get most of the
-    CPU time (and its associated guest most of the performance), while the
-    others hardly get any work done.
-
-The trivial solution is to add
-
-	if (need_resched())
-		schedule();
-
-After doing every piece of work. This will not do the heavy schedule() all
-the time, just when the timer interrupt decided a reschedule is warranted
-(so need_resched returns true).
-
-Thanks to Abel Gordon for this patch.
-
-Signed-off-by: Nadav Har'El <nyh at il.ibm.com>
-Signed-off-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/vhost/vhost.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/vhost/vhost.c b/drivers/vhost/vhost.c
-index c14c42b..ae66278 100644
---- a/drivers/vhost/vhost.c
-+++ b/drivers/vhost/vhost.c
-@@ -222,6 +222,8 @@ static int vhost_worker(void *data)
- 		if (work) {
- 			__set_current_state(TASK_RUNNING);
- 			work->fn(work);
-+			if (need_resched())
-+				schedule();
- 		} else
- 			schedule();
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0087-r8169-call-netif_napi_del-at-errpaths-and-at-driver-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0087-r8169-call-netif_napi_del-at-errpaths-and-at-driver-.patch
deleted file mode 100644
index 8fd5527..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0087-r8169-call-netif_napi_del-at-errpaths-and-at-driver-.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 87b62a139d4385f3726820674127eaee29fc7cff Mon Sep 17 00:00:00 2001
-From: Devendra Naga <devendra.aaru at gmail.com>
-Date: Thu, 31 May 2012 01:51:20 +0000
-Subject: [PATCH 087/109] r8169: call netif_napi_del at errpaths and at driver
- unload
-
-commit ad1be8d345416a794dea39761a374032aa471a76 upstream.
-
-when register_netdev fails, the init'ed NAPIs by netif_napi_add must be
-deleted with netif_napi_del, and also when driver unloads, it should
-delete the NAPI before unregistering netdevice using unregister_netdev.
-
-Signed-off-by: Devendra Naga <devendra.aaru at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/realtek/r8169.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index cc2565c..9e61d6b 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -4185,6 +4185,7 @@ out:
- 	return rc;
- 
- err_out_msi_4:
-+	netif_napi_del(&tp->napi);
- 	rtl_disable_msi(pdev, tp);
- 	iounmap(ioaddr);
- err_out_free_res_3:
-@@ -4210,6 +4211,8 @@ static void __devexit rtl8169_remove_one(struct pci_dev *pdev)
- 
- 	cancel_delayed_work_sync(&tp->task);
- 
-+	netif_napi_del(&tp->napi);
-+
- 	unregister_netdev(dev);
- 
- 	rtl_release_firmware(tp);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0088-bnx2x-fix-checksum-validation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0088-bnx2x-fix-checksum-validation.patch
deleted file mode 100644
index 1a6bce5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0088-bnx2x-fix-checksum-validation.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 4ffefa650ebbe2ef8bc2babff2e5686c33a2dab3 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Tue, 12 Jun 2012 23:50:04 +0000
-Subject: [PATCH 088/109] bnx2x: fix checksum validation
-
-commit d6cb3e41386f20fb0777d0b59a2def82c65d37f7 upstream.
-
-bnx2x driver incorrectly sets ip_summed to CHECKSUM_UNNECESSARY on
-encapsulated segments. TCP stack happily accepts frames with bad
-checksums, if they are inside a GRE or IPIP encapsulation.
-
-Our understanding is that if no IP or L4 csum validation was done by the
-hardware, we should leave ip_summed as is (CHECKSUM_NONE), since
-hardware doesn't provide CHECKSUM_COMPLETE support in its cqe.
-
-Then, if IP/L4 checksumming was done by the hardware, set
-CHECKSUM_UNNECESSARY if no error was flagged.
-
-Patch based on findings and analysis from Robert Evans
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Eilon Greenstein <eilong at broadcom.com>
-Cc: Yaniv Rosner <yanivr at broadcom.com>
-Cc: Merav Sicron <meravs at broadcom.com>
-Cc: Tom Herbert <therbert at google.com>
-Cc: Robert Evans <evansr at google.com>
-Cc: Willem de Bruijn <willemb at google.com>
-Acked-by: Eilon Greenstein <eilong at broadcom.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 3.2: adjust context, indentation]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/broadcom/bnx2x/bnx2x.h     |   15 ------------
- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c |   28 ++++++++++++++++++-----
- 2 files changed, 22 insertions(+), 21 deletions(-)
-
-diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
-index aec7212..8dda46a 100644
---- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
-+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x.h
-@@ -723,21 +723,6 @@ struct bnx2x_fastpath {
- 
- #define ETH_RX_ERROR_FALGS		ETH_FAST_PATH_RX_CQE_PHY_DECODE_ERR_FLG
- 
--#define BNX2X_IP_CSUM_ERR(cqe) \
--			(!((cqe)->fast_path_cqe.status_flags & \
--			   ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG) && \
--			 ((cqe)->fast_path_cqe.type_error_flags & \
--			  ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG))
--
--#define BNX2X_L4_CSUM_ERR(cqe) \
--			(!((cqe)->fast_path_cqe.status_flags & \
--			   ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG) && \
--			 ((cqe)->fast_path_cqe.type_error_flags & \
--			  ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG))
--
--#define BNX2X_RX_CSUM_OK(cqe) \
--			(!(BNX2X_L4_CSUM_ERR(cqe) || BNX2X_IP_CSUM_ERR(cqe)))
--
- #define BNX2X_PRS_FLAG_OVERETH_IPV4(flags) \
- 				(((le16_to_cpu(flags) & \
- 				   PARSING_FLAGS_OVER_ETHERNET_PROTOCOL) >> \
-diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-index 580b44e..27d6d6c 100644
---- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-@@ -551,6 +551,26 @@ static inline void bnx2x_set_skb_rxhash(struct bnx2x *bp, union eth_rx_cqe *cqe,
- 		le32_to_cpu(cqe->fast_path_cqe.rss_hash_result);
- }
- 
-+static void bnx2x_csum_validate(struct sk_buff *skb, union eth_rx_cqe *cqe,
-+				struct bnx2x_fastpath *fp)
-+{
-+	/* Do nothing if no IP/L4 csum validation was done */
-+
-+	if (cqe->fast_path_cqe.status_flags &
-+	    (ETH_FAST_PATH_RX_CQE_IP_XSUM_NO_VALIDATION_FLG |
-+	     ETH_FAST_PATH_RX_CQE_L4_XSUM_NO_VALIDATION_FLG))
-+		return;
-+
-+	/* If both IP/L4 validation were done, check if an error was found. */
-+
-+	if (cqe->fast_path_cqe.type_error_flags &
-+	    (ETH_FAST_PATH_RX_CQE_IP_BAD_XSUM_FLG |
-+	     ETH_FAST_PATH_RX_CQE_L4_BAD_XSUM_FLG))
-+		fp->eth_q_stats.hw_csum_err++;
-+	else
-+		skb->ip_summed = CHECKSUM_UNNECESSARY;
-+}
-+
- int bnx2x_rx_int(struct bnx2x_fastpath *fp, int budget)
- {
- 	struct bnx2x *bp = fp->bp;
-@@ -746,13 +766,9 @@ reuse_rx:
- 
- 			skb_checksum_none_assert(skb);
- 
--			if (bp->dev->features & NETIF_F_RXCSUM) {
-+			if (bp->dev->features & NETIF_F_RXCSUM)
-+				bnx2x_csum_validate(skb, cqe, fp);
- 
--				if (likely(BNX2X_RX_CSUM_OK(cqe)))
--					skb->ip_summed = CHECKSUM_UNNECESSARY;
--				else
--					fp->eth_q_stats.hw_csum_err++;
--			}
- 		}
- 
- 		skb_record_rx_queue(skb, fp->index);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0089-bnx2x-fix-panic-when-TX-ring-is-full.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0089-bnx2x-fix-panic-when-TX-ring-is-full.patch
deleted file mode 100644
index d21ce22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0089-bnx2x-fix-panic-when-TX-ring-is-full.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 9a59f534e5f1d432bf63f0ed6cb184b1ce988063 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Wed, 13 Jun 2012 09:45:16 +0000
-Subject: [PATCH 089/109] bnx2x: fix panic when TX ring is full
-
-commit bc14786a100cc6a81cd060e8031ec481241b418c upstream.
-
-There is a off by one error in the minimal number of BD in
-bnx2x_start_xmit() and bnx2x_tx_int() before stopping/resuming tx queue.
-
-A full size GSO packet, with data included in skb->head really needs
-(MAX_SKB_FRAGS + 4) BDs, because of bnx2x_tx_split()
-
-This error triggers if BQL is disabled and heavy TCP transmit traffic
-occurs.
-
-bnx2x_tx_split() definitely can be called, remove a wrong comment.
-
-Reported-by: Tomas Hruby <thruby at google.com>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Eilon Greenstein <eilong at broadcom.com>
-Cc: Yaniv Rosner <yanivr at broadcom.com>
-Cc: Merav Sicron <meravs at broadcom.com>
-Cc: Tom Herbert <therbert at google.com>
-Cc: Robert Evans <evansr at google.com>
-Cc: Willem de Bruijn <willemb at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c |    8 +++-----
- 1 files changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-index 27d6d6c..2c1a5c0 100644
---- a/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-+++ b/drivers/net/ethernet/broadcom/bnx2x/bnx2x_cmn.c
-@@ -220,7 +220,7 @@ int bnx2x_tx_int(struct bnx2x *bp, struct bnx2x_fp_txdata *txdata)
- 
- 		if ((netif_tx_queue_stopped(txq)) &&
- 		    (bp->state == BNX2X_STATE_OPEN) &&
--		    (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 3))
-+		    (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 4))
- 			netif_tx_wake_queue(txq);
- 
- 		__netif_tx_unlock(txq);
-@@ -2254,8 +2254,6 @@ int bnx2x_poll(struct napi_struct *napi, int budget)
- /* we split the first BD into headers and data BDs
-  * to ease the pain of our fellow microcode engineers
-  * we use one mapping for both BDs
-- * So far this has only been observed to happen
-- * in Other Operating Systems(TM)
-  */
- static noinline u16 bnx2x_tx_split(struct bnx2x *bp,
- 				   struct bnx2x_fp_txdata *txdata,
-@@ -2906,7 +2904,7 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
- 
- 	txdata->tx_bd_prod += nbd;
- 
--	if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_SKB_FRAGS + 3)) {
-+	if (unlikely(bnx2x_tx_avail(bp, txdata) < MAX_SKB_FRAGS + 4)) {
- 		netif_tx_stop_queue(txq);
- 
- 		/* paired memory barrier is in bnx2x_tx_int(), we have to keep
-@@ -2915,7 +2913,7 @@ netdev_tx_t bnx2x_start_xmit(struct sk_buff *skb, struct net_device *dev)
- 		smp_mb();
- 
- 		fp->eth_q_stats.driver_xoff++;
--		if (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 3)
-+		if (bnx2x_tx_avail(bp, txdata) >= MAX_SKB_FRAGS + 4)
- 			netif_tx_wake_queue(txq);
- 	}
- 	txdata->tx_pkt++;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0090-net-remove-skb_orphan_try.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0090-net-remove-skb_orphan_try.patch
deleted file mode 100644
index 6072803..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0090-net-remove-skb_orphan_try.patch
+++ /dev/null
@@ -1,135 +0,0 @@
-From 401354ebe4d79d6edf536ad7b69e59afeec81308 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Thu, 14 Jun 2012 06:42:44 +0000
-Subject: [PATCH 090/109] net: remove skb_orphan_try()
-
-commit 62b1a8ab9b3660bb820d8dfe23148ed6cda38574 upstream.
-
-Orphaning skb in dev_hard_start_xmit() makes bonding behavior
-unfriendly for applications sending big UDP bursts : Once packets
-pass the bonding device and come to real device, they might hit a full
-qdisc and be dropped. Without orphaning, the sender is automatically
-throttled because sk->sk_wmemalloc reaches sk->sk_sndbuf (assuming
-sk_sndbuf is not too big)
-
-We could try to defer the orphaning adding another test in
-dev_hard_start_xmit(), but all this seems of little gain,
-now that BQL tends to make packets more likely to be parked
-in Qdisc queues instead of NIC TX ring, in cases where performance
-matters.
-
-Reverts commits :
-fc6055a5ba31 net: Introduce skb_orphan_try()
-87fd308cfc6b net: skb_tx_hash() fix relative to skb_orphan_try()
-and removes SKBTX_DRV_NEEDS_SK_REF flag
-
-Reported-and-bisected-by: Jean-Michel Hautbois <jhautbois at gmail.com>
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Tested-by: Oliver Hartkopp <socketcan at hartkopp.net>
-Acked-by: Oliver Hartkopp <socketcan at hartkopp.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-[bwh: Backported to 3.2:
- - Adjust context
- - SKBTX_WIFI_STATUS is not defined]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/skbuff.h |    5 +----
- net/can/raw.c          |    3 ---
- net/core/dev.c         |   23 +----------------------
- net/iucv/af_iucv.c     |    1 -
- 4 files changed, 2 insertions(+), 30 deletions(-)
-
-diff --git a/include/linux/skbuff.h b/include/linux/skbuff.h
-index bdb4590..53dc7e7 100644
---- a/include/linux/skbuff.h
-+++ b/include/linux/skbuff.h
-@@ -213,11 +213,8 @@ enum {
- 	/* device driver is going to provide hardware time stamp */
- 	SKBTX_IN_PROGRESS = 1 << 2,
- 
--	/* ensure the originating sk reference is available on driver level */
--	SKBTX_DRV_NEEDS_SK_REF = 1 << 3,
--
- 	/* device driver supports TX zero-copy buffers */
--	SKBTX_DEV_ZEROCOPY = 1 << 4,
-+	SKBTX_DEV_ZEROCOPY = 1 << 3,
- };
- 
- /*
-diff --git a/net/can/raw.c b/net/can/raw.c
-index cde1b4a..46cca3a 100644
---- a/net/can/raw.c
-+++ b/net/can/raw.c
-@@ -681,9 +681,6 @@ static int raw_sendmsg(struct kiocb *iocb, struct socket *sock,
- 	if (err < 0)
- 		goto free_skb;
- 
--	/* to be able to check the received tx sock reference in raw_rcv() */
--	skb_shinfo(skb)->tx_flags |= SKBTX_DRV_NEEDS_SK_REF;
--
- 	skb->dev = dev;
- 	skb->sk  = sk;
- 
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 1cbddc9..5738654 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -2079,25 +2079,6 @@ static int dev_gso_segment(struct sk_buff *skb, int features)
- 	return 0;
- }
- 
--/*
-- * Try to orphan skb early, right before transmission by the device.
-- * We cannot orphan skb if tx timestamp is requested or the sk-reference
-- * is needed on driver level for other reasons, e.g. see net/can/raw.c
-- */
--static inline void skb_orphan_try(struct sk_buff *skb)
--{
--	struct sock *sk = skb->sk;
--
--	if (sk && !skb_shinfo(skb)->tx_flags) {
--		/* skb_tx_hash() wont be able to get sk.
--		 * We copy sk_hash into skb->rxhash
--		 */
--		if (!skb->rxhash)
--			skb->rxhash = sk->sk_hash;
--		skb_orphan(skb);
--	}
--}
--
- static bool can_checksum_protocol(unsigned long features, __be16 protocol)
- {
- 	return ((features & NETIF_F_GEN_CSUM) ||
-@@ -2182,8 +2163,6 @@ int dev_hard_start_xmit(struct sk_buff *skb, struct net_device *dev,
- 		if (!list_empty(&ptype_all))
- 			dev_queue_xmit_nit(skb, dev);
- 
--		skb_orphan_try(skb);
--
- 		features = netif_skb_features(skb);
- 
- 		if (vlan_tx_tag_present(skb) &&
-@@ -2293,7 +2272,7 @@ u16 __skb_tx_hash(const struct net_device *dev, const struct sk_buff *skb,
- 	if (skb->sk && skb->sk->sk_hash)
- 		hash = skb->sk->sk_hash;
- 	else
--		hash = (__force u16) skb->protocol ^ skb->rxhash;
-+		hash = (__force u16) skb->protocol;
- 	hash = jhash_1word(hash, hashrnd);
- 
- 	return (u16) (((u64) hash * qcount) >> 32) + qoffset;
-diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
-index 274d150..cf98d62 100644
---- a/net/iucv/af_iucv.c
-+++ b/net/iucv/af_iucv.c
-@@ -380,7 +380,6 @@ static int afiucv_hs_send(struct iucv_message *imsg, struct sock *sock,
- 			skb_trim(skb, skb->dev->mtu);
- 	}
- 	skb->protocol = ETH_P_AF_IUCV;
--	skb_shinfo(skb)->tx_flags |= SKBTX_DRV_NEEDS_SK_REF;
- 	nskb = skb_clone(skb, GFP_ATOMIC);
- 	if (!nskb)
- 		return -ENOMEM;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0091-ACPI-Make-acpi_skip_timer_override-cover-all-source_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0091-ACPI-Make-acpi_skip_timer_override-cover-all-source_.patch
deleted file mode 100644
index 6db854d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0091-ACPI-Make-acpi_skip_timer_override-cover-all-source_.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 16fe1810332abe3998fa2e0760af7f8ca5f701d6 Mon Sep 17 00:00:00 2001
-From: Feng Tang <feng.tang at intel.com>
-Date: Mon, 4 Jun 2012 15:00:04 +0800
-Subject: [PATCH 091/109] ACPI: Make acpi_skip_timer_override cover all
- source_irq==0 cases
-
-commit ae10ccdc3093486f8c2369d227583f9d79f628e5 upstream.
-
-Currently when acpi_skip_timer_override is set, it only cover the
-(source_irq == 0 && global_irq == 2) cases. While there is also
-platform which need use this option and its global_irq is not 2.
-This patch will extend acpi_skip_timer_override to cover all
-timer overriding cases as long as the source irq is 0.
-
-This is the first part of a fix to kernel bug bugzilla 40002:
-	"IRQ 0 assigned to VGA"
-https://bugzilla.kernel.org/show_bug.cgi?id=40002
-
-Reported-and-tested-by: Szymon Kowalczyk <fazerxlo at o2.pl>
-Signed-off-by: Feng Tang <feng.tang at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/acpi/boot.c |   14 ++++++++------
- 1 files changed, 8 insertions(+), 6 deletions(-)
-
-diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 4558f0d..a94dc95 100644
---- a/arch/x86/kernel/acpi/boot.c
-+++ b/arch/x86/kernel/acpi/boot.c
-@@ -416,12 +416,14 @@ acpi_parse_int_src_ovr(struct acpi_subtable_header * header,
- 		return 0;
- 	}
- 
--	if (intsrc->source_irq == 0 && intsrc->global_irq == 2) {
-+	if (intsrc->source_irq == 0) {
- 		if (acpi_skip_timer_override) {
--			printk(PREFIX "BIOS IRQ0 pin2 override ignored.\n");
-+			printk(PREFIX "BIOS IRQ0 override ignored.\n");
- 			return 0;
- 		}
--		if (acpi_fix_pin2_polarity && (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) {
-+
-+		if ((intsrc->global_irq == 2) && acpi_fix_pin2_polarity
-+			&& (intsrc->inti_flags & ACPI_MADT_POLARITY_MASK)) {
- 			intsrc->inti_flags &= ~ACPI_MADT_POLARITY_MASK;
- 			printk(PREFIX "BIOS IRQ0 pin2 override: forcing polarity to high active.\n");
- 		}
-@@ -1327,7 +1329,7 @@ static int __init dmi_disable_acpi(const struct dmi_system_id *d)
- }
- 
- /*
-- * Force ignoring BIOS IRQ0 pin2 override
-+ * Force ignoring BIOS IRQ0 override
-  */
- static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
- {
-@@ -1337,7 +1339,7 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
- 	 */
- 	if (!acpi_skip_timer_override) {
- 		WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
--		pr_notice("%s detected: Ignoring BIOS IRQ0 pin2 override\n",
-+		pr_notice("%s detected: Ignoring BIOS IRQ0 override\n",
- 			d->ident);
- 		acpi_skip_timer_override = 1;
- 	}
-@@ -1431,7 +1433,7 @@ static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
- 	 * is enabled.  This input is incorrectly designated the
- 	 * ISA IRQ 0 via an interrupt source override even though
- 	 * it is wired to the output of the master 8259A and INTIN0
--	 * is not connected at all.  Force ignoring BIOS IRQ0 pin2
-+	 * is not connected at all.  Force ignoring BIOS IRQ0
- 	 * override in that cases.
- 	 */
- 	{
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0092-ACPI-Remove-one-board-specific-WARN-when-ignoring-ti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0092-ACPI-Remove-one-board-specific-WARN-when-ignoring-ti.patch
deleted file mode 100644
index b7b8f11..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0092-ACPI-Remove-one-board-specific-WARN-when-ignoring-ti.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From b9c36e346bdb1c7bd2edd7489561f94155195e6e Mon Sep 17 00:00:00 2001
-From: Feng Tang <feng.tang at intel.com>
-Date: Mon, 4 Jun 2012 15:00:05 +0800
-Subject: [PATCH 092/109] ACPI: Remove one board specific WARN when ignoring
- timer overriding
-
-commit 5752cdb805ff89942d99d12118e2844e7db34df8 upstream.
-
-commit 7f68b4c2e158019c2ec494b5cfbd9c83b4e5b253 upstream.
-
-Current WARN msg is only for the ati_ixp4x0 board, while this function
-is used by mulitple platforms. So this one board specific warning
-is not appropriate any more.
-
-Signed-off-by: Feng Tang <feng.tang at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/acpi/boot.c |    5 -----
- 1 files changed, 0 insertions(+), 5 deletions(-)
-
-diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index a94dc95..882960e 100644
---- a/arch/x86/kernel/acpi/boot.c
-+++ b/arch/x86/kernel/acpi/boot.c
-@@ -1333,12 +1333,7 @@ static int __init dmi_disable_acpi(const struct dmi_system_id *d)
-  */
- static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
- {
--	/*
--	 * The ati_ixp4x0_rev() early PCI quirk should have set
--	 * the acpi_skip_timer_override flag already:
--	 */
- 	if (!acpi_skip_timer_override) {
--		WARN(1, KERN_ERR "ati_ixp4x0 quirk not complete.\n");
- 		pr_notice("%s detected: Ignoring BIOS IRQ0 override\n",
- 			d->ident);
- 		acpi_skip_timer_override = 1;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0093-ACPI-Add-a-quirk-for-AMILO-PRO-V2030-to-ignore-the-t.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0093-ACPI-Add-a-quirk-for-AMILO-PRO-V2030-to-ignore-the-t.patch
deleted file mode 100644
index b1b5ff5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0093-ACPI-Add-a-quirk-for-AMILO-PRO-V2030-to-ignore-the-t.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 0430a8402ee6125c909ae3f4c3a89696e9a24077 Mon Sep 17 00:00:00 2001
-From: Feng Tang <feng.tang at intel.com>
-Date: Mon, 4 Jun 2012 15:00:06 +0800
-Subject: [PATCH 093/109] ACPI: Add a quirk for "AMILO PRO V2030" to ignore
- the timer overriding
-
-commit b939c2acf1dc42b08407ef5174f2e8d6f43dd5ea upstream.
-
-commit f6b54f083cc66cf9b11d2120d8df3c2ad4e0836d upstream.
-
-This is the 2nd part of fix for kernel bugzilla 40002:
-    "IRQ 0 assigned to VGA"
-https://bugzilla.kernel.org/show_bug.cgi?id=40002
-
-The root cause is the buggy FW, whose ACPI tables assign the GSI 16
-to 2 irqs 0 and 16(VGA), and the VGA is the right owner of GSI 16.
-So add a quirk to ignore the irq0 overriding GSI 16 for the
-FUJITSU SIEMENS AMILO PRO V2030 platform will solve this issue.
-
-Reported-and-tested-by: Szymon Kowalczyk <fazerxlo at o2.pl>
-Signed-off-by: Feng Tang <feng.tang at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/acpi/boot.c |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
-index 882960e..479d03c 100644
---- a/arch/x86/kernel/acpi/boot.c
-+++ b/arch/x86/kernel/acpi/boot.c
-@@ -1463,6 +1463,14 @@ static struct dmi_system_id __initdata acpi_dmi_table_late[] = {
- 		     DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq 6715b"),
- 		     },
- 	 },
-+	{
-+	 .callback = dmi_ignore_irq0_timer_override,
-+	 .ident = "FUJITSU SIEMENS",
-+	 .matches = {
-+		     DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
-+		     DMI_MATCH(DMI_PRODUCT_NAME, "AMILO PRO V2030"),
-+		     },
-+	 },
- 	{}
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0094-ACPI-x86-fix-Dell-M6600-ACPI-reboot-regression-via-D.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0094-ACPI-x86-fix-Dell-M6600-ACPI-reboot-regression-via-D.patch
deleted file mode 100644
index 8cdbeaa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0094-ACPI-x86-fix-Dell-M6600-ACPI-reboot-regression-via-D.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 66b7502a0d37876e547c5440aa34bee18e3b0f1e Mon Sep 17 00:00:00 2001
-From: Zhang Rui <rui.zhang at intel.com>
-Date: Mon, 20 Feb 2012 14:20:06 +0800
-Subject: [PATCH 094/109] ACPI, x86: fix Dell M6600 ACPI reboot regression via
- DMI
-
-commit 76eb9a30db4bc8fd172f9155247264b5f2686d7b upstream.
-
-Dell Precision M6600 is known to require PCI reboot, so add it to
-the reboot blacklist in pci_reboot_dmi_table[].
-
-https://bugzilla.kernel.org/show_bug.cgi?id=42749
-
-cc: x86 at kernel.org
-Signed-off-by: Zhang Rui <rui.zhang at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/reboot.c |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c
-index 37a458b..e61f79c 100644
---- a/arch/x86/kernel/reboot.c
-+++ b/arch/x86/kernel/reboot.c
-@@ -460,6 +460,14 @@ static struct dmi_system_id __initdata pci_reboot_dmi_table[] = {
- 			DMI_MATCH(DMI_PRODUCT_NAME, "OptiPlex 990"),
- 		},
- 	},
-+	{	/* Handle problems with rebooting on the Precision M6600. */
-+		.callback = set_pci_reboot,
-+		.ident = "Dell OptiPlex 990",
-+		.matches = {
-+			DMI_MATCH(DMI_SYS_VENDOR, "Dell Inc."),
-+			DMI_MATCH(DMI_PRODUCT_NAME, "Precision M6600"),
-+		},
-+	},
- 	{ }
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0095-ACPI-sysfs.c-strlen-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0095-ACPI-sysfs.c-strlen-fix.patch
deleted file mode 100644
index 61a570b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0095-ACPI-sysfs.c-strlen-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From b563da2fc80658815355acc804d1b8c21d1a88f9 Mon Sep 17 00:00:00 2001
-From: Pavel Vasilyev <pavel at pavlinux.ru>
-Date: Tue, 5 Jun 2012 00:02:05 -0400
-Subject: [PATCH 095/109] ACPI sysfs.c strlen fix
-
-commit 9f132652d94c96476b0b0a8caf0c10e96ab10fa8 upstream.
-
-Current code is ignoring the last character of "enable" and "disable"
-in comparisons.
-
-https://bugzilla.kernel.org/show_bug.cgi?id=33732
-
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/sysfs.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/acpi/sysfs.c b/drivers/acpi/sysfs.c
-index 9f66181..240a244 100644
---- a/drivers/acpi/sysfs.c
-+++ b/drivers/acpi/sysfs.c
-@@ -173,7 +173,7 @@ static int param_set_trace_state(const char *val, struct kernel_param *kp)
- {
- 	int result = 0;
- 
--	if (!strncmp(val, "enable", strlen("enable") - 1)) {
-+	if (!strncmp(val, "enable", strlen("enable"))) {
- 		result = acpi_debug_trace(trace_method_name, trace_debug_level,
- 					  trace_debug_layer, 0);
- 		if (result)
-@@ -181,7 +181,7 @@ static int param_set_trace_state(const char *val, struct kernel_param *kp)
- 		goto exit;
- 	}
- 
--	if (!strncmp(val, "disable", strlen("disable") - 1)) {
-+	if (!strncmp(val, "disable", strlen("disable"))) {
- 		int name = 0;
- 		result = acpi_debug_trace((char *)&name, trace_debug_level,
- 					  trace_debug_layer, 0);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0096-eCryptfs-Gracefully-refuse-miscdev-file-ops-on-inher.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0096-eCryptfs-Gracefully-refuse-miscdev-file-ops-on-inher.patch
deleted file mode 100644
index ba3b558..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0096-eCryptfs-Gracefully-refuse-miscdev-file-ops-on-inher.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 5daf178c74f17e523291b0c4eabbf3b3f3740b75 Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Mon, 11 Jun 2012 09:24:11 -0700
-Subject: [PATCH 096/109] eCryptfs: Gracefully refuse miscdev file ops on
- inherited/passed files
-
-commit 8dc6780587c99286c0d3de747a2946a76989414a upstream.
-
-File operations on /dev/ecryptfs would BUG() when the operations were
-performed by processes other than the process that originally opened the
-file. This could happen with open files inherited after fork() or file
-descriptors passed through IPC mechanisms. Rather than calling BUG(), an
-error code can be safely returned in most situations.
-
-In ecryptfs_miscdev_release(), eCryptfs still needs to handle the
-release even if the last file reference is being held by a process that
-didn't originally open the file. ecryptfs_find_daemon_by_euid() will not
-be successful, so a pointer to the daemon is stored in the file's
-private_data. The private_data pointer is initialized when the miscdev
-file is opened and only used when the file is released.
-
-https://launchpad.net/bugs/994247
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Tested-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ecryptfs/miscdev.c |   23 ++++++++++++++++-------
- 1 files changed, 16 insertions(+), 7 deletions(-)
-
-diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
-index 0dc5a3d..a050e4b 100644
---- a/fs/ecryptfs/miscdev.c
-+++ b/fs/ecryptfs/miscdev.c
-@@ -49,7 +49,10 @@ ecryptfs_miscdev_poll(struct file *file, poll_table *pt)
- 	mutex_lock(&ecryptfs_daemon_hash_mux);
- 	/* TODO: Just use file->private_data? */
- 	rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns());
--	BUG_ON(rc || !daemon);
-+	if (rc || !daemon) {
-+		mutex_unlock(&ecryptfs_daemon_hash_mux);
-+		return -EINVAL;
-+	}
- 	mutex_lock(&daemon->mux);
- 	mutex_unlock(&ecryptfs_daemon_hash_mux);
- 	if (daemon->flags & ECRYPTFS_DAEMON_ZOMBIE) {
-@@ -122,6 +125,7 @@ ecryptfs_miscdev_open(struct inode *inode, struct file *file)
- 		goto out_unlock_daemon;
- 	}
- 	daemon->flags |= ECRYPTFS_DAEMON_MISCDEV_OPEN;
-+	file->private_data = daemon;
- 	atomic_inc(&ecryptfs_num_miscdev_opens);
- out_unlock_daemon:
- 	mutex_unlock(&daemon->mux);
-@@ -152,9 +156,9 @@ ecryptfs_miscdev_release(struct inode *inode, struct file *file)
- 
- 	mutex_lock(&ecryptfs_daemon_hash_mux);
- 	rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns());
--	BUG_ON(rc || !daemon);
-+	if (rc || !daemon)
-+		daemon = file->private_data;
- 	mutex_lock(&daemon->mux);
--	BUG_ON(daemon->pid != task_pid(current));
- 	BUG_ON(!(daemon->flags & ECRYPTFS_DAEMON_MISCDEV_OPEN));
- 	daemon->flags &= ~ECRYPTFS_DAEMON_MISCDEV_OPEN;
- 	atomic_dec(&ecryptfs_num_miscdev_opens);
-@@ -246,8 +250,16 @@ ecryptfs_miscdev_read(struct file *file, char __user *buf, size_t count,
- 	mutex_lock(&ecryptfs_daemon_hash_mux);
- 	/* TODO: Just use file->private_data? */
- 	rc = ecryptfs_find_daemon_by_euid(&daemon, euid, current_user_ns());
--	BUG_ON(rc || !daemon);
-+	if (rc || !daemon) {
-+		mutex_unlock(&ecryptfs_daemon_hash_mux);
-+		return -EINVAL;
-+	}
- 	mutex_lock(&daemon->mux);
-+	if (task_pid(current) != daemon->pid) {
-+		mutex_unlock(&daemon->mux);
-+		mutex_unlock(&ecryptfs_daemon_hash_mux);
-+		return -EPERM;
-+	}
- 	if (daemon->flags & ECRYPTFS_DAEMON_ZOMBIE) {
- 		rc = 0;
- 		mutex_unlock(&ecryptfs_daemon_hash_mux);
-@@ -284,9 +296,6 @@ check_list:
- 		 * message from the queue; try again */
- 		goto check_list;
- 	}
--	BUG_ON(euid != daemon->euid);
--	BUG_ON(current_user_ns() != daemon->user_ns);
--	BUG_ON(task_pid(current) != daemon->pid);
- 	msg_ctx = list_first_entry(&daemon->msg_ctx_out_queue,
- 				   struct ecryptfs_msg_ctx, daemon_out_list);
- 	BUG_ON(!msg_ctx);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0097-eCryptfs-Fix-lockdep-warning-in-miscdev-operations.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0097-eCryptfs-Fix-lockdep-warning-in-miscdev-operations.patch
deleted file mode 100644
index d4e453e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0097-eCryptfs-Fix-lockdep-warning-in-miscdev-operations.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 3b0dfe936fb38efde98e2650ff18587c3285eb2a Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Mon, 11 Jun 2012 10:21:34 -0700
-Subject: [PATCH 097/109] eCryptfs: Fix lockdep warning in miscdev operations
-
-commit 60d65f1f07a7d81d3eb3b91fc13fca80f2fdbb12 upstream.
-
-Don't grab the daemon mutex while holding the message context mutex.
-Addresses this lockdep warning:
-
- ecryptfsd/2141 is trying to acquire lock:
-  (&ecryptfs_msg_ctx_arr[i].mux){+.+.+.}, at: [<ffffffffa029c213>] ecryptfs_miscdev_read+0x143/0x470 [ecryptfs]
-
- but task is already holding lock:
-  (&(*daemon)->mux){+.+...}, at: [<ffffffffa029c2ec>] ecryptfs_miscdev_read+0x21c/0x470 [ecryptfs]
-
- which lock already depends on the new lock.
-
- the existing dependency chain (in reverse order) is:
-
- -> #1 (&(*daemon)->mux){+.+...}:
-        [<ffffffff810a3b8d>] lock_acquire+0x9d/0x220
-        [<ffffffff8151c6da>] __mutex_lock_common+0x5a/0x4b0
-        [<ffffffff8151cc64>] mutex_lock_nested+0x44/0x50
-        [<ffffffffa029c5d7>] ecryptfs_send_miscdev+0x97/0x120 [ecryptfs]
-        [<ffffffffa029b744>] ecryptfs_send_message+0x134/0x1e0 [ecryptfs]
-        [<ffffffffa029a24e>] ecryptfs_generate_key_packet_set+0x2fe/0xa80 [ecryptfs]
-        [<ffffffffa02960f8>] ecryptfs_write_metadata+0x108/0x250 [ecryptfs]
-        [<ffffffffa0290f80>] ecryptfs_create+0x130/0x250 [ecryptfs]
-        [<ffffffff811963a4>] vfs_create+0xb4/0x120
-        [<ffffffff81197865>] do_last+0x8c5/0xa10
-        [<ffffffff811998f9>] path_openat+0xd9/0x460
-        [<ffffffff81199da2>] do_filp_open+0x42/0xa0
-        [<ffffffff81187998>] do_sys_open+0xf8/0x1d0
-        [<ffffffff81187a91>] sys_open+0x21/0x30
-        [<ffffffff81527d69>] system_call_fastpath+0x16/0x1b
-
- -> #0 (&ecryptfs_msg_ctx_arr[i].mux){+.+.+.}:
-        [<ffffffff810a3418>] __lock_acquire+0x1bf8/0x1c50
-        [<ffffffff810a3b8d>] lock_acquire+0x9d/0x220
-        [<ffffffff8151c6da>] __mutex_lock_common+0x5a/0x4b0
-        [<ffffffff8151cc64>] mutex_lock_nested+0x44/0x50
-        [<ffffffffa029c213>] ecryptfs_miscdev_read+0x143/0x470 [ecryptfs]
-        [<ffffffff811887d3>] vfs_read+0xb3/0x180
-        [<ffffffff811888ed>] sys_read+0x4d/0x90
-        [<ffffffff81527d69>] system_call_fastpath+0x16/0x1b
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ecryptfs/miscdev.c |   25 +++++++++++++------------
- 1 files changed, 13 insertions(+), 12 deletions(-)
-
-diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
-index a050e4b..de42310 100644
---- a/fs/ecryptfs/miscdev.c
-+++ b/fs/ecryptfs/miscdev.c
-@@ -195,31 +195,32 @@ int ecryptfs_send_miscdev(char *data, size_t data_size,
- 			  struct ecryptfs_msg_ctx *msg_ctx, u8 msg_type,
- 			  u16 msg_flags, struct ecryptfs_daemon *daemon)
- {
--	int rc = 0;
-+	struct ecryptfs_message *msg;
- 
--	mutex_lock(&msg_ctx->mux);
--	msg_ctx->msg = kmalloc((sizeof(*msg_ctx->msg) + data_size),
--			       GFP_KERNEL);
--	if (!msg_ctx->msg) {
--		rc = -ENOMEM;
-+	msg = kmalloc((sizeof(*msg) + data_size), GFP_KERNEL);
-+	if (!msg) {
- 		printk(KERN_ERR "%s: Out of memory whilst attempting "
- 		       "to kmalloc(%zd, GFP_KERNEL)\n", __func__,
--		       (sizeof(*msg_ctx->msg) + data_size));
--		goto out_unlock;
-+		       (sizeof(*msg) + data_size));
-+		return -ENOMEM;
- 	}
-+
-+	mutex_lock(&msg_ctx->mux);
-+	msg_ctx->msg = msg;
- 	msg_ctx->msg->index = msg_ctx->index;
- 	msg_ctx->msg->data_len = data_size;
- 	msg_ctx->type = msg_type;
- 	memcpy(msg_ctx->msg->data, data, data_size);
- 	msg_ctx->msg_size = (sizeof(*msg_ctx->msg) + data_size);
--	mutex_lock(&daemon->mux);
- 	list_add_tail(&msg_ctx->daemon_out_list, &daemon->msg_ctx_out_queue);
-+	mutex_unlock(&msg_ctx->mux);
-+
-+	mutex_lock(&daemon->mux);
- 	daemon->num_queued_msg_ctx++;
- 	wake_up_interruptible(&daemon->wait);
- 	mutex_unlock(&daemon->mux);
--out_unlock:
--	mutex_unlock(&msg_ctx->mux);
--	return rc;
-+
-+	return 0;
- }
- 
- /**
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0098-eCryptfs-Properly-check-for-O_RDONLY-flag-before-doi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0098-eCryptfs-Properly-check-for-O_RDONLY-flag-before-doi.patch
deleted file mode 100644
index 2758ec0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0098-eCryptfs-Properly-check-for-O_RDONLY-flag-before-doi.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 590d0b9de4bb4ef7a84bb0a8a13d85353556e7ae Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Tue, 12 Jun 2012 11:17:01 -0700
-Subject: [PATCH 098/109] eCryptfs: Properly check for O_RDONLY flag before
- doing privileged open
-
-commit 9fe79d7600497ed8a95c3981cbe5b73ab98222f0 upstream.
-
-If the first attempt at opening the lower file read/write fails,
-eCryptfs will retry using a privileged kthread. However, the privileged
-retry should not happen if the lower file's inode is read-only because a
-read/write open will still be unsuccessful.
-
-The check for determining if the open should be retried was intended to
-be based on the access mode of the lower file's open flags being
-O_RDONLY, but the check was incorrectly performed. This would cause the
-open to be retried by the privileged kthread, resulting in a second
-failed open of the lower file. This patch corrects the check to
-determine if the open request should be handled by the privileged
-kthread.
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
-Acked-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ecryptfs/kthread.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/ecryptfs/kthread.c b/fs/ecryptfs/kthread.c
-index 69f994a..0dbe58a 100644
---- a/fs/ecryptfs/kthread.c
-+++ b/fs/ecryptfs/kthread.c
-@@ -149,7 +149,7 @@ int ecryptfs_privileged_open(struct file **lower_file,
- 	(*lower_file) = dentry_open(lower_dentry, lower_mnt, flags, cred);
- 	if (!IS_ERR(*lower_file))
- 		goto out;
--	if (flags & O_RDONLY) {
-+	if ((flags & O_ACCMODE) == O_RDONLY) {
- 		rc = PTR_ERR((*lower_file));
- 		goto out;
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0099-ACPI-PM-Make-acpi_pm_device_sleep_state-follow-the-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0099-ACPI-PM-Make-acpi_pm_device_sleep_state-follow-the-s.patch
deleted file mode 100644
index 2b7beda..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0099-ACPI-PM-Make-acpi_pm_device_sleep_state-follow-the-s.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 074935f3d2b0e862c66af5032619659b070e1ebb Mon Sep 17 00:00:00 2001
-From: "Rafael J. Wysocki" <rjw at sisk.pl>
-Date: Tue, 29 May 2012 21:21:07 +0200
-Subject: [PATCH 099/109] ACPI / PM: Make acpi_pm_device_sleep_state() follow
- the specification
-
-commit dbe9a2edd17d843d80faf2b99f20a691c1853418 upstream.
-
-The comparison between the system sleep state being entered
-and the lowest system sleep state the given device may wake up
-from in acpi_pm_device_sleep_state() is reversed, because the
-specification (ACPI 5.0) says that for wakeup to work:
-
-"The sleeping state being entered must be less than or equal to the
- power state declared in element 1 of the _PRW object."
-
-In other words, the state returned by _PRW is the deepest
-(lowest-power) system sleep state the device is capable of waking up
-the system from.
-
-Moreover, acpi_pm_device_sleep_state() also should check if the
-wakeup capability is supported through ACPI, because in principle it
-may be done via native PCIe PME, for example, in which case _SxW
-should not be evaluated.
-
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/sleep.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/acpi/sleep.c b/drivers/acpi/sleep.c
-index ca191ff..ed6bc52 100644
---- a/drivers/acpi/sleep.c
-+++ b/drivers/acpi/sleep.c
-@@ -702,8 +702,8 @@ int acpi_pm_device_sleep_state(struct device *dev, int *d_min_p)
- 	 * can wake the system.  _S0W may be valid, too.
- 	 */
- 	if (acpi_target_sleep_state == ACPI_STATE_S0 ||
--	    (device_may_wakeup(dev) &&
--	     adev->wakeup.sleep_state <= acpi_target_sleep_state)) {
-+	    (device_may_wakeup(dev) && adev->wakeup.flags.valid &&
-+	     adev->wakeup.sleep_state >= acpi_target_sleep_state)) {
- 		acpi_status status;
- 
- 		acpi_method[3] = 'W';
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0100-ipheth-add-support-for-iPad.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0100-ipheth-add-support-for-iPad.patch
deleted file mode 100644
index 1eadc88..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0100-ipheth-add-support-for-iPad.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0c6658ce9402f6e184fad5386d86a3a2bb2a2d67 Mon Sep 17 00:00:00 2001
-From: Davide Gerhard <rainbow at irh.it>
-Date: Mon, 25 Jun 2012 09:04:47 +0200
-Subject: [PATCH 100/109] ipheth: add support for iPad
-
-commit 6de0298ec9c1edaf330b71b57346241ece8f3346 upstream.
-
-This adds support for the iPad to the ipheth driver.
-(product id = 0x129a)
-
-Signed-off-by: Davide Gerhard <rainbow at irh.it>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/ipheth.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c
-index ad96164..00ed9c1 100644
---- a/drivers/net/usb/ipheth.c
-+++ b/drivers/net/usb/ipheth.c
-@@ -59,6 +59,7 @@
- #define USB_PRODUCT_IPHONE_3G   0x1292
- #define USB_PRODUCT_IPHONE_3GS  0x1294
- #define USB_PRODUCT_IPHONE_4	0x1297
-+#define USB_PRODUCT_IPAD 0x129a
- #define USB_PRODUCT_IPHONE_4_VZW 0x129c
- #define USB_PRODUCT_IPHONE_4S	0x12a0
- 
-@@ -101,6 +102,10 @@ static struct usb_device_id ipheth_table[] = {
- 		IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
- 		IPHETH_USBINTF_PROTO) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(
-+		USB_VENDOR_APPLE, USB_PRODUCT_IPAD,
-+		IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
-+		IPHETH_USBINTF_PROTO) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(
- 		USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4_VZW,
- 		IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
- 		IPHETH_USBINTF_PROTO) },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0101-stmmac-Fix-for-nfs-hang-on-multiple-reboot.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0101-stmmac-Fix-for-nfs-hang-on-multiple-reboot.patch
deleted file mode 100644
index 76313ca..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0101-stmmac-Fix-for-nfs-hang-on-multiple-reboot.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From b50133363ad0f4fa9ca46317aaa7261a21f22305 Mon Sep 17 00:00:00 2001
-From: Deepak Sikri <deepak.sikri at st.com>
-Date: Sun, 8 Jul 2012 21:14:45 +0000
-Subject: [PATCH 101/109] stmmac: Fix for nfs hang on multiple reboot
-
-commit 8e83989106562326bfd6aaf92174fe138efd026b upstream.
-
-It was observed that during multiple reboots nfs hangs. The status of
-receive descriptors shows that all the descriptors were in control of
-CPU, and none were assigned to DMA.
-Also the DMA status register confirmed that the Rx buffer is
-unavailable.
-
-This patch adds the fix for the same by adding the memory barriers to
-ascertain that the all instructions before enabling the Rx or Tx DMA are
-completed which involves the proper setting of the ownership bit in DMA
-descriptors.
-
-Signed-off-by: Deepak Sikri <deepak.sikri at st.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/stmicro/stmmac/stmmac_main.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-index 72cd190..d4d2bc1 100644
---- a/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_main.c
-@@ -1174,6 +1174,7 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev)
- 		priv->hw->desc->prepare_tx_desc(desc, 0, len, csum_insertion);
- 		wmb();
- 		priv->hw->desc->set_tx_owner(desc);
-+		wmb();
- 	}
- 
- 	/* Interrupt on completition only for the latest segment */
-@@ -1189,6 +1190,7 @@ static netdev_tx_t stmmac_xmit(struct sk_buff *skb, struct net_device *dev)
- 
- 	/* To avoid raise condition */
- 	priv->hw->desc->set_tx_owner(first);
-+	wmb();
- 
- 	priv->cur_tx++;
- 
-@@ -1252,6 +1254,7 @@ static inline void stmmac_rx_refill(struct stmmac_priv *priv)
- 		}
- 		wmb();
- 		priv->hw->desc->set_rx_owner(p + entry);
-+		wmb();
- 	}
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0102-bonding-debugfs-and-network-namespaces-are-incompati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0102-bonding-debugfs-and-network-namespaces-are-incompati.patch
deleted file mode 100644
index 9449afb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0102-bonding-debugfs-and-network-namespaces-are-incompati.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 4def3e67f9744a1010a27b55034269076ea6cffc Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Mon, 9 Jul 2012 10:52:43 +0000
-Subject: [PATCH 102/109] bonding: debugfs and network namespaces are
- incompatible
-
-commit 96ca7ffe748bf91f851e6aa4479aa11c8b1122ba upstream.
-
-The bonding debugfs support has been broken in the presence of network
-namespaces since it has been added.  The debugfs support does not handle
-multiple bonding devices with the same name in different network
-namespaces.
-
-I haven't had any bug reports, and I'm not interested in getting any.
-Disable the debugfs support when network namespaces are enabled.
-
-Signed-off-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/bonding/bond_debugfs.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_debugfs.c b/drivers/net/bonding/bond_debugfs.c
-index 3680aa2..2cf084e 100644
---- a/drivers/net/bonding/bond_debugfs.c
-+++ b/drivers/net/bonding/bond_debugfs.c
-@@ -6,7 +6,7 @@
- #include "bonding.h"
- #include "bond_alb.h"
- 
--#ifdef CONFIG_DEBUG_FS
-+#if defined(CONFIG_DEBUG_FS) && !defined(CONFIG_NET_NS)
- 
- #include <linux/debugfs.h>
- #include <linux/seq_file.h>
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0103-bonding-Manage-proc-net-bonding-entries-from-the-net.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0103-bonding-Manage-proc-net-bonding-entries-from-the-net.patch
deleted file mode 100644
index 4180a9d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0103-bonding-Manage-proc-net-bonding-entries-from-the-net.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 9a6163ec597d5cd83bb9a4ea19b64236ea8499b6 Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Mon, 9 Jul 2012 10:51:45 +0000
-Subject: [PATCH 103/109] bonding: Manage /proc/net/bonding/ entries from the
- netdev events
-
-commit a64d49c3dd504b685f9742a2f3dcb11fb8e4345f upstream.
-
-It was recently reported that moving a bonding device between network
-namespaces causes warnings from /proc.  It turns out after the move we
-were trying to add and to remove the /proc/net/bonding entries from the
-wrong network namespace.
-
-Move the bonding /proc registration code into the NETDEV_REGISTER and
-NETDEV_UNREGISTER events where the proc registration and unregistration
-will always happen at the right time.
-
-Signed-off-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/bonding/bond_main.c |    9 ++++++---
- 1 files changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_main.c b/drivers/net/bonding/bond_main.c
-index 1a88e38..6c284d1 100644
---- a/drivers/net/bonding/bond_main.c
-+++ b/drivers/net/bonding/bond_main.c
-@@ -3184,6 +3184,12 @@ static int bond_master_netdev_event(unsigned long event,
- 	switch (event) {
- 	case NETDEV_CHANGENAME:
- 		return bond_event_changename(event_bond);
-+	case NETDEV_UNREGISTER:
-+		bond_remove_proc_entry(event_bond);
-+		break;
-+	case NETDEV_REGISTER:
-+		bond_create_proc_entry(event_bond);
-+		break;
- 	default:
- 		break;
- 	}
-@@ -4391,8 +4397,6 @@ static void bond_uninit(struct net_device *bond_dev)
- 
- 	bond_work_cancel_all(bond);
- 
--	bond_remove_proc_entry(bond);
--
- 	bond_debug_unregister(bond);
- 
- 	__hw_addr_flush(&bond->mc_list);
-@@ -4794,7 +4798,6 @@ static int bond_init(struct net_device *bond_dev)
- 
- 	bond_set_lockdep_class(bond_dev);
- 
--	bond_create_proc_entry(bond);
- 	list_add_tail(&bond->bond_list, &bn->dev_list);
- 
- 	bond_prepare_sysfs_group(bond);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0104-Input-bcm5974-Add-support-for-2012-MacBook-Pro-Retin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0104-Input-bcm5974-Add-support-for-2012-MacBook-Pro-Retin.patch
deleted file mode 100644
index fb73f30..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0104-Input-bcm5974-Add-support-for-2012-MacBook-Pro-Retin.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From d622494f403ba2a79ac08f83e7b016d0687c4ce5 Mon Sep 17 00:00:00 2001
-From: Henrik Rydberg <rydberg at euromail.se>
-Date: Tue, 10 Jul 2012 09:43:57 -0700
-Subject: [PATCH 104/109] Input: bcm5974 - Add support for 2012 MacBook Pro
- Retina
-
-commit 3dde22a98e94eb18527f0ff0068fb2fb945e58d4 upstream.
-
-Add support for the 15'' MacBook Pro Retina model (MacBookPro10,1).
-
-Patch originally written by clipcarl (forums.opensuse.org).
-
-Signed-off-by: Henrik Rydberg <rydberg at euromail.se>
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/input/mouse/bcm5974.c |   20 ++++++++++++++++++++
- 1 files changed, 20 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/input/mouse/bcm5974.c b/drivers/input/mouse/bcm5974.c
-index 5ec617e..ec58f48 100644
---- a/drivers/input/mouse/bcm5974.c
-+++ b/drivers/input/mouse/bcm5974.c
-@@ -79,6 +79,10 @@
- #define USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI	0x0252
- #define USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO	0x0253
- #define USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS	0x0254
-+/* MacbookPro10,1 (unibody, June 2012) */
-+#define USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI	0x0262
-+#define USB_DEVICE_ID_APPLE_WELLSPRING7_ISO	0x0263
-+#define USB_DEVICE_ID_APPLE_WELLSPRING7_JIS	0x0264
- 
- #define BCM5974_DEVICE(prod) {					\
- 	.match_flags = (USB_DEVICE_ID_MATCH_DEVICE |		\
-@@ -128,6 +132,10 @@ static const struct usb_device_id bcm5974_table[] = {
- 	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_ANSI),
- 	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_ISO),
- 	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS),
-+	/* MacbookPro10,1 */
-+	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI),
-+	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_ISO),
-+	BCM5974_DEVICE(USB_DEVICE_ID_APPLE_WELLSPRING7_JIS),
- 	/* Terminating entry */
- 	{}
- };
-@@ -354,6 +362,18 @@ static const struct bcm5974_config bcm5974_config_table[] = {
- 		{ DIM_X, DIM_X / SN_COORD, -4620, 5140 },
- 		{ DIM_Y, DIM_Y / SN_COORD, -150, 6600 }
- 	},
-+	{
-+		USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI,
-+		USB_DEVICE_ID_APPLE_WELLSPRING7_ISO,
-+		USB_DEVICE_ID_APPLE_WELLSPRING7_JIS,
-+		HAS_INTEGRATED_BUTTON,
-+		0x84, sizeof(struct bt_data),
-+		0x81, TYPE2, FINGER_TYPE2, FINGER_TYPE2 + SIZEOF_ALL_FINGERS,
-+		{ DIM_PRESSURE, DIM_PRESSURE / SN_PRESSURE, 0, 300 },
-+		{ DIM_WIDTH, DIM_WIDTH / SN_WIDTH, 0, 2048 },
-+		{ DIM_X, DIM_X / SN_COORD, -4750, 5280 },
-+		{ DIM_Y, DIM_Y / SN_COORD, -150, 6730 }
-+	},
- 	{}
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0105-Input-xpad-handle-all-variations-of-Mad-Catz-Beat-Pa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0105-Input-xpad-handle-all-variations-of-Mad-Catz-Beat-Pa.patch
deleted file mode 100644
index cf26e8f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0105-Input-xpad-handle-all-variations-of-Mad-Catz-Beat-Pa.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f8acffc53848df78a3d1683f4ab3f1236a20512d Mon Sep 17 00:00:00 2001
-From: Yuri Khan <yurivkhan at gmail.com>
-Date: Wed, 11 Jul 2012 00:49:18 -0700
-Subject: [PATCH 105/109] Input: xpad - handle all variations of Mad Catz Beat
- Pad
-
-commit 3ffb62cb9ac2430c2504c6ff9727d0f2476ef0bd upstream.
-
-The device should be handled by xpad driver instead of generic HID driver.
-
-Signed-off-by: Yuri Khan <yurivkhan at gmail.com>
-Acked-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hid/hid-core.c        |    1 +
- drivers/hid/hid-ids.h         |    3 +++
- drivers/input/joystick/xpad.c |    1 +
- 3 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index c27b402..cfa053e 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1884,6 +1884,7 @@ static const struct hid_device_id hid_ignore_list[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_MCT) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HYBRID) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_LD, USB_DEVICE_ID_LD_HEATCONTROL) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_MADCATZ, USB_DEVICE_ID_MADCATZ_BEATPAD) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1024LS) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_MCC, USB_DEVICE_ID_MCC_PMD1208LS) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_MICROCHIP, USB_DEVICE_ID_PICKIT1) },
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index fba3fc4..07a91a0 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -491,6 +491,9 @@
- #define USB_DEVICE_ID_CRYSTALTOUCH	0x0006
- #define USB_DEVICE_ID_CRYSTALTOUCH_DUAL	0x0007
- 
-+#define USB_VENDOR_ID_MADCATZ		0x0738
-+#define USB_DEVICE_ID_MADCATZ_BEATPAD	0x4540
-+
- #define USB_VENDOR_ID_MCC		0x09db
- #define USB_DEVICE_ID_MCC_PMD1024LS	0x0076
- #define USB_DEVICE_ID_MCC_PMD1208LS	0x007a
-diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
-index d728875..a2daf38 100644
---- a/drivers/input/joystick/xpad.c
-+++ b/drivers/input/joystick/xpad.c
-@@ -238,6 +238,7 @@ static struct usb_device_id xpad_table [] = {
- 	XPAD_XBOX360_VENDOR(0x045e),		/* Microsoft X-Box 360 controllers */
- 	XPAD_XBOX360_VENDOR(0x046d),		/* Logitech X-Box 360 style controllers */
- 	XPAD_XBOX360_VENDOR(0x0738),		/* Mad Catz X-Box 360 controllers */
-+	{ USB_DEVICE(0x0738, 0x4540) },		/* Mad Catz Beat Pad */
- 	XPAD_XBOX360_VENDOR(0x0e6f),		/* 0x0e6f X-Box 360 controllers */
- 	XPAD_XBOX360_VENDOR(0x12ab),		/* X-Box 360 dance pads */
- 	XPAD_XBOX360_VENDOR(0x1430),		/* RedOctane X-Box 360 controllers */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0106-Input-xpad-add-signature-for-Razer-Onza-Tournament-E.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0106-Input-xpad-add-signature-for-Razer-Onza-Tournament-E.patch
deleted file mode 100644
index 4dff859..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0106-Input-xpad-add-signature-for-Razer-Onza-Tournament-E.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 08a3e81aa5cc67fd0ce0b2f9608aaec9f497ca11 Mon Sep 17 00:00:00 2001
-From: Ilia Katsnelson <k0009000 at gmail.com>
-Date: Wed, 11 Jul 2012 00:54:20 -0700
-Subject: [PATCH 106/109] Input: xpad - add signature for Razer Onza
- Tournament Edition
-
-commit cc71a7e899cc6b2ff41e1be48756782ed004d802 upstream.
-
-Signed-off-by: Ilia Katsnelson <k0009000 at gmail.com>
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/input/joystick/xpad.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
-index a2daf38..ddfabc4 100644
---- a/drivers/input/joystick/xpad.c
-+++ b/drivers/input/joystick/xpad.c
-@@ -164,6 +164,7 @@ static const struct xpad_device {
- 	{ 0x1bad, 0x0003, "Harmonix Rock Band Drumkit", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
- 	{ 0x0f0d, 0x0016, "Hori Real Arcade Pro.EX", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
- 	{ 0x0f0d, 0x000d, "Hori Fighting Stick EX2", MAP_TRIGGERS_TO_BUTTONS, XTYPE_XBOX360 },
-+	{ 0x1689, 0xfd00, "Razer Onza Tournament Edition", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX360 },
- 	{ 0xffff, 0xffff, "Chinese-made Xbox Controller", 0, XTYPE_XBOX },
- 	{ 0x0000, 0x0000, "Generic X-Box pad", 0, XTYPE_UNKNOWN }
- };
-@@ -244,7 +245,8 @@ static struct usb_device_id xpad_table [] = {
- 	XPAD_XBOX360_VENDOR(0x1430),		/* RedOctane X-Box 360 controllers */
- 	XPAD_XBOX360_VENDOR(0x146b),		/* BigBen Interactive Controllers */
- 	XPAD_XBOX360_VENDOR(0x1bad),		/* Harminix Rock Band Guitar and Drums */
--	XPAD_XBOX360_VENDOR(0x0f0d),            /* Hori Controllers */
-+	XPAD_XBOX360_VENDOR(0x0f0d),		/* Hori Controllers */
-+	XPAD_XBOX360_VENDOR(0x1689),		/* Razer Onza */
- 	{ }
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0107-Input-xpad-add-Andamiro-Pump-It-Up-pad.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0107-Input-xpad-add-Andamiro-Pump-It-Up-pad.patch
deleted file mode 100644
index d591ad1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0107-Input-xpad-add-Andamiro-Pump-It-Up-pad.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 5c62e66de78b65d8dd3f21df7d856eaefc694c8e Mon Sep 17 00:00:00 2001
-From: Yuri Khan <yurivkhan at gmail.com>
-Date: Wed, 11 Jul 2012 22:12:31 -0700
-Subject: [PATCH 107/109] Input: xpad - add Andamiro Pump It Up pad
-
-commit e76b8ee25e034ab601b525abb95cea14aa167ed3 upstream.
-
-I couldn't find the vendor ID in any of the online databases, but this
-mat has a Pump It Up logo on the top side of the controller compartment,
-and a disclaimer stating that Andamiro will not be liable on the bottom.
-
-Signed-off-by: Yuri Khan <yurivkhan at gmail.com>
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/input/joystick/xpad.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/input/joystick/xpad.c b/drivers/input/joystick/xpad.c
-index ddfabc4..2189cbf 100644
---- a/drivers/input/joystick/xpad.c
-+++ b/drivers/input/joystick/xpad.c
-@@ -142,6 +142,7 @@ static const struct xpad_device {
- 	{ 0x0c12, 0x880a, "Pelican Eclipse PL-2023", 0, XTYPE_XBOX },
- 	{ 0x0c12, 0x8810, "Zeroplus Xbox Controller", 0, XTYPE_XBOX },
- 	{ 0x0c12, 0x9902, "HAMA VibraX - *FAULTY HARDWARE*", 0, XTYPE_XBOX },
-+	{ 0x0d2f, 0x0002, "Andamiro Pump It Up pad", MAP_DPAD_TO_BUTTONS, XTYPE_XBOX },
- 	{ 0x0e4c, 0x1097, "Radica Gamester Controller", 0, XTYPE_XBOX },
- 	{ 0x0e4c, 0x2390, "Radica Games Jtech Controller", 0, XTYPE_XBOX },
- 	{ 0x0e6f, 0x0003, "Logic3 Freebird wireless Controller", 0, XTYPE_XBOX },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0108-HID-add-support-for-2012-MacBook-Pro-Retina.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0108-HID-add-support-for-2012-MacBook-Pro-Retina.patch
deleted file mode 100644
index fd76af3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0108-HID-add-support-for-2012-MacBook-Pro-Retina.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 4be420efc64c25fbe44fbc002e74c117d652a1d5 Mon Sep 17 00:00:00 2001
-From: Ryan Bourgeois <bluedragonx at gmail.com>
-Date: Tue, 10 Jul 2012 09:43:33 -0700
-Subject: [PATCH 108/109] HID: add support for 2012 MacBook Pro Retina
-
-commit b2e6ad7dfe26aac5bf136962d0b11d180b820d44 upstream.
-
-Add support for the 15'' MacBook Pro Retina. The keyboard is
-the same as recent models.
-
-The patch needs to be synchronized with the bcm5974 patch for
-the trackpad - as usual.
-
-Patch originally written by clipcarl (forums.opensuse.org).
-
-[rydberg at euromail.se: Amended mouse ignore lines]
-Signed-off-by: Ryan Bourgeois <bluedragonx at gmail.com>
-Signed-off-by: Henrik Rydberg <rydberg at euromail.se>
-Acked-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/hid/hid-apple.c |    6 ++++++
- drivers/hid/hid-core.c  |    6 ++++++
- drivers/hid/hid-ids.h   |    3 +++
- 3 files changed, 15 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
-index 299d238..899c712 100644
---- a/drivers/hid/hid-apple.c
-+++ b/drivers/hid/hid-apple.c
-@@ -514,6 +514,12 @@ static const struct hid_device_id apple_devices[] = {
- 		.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING5A_JIS),
- 		.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI),
-+		.driver_data = APPLE_HAS_FN },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO),
-+		.driver_data = APPLE_HAS_FN | APPLE_ISO_KEYBOARD },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS),
-+		.driver_data = APPLE_HAS_FN | APPLE_RDESC_JIS },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI),
- 		.driver_data = APPLE_NUMLOCK_EMULATION | APPLE_HAS_FN },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO),
-diff --git a/drivers/hid/hid-core.c b/drivers/hid/hid-core.c
-index cfa053e..95430a0 100644
---- a/drivers/hid/hid-core.c
-+++ b/drivers/hid/hid-core.c
-@@ -1374,6 +1374,9 @@ static const struct hid_device_id hid_have_special_driver[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS) },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI) },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO) },
- 	{ HID_BLUETOOTH_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS) },
-@@ -1969,6 +1972,9 @@ static const struct hid_device_id hid_mouse_ignore_list[] = {
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ANSI) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_ISO) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING6A_JIS) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_ISO) },
-+	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_WELLSPRING7_JIS) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_FOUNTAIN_TP_ONLY) },
- 	{ HID_USB_DEVICE(USB_VENDOR_ID_APPLE, USB_DEVICE_ID_APPLE_GEYSER1_TP_ONLY) },
- 	{ }
-diff --git a/drivers/hid/hid-ids.h b/drivers/hid/hid-ids.h
-index 07a91a0..7db934d 100644
---- a/drivers/hid/hid-ids.h
-+++ b/drivers/hid/hid-ids.h
-@@ -125,6 +125,9 @@
- #define USB_DEVICE_ID_APPLE_WELLSPRING6_ANSI	0x024c
- #define USB_DEVICE_ID_APPLE_WELLSPRING6_ISO	0x024d
- #define USB_DEVICE_ID_APPLE_WELLSPRING6_JIS	0x024e
-+#define USB_DEVICE_ID_APPLE_WELLSPRING7_ANSI	0x0262
-+#define USB_DEVICE_ID_APPLE_WELLSPRING7_ISO	0x0263
-+#define USB_DEVICE_ID_APPLE_WELLSPRING7_JIS	0x0264
- #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ANSI  0x0239
- #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_ISO   0x023a
- #define USB_DEVICE_ID_APPLE_ALU_WIRELESS_2009_JIS   0x023b
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0109-Linux-3.2.24.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0109-Linux-3.2.24.patch
deleted file mode 100644
index 7c4e2ac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.24/0109-Linux-3.2.24.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From b356d49fb84a5f890bd91feedf0d67078e27a3a9 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 25 Jul 2012 04:11:50 +0100
-Subject: [PATCH 109/109] Linux 3.2.24
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 40d1e3b..80bb4fd 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 23
-+SUBLEVEL = 24
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0001-mm-reduce-the-amount-of-work-done-when-updating-min_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0001-mm-reduce-the-amount-of-work-done-when-updating-min_.patch
deleted file mode 100644
index d7cf581..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0001-mm-reduce-the-amount-of-work-done-when-updating-min_.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From ce43a5bb3c28d87f36ff91fcc2fc210db2b6fd4b Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Tue, 10 Jan 2012 15:07:14 -0800
-Subject: [PATCH 01/73] mm: reduce the amount of work done when updating
- min_free_kbytes
-
-commit 938929f14cb595f43cd1a4e63e22d36cab1e4a1f upstream.
-
-Stable note: Fixes https://bugzilla.novell.com/show_bug.cgi?id=726210 .
-        Large machines with 1TB or more of RAM take a long time to boot
-        without this patch and may spew out soft lockup warnings.
-
-When min_free_kbytes is updated, some pageblocks are marked
-MIGRATE_RESERVE.  Ordinarily, this work is unnoticable as it happens early
-in boot but on large machines with 1TB of memory, this has been reported
-to delay boot times, probably due to the NUMA distances involved.
-
-The bulk of the work is due to calling calling pageblock_is_reserved() an
-unnecessary amount of times and accessing far more struct page metadata
-than is necessary.  This patch significantly reduces the amount of work
-done by setup_zone_migrate_reserve() improving boot times on 1TB machines.
-
-[akpm at linux-foundation.org: coding-style fixes]
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/page_alloc.c |   40 ++++++++++++++++++++++++----------------
- 1 files changed, 24 insertions(+), 16 deletions(-)
-
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 485be89..cb3460e 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -3407,25 +3407,33 @@ static void setup_zone_migrate_reserve(struct zone *zone)
- 		if (page_to_nid(page) != zone_to_nid(zone))
- 			continue;
- 
--		/* Blocks with reserved pages will never free, skip them. */
--		block_end_pfn = min(pfn + pageblock_nr_pages, end_pfn);
--		if (pageblock_is_reserved(pfn, block_end_pfn))
--			continue;
--
- 		block_migratetype = get_pageblock_migratetype(page);
- 
--		/* If this block is reserved, account for it */
--		if (reserve > 0 && block_migratetype == MIGRATE_RESERVE) {
--			reserve--;
--			continue;
--		}
-+		/* Only test what is necessary when the reserves are not met */
-+		if (reserve > 0) {
-+			/*
-+			 * Blocks with reserved pages will never free, skip
-+			 * them.
-+			 */
-+			block_end_pfn = min(pfn + pageblock_nr_pages, end_pfn);
-+			if (pageblock_is_reserved(pfn, block_end_pfn))
-+				continue;
- 
--		/* Suitable for reserving if this block is movable */
--		if (reserve > 0 && block_migratetype == MIGRATE_MOVABLE) {
--			set_pageblock_migratetype(page, MIGRATE_RESERVE);
--			move_freepages_block(zone, page, MIGRATE_RESERVE);
--			reserve--;
--			continue;
-+			/* If this block is reserved, account for it */
-+			if (block_migratetype == MIGRATE_RESERVE) {
-+				reserve--;
-+				continue;
-+			}
-+
-+			/* Suitable for reserving if this block is movable */
-+			if (block_migratetype == MIGRATE_MOVABLE) {
-+				set_pageblock_migratetype(page,
-+							MIGRATE_RESERVE);
-+				move_freepages_block(zone, page,
-+							MIGRATE_RESERVE);
-+				reserve--;
-+				continue;
-+			}
- 		}
- 
- 		/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0002-mm-compaction-allow-compaction-to-isolate-dirty-page.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0002-mm-compaction-allow-compaction-to-isolate-dirty-page.patch
deleted file mode 100644
index cbcecd1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0002-mm-compaction-allow-compaction-to-isolate-dirty-page.patch
+++ /dev/null
@@ -1,436 +0,0 @@
-From 50bec8b86d1ffdec691586e017499cb3f5e0b6a0 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:22 -0800
-Subject: [PATCH 02/73] mm: compaction: allow compaction to isolate dirty
- pages
-
-commit a77ebd333cd810d7b680d544be88c875131c2bd3 upstream.
-
-Stable note: Not tracked in Bugzilla. A fix aimed at preserving page aging
-	information by reducing LRU list churning had the side-effect of
-	reducing THP allocation success rates. This was part of a series
-	to restore the success rates while preserving the reclaim fix.
-
-Short summary: There are severe stalls when a USB stick using VFAT is
-used with THP enabled that are reduced by this series.  If you are
-experiencing this problem, please test and report back and considering I
-have seen complaints from openSUSE and Fedora users on this as well as a
-few private mails, I'm guessing it's a widespread issue.  This is a new
-type of USB-related stall because it is due to synchronous compaction
-writing where as in the past the big problem was dirty pages reaching
-the end of the LRU and being written by reclaim.
-
-Am cc'ing Andrew this time and this series would replace
-mm-do-not-stall-in-synchronous-compaction-for-thp-allocations.patch.
-I'm also cc'ing Dave Jones as he might have merged that patch to Fedora
-for wider testing and ideally it would be reverted and replaced by this
-series.
-
-That said, the later patches could really do with some review.  If this
-series is not the answer then a new direction needs to be discussed
-because as it is, the stalls are unacceptable as the results in this
-leader show.
-
-For testers that try backporting this to 3.1, it won't work because
-there is a non-obvious dependency on not writing back pages in direct
-reclaim so you need those patches too.
-
-Changelog since V5
-o Rebase to 3.2-rc5
-o Tidy up the changelogs a bit
-
-Changelog since V4
-o Added reviewed-bys, credited Andrea properly for sync-light
-o Allow dirty pages without mappings to be considered for migration
-o Bound the number of pages freed for compaction
-o Isolate PageReclaim pages on their own LRU list
-
-This is against 3.2-rc5 and follows on from discussions on "mm: Do
-not stall in synchronous compaction for THP allocations" and "[RFC
-PATCH 0/5] Reduce compaction-related stalls". Initially, the proposed
-patch eliminated stalls due to compaction which sometimes resulted in
-user-visible interactivity problems on browsers by simply never using
-sync compaction. The downside was that THP success allocation rates
-were lower because dirty pages were not being migrated as reported by
-Andrea. His approach at fixing this was nacked on the grounds that
-it reverted fixes from Rik merged that reduced the amount of pages
-reclaimed as it severely impacted his workloads performance.
-
-This series attempts to reconcile the requirements of maximising THP
-usage, without stalling in a user-visible fashion due to compaction
-or cheating by reclaiming an excessive number of pages.
-
-Patch 1 partially reverts commit 39deaf85 to allow migration to isolate
-	dirty pages. This is because migration can move some dirty
-	pages without blocking.
-
-Patch 2 notes that the /proc/sys/vm/compact_memory handler is not using
-	synchronous compaction when it should be. This is unrelated
-	to the reported stalls but is worth fixing.
-
-Patch 3 checks if we isolated a compound page during lumpy scan and
-	account for it properly. For the most part, this affects
-	tracing so it's unrelated to the stalls but worth fixing.
-
-Patch 4 notes that it is possible to abort reclaim early for compaction
-	and return 0 to the page allocator potentially entering the
-	"may oom" path. This has not been observed in practice but
-	the rest of the series potentially makes it easier to happen.
-
-Patch 5 adds a sync parameter to the migratepage callback and gives
-	the callback responsibility for migrating the page without
-	blocking if sync==false. For example, fallback_migrate_page
-	will not call writepage if sync==false. This increases the
-	number of pages that can be handled by asynchronous compaction
-	thereby reducing stalls.
-
-Patch 6 restores filter-awareness to isolate_lru_page for migration.
-	In practice, it means that pages under writeback and pages
-	without a ->migratepage callback will not be isolated
-	for migration.
-
-Patch 7 avoids calling direct reclaim if compaction is deferred but
-	makes sure that compaction is only deferred if sync
-	compaction was used.
-
-Patch 8 introduces a sync-light migration mechanism that sync compaction
-	uses. The objective is to allow some stalls but to not call
-	->writepage which can lead to significant user-visible stalls.
-
-Patch 9 notes that while we want to abort reclaim ASAP to allow
-	compation to go ahead that we leave a very small window of
-	opportunity for compaction to run. This patch allows more pages
-	to be freed by reclaim but bounds the number to a reasonable
-	level based on the high watermark on each zone.
-
-Patch 10 allows slabs to be shrunk even after compaction_ready() is
-	true for one zone. This is to avoid a problem whereby a single
-	small zone can abort reclaim even though no pages have been
-	reclaimed and no suitably large zone is in a usable state.
-
-Patch 11 fixes a problem with the rate of page scanning. As reclaim is
-	rarely stalling on pages under writeback it means that scan
-	rates are very high. This is particularly true for direct
-	reclaim which is not calling writepage. The vmstat figures
-	implied that much of this was busy work with PageReclaim pages
-	marked for immediate reclaim. This patch is a prototype that
-	moves these pages to their own LRU list.
-
-This has been tested and other than 2 USB keys getting trashed,
-nothing horrible fell out. That said, I am a bit unhappy with the
-rescue logic in patch 11 but did not find a better way around it. It
-does significantly reduce scan rates and System CPU time indicating
-it is the right direction to take.
-
-What is of critical importance is that stalls due to compaction
-are massively reduced even though sync compaction was still
-allowed. Testing from people complaining about stalls copying to USBs
-with THP enabled are particularly welcome.
-
-The following tests all involve THP usage and USB keys in some
-way. Each test follows this type of pattern
-
-1. Read from some fast fast storage, be it raw device or file. Each time
-   the copy finishes, start again until the test ends
-2. Write a large file to a filesystem on a USB stick. Each time the copy
-   finishes, start again until the test ends
-3. When memory is low, start an alloc process that creates a mapping
-   the size of physical memory to stress THP allocation. This is the
-   "real" part of the test and the part that is meant to trigger
-   stalls when THP is enabled. Copying continues in the background.
-4. Record the CPU usage and time to execute of the alloc process
-5. Record the number of THP allocs and fallbacks as well as the number of THP
-   pages in use a the end of the test just before alloc exited
-6. Run the test 5 times to get an idea of variability
-7. Between each run, sync is run and caches dropped and the test
-   waits until nr_dirty is a small number to avoid interference
-   or caching between iterations that would skew the figures.
-
-The individual tests were then
-
-writebackCPDeviceBasevfat
-	Disable THP, read from a raw device (sda), vfat on USB stick
-writebackCPDeviceBaseext4
-	Disable THP, read from a raw device (sda), ext4 on USB stick
-writebackCPDevicevfat
-	THP enabled, read from a raw device (sda), vfat on USB stick
-writebackCPDeviceext4
-	THP enabled, read from a raw device (sda), ext4 on USB stick
-writebackCPFilevfat
-	THP enabled, read from a file on fast storage and USB, both vfat
-writebackCPFileext4
-	THP enabled, read from a file on fast storage and USB, both ext4
-
-The kernels tested were
-
-3.1		3.1
-vanilla		3.2-rc5
-freemore	Patches 1-10
-immediate	Patches 1-11
-andrea		The 8 patches Andrea posted as a basis of comparison
-
-The results are very long unfortunately. I'll start with the case
-where we are not using THP at all
-
-writebackCPDeviceBasevfat
-                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1
-System Time         1.28 (    0.00%)   54.49 (-4143.46%)   48.63 (-3687.69%)    4.69 ( -265.11%)   51.88 (-3940.81%)
-+/-                 0.06 (    0.00%)    2.45 (-4305.55%)    4.75 (-8430.57%)    7.46 (-13282.76%)    4.76 (-8440.70%)
-User Time           0.09 (    0.00%)    0.05 (   40.91%)    0.06 (   29.55%)    0.07 (   15.91%)    0.06 (   27.27%)
-+/-                 0.02 (    0.00%)    0.01 (   45.39%)    0.02 (   25.07%)    0.00 (   77.06%)    0.01 (   52.24%)
-Elapsed Time      110.27 (    0.00%)   56.38 (   48.87%)   49.95 (   54.70%)   11.77 (   89.33%)   53.43 (   51.54%)
-+/-                 7.33 (    0.00%)    3.77 (   48.61%)    4.94 (   32.63%)    6.71 (    8.50%)    4.76 (   35.03%)
-THP Active          0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)
-+/-                 0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)
-Fault Alloc         0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)
-+/-                 0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)
-Fault Fallback      0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)
-+/-                 0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)    0.00 (    0.00%)
-
-The THP figures are obviously all 0 because THP was enabled. The
-main thing to watch is the elapsed times and how they compare to
-times when THP is enabled later. It's also important to note that
-elapsed time is improved by this series as System CPu time is much
-reduced.
-
-writebackCPDevicevfat
-
-                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1
-System Time         1.22 (    0.00%)   13.89 (-1040.72%)   46.40 (-3709.20%)    4.44 ( -264.37%)   47.37 (-3789.33%)
-+/-                 0.06 (    0.00%)   22.82 (-37635.56%)    3.84 (-6249.44%)    6.48 (-10618.92%)    6.60
-(-10818.53%)
-User Time           0.06 (    0.00%)    0.06 (   -6.90%)    0.05 (   17.24%)    0.05 (   13.79%)    0.04 (   31.03%)
-+/-                 0.01 (    0.00%)    0.01 (   33.33%)    0.01 (   33.33%)    0.01 (   39.14%)    0.01 (   25.46%)
-Elapsed Time     10445.54 (    0.00%) 2249.92 (   78.46%)   70.06 (   99.33%)   16.59 (   99.84%)  472.43 (
-95.48%)
-+/-               643.98 (    0.00%)  811.62 (  -26.03%)   10.02 (   98.44%)    7.03 (   98.91%)   59.99 (   90.68%)
-THP Active         15.60 (    0.00%)   35.20 (  225.64%)   65.00 (  416.67%)   70.80 (  453.85%)   62.20 (  398.72%)
-+/-                18.48 (    0.00%)   51.29 (  277.59%)   15.99 (   86.52%)   37.91 (  205.18%)   22.02 (  119.18%)
-Fault Alloc       121.80 (    0.00%)   76.60 (   62.89%)  155.40 (  127.59%)  181.20 (  148.77%)  286.60 (  235.30%)
-+/-                73.51 (    0.00%)   61.11 (   83.12%)   34.89 (   47.46%)   31.88 (   43.36%)   68.13 (   92.68%)
-Fault Fallback    881.20 (    0.00%)  926.60 (   -5.15%)  847.60 (    3.81%)  822.00 (    6.72%)  716.60 (   18.68%)
-+/-                73.51 (    0.00%)   61.26 (   16.67%)   34.89 (   52.54%)   31.65 (   56.94%)   67.75 (    7.84%)
-MMTests Statistics: duration
-User/Sys Time Running Test (seconds)       3540.88   1945.37    716.04     64.97   1937.03
-Total Elapsed Time (seconds)              52417.33  11425.90    501.02    230.95   2520.28
-
-The first thing to note is the "Elapsed Time" for the vanilla kernels
-of 2249 seconds versus 56 with THP disabled which might explain the
-reports of USB stalls with THP enabled. Applying the patches brings
-performance in line with THP-disabled performance while isolating
-pages for immediate reclaim from the LRU cuts down System CPU time.
-
-The "Fault Alloc" success rate figures are also improved. The vanilla
-kernel only managed to allocate 76.6 pages on average over the course
-of 5 iterations where as applying the series allocated 181.20 on
-average albeit it is well within variance. It's worth noting that
-applies the series at least descreases the amount of variance which
-implies an improvement.
-
-Andrea's series had a higher success rate for THP allocations but
-at a severe cost to elapsed time which is still better than vanilla
-but still much worse than disabling THP altogether. One can bring my
-series close to Andrea's by removing this check
-
-        /*
-         * If compaction is deferred for high-order allocations, it is because
-         * sync compaction recently failed. In this is the case and the caller
-         * has requested the system not be heavily disrupted, fail the
-         * allocation now instead of entering direct reclaim
-         */
-        if (deferred_compaction && (gfp_mask & __GFP_NO_KSWAPD))
-                goto nopage;
-
-I didn't include a patch that removed the above check because hurting
-overall performance to improve the THP figure is not what the average
-user wants. It's something to consider though if someone really wants
-to maximise THP usage no matter what it does to the workload initially.
-
-This is summary of vmstat figures from the same test.
-
-                                       3.1.0-vanilla rc5-vanilla freemore-v6r1 isolate-v6r1 andrea-v2r1
-Page Ins                                  3257266139  1111844061    17263623    10901575   161423219
-Page Outs                                   81054922    30364312     3626530     3657687     8753730
-Swap Ins                                        3294        2851        6560        4964        4592
-Swap Outs                                     390073      528094      620197      790912      698285
-Direct pages scanned                      1077581700  3024951463  1764930052   115140570  5901188831
-Kswapd pages scanned                        34826043     7112868     2131265     1686942     1893966
-Kswapd pages reclaimed                      28950067     4911036     1246044      966475     1497726
-Direct pages reclaimed                     805148398   280167837     3623473     2215044    40809360
-Kswapd efficiency                                83%         69%         58%         57%         79%
-Kswapd velocity                              664.399     622.521    4253.852    7304.360     751.490
-Direct efficiency                                74%          9%          0%          1%          0%
-Direct velocity                            20557.737  264745.137 3522673.849  498551.938 2341481.435
-Percentage direct scans                          96%         99%         99%         98%         99%
-Page writes by reclaim                        722646      529174      620319      791018      699198
-Page writes file                              332573        1080         122         106         913
-Page writes anon                              390073      528094      620197      790912      698285
-Page reclaim immediate                             0  2552514720  1635858848   111281140  5478375032
-Page rescued immediate                             0           0           0       87848           0
-Slabs scanned                                  23552       23552        9216        8192        9216
-Direct inode steals                              231           0           0           0           0
-Kswapd inode steals                                0           0           0           0           0
-Kswapd skipped wait                            28076         786           0          61           6
-THP fault alloc                                  609         383         753         906        1433
-THP collapse alloc                                12           6           0           0           6
-THP splits                                       536         211         456         593        1136
-THP fault fallback                              4406        4633        4263        4110        3583
-THP collapse fail                                120         127           0           0           4
-Compaction stalls                               1810         728         623         779        3200
-Compaction success                               196          53          60          80         123
-Compaction failures                             1614         675         563         699        3077
-Compaction pages moved                        193158       53545      243185      333457      226688
-Compaction move failure                         9952        9396       16424       23676       45070
-
-The main things to look at are
-
-1. Page In/out figures are much reduced by the series.
-
-2. Direct page scanning is incredibly high (264745.137 pages scanned
-   per second on the vanilla kernel) but isolating PageReclaim pages
-   on their own list reduces the number of pages scanned significantly.
-
-3. The fact that "Page rescued immediate" is a positive number implies
-   that we sometimes race removing pages from the LRU_IMMEDIATE list
-   that need to be put back on a normal LRU but it happens only for
-   0.07% of the pages marked for immediate reclaim.
-
-writebackCPDeviceext4
-                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1
-System Time         1.51 (    0.00%)    1.77 (  -17.66%)    1.46 (    2.92%)    1.15 (   23.77%)    1.89 (  -25.63%)
-+/-                 0.27 (    0.00%)    0.67 ( -148.52%)    0.33 (  -22.76%)    0.30 (  -11.15%)    0.19 (   30.16%)
-User Time           0.03 (    0.00%)    0.04 (  -37.50%)    0.05 (  -62.50%)    0.07 ( -112.50%)    0.04 (  -18.75%)
-+/-                 0.01 (    0.00%)    0.02 ( -146.64%)    0.02 (  -97.91%)    0.02 (  -75.59%)    0.02 (  -63.30%)
-Elapsed Time      124.93 (    0.00%)  114.49 (    8.36%)   96.77 (   22.55%)   27.48 (   78.00%)  205.70 (  -64.65%)
-+/-                20.20 (    0.00%)   74.39 ( -268.34%)   59.88 ( -196.48%)    7.72 (   61.79%)   25.03 (  -23.95%)
-THP Active        161.80 (    0.00%)   83.60 (   51.67%)  141.20 (   87.27%)   84.60 (   52.29%)   82.60 (   51.05%)
-+/-                71.95 (    0.00%)   43.80 (   60.88%)   26.91 (   37.40%)   59.02 (   82.03%)   52.13 (   72.45%)
-Fault Alloc       471.40 (    0.00%)  228.60 (   48.49%)  282.20 (   59.86%)  225.20 (   47.77%)  388.40 (   82.39%)
-+/-                88.07 (    0.00%)   87.42 (   99.26%)   73.79 (   83.78%)  109.62 (  124.47%)   82.62 (   93.81%)
-Fault Fallback    531.60 (    0.00%)  774.60 (  -45.71%)  720.80 (  -35.59%)  777.80 (  -46.31%)  614.80 (  -15.65%)
-+/-                88.07 (    0.00%)   87.26 (    0.92%)   73.79 (   16.22%)  109.62 (  -24.47%)   82.29 (    6.56%)
-MMTests Statistics: duration
-User/Sys Time Running Test (seconds)         50.22     33.76     30.65     24.14    128.45
-Total Elapsed Time (seconds)               1113.73   1132.19   1029.45    759.49   1707.26
-
-Similar test but the USB stick is using ext4 instead of vfat. As
-ext4 does not use writepage for migration, the large stalls due to
-compaction when THP is enabled are not observed. Still, isolating
-PageReclaim pages on their own list helped completion time largely
-by reducing the number of pages scanned by direct reclaim although
-time spend in congestion_wait could also be a factor.
-
-Again, Andrea's series had far higher success rates for THP allocation
-at the cost of elapsed time. I didn't look too closely but a quick
-look at the vmstat figures tells me kswapd reclaimed 8 times more pages
-than the patch series and direct reclaim reclaimed roughly three times
-as many pages. It follows that if memory is aggressively reclaimed,
-there will be more available for THP.
-
-writebackCPFilevfat
-                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1
-System Time         1.76 (    0.00%)   29.10 (-1555.52%)   46.01 (-2517.18%)    4.79 ( -172.35%)   54.89 (-3022.53%)
-+/-                 0.14 (    0.00%)   25.61 (-18185.17%)    2.15 (-1434.83%)    6.60 (-4610.03%)    9.75
-(-6863.76%)
-User Time           0.05 (    0.00%)    0.07 (  -45.83%)    0.05 (   -4.17%)    0.06 (  -29.17%)    0.06 (  -16.67%)
-+/-                 0.02 (    0.00%)    0.02 (   20.11%)    0.02 (   -3.14%)    0.01 (   31.58%)    0.01 (   47.41%)
-Elapsed Time     22520.79 (    0.00%) 1082.85 (   95.19%)   73.30 (   99.67%)   32.43 (   99.86%)  291.84 (  98.70%)
-+/-              7277.23 (    0.00%)  706.29 (   90.29%)   19.05 (   99.74%)   17.05 (   99.77%)  125.55 (   98.27%)
-THP Active         83.80 (    0.00%)   12.80 (   15.27%)   15.60 (   18.62%)   13.00 (   15.51%)    0.80 (    0.95%)
-+/-                66.81 (    0.00%)   20.19 (   30.22%)    5.92 (    8.86%)   15.06 (   22.54%)    1.17 (    1.75%)
-Fault Alloc       171.00 (    0.00%)   67.80 (   39.65%)   97.40 (   56.96%)  125.60 (   73.45%)  133.00 (   77.78%)
-+/-                82.91 (    0.00%)   30.69 (   37.02%)   53.91 (   65.02%)   55.05 (   66.40%)   21.19 (   25.56%)
-Fault Fallback    832.00 (    0.00%)  935.20 (  -12.40%)  906.00 (   -8.89%)  877.40 (   -5.46%)  870.20 (   -4.59%)
-+/-                82.91 (    0.00%)   30.69 (   62.98%)   54.01 (   34.86%)   55.05 (   33.60%)   20.91 (   74.78%)
-MMTests Statistics: duration
-User/Sys Time Running Test (seconds)       7229.81    928.42    704.52     80.68   1330.76
-Total Elapsed Time (seconds)             112849.04   5618.69    571.11    360.54   1664.28
-
-In this case, the test is reading/writing only from filesystems but as
-it's vfat, it's slow due to calling writepage during compaction. Little
-to observe really - the time to complete the test goes way down
-with the series applied and THP allocation success rates go up in
-comparison to 3.2-rc5.  The success rates are lower than 3.1.0 but
-the elapsed time for that kernel is abysmal so it is not really a
-sensible comparison.
-
-As before, Andrea's series allocates more THPs at the cost of overall
-performance.
-
-writebackCPFileext4
-                   3.1.0-vanilla         rc5-vanilla       freemore-v6r1        isolate-v6r1         andrea-v2r1
-System Time         1.51 (    0.00%)    1.77 (  -17.66%)    1.46 (    2.92%)    1.15 (   23.77%)    1.89 (  -25.63%)
-+/-                 0.27 (    0.00%)    0.67 ( -148.52%)    0.33 (  -22.76%)    0.30 (  -11.15%)    0.19 (   30.16%)
-User Time           0.03 (    0.00%)    0.04 (  -37.50%)    0.05 (  -62.50%)    0.07 ( -112.50%)    0.04 (  -18.75%)
-+/-                 0.01 (    0.00%)    0.02 ( -146.64%)    0.02 (  -97.91%)    0.02 (  -75.59%)    0.02 (  -63.30%)
-Elapsed Time      124.93 (    0.00%)  114.49 (    8.36%)   96.77 (   22.55%)   27.48 (   78.00%)  205.70 (  -64.65%)
-+/-                20.20 (    0.00%)   74.39 ( -268.34%)   59.88 ( -196.48%)    7.72 (   61.79%)   25.03 (  -23.95%)
-THP Active        161.80 (    0.00%)   83.60 (   51.67%)  141.20 (   87.27%)   84.60 (   52.29%)   82.60 (   51.05%)
-+/-                71.95 (    0.00%)   43.80 (   60.88%)   26.91 (   37.40%)   59.02 (   82.03%)   52.13 (   72.45%)
-Fault Alloc       471.40 (    0.00%)  228.60 (   48.49%)  282.20 (   59.86%)  225.20 (   47.77%)  388.40 (   82.39%)
-+/-                88.07 (    0.00%)   87.42 (   99.26%)   73.79 (   83.78%)  109.62 (  124.47%)   82.62 (   93.81%)
-Fault Fallback    531.60 (    0.00%)  774.60 (  -45.71%)  720.80 (  -35.59%)  777.80 (  -46.31%)  614.80 (  -15.65%)
-+/-                88.07 (    0.00%)   87.26 (    0.92%)   73.79 (   16.22%)  109.62 (  -24.47%)   82.29 (    6.56%)
-MMTests Statistics: duration
-User/Sys Time Running Test (seconds)         50.22     33.76     30.65     24.14    128.45
-Total Elapsed Time (seconds)               1113.73   1132.19   1029.45    759.49   1707.26
-
-Same type of story - elapsed times go down. In this case, allocation
-success rates are roughtly the same. As before, Andrea's has higher
-success rates but takes a lot longer.
-
-Overall the series does reduce latencies and while the tests are
-inherency racy as alloc competes with the cp processes, the variability
-was included. The THP allocation rates are not as high as they could
-be but that is because we would have to be more aggressive about
-reclaim and compaction impacting overall performance.
-
-This patch:
-
-Commit 39deaf85 ("mm: compaction: make isolate_lru_page() filter-aware")
-noted that compaction does not migrate dirty or writeback pages and that
-is was meaningless to pick the page and re-add it to the LRU list.
-
-What was missed during review is that asynchronous migration moves dirty
-pages if their ->migratepage callback is migrate_page() because these can
-be moved without blocking.  This potentially impacted hugepage allocation
-success rates by a factor depending on how many dirty pages are in the
-system.
-
-This patch partially reverts 39deaf85 to allow migration to isolate dirty
-pages again.  This increases how much compaction disrupts the LRU but that
-is addressed later in the series.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Andrea Arcangeli <aarcange at redhat.com>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Reviewed-by: Minchan Kim <minchan.kim at gmail.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/compaction.c |    3 ---
- 1 files changed, 0 insertions(+), 3 deletions(-)
-
-diff --git a/mm/compaction.c b/mm/compaction.c
-index 50f1c60..b81625d 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -371,9 +371,6 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone,
- 			continue;
- 		}
- 
--		if (!cc->sync)
--			mode |= ISOLATE_CLEAN;
--
- 		/* Try isolate the page */
- 		if (__isolate_lru_page(page, mode, 0) != 0)
- 			continue;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0003-mm-compaction-determine-if-dirty-pages-can-be-migrat.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0003-mm-compaction-determine-if-dirty-pages-can-be-migrat.patch
deleted file mode 100644
index b6a461b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0003-mm-compaction-determine-if-dirty-pages-can-be-migrat.patch
+++ /dev/null
@@ -1,376 +0,0 @@
-From 45d9f4db29d9a2f44900c90ab81514c7e04cb1b9 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:34 -0800
-Subject: [PATCH 03/73] mm: compaction: determine if dirty pages can be
- migrated without blocking within ->migratepage
-
-commit b969c4ab9f182a6e1b2a0848be349f99714947b0 upstream.
-
-Stable note: Not tracked in Bugzilla. A fix aimed at preserving page
-	aging information by reducing LRU list churning had the side-effect
-	of reducing THP allocation success rates. This was part of a series
-	to restore the success rates while preserving the reclaim fix.
-
-Asynchronous compaction is used when allocating transparent hugepages to
-avoid blocking for long periods of time.  Due to reports of stalling,
-there was a debate on disabling synchronous compaction but this severely
-impacted allocation success rates.  Part of the reason was that many dirty
-pages are skipped in asynchronous compaction by the following check;
-
-	if (PageDirty(page) && !sync &&
-		mapping->a_ops->migratepage != migrate_page)
-			rc = -EBUSY;
-
-This skips over all mapping aops using buffer_migrate_page() even though
-it is possible to migrate some of these pages without blocking.  This
-patch updates the ->migratepage callback with a "sync" parameter.  It is
-the responsibility of the callback to fail gracefully if migration would
-block.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/btrfs/disk-io.c      |    4 +-
- fs/hugetlbfs/inode.c    |    3 +-
- fs/nfs/internal.h       |    2 +-
- fs/nfs/write.c          |    4 +-
- include/linux/fs.h      |    9 ++-
- include/linux/migrate.h |    2 +-
- mm/migrate.c            |  129 +++++++++++++++++++++++++++++++++-------------
- 7 files changed, 106 insertions(+), 47 deletions(-)
-
-diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
-index f44b392..fa7cddf 100644
---- a/fs/btrfs/disk-io.c
-+++ b/fs/btrfs/disk-io.c
-@@ -872,7 +872,7 @@ static int btree_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
- 
- #ifdef CONFIG_MIGRATION
- static int btree_migratepage(struct address_space *mapping,
--			struct page *newpage, struct page *page)
-+			struct page *newpage, struct page *page, bool sync)
- {
- 	/*
- 	 * we can't safely write a btree page from here,
-@@ -887,7 +887,7 @@ static int btree_migratepage(struct address_space *mapping,
- 	if (page_has_private(page) &&
- 	    !try_to_release_page(page, GFP_KERNEL))
- 		return -EAGAIN;
--	return migrate_page(mapping, newpage, page);
-+	return migrate_page(mapping, newpage, page, sync);
- }
- #endif
- 
-diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index ebc2f4d..217b771 100644
---- a/fs/hugetlbfs/inode.c
-+++ b/fs/hugetlbfs/inode.c
-@@ -569,7 +569,8 @@ static int hugetlbfs_set_page_dirty(struct page *page)
- }
- 
- static int hugetlbfs_migrate_page(struct address_space *mapping,
--				struct page *newpage, struct page *page)
-+				struct page *newpage, struct page *page,
-+				bool sync)
- {
- 	int rc;
- 
-diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
-index 3f4d957..8d96ed6 100644
---- a/fs/nfs/internal.h
-+++ b/fs/nfs/internal.h
-@@ -330,7 +330,7 @@ void nfs_commit_release_pages(struct nfs_write_data *data);
- 
- #ifdef CONFIG_MIGRATION
- extern int nfs_migrate_page(struct address_space *,
--		struct page *, struct page *);
-+		struct page *, struct page *, bool);
- #else
- #define nfs_migrate_page NULL
- #endif
-diff --git a/fs/nfs/write.c b/fs/nfs/write.c
-index 4efd421..31b2461 100644
---- a/fs/nfs/write.c
-+++ b/fs/nfs/write.c
-@@ -1711,7 +1711,7 @@ out_error:
- 
- #ifdef CONFIG_MIGRATION
- int nfs_migrate_page(struct address_space *mapping, struct page *newpage,
--		struct page *page)
-+		struct page *page, bool sync)
- {
- 	/*
- 	 * If PagePrivate is set, then the page is currently associated with
-@@ -1726,7 +1726,7 @@ int nfs_migrate_page(struct address_space *mapping, struct page *newpage,
- 
- 	nfs_fscache_release_page(page, GFP_KERNEL);
- 
--	return migrate_page(mapping, newpage, page);
-+	return migrate_page(mapping, newpage, page, sync);
- }
- #endif
- 
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 43d36b7..2ae90d3 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -609,9 +609,12 @@ struct address_space_operations {
- 			loff_t offset, unsigned long nr_segs);
- 	int (*get_xip_mem)(struct address_space *, pgoff_t, int,
- 						void **, unsigned long *);
--	/* migrate the contents of a page to the specified target */
-+	/*
-+	 * migrate the contents of a page to the specified target. If sync
-+	 * is false, it must not block.
-+	 */
- 	int (*migratepage) (struct address_space *,
--			struct page *, struct page *);
-+			struct page *, struct page *, bool);
- 	int (*launder_page) (struct page *);
- 	int (*is_partially_uptodate) (struct page *, read_descriptor_t *,
- 					unsigned long);
-@@ -2586,7 +2589,7 @@ extern int generic_check_addressable(unsigned, u64);
- 
- #ifdef CONFIG_MIGRATION
- extern int buffer_migrate_page(struct address_space *,
--				struct page *, struct page *);
-+				struct page *, struct page *, bool);
- #else
- #define buffer_migrate_page NULL
- #endif
-diff --git a/include/linux/migrate.h b/include/linux/migrate.h
-index e39aeec..14e6d2a 100644
---- a/include/linux/migrate.h
-+++ b/include/linux/migrate.h
-@@ -11,7 +11,7 @@ typedef struct page *new_page_t(struct page *, unsigned long private, int **);
- 
- extern void putback_lru_pages(struct list_head *l);
- extern int migrate_page(struct address_space *,
--			struct page *, struct page *);
-+			struct page *, struct page *, bool);
- extern int migrate_pages(struct list_head *l, new_page_t x,
- 			unsigned long private, bool offlining,
- 			bool sync);
-diff --git a/mm/migrate.c b/mm/migrate.c
-index 177aca4..65c12d2 100644
---- a/mm/migrate.c
-+++ b/mm/migrate.c
-@@ -220,6 +220,55 @@ out:
- 	pte_unmap_unlock(ptep, ptl);
- }
- 
-+#ifdef CONFIG_BLOCK
-+/* Returns true if all buffers are successfully locked */
-+static bool buffer_migrate_lock_buffers(struct buffer_head *head, bool sync)
-+{
-+	struct buffer_head *bh = head;
-+
-+	/* Simple case, sync compaction */
-+	if (sync) {
-+		do {
-+			get_bh(bh);
-+			lock_buffer(bh);
-+			bh = bh->b_this_page;
-+
-+		} while (bh != head);
-+
-+		return true;
-+	}
-+
-+	/* async case, we cannot block on lock_buffer so use trylock_buffer */
-+	do {
-+		get_bh(bh);
-+		if (!trylock_buffer(bh)) {
-+			/*
-+			 * We failed to lock the buffer and cannot stall in
-+			 * async migration. Release the taken locks
-+			 */
-+			struct buffer_head *failed_bh = bh;
-+			put_bh(failed_bh);
-+			bh = head;
-+			while (bh != failed_bh) {
-+				unlock_buffer(bh);
-+				put_bh(bh);
-+				bh = bh->b_this_page;
-+			}
-+			return false;
-+		}
-+
-+		bh = bh->b_this_page;
-+	} while (bh != head);
-+	return true;
-+}
-+#else
-+static inline bool buffer_migrate_lock_buffers(struct buffer_head *head,
-+								bool sync)
-+{
-+	return true;
-+}
-+#endif /* CONFIG_BLOCK */
-+
- /*
-  * Replace the page in the mapping.
-  *
-@@ -229,7 +278,8 @@ out:
-  * 3 for pages with a mapping and PagePrivate/PagePrivate2 set.
-  */
- static int migrate_page_move_mapping(struct address_space *mapping,
--		struct page *newpage, struct page *page)
-+		struct page *newpage, struct page *page,
-+		struct buffer_head *head, bool sync)
- {
- 	int expected_count;
- 	void **pslot;
-@@ -259,6 +309,19 @@ static int migrate_page_move_mapping(struct address_space *mapping,
- 	}
- 
- 	/*
-+	 * In the async migration case of moving a page with buffers, lock the
-+	 * buffers using trylock before the mapping is moved. If the mapping
-+	 * was moved, we later failed to lock the buffers and could not move
-+	 * the mapping back due to an elevated page count, we would have to
-+	 * block waiting on other references to be dropped.
-+	 */
-+	if (!sync && head && !buffer_migrate_lock_buffers(head, sync)) {
-+		page_unfreeze_refs(page, expected_count);
-+		spin_unlock_irq(&mapping->tree_lock);
-+		return -EAGAIN;
-+	}
-+
-+	/*
- 	 * Now we know that no one else is looking at the page.
- 	 */
- 	get_page(newpage);	/* add cache reference */
-@@ -415,13 +478,13 @@ EXPORT_SYMBOL(fail_migrate_page);
-  * Pages are locked upon entry and exit.
-  */
- int migrate_page(struct address_space *mapping,
--		struct page *newpage, struct page *page)
-+		struct page *newpage, struct page *page, bool sync)
- {
- 	int rc;
- 
- 	BUG_ON(PageWriteback(page));	/* Writeback must be complete */
- 
--	rc = migrate_page_move_mapping(mapping, newpage, page);
-+	rc = migrate_page_move_mapping(mapping, newpage, page, NULL, sync);
- 
- 	if (rc)
- 		return rc;
-@@ -438,28 +501,28 @@ EXPORT_SYMBOL(migrate_page);
-  * exist.
-  */
- int buffer_migrate_page(struct address_space *mapping,
--		struct page *newpage, struct page *page)
-+		struct page *newpage, struct page *page, bool sync)
- {
- 	struct buffer_head *bh, *head;
- 	int rc;
- 
- 	if (!page_has_buffers(page))
--		return migrate_page(mapping, newpage, page);
-+		return migrate_page(mapping, newpage, page, sync);
- 
- 	head = page_buffers(page);
- 
--	rc = migrate_page_move_mapping(mapping, newpage, page);
-+	rc = migrate_page_move_mapping(mapping, newpage, page, head, sync);
- 
- 	if (rc)
- 		return rc;
- 
--	bh = head;
--	do {
--		get_bh(bh);
--		lock_buffer(bh);
--		bh = bh->b_this_page;
--
--	} while (bh != head);
-+	/*
-+	 * In the async case, migrate_page_move_mapping locked the buffers
-+	 * with an IRQ-safe spinlock held. In the sync case, the buffers
-+	 * need to be locked now
-+	 */
-+	if (sync)
-+		BUG_ON(!buffer_migrate_lock_buffers(head, sync));
- 
- 	ClearPagePrivate(page);
- 	set_page_private(newpage, page_private(page));
-@@ -536,10 +599,13 @@ static int writeout(struct address_space *mapping, struct page *page)
-  * Default handling if a filesystem does not provide a migration function.
-  */
- static int fallback_migrate_page(struct address_space *mapping,
--	struct page *newpage, struct page *page)
-+	struct page *newpage, struct page *page, bool sync)
- {
--	if (PageDirty(page))
-+	if (PageDirty(page)) {
-+		if (!sync)
-+			return -EBUSY;
- 		return writeout(mapping, page);
-+	}
- 
- 	/*
- 	 * Buffers may be managed in a filesystem specific way.
-@@ -549,7 +615,7 @@ static int fallback_migrate_page(struct address_space *mapping,
- 	    !try_to_release_page(page, GFP_KERNEL))
- 		return -EAGAIN;
- 
--	return migrate_page(mapping, newpage, page);
-+	return migrate_page(mapping, newpage, page, sync);
- }
- 
- /*
-@@ -585,29 +651,18 @@ static int move_to_new_page(struct page *newpage, struct page *page,
- 
- 	mapping = page_mapping(page);
- 	if (!mapping)
--		rc = migrate_page(mapping, newpage, page);
--	else {
-+		rc = migrate_page(mapping, newpage, page, sync);
-+	else if (mapping->a_ops->migratepage)
- 		/*
--		 * Do not writeback pages if !sync and migratepage is
--		 * not pointing to migrate_page() which is nonblocking
--		 * (swapcache/tmpfs uses migratepage = migrate_page).
-+		 * Most pages have a mapping and most filesystems provide a
-+		 * migratepage callback. Anonymous pages are part of swap
-+		 * space which also has its own migratepage callback. This
-+		 * is the most common path for page migration.
- 		 */
--		if (PageDirty(page) && !sync &&
--		    mapping->a_ops->migratepage != migrate_page)
--			rc = -EBUSY;
--		else if (mapping->a_ops->migratepage)
--			/*
--			 * Most pages have a mapping and most filesystems
--			 * should provide a migration function. Anonymous
--			 * pages are part of swap space which also has its
--			 * own migration function. This is the most common
--			 * path for page migration.
--			 */
--			rc = mapping->a_ops->migratepage(mapping,
--							newpage, page);
--		else
--			rc = fallback_migrate_page(mapping, newpage, page);
--	}
-+		rc = mapping->a_ops->migratepage(mapping,
-+						newpage, page, sync);
-+	else
-+		rc = fallback_migrate_page(mapping, newpage, page, sync);
- 
- 	if (rc) {
- 		newpage->mapping = NULL;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0004-mm-page-allocator-do-not-call-direct-reclaim-for-THP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0004-mm-page-allocator-do-not-call-direct-reclaim-for-THP.patch
deleted file mode 100644
index 7d71a05..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0004-mm-page-allocator-do-not-call-direct-reclaim-for-THP.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 246126d86b5c74067beda5a972d4c0e1a03ec9ef Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:41 -0800
-Subject: [PATCH 04/73] mm: page allocator: do not call direct reclaim for THP
- allocations while compaction is deferred
-
-commit 66199712e9eef5aede09dbcd9dfff87798a66917 upstream.
-
-Stable note: Not tracked in Buzilla. This was part of a series that
-	reduced interactivity stalls experienced when THP was enabled.
-
-If compaction is deferred, direct reclaim is used to try to free enough
-pages for the allocation to succeed.  For small high-orders, this has a
-reasonable chance of success.  However, if the caller has specified
-__GFP_NO_KSWAPD to limit the disruption to the system, it makes more sense
-to fail the allocation rather than stall the caller in direct reclaim.
-This patch skips direct reclaim if compaction is deferred and the caller
-specifies __GFP_NO_KSWAPD.
-
-Async compaction only considers a subset of pages so it is possible for
-compaction to be deferred prematurely and not enter direct reclaim even in
-cases where it should.  To compensate for this, this patch also defers
-compaction only if sync compaction failed.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Acked-by: Minchan Kim <minchan.kim at gmail.com>
-Reviewed-by: Rik van Riel<riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/page_alloc.c |   45 +++++++++++++++++++++++++++++++++++----------
- 1 files changed, 35 insertions(+), 10 deletions(-)
-
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index cb3460e..ef6e1a1 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -1886,14 +1886,20 @@ static struct page *
- __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
- 	struct zonelist *zonelist, enum zone_type high_zoneidx,
- 	nodemask_t *nodemask, int alloc_flags, struct zone *preferred_zone,
--	int migratetype, unsigned long *did_some_progress,
--	bool sync_migration)
-+	int migratetype, bool sync_migration,
-+	bool *deferred_compaction,
-+	unsigned long *did_some_progress)
- {
- 	struct page *page;
- 
--	if (!order || compaction_deferred(preferred_zone))
-+	if (!order)
- 		return NULL;
- 
-+	if (compaction_deferred(preferred_zone)) {
-+		*deferred_compaction = true;
-+		return NULL;
-+	}
-+
- 	current->flags |= PF_MEMALLOC;
- 	*did_some_progress = try_to_compact_pages(zonelist, order, gfp_mask,
- 						nodemask, sync_migration);
-@@ -1921,7 +1927,13 @@ __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
- 		 * but not enough to satisfy watermarks.
- 		 */
- 		count_vm_event(COMPACTFAIL);
--		defer_compaction(preferred_zone);
-+
-+		/*
-+		 * As async compaction considers a subset of pageblocks, only
-+		 * defer if the failure was a sync compaction failure.
-+		 */
-+		if (sync_migration)
-+			defer_compaction(preferred_zone);
- 
- 		cond_resched();
- 	}
-@@ -1933,8 +1945,9 @@ static inline struct page *
- __alloc_pages_direct_compact(gfp_t gfp_mask, unsigned int order,
- 	struct zonelist *zonelist, enum zone_type high_zoneidx,
- 	nodemask_t *nodemask, int alloc_flags, struct zone *preferred_zone,
--	int migratetype, unsigned long *did_some_progress,
--	bool sync_migration)
-+	int migratetype, bool sync_migration,
-+	bool *deferred_compaction,
-+	unsigned long *did_some_progress)
- {
- 	return NULL;
- }
-@@ -2084,6 +2097,7 @@ __alloc_pages_slowpath(gfp_t gfp_mask, unsigned int order,
- 	unsigned long pages_reclaimed = 0;
- 	unsigned long did_some_progress;
- 	bool sync_migration = false;
-+	bool deferred_compaction = false;
- 
- 	/*
- 	 * In the slowpath, we sanity check order to avoid ever trying to
-@@ -2164,12 +2178,22 @@ rebalance:
- 					zonelist, high_zoneidx,
- 					nodemask,
- 					alloc_flags, preferred_zone,
--					migratetype, &did_some_progress,
--					sync_migration);
-+					migratetype, sync_migration,
-+					&deferred_compaction,
-+					&did_some_progress);
- 	if (page)
- 		goto got_pg;
- 	sync_migration = true;
- 
-+	/*
-+	 * If compaction is deferred for high-order allocations, it is because
-+	 * sync compaction recently failed. In this is the case and the caller
-+	 * has requested the system not be heavily disrupted, fail the
-+	 * allocation now instead of entering direct reclaim
-+	 */
-+	if (deferred_compaction && (gfp_mask & __GFP_NO_KSWAPD))
-+		goto nopage;
-+
- 	/* Try direct reclaim and then allocating */
- 	page = __alloc_pages_direct_reclaim(gfp_mask, order,
- 					zonelist, high_zoneidx,
-@@ -2232,8 +2256,9 @@ rebalance:
- 					zonelist, high_zoneidx,
- 					nodemask,
- 					alloc_flags, preferred_zone,
--					migratetype, &did_some_progress,
--					sync_migration);
-+					migratetype, sync_migration,
-+					&deferred_compaction,
-+					&did_some_progress);
- 		if (page)
- 			goto got_pg;
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0005-mm-compaction-make-isolate_lru_page-filter-aware-aga.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0005-mm-compaction-make-isolate_lru_page-filter-aware-aga.patch
deleted file mode 100644
index 1cf5109..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0005-mm-compaction-make-isolate_lru_page-filter-aware-aga.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 67c64d699499fd5b83ca0be6f66eaca18cc29601 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:38 -0800
-Subject: [PATCH 05/73] mm: compaction: make isolate_lru_page() filter-aware
- again
-
-commit c82449352854ff09e43062246af86bdeb628f0c3 upstream.
-
-Stable note: Not tracked in Bugzilla. A fix aimed at preserving page aging
-	information by reducing LRU list churning had the side-effect of
-	reducing THP allocation success rates. This was part of a series
-	to restore the success rates while preserving the reclaim fix.
-
-Commit 39deaf85 ("mm: compaction: make isolate_lru_page() filter-aware")
-noted that compaction does not migrate dirty or writeback pages and that
-is was meaningless to pick the page and re-add it to the LRU list.  This
-had to be partially reverted because some dirty pages can be migrated by
-compaction without blocking.
-
-This patch updates "mm: compaction: make isolate_lru_page" by skipping
-over pages that migration has no possibility of migrating to minimise LRU
-disruption.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel<riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Reviewed-by: Minchan Kim <minchan at kernel.org>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/mmzone.h |    2 ++
- mm/compaction.c        |    3 +++
- mm/vmscan.c            |   35 +++++++++++++++++++++++++++++++++--
- 3 files changed, 38 insertions(+), 2 deletions(-)
-
-diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
-index 905b1e1..25842b6 100644
---- a/include/linux/mmzone.h
-+++ b/include/linux/mmzone.h
-@@ -173,6 +173,8 @@ static inline int is_unevictable_lru(enum lru_list l)
- #define ISOLATE_CLEAN		((__force isolate_mode_t)0x4)
- /* Isolate unmapped file */
- #define ISOLATE_UNMAPPED	((__force isolate_mode_t)0x8)
-+/* Isolate for asynchronous migration */
-+#define ISOLATE_ASYNC_MIGRATE	((__force isolate_mode_t)0x10)
- 
- /* LRU Isolation modes. */
- typedef unsigned __bitwise__ isolate_mode_t;
-diff --git a/mm/compaction.c b/mm/compaction.c
-index b81625d..979a919 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -371,6 +371,9 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone,
- 			continue;
- 		}
- 
-+		if (!cc->sync)
-+			mode |= ISOLATE_ASYNC_MIGRATE;
-+
- 		/* Try isolate the page */
- 		if (__isolate_lru_page(page, mode, 0) != 0)
- 			continue;
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 8342119..1b95e4c 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -1061,8 +1061,39 @@ int __isolate_lru_page(struct page *page, isolate_mode_t mode, int file)
- 
- 	ret = -EBUSY;
- 
--	if ((mode & ISOLATE_CLEAN) && (PageDirty(page) || PageWriteback(page)))
--		return ret;
-+	/*
-+	 * To minimise LRU disruption, the caller can indicate that it only
-+	 * wants to isolate pages it will be able to operate on without
-+	 * blocking - clean pages for the most part.
-+	 *
-+	 * ISOLATE_CLEAN means that only clean pages should be isolated. This
-+	 * is used by reclaim when it is cannot write to backing storage
-+	 *
-+	 * ISOLATE_ASYNC_MIGRATE is used to indicate that it only wants to pages
-+	 * that it is possible to migrate without blocking
-+	 */
-+	if (mode & (ISOLATE_CLEAN|ISOLATE_ASYNC_MIGRATE)) {
-+		/* All the caller can do on PageWriteback is block */
-+		if (PageWriteback(page))
-+			return ret;
-+
-+		if (PageDirty(page)) {
-+			struct address_space *mapping;
-+
-+			/* ISOLATE_CLEAN means only clean pages */
-+			if (mode & ISOLATE_CLEAN)
-+				return ret;
-+
-+			/*
-+			 * Only pages without mappings or that have a
-+			 * ->migratepage callback are possible to migrate
-+			 * without blocking
-+			 */
-+			mapping = page_mapping(page);
-+			if (mapping && !mapping->a_ops->migratepage)
-+				return ret;
-+		}
-+	}
- 
- 	if ((mode & ISOLATE_UNMAPPED) && page_mapped(page))
- 		return ret;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0006-mm-compaction-introduce-sync-light-migration-for-use.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0006-mm-compaction-introduce-sync-light-migration-for-use.patch
deleted file mode 100644
index 25e33ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0006-mm-compaction-introduce-sync-light-migration-for-use.patch
+++ /dev/null
@@ -1,547 +0,0 @@
-From 0fe5ee08804cfadf02801cf6d82f0e2594cd04bd Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:43 -0800
-Subject: [PATCH 06/73] mm: compaction: introduce sync-light migration for use
- by compaction
-
-commit a6bc32b899223a877f595ef9ddc1e89ead5072b8 upstream.
-
-Stable note: Not tracked in Buzilla. This was part of a series that
-	reduced interactivity stalls experienced when THP was enabled.
-	These stalls were particularly noticable when copying data
-	to a USB stick but the experiences for users varied a lot.
-
-This patch adds a lightweight sync migrate operation MIGRATE_SYNC_LIGHT
-mode that avoids writing back pages to backing storage.  Async compaction
-maps to MIGRATE_ASYNC while sync compaction maps to MIGRATE_SYNC_LIGHT.
-For other migrate_pages users such as memory hotplug, MIGRATE_SYNC is
-used.
-
-This avoids sync compaction stalling for an excessive length of time,
-particularly when copying files to a USB stick where there might be a
-large number of dirty pages backed by a filesystem that does not support
-->writepages.
-
-[aarcange at redhat.com: This patch is heavily based on Andrea's work]
-[akpm at linux-foundation.org: fix fs/nfs/write.c build]
-[akpm at linux-foundation.org: fix fs/btrfs/disk-io.c build]
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/btrfs/disk-io.c      |    5 ++-
- fs/hugetlbfs/inode.c    |    2 +-
- fs/nfs/internal.h       |    2 +-
- fs/nfs/write.c          |    4 +-
- include/linux/fs.h      |    6 ++-
- include/linux/migrate.h |   23 +++++++++++---
- mm/compaction.c         |    2 +-
- mm/memory-failure.c     |    2 +-
- mm/memory_hotplug.c     |    2 +-
- mm/mempolicy.c          |    2 +-
- mm/migrate.c            |   78 ++++++++++++++++++++++++++---------------------
- 11 files changed, 76 insertions(+), 52 deletions(-)
-
-diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
-index fa7cddf..6b2a724 100644
---- a/fs/btrfs/disk-io.c
-+++ b/fs/btrfs/disk-io.c
-@@ -872,7 +872,8 @@ static int btree_submit_bio_hook(struct inode *inode, int rw, struct bio *bio,
- 
- #ifdef CONFIG_MIGRATION
- static int btree_migratepage(struct address_space *mapping,
--			struct page *newpage, struct page *page, bool sync)
-+			struct page *newpage, struct page *page,
-+			enum migrate_mode mode)
- {
- 	/*
- 	 * we can't safely write a btree page from here,
-@@ -887,7 +888,7 @@ static int btree_migratepage(struct address_space *mapping,
- 	if (page_has_private(page) &&
- 	    !try_to_release_page(page, GFP_KERNEL))
- 		return -EAGAIN;
--	return migrate_page(mapping, newpage, page, sync);
-+	return migrate_page(mapping, newpage, page, mode);
- }
- #endif
- 
-diff --git a/fs/hugetlbfs/inode.c b/fs/hugetlbfs/inode.c
-index 217b771..0aa424a 100644
---- a/fs/hugetlbfs/inode.c
-+++ b/fs/hugetlbfs/inode.c
-@@ -570,7 +570,7 @@ static int hugetlbfs_set_page_dirty(struct page *page)
- 
- static int hugetlbfs_migrate_page(struct address_space *mapping,
- 				struct page *newpage, struct page *page,
--				bool sync)
-+				enum migrate_mode mode)
- {
- 	int rc;
- 
-diff --git a/fs/nfs/internal.h b/fs/nfs/internal.h
-index 8d96ed6..68b3f20 100644
---- a/fs/nfs/internal.h
-+++ b/fs/nfs/internal.h
-@@ -330,7 +330,7 @@ void nfs_commit_release_pages(struct nfs_write_data *data);
- 
- #ifdef CONFIG_MIGRATION
- extern int nfs_migrate_page(struct address_space *,
--		struct page *, struct page *, bool);
-+		struct page *, struct page *, enum migrate_mode);
- #else
- #define nfs_migrate_page NULL
- #endif
-diff --git a/fs/nfs/write.c b/fs/nfs/write.c
-index 31b2461..c6e523a 100644
---- a/fs/nfs/write.c
-+++ b/fs/nfs/write.c
-@@ -1711,7 +1711,7 @@ out_error:
- 
- #ifdef CONFIG_MIGRATION
- int nfs_migrate_page(struct address_space *mapping, struct page *newpage,
--		struct page *page, bool sync)
-+		struct page *page, enum migrate_mode mode)
- {
- 	/*
- 	 * If PagePrivate is set, then the page is currently associated with
-@@ -1726,7 +1726,7 @@ int nfs_migrate_page(struct address_space *mapping, struct page *newpage,
- 
- 	nfs_fscache_release_page(page, GFP_KERNEL);
- 
--	return migrate_page(mapping, newpage, page, sync);
-+	return migrate_page(mapping, newpage, page, mode);
- }
- #endif
- 
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 2ae90d3..29b6353 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -525,6 +525,7 @@ enum positive_aop_returns {
- struct page;
- struct address_space;
- struct writeback_control;
-+enum migrate_mode;
- 
- struct iov_iter {
- 	const struct iovec *iov;
-@@ -614,7 +615,7 @@ struct address_space_operations {
- 	 * is false, it must not block.
- 	 */
- 	int (*migratepage) (struct address_space *,
--			struct page *, struct page *, bool);
-+			struct page *, struct page *, enum migrate_mode);
- 	int (*launder_page) (struct page *);
- 	int (*is_partially_uptodate) (struct page *, read_descriptor_t *,
- 					unsigned long);
-@@ -2589,7 +2590,8 @@ extern int generic_check_addressable(unsigned, u64);
- 
- #ifdef CONFIG_MIGRATION
- extern int buffer_migrate_page(struct address_space *,
--				struct page *, struct page *, bool);
-+				struct page *, struct page *,
-+				enum migrate_mode);
- #else
- #define buffer_migrate_page NULL
- #endif
-diff --git a/include/linux/migrate.h b/include/linux/migrate.h
-index 14e6d2a..eaf8674 100644
---- a/include/linux/migrate.h
-+++ b/include/linux/migrate.h
-@@ -6,18 +6,31 @@
- 
- typedef struct page *new_page_t(struct page *, unsigned long private, int **);
- 
-+/*
-+ * MIGRATE_ASYNC means never block
-+ * MIGRATE_SYNC_LIGHT in the current implementation means to allow blocking
-+ *	on most operations but not ->writepage as the potential stall time
-+ *	is too significant
-+ * MIGRATE_SYNC will block when migrating pages
-+ */
-+enum migrate_mode {
-+	MIGRATE_ASYNC,
-+	MIGRATE_SYNC_LIGHT,
-+	MIGRATE_SYNC,
-+};
-+
- #ifdef CONFIG_MIGRATION
- #define PAGE_MIGRATION 1
- 
- extern void putback_lru_pages(struct list_head *l);
- extern int migrate_page(struct address_space *,
--			struct page *, struct page *, bool);
-+			struct page *, struct page *, enum migrate_mode);
- extern int migrate_pages(struct list_head *l, new_page_t x,
- 			unsigned long private, bool offlining,
--			bool sync);
-+			enum migrate_mode mode);
- extern int migrate_huge_pages(struct list_head *l, new_page_t x,
- 			unsigned long private, bool offlining,
--			bool sync);
-+			enum migrate_mode mode);
- 
- extern int fail_migrate_page(struct address_space *,
- 			struct page *, struct page *);
-@@ -36,10 +49,10 @@ extern int migrate_huge_page_move_mapping(struct address_space *mapping,
- static inline void putback_lru_pages(struct list_head *l) {}
- static inline int migrate_pages(struct list_head *l, new_page_t x,
- 		unsigned long private, bool offlining,
--		bool sync) { return -ENOSYS; }
-+		enum migrate_mode mode) { return -ENOSYS; }
- static inline int migrate_huge_pages(struct list_head *l, new_page_t x,
- 		unsigned long private, bool offlining,
--		bool sync) { return -ENOSYS; }
-+		enum migrate_mode mode) { return -ENOSYS; }
- 
- static inline int migrate_prep(void) { return -ENOSYS; }
- static inline int migrate_prep_local(void) { return -ENOSYS; }
-diff --git a/mm/compaction.c b/mm/compaction.c
-index 979a919..46973fb 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -577,7 +577,7 @@ static int compact_zone(struct zone *zone, struct compact_control *cc)
- 		nr_migrate = cc->nr_migratepages;
- 		err = migrate_pages(&cc->migratepages, compaction_alloc,
- 				(unsigned long)cc, false,
--				cc->sync);
-+				cc->sync ? MIGRATE_SYNC_LIGHT : MIGRATE_ASYNC);
- 		update_nr_listpages(cc);
- 		nr_remaining = cc->nr_migratepages;
- 
-diff --git a/mm/memory-failure.c b/mm/memory-failure.c
-index 06d3479..56080ea 100644
---- a/mm/memory-failure.c
-+++ b/mm/memory-failure.c
-@@ -1557,7 +1557,7 @@ int soft_offline_page(struct page *page, int flags)
- 					    page_is_file_cache(page));
- 		list_add(&page->lru, &pagelist);
- 		ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL,
--								0, true);
-+							0, MIGRATE_SYNC);
- 		if (ret) {
- 			putback_lru_pages(&pagelist);
- 			pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
-diff --git a/mm/memory_hotplug.c b/mm/memory_hotplug.c
-index 2168489..6629faf 100644
---- a/mm/memory_hotplug.c
-+++ b/mm/memory_hotplug.c
-@@ -809,7 +809,7 @@ do_migrate_range(unsigned long start_pfn, unsigned long end_pfn)
- 		}
- 		/* this function returns # of failed pages */
- 		ret = migrate_pages(&source, hotremove_migrate_alloc, 0,
--								true, true);
-+							true, MIGRATE_SYNC);
- 		if (ret)
- 			putback_lru_pages(&source);
- 	}
-diff --git a/mm/mempolicy.c b/mm/mempolicy.c
-index b26aae2..f2650bc 100644
---- a/mm/mempolicy.c
-+++ b/mm/mempolicy.c
-@@ -942,7 +942,7 @@ static int migrate_to_node(struct mm_struct *mm, int source, int dest,
- 
- 	if (!list_empty(&pagelist)) {
- 		err = migrate_pages(&pagelist, new_node_page, dest,
--								false, true);
-+							false, MIGRATE_SYNC);
- 		if (err)
- 			putback_lru_pages(&pagelist);
- 	}
-diff --git a/mm/migrate.c b/mm/migrate.c
-index 65c12d2..180d97f 100644
---- a/mm/migrate.c
-+++ b/mm/migrate.c
-@@ -222,12 +222,13 @@ out:
- 
- #ifdef CONFIG_BLOCK
- /* Returns true if all buffers are successfully locked */
--static bool buffer_migrate_lock_buffers(struct buffer_head *head, bool sync)
-+static bool buffer_migrate_lock_buffers(struct buffer_head *head,
-+							enum migrate_mode mode)
- {
- 	struct buffer_head *bh = head;
- 
- 	/* Simple case, sync compaction */
--	if (sync) {
-+	if (mode != MIGRATE_ASYNC) {
- 		do {
- 			get_bh(bh);
- 			lock_buffer(bh);
-@@ -263,7 +264,7 @@ static bool buffer_migrate_lock_buffers(struct buffer_head *head, bool sync)
- }
- #else
- static inline bool buffer_migrate_lock_buffers(struct buffer_head *head,
--								bool sync)
-+							enum migrate_mode mode)
- {
- 	return true;
- }
-@@ -279,7 +280,7 @@ static inline bool buffer_migrate_lock_buffers(struct buffer_head *head,
-  */
- static int migrate_page_move_mapping(struct address_space *mapping,
- 		struct page *newpage, struct page *page,
--		struct buffer_head *head, bool sync)
-+		struct buffer_head *head, enum migrate_mode mode)
- {
- 	int expected_count;
- 	void **pslot;
-@@ -315,7 +316,8 @@ static int migrate_page_move_mapping(struct address_space *mapping,
- 	 * the mapping back due to an elevated page count, we would have to
- 	 * block waiting on other references to be dropped.
- 	 */
--	if (!sync && head && !buffer_migrate_lock_buffers(head, sync)) {
-+	if (mode == MIGRATE_ASYNC && head &&
-+			!buffer_migrate_lock_buffers(head, mode)) {
- 		page_unfreeze_refs(page, expected_count);
- 		spin_unlock_irq(&mapping->tree_lock);
- 		return -EAGAIN;
-@@ -478,13 +480,14 @@ EXPORT_SYMBOL(fail_migrate_page);
-  * Pages are locked upon entry and exit.
-  */
- int migrate_page(struct address_space *mapping,
--		struct page *newpage, struct page *page, bool sync)
-+		struct page *newpage, struct page *page,
-+		enum migrate_mode mode)
- {
- 	int rc;
- 
- 	BUG_ON(PageWriteback(page));	/* Writeback must be complete */
- 
--	rc = migrate_page_move_mapping(mapping, newpage, page, NULL, sync);
-+	rc = migrate_page_move_mapping(mapping, newpage, page, NULL, mode);
- 
- 	if (rc)
- 		return rc;
-@@ -501,17 +504,17 @@ EXPORT_SYMBOL(migrate_page);
-  * exist.
-  */
- int buffer_migrate_page(struct address_space *mapping,
--		struct page *newpage, struct page *page, bool sync)
-+		struct page *newpage, struct page *page, enum migrate_mode mode)
- {
- 	struct buffer_head *bh, *head;
- 	int rc;
- 
- 	if (!page_has_buffers(page))
--		return migrate_page(mapping, newpage, page, sync);
-+		return migrate_page(mapping, newpage, page, mode);
- 
- 	head = page_buffers(page);
- 
--	rc = migrate_page_move_mapping(mapping, newpage, page, head, sync);
-+	rc = migrate_page_move_mapping(mapping, newpage, page, head, mode);
- 
- 	if (rc)
- 		return rc;
-@@ -521,8 +524,8 @@ int buffer_migrate_page(struct address_space *mapping,
- 	 * with an IRQ-safe spinlock held. In the sync case, the buffers
- 	 * need to be locked now
- 	 */
--	if (sync)
--		BUG_ON(!buffer_migrate_lock_buffers(head, sync));
-+	if (mode != MIGRATE_ASYNC)
-+		BUG_ON(!buffer_migrate_lock_buffers(head, mode));
- 
- 	ClearPagePrivate(page);
- 	set_page_private(newpage, page_private(page));
-@@ -599,10 +602,11 @@ static int writeout(struct address_space *mapping, struct page *page)
-  * Default handling if a filesystem does not provide a migration function.
-  */
- static int fallback_migrate_page(struct address_space *mapping,
--	struct page *newpage, struct page *page, bool sync)
-+	struct page *newpage, struct page *page, enum migrate_mode mode)
- {
- 	if (PageDirty(page)) {
--		if (!sync)
-+		/* Only writeback pages in full synchronous migration */
-+		if (mode != MIGRATE_SYNC)
- 			return -EBUSY;
- 		return writeout(mapping, page);
- 	}
-@@ -615,7 +619,7 @@ static int fallback_migrate_page(struct address_space *mapping,
- 	    !try_to_release_page(page, GFP_KERNEL))
- 		return -EAGAIN;
- 
--	return migrate_page(mapping, newpage, page, sync);
-+	return migrate_page(mapping, newpage, page, mode);
- }
- 
- /*
-@@ -630,7 +634,7 @@ static int fallback_migrate_page(struct address_space *mapping,
-  *  == 0 - success
-  */
- static int move_to_new_page(struct page *newpage, struct page *page,
--					int remap_swapcache, bool sync)
-+				int remap_swapcache, enum migrate_mode mode)
- {
- 	struct address_space *mapping;
- 	int rc;
-@@ -651,7 +655,7 @@ static int move_to_new_page(struct page *newpage, struct page *page,
- 
- 	mapping = page_mapping(page);
- 	if (!mapping)
--		rc = migrate_page(mapping, newpage, page, sync);
-+		rc = migrate_page(mapping, newpage, page, mode);
- 	else if (mapping->a_ops->migratepage)
- 		/*
- 		 * Most pages have a mapping and most filesystems provide a
-@@ -660,9 +664,9 @@ static int move_to_new_page(struct page *newpage, struct page *page,
- 		 * is the most common path for page migration.
- 		 */
- 		rc = mapping->a_ops->migratepage(mapping,
--						newpage, page, sync);
-+						newpage, page, mode);
- 	else
--		rc = fallback_migrate_page(mapping, newpage, page, sync);
-+		rc = fallback_migrate_page(mapping, newpage, page, mode);
- 
- 	if (rc) {
- 		newpage->mapping = NULL;
-@@ -677,7 +681,7 @@ static int move_to_new_page(struct page *newpage, struct page *page,
- }
- 
- static int __unmap_and_move(struct page *page, struct page *newpage,
--				int force, bool offlining, bool sync)
-+			int force, bool offlining, enum migrate_mode mode)
- {
- 	int rc = -EAGAIN;
- 	int remap_swapcache = 1;
-@@ -686,7 +690,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
- 	struct anon_vma *anon_vma = NULL;
- 
- 	if (!trylock_page(page)) {
--		if (!force || !sync)
-+		if (!force || mode == MIGRATE_ASYNC)
- 			goto out;
- 
- 		/*
-@@ -732,10 +736,12 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
- 
- 	if (PageWriteback(page)) {
- 		/*
--		 * For !sync, there is no point retrying as the retry loop
--		 * is expected to be too short for PageWriteback to be cleared
-+		 * Only in the case of a full syncronous migration is it
-+		 * necessary to wait for PageWriteback. In the async case,
-+		 * the retry loop is too short and in the sync-light case,
-+		 * the overhead of stalling is too much
- 		 */
--		if (!sync) {
-+		if (mode != MIGRATE_SYNC) {
- 			rc = -EBUSY;
- 			goto uncharge;
- 		}
-@@ -806,7 +812,7 @@ static int __unmap_and_move(struct page *page, struct page *newpage,
- 
- skip_unmap:
- 	if (!page_mapped(page))
--		rc = move_to_new_page(newpage, page, remap_swapcache, sync);
-+		rc = move_to_new_page(newpage, page, remap_swapcache, mode);
- 
- 	if (rc && remap_swapcache)
- 		remove_migration_ptes(page, page);
-@@ -829,7 +835,8 @@ out:
-  * to the newly allocated page in newpage.
-  */
- static int unmap_and_move(new_page_t get_new_page, unsigned long private,
--			struct page *page, int force, bool offlining, bool sync)
-+			struct page *page, int force, bool offlining,
-+			enum migrate_mode mode)
- {
- 	int rc = 0;
- 	int *result = NULL;
-@@ -847,7 +854,7 @@ static int unmap_and_move(new_page_t get_new_page, unsigned long private,
- 		if (unlikely(split_huge_page(page)))
- 			goto out;
- 
--	rc = __unmap_and_move(page, newpage, force, offlining, sync);
-+	rc = __unmap_and_move(page, newpage, force, offlining, mode);
- out:
- 	if (rc != -EAGAIN) {
- 		/*
-@@ -895,7 +902,8 @@ out:
-  */
- static int unmap_and_move_huge_page(new_page_t get_new_page,
- 				unsigned long private, struct page *hpage,
--				int force, bool offlining, bool sync)
-+				int force, bool offlining,
-+				enum migrate_mode mode)
- {
- 	int rc = 0;
- 	int *result = NULL;
-@@ -908,7 +916,7 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
- 	rc = -EAGAIN;
- 
- 	if (!trylock_page(hpage)) {
--		if (!force || !sync)
-+		if (!force || mode != MIGRATE_SYNC)
- 			goto out;
- 		lock_page(hpage);
- 	}
-@@ -919,7 +927,7 @@ static int unmap_and_move_huge_page(new_page_t get_new_page,
- 	try_to_unmap(hpage, TTU_MIGRATION|TTU_IGNORE_MLOCK|TTU_IGNORE_ACCESS);
- 
- 	if (!page_mapped(hpage))
--		rc = move_to_new_page(new_hpage, hpage, 1, sync);
-+		rc = move_to_new_page(new_hpage, hpage, 1, mode);
- 
- 	if (rc)
- 		remove_migration_ptes(hpage, hpage);
-@@ -962,7 +970,7 @@ out:
-  */
- int migrate_pages(struct list_head *from,
- 		new_page_t get_new_page, unsigned long private, bool offlining,
--		bool sync)
-+		enum migrate_mode mode)
- {
- 	int retry = 1;
- 	int nr_failed = 0;
-@@ -983,7 +991,7 @@ int migrate_pages(struct list_head *from,
- 
- 			rc = unmap_and_move(get_new_page, private,
- 						page, pass > 2, offlining,
--						sync);
-+						mode);
- 
- 			switch(rc) {
- 			case -ENOMEM:
-@@ -1013,7 +1021,7 @@ out:
- 
- int migrate_huge_pages(struct list_head *from,
- 		new_page_t get_new_page, unsigned long private, bool offlining,
--		bool sync)
-+		enum migrate_mode mode)
- {
- 	int retry = 1;
- 	int nr_failed = 0;
-@@ -1030,7 +1038,7 @@ int migrate_huge_pages(struct list_head *from,
- 
- 			rc = unmap_and_move_huge_page(get_new_page,
- 					private, page, pass > 2, offlining,
--					sync);
-+					mode);
- 
- 			switch(rc) {
- 			case -ENOMEM:
-@@ -1159,7 +1167,7 @@ set_status:
- 	err = 0;
- 	if (!list_empty(&pagelist)) {
- 		err = migrate_pages(&pagelist, new_page_node,
--				(unsigned long)pm, 0, true);
-+				(unsigned long)pm, 0, MIGRATE_SYNC);
- 		if (err)
- 			putback_lru_pages(&pagelist);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0007-mm-vmscan-when-reclaiming-for-compaction-ensure-ther.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0007-mm-vmscan-when-reclaiming-for-compaction-ensure-ther.patch
deleted file mode 100644
index a3746f1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0007-mm-vmscan-when-reclaiming-for-compaction-ensure-ther.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 70bd5ad826ce15eedd0434f9926730716a1d5c53 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:45 -0800
-Subject: [PATCH 07/73] mm: vmscan: when reclaiming for compaction, ensure
- there are sufficient free pages available
-
-commit fe4b1b244bdb96136855f2c694071cb09d140766 upstream.
-
-Stable note: Not tracked on Bugzilla. THP and compaction was found to
-	aggressively reclaim pages and stall systems under different
-	situations that was addressed piecemeal over time. This patch
-	addresses a problem where the fix regressed THP allocation
-	success rates.
-
-In commit e0887c19 ("vmscan: limit direct reclaim for higher order
-allocations"), Rik noted that reclaim was too aggressive when THP was
-enabled.  In his initial patch he used the number of free pages to decide
-if reclaim should abort for compaction.  My feedback was that reclaim and
-compaction should be using the same logic when deciding if reclaim should
-be aborted.
-
-Unfortunately, this had the effect of reducing THP success rates when the
-workload included something like streaming reads that continually
-allocated pages.  The window during which compaction could run and return
-a THP was too small.
-
-This patch combines Rik's two patches together.  compaction_suitable() is
-still used to decide if reclaim should be aborted to allow compaction is
-used.  However, it will also ensure that there is a reasonable buffer of
-free pages available.  This improves upon the THP allocation success rates
-but bounds the number of pages that are freed for compaction.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel<riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |   44 +++++++++++++++++++++++++++++++++++++++-----
- 1 files changed, 39 insertions(+), 5 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 1b95e4c..fd47744 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2119,6 +2119,42 @@ restart:
- 	throttle_vm_writeout(sc->gfp_mask);
- }
- 
-+/* Returns true if compaction should go ahead for a high-order request */
-+static inline bool compaction_ready(struct zone *zone, struct scan_control *sc)
-+{
-+	unsigned long balance_gap, watermark;
-+	bool watermark_ok;
-+
-+	/* Do not consider compaction for orders reclaim is meant to satisfy */
-+	if (sc->order <= PAGE_ALLOC_COSTLY_ORDER)
-+		return false;
-+
-+	/*
-+	 * Compaction takes time to run and there are potentially other
-+	 * callers using the pages just freed. Continue reclaiming until
-+	 * there is a buffer of free pages available to give compaction
-+	 * a reasonable chance of completing and allocating the page
-+	 */
-+	balance_gap = min(low_wmark_pages(zone),
-+		(zone->present_pages + KSWAPD_ZONE_BALANCE_GAP_RATIO-1) /
-+			KSWAPD_ZONE_BALANCE_GAP_RATIO);
-+	watermark = high_wmark_pages(zone) + balance_gap + (2UL << sc->order);
-+	watermark_ok = zone_watermark_ok_safe(zone, 0, watermark, 0, 0);
-+
-+	/*
-+	 * If compaction is deferred, reclaim up to a point where
-+	 * compaction will have a chance of success when re-enabled
-+	 */
-+	if (compaction_deferred(zone))
-+		return watermark_ok;
-+
-+	/* If compaction is not ready to start, keep reclaiming */
-+	if (!compaction_suitable(zone, sc->order))
-+		return false;
-+
-+	return watermark_ok;
-+}
-+
- /*
-  * This is the direct reclaim path, for page-allocating processes.  We only
-  * try to reclaim pages from zones which will satisfy the caller's allocation
-@@ -2136,8 +2172,8 @@ restart:
-  * scan then give up on it.
-  *
-  * This function returns true if a zone is being reclaimed for a costly
-- * high-order allocation and compaction is either ready to begin or deferred.
-- * This indicates to the caller that it should retry the allocation or fail.
-+ * high-order allocation and compaction is ready to begin. This indicates to
-+ * the caller that it should retry the allocation or fail.
-  */
- static bool shrink_zones(int priority, struct zonelist *zonelist,
- 					struct scan_control *sc)
-@@ -2171,9 +2207,7 @@ static bool shrink_zones(int priority, struct zonelist *zonelist,
- 				 * noticable problem, like transparent huge page
- 				 * allocations.
- 				 */
--				if (sc->order > PAGE_ALLOC_COSTLY_ORDER &&
--					(compaction_suitable(zone, sc->order) ||
--					 compaction_deferred(zone))) {
-+				if (compaction_ready(zone, sc)) {
- 					should_abort_reclaim = true;
- 					continue;
- 				}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0008-mm-vmscan-do-not-OOM-if-aborting-reclaim-to-start-co.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0008-mm-vmscan-do-not-OOM-if-aborting-reclaim-to-start-co.patch
deleted file mode 100644
index 3531d78..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0008-mm-vmscan-do-not-OOM-if-aborting-reclaim-to-start-co.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From c60330596c8497a94d53b80c5b96799b01846248 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:33 -0800
-Subject: [PATCH 08/73] mm: vmscan: do not OOM if aborting reclaim to start
- compaction
-
-commit 7335084d446b83cbcb15da80497d03f0c1dc9e21 upstream.
-
-Stable note: Not tracked in Bugzilla. This patch makes later patches
-	easier to apply but otherwise has little to justify it. The
-	problem it fixes was never observed but the source of the
-	theoretical problem did not exist for very long.
-
-During direct reclaim it is possible that reclaim will be aborted so that
-compaction can be attempted to satisfy a high-order allocation.  If this
-decision is made before any pages are reclaimed, it is possible that 0 is
-returned to the page allocator potentially triggering an OOM.  This has
-not been observed but it is a possibility so this patch addresses it.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    8 +++++++-
- 1 files changed, 7 insertions(+), 1 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index fd47744..662a5ea 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2284,6 +2284,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
- 	struct zoneref *z;
- 	struct zone *zone;
- 	unsigned long writeback_threshold;
-+	bool should_abort_reclaim;
- 
- 	get_mems_allowed();
- 	delayacct_freepages_start();
-@@ -2295,7 +2296,8 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
- 		sc->nr_scanned = 0;
- 		if (!priority)
- 			disable_swap_token(sc->mem_cgroup);
--		if (shrink_zones(priority, zonelist, sc))
-+		should_abort_reclaim = shrink_zones(priority, zonelist, sc);
-+		if (should_abort_reclaim)
- 			break;
- 
- 		/*
-@@ -2363,6 +2365,10 @@ out:
- 	if (oom_killer_disabled)
- 		return 0;
- 
-+	/* Aborting reclaim to try compaction? don't OOM, then */
-+	if (should_abort_reclaim)
-+		return 1;
-+
- 	/* top priority shrink_zones still had more to do? don't OOM, then */
- 	if (scanning_global_lru(sc) && !all_unreclaimable(zonelist, sc))
- 		return 1;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0009-mm-vmscan-check-if-reclaim-should-really-abort-even-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0009-mm-vmscan-check-if-reclaim-should-really-abort-even-.patch
deleted file mode 100644
index 76a434d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0009-mm-vmscan-check-if-reclaim-should-really-abort-even-.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 0f7e2171b241704ee17ab27e4b8a7ef8c7f1dc32 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Thu, 12 Jan 2012 17:19:49 -0800
-Subject: [PATCH 09/73] mm: vmscan: check if reclaim should really abort even
- if compaction_ready() is true for one zone
-
-commit 0cee34fd72c582b4f8ad8ce00645b75fb4168199 upstream.
-
-Stable note: Not tracked on Bugzilla. THP and compaction was found to
-	aggressively reclaim pages and stall systems under different
-	situations that was addressed piecemeal over time.
-
-If compaction can proceed for a given zone, shrink_zones() does not
-reclaim any more pages from it.  After commit [e0c2327: vmscan: abort
-reclaim/compaction if compaction can proceed], do_try_to_free_pages()
-tries to finish as soon as possible once one zone can compact.
-
-This was intended to prevent slabs being shrunk unnecessarily but there
-are side-effects.  One is that a small zone that is ready for compaction
-will abort reclaim even if the chances of successfully allocating a THP
-from that zone is small.  It also means that reclaim can return too early
-even though sc->nr_to_reclaim pages were not reclaimed.
-
-This partially reverts the commit until it is proven that slabs are really
-being shrunk unnecessarily but preserves the check to return 1 to avoid
-OOM if reclaim was aborted prematurely.
-
-[aarcange at redhat.com: This patch replaces a revert from Andrea]
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Jan Kara <jack at suse.cz>
-Cc: Andy Isaacson <adi at hexapodia.org>
-Cc: Nai Xia <nai.xia at gmail.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |   19 +++++++++----------
- 1 files changed, 9 insertions(+), 10 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 662a5ea..9e89de6 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2173,7 +2173,8 @@ static inline bool compaction_ready(struct zone *zone, struct scan_control *sc)
-  *
-  * This function returns true if a zone is being reclaimed for a costly
-  * high-order allocation and compaction is ready to begin. This indicates to
-- * the caller that it should retry the allocation or fail.
-+ * the caller that it should consider retrying the allocation instead of
-+ * further reclaim.
-  */
- static bool shrink_zones(int priority, struct zonelist *zonelist,
- 					struct scan_control *sc)
-@@ -2182,7 +2183,7 @@ static bool shrink_zones(int priority, struct zonelist *zonelist,
- 	struct zone *zone;
- 	unsigned long nr_soft_reclaimed;
- 	unsigned long nr_soft_scanned;
--	bool should_abort_reclaim = false;
-+	bool aborted_reclaim = false;
- 
- 	for_each_zone_zonelist_nodemask(zone, z, zonelist,
- 					gfp_zone(sc->gfp_mask), sc->nodemask) {
-@@ -2208,7 +2209,7 @@ static bool shrink_zones(int priority, struct zonelist *zonelist,
- 				 * allocations.
- 				 */
- 				if (compaction_ready(zone, sc)) {
--					should_abort_reclaim = true;
-+					aborted_reclaim = true;
- 					continue;
- 				}
- 			}
-@@ -2230,7 +2231,7 @@ static bool shrink_zones(int priority, struct zonelist *zonelist,
- 		shrink_zone(priority, zone, sc);
- 	}
- 
--	return should_abort_reclaim;
-+	return aborted_reclaim;
- }
- 
- static bool zone_reclaimable(struct zone *zone)
-@@ -2284,7 +2285,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
- 	struct zoneref *z;
- 	struct zone *zone;
- 	unsigned long writeback_threshold;
--	bool should_abort_reclaim;
-+	bool aborted_reclaim;
- 
- 	get_mems_allowed();
- 	delayacct_freepages_start();
-@@ -2296,9 +2297,7 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
- 		sc->nr_scanned = 0;
- 		if (!priority)
- 			disable_swap_token(sc->mem_cgroup);
--		should_abort_reclaim = shrink_zones(priority, zonelist, sc);
--		if (should_abort_reclaim)
--			break;
-+		aborted_reclaim = shrink_zones(priority, zonelist, sc);
- 
- 		/*
- 		 * Don't shrink slabs when reclaiming memory from
-@@ -2365,8 +2364,8 @@ out:
- 	if (oom_killer_disabled)
- 		return 0;
- 
--	/* Aborting reclaim to try compaction? don't OOM, then */
--	if (should_abort_reclaim)
-+	/* Aborted reclaim to try compaction? don't OOM, then */
-+	if (aborted_reclaim)
- 		return 1;
- 
- 	/* top priority shrink_zones still had more to do? don't OOM, then */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0010-vmscan-promote-shared-file-mapped-pages.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0010-vmscan-promote-shared-file-mapped-pages.patch
deleted file mode 100644
index e1037d4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0010-vmscan-promote-shared-file-mapped-pages.patch
+++ /dev/null
@@ -1,82 +0,0 @@
-From 2a487f6e48c8ee80432e512e3618a6837f6ff448 Mon Sep 17 00:00:00 2001
-From: Konstantin Khlebnikov <khlebnikov at openvz.org>
-Date: Tue, 10 Jan 2012 15:06:59 -0800
-Subject: [PATCH 10/73] vmscan: promote shared file mapped pages
-
-commit 34dbc67a644f11ab3475d822d72e25409911e760 upstream.
-
-Stable note: Not tracked in Bugzilla. There were reports of shared
-	mapped pages being unfairly reclaimed in comparison to older kernels.
-	This is being addressed over time. The specific workload being
-	addressed here in described in paragraph four and while paragraph
-	five says it did not help performance as such, it made a difference
-	to major page faults. I'm aware of at least one bug for a large
-	vendor that was due to increased major faults.
-
-Commit 645747462435 ("vmscan: detect mapped file pages used only once")
-greatly decreases lifetime of single-used mapped file pages.
-Unfortunately it also decreases life time of all shared mapped file
-pages.  Because after commit bf3f3bc5e7347 ("mm: don't mark_page_accessed
-in fault path") page-fault handler does not mark page active or even
-referenced.
-
-Thus page_check_references() activates file page only if it was used twice
-while it stays in inactive list, meanwhile it activates anon pages after
-first access.  Inactive list can be small enough, this way reclaimer can
-accidentally throw away any widely used page if it wasn't used twice in
-short period.
-
-After this patch page_check_references() also activate file mapped page at
-first inactive list scan if this page is already used multiple times via
-several ptes.
-
-I found this while trying to fix degragation in rhel6 (~2.6.32) from rhel5
-(~2.6.18).  There a complete mess with >100 web/mail/spam/ftp containers,
-they share all their files but there a lot of anonymous pages: ~500mb
-shared file mapped memory and 15-20Gb non-shared anonymous memory.  In
-this situation major-pagefaults are very costly, because all containers
-share the same page.  In my load kernel created a disproportionate
-pressure on the file memory, compared with the anonymous, they equaled
-only if I raise swappiness up to 150 =)
-
-These patches actually wasn't helped a lot in my problem, but I saw
-noticable (10-20 times) reduce in count and average time of
-major-pagefault in file-mapped areas.
-
-Actually both patches are fixes for commit v2.6.33-5448-g6457474, because
-it was aimed at one scenario (singly used pages), but it breaks the logic
-in other scenarios (shared and/or executable pages)
-
-Signed-off-by: Konstantin Khlebnikov <khlebnikov at openvz.org>
-Acked-by: Pekka Enberg <penberg at kernel.org>
-Acked-by: Minchan Kim <minchan.kim at gmail.com>
-Reviewed-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Wu Fengguang <fengguang.wu at intel.com>
-Cc: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Nick Piggin <npiggin at kernel.dk>
-Cc: Mel Gorman <mel at csn.ul.ie>
-Cc: Shaohua Li <shaohua.li at intel.com>
-Cc: Rik van Riel <riel at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 9e89de6..cd27455 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -715,7 +715,7 @@ static enum page_references page_check_references(struct page *page,
- 		 */
- 		SetPageReferenced(page);
- 
--		if (referenced_page)
-+		if (referenced_page || referenced_ptes > 1)
- 			return PAGEREF_ACTIVATE;
- 
- 		return PAGEREF_KEEP;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0011-vmscan-activate-executable-pages-after-first-usage.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0011-vmscan-activate-executable-pages-after-first-usage.patch
deleted file mode 100644
index 0f24208..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0011-vmscan-activate-executable-pages-after-first-usage.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 7560f662e5e895619c356365f675715d7f4ea577 Mon Sep 17 00:00:00 2001
-From: Konstantin Khlebnikov <khlebnikov at openvz.org>
-Date: Tue, 10 Jan 2012 15:07:03 -0800
-Subject: [PATCH 11/73] vmscan: activate executable pages after first usage
-
-commit c909e99364c8b6ca07864d752950b6b4ecf6bef4 upstream.
-
-Stable note: Not tracked in Bugzilla. There were reports of shared
-	mapped pages being unfairly reclaimed in comparison to older kernels.
-	This is being addressed over time.
-
-Logic added in commit 8cab4754d24a0 ("vmscan: make mapped executable pages
-the first class citizen") was noticeably weakened in commit
-645747462435d84 ("vmscan: detect mapped file pages used only once").
-
-Currently these pages can become "first class citizens" only after second
-usage.  After this patch page_check_references() will activate they after
-first usage, and executable code gets yet better chance to stay in memory.
-
-Signed-off-by: Konstantin Khlebnikov <khlebnikov at openvz.org>
-Cc: Pekka Enberg <penberg at kernel.org>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Wu Fengguang <fengguang.wu at intel.com>
-Cc: Johannes Weiner <hannes at cmpxchg.org>
-Cc: Nick Piggin <npiggin at kernel.dk>
-Cc: Mel Gorman <mel at csn.ul.ie>
-Cc: Shaohua Li <shaohua.li at intel.com>
-Cc: Rik van Riel <riel at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index cd27455..87de9c6 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -718,6 +718,12 @@ static enum page_references page_check_references(struct page *page,
- 		if (referenced_page || referenced_ptes > 1)
- 			return PAGEREF_ACTIVATE;
- 
-+		/*
-+		 * Activate file-backed executable pages after first usage.
-+		 */
-+		if (vm_flags & VM_EXEC)
-+			return PAGEREF_ACTIVATE;
-+
- 		return PAGEREF_KEEP;
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0012-mm-vmscan.c-consider-swap-space-when-deciding-whethe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0012-mm-vmscan.c-consider-swap-space-when-deciding-whethe.patch
deleted file mode 100644
index 63186e3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0012-mm-vmscan.c-consider-swap-space-when-deciding-whethe.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 2f1cec6b7649ab76eb3b0f736028388e4a7e9047 Mon Sep 17 00:00:00 2001
-From: Minchan Kim <minchan at kernel.org>
-Date: Tue, 10 Jan 2012 15:08:18 -0800
-Subject: [PATCH 12/73] mm/vmscan.c: consider swap space when deciding whether
- to continue reclaim
-
-commit 86cfd3a45042ab242d47f3935a02811a402beab6 upstream.
-
-Stable note: Not tracked in Bugzilla. This patch reduces kswapd CPU
-	usage on swapless systems with high anonymous memory usage.
-
-It's pointless to continue reclaiming when we have no swap space and lots
-of anon pages in the inactive list.
-
-Without this patch, it is possible when swap is disabled to continue
-trying to reclaim when there are only anonymous pages in the system even
-though that will not make any progress.
-
-Signed-off-by: Minchan Kim <minchan at kernel.org>
-Cc: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Reviewed-by: Rik van Riel <riel at redhat.com>
-Cc: Johannes Weiner <jweiner at redhat.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index 87de9c6..ba763be 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2049,8 +2049,9 @@ static inline bool should_continue_reclaim(struct zone *zone,
- 	 * inactive lists are large enough, continue reclaiming
- 	 */
- 	pages_for_compaction = (2UL << sc->order);
--	inactive_lru_pages = zone_nr_lru_pages(zone, sc, LRU_INACTIVE_ANON) +
--				zone_nr_lru_pages(zone, sc, LRU_INACTIVE_FILE);
-+	inactive_lru_pages = zone_nr_lru_pages(zone, sc, LRU_INACTIVE_FILE);
-+	if (nr_swap_pages > 0)
-+		inactive_lru_pages += zone_nr_lru_pages(zone, sc, LRU_INACTIVE_ANON);
- 	if (sc->nr_reclaimed < pages_for_compaction &&
- 			inactive_lru_pages > pages_for_compaction)
- 		return true;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0013-mm-test-PageSwapBacked-in-lumpy-reclaim.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0013-mm-test-PageSwapBacked-in-lumpy-reclaim.patch
deleted file mode 100644
index fe39de9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0013-mm-test-PageSwapBacked-in-lumpy-reclaim.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 0b642dde6e6cd5dc940498c7cdb676fc56e4cdf4 Mon Sep 17 00:00:00 2001
-From: Hugh Dickins <hughd at google.com>
-Date: Tue, 10 Jan 2012 15:08:33 -0800
-Subject: [PATCH 13/73] mm: test PageSwapBacked in lumpy reclaim
-
-commit 043bcbe5ec51e0478ef2b44acef17193e01d7f70 upstream.
-
-Stable note: Not tracked in Bugzilla. There were reports of shared
-	mapped pages being unfairly reclaimed in comparison to older kernels.
-	This is being addressed over time. Even though the subject
-	refers to lumpy reclaim, it impacts compaction as well.
-
-Lumpy reclaim does well to stop at a PageAnon when there's no swap, but
-better is to stop at any PageSwapBacked, which includes shmem/tmpfs too.
-
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Reviewed-by: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Reviewed-by: Minchan Kim <minchan at kernel.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index ba763be..b9eaa06 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -1215,7 +1215,7 @@ static unsigned long isolate_lru_pages(unsigned long nr_to_scan,
- 			 * anon page which don't already have a swap slot is
- 			 * pointless.
- 			 */
--			if (nr_swap_pages <= 0 && PageAnon(cursor_page) &&
-+			if (nr_swap_pages <= 0 && PageSwapBacked(cursor_page) &&
- 			    !PageSwapCache(cursor_page))
- 				break;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0014-mm-vmscan-convert-global-reclaim-to-per-memcg-LRU-li.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0014-mm-vmscan-convert-global-reclaim-to-per-memcg-LRU-li.patch
deleted file mode 100644
index 0be1dd4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0014-mm-vmscan-convert-global-reclaim-to-per-memcg-LRU-li.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 2c44243518b5d2a8bb5cd67691efe747e4424cc1 Mon Sep 17 00:00:00 2001
-From: Johannes Weiner <jweiner at redhat.com>
-Date: Thu, 12 Jan 2012 17:18:06 -0800
-Subject: [PATCH 14/73] mm: vmscan: convert global reclaim to per-memcg LRU
- lists
-
-commit b95a2f2d486d0d768a92879c023a03757b9c7e58 upstream - WARNING: this is a substitute patch.
-
-Stable note: Not tracked in Bugzilla. This is a partial backport of an
-	upstream commit addressing a completely different issue
-	that accidentally contained an important fix. The workload
-	this patch helps was memcached when IO is started in the
-	background. memcached should stay resident but without this patch
-	it gets swapped. Sometimes this manifests as a drop in throughput
-	but mostly it was observed through /proc/vmstat.
-
-Commit [246e87a9: memcg: fix get_scan_count() for small targets] was meant
-to fix a problem whereby small scan targets on memcg were ignored causing
-priority to raise too sharply. It forced scanning to take place if the
-target was small, memcg or kswapd.
-
-From the time it was introduced it caused excessive reclaim by kswapd
-with workloads being pushed to swap that previously would have stayed
-resident. This was accidentally fixed in commit [b95a2f2d: mm: vmscan:
-convert global reclaim to per-memcg LRU lists] by making it harder for
-kswapd to force scan small targets but that patchset is not suitable for
-backporting. This was later changed again by commit [90126375: mm/vmscan:
-push lruvec pointer into get_scan_count()] into a format that looks
-like it would be a straight-forward backport but there is a subtle
-difference due to the use of lruvecs.
-
-The impact of the accidental fix is to make it harder for kswapd to force
-scan small targets by taking zone->all_unreclaimable into account. This
-patch is the closest equivalent available based on what is backported.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/vmscan.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index b9eaa06..ded1857 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -1911,7 +1911,8 @@ static void get_scan_count(struct zone *zone, struct scan_control *sc,
- 	 * latencies, so it's better to scan a minimum amount there as
- 	 * well.
- 	 */
--	if (scanning_global_lru(sc) && current_is_kswapd())
-+	if (scanning_global_lru(sc) && current_is_kswapd() &&
-+	    zone->all_unreclaimable)
- 		force_scan = true;
- 	if (!scanning_global_lru(sc))
- 		force_scan = true;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0015-cpuset-mm-reduce-large-amounts-of-memory-barrier-rel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0015-cpuset-mm-reduce-large-amounts-of-memory-barrier-rel.patch
deleted file mode 100644
index d834bc2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0015-cpuset-mm-reduce-large-amounts-of-memory-barrier-rel.patch
+++ /dev/null
@@ -1,655 +0,0 @@
-From 8d847c6e95dab1977636cd9d3d5da5851f5c95aa Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Wed, 21 Mar 2012 16:34:11 -0700
-Subject: [PATCH 15/73] cpuset: mm: reduce large amounts of memory barrier
- related damage v3
-
-commit cc9a6c8776615f9c194ccf0b63a0aa5628235545 upstream.
-
-Stable note:  Not tracked in Bugzilla. [get|put]_mems_allowed() is extremely
-	expensive and severely impacted page allocator performance. This
-	is part of a series of patches that reduce page allocator overhead.
-
-Commit c0ff7453bb5c ("cpuset,mm: fix no node to alloc memory when
-changing cpuset's mems") wins a super prize for the largest number of
-memory barriers entered into fast paths for one commit.
-
-[get|put]_mems_allowed is incredibly heavy with pairs of full memory
-barriers inserted into a number of hot paths.  This was detected while
-investigating at large page allocator slowdown introduced some time
-after 2.6.32.  The largest portion of this overhead was shown by
-oprofile to be at an mfence introduced by this commit into the page
-allocator hot path.
-
-For extra style points, the commit introduced the use of yield() in an
-implementation of what looks like a spinning mutex.
-
-This patch replaces the full memory barriers on both read and write
-sides with a sequence counter with just read barriers on the fast path
-side.  This is much cheaper on some architectures, including x86.  The
-main bulk of the patch is the retry logic if the nodemask changes in a
-manner that can cause a false failure.
-
-While updating the nodemask, a check is made to see if a false failure
-is a risk.  If it is, the sequence number gets bumped and parallel
-allocators will briefly stall while the nodemask update takes place.
-
-In a page fault test microbenchmark, oprofile samples from
-__alloc_pages_nodemask went from 4.53% of all samples to 1.15%.  The
-actual results were
-
-                             3.3.0-rc3          3.3.0-rc3
-                             rc3-vanilla        nobarrier-v2r1
-    Clients   1 UserTime       0.07 (  0.00%)   0.08 (-14.19%)
-    Clients   2 UserTime       0.07 (  0.00%)   0.07 (  2.72%)
-    Clients   4 UserTime       0.08 (  0.00%)   0.07 (  3.29%)
-    Clients   1 SysTime        0.70 (  0.00%)   0.65 (  6.65%)
-    Clients   2 SysTime        0.85 (  0.00%)   0.82 (  3.65%)
-    Clients   4 SysTime        1.41 (  0.00%)   1.41 (  0.32%)
-    Clients   1 WallTime       0.77 (  0.00%)   0.74 (  4.19%)
-    Clients   2 WallTime       0.47 (  0.00%)   0.45 (  3.73%)
-    Clients   4 WallTime       0.38 (  0.00%)   0.37 (  1.58%)
-    Clients   1 Flt/sec/cpu  497620.28 (  0.00%) 520294.53 (  4.56%)
-    Clients   2 Flt/sec/cpu  414639.05 (  0.00%) 429882.01 (  3.68%)
-    Clients   4 Flt/sec/cpu  257959.16 (  0.00%) 258761.48 (  0.31%)
-    Clients   1 Flt/sec      495161.39 (  0.00%) 517292.87 (  4.47%)
-    Clients   2 Flt/sec      820325.95 (  0.00%) 850289.77 (  3.65%)
-    Clients   4 Flt/sec      1020068.93 (  0.00%) 1022674.06 (  0.26%)
-    MMTests Statistics: duration
-    Sys Time Running Test (seconds)             135.68    132.17
-    User+Sys Time Running Test (seconds)         164.2    160.13
-    Total Elapsed Time (seconds)                123.46    120.87
-
-The overall improvement is small but the System CPU time is much
-improved and roughly in correlation to what oprofile reported (these
-performance figures are without profiling so skew is expected).  The
-actual number of page faults is noticeably improved.
-
-For benchmarks like kernel builds, the overall benefit is marginal but
-the system CPU time is slightly reduced.
-
-To test the actual bug the commit fixed I opened two terminals.  The
-first ran within a cpuset and continually ran a small program that
-faulted 100M of anonymous data.  In a second window, the nodemask of the
-cpuset was continually randomised in a loop.
-
-Without the commit, the program would fail every so often (usually
-within 10 seconds) and obviously with the commit everything worked fine.
-With this patch applied, it also worked fine so the fix should be
-functionally equivalent.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Cc: Miao Xie <miaox at cn.fujitsu.com>
-Cc: David Rientjes <rientjes at google.com>
-Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: Christoph Lameter <cl at linux.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-[bwh: Forward-ported from 3.0 to 3.2: apply the upstream changes
- to get_any_partial()]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/cpuset.h    |   47 +++++++++++++++++++-------------------------
- include/linux/init_task.h |    8 +++++++
- include/linux/sched.h     |    2 +-
- kernel/cpuset.c           |   43 +++++++---------------------------------
- kernel/fork.c             |    3 ++
- mm/filemap.c              |   11 ++++++---
- mm/hugetlb.c              |   15 ++++++++++---
- mm/mempolicy.c            |   28 ++++++++++++++++++++------
- mm/page_alloc.c           |   33 ++++++++++++++++++++++---------
- mm/slab.c                 |   13 +++++++----
- mm/slub.c                 |   40 +++++++++++++++++++++++--------------
- mm/vmscan.c               |    2 -
- 12 files changed, 135 insertions(+), 110 deletions(-)
-
-diff --git a/include/linux/cpuset.h b/include/linux/cpuset.h
-index e9eaec5..7a7e5fd 100644
---- a/include/linux/cpuset.h
-+++ b/include/linux/cpuset.h
-@@ -89,42 +89,33 @@ extern void rebuild_sched_domains(void);
- extern void cpuset_print_task_mems_allowed(struct task_struct *p);
- 
- /*
-- * reading current mems_allowed and mempolicy in the fastpath must protected
-- * by get_mems_allowed()
-+ * get_mems_allowed is required when making decisions involving mems_allowed
-+ * such as during page allocation. mems_allowed can be updated in parallel
-+ * and depending on the new value an operation can fail potentially causing
-+ * process failure. A retry loop with get_mems_allowed and put_mems_allowed
-+ * prevents these artificial failures.
-  */
--static inline void get_mems_allowed(void)
-+static inline unsigned int get_mems_allowed(void)
- {
--	current->mems_allowed_change_disable++;
--
--	/*
--	 * ensure that reading mems_allowed and mempolicy happens after the
--	 * update of ->mems_allowed_change_disable.
--	 *
--	 * the write-side task finds ->mems_allowed_change_disable is not 0,
--	 * and knows the read-side task is reading mems_allowed or mempolicy,
--	 * so it will clear old bits lazily.
--	 */
--	smp_mb();
-+	return read_seqcount_begin(&current->mems_allowed_seq);
- }
- 
--static inline void put_mems_allowed(void)
-+/*
-+ * If this returns false, the operation that took place after get_mems_allowed
-+ * may have failed. It is up to the caller to retry the operation if
-+ * appropriate.
-+ */
-+static inline bool put_mems_allowed(unsigned int seq)
- {
--	/*
--	 * ensure that reading mems_allowed and mempolicy before reducing
--	 * mems_allowed_change_disable.
--	 *
--	 * the write-side task will know that the read-side task is still
--	 * reading mems_allowed or mempolicy, don't clears old bits in the
--	 * nodemask.
--	 */
--	smp_mb();
--	--ACCESS_ONCE(current->mems_allowed_change_disable);
-+	return !read_seqcount_retry(&current->mems_allowed_seq, seq);
- }
- 
- static inline void set_mems_allowed(nodemask_t nodemask)
- {
- 	task_lock(current);
-+	write_seqcount_begin(&current->mems_allowed_seq);
- 	current->mems_allowed = nodemask;
-+	write_seqcount_end(&current->mems_allowed_seq);
- 	task_unlock(current);
- }
- 
-@@ -234,12 +225,14 @@ static inline void set_mems_allowed(nodemask_t nodemask)
- {
- }
- 
--static inline void get_mems_allowed(void)
-+static inline unsigned int get_mems_allowed(void)
- {
-+	return 0;
- }
- 
--static inline void put_mems_allowed(void)
-+static inline bool put_mems_allowed(unsigned int seq)
- {
-+	return true;
- }
- 
- #endif /* !CONFIG_CPUSETS */
-diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index 32574ee..df53fdf 100644
---- a/include/linux/init_task.h
-+++ b/include/linux/init_task.h
-@@ -30,6 +30,13 @@ extern struct fs_struct init_fs;
- #define INIT_THREADGROUP_FORK_LOCK(sig)
- #endif
- 
-+#ifdef CONFIG_CPUSETS
-+#define INIT_CPUSET_SEQ							\
-+	.mems_allowed_seq = SEQCNT_ZERO,
-+#else
-+#define INIT_CPUSET_SEQ
-+#endif
-+
- #define INIT_SIGNALS(sig) {						\
- 	.nr_threads	= 1,						\
- 	.wait_chldexit	= __WAIT_QUEUE_HEAD_INITIALIZER(sig.wait_chldexit),\
-@@ -193,6 +200,7 @@ extern struct cred init_cred;
- 	INIT_FTRACE_GRAPH						\
- 	INIT_TRACE_RECURSION						\
- 	INIT_TASK_RCU_PREEMPT(tsk)					\
-+	INIT_CPUSET_SEQ							\
- }
- 
- 
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index 5afa2a3..a96cb8c 100644
---- a/include/linux/sched.h
-+++ b/include/linux/sched.h
-@@ -1481,7 +1481,7 @@ struct task_struct {
- #endif
- #ifdef CONFIG_CPUSETS
- 	nodemask_t mems_allowed;	/* Protected by alloc_lock */
--	int mems_allowed_change_disable;
-+	seqcount_t mems_allowed_seq;	/* Seqence no to catch updates */
- 	int cpuset_mem_spread_rotor;
- 	int cpuset_slab_spread_rotor;
- #endif
-diff --git a/kernel/cpuset.c b/kernel/cpuset.c
-index 0b1712d..46a1d3c 100644
---- a/kernel/cpuset.c
-+++ b/kernel/cpuset.c
-@@ -964,7 +964,6 @@ static void cpuset_change_task_nodemask(struct task_struct *tsk,
- {
- 	bool need_loop;
- 
--repeat:
- 	/*
- 	 * Allow tasks that have access to memory reserves because they have
- 	 * been OOM killed to get memory anywhere.
-@@ -983,45 +982,19 @@ repeat:
- 	 */
- 	need_loop = task_has_mempolicy(tsk) ||
- 			!nodes_intersects(*newmems, tsk->mems_allowed);
--	nodes_or(tsk->mems_allowed, tsk->mems_allowed, *newmems);
--	mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP1);
- 
--	/*
--	 * ensure checking ->mems_allowed_change_disable after setting all new
--	 * allowed nodes.
--	 *
--	 * the read-side task can see an nodemask with new allowed nodes and
--	 * old allowed nodes. and if it allocates page when cpuset clears newly
--	 * disallowed ones continuous, it can see the new allowed bits.
--	 *
--	 * And if setting all new allowed nodes is after the checking, setting
--	 * all new allowed nodes and clearing newly disallowed ones will be done
--	 * continuous, and the read-side task may find no node to alloc page.
--	 */
--	smp_mb();
-+	if (need_loop)
-+		write_seqcount_begin(&tsk->mems_allowed_seq);
- 
--	/*
--	 * Allocation of memory is very fast, we needn't sleep when waiting
--	 * for the read-side.
--	 */
--	while (need_loop && ACCESS_ONCE(tsk->mems_allowed_change_disable)) {
--		task_unlock(tsk);
--		if (!task_curr(tsk))
--			yield();
--		goto repeat;
--	}
--
--	/*
--	 * ensure checking ->mems_allowed_change_disable before clearing all new
--	 * disallowed nodes.
--	 *
--	 * if clearing newly disallowed bits before the checking, the read-side
--	 * task may find no node to alloc page.
--	 */
--	smp_mb();
-+	nodes_or(tsk->mems_allowed, tsk->mems_allowed, *newmems);
-+	mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP1);
- 
- 	mpol_rebind_task(tsk, newmems, MPOL_REBIND_STEP2);
- 	tsk->mems_allowed = *newmems;
-+
-+	if (need_loop)
-+		write_seqcount_end(&tsk->mems_allowed_seq);
-+
- 	task_unlock(tsk);
- }
- 
-diff --git a/kernel/fork.c b/kernel/fork.c
-index 79ee71f..222457a 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -979,6 +979,9 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
- #ifdef CONFIG_CGROUPS
- 	init_rwsem(&sig->threadgroup_fork_lock);
- #endif
-+#ifdef CONFIG_CPUSETS
-+	seqcount_init(&tsk->mems_allowed_seq);
-+#endif
- 
- 	sig->oom_adj = current->signal->oom_adj;
- 	sig->oom_score_adj = current->signal->oom_score_adj;
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 03c5b0e..556858c 100644
---- a/mm/filemap.c
-+++ b/mm/filemap.c
-@@ -500,10 +500,13 @@ struct page *__page_cache_alloc(gfp_t gfp)
- 	struct page *page;
- 
- 	if (cpuset_do_page_mem_spread()) {
--		get_mems_allowed();
--		n = cpuset_mem_spread_node();
--		page = alloc_pages_exact_node(n, gfp, 0);
--		put_mems_allowed();
-+		unsigned int cpuset_mems_cookie;
-+		do {
-+			cpuset_mems_cookie = get_mems_allowed();
-+			n = cpuset_mem_spread_node();
-+			page = alloc_pages_exact_node(n, gfp, 0);
-+		} while (!put_mems_allowed(cpuset_mems_cookie) && !page);
-+
- 		return page;
- 	}
- 	return alloc_pages(gfp, 0);
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index 7c535b0..1e747e4 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -532,14 +532,16 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
- 				struct vm_area_struct *vma,
- 				unsigned long address, int avoid_reserve)
- {
--	struct page *page = NULL;
-+	struct page *page;
- 	struct mempolicy *mpol;
- 	nodemask_t *nodemask;
- 	struct zonelist *zonelist;
- 	struct zone *zone;
- 	struct zoneref *z;
-+	unsigned int cpuset_mems_cookie;
- 
--	get_mems_allowed();
-+retry_cpuset:
-+	cpuset_mems_cookie = get_mems_allowed();
- 	zonelist = huge_zonelist(vma, address,
- 					htlb_alloc_mask, &mpol, &nodemask);
- 	/*
-@@ -566,10 +568,15 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
- 			}
- 		}
- 	}
--err:
-+
- 	mpol_cond_put(mpol);
--	put_mems_allowed();
-+	if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-+		goto retry_cpuset;
- 	return page;
-+
-+err:
-+	mpol_cond_put(mpol);
-+	return NULL;
- }
- 
- static void update_and_free_page(struct hstate *h, struct page *page)
-diff --git a/mm/mempolicy.c b/mm/mempolicy.c
-index f2650bc..c0007f9 100644
---- a/mm/mempolicy.c
-+++ b/mm/mempolicy.c
-@@ -1843,18 +1843,24 @@ struct page *
- alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
- 		unsigned long addr, int node)
- {
--	struct mempolicy *pol = get_vma_policy(current, vma, addr);
-+	struct mempolicy *pol;
- 	struct zonelist *zl;
- 	struct page *page;
-+	unsigned int cpuset_mems_cookie;
-+
-+retry_cpuset:
-+	pol = get_vma_policy(current, vma, addr);
-+	cpuset_mems_cookie = get_mems_allowed();
- 
--	get_mems_allowed();
- 	if (unlikely(pol->mode == MPOL_INTERLEAVE)) {
- 		unsigned nid;
- 
- 		nid = interleave_nid(pol, vma, addr, PAGE_SHIFT + order);
- 		mpol_cond_put(pol);
- 		page = alloc_page_interleave(gfp, order, nid);
--		put_mems_allowed();
-+		if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-+			goto retry_cpuset;
-+
- 		return page;
- 	}
- 	zl = policy_zonelist(gfp, pol, node);
-@@ -1865,7 +1871,8 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
- 		struct page *page =  __alloc_pages_nodemask(gfp, order,
- 						zl, policy_nodemask(gfp, pol));
- 		__mpol_put(pol);
--		put_mems_allowed();
-+		if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-+			goto retry_cpuset;
- 		return page;
- 	}
- 	/*
-@@ -1873,7 +1880,8 @@ alloc_pages_vma(gfp_t gfp, int order, struct vm_area_struct *vma,
- 	 */
- 	page = __alloc_pages_nodemask(gfp, order, zl,
- 				      policy_nodemask(gfp, pol));
--	put_mems_allowed();
-+	if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-+		goto retry_cpuset;
- 	return page;
- }
- 
-@@ -1900,11 +1908,14 @@ struct page *alloc_pages_current(gfp_t gfp, unsigned order)
- {
- 	struct mempolicy *pol = current->mempolicy;
- 	struct page *page;
-+	unsigned int cpuset_mems_cookie;
- 
- 	if (!pol || in_interrupt() || (gfp & __GFP_THISNODE))
- 		pol = &default_policy;
- 
--	get_mems_allowed();
-+retry_cpuset:
-+	cpuset_mems_cookie = get_mems_allowed();
-+
- 	/*
- 	 * No reference counting needed for current->mempolicy
- 	 * nor system default_policy
-@@ -1915,7 +1926,10 @@ struct page *alloc_pages_current(gfp_t gfp, unsigned order)
- 		page = __alloc_pages_nodemask(gfp, order,
- 				policy_zonelist(gfp, pol, numa_node_id()),
- 				policy_nodemask(gfp, pol));
--	put_mems_allowed();
-+
-+	if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-+		goto retry_cpuset;
-+
- 	return page;
- }
- EXPORT_SYMBOL(alloc_pages_current);
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index ef6e1a1..065dbe8 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -2282,8 +2282,9 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
- {
- 	enum zone_type high_zoneidx = gfp_zone(gfp_mask);
- 	struct zone *preferred_zone;
--	struct page *page;
-+	struct page *page = NULL;
- 	int migratetype = allocflags_to_migratetype(gfp_mask);
-+	unsigned int cpuset_mems_cookie;
- 
- 	gfp_mask &= gfp_allowed_mask;
- 
-@@ -2302,15 +2303,15 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
- 	if (unlikely(!zonelist->_zonerefs->zone))
- 		return NULL;
- 
--	get_mems_allowed();
-+retry_cpuset:
-+	cpuset_mems_cookie = get_mems_allowed();
-+
- 	/* The preferred zone is used for statistics later */
- 	first_zones_zonelist(zonelist, high_zoneidx,
- 				nodemask ? : &cpuset_current_mems_allowed,
- 				&preferred_zone);
--	if (!preferred_zone) {
--		put_mems_allowed();
--		return NULL;
--	}
-+	if (!preferred_zone)
-+		goto out;
- 
- 	/* First allocation attempt */
- 	page = get_page_from_freelist(gfp_mask|__GFP_HARDWALL, nodemask, order,
-@@ -2320,9 +2321,19 @@ __alloc_pages_nodemask(gfp_t gfp_mask, unsigned int order,
- 		page = __alloc_pages_slowpath(gfp_mask, order,
- 				zonelist, high_zoneidx, nodemask,
- 				preferred_zone, migratetype);
--	put_mems_allowed();
- 
- 	trace_mm_page_alloc(page, order, gfp_mask, migratetype);
-+
-+out:
-+	/*
-+	 * When updating a task's mems_allowed, it is possible to race with
-+	 * parallel threads in such a way that an allocation can fail while
-+	 * the mask is being updated. If a page allocation is about to fail,
-+	 * check if the cpuset changed during allocation and if so, retry.
-+	 */
-+	if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !page))
-+		goto retry_cpuset;
-+
- 	return page;
- }
- EXPORT_SYMBOL(__alloc_pages_nodemask);
-@@ -2546,13 +2557,15 @@ void si_meminfo_node(struct sysinfo *val, int nid)
- bool skip_free_areas_node(unsigned int flags, int nid)
- {
- 	bool ret = false;
-+	unsigned int cpuset_mems_cookie;
- 
- 	if (!(flags & SHOW_MEM_FILTER_NODES))
- 		goto out;
- 
--	get_mems_allowed();
--	ret = !node_isset(nid, cpuset_current_mems_allowed);
--	put_mems_allowed();
-+	do {
-+		cpuset_mems_cookie = get_mems_allowed();
-+		ret = !node_isset(nid, cpuset_current_mems_allowed);
-+	} while (!put_mems_allowed(cpuset_mems_cookie));
- out:
- 	return ret;
- }
-diff --git a/mm/slab.c b/mm/slab.c
-index 83311c9a..cd3ab93 100644
---- a/mm/slab.c
-+++ b/mm/slab.c
-@@ -3267,12 +3267,10 @@ static void *alternate_node_alloc(struct kmem_cache *cachep, gfp_t flags)
- 	if (in_interrupt() || (flags & __GFP_THISNODE))
- 		return NULL;
- 	nid_alloc = nid_here = numa_mem_id();
--	get_mems_allowed();
- 	if (cpuset_do_slab_mem_spread() && (cachep->flags & SLAB_MEM_SPREAD))
- 		nid_alloc = cpuset_slab_spread_node();
- 	else if (current->mempolicy)
- 		nid_alloc = slab_node(current->mempolicy);
--	put_mems_allowed();
- 	if (nid_alloc != nid_here)
- 		return ____cache_alloc_node(cachep, flags, nid_alloc);
- 	return NULL;
-@@ -3295,14 +3293,17 @@ static void *fallback_alloc(struct kmem_cache *cache, gfp_t flags)
- 	enum zone_type high_zoneidx = gfp_zone(flags);
- 	void *obj = NULL;
- 	int nid;
-+	unsigned int cpuset_mems_cookie;
- 
- 	if (flags & __GFP_THISNODE)
- 		return NULL;
- 
--	get_mems_allowed();
--	zonelist = node_zonelist(slab_node(current->mempolicy), flags);
- 	local_flags = flags & (GFP_CONSTRAINT_MASK|GFP_RECLAIM_MASK);
- 
-+retry_cpuset:
-+	cpuset_mems_cookie = get_mems_allowed();
-+	zonelist = node_zonelist(slab_node(current->mempolicy), flags);
-+
- retry:
- 	/*
- 	 * Look through allowed nodes for objects available
-@@ -3355,7 +3356,9 @@ retry:
- 			}
- 		}
- 	}
--	put_mems_allowed();
-+
-+	if (unlikely(!put_mems_allowed(cpuset_mems_cookie) && !obj))
-+		goto retry_cpuset;
- 	return obj;
- }
- 
-diff --git a/mm/slub.c b/mm/slub.c
-index af47188..5710788 100644
---- a/mm/slub.c
-+++ b/mm/slub.c
-@@ -1582,6 +1582,7 @@ static struct page *get_any_partial(struct kmem_cache *s, gfp_t flags,
- 	struct zone *zone;
- 	enum zone_type high_zoneidx = gfp_zone(flags);
- 	void *object;
-+	unsigned int cpuset_mems_cookie;
- 
- 	/*
- 	 * The defrag ratio allows a configuration of the tradeoffs between
-@@ -1605,23 +1606,32 @@ static struct page *get_any_partial(struct kmem_cache *s, gfp_t flags,
- 			get_cycles() % 1024 > s->remote_node_defrag_ratio)
- 		return NULL;
- 
--	get_mems_allowed();
--	zonelist = node_zonelist(slab_node(current->mempolicy), flags);
--	for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
--		struct kmem_cache_node *n;
--
--		n = get_node(s, zone_to_nid(zone));
--
--		if (n && cpuset_zone_allowed_hardwall(zone, flags) &&
--				n->nr_partial > s->min_partial) {
--			object = get_partial_node(s, n, c);
--			if (object) {
--				put_mems_allowed();
--				return object;
-+	do {
-+		cpuset_mems_cookie = get_mems_allowed();
-+		zonelist = node_zonelist(slab_node(current->mempolicy), flags);
-+		for_each_zone_zonelist(zone, z, zonelist, high_zoneidx) {
-+			struct kmem_cache_node *n;
-+
-+			n = get_node(s, zone_to_nid(zone));
-+
-+			if (n && cpuset_zone_allowed_hardwall(zone, flags) &&
-+					n->nr_partial > s->min_partial) {
-+				object = get_partial_node(s, n, c);
-+				if (object) {
-+					/*
-+					 * Return the object even if
-+					 * put_mems_allowed indicated that
-+					 * the cpuset mems_allowed was
-+					 * updated in parallel. It's a
-+					 * harmless race between the alloc
-+					 * and the cpuset update.
-+					 */
-+					put_mems_allowed(cpuset_mems_cookie);
-+					return object;
-+				}
- 			}
- 		}
--	}
--	put_mems_allowed();
-+	} while (!put_mems_allowed(cpuset_mems_cookie));
- #endif
- 	return NULL;
- }
-diff --git a/mm/vmscan.c b/mm/vmscan.c
-index ded1857..48febd7 100644
---- a/mm/vmscan.c
-+++ b/mm/vmscan.c
-@@ -2295,7 +2295,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
- 	unsigned long writeback_threshold;
- 	bool aborted_reclaim;
- 
--	get_mems_allowed();
- 	delayacct_freepages_start();
- 
- 	if (scanning_global_lru(sc))
-@@ -2359,7 +2358,6 @@ static unsigned long do_try_to_free_pages(struct zonelist *zonelist,
- 
- out:
- 	delayacct_freepages_end();
--	put_mems_allowed();
- 
- 	if (sc->nr_reclaimed)
- 		return sc->nr_reclaimed;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0016-mm-hugetlb-fix-warning-in-alloc_huge_page-dequeue_hu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0016-mm-hugetlb-fix-warning-in-alloc_huge_page-dequeue_hu.patch
deleted file mode 100644
index 9c4a09a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0016-mm-hugetlb-fix-warning-in-alloc_huge_page-dequeue_hu.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f9871f8705a930f3c3c4588a8c990cf76db2b95e Mon Sep 17 00:00:00 2001
-From: Konstantin Khlebnikov <khlebnikov at openvz.org>
-Date: Wed, 25 Apr 2012 16:01:46 -0700
-Subject: [PATCH 16/73] mm/hugetlb: fix warning in
- alloc_huge_page/dequeue_huge_page_vma
-
-commit b1c12cbcd0a02527c180a862e8971e249d3b347d upstream.
-
-Stable note: Not tracked in Bugzilla. [get|put]_mems_allowed() is extremely
-	expensive and severely impacted page allocator performance. This
-	is part of a series of patches that reduce page allocator overhead.
-
-Fix a gcc warning (and bug?) introduced in cc9a6c877 ("cpuset: mm: reduce
-large amounts of memory barrier related damage v3")
-
-Local variable "page" can be uninitialized if the nodemask from vma policy
-does not intersects with nodemask from cpuset.  Even if it doesn't happens
-it is better to initialize this variable explicitly than to introduce
-a kernel oops in a weird corner case.
-
-mm/hugetlb.c: In function `alloc_huge_page':
-mm/hugetlb.c:1135:5: warning: `page' may be used uninitialized in this function
-
-Signed-off-by: Konstantin Khlebnikov <khlebnikov at openvz.org>
-Acked-by: Mel Gorman <mgorman at suse.de>
-Acked-by: David Rientjes <rientjes at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/hugetlb.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index 1e747e4..b1e1bad 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -532,7 +532,7 @@ static struct page *dequeue_huge_page_vma(struct hstate *h,
- 				struct vm_area_struct *vma,
- 				unsigned long address, int avoid_reserve)
- {
--	struct page *page;
-+	struct page *page = NULL;
- 	struct mempolicy *mpol;
- 	nodemask_t *nodemask;
- 	struct zonelist *zonelist;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0017-Fix-NULL-dereferences-in-scsi_cmd_to_driver.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0017-Fix-NULL-dereferences-in-scsi_cmd_to_driver.patch
deleted file mode 100644
index b56b57e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0017-Fix-NULL-dereferences-in-scsi_cmd_to_driver.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From 67fed15f639763628507a2e704441acabcce4bdd Mon Sep 17 00:00:00 2001
-From: Mark Rustad <mark.d.rustad at intel.com>
-Date: Thu, 21 Jun 2012 12:23:42 -0700
-Subject: [PATCH 17/73] Fix NULL dereferences in scsi_cmd_to_driver
-
-commit 222a806af830fda34ad1f6bc991cd226916de060 upstream.
-
-Avoid crashing if the private_data pointer happens to be NULL. This has
-been seen sometimes when a host reset happens, notably when there are
-many LUNs:
-
-host3: Assigned Port ID 0c1601
-scsi host3: libfc: Host reset succeeded on port (0c1601)
-BUG: unable to handle kernel NULL pointer dereference at 0000000000000350
-IP: [<ffffffff81352bb8>] scsi_send_eh_cmnd+0x58/0x3a0
-<snip>
-Process scsi_eh_3 (pid: 4144, threadinfo ffff88030920c000, task ffff880326b160c0)
-Stack:
- 000000010372e6ba 0000000000000282 000027100920dca0 ffffffffa0038ee0
- 0000000000000000 0000000000030003 ffff88030920dc80 ffff88030920dc80
- 00000002000e0000 0000000a00004000 ffff8803242f7760 ffff88031326ed80
-Call Trace:
- [<ffffffff8105b590>] ? lock_timer_base+0x70/0x70
- [<ffffffff81352fbe>] scsi_eh_tur+0x3e/0xc0
- [<ffffffff81353a36>] scsi_eh_test_devices+0x76/0x170
- [<ffffffff81354125>] scsi_eh_host_reset+0x85/0x160
- [<ffffffff81354291>] scsi_eh_ready_devs+0x91/0x110
- [<ffffffff813543fd>] scsi_unjam_host+0xed/0x1f0
- [<ffffffff813546a8>] scsi_error_handler+0x1a8/0x200
- [<ffffffff81354500>] ? scsi_unjam_host+0x1f0/0x1f0
- [<ffffffff8106ec3e>] kthread+0x9e/0xb0
- [<ffffffff81509264>] kernel_thread_helper+0x4/0x10
- [<ffffffff8106eba0>] ? kthread_freezable_should_stop+0x70/0x70
- [<ffffffff81509260>] ? gs_change+0x13/0x13
-Code: 25 28 00 00 00 48 89 45 c8 31 c0 48 8b 87 80 00 00 00 48 8d b5 60 ff ff ff 89 d1 48 89 fb 41 89 d6 4c 89 fa 48 8b 80 b8 00 00 00
- <48> 8b 80 50 03 00 00 48 8b 00 48 89 85 38 ff ff ff 48 8b 07 4c
-RIP  [<ffffffff81352bb8>] scsi_send_eh_cmnd+0x58/0x3a0
- RSP <ffff88030920dc50>
-CR2: 0000000000000350
-
-Signed-off-by: Mark Rustad <mark.d.rustad at intel.com>
-Tested-by: Marcus Dennis <marcusx.e.dennis at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-[bwh: Backported to 3.2: adjust filename, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/scsi.c |    8 +++++++-
- 1 files changed, 7 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
-index 2aeb2e9..831db24 100644
---- a/drivers/scsi/scsi.c
-+++ b/drivers/scsi/scsi.c
-@@ -785,7 +785,13 @@ static void scsi_done(struct scsi_cmnd *cmd)
- /* Move this to a header if it becomes more generally useful */
- static struct scsi_driver *scsi_cmd_to_driver(struct scsi_cmnd *cmd)
- {
--	return *(struct scsi_driver **)cmd->request->rq_disk->private_data;
-+	struct scsi_driver **sdp;
-+
-+	sdp = (struct scsi_driver **)cmd->request->rq_disk->private_data;
-+	if (!sdp)
-+		return NULL;
-+
-+	return *sdp;
- }
- 
- /**
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0018-sched-nohz-Fix-rq-cpu_load-calculations.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0018-sched-nohz-Fix-rq-cpu_load-calculations.patch
deleted file mode 100644
index 6548d42..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0018-sched-nohz-Fix-rq-cpu_load-calculations.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From af56d9e56ec0729f6aa8c3a51b9bddbdcd8dfcf0 Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Date: Fri, 11 May 2012 17:31:26 +0200
-Subject: [PATCH 18/73] sched/nohz: Fix rq->cpu_load[] calculations
-
-commit 556061b00c9f2fd6a5524b6bde823ef12f299ecf upstream.
-
-While investigating why the load-balancer did funny I found that the
-rq->cpu_load[] tables were completely screwy.. a bit more digging
-revealed that the updates that got through were missing ticks followed
-by a catchup of 2 ticks.
-
-The catchup assumes the cpu was idle during that time (since only nohz
-can cause missed ticks and the machine is idle etc..) this means that
-esp. the higher indices were significantly lower than they ought to
-be.
-
-The reason for this is that its not correct to compare against jiffies
-on every jiffy on any other cpu than the cpu that updates jiffies.
-
-This patch cludges around it by only doing the catch-up stuff from
-nohz_idle_balance() and doing the regular stuff unconditionally from
-the tick.
-
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: pjt at google.com
-Cc: Venkatesh Pallipadi <venki at google.com>
-Link: http://lkml.kernel.org/n/tip-tp4kj18xdd5aj4vvj0qg55s2@git.kernel.org
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-[bwh: Backported to 3.2: adjust filenames and context; keep functions static]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/sched.c      |   53 ++++++++++++++++++++++++++++++++++++++------------
- kernel/sched_fair.c |    2 +-
- 2 files changed, 41 insertions(+), 14 deletions(-)
-
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 52ac69b..a409d81 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -1887,7 +1887,7 @@ static void double_rq_unlock(struct rq *rq1, struct rq *rq2)
- 
- static void update_sysctl(void);
- static int get_update_sysctl_factor(void);
--static void update_cpu_load(struct rq *this_rq);
-+static void update_idle_cpu_load(struct rq *this_rq);
- 
- static inline void __set_task_cpu(struct task_struct *p, unsigned int cpu)
- {
-@@ -3855,22 +3855,13 @@ decay_load_missed(unsigned long load, unsigned long missed_updates, int idx)
-  * scheduler tick (TICK_NSEC). With tickless idle this will not be called
-  * every tick. We fix it up based on jiffies.
-  */
--static void update_cpu_load(struct rq *this_rq)
-+static void __update_cpu_load(struct rq *this_rq, unsigned long this_load,
-+			      unsigned long pending_updates)
- {
--	unsigned long this_load = this_rq->load.weight;
--	unsigned long curr_jiffies = jiffies;
--	unsigned long pending_updates;
- 	int i, scale;
- 
- 	this_rq->nr_load_updates++;
- 
--	/* Avoid repeated calls on same jiffy, when moving in and out of idle */
--	if (curr_jiffies == this_rq->last_load_update_tick)
--		return;
--
--	pending_updates = curr_jiffies - this_rq->last_load_update_tick;
--	this_rq->last_load_update_tick = curr_jiffies;
--
- 	/* Update our load: */
- 	this_rq->cpu_load[0] = this_load; /* Fasttrack for idx 0 */
- 	for (i = 1, scale = 2; i < CPU_LOAD_IDX_MAX; i++, scale += scale) {
-@@ -3895,9 +3886,45 @@ static void update_cpu_load(struct rq *this_rq)
- 	sched_avg_update(this_rq);
- }
- 
-+/*
-+ * Called from nohz_idle_balance() to update the load ratings before doing the
-+ * idle balance.
-+ */
-+static void update_idle_cpu_load(struct rq *this_rq)
-+{
-+	unsigned long curr_jiffies = jiffies;
-+	unsigned long load = this_rq->load.weight;
-+	unsigned long pending_updates;
-+
-+	/*
-+	 * Bloody broken means of dealing with nohz, but better than nothing..
-+	 * jiffies is updated by one cpu, another cpu can drift wrt the jiffy
-+	 * update and see 0 difference the one time and 2 the next, even though
-+	 * we ticked at roughtly the same rate.
-+	 *
-+	 * Hence we only use this from nohz_idle_balance() and skip this
-+	 * nonsense when called from the scheduler_tick() since that's
-+	 * guaranteed a stable rate.
-+	 */
-+	if (load || curr_jiffies == this_rq->last_load_update_tick)
-+		return;
-+
-+	pending_updates = curr_jiffies - this_rq->last_load_update_tick;
-+	this_rq->last_load_update_tick = curr_jiffies;
-+
-+	__update_cpu_load(this_rq, load, pending_updates);
-+}
-+
-+/*
-+ * Called from scheduler_tick()
-+ */
- static void update_cpu_load_active(struct rq *this_rq)
- {
--	update_cpu_load(this_rq);
-+	/*
-+	 * See the mess in update_idle_cpu_load().
-+	 */
-+	this_rq->last_load_update_tick = jiffies;
-+	__update_cpu_load(this_rq, this_rq->load.weight, 1);
- 
- 	calc_load_account_active(this_rq);
- }
-diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c
-index 8a39fa3..66e4576 100644
---- a/kernel/sched_fair.c
-+++ b/kernel/sched_fair.c
-@@ -4735,7 +4735,7 @@ static void nohz_idle_balance(int this_cpu, enum cpu_idle_type idle)
- 
- 		raw_spin_lock_irq(&this_rq->lock);
- 		update_rq_clock(this_rq);
--		update_cpu_load(this_rq);
-+		update_idle_cpu_load(this_rq);
- 		raw_spin_unlock_irq(&this_rq->lock);
- 
- 		rebalance_domains(balance_cpu, CPU_IDLE);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0019-sched-nohz-Fix-rq-cpu_load-calculations-some-more.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0019-sched-nohz-Fix-rq-cpu_load-calculations-some-more.patch
deleted file mode 100644
index 130bbe6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0019-sched-nohz-Fix-rq-cpu_load-calculations-some-more.patch
+++ /dev/null
@@ -1,147 +0,0 @@
-From 5886fe4d82654fa7b041fcc2dd81794d28e2f0a7 Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Date: Thu, 17 May 2012 17:15:29 +0200
-Subject: [PATCH 19/73] sched/nohz: Fix rq->cpu_load calculations some more
-
-commit 5aaa0b7a2ed5b12692c9ffb5222182bd558d3146 upstream.
-
-Follow up on commit 556061b00 ("sched/nohz: Fix rq->cpu_load[]
-calculations") since while that fixed the busy case it regressed the
-mostly idle case.
-
-Add a callback from the nohz exit to also age the rq->cpu_load[]
-array. This closes the hole where either there was no nohz load
-balance pass during the nohz, or there was a 'significant' amount of
-idle time between the last nohz balance and the nohz exit.
-
-So we'll update unconditionally from the tick to not insert any
-accidental 0 load periods while busy, and we try and catch up from
-nohz idle balance and nohz exit. Both these are still prone to missing
-a jiffy, but that has always been the case.
-
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Cc: pjt at google.com
-Cc: Venkatesh Pallipadi <venki at google.com>
-Link: http://lkml.kernel.org/n/tip-kt0trz0apodbf84ucjfdbr1a@git.kernel.org
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-[bwh: Backported to 3.2: adjust filenames and context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/sched.h    |    1 +
- kernel/sched.c           |   53 +++++++++++++++++++++++++++++++++++++--------
- kernel/time/tick-sched.c |    1 +
- 3 files changed, 45 insertions(+), 10 deletions(-)
-
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index a96cb8c..d336c35 100644
---- a/include/linux/sched.h
-+++ b/include/linux/sched.h
-@@ -145,6 +145,7 @@ extern unsigned long this_cpu_load(void);
- 
- 
- extern void calc_global_load(unsigned long ticks);
-+extern void update_cpu_load_nohz(void);
- 
- extern unsigned long get_parent_ip(unsigned long addr);
- 
-diff --git a/kernel/sched.c b/kernel/sched.c
-index a409d81..9cd8ca7 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -3886,25 +3886,32 @@ static void __update_cpu_load(struct rq *this_rq, unsigned long this_load,
- 	sched_avg_update(this_rq);
- }
- 
-+#ifdef CONFIG_NO_HZ
-+/*
-+ * There is no sane way to deal with nohz on smp when using jiffies because the
-+ * cpu doing the jiffies update might drift wrt the cpu doing the jiffy reading
-+ * causing off-by-one errors in observed deltas; {0,2} instead of {1,1}.
-+ *
-+ * Therefore we cannot use the delta approach from the regular tick since that
-+ * would seriously skew the load calculation. However we'll make do for those
-+ * updates happening while idle (nohz_idle_balance) or coming out of idle
-+ * (tick_nohz_idle_exit).
-+ *
-+ * This means we might still be one tick off for nohz periods.
-+ */
-+
- /*
-  * Called from nohz_idle_balance() to update the load ratings before doing the
-  * idle balance.
-  */
- static void update_idle_cpu_load(struct rq *this_rq)
- {
--	unsigned long curr_jiffies = jiffies;
-+	unsigned long curr_jiffies = ACCESS_ONCE(jiffies);
- 	unsigned long load = this_rq->load.weight;
- 	unsigned long pending_updates;
- 
- 	/*
--	 * Bloody broken means of dealing with nohz, but better than nothing..
--	 * jiffies is updated by one cpu, another cpu can drift wrt the jiffy
--	 * update and see 0 difference the one time and 2 the next, even though
--	 * we ticked at roughtly the same rate.
--	 *
--	 * Hence we only use this from nohz_idle_balance() and skip this
--	 * nonsense when called from the scheduler_tick() since that's
--	 * guaranteed a stable rate.
-+	 * bail if there's load or we're actually up-to-date.
- 	 */
- 	if (load || curr_jiffies == this_rq->last_load_update_tick)
- 		return;
-@@ -3916,12 +3923,38 @@ static void update_idle_cpu_load(struct rq *this_rq)
- }
- 
- /*
-+ * Called from tick_nohz_idle_exit() -- try and fix up the ticks we missed.
-+ */
-+void update_cpu_load_nohz(void)
-+{
-+	struct rq *this_rq = this_rq();
-+	unsigned long curr_jiffies = ACCESS_ONCE(jiffies);
-+	unsigned long pending_updates;
-+
-+	if (curr_jiffies == this_rq->last_load_update_tick)
-+		return;
-+
-+	raw_spin_lock(&this_rq->lock);
-+	pending_updates = curr_jiffies - this_rq->last_load_update_tick;
-+	if (pending_updates) {
-+		this_rq->last_load_update_tick = curr_jiffies;
-+		/*
-+		 * We were idle, this means load 0, the current load might be
-+		 * !0 due to remote wakeups and the sort.
-+		 */
-+		__update_cpu_load(this_rq, 0, pending_updates);
-+	}
-+	raw_spin_unlock(&this_rq->lock);
-+}
-+#endif /* CONFIG_NO_HZ */
-+
-+/*
-  * Called from scheduler_tick()
-  */
- static void update_cpu_load_active(struct rq *this_rq)
- {
- 	/*
--	 * See the mess in update_idle_cpu_load().
-+	 * See the mess around update_idle_cpu_load() / update_cpu_load_nohz().
- 	 */
- 	this_rq->last_load_update_tick = jiffies;
- 	__update_cpu_load(this_rq, this_rq->load.weight, 1);
-diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c
-index 9955ebd..793548c 100644
---- a/kernel/time/tick-sched.c
-+++ b/kernel/time/tick-sched.c
-@@ -549,6 +549,7 @@ void tick_nohz_restart_sched_tick(void)
- 	/* Update jiffies first */
- 	select_nohz_load_balancer(0);
- 	tick_do_update_jiffies64(now);
-+	update_cpu_load_nohz();
- 
- #ifndef CONFIG_VIRT_CPU_ACCOUNTING
- 	/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0020-powerpc-ftrace-Fix-assembly-trampoline-register-usag.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0020-powerpc-ftrace-Fix-assembly-trampoline-register-usag.patch
deleted file mode 100644
index f55431d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0020-powerpc-ftrace-Fix-assembly-trampoline-register-usag.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 033f6d41630ea9916446d27526cad10233c43839 Mon Sep 17 00:00:00 2001
-From: roger blofeld <blofeldus at yahoo.com>
-Date: Thu, 21 Jun 2012 05:27:14 +0000
-Subject: [PATCH 20/73] powerpc/ftrace: Fix assembly trampoline register usage
-
-commit fd5a42980e1cf327b7240adf5e7b51ea41c23437 upstream.
-
-Just like the module loader, ftrace needs to be updated to use r12
-instead of r11 with newer gcc's.
-
-Signed-off-by: Roger Blofeld <blofeldus at yahoo.com>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/powerpc/kernel/ftrace.c |   12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/arch/powerpc/kernel/ftrace.c b/arch/powerpc/kernel/ftrace.c
-index bf99cfa..6324008 100644
---- a/arch/powerpc/kernel/ftrace.c
-+++ b/arch/powerpc/kernel/ftrace.c
-@@ -245,9 +245,9 @@ __ftrace_make_nop(struct module *mod,
- 
- 	/*
- 	 * On PPC32 the trampoline looks like:
--	 *  0x3d, 0x60, 0x00, 0x00  lis r11,sym at ha
--	 *  0x39, 0x6b, 0x00, 0x00  addi r11,r11,sym at l
--	 *  0x7d, 0x69, 0x03, 0xa6  mtctr r11
-+	 *  0x3d, 0x80, 0x00, 0x00  lis r12,sym at ha
-+	 *  0x39, 0x8c, 0x00, 0x00  addi r12,r12,sym at l
-+	 *  0x7d, 0x89, 0x03, 0xa6  mtctr r12
- 	 *  0x4e, 0x80, 0x04, 0x20  bctr
- 	 */
- 
-@@ -262,9 +262,9 @@ __ftrace_make_nop(struct module *mod,
- 	pr_devel(" %08x %08x ", jmp[0], jmp[1]);
- 
- 	/* verify that this is what we expect it to be */
--	if (((jmp[0] & 0xffff0000) != 0x3d600000) ||
--	    ((jmp[1] & 0xffff0000) != 0x396b0000) ||
--	    (jmp[2] != 0x7d6903a6) ||
-+	if (((jmp[0] & 0xffff0000) != 0x3d800000) ||
-+	    ((jmp[1] & 0xffff0000) != 0x398c0000) ||
-+	    (jmp[2] != 0x7d8903a6) ||
- 	    (jmp[3] != 0x4e800420)) {
- 		printk(KERN_ERR "Not a trampoline\n");
- 		return -EINVAL;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0021-cx25821-Remove-bad-strcpy-to-read-only-char.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0021-cx25821-Remove-bad-strcpy-to-read-only-char.patch
deleted file mode 100644
index bc425dc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0021-cx25821-Remove-bad-strcpy-to-read-only-char.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 030eee1110a4bb7e4bce1cb32eb0f1a4fbd9923a Mon Sep 17 00:00:00 2001
-From: Ezequiel Garcia <elezegarcia at gmail.com>
-Date: Wed, 18 Jul 2012 10:05:26 -0300
-Subject: [PATCH 21/73] cx25821: Remove bad strcpy to read-only char*
-
-commit 380e99fc44d79bc35af9ff1d3316ef4027ce775e upstream.
-
-The strcpy was being used to set the name of the board.  Since the
-destination char* was read-only and the name is set statically at
-compile time; this was both wrong and redundant.
-
-The type of char* is changed to const char* to prevent future errors.
-
-Reported-by: Radek Masin <radek at masin.eu>
-Signed-off-by: Ezequiel Garcia <elezegarcia at gmail.com>
-[ Taking directly due to vacations   - Linus ]
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/video/cx25821/cx25821-core.c |    3 ---
- drivers/media/video/cx25821/cx25821.h      |    2 +-
- 2 files changed, 1 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/media/video/cx25821/cx25821-core.c b/drivers/media/video/cx25821/cx25821-core.c
-index a7fa38f..e572ce5 100644
---- a/drivers/media/video/cx25821/cx25821-core.c
-+++ b/drivers/media/video/cx25821/cx25821-core.c
-@@ -914,9 +914,6 @@ static int cx25821_dev_setup(struct cx25821_dev *dev)
- 	list_add_tail(&dev->devlist, &cx25821_devlist);
- 	mutex_unlock(&cx25821_devlist_mutex);
- 
--	strcpy(cx25821_boards[UNKNOWN_BOARD].name, "unknown");
--	strcpy(cx25821_boards[CX25821_BOARD].name, "cx25821");
--
- 	if (dev->pci->device != 0x8210) {
- 		pr_info("%s(): Exiting. Incorrect Hardware device = 0x%02x\n",
- 			__func__, dev->pci->device);
-diff --git a/drivers/media/video/cx25821/cx25821.h b/drivers/media/video/cx25821/cx25821.h
-index 2d2d009..bf54360 100644
---- a/drivers/media/video/cx25821/cx25821.h
-+++ b/drivers/media/video/cx25821/cx25821.h
-@@ -187,7 +187,7 @@ enum port {
- };
- 
- struct cx25821_board {
--	char *name;
-+	const char *name;
- 	enum port porta;
- 	enum port portb;
- 	enum port portc;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0022-x86-Fix-boot-on-Twinhead-H12Y.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0022-x86-Fix-boot-on-Twinhead-H12Y.patch
deleted file mode 100644
index b5eccde..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0022-x86-Fix-boot-on-Twinhead-H12Y.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 25b4c57c33b9972f3b03d5a74c827b27cd9babcf Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Tue, 15 May 2012 18:44:15 +0100
-Subject: [PATCH 22/73] x86: Fix boot on Twinhead H12Y
-
-commit 80b3e557371205566a71e569fbfcce5b11f92dbe upstream.
-
-Despite lots of investigation into why this is needed we don't
-know or have an elegant cure. The only answer found on this
-laptop is to mark a problem region as used so that Linux doesn't
-put anything there.
-
-Currently all the users add reserve= command lines and anyone
-not knowing this needs to find the magic page that documents it.
-Automate it instead.
-
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Tested-and-bugfixed-by: Arne Fitzenreiter <arne at fitzenreiter.de>
-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=10231
-Link: http://lkml.kernel.org/r/20120515174347.5109.94551.stgit@bluebook
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/pci/fixup.c |   17 +++++++++++++++++
- 1 files changed, 17 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/pci/fixup.c b/arch/x86/pci/fixup.c
-index 6dd8955..0951b81 100644
---- a/arch/x86/pci/fixup.c
-+++ b/arch/x86/pci/fixup.c
-@@ -521,3 +521,20 @@ static void sb600_disable_hpet_bar(struct pci_dev *dev)
- 	}
- }
- DECLARE_PCI_FIXUP_EARLY(PCI_VENDOR_ID_ATI, 0x4385, sb600_disable_hpet_bar);
-+
-+/*
-+ * Twinhead H12Y needs us to block out a region otherwise we map devices
-+ * there and any access kills the box.
-+ *
-+ *   See: https://bugzilla.kernel.org/show_bug.cgi?id=10231
-+ *
-+ * Match off the LPC and svid/sdid (older kernels lose the bridge subvendor)
-+ */
-+static void __devinit twinhead_reserve_killing_zone(struct pci_dev *dev)
-+{
-+        if (dev->subsystem_vendor == 0x14FF && dev->subsystem_device == 0xA003) {
-+                pr_info("Reserving memory on Twinhead H12Y\n");
-+                request_mem_region(0xFFB00000, 0x100000, "twinhead");
-+        }
-+}
-+DECLARE_PCI_FIXUP_HEADER(PCI_VENDOR_ID_INTEL, 0x27B9, twinhead_reserve_killing_zone);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0023-r8169-RxConfig-hack-for-the-8168evl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0023-r8169-RxConfig-hack-for-the-8168evl.patch
deleted file mode 100644
index 35d29c7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0023-r8169-RxConfig-hack-for-the-8168evl.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 57961c5a47473e6a6aa03292828484bb2d293f04 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?fran=C3=A7ois=20romieu?= <romieu at fr.zoreil.com>
-Date: Wed, 20 Jun 2012 12:09:18 +0000
-Subject: [PATCH 23/73] r8169: RxConfig hack for the 8168evl.
-
-commit eb2dc35d99028b698cdedba4f5522bc43e576bd2 upstream.
-
-The 8168evl (RTL_GIGA_MAC_VER_34) based Gigabyte GA-990FXA motherboards
-are very prone to NETDEV watchdog problems without this change. See
-https://bugzilla.kernel.org/show_bug.cgi?id=42899 for instance.
-
-I don't know why it *works*. It's depressingly effective though.
-
-For the record:
-- the problem may go along IOMMU (AMD-Vi) errors but it really looks
-  like a red herring.
-- the patch sets the RX_MULTI_EN bit. If the 8168c doc is any guide,
-  the chipset now fetches several Rx descriptors at a time.
-- long ago the driver ignored the RX_MULTI_EN bit.
-  e542a2269f232d61270ceddd42b73a4348dee2bb changed the RxConfig
-  settings. Whatever the problem it's now labeled a regression.
-- Realtek's own driver can identify two different 8168evl devices
-  (CFG_METHOD_16 and CFG_METHOD_17) where the r8169 driver only
-  sees one. It sucks.
-
-Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/realtek/r8169.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
-index 9e61d6b..ed1be8a 100644
---- a/drivers/net/ethernet/realtek/r8169.c
-+++ b/drivers/net/ethernet/realtek/r8169.c
-@@ -3770,6 +3770,7 @@ static void rtl_init_rxcfg(struct rtl8169_private *tp)
- 	case RTL_GIGA_MAC_VER_22:
- 	case RTL_GIGA_MAC_VER_23:
- 	case RTL_GIGA_MAC_VER_24:
-+	case RTL_GIGA_MAC_VER_34:
- 		RTL_W32(RxConfig, RX128_INT_EN | RX_MULTI_EN | RX_DMA_BURST);
- 		break;
- 	default:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0024-cifs-when-CONFIG_HIGHMEM-is-set-serialize-the-read-w.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0024-cifs-when-CONFIG_HIGHMEM-is-set-serialize-the-read-w.patch
deleted file mode 100644
index 004839e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0024-cifs-when-CONFIG_HIGHMEM-is-set-serialize-the-read-w.patch
+++ /dev/null
@@ -1,124 +0,0 @@
-From 3e3da899949f18869c6958a30a861d89f2d4b73c Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Wed, 11 Jul 2012 09:09:36 -0400
-Subject: [PATCH 24/73] cifs: when CONFIG_HIGHMEM is set, serialize the
- read/write kmaps
-
-commit 3cf003c08be785af4bee9ac05891a15bcbff856a upstream.
-
-Jian found that when he ran fsx on a 32 bit arch with a large wsize the
-process and one of the bdi writeback kthreads would sometimes deadlock
-with a stack trace like this:
-
-crash> bt
-PID: 2789   TASK: f02edaa0  CPU: 3   COMMAND: "fsx"
- #0 [eed63cbc] schedule at c083c5b3
- #1 [eed63d80] kmap_high at c0500ec8
- #2 [eed63db0] cifs_async_writev at f7fabcd7 [cifs]
- #3 [eed63df0] cifs_writepages at f7fb7f5c [cifs]
- #4 [eed63e50] do_writepages at c04f3e32
- #5 [eed63e54] __filemap_fdatawrite_range at c04e152a
- #6 [eed63ea4] filemap_fdatawrite at c04e1b3e
- #7 [eed63eb4] cifs_file_aio_write at f7fa111a [cifs]
- #8 [eed63ecc] do_sync_write at c052d202
- #9 [eed63f74] vfs_write at c052d4ee
-#10 [eed63f94] sys_write at c052df4c
-#11 [eed63fb0] ia32_sysenter_target at c0409a98
-    EAX: 00000004  EBX: 00000003  ECX: abd73b73  EDX: 012a65c6
-    DS:  007b      ESI: 012a65c6  ES:  007b      EDI: 00000000
-    SS:  007b      ESP: bf8db178  EBP: bf8db1f8  GS:  0033
-    CS:  0073      EIP: 40000424  ERR: 00000004  EFLAGS: 00000246
-
-Each task would kmap part of its address array before getting stuck, but
-not enough to actually issue the write.
-
-This patch fixes this by serializing the marshal_iov operations for
-async reads and writes. The idea here is to ensure that cifs
-aggressively tries to populate a request before attempting to fulfill
-another one. As soon as all of the pages are kmapped for a request, then
-we can unlock and allow another one to proceed.
-
-There's no need to do this serialization on non-CONFIG_HIGHMEM arches
-however, so optimize all of this out when CONFIG_HIGHMEM isn't set.
-
-Reported-by: Jian Li <jiali at redhat.com>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/cifs/cifssmb.c |   30 ++++++++++++++++++++++++++++++
- 1 files changed, 30 insertions(+), 0 deletions(-)
-
-diff --git a/fs/cifs/cifssmb.c b/fs/cifs/cifssmb.c
-index 6aa7457..c858a29 100644
---- a/fs/cifs/cifssmb.c
-+++ b/fs/cifs/cifssmb.c
-@@ -89,6 +89,32 @@ static struct {
- /* Forward declarations */
- static void cifs_readv_complete(struct work_struct *work);
- 
-+#ifdef CONFIG_HIGHMEM
-+/*
-+ * On arches that have high memory, kmap address space is limited. By
-+ * serializing the kmap operations on those arches, we ensure that we don't
-+ * end up with a bunch of threads in writeback with partially mapped page
-+ * arrays, stuck waiting for kmap to come back. That situation prevents
-+ * progress and can deadlock.
-+ */
-+static DEFINE_MUTEX(cifs_kmap_mutex);
-+
-+static inline void
-+cifs_kmap_lock(void)
-+{
-+	mutex_lock(&cifs_kmap_mutex);
-+}
-+
-+static inline void
-+cifs_kmap_unlock(void)
-+{
-+	mutex_unlock(&cifs_kmap_mutex);
-+}
-+#else /* !CONFIG_HIGHMEM */
-+#define cifs_kmap_lock() do { ; } while(0)
-+#define cifs_kmap_unlock() do { ; } while(0)
-+#endif /* CONFIG_HIGHMEM */
-+
- /* Mark as invalid, all open files on tree connections since they
-    were closed when session to server was lost */
- static void mark_open_files_invalid(struct cifs_tcon *pTcon)
-@@ -1540,6 +1566,7 @@ cifs_readv_receive(struct TCP_Server_Info *server, struct mid_q_entry *mid)
- 	eof_index = eof ? (eof - 1) >> PAGE_CACHE_SHIFT : 0;
- 	cFYI(1, "eof=%llu eof_index=%lu", eof, eof_index);
- 
-+	cifs_kmap_lock();
- 	list_for_each_entry_safe(page, tpage, &rdata->pages, lru) {
- 		if (remaining >= PAGE_CACHE_SIZE) {
- 			/* enough data to fill the page */
-@@ -1589,6 +1616,7 @@ cifs_readv_receive(struct TCP_Server_Info *server, struct mid_q_entry *mid)
- 			page_cache_release(page);
- 		}
- 	}
-+	cifs_kmap_unlock();
- 
- 	/* issue the read if we have any iovecs left to fill */
- 	if (rdata->nr_iov > 1) {
-@@ -2171,6 +2199,7 @@ cifs_async_writev(struct cifs_writedata *wdata)
- 	iov[0].iov_base = smb;
- 
- 	/* marshal up the pages into iov array */
-+	cifs_kmap_lock();
- 	wdata->bytes = 0;
- 	for (i = 0; i < wdata->nr_pages; i++) {
- 		iov[i + 1].iov_len = min(inode->i_size -
-@@ -2179,6 +2208,7 @@ cifs_async_writev(struct cifs_writedata *wdata)
- 		iov[i + 1].iov_base = kmap(wdata->pages[i]);
- 		wdata->bytes += iov[i + 1].iov_len;
- 	}
-+	cifs_kmap_unlock();
- 
- 	cFYI(1, "async write at %llu %u bytes", wdata->offset, wdata->bytes);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0025-wireless-rt2x00-rt2800usb-add-more-devices-ids.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0025-wireless-rt2x00-rt2800usb-add-more-devices-ids.patch
deleted file mode 100644
index 71216d7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0025-wireless-rt2x00-rt2800usb-add-more-devices-ids.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 1b993bd614946837177ce94e29f3d6febec2d7dc Mon Sep 17 00:00:00 2001
-From: Xose Vazquez Perez <xose.vazquez at gmail.com>
-Date: Tue, 17 Apr 2012 01:50:32 +0200
-Subject: [PATCH 25/73] wireless: rt2x00: rt2800usb add more devices ids
-
-commit 63b376411173c343bbcb450f95539da91f079e0c upstream.
-
-They were taken from ralink drivers:
-2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO
-2012_03_22_RT5572_Linux_STA_v2.6.0.0_DPO
-
-0x1eda,0x2210 RT3070 Airties
-
-0x083a,0xb511 RT3370 Panasonic
-0x0471,0x20dd RT3370 Philips
-
-0x1690,0x0764 RT35xx Askey
-0x0df6,0x0065 RT35xx Sitecom
-0x0df6,0x0066 RT35xx Sitecom
-0x0df6,0x0068 RT35xx Sitecom
-
-0x2001,0x3c1c RT5370 DLink
-0x2001,0x3c1d RT5370 DLink
-
-2001 is D-Link not Alpha
-
-Signed-off-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: drop the 5372 devices]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |   12 ++++++++++++
- 1 files changed, 12 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index 0ffa111..f05a12d 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -876,6 +876,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x1482, 0x3c09) },
- 	/* AirTies */
- 	{ USB_DEVICE(0x1eda, 0x2012) },
-+	{ USB_DEVICE(0x1eda, 0x2210) },
- 	{ USB_DEVICE(0x1eda, 0x2310) },
- 	/* Allwin */
- 	{ USB_DEVICE(0x8516, 0x2070) },
-@@ -1088,6 +1089,10 @@ static struct usb_device_id rt2800usb_device_table[] = {
- #ifdef CONFIG_RT2800USB_RT33XX
- 	/* Belkin */
- 	{ USB_DEVICE(0x050d, 0x945b) },
-+	/* Panasonic */
-+	{ USB_DEVICE(0x083a, 0xb511) },
-+	/* Philips */
-+	{ USB_DEVICE(0x0471, 0x20dd) },
- 	/* Ralink */
- 	{ USB_DEVICE(0x148f, 0x3370) },
- 	{ USB_DEVICE(0x148f, 0x8070) },
-@@ -1099,6 +1104,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x8516, 0x3572) },
- 	/* Askey */
- 	{ USB_DEVICE(0x1690, 0x0744) },
-+	{ USB_DEVICE(0x1690, 0x0764) },
- 	/* Cisco */
- 	{ USB_DEVICE(0x167b, 0x4001) },
- 	/* EnGenius */
-@@ -1113,6 +1119,9 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* Sitecom */
- 	{ USB_DEVICE(0x0df6, 0x0041) },
- 	{ USB_DEVICE(0x0df6, 0x0062) },
-+	{ USB_DEVICE(0x0df6, 0x0065) },
-+	{ USB_DEVICE(0x0df6, 0x0066) },
-+	{ USB_DEVICE(0x0df6, 0x0068) },
- 	/* Toshiba */
- 	{ USB_DEVICE(0x0930, 0x0a07) },
- 	/* Zinwell */
-@@ -1122,6 +1131,9 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* Azurewave */
- 	{ USB_DEVICE(0x13d3, 0x3329) },
- 	{ USB_DEVICE(0x13d3, 0x3365) },
-+	/* D-Link */
-+	{ USB_DEVICE(0x2001, 0x3c1c) },
-+	{ USB_DEVICE(0x2001, 0x3c1d) },
- 	/* Ralink */
- 	{ USB_DEVICE(0x148f, 0x5370) },
- 	{ USB_DEVICE(0x148f, 0x5372) },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0026-wireless-rt2x00-rt2800usb-more-devices-were-identifi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0026-wireless-rt2x00-rt2800usb-more-devices-were-identifi.patch
deleted file mode 100644
index afed137..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0026-wireless-rt2x00-rt2800usb-more-devices-were-identifi.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From 53157c2a7eda6ba98def241f183a06a6f28f852f Mon Sep 17 00:00:00 2001
-From: Xose Vazquez Perez <xose.vazquez at gmail.com>
-Date: Tue, 17 Apr 2012 16:28:05 +0200
-Subject: [PATCH 26/73] wireless: rt2x00: rt2800usb more devices were
- identified
-
-commit e828b9fb4f6c3513950759d5fb902db5bd054048 upstream.
-
-found in 2012_03_22_RT5572_Linux_STA_v2.6.0.0_DPO
-
-RT3070:
-(0x2019,0x5201)  Planex Communications, Inc. RT8070
-(0x7392,0x4085)  2L Central Europe BV 8070
-7392 is Edimax
-
-RT35xx:
-(0x1690,0x0761) Askey
-was Fujitsu Stylistic 550, but 1690 is Askey
-
-Signed-off-by: Xose Vazquez Perez <xose.vazquez at gmail.com>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |    8 +++-----
- 1 files changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index f05a12d..76ebba4 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -946,6 +946,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* DVICO */
- 	{ USB_DEVICE(0x0fe9, 0xb307) },
- 	/* Edimax */
-+	{ USB_DEVICE(0x7392, 0x4085) },
- 	{ USB_DEVICE(0x7392, 0x7711) },
- 	{ USB_DEVICE(0x7392, 0x7717) },
- 	{ USB_DEVICE(0x7392, 0x7718) },
-@@ -1021,6 +1022,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* Philips */
- 	{ USB_DEVICE(0x0471, 0x200f) },
- 	/* Planex */
-+	{ USB_DEVICE(0x2019, 0x5201) },
- 	{ USB_DEVICE(0x2019, 0xab25) },
- 	{ USB_DEVICE(0x2019, 0xed06) },
- 	/* Quanta */
-@@ -1104,6 +1106,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x8516, 0x3572) },
- 	/* Askey */
- 	{ USB_DEVICE(0x1690, 0x0744) },
-+	{ USB_DEVICE(0x1690, 0x0761) },
- 	{ USB_DEVICE(0x1690, 0x0764) },
- 	/* Cisco */
- 	{ USB_DEVICE(0x167b, 0x4001) },
-@@ -1176,12 +1179,8 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x07d1, 0x3c0b) },
- 	{ USB_DEVICE(0x07d1, 0x3c17) },
- 	{ USB_DEVICE(0x2001, 0x3c17) },
--	/* Edimax */
--	{ USB_DEVICE(0x7392, 0x4085) },
- 	/* Encore */
- 	{ USB_DEVICE(0x203d, 0x14a1) },
--	/* Fujitsu Stylistic 550 */
--	{ USB_DEVICE(0x1690, 0x0761) },
- 	/* Gemtek */
- 	{ USB_DEVICE(0x15a9, 0x0010) },
- 	/* Gigabyte */
-@@ -1202,7 +1201,6 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x05a6, 0x0101) },
- 	{ USB_DEVICE(0x1d4d, 0x0010) },
- 	/* Planex */
--	{ USB_DEVICE(0x2019, 0x5201) },
- 	{ USB_DEVICE(0x2019, 0xab24) },
- 	/* Qcom */
- 	{ USB_DEVICE(0x18e8, 0x6259) },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0027-rt2800usb-2001-3c17-is-an-RT3370-device.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0027-rt2800usb-2001-3c17-is-an-RT3370-device.patch
deleted file mode 100644
index fb65d15..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0027-rt2800usb-2001-3c17-is-an-RT3370-device.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From b35733e76251b308e5a65e60630261571c85f9f3 Mon Sep 17 00:00:00 2001
-From: Albert Pool <albertpool at solcon.nl>
-Date: Mon, 14 May 2012 18:08:32 +0200
-Subject: [PATCH 27/73] rt2800usb: 2001:3c17 is an RT3370 device
-
-commit 8fd9d059af12786341dec5a688e607bcdb372238 upstream.
-
-D-Link DWA-123 rev A1
-
-Signed-off-by: Albert Pool<albertpool at solcon.nl>
-Acked-by: Gertjan van Wingerde <gwingerde at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index 76ebba4..bdf960b 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -1091,6 +1091,8 @@ static struct usb_device_id rt2800usb_device_table[] = {
- #ifdef CONFIG_RT2800USB_RT33XX
- 	/* Belkin */
- 	{ USB_DEVICE(0x050d, 0x945b) },
-+	/* D-Link */
-+	{ USB_DEVICE(0x2001, 0x3c17) },
- 	/* Panasonic */
- 	{ USB_DEVICE(0x083a, 0xb511) },
- 	/* Philips */
-@@ -1178,7 +1180,6 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	/* D-Link */
- 	{ USB_DEVICE(0x07d1, 0x3c0b) },
- 	{ USB_DEVICE(0x07d1, 0x3c17) },
--	{ USB_DEVICE(0x2001, 0x3c17) },
- 	/* Encore */
- 	{ USB_DEVICE(0x203d, 0x14a1) },
- 	/* Gemtek */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0028-usb-gadget-Fix-g_ether-interface-link-status.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0028-usb-gadget-Fix-g_ether-interface-link-status.patch
deleted file mode 100644
index 2dcadb8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0028-usb-gadget-Fix-g_ether-interface-link-status.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f91bc4d604edd5b09021245b6643cfeebc707f2b Mon Sep 17 00:00:00 2001
-From: Kevin Cernekee <cernekee at gmail.com>
-Date: Sun, 24 Jun 2012 21:11:22 -0700
-Subject: [PATCH 28/73] usb: gadget: Fix g_ether interface link status
-
-commit 31bde1ceaa873bcaecd49e829bfabceacc4c512d upstream.
-
-A "usb0" interface that has never been connected to a host has an unknown
-operstate, and therefore the IFF_RUNNING flag is (incorrectly) asserted
-when queried by ifconfig, ifplugd, etc.  This is a result of calling
-netif_carrier_off() too early in the probe function; it should be called
-after register_netdev().
-
-Similar problems have been fixed in many other drivers, e.g.:
-
-    e826eafa6 (bonding: Call netif_carrier_off after register_netdevice)
-    0d672e9f8 (drivers/net: Call netif_carrier_off at the end of the probe)
-    6a3c869a6 (cxgb4: fix reported state of interfaces without link)
-
-Fix is to move netif_carrier_off() to the end of the function.
-
-Signed-off-by: Kevin Cernekee <cernekee at gmail.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/gadget/u_ether.c |   12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/usb/gadget/u_ether.c b/drivers/usb/gadget/u_ether.c
-index 29c854b..4e1f0aa 100644
---- a/drivers/usb/gadget/u_ether.c
-+++ b/drivers/usb/gadget/u_ether.c
-@@ -796,12 +796,6 @@ int gether_setup(struct usb_gadget *g, u8 ethaddr[ETH_ALEN])
- 
- 	SET_ETHTOOL_OPS(net, &ops);
- 
--	/* two kinds of host-initiated state changes:
--	 *  - iff DATA transfer is active, carrier is "on"
--	 *  - tx queueing enabled if open *and* carrier is "on"
--	 */
--	netif_carrier_off(net);
--
- 	dev->gadget = g;
- 	SET_NETDEV_DEV(net, &g->dev);
- 	SET_NETDEV_DEVTYPE(net, &gadget_type);
-@@ -815,6 +809,12 @@ int gether_setup(struct usb_gadget *g, u8 ethaddr[ETH_ALEN])
- 		INFO(dev, "HOST MAC %pM\n", dev->host_mac);
- 
- 		the_dev = dev;
-+
-+		/* two kinds of host-initiated state changes:
-+		 *  - iff DATA transfer is active, carrier is "on"
-+		 *  - tx queueing enabled if open *and* carrier is "on"
-+		 */
-+		netif_carrier_off(net);
- 	}
- 
- 	return status;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0029-ext4-pass-a-char-to-ext4_count_free-instead-of-a-buf.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0029-ext4-pass-a-char-to-ext4_count_free-instead-of-a-buf.patch
deleted file mode 100644
index 9286436..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0029-ext4-pass-a-char-to-ext4_count_free-instead-of-a-buf.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From e872f4ac0de4e1898a669e2c8a7185ef76f266fb Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Sat, 30 Jun 2012 19:14:57 -0400
-Subject: [PATCH 29/73] ext4: pass a char * to ext4_count_free() instead of a
- buffer_head ptr
-
-commit f6fb99cadcd44660c68e13f6eab28333653621e6 upstream.
-
-Make it possible for ext4_count_free to operate on buffers and not
-just data in buffer_heads.
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/balloc.c |    3 ++-
- fs/ext4/bitmap.c |    8 +++-----
- fs/ext4/ext4.h   |    2 +-
- fs/ext4/ialloc.c |    3 ++-
- 4 files changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/fs/ext4/balloc.c b/fs/ext4/balloc.c
-index 914bf9e..d6970f7 100644
---- a/fs/ext4/balloc.c
-+++ b/fs/ext4/balloc.c
-@@ -557,7 +557,8 @@ ext4_fsblk_t ext4_count_free_clusters(struct super_block *sb)
- 		if (bitmap_bh == NULL)
- 			continue;
- 
--		x = ext4_count_free(bitmap_bh, sb->s_blocksize);
-+		x = ext4_count_free(bitmap_bh->b_data,
-+				    EXT4_BLOCKS_PER_GROUP(sb) / 8);
- 		printk(KERN_DEBUG "group %u: stored = %d, counted = %u\n",
- 			i, ext4_free_group_clusters(sb, gdp), x);
- 		bitmap_count += x;
-diff --git a/fs/ext4/bitmap.c b/fs/ext4/bitmap.c
-index fa3af81..012faaa 100644
---- a/fs/ext4/bitmap.c
-+++ b/fs/ext4/bitmap.c
-@@ -15,15 +15,13 @@
- 
- static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0};
- 
--unsigned int ext4_count_free(struct buffer_head *map, unsigned int numchars)
-+unsigned int ext4_count_free(char *bitmap, unsigned int numchars)
- {
- 	unsigned int i, sum = 0;
- 
--	if (!map)
--		return 0;
- 	for (i = 0; i < numchars; i++)
--		sum += nibblemap[map->b_data[i] & 0xf] +
--			nibblemap[(map->b_data[i] >> 4) & 0xf];
-+		sum += nibblemap[bitmap[i] & 0xf] +
-+			nibblemap[(bitmap[i] >> 4) & 0xf];
- 	return sum;
- }
- 
-diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 7b1cd5c..873897c 100644
---- a/fs/ext4/ext4.h
-+++ b/fs/ext4/ext4.h
-@@ -1757,7 +1757,7 @@ struct mmpd_data {
- # define NORET_AND	noreturn,
- 
- /* bitmap.c */
--extern unsigned int ext4_count_free(struct buffer_head *, unsigned);
-+extern unsigned int ext4_count_free(char *bitmap, unsigned numchars);
- 
- /* balloc.c */
- extern unsigned int ext4_block_group(struct super_block *sb,
-diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c
-index 8fb6844..6266799 100644
---- a/fs/ext4/ialloc.c
-+++ b/fs/ext4/ialloc.c
-@@ -1057,7 +1057,8 @@ unsigned long ext4_count_free_inodes(struct super_block *sb)
- 		if (!bitmap_bh)
- 			continue;
- 
--		x = ext4_count_free(bitmap_bh, EXT4_INODES_PER_GROUP(sb) / 8);
-+		x = ext4_count_free(bitmap_bh->b_data,
-+				    EXT4_INODES_PER_GROUP(sb) / 8);
- 		printk(KERN_DEBUG "group %lu: stored = %d, counted = %lu\n",
- 			(unsigned long) i, ext4_free_inodes_count(sb, gdp), x);
- 		bitmap_count += x;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0030-ftrace-Disable-function-tracing-during-suspend-resum.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0030-ftrace-Disable-function-tracing-during-suspend-resum.patch
deleted file mode 100644
index 3ec5202..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0030-ftrace-Disable-function-tracing-during-suspend-resum.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 951ac5885b5a314d394ea0668dedccd7ed9216e5 Mon Sep 17 00:00:00 2001
-From: "Srivatsa S. Bhat" <srivatsa.bhat at linux.vnet.ibm.com>
-Date: Sat, 16 Jun 2012 15:30:45 +0200
-Subject: [PATCH 30/73] ftrace: Disable function tracing during suspend/resume
- and hibernation, again
-
-commit 443772d408a25af62498793f6f805ce3c559309a upstream.
-
-If function tracing is enabled for some of the low-level suspend/resume
-functions, it leads to triple fault during resume from suspend, ultimately
-ending up in a reboot instead of a resume (or a total refusal to come out
-of suspended state, on some machines).
-
-This issue was explained in more detail in commit f42ac38c59e0a03d (ftrace:
-disable tracing for suspend to ram). However, the changes made by that commit
-got reverted by commit cbe2f5a6e84eebb (tracing: allow tracing of
-suspend/resume & hibernation code again). So, unfortunately since things are
-not yet robust enough to allow tracing of low-level suspend/resume functions,
-suspend/resume is still broken when ftrace is enabled.
-
-So fix this by disabling function tracing during suspend/resume & hibernation.
-
-Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/power/hibernate.c |    6 ++++++
- kernel/power/suspend.c   |    3 +++
- 2 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index 7c0d578..013bd2e 100644
---- a/kernel/power/hibernate.c
-+++ b/kernel/power/hibernate.c
-@@ -367,6 +367,7 @@ int hibernation_snapshot(int platform_mode)
- 	}
- 
- 	suspend_console();
-+	ftrace_stop();
- 	pm_restrict_gfp_mask();
- 	error = dpm_suspend(PMSG_FREEZE);
- 	if (error)
-@@ -392,6 +393,7 @@ int hibernation_snapshot(int platform_mode)
- 	if (error || !in_suspend)
- 		pm_restore_gfp_mask();
- 
-+	ftrace_start();
- 	resume_console();
- 	dpm_complete(msg);
- 
-@@ -496,6 +498,7 @@ int hibernation_restore(int platform_mode)
- 
- 	pm_prepare_console();
- 	suspend_console();
-+	ftrace_stop();
- 	pm_restrict_gfp_mask();
- 	error = dpm_suspend_start(PMSG_QUIESCE);
- 	if (!error) {
-@@ -503,6 +506,7 @@ int hibernation_restore(int platform_mode)
- 		dpm_resume_end(PMSG_RECOVER);
- 	}
- 	pm_restore_gfp_mask();
-+	ftrace_start();
- 	resume_console();
- 	pm_restore_console();
- 	return error;
-@@ -529,6 +533,7 @@ int hibernation_platform_enter(void)
- 
- 	entering_platform_hibernation = true;
- 	suspend_console();
-+	ftrace_stop();
- 	error = dpm_suspend_start(PMSG_HIBERNATE);
- 	if (error) {
- 		if (hibernation_ops->recover)
-@@ -572,6 +577,7 @@ int hibernation_platform_enter(void)
-  Resume_devices:
- 	entering_platform_hibernation = false;
- 	dpm_resume_end(PMSG_RESTORE);
-+	ftrace_start();
- 	resume_console();
- 
-  Close:
-diff --git a/kernel/power/suspend.c b/kernel/power/suspend.c
-index 4953dc0..af48faa 100644
---- a/kernel/power/suspend.c
-+++ b/kernel/power/suspend.c
-@@ -25,6 +25,7 @@
- #include <linux/export.h>
- #include <linux/suspend.h>
- #include <linux/syscore_ops.h>
-+#include <linux/ftrace.h>
- #include <trace/events/power.h>
- 
- #include "power.h"
-@@ -220,6 +221,7 @@ int suspend_devices_and_enter(suspend_state_t state)
- 			goto Close;
- 	}
- 	suspend_console();
-+	ftrace_stop();
- 	suspend_test_start();
- 	error = dpm_suspend_start(PMSG_SUSPEND);
- 	if (error) {
-@@ -239,6 +241,7 @@ int suspend_devices_and_enter(suspend_state_t state)
- 	suspend_test_start();
- 	dpm_resume_end(PMSG_RESUME);
- 	suspend_test_finish("resume devices");
-+	ftrace_start();
- 	resume_console();
-  Close:
- 	if (suspend_ops->end)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0031-x86-microcode-microcode_core.c-simple_strtoul-cleanu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0031-x86-microcode-microcode_core.c-simple_strtoul-cleanu.patch
deleted file mode 100644
index abdc7b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0031-x86-microcode-microcode_core.c-simple_strtoul-cleanu.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a0ac7c345c81631057085b53d0b5de53efb8d241 Mon Sep 17 00:00:00 2001
-From: Shuah Khan <shuahkhan at gmail.com>
-Date: Sun, 6 May 2012 11:11:04 -0600
-Subject: [PATCH 31/73] x86, microcode: microcode_core.c simple_strtoul
- cleanup
-
-commit e826abd523913f63eb03b59746ffb16153c53dc4 upstream.
-
-Change reload_for_cpu() in kernel/microcode_core.c to call kstrtoul()
-instead of calling obsoleted simple_strtoul().
-
-Signed-off-by: Shuah Khan <shuahkhan at gmail.com>
-Reviewed-by: Borislav Petkov <bp at alien8.de>
-Link: http://lkml.kernel.org/r/1336324264.2897.9.camel@lorien2
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/microcode_core.c |    9 ++++-----
- 1 files changed, 4 insertions(+), 5 deletions(-)
-
-diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c
-index 563a09d..19c7af1 100644
---- a/arch/x86/kernel/microcode_core.c
-+++ b/arch/x86/kernel/microcode_core.c
-@@ -298,12 +298,11 @@ static ssize_t reload_store(struct sys_device *dev,
- {
- 	unsigned long val;
- 	int cpu = dev->id;
--	int ret = 0;
--	char *end;
-+	ssize_t ret = 0;
- 
--	val = simple_strtoul(buf, &end, 0);
--	if (end == buf)
--		return -EINVAL;
-+	ret = kstrtoul(buf, 0, &val);
-+	if (ret)
-+		return ret;
- 
- 	if (val == 1) {
- 		get_online_cpus();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0032-x86-microcode-Sanitize-per-cpu-microcode-reloading-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0032-x86-microcode-Sanitize-per-cpu-microcode-reloading-i.patch
deleted file mode 100644
index 824c039..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0032-x86-microcode-Sanitize-per-cpu-microcode-reloading-i.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 6a7d02f3957e572d5e35fc71df90a3a7311e383d Mon Sep 17 00:00:00 2001
-From: Borislav Petkov <borislav.petkov at amd.com>
-Date: Thu, 21 Jun 2012 14:07:16 +0200
-Subject: [PATCH 32/73] x86, microcode: Sanitize per-cpu microcode reloading
- interface
-
-commit c9fc3f778a6a215ace14ee556067c73982b6d40f upstream.
-
-Microcode reloading in a per-core manner is a very bad idea for both
-major x86 vendors. And the thing is, we have such interface with which
-we can end up with different microcode versions applied on different
-cores of an otherwise homogeneous wrt (family,model,stepping) system.
-
-So turn off the possibility of doing that per core and allow it only
-system-wide.
-
-This is a minimal fix which we'd like to see in stable too thus the
-more-or-less arbitrary decision to allow system-wide reloading only on
-the BSP:
-
-$ echo 1 > /sys/devices/system/cpu/cpu0/microcode/reload
-...
-
-and disable the interface on the other cores:
-
-$ echo 1 > /sys/devices/system/cpu/cpu23/microcode/reload
--bash: echo: write error: Invalid argument
-
-Also, allowing the reload only from one CPU (the BSP in
-that case) doesn't allow the reload procedure to degenerate
-into an O(n^2) deal when triggering reloads from all
-/sys/devices/system/cpu/cpuX/microcode/reload sysfs nodes
-simultaneously.
-
-A more generic fix will follow.
-
-Cc: Henrique de Moraes Holschuh <hmh at hmh.eng.br>
-Cc: Peter Zijlstra <peterz at infradead.org>
-Signed-off-by: Borislav Petkov <borislav.petkov at amd.com>
-Link: http://lkml.kernel.org/r/1340280437-7718-2-git-send-email-bp@amd64.org
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/microcode_core.c |   26 +++++++++++++++++++-------
- 1 files changed, 19 insertions(+), 7 deletions(-)
-
-diff --git a/arch/x86/kernel/microcode_core.c b/arch/x86/kernel/microcode_core.c
-index 19c7af1..29c95d7 100644
---- a/arch/x86/kernel/microcode_core.c
-+++ b/arch/x86/kernel/microcode_core.c
-@@ -297,19 +297,31 @@ static ssize_t reload_store(struct sys_device *dev,
- 			    const char *buf, size_t size)
- {
- 	unsigned long val;
--	int cpu = dev->id;
--	ssize_t ret = 0;
-+	int cpu;
-+	ssize_t ret = 0, tmp_ret;
-+
-+	/* allow reload only from the BSP */
-+	if (boot_cpu_data.cpu_index != dev->id)
-+		return -EINVAL;
- 
- 	ret = kstrtoul(buf, 0, &val);
- 	if (ret)
- 		return ret;
- 
--	if (val == 1) {
--		get_online_cpus();
--		if (cpu_online(cpu))
--			ret = reload_for_cpu(cpu);
--		put_online_cpus();
-+	if (val != 1)
-+		return size;
-+
-+	get_online_cpus();
-+	for_each_online_cpu(cpu) {
-+		tmp_ret = reload_for_cpu(cpu);
-+		if (tmp_ret != 0)
-+			pr_warn("Error reloading microcode on CPU %d\n", cpu);
-+
-+		/* save retval of the first encountered reload error */
-+		if (!ret)
-+			ret = tmp_ret;
- 	}
-+	put_online_cpus();
- 
- 	if (!ret)
- 		ret = size;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0033-usbdevfs-Correct-amount-of-data-copied-to-user-in-pr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0033-usbdevfs-Correct-amount-of-data-copied-to-user-in-pr.patch
deleted file mode 100644
index 044c7d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0033-usbdevfs-Correct-amount-of-data-copied-to-user-in-pr.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From ab66ac59913202f29a32377f4e8bcfd730a8f31d Mon Sep 17 00:00:00 2001
-From: Hans de Goede <hdegoede at redhat.com>
-Date: Wed, 4 Jul 2012 09:18:01 +0200
-Subject: [PATCH 33/73] usbdevfs: Correct amount of data copied to user in
- processcompl_compat
-
-commit 2102e06a5f2e414694921f23591f072a5ba7db9f upstream.
-
-iso data buffers may have holes in them if some packets were short, so for
-iso urbs we should always copy the entire buffer, just like the regular
-processcompl does.
-
-Signed-off-by: Hans de Goede <hdegoede at redhat.com>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/devio.c |   10 +++++++---
- 1 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/core/devio.c b/drivers/usb/core/devio.c
-index f6ff837..a9df218 100644
---- a/drivers/usb/core/devio.c
-+++ b/drivers/usb/core/devio.c
-@@ -1555,10 +1555,14 @@ static int processcompl_compat(struct async *as, void __user * __user *arg)
- 	void __user *addr = as->userurb;
- 	unsigned int i;
- 
--	if (as->userbuffer && urb->actual_length)
--		if (copy_to_user(as->userbuffer, urb->transfer_buffer,
--				 urb->actual_length))
-+	if (as->userbuffer && urb->actual_length) {
-+		if (urb->number_of_packets > 0)		/* Isochronous */
-+			i = urb->transfer_buffer_length;
-+		else					/* Non-Isoc */
-+			i = urb->actual_length;
-+		if (copy_to_user(as->userbuffer, urb->transfer_buffer, i))
- 			return -EFAULT;
-+	}
- 	if (put_user(as->status, &userurb->status))
- 		return -EFAULT;
- 	if (put_user(urb->actual_length, &userurb->actual_length))
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0034-ext4-fix-overhead-calculation-used-by-ext4_statfs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0034-ext4-fix-overhead-calculation-used-by-ext4_statfs.patch
deleted file mode 100644
index 3fc3812..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0034-ext4-fix-overhead-calculation-used-by-ext4_statfs.patch
+++ /dev/null
@@ -1,294 +0,0 @@
-From 838475547b3c83537e291b997da546b518f591b3 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Mon, 9 Jul 2012 16:27:05 -0400
-Subject: [PATCH 34/73] ext4: fix overhead calculation used by ext4_statfs()
-
-commit 952fc18ef9ec707ebdc16c0786ec360295e5ff15 upstream.
-
-Commit f975d6bcc7a introduced bug which caused ext4_statfs() to
-miscalculate the number of file system overhead blocks.  This causes
-the f_blocks field in the statfs structure to be larger than it should
-be.  This would in turn cause the "df" output to show the number of
-data blocks in the file system and the number of data blocks used to
-be larger than they should be.
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/bitmap.c |    4 -
- fs/ext4/ext4.h   |    4 +-
- fs/ext4/resize.c |    5 ++
- fs/ext4/super.c  |  174 ++++++++++++++++++++++++++++++++++++++----------------
- 4 files changed, 131 insertions(+), 56 deletions(-)
-
-diff --git a/fs/ext4/bitmap.c b/fs/ext4/bitmap.c
-index 012faaa..bbde5d5 100644
---- a/fs/ext4/bitmap.c
-+++ b/fs/ext4/bitmap.c
-@@ -11,8 +11,6 @@
- #include <linux/jbd2.h>
- #include "ext4.h"
- 
--#ifdef EXT4FS_DEBUG
--
- static const int nibblemap[] = {4, 3, 3, 2, 3, 2, 2, 1, 3, 2, 2, 1, 2, 1, 1, 0};
- 
- unsigned int ext4_count_free(char *bitmap, unsigned int numchars)
-@@ -25,5 +23,3 @@ unsigned int ext4_count_free(char *bitmap, unsigned int numchars)
- 	return sum;
- }
- 
--#endif  /*  EXT4FS_DEBUG  */
--
-diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h
-index 873897c..8cb184c 100644
---- a/fs/ext4/ext4.h
-+++ b/fs/ext4/ext4.h
-@@ -1123,8 +1123,7 @@ struct ext4_sb_info {
- 	unsigned long s_desc_per_block;	/* Number of group descriptors per block */
- 	ext4_group_t s_groups_count;	/* Number of groups in the fs */
- 	ext4_group_t s_blockfile_groups;/* Groups acceptable for non-extent files */
--	unsigned long s_overhead_last;  /* Last calculated overhead */
--	unsigned long s_blocks_last;    /* Last seen block count */
-+	unsigned long s_overhead;  /* # of fs overhead clusters */
- 	unsigned int s_cluster_ratio;	/* Number of blocks per cluster */
- 	unsigned int s_cluster_bits;	/* log2 of s_cluster_ratio */
- 	loff_t s_bitmap_maxbytes;	/* max bytes for bitmap files */
-@@ -1925,6 +1924,7 @@ extern int ext4_group_extend(struct super_block *sb,
- 				ext4_fsblk_t n_blocks_count);
- 
- /* super.c */
-+extern int ext4_calculate_overhead(struct super_block *sb);
- extern void *ext4_kvmalloc(size_t size, gfp_t flags);
- extern void *ext4_kvzalloc(size_t size, gfp_t flags);
- extern void ext4_kvfree(void *ptr);
-diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
-index 996780a..4eac337 100644
---- a/fs/ext4/resize.c
-+++ b/fs/ext4/resize.c
-@@ -952,6 +952,11 @@ int ext4_group_add(struct super_block *sb, struct ext4_new_group_data *input)
- 			   &sbi->s_flex_groups[flex_group].free_inodes);
- 	}
- 
-+	/*
-+	 * Update the fs overhead information
-+	 */
-+	ext4_calculate_overhead(sb);
-+
- 	ext4_handle_dirty_super(handle, sb);
- 
- exit_journal:
-diff --git a/fs/ext4/super.c b/fs/ext4/super.c
-index a93486e..a071348 100644
---- a/fs/ext4/super.c
-+++ b/fs/ext4/super.c
-@@ -3083,6 +3083,114 @@ static void ext4_destroy_lazyinit_thread(void)
- 	kthread_stop(ext4_lazyinit_task);
- }
- 
-+/*
-+ * Note: calculating the overhead so we can be compatible with
-+ * historical BSD practice is quite difficult in the face of
-+ * clusters/bigalloc.  This is because multiple metadata blocks from
-+ * different block group can end up in the same allocation cluster.
-+ * Calculating the exact overhead in the face of clustered allocation
-+ * requires either O(all block bitmaps) in memory or O(number of block
-+ * groups**2) in time.  We will still calculate the superblock for
-+ * older file systems --- and if we come across with a bigalloc file
-+ * system with zero in s_overhead_clusters the estimate will be close to
-+ * correct especially for very large cluster sizes --- but for newer
-+ * file systems, it's better to calculate this figure once at mkfs
-+ * time, and store it in the superblock.  If the superblock value is
-+ * present (even for non-bigalloc file systems), we will use it.
-+ */
-+static int count_overhead(struct super_block *sb, ext4_group_t grp,
-+			  char *buf)
-+{
-+	struct ext4_sb_info	*sbi = EXT4_SB(sb);
-+	struct ext4_group_desc	*gdp;
-+	ext4_fsblk_t		first_block, last_block, b;
-+	ext4_group_t		i, ngroups = ext4_get_groups_count(sb);
-+	int			s, j, count = 0;
-+
-+	first_block = le32_to_cpu(sbi->s_es->s_first_data_block) +
-+		(grp * EXT4_BLOCKS_PER_GROUP(sb));
-+	last_block = first_block + EXT4_BLOCKS_PER_GROUP(sb) - 1;
-+	for (i = 0; i < ngroups; i++) {
-+		gdp = ext4_get_group_desc(sb, i, NULL);
-+		b = ext4_block_bitmap(sb, gdp);
-+		if (b >= first_block && b <= last_block) {
-+			ext4_set_bit(EXT4_B2C(sbi, b - first_block), buf);
-+			count++;
-+		}
-+		b = ext4_inode_bitmap(sb, gdp);
-+		if (b >= first_block && b <= last_block) {
-+			ext4_set_bit(EXT4_B2C(sbi, b - first_block), buf);
-+			count++;
-+		}
-+		b = ext4_inode_table(sb, gdp);
-+		if (b >= first_block && b + sbi->s_itb_per_group <= last_block)
-+			for (j = 0; j < sbi->s_itb_per_group; j++, b++) {
-+				int c = EXT4_B2C(sbi, b - first_block);
-+				ext4_set_bit(c, buf);
-+				count++;
-+			}
-+		if (i != grp)
-+			continue;
-+		s = 0;
-+		if (ext4_bg_has_super(sb, grp)) {
-+			ext4_set_bit(s++, buf);
-+			count++;
-+		}
-+		for (j = ext4_bg_num_gdb(sb, grp); j > 0; j--) {
-+			ext4_set_bit(EXT4_B2C(sbi, s++), buf);
-+			count++;
-+		}
-+	}
-+	if (!count)
-+		return 0;
-+	return EXT4_CLUSTERS_PER_GROUP(sb) -
-+		ext4_count_free(buf, EXT4_CLUSTERS_PER_GROUP(sb) / 8);
-+}
-+
-+/*
-+ * Compute the overhead and stash it in sbi->s_overhead
-+ */
-+int ext4_calculate_overhead(struct super_block *sb)
-+{
-+	struct ext4_sb_info *sbi = EXT4_SB(sb);
-+	struct ext4_super_block *es = sbi->s_es;
-+	ext4_group_t i, ngroups = ext4_get_groups_count(sb);
-+	ext4_fsblk_t overhead = 0;
-+	char *buf = (char *) get_zeroed_page(GFP_KERNEL);
-+
-+	memset(buf, 0, PAGE_SIZE);
-+	if (!buf)
-+		return -ENOMEM;
-+
-+	/*
-+	 * Compute the overhead (FS structures).  This is constant
-+	 * for a given filesystem unless the number of block groups
-+	 * changes so we cache the previous value until it does.
-+	 */
-+
-+	/*
-+	 * All of the blocks before first_data_block are overhead
-+	 */
-+	overhead = EXT4_B2C(sbi, le32_to_cpu(es->s_first_data_block));
-+
-+	/*
-+	 * Add the overhead found in each block group
-+	 */
-+	for (i = 0; i < ngroups; i++) {
-+		int blks;
-+
-+		blks = count_overhead(sb, i, buf);
-+		overhead += blks;
-+		if (blks)
-+			memset(buf, 0, PAGE_SIZE);
-+		cond_resched();
-+	}
-+	sbi->s_overhead = overhead;
-+	smp_wmb();
-+	free_page((unsigned long) buf);
-+	return 0;
-+}
-+
- static int ext4_fill_super(struct super_block *sb, void *data, int silent)
- {
- 	char *orig_data = kstrdup(data, GFP_KERNEL);
-@@ -3695,6 +3803,18 @@ static int ext4_fill_super(struct super_block *sb, void *data, int silent)
- 
- no_journal:
- 	/*
-+	 * Get the # of file system overhead blocks from the
-+	 * superblock if present.
-+	 */
-+	if (es->s_overhead_clusters)
-+		sbi->s_overhead = le32_to_cpu(es->s_overhead_clusters);
-+	else {
-+		ret = ext4_calculate_overhead(sb);
-+		if (ret)
-+			goto failed_mount_wq;
-+	}
-+
-+	/*
- 	 * The maximum number of concurrent works can be high and
- 	 * concurrency isn't really necessary.  Limit it to 1.
- 	 */
-@@ -4568,67 +4688,21 @@ restore_opts:
- 	return err;
- }
- 
--/*
-- * Note: calculating the overhead so we can be compatible with
-- * historical BSD practice is quite difficult in the face of
-- * clusters/bigalloc.  This is because multiple metadata blocks from
-- * different block group can end up in the same allocation cluster.
-- * Calculating the exact overhead in the face of clustered allocation
-- * requires either O(all block bitmaps) in memory or O(number of block
-- * groups**2) in time.  We will still calculate the superblock for
-- * older file systems --- and if we come across with a bigalloc file
-- * system with zero in s_overhead_clusters the estimate will be close to
-- * correct especially for very large cluster sizes --- but for newer
-- * file systems, it's better to calculate this figure once at mkfs
-- * time, and store it in the superblock.  If the superblock value is
-- * present (even for non-bigalloc file systems), we will use it.
-- */
- static int ext4_statfs(struct dentry *dentry, struct kstatfs *buf)
- {
- 	struct super_block *sb = dentry->d_sb;
- 	struct ext4_sb_info *sbi = EXT4_SB(sb);
- 	struct ext4_super_block *es = sbi->s_es;
--	struct ext4_group_desc *gdp;
-+	ext4_fsblk_t overhead = 0;
- 	u64 fsid;
- 	s64 bfree;
- 
--	if (test_opt(sb, MINIX_DF)) {
--		sbi->s_overhead_last = 0;
--	} else if (es->s_overhead_clusters) {
--		sbi->s_overhead_last = le32_to_cpu(es->s_overhead_clusters);
--	} else if (sbi->s_blocks_last != ext4_blocks_count(es)) {
--		ext4_group_t i, ngroups = ext4_get_groups_count(sb);
--		ext4_fsblk_t overhead = 0;
--
--		/*
--		 * Compute the overhead (FS structures).  This is constant
--		 * for a given filesystem unless the number of block groups
--		 * changes so we cache the previous value until it does.
--		 */
--
--		/*
--		 * All of the blocks before first_data_block are
--		 * overhead
--		 */
--		overhead = EXT4_B2C(sbi, le32_to_cpu(es->s_first_data_block));
--
--		/*
--		 * Add the overhead found in each block group
--		 */
--		for (i = 0; i < ngroups; i++) {
--			gdp = ext4_get_group_desc(sb, i, NULL);
--			overhead += ext4_num_overhead_clusters(sb, i, gdp);
--			cond_resched();
--		}
--		sbi->s_overhead_last = overhead;
--		smp_wmb();
--		sbi->s_blocks_last = ext4_blocks_count(es);
--	}
-+	if (!test_opt(sb, MINIX_DF))
-+		overhead = sbi->s_overhead;
- 
- 	buf->f_type = EXT4_SUPER_MAGIC;
- 	buf->f_bsize = sb->s_blocksize;
--	buf->f_blocks = (ext4_blocks_count(es) -
--			 EXT4_C2B(sbi, sbi->s_overhead_last));
-+	buf->f_blocks = ext4_blocks_count(es) - EXT4_C2B(sbi, sbi->s_overhead);
- 	bfree = percpu_counter_sum_positive(&sbi->s_freeclusters_counter) -
- 		percpu_counter_sum_positive(&sbi->s_dirtyclusters_counter);
- 	/* prevent underflow in case that few free space is available */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0035-udf-Improve-table-length-check-to-avoid-possible-ove.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0035-udf-Improve-table-length-check-to-avoid-possible-ove.patch
deleted file mode 100644
index 2548a59..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0035-udf-Improve-table-length-check-to-avoid-possible-ove.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 27f12e5bea3378be70c81b258660fcaa44496cb4 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Tue, 10 Jul 2012 17:58:04 +0200
-Subject: [PATCH 35/73] udf: Improve table length check to avoid possible
- overflow
-
-commit 57b9655d01ef057a523e810d29c37ac09b80eead upstream.
-
-When a partition table length is corrupted to be close to 1 << 32, the
-check for its length may overflow on 32-bit systems and we will think
-the length is valid. Later on the kernel can crash trying to read beyond
-end of buffer. Fix the check to avoid possible overflow.
-
-Reported-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/udf/super.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/udf/super.c b/fs/udf/super.c
-index 270e135..516b7f0 100644
---- a/fs/udf/super.c
-+++ b/fs/udf/super.c
-@@ -1285,7 +1285,7 @@ static int udf_load_logicalvol(struct super_block *sb, sector_t block,
- 	BUG_ON(ident != TAG_IDENT_LVD);
- 	lvd = (struct logicalVolDesc *)bh->b_data;
- 	table_len = le32_to_cpu(lvd->mapTableLength);
--	if (sizeof(*lvd) + table_len > sb->s_blocksize) {
-+	if (table_len > sb->s_blocksize - sizeof(*lvd)) {
- 		udf_err(sb, "error loading logical volume descriptor: "
- 			"Partition table too long (%u > %lu)\n", table_len,
- 			sb->s_blocksize - sizeof(*lvd));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0036-powerpc-Add-memory-attribute-for-mfmsr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0036-powerpc-Add-memory-attribute-for-mfmsr.patch
deleted file mode 100644
index f631564..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0036-powerpc-Add-memory-attribute-for-mfmsr.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 3fed281f20c3b2cdfe1a1f087973b0c0e3b4cd05 Mon Sep 17 00:00:00 2001
-From: Tiejun Chen <tiejun.chen at windriver.com>
-Date: Wed, 11 Jul 2012 14:22:46 +1000
-Subject: [PATCH 36/73] powerpc: Add "memory" attribute for mfmsr()
-
-commit b416c9a10baae6a177b4f9ee858b8d309542fbef upstream.
-
-Add "memory" attribute in inline assembly language as a compiler
-barrier to make sure 4.6.x GCC don't reorder mfmsr().
-
-Signed-off-by: Tiejun Chen <tiejun.chen at windriver.com>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/powerpc/include/asm/reg.h |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/arch/powerpc/include/asm/reg.h b/arch/powerpc/include/asm/reg.h
-index 559da19..578e5a0 100644
---- a/arch/powerpc/include/asm/reg.h
-+++ b/arch/powerpc/include/asm/reg.h
-@@ -1016,7 +1016,8 @@
- /* Macros for setting and retrieving special purpose registers */
- #ifndef __ASSEMBLY__
- #define mfmsr()		({unsigned long rval; \
--			asm volatile("mfmsr %0" : "=r" (rval)); rval;})
-+			asm volatile("mfmsr %0" : "=r" (rval) : \
-+						: "memory"); rval;})
- #ifdef CONFIG_PPC_BOOK3S_64
- #define __mtmsrd(v, l)	asm volatile("mtmsrd %0," __stringify(l) \
- 				     : : "r" (v) : "memory")
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0037-mwifiex-correction-in-mcs-index-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0037-mwifiex-correction-in-mcs-index-check.patch
deleted file mode 100644
index 5934302..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0037-mwifiex-correction-in-mcs-index-check.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 10c6ca210b55595833c5b18def07f077947fa88d Mon Sep 17 00:00:00 2001
-From: Amitkumar Karwar <akarwar at marvell.com>
-Date: Wed, 11 Jul 2012 18:12:57 -0700
-Subject: [PATCH 37/73] mwifiex: correction in mcs index check
-
-commit fe020120cb863ba918c6d603345342a880272c4d upstream.
-
-mwifiex driver supports 2x2 chips as well. Hence valid mcs values
-are 0 to 15. The check for mcs index is corrected in this patch.
-
-For example: if 40MHz is enabled and mcs index is 11, "iw link"
-command would show "tx bitrate: 108.0 MBit/s" without this patch.
-Now it shows "tx bitrate: 108.0 MBit/s MCS 11 40Mhz" with the patch.
-
-Signed-off-by: Amitkumar Karwar <akarwar at marvell.com>
-Signed-off-by: Bing Zhao <bzhao at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/mwifiex/cfg80211.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/mwifiex/cfg80211.c b/drivers/net/wireless/mwifiex/cfg80211.c
-index 01dcb1a..727c129 100644
---- a/drivers/net/wireless/mwifiex/cfg80211.c
-+++ b/drivers/net/wireless/mwifiex/cfg80211.c
-@@ -545,9 +545,9 @@ mwifiex_dump_station_info(struct mwifiex_private *priv,
- 
- 	/*
- 	 * Bit 0 in tx_htinfo indicates that current Tx rate is 11n rate. Valid
--	 * MCS index values for us are 0 to 7.
-+	 * MCS index values for us are 0 to 15.
- 	 */
--	if ((priv->tx_htinfo & BIT(0)) && (priv->tx_rate < 8)) {
-+	if ((priv->tx_htinfo & BIT(0)) && (priv->tx_rate < 16)) {
- 		sinfo->txrate.mcs = priv->tx_rate;
- 		sinfo->txrate.flags |= RATE_INFO_FLAGS_MCS;
- 		/* 40MHz rate */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0038-USB-option-Ignore-ZTE-Vodafone-K3570-71-net-interfac.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0038-USB-option-Ignore-ZTE-Vodafone-K3570-71-net-interfac.patch
deleted file mode 100644
index 34b5fe5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0038-USB-option-Ignore-ZTE-Vodafone-K3570-71-net-interfac.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 06c8b933f7ff30224a62e134cf8e5f19ee9f4975 Mon Sep 17 00:00:00 2001
-From: "Andrew Bird (Sphere Systems)" <ajb at spheresystems.co.uk>
-Date: Sun, 25 Mar 2012 00:10:28 +0000
-Subject: [PATCH 38/73] USB: option: Ignore ZTE (Vodafone) K3570/71 net
- interfaces
-
-commit f264ddea0109bf7ce8aab920d64a637e830ace5b upstream.
-
-These interfaces need to be handled by QMI/WWAN driver
-
-Signed-off-by: Andrew Bird <ajb at spheresystems.co.uk>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 5971c95..6d97d2f 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -932,8 +932,10 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff),
- 	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff),
-+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff),
-+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1057, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1058, 0xff, 0xff, 0xff) },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0039-USB-option-add-ZTE-MF821D.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0039-USB-option-add-ZTE-MF821D.patch
deleted file mode 100644
index a9a075d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0039-USB-option-add-ZTE-MF821D.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From da7998e23b2a112f2134db067ed2b1d5593113fb Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Thu, 12 Jul 2012 12:37:32 +0200
-Subject: [PATCH 39/73] USB: option: add ZTE MF821D
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 09110529780890804b22e997ae6b4fe3f0b3b158 upstream.
-
-Sold by O2 (telefonica germany) under the name "LTE4G"
-
-Tested-by: Thomas Schäfer <tschaefer at t-online.de>
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/serial/option.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 6d97d2f..d89aac1 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -932,6 +932,8 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0167, 0xff, 0xff, 0xff),
- 	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0326, 0xff, 0xff, 0xff),
-+	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff),
- 	  .driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0040-target-Add-generation-of-LOGICAL-BLOCK-ADDRESS-OUT-O.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0040-target-Add-generation-of-LOGICAL-BLOCK-ADDRESS-OUT-O.patch
deleted file mode 100644
index 9d17084..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0040-target-Add-generation-of-LOGICAL-BLOCK-ADDRESS-OUT-O.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 5d43c09da407f76f1dae2ec3ca08cb62051dea6f Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 15:34:21 -0700
-Subject: [PATCH 40/73] target: Add generation of LOGICAL BLOCK ADDRESS OUT OF
- RANGE
-
-commit e2397c704429025bc6b331a970f699e52f34283e upstream.
-
-Many SCSI commands are defined to return a CHECK CONDITION / ILLEGAL
-REQUEST with ASC set to LOGICAL BLOCK ADDRESS OUT OF RANGE if the
-initiator sends a command that accesses a too-big LBA.  Add an enum
-value and case entries so that target code can return this status.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_transport.c |   10 ++++++++++
- include/target/target_core_base.h      |    1 +
- 2 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index 5660916..94c03d2 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -1820,6 +1820,7 @@ static void transport_generic_request_failure(struct se_cmd *cmd)
- 	case TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE:
- 	case TCM_UNKNOWN_MODE_PAGE:
- 	case TCM_WRITE_PROTECTED:
-+	case TCM_ADDRESS_OUT_OF_RANGE:
- 	case TCM_CHECK_CONDITION_ABORT_CMD:
- 	case TCM_CHECK_CONDITION_UNIT_ATTENTION:
- 	case TCM_CHECK_CONDITION_NOT_READY:
-@@ -4496,6 +4497,15 @@ int transport_send_check_condition_and_sense(
- 		/* WRITE PROTECTED */
- 		buffer[offset+SPC_ASC_KEY_OFFSET] = 0x27;
- 		break;
-+	case TCM_ADDRESS_OUT_OF_RANGE:
-+		/* CURRENT ERROR */
-+		buffer[offset] = 0x70;
-+		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
-+		/* ILLEGAL REQUEST */
-+		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
-+		/* LOGICAL BLOCK ADDRESS OUT OF RANGE */
-+		buffer[offset+SPC_ASC_KEY_OFFSET] = 0x21;
-+		break;
- 	case TCM_CHECK_CONDITION_UNIT_ATTENTION:
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
-diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
-index 94bbec3..6ee550e 100644
---- a/include/target/target_core_base.h
-+++ b/include/target/target_core_base.h
-@@ -157,6 +157,7 @@ enum tcm_sense_reason_table {
- 	TCM_CHECK_CONDITION_UNIT_ATTENTION	= 0x0e,
- 	TCM_CHECK_CONDITION_NOT_READY		= 0x0f,
- 	TCM_RESERVATION_CONFLICT		= 0x10,
-+	TCM_ADDRESS_OUT_OF_RANGE		= 0x11,
- };
- 
- struct se_obj {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0041-target-Add-range-checking-to-UNMAP-emulation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0041-target-Add-range-checking-to-UNMAP-emulation.patch
deleted file mode 100644
index 3240467..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0041-target-Add-range-checking-to-UNMAP-emulation.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 43b1ce67a53720ba82fbe5dbf0a323ae761368bb Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 15:34:22 -0700
-Subject: [PATCH 41/73] target: Add range checking to UNMAP emulation
-
-commit 2594e29865c291db162313187612cd9f14538f33 upstream.
-
-When processing an UNMAP command, we need to make sure that the number
-of blocks we're asked to UNMAP does not exceed our reported maximum
-number of blocks per UNMAP, and that the range of blocks we're
-unmapping doesn't go past the end of the device.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-[bwh: Backported to 3.2: adjust filename, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_cdb.c |   12 ++++++++++++
- 1 files changed, 12 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 93b9406..45a3ed4 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -1145,6 +1145,18 @@ int target_emulate_unmap(struct se_task *task)
- 		pr_debug("UNMAP: Using lba: %llu and range: %u\n",
- 				 (unsigned long long)lba, range);
- 
-+		if (range > dev->se_sub_dev->se_dev_attrib.max_unmap_lba_count) {
-+			cmd->scsi_sense_reason = TCM_INVALID_PARAMETER_LIST;
-+			ret = -EINVAL;
-+			goto err;
-+		}
-+
-+		if (lba + range > dev->transport->get_blocks(dev) + 1) {
-+			cmd->scsi_sense_reason = TCM_ADDRESS_OUT_OF_RANGE;
-+			ret = -EINVAL;
-+			goto err;
-+		}
-+
- 		ret = dev->transport->do_discard(dev, lba, range);
- 		if (ret < 0) {
- 			pr_err("blkdev_issue_discard() failed: %d\n",
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0042-target-Fix-reading-of-data-length-fields-for-UNMAP-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0042-target-Fix-reading-of-data-length-fields-for-UNMAP-c.patch
deleted file mode 100644
index 0102742..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0042-target-Fix-reading-of-data-length-fields-for-UNMAP-c.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From b31df389ada54f5b2725826cd8d9a13ace960168 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 15:34:23 -0700
-Subject: [PATCH 42/73] target: Fix reading of data length fields for UNMAP
- commands
-
-commit 1a5fa4576ec8a462313c7516b31d7453481ddbe8 upstream.
-
-The UNMAP DATA LENGTH and UNMAP BLOCK DESCRIPTOR DATA LENGTH fields
-are in the unmap descriptor (the payload transferred to our data out
-buffer), not in the CDB itself.  Read them from the correct place in
-target_emulated_unmap.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-[bwh: Backported to 3.2: adjust filename, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_cdb.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 45a3ed4..b1f5cf0 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -1114,7 +1114,6 @@ int target_emulate_unmap(struct se_task *task)
- 	struct se_cmd *cmd = task->task_se_cmd;
- 	struct se_device *dev = cmd->se_dev;
- 	unsigned char *buf, *ptr = NULL;
--	unsigned char *cdb = &cmd->t_task_cdb[0];
- 	sector_t lba;
- 	unsigned int size = cmd->data_length, range;
- 	int ret = 0, offset;
-@@ -1130,11 +1129,12 @@ int target_emulate_unmap(struct se_task *task)
- 	/* First UNMAP block descriptor starts at 8 byte offset */
- 	offset = 8;
- 	size -= 8;
--	dl = get_unaligned_be16(&cdb[0]);
--	bd_dl = get_unaligned_be16(&cdb[2]);
- 
- 	buf = transport_kmap_data_sg(cmd);
- 
-+	dl = get_unaligned_be16(&buf[0]);
-+	bd_dl = get_unaligned_be16(&buf[2]);
-+
- 	ptr = &buf[offset];
- 	pr_debug("UNMAP: Sub: %s Using dl: %hu bd_dl: %hu size: %hu"
- 		" ptr: %p\n", dev->transport->name, dl, bd_dl, size, ptr);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0043-target-Fix-possible-integer-underflow-in-UNMAP-emula.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0043-target-Fix-possible-integer-underflow-in-UNMAP-emula.patch
deleted file mode 100644
index 345d149..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0043-target-Fix-possible-integer-underflow-in-UNMAP-emula.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 8d14ccd4bd5dab58984030c13a71953d396e792d Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 15:34:24 -0700
-Subject: [PATCH 43/73] target: Fix possible integer underflow in UNMAP
- emulation
-
-commit b7fc7f3777582dea85156a821d78a522a0c083aa upstream.
-
-It's possible for an initiator to send us an UNMAP command with a
-descriptor that is less than 8 bytes; in that case it's really bad for
-us to set an unsigned int to that value, subtract 8 from it, and then
-use that as a limit for our loop (since the value will wrap around to
-a huge positive value).
-
-Fix this by making size be signed and only looping if size >= 16 (ie
-if we have at least a full descriptor available).
-
-Also remove offset as an obfuscated name for the constant 8.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-[bwh: Backported to 3.2: adjust filename, context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_cdb.c |   20 ++++++++++----------
- 1 files changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index b1f5cf0..00f0f7d 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -1115,9 +1115,10 @@ int target_emulate_unmap(struct se_task *task)
- 	struct se_device *dev = cmd->se_dev;
- 	unsigned char *buf, *ptr = NULL;
- 	sector_t lba;
--	unsigned int size = cmd->data_length, range;
--	int ret = 0, offset;
--	unsigned short dl, bd_dl;
-+	int size = cmd->data_length;
-+	u32 range;
-+	int ret = 0;
-+	int dl, bd_dl;
- 
- 	if (!dev->transport->do_discard) {
- 		pr_err("UNMAP emulation not supported for: %s\n",
-@@ -1126,20 +1127,19 @@ int target_emulate_unmap(struct se_task *task)
- 		return -ENOSYS;
- 	}
- 
--	/* First UNMAP block descriptor starts at 8 byte offset */
--	offset = 8;
--	size -= 8;
--
- 	buf = transport_kmap_data_sg(cmd);
- 
- 	dl = get_unaligned_be16(&buf[0]);
- 	bd_dl = get_unaligned_be16(&buf[2]);
- 
--	ptr = &buf[offset];
--	pr_debug("UNMAP: Sub: %s Using dl: %hu bd_dl: %hu size: %hu"
-+	size = min(size - 8, bd_dl);
-+
-+	/* First UNMAP block descriptor starts at 8 byte offset */
-+	ptr = &buf[8];
-+	pr_debug("UNMAP: Sub: %s Using dl: %u bd_dl: %u size: %u"
- 		" ptr: %p\n", dev->transport->name, dl, bd_dl, size, ptr);
- 
--	while (size) {
-+	while (size >= 16) {
- 		lba = get_unaligned_be64(&ptr[0]);
- 		range = get_unaligned_be32(&ptr[8]);
- 		pr_debug("UNMAP: Using lba: %llu and range: %u\n",
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0044-target-Check-number-of-unmap-descriptors-against-our.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0044-target-Check-number-of-unmap-descriptors-against-our.patch
deleted file mode 100644
index 64f87f3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0044-target-Check-number-of-unmap-descriptors-against-our.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 9e2f53ebf9ec64a0999669060222a8cbfae313b2 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 16 Jul 2012 15:34:25 -0700
-Subject: [PATCH 44/73] target: Check number of unmap descriptors against our
- limit
-
-commit 7409a6657aebf8be74c21d0eded80709b27275cb upstream.
-
-Fail UNMAP commands that have more than our reported limit on unmap
-descriptors.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/target_core_cdb.c |    5 +++++
- 1 files changed, 5 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 00f0f7d..717a8d4 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -1133,6 +1133,11 @@ int target_emulate_unmap(struct se_task *task)
- 	bd_dl = get_unaligned_be16(&buf[2]);
- 
- 	size = min(size - 8, bd_dl);
-+	if (size / 16 > dev->se_sub_dev->se_dev_attrib.max_unmap_block_desc_count) {
-+		cmd->scsi_sense_reason = TCM_INVALID_PARAMETER_LIST;
-+		ret = -EINVAL;
-+		goto err;
-+	}
- 
- 	/* First UNMAP block descriptor starts at 8 byte offset */
- 	ptr = &buf[8];
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0045-s390-idle-fix-sequence-handling-vs-cpu-hotplug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0045-s390-idle-fix-sequence-handling-vs-cpu-hotplug.patch
deleted file mode 100644
index 445cbc5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0045-s390-idle-fix-sequence-handling-vs-cpu-hotplug.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 9385ba7e09e3360516f2b3c78c7d8f233dd1119f Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <heiko.carstens at de.ibm.com>
-Date: Fri, 13 Jul 2012 15:45:33 +0200
-Subject: [PATCH 45/73] s390/idle: fix sequence handling vs cpu hotplug
-
-commit 0008204ffe85d23382d6fd0f971f3f0fbe70bae2 upstream.
-
-The s390 idle accounting code uses a sequence counter which gets used
-when the per cpu idle statistics get updated and read.
-
-One assumption on read access is that only when the sequence counter is
-even and did not change while reading all values the result is valid.
-On cpu hotplug however the per cpu data structure gets initialized via
-a cpu hotplug notifier on CPU_ONLINE.
-CPU_ONLINE however is too late, since the onlined cpu is already running
-and might access the per cpu data. Worst case is that the data structure
-gets initialized while an idle thread is updating its idle statistics.
-This will result in an uneven sequence counter after an update.
-
-As a result user space tools like top, which access /proc/stat in order
-to get idle stats, will busy loop waiting for the sequence counter to
-become even again, which will never happen until the queried cpu will
-update its idle statistics again. And even then the sequence counter
-will only have an even value for a couple of cpu cycles.
-
-Fix this by moving the initialization of the per cpu idle statistics
-to cpu_init(). I prefer that solution in favor of changing the
-notifier to CPU_UP_PREPARE, which would be a different solution to
-the problem.
-
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/kernel/processor.c |    2 ++
- arch/s390/kernel/smp.c       |    3 ---
- 2 files changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/arch/s390/kernel/processor.c b/arch/s390/kernel/processor.c
-index 6e0073e..07c7bf4 100644
---- a/arch/s390/kernel/processor.c
-+++ b/arch/s390/kernel/processor.c
-@@ -26,12 +26,14 @@ static DEFINE_PER_CPU(struct cpuid, cpu_id);
- void __cpuinit cpu_init(void)
- {
- 	struct cpuid *id = &per_cpu(cpu_id, smp_processor_id());
-+	struct s390_idle_data *idle = &__get_cpu_var(s390_idle);
- 
- 	get_cpu_id(id);
- 	atomic_inc(&init_mm.mm_count);
- 	current->active_mm = &init_mm;
- 	BUG_ON(current->mm);
- 	enter_lazy_tlb(&init_mm, current);
-+	memset(idle, 0, sizeof(*idle));
- }
- 
- /*
-diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
-index 3ea8728..1df64a8 100644
---- a/arch/s390/kernel/smp.c
-+++ b/arch/s390/kernel/smp.c
-@@ -1020,14 +1020,11 @@ static int __cpuinit smp_cpu_notify(struct notifier_block *self,
- 	unsigned int cpu = (unsigned int)(long)hcpu;
- 	struct cpu *c = &per_cpu(cpu_devices, cpu);
- 	struct sys_device *s = &c->sysdev;
--	struct s390_idle_data *idle;
- 	int err = 0;
- 
- 	switch (action) {
- 	case CPU_ONLINE:
- 	case CPU_ONLINE_FROZEN:
--		idle = &per_cpu(s390_idle, cpu);
--		memset(idle, 0, sizeof(struct s390_idle_data));
- 		err = sysfs_create_group(&s->kobj, &cpu_online_attr_group);
- 		break;
- 	case CPU_DEAD:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0046-rtlwifi-rtl8192de-Fix-phy-based-version-calculation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0046-rtlwifi-rtl8192de-Fix-phy-based-version-calculation.patch
deleted file mode 100644
index e52f4d7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0046-rtlwifi-rtl8192de-Fix-phy-based-version-calculation.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From fccb712c5ec20bb379e0c57e6a8b286e117ee2db Mon Sep 17 00:00:00 2001
-From: Forest Bond <forest.bond at rapidrollout.com>
-Date: Fri, 13 Jul 2012 12:26:06 -0400
-Subject: [PATCH 46/73] rtlwifi: rtl8192de: Fix phy-based version calculation
-
-commit f1b00f4dab29b57bdf1bc03ef12020b280fd2a72 upstream.
-
-Commit d83579e2a50ac68389e6b4c58b845c702cf37516 incorporated some
-changes from the vendor driver that made it newly important that the
-calculated hardware version correctly include the CHIP_92D bit, as all
-of the IS_92D_* macros were changed to depend on it.  However, this bit
-was being unset for dual-mac, dual-phy devices.  The vendor driver
-behavior was modified to not do this, but unfortunately this change was
-not picked up along with the others.  This caused scanning in the 2.4GHz
-band to be broken, and possibly other bugs as well.
-
-This patch brings the version calculation logic in parity with the
-vendor driver in this regard, and in doing so fixes the regression.
-However, the version calculation code in general continues to be largely
-incoherent and messy, and needs to be cleaned up.
-
-Signed-off-by: Forest Bond <forest.bond at rapidrollout.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rtlwifi/rtl8192de/phy.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
-index 2cf4c5f..de9faa9 100644
---- a/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
-+++ b/drivers/net/wireless/rtlwifi/rtl8192de/phy.c
-@@ -3462,21 +3462,21 @@ void rtl92d_phy_config_macphymode_info(struct ieee80211_hw *hw)
- 	switch (rtlhal->macphymode) {
- 	case DUALMAC_SINGLEPHY:
- 		rtlphy->rf_type = RF_2T2R;
--		rtlhal->version |= CHIP_92D_SINGLEPHY;
-+		rtlhal->version |= RF_TYPE_2T2R;
- 		rtlhal->bandset = BAND_ON_BOTH;
- 		rtlhal->current_bandtype = BAND_ON_2_4G;
- 		break;
- 
- 	case SINGLEMAC_SINGLEPHY:
- 		rtlphy->rf_type = RF_2T2R;
--		rtlhal->version |= CHIP_92D_SINGLEPHY;
-+		rtlhal->version |= RF_TYPE_2T2R;
- 		rtlhal->bandset = BAND_ON_BOTH;
- 		rtlhal->current_bandtype = BAND_ON_2_4G;
- 		break;
- 
- 	case DUALMAC_DUALPHY:
- 		rtlphy->rf_type = RF_1T1R;
--		rtlhal->version &= (~CHIP_92D_SINGLEPHY);
-+		rtlhal->version &= RF_TYPE_1T1R;
- 		/* Now we let MAC0 run on 5G band. */
- 		if (rtlhal->interfaceindex == 0) {
- 			rtlhal->bandset = BAND_ON_5G;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0047-workqueue-perform-cpu-down-operations-from-low-prior.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0047-workqueue-perform-cpu-down-operations-from-low-prior.patch
deleted file mode 100644
index 772eafb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0047-workqueue-perform-cpu-down-operations-from-low-prior.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From 47ba7731c120a3ed09336d18b85493bd85d926f2 Mon Sep 17 00:00:00 2001
-From: Tejun Heo <tj at kernel.org>
-Date: Tue, 17 Jul 2012 12:39:26 -0700
-Subject: [PATCH 47/73] workqueue: perform cpu down operations from low
- priority cpu_notifier()
-
-commit 6575820221f7a4dd6eadecf7bf83cdd154335eda upstream.
-
-Currently, all workqueue cpu hotplug operations run off
-CPU_PRI_WORKQUEUE which is higher than normal notifiers.  This is to
-ensure that workqueue is up and running while bringing up a CPU before
-other notifiers try to use workqueue on the CPU.
-
-Per-cpu workqueues are supposed to remain working and bound to the CPU
-for normal CPU_DOWN_PREPARE notifiers.  This holds mostly true even
-with workqueue offlining running with higher priority because
-workqueue CPU_DOWN_PREPARE only creates a bound trustee thread which
-runs the per-cpu workqueue without concurrency management without
-explicitly detaching the existing workers.
-
-However, if the trustee needs to create new workers, it creates
-unbound workers which may wander off to other CPUs while
-CPU_DOWN_PREPARE notifiers are in progress.  Furthermore, if the CPU
-down is cancelled, the per-CPU workqueue may end up with workers which
-aren't bound to the CPU.
-
-While reliably reproducible with a convoluted artificial test-case
-involving scheduling and flushing CPU burning work items from CPU down
-notifiers, this isn't very likely to happen in the wild, and, even
-when it happens, the effects are likely to be hidden by the following
-successful CPU down.
-
-Fix it by using different priorities for up and down notifiers - high
-priority for up operations and low priority for down operations.
-
-Workqueue cpu hotplug operations will soon go through further cleanup.
-
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Acked-by: "Rafael J. Wysocki" <rjw at sisk.pl>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/cpu.h |    5 +++--
- kernel/workqueue.c  |   38 +++++++++++++++++++++++++++++++++++++-
- 2 files changed, 40 insertions(+), 3 deletions(-)
-
-diff --git a/include/linux/cpu.h b/include/linux/cpu.h
-index 6cb60fd..c692acc 100644
---- a/include/linux/cpu.h
-+++ b/include/linux/cpu.h
-@@ -66,8 +66,9 @@ enum {
- 	/* migration should happen before other stuff but after perf */
- 	CPU_PRI_PERF		= 20,
- 	CPU_PRI_MIGRATION	= 10,
--	/* prepare workqueues for other notifiers */
--	CPU_PRI_WORKQUEUE	= 5,
-+	/* bring up workqueues before normal notifiers and down after */
-+	CPU_PRI_WORKQUEUE_UP	= 5,
-+	CPU_PRI_WORKQUEUE_DOWN	= -5,
- };
- 
- #define CPU_ONLINE		0x0002 /* CPU (unsigned)v is up */
-diff --git a/kernel/workqueue.c b/kernel/workqueue.c
-index 7947e16..a650bee 100644
---- a/kernel/workqueue.c
-+++ b/kernel/workqueue.c
-@@ -3586,6 +3586,41 @@ static int __devinit workqueue_cpu_callback(struct notifier_block *nfb,
- 	return notifier_from_errno(0);
- }
- 
-+/*
-+ * Workqueues should be brought up before normal priority CPU notifiers.
-+ * This will be registered high priority CPU notifier.
-+ */
-+static int __devinit workqueue_cpu_up_callback(struct notifier_block *nfb,
-+					       unsigned long action,
-+					       void *hcpu)
-+{
-+	switch (action & ~CPU_TASKS_FROZEN) {
-+	case CPU_UP_PREPARE:
-+	case CPU_UP_CANCELED:
-+	case CPU_DOWN_FAILED:
-+	case CPU_ONLINE:
-+		return workqueue_cpu_callback(nfb, action, hcpu);
-+	}
-+	return NOTIFY_OK;
-+}
-+
-+/*
-+ * Workqueues should be brought down after normal priority CPU notifiers.
-+ * This will be registered as low priority CPU notifier.
-+ */
-+static int __devinit workqueue_cpu_down_callback(struct notifier_block *nfb,
-+						 unsigned long action,
-+						 void *hcpu)
-+{
-+	switch (action & ~CPU_TASKS_FROZEN) {
-+	case CPU_DOWN_PREPARE:
-+	case CPU_DYING:
-+	case CPU_POST_DEAD:
-+		return workqueue_cpu_callback(nfb, action, hcpu);
-+	}
-+	return NOTIFY_OK;
-+}
-+
- #ifdef CONFIG_SMP
- 
- struct work_for_cpu {
-@@ -3779,7 +3814,8 @@ static int __init init_workqueues(void)
- 	unsigned int cpu;
- 	int i;
- 
--	cpu_notifier(workqueue_cpu_callback, CPU_PRI_WORKQUEUE);
-+	cpu_notifier(workqueue_cpu_up_callback, CPU_PRI_WORKQUEUE_UP);
-+	cpu_notifier(workqueue_cpu_down_callback, CPU_PRI_WORKQUEUE_DOWN);
- 
- 	/* initialize gcwqs */
- 	for_each_gcwq_cpu(cpu) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0048-ALSA-hda-Add-support-for-Realtek-ALC282.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0048-ALSA-hda-Add-support-for-Realtek-ALC282.patch
deleted file mode 100644
index cabf58f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0048-ALSA-hda-Add-support-for-Realtek-ALC282.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1438a7338f8ea623f9cfc21c6201ad48273caf12 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Wed, 18 Jul 2012 07:38:46 +0200
-Subject: [PATCH 48/73] ALSA: hda - Add support for Realtek ALC282
-
-commit 4e01ec636e64707d202a1ca21a47bbc6d53085b7 upstream.
-
-This codec has a separate dmic path (separate dmic only ADC),
-and thus it looks mostly like ALC275.
-
-BugLink: https://bugs.launchpad.net/bugs/1025377
-Tested-by: Ray Chen <ray.chen at canonical.com>
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 5f096a5..191fd78 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5989,6 +5989,7 @@ static const struct hda_codec_preset snd_hda_preset_realtek[] = {
- 	{ .id = 0x10ec0275, .name = "ALC275", .patch = patch_alc269 },
- 	{ .id = 0x10ec0276, .name = "ALC276", .patch = patch_alc269 },
- 	{ .id = 0x10ec0280, .name = "ALC280", .patch = patch_alc269 },
-+	{ .id = 0x10ec0282, .name = "ALC282", .patch = patch_alc269 },
- 	{ .id = 0x10ec0861, .rev = 0x100340, .name = "ALC660",
- 	  .patch = patch_alc861 },
- 	{ .id = 0x10ec0660, .name = "ALC660-VD", .patch = patch_alc861vd },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0049-iommu-amd-Fix-hotplug-with-iommu-pt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0049-iommu-amd-Fix-hotplug-with-iommu-pt.patch
deleted file mode 100644
index 879ea87..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0049-iommu-amd-Fix-hotplug-with-iommu-pt.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 05f62dd05ef7d48fc3f9a778a5413ebcc8dc681f Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Thu, 19 Jul 2012 13:42:54 +0200
-Subject: [PATCH 49/73] iommu/amd: Fix hotplug with iommu=pt
-
-commit 2c9195e990297068d0f1f1bd8e2f1d09538009da upstream.
-
-This did not work because devices are not put into the
-pt_domain. Fix this.
-
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-[bwh: Backported to 3.2: do not use iommu_dev_data::passthrough]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/iommu/amd_iommu.c |   10 ++++++----
- 1 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index a1b8caa..0f074e0 100644
---- a/drivers/iommu/amd_iommu.c
-+++ b/drivers/iommu/amd_iommu.c
-@@ -1865,6 +1865,11 @@ static int device_change_notifier(struct notifier_block *nb,
- 
- 		iommu_init_device(dev);
- 
-+		if (iommu_pass_through) {
-+			attach_device(dev, pt_domain);
-+			break;
-+		}
-+
- 		domain = domain_for_device(dev);
- 
- 		/* allocate a protection domain if a device is added */
-@@ -1880,10 +1885,7 @@ static int device_change_notifier(struct notifier_block *nb,
- 		list_add_tail(&dma_domain->list, &iommu_pd_list);
- 		spin_unlock_irqrestore(&iommu_pd_list_lock, flags);
- 
--		if (!iommu_pass_through)
--			dev->archdata.dma_ops = &amd_iommu_dma_ops;
--		else
--			dev->archdata.dma_ops = &nommu_dma_ops;
-+		dev->archdata.dma_ops = &amd_iommu_dma_ops;
- 
- 		break;
- 	case BUS_NOTIFY_DEL_DEVICE:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0050-drm-radeon-Try-harder-to-avoid-HW-cursor-ending-on-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0050-drm-radeon-Try-harder-to-avoid-HW-cursor-ending-on-a.patch
deleted file mode 100644
index 7b500ec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0050-drm-radeon-Try-harder-to-avoid-HW-cursor-ending-on-a.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From c5666fb07de9499337e69ebde032d9cbcad7e418 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer at amd.com>
-Date: Tue, 17 Jul 2012 19:02:09 +0200
-Subject: [PATCH 50/73] drm/radeon: Try harder to avoid HW cursor ending on a
- multiple of 128 columns.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit f60ec4c7df043df81e62891ac45383d012afe0da upstream.
-
-This could previously fail if either of the enabled displays was using a
-horizontal resolution that is a multiple of 128, and only the leftmost column
-of the cursor was (supposed to be) visible at the right edge of that display.
-
-The solution is to move the cursor one pixel to the left in that case.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=33183
-
-Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/radeon_cursor.c |    8 +++++++-
- 1 files changed, 7 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_cursor.c b/drivers/gpu/drm/radeon/radeon_cursor.c
-index 986d608..2132109 100644
---- a/drivers/gpu/drm/radeon/radeon_cursor.c
-+++ b/drivers/gpu/drm/radeon/radeon_cursor.c
-@@ -257,8 +257,14 @@ int radeon_crtc_cursor_move(struct drm_crtc *crtc,
- 				if (!(cursor_end & 0x7f))
- 					w--;
- 			}
--			if (w <= 0)
-+			if (w <= 0) {
- 				w = 1;
-+				cursor_end = x - xorigin + w;
-+				if (!(cursor_end & 0x7f)) {
-+					x--;
-+					WARN_ON_ONCE(x < 0);
-+				}
-+			}
- 		}
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0051-ALSA-hda-Turn-on-PIN_OUT-from-hdmi-playback-prepare.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0051-ALSA-hda-Turn-on-PIN_OUT-from-hdmi-playback-prepare.patch
deleted file mode 100644
index fce7514..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0051-ALSA-hda-Turn-on-PIN_OUT-from-hdmi-playback-prepare.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From d9c222f79d4fa6da0c113afe452968a2f0d226f4 Mon Sep 17 00:00:00 2001
-From: Dylan Reid <dgreid at chromium.org>
-Date: Thu, 19 Jul 2012 17:52:58 -0700
-Subject: [PATCH 51/73] ALSA: hda - Turn on PIN_OUT from hdmi playback
- prepare.
-
-commit 9e76e6d031482194a5b24d8e9ab88063fbd6b4b5 upstream.
-
-Turn on the pin widget's PIN_OUT bit from playback prepare. The pin is
-enabled in open, but is disabled in hdmi_init_pin which is called during
-system resume.  This causes a system suspend/resume during playback to
-mute HDMI/DP. Enabling the pin in prepare instead of open allows calling
-snd_pcm_prepare after a system resume to restore audio.
-
-Signed-off-by: Dylan Reid <dgreid at chromium.org>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_hdmi.c |   12 ++++++------
- 1 files changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/sound/pci/hda/patch_hdmi.c b/sound/pci/hda/patch_hdmi.c
-index c505fd5..c119f33 100644
---- a/sound/pci/hda/patch_hdmi.c
-+++ b/sound/pci/hda/patch_hdmi.c
-@@ -868,7 +868,6 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
- 	struct hdmi_spec_per_pin *per_pin;
- 	struct hdmi_eld *eld;
- 	struct hdmi_spec_per_cvt *per_cvt = NULL;
--	int pinctl;
- 
- 	/* Validate hinfo */
- 	pin_idx = hinfo_to_pin_index(spec, hinfo);
-@@ -904,11 +903,6 @@ static int hdmi_pcm_open(struct hda_pcm_stream *hinfo,
- 	snd_hda_codec_write(codec, per_pin->pin_nid, 0,
- 			    AC_VERB_SET_CONNECT_SEL,
- 			    mux_idx);
--	pinctl = snd_hda_codec_read(codec, per_pin->pin_nid, 0,
--				    AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
--	snd_hda_codec_write(codec, per_pin->pin_nid, 0,
--			    AC_VERB_SET_PIN_WIDGET_CONTROL,
--			    pinctl | PIN_OUT);
- 	snd_hda_spdif_ctls_assign(codec, pin_idx, per_cvt->cvt_nid);
- 
- 	/* Initially set the converter's capabilities */
-@@ -1147,11 +1141,17 @@ static int generic_hdmi_playback_pcm_prepare(struct hda_pcm_stream *hinfo,
- 	struct hdmi_spec *spec = codec->spec;
- 	int pin_idx = hinfo_to_pin_index(spec, hinfo);
- 	hda_nid_t pin_nid = spec->pins[pin_idx].pin_nid;
-+	int pinctl;
- 
- 	hdmi_set_channel_count(codec, cvt_nid, substream->runtime->channels);
- 
- 	hdmi_setup_audio_infoframe(codec, pin_idx, substream);
- 
-+	pinctl = snd_hda_codec_read(codec, pin_nid, 0,
-+				    AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
-+	snd_hda_codec_write(codec, pin_nid, 0,
-+			    AC_VERB_SET_PIN_WIDGET_CONTROL, pinctl | PIN_OUT);
-+
- 	return hdmi_setup_stream(codec, cvt_nid, pin_nid, stream_tag, format);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0052-block-add-blk_queue_dead.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0052-block-add-blk_queue_dead.patch
deleted file mode 100644
index d9de19d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0052-block-add-blk_queue_dead.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 964e5928138f09dc58d9d507ce51a6adccfdb7e0 Mon Sep 17 00:00:00 2001
-From: Tejun Heo <tj at kernel.org>
-Date: Wed, 14 Dec 2011 00:33:37 +0100
-Subject: [PATCH 52/73] block: add blk_queue_dead()
-
-commit 34f6055c80285e4efb3f602a9119db75239744dc upstream.
-
-There are a number of QUEUE_FLAG_DEAD tests.  Add blk_queue_dead()
-macro and use it.
-
-This patch doesn't introduce any functional difference.
-
-Signed-off-by: Tejun Heo <tj at kernel.org>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- block/blk-core.c       |    6 +++---
- block/blk-exec.c       |    2 +-
- block/blk-sysfs.c      |    4 ++--
- block/blk-throttle.c   |    4 ++--
- block/blk.h            |    2 +-
- include/linux/blkdev.h |    1 +
- 6 files changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/block/blk-core.c b/block/blk-core.c
-index 15de223..49d9e91 100644
---- a/block/blk-core.c
-+++ b/block/blk-core.c
-@@ -607,7 +607,7 @@ EXPORT_SYMBOL(blk_init_allocated_queue);
- 
- int blk_get_queue(struct request_queue *q)
- {
--	if (likely(!test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) {
-+	if (likely(!blk_queue_dead(q))) {
- 		kobject_get(&q->kobj);
- 		return 0;
- 	}
-@@ -754,7 +754,7 @@ static struct request *get_request(struct request_queue *q, int rw_flags,
- 	const bool is_sync = rw_is_sync(rw_flags) != 0;
- 	int may_queue;
- 
--	if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
-+	if (unlikely(blk_queue_dead(q)))
- 		return NULL;
- 
- 	may_queue = elv_may_queue(q, rw_flags);
-@@ -874,7 +874,7 @@ static struct request *get_request_wait(struct request_queue *q, int rw_flags,
- 		struct io_context *ioc;
- 		struct request_list *rl = &q->rq;
- 
--		if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
-+		if (unlikely(blk_queue_dead(q)))
- 			return NULL;
- 
- 		prepare_to_wait_exclusive(&rl->wait[is_sync], &wait,
-diff --git a/block/blk-exec.c b/block/blk-exec.c
-index a1ebceb..6053285 100644
---- a/block/blk-exec.c
-+++ b/block/blk-exec.c
-@@ -50,7 +50,7 @@ void blk_execute_rq_nowait(struct request_queue *q, struct gendisk *bd_disk,
- {
- 	int where = at_head ? ELEVATOR_INSERT_FRONT : ELEVATOR_INSERT_BACK;
- 
--	if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) {
-+	if (unlikely(blk_queue_dead(q))) {
- 		rq->errors = -ENXIO;
- 		if (rq->end_io)
- 			rq->end_io(rq, rq->errors);
-diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c
-index e7f9f65..f0b2ca8 100644
---- a/block/blk-sysfs.c
-+++ b/block/blk-sysfs.c
-@@ -425,7 +425,7 @@ queue_attr_show(struct kobject *kobj, struct attribute *attr, char *page)
- 	if (!entry->show)
- 		return -EIO;
- 	mutex_lock(&q->sysfs_lock);
--	if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)) {
-+	if (blk_queue_dead(q)) {
- 		mutex_unlock(&q->sysfs_lock);
- 		return -ENOENT;
- 	}
-@@ -447,7 +447,7 @@ queue_attr_store(struct kobject *kobj, struct attribute *attr,
- 
- 	q = container_of(kobj, struct request_queue, kobj);
- 	mutex_lock(&q->sysfs_lock);
--	if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)) {
-+	if (blk_queue_dead(q)) {
- 		mutex_unlock(&q->sysfs_lock);
- 		return -ENOENT;
- 	}
-diff --git a/block/blk-throttle.c b/block/blk-throttle.c
-index 4553245..5eed6a7 100644
---- a/block/blk-throttle.c
-+++ b/block/blk-throttle.c
-@@ -310,7 +310,7 @@ static struct throtl_grp * throtl_get_tg(struct throtl_data *td)
- 	struct request_queue *q = td->queue;
- 
- 	/* no throttling for dead queue */
--	if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags)))
-+	if (unlikely(blk_queue_dead(q)))
- 		return NULL;
- 
- 	rcu_read_lock();
-@@ -335,7 +335,7 @@ static struct throtl_grp * throtl_get_tg(struct throtl_data *td)
- 	spin_lock_irq(q->queue_lock);
- 
- 	/* Make sure @q is still alive */
--	if (unlikely(test_bit(QUEUE_FLAG_DEAD, &q->queue_flags))) {
-+	if (unlikely(blk_queue_dead(q))) {
- 		kfree(tg);
- 		return NULL;
- 	}
-diff --git a/block/blk.h b/block/blk.h
-index 3f6551b..e38691d 100644
---- a/block/blk.h
-+++ b/block/blk.h
-@@ -85,7 +85,7 @@ static inline struct request *__elv_next_request(struct request_queue *q)
- 			q->flush_queue_delayed = 1;
- 			return NULL;
- 		}
--		if (test_bit(QUEUE_FLAG_DEAD, &q->queue_flags) ||
-+		if (unlikely(blk_queue_dead(q)) ||
- 		    !q->elevator->ops->elevator_dispatch_fn(q, 0))
- 			return NULL;
- 	}
-diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
-index 0ed1eb0..ff039f0 100644
---- a/include/linux/blkdev.h
-+++ b/include/linux/blkdev.h
-@@ -481,6 +481,7 @@ static inline void queue_flag_clear(unsigned int flag, struct request_queue *q)
- 
- #define blk_queue_tagged(q)	test_bit(QUEUE_FLAG_QUEUED, &(q)->queue_flags)
- #define blk_queue_stopped(q)	test_bit(QUEUE_FLAG_STOPPED, &(q)->queue_flags)
-+#define blk_queue_dead(q)	test_bit(QUEUE_FLAG_DEAD, &(q)->queue_flags)
- #define blk_queue_nomerges(q)	test_bit(QUEUE_FLAG_NOMERGES, &(q)->queue_flags)
- #define blk_queue_noxmerges(q)	\
- 	test_bit(QUEUE_FLAG_NOXMERGES, &(q)->queue_flags)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0053-Fix-device-removal-NULL-pointer-dereference.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0053-Fix-device-removal-NULL-pointer-dereference.patch
deleted file mode 100644
index 6cf674e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0053-Fix-device-removal-NULL-pointer-dereference.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 494efb27e48c4689686b72d1490e9f44fcbd08e8 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche at acm.org>
-Date: Fri, 29 Jun 2012 15:33:22 +0000
-Subject: [PATCH 53/73] Fix device removal NULL pointer dereference
-
-commit 67bd94130015c507011af37858989b199c52e1de upstream.
-
-Use blk_queue_dead() to test whether the queue is dead instead
-of !sdev. Since scsi_prep_fn() may be invoked concurrently with
-__scsi_remove_device(), keep the queuedata (sdev) pointer in
-__scsi_remove_device(). This patch fixes a kernel oops that
-can be triggered by USB device removal. See also
-http://www.spinics.net/lists/linux-scsi/msg56254.html.
-
-Other changes included in this patch:
-- Swap the blk_cleanup_queue() and kfree() calls in
-  scsi_host_dev_release() to make that code easier to grasp.
-- Remove the queue dead check from scsi_run_queue() since the
-  queue state can change anyway at any point in that function
-  where the queue lock is not held.
-- Remove the queue dead check from the start of scsi_request_fn()
-  since it is redundant with the scsi_device_online() check.
-
-Reported-by: Jun'ichi Nomura <j-nomura at ce.jp.nec.com>
-Signed-off-by: Bart Van Assche <bvanassche at acm.org>
-Reviewed-by: Mike Christie <michaelc at cs.wisc.edu>
-Reviewed-by: Tejun Heo <tj at kernel.org>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/hosts.c      |    7 ++++---
- drivers/scsi/scsi_lib.c   |   32 ++++----------------------------
- drivers/scsi/scsi_priv.h  |    1 -
- drivers/scsi/scsi_sysfs.c |    5 +----
- 4 files changed, 9 insertions(+), 36 deletions(-)
-
-diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c
-index 351dc0b..ee77a58 100644
---- a/drivers/scsi/hosts.c
-+++ b/drivers/scsi/hosts.c
-@@ -287,6 +287,7 @@ static void scsi_host_dev_release(struct device *dev)
- 	struct Scsi_Host *shost = dev_to_shost(dev);
- 	struct device *parent = dev->parent;
- 	struct request_queue *q;
-+	void *queuedata;
- 
- 	scsi_proc_hostdir_rm(shost->hostt);
- 
-@@ -296,9 +297,9 @@ static void scsi_host_dev_release(struct device *dev)
- 		destroy_workqueue(shost->work_q);
- 	q = shost->uspace_req_q;
- 	if (q) {
--		kfree(q->queuedata);
--		q->queuedata = NULL;
--		scsi_free_queue(q);
-+		queuedata = q->queuedata;
-+		blk_cleanup_queue(q);
-+		kfree(queuedata);
- 	}
- 
- 	scsi_destroy_command_freelist(shost);
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index f0ab58e..4f68ba6 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -406,10 +406,6 @@ static void scsi_run_queue(struct request_queue *q)
- 	LIST_HEAD(starved_list);
- 	unsigned long flags;
- 
--	/* if the device is dead, sdev will be NULL, so no queue to run */
--	if (!sdev)
--		return;
--
- 	shost = sdev->host;
- 	if (scsi_target(sdev)->single_lun)
- 		scsi_single_lun_run(sdev);
-@@ -1374,16 +1370,16 @@ static inline int scsi_host_queue_ready(struct request_queue *q,
-  * may be changed after request stacking drivers call the function,
-  * regardless of taking lock or not.
-  *
-- * When scsi can't dispatch I/Os anymore and needs to kill I/Os
-- * (e.g. !sdev), scsi needs to return 'not busy'.
-- * Otherwise, request stacking drivers may hold requests forever.
-+ * When scsi can't dispatch I/Os anymore and needs to kill I/Os scsi
-+ * needs to return 'not busy'. Otherwise, request stacking drivers
-+ * may hold requests forever.
-  */
- static int scsi_lld_busy(struct request_queue *q)
- {
- 	struct scsi_device *sdev = q->queuedata;
- 	struct Scsi_Host *shost;
- 
--	if (!sdev)
-+	if (blk_queue_dead(q))
- 		return 0;
- 
- 	shost = sdev->host;
-@@ -1494,12 +1490,6 @@ static void scsi_request_fn(struct request_queue *q)
- 	struct scsi_cmnd *cmd;
- 	struct request *req;
- 
--	if (!sdev) {
--		while ((req = blk_peek_request(q)) != NULL)
--			scsi_kill_request(req, q);
--		return;
--	}
--
- 	if(!get_device(&sdev->sdev_gendev))
- 		/* We must be tearing the block queue down already */
- 		return;
-@@ -1701,20 +1691,6 @@ struct request_queue *scsi_alloc_queue(struct scsi_device *sdev)
- 	return q;
- }
- 
--void scsi_free_queue(struct request_queue *q)
--{
--	unsigned long flags;
--
--	WARN_ON(q->queuedata);
--
--	/* cause scsi_request_fn() to kill all non-finished requests */
--	spin_lock_irqsave(q->queue_lock, flags);
--	q->request_fn(q);
--	spin_unlock_irqrestore(q->queue_lock, flags);
--
--	blk_cleanup_queue(q);
--}
--
- /*
-  * Function:    scsi_block_requests()
-  *
-diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h
-index 5b475d0..d58adca 100644
---- a/drivers/scsi/scsi_priv.h
-+++ b/drivers/scsi/scsi_priv.h
-@@ -85,7 +85,6 @@ extern void scsi_next_command(struct scsi_cmnd *cmd);
- extern void scsi_io_completion(struct scsi_cmnd *, unsigned int);
- extern void scsi_run_host_queues(struct Scsi_Host *shost);
- extern struct request_queue *scsi_alloc_queue(struct scsi_device *sdev);
--extern void scsi_free_queue(struct request_queue *q);
- extern int scsi_init_queue(void);
- extern void scsi_exit_queue(void);
- struct request_queue;
-diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
-index 04c2a27..42c35ff 100644
---- a/drivers/scsi/scsi_sysfs.c
-+++ b/drivers/scsi/scsi_sysfs.c
-@@ -971,11 +971,8 @@ void __scsi_remove_device(struct scsi_device *sdev)
- 		sdev->host->hostt->slave_destroy(sdev);
- 	transport_destroy_device(dev);
- 
--	/* cause the request function to reject all I/O requests */
--	sdev->request_queue->queuedata = NULL;
--
- 	/* Freeing the queue signals to block that we're done */
--	scsi_free_queue(sdev->request_queue);
-+	blk_cleanup_queue(sdev->request_queue);
- 	put_device(dev);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0054-Avoid-dangling-pointer-in-scsi_requeue_command.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0054-Avoid-dangling-pointer-in-scsi_requeue_command.patch
deleted file mode 100644
index 98e6b5b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0054-Avoid-dangling-pointer-in-scsi_requeue_command.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From c24bb6a70695fb930fc0b976db55fad4334cd992 Mon Sep 17 00:00:00 2001
-From: Bart Van Assche <bvanassche at acm.org>
-Date: Fri, 29 Jun 2012 15:34:26 +0000
-Subject: [PATCH 54/73] Avoid dangling pointer in scsi_requeue_command()
-
-commit 940f5d47e2f2e1fa00443921a0abf4822335b54d upstream.
-
-When we call scsi_unprep_request() the command associated with the request
-gets destroyed and therefore drops its reference on the device.  If this was
-the only reference, the device may get released and we end up with a NULL
-pointer deref when we call blk_requeue_request.
-
-Reported-by: Mike Christie <michaelc at cs.wisc.edu>
-Signed-off-by: Bart Van Assche <bvanassche at acm.org>
-Reviewed-by: Mike Christie <michaelc at cs.wisc.edu>
-Reviewed-by: Tejun Heo <tj at kernel.org>
-[jejb: enhance commend and add commit log for stable]
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/scsi_lib.c |   11 +++++++++++
- 1 files changed, 11 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/scsi/scsi_lib.c b/drivers/scsi/scsi_lib.c
-index 4f68ba6..6c4b620 100644
---- a/drivers/scsi/scsi_lib.c
-+++ b/drivers/scsi/scsi_lib.c
-@@ -479,15 +479,26 @@ void scsi_requeue_run_queue(struct work_struct *work)
-  */
- static void scsi_requeue_command(struct request_queue *q, struct scsi_cmnd *cmd)
- {
-+	struct scsi_device *sdev = cmd->device;
- 	struct request *req = cmd->request;
- 	unsigned long flags;
- 
-+	/*
-+	 * We need to hold a reference on the device to avoid the queue being
-+	 * killed after the unlock and before scsi_run_queue is invoked which
-+	 * may happen because scsi_unprep_request() puts the command which
-+	 * releases its reference on the device.
-+	 */
-+	get_device(&sdev->sdev_gendev);
-+
- 	spin_lock_irqsave(q->queue_lock, flags);
- 	scsi_unprep_request(req);
- 	blk_requeue_request(q, req);
- 	spin_unlock_irqrestore(q->queue_lock, flags);
- 
- 	scsi_run_queue(q);
-+
-+	put_device(&sdev->sdev_gendev);
- }
- 
- void scsi_next_command(struct scsi_cmnd *cmd)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0055-fix-hot-unplug-vs-async-scan-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0055-fix-hot-unplug-vs-async-scan-race.patch
deleted file mode 100644
index 9d7c97a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0055-fix-hot-unplug-vs-async-scan-race.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From 04ed7d216271c757e1f14ff369f5aa1908f04189 Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Thu, 21 Jun 2012 23:47:28 -0700
-Subject: [PATCH 55/73] fix hot unplug vs async scan race
-
-commit 3b661a92e869ebe2358de8f4b3230ad84f7fce51 upstream.
-
-The following crash results from cases where the end_device has been
-removed before scsi_sysfs_add_sdev has had a chance to run.
-
- BUG: unable to handle kernel NULL pointer dereference at 0000000000000098
- IP: [<ffffffff8115e100>] sysfs_create_dir+0x32/0xb6
- ...
- Call Trace:
-  [<ffffffff8125e4a8>] kobject_add_internal+0x120/0x1e3
-  [<ffffffff81075149>] ? trace_hardirqs_on+0xd/0xf
-  [<ffffffff8125e641>] kobject_add_varg+0x41/0x50
-  [<ffffffff8125e70b>] kobject_add+0x64/0x66
-  [<ffffffff8131122b>] device_add+0x12d/0x63a
-  [<ffffffff814b65ea>] ? _raw_spin_unlock_irqrestore+0x47/0x56
-  [<ffffffff8107de15>] ? module_refcount+0x89/0xa0
-  [<ffffffff8132f348>] scsi_sysfs_add_sdev+0x4e/0x28a
-  [<ffffffff8132dcbb>] do_scan_async+0x9c/0x145
-
-...teach scsi_sysfs_add_devices() to check for deleted devices() before
-trying to add them, and teach scsi_remove_target() how to remove targets
-that have not been added via device_add().
-
-Reported-by: Dariusz Majchrzak <dariusz.majchrzak at intel.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/scsi_scan.c  |    3 +++
- drivers/scsi/scsi_sysfs.c |   41 ++++++++++++++++++++++++++---------------
- 2 files changed, 29 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
-index 6e7ea4a..a48b59c 100644
---- a/drivers/scsi/scsi_scan.c
-+++ b/drivers/scsi/scsi_scan.c
-@@ -1710,6 +1710,9 @@ static void scsi_sysfs_add_devices(struct Scsi_Host *shost)
- {
- 	struct scsi_device *sdev;
- 	shost_for_each_device(sdev, shost) {
-+		/* target removed before the device could be added */
-+		if (sdev->sdev_state == SDEV_DEL)
-+			continue;
- 		if (!scsi_host_scan_allowed(shost) ||
- 		    scsi_sysfs_add_sdev(sdev) != 0)
- 			__scsi_remove_device(sdev);
-diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
-index 42c35ff..bb7c482 100644
---- a/drivers/scsi/scsi_sysfs.c
-+++ b/drivers/scsi/scsi_sysfs.c
-@@ -997,7 +997,6 @@ static void __scsi_remove_target(struct scsi_target *starget)
- 	struct scsi_device *sdev;
- 
- 	spin_lock_irqsave(shost->host_lock, flags);
--	starget->reap_ref++;
-  restart:
- 	list_for_each_entry(sdev, &shost->__devices, siblings) {
- 		if (sdev->channel != starget->channel ||
-@@ -1011,14 +1010,6 @@ static void __scsi_remove_target(struct scsi_target *starget)
- 		goto restart;
- 	}
- 	spin_unlock_irqrestore(shost->host_lock, flags);
--	scsi_target_reap(starget);
--}
--
--static int __remove_child (struct device * dev, void * data)
--{
--	if (scsi_is_target_device(dev))
--		__scsi_remove_target(to_scsi_target(dev));
--	return 0;
- }
- 
- /**
-@@ -1031,14 +1022,34 @@ static int __remove_child (struct device * dev, void * data)
-  */
- void scsi_remove_target(struct device *dev)
- {
--	if (scsi_is_target_device(dev)) {
--		__scsi_remove_target(to_scsi_target(dev));
--		return;
-+	struct Scsi_Host *shost = dev_to_shost(dev->parent);
-+	struct scsi_target *starget, *found;
-+	unsigned long flags;
-+
-+ restart:
-+	found = NULL;
-+	spin_lock_irqsave(shost->host_lock, flags);
-+	list_for_each_entry(starget, &shost->__targets, siblings) {
-+		if (starget->state == STARGET_DEL)
-+			continue;
-+		if (starget->dev.parent == dev || &starget->dev == dev) {
-+			found = starget;
-+			found->reap_ref++;
-+			break;
-+		}
- 	}
-+	spin_unlock_irqrestore(shost->host_lock, flags);
- 
--	get_device(dev);
--	device_for_each_child(dev, NULL, __remove_child);
--	put_device(dev);
-+	if (found) {
-+		__scsi_remove_target(found);
-+		scsi_target_reap(found);
-+		/* in the case where @dev has multiple starget children,
-+		 * continue removing.
-+		 *
-+		 * FIXME: does such a case exist?
-+		 */
-+		goto restart;
-+	}
- }
- EXPORT_SYMBOL(scsi_remove_target);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0056-fix-eh-wakeup-scsi_schedule_eh-vs-scsi_restart_opera.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0056-fix-eh-wakeup-scsi_schedule_eh-vs-scsi_restart_opera.patch
deleted file mode 100644
index a202864..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0056-fix-eh-wakeup-scsi_schedule_eh-vs-scsi_restart_opera.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 3936af31e073e2eb55d8d2eee05ec10999f0dacc Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Thu, 21 Jun 2012 23:25:32 -0700
-Subject: [PATCH 56/73] fix eh wakeup (scsi_schedule_eh vs
- scsi_restart_operations)
-
-commit 57fc2e335fd3c2f898ee73570dc81426c28dc7b4 upstream.
-
-Rapid ata hotplug on a libsas controller results in cases where libsas
-is waiting indefinitely on eh to perform an ata probe.
-
-A race exists between scsi_schedule_eh() and scsi_restart_operations()
-in the case when scsi_restart_operations() issues i/o to other devices
-in the sas domain.  When this happens the host state transitions from
-SHOST_RECOVERY (set by scsi_schedule_eh) back to SHOST_RUNNING and
-->host_busy is non-zero so we put the eh thread to sleep even though
-->host_eh_scheduled is active.
-
-Before putting the error handler to sleep we need to check if the
-host_state needs to return to SHOST_RECOVERY for another trip through
-eh.  Since i/o that is released by scsi_restart_operations has been
-blocked for at least one eh cycle, this implementation allows those
-i/o's to run before another eh cycle starts to discourage hung task
-timeouts.
-
-Reported-by: Tom Jackson <thomas.p.jackson at intel.com>
-Tested-by: Tom Jackson <thomas.p.jackson at intel.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/scsi_error.c |   14 ++++++++++++++
- 1 files changed, 14 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c
-index dc6131e..456b131 100644
---- a/drivers/scsi/scsi_error.c
-+++ b/drivers/scsi/scsi_error.c
-@@ -1673,6 +1673,20 @@ static void scsi_restart_operations(struct Scsi_Host *shost)
- 	 * requests are started.
- 	 */
- 	scsi_run_host_queues(shost);
-+
-+	/*
-+	 * if eh is active and host_eh_scheduled is pending we need to re-run
-+	 * recovery.  we do this check after scsi_run_host_queues() to allow
-+	 * everything pent up since the last eh run a chance to make forward
-+	 * progress before we sync again.  Either we'll immediately re-run
-+	 * recovery or scsi_device_unbusy() will wake us again when these
-+	 * pending commands complete.
-+	 */
-+	spin_lock_irqsave(shost->host_lock, flags);
-+	if (shost->host_eh_scheduled)
-+		if (scsi_host_set_state(shost, SHOST_RECOVERY))
-+			WARN_ON(scsi_host_set_state(shost, SHOST_CANCEL_RECOVERY));
-+	spin_unlock_irqrestore(shost->host_lock, flags);
- }
- 
- /**
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0057-libsas-continue-revalidation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0057-libsas-continue-revalidation.patch
deleted file mode 100644
index 2a24209..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0057-libsas-continue-revalidation.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 07925ac535d9c4f774b0ba817fece3557670013f Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Thu, 21 Jun 2012 23:36:15 -0700
-Subject: [PATCH 57/73] libsas: continue revalidation
-
-commit 26f2f199ff150d8876b2641c41e60d1c92d2fb81 upstream.
-
-Continue running revalidation until no more broadcast devices are
-discovered.  Fixes cases where re-discovery completes too early in a
-domain with multiple expanders with pending re-discovery events.
-Servicing BCNs can get backed up behind error recovery.
-
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/libsas/sas_expander.c |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
-index e48ba4b..6330110 100644
---- a/drivers/scsi/libsas/sas_expander.c
-+++ b/drivers/scsi/libsas/sas_expander.c
-@@ -1983,9 +1983,7 @@ int sas_ex_revalidate_domain(struct domain_device *port_dev)
- 	struct domain_device *dev = NULL;
- 
- 	res = sas_find_bcast_dev(port_dev, &dev);
--	if (res)
--		goto out;
--	if (dev) {
-+	while (res == 0 && dev) {
- 		struct expander_device *ex = &dev->ex_dev;
- 		int i = 0, phy_id;
- 
-@@ -1997,8 +1995,10 @@ int sas_ex_revalidate_domain(struct domain_device *port_dev)
- 			res = sas_rediscover(dev, phy_id);
- 			i = phy_id + 1;
- 		} while (i < ex->num_phys);
-+
-+		dev = NULL;
-+		res = sas_find_bcast_dev(port_dev, &dev);
- 	}
--out:
- 	return res;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0058-libsas-fix-sas_discover_devices-return-code-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0058-libsas-fix-sas_discover_devices-return-code-handling.patch
deleted file mode 100644
index 4542c15..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0058-libsas-fix-sas_discover_devices-return-code-handling.patch
+++ /dev/null
@@ -1,128 +0,0 @@
-From 61141b84f7a92caf6a6670396f9b2dec5345bc0e Mon Sep 17 00:00:00 2001
-From: Dan Williams <dan.j.williams at intel.com>
-Date: Thu, 21 Jun 2012 23:36:20 -0700
-Subject: [PATCH 58/73] libsas: fix sas_discover_devices return code handling
-
-commit b17caa174a7e1fd2e17b26e210d4ee91c4c28b37 upstream.
-
-commit 198439e4 [SCSI] libsas: do not set res = 0 in sas_ex_discover_dev()
-commit 19252de6 [SCSI] libsas: fix wide port hotplug issues
-
-The above commits seem to have confused the return value of
-sas_ex_discover_dev which is non-zero on failure and
-sas_ex_join_wide_port which just indicates short circuiting discovery on
-already established ports.  The result is random discovery failures
-depending on configuration.
-
-Calls to sas_ex_join_wide_port are the source of the trouble as its
-return value is errantly assigned to 'res'.  Convert it to bool and stop
-returning its result up the stack.
-
-Tested-by: Dan Melnic <dan.melnic at amd.com>
-Reported-by: Dan Melnic <dan.melnic at amd.com>
-Signed-off-by: Dan Williams <dan.j.williams at intel.com>
-Reviewed-by: Jack Wang <jack_wang at usish.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/scsi/libsas/sas_expander.c |   39 +++++++++++------------------------
- 1 files changed, 12 insertions(+), 27 deletions(-)
-
-diff --git a/drivers/scsi/libsas/sas_expander.c b/drivers/scsi/libsas/sas_expander.c
-index 6330110..dbe3568 100644
---- a/drivers/scsi/libsas/sas_expander.c
-+++ b/drivers/scsi/libsas/sas_expander.c
-@@ -774,7 +774,7 @@ static struct domain_device *sas_ex_discover_end_dev(
- }
- 
- /* See if this phy is part of a wide port */
--static int sas_ex_join_wide_port(struct domain_device *parent, int phy_id)
-+static bool sas_ex_join_wide_port(struct domain_device *parent, int phy_id)
- {
- 	struct ex_phy *phy = &parent->ex_dev.ex_phy[phy_id];
- 	int i;
-@@ -790,11 +790,11 @@ static int sas_ex_join_wide_port(struct domain_device *parent, int phy_id)
- 			sas_port_add_phy(ephy->port, phy->phy);
- 			phy->port = ephy->port;
- 			phy->phy_state = PHY_DEVICE_DISCOVERED;
--			return 0;
-+			return true;
- 		}
- 	}
- 
--	return -ENODEV;
-+	return false;
- }
- 
- static struct domain_device *sas_ex_discover_expander(
-@@ -932,8 +932,7 @@ static int sas_ex_discover_dev(struct domain_device *dev, int phy_id)
- 		return res;
- 	}
- 
--	res = sas_ex_join_wide_port(dev, phy_id);
--	if (!res) {
-+	if (sas_ex_join_wide_port(dev, phy_id)) {
- 		SAS_DPRINTK("Attaching ex phy%d to wide port %016llx\n",
- 			    phy_id, SAS_ADDR(ex_phy->attached_sas_addr));
- 		return res;
-@@ -978,8 +977,7 @@ static int sas_ex_discover_dev(struct domain_device *dev, int phy_id)
- 			if (SAS_ADDR(ex->ex_phy[i].attached_sas_addr) ==
- 			    SAS_ADDR(child->sas_addr)) {
- 				ex->ex_phy[i].phy_state= PHY_DEVICE_DISCOVERED;
--				res = sas_ex_join_wide_port(dev, i);
--				if (!res)
-+				if (sas_ex_join_wide_port(dev, i))
- 					SAS_DPRINTK("Attaching ex phy%d to wide port %016llx\n",
- 						    i, SAS_ADDR(ex->ex_phy[i].attached_sas_addr));
- 
-@@ -1849,32 +1847,20 @@ static int sas_discover_new(struct domain_device *dev, int phy_id)
- {
- 	struct ex_phy *ex_phy = &dev->ex_dev.ex_phy[phy_id];
- 	struct domain_device *child;
--	bool found = false;
--	int res, i;
-+	int res;
- 
- 	SAS_DPRINTK("ex %016llx phy%d new device attached\n",
- 		    SAS_ADDR(dev->sas_addr), phy_id);
- 	res = sas_ex_phy_discover(dev, phy_id);
- 	if (res)
--		goto out;
--	/* to support the wide port inserted */
--	for (i = 0; i < dev->ex_dev.num_phys; i++) {
--		struct ex_phy *ex_phy_temp = &dev->ex_dev.ex_phy[i];
--		if (i == phy_id)
--			continue;
--		if (SAS_ADDR(ex_phy_temp->attached_sas_addr) ==
--		    SAS_ADDR(ex_phy->attached_sas_addr)) {
--			found = true;
--			break;
--		}
--	}
--	if (found) {
--		sas_ex_join_wide_port(dev, phy_id);
-+		return res;
-+
-+	if (sas_ex_join_wide_port(dev, phy_id))
- 		return 0;
--	}
-+
- 	res = sas_ex_discover_devices(dev, phy_id);
--	if (!res)
--		goto out;
-+	if (res)
-+		return res;
- 	list_for_each_entry(child, &dev->ex_dev.children, siblings) {
- 		if (SAS_ADDR(child->sas_addr) ==
- 		    SAS_ADDR(ex_phy->attached_sas_addr)) {
-@@ -1884,7 +1870,6 @@ static int sas_discover_new(struct domain_device *dev, int phy_id)
- 			break;
- 		}
- 	}
--out:
- 	return res;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0059-iscsi-target-Drop-bogus-struct-file-usage-for-iSCSI-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0059-iscsi-target-Drop-bogus-struct-file-usage-for-iSCSI-.patch
deleted file mode 100644
index cfe9c56..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0059-iscsi-target-Drop-bogus-struct-file-usage-for-iSCSI-.patch
+++ /dev/null
@@ -1,230 +0,0 @@
-From ea954b6e038224e5946f09b1a359d19e672cde3a Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at ZenIV.linux.org.uk>
-Date: Sat, 21 Jul 2012 08:55:18 +0100
-Subject: [PATCH 59/73] iscsi-target: Drop bogus struct file usage for
- iSCSI/SCTP
-
-commit bf6932f44a7b3fa7e2246a8b18a44670e5eab6c2 upstream.
-
-From Al Viro:
-
-	BTW, speaking of struct file treatment related to sockets -
-        there's this piece of code in iscsi:
-        /*
-         * The SCTP stack needs struct socket->file.
-         */
-        if ((np->np_network_transport == ISCSI_SCTP_TCP) ||
-            (np->np_network_transport == ISCSI_SCTP_UDP)) {
-                if (!new_sock->file) {
-                        new_sock->file = kzalloc(
-                                        sizeof(struct file), GFP_KERNEL);
-
-For one thing, as far as I can see it'not true - sctp does *not* depend on
-socket->file being non-NULL; it does, in one place, check socket->file->f_flags
-for O_NONBLOCK, but there it treats NULL socket->file as "flag not set".
-Which is the case here anyway - the fake struct file created in
-__iscsi_target_login_thread() (and in iscsi_target_setup_login_socket(), with
-the same excuse) do *not* get that flag set.
-
-Moreover, it's a bloody serious violation of a bunch of asserts in VFS;
-all struct file instances should come from filp_cachep, via get_empty_filp()
-(or alloc_file(), which is a wrapper for it).  FWIW, I'm very tempted to
-do this and be done with the entire mess:
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Cc: Andy Grover <agrover at redhat.com>
-Cc: Hannes Reinecke <hare at suse.de>
-Cc: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/target/iscsi/iscsi_target.c       |   22 +---------
- drivers/target/iscsi/iscsi_target_core.h  |    2 -
- drivers/target/iscsi/iscsi_target_login.c |   60 +---------------------------
- 3 files changed, 6 insertions(+), 78 deletions(-)
-
-diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
-index 0842cc7..2ff1255 100644
---- a/drivers/target/iscsi/iscsi_target.c
-+++ b/drivers/target/iscsi/iscsi_target.c
-@@ -427,19 +427,8 @@ int iscsit_reset_np_thread(
- 
- int iscsit_del_np_comm(struct iscsi_np *np)
- {
--	if (!np->np_socket)
--		return 0;
--
--	/*
--	 * Some network transports allocate their own struct sock->file,
--	 * see  if we need to free any additional allocated resources.
--	 */
--	if (np->np_flags & NPF_SCTP_STRUCT_FILE) {
--		kfree(np->np_socket->file);
--		np->np_socket->file = NULL;
--	}
--
--	sock_release(np->np_socket);
-+	if (np->np_socket)
-+		sock_release(np->np_socket);
- 	return 0;
- }
- 
-@@ -4105,13 +4094,8 @@ int iscsit_close_connection(
- 	kfree(conn->conn_ops);
- 	conn->conn_ops = NULL;
- 
--	if (conn->sock) {
--		if (conn->conn_flags & CONNFLAG_SCTP_STRUCT_FILE) {
--			kfree(conn->sock->file);
--			conn->sock->file = NULL;
--		}
-+	if (conn->sock)
- 		sock_release(conn->sock);
--	}
- 	conn->thread_set = NULL;
- 
- 	pr_debug("Moving to TARG_CONN_STATE_FREE.\n");
-diff --git a/drivers/target/iscsi/iscsi_target_core.h b/drivers/target/iscsi/iscsi_target_core.h
-index 7da2d6a..0f68197 100644
---- a/drivers/target/iscsi/iscsi_target_core.h
-+++ b/drivers/target/iscsi/iscsi_target_core.h
-@@ -224,7 +224,6 @@ enum iscsi_timer_flags_table {
- /* Used for struct iscsi_np->np_flags */
- enum np_flags_table {
- 	NPF_IP_NETWORK		= 0x00,
--	NPF_SCTP_STRUCT_FILE	= 0x01 /* Bugfix */
- };
- 
- /* Used for struct iscsi_np->np_thread_state */
-@@ -511,7 +510,6 @@ struct iscsi_conn {
- 	u16			local_port;
- 	int			net_size;
- 	u32			auth_id;
--#define CONNFLAG_SCTP_STRUCT_FILE			0x01
- 	u32			conn_flags;
- 	/* Used for iscsi_tx_login_rsp() */
- 	u32			login_itt;
-diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
-index bd2adec..2ec5339 100644
---- a/drivers/target/iscsi/iscsi_target_login.c
-+++ b/drivers/target/iscsi/iscsi_target_login.c
-@@ -793,22 +793,6 @@ int iscsi_target_setup_login_socket(
- 	}
- 	np->np_socket = sock;
- 	/*
--	 * The SCTP stack needs struct socket->file.
--	 */
--	if ((np->np_network_transport == ISCSI_SCTP_TCP) ||
--	    (np->np_network_transport == ISCSI_SCTP_UDP)) {
--		if (!sock->file) {
--			sock->file = kzalloc(sizeof(struct file), GFP_KERNEL);
--			if (!sock->file) {
--				pr_err("Unable to allocate struct"
--						" file for SCTP\n");
--				ret = -ENOMEM;
--				goto fail;
--			}
--			np->np_flags |= NPF_SCTP_STRUCT_FILE;
--		}
--	}
--	/*
- 	 * Setup the np->np_sockaddr from the passed sockaddr setup
- 	 * in iscsi_target_configfs.c code..
- 	 */
-@@ -857,21 +841,15 @@ int iscsi_target_setup_login_socket(
- 
- fail:
- 	np->np_socket = NULL;
--	if (sock) {
--		if (np->np_flags & NPF_SCTP_STRUCT_FILE) {
--			kfree(sock->file);
--			sock->file = NULL;
--		}
--
-+	if (sock)
- 		sock_release(sock);
--	}
- 	return ret;
- }
- 
- static int __iscsi_target_login_thread(struct iscsi_np *np)
- {
- 	u8 buffer[ISCSI_HDR_LEN], iscsi_opcode, zero_tsih = 0;
--	int err, ret = 0, ip_proto, sock_type, set_sctp_conn_flag, stop;
-+	int err, ret = 0, ip_proto, sock_type, stop;
- 	struct iscsi_conn *conn = NULL;
- 	struct iscsi_login *login;
- 	struct iscsi_portal_group *tpg = NULL;
-@@ -882,7 +860,6 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
- 	struct sockaddr_in6 sock_in6;
- 
- 	flush_signals(current);
--	set_sctp_conn_flag = 0;
- 	sock = np->np_socket;
- 	ip_proto = np->np_ip_proto;
- 	sock_type = np->np_sock_type;
-@@ -907,35 +884,12 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
- 		spin_unlock_bh(&np->np_thread_lock);
- 		goto out;
- 	}
--	/*
--	 * The SCTP stack needs struct socket->file.
--	 */
--	if ((np->np_network_transport == ISCSI_SCTP_TCP) ||
--	    (np->np_network_transport == ISCSI_SCTP_UDP)) {
--		if (!new_sock->file) {
--			new_sock->file = kzalloc(
--					sizeof(struct file), GFP_KERNEL);
--			if (!new_sock->file) {
--				pr_err("Unable to allocate struct"
--						" file for SCTP\n");
--				sock_release(new_sock);
--				/* Get another socket */
--				return 1;
--			}
--			set_sctp_conn_flag = 1;
--		}
--	}
--
- 	iscsi_start_login_thread_timer(np);
- 
- 	conn = kzalloc(sizeof(struct iscsi_conn), GFP_KERNEL);
- 	if (!conn) {
- 		pr_err("Could not allocate memory for"
- 			" new connection\n");
--		if (set_sctp_conn_flag) {
--			kfree(new_sock->file);
--			new_sock->file = NULL;
--		}
- 		sock_release(new_sock);
- 		/* Get another socket */
- 		return 1;
-@@ -945,9 +899,6 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
- 	conn->conn_state = TARG_CONN_STATE_FREE;
- 	conn->sock = new_sock;
- 
--	if (set_sctp_conn_flag)
--		conn->conn_flags |= CONNFLAG_SCTP_STRUCT_FILE;
--
- 	pr_debug("Moving to TARG_CONN_STATE_XPT_UP.\n");
- 	conn->conn_state = TARG_CONN_STATE_XPT_UP;
- 
-@@ -1195,13 +1146,8 @@ old_sess_out:
- 		iscsi_release_param_list(conn->param_list);
- 		conn->param_list = NULL;
- 	}
--	if (conn->sock) {
--		if (conn->conn_flags & CONNFLAG_SCTP_STRUCT_FILE) {
--			kfree(conn->sock->file);
--			conn->sock->file = NULL;
--		}
-+	if (conn->sock)
- 		sock_release(conn->sock);
--	}
- 	kfree(conn);
- 
- 	if (tpg) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0060-mmc-sdhci-pci-CaFe-has-broken-card-detection.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0060-mmc-sdhci-pci-CaFe-has-broken-card-detection.patch
deleted file mode 100644
index 22812ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0060-mmc-sdhci-pci-CaFe-has-broken-card-detection.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From eb0aa45b9b49d8daeef285f1c5bb0be392caaddf Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Tue, 3 Jul 2012 23:13:39 +0100
-Subject: [PATCH 60/73] mmc: sdhci-pci: CaFe has broken card detection
-
-commit 55fc05b7414274f17795cd0e8a3b1546f3649d5e upstream.
-
-At http://dev.laptop.org/ticket/11980 we have determined that the
-Marvell CaFe SDHCI controller reports bad card presence during
-resume. It reports that no card is present even when it is.
-This is a regression -- resume worked back around 2.6.37.
-
-Around 400ms after resuming, a "card inserted" interrupt is
-generated, at which point it starts reporting presence.
-
-Work around this hardware oddity by setting the
-SDHCI_QUIRK_BROKEN_CARD_DETECTION flag.
-Thanks to Chris Ball for helping with diagnosis.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-[stable@: please apply to 3.0+]
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mmc/host/sdhci-pci.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/mmc/host/sdhci-pci.c b/drivers/mmc/host/sdhci-pci.c
-index 6878a94..83b51b5 100644
---- a/drivers/mmc/host/sdhci-pci.c
-+++ b/drivers/mmc/host/sdhci-pci.c
-@@ -148,6 +148,7 @@ static const struct sdhci_pci_fixes sdhci_ene_714 = {
- static const struct sdhci_pci_fixes sdhci_cafe = {
- 	.quirks		= SDHCI_QUIRK_NO_SIMULT_VDD_AND_POWER |
- 			  SDHCI_QUIRK_NO_BUSY_IRQ |
-+			  SDHCI_QUIRK_BROKEN_CARD_DETECTION |
- 			  SDHCI_QUIRK_BROKEN_TIMEOUT_VAL,
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0061-ext4-don-t-let-i_reserved_meta_blocks-go-negative.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0061-ext4-don-t-let-i_reserved_meta_blocks-go-negative.patch
deleted file mode 100644
index 428571d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0061-ext4-don-t-let-i_reserved_meta_blocks-go-negative.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From a09474d4d4bba3e468ff96d826b90b5551f98111 Mon Sep 17 00:00:00 2001
-From: Brian Foster <bfoster at redhat.com>
-Date: Sun, 22 Jul 2012 23:59:40 -0400
-Subject: [PATCH 61/73] ext4: don't let i_reserved_meta_blocks go negative
-
-commit 97795d2a5b8d3c8dc4365d4bd3404191840453ba upstream.
-
-If we hit a condition where we have allocated metadata blocks that
-were not appropriately reserved, we risk underflow of
-ei->i_reserved_meta_blocks.  In turn, this can throw
-sbi->s_dirtyclusters_counter significantly out of whack and undermine
-the nondelalloc fallback logic in ext4_nonda_switch().  Warn if this
-occurs and set i_allocated_meta_blocks to avoid this problem.
-
-This condition is reproduced by xfstests 270 against ext2 with
-delalloc enabled:
-
-Mar 28 08:58:02 localhost kernel: [  171.526344] EXT4-fs (loop1): delayed block allocation failed for inode 14 at logical offset 64486 with max blocks 64 with error -28
-Mar 28 08:58:02 localhost kernel: [  171.526346] EXT4-fs (loop1): This should not happen!! Data will be lost
-
-270 ultimately fails with an inconsistent filesystem and requires an
-fsck to repair.  The cause of the error is an underflow in
-ext4_da_update_reserve_space() due to an unreserved meta block
-allocation.
-
-Signed-off-by: Brian Foster <bfoster at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/inode.c |    9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
-index d0dc109..03373c3 100644
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -277,6 +277,15 @@ void ext4_da_update_reserve_space(struct inode *inode,
- 		used = ei->i_reserved_data_blocks;
- 	}
- 
-+	if (unlikely(ei->i_allocated_meta_blocks > ei->i_reserved_meta_blocks)) {
-+		ext4_msg(inode->i_sb, KERN_NOTICE, "%s: ino %lu, allocated %d "
-+			 "with only %d reserved metadata blocks\n", __func__,
-+			 inode->i_ino, ei->i_allocated_meta_blocks,
-+			 ei->i_reserved_meta_blocks);
-+		WARN_ON(1);
-+		ei->i_allocated_meta_blocks = ei->i_reserved_meta_blocks;
-+	}
-+
- 	/* Update per-inode reservations */
- 	ei->i_reserved_data_blocks -= used;
- 	ei->i_reserved_meta_blocks -= ei->i_allocated_meta_blocks;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0062-ext4-undo-ext4_calc_metadata_amount-if-we-fail-to-cl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0062-ext4-undo-ext4_calc_metadata_amount-if-we-fail-to-cl.patch
deleted file mode 100644
index dac384a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0062-ext4-undo-ext4_calc_metadata_amount-if-we-fail-to-cl.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From f7aa52ca54cad12194d0c48a95c2d4ccdf487c6c Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Mon, 23 Jul 2012 00:00:20 -0400
-Subject: [PATCH 62/73] ext4: undo ext4_calc_metadata_amount if we fail to
- claim space
-
-commit 03179fe92318e7934c180d96f12eff2cb36ef7b6 upstream.
-
-The function ext4_calc_metadata_amount() has side effects, although
-it's not obvious from its function name.  So if we fail to claim
-space, regardless of whether we retry to claim the space again, or
-return an error, we need to undo these side effects.
-
-Otherwise we can end up incorrectly calculating the number of metadata
-blocks needed for the operation, which was responsible for an xfstests
-failure for test #271 when using an ext2 file system with delalloc
-enabled.
-
-Reported-by: Brian Foster <bfoster at redhat.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/ext4/inode.c |   32 +++++++++++++++++++++-----------
- 1 files changed, 21 insertions(+), 11 deletions(-)
-
-diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
-index 03373c3..b556994 100644
---- a/fs/ext4/inode.c
-+++ b/fs/ext4/inode.c
-@@ -1111,6 +1111,17 @@ static int ext4_da_reserve_space(struct inode *inode, ext4_lblk_t lblock)
- 	struct ext4_inode_info *ei = EXT4_I(inode);
- 	unsigned int md_needed;
- 	int ret;
-+	ext4_lblk_t save_last_lblock;
-+	int save_len;
-+
-+	/*
-+	 * We will charge metadata quota at writeout time; this saves
-+	 * us from metadata over-estimation, though we may go over by
-+	 * a small amount in the end.  Here we just reserve for data.
-+	 */
-+	ret = dquot_reserve_block(inode, EXT4_C2B(sbi, 1));
-+	if (ret)
-+		return ret;
- 
- 	/*
- 	 * recalculate the amount of metadata blocks to reserve
-@@ -1119,32 +1130,31 @@ static int ext4_da_reserve_space(struct inode *inode, ext4_lblk_t lblock)
- 	 */
- repeat:
- 	spin_lock(&ei->i_block_reservation_lock);
-+	/*
-+	 * ext4_calc_metadata_amount() has side effects, which we have
-+	 * to be prepared undo if we fail to claim space.
-+	 */
-+	save_len = ei->i_da_metadata_calc_len;
-+	save_last_lblock = ei->i_da_metadata_calc_last_lblock;
- 	md_needed = EXT4_NUM_B2C(sbi,
- 				 ext4_calc_metadata_amount(inode, lblock));
- 	trace_ext4_da_reserve_space(inode, md_needed);
--	spin_unlock(&ei->i_block_reservation_lock);
- 
- 	/*
--	 * We will charge metadata quota at writeout time; this saves
--	 * us from metadata over-estimation, though we may go over by
--	 * a small amount in the end.  Here we just reserve for data.
--	 */
--	ret = dquot_reserve_block(inode, EXT4_C2B(sbi, 1));
--	if (ret)
--		return ret;
--	/*
- 	 * We do still charge estimated metadata to the sb though;
- 	 * we cannot afford to run out of free blocks.
- 	 */
- 	if (ext4_claim_free_clusters(sbi, md_needed + 1, 0)) {
--		dquot_release_reservation_block(inode, EXT4_C2B(sbi, 1));
-+		ei->i_da_metadata_calc_len = save_len;
-+		ei->i_da_metadata_calc_last_lblock = save_last_lblock;
-+		spin_unlock(&ei->i_block_reservation_lock);
- 		if (ext4_should_retry_alloc(inode->i_sb, &retries)) {
- 			yield();
- 			goto repeat;
- 		}
-+		dquot_release_reservation_block(inode, EXT4_C2B(sbi, 1));
- 		return -ENOSPC;
- 	}
--	spin_lock(&ei->i_block_reservation_lock);
- 	ei->i_reserved_data_blocks++;
- 	ei->i_reserved_meta_blocks += md_needed;
- 	spin_unlock(&ei->i_block_reservation_lock);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch
deleted file mode 100644
index a1fc463..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 8fbf76d6e7e81a95a44e627e0c6dbeef231700f2 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Fri, 20 Jul 2012 17:29:34 +0100
-Subject: [PATCH 63/73] ASoC: dapm: Fix _PRE and _POST events for DAPM
- performance improvements
-
-commit 0ff97ebf0804d2e519d578fcb4db03f104d2ca8c upstream.
-
-Ever since the DAPM performance improvements we've been marking all widgets
-as not dirty after each DAPM run. Since _PRE and _POST events aren't part
-of the DAPM graph this has rendered them non-functional, they will never be
-marked dirty again and thus will never be run again.
-
-Fix this by skipping them when marking widgets as not dirty.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Acked-by: Liam Girdwood <lrg at ti.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/soc-dapm.c |   10 +++++++++-
- 1 files changed, 9 insertions(+), 1 deletions(-)
-
-diff --git a/sound/soc/soc-dapm.c b/sound/soc/soc-dapm.c
-index 90e93bf..0dc441c 100644
---- a/sound/soc/soc-dapm.c
-+++ b/sound/soc/soc-dapm.c
-@@ -1381,7 +1381,15 @@ static int dapm_power_widgets(struct snd_soc_dapm_context *dapm, int event)
- 	}
- 
- 	list_for_each_entry(w, &card->widgets, list) {
--		list_del_init(&w->dirty);
-+		switch (w->id) {
-+		case snd_soc_dapm_pre:
-+		case snd_soc_dapm_post:
-+			/* These widgets always need to be powered */
-+			break;
-+		default:
-+			list_del_init(&w->dirty);
-+			break;
-+		}
- 
- 		if (w->power) {
- 			d = w->dapm;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0064-locks-fix-checking-of-fcntl_setlease-argument.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0064-locks-fix-checking-of-fcntl_setlease-argument.patch
deleted file mode 100644
index 7296221..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0064-locks-fix-checking-of-fcntl_setlease-argument.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From fb13198419fd31d8cbe249d285abd4f69d2c4f6d Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at fieldses.org>
-Date: Mon, 23 Jul 2012 15:17:17 -0400
-Subject: [PATCH 64/73] locks: fix checking of fcntl_setlease argument
-
-commit 0ec4f431eb56d633da3a55da67d5c4b88886ccc7 upstream.
-
-The only checks of the long argument passed to fcntl(fd,F_SETLEASE,.)
-are done after converting the long to an int.  Thus some illegal values
-may be let through and cause problems in later code.
-
-[ They actually *don't* cause problems in mainline, as of Dave Jones's
-  commit 8d657eb3b438 "Remove easily user-triggerable BUG from
-  generic_setlease", but we should fix this anyway.  And this patch will
-  be necessary to fix real bugs on earlier kernels. ]
-
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/locks.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/fs/locks.c b/fs/locks.c
-index 6a64f15..fcc50ab 100644
---- a/fs/locks.c
-+++ b/fs/locks.c
-@@ -308,7 +308,7 @@ static int flock_make_lock(struct file *filp, struct file_lock **lock,
- 	return 0;
- }
- 
--static int assign_type(struct file_lock *fl, int type)
-+static int assign_type(struct file_lock *fl, long type)
- {
- 	switch (type) {
- 	case F_RDLCK:
-@@ -445,7 +445,7 @@ static const struct lock_manager_operations lease_manager_ops = {
- /*
-  * Initialize a lease, use the default lock manager operations
-  */
--static int lease_init(struct file *filp, int type, struct file_lock *fl)
-+static int lease_init(struct file *filp, long type, struct file_lock *fl)
-  {
- 	if (assign_type(fl, type) != 0)
- 		return -EINVAL;
-@@ -463,7 +463,7 @@ static int lease_init(struct file *filp, int type, struct file_lock *fl)
- }
- 
- /* Allocate a file_lock initialised to this type of lease */
--static struct file_lock *lease_alloc(struct file *filp, int type)
-+static struct file_lock *lease_alloc(struct file *filp, long type)
- {
- 	struct file_lock *fl = locks_alloc_lock();
- 	int error = -ENOMEM;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0065-ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0065-ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch
deleted file mode 100644
index 5fa53fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0065-ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 847ccb9086b1b76d8db67f37e36e909727c010cb Mon Sep 17 00:00:00 2001
-From: Lan Tianyu <tianyu.lan at intel.com>
-Date: Fri, 20 Jul 2012 13:29:16 +0800
-Subject: [PATCH 65/73] ACPI/AC: prevent OOPS on some boxes due to missing
- check power_supply_register() return value check
-
-commit f197ac13f6eeb351b31250b9ab7d0da17434ea36 upstream.
-
-In the ac.c, power_supply_register()'s return value is not checked.
-
-As a result, the driver's add() ops may return success
-even though the device failed to initialize.
-
-For example, some BIOS may describe two ACADs in the same DSDT.
-The second ACAD device will fail to register,
-but ACPI driver's add() ops returns sucessfully.
-The ACPI device will receive ACPI notification and cause OOPS.
-
-https://bugzilla.redhat.com/show_bug.cgi?id=772730
-
-Signed-off-by: Lan Tianyu <tianyu.lan at intel.com>
-Signed-off-by: Len Brown <len.brown at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/acpi/ac.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/acpi/ac.c b/drivers/acpi/ac.c
-index 6512b20..d1fcbc0 100644
---- a/drivers/acpi/ac.c
-+++ b/drivers/acpi/ac.c
-@@ -292,7 +292,9 @@ static int acpi_ac_add(struct acpi_device *device)
- 	ac->charger.properties = ac_props;
- 	ac->charger.num_properties = ARRAY_SIZE(ac_props);
- 	ac->charger.get_property = get_ac_property;
--	power_supply_register(&ac->device->dev, &ac->charger);
-+	result = power_supply_register(&ac->device->dev, &ac->charger);
-+	if (result)
-+		goto end;
- 
- 	printk(KERN_INFO PREFIX "%s [%s] (%s)\n",
- 	       acpi_device_name(device), acpi_device_bid(device),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0066-drm-radeon-fix-bo-creation-retry-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0066-drm-radeon-fix-bo-creation-retry-path.patch
deleted file mode 100644
index 065e87b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0066-drm-radeon-fix-bo-creation-retry-path.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 9fc722e4c6da369ecad425d55a4fe50c6dbd21d9 Mon Sep 17 00:00:00 2001
-From: Jerome Glisse <jglisse at redhat.com>
-Date: Thu, 12 Jul 2012 18:23:05 -0400
-Subject: [PATCH 66/73] drm/radeon: fix bo creation retry path
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit d1c7871ddb1f588b8eb35affd9ee1a3d5e11cd0c upstream.
-
-Retry label was at wrong place in function leading to memory
-leak.
-
-Signed-off-by: Jerome Glisse <jglisse at redhat.com>
-Reviewed-by: Michel Dänzer <michel.daenzer at amd.com>
-Reviewed-by: Christian König <christian.koenig at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/radeon_object.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_object.c b/drivers/gpu/drm/radeon/radeon_object.c
-index f3ae607..39497c7 100644
---- a/drivers/gpu/drm/radeon/radeon_object.c
-+++ b/drivers/gpu/drm/radeon/radeon_object.c
-@@ -117,7 +117,6 @@ int radeon_bo_create(struct radeon_device *rdev,
- 		return -ENOMEM;
- 	}
- 
--retry:
- 	bo = kzalloc(sizeof(struct radeon_bo), GFP_KERNEL);
- 	if (bo == NULL)
- 		return -ENOMEM;
-@@ -130,6 +129,8 @@ retry:
- 	bo->gem_base.driver_private = NULL;
- 	bo->surface_reg = -1;
- 	INIT_LIST_HEAD(&bo->list);
-+
-+retry:
- 	radeon_ttm_placement_from_domain(bo, domain);
- 	/* Kernel allocation are uninterruptible */
- 	mutex_lock(&rdev->vram_mutex);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0067-drm-radeon-fix-non-revealent-error-message.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0067-drm-radeon-fix-non-revealent-error-message.patch
deleted file mode 100644
index 85e0cad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0067-drm-radeon-fix-non-revealent-error-message.patch
+++ /dev/null
@@ -1,70 +0,0 @@
-From 0521c32992bd885e150c17f413200d82fa83911c Mon Sep 17 00:00:00 2001
-From: Jerome Glisse <jglisse at redhat.com>
-Date: Tue, 17 Jul 2012 17:17:16 -0400
-Subject: [PATCH 67/73] drm/radeon: fix non revealent error message
-
-commit 8d1c702aa0b2c4b22b0742b72a1149d91690674b upstream.
-
-We want to print link status query failed only if it's
-an unexepected fail. If we query to see if we need
-link training it might be because there is nothing
-connected and thus link status query have the right
-to fail in that case.
-
-To avoid printing failure when it's expected, move the
-failure message to proper place.
-
-Signed-off-by: Jerome Glisse <jglisse at redhat.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/atombios_dp.c |   10 +++++++---
- 1 files changed, 7 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
-index 552b436..3254d51 100644
---- a/drivers/gpu/drm/radeon/atombios_dp.c
-+++ b/drivers/gpu/drm/radeon/atombios_dp.c
-@@ -22,6 +22,7 @@
-  *
-  * Authors: Dave Airlie
-  *          Alex Deucher
-+ *          Jerome Glisse
-  */
- #include "drmP.h"
- #include "radeon_drm.h"
-@@ -634,7 +635,6 @@ static bool radeon_dp_get_link_status(struct radeon_connector *radeon_connector,
- 	ret = radeon_dp_aux_native_read(radeon_connector, DP_LANE0_1_STATUS,
- 					link_status, DP_LINK_STATUS_SIZE, 100);
- 	if (ret <= 0) {
--		DRM_ERROR("displayport link status failed\n");
- 		return false;
- 	}
- 
-@@ -812,8 +812,10 @@ static int radeon_dp_link_train_cr(struct radeon_dp_link_train_info *dp_info)
- 		else
- 			mdelay(dp_info->rd_interval * 4);
- 
--		if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status))
-+		if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) {
-+			DRM_ERROR("displayport link status failed\n");
- 			break;
-+		}
- 
- 		if (dp_clock_recovery_ok(dp_info->link_status, dp_info->dp_lane_count)) {
- 			clock_recovery = true;
-@@ -875,8 +877,10 @@ static int radeon_dp_link_train_ce(struct radeon_dp_link_train_info *dp_info)
- 		else
- 			mdelay(dp_info->rd_interval * 4);
- 
--		if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status))
-+		if (!radeon_dp_get_link_status(dp_info->radeon_connector, dp_info->link_status)) {
-+			DRM_ERROR("displayport link status failed\n");
- 			break;
-+		}
- 
- 		if (dp_channel_eq_ok(dp_info->link_status, dp_info->dp_lane_count)) {
- 			channel_eq = true;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0068-drm-radeon-fix-hotplug-of-DP-to-DVI-HDMI-passive-ada.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0068-drm-radeon-fix-hotplug-of-DP-to-DVI-HDMI-passive-ada.patch
deleted file mode 100644
index 0872ed3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0068-drm-radeon-fix-hotplug-of-DP-to-DVI-HDMI-passive-ada.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 0de546b55811738998d83bb6e677306d65e90861 Mon Sep 17 00:00:00 2001
-From: Jerome Glisse <jglisse at redhat.com>
-Date: Thu, 19 Jul 2012 17:15:56 -0400
-Subject: [PATCH 68/73] drm/radeon: fix hotplug of DP to DVI|HDMI passive
- adapters (v2)
-
-commit 266dcba541a1ef7e5d82d9e67c67fde2910636e8 upstream.
-
-No need to retrain the link for passive adapters.
-
-v2: agd5f
-- no passive DP to VGA adapters, update comments
-- assign radeon_connector_atom_dig after we are sure
-  we have a digital connector as analog connectors
-  have different private data.
-- get new sink type before checking for retrain.  No
-  need to check if it's no longer a DP connection.
-
-Signed-off-by: Jerome Glisse <jglisse at redhat.com>
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/radeon_connectors.c |   29 ++++++++++++++++++++-------
- 1 files changed, 21 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
-index 4a4493f..fb8db7a 100644
---- a/drivers/gpu/drm/radeon/radeon_connectors.c
-+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
-@@ -64,14 +64,27 @@ void radeon_connector_hotplug(struct drm_connector *connector)
- 
- 	/* just deal with DP (not eDP) here. */
- 	if (connector->connector_type == DRM_MODE_CONNECTOR_DisplayPort) {
--		int saved_dpms = connector->dpms;
--
--		/* Only turn off the display it it's physically disconnected */
--		if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
--			drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
--		else if (radeon_dp_needs_link_train(radeon_connector))
--			drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
--		connector->dpms = saved_dpms;
-+		struct radeon_connector_atom_dig *dig_connector =
-+			radeon_connector->con_priv;
-+
-+		/* if existing sink type was not DP no need to retrain */
-+		if (dig_connector->dp_sink_type != CONNECTOR_OBJECT_ID_DISPLAYPORT)
-+			return;
-+
-+		/* first get sink type as it may be reset after (un)plug */
-+		dig_connector->dp_sink_type = radeon_dp_getsinktype(radeon_connector);
-+		/* don't do anything if sink is not display port, i.e.,
-+		 * passive dp->(dvi|hdmi) adaptor
-+		 */
-+		if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
-+			int saved_dpms = connector->dpms;
-+			/* Only turn off the display if it's physically disconnected */
-+			if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
-+				drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
-+			else if (radeon_dp_needs_link_train(radeon_connector))
-+				drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
-+			connector->dpms = saved_dpms;
-+		}
- 	}
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0069-drm-radeon-on-hotplug-force-link-training-to-happen-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0069-drm-radeon-on-hotplug-force-link-training-to-happen-.patch
deleted file mode 100644
index 67959f9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0069-drm-radeon-on-hotplug-force-link-training-to-happen-.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 66ce98f9164b89ce8566d303265e209829f41c9f Mon Sep 17 00:00:00 2001
-From: Jerome Glisse <jglisse at redhat.com>
-Date: Thu, 19 Jul 2012 17:25:55 -0400
-Subject: [PATCH 69/73] drm/radeon: on hotplug force link training to happen
- (v2)
-
-commit ca2ccde5e2f24a792caa4cca919fc5c6f65d1887 upstream.
-
-To have DP behave like VGA/DVI we need to retrain the link
-on hotplug. For this to happen we need to force link
-training to happen by setting connector dpms to off
-before asking it turning it on again.
-
-v2: agd5f
-- drop the dp_get_link_status() change in atombios_dp.c
-  for now.  We still need the dpms OFF change.
-
-Signed-off-by: Jerome Glisse <jglisse at redhat.com>
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/radeon_connectors.c |   10 ++++++++--
- 1 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_connectors.c b/drivers/gpu/drm/radeon/radeon_connectors.c
-index fb8db7a..87d494d 100644
---- a/drivers/gpu/drm/radeon/radeon_connectors.c
-+++ b/drivers/gpu/drm/radeon/radeon_connectors.c
-@@ -79,10 +79,16 @@ void radeon_connector_hotplug(struct drm_connector *connector)
- 		if (dig_connector->dp_sink_type == CONNECTOR_OBJECT_ID_DISPLAYPORT) {
- 			int saved_dpms = connector->dpms;
- 			/* Only turn off the display if it's physically disconnected */
--			if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd))
-+			if (!radeon_hpd_sense(rdev, radeon_connector->hpd.hpd)) {
- 				drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
--			else if (radeon_dp_needs_link_train(radeon_connector))
-+			} else if (radeon_dp_needs_link_train(radeon_connector)) {
-+				/* set it to OFF so that drm_helper_connector_dpms()
-+				 * won't return immediately since the current state
-+				 * is ON at this point.
-+				 */
-+				connector->dpms = DRM_MODE_DPMS_OFF;
- 				drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
-+			}
- 			connector->dpms = saved_dpms;
- 		}
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0070-Btrfs-call-the-ordered-free-operation-without-any-lo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0070-Btrfs-call-the-ordered-free-operation-without-any-lo.patch
deleted file mode 100644
index 871e6c0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0070-Btrfs-call-the-ordered-free-operation-without-any-lo.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From f9254351de93ec535792d9a66b462d835875a6d3 Mon Sep 17 00:00:00 2001
-From: Chris Mason <chris.mason at fusionio.com>
-Date: Wed, 25 Jul 2012 15:57:13 -0400
-Subject: [PATCH 70/73] Btrfs: call the ordered free operation without any
- locks held
-
-commit e9fbcb42201c862fd6ab45c48ead4f47bb2dea9d upstream.
-
-Each ordered operation has a free callback, and this was called with the
-worker spinlock held.  Josef made the free callback also call iput,
-which we can't do with the spinlock.
-
-This drops the spinlock for the free operation and grabs it again before
-moving through the rest of the list.  We'll circle back around to this
-and find a cleaner way that doesn't bounce the lock around so much.
-
-Signed-off-by: Chris Mason <chris.mason at fusionio.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/btrfs/async-thread.c |    9 ++++++++-
- 1 files changed, 8 insertions(+), 1 deletions(-)
-
-diff --git a/fs/btrfs/async-thread.c b/fs/btrfs/async-thread.c
-index 0b39458..03321e5 100644
---- a/fs/btrfs/async-thread.c
-+++ b/fs/btrfs/async-thread.c
-@@ -206,10 +206,17 @@ static noinline int run_ordered_completions(struct btrfs_workers *workers,
- 
- 		work->ordered_func(work);
- 
--		/* now take the lock again and call the freeing code */
-+		/* now take the lock again and drop our item from the list */
- 		spin_lock(&workers->order_lock);
- 		list_del(&work->order_list);
-+		spin_unlock(&workers->order_lock);
-+
-+		/*
-+		 * we don't want to call the ordered free functions
-+		 * with the lock held though
-+		 */
- 		work->ordered_free(work);
-+		spin_lock(&workers->order_lock);
- 	}
- 
- 	spin_unlock(&workers->order_lock);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0071-nouveau-Fix-alignment-requirements-on-src-and-dst-ad.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0071-nouveau-Fix-alignment-requirements-on-src-and-dst-ad.patch
deleted file mode 100644
index 96bdd5d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0071-nouveau-Fix-alignment-requirements-on-src-and-dst-ad.patch
+++ /dev/null
@@ -1,748 +0,0 @@
-From ea77473ebf8397a7462fd28ad93e01a50084b146 Mon Sep 17 00:00:00 2001
-From: Maarten Lankhorst <maarten.lankhorst at canonical.com>
-Date: Mon, 4 Jun 2012 12:00:31 +0200
-Subject: [PATCH 71/73] nouveau: Fix alignment requirements on src and dst
- addresses
-
-commit ce806a30470bcd846d148bf39d46de3ad7748228 upstream.
-
-Linear copy works by adding the offset to the buffer address,
-which may end up not being 16-byte aligned.
-
-Some tests I've written for prime_pcopy show that the engine
-allows this correctly, so the restriction on lowest 4 bits of
-address can be lifted safely.
-
-The comments added were by envyas, I think because I used
-a newer version.
-
-Signed-off-by: Maarten Lankhorst <maarten.lankhorst at canonical.com>
-[bwh: Backported to 3.2: no # prefixes in nva3_copy.fuc]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/nouveau/nva3_copy.fuc   |    4 +-
- drivers/gpu/drm/nouveau/nva3_copy.fuc.h |   94 +++++++++++++++++++++++++++++-
- drivers/gpu/drm/nouveau/nvc0_copy.fuc.h |   87 +++++++++++++++++++++++++++-
- 3 files changed, 175 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nva3_copy.fuc b/drivers/gpu/drm/nouveau/nva3_copy.fuc
-index eaf35f8..d894731 100644
---- a/drivers/gpu/drm/nouveau/nva3_copy.fuc
-+++ b/drivers/gpu/drm/nouveau/nva3_copy.fuc
-@@ -118,9 +118,9 @@ dispatch_dma:
- // mthd 0x030c-0x0340, various stuff
- .b16 0xc3 14
- .b32 ctx_src_address_high           ~0x000000ff
--.b32 ctx_src_address_low            ~0xfffffff0
-+.b32 ctx_src_address_low            ~0xffffffff
- .b32 ctx_dst_address_high           ~0x000000ff
--.b32 ctx_dst_address_low            ~0xfffffff0
-+.b32 ctx_dst_address_low            ~0xffffffff
- .b32 ctx_src_pitch                  ~0x0007ffff
- .b32 ctx_dst_pitch                  ~0x0007ffff
- .b32 ctx_xcnt                       ~0x0000ffff
-diff --git a/drivers/gpu/drm/nouveau/nva3_copy.fuc.h b/drivers/gpu/drm/nouveau/nva3_copy.fuc.h
-index 2731de2..e2a0e88 100644
---- a/drivers/gpu/drm/nouveau/nva3_copy.fuc.h
-+++ b/drivers/gpu/drm/nouveau/nva3_copy.fuc.h
-@@ -1,37 +1,72 @@
--uint32_t nva3_pcopy_data[] = {
-+u32 nva3_pcopy_data[] = {
-+/* 0x0000: ctx_object */
- 	0x00000000,
-+/* 0x0004: ctx_dma */
-+/* 0x0004: ctx_dma_query */
- 	0x00000000,
-+/* 0x0008: ctx_dma_src */
- 	0x00000000,
-+/* 0x000c: ctx_dma_dst */
- 	0x00000000,
-+/* 0x0010: ctx_query_address_high */
- 	0x00000000,
-+/* 0x0014: ctx_query_address_low */
- 	0x00000000,
-+/* 0x0018: ctx_query_counter */
- 	0x00000000,
-+/* 0x001c: ctx_src_address_high */
- 	0x00000000,
-+/* 0x0020: ctx_src_address_low */
- 	0x00000000,
-+/* 0x0024: ctx_src_pitch */
- 	0x00000000,
-+/* 0x0028: ctx_src_tile_mode */
- 	0x00000000,
-+/* 0x002c: ctx_src_xsize */
- 	0x00000000,
-+/* 0x0030: ctx_src_ysize */
- 	0x00000000,
-+/* 0x0034: ctx_src_zsize */
- 	0x00000000,
-+/* 0x0038: ctx_src_zoff */
- 	0x00000000,
-+/* 0x003c: ctx_src_xoff */
- 	0x00000000,
-+/* 0x0040: ctx_src_yoff */
- 	0x00000000,
-+/* 0x0044: ctx_src_cpp */
- 	0x00000000,
-+/* 0x0048: ctx_dst_address_high */
- 	0x00000000,
-+/* 0x004c: ctx_dst_address_low */
- 	0x00000000,
-+/* 0x0050: ctx_dst_pitch */
- 	0x00000000,
-+/* 0x0054: ctx_dst_tile_mode */
- 	0x00000000,
-+/* 0x0058: ctx_dst_xsize */
- 	0x00000000,
-+/* 0x005c: ctx_dst_ysize */
- 	0x00000000,
-+/* 0x0060: ctx_dst_zsize */
- 	0x00000000,
-+/* 0x0064: ctx_dst_zoff */
- 	0x00000000,
-+/* 0x0068: ctx_dst_xoff */
- 	0x00000000,
-+/* 0x006c: ctx_dst_yoff */
- 	0x00000000,
-+/* 0x0070: ctx_dst_cpp */
- 	0x00000000,
-+/* 0x0074: ctx_format */
- 	0x00000000,
-+/* 0x0078: ctx_swz_const0 */
- 	0x00000000,
-+/* 0x007c: ctx_swz_const1 */
- 	0x00000000,
-+/* 0x0080: ctx_xcnt */
- 	0x00000000,
-+/* 0x0084: ctx_ycnt */
- 	0x00000000,
- 	0x00000000,
- 	0x00000000,
-@@ -63,6 +98,7 @@ uint32_t nva3_pcopy_data[] = {
- 	0x00000000,
- 	0x00000000,
- 	0x00000000,
-+/* 0x0100: dispatch_table */
- 	0x00010000,
- 	0x00000000,
- 	0x00000000,
-@@ -73,6 +109,7 @@ uint32_t nva3_pcopy_data[] = {
- 	0x00010162,
- 	0x00000000,
- 	0x00030060,
-+/* 0x0128: dispatch_dma */
- 	0x00010170,
- 	0x00000000,
- 	0x00010170,
-@@ -118,11 +155,11 @@ uint32_t nva3_pcopy_data[] = {
- 	0x0000001c,
- 	0xffffff00,
- 	0x00000020,
--	0x0000000f,
-+	0x00000000,
- 	0x00000048,
- 	0xffffff00,
- 	0x0000004c,
--	0x0000000f,
-+	0x00000000,
- 	0x00000024,
- 	0xfff80000,
- 	0x00000050,
-@@ -146,7 +183,8 @@ uint32_t nva3_pcopy_data[] = {
- 	0x00000800,
- };
- 
--uint32_t nva3_pcopy_code[] = {
-+u32 nva3_pcopy_code[] = {
-+/* 0x0000: main */
- 	0x04fe04bd,
- 	0x3517f000,
- 	0xf10010fe,
-@@ -158,23 +196,31 @@ uint32_t nva3_pcopy_code[] = {
- 	0x17f11031,
- 	0x27f01200,
- 	0x0012d003,
-+/* 0x002f: spin */
- 	0xf40031f4,
- 	0x0ef40028,
-+/* 0x0035: ih */
- 	0x8001cffd,
- 	0xf40812c4,
- 	0x21f4060b,
-+/* 0x0041: ih_no_chsw */
- 	0x0412c472,
- 	0xf4060bf4,
-+/* 0x004a: ih_no_cmd */
- 	0x11c4c321,
- 	0x4001d00c,
-+/* 0x0052: swctx */
- 	0x47f101f8,
- 	0x4bfe7700,
- 	0x0007fe00,
- 	0xf00204b9,
- 	0x01f40643,
- 	0x0604fa09,
-+/* 0x006b: swctx_load */
- 	0xfa060ef4,
-+/* 0x006e: swctx_done */
- 	0x03f80504,
-+/* 0x0072: chsw */
- 	0x27f100f8,
- 	0x23cf1400,
- 	0x1e3fc800,
-@@ -183,18 +229,22 @@ uint32_t nva3_pcopy_code[] = {
- 	0x1e3af052,
- 	0xf00023d0,
- 	0x24d00147,
-+/* 0x0093: chsw_no_unload */
- 	0xcf00f880,
- 	0x3dc84023,
- 	0x220bf41e,
- 	0xf40131f4,
- 	0x57f05221,
- 	0x0367f004,
-+/* 0x00a8: chsw_load_ctx_dma */
- 	0xa07856bc,
- 	0xb6018068,
- 	0x87d00884,
- 	0x0162b600,
-+/* 0x00bb: chsw_finish_load */
- 	0xf0f018f4,
- 	0x23d00237,
-+/* 0x00c3: dispatch */
- 	0xf100f880,
- 	0xcf190037,
- 	0x33cf4032,
-@@ -202,6 +252,7 @@ uint32_t nva3_pcopy_code[] = {
- 	0x1024b607,
- 	0x010057f1,
- 	0x74bd64bd,
-+/* 0x00dc: dispatch_loop */
- 	0x58005658,
- 	0x50b60157,
- 	0x0446b804,
-@@ -211,6 +262,7 @@ uint32_t nva3_pcopy_code[] = {
- 	0xb60276bb,
- 	0x57bb0374,
- 	0xdf0ef400,
-+/* 0x0100: dispatch_valid_mthd */
- 	0xb60246bb,
- 	0x45bb0344,
- 	0x01459800,
-@@ -220,31 +272,41 @@ uint32_t nva3_pcopy_code[] = {
- 	0xb0014658,
- 	0x1bf40064,
- 	0x00538009,
-+/* 0x0127: dispatch_cmd */
- 	0xf4300ef4,
- 	0x55f90132,
- 	0xf40c01f4,
-+/* 0x0132: dispatch_invalid_bitfield */
- 	0x25f0250e,
-+/* 0x0135: dispatch_illegal_mthd */
- 	0x0125f002,
-+/* 0x0138: dispatch_error */
- 	0x100047f1,
- 	0xd00042d0,
- 	0x27f04043,
- 	0x0002d040,
-+/* 0x0148: hostirq_wait */
- 	0xf08002cf,
- 	0x24b04024,
- 	0xf71bf400,
-+/* 0x0154: dispatch_done */
- 	0x1d0027f1,
- 	0xd00137f0,
- 	0x00f80023,
-+/* 0x0160: cmd_nop */
-+/* 0x0162: cmd_pm_trigger */
- 	0x27f100f8,
- 	0x34bd2200,
- 	0xd00233f0,
- 	0x00f80023,
-+/* 0x0170: cmd_dma */
- 	0x012842b7,
- 	0xf00145b6,
- 	0x43801e39,
- 	0x0040b701,
- 	0x0644b606,
- 	0xf80043d0,
-+/* 0x0189: cmd_exec_set_format */
- 	0xf030f400,
- 	0xb00001b0,
- 	0x01b00101,
-@@ -256,20 +318,26 @@ uint32_t nva3_pcopy_code[] = {
- 	0x70b63847,
- 	0x0232f401,
- 	0x94bd84bd,
-+/* 0x01b4: ncomp_loop */
- 	0xb60f4ac4,
- 	0xb4bd0445,
-+/* 0x01bc: bpc_loop */
- 	0xf404a430,
- 	0xa5ff0f18,
- 	0x00cbbbc0,
- 	0xf40231f4,
-+/* 0x01ce: cmp_c0 */
- 	0x1bf4220e,
- 	0x10c7f00c,
- 	0xf400cbbb,
-+/* 0x01da: cmp_c1 */
- 	0xa430160e,
- 	0x0c18f406,
- 	0xbb14c7f0,
- 	0x0ef400cb,
-+/* 0x01e9: cmp_zero */
- 	0x80c7f107,
-+/* 0x01ed: bpc_next */
- 	0x01c83800,
- 	0xb60180b6,
- 	0xb5b801b0,
-@@ -280,6 +348,7 @@ uint32_t nva3_pcopy_code[] = {
- 	0x98110680,
- 	0x68fd2008,
- 	0x0502f400,
-+/* 0x0216: dst_xcnt */
- 	0x75fd64bd,
- 	0x1c078000,
- 	0xf10078fd,
-@@ -304,6 +373,7 @@ uint32_t nva3_pcopy_code[] = {
- 	0x980056d0,
- 	0x56d01f06,
- 	0x1030f440,
-+/* 0x0276: cmd_exec_set_surface_tiled */
- 	0x579800f8,
- 	0x6879c70a,
- 	0xb66478c7,
-@@ -311,9 +381,11 @@ uint32_t nva3_pcopy_code[] = {
- 	0x0e76b060,
- 	0xf0091bf4,
- 	0x0ef40477,
-+/* 0x0291: xtile64 */
- 	0x027cf00f,
- 	0xfd1170b6,
- 	0x77f00947,
-+/* 0x029d: xtileok */
- 	0x0f5a9806,
- 	0xfd115b98,
- 	0xb7f000ab,
-@@ -371,6 +443,7 @@ uint32_t nva3_pcopy_code[] = {
- 	0x67d00600,
- 	0x0060b700,
- 	0x0068d004,
-+/* 0x0382: cmd_exec_set_surface_linear */
- 	0x6cf000f8,
- 	0x0260b702,
- 	0x0864b602,
-@@ -381,13 +454,16 @@ uint32_t nva3_pcopy_code[] = {
- 	0xb70067d0,
- 	0x98040060,
- 	0x67d00957,
-+/* 0x03ab: cmd_exec_wait */
- 	0xf900f800,
- 	0xf110f900,
- 	0xb6080007,
-+/* 0x03b6: loop */
- 	0x01cf0604,
- 	0x0114f000,
- 	0xfcfa1bf4,
- 	0xf800fc10,
-+/* 0x03c5: cmd_exec_query */
- 	0x0d34c800,
- 	0xf5701bf4,
- 	0xf103ab21,
-@@ -417,6 +493,7 @@ uint32_t nva3_pcopy_code[] = {
- 	0x47f10153,
- 	0x44b60800,
- 	0x0045d006,
-+/* 0x0438: query_counter */
- 	0x03ab21f5,
- 	0x080c47f1,
- 	0x980644b6,
-@@ -439,11 +516,13 @@ uint32_t nva3_pcopy_code[] = {
- 	0x47f10153,
- 	0x44b60800,
- 	0x0045d006,
-+/* 0x0492: cmd_exec */
- 	0x21f500f8,
- 	0x3fc803ab,
- 	0x0e0bf400,
- 	0x018921f5,
- 	0x020047f1,
-+/* 0x04a7: cmd_exec_no_format */
- 	0xf11e0ef4,
- 	0xb6081067,
- 	0x77f00664,
-@@ -451,19 +530,24 @@ uint32_t nva3_pcopy_code[] = {
- 	0x981c0780,
- 	0x67d02007,
- 	0x4067d000,
-+/* 0x04c2: cmd_exec_init_src_surface */
- 	0x32f444bd,
- 	0xc854bd02,
- 	0x0bf4043f,
- 	0x8221f50a,
- 	0x0a0ef403,
-+/* 0x04d4: src_tiled */
- 	0x027621f5,
-+/* 0x04db: cmd_exec_init_dst_surface */
- 	0xf40749f0,
- 	0x57f00231,
- 	0x083fc82c,
- 	0xf50a0bf4,
- 	0xf4038221,
-+/* 0x04ee: dst_tiled */
- 	0x21f50a0e,
- 	0x49f00276,
-+/* 0x04f5: cmd_exec_kick */
- 	0x0057f108,
- 	0x0654b608,
- 	0xd0210698,
-@@ -473,6 +557,8 @@ uint32_t nva3_pcopy_code[] = {
- 	0xc80054d0,
- 	0x0bf40c3f,
- 	0xc521f507,
-+/* 0x0519: cmd_exec_done */
-+/* 0x051b: cmd_wrcache_flush */
- 	0xf100f803,
- 	0xbd220027,
- 	0x0133f034,
-diff --git a/drivers/gpu/drm/nouveau/nvc0_copy.fuc.h b/drivers/gpu/drm/nouveau/nvc0_copy.fuc.h
-index 4199038..9e87036 100644
---- a/drivers/gpu/drm/nouveau/nvc0_copy.fuc.h
-+++ b/drivers/gpu/drm/nouveau/nvc0_copy.fuc.h
-@@ -1,34 +1,65 @@
--uint32_t nvc0_pcopy_data[] = {
-+u32 nvc0_pcopy_data[] = {
-+/* 0x0000: ctx_object */
- 	0x00000000,
-+/* 0x0004: ctx_query_address_high */
- 	0x00000000,
-+/* 0x0008: ctx_query_address_low */
- 	0x00000000,
-+/* 0x000c: ctx_query_counter */
- 	0x00000000,
-+/* 0x0010: ctx_src_address_high */
- 	0x00000000,
-+/* 0x0014: ctx_src_address_low */
- 	0x00000000,
-+/* 0x0018: ctx_src_pitch */
- 	0x00000000,
-+/* 0x001c: ctx_src_tile_mode */
- 	0x00000000,
-+/* 0x0020: ctx_src_xsize */
- 	0x00000000,
-+/* 0x0024: ctx_src_ysize */
- 	0x00000000,
-+/* 0x0028: ctx_src_zsize */
- 	0x00000000,
-+/* 0x002c: ctx_src_zoff */
- 	0x00000000,
-+/* 0x0030: ctx_src_xoff */
- 	0x00000000,
-+/* 0x0034: ctx_src_yoff */
- 	0x00000000,
-+/* 0x0038: ctx_src_cpp */
- 	0x00000000,
-+/* 0x003c: ctx_dst_address_high */
- 	0x00000000,
-+/* 0x0040: ctx_dst_address_low */
- 	0x00000000,
-+/* 0x0044: ctx_dst_pitch */
- 	0x00000000,
-+/* 0x0048: ctx_dst_tile_mode */
- 	0x00000000,
-+/* 0x004c: ctx_dst_xsize */
- 	0x00000000,
-+/* 0x0050: ctx_dst_ysize */
- 	0x00000000,
-+/* 0x0054: ctx_dst_zsize */
- 	0x00000000,
-+/* 0x0058: ctx_dst_zoff */
- 	0x00000000,
-+/* 0x005c: ctx_dst_xoff */
- 	0x00000000,
-+/* 0x0060: ctx_dst_yoff */
- 	0x00000000,
-+/* 0x0064: ctx_dst_cpp */
- 	0x00000000,
-+/* 0x0068: ctx_format */
- 	0x00000000,
-+/* 0x006c: ctx_swz_const0 */
- 	0x00000000,
-+/* 0x0070: ctx_swz_const1 */
- 	0x00000000,
-+/* 0x0074: ctx_xcnt */
- 	0x00000000,
-+/* 0x0078: ctx_ycnt */
- 	0x00000000,
- 	0x00000000,
- 	0x00000000,
-@@ -63,6 +94,7 @@ uint32_t nvc0_pcopy_data[] = {
- 	0x00000000,
- 	0x00000000,
- 	0x00000000,
-+/* 0x0100: dispatch_table */
- 	0x00010000,
- 	0x00000000,
- 	0x00000000,
-@@ -111,11 +143,11 @@ uint32_t nvc0_pcopy_data[] = {
- 	0x00000010,
- 	0xffffff00,
- 	0x00000014,
--	0x0000000f,
-+	0x00000000,
- 	0x0000003c,
- 	0xffffff00,
- 	0x00000040,
--	0x0000000f,
-+	0x00000000,
- 	0x00000018,
- 	0xfff80000,
- 	0x00000044,
-@@ -139,7 +171,8 @@ uint32_t nvc0_pcopy_data[] = {
- 	0x00000800,
- };
- 
--uint32_t nvc0_pcopy_code[] = {
-+u32 nvc0_pcopy_code[] = {
-+/* 0x0000: main */
- 	0x04fe04bd,
- 	0x3517f000,
- 	0xf10010fe,
-@@ -151,15 +184,20 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x17f11031,
- 	0x27f01200,
- 	0x0012d003,
-+/* 0x002f: spin */
- 	0xf40031f4,
- 	0x0ef40028,
-+/* 0x0035: ih */
- 	0x8001cffd,
- 	0xf40812c4,
- 	0x21f4060b,
-+/* 0x0041: ih_no_chsw */
- 	0x0412c4ca,
- 	0xf5070bf4,
-+/* 0x004b: ih_no_cmd */
- 	0xc4010221,
- 	0x01d00c11,
-+/* 0x0053: swctx */
- 	0xf101f840,
- 	0xfe770047,
- 	0x47f1004b,
-@@ -188,8 +226,11 @@ uint32_t nvc0_pcopy_code[] = {
- 	0xf00204b9,
- 	0x01f40643,
- 	0x0604fa09,
-+/* 0x00c3: swctx_load */
- 	0xfa060ef4,
-+/* 0x00c6: swctx_done */
- 	0x03f80504,
-+/* 0x00ca: chsw */
- 	0x27f100f8,
- 	0x23cf1400,
- 	0x1e3fc800,
-@@ -198,18 +239,22 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x1e3af053,
- 	0xf00023d0,
- 	0x24d00147,
-+/* 0x00eb: chsw_no_unload */
- 	0xcf00f880,
- 	0x3dc84023,
- 	0x090bf41e,
- 	0xf40131f4,
-+/* 0x00fa: chsw_finish_load */
- 	0x37f05321,
- 	0x8023d002,
-+/* 0x0102: dispatch */
- 	0x37f100f8,
- 	0x32cf1900,
- 	0x0033cf40,
- 	0x07ff24e4,
- 	0xf11024b6,
- 	0xbd010057,
-+/* 0x011b: dispatch_loop */
- 	0x5874bd64,
- 	0x57580056,
- 	0x0450b601,
-@@ -219,6 +264,7 @@ uint32_t nvc0_pcopy_code[] = {
- 	0xbb0f08f4,
- 	0x74b60276,
- 	0x0057bb03,
-+/* 0x013f: dispatch_valid_mthd */
- 	0xbbdf0ef4,
- 	0x44b60246,
- 	0x0045bb03,
-@@ -229,24 +275,33 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x64b00146,
- 	0x091bf400,
- 	0xf4005380,
-+/* 0x0166: dispatch_cmd */
- 	0x32f4300e,
- 	0xf455f901,
- 	0x0ef40c01,
-+/* 0x0171: dispatch_invalid_bitfield */
- 	0x0225f025,
-+/* 0x0174: dispatch_illegal_mthd */
-+/* 0x0177: dispatch_error */
- 	0xf10125f0,
- 	0xd0100047,
- 	0x43d00042,
- 	0x4027f040,
-+/* 0x0187: hostirq_wait */
- 	0xcf0002d0,
- 	0x24f08002,
- 	0x0024b040,
-+/* 0x0193: dispatch_done */
- 	0xf1f71bf4,
- 	0xf01d0027,
- 	0x23d00137,
-+/* 0x019f: cmd_nop */
- 	0xf800f800,
-+/* 0x01a1: cmd_pm_trigger */
- 	0x0027f100,
- 	0xf034bd22,
- 	0x23d00233,
-+/* 0x01af: cmd_exec_set_format */
- 	0xf400f800,
- 	0x01b0f030,
- 	0x0101b000,
-@@ -258,20 +313,26 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x3847c701,
- 	0xf40170b6,
- 	0x84bd0232,
-+/* 0x01da: ncomp_loop */
- 	0x4ac494bd,
- 	0x0445b60f,
-+/* 0x01e2: bpc_loop */
- 	0xa430b4bd,
- 	0x0f18f404,
- 	0xbbc0a5ff,
- 	0x31f400cb,
- 	0x220ef402,
-+/* 0x01f4: cmp_c0 */
- 	0xf00c1bf4,
- 	0xcbbb10c7,
- 	0x160ef400,
-+/* 0x0200: cmp_c1 */
- 	0xf406a430,
- 	0xc7f00c18,
- 	0x00cbbb14,
-+/* 0x020f: cmp_zero */
- 	0xf1070ef4,
-+/* 0x0213: bpc_next */
- 	0x380080c7,
- 	0x80b601c8,
- 	0x01b0b601,
-@@ -283,6 +344,7 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x1d08980e,
- 	0xf40068fd,
- 	0x64bd0502,
-+/* 0x023c: dst_xcnt */
- 	0x800075fd,
- 	0x78fd1907,
- 	0x1057f100,
-@@ -307,15 +369,18 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x1c069800,
- 	0xf44056d0,
- 	0x00f81030,
-+/* 0x029c: cmd_exec_set_surface_tiled */
- 	0xc7075798,
- 	0x78c76879,
- 	0x0380b664,
- 	0xb06077c7,
- 	0x1bf40e76,
- 	0x0477f009,
-+/* 0x02b7: xtile64 */
- 	0xf00f0ef4,
- 	0x70b6027c,
- 	0x0947fd11,
-+/* 0x02c3: xtileok */
- 	0x980677f0,
- 	0x5b980c5a,
- 	0x00abfd0e,
-@@ -374,6 +439,7 @@ uint32_t nvc0_pcopy_code[] = {
- 	0xb70067d0,
- 	0xd0040060,
- 	0x00f80068,
-+/* 0x03a8: cmd_exec_set_surface_linear */
- 	0xb7026cf0,
- 	0xb6020260,
- 	0x57980864,
-@@ -384,12 +450,15 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x0060b700,
- 	0x06579804,
- 	0xf80067d0,
-+/* 0x03d1: cmd_exec_wait */
- 	0xf900f900,
- 	0x0007f110,
- 	0x0604b608,
-+/* 0x03dc: loop */
- 	0xf00001cf,
- 	0x1bf40114,
- 	0xfc10fcfa,
-+/* 0x03eb: cmd_exec_query */
- 	0xc800f800,
- 	0x1bf40d34,
- 	0xd121f570,
-@@ -419,6 +488,7 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x0153f026,
- 	0x080047f1,
- 	0xd00644b6,
-+/* 0x045e: query_counter */
- 	0x21f50045,
- 	0x47f103d1,
- 	0x44b6080c,
-@@ -442,11 +512,13 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x080047f1,
- 	0xd00644b6,
- 	0x00f80045,
-+/* 0x04b8: cmd_exec */
- 	0x03d121f5,
- 	0xf4003fc8,
- 	0x21f50e0b,
- 	0x47f101af,
- 	0x0ef40200,
-+/* 0x04cd: cmd_exec_no_format */
- 	0x1067f11e,
- 	0x0664b608,
- 	0x800177f0,
-@@ -454,18 +526,23 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x1d079819,
- 	0xd00067d0,
- 	0x44bd4067,
-+/* 0x04e8: cmd_exec_init_src_surface */
- 	0xbd0232f4,
- 	0x043fc854,
- 	0xf50a0bf4,
- 	0xf403a821,
-+/* 0x04fa: src_tiled */
- 	0x21f50a0e,
- 	0x49f0029c,
-+/* 0x0501: cmd_exec_init_dst_surface */
- 	0x0231f407,
- 	0xc82c57f0,
- 	0x0bf4083f,
- 	0xa821f50a,
- 	0x0a0ef403,
-+/* 0x0514: dst_tiled */
- 	0x029c21f5,
-+/* 0x051b: cmd_exec_kick */
- 	0xf10849f0,
- 	0xb6080057,
- 	0x06980654,
-@@ -475,7 +552,9 @@ uint32_t nvc0_pcopy_code[] = {
- 	0x54d00546,
- 	0x0c3fc800,
- 	0xf5070bf4,
-+/* 0x053f: cmd_exec_done */
- 	0xf803eb21,
-+/* 0x0541: cmd_wrcache_flush */
- 	0x0027f100,
- 	0xf034bd22,
- 	0x23d00133,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0072-mm-fix-wrong-argument-of-migrate_huge_pages-in-soft_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0072-mm-fix-wrong-argument-of-migrate_huge_pages-in-soft_.patch
deleted file mode 100644
index 6d93dda..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0072-mm-fix-wrong-argument-of-migrate_huge_pages-in-soft_.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 10d09034790926ded3c2ee655d72c48219d61122 Mon Sep 17 00:00:00 2001
-From: Joonsoo Kim <js1304 at gmail.com>
-Date: Mon, 30 Jul 2012 14:39:04 -0700
-Subject: [PATCH 72/73] mm: fix wrong argument of migrate_huge_pages() in
- soft_offline_huge_page()
-
-commit dc32f63453f56d07a1073a697dcd843dd3098c09 upstream.
-
-Commit a6bc32b89922 ("mm: compaction: introduce sync-light migration for
-use by compaction") changed the declaration of migrate_pages() and
-migrate_huge_pages().
-
-But it missed changing the argument of migrate_huge_pages() in
-soft_offline_huge_page().  In this case, we should call
-migrate_huge_pages() with MIGRATE_SYNC.
-
-Additionally, there is a mismatch between type the of argument and the
-function declaration for migrate_pages().
-
-Signed-off-by: Joonsoo Kim <js1304 at gmail.com>
-Cc: Christoph Lameter <cl at linux.com>
-Cc: Mel Gorman <mgorman at suse.de>
-Acked-by: David Rientjes <rientjes at google.com>
-Cc: "Aneesh Kumar K.V" <aneesh.kumar at linux.vnet.ibm.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/memory-failure.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/mm/memory-failure.c b/mm/memory-failure.c
-index 56080ea..5bd5bb1 100644
---- a/mm/memory-failure.c
-+++ b/mm/memory-failure.c
-@@ -1427,8 +1427,8 @@ static int soft_offline_huge_page(struct page *page, int flags)
- 	/* Keep page count to indicate a given hugepage is isolated. */
- 
- 	list_add(&hpage->lru, &pagelist);
--	ret = migrate_huge_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, 0,
--				true);
-+	ret = migrate_huge_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL, false,
-+				MIGRATE_SYNC);
- 	if (ret) {
- 		struct page *page1, *page2;
- 		list_for_each_entry_safe(page1, page2, &pagelist, lru)
-@@ -1557,7 +1557,7 @@ int soft_offline_page(struct page *page, int flags)
- 					    page_is_file_cache(page));
- 		list_add(&page->lru, &pagelist);
- 		ret = migrate_pages(&pagelist, new_page, MPOL_MF_MOVE_ALL,
--							0, MIGRATE_SYNC);
-+							false, MIGRATE_SYNC);
- 		if (ret) {
- 			putback_lru_pages(&pagelist);
- 			pr_info("soft offline: %#lx: migration failed %d, type %lx\n",
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0073-Linux-3.2.25.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0073-Linux-3.2.25.patch
deleted file mode 100644
index cb9db48..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.25/0073-Linux-3.2.25.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From d5f196e5b0f7d3770840af22c9fbd4b8355fd792 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Thu, 2 Aug 2012 14:38:04 +0100
-Subject: [PATCH 73/73] Linux 3.2.25
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index 80bb4fd..e13e4e7 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 24
-+SUBLEVEL = 25
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0001-x86-Simplify-code-by-removing-a-SMP-ifdefs-from-stru.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0001-x86-Simplify-code-by-removing-a-SMP-ifdefs-from-stru.patch
deleted file mode 100644
index e858ded..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0001-x86-Simplify-code-by-removing-a-SMP-ifdefs-from-stru.patch
+++ /dev/null
@@ -1,273 +0,0 @@
-From 6b4860ef321fadc060ec7541cb5074980fd41a68 Mon Sep 17 00:00:00 2001
-From: Kevin Winchester <kjwinchester at gmail.com>
-Date: Tue, 20 Dec 2011 20:52:22 -0400
-Subject: [PATCH 1/2] x86: Simplify code by removing a !SMP #ifdefs from
- 'struct cpuinfo_x86'
-
-commit 141168c36cdee3ff23d9c7700b0edc47cb65479f and
-commit 3f806e50981825fa56a7f1938f24c0680816be45 upstream.
-
-Several fields in struct cpuinfo_x86 were not defined for the
-!SMP case, likely to save space.  However, those fields still
-have some meaning for UP, and keeping them allows some #ifdef
-removal from other files.  The additional size of the UP kernel
-from this change is not significant enough to worry about
-keeping up the distinction:
-
-	   text    data     bss     dec     hex filename
-	4737168	 506459	 972040	6215667	 5ed7f3	vmlinux.o.before
-	4737444	 506459	 972040	6215943	 5ed907	vmlinux.o.after
-
-for a difference of 276 bytes for an example UP config.
-
-If someone wants those 276 bytes back badly then it should
-be implemented in a cleaner way.
-
-Signed-off-by: Kevin Winchester <kjwinchester at gmail.com>
-Cc: Steffen Persvold <sp at numascale.com>
-Link: http://lkml.kernel.org/r/1324428742-12498-1-git-send-email-kjwinchester@gmail.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Borislav Petkov <borislav.petkov at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/include/asm/processor.h     |    2 --
- arch/x86/kernel/amd_nb.c             |    8 ++------
- arch/x86/kernel/cpu/amd.c            |    2 --
- arch/x86/kernel/cpu/common.c         |    5 -----
- arch/x86/kernel/cpu/intel.c          |    2 --
- arch/x86/kernel/cpu/mcheck/mce.c     |    2 --
- arch/x86/kernel/cpu/mcheck/mce_amd.c |    5 +----
- arch/x86/kernel/cpu/proc.c           |    4 +---
- drivers/edac/sb_edac.c               |    2 --
- drivers/hwmon/coretemp.c             |    7 +++----
- 10 files changed, 7 insertions(+), 32 deletions(-)
-
-diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
-index bb3ee36..f7c89e2 100644
---- a/arch/x86/include/asm/processor.h
-+++ b/arch/x86/include/asm/processor.h
-@@ -99,7 +99,6 @@ struct cpuinfo_x86 {
- 	u16			apicid;
- 	u16			initial_apicid;
- 	u16			x86_clflush_size;
--#ifdef CONFIG_SMP
- 	/* number of cores as seen by the OS: */
- 	u16			booted_cores;
- 	/* Physical processor id: */
-@@ -110,7 +109,6 @@ struct cpuinfo_x86 {
- 	u8			compute_unit_id;
- 	/* Index into per_cpu list: */
- 	u16			cpu_index;
--#endif
- 	u32			microcode;
- } __attribute__((__aligned__(SMP_CACHE_BYTES)));
- 
-diff --git a/arch/x86/kernel/amd_nb.c b/arch/x86/kernel/amd_nb.c
-index bae1efe..be16854 100644
---- a/arch/x86/kernel/amd_nb.c
-+++ b/arch/x86/kernel/amd_nb.c
-@@ -154,16 +154,14 @@ int amd_get_subcaches(int cpu)
- {
- 	struct pci_dev *link = node_to_amd_nb(amd_get_nb_id(cpu))->link;
- 	unsigned int mask;
--	int cuid = 0;
-+	int cuid;
- 
- 	if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING))
- 		return 0;
- 
- 	pci_read_config_dword(link, 0x1d4, &mask);
- 
--#ifdef CONFIG_SMP
- 	cuid = cpu_data(cpu).compute_unit_id;
--#endif
- 	return (mask >> (4 * cuid)) & 0xf;
- }
- 
-@@ -172,7 +170,7 @@ int amd_set_subcaches(int cpu, int mask)
- 	static unsigned int reset, ban;
- 	struct amd_northbridge *nb = node_to_amd_nb(amd_get_nb_id(cpu));
- 	unsigned int reg;
--	int cuid = 0;
-+	int cuid;
- 
- 	if (!amd_nb_has_feature(AMD_NB_L3_PARTITIONING) || mask > 0xf)
- 		return -EINVAL;
-@@ -190,9 +188,7 @@ int amd_set_subcaches(int cpu, int mask)
- 		pci_write_config_dword(nb->misc, 0x1b8, reg & ~0x180000);
- 	}
- 
--#ifdef CONFIG_SMP
- 	cuid = cpu_data(cpu).compute_unit_id;
--#endif
- 	mask <<= 4 * cuid;
- 	mask |= (0xf ^ (1 << cuid)) << 26;
- 
-diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
-index 3524e1f..ff8557e 100644
---- a/arch/x86/kernel/cpu/amd.c
-+++ b/arch/x86/kernel/cpu/amd.c
-@@ -148,7 +148,6 @@ static void __cpuinit init_amd_k6(struct cpuinfo_x86 *c)
- 
- static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 *c)
- {
--#ifdef CONFIG_SMP
- 	/* calling is from identify_secondary_cpu() ? */
- 	if (!c->cpu_index)
- 		return;
-@@ -192,7 +191,6 @@ static void __cpuinit amd_k7_smp_check(struct cpuinfo_x86 *c)
- 
- valid_k7:
- 	;
--#endif
- }
- 
- static void __cpuinit init_amd_k7(struct cpuinfo_x86 *c)
-diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c
-index aa003b1..ca93cc7 100644
---- a/arch/x86/kernel/cpu/common.c
-+++ b/arch/x86/kernel/cpu/common.c
-@@ -676,9 +676,7 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
- 	if (this_cpu->c_early_init)
- 		this_cpu->c_early_init(c);
- 
--#ifdef CONFIG_SMP
- 	c->cpu_index = 0;
--#endif
- 	filter_cpuid_features(c, false);
- 
- 	setup_smep(c);
-@@ -764,10 +762,7 @@ static void __cpuinit generic_identify(struct cpuinfo_x86 *c)
- 		c->apicid = c->initial_apicid;
- # endif
- #endif
--
--#ifdef CONFIG_X86_HT
- 		c->phys_proc_id = c->initial_apicid;
--#endif
- 	}
- 
- 	setup_smep(c);
-diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c
-index 5231312..3e6ff6c 100644
---- a/arch/x86/kernel/cpu/intel.c
-+++ b/arch/x86/kernel/cpu/intel.c
-@@ -181,7 +181,6 @@ static void __cpuinit trap_init_f00f_bug(void)
- 
- static void __cpuinit intel_smp_check(struct cpuinfo_x86 *c)
- {
--#ifdef CONFIG_SMP
- 	/* calling is from identify_secondary_cpu() ? */
- 	if (!c->cpu_index)
- 		return;
-@@ -198,7 +197,6 @@ static void __cpuinit intel_smp_check(struct cpuinfo_x86 *c)
- 		WARN_ONCE(1, "WARNING: SMP operation may be unreliable"
- 				    "with B stepping processors.\n");
- 	}
--#endif
- }
- 
- static void __cpuinit intel_workarounds(struct cpuinfo_x86 *c)
-diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c
-index b0f1271..3b67877 100644
---- a/arch/x86/kernel/cpu/mcheck/mce.c
-+++ b/arch/x86/kernel/cpu/mcheck/mce.c
-@@ -119,9 +119,7 @@ void mce_setup(struct mce *m)
- 	m->time = get_seconds();
- 	m->cpuvendor = boot_cpu_data.x86_vendor;
- 	m->cpuid = cpuid_eax(1);
--#ifdef CONFIG_SMP
- 	m->socketid = cpu_data(m->extcpu).phys_proc_id;
--#endif
- 	m->apicid = cpu_data(m->extcpu).initial_apicid;
- 	rdmsrl(MSR_IA32_MCG_CAP, m->mcgcap);
- }
-diff --git a/arch/x86/kernel/cpu/mcheck/mce_amd.c b/arch/x86/kernel/cpu/mcheck/mce_amd.c
-index 445a61c..d4444be 100644
---- a/arch/x86/kernel/cpu/mcheck/mce_amd.c
-+++ b/arch/x86/kernel/cpu/mcheck/mce_amd.c
-@@ -65,11 +65,9 @@ struct threshold_bank {
- };
- static DEFINE_PER_CPU(struct threshold_bank * [NR_BANKS], threshold_banks);
- 
--#ifdef CONFIG_SMP
- static unsigned char shared_bank[NR_BANKS] = {
- 	0, 0, 0, 0, 1
- };
--#endif
- 
- static DEFINE_PER_CPU(unsigned char, bank_map);	/* see which banks are on */
- 
-@@ -227,10 +225,9 @@ void mce_amd_feature_init(struct cpuinfo_x86 *c)
- 
- 			if (!block)
- 				per_cpu(bank_map, cpu) |= (1 << bank);
--#ifdef CONFIG_SMP
-+
- 			if (shared_bank[bank] && c->cpu_core_id)
- 				break;
--#endif
- 
- 			memset(&b, 0, sizeof(b));
- 			b.cpu			= cpu;
-diff --git a/arch/x86/kernel/cpu/proc.c b/arch/x86/kernel/cpu/proc.c
-index 14b2314..8022c66 100644
---- a/arch/x86/kernel/cpu/proc.c
-+++ b/arch/x86/kernel/cpu/proc.c
-@@ -64,12 +64,10 @@ static void show_cpuinfo_misc(struct seq_file *m, struct cpuinfo_x86 *c)
- static int show_cpuinfo(struct seq_file *m, void *v)
- {
- 	struct cpuinfo_x86 *c = v;
--	unsigned int cpu = 0;
-+	unsigned int cpu;
- 	int i;
- 
--#ifdef CONFIG_SMP
- 	cpu = c->cpu_index;
--#endif
- 	seq_printf(m, "processor\t: %u\n"
- 		   "vendor_id\t: %s\n"
- 		   "cpu family\t: %d\n"
-diff --git a/drivers/edac/sb_edac.c b/drivers/edac/sb_edac.c
-index 18a1293..0db57b5 100644
---- a/drivers/edac/sb_edac.c
-+++ b/drivers/edac/sb_edac.c
-@@ -1609,11 +1609,9 @@ static int sbridge_mce_check_error(struct notifier_block *nb, unsigned long val,
- 		mce->cpuvendor, mce->cpuid, mce->time,
- 		mce->socketid, mce->apicid);
- 
--#ifdef CONFIG_SMP
- 	/* Only handle if it is the right mc controller */
- 	if (cpu_data(mce->cpu).phys_proc_id != pvt->sbridge_dev->mc)
- 		return NOTIFY_DONE;
--#endif
- 
- 	smp_rmb();
- 	if ((pvt->mce_out + 1) % MCE_LOG_LEN == pvt->mce_in) {
-diff --git a/drivers/hwmon/coretemp.c b/drivers/hwmon/coretemp.c
-index 0790c98..19b4412 100644
---- a/drivers/hwmon/coretemp.c
-+++ b/drivers/hwmon/coretemp.c
-@@ -57,16 +57,15 @@ MODULE_PARM_DESC(tjmax, "TjMax value in degrees Celsius");
- #define TOTAL_ATTRS		(MAX_CORE_ATTRS + 1)
- #define MAX_CORE_DATA		(NUM_REAL_CORES + BASE_SYSFS_ATTR_NO)
- 
--#ifdef CONFIG_SMP
- #define TO_PHYS_ID(cpu)		cpu_data(cpu).phys_proc_id
- #define TO_CORE_ID(cpu)		cpu_data(cpu).cpu_core_id
-+#define TO_ATTR_NO(cpu)		(TO_CORE_ID(cpu) + BASE_SYSFS_ATTR_NO)
-+
-+#ifdef CONFIG_SMP
- #define for_each_sibling(i, cpu)	for_each_cpu(i, cpu_sibling_mask(cpu))
- #else
--#define TO_PHYS_ID(cpu)		(cpu)
--#define TO_CORE_ID(cpu)		(cpu)
- #define for_each_sibling(i, cpu)	for (i = 0; false; )
- #endif
--#define TO_ATTR_NO(cpu)		(TO_CORE_ID(cpu) + BASE_SYSFS_ATTR_NO)
- 
- /*
-  * Per-Core Temperature Data
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0002-Linux-3.2.26.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0002-Linux-3.2.26.patch
deleted file mode 100644
index 3015fd3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.26/0002-Linux-3.2.26.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From c155c854372ebc05bac443b7d5285dd8d5834c62 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sat, 4 Aug 2012 16:31:19 +0100
-Subject: [PATCH 2/2] Linux 3.2.26
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index e13e4e7..fa5acc83 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 25
-+SUBLEVEL = 26
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0001-sched-Fix-race-in-task_group.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0001-sched-Fix-race-in-task_group.patch
deleted file mode 100644
index ea42ba5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0001-sched-Fix-race-in-task_group.patch
+++ /dev/null
@@ -1,158 +0,0 @@
-From 7164208d7f019fd736a9b7411858b534b3b69bba Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <peterz at infradead.org>
-Date: Fri, 22 Jun 2012 13:36:05 +0200
-Subject: [PATCH 01/70] sched: Fix race in task_group()
-
-commit 8323f26ce3425460769605a6aece7a174edaa7d1 upstream
-
-Stefan reported a crash on a kernel before a3e5d1091c1 ("sched:
-Don't call task_group() too many times in set_task_rq()"), he
-found the reason to be that the multiple task_group()
-invocations in set_task_rq() returned different values.
-
-Looking at all that I found a lack of serialization and plain
-wrong comments.
-
-The below tries to fix it using an extra pointer which is
-updated under the appropriate scheduler locks. Its not pretty,
-but I can't really see another way given how all the cgroup
-stuff works.
-
-Reported-and-tested-by: Stefan Bader <stefan.bader at canonical.com>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Link: http://lkml.kernel.org/r/1340364965.18025.71.camel@twins
-Signed-off-by: Ingo Molnar <mingo at kernel.org>
-
-(backported to previous file names and layout)
-Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/init_task.h |   12 +++++++++++-
- include/linux/sched.h     |    5 ++++-
- kernel/sched.c            |   32 ++++++++++++++++++--------------
- 3 files changed, 33 insertions(+), 16 deletions(-)
-
-diff --git a/include/linux/init_task.h b/include/linux/init_task.h
-index df53fdf..cdde2b3 100644
---- a/include/linux/init_task.h
-+++ b/include/linux/init_task.h
-@@ -124,8 +124,17 @@ extern struct group_info init_groups;
- 
- extern struct cred init_cred;
- 
-+extern struct task_group root_task_group;
-+
-+#ifdef CONFIG_CGROUP_SCHED
-+# define INIT_CGROUP_SCHED(tsk)						\
-+	.sched_task_group = &root_task_group,
-+#else
-+# define INIT_CGROUP_SCHED(tsk)
-+#endif
-+
- #ifdef CONFIG_PERF_EVENTS
--# define INIT_PERF_EVENTS(tsk)					\
-+# define INIT_PERF_EVENTS(tsk)						\
- 	.perf_event_mutex = 						\
- 		 __MUTEX_INITIALIZER(tsk.perf_event_mutex),		\
- 	.perf_event_list = LIST_HEAD_INIT(tsk.perf_event_list),
-@@ -162,6 +171,7 @@ extern struct cred init_cred;
- 	},								\
- 	.tasks		= LIST_HEAD_INIT(tsk.tasks),			\
- 	INIT_PUSHABLE_TASKS(tsk)					\
-+	INIT_CGROUP_SCHED(tsk)						\
- 	.ptraced	= LIST_HEAD_INIT(tsk.ptraced),			\
- 	.ptrace_entry	= LIST_HEAD_INIT(tsk.ptrace_entry),		\
- 	.real_parent	= &tsk,						\
-diff --git a/include/linux/sched.h b/include/linux/sched.h
-index d336c35..1e86bb4 100644
---- a/include/linux/sched.h
-+++ b/include/linux/sched.h
-@@ -1236,6 +1236,9 @@ struct task_struct {
- 	const struct sched_class *sched_class;
- 	struct sched_entity se;
- 	struct sched_rt_entity rt;
-+#ifdef CONFIG_CGROUP_SCHED
-+	struct task_group *sched_task_group;
-+#endif
- 
- #ifdef CONFIG_PREEMPT_NOTIFIERS
- 	/* list of struct preempt_notifier: */
-@@ -2646,7 +2649,7 @@ extern int sched_group_set_rt_period(struct task_group *tg,
- extern long sched_group_rt_period(struct task_group *tg);
- extern int sched_rt_can_attach(struct task_group *tg, struct task_struct *tsk);
- #endif
--#endif
-+#endif /* CONFIG_CGROUP_SCHED */
- 
- extern int task_can_switch_user(struct user_struct *up,
- 					struct task_struct *tsk);
-diff --git a/kernel/sched.c b/kernel/sched.c
-index 9cd8ca7..e0431c4 100644
---- a/kernel/sched.c
-+++ b/kernel/sched.c
-@@ -746,22 +746,19 @@ static inline int cpu_of(struct rq *rq)
- /*
-  * Return the group to which this tasks belongs.
-  *
-- * We use task_subsys_state_check() and extend the RCU verification with
-- * pi->lock and rq->lock because cpu_cgroup_attach() holds those locks for each
-- * task it moves into the cgroup. Therefore by holding either of those locks,
-- * we pin the task to the current cgroup.
-+ * We cannot use task_subsys_state() and friends because the cgroup
-+ * subsystem changes that value before the cgroup_subsys::attach() method
-+ * is called, therefore we cannot pin it and might observe the wrong value.
-+ *
-+ * The same is true for autogroup's p->signal->autogroup->tg, the autogroup
-+ * core changes this before calling sched_move_task().
-+ *
-+ * Instead we use a 'copy' which is updated from sched_move_task() while
-+ * holding both task_struct::pi_lock and rq::lock.
-  */
- static inline struct task_group *task_group(struct task_struct *p)
- {
--	struct task_group *tg;
--	struct cgroup_subsys_state *css;
--
--	css = task_subsys_state_check(p, cpu_cgroup_subsys_id,
--			lockdep_is_held(&p->pi_lock) ||
--			lockdep_is_held(&task_rq(p)->lock));
--	tg = container_of(css, struct task_group, css);
--
--	return autogroup_task_group(p, tg);
-+	return p->sched_task_group;
- }
- 
- /* Change a task's cfs_rq and parent entity if it moves across CPUs/groups */
-@@ -2372,7 +2369,7 @@ void set_task_cpu(struct task_struct *p, unsigned int new_cpu)
- 	 * a task's CPU. ->pi_lock for waking tasks, rq->lock for runnable tasks.
- 	 *
- 	 * sched_move_task() holds both and thus holding either pins the cgroup,
--	 * see set_task_rq().
-+	 * see task_group().
- 	 *
- 	 * Furthermore, all task_rq users should acquire both locks, see
- 	 * task_rq_lock().
-@@ -8952,6 +8949,7 @@ void sched_destroy_group(struct task_group *tg)
-  */
- void sched_move_task(struct task_struct *tsk)
- {
-+	struct task_group *tg;
- 	int on_rq, running;
- 	unsigned long flags;
- 	struct rq *rq;
-@@ -8966,6 +8964,12 @@ void sched_move_task(struct task_struct *tsk)
- 	if (unlikely(running))
- 		tsk->sched_class->put_prev_task(rq, tsk);
- 
-+	tg = container_of(task_subsys_state_check(tsk, cpu_cgroup_subsys_id,
-+				lockdep_is_held(&tsk->sighand->siglock)),
-+			  struct task_group, css);
-+	tg = autogroup_task_group(tsk, tg);
-+	tsk->sched_task_group = tg;
-+
- #ifdef CONFIG_FAIR_GROUP_SCHED
- 	if (tsk->sched_class->task_move_group)
- 		tsk->sched_class->task_move_group(tsk, on_rq);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0002-floppy-Cleanup-disk-queue-before-caling-put_disk-if-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0002-floppy-Cleanup-disk-queue-before-caling-put_disk-if-.patch
deleted file mode 100644
index 5f258a3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0002-floppy-Cleanup-disk-queue-before-caling-put_disk-if-.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From d51b64762e38f2ef1577ddc9f6399a7b56aaeb25 Mon Sep 17 00:00:00 2001
-From: Vivek Goyal <vgoyal at redhat.com>
-Date: Wed, 8 Feb 2012 20:03:38 +0100
-Subject: [PATCH 02/70] floppy: Cleanup disk->queue before caling put_disk()
- if add_disk() was never called
-
-commit 3f9a5aabd0a9fe0e0cd308506f48963d79169aa7 upstream.
-
-add_disk() takes gendisk reference on request queue. If driver failed during
-initialization and never called add_disk() then that extra reference is not
-taken. That reference is put in put_disk(). floppy driver allocates the
-disk, allocates queue, sets disk->queue and then relizes that floppy
-controller is not present. It tries to tear down everything and tries to
-put a reference down in put_disk() which was never taken.
-
-In such error cases cleanup disk->queue before calling put_disk() so that
-we never try to put down a reference which was never taken in first place.
-
-Reported-and-tested-by: Suresh Jayaraman <sjayaraman at suse.com>
-Tested-by: Dirk Gouders <gouders at et.bocholt.fh-gelsenkirchen.de>
-Signed-off-by: Vivek Goyal <vgoyal at redhat.com>
-Acked-by: Tejun Heo <tj at kernel.org>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/block/floppy.c |    8 +++++++-
- 1 files changed, 7 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/block/floppy.c b/drivers/block/floppy.c
-index 9955a53..c864add 100644
---- a/drivers/block/floppy.c
-+++ b/drivers/block/floppy.c
-@@ -4369,8 +4369,14 @@ out_unreg_blkdev:
- out_put_disk:
- 	while (dr--) {
- 		del_timer_sync(&motor_off_timer[dr]);
--		if (disks[dr]->queue)
-+		if (disks[dr]->queue) {
- 			blk_cleanup_queue(disks[dr]->queue);
-+			/*
-+			 * put_disk() is not paired with add_disk() and
-+			 * will put queue reference one extra time. fix it.
-+			 */
-+			disks[dr]->queue = NULL;
-+		}
- 		put_disk(disks[dr]);
- 	}
- 	return err;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0003-xen-mark-local-pages-as-FOREIGN-in-the-m2p_override.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0003-xen-mark-local-pages-as-FOREIGN-in-the-m2p_override.patch
deleted file mode 100644
index a111e55..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0003-xen-mark-local-pages-as-FOREIGN-in-the-m2p_override.patch
+++ /dev/null
@@ -1,156 +0,0 @@
-From 0619fd368e61287667b8e77ae17b332e196f6258 Mon Sep 17 00:00:00 2001
-From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Date: Wed, 23 May 2012 18:57:20 +0100
-Subject: [PATCH 03/70] xen: mark local pages as FOREIGN in the m2p_override
-
-commit b9e0d95c041ca2d7ad297ee37c2e9cfab67a188f upstream.
-
-When the frontend and the backend reside on the same domain, even if we
-add pages to the m2p_override, these pages will never be returned by
-mfn_to_pfn because the check "get_phys_to_machine(pfn) != mfn" will
-always fail, so the pfn of the frontend will be returned instead
-(resulting in a deadlock because the frontend pages are already locked).
-
-INFO: task qemu-system-i38:1085 blocked for more than 120 seconds.
-"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
-qemu-system-i38 D ffff8800cfc137c0     0  1085      1 0x00000000
- ffff8800c47ed898 0000000000000282 ffff8800be4596b0 00000000000137c0
- ffff8800c47edfd8 ffff8800c47ec010 00000000000137c0 00000000000137c0
- ffff8800c47edfd8 00000000000137c0 ffffffff82213020 ffff8800be4596b0
-Call Trace:
- [<ffffffff81101ee0>] ? __lock_page+0x70/0x70
- [<ffffffff81a0fdd9>] schedule+0x29/0x70
- [<ffffffff81a0fe80>] io_schedule+0x60/0x80
- [<ffffffff81101eee>] sleep_on_page+0xe/0x20
- [<ffffffff81a0e1ca>] __wait_on_bit_lock+0x5a/0xc0
- [<ffffffff81101ed7>] __lock_page+0x67/0x70
- [<ffffffff8106f750>] ? autoremove_wake_function+0x40/0x40
- [<ffffffff811867e6>] ? bio_add_page+0x36/0x40
- [<ffffffff8110b692>] set_page_dirty_lock+0x52/0x60
- [<ffffffff81186021>] bio_set_pages_dirty+0x51/0x70
- [<ffffffff8118c6b4>] do_blockdev_direct_IO+0xb24/0xeb0
- [<ffffffff811e71a0>] ? ext3_get_blocks_handle+0xe00/0xe00
- [<ffffffff8118ca95>] __blockdev_direct_IO+0x55/0x60
- [<ffffffff811e71a0>] ? ext3_get_blocks_handle+0xe00/0xe00
- [<ffffffff811e91c8>] ext3_direct_IO+0xf8/0x390
- [<ffffffff811e71a0>] ? ext3_get_blocks_handle+0xe00/0xe00
- [<ffffffff81004b60>] ? xen_mc_flush+0xb0/0x1b0
- [<ffffffff81104027>] generic_file_aio_read+0x737/0x780
- [<ffffffff813bedeb>] ? gnttab_map_refs+0x15b/0x1e0
- [<ffffffff811038f0>] ? find_get_pages+0x150/0x150
- [<ffffffff8119736c>] aio_rw_vect_retry+0x7c/0x1d0
- [<ffffffff811972f0>] ? lookup_ioctx+0x90/0x90
- [<ffffffff81198856>] aio_run_iocb+0x66/0x1a0
- [<ffffffff811998b8>] do_io_submit+0x708/0xb90
- [<ffffffff81199d50>] sys_io_submit+0x10/0x20
- [<ffffffff81a18d69>] system_call_fastpath+0x16/0x1b
-
-The explanation is in the comment within the code:
-
-We need to do this because the pages shared by the frontend
-(xen-blkfront) can be already locked (lock_page, called by
-do_read_cache_page); when the userspace backend tries to use them
-with direct_IO, mfn_to_pfn returns the pfn of the frontend, so
-do_blockdev_direct_IO is going to try to lock the same pages
-again resulting in a deadlock.
-
-A simplified call graph looks like this:
-
-pygrub                          QEMU
------------------------------------------------
-do_read_cache_page              io_submit
-  |                              |
-lock_page                       ext3_direct_IO
-                                 |
-                                bio_add_page
-                                 |
-                                lock_page
-
-Internally the xen-blkback uses m2p_add_override to swizzle (temporarily)
-a 'struct page' to have a different MFN (so that it can point to another
-guest). It also can easily find out whether another pfn corresponding
-to the mfn exists in the m2p, and can set the FOREIGN bit
-in the p2m, making sure that mfn_to_pfn returns the pfn of the backend.
-
-This allows the backend to perform direct_IO on these pages, but as a
-side effect prevents the frontend from using get_user_pages_fast on
-them while they are being shared with the backend.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/xen/p2m.c |   36 ++++++++++++++++++++++++++++++++++++
- 1 files changed, 36 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/xen/p2m.c b/arch/x86/xen/p2m.c
-index 1b267e7..00a03854 100644
---- a/arch/x86/xen/p2m.c
-+++ b/arch/x86/xen/p2m.c
-@@ -686,6 +686,7 @@ int m2p_add_override(unsigned long mfn, struct page *page,
- 	unsigned long uninitialized_var(address);
- 	unsigned level;
- 	pte_t *ptep = NULL;
-+	int ret = 0;
- 
- 	pfn = page_to_pfn(page);
- 	if (!PageHighMem(page)) {
-@@ -721,6 +722,24 @@ int m2p_add_override(unsigned long mfn, struct page *page,
- 	list_add(&page->lru,  &m2p_overrides[mfn_hash(mfn)]);
- 	spin_unlock_irqrestore(&m2p_override_lock, flags);
- 
-+	/* p2m(m2p(mfn)) == mfn: the mfn is already present somewhere in
-+	 * this domain. Set the FOREIGN_FRAME_BIT in the p2m for the other
-+	 * pfn so that the following mfn_to_pfn(mfn) calls will return the
-+	 * pfn from the m2p_override (the backend pfn) instead.
-+	 * We need to do this because the pages shared by the frontend
-+	 * (xen-blkfront) can be already locked (lock_page, called by
-+	 * do_read_cache_page); when the userspace backend tries to use them
-+	 * with direct_IO, mfn_to_pfn returns the pfn of the frontend, so
-+	 * do_blockdev_direct_IO is going to try to lock the same pages
-+	 * again resulting in a deadlock.
-+	 * As a side effect get_user_pages_fast might not be safe on the
-+	 * frontend pages while they are being shared with the backend,
-+	 * because mfn_to_pfn (that ends up being called by GUPF) will
-+	 * return the backend pfn rather than the frontend pfn. */
-+	ret = __get_user(pfn, &machine_to_phys_mapping[mfn]);
-+	if (ret == 0 && get_phys_to_machine(pfn) == mfn)
-+		set_phys_to_machine(pfn, FOREIGN_FRAME(mfn));
-+
- 	return 0;
- }
- EXPORT_SYMBOL_GPL(m2p_add_override);
-@@ -732,6 +751,7 @@ int m2p_remove_override(struct page *page, bool clear_pte)
- 	unsigned long uninitialized_var(address);
- 	unsigned level;
- 	pte_t *ptep = NULL;
-+	int ret = 0;
- 
- 	pfn = page_to_pfn(page);
- 	mfn = get_phys_to_machine(pfn);
-@@ -801,6 +821,22 @@ int m2p_remove_override(struct page *page, bool clear_pte)
- 	} else
- 		set_phys_to_machine(pfn, page->index);
- 
-+	/* p2m(m2p(mfn)) == FOREIGN_FRAME(mfn): the mfn is already present
-+	 * somewhere in this domain, even before being added to the
-+	 * m2p_override (see comment above in m2p_add_override).
-+	 * If there are no other entries in the m2p_override corresponding
-+	 * to this mfn, then remove the FOREIGN_FRAME_BIT from the p2m for
-+	 * the original pfn (the one shared by the frontend): the backend
-+	 * cannot do any IO on this page anymore because it has been
-+	 * unshared. Removing the FOREIGN_FRAME_BIT from the p2m entry of
-+	 * the original pfn causes mfn_to_pfn(mfn) to return the frontend
-+	 * pfn again. */
-+	mfn &= ~FOREIGN_FRAME_BIT;
-+	ret = __get_user(pfn, &machine_to_phys_mapping[mfn]);
-+	if (ret == 0 && get_phys_to_machine(pfn) == FOREIGN_FRAME(mfn) &&
-+			m2p_find_override(mfn) == NULL)
-+		set_phys_to_machine(pfn, mfn);
-+
- 	return 0;
- }
- EXPORT_SYMBOL_GPL(m2p_remove_override);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0004-lirc_sir-make-device-registration-work.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0004-lirc_sir-make-device-registration-work.patch
deleted file mode 100644
index 9a3e2ad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0004-lirc_sir-make-device-registration-work.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From 03d61a0ca7ab54f6fb1524f4313afd1811fde803 Mon Sep 17 00:00:00 2001
-From: Jarod Wilson <jarod at redhat.com>
-Date: Mon, 4 Jun 2012 13:05:24 -0300
-Subject: [PATCH 04/70] lirc_sir: make device registration work
-
-commit 4b71ca6bce8fab3d08c61bf330e781f957934ae1 upstream.
-
-For one, the driver device pointer needs to be filled in, or the lirc core
-will refuse to load the driver. And we really need to wire up all the
-platform_device bits. This has been tested via the lirc sourceforge tree
-and verified to work, been sitting there for months, finally getting
-around to sending it. :\
-
-CC: Josh Boyer <jwboyer at redhat.com>
-Signed-off-by: Jarod Wilson <jarod at redhat.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/staging/media/lirc/lirc_sir.c |   60 +++++++++++++++++++++++++++++++-
- 1 files changed, 58 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/staging/media/lirc/lirc_sir.c b/drivers/staging/media/lirc/lirc_sir.c
-index 6903d39..90e9e32 100644
---- a/drivers/staging/media/lirc/lirc_sir.c
-+++ b/drivers/staging/media/lirc/lirc_sir.c
-@@ -53,6 +53,7 @@
- #include <linux/io.h>
- #include <asm/irq.h>
- #include <linux/fcntl.h>
-+#include <linux/platform_device.h>
- #ifdef LIRC_ON_SA1100
- #include <asm/hardware.h>
- #ifdef CONFIG_SA1100_COLLIE
-@@ -488,9 +489,11 @@ static struct lirc_driver driver = {
- 	.owner		= THIS_MODULE,
- };
- 
-+static struct platform_device *lirc_sir_dev;
- 
- static int init_chrdev(void)
- {
-+	driver.dev = &lirc_sir_dev->dev;
- 	driver.minor = lirc_register_driver(&driver);
- 	if (driver.minor < 0) {
- 		printk(KERN_ERR LIRC_DRIVER_NAME ": init_chrdev() failed.\n");
-@@ -1216,20 +1219,71 @@ static int init_lirc_sir(void)
- 	return 0;
- }
- 
-+static int __devinit lirc_sir_probe(struct platform_device *dev)
-+{
-+	return 0;
-+}
-+
-+static int __devexit lirc_sir_remove(struct platform_device *dev)
-+{
-+	return 0;
-+}
-+
-+static struct platform_driver lirc_sir_driver = {
-+	.probe		= lirc_sir_probe,
-+	.remove		= __devexit_p(lirc_sir_remove),
-+	.driver		= {
-+		.name	= "lirc_sir",
-+		.owner	= THIS_MODULE,
-+	},
-+};
- 
- static int __init lirc_sir_init(void)
- {
- 	int retval;
- 
-+	retval = platform_driver_register(&lirc_sir_driver);
-+	if (retval) {
-+		printk(KERN_ERR LIRC_DRIVER_NAME ": Platform driver register "
-+		       "failed!\n");
-+		return -ENODEV;
-+	}
-+
-+	lirc_sir_dev = platform_device_alloc("lirc_dev", 0);
-+	if (!lirc_sir_dev) {
-+		printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device alloc "
-+		       "failed!\n");
-+		retval = -ENOMEM;
-+		goto pdev_alloc_fail;
-+	}
-+
-+	retval = platform_device_add(lirc_sir_dev);
-+	if (retval) {
-+		printk(KERN_ERR LIRC_DRIVER_NAME ": Platform device add "
-+		       "failed!\n");
-+		retval = -ENODEV;
-+		goto pdev_add_fail;
-+	}
-+
- 	retval = init_chrdev();
- 	if (retval < 0)
--		return retval;
-+		goto fail;
-+
- 	retval = init_lirc_sir();
- 	if (retval) {
- 		drop_chrdev();
--		return retval;
-+		goto fail;
- 	}
-+
- 	return 0;
-+
-+fail:
-+	platform_device_del(lirc_sir_dev);
-+pdev_add_fail:
-+	platform_device_put(lirc_sir_dev);
-+pdev_alloc_fail:
-+	platform_driver_unregister(&lirc_sir_driver);
-+	return retval;
- }
- 
- static void __exit lirc_sir_exit(void)
-@@ -1237,6 +1291,8 @@ static void __exit lirc_sir_exit(void)
- 	drop_hardware();
- 	drop_chrdev();
- 	drop_port();
-+	platform_device_unregister(lirc_sir_dev);
-+	platform_driver_unregister(&lirc_sir_driver);
- 	printk(KERN_INFO LIRC_DRIVER_NAME ": Uninstalled.\n");
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0005-stable-update-references-to-older-2.6-versions-for-3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0005-stable-update-references-to-older-2.6-versions-for-3.patch
deleted file mode 100644
index 78b6729..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0005-stable-update-references-to-older-2.6-versions-for-3.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From ed3c699ad6609ac8df5b4cea1805b7c5b0235c1f Mon Sep 17 00:00:00 2001
-From: Paul Gortmaker <paul.gortmaker at windriver.com>
-Date: Tue, 5 Jun 2012 11:15:50 -0400
-Subject: [PATCH 05/70] stable: update references to older 2.6 versions for
- 3.x
-
-commit 2584f5212d97b664be250ad5700a2d0fee31a10d upstream.
-
-Also add information on where the respective trees are.
-
-Signed-off-by: Paul Gortmaker <paul.gortmaker at windriver.com>
-Acked-by: Rob Landley <rob at landley.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- Documentation/stable_kernel_rules.txt |   19 ++++++++++++++-----
- 1 files changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/Documentation/stable_kernel_rules.txt b/Documentation/stable_kernel_rules.txt
-index e1f856b..22bf11b 100644
---- a/Documentation/stable_kernel_rules.txt
-+++ b/Documentation/stable_kernel_rules.txt
-@@ -1,4 +1,4 @@
--Everything you ever wanted to know about Linux 2.6 -stable releases.
-+Everything you ever wanted to know about Linux -stable releases.
- 
- Rules on what kind of patches are accepted, and which ones are not, into the
- "-stable" tree:
-@@ -41,10 +41,10 @@ Procedure for submitting patches to the -stable tree:
-    cherry-picked than this can be specified in the following format in
-    the sign-off area:
- 
--     Cc: <stable at vger.kernel.org> # .32.x: a1f84a3: sched: Check for idle
--     Cc: <stable at vger.kernel.org> # .32.x: 1b9508f: sched: Rate-limit newidle
--     Cc: <stable at vger.kernel.org> # .32.x: fd21073: sched: Fix affinity logic
--     Cc: <stable at vger.kernel.org> # .32.x
-+     Cc: <stable at vger.kernel.org> # 3.3.x: a1f84a3: sched: Check for idle
-+     Cc: <stable at vger.kernel.org> # 3.3.x: 1b9508f: sched: Rate-limit newidle
-+     Cc: <stable at vger.kernel.org> # 3.3.x: fd21073: sched: Fix affinity logic
-+     Cc: <stable at vger.kernel.org> # 3.3.x
-     Signed-off-by: Ingo Molnar <mingo at elte.hu>
- 
-    The tag sequence has the meaning of:
-@@ -78,6 +78,15 @@ Review cycle:
-    security kernel team, and not go through the normal review cycle.
-    Contact the kernel security team for more details on this procedure.
- 
-+Trees:
-+
-+ - The queues of patches, for both completed versions and in progress
-+   versions can be found at:
-+	http://git.kernel.org/?p=linux/kernel/git/stable/stable-queue.git
-+ - The finalized and tagged releases of all stable kernels can be found
-+   in separate branches per version at:
-+	http://git.kernel.org/?p=linux/kernel/git/stable/linux-stable.git
-+
- 
- Review committee:
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0006-ALSA-hda-add-dock-support-for-Thinkpad-X230-Tablet.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0006-ALSA-hda-add-dock-support-for-Thinkpad-X230-Tablet.patch
deleted file mode 100644
index d2a0bcd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0006-ALSA-hda-add-dock-support-for-Thinkpad-X230-Tablet.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From bad9b02f55b18da07c00945ac46d33636331bfa0 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Fri, 20 Jul 2012 10:37:25 +0200
-Subject: [PATCH 06/70] ALSA: hda - add dock support for Thinkpad X230 Tablet
-
-commit 108cc108a3bb42fe4705df1317ff98e1e29428a6 upstream.
-
-Also add a model/fixup string "lenovo-dock", so that other Thinkpad
-users will be able to test this fixup easily, to see if it enables
-dock I/O for them as well.
-
-BugLink: https://bugs.launchpad.net/bugs/1026953
-Tested-by: John McCarron <john.mccarron at canonical.com>
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- Documentation/sound/alsa/HD-Audio-Models.txt |    3 +-
- sound/pci/hda/patch_realtek.c                |   27 ++++++++++++++++++++++++++
- 2 files changed, 29 insertions(+), 1 deletions(-)
-
-diff --git a/Documentation/sound/alsa/HD-Audio-Models.txt b/Documentation/sound/alsa/HD-Audio-Models.txt
-index edad99a..69820b2 100644
---- a/Documentation/sound/alsa/HD-Audio-Models.txt
-+++ b/Documentation/sound/alsa/HD-Audio-Models.txt
-@@ -60,10 +60,11 @@ ALC267/268
- ==========
-   N/A
- 
--ALC269
-+ALC269/270/275/276/280/282
- ======
-   laptop-amic	Laptops with analog-mic input
-   laptop-dmic	Laptops with digital-mic input
-+  lenovo-dock   Enables docking station I/O for some Lenovos
- 
- ALC662/663/272
- ==============
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 191fd78..6ae58b2 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4809,6 +4809,15 @@ static int alc269_resume(struct hda_codec *codec)
- }
- #endif /* CONFIG_PM */
- 
-+static void alc269_fixup_pincfg_no_hp_to_lineout(struct hda_codec *codec,
-+						 const struct alc_fixup *fix, int action)
-+{
-+	struct alc_spec *spec = codec->spec;
-+
-+	if (action == ALC_FIXUP_ACT_PRE_PROBE)
-+		spec->parse_flags = HDA_PINCFG_NO_HP_FIXUP;
-+}
-+
- static void alc269_fixup_hweq(struct hda_codec *codec,
- 			       const struct alc_fixup *fix, int action)
- {
-@@ -4909,6 +4918,8 @@ enum {
- 	ALC269_FIXUP_DMIC,
- 	ALC269VB_FIXUP_AMIC,
- 	ALC269VB_FIXUP_DMIC,
-+	ALC269_FIXUP_LENOVO_DOCK,
-+	ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT,
- };
- 
- static const struct alc_fixup alc269_fixups[] = {
-@@ -5029,6 +5040,20 @@ static const struct alc_fixup alc269_fixups[] = {
- 			{ }
- 		},
- 	},
-+	[ALC269_FIXUP_LENOVO_DOCK] = {
-+		.type = ALC_FIXUP_PINS,
-+		.v.pins = (const struct alc_pincfg[]) {
-+			{ 0x19, 0x23a11040 }, /* dock mic */
-+			{ 0x1b, 0x2121103f }, /* dock headphone */
-+			{ }
-+		},
-+		.chained = true,
-+		.chain_id = ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT
-+	},
-+	[ALC269_FIXUP_PINCFG_NO_HP_TO_LINEOUT] = {
-+		.type = ALC_FIXUP_FUNC,
-+		.v.func = alc269_fixup_pincfg_no_hp_to_lineout,
-+	},
- };
- 
- static const struct snd_pci_quirk alc269_fixup_tbl[] = {
-@@ -5051,6 +5076,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE),
-+	SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_QUANTA_MUTE),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Lenovo Ideapd", ALC269_FIXUP_PCM_44K),
- 	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
-@@ -5109,6 +5135,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- static const struct alc_model_fixup alc269_fixup_models[] = {
- 	{.id = ALC269_FIXUP_AMIC, .name = "laptop-amic"},
- 	{.id = ALC269_FIXUP_DMIC, .name = "laptop-dmic"},
-+	{.id = ALC269_FIXUP_LENOVO_DOCK, .name = "lenovo-dock"},
- 	{}
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0007-cfg80211-fix-interface-combinations-check-for-ADHOC-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0007-cfg80211-fix-interface-combinations-check-for-ADHOC-.patch
deleted file mode 100644
index 3238c87..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0007-cfg80211-fix-interface-combinations-check-for-ADHOC-.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 41cc15f973d21bd51d318e8f5d67512821561d89 Mon Sep 17 00:00:00 2001
-From: Liang Li <liang.li at windriver.com>
-Date: Thu, 2 Aug 2012 18:55:41 -0400
-Subject: [PATCH 07/70] cfg80211: fix interface combinations check for
- ADHOC(IBSS)
-
-partial of commit 8e8b41f9d8c8e63fc92f899ace8da91a490ac573 upstream.
-
-As part of commit 463454b5dbd8 ("cfg80211: fix interface
-combinations check"), this extra check was introduced:
-
-       if ((all_iftypes & used_iftypes) != used_iftypes)
-               goto cont;
-
-However, most wireless NIC drivers did not advertise ADHOC in
-wiphy.iface_combinations[i].limits[] and hence we'll get -EBUSY
-when we bring up a ADHOC wlan with commands similar to:
-
- # iwconfig wlan0 mode ad-hoc && ifconfig wlan0 up
-
-In commit 8e8b41f9d8c8e ("cfg80211: enforce lack of interface
-combinations"), the change below fixes the issue:
-
-       if (total == 1)
-               return 0;
-
-But it also introduces other dependencies for stable. For example,
-a full cherry pick of 8e8b41f9d8c8e would introduce additional
-regressions unless we also start cherry picking driver specific
-fixes like the following:
-
-  9b4760e  ath5k: add possible wiphy interface combinations
-  1ae2fc2  mac80211_hwsim: advertise interface combinations
-  20c8e8d  ath9k: add possible wiphy interface combinations
-
-And the purpose of the 'if (total == 1)' is to cover the specific
-use case (IBSS, adhoc) that was mentioned above. So we just pick
-the specific part out from 8e8b41f9d8c8e here.
-
-Doing so gives stable kernels a way to fix the change introduced
-by 463454b5dbd8, without having to make cherry picks specific to
-various NIC drivers.
-
-Signed-off-by: Liang Li <liang.li at windriver.com>
-Signed-off-by: Paul Gortmaker <paul.gortmaker at windriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/util.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/net/wireless/util.c b/net/wireless/util.c
-index 74d5292..b5e4c1c 100644
---- a/net/wireless/util.c
-+++ b/net/wireless/util.c
-@@ -981,6 +981,9 @@ int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 	}
- 	mutex_unlock(&rdev->devlist_mtx);
- 
-+	if (total == 1)
-+		return 0;
-+
- 	for (i = 0; i < rdev->wiphy.n_iface_combinations; i++) {
- 		const struct ieee80211_iface_combination *c;
- 		struct ieee80211_iface_limit *limits;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0008-m68k-Correct-the-Atari-ALLOWINT-definition.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0008-m68k-Correct-the-Atari-ALLOWINT-definition.patch
deleted file mode 100644
index a6dd032..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0008-m68k-Correct-the-Atari-ALLOWINT-definition.patch
+++ /dev/null
@@ -1,97 +0,0 @@
-From b7cced0ffff904b0803fad89348dec227ab3c79a Mon Sep 17 00:00:00 2001
-From: Mikael Pettersson <mikpe at it.uu.se>
-Date: Thu, 19 Apr 2012 00:53:36 +0200
-Subject: [PATCH 08/70] m68k: Correct the Atari ALLOWINT definition
-
-commit c663600584a596b5e66258cc10716fb781a5c2c9 upstream.
-
-Booting a 3.2, 3.3, or 3.4-rc4 kernel on an Atari using the
-`nfeth' ethernet device triggers a WARN_ONCE() in generic irq
-handling code on the first irq for that device:
-
-WARNING: at kernel/irq/handle.c:146 handle_irq_event_percpu+0x134/0x142()
-irq 3 handler nfeth_interrupt+0x0/0x194 enabled interrupts
-Modules linked in:
-Call Trace: [<000299b2>] warn_slowpath_common+0x48/0x6a
- [<000299c0>] warn_slowpath_common+0x56/0x6a
- [<00029a4c>] warn_slowpath_fmt+0x2a/0x32
- [<0005b34c>] handle_irq_event_percpu+0x134/0x142
- [<0005b34c>] handle_irq_event_percpu+0x134/0x142
- [<0000a584>] nfeth_interrupt+0x0/0x194
- [<001ba0a8>] schedule_preempt_disabled+0x0/0xc
- [<0005b37a>] handle_irq_event+0x20/0x2c
- [<0005add4>] generic_handle_irq+0x2c/0x3a
- [<00002ab6>] do_IRQ+0x20/0x32
- [<0000289e>] auto_irqhandler_fixup+0x4/0x6
- [<00003144>] cpu_idle+0x22/0x2e
- [<001b8a78>] printk+0x0/0x18
- [<0024d112>] start_kernel+0x37a/0x386
- [<0003021d>] __do_proc_dointvec+0xb1/0x366
- [<0003021d>] __do_proc_dointvec+0xb1/0x366
- [<0024c31e>] _sinittext+0x31e/0x9c0
-
-After invoking the irq's handler the kernel sees !irqs_disabled()
-and concludes that the handler erroneously enabled interrupts.
-
-However, debugging shows that !irqs_disabled() is true even before
-the handler is invoked, which indicates a problem in the platform
-code rather than the specific driver.
-
-The warning does not occur in 3.1 or older kernels.
-
-It turns out that the ALLOWINT definition for Atari is incorrect.
-
-The Atari definition of ALLOWINT is ~0x400, the stated purpose of
-that is to avoid taking HSYNC interrupts.  irqs_disabled() returns
-true if the 3-bit ipl & 4 is non-zero.  The nfeth interrupt runs at
-ipl 3 (it's autovector 3), but 3 & 4 is zero so irqs_disabled() is
-false, and the warning above is generated.
-
-When interrupts are explicitly disabled, ipl is set to 7.  When they
-are enabled, ipl is masked with ALLOWINT.  On Atari this will result
-in ipl = 3, which blocks interrupts at ipl 3 and below.  So how come
-nfeth interrupts at ipl 3 are received at all?  That's because ipl
-is reset to 2 by Atari-specific code in default_idle(), again with
-the stated purpose of blocking HSYNC interrupts.  This discrepancy
-means that ipl 3 can remain blocked for longer than intended.
-
-Both default_idle() and falcon_hblhandler() identify HSYNC with
-ipl 2, and the "Atari ST/.../F030 Hardware Register Listing" agrees,
-but ALLOWINT is defined as if HSYNC was ipl 3.
-
-[As an experiment I modified default_idle() to reset ipl to 3, and
-as expected that resulted in all nfeth interrupts being blocked.]
-
-The fix is simple: define ALLOWINT as ~0x500 instead.  This makes
-arch_local_irq_enable() consistent with default_idle(), and prevents
-the !irqs_disabled() problems for ipl 3 interrupts.
-
-Tested on Atari running in an Aranym VM.
-
-Signed-off-by: Mikael Pettersson <mikpe at it.uu.se>
-Tested-by: Michael Schmitz <schmitzmic at googlemail.com> (on Falcon/CT60)
-[Geert Uytterhoeven: This version applies to v3.2..v3.4.]
-Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/m68k/include/asm/entry.h |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/m68k/include/asm/entry.h b/arch/m68k/include/asm/entry.h
-index c3c5a86..8798ebc 100644
---- a/arch/m68k/include/asm/entry.h
-+++ b/arch/m68k/include/asm/entry.h
-@@ -33,8 +33,8 @@
- 
- /* the following macro is used when enabling interrupts */
- #if defined(MACH_ATARI_ONLY)
--	/* block out HSYNC on the atari */
--#define ALLOWINT	(~0x400)
-+	/* block out HSYNC = ipl 2 on the atari */
-+#define ALLOWINT	(~0x500)
- #define	MAX_NOINT_IPL	3
- #else
- 	/* portable version */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0009-ene_ir-Fix-driver-initialisation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0009-ene_ir-Fix-driver-initialisation.patch
deleted file mode 100644
index 472f534..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0009-ene_ir-Fix-driver-initialisation.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 07187b4a8471054cf6698ddc3d72ce6b45b8544e Mon Sep 17 00:00:00 2001
-From: Luis Henriques <luis.henriques at canonical.com>
-Date: Tue, 19 Jun 2012 11:29:49 -0300
-Subject: [PATCH 09/70] ene_ir: Fix driver initialisation
-
-commit b31b021988fed9e3741a46918f14ba9b063811db upstream.
-
-commit 9ef449c6b31bb6a8e6dedc24de475a3b8c79be20 ("[media] rc: Postpone ISR
-registration") fixed an early ISR registration on several drivers.  It did
-however also introduced a bug by moving the invocation of pnp_port_start()
-to the end of the probe function.
-
-This patch fixes this issue by moving the invocation of pnp_port_start() to
-an earlier stage in the probe function.
-
-Cc: Jarod Wilson <jarod at redhat.com>
-Signed-off-by: Luis Henriques <luis.henriques at canonical.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/media/rc/ene_ir.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/media/rc/ene_ir.c b/drivers/media/rc/ene_ir.c
-index bef5296..647dd95 100644
---- a/drivers/media/rc/ene_ir.c
-+++ b/drivers/media/rc/ene_ir.c
-@@ -1018,6 +1018,8 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
- 
- 	spin_lock_init(&dev->hw_lock);
- 
-+	dev->hw_io = pnp_port_start(pnp_dev, 0);
-+
- 	pnp_set_drvdata(pnp_dev, dev);
- 	dev->pnp_dev = pnp_dev;
- 
-@@ -1072,7 +1074,6 @@ static int ene_probe(struct pnp_dev *pnp_dev, const struct pnp_device_id *id)
- 
- 	/* claim the resources */
- 	error = -EBUSY;
--	dev->hw_io = pnp_port_start(pnp_dev, 0);
- 	if (!request_region(dev->hw_io, ENE_IO_SIZE, ENE_DRIVER_NAME)) {
- 		dev->hw_io = -1;
- 		dev->irq = -1;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0010-nfsd4-our-filesystems-are-normally-case-sensitive.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0010-nfsd4-our-filesystems-are-normally-case-sensitive.patch
deleted file mode 100644
index de068e4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0010-nfsd4-our-filesystems-are-normally-case-sensitive.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6effad381853da1eb23ae2a04aac78009253ea74 Mon Sep 17 00:00:00 2001
-From: "J. Bruce Fields" <bfields at redhat.com>
-Date: Tue, 5 Jun 2012 16:52:06 -0400
-Subject: [PATCH 10/70] nfsd4: our filesystems are normally case sensitive
-
-commit 2930d381d22b9c56f40dd4c63a8fa59719ca2c3c upstream.
-
-Actually, xfs and jfs can optionally be case insensitive; we'll handle
-that case in later patches.
-
-Signed-off-by: J. Bruce Fields <bfields at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfsd/nfs4xdr.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/nfsd/nfs4xdr.c b/fs/nfsd/nfs4xdr.c
-index 9cfa60a..87a1746 100644
---- a/fs/nfsd/nfs4xdr.c
-+++ b/fs/nfsd/nfs4xdr.c
-@@ -2236,7 +2236,7 @@ out_acl:
- 	if (bmval0 & FATTR4_WORD0_CASE_INSENSITIVE) {
- 		if ((buflen -= 4) < 0)
- 			goto out_resource;
--		WRITE32(1);
-+		WRITE32(0);
- 	}
- 	if (bmval0 & FATTR4_WORD0_CASE_PRESERVING) {
- 		if ((buflen -= 4) < 0)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0011-random-Use-arch_get_random_int-instead-of-cycle-coun.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0011-random-Use-arch_get_random_int-instead-of-cycle-coun.patch
deleted file mode 100644
index 50e3091..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0011-random-Use-arch_get_random_int-instead-of-cycle-coun.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 396b7a076c7496b8d98861bbebe701de9a3b795a Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Thu, 22 Dec 2011 11:36:22 -0800
-Subject: [PATCH 11/70] random: Use arch_get_random_int instead of cycle
- counter if avail
-
-commit cf833d0b9937874b50ef2867c4e8badfd64948ce upstream.
-
-We still don't use rdrand in /dev/random, which just seems stupid. We
-accept the *cycle*counter* as a random input, but we don't accept
-rdrand? That's just broken.
-
-Sure, people can do things in user space (write to /dev/random, use
-rdrand in addition to /dev/random themselves etc etc), but that
-*still* seems to be a particularly stupid reason for saying "we
-shouldn't bother to try to do better in /dev/random".
-
-And even if somebody really doesn't trust rdrand as a source of random
-bytes, it seems singularly stupid to trust the cycle counter *more*.
-
-So I'd suggest the attached patch. I'm not going to even bother
-arguing that we should add more bits to the entropy estimate, because
-that's not the point - I don't care if /dev/random fills up slowly or
-not, I think it's just stupid to not use the bits we can get from
-rdrand and mix them into the strong randomness pool.
-
-Link: http://lkml.kernel.org/r/CA%2B55aFwn59N1=m651QAyTy-1gO1noGbK18zwKDwvwqnravA84A@mail.gmail.com
-Acked-by: "David S. Miller" <davem at davemloft.net>
-Acked-by: "Theodore Ts'o" <tytso at mit.edu>
-Acked-by: Herbert Xu <herbert at gondor.apana.org.au>
-Cc: Matt Mackall <mpm at selenic.com>
-Cc: Tony Luck <tony.luck at intel.com>
-Cc: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 6035ab8..85da874 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -624,8 +624,8 @@ static struct timer_rand_state input_timer_state;
- static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
- {
- 	struct {
--		cycles_t cycles;
- 		long jiffies;
-+		unsigned cycles;
- 		unsigned num;
- 	} sample;
- 	long delta, delta2, delta3;
-@@ -637,7 +637,11 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
- 		goto out;
- 
- 	sample.jiffies = jiffies;
--	sample.cycles = get_cycles();
-+
-+	/* Use arch random value, fall back to cycles */
-+	if (!arch_get_random_int(&sample.cycles))
-+		sample.cycles = get_cycles();
-+
- 	sample.num = num;
- 	mix_pool_bytes(&input_pool, &sample, sizeof(sample));
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0012-random-Use-arch-specific-RNG-to-initialize-the-entro.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0012-random-Use-arch-specific-RNG-to-initialize-the-entro.patch
deleted file mode 100644
index 623bc63..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0012-random-Use-arch-specific-RNG-to-initialize-the-entro.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 5633ed2c64b766f280942d8c0906f7ae77cf2c20 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Thu, 22 Dec 2011 16:28:01 -0500
-Subject: [PATCH 12/70] random: Use arch-specific RNG to initialize the
- entropy store
-
-commit 3e88bdff1c65145f7ba297ccec69c774afe4c785 upstream.
-
-If there is an architecture-specific random number generator (such as
-RDRAND for Intel architectures), use it to initialize /dev/random's
-entropy stores.  Even in the worst case, if RDRAND is something like
-AES(NSA_KEY, counter++), it won't hurt, and it will definitely help
-against any other adversaries.
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Link: http://lkml.kernel.org/r/1324589281-31931-1-git-send-email-tytso@mit.edu
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 85da874..3079477 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -965,6 +965,7 @@ EXPORT_SYMBOL(get_random_bytes);
-  */
- static void init_std_data(struct entropy_store *r)
- {
-+	int i;
- 	ktime_t now;
- 	unsigned long flags;
- 
-@@ -974,6 +975,11 @@ static void init_std_data(struct entropy_store *r)
- 
- 	now = ktime_get_real();
- 	mix_pool_bytes(r, &now, sizeof(now));
-+	for (i = r->poolinfo->poolwords; i; i--) {
-+		if (!arch_get_random_long(&flags))
-+			break;
-+		mix_pool_bytes(r, &flags, sizeof(flags));
-+	}
- 	mix_pool_bytes(r, utsname(), sizeof(*(utsname())));
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0013-random-Adjust-the-number-of-loops-when-initializing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0013-random-Adjust-the-number-of-loops-when-initializing.patch
deleted file mode 100644
index 03af3b2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0013-random-Adjust-the-number-of-loops-when-initializing.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 451f20f81b1619b22ecd823bb962d76e05a4afa6 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Mon, 16 Jan 2012 11:23:29 -0800
-Subject: [PATCH 13/70] random: Adjust the number of loops when initializing
-
-commit 2dac8e54f988ab58525505d7ef982493374433c3 upstream.
-
-When we are initializing using arch_get_random_long() we only need to
-loop enough times to touch all the bytes in the buffer; using
-poolwords for that does twice the number of operations necessary on a
-64-bit machine, since in the random number generator code "word" means
-32 bits.
-
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Cc: "Theodore Ts'o" <tytso at mit.edu>
-Link: http://lkml.kernel.org/r/1324589281-31931-1-git-send-email-tytso@mit.edu
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 3079477..9a2156d 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -975,7 +975,7 @@ static void init_std_data(struct entropy_store *r)
- 
- 	now = ktime_get_real();
- 	mix_pool_bytes(r, &now, sizeof(now));
--	for (i = r->poolinfo->poolwords; i; i--) {
-+	for (i = r->poolinfo->POOLBYTES; i > 0; i -= sizeof flags) {
- 		if (!arch_get_random_long(&flags))
- 			break;
- 		mix_pool_bytes(r, &flags, sizeof(flags));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0014-random-make-add_interrupt_randomness-do-something-sa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0014-random-make-add_interrupt_randomness-do-something-sa.patch
deleted file mode 100644
index 70a2ed5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0014-random-make-add_interrupt_randomness-do-something-sa.patch
+++ /dev/null
@@ -1,288 +0,0 @@
-From 7fdc8a8f6b3498487bee19b2f01969245f8ac85a Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Mon, 2 Jul 2012 07:52:16 -0400
-Subject: [PATCH 14/70] random: make 'add_interrupt_randomness()' do something
- sane
-
-commit 775f4b297b780601e61787b766f306ed3e1d23eb upstream.
-
-We've been moving away from add_interrupt_randomness() for various
-reasons: it's too expensive to do on every interrupt, and flooding the
-CPU with interrupts could theoretically cause bogus floods of entropy
-from a somewhat externally controllable source.
-
-This solves both problems by limiting the actual randomness addition
-to just once a second or after 64 interrupts, whicever comes first.
-During that time, the interrupt cycle data is buffered up in a per-cpu
-pool.  Also, we make sure the the nonblocking pool used by urandom is
-initialized before we start feeding the normal input pool.  This
-assures that /dev/urandom is returning unpredictable data as soon as
-possible.
-
-(Based on an original patch by Linus, but significantly modified by
-tytso.)
-
-Tested-by: Eric Wustrow <ewust at umich.edu>
-Reported-by: Eric Wustrow <ewust at umich.edu>
-Reported-by: Nadia Heninger <nadiah at cs.ucsd.edu>
-Reported-by: Zakir Durumeric <zakir at umich.edu>
-Reported-by: J. Alex Halderman <jhalderm at umich.edu>.
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c     |  103 +++++++++++++++++++++++++++++++++++++-------
- drivers/mfd/ab3100-core.c |    2 -
- include/linux/random.h    |    2 +-
- kernel/irq/handle.c       |    7 +--
- 4 files changed, 90 insertions(+), 24 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 9a2156d..a30df99 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -127,19 +127,15 @@
-  *
-  * 	void add_input_randomness(unsigned int type, unsigned int code,
-  *                                unsigned int value);
-- * 	void add_interrupt_randomness(int irq);
-+ *	void add_interrupt_randomness(int irq, int irq_flags);
-  * 	void add_disk_randomness(struct gendisk *disk);
-  *
-  * add_input_randomness() uses the input layer interrupt timing, as well as
-  * the event type information from the hardware.
-  *
-- * add_interrupt_randomness() uses the inter-interrupt timing as random
-- * inputs to the entropy pool.  Note that not all interrupts are good
-- * sources of randomness!  For example, the timer interrupts is not a
-- * good choice, because the periodicity of the interrupts is too
-- * regular, and hence predictable to an attacker.  Network Interface
-- * Controller interrupts are a better measure, since the timing of the
-- * NIC interrupts are more unpredictable.
-+ * add_interrupt_randomness() uses the interrupt timing as random
-+ * inputs to the entropy pool. Using the cycle counters and the irq source
-+ * as inputs, it feeds the randomness roughly once a second.
-  *
-  * add_disk_randomness() uses what amounts to the seek time of block
-  * layer request events, on a per-disk_devt basis, as input to the
-@@ -248,6 +244,7 @@
- #include <linux/percpu.h>
- #include <linux/cryptohash.h>
- #include <linux/fips.h>
-+#include <linux/ptrace.h>
- 
- #ifdef CONFIG_GENERIC_HARDIRQS
- # include <linux/irq.h>
-@@ -256,6 +253,7 @@
- #include <asm/processor.h>
- #include <asm/uaccess.h>
- #include <asm/irq.h>
-+#include <asm/irq_regs.h>
- #include <asm/io.h>
- 
- /*
-@@ -421,7 +419,9 @@ struct entropy_store {
- 	spinlock_t lock;
- 	unsigned add_ptr;
- 	int entropy_count;
-+	int entropy_total;
- 	int input_rotate;
-+	unsigned int initialized:1;
- 	__u8 last_data[EXTRACT_SIZE];
- };
- 
-@@ -454,6 +454,10 @@ static struct entropy_store nonblocking_pool = {
- 	.pool = nonblocking_pool_data
- };
- 
-+static __u32 const twist_table[8] = {
-+	0x00000000, 0x3b6e20c8, 0x76dc4190, 0x4db26158,
-+	0xedb88320, 0xd6d6a3e8, 0x9b64c2b0, 0xa00ae278 };
-+
- /*
-  * This function adds bytes into the entropy "pool".  It does not
-  * update the entropy estimate.  The caller should call
-@@ -467,9 +471,6 @@ static struct entropy_store nonblocking_pool = {
- static void mix_pool_bytes_extract(struct entropy_store *r, const void *in,
- 				   int nbytes, __u8 out[64])
- {
--	static __u32 const twist_table[8] = {
--		0x00000000, 0x3b6e20c8, 0x76dc4190, 0x4db26158,
--		0xedb88320, 0xd6d6a3e8, 0x9b64c2b0, 0xa00ae278 };
- 	unsigned long i, j, tap1, tap2, tap3, tap4, tap5;
- 	int input_rotate;
- 	int wordmask = r->poolinfo->poolwords - 1;
-@@ -528,6 +529,36 @@ static void mix_pool_bytes(struct entropy_store *r, const void *in, int bytes)
-        mix_pool_bytes_extract(r, in, bytes, NULL);
- }
- 
-+struct fast_pool {
-+	__u32		pool[4];
-+	unsigned long	last;
-+	unsigned short	count;
-+	unsigned char	rotate;
-+	unsigned char	last_timer_intr;
-+};
-+
-+/*
-+ * This is a fast mixing routine used by the interrupt randomness
-+ * collector.  It's hardcoded for an 128 bit pool and assumes that any
-+ * locks that might be needed are taken by the caller.
-+ */
-+static void fast_mix(struct fast_pool *f, const void *in, int nbytes)
-+{
-+	const char	*bytes = in;
-+	__u32		w;
-+	unsigned	i = f->count;
-+	unsigned	input_rotate = f->rotate;
-+
-+	while (nbytes--) {
-+		w = rol32(*bytes++, input_rotate & 31) ^ f->pool[i & 3] ^
-+			f->pool[(i + 1) & 3];
-+		f->pool[i & 3] = (w >> 3) ^ twist_table[w & 7];
-+		input_rotate += (i++ & 3) ? 7 : 14;
-+	}
-+	f->count = i;
-+	f->rotate = input_rotate;
-+}
-+
- /*
-  * Credit (or debit) the entropy store with n bits of entropy
-  */
-@@ -551,6 +582,12 @@ static void credit_entropy_bits(struct entropy_store *r, int nbits)
- 		entropy_count = r->poolinfo->POOLBITS;
- 	r->entropy_count = entropy_count;
- 
-+	if (!r->initialized && nbits > 0) {
-+		r->entropy_total += nbits;
-+		if (r->entropy_total > 128)
-+			r->initialized = 1;
-+	}
-+
- 	/* should we wake readers? */
- 	if (r == &input_pool && entropy_count >= random_read_wakeup_thresh) {
- 		wake_up_interruptible(&random_read_wait);
-@@ -700,17 +737,48 @@ void add_input_randomness(unsigned int type, unsigned int code,
- }
- EXPORT_SYMBOL_GPL(add_input_randomness);
- 
--void add_interrupt_randomness(int irq)
-+static DEFINE_PER_CPU(struct fast_pool, irq_randomness);
-+
-+void add_interrupt_randomness(int irq, int irq_flags)
- {
--	struct timer_rand_state *state;
-+	struct entropy_store	*r;
-+	struct fast_pool	*fast_pool = &__get_cpu_var(irq_randomness);
-+	struct pt_regs		*regs = get_irq_regs();
-+	unsigned long		now = jiffies;
-+	__u32			input[4], cycles = get_cycles();
-+
-+	input[0] = cycles ^ jiffies;
-+	input[1] = irq;
-+	if (regs) {
-+		__u64 ip = instruction_pointer(regs);
-+		input[2] = ip;
-+		input[3] = ip >> 32;
-+	}
- 
--	state = get_timer_rand_state(irq);
-+	fast_mix(fast_pool, input, sizeof(input));
- 
--	if (state == NULL)
-+	if ((fast_pool->count & 1023) &&
-+	    !time_after(now, fast_pool->last + HZ))
- 		return;
- 
--	DEBUG_ENT("irq event %d\n", irq);
--	add_timer_randomness(state, 0x100 + irq);
-+	fast_pool->last = now;
-+
-+	r = nonblocking_pool.initialized ? &input_pool : &nonblocking_pool;
-+	mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool));
-+	/*
-+	 * If we don't have a valid cycle counter, and we see
-+	 * back-to-back timer interrupts, then skip giving credit for
-+	 * any entropy.
-+	 */
-+	if (cycles == 0) {
-+		if (irq_flags & __IRQF_TIMER) {
-+			if (fast_pool->last_timer_intr)
-+				return;
-+			fast_pool->last_timer_intr = 1;
-+		} else
-+			fast_pool->last_timer_intr = 0;
-+	}
-+	credit_entropy_bits(r, 1);
- }
- 
- #ifdef CONFIG_BLOCK
-@@ -971,6 +1039,7 @@ static void init_std_data(struct entropy_store *r)
- 
- 	spin_lock_irqsave(&r->lock, flags);
- 	r->entropy_count = 0;
-+	r->entropy_total = 0;
- 	spin_unlock_irqrestore(&r->lock, flags);
- 
- 	now = ktime_get_real();
-diff --git a/drivers/mfd/ab3100-core.c b/drivers/mfd/ab3100-core.c
-index 60107ee..4eec7b7 100644
---- a/drivers/mfd/ab3100-core.c
-+++ b/drivers/mfd/ab3100-core.c
-@@ -409,8 +409,6 @@ static irqreturn_t ab3100_irq_handler(int irq, void *data)
- 	u32 fatevent;
- 	int err;
- 
--	add_interrupt_randomness(irq);
--
- 	err = ab3100_get_register_page_interruptible(ab3100, AB3100_EVENTA1,
- 				       event_regs, 3);
- 	if (err)
-diff --git a/include/linux/random.h b/include/linux/random.h
-index 8f74538..6ef39d7 100644
---- a/include/linux/random.h
-+++ b/include/linux/random.h
-@@ -52,7 +52,7 @@ extern void rand_initialize_irq(int irq);
- 
- extern void add_input_randomness(unsigned int type, unsigned int code,
- 				 unsigned int value);
--extern void add_interrupt_randomness(int irq);
-+extern void add_interrupt_randomness(int irq, int irq_flags);
- 
- extern void get_random_bytes(void *buf, int nbytes);
- void generate_random_uuid(unsigned char uuid_out[16]);
-diff --git a/kernel/irq/handle.c b/kernel/irq/handle.c
-index 470d08c..10e0772 100644
---- a/kernel/irq/handle.c
-+++ b/kernel/irq/handle.c
-@@ -117,7 +117,7 @@ irqreturn_t
- handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
- {
- 	irqreturn_t retval = IRQ_NONE;
--	unsigned int random = 0, irq = desc->irq_data.irq;
-+	unsigned int flags = 0, irq = desc->irq_data.irq;
- 
- 	do {
- 		irqreturn_t res;
-@@ -145,7 +145,7 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
- 
- 			/* Fall through to add to randomness */
- 		case IRQ_HANDLED:
--			random |= action->flags;
-+			flags |= action->flags;
- 			break;
- 
- 		default:
-@@ -156,8 +156,7 @@ handle_irq_event_percpu(struct irq_desc *desc, struct irqaction *action)
- 		action = action->next;
- 	} while (action);
- 
--	if (random & IRQF_SAMPLE_RANDOM)
--		add_interrupt_randomness(irq);
-+	add_interrupt_randomness(irq, flags);
- 
- 	if (!noirqdebug)
- 		note_interrupt(irq, desc, retval);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0015-random-use-lockless-techniques-in-the-interrupt-path.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0015-random-use-lockless-techniques-in-the-interrupt-path.patch
deleted file mode 100644
index 7638e84..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0015-random-use-lockless-techniques-in-the-interrupt-path.patch
+++ /dev/null
@@ -1,245 +0,0 @@
-From 121c36f0542c9e8e3066652a19d4cfa838e28139 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Wed, 4 Jul 2012 10:38:30 -0400
-Subject: [PATCH 15/70] random: use lockless techniques in the interrupt path
-
-commit 902c098a3663de3fa18639efbb71b6080f0bcd3c upstream.
-
-The real-time Linux folks don't like add_interrupt_randomness() taking
-a spinlock since it is called in the low-level interrupt routine.
-This also allows us to reduce the overhead in the fast path, for the
-random driver, which is the interrupt collection path.
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c |   78 ++++++++++++++++++++++++------------------------
- 1 files changed, 39 insertions(+), 39 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index a30df99..8ac7e05 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -418,9 +418,9 @@ struct entropy_store {
- 	/* read-write data: */
- 	spinlock_t lock;
- 	unsigned add_ptr;
-+	unsigned input_rotate;
- 	int entropy_count;
- 	int entropy_total;
--	int input_rotate;
- 	unsigned int initialized:1;
- 	__u8 last_data[EXTRACT_SIZE];
- };
-@@ -468,26 +468,24 @@ static __u32 const twist_table[8] = {
-  * it's cheap to do so and helps slightly in the expected case where
-  * the entropy is concentrated in the low-order bits.
-  */
--static void mix_pool_bytes_extract(struct entropy_store *r, const void *in,
--				   int nbytes, __u8 out[64])
-+static void __mix_pool_bytes(struct entropy_store *r, const void *in,
-+			     int nbytes, __u8 out[64])
- {
- 	unsigned long i, j, tap1, tap2, tap3, tap4, tap5;
- 	int input_rotate;
- 	int wordmask = r->poolinfo->poolwords - 1;
- 	const char *bytes = in;
- 	__u32 w;
--	unsigned long flags;
- 
--	/* Taps are constant, so we can load them without holding r->lock.  */
- 	tap1 = r->poolinfo->tap1;
- 	tap2 = r->poolinfo->tap2;
- 	tap3 = r->poolinfo->tap3;
- 	tap4 = r->poolinfo->tap4;
- 	tap5 = r->poolinfo->tap5;
- 
--	spin_lock_irqsave(&r->lock, flags);
--	input_rotate = r->input_rotate;
--	i = r->add_ptr;
-+	smp_rmb();
-+	input_rotate = ACCESS_ONCE(r->input_rotate);
-+	i = ACCESS_ONCE(r->add_ptr);
- 
- 	/* mix one byte at a time to simplify size handling and churn faster */
- 	while (nbytes--) {
-@@ -514,19 +512,23 @@ static void mix_pool_bytes_extract(struct entropy_store *r, const void *in,
- 		input_rotate += i ? 7 : 14;
- 	}
- 
--	r->input_rotate = input_rotate;
--	r->add_ptr = i;
-+	ACCESS_ONCE(r->input_rotate) = input_rotate;
-+	ACCESS_ONCE(r->add_ptr) = i;
-+	smp_wmb();
- 
- 	if (out)
- 		for (j = 0; j < 16; j++)
- 			((__u32 *)out)[j] = r->pool[(i - j) & wordmask];
--
--	spin_unlock_irqrestore(&r->lock, flags);
- }
- 
--static void mix_pool_bytes(struct entropy_store *r, const void *in, int bytes)
-+static void mix_pool_bytes(struct entropy_store *r, const void *in,
-+			     int nbytes, __u8 out[64])
- {
--       mix_pool_bytes_extract(r, in, bytes, NULL);
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&r->lock, flags);
-+	__mix_pool_bytes(r, in, nbytes, out);
-+	spin_unlock_irqrestore(&r->lock, flags);
- }
- 
- struct fast_pool {
-@@ -564,23 +566,22 @@ static void fast_mix(struct fast_pool *f, const void *in, int nbytes)
-  */
- static void credit_entropy_bits(struct entropy_store *r, int nbits)
- {
--	unsigned long flags;
--	int entropy_count;
-+	int entropy_count, orig;
- 
- 	if (!nbits)
- 		return;
- 
--	spin_lock_irqsave(&r->lock, flags);
--
- 	DEBUG_ENT("added %d entropy credits to %s\n", nbits, r->name);
--	entropy_count = r->entropy_count;
-+retry:
-+	entropy_count = orig = ACCESS_ONCE(r->entropy_count);
- 	entropy_count += nbits;
- 	if (entropy_count < 0) {
- 		DEBUG_ENT("negative entropy/overflow\n");
- 		entropy_count = 0;
- 	} else if (entropy_count > r->poolinfo->POOLBITS)
- 		entropy_count = r->poolinfo->POOLBITS;
--	r->entropy_count = entropy_count;
-+	if (cmpxchg(&r->entropy_count, orig, entropy_count) != orig)
-+		goto retry;
- 
- 	if (!r->initialized && nbits > 0) {
- 		r->entropy_total += nbits;
-@@ -593,7 +594,6 @@ static void credit_entropy_bits(struct entropy_store *r, int nbits)
- 		wake_up_interruptible(&random_read_wait);
- 		kill_fasync(&fasync, SIGIO, POLL_IN);
- 	}
--	spin_unlock_irqrestore(&r->lock, flags);
- }
- 
- /*********************************************************************
-@@ -680,7 +680,7 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
- 		sample.cycles = get_cycles();
- 
- 	sample.num = num;
--	mix_pool_bytes(&input_pool, &sample, sizeof(sample));
-+	mix_pool_bytes(&input_pool, &sample, sizeof(sample), NULL);
- 
- 	/*
- 	 * Calculate number of bits of randomness we probably added.
-@@ -764,7 +764,7 @@ void add_interrupt_randomness(int irq, int irq_flags)
- 	fast_pool->last = now;
- 
- 	r = nonblocking_pool.initialized ? &input_pool : &nonblocking_pool;
--	mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool));
-+	__mix_pool_bytes(r, &fast_pool->pool, sizeof(fast_pool->pool), NULL);
- 	/*
- 	 * If we don't have a valid cycle counter, and we see
- 	 * back-to-back timer interrupts, then skip giving credit for
-@@ -829,7 +829,7 @@ static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
- 
- 		bytes = extract_entropy(r->pull, tmp, bytes,
- 					random_read_wakeup_thresh / 8, rsvd);
--		mix_pool_bytes(r, tmp, bytes);
-+		mix_pool_bytes(r, tmp, bytes, NULL);
- 		credit_entropy_bits(r, bytes*8);
- 	}
- }
-@@ -890,9 +890,11 @@ static void extract_buf(struct entropy_store *r, __u8 *out)
- 	int i;
- 	__u32 hash[5], workspace[SHA_WORKSPACE_WORDS];
- 	__u8 extract[64];
-+	unsigned long flags;
- 
- 	/* Generate a hash across the pool, 16 words (512 bits) at a time */
- 	sha_init(hash);
-+	spin_lock_irqsave(&r->lock, flags);
- 	for (i = 0; i < r->poolinfo->poolwords; i += 16)
- 		sha_transform(hash, (__u8 *)(r->pool + i), workspace);
- 
-@@ -905,7 +907,8 @@ static void extract_buf(struct entropy_store *r, __u8 *out)
- 	 * brute-forcing the feedback as hard as brute-forcing the
- 	 * hash.
- 	 */
--	mix_pool_bytes_extract(r, hash, sizeof(hash), extract);
-+	__mix_pool_bytes(r, hash, sizeof(hash), extract);
-+	spin_unlock_irqrestore(&r->lock, flags);
- 
- 	/*
- 	 * To avoid duplicates, we atomically extract a portion of the
-@@ -928,11 +931,10 @@ static void extract_buf(struct entropy_store *r, __u8 *out)
- }
- 
- static ssize_t extract_entropy(struct entropy_store *r, void *buf,
--			       size_t nbytes, int min, int reserved)
-+				 size_t nbytes, int min, int reserved)
- {
- 	ssize_t ret = 0, i;
- 	__u8 tmp[EXTRACT_SIZE];
--	unsigned long flags;
- 
- 	xfer_secondary_pool(r, nbytes);
- 	nbytes = account(r, nbytes, min, reserved);
-@@ -941,6 +943,8 @@ static ssize_t extract_entropy(struct entropy_store *r, void *buf,
- 		extract_buf(r, tmp);
- 
- 		if (fips_enabled) {
-+			unsigned long flags;
-+
- 			spin_lock_irqsave(&r->lock, flags);
- 			if (!memcmp(tmp, r->last_data, EXTRACT_SIZE))
- 				panic("Hardware RNG duplicated output!\n");
-@@ -1034,22 +1038,18 @@ EXPORT_SYMBOL(get_random_bytes);
- static void init_std_data(struct entropy_store *r)
- {
- 	int i;
--	ktime_t now;
--	unsigned long flags;
-+	ktime_t now = ktime_get_real();
-+	unsigned long rv;
- 
--	spin_lock_irqsave(&r->lock, flags);
- 	r->entropy_count = 0;
- 	r->entropy_total = 0;
--	spin_unlock_irqrestore(&r->lock, flags);
--
--	now = ktime_get_real();
--	mix_pool_bytes(r, &now, sizeof(now));
--	for (i = r->poolinfo->POOLBYTES; i > 0; i -= sizeof flags) {
--		if (!arch_get_random_long(&flags))
-+	mix_pool_bytes(r, &now, sizeof(now), NULL);
-+	for (i = r->poolinfo->POOLBYTES; i > 0; i -= sizeof(rv)) {
-+		if (!arch_get_random_long(&rv))
- 			break;
--		mix_pool_bytes(r, &flags, sizeof(flags));
-+		mix_pool_bytes(r, &rv, sizeof(rv), NULL);
- 	}
--	mix_pool_bytes(r, utsname(), sizeof(*(utsname())));
-+	mix_pool_bytes(r, utsname(), sizeof(*(utsname())), NULL);
- }
- 
- static int rand_initialize(void)
-@@ -1186,7 +1186,7 @@ write_pool(struct entropy_store *r, const char __user *buffer, size_t count)
- 		count -= bytes;
- 		p += bytes;
- 
--		mix_pool_bytes(r, buf, bytes);
-+		mix_pool_bytes(r, buf, bytes, NULL);
- 		cond_resched();
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0016-random-create-add_device_randomness-interface.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0016-random-create-add_device_randomness-interface.patch
deleted file mode 100644
index 78b8dcb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0016-random-create-add_device_randomness-interface.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From 683cefe6594a919e89ca7d7d076ca753ced67679 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Wed, 4 Jul 2012 11:16:01 -0400
-Subject: [PATCH 16/70] random: create add_device_randomness() interface
-
-commit a2080a67abe9e314f9e9c2cc3a4a176e8a8f8793 upstream.
-
-Add a new interface, add_device_randomness() for adding data to the
-random pool that is likely to differ between two devices (or possibly
-even per boot).  This would be things like MAC addresses or serial
-numbers, or the read-out of the RTC. This does *not* add any actual
-entropy to the pool, but it initializes the pool to different values
-for devices that might otherwise be identical and have very little
-entropy available to them (particularly common in the embedded world).
-
-[ Modified by tytso to mix in a timestamp, since there may be some
-  variability caused by the time needed to detect/configure the hardware
-  in question. ]
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c  |   28 ++++++++++++++++++++++++++++
- include/linux/random.h |    1 +
- 2 files changed, 29 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 8ac7e05..4446a27 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -125,11 +125,20 @@
-  * The current exported interfaces for gathering environmental noise
-  * from the devices are:
-  *
-+ *	void add_device_randomness(const void *buf, unsigned int size);
-  * 	void add_input_randomness(unsigned int type, unsigned int code,
-  *                                unsigned int value);
-  *	void add_interrupt_randomness(int irq, int irq_flags);
-  * 	void add_disk_randomness(struct gendisk *disk);
-  *
-+ * add_device_randomness() is for adding data to the random pool that
-+ * is likely to differ between two devices (or possibly even per boot).
-+ * This would be things like MAC addresses or serial numbers, or the
-+ * read-out of the RTC. This does *not* add any actual entropy to the
-+ * pool, but it initializes the pool to different values for devices
-+ * that might otherwise be identical and have very little entropy
-+ * available to them (particularly common in the embedded world).
-+ *
-  * add_input_randomness() uses the input layer interrupt timing, as well as
-  * the event type information from the hardware.
-  *
-@@ -646,6 +655,25 @@ static void set_timer_rand_state(unsigned int irq,
- }
- #endif
- 
-+/*
-+ * Add device- or boot-specific data to the input and nonblocking
-+ * pools to help initialize them to unique values.
-+ *
-+ * None of this adds any entropy, it is meant to avoid the
-+ * problem of the nonblocking pool having similar initial state
-+ * across largely identical devices.
-+ */
-+void add_device_randomness(const void *buf, unsigned int size)
-+{
-+	unsigned long time = get_cycles() ^ jiffies;
-+
-+	mix_pool_bytes(&input_pool, buf, size, NULL);
-+	mix_pool_bytes(&input_pool, &time, sizeof(time), NULL);
-+	mix_pool_bytes(&nonblocking_pool, buf, size, NULL);
-+	mix_pool_bytes(&nonblocking_pool, &time, sizeof(time), NULL);
-+}
-+EXPORT_SYMBOL(add_device_randomness);
-+
- static struct timer_rand_state input_timer_state;
- 
- /*
-diff --git a/include/linux/random.h b/include/linux/random.h
-index 6ef39d7..e14b438 100644
---- a/include/linux/random.h
-+++ b/include/linux/random.h
-@@ -50,6 +50,7 @@ struct rnd_state {
- 
- extern void rand_initialize_irq(int irq);
- 
-+extern void add_device_randomness(const void *, unsigned int);
- extern void add_input_randomness(unsigned int type, unsigned int code,
- 				 unsigned int value);
- extern void add_interrupt_randomness(int irq, int irq_flags);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0017-usb-feed-USB-device-information-to-the-dev-random-dr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0017-usb-feed-USB-device-information-to-the-dev-random-dr.patch
deleted file mode 100644
index a2e4aea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0017-usb-feed-USB-device-information-to-the-dev-random-dr.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 578a5228a14f84af6f10050b84e3da331b0c37eb Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Wed, 4 Jul 2012 11:22:20 -0400
-Subject: [PATCH 17/70] usb: feed USB device information to the /dev/random
- driver
-
-commit b04b3156a20d395a7faa8eed98698d1e17a36000 upstream.
-
-Send the USB device's serial, product, and manufacturer strings to the
-/dev/random driver to help seed its pools.
-
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Acked-by: Greg KH <greg at kroah.com>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/core/hub.c |    9 +++++++++
- 1 files changed, 9 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 2bc736f..6a4a8c9 100644
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -24,6 +24,7 @@
- #include <linux/kthread.h>
- #include <linux/mutex.h>
- #include <linux/freezer.h>
-+#include <linux/random.h>
- 
- #include <asm/uaccess.h>
- #include <asm/byteorder.h>
-@@ -1897,6 +1898,14 @@ int usb_new_device(struct usb_device *udev)
- 	/* Tell the world! */
- 	announce_device(udev);
- 
-+	if (udev->serial)
-+		add_device_randomness(udev->serial, strlen(udev->serial));
-+	if (udev->product)
-+		add_device_randomness(udev->product, strlen(udev->product));
-+	if (udev->manufacturer)
-+		add_device_randomness(udev->manufacturer,
-+				      strlen(udev->manufacturer));
-+
- 	device_enable_async_suspend(&udev->dev);
- 	/* Register the device.  The device driver is responsible
- 	 * for configuring the device and invoking the add-device
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0018-net-feed-dev-random-with-the-MAC-address-when-regist.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0018-net-feed-dev-random-with-the-MAC-address-when-regist.patch
deleted file mode 100644
index f2dd6aa..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0018-net-feed-dev-random-with-the-MAC-address-when-regist.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From c59aebeab04a154ab9b93a79303be44d5d382059 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Wed, 4 Jul 2012 21:23:25 -0400
-Subject: [PATCH 18/70] net: feed /dev/random with the MAC address when
- registering a device
-
-commit 7bf2357524408b97fec58344caf7397f8140c3fd upstream.
-
-Cc: David Miller <davem at davemloft.net>
-Cc: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/dev.c       |    3 +++
- net/core/rtnetlink.c |    1 +
- 2 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 5738654..4b18703 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -1177,6 +1177,7 @@ static int __dev_open(struct net_device *dev)
- 		net_dmaengine_get();
- 		dev_set_rx_mode(dev);
- 		dev_activate(dev);
-+		add_device_randomness(dev->dev_addr, dev->addr_len);
- 	}
- 
- 	return ret;
-@@ -4841,6 +4842,7 @@ int dev_set_mac_address(struct net_device *dev, struct sockaddr *sa)
- 	err = ops->ndo_set_mac_address(dev, sa);
- 	if (!err)
- 		call_netdevice_notifiers(NETDEV_CHANGEADDR, dev);
-+	add_device_randomness(dev->dev_addr, dev->addr_len);
- 	return err;
- }
- EXPORT_SYMBOL(dev_set_mac_address);
-@@ -5621,6 +5623,7 @@ int register_netdevice(struct net_device *dev)
- 	dev_init_scheduler(dev);
- 	dev_hold(dev);
- 	list_netdevice(dev);
-+	add_device_randomness(dev->dev_addr, dev->addr_len);
- 
- 	/* Notify protocols, that a new device appeared. */
- 	ret = call_netdevice_notifiers(NETDEV_REGISTER, dev);
-diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
-index 2ef859a..05842ab 100644
---- a/net/core/rtnetlink.c
-+++ b/net/core/rtnetlink.c
-@@ -1354,6 +1354,7 @@ static int do_setlink(struct net_device *dev, struct ifinfomsg *ifm,
- 			goto errout;
- 		send_addr_notify = 1;
- 		modified = 1;
-+		add_device_randomness(dev->dev_addr, dev->addr_len);
- 	}
- 
- 	if (tb[IFLA_MTU]) {
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0019-random-use-the-arch-specific-rng-in-xfer_secondary_p.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0019-random-use-the-arch-specific-rng-in-xfer_secondary_p.patch
deleted file mode 100644
index a69ffbe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0019-random-use-the-arch-specific-rng-in-xfer_secondary_p.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 8692924706ea929d1176354912971149133ab768 Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Thu, 5 Jul 2012 10:21:01 -0400
-Subject: [PATCH 19/70] random: use the arch-specific rng in
- xfer_secondary_pool
-
-commit e6d4947b12e8ad947add1032dd754803c6004824 upstream.
-
-If the CPU supports a hardware random number generator, use it in
-xfer_secondary_pool(), where it will significantly improve things and
-where we can afford it.
-
-Also, remove the use of the arch-specific rng in
-add_timer_randomness(), since the call is significantly slower than
-get_cycles(), and we're much better off using it in
-xfer_secondary_pool() anyway.
-
-Signed-off-by: "Theodore Ts'o" <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c |   25 ++++++++++++++++---------
- 1 files changed, 16 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 4446a27..4a83220 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -254,6 +254,7 @@
- #include <linux/cryptohash.h>
- #include <linux/fips.h>
- #include <linux/ptrace.h>
-+#include <linux/kmemcheck.h>
- 
- #ifdef CONFIG_GENERIC_HARDIRQS
- # include <linux/irq.h>
-@@ -702,11 +703,7 @@ static void add_timer_randomness(struct timer_rand_state *state, unsigned num)
- 		goto out;
- 
- 	sample.jiffies = jiffies;
--
--	/* Use arch random value, fall back to cycles */
--	if (!arch_get_random_int(&sample.cycles))
--		sample.cycles = get_cycles();
--
-+	sample.cycles = get_cycles();
- 	sample.num = num;
- 	mix_pool_bytes(&input_pool, &sample, sizeof(sample), NULL);
- 
-@@ -838,7 +835,11 @@ static ssize_t extract_entropy(struct entropy_store *r, void *buf,
-  */
- static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
- {
--	__u32 tmp[OUTPUT_POOL_WORDS];
-+	union {
-+		__u32	tmp[OUTPUT_POOL_WORDS];
-+		long	hwrand[4];
-+	} u;
-+	int	i;
- 
- 	if (r->pull && r->entropy_count < nbytes * 8 &&
- 	    r->entropy_count < r->poolinfo->POOLBITS) {
-@@ -849,17 +850,23 @@ static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
- 		/* pull at least as many as BYTES as wakeup BITS */
- 		bytes = max_t(int, bytes, random_read_wakeup_thresh / 8);
- 		/* but never more than the buffer size */
--		bytes = min_t(int, bytes, sizeof(tmp));
-+		bytes = min_t(int, bytes, sizeof(u.tmp));
- 
- 		DEBUG_ENT("going to reseed %s with %d bits "
- 			  "(%d of %d requested)\n",
- 			  r->name, bytes * 8, nbytes * 8, r->entropy_count);
- 
--		bytes = extract_entropy(r->pull, tmp, bytes,
-+		bytes = extract_entropy(r->pull, u.tmp, bytes,
- 					random_read_wakeup_thresh / 8, rsvd);
--		mix_pool_bytes(r, tmp, bytes, NULL);
-+		mix_pool_bytes(r, u.tmp, bytes, NULL);
- 		credit_entropy_bits(r, bytes*8);
- 	}
-+	kmemcheck_mark_initialized(&u.hwrand, sizeof(u.hwrand));
-+	for (i = 0; i < 4; i++)
-+		if (arch_get_random_long(&u.hwrand[i]))
-+			break;
-+	if (i)
-+		mix_pool_bytes(r, &u.hwrand, sizeof(u.hwrand), 0);
- }
- 
- /*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0020-random-add-new-get_random_bytes_arch-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0020-random-add-new-get_random_bytes_arch-function.patch
deleted file mode 100644
index 28ba75e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0020-random-add-new-get_random_bytes_arch-function.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 6ce374197d352474ff8514805efb43436c9cf87b Mon Sep 17 00:00:00 2001
-From: Theodore Ts'o <tytso at mit.edu>
-Date: Thu, 5 Jul 2012 10:35:23 -0400
-Subject: [PATCH 20/70] random: add new get_random_bytes_arch() function
-
-commit c2557a303ab6712bb6e09447df828c557c710ac9 upstream.
-
-Create a new function, get_random_bytes_arch() which will use the
-architecture-specific hardware random number generator if it is
-present.  Change get_random_bytes() to not use the HW RNG, even if it
-is avaiable.
-
-The reason for this is that the hw random number generator is fast (if
-it is present), but it requires that we trust the hardware
-manufacturer to have not put in a back door.  (For example, an
-increasing counter encrypted by an AES key known to the NSA.)
-
-It's unlikely that Intel (for example) was paid off by the US
-Government to do this, but it's impossible for them to prove otherwise
----
- drivers/char/random.c  |   29 ++++++++++++++++++++++++-----
- include/linux/random.h |    1 +
- 2 files changed, 25 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index 4a83220..f3200bf 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -1038,17 +1038,34 @@ static ssize_t extract_entropy_user(struct entropy_store *r, void __user *buf,
- 
- /*
-  * This function is the exported kernel interface.  It returns some
-- * number of good random numbers, suitable for seeding TCP sequence
-- * numbers, etc.
-+ * number of good random numbers, suitable for key generation, seeding
-+ * TCP sequence numbers, etc.  It does not use the hw random number
-+ * generator, if available; use get_random_bytes_arch() for that.
-  */
- void get_random_bytes(void *buf, int nbytes)
- {
-+	extract_entropy(&nonblocking_pool, buf, nbytes, 0, 0);
-+}
-+EXPORT_SYMBOL(get_random_bytes);
-+
-+/*
-+ * This function will use the architecture-specific hardware random
-+ * number generator if it is available.  The arch-specific hw RNG will
-+ * almost certainly be faster than what we can do in software, but it
-+ * is impossible to verify that it is implemented securely (as
-+ * opposed, to, say, the AES encryption of a sequence number using a
-+ * key known by the NSA).  So it's useful if we need the speed, but
-+ * only if we're willing to trust the hardware manufacturer not to
-+ * have put in a back door.
-+ */
-+void get_random_bytes_arch(void *buf, int nbytes)
-+{
- 	char *p = buf;
- 
- 	while (nbytes) {
- 		unsigned long v;
- 		int chunk = min(nbytes, (int)sizeof(unsigned long));
--		
-+
- 		if (!arch_get_random_long(&v))
- 			break;
- 		
-@@ -1057,9 +1074,11 @@ void get_random_bytes(void *buf, int nbytes)
- 		nbytes -= chunk;
- 	}
- 
--	extract_entropy(&nonblocking_pool, p, nbytes, 0, 0);
-+	if (nbytes)
-+		extract_entropy(&nonblocking_pool, p, nbytes, 0, 0);
- }
--EXPORT_SYMBOL(get_random_bytes);
-+EXPORT_SYMBOL(get_random_bytes_arch);
-+
- 
- /*
-  * init_std_data - initialize pool with system data
-diff --git a/include/linux/random.h b/include/linux/random.h
-index e14b438..29e217a 100644
---- a/include/linux/random.h
-+++ b/include/linux/random.h
-@@ -56,6 +56,7 @@ extern void add_input_randomness(unsigned int type, unsigned int code,
- extern void add_interrupt_randomness(int irq, int irq_flags);
- 
- extern void get_random_bytes(void *buf, int nbytes);
-+extern void get_random_bytes_arch(void *buf, int nbytes);
- void generate_random_uuid(unsigned char uuid_out[16]);
- 
- #ifndef MODULE
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0021-rtc-wm831x-Feed-the-write-counter-into-device_add_ra.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0021-rtc-wm831x-Feed-the-write-counter-into-device_add_ra.patch
deleted file mode 100644
index 567d064..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0021-rtc-wm831x-Feed-the-write-counter-into-device_add_ra.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 70392d9bb5b688d5e6ccb6052d1b6a953942aea8 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Thu, 5 Jul 2012 20:19:17 +0000
-Subject: [PATCH 21/70] rtc: wm831x: Feed the write counter into
- device_add_randomness()
-
-commit 9dccf55f4cb011a7552a8a2749a580662f5ed8ed upstream.
-
-The tamper evident features of the RTC include the "write counter" which
-is a pseudo-random number regenerated whenever we set the RTC. Since this
-value is unpredictable it should provide some useful seeding to the random
-number generator.
-
-Only do this on boot since the goal is to seed the pool rather than add
-useful entropy.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Theodore Ts'o <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/rtc/rtc-wm831x.c |   24 +++++++++++++++++++++++-
- 1 files changed, 23 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/rtc/rtc-wm831x.c b/drivers/rtc/rtc-wm831x.c
-index bdc909b..f3c2110 100644
---- a/drivers/rtc/rtc-wm831x.c
-+++ b/drivers/rtc/rtc-wm831x.c
-@@ -24,7 +24,7 @@
- #include <linux/mfd/wm831x/core.h>
- #include <linux/delay.h>
- #include <linux/platform_device.h>
--
-+#include <linux/random.h>
- 
- /*
-  * R16416 (0x4020) - RTC Write Counter
-@@ -96,6 +96,26 @@ struct wm831x_rtc {
- 	unsigned int alarm_enabled:1;
- };
- 
-+static void wm831x_rtc_add_randomness(struct wm831x *wm831x)
-+{
-+	int ret;
-+	u16 reg;
-+
-+	/*
-+	 * The write counter contains a pseudo-random number which is
-+	 * regenerated every time we set the RTC so it should be a
-+	 * useful per-system source of entropy.
-+	 */
-+	ret = wm831x_reg_read(wm831x, WM831X_RTC_WRITE_COUNTER);
-+	if (ret >= 0) {
-+		reg = ret;
-+		add_device_randomness(&reg, sizeof(reg));
-+	} else {
-+		dev_warn(wm831x->dev, "Failed to read RTC write counter: %d\n",
-+			 ret);
-+	}
-+}
-+
- /*
-  * Read current time and date in RTC
-  */
-@@ -449,6 +469,8 @@ static int wm831x_rtc_probe(struct platform_device *pdev)
- 			alm_irq, ret);
- 	}
- 
-+	wm831x_rtc_add_randomness(wm831x);
-+
- 	return 0;
- 
- err:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0022-mfd-wm831x-Feed-the-device-UUID-into-device_add_rand.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0022-mfd-wm831x-Feed-the-device-UUID-into-device_add_rand.patch
deleted file mode 100644
index ea38b5a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0022-mfd-wm831x-Feed-the-device-UUID-into-device_add_rand.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From fb9ac5d5d77aaf09012931a54251629368050ee2 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Thu, 5 Jul 2012 20:23:21 +0000
-Subject: [PATCH 22/70] mfd: wm831x: Feed the device UUID into
- device_add_randomness()
-
-commit 27130f0cc3ab97560384da437e4621fc4e94f21c upstream.
-
-wm831x devices contain a unique ID value. Feed this into the newly added
-device_add_randomness() to add some per device seed data to the pool.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Theodore Ts'o <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mfd/wm831x-otp.c |    8 ++++++++
- 1 files changed, 8 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/mfd/wm831x-otp.c b/drivers/mfd/wm831x-otp.c
-index f742745..b90f3e0 100644
---- a/drivers/mfd/wm831x-otp.c
-+++ b/drivers/mfd/wm831x-otp.c
-@@ -18,6 +18,7 @@
- #include <linux/bcd.h>
- #include <linux/delay.h>
- #include <linux/mfd/core.h>
-+#include <linux/random.h>
- 
- #include <linux/mfd/wm831x/core.h>
- #include <linux/mfd/wm831x/otp.h>
-@@ -66,6 +67,7 @@ static DEVICE_ATTR(unique_id, 0444, wm831x_unique_id_show, NULL);
- 
- int wm831x_otp_init(struct wm831x *wm831x)
- {
-+	char uuid[WM831X_UNIQUE_ID_LEN];
- 	int ret;
- 
- 	ret = device_create_file(wm831x->dev, &dev_attr_unique_id);
-@@ -73,6 +75,12 @@ int wm831x_otp_init(struct wm831x *wm831x)
- 		dev_err(wm831x->dev, "Unique ID attribute not created: %d\n",
- 			ret);
- 
-+	ret = wm831x_unique_id_read(wm831x, uuid);
-+	if (ret == 0)
-+		add_device_randomness(uuid, sizeof(uuid));
-+	else
-+		dev_err(wm831x->dev, "Failed to read UUID: %d\n", ret);
-+
- 	return ret;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0023-ASoC-wm8994-Ensure-there-are-enough-BCLKs-for-four-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0023-ASoC-wm8994-Ensure-there-are-enough-BCLKs-for-four-c.patch
deleted file mode 100644
index 0019f5e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0023-ASoC-wm8994-Ensure-there-are-enough-BCLKs-for-four-c.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From f2173fb9a41cc0f7c114bb81fc0d138bc9649ccd Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Fri, 22 Jun 2012 17:21:17 +0100
-Subject: [PATCH 23/70] ASoC: wm8994: Ensure there are enough BCLKs for four
- channels
-
-commit b8edf3e5522735c8ce78b81845f7a1a2d4a08626 upstream.
-
-Otherwise if someone tries to use all four channels on AIF1 with the
-device in master mode we won't be able to clock out all the data.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/wm8994.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index de61b8a..98c5774 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -2508,7 +2508,7 @@ static int wm8994_hw_params(struct snd_pcm_substream *substream,
- 		return -EINVAL;
- 	}
- 
--	bclk_rate = params_rate(params) * 2;
-+	bclk_rate = params_rate(params) * 4;
- 	switch (params_format(params)) {
- 	case SNDRV_PCM_FORMAT_S16_LE:
- 		bclk_rate *= 16;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0024-futex-Test-for-pi_mutex-on-fault-in-futex_wait_reque.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0024-futex-Test-for-pi_mutex-on-fault-in-futex_wait_reque.patch
deleted file mode 100644
index 5422494..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0024-futex-Test-for-pi_mutex-on-fault-in-futex_wait_reque.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From f36864057b59eec6a77bd9be1d04267fe3648b8f Mon Sep 17 00:00:00 2001
-From: Darren Hart <dvhart at linux.intel.com>
-Date: Fri, 20 Jul 2012 11:53:29 -0700
-Subject: [PATCH 24/70] futex: Test for pi_mutex on fault in
- futex_wait_requeue_pi()
-
-commit b6070a8d9853eda010a549fa9a09eb8d7269b929 upstream.
-
-If fixup_pi_state_owner() faults, pi_mutex may be NULL. Test
-for pi_mutex != NULL before testing the owner against current
-and possibly unlocking it.
-
-Signed-off-by: Darren Hart <dvhart at linux.intel.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Dan Carpenter <dan.carpenter at oracle.com>
-Link: http://lkml.kernel.org/r/dc59890338fc413606f04e5c5b131530734dae3d.1342809673.git.dvhart@linux.intel.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/futex.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 866c9d5..ed96926 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -2370,7 +2370,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- 	 * fault, unlock the rt_mutex and return the fault to userspace.
- 	 */
- 	if (ret == -EFAULT) {
--		if (rt_mutex_owner(pi_mutex) == current)
-+		if (pi_mutex && rt_mutex_owner(pi_mutex) == current)
- 			rt_mutex_unlock(pi_mutex);
- 	} else if (ret == -EINTR) {
- 		/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0025-futex-Fix-bug-in-WARN_ON-for-NULL-q.pi_state.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0025-futex-Fix-bug-in-WARN_ON-for-NULL-q.pi_state.patch
deleted file mode 100644
index ac9cdc0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0025-futex-Fix-bug-in-WARN_ON-for-NULL-q.pi_state.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 5630485a96fdf29be75437e32eabccf5a2ac9fe7 Mon Sep 17 00:00:00 2001
-From: Darren Hart <dvhart at linux.intel.com>
-Date: Fri, 20 Jul 2012 11:53:30 -0700
-Subject: [PATCH 25/70] futex: Fix bug in WARN_ON for NULL q.pi_state
-
-commit f27071cb7fe3e1d37a9dbe6c0dfc5395cd40fa43 upstream.
-
-The WARN_ON in futex_wait_requeue_pi() for a NULL q.pi_state was testing
-the address (&q.pi_state) of the pointer instead of the value
-(q.pi_state) of the pointer. Correct it accordingly.
-
-Signed-off-by: Darren Hart <dvhart at linux.intel.com>
-Cc: Dave Jones <davej at redhat.com>
-Link: http://lkml.kernel.org/r/1c85d97f6e5f79ec389a4ead3e367363c74bd09a.1342809673.git.dvhart@linux.intel.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/futex.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index ed96926..68e817a 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -2343,7 +2343,7 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- 		 * signal.  futex_unlock_pi() will not destroy the lock_ptr nor
- 		 * the pi_state.
- 		 */
--		WARN_ON(!&q.pi_state);
-+		WARN_ON(!q.pi_state);
- 		pi_mutex = &q.pi_state->pi_mutex;
- 		ret = rt_mutex_finish_proxy_lock(pi_mutex, to, &rt_waiter, 1);
- 		debug_rt_mutex_free_waiter(&rt_waiter);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0026-futex-Forbid-uaddr-uaddr2-in-futex_wait_requeue_pi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0026-futex-Forbid-uaddr-uaddr2-in-futex_wait_requeue_pi.patch
deleted file mode 100644
index 9f0ff30..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0026-futex-Forbid-uaddr-uaddr2-in-futex_wait_requeue_pi.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 6b32682a969a782f8a03b42f0cec593a923412fb Mon Sep 17 00:00:00 2001
-From: Darren Hart <dvhart at linux.intel.com>
-Date: Fri, 20 Jul 2012 11:53:31 -0700
-Subject: [PATCH 26/70] futex: Forbid uaddr == uaddr2 in
- futex_wait_requeue_pi()
-
-commit 6f7b0a2a5c0fb03be7c25bd1745baa50582348ef upstream.
-
-If uaddr == uaddr2, then we have broken the rule of only requeueing
-from a non-pi futex to a pi futex with this call. If we attempt this,
-as the trinity test suite manages to do, we miss early wakeups as
-q.key is equal to key2 (because they are the same uaddr). We will then
-attempt to dereference the pi_mutex (which would exist had the futex_q
-been properly requeued to a pi futex) and trigger a NULL pointer
-dereference.
-
-Signed-off-by: Darren Hart <dvhart at linux.intel.com>
-Cc: Dave Jones <davej at redhat.com>
-Link: http://lkml.kernel.org/r/ad82bfe7f7d130247fbe2b5b4275654807774227.1342809673.git.dvhart@linux.intel.com
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- kernel/futex.c |   13 ++++++++-----
- 1 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/kernel/futex.c b/kernel/futex.c
-index 68e817a..80fb1c6 100644
---- a/kernel/futex.c
-+++ b/kernel/futex.c
-@@ -2231,11 +2231,11 @@ int handle_early_requeue_pi_wakeup(struct futex_hash_bucket *hb,
-  * @uaddr2:	the pi futex we will take prior to returning to user-space
-  *
-  * The caller will wait on uaddr and will be requeued by futex_requeue() to
-- * uaddr2 which must be PI aware.  Normal wakeup will wake on uaddr2 and
-- * complete the acquisition of the rt_mutex prior to returning to userspace.
-- * This ensures the rt_mutex maintains an owner when it has waiters; without
-- * one, the pi logic wouldn't know which task to boost/deboost, if there was a
-- * need to.
-+ * uaddr2 which must be PI aware and unique from uaddr.  Normal wakeup will wake
-+ * on uaddr2 and complete the acquisition of the rt_mutex prior to returning to
-+ * userspace.  This ensures the rt_mutex maintains an owner when it has waiters;
-+ * without one, the pi logic would not know which task to boost/deboost, if
-+ * there was a need to.
-  *
-  * We call schedule in futex_wait_queue_me() when we enqueue and return there
-  * via the following:
-@@ -2272,6 +2272,9 @@ static int futex_wait_requeue_pi(u32 __user *uaddr, unsigned int flags,
- 	struct futex_q q = futex_q_init;
- 	int res, ret;
- 
-+	if (uaddr == uaddr2)
-+		return -EINVAL;
-+
- 	if (!bitset)
- 		return -EINVAL;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0027-video-smscufx-fix-line-counting-in-fb_write.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0027-video-smscufx-fix-line-counting-in-fb_write.patch
deleted file mode 100644
index 030c40e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0027-video-smscufx-fix-line-counting-in-fb_write.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3c9cd66c826a8517a56d6d6b102018f73a0a6371 Mon Sep 17 00:00:00 2001
-From: Alexander Holler <holler at ahsoftware.de>
-Date: Sat, 21 Apr 2012 00:11:07 +0200
-Subject: [PATCH 27/70] video/smscufx: fix line counting in fb_write
-
-commit 2fe2d9f47cfe1a3e66e7d087368b3d7155b04c15 upstream.
-
-Line 0 and 1 were both written to line 0 (on the display) and all subsequent
-lines had an offset of -1. The result was that the last line on the display
-was never overwritten by writes to /dev/fbN.
-
-The origin of this bug seems to have been udlfb.
-
-Signed-off-by: Alexander Holler <holler at ahsoftware.de>
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/video/smscufx.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/video/smscufx.c b/drivers/video/smscufx.c
-index aaccffa..dd9533a 100644
---- a/drivers/video/smscufx.c
-+++ b/drivers/video/smscufx.c
-@@ -904,7 +904,7 @@ static ssize_t ufx_ops_write(struct fb_info *info, const char __user *buf,
- 	result = fb_sys_write(info, buf, count, ppos);
- 
- 	if (result > 0) {
--		int start = max((int)(offset / info->fix.line_length) - 1, 0);
-+		int start = max((int)(offset / info->fix.line_length), 0);
- 		int lines = min((u32)((result / info->fix.line_length) + 1),
- 				(u32)info->var.yres);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0028-Input-synaptics-handle-out-of-bounds-values-from-the.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0028-Input-synaptics-handle-out-of-bounds-values-from-the.patch
deleted file mode 100644
index f77c2c2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0028-Input-synaptics-handle-out-of-bounds-values-from-the.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From 9bd55f644225e671f6c74cc89d9cf68b434385d1 Mon Sep 17 00:00:00 2001
-From: Seth Forshee <seth.forshee at canonical.com>
-Date: Tue, 24 Jul 2012 23:54:11 -0700
-Subject: [PATCH 28/70] Input: synaptics - handle out of bounds values from
- the hardware
-
-commit c0394506e69b37c47d391c2a7bbea3ea236d8ec8 upstream.
-
-The touchpad on the Acer Aspire One D250 will report out of range values
-in the extreme lower portion of the touchpad. These appear as abrupt
-changes in the values reported by the hardware from very low values to
-very high values, which can cause unexpected vertical jumps in the
-position of the mouse pointer.
-
-What seems to be happening is that the value is wrapping to a two's
-compliment negative value of higher resolution than the 13-bit value
-reported by the hardware, with the high-order bits being truncated. This
-patch adds handling for these values by converting them to the
-appropriate negative values.
-
-The only tricky part about this is deciding when to treat a number as
-negative. It stands to reason that if out of range values can be
-reported on the low end then it could also happen on the high end, so
-not all out of range values should be treated as negative. The approach
-taken here is to split the difference between the maximum legitimate
-value for the axis and the maximum possible value that the hardware can
-report, treating values greater than this number as negative and all
-other values as positive. This can be tweaked later if hardware is found
-that operates outside of these parameters.
-
-BugLink: http://bugs.launchpad.net/bugs/1001251
-Signed-off-by: Seth Forshee <seth.forshee at canonical.com>
-Reviewed-by: Daniel Kurtz <djkurtz at chromium.org>
-Signed-off-by: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/input/mouse/synaptics.c |   23 +++++++++++++++++++++++
- 1 files changed, 23 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/input/mouse/synaptics.c b/drivers/input/mouse/synaptics.c
-index a6dcd18..96532bc 100644
---- a/drivers/input/mouse/synaptics.c
-+++ b/drivers/input/mouse/synaptics.c
-@@ -40,11 +40,28 @@
-  * Note that newer firmware allows querying device for maximum useable
-  * coordinates.
-  */
-+#define XMIN 0
-+#define XMAX 6143
-+#define YMIN 0
-+#define YMAX 6143
- #define XMIN_NOMINAL 1472
- #define XMAX_NOMINAL 5472
- #define YMIN_NOMINAL 1408
- #define YMAX_NOMINAL 4448
- 
-+/* Size in bits of absolute position values reported by the hardware */
-+#define ABS_POS_BITS 13
-+
-+/*
-+ * Any position values from the hardware above the following limits are
-+ * treated as "wrapped around negative" values that have been truncated to
-+ * the 13-bit reporting range of the hardware. These are just reasonable
-+ * guesses and can be adjusted if hardware is found that operates outside
-+ * of these parameters.
-+ */
-+#define X_MAX_POSITIVE (((1 << ABS_POS_BITS) + XMAX) / 2)
-+#define Y_MAX_POSITIVE (((1 << ABS_POS_BITS) + YMAX) / 2)
-+
- /*
-  * Synaptics touchpads report the y coordinate from bottom to top, which is
-  * opposite from what userspace expects.
-@@ -544,6 +561,12 @@ static int synaptics_parse_hw_state(const unsigned char buf[],
- 		hw->right = (buf[0] & 0x02) ? 1 : 0;
- 	}
- 
-+	/* Convert wrap-around values to negative */
-+	if (hw->x > X_MAX_POSITIVE)
-+		hw->x -= 1 << ABS_POS_BITS;
-+	if (hw->y > Y_MAX_POSITIVE)
-+		hw->y -= 1 << ABS_POS_BITS;
-+
- 	return 0;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0029-ALSA-hda-Fix-invalid-D3-of-headphone-DAC-on-VT202x-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0029-ALSA-hda-Fix-invalid-D3-of-headphone-DAC-on-VT202x-c.patch
deleted file mode 100644
index 963bda5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0029-ALSA-hda-Fix-invalid-D3-of-headphone-DAC-on-VT202x-c.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 82ed7ed6d4c89cbcaa138eb1fd0075357e8c06d3 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 25 Jul 2012 13:54:55 +0200
-Subject: [PATCH 29/70] ALSA: hda - Fix invalid D3 of headphone DAC on VT202x
- codecs
-
-commit 6162552b0de6ba80937c3dd53e084967851cd199 upstream.
-
-We've got a bug report about the silent output from the headphone on a
-mobo with VT2021, and spotted out that this was because of the wrong
-D3 state on the DAC for the headphone output.  The bug is triggered by
-the incomplete check for this DAC in set_widgets_power_state_vt1718S().
-It checks only the connectivity of the primary output (0x27) but
-doesn't consider the path from the headphone pin (0x28).
-
-Now this patch fixes the problem by checking both pins for DAC 0x0b.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-[bwh: Backported to 3.2: keep using snd_hda_codec_write() as
- update_power_state() is missing]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_via.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
-index 1fe1308..7160ff2 100644
---- a/sound/pci/hda/patch_via.c
-+++ b/sound/pci/hda/patch_via.c
-@@ -3227,7 +3227,7 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec)
- {
- 	struct via_spec *spec = codec->spec;
- 	int imux_is_smixer;
--	unsigned int parm;
-+	unsigned int parm, parm2;
- 	/* MUX6 (1eh) = stereo mixer */
- 	imux_is_smixer =
- 	snd_hda_codec_read(codec, 0x1e, 0, AC_VERB_GET_CONNECT_SEL, 0x00) == 5;
-@@ -3250,7 +3250,7 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec)
- 	parm = AC_PWRST_D3;
- 	set_pin_power_state(codec, 0x27, &parm);
- 	snd_hda_codec_write(codec, 0x1a, 0, AC_VERB_SET_POWER_STATE, parm);
--	snd_hda_codec_write(codec, 0xb, 0, AC_VERB_SET_POWER_STATE, parm);
-+	parm2 = parm; /* for pin 0x0b */
- 
- 	/* PW2 (26h), AOW2 (ah) */
- 	parm = AC_PWRST_D3;
-@@ -3265,6 +3265,9 @@ static void set_widgets_power_state_vt1718S(struct hda_codec *codec)
- 	if (!spec->hp_independent_mode) /* check for redirected HP */
- 		set_pin_power_state(codec, 0x28, &parm);
- 	snd_hda_codec_write(codec, 0x8, 0, AC_VERB_SET_POWER_STATE, parm);
-+	if (!spec->hp_independent_mode && parm2 != AC_PWRST_D3)
-+		parm = parm2;
-+	snd_hda_codec_write(codec, 0xb, 0, AC_VERB_SET_POWER_STATE, parm);
- 	/* MW9 (21h), Mw2 (1ah), AOW0 (8h) */
- 	snd_hda_codec_write(codec, 0x21, 0, AC_VERB_SET_POWER_STATE,
- 			    imux_is_smixer ? AC_PWRST_D0 : parm);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0030-ALSA-mpu401-Fix-missing-initialization-of-irq-field.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0030-ALSA-mpu401-Fix-missing-initialization-of-irq-field.patch
deleted file mode 100644
index 5885b45..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0030-ALSA-mpu401-Fix-missing-initialization-of-irq-field.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 1b12abe45ddcd7a4f3d927195dd69b8e6e9acb4e Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 23 Jul 2012 11:35:55 +0200
-Subject: [PATCH 30/70] ALSA: mpu401: Fix missing initialization of irq field
-
-commit bc733d495267a23ef8660220d696c6e549ce30b3 upstream.
-
-The irq field of struct snd_mpu401 is supposed to be initialized to -1.
-Since it's set to zero as of now, a probing error before the irq
-installation results in a kernel warning "Trying to free already-free
-IRQ 0".
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=44821
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/drivers/mpu401/mpu401_uart.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/sound/drivers/mpu401/mpu401_uart.c b/sound/drivers/mpu401/mpu401_uart.c
-index 1cff331..4608c2c 100644
---- a/sound/drivers/mpu401/mpu401_uart.c
-+++ b/sound/drivers/mpu401/mpu401_uart.c
-@@ -554,6 +554,7 @@ int snd_mpu401_uart_new(struct snd_card *card, int device,
- 	spin_lock_init(&mpu->output_lock);
- 	spin_lock_init(&mpu->timer_lock);
- 	mpu->hardware = hardware;
-+	mpu->irq = -1;
- 	if (! (info_flags & MPU401_INFO_INTEGRATED)) {
- 		int res_size = hardware == MPU401_HW_PC98II ? 4 : 2;
- 		mpu->res = request_region(port, res_size, "MPU401 UART");
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0031-x86-nops-Missing-break-resulting-in-incorrect-select.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0031-x86-nops-Missing-break-resulting-in-incorrect-select.patch
deleted file mode 100644
index b99ccb2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0031-x86-nops-Missing-break-resulting-in-incorrect-select.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 884a5eb458ec88aad066be1cd4486dba34488aad Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Wed, 25 Jul 2012 16:28:19 +0100
-Subject: [PATCH 31/70] x86, nops: Missing break resulting in incorrect
- selection on Intel
-
-commit d6250a3f12edb3a86db9598ffeca3de8b4a219e9 upstream.
-
-The Intel case falls through into the generic case which then changes
-the values.  For cases like the P6 it doesn't do the right thing so
-this seems to be a screwup.
-
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Link: http://lkml.kernel.org/n/tip-lww2uirad4skzjlmrm0vru8o@git.kernel.org
-Signed-off-by: H. Peter Anvin <hpa at zytor.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kernel/alternative.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
-index 1f84794..73ef56c 100644
---- a/arch/x86/kernel/alternative.c
-+++ b/arch/x86/kernel/alternative.c
-@@ -219,7 +219,7 @@ void __init arch_init_ideal_nops(void)
- 			ideal_nops = intel_nops;
- #endif
- 		}
--
-+		break;
- 	default:
- #ifdef CONFIG_X86_64
- 		ideal_nops = k8_nops;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0032-s390-mm-downgrade-page-table-after-fork-of-a-31-bit-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0032-s390-mm-downgrade-page-table-after-fork-of-a-31-bit-.patch
deleted file mode 100644
index d285d97..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0032-s390-mm-downgrade-page-table-after-fork-of-a-31-bit-.patch
+++ /dev/null
@@ -1,140 +0,0 @@
-From 7cd099a4bf8f6367aff3ef6f7b0409712925f42e Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Date: Thu, 26 Jul 2012 08:53:06 +0200
-Subject: [PATCH 32/70] s390/mm: downgrade page table after fork of a 31 bit
- process
-
-commit 0f6f281b731d20bfe75c13f85d33f3f05b440222 upstream.
-
-The downgrade of the 4 level page table created by init_new_context is
-currently done only in start_thread31. If a 31 bit process forks the
-new mm uses a 4 level page table, including the task size of 2<<42
-that goes along with it. This is incorrect as now a 31 bit process
-can map memory beyond 2GB. Define arch_dup_mmap to do the downgrade
-after fork.
-
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/include/asm/mmu_context.h |   14 +++++++++++++-
- arch/s390/include/asm/processor.h   |    2 ++
- arch/s390/mm/mmap.c                 |   12 ++++++++++--
- arch/s390/mm/pgtable.c              |    5 -----
- 4 files changed, 25 insertions(+), 8 deletions(-)
-
-diff --git a/arch/s390/include/asm/mmu_context.h b/arch/s390/include/asm/mmu_context.h
-index 5682f16..20f0e01 100644
---- a/arch/s390/include/asm/mmu_context.h
-+++ b/arch/s390/include/asm/mmu_context.h
-@@ -12,7 +12,6 @@
- #include <asm/pgalloc.h>
- #include <asm/uaccess.h>
- #include <asm/tlbflush.h>
--#include <asm-generic/mm_hooks.h>
- 
- static inline int init_new_context(struct task_struct *tsk,
- 				   struct mm_struct *mm)
-@@ -92,4 +91,17 @@ static inline void activate_mm(struct mm_struct *prev,
-         switch_mm(prev, next, current);
- }
- 
-+static inline void arch_dup_mmap(struct mm_struct *oldmm,
-+				 struct mm_struct *mm)
-+{
-+#ifdef CONFIG_64BIT
-+	if (oldmm->context.asce_limit < mm->context.asce_limit)
-+		crst_table_downgrade(mm, oldmm->context.asce_limit);
-+#endif
-+}
-+
-+static inline void arch_exit_mmap(struct mm_struct *mm)
-+{
-+}
-+
- #endif /* __S390_MMU_CONTEXT_H */
-diff --git a/arch/s390/include/asm/processor.h b/arch/s390/include/asm/processor.h
-index 5f33d37..172550d 100644
---- a/arch/s390/include/asm/processor.h
-+++ b/arch/s390/include/asm/processor.h
-@@ -130,7 +130,9 @@ struct stack_frame {
- 	regs->psw.mask	= psw_user_bits | PSW_MASK_BA;			\
- 	regs->psw.addr	= new_psw | PSW_ADDR_AMODE;			\
- 	regs->gprs[15]	= new_stackp;					\
-+	__tlb_flush_mm(current->mm);					\
- 	crst_table_downgrade(current->mm, 1UL << 31);			\
-+	update_mm(current->mm, current);				\
- } while (0)
- 
- /* Forward declaration, a strange C thing */
-diff --git a/arch/s390/mm/mmap.c b/arch/s390/mm/mmap.c
-index a0155c0..c70b3d8 100644
---- a/arch/s390/mm/mmap.c
-+++ b/arch/s390/mm/mmap.c
-@@ -106,9 +106,15 @@ EXPORT_SYMBOL_GPL(arch_pick_mmap_layout);
- 
- int s390_mmap_check(unsigned long addr, unsigned long len)
- {
-+	int rc;
-+
- 	if (!is_compat_task() &&
--	    len >= TASK_SIZE && TASK_SIZE < (1UL << 53))
--		return crst_table_upgrade(current->mm, 1UL << 53);
-+	    len >= TASK_SIZE && TASK_SIZE < (1UL << 53)) {
-+		rc = crst_table_upgrade(current->mm, 1UL << 53);
-+		if (rc)
-+			return rc;
-+		update_mm(current->mm, current);
-+	}
- 	return 0;
- }
- 
-@@ -128,6 +134,7 @@ s390_get_unmapped_area(struct file *filp, unsigned long addr,
- 		rc = crst_table_upgrade(mm, 1UL << 53);
- 		if (rc)
- 			return (unsigned long) rc;
-+		update_mm(mm, current);
- 		area = arch_get_unmapped_area(filp, addr, len, pgoff, flags);
- 	}
- 	return area;
-@@ -150,6 +157,7 @@ s390_get_unmapped_area_topdown(struct file *filp, const unsigned long addr,
- 		rc = crst_table_upgrade(mm, 1UL << 53);
- 		if (rc)
- 			return (unsigned long) rc;
-+		update_mm(mm, current);
- 		area = arch_get_unmapped_area_topdown(filp, addr, len,
- 						      pgoff, flags);
- 	}
-diff --git a/arch/s390/mm/pgtable.c b/arch/s390/mm/pgtable.c
-index f8ceac4..f8e92f8 100644
---- a/arch/s390/mm/pgtable.c
-+++ b/arch/s390/mm/pgtable.c
-@@ -97,7 +97,6 @@ repeat:
- 		crst_table_free(mm, table);
- 	if (mm->context.asce_limit < limit)
- 		goto repeat;
--	update_mm(mm, current);
- 	return 0;
- }
- 
-@@ -105,9 +104,6 @@ void crst_table_downgrade(struct mm_struct *mm, unsigned long limit)
- {
- 	pgd_t *pgd;
- 
--	if (mm->context.asce_limit <= limit)
--		return;
--	__tlb_flush_mm(mm);
- 	while (mm->context.asce_limit > limit) {
- 		pgd = mm->pgd;
- 		switch (pgd_val(*pgd) & _REGION_ENTRY_TYPE_MASK) {
-@@ -130,7 +126,6 @@ void crst_table_downgrade(struct mm_struct *mm, unsigned long limit)
- 		mm->task_size = mm->context.asce_limit;
- 		crst_table_free(mm, (unsigned long *) pgd);
- 	}
--	update_mm(mm, current);
- }
- #endif
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0033-Redefine-ATOMIC_INIT-and-ATOMIC64_INIT-to-drop-the-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0033-Redefine-ATOMIC_INIT-and-ATOMIC64_INIT-to-drop-the-c.patch
deleted file mode 100644
index 2a98f77..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0033-Redefine-ATOMIC_INIT-and-ATOMIC64_INIT-to-drop-the-c.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From f96e9f9d90fd6778b97a1a32c6769abcb302fbb0 Mon Sep 17 00:00:00 2001
-From: Tony Luck <tony.luck at intel.com>
-Date: Thu, 26 Jul 2012 10:55:26 -0700
-Subject: [PATCH 33/70] Redefine ATOMIC_INIT and ATOMIC64_INIT to drop the
- casts
-
-commit a119365586b0130dfea06457f584953e0ff6481d upstream.
-
-The following build error occured during a ia64 build with
-swap-over-NFS patches applied.
-
-net/core/sock.c:274:36: error: initializer element is not constant
-net/core/sock.c:274:36: error: (near initialization for 'memalloc_socks')
-net/core/sock.c:274:36: error: initializer element is not constant
-
-This is identical to a parisc build error. Fengguang Wu, Mel Gorman
-and James Bottomley did all the legwork to track the root cause of
-the problem. This fix and entire commit log is shamelessly copied
-from them with one extra detail to change a dubious runtime use of
-ATOMIC_INIT() to atomic_set() in drivers/char/mspec.c
-
-Dave Anglin says:
-> Here is the line in sock.i:
->
-> struct static_key memalloc_socks = ((struct static_key) { .enabled =
-> ((atomic_t) { (0) }) });
-
-The above line contains two compound literals.  It also uses a designated
-initializer to initialize the field enabled.  A compound literal is not a
-constant expression.
-
-The location of the above statement isn't fully clear, but if a compound
-literal occurs outside the body of a function, the initializer list must
-consist of constant expressions.
-
-Signed-off-by: Tony Luck <tony.luck at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/ia64/include/asm/atomic.h |    4 ++--
- drivers/char/mspec.c           |    2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/arch/ia64/include/asm/atomic.h b/arch/ia64/include/asm/atomic.h
-index 3fad89e..2fc214b 100644
---- a/arch/ia64/include/asm/atomic.h
-+++ b/arch/ia64/include/asm/atomic.h
-@@ -18,8 +18,8 @@
- #include <asm/system.h>
- 
- 
--#define ATOMIC_INIT(i)		((atomic_t) { (i) })
--#define ATOMIC64_INIT(i)	((atomic64_t) { (i) })
-+#define ATOMIC_INIT(i)		{ (i) }
-+#define ATOMIC64_INIT(i)	{ (i) }
- 
- #define atomic_read(v)		(*(volatile int *)&(v)->counter)
- #define atomic64_read(v)	(*(volatile long *)&(v)->counter)
-diff --git a/drivers/char/mspec.c b/drivers/char/mspec.c
-index 5c0d96a..b12ffea 100644
---- a/drivers/char/mspec.c
-+++ b/drivers/char/mspec.c
-@@ -284,7 +284,7 @@ mspec_mmap(struct file *file, struct vm_area_struct *vma,
- 	vdata->flags = flags;
- 	vdata->type = type;
- 	spin_lock_init(&vdata->lock);
--	vdata->refcnt = ATOMIC_INIT(1);
-+	atomic_set(&vdata->refcnt, 1);
- 	vma->vm_private_data = vdata;
- 
- 	vma->vm_flags |= (VM_IO | VM_RESERVED | VM_PFNMAP | VM_DONTEXPAND);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0034-dm-thin-reduce-endio_hook-pool-size.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0034-dm-thin-reduce-endio_hook-pool-size.patch
deleted file mode 100644
index c3c5f8b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0034-dm-thin-reduce-endio_hook-pool-size.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 1385bcac3fbce09731cb85a16a86952796a5dcbf Mon Sep 17 00:00:00 2001
-From: Alasdair G Kergon <agk at redhat.com>
-Date: Fri, 27 Jul 2012 15:07:57 +0100
-Subject: [PATCH 34/70] dm thin: reduce endio_hook pool size
-
-commit 7768ed33ccdc02801c4483fc5682dc66ace14aea upstream.
-
-Reduce the slab size used for the dm_thin_endio_hook mempool.
-
-Allocation has been seen to fail on machines with smaller amounts
-of memory due to fragmentation.
-
-  lvm: page allocation failure. order:5, mode:0xd0
-  device-mapper: table: 253:38: thin-pool: Error creating pool's endio_hook mempool
-
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/dm-thin.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
-index 532a902..f68290d 100644
---- a/drivers/md/dm-thin.c
-+++ b/drivers/md/dm-thin.c
-@@ -19,7 +19,7 @@
- /*
-  * Tunable constants
-  */
--#define ENDIO_HOOK_POOL_SIZE 10240
-+#define ENDIO_HOOK_POOL_SIZE 1024
- #define DEFERRED_SET_SIZE 64
- #define MAPPING_POOL_SIZE 1024
- #define PRISON_CELLS 1024
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0035-dm-thin-fix-memory-leak-in-process_prepared_mapping-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0035-dm-thin-fix-memory-leak-in-process_prepared_mapping-.patch
deleted file mode 100644
index 1a4dfb9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0035-dm-thin-fix-memory-leak-in-process_prepared_mapping-.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0b46cbe86286a3688c4469a702b907d4f45f6b17 Mon Sep 17 00:00:00 2001
-From: Joe Thornber <ejt at redhat.com>
-Date: Fri, 27 Jul 2012 15:08:05 +0100
-Subject: [PATCH 35/70] dm thin: fix memory leak in process_prepared_mapping
- error paths
-
-commit 905386f82d08f66726912f303f3e6605248c60a3 upstream.
-
-Fix memory leak in process_prepared_mapping by always freeing
-the dm_thin_new_mapping structs from the mapping_pool mempool on
-the error paths.
-
-Signed-off-by: Joe Thornber <ejt at redhat.com>
-Signed-off-by: Mike Snitzer <snitzer at redhat.com>
-Signed-off-by: Alasdair G Kergon <agk at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/dm-thin.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/md/dm-thin.c b/drivers/md/dm-thin.c
-index f68290d..d432032 100644
---- a/drivers/md/dm-thin.c
-+++ b/drivers/md/dm-thin.c
-@@ -857,7 +857,7 @@ static void process_prepared_mapping(struct new_mapping *m)
- 
- 	if (m->err) {
- 		cell_error(m->cell);
--		return;
-+		goto out;
- 	}
- 
- 	/*
-@@ -869,7 +869,7 @@ static void process_prepared_mapping(struct new_mapping *m)
- 	if (r) {
- 		DMERR("dm_thin_insert_block() failed");
- 		cell_error(m->cell);
--		return;
-+		goto out;
- 	}
- 
- 	/*
-@@ -884,6 +884,7 @@ static void process_prepared_mapping(struct new_mapping *m)
- 	} else
- 		cell_defer(tc, m->cell, m->data_block);
- 
-+out:
- 	list_del(&m->list);
- 	mempool_free(m, tc->pool->mapping_pool);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0036-random-mix-in-architectural-randomness-in-extract_bu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0036-random-mix-in-architectural-randomness-in-extract_bu.patch
deleted file mode 100644
index 26586e6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0036-random-mix-in-architectural-randomness-in-extract_bu.patch
+++ /dev/null
@@ -1,151 +0,0 @@
-From fe897421d28b4fce43ee643aa1e1bacecd6aacf2 Mon Sep 17 00:00:00 2001
-From: "H. Peter Anvin" <hpa at linux.intel.com>
-Date: Fri, 27 Jul 2012 22:26:08 -0400
-Subject: [PATCH 36/70] random: mix in architectural randomness in
- extract_buf()
-
-commit d2e7c96af1e54b507ae2a6a7dd2baf588417a7e5 upstream.
-
-Mix in any architectural randomness in extract_buf() instead of
-xfer_secondary_buf().  This allows us to mix in more architectural
-randomness, and it also makes xfer_secondary_buf() faster, moving a
-tiny bit of additional CPU overhead to process which is extracting the
-randomness.
-
-[ Commit description modified by tytso to remove an extended
-  advertisement for the RDRAND instruction. ]
-
-Signed-off-by: H. Peter Anvin <hpa at linux.intel.com>
-Acked-by: Ingo Molnar <mingo at kernel.org>
-Cc: DJ Johnston <dj.johnston at intel.com>
-Signed-off-by: Theodore Ts'o <tytso at mit.edu>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/char/random.c |   56 ++++++++++++++++++++++++++++---------------------
- 1 files changed, 32 insertions(+), 24 deletions(-)
-
-diff --git a/drivers/char/random.c b/drivers/char/random.c
-index f3200bf..631d4f6 100644
---- a/drivers/char/random.c
-+++ b/drivers/char/random.c
-@@ -274,6 +274,8 @@
- #define SEC_XFER_SIZE 512
- #define EXTRACT_SIZE 10
- 
-+#define LONGS(x) (((x) + sizeof(unsigned long) - 1)/sizeof(unsigned long))
-+
- /*
-  * The minimum number of bits of entropy before we wake up a read on
-  * /dev/random.  Should be enough to do a significant reseed.
-@@ -835,11 +837,7 @@ static ssize_t extract_entropy(struct entropy_store *r, void *buf,
-  */
- static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
- {
--	union {
--		__u32	tmp[OUTPUT_POOL_WORDS];
--		long	hwrand[4];
--	} u;
--	int	i;
-+	__u32	tmp[OUTPUT_POOL_WORDS];
- 
- 	if (r->pull && r->entropy_count < nbytes * 8 &&
- 	    r->entropy_count < r->poolinfo->POOLBITS) {
-@@ -850,23 +848,17 @@ static void xfer_secondary_pool(struct entropy_store *r, size_t nbytes)
- 		/* pull at least as many as BYTES as wakeup BITS */
- 		bytes = max_t(int, bytes, random_read_wakeup_thresh / 8);
- 		/* but never more than the buffer size */
--		bytes = min_t(int, bytes, sizeof(u.tmp));
-+		bytes = min_t(int, bytes, sizeof(tmp));
- 
- 		DEBUG_ENT("going to reseed %s with %d bits "
- 			  "(%d of %d requested)\n",
- 			  r->name, bytes * 8, nbytes * 8, r->entropy_count);
- 
--		bytes = extract_entropy(r->pull, u.tmp, bytes,
-+		bytes = extract_entropy(r->pull, tmp, bytes,
- 					random_read_wakeup_thresh / 8, rsvd);
--		mix_pool_bytes(r, u.tmp, bytes, NULL);
-+		mix_pool_bytes(r, tmp, bytes, NULL);
- 		credit_entropy_bits(r, bytes*8);
- 	}
--	kmemcheck_mark_initialized(&u.hwrand, sizeof(u.hwrand));
--	for (i = 0; i < 4; i++)
--		if (arch_get_random_long(&u.hwrand[i]))
--			break;
--	if (i)
--		mix_pool_bytes(r, &u.hwrand, sizeof(u.hwrand), 0);
- }
- 
- /*
-@@ -923,15 +915,19 @@ static size_t account(struct entropy_store *r, size_t nbytes, int min,
- static void extract_buf(struct entropy_store *r, __u8 *out)
- {
- 	int i;
--	__u32 hash[5], workspace[SHA_WORKSPACE_WORDS];
-+	union {
-+		__u32 w[5];
-+		unsigned long l[LONGS(EXTRACT_SIZE)];
-+	} hash;
-+	__u32 workspace[SHA_WORKSPACE_WORDS];
- 	__u8 extract[64];
- 	unsigned long flags;
- 
- 	/* Generate a hash across the pool, 16 words (512 bits) at a time */
--	sha_init(hash);
-+	sha_init(hash.w);
- 	spin_lock_irqsave(&r->lock, flags);
- 	for (i = 0; i < r->poolinfo->poolwords; i += 16)
--		sha_transform(hash, (__u8 *)(r->pool + i), workspace);
-+		sha_transform(hash.w, (__u8 *)(r->pool + i), workspace);
- 
- 	/*
- 	 * We mix the hash back into the pool to prevent backtracking
-@@ -942,14 +938,14 @@ static void extract_buf(struct entropy_store *r, __u8 *out)
- 	 * brute-forcing the feedback as hard as brute-forcing the
- 	 * hash.
- 	 */
--	__mix_pool_bytes(r, hash, sizeof(hash), extract);
-+	__mix_pool_bytes(r, hash.w, sizeof(hash.w), extract);
- 	spin_unlock_irqrestore(&r->lock, flags);
- 
- 	/*
- 	 * To avoid duplicates, we atomically extract a portion of the
- 	 * pool while mixing, and hash one final time.
- 	 */
--	sha_transform(hash, extract, workspace);
-+	sha_transform(hash.w, extract, workspace);
- 	memset(extract, 0, sizeof(extract));
- 	memset(workspace, 0, sizeof(workspace));
- 
-@@ -958,11 +954,23 @@ static void extract_buf(struct entropy_store *r, __u8 *out)
- 	 * pattern, we fold it in half. Thus, we always feed back
- 	 * twice as much data as we output.
- 	 */
--	hash[0] ^= hash[3];
--	hash[1] ^= hash[4];
--	hash[2] ^= rol32(hash[2], 16);
--	memcpy(out, hash, EXTRACT_SIZE);
--	memset(hash, 0, sizeof(hash));
-+	hash.w[0] ^= hash.w[3];
-+	hash.w[1] ^= hash.w[4];
-+	hash.w[2] ^= rol32(hash.w[2], 16);
-+
-+	/*
-+	 * If we have a architectural hardware random number
-+	 * generator, mix that in, too.
-+	 */
-+	for (i = 0; i < LONGS(EXTRACT_SIZE); i++) {
-+		unsigned long v;
-+		if (!arch_get_random_long(&v))
-+			break;
-+		hash.l[i] ^= v;
-+	}
-+
-+	memcpy(out, &hash, EXTRACT_SIZE);
-+	memset(&hash, 0, sizeof(hash));
- }
- 
- static ssize_t extract_entropy(struct entropy_store *r, void *buf,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0037-asus-wmi-use-ASUS_WMI_METHODID_DSTS2-as-default-DSTS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0037-asus-wmi-use-ASUS_WMI_METHODID_DSTS2-as-default-DSTS.patch
deleted file mode 100644
index 983ede2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0037-asus-wmi-use-ASUS_WMI_METHODID_DSTS2-as-default-DSTS.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From b84b4b80d632292198b2281d2c76044b5bebadd3 Mon Sep 17 00:00:00 2001
-From: Alex Hung <alex.hung at canonical.com>
-Date: Wed, 20 Jun 2012 11:47:35 +0800
-Subject: [PATCH 37/70] asus-wmi: use ASUS_WMI_METHODID_DSTS2 as default DSTS
- ID.
-
-commit 63a78bb1051b240417daad3a3fa9c1bb10646dca upstream.
-
-According to responses from the BIOS team, ASUS_WMI_METHODID_DSTS2
-(0x53545344) will be used as future DSTS ID. In addition, calling
-asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL) returns
-ASUS_WMI_UNSUPPORTED_METHOD in new ASUS laptop PCs. This patch fixes
-no DSTS ID will be assigned in this case.
-
-Signed-off-by: Alex Hung <alex.hung at canonical.com>
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/platform/x86/asus-wmi.c |    7 +------
- 1 files changed, 1 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/platform/x86/asus-wmi.c b/drivers/platform/x86/asus-wmi.c
-index d1049ee..26fba2d 100644
---- a/drivers/platform/x86/asus-wmi.c
-+++ b/drivers/platform/x86/asus-wmi.c
-@@ -1431,14 +1431,9 @@ static int asus_wmi_platform_init(struct asus_wmi *asus)
- 	 */
- 	if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS, 0, 0, NULL))
- 		asus->dsts_id = ASUS_WMI_METHODID_DSTS;
--	else if (!asus_wmi_evaluate_method(ASUS_WMI_METHODID_DSTS2, 0, 0, NULL))
-+	else
- 		asus->dsts_id = ASUS_WMI_METHODID_DSTS2;
- 
--	if (!asus->dsts_id) {
--		pr_err("Can't find DSTS");
--		return -ENODEV;
--	}
--
- 	/* CWAP allow to define the behavior of the Fn+F2 key,
- 	 * this method doesn't seems to be present on Eee PCs */
- 	if (asus->driver->wapf >= 0)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0038-virtio-blk-Use-block-layer-provided-spinlock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0038-virtio-blk-Use-block-layer-provided-spinlock.patch
deleted file mode 100644
index 8efee34..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0038-virtio-blk-Use-block-layer-provided-spinlock.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From b0b5f9284f3f86ce8c28aa112d267d261a5201e9 Mon Sep 17 00:00:00 2001
-From: Asias He <asias at redhat.com>
-Date: Fri, 25 May 2012 16:03:27 +0800
-Subject: [PATCH 38/70] virtio-blk: Use block layer provided spinlock
-
-commit 2c95a3290919541b846bee3e0fbaa75860929f53 upstream.
-
-Block layer will allocate a spinlock for the queue if the driver does
-not provide one in blk_init_queue().
-
-The reason to use the internal spinlock is that blk_cleanup_queue() will
-switch to use the internal spinlock in the cleanup code path.
-
-        if (q->queue_lock != &q->__queue_lock)
-                q->queue_lock = &q->__queue_lock;
-
-However, processes which are in D state might have taken the driver
-provided spinlock, when the processes wake up, they would release the
-block provided spinlock.
-
-=====================================
-[ BUG: bad unlock balance detected! ]
-3.4.0-rc7+ #238 Not tainted
--------------------------------------
-fio/3587 is trying to release lock (&(&q->__queue_lock)->rlock) at:
-[<ffffffff813274d2>] blk_queue_bio+0x2a2/0x380
-but there are no more locks to release!
-
-other info that might help us debug this:
-1 lock held by fio/3587:
- #0:  (&(&vblk->lock)->rlock){......}, at:
-[<ffffffff8132661a>] get_request_wait+0x19a/0x250
-
-Other drivers use block layer provided spinlock as well, e.g. SCSI.
-
-Switching to the block layer provided spinlock saves a bit of memory and
-does not increase lock contention. Performance test shows no real
-difference is observed before and after this patch.
-
-Changes in v2: Improve commit log as Michael suggested.
-
-Cc: virtualization at lists.linux-foundation.org
-Cc: kvm at vger.kernel.org
-Signed-off-by: Asias He <asias at redhat.com>
-Acked-by: Michael S. Tsirkin <mst at redhat.com>
-Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/block/virtio_blk.c |    9 +++------
- 1 files changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/block/virtio_blk.c b/drivers/block/virtio_blk.c
-index e46f2f7..650a308 100644
---- a/drivers/block/virtio_blk.c
-+++ b/drivers/block/virtio_blk.c
-@@ -20,8 +20,6 @@ struct workqueue_struct *virtblk_wq;
- 
- struct virtio_blk
- {
--	spinlock_t lock;
--
- 	struct virtio_device *vdev;
- 	struct virtqueue *vq;
- 
-@@ -62,7 +60,7 @@ static void blk_done(struct virtqueue *vq)
- 	unsigned int len;
- 	unsigned long flags;
- 
--	spin_lock_irqsave(&vblk->lock, flags);
-+	spin_lock_irqsave(vblk->disk->queue->queue_lock, flags);
- 	while ((vbr = virtqueue_get_buf(vblk->vq, &len)) != NULL) {
- 		int error;
- 
-@@ -97,7 +95,7 @@ static void blk_done(struct virtqueue *vq)
- 	}
- 	/* In case queue is stopped waiting for more buffers. */
- 	blk_start_queue(vblk->disk->queue);
--	spin_unlock_irqrestore(&vblk->lock, flags);
-+	spin_unlock_irqrestore(vblk->disk->queue->queue_lock, flags);
- }
- 
- static bool do_req(struct request_queue *q, struct virtio_blk *vblk,
-@@ -384,7 +382,6 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
- 	}
- 
- 	INIT_LIST_HEAD(&vblk->reqs);
--	spin_lock_init(&vblk->lock);
- 	vblk->vdev = vdev;
- 	vblk->sg_elems = sg_elems;
- 	sg_init_table(vblk->sg, vblk->sg_elems);
-@@ -410,7 +407,7 @@ static int __devinit virtblk_probe(struct virtio_device *vdev)
- 		goto out_mempool;
- 	}
- 
--	q = vblk->disk->queue = blk_init_queue(do_virtblk_request, &vblk->lock);
-+	q = vblk->disk->queue = blk_init_queue(do_virtblk_request, NULL);
- 	if (!q) {
- 		err = -ENOMEM;
- 		goto out_put_disk;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0039-s390-mm-fix-fault-handling-for-page-table-walk-case.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0039-s390-mm-fix-fault-handling-for-page-table-walk-case.patch
deleted file mode 100644
index 51b2063..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0039-s390-mm-fix-fault-handling-for-page-table-walk-case.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 3f3c533087d18cd75fbd23caa35032b3cec80ea8 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <heiko.carstens at de.ibm.com>
-Date: Fri, 27 Jul 2012 09:45:39 +0200
-Subject: [PATCH 39/70] s390/mm: fix fault handling for page table walk case
-
-commit 008c2e8f247f0a8db1e8e26139da12f3a3abcda0 upstream.
-
-Make sure the kernel does not incorrectly create a SIGBUS signal during
-user space accesses:
-
-For user space accesses in the switched addressing mode case the kernel
-may walk page tables and access user address space via the kernel
-mapping. If a page table entry is invalid the function __handle_fault()
-gets called in order to emulate a page fault and trigger all the usual
-actions like paging in a missing page etc. by calling handle_mm_fault().
-
-If handle_mm_fault() returns with an error fixup handling is necessary.
-For the switched addressing mode case all errors need to be mapped to
--EFAULT, so that the calling uaccess function can return -EFAULT to
-user space.
-
-Unfortunately the __handle_fault() incorrectly calls do_sigbus() if
-VM_FAULT_SIGBUS is set. This however should only happen if a page fault
-was triggered by a user space instruction. For kernel mode uaccesses
-the correct action is to only return -EFAULT.
-So user space may incorrectly see SIGBUS signals because of this bug.
-
-For current machines this would only be possible for the switched
-addressing mode case in conjunction with futex operations.
-
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-[bwh: Backported to 3.2: do_exception() and do_sigbus() parameters differ]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/mm/fault.c |   13 +++++++------
- 1 files changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/arch/s390/mm/fault.c b/arch/s390/mm/fault.c
-index b28aaa4..0fc0a7e 100644
---- a/arch/s390/mm/fault.c
-+++ b/arch/s390/mm/fault.c
-@@ -453,6 +453,7 @@ int __handle_fault(unsigned long uaddr, unsigned long pgm_int_code, int write)
- 	struct pt_regs regs;
- 	int access, fault;
- 
-+	/* Emulate a uaccess fault from kernel mode. */
- 	regs.psw.mask = psw_kernel_bits | PSW_MASK_DAT | PSW_MASK_MCHECK;
- 	if (!irqs_disabled())
- 		regs.psw.mask |= PSW_MASK_IO | PSW_MASK_EXT;
-@@ -461,12 +462,12 @@ int __handle_fault(unsigned long uaddr, unsigned long pgm_int_code, int write)
- 	uaddr &= PAGE_MASK;
- 	access = write ? VM_WRITE : VM_READ;
- 	fault = do_exception(&regs, access, uaddr | 2);
--	if (unlikely(fault)) {
--		if (fault & VM_FAULT_OOM)
--			return -EFAULT;
--		else if (fault & VM_FAULT_SIGBUS)
--			do_sigbus(&regs, pgm_int_code, uaddr);
--	}
-+	/*
-+	 * Since the fault happened in kernel mode while performing a uaccess
-+	 * all we need to do now is emulating a fixup in case "fault" is not
-+	 * zero.
-+	 * For the calling uaccess functions this results always in -EFAULT.
-+	 */
- 	return fault ? -EFAULT : 0;
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0040-nfs-skip-commit-in-releasepage-if-we-re-freeing-memo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0040-nfs-skip-commit-in-releasepage-if-we-re-freeing-memo.patch
deleted file mode 100644
index 1063bad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0040-nfs-skip-commit-in-releasepage-if-we-re-freeing-memo.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From 264ef5a0ef781e5e2212558fe56f17f6cc2b7308 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Mon, 23 Jul 2012 13:58:51 -0400
-Subject: [PATCH 40/70] nfs: skip commit in releasepage if we're freeing
- memory for fs-related reasons
-
-commit 5cf02d09b50b1ee1c2d536c9cf64af5a7d433f56 upstream.
-
-We've had some reports of a deadlock where rpciod ends up with a stack
-trace like this:
-
-    PID: 2507   TASK: ffff88103691ab40  CPU: 14  COMMAND: "rpciod/14"
-     #0 [ffff8810343bf2f0] schedule at ffffffff814dabd9
-     #1 [ffff8810343bf3b8] nfs_wait_bit_killable at ffffffffa038fc04 [nfs]
-     #2 [ffff8810343bf3c8] __wait_on_bit at ffffffff814dbc2f
-     #3 [ffff8810343bf418] out_of_line_wait_on_bit at ffffffff814dbcd8
-     #4 [ffff8810343bf488] nfs_commit_inode at ffffffffa039e0c1 [nfs]
-     #5 [ffff8810343bf4f8] nfs_release_page at ffffffffa038bef6 [nfs]
-     #6 [ffff8810343bf528] try_to_release_page at ffffffff8110c670
-     #7 [ffff8810343bf538] shrink_page_list.clone.0 at ffffffff81126271
-     #8 [ffff8810343bf668] shrink_inactive_list at ffffffff81126638
-     #9 [ffff8810343bf818] shrink_zone at ffffffff8112788f
-    #10 [ffff8810343bf8c8] do_try_to_free_pages at ffffffff81127b1e
-    #11 [ffff8810343bf958] try_to_free_pages at ffffffff8112812f
-    #12 [ffff8810343bfa08] __alloc_pages_nodemask at ffffffff8111fdad
-    #13 [ffff8810343bfb28] kmem_getpages at ffffffff81159942
-    #14 [ffff8810343bfb58] fallback_alloc at ffffffff8115a55a
-    #15 [ffff8810343bfbd8] ____cache_alloc_node at ffffffff8115a2d9
-    #16 [ffff8810343bfc38] kmem_cache_alloc at ffffffff8115b09b
-    #17 [ffff8810343bfc78] sk_prot_alloc at ffffffff81411808
-    #18 [ffff8810343bfcb8] sk_alloc at ffffffff8141197c
-    #19 [ffff8810343bfce8] inet_create at ffffffff81483ba6
-    #20 [ffff8810343bfd38] __sock_create at ffffffff8140b4a7
-    #21 [ffff8810343bfd98] xs_create_sock at ffffffffa01f649b [sunrpc]
-    #22 [ffff8810343bfdd8] xs_tcp_setup_socket at ffffffffa01f6965 [sunrpc]
-    #23 [ffff8810343bfe38] worker_thread at ffffffff810887d0
-    #24 [ffff8810343bfee8] kthread at ffffffff8108dd96
-    #25 [ffff8810343bff48] kernel_thread at ffffffff8100c1ca
-
-rpciod is trying to allocate memory for a new socket to talk to the
-server. The VM ends up calling ->releasepage to get more memory, and it
-tries to do a blocking commit. That commit can't succeed however without
-a connected socket, so we deadlock.
-
-Fix this by setting PF_FSTRANS on the workqueue task prior to doing the
-socket allocation, and having nfs_release_page check for that flag when
-deciding whether to do a commit call. Also, set PF_FSTRANS
-unconditionally in rpc_async_schedule since that function can also do
-allocations sometimes.
-
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nfs/file.c                   |    7 +++++--
- net/sunrpc/sched.c              |    2 ++
- net/sunrpc/xprtrdma/transport.c |    3 ++-
- net/sunrpc/xprtsock.c           |   10 ++++++++++
- 4 files changed, 19 insertions(+), 3 deletions(-)
-
-diff --git a/fs/nfs/file.c b/fs/nfs/file.c
-index c43a452..961e562 100644
---- a/fs/nfs/file.c
-+++ b/fs/nfs/file.c
-@@ -452,8 +452,11 @@ static int nfs_release_page(struct page *page, gfp_t gfp)
- 
- 	dfprintk(PAGECACHE, "NFS: release_page(%p)\n", page);
- 
--	/* Only do I/O if gfp is a superset of GFP_KERNEL */
--	if (mapping && (gfp & GFP_KERNEL) == GFP_KERNEL) {
-+	/* Only do I/O if gfp is a superset of GFP_KERNEL, and we're not
-+	 * doing this memory reclaim for a fs-related allocation.
-+	 */
-+	if (mapping && (gfp & GFP_KERNEL) == GFP_KERNEL &&
-+	    !(current->flags & PF_FSTRANS)) {
- 		int how = FLUSH_SYNC;
- 
- 		/* Don't let kswapd deadlock waiting for OOM RPC calls */
-diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
-index 4e2b3b4..c90b832 100644
---- a/net/sunrpc/sched.c
-+++ b/net/sunrpc/sched.c
-@@ -755,7 +755,9 @@ void rpc_execute(struct rpc_task *task)
- 
- static void rpc_async_schedule(struct work_struct *work)
- {
-+	current->flags |= PF_FSTRANS;
- 	__rpc_execute(container_of(work, struct rpc_task, u.tk_work));
-+	current->flags &= ~PF_FSTRANS;
- }
- 
- /**
-diff --git a/net/sunrpc/xprtrdma/transport.c b/net/sunrpc/xprtrdma/transport.c
-index b446e10..06cdbff 100644
---- a/net/sunrpc/xprtrdma/transport.c
-+++ b/net/sunrpc/xprtrdma/transport.c
-@@ -200,6 +200,7 @@ xprt_rdma_connect_worker(struct work_struct *work)
- 	int rc = 0;
- 
- 	if (!xprt->shutdown) {
-+		current->flags |= PF_FSTRANS;
- 		xprt_clear_connected(xprt);
- 
- 		dprintk("RPC:       %s: %sconnect\n", __func__,
-@@ -212,10 +213,10 @@ xprt_rdma_connect_worker(struct work_struct *work)
- 
- out:
- 	xprt_wake_pending_tasks(xprt, rc);
--
- out_clear:
- 	dprintk("RPC:       %s: exit\n", __func__);
- 	xprt_clear_connecting(xprt);
-+	current->flags &= ~PF_FSTRANS;
- }
- 
- /*
-diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
-index 55472c4..1a6edc7 100644
---- a/net/sunrpc/xprtsock.c
-+++ b/net/sunrpc/xprtsock.c
-@@ -1895,6 +1895,8 @@ static void xs_local_setup_socket(struct work_struct *work)
- 	if (xprt->shutdown)
- 		goto out;
- 
-+	current->flags |= PF_FSTRANS;
-+
- 	clear_bit(XPRT_CONNECTION_ABORT, &xprt->state);
- 	status = __sock_create(xprt->xprt_net, AF_LOCAL,
- 					SOCK_STREAM, 0, &sock, 1);
-@@ -1928,6 +1930,7 @@ static void xs_local_setup_socket(struct work_struct *work)
- out:
- 	xprt_clear_connecting(xprt);
- 	xprt_wake_pending_tasks(xprt, status);
-+	current->flags &= ~PF_FSTRANS;
- }
- 
- static void xs_udp_finish_connecting(struct rpc_xprt *xprt, struct socket *sock)
-@@ -1970,6 +1973,8 @@ static void xs_udp_setup_socket(struct work_struct *work)
- 	if (xprt->shutdown)
- 		goto out;
- 
-+	current->flags |= PF_FSTRANS;
-+
- 	/* Start by resetting any existing state */
- 	xs_reset_transport(transport);
- 	sock = xs_create_sock(xprt, transport,
-@@ -1988,6 +1993,7 @@ static void xs_udp_setup_socket(struct work_struct *work)
- out:
- 	xprt_clear_connecting(xprt);
- 	xprt_wake_pending_tasks(xprt, status);
-+	current->flags &= ~PF_FSTRANS;
- }
- 
- /*
-@@ -2113,6 +2119,8 @@ static void xs_tcp_setup_socket(struct work_struct *work)
- 	if (xprt->shutdown)
- 		goto out;
- 
-+	current->flags |= PF_FSTRANS;
-+
- 	if (!sock) {
- 		clear_bit(XPRT_CONNECTION_ABORT, &xprt->state);
- 		sock = xs_create_sock(xprt, transport,
-@@ -2162,6 +2170,7 @@ static void xs_tcp_setup_socket(struct work_struct *work)
- 	case -EINPROGRESS:
- 	case -EALREADY:
- 		xprt_clear_connecting(xprt);
-+		current->flags &= ~PF_FSTRANS;
- 		return;
- 	case -EINVAL:
- 		/* Happens, for instance, if the user specified a link
-@@ -2174,6 +2183,7 @@ out_eagain:
- out:
- 	xprt_clear_connecting(xprt);
- 	xprt_wake_pending_tasks(xprt, status);
-+	current->flags &= ~PF_FSTRANS;
- }
- 
- /**
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0041-md-raid1-don-t-abort-a-resync-on-the-first-badblock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0041-md-raid1-don-t-abort-a-resync-on-the-first-badblock.patch
deleted file mode 100644
index 5cbbca6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0041-md-raid1-don-t-abort-a-resync-on-the-first-badblock.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 30dede5f9785f15bda14b54146afa5d3bd8ebcef Mon Sep 17 00:00:00 2001
-From: NeilBrown <neilb at suse.de>
-Date: Tue, 31 Jul 2012 10:05:34 +1000
-Subject: [PATCH 41/70] md/raid1: don't abort a resync on the first badblock.
-
-commit b7219ccb33aa0df9949a60c68b5e9f712615e56f upstream.
-
-If a resync of a RAID1 array with 2 devices finds a known bad block
-one device it will neither read from, or write to, that device for
-this block offset.
-So there will be one read_target (The other device) and zero write
-targets.
-This condition causes md/raid1 to abort the resync assuming that it
-has finished - without known bad blocks this would be true.
-
-When there are no write targets because of the presence of bad blocks
-we should only skip over the area covered by the bad block.
-RAID10 already gets this right, raid1 doesn't.  Or didn't.
-
-As this can cause a 'sync' to abort early and appear to have succeeded
-it could lead to some data corruption, so it suitable for -stable.
-
-Reported-by: Alexander Lyakas <alex.bolshoy at gmail.com>
-Signed-off-by: NeilBrown <neilb at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/md/raid1.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/md/raid1.c b/drivers/md/raid1.c
-index 2d97bf0..62306e5 100644
---- a/drivers/md/raid1.c
-+++ b/drivers/md/raid1.c
-@@ -2321,7 +2321,10 @@ static sector_t sync_request(struct mddev *mddev, sector_t sector_nr, int *skipp
- 		/* There is nowhere to write, so all non-sync
- 		 * drives must be failed - so we are finished
- 		 */
--		sector_t rv = max_sector - sector_nr;
-+		sector_t rv;
-+		if (min_bad > 0)
-+			max_sector = sector_nr + min_bad;
-+		rv = max_sector - sector_nr;
- 		*skipped = 1;
- 		put_buf(r1_bio);
- 		return rv;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0042-pcdp-use-early_ioremap-early_iounmap-to-access-pcdp-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0042-pcdp-use-early_ioremap-early_iounmap-to-access-pcdp-.patch
deleted file mode 100644
index 5d73f17..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0042-pcdp-use-early_ioremap-early_iounmap-to-access-pcdp-.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From d95d761e05255b4aadcc2978c41cbabb0fba5069 Mon Sep 17 00:00:00 2001
-From: Greg Pearson <greg.pearson at hp.com>
-Date: Mon, 30 Jul 2012 14:39:05 -0700
-Subject: [PATCH 42/70] pcdp: use early_ioremap/early_iounmap to access pcdp
- table
-
-commit 6c4088ac3a4d82779903433bcd5f048c58fb1aca upstream.
-
-efi_setup_pcdp_console() is called during boot to parse the HCDP/PCDP
-EFI system table and setup an early console for printk output.  The
-routine uses ioremap/iounmap to setup access to the HCDP/PCDP table
-information.
-
-The call to ioremap is happening early in the boot process which leads
-to a panic on x86_64 systems:
-
-    panic+0x01ca
-    do_exit+0x043c
-    oops_end+0x00a7
-    no_context+0x0119
-    __bad_area_nosemaphore+0x0138
-    bad_area_nosemaphore+0x000e
-    do_page_fault+0x0321
-    page_fault+0x0020
-    reserve_memtype+0x02a1
-    __ioremap_caller+0x0123
-    ioremap_nocache+0x0012
-    efi_setup_pcdp_console+0x002b
-    setup_arch+0x03a9
-    start_kernel+0x00d4
-    x86_64_start_reservations+0x012c
-    x86_64_start_kernel+0x00fe
-
-This replaces the calls to ioremap/iounmap in efi_setup_pcdp_console()
-with calls to early_ioremap/early_iounmap which can be called during
-early boot.
-
-This patch was tested on an x86_64 prototype system which uses the
-HCDP/PCDP table for early console setup.
-
-Signed-off-by: Greg Pearson <greg.pearson at hp.com>
-Acked-by: Khalid Aziz <khalid.aziz at hp.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/firmware/pcdp.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/firmware/pcdp.c b/drivers/firmware/pcdp.c
-index 51e0e2d..a330492 100644
---- a/drivers/firmware/pcdp.c
-+++ b/drivers/firmware/pcdp.c
-@@ -95,7 +95,7 @@ efi_setup_pcdp_console(char *cmdline)
- 	if (efi.hcdp == EFI_INVALID_TABLE_ADDR)
- 		return -ENODEV;
- 
--	pcdp = ioremap(efi.hcdp, 4096);
-+	pcdp = early_ioremap(efi.hcdp, 4096);
- 	printk(KERN_INFO "PCDP: v%d at 0x%lx\n", pcdp->rev, efi.hcdp);
- 
- 	if (strstr(cmdline, "console=hcdp")) {
-@@ -131,6 +131,6 @@ efi_setup_pcdp_console(char *cmdline)
- 	}
- 
- out:
--	iounmap(pcdp);
-+	early_iounmap(pcdp, 4096);
- 	return rc;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0043-lib-vsprintf.c-kptr_restrict-fix-pK-error-in-SysRq-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0043-lib-vsprintf.c-kptr_restrict-fix-pK-error-in-SysRq-s.patch
deleted file mode 100644
index 791a80e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0043-lib-vsprintf.c-kptr_restrict-fix-pK-error-in-SysRq-s.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From a0a91da6c89df972be571c3b3cc7288dcab8b501 Mon Sep 17 00:00:00 2001
-From: Dan Rosenberg <drosenberg at vsecurity.com>
-Date: Mon, 30 Jul 2012 14:40:26 -0700
-Subject: [PATCH 43/70] lib/vsprintf.c: kptr_restrict: fix pK-error in SysRq
- show-all-timers(Q)
-
-commit 3715c5309f6d175c3053672b73fd4f73be16fd07 upstream.
-
-When using ALT+SysRq+Q all the pointers are replaced with "pK-error" like
-this:
-
-	[23153.208033]   .base:               pK-error
-
-with echo h > /proc/sysrq-trigger it works:
-
-	[23107.776363]   .base:       ffff88023e60d540
-
-The intent behind this behavior was to return "pK-error" in cases where
-the %pK format specifier was used in interrupt context, because the
-CAP_SYSLOG check wouldn't be meaningful.  Clearly this should only apply
-when kptr_restrict is actually enabled though.
-
-Reported-by: Stevie Trujillo <stevie.trujillo at gmail.com>
-Signed-off-by: Dan Rosenberg <dan.j.rosenberg at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- lib/vsprintf.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/lib/vsprintf.c b/lib/vsprintf.c
-index 993599e..d74c317 100644
---- a/lib/vsprintf.c
-+++ b/lib/vsprintf.c
-@@ -886,7 +886,8 @@ char *pointer(const char *fmt, char *buf, char *end, void *ptr,
- 		 * %pK cannot be used in IRQ context because its test
- 		 * for CAP_SYSLOG would be meaningless.
- 		 */
--		if (in_irq() || in_serving_softirq() || in_nmi()) {
-+		if (kptr_restrict && (in_irq() || in_serving_softirq() ||
-+				      in_nmi())) {
- 			if (spec.field_width == -1)
- 				spec.field_width = 2 * sizeof(void *);
- 			return string(buf, end, "pK-error", spec);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0044-nilfs2-fix-deadlock-issue-between-chcp-and-thaw-ioct.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0044-nilfs2-fix-deadlock-issue-between-chcp-and-thaw-ioct.patch
deleted file mode 100644
index 081eb4b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0044-nilfs2-fix-deadlock-issue-between-chcp-and-thaw-ioct.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From 9cdd3090a527c3174e3db476d1e86db6e9b2333e Mon Sep 17 00:00:00 2001
-From: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Date: Mon, 30 Jul 2012 14:42:07 -0700
-Subject: [PATCH 44/70] nilfs2: fix deadlock issue between chcp and thaw
- ioctls
-
-commit 572d8b3945a31bee7c40d21556803e4807fd9141 upstream.
-
-An fs-thaw ioctl causes deadlock with a chcp or mkcp -s command:
-
- chcp            D ffff88013870f3d0     0  1325   1324 0x00000004
- ...
- Call Trace:
-   nilfs_transaction_begin+0x11c/0x1a0 [nilfs2]
-   wake_up_bit+0x20/0x20
-   copy_from_user+0x18/0x30 [nilfs2]
-   nilfs_ioctl_change_cpmode+0x7d/0xcf [nilfs2]
-   nilfs_ioctl+0x252/0x61a [nilfs2]
-   do_page_fault+0x311/0x34c
-   get_unmapped_area+0x132/0x14e
-   do_vfs_ioctl+0x44b/0x490
-   __set_task_blocked+0x5a/0x61
-   vm_mmap_pgoff+0x76/0x87
-   __set_current_blocked+0x30/0x4a
-   sys_ioctl+0x4b/0x6f
-   system_call_fastpath+0x16/0x1b
- thaw            D ffff88013870d890     0  1352   1351 0x00000004
- ...
- Call Trace:
-   rwsem_down_failed_common+0xdb/0x10f
-   call_rwsem_down_write_failed+0x13/0x20
-   down_write+0x25/0x27
-   thaw_super+0x13/0x9e
-   do_vfs_ioctl+0x1f5/0x490
-   vm_mmap_pgoff+0x76/0x87
-   sys_ioctl+0x4b/0x6f
-   filp_close+0x64/0x6c
-   system_call_fastpath+0x16/0x1b
-
-where the thaw ioctl deadlocked at thaw_super() when called while chcp was
-waiting at nilfs_transaction_begin() called from
-nilfs_ioctl_change_cpmode().  This deadlock is 100% reproducible.
-
-This is because nilfs_ioctl_change_cpmode() first locks sb->s_umount in
-read mode and then waits for unfreezing in nilfs_transaction_begin(),
-whereas thaw_super() locks sb->s_umount in write mode.  The locking of
-sb->s_umount here was intended to make snapshot mounts and the downgrade
-of snapshots to checkpoints exclusive.
-
-This fixes the deadlock issue by replacing the sb->s_umount usage in
-nilfs_ioctl_change_cpmode() with a dedicated mutex which protects snapshot
-mounts.
-
-Signed-off-by: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Cc: Fernando Luis Vazquez Cao <fernando at oss.ntt.co.jp>
-Tested-by: Ryusuke Konishi <konishi.ryusuke at lab.ntt.co.jp>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/nilfs2/ioctl.c     |    4 ++--
- fs/nilfs2/super.c     |    3 +++
- fs/nilfs2/the_nilfs.c |    1 +
- fs/nilfs2/the_nilfs.h |    2 ++
- 4 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c
-index ac258be..c598cfb 100644
---- a/fs/nilfs2/ioctl.c
-+++ b/fs/nilfs2/ioctl.c
-@@ -182,7 +182,7 @@ static int nilfs_ioctl_change_cpmode(struct inode *inode, struct file *filp,
- 	if (copy_from_user(&cpmode, argp, sizeof(cpmode)))
- 		goto out;
- 
--	down_read(&inode->i_sb->s_umount);
-+	mutex_lock(&nilfs->ns_snapshot_mount_mutex);
- 
- 	nilfs_transaction_begin(inode->i_sb, &ti, 0);
- 	ret = nilfs_cpfile_change_cpmode(
-@@ -192,7 +192,7 @@ static int nilfs_ioctl_change_cpmode(struct inode *inode, struct file *filp,
- 	else
- 		nilfs_transaction_commit(inode->i_sb); /* never fails */
- 
--	up_read(&inode->i_sb->s_umount);
-+	mutex_unlock(&nilfs->ns_snapshot_mount_mutex);
- out:
- 	mnt_drop_write(filp->f_path.mnt);
- 	return ret;
-diff --git a/fs/nilfs2/super.c b/fs/nilfs2/super.c
-index 8351c44..97bfbdd 100644
---- a/fs/nilfs2/super.c
-+++ b/fs/nilfs2/super.c
-@@ -951,6 +951,8 @@ static int nilfs_attach_snapshot(struct super_block *s, __u64 cno,
- 	struct nilfs_root *root;
- 	int ret;
- 
-+	mutex_lock(&nilfs->ns_snapshot_mount_mutex);
-+
- 	down_read(&nilfs->ns_segctor_sem);
- 	ret = nilfs_cpfile_is_snapshot(nilfs->ns_cpfile, cno);
- 	up_read(&nilfs->ns_segctor_sem);
-@@ -975,6 +977,7 @@ static int nilfs_attach_snapshot(struct super_block *s, __u64 cno,
- 	ret = nilfs_get_root_dentry(s, root, root_dentry);
- 	nilfs_put_root(root);
-  out:
-+	mutex_unlock(&nilfs->ns_snapshot_mount_mutex);
- 	return ret;
- }
- 
-diff --git a/fs/nilfs2/the_nilfs.c b/fs/nilfs2/the_nilfs.c
-index 35a8970..1c98f53 100644
---- a/fs/nilfs2/the_nilfs.c
-+++ b/fs/nilfs2/the_nilfs.c
-@@ -76,6 +76,7 @@ struct the_nilfs *alloc_nilfs(struct block_device *bdev)
- 	nilfs->ns_bdev = bdev;
- 	atomic_set(&nilfs->ns_ndirtyblks, 0);
- 	init_rwsem(&nilfs->ns_sem);
-+	mutex_init(&nilfs->ns_snapshot_mount_mutex);
- 	INIT_LIST_HEAD(&nilfs->ns_dirty_files);
- 	INIT_LIST_HEAD(&nilfs->ns_gc_inodes);
- 	spin_lock_init(&nilfs->ns_inode_lock);
-diff --git a/fs/nilfs2/the_nilfs.h b/fs/nilfs2/the_nilfs.h
-index 9992b11..de7435f 100644
---- a/fs/nilfs2/the_nilfs.h
-+++ b/fs/nilfs2/the_nilfs.h
-@@ -47,6 +47,7 @@ enum {
-  * @ns_flags: flags
-  * @ns_bdev: block device
-  * @ns_sem: semaphore for shared states
-+ * @ns_snapshot_mount_mutex: mutex to protect snapshot mounts
-  * @ns_sbh: buffer heads of on-disk super blocks
-  * @ns_sbp: pointers to super block data
-  * @ns_sbwtime: previous write time of super block
-@@ -99,6 +100,7 @@ struct the_nilfs {
- 
- 	struct block_device    *ns_bdev;
- 	struct rw_semaphore	ns_sem;
-+	struct mutex		ns_snapshot_mount_mutex;
- 
- 	/*
- 	 * used for
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0045-SUNRPC-return-negative-value-in-case-rpcbind-client-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0045-SUNRPC-return-negative-value-in-case-rpcbind-client-.patch
deleted file mode 100644
index 78d6dc3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0045-SUNRPC-return-negative-value-in-case-rpcbind-client-.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 2bf260f82454f5f3809e8bb31cf158abdc7259a3 Mon Sep 17 00:00:00 2001
-From: Stanislav Kinsbursky <skinsbursky at parallels.com>
-Date: Fri, 20 Jul 2012 15:57:48 +0400
-Subject: [PATCH 45/70] SUNRPC: return negative value in case rpcbind client
- creation error
-
-commit caea33da898e4e14f0ba58173e3b7689981d2c0b upstream.
-
-Without this patch kernel will panic on LockD start, because lockd_up() checks
-lockd_up_net() result for negative value.
-From my pow it's better to return negative value from rpcbind routines instead
-of replacing all such checks like in lockd_up().
-
-Signed-off-by: Stanislav Kinsbursky <skinsbursky at parallels.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sunrpc/rpcb_clnt.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c
-index 8761bf8..337c68b 100644
---- a/net/sunrpc/rpcb_clnt.c
-+++ b/net/sunrpc/rpcb_clnt.c
-@@ -246,7 +246,7 @@ static int rpcb_create_local_unix(void)
- 	if (IS_ERR(clnt)) {
- 		dprintk("RPC:       failed to create AF_LOCAL rpcbind "
- 				"client (errno %ld).\n", PTR_ERR(clnt));
--		result = -PTR_ERR(clnt);
-+		result = PTR_ERR(clnt);
- 		goto out;
- 	}
- 
-@@ -293,7 +293,7 @@ static int rpcb_create_local_net(void)
- 	if (IS_ERR(clnt)) {
- 		dprintk("RPC:       failed to create local rpcbind "
- 				"client (errno %ld).\n", PTR_ERR(clnt));
--		result = -PTR_ERR(clnt);
-+		result = PTR_ERR(clnt);
- 		goto out;
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0046-ARM-7467-1-mutex-use-generic-xchg-based-implementati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0046-ARM-7467-1-mutex-use-generic-xchg-based-implementati.patch
deleted file mode 100644
index 0808024..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0046-ARM-7467-1-mutex-use-generic-xchg-based-implementati.patch
+++ /dev/null
@@ -1,165 +0,0 @@
-From 28c5c473fd1dffcd9dacfc1b4ea643181398f149 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 13 Jul 2012 19:15:40 +0100
-Subject: [PATCH 46/70] ARM: 7467/1: mutex: use generic xchg-based
- implementation for ARMv6+
-
-commit a76d7bd96d65fa5119adba97e1b58d95f2e78829 upstream.
-
-The open-coded mutex implementation for ARMv6+ cores suffers from a
-severe lack of barriers, so in the uncontended case we don't actually
-protect any accesses performed during the critical section.
-
-Furthermore, the code is largely a duplication of the ARMv6+ atomic_dec
-code but optimised to remove a branch instruction, as the mutex fastpath
-was previously inlined. Now that this is executed out-of-line, we can
-reuse the atomic access code for the locking (in fact, we use the xchg
-code as this produces shorter critical sections).
-
-This patch uses the generic xchg based implementation for mutexes on
-ARMv6+, which introduces barriers to the lock/unlock operations and also
-has the benefit of removing a fair amount of inline assembly code.
-
-Acked-by: Arnd Bergmann <arnd at arndb.de>
-Acked-by: Nicolas Pitre <nico at linaro.org>
-Reported-by: Shan Kang <kangshan0910 at gmail.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/include/asm/mutex.h |  119 ++----------------------------------------
- 1 files changed, 4 insertions(+), 115 deletions(-)
-
-diff --git a/arch/arm/include/asm/mutex.h b/arch/arm/include/asm/mutex.h
-index 93226cf..b1479fd 100644
---- a/arch/arm/include/asm/mutex.h
-+++ b/arch/arm/include/asm/mutex.h
-@@ -7,121 +7,10 @@
-  */
- #ifndef _ASM_MUTEX_H
- #define _ASM_MUTEX_H
--
--#if __LINUX_ARM_ARCH__ < 6
--/* On pre-ARMv6 hardware the swp based implementation is the most efficient. */
--# include <asm-generic/mutex-xchg.h>
--#else
--
- /*
-- * Attempting to lock a mutex on ARMv6+ can be done with a bastardized
-- * atomic decrement (it is not a reliable atomic decrement but it satisfies
-- * the defined semantics for our purpose, while being smaller and faster
-- * than a real atomic decrement or atomic swap.  The idea is to attempt
-- * decrementing the lock value only once.  If once decremented it isn't zero,
-- * or if its store-back fails due to a dispute on the exclusive store, we
-- * simply bail out immediately through the slow path where the lock will be
-- * reattempted until it succeeds.
-+ * On pre-ARMv6 hardware this results in a swp-based implementation,
-+ * which is the most efficient. For ARMv6+, we emit a pair of exclusive
-+ * accesses instead.
-  */
--static inline void
--__mutex_fastpath_lock(atomic_t *count, void (*fail_fn)(atomic_t *))
--{
--	int __ex_flag, __res;
--
--	__asm__ (
--
--		"ldrex	%0, [%2]	\n\t"
--		"sub	%0, %0, #1	\n\t"
--		"strex	%1, %0, [%2]	"
--
--		: "=&r" (__res), "=&r" (__ex_flag)
--		: "r" (&(count)->counter)
--		: "cc","memory" );
--
--	__res |= __ex_flag;
--	if (unlikely(__res != 0))
--		fail_fn(count);
--}
--
--static inline int
--__mutex_fastpath_lock_retval(atomic_t *count, int (*fail_fn)(atomic_t *))
--{
--	int __ex_flag, __res;
--
--	__asm__ (
--
--		"ldrex	%0, [%2]	\n\t"
--		"sub	%0, %0, #1	\n\t"
--		"strex	%1, %0, [%2]	"
--
--		: "=&r" (__res), "=&r" (__ex_flag)
--		: "r" (&(count)->counter)
--		: "cc","memory" );
--
--	__res |= __ex_flag;
--	if (unlikely(__res != 0))
--		__res = fail_fn(count);
--	return __res;
--}
--
--/*
-- * Same trick is used for the unlock fast path. However the original value,
-- * rather than the result, is used to test for success in order to have
-- * better generated assembly.
-- */
--static inline void
--__mutex_fastpath_unlock(atomic_t *count, void (*fail_fn)(atomic_t *))
--{
--	int __ex_flag, __res, __orig;
--
--	__asm__ (
--
--		"ldrex	%0, [%3]	\n\t"
--		"add	%1, %0, #1	\n\t"
--		"strex	%2, %1, [%3]	"
--
--		: "=&r" (__orig), "=&r" (__res), "=&r" (__ex_flag)
--		: "r" (&(count)->counter)
--		: "cc","memory" );
--
--	__orig |= __ex_flag;
--	if (unlikely(__orig != 0))
--		fail_fn(count);
--}
--
--/*
-- * If the unlock was done on a contended lock, or if the unlock simply fails
-- * then the mutex remains locked.
-- */
--#define __mutex_slowpath_needs_to_unlock()	1
--
--/*
-- * For __mutex_fastpath_trylock we use another construct which could be
-- * described as a "single value cmpxchg".
-- *
-- * This provides the needed trylock semantics like cmpxchg would, but it is
-- * lighter and less generic than a true cmpxchg implementation.
-- */
--static inline int
--__mutex_fastpath_trylock(atomic_t *count, int (*fail_fn)(atomic_t *))
--{
--	int __ex_flag, __res, __orig;
--
--	__asm__ (
--
--		"1: ldrex	%0, [%3]	\n\t"
--		"subs		%1, %0, #1	\n\t"
--		"strexeq	%2, %1, [%3]	\n\t"
--		"movlt		%0, #0		\n\t"
--		"cmpeq		%2, #0		\n\t"
--		"bgt		1b		"
--
--		: "=&r" (__orig), "=&r" (__res), "=&r" (__ex_flag)
--		: "r" (&count->counter)
--		: "cc", "memory" );
--
--	return __orig;
--}
--
--#endif
-+#include <asm-generic/mutex-xchg.h>
- #endif
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0047-ARM-7476-1-vfp-only-clear-vfp-state-for-current-cpu-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0047-ARM-7476-1-vfp-only-clear-vfp-state-for-current-cpu-.patch
deleted file mode 100644
index d7aaf22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0047-ARM-7476-1-vfp-only-clear-vfp-state-for-current-cpu-.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 57a8207d3a9a4df2ed7a736afa04cdff4b1eae03 Mon Sep 17 00:00:00 2001
-From: Colin Cross <ccross at android.com>
-Date: Fri, 20 Jul 2012 02:03:43 +0100
-Subject: [PATCH 47/70] ARM: 7476/1: vfp: only clear vfp state for current cpu
- in vfp_pm_suspend
-
-commit a84b895a2348f0dbff31b71ddf954f70a6cde368 upstream.
-
-vfp_pm_suspend runs on each cpu, only clear the hardware state
-pointer for the current cpu.  Prevents a possible crash if one
-cpu clears the hw state pointer when another cpu has already
-checked if it is valid.
-
-Signed-off-by: Colin Cross <ccross at android.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/vfp/vfpmodule.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
-index 8ea07e4..61e11ce 100644
---- a/arch/arm/vfp/vfpmodule.c
-+++ b/arch/arm/vfp/vfpmodule.c
-@@ -456,7 +456,7 @@ static int vfp_pm_suspend(void)
- 	}
- 
- 	/* clear any information we had about last context state */
--	memset(vfp_current_hw_state, 0, sizeof(vfp_current_hw_state));
-+	vfp_current_hw_state[ti->cpu] = NULL;
- 
- 	return 0;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0048-ARM-7477-1-vfp-Always-save-VFP-state-in-vfp_pm_suspe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0048-ARM-7477-1-vfp-Always-save-VFP-state-in-vfp_pm_suspe.patch
deleted file mode 100644
index aa5978e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0048-ARM-7477-1-vfp-Always-save-VFP-state-in-vfp_pm_suspe.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 670bc10621ecb0750e22b72dc873b4ade756fd73 Mon Sep 17 00:00:00 2001
-From: Colin Cross <ccross at android.com>
-Date: Fri, 20 Jul 2012 02:03:42 +0100
-Subject: [PATCH 48/70] ARM: 7477/1: vfp: Always save VFP state in
- vfp_pm_suspend on UP
-
-commit 24b35521b8ddf088531258f06f681bb7b227bf47 upstream.
-
-vfp_pm_suspend should save the VFP state in suspend after
-any lazy context switch.  If it only saves when the VFP is enabled,
-the state can get lost when, on a UP system:
-  Thread 1 uses the VFP
-  Context switch occurs to thread 2, VFP is disabled but the
-     VFP context is not saved
-  Thread 2 initiates suspend
-  vfp_pm_suspend is called with the VFP disabled, and the unsaved
-     VFP context of Thread 1 in the registers
-
-Modify vfp_pm_suspend to save the VFP context whenever
-vfp_current_hw_state is not NULL.
-
-Includes a fix from Ido Yariv <ido at wizery.com>, who pointed out that on
-SMP systems, the state pointer can be pointing to a freed task struct if
-a task exited on another cpu, fixed by using #ifndef CONFIG_SMP in the
-new if clause.
-
-Cc: Barry Song <bs14 at csr.com>
-Cc: Catalin Marinas <catalin.marinas at arm.com>
-Cc: Ido Yariv <ido at wizery.com>
-Cc: Daniel Drake <dsd at laptop.org>
-Cc: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Colin Cross <ccross at android.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/vfp/vfpmodule.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/vfp/vfpmodule.c b/arch/arm/vfp/vfpmodule.c
-index 61e11ce..ad83dad 100644
---- a/arch/arm/vfp/vfpmodule.c
-+++ b/arch/arm/vfp/vfpmodule.c
-@@ -453,6 +453,12 @@ static int vfp_pm_suspend(void)
- 
- 		/* disable, just in case */
- 		fmxr(FPEXC, fmrx(FPEXC) & ~FPEXC_EN);
-+	} else if (vfp_current_hw_state[ti->cpu]) {
-+#ifndef CONFIG_SMP
-+		fmxr(FPEXC, fpexc | FPEXC_EN);
-+		vfp_save_state(vfp_current_hw_state[ti->cpu], fpexc);
-+		fmxr(FPEXC, fpexc);
-+#endif
- 	}
- 
- 	/* clear any information we had about last context state */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0049-ARM-7478-1-errata-extend-workaround-for-erratum-7207.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0049-ARM-7478-1-errata-extend-workaround-for-erratum-7207.patch
deleted file mode 100644
index 0940ef0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0049-ARM-7478-1-errata-extend-workaround-for-erratum-7207.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 98922b7089b3ef806a0c3bae3c7e10e5618e4859 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 20 Jul 2012 18:24:55 +0100
-Subject: [PATCH 49/70] ARM: 7478/1: errata: extend workaround for erratum
- #720789
-
-commit 5a783cbc48367cfc7b65afc75430953dfe60098f upstream.
-
-Commit cdf357f1 ("ARM: 6299/1: errata: TLBIASIDIS and TLBIMVAIS
-operations can broadcast a faulty ASID") replaced by-ASID TLB flushing
-operations with all-ASID variants to workaround A9 erratum #720789.
-
-This patch extends the workaround to include the tlb_range operations,
-which were overlooked by the original patch.
-
-Tested-by: Steve Capper <steve.capper at arm.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mm/tlb-v7.S |   12 ++++++++++++
- 1 files changed, 12 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mm/tlb-v7.S b/arch/arm/mm/tlb-v7.S
-index 845f461..c202113 100644
---- a/arch/arm/mm/tlb-v7.S
-+++ b/arch/arm/mm/tlb-v7.S
-@@ -38,11 +38,19 @@ ENTRY(v7wbi_flush_user_tlb_range)
- 	dsb
- 	mov	r0, r0, lsr #PAGE_SHIFT		@ align address
- 	mov	r1, r1, lsr #PAGE_SHIFT
-+#ifdef CONFIG_ARM_ERRATA_720789
-+	mov	r3, #0
-+#else
- 	asid	r3, r3				@ mask ASID
-+#endif
- 	orr	r0, r3, r0, lsl #PAGE_SHIFT	@ Create initial MVA
- 	mov	r1, r1, lsl #PAGE_SHIFT
- 1:
-+#ifdef CONFIG_ARM_ERRATA_720789
-+	ALT_SMP(mcr	p15, 0, r0, c8, c3, 3)	@ TLB invalidate U MVA all ASID (shareable)
-+#else
- 	ALT_SMP(mcr	p15, 0, r0, c8, c3, 1)	@ TLB invalidate U MVA (shareable)
-+#endif
- 	ALT_UP(mcr	p15, 0, r0, c8, c7, 1)	@ TLB invalidate U MVA
- 
- 	add	r0, r0, #PAGE_SZ
-@@ -67,7 +75,11 @@ ENTRY(v7wbi_flush_kern_tlb_range)
- 	mov	r0, r0, lsl #PAGE_SHIFT
- 	mov	r1, r1, lsl #PAGE_SHIFT
- 1:
-+#ifdef CONFIG_ARM_ERRATA_720789
-+	ALT_SMP(mcr	p15, 0, r0, c8, c3, 3)	@ TLB invalidate U MVA all ASID (shareable)
-+#else
- 	ALT_SMP(mcr	p15, 0, r0, c8, c3, 1)	@ TLB invalidate U MVA (shareable)
-+#endif
- 	ALT_UP(mcr	p15, 0, r0, c8, c7, 1)	@ TLB invalidate U MVA
- 	add	r0, r0, #PAGE_SZ
- 	cmp	r0, r1
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0050-ARM-Fix-undefined-instruction-exception-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0050-ARM-Fix-undefined-instruction-exception-handling.patch
deleted file mode 100644
index 0b98409..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0050-ARM-Fix-undefined-instruction-exception-handling.patch
+++ /dev/null
@@ -1,335 +0,0 @@
-From 6b090d4fbcfaaa71f311f47019e622a794b0fca4 Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel at arm.linux.org.uk>
-Date: Mon, 30 Jul 2012 19:42:10 +0100
-Subject: [PATCH 50/70] ARM: Fix undefined instruction exception handling
-
-commit 15ac49b65024f55c4371a53214879a9c77c4fbf9 upstream.
-
-While trying to get a v3.5 kernel booted on the cubox, I noticed that
-VFP does not work correctly with VFP bounce handling.  This is because
-of the confusion over 16-bit vs 32-bit instructions, and where PC is
-supposed to point to.
-
-The rule is that FP handlers are entered with regs->ARM_pc pointing at
-the _next_ instruction to be executed.  However, if the exception is
-not handled, regs->ARM_pc points at the faulting instruction.
-
-This is easy for ARM mode, because we know that the next instruction and
-previous instructions are separated by four bytes.  This is not true of
-Thumb2 though.
-
-Since all FP instructions are 32-bit in Thumb2, it makes things easy.
-We just need to select the appropriate adjustment.  Do this by moving
-the adjustment out of do_undefinstr() into the assembly code, as only
-the assembly code knows whether it's dealing with a 32-bit or 16-bit
-instruction.
-
-Acked-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/kernel/entry-armv.S |  111 +++++++++++++++++++++++++++---------------
- arch/arm/kernel/traps.c      |    8 ---
- arch/arm/vfp/entry.S         |   16 +++---
- arch/arm/vfp/vfphw.S         |   19 ++++---
- 4 files changed, 92 insertions(+), 62 deletions(-)
-
-diff --git a/arch/arm/kernel/entry-armv.S b/arch/arm/kernel/entry-armv.S
-index 3a456c6..bc084a1 100644
---- a/arch/arm/kernel/entry-armv.S
-+++ b/arch/arm/kernel/entry-armv.S
-@@ -241,6 +241,19 @@ svc_preempt:
- 	b	1b
- #endif
- 
-+__und_fault:
-+	@ Correct the PC such that it is pointing at the instruction
-+	@ which caused the fault.  If the faulting instruction was ARM
-+	@ the PC will be pointing at the next instruction, and have to
-+	@ subtract 4.  Otherwise, it is Thumb, and the PC will be
-+	@ pointing at the second half of the Thumb instruction.  We
-+	@ have to subtract 2.
-+	ldr	r2, [r0, #S_PC]
-+	sub	r2, r2, r1
-+	str	r2, [r0, #S_PC]
-+	b	do_undefinstr
-+ENDPROC(__und_fault)
-+
- 	.align	5
- __und_svc:
- #ifdef CONFIG_KPROBES
-@@ -258,25 +271,32 @@ __und_svc:
- 	@
- 	@  r0 - instruction
- 	@
--#ifndef	CONFIG_THUMB2_KERNEL
-+#ifndef CONFIG_THUMB2_KERNEL
- 	ldr	r0, [r4, #-4]
- #else
-+	mov	r1, #2
- 	ldrh	r0, [r4, #-2]			@ Thumb instruction at LR - 2
- 	cmp	r0, #0xe800			@ 32-bit instruction if xx >= 0
--	ldrhhs	r9, [r4]			@ bottom 16 bits
--	orrhs	r0, r9, r0, lsl #16
-+	blo	__und_svc_fault
-+	ldrh	r9, [r4]			@ bottom 16 bits
-+	add	r4, r4, #2
-+	str	r4, [sp, #S_PC]
-+	orr	r0, r9, r0, lsl #16
- #endif
--	adr	r9, BSYM(1f)
-+	adr	r9, BSYM(__und_svc_finish)
- 	mov	r2, r4
- 	bl	call_fpe
- 
-+	mov	r1, #4				@ PC correction to apply
-+__und_svc_fault:
- 	mov	r0, sp				@ struct pt_regs *regs
--	bl	do_undefinstr
-+	bl	__und_fault
- 
- 	@
- 	@ IRQs off again before pulling preserved data off the stack
- 	@
--1:	disable_irq_notrace
-+__und_svc_finish:
-+	disable_irq_notrace
- 
- 	@
- 	@ restore SPSR and restart the instruction
-@@ -420,25 +440,33 @@ __und_usr:
- 	mov	r2, r4
- 	mov	r3, r5
- 
-+	@ r2 = regs->ARM_pc, which is either 2 or 4 bytes ahead of the
-+	@      faulting instruction depending on Thumb mode.
-+	@ r3 = regs->ARM_cpsr
- 	@
--	@ fall through to the emulation code, which returns using r9 if
--	@ it has emulated the instruction, or the more conventional lr
--	@ if we are to treat this as a real undefined instruction
--	@
--	@  r0 - instruction
-+	@ The emulation code returns using r9 if it has emulated the
-+	@ instruction, or the more conventional lr if we are to treat
-+	@ this as a real undefined instruction
- 	@
- 	adr	r9, BSYM(ret_from_exception)
--	adr	lr, BSYM(__und_usr_unknown)
-+
- 	tst	r3, #PSR_T_BIT			@ Thumb mode?
--	itet	eq				@ explicit IT needed for the 1f label
--	subeq	r4, r2, #4			@ ARM instr at LR - 4
--	subne	r4, r2, #2			@ Thumb instr at LR - 2
--1:	ldreqt	r0, [r4]
-+	bne	__und_usr_thumb
-+	sub	r4, r2, #4			@ ARM instr at LR - 4
-+1:	ldrt	r0, [r4]
- #ifdef CONFIG_CPU_ENDIAN_BE8
--	reveq	r0, r0				@ little endian instruction
-+	rev	r0, r0				@ little endian instruction
- #endif
--	beq	call_fpe
-+	@ r0 = 32-bit ARM instruction which caused the exception
-+	@ r2 = PC value for the following instruction (:= regs->ARM_pc)
-+	@ r4 = PC value for the faulting instruction
-+	@ lr = 32-bit undefined instruction function
-+	adr	lr, BSYM(__und_usr_fault_32)
-+	b	call_fpe
-+
-+__und_usr_thumb:
- 	@ Thumb instruction
-+	sub	r4, r2, #2			@ First half of thumb instr at LR - 2
- #if CONFIG_ARM_THUMB && __LINUX_ARM_ARCH__ >= 6 && CONFIG_CPU_V7
- /*
-  * Thumb-2 instruction handling.  Note that because pre-v6 and >= v6 platforms
-@@ -452,7 +480,7 @@ __und_usr:
- 	ldr	r5, .LCcpu_architecture
- 	ldr	r5, [r5]
- 	cmp	r5, #CPU_ARCH_ARMv7
--	blo	__und_usr_unknown
-+	blo	__und_usr_fault_16		@ 16bit undefined instruction
- /*
-  * The following code won't get run unless the running CPU really is v7, so
-  * coding round the lack of ldrht on older arches is pointless.  Temporarily
-@@ -460,15 +488,18 @@ __und_usr:
-  */
- 	.arch	armv6t2
- #endif
--2:
-- ARM(	ldrht	r5, [r4], #2	)
-- THUMB(	ldrht	r5, [r4]	)
-- THUMB(	add	r4, r4, #2	)
-+2:	ldrht	r5, [r4]
- 	cmp	r5, #0xe800			@ 32bit instruction if xx != 0
--	blo	__und_usr_unknown
--3:	ldrht	r0, [r4]
-+	blo	__und_usr_fault_16		@ 16bit undefined instruction
-+3:	ldrht	r0, [r2]
- 	add	r2, r2, #2			@ r2 is PC + 2, make it PC + 4
-+	str	r2, [sp, #S_PC]			@ it's a 2x16bit instr, update
- 	orr	r0, r0, r5, lsl #16
-+	adr	lr, BSYM(__und_usr_fault_32)
-+	@ r0 = the two 16-bit Thumb instructions which caused the exception
-+	@ r2 = PC value for the following Thumb instruction (:= regs->ARM_pc)
-+	@ r4 = PC value for the first 16-bit Thumb instruction
-+	@ lr = 32bit undefined instruction function
- 
- #if __LINUX_ARM_ARCH__ < 7
- /* If the target arch was overridden, change it back: */
-@@ -479,17 +510,13 @@ __und_usr:
- #endif
- #endif /* __LINUX_ARM_ARCH__ < 7 */
- #else /* !(CONFIG_ARM_THUMB && __LINUX_ARM_ARCH__ >= 6 && CONFIG_CPU_V7) */
--	b	__und_usr_unknown
-+	b	__und_usr_fault_16
- #endif
-- UNWIND(.fnend		)
-+ UNWIND(.fnend)
- ENDPROC(__und_usr)
- 
--	@
--	@ fallthrough to call_fpe
--	@
--
- /*
-- * The out of line fixup for the ldrt above.
-+ * The out of line fixup for the ldrt instructions above.
-  */
- 	.pushsection .fixup, "ax"
- 4:	mov	pc, r9
-@@ -520,11 +547,12 @@ ENDPROC(__und_usr)
-  * NEON handler code.
-  *
-  * Emulators may wish to make use of the following registers:
-- *  r0  = instruction opcode.
-- *  r2  = PC+4
-+ *  r0  = instruction opcode (32-bit ARM or two 16-bit Thumb)
-+ *  r2  = PC value to resume execution after successful emulation
-  *  r9  = normal "successful" return address
-- *  r10 = this threads thread_info structure.
-+ *  r10 = this threads thread_info structure
-  *  lr  = unrecognised instruction return address
-+ * IRQs disabled, FIQs enabled.
-  */
- 	@
- 	@ Fall-through from Thumb-2 __und_usr
-@@ -659,12 +687,17 @@ ENTRY(no_fp)
- 	mov	pc, lr
- ENDPROC(no_fp)
- 
--__und_usr_unknown:
--	enable_irq
-+__und_usr_fault_32:
-+	mov	r1, #4
-+	b	1f
-+__und_usr_fault_16:
-+	mov	r1, #2
-+1:	enable_irq
- 	mov	r0, sp
- 	adr	lr, BSYM(ret_from_exception)
--	b	do_undefinstr
--ENDPROC(__und_usr_unknown)
-+	b	__und_fault
-+ENDPROC(__und_usr_fault_32)
-+ENDPROC(__und_usr_fault_16)
- 
- 	.align	5
- __pabt_usr:
-diff --git a/arch/arm/kernel/traps.c b/arch/arm/kernel/traps.c
-index 160cb16..8380bd1 100644
---- a/arch/arm/kernel/traps.c
-+++ b/arch/arm/kernel/traps.c
-@@ -362,18 +362,10 @@ static int call_undef_hook(struct pt_regs *regs, unsigned int instr)
- 
- asmlinkage void __exception do_undefinstr(struct pt_regs *regs)
- {
--	unsigned int correction = thumb_mode(regs) ? 2 : 4;
- 	unsigned int instr;
- 	siginfo_t info;
- 	void __user *pc;
- 
--	/*
--	 * According to the ARM ARM, PC is 2 or 4 bytes ahead,
--	 * depending whether we're in Thumb mode or not.
--	 * Correct this offset.
--	 */
--	regs->ARM_pc -= correction;
--
- 	pc = (void __user *)instruction_pointer(regs);
- 
- 	if (processor_mode(regs) == SVC_MODE) {
-diff --git a/arch/arm/vfp/entry.S b/arch/arm/vfp/entry.S
-index 4fa9903..cc926c9 100644
---- a/arch/arm/vfp/entry.S
-+++ b/arch/arm/vfp/entry.S
-@@ -7,18 +7,20 @@
-  * This program is free software; you can redistribute it and/or modify
-  * it under the terms of the GNU General Public License version 2 as
-  * published by the Free Software Foundation.
-- *
-- * Basic entry code, called from the kernel's undefined instruction trap.
-- *  r0  = faulted instruction
-- *  r5  = faulted PC+4
-- *  r9  = successful return
-- *  r10 = thread_info structure
-- *  lr  = failure return
-  */
- #include <asm/thread_info.h>
- #include <asm/vfpmacros.h>
- #include "../kernel/entry-header.S"
- 
-+@ VFP entry point.
-+@
-+@  r0  = instruction opcode (32-bit ARM or two 16-bit Thumb)
-+@  r2  = PC value to resume execution after successful emulation
-+@  r9  = normal "successful" return address
-+@  r10 = this threads thread_info structure
-+@  lr  = unrecognised instruction return address
-+@  IRQs disabled.
-+@
- ENTRY(do_vfp)
- #ifdef CONFIG_PREEMPT
- 	ldr	r4, [r10, #TI_PREEMPT]	@ get preempt count
-diff --git a/arch/arm/vfp/vfphw.S b/arch/arm/vfp/vfphw.S
-index 2d30c7f..3a0efaa 100644
---- a/arch/arm/vfp/vfphw.S
-+++ b/arch/arm/vfp/vfphw.S
-@@ -61,13 +61,13 @@
- 
- @ VFP hardware support entry point.
- @
--@  r0  = faulted instruction
--@  r2  = faulted PC+4
--@  r9  = successful return
-+@  r0  = instruction opcode (32-bit ARM or two 16-bit Thumb)
-+@  r2  = PC value to resume execution after successful emulation
-+@  r9  = normal "successful" return address
- @  r10 = vfp_state union
- @  r11 = CPU number
--@  lr  = failure return
--
-+@  lr  = unrecognised instruction return address
-+@  IRQs enabled.
- ENTRY(vfp_support_entry)
- 	DBGSTR3	"instr %08x pc %08x state %p", r0, r2, r10
- 
-@@ -161,9 +161,12 @@ vfp_hw_state_valid:
- 					@ exception before retrying branch
- 					@ out before setting an FPEXC that
- 					@ stops us reading stuff
--	VFPFMXR	FPEXC, r1		@ restore FPEXC last
--	sub	r2, r2, #4
--	str	r2, [sp, #S_PC]		@ retry the instruction
-+	VFPFMXR	FPEXC, r1		@ Restore FPEXC last
-+	sub	r2, r2, #4		@ Retry current instruction - if Thumb
-+	str	r2, [sp, #S_PC]		@ mode it's two 16-bit instructions,
-+					@ else it's one 32-bit instruction, so
-+					@ always subtract 4 from the following
-+					@ instruction address.
- #ifdef CONFIG_PREEMPT
- 	get_thread_info	r10
- 	ldr	r4, [r10, #TI_PREEMPT]	@ get preempt count
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0051-USB-echi-dbgp-increase-the-controller-wait-time-to-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0051-USB-echi-dbgp-increase-the-controller-wait-time-to-c.patch
deleted file mode 100644
index 39c9f4c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0051-USB-echi-dbgp-increase-the-controller-wait-time-to-c.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d8b93bb6a3ec7a8092ad0ea2a3fa78746aba6471 Mon Sep 17 00:00:00 2001
-From: Colin Ian King <colin.king at canonical.com>
-Date: Mon, 30 Jul 2012 16:06:42 +0100
-Subject: [PATCH 51/70] USB: echi-dbgp: increase the controller wait time to
- come out of halt.
-
-commit f96a4216e85050c0a9d41a41ecb0ae9d8e39b509 upstream.
-
-The default 10 microsecond delay for the controller to come out of
-halt in dbgp_ehci_startup is too short, so increase it to 1 millisecond.
-
-This is based on emperical testing on various USB debug ports on
-modern machines such as a Lenovo X220i and an Ivybridge development
-platform that needed to wait ~450-950 microseconds.
-
-Signed-off-by: Colin Ian King <colin.king at canonical.com>
-Signed-off-by: Jason Wessel <jason.wessel at windriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/usb/early/ehci-dbgp.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/early/ehci-dbgp.c b/drivers/usb/early/ehci-dbgp.c
-index 1fc8f12..347bb05 100644
---- a/drivers/usb/early/ehci-dbgp.c
-+++ b/drivers/usb/early/ehci-dbgp.c
-@@ -450,7 +450,7 @@ static int dbgp_ehci_startup(void)
- 	writel(FLAG_CF, &ehci_regs->configured_flag);
- 
- 	/* Wait until the controller is no longer halted */
--	loop = 10;
-+	loop = 1000;
- 	do {
- 		status = readl(&ehci_regs->status);
- 		if (!(status & STS_HALT))
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0052-ASoC-wm8962-Allow-VMID-time-to-fully-ramp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0052-ASoC-wm8962-Allow-VMID-time-to-fully-ramp.patch
deleted file mode 100644
index b9c1a03..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0052-ASoC-wm8962-Allow-VMID-time-to-fully-ramp.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 83c2f7e55e6b8ecd96bf3222c8176824c643d562 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Mon, 30 Jul 2012 18:24:19 +0100
-Subject: [PATCH 52/70] ASoC: wm8962: Allow VMID time to fully ramp
-
-commit 9d40e5582c9c4cfb6977ba2a0ca9c2ed82c56f21 upstream.
-
-Required for reliable power up from cold.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/soc/codecs/wm8962.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
-index 07dd7eb..e97df24 100644
---- a/sound/soc/codecs/wm8962.c
-+++ b/sound/soc/codecs/wm8962.c
-@@ -3105,6 +3105,9 @@ static int wm8962_set_bias_level(struct snd_soc_codec *codec,
- 		/* VMID 2*250k */
- 		snd_soc_update_bits(codec, WM8962_PWR_MGMT_1,
- 				    WM8962_VMID_SEL_MASK, 0x100);
-+
-+		if (codec->dapm.bias_level == SND_SOC_BIAS_OFF)
-+			msleep(100);
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0053-mm-page_alloc.c-remove-pageblock_default_order.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0053-mm-page_alloc.c-remove-pageblock_default_order.patch
deleted file mode 100644
index 0143cbd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0053-mm-page_alloc.c-remove-pageblock_default_order.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 9159bdebda7f6210dfe791c22f4a1f6c04826b0d Mon Sep 17 00:00:00 2001
-From: Andrew Morton <akpm at linux-foundation.org>
-Date: Tue, 29 May 2012 15:06:31 -0700
-Subject: [PATCH 53/70] mm/page_alloc.c: remove pageblock_default_order()
-
-commit 955c1cd7401565671b064e499115344ec8067dfd upstream.
-
-This has always been broken: one version takes an unsigned int and the
-other version takes no arguments.  This bug was hidden because one
-version of set_pageblock_order() was a macro which doesn't evaluate its
-argument.
-
-Simplify it all and remove pageblock_default_order() altogether.
-
-Reported-by: rajman mekaco <rajman.mekaco at gmail.com>
-Cc: Mel Gorman <mel at csn.ul.ie>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Tejun Heo <tj at kernel.org>
-Cc: Minchan Kim <minchan.kim at gmail.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/page_alloc.c |   33 +++++++++++++++------------------
- 1 files changed, 15 insertions(+), 18 deletions(-)
-
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 065dbe8..63a4e1d 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -4281,25 +4281,24 @@ static inline void setup_usemap(struct pglist_data *pgdat,
- 
- #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
- 
--/* Return a sensible default order for the pageblock size. */
--static inline int pageblock_default_order(void)
--{
--	if (HPAGE_SHIFT > PAGE_SHIFT)
--		return HUGETLB_PAGE_ORDER;
--
--	return MAX_ORDER-1;
--}
--
- /* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */
--static inline void __init set_pageblock_order(unsigned int order)
-+static inline void __init set_pageblock_order(void)
- {
-+	unsigned int order;
-+
- 	/* Check that pageblock_nr_pages has not already been setup */
- 	if (pageblock_order)
- 		return;
- 
-+	if (HPAGE_SHIFT > PAGE_SHIFT)
-+		order = HUGETLB_PAGE_ORDER;
-+	else
-+		order = MAX_ORDER - 1;
-+
- 	/*
- 	 * Assume the largest contiguous order of interest is a huge page.
--	 * This value may be variable depending on boot parameters on IA64
-+	 * This value may be variable depending on boot parameters on IA64 and
-+	 * powerpc.
- 	 */
- 	pageblock_order = order;
- }
-@@ -4307,15 +4306,13 @@ static inline void __init set_pageblock_order(unsigned int order)
- 
- /*
-  * When CONFIG_HUGETLB_PAGE_SIZE_VARIABLE is not set, set_pageblock_order()
-- * and pageblock_default_order() are unused as pageblock_order is set
-- * at compile-time. See include/linux/pageblock-flags.h for the values of
-- * pageblock_order based on the kernel config
-+ * is unused as pageblock_order is set at compile-time. See
-+ * include/linux/pageblock-flags.h for the values of pageblock_order based on
-+ * the kernel config
-  */
--static inline int pageblock_default_order(unsigned int order)
-+static inline void set_pageblock_order(void)
- {
--	return MAX_ORDER-1;
- }
--#define set_pageblock_order(x)	do {} while (0)
- 
- #endif /* CONFIG_HUGETLB_PAGE_SIZE_VARIABLE */
- 
-@@ -4403,7 +4400,7 @@ static void __paginginit free_area_init_core(struct pglist_data *pgdat,
- 		if (!size)
- 			continue;
- 
--		set_pageblock_order(pageblock_default_order());
-+		set_pageblock_order();
- 		setup_usemap(pgdat, zone, size);
- 		ret = init_currently_empty_zone(zone, zone_start_pfn,
- 						size, MEMMAP_EARLY);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0054-mm-setup-pageblock_order-before-it-s-used-by-sparsem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0054-mm-setup-pageblock_order-before-it-s-used-by-sparsem.patch
deleted file mode 100644
index 540cd1c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0054-mm-setup-pageblock_order-before-it-s-used-by-sparsem.patch
+++ /dev/null
@@ -1,101 +0,0 @@
-From 4cf34c29c3362f55fe4ca807f2b01984c36fe1b2 Mon Sep 17 00:00:00 2001
-From: Xishi Qiu <qiuxishi at huawei.com>
-Date: Tue, 31 Jul 2012 16:43:19 -0700
-Subject: [PATCH 54/70] mm: setup pageblock_order before it's used by
- sparsemem
-
-commit ca57df79d4f64e1a4886606af4289d40636189c5 upstream.
-
-On architectures with CONFIG_HUGETLB_PAGE_SIZE_VARIABLE set, such as
-Itanium, pageblock_order is a variable with default value of 0.  It's set
-to the right value by set_pageblock_order() in function
-free_area_init_core().
-
-But pageblock_order may be used by sparse_init() before free_area_init_core()
-is called along path:
-sparse_init()
-    ->sparse_early_usemaps_alloc_node()
-	->usemap_size()
-	    ->SECTION_BLOCKFLAGS_BITS
-		->((1UL << (PFN_SECTION_SHIFT - pageblock_order)) *
-NR_PAGEBLOCK_BITS)
-
-The uninitialized pageblock_size will cause memory wasting because
-usemap_size() returns a much bigger value then it's really needed.
-
-For example, on an Itanium platform,
-sparse_init() pageblock_order=0 usemap_size=24576
-free_area_init_core() before pageblock_order=0, usemap_size=24576
-free_area_init_core() after pageblock_order=12, usemap_size=8
-
-That means 24K memory has been wasted for each section, so fix it by calling
-set_pageblock_order() from sparse_init().
-
-Signed-off-by: Xishi Qiu <qiuxishi at huawei.com>
-Signed-off-by: Jiang Liu <liuj97 at gmail.com>
-Cc: Tony Luck <tony.luck at intel.com>
-Cc: Yinghai Lu <yinghai at kernel.org>
-Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu at jp.fujitsu.com>
-Cc: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Cc: KOSAKI Motohiro <kosaki.motohiro at jp.fujitsu.com>
-Cc: David Rientjes <rientjes at google.com>
-Cc: Keping Chen <chenkeping at huawei.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2: adjust context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/internal.h   |    2 ++
- mm/page_alloc.c |    4 ++--
- mm/sparse.c     |    3 +++
- 3 files changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/mm/internal.h b/mm/internal.h
-index 2189af4..0c26b5e 100644
---- a/mm/internal.h
-+++ b/mm/internal.h
-@@ -309,3 +309,5 @@ extern u64 hwpoison_filter_flags_mask;
- extern u64 hwpoison_filter_flags_value;
- extern u64 hwpoison_filter_memcg;
- extern u32 hwpoison_filter_enable;
-+
-+extern void set_pageblock_order(void);
-diff --git a/mm/page_alloc.c b/mm/page_alloc.c
-index 63a4e1d..6e51bf0 100644
---- a/mm/page_alloc.c
-+++ b/mm/page_alloc.c
-@@ -4282,7 +4282,7 @@ static inline void setup_usemap(struct pglist_data *pgdat,
- #ifdef CONFIG_HUGETLB_PAGE_SIZE_VARIABLE
- 
- /* Initialise the number of pages represented by NR_PAGEBLOCK_BITS */
--static inline void __init set_pageblock_order(void)
-+void __init set_pageblock_order(void)
- {
- 	unsigned int order;
- 
-@@ -4310,7 +4310,7 @@ static inline void __init set_pageblock_order(void)
-  * include/linux/pageblock-flags.h for the values of pageblock_order based on
-  * the kernel config
-  */
--static inline void set_pageblock_order(void)
-+void __init set_pageblock_order(void)
- {
- }
- 
-diff --git a/mm/sparse.c b/mm/sparse.c
-index a8bc7d3..bf7d3cc 100644
---- a/mm/sparse.c
-+++ b/mm/sparse.c
-@@ -486,6 +486,9 @@ void __init sparse_init(void)
- 	struct page **map_map;
- #endif
- 
-+	/* Setup pageblock_order for HUGETLB_PAGE_SIZE_VARIABLE */
-+	set_pageblock_order();
-+
- 	/*
- 	 * map is using big page (aka 2M in x86 64 bit)
- 	 * usemap is less one page (aka 24 bytes)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0055-mm-mmu_notifier-fix-freed-page-still-mapped-in-secon.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0055-mm-mmu_notifier-fix-freed-page-still-mapped-in-secon.patch
deleted file mode 100644
index 78c9f97..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0055-mm-mmu_notifier-fix-freed-page-still-mapped-in-secon.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From 4bc62f55f275bd09fa00023c52414a4c08784919 Mon Sep 17 00:00:00 2001
-From: Xiao Guangrong <xiaoguangrong at linux.vnet.ibm.com>
-Date: Tue, 31 Jul 2012 16:45:52 -0700
-Subject: [PATCH 55/70] mm: mmu_notifier: fix freed page still mapped in
- secondary MMU
-
-commit 3ad3d901bbcfb15a5e4690e55350db0899095a68 upstream.
-
-mmu_notifier_release() is called when the process is exiting.  It will
-delete all the mmu notifiers.  But at this time the page belonging to the
-process is still present in page tables and is present on the LRU list, so
-this race will happen:
-
-      CPU 0                 CPU 1
-mmu_notifier_release:    try_to_unmap:
-   hlist_del_init_rcu(&mn->hlist);
-                            ptep_clear_flush_notify:
-                                  mmu nofifler not found
-                            free page  !!!!!!
-                            /*
-                             * At the point, the page has been
-                             * freed, but it is still mapped in
-                             * the secondary MMU.
-                             */
-
-  mn->ops->release(mn, mm);
-
-Then the box is not stable and sometimes we can get this bug:
-
-[  738.075923] BUG: Bad page state in process migrate-perf  pfn:03bec
-[  738.075931] page:ffffea00000efb00 count:0 mapcount:0 mapping:          (null) index:0x8076
-[  738.075936] page flags: 0x20000000000014(referenced|dirty)
-
-The same issue is present in mmu_notifier_unregister().
-
-We can call ->release before deleting the notifier to ensure the page has
-been unmapped from the secondary MMU before it is freed.
-
-Signed-off-by: Xiao Guangrong <xiaoguangrong at linux.vnet.ibm.com>
-Cc: Avi Kivity <avi at redhat.com>
-Cc: Marcelo Tosatti <mtosatti at redhat.com>
-Cc: Paul Gortmaker <paul.gortmaker at windriver.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- mm/mmu_notifier.c |   45 +++++++++++++++++++++++----------------------
- 1 files changed, 23 insertions(+), 22 deletions(-)
-
-diff --git a/mm/mmu_notifier.c b/mm/mmu_notifier.c
-index 9a611d3..862b608 100644
---- a/mm/mmu_notifier.c
-+++ b/mm/mmu_notifier.c
-@@ -33,6 +33,24 @@
- void __mmu_notifier_release(struct mm_struct *mm)
- {
- 	struct mmu_notifier *mn;
-+	struct hlist_node *n;
-+
-+	/*
-+	 * RCU here will block mmu_notifier_unregister until
-+	 * ->release returns.
-+	 */
-+	rcu_read_lock();
-+	hlist_for_each_entry_rcu(mn, n, &mm->mmu_notifier_mm->list, hlist)
-+		/*
-+		 * if ->release runs before mmu_notifier_unregister it
-+		 * must be handled as it's the only way for the driver
-+		 * to flush all existing sptes and stop the driver
-+		 * from establishing any more sptes before all the
-+		 * pages in the mm are freed.
-+		 */
-+		if (mn->ops->release)
-+			mn->ops->release(mn, mm);
-+	rcu_read_unlock();
- 
- 	spin_lock(&mm->mmu_notifier_mm->lock);
- 	while (unlikely(!hlist_empty(&mm->mmu_notifier_mm->list))) {
-@@ -46,23 +64,6 @@ void __mmu_notifier_release(struct mm_struct *mm)
- 		 * mmu_notifier_unregister to return.
- 		 */
- 		hlist_del_init_rcu(&mn->hlist);
--		/*
--		 * RCU here will block mmu_notifier_unregister until
--		 * ->release returns.
--		 */
--		rcu_read_lock();
--		spin_unlock(&mm->mmu_notifier_mm->lock);
--		/*
--		 * if ->release runs before mmu_notifier_unregister it
--		 * must be handled as it's the only way for the driver
--		 * to flush all existing sptes and stop the driver
--		 * from establishing any more sptes before all the
--		 * pages in the mm are freed.
--		 */
--		if (mn->ops->release)
--			mn->ops->release(mn, mm);
--		rcu_read_unlock();
--		spin_lock(&mm->mmu_notifier_mm->lock);
- 	}
- 	spin_unlock(&mm->mmu_notifier_mm->lock);
- 
-@@ -284,16 +285,13 @@ void mmu_notifier_unregister(struct mmu_notifier *mn, struct mm_struct *mm)
- {
- 	BUG_ON(atomic_read(&mm->mm_count) <= 0);
- 
--	spin_lock(&mm->mmu_notifier_mm->lock);
- 	if (!hlist_unhashed(&mn->hlist)) {
--		hlist_del_rcu(&mn->hlist);
--
- 		/*
- 		 * RCU here will force exit_mmap to wait ->release to finish
- 		 * before freeing the pages.
- 		 */
- 		rcu_read_lock();
--		spin_unlock(&mm->mmu_notifier_mm->lock);
-+
- 		/*
- 		 * exit_mmap will block in mmu_notifier_release to
- 		 * guarantee ->release is called before freeing the
-@@ -302,8 +300,11 @@ void mmu_notifier_unregister(struct mmu_notifier *mn, struct mm_struct *mm)
- 		if (mn->ops->release)
- 			mn->ops->release(mn, mm);
- 		rcu_read_unlock();
--	} else
-+
-+		spin_lock(&mm->mmu_notifier_mm->lock);
-+		hlist_del_rcu(&mn->hlist);
- 		spin_unlock(&mm->mmu_notifier_mm->lock);
-+	}
- 
- 	/*
- 	 * Wait any running method to finish, of course including
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0056-mm-hugetlbfs-close-race-during-teardown-of-hugetlbfs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0056-mm-hugetlbfs-close-race-during-teardown-of-hugetlbfs.patch
deleted file mode 100644
index 653bd0c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0056-mm-hugetlbfs-close-race-during-teardown-of-hugetlbfs.patch
+++ /dev/null
@@ -1,340 +0,0 @@
-From 677941da036e27de0418fa601b49f8c8c6ccf594 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Tue, 31 Jul 2012 16:46:20 -0700
-Subject: [PATCH 56/70] mm: hugetlbfs: close race during teardown of hugetlbfs
- shared page tables
-
-commit d833352a4338dc31295ed832a30c9ccff5c7a183 upstream.
-
-If a process creates a large hugetlbfs mapping that is eligible for page
-table sharing and forks heavily with children some of whom fault and
-others which destroy the mapping then it is possible for page tables to
-get corrupted.  Some teardowns of the mapping encounter a "bad pmd" and
-output a message to the kernel log.  The final teardown will trigger a
-BUG_ON in mm/filemap.c.
-
-This was reproduced in 3.4 but is known to have existed for a long time
-and goes back at least as far as 2.6.37.  It was probably was introduced
-in 2.6.20 by [39dde65c: shared page table for hugetlb page].  The messages
-look like this;
-
-[  ..........] Lots of bad pmd messages followed by this
-[  127.164256] mm/memory.c:391: bad pmd ffff880412e04fe8(80000003de4000e7).
-[  127.164257] mm/memory.c:391: bad pmd ffff880412e04ff0(80000003de6000e7).
-[  127.164258] mm/memory.c:391: bad pmd ffff880412e04ff8(80000003de0000e7).
-[  127.186778] ------------[ cut here ]------------
-[  127.186781] kernel BUG at mm/filemap.c:134!
-[  127.186782] invalid opcode: 0000 [#1] SMP
-[  127.186783] CPU 7
-[  127.186784] Modules linked in: af_packet cpufreq_conservative cpufreq_userspace cpufreq_powersave acpi_cpufreq mperf ext3 jbd dm_mod coretemp crc32c_intel usb_storage ghash_clmulni_intel aesni_intel i2c_i801 r8169 mii uas sr_mod cdrom sg iTCO_wdt iTCO_vendor_support shpchp serio_raw cryptd aes_x86_64 e1000e pci_hotplug dcdbas aes_generic container microcode ext4 mbcache jbd2 crc16 sd_mod crc_t10dif i915 drm_kms_helper drm i2c_algo_bit ehci_hcd ahci libahci usbcore rtc_cmos usb_common button i2c_core intel_agp video intel_gtt fan processor thermal thermal_sys hwmon ata_generic pata_atiixp libata scsi_mod
-[  127.186801]
-[  127.186802] Pid: 9017, comm: hugetlbfs-test Not tainted 3.4.0-autobuild #53 Dell Inc. OptiPlex 990/06D7TR
-[  127.186804] RIP: 0010:[<ffffffff810ed6ce>]  [<ffffffff810ed6ce>] __delete_from_page_cache+0x15e/0x160
-[  127.186809] RSP: 0000:ffff8804144b5c08  EFLAGS: 00010002
-[  127.186810] RAX: 0000000000000001 RBX: ffffea000a5c9000 RCX: 00000000ffffffc0
-[  127.186811] RDX: 0000000000000000 RSI: 0000000000000009 RDI: ffff88042dfdad00
-[  127.186812] RBP: ffff8804144b5c18 R08: 0000000000000009 R09: 0000000000000003
-[  127.186813] R10: 0000000000000000 R11: 000000000000002d R12: ffff880412ff83d8
-[  127.186814] R13: ffff880412ff83d8 R14: 0000000000000000 R15: ffff880412ff83d8
-[  127.186815] FS:  00007fe18ed2c700(0000) GS:ffff88042dce0000(0000) knlGS:0000000000000000
-[  127.186816] CS:  0010 DS: 0000 ES: 0000 CR0: 000000008005003b
-[  127.186817] CR2: 00007fe340000503 CR3: 0000000417a14000 CR4: 00000000000407e0
-[  127.186818] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
-[  127.186819] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
-[  127.186820] Process hugetlbfs-test (pid: 9017, threadinfo ffff8804144b4000, task ffff880417f803c0)
-[  127.186821] Stack:
-[  127.186822]  ffffea000a5c9000 0000000000000000 ffff8804144b5c48 ffffffff810ed83b
-[  127.186824]  ffff8804144b5c48 000000000000138a 0000000000001387 ffff8804144b5c98
-[  127.186825]  ffff8804144b5d48 ffffffff811bc925 ffff8804144b5cb8 0000000000000000
-[  127.186827] Call Trace:
-[  127.186829]  [<ffffffff810ed83b>] delete_from_page_cache+0x3b/0x80
-[  127.186832]  [<ffffffff811bc925>] truncate_hugepages+0x115/0x220
-[  127.186834]  [<ffffffff811bca43>] hugetlbfs_evict_inode+0x13/0x30
-[  127.186837]  [<ffffffff811655c7>] evict+0xa7/0x1b0
-[  127.186839]  [<ffffffff811657a3>] iput_final+0xd3/0x1f0
-[  127.186840]  [<ffffffff811658f9>] iput+0x39/0x50
-[  127.186842]  [<ffffffff81162708>] d_kill+0xf8/0x130
-[  127.186843]  [<ffffffff81162812>] dput+0xd2/0x1a0
-[  127.186845]  [<ffffffff8114e2d0>] __fput+0x170/0x230
-[  127.186848]  [<ffffffff81236e0e>] ? rb_erase+0xce/0x150
-[  127.186849]  [<ffffffff8114e3ad>] fput+0x1d/0x30
-[  127.186851]  [<ffffffff81117db7>] remove_vma+0x37/0x80
-[  127.186853]  [<ffffffff81119182>] do_munmap+0x2d2/0x360
-[  127.186855]  [<ffffffff811cc639>] sys_shmdt+0xc9/0x170
-[  127.186857]  [<ffffffff81410a39>] system_call_fastpath+0x16/0x1b
-[  127.186858] Code: 0f 1f 44 00 00 48 8b 43 08 48 8b 00 48 8b 40 28 8b b0 40 03 00 00 85 f6 0f 88 df fe ff ff 48 89 df e8 e7 cb 05 00 e9 d2 fe ff ff <0f> 0b 55 83 e2 fd 48 89 e5 48 83 ec 30 48 89 5d d8 4c 89 65 e0
-[  127.186868] RIP  [<ffffffff810ed6ce>] __delete_from_page_cache+0x15e/0x160
-[  127.186870]  RSP <ffff8804144b5c08>
-[  127.186871] ---[ end trace 7cbac5d1db69f426 ]---
-
-The bug is a race and not always easy to reproduce.  To reproduce it I was
-doing the following on a single socket I7-based machine with 16G of RAM.
-
-$ hugeadm --pool-pages-max DEFAULT:13G
-$ echo $((18*1048576*1024)) > /proc/sys/kernel/shmmax
-$ echo $((18*1048576*1024)) > /proc/sys/kernel/shmall
-$ for i in `seq 1 9000`; do ./hugetlbfs-test; done
-
-On my particular machine, it usually triggers within 10 minutes but
-enabling debug options can change the timing such that it never hits.
-Once the bug is triggered, the machine is in trouble and needs to be
-rebooted.  The machine will respond but processes accessing proc like "ps
-aux" will hang due to the BUG_ON.  shutdown will also hang and needs a
-hard reset or a sysrq-b.
-
-The basic problem is a race between page table sharing and teardown.  For
-the most part page table sharing depends on i_mmap_mutex.  In some cases,
-it is also taking the mm->page_table_lock for the PTE updates but with
-shared page tables, it is the i_mmap_mutex that is more important.
-
-Unfortunately it appears to be also insufficient. Consider the following
-situation
-
-Process A					Process B
----------					---------
-hugetlb_fault					shmdt
-  						LockWrite(mmap_sem)
-    						  do_munmap
-						    unmap_region
-						      unmap_vmas
-						        unmap_single_vma
-						          unmap_hugepage_range
-      						            Lock(i_mmap_mutex)
-							    Lock(mm->page_table_lock)
-							    huge_pmd_unshare/unmap tables <--- (1)
-							    Unlock(mm->page_table_lock)
-      						            Unlock(i_mmap_mutex)
-  huge_pte_alloc				      ...
-    Lock(i_mmap_mutex)				      ...
-    vma_prio_walk, find svma, spte		      ...
-    Lock(mm->page_table_lock)			      ...
-    share spte					      ...
-    Unlock(mm->page_table_lock)			      ...
-    Unlock(i_mmap_mutex)			      ...
-  hugetlb_no_page									  <--- (2)
-						      free_pgtables
-						        unlink_file_vma
-							hugetlb_free_pgd_range
-						    remove_vma_list
-
-In this scenario, it is possible for Process A to share page tables with
-Process B that is trying to tear them down.  The i_mmap_mutex on its own
-does not prevent Process A walking Process B's page tables.  At (1) above,
-the page tables are not shared yet so it unmaps the PMDs.  Process A sets
-up page table sharing and at (2) faults a new entry.  Process B then trips
-up on it in free_pgtables.
-
-This patch fixes the problem by adding a new function
-__unmap_hugepage_range_final that is only called when the VMA is about to
-be destroyed.  This function clears VM_MAYSHARE during
-unmap_hugepage_range() under the i_mmap_mutex.  This makes the VMA
-ineligible for sharing and avoids the race.  Superficially this looks like
-it would then be vunerable to truncate and madvise issues but hugetlbfs
-has its own truncate handlers so does not use unmap_mapping_range() and
-does not support madvise(DONTNEED).
-
-This should be treated as a -stable candidate if it is merged.
-
-Test program is as follows. The test case was mostly written by Michal
-Hocko with a few minor changes to reproduce this bug.
-
-==== CUT HERE ====
-
-static size_t huge_page_size = (2UL << 20);
-static size_t nr_huge_page_A = 512;
-static size_t nr_huge_page_B = 5632;
-
-unsigned int get_random(unsigned int max)
-{
-	struct timeval tv;
-
-	gettimeofday(&tv, NULL);
-	srandom(tv.tv_usec);
-	return random() % max;
-}
-
-static void play(void *addr, size_t size)
-{
-	unsigned char *start = addr,
-		      *end = start + size,
-		      *a;
-	start += get_random(size/2);
-
-	/* we could itterate on huge pages but let's give it more time. */
-	for (a = start; a < end; a += 4096)
-		*a = 0;
-}
-
-int main(int argc, char **argv)
-{
-	key_t key = IPC_PRIVATE;
-	size_t sizeA = nr_huge_page_A * huge_page_size;
-	size_t sizeB = nr_huge_page_B * huge_page_size;
-	int shmidA, shmidB;
-	void *addrA = NULL, *addrB = NULL;
-	int nr_children = 300, n = 0;
-
-	if ((shmidA = shmget(key, sizeA, IPC_CREAT|SHM_HUGETLB|0660)) == -1) {
-		perror("shmget:");
-		return 1;
-	}
-
-	if ((addrA = shmat(shmidA, addrA, SHM_R|SHM_W)) == (void *)-1UL) {
-		perror("shmat");
-		return 1;
-	}
-	if ((shmidB = shmget(key, sizeB, IPC_CREAT|SHM_HUGETLB|0660)) == -1) {
-		perror("shmget:");
-		return 1;
-	}
-
-	if ((addrB = shmat(shmidB, addrB, SHM_R|SHM_W)) == (void *)-1UL) {
-		perror("shmat");
-		return 1;
-	}
-
-fork_child:
-	switch(fork()) {
-		case 0:
-			switch (n%3) {
-			case 0:
-				play(addrA, sizeA);
-				break;
-			case 1:
-				play(addrB, sizeB);
-				break;
-			case 2:
-				break;
-			}
-			break;
-		case -1:
-			perror("fork:");
-			break;
-		default:
-			if (++n < nr_children)
-				goto fork_child;
-			play(addrA, sizeA);
-			break;
-	}
-	shmdt(addrA);
-	shmdt(addrB);
-	do {
-		wait(NULL);
-	} while (--n > 0);
-	shmctl(shmidA, IPC_RMID, NULL);
-	shmctl(shmidB, IPC_RMID, NULL);
-	return 0;
-}
-
-[akpm at linux-foundation.org: name the declaration's args, fix CONFIG_HUGETLBFS=n build]
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Reviewed-by: Michal Hocko <mhocko at suse.cz>
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-[bwh: Backported to 3.2:
- - Adjust context
- - Drop the mmu_gather * parameters]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- include/linux/hugetlb.h |   10 ++++++++++
- mm/hugetlb.c            |   28 ++++++++++++++++++++++++++--
- mm/memory.c             |    7 +++++--
- 3 files changed, 41 insertions(+), 4 deletions(-)
-
-diff --git a/include/linux/hugetlb.h b/include/linux/hugetlb.h
-index c5ed2f1..a2227f7 100644
---- a/include/linux/hugetlb.h
-+++ b/include/linux/hugetlb.h
-@@ -41,6 +41,9 @@ int follow_hugetlb_page(struct mm_struct *, struct vm_area_struct *,
- 			unsigned long *, int *, int, unsigned int flags);
- void unmap_hugepage_range(struct vm_area_struct *,
- 			unsigned long, unsigned long, struct page *);
-+void __unmap_hugepage_range_final(struct vm_area_struct *vma,
-+			  unsigned long start, unsigned long end,
-+			  struct page *ref_page);
- void __unmap_hugepage_range(struct vm_area_struct *,
- 			unsigned long, unsigned long, struct page *);
- int hugetlb_prefault(struct address_space *, struct vm_area_struct *);
-@@ -99,6 +102,13 @@ static inline unsigned long hugetlb_total_pages(void)
- #define copy_hugetlb_page_range(src, dst, vma)	({ BUG(); 0; })
- #define hugetlb_prefault(mapping, vma)		({ BUG(); 0; })
- #define unmap_hugepage_range(vma, start, end, page)	BUG()
-+static inline void __unmap_hugepage_range_final(struct vm_area_struct *vma,
-+			unsigned long start, unsigned long end,
-+			struct page *ref_page)
-+{
-+	BUG();
-+}
-+
- static inline void hugetlb_report_meminfo(struct seq_file *m)
- {
- }
-diff --git a/mm/hugetlb.c b/mm/hugetlb.c
-index b1e1bad..0f897b8 100644
---- a/mm/hugetlb.c
-+++ b/mm/hugetlb.c
-@@ -2382,6 +2382,25 @@ void __unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start,
- 	}
- }
- 
-+void __unmap_hugepage_range_final(struct vm_area_struct *vma,
-+			  unsigned long start, unsigned long end,
-+			  struct page *ref_page)
-+{
-+	__unmap_hugepage_range(vma, start, end, ref_page);
-+
-+	/*
-+	 * Clear this flag so that x86's huge_pmd_share page_table_shareable
-+	 * test will fail on a vma being torn down, and not grab a page table
-+	 * on its way out.  We're lucky that the flag has such an appropriate
-+	 * name, and can in fact be safely cleared here. We could clear it
-+	 * before the __unmap_hugepage_range above, but all that's necessary
-+	 * is to clear it before releasing the i_mmap_mutex. This works
-+	 * because in the context this is called, the VMA is about to be
-+	 * destroyed and the i_mmap_mutex is held.
-+	 */
-+	vma->vm_flags &= ~VM_MAYSHARE;
-+}
-+
- void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start,
- 			  unsigned long end, struct page *ref_page)
- {
-@@ -2939,9 +2958,14 @@ void hugetlb_change_protection(struct vm_area_struct *vma,
- 		}
- 	}
- 	spin_unlock(&mm->page_table_lock);
--	mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex);
--
-+	/*
-+	 * Must flush TLB before releasing i_mmap_mutex: x86's huge_pmd_unshare
-+	 * may have cleared our pud entry and done put_page on the page table:
-+	 * once we release i_mmap_mutex, another task can do the final put_page
-+	 * and that page table be reused and filled with junk.
-+	 */
- 	flush_tlb_range(vma, start, end);
-+	mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex);
- }
- 
- int hugetlb_reserve_pages(struct inode *inode,
-diff --git a/mm/memory.c b/mm/memory.c
-index 1b1ca17..70f5daf 100644
---- a/mm/memory.c
-+++ b/mm/memory.c
-@@ -1358,8 +1358,11 @@ unsigned long unmap_vmas(struct mmu_gather *tlb,
- 				 * Since no pte has actually been setup, it is
- 				 * safe to do nothing in this case.
- 				 */
--				if (vma->vm_file)
--					unmap_hugepage_range(vma, start, end, NULL);
-+				if (vma->vm_file) {
-+					mutex_lock(&vma->vm_file->f_mapping->i_mmap_mutex);
-+					__unmap_hugepage_range_final(vma, start, end, NULL);
-+					mutex_unlock(&vma->vm_file->f_mapping->i_mmap_mutex);
-+				}
- 
- 				start = end;
- 			} else
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0057-ALSA-snd-usb-fix-clock-source-validity-index.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0057-ALSA-snd-usb-fix-clock-source-validity-index.patch
deleted file mode 100644
index 007e393..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0057-ALSA-snd-usb-fix-clock-source-validity-index.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 25ad0cb4cfe9597474d8cda839d5adedc9412201 Mon Sep 17 00:00:00 2001
-From: Daniel Mack <zonque at gmail.com>
-Date: Wed, 1 Aug 2012 10:16:53 +0200
-Subject: [PATCH 57/70] ALSA: snd-usb: fix clock source validity index
-
-commit aff252a848ce21b431ba822de3dab9c4c94571cb upstream.
-
-uac_clock_source_is_valid() uses the control selector value to access
-the bmControls bitmap of the clock source unit. This is wrong, as
-control selector values start from 1, while the bitmap uses all
-available bits.
-
-In other words, "Clock Validity Control" is stored in D3..2, not D5..4
-of the clock selector unit's bmControls.
-
-Signed-off-by: Daniel Mack <zonque at gmail.com>
-Reported-by: Andreas Koch <andreas at akdesigninc.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/usb/clock.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/sound/usb/clock.c b/sound/usb/clock.c
-index 379baad..5e634a2 100644
---- a/sound/usb/clock.c
-+++ b/sound/usb/clock.c
-@@ -111,7 +111,8 @@ static bool uac_clock_source_is_valid(struct snd_usb_audio *chip, int source_id)
- 		return 0;
- 
- 	/* If a clock source can't tell us whether it's valid, we assume it is */
--	if (!uac2_control_is_readable(cs_desc->bmControls, UAC2_CS_CONTROL_CLOCK_VALID))
-+	if (!uac2_control_is_readable(cs_desc->bmControls,
-+				      UAC2_CS_CONTROL_CLOCK_VALID - 1))
- 		return 1;
- 
- 	err = snd_usb_ctl_msg(dev, usb_rcvctrlpipe(dev, 0), UAC2_CS_CUR,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0058-ALSA-hda-Support-dock-on-Lenovo-Thinkpad-T530-with-A.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0058-ALSA-hda-Support-dock-on-Lenovo-Thinkpad-T530-with-A.patch
deleted file mode 100644
index 9ffbd4c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0058-ALSA-hda-Support-dock-on-Lenovo-Thinkpad-T530-with-A.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 49cbaa1b1111f838004b74390214575cc82ae5ff Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 2 Aug 2012 09:04:39 +0200
-Subject: [PATCH 58/70] ALSA: hda - Support dock on Lenovo Thinkpad T530 with
- ALC269VC
-
-commit 707fba3fa76a4c8855552f5d4c1a12430c09bce8 upstream.
-
-Lenovo Thinkpad T530 with ALC269VC codec has a dock port but BIOS
-doesn't set up the pins properly.  Enable the pins as well as on
-Thinkpad X230 Tablet.
-
-Reported-and-tested-by: Mario <anyc at hadiko.de>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 6ae58b2..2e2eb93 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5076,6 +5076,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x17aa, 0x21b8, "Thinkpad Edge 14", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE),
-+	SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_QUANTA_MUTE),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Lenovo Ideapd", ALC269_FIXUP_PCM_44K),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0059-ore-Fix-out-of-bounds-access-in-_ios_obj.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0059-ore-Fix-out-of-bounds-access-in-_ios_obj.patch
deleted file mode 100644
index 42b27e5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0059-ore-Fix-out-of-bounds-access-in-_ios_obj.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From e9c69241e1b7a169690d8b16393d712d7613706d Mon Sep 17 00:00:00 2001
-From: Boaz Harrosh <bharrosh at panasas.com>
-Date: Wed, 1 Aug 2012 17:48:36 +0300
-Subject: [PATCH 59/70] ore: Fix out-of-bounds access in _ios_obj()
-
-commit 9e62bb4458ad2cf28bd701aa5fab380b846db326 upstream.
-
-_ios_obj() is accessed by group_index not device_table index.
-
-The oc->comps array is only a group_full of devices at a time
-it is not like ore_comp_dev() which is indexed by a global
-device_table index.
-
-This did not BUG until now because exofs only uses a single
-COMP for all devices. But with other FSs like PanFS this is
-not true.
-
-This bug was only in the write_path, all other users were
-using it correctly
-
-[This is a bug since 3.2 Kernel]
-
-Signed-off-by: Boaz Harrosh <bharrosh at panasas.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/exofs/ore.c |   14 +++++++-------
- 1 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/fs/exofs/ore.c b/fs/exofs/ore.c
-index 24a49d4..1585db1 100644
---- a/fs/exofs/ore.c
-+++ b/fs/exofs/ore.c
-@@ -837,11 +837,11 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
- 				bio->bi_rw |= REQ_WRITE;
- 			}
- 
--			osd_req_write(or, _ios_obj(ios, dev), per_dev->offset,
--				      bio, per_dev->length);
-+			osd_req_write(or, _ios_obj(ios, cur_comp),
-+				      per_dev->offset, bio, per_dev->length);
- 			ORE_DBGMSG("write(0x%llx) offset=0x%llx "
- 				      "length=0x%llx dev=%d\n",
--				     _LLU(_ios_obj(ios, dev)->id),
-+				     _LLU(_ios_obj(ios, cur_comp)->id),
- 				     _LLU(per_dev->offset),
- 				     _LLU(per_dev->length), dev);
- 		} else if (ios->kern_buff) {
-@@ -853,20 +853,20 @@ static int _write_mirror(struct ore_io_state *ios, int cur_comp)
- 			       (ios->si.unit_off + ios->length >
- 				ios->layout->stripe_unit));
- 
--			ret = osd_req_write_kern(or, _ios_obj(ios, per_dev->dev),
-+			ret = osd_req_write_kern(or, _ios_obj(ios, cur_comp),
- 						 per_dev->offset,
- 						 ios->kern_buff, ios->length);
- 			if (unlikely(ret))
- 				goto out;
- 			ORE_DBGMSG2("write_kern(0x%llx) offset=0x%llx "
- 				      "length=0x%llx dev=%d\n",
--				     _LLU(_ios_obj(ios, dev)->id),
-+				     _LLU(_ios_obj(ios, cur_comp)->id),
- 				     _LLU(per_dev->offset),
- 				     _LLU(ios->length), per_dev->dev);
- 		} else {
--			osd_req_set_attributes(or, _ios_obj(ios, dev));
-+			osd_req_set_attributes(or, _ios_obj(ios, cur_comp));
- 			ORE_DBGMSG2("obj(0x%llx) set_attributes=%d dev=%d\n",
--				     _LLU(_ios_obj(ios, dev)->id),
-+				     _LLU(_ios_obj(ios, cur_comp)->id),
- 				     ios->out_attr_len, dev);
- 		}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0060-m68k-Make-sys_atomic_cmpxchg_32-work-on-classic-m68k.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0060-m68k-Make-sys_atomic_cmpxchg_32-work-on-classic-m68k.patch
deleted file mode 100644
index b955501..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0060-m68k-Make-sys_atomic_cmpxchg_32-work-on-classic-m68k.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 83e7a3bd925b3f8886f4a116a3d6581c89fcb87e Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab at linux-m68k.org>
-Date: Sat, 28 Jul 2012 00:20:34 +0200
-Subject: [PATCH 60/70] m68k: Make sys_atomic_cmpxchg_32 work on classic m68k
-
-commit 9e2760d18b3cf179534bbc27692c84879c61b97c upstream.
-
-User space access must always go through uaccess accessors, since on
-classic m68k user space and kernel space are completely separate.
-
-Signed-off-by: Andreas Schwab <schwab at linux-m68k.org>
-Tested-by: Thorsten Glaser <tg at debian.org>
-Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/m68k/kernel/sys_m68k.c |    8 ++++++--
- 1 files changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/arch/m68k/kernel/sys_m68k.c b/arch/m68k/kernel/sys_m68k.c
-index 8623f8d..9a5932e 100644
---- a/arch/m68k/kernel/sys_m68k.c
-+++ b/arch/m68k/kernel/sys_m68k.c
-@@ -479,9 +479,13 @@ sys_atomic_cmpxchg_32(unsigned long newval, int oldval, int d3, int d4, int d5,
- 			goto bad_access;
- 		}
- 
--		mem_value = *mem;
-+		/*
-+		 * No need to check for EFAULT; we know that the page is
-+		 * present and writable.
-+		 */
-+		__get_user(mem_value, mem);
- 		if (mem_value == oldval)
--			*mem = newval;
-+			__put_user(newval, mem);
- 
- 		pte_unmap_unlock(pte, ptl);
- 		up_read(&mm->mmap_sem);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0061-drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0061-drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch
deleted file mode 100644
index 5d55fb5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0061-drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From dc2062a19f602bfb44928a95bdeb21165a17e27c Mon Sep 17 00:00:00 2001
-From: Jesse Barnes <jbarnes at virtuousgeek.org>
-Date: Thu, 21 Jun 2012 15:13:50 -0700
-Subject: [PATCH 61/70] drm/i915: prefer wide & slow to fast & narrow in DP
- configs
-
-commit 2514bc510d0c3aadcc5204056bb440fa36845147 upstream.
-
-High frequency link configurations have the potential to cause trouble
-with long and/or cheap cables, so prefer slow and wide configurations
-instead.  This patch has the potential to cause trouble for eDP
-configurations that lie about available lanes, so if we run into that we
-can make it conditional on eDP.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45801
-Tested-by: peter at colberg.org
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_dp.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index d4c4937..fae2050 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -708,8 +708,8 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
- 
- 	bpp = adjusted_mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;
- 
--	for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) {
--		for (clock = 0; clock <= max_clock; clock++) {
-+	for (clock = 0; clock <= max_clock; clock++) {
-+		for (lane_count = 1; lane_count <= max_lane_count; lane_count <<= 1) {
- 			int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count);
- 
- 			if (intel_dp_link_required(mode->clock, bpp)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0062-rt2x00-Add-support-for-BUFFALO-WLI-UC-GNM2-to-rt2800.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0062-rt2x00-Add-support-for-BUFFALO-WLI-UC-GNM2-to-rt2800.patch
deleted file mode 100644
index a55d013..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0062-rt2x00-Add-support-for-BUFFALO-WLI-UC-GNM2-to-rt2800.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1daebd9ade24166c1212e0dc8383a54558c77476 Mon Sep 17 00:00:00 2001
-From: Jeongdo Son <sohn9086 at gmail.com>
-Date: Fri, 15 Jun 2012 02:28:01 +0900
-Subject: [PATCH 62/70] rt2x00: Add support for BUFFALO WLI-UC-GNM2 to
- rt2800usb.
-
-commit a769f9577232afe2c754606a83aad85127e7052a upstream.
-
-This is a RT3070 based device.
-
-Signed-off-by: Jeongdo Son <sohn9086 at gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt2800usb.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt2800usb.c b/drivers/net/wireless/rt2x00/rt2800usb.c
-index bdf960b..ae7528b 100644
---- a/drivers/net/wireless/rt2x00/rt2800usb.c
-+++ b/drivers/net/wireless/rt2x00/rt2800usb.c
-@@ -925,6 +925,7 @@ static struct usb_device_id rt2800usb_device_table[] = {
- 	{ USB_DEVICE(0x0411, 0x015d) },
- 	{ USB_DEVICE(0x0411, 0x016f) },
- 	{ USB_DEVICE(0x0411, 0x01a2) },
-+	{ USB_DEVICE(0x0411, 0x01ee) },
- 	/* Corega */
- 	{ USB_DEVICE(0x07aa, 0x002f) },
- 	{ USB_DEVICE(0x07aa, 0x003c) },
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0063-drop_monitor-fix-sleeping-in-invalid-context-warning.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0063-drop_monitor-fix-sleeping-in-invalid-context-warning.patch
deleted file mode 100644
index 66b0cf5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0063-drop_monitor-fix-sleeping-in-invalid-context-warning.patch
+++ /dev/null
@@ -1,115 +0,0 @@
-From f525976c33830cfe23b1a73eb9ae853820c5c085 Mon Sep 17 00:00:00 2001
-From: Neil Horman <nhorman at tuxdriver.com>
-Date: Fri, 27 Apr 2012 10:11:48 +0000
-Subject: [PATCH 63/70] drop_monitor: fix sleeping in invalid context warning
-
-commit cde2e9a651b76d8db36ae94cd0febc82b637e5dd upstream.
-
-Eric Dumazet pointed out this warning in the drop_monitor protocol to me:
-
-[   38.352571] BUG: sleeping function called from invalid context at kernel/mutex.c:85
-[   38.352576] in_atomic(): 1, irqs_disabled(): 0, pid: 4415, name: dropwatch
-[   38.352580] Pid: 4415, comm: dropwatch Not tainted 3.4.0-rc2+ #71
-[   38.352582] Call Trace:
-[   38.352592]  [<ffffffff8153aaf0>] ? trace_napi_poll_hit+0xd0/0xd0
-[   38.352599]  [<ffffffff81063f2a>] __might_sleep+0xca/0xf0
-[   38.352606]  [<ffffffff81655b16>] mutex_lock+0x26/0x50
-[   38.352610]  [<ffffffff8153aaf0>] ? trace_napi_poll_hit+0xd0/0xd0
-[   38.352616]  [<ffffffff810b72d9>] tracepoint_probe_register+0x29/0x90
-[   38.352621]  [<ffffffff8153a585>] set_all_monitor_traces+0x105/0x170
-[   38.352625]  [<ffffffff8153a8ca>] net_dm_cmd_trace+0x2a/0x40
-[   38.352630]  [<ffffffff8154a81a>] genl_rcv_msg+0x21a/0x2b0
-[   38.352636]  [<ffffffff810f8029>] ? zone_statistics+0x99/0xc0
-[   38.352640]  [<ffffffff8154a600>] ? genl_rcv+0x30/0x30
-[   38.352645]  [<ffffffff8154a059>] netlink_rcv_skb+0xa9/0xd0
-[   38.352649]  [<ffffffff8154a5f0>] genl_rcv+0x20/0x30
-[   38.352653]  [<ffffffff81549a7e>] netlink_unicast+0x1ae/0x1f0
-[   38.352658]  [<ffffffff81549d76>] netlink_sendmsg+0x2b6/0x310
-[   38.352663]  [<ffffffff8150824f>] sock_sendmsg+0x10f/0x130
-[   38.352668]  [<ffffffff8150abe0>] ? move_addr_to_kernel+0x60/0xb0
-[   38.352673]  [<ffffffff81515f04>] ? verify_iovec+0x64/0xe0
-[   38.352677]  [<ffffffff81509c46>] __sys_sendmsg+0x386/0x390
-[   38.352682]  [<ffffffff810ffaf9>] ? handle_mm_fault+0x139/0x210
-[   38.352687]  [<ffffffff8165b5bc>] ? do_page_fault+0x1ec/0x4f0
-[   38.352693]  [<ffffffff8106ba4d>] ? set_next_entity+0x9d/0xb0
-[   38.352699]  [<ffffffff81310b49>] ? tty_ldisc_deref+0x9/0x10
-[   38.352703]  [<ffffffff8106d363>] ? pick_next_task_fair+0x63/0x140
-[   38.352708]  [<ffffffff8150b8d4>] sys_sendmsg+0x44/0x80
-[   38.352713]  [<ffffffff8165f8e2>] system_call_fastpath+0x16/0x1b
-
-It stems from holding a spinlock (trace_state_lock) while attempting to register
-or unregister tracepoint hooks, making in_atomic() true in this context, leading
-to the warning when the tracepoint calls might_sleep() while its taking a mutex.
-Since we only use the trace_state_lock to prevent trace protocol state races, as
-well as hardware stat list updates on an rcu write side, we can just convert the
-spinlock to a mutex to avoid this problem.
-
-Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
-Reported-by: Eric Dumazet <eric.dumazet at gmail.com>
-CC: David Miller <davem at davemloft.net>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/drop_monitor.c |   14 +++++++-------
- 1 files changed, 7 insertions(+), 7 deletions(-)
-
-diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
-index 7f36b38..f74d7d7 100644
---- a/net/core/drop_monitor.c
-+++ b/net/core/drop_monitor.c
-@@ -42,7 +42,7 @@ static void send_dm_alert(struct work_struct *unused);
-  * netlink alerts
-  */
- static int trace_state = TRACE_OFF;
--static DEFINE_SPINLOCK(trace_state_lock);
-+static DEFINE_MUTEX(trace_state_mutex);
- 
- struct per_cpu_dm_data {
- 	struct work_struct dm_alert_work;
-@@ -213,7 +213,7 @@ static int set_all_monitor_traces(int state)
- 	struct dm_hw_stat_delta *new_stat = NULL;
- 	struct dm_hw_stat_delta *temp;
- 
--	spin_lock(&trace_state_lock);
-+	mutex_lock(&trace_state_mutex);
- 
- 	if (state == trace_state) {
- 		rc = -EAGAIN;
-@@ -252,7 +252,7 @@ static int set_all_monitor_traces(int state)
- 		rc = -EINPROGRESS;
- 
- out_unlock:
--	spin_unlock(&trace_state_lock);
-+	mutex_unlock(&trace_state_mutex);
- 
- 	return rc;
- }
-@@ -295,12 +295,12 @@ static int dropmon_net_event(struct notifier_block *ev_block,
- 
- 		new_stat->dev = dev;
- 		new_stat->last_rx = jiffies;
--		spin_lock(&trace_state_lock);
-+		mutex_lock(&trace_state_mutex);
- 		list_add_rcu(&new_stat->list, &hw_stats_list);
--		spin_unlock(&trace_state_lock);
-+		mutex_unlock(&trace_state_mutex);
- 		break;
- 	case NETDEV_UNREGISTER:
--		spin_lock(&trace_state_lock);
-+		mutex_lock(&trace_state_mutex);
- 		list_for_each_entry_safe(new_stat, tmp, &hw_stats_list, list) {
- 			if (new_stat->dev == dev) {
- 				new_stat->dev = NULL;
-@@ -311,7 +311,7 @@ static int dropmon_net_event(struct notifier_block *ev_block,
- 				}
- 			}
- 		}
--		spin_unlock(&trace_state_lock);
-+		mutex_unlock(&trace_state_mutex);
- 		break;
- 	}
- out:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0064-drop_monitor-Make-updating-data-skb-smp-safe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0064-drop_monitor-Make-updating-data-skb-smp-safe.patch
deleted file mode 100644
index 437f06c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0064-drop_monitor-Make-updating-data-skb-smp-safe.patch
+++ /dev/null
@@ -1,187 +0,0 @@
-From 89f73073f155006eaacd5709739fb83e07f3caa8 Mon Sep 17 00:00:00 2001
-From: Neil Horman <nhorman at tuxdriver.com>
-Date: Fri, 27 Apr 2012 10:11:49 +0000
-Subject: [PATCH 64/70] drop_monitor: Make updating data->skb smp safe
-
-commit 3885ca785a3618593226687ced84f3f336dc3860 upstream.
-
-Eric Dumazet pointed out to me that the drop_monitor protocol has some holes in
-its smp protections.  Specifically, its possible to replace data->skb while its
-being written.  This patch corrects that by making data->skb an rcu protected
-variable.  That will prevent it from being overwritten while a tracepoint is
-modifying it.
-
-Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
-Reported-by: Eric Dumazet <eric.dumazet at gmail.com>
-CC: David Miller <davem at davemloft.net>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/drop_monitor.c |   70 ++++++++++++++++++++++++++++++++++++-----------
- 1 files changed, 54 insertions(+), 16 deletions(-)
-
-diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
-index f74d7d7..d75cbfc 100644
---- a/net/core/drop_monitor.c
-+++ b/net/core/drop_monitor.c
-@@ -46,7 +46,7 @@ static DEFINE_MUTEX(trace_state_mutex);
- 
- struct per_cpu_dm_data {
- 	struct work_struct dm_alert_work;
--	struct sk_buff *skb;
-+	struct sk_buff __rcu *skb;
- 	atomic_t dm_hit_count;
- 	struct timer_list send_timer;
- };
-@@ -73,35 +73,58 @@ static int dm_hit_limit = 64;
- static int dm_delay = 1;
- static unsigned long dm_hw_check_delta = 2*HZ;
- static LIST_HEAD(hw_stats_list);
-+static int initialized = 0;
- 
- static void reset_per_cpu_data(struct per_cpu_dm_data *data)
- {
- 	size_t al;
- 	struct net_dm_alert_msg *msg;
- 	struct nlattr *nla;
-+	struct sk_buff *skb;
-+	struct sk_buff *oskb = rcu_dereference_protected(data->skb, 1);
- 
- 	al = sizeof(struct net_dm_alert_msg);
- 	al += dm_hit_limit * sizeof(struct net_dm_drop_point);
- 	al += sizeof(struct nlattr);
- 
--	data->skb = genlmsg_new(al, GFP_KERNEL);
--	genlmsg_put(data->skb, 0, 0, &net_drop_monitor_family,
--			0, NET_DM_CMD_ALERT);
--	nla = nla_reserve(data->skb, NLA_UNSPEC, sizeof(struct net_dm_alert_msg));
--	msg = nla_data(nla);
--	memset(msg, 0, al);
--	atomic_set(&data->dm_hit_count, dm_hit_limit);
-+	skb = genlmsg_new(al, GFP_KERNEL);
-+
-+	if (skb) {
-+		genlmsg_put(skb, 0, 0, &net_drop_monitor_family,
-+				0, NET_DM_CMD_ALERT);
-+		nla = nla_reserve(skb, NLA_UNSPEC,
-+				  sizeof(struct net_dm_alert_msg));
-+		msg = nla_data(nla);
-+		memset(msg, 0, al);
-+	} else if (initialized)
-+		schedule_work_on(smp_processor_id(), &data->dm_alert_work);
-+
-+	/*
-+	 * Don't need to lock this, since we are guaranteed to only
-+	 * run this on a single cpu at a time.
-+	 * Note also that we only update data->skb if the old and new skb
-+	 * pointers don't match.  This ensures that we don't continually call
-+	 * synchornize_rcu if we repeatedly fail to alloc a new netlink message.
-+	 */
-+	if (skb != oskb) {
-+		rcu_assign_pointer(data->skb, skb);
-+
-+		synchronize_rcu();
-+
-+		atomic_set(&data->dm_hit_count, dm_hit_limit);
-+	}
-+
- }
- 
- static void send_dm_alert(struct work_struct *unused)
- {
- 	struct sk_buff *skb;
--	struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data);
-+	struct per_cpu_dm_data *data = &get_cpu_var(dm_cpu_data);
- 
- 	/*
- 	 * Grab the skb we're about to send
- 	 */
--	skb = data->skb;
-+	skb = rcu_dereference_protected(data->skb, 1);
- 
- 	/*
- 	 * Replace it with a new one
-@@ -111,8 +134,10 @@ static void send_dm_alert(struct work_struct *unused)
- 	/*
- 	 * Ship it!
- 	 */
--	genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL);
-+	if (skb)
-+		genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL);
- 
-+	put_cpu_var(dm_cpu_data);
- }
- 
- /*
-@@ -123,9 +148,11 @@ static void send_dm_alert(struct work_struct *unused)
-  */
- static void sched_send_work(unsigned long unused)
- {
--	struct per_cpu_dm_data *data =  &__get_cpu_var(dm_cpu_data);
-+	struct per_cpu_dm_data *data =  &get_cpu_var(dm_cpu_data);
-+
-+	schedule_work_on(smp_processor_id(), &data->dm_alert_work);
- 
--	schedule_work(&data->dm_alert_work);
-+	put_cpu_var(dm_cpu_data);
- }
- 
- static void trace_drop_common(struct sk_buff *skb, void *location)
-@@ -134,9 +161,16 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 	struct nlmsghdr *nlh;
- 	struct nlattr *nla;
- 	int i;
--	struct per_cpu_dm_data *data = &__get_cpu_var(dm_cpu_data);
-+	struct sk_buff *dskb;
-+	struct per_cpu_dm_data *data = &get_cpu_var(dm_cpu_data);
- 
- 
-+	rcu_read_lock();
-+	dskb = rcu_dereference(data->skb);
-+
-+	if (!dskb)
-+		goto out;
-+
- 	if (!atomic_add_unless(&data->dm_hit_count, -1, 0)) {
- 		/*
- 		 * we're already at zero, discard this hit
-@@ -144,7 +178,7 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 		goto out;
- 	}
- 
--	nlh = (struct nlmsghdr *)data->skb->data;
-+	nlh = (struct nlmsghdr *)dskb->data;
- 	nla = genlmsg_data(nlmsg_data(nlh));
- 	msg = nla_data(nla);
- 	for (i = 0; i < msg->entries; i++) {
-@@ -157,7 +191,7 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 	/*
- 	 * We need to create a new entry
- 	 */
--	__nla_reserve_nohdr(data->skb, sizeof(struct net_dm_drop_point));
-+	__nla_reserve_nohdr(dskb, sizeof(struct net_dm_drop_point));
- 	nla->nla_len += NLA_ALIGN(sizeof(struct net_dm_drop_point));
- 	memcpy(msg->points[msg->entries].pc, &location, sizeof(void *));
- 	msg->points[msg->entries].count = 1;
-@@ -169,6 +203,8 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 	}
- 
- out:
-+	rcu_read_unlock();
-+	put_cpu_var(dm_cpu_data);
- 	return;
- }
- 
-@@ -374,6 +410,8 @@ static int __init init_net_drop_monitor(void)
- 		data->send_timer.function = sched_send_work;
- 	}
- 
-+	initialized = 1;
-+
- 	goto out;
- 
- out_unreg:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0065-drop_monitor-prevent-init-path-from-scheduling-on-th.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0065-drop_monitor-prevent-init-path-from-scheduling-on-th.patch
deleted file mode 100644
index 08c7a7c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0065-drop_monitor-prevent-init-path-from-scheduling-on-th.patch
+++ /dev/null
@@ -1,93 +0,0 @@
-From e056f9e8a25db637798455e701c2a42f9cdeb5b8 Mon Sep 17 00:00:00 2001
-From: Neil Horman <nhorman at tuxdriver.com>
-Date: Tue, 1 May 2012 08:18:02 +0000
-Subject: [PATCH 65/70] drop_monitor: prevent init path from scheduling on the
- wrong cpu
-
-commit 4fdcfa12843bca38d0c9deff70c8720e4e8f515f upstream.
-
-I just noticed after some recent updates, that the init path for the drop
-monitor protocol has a minor error.  drop monitor maintains a per cpu structure,
-that gets initalized from a single cpu.  Normally this is fine, as the protocol
-isn't in use yet, but I recently made a change that causes a failed skb
-allocation to reschedule itself .  Given the current code, the implication is
-that this workqueue reschedule will take place on the wrong cpu.  If drop
-monitor is used early during the boot process, its possible that two cpus will
-access a single per-cpu structure in parallel, possibly leading to data
-corruption.
-
-This patch fixes the situation, by storing the cpu number that a given instance
-of this per-cpu data should be accessed from.  In the case of a need for a
-reschedule, the cpu stored in the struct is assigned the rescheule, rather than
-the currently executing cpu
-
-Tested successfully by myself.
-
-Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
-CC: David Miller <davem at davemloft.net>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/drop_monitor.c |   12 +++++++-----
- 1 files changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
-index d75cbfc..e836592 100644
---- a/net/core/drop_monitor.c
-+++ b/net/core/drop_monitor.c
-@@ -49,6 +49,7 @@ struct per_cpu_dm_data {
- 	struct sk_buff __rcu *skb;
- 	atomic_t dm_hit_count;
- 	struct timer_list send_timer;
-+	int cpu;
- };
- 
- struct dm_hw_stat_delta {
-@@ -73,7 +74,6 @@ static int dm_hit_limit = 64;
- static int dm_delay = 1;
- static unsigned long dm_hw_check_delta = 2*HZ;
- static LIST_HEAD(hw_stats_list);
--static int initialized = 0;
- 
- static void reset_per_cpu_data(struct per_cpu_dm_data *data)
- {
-@@ -96,8 +96,8 @@ static void reset_per_cpu_data(struct per_cpu_dm_data *data)
- 				  sizeof(struct net_dm_alert_msg));
- 		msg = nla_data(nla);
- 		memset(msg, 0, al);
--	} else if (initialized)
--		schedule_work_on(smp_processor_id(), &data->dm_alert_work);
-+	} else
-+		schedule_work_on(data->cpu, &data->dm_alert_work);
- 
- 	/*
- 	 * Don't need to lock this, since we are guaranteed to only
-@@ -121,6 +121,8 @@ static void send_dm_alert(struct work_struct *unused)
- 	struct sk_buff *skb;
- 	struct per_cpu_dm_data *data = &get_cpu_var(dm_cpu_data);
- 
-+	WARN_ON_ONCE(data->cpu != smp_processor_id());
-+
- 	/*
- 	 * Grab the skb we're about to send
- 	 */
-@@ -403,14 +405,14 @@ static int __init init_net_drop_monitor(void)
- 
- 	for_each_present_cpu(cpu) {
- 		data = &per_cpu(dm_cpu_data, cpu);
--		reset_per_cpu_data(data);
-+		data->cpu = cpu;
- 		INIT_WORK(&data->dm_alert_work, send_dm_alert);
- 		init_timer(&data->send_timer);
- 		data->send_timer.data = cpu;
- 		data->send_timer.function = sched_send_work;
-+		reset_per_cpu_data(data);
- 	}
- 
--	initialized = 1;
- 
- 	goto out;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0066-drop_monitor-dont-sleep-in-atomic-context.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0066-drop_monitor-dont-sleep-in-atomic-context.patch
deleted file mode 100644
index dff38d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0066-drop_monitor-dont-sleep-in-atomic-context.patch
+++ /dev/null
@@ -1,244 +0,0 @@
-From af61f8503b1c3a3d2e034a79abc0368ab3fd2aa4 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <edumazet at google.com>
-Date: Mon, 4 Jun 2012 00:18:19 +0000
-Subject: [PATCH 66/70] drop_monitor: dont sleep in atomic context
-
-commit bec4596b4e6770c7037f21f6bd27567b152dc0d6 upstream.
-
-drop_monitor calls several sleeping functions while in atomic context.
-
- BUG: sleeping function called from invalid context at mm/slub.c:943
- in_atomic(): 1, irqs_disabled(): 0, pid: 2103, name: kworker/0:2
- Pid: 2103, comm: kworker/0:2 Not tainted 3.5.0-rc1+ #55
- Call Trace:
-  [<ffffffff810697ca>] __might_sleep+0xca/0xf0
-  [<ffffffff811345a3>] kmem_cache_alloc_node+0x1b3/0x1c0
-  [<ffffffff8105578c>] ? queue_delayed_work_on+0x11c/0x130
-  [<ffffffff815343fb>] __alloc_skb+0x4b/0x230
-  [<ffffffffa00b0360>] ? reset_per_cpu_data+0x160/0x160 [drop_monitor]
-  [<ffffffffa00b022f>] reset_per_cpu_data+0x2f/0x160 [drop_monitor]
-  [<ffffffffa00b03ab>] send_dm_alert+0x4b/0xb0 [drop_monitor]
-  [<ffffffff810568e0>] process_one_work+0x130/0x4c0
-  [<ffffffff81058249>] worker_thread+0x159/0x360
-  [<ffffffff810580f0>] ? manage_workers.isra.27+0x240/0x240
-  [<ffffffff8105d403>] kthread+0x93/0xa0
-  [<ffffffff816be6d4>] kernel_thread_helper+0x4/0x10
-  [<ffffffff8105d370>] ? kthread_freezable_should_stop+0x80/0x80
-  [<ffffffff816be6d0>] ? gs_change+0xb/0xb
-
-Rework the logic to call the sleeping functions in right context.
-
-Use standard timer/workqueue api to let system chose any cpu to perform
-the allocation and netlink send.
-
-Also avoid a loop if reset_per_cpu_data() cannot allocate memory :
-use mod_timer() to wait 1/10 second before next try.
-
-Signed-off-by: Eric Dumazet <edumazet at google.com>
-Cc: Neil Horman <nhorman at tuxdriver.com>
-Reviewed-by: Neil Horman <nhorman at tuxdriver.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/drop_monitor.c |  101 +++++++++++++++-------------------------------
- 1 files changed, 33 insertions(+), 68 deletions(-)
-
-diff --git a/net/core/drop_monitor.c b/net/core/drop_monitor.c
-index e836592..b856f87 100644
---- a/net/core/drop_monitor.c
-+++ b/net/core/drop_monitor.c
-@@ -33,9 +33,6 @@
- #define TRACE_ON 1
- #define TRACE_OFF 0
- 
--static void send_dm_alert(struct work_struct *unused);
--
--
- /*
-  * Globals, our netlink socket pointer
-  * and the work handle that will send up
-@@ -45,11 +42,10 @@ static int trace_state = TRACE_OFF;
- static DEFINE_MUTEX(trace_state_mutex);
- 
- struct per_cpu_dm_data {
--	struct work_struct dm_alert_work;
--	struct sk_buff __rcu *skb;
--	atomic_t dm_hit_count;
--	struct timer_list send_timer;
--	int cpu;
-+	spinlock_t		lock;
-+	struct sk_buff		*skb;
-+	struct work_struct	dm_alert_work;
-+	struct timer_list	send_timer;
- };
- 
- struct dm_hw_stat_delta {
-@@ -75,13 +71,13 @@ static int dm_delay = 1;
- static unsigned long dm_hw_check_delta = 2*HZ;
- static LIST_HEAD(hw_stats_list);
- 
--static void reset_per_cpu_data(struct per_cpu_dm_data *data)
-+static struct sk_buff *reset_per_cpu_data(struct per_cpu_dm_data *data)
- {
- 	size_t al;
- 	struct net_dm_alert_msg *msg;
- 	struct nlattr *nla;
- 	struct sk_buff *skb;
--	struct sk_buff *oskb = rcu_dereference_protected(data->skb, 1);
-+	unsigned long flags;
- 
- 	al = sizeof(struct net_dm_alert_msg);
- 	al += dm_hit_limit * sizeof(struct net_dm_drop_point);
-@@ -96,65 +92,40 @@ static void reset_per_cpu_data(struct per_cpu_dm_data *data)
- 				  sizeof(struct net_dm_alert_msg));
- 		msg = nla_data(nla);
- 		memset(msg, 0, al);
--	} else
--		schedule_work_on(data->cpu, &data->dm_alert_work);
--
--	/*
--	 * Don't need to lock this, since we are guaranteed to only
--	 * run this on a single cpu at a time.
--	 * Note also that we only update data->skb if the old and new skb
--	 * pointers don't match.  This ensures that we don't continually call
--	 * synchornize_rcu if we repeatedly fail to alloc a new netlink message.
--	 */
--	if (skb != oskb) {
--		rcu_assign_pointer(data->skb, skb);
--
--		synchronize_rcu();
--
--		atomic_set(&data->dm_hit_count, dm_hit_limit);
-+	} else {
-+		mod_timer(&data->send_timer, jiffies + HZ / 10);
- 	}
- 
-+	spin_lock_irqsave(&data->lock, flags);
-+	swap(data->skb, skb);
-+	spin_unlock_irqrestore(&data->lock, flags);
-+
-+	return skb;
- }
- 
--static void send_dm_alert(struct work_struct *unused)
-+static void send_dm_alert(struct work_struct *work)
- {
- 	struct sk_buff *skb;
--	struct per_cpu_dm_data *data = &get_cpu_var(dm_cpu_data);
-+	struct per_cpu_dm_data *data;
- 
--	WARN_ON_ONCE(data->cpu != smp_processor_id());
-+	data = container_of(work, struct per_cpu_dm_data, dm_alert_work);
- 
--	/*
--	 * Grab the skb we're about to send
--	 */
--	skb = rcu_dereference_protected(data->skb, 1);
-+	skb = reset_per_cpu_data(data);
- 
--	/*
--	 * Replace it with a new one
--	 */
--	reset_per_cpu_data(data);
--
--	/*
--	 * Ship it!
--	 */
- 	if (skb)
- 		genlmsg_multicast(skb, 0, NET_DM_GRP_ALERT, GFP_KERNEL);
--
--	put_cpu_var(dm_cpu_data);
- }
- 
- /*
-  * This is the timer function to delay the sending of an alert
-  * in the event that more drops will arrive during the
-- * hysteresis period.  Note that it operates under the timer interrupt
-- * so we don't need to disable preemption here
-+ * hysteresis period.
-  */
--static void sched_send_work(unsigned long unused)
-+static void sched_send_work(unsigned long _data)
- {
--	struct per_cpu_dm_data *data =  &get_cpu_var(dm_cpu_data);
-+	struct per_cpu_dm_data *data = (struct per_cpu_dm_data *)_data;
- 
--	schedule_work_on(smp_processor_id(), &data->dm_alert_work);
--
--	put_cpu_var(dm_cpu_data);
-+	schedule_work(&data->dm_alert_work);
- }
- 
- static void trace_drop_common(struct sk_buff *skb, void *location)
-@@ -164,22 +135,17 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 	struct nlattr *nla;
- 	int i;
- 	struct sk_buff *dskb;
--	struct per_cpu_dm_data *data = &get_cpu_var(dm_cpu_data);
--
-+	struct per_cpu_dm_data *data;
-+	unsigned long flags;
- 
--	rcu_read_lock();
--	dskb = rcu_dereference(data->skb);
-+	local_irq_save(flags);
-+	data = &__get_cpu_var(dm_cpu_data);
-+	spin_lock(&data->lock);
-+	dskb = data->skb;
- 
- 	if (!dskb)
- 		goto out;
- 
--	if (!atomic_add_unless(&data->dm_hit_count, -1, 0)) {
--		/*
--		 * we're already at zero, discard this hit
--		 */
--		goto out;
--	}
--
- 	nlh = (struct nlmsghdr *)dskb->data;
- 	nla = genlmsg_data(nlmsg_data(nlh));
- 	msg = nla_data(nla);
-@@ -189,7 +155,8 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 			goto out;
- 		}
- 	}
--
-+	if (msg->entries == dm_hit_limit)
-+		goto out;
- 	/*
- 	 * We need to create a new entry
- 	 */
-@@ -201,13 +168,11 @@ static void trace_drop_common(struct sk_buff *skb, void *location)
- 
- 	if (!timer_pending(&data->send_timer)) {
- 		data->send_timer.expires = jiffies + dm_delay * HZ;
--		add_timer_on(&data->send_timer, smp_processor_id());
-+		add_timer(&data->send_timer);
- 	}
- 
- out:
--	rcu_read_unlock();
--	put_cpu_var(dm_cpu_data);
--	return;
-+	spin_unlock_irqrestore(&data->lock, flags);
- }
- 
- static void trace_kfree_skb_hit(void *ignore, struct sk_buff *skb, void *location)
-@@ -405,11 +370,11 @@ static int __init init_net_drop_monitor(void)
- 
- 	for_each_present_cpu(cpu) {
- 		data = &per_cpu(dm_cpu_data, cpu);
--		data->cpu = cpu;
- 		INIT_WORK(&data->dm_alert_work, send_dm_alert);
- 		init_timer(&data->send_timer);
--		data->send_timer.data = cpu;
-+		data->send_timer.data = (unsigned long)data;
- 		data->send_timer.function = sched_send_work;
-+		spin_lock_init(&data->lock);
- 		reset_per_cpu_data(data);
- 	}
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0067-pch_uart-Fix-missing-break-for-16-byte-fifo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0067-pch_uart-Fix-missing-break-for-16-byte-fifo.patch
deleted file mode 100644
index 54f82b5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0067-pch_uart-Fix-missing-break-for-16-byte-fifo.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 3cae39d521ecb047ef935280fff8eac467b2b8ce Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Mon, 2 Jul 2012 18:51:38 +0100
-Subject: [PATCH 67/70] pch_uart: Fix missing break for 16 byte fifo
-
-commit 9bc03743fff0770dc5a5324ba92e67cc377f16ca upstream.
-
-Otherwise we fall back to the wrong value.
-
-Reported-by: <dcb314 at hotmail.com>
-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=44091
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/pch_uart.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
-index a4b192d..5ad5040 100644
---- a/drivers/tty/serial/pch_uart.c
-+++ b/drivers/tty/serial/pch_uart.c
-@@ -1163,6 +1163,7 @@ static int pch_uart_startup(struct uart_port *port)
- 		break;
- 	case 16:
- 		fifo_size = PCH_UART_HAL_FIFO16;
-+		break;
- 	case 1:
- 	default:
- 		fifo_size = PCH_UART_HAL_FIFO_DIS;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0068-pch_uart-Fix-rx-error-interrupt-setting-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0068-pch_uart-Fix-rx-error-interrupt-setting-issue.patch
deleted file mode 100644
index 010bf8c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0068-pch_uart-Fix-rx-error-interrupt-setting-issue.patch
+++ /dev/null
@@ -1,85 +0,0 @@
-From 5e59a1ea39747dfffd111ac418cb27de4047363a Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Fri, 6 Jul 2012 17:19:42 +0900
-Subject: [PATCH 68/70] pch_uart: Fix rx error interrupt setting issue
-
-commit 9539dfb7ac1c84522fe1f79bb7dac2990f3de44a upstream.
-
-Rx Error interrupt(E.G. parity error) is not enabled.
-So, when parity error occurs, error interrupt is not occurred.
-As a result, the received data is not dropped.
-
-This patch adds enable/disable rx error interrupt code.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Acked-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-[Backported by Tomoya MORINGA: adjusted context]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/pch_uart.c |   18 ++++++++++++------
- 1 files changed, 12 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
-index 5ad5040..82f5760 100644
---- a/drivers/tty/serial/pch_uart.c
-+++ b/drivers/tty/serial/pch_uart.c
-@@ -660,7 +660,8 @@ static void pch_dma_rx_complete(void *arg)
- 		tty_flip_buffer_push(tty);
- 	tty_kref_put(tty);
- 	async_tx_ack(priv->desc_rx);
--	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT);
-+	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT |
-+					    PCH_UART_HAL_RX_ERR_INT);
- }
- 
- static void pch_dma_tx_complete(void *arg)
-@@ -715,7 +716,8 @@ static int handle_rx_to(struct eg20t_port *priv)
- 	int rx_size;
- 	int ret;
- 	if (!priv->start_rx) {
--		pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT);
-+		pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT |
-+						     PCH_UART_HAL_RX_ERR_INT);
- 		return 0;
- 	}
- 	buf = &priv->rxbuf;
-@@ -977,11 +979,13 @@ static irqreturn_t pch_uart_interrupt(int irq, void *dev_id)
- 		case PCH_UART_IID_RDR:	/* Received Data Ready */
- 			if (priv->use_dma) {
- 				pch_uart_hal_disable_interrupt(priv,
--							PCH_UART_HAL_RX_INT);
-+						PCH_UART_HAL_RX_INT |
-+						PCH_UART_HAL_RX_ERR_INT);
- 				ret = dma_handle_rx(priv);
- 				if (!ret)
- 					pch_uart_hal_enable_interrupt(priv,
--							PCH_UART_HAL_RX_INT);
-+						PCH_UART_HAL_RX_INT |
-+						PCH_UART_HAL_RX_ERR_INT);
- 			} else {
- 				ret = handle_rx(priv);
- 			}
-@@ -1107,7 +1111,8 @@ static void pch_uart_stop_rx(struct uart_port *port)
- 	struct eg20t_port *priv;
- 	priv = container_of(port, struct eg20t_port, port);
- 	priv->start_rx = 0;
--	pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT);
-+	pch_uart_hal_disable_interrupt(priv, PCH_UART_HAL_RX_INT |
-+					     PCH_UART_HAL_RX_ERR_INT);
- 	priv->int_dis_flag = 1;
- }
- 
-@@ -1201,7 +1206,8 @@ static int pch_uart_startup(struct uart_port *port)
- 		pch_request_dma(port);
- 
- 	priv->start_rx = 1;
--	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT);
-+	pch_uart_hal_enable_interrupt(priv, PCH_UART_HAL_RX_INT |
-+					    PCH_UART_HAL_RX_ERR_INT);
- 	uart_update_timeout(port, CS8, default_baud);
- 
- 	return 0;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0069-pch_uart-Fix-parity-setting-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0069-pch_uart-Fix-parity-setting-issue.patch
deleted file mode 100644
index 345038c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0069-pch_uart-Fix-parity-setting-issue.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 60811100a88284132fb0d48f99305e87f8c74d0f Mon Sep 17 00:00:00 2001
-From: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Date: Fri, 6 Jul 2012 17:19:43 +0900
-Subject: [PATCH 69/70] pch_uart: Fix parity setting issue
-
-commit 38bd2a1ac736901d1cf4971c78ef952ba92ef78b upstream.
-
-Parity Setting value is reverse.
-E.G. In case of setting ODD parity, EVEN value is set.
-This patch inverts "if" condition.
-
-Signed-off-by: Tomoya MORINAGA <tomoya.rohm at gmail.com>
-Acked-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/tty/serial/pch_uart.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/tty/serial/pch_uart.c b/drivers/tty/serial/pch_uart.c
-index 82f5760..08b92a6 100644
---- a/drivers/tty/serial/pch_uart.c
-+++ b/drivers/tty/serial/pch_uart.c
-@@ -1265,7 +1265,7 @@ static void pch_uart_set_termios(struct uart_port *port,
- 		stb = PCH_UART_HAL_STB1;
- 
- 	if (termios->c_cflag & PARENB) {
--		if (!(termios->c_cflag & PARODD))
-+		if (termios->c_cflag & PARODD)
- 			parity = PCH_UART_HAL_PARITY_ODD;
- 		else
- 			parity = PCH_UART_HAL_PARITY_EVEN;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0070-Linux-3.2.27.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0070-Linux-3.2.27.patch
deleted file mode 100644
index 6d3fce0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.27/0070-Linux-3.2.27.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 1ff662dfc66fa1db58460d0cf92c1900095f7f0c Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Fri, 10 Aug 2012 00:25:22 +0100
-Subject: [PATCH 70/70] Linux 3.2.27
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index fa5acc83..bdf851f 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 26
-+SUBLEVEL = 27
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0001-bnx2-Fix-bug-in-bnx2_free_tx_skbs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0001-bnx2-Fix-bug-in-bnx2_free_tx_skbs.patch
deleted file mode 100644
index 83af235..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0001-bnx2-Fix-bug-in-bnx2_free_tx_skbs.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From ac01c6d147d4570eba977bd3d0632732231bcf8b Mon Sep 17 00:00:00 2001
-From: Michael Chan <mchan at broadcom.com>
-Date: Tue, 10 Jul 2012 10:04:40 +0000
-Subject: [PATCH 01/38] bnx2: Fix bug in bnx2_free_tx_skbs().
-
-[ Upstream commit c1f5163de417dab01fa9daaf09a74bbb19303f3c ]
-
-In rare cases, bnx2x_free_tx_skbs() can unmap the wrong DMA address
-when it gets to the last entry of the tx ring.  We were not using
-the proper macro to skip the last entry when advancing the tx index.
-
-Reported-by: Zongyun Lai <zlai at vmware.com>
-Reviewed-by: Jeffrey Huang <huangjw at broadcom.com>
-Signed-off-by: Michael Chan <mchan at broadcom.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/broadcom/bnx2.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/broadcom/bnx2.c b/drivers/net/ethernet/broadcom/bnx2.c
-index 965c723..721adfd 100644
---- a/drivers/net/ethernet/broadcom/bnx2.c
-+++ b/drivers/net/ethernet/broadcom/bnx2.c
-@@ -5378,7 +5378,7 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
- 			int k, last;
- 
- 			if (skb == NULL) {
--				j++;
-+				j = NEXT_TX_BD(j);
- 				continue;
- 			}
- 
-@@ -5390,8 +5390,8 @@ bnx2_free_tx_skbs(struct bnx2 *bp)
- 			tx_buf->skb = NULL;
- 
- 			last = tx_buf->nr_frags;
--			j++;
--			for (k = 0; k < last; k++, j++) {
-+			j = NEXT_TX_BD(j);
-+			for (k = 0; k < last; k++, j = NEXT_TX_BD(j)) {
- 				tx_buf = &txr->tx_buf_ring[TX_RING_IDX(j)];
- 				dma_unmap_page(&bp->pdev->dev,
- 					dma_unmap_addr(tx_buf, mapping),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0002-sch_sfb-Fix-missing-NULL-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0002-sch_sfb-Fix-missing-NULL-check.patch
deleted file mode 100644
index 480f1b8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0002-sch_sfb-Fix-missing-NULL-check.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 9404ab928af493a8793024335d18ad8151f114c3 Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Thu, 12 Jul 2012 03:39:11 +0000
-Subject: [PATCH 02/38] sch_sfb: Fix missing NULL check
-
-[ Upstream commit 7ac2908e4b2edaec60e9090ddb4d9ceb76c05e7d ]
-
-Resolves-bug: https://bugzilla.kernel.org/show_bug.cgi?id=44461
-
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Acked-by: Eric Dumazet <edumazet at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sched/sch_sfb.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/net/sched/sch_sfb.c b/net/sched/sch_sfb.c
-index 17859ea..351a69b 100644
---- a/net/sched/sch_sfb.c
-+++ b/net/sched/sch_sfb.c
-@@ -559,6 +559,8 @@ static int sfb_dump(struct Qdisc *sch, struct sk_buff *skb)
- 
- 	sch->qstats.backlog = q->qdisc->qstats.backlog;
- 	opts = nla_nest_start(skb, TCA_OPTIONS);
-+	if (opts == NULL)
-+		goto nla_put_failure;
- 	NLA_PUT(skb, TCA_SFB_PARMS, sizeof(opt), &opt);
- 	return nla_nest_end(skb, opts);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0003-sctp-Fix-list-corruption-resulting-from-freeing-an-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0003-sctp-Fix-list-corruption-resulting-from-freeing-an-a.patch
deleted file mode 100644
index f1291c0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0003-sctp-Fix-list-corruption-resulting-from-freeing-an-a.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-From e7ccb3dde4457e701c4ec1a77e7728e180c57526 Mon Sep 17 00:00:00 2001
-From: Neil Horman <nhorman at tuxdriver.com>
-Date: Mon, 16 Jul 2012 09:13:51 +0000
-Subject: [PATCH 03/38] sctp: Fix list corruption resulting from freeing an
- association on a list
-
-[ Upstream commit 2eebc1e188e9e45886ee00662519849339884d6d ]
-
-A few days ago Dave Jones reported this oops:
-
-[22766.294255] general protection fault: 0000 [#1] PREEMPT SMP
-[22766.295376] CPU 0
-[22766.295384] Modules linked in:
-[22766.387137]  ffffffffa169f292 6b6b6b6b6b6b6b6b ffff880147c03a90
-ffff880147c03a74
-[22766.387135] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 00000000000
-[22766.387136] Process trinity-watchdo (pid: 10896, threadinfo ffff88013e7d2000,
-[22766.387137] Stack:
-[22766.387140]  ffff880147c03a10
-[22766.387140]  ffffffffa169f2b6
-[22766.387140]  ffff88013ed95728
-[22766.387143]  0000000000000002
-[22766.387143]  0000000000000000
-[22766.387143]  ffff880003fad062
-[22766.387144]  ffff88013c120000
-[22766.387144]
-[22766.387145] Call Trace:
-[22766.387145]  <IRQ>
-[22766.387150]  [<ffffffffa169f292>] ? __sctp_lookup_association+0x62/0xd0
-[sctp]
-[22766.387154]  [<ffffffffa169f2b6>] __sctp_lookup_association+0x86/0xd0 [sctp]
-[22766.387157]  [<ffffffffa169f597>] sctp_rcv+0x207/0xbb0 [sctp]
-[22766.387161]  [<ffffffff810d4da8>] ? trace_hardirqs_off_caller+0x28/0xd0
-[22766.387163]  [<ffffffff815827e3>] ? nf_hook_slow+0x133/0x210
-[22766.387166]  [<ffffffff815902fc>] ? ip_local_deliver_finish+0x4c/0x4c0
-[22766.387168]  [<ffffffff8159043d>] ip_local_deliver_finish+0x18d/0x4c0
-[22766.387169]  [<ffffffff815902fc>] ? ip_local_deliver_finish+0x4c/0x4c0
-[22766.387171]  [<ffffffff81590a07>] ip_local_deliver+0x47/0x80
-[22766.387172]  [<ffffffff8158fd80>] ip_rcv_finish+0x150/0x680
-[22766.387174]  [<ffffffff81590c54>] ip_rcv+0x214/0x320
-[22766.387176]  [<ffffffff81558c07>] __netif_receive_skb+0x7b7/0x910
-[22766.387178]  [<ffffffff8155856c>] ? __netif_receive_skb+0x11c/0x910
-[22766.387180]  [<ffffffff810d423e>] ? put_lock_stats.isra.25+0xe/0x40
-[22766.387182]  [<ffffffff81558f83>] netif_receive_skb+0x23/0x1f0
-[22766.387183]  [<ffffffff815596a9>] ? dev_gro_receive+0x139/0x440
-[22766.387185]  [<ffffffff81559280>] napi_skb_finish+0x70/0xa0
-[22766.387187]  [<ffffffff81559cb5>] napi_gro_receive+0xf5/0x130
-[22766.387218]  [<ffffffffa01c4679>] e1000_receive_skb+0x59/0x70 [e1000e]
-[22766.387242]  [<ffffffffa01c5aab>] e1000_clean_rx_irq+0x28b/0x460 [e1000e]
-[22766.387266]  [<ffffffffa01c9c18>] e1000e_poll+0x78/0x430 [e1000e]
-[22766.387268]  [<ffffffff81559fea>] net_rx_action+0x1aa/0x3d0
-[22766.387270]  [<ffffffff810a495f>] ? account_system_vtime+0x10f/0x130
-[22766.387273]  [<ffffffff810734d0>] __do_softirq+0xe0/0x420
-[22766.387275]  [<ffffffff8169826c>] call_softirq+0x1c/0x30
-[22766.387278]  [<ffffffff8101db15>] do_softirq+0xd5/0x110
-[22766.387279]  [<ffffffff81073bc5>] irq_exit+0xd5/0xe0
-[22766.387281]  [<ffffffff81698b03>] do_IRQ+0x63/0xd0
-[22766.387283]  [<ffffffff8168ee2f>] common_interrupt+0x6f/0x6f
-[22766.387283]  <EOI>
-[22766.387284]
-[22766.387285]  [<ffffffff8168eed9>] ? retint_swapgs+0x13/0x1b
-[22766.387285] Code: c0 90 5d c3 66 0f 1f 44 00 00 4c 89 c8 5d c3 0f 1f 00 55 48
-89 e5 48 83
-ec 20 48 89 5d e8 4c 89 65 f0 4c 89 6d f8 66 66 66 66 90 <0f> b7 87 98 00 00 00
-48 89 fb
-49 89 f5 66 c1 c0 08 66 39 46 02
-[22766.387307]
-[22766.387307] RIP
-[22766.387311]  [<ffffffffa168a2c9>] sctp_assoc_is_match+0x19/0x90 [sctp]
-[22766.387311]  RSP <ffff880147c039b0>
-[22766.387142]  ffffffffa16ab120
-[22766.599537] ---[ end trace 3f6dae82e37b17f5 ]---
-[22766.601221] Kernel panic - not syncing: Fatal exception in interrupt
-
-It appears from his analysis and some staring at the code that this is likely
-occuring because an association is getting freed while still on the
-sctp_assoc_hashtable.  As a result, we get a gpf when traversing the hashtable
-while a freed node corrupts part of the list.
-
-Nominally I would think that an mibalanced refcount was responsible for this,
-but I can't seem to find any obvious imbalance.  What I did note however was
-that the two places where we create an association using
-sctp_primitive_ASSOCIATE (__sctp_connect and sctp_sendmsg), have failure paths
-which free a newly created association after calling sctp_primitive_ASSOCIATE.
-sctp_primitive_ASSOCIATE brings us into the sctp_sf_do_prm_asoc path, which
-issues a SCTP_CMD_NEW_ASOC side effect, which in turn adds a new association to
-the aforementioned hash table.  the sctp command interpreter that process side
-effects has not way to unwind previously processed commands, so freeing the
-association from the __sctp_connect or sctp_sendmsg error path would lead to a
-freed association remaining on this hash table.
-
-I've fixed this but modifying sctp_[un]hash_established to use hlist_del_init,
-which allows us to proerly use hlist_unhashed to check if the node is on a
-hashlist safely during a delete.  That in turn alows us to safely call
-sctp_unhash_established in the __sctp_connect and sctp_sendmsg error paths
-before freeing them, regardles of what the associations state is on the hash
-list.
-
-I noted, while I was doing this, that the __sctp_unhash_endpoint was using
-hlist_unhsashed in a simmilar fashion, but never nullified any removed nodes
-pointers to make that function work properly, so I fixed that up in a simmilar
-fashion.
-
-I attempted to test this using a virtual guest running the SCTP_RR test from
-netperf in a loop while running the trinity fuzzer, both in a loop.  I wasn't
-able to recreate the problem prior to this fix, nor was I able to trigger the
-failure after (neither of which I suppose is suprising).  Given the trace above
-however, I think its likely that this is what we hit.
-
-Signed-off-by: Neil Horman <nhorman at tuxdriver.com>
-Reported-by: davej at redhat.com
-CC: davej at redhat.com
-CC: "David S. Miller" <davem at davemloft.net>
-CC: Vlad Yasevich <vyasevich at gmail.com>
-CC: Sridhar Samudrala <sri at us.ibm.com>
-CC: linux-sctp at vger.kernel.org
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/sctp/input.c  |    7 ++-----
- net/sctp/socket.c |   12 ++++++++++--
- 2 files changed, 12 insertions(+), 7 deletions(-)
-
-diff --git a/net/sctp/input.c b/net/sctp/input.c
-index b7692aa..0fc18c7 100644
---- a/net/sctp/input.c
-+++ b/net/sctp/input.c
-@@ -736,15 +736,12 @@ static void __sctp_unhash_endpoint(struct sctp_endpoint *ep)
- 
- 	epb = &ep->base;
- 
--	if (hlist_unhashed(&epb->node))
--		return;
--
- 	epb->hashent = sctp_ep_hashfn(epb->bind_addr.port);
- 
- 	head = &sctp_ep_hashtable[epb->hashent];
- 
- 	sctp_write_lock(&head->lock);
--	__hlist_del(&epb->node);
-+	hlist_del_init(&epb->node);
- 	sctp_write_unlock(&head->lock);
- }
- 
-@@ -825,7 +822,7 @@ static void __sctp_unhash_established(struct sctp_association *asoc)
- 	head = &sctp_assoc_hashtable[epb->hashent];
- 
- 	sctp_write_lock(&head->lock);
--	__hlist_del(&epb->node);
-+	hlist_del_init(&epb->node);
- 	sctp_write_unlock(&head->lock);
- }
- 
-diff --git a/net/sctp/socket.c b/net/sctp/socket.c
-index 0075554..8e49d76 100644
---- a/net/sctp/socket.c
-+++ b/net/sctp/socket.c
-@@ -1231,8 +1231,14 @@ out_free:
- 	SCTP_DEBUG_PRINTK("About to exit __sctp_connect() free asoc: %p"
- 			  " kaddrs: %p err: %d\n",
- 			  asoc, kaddrs, err);
--	if (asoc)
-+	if (asoc) {
-+		/* sctp_primitive_ASSOCIATE may have added this association
-+		 * To the hash table, try to unhash it, just in case, its a noop
-+		 * if it wasn't hashed so we're safe
-+		 */
-+		sctp_unhash_established(asoc);
- 		sctp_association_free(asoc);
-+	}
- 	return err;
- }
- 
-@@ -1942,8 +1948,10 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk,
- 	goto out_unlock;
- 
- out_free:
--	if (new_asoc)
-+	if (new_asoc) {
-+		sctp_unhash_established(asoc);
- 		sctp_association_free(asoc);
-+	}
- out_unlock:
- 	sctp_release_sock(sk);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0004-caif-Fix-access-to-freed-pernet-memory.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0004-caif-Fix-access-to-freed-pernet-memory.patch
deleted file mode 100644
index d974620..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0004-caif-Fix-access-to-freed-pernet-memory.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From b86789c525a7fc1e9cae59eb21bc0138f89ba8c3 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Sjur=20Br=C3=A6ndeland?= <sjur.brandeland at stericsson.com>
-Date: Sun, 15 Jul 2012 10:10:14 +0000
-Subject: [PATCH 04/38] caif: Fix access to freed pernet memory
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit 96f80d123eff05c3cd4701463786b87952a6c3ac ]
-
-unregister_netdevice_notifier() must be called before
-unregister_pernet_subsys() to avoid accessing already freed
-pernet memory. This fixes the following oops when doing rmmod:
-
-Call Trace:
- [<ffffffffa0f802bd>] caif_device_notify+0x4d/0x5a0 [caif]
- [<ffffffff81552ba9>] unregister_netdevice_notifier+0xb9/0x100
- [<ffffffffa0f86dcc>] caif_device_exit+0x1c/0x250 [caif]
- [<ffffffff810e7734>] sys_delete_module+0x1a4/0x300
- [<ffffffff810da82d>] ? trace_hardirqs_on_caller+0x15d/0x1e0
- [<ffffffff813517de>] ? trace_hardirqs_on_thunk+0x3a/0x3
- [<ffffffff81696bad>] system_call_fastpath+0x1a/0x1f
-
-RIP
- [<ffffffffa0f7f561>] caif_get+0x51/0xb0 [caif]
-
-Signed-off-by: Sjur Brændeland <sjur.brandeland at stericsson.com>
-Acked-by: "Eric W. Biederman" <ebiederm at xmission.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/caif/caif_dev.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c
-index 68223e4..4e9115d 100644
---- a/net/caif/caif_dev.c
-+++ b/net/caif/caif_dev.c
-@@ -428,9 +428,9 @@ static int __init caif_device_init(void)
- 
- static void __exit caif_device_exit(void)
- {
--	unregister_pernet_subsys(&caif_net_ops);
- 	unregister_netdevice_notifier(&caif_device_notifier);
- 	dev_remove_pack(&caif_packet_type);
-+	unregister_pernet_subsys(&caif_net_ops);
- }
- 
- module_init(caif_device_init);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0005-cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0005-cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch
deleted file mode 100644
index ee4d3cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0005-cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 6037d0b798b22b0b0be2a95c65e629b5532884a2 Mon Sep 17 00:00:00 2001
-From: Paul Moore <pmoore at redhat.com>
-Date: Tue, 17 Jul 2012 11:07:47 +0000
-Subject: [PATCH 05/38] cipso: don't follow a NULL pointer when setsockopt()
- is called
-
-[ Upstream commit 89d7ae34cdda4195809a5a987f697a517a2a3177 ]
-
-As reported by Alan Cox, and verified by Lin Ming, when a user
-attempts to add a CIPSO option to a socket using the CIPSO_V4_TAG_LOCAL
-tag the kernel dies a terrible death when it attempts to follow a NULL
-pointer (the skb argument to cipso_v4_validate() is NULL when called via
-the setsockopt() syscall).
-
-This patch fixes this by first checking to ensure that the skb is
-non-NULL before using it to find the incoming network interface.  In
-the unlikely case where the skb is NULL and the user attempts to add
-a CIPSO option with the _TAG_LOCAL tag we return an error as this is
-not something we want to allow.
-
-A simple reproducer, kindly supplied by Lin Ming, although you must
-have the CIPSO DOI #3 configure on the system first or you will be
-caught early in cipso_v4_validate():
-
-	#include <sys/types.h>
-	#include <sys/socket.h>
-	#include <linux/ip.h>
-	#include <linux/in.h>
-	#include <string.h>
-
-	struct local_tag {
-		char type;
-		char length;
-		char info[4];
-	};
-
-	struct cipso {
-		char type;
-		char length;
-		char doi[4];
-		struct local_tag local;
-	};
-
-	int main(int argc, char **argv)
-	{
-		int sockfd;
-		struct cipso cipso = {
-			.type = IPOPT_CIPSO,
-			.length = sizeof(struct cipso),
-			.local = {
-				.type = 128,
-				.length = sizeof(struct local_tag),
-			},
-		};
-
-		memset(cipso.doi, 0, 4);
-		cipso.doi[3] = 3;
-
-		sockfd = socket(AF_INET, SOCK_DGRAM, 0);
-		#define SOL_IP 0
-		setsockopt(sockfd, SOL_IP, IP_OPTIONS,
-			&cipso, sizeof(struct cipso));
-
-		return 0;
-	}
-
-CC: Lin Ming <mlin at ss.pku.edu.cn>
-Reported-by: Alan Cox <alan at lxorguk.ukuu.org.uk>
-Signed-off-by: Paul Moore <pmoore at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/cipso_ipv4.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/net/ipv4/cipso_ipv4.c b/net/ipv4/cipso_ipv4.c
-index 86f3b88..afaa735 100644
---- a/net/ipv4/cipso_ipv4.c
-+++ b/net/ipv4/cipso_ipv4.c
-@@ -1725,8 +1725,10 @@ int cipso_v4_validate(const struct sk_buff *skb, unsigned char **option)
- 		case CIPSO_V4_TAG_LOCAL:
- 			/* This is a non-standard tag that we only allow for
- 			 * local connections, so if the incoming interface is
--			 * not the loopback device drop the packet. */
--			if (!(skb->dev->flags & IFF_LOOPBACK)) {
-+			 * not the loopback device drop the packet. Further,
-+			 * there is no legitimate reason for setting this from
-+			 * userspace so reject it if skb is NULL. */
-+			if (skb == NULL || !(skb->dev->flags & IFF_LOOPBACK)) {
- 				err_offset = opt_iter;
- 				goto validate_return_locked;
- 			}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0006-caif-fix-NULL-pointer-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0006-caif-fix-NULL-pointer-check.patch
deleted file mode 100644
index b83525e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0006-caif-fix-NULL-pointer-check.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 074a6a80582984a2cf5fb8f62225bbd9cd314434 Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Tue, 24 Jul 2012 02:42:14 +0000
-Subject: [PATCH 06/38] caif: fix NULL pointer check
-
-[ Upstream commit c66b9b7d365444b433307ebb18734757cb668a02 ]
-
-Reported-by: <rucsoftsec at gmail.com>
-Resolves-bug: http://bugzilla.kernel.org/show_bug?44441
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/caif/caif_serial.c |    3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/caif/caif_serial.c b/drivers/net/caif/caif_serial.c
-index 23406e6..ae286a9 100644
---- a/drivers/net/caif/caif_serial.c
-+++ b/drivers/net/caif/caif_serial.c
-@@ -325,6 +325,9 @@ static int ldisc_open(struct tty_struct *tty)
- 
- 	sprintf(name, "cf%s", tty->name);
- 	dev = alloc_netdev(sizeof(*ser), name, caifdev_setup);
-+	if (!dev)
-+		return -ENOMEM;
-+
- 	ser = netdev_priv(dev);
- 	ser->tty = tty_kref_get(tty);
- 	ser->dev = dev;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0007-wanmain-comparing-array-with-NULL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0007-wanmain-comparing-array-with-NULL.patch
deleted file mode 100644
index 1534803..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0007-wanmain-comparing-array-with-NULL.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From ed8467f422e2d17a05fbe02b149780199a683d11 Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Tue, 24 Jul 2012 08:16:25 +0000
-Subject: [PATCH 07/38] wanmain: comparing array with NULL
-
-[ Upstream commit 8b72ff6484fe303e01498b58621810a114f3cf09 ]
-
-gcc really should warn about these !
-
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wanrouter/wanmain.c |   51 +++++++++++++++++++++-------------------------
- 1 files changed, 23 insertions(+), 28 deletions(-)
-
-diff --git a/net/wanrouter/wanmain.c b/net/wanrouter/wanmain.c
-index 788a12c..2ab7850 100644
---- a/net/wanrouter/wanmain.c
-+++ b/net/wanrouter/wanmain.c
-@@ -602,36 +602,31 @@ static int wanrouter_device_new_if(struct wan_device *wandev,
- 		 * successfully, add it to the interface list.
- 		 */
- 
--		if (dev->name == NULL) {
--			err = -EINVAL;
--		} else {
-+#ifdef WANDEBUG
-+		printk(KERN_INFO "%s: registering interface %s...\n",
-+		       wanrouter_modname, dev->name);
-+#endif
- 
--			#ifdef WANDEBUG
--			printk(KERN_INFO "%s: registering interface %s...\n",
--				wanrouter_modname, dev->name);
--			#endif
--
--			err = register_netdev(dev);
--			if (!err) {
--				struct net_device *slave = NULL;
--				unsigned long smp_flags=0;
--
--				lock_adapter_irq(&wandev->lock, &smp_flags);
--
--				if (wandev->dev == NULL) {
--					wandev->dev = dev;
--				} else {
--					for (slave=wandev->dev;
--					     DEV_TO_SLAVE(slave);
--					     slave = DEV_TO_SLAVE(slave))
--						DEV_TO_SLAVE(slave) = dev;
--				}
--				++wandev->ndev;
--
--				unlock_adapter_irq(&wandev->lock, &smp_flags);
--				err = 0;	/* done !!! */
--				goto out;
-+		err = register_netdev(dev);
-+		if (!err) {
-+			struct net_device *slave = NULL;
-+			unsigned long smp_flags=0;
-+
-+			lock_adapter_irq(&wandev->lock, &smp_flags);
-+
-+			if (wandev->dev == NULL) {
-+				wandev->dev = dev;
-+			} else {
-+				for (slave=wandev->dev;
-+				     DEV_TO_SLAVE(slave);
-+				     slave = DEV_TO_SLAVE(slave))
-+					DEV_TO_SLAVE(slave) = dev;
- 			}
-+			++wandev->ndev;
-+
-+			unlock_adapter_irq(&wandev->lock, &smp_flags);
-+			err = 0;	/* done !!! */
-+			goto out;
- 		}
- 		if (wandev->del_if)
- 			wandev->del_if(wandev, dev);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0008-tcp-Add-TCP_USER_TIMEOUT-negative-value-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0008-tcp-Add-TCP_USER_TIMEOUT-negative-value-check.patch
deleted file mode 100644
index c2a2ae2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0008-tcp-Add-TCP_USER_TIMEOUT-negative-value-check.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 24be4ad08d43124b8146baeaf2e0ea04beaeedc4 Mon Sep 17 00:00:00 2001
-From: Hangbin Liu <liuhangbin at gmail.com>
-Date: Thu, 26 Jul 2012 22:52:21 +0000
-Subject: [PATCH 08/38] tcp: Add TCP_USER_TIMEOUT negative value check
-
-[ Upstream commit 42493570100b91ef663c4c6f0c0fdab238f9d3c2 ]
-
-TCP_USER_TIMEOUT is a TCP level socket option that takes an unsigned int. But
-patch "tcp: Add TCP_USER_TIMEOUT socket option"(dca43c75) didn't check the negative
-values. If a user assign -1 to it, the socket will set successfully and wait
-for 4294967295 miliseconds. This patch add a negative value check to avoid
-this issue.
-
-Signed-off-by: Hangbin Liu <liuhangbin at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp.c |    5 ++++-
- 1 files changed, 4 insertions(+), 1 deletions(-)
-
-diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
-index 11ba922..ad466a7 100644
---- a/net/ipv4/tcp.c
-+++ b/net/ipv4/tcp.c
-@@ -2391,7 +2391,10 @@ static int do_tcp_setsockopt(struct sock *sk, int level,
- 		/* Cap the max timeout in ms TCP will retry/retrans
- 		 * before giving up and aborting (ETIMEDOUT) a connection.
- 		 */
--		icsk->icsk_user_timeout = msecs_to_jiffies(val);
-+		if (val < 0)
-+			err = -EINVAL;
-+		else
-+			icsk->icsk_user_timeout = msecs_to_jiffies(val);
- 		break;
- 	default:
- 		err = -ENOPROTOOPT;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0009-USB-kaweth.c-use-GFP_ATOMIC-under-spin_lock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0009-USB-kaweth.c-use-GFP_ATOMIC-under-spin_lock.patch
deleted file mode 100644
index aa27cd5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0009-USB-kaweth.c-use-GFP_ATOMIC-under-spin_lock.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 0ffa373b3d400c24d958e623a99a276c4a5e25db Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Fri, 27 Jul 2012 01:46:51 +0000
-Subject: [PATCH 09/38] USB: kaweth.c: use GFP_ATOMIC under spin_lock
-
-[ Upstream commit e4c7f259c5be99dcfc3d98f913590663b0305bf8 ]
-
-The problem is that we call this with a spin lock held.  The call tree
-is:
-	kaweth_start_xmit() holds kaweth->device_lock.
-	-> kaweth_async_set_rx_mode()
-	   -> kaweth_control()
-	      -> kaweth_internal_control_msg()
-
-The kaweth_internal_control_msg() function is only called from
-kaweth_control() which used GFP_ATOMIC for its allocations.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/usb/kaweth.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/net/usb/kaweth.c b/drivers/net/usb/kaweth.c
-index 582ca2d..c4c6a73 100644
---- a/drivers/net/usb/kaweth.c
-+++ b/drivers/net/usb/kaweth.c
-@@ -1308,7 +1308,7 @@ static int kaweth_internal_control_msg(struct usb_device *usb_dev,
-         int retv;
-         int length = 0; /* shut up GCC */
- 
--        urb = usb_alloc_urb(0, GFP_NOIO);
-+	urb = usb_alloc_urb(0, GFP_ATOMIC);
-         if (!urb)
-                 return -ENOMEM;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0010-net-fix-rtnetlink-IFF_PROMISC-and-IFF_ALLMULTI-handl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0010-net-fix-rtnetlink-IFF_PROMISC-and-IFF_ALLMULTI-handl.patch
deleted file mode 100644
index b662f1a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0010-net-fix-rtnetlink-IFF_PROMISC-and-IFF_ALLMULTI-handl.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 10bd72dd5d3631b8058ef86bfbb64d5176477dc7 Mon Sep 17 00:00:00 2001
-From: Jiri Benc <jbenc at redhat.com>
-Date: Fri, 27 Jul 2012 02:58:22 +0000
-Subject: [PATCH 10/38] net: fix rtnetlink IFF_PROMISC and IFF_ALLMULTI
- handling
-
-[ Upstream commit b1beb681cba5358f62e6187340660ade226a5fcc ]
-
-When device flags are set using rtnetlink, IFF_PROMISC and IFF_ALLMULTI
-flags are handled specially. Function dev_change_flags sets IFF_PROMISC and
-IFF_ALLMULTI bits in dev->gflags according to the passed value but
-do_setlink passes a result of rtnl_dev_combine_flags which takes those bits
-from dev->flags.
-
-This can be easily trigerred by doing:
-
-tcpdump -i eth0 &
-ip l s up eth0
-
-ip sets IFF_UP flag in ifi_flags and ifi_change, which is combined with
-IFF_PROMISC by rtnl_dev_combine_flags, causing __dev_change_flags to set
-IFF_PROMISC in gflags.
-
-Reported-by: Max Matveev <makc at redhat.com>
-Signed-off-by: Jiri Benc <jbenc at redhat.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/core/rtnetlink.c |    8 +++++++-
- 1 files changed, 7 insertions(+), 1 deletions(-)
-
-diff --git a/net/core/rtnetlink.c b/net/core/rtnetlink.c
-index 05842ab..0cf604b 100644
---- a/net/core/rtnetlink.c
-+++ b/net/core/rtnetlink.c
-@@ -670,6 +670,12 @@ static void set_operstate(struct net_device *dev, unsigned char transition)
- 	}
- }
- 
-+static unsigned int rtnl_dev_get_flags(const struct net_device *dev)
-+{
-+	return (dev->flags & ~(IFF_PROMISC | IFF_ALLMULTI)) |
-+	       (dev->gflags & (IFF_PROMISC | IFF_ALLMULTI));
-+}
-+
- static unsigned int rtnl_dev_combine_flags(const struct net_device *dev,
- 					   const struct ifinfomsg *ifm)
- {
-@@ -678,7 +684,7 @@ static unsigned int rtnl_dev_combine_flags(const struct net_device *dev,
- 	/* bugwards compatibility: ifi_change == 0 is treated as ~0 */
- 	if (ifm->ifi_change)
- 		flags = (flags & ifm->ifi_change) |
--			(dev->flags & ~ifm->ifi_change);
-+			(rtnl_dev_get_flags(dev) & ~ifm->ifi_change);
- 
- 	return flags;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0011-tcp-perform-DMA-to-userspace-only-if-there-is-a-task.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0011-tcp-perform-DMA-to-userspace-only-if-there-is-a-task.patch
deleted file mode 100644
index 86f8026..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0011-tcp-perform-DMA-to-userspace-only-if-there-is-a-task.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 0d41914945b1a1d6b6aa1c9ec95af25a5d7d06e6 Mon Sep 17 00:00:00 2001
-From: Jiri Kosina <jkosina at suse.cz>
-Date: Fri, 27 Jul 2012 10:38:50 +0000
-Subject: [PATCH 11/38] tcp: perform DMA to userspace only if there is a task
- waiting for it
-
-[ Upstream commit 59ea33a68a9083ac98515e4861c00e71efdc49a1 ]
-
-Back in 2006, commit 1a2449a87b ("[I/OAT]: TCP recv offload to I/OAT")
-added support for receive offloading to IOAT dma engine if available.
-
-The code in tcp_rcv_established() tries to perform early DMA copy if
-applicable. It however does so without checking whether the userspace
-task is actually expecting the data in the buffer.
-
-This is not a problem under normal circumstances, but there is a corner
-case where this doesn't work -- and that's when MSG_TRUNC flag to
-recvmsg() is used.
-
-If the IOAT dma engine is not used, the code properly checks whether
-there is a valid ucopy.task and the socket is owned by userspace, but
-misses the check in the dmaengine case.
-
-This problem can be observed in real trivially -- for example 'tbench' is a
-good reproducer, as it makes a heavy use of MSG_TRUNC. On systems utilizing
-IOAT, you will soon find tbench waiting indefinitely in sk_wait_data(), as they
-have been already early-copied in tcp_rcv_established() using dma engine.
-
-This patch introduces the same check we are performing in the simple
-iovec copy case to the IOAT case as well. It fixes the indefinite
-recvmsg(MSG_TRUNC) hangs.
-
-Signed-off-by: Jiri Kosina <jkosina at suse.cz>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/ipv4/tcp_input.c |    4 +++-
- 1 files changed, 3 insertions(+), 1 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 32e6ca2..a08a621 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -5415,7 +5415,9 @@ int tcp_rcv_established(struct sock *sk, struct sk_buff *skb,
- 			if (tp->copied_seq == tp->rcv_nxt &&
- 			    len - tcp_header_len <= tp->ucopy.len) {
- #ifdef CONFIG_NET_DMA
--				if (tcp_dma_try_early_copy(sk, skb, tcp_header_len)) {
-+				if (tp->ucopy.task == current &&
-+				    sock_owned_by_user(sk) &&
-+				    tcp_dma_try_early_copy(sk, skb, tcp_header_len)) {
- 					copied_early = 1;
- 					eaten = 1;
- 				}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0012-net-tun-fix-ioctl-based-info-leaks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0012-net-tun-fix-ioctl-based-info-leaks.patch
deleted file mode 100644
index efd8310..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0012-net-tun-fix-ioctl-based-info-leaks.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From c45f3d3d8ea33347baec087b5f05f561bbb7e994 Mon Sep 17 00:00:00 2001
-From: Mathias Krause <minipli at googlemail.com>
-Date: Sun, 29 Jul 2012 19:45:14 +0000
-Subject: [PATCH 12/38] net/tun: fix ioctl() based info leaks
-
-[ Upstream commits a117dacde0288f3ec60b6e5bcedae8fa37ee0dfc
-  and 8bbb181308bc348e02bfdbebdedd4e4ec9d452ce ]
-
-The tun module leaks up to 36 bytes of memory by not fully initializing
-a structure located on the stack that gets copied to user memory by the
-TUNGETIFF and SIOCGIFHWADDR ioctl()s.
-
-Signed-off-by: Mathias Krause <minipli at googlemail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/tun.c |    6 ++++--
- 1 files changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/tun.c b/drivers/net/tun.c
-index 7bea9c6..a12c9bf 100644
---- a/drivers/net/tun.c
-+++ b/drivers/net/tun.c
-@@ -1243,10 +1243,12 @@ static long __tun_chr_ioctl(struct file *file, unsigned int cmd,
- 	int vnet_hdr_sz;
- 	int ret;
- 
--	if (cmd == TUNSETIFF || _IOC_TYPE(cmd) == 0x89)
-+	if (cmd == TUNSETIFF || _IOC_TYPE(cmd) == 0x89) {
- 		if (copy_from_user(&ifr, argp, ifreq_len))
- 			return -EFAULT;
--
-+	} else {
-+		memset(&ifr, 0, sizeof(ifr));
-+	}
- 	if (cmd == TUNGETFEATURES) {
- 		/* Currently this just means: "what IFF flags are valid?".
- 		 * This is needed because we never checked for invalid flags on
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0013-e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0013-e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch
deleted file mode 100644
index 6011417..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0013-e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a434024fe4e85366698b867be432dfd3dc2f70c1 Mon Sep 17 00:00:00 2001
-From: Dean Nelson <dnelson at redhat.com>
-Date: Thu, 19 Jan 2012 17:47:24 +0000
-Subject: [PATCH 13/38] e1000: add dropped DMA receive enable back in for WoL
-
-commit b868179c47e9e8eadcd04c1f3105998e528988a3 upstream.
-
-Commit d5bc77a223b0e9b9dfb002048d2b34a79e7d0b48 broke Wake-on-LAN by
-inadvertently dropping the enabling of DMA receives.
-
-Restore the enabling of DMA receives for WoL.
-
-This is applicable to 3.1+ stable trees.
-
-Reported-by: Tobias Klausmann <klausman at schwarzvogel.de>
-Signed-off-by: Dean Nelson <dnelson at redhat.com>
-Tested-by: Tobias Klausmann <klausman at schwarzvogel.de>
-Tested-by: Aaron Brown <aaron.f.brown at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/intel/e1000/e1000_main.c |   10 ++++++----
- 1 files changed, 6 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000/e1000_main.c b/drivers/net/ethernet/intel/e1000/e1000_main.c
-index de00805..0549261 100644
---- a/drivers/net/ethernet/intel/e1000/e1000_main.c
-+++ b/drivers/net/ethernet/intel/e1000/e1000_main.c
-@@ -4743,12 +4743,14 @@ static int __e1000_shutdown(struct pci_dev *pdev, bool *enable_wake)
- 		e1000_setup_rctl(adapter);
- 		e1000_set_rx_mode(netdev);
- 
-+		rctl = er32(RCTL);
-+
- 		/* turn on all-multi mode if wake on multicast is enabled */
--		if (wufc & E1000_WUFC_MC) {
--			rctl = er32(RCTL);
-+		if (wufc & E1000_WUFC_MC)
- 			rctl |= E1000_RCTL_MPE;
--			ew32(RCTL, rctl);
--		}
-+
-+		/* enable receives in the hardware */
-+		ew32(RCTL, rctl | E1000_RCTL_EN);
- 
- 		if (hw->mac_type >= e1000_82540) {
- 			ctrl = er32(CTRL);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0014-rtlwifi-rtl8192cu-Change-buffer-allocation-for-synch.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0014-rtlwifi-rtl8192cu-Change-buffer-allocation-for-synch.patch
deleted file mode 100644
index 40ef189..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0014-rtlwifi-rtl8192cu-Change-buffer-allocation-for-synch.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From 9f32412e06d7c657dc0db00f1990196da0edc7b5 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Wed, 11 Jul 2012 14:37:28 -0500
-Subject: [PATCH 14/38] rtlwifi: rtl8192cu: Change buffer allocation for
- synchronous reads
-
-commit 3ce4d85b76010525adedcc2555fa164bf706a2f3 upstream.
-
-In commit a7959c1, the USB part of rtlwifi was switched to convert
-_usb_read_sync() to using a preallocated buffer rather than one
-that has been acquired using kmalloc. Although this routine is named
-as though it were synchronous, there seem to be simultaneous users,
-and the selection of the index to the data buffer is not multi-user
-safe. This situation is addressed by adding a new spinlock. The routine
-cannot sleep, thus a mutex is not allowed.
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rtlwifi/usb.c  |   14 +++++++++++---
- drivers/net/wireless/rtlwifi/wifi.h |    1 +
- 2 files changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/wireless/rtlwifi/usb.c b/drivers/net/wireless/rtlwifi/usb.c
-index db34db6..a49e848 100644
---- a/drivers/net/wireless/rtlwifi/usb.c
-+++ b/drivers/net/wireless/rtlwifi/usb.c
-@@ -120,15 +120,19 @@ static u32 _usb_read_sync(struct rtl_priv *rtlpriv, u32 addr, u16 len)
- 	u8 request;
- 	u16 wvalue;
- 	u16 index;
--	__le32 *data = &rtlpriv->usb_data[rtlpriv->usb_data_index];
-+	__le32 *data;
-+	unsigned long flags;
- 
-+	spin_lock_irqsave(&rtlpriv->locks.usb_lock, flags);
-+	if (++rtlpriv->usb_data_index >= RTL_USB_MAX_RX_COUNT)
-+		rtlpriv->usb_data_index = 0;
-+	data = &rtlpriv->usb_data[rtlpriv->usb_data_index];
-+	spin_unlock_irqrestore(&rtlpriv->locks.usb_lock, flags);
- 	request = REALTEK_USB_VENQT_CMD_REQ;
- 	index = REALTEK_USB_VENQT_CMD_IDX; /* n/a */
- 
- 	wvalue = (u16)addr;
- 	_usbctrl_vendorreq_sync_read(udev, request, wvalue, index, data, len);
--	if (++rtlpriv->usb_data_index >= RTL_USB_MAX_RX_COUNT)
--		rtlpriv->usb_data_index = 0;
- 	return le32_to_cpu(*data);
- }
- 
-@@ -909,6 +913,10 @@ int __devinit rtl_usb_probe(struct usb_interface *intf,
- 				    GFP_KERNEL);
- 	if (!rtlpriv->usb_data)
- 		return -ENOMEM;
-+
-+	/* this spin lock must be initialized early */
-+	spin_lock_init(&rtlpriv->locks.usb_lock);
-+
- 	rtlpriv->usb_data_index = 0;
- 	SET_IEEE80211_DEV(hw, &intf->dev);
- 	udev = interface_to_usbdev(intf);
-diff --git a/drivers/net/wireless/rtlwifi/wifi.h b/drivers/net/wireless/rtlwifi/wifi.h
-index b1e9deb..deb87e9 100644
---- a/drivers/net/wireless/rtlwifi/wifi.h
-+++ b/drivers/net/wireless/rtlwifi/wifi.h
-@@ -1550,6 +1550,7 @@ struct rtl_locks {
- 	spinlock_t rf_lock;
- 	spinlock_t lps_lock;
- 	spinlock_t waitq_lock;
-+	spinlock_t usb_lock;
- 
- 	/*Dual mac*/
- 	spinlock_t cck_and_rw_pagea_lock;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0015-hfsplus-fix-overflow-in-sector-calculations-in-hfspl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0015-hfsplus-fix-overflow-in-sector-calculations-in-hfspl.patch
deleted file mode 100644
index 471e568..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0015-hfsplus-fix-overflow-in-sector-calculations-in-hfspl.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 2a5405901ea07bfd5de0ab32cd08149f70b29e0b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Janne=20Kalliom=C3=A4ki?= <janne at tuxera.com>
-Date: Sun, 17 Jun 2012 17:05:24 -0400
-Subject: [PATCH 15/38] hfsplus: fix overflow in sector calculations in
- hfsplus_submit_bio
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit a6dc8c04218eb752ff79cdc24a995cf51866caed upstream.
-
-The variable io_size was unsigned int, which caused the wrong sector number
-to be calculated after aligning it. This then caused mount to fail with big
-volumes, as backup volume header information was searched from a
-wrong sector.
-
-Signed-off-by: Janne Kalliomäki <janne at tuxera.com>
-Signed-off-by: Christoph Hellwig <hch at lst.de>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- fs/hfsplus/wrapper.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/fs/hfsplus/wrapper.c b/fs/hfsplus/wrapper.c
-index 7daf4b8..90effcc 100644
---- a/fs/hfsplus/wrapper.c
-+++ b/fs/hfsplus/wrapper.c
-@@ -56,7 +56,7 @@ int hfsplus_submit_bio(struct super_block *sb, sector_t sector,
- 	DECLARE_COMPLETION_ONSTACK(wait);
- 	struct bio *bio;
- 	int ret = 0;
--	unsigned int io_size;
-+	u64 io_size;
- 	loff_t start;
- 	int offset;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0016-drm-i915-fixup-seqno-allocation-logic-for-lazy_reque.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0016-drm-i915-fixup-seqno-allocation-logic-for-lazy_reque.patch
deleted file mode 100644
index dab607f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0016-drm-i915-fixup-seqno-allocation-logic-for-lazy_reque.patch
+++ /dev/null
@@ -1,182 +0,0 @@
-From fb7b884cf3c3ea0ff01bade0bff2d6338559e870 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Wed, 25 Jan 2012 16:32:49 +0100
-Subject: [PATCH 16/38] drm/i915: fixup seqno allocation logic for
- lazy_request
-
-commit 53d227f282eb9fa4c7cdbfd691fa372b7ca8c4c3 upstream.
-
-Currently we reserve seqnos only when we emit the request to the ring
-(by bumping dev_priv->next_seqno), but start using it much earlier for
-ring->oustanding_lazy_request. When 2 threads compete for the gpu and
-run on two different rings (e.g. ddx on blitter vs. compositor)
-hilarity ensued, especially when we get constantly interrupted while
-reserving buffers.
-
-Breakage seems to have been introduced in
-
-commit 6f392d548658a17600da7faaf8a5df25ee5f01f6
-Author: Chris Wilson <chris at chris-wilson.co.uk>
-Date:   Sat Aug 7 11:01:22 2010 +0100
-
-    drm/i915: Use a common seqno for all rings.
-
-This patch fixes up the seqno reservation logic by moving it into
-i915_gem_next_request_seqno. The ring->add_request functions now
-superflously still return the new seqno through a pointer, that will
-be refactored in the next patch.
-
-Note that with this change we now unconditionally allocate a seqno,
-even when ->add_request might fail because the rings are full and the
-gpu died. But this does not open up a new can of worms because we can
-already leave behind an outstanding_request_seqno if e.g. the caller
-gets interrupted with a signal while stalling for the gpu in the
-eviciton paths. And with the bugfix we only ever have one seqno
-allocated per ring (and only that ring), so there are no ordering
-issues with multiple outstanding seqnos on the same ring.
-
-v2: Keep i915_gem_get_seqno (but move it to i915_gem.c) to make it
-clear that we only have one seqno counter for all rings. Suggested by
-Chris Wilson.
-
-v3: As suggested by Chris Wilson use i915_gem_next_request_seqno
-instead of ring->oustanding_lazy_request to make the follow-up
-refactoring more clearly correct. Also improve the commit message
-with issues discussed on irc.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=45181
-Tested-by: Nicolas Kalkhof nkalkhof()at()web.de
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/i915_drv.h         |    7 +------
- drivers/gpu/drm/i915/i915_gem.c         |   23 +++++++++++++++++++++++
- drivers/gpu/drm/i915/intel_ringbuffer.c |   24 ++++--------------------
- 3 files changed, 28 insertions(+), 26 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index d62c731..c364358 100644
---- a/drivers/gpu/drm/i915/i915_drv.h
-+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -1170,12 +1170,7 @@ i915_seqno_passed(uint32_t seq1, uint32_t seq2)
- 	return (int32_t)(seq1 - seq2) >= 0;
- }
- 
--static inline u32
--i915_gem_next_request_seqno(struct intel_ring_buffer *ring)
--{
--	drm_i915_private_t *dev_priv = ring->dev->dev_private;
--	return ring->outstanding_lazy_request = dev_priv->next_seqno;
--}
-+u32 i915_gem_next_request_seqno(struct intel_ring_buffer *ring);
- 
- int __must_check i915_gem_object_get_fence(struct drm_i915_gem_object *obj,
- 					   struct intel_ring_buffer *pipelined);
-diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
-index 3e2edc6..548a400 100644
---- a/drivers/gpu/drm/i915/i915_gem.c
-+++ b/drivers/gpu/drm/i915/i915_gem.c
-@@ -1647,6 +1647,28 @@ i915_gem_process_flushing_list(struct intel_ring_buffer *ring,
- 	}
- }
- 
-+static u32
-+i915_gem_get_seqno(struct drm_device *dev)
-+{
-+	drm_i915_private_t *dev_priv = dev->dev_private;
-+	u32 seqno = dev_priv->next_seqno;
-+
-+	/* reserve 0 for non-seqno */
-+	if (++dev_priv->next_seqno == 0)
-+		dev_priv->next_seqno = 1;
-+
-+	return seqno;
-+}
-+
-+u32
-+i915_gem_next_request_seqno(struct intel_ring_buffer *ring)
-+{
-+	if (ring->outstanding_lazy_request == 0)
-+		ring->outstanding_lazy_request = i915_gem_get_seqno(ring->dev);
-+
-+	return ring->outstanding_lazy_request;
-+}
-+
- int
- i915_add_request(struct intel_ring_buffer *ring,
- 		 struct drm_file *file,
-@@ -1658,6 +1680,7 @@ i915_add_request(struct intel_ring_buffer *ring,
- 	int ret;
- 
- 	BUG_ON(request == NULL);
-+	seqno = i915_gem_next_request_seqno(ring);
- 
- 	ret = ring->add_request(ring, &seqno);
- 	if (ret)
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index f6613dc..d2cbe5d 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -52,20 +52,6 @@ static inline int ring_space(struct intel_ring_buffer *ring)
- 	return space;
- }
- 
--static u32 i915_gem_get_seqno(struct drm_device *dev)
--{
--	drm_i915_private_t *dev_priv = dev->dev_private;
--	u32 seqno;
--
--	seqno = dev_priv->next_seqno;
--
--	/* reserve 0 for non-seqno */
--	if (++dev_priv->next_seqno == 0)
--		dev_priv->next_seqno = 1;
--
--	return seqno;
--}
--
- static int
- render_ring_flush(struct intel_ring_buffer *ring,
- 		  u32	invalidate_domains,
-@@ -488,7 +474,7 @@ gen6_add_request(struct intel_ring_buffer *ring,
- 	mbox1_reg = ring->signal_mbox[0];
- 	mbox2_reg = ring->signal_mbox[1];
- 
--	*seqno = i915_gem_get_seqno(ring->dev);
-+	*seqno = i915_gem_next_request_seqno(ring);
- 
- 	update_mboxes(ring, *seqno, mbox1_reg);
- 	update_mboxes(ring, *seqno, mbox2_reg);
-@@ -586,8 +572,7 @@ static int
- pc_render_add_request(struct intel_ring_buffer *ring,
- 		      u32 *result)
- {
--	struct drm_device *dev = ring->dev;
--	u32 seqno = i915_gem_get_seqno(dev);
-+	u32 seqno = i915_gem_next_request_seqno(ring);
- 	struct pipe_control *pc = ring->private;
- 	u32 scratch_addr = pc->gtt_offset + 128;
- 	int ret;
-@@ -638,8 +623,7 @@ static int
- render_ring_add_request(struct intel_ring_buffer *ring,
- 			u32 *result)
- {
--	struct drm_device *dev = ring->dev;
--	u32 seqno = i915_gem_get_seqno(dev);
-+	u32 seqno = i915_gem_next_request_seqno(ring);
- 	int ret;
- 
- 	ret = intel_ring_begin(ring, 4);
-@@ -813,7 +797,7 @@ ring_add_request(struct intel_ring_buffer *ring,
- 	if (ret)
- 		return ret;
- 
--	seqno = i915_gem_get_seqno(ring->dev);
-+	seqno = i915_gem_next_request_seqno(ring);
- 
- 	intel_ring_emit(ring, MI_STORE_DWORD_INDEX);
- 	intel_ring_emit(ring, I915_GEM_HWS_INDEX << MI_STORE_DWORD_INDEX_SHIFT);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0017-KVM-VMX-Advertise-CPU_BASED_RDPMC_EXITING-for-nested.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0017-KVM-VMX-Advertise-CPU_BASED_RDPMC_EXITING-for-nested.patch
deleted file mode 100644
index ce5de76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0017-KVM-VMX-Advertise-CPU_BASED_RDPMC_EXITING-for-nested.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 3a120a56ad2a35167da519fb81f66027f6b8b8bc Mon Sep 17 00:00:00 2001
-From: Stefan Bader <stefan.bader at canonical.com>
-Date: Thu, 9 Aug 2012 12:33:12 +0300
-Subject: [PATCH 17/38] KVM: VMX: Advertise CPU_BASED_RDPMC_EXITING for nested
- guests
-
-Based on commit fee84b079d5ddee2247b5c1f53162c330c622902 upstream.
-
-  Intercept RDPMC and forward it to the PMU emulation code.
-
-Newer vmx support will only allow to load the kvm_intel module
-if RDPMC_EXITING is supported. Even without the actual support
-this part of the change is required on 3.2 hosts.
-
-BugLink: http://bugs.launchpad.net/bugs/1031090
-Signed-off-by: Stefan Bader <stefan.bader at canonical.com>
-Signed-off-by: Avi Kivity <avi at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/x86/kvm/vmx.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 7315488..407789b 100644
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -1956,6 +1956,7 @@ static __init void nested_vmx_setup_ctls_msrs(void)
- #endif
- 		CPU_BASED_MOV_DR_EXITING | CPU_BASED_UNCOND_IO_EXITING |
- 		CPU_BASED_USE_IO_BITMAPS | CPU_BASED_MONITOR_EXITING |
-+		CPU_BASED_RDPMC_EXITING |
- 		CPU_BASED_ACTIVATE_SECONDARY_CONTROLS;
- 	/*
- 	 * We can allow some features even when not supported by the
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0018-mac80211-cancel-mesh-path-timer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0018-mac80211-cancel-mesh-path-timer.patch
deleted file mode 100644
index ce103a3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0018-mac80211-cancel-mesh-path-timer.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 6232af882bb87e23d74aad3351552b267c99e952 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Wed, 1 Aug 2012 21:03:21 +0200
-Subject: [PATCH 18/38] mac80211: cancel mesh path timer
-
-commit dd4c9260e7f23f2e951cbfb2726e468c6d30306c upstream.
-
-The mesh path timer needs to be canceled when
-leaving the mesh as otherwise it could fire
-after the interface has been removed already.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/mac80211/mesh.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/net/mac80211/mesh.c b/net/mac80211/mesh.c
-index a7078fd..f85de8e 100644
---- a/net/mac80211/mesh.c
-+++ b/net/mac80211/mesh.c
-@@ -543,6 +543,7 @@ void ieee80211_stop_mesh(struct ieee80211_sub_if_data *sdata)
- 
- 	del_timer_sync(&sdata->u.mesh.housekeeping_timer);
- 	del_timer_sync(&sdata->u.mesh.mesh_path_root_timer);
-+	del_timer_sync(&sdata->u.mesh.mesh_path_timer);
- 	/*
- 	 * If the timer fired while we waited for it, it will have
- 	 * requeued the work. Now the work will be running again
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0019-ath9k-Add-PID-VID-support-for-AR1111.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0019-ath9k-Add-PID-VID-support-for-AR1111.patch
deleted file mode 100644
index 4c77dce..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0019-ath9k-Add-PID-VID-support-for-AR1111.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From 79e8531b00817a47eaadccc39250dbe05d4f141f Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Thu, 2 Aug 2012 11:58:50 +0530
-Subject: [PATCH 19/38] ath9k: Add PID/VID support for AR1111
-
-commit d4e5979c0da95791aa717c18e162540c7a596360 upstream.
-
-AR1111 is same as AR9485. The h/w
-difference between them is quite insignificant,
-Felix suggests only very few baseband features
-may not be available in AR1111. The h/w code for
-AR9485 is already present, so AR1111 should
-work fine with the addition of its PID/VID.
-
-Cc: Felix Bitterli <felixb at qca.qualcomm.com>
-Reported-by: Tim Bentley <Tim.Bentley at Gmail.com>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Tested-by: Tim Bentley <Tim.Bentley at Gmail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/ath/ath9k/hw.c  |    1 +
- drivers/net/wireless/ath/ath9k/hw.h  |    1 +
- drivers/net/wireless/ath/ath9k/pci.c |    1 +
- 3 files changed, 3 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
-index 7f97164..2b8e957 100644
---- a/drivers/net/wireless/ath/ath9k/hw.c
-+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -674,6 +674,7 @@ int ath9k_hw_init(struct ath_hw *ah)
- 	case AR9300_DEVID_AR9340:
- 	case AR9300_DEVID_AR9580:
- 	case AR9300_DEVID_AR9462:
-+	case AR9485_DEVID_AR1111:
- 		break;
- 	default:
- 		if (common->bus_ops->ath_bus_type == ATH_USB)
-diff --git a/drivers/net/wireless/ath/ath9k/hw.h b/drivers/net/wireless/ath/ath9k/hw.h
-index 1bd8edf..a5c4ba8 100644
---- a/drivers/net/wireless/ath/ath9k/hw.h
-+++ b/drivers/net/wireless/ath/ath9k/hw.h
-@@ -48,6 +48,7 @@
- #define AR9300_DEVID_AR9580	0x0033
- #define AR9300_DEVID_AR9462	0x0034
- #define AR9300_DEVID_AR9330	0x0035
-+#define AR9485_DEVID_AR1111	0x0037
- 
- #define AR5416_AR9100_DEVID	0x000b
- 
-diff --git a/drivers/net/wireless/ath/ath9k/pci.c b/drivers/net/wireless/ath/ath9k/pci.c
-index 2dcdf63..1883d39 100644
---- a/drivers/net/wireless/ath/ath9k/pci.c
-+++ b/drivers/net/wireless/ath/ath9k/pci.c
-@@ -35,6 +35,7 @@ static DEFINE_PCI_DEVICE_TABLE(ath_pci_id_table) = {
- 	{ PCI_VDEVICE(ATHEROS, 0x0032) }, /* PCI-E  AR9485 */
- 	{ PCI_VDEVICE(ATHEROS, 0x0033) }, /* PCI-E  AR9580 */
- 	{ PCI_VDEVICE(ATHEROS, 0x0034) }, /* PCI-E  AR9462 */
-+	{ PCI_VDEVICE(ATHEROS, 0x0037) }, /* PCI-E  AR1111/AR9485 */
- 	{ 0 }
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0020-ARM-mxs-Remove-MMAP_MIN_ADDR-setting-from-mxs_defcon.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0020-ARM-mxs-Remove-MMAP_MIN_ADDR-setting-from-mxs_defcon.patch
deleted file mode 100644
index 08c6777..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0020-ARM-mxs-Remove-MMAP_MIN_ADDR-setting-from-mxs_defcon.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 72e131402c22fe7df4bff17249c4b5a513118b8b Mon Sep 17 00:00:00 2001
-From: Marek Vasut <marex at denx.de>
-Date: Fri, 3 Aug 2012 20:54:48 +0200
-Subject: [PATCH 20/38] ARM: mxs: Remove MMAP_MIN_ADDR setting from
- mxs_defconfig
-
-commit 3bed491c8d28329e34f8a31e3fe64d03f3a350f1 upstream.
-
-The CONFIG_DEFAULT_MMAP_MIN_ADDR was set to 65536 in mxs_defconfig,
-this caused severe breakage of userland applications since the upper
-limit for ARM is 32768. By default CONFIG_DEFAULT_MMAP_MIN_ADDR is
-set to 4096 and can also be changed via /proc/sys/vm/mmap_min_addr
-if needed.
-
-Quoting Russell King [1]:
-
-"4096 is also fine for ARM too. There's not much point in having
-defconfigs change it - that would just be pure noise in the config
-files."
-
-the CONFIG_DEFAULT_MMAP_MIN_ADDR can be removed from the defconfig
-altogether.
-
-This problem was introduced by commit cde7c41 (ARM: configs: add
-defconfig for mach-mxs).
-
-[1] http://marc.info/?l=linux-arm-kernel&m=134401593807820&w=2
-
-Signed-off-by: Marek Vasut <marex at denx.de>
-Cc: Russell King <linux at arm.linux.org.uk>
-Cc: Wolfgang Denk <wd at denx.de>
-Signed-off-by: Shawn Guo <shawn.guo at linaro.org>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/configs/mxs_defconfig |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/configs/mxs_defconfig b/arch/arm/configs/mxs_defconfig
-index 6ee781b..3ee3e84 100644
---- a/arch/arm/configs/mxs_defconfig
-+++ b/arch/arm/configs/mxs_defconfig
-@@ -32,7 +32,6 @@ CONFIG_NO_HZ=y
- CONFIG_HIGH_RES_TIMERS=y
- CONFIG_PREEMPT_VOLUNTARY=y
- CONFIG_AEABI=y
--CONFIG_DEFAULT_MMAP_MIN_ADDR=65536
- CONFIG_AUTO_ZRELADDR=y
- CONFIG_FPE_NWFPE=y
- CONFIG_NET=y
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0021-ALSA-hda-add-dock-support-for-Thinkpad-T430s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0021-ALSA-hda-add-dock-support-for-Thinkpad-T430s.patch
deleted file mode 100644
index 087bd23..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0021-ALSA-hda-add-dock-support-for-Thinkpad-T430s.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From e7af387d6087031280b03362bbfdeaefa97cecfa Mon Sep 17 00:00:00 2001
-From: "Philipp A. Mohrenweiser" <phiamo at googlemail.com>
-Date: Mon, 6 Aug 2012 13:14:18 +0200
-Subject: [PATCH 21/38] ALSA: hda - add dock support for Thinkpad T430s
-
-commit 4407be6ba217514b1bc01488f8b56467d309e416 upstream.
-
-Add a model/fixup string "lenovo-dock", for Thinkpad T430s, to allow
-sound in docking station.
-
-Tested on Lenovo T430s with ThinkPad Mini Dock Plus Series 3
-
-Signed-off-by: Philipp A. Mohrenweiser <phiamo at googlemail.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 2e2eb93..36cef6f 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5077,6 +5077,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK),
-+	SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_QUANTA_MUTE),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Lenovo Ideapd", ALC269_FIXUP_PCM_44K),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0022-cfg80211-process-pending-events-when-unregistering-n.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0022-cfg80211-process-pending-events-when-unregistering-n.patch
deleted file mode 100644
index 0b3cd87..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0022-cfg80211-process-pending-events-when-unregistering-n.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 494c6e65c2040893d8d7bb7a5c34eeb5355a1255 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Thu, 2 Aug 2012 18:41:48 +0100
-Subject: [PATCH 22/38] cfg80211: process pending events when unregistering
- net device
-
-commit 1f6fc43e621167492ed4b7f3b4269c584c3d6ccc upstream.
-
-libertas currently calls cfg80211_disconnected() when it is being
-brought down. This causes an event to be allocated, but since the
-wdev is already removed from the rdev by the time that the event
-processing work executes, the event is never processed or freed.
-http://article.gmane.org/gmane.linux.kernel.wireless.general/95666
-
-Fix this leak, and other possible situations, by processing the event
-queue when a device is being unregistered. Thanks to Johannes Berg for
-the suggestion.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Reviewed-by: Johannes Berg <johannes at sipsolutions.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- net/wireless/core.c |    5 +++++
- net/wireless/core.h |    1 +
- net/wireless/util.c |    2 +-
- 3 files changed, 7 insertions(+), 1 deletions(-)
-
-diff --git a/net/wireless/core.c b/net/wireless/core.c
-index 220f3bd..8f5042d 100644
---- a/net/wireless/core.c
-+++ b/net/wireless/core.c
-@@ -971,6 +971,11 @@ static int cfg80211_netdev_notifier_call(struct notifier_block * nb,
- 		 */
- 		synchronize_rcu();
- 		INIT_LIST_HEAD(&wdev->list);
-+		/*
-+		 * Ensure that all events have been processed and
-+		 * freed.
-+		 */
-+		cfg80211_process_wdev_events(wdev);
- 		break;
- 	case NETDEV_PRE_UP:
- 		if (!(wdev->wiphy->interface_modes & BIT(wdev->iftype)))
-diff --git a/net/wireless/core.h b/net/wireless/core.h
-index b9ec306..02c3be3 100644
---- a/net/wireless/core.h
-+++ b/net/wireless/core.h
-@@ -426,6 +426,7 @@ int cfg80211_change_iface(struct cfg80211_registered_device *rdev,
- 			  struct net_device *dev, enum nl80211_iftype ntype,
- 			  u32 *flags, struct vif_params *params);
- void cfg80211_process_rdev_events(struct cfg80211_registered_device *rdev);
-+void cfg80211_process_wdev_events(struct wireless_dev *wdev);
- 
- int cfg80211_can_change_interface(struct cfg80211_registered_device *rdev,
- 				  struct wireless_dev *wdev,
-diff --git a/net/wireless/util.c b/net/wireless/util.c
-index b5e4c1c..22fb802 100644
---- a/net/wireless/util.c
-+++ b/net/wireless/util.c
-@@ -725,7 +725,7 @@ void cfg80211_upload_connect_keys(struct wireless_dev *wdev)
- 	wdev->connect_keys = NULL;
- }
- 
--static void cfg80211_process_wdev_events(struct wireless_dev *wdev)
-+void cfg80211_process_wdev_events(struct wireless_dev *wdev)
- {
- 	struct cfg80211_event *ev;
- 	unsigned long flags;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0023-rt61pci-fix-NULL-pointer-dereference-in-config_lna_g.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0023-rt61pci-fix-NULL-pointer-dereference-in-config_lna_g.patch
deleted file mode 100644
index 7ada863..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0023-rt61pci-fix-NULL-pointer-dereference-in-config_lna_g.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 6eeecbf1bfca2b6453a4708a0e0392ba10db91b4 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Fri, 3 Aug 2012 12:49:14 +0200
-Subject: [PATCH 23/38] rt61pci: fix NULL pointer dereference in
- config_lna_gain
-
-commit deee0214def5d8a32b8112f11d9c2b1696e9c0cb upstream.
-
-We can not pass NULL libconf->conf->channel to rt61pci_config() as it
-is dereferenced unconditionally in rt61pci_config_lna_gain() subroutine.
-
-Resolves:
-https://bugzilla.kernel.org/show_bug.cgi?id=44361
-
-Reported-and-tested-by: <dolohow at gmail.com>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/rt2x00/rt61pci.c |    3 +--
- 1 files changed, 1 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/rt2x00/rt61pci.c b/drivers/net/wireless/rt2x00/rt61pci.c
-index bf55b4a..d69f88c 100644
---- a/drivers/net/wireless/rt2x00/rt61pci.c
-+++ b/drivers/net/wireless/rt2x00/rt61pci.c
-@@ -2243,8 +2243,7 @@ static void rt61pci_txdone(struct rt2x00_dev *rt2x00dev)
- 
- static void rt61pci_wakeup(struct rt2x00_dev *rt2x00dev)
- {
--	struct ieee80211_conf conf = { .flags = 0 };
--	struct rt2x00lib_conf libconf = { .conf = &conf };
-+	struct rt2x00lib_conf libconf = { .conf = &rt2x00dev->hw->conf };
- 
- 	rt61pci_config(rt2x00dev, &libconf, IEEE80211_CONF_CHANGE_PS);
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0024-iwlwifi-disable-greenfield-transmissions-as-a-workar.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0024-iwlwifi-disable-greenfield-transmissions-as-a-workar.patch
deleted file mode 100644
index 4a14054..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0024-iwlwifi-disable-greenfield-transmissions-as-a-workar.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a05a0b85c314feeebcbf3491dd6ed98e4ffb0958 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Sun, 5 Aug 2012 18:31:46 +0200
-Subject: [PATCH 24/38] iwlwifi: disable greenfield transmissions as a
- workaround
-
-commit 50e2a30cf6fcaeb2d27360ba614dd169a10041c5 upstream.
-
-There's a bug that causes the rate scaling to get stuck
-when it has to use single-stream rates with a peer that
-can do GF and SGI; the two are incompatible so we can't
-use them together, but that causes the algorithm to not
-work at all, it always rejects updates.
-
-Disable greenfield for now to prevent that problem.
-
-Reviewed-by: Emmanuel Grumbach <emmanuel.grumbach at intel.com>
-Tested-by: Cesar Eduardo Barros <cesarb at cesarb.net>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-[bwh: Backported to 3.2: adjust filename]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/wireless/iwlwifi/iwl-agn-rs.c |   13 ++++++++-----
- 1 files changed, 8 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-index 9ba2c1b..3395025 100644
---- a/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-agn-rs.c
-@@ -708,11 +708,14 @@ static int rs_toggle_antenna(u32 valid_ant, u32 *rate_n_flags,
-  */
- static bool rs_use_green(struct ieee80211_sta *sta)
- {
--	struct iwl_station_priv *sta_priv = (void *)sta->drv_priv;
--	struct iwl_rxon_context *ctx = sta_priv->ctx;
--
--	return (sta->ht_cap.cap & IEEE80211_HT_CAP_GRN_FLD) &&
--		!(ctx->ht.non_gf_sta_present);
-+	/*
-+	 * There's a bug somewhere in this code that causes the
-+	 * scaling to get stuck because GF+SGI can't be combined
-+	 * in SISO rates. Until we find that bug, disable GF, it
-+	 * has only limited benefit and we still interoperate with
-+	 * GF APs since we can always receive GF transmissions.
-+	 */
-+	return false;
- }
- 
- /**
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0025-ALSA-hda-add-dock-support-for-Thinkpad-X230.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0025-ALSA-hda-add-dock-support-for-Thinkpad-X230.patch
deleted file mode 100644
index 9ffee7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0025-ALSA-hda-add-dock-support-for-Thinkpad-X230.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From d1d4e5b872501c6b9a04a50d656a517fdbb3d7b1 Mon Sep 17 00:00:00 2001
-From: Felix Kaechele <felix at fetzig.org>
-Date: Mon, 6 Aug 2012 23:02:01 +0200
-Subject: [PATCH 25/38] ALSA: hda - add dock support for Thinkpad X230
-
-commit c8415a48fcb7a29889f4405d38c57db351e4b50a upstream.
-
-As with the ThinkPad Models X230 Tablet and T530 the X230 needs a qurik to
-correctly set up the pins for the dock port.
-
-Signed-off-by: Felix Kaechele <felix at fetzig.org>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 files changed, 1 insertions(+), 0 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 36cef6f..2bf8cbb 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5077,6 +5077,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x17aa, 0x21ca, "Thinkpad L412", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21e9, "Thinkpad Edge 15", ALC269_FIXUP_SKU_IGNORE),
- 	SND_PCI_QUIRK(0x17aa, 0x21f6, "Thinkpad T530", ALC269_FIXUP_LENOVO_DOCK),
-+	SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_QUANTA_MUTE),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0026-e1000e-NIC-goes-up-and-immediately-goes-down.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0026-e1000e-NIC-goes-up-and-immediately-goes-down.patch
deleted file mode 100644
index d5eec9f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0026-e1000e-NIC-goes-up-and-immediately-goes-down.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 4391276e45606802564174334f4a43ce57b9601c Mon Sep 17 00:00:00 2001
-From: Tushar Dave <tushar.n.dave at intel.com>
-Date: Tue, 31 Jul 2012 02:02:43 +0000
-Subject: [PATCH 26/38] e1000e: NIC goes up and immediately goes down
-
-commit b7ec70be01a87f2c85df3ae11046e74f9b67e323 upstream.
-
-Found that commit d478eb44 was a bad commit.
-If the link partner is transmitting codeword (even if NULL codeword),
-then the RXCW.C bit will be set so check for RXCW.CW is unnecessary.
-Ref: RH BZ 840642
-
-Reported-by: Fabio Futigami <ffutigam at redhat.com>
-Signed-off-by: Tushar Dave <tushar.n.dave at intel.com>
-CC: Marcelo Ricardo Leitner <mleitner at redhat.com>
-Tested-by: Aaron Brown <aaron.f.brown at intel.com>
-Signed-off-by: Peter P Waskiewicz Jr <peter.p.waskiewicz.jr at intel.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/net/ethernet/intel/e1000e/82571.c |    4 +---
- 1 files changed, 1 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/intel/e1000e/82571.c b/drivers/net/ethernet/intel/e1000e/82571.c
-index 3072d35..4f4d52a 100644
---- a/drivers/net/ethernet/intel/e1000e/82571.c
-+++ b/drivers/net/ethernet/intel/e1000e/82571.c
-@@ -1600,10 +1600,8 @@ static s32 e1000_check_for_serdes_link_82571(struct e1000_hw *hw)
- 			 * auto-negotiation in the TXCW register and disable
- 			 * forced link in the Device Control register in an
- 			 * attempt to auto-negotiate with our link partner.
--			 * If the partner code word is null, stop forcing
--			 * and restart auto negotiation.
- 			 */
--			if ((rxcw & E1000_RXCW_C) || !(rxcw & E1000_RXCW_CW))  {
-+			if (rxcw & E1000_RXCW_C) {
- 				/* Enable autoneg, and unforce link up */
- 				ew32(TXCW, mac->txcw);
- 				ew32(CTRL, (ctrl & ~E1000_CTRL_SLU));
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0027-ALSA-hda-remove-quirk-for-Dell-Vostro-1015.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0027-ALSA-hda-remove-quirk-for-Dell-Vostro-1015.patch
deleted file mode 100644
index 0f76ad6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0027-ALSA-hda-remove-quirk-for-Dell-Vostro-1015.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e812f3553b54d0a821ba55198f31d898cf57a6b0 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Tue, 7 Aug 2012 14:03:29 +0200
-Subject: [PATCH 27/38] ALSA: hda - remove quirk for Dell Vostro 1015
-
-commit e9fc83cb2e5877801a255a37ddbc5be996ea8046 upstream.
-
-This computer is confirmed working with model=auto on kernel 3.2.
-Also, parsing fails with hda-emu with the current model.
-
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_conexant.c |    1 -
- 1 files changed, 0 insertions(+), 1 deletions(-)
-
-diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
-index 51a1afc..402f330 100644
---- a/sound/pci/hda/patch_conexant.c
-+++ b/sound/pci/hda/patch_conexant.c
-@@ -3059,7 +3059,6 @@ static const struct snd_pci_quirk cxt5066_cfg_tbl[] = {
- 	SND_PCI_QUIRK(0x1028, 0x02d8, "Dell Vostro", CXT5066_DELL_VOSTRO),
- 	SND_PCI_QUIRK(0x1028, 0x02f5, "Dell Vostro 320", CXT5066_IDEAPAD),
- 	SND_PCI_QUIRK(0x1028, 0x0401, "Dell Vostro 1014", CXT5066_DELL_VOSTRO),
--	SND_PCI_QUIRK(0x1028, 0x0402, "Dell Vostro", CXT5066_DELL_VOSTRO),
- 	SND_PCI_QUIRK(0x1028, 0x0408, "Dell Inspiron One 19T", CXT5066_IDEAPAD),
- 	SND_PCI_QUIRK(0x1028, 0x050f, "Dell Inspiron", CXT5066_IDEAPAD),
- 	SND_PCI_QUIRK(0x1028, 0x0510, "Dell Vostro", CXT5066_IDEAPAD),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0028-ALSA-hda-Fix-double-quirk-for-Quanta-FL1-Lenovo-Idea.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0028-ALSA-hda-Fix-double-quirk-for-Quanta-FL1-Lenovo-Idea.patch
deleted file mode 100644
index 8bd1291..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0028-ALSA-hda-Fix-double-quirk-for-Quanta-FL1-Lenovo-Idea.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 48c0a41688550241188e24029bfbc89b431f39be Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Wed, 8 Aug 2012 08:43:37 +0200
-Subject: [PATCH 28/38] ALSA: hda - Fix double quirk for Quanta FL1 / Lenovo
- Ideapad
-
-commit 012e7eb1e501d0120e0383b81477f63091f5e365 upstream.
-
-The same ID is twice in the quirk table, so the second one is not used.
-
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- sound/pci/hda/patch_realtek.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 2bf8cbb..32c8169 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4981,6 +4981,8 @@ static const struct alc_fixup alc269_fixups[] = {
- 	[ALC269_FIXUP_PCM_44K] = {
- 		.type = ALC_FIXUP_FUNC,
- 		.v.func = alc269_fixup_pcm_44k,
-+		.chained = true,
-+		.chain_id = ALC269_FIXUP_QUANTA_MUTE
- 	},
- 	[ALC269_FIXUP_STEREO_DMIC] = {
- 		.type = ALC_FIXUP_FUNC,
-@@ -5080,8 +5082,7 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x17aa, 0x21fa, "Thinkpad X230", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x21fb, "Thinkpad T430s", ALC269_FIXUP_LENOVO_DOCK),
- 	SND_PCI_QUIRK(0x17aa, 0x2203, "Thinkpad X230 Tablet", ALC269_FIXUP_LENOVO_DOCK),
--	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_QUANTA_MUTE),
--	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Lenovo Ideapd", ALC269_FIXUP_PCM_44K),
-+	SND_PCI_QUIRK(0x17aa, 0x3bf8, "Quanta FL1", ALC269_FIXUP_PCM_44K),
- 	SND_PCI_QUIRK(0x17aa, 0x9e54, "LENOVO NB", ALC269_FIXUP_LENOVO_EAPD),
- 
- #if 1
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0029-ARM-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0029-ARM-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch
deleted file mode 100644
index 74e4c99..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0029-ARM-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From d1a256509df27e34f01e3c36017f21fd94b9d40f Mon Sep 17 00:00:00 2001
-From: Arnd Bergmann <arnd at arndb.de>
-Date: Sun, 5 Aug 2012 14:58:37 +0000
-Subject: [PATCH 29/38] ARM: pxa: remove irq_to_gpio from ezx-pcap driver
-
-commit 59ee93a528b94ef4e81a08db252b0326feff171f upstream.
-
-The irq_to_gpio function was removed from the pxa platform
-in linux-3.2, and this driver has been broken since.
-
-There is actually no in-tree user of this driver that adds
-this platform device, but the driver can and does get enabled
-on some platforms.
-
-Without this patch, building ezx_defconfig results in:
-
-drivers/mfd/ezx-pcap.c: In function 'pcap_isr_work':
-drivers/mfd/ezx-pcap.c:205:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
-
-Signed-off-by: Arnd Bergmann <arnd at arndb.de>
-Acked-by: Haojian Zhuang <haojian.zhuang at gmail.com>
-Cc: Samuel Ortiz <sameo at linux.intel.com>
-Cc: Daniel Ribeiro <drwyrm at gmail.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/mfd/ezx-pcap.c       |    2 +-
- include/linux/mfd/ezx-pcap.h |    1 +
- 2 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/mfd/ezx-pcap.c b/drivers/mfd/ezx-pcap.c
-index 43a76c4..db662e2 100644
---- a/drivers/mfd/ezx-pcap.c
-+++ b/drivers/mfd/ezx-pcap.c
-@@ -202,7 +202,7 @@ static void pcap_isr_work(struct work_struct *work)
- 		}
- 		local_irq_enable();
- 		ezx_pcap_write(pcap, PCAP_REG_MSR, pcap->msr);
--	} while (gpio_get_value(irq_to_gpio(pcap->spi->irq)));
-+	} while (gpio_get_value(pdata->gpio));
- }
- 
- static void pcap_irq_handler(unsigned int irq, struct irq_desc *desc)
-diff --git a/include/linux/mfd/ezx-pcap.h b/include/linux/mfd/ezx-pcap.h
-index 40c37216..32a1b5c 100644
---- a/include/linux/mfd/ezx-pcap.h
-+++ b/include/linux/mfd/ezx-pcap.h
-@@ -16,6 +16,7 @@ struct pcap_subdev {
- struct pcap_platform_data {
- 	unsigned int irq_base;
- 	unsigned int config;
-+	int gpio;
- 	void (*init) (void *);	/* board specific init */
- 	int num_subdevs;
- 	struct pcap_subdev *subdevs;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0030-Input-eeti_ts-pass-gpio-value-instead-of-IRQ.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0030-Input-eeti_ts-pass-gpio-value-instead-of-IRQ.patch
deleted file mode 100644
index ba341a4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0030-Input-eeti_ts-pass-gpio-value-instead-of-IRQ.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From 2cc9ed812de17dc47de5a66405766895cc02c729 Mon Sep 17 00:00:00 2001
-From: Arnd Bergmann <arnd at arndb.de>
-Date: Mon, 30 Apr 2012 16:21:37 +0000
-Subject: [PATCH 30/38] Input: eeti_ts: pass gpio value instead of IRQ
-
-commit 4eef6cbfcc03b294d9d334368a851b35b496ce53 upstream.
-
-The EETI touchscreen asserts its IRQ line as soon as it has data in its
-internal buffers. The line is automatically deasserted once all data has
-been read via I2C. Hence, the driver has to monitor the GPIO line and
-cannot simply rely on the interrupt handler reception.
-
-In the current implementation of the driver, irq_to_gpio() is used to
-determine the GPIO number from the i2c_client's IRQ value.
-
-As irq_to_gpio() is not available on all platforms, this patch changes
-this and makes the driver ignore the passed in IRQ. Instead, a GPIO is
-added to the platform_data struct and gpio_to_irq is used to derive the
-IRQ from that GPIO. If this fails, bail out. The driver is only able to
-work in environments where the touchscreen GPIO can be mapped to an
-IRQ.
-
-Without this patch, building raumfeld_defconfig results in:
-
-drivers/input/touchscreen/eeti_ts.c: In function 'eeti_ts_irq_active':
-drivers/input/touchscreen/eeti_ts.c:65:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration]
-
-Signed-off-by: Daniel Mack <zonque at gmail.com>
-Signed-off-by: Arnd Bergmann <arnd at arndb.de>
-Cc: Dmitry Torokhov <dmitry.torokhov at gmail.com>
-Cc: Sven Neumann <s.neumann at raumfeld.com>
-Cc: linux-input at vger.kernel.org
-Cc: Haojian Zhuang <haojian.zhuang at gmail.com>
-[bwh: Backported to 3.2: raumfeld_controller_i2c_board_info.irq was
- initialised using gpio_to_irq(), but this doesn't seem to matter]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/arm/mach-pxa/raumfeld.c        |    2 +-
- drivers/input/touchscreen/eeti_ts.c |   21 +++++++++++++--------
- include/linux/input/eeti_ts.h       |    1 +
- 3 files changed, 15 insertions(+), 9 deletions(-)
-
-diff --git a/arch/arm/mach-pxa/raumfeld.c b/arch/arm/mach-pxa/raumfeld.c
-index f0c05f4..ae7786d 100644
---- a/arch/arm/mach-pxa/raumfeld.c
-+++ b/arch/arm/mach-pxa/raumfeld.c
-@@ -951,12 +951,12 @@ static struct i2c_board_info raumfeld_connector_i2c_board_info __initdata = {
- 
- static struct eeti_ts_platform_data eeti_ts_pdata = {
- 	.irq_active_high = 1,
-+	.irq_gpio = GPIO_TOUCH_IRQ,
- };
- 
- static struct i2c_board_info raumfeld_controller_i2c_board_info __initdata = {
- 	.type	= "eeti_ts",
- 	.addr	= 0x0a,
--	.irq	= gpio_to_irq(GPIO_TOUCH_IRQ),
- 	.platform_data = &eeti_ts_pdata,
- };
- 
-diff --git a/drivers/input/touchscreen/eeti_ts.c b/drivers/input/touchscreen/eeti_ts.c
-index 7f8f538..4f938bb 100644
---- a/drivers/input/touchscreen/eeti_ts.c
-+++ b/drivers/input/touchscreen/eeti_ts.c
-@@ -48,7 +48,7 @@ struct eeti_ts_priv {
- 	struct input_dev *input;
- 	struct work_struct work;
- 	struct mutex mutex;
--	int irq, irq_active_high;
-+	int irq_gpio, irq, irq_active_high;
- };
- 
- #define EETI_TS_BITDEPTH	(11)
-@@ -62,7 +62,7 @@ struct eeti_ts_priv {
- 
- static inline int eeti_ts_irq_active(struct eeti_ts_priv *priv)
- {
--	return gpio_get_value(irq_to_gpio(priv->irq)) == priv->irq_active_high;
-+	return gpio_get_value(priv->irq_gpio) == priv->irq_active_high;
- }
- 
- static void eeti_ts_read(struct work_struct *work)
-@@ -157,7 +157,7 @@ static void eeti_ts_close(struct input_dev *dev)
- static int __devinit eeti_ts_probe(struct i2c_client *client,
- 				   const struct i2c_device_id *idp)
- {
--	struct eeti_ts_platform_data *pdata;
-+	struct eeti_ts_platform_data *pdata = client->dev.platform_data;
- 	struct eeti_ts_priv *priv;
- 	struct input_dev *input;
- 	unsigned int irq_flags;
-@@ -199,9 +199,12 @@ static int __devinit eeti_ts_probe(struct i2c_client *client,
- 
- 	priv->client = client;
- 	priv->input = input;
--	priv->irq = client->irq;
-+	priv->irq_gpio = pdata->irq_gpio;
-+	priv->irq = gpio_to_irq(pdata->irq_gpio);
- 
--	pdata = client->dev.platform_data;
-+	err = gpio_request_one(pdata->irq_gpio, GPIOF_IN, client->name);
-+	if (err < 0)
-+		goto err1;
- 
- 	if (pdata)
- 		priv->irq_active_high = pdata->irq_active_high;
-@@ -215,13 +218,13 @@ static int __devinit eeti_ts_probe(struct i2c_client *client,
- 
- 	err = input_register_device(input);
- 	if (err)
--		goto err1;
-+		goto err2;
- 
- 	err = request_irq(priv->irq, eeti_ts_isr, irq_flags,
- 			  client->name, priv);
- 	if (err) {
- 		dev_err(&client->dev, "Unable to request touchscreen IRQ.\n");
--		goto err2;
-+		goto err3;
- 	}
- 
- 	/*
-@@ -233,9 +236,11 @@ static int __devinit eeti_ts_probe(struct i2c_client *client,
- 	device_init_wakeup(&client->dev, 0);
- 	return 0;
- 
--err2:
-+err3:
- 	input_unregister_device(input);
- 	input = NULL; /* so we dont try to free it below */
-+err2:
-+	gpio_free(pdata->irq_gpio);
- err1:
- 	input_free_device(input);
- 	kfree(priv);
-diff --git a/include/linux/input/eeti_ts.h b/include/linux/input/eeti_ts.h
-index f875b31..16625d7 100644
---- a/include/linux/input/eeti_ts.h
-+++ b/include/linux/input/eeti_ts.h
-@@ -2,6 +2,7 @@
- #define LINUX_INPUT_EETI_TS_H
- 
- struct eeti_ts_platform_data {
-+	int irq_gpio;
- 	unsigned int irq_active_high;
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0031-drm-i915-Add-wait_for-in-init_ring_common.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0031-drm-i915-Add-wait_for-in-init_ring_common.patch
deleted file mode 100644
index e45866d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0031-drm-i915-Add-wait_for-in-init_ring_common.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From d23b1ce378587bb69517adb584a891ae632e6796 Mon Sep 17 00:00:00 2001
-From: Sean Paul <seanpaul at chromium.org>
-Date: Fri, 16 Mar 2012 12:43:22 -0400
-Subject: [PATCH 31/38] drm/i915: Add wait_for in init_ring_common
-
-commit f01db988ef6f6c70a6cc36ee71e4a98a68901229 upstream.
-
-I have seen a number of "blt ring initialization failed" messages
-where the ctl or start registers are not the correct value. Upon further
-inspection, if the code just waited a little bit, it would read the
-correct value. Adding the wait_for to these reads should eliminate the
-issue.
-
-Signed-off-by: Sean Paul <seanpaul at chromium.org>
-Reviewed-by: Ben Widawsky <ben at bwidawsk.net>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |    6 +++---
- 1 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index d2cbe5d..4983e59 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -295,9 +295,9 @@ static int init_ring_common(struct intel_ring_buffer *ring)
- 			| RING_VALID);
- 
- 	/* If the head is still not zero, the ring is dead */
--	if ((I915_READ_CTL(ring) & RING_VALID) == 0 ||
--	    I915_READ_START(ring) != obj->gtt_offset ||
--	    (I915_READ_HEAD(ring) & HEAD_ADDR) != 0) {
-+	if (wait_for((I915_READ_CTL(ring) & RING_VALID) != 0 &&
-+		     I915_READ_START(ring) == obj->gtt_offset &&
-+		     (I915_READ_HEAD(ring) & HEAD_ADDR) == 0, 50)) {
- 		DRM_ERROR("%s initialization failed "
- 				"ctl %08x head %08x tail %08x start %08x\n",
- 				ring->name,
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0032-drm-i915-correctly-order-the-ring-init-sequence.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0032-drm-i915-correctly-order-the-ring-init-sequence.patch
deleted file mode 100644
index dffe4de..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0032-drm-i915-correctly-order-the-ring-init-sequence.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 0985ae7d2afe20b2e54416d1985672a37aea9f0a Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Tue, 7 Aug 2012 09:54:14 +0200
-Subject: [PATCH 32/38] drm/i915: correctly order the ring init sequence
-
-commit 0d8957c8a90bbb5d34fab9a304459448a5131e06 upstream.
-
-We may only start to set up the new register values after having
-confirmed that the ring is truely off. Otherwise the hw might lose the
-newly written register values. This is caught later on in the init
-sequence, when we check whether the register writes have stuck.
-
-Reviewed-by: Jani Nikula <jani.nikula at intel.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50522
-Tested-by: Yang Guang <guang.a.yang at intel.com>
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |    7 +++++--
- 1 files changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index 4983e59..19085c0 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -263,8 +263,6 @@ static int init_ring_common(struct intel_ring_buffer *ring)
- 	I915_WRITE_HEAD(ring, 0);
- 	ring->write_tail(ring, 0);
- 
--	/* Initialize the ring. */
--	I915_WRITE_START(ring, obj->gtt_offset);
- 	head = I915_READ_HEAD(ring) & HEAD_ADDR;
- 
- 	/* G45 ring initialization fails to reset head to zero */
-@@ -290,6 +288,11 @@ static int init_ring_common(struct intel_ring_buffer *ring)
- 		}
- 	}
- 
-+	/* Initialize the ring. This must happen _after_ we've cleared the ring
-+	 * registers with the above sequence (the readback of the HEAD registers
-+	 * also enforces ordering), otherwise the hw might lose the new ring
-+	 * register values. */
-+	I915_WRITE_START(ring, obj->gtt_offset);
- 	I915_WRITE_CTL(ring,
- 			((ring->size - PAGE_SIZE) & RING_NR_PAGES)
- 			| RING_VALID);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0033-s390-compat-fix-compat-wrappers-for-process_vm-syste.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0033-s390-compat-fix-compat-wrappers-for-process_vm-syste.patch
deleted file mode 100644
index b004b58..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0033-s390-compat-fix-compat-wrappers-for-process_vm-syste.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 664f500626e5151a1b9350bb7e6fc68618d7769c Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <heiko.carstens at de.ibm.com>
-Date: Tue, 7 Aug 2012 09:48:13 +0200
-Subject: [PATCH 33/38] s390/compat: fix compat wrappers for process_vm system
- calls
-
-commit 82aabdb6f1eb61e0034ec23901480f5dd23db7c4 upstream.
-
-The compat wrappers incorrectly called the non compat versions of
-the system process_vm system calls.
-
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/kernel/compat_wrapper.S |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S
-index 18c51df..25408d3 100644
---- a/arch/s390/kernel/compat_wrapper.S
-+++ b/arch/s390/kernel/compat_wrapper.S
-@@ -1636,7 +1636,7 @@ ENTRY(compat_sys_process_vm_readv_wrapper)
- 	llgfr	%r6,%r6			# unsigned long
- 	llgf	%r0,164(%r15)		# unsigned long
- 	stg	%r0,160(%r15)
--	jg	sys_process_vm_readv
-+	jg	compat_sys_process_vm_readv
- 
- ENTRY(compat_sys_process_vm_writev_wrapper)
- 	lgfr	%r2,%r2			# compat_pid_t
-@@ -1646,4 +1646,4 @@ ENTRY(compat_sys_process_vm_writev_wrapper)
- 	llgfr	%r6,%r6			# unsigned long
- 	llgf	%r0,164(%r15)		# unsigned long
- 	stg	%r0,160(%r15)
--	jg	sys_process_vm_writev
-+	jg	compat_sys_process_vm_writev
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0034-s390-compat-fix-mmap-compat-system-calls.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0034-s390-compat-fix-mmap-compat-system-calls.patch
deleted file mode 100644
index 043e7cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0034-s390-compat-fix-mmap-compat-system-calls.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 406540dcb821843e6807203e7530a00909d42bf0 Mon Sep 17 00:00:00 2001
-From: Heiko Carstens <heiko.carstens at de.ibm.com>
-Date: Wed, 8 Aug 2012 09:32:20 +0200
-Subject: [PATCH 34/38] s390/compat: fix mmap compat system calls
-
-commit e85871218513c54f7dfdb6009043cb638f2fecbe upstream.
-
-The native 31 bit and the compat behaviour for the mmap system calls differ:
-
-In native 31 bit mode the passed in address for the mmap system call will be
-unmodified passed to sys_mmap_pgoff().
-In compat mode however the passed in address will be modified with
-compat_ptr() which masks out the most significant bit.
-
-The result is that in native 31 bit mode each mmap request (with MAP_FIXED)
-will fail where the most significat bit is set, while in compat mode it
-may succeed.
-
-This odd behaviour was introduced with d3815898 "[S390] mmap: add missing
-compat_ptr conversion to both mmap compat syscalls".
-
-To restore a consistent behaviour accross native and compat mode this
-patch functionally reverts the above mentioned commit.
-
-Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- arch/s390/kernel/compat_linux.c |    2 --
- 1 files changed, 0 insertions(+), 2 deletions(-)
-
-diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c
-index 84a9828..38c6645 100644
---- a/arch/s390/kernel/compat_linux.c
-+++ b/arch/s390/kernel/compat_linux.c
-@@ -615,7 +615,6 @@ asmlinkage unsigned long old32_mmap(struct mmap_arg_struct_emu31 __user *arg)
- 		return -EFAULT;
- 	if (a.offset & ~PAGE_MASK)
- 		return -EINVAL;
--	a.addr = (unsigned long) compat_ptr(a.addr);
- 	return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd,
- 			      a.offset >> PAGE_SHIFT);
- }
-@@ -626,7 +625,6 @@ asmlinkage long sys32_mmap2(struct mmap_arg_struct_emu31 __user *arg)
- 
- 	if (copy_from_user(&a, arg, sizeof(a)))
- 		return -EFAULT;
--	a.addr = (unsigned long) compat_ptr(a.addr);
- 	return sys_mmap_pgoff(a.addr, a.len, a.prot, a.flags, a.fd, a.offset);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0035-drm-radeon-fix-bank-tiling-parameters-on-evergreen.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0035-drm-radeon-fix-bank-tiling-parameters-on-evergreen.patch
deleted file mode 100644
index e95ddc7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0035-drm-radeon-fix-bank-tiling-parameters-on-evergreen.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 15678bda8906e4eef89b8b2f9661a765f86aced6 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 31 Jul 2012 11:01:10 -0400
-Subject: [PATCH 35/38] drm/radeon: fix bank tiling parameters on evergreen
-
-commit c8d15edc17d836686d1f071e564800e1a2724fa6 upstream.
-
-Handle the 16 bank case.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/evergreen.c |   14 +++++++++++---
- 1 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 931f4df..3fdbdd1 100644
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -2080,10 +2080,18 @@ static void evergreen_gpu_init(struct radeon_device *rdev)
- 	if (rdev->flags & RADEON_IS_IGP)
- 		rdev->config.evergreen.tile_config |= 1 << 4;
- 	else {
--		if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT)
--			rdev->config.evergreen.tile_config |= 1 << 4;
--		else
-+		switch ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) {
-+		case 0: /* four banks */
- 			rdev->config.evergreen.tile_config |= 0 << 4;
-+			break;
-+		case 1: /* eight banks */
-+			rdev->config.evergreen.tile_config |= 1 << 4;
-+			break;
-+		case 2: /* sixteen banks */
-+		default:
-+			rdev->config.evergreen.tile_config |= 2 << 4;
-+			break;
-+		}
- 	}
- 	rdev->config.evergreen.tile_config |=
- 		((mc_arb_ramcfg & BURSTLENGTH_MASK) >> BURSTLENGTH_SHIFT) << 8;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0036-drm-radeon-fix-bank-tiling-parameters-on-cayman.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0036-drm-radeon-fix-bank-tiling-parameters-on-cayman.patch
deleted file mode 100644
index e001c22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0036-drm-radeon-fix-bank-tiling-parameters-on-cayman.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 175620c56b4907a68fd11f7bfbea559739394915 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Tue, 31 Jul 2012 11:05:11 -0400
-Subject: [PATCH 36/38] drm/radeon: fix bank tiling parameters on cayman
-
-commit 5b23c9045a8b61352986270b2d109edf5085e113 upstream.
-
-Handle the 16 bank case.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-[bwh: Backported to 3.2: adjust context, indentation]
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/ni.c |   14 +++++++++++---
- 1 files changed, 11 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/ni.c b/drivers/gpu/drm/radeon/ni.c
-index 9e50814..636255b 100644
---- a/drivers/gpu/drm/radeon/ni.c
-+++ b/drivers/gpu/drm/radeon/ni.c
-@@ -804,10 +804,18 @@ static void cayman_gpu_init(struct radeon_device *rdev)
- 		rdev->config.cayman.tile_config |= (3 << 0);
- 		break;
- 	}
--	if ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT)
--		rdev->config.cayman.tile_config |= 1 << 4;
--	else
-+	switch ((mc_arb_ramcfg & NOOFBANK_MASK) >> NOOFBANK_SHIFT) {
-+	case 0: /* four banks */
- 		rdev->config.cayman.tile_config |= 0 << 4;
-+		break;
-+	case 1: /* eight banks */
-+		rdev->config.cayman.tile_config |= 1 << 4;
-+		break;
-+	case 2: /* sixteen banks */
-+	default:
-+		rdev->config.cayman.tile_config |= 2 << 4;
-+		break;
-+	}
- 	rdev->config.cayman.tile_config |=
- 		((gb_addr_config & PIPE_INTERLEAVE_SIZE_MASK) >> PIPE_INTERLEAVE_SIZE_SHIFT) << 8;
- 	rdev->config.cayman.tile_config |=
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0037-drm-radeon-do-not-reenable-crtc-after-moving-vram-st.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0037-drm-radeon-do-not-reenable-crtc-after-moving-vram-st.patch
deleted file mode 100644
index 435ae16..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0037-drm-radeon-do-not-reenable-crtc-after-moving-vram-st.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From 5c84fba575f5b4915184ba74d2f3be21ffb231b9 Mon Sep 17 00:00:00 2001
-From: Jerome Glisse <jglisse at redhat.com>
-Date: Fri, 27 Jul 2012 16:32:24 -0400
-Subject: [PATCH 37/38] drm/radeon: do not reenable crtc after moving vram
- start address
-
-commit 81ee8fb6b52ec69eeed37fe7943446af1dccecc5 upstream.
-
-It seems we can not update the crtc scanout address. After disabling
-crtc, update to base address do not take effect after crtc being
-reenable leading to at least frame being scanout from the old crtc
-base address. Disabling crtc display request lead to same behavior.
-
-So after changing the vram address if we don't keep crtc disabled
-we will have the GPU trying to read some random system memory address
-with some iommu this will broke the crtc engine and will lead to
-broken display and iommu error message.
-
-So to avoid this, disable crtc. For flicker less boot we will need
-to avoid moving the vram start address.
-
-This patch should also fix :
-
-https://bugs.freedesktop.org/show_bug.cgi?id=42373
-
-Signed-off-by: Jerome Glisse <jglisse at redhat.com>
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
----
- drivers/gpu/drm/radeon/evergreen.c   |   57 ----------------------------------
- drivers/gpu/drm/radeon/radeon_asic.h |    8 +---
- drivers/gpu/drm/radeon/rv515.c       |   13 --------
- 3 files changed, 2 insertions(+), 76 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/evergreen.c b/drivers/gpu/drm/radeon/evergreen.c
-index 3fdbdd1..fc0633c 100644
---- a/drivers/gpu/drm/radeon/evergreen.c
-+++ b/drivers/gpu/drm/radeon/evergreen.c
-@@ -1065,24 +1065,8 @@ void evergreen_agp_enable(struct radeon_device *rdev)
- 
- void evergreen_mc_stop(struct radeon_device *rdev, struct evergreen_mc_save *save)
- {
--	save->vga_control[0] = RREG32(D1VGA_CONTROL);
--	save->vga_control[1] = RREG32(D2VGA_CONTROL);
- 	save->vga_render_control = RREG32(VGA_RENDER_CONTROL);
- 	save->vga_hdp_control = RREG32(VGA_HDP_CONTROL);
--	save->crtc_control[0] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET);
--	save->crtc_control[1] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET);
--	if (rdev->num_crtc >= 4) {
--		save->vga_control[2] = RREG32(EVERGREEN_D3VGA_CONTROL);
--		save->vga_control[3] = RREG32(EVERGREEN_D4VGA_CONTROL);
--		save->crtc_control[2] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET);
--		save->crtc_control[3] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET);
--	}
--	if (rdev->num_crtc >= 6) {
--		save->vga_control[4] = RREG32(EVERGREEN_D5VGA_CONTROL);
--		save->vga_control[5] = RREG32(EVERGREEN_D6VGA_CONTROL);
--		save->crtc_control[4] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET);
--		save->crtc_control[5] = RREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET);
--	}
- 
- 	/* Stop all video */
- 	WREG32(VGA_RENDER_CONTROL, 0);
-@@ -1193,47 +1177,6 @@ void evergreen_mc_resume(struct radeon_device *rdev, struct evergreen_mc_save *s
- 	/* Unlock host access */
- 	WREG32(VGA_HDP_CONTROL, save->vga_hdp_control);
- 	mdelay(1);
--	/* Restore video state */
--	WREG32(D1VGA_CONTROL, save->vga_control[0]);
--	WREG32(D2VGA_CONTROL, save->vga_control[1]);
--	if (rdev->num_crtc >= 4) {
--		WREG32(EVERGREEN_D3VGA_CONTROL, save->vga_control[2]);
--		WREG32(EVERGREEN_D4VGA_CONTROL, save->vga_control[3]);
--	}
--	if (rdev->num_crtc >= 6) {
--		WREG32(EVERGREEN_D5VGA_CONTROL, save->vga_control[4]);
--		WREG32(EVERGREEN_D6VGA_CONTROL, save->vga_control[5]);
--	}
--	WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 1);
--	WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 1);
--	if (rdev->num_crtc >= 4) {
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 1);
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 1);
--	}
--	if (rdev->num_crtc >= 6) {
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 1);
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 1);
--	}
--	WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC0_REGISTER_OFFSET, save->crtc_control[0]);
--	WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC1_REGISTER_OFFSET, save->crtc_control[1]);
--	if (rdev->num_crtc >= 4) {
--		WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC2_REGISTER_OFFSET, save->crtc_control[2]);
--		WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC3_REGISTER_OFFSET, save->crtc_control[3]);
--	}
--	if (rdev->num_crtc >= 6) {
--		WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC4_REGISTER_OFFSET, save->crtc_control[4]);
--		WREG32(EVERGREEN_CRTC_CONTROL + EVERGREEN_CRTC5_REGISTER_OFFSET, save->crtc_control[5]);
--	}
--	WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC0_REGISTER_OFFSET, 0);
--	WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC1_REGISTER_OFFSET, 0);
--	if (rdev->num_crtc >= 4) {
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC2_REGISTER_OFFSET, 0);
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC3_REGISTER_OFFSET, 0);
--	}
--	if (rdev->num_crtc >= 6) {
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC4_REGISTER_OFFSET, 0);
--		WREG32(EVERGREEN_CRTC_UPDATE_LOCK + EVERGREEN_CRTC5_REGISTER_OFFSET, 0);
--	}
- 	WREG32(VGA_RENDER_CONTROL, save->vga_render_control);
- }
- 
-diff --git a/drivers/gpu/drm/radeon/radeon_asic.h b/drivers/gpu/drm/radeon/radeon_asic.h
-index 5991484..5ce9402 100644
---- a/drivers/gpu/drm/radeon/radeon_asic.h
-+++ b/drivers/gpu/drm/radeon/radeon_asic.h
-@@ -253,13 +253,10 @@ void rs690_line_buffer_adjust(struct radeon_device *rdev,
-  * rv515
-  */
- struct rv515_mc_save {
--	u32 d1vga_control;
--	u32 d2vga_control;
- 	u32 vga_render_control;
- 	u32 vga_hdp_control;
--	u32 d1crtc_control;
--	u32 d2crtc_control;
- };
-+
- int rv515_init(struct radeon_device *rdev);
- void rv515_fini(struct radeon_device *rdev);
- uint32_t rv515_mc_rreg(struct radeon_device *rdev, uint32_t reg);
-@@ -387,11 +384,10 @@ void r700_cp_fini(struct radeon_device *rdev);
-  * evergreen
-  */
- struct evergreen_mc_save {
--	u32 vga_control[6];
- 	u32 vga_render_control;
- 	u32 vga_hdp_control;
--	u32 crtc_control[6];
- };
-+
- void evergreen_pcie_gart_tlb_flush(struct radeon_device *rdev);
- int evergreen_init(struct radeon_device *rdev);
- void evergreen_fini(struct radeon_device *rdev);
-diff --git a/drivers/gpu/drm/radeon/rv515.c b/drivers/gpu/drm/radeon/rv515.c
-index 6613ee9..d5f45b4 100644
---- a/drivers/gpu/drm/radeon/rv515.c
-+++ b/drivers/gpu/drm/radeon/rv515.c
-@@ -281,12 +281,8 @@ int rv515_debugfs_ga_info_init(struct radeon_device *rdev)
- 
- void rv515_mc_stop(struct radeon_device *rdev, struct rv515_mc_save *save)
- {
--	save->d1vga_control = RREG32(R_000330_D1VGA_CONTROL);
--	save->d2vga_control = RREG32(R_000338_D2VGA_CONTROL);
- 	save->vga_render_control = RREG32(R_000300_VGA_RENDER_CONTROL);
- 	save->vga_hdp_control = RREG32(R_000328_VGA_HDP_CONTROL);
--	save->d1crtc_control = RREG32(R_006080_D1CRTC_CONTROL);
--	save->d2crtc_control = RREG32(R_006880_D2CRTC_CONTROL);
- 
- 	/* Stop all video */
- 	WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0);
-@@ -311,15 +307,6 @@ void rv515_mc_resume(struct radeon_device *rdev, struct rv515_mc_save *save)
- 	/* Unlock host access */
- 	WREG32(R_000328_VGA_HDP_CONTROL, save->vga_hdp_control);
- 	mdelay(1);
--	/* Restore video state */
--	WREG32(R_000330_D1VGA_CONTROL, save->d1vga_control);
--	WREG32(R_000338_D2VGA_CONTROL, save->d2vga_control);
--	WREG32(R_0060E8_D1CRTC_UPDATE_LOCK, 1);
--	WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 1);
--	WREG32(R_006080_D1CRTC_CONTROL, save->d1crtc_control);
--	WREG32(R_006880_D2CRTC_CONTROL, save->d2crtc_control);
--	WREG32(R_0060E8_D1CRTC_UPDATE_LOCK, 0);
--	WREG32(R_0068E8_D2CRTC_UPDATE_LOCK, 0);
- 	WREG32(R_000300_VGA_RENDER_CONTROL, save->vga_render_control);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0038-Linux-3.2.28.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0038-Linux-3.2.28.patch
deleted file mode 100644
index 54aab40..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.28/0038-Linux-3.2.28.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 07d458defd356c96a7d4edaeae46b5b17f37fd2b Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Sun, 19 Aug 2012 18:15:38 +0100
-Subject: [PATCH 38/38] Linux 3.2.28
-
----
- Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/Makefile b/Makefile
-index bdf851f..5368961 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 27
-+SUBLEVEL = 28
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0001-ALSA-hda-Fix-buffer-alignment-regression-with-Nvidia.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0001-ALSA-hda-Fix-buffer-alignment-regression-with-Nvidia.patch
deleted file mode 100644
index b6b8613..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0001-ALSA-hda-Fix-buffer-alignment-regression-with-Nvidia.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 1ed5e98ecefcb8abd70088d0d51688e82c3fd432 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 23 Jan 2012 17:10:24 +0100
-Subject: [PATCH 01/90] ALSA: hda - Fix buffer-alignment regression with
- Nvidia HDMI
-
-commit 52409aa6a0e96337da137c069856298f4dd825a0 upstream.
-
-The commit 2ae66c26550cd94b0e2606a9275eb0ab7070ad0e
-    ALSA: hda: option to enable arbitrary buffer/period sizes
-introduced a regression on machines with Intel controller and Nvidia
-HDMI.  The reason is that the driver modifies the global variable
-align_buffer_size when an Intel controller is found, and the Nvidia
-HDMI controller is probed after Intel although Nvidia chips require
-the aligned buffers.
-
-This patch fixes the problem by moving the flag into the local struct
-so that it's not affected by other controllers.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42567
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/hda_intel.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/hda_intel.c b/sound/pci/hda/hda_intel.c
-index 5b2b75b..192e6c0 100644
---- a/sound/pci/hda/hda_intel.c
-+++ b/sound/pci/hda/hda_intel.c
-@@ -461,6 +461,7 @@ struct azx {
- 	unsigned int irq_pending_warned :1;
- 	unsigned int probing :1; /* codec probing phase */
- 	unsigned int snoop:1;
-+	unsigned int align_buffer_size:1;
- 
- 	/* for debugging */
- 	unsigned int last_cmd[AZX_MAX_CODECS];
-@@ -1697,7 +1698,7 @@ static int azx_pcm_open(struct snd_pcm_substream *substream)
- 	runtime->hw.rates = hinfo->rates;
- 	snd_pcm_limit_hw_rates(runtime);
- 	snd_pcm_hw_constraint_integer(runtime, SNDRV_PCM_HW_PARAM_PERIODS);
--	if (align_buffer_size)
-+	if (chip->align_buffer_size)
- 		/* constrain buffer sizes to be multiple of 128
- 		   bytes. This is more efficient in terms of memory
- 		   access but isn't required by the HDA spec and
-@@ -2753,8 +2754,9 @@ static int __devinit azx_create(struct snd_card *card, struct pci_dev *pci,
- 	}
- 
- 	/* disable buffer size rounding to 128-byte multiples if supported */
-+	chip->align_buffer_size = align_buffer_size;
- 	if (chip->driver_caps & AZX_DCAPS_BUFSIZE)
--		align_buffer_size = 0;
-+		chip->align_buffer_size = 0;
- 
- 	/* allow 64bit DMA address if supported by H/W */
- 	if ((gcap & ICH6_GCAP_64OK) && !pci_set_dma_mask(pci, DMA_BIT_MASK(64)))
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0002-ALSA-hda-Fix-silent-outputs-from-docking-station-jac.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0002-ALSA-hda-Fix-silent-outputs-from-docking-station-jac.patch
deleted file mode 100644
index e4e00dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0002-ALSA-hda-Fix-silent-outputs-from-docking-station-jac.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 9a70f2b5f4dbd354260036f53e4de261a3c127cf Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 23 Jan 2012 18:23:36 +0100
-Subject: [PATCH 02/90] ALSA: hda - Fix silent outputs from docking-station
- jacks of Dell laptops
-
-commit b4ead019afc201f71c39cd0dfcaafed4a97b3dd2 upstream.
-
-The recent change of the power-widget handling for IDT codecs caused
-the silent output from the docking-station line-out jack.  This was
-partially fixed by the commit f2cbba7602383cd9cdd21f0a5d0b8bd1aad47b33
-"ALSA: hda - Fix the lost power-setup of seconary pins after PM resume".
-But the line-out on the docking-station is still silent when booted
-with the jack plugged even by this fix.
-
-The remainig bug is that the power-widget is set off in stac92xx_init()
-because the pins in cfg->line_out_pins[] aren't checked there properly
-but only hp_pins[] are checked in is_nid_hp_pin().
-
-This patch fixes the problem by checking both HP and line-out pins
-and leaving the power-map correctly.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42637
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_sigmatel.c |    8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index f3c73a9..2141cab 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -4253,13 +4253,15 @@ static int enable_pin_detect(struct hda_codec *codec, hda_nid_t nid,
- 	return 1;
- }
- 
--static int is_nid_hp_pin(struct auto_pin_cfg *cfg, hda_nid_t nid)
-+static int is_nid_out_jack_pin(struct auto_pin_cfg *cfg, hda_nid_t nid)
- {
- 	int i;
- 	for (i = 0; i < cfg->hp_outs; i++)
- 		if (cfg->hp_pins[i] == nid)
- 			return 1; /* nid is a HP-Out */
--
-+	for (i = 0; i < cfg->line_outs; i++)
-+		if (cfg->line_out_pins[i] == nid)
-+			return 1; /* nid is a line-Out */
- 	return 0; /* nid is not a HP-Out */
- };
- 
-@@ -4465,7 +4467,7 @@ static int stac92xx_init(struct hda_codec *codec)
- 			continue;
- 		}
- 
--		if (is_nid_hp_pin(cfg, nid))
-+		if (is_nid_out_jack_pin(cfg, nid))
- 			continue; /* already has an unsol event */
- 
- 		pinctl = snd_hda_codec_read(codec, nid, 0,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0003-eCryptfs-Sanitize-write-counts-of-dev-ecryptfs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0003-eCryptfs-Sanitize-write-counts-of-dev-ecryptfs.patch
deleted file mode 100644
index 98eeb93..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0003-eCryptfs-Sanitize-write-counts-of-dev-ecryptfs.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 108360a578c8ac2c9571cbe3f17746476f51fefb Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Thu, 12 Jan 2012 11:30:44 +0100
-Subject: [PATCH 03/90] eCryptfs: Sanitize write counts of /dev/ecryptfs
-
-commit db10e556518eb9d21ee92ff944530d84349684f4 upstream.
-
-A malicious count value specified when writing to /dev/ecryptfs may
-result in a a very large kernel memory allocation.
-
-This patch peeks at the specified packet payload size, adds that to the
-size of the packet headers and compares the result with the write count
-value. The resulting maximum memory allocation size is approximately 532
-bytes.
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/miscdev.c |   56 +++++++++++++++++++++++++++++++++----------------
- 1 file changed, 38 insertions(+), 18 deletions(-)
-
-diff --git a/fs/ecryptfs/miscdev.c b/fs/ecryptfs/miscdev.c
-index 940a82e..0dc5a3d 100644
---- a/fs/ecryptfs/miscdev.c
-+++ b/fs/ecryptfs/miscdev.c
-@@ -409,11 +409,47 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf,
- 	ssize_t sz = 0;
- 	char *data;
- 	uid_t euid = current_euid();
-+	unsigned char packet_size_peek[3];
- 	int rc;
- 
--	if (count == 0)
-+	if (count == 0) {
- 		goto out;
-+	} else if (count == (1 + 4)) {
-+		/* Likely a harmless MSG_HELO or MSG_QUIT - no packet length */
-+		goto memdup;
-+	} else if (count < (1 + 4 + 1)
-+		   || count > (1 + 4 + 2 + sizeof(struct ecryptfs_message) + 4
-+			       + ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES)) {
-+		printk(KERN_WARNING "%s: Acceptable packet size range is "
-+		       "[%d-%lu], but amount of data written is [%zu].",
-+		       __func__, (1 + 4 + 1),
-+		       (1 + 4 + 2 + sizeof(struct ecryptfs_message) + 4
-+			+ ECRYPTFS_MAX_ENCRYPTED_KEY_BYTES), count);
-+		return -EINVAL;
-+	}
-+
-+	if (copy_from_user(packet_size_peek, (buf + 1 + 4),
-+			   sizeof(packet_size_peek))) {
-+		printk(KERN_WARNING "%s: Error while inspecting packet size\n",
-+		       __func__);
-+		return -EFAULT;
-+	}
-+
-+	rc = ecryptfs_parse_packet_length(packet_size_peek, &packet_size,
-+					  &packet_size_length);
-+	if (rc) {
-+		printk(KERN_WARNING "%s: Error parsing packet length; "
-+		       "rc = [%d]\n", __func__, rc);
-+		return rc;
-+	}
-+
-+	if ((1 + 4 + packet_size_length + packet_size) != count) {
-+		printk(KERN_WARNING "%s: Invalid packet size [%zu]\n", __func__,
-+		       packet_size);
-+		return -EINVAL;
-+	}
- 
-+memdup:
- 	data = memdup_user(buf, count);
- 	if (IS_ERR(data)) {
- 		printk(KERN_ERR "%s: memdup_user returned error [%ld]\n",
-@@ -435,23 +471,7 @@ ecryptfs_miscdev_write(struct file *file, const char __user *buf,
- 		}
- 		memcpy(&counter_nbo, &data[i], 4);
- 		seq = be32_to_cpu(counter_nbo);
--		i += 4;
--		rc = ecryptfs_parse_packet_length(&data[i], &packet_size,
--						  &packet_size_length);
--		if (rc) {
--			printk(KERN_WARNING "%s: Error parsing packet length; "
--			       "rc = [%d]\n", __func__, rc);
--			goto out_free;
--		}
--		i += packet_size_length;
--		if ((1 + 4 + packet_size_length + packet_size) != count) {
--			printk(KERN_WARNING "%s: (1 + packet_size_length([%zd])"
--			       " + packet_size([%zd]))([%zd]) != "
--			       "count([%zd]). Invalid packet format.\n",
--			       __func__, packet_size_length, packet_size,
--			       (1 + packet_size_length + packet_size), count);
--			goto out_free;
--		}
-+		i += 4 + packet_size_length;
- 		rc = ecryptfs_miscdev_response(&data[i], packet_size,
- 					       euid, current_user_ns(),
- 					       task_pid(current), seq);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0004-ecryptfs-Improve-metadata-read-failure-logging.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0004-ecryptfs-Improve-metadata-read-failure-logging.patch
deleted file mode 100644
index ce28730..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0004-ecryptfs-Improve-metadata-read-failure-logging.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 0ce49bba7ef708a2a8673e20a23fa174556ef3bb Mon Sep 17 00:00:00 2001
-From: Tim Gardner <tim.gardner at canonical.com>
-Date: Thu, 12 Jan 2012 16:31:55 +0100
-Subject: [PATCH 04/90] ecryptfs: Improve metadata read failure logging
-
-commit 30373dc0c87ffef68d5628e77d56ffb1fa22e1ee upstream.
-
-Print inode on metadata read failure. The only real
-way of dealing with metadata read failures is to delete
-the underlying file system file. Having the inode
-allows one to 'find . -inum INODE`.
-
-[tyhicks at canonical.com: Removed some minor not-for-stable parts]
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Reviewed-by: Kees Cook <keescook at chromium.org>
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/crypto.c |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
-index 2a83425..2bf5203 100644
---- a/fs/ecryptfs/crypto.c
-+++ b/fs/ecryptfs/crypto.c
-@@ -1620,7 +1620,8 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
- 		rc = ecryptfs_read_xattr_region(page_virt, ecryptfs_inode);
- 		if (rc) {
- 			printk(KERN_DEBUG "Valid eCryptfs headers not found in "
--			       "file header region or xattr region\n");
-+			       "file header region or xattr region, inode %lu\n",
-+				ecryptfs_inode->i_ino);
- 			rc = -EINVAL;
- 			goto out;
- 		}
-@@ -1629,7 +1630,8 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
- 						ECRYPTFS_DONT_VALIDATE_HEADER_SIZE);
- 		if (rc) {
- 			printk(KERN_DEBUG "Valid eCryptfs headers not found in "
--			       "file xattr region either\n");
-+			       "file xattr region either, inode %lu\n",
-+				ecryptfs_inode->i_ino);
- 			rc = -EINVAL;
- 		}
- 		if (crypt_stat->mount_crypt_stat->flags
-@@ -1640,7 +1642,8 @@ int ecryptfs_read_metadata(struct dentry *ecryptfs_dentry)
- 			       "crypto metadata only in the extended attribute "
- 			       "region, but eCryptfs was mounted without "
- 			       "xattr support enabled. eCryptfs will not treat "
--			       "this like an encrypted file.\n");
-+			       "this like an encrypted file, inode %lu\n",
-+				ecryptfs_inode->i_ino);
- 			rc = -EINVAL;
- 		}
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0005-eCryptfs-Make-truncate-path-killable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0005-eCryptfs-Make-truncate-path-killable.patch
deleted file mode 100644
index b76eab4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0005-eCryptfs-Make-truncate-path-killable.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-From a093f99cc6e708ede0b0aa3096cb1f9b34b6a36c Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Wed, 18 Jan 2012 18:30:04 -0600
-Subject: [PATCH 05/90] eCryptfs: Make truncate path killable
-
-commit 5e6f0d769017cc49207ef56996e42363ec26c1f0 upstream.
-
-ecryptfs_write() handles the truncation of eCryptfs inodes. It grabs a
-page, zeroes out the appropriate portions, and then encrypts the page
-before writing it to the lower filesystem. It was unkillable and due to
-the lack of sparse file support could result in tying up a large portion
-of system resources, while encrypting pages of zeros, with no way for
-the truncate operation to be stopped from userspace.
-
-This patch adds the ability for ecryptfs_write() to detect a pending
-fatal signal and return as gracefully as possible. The intent is to
-leave the lower file in a useable state, while still allowing a user to
-break out of the encryption loop. If a pending fatal signal is detected,
-the eCryptfs inode size is updated to reflect the modified inode size
-and then -EINTR is returned.
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/read_write.c |   19 ++++++++++++++-----
- 1 file changed, 14 insertions(+), 5 deletions(-)
-
-diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
-index 3745f7c..54eb14c 100644
---- a/fs/ecryptfs/read_write.c
-+++ b/fs/ecryptfs/read_write.c
-@@ -132,6 +132,11 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
- 		size_t num_bytes = (PAGE_CACHE_SIZE - start_offset_in_page);
- 		size_t total_remaining_bytes = ((offset + size) - pos);
- 
-+		if (fatal_signal_pending(current)) {
-+			rc = -EINTR;
-+			break;
-+		}
-+
- 		if (num_bytes > total_remaining_bytes)
- 			num_bytes = total_remaining_bytes;
- 		if (pos < offset) {
-@@ -193,15 +198,19 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
- 		}
- 		pos += num_bytes;
- 	}
--	if ((offset + size) > ecryptfs_file_size) {
--		i_size_write(ecryptfs_inode, (offset + size));
-+	if (pos > ecryptfs_file_size) {
-+		i_size_write(ecryptfs_inode, pos);
- 		if (crypt_stat->flags & ECRYPTFS_ENCRYPTED) {
--			rc = ecryptfs_write_inode_size_to_metadata(
-+			int rc2;
-+
-+			rc2 = ecryptfs_write_inode_size_to_metadata(
- 								ecryptfs_inode);
--			if (rc) {
-+			if (rc2) {
- 				printk(KERN_ERR	"Problem with "
- 				       "ecryptfs_write_inode_size_to_metadata; "
--				       "rc = [%d]\n", rc);
-+				       "rc = [%d]\n", rc2);
-+				if (!rc)
-+					rc = rc2;
- 				goto out;
- 			}
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0006-eCryptfs-Check-inode-changes-in-setattr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0006-eCryptfs-Check-inode-changes-in-setattr.patch
deleted file mode 100644
index 48c3ca6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0006-eCryptfs-Check-inode-changes-in-setattr.patch
+++ /dev/null
@@ -1,122 +0,0 @@
-From e901f21292b75d5eec1f2f979590c6413ebf18a0 Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Thu, 19 Jan 2012 20:33:44 -0600
-Subject: [PATCH 06/90] eCryptfs: Check inode changes in setattr
-
-commit a261a03904849c3df50bd0300efb7fb3f865137d upstream.
-
-Most filesystems call inode_change_ok() very early in ->setattr(), but
-eCryptfs didn't call it at all. It allowed the lower filesystem to make
-the call in its ->setattr() function. Then, eCryptfs would copy the
-appropriate inode attributes from the lower inode to the eCryptfs inode.
-
-This patch changes that and actually calls inode_change_ok() on the
-eCryptfs inode, fairly early in ecryptfs_setattr(). Ideally, the call
-would happen earlier in ecryptfs_setattr(), but there are some possible
-inode initialization steps that must happen first.
-
-Since the call was already being made on the lower inode, the change in
-functionality should be minimal, except for the case of a file extending
-truncate call. In that case, inode_newsize_ok() was never being
-called on the eCryptfs inode. Rather than inode_newsize_ok() catching
-maximum file size errors early on, eCryptfs would encrypt zeroed pages
-and write them to the lower filesystem until the lower filesystem's
-write path caught the error in generic_write_checks(). This patch
-introduces a new function, called ecryptfs_inode_newsize_ok(), which
-checks if the new lower file size is within the appropriate limits when
-the truncate operation will be growing the lower file.
-
-In summary this change prevents eCryptfs truncate operations (and the
-resulting page encryptions), which would exceed the lower filesystem
-limits or FSIZE rlimits, from ever starting.
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Reviewed-by: Li Wang <liwang at nudt.edu.cn>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/inode.c |   48 ++++++++++++++++++++++++++++++++++++------------
- 1 file changed, 36 insertions(+), 12 deletions(-)
-
-diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
-index 32f90a3..d2039ca 100644
---- a/fs/ecryptfs/inode.c
-+++ b/fs/ecryptfs/inode.c
-@@ -841,18 +841,6 @@ static int truncate_upper(struct dentry *dentry, struct iattr *ia,
- 		size_t num_zeros = (PAGE_CACHE_SIZE
- 				    - (ia->ia_size & ~PAGE_CACHE_MASK));
- 
--
--		/*
--		 * XXX(truncate) this should really happen at the begginning
--		 * of ->setattr.  But the code is too messy to that as part
--		 * of a larger patch.  ecryptfs is also totally missing out
--		 * on the inode_change_ok check at the beginning of
--		 * ->setattr while would include this.
--		 */
--		rc = inode_newsize_ok(inode, ia->ia_size);
--		if (rc)
--			goto out;
--
- 		if (!(crypt_stat->flags & ECRYPTFS_ENCRYPTED)) {
- 			truncate_setsize(inode, ia->ia_size);
- 			lower_ia->ia_size = ia->ia_size;
-@@ -902,6 +890,28 @@ out:
- 	return rc;
- }
- 
-+static int ecryptfs_inode_newsize_ok(struct inode *inode, loff_t offset)
-+{
-+	struct ecryptfs_crypt_stat *crypt_stat;
-+	loff_t lower_oldsize, lower_newsize;
-+
-+	crypt_stat = &ecryptfs_inode_to_private(inode)->crypt_stat;
-+	lower_oldsize = upper_size_to_lower_size(crypt_stat,
-+						 i_size_read(inode));
-+	lower_newsize = upper_size_to_lower_size(crypt_stat, offset);
-+	if (lower_newsize > lower_oldsize) {
-+		/*
-+		 * The eCryptfs inode and the new *lower* size are mixed here
-+		 * because we may not have the lower i_mutex held and/or it may
-+		 * not be appropriate to call inode_newsize_ok() with inodes
-+		 * from other filesystems.
-+		 */
-+		return inode_newsize_ok(inode, lower_newsize);
-+	}
-+
-+	return 0;
-+}
-+
- /**
-  * ecryptfs_truncate
-  * @dentry: The ecryptfs layer dentry
-@@ -918,6 +928,10 @@ int ecryptfs_truncate(struct dentry *dentry, loff_t new_length)
- 	struct iattr lower_ia = { .ia_valid = 0 };
- 	int rc;
- 
-+	rc = ecryptfs_inode_newsize_ok(dentry->d_inode, new_length);
-+	if (rc)
-+		return rc;
-+
- 	rc = truncate_upper(dentry, &ia, &lower_ia);
- 	if (!rc && lower_ia.ia_valid & ATTR_SIZE) {
- 		struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry);
-@@ -997,6 +1011,16 @@ static int ecryptfs_setattr(struct dentry *dentry, struct iattr *ia)
- 		}
- 	}
- 	mutex_unlock(&crypt_stat->cs_mutex);
-+
-+	rc = inode_change_ok(inode, ia);
-+	if (rc)
-+		goto out;
-+	if (ia->ia_valid & ATTR_SIZE) {
-+		rc = ecryptfs_inode_newsize_ok(inode, ia->ia_size);
-+		if (rc)
-+			goto out;
-+	}
-+
- 	if (S_ISREG(inode->i_mode)) {
- 		rc = filemap_write_and_wait(inode->i_mapping);
- 		if (rc)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0007-eCryptfs-Fix-oops-when-printing-debug-info-in-extent.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0007-eCryptfs-Fix-oops-when-printing-debug-info-in-extent.patch
deleted file mode 100644
index ff2b468..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0007-eCryptfs-Fix-oops-when-printing-debug-info-in-extent.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From e59d3b46da925bd4b53d761bd7cf34aea4c7c01d Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Tue, 24 Jan 2012 10:02:22 -0600
-Subject: [PATCH 07/90] eCryptfs: Fix oops when printing debug info in extent
- crypto functions
-
-commit 58ded24f0fcb85bddb665baba75892f6ad0f4b8a upstream.
-
-If pages passed to the eCryptfs extent-based crypto functions are not
-mapped and the module parameter ecryptfs_verbosity=1 was specified at
-loading time, a NULL pointer dereference will occur.
-
-Note that this wouldn't happen on a production system, as you wouldn't
-pass ecryptfs_verbosity=1 on a production system. It leaks private
-information to the system logs and is for debugging only.
-
-The debugging info printed in these messages is no longer very useful
-and rather than doing a kmap() in these debugging paths, it will be
-better to simply remove the debugging paths completely.
-
-https://launchpad.net/bugs/913651
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/crypto.c |   40 ----------------------------------------
- 1 file changed, 40 deletions(-)
-
-diff --git a/fs/ecryptfs/crypto.c b/fs/ecryptfs/crypto.c
-index 2bf5203..68b19ab 100644
---- a/fs/ecryptfs/crypto.c
-+++ b/fs/ecryptfs/crypto.c
-@@ -417,17 +417,6 @@ static int ecryptfs_encrypt_extent(struct page *enc_extent_page,
- 			(unsigned long long)(extent_base + extent_offset), rc);
- 		goto out;
- 	}
--	if (unlikely(ecryptfs_verbosity > 0)) {
--		ecryptfs_printk(KERN_DEBUG, "Encrypting extent "
--				"with iv:\n");
--		ecryptfs_dump_hex(extent_iv, crypt_stat->iv_bytes);
--		ecryptfs_printk(KERN_DEBUG, "First 8 bytes before "
--				"encryption:\n");
--		ecryptfs_dump_hex((char *)
--				  (page_address(page)
--				   + (extent_offset * crypt_stat->extent_size)),
--				  8);
--	}
- 	rc = ecryptfs_encrypt_page_offset(crypt_stat, enc_extent_page, 0,
- 					  page, (extent_offset
- 						 * crypt_stat->extent_size),
-@@ -440,14 +429,6 @@ static int ecryptfs_encrypt_extent(struct page *enc_extent_page,
- 		goto out;
- 	}
- 	rc = 0;
--	if (unlikely(ecryptfs_verbosity > 0)) {
--		ecryptfs_printk(KERN_DEBUG, "Encrypt extent [0x%.16llx]; "
--			"rc = [%d]\n",
--			(unsigned long long)(extent_base + extent_offset), rc);
--		ecryptfs_printk(KERN_DEBUG, "First 8 bytes after "
--				"encryption:\n");
--		ecryptfs_dump_hex((char *)(page_address(enc_extent_page)), 8);
--	}
- out:
- 	return rc;
- }
-@@ -543,17 +524,6 @@ static int ecryptfs_decrypt_extent(struct page *page,
- 			(unsigned long long)(extent_base + extent_offset), rc);
- 		goto out;
- 	}
--	if (unlikely(ecryptfs_verbosity > 0)) {
--		ecryptfs_printk(KERN_DEBUG, "Decrypting extent "
--				"with iv:\n");
--		ecryptfs_dump_hex(extent_iv, crypt_stat->iv_bytes);
--		ecryptfs_printk(KERN_DEBUG, "First 8 bytes before "
--				"decryption:\n");
--		ecryptfs_dump_hex((char *)
--				  (page_address(enc_extent_page)
--				   + (extent_offset * crypt_stat->extent_size)),
--				  8);
--	}
- 	rc = ecryptfs_decrypt_page_offset(crypt_stat, page,
- 					  (extent_offset
- 					   * crypt_stat->extent_size),
-@@ -567,16 +537,6 @@ static int ecryptfs_decrypt_extent(struct page *page,
- 		goto out;
- 	}
- 	rc = 0;
--	if (unlikely(ecryptfs_verbosity > 0)) {
--		ecryptfs_printk(KERN_DEBUG, "Decrypt extent [0x%.16llx]; "
--			"rc = [%d]\n",
--			(unsigned long long)(extent_base + extent_offset), rc);
--		ecryptfs_printk(KERN_DEBUG, "First 8 bytes after "
--				"decryption:\n");
--		ecryptfs_dump_hex((char *)(page_address(page)
--					   + (extent_offset
--					      * crypt_stat->extent_size)), 8);
--	}
- out:
- 	return rc;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0008-drm-radeon-kms-Add-an-MSI-quirk-for-Dell-RS690.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0008-drm-radeon-kms-Add-an-MSI-quirk-for-Dell-RS690.patch
deleted file mode 100644
index 36efbf5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0008-drm-radeon-kms-Add-an-MSI-quirk-for-Dell-RS690.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 0d9bece9bc0c0aa1b42a235131921d9760857094 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Sun, 15 Jan 2012 08:51:12 -0500
-Subject: [PATCH 08/90] drm/radeon/kms: Add an MSI quirk for Dell RS690
-
-commit 44517c44496062180a6376cc704b33129441ce60 upstream.
-
-Interrupts only work with MSIs.
-https://bugs.freedesktop.org/show_bug.cgi?id=37679
-
-Reported-by: Dmitry Podgorny <pasis.uax at gmail.com>
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_irq_kms.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_irq_kms.c b/drivers/gpu/drm/radeon/radeon_irq_kms.c
-index 8f86aeb..e7ddb49 100644
---- a/drivers/gpu/drm/radeon/radeon_irq_kms.c
-+++ b/drivers/gpu/drm/radeon/radeon_irq_kms.c
-@@ -134,6 +134,12 @@ static bool radeon_msi_ok(struct radeon_device *rdev)
- 	/* Dell RS690 only seems to work with MSIs. */
- 	if ((rdev->pdev->device == 0x791f) &&
- 	    (rdev->pdev->subsystem_vendor == 0x1028) &&
-+	    (rdev->pdev->subsystem_device == 0x01fc))
-+		return true;
-+
-+	/* Dell RS690 only seems to work with MSIs. */
-+	if ((rdev->pdev->device == 0x791f) &&
-+	    (rdev->pdev->subsystem_vendor == 0x1028) &&
- 	    (rdev->pdev->subsystem_device == 0x01fd))
- 		return true;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0009-drm-radeon-kms-move-panel-mode-setup-into-encoder-mo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0009-drm-radeon-kms-move-panel-mode-setup-into-encoder-mo.patch
deleted file mode 100644
index 1344e99..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0009-drm-radeon-kms-move-panel-mode-setup-into-encoder-mo.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From 23e60071b7982d745994f5d77128e6187a76b9b9 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Fri, 20 Jan 2012 15:01:29 -0500
-Subject: [PATCH 09/90] drm/radeon/kms: move panel mode setup into encoder
- mode set
-
-commit 386d4d751e8e0b4b693bb724f09aae064ee5297d upstream.
-
-Needs to happen earlier in the mode set.
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/atombios_dp.c       |   22 ++++++++++------------
- drivers/gpu/drm/radeon/atombios_encoders.c |   11 +++++++++++
- drivers/gpu/drm/radeon/radeon_mode.h       |    3 +++
- 3 files changed, 24 insertions(+), 12 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
-index 6fb335a..a71557c 100644
---- a/drivers/gpu/drm/radeon/atombios_dp.c
-+++ b/drivers/gpu/drm/radeon/atombios_dp.c
-@@ -549,8 +549,8 @@ bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector)
- 	return false;
- }
- 
--static void radeon_dp_set_panel_mode(struct drm_encoder *encoder,
--				     struct drm_connector *connector)
-+int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
-+			     struct drm_connector *connector)
- {
- 	struct drm_device *dev = encoder->dev;
- 	struct radeon_device *rdev = dev->dev_private;
-@@ -558,7 +558,7 @@ static void radeon_dp_set_panel_mode(struct drm_encoder *encoder,
- 	int panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE;
- 
- 	if (!ASIC_IS_DCE4(rdev))
--		return;
-+		return panel_mode;
- 
- 	if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) ==
- 	    ENCODER_OBJECT_ID_NUTMEG)
-@@ -572,14 +572,7 @@ static void radeon_dp_set_panel_mode(struct drm_encoder *encoder,
- 			panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE;
- 	}
- 
--	atombios_dig_encoder_setup(encoder,
--				   ATOM_ENCODER_CMD_SETUP_PANEL_MODE,
--				   panel_mode);
--
--	if ((connector->connector_type == DRM_MODE_CONNECTOR_eDP) &&
--	    (panel_mode == DP_PANEL_MODE_INTERNAL_DP2_MODE)) {
--		radeon_write_dpcd_reg(radeon_connector, DP_EDP_CONFIGURATION_SET, 1);
--	}
-+	return panel_mode;
- }
- 
- void radeon_dp_set_link_config(struct drm_connector *connector,
-@@ -717,6 +710,8 @@ static void radeon_dp_set_tp(struct radeon_dp_link_train_info *dp_info, int tp)
- 
- static int radeon_dp_link_train_init(struct radeon_dp_link_train_info *dp_info)
- {
-+	struct radeon_encoder *radeon_encoder = to_radeon_encoder(dp_info->encoder);
-+	struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
- 	u8 tmp;
- 
- 	/* power up the sink */
-@@ -732,7 +727,10 @@ static int radeon_dp_link_train_init(struct radeon_dp_link_train_info *dp_info)
- 		radeon_write_dpcd_reg(dp_info->radeon_connector,
- 				      DP_DOWNSPREAD_CTRL, 0);
- 
--	radeon_dp_set_panel_mode(dp_info->encoder, dp_info->connector);
-+	if ((dp_info->connector->connector_type == DRM_MODE_CONNECTOR_eDP) &&
-+	    (dig->panel_mode == DP_PANEL_MODE_INTERNAL_DP2_MODE)) {
-+		radeon_write_dpcd_reg(dp_info->radeon_connector, DP_EDP_CONFIGURATION_SET, 1);
-+	}
- 
- 	/* set the lane count on the sink */
- 	tmp = dp_info->dp_lane_count;
-diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
-index 39c04c1..9dcfba0 100644
---- a/drivers/gpu/drm/radeon/atombios_encoders.c
-+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
-@@ -1822,10 +1822,21 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
- 	case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
- 	case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
- 		if (ASIC_IS_DCE4(rdev)) {
-+			struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);
-+			struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
-+
-+			if (!connector)
-+				dig->panel_mode = DP_PANEL_MODE_EXTERNAL_DP_MODE;
-+			else
-+				dig->panel_mode = radeon_dp_get_panel_mode(encoder, connector);
-+
- 			/* disable the transmitter */
- 			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0);
- 			/* setup and enable the encoder */
- 			atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0);
-+			atombios_dig_encoder_setup(encoder,
-+						   ATOM_ENCODER_CMD_SETUP_PANEL_MODE,
-+						   dig->panel_mode);
- 
- 			/* enable the transmitter */
- 			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0);
-diff --git a/drivers/gpu/drm/radeon/radeon_mode.h b/drivers/gpu/drm/radeon/radeon_mode.h
-index 2c2e75e..8254d5a 100644
---- a/drivers/gpu/drm/radeon/radeon_mode.h
-+++ b/drivers/gpu/drm/radeon/radeon_mode.h
-@@ -362,6 +362,7 @@ struct radeon_encoder_atom_dig {
- 	struct backlight_device *bl_dev;
- 	int dpms_mode;
- 	uint8_t backlight_level;
-+	int panel_mode;
- };
- 
- struct radeon_encoder_atom_dac {
-@@ -482,6 +483,8 @@ extern void radeon_dp_link_train(struct drm_encoder *encoder,
- extern bool radeon_dp_needs_link_train(struct radeon_connector *radeon_connector);
- extern u8 radeon_dp_getsinktype(struct radeon_connector *radeon_connector);
- extern bool radeon_dp_getdpcd(struct radeon_connector *radeon_connector);
-+extern int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
-+				    struct drm_connector *connector);
- extern void atombios_dig_encoder_setup(struct drm_encoder *encoder, int action, int panel_mode);
- extern void radeon_atom_encoder_init(struct radeon_device *rdev);
- extern void atombios_dig_transmitter_setup(struct drm_encoder *encoder,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0010-drm-radeon-kms-rework-modeset-sequence-for-DCE41-and.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0010-drm-radeon-kms-rework-modeset-sequence-for-DCE41-and.patch
deleted file mode 100644
index 15004b7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0010-drm-radeon-kms-rework-modeset-sequence-for-DCE41-and.patch
+++ /dev/null
@@ -1,87 +0,0 @@
-From ac3f187119e6ce6f38675649486240029279bf08 Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Fri, 20 Jan 2012 15:01:30 -0500
-Subject: [PATCH 10/90] drm/radeon/kms: rework modeset sequence for DCE41 and
- DCE5
-
-commit 3a47824d85eeca122895646f027dc63480994199 upstream.
-
-dig transmitter control table only has ENABLE/DISABLE actions
-on DCE4.1/DCE5.
-
-Fixes:
-https://bugs.freedesktop.org/show_bug.cgi?id=44955
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/atombios_encoders.c |   19 ++++++++++++-------
- 1 file changed, 12 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_encoders.c b/drivers/gpu/drm/radeon/atombios_encoders.c
-index 9dcfba0..0f8eb48 100644
---- a/drivers/gpu/drm/radeon/atombios_encoders.c
-+++ b/drivers/gpu/drm/radeon/atombios_encoders.c
-@@ -1352,7 +1352,8 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
- 	switch (mode) {
- 	case DRM_MODE_DPMS_ON:
- 		/* some early dce3.2 boards have a bug in their transmitter control table */
--		if ((rdev->family == CHIP_RV710) || (rdev->family == CHIP_RV730))
-+		if ((rdev->family == CHIP_RV710) || (rdev->family == CHIP_RV730) ||
-+		    ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev))
- 			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0);
- 		else
- 			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE_OUTPUT, 0, 0);
-@@ -1362,8 +1363,6 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
- 							     ATOM_TRANSMITTER_ACTION_POWER_ON);
- 				radeon_dig_connector->edp_on = true;
- 			}
--			if (ASIC_IS_DCE4(rdev))
--				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
- 			radeon_dp_link_train(encoder, connector);
- 			if (ASIC_IS_DCE4(rdev))
- 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_ON, 0);
-@@ -1374,7 +1373,10 @@ radeon_atom_encoder_dpms_dig(struct drm_encoder *encoder, int mode)
- 	case DRM_MODE_DPMS_STANDBY:
- 	case DRM_MODE_DPMS_SUSPEND:
- 	case DRM_MODE_DPMS_OFF:
--		atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0);
-+		if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev))
-+			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0);
-+		else
-+			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE_OUTPUT, 0, 0);
- 		if (ENCODER_MODE_IS_DP(atombios_get_encoder_mode(encoder)) && connector) {
- 			if (ASIC_IS_DCE4(rdev))
- 				atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_DP_VIDEO_OFF, 0);
-@@ -1821,7 +1823,7 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
- 	case ENCODER_OBJECT_ID_INTERNAL_UNIPHY1:
- 	case ENCODER_OBJECT_ID_INTERNAL_UNIPHY2:
- 	case ENCODER_OBJECT_ID_INTERNAL_KLDSCP_LVTMA:
--		if (ASIC_IS_DCE4(rdev)) {
-+		if (ASIC_IS_DCE41(rdev) || ASIC_IS_DCE5(rdev)) {
- 			struct drm_connector *connector = radeon_get_connector_for_encoder(encoder);
- 			struct radeon_encoder_atom_dig *dig = radeon_encoder->enc_priv;
- 
-@@ -1830,13 +1832,16 @@ radeon_atom_encoder_mode_set(struct drm_encoder *encoder,
- 			else
- 				dig->panel_mode = radeon_dp_get_panel_mode(encoder, connector);
- 
--			/* disable the transmitter */
--			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0);
- 			/* setup and enable the encoder */
- 			atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0);
- 			atombios_dig_encoder_setup(encoder,
- 						   ATOM_ENCODER_CMD_SETUP_PANEL_MODE,
- 						   dig->panel_mode);
-+		} else if (ASIC_IS_DCE4(rdev)) {
-+			/* disable the transmitter */
-+			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_DISABLE, 0, 0);
-+			/* setup and enable the encoder */
-+			atombios_dig_encoder_setup(encoder, ATOM_ENCODER_CMD_SETUP, 0);
- 
- 			/* enable the transmitter */
- 			atombios_dig_transmitter_setup(encoder, ATOM_TRANSMITTER_ACTION_ENABLE, 0, 0);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0011-drm-Fix-authentication-kernel-crash.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0011-drm-Fix-authentication-kernel-crash.patch
deleted file mode 100644
index 4d9d4fe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0011-drm-Fix-authentication-kernel-crash.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 37983212fe7c26155958f760ff006dfe8ce14d0c Mon Sep 17 00:00:00 2001
-From: Thomas Hellstrom <thellstrom at vmware.com>
-Date: Tue, 24 Jan 2012 18:54:21 +0100
-Subject: [PATCH 11/90] drm: Fix authentication kernel crash
-
-commit 598781d71119827b454fd75d46f84755bca6f0c6 upstream.
-
-If the master tries to authenticate a client using drm_authmagic and
-that client has already closed its drm file descriptor,
-either wilfully or because it was terminated, the
-call to drm_authmagic will dereference a stale pointer into kmalloc'ed memory
-and corrupt it.
-
-Typically this results in a hard system hang.
-
-This patch fixes that problem by removing any authentication tokens
-(struct drm_magic_entry) open for a file descriptor when that file
-descriptor is closed.
-
-Signed-off-by: Thomas Hellstrom <thellstrom at vmware.com>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/drm_auth.c |    6 +++++-
- drivers/gpu/drm/drm_fops.c |    5 +++++
- include/drm/drmP.h         |    1 +
- 3 files changed, 11 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/drm_auth.c b/drivers/gpu/drm/drm_auth.c
-index 3f46772..ba23790 100644
---- a/drivers/gpu/drm/drm_auth.c
-+++ b/drivers/gpu/drm/drm_auth.c
-@@ -101,7 +101,7 @@ static int drm_add_magic(struct drm_master *master, struct drm_file *priv,
-  * Searches and unlinks the entry in drm_device::magiclist with the magic
-  * number hash key, while holding the drm_device::struct_mutex lock.
-  */
--static int drm_remove_magic(struct drm_master *master, drm_magic_t magic)
-+int drm_remove_magic(struct drm_master *master, drm_magic_t magic)
- {
- 	struct drm_magic_entry *pt;
- 	struct drm_hash_item *hash;
-@@ -136,6 +136,8 @@ static int drm_remove_magic(struct drm_master *master, drm_magic_t magic)
-  * If there is a magic number in drm_file::magic then use it, otherwise
-  * searches an unique non-zero magic number and add it associating it with \p
-  * file_priv.
-+ * This ioctl needs protection by the drm_global_mutex, which protects
-+ * struct drm_file::magic and struct drm_magic_entry::priv.
-  */
- int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
- {
-@@ -173,6 +175,8 @@ int drm_getmagic(struct drm_device *dev, void *data, struct drm_file *file_priv)
-  * \return zero if authentication successed, or a negative number otherwise.
-  *
-  * Checks if \p file_priv is associated with the magic number passed in \arg.
-+ * This ioctl needs protection by the drm_global_mutex, which protects
-+ * struct drm_file::magic and struct drm_magic_entry::priv.
-  */
- int drm_authmagic(struct drm_device *dev, void *data,
- 		  struct drm_file *file_priv)
-diff --git a/drivers/gpu/drm/drm_fops.c b/drivers/gpu/drm/drm_fops.c
-index 4911e1d..828bf65 100644
---- a/drivers/gpu/drm/drm_fops.c
-+++ b/drivers/gpu/drm/drm_fops.c
-@@ -487,6 +487,11 @@ int drm_release(struct inode *inode, struct file *filp)
- 		  (long)old_encode_dev(file_priv->minor->device),
- 		  dev->open_count);
- 
-+	/* Release any auth tokens that might point to this file_priv,
-+	   (do that under the drm_global_mutex) */
-+	if (file_priv->magic)
-+		(void) drm_remove_magic(file_priv->master, file_priv->magic);
-+
- 	/* if the master has gone away we can't do anything with the lock */
- 	if (file_priv->minor->master)
- 		drm_master_release(dev, filp);
-diff --git a/include/drm/drmP.h b/include/drm/drmP.h
-index 1f9e951..bf4b2dc 100644
---- a/include/drm/drmP.h
-+++ b/include/drm/drmP.h
-@@ -1328,6 +1328,7 @@ extern int drm_getmagic(struct drm_device *dev, void *data,
- 			struct drm_file *file_priv);
- extern int drm_authmagic(struct drm_device *dev, void *data,
- 			 struct drm_file *file_priv);
-+extern int drm_remove_magic(struct drm_master *master, drm_magic_t magic);
- 
- /* Cache management (drm_cache.c) */
- void drm_clflush_pages(struct page *pages[], unsigned long num_pages);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0012-xfs-Fix-missing-xfs_iunlock-on-error-recovery-path-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0012-xfs-Fix-missing-xfs_iunlock-on-error-recovery-path-i.patch
deleted file mode 100644
index d7fda92..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0012-xfs-Fix-missing-xfs_iunlock-on-error-recovery-path-i.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From e312b80f6b940d2ed0097fb49c831f69c4e0b530 Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Wed, 11 Jan 2012 18:52:10 +0000
-Subject: [PATCH 12/90] xfs: Fix missing xfs_iunlock() on error recovery path
- in xfs_readlink()
-
-commit 9b025eb3a89e041bab6698e3858706be2385d692 upstream.
-
-Commit b52a360b forgot to call xfs_iunlock() when it detected corrupted
-symplink and bailed out. Fix it by jumping to 'out' instead of doing return.
-
-CC: Carlos Maiolino <cmaiolino at redhat.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Reviewed-by: Alex Elder <elder at kernel.org>
-Reviewed-by: Dave Chinner <dchinner at redhat.com>
-Signed-off-by: Ben Myers <bpm at sgi.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/xfs/xfs_vnodeops.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
-index ce9268a..ee98d0b 100644
---- a/fs/xfs/xfs_vnodeops.c
-+++ b/fs/xfs/xfs_vnodeops.c
-@@ -131,7 +131,8 @@ xfs_readlink(
- 			 __func__, (unsigned long long) ip->i_ino,
- 			 (long long) pathlen);
- 		ASSERT(0);
--		return XFS_ERROR(EFSCORRUPTED);
-+		error = XFS_ERROR(EFSCORRUPTED);
-+		goto out;
- 	}
- 
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0013-ASoC-Mark-WM5100-register-map-cache-only-when-going-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0013-ASoC-Mark-WM5100-register-map-cache-only-when-going-.patch
deleted file mode 100644
index bec56bb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0013-ASoC-Mark-WM5100-register-map-cache-only-when-going-.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 14978edef346a4da6f65f808c1b0ee631f209248 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Wed, 18 Jan 2012 20:02:38 +0000
-Subject: [PATCH 13/90] ASoC: Mark WM5100 register map cache only when going
- into BIAS_OFF
-
-commit e53e417331c57b9b97e3f8be870214a02c99265c upstream.
-
-Writing to the registers won't work if we do actually manage to hit a fully
-powered off state.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm5100.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/soc/codecs/wm5100.c b/sound/soc/codecs/wm5100.c
-index 42d9039..19c26d2 100644
---- a/sound/soc/codecs/wm5100.c
-+++ b/sound/soc/codecs/wm5100.c
-@@ -1404,6 +1404,7 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
-+		regcache_cache_only(wm5100->regmap, true);
- 		if (wm5100->pdata.ldo_ena)
- 			gpio_set_value_cansleep(wm5100->pdata.ldo_ena, 0);
- 		regulator_bulk_disable(ARRAY_SIZE(wm5100->core_supplies),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0014-ASoC-Disable-register-synchronisation-for-low-freque.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0014-ASoC-Disable-register-synchronisation-for-low-freque.patch
deleted file mode 100644
index 418b725..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0014-ASoC-Disable-register-synchronisation-for-low-freque.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 066b0d442cb2c0bf72d3cf1ab85079ebf9f42973 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Wed, 18 Jan 2012 19:17:06 +0000
-Subject: [PATCH 14/90] ASoC: Disable register synchronisation for low
- frequency WM8996 SYSCLK
-
-commit fed22007113cb857e917913ce016d9b539dc3a80 upstream.
-
-With a low frequency SYSCLK and a fast I2C clock register synchronisation
-may occasionally take too long to take effect, causing I/O issues. Disable
-synchronisation in order to avoid any issues.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8996.c |    4 ++++
- sound/soc/codecs/wm8996.h |    4 ++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c
-index a33b04d..e2afc05 100644
---- a/sound/soc/codecs/wm8996.c
-+++ b/sound/soc/codecs/wm8996.c
-@@ -1932,6 +1932,7 @@ static int wm8996_set_sysclk(struct snd_soc_dai *dai,
- 	struct wm8996_priv *wm8996 = snd_soc_codec_get_drvdata(codec);
- 	int lfclk = 0;
- 	int ratediv = 0;
-+	int sync = WM8996_REG_SYNC;
- 	int src;
- 	int old;
- 
-@@ -1976,6 +1977,7 @@ static int wm8996_set_sysclk(struct snd_soc_dai *dai,
- 	case 32000:
- 	case 32768:
- 		lfclk = WM8996_LFCLK_ENA;
-+		sync = 0;
- 		break;
- 	default:
- 		dev_warn(codec->dev, "Unsupported clock rate %dHz\n",
-@@ -1989,6 +1991,8 @@ static int wm8996_set_sysclk(struct snd_soc_dai *dai,
- 			    WM8996_SYSCLK_SRC_MASK | WM8996_SYSCLK_DIV_MASK,
- 			    src << WM8996_SYSCLK_SRC_SHIFT | ratediv);
- 	snd_soc_update_bits(codec, WM8996_CLOCKING_1, WM8996_LFCLK_ENA, lfclk);
-+	snd_soc_update_bits(codec, WM8996_CONTROL_INTERFACE_1,
-+			    WM8996_REG_SYNC, sync);
- 	snd_soc_update_bits(codec, WM8996_AIF_CLOCKING_1,
- 			    WM8996_SYSCLK_ENA, old);
- 
-diff --git a/sound/soc/codecs/wm8996.h b/sound/soc/codecs/wm8996.h
-index 0fde643..de9ac3e 100644
---- a/sound/soc/codecs/wm8996.h
-+++ b/sound/soc/codecs/wm8996.h
-@@ -1567,6 +1567,10 @@ int wm8996_detect(struct snd_soc_codec *codec, struct snd_soc_jack *jack,
- /*
-  * R257 (0x101) - Control Interface (1)
-  */
-+#define WM8996_REG_SYNC                         0x8000  /* REG_SYNC */
-+#define WM8996_REG_SYNC_MASK                    0x8000  /* REG_SYNC */
-+#define WM8996_REG_SYNC_SHIFT                       15  /* REG_SYNC */
-+#define WM8996_REG_SYNC_WIDTH                        1  /* REG_SYNC */
- #define WM8996_AUTO_INC                         0x0004  /* AUTO_INC */
- #define WM8996_AUTO_INC_MASK                    0x0004  /* AUTO_INC */
- #define WM8996_AUTO_INC_SHIFT                        2  /* AUTO_INC */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0015-ASoC-Don-t-go-through-cache-when-applying-WM5100-rev.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0015-ASoC-Don-t-go-through-cache-when-applying-WM5100-rev.patch
deleted file mode 100644
index 77599ac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0015-ASoC-Don-t-go-through-cache-when-applying-WM5100-rev.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 2c59f1802fdef197bb6e01d9675a1354e76b6ce7 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Thu, 19 Jan 2012 11:16:37 +0000
-Subject: [PATCH 15/90] ASoC: Don't go through cache when applying WM5100 rev
- A updates
-
-commit 495174a8ffbaa0d15153d855cf206cdc46d51cf4 upstream.
-
-These are all to either uncached registers or fixes to register defaults,
-in the former case the cache won't do anything and in the latter case
-we're fixing things so the cache sync will do the right thing.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm5100.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/sound/soc/codecs/wm5100.c b/sound/soc/codecs/wm5100.c
-index 19c26d2..d0beeec 100644
---- a/sound/soc/codecs/wm5100.c
-+++ b/sound/soc/codecs/wm5100.c
-@@ -1379,6 +1379,7 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
- 
- 			switch (wm5100->rev) {
- 			case 0:
-+				regcache_cache_bypass(wm5100->regmap, true);
- 				snd_soc_write(codec, 0x11, 0x3);
- 				snd_soc_write(codec, 0x203, 0xc);
- 				snd_soc_write(codec, 0x206, 0);
-@@ -1394,6 +1395,7 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
- 					snd_soc_write(codec,
- 						      wm5100_reva_patches[i].reg,
- 						      wm5100_reva_patches[i].val);
-+				regcache_cache_bypass(wm5100->regmap, false);
- 				break;
- 			default:
- 				break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0016-ASoC-wm8996-Call-_POST_PMU-callback-for-CPVDD.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0016-ASoC-wm8996-Call-_POST_PMU-callback-for-CPVDD.patch
deleted file mode 100644
index 9ad0f29..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0016-ASoC-wm8996-Call-_POST_PMU-callback-for-CPVDD.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From b76642c53d6bad73ed8e4a8e7634ff7f7c366e43 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Sat, 21 Jan 2012 21:48:53 +0000
-Subject: [PATCH 16/90] ASoC: wm8996: Call _POST_PMU callback for CPVDD
-
-commit a14304edcd5e8323205db34b08f709feb5357e64 upstream.
-
-We should be allowing a 5ms delay after the charge pump is started in
-order to ensure it has finished ramping.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8996.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/wm8996.c b/sound/soc/codecs/wm8996.c
-index e2afc05..6d98a57 100644
---- a/sound/soc/codecs/wm8996.c
-+++ b/sound/soc/codecs/wm8996.c
-@@ -1049,7 +1049,8 @@ SND_SOC_DAPM_SUPPLY_S("SYSCLK", 1, WM8996_AIF_CLOCKING_1, 0, 0, NULL, 0),
- SND_SOC_DAPM_SUPPLY_S("SYSDSPCLK", 2, WM8996_CLOCKING_1, 1, 0, NULL, 0),
- SND_SOC_DAPM_SUPPLY_S("AIFCLK", 2, WM8996_CLOCKING_1, 2, 0, NULL, 0),
- SND_SOC_DAPM_SUPPLY_S("Charge Pump", 2, WM8996_CHARGE_PUMP_1, 15, 0, cp_event,
--		      SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
-+		      SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMU |
-+		      SND_SOC_DAPM_POST_PMD),
- SND_SOC_DAPM_SUPPLY("Bandgap", SND_SOC_NOPM, 0, 0, bg_event,
- 		    SND_SOC_DAPM_PRE_PMU | SND_SOC_DAPM_POST_PMD),
- SND_SOC_DAPM_SUPPLY("LDO2", WM8996_POWER_MANAGEMENT_2, 1, 0, NULL, 0),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0017-brcmsmac-fix-tx-queue-flush-infinite-loop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0017-brcmsmac-fix-tx-queue-flush-infinite-loop.patch
deleted file mode 100644
index f6055be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0017-brcmsmac-fix-tx-queue-flush-infinite-loop.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 1e48fb52d84ac159da93ea80f54c02cef5464f12 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Tue, 17 Jan 2012 12:38:50 +0100
-Subject: [PATCH 17/90] brcmsmac: fix tx queue flush infinite loop
-
-commit f96b08a7e6f69c0f0a576554df3df5b1b519c479 upstream.
-
-This patch workaround live deadlock problem caused by infinite loop
-in brcms_c_wait_for_tx_completion(). I do not consider the patch as
-the proper fix, which should fix the real reason of tx queue flush
-failure, but patch helps with system lockup.
-
-Reference:
-https://bugzilla.kernel.org/show_bug.cgi?id=42576
-
-Reported-and-tested-by: Patrick <ragamuffin at datacomm.ch>
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/brcm80211/brcmsmac/main.c |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/brcm80211/brcmsmac/main.c b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-index 510e9bb..453f58e 100644
---- a/drivers/net/wireless/brcm80211/brcmsmac/main.c
-+++ b/drivers/net/wireless/brcm80211/brcmsmac/main.c
-@@ -8217,13 +8217,21 @@ int brcms_c_get_curband(struct brcms_c_info *wlc)
- 
- void brcms_c_wait_for_tx_completion(struct brcms_c_info *wlc, bool drop)
- {
-+	int timeout = 20;
-+
- 	/* flush packet queue when requested */
- 	if (drop)
- 		brcmu_pktq_flush(&wlc->pkt_queue->q, false, NULL, NULL);
- 
- 	/* wait for queue and DMA fifos to run dry */
--	while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0)
-+	while (!pktq_empty(&wlc->pkt_queue->q) || brcms_txpktpendtot(wlc) > 0) {
- 		brcms_msleep(wlc->wl, 1);
-+
-+		if (--timeout == 0)
-+			break;
-+	}
-+
-+	WARN_ON_ONCE(timeout == 0);
- }
- 
- void brcms_c_set_beacon_listen_interval(struct brcms_c_info *wlc, u8 interval)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0018-mac80211-fix-work-removal-on-deauth-request.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0018-mac80211-fix-work-removal-on-deauth-request.patch
deleted file mode 100644
index b8479b2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0018-mac80211-fix-work-removal-on-deauth-request.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From a4dc17d578486fb19207d32f2beb5d6526089777 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Wed, 18 Jan 2012 14:10:25 +0100
-Subject: [PATCH 18/90] mac80211: fix work removal on deauth request
-
-commit bc4934bc61d0a11fd62c5187ff83645628f8be8b upstream.
-
-When deauth is requested while an auth or assoc
-work item is in progress, we currently delete it
-without regard for any state it might need to
-clean up. Fix it by cleaning up for those items.
-
-In the case Pontus found, the problem manifested
-itself as such:
-
-authenticate with 00:23:69:aa:dd:7b (try 1)
-authenticated
-failed to insert Dummy STA entry for the AP (error -17)
-deauthenticating from 00:23:69:aa:dd:7b by local choice (reason=2)
-
-It could also happen differently if the driver
-uses the tx_sync callback.
-
-We can't just call the ->done() method of the work
-items because that will lock up due to the locking
-in cfg80211. This fix isn't very clean, but that
-seems acceptable since I have patches pending to
-remove this code completely.
-
-Reported-by: Pontus Fuchs <pontus.fuchs at gmail.com>
-Tested-by: Pontus Fuchs <pontus.fuchs at gmail.com>
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/mlme.c |   38 +++++++++++++++++++++++++++-----------
- 1 file changed, 27 insertions(+), 11 deletions(-)
-
-diff --git a/net/mac80211/mlme.c b/net/mac80211/mlme.c
-index b1b1bb3..9da8626 100644
---- a/net/mac80211/mlme.c
-+++ b/net/mac80211/mlme.c
-@@ -2719,7 +2719,6 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
- {
- 	struct ieee80211_local *local = sdata->local;
- 	struct ieee80211_if_managed *ifmgd = &sdata->u.mgd;
--	struct ieee80211_work *wk;
- 	u8 bssid[ETH_ALEN];
- 	bool assoc_bss = false;
- 
-@@ -2732,30 +2731,47 @@ int ieee80211_mgd_deauth(struct ieee80211_sub_if_data *sdata,
- 		assoc_bss = true;
- 	} else {
- 		bool not_auth_yet = false;
-+		struct ieee80211_work *tmp, *wk = NULL;
- 
- 		mutex_unlock(&ifmgd->mtx);
- 
- 		mutex_lock(&local->mtx);
--		list_for_each_entry(wk, &local->work_list, list) {
--			if (wk->sdata != sdata)
-+		list_for_each_entry(tmp, &local->work_list, list) {
-+			if (tmp->sdata != sdata)
- 				continue;
- 
--			if (wk->type != IEEE80211_WORK_DIRECT_PROBE &&
--			    wk->type != IEEE80211_WORK_AUTH &&
--			    wk->type != IEEE80211_WORK_ASSOC &&
--			    wk->type != IEEE80211_WORK_ASSOC_BEACON_WAIT)
-+			if (tmp->type != IEEE80211_WORK_DIRECT_PROBE &&
-+			    tmp->type != IEEE80211_WORK_AUTH &&
-+			    tmp->type != IEEE80211_WORK_ASSOC &&
-+			    tmp->type != IEEE80211_WORK_ASSOC_BEACON_WAIT)
- 				continue;
- 
--			if (memcmp(req->bss->bssid, wk->filter_ta, ETH_ALEN))
-+			if (memcmp(req->bss->bssid, tmp->filter_ta, ETH_ALEN))
- 				continue;
- 
--			not_auth_yet = wk->type == IEEE80211_WORK_DIRECT_PROBE;
--			list_del_rcu(&wk->list);
--			free_work(wk);
-+			not_auth_yet = tmp->type == IEEE80211_WORK_DIRECT_PROBE;
-+			list_del_rcu(&tmp->list);
-+			synchronize_rcu();
-+			wk = tmp;
- 			break;
- 		}
- 		mutex_unlock(&local->mtx);
- 
-+		if (wk && wk->type == IEEE80211_WORK_ASSOC) {
-+			/* clean up dummy sta & TX sync */
-+			sta_info_destroy_addr(wk->sdata, wk->filter_ta);
-+			if (wk->assoc.synced)
-+				drv_finish_tx_sync(local, wk->sdata,
-+						   wk->filter_ta,
-+						   IEEE80211_TX_SYNC_ASSOC);
-+		} else if (wk && wk->type == IEEE80211_WORK_AUTH) {
-+			if (wk->probe_auth.synced)
-+				drv_finish_tx_sync(local, wk->sdata,
-+						   wk->filter_ta,
-+						   IEEE80211_TX_SYNC_AUTH);
-+		}
-+		kfree(wk);
-+
- 		/*
- 		 * If somebody requests authentication and we haven't
- 		 * sent out an auth frame yet there's no need to send
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0019-jbd-Issue-cache-flush-after-checkpointing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0019-jbd-Issue-cache-flush-after-checkpointing.patch
deleted file mode 100644
index 1aa88e3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0019-jbd-Issue-cache-flush-after-checkpointing.patch
+++ /dev/null
@@ -1,118 +0,0 @@
-From ccefed38352627d9136c3010878cfce33a2e009d Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Sat, 26 Nov 2011 00:35:39 +0100
-Subject: [PATCH 19/90] jbd: Issue cache flush after checkpointing
-
-commit 353b67d8ced4dc53281c88150ad295e24bc4b4c5 upstream.
-
-When we reach cleanup_journal_tail(), there is no guarantee that
-checkpointed buffers are on a stable storage - especially if buffers were
-written out by log_do_checkpoint(), they are likely to be only in disk's
-caches. Thus when we update journal superblock, effectively removing old
-transaction from journal, this write of superblock can get to stable storage
-before those checkpointed buffers which can result in filesystem corruption
-after a crash.
-
-A similar problem can happen if we replay the journal and wipe it before
-flushing disk's caches.
-
-Thus we must unconditionally issue a cache flush before we update journal
-superblock in these cases. The fix is slightly complicated by the fact that we
-have to get log tail before we issue cache flush but we can store it in the
-journal superblock only after the cache flush. Otherwise we risk races where
-new tail is written before appropriate cache flush is finished.
-
-I managed to reproduce the corruption using somewhat tweaked Chris Mason's
-barrier-test scheduler. Also this should fix occasional reports of 'Bit already
-freed' filesystem errors which are totally unreproducible but inspection of
-several fs images I've gathered over time points to a problem like this.
-
-Signed-off-by: Jan Kara <jack at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/jbd/checkpoint.c |   27 ++++++++++++++++++++++-----
- fs/jbd/recovery.c   |    4 ++++
- 2 files changed, 26 insertions(+), 5 deletions(-)
-
-diff --git a/fs/jbd/checkpoint.c b/fs/jbd/checkpoint.c
-index 5d1a00a..05f0754 100644
---- a/fs/jbd/checkpoint.c
-+++ b/fs/jbd/checkpoint.c
-@@ -453,8 +453,6 @@ out:
-  *
-  * Return <0 on error, 0 on success, 1 if there was nothing to clean up.
-  *
-- * Called with the journal lock held.
-- *
-  * This is the only part of the journaling code which really needs to be
-  * aware of transaction aborts.  Checkpointing involves writing to the
-  * main filesystem area rather than to the journal, so it can proceed
-@@ -472,13 +470,14 @@ int cleanup_journal_tail(journal_t *journal)
- 	if (is_journal_aborted(journal))
- 		return 1;
- 
--	/* OK, work out the oldest transaction remaining in the log, and
-+	/*
-+	 * OK, work out the oldest transaction remaining in the log, and
- 	 * the log block it starts at.
- 	 *
- 	 * If the log is now empty, we need to work out which is the
- 	 * next transaction ID we will write, and where it will
--	 * start. */
--
-+	 * start.
-+	 */
- 	spin_lock(&journal->j_state_lock);
- 	spin_lock(&journal->j_list_lock);
- 	transaction = journal->j_checkpoint_transactions;
-@@ -504,7 +503,25 @@ int cleanup_journal_tail(journal_t *journal)
- 		spin_unlock(&journal->j_state_lock);
- 		return 1;
- 	}
-+	spin_unlock(&journal->j_state_lock);
-+
-+	/*
-+	 * We need to make sure that any blocks that were recently written out
-+	 * --- perhaps by log_do_checkpoint() --- are flushed out before we
-+	 * drop the transactions from the journal. It's unlikely this will be
-+	 * necessary, especially with an appropriately sized journal, but we
-+	 * need this to guarantee correctness.  Fortunately
-+	 * cleanup_journal_tail() doesn't get called all that often.
-+	 */
-+	if (journal->j_flags & JFS_BARRIER)
-+		blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL);
- 
-+	spin_lock(&journal->j_state_lock);
-+	if (!tid_gt(first_tid, journal->j_tail_sequence)) {
-+		spin_unlock(&journal->j_state_lock);
-+		/* Someone else cleaned up journal so return 0 */
-+		return 0;
-+	}
- 	/* OK, update the superblock to recover the freed space.
- 	 * Physical blocks come first: have we wrapped beyond the end of
- 	 * the log?  */
-diff --git a/fs/jbd/recovery.c b/fs/jbd/recovery.c
-index 5b43e96..008bf06 100644
---- a/fs/jbd/recovery.c
-+++ b/fs/jbd/recovery.c
-@@ -20,6 +20,7 @@
- #include <linux/fs.h>
- #include <linux/jbd.h>
- #include <linux/errno.h>
-+#include <linux/blkdev.h>
- #endif
- 
- /*
-@@ -263,6 +264,9 @@ int journal_recover(journal_t *journal)
- 	err2 = sync_blockdev(journal->j_fs_dev);
- 	if (!err)
- 		err = err2;
-+	/* Flush disk caches to get replayed data on the permanent storage */
-+	if (journal->j_flags & JFS_BARRIER)
-+		blkdev_issue_flush(journal->j_fs_dev, GFP_KERNEL, NULL);
- 
- 	return err;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0020-crypto-sha512-make-it-work-undo-percpu-message-sched.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0020-crypto-sha512-make-it-work-undo-percpu-message-sched.patch
deleted file mode 100644
index f7f5607..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0020-crypto-sha512-make-it-work-undo-percpu-message-sched.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 00aa91c49e1d8278061eee9e1a7592fbe1ea8fa1 Mon Sep 17 00:00:00 2001
-From: Alexey Dobriyan <adobriyan at gmail.com>
-Date: Sat, 14 Jan 2012 21:27:37 +0300
-Subject: [PATCH 20/90] crypto: sha512 - make it work, undo percpu message
- schedule
-
-commit 84e31fdb7c797a7303e0cc295cb9bc8b73fb872d upstream.
-
-commit f9e2bca6c22d75a289a349f869701214d63b5060
-aka "crypto: sha512 - Move message schedule W[80] to static percpu area"
-created global message schedule area.
-
-If sha512_update will ever be entered twice, hash will be silently
-calculated incorrectly.
-
-Probably the easiest way to notice incorrect hashes being calculated is
-to run 2 ping floods over AH with hmac(sha512):
-
-	#!/usr/sbin/setkey -f
-	flush;
-	spdflush;
-	add IP1 IP2 ah 25 -A hmac-sha512 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000025;
-	add IP2 IP1 ah 52 -A hmac-sha512 0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052;
-	spdadd IP1 IP2 any -P out ipsec ah/transport//require;
-	spdadd IP2 IP1 any -P in  ipsec ah/transport//require;
-
-XfrmInStateProtoError will start ticking with -EBADMSG being returned
-from ah_input(). This never happens with, say, hmac(sha1).
-
-With patch applied (on BOTH sides), XfrmInStateProtoError does not tick
-with multiple bidirectional ping flood streams like it doesn't tick
-with SHA-1.
-
-After this patch sha512_transform() will start using ~750 bytes of stack on x86_64.
-This is OK for simple loads, for something more heavy, stack reduction will be done
-separatedly.
-
-Signed-off-by: Alexey Dobriyan <adobriyan at gmail.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- crypto/sha512_generic.c |    6 +-----
- 1 file changed, 1 insertion(+), 5 deletions(-)
-
-diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
-index 9ed9f60..8b9035b 100644
---- a/crypto/sha512_generic.c
-+++ b/crypto/sha512_generic.c
-@@ -21,8 +21,6 @@
- #include <linux/percpu.h>
- #include <asm/byteorder.h>
- 
--static DEFINE_PER_CPU(u64[80], msg_schedule);
--
- static inline u64 Ch(u64 x, u64 y, u64 z)
- {
-         return z ^ (x & (y ^ z));
-@@ -89,7 +87,7 @@ sha512_transform(u64 *state, const u8 *input)
- 	u64 a, b, c, d, e, f, g, h, t1, t2;
- 
- 	int i;
--	u64 *W = get_cpu_var(msg_schedule);
-+	u64 W[80];
- 
- 	/* load the input */
-         for (i = 0; i < 16; i++)
-@@ -128,8 +126,6 @@ sha512_transform(u64 *state, const u8 *input)
- 
- 	/* erase our data */
- 	a = b = c = d = e = f = g = h = t1 = t2 = 0;
--	memset(W, 0, sizeof(__get_cpu_var(msg_schedule)));
--	put_cpu_var(msg_schedule);
- }
- 
- static int
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0021-crypto-sha512-reduce-stack-usage-to-safe-number.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0021-crypto-sha512-reduce-stack-usage-to-safe-number.patch
deleted file mode 100644
index f9cd9be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0021-crypto-sha512-reduce-stack-usage-to-safe-number.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 3c9d63758798b951767cd63682532a4e60386c63 Mon Sep 17 00:00:00 2001
-From: Alexey Dobriyan <adobriyan at gmail.com>
-Date: Sat, 14 Jan 2012 21:40:57 +0300
-Subject: [PATCH 21/90] crypto: sha512 - reduce stack usage to safe number
-
-commit 51fc6dc8f948047364f7d42a4ed89b416c6cc0a3 upstream.
-
-For rounds 16--79, W[i] only depends on W[i - 2], W[i - 7], W[i - 15] and W[i - 16].
-Consequently, keeping all W[80] array on stack is unnecessary,
-only 16 values are really needed.
-
-Using W[16] instead of W[80] greatly reduces stack usage
-(~750 bytes to ~340 bytes on x86_64).
-
-Line by line explanation:
-* BLEND_OP
-  array is "circular" now, all indexes have to be modulo 16.
-  Round number is positive, so remainder operation should be
-  without surprises.
-
-* initial full message scheduling is trimmed to first 16 values which
-  come from data block, the rest is calculated before it's needed.
-
-* original loop body is unrolled version of new SHA512_0_15 and
-  SHA512_16_79 macros, unrolling was done to not do explicit variable
-  renaming. Otherwise it's the very same code after preprocessing.
-  See sha1_transform() code which does the same trick.
-
-Patch survives in-tree crypto test and original bugreport test
-(ping flood with hmac(sha512).
-
-See FIPS 180-2 for SHA-512 definition
-http://csrc.nist.gov/publications/fips/fips180-2/fips180-2withchangenotice.pdf
-
-Signed-off-by: Alexey Dobriyan <adobriyan at gmail.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- crypto/sha512_generic.c |   58 +++++++++++++++++++++++++++--------------------
- 1 file changed, 34 insertions(+), 24 deletions(-)
-
-diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
-index 8b9035b..88f160b 100644
---- a/crypto/sha512_generic.c
-+++ b/crypto/sha512_generic.c
-@@ -78,7 +78,7 @@ static inline void LOAD_OP(int I, u64 *W, const u8 *input)
- 
- static inline void BLEND_OP(int I, u64 *W)
- {
--	W[I] = s1(W[I-2]) + W[I-7] + s0(W[I-15]) + W[I-16];
-+	W[I % 16] += s1(W[(I-2) % 16]) + W[(I-7) % 16] + s0(W[(I-15) % 16]);
- }
- 
- static void
-@@ -87,38 +87,48 @@ sha512_transform(u64 *state, const u8 *input)
- 	u64 a, b, c, d, e, f, g, h, t1, t2;
- 
- 	int i;
--	u64 W[80];
-+	u64 W[16];
- 
- 	/* load the input */
-         for (i = 0; i < 16; i++)
-                 LOAD_OP(i, W, input);
- 
--        for (i = 16; i < 80; i++) {
--                BLEND_OP(i, W);
--        }
--
- 	/* load the state into our registers */
- 	a=state[0];   b=state[1];   c=state[2];   d=state[3];
- 	e=state[4];   f=state[5];   g=state[6];   h=state[7];
- 
--	/* now iterate */
--	for (i=0; i<80; i+=8) {
--		t1 = h + e1(e) + Ch(e,f,g) + sha512_K[i  ] + W[i  ];
--		t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
--		t1 = g + e1(d) + Ch(d,e,f) + sha512_K[i+1] + W[i+1];
--		t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
--		t1 = f + e1(c) + Ch(c,d,e) + sha512_K[i+2] + W[i+2];
--		t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
--		t1 = e + e1(b) + Ch(b,c,d) + sha512_K[i+3] + W[i+3];
--		t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
--		t1 = d + e1(a) + Ch(a,b,c) + sha512_K[i+4] + W[i+4];
--		t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
--		t1 = c + e1(h) + Ch(h,a,b) + sha512_K[i+5] + W[i+5];
--		t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
--		t1 = b + e1(g) + Ch(g,h,a) + sha512_K[i+6] + W[i+6];
--		t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
--		t1 = a + e1(f) + Ch(f,g,h) + sha512_K[i+7] + W[i+7];
--		t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
-+#define SHA512_0_15(i, a, b, c, d, e, f, g, h)			\
-+	t1 = h + e1(e) + Ch(e, f, g) + sha512_K[i] + W[i];	\
-+	t2 = e0(a) + Maj(a, b, c);				\
-+	d += t1;						\
-+	h = t1 + t2
-+
-+#define SHA512_16_79(i, a, b, c, d, e, f, g, h)			\
-+	BLEND_OP(i, W);						\
-+	t1 = h + e1(e) + Ch(e, f, g) + sha512_K[i] + W[(i)%16];	\
-+	t2 = e0(a) + Maj(a, b, c);				\
-+	d += t1;						\
-+	h = t1 + t2
-+
-+	for (i = 0; i < 16; i += 8) {
-+		SHA512_0_15(i, a, b, c, d, e, f, g, h);
-+		SHA512_0_15(i + 1, h, a, b, c, d, e, f, g);
-+		SHA512_0_15(i + 2, g, h, a, b, c, d, e, f);
-+		SHA512_0_15(i + 3, f, g, h, a, b, c, d, e);
-+		SHA512_0_15(i + 4, e, f, g, h, a, b, c, d);
-+		SHA512_0_15(i + 5, d, e, f, g, h, a, b, c);
-+		SHA512_0_15(i + 6, c, d, e, f, g, h, a, b);
-+		SHA512_0_15(i + 7, b, c, d, e, f, g, h, a);
-+	}
-+	for (i = 16; i < 80; i += 8) {
-+		SHA512_16_79(i, a, b, c, d, e, f, g, h);
-+		SHA512_16_79(i + 1, h, a, b, c, d, e, f, g);
-+		SHA512_16_79(i + 2, g, h, a, b, c, d, e, f);
-+		SHA512_16_79(i + 3, f, g, h, a, b, c, d, e);
-+		SHA512_16_79(i + 4, e, f, g, h, a, b, c, d);
-+		SHA512_16_79(i + 5, d, e, f, g, h, a, b, c);
-+		SHA512_16_79(i + 6, c, d, e, f, g, h, a, b);
-+		SHA512_16_79(i + 7, b, c, d, e, f, g, h, a);
- 	}
- 
- 	state[0] += a; state[1] += b; state[2] += c; state[3] += d;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0022-tpm_tis-add-delay-after-aborting-command.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0022-tpm_tis-add-delay-after-aborting-command.patch
deleted file mode 100644
index 67cc971..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0022-tpm_tis-add-delay-after-aborting-command.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From caa437611de9fbff82c56157c92863f07b3d39db Mon Sep 17 00:00:00 2001
-From: Stefan Berger <stefanb at linux.vnet.ibm.com>
-Date: Fri, 11 Nov 2011 12:57:06 -0500
-Subject: [PATCH 22/90] tpm_tis: add delay after aborting command
-
-commit a927b8131794ee449b7f6666e7ab61301949b20f upstream.
-
-This patch adds a delay after aborting a command. Some TPMs need
-this and will not process the subsequent command correctly otherwise.
-
-It's worth noting that a TPM randomly failing to process a command,
-maps to randomly failing suspend/resume operations.
-
-Signed-off-by: Stefan Berger <stefanb at linux.vnet.ibm.com>
-Signed-off-by: Rajiv Andrade <srajiv at linux.vnet.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/char/tpm/tpm_tis.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/char/tpm/tpm_tis.c b/drivers/char/tpm/tpm_tis.c
-index 3f4051a..c7e5282 100644
---- a/drivers/char/tpm/tpm_tis.c
-+++ b/drivers/char/tpm/tpm_tis.c
-@@ -432,6 +432,9 @@ static int probe_itpm(struct tpm_chip *chip)
- out:
- 	itpm = rem_itpm;
- 	tpm_tis_ready(chip);
-+	/* some TPMs need a break here otherwise they will not work
-+	 * correctly on the immediately subsequent command */
-+	msleep(chip->vendor.timeout_b);
- 	release_locality(chip, chip->vendor.locality, 0);
- 
- 	return rc;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch
deleted file mode 100644
index 1b4a1e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 9879a44c57c58034844a11551c81fd05b3341c1a Mon Sep 17 00:00:00 2001
-From: Cliff Wickman <cpw at sgi.com>
-Date: Wed, 18 Jan 2012 09:40:47 -0600
-Subject: [PATCH 23/90] x86/uv: Fix uninitialized spinlocks
-
-commit d2ebc71d472020bc30e29afe8c4d2a85a5b41f56 upstream.
-
-Initialize two spinlocks in tlb_uv.c and also properly define/initialize
-the uv_irq_lock.
-
-The lack of explicit initialization seems to be functionally
-harmless, but it is diagnosed when these are turned on:
-
-        CONFIG_DEBUG_SPINLOCK=y
-        CONFIG_DEBUG_MUTEXES=y
-        CONFIG_DEBUG_LOCK_ALLOC=y
-        CONFIG_LOCKDEP=y
-
-Signed-off-by: Cliff Wickman <cpw at sgi.com>
-Cc: Dimitri Sivanich <sivanich at sgi.com>
-Link: http://lkml.kernel.org/r/E1RnXd1-0003wU-PM@eag09.americas.sgi.com
-[ Added the uv_irq_lock initialization fix by Dimitri Sivanich ]
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/platform/uv/tlb_uv.c |    2 ++
- arch/x86/platform/uv/uv_irq.c |    2 +-
- 2 files changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/x86/platform/uv/tlb_uv.c b/arch/x86/platform/uv/tlb_uv.c
-index 9010ca7..81aee5a 100644
---- a/arch/x86/platform/uv/tlb_uv.c
-+++ b/arch/x86/platform/uv/tlb_uv.c
-@@ -1860,6 +1860,8 @@ static void __init init_per_cpu_tunables(void)
- 		bcp->cong_reps			= congested_reps;
- 		bcp->cong_period		= congested_period;
- 		bcp->clocks_per_100_usec =	usec_2_cycles(100);
-+		spin_lock_init(&bcp->queue_lock);
-+		spin_lock_init(&bcp->uvhub_lock);
- 	}
- }
- 
-diff --git a/arch/x86/platform/uv/uv_irq.c b/arch/x86/platform/uv/uv_irq.c
-index 374a05d..f25c276 100644
---- a/arch/x86/platform/uv/uv_irq.c
-+++ b/arch/x86/platform/uv/uv_irq.c
-@@ -25,7 +25,7 @@ struct uv_irq_2_mmr_pnode{
- 	int			irq;
- };
- 
--static spinlock_t		uv_irq_lock;
-+static DEFINE_SPINLOCK(uv_irq_lock);
- static struct rb_root		uv_irq_root;
- 
- static int uv_set_irq_affinity(struct irq_data *, const struct cpumask *, bool);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0024-x86-uv-Fix-uv_gpa_to_soc_phys_ram-shift.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0024-x86-uv-Fix-uv_gpa_to_soc_phys_ram-shift.patch
deleted file mode 100644
index e26066b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0024-x86-uv-Fix-uv_gpa_to_soc_phys_ram-shift.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 9788a66a2053d7548aca11af50ea2730ffb9db91 Mon Sep 17 00:00:00 2001
-From: Russ Anderson <rja at sgi.com>
-Date: Wed, 18 Jan 2012 20:07:54 -0600
-Subject: [PATCH 24/90] x86/uv: Fix uv_gpa_to_soc_phys_ram() shift
-
-commit 5a51467b146ab7948d2f6812892eac120a30529c upstream.
-
-uv_gpa_to_soc_phys_ram() was inadvertently ignoring the
-shift values.  This fix takes the shift into account.
-
-Signed-off-by: Russ Anderson <rja at sgi.com>
-Link: http://lkml.kernel.org/r/20120119020753.GA7228@sgi.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/uv/uv_hub.h |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/include/asm/uv/uv_hub.h b/arch/x86/include/asm/uv/uv_hub.h
-index 54a13aa..21f7385 100644
---- a/arch/x86/include/asm/uv/uv_hub.h
-+++ b/arch/x86/include/asm/uv/uv_hub.h
-@@ -318,13 +318,13 @@ uv_gpa_in_mmr_space(unsigned long gpa)
- /* UV global physical address --> socket phys RAM */
- static inline unsigned long uv_gpa_to_soc_phys_ram(unsigned long gpa)
- {
--	unsigned long paddr = gpa & uv_hub_info->gpa_mask;
-+	unsigned long paddr;
- 	unsigned long remap_base = uv_hub_info->lowmem_remap_base;
- 	unsigned long remap_top =  uv_hub_info->lowmem_remap_top;
- 
- 	gpa = ((gpa << uv_hub_info->m_shift) >> uv_hub_info->m_shift) |
- 		((gpa >> uv_hub_info->n_lshift) << uv_hub_info->m_val);
--	gpa = gpa & uv_hub_info->gpa_mask;
-+	paddr = gpa & uv_hub_info->gpa_mask;
- 	if (paddr >= remap_base && paddr < remap_base + remap_top)
- 		paddr -= remap_base;
- 	return paddr;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0025-x86-microcode_amd-Add-support-for-CPU-family-specifi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0025-x86-microcode_amd-Add-support-for-CPU-family-specifi.patch
deleted file mode 100644
index c87c424..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0025-x86-microcode_amd-Add-support-for-CPU-family-specifi.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From cb0e26dce7e9a5384c7dec3550647faf56207108 Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Fri, 20 Jan 2012 17:44:12 +0100
-Subject: [PATCH 25/90] x86/microcode_amd: Add support for CPU family specific
- container files
-
-commit 5b68edc91cdc972c46f76f85eded7ffddc3ff5c2 upstream.
-
-We've decided to provide CPU family specific container files
-(starting with CPU family 15h). E.g. for family 15h we have to
-load microcode_amd_fam15h.bin instead of microcode_amd.bin
-
-Rationale is that starting with family 15h patch size is larger
-than 2KB which was hard coded as maximum patch size in various
-microcode loaders (not just Linux).
-
-Container files which include patches larger than 2KB cause
-different kinds of trouble with such old patch loaders. Thus we
-have to ensure that the default container file provides only
-patches with size less than 2KB.
-
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Cc: Borislav Petkov <borislav.petkov at amd.com>
-Cc: <stable at kernel.org>
-Link: http://lkml.kernel.org/r/20120120164412.GD24508@alberich.amd.com
-[ documented the naming convention and tidied the code a bit. ]
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/microcode_amd.c |   24 ++++++++++++++++++++++--
- 1 file changed, 22 insertions(+), 2 deletions(-)
-
-diff --git a/arch/x86/kernel/microcode_amd.c b/arch/x86/kernel/microcode_amd.c
-index d494799..ac52c15 100644
---- a/arch/x86/kernel/microcode_amd.c
-+++ b/arch/x86/kernel/microcode_amd.c
-@@ -300,13 +300,33 @@ free_table:
- 	return state;
- }
- 
-+/*
-+ * AMD microcode firmware naming convention, up to family 15h they are in
-+ * the legacy file:
-+ *
-+ *    amd-ucode/microcode_amd.bin
-+ *
-+ * This legacy file is always smaller than 2K in size.
-+ *
-+ * Starting at family 15h they are in family specific firmware files:
-+ *
-+ *    amd-ucode/microcode_amd_fam15h.bin
-+ *    amd-ucode/microcode_amd_fam16h.bin
-+ *    ...
-+ *
-+ * These might be larger than 2K.
-+ */
- static enum ucode_state request_microcode_amd(int cpu, struct device *device)
- {
--	const char *fw_name = "amd-ucode/microcode_amd.bin";
-+	char fw_name[36] = "amd-ucode/microcode_amd.bin";
- 	const struct firmware *fw;
- 	enum ucode_state ret = UCODE_NFOUND;
-+	struct cpuinfo_x86 *c = &cpu_data(cpu);
-+
-+	if (c->x86 >= 0x15)
-+		snprintf(fw_name, sizeof(fw_name), "amd-ucode/microcode_amd_fam%.2xh.bin", c->x86);
- 
--	if (request_firmware(&fw, fw_name, device)) {
-+	if (request_firmware(&fw, (const char *)fw_name, device)) {
- 		pr_err("failed to load file %s\n", fw_name);
- 		goto out;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0026-m68k-Fix-assembler-constraint-to-prevent-overeager-g.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0026-m68k-Fix-assembler-constraint-to-prevent-overeager-g.patch
deleted file mode 100644
index 1e1762d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0026-m68k-Fix-assembler-constraint-to-prevent-overeager-g.patch
+++ /dev/null
@@ -1,172 +0,0 @@
-From fc1407525a7f1db7e288fddede6111d9c31d61cc Mon Sep 17 00:00:00 2001
-From: Andreas Schwab <schwab at linux-m68k.org>
-Date: Mon, 9 Jan 2012 15:10:15 +0100
-Subject: [PATCH 26/90] m68k: Fix assembler constraint to prevent overeager
- gcc optimisation
-
-commit 2a3535069e33d8b416f406c159ce924427315303 upstream.
-
-Passing the address of a variable as an operand to an asm statement
-doesn't mark the value of this variable as used, so gcc may optimize its
-initialisation away.  Fix this by using the "m" constraint instead.
-
-Signed-off-by: Andreas Schwab <schwab at linux-m68k.org>
-Signed-off-by: Geert Uytterhoeven <geert at linux-m68k.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/m68k/atari/config.c      |    8 ++++----
- arch/m68k/kernel/process_mm.c |    4 ++--
- arch/m68k/kernel/process_no.c |    4 ++--
- arch/m68k/kernel/traps.c      |   36 +++++++++++++++++-------------------
- arch/m68k/mm/cache.c          |    6 +++---
- 5 files changed, 28 insertions(+), 30 deletions(-)
-
-diff --git a/arch/m68k/atari/config.c b/arch/m68k/atari/config.c
-index 4203d10..c4ac15c 100644
---- a/arch/m68k/atari/config.c
-+++ b/arch/m68k/atari/config.c
-@@ -414,9 +414,9 @@ void __init config_atari(void)
- 					 * FDC val = 4 -> Supervisor only */
- 		asm volatile ("\n"
- 			"	.chip	68030\n"
--			"	pmove	%0@,%/tt1\n"
-+			"	pmove	%0,%/tt1\n"
- 			"	.chip	68k"
--			: : "a" (&tt1_val));
-+			: : "m" (tt1_val));
- 	} else {
- 	        asm volatile ("\n"
- 			"	.chip	68040\n"
-@@ -569,10 +569,10 @@ static void atari_reset(void)
- 			: "d0");
- 	} else
- 		asm volatile ("\n"
--			"	pmove	%0@,%%tc\n"
-+			"	pmove	%0,%%tc\n"
- 			"	jmp	%1@"
- 			: /* no outputs */
--			: "a" (&tc_val), "a" (reset_addr));
-+			: "m" (tc_val), "a" (reset_addr));
- }
- 
- 
-diff --git a/arch/m68k/kernel/process_mm.c b/arch/m68k/kernel/process_mm.c
-index 1bc223a..aa4ffb8 100644
---- a/arch/m68k/kernel/process_mm.c
-+++ b/arch/m68k/kernel/process_mm.c
-@@ -189,8 +189,8 @@ void flush_thread(void)
- 	current->thread.fs = __USER_DS;
- 	if (!FPU_IS_EMU)
- 		asm volatile (".chip 68k/68881\n\t"
--			      "frestore %0@\n\t"
--			      ".chip 68k" : : "a" (&zero));
-+			      "frestore %0\n\t"
-+			      ".chip 68k" : : "m" (zero));
- }
- 
- /*
-diff --git a/arch/m68k/kernel/process_no.c b/arch/m68k/kernel/process_no.c
-index 69c1803..5e1078c 100644
---- a/arch/m68k/kernel/process_no.c
-+++ b/arch/m68k/kernel/process_no.c
-@@ -163,8 +163,8 @@ void flush_thread(void)
- #ifdef CONFIG_FPU
- 	if (!FPU_IS_EMU)
- 		asm volatile (".chip 68k/68881\n\t"
--			      "frestore %0@\n\t"
--			      ".chip 68k" : : "a" (&zero));
-+			      "frestore %0\n\t"
-+			      ".chip 68k" : : "m" (zero));
- #endif
- }
- 
-diff --git a/arch/m68k/kernel/traps.c b/arch/m68k/kernel/traps.c
-index 89362f2..eb67469 100644
---- a/arch/m68k/kernel/traps.c
-+++ b/arch/m68k/kernel/traps.c
-@@ -552,13 +552,13 @@ static inline void bus_error030 (struct frame *fp)
- 
- #ifdef DEBUG
- 		asm volatile ("ptestr %3,%2@,#7,%0\n\t"
--			      "pmove %%psr,%1@"
--			      : "=a&" (desc)
--			      : "a" (&temp), "a" (addr), "d" (ssw));
-+			      "pmove %%psr,%1"
-+			      : "=a&" (desc), "=m" (temp)
-+			      : "a" (addr), "d" (ssw));
- #else
- 		asm volatile ("ptestr %2,%1@,#7\n\t"
--			      "pmove %%psr,%0@"
--			      : : "a" (&temp), "a" (addr), "d" (ssw));
-+			      "pmove %%psr,%0"
-+			      : "=m" (temp) : "a" (addr), "d" (ssw));
- #endif
- 		mmusr = temp;
- 
-@@ -605,20 +605,18 @@ static inline void bus_error030 (struct frame *fp)
- 			       !(ssw & RW) ? "write" : "read", addr,
- 			       fp->ptregs.pc, ssw);
- 			asm volatile ("ptestr #1,%1@,#0\n\t"
--				      "pmove %%psr,%0@"
--				      : /* no outputs */
--				      : "a" (&temp), "a" (addr));
-+				      "pmove %%psr,%0"
-+				      : "=m" (temp)
-+				      : "a" (addr));
- 			mmusr = temp;
- 
- 			printk ("level 0 mmusr is %#x\n", mmusr);
- #if 0
--			asm volatile ("pmove %%tt0,%0@"
--				      : /* no outputs */
--				      : "a" (&tlong));
-+			asm volatile ("pmove %%tt0,%0"
-+				      : "=m" (tlong));
- 			printk("tt0 is %#lx, ", tlong);
--			asm volatile ("pmove %%tt1,%0@"
--				      : /* no outputs */
--				      : "a" (&tlong));
-+			asm volatile ("pmove %%tt1,%0"
-+				      : "=m" (tlong));
- 			printk("tt1 is %#lx\n", tlong);
- #endif
- #ifdef DEBUG
-@@ -668,13 +666,13 @@ static inline void bus_error030 (struct frame *fp)
- 
- #ifdef DEBUG
- 	asm volatile ("ptestr #1,%2@,#7,%0\n\t"
--		      "pmove %%psr,%1@"
--		      : "=a&" (desc)
--		      : "a" (&temp), "a" (addr));
-+		      "pmove %%psr,%1"
-+		      : "=a&" (desc), "=m" (temp)
-+		      : "a" (addr));
- #else
- 	asm volatile ("ptestr #1,%1@,#7\n\t"
--		      "pmove %%psr,%0@"
--		      : : "a" (&temp), "a" (addr));
-+		      "pmove %%psr,%0"
-+		      : "=m" (temp) : "a" (addr));
- #endif
- 	mmusr = temp;
- 
-diff --git a/arch/m68k/mm/cache.c b/arch/m68k/mm/cache.c
-index 5437fff..5550aa4 100644
---- a/arch/m68k/mm/cache.c
-+++ b/arch/m68k/mm/cache.c
-@@ -52,9 +52,9 @@ static unsigned long virt_to_phys_slow(unsigned long vaddr)
- 		unsigned long *descaddr;
- 
- 		asm volatile ("ptestr %3,%2@,#7,%0\n\t"
--			      "pmove %%psr,%1@"
--			      : "=a&" (descaddr)
--			      : "a" (&mmusr), "a" (vaddr), "d" (get_fs().seg));
-+			      "pmove %%psr,%1"
-+			      : "=a&" (descaddr), "=m" (mmusr)
-+			      : "a" (vaddr), "d" (get_fs().seg));
- 		if (mmusr & (MMU_I|MMU_B|MMU_L))
- 			return 0;
- 		descaddr = phys_to_virt((unsigned long)descaddr);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0027-ALSA-hda-set-mute-led-polarity-for-laptops-with-bugg.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0027-ALSA-hda-set-mute-led-polarity-for-laptops-with-bugg.patch
deleted file mode 100644
index f4f1801..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0027-ALSA-hda-set-mute-led-polarity-for-laptops-with-bugg.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 22619b056f526f74b1e59fb17acdfb6c011e2917 Mon Sep 17 00:00:00 2001
-From: Gustavo Maciel Dias Vieira <gustavo at sagui.org>
-Date: Tue, 24 Jan 2012 13:27:56 -0200
-Subject: [PATCH 27/90] ALSA: hda: set mute led polarity for laptops with
- buggy BIOS based on SSID
-
-commit a6a600d10aaddf1da38053c4c6b64f50f56176e6 upstream.
-
-HP laptop models with buggy BIOS are apparently frequent, including
-machines with different codecs. Set the polarity of the mute led based
-on the SSID and include an entry for the HP Mini 110-3100.
-
-Signed-off-by: Gustavo Maciel Dias Vieira <gustavo at sagui.org>
-Tested-by: Predrag Ivanovic <predivan at open.telekom.rs>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_sigmatel.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_sigmatel.c b/sound/pci/hda/patch_sigmatel.c
-index 2141cab..ccdac27 100644
---- a/sound/pci/hda/patch_sigmatel.c
-+++ b/sound/pci/hda/patch_sigmatel.c
-@@ -4952,7 +4952,14 @@ static int find_mute_led_gpio(struct hda_codec *codec, int default_polarity)
- 			/* BIOS bug: unfilled OEM string */
- 			if (strstr(dev->name, "HP_Mute_LED_P_G")) {
- 				set_hp_led_gpio(codec);
--				spec->gpio_led_polarity = 1;
-+				switch (codec->subsystem_id) {
-+				case 0x103c148a:
-+					spec->gpio_led_polarity = 0;
-+					break;
-+				default:
-+					spec->gpio_led_polarity = 1;
-+					break;
-+				}
- 				return 1;
- 			}
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0028-ALSA-hda-Fix-silent-output-on-ASUS-A6Rp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0028-ALSA-hda-Fix-silent-output-on-ASUS-A6Rp.patch
deleted file mode 100644
index 6bbaf4c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0028-ALSA-hda-Fix-silent-output-on-ASUS-A6Rp.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 549e4501b20d12eabef8f35cc2846091566d71a0 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 25 Jan 2012 09:55:46 +0100
-Subject: [PATCH 28/90] ALSA: hda - Fix silent output on ASUS A6Rp
-
-commit 3b25eb690e8c7424eecffe1458c02b87b32aa001 upstream.
-
-The refactoring of Realtek codec driver in 3.2 kernel caused a
-regression for ASUS A6Rp laptop; it doesn't give any output.
-The reason was that this machine has a secret master mute (or EAPD)
-control via NID 0x0f VREF.  Setting VREF50 on this node makes the
-sound working again.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |   10 ++++++++++
- 1 file changed, 10 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 1d07e8f..9a63a19 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5223,6 +5223,7 @@ static const struct hda_amp_list alc861_loopbacks[] = {
- /* Pin config fixes */
- enum {
- 	PINFIX_FSC_AMILO_PI1505,
-+	PINFIX_ASUS_A6RP,
- };
- 
- static const struct alc_fixup alc861_fixups[] = {
-@@ -5234,9 +5235,18 @@ static const struct alc_fixup alc861_fixups[] = {
- 			{ }
- 		}
- 	},
-+	[PINFIX_ASUS_A6RP] = {
-+		.type = ALC_FIXUP_VERBS,
-+		.v.verbs = (const struct hda_verb[]) {
-+			/* node 0x0f VREF seems controlling the master output */
-+			{ 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF50 },
-+			{ }
-+		},
-+	},
- };
- 
- static const struct snd_pci_quirk alc861_fixup_tbl[] = {
-+	SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", PINFIX_ASUS_A6RP),
- 	SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505),
- 	{}
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0029-ALSA-hda-Fix-silent-output-on-Haier-W18-laptop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0029-ALSA-hda-Fix-silent-output-on-Haier-W18-laptop.patch
deleted file mode 100644
index f25bd6c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0029-ALSA-hda-Fix-silent-output-on-Haier-W18-laptop.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7e5aab3ce9f6ddf8e33efb988160d61011857f64 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 26 Jan 2012 15:56:16 +0100
-Subject: [PATCH 29/90] ALSA: hda - Fix silent output on Haier W18 laptop
-
-commit b3a81520bd37a28f77cb0f7002086fb14061824d upstream.
-
-The very same problem is seen on Haier W18 laptop with ALC861 as seen
-on ASUS A6Rp, which was fixed by the commit 3b25eb69.
-Now we just need to add a new SSID entry pointing to the same fixup.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42656
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 9a63a19..5f03c40 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5247,6 +5247,7 @@ static const struct alc_fixup alc861_fixups[] = {
- 
- static const struct snd_pci_quirk alc861_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", PINFIX_ASUS_A6RP),
-+	SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", PINFIX_ASUS_A6RP),
- 	SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505),
- 	{}
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0030-drm-i915-paper-over-missed-irq-issues-with-force-wak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0030-drm-i915-paper-over-missed-irq-issues-with-force-wak.patch
deleted file mode 100644
index 10fbb57..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0030-drm-i915-paper-over-missed-irq-issues-with-force-wak.patch
+++ /dev/null
@@ -1,126 +0,0 @@
-From cfd65d7a489fbc3594ce751173d3c46089ab41d5 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Fri, 14 Dec 2012 16:01:25 +0100
-Subject: [PATCH 30/90] drm/i915: paper over missed irq issues with force wake
- voodoo
-
-commit 4cd53c0c8b01fc05c3ad5b2acdad02e37d3c2f55 upstream.
-
-Two things seem to do the trick on my ivb machine here:
-- prevent the gt from powering down while waiting for seqno
-  notification interrupts by grabbing the force_wake in get_irq (and
-  dropping it in put_irq again).
-- ordering writes from the ring's CS by reading a CS register, ACTHD
-  seems to work.
-
-Only the blt&bsd ring on ivb seem to be massively affected by this,
-but for paranoia do this dance also on the render ring and on snb
-(i.e. all gpus with forcewake).
-
-Tested with Eric's glCopyPixels loop which without this patch scores a
-missed irq every few seconds.
-
-This patch needs my forcewake rework to use a spinlock instead of
-dev->struct_mutex.
-
-After crawling through docs a lot I've found the following nugget:
-
-Internal doc "SNB GT PM Programming Guide", Section 4.3.1:
-
-"GT does not generate interrupts while in RC6 (by design)"
-
-So it looks like rc6 and irq generation are indeed related.
-
-v2: Improve the comment per Eugeni Dodonov's suggestion.
-
-v3: Add the documentation snipped. Also restrict the w/a to ivb only
-for -fixes, as suggested by Keith Packard.
-
-Cc: Eric Anholt <eric at anholt.net>
-Cc: Kenneth Graunke <kenneth at whitecape.org>
-Cc: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Tested-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_ringbuffer.c |   27 +++++++++++++++++++++++++--
- 1 file changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_ringbuffer.c b/drivers/gpu/drm/i915/intel_ringbuffer.c
-index ca70e2f..30a9af9 100644
---- a/drivers/gpu/drm/i915/intel_ringbuffer.c
-+++ b/drivers/gpu/drm/i915/intel_ringbuffer.c
-@@ -631,6 +631,19 @@ render_ring_add_request(struct intel_ring_buffer *ring,
- }
- 
- static u32
-+gen6_ring_get_seqno(struct intel_ring_buffer *ring)
-+{
-+	struct drm_device *dev = ring->dev;
-+
-+	/* Workaround to force correct ordering between irq and seqno writes on
-+	 * ivb (and maybe also on snb) by reading from a CS register (like
-+	 * ACTHD) before reading the status page. */
-+	if (IS_GEN7(dev))
-+		intel_ring_get_active_head(ring);
-+	return intel_read_status_page(ring, I915_GEM_HWS_INDEX);
-+}
-+
-+static u32
- ring_get_seqno(struct intel_ring_buffer *ring)
- {
- 	return intel_read_status_page(ring, I915_GEM_HWS_INDEX);
-@@ -795,6 +808,12 @@ gen6_ring_get_irq(struct intel_ring_buffer *ring, u32 gflag, u32 rflag)
- 	if (!dev->irq_enabled)
- 	       return false;
- 
-+	/* It looks like we need to prevent the gt from suspending while waiting
-+	 * for an notifiy irq, otherwise irqs seem to get lost on at least the
-+	 * blt/bsd rings on ivb. */
-+	if (IS_GEN7(dev))
-+		gen6_gt_force_wake_get(dev_priv);
-+
- 	spin_lock(&ring->irq_lock);
- 	if (ring->irq_refcount++ == 0) {
- 		ring->irq_mask &= ~rflag;
-@@ -819,6 +838,9 @@ gen6_ring_put_irq(struct intel_ring_buffer *ring, u32 gflag, u32 rflag)
- 		ironlake_disable_irq(dev_priv, gflag);
- 	}
- 	spin_unlock(&ring->irq_lock);
-+
-+	if (IS_GEN7(dev))
-+		gen6_gt_force_wake_put(dev_priv);
- }
- 
- static bool
-@@ -1316,7 +1338,7 @@ static const struct intel_ring_buffer gen6_bsd_ring = {
- 	.write_tail		= gen6_bsd_ring_write_tail,
- 	.flush			= gen6_ring_flush,
- 	.add_request		= gen6_add_request,
--	.get_seqno		= ring_get_seqno,
-+	.get_seqno		= gen6_ring_get_seqno,
- 	.irq_get		= gen6_bsd_ring_get_irq,
- 	.irq_put		= gen6_bsd_ring_put_irq,
- 	.dispatch_execbuffer	= gen6_ring_dispatch_execbuffer,
-@@ -1451,7 +1473,7 @@ static const struct intel_ring_buffer gen6_blt_ring = {
- 	.write_tail		= ring_write_tail,
- 	.flush			= blt_ring_flush,
- 	.add_request		= gen6_add_request,
--	.get_seqno		= ring_get_seqno,
-+	.get_seqno		= gen6_ring_get_seqno,
- 	.irq_get		= blt_ring_get_irq,
- 	.irq_put		= blt_ring_put_irq,
- 	.dispatch_execbuffer	= gen6_ring_dispatch_execbuffer,
-@@ -1474,6 +1496,7 @@ int intel_init_render_ring_buffer(struct drm_device *dev)
- 		ring->flush = gen6_render_ring_flush;
- 		ring->irq_get = gen6_render_ring_get_irq;
- 		ring->irq_put = gen6_render_ring_put_irq;
-+		ring->get_seqno = gen6_ring_get_seqno;
- 	} else if (IS_GEN5(dev)) {
- 		ring->add_request = pc_render_add_request;
- 		ring->get_seqno = pc_render_get_seqno;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0031-drm-i915-sdvo-always-set-positive-sync-polarity.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0031-drm-i915-sdvo-always-set-positive-sync-polarity.patch
deleted file mode 100644
index b71fe18..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0031-drm-i915-sdvo-always-set-positive-sync-polarity.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 6a131dd582a8c782e0d2d9fdef0bfb4f53cec306 Mon Sep 17 00:00:00 2001
-From: Paulo Zanoni <paulo.r.zanoni at intel.com>
-Date: Fri, 6 Jan 2012 19:45:34 -0200
-Subject: [PATCH 31/90] drm/i915/sdvo: always set positive sync polarity
-
-commit ba68e086223a5f149f37bf8692c8cdbf1b0ba3ef upstream.
-
-This is a revert of 81a14b46846fea0741902e8d8dfcc6c6c78154c8.
-
-We already set the mode polarity using the SDVO commands with struct
-intel_sdvo_dtd. We have at least 3 bugs that get fixed with this patch.
-The documentation, despite not clear, can also be interpreted in a way
-that suggests this patch is needed.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=15766
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42174
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=43333
-Reviewed-by: Eric Anholt <eric at anholt.net>
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Paulo Zanoni <paulo.r.zanoni at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_sdvo.c |    8 +++-----
- 1 file changed, 3 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_sdvo.c b/drivers/gpu/drm/i915/intel_sdvo.c
-index f7b9268..e334ec3 100644
---- a/drivers/gpu/drm/i915/intel_sdvo.c
-+++ b/drivers/gpu/drm/i915/intel_sdvo.c
-@@ -1066,15 +1066,13 @@ static void intel_sdvo_mode_set(struct drm_encoder *encoder,
- 
- 	/* Set the SDVO control regs. */
- 	if (INTEL_INFO(dev)->gen >= 4) {
--		sdvox = 0;
-+		/* The real mode polarity is set by the SDVO commands, using
-+		 * struct intel_sdvo_dtd. */
-+		sdvox = SDVO_VSYNC_ACTIVE_HIGH | SDVO_HSYNC_ACTIVE_HIGH;
- 		if (intel_sdvo->is_hdmi)
- 			sdvox |= intel_sdvo->color_range;
- 		if (INTEL_INFO(dev)->gen < 5)
- 			sdvox |= SDVO_BORDER_ENABLE;
--		if (adjusted_mode->flags & DRM_MODE_FLAG_PVSYNC)
--			sdvox |= SDVO_VSYNC_ACTIVE_HIGH;
--		if (adjusted_mode->flags & DRM_MODE_FLAG_PHSYNC)
--			sdvox |= SDVO_HSYNC_ACTIVE_HIGH;
- 	} else {
- 		sdvox = I915_READ(intel_sdvo->sdvo_reg);
- 		switch (intel_sdvo->sdvo_reg) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0032-drm-i915-Re-enable-gen7-RC6-and-GPU-turbo-after-resu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0032-drm-i915-Re-enable-gen7-RC6-and-GPU-turbo-after-resu.patch
deleted file mode 100644
index a7b02e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0032-drm-i915-Re-enable-gen7-RC6-and-GPU-turbo-after-resu.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From a2c65b5c20cfa95ba4a36afcfa6dc285244b74eb Mon Sep 17 00:00:00 2001
-From: Eric Anholt <eric at anholt.net>
-Date: Mon, 23 Jan 2012 16:14:06 -0800
-Subject: [PATCH 32/90] drm/i915: Re-enable gen7 RC6 and GPU turbo after
- resume.
-
-commit 04115a9dee110b52a8eaa556c574022fa3bf4704 upstream.
-
-Signed-off-by: Eric Anholt <eric at anholt.net>
-Reviewed-by: Keith Packard <keithp at keithp.com>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Reviewed-by: Kenneth Graunke <kenneth at whitecape.org>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_suspend.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
-index 7886e4f..43cbafe 100644
---- a/drivers/gpu/drm/i915/i915_suspend.c
-+++ b/drivers/gpu/drm/i915/i915_suspend.c
-@@ -822,7 +822,7 @@ int i915_save_state(struct drm_device *dev)
- 
- 	if (IS_IRONLAKE_M(dev))
- 		ironlake_disable_drps(dev);
--	if (IS_GEN6(dev))
-+	if (INTEL_INFO(dev)->gen >= 6)
- 		gen6_disable_rps(dev);
- 
- 	/* Cache mode state */
-@@ -881,7 +881,7 @@ int i915_restore_state(struct drm_device *dev)
- 		intel_init_emon(dev);
- 	}
- 
--	if (IS_GEN6(dev)) {
-+	if (INTEL_INFO(dev)->gen >= 6) {
- 		gen6_enable_rps(dev_priv);
- 		gen6_update_ring_freq(dev_priv);
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0033-ARM-at91-fix-at91rm9200-soc-subtype-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0033-ARM-at91-fix-at91rm9200-soc-subtype-handling.patch
deleted file mode 100644
index 7acb37b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0033-ARM-at91-fix-at91rm9200-soc-subtype-handling.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 77a2fa4c4e8b988b6b31c89ba6cd72e1c8beee4b Mon Sep 17 00:00:00 2001
-From: Nicolas Ferre <nicolas.ferre at atmel.com>
-Date: Wed, 28 Dec 2011 13:10:04 +0200
-Subject: [PATCH 33/90] ARM: at91: fix at91rm9200 soc subtype handling
-
-commit 3e90772f76010c315474bde59eaca7cc4c94d645 upstream.
-
-Currently setting it to PQFP changes subtype to BGA as subtypes are
-swapped in at91rm9200_set_type().
-
-Wrong subtype causes GPIO bank D not to work at all.
-
-After this fix, subtype is still set as unknown. But board code should
-fill it in with proper value. Another information is thus printed.
-
-Bug discovery and first implementation made by Veli-Pekka Peltola.
-
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-at91/setup.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-at91/setup.c b/arch/arm/mach-at91/setup.c
-index cf98a8f..39d8ea0 100644
---- a/arch/arm/mach-at91/setup.c
-+++ b/arch/arm/mach-at91/setup.c
-@@ -27,9 +27,12 @@ EXPORT_SYMBOL(at91_soc_initdata);
- void __init at91rm9200_set_type(int type)
- {
- 	if (type == ARCH_REVISON_9200_PQFP)
--		at91_soc_initdata.subtype = AT91_SOC_RM9200_BGA;
--	else
- 		at91_soc_initdata.subtype = AT91_SOC_RM9200_PQFP;
-+	else
-+		at91_soc_initdata.subtype = AT91_SOC_RM9200_BGA;
-+
-+	pr_info("AT91: filled in soc subtype: %s\n",
-+		at91_get_soc_subtype(&at91_soc_initdata));
- }
- 
- void __init at91_init_irq_default(void)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0034-mach-ux500-enable-ARM-errata-764369.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0034-mach-ux500-enable-ARM-errata-764369.patch
deleted file mode 100644
index b867eda..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0034-mach-ux500-enable-ARM-errata-764369.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 26df6080d3107e6fe26a10eb8d37977d38482caf Mon Sep 17 00:00:00 2001
-From: Srinidhi KASAGAR <srinidhi.kasagar at stericsson.com>
-Date: Thu, 12 Jan 2012 11:07:43 +0530
-Subject: [PATCH 34/90] mach-ux500: enable ARM errata 764369
-
-commit d65015f7c5c5be9fd3f5e567889c844ba81bdc9c upstream.
-
-This applies ARM errata 764369 for all ux500 platforms.
-
-Signed-off-by: Srinidhi Kasagar <srinidhi.kasagar at stericsson.com>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-ux500/Kconfig |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm/mach-ux500/Kconfig b/arch/arm/mach-ux500/Kconfig
-index a3e0c86..52af004 100644
---- a/arch/arm/mach-ux500/Kconfig
-+++ b/arch/arm/mach-ux500/Kconfig
-@@ -7,6 +7,7 @@ config UX500_SOC_COMMON
- 	select HAS_MTU
- 	select ARM_ERRATA_753970
- 	select ARM_ERRATA_754322
-+	select ARM_ERRATA_764369
- 
- menu "Ux500 SoC"
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0035-ARM-7296-1-proc-v7.S-remove-HARVARD_CACHE-preprocess.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0035-ARM-7296-1-proc-v7.S-remove-HARVARD_CACHE-preprocess.patch
deleted file mode 100644
index f4273b7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0035-ARM-7296-1-proc-v7.S-remove-HARVARD_CACHE-preprocess.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 475e3d3f7c14f475067e25f2687595f87c297036 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Fri, 20 Jan 2012 12:10:18 +0100
-Subject: [PATCH 35/90] ARM: 7296/1: proc-v7.S: remove HARVARD_CACHE
- preprocessor guards
-
-commit 612539e81f655f6ac73c7af1da8701c1ee618aee upstream.
-
-On v7, we use the same cache maintenance instructions for data lines
-as for unified lines. This was not the case for v6, where HARVARD_CACHE
-was defined to indicate the L1 cache topology.
-
-This patch removes the erroneous compile-time check for HARVARD_CACHE in
-proc-v7.S, ensuring that we perform I-side invalidation at boot.
-
-Reported-and-Acked-by: Shawn Guo <shawn.guo at linaro.org>
-
-Acked-by: Catalin Marinas <Catalin.Marinas at arm.com>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mm/proc-v7.S |    6 ------
- 1 file changed, 6 deletions(-)
-
-diff --git a/arch/arm/mm/proc-v7.S b/arch/arm/mm/proc-v7.S
-index e70a737..40cc7aa 100644
---- a/arch/arm/mm/proc-v7.S
-+++ b/arch/arm/mm/proc-v7.S
-@@ -271,10 +271,6 @@ ENDPROC(cpu_v7_do_resume)
-  *	Initialise TLB, Caches, and MMU state ready to switch the MMU
-  *	on.  Return in r0 the new CP15 C1 control register setting.
-  *
-- *	We automatically detect if we have a Harvard cache, and use the
-- *	Harvard cache control instructions insead of the unified cache
-- *	control instructions.
-- *
-  *	This should be able to cover all ARMv7 cores.
-  *
-  *	It is assumed that:
-@@ -373,9 +369,7 @@ __v7_setup:
- #endif
- 
- 3:	mov	r10, #0
--#ifdef HARVARD_CACHE
- 	mcr	p15, 0, r10, c7, c5, 0		@ I+BTB cache invalidate
--#endif
- 	dsb
- #ifdef CONFIG_MMU
- 	mcr	p15, 0, r10, c8, c7, 0		@ invalidate I + D TLBs
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0036-sysfs-Complain-bitterly-about-attempts-to-remove-fil.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0036-sysfs-Complain-bitterly-about-attempts-to-remove-fil.patch
deleted file mode 100644
index c61dedd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0036-sysfs-Complain-bitterly-about-attempts-to-remove-fil.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 775cf93ed95772f96ae94452358171c6d93fbadf Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Fri, 13 Jan 2012 21:32:59 -0800
-Subject: [PATCH 36/90] sysfs: Complain bitterly about attempts to remove
- files from nonexistent directories.
-
-commit ce597919361dcec97341151690e780eade2a9cf4 upstream.
-
-Recently an OOPS was observed from the usb serial io_ti driver when it tried to remove
-sysfs directories.  Upon investigation it turns out this driver was always buggy
-and that a recent sysfs change had stopped guarding itself against removing attributes
-from sysfs directories that had already been removed. :(
-
-Historically we have been silent about attempting to files from nonexistent sysfs
-directories and have politely returned error codes.  That has resulted in people writing
-broken code that ignores the error codes.
-
-Issue a kernel WARNING and a stack backtrace to make it clear in no uncertain
-terms that abusing sysfs is not ok, and the callers need to fix their code.
-
-This change transforms the io_ti OOPS into a more comprehensible error message
-and stack backtrace.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Reported-by: Wolfgang Frisch <wfpub at roembden.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/sysfs/file.c  |    6 ++++++
- fs/sysfs/inode.c |    5 ++++-
- 2 files changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/fs/sysfs/file.c b/fs/sysfs/file.c
-index d4e6080b..779789a 100644
---- a/fs/sysfs/file.c
-+++ b/fs/sysfs/file.c
-@@ -493,6 +493,12 @@ int sysfs_attr_ns(struct kobject *kobj, const struct attribute *attr,
- 	const void *ns = NULL;
- 	int err;
- 
-+	if (!dir_sd) {
-+		WARN(1, KERN_ERR "sysfs: kobject %s without dirent\n",
-+			kobject_name(kobj));
-+		return -ENOENT;
-+	}
-+
- 	err = 0;
- 	if (!sysfs_ns_type(dir_sd))
- 		goto out;
-diff --git a/fs/sysfs/inode.c b/fs/sysfs/inode.c
-index c81b22f..deb804b 100644
---- a/fs/sysfs/inode.c
-+++ b/fs/sysfs/inode.c
-@@ -318,8 +318,11 @@ int sysfs_hash_and_remove(struct sysfs_dirent *dir_sd, const void *ns, const cha
- 	struct sysfs_addrm_cxt acxt;
- 	struct sysfs_dirent *sd;
- 
--	if (!dir_sd)
-+	if (!dir_sd) {
-+		WARN(1, KERN_WARNING "sysfs: can not remove '%s', no directory\n",
-+			name);
- 		return -ENOENT;
-+	}
- 
- 	sysfs_addrm_start(&acxt, dir_sd);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0037-x86-xen-size-struct-xen_spinlock-to-always-fit-in-ar.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0037-x86-xen-size-struct-xen_spinlock-to-always-fit-in-ar.patch
deleted file mode 100644
index 8466a2c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0037-x86-xen-size-struct-xen_spinlock-to-always-fit-in-ar.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From 3d7cdc4f00c37f18820e0cc0918d09c63c02d676 Mon Sep 17 00:00:00 2001
-From: David Vrabel <david.vrabel at citrix.com>
-Date: Mon, 23 Jan 2012 19:32:25 +0000
-Subject: [PATCH 37/90] x86: xen: size struct xen_spinlock to always fit in
- arch_spinlock_t
-
-commit 7a7546b377bdaa25ac77f33d9433c59f259b9688 upstream.
-
-If NR_CPUS < 256 then arch_spinlock_t is only 16 bits wide but struct
-xen_spinlock is 32 bits.  When a spin lock is contended and
-xl->spinners is modified the two bytes immediately after the spin lock
-would be corrupted.
-
-This is a regression caused by 84eb950db13ca40a0572ce9957e14723500943d6
-(x86, ticketlock: Clean up types and accessors) which reduced the size
-of arch_spinlock_t.
-
-Fix this by making xl->spinners a u8 if NR_CPUS < 256.  A
-BUILD_BUG_ON() is also added to check the sizes of the two structures
-are compatible.
-
-In many cases this was not noticable as there would often be padding
-bytes after the lock (e.g., if any of CONFIG_GENERIC_LOCKBREAK,
-CONFIG_DEBUG_SPINLOCK, or CONFIG_DEBUG_LOCK_ALLOC were enabled).
-
-The bnx2 driver is affected. In struct bnx2, phy_lock and
-indirect_lock may have no padding after them.  Contention on phy_lock
-would corrupt indirect_lock making it appear locked and the driver
-would deadlock.
-
-Signed-off-by: David Vrabel <david.vrabel at citrix.com>
-Signed-off-by: Jeremy Fitzhardinge <jeremy at goop.org>
-Acked-by: Ian Campbell <ian.campbell at citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/xen/spinlock.c |   27 ++++++++++++++++++++++-----
- 1 file changed, 22 insertions(+), 5 deletions(-)
-
-diff --git a/arch/x86/xen/spinlock.c b/arch/x86/xen/spinlock.c
-index cc9b1e1..d69cc6c 100644
---- a/arch/x86/xen/spinlock.c
-+++ b/arch/x86/xen/spinlock.c
-@@ -116,9 +116,26 @@ static inline void spin_time_accum_blocked(u64 start)
- }
- #endif  /* CONFIG_XEN_DEBUG_FS */
- 
-+/*
-+ * Size struct xen_spinlock so it's the same as arch_spinlock_t.
-+ */
-+#if NR_CPUS < 256
-+typedef u8 xen_spinners_t;
-+# define inc_spinners(xl) \
-+	asm(LOCK_PREFIX " incb %0" : "+m" ((xl)->spinners) : : "memory");
-+# define dec_spinners(xl) \
-+	asm(LOCK_PREFIX " decb %0" : "+m" ((xl)->spinners) : : "memory");
-+#else
-+typedef u16 xen_spinners_t;
-+# define inc_spinners(xl) \
-+	asm(LOCK_PREFIX " incw %0" : "+m" ((xl)->spinners) : : "memory");
-+# define dec_spinners(xl) \
-+	asm(LOCK_PREFIX " decw %0" : "+m" ((xl)->spinners) : : "memory");
-+#endif
-+
- struct xen_spinlock {
- 	unsigned char lock;		/* 0 -> free; 1 -> locked */
--	unsigned short spinners;	/* count of waiting cpus */
-+	xen_spinners_t spinners;	/* count of waiting cpus */
- };
- 
- static int xen_spin_is_locked(struct arch_spinlock *lock)
-@@ -164,8 +181,7 @@ static inline struct xen_spinlock *spinning_lock(struct xen_spinlock *xl)
- 
- 	wmb();			/* set lock of interest before count */
- 
--	asm(LOCK_PREFIX " incw %0"
--	    : "+m" (xl->spinners) : : "memory");
-+	inc_spinners(xl);
- 
- 	return prev;
- }
-@@ -176,8 +192,7 @@ static inline struct xen_spinlock *spinning_lock(struct xen_spinlock *xl)
-  */
- static inline void unspinning_lock(struct xen_spinlock *xl, struct xen_spinlock *prev)
- {
--	asm(LOCK_PREFIX " decw %0"
--	    : "+m" (xl->spinners) : : "memory");
-+	dec_spinners(xl);
- 	wmb();			/* decrement count before restoring lock */
- 	__this_cpu_write(lock_spinners, prev);
- }
-@@ -373,6 +388,8 @@ void xen_uninit_lock_cpu(int cpu)
- 
- void __init xen_init_spinlocks(void)
- {
-+	BUILD_BUG_ON(sizeof(struct xen_spinlock) > sizeof(arch_spinlock_t));
-+
- 	pv_lock_ops.spin_is_locked = xen_spin_is_locked;
- 	pv_lock_ops.spin_is_contended = xen_spin_is_contended;
- 	pv_lock_ops.spin_lock = xen_spin_lock;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0038-mpt2sas-Removed-redundant-calling-of-_scsih_probe_de.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0038-mpt2sas-Removed-redundant-calling-of-_scsih_probe_de.patch
deleted file mode 100644
index 63948d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0038-mpt2sas-Removed-redundant-calling-of-_scsih_probe_de.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 9531483cafcb025ce819407f5e2a9942a19c0a2c Mon Sep 17 00:00:00 2001
-From: "nagalakshmi.nandigama at lsi.com" <nagalakshmi.nandigama at lsi.com>
-Date: Tue, 13 Dec 2011 09:29:15 +0530
-Subject: [PATCH 38/90] mpt2sas: Removed redundant calling of
- _scsih_probe_devices() from _scsih_probe
-
-commit 2cb6fc8c014b9b00c4487a79b8f6ed0da4121f45 upstream.
-
-Removed redundant calling of _scsih_probe_devices() from _scsih_probe as
-it is getting called from _scsih_scan_finished.
-
-Also moved the function scsi_scan_host(shost) to get called after the
-volumes on warp drive are reported to the OS. Otherwise by the time
-the (ioc->hide_drives) flags is set, the volumes on warp drive
-are reported to the OS already.
-
-Also modified the initialization of reply queues only in case of driver load
-time in the function _base_make_ioc_operational().
-
-Signed-off-by: Nagalakshmi Nandigama <nagalakshmi.nandigama at lsi.com>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/scsi/mpt2sas/mpt2sas_base.c  |   20 +++++++-------------
- drivers/scsi/mpt2sas/mpt2sas_scsih.c |    3 +--
- 2 files changed, 8 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_base.c b/drivers/scsi/mpt2sas/mpt2sas_base.c
-index 0794c72..b1ddfef 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_base.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_base.c
-@@ -4033,7 +4033,8 @@ _base_make_ioc_operational(struct MPT2SAS_ADAPTER *ioc, int sleep_flag)
- 		ioc->reply_free[i] = cpu_to_le32(reply_address);
- 
- 	/* initialize reply queues */
--	_base_assign_reply_queues(ioc);
-+	if (ioc->is_driver_loading)
-+		_base_assign_reply_queues(ioc);
- 
- 	/* initialize Reply Post Free Queue */
- 	reply_post_free = (long)ioc->reply_post_free;
-@@ -4081,24 +4082,17 @@ _base_make_ioc_operational(struct MPT2SAS_ADAPTER *ioc, int sleep_flag)
- 
- 
- 	if (ioc->is_driver_loading) {
--
--
--
--		ioc->wait_for_discovery_to_complete =
--		    _base_determine_wait_on_discovery(ioc);
--		return r; /* scan_start and scan_finished support */
--	}
--
--
--	if (ioc->wait_for_discovery_to_complete && ioc->is_warpdrive) {
--		if (ioc->manu_pg10.OEMIdentifier  == 0x80) {
-+		if (ioc->is_warpdrive && ioc->manu_pg10.OEMIdentifier
-+		    == 0x80) {
- 			hide_flag = (u8) (ioc->manu_pg10.OEMSpecificFlags0 &
- 			    MFG_PAGE10_HIDE_SSDS_MASK);
- 			if (hide_flag != MFG_PAGE10_HIDE_SSDS_MASK)
- 				ioc->mfg_pg10_hide_flag = hide_flag;
- 		}
-+		ioc->wait_for_discovery_to_complete =
-+		    _base_determine_wait_on_discovery(ioc);
-+		return r; /* scan_start and scan_finished support */
- 	}
--
- 	r = _base_send_port_enable(ioc, sleep_flag);
- 	if (r)
- 		return r;
-diff --git a/drivers/scsi/mpt2sas/mpt2sas_scsih.c b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-index 9bc6fb2..2824a90 100644
---- a/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-+++ b/drivers/scsi/mpt2sas/mpt2sas_scsih.c
-@@ -8001,7 +8001,6 @@ _scsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
- 		goto out_attach_fail;
- 	}
- 
--	scsi_scan_host(shost);
- 	if (ioc->is_warpdrive) {
- 		if (ioc->mfg_pg10_hide_flag ==  MFG_PAGE10_EXPOSE_ALL_DISKS)
- 			ioc->hide_drives = 0;
-@@ -8015,8 +8014,8 @@ _scsih_probe(struct pci_dev *pdev, const struct pci_device_id *id)
- 		}
- 	} else
- 		ioc->hide_drives = 0;
-+	scsi_scan_host(shost);
- 
--	_scsih_probe_devices(ioc);
- 	return 0;
- 
-  out_attach_fail:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0039-USB-option-Add-LG-docomo-L-02C.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0039-USB-option-Add-LG-docomo-L-02C.patch
deleted file mode 100644
index ca4f8a5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0039-USB-option-Add-LG-docomo-L-02C.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From ef04da68e67fb96790367edd47602664fe897feb Mon Sep 17 00:00:00 2001
-From: Kentaro Matsuyama <kentaro.matsuyama at gmail.com>
-Date: Thu, 12 Jan 2012 23:07:51 +0900
-Subject: [PATCH 39/90] USB: option: Add LG docomo L-02C
-
-commit e423d7401fd0717cb56a6cf51dd8341cc3e800d2 upstream.
-
-Add vendor and product ID for USB 3G/LTE modem of docomo L-02C
-
-Signed-off-by: Kentaro Matsuyama <kentaro.matsuyama at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index c96b6b6..2a9ed6e 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -480,6 +480,10 @@ static void option_instat_callback(struct urb *urb);
- #define ZD_VENDOR_ID				0x0685
- #define ZD_PRODUCT_7000				0x7000
- 
-+/* LG products */
-+#define LG_VENDOR_ID				0x1004
-+#define LG_PRODUCT_L02C				0x618f
-+
- /* some devices interfaces need special handling due to a number of reasons */
- enum option_blacklist_reason {
- 		OPTION_BLACKLIST_NONE = 0,
-@@ -1183,6 +1187,7 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE(YUGA_VENDOR_ID, YUGA_PRODUCT_CLU526) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(VIETTEL_VENDOR_ID, VIETTEL_PRODUCT_VT1000, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZD_VENDOR_ID, ZD_PRODUCT_7000, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE(LG_VENDOR_ID, LG_PRODUCT_L02C) }, /* docomo L-02C modem */
- 	{ } /* Terminating entry */
- };
- MODULE_DEVICE_TABLE(usb, option_ids);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0040-USB-ftdi_sio-fix-TIOCSSERIAL-baud_base-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0040-USB-ftdi_sio-fix-TIOCSSERIAL-baud_base-handling.patch
deleted file mode 100644
index f6d5ad6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0040-USB-ftdi_sio-fix-TIOCSSERIAL-baud_base-handling.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 71649769f1ae79da3343c0472388f13ffb8b9a3a Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Tue, 10 Jan 2012 23:33:37 +0100
-Subject: [PATCH 40/90] USB: ftdi_sio: fix TIOCSSERIAL baud_base handling
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit eb833a9e0972f60beb4ab8104ad7ef6bf30f02fc upstream.
-
-Return EINVAL if new baud_base does not match the current one.
-
-The baud_base is device specific and can not be changed. This restores
-the old (pre-2005) behaviour which was changed due to a
-misunderstanding regarding this fact (see
-https://lkml.org/lkml/2005/1/20/84).
-
-Reported-by: Torbjörn Lofterud <torbjorn at pi.nxs.se>
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index ff3db5d..6a034b3 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -1333,8 +1333,7 @@ static int set_serial_info(struct tty_struct *tty,
- 		goto check_and_exit;
- 	}
- 
--	if ((new_serial.baud_base != priv->baud_base) &&
--	    (new_serial.baud_base < 9600)) {
-+	if (new_serial.baud_base != priv->baud_base) {
- 		mutex_unlock(&priv->cfg_lock);
- 		return -EINVAL;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0041-USB-ftdi_sio-fix-initial-baud-rate.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0041-USB-ftdi_sio-fix-initial-baud-rate.patch
deleted file mode 100644
index bb49c7b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0041-USB-ftdi_sio-fix-initial-baud-rate.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 99e22d6f848ffdc4e62916e92a41a4208b16a561 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Wed, 18 Jan 2012 01:46:00 +0100
-Subject: [PATCH 41/90] USB: ftdi_sio: fix initial baud rate
-
-commit 108e02b12921078a59dcacd048079ece48a4a983 upstream.
-
-Fix regression introduced by commit b1ffb4c851f1 ("USB: Fix Corruption
-issue in USB ftdi driver ftdi_sio.c") which caused the termios settings
-to no longer be initialised at open. Consequently it was no longer
-possible to set the port to the default speed of 9600 baud without first
-changing to another baud rate and back again.
-
-Reported-by: Roland Ramthun <mail at roland-ramthun.de>
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Tested-by: Roland Ramthun <mail at roland-ramthun.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 6a034b3..6a40b41 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -1823,6 +1823,7 @@ static int ftdi_sio_port_remove(struct usb_serial_port *port)
- 
- static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
- {
-+	struct ktermios dummy;
- 	struct usb_device *dev = port->serial->dev;
- 	struct ftdi_private *priv = usb_get_serial_port_data(port);
- 	int result;
-@@ -1841,8 +1842,10 @@ static int ftdi_open(struct tty_struct *tty, struct usb_serial_port *port)
- 	   This is same behaviour as serial.c/rs_open() - Kuba */
- 
- 	/* ftdi_set_termios  will send usb control messages */
--	if (tty)
--		ftdi_set_termios(tty, port, tty->termios);
-+	if (tty) {
-+		memset(&dummy, 0, sizeof(dummy));
-+		ftdi_set_termios(tty, port, &dummy);
-+	}
- 
- 	/* Start reading from the device */
- 	result = usb_serial_generic_open(tty, port);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0042-USB-ftdi_sio-add-PID-for-TI-XDS100v2-BeagleBone-A3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0042-USB-ftdi_sio-add-PID-for-TI-XDS100v2-BeagleBone-A3.patch
deleted file mode 100644
index 923fb39..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0042-USB-ftdi_sio-add-PID-for-TI-XDS100v2-BeagleBone-A3.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 5eda7cbb711ceb779c1bb38d5dedf3f2203efd99 Mon Sep 17 00:00:00 2001
-From: Peter Korsgaard <jacmet at sunsite.dk>
-Date: Wed, 18 Jan 2012 23:43:45 +0100
-Subject: [PATCH 42/90] USB: ftdi_sio: add PID for TI XDS100v2 / BeagleBone A3
-
-commit 55f13aeae0346f0c89bfface91ad9a97653dc433 upstream.
-
-Port A for JTAG, port B for serial.
-
-Signed-off-by: Peter Korsgaard <jacmet at sunsite.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    2 ++
- drivers/usb/serial/ftdi_sio_ids.h |    7 +++++++
- 2 files changed, 9 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 6a40b41..952570f 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -805,6 +805,8 @@ static struct usb_device_id id_table_combined [] = {
- 	{ USB_DEVICE(BAYER_VID, BAYER_CONTOUR_CABLE_PID) },
- 	{ USB_DEVICE(FTDI_VID, MARVELL_OPENRD_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-+	{ USB_DEVICE(FTDI_VID, TI_XDS100V2_PID),
-+		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
- 	{ USB_DEVICE(FTDI_VID, HAMEG_HO820_PID) },
- 	{ USB_DEVICE(FTDI_VID, HAMEG_HO720_PID) },
- 	{ USB_DEVICE(FTDI_VID, HAMEG_HO730_PID) },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index 055b64e..b67bee2 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -39,6 +39,13 @@
- /* www.candapter.com Ewert Energy Systems CANdapter device */
- #define FTDI_CANDAPTER_PID 0x9F80 /* Product Id */
- 
-+/*
-+ * Texas Instruments XDS100v2 JTAG / BeagleBone A3
-+ * http://processors.wiki.ti.com/index.php/XDS100
-+ * http://beagleboard.org/bone
-+ */
-+#define TI_XDS100V2_PID		0xa6d0
-+
- #define FTDI_NXTCAM_PID		0xABB8 /* NXTCam for Mindstorms NXT */
- 
- /* US Interface Navigator (http://www.usinterface.com/) */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0043-USB-serial-ftdi-additional-IDs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0043-USB-serial-ftdi-additional-IDs.patch
deleted file mode 100644
index 9f94218..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0043-USB-serial-ftdi-additional-IDs.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From c099b47c24fd187dc18f80b7906f71ea27f5ff32 Mon Sep 17 00:00:00 2001
-From: Peter Naulls <peter at chocky.org>
-Date: Tue, 17 Jan 2012 18:27:09 -0800
-Subject: [PATCH 43/90] USB: serial: ftdi additional IDs
-
-commit fc216ec363f4d174932df90bbf35c77d0540e561 upstream.
-
-I tested this against 2.6.39 in the Ubuntu kernel, however I see the IDs
-are not in latest 3.2 git.
-
-This adds IDs for the FTDI controller in the Rainforest Automation
-Zigbee dongle.
-
-Signed-off-by: Peter Naulls <peter at chocky.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    1 +
- drivers/usb/serial/ftdi_sio_ids.h |    6 ++++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 952570f..abd5bd7 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -843,6 +843,7 @@ static struct usb_device_id id_table_combined [] = {
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
- 	{ USB_DEVICE(ST_VID, ST_STMCLT1030_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_stmclite_quirk },
-+	{ USB_DEVICE(FTDI_VID, FTDI_RF_R106) },
- 	{ },					/* Optional parameter entry */
- 	{ }					/* Terminating entry */
- };
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index b67bee2..79c5967 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -1175,3 +1175,9 @@
-  */
- /* TagTracer MIFARE*/
- #define FTDI_ZEITCONTROL_TAGTRACE_MIFARE_PID	0xF7C0
-+
-+/*
-+ * Rainforest Automation
-+ */
-+/* ZigBee controller */
-+#define FTDI_RF_R106		0x8A28
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0044-USB-ftdi_sio-Add-more-identifiers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0044-USB-ftdi_sio-Add-more-identifiers.patch
deleted file mode 100644
index 3a20f58..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0044-USB-ftdi_sio-Add-more-identifiers.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From ab65ae9e2bd7d28ae9af25f34190355f3456a872 Mon Sep 17 00:00:00 2001
-From: Alan Cox <alan at linux.intel.com>
-Date: Thu, 26 Jan 2012 17:41:34 +0000
-Subject: [PATCH 44/90] USB: ftdi_sio: Add more identifiers
-
-commit 2353f806c97020d4c7709f15eebb49b591f7306d upstream.
-
-0x04d8, 0x000a: Hornby Elite
-
-Signed-off-by: Alan Cox <alan at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    1 +
- drivers/usb/serial/ftdi_sio_ids.h |    6 ++++++
- 2 files changed, 7 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index abd5bd7..058b92c 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -797,6 +797,7 @@ static struct usb_device_id id_table_combined [] = {
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
- 	{ USB_DEVICE(ADI_VID, ADI_GNICEPLUS_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-+	{ USB_DEVICE(HORNBY_VID, HORNBY_ELITE_PID) },
- 	{ USB_DEVICE(JETI_VID, JETI_SPC1201_PID) },
- 	{ USB_DEVICE(MARVELL_VID, MARVELL_SHEEVAPLUG_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index 79c5967..76d4f31 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -532,6 +532,12 @@
- #define ADI_GNICEPLUS_PID	0xF001
- 
- /*
-+ * Hornby Elite
-+ */
-+#define HORNBY_VID		0x04D8
-+#define HORNBY_ELITE_PID	0x000A
-+
-+/*
-  * RATOC REX-USB60F
-  */
- #define RATOC_VENDOR_ID		0x0584
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0045-USB-cdc-wdm-updating-desc-length-must-be-protected-b.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0045-USB-cdc-wdm-updating-desc-length-must-be-protected-b.patch
deleted file mode 100644
index 1b2dcb4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0045-USB-cdc-wdm-updating-desc-length-must-be-protected-b.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2e3ea48f17c5cc49469344377d1902054a11c759 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 16 Jan 2012 12:41:47 +0100
-Subject: [PATCH 45/90] USB: cdc-wdm: updating desc->length must be protected
- by spin_lock
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit c428b70c1e115c5649707a602742e34130d19428 upstream.
-
-wdm_in_callback() will also touch this field, so we cannot change it without locking
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Acked-by: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index efe6849..7e5e822 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -467,7 +467,9 @@ retry:
- 	for (i = 0; i < desc->length - cntr; i++)
- 		desc->ubuf[i] = desc->ubuf[i + cntr];
- 
-+	spin_lock_irq(&desc->iuspin);
- 	desc->length -= cntr;
-+	spin_unlock_irq(&desc->iuspin);
- 	/* in case we had outstanding data */
- 	if (!desc->length)
- 		clear_bit(WDM_READ, &desc->flags);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0046-USB-cdc-wdm-use-two-mutexes-to-allow-simultaneous-re.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0046-USB-cdc-wdm-use-two-mutexes-to-allow-simultaneous-re.patch
deleted file mode 100644
index d39a97c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0046-USB-cdc-wdm-use-two-mutexes-to-allow-simultaneous-re.patch
+++ /dev/null
@@ -1,178 +0,0 @@
-From 4fa7700c9a0aaa37a3071ae7debbc6ba9a30488b Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 16 Jan 2012 12:41:48 +0100
-Subject: [PATCH 46/90] USB: cdc-wdm: use two mutexes to allow simultaneous
- read and write
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit e8537bd2c4f325a4796da33564ddcef9489b7feb upstream.
-
-using a separate read and write mutex for locking is sufficient to make the
-driver accept simultaneous read and write. This improves useability a lot.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Cc: Oliver Neukum <oneukum at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |   49 +++++++++++++++++++++++++++----------------
- 1 file changed, 31 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 7e5e822..4a29a80 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -88,7 +88,8 @@ struct wdm_device {
- 	int			count;
- 	dma_addr_t		shandle;
- 	dma_addr_t		ihandle;
--	struct mutex		lock;
-+	struct mutex		wlock;
-+	struct mutex		rlock;
- 	wait_queue_head_t	wait;
- 	struct work_struct	rxwork;
- 	int			werr;
-@@ -323,7 +324,7 @@ static ssize_t wdm_write
- 	}
- 
- 	/* concurrent writes and disconnect */
--	r = mutex_lock_interruptible(&desc->lock);
-+	r = mutex_lock_interruptible(&desc->wlock);
- 	rv = -ERESTARTSYS;
- 	if (r) {
- 		kfree(buf);
-@@ -386,7 +387,7 @@ static ssize_t wdm_write
- out:
- 	usb_autopm_put_interface(desc->intf);
- outnp:
--	mutex_unlock(&desc->lock);
-+	mutex_unlock(&desc->wlock);
- outnl:
- 	return rv < 0 ? rv : count;
- }
-@@ -399,7 +400,7 @@ static ssize_t wdm_read
- 	struct wdm_device *desc = file->private_data;
- 
- 
--	rv = mutex_lock_interruptible(&desc->lock); /*concurrent reads */
-+	rv = mutex_lock_interruptible(&desc->rlock); /*concurrent reads */
- 	if (rv < 0)
- 		return -ERESTARTSYS;
- 
-@@ -476,7 +477,7 @@ retry:
- 	rv = cntr;
- 
- err:
--	mutex_unlock(&desc->lock);
-+	mutex_unlock(&desc->rlock);
- 	return rv;
- }
- 
-@@ -542,7 +543,8 @@ static int wdm_open(struct inode *inode, struct file *file)
- 	}
- 	intf->needs_remote_wakeup = 1;
- 
--	mutex_lock(&desc->lock);
-+	/* using write lock to protect desc->count */
-+	mutex_lock(&desc->wlock);
- 	if (!desc->count++) {
- 		desc->werr = 0;
- 		desc->rerr = 0;
-@@ -555,7 +557,7 @@ static int wdm_open(struct inode *inode, struct file *file)
- 	} else {
- 		rv = 0;
- 	}
--	mutex_unlock(&desc->lock);
-+	mutex_unlock(&desc->wlock);
- 	usb_autopm_put_interface(desc->intf);
- out:
- 	mutex_unlock(&wdm_mutex);
-@@ -567,9 +569,11 @@ static int wdm_release(struct inode *inode, struct file *file)
- 	struct wdm_device *desc = file->private_data;
- 
- 	mutex_lock(&wdm_mutex);
--	mutex_lock(&desc->lock);
-+
-+	/* using write lock to protect desc->count */
-+	mutex_lock(&desc->wlock);
- 	desc->count--;
--	mutex_unlock(&desc->lock);
-+	mutex_unlock(&desc->wlock);
- 
- 	if (!desc->count) {
- 		dev_dbg(&desc->intf->dev, "wdm_release: cleanup");
-@@ -667,7 +671,8 @@ next_desc:
- 	desc = kzalloc(sizeof(struct wdm_device), GFP_KERNEL);
- 	if (!desc)
- 		goto out;
--	mutex_init(&desc->lock);
-+	mutex_init(&desc->rlock);
-+	mutex_init(&desc->wlock);
- 	spin_lock_init(&desc->iuspin);
- 	init_waitqueue_head(&desc->wait);
- 	desc->wMaxCommand = maxcom;
-@@ -781,10 +786,12 @@ static void wdm_disconnect(struct usb_interface *intf)
- 	/* to terminate pending flushes */
- 	clear_bit(WDM_IN_USE, &desc->flags);
- 	spin_unlock_irqrestore(&desc->iuspin, flags);
--	mutex_lock(&desc->lock);
-+	mutex_lock(&desc->rlock);
-+	mutex_lock(&desc->wlock);
- 	kill_urbs(desc);
- 	cancel_work_sync(&desc->rxwork);
--	mutex_unlock(&desc->lock);
-+	mutex_unlock(&desc->wlock);
-+	mutex_unlock(&desc->rlock);
- 	wake_up_all(&desc->wait);
- 	if (!desc->count)
- 		cleanup(desc);
-@@ -800,8 +807,10 @@ static int wdm_suspend(struct usb_interface *intf, pm_message_t message)
- 	dev_dbg(&desc->intf->dev, "wdm%d_suspend\n", intf->minor);
- 
- 	/* if this is an autosuspend the caller does the locking */
--	if (!PMSG_IS_AUTO(message))
--		mutex_lock(&desc->lock);
-+	if (!PMSG_IS_AUTO(message)) {
-+		mutex_lock(&desc->rlock);
-+		mutex_lock(&desc->wlock);
-+	}
- 	spin_lock_irq(&desc->iuspin);
- 
- 	if (PMSG_IS_AUTO(message) &&
-@@ -817,8 +826,10 @@ static int wdm_suspend(struct usb_interface *intf, pm_message_t message)
- 		kill_urbs(desc);
- 		cancel_work_sync(&desc->rxwork);
- 	}
--	if (!PMSG_IS_AUTO(message))
--		mutex_unlock(&desc->lock);
-+	if (!PMSG_IS_AUTO(message)) {
-+		mutex_unlock(&desc->wlock);
-+		mutex_unlock(&desc->rlock);
-+	}
- 
- 	return rv;
- }
-@@ -856,7 +867,8 @@ static int wdm_pre_reset(struct usb_interface *intf)
- {
- 	struct wdm_device *desc = usb_get_intfdata(intf);
- 
--	mutex_lock(&desc->lock);
-+	mutex_lock(&desc->rlock);
-+	mutex_lock(&desc->wlock);
- 	kill_urbs(desc);
- 
- 	/*
-@@ -878,7 +890,8 @@ static int wdm_post_reset(struct usb_interface *intf)
- 	int rv;
- 
- 	rv = recover_from_urb_loss(desc);
--	mutex_unlock(&desc->lock);
-+	mutex_unlock(&desc->wlock);
-+	mutex_unlock(&desc->rlock);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0047-qcaux-add-more-Pantech-UML190-and-UML290-ports.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0047-qcaux-add-more-Pantech-UML190-and-UML290-ports.patch
deleted file mode 100644
index 14803ec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0047-qcaux-add-more-Pantech-UML190-and-UML290-ports.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 174b386a16563b183073b5edd7d50f35ffacacdb Mon Sep 17 00:00:00 2001
-From: Dan Williams <dcbw at redhat.com>
-Date: Tue, 24 Jan 2012 17:16:54 -0600
-Subject: [PATCH 47/90] qcaux: add more Pantech UML190 and UML290 ports
-
-commit 074cc73506f529f39fef32ad1c9e1d4cdd8acf6c upstream.
-
-More ports we now know how to talk to.
-
-Signed-off-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/qcaux.c |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/qcaux.c b/drivers/usb/serial/qcaux.c
-index 30b73e6..a348198 100644
---- a/drivers/usb/serial/qcaux.c
-+++ b/drivers/usb/serial/qcaux.c
-@@ -36,6 +36,7 @@
- #define UTSTARCOM_PRODUCT_UM175_V1		0x3712
- #define UTSTARCOM_PRODUCT_UM175_V2		0x3714
- #define UTSTARCOM_PRODUCT_UM175_ALLTEL		0x3715
-+#define PANTECH_PRODUCT_UML190_VZW		0x3716
- #define PANTECH_PRODUCT_UML290_VZW		0x3718
- 
- /* CMOTECH devices */
-@@ -67,7 +68,11 @@ static struct usb_device_id id_table[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(LG_VENDOR_ID, LG_PRODUCT_VX4400_6000, 0xff, 0xff, 0x00) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(SANYO_VENDOR_ID, SANYO_PRODUCT_KATANA_LX, 0xff, 0xff, 0x00) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(SAMSUNG_VENDOR_ID, SAMSUNG_PRODUCT_U520, 0xff, 0x00, 0x00) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML290_VZW, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML190_VZW, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML190_VZW, 0xff, 0xfe, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML290_VZW, 0xff, 0xfd, 0xff) },  /* NMEA */
-+	{ USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML290_VZW, 0xff, 0xfe, 0xff) },  /* WMC */
-+	{ USB_DEVICE_AND_INTERFACE_INFO(UTSTARCOM_VENDOR_ID, PANTECH_PRODUCT_UML290_VZW, 0xff, 0xff, 0xff) },  /* DIAG */
- 	{ },
- };
- MODULE_DEVICE_TABLE(usb, id_table);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0048-usb-dwc3-ep0-tidy-up-Pending-Request-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0048-usb-dwc3-ep0-tidy-up-Pending-Request-handling.patch
deleted file mode 100644
index 0e826d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0048-usb-dwc3-ep0-tidy-up-Pending-Request-handling.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From c58c127a99dd9114926d3a9bd55f172b948f6ac0 Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Thu, 29 Dec 2011 06:32:29 +0200
-Subject: [PATCH 48/90] usb: dwc3: ep0: tidy up Pending Request handling
-
-commit 68d8a781575d7be490f97eb2c403fb13b083da6a upstream.
-
-The way our code was written, we should never have
-a DWC3_EP_PENDING_REQUEST flag set out of a Data Phase
-and the code in __dwc3_gadget_ep0_queue() did not
-reflect that situation properly.
-
-Tidy up that case to avoid any possible mistakes
-when starting requests for IRQs which are long
-gone.
-
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/dwc3/ep0.c |   14 ++++----------
- 1 file changed, 4 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/usb/dwc3/ep0.c b/drivers/usb/dwc3/ep0.c
-index 69a4e43..27bd50a 100644
---- a/drivers/usb/dwc3/ep0.c
-+++ b/drivers/usb/dwc3/ep0.c
-@@ -149,20 +149,14 @@ static int __dwc3_gadget_ep0_queue(struct dwc3_ep *dep,
- 
- 		direction = !!(dep->flags & DWC3_EP0_DIR_IN);
- 
--		if (dwc->ep0state == EP0_STATUS_PHASE) {
--			type = dwc->three_stage_setup
--				? DWC3_TRBCTL_CONTROL_STATUS3
--				: DWC3_TRBCTL_CONTROL_STATUS2;
--		} else if (dwc->ep0state == EP0_DATA_PHASE) {
--			type = DWC3_TRBCTL_CONTROL_DATA;
--		} else {
--			/* should never happen */
--			WARN_ON(1);
-+		if (dwc->ep0state != EP0_DATA_PHASE) {
-+			dev_WARN(dwc->dev, "Unexpected pending request\n");
- 			return 0;
- 		}
- 
- 		ret = dwc3_ep0_start_trans(dwc, direction,
--				req->request.dma, req->request.length, type);
-+				req->request.dma, req->request.length,
-+				DWC3_TRBCTL_CONTROL_DATA);
- 		dep->flags &= ~(DWC3_EP_PENDING_REQUEST |
- 				DWC3_EP0_DIR_IN);
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0049-usb-io_ti-Make-edge_remove_sysfs_attrs-the-port_remo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0049-usb-io_ti-Make-edge_remove_sysfs_attrs-the-port_remo.patch
deleted file mode 100644
index ba583ae..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0049-usb-io_ti-Make-edge_remove_sysfs_attrs-the-port_remo.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 879351c7f439390f233f0069f2f6111d6c5362da Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Fri, 13 Jan 2012 21:32:06 -0800
-Subject: [PATCH 49/90] usb: io_ti: Make edge_remove_sysfs_attrs the
- port_remove method.
-
-commit 6d443d8499e4e59ffb949759cdded32730f8d2f6 upstream.
-
-Calling edge_remove_sysfs_attrs from edge_disconnect is too late
-as the device has already been removed from sysfs.
-
-Do the simple and obvious thing and make edge_remove_sysfs_attrs
-the port_remove method.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Reported-by: Wolfgang Frisch <wfpub at roembden.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/io_ti.c |   10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/usb/serial/io_ti.c b/drivers/usb/serial/io_ti.c
-index 0aac00a..8a90d58 100644
---- a/drivers/usb/serial/io_ti.c
-+++ b/drivers/usb/serial/io_ti.c
-@@ -2677,15 +2677,7 @@ cleanup:
- 
- static void edge_disconnect(struct usb_serial *serial)
- {
--	int i;
--	struct edgeport_port *edge_port;
--
- 	dbg("%s", __func__);
--
--	for (i = 0; i < serial->num_ports; ++i) {
--		edge_port = usb_get_serial_port_data(serial->port[i]);
--		edge_remove_sysfs_attrs(edge_port->port);
--	}
- }
- 
- static void edge_release(struct usb_serial *serial)
-@@ -2764,6 +2756,7 @@ static struct usb_serial_driver edgeport_1port_device = {
- 	.disconnect		= edge_disconnect,
- 	.release		= edge_release,
- 	.port_probe		= edge_create_sysfs_attrs,
-+	.port_remove		= edge_remove_sysfs_attrs,
- 	.ioctl			= edge_ioctl,
- 	.set_termios		= edge_set_termios,
- 	.tiocmget		= edge_tiocmget,
-@@ -2795,6 +2788,7 @@ static struct usb_serial_driver edgeport_2port_device = {
- 	.disconnect		= edge_disconnect,
- 	.release		= edge_release,
- 	.port_probe		= edge_create_sysfs_attrs,
-+	.port_remove		= edge_remove_sysfs_attrs,
- 	.ioctl			= edge_ioctl,
- 	.set_termios		= edge_set_termios,
- 	.tiocmget		= edge_tiocmget,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0050-TTY-fix-UV-serial-console-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0050-TTY-fix-UV-serial-console-regression.patch
deleted file mode 100644
index 8f74aa7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0050-TTY-fix-UV-serial-console-regression.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 0946969a44d5f9dec1506431e88e942ce924ab82 Mon Sep 17 00:00:00 2001
-From: Jiri Slaby <jslaby at suse.cz>
-Date: Thu, 12 Jan 2012 22:55:15 +0100
-Subject: [PATCH 50/90] TTY: fix UV serial console regression
-
-commit 0eee50af5b13e00b3fb7a5fe8480419a71b8235d upstream.
-
-Commit 74c2107759d (serial: Use block_til_ready helper) and its fixup
-3f582b8c110 (serial: fix termios settings in open) introduced a
-regression on UV systems. The serial eventually freezes while being
-used. It's completely unpredictable and sometimes needs a heap of
-traffic to happen first.
-
-To reproduce this, yast installation was used as it turned out to be
-pretty reliable in reproducing. Especially during installation process
-where one doesn't have an SSH daemon running. And no monitor as the HW
-is completely headless. So this was fun to find. Given the machine
-doesn't boot on vanilla before 2.6.36 final. (And the commits above
-are older.)
-
-Unless there is some bad race in the code, the hardware seems to be
-pretty broken. Otherwise pure MSR read should not cause such a bug,
-or?
-
-So to prevent the bug, revert to the old behavior. I.e. read modem
-status only if we really have to -- for non-CLOCAL set serials.
-Non-CLOCAL works on this hardware OK, I tried. See? I don't.
-
-And document that shit.
-
-Signed-off-by: Jiri Slaby <jslaby at suse.cz>
-References: https://lkml.org/lkml/2011/12/6/573
-References: https://bugzilla.novell.com/show_bug.cgi?id=718518
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/tty_port.c |   12 +++++++-----
- 1 file changed, 7 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/tty/tty_port.c b/drivers/tty/tty_port.c
-index ef9dd62..bf6e238 100644
---- a/drivers/tty/tty_port.c
-+++ b/drivers/tty/tty_port.c
-@@ -227,7 +227,6 @@ int tty_port_block_til_ready(struct tty_port *port,
- 	int do_clocal = 0, retval;
- 	unsigned long flags;
- 	DEFINE_WAIT(wait);
--	int cd;
- 
- 	/* block if port is in the process of being closed */
- 	if (tty_hung_up_p(filp) || port->flags & ASYNC_CLOSING) {
-@@ -284,11 +283,14 @@ int tty_port_block_til_ready(struct tty_port *port,
- 				retval = -ERESTARTSYS;
- 			break;
- 		}
--		/* Probe the carrier. For devices with no carrier detect this
--		   will always return true */
--		cd = tty_port_carrier_raised(port);
-+		/*
-+		 * Probe the carrier. For devices with no carrier detect
-+		 * tty_port_carrier_raised will always return true.
-+		 * Never ask drivers if CLOCAL is set, this causes troubles
-+		 * on some hardware.
-+		 */
- 		if (!(port->flags & ASYNC_CLOSING) &&
--				(do_clocal || cd))
-+				(do_clocal || tty_port_carrier_raised(port)))
- 			break;
- 		if (signal_pending(current)) {
- 			retval = -ERESTARTSYS;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0051-serial-amba-pl011-lock-console-writes-against-interr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0051-serial-amba-pl011-lock-console-writes-against-interr.patch
deleted file mode 100644
index 6d3d5b6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0051-serial-amba-pl011-lock-console-writes-against-interr.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From b1778d0692279883367f4e51fef4a851910689b4 Mon Sep 17 00:00:00 2001
-From: Rabin Vincent <rabin.vincent at stericsson.com>
-Date: Tue, 17 Jan 2012 11:52:28 +0100
-Subject: [PATCH 51/90] serial: amba-pl011: lock console writes against
- interrupts
-
-commit ef605fdb33883d687cff5ba75095a91b313b4966 upstream.
-
-Protect against pl011_console_write() and the interrupt for
-the console UART running concurrently on different CPUs.
-
-Otherwise the console_write could spin for a long time
-waiting for the UART to become not busy, while the other
-CPU continuously services UART interrupts and keeps the
-UART busy.
-
-The checks for sysrq and oops_in_progress are taken
-from 8250.c.
-
-Signed-off-by: Rabin Vincent <rabin.vincent at stericsson.com>
-Reviewed-by: Srinidhi Kasagar <srinidhi.kasagar at stericsson.com>
-Reviewed-by: Bibek Basu <bibek.basu at stericsson.com>
-Reviewed-by: Shreshtha Kumar Sahu <shreshthakumar.sahu at stericsson.com>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/amba-pl011.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/tty/serial/amba-pl011.c b/drivers/tty/serial/amba-pl011.c
-index 00233af..8e00926 100644
---- a/drivers/tty/serial/amba-pl011.c
-+++ b/drivers/tty/serial/amba-pl011.c
-@@ -1740,9 +1740,19 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
- {
- 	struct uart_amba_port *uap = amba_ports[co->index];
- 	unsigned int status, old_cr, new_cr;
-+	unsigned long flags;
-+	int locked = 1;
- 
- 	clk_enable(uap->clk);
- 
-+	local_irq_save(flags);
-+	if (uap->port.sysrq)
-+		locked = 0;
-+	else if (oops_in_progress)
-+		locked = spin_trylock(&uap->port.lock);
-+	else
-+		spin_lock(&uap->port.lock);
-+
- 	/*
- 	 *	First save the CR then disable the interrupts
- 	 */
-@@ -1762,6 +1772,10 @@ pl011_console_write(struct console *co, const char *s, unsigned int count)
- 	} while (status & UART01x_FR_BUSY);
- 	writew(old_cr, uap->port.membase + UART011_CR);
- 
-+	if (locked)
-+		spin_unlock(&uap->port.lock);
-+	local_irq_restore(flags);
-+
- 	clk_disable(uap->clk);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0052-jsm-Fixed-EEH-recovery-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0052-jsm-Fixed-EEH-recovery-error.patch
deleted file mode 100644
index d23d725..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0052-jsm-Fixed-EEH-recovery-error.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From e039921254b3e40b6a3ace33bac45c20b197fd0e Mon Sep 17 00:00:00 2001
-From: Lucas Kannebley Tavares <lucaskt at linux.vnet.ibm.com>
-Date: Mon, 9 Jan 2012 10:58:06 -0200
-Subject: [PATCH 52/90] jsm: Fixed EEH recovery error
-
-commit 26aa38cafae0dbef3b2fe75ea487c83313c36d45 upstream.
-
-There was an error on the jsm driver that would cause it to be unable to
-recover after a second error is detected.
-
-At the first error, the device recovers properly:
-
-[72521.485691] EEH: Detected PCI bus error on device 0003:02:00.0
-[72521.485695] EEH: This PCI device has failed 1 times in the last hour:
-...
-[72532.035693] ttyn3 at MMIO 0x0 (irq = 49) is a jsm
-[72532.105689] jsm: Port 3 added
-
-However, at the second error, it cascades until EEH disables the device:
-
-[72631.229549] Call Trace:
-...
-[72641.725687] jsm: Port 3 added
-[72641.725695] EEH: Detected PCI bus error on device 0003:02:00.0
-[72641.725698] EEH: This PCI device has failed 3 times in the last hour:
-
-It was caused because the PCI state was not being saved after the first
-restore. Therefore, at the second recovery the PCI state would not be
-restored.
-
-Signed-off-by: Lucas Kannebley Tavares <lucaskt at linux.vnet.ibm.com>
-Signed-off-by: Breno Leitao <brenohl at br.ibm.com>
-Acked-by: Thadeu Lima de Souza Cascardo <cascardo at linux.vnet.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/serial/jsm/jsm_driver.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/tty/serial/jsm/jsm_driver.c b/drivers/tty/serial/jsm/jsm_driver.c
-index 7c867a0..7545fe1 100644
---- a/drivers/tty/serial/jsm/jsm_driver.c
-+++ b/drivers/tty/serial/jsm/jsm_driver.c
-@@ -251,6 +251,7 @@ static void jsm_io_resume(struct pci_dev *pdev)
- 	struct jsm_board *brd = pci_get_drvdata(pdev);
- 
- 	pci_restore_state(pdev);
-+	pci_save_state(pdev);
- 
- 	jsm_uart_port_init(brd);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0053-iwlwifi-fix-PCI-E-transport-inta-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0053-iwlwifi-fix-PCI-E-transport-inta-race.patch
deleted file mode 100644
index c2182d8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0053-iwlwifi-fix-PCI-E-transport-inta-race.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0f74abb5d9cf907fcce94d69514faeaa2d774378 Mon Sep 17 00:00:00 2001
-From: Johannes Berg <johannes.berg at intel.com>
-Date: Thu, 19 Jan 2012 08:20:57 -0800
-Subject: [PATCH 53/90] iwlwifi: fix PCI-E transport "inta" race
-
-commit b49ba04a3a0382e7314d990707c21094c410425a upstream.
-
-When an interrupt comes in, we read the reason
-bits and collect them into "trans_pcie->inta".
-This happens with the spinlock held. However,
-there's a bug resetting this variable -- that
-happens after the spinlock has been released.
-This means that it is possible for interrupts
-to be missed if the reset happens after some
-other interrupt reasons were already added to
-the variable.
-
-I found this by code inspection, looking for a
-reason that we sometimes see random commands
-time out. It seems possible that this causes
-such behaviour, but I can't say for sure right
-now since it happens extremely infrequently on
-my test systems.
-
-Signed-off-by: Johannes Berg <johannes.berg at intel.com>
-Signed-off-by: Wey-Yi Guy <wey-yi.w.guy at intel.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
-index 1920237..1daf01e 100644
---- a/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
-+++ b/drivers/net/wireless/iwlwifi/iwl-trans-pcie-rx.c
-@@ -957,11 +957,11 @@ void iwl_irq_tasklet(struct iwl_trans *trans)
- 	}
- #endif
- 
--	spin_unlock_irqrestore(&trans->shrd->lock, flags);
--
- 	/* saved interrupt in inta variable now we can reset trans_pcie->inta */
- 	trans_pcie->inta = 0;
- 
-+	spin_unlock_irqrestore(&trans->shrd->lock, flags);
-+
- 	/* Now service all interrupt bits discovered above. */
- 	if (inta & CSR_INT_BIT_HW_ERR) {
- 		IWL_ERR(trans, "Hardware error detected.  Restarting.\n");
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0054-vmwgfx-Fix-assignment-in-vmw_framebuffer_create_hand.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0054-vmwgfx-Fix-assignment-in-vmw_framebuffer_create_hand.patch
deleted file mode 100644
index 9c5014d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0054-vmwgfx-Fix-assignment-in-vmw_framebuffer_create_hand.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 24ac9d40092ac989e425100ff65c7781cb786077 Mon Sep 17 00:00:00 2001
-From: Ryan Mallon <rmallon at gmail.com>
-Date: Sat, 28 Jan 2012 08:51:40 +1100
-Subject: [PATCH 54/90] vmwgfx: Fix assignment in
- vmw_framebuffer_create_handle
-
-commit bf9c05d5b6d19b3e4c9fe21047694e94f48db89b upstream.
-
-The assignment of handle in vmw_framebuffer_create_handle doesn't actually do anything useful and is incorrectly assigning an integer value to a pointer argument. It appears that this is a typo and should be dereferencing handle rather than assigning to it directly. This fixes a bug where an undefined handle value is potentially returned to user-space.
-
-Signed-off-by: Ryan Mallon <rmallon at gmail.com>
-Reviewed-by: Jakob Bornecrantz<jakob at vmware.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/vmwgfx/vmwgfx_kms.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
-index f94b33a..7c88f1f 100644
---- a/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
-+++ b/drivers/gpu/drm/vmwgfx/vmwgfx_kms.c
-@@ -378,7 +378,7 @@ int vmw_framebuffer_create_handle(struct drm_framebuffer *fb,
- 				  unsigned int *handle)
- {
- 	if (handle)
--		handle = 0;
-+		*handle = 0;
- 
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0055-USB-Realtek-cr-fix-autopm-scheduling-while-atomic.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0055-USB-Realtek-cr-fix-autopm-scheduling-while-atomic.patch
deleted file mode 100644
index 9bf30b9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0055-USB-Realtek-cr-fix-autopm-scheduling-while-atomic.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 389082531ace8ae430c318b99d3311bec2856914 Mon Sep 17 00:00:00 2001
-From: Stanislaw Gruszka <sgruszka at redhat.com>
-Date: Thu, 26 Jan 2012 12:29:42 +0100
-Subject: [PATCH 55/90] USB: Realtek cr: fix autopm scheduling while atomic
-
-commit b3ef051db763b640d1ff724b616ffba940896b44 upstream.
-
-Resolves:
-https://bugzilla.redhat.com/show_bug.cgi?id=784345
-
-Reported-by: Francis Moreau <francis.moro at gmail.com>
-Reported-and-tested-by: Christian D <chrisudeussen at gmail.com>
-Reported-and-tested-by: Jimmy Dorff <jdorff at phy.duke.edu>
-Reported-and-tested-by: collura at ieee.org
-Signed-off-by: Stanislaw Gruszka <sgruszka at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/storage/realtek_cr.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/storage/realtek_cr.c b/drivers/usb/storage/realtek_cr.c
-index 0ce5f79..32c93d7 100644
---- a/drivers/usb/storage/realtek_cr.c
-+++ b/drivers/usb/storage/realtek_cr.c
-@@ -791,7 +791,7 @@ static void rts51x_suspend_timer_fn(unsigned long data)
- 			rts51x_set_stat(chip, RTS51X_STAT_SS);
- 			/* ignore mass storage interface's children */
- 			pm_suspend_ignore_children(&us->pusb_intf->dev, true);
--			usb_autopm_put_interface(us->pusb_intf);
-+			usb_autopm_put_interface_async(us->pusb_intf);
- 			US_DEBUGP("%s: RTS51X_STAT_SS 01,"
- 				"intf->pm_usage_cnt:%d, power.usage:%d\n",
- 				__func__,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0056-USB-usbsevseg-fix-max-length.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0056-USB-usbsevseg-fix-max-length.patch
deleted file mode 100644
index b94f621..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0056-USB-usbsevseg-fix-max-length.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From d7ff9d198072099925dcc2bb81d17f1f08b0eba6 Mon Sep 17 00:00:00 2001
-From: Harrison Metzger <harrisonmetz at gmail.com>
-Date: Sun, 15 Jan 2012 08:43:24 -0600
-Subject: [PATCH 56/90] USB: usbsevseg: fix max length
-
-commit 1097ccebe630170080c41df0edcf88e0626e9c75 upstream.
-
-This changes the max length for the usb seven segment delcom device to 8
-from 6. Delcom has both 6 and 8 variants and having 8 works fine with
-devices which are only 6.
-
-Signed-off-by: Harrison Metzger <harrisonmetz at gmail.com>
-Signed-off-by: Stuart Pook <stuart at acm.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/misc/usbsevseg.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/misc/usbsevseg.c b/drivers/usb/misc/usbsevseg.c
-index 417b8f2..59689fa 100644
---- a/drivers/usb/misc/usbsevseg.c
-+++ b/drivers/usb/misc/usbsevseg.c
-@@ -24,7 +24,7 @@
- 
- #define VENDOR_ID	0x0fc5
- #define PRODUCT_ID	0x1227
--#define MAXLEN		6
-+#define MAXLEN		8
- 
- /* table of devices that work with this driver */
- static const struct usb_device_id id_table[] = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0057-usb-gadget-langwell-don-t-call-gadget-s-disconnect.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0057-usb-gadget-langwell-don-t-call-gadget-s-disconnect.patch
deleted file mode 100644
index 90f87ba..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0057-usb-gadget-langwell-don-t-call-gadget-s-disconnect.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From ff10feffa49fc6a81438d1f66384754e77b7dd3c Mon Sep 17 00:00:00 2001
-From: Alexander Shishkin <alexander.shishkin at linux.intel.com>
-Date: Wed, 21 Dec 2011 10:19:40 +0200
-Subject: [PATCH 57/90] usb: gadget: langwell: don't call gadget's
- disconnect()
-
-commit 37fd37108449d574da11aa9055c5c8afb39ff226 upstream.
-
-UDC core will call disconnect() and unbind() for us upon the gadget
-removal, so we should not do it ourselves. Otherwise, a composite
-gadget will explode, for example. Others might too.
-
-This was introduced during conversion to new style gadget in 2c7f0989
-(usb: gadget: langwell: convert to new style).
-
-Signed-off-by: Alexander Shishkin <alexander.shishkin at linux.intel.com>
-Cc: Heikki Krogerus <heikki.krogerus at linux.intel.com>
-Cc: linux-usb at vger.kernel.org
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/langwell_udc.c |   18 ++++++++----------
- 1 file changed, 8 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/usb/gadget/langwell_udc.c b/drivers/usb/gadget/langwell_udc.c
-index fa0fcc1..b0c5b6d 100644
---- a/drivers/usb/gadget/langwell_udc.c
-+++ b/drivers/usb/gadget/langwell_udc.c
-@@ -1522,8 +1522,7 @@ static void langwell_udc_stop(struct langwell_udc *dev)
- 
- 
- /* stop all USB activities */
--static void stop_activity(struct langwell_udc *dev,
--		struct usb_gadget_driver *driver)
-+static void stop_activity(struct langwell_udc *dev)
- {
- 	struct langwell_ep	*ep;
- 	dev_dbg(&dev->pdev->dev, "---> %s()\n", __func__);
-@@ -1535,9 +1534,9 @@ static void stop_activity(struct langwell_udc *dev,
- 	}
- 
- 	/* report disconnect; the driver is already quiesced */
--	if (driver) {
-+	if (dev->driver) {
- 		spin_unlock(&dev->lock);
--		driver->disconnect(&dev->gadget);
-+		dev->driver->disconnect(&dev->gadget);
- 		spin_lock(&dev->lock);
- 	}
- 
-@@ -1925,11 +1924,10 @@ static int langwell_stop(struct usb_gadget *g,
- 
- 	/* stop all usb activities */
- 	dev->gadget.speed = USB_SPEED_UNKNOWN;
--	stop_activity(dev, driver);
--	spin_unlock_irqrestore(&dev->lock, flags);
--
- 	dev->gadget.dev.driver = NULL;
- 	dev->driver = NULL;
-+	stop_activity(dev);
-+	spin_unlock_irqrestore(&dev->lock, flags);
- 
- 	device_remove_file(&dev->pdev->dev, &dev_attr_function);
- 
-@@ -2733,7 +2731,7 @@ static void handle_usb_reset(struct langwell_udc *dev)
- 		dev->bus_reset = 1;
- 
- 		/* reset all the queues, stop all USB activities */
--		stop_activity(dev, dev->driver);
-+		stop_activity(dev);
- 		dev->usb_state = USB_STATE_DEFAULT;
- 	} else {
- 		dev_vdbg(&dev->pdev->dev, "device controller reset\n");
-@@ -2741,7 +2739,7 @@ static void handle_usb_reset(struct langwell_udc *dev)
- 		langwell_udc_reset(dev);
- 
- 		/* reset all the queues, stop all USB activities */
--		stop_activity(dev, dev->driver);
-+		stop_activity(dev);
- 
- 		/* reset ep0 dQH and endptctrl */
- 		ep0_reset(dev);
-@@ -3367,7 +3365,7 @@ static int langwell_udc_suspend(struct pci_dev *pdev, pm_message_t state)
- 
- 	spin_lock_irq(&dev->lock);
- 	/* stop all usb activities */
--	stop_activity(dev, dev->driver);
-+	stop_activity(dev);
- 	spin_unlock_irq(&dev->lock);
- 
- 	/* free dTD dma_pool and dQH */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0058-usb-gadget-storage-endian-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0058-usb-gadget-storage-endian-fix.patch
deleted file mode 100644
index d5c7fec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0058-usb-gadget-storage-endian-fix.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 40fe12a7ee76b320a7662d8da492c80743deaa1b Mon Sep 17 00:00:00 2001
-From: Andiry Xu <andiry.xu at amd.com>
-Date: Wed, 4 Jan 2012 15:18:27 +0800
-Subject: [PATCH 58/90] usb: gadget: storage: endian fix
-
-commit a85016390135d577c457876d0e905095600751de upstream.
-
-Fix some endian issues for storage gadgets.
-
-Signed-off-by: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/storage_common.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/gadget/storage_common.c b/drivers/usb/gadget/storage_common.c
-index c7f291a..85ea14e 100644
---- a/drivers/usb/gadget/storage_common.c
-+++ b/drivers/usb/gadget/storage_common.c
-@@ -598,16 +598,16 @@ static __maybe_unused struct usb_ss_cap_descriptor fsg_ss_cap_desc = {
- 		| USB_5GBPS_OPERATION),
- 	.bFunctionalitySupport = USB_LOW_SPEED_OPERATION,
- 	.bU1devExitLat =	USB_DEFAULT_U1_DEV_EXIT_LAT,
--	.bU2DevExitLat =	USB_DEFAULT_U2_DEV_EXIT_LAT,
-+	.bU2DevExitLat =	cpu_to_le16(USB_DEFAULT_U2_DEV_EXIT_LAT),
- };
- 
- static __maybe_unused struct usb_bos_descriptor fsg_bos_desc = {
- 	.bLength =		USB_DT_BOS_SIZE,
- 	.bDescriptorType =	USB_DT_BOS,
- 
--	.wTotalLength =		USB_DT_BOS_SIZE
-+	.wTotalLength =		cpu_to_le16(USB_DT_BOS_SIZE
- 				+ USB_DT_USB_EXT_CAP_SIZE
--				+ USB_DT_USB_SS_CAP_SIZE,
-+				+ USB_DT_USB_SS_CAP_SIZE),
- 
- 	.bNumDeviceCaps =	2,
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0059-drivers-usb-host-ehci-fsl.c-add-missing-iounmap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0059-drivers-usb-host-ehci-fsl.c-add-missing-iounmap.patch
deleted file mode 100644
index c45e2ac..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0059-drivers-usb-host-ehci-fsl.c-add-missing-iounmap.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From e548ad84a8c8bb04cb2b87b339d244a2335a6ede Mon Sep 17 00:00:00 2001
-From: Julia Lawall <Julia.Lawall at lip6.fr>
-Date: Thu, 12 Jan 2012 10:55:13 +0100
-Subject: [PATCH 59/90] drivers/usb/host/ehci-fsl.c: add missing iounmap
-
-commit 2492c6e6454ff3edb11e273b071a6ea80a199c71 upstream.
-
-Add missing iounmap in error handling code, in a case where the function
-already preforms iounmap on some other execution path.
-
-A simplified version of the semantic match that finds this problem is as
-follows: (http://coccinelle.lip6.fr/)
-
-// <smpl>
-@@
-expression e;
-statement S,S1;
-int ret;
-@@
-e = \(ioremap\|ioremap_nocache\)(...)
-... when != iounmap(e)
-if (<+...e...+>) S
-... when any
-    when != iounmap(e)
-*if (...)
-   { ... when != iounmap(e)
-     return ...; }
-... when any
-iounmap(e);
-// </smpl>
-
-Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/ehci-fsl.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/ehci-fsl.c b/drivers/usb/host/ehci-fsl.c
-index e90344a..b556a72 100644
---- a/drivers/usb/host/ehci-fsl.c
-+++ b/drivers/usb/host/ehci-fsl.c
-@@ -125,7 +125,7 @@ static int usb_hcd_fsl_probe(const struct hc_driver *driver,
- 	 */
- 	if (pdata->init && pdata->init(pdev)) {
- 		retval = -ENODEV;
--		goto err3;
-+		goto err4;
- 	}
- 
- 	/* Enable USB controller, 83xx or 8536 */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0060-xhci-Fix-USB-3.0-device-restart-on-resume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0060-xhci-Fix-USB-3.0-device-restart-on-resume.patch
deleted file mode 100644
index 568bdf7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0060-xhci-Fix-USB-3.0-device-restart-on-resume.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 3f5d6421aca0bcbeb9f0b234e716c0c82b4f04bc Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Mon, 14 Nov 2011 17:51:39 -0800
-Subject: [PATCH 60/90] xhci: Fix USB 3.0 device restart on resume.
-
-commit d0cd5d482b8a6dc92c6c69a5387baf72ea84f23a upstream.
-
-The xHCI hub port code gets passed a zero-based port number by the USB
-core.  It then adds one to in order to find a device slot by port number
-and device speed by calling xhci_find_slot_id_by_port.  That function
-clearly states it requires a one-based port number.  The xHCI port
-status change event handler was using a zero-based port number that it
-got from find_faked_portnum_from_hw_portnum, not a one-based port
-number.  This lead to the doorbells never being rung for a device after
-a resume, or worse, a different device with the same speed having its
-doorbell rung (which could lead to bad power management in the xHCI host
-controller).
-
-This patch should be backported to kernels as old as 2.6.39.
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Acked-by: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-ring.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
-index d28c586..ee0b4d7 100644
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -1215,6 +1215,7 @@ static void handle_vendor_event(struct xhci_hcd *xhci,
-  *
-  * Returns a zero-based port number, which is suitable for indexing into each of
-  * the split roothubs' port arrays and bus state arrays.
-+ * Add one to it in order to call xhci_find_slot_id_by_port.
-  */
- static unsigned int find_faked_portnum_from_hw_portnum(struct usb_hcd *hcd,
- 		struct xhci_hcd *xhci, u32 port_id)
-@@ -1335,7 +1336,7 @@ static void handle_port_status(struct xhci_hcd *xhci,
- 			xhci_set_link_state(xhci, port_array, faked_port_index,
- 						XDEV_U0);
- 			slot_id = xhci_find_slot_id_by_port(hcd, xhci,
--					faked_port_index);
-+					faked_port_index + 1);
- 			if (!slot_id) {
- 				xhci_dbg(xhci, "slot_id is zero\n");
- 				goto cleanup;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0061-xHCI-Cleanup-isoc-transfer-ring-when-TD-length-misma.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0061-xHCI-Cleanup-isoc-transfer-ring-when-TD-length-misma.patch
deleted file mode 100644
index ab37395..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0061-xHCI-Cleanup-isoc-transfer-ring-when-TD-length-misma.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From cd06fccbc411c12ce1f1c20cebacc3684ba6e957 Mon Sep 17 00:00:00 2001
-From: Andiry Xu <andiry.xu at amd.com>
-Date: Wed, 18 Jan 2012 17:47:12 +0800
-Subject: [PATCH 61/90] xHCI: Cleanup isoc transfer ring when TD length
- mismatch found
-
-commit cf840551a884360841bd3d3ce1ad0868ff0b759a upstream.
-
-When a TD length mismatch is found during isoc TRB enqueue, it directly
-returns -EINVAL. However, isoc transfer is partially enqueued at this time,
-and the ring should be cleared.
-
-This should be backported to kernels as old as 2.6.36, which contain the
-commit 522989a27c7badb608155b1f1dea3487ed431f74 "xhci: Fix failed
-enqueue in the middle of isoch TD."
-
-Signed-off-by: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-ring.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci-ring.c b/drivers/usb/host/xhci-ring.c
-index ee0b4d7..ae92dc4 100644
---- a/drivers/usb/host/xhci-ring.c
-+++ b/drivers/usb/host/xhci-ring.c
-@@ -3373,7 +3373,8 @@ static int xhci_queue_isoc_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
- 		/* Check TD length */
- 		if (running_total != td_len) {
- 			xhci_err(xhci, "ISOC TD length unmatch\n");
--			return -EINVAL;
-+			ret = -EINVAL;
-+			goto cleanup;
- 		}
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0062-usb-musb-davinci-fix-build-breakage.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0062-usb-musb-davinci-fix-build-breakage.patch
deleted file mode 100644
index 68bde2d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0062-usb-musb-davinci-fix-build-breakage.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From f8c07cb92ea86609586270f60474814fc09da890 Mon Sep 17 00:00:00 2001
-From: Sekhar Nori <nsekhar at ti.com>
-Date: Wed, 28 Dec 2011 12:02:57 +0530
-Subject: [PATCH 62/90] usb: musb: davinci: fix build breakage
-
-commit 006896fc612f11bf0624db7814a75d0d5410855f upstream.
-
-Commit 0020afb369859472a461ef4af6410732e929d402 (ARM: mach-davinci:
-remove mach/memory.h) removed mach/memory.h for DaVinci which broke
-DaVinci MUSB build.
-
-mach/memory.h is not actually needed in davinci.c, so remove it.
-While at it, also remove some more machine specific inclulde
-files which are not needed for build.
-
-Tested on DM644x EVM using USB card reader.
-
-Signed-off-by: Sekhar Nori <nsekhar at ti.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/musb/davinci.c |    3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/drivers/usb/musb/davinci.c b/drivers/usb/musb/davinci.c
-index 4d365d5..3911d9a 100644
---- a/drivers/usb/musb/davinci.c
-+++ b/drivers/usb/musb/davinci.c
-@@ -33,9 +33,6 @@
- #include <linux/platform_device.h>
- #include <linux/dma-mapping.h>
- 
--#include <mach/hardware.h>
--#include <mach/memory.h>
--#include <asm/gpio.h>
- #include <mach/cputype.h>
- 
- #include <asm/mach-types.h>
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0063-hwmon-f71805f-Fix-clamping-of-temperature-limits.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0063-hwmon-f71805f-Fix-clamping-of-temperature-limits.patch
deleted file mode 100644
index fa783e7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0063-hwmon-f71805f-Fix-clamping-of-temperature-limits.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From bdf8cb4ebb0c6f8e60c3900cdc34289b4e3ca924 Mon Sep 17 00:00:00 2001
-From: Jean Delvare <khali at linux-fr.org>
-Date: Fri, 20 Jan 2012 10:09:23 -0500
-Subject: [PATCH 63/90] hwmon: (f71805f) Fix clamping of temperature limits
-
-commit 86b2bbfdbd1fcc4a3aa62ccd3f245c40c5ad5b85 upstream.
-
-Properly clamp temperature limits set by the user. Without this fix,
-attempts to write temperature limits above the maximum supported by
-the chip (255 degrees Celsius) would arbitrarily and unexpectedly
-result in the limit being set to 0 degree Celsius.
-
-Signed-off-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/f71805f.c |   10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/hwmon/f71805f.c b/drivers/hwmon/f71805f.c
-index 92f9497..6dbfd3e 100644
---- a/drivers/hwmon/f71805f.c
-+++ b/drivers/hwmon/f71805f.c
-@@ -283,11 +283,11 @@ static inline long temp_from_reg(u8 reg)
- 
- static inline u8 temp_to_reg(long val)
- {
--	if (val < 0)
--		val = 0;
--	else if (val > 1000 * 0xff)
--		val = 0xff;
--	return ((val + 500) / 1000);
-+	if (val <= 0)
-+		return 0;
-+	if (val >= 1000 * 0xff)
-+		return 0xff;
-+	return (val + 500) / 1000;
- }
- 
- /*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0064-hwmon-w83627ehf-Disable-setting-DC-mode-for-pwm2-pwm.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0064-hwmon-w83627ehf-Disable-setting-DC-mode-for-pwm2-pwm.patch
deleted file mode 100644
index 95d3ea7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0064-hwmon-w83627ehf-Disable-setting-DC-mode-for-pwm2-pwm.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From f3e66dfb3db5b8aab5d05ef44a1f2ec9490d9eea Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Fri, 27 Jan 2012 17:56:06 -0800
-Subject: [PATCH 64/90] hwmon: (w83627ehf) Disable setting DC mode for pwm2,
- pwm3 on NCT6776F
-
-commit ad77c3e1808f07fa70f707b1c92a683b7c7d3f85 upstream.
-
-NCT6776F only supports pwm mode for pwm2 and pwm3. Return error if an attempt
-is made to set those pwm channels to DC mode.
-
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/w83627ehf.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
-index 93f5fc7..4b57ab6 100644
---- a/drivers/hwmon/w83627ehf.c
-+++ b/drivers/hwmon/w83627ehf.c
-@@ -1319,6 +1319,7 @@ store_pwm_mode(struct device *dev, struct device_attribute *attr,
- {
- 	struct w83627ehf_data *data = dev_get_drvdata(dev);
- 	struct sensor_device_attribute *sensor_attr = to_sensor_dev_attr(attr);
-+	struct w83627ehf_sio_data *sio_data = dev->platform_data;
- 	int nr = sensor_attr->index;
- 	unsigned long val;
- 	int err;
-@@ -1330,6 +1331,11 @@ store_pwm_mode(struct device *dev, struct device_attribute *attr,
- 
- 	if (val > 1)
- 		return -EINVAL;
-+
-+	/* On NCT67766F, DC mode is only supported for pwm1 */
-+	if (sio_data->kind == nct6776 && nr && val != 1)
-+		return -EINVAL;
-+
- 	mutex_lock(&data->update_lock);
- 	reg = w83627ehf_read_value(data, W83627EHF_REG_PWM_ENABLE[nr]);
- 	data->pwm_mode[nr] = val;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0065-hwmon-sht15-fix-bad-error-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0065-hwmon-sht15-fix-bad-error-code.patch
deleted file mode 100644
index 70a3809..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0065-hwmon-sht15-fix-bad-error-code.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From fdc0431bfce635348e459fb3d3a27972a348cacc Mon Sep 17 00:00:00 2001
-From: Vivien Didelot <vivien.didelot at savoirfairelinux.com>
-Date: Thu, 26 Jan 2012 15:59:00 -0500
-Subject: [PATCH 65/90] hwmon: (sht15) fix bad error code
-
-commit 6edf3c30af01854c416f8654d3d5d2652470afd4 upstream.
-
-When no platform data was supplied, returned error code was 0.
-
-Signed-off-by: Vivien Didelot <vivien.didelot at savoirfairelinux.com>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/sht15.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/sht15.c b/drivers/hwmon/sht15.c
-index fe4104c..5357925 100644
---- a/drivers/hwmon/sht15.c
-+++ b/drivers/hwmon/sht15.c
-@@ -883,7 +883,7 @@ static int sht15_invalidate_voltage(struct notifier_block *nb,
- 
- static int __devinit sht15_probe(struct platform_device *pdev)
- {
--	int ret = 0;
-+	int ret;
- 	struct sht15_data *data = kzalloc(sizeof(*data), GFP_KERNEL);
- 	u8 status = 0;
- 
-@@ -901,6 +901,7 @@ static int __devinit sht15_probe(struct platform_device *pdev)
- 	init_waitqueue_head(&data->wait_queue);
- 
- 	if (pdev->dev.platform_data == NULL) {
-+		ret = -EINVAL;
- 		dev_err(&pdev->dev, "no platform data supplied\n");
- 		goto err_free_data;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0066-USB-cdc-wdm-call-wake_up_all-to-allow-driver-to-shut.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0066-USB-cdc-wdm-call-wake_up_all-to-allow-driver-to-shut.patch
deleted file mode 100644
index 177d22f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0066-USB-cdc-wdm-call-wake_up_all-to-allow-driver-to-shut.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 206106e0b0fad394ef57aa6cd7b5d2c59bccde6e Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 16 Jan 2012 15:11:57 +0100
-Subject: [PATCH 66/90] USB: cdc-wdm: call wake_up_all to allow driver to
- shutdown on device removal
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 62aaf24dc125d7c55c93e313d15611f152b030c7 upstream.
-
-wdm_disconnect() waits for the mutex held by wdm_read() before
-calling wake_up_all().  This causes a deadlock, preventing device removal
-to complete.  Do the wake_up_all() before we start waiting for the locks.
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Cc: Oliver Neukum <oliver at neukum.org>
-Cc: stable <stable at vger.kernel.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index 4a29a80..d2cda26 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -786,13 +786,13 @@ static void wdm_disconnect(struct usb_interface *intf)
- 	/* to terminate pending flushes */
- 	clear_bit(WDM_IN_USE, &desc->flags);
- 	spin_unlock_irqrestore(&desc->iuspin, flags);
-+	wake_up_all(&desc->wait);
- 	mutex_lock(&desc->rlock);
- 	mutex_lock(&desc->wlock);
- 	kill_urbs(desc);
- 	cancel_work_sync(&desc->rxwork);
- 	mutex_unlock(&desc->wlock);
- 	mutex_unlock(&desc->rlock);
--	wake_up_all(&desc->wait);
- 	if (!desc->count)
- 		cleanup(desc);
- 	mutex_unlock(&wdm_mutex);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0067-USB-cdc-wdm-better-allocate-a-buffer-that-is-at-leas.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0067-USB-cdc-wdm-better-allocate-a-buffer-that-is-at-leas.patch
deleted file mode 100644
index 5b0e643..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0067-USB-cdc-wdm-better-allocate-a-buffer-that-is-at-leas.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From d4b71a388aa58d6d1e46a6207c0acc756c9c0cf0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Mon, 16 Jan 2012 15:11:59 +0100
-Subject: [PATCH 67/90] USB: cdc-wdm: better allocate a buffer that is at
- least as big as we tell the USB core
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 655e247daf52b202a6c2d0f8a06dd2051e756ce4 upstream.
-
-As it turns out, there was a mismatch between the allocated inbuf size
-(desc->bMaxPacketSize0, typically something like 64) and the length we
-specified in the URB (desc->wMaxCommand, typically something like 2048)
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Cc: Oliver Neukum <oliver at neukum.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index d2cda26..f0deb9e 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -723,7 +723,7 @@ next_desc:
- 		goto err;
- 
- 	desc->inbuf = usb_alloc_coherent(interface_to_usbdev(intf),
--					 desc->bMaxPacketSize0,
-+					 desc->wMaxCommand,
- 					 GFP_KERNEL,
- 					 &desc->response->transfer_dma);
- 	if (!desc->inbuf)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0068-USB-cdc-wdm-Avoid-hanging-on-interface-with-no-USB_C.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0068-USB-cdc-wdm-Avoid-hanging-on-interface-with-no-USB_C.patch
deleted file mode 100644
index d404d31..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0068-USB-cdc-wdm-Avoid-hanging-on-interface-with-no-USB_C.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 99e5fa08e85ab983d67197fd08a88e9e46536dba Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Bj=C3=B8rn=20Mork?= <bjorn at mork.no>
-Date: Fri, 20 Jan 2012 01:49:57 +0100
-Subject: [PATCH 68/90] USB: cdc-wdm: Avoid hanging on interface with no
- USB_CDC_DMM_TYPE
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 15699e6fafc3a90e5fdc2ef30555a04dee62286f upstream.
-
-The probe does not strictly require the USB_CDC_DMM_TYPE
-descriptor, which is a good thing as it makes the driver
-usable on non-conforming interfaces.  A user could e.g.
-bind to it to a CDC ECM interface by using the new_id and
-bind sysfs files.  But this would fail with a 0 buffer length
-due to the missing descriptor.
-
-Fix by defining a reasonable fallback size: The minimum
-device receive buffer size required by the CDC WMC standard,
-revision 1.1
-
-Signed-off-by: Bjørn Mork <bjorn at mork.no>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/class/cdc-wdm.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/class/cdc-wdm.c b/drivers/usb/class/cdc-wdm.c
-index f0deb9e..fd4aee1 100644
---- a/drivers/usb/class/cdc-wdm.c
-+++ b/drivers/usb/class/cdc-wdm.c
-@@ -57,6 +57,8 @@ MODULE_DEVICE_TABLE (usb, wdm_ids);
- 
- #define WDM_MAX			16
- 
-+/* CDC-WMC r1.1 requires wMaxCommand to be "at least 256 decimal (0x100)" */
-+#define WDM_DEFAULT_BUFSIZE	256
- 
- static DEFINE_MUTEX(wdm_mutex);
- 
-@@ -636,7 +638,7 @@ static int wdm_probe(struct usb_interface *intf, const struct usb_device_id *id)
- 	struct usb_cdc_dmm_desc *dmhd;
- 	u8 *buffer = intf->altsetting->extra;
- 	int buflen = intf->altsetting->extralen;
--	u16 maxcom = 0;
-+	u16 maxcom = WDM_DEFAULT_BUFSIZE;
- 
- 	if (!buffer)
- 		goto out;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0069-netns-fix-net_alloc_generic.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0069-netns-fix-net_alloc_generic.patch
deleted file mode 100644
index 1e69738..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0069-netns-fix-net_alloc_generic.patch
+++ /dev/null
@@ -1,120 +0,0 @@
-From a1294ecfc001aebbd064325e37a341c552de29e7 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Thu, 26 Jan 2012 00:41:38 +0000
-Subject: [PATCH 69/90] netns: fix net_alloc_generic()
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit 073862ba5d249c20bd5c49fc6d904ff0e1f6a672 ]
-
-When a new net namespace is created, we should attach to it a "struct
-net_generic" with enough slots (even empty), or we can hit the following
-BUG_ON() :
-
-[  200.752016] kernel BUG at include/net/netns/generic.h:40!
-...
-[  200.752016]  [<ffffffff825c3cea>] ? get_cfcnfg+0x3a/0x180
-[  200.752016]  [<ffffffff821cf0b0>] ? lockdep_rtnl_is_held+0x10/0x20
-[  200.752016]  [<ffffffff825c41be>] caif_device_notify+0x2e/0x530
-[  200.752016]  [<ffffffff810d61b7>] notifier_call_chain+0x67/0x110
-[  200.752016]  [<ffffffff810d67c1>] raw_notifier_call_chain+0x11/0x20
-[  200.752016]  [<ffffffff821bae82>] call_netdevice_notifiers+0x32/0x60
-[  200.752016]  [<ffffffff821c2b26>] register_netdevice+0x196/0x300
-[  200.752016]  [<ffffffff821c2ca9>] register_netdev+0x19/0x30
-[  200.752016]  [<ffffffff81c1c67a>] loopback_net_init+0x4a/0xa0
-[  200.752016]  [<ffffffff821b5e62>] ops_init+0x42/0x180
-[  200.752016]  [<ffffffff821b600b>] setup_net+0x6b/0x100
-[  200.752016]  [<ffffffff821b6466>] copy_net_ns+0x86/0x110
-[  200.752016]  [<ffffffff810d5789>] create_new_namespaces+0xd9/0x190
-
-net_alloc_generic() should take into account the maximum index into the
-ptr array, as a subsystem might use net_generic() anytime.
-
-This also reduces number of reallocations in net_assign_generic()
-
-Reported-by: Sasha Levin <levinsasha928 at gmail.com>
-Tested-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Sjur Brændeland <sjur.brandeland at stericsson.com>
-Cc: Eric W. Biederman <ebiederm at xmission.com>
-Cc: Pavel Emelyanov <xemul at openvz.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/net_namespace.c |   31 ++++++++++++++++---------------
- 1 file changed, 16 insertions(+), 15 deletions(-)
-
-diff --git a/net/core/net_namespace.c b/net/core/net_namespace.c
-index aefcd7a..0e950fd 100644
---- a/net/core/net_namespace.c
-+++ b/net/core/net_namespace.c
-@@ -30,6 +30,20 @@ EXPORT_SYMBOL(init_net);
- 
- #define INITIAL_NET_GEN_PTRS	13 /* +1 for len +2 for rcu_head */
- 
-+static unsigned int max_gen_ptrs = INITIAL_NET_GEN_PTRS;
-+
-+static struct net_generic *net_alloc_generic(void)
-+{
-+	struct net_generic *ng;
-+	size_t generic_size = offsetof(struct net_generic, ptr[max_gen_ptrs]);
-+
-+	ng = kzalloc(generic_size, GFP_KERNEL);
-+	if (ng)
-+		ng->len = max_gen_ptrs;
-+
-+	return ng;
-+}
-+
- static int net_assign_generic(struct net *net, int id, void *data)
- {
- 	struct net_generic *ng, *old_ng;
-@@ -43,8 +57,7 @@ static int net_assign_generic(struct net *net, int id, void *data)
- 	if (old_ng->len >= id)
- 		goto assign;
- 
--	ng = kzalloc(sizeof(struct net_generic) +
--			id * sizeof(void *), GFP_KERNEL);
-+	ng = net_alloc_generic();
- 	if (ng == NULL)
- 		return -ENOMEM;
- 
-@@ -59,7 +72,6 @@ static int net_assign_generic(struct net *net, int id, void *data)
- 	 * the old copy for kfree after a grace period.
- 	 */
- 
--	ng->len = id;
- 	memcpy(&ng->ptr, &old_ng->ptr, old_ng->len * sizeof(void*));
- 
- 	rcu_assign_pointer(net->gen, ng);
-@@ -161,18 +173,6 @@ out_undo:
- 	goto out;
- }
- 
--static struct net_generic *net_alloc_generic(void)
--{
--	struct net_generic *ng;
--	size_t generic_size = sizeof(struct net_generic) +
--		INITIAL_NET_GEN_PTRS * sizeof(void *);
--
--	ng = kzalloc(generic_size, GFP_KERNEL);
--	if (ng)
--		ng->len = INITIAL_NET_GEN_PTRS;
--
--	return ng;
--}
- 
- #ifdef CONFIG_NET_NS
- static struct kmem_cache *net_cachep;
-@@ -483,6 +483,7 @@ again:
- 			}
- 			return error;
- 		}
-+		max_gen_ptrs = max_t(unsigned int, max_gen_ptrs, *ops->id);
- 	}
- 	error = __register_pernet_operations(list, ops);
- 	if (error) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0070-netns-Fail-conspicously-if-someone-uses-net_generic-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0070-netns-Fail-conspicously-if-someone-uses-net_generic-.patch
deleted file mode 100644
index c48b37d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0070-netns-Fail-conspicously-if-someone-uses-net_generic-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From d47f7836f0e0061a67c5c8fc39d4a23de52fab9f Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Thu, 26 Jan 2012 14:02:55 +0000
-Subject: [PATCH 70/90] netns: Fail conspicously if someone uses net_generic
- at an inappropriate time.
-
-[ Upstream commit 5ee4433efe99b9f39f6eff5052a177bbcfe72cea ]
-
-By definition net_generic should never be called when it can return
-NULL.  Fail conspicously with a BUG_ON to make it clear when people mess
-up that a NULL return should never happen.
-
-Recently there was a bug in the CAIF subsystem where it was registered
-with register_pernet_device instead of register_pernet_subsys.  It was
-erroneously concluded that net_generic could validly return NULL and
-that net_assign_generic was buggy (when it was just inefficient).
-Hopefully this BUG_ON will prevent people to coming to similar erroneous
-conclusions in the futrue.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Tested-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/net/netns/generic.h |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/include/net/netns/generic.h b/include/net/netns/generic.h
-index 3419bf5..d55f434 100644
---- a/include/net/netns/generic.h
-+++ b/include/net/netns/generic.h
-@@ -41,6 +41,7 @@ static inline void *net_generic(const struct net *net, int id)
- 	ptr = ng->ptr[id - 1];
- 	rcu_read_unlock();
- 
-+	BUG_ON(!ptr);
- 	return ptr;
- }
- #endif
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0071-net-caif-Register-properly-as-a-pernet-subsystem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0071-net-caif-Register-properly-as-a-pernet-subsystem.patch
deleted file mode 100644
index 7ecbbf0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0071-net-caif-Register-properly-as-a-pernet-subsystem.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From 94f76501f610e1baf20fbcdd4c4fd01c5d7936cd Mon Sep 17 00:00:00 2001
-From: "Eric W. Biederman" <ebiederm at xmission.com>
-Date: Thu, 26 Jan 2012 14:04:53 +0000
-Subject: [PATCH 71/90] net caif: Register properly as a pernet subsystem.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit 8a8ee9aff6c3077dd9c2c7a77478e8ed362b96c6 ]
-
-caif is a subsystem and as such it needs to register with
-register_pernet_subsys instead of register_pernet_device.
-
-Among other problems using register_pernet_device was resulting in
-net_generic being called before the caif_net structure was allocated.
-Which has been causing net_generic to fail with either BUG_ON's or by
-return NULL pointers.
-
-A more ugly problem that could be caused is packets in flight why the
-subsystem is shutting down.
-
-To remove confusion also remove the cruft cause by inappropriately
-trying to fix this bug.
-
-With the aid of the previous patch I have tested this patch and
-confirmed that using register_pernet_subsys makes the failure go away as
-it should.
-
-Signed-off-by: Eric W. Biederman <ebiederm at xmission.com>
-Acked-by: Sjur Brændeland <sjur.brandeland at stericsson.com>
-Tested-by: Sasha Levin <levinsasha928 at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/caif/caif_dev.c |   11 ++++-------
- net/caif/cfcnfg.c   |    1 -
- 2 files changed, 4 insertions(+), 8 deletions(-)
-
-diff --git a/net/caif/caif_dev.c b/net/caif/caif_dev.c
-index f1fa1f6..68223e4 100644
---- a/net/caif/caif_dev.c
-+++ b/net/caif/caif_dev.c
-@@ -53,7 +53,6 @@ struct cfcnfg *get_cfcnfg(struct net *net)
- 	struct caif_net *caifn;
- 	BUG_ON(!net);
- 	caifn = net_generic(net, caif_net_id);
--	BUG_ON(!caifn);
- 	return caifn->cfg;
- }
- EXPORT_SYMBOL(get_cfcnfg);
-@@ -63,7 +62,6 @@ static struct caif_device_entry_list *caif_device_list(struct net *net)
- 	struct caif_net *caifn;
- 	BUG_ON(!net);
- 	caifn = net_generic(net, caif_net_id);
--	BUG_ON(!caifn);
- 	return &caifn->caifdevs;
- }
- 
-@@ -92,7 +90,6 @@ static struct caif_device_entry *caif_device_alloc(struct net_device *dev)
- 	struct caif_device_entry *caifd;
- 
- 	caifdevs = caif_device_list(dev_net(dev));
--	BUG_ON(!caifdevs);
- 
- 	caifd = kzalloc(sizeof(*caifd), GFP_KERNEL);
- 	if (!caifd)
-@@ -112,7 +109,7 @@ static struct caif_device_entry *caif_get(struct net_device *dev)
- 	struct caif_device_entry_list *caifdevs =
- 	    caif_device_list(dev_net(dev));
- 	struct caif_device_entry *caifd;
--	BUG_ON(!caifdevs);
-+
- 	list_for_each_entry_rcu(caifd, &caifdevs->list, list) {
- 		if (caifd->netdev == dev)
- 			return caifd;
-@@ -353,7 +350,7 @@ static struct notifier_block caif_device_notifier = {
- static int caif_init_net(struct net *net)
- {
- 	struct caif_net *caifn = net_generic(net, caif_net_id);
--	BUG_ON(!caifn);
-+
- 	INIT_LIST_HEAD(&caifn->caifdevs.list);
- 	mutex_init(&caifn->caifdevs.lock);
- 
-@@ -418,7 +415,7 @@ static int __init caif_device_init(void)
- {
- 	int result;
- 
--	result = register_pernet_device(&caif_net_ops);
-+	result = register_pernet_subsys(&caif_net_ops);
- 
- 	if (result)
- 		return result;
-@@ -431,7 +428,7 @@ static int __init caif_device_init(void)
- 
- static void __exit caif_device_exit(void)
- {
--	unregister_pernet_device(&caif_net_ops);
-+	unregister_pernet_subsys(&caif_net_ops);
- 	unregister_netdevice_notifier(&caif_device_notifier);
- 	dev_remove_pack(&caif_packet_type);
- }
-diff --git a/net/caif/cfcnfg.c b/net/caif/cfcnfg.c
-index 00523ec..86ff37c 100644
---- a/net/caif/cfcnfg.c
-+++ b/net/caif/cfcnfg.c
-@@ -309,7 +309,6 @@ int caif_connect_client(struct net *net, struct caif_connect_request *conn_req,
- 	int err;
- 	struct cfctrl_link_param param;
- 	struct cfcnfg *cfg = get_cfcnfg(net);
--	caif_assert(cfg != NULL);
- 
- 	rcu_read_lock();
- 	err = caif_connect_req_to_link_param(cfg, conn_req, &param);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0072-af_unix-fix-EPOLLET-regression-for-stream-sockets.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0072-af_unix-fix-EPOLLET-regression-for-stream-sockets.patch
deleted file mode 100644
index 6f0d313..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0072-af_unix-fix-EPOLLET-regression-for-stream-sockets.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From 6e647cfa06847144087b67d0f64a79a624a80276 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Sat, 28 Jan 2012 16:11:03 +0000
-Subject: [PATCH 72/90] af_unix: fix EPOLLET regression for stream sockets
-
-[ Upstream commit 6f01fd6e6f6809061b56e78f1e8d143099716d70 ]
-
-Commit 0884d7aa24 (AF_UNIX: Fix poll blocking problem when reading from
-a stream socket) added a regression for epoll() in Edge Triggered mode
-(EPOLLET)
-
-Appropriate fix is to use skb_peek()/skb_unlink() instead of
-skb_dequeue(), and only call skb_unlink() when skb is fully consumed.
-
-This remove the need to requeue a partial skb into sk_receive_queue head
-and the extra sk->sk_data_ready() calls that added the regression.
-
-This is safe because once skb is given to sk_receive_queue, it is not
-modified by a writer, and readers are serialized by u->readlock mutex.
-
-This also reduce number of spinlock acquisition for small reads or
-MSG_PEEK users so should improve overall performance.
-
-Reported-by: Nick Mathewson <nickm at freehaven.net>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Alexey Moiseytsev <himeraster at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/unix/af_unix.c |   19 ++++---------------
- 1 file changed, 4 insertions(+), 15 deletions(-)
-
-diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
-index b595a3d..d99678a 100644
---- a/net/unix/af_unix.c
-+++ b/net/unix/af_unix.c
-@@ -1915,7 +1915,7 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
- 		struct sk_buff *skb;
- 
- 		unix_state_lock(sk);
--		skb = skb_dequeue(&sk->sk_receive_queue);
-+		skb = skb_peek(&sk->sk_receive_queue);
- 		if (skb == NULL) {
- 			unix_sk(sk)->recursion_level = 0;
- 			if (copied >= target)
-@@ -1955,11 +1955,8 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
- 		if (check_creds) {
- 			/* Never glue messages from different writers */
- 			if ((UNIXCB(skb).pid  != siocb->scm->pid) ||
--			    (UNIXCB(skb).cred != siocb->scm->cred)) {
--				skb_queue_head(&sk->sk_receive_queue, skb);
--				sk->sk_data_ready(sk, skb->len);
-+			    (UNIXCB(skb).cred != siocb->scm->cred))
- 				break;
--			}
- 		} else {
- 			/* Copy credentials */
- 			scm_set_cred(siocb->scm, UNIXCB(skb).pid, UNIXCB(skb).cred);
-@@ -1974,8 +1971,6 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
- 
- 		chunk = min_t(unsigned int, skb->len, size);
- 		if (memcpy_toiovec(msg->msg_iov, skb->data, chunk)) {
--			skb_queue_head(&sk->sk_receive_queue, skb);
--			sk->sk_data_ready(sk, skb->len);
- 			if (copied == 0)
- 				copied = -EFAULT;
- 			break;
-@@ -1990,13 +1985,10 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
- 			if (UNIXCB(skb).fp)
- 				unix_detach_fds(siocb->scm, skb);
- 
--			/* put the skb back if we didn't use it up.. */
--			if (skb->len) {
--				skb_queue_head(&sk->sk_receive_queue, skb);
--				sk->sk_data_ready(sk, skb->len);
-+			if (skb->len)
- 				break;
--			}
- 
-+			skb_unlink(skb, &sk->sk_receive_queue);
- 			consume_skb(skb);
- 
- 			if (siocb->scm->fp)
-@@ -2007,9 +1999,6 @@ static int unix_stream_recvmsg(struct kiocb *iocb, struct socket *sock,
- 			if (UNIXCB(skb).fp)
- 				siocb->scm->fp = scm_fp_dup(UNIXCB(skb).fp);
- 
--			/* put message back and return */
--			skb_queue_head(&sk->sk_receive_queue, skb);
--			sk->sk_data_ready(sk, skb->len);
- 			break;
- 		}
- 	} while (size);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0073-bonding-fix-enslaving-in-alb-mode-when-link-down.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0073-bonding-fix-enslaving-in-alb-mode-when-link-down.patch
deleted file mode 100644
index 515b20e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0073-bonding-fix-enslaving-in-alb-mode-when-link-down.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 427c99e97dad5ee1eca57e371d59ab875ca0d5fd Mon Sep 17 00:00:00 2001
-From: Jiri Bohac <jbohac at suse.cz>
-Date: Wed, 18 Jan 2012 12:24:54 +0000
-Subject: [PATCH 73/90] bonding: fix enslaving in alb mode when link down
-
-[ Upstream commit b924551bed09f61b64f21bffe241afc5526b091a ]
-
-bond_alb_init_slave() is called from bond_enslave() and sets the slave's MAC
-address. This is done differently for TLB and ALB modes.
-bond->alb_info.rlb_enabled is used to discriminate between the two modes but
-this flag may be uninitialized if the slave is being enslaved prior to calling
-bond_open() -> bond_alb_initialize() on the master.
-
-It turns out all the callers of alb_set_slave_mac_addr() pass
-bond->alb_info.rlb_enabled as the hw parameter.
-
-This patch cleans up the unnecessary parameter of alb_set_slave_mac_addr() and
-makes the function decide based on the bonding mode instead, which fixes the
-above problem.
-
-Reported-by: Narendra K <Narendra_K at Dell.com>
-Signed-off-by: Jiri Bohac <jbohac at suse.cz>
-Signed-off-by: Jay Vosburgh <fubar at us.ibm.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/bonding/bond_alb.c |   27 +++++++++------------------
- 1 file changed, 9 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/net/bonding/bond_alb.c b/drivers/net/bonding/bond_alb.c
-index 106b88a..30431d8 100644
---- a/drivers/net/bonding/bond_alb.c
-+++ b/drivers/net/bonding/bond_alb.c
-@@ -871,16 +871,12 @@ static void alb_send_learning_packets(struct slave *slave, u8 mac_addr[])
- 	}
- }
- 
--/* hw is a boolean parameter that determines whether we should try and
-- * set the hw address of the device as well as the hw address of the
-- * net_device
-- */
--static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[], int hw)
-+static int alb_set_slave_mac_addr(struct slave *slave, u8 addr[])
- {
- 	struct net_device *dev = slave->dev;
- 	struct sockaddr s_addr;
- 
--	if (!hw) {
-+	if (slave->bond->params.mode == BOND_MODE_TLB) {
- 		memcpy(dev->dev_addr, addr, dev->addr_len);
- 		return 0;
- 	}
-@@ -910,8 +906,8 @@ static void alb_swap_mac_addr(struct bonding *bond, struct slave *slave1, struct
- 	u8 tmp_mac_addr[ETH_ALEN];
- 
- 	memcpy(tmp_mac_addr, slave1->dev->dev_addr, ETH_ALEN);
--	alb_set_slave_mac_addr(slave1, slave2->dev->dev_addr, bond->alb_info.rlb_enabled);
--	alb_set_slave_mac_addr(slave2, tmp_mac_addr, bond->alb_info.rlb_enabled);
-+	alb_set_slave_mac_addr(slave1, slave2->dev->dev_addr);
-+	alb_set_slave_mac_addr(slave2, tmp_mac_addr);
- 
- }
- 
-@@ -1058,8 +1054,7 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav
- 
- 		/* Try setting slave mac to bond address and fall-through
- 		   to code handling that situation below... */
--		alb_set_slave_mac_addr(slave, bond->dev->dev_addr,
--				       bond->alb_info.rlb_enabled);
-+		alb_set_slave_mac_addr(slave, bond->dev->dev_addr);
- 	}
- 
- 	/* The slave's address is equal to the address of the bond.
-@@ -1095,8 +1090,7 @@ static int alb_handle_addr_collision_on_attach(struct bonding *bond, struct slav
- 	}
- 
- 	if (free_mac_slave) {
--		alb_set_slave_mac_addr(slave, free_mac_slave->perm_hwaddr,
--				       bond->alb_info.rlb_enabled);
-+		alb_set_slave_mac_addr(slave, free_mac_slave->perm_hwaddr);
- 
- 		pr_warning("%s: Warning: the hw address of slave %s is in use by the bond; giving it the hw address of %s\n",
- 			   bond->dev->name, slave->dev->name,
-@@ -1451,8 +1445,7 @@ int bond_alb_init_slave(struct bonding *bond, struct slave *slave)
- {
- 	int res;
- 
--	res = alb_set_slave_mac_addr(slave, slave->perm_hwaddr,
--				     bond->alb_info.rlb_enabled);
-+	res = alb_set_slave_mac_addr(slave, slave->perm_hwaddr);
- 	if (res) {
- 		return res;
- 	}
-@@ -1603,8 +1596,7 @@ void bond_alb_handle_active_change(struct bonding *bond, struct slave *new_slave
- 		alb_swap_mac_addr(bond, swap_slave, new_slave);
- 	} else {
- 		/* set the new_slave to the bond mac address */
--		alb_set_slave_mac_addr(new_slave, bond->dev->dev_addr,
--				       bond->alb_info.rlb_enabled);
-+		alb_set_slave_mac_addr(new_slave, bond->dev->dev_addr);
- 	}
- 
- 	if (swap_slave) {
-@@ -1664,8 +1656,7 @@ int bond_alb_set_mac_address(struct net_device *bond_dev, void *addr)
- 		alb_swap_mac_addr(bond, swap_slave, bond->curr_active_slave);
- 		alb_fasten_mac_swap(bond, swap_slave, bond->curr_active_slave);
- 	} else {
--		alb_set_slave_mac_addr(bond->curr_active_slave, bond_dev->dev_addr,
--				       bond->alb_info.rlb_enabled);
-+		alb_set_slave_mac_addr(bond->curr_active_slave, bond_dev->dev_addr);
- 
- 		read_lock(&bond->lock);
- 		alb_send_learning_packets(bond->curr_active_slave, bond_dev->dev_addr);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0074-l2tp-l2tp_ip-fix-possible-oops-on-packet-receive.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0074-l2tp-l2tp_ip-fix-possible-oops-on-packet-receive.patch
deleted file mode 100644
index c21dba2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0074-l2tp-l2tp_ip-fix-possible-oops-on-packet-receive.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 2b3e48834b8686d2ac56f2557e7f98b39d05a205 Mon Sep 17 00:00:00 2001
-From: James Chapman <jchapman at katalix.com>
-Date: Wed, 25 Jan 2012 02:39:05 +0000
-Subject: [PATCH 74/90] l2tp: l2tp_ip - fix possible oops on packet receive
-
-[ Upstream commit 68315801dbf3ab2001679fd2074c9dc5dcf87dfa ]
-
-When a packet is received on an L2TP IP socket (L2TPv3 IP link
-encapsulation), the l2tpip socket's backlog_rcv function calls
-xfrm4_policy_check(). This is not necessary, since it was called
-before the skb was added to the backlog. With CONFIG_NET_NS enabled,
-xfrm4_policy_check() will oops if skb->dev is null, so this trivial
-patch removes the call.
-
-This bug has always been present, but only when CONFIG_NET_NS is
-enabled does it cause problems. Most users are probably using UDP
-encapsulation for L2TP, hence the problem has only recently
-surfaced.
-
-EIP: 0060:[<c12bb62b>] EFLAGS: 00210246 CPU: 0
-EIP is at l2tp_ip_recvmsg+0xd4/0x2a7
-EAX: 00000001 EBX: d77b5180 ECX: 00000000 EDX: 00200246
-ESI: 00000000 EDI: d63cbd30 EBP: d63cbd18 ESP: d63cbcf4
- DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
-Call Trace:
- [<c1218568>] sock_common_recvmsg+0x31/0x46
- [<c1215c92>] __sock_recvmsg_nosec+0x45/0x4d
- [<c12163a1>] __sock_recvmsg+0x31/0x3b
- [<c1216828>] sock_recvmsg+0x96/0xab
- [<c10b2693>] ? might_fault+0x47/0x81
- [<c10b2693>] ? might_fault+0x47/0x81
- [<c1167fd0>] ? _copy_from_user+0x31/0x115
- [<c121e8c8>] ? copy_from_user+0x8/0xa
- [<c121ebd6>] ? verify_iovec+0x3e/0x78
- [<c1216604>] __sys_recvmsg+0x10a/0x1aa
- [<c1216792>] ? sock_recvmsg+0x0/0xab
- [<c105a99b>] ? __lock_acquire+0xbdf/0xbee
- [<c12d5a99>] ? do_page_fault+0x193/0x375
- [<c10d1200>] ? fcheck_files+0x9b/0xca
- [<c10d1259>] ? fget_light+0x2a/0x9c
- [<c1216bbb>] sys_recvmsg+0x2b/0x43
- [<c1218145>] sys_socketcall+0x16d/0x1a5
- [<c11679f0>] ? trace_hardirqs_on_thunk+0xc/0x10
- [<c100305f>] sysenter_do_call+0x12/0x38
-Code: c6 05 8c ea a8 c1 01 e8 0c d4 d9 ff 85 f6 74 07 3e ff 86 80 00 00 00 b9 17 b6 2b c1 ba 01 00 00 00 b8 78 ed 48 c1 e8 23 f6 d9 ff <ff> 76 0c 68 28 e3 30 c1 68 2d 44 41 c1 e8 89 57 01 00 83 c4 0c
-
-Signed-off-by: James Chapman <jchapman at katalix.com>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/l2tp/l2tp_ip.c |    5 -----
- 1 file changed, 5 deletions(-)
-
-diff --git a/net/l2tp/l2tp_ip.c b/net/l2tp/l2tp_ip.c
-index d21e7eb..55670ec 100644
---- a/net/l2tp/l2tp_ip.c
-+++ b/net/l2tp/l2tp_ip.c
-@@ -393,11 +393,6 @@ static int l2tp_ip_backlog_recv(struct sock *sk, struct sk_buff *skb)
- {
- 	int rc;
- 
--	if (!xfrm4_policy_check(sk, XFRM_POLICY_IN, skb))
--		goto drop;
--
--	nf_reset(skb);
--
- 	/* Charge it to the socket, dropping if the queue is full. */
- 	rc = sock_queue_rcv_skb(sk, skb);
- 	if (rc < 0)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0075-macvlan-fix-a-possible-use-after-free.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0075-macvlan-fix-a-possible-use-after-free.patch
deleted file mode 100644
index 6aa4637..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0075-macvlan-fix-a-possible-use-after-free.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 892744cc06067dc7d8f2ebfc84e12c907973ffa9 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Mon, 23 Jan 2012 05:38:59 +0000
-Subject: [PATCH 75/90] macvlan: fix a possible use after free
-
-[ Upstream commit 4ec7ac1203bcf21f5e3d977c9818b1a56c9ef40d ]
-
-Commit bc416d9768 (macvlan: handle fragmented multicast frames) added a
-possible use after free in macvlan_handle_frame(), since
-ip_check_defrag() uses pskb_may_pull() : skb header can be reallocated.
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Ben Greear <greearb at candelatech.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/macvlan.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/macvlan.c b/drivers/net/macvlan.c
-index 7413497..959d448 100644
---- a/drivers/net/macvlan.c
-+++ b/drivers/net/macvlan.c
-@@ -172,6 +172,7 @@ static rx_handler_result_t macvlan_handle_frame(struct sk_buff **pskb)
- 		skb = ip_check_defrag(skb, IP_DEFRAG_MACVLAN);
- 		if (!skb)
- 			return RX_HANDLER_CONSUMED;
-+		eth = eth_hdr(skb);
- 		src = macvlan_hash_lookup(port, eth->h_source);
- 		if (!src)
- 			/* frame comes from an external address */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0076-net-bpf_jit-fix-divide-by-0-generation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0076-net-bpf_jit-fix-divide-by-0-generation.patch
deleted file mode 100644
index 1080715..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0076-net-bpf_jit-fix-divide-by-0-generation.patch
+++ /dev/null
@@ -1,129 +0,0 @@
-From 2f2b39355ba0c612927fbf28328480f0b3cef853 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Wed, 18 Jan 2012 07:21:42 +0000
-Subject: [PATCH 76/90] net: bpf_jit: fix divide by 0 generation
-
-[ Upstream commit d00a9dd21bdf7908b70866794c8313ee8a5abd5c ]
-
-Several problems fixed in this patch :
-
-1) Target of the conditional jump in case a divide by 0 is performed
-   by a bpf is wrong.
-
-2) Must 'generate' the full function prologue/epilogue at pass=0,
-   or else we can stop too early in pass=1 if the proglen doesnt change.
-   (if the increase of prologue/epilogue equals decrease of all
-    instructions length because some jumps are converted to near jumps)
-
-3) Change the wrong length detection at the end of code generation to
-   issue a more explicit message, no need for a full stack trace.
-
-Reported-by: Phil Oester <kernel at linuxace.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/net/bpf_jit_comp.c |   36 ++++++++++++++++++++++--------------
- 1 file changed, 22 insertions(+), 14 deletions(-)
-
-diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c
-index 7b65f75..7c1b765 100644
---- a/arch/x86/net/bpf_jit_comp.c
-+++ b/arch/x86/net/bpf_jit_comp.c
-@@ -151,17 +151,18 @@ void bpf_jit_compile(struct sk_filter *fp)
- 	cleanup_addr = proglen; /* epilogue address */
- 
- 	for (pass = 0; pass < 10; pass++) {
-+		u8 seen_or_pass0 = (pass == 0) ? (SEEN_XREG | SEEN_DATAREF | SEEN_MEM) : seen;
- 		/* no prologue/epilogue for trivial filters (RET something) */
- 		proglen = 0;
- 		prog = temp;
- 
--		if (seen) {
-+		if (seen_or_pass0) {
- 			EMIT4(0x55, 0x48, 0x89, 0xe5); /* push %rbp; mov %rsp,%rbp */
- 			EMIT4(0x48, 0x83, 0xec, 96);	/* subq  $96,%rsp	*/
- 			/* note : must save %rbx in case bpf_error is hit */
--			if (seen & (SEEN_XREG | SEEN_DATAREF))
-+			if (seen_or_pass0 & (SEEN_XREG | SEEN_DATAREF))
- 				EMIT4(0x48, 0x89, 0x5d, 0xf8); /* mov %rbx, -8(%rbp) */
--			if (seen & SEEN_XREG)
-+			if (seen_or_pass0 & SEEN_XREG)
- 				CLEAR_X(); /* make sure we dont leek kernel memory */
- 
- 			/*
-@@ -170,7 +171,7 @@ void bpf_jit_compile(struct sk_filter *fp)
- 			 *  r9 = skb->len - skb->data_len
- 			 *  r8 = skb->data
- 			 */
--			if (seen & SEEN_DATAREF) {
-+			if (seen_or_pass0 & SEEN_DATAREF) {
- 				if (offsetof(struct sk_buff, len) <= 127)
- 					/* mov    off8(%rdi),%r9d */
- 					EMIT4(0x44, 0x8b, 0x4f, offsetof(struct sk_buff, len));
-@@ -260,9 +261,14 @@ void bpf_jit_compile(struct sk_filter *fp)
- 			case BPF_S_ALU_DIV_X: /* A /= X; */
- 				seen |= SEEN_XREG;
- 				EMIT2(0x85, 0xdb);	/* test %ebx,%ebx */
--				if (pc_ret0 != -1)
--					EMIT_COND_JMP(X86_JE, addrs[pc_ret0] - (addrs[i] - 4));
--				else {
-+				if (pc_ret0 > 0) {
-+					/* addrs[pc_ret0 - 1] is start address of target
-+					 * (addrs[i] - 4) is the address following this jmp
-+					 * ("xor %edx,%edx; div %ebx" being 4 bytes long)
-+					 */
-+					EMIT_COND_JMP(X86_JE, addrs[pc_ret0 - 1] -
-+								(addrs[i] - 4));
-+				} else {
- 					EMIT_COND_JMP(X86_JNE, 2 + 5);
- 					CLEAR_A();
- 					EMIT1_off32(0xe9, cleanup_addr - (addrs[i] - 4)); /* jmp .+off32 */
-@@ -335,12 +341,12 @@ void bpf_jit_compile(struct sk_filter *fp)
- 				}
- 				/* fallinto */
- 			case BPF_S_RET_A:
--				if (seen) {
-+				if (seen_or_pass0) {
- 					if (i != flen - 1) {
- 						EMIT_JMP(cleanup_addr - addrs[i]);
- 						break;
- 					}
--					if (seen & SEEN_XREG)
-+					if (seen_or_pass0 & SEEN_XREG)
- 						EMIT4(0x48, 0x8b, 0x5d, 0xf8);  /* mov  -8(%rbp),%rbx */
- 					EMIT1(0xc9);		/* leaveq */
- 				}
-@@ -483,8 +489,9 @@ common_load:			seen |= SEEN_DATAREF;
- 				goto common_load;
- 			case BPF_S_LDX_B_MSH:
- 				if ((int)K < 0) {
--					if (pc_ret0 != -1) {
--						EMIT_JMP(addrs[pc_ret0] - addrs[i]);
-+					if (pc_ret0 > 0) {
-+						/* addrs[pc_ret0 - 1] is the start address */
-+						EMIT_JMP(addrs[pc_ret0 - 1] - addrs[i]);
- 						break;
- 					}
- 					CLEAR_A();
-@@ -599,13 +606,14 @@ cond_branch:			f_offset = addrs[i + filter[i].jf] - addrs[i];
- 		 * use it to give the cleanup instruction(s) addr
- 		 */
- 		cleanup_addr = proglen - 1; /* ret */
--		if (seen)
-+		if (seen_or_pass0)
- 			cleanup_addr -= 1; /* leaveq */
--		if (seen & SEEN_XREG)
-+		if (seen_or_pass0 & SEEN_XREG)
- 			cleanup_addr -= 4; /* mov  -8(%rbp),%rbx */
- 
- 		if (image) {
--			WARN_ON(proglen != oldproglen);
-+			if (proglen != oldproglen)
-+				pr_err("bpb_jit_compile proglen=%u != oldproglen=%u\n", proglen, oldproglen);
- 			break;
- 		}
- 		if (proglen == oldproglen) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0077-net-reintroduce-missing-rcu_assign_pointer-calls.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0077-net-reintroduce-missing-rcu_assign_pointer-calls.patch
deleted file mode 100644
index b6c614b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0077-net-reintroduce-missing-rcu_assign_pointer-calls.patch
+++ /dev/null
@@ -1,703 +0,0 @@
-From 81a5e4309ff6da37314319509f11110649d9446e Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Thu, 12 Jan 2012 04:41:32 +0000
-Subject: [PATCH 77/90] net: reintroduce missing rcu_assign_pointer() calls
-
-[ Upstream commit cf778b00e96df6d64f8e21b8395d1f8a859ecdc7 ]
-
-commit a9b3cd7f32 (rcu: convert uses of rcu_assign_pointer(x, NULL) to
-RCU_INIT_POINTER) did a lot of incorrect changes, since it did a
-complete conversion of rcu_assign_pointer(x, y) to RCU_INIT_POINTER(x,
-y).
-
-We miss needed barriers, even on x86, when y is not NULL.
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-CC: Stephen Hemminger <shemminger at vyatta.com>
-CC: Paul E. McKenney <paulmck at linux.vnet.ibm.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/net-sysfs.c                 |    6 +++---
- net/core/netpoll.c                   |    2 +-
- net/decnet/dn_dev.c                  |    4 ++--
- net/ipv4/devinet.c                   |    2 +-
- net/ipv4/fib_trie.c                  |   10 +++++-----
- net/ipv4/igmp.c                      |    8 ++++----
- net/ipv4/ipip.c                      |    8 ++++----
- net/ipv4/ipmr.c                      |    2 +-
- net/ipv6/addrconf.c                  |    2 +-
- net/ipv6/ip6_tunnel.c                |    8 ++++----
- net/ipv6/raw.c                       |    2 +-
- net/ipv6/sit.c                       |   10 +++++-----
- net/mac80211/agg-rx.c                |    2 +-
- net/mac80211/cfg.c                   |    4 ++--
- net/mac80211/ibss.c                  |    2 +-
- net/mac80211/sta_info.c              |    6 +++---
- net/netfilter/nf_conntrack_core.c    |    2 +-
- net/netfilter/nf_conntrack_ecache.c  |    4 ++--
- net/netfilter/nf_conntrack_extend.c  |    2 +-
- net/netfilter/nf_conntrack_helper.c  |    2 +-
- net/netfilter/nf_conntrack_netlink.c |    2 +-
- net/netfilter/nf_log.c               |    6 +++---
- net/netfilter/nf_queue.c             |    2 +-
- net/netfilter/nfnetlink.c            |    4 ++--
- net/netlabel/netlabel_domainhash.c   |    4 ++--
- net/netlabel/netlabel_unlabeled.c    |    6 ++----
- net/phonet/af_phonet.c               |    2 +-
- net/phonet/pn_dev.c                  |    2 +-
- net/phonet/socket.c                  |    2 +-
- net/socket.c                         |    2 +-
- net/sunrpc/auth_gss/auth_gss.c       |    2 +-
- net/xfrm/xfrm_user.c                 |    2 +-
- 32 files changed, 61 insertions(+), 63 deletions(-)
-
-diff --git a/net/core/net-sysfs.c b/net/core/net-sysfs.c
-index 385aefe..0329404 100644
---- a/net/core/net-sysfs.c
-+++ b/net/core/net-sysfs.c
-@@ -990,9 +990,9 @@ static ssize_t store_xps_map(struct netdev_queue *queue,
- 			nonempty = 1;
- 	}
- 
--	if (nonempty)
--		RCU_INIT_POINTER(dev->xps_maps, new_dev_maps);
--	else {
-+	if (nonempty) {
-+		rcu_assign_pointer(dev->xps_maps, new_dev_maps);
-+	} else {
- 		kfree(new_dev_maps);
- 		RCU_INIT_POINTER(dev->xps_maps, NULL);
- 	}
-diff --git a/net/core/netpoll.c b/net/core/netpoll.c
-index cf64c1f..5d4d896 100644
---- a/net/core/netpoll.c
-+++ b/net/core/netpoll.c
-@@ -763,7 +763,7 @@ int __netpoll_setup(struct netpoll *np)
- 	}
- 
- 	/* last thing to do is link it to the net device structure */
--	RCU_INIT_POINTER(ndev->npinfo, npinfo);
-+	rcu_assign_pointer(ndev->npinfo, npinfo);
- 
- 	return 0;
- 
-diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
-index 2ab16e1..74d321a 100644
---- a/net/decnet/dn_dev.c
-+++ b/net/decnet/dn_dev.c
-@@ -388,7 +388,7 @@ static int dn_dev_insert_ifa(struct dn_dev *dn_db, struct dn_ifaddr *ifa)
- 	}
- 
- 	ifa->ifa_next = dn_db->ifa_list;
--	RCU_INIT_POINTER(dn_db->ifa_list, ifa);
-+	rcu_assign_pointer(dn_db->ifa_list, ifa);
- 
- 	dn_ifaddr_notify(RTM_NEWADDR, ifa);
- 	blocking_notifier_call_chain(&dnaddr_chain, NETDEV_UP, ifa);
-@@ -1093,7 +1093,7 @@ static struct dn_dev *dn_dev_create(struct net_device *dev, int *err)
- 
- 	memcpy(&dn_db->parms, p, sizeof(struct dn_dev_parms));
- 
--	RCU_INIT_POINTER(dev->dn_ptr, dn_db);
-+	rcu_assign_pointer(dev->dn_ptr, dn_db);
- 	dn_db->dev = dev;
- 	init_timer(&dn_db->timer);
- 
-diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
-index 65f01dc..e41c40f 100644
---- a/net/ipv4/devinet.c
-+++ b/net/ipv4/devinet.c
-@@ -258,7 +258,7 @@ static struct in_device *inetdev_init(struct net_device *dev)
- 		ip_mc_up(in_dev);
- 
- 	/* we can receive as soon as ip_ptr is set -- do this last */
--	RCU_INIT_POINTER(dev->ip_ptr, in_dev);
-+	rcu_assign_pointer(dev->ip_ptr, in_dev);
- out:
- 	return in_dev;
- out_kfree:
-diff --git a/net/ipv4/fib_trie.c b/net/ipv4/fib_trie.c
-index 37b6711..3ce23f9 100644
---- a/net/ipv4/fib_trie.c
-+++ b/net/ipv4/fib_trie.c
-@@ -205,7 +205,7 @@ static inline struct tnode *node_parent_rcu(const struct rt_trie_node *node)
- 	return (struct tnode *)(parent & ~NODE_TYPE_MASK);
- }
- 
--/* Same as RCU_INIT_POINTER
-+/* Same as rcu_assign_pointer
-  * but that macro() assumes that value is a pointer.
-  */
- static inline void node_set_parent(struct rt_trie_node *node, struct tnode *ptr)
-@@ -529,7 +529,7 @@ static void tnode_put_child_reorg(struct tnode *tn, int i, struct rt_trie_node *
- 	if (n)
- 		node_set_parent(n, tn);
- 
--	RCU_INIT_POINTER(tn->child[i], n);
-+	rcu_assign_pointer(tn->child[i], n);
- }
- 
- #define MAX_WORK 10
-@@ -1015,7 +1015,7 @@ static void trie_rebalance(struct trie *t, struct tnode *tn)
- 
- 		tp = node_parent((struct rt_trie_node *) tn);
- 		if (!tp)
--			RCU_INIT_POINTER(t->trie, (struct rt_trie_node *)tn);
-+			rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn);
- 
- 		tnode_free_flush();
- 		if (!tp)
-@@ -1027,7 +1027,7 @@ static void trie_rebalance(struct trie *t, struct tnode *tn)
- 	if (IS_TNODE(tn))
- 		tn = (struct tnode *)resize(t, (struct tnode *)tn);
- 
--	RCU_INIT_POINTER(t->trie, (struct rt_trie_node *)tn);
-+	rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn);
- 	tnode_free_flush();
- }
- 
-@@ -1164,7 +1164,7 @@ static struct list_head *fib_insert_node(struct trie *t, u32 key, int plen)
- 			put_child(t, (struct tnode *)tp, cindex,
- 				  (struct rt_trie_node *)tn);
- 		} else {
--			RCU_INIT_POINTER(t->trie, (struct rt_trie_node *)tn);
-+			rcu_assign_pointer(t->trie, (struct rt_trie_node *)tn);
- 			tp = tn;
- 		}
- 	}
-diff --git a/net/ipv4/igmp.c b/net/ipv4/igmp.c
-index c3cc64c..c8989a7 100644
---- a/net/ipv4/igmp.c
-+++ b/net/ipv4/igmp.c
-@@ -1244,7 +1244,7 @@ void ip_mc_inc_group(struct in_device *in_dev, __be32 addr)
- 
- 	im->next_rcu = in_dev->mc_list;
- 	in_dev->mc_count++;
--	RCU_INIT_POINTER(in_dev->mc_list, im);
-+	rcu_assign_pointer(in_dev->mc_list, im);
- 
- #ifdef CONFIG_IP_MULTICAST
- 	igmpv3_del_delrec(in_dev, im->multiaddr);
-@@ -1816,7 +1816,7 @@ int ip_mc_join_group(struct sock *sk , struct ip_mreqn *imr)
- 	iml->next_rcu = inet->mc_list;
- 	iml->sflist = NULL;
- 	iml->sfmode = MCAST_EXCLUDE;
--	RCU_INIT_POINTER(inet->mc_list, iml);
-+	rcu_assign_pointer(inet->mc_list, iml);
- 	ip_mc_inc_group(in_dev, addr);
- 	err = 0;
- done:
-@@ -2003,7 +2003,7 @@ int ip_mc_source(int add, int omode, struct sock *sk, struct
- 			atomic_sub(IP_SFLSIZE(psl->sl_max), &sk->sk_omem_alloc);
- 			kfree_rcu(psl, rcu);
- 		}
--		RCU_INIT_POINTER(pmc->sflist, newpsl);
-+		rcu_assign_pointer(pmc->sflist, newpsl);
- 		psl = newpsl;
- 	}
- 	rv = 1;	/* > 0 for insert logic below if sl_count is 0 */
-@@ -2106,7 +2106,7 @@ int ip_mc_msfilter(struct sock *sk, struct ip_msfilter *msf, int ifindex)
- 	} else
- 		(void) ip_mc_del_src(in_dev, &msf->imsf_multiaddr, pmc->sfmode,
- 			0, NULL, 0);
--	RCU_INIT_POINTER(pmc->sflist, newpsl);
-+	rcu_assign_pointer(pmc->sflist, newpsl);
- 	pmc->sfmode = msf->imsf_fmode;
- 	err = 0;
- done:
-diff --git a/net/ipv4/ipip.c b/net/ipv4/ipip.c
-index 0b2e732..17ad951 100644
---- a/net/ipv4/ipip.c
-+++ b/net/ipv4/ipip.c
-@@ -231,7 +231,7 @@ static void ipip_tunnel_unlink(struct ipip_net *ipn, struct ip_tunnel *t)
- 	     (iter = rtnl_dereference(*tp)) != NULL;
- 	     tp = &iter->next) {
- 		if (t == iter) {
--			RCU_INIT_POINTER(*tp, t->next);
-+			rcu_assign_pointer(*tp, t->next);
- 			break;
- 		}
- 	}
-@@ -241,8 +241,8 @@ static void ipip_tunnel_link(struct ipip_net *ipn, struct ip_tunnel *t)
- {
- 	struct ip_tunnel __rcu **tp = ipip_bucket(ipn, t);
- 
--	RCU_INIT_POINTER(t->next, rtnl_dereference(*tp));
--	RCU_INIT_POINTER(*tp, t);
-+	rcu_assign_pointer(t->next, rtnl_dereference(*tp));
-+	rcu_assign_pointer(*tp, t);
- }
- 
- static struct ip_tunnel * ipip_tunnel_locate(struct net *net,
-@@ -792,7 +792,7 @@ static int __net_init ipip_fb_tunnel_init(struct net_device *dev)
- 		return -ENOMEM;
- 
- 	dev_hold(dev);
--	RCU_INIT_POINTER(ipn->tunnels_wc[0], tunnel);
-+	rcu_assign_pointer(ipn->tunnels_wc[0], tunnel);
- 	return 0;
- }
- 
-diff --git a/net/ipv4/ipmr.c b/net/ipv4/ipmr.c
-index 76a7f07..d2aae27 100644
---- a/net/ipv4/ipmr.c
-+++ b/net/ipv4/ipmr.c
-@@ -1225,7 +1225,7 @@ int ip_mroute_setsockopt(struct sock *sk, int optname, char __user *optval, unsi
- 
- 		ret = ip_ra_control(sk, 1, mrtsock_destruct);
- 		if (ret == 0) {
--			RCU_INIT_POINTER(mrt->mroute_sk, sk);
-+			rcu_assign_pointer(mrt->mroute_sk, sk);
- 			IPV4_DEVCONF_ALL(net, MC_FORWARDING)++;
- 		}
- 		rtnl_unlock();
-diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
-index 36806de..836c4ea 100644
---- a/net/ipv6/addrconf.c
-+++ b/net/ipv6/addrconf.c
-@@ -429,7 +429,7 @@ static struct inet6_dev * ipv6_add_dev(struct net_device *dev)
- 	ndev->tstamp = jiffies;
- 	addrconf_sysctl_register(ndev);
- 	/* protected by rtnl_lock */
--	RCU_INIT_POINTER(dev->ip6_ptr, ndev);
-+	rcu_assign_pointer(dev->ip6_ptr, ndev);
- 
- 	/* Join all-node multicast group */
- 	ipv6_dev_mc_inc(dev, &in6addr_linklocal_allnodes);
-diff --git a/net/ipv6/ip6_tunnel.c b/net/ipv6/ip6_tunnel.c
-index 4e2e9ff..d19f499 100644
---- a/net/ipv6/ip6_tunnel.c
-+++ b/net/ipv6/ip6_tunnel.c
-@@ -218,8 +218,8 @@ ip6_tnl_link(struct ip6_tnl_net *ip6n, struct ip6_tnl *t)
- {
- 	struct ip6_tnl __rcu **tp = ip6_tnl_bucket(ip6n, &t->parms);
- 
--	RCU_INIT_POINTER(t->next , rtnl_dereference(*tp));
--	RCU_INIT_POINTER(*tp, t);
-+	rcu_assign_pointer(t->next , rtnl_dereference(*tp));
-+	rcu_assign_pointer(*tp, t);
- }
- 
- /**
-@@ -237,7 +237,7 @@ ip6_tnl_unlink(struct ip6_tnl_net *ip6n, struct ip6_tnl *t)
- 	     (iter = rtnl_dereference(*tp)) != NULL;
- 	     tp = &iter->next) {
- 		if (t == iter) {
--			RCU_INIT_POINTER(*tp, t->next);
-+			rcu_assign_pointer(*tp, t->next);
- 			break;
- 		}
- 	}
-@@ -1450,7 +1450,7 @@ static int __net_init ip6_fb_tnl_dev_init(struct net_device *dev)
- 
- 	t->parms.proto = IPPROTO_IPV6;
- 	dev_hold(dev);
--	RCU_INIT_POINTER(ip6n->tnls_wc[0], t);
-+	rcu_assign_pointer(ip6n->tnls_wc[0], t);
- 	return 0;
- }
- 
-diff --git a/net/ipv6/raw.c b/net/ipv6/raw.c
-index 331af3b..361ebf3 100644
---- a/net/ipv6/raw.c
-+++ b/net/ipv6/raw.c
-@@ -131,7 +131,7 @@ static mh_filter_t __rcu *mh_filter __read_mostly;
- 
- int rawv6_mh_filter_register(mh_filter_t filter)
- {
--	RCU_INIT_POINTER(mh_filter, filter);
-+	rcu_assign_pointer(mh_filter, filter);
- 	return 0;
- }
- EXPORT_SYMBOL(rawv6_mh_filter_register);
-diff --git a/net/ipv6/sit.c b/net/ipv6/sit.c
-index 96f3623..72a939d 100644
---- a/net/ipv6/sit.c
-+++ b/net/ipv6/sit.c
-@@ -182,7 +182,7 @@ static void ipip6_tunnel_unlink(struct sit_net *sitn, struct ip_tunnel *t)
- 	     (iter = rtnl_dereference(*tp)) != NULL;
- 	     tp = &iter->next) {
- 		if (t == iter) {
--			RCU_INIT_POINTER(*tp, t->next);
-+			rcu_assign_pointer(*tp, t->next);
- 			break;
- 		}
- 	}
-@@ -192,8 +192,8 @@ static void ipip6_tunnel_link(struct sit_net *sitn, struct ip_tunnel *t)
- {
- 	struct ip_tunnel __rcu **tp = ipip6_bucket(sitn, t);
- 
--	RCU_INIT_POINTER(t->next, rtnl_dereference(*tp));
--	RCU_INIT_POINTER(*tp, t);
-+	rcu_assign_pointer(t->next, rtnl_dereference(*tp));
-+	rcu_assign_pointer(*tp, t);
- }
- 
- static void ipip6_tunnel_clone_6rd(struct net_device *dev, struct sit_net *sitn)
-@@ -393,7 +393,7 @@ ipip6_tunnel_add_prl(struct ip_tunnel *t, struct ip_tunnel_prl *a, int chg)
- 	p->addr = a->addr;
- 	p->flags = a->flags;
- 	t->prl_count++;
--	RCU_INIT_POINTER(t->prl, p);
-+	rcu_assign_pointer(t->prl, p);
- out:
- 	return err;
- }
-@@ -1177,7 +1177,7 @@ static int __net_init ipip6_fb_tunnel_init(struct net_device *dev)
- 	if (!dev->tstats)
- 		return -ENOMEM;
- 	dev_hold(dev);
--	RCU_INIT_POINTER(sitn->tunnels_wc[0], tunnel);
-+	rcu_assign_pointer(sitn->tunnels_wc[0], tunnel);
- 	return 0;
- }
- 
-diff --git a/net/mac80211/agg-rx.c b/net/mac80211/agg-rx.c
-index 93b2434..41c2310 100644
---- a/net/mac80211/agg-rx.c
-+++ b/net/mac80211/agg-rx.c
-@@ -326,7 +326,7 @@ void ieee80211_process_addba_request(struct ieee80211_local *local,
- 	status = WLAN_STATUS_SUCCESS;
- 
- 	/* activate it for RX */
--	RCU_INIT_POINTER(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx);
-+	rcu_assign_pointer(sta->ampdu_mlme.tid_rx[tid], tid_agg_rx);
- 
- 	if (timeout)
- 		mod_timer(&tid_agg_rx->session_timer, TU_TO_EXP_TIME(timeout));
-diff --git a/net/mac80211/cfg.c b/net/mac80211/cfg.c
-index d06c65f..11cee76 100644
---- a/net/mac80211/cfg.c
-+++ b/net/mac80211/cfg.c
-@@ -575,7 +575,7 @@ static int ieee80211_config_beacon(struct ieee80211_sub_if_data *sdata,
- 
- 	sdata->vif.bss_conf.dtim_period = new->dtim_period;
- 
--	RCU_INIT_POINTER(sdata->u.ap.beacon, new);
-+	rcu_assign_pointer(sdata->u.ap.beacon, new);
- 
- 	synchronize_rcu();
- 
-@@ -922,7 +922,7 @@ static int ieee80211_change_station(struct wiphy *wiphy,
- 				return -EBUSY;
- 			}
- 
--			RCU_INIT_POINTER(vlansdata->u.vlan.sta, sta);
-+			rcu_assign_pointer(vlansdata->u.vlan.sta, sta);
- 		}
- 
- 		sta->sdata = vlansdata;
-diff --git a/net/mac80211/ibss.c b/net/mac80211/ibss.c
-index ede9a8b..3ece106 100644
---- a/net/mac80211/ibss.c
-+++ b/net/mac80211/ibss.c
-@@ -184,7 +184,7 @@ static void __ieee80211_sta_join_ibss(struct ieee80211_sub_if_data *sdata,
- 		*pos++ = 0; /* U-APSD no in use */
- 	}
- 
--	RCU_INIT_POINTER(ifibss->presp, skb);
-+	rcu_assign_pointer(ifibss->presp, skb);
- 
- 	sdata->vif.bss_conf.beacon_int = beacon_int;
- 	sdata->vif.bss_conf.basic_rates = basic_rates;
-diff --git a/net/mac80211/sta_info.c b/net/mac80211/sta_info.c
-index 8eaa746..1fdd8ff 100644
---- a/net/mac80211/sta_info.c
-+++ b/net/mac80211/sta_info.c
-@@ -73,7 +73,7 @@ static int sta_info_hash_del(struct ieee80211_local *local,
- 	if (!s)
- 		return -ENOENT;
- 	if (s == sta) {
--		RCU_INIT_POINTER(local->sta_hash[STA_HASH(sta->sta.addr)],
-+		rcu_assign_pointer(local->sta_hash[STA_HASH(sta->sta.addr)],
- 				   s->hnext);
- 		return 0;
- 	}
-@@ -83,7 +83,7 @@ static int sta_info_hash_del(struct ieee80211_local *local,
- 		s = rcu_dereference_protected(s->hnext,
- 					lockdep_is_held(&local->sta_lock));
- 	if (rcu_access_pointer(s->hnext)) {
--		RCU_INIT_POINTER(s->hnext, sta->hnext);
-+		rcu_assign_pointer(s->hnext, sta->hnext);
- 		return 0;
- 	}
- 
-@@ -232,7 +232,7 @@ static void sta_info_hash_add(struct ieee80211_local *local,
- 			      struct sta_info *sta)
- {
- 	sta->hnext = local->sta_hash[STA_HASH(sta->sta.addr)];
--	RCU_INIT_POINTER(local->sta_hash[STA_HASH(sta->sta.addr)], sta);
-+	rcu_assign_pointer(local->sta_hash[STA_HASH(sta->sta.addr)], sta);
- }
- 
- static void sta_unblock(struct work_struct *wk)
-diff --git a/net/netfilter/nf_conntrack_core.c b/net/netfilter/nf_conntrack_core.c
-index 7202b06..1d15193 100644
---- a/net/netfilter/nf_conntrack_core.c
-+++ b/net/netfilter/nf_conntrack_core.c
-@@ -776,7 +776,7 @@ init_conntrack(struct net *net, struct nf_conn *tmpl,
- 		if (exp->helper) {
- 			help = nf_ct_helper_ext_add(ct, GFP_ATOMIC);
- 			if (help)
--				RCU_INIT_POINTER(help->helper, exp->helper);
-+				rcu_assign_pointer(help->helper, exp->helper);
- 		}
- 
- #ifdef CONFIG_NF_CONNTRACK_MARK
-diff --git a/net/netfilter/nf_conntrack_ecache.c b/net/netfilter/nf_conntrack_ecache.c
-index b62c414..14af632 100644
---- a/net/netfilter/nf_conntrack_ecache.c
-+++ b/net/netfilter/nf_conntrack_ecache.c
-@@ -91,7 +91,7 @@ int nf_conntrack_register_notifier(struct net *net,
- 		ret = -EBUSY;
- 		goto out_unlock;
- 	}
--	RCU_INIT_POINTER(net->ct.nf_conntrack_event_cb, new);
-+	rcu_assign_pointer(net->ct.nf_conntrack_event_cb, new);
- 	mutex_unlock(&nf_ct_ecache_mutex);
- 	return ret;
- 
-@@ -128,7 +128,7 @@ int nf_ct_expect_register_notifier(struct net *net,
- 		ret = -EBUSY;
- 		goto out_unlock;
- 	}
--	RCU_INIT_POINTER(net->ct.nf_expect_event_cb, new);
-+	rcu_assign_pointer(net->ct.nf_expect_event_cb, new);
- 	mutex_unlock(&nf_ct_ecache_mutex);
- 	return ret;
- 
-diff --git a/net/netfilter/nf_conntrack_extend.c b/net/netfilter/nf_conntrack_extend.c
-index 4605c94..641ff5f 100644
---- a/net/netfilter/nf_conntrack_extend.c
-+++ b/net/netfilter/nf_conntrack_extend.c
-@@ -169,7 +169,7 @@ int nf_ct_extend_register(struct nf_ct_ext_type *type)
- 	   before updating alloc_size */
- 	type->alloc_size = ALIGN(sizeof(struct nf_ct_ext), type->align)
- 			   + type->len;
--	RCU_INIT_POINTER(nf_ct_ext_types[type->id], type);
-+	rcu_assign_pointer(nf_ct_ext_types[type->id], type);
- 	update_alloc_size(type);
- out:
- 	mutex_unlock(&nf_ct_ext_type_mutex);
-diff --git a/net/netfilter/nf_conntrack_helper.c b/net/netfilter/nf_conntrack_helper.c
-index 93c4bdb..bbe23ba 100644
---- a/net/netfilter/nf_conntrack_helper.c
-+++ b/net/netfilter/nf_conntrack_helper.c
-@@ -145,7 +145,7 @@ int __nf_ct_try_assign_helper(struct nf_conn *ct, struct nf_conn *tmpl,
- 		memset(&help->help, 0, sizeof(help->help));
- 	}
- 
--	RCU_INIT_POINTER(help->helper, helper);
-+	rcu_assign_pointer(help->helper, helper);
- out:
- 	return ret;
- }
-diff --git a/net/netfilter/nf_conntrack_netlink.c b/net/netfilter/nf_conntrack_netlink.c
-index 257e772..782cdcd 100644
---- a/net/netfilter/nf_conntrack_netlink.c
-+++ b/net/netfilter/nf_conntrack_netlink.c
-@@ -1163,7 +1163,7 @@ ctnetlink_change_helper(struct nf_conn *ct, const struct nlattr * const cda[])
- 		return -EOPNOTSUPP;
- 	}
- 
--	RCU_INIT_POINTER(help->helper, helper);
-+	rcu_assign_pointer(help->helper, helper);
- 
- 	return 0;
- }
-diff --git a/net/netfilter/nf_log.c b/net/netfilter/nf_log.c
-index ce0c406..957374a 100644
---- a/net/netfilter/nf_log.c
-+++ b/net/netfilter/nf_log.c
-@@ -55,7 +55,7 @@ int nf_log_register(u_int8_t pf, struct nf_logger *logger)
- 		llog = rcu_dereference_protected(nf_loggers[pf],
- 						 lockdep_is_held(&nf_log_mutex));
- 		if (llog == NULL)
--			RCU_INIT_POINTER(nf_loggers[pf], logger);
-+			rcu_assign_pointer(nf_loggers[pf], logger);
- 	}
- 
- 	mutex_unlock(&nf_log_mutex);
-@@ -92,7 +92,7 @@ int nf_log_bind_pf(u_int8_t pf, const struct nf_logger *logger)
- 		mutex_unlock(&nf_log_mutex);
- 		return -ENOENT;
- 	}
--	RCU_INIT_POINTER(nf_loggers[pf], logger);
-+	rcu_assign_pointer(nf_loggers[pf], logger);
- 	mutex_unlock(&nf_log_mutex);
- 	return 0;
- }
-@@ -250,7 +250,7 @@ static int nf_log_proc_dostring(ctl_table *table, int write,
- 			mutex_unlock(&nf_log_mutex);
- 			return -ENOENT;
- 		}
--		RCU_INIT_POINTER(nf_loggers[tindex], logger);
-+		rcu_assign_pointer(nf_loggers[tindex], logger);
- 		mutex_unlock(&nf_log_mutex);
- 	} else {
- 		mutex_lock(&nf_log_mutex);
-diff --git a/net/netfilter/nf_queue.c b/net/netfilter/nf_queue.c
-index 99ffd28..b3a7db6 100644
---- a/net/netfilter/nf_queue.c
-+++ b/net/netfilter/nf_queue.c
-@@ -40,7 +40,7 @@ int nf_register_queue_handler(u_int8_t pf, const struct nf_queue_handler *qh)
- 	else if (old)
- 		ret = -EBUSY;
- 	else {
--		RCU_INIT_POINTER(queue_handler[pf], qh);
-+		rcu_assign_pointer(queue_handler[pf], qh);
- 		ret = 0;
- 	}
- 	mutex_unlock(&queue_handler_mutex);
-diff --git a/net/netfilter/nfnetlink.c b/net/netfilter/nfnetlink.c
-index c879c1a..b4f8d84 100644
---- a/net/netfilter/nfnetlink.c
-+++ b/net/netfilter/nfnetlink.c
-@@ -59,7 +59,7 @@ int nfnetlink_subsys_register(const struct nfnetlink_subsystem *n)
- 		nfnl_unlock();
- 		return -EBUSY;
- 	}
--	RCU_INIT_POINTER(subsys_table[n->subsys_id], n);
-+	rcu_assign_pointer(subsys_table[n->subsys_id], n);
- 	nfnl_unlock();
- 
- 	return 0;
-@@ -210,7 +210,7 @@ static int __net_init nfnetlink_net_init(struct net *net)
- 	if (!nfnl)
- 		return -ENOMEM;
- 	net->nfnl_stash = nfnl;
--	RCU_INIT_POINTER(net->nfnl, nfnl);
-+	rcu_assign_pointer(net->nfnl, nfnl);
- 	return 0;
- }
- 
-diff --git a/net/netlabel/netlabel_domainhash.c b/net/netlabel/netlabel_domainhash.c
-index 3f905e5..e5330ed 100644
---- a/net/netlabel/netlabel_domainhash.c
-+++ b/net/netlabel/netlabel_domainhash.c
-@@ -282,7 +282,7 @@ int __init netlbl_domhsh_init(u32 size)
- 		INIT_LIST_HEAD(&hsh_tbl->tbl[iter]);
- 
- 	spin_lock(&netlbl_domhsh_lock);
--	RCU_INIT_POINTER(netlbl_domhsh, hsh_tbl);
-+	rcu_assign_pointer(netlbl_domhsh, hsh_tbl);
- 	spin_unlock(&netlbl_domhsh_lock);
- 
- 	return 0;
-@@ -330,7 +330,7 @@ int netlbl_domhsh_add(struct netlbl_dom_map *entry,
- 				    &rcu_dereference(netlbl_domhsh)->tbl[bkt]);
- 		} else {
- 			INIT_LIST_HEAD(&entry->list);
--			RCU_INIT_POINTER(netlbl_domhsh_def, entry);
-+			rcu_assign_pointer(netlbl_domhsh_def, entry);
- 		}
- 
- 		if (entry->type == NETLBL_NLTYPE_ADDRSELECT) {
-diff --git a/net/netlabel/netlabel_unlabeled.c b/net/netlabel/netlabel_unlabeled.c
-index e251c2c..d463f5a 100644
---- a/net/netlabel/netlabel_unlabeled.c
-+++ b/net/netlabel/netlabel_unlabeled.c
-@@ -354,7 +354,7 @@ static struct netlbl_unlhsh_iface *netlbl_unlhsh_add_iface(int ifindex)
- 		INIT_LIST_HEAD(&iface->list);
- 		if (netlbl_unlhsh_rcu_deref(netlbl_unlhsh_def) != NULL)
- 			goto add_iface_failure;
--		RCU_INIT_POINTER(netlbl_unlhsh_def, iface);
-+		rcu_assign_pointer(netlbl_unlhsh_def, iface);
- 	}
- 	spin_unlock(&netlbl_unlhsh_lock);
- 
-@@ -1447,11 +1447,9 @@ int __init netlbl_unlabel_init(u32 size)
- 	for (iter = 0; iter < hsh_tbl->size; iter++)
- 		INIT_LIST_HEAD(&hsh_tbl->tbl[iter]);
- 
--	rcu_read_lock();
- 	spin_lock(&netlbl_unlhsh_lock);
--	RCU_INIT_POINTER(netlbl_unlhsh, hsh_tbl);
-+	rcu_assign_pointer(netlbl_unlhsh, hsh_tbl);
- 	spin_unlock(&netlbl_unlhsh_lock);
--	rcu_read_unlock();
- 
- 	register_netdevice_notifier(&netlbl_unlhsh_netdev_notifier);
- 
-diff --git a/net/phonet/af_phonet.c b/net/phonet/af_phonet.c
-index bf10ea8..d65f699 100644
---- a/net/phonet/af_phonet.c
-+++ b/net/phonet/af_phonet.c
-@@ -480,7 +480,7 @@ int __init_or_module phonet_proto_register(unsigned int protocol,
- 	if (proto_tab[protocol])
- 		err = -EBUSY;
- 	else
--		RCU_INIT_POINTER(proto_tab[protocol], pp);
-+		rcu_assign_pointer(proto_tab[protocol], pp);
- 	mutex_unlock(&proto_tab_lock);
- 
- 	return err;
-diff --git a/net/phonet/pn_dev.c b/net/phonet/pn_dev.c
-index c582761..9b9a85e 100644
---- a/net/phonet/pn_dev.c
-+++ b/net/phonet/pn_dev.c
-@@ -390,7 +390,7 @@ int phonet_route_add(struct net_device *dev, u8 daddr)
- 	daddr = daddr >> 2;
- 	mutex_lock(&routes->lock);
- 	if (routes->table[daddr] == NULL) {
--		RCU_INIT_POINTER(routes->table[daddr], dev);
-+		rcu_assign_pointer(routes->table[daddr], dev);
- 		dev_hold(dev);
- 		err = 0;
- 	}
-diff --git a/net/phonet/socket.c b/net/phonet/socket.c
-index 3f8d0b1..4c7eff3 100644
---- a/net/phonet/socket.c
-+++ b/net/phonet/socket.c
-@@ -680,7 +680,7 @@ int pn_sock_bind_res(struct sock *sk, u8 res)
- 	mutex_lock(&resource_mutex);
- 	if (pnres.sk[res] == NULL) {
- 		sock_hold(sk);
--		RCU_INIT_POINTER(pnres.sk[res], sk);
-+		rcu_assign_pointer(pnres.sk[res], sk);
- 		ret = 0;
- 	}
- 	mutex_unlock(&resource_mutex);
-diff --git a/net/socket.c b/net/socket.c
-index 2877647..2dce67a 100644
---- a/net/socket.c
-+++ b/net/socket.c
-@@ -2472,7 +2472,7 @@ int sock_register(const struct net_proto_family *ops)
- 				      lockdep_is_held(&net_family_lock)))
- 		err = -EEXIST;
- 	else {
--		RCU_INIT_POINTER(net_families[ops->family], ops);
-+		rcu_assign_pointer(net_families[ops->family], ops);
- 		err = 0;
- 	}
- 	spin_unlock(&net_family_lock);
-diff --git a/net/sunrpc/auth_gss/auth_gss.c b/net/sunrpc/auth_gss/auth_gss.c
-index afb5655..db0efde 100644
---- a/net/sunrpc/auth_gss/auth_gss.c
-+++ b/net/sunrpc/auth_gss/auth_gss.c
-@@ -122,7 +122,7 @@ gss_cred_set_ctx(struct rpc_cred *cred, struct gss_cl_ctx *ctx)
- 	if (!test_bit(RPCAUTH_CRED_NEW, &cred->cr_flags))
- 		return;
- 	gss_get_ctx(ctx);
--	RCU_INIT_POINTER(gss_cred->gc_ctx, ctx);
-+	rcu_assign_pointer(gss_cred->gc_ctx, ctx);
- 	set_bit(RPCAUTH_CRED_UPTODATE, &cred->cr_flags);
- 	smp_mb__before_clear_bit();
- 	clear_bit(RPCAUTH_CRED_NEW, &cred->cr_flags);
-diff --git a/net/xfrm/xfrm_user.c b/net/xfrm/xfrm_user.c
-index d0a42df..7cae73e 100644
---- a/net/xfrm/xfrm_user.c
-+++ b/net/xfrm/xfrm_user.c
-@@ -2927,7 +2927,7 @@ static int __net_init xfrm_user_net_init(struct net *net)
- 	if (nlsk == NULL)
- 		return -ENOMEM;
- 	net->xfrm.nlsk_stash = nlsk; /* Don't set to NULL */
--	RCU_INIT_POINTER(net->xfrm.nlsk, nlsk);
-+	rcu_assign_pointer(net->xfrm.nlsk, nlsk);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0078-rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0078-rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch
deleted file mode 100644
index c95ae64..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0078-rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From af4ce0cb61137477b811f90fa81cc442bddbaa09 Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Tue, 24 Jan 2012 17:03:44 -0500
-Subject: [PATCH 78/90] rds: Make rds_sock_lock BH rather than IRQ safe.
-
-[ Upstream commit efc3dbc37412c027e363736b4f4c74ee5e8ecffc ]
-
-rds_sock_info() triggers locking warnings because we try to perform a
-local_bh_enable() (via sock_i_ino()) while hardware interrupts are
-disabled (via taking rds_sock_lock).
-
-There is no reason for rds_sock_lock to be a hardware IRQ disabling
-lock, none of these access paths run in hardware interrupt context.
-
-Therefore making it a BH disabling lock is safe and sufficient to
-fix this bug.
-
-Reported-by: Kumar Sanghvi <kumaras at chelsio.com>
-Reported-by: Josh Boyer <jwboyer at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/rds/af_rds.c |   20 ++++++++------------
- 1 file changed, 8 insertions(+), 12 deletions(-)
-
-diff --git a/net/rds/af_rds.c b/net/rds/af_rds.c
-index bb6ad81..424ff62 100644
---- a/net/rds/af_rds.c
-+++ b/net/rds/af_rds.c
-@@ -68,7 +68,6 @@ static int rds_release(struct socket *sock)
- {
- 	struct sock *sk = sock->sk;
- 	struct rds_sock *rs;
--	unsigned long flags;
- 
- 	if (!sk)
- 		goto out;
-@@ -94,10 +93,10 @@ static int rds_release(struct socket *sock)
- 	rds_rdma_drop_keys(rs);
- 	rds_notify_queue_get(rs, NULL);
- 
--	spin_lock_irqsave(&rds_sock_lock, flags);
-+	spin_lock_bh(&rds_sock_lock);
- 	list_del_init(&rs->rs_item);
- 	rds_sock_count--;
--	spin_unlock_irqrestore(&rds_sock_lock, flags);
-+	spin_unlock_bh(&rds_sock_lock);
- 
- 	rds_trans_put(rs->rs_transport);
- 
-@@ -409,7 +408,6 @@ static const struct proto_ops rds_proto_ops = {
- 
- static int __rds_create(struct socket *sock, struct sock *sk, int protocol)
- {
--	unsigned long flags;
- 	struct rds_sock *rs;
- 
- 	sock_init_data(sock, sk);
-@@ -426,10 +424,10 @@ static int __rds_create(struct socket *sock, struct sock *sk, int protocol)
- 	spin_lock_init(&rs->rs_rdma_lock);
- 	rs->rs_rdma_keys = RB_ROOT;
- 
--	spin_lock_irqsave(&rds_sock_lock, flags);
-+	spin_lock_bh(&rds_sock_lock);
- 	list_add_tail(&rs->rs_item, &rds_sock_list);
- 	rds_sock_count++;
--	spin_unlock_irqrestore(&rds_sock_lock, flags);
-+	spin_unlock_bh(&rds_sock_lock);
- 
- 	return 0;
- }
-@@ -471,12 +469,11 @@ static void rds_sock_inc_info(struct socket *sock, unsigned int len,
- {
- 	struct rds_sock *rs;
- 	struct rds_incoming *inc;
--	unsigned long flags;
- 	unsigned int total = 0;
- 
- 	len /= sizeof(struct rds_info_message);
- 
--	spin_lock_irqsave(&rds_sock_lock, flags);
-+	spin_lock_bh(&rds_sock_lock);
- 
- 	list_for_each_entry(rs, &rds_sock_list, rs_item) {
- 		read_lock(&rs->rs_recv_lock);
-@@ -492,7 +489,7 @@ static void rds_sock_inc_info(struct socket *sock, unsigned int len,
- 		read_unlock(&rs->rs_recv_lock);
- 	}
- 
--	spin_unlock_irqrestore(&rds_sock_lock, flags);
-+	spin_unlock_bh(&rds_sock_lock);
- 
- 	lens->nr = total;
- 	lens->each = sizeof(struct rds_info_message);
-@@ -504,11 +501,10 @@ static void rds_sock_info(struct socket *sock, unsigned int len,
- {
- 	struct rds_info_socket sinfo;
- 	struct rds_sock *rs;
--	unsigned long flags;
- 
- 	len /= sizeof(struct rds_info_socket);
- 
--	spin_lock_irqsave(&rds_sock_lock, flags);
-+	spin_lock_bh(&rds_sock_lock);
- 
- 	if (len < rds_sock_count)
- 		goto out;
-@@ -529,7 +525,7 @@ out:
- 	lens->nr = rds_sock_count;
- 	lens->each = sizeof(struct rds_info_socket);
- 
--	spin_unlock_irqrestore(&rds_sock_lock, flags);
-+	spin_unlock_bh(&rds_sock_lock);
- }
- 
- static void rds_exit(void)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0079-tcp-fix-tcp_trim_head-to-adjust-segment-count-with-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0079-tcp-fix-tcp_trim_head-to-adjust-segment-count-with-s.patch
deleted file mode 100644
index 01497b0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0079-tcp-fix-tcp_trim_head-to-adjust-segment-count-with-s.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 05393b2465021a009c72267f654027b556b5c85d Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Sat, 28 Jan 2012 17:29:46 +0000
-Subject: [PATCH 79/90] tcp: fix tcp_trim_head() to adjust segment count with
- skb MSS
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-[ Upstream commit 5b35e1e6e9ca651e6b291c96d1106043c9af314a ]
-
-This commit fixes tcp_trim_head() to recalculate the number of
-segments in the skb with the skb's existing MSS, so trimming the head
-causes the skb segment count to be monotonically non-increasing - it
-should stay the same or go down, but not increase.
-
-Previously tcp_trim_head() used the current MSS of the connection. But
-if there was a decrease in MSS between original transmission and ACK
-(e.g. due to PMTUD), this could cause tcp_trim_head() to
-counter-intuitively increase the segment count when trimming bytes off
-the head of an skb. This violated assumptions in tcp_tso_acked() that
-tcp_trim_head() only decreases the packet count, so that packets_acked
-in tcp_tso_acked() could underflow, leading tcp_clean_rtx_queue() to
-pass u32 pkts_acked values as large as 0xffffffff to
-ca_ops->pkts_acked().
-
-As an aside, if tcp_trim_head() had really wanted the skb to reflect
-the current MSS, it should have called tcp_set_skb_tso_segs()
-unconditionally, since a decrease in MSS would mean that a
-single-packet skb should now be sliced into multiple segments.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Acked-by: Nandita Dukkipati <nanditad at google.com>
-Acked-by: Ilpo Järvinen <ilpo.jarvinen at helsinki.fi>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_output.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/net/ipv4/tcp_output.c b/net/ipv4/tcp_output.c
-index 63170e2..097e0c7 100644
---- a/net/ipv4/tcp_output.c
-+++ b/net/ipv4/tcp_output.c
-@@ -1138,11 +1138,9 @@ int tcp_trim_head(struct sock *sk, struct sk_buff *skb, u32 len)
- 	sk_mem_uncharge(sk, len);
- 	sock_set_flag(sk, SOCK_QUEUE_SHRUNK);
- 
--	/* Any change of skb->len requires recalculation of tso
--	 * factor and mss.
--	 */
-+	/* Any change of skb->len requires recalculation of tso factor. */
- 	if (tcp_skb_pcount(skb) > 1)
--		tcp_set_skb_tso_segs(sk, skb, tcp_current_mss(sk));
-+		tcp_set_skb_tso_segs(sk, skb, tcp_skb_mss(skb));
- 
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0080-tcp-md5-using-remote-adress-for-md5-lookup-in-rst-pa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0080-tcp-md5-using-remote-adress-for-md5-lookup-in-rst-pa.patch
deleted file mode 100644
index 8e63e9d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0080-tcp-md5-using-remote-adress-for-md5-lookup-in-rst-pa.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 0d432284eab9df44414bfa75eff573001c879991 Mon Sep 17 00:00:00 2001
-From: shawnlu <shawn.lu at ericsson.com>
-Date: Fri, 20 Jan 2012 12:22:04 +0000
-Subject: [PATCH 80/90] tcp: md5: using remote adress for md5 lookup in rst
- packet
-
-[ Upstream commit 8a622e71f58ec9f092fc99eacae0e6cf14f6e742 ]
-
-md5 key is added in socket through remote address.
-remote address should be used in finding md5 key when
-sending out reset packet.
-
-Signed-off-by: shawnlu <shawn.lu at ericsson.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_ipv4.c |    2 +-
- net/ipv6/tcp_ipv6.c |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index a9db4b1..c89e354 100644
---- a/net/ipv4/tcp_ipv4.c
-+++ b/net/ipv4/tcp_ipv4.c
-@@ -630,7 +630,7 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
- 	arg.iov[0].iov_len  = sizeof(rep.th);
- 
- #ifdef CONFIG_TCP_MD5SIG
--	key = sk ? tcp_v4_md5_do_lookup(sk, ip_hdr(skb)->daddr) : NULL;
-+	key = sk ? tcp_v4_md5_do_lookup(sk, ip_hdr(skb)->saddr) : NULL;
- 	if (key) {
- 		rep.opt[0] = htonl((TCPOPT_NOP << 24) |
- 				   (TCPOPT_NOP << 16) |
-diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
-index 2dea4bb..b859e4a 100644
---- a/net/ipv6/tcp_ipv6.c
-+++ b/net/ipv6/tcp_ipv6.c
-@@ -1084,7 +1084,7 @@ static void tcp_v6_send_reset(struct sock *sk, struct sk_buff *skb)
- 
- #ifdef CONFIG_TCP_MD5SIG
- 	if (sk)
--		key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->daddr);
-+		key = tcp_v6_md5_do_lookup(sk, &ipv6_hdr(skb)->saddr);
- #endif
- 
- 	if (th->ack)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0081-USB-serial-CP210x-Added-USB-ID-for-the-Link-Instrume.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0081-USB-serial-CP210x-Added-USB-ID-for-the-Link-Instrume.patch
deleted file mode 100644
index 47a4089..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0081-USB-serial-CP210x-Added-USB-ID-for-the-Link-Instrume.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 48278b64b7025c308655d780a5cd6295c3906d0f Mon Sep 17 00:00:00 2001
-From: Renato Caldas <rmsc at fe.up.pt>
-Date: Fri, 6 Jan 2012 15:20:51 +0000
-Subject: [PATCH 81/90] USB: serial: CP210x: Added USB-ID for the Link
- Instruments MSO-19
-
-commit 791b7d7cf69de11275e4dccec2f538eec02cbff6 upstream.
-
-This device is a Oscilloscope/Logic Analizer/Pattern Generator/TDR,
-using a Silabs CP2103 USB to UART Bridge.
-
-Signed-off-by: Renato Caldas <rmsc at fe.up.pt>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index a1a324b..3b43d9b 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -138,6 +138,7 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
- 	{ USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
- 	{ USB_DEVICE(0x1BE3, 0x07A6) }, /* WAGO 750-923 USB Service Cable */
-+	{ USB_DEVICE(0x3195, 0xF190) }, /* Link Instruments MSO-19 */
- 	{ USB_DEVICE(0x413C, 0x9500) }, /* DW700 GPS USB interface */
- 	{ } /* Terminating Entry */
- };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0082-USB-cp210x-call-generic-open-last-in-open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0082-USB-cp210x-call-generic-open-last-in-open.patch
deleted file mode 100644
index bb1f241..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0082-USB-cp210x-call-generic-open-last-in-open.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 0dad95a1e262593ce3bdad0ce16605dd9fae0352 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Mon, 16 Jan 2012 00:36:48 +0100
-Subject: [PATCH 82/90] USB: cp210x: call generic open last in open
-
-commit 55b2afbb92ad92e9f6b0aa4354eb1c94589280c3 upstream.
-
-Make sure port is fully initialised before calling generic open.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |    9 ++-------
- 1 file changed, 2 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 3b43d9b..cbcaddb 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -393,8 +393,6 @@ static unsigned int cp210x_quantise_baudrate(unsigned int baud) {
- 
- static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port)
- {
--	int result;
--
- 	dbg("%s - port %d", __func__, port->number);
- 
- 	if (cp210x_set_config_single(port, CP210X_IFC_ENABLE, UART_ENABLE)) {
-@@ -403,13 +401,10 @@ static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port)
- 		return -EPROTO;
- 	}
- 
--	result = usb_serial_generic_open(tty, port);
--	if (result)
--		return result;
--
- 	/* Configure the termios structure */
- 	cp210x_get_termios(tty, port);
--	return 0;
-+
-+	return usb_serial_generic_open(tty, port);
- }
- 
- static void cp210x_close(struct usb_serial_port *port)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0083-USB-cp210x-fix-CP2104-baudrate-usage.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0083-USB-cp210x-fix-CP2104-baudrate-usage.patch
deleted file mode 100644
index df9d792..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0083-USB-cp210x-fix-CP2104-baudrate-usage.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 15cbe972586b6a980e1ec5e5ea1f6335a58a801c Mon Sep 17 00:00:00 2001
-From: Preston Fick <preston.fick at silabs.com>
-Date: Mon, 16 Jan 2012 18:14:09 -0600
-Subject: [PATCH 83/90] USB: cp210x: fix CP2104 baudrate usage
-
-commit 7f482fc88ac47662228d6b1f05759797c8936a30 upstream.
-
-This fix changes the way baudrates are set on the CP210x devices from
-Silicon Labs. The CP2101/2/3 will respond to both a GET/SET_BAUDDIV
-command, and GET/SET_BAUDRATE command, while CP2104 and higher devices
-only respond to GET/SET_BAUDRATE. The current cp210x.ko driver in
-kernel version 3.2.0 only implements the GET/SET_BAUDDIV command.
-
-This patch implements the two new codes for the GET/SET_BAUDRATE
-commands. Then there is a change in the way that the baudrate is
-assigned or retrieved. This is done according to the CP210x USB
-specification in AN571. This document can be found here:
-http://www.silabs.com/pages/DownloadDoc.aspx?FILEURL=Support%20Documents/TechnicalDocs/AN571.pdf&src=DocumentationWebPart
-
-Sections 5.3/5.4 describe the USB packets for the old baudrate method.
-Sections 5.5/5.6 describe the USB packets for the new method. This
-patch also implements the new request scheme, and eliminates the
-unnecessary baudrate calculations since it uses the "actual baudrate"
-method.
-
-This patch solves the problem reported for the CP2104 in bug 42586,
-and also keeps support for all other devices (CP2101/2/3).
-
-This patchfile is also attached to the bug report on
-bugzilla.kernel.org. This patch has been developed and test on the
-3.2.0 mainline kernel version under Ubuntu 10.11.
-
-Signed-off-by: Preston Fick <preston.fick at silabs.com>
-[duplicate patch also sent by Johan - gregkh]
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |   10 ++++------
- 1 file changed, 4 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index cbcaddb..60993dc 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -202,6 +202,8 @@ static struct usb_serial_driver cp210x_device = {
- #define CP210X_EMBED_EVENTS	0x15
- #define CP210X_GET_EVENTSTATE	0x16
- #define CP210X_SET_CHARS	0x19
-+#define CP210X_GET_BAUDRATE	0x1D
-+#define CP210X_SET_BAUDRATE	0x1E
- 
- /* CP210X_IFC_ENABLE */
- #define UART_ENABLE		0x0001
-@@ -456,10 +458,7 @@ static void cp210x_get_termios_port(struct usb_serial_port *port,
- 
- 	dbg("%s - port %d", __func__, port->number);
- 
--	cp210x_get_config(port, CP210X_GET_BAUDDIV, &baud, 2);
--	/* Convert to baudrate */
--	if (baud)
--		baud = cp210x_quantise_baudrate((BAUD_RATE_GEN_FREQ + baud/2)/ baud);
-+	cp210x_get_config(port, CP210X_GET_BAUDRATE, &baud, 4);
- 
- 	dbg("%s - baud rate = %d", __func__, baud);
- 	*baudp = baud;
-@@ -594,8 +593,7 @@ static void cp210x_set_termios(struct tty_struct *tty,
- 	if (baud != tty_termios_baud_rate(old_termios) && baud != 0) {
- 		dbg("%s - Setting baud rate to %d baud", __func__,
- 				baud);
--		if (cp210x_set_config_single(port, CP210X_SET_BAUDDIV,
--					((BAUD_RATE_GEN_FREQ + baud/2) / baud))) {
-+		if (cp210x_set_config(port, CP210X_SET_BAUDRATE, &baud, 4)) {
- 			dbg("Baud rate requested not supported by device");
- 			baud = tty_termios_baud_rate(old_termios);
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0084-USB-cp210x-do-not-map-baud-rates-to-B0.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0084-USB-cp210x-do-not-map-baud-rates-to-B0.patch
deleted file mode 100644
index 7d24148..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0084-USB-cp210x-do-not-map-baud-rates-to-B0.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From c78c606e43e1852bd496a343e8a72d6422d1e2c2 Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Mon, 16 Jan 2012 00:36:50 +0100
-Subject: [PATCH 84/90] USB: cp210x: do not map baud rates to B0
-
-commit be125d9c8d59560e7cc2d6e2b65c8fd233498ab7 upstream.
-
-We do not implement B0 hangup yet so map low baudrates to 300bps.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Cc: Preston Fick <preston.fick at silabs.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 60993dc..1bac7b9 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -357,8 +357,8 @@ static inline int cp210x_set_config_single(struct usb_serial_port *port,
-  * Quantises the baud rate as per AN205 Table 1
-  */
- static unsigned int cp210x_quantise_baudrate(unsigned int baud) {
--	if      (baud <= 56)       baud = 0;
--	else if (baud <= 300)      baud = 300;
-+	if (baud <= 300)
-+		baud = 300;
- 	else if (baud <= 600)      baud = 600;
- 	else if (baud <= 1200)     baud = 1200;
- 	else if (baud <= 1800)     baud = 1800;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0085-USB-cp210x-fix-up-set_termios-variables.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0085-USB-cp210x-fix-up-set_termios-variables.patch
deleted file mode 100644
index 28d9d2a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0085-USB-cp210x-fix-up-set_termios-variables.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From cc138871b9d3ad7d03c5ebf0fd2fe5915bbd292c Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Mon, 16 Jan 2012 00:36:49 +0100
-Subject: [PATCH 85/90] USB: cp210x: fix up set_termios variables
-
-commit 34b76fcaee574017862ea3fa0efdcd77a9d0e57d upstream.
-
-[Based on a patch from Johan, mangled by gregkh to keep things in line]
-
-Fix up the variable usage in the set_termios call.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Cc: Preston Fick <preston.fick at silabs.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 1bac7b9..5c3b7d1 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -576,7 +576,8 @@ static void cp210x_set_termios(struct tty_struct *tty,
- 		struct usb_serial_port *port, struct ktermios *old_termios)
- {
- 	unsigned int cflag, old_cflag;
--	unsigned int baud = 0, bits;
-+	u32 baud;
-+	unsigned int bits;
- 	unsigned int modem_ctl[4];
- 
- 	dbg("%s - port %d", __func__, port->number);
-@@ -593,7 +594,7 @@ static void cp210x_set_termios(struct tty_struct *tty,
- 	if (baud != tty_termios_baud_rate(old_termios) && baud != 0) {
- 		dbg("%s - Setting baud rate to %d baud", __func__,
- 				baud);
--		if (cp210x_set_config(port, CP210X_SET_BAUDRATE, &baud, 4)) {
-+		if (cp210x_set_config(port, CP210X_SET_BAUDRATE, &baud, sizeof(baud))) {
- 			dbg("Baud rate requested not supported by device");
- 			baud = tty_termios_baud_rate(old_termios);
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0086-USB-cp210x-clean-up-refactor-and-document-speed-hand.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0086-USB-cp210x-clean-up-refactor-and-document-speed-hand.patch
deleted file mode 100644
index 548470e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0086-USB-cp210x-clean-up-refactor-and-document-speed-hand.patch
+++ /dev/null
@@ -1,121 +0,0 @@
-From 2cfb09b2282a9cf46547260f897064b24b04b4bb Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Mon, 16 Jan 2012 00:36:51 +0100
-Subject: [PATCH 86/90] USB: cp210x: clean up, refactor and document speed
- handling
-
-commit e5990874e511d5bbca23b3396419480cb2ca0ee7 upstream.
-
-Clean up and refactor speed handling.
-Document baud rate handling for CP210{1,2,4,5,10}.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Cc: Preston Fick <preston.fick at silabs.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |   71 ++++++++++++++++++++++++++++++++++---------
- 1 file changed, 57 insertions(+), 14 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 5c3b7d1..d2c4080 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -39,6 +39,8 @@ static void cp210x_get_termios(struct tty_struct *,
- 	struct usb_serial_port *port);
- static void cp210x_get_termios_port(struct usb_serial_port *port,
- 	unsigned int *cflagp, unsigned int *baudp);
-+static void cp210x_change_speed(struct tty_struct *, struct usb_serial_port *,
-+							struct ktermios *);
- static void cp210x_set_termios(struct tty_struct *, struct usb_serial_port *,
- 							struct ktermios*);
- static int cp210x_tiocmget(struct tty_struct *);
-@@ -572,11 +574,62 @@ static void cp210x_get_termios_port(struct usb_serial_port *port,
- 	*cflagp = cflag;
- }
- 
-+/*
-+ * CP2101 supports the following baud rates:
-+ *
-+ *	300, 600, 1200, 1800, 2400, 4800, 7200, 9600, 14400, 19200, 28800,
-+ *	38400, 56000, 57600, 115200, 128000, 230400, 460800, 921600
-+ *
-+ * CP2102 and CP2103 support the following additional rates:
-+ *
-+ *	4000, 16000, 51200, 64000, 76800, 153600, 250000, 256000, 500000,
-+ *	576000
-+ *
-+ * The device will map a requested rate to a supported one, but the result
-+ * of requests for rates greater than 1053257 is undefined (see AN205).
-+ *
-+ * CP2104, CP2105 and CP2110 support most rates up to 2M, 921k and 1M baud,
-+ * respectively, with an error less than 1%. The actual rates are determined
-+ * by
-+ *
-+ *	div = round(freq / (2 x prescale x request))
-+ *	actual = freq / (2 x prescale x div)
-+ *
-+ * For CP2104 and CP2105 freq is 48Mhz and prescale is 4 for request <= 365bps
-+ * or 1 otherwise.
-+ * For CP2110 freq is 24Mhz and prescale is 4 for request <= 300bps or 1
-+ * otherwise.
-+ */
-+static void cp210x_change_speed(struct tty_struct *tty,
-+		struct usb_serial_port *port, struct ktermios *old_termios)
-+{
-+	u32 baud;
-+
-+	baud = tty->termios->c_ospeed;
-+
-+	/* This maps the requested rate to a rate valid on cp2102 or cp2103.
-+	 *
-+	 * NOTE: B0 is not implemented.
-+	 */
-+	baud = cp210x_quantise_baudrate(baud);
-+
-+	dbg("%s - setting baud rate to %u", __func__, baud);
-+	if (cp210x_set_config(port, CP210X_SET_BAUDRATE, &baud,
-+							sizeof(baud))) {
-+		dev_warn(&port->dev, "failed to set baud rate to %u\n", baud);
-+		if (old_termios)
-+			baud = old_termios->c_ospeed;
-+		else
-+			baud = 9600;
-+	}
-+
-+	tty_encode_baud_rate(tty, baud, baud);
-+}
-+
- static void cp210x_set_termios(struct tty_struct *tty,
- 		struct usb_serial_port *port, struct ktermios *old_termios)
- {
- 	unsigned int cflag, old_cflag;
--	u32 baud;
- 	unsigned int bits;
- 	unsigned int modem_ctl[4];
- 
-@@ -588,19 +641,9 @@ static void cp210x_set_termios(struct tty_struct *tty,
- 	tty->termios->c_cflag &= ~CMSPAR;
- 	cflag = tty->termios->c_cflag;
- 	old_cflag = old_termios->c_cflag;
--	baud = cp210x_quantise_baudrate(tty_get_baud_rate(tty));
--
--	/* If the baud rate is to be updated*/
--	if (baud != tty_termios_baud_rate(old_termios) && baud != 0) {
--		dbg("%s - Setting baud rate to %d baud", __func__,
--				baud);
--		if (cp210x_set_config(port, CP210X_SET_BAUDRATE, &baud, sizeof(baud))) {
--			dbg("Baud rate requested not supported by device");
--			baud = tty_termios_baud_rate(old_termios);
--		}
--	}
--	/* Report back the resulting baud rate */
--	tty_encode_baud_rate(tty, baud, baud);
-+
-+	if (tty->termios->c_ospeed != old_termios->c_ospeed)
-+		cp210x_change_speed(tty, port, old_termios);
- 
- 	/* If the number of data bits is to be updated */
- 	if ((cflag & CSIZE) != (old_cflag & CSIZE)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0087-USB-cp210x-initialise-baud-rate-at-open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0087-USB-cp210x-initialise-baud-rate-at-open.patch
deleted file mode 100644
index 9c7abde..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0087-USB-cp210x-initialise-baud-rate-at-open.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 548b55d00abf0882c6d35b30d0d973ece1d8509b Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Mon, 16 Jan 2012 00:36:52 +0100
-Subject: [PATCH 87/90] USB: cp210x: initialise baud rate at open
-
-commit cdc32fd6f7b2b2580d7f1b74563f888e4dd9eb8a upstream.
-
-The newer cp2104 devices require the baud rate to be initialised after
-power on. Make sure it is set when port is opened.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Cc: Preston Fick <preston.fick at silabs.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index d2c4080..07d297f 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -408,6 +408,10 @@ static int cp210x_open(struct tty_struct *tty, struct usb_serial_port *port)
- 	/* Configure the termios structure */
- 	cp210x_get_termios(tty, port);
- 
-+	/* The baud rate must be initialised on cp2104 */
-+	if (tty)
-+		cp210x_change_speed(tty, port, NULL);
-+
- 	return usb_serial_generic_open(tty, port);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0088-USB-cp210x-allow-more-baud-rates-above-1Mbaud.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0088-USB-cp210x-allow-more-baud-rates-above-1Mbaud.patch
deleted file mode 100644
index e1fba99..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0088-USB-cp210x-allow-more-baud-rates-above-1Mbaud.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From b4ca737a511b10e086f1c0a9a540a46be508890d Mon Sep 17 00:00:00 2001
-From: Johan Hovold <jhovold at gmail.com>
-Date: Mon, 16 Jan 2012 00:36:53 +0100
-Subject: [PATCH 88/90] USB: cp210x: allow more baud rates above 1Mbaud
-
-commit d1620ca9e7bb0030068c3b45b653defde8839dac upstream.
-
-Allow more baud rates to be set in [1M,2M] baud.
-
-Signed-off-by: Johan Hovold <jhovold at gmail.com>
-Cc: Preston Fick <preston.fick at silabs.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |   11 ++++++-----
- 1 file changed, 6 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index 07d297f..a515237 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -388,10 +388,10 @@ static unsigned int cp210x_quantise_baudrate(unsigned int baud) {
- 	else if (baud <= 491520)   baud = 460800;
- 	else if (baud <= 567138)   baud = 500000;
- 	else if (baud <= 670254)   baud = 576000;
--	else if (baud <= 1053257)  baud = 921600;
--	else if (baud <= 1474560)  baud = 1228800;
--	else if (baud <= 2457600)  baud = 1843200;
--	else                       baud = 3686400;
-+	else if (baud < 1000000)
-+		baud = 921600;
-+	else if (baud > 2000000)
-+		baud = 2000000;
- 	return baud;
- }
- 
-@@ -611,7 +611,8 @@ static void cp210x_change_speed(struct tty_struct *tty,
- 
- 	baud = tty->termios->c_ospeed;
- 
--	/* This maps the requested rate to a rate valid on cp2102 or cp2103.
-+	/* This maps the requested rate to a rate valid on cp2102 or cp2103,
-+	 * or to an arbitrary rate in [1M,2M].
- 	 *
- 	 * NOTE: B0 is not implemented.
- 	 */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0089-mach-ux500-no-MMC_CAP_SD_HIGHSPEED-on-Snowball.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0089-mach-ux500-no-MMC_CAP_SD_HIGHSPEED-on-Snowball.patch
deleted file mode 100644
index 25ae94c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0089-mach-ux500-no-MMC_CAP_SD_HIGHSPEED-on-Snowball.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 6d81b4862ba4c5299d32a670a59aead344604bc6 Mon Sep 17 00:00:00 2001
-From: Philippe Langlais <philippe.langlais at linaro.org>
-Date: Fri, 20 Jan 2012 09:20:40 +0100
-Subject: [PATCH 89/90] mach-ux500: no MMC_CAP_SD_HIGHSPEED on Snowball
-
-commit 2ab1159e80e8f416071e9f51e4f77b9173948296 upstream.
-
-MMC_CAP_SD_HIGHSPEED is not supported on Snowball board resulting on
-initialization errors.
-
-Signed-off-by: Mathieu Poirier <mathieu.poirier at linaro.org>
-Signed-off-by: Fredrik Soderstedt <fredrik.soderstedt at stericsson.com>
-Signed-off-by: Philippe Langlais <philippe.langlais at linaro.org>
-Signed-off-by: Linus Walleij <linus.walleij at linaro.org>
----
- arch/arm/mach-ux500/board-mop500-sdi.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/arch/arm/mach-ux500/board-mop500-sdi.c b/arch/arm/mach-ux500/board-mop500-sdi.c
-index 6826fae..306cff0 100644
---- a/arch/arm/mach-ux500/board-mop500-sdi.c
-+++ b/arch/arm/mach-ux500/board-mop500-sdi.c
-@@ -233,6 +233,8 @@ void __init snowball_sdi_init(void)
- {
- 	u32 periphid = 0x10480180;
- 
-+	/* On Snowball MMC_CAP_SD_HIGHSPEED isn't supported on sdi0 */
-+	mop500_sdi0_data.capabilities &= ~MMC_CAP_SD_HIGHSPEED;
- 	mop500_sdi2_data.capabilities |= MMC_CAP_MMC_HIGHSPEED;
- 
- 	/* On-board eMMC */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0090-Linux-3.2.3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0090-Linux-3.2.3.patch
deleted file mode 100644
index 588146d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.3/0090-Linux-3.2.3.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From f120b51c48ec46f52f5c592e64ad38520244a692 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 3 Feb 2012 09:23:33 -0800
-Subject: [PATCH 90/90] Linux 3.2.3
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 2f684da..d45e887 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 2
-+SUBLEVEL = 3
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0001-Revert-ASoC-Mark-WM5100-register-map-cache-only-when.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0001-Revert-ASoC-Mark-WM5100-register-map-cache-only-when.patch
deleted file mode 100644
index c44c23e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0001-Revert-ASoC-Mark-WM5100-register-map-cache-only-when.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e314c200c12a27d279a47356686e170bf449996d Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 3 Feb 2012 12:26:40 -0800
-Subject: [PATCH 1/3] Revert "ASoC: Mark WM5100 register map cache only when
- going into BIAS_OFF"
-
-This reverts commit 11a17e56ac9c607c6eaecf64b618cd17c828ade0
-(e53e417331c57b9b97e3f8be870214a02c99265c upstream) as it breaks the
-build.
-
-Reported-by: Tim Gardner <rtg.canonical at gmail.com>
-Cc: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm5100.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/soc/codecs/wm5100.c b/sound/soc/codecs/wm5100.c
-index d0beeec..c745ce8 100644
---- a/sound/soc/codecs/wm5100.c
-+++ b/sound/soc/codecs/wm5100.c
-@@ -1406,7 +1406,6 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
- 		break;
- 
- 	case SND_SOC_BIAS_OFF:
--		regcache_cache_only(wm5100->regmap, true);
- 		if (wm5100->pdata.ldo_ena)
- 			gpio_set_value_cansleep(wm5100->pdata.ldo_ena, 0);
- 		regulator_bulk_disable(ARRAY_SIZE(wm5100->core_supplies),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0002-Revert-ASoC-Don-t-go-through-cache-when-applying-WM5.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0002-Revert-ASoC-Don-t-go-through-cache-when-applying-WM5.patch
deleted file mode 100644
index 60b9644..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0002-Revert-ASoC-Don-t-go-through-cache-when-applying-WM5.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From d13a4fd86bf532c59bffe359199e4fbd95dff821 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 3 Feb 2012 12:27:49 -0800
-Subject: [PATCH 2/3] Revert "ASoC: Don't go through cache when applying
- WM5100 rev A updates"
-
-This reverts commit 78fd75340768980ce6ca646106762a6928289e0c (upstream
-commit 495174a8ffbaa0d15153d855cf206cdc46d51cf4) as it breaks the build.
-
-Reported-by: Tim Gardner <rtg.canonical at gmail.com>
-Cc: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm5100.c |    2 --
- 1 file changed, 2 deletions(-)
-
-diff --git a/sound/soc/codecs/wm5100.c b/sound/soc/codecs/wm5100.c
-index c745ce8..42d9039 100644
---- a/sound/soc/codecs/wm5100.c
-+++ b/sound/soc/codecs/wm5100.c
-@@ -1379,7 +1379,6 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
- 
- 			switch (wm5100->rev) {
- 			case 0:
--				regcache_cache_bypass(wm5100->regmap, true);
- 				snd_soc_write(codec, 0x11, 0x3);
- 				snd_soc_write(codec, 0x203, 0xc);
- 				snd_soc_write(codec, 0x206, 0);
-@@ -1395,7 +1394,6 @@ static int wm5100_set_bias_level(struct snd_soc_codec *codec,
- 					snd_soc_write(codec,
- 						      wm5100_reva_patches[i].reg,
- 						      wm5100_reva_patches[i].val);
--				regcache_cache_bypass(wm5100->regmap, false);
- 				break;
- 			default:
- 				break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0003-Linux-3.2.4.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0003-Linux-3.2.4.patch
deleted file mode 100644
index af959c8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.4/0003-Linux-3.2.4.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 4b30599fc71a6186fc5aa78d78de0314a1dc4a28 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Fri, 3 Feb 2012 12:39:51 -0800
-Subject: [PATCH 3/3] Linux 3.2.4
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index d45e887..c8e187e 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 3
-+SUBLEVEL = 4
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0001-PCI-Rework-ASPM-disable-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0001-PCI-Rework-ASPM-disable-code.patch
deleted file mode 100644
index ed9e743..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0001-PCI-Rework-ASPM-disable-code.patch
+++ /dev/null
@@ -1,236 +0,0 @@
-From 01216f2d0e79e2d1a255e38141c9204bc6a5bae7 Mon Sep 17 00:00:00 2001
-From: Matthew Garrett <mjg at redhat.com>
-Date: Thu, 10 Nov 2011 16:38:33 -0500
-Subject: [PATCH 1/2] PCI: Rework ASPM disable code
-
-commit 3c076351c4027a56d5005a39a0b518a4ba393ce2 upstream.
-
-Right now we forcibly clear ASPM state on all devices if the BIOS indicates
-that the feature isn't supported. Based on the Microsoft presentation
-"PCI Express In Depth for Windows Vista and Beyond", I'm starting to think
-that this may be an error. The implication is that unless the platform
-grants full control via _OSC, Windows will not touch any PCIe features -
-including ASPM. In that case clearing ASPM state would be an error unless
-the platform has granted us that control.
-
-This patch reworks the ASPM disabling code such that the actual clearing
-of state is triggered by a successful handoff of PCIe control to the OS.
-The general ASPM code undergoes some changes in order to ensure that the
-ability to clear the bits isn't overridden by ASPM having already been
-disabled. Further, this theoretically now allows for situations where
-only a subset of PCIe roots hand over control, leaving the others in the
-BIOS state.
-
-It's difficult to know for sure that this is the right thing to do -
-there's zero public documentation on the interaction between all of these
-components. But enough vendors enable ASPM on platforms and then set this
-bit that it seems likely that they're expecting the OS to leave them alone.
-
-Measured to save around 5W on an idle Thinkpad X220.
-
-Signed-off-by: Matthew Garrett <mjg at redhat.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/acpi/pci_root.c  |    7 ++++++
- drivers/pci/pci-acpi.c   |    1 -
- drivers/pci/pcie/aspm.c  |   58 +++++++++++++++++++++++++++++-----------------
- include/linux/pci-aspm.h |    4 ++--
- 4 files changed, 46 insertions(+), 24 deletions(-)
-
-diff --git a/drivers/acpi/pci_root.c b/drivers/acpi/pci_root.c
-index 2672c79..7aff631 100644
---- a/drivers/acpi/pci_root.c
-+++ b/drivers/acpi/pci_root.c
-@@ -596,6 +596,13 @@ static int __devinit acpi_pci_root_add(struct acpi_device *device)
- 		if (ACPI_SUCCESS(status)) {
- 			dev_info(root->bus->bridge,
- 				"ACPI _OSC control (0x%02x) granted\n", flags);
-+			if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM) {
-+				/*
-+				 * We have ASPM control, but the FADT indicates
-+				 * that it's unsupported. Clear it.
-+				 */
-+				pcie_clear_aspm(root->bus);
-+			}
- 		} else {
- 			dev_info(root->bus->bridge,
- 				"ACPI _OSC request failed (%s), "
-diff --git a/drivers/pci/pci-acpi.c b/drivers/pci/pci-acpi.c
-index 4ecb640..c8e7585 100644
---- a/drivers/pci/pci-acpi.c
-+++ b/drivers/pci/pci-acpi.c
-@@ -395,7 +395,6 @@ static int __init acpi_pci_init(void)
- 
- 	if (acpi_gbl_FADT.boot_flags & ACPI_FADT_NO_ASPM) {
- 		printk(KERN_INFO"ACPI FADT declares the system doesn't support PCIe ASPM, so disable it\n");
--		pcie_clear_aspm();
- 		pcie_no_aspm();
- 	}
- 
-diff --git a/drivers/pci/pcie/aspm.c b/drivers/pci/pcie/aspm.c
-index cbfbab1..1cfbf22 100644
---- a/drivers/pci/pcie/aspm.c
-+++ b/drivers/pci/pcie/aspm.c
-@@ -68,7 +68,7 @@ struct pcie_link_state {
- 	struct aspm_latency acceptable[8];
- };
- 
--static int aspm_disabled, aspm_force, aspm_clear_state;
-+static int aspm_disabled, aspm_force;
- static bool aspm_support_enabled = true;
- static DEFINE_MUTEX(aspm_lock);
- static LIST_HEAD(link_list);
-@@ -500,9 +500,6 @@ static int pcie_aspm_sanity_check(struct pci_dev *pdev)
- 	int pos;
- 	u32 reg32;
- 
--	if (aspm_clear_state)
--		return -EINVAL;
--
- 	/*
- 	 * Some functions in a slot might not all be PCIe functions,
- 	 * very strange. Disable ASPM for the whole slot
-@@ -574,9 +571,6 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev)
- 	    pdev->pcie_type != PCI_EXP_TYPE_DOWNSTREAM)
- 		return;
- 
--	if (aspm_disabled && !aspm_clear_state)
--		return;
--
- 	/* VIA has a strange chipset, root port is under a bridge */
- 	if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT &&
- 	    pdev->bus->self)
-@@ -608,7 +602,7 @@ void pcie_aspm_init_link_state(struct pci_dev *pdev)
- 	 * the BIOS's expectation, we'll do so once pci_enable_device() is
- 	 * called.
- 	 */
--	if (aspm_policy != POLICY_POWERSAVE || aspm_clear_state) {
-+	if (aspm_policy != POLICY_POWERSAVE) {
- 		pcie_config_aspm_path(link);
- 		pcie_set_clkpm(link, policy_to_clkpm_state(link));
- 	}
-@@ -649,8 +643,7 @@ void pcie_aspm_exit_link_state(struct pci_dev *pdev)
- 	struct pci_dev *parent = pdev->bus->self;
- 	struct pcie_link_state *link, *root, *parent_link;
- 
--	if ((aspm_disabled && !aspm_clear_state) || !pci_is_pcie(pdev) ||
--	    !parent || !parent->link_state)
-+	if (!pci_is_pcie(pdev) || !parent || !parent->link_state)
- 		return;
- 	if ((parent->pcie_type != PCI_EXP_TYPE_ROOT_PORT) &&
- 	    (parent->pcie_type != PCI_EXP_TYPE_DOWNSTREAM))
-@@ -734,13 +727,18 @@ void pcie_aspm_powersave_config_link(struct pci_dev *pdev)
-  * pci_disable_link_state - disable pci device's link state, so the link will
-  * never enter specific states
-  */
--static void __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem)
-+static void __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem,
-+				     bool force)
- {
- 	struct pci_dev *parent = pdev->bus->self;
- 	struct pcie_link_state *link;
- 
--	if (aspm_disabled || !pci_is_pcie(pdev))
-+	if (aspm_disabled && !force)
-+		return;
-+
-+	if (!pci_is_pcie(pdev))
- 		return;
-+
- 	if (pdev->pcie_type == PCI_EXP_TYPE_ROOT_PORT ||
- 	    pdev->pcie_type == PCI_EXP_TYPE_DOWNSTREAM)
- 		parent = pdev;
-@@ -768,16 +766,31 @@ static void __pci_disable_link_state(struct pci_dev *pdev, int state, bool sem)
- 
- void pci_disable_link_state_locked(struct pci_dev *pdev, int state)
- {
--	__pci_disable_link_state(pdev, state, false);
-+	__pci_disable_link_state(pdev, state, false, false);
- }
- EXPORT_SYMBOL(pci_disable_link_state_locked);
- 
- void pci_disable_link_state(struct pci_dev *pdev, int state)
- {
--	__pci_disable_link_state(pdev, state, true);
-+	__pci_disable_link_state(pdev, state, true, false);
- }
- EXPORT_SYMBOL(pci_disable_link_state);
- 
-+void pcie_clear_aspm(struct pci_bus *bus)
-+{
-+	struct pci_dev *child;
-+
-+	/*
-+	 * Clear any ASPM setup that the firmware has carried out on this bus
-+	 */
-+	list_for_each_entry(child, &bus->devices, bus_list) {
-+		__pci_disable_link_state(child, PCIE_LINK_STATE_L0S |
-+					 PCIE_LINK_STATE_L1 |
-+					 PCIE_LINK_STATE_CLKPM,
-+					 false, true);
-+	}
-+}
-+
- static int pcie_aspm_set_policy(const char *val, struct kernel_param *kp)
- {
- 	int i;
-@@ -935,6 +948,7 @@ void pcie_aspm_remove_sysfs_dev_files(struct pci_dev *pdev)
- static int __init pcie_aspm_disable(char *str)
- {
- 	if (!strcmp(str, "off")) {
-+		aspm_policy = POLICY_DEFAULT;
- 		aspm_disabled = 1;
- 		aspm_support_enabled = false;
- 		printk(KERN_INFO "PCIe ASPM is disabled\n");
-@@ -947,16 +961,18 @@ static int __init pcie_aspm_disable(char *str)
- 
- __setup("pcie_aspm=", pcie_aspm_disable);
- 
--void pcie_clear_aspm(void)
--{
--	if (!aspm_force)
--		aspm_clear_state = 1;
--}
--
- void pcie_no_aspm(void)
- {
--	if (!aspm_force)
-+	/*
-+	 * Disabling ASPM is intended to prevent the kernel from modifying
-+	 * existing hardware state, not to clear existing state. To that end:
-+	 * (a) set policy to POLICY_DEFAULT in order to avoid changing state
-+	 * (b) prevent userspace from changing policy
-+	 */
-+	if (!aspm_force) {
-+		aspm_policy = POLICY_DEFAULT;
- 		aspm_disabled = 1;
-+	}
- }
- 
- /**
-diff --git a/include/linux/pci-aspm.h b/include/linux/pci-aspm.h
-index 7cea7b6..c832014 100644
---- a/include/linux/pci-aspm.h
-+++ b/include/linux/pci-aspm.h
-@@ -29,7 +29,7 @@ extern void pcie_aspm_pm_state_change(struct pci_dev *pdev);
- extern void pcie_aspm_powersave_config_link(struct pci_dev *pdev);
- extern void pci_disable_link_state(struct pci_dev *pdev, int state);
- extern void pci_disable_link_state_locked(struct pci_dev *pdev, int state);
--extern void pcie_clear_aspm(void);
-+extern void pcie_clear_aspm(struct pci_bus *bus);
- extern void pcie_no_aspm(void);
- #else
- static inline void pcie_aspm_init_link_state(struct pci_dev *pdev)
-@@ -47,7 +47,7 @@ static inline void pcie_aspm_powersave_config_link(struct pci_dev *pdev)
- static inline void pci_disable_link_state(struct pci_dev *pdev, int state)
- {
- }
--static inline void pcie_clear_aspm(void)
-+static inline void pcie_clear_aspm(struct pci_bus *bus)
- {
- }
- static inline void pcie_no_aspm(void)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0002-Linux-3.2.5.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0002-Linux-3.2.5.patch
deleted file mode 100644
index d257ce2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.5/0002-Linux-3.2.5.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 6973b318ea01a9a190e9605dc90b11e2d2694fc2 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 6 Feb 2012 09:47:00 -0800
-Subject: [PATCH 2/2] Linux 3.2.5
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index c8e187e..e9dd0ff 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 4
-+SUBLEVEL = 5
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0001-readahead-fix-pipeline-break-caused-by-block-plug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0001-readahead-fix-pipeline-break-caused-by-block-plug.patch
deleted file mode 100644
index a82d5ef..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0001-readahead-fix-pipeline-break-caused-by-block-plug.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 13ed979676b49ea07cbf4ee5cc3de07c1025abe6 Mon Sep 17 00:00:00 2001
-From: Shaohua Li <shaohua.li at intel.com>
-Date: Fri, 3 Feb 2012 15:37:17 -0800
-Subject: [PATCH 01/87] readahead: fix pipeline break caused by block plug
-
-commit 3deaa7190a8da38453c4fabd9dec7f66d17fff67 upstream.
-
-Herbert Poetzl reported a performance regression since 2.6.39.  The test
-is a simple dd read, but with big block size.  The reason is:
-
-T1: ra (A, A+128k), (A+128k, A+256k)
-T2: lock_page for page A, submit the 256k
-T3: hit page A+128K, ra (A+256k, A+384). the range isn't submitted
-because of plug and there isn't any lock_page till we hit page A+256k
-because all pages from A to A+256k is in memory
-T4: hit page A+256k, ra (A+384, A+ 512). Because of plug, the range isn't
-submitted again.
-T5: lock_page A+256k, so (A+256k, A+512k) will be submitted. The task is
-waitting for (A+256k, A+512k) finish.
-
-There is no request to disk in T3 and T4, so readahead pipeline breaks.
-
-We really don't need block plug for generic_file_aio_read() for buffered
-I/O.  The readahead already has plug and has fine grained control when I/O
-should be submitted.  Deleting plug for buffered I/O fixes the regression.
-
-One side effect is plug makes the request size 256k, the size is 128k
-without it.  This is because default ra size is 128k and not a reason we
-need plug here.
-
-Vivek said:
-
-: We submit some readahead IO to device request queue but because of nested
-: plug, queue never gets unplugged.  When read logic reaches a page which is
-: not in page cache, it waits for page to be read from the disk
-: (lock_page_killable()) and that time we flush the plug list.
-:
-: So effectively read ahead logic is kind of broken in parts because of
-: nested plugging.  Removing top level plug (generic_file_aio_read()) for
-: buffered reads, will allow unplugging queue earlier for readahead.
-
-Signed-off-by: Shaohua Li <shaohua.li at intel.com>
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Reported-by: Herbert Poetzl <herbert at 13thfloor.at>
-Tested-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Christoph Hellwig <hch at infradead.org>
-Cc: Jens Axboe <axboe at kernel.dk>
-Cc: Vivek Goyal <vgoyal at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/filemap.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/mm/filemap.c b/mm/filemap.c
-index 90286a4..03c5b0e 100644
---- a/mm/filemap.c
-+++ b/mm/filemap.c
-@@ -1400,15 +1400,12 @@ generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov,
- 	unsigned long seg = 0;
- 	size_t count;
- 	loff_t *ppos = &iocb->ki_pos;
--	struct blk_plug plug;
- 
- 	count = 0;
- 	retval = generic_segment_checks(iov, &nr_segs, &count, VERIFY_WRITE);
- 	if (retval)
- 		return retval;
- 
--	blk_start_plug(&plug);
--
- 	/* coalesce the iovecs and go direct-to-BIO for O_DIRECT */
- 	if (filp->f_flags & O_DIRECT) {
- 		loff_t size;
-@@ -1424,8 +1421,12 @@ generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov,
- 			retval = filemap_write_and_wait_range(mapping, pos,
- 					pos + iov_length(iov, nr_segs) - 1);
- 			if (!retval) {
-+				struct blk_plug plug;
-+
-+				blk_start_plug(&plug);
- 				retval = mapping->a_ops->direct_IO(READ, iocb,
- 							iov, pos, nr_segs);
-+				blk_finish_plug(&plug);
- 			}
- 			if (retval > 0) {
- 				*ppos = pos + retval;
-@@ -1481,7 +1482,6 @@ generic_file_aio_read(struct kiocb *iocb, const struct iovec *iov,
- 			break;
- 	}
- out:
--	blk_finish_plug(&plug);
- 	return retval;
- }
- EXPORT_SYMBOL(generic_file_aio_read);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0002-ALSA-hda-Fix-the-logic-to-detect-VIA-analog-low-curr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0002-ALSA-hda-Fix-the-logic-to-detect-VIA-analog-low-curr.patch
deleted file mode 100644
index d0509af..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0002-ALSA-hda-Fix-the-logic-to-detect-VIA-analog-low-curr.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From b140872c2b68584d6222963186857872b0b4aad8 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Tue, 24 Jan 2012 13:58:36 +0100
-Subject: [PATCH 02/87] ALSA: hda - Fix the logic to detect VIA analog
- low-current mode
-
-commit 924339239fd5ba3e505f9420d41f0939196f3530 upstream.
-
-The analog low-current mode must be enabled when the no stream is
-running but the current detection checks it in a wrong way.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=741128
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_via.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
-index 8d69e59..0684542 100644
---- a/sound/pci/hda/patch_via.c
-+++ b/sound/pci/hda/patch_via.c
-@@ -1041,7 +1041,7 @@ static void analog_low_current_mode(struct hda_codec *codec)
- 	bool enable;
- 	unsigned int verb, parm;
- 
--	enable = is_aa_path_mute(codec) && (spec->opened_streams != 0);
-+	enable = is_aa_path_mute(codec) && !spec->opened_streams;
- 
- 	/* decide low current mode's verb & parameter */
- 	switch (spec->codec_type) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0003-ALSA-HDA-Remove-quirk-for-Asus-N53Jq.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0003-ALSA-HDA-Remove-quirk-for-Asus-N53Jq.patch
deleted file mode 100644
index f8ef47d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0003-ALSA-HDA-Remove-quirk-for-Asus-N53Jq.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From ff421d27adebc855838a34bfad1c228f3ba7125c Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Fri, 27 Jan 2012 14:31:19 +0100
-Subject: [PATCH 03/87] ALSA: HDA: Remove quirk for Asus N53Jq
-
-commit a389d67cf9849aff1722ed73186a584e2196a873 upstream.
-
-The user reports that he needs to add model=auto for audio to
-work properly. In fact, since node 0x15 is not even a pin node,
-the existing fixup is definitely wrong. Relevant information can
-be found in the buglink below.
-
-BugLink: https://bugs.launchpad.net/bugs/918254
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 5f03c40..d02e8e0 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -5011,7 +5011,6 @@ static const struct snd_pci_quirk alc269_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x1043, 0x8330, "ASUS Eeepc P703 P900A",
- 		      ALC269_FIXUP_AMIC),
- 	SND_PCI_QUIRK(0x1043, 0x1013, "ASUS N61Da", ALC269_FIXUP_AMIC),
--	SND_PCI_QUIRK(0x1043, 0x1113, "ASUS N63Jn", ALC269_FIXUP_AMIC),
- 	SND_PCI_QUIRK(0x1043, 0x1143, "ASUS B53f", ALC269_FIXUP_AMIC),
- 	SND_PCI_QUIRK(0x1043, 0x1133, "ASUS UJ20ft", ALC269_FIXUP_AMIC),
- 	SND_PCI_QUIRK(0x1043, 0x1183, "ASUS K72DR", ALC269_FIXUP_AMIC),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0004-ALSA-hda-Apply-0x0f-VREF-fix-to-all-ASUS-laptops-wit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0004-ALSA-hda-Apply-0x0f-VREF-fix-to-all-ASUS-laptops-wit.patch
deleted file mode 100644
index 7d76e70..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0004-ALSA-hda-Apply-0x0f-VREF-fix-to-all-ASUS-laptops-wit.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From db42530b124394fc5dc5d8377d7d9c0798c4e0fa Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 30 Jan 2012 10:54:08 +0100
-Subject: [PATCH 04/87] ALSA: hda - Apply 0x0f-VREF fix to all ASUS laptops
- with ALC861/660
-
-commit 31150f2327cbb66363f38e13ca1be973d2f9203a upstream.
-
-It turned out that other ASUS laptops require the similar fix to
-enable the VREF on the pin 0x0f for the secret output amp, not only
-ASUS A6Rp.  Moreover, it's required even when the pin is being used
-as the output.  Thus, writing a fixed value doesn't work always.
-
-This patch applies the VREF-fix for all ASUS laptops with ALC861/660
-in a fixup function that checks the current value and turns on only
-the VREF value no matter whether input or output direction is set.
-
-The automute function is modified as well to keep the pin VREF upon
-muting/unmuting via pin-control; otherwise the pin VREF is reset at
-plugging/unplugging a jack.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42588
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |   43 +++++++++++++++++++++++++++++++++--------
- 1 file changed, 35 insertions(+), 8 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index d02e8e0..34e5fcc 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -176,6 +176,7 @@ struct alc_spec {
- 	unsigned int detect_lo:1;	/* Line-out detection enabled */
- 	unsigned int automute_speaker_possible:1; /* there are speakers and either LO or HP */
- 	unsigned int automute_lo_possible:1;	  /* there are line outs and HP */
-+	unsigned int keep_vref_in_automute:1; /* Don't clear VREF in automute */
- 
- 	/* other flags */
- 	unsigned int no_analog :1; /* digital I/O only */
-@@ -519,13 +520,24 @@ static void do_automute(struct hda_codec *codec, int num_pins, hda_nid_t *pins,
- 
- 	for (i = 0; i < num_pins; i++) {
- 		hda_nid_t nid = pins[i];
-+		unsigned int val;
- 		if (!nid)
- 			break;
- 		switch (spec->automute_mode) {
- 		case ALC_AUTOMUTE_PIN:
-+			/* don't reset VREF value in case it's controlling
-+			 * the amp (see alc861_fixup_asus_amp_vref_0f())
-+			 */
-+			if (spec->keep_vref_in_automute) {
-+				val = snd_hda_codec_read(codec, nid, 0,
-+					AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
-+				val &= ~PIN_HP;
-+			} else
-+				val = 0;
-+			val |= pin_bits;
- 			snd_hda_codec_write(codec, nid, 0,
- 					    AC_VERB_SET_PIN_WIDGET_CONTROL,
--					    pin_bits);
-+					    val);
- 			break;
- 		case ALC_AUTOMUTE_AMP:
- 			snd_hda_codec_amp_stereo(codec, nid, HDA_OUTPUT, 0,
-@@ -5225,6 +5237,25 @@ enum {
- 	PINFIX_ASUS_A6RP,
- };
- 
-+/* On some laptops, VREF of pin 0x0f is abused for controlling the main amp */
-+static void alc861_fixup_asus_amp_vref_0f(struct hda_codec *codec,
-+			const struct alc_fixup *fix, int action)
-+{
-+	struct alc_spec *spec = codec->spec;
-+	unsigned int val;
-+
-+	if (action != ALC_FIXUP_ACT_INIT)
-+		return;
-+	val = snd_hda_codec_read(codec, 0x0f, 0,
-+				 AC_VERB_GET_PIN_WIDGET_CONTROL, 0);
-+	if (!(val & (AC_PINCTL_IN_EN | AC_PINCTL_OUT_EN)))
-+		val |= AC_PINCTL_IN_EN;
-+	val |= AC_PINCTL_VREF_50;
-+	snd_hda_codec_write(codec, 0x0f, 0,
-+			    AC_VERB_SET_PIN_WIDGET_CONTROL, val);
-+	spec->keep_vref_in_automute = 1;
-+}
-+
- static const struct alc_fixup alc861_fixups[] = {
- 	[PINFIX_FSC_AMILO_PI1505] = {
- 		.type = ALC_FIXUP_PINS,
-@@ -5235,17 +5266,13 @@ static const struct alc_fixup alc861_fixups[] = {
- 		}
- 	},
- 	[PINFIX_ASUS_A6RP] = {
--		.type = ALC_FIXUP_VERBS,
--		.v.verbs = (const struct hda_verb[]) {
--			/* node 0x0f VREF seems controlling the master output */
--			{ 0x0f, AC_VERB_SET_PIN_WIDGET_CONTROL, PIN_VREF50 },
--			{ }
--		},
-+		.type = ALC_FIXUP_FUNC,
-+		.v.func = alc861_fixup_asus_amp_vref_0f,
- 	},
- };
- 
- static const struct snd_pci_quirk alc861_fixup_tbl[] = {
--	SND_PCI_QUIRK(0x1043, 0x1393, "ASUS A6Rp", PINFIX_ASUS_A6RP),
-+	SND_PCI_QUIRK_VENDOR(0x1043, "ASUS laptop", PINFIX_ASUS_A6RP),
- 	SND_PCI_QUIRK(0x1584, 0x2b01, "Haier W18", PINFIX_ASUS_A6RP),
- 	SND_PCI_QUIRK(0x1734, 0x10c7, "FSC Amilo Pi1505", PINFIX_FSC_AMILO_PI1505),
- 	{}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0005-ALSA-hda-Fix-calling-cs_automic-twice-for-Cirrus-cod.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0005-ALSA-hda-Fix-calling-cs_automic-twice-for-Cirrus-cod.patch
deleted file mode 100644
index 3483956..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0005-ALSA-hda-Fix-calling-cs_automic-twice-for-Cirrus-cod.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 8857f50ec84c8206c56754e7440064b3e382df23 Mon Sep 17 00:00:00 2001
-From: Dylan Reid <dgreid at chromium.org>
-Date: Tue, 31 Jan 2012 13:04:41 -0800
-Subject: [PATCH 05/87] ALSA: hda - Fix calling cs_automic twice for Cirrus
- codecs.
-
-commit f70eecde3bca92630d3886496e73316ff353f185 upstream.
-
-If cs_automic is called twice (like it is during init) while the mic
-is present, it will over-write the last_input with the new one,
-causing it to switch back to the automic input when the mic is
-unplugged. This leaves the driver in a state (cur_input, last_input,
-and automix_idx the same) where the internal mic can not be selected
-until it is rebooted without the mic attached.
-
-Check that the mic hasn't already been switched to before setting
-last_input.
-
-Signed-off-by: Dylan Reid <dgreid at chromium.org>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_cirrus.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/sound/pci/hda/patch_cirrus.c b/sound/pci/hda/patch_cirrus.c
-index 5b0a9bb..ec0518e 100644
---- a/sound/pci/hda/patch_cirrus.c
-+++ b/sound/pci/hda/patch_cirrus.c
-@@ -976,8 +976,10 @@ static void cs_automic(struct hda_codec *codec)
- 	/* specific to CS421x, single ADC */
- 	if (spec->vendor_nid == CS421X_VENDOR_NID) {
- 		if (present) {
--			spec->last_input = spec->cur_input;
--			spec->cur_input = spec->automic_idx;
-+			if (spec->cur_input != spec->automic_idx) {
-+				spec->last_input = spec->cur_input;
-+				spec->cur_input = spec->automic_idx;
-+			}
- 		} else  {
- 			spec->cur_input = spec->last_input;
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0006-ALSA-hda-Allow-analog-low-current-mode-when-dynamic-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0006-ALSA-hda-Allow-analog-low-current-mode-when-dynamic-.patch
deleted file mode 100644
index c52709a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0006-ALSA-hda-Allow-analog-low-current-mode-when-dynamic-.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From 65cbea9482aee087726b832dd6eacbf98f32e063 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 1 Feb 2012 10:33:23 +0100
-Subject: [PATCH 06/87] ALSA: hda - Allow analog low-current mode when dynamic
- power-control is on
-
-commit e9d010c2e8f03952e67a6fd8aed0f0dc92084ccc upstream.
-
-VIA codecs have several different power-saving features, and one of
-them is the analog low-current mode.  But it turned out that the ALC
-mode causes pop-noises at each on/off time on some machines.  As a
-quick workaround, disable the ALC when another power-saving feature,
-the dynamic pin power-control, is turned off, too, since the dynamic
-power-control is already exposed as a mixer enum element so that user
-can turn it on/off freely.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=741128
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_via.c |   27 +++++++++++++++++++++------
- 1 file changed, 21 insertions(+), 6 deletions(-)
-
-diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
-index 0684542..d2a477d 100644
---- a/sound/pci/hda/patch_via.c
-+++ b/sound/pci/hda/patch_via.c
-@@ -198,6 +198,9 @@ struct via_spec {
- 	unsigned int no_pin_power_ctl;
- 	enum VIA_HDA_CODEC codec_type;
- 
-+	/* analog low-power control */
-+	bool alc_mode;
-+
- 	/* smart51 setup */
- 	unsigned int smart51_nums;
- 	hda_nid_t smart51_pins[2];
-@@ -748,6 +751,7 @@ static int via_pin_power_ctl_put(struct snd_kcontrol *kcontrol,
- 		return 0;
- 	spec->no_pin_power_ctl = val;
- 	set_widgets_power_state(codec);
-+	analog_low_current_mode(codec);
- 	return 1;
- }
- 
-@@ -1035,13 +1039,19 @@ static bool is_aa_path_mute(struct hda_codec *codec)
- }
- 
- /* enter/exit analog low-current mode */
--static void analog_low_current_mode(struct hda_codec *codec)
-+static void __analog_low_current_mode(struct hda_codec *codec, bool force)
- {
- 	struct via_spec *spec = codec->spec;
- 	bool enable;
- 	unsigned int verb, parm;
- 
--	enable = is_aa_path_mute(codec) && !spec->opened_streams;
-+	if (spec->no_pin_power_ctl)
-+		enable = false;
-+	else
-+		enable = is_aa_path_mute(codec) && !spec->opened_streams;
-+	if (enable == spec->alc_mode && !force)
-+		return;
-+	spec->alc_mode = enable;
- 
- 	/* decide low current mode's verb & parameter */
- 	switch (spec->codec_type) {
-@@ -1073,6 +1083,11 @@ static void analog_low_current_mode(struct hda_codec *codec)
- 	snd_hda_codec_write(codec, codec->afg, 0, verb, parm);
- }
- 
-+static void analog_low_current_mode(struct hda_codec *codec)
-+{
-+	return __analog_low_current_mode(codec, false);
-+}
-+
- /*
-  * generic initialization of ADC, input mixers and output mixers
-  */
-@@ -1498,10 +1513,6 @@ static int via_build_controls(struct hda_codec *codec)
- 			return err;
- 	}
- 
--	/* init power states */
--	set_widgets_power_state(codec);
--	analog_low_current_mode(codec);
--
- 	via_free_kctls(codec); /* no longer needed */
- 	return 0;
- }
-@@ -2771,6 +2782,10 @@ static int via_init(struct hda_codec *codec)
- 	for (i = 0; i < spec->num_iverbs; i++)
- 		snd_hda_sequence_write(codec, spec->init_verbs[i]);
- 
-+	/* init power states */
-+	set_widgets_power_state(codec);
-+	__analog_low_current_mode(codec, true);
-+
- 	via_auto_init_multi_out(codec);
- 	via_auto_init_hp_out(codec);
- 	via_auto_init_speaker_out(codec);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0007-ALSA-HDA-Fix-duplicated-output-to-more-than-one-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0007-ALSA-HDA-Fix-duplicated-output-to-more-than-one-code.patch
deleted file mode 100644
index e70d054..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0007-ALSA-HDA-Fix-duplicated-output-to-more-than-one-code.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 826f0a2fa02e818856fec7ec2ee612975c1fe415 Mon Sep 17 00:00:00 2001
-From: David Henningsson <david.henningsson at canonical.com>
-Date: Wed, 1 Feb 2012 12:05:41 +0100
-Subject: [PATCH 07/87] ALSA: HDA: Fix duplicated output to more than one
- codec
-
-commit 54c2a89f60fd71b924d0f848ac892442951401a6 upstream.
-
-This typo caused the wrong codec's nid to be checked for wcaps type.
-As a result, sometimes speakers would duplicate the output sent to
-HDMI output.
-
-BugLink: https://bugs.launchpad.net/bugs/924320
-Signed-off-by: David Henningsson <david.henningsson at canonical.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/hda_codec.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/hda_codec.c b/sound/pci/hda/hda_codec.c
-index 4562e9d..05c8768 100644
---- a/sound/pci/hda/hda_codec.c
-+++ b/sound/pci/hda/hda_codec.c
-@@ -1446,7 +1446,7 @@ void snd_hda_codec_setup_stream(struct hda_codec *codec, hda_nid_t nid,
- 		for (i = 0; i < c->cvt_setups.used; i++) {
- 			p = snd_array_elem(&c->cvt_setups, i);
- 			if (!p->active && p->stream_tag == stream_tag &&
--			    get_wcaps_type(get_wcaps(codec, p->nid)) == type)
-+			    get_wcaps_type(get_wcaps(c, p->nid)) == type)
- 				p->dirty = 1;
- 		}
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0008-ALSA-hda-Disable-dynamic-power-control-for-VIA-as-de.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0008-ALSA-hda-Disable-dynamic-power-control-for-VIA-as-de.patch
deleted file mode 100644
index 48c5f44..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0008-ALSA-hda-Disable-dynamic-power-control-for-VIA-as-de.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 7a3c6e67be916c3ca24b5ef0acdc5e32ab4e3559 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 2 Feb 2012 10:30:17 +0100
-Subject: [PATCH 08/87] ALSA: hda - Disable dynamic-power control for VIA as
- default
-
-commit b5bcc189401c815988b7dd37611fc56f40c9139d upstream.
-
-Since the dynamic pin power-control and the analog low-current mode
-may lead to pop-noise, it's safer to set it off as default.
-
-Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=741128
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_via.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
-index d2a477d..a0a3f50 100644
---- a/sound/pci/hda/patch_via.c
-+++ b/sound/pci/hda/patch_via.c
-@@ -1460,6 +1460,7 @@ static int via_build_controls(struct hda_codec *codec)
- 	struct snd_kcontrol *kctl;
- 	int err, i;
- 
-+	spec->no_pin_power_ctl = 1;
- 	if (spec->set_widgets_power_state)
- 		if (!via_clone_control(spec, &via_pin_power_ctl_enum))
- 			return -ENOMEM;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0009-ASoC-wm_hubs-Enable-line-out-VMID-buffer-for-single-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0009-ASoC-wm_hubs-Enable-line-out-VMID-buffer-for-single-.patch
deleted file mode 100644
index a27b975..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0009-ASoC-wm_hubs-Enable-line-out-VMID-buffer-for-single-.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From 83421691fca33f4cc4c93666a48f76cfb4c4f580 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Fri, 20 Jan 2012 12:19:43 +0000
-Subject: [PATCH 09/87] ASoC: wm_hubs: Enable line out VMID buffer for single
- ended line outputs
-
-commit 77231abe55433aa17eca712718745275853fa66d upstream.
-
-For optimal performance the single ended line outputs require that the
-line output VMID buffer be enabled.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm_hubs.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
-index 48e61e9..8c26c6d 100644
---- a/sound/soc/codecs/wm_hubs.c
-+++ b/sound/soc/codecs/wm_hubs.c
-@@ -614,6 +614,8 @@ SND_SOC_DAPM_INPUT("IN2RP:VXRP"),
- SND_SOC_DAPM_MICBIAS("MICBIAS2", WM8993_POWER_MANAGEMENT_1, 5, 0),
- SND_SOC_DAPM_MICBIAS("MICBIAS1", WM8993_POWER_MANAGEMENT_1, 4, 0),
- 
-+SND_SOC_DAPM_SUPPLY("LINEOUT_VMID_BUF", WM8993_ANTIPOP1, 7, 0, NULL, 0),
-+
- SND_SOC_DAPM_MIXER("IN1L PGA", WM8993_POWER_MANAGEMENT_2, 6, 0,
- 		   in1l_pga, ARRAY_SIZE(in1l_pga)),
- SND_SOC_DAPM_MIXER("IN1R PGA", WM8993_POWER_MANAGEMENT_2, 4, 0,
-@@ -832,9 +834,11 @@ static const struct snd_soc_dapm_route lineout1_diff_routes[] = {
- };
- 
- static const struct snd_soc_dapm_route lineout1_se_routes[] = {
-+	{ "LINEOUT1N Mixer", NULL, "LINEOUT_VMID_BUF" },
- 	{ "LINEOUT1N Mixer", "Left Output Switch", "Left Output PGA" },
- 	{ "LINEOUT1N Mixer", "Right Output Switch", "Right Output PGA" },
- 
-+	{ "LINEOUT1P Mixer", NULL, "LINEOUT_VMID_BUF" },
- 	{ "LINEOUT1P Mixer", "Left Output Switch", "Left Output PGA" },
- 
- 	{ "LINEOUT1N Driver", NULL, "LINEOUT1N Mixer" },
-@@ -851,9 +855,11 @@ static const struct snd_soc_dapm_route lineout2_diff_routes[] = {
- };
- 
- static const struct snd_soc_dapm_route lineout2_se_routes[] = {
-+	{ "LINEOUT2N Mixer", NULL, "LINEOUT_VMID_BUF" },
- 	{ "LINEOUT2N Mixer", "Left Output Switch", "Left Output PGA" },
- 	{ "LINEOUT2N Mixer", "Right Output Switch", "Right Output PGA" },
- 
-+	{ "LINEOUT2P Mixer", NULL, "LINEOUT_VMID_BUF" },
- 	{ "LINEOUT2P Mixer", "Right Output Switch", "Right Output PGA" },
- 
- 	{ "LINEOUT2N Driver", NULL, "LINEOUT2N Mixer" },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0010-ASoC-wm_hubs-fix-wrong-bits-for-LINEOUT2-N-P-mixer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0010-ASoC-wm_hubs-fix-wrong-bits-for-LINEOUT2-N-P-mixer.patch
deleted file mode 100644
index 17e30a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0010-ASoC-wm_hubs-fix-wrong-bits-for-LINEOUT2-N-P-mixer.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e2c53a1bd85306f4f0c92a00062df81ee4f6f0e2 Mon Sep 17 00:00:00 2001
-From: UK KIM <w0806.kim at samsung.com>
-Date: Sat, 28 Jan 2012 01:52:22 +0900
-Subject: [PATCH 10/87] ASoC: wm_hubs: fix wrong bits for LINEOUT2 N/P mixer
-
-commit 114395c61ad2eb5a7a5cd163fcadb2414e48245a upstream.
-
-Signed-off-by: UK KIM <w0806.kim at samsung.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm_hubs.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
-index 8c26c6d..8547191 100644
---- a/sound/soc/codecs/wm_hubs.c
-+++ b/sound/soc/codecs/wm_hubs.c
-@@ -593,8 +593,8 @@ SOC_DAPM_SINGLE("Output Switch", WM8993_LINE_MIXER2, 0, 1, 0),
- };
- 
- static const struct snd_kcontrol_new line2n_mix[] = {
--SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER2, 6, 1, 0),
--SOC_DAPM_SINGLE("Right Output Switch", WM8993_LINE_MIXER2, 5, 1, 0),
-+SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER2, 5, 1, 0),
-+SOC_DAPM_SINGLE("Right Output Switch", WM8993_LINE_MIXER2, 6, 1, 0),
- };
- 
- static const struct snd_kcontrol_new line2p_mix[] = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0011-ARM-7306-1-vfp-flush-thread-hwstate-before-restoring.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0011-ARM-7306-1-vfp-flush-thread-hwstate-before-restoring.patch
deleted file mode 100644
index db64277..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0011-ARM-7306-1-vfp-flush-thread-hwstate-before-restoring.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 68fcfb203bfa59a51cbe8b5828b0e61b3a75e751 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Mon, 30 Jan 2012 20:21:42 +0100
-Subject: [PATCH 11/87] ARM: 7306/1: vfp: flush thread hwstate before
- restoring context from sigframe
-
-commit 2af276dfb1722e97b190bd2e646b079a2aa674db upstream.
-
-Following execution of a signal handler, we currently restore the VFP
-context from the ucontext in the signal frame. This involves copying
-from the user stack into the current thread's vfp_hard_struct and then
-flushing the new data out to the hardware registers.
-
-This is problematic when using a preemptible kernel because we could be
-context switched whilst updating the vfp_hard_struct. If the current
-thread has made use of VFP since the last context switch, the VFP
-notifier will copy from the hardware registers into the vfp_hard_struct,
-overwriting any data that had been partially copied by the signal code.
-
-Disabling preemption across copy_from_user calls is a terrible idea, so
-instead we move the VFP thread flush *before* we update the
-vfp_hard_struct. Since the flushing is performed lazily, this has the
-effect of disabling VFP and clearing the CPU's VFP state pointer,
-therefore preventing the thread from being updated with stale data on
-the next context switch.
-
-Tested-by: Peter Maydell <peter.maydell at linaro.org>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/kernel/signal.c |    5 ++---
- 1 file changed, 2 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/kernel/signal.c b/arch/arm/kernel/signal.c
-index 0340224..9e617bd 100644
---- a/arch/arm/kernel/signal.c
-+++ b/arch/arm/kernel/signal.c
-@@ -227,6 +227,8 @@ static int restore_vfp_context(struct vfp_sigframe __user *frame)
- 	if (magic != VFP_MAGIC || size != VFP_STORAGE_SIZE)
- 		return -EINVAL;
- 
-+	vfp_flush_hwstate(thread);
-+
- 	/*
- 	 * Copy the floating point registers. There can be unused
- 	 * registers see asm/hwcap.h for details.
-@@ -251,9 +253,6 @@ static int restore_vfp_context(struct vfp_sigframe __user *frame)
- 	__get_user_error(h->fpinst, &frame->ufp_exc.fpinst, err);
- 	__get_user_error(h->fpinst2, &frame->ufp_exc.fpinst2, err);
- 
--	if (!err)
--		vfp_flush_hwstate(thread);
--
- 	return err ? -EFAULT : 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0012-ARM-7307-1-vfp-fix-ptrace-regset-modification-race.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0012-ARM-7307-1-vfp-fix-ptrace-regset-modification-race.patch
deleted file mode 100644
index bba5115..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0012-ARM-7307-1-vfp-fix-ptrace-regset-modification-race.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 20fe4af03ac8d07995107e8686d62a3e9b2b267c Mon Sep 17 00:00:00 2001
-From: Dave Martin <dave.martin at linaro.org>
-Date: Mon, 30 Jan 2012 20:22:28 +0100
-Subject: [PATCH 12/87] ARM: 7307/1: vfp: fix ptrace regset modification race
-
-commit 247f4993a5974e6759606c4d380748eecfd273ff upstream.
-
-In a preemptible kernel, vfp_set() can be preempted, causing the
-hardware VFP context to be switched while the thread vfp state is
-being read and modified.  This leads to a race condition which can
-cause the thread vfp state to become corrupted if lazy VFP context
-save occurs due to preemption in between the time thread->vfpstate
-is read and the time the modified state is written back.
-
-This may occur if preemption occurs during the execution of a
-ptrace() call which modifies the VFP register state of a thread.
-Such instances should be very rare in most realistic scenarios --
-none has been reported, so far as I am aware.  Only uniprocessor
-systems should be affected, since VFP context save is not currently
-lazy in SMP kernels.
-
-The problem was introduced by my earlier patch migrating to use
-regsets to implement ptrace.
-
-This patch does a vfp_sync_hwstate() before reading
-thread->vfpstate, to make sure that the thread's VFP state is not
-live in the hardware registers while the registers are modified.
-
-Thanks to Will Deacon for spotting this.
-
-Signed-off-by: Dave Martin <dave.martin at linaro.org>
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/kernel/ptrace.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
-index 483727a..8b17fb4 100644
---- a/arch/arm/kernel/ptrace.c
-+++ b/arch/arm/kernel/ptrace.c
-@@ -699,10 +699,13 @@ static int vfp_set(struct task_struct *target,
- {
- 	int ret;
- 	struct thread_info *thread = task_thread_info(target);
--	struct vfp_hard_struct new_vfp = thread->vfpstate.hard;
-+	struct vfp_hard_struct new_vfp;
- 	const size_t user_fpregs_offset = offsetof(struct user_vfp, fpregs);
- 	const size_t user_fpscr_offset = offsetof(struct user_vfp, fpscr);
- 
-+	vfp_sync_hwstate(thread);
-+	new_vfp = thread->vfpstate.hard;
-+
- 	ret = user_regset_copyin(&pos, &count, &kbuf, &ubuf,
- 				  &new_vfp.fpregs,
- 				  user_fpregs_offset,
-@@ -723,7 +726,6 @@ static int vfp_set(struct task_struct *target,
- 	if (ret)
- 		return ret;
- 
--	vfp_sync_hwstate(thread);
- 	thread->vfpstate.hard = new_vfp;
- 	vfp_flush_hwstate(thread);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0013-ARM-7308-1-vfp-flush-thread-hwstate-before-copying-p.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0013-ARM-7308-1-vfp-flush-thread-hwstate-before-copying-p.patch
deleted file mode 100644
index 580f2b6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0013-ARM-7308-1-vfp-flush-thread-hwstate-before-copying-p.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 607dfed817aeab143bc5d9533fbcba4660216ce7 Mon Sep 17 00:00:00 2001
-From: Will Deacon <will.deacon at arm.com>
-Date: Mon, 30 Jan 2012 20:23:29 +0100
-Subject: [PATCH 13/87] ARM: 7308/1: vfp: flush thread hwstate before copying
- ptrace registers
-
-commit 8130b9d7b9d858aa04ce67805e8951e3cb6e9b2f upstream.
-
-If we are context switched whilst copying into a thread's
-vfp_hard_struct then the partial copy may be corrupted by the VFP
-context switching code (see "ARM: vfp: flush thread hwstate before
-restoring context from sigframe").
-
-This patch updates the ptrace VFP set code so that the thread state is
-flushed before the copy, therefore disabling VFP and preventing
-corruption from occurring.
-
-Signed-off-by: Will Deacon <will.deacon at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/kernel/ptrace.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/kernel/ptrace.c b/arch/arm/kernel/ptrace.c
-index 8b17fb4..90fa8b3 100644
---- a/arch/arm/kernel/ptrace.c
-+++ b/arch/arm/kernel/ptrace.c
-@@ -726,8 +726,8 @@ static int vfp_set(struct task_struct *target,
- 	if (ret)
- 		return ret;
- 
--	thread->vfpstate.hard = new_vfp;
- 	vfp_flush_hwstate(thread);
-+	thread->vfpstate.hard = new_vfp;
- 
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0014-ARM-OMAP2-GPMC-fix-device-size-setup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0014-ARM-OMAP2-GPMC-fix-device-size-setup.patch
deleted file mode 100644
index d669b97..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0014-ARM-OMAP2-GPMC-fix-device-size-setup.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From d32f43943a473899c4ac53710148f066ebc0d227 Mon Sep 17 00:00:00 2001
-From: Yegor Yefremov <yegor_sub1 at visionsystems.de>
-Date: Mon, 23 Jan 2012 08:32:23 +0100
-Subject: [PATCH 14/87] ARM: OMAP2+: GPMC: fix device size setup
-
-commit 8ef5d844cc3a644ea6f7665932a4307e9fad01fa upstream.
-
-following statement can only change device size from 8-bit(0) to 16-bit(1),
-but not vice versa:
-
-regval |= GPMC_CONFIG1_DEVICESIZE(wval);
-
-so as this field has 1 reserved bit, that could be used in future,
-just clear both bits and then OR with the desired value
-
-Signed-off-by: Yegor Yefremov <yegorslists at googlemail.com>
-Signed-off-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-omap2/gpmc.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/gpmc.c b/arch/arm/mach-omap2/gpmc.c
-index a78f79d..9876c63 100644
---- a/arch/arm/mach-omap2/gpmc.c
-+++ b/arch/arm/mach-omap2/gpmc.c
-@@ -533,7 +533,13 @@ int gpmc_cs_configure(int cs, int cmd, int wval)
- 
- 	case GPMC_CONFIG_DEV_SIZE:
- 		regval  = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1);
-+
-+		/* clear 2 target bits */
-+		regval &= ~GPMC_CONFIG1_DEVICESIZE(3);
-+
-+		/* set the proper value */
- 		regval |= GPMC_CONFIG1_DEVICESIZE(wval);
-+
- 		gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, regval);
- 		break;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0015-drivers-tty-vt-vt_ioctl.c-fix-KDFONTOP-32bit-compati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0015-drivers-tty-vt-vt_ioctl.c-fix-KDFONTOP-32bit-compati.patch
deleted file mode 100644
index cd5f3c0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0015-drivers-tty-vt-vt_ioctl.c-fix-KDFONTOP-32bit-compati.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 5a972bf1cceb0d20c374e37656d26f1f304a38e6 Mon Sep 17 00:00:00 2001
-From: Samuel Thibault <samuel.thibault at ens-lyon.org>
-Date: Fri, 3 Feb 2012 15:37:15 -0800
-Subject: [PATCH 15/87] drivers/tty/vt/vt_ioctl.c: fix KDFONTOP 32bit
- compatibility layer
-
-commit cbcb8346054073d000ecac324763372d6abd44ac upstream.
-
-KDFONTOP(GET) currently fails with EIO when being run in a 32bit userland
-with a 64bit kernel if the font width is not 8.
-
-This is because of the setting of the KD_FONT_FLAG_OLD flag, which makes
-con_font_get return EIO in such case.
-
-This flag should *not* be set for KDFONTOP, since it's actually the whole
-point of this flag (see comment in con_font_set for instance).
-
-Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
-Reviewed-by: Arnd Bergmann <arnd at arndb.de>
-Cc: Arthur Taylor <art at ified.ca>
-Cc: Jiri Slaby <jslaby at suse.cz>
-Cc: Jiri Olsa <jolsa at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/tty/vt/vt_ioctl.c |    1 -
- 1 file changed, 1 deletion(-)
-
-diff --git a/drivers/tty/vt/vt_ioctl.c b/drivers/tty/vt/vt_ioctl.c
-index 5e096f4..65447c5 100644
---- a/drivers/tty/vt/vt_ioctl.c
-+++ b/drivers/tty/vt/vt_ioctl.c
-@@ -1463,7 +1463,6 @@ compat_kdfontop_ioctl(struct compat_console_font_op __user *fontop,
- 	if (!perm && op->op != KD_FONT_OP_GET)
- 		return -EPERM;
- 	op->data = compat_ptr(((struct compat_console_font_op *)op)->data);
--	op->flags |= KD_FONT_FLAG_OLD;
- 	i = con_font_op(vc, op);
- 	if (i)
- 		return i;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0016-proc-mem_release-should-check-mm-NULL.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0016-proc-mem_release-should-check-mm-NULL.patch
deleted file mode 100644
index 7ee6467..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0016-proc-mem_release-should-check-mm-NULL.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From d3e6dd07d5d36411c631bfeca9b736aff6632f6a Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Tue, 31 Jan 2012 17:14:38 +0100
-Subject: [PATCH 16/87] proc: mem_release() should check mm != NULL
-
-commit 71879d3cb3dd8f2dfdefb252775c1b3ea04a3dd4 upstream.
-
-mem_release() can hit mm == NULL, add the necessary check.
-
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/proc/base.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 1fc1dca..a43c70a 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -886,8 +886,8 @@ loff_t mem_lseek(struct file *file, loff_t offset, int orig)
- static int mem_release(struct inode *inode, struct file *file)
- {
- 	struct mm_struct *mm = file->private_data;
--
--	mmput(mm);
-+	if (mm)
-+		mmput(mm);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0017-proc-unify-mem_read-and-mem_write.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0017-proc-unify-mem_read-and-mem_write.patch
deleted file mode 100644
index 6ae11fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0017-proc-unify-mem_read-and-mem_write.patch
+++ /dev/null
@@ -1,148 +0,0 @@
-From 19ec05d824043ce28abee73023cfa8c1938d7094 Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Tue, 31 Jan 2012 17:14:54 +0100
-Subject: [PATCH 17/87] proc: unify mem_read() and mem_write()
-
-commit 572d34b946bae070debd42db1143034d9687e13f upstream.
-
-No functional changes, cleanup and preparation.
-
-mem_read() and mem_write() are very similar. Move this code into the
-new common helper, mem_rw(), which takes the additional "int write"
-argument.
-
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/proc/base.c |   90 ++++++++++++++++++++------------------------------------
- 1 file changed, 32 insertions(+), 58 deletions(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index a43c70a..0d3a4d1 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -782,57 +782,13 @@ static int mem_open(struct inode* inode, struct file* file)
- 	return 0;
- }
- 
--static ssize_t mem_read(struct file * file, char __user * buf,
--			size_t count, loff_t *ppos)
-+static ssize_t mem_rw(struct file *file, char __user *buf,
-+			size_t count, loff_t *ppos, int write)
- {
--	int ret;
--	char *page;
--	unsigned long src = *ppos;
- 	struct mm_struct *mm = file->private_data;
--
--	if (!mm)
--		return 0;
--
--	page = (char *)__get_free_page(GFP_TEMPORARY);
--	if (!page)
--		return -ENOMEM;
--
--	ret = 0;
-- 
--	while (count > 0) {
--		int this_len, retval;
--
--		this_len = (count > PAGE_SIZE) ? PAGE_SIZE : count;
--		retval = access_remote_vm(mm, src, page, this_len, 0);
--		if (!retval) {
--			if (!ret)
--				ret = -EIO;
--			break;
--		}
--
--		if (copy_to_user(buf, page, retval)) {
--			ret = -EFAULT;
--			break;
--		}
-- 
--		ret += retval;
--		src += retval;
--		buf += retval;
--		count -= retval;
--	}
--	*ppos = src;
--
--	free_page((unsigned long) page);
--	return ret;
--}
--
--static ssize_t mem_write(struct file * file, const char __user *buf,
--			 size_t count, loff_t *ppos)
--{
--	int copied;
-+	unsigned long addr = *ppos;
-+	ssize_t copied;
- 	char *page;
--	unsigned long dst = *ppos;
--	struct mm_struct *mm = file->private_data;
- 
- 	if (!mm)
- 		return 0;
-@@ -843,30 +799,48 @@ static ssize_t mem_write(struct file * file, const char __user *buf,
- 
- 	copied = 0;
- 	while (count > 0) {
--		int this_len, retval;
-+		int this_len = min_t(int, count, PAGE_SIZE);
- 
--		this_len = (count > PAGE_SIZE) ? PAGE_SIZE : count;
--		if (copy_from_user(page, buf, this_len)) {
-+		if (write && copy_from_user(page, buf, this_len)) {
- 			copied = -EFAULT;
- 			break;
- 		}
--		retval = access_remote_vm(mm, dst, page, this_len, 1);
--		if (!retval) {
-+
-+		this_len = access_remote_vm(mm, addr, page, this_len, write);
-+		if (!this_len) {
- 			if (!copied)
- 				copied = -EIO;
- 			break;
- 		}
--		copied += retval;
--		buf += retval;
--		dst += retval;
--		count -= retval;			
-+
-+		if (!write && copy_to_user(buf, page, this_len)) {
-+			copied = -EFAULT;
-+			break;
-+		}
-+
-+		buf += this_len;
-+		addr += this_len;
-+		copied += this_len;
-+		count -= this_len;
- 	}
--	*ppos = dst;
-+	*ppos = addr;
- 
- 	free_page((unsigned long) page);
- 	return copied;
- }
- 
-+static ssize_t mem_read(struct file *file, char __user *buf,
-+			size_t count, loff_t *ppos)
-+{
-+	return mem_rw(file, buf, count, ppos, 0);
-+}
-+
-+static ssize_t mem_write(struct file *file, const char __user *buf,
-+			 size_t count, loff_t *ppos)
-+{
-+	return mem_rw(file, (char __user*)buf, count, ppos, 1);
-+}
-+
- loff_t mem_lseek(struct file *file, loff_t offset, int orig)
- {
- 	switch (orig) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0018-proc-make-sure-mem_open-doesn-t-pin-the-target-s-mem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0018-proc-make-sure-mem_open-doesn-t-pin-the-target-s-mem.patch
deleted file mode 100644
index 0da05f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0018-proc-make-sure-mem_open-doesn-t-pin-the-target-s-mem.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From ccd98cceae110edd9447fc878523f2a2ac427978 Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Tue, 31 Jan 2012 17:15:11 +0100
-Subject: [PATCH 18/87] proc: make sure mem_open() doesn't pin the target's
- memory
-
-commit 6d08f2c7139790c268820a2e590795cb8333181a upstream.
-
-Once /proc/pid/mem is opened, the memory can't be released until
-mem_release() even if its owner exits.
-
-Change mem_open() to do atomic_inc(mm_count) + mmput(), this only
-pins mm_struct. Change mem_rw() to do atomic_inc_not_zero(mm_count)
-before access_remote_vm(), this verifies that this mm is still alive.
-
-I am not sure what should mem_rw() return if atomic_inc_not_zero()
-fails. With this patch it returns zero to match the "mm == NULL" case,
-may be it should return -EINVAL like it did before e268337d.
-
-Perhaps it makes sense to add the additional fatal_signal_pending()
-check into the main loop, to ensure we do not hold this memory if
-the target task was oom-killed.
-
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/proc/base.c |   14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/fs/proc/base.c b/fs/proc/base.c
-index 0d3a4d1..1ace83d 100644
---- a/fs/proc/base.c
-+++ b/fs/proc/base.c
-@@ -775,6 +775,13 @@ static int mem_open(struct inode* inode, struct file* file)
- 	if (IS_ERR(mm))
- 		return PTR_ERR(mm);
- 
-+	if (mm) {
-+		/* ensure this mm_struct can't be freed */
-+		atomic_inc(&mm->mm_count);
-+		/* but do not pin its memory */
-+		mmput(mm);
-+	}
-+
- 	/* OK to pass negative loff_t, we can catch out-of-range */
- 	file->f_mode |= FMODE_UNSIGNED_OFFSET;
- 	file->private_data = mm;
-@@ -798,6 +805,9 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
- 		return -ENOMEM;
- 
- 	copied = 0;
-+	if (!atomic_inc_not_zero(&mm->mm_users))
-+		goto free;
-+
- 	while (count > 0) {
- 		int this_len = min_t(int, count, PAGE_SIZE);
- 
-@@ -825,6 +835,8 @@ static ssize_t mem_rw(struct file *file, char __user *buf,
- 	}
- 	*ppos = addr;
- 
-+	mmput(mm);
-+free:
- 	free_page((unsigned long) page);
- 	return copied;
- }
-@@ -861,7 +873,7 @@ static int mem_release(struct inode *inode, struct file *file)
- {
- 	struct mm_struct *mm = file->private_data;
- 	if (mm)
--		mmput(mm);
-+		mmdrop(mm);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0019-firewire-ohci-add-reset-packet-quirk-for-SB-Audigy.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0019-firewire-ohci-add-reset-packet-quirk-for-SB-Audigy.patch
deleted file mode 100644
index d4a57cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0019-firewire-ohci-add-reset-packet-quirk-for-SB-Audigy.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 59aff516b4bc260d4663af0d664eb08b54559e1d Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens at ladisch.de>
-Date: Thu, 26 Jan 2012 22:05:58 +0100
-Subject: [PATCH 19/87] firewire: ohci: add reset packet quirk for SB Audigy
-
-commit d1bb399ad03c11e792f6dea198d3b1e23061f094 upstream.
-
-The Audigy's SB1394 controller is actually from Texas Instruments
-and has the same bus reset packet generation bug, so it needs the
-same quirk entry.
-
-Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/firewire/ohci.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
-index 6628fea..21250ec 100644
---- a/drivers/firewire/ohci.c
-+++ b/drivers/firewire/ohci.c
-@@ -263,6 +263,7 @@ static inline struct fw_ohci *fw_ohci(struct fw_card *card)
- static char ohci_driver_name[] = KBUILD_MODNAME;
- 
- #define PCI_DEVICE_ID_AGERE_FW643	0x5901
-+#define PCI_DEVICE_ID_CREATIVE_SB1394	0x4001
- #define PCI_DEVICE_ID_JMICRON_JMB38X_FW	0x2380
- #define PCI_DEVICE_ID_TI_TSB12LV22	0x8009
- #define PCI_DEVICE_ID_TI_TSB12LV26	0x8020
-@@ -289,6 +290,9 @@ static const struct {
- 	{PCI_VENDOR_ID_ATT, PCI_DEVICE_ID_AGERE_FW643, 6,
- 		QUIRK_NO_MSI},
- 
-+	{PCI_VENDOR_ID_CREATIVE, PCI_DEVICE_ID_CREATIVE_SB1394, PCI_ANY_ID,
-+		QUIRK_RESET_PACKET},
-+
- 	{PCI_VENDOR_ID_JMICRON, PCI_DEVICE_ID_JMICRON_JMB38X_FW, PCI_ANY_ID,
- 		QUIRK_NO_MSI},
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0020-firewire-ohci-disable-MSI-on-Ricoh-controllers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0020-firewire-ohci-disable-MSI-on-Ricoh-controllers.patch
deleted file mode 100644
index 8e1ee16..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0020-firewire-ohci-disable-MSI-on-Ricoh-controllers.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0e565652857c8f01d2fe7061ec7bb82cb6ee3460 Mon Sep 17 00:00:00 2001
-From: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Date: Sun, 29 Jan 2012 12:41:15 +0100
-Subject: [PATCH 20/87] firewire: ohci: disable MSI on Ricoh controllers
-
-commit 320cfa6ce0b3dc794fedfa4bae54c0f65077234d upstream.
-
-The PCIe device
-
-    FireWire (IEEE 1394) [0c00]: Ricoh Co Ltd FireWire Host Controller
-    [1180:e832] (prog-if 10 [OHCI])
-
-is unable to access attached FireWire devices when MSI is enabled but
-works if MSI is disabled.
-http://www.mail-archive.com/alsa-user@lists.sourceforge.net/msg28251.html
-
-Hence add the "disable MSI" quirks flag for this device, or in fact for
-safety and simplicity for all current (R5U230, R5U231, R5U240) and
-future Ricoh PCIe 1394 controllers.
-
-Reported-by: Stefan Thomas <kontrapunktstefan at googlemail.com>
-Signed-off-by: Stefan Richter <stefanr at s5r6.in-berlin.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/firewire/ohci.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/firewire/ohci.c b/drivers/firewire/ohci.c
-index 21250ec..7f5f0da 100644
---- a/drivers/firewire/ohci.c
-+++ b/drivers/firewire/ohci.c
-@@ -303,7 +303,7 @@ static const struct {
- 		QUIRK_NO_MSI},
- 
- 	{PCI_VENDOR_ID_RICOH, PCI_ANY_ID, PCI_ANY_ID,
--		QUIRK_CYCLE_TIMER},
-+		QUIRK_CYCLE_TIMER | QUIRK_NO_MSI},
- 
- 	{PCI_VENDOR_ID_TI, PCI_DEVICE_ID_TI_TSB12LV22, PCI_ANY_ID,
- 		QUIRK_CYCLE_TIMER | QUIRK_RESET_PACKET | QUIRK_NO_1394A},
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch
deleted file mode 100644
index bf61305..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From f915ece79ba2a9b640ae7f728cef3b54c31ffd18 Mon Sep 17 00:00:00 2001
-From: Jack Morgenstein <jackm at mellanox.com>
-Date: Thu, 26 Jan 2012 16:41:33 +0200
-Subject: [PATCH 21/87] IB/mlx4: pass SMP vendor-specific attribute MADs to
- firmware
-
-commit a6f7feae6d19e84253918d88b04153af09d3a243 upstream.
-
-In the current code, vendor-specific MADs (e.g with the FDR-10
-attribute) are silently dropped by the driver, resulting in timeouts
-at the sending side and inability to query/configure the relevant
-feature.  However, the ConnectX firmware is able to handle such MADs.
-For unsupported attributes, the firmware returns a GET_RESPONSE MAD
-containing an error status.
-
-For example, for a FDR-10 node with LID 11:
-
-    # ibstat mlx4_0 1
-
-    CA: 'mlx4_0'
-    Port 1:
-    State: Active
-    Physical state: LinkUp
-    Rate: 40 (FDR10)
-    Base lid: 11
-    LMC: 0
-    SM lid: 24
-    Capability mask: 0x02514868
-    Port GUID: 0x0002c903002e65d1
-    Link layer: InfiniBand
-
-Extended Port Query (EPI) vendor mad timeouts before the patch:
-
-    # smpquery MEPI 11 -d
-
-    ibwarn: [4196] smp_query_via: attr 0xff90 mod 0x0 route Lid 11
-    ibwarn: [4196] _do_madrpc: retry 1 (timeout 1000 ms)
-    ibwarn: [4196] _do_madrpc: retry 2 (timeout 1000 ms)
-    ibwarn: [4196] _do_madrpc: timeout after 3 retries, 3000 ms
-    ibwarn: [4196] mad_rpc: _do_madrpc failed; dport (Lid 11)
-    smpquery: iberror: [pid 4196] main: failed: operation EPI: ext port info query failed
-
-EPI query works OK with the patch:
-
-    # smpquery MEPI 11 -d
-
-    ibwarn: [6548] smp_query_via: attr 0xff90 mod 0x0 route Lid 11
-    ibwarn: [6548] mad_rpc: data offs 64 sz 64
-    mad data
-    0000 0000 0000 0001 0000 0001 0000 0001
-    0000 0000 0000 0000 0000 0000 0000 0000
-    0000 0000 0000 0000 0000 0000 0000 0000
-    0000 0000 0000 0000 0000 0000 0000 0000
-    # Ext Port info: Lid 11 port 0
-    StateChangeEnable:...............0x00
-    LinkSpeedSupported:..............0x01
-    LinkSpeedEnabled:................0x01
-    LinkSpeedActive:.................0x01
-
-Signed-off-by: Jack Morgenstein <jackm at mellanox.com>
-Signed-off-by: Or Gerlitz <ogerlitz at mellanox.com>
-Acked-by: Ira Weiny <weiny2 at llnl.gov>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/infiniband/hw/mlx4/mad.c |    7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/infiniband/hw/mlx4/mad.c b/drivers/infiniband/hw/mlx4/mad.c
-index f36da99..77702c0 100644
---- a/drivers/infiniband/hw/mlx4/mad.c
-+++ b/drivers/infiniband/hw/mlx4/mad.c
-@@ -256,12 +256,9 @@ static int ib_process_mad(struct ib_device *ibdev, int mad_flags, u8 port_num,
- 			return IB_MAD_RESULT_SUCCESS;
- 
- 		/*
--		 * Don't process SMInfo queries or vendor-specific
--		 * MADs -- the SMA can't handle them.
-+		 * Don't process SMInfo queries -- the SMA can't handle them.
- 		 */
--		if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO ||
--		    ((in_mad->mad_hdr.attr_id & IB_SMP_ATTR_VENDOR_MASK) ==
--		     IB_SMP_ATTR_VENDOR_MASK))
-+		if (in_mad->mad_hdr.attr_id == IB_SMP_ATTR_SM_INFO)
- 			return IB_MAD_RESULT_SUCCESS;
- 	} else if (in_mad->mad_hdr.mgmt_class == IB_MGMT_CLASS_PERF_MGMT ||
- 		   in_mad->mad_hdr.mgmt_class == MLX4_IB_VENDOR_CLASS1   ||
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0022-RDMA-core-Fix-kernel-panic-by-always-initializing-qp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0022-RDMA-core-Fix-kernel-panic-by-always-initializing-qp.patch
deleted file mode 100644
index 50a5546..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0022-RDMA-core-Fix-kernel-panic-by-always-initializing-qp.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 884b3f02d181a5f61f684fc7ac4af55fd4730575 Mon Sep 17 00:00:00 2001
-From: Bernd Schubert <bernd.schubert at itwm.fraunhofer.de>
-Date: Fri, 20 Jan 2012 18:43:54 +0000
-Subject: [PATCH 22/87] RDMA/core: Fix kernel panic by always initializing
- qp->usecnt
-
-commit e47e321a35c741ee41b67976f8c6a3a7a42bc5c0 upstream.
-
-We have just been investigating kernel panics related to
-cq->ibcq.event_handler() completion calls.  The problem is that
-ib_destroy_qp() fails with -EBUSY.
-
-Further investigation revealed qp->usecnt is not initialized.  This
-counter was introduced in linux-3.2 by commit 0e0ec7e0638e
-("RDMA/core: Export ib_open_qp() to share XRC TGT QPs") but it only
-gets initialized for IB_QPT_XRC_TGT, but it is checked in
-ib_destroy_qp() for any QP type.
-
-Fix this by initializing qp->usecnt for every QP we create.
-
-Signed-off-by: Bernd Schubert <bernd.schubert at itwm.fraunhofer.de>
-Signed-off-by: Sven Breuner <sven.breuner at itwm.fraunhofer.de>
-
-[ Initialize qp->usecnt in uverbs too.  - Sean ]
-
-Signed-off-by: Sean Hefty <sean.hefty at intel.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/infiniband/core/uverbs_cmd.c |    1 +
- drivers/infiniband/core/verbs.c      |    2 +-
- 2 files changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c
-index e3db8ef..a8445b8 100644
---- a/drivers/infiniband/core/uverbs_cmd.c
-+++ b/drivers/infiniband/core/uverbs_cmd.c
-@@ -1485,6 +1485,7 @@ ssize_t ib_uverbs_create_qp(struct ib_uverbs_file *file,
- 		qp->event_handler = attr.event_handler;
- 		qp->qp_context	  = attr.qp_context;
- 		qp->qp_type	  = attr.qp_type;
-+		atomic_set(&qp->usecnt, 0);
- 		atomic_inc(&pd->usecnt);
- 		atomic_inc(&attr.send_cq->usecnt);
- 		if (attr.recv_cq)
-diff --git a/drivers/infiniband/core/verbs.c b/drivers/infiniband/core/verbs.c
-index 602b1bd..575b780 100644
---- a/drivers/infiniband/core/verbs.c
-+++ b/drivers/infiniband/core/verbs.c
-@@ -421,6 +421,7 @@ struct ib_qp *ib_create_qp(struct ib_pd *pd,
- 		qp->uobject    = NULL;
- 		qp->qp_type    = qp_init_attr->qp_type;
- 
-+		atomic_set(&qp->usecnt, 0);
- 		if (qp_init_attr->qp_type == IB_QPT_XRC_TGT) {
- 			qp->event_handler = __ib_shared_qp_event_handler;
- 			qp->qp_context = qp;
-@@ -430,7 +431,6 @@ struct ib_qp *ib_create_qp(struct ib_pd *pd,
- 			qp->xrcd = qp_init_attr->xrcd;
- 			atomic_inc(&qp_init_attr->xrcd->usecnt);
- 			INIT_LIST_HEAD(&qp->open_list);
--			atomic_set(&qp->usecnt, 0);
- 
- 			real_qp = qp;
- 			qp = __ib_open_qp(real_qp, qp_init_attr->event_handler,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0023-kprobes-fix-a-memory-leak-in-function-pre_handler_kr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0023-kprobes-fix-a-memory-leak-in-function-pre_handler_kr.patch
deleted file mode 100644
index 7ce975f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0023-kprobes-fix-a-memory-leak-in-function-pre_handler_kr.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 1a3341ff80be39daad523f56898e5dbba8a89452 Mon Sep 17 00:00:00 2001
-From: Jiang Liu <liuj97 at gmail.com>
-Date: Fri, 3 Feb 2012 15:37:16 -0800
-Subject: [PATCH 23/87] kprobes: fix a memory leak in function
- pre_handler_kretprobe()
-
-commit 55ca6140e9bb307efc97a9301a4f501de02a6fd6 upstream.
-
-In function pre_handler_kretprobe(), the allocated kretprobe_instance
-object will get leaked if the entry_handler callback returns non-zero.
-This may cause all the preallocated kretprobe_instance objects exhausted.
-
-This issue can be reproduced by changing
-samples/kprobes/kretprobe_example.c to probe "mutex_unlock".  And the fix
-is straightforward: just put the allocated kretprobe_instance object back
-onto the free_instances list.
-
-[akpm at linux-foundation.org: use raw_spin_lock/unlock]
-Signed-off-by: Jiang Liu <jiang.liu at huawei.com>
-Acked-by: Jim Keniston <jkenisto at us.ibm.com>
-Acked-by: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
-Cc: Masami Hiramatsu <masami.hiramatsu.pt at hitachi.com>
-Cc: Anil S Keshavamurthy <anil.s.keshavamurthy at intel.com>
-Cc: "David S. Miller" <davem at davemloft.net>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/kprobes.c |    6 +++++-
- 1 file changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/kernel/kprobes.c b/kernel/kprobes.c
-index 52fd049..faa39d1 100644
---- a/kernel/kprobes.c
-+++ b/kernel/kprobes.c
-@@ -1673,8 +1673,12 @@ static int __kprobes pre_handler_kretprobe(struct kprobe *p,
- 		ri->rp = rp;
- 		ri->task = current;
- 
--		if (rp->entry_handler && rp->entry_handler(ri, regs))
-+		if (rp->entry_handler && rp->entry_handler(ri, regs)) {
-+			raw_spin_lock_irqsave(&rp->lock, flags);
-+			hlist_add_head(&ri->hlist, &rp->free_instances);
-+			raw_spin_unlock_irqrestore(&rp->lock, flags);
- 			return 0;
-+		}
- 
- 		arch_prepare_kretprobe(ri, regs);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0024-mtd-gpmi-nand-bugfix-reset-the-BCH-module-when-it-is.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0024-mtd-gpmi-nand-bugfix-reset-the-BCH-module-when-it-is.patch
deleted file mode 100644
index 99b074b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0024-mtd-gpmi-nand-bugfix-reset-the-BCH-module-when-it-is.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From 009d4c47bfb955c34de51bba777578451cd3aeb5 Mon Sep 17 00:00:00 2001
-From: Huang Shijie <b32955 at freescale.com>
-Date: Wed, 4 Jan 2012 11:18:46 +0800
-Subject: [PATCH 24/87] mtd: gpmi-nand bugfix: reset the BCH module when it is
- not MX23
-
-commit 9398d1ce09b9009996f7d2468e1d3c785fa6feda upstream.
-
-In MX28, if we do not reset the BCH module. The BCH module may
-becomes unstable when the board reboots for several thousands times.
-This bug has been catched in customer's production.
-
-The patch adds some comments (some from Wolfram Sang), and fixes it now.
-
-Also change gpmi_reset_block() to static.
-
-Signed-off-by: Huang Shijie <b32955 at freescale.com>
-Acked-by: Marek Vasut <marek.vasut at gmail.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/nand/gpmi-nand/gpmi-lib.c |   18 ++++++++++++++----
- 1 file changed, 14 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
-index de4db76..bb2fe60 100644
---- a/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
-+++ b/drivers/mtd/nand/gpmi-nand/gpmi-lib.c
-@@ -69,17 +69,19 @@ static int clear_poll_bit(void __iomem *addr, u32 mask)
-  *  [1] enable the module.
-  *  [2] reset the module.
-  *
-- * In most of the cases, it's ok. But there is a hardware bug in the BCH block.
-+ * In most of the cases, it's ok.
-+ * But in MX23, there is a hardware bug in the BCH block (see erratum #2847).
-  * If you try to soft reset the BCH block, it becomes unusable until
-  * the next hard reset. This case occurs in the NAND boot mode. When the board
-  * boots by NAND, the ROM of the chip will initialize the BCH blocks itself.
-  * So If the driver tries to reset the BCH again, the BCH will not work anymore.
-- * You will see a DMA timeout in this case.
-+ * You will see a DMA timeout in this case. The bug has been fixed
-+ * in the following chips, such as MX28.
-  *
-  * To avoid this bug, just add a new parameter `just_enable` for
-  * the mxs_reset_block(), and rewrite it here.
-  */
--int gpmi_reset_block(void __iomem *reset_addr, bool just_enable)
-+static int gpmi_reset_block(void __iomem *reset_addr, bool just_enable)
- {
- 	int ret;
- 	int timeout = 0x400;
-@@ -206,7 +208,15 @@ int bch_set_geometry(struct gpmi_nand_data *this)
- 	if (ret)
- 		goto err_out;
- 
--	ret = gpmi_reset_block(r->bch_regs, true);
-+	/*
-+	* Due to erratum #2847 of the MX23, the BCH cannot be soft reset on this
-+	* chip, otherwise it will lock up. So we skip resetting BCH on the MX23.
-+	* On the other hand, the MX28 needs the reset, because one case has been
-+	* seen where the BCH produced ECC errors constantly after 10000
-+	* consecutive reboots. The latter case has not been seen on the MX23 yet,
-+	* still we don't know if it could happen there as well.
-+	*/
-+	ret = gpmi_reset_block(r->bch_regs, GPMI_IS_MX23(this));
- 	if (ret)
- 		goto err_out;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0025-Revert-mtd-atmel_nand-optimize-read-write-buffer-fun.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0025-Revert-mtd-atmel_nand-optimize-read-write-buffer-fun.patch
deleted file mode 100644
index a354bc4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0025-Revert-mtd-atmel_nand-optimize-read-write-buffer-fun.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 583f7f13a6059282e43a820ef5d36c28bc7d4e32 Mon Sep 17 00:00:00 2001
-From: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Date: Thu, 2 Feb 2012 13:54:25 +0200
-Subject: [PATCH 25/87] Revert "mtd: atmel_nand: optimize read/write buffer
- functions"
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 500823195d0c9eec2a4637484f30cc93ec633d4a upstream.
-
-This reverts commit fb5427508abbd635e877fabdf55795488119c2d6.
-
-The reason is that it breaks 16 bits NAND flash as it was reported by
-Nikolaus Voss and confirmed by Eric Bénard.
-
-Nicolas Ferre <nicolas.ferre at atmel.com> alco confirmed:
-"After double checking with designers, I must admit that I misunderstood
-the way of optimizing accesses to SMC. 16 bit nand is not so common
-those days..."
-
-Reported-by: Nikolaus Voss <n.voss at weinmann.de>
-Acked-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Artem Bityutskiy <artem.bityutskiy at linux.intel.com>
-Signed-off-by: David Woodhouse <David.Woodhouse at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mtd/nand/atmel_nand.c |   45 +++++++++++++++++++++++++++++++++++++----
- 1 file changed, 41 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
-index 23e5d77..ee6e26e 100644
---- a/drivers/mtd/nand/atmel_nand.c
-+++ b/drivers/mtd/nand/atmel_nand.c
-@@ -161,6 +161,37 @@ static int atmel_nand_device_ready(struct mtd_info *mtd)
-                 !!host->board->rdy_pin_active_low;
- }
- 
-+/*
-+ * Minimal-overhead PIO for data access.
-+ */
-+static void atmel_read_buf8(struct mtd_info *mtd, u8 *buf, int len)
-+{
-+	struct nand_chip	*nand_chip = mtd->priv;
-+
-+	__raw_readsb(nand_chip->IO_ADDR_R, buf, len);
-+}
-+
-+static void atmel_read_buf16(struct mtd_info *mtd, u8 *buf, int len)
-+{
-+	struct nand_chip	*nand_chip = mtd->priv;
-+
-+	__raw_readsw(nand_chip->IO_ADDR_R, buf, len / 2);
-+}
-+
-+static void atmel_write_buf8(struct mtd_info *mtd, const u8 *buf, int len)
-+{
-+	struct nand_chip	*nand_chip = mtd->priv;
-+
-+	__raw_writesb(nand_chip->IO_ADDR_W, buf, len);
-+}
-+
-+static void atmel_write_buf16(struct mtd_info *mtd, const u8 *buf, int len)
-+{
-+	struct nand_chip	*nand_chip = mtd->priv;
-+
-+	__raw_writesw(nand_chip->IO_ADDR_W, buf, len / 2);
-+}
-+
- static void dma_complete_func(void *completion)
- {
- 	complete(completion);
-@@ -235,27 +266,33 @@ err_buf:
- static void atmel_read_buf(struct mtd_info *mtd, u8 *buf, int len)
- {
- 	struct nand_chip *chip = mtd->priv;
-+	struct atmel_nand_host *host = chip->priv;
- 
- 	if (use_dma && len > mtd->oobsize)
- 		/* only use DMA for bigger than oob size: better performances */
- 		if (atmel_nand_dma_op(mtd, buf, len, 1) == 0)
- 			return;
- 
--	/* if no DMA operation possible, use PIO */
--	memcpy_fromio(buf, chip->IO_ADDR_R, len);
-+	if (host->board->bus_width_16)
-+		atmel_read_buf16(mtd, buf, len);
-+	else
-+		atmel_read_buf8(mtd, buf, len);
- }
- 
- static void atmel_write_buf(struct mtd_info *mtd, const u8 *buf, int len)
- {
- 	struct nand_chip *chip = mtd->priv;
-+	struct atmel_nand_host *host = chip->priv;
- 
- 	if (use_dma && len > mtd->oobsize)
- 		/* only use DMA for bigger than oob size: better performances */
- 		if (atmel_nand_dma_op(mtd, (void *)buf, len, 0) == 0)
- 			return;
- 
--	/* if no DMA operation possible, use PIO */
--	memcpy_toio(chip->IO_ADDR_W, buf, len);
-+	if (host->board->bus_width_16)
-+		atmel_write_buf16(mtd, buf, len);
-+	else
-+		atmel_write_buf8(mtd, buf, len);
- }
- 
- /*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0026-at_hdmac-bugfix-for-enabling-channel-irq.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0026-at_hdmac-bugfix-for-enabling-channel-irq.patch
deleted file mode 100644
index f2acc86..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0026-at_hdmac-bugfix-for-enabling-channel-irq.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 694b43b07358d32bfee3b2d32e79e0c73e342dd4 Mon Sep 17 00:00:00 2001
-From: Nikolaus Voss <n.voss at weinmann.de>
-Date: Tue, 17 Jan 2012 10:28:33 +0100
-Subject: [PATCH 26/87] at_hdmac: bugfix for enabling channel irq
-
-commit bda3a47c886664e86ee14eb79e9072b9e341f575 upstream.
-
-commit 463894705e4089d0ff69e7d877312d496ac70e5b deleted redundant
-chan_id and chancnt initialization in dma drivers as this is done
-in dma_async_device_register().
-
-However, atc_enable_irq() relied on chan_id set before registering
-the device, what left only channel 0 functional for this driver.
-
-This patch introduces atc_enable/disable_chan_irq() as a variant
-of atc_enable/disable_irq() with the channel as explicit argument.
-
-Signed-off-by: Nikolaus Voss <n.voss at weinmann.de>
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Vinod Koul <vinod.koul at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/dma/at_hdmac.c      |    4 ++--
- drivers/dma/at_hdmac_regs.h |   17 ++++++++---------
- 2 files changed, 10 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/dma/at_hdmac.c b/drivers/dma/at_hdmac.c
-index fcfa0a8..a60adbf 100644
---- a/drivers/dma/at_hdmac.c
-+++ b/drivers/dma/at_hdmac.c
-@@ -1286,7 +1286,7 @@ static int __init at_dma_probe(struct platform_device *pdev)
- 
- 		tasklet_init(&atchan->tasklet, atc_tasklet,
- 				(unsigned long)atchan);
--		atc_enable_irq(atchan);
-+		atc_enable_chan_irq(atdma, i);
- 	}
- 
- 	/* set base routines */
-@@ -1353,7 +1353,7 @@ static int __exit at_dma_remove(struct platform_device *pdev)
- 		struct at_dma_chan	*atchan = to_at_dma_chan(chan);
- 
- 		/* Disable interrupts */
--		atc_disable_irq(atchan);
-+		atc_disable_chan_irq(atdma, chan->chan_id);
- 		tasklet_disable(&atchan->tasklet);
- 
- 		tasklet_kill(&atchan->tasklet);
-diff --git a/drivers/dma/at_hdmac_regs.h b/drivers/dma/at_hdmac_regs.h
-index aa4c9ae..5aa82b4 100644
---- a/drivers/dma/at_hdmac_regs.h
-+++ b/drivers/dma/at_hdmac_regs.h
-@@ -326,28 +326,27 @@ static void atc_dump_lli(struct at_dma_chan *atchan, struct at_lli *lli)
- }
- 
- 
--static void atc_setup_irq(struct at_dma_chan *atchan, int on)
-+static void atc_setup_irq(struct at_dma *atdma, int chan_id, int on)
- {
--	struct at_dma	*atdma = to_at_dma(atchan->chan_common.device);
--	u32		ebci;
-+	u32 ebci;
- 
- 	/* enable interrupts on buffer transfer completion & error */
--	ebci =    AT_DMA_BTC(atchan->chan_common.chan_id)
--		| AT_DMA_ERR(atchan->chan_common.chan_id);
-+	ebci =    AT_DMA_BTC(chan_id)
-+		| AT_DMA_ERR(chan_id);
- 	if (on)
- 		dma_writel(atdma, EBCIER, ebci);
- 	else
- 		dma_writel(atdma, EBCIDR, ebci);
- }
- 
--static inline void atc_enable_irq(struct at_dma_chan *atchan)
-+static void atc_enable_chan_irq(struct at_dma *atdma, int chan_id)
- {
--	atc_setup_irq(atchan, 1);
-+	atc_setup_irq(atdma, chan_id, 1);
- }
- 
--static inline void atc_disable_irq(struct at_dma_chan *atchan)
-+static void atc_disable_chan_irq(struct at_dma *atdma, int chan_id)
- {
--	atc_setup_irq(atchan, 0);
-+	atc_setup_irq(atdma, chan_id, 0);
- }
- 
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0027-mm-filemap_xip.c-fix-race-condition-in-xip_file_faul.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0027-mm-filemap_xip.c-fix-race-condition-in-xip_file_faul.patch
deleted file mode 100644
index 2832716..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0027-mm-filemap_xip.c-fix-race-condition-in-xip_file_faul.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 822964b632652a6c6f2d7a286e3719b5359c736c Mon Sep 17 00:00:00 2001
-From: Carsten Otte <carsteno at de.ibm.com>
-Date: Fri, 3 Feb 2012 15:37:14 -0800
-Subject: [PATCH 27/87] mm/filemap_xip.c: fix race condition in
- xip_file_fault()
-
-commit 99f02ef1f18631eb0a4e0ea0a3d56878dbcb4b90 upstream.
-
-Fix a race condition that shows in conjunction with xip_file_fault() when
-two threads of the same user process fault on the same memory page.
-
-In this case, the race winner will install the page table entry and the
-unlucky loser will cause an oops: xip_file_fault calls vm_insert_pfn (via
-vm_insert_mixed) which drops out at this check:
-
-	retval = -EBUSY;
-	if (!pte_none(*pte))
-		goto out_unlock;
-
-The resulting -EBUSY return value will trigger a BUG_ON() in
-xip_file_fault.
-
-This fix simply considers the fault as fixed in this case, because the
-race winner has successfully installed the pte.
-
-[akpm at linux-foundation.org: use conventional (and consistent) comment layout]
-Reported-by: David Sadler <dsadler at us.ibm.com>
-Signed-off-by: Carsten Otte <cotte at de.ibm.com>
-Reported-by: Louis Alex Eisner <leisner at cs.ucsd.edu>
-Cc: Hugh Dickins <hughd at google.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/filemap_xip.c |    7 ++++++-
- 1 file changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/mm/filemap_xip.c b/mm/filemap_xip.c
-index f91b2f6..a4eb311 100644
---- a/mm/filemap_xip.c
-+++ b/mm/filemap_xip.c
-@@ -263,7 +263,12 @@ found:
- 							xip_pfn);
- 		if (err == -ENOMEM)
- 			return VM_FAULT_OOM;
--		BUG_ON(err);
-+		/*
-+		 * err == -EBUSY is fine, we've raced against another thread
-+		 * that faulted-in the same page
-+		 */
-+		if (err != -EBUSY)
-+			BUG_ON(err);
- 		return VM_FAULT_NOPAGE;
- 	} else {
- 		int err, ret = VM_FAULT_OOM;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0028-mm-compaction-check-pfn_valid-when-entering-a-new-MA.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0028-mm-compaction-check-pfn_valid-when-entering-a-new-MA.patch
deleted file mode 100644
index b90a994..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0028-mm-compaction-check-pfn_valid-when-entering-a-new-MA.patch
+++ /dev/null
@@ -1,112 +0,0 @@
-From 7129533bc15954a0f2badb0092f701540409c7a5 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Fri, 3 Feb 2012 15:37:18 -0800
-Subject: [PATCH 28/87] mm: compaction: check pfn_valid when entering a new
- MAX_ORDER_NR_PAGES block during isolation for
- migration
-
-commit 0bf380bc70ecba68cb4d74dc656cc2fa8c4d801a upstream.
-
-When isolating for migration, migration starts at the start of a zone
-which is not necessarily pageblock aligned.  Further, it stops isolating
-when COMPACT_CLUSTER_MAX pages are isolated so migrate_pfn is generally
-not aligned.  This allows isolate_migratepages() to call pfn_to_page() on
-an invalid PFN which can result in a crash.  This was originally reported
-against a 3.0-based kernel with the following trace in a crash dump.
-
-PID: 9902   TASK: d47aecd0  CPU: 0   COMMAND: "memcg_process_s"
- #0 [d72d3ad0] crash_kexec at c028cfdb
- #1 [d72d3b24] oops_end at c05c5322
- #2 [d72d3b38] __bad_area_nosemaphore at c0227e60
- #3 [d72d3bec] bad_area at c0227fb6
- #4 [d72d3c00] do_page_fault at c05c72ec
- #5 [d72d3c80] error_code (via page_fault) at c05c47a4
-    EAX: 00000000  EBX: 000c0000  ECX: 00000001  EDX: 00000807  EBP: 000c0000
-    DS:  007b      ESI: 00000001  ES:  007b      EDI: f3000a80  GS:  6f50
-    CS:  0060      EIP: c030b15a  ERR: ffffffff  EFLAGS: 00010002
- #6 [d72d3cb4] isolate_migratepages at c030b15a
- #7 [d72d3d14] zone_watermark_ok at c02d26cb
- #8 [d72d3d2c] compact_zone at c030b8de
- #9 [d72d3d68] compact_zone_order at c030bba1
-#10 [d72d3db4] try_to_compact_pages at c030bc84
-#11 [d72d3ddc] __alloc_pages_direct_compact at c02d61e7
-#12 [d72d3e08] __alloc_pages_slowpath at c02d66c7
-#13 [d72d3e78] __alloc_pages_nodemask at c02d6a97
-#14 [d72d3eb8] alloc_pages_vma at c030a845
-#15 [d72d3ed4] do_huge_pmd_anonymous_page at c03178eb
-#16 [d72d3f00] handle_mm_fault at c02f36c6
-#17 [d72d3f30] do_page_fault at c05c70ed
-#18 [d72d3fb0] error_code (via page_fault) at c05c47a4
-    EAX: b71ff000  EBX: 00000001  ECX: 00001600  EDX: 00000431
-    DS:  007b      ESI: 08048950  ES:  007b      EDI: bfaa3788
-    SS:  007b      ESP: bfaa36e0  EBP: bfaa3828  GS:  6f50
-    CS:  0073      EIP: 080487c8  ERR: ffffffff  EFLAGS: 00010202
-
-It was also reported by Herbert van den Bergh against 3.1-based kernel
-with the following snippet from the console log.
-
-BUG: unable to handle kernel paging request at 01c00008
-IP: [<c0522399>] isolate_migratepages+0x119/0x390
-*pdpt = 000000002f7ce001 *pde = 0000000000000000
-
-It is expected that it also affects 3.2.x and current mainline.
-
-The problem is that pfn_valid is only called on the first PFN being
-checked and that PFN is not necessarily aligned.  Lets say we have a case
-like this
-
-H = MAX_ORDER_NR_PAGES boundary
-| = pageblock boundary
-m = cc->migrate_pfn
-f = cc->free_pfn
-o = memory hole
-
-H------|------H------|----m-Hoooooo|ooooooH-f----|------H
-
-The migrate_pfn is just below a memory hole and the free scanner is beyond
-the hole.  When isolate_migratepages started, it scans from migrate_pfn to
-migrate_pfn+pageblock_nr_pages which is now in a memory hole.  It checks
-pfn_valid() on the first PFN but then scans into the hole where there are
-not necessarily valid struct pages.
-
-This patch ensures that isolate_migratepages calls pfn_valid when
-necessary.
-
-Reported-by: Herbert van den Bergh <herbert.van.den.bergh at oracle.com>
-Tested-by: Herbert van den Bergh <herbert.van.den.bergh at oracle.com>
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Acked-by: Michal Nazarewicz <mina86 at mina86.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/compaction.c |   13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/mm/compaction.c b/mm/compaction.c
-index 899d956..edc1e26 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -313,6 +313,19 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone,
- 		} else if (!locked)
- 			spin_lock_irq(&zone->lru_lock);
- 
-+		/*
-+		 * migrate_pfn does not necessarily start aligned to a
-+		 * pageblock. Ensure that pfn_valid is called when moving
-+		 * into a new MAX_ORDER_NR_PAGES range in case of large
-+		 * memory holes within the zone
-+		 */
-+		if ((low_pfn & (MAX_ORDER_NR_PAGES - 1)) == 0) {
-+			if (!pfn_valid(low_pfn)) {
-+				low_pfn += MAX_ORDER_NR_PAGES - 1;
-+				continue;
-+			}
-+		}
-+
- 		if (!pfn_valid_within(low_pfn))
- 			continue;
- 		nr_scanned++;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0029-PM-Hibernate-Fix-s2disk-regression-related-to-freezi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0029-PM-Hibernate-Fix-s2disk-regression-related-to-freezi.patch
deleted file mode 100644
index 55bb225..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0029-PM-Hibernate-Fix-s2disk-regression-related-to-freezi.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 527712d71f75c7e14ac825073f8b8b21bb6f7ca6 Mon Sep 17 00:00:00 2001
-From: "Rafael J. Wysocki" <rjw at sisk.pl>
-Date: Sun, 29 Jan 2012 20:35:52 +0100
-Subject: [PATCH 29/87] PM / Hibernate: Fix s2disk regression related to
- freezing workqueues
-
-commit 181e9bdef37bfcaa41f3ab6c948a2a0d60a268b5 upstream.
-
-Commit 2aede851ddf08666f68ffc17be446420e9d2a056
-
-  PM / Hibernate: Freeze kernel threads after preallocating memory
-
-introduced a mechanism by which kernel threads were frozen after
-the preallocation of hibernate image memory to avoid problems with
-frozen kernel threads not responding to memory freeing requests.
-However, it overlooked the s2disk code path in which the
-SNAPSHOT_CREATE_IMAGE ioctl was run directly after SNAPSHOT_FREE,
-which caused freeze_workqueues_begin() to BUG(), because it saw
-that worqueues had been already frozen.
-
-Although in principle this issue might be addressed by removing
-the relevant BUG_ON() from freeze_workqueues_begin(), that would
-reintroduce the very problem that commit 2aede851ddf08666f68ffc17be4
-attempted to avoid into that particular code path.  For this reason,
-to fix the issue at hand, introduce thaw_kernel_threads() and make
-the SNAPSHOT_FREE ioctl execute it.
-
-Special thanks to Srivatsa S. Bhat for detailed analysis of the
-problem.
-
-Reported-and-tested-by: Jiri Slaby <jslaby at suse.cz>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Acked-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/freezer.h |    2 ++
- kernel/power/process.c  |    9 +++++++++
- kernel/power/user.c     |    9 +++++++++
- 3 files changed, 20 insertions(+)
-
-diff --git a/include/linux/freezer.h b/include/linux/freezer.h
-index a5386e3..b5d6b6a 100644
---- a/include/linux/freezer.h
-+++ b/include/linux/freezer.h
-@@ -51,6 +51,7 @@ extern void refrigerator(void);
- extern int freeze_processes(void);
- extern int freeze_kernel_threads(void);
- extern void thaw_processes(void);
-+extern void thaw_kernel_threads(void);
- 
- static inline int try_to_freeze(void)
- {
-@@ -185,6 +186,7 @@ static inline void refrigerator(void) {}
- static inline int freeze_processes(void) { return -ENOSYS; }
- static inline int freeze_kernel_threads(void) { return -ENOSYS; }
- static inline void thaw_processes(void) {}
-+static inline void thaw_kernel_threads(void) {}
- 
- static inline int try_to_freeze(void) { return 0; }
- 
-diff --git a/kernel/power/process.c b/kernel/power/process.c
-index addbbe5..3d4b954 100644
---- a/kernel/power/process.c
-+++ b/kernel/power/process.c
-@@ -203,3 +203,12 @@ void thaw_processes(void)
- 	printk("done.\n");
- }
- 
-+void thaw_kernel_threads(void)
-+{
-+	printk("Restarting kernel threads ... ");
-+	thaw_workqueues();
-+	thaw_tasks(true);
-+	schedule();
-+	printk("done.\n");
-+}
-+
-diff --git a/kernel/power/user.c b/kernel/power/user.c
-index 6d8f535..3565b15 100644
---- a/kernel/power/user.c
-+++ b/kernel/power/user.c
-@@ -303,6 +303,15 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd,
- 		swsusp_free();
- 		memset(&data->handle, 0, sizeof(struct snapshot_handle));
- 		data->ready = 0;
-+		/*
-+		 * It is necessary to thaw kernel threads here, because
-+		 * SNAPSHOT_CREATE_IMAGE may be invoked directly after
-+		 * SNAPSHOT_FREE.  In that case, if kernel threads were not
-+		 * thawed, the preallocation of memory carried out by
-+		 * hibernation_snapshot() might run into problems (i.e. it
-+		 * might fail or even deadlock).
-+		 */
-+		thaw_kernel_threads();
- 		break;
- 
- 	case SNAPSHOT_SET_IMAGE_SIZE:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0030-PM-QoS-CPU-C-state-breakage-with-PM-Qos-change.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0030-PM-QoS-CPU-C-state-breakage-with-PM-Qos-change.patch
deleted file mode 100644
index 7725c2a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0030-PM-QoS-CPU-C-state-breakage-with-PM-Qos-change.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From eb166d6e71fbf51ddf49a366ee78e25ef698ef10 Mon Sep 17 00:00:00 2001
-From: Venkatesh Pallipadi <venki at google.com>
-Date: Fri, 3 Feb 2012 22:22:25 +0100
-Subject: [PATCH 30/87] PM / QoS: CPU C-state breakage with PM Qos change
-
-commit d020283dc694c9ec31b410f522252f7a8397e67d upstream.
-
-Looks like change "PM QoS: Move and rename the implementation files"
-merged during the 3.2 development cycle made PM QoS depend on
-CONFIG_PM which depends on (PM_SLEEP || PM_RUNTIME).
-
-That breaks CPU C-states with kernels not having these CONFIGs, causing CPUs
-to spend time in Polling loop idle instead of going into deep C-states,
-consuming way way more power. This is with either acpi idle or intel idle
-enabled.
-
-Either CONFIG_PM should be enabled with any pm_qos users or
-the !CONFIG_PM pm_qos_request() should return sane defaults not to break
-the existing users. Here's is the patch for the latter option.
-
-[rjw: Modified the changelog slightly.]
-
-Signed-off-by: Venkatesh Pallipadi <venki at google.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/pm_qos.h |   14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/include/linux/pm_qos.h b/include/linux/pm_qos.h
-index 83b0ea3..8a0ede4 100644
---- a/include/linux/pm_qos.h
-+++ b/include/linux/pm_qos.h
-@@ -107,7 +107,19 @@ static inline void pm_qos_remove_request(struct pm_qos_request *req)
- 			{ return; }
- 
- static inline int pm_qos_request(int pm_qos_class)
--			{ return 0; }
-+{
-+	switch (pm_qos_class) {
-+	case PM_QOS_CPU_DMA_LATENCY:
-+		return PM_QOS_CPU_DMA_LAT_DEFAULT_VALUE;
-+	case PM_QOS_NETWORK_LATENCY:
-+		return PM_QOS_NETWORK_LAT_DEFAULT_VALUE;
-+	case PM_QOS_NETWORK_THROUGHPUT:
-+		return PM_QOS_NETWORK_THROUGHPUT_DEFAULT_VALUE;
-+	default:
-+		return PM_QOS_DEFAULT_VALUE;
-+	}
-+}
-+
- static inline int pm_qos_add_notifier(int pm_qos_class,
- 				      struct notifier_block *notifier)
- 			{ return 0; }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0031-drm-radeon-Set-DESKTOP_HEIGHT-register-to-the-frameb.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0031-drm-radeon-Set-DESKTOP_HEIGHT-register-to-the-frameb.patch
deleted file mode 100644
index 364cea9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0031-drm-radeon-Set-DESKTOP_HEIGHT-register-to-the-frameb.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 361eb614723b6019e061c8d343dcbc5a26ceb3b0 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Michel=20D=C3=A4nzer?= <michel.daenzer at amd.com>
-Date: Wed, 1 Feb 2012 12:09:55 +0100
-Subject: [PATCH 31/87] drm/radeon: Set DESKTOP_HEIGHT register to the
- framebuffer (not mode) height.
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit 1b61925061660009f5b8047f93c5297e04541273 upstream.
-
-The value of this register is transferred to the V_COUNTER register at the
-beginning of vertical blank. V_COUNTER is the reference for VLINE waits and
-goes from VIEWPORT_Y_START to VIEWPORT_Y_START+VIEWPORT_HEIGHT during scanout,
-so if VIEWPORT_Y_START is not 0, V_COUNTER actually went backwards at the
-beginning of vertical blank, and VLINE waits excluding the whole scanout area
-could never finish (possibly only if VIEWPORT_Y_START is larger than the length
-of vertical blank in scanlines). Setting DESKTOP_HEIGHT to the framebuffer
-height should prevent this for any kind of VLINE wait.
-
-Fixes https://bugs.freedesktop.org/show_bug.cgi?id=45329 .
-
-Signed-off-by: Michel Dänzer <michel.daenzer at amd.com>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/atombios_crtc.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_crtc.c b/drivers/gpu/drm/radeon/atombios_crtc.c
-index 2b97262..b30081f 100644
---- a/drivers/gpu/drm/radeon/atombios_crtc.c
-+++ b/drivers/gpu/drm/radeon/atombios_crtc.c
-@@ -1189,7 +1189,7 @@ static int dce4_crtc_do_set_base(struct drm_crtc *crtc,
- 	WREG32(EVERGREEN_GRPH_ENABLE + radeon_crtc->crtc_offset, 1);
- 
- 	WREG32(EVERGREEN_DESKTOP_HEIGHT + radeon_crtc->crtc_offset,
--	       crtc->mode.vdisplay);
-+	       target_fb->height);
- 	x &= ~3;
- 	y &= ~1;
- 	WREG32(EVERGREEN_VIEWPORT_START + radeon_crtc->crtc_offset,
-@@ -1358,7 +1358,7 @@ static int avivo_crtc_do_set_base(struct drm_crtc *crtc,
- 	WREG32(AVIVO_D1GRPH_ENABLE + radeon_crtc->crtc_offset, 1);
- 
- 	WREG32(AVIVO_D1MODE_DESKTOP_HEIGHT + radeon_crtc->crtc_offset,
--	       crtc->mode.vdisplay);
-+	       target_fb->height);
- 	x &= ~3;
- 	y &= ~1;
- 	WREG32(AVIVO_D1MODE_VIEWPORT_START + radeon_crtc->crtc_offset,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0032-drm-nouveau-gem-fix-fence_sync-race-oops.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0032-drm-nouveau-gem-fix-fence_sync-race-oops.patch
deleted file mode 100644
index 0d78411..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0032-drm-nouveau-gem-fix-fence_sync-race-oops.patch
+++ /dev/null
@@ -1,108 +0,0 @@
-From d793d1df7fec3e24758cdd985d58cde0d1f40fb2 Mon Sep 17 00:00:00 2001
-From: Ben Skeggs <bskeggs at redhat.com>
-Date: Tue, 10 Jan 2012 10:18:28 +1000
-Subject: [PATCH 32/87] drm/nouveau/gem: fix fence_sync race / oops
-
-commit 525895ba388c949aa906f26e3ec5cb1ab041f56b upstream.
-
-Due to a race it was possible for a fence to be destroyed while another
-thread was trying to synchronise with it.  If this happened in the fallback
-non-semaphore path, it lead to the following oops due to fence->channel
-being NULL.
-
-BUG: unable to handle kernel NULL pointer dereference at   (null)
-IP: [<fa9632ce>] nouveau_fence_update+0xe/0xe0 [nouveau]
-*pde = a649c067
-SMP
-Modules linked in: fuse nouveau(O) ttm(O) drm_kms_helper(O) drm(O) mxm_wmi video wmi netconsole configfs lockd bnep bluetooth rfkill ip6t_REJECT nf_conntrack_ipv6 nf_defrag_ipv6 nf_conntrack_ipv4 nf_defrag_ipv4 xt_state nf_conntrack ip6table_filter ip6_tables snd_hda_codec_realtek snd_hda_intel snd_hda_cobinfmt_misc uinput ata_generic pata_acpi pata_aet2c_algo_bit i2c_core [last unloaded: wmi]
-
-Pid: 2255, comm: gnome-shell Tainted: G           O 3.2.0-0.rc5.git0.1.fc17.i686 #1 System manufacturer System Product Name/M2A-VM
-EIP: 0060:[<fa9632ce>] EFLAGS: 00010296 CPU: 1
-EIP is at nouveau_fence_update+0xe/0xe0 [nouveau]
-EAX: 00000000 EBX: ddfc6dd0 ECX: dd111580 EDX: 00000000
-ESI: 00003e80 EDI: dd111580 EBP: dd121d00 ESP: dd121ce8
- DS: 007b ES: 007b FS: 00d8 GS: 00e0 SS: 0068
-Process gnome-shell (pid: 2255, ti=dd120000 task=dd111580 task.ti=dd120000)
-Stack:
- 7dc86c76 00000000 00003e80 ddfc6dd0 00003e80 dd111580 dd121d0c fa96371f
- 00000000 dd121d3c fa963773 dd111580 01000246 000ec53d 00000000 ddfc6dd0
- 00001f40 00000000 ddfc6dd0 00000010 dc7df840 dd121d6c fa9639a0 00000000
-Call Trace:
- [<fa96371f>] __nouveau_fence_signalled+0x1f/0x30 [nouveau]
- [<fa963773>] __nouveau_fence_wait+0x43/0xd0 [nouveau]
- [<fa9639a0>] nouveau_fence_sync+0x1a0/0x1c0 [nouveau]
- [<fa964046>] validate_list+0x176/0x300 [nouveau]
- [<f7d9c9c0>] ? ttm_bo_mem_put+0x30/0x30 [ttm]
- [<fa964b8a>] nouveau_gem_ioctl_pushbuf+0x48a/0xfd0 [nouveau]
- [<c0406481>] ? die+0x31/0x80
- [<f7c93d98>] drm_ioctl+0x388/0x490 [drm]
- [<c0406481>] ? die+0x31/0x80
- [<fa964700>] ? nouveau_gem_ioctl_new+0x150/0x150 [nouveau]
- [<c0635c7b>] ? file_has_perm+0xcb/0xe0
- [<f7c93a10>] ? drm_copy_field+0x80/0x80 [drm]
- [<c0564f56>] do_vfs_ioctl+0x86/0x5b0
- [<c0406481>] ? die+0x31/0x80
- [<c0635f22>] ? selinux_file_ioctl+0x62/0x130
- [<c0554f30>] ? fget_light+0x30/0x340
- [<c05654ef>] sys_ioctl+0x6f/0x80
- [<c099e3a4>] syscall_call+0x7/0xb
- [<c0406481>] ? die+0x31/0x80
- [<c0406481>] ? die+0x31/0x80
-
-Signed-off-by: Ben Skeggs <bskeggs at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/nouveau/nouveau_gem.c |   23 +++++++++++++++++++++--
- 1 file changed, 21 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c
-index 5f0bc57..7ce3fde 100644
---- a/drivers/gpu/drm/nouveau/nouveau_gem.c
-+++ b/drivers/gpu/drm/nouveau/nouveau_gem.c
-@@ -380,6 +380,25 @@ retry:
- }
- 
- static int
-+validate_sync(struct nouveau_channel *chan, struct nouveau_bo *nvbo)
-+{
-+	struct nouveau_fence *fence = NULL;
-+	int ret = 0;
-+
-+	spin_lock(&nvbo->bo.bdev->fence_lock);
-+	if (nvbo->bo.sync_obj)
-+		fence = nouveau_fence_ref(nvbo->bo.sync_obj);
-+	spin_unlock(&nvbo->bo.bdev->fence_lock);
-+
-+	if (fence) {
-+		ret = nouveau_fence_sync(fence, chan);
-+		nouveau_fence_unref(&fence);
-+	}
-+
-+	return ret;
-+}
-+
-+static int
- validate_list(struct nouveau_channel *chan, struct list_head *list,
- 	      struct drm_nouveau_gem_pushbuf_bo *pbbo, uint64_t user_pbbo_ptr)
- {
-@@ -393,7 +412,7 @@ validate_list(struct nouveau_channel *chan, struct list_head *list,
- 	list_for_each_entry(nvbo, list, entry) {
- 		struct drm_nouveau_gem_pushbuf_bo *b = &pbbo[nvbo->pbbo_index];
- 
--		ret = nouveau_fence_sync(nvbo->bo.sync_obj, chan);
-+		ret = validate_sync(chan, nvbo);
- 		if (unlikely(ret)) {
- 			NV_ERROR(dev, "fail pre-validate sync\n");
- 			return ret;
-@@ -416,7 +435,7 @@ validate_list(struct nouveau_channel *chan, struct list_head *list,
- 			return ret;
- 		}
- 
--		ret = nouveau_fence_sync(nvbo->bo.sync_obj, chan);
-+		ret = validate_sync(chan, nvbo);
- 		if (unlikely(ret)) {
- 			NV_ERROR(dev, "fail post-validate sync\n");
- 			return ret;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0033-drm-radeon-kms-disable-output-polling-when-suspended.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0033-drm-radeon-kms-disable-output-polling-when-suspended.patch
deleted file mode 100644
index 7f43c18..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0033-drm-radeon-kms-disable-output-polling-when-suspended.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From c41b706268ea62bdb811078da756cf3ba13045ac Mon Sep 17 00:00:00 2001
-From: Seth Forshee <seth.forshee at canonical.com>
-Date: Tue, 31 Jan 2012 19:06:25 -0600
-Subject: [PATCH 33/87] drm/radeon/kms: disable output polling when suspended
-
-commit 86698c20f71d488b32c49ed4687fb3cf8a88a5ca upstream.
-
-Polling the outputs when the device is suspended can result in erroneous
-status updates. Disable output polling during suspend to prevent this
-from happening.
-
-Signed-off-by: Seth Forshee <seth.forshee at canonical.com>
-Reviewed-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/radeon_device.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/radeon/radeon_device.c b/drivers/gpu/drm/radeon/radeon_device.c
-index 9b39145..9231564 100644
---- a/drivers/gpu/drm/radeon/radeon_device.c
-+++ b/drivers/gpu/drm/radeon/radeon_device.c
-@@ -864,6 +864,8 @@ int radeon_suspend_kms(struct drm_device *dev, pm_message_t state)
- 	if (dev->switch_power_state == DRM_SWITCH_POWER_OFF)
- 		return 0;
- 
-+	drm_kms_helper_poll_disable(dev);
-+
- 	/* turn off display hw */
- 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
- 		drm_helper_connector_dpms(connector, DRM_MODE_DPMS_OFF);
-@@ -950,6 +952,8 @@ int radeon_resume_kms(struct drm_device *dev)
- 	list_for_each_entry(connector, &dev->mode_config.connector_list, head) {
- 		drm_helper_connector_dpms(connector, DRM_MODE_DPMS_ON);
- 	}
-+
-+	drm_kms_helper_poll_enable(dev);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0034-drm-radeon-kms-fix-TRAVIS-panel-setup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0034-drm-radeon-kms-fix-TRAVIS-panel-setup.patch
deleted file mode 100644
index 6d0a4d7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0034-drm-radeon-kms-fix-TRAVIS-panel-setup.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From c8abbcccc11f3d24609ff127fe3245061ae1b98b Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Thu, 2 Feb 2012 10:18:00 -0500
-Subject: [PATCH 34/87] drm/radeon/kms: fix TRAVIS panel setup
-
-commit 304a48400d9718f74ec35ae46f30868a5f4c4516 upstream.
-
-Different versions of the DP to LVDS bridge chip
-need different panel mode settings depending on
-the chip version used.
-
-Fixes:
-https://bugs.freedesktop.org/show_bug.cgi?id=41569
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/atombios_dp.c |   18 +++++++++++++++---
- 1 file changed, 15 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/atombios_dp.c b/drivers/gpu/drm/radeon/atombios_dp.c
-index a71557c..552b436 100644
---- a/drivers/gpu/drm/radeon/atombios_dp.c
-+++ b/drivers/gpu/drm/radeon/atombios_dp.c
-@@ -564,9 +564,21 @@ int radeon_dp_get_panel_mode(struct drm_encoder *encoder,
- 	    ENCODER_OBJECT_ID_NUTMEG)
- 		panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE;
- 	else if (radeon_connector_encoder_get_dp_bridge_encoder_id(connector) ==
--		 ENCODER_OBJECT_ID_TRAVIS)
--		panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE;
--	else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
-+		 ENCODER_OBJECT_ID_TRAVIS) {
-+		u8 id[6];
-+		int i;
-+		for (i = 0; i < 6; i++)
-+			id[i] = radeon_read_dpcd_reg(radeon_connector, 0x503 + i);
-+		if (id[0] == 0x73 &&
-+		    id[1] == 0x69 &&
-+		    id[2] == 0x76 &&
-+		    id[3] == 0x61 &&
-+		    id[4] == 0x72 &&
-+		    id[5] == 0x54)
-+			panel_mode = DP_PANEL_MODE_INTERNAL_DP1_MODE;
-+		else
-+			panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE;
-+	} else if (connector->connector_type == DRM_MODE_CONNECTOR_eDP) {
- 		u8 tmp = radeon_read_dpcd_reg(radeon_connector, DP_EDP_CONFIGURATION_CAP);
- 		if (tmp & 1)
- 			panel_mode = DP_PANEL_MODE_INTERNAL_DP2_MODE;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0035-sched-rt-Fix-task-stack-corruption-under-__ARCH_WANT.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0035-sched-rt-Fix-task-stack-corruption-under-__ARCH_WANT.patch
deleted file mode 100644
index 0dcf2f8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0035-sched-rt-Fix-task-stack-corruption-under-__ARCH_WANT.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From e7ccb073d5d2b9913e74d288a09fe1141258dc65 Mon Sep 17 00:00:00 2001
-From: Chanho Min <chanho0207 at gmail.com>
-Date: Thu, 5 Jan 2012 20:00:19 +0900
-Subject: [PATCH 35/87] sched/rt: Fix task stack corruption under
- __ARCH_WANT_INTERRUPTS_ON_CTXSW
-
-commit cb297a3e433dbdcf7ad81e0564e7b804c941ff0d upstream.
-
-This issue happens under the following conditions:
-
- 1. preemption is off
- 2. __ARCH_WANT_INTERRUPTS_ON_CTXSW is defined
- 3. RT scheduling class
- 4. SMP system
-
-Sequence is as follows:
-
- 1.suppose current task is A. start schedule()
- 2.task A is enqueued pushable task at the entry of schedule()
-   __schedule
-    prev = rq->curr;
-    ...
-    put_prev_task
-     put_prev_task_rt
-      enqueue_pushable_task
- 4.pick the task B as next task.
-   next = pick_next_task(rq);
- 3.rq->curr set to task B and context_switch is started.
-   rq->curr = next;
- 4.At the entry of context_swtich, release this cpu's rq->lock.
-   context_switch
-    prepare_task_switch
-     prepare_lock_switch
-      raw_spin_unlock_irq(&rq->lock);
- 5.Shortly after rq->lock is released, interrupt is occurred and start IRQ context
- 6.try_to_wake_up() which called by ISR acquires rq->lock
-    try_to_wake_up
-     ttwu_remote
-      rq = __task_rq_lock(p)
-      ttwu_do_wakeup(rq, p, wake_flags);
-        task_woken_rt
- 7.push_rt_task picks the task A which is enqueued before.
-   task_woken_rt
-    push_rt_tasks(rq)
-     next_task = pick_next_pushable_task(rq)
- 8.At find_lock_lowest_rq(), If double_lock_balance() returns 0,
-   lowest_rq can be the remote rq.
-  (But,If preemption is on, double_lock_balance always return 1 and it
-   does't happen.)
-   push_rt_task
-    find_lock_lowest_rq
-     if (double_lock_balance(rq, lowest_rq))..
- 9.find_lock_lowest_rq return the available rq. task A is migrated to
-   the remote cpu/rq.
-   push_rt_task
-    ...
-    deactivate_task(rq, next_task, 0);
-    set_task_cpu(next_task, lowest_rq->cpu);
-    activate_task(lowest_rq, next_task, 0);
- 10. But, task A is on irq context at this cpu.
-     So, task A is scheduled by two cpus at the same time until restore from IRQ.
-     Task A's stack is corrupted.
-
-To fix it, don't migrate an RT task if it's still running.
-
-Signed-off-by: Chanho Min <chanho.min at lge.com>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Acked-by: Steven Rostedt <rostedt at goodmis.org>
-Link: http://lkml.kernel.org/r/CAOAMb1BHA=5fm7KTewYyke6u-8DP0iUuJMpgQw54vNeXFsGpoQ@mail.gmail.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/sched_rt.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
-index 583a136..78fcacf 100644
---- a/kernel/sched_rt.c
-+++ b/kernel/sched_rt.c
-@@ -1388,6 +1388,11 @@ static int push_rt_task(struct rq *rq)
- 	if (!next_task)
- 		return 0;
- 
-+#ifdef __ARCH_WANT_INTERRUPTS_ON_CTXSW
-+       if (unlikely(task_running(rq, next_task)))
-+               return 0;
-+#endif
-+
- retry:
- 	if (unlikely(next_task == rq->curr)) {
- 		WARN_ON(1);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0036-PM-Hibernate-Thaw-processes-in-SNAPSHOT_CREATE_IMAGE.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0036-PM-Hibernate-Thaw-processes-in-SNAPSHOT_CREATE_IMAGE.patch
deleted file mode 100644
index 711635c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0036-PM-Hibernate-Thaw-processes-in-SNAPSHOT_CREATE_IMAGE.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From acedd2d4a628503e05c4c6e8d344399738d6f4bc Mon Sep 17 00:00:00 2001
-From: "Srivatsa S. Bhat" <srivatsa.bhat at linux.vnet.ibm.com>
-Date: Thu, 1 Dec 2011 22:33:10 +0100
-Subject: [PATCH 36/87] PM / Hibernate: Thaw processes in
- SNAPSHOT_CREATE_IMAGE ioctl test path
-
-commit 97819a26224f019e73d88bb2fd4eb5a614860461 upstream.
-
-Commit 2aede851ddf08666f68ffc17be446420e9d2a056 (PM / Hibernate: Freeze
-kernel threads after preallocating memory) moved the freezing of kernel
-threads to hibernation_snapshot() function.
-
-So now, if the call to hibernation_snapshot() returns early due to a
-successful hibernation test, the caller has to thaw processes to ensure
-that the system gets back to its original state.
-
-But in SNAPSHOT_CREATE_IMAGE hibernation ioctl, the caller does not thaw
-processes in case hibernation_snapshot() returned due to a successful
-freezer test. Fix this issue. But note we still send the value of 'in_suspend'
-(which is now 0) to userspace, because we are not in an error path per-se,
-and moreover, the value of in_suspend correctly depicts the situation here.
-
-Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/power/hibernate.c |    2 +-
- kernel/power/power.h     |    2 ++
- kernel/power/user.c      |   11 ++++++++---
- 3 files changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
-index a6b0503..624538a 100644
---- a/kernel/power/hibernate.c
-+++ b/kernel/power/hibernate.c
-@@ -55,7 +55,7 @@ enum {
- 
- static int hibernation_mode = HIBERNATION_SHUTDOWN;
- 
--static bool freezer_test_done;
-+bool freezer_test_done;
- 
- static const struct platform_hibernation_ops *hibernation_ops;
- 
-diff --git a/kernel/power/power.h b/kernel/power/power.h
-index 23a2db1..0c4defe 100644
---- a/kernel/power/power.h
-+++ b/kernel/power/power.h
-@@ -50,6 +50,8 @@ static inline char *check_image_kernel(struct swsusp_info *info)
- #define SPARE_PAGES	((1024 * 1024) >> PAGE_SHIFT)
- 
- /* kernel/power/hibernate.c */
-+extern bool freezer_test_done;
-+
- extern int hibernation_snapshot(int platform_mode);
- extern int hibernation_restore(int platform_mode);
- extern int hibernation_platform_enter(void);
-diff --git a/kernel/power/user.c b/kernel/power/user.c
-index 3565b15..f08bbfb 100644
---- a/kernel/power/user.c
-+++ b/kernel/power/user.c
-@@ -283,10 +283,15 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd,
- 		}
- 		pm_restore_gfp_mask();
- 		error = hibernation_snapshot(data->platform_support);
--		if (!error)
-+		if (!error) {
- 			error = put_user(in_suspend, (int __user *)arg);
--		if (!error)
--			data->ready = 1;
-+			if (!error && !freezer_test_done)
-+				data->ready = 1;
-+			if (freezer_test_done) {
-+				freezer_test_done = false;
-+				thaw_processes();
-+			}
-+		}
- 		break;
- 
- 	case SNAPSHOT_ATOMIC_RESTORE:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0037-PM-Hibernate-Thaw-kernel-threads-in-SNAPSHOT_CREATE_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0037-PM-Hibernate-Thaw-kernel-threads-in-SNAPSHOT_CREATE_.patch
deleted file mode 100644
index 44ab36d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0037-PM-Hibernate-Thaw-kernel-threads-in-SNAPSHOT_CREATE_.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 276000691962e55d2de86793f10e7b8637c0bc91 Mon Sep 17 00:00:00 2001
-From: "Srivatsa S. Bhat" <srivatsa.bhat at linux.vnet.ibm.com>
-Date: Wed, 1 Feb 2012 22:16:36 +0100
-Subject: [PATCH 37/87] PM / Hibernate: Thaw kernel threads in
- SNAPSHOT_CREATE_IMAGE ioctl path
-
-commit fe9161db2e6053da21e4649d77bbefaf3030b11d upstream.
-
-In the SNAPSHOT_CREATE_IMAGE ioctl, if the call to hibernation_snapshot()
-fails, the frozen tasks are not thawed.
-
-And in the case of success, if we happen to exit due to a successful freezer
-test, all tasks (including those of userspace) are thawed, whereas actually
-we should have thawed only the kernel threads at that point. Fix both these
-issues.
-
-Signed-off-by: Srivatsa S. Bhat <srivatsa.bhat at linux.vnet.ibm.com>
-Signed-off-by: Rafael J. Wysocki <rjw at sisk.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/power/user.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/power/user.c b/kernel/power/user.c
-index f08bbfb..f08d227 100644
---- a/kernel/power/user.c
-+++ b/kernel/power/user.c
-@@ -283,13 +283,15 @@ static long snapshot_ioctl(struct file *filp, unsigned int cmd,
- 		}
- 		pm_restore_gfp_mask();
- 		error = hibernation_snapshot(data->platform_support);
--		if (!error) {
-+		if (error) {
-+			thaw_kernel_threads();
-+		} else {
- 			error = put_user(in_suspend, (int __user *)arg);
- 			if (!error && !freezer_test_done)
- 				data->ready = 1;
- 			if (freezer_test_done) {
- 				freezer_test_done = false;
--				thaw_processes();
-+				thaw_kernel_threads();
- 			}
- 		}
- 		break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0038-8139cp-fix-missing-napi_gro_flush.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0038-8139cp-fix-missing-napi_gro_flush.patch
deleted file mode 100644
index 50716f4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0038-8139cp-fix-missing-napi_gro_flush.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c006cccface5a8f4d48c66465d6ebb69abb2b729 Mon Sep 17 00:00:00 2001
-From: Francois Romieu <romieu at fr.zoreil.com>
-Date: Sun, 8 Jan 2012 13:41:33 +0000
-Subject: [PATCH 38/87] 8139cp: fix missing napi_gro_flush.
-
-commit b189e810619a676e6b931a942a3e8387f3d39c21 upstream.
-
-The driver uses __napi_complete and napi_gro_receive. Without it, the
-driver hits the BUG_ON(n->gro_list) assertion hard in __napi_complete.
-
-Signed-off-by: Francois Romieu <romieu at fr.zoreil.com>
-Tested-by: Marin Glibic <zhilla2 at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/realtek/8139cp.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/ethernet/realtek/8139cp.c b/drivers/net/ethernet/realtek/8139cp.c
-index ee5da92..aba4f67 100644
---- a/drivers/net/ethernet/realtek/8139cp.c
-+++ b/drivers/net/ethernet/realtek/8139cp.c
-@@ -563,6 +563,7 @@ rx_next:
- 		if (cpr16(IntrStatus) & cp_rx_intr_mask)
- 			goto rx_status_loop;
- 
-+		napi_gro_flush(napi);
- 		spin_lock_irqsave(&cp->lock, flags);
- 		__napi_complete(napi);
- 		cpw16_f(IntrMask, cp_intr_mask);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0039-udf-Mark-LVID-buffer-as-uptodate-before-marking-it-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0039-udf-Mark-LVID-buffer-as-uptodate-before-marking-it-d.patch
deleted file mode 100644
index 8035960..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0039-udf-Mark-LVID-buffer-as-uptodate-before-marking-it-d.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 7099b6fe8b35ed6d9f2a0799248904ed8b8a136b Mon Sep 17 00:00:00 2001
-From: Jan Kara <jack at suse.cz>
-Date: Fri, 23 Dec 2011 11:53:07 +0100
-Subject: [PATCH 39/87] udf: Mark LVID buffer as uptodate before marking it
- dirty
-
-commit 853a0c25baf96b028de1654bea1e0c8857eadf3d upstream.
-
-When we hit EIO while writing LVID, the buffer uptodate bit is cleared.
-This then results in an anoying warning from mark_buffer_dirty() when we
-write the buffer again. So just set uptodate flag unconditionally.
-
-Reviewed-by: Namjae Jeon <linkinjeon at gmail.com>
-Signed-off-by: Jan Kara <jack at suse.cz>
-Cc: Dave Jones <davej at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/udf/super.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/fs/udf/super.c b/fs/udf/super.c
-index e185253..87cb24a 100644
---- a/fs/udf/super.c
-+++ b/fs/udf/super.c
-@@ -1799,6 +1799,12 @@ static void udf_close_lvid(struct super_block *sb)
- 				le16_to_cpu(lvid->descTag.descCRCLength)));
- 
- 	lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag);
-+	/*
-+	 * We set buffer uptodate unconditionally here to avoid spurious
-+	 * warnings from mark_buffer_dirty() when previous EIO has marked
-+	 * the buffer as !uptodate
-+	 */
-+	set_buffer_uptodate(bh);
- 	mark_buffer_dirty(bh);
- 	sbi->s_lvid_dirty = 0;
- 	mutex_unlock(&sbi->s_alloc_mutex);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0040-drm-i915-HDMI-hot-remove-notification-to-audio-drive.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0040-drm-i915-HDMI-hot-remove-notification-to-audio-drive.patch
deleted file mode 100644
index e68a9be..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0040-drm-i915-HDMI-hot-remove-notification-to-audio-drive.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 0836f8461a5868c15ea1884b3a3d6d2b2c03a5e2 Mon Sep 17 00:00:00 2001
-From: Wu Fengguang <fengguang.wu at intel.com>
-Date: Fri, 9 Dec 2011 20:42:20 +0800
-Subject: [PATCH 40/87] drm/i915: HDMI hot remove notification to audio driver
-
-commit 2deed761188d7480eb5f7efbfe7aa77f09322ed8 upstream.
-
-On HDMI monitor hot remove, clear SDVO_AUDIO_ENABLE accordingly, so that
-the audio driver will receive hot plug events and take action to refresh
-its device state and ELD contents.
-
-The cleared SDVO_AUDIO_ENABLE bit needs to be restored to prevent losing
-HDMI audio after DPMS on.
-
-CC: Wang Zhenyu <zhenyu.z.wang at intel.com>
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_hdmi.c |    8 ++++++--
- 1 file changed, 6 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_hdmi.c b/drivers/gpu/drm/i915/intel_hdmi.c
-index d4f5a0b..64541f7 100644
---- a/drivers/gpu/drm/i915/intel_hdmi.c
-+++ b/drivers/gpu/drm/i915/intel_hdmi.c
-@@ -269,6 +269,10 @@ static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode)
- 	struct drm_i915_private *dev_priv = dev->dev_private;
- 	struct intel_hdmi *intel_hdmi = enc_to_intel_hdmi(encoder);
- 	u32 temp;
-+	u32 enable_bits = SDVO_ENABLE;
-+
-+	if (intel_hdmi->has_audio)
-+		enable_bits |= SDVO_AUDIO_ENABLE;
- 
- 	temp = I915_READ(intel_hdmi->sdvox_reg);
- 
-@@ -281,9 +285,9 @@ static void intel_hdmi_dpms(struct drm_encoder *encoder, int mode)
- 	}
- 
- 	if (mode != DRM_MODE_DPMS_ON) {
--		temp &= ~SDVO_ENABLE;
-+		temp &= ~enable_bits;
- 	} else {
--		temp |= SDVO_ENABLE;
-+		temp |= enable_bits;
- 	}
- 
- 	I915_WRITE(intel_hdmi->sdvox_reg, temp);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0041-drm-i915-DisplayPort-hot-remove-notification-to-audi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0041-drm-i915-DisplayPort-hot-remove-notification-to-audi.patch
deleted file mode 100644
index c8aae72..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0041-drm-i915-DisplayPort-hot-remove-notification-to-audi.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From bdeaff1ee3a787d87037e14f40486e9e97c7b355 Mon Sep 17 00:00:00 2001
-From: Wu Fengguang <fengguang.wu at intel.com>
-Date: Fri, 9 Dec 2011 20:42:21 +0800
-Subject: [PATCH 41/87] drm/i915: DisplayPort hot remove notification to audio
- driver
-
-commit 832afda6a7d7235ef0e09f4ec46736861540da6d upstream.
-
-On DP monitor hot remove, clear DP_AUDIO_OUTPUT_ENABLE accordingly,
-so that the audio driver will receive hot plug events and take action
-to refresh its device state and ELD contents.
-
-Note that the DP_AUDIO_OUTPUT_ENABLE bit may be enabled or disabled
-only when the link training is complete and set to "Normal".
-
-Tested OK for both hot plug/remove and DPMS on/off.
-
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_dp.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index 92b041b..db3b461 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -1926,6 +1926,7 @@ intel_dp_link_down(struct intel_dp *intel_dp)
- 			intel_wait_for_vblank(dev, to_intel_crtc(crtc)->pipe);
- 	}
- 
-+	DP &= ~DP_AUDIO_OUTPUT_ENABLE;
- 	I915_WRITE(intel_dp->output_reg, DP & ~DP_PORT_EN);
- 	POSTING_READ(intel_dp->output_reg);
- 	msleep(intel_dp->panel_power_down_delay);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0042-drm-i915-check-ACTHD-of-all-rings.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0042-drm-i915-check-ACTHD-of-all-rings.patch
deleted file mode 100644
index aac771e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0042-drm-i915-check-ACTHD-of-all-rings.patch
+++ /dev/null
@@ -1,92 +0,0 @@
-From 441951ed509c6c0f8b619490b199fb57eb62e652 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Sun, 27 Nov 2011 18:58:17 +0100
-Subject: [PATCH 42/87] drm/i915: check ACTHD of all rings
-
-commit 097354eb14fa94d31a09c64d640643f58e4a5a9a upstream.
-
-Otherwise hangcheck spuriously fires when running blitter/bsd-only
-workloads.
-
-Contrary to a similar patch by Ben Widawsky this does not check
-INSTDONE of the other rings. Chris Wilson implied that in a failure to
-detect a hang, most likely because INSTDONE was fluctuating. Thus only
-check ACTHD, which as far as I know is rather reliable. Also, blitter
-and bsd rings can't launch complex tasks from a single instruction
-(like 3D_PRIM on the render with complex or even infinite shaders).
-
-This fixes spurious gpu hang detection when running
-tests/gem_hangcheck_forcewake on snb/ivb.
-
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_drv.h |    2 ++
- drivers/gpu/drm/i915/i915_irq.c |   13 ++++++++++---
- 2 files changed, 12 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 554bef7..505af3f 100644
---- a/drivers/gpu/drm/i915/i915_drv.h
-+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -337,6 +337,8 @@ typedef struct drm_i915_private {
- 	struct timer_list hangcheck_timer;
- 	int hangcheck_count;
- 	uint32_t last_acthd;
-+	uint32_t last_acthd_bsd;
-+	uint32_t last_acthd_blt;
- 	uint32_t last_instdone;
- 	uint32_t last_instdone1;
- 
-diff --git a/drivers/gpu/drm/i915/i915_irq.c b/drivers/gpu/drm/i915/i915_irq.c
-index b40004b..d47a53b 100644
---- a/drivers/gpu/drm/i915/i915_irq.c
-+++ b/drivers/gpu/drm/i915/i915_irq.c
-@@ -1669,7 +1669,7 @@ void i915_hangcheck_elapsed(unsigned long data)
- {
- 	struct drm_device *dev = (struct drm_device *)data;
- 	drm_i915_private_t *dev_priv = dev->dev_private;
--	uint32_t acthd, instdone, instdone1;
-+	uint32_t acthd, instdone, instdone1, acthd_bsd, acthd_blt;
- 	bool err = false;
- 
- 	if (!i915_enable_hangcheck)
-@@ -1686,16 +1686,21 @@ void i915_hangcheck_elapsed(unsigned long data)
- 	}
- 
- 	if (INTEL_INFO(dev)->gen < 4) {
--		acthd = I915_READ(ACTHD);
- 		instdone = I915_READ(INSTDONE);
- 		instdone1 = 0;
- 	} else {
--		acthd = I915_READ(ACTHD_I965);
- 		instdone = I915_READ(INSTDONE_I965);
- 		instdone1 = I915_READ(INSTDONE1);
- 	}
-+	acthd = intel_ring_get_active_head(&dev_priv->ring[RCS]);
-+	acthd_bsd = HAS_BSD(dev) ?
-+		intel_ring_get_active_head(&dev_priv->ring[VCS]) : 0;
-+	acthd_blt = HAS_BLT(dev) ?
-+		intel_ring_get_active_head(&dev_priv->ring[BCS]) : 0;
- 
- 	if (dev_priv->last_acthd == acthd &&
-+	    dev_priv->last_acthd_bsd == acthd_bsd &&
-+	    dev_priv->last_acthd_blt == acthd_blt &&
- 	    dev_priv->last_instdone == instdone &&
- 	    dev_priv->last_instdone1 == instdone1) {
- 		if (dev_priv->hangcheck_count++ > 1) {
-@@ -1727,6 +1732,8 @@ void i915_hangcheck_elapsed(unsigned long data)
- 		dev_priv->hangcheck_count = 0;
- 
- 		dev_priv->last_acthd = acthd;
-+		dev_priv->last_acthd_bsd = acthd_bsd;
-+		dev_priv->last_acthd_blt = acthd_blt;
- 		dev_priv->last_instdone = instdone;
- 		dev_priv->last_instdone1 = instdone1;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0043-drm-i915-Fix-TV-Out-refresh-rate.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0043-drm-i915-Fix-TV-Out-refresh-rate.patch
deleted file mode 100644
index 0a33d99..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0043-drm-i915-Fix-TV-Out-refresh-rate.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From e3c15719dc2c5af905549e56dc33cf13850cc206 Mon Sep 17 00:00:00 2001
-From: Rodrigo Vivi <rodrigo.vivi at gmail.com>
-Date: Wed, 14 Dec 2011 21:10:06 -0200
-Subject: [PATCH 43/87] drm/i915: Fix TV Out refresh rate.
-
-commit 23bd15ec662344dc10e9918fdd0dbc58bc71526d upstream.
-
-TV Out refresh rate was half of the specification for almost all modes.
-Due to this reason pixel clock was so low for some modes causing flickering screen.
-
-Signed-off-by: Rodrigo Vivi <rodrigo.vivi at gmail.com>
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_tv.c |   16 ++++++++--------
- 1 file changed, 8 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_tv.c b/drivers/gpu/drm/i915/intel_tv.c
-index f3c6a9a..2b1fcad 100644
---- a/drivers/gpu/drm/i915/intel_tv.c
-+++ b/drivers/gpu/drm/i915/intel_tv.c
-@@ -417,7 +417,7 @@ static const struct tv_mode tv_modes[] = {
- 	{
- 		.name		= "NTSC-M",
- 		.clock		= 108000,
--		.refresh	= 29970,
-+		.refresh	= 59940,
- 		.oversample	= TV_OVERSAMPLE_8X,
- 		.component_only = 0,
- 		/* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 3.580MHz */
-@@ -460,7 +460,7 @@ static const struct tv_mode tv_modes[] = {
- 	{
- 		.name		= "NTSC-443",
- 		.clock		= 108000,
--		.refresh	= 29970,
-+		.refresh	= 59940,
- 		.oversample	= TV_OVERSAMPLE_8X,
- 		.component_only = 0,
- 		/* 525 Lines, 60 Fields, 15.734KHz line, Sub-Carrier 4.43MHz */
-@@ -502,7 +502,7 @@ static const struct tv_mode tv_modes[] = {
- 	{
- 		.name		= "NTSC-J",
- 		.clock		= 108000,
--		.refresh	= 29970,
-+		.refresh	= 59940,
- 		.oversample	= TV_OVERSAMPLE_8X,
- 		.component_only = 0,
- 
-@@ -545,7 +545,7 @@ static const struct tv_mode tv_modes[] = {
- 	{
- 		.name		= "PAL-M",
- 		.clock		= 108000,
--		.refresh	= 29970,
-+		.refresh	= 59940,
- 		.oversample	= TV_OVERSAMPLE_8X,
- 		.component_only = 0,
- 
-@@ -589,7 +589,7 @@ static const struct tv_mode tv_modes[] = {
- 		/* 625 Lines, 50 Fields, 15.625KHz line, Sub-Carrier 4.434MHz */
- 		.name	    = "PAL-N",
- 		.clock		= 108000,
--		.refresh	= 25000,
-+		.refresh	= 50000,
- 		.oversample	= TV_OVERSAMPLE_8X,
- 		.component_only = 0,
- 
-@@ -634,7 +634,7 @@ static const struct tv_mode tv_modes[] = {
- 		/* 625 Lines, 50 Fields, 15.625KHz line, Sub-Carrier 4.434MHz */
- 		.name	    = "PAL",
- 		.clock		= 108000,
--		.refresh	= 25000,
-+		.refresh	= 50000,
- 		.oversample	= TV_OVERSAMPLE_8X,
- 		.component_only = 0,
- 
-@@ -821,7 +821,7 @@ static const struct tv_mode tv_modes[] = {
- 	{
- 		.name       = "1080i at 50Hz",
- 		.clock		= 148800,
--		.refresh	= 25000,
-+		.refresh	= 50000,
- 		.oversample     = TV_OVERSAMPLE_2X,
- 		.component_only = 1,
- 
-@@ -847,7 +847,7 @@ static const struct tv_mode tv_modes[] = {
- 	{
- 		.name       = "1080i at 60Hz",
- 		.clock		= 148800,
--		.refresh	= 30000,
-+		.refresh	= 60000,
- 		.oversample     = TV_OVERSAMPLE_2X,
- 		.component_only = 1,
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0044-drm-i915-handle-3rd-pipe.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0044-drm-i915-handle-3rd-pipe.patch
deleted file mode 100644
index f771077..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0044-drm-i915-handle-3rd-pipe.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 73334272468cdb3f59deb61126b720eed982fab0 Mon Sep 17 00:00:00 2001
-From: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Date: Sat, 7 Jan 2012 23:40:35 -0200
-Subject: [PATCH 44/87] drm/i915: handle 3rd pipe
-
-commit 07c1e8c1462fa7324de4c36ae9e55da2abd79cee upstream.
-
-We don't need to check 3rd pipe specifically, as it shares PLL with some
-other one.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=41977
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Reviewed-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_suspend.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/i915_suspend.c b/drivers/gpu/drm/i915/i915_suspend.c
-index 43cbafe..a1eb83d 100644
---- a/drivers/gpu/drm/i915/i915_suspend.c
-+++ b/drivers/gpu/drm/i915/i915_suspend.c
-@@ -34,6 +34,10 @@ static bool i915_pipe_enabled(struct drm_device *dev, enum pipe pipe)
- 	struct drm_i915_private *dev_priv = dev->dev_private;
- 	u32	dpll_reg;
- 
-+	/* On IVB, 3rd pipe shares PLL with another one */
-+	if (pipe > 1)
-+		return false;
-+
- 	if (HAS_PCH_SPLIT(dev))
- 		dpll_reg = (pipe == PIPE_A) ? _PCH_DPLL_A : _PCH_DPLL_B;
- 	else
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0045-drm-i915-convert-force_wake_get-to-func-pointer-in-t.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0045-drm-i915-convert-force_wake_get-to-func-pointer-in-t.patch
deleted file mode 100644
index 01925d3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0045-drm-i915-convert-force_wake_get-to-func-pointer-in-t.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 2b36d478a92ee0e3108f6cf50316c6122c471da7 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel at ffwll.ch>
-Date: Fri, 13 Jan 2012 16:20:06 -0800
-Subject: [PATCH 45/87] drm/i915: convert force_wake_get to func pointer in
- the gpu reset code
-
-commit 8109021313c7a3d8947677391ce6ab9cd0bb1d28 upstream.
-
-This was forgotten in the original multi-threaded forcewake
-conversion:
-
-commit 8d715f0024f64ad1b1be85d8c081cf577944c847
-Author: Keith Packard <keithp at keithp.com>
-Date:   Fri Nov 18 20:39:01 2011 -0800
-
-    drm/i915: add multi-threaded forcewake support
-
-Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_drv.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index a1103fc..d7c9d99 100644
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -645,7 +645,7 @@ int i915_reset(struct drm_device *dev, u8 flags)
- 		ret = gen6_do_reset(dev, flags);
- 		/* If reset with a user forcewake, try to restore */
- 		if (atomic_read(&dev_priv->forcewake_count))
--			__gen6_gt_force_wake_get(dev_priv);
-+			dev_priv->display.force_wake_get(dev_priv);
- 		break;
- 	case 5:
- 		ret = ironlake_do_reset(dev, flags);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0046-drm-i915-protect-force_wake_-get-put-with-the-gt_loc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0046-drm-i915-protect-force_wake_-get-put-with-the-gt_loc.patch
deleted file mode 100644
index d26b2d2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0046-drm-i915-protect-force_wake_-get-put-with-the-gt_loc.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 929430116c4a6355aafbce7cef4bbea15a8bdd9e Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Wed, 14 Dec 2011 13:57:03 +0100
-Subject: [PATCH 46/87] drm/i915: protect force_wake_(get|put) with the
- gt_lock
-
-commit 9f1f46a45a681d357d1ceedecec3671a5ae957f4 upstream.
-
-The problem this patch solves is that the forcewake accounting
-necessary for register reads is protected by dev->struct_mutex. But the
-hangcheck and error_capture code need to access registers without
-grabbing this mutex because we hold it while waiting for the gpu.
-So a new lock is required. Because currently the error_state capture
-is called from the error irq handler and the hangcheck code runs from
-a timer, it needs to be an irqsafe spinlock (note that the registers
-used by the irq handler (neglecting the error handling part) only uses
-registers that don't need the forcewake dance).
-
-We could tune this down to a normal spinlock when we rework the
-error_state capture and hangcheck code to run from a workqueue.  But
-we don't have any read in a fastpath that needs forcewake, so I've
-decided to not care much about overhead.
-
-This prevents tests/gem_hangcheck_forcewake from i-g-t from killing my
-snb on recent kernels - something must have slightly changed the
-timings. On previous kernels it only trigger a WARN about the broken
-locking.
-
-v2: Drop the previous patch for the register writes.
-
-v3: Improve the commit message per Chris Wilson's suggestions.
-
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Reviewed-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Eugeni Dodonov <eugeni.dodonov at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/i915_debugfs.c |    8 ++++++--
- drivers/gpu/drm/i915/i915_dma.c     |    1 +
- drivers/gpu/drm/i915/i915_drv.c     |   18 ++++++++++++------
- drivers/gpu/drm/i915/i915_drv.h     |   10 +++++++---
- 4 files changed, 26 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/i915_debugfs.c b/drivers/gpu/drm/i915/i915_debugfs.c
-index 004b048..b2e3c97 100644
---- a/drivers/gpu/drm/i915/i915_debugfs.c
-+++ b/drivers/gpu/drm/i915/i915_debugfs.c
-@@ -1314,9 +1314,13 @@ static int i915_gen6_forcewake_count_info(struct seq_file *m, void *data)
- 	struct drm_info_node *node = (struct drm_info_node *) m->private;
- 	struct drm_device *dev = node->minor->dev;
- 	struct drm_i915_private *dev_priv = dev->dev_private;
-+	unsigned forcewake_count;
- 
--	seq_printf(m, "forcewake count = %d\n",
--		   atomic_read(&dev_priv->forcewake_count));
-+	spin_lock_irq(&dev_priv->gt_lock);
-+	forcewake_count = dev_priv->forcewake_count;
-+	spin_unlock_irq(&dev_priv->gt_lock);
-+
-+	seq_printf(m, "forcewake count = %u\n", forcewake_count);
- 
- 	return 0;
- }
-diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c
-index a9ae374..c4da951 100644
---- a/drivers/gpu/drm/i915/i915_dma.c
-+++ b/drivers/gpu/drm/i915/i915_dma.c
-@@ -2042,6 +2042,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
- 	if (!IS_I945G(dev) && !IS_I945GM(dev))
- 		pci_enable_msi(dev->pdev);
- 
-+	spin_lock_init(&dev_priv->gt_lock);
- 	spin_lock_init(&dev_priv->irq_lock);
- 	spin_lock_init(&dev_priv->error_lock);
- 	spin_lock_init(&dev_priv->rps_lock);
-diff --git a/drivers/gpu/drm/i915/i915_drv.c b/drivers/gpu/drm/i915/i915_drv.c
-index d7c9d99..e2d85a9 100644
---- a/drivers/gpu/drm/i915/i915_drv.c
-+++ b/drivers/gpu/drm/i915/i915_drv.c
-@@ -368,11 +368,12 @@ void __gen6_gt_force_wake_mt_get(struct drm_i915_private *dev_priv)
-  */
- void gen6_gt_force_wake_get(struct drm_i915_private *dev_priv)
- {
--	WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex));
-+	unsigned long irqflags;
- 
--	/* Forcewake is atomic in case we get in here without the lock */
--	if (atomic_add_return(1, &dev_priv->forcewake_count) == 1)
-+	spin_lock_irqsave(&dev_priv->gt_lock, irqflags);
-+	if (dev_priv->forcewake_count++ == 0)
- 		dev_priv->display.force_wake_get(dev_priv);
-+	spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags);
- }
- 
- void __gen6_gt_force_wake_put(struct drm_i915_private *dev_priv)
-@@ -392,10 +393,12 @@ void __gen6_gt_force_wake_mt_put(struct drm_i915_private *dev_priv)
-  */
- void gen6_gt_force_wake_put(struct drm_i915_private *dev_priv)
- {
--	WARN_ON(!mutex_is_locked(&dev_priv->dev->struct_mutex));
-+	unsigned long irqflags;
- 
--	if (atomic_dec_and_test(&dev_priv->forcewake_count))
-+	spin_lock_irqsave(&dev_priv->gt_lock, irqflags);
-+	if (--dev_priv->forcewake_count == 0)
- 		dev_priv->display.force_wake_put(dev_priv);
-+	spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags);
- }
- 
- void __gen6_gt_wait_for_fifo(struct drm_i915_private *dev_priv)
-@@ -626,6 +629,7 @@ int i915_reset(struct drm_device *dev, u8 flags)
- 	 * need to
- 	 */
- 	bool need_display = true;
-+	unsigned long irqflags;
- 	int ret;
- 
- 	if (!i915_try_reset)
-@@ -644,8 +648,10 @@ int i915_reset(struct drm_device *dev, u8 flags)
- 	case 6:
- 		ret = gen6_do_reset(dev, flags);
- 		/* If reset with a user forcewake, try to restore */
--		if (atomic_read(&dev_priv->forcewake_count))
-+		spin_lock_irqsave(&dev_priv->gt_lock, irqflags);
-+		if (dev_priv->forcewake_count)
- 			dev_priv->display.force_wake_get(dev_priv);
-+		spin_unlock_irqrestore(&dev_priv->gt_lock, irqflags);
- 		break;
- 	case 5:
- 		ret = ironlake_do_reset(dev, flags);
-diff --git a/drivers/gpu/drm/i915/i915_drv.h b/drivers/gpu/drm/i915/i915_drv.h
-index 505af3f..ae294a0 100644
---- a/drivers/gpu/drm/i915/i915_drv.h
-+++ b/drivers/gpu/drm/i915/i915_drv.h
-@@ -286,7 +286,13 @@ typedef struct drm_i915_private {
- 	int relative_constants_mode;
- 
- 	void __iomem *regs;
--	u32 gt_fifo_count;
-+	/** gt_fifo_count and the subsequent register write are synchronized
-+	 * with dev->struct_mutex. */
-+	unsigned gt_fifo_count;
-+	/** forcewake_count is protected by gt_lock */
-+	unsigned forcewake_count;
-+	/** gt_lock is also taken in irq contexts. */
-+	struct spinlock gt_lock;
- 
- 	struct intel_gmbus {
- 		struct i2c_adapter adapter;
-@@ -738,8 +744,6 @@ typedef struct drm_i915_private {
- 
- 	struct drm_property *broadcast_rgb_property;
- 	struct drm_property *force_audio_property;
--
--	atomic_t forcewake_count;
- } drm_i915_private_t;
- 
- enum i915_cache_level {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0047-eCryptfs-Infinite-loop-due-to-overflow-in-ecryptfs_w.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0047-eCryptfs-Infinite-loop-due-to-overflow-in-ecryptfs_w.patch
deleted file mode 100644
index 9f4e173..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0047-eCryptfs-Infinite-loop-due-to-overflow-in-ecryptfs_w.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From 66d791bcaed9fa50738794abf5b46abcf2b28656 Mon Sep 17 00:00:00 2001
-From: Li Wang <liwang at nudt.edu.cn>
-Date: Thu, 19 Jan 2012 09:44:36 +0800
-Subject: [PATCH 47/87] eCryptfs: Infinite loop due to overflow in
- ecryptfs_write()
-
-commit 684a3ff7e69acc7c678d1a1394fe9e757993fd34 upstream.
-
-ecryptfs_write() can enter an infinite loop when truncating a file to a
-size larger than 4G. This only happens on architectures where size_t is
-represented by 32 bits.
-
-This was caused by a size_t overflow due to it incorrectly being used to
-store the result of a calculation which uses potentially large values of
-type loff_t.
-
-[tyhicks at canonical.com: rewrite subject and commit message]
-Signed-off-by: Li Wang <liwang at nudt.edu.cn>
-Signed-off-by: Yunchuan Wen <wenyunchuan at kylinos.com.cn>
-Reviewed-by: Cong Wang <xiyou.wangcong at gmail.com>
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/read_write.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/fs/ecryptfs/read_write.c b/fs/ecryptfs/read_write.c
-index 54eb14c..608c1c3 100644
---- a/fs/ecryptfs/read_write.c
-+++ b/fs/ecryptfs/read_write.c
-@@ -130,7 +130,7 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
- 		pgoff_t ecryptfs_page_idx = (pos >> PAGE_CACHE_SHIFT);
- 		size_t start_offset_in_page = (pos & ~PAGE_CACHE_MASK);
- 		size_t num_bytes = (PAGE_CACHE_SIZE - start_offset_in_page);
--		size_t total_remaining_bytes = ((offset + size) - pos);
-+		loff_t total_remaining_bytes = ((offset + size) - pos);
- 
- 		if (fatal_signal_pending(current)) {
- 			rc = -EINTR;
-@@ -141,7 +141,7 @@ int ecryptfs_write(struct inode *ecryptfs_inode, char *data, loff_t offset,
- 			num_bytes = total_remaining_bytes;
- 		if (pos < offset) {
- 			/* remaining zeros to write, up to destination offset */
--			size_t total_remaining_zeros = (offset - pos);
-+			loff_t total_remaining_zeros = (offset - pos);
- 
- 			if (num_bytes > total_remaining_zeros)
- 				num_bytes = total_remaining_zeros;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0048-hwmon-w83627ehf-Fix-number-of-fans-for-NCT6776F.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0048-hwmon-w83627ehf-Fix-number-of-fans-for-NCT6776F.patch
deleted file mode 100644
index bdceeb4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0048-hwmon-w83627ehf-Fix-number-of-fans-for-NCT6776F.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From e108118265e60d28d2aec2f4110c34cba5dfc86f Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <linux at roeck-us.net>
-Date: Fri, 27 Jan 2012 05:43:59 -0800
-Subject: [PATCH 48/87] hwmon: (w83627ehf) Fix number of fans for NCT6776F
-
-commit 585c0fd8216e0c9f98e2434092af7ec0f999522d upstream.
-
-NCT6776F can select fan input pins for fans 3 to 5 with a secondary set of
-chip register bits. Check that second set of bits in addition to the first set
-to detect if fans 3..5 are monitored.
-
-Signed-off-by: Guenter Roeck <linux at roeck-us.net>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/w83627ehf.c |   23 ++++++++++++++++++++---
- 1 file changed, 20 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/hwmon/w83627ehf.c b/drivers/hwmon/w83627ehf.c
-index 4b57ab6..c25387d 100644
---- a/drivers/hwmon/w83627ehf.c
-+++ b/drivers/hwmon/w83627ehf.c
-@@ -1920,9 +1920,26 @@ w83627ehf_check_fan_inputs(const struct w83627ehf_sio_data *sio_data,
- 		fan4min = 0;
- 		fan5pin = 0;
- 	} else if (sio_data->kind == nct6776) {
--		fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);
--		fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01);
--		fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02);
-+		bool gpok = superio_inb(sio_data->sioreg, 0x27) & 0x80;
-+
-+		superio_select(sio_data->sioreg, W83627EHF_LD_HWM);
-+		regval = superio_inb(sio_data->sioreg, SIO_REG_ENABLE);
-+
-+		if (regval & 0x80)
-+			fan3pin = gpok;
-+		else
-+			fan3pin = !(superio_inb(sio_data->sioreg, 0x24) & 0x40);
-+
-+		if (regval & 0x40)
-+			fan4pin = gpok;
-+		else
-+			fan4pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x01);
-+
-+		if (regval & 0x20)
-+			fan5pin = gpok;
-+		else
-+			fan5pin = !!(superio_inb(sio_data->sioreg, 0x1C) & 0x02);
-+
- 		fan4min = fan4pin;
- 	} else if (sio_data->kind == w83667hg || sio_data->kind == w83667hg_b) {
- 		fan3pin = 1;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0049-cifs-Fix-oops-in-session-setup-code-for-null-user-mo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0049-cifs-Fix-oops-in-session-setup-code-for-null-user-mo.patch
deleted file mode 100644
index 942ec0e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0049-cifs-Fix-oops-in-session-setup-code-for-null-user-mo.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From e0a7f0f91350c70df6f6525ebf80859c4536e10d Mon Sep 17 00:00:00 2001
-From: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Date: Thu, 2 Feb 2012 15:28:28 -0600
-Subject: [PATCH 49/87] cifs: Fix oops in session setup code for null user
- mounts
-
-commit de47a4176c532ef5961b8a46a2d541a3517412d3 upstream.
-
-For null user mounts, do not invoke string length function
-during session setup.
-
-Reported-and-Tested-by: Chris Clayton <chris2553 at googlemail.com>
-Acked-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Shirish Pargaonkar <shirishpargaonkar at gmail.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/sess.c |    7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/fs/cifs/sess.c b/fs/cifs/sess.c
-index 4ec3ee9..2504809 100644
---- a/fs/cifs/sess.c
-+++ b/fs/cifs/sess.c
-@@ -246,16 +246,15 @@ static void ascii_ssetup_strings(char **pbcc_area, struct cifs_ses *ses,
- 	/* copy user */
- 	/* BB what about null user mounts - check that we do this BB */
- 	/* copy user */
--	if (ses->user_name != NULL)
-+	if (ses->user_name != NULL) {
- 		strncpy(bcc_ptr, ses->user_name, MAX_USERNAME_SIZE);
-+		bcc_ptr += strnlen(ses->user_name, MAX_USERNAME_SIZE);
-+	}
- 	/* else null user mount */
--
--	bcc_ptr += strnlen(ses->user_name, MAX_USERNAME_SIZE);
- 	*bcc_ptr = 0;
- 	bcc_ptr++; /* account for null termination */
- 
- 	/* copy domain */
--
- 	if (ses->domainName != NULL) {
- 		strncpy(bcc_ptr, ses->domainName, 256);
- 		bcc_ptr += strnlen(ses->domainName, 256);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0050-atmel_lcdfb-fix-usage-of-CONTRAST_CTR-in-suspend-res.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0050-atmel_lcdfb-fix-usage-of-CONTRAST_CTR-in-suspend-res.patch
deleted file mode 100644
index fcc5b86..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0050-atmel_lcdfb-fix-usage-of-CONTRAST_CTR-in-suspend-res.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 3db2f07be3accfb079a7e4114e8705464e25e6ae Mon Sep 17 00:00:00 2001
-From: Hubert Feurstein <h.feurstein at gmail.com>
-Date: Mon, 9 Jan 2012 17:23:57 +0100
-Subject: [PATCH 50/87] atmel_lcdfb: fix usage of CONTRAST_CTR in
- suspend/resume
-
-commit 9f1065032ceb7e86c7c9f16bb86518857e88a172 upstream.
-
-An error was existing in the saving of CONTRAST_CTR register
-across suspend/resume.
-
-Signed-off-by: Hubert Feurstein <h.feurstein at gmail.com>
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/atmel_lcdfb.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/video/atmel_lcdfb.c b/drivers/video/atmel_lcdfb.c
-index 63409c1..e919c70 100644
---- a/drivers/video/atmel_lcdfb.c
-+++ b/drivers/video/atmel_lcdfb.c
-@@ -1089,7 +1089,7 @@ static int atmel_lcdfb_suspend(struct platform_device *pdev, pm_message_t mesg)
- 	 */
- 	lcdc_writel(sinfo, ATMEL_LCDC_IDR, ~0UL);
- 
--	sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_VAL);
-+	sinfo->saved_lcdcon = lcdc_readl(sinfo, ATMEL_LCDC_CONTRAST_CTR);
- 	lcdc_writel(sinfo, ATMEL_LCDC_CONTRAST_CTR, 0);
- 	if (sinfo->atmel_lcdfb_power_control)
- 		sinfo->atmel_lcdfb_power_control(0);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0051-lockdep-bug-Exclude-TAINT_FIRMWARE_WORKAROUND-from-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0051-lockdep-bug-Exclude-TAINT_FIRMWARE_WORKAROUND-from-d.patch
deleted file mode 100644
index 5aa7c5e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0051-lockdep-bug-Exclude-TAINT_FIRMWARE_WORKAROUND-from-d.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From acfe5989cec237c5a567009424a300f16690d07e Mon Sep 17 00:00:00 2001
-From: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Date: Mon, 14 Nov 2011 13:13:49 +0100
-Subject: [PATCH 51/87] lockdep, bug: Exclude TAINT_FIRMWARE_WORKAROUND from
- disabling lockdep
-
-commit df754e6af2f237a6c020c0daff55a1a609338e31 upstream.
-
-It's unlikely that TAINT_FIRMWARE_WORKAROUND causes false
-lockdep messages, so do not disable lockdep in that case.
-We still want to keep lockdep disabled in the
-TAINT_OOT_MODULE case:
-
-  - bin-only modules can cause various instabilities in
-    their and in unrelated kernel code
-
-  - they are impossible to debug for kernel developers
-
-  - they also typically do not have the copyright license
-    permission to link to the GPL-ed lockdep code.
-
-Suggested-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Link: http://lkml.kernel.org/n/tip-xopopjjens57r0i13qnyh2yo@git.kernel.org
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/panic.c |   12 ++++++++++--
- 1 file changed, 10 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/panic.c b/kernel/panic.c
-index b2659360..1b83fd8 100644
---- a/kernel/panic.c
-+++ b/kernel/panic.c
-@@ -240,8 +240,16 @@ void add_taint(unsigned flag)
- 	 * Also we want to keep up lockdep for staging development and
- 	 * post-warning case.
- 	 */
--	if (flag != TAINT_CRAP && flag != TAINT_WARN && __debug_locks_off())
--		printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n");
-+	switch (flag) {
-+	case TAINT_CRAP:
-+	case TAINT_WARN:
-+	case TAINT_FIRMWARE_WORKAROUND:
-+		break;
-+
-+	default:
-+		if (__debug_locks_off())
-+			printk(KERN_WARNING "Disabling lock debugging due to kernel taint\n");
-+	}
- 
- 	set_bit(flag, &tainted_mask);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0052-lockdep-bug-Exclude-TAINT_OOT_MODULE-from-disabling-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0052-lockdep-bug-Exclude-TAINT_OOT_MODULE-from-disabling-.patch
deleted file mode 100644
index e915769..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0052-lockdep-bug-Exclude-TAINT_OOT_MODULE-from-disabling-.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 21cfca7c702dbbb3560b35493aa1a620dae338ee Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 7 Dec 2011 14:30:58 +0000
-Subject: [PATCH 52/87] lockdep, bug: Exclude TAINT_OOT_MODULE from disabling
- lock debugging
-
-commit 9ec84acee1e221d99dc33237bff5e82839d10cc0 upstream.
-
-We do want to allow lock debugging for GPL-compatible modules
-that are not (yet) built in-tree.  This was disabled as a
-side-effect of commit 2449b8ba0745327c5fa49a8d9acffe03b2eded69
-('module,bug: Add TAINT_OOT_MODULE flag for modules not built
-in-tree').  Lock debug warnings now include taint flags, so
-kernel developers should still be able to deflect warnings
-caused by out-of-tree modules.
-
-The TAINT_PROPRIETARY_MODULE flag for non-GPL-compatible modules
-will still disable lock debugging.
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Cc: Nick Bowler <nbowler at elliptictech.com>
-Cc: Dave Jones <davej at redhat.com>
-Cc: Rusty Russell <rusty at rustcorp.com.au>
-Cc: Randy Dunlap <rdunlap at xenotime.net>
-Cc: Debian kernel maintainers <debian-kernel at lists.debian.org>
-Cc: Peter Zijlstra <peterz at infradead.org>
-Cc: Alan Cox <alan at linux.intel.com>
-Link: http://lkml.kernel.org/r/1323268258.18450.11.camel@deadeye
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/panic.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/panic.c b/kernel/panic.c
-index 1b83fd8..3458469 100644
---- a/kernel/panic.c
-+++ b/kernel/panic.c
-@@ -237,11 +237,12 @@ void add_taint(unsigned flag)
- 	 * Can't trust the integrity of the kernel anymore.
- 	 * We don't call directly debug_locks_off() because the issue
- 	 * is not necessarily serious enough to set oops_in_progress to 1
--	 * Also we want to keep up lockdep for staging development and
--	 * post-warning case.
-+	 * Also we want to keep up lockdep for staging/out-of-tree
-+	 * development and post-warning case.
- 	 */
- 	switch (flag) {
- 	case TAINT_CRAP:
-+	case TAINT_OOT_MODULE:
- 	case TAINT_WARN:
- 	case TAINT_FIRMWARE_WORKAROUND:
- 		break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0053-iscsi-target-Fix-reject-release-handling-in-iscsit_f.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0053-iscsi-target-Fix-reject-release-handling-in-iscsit_f.patch
deleted file mode 100644
index 0954ea0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0053-iscsi-target-Fix-reject-release-handling-in-iscsit_f.patch
+++ /dev/null
@@ -1,79 +0,0 @@
-From a6f3badb8bb91c6f6f732855a0bb79138fc52301 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Mon, 16 Jan 2012 16:04:15 -0800
-Subject: [PATCH 53/87] iscsi-target: Fix reject release handling in
- iscsit_free_cmd()
-
-commit c1ce4bd56f2846de55043374598fd929ad3b711b upstream.
-
-This patch addresses a bug where iscsit_free_cmd() was incorrectly calling
-iscsit_release_cmd() for ISCSI_OP_REJECT because iscsi_add_reject*() will
-overwrite the original iscsi_cmd->iscsi_opcode assignment.  This bug was
-introduced with the following commit:
-
-commit 0be67f2ed8f577d2c72d917928394c5885fa9134
-Author: Nicholas Bellinger <nab at linux-iscsi.org>
-Date:   Sun Oct 9 01:48:14 2011 -0700
-
-    iscsi-target: Remove SCF_SE_LUN_CMD flag abuses
-
-and was manifesting itself as list corruption with the following:
-
-[  131.191092] ------------[ cut here ]------------
-[  131.191092] WARNING: at lib/list_debug.c:53 __list_del_entry+0x8d/0x98()
-[  131.191092] Hardware name: VMware Virtual Platform
-[  131.191092] list_del corruption. prev->next should be ffff880022d3c100, but was 6b6b6b6b6b6b6b6b
-[  131.191092] Modules linked in: tcm_vhost ib_srpt ib_cm ib_sa ib_mad ib_core tcm_qla2xxx qla2xxx tcm_loop tcm_fc libfc scsi_transport_fc crc32c iscsi_target_mod target_core_stgt scsi_tgt target_core_pscsi target_core_file target_core_iblock target_core_mod configfs ipv6 iscsi_tcp libiscsi_tcp libiscsi scsi_transport_iscsi sr_mod cdrom sd_mod e1000 ata_piix libata mptspi mptscsih mptbase [last unloaded: scsi_wait_scan]
-[  131.191092] Pid: 2250, comm: iscsi_ttx Tainted: G        W    3.2.0-rc4+ #42
-[  131.191092] Call Trace:
-[  131.191092]  [<ffffffff8103b553>] warn_slowpath_common+0x80/0x98
-[  131.191092]  [<ffffffff8103b5ff>] warn_slowpath_fmt+0x41/0x43
-[  131.191092]  [<ffffffff811d0279>] __list_del_entry+0x8d/0x98
-[  131.191092]  [<ffffffffa01395c9>] transport_lun_remove_cmd+0x9b/0xb7 [target_core_mod]
-[  131.191092]  [<ffffffffa013a55c>] transport_generic_free_cmd+0x5d/0x71 [target_core_mod]
-[  131.191092]  [<ffffffffa01a012b>] iscsit_free_cmd+0x1e/0x27 [iscsi_target_mod]
-[  131.191092]  [<ffffffffa01a13be>] iscsit_close_connection+0x14d/0x5b2 [iscsi_target_mod]
-[  131.191092]  [<ffffffffa0196a0c>] iscsit_take_action_for_connection_exit+0xdb/0xe0 [iscsi_target_mod]
-[  131.191092]  [<ffffffffa01a55d4>] iscsi_target_tx_thread+0x15cb/0x1608 [iscsi_target_mod]
-[  131.191092]  [<ffffffff8103609a>] ? check_preempt_wakeup+0x121/0x185
-[  131.191092]  [<ffffffff81030801>] ? __dequeue_entity+0x2e/0x33
-[  131.191092]  [<ffffffffa01a4009>] ? iscsit_send_text_rsp+0x25f/0x25f [iscsi_target_mod]
-[  131.191092]  [<ffffffffa01a4009>] ? iscsit_send_text_rsp+0x25f/0x25f [iscsi_target_mod]
-[  131.191092]  [<ffffffff8138f706>] ? schedule+0x55/0x57
-[  131.191092]  [<ffffffff81056c7d>] kthread+0x7d/0x85
-[  131.191092]  [<ffffffff81399534>] kernel_thread_helper+0x4/0x10
-[  131.191092]  [<ffffffff81056c00>] ? kthread_worker_fn+0x16d/0x16d
-[  131.191092]  [<ffffffff81399530>] ? gs_change+0x13/0x13
-
-Reported-by: <jrepac at yahoo.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/iscsi/iscsi_target_util.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/drivers/target/iscsi/iscsi_target_util.c b/drivers/target/iscsi/iscsi_target_util.c
-index 02348f7..99f2af3 100644
---- a/drivers/target/iscsi/iscsi_target_util.c
-+++ b/drivers/target/iscsi/iscsi_target_util.c
-@@ -851,6 +851,17 @@ void iscsit_free_cmd(struct iscsi_cmd *cmd)
- 	case ISCSI_OP_SCSI_TMFUNC:
- 		transport_generic_free_cmd(&cmd->se_cmd, 1);
- 		break;
-+	case ISCSI_OP_REJECT:
-+		/*
-+		 * Handle special case for REJECT when iscsi_add_reject*() has
-+		 * overwritten the original iscsi_opcode assignment, and the
-+		 * associated cmd->se_cmd needs to be released.
-+		 */
-+		if (cmd->se_cmd.se_tfo != NULL) {
-+			transport_generic_free_cmd(&cmd->se_cmd, 1);
-+			break;
-+		}
-+		/* Fall-through */
- 	default:
- 		iscsit_release_cmd(cmd);
- 		break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0054-iscsi-target-Fix-double-list_add-with-iscsit_alloc_b.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0054-iscsi-target-Fix-double-list_add-with-iscsit_alloc_b.patch
deleted file mode 100644
index 44f4652..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0054-iscsi-target-Fix-double-list_add-with-iscsit_alloc_b.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From e356b89ef6403b6c82722d01efdab03f0e751dba Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Mon, 16 Jan 2012 17:11:54 -0800
-Subject: [PATCH 54/87] iscsi-target: Fix double list_add with
- iscsit_alloc_buffs reject
-
-commit cd931ee62fd0258fc85c76a7c5499fe85e0f3436 upstream.
-
-This patch fixes a bug where the iscsit_add_reject_from_cmd() call
-from a failure to iscsit_alloc_buffs() was incorrectly passing
-add_to_conn=1 and causing a double list_add after iscsi_cmd->i_list
-had already been added in iscsit_handle_scsi_cmd().
-
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/iscsi/iscsi_target.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
-index 8599545..3b46e3a 100644
---- a/drivers/target/iscsi/iscsi_target.c
-+++ b/drivers/target/iscsi/iscsi_target.c
-@@ -1062,7 +1062,7 @@ attach_cmd:
- 	if (ret < 0)
- 		return iscsit_add_reject_from_cmd(
- 				ISCSI_REASON_BOOKMARK_NO_RESOURCES,
--				1, 1, buf, cmd);
-+				1, 0, buf, cmd);
- 	/*
- 	 * Check the CmdSN against ExpCmdSN/MaxCmdSN here if
- 	 * the Immediate Bit is not set, and no Immediate
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0055-iscsi-target-Fix-discovery-with-INADDR_ANY-and-IN6AD.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0055-iscsi-target-Fix-discovery-with-INADDR_ANY-and-IN6AD.patch
deleted file mode 100644
index 1d7499c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0055-iscsi-target-Fix-discovery-with-INADDR_ANY-and-IN6AD.patch
+++ /dev/null
@@ -1,176 +0,0 @@
-From 758300f8f6a9d7df69151cb4b6c076ce2abe3a33 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Mon, 16 Jan 2012 23:33:48 -0800
-Subject: [PATCH 55/87] iscsi-target: Fix discovery with INADDR_ANY and
- IN6ADDR_ANY_INIT
-
-commit 2f9bc894c67dbacae5a6a9875818d2a18a918d18 upstream.
-
-This patch addresses a bug with sendtargets discovery where INADDR_ANY (0.0.0.0)
-+ IN6ADDR_ANY_INIT ([0:0:0:0:0:0:0:0]) network portals where incorrectly being
-reported back to initiators instead of the address of the connecting interface.
-To address this, save local socket ->getname() output during iscsi login setup,
-and makes iscsit_build_sendtargets_response() return these TargetAddress keys
-when INADDR_ANY or IN6ADDR_ANY_INIT portals are in use.
-
-Reported-by: Dax Kelson <dkelson at gurulabs.com>
-Reported-by: Andy Grover <agrover at redhat.com>
-Cc: David S. Miller <davem at davemloft.net>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/iscsi/iscsi_target.c       |   37 +++++++++++++++++++++++++----
- drivers/target/iscsi/iscsi_target_core.h  |    2 ++
- drivers/target/iscsi/iscsi_target_login.c |   31 ++++++++++++++++++++----
- 3 files changed, 62 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
-index 3b46e3a..0c1d5c73 100644
---- a/drivers/target/iscsi/iscsi_target.c
-+++ b/drivers/target/iscsi/iscsi_target.c
-@@ -3165,6 +3165,30 @@ static int iscsit_send_task_mgt_rsp(
- 	return 0;
- }
- 
-+static bool iscsit_check_inaddr_any(struct iscsi_np *np)
-+{
-+	bool ret = false;
-+
-+	if (np->np_sockaddr.ss_family == AF_INET6) {
-+		const struct sockaddr_in6 sin6 = {
-+			.sin6_addr = IN6ADDR_ANY_INIT };
-+		struct sockaddr_in6 *sock_in6 =
-+			 (struct sockaddr_in6 *)&np->np_sockaddr;
-+
-+		if (!memcmp(sock_in6->sin6_addr.s6_addr,
-+				sin6.sin6_addr.s6_addr, 16))
-+			ret = true;
-+	} else {
-+		struct sockaddr_in * sock_in =
-+			(struct sockaddr_in *)&np->np_sockaddr;
-+
-+		if (sock_in->sin_addr.s_addr == INADDR_ANY)
-+			ret = true;
-+	}
-+
-+	return ret;
-+}
-+
- static int iscsit_build_sendtargets_response(struct iscsi_cmd *cmd)
- {
- 	char *payload = NULL;
-@@ -3214,12 +3238,17 @@ static int iscsit_build_sendtargets_response(struct iscsi_cmd *cmd)
- 			spin_lock(&tpg->tpg_np_lock);
- 			list_for_each_entry(tpg_np, &tpg->tpg_gnp_list,
- 						tpg_np_list) {
-+				struct iscsi_np *np = tpg_np->tpg_np;
-+				bool inaddr_any = iscsit_check_inaddr_any(np);
-+
- 				len = sprintf(buf, "TargetAddress="
- 					"%s%s%s:%hu,%hu",
--					(tpg_np->tpg_np->np_sockaddr.ss_family == AF_INET6) ?
--					"[" : "", tpg_np->tpg_np->np_ip,
--					(tpg_np->tpg_np->np_sockaddr.ss_family == AF_INET6) ?
--					"]" : "", tpg_np->tpg_np->np_port,
-+					(np->np_sockaddr.ss_family == AF_INET6) ?
-+					"[" : "", (inaddr_any == false) ?
-+						np->np_ip : conn->local_ip,
-+					(np->np_sockaddr.ss_family == AF_INET6) ?
-+					"]" : "", (inaddr_any == false) ?
-+						np->np_port : conn->local_port,
- 					tpg->tpgt);
- 				len += 1;
- 
-diff --git a/drivers/target/iscsi/iscsi_target_core.h b/drivers/target/iscsi/iscsi_target_core.h
-index f1a02da..7da2d6a 100644
---- a/drivers/target/iscsi/iscsi_target_core.h
-+++ b/drivers/target/iscsi/iscsi_target_core.h
-@@ -508,6 +508,7 @@ struct iscsi_conn {
- 	u16			cid;
- 	/* Remote TCP Port */
- 	u16			login_port;
-+	u16			local_port;
- 	int			net_size;
- 	u32			auth_id;
- #define CONNFLAG_SCTP_STRUCT_FILE			0x01
-@@ -527,6 +528,7 @@ struct iscsi_conn {
- 	unsigned char		bad_hdr[ISCSI_HDR_LEN];
- #define IPV6_ADDRESS_SPACE				48
- 	unsigned char		login_ip[IPV6_ADDRESS_SPACE];
-+	unsigned char		local_ip[IPV6_ADDRESS_SPACE];
- 	int			conn_usage_count;
- 	int			conn_waiting_on_uc;
- 	atomic_t		check_immediate_queue;
-diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c
-index d734bde..bd2adec 100644
---- a/drivers/target/iscsi/iscsi_target_login.c
-+++ b/drivers/target/iscsi/iscsi_target_login.c
-@@ -616,8 +616,8 @@ static int iscsi_post_login_handler(
- 		}
- 
- 		pr_debug("iSCSI Login successful on CID: %hu from %s to"
--			" %s:%hu,%hu\n", conn->cid, conn->login_ip, np->np_ip,
--				np->np_port, tpg->tpgt);
-+			" %s:%hu,%hu\n", conn->cid, conn->login_ip,
-+			conn->local_ip, conn->local_port, tpg->tpgt);
- 
- 		list_add_tail(&conn->conn_list, &sess->sess_conn_list);
- 		atomic_inc(&sess->nconn);
-@@ -659,7 +659,8 @@ static int iscsi_post_login_handler(
- 	sess->session_state = TARG_SESS_STATE_LOGGED_IN;
- 
- 	pr_debug("iSCSI Login successful on CID: %hu from %s to %s:%hu,%hu\n",
--		conn->cid, conn->login_ip, np->np_ip, np->np_port, tpg->tpgt);
-+		conn->cid, conn->login_ip, conn->local_ip, conn->local_port,
-+		tpg->tpgt);
- 
- 	spin_lock_bh(&sess->conn_lock);
- 	list_add_tail(&conn->conn_list, &sess->sess_conn_list);
-@@ -1019,6 +1020,18 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
- 		snprintf(conn->login_ip, sizeof(conn->login_ip), "%pI6c",
- 				&sock_in6.sin6_addr.in6_u);
- 		conn->login_port = ntohs(sock_in6.sin6_port);
-+
-+		if (conn->sock->ops->getname(conn->sock,
-+				(struct sockaddr *)&sock_in6, &err, 0) < 0) {
-+			pr_err("sock_ops->getname() failed.\n");
-+			iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
-+					ISCSI_LOGIN_STATUS_TARGET_ERROR);
-+			goto new_sess_out;
-+		}
-+		snprintf(conn->local_ip, sizeof(conn->local_ip), "%pI6c",
-+				&sock_in6.sin6_addr.in6_u);
-+		conn->local_port = ntohs(sock_in6.sin6_port);
-+
- 	} else {
- 		memset(&sock_in, 0, sizeof(struct sockaddr_in));
- 
-@@ -1031,6 +1044,16 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
- 		}
- 		sprintf(conn->login_ip, "%pI4", &sock_in.sin_addr.s_addr);
- 		conn->login_port = ntohs(sock_in.sin_port);
-+
-+		if (conn->sock->ops->getname(conn->sock,
-+				(struct sockaddr *)&sock_in, &err, 0) < 0) {
-+			pr_err("sock_ops->getname() failed.\n");
-+			iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
-+					ISCSI_LOGIN_STATUS_TARGET_ERROR);
-+			goto new_sess_out;
-+		}
-+		sprintf(conn->local_ip, "%pI4", &sock_in.sin_addr.s_addr);
-+		conn->local_port = ntohs(sock_in.sin_port);
- 	}
- 
- 	conn->network_transport = np->np_network_transport;
-@@ -1038,7 +1061,7 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
- 	pr_debug("Received iSCSI login request from %s on %s Network"
- 			" Portal %s:%hu\n", conn->login_ip,
- 		(conn->network_transport == ISCSI_TCP) ? "TCP" : "SCTP",
--			np->np_ip, np->np_port);
-+			conn->local_ip, conn->local_port);
- 
- 	pr_debug("Moving to TARG_CONN_STATE_IN_LOGIN.\n");
- 	conn->conn_state	= TARG_CONN_STATE_IN_LOGIN;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0056-ASoC-wm_hubs-Fix-routing-of-input-PGAs-to-line-outpu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0056-ASoC-wm_hubs-Fix-routing-of-input-PGAs-to-line-outpu.patch
deleted file mode 100644
index 00ec0c7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0056-ASoC-wm_hubs-Fix-routing-of-input-PGAs-to-line-outpu.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 163c472309f266e32c7c31e32c7dc3b59522f316 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Tue, 31 Jan 2012 11:55:32 +0000
-Subject: [PATCH 56/87] ASoC: wm_hubs: Fix routing of input PGAs to line
- output mixer
-
-commit ee76744c51ec342df9822b4a85dbbfc3887b6d60 upstream.
-
-IN1L/R is routed to both line output mixers, we don't route IN1 to LINEOUT1
-and IN2 to LINEOUT2.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm_hubs.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
-index 8547191..6ef2283 100644
---- a/sound/soc/codecs/wm_hubs.c
-+++ b/sound/soc/codecs/wm_hubs.c
-@@ -587,8 +587,8 @@ SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER1, 0, 1, 0),
- };
- 
- static const struct snd_kcontrol_new line2_mix[] = {
--SOC_DAPM_SINGLE("IN2R Switch", WM8993_LINE_MIXER2, 2, 1, 0),
--SOC_DAPM_SINGLE("IN2L Switch", WM8993_LINE_MIXER2, 1, 1, 0),
-+SOC_DAPM_SINGLE("IN1R Switch", WM8993_LINE_MIXER2, 2, 1, 0),
-+SOC_DAPM_SINGLE("IN1L Switch", WM8993_LINE_MIXER2, 1, 1, 0),
- SOC_DAPM_SINGLE("Output Switch", WM8993_LINE_MIXER2, 0, 1, 0),
- };
- 
-@@ -846,8 +846,8 @@ static const struct snd_soc_dapm_route lineout1_se_routes[] = {
- };
- 
- static const struct snd_soc_dapm_route lineout2_diff_routes[] = {
--	{ "LINEOUT2 Mixer", "IN2L Switch", "IN2L PGA" },
--	{ "LINEOUT2 Mixer", "IN2R Switch", "IN2R PGA" },
-+	{ "LINEOUT2 Mixer", "IN1L Switch", "IN1L PGA" },
-+	{ "LINEOUT2 Mixer", "IN1R Switch", "IN1R PGA" },
- 	{ "LINEOUT2 Mixer", "Output Switch", "Right Output PGA" },
- 
- 	{ "LINEOUT2N Driver", NULL, "LINEOUT2 Mixer" },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0057-ASoC-wm_hubs-Correct-line-input-to-line-output-2-pat.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0057-ASoC-wm_hubs-Correct-line-input-to-line-output-2-pat.patch
deleted file mode 100644
index c5ab696..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0057-ASoC-wm_hubs-Correct-line-input-to-line-output-2-pat.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 113eac61d50555abefdb20ce9cebc839a2bc1968 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Wed, 1 Feb 2012 23:46:58 +0000
-Subject: [PATCH 57/87] ASoC: wm_hubs: Correct line input to line output 2
- paths
-
-commit 43b6cec27e1e50a1de3eff47e66e502f3fe7e66e upstream.
-
-The second line output mixer has the controls for the line input bypasses
-in the opposite order.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm_hubs.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/sound/soc/codecs/wm_hubs.c b/sound/soc/codecs/wm_hubs.c
-index 6ef2283..3642e06 100644
---- a/sound/soc/codecs/wm_hubs.c
-+++ b/sound/soc/codecs/wm_hubs.c
-@@ -587,8 +587,8 @@ SOC_DAPM_SINGLE("Left Output Switch", WM8993_LINE_MIXER1, 0, 1, 0),
- };
- 
- static const struct snd_kcontrol_new line2_mix[] = {
--SOC_DAPM_SINGLE("IN1R Switch", WM8993_LINE_MIXER2, 2, 1, 0),
--SOC_DAPM_SINGLE("IN1L Switch", WM8993_LINE_MIXER2, 1, 1, 0),
-+SOC_DAPM_SINGLE("IN1L Switch", WM8993_LINE_MIXER2, 2, 1, 0),
-+SOC_DAPM_SINGLE("IN1R Switch", WM8993_LINE_MIXER2, 1, 1, 0),
- SOC_DAPM_SINGLE("Output Switch", WM8993_LINE_MIXER2, 0, 1, 0),
- };
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0058-ASoC-wm8962-Fix-word-length-configuration.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0058-ASoC-wm8962-Fix-word-length-configuration.patch
deleted file mode 100644
index 3995a73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0058-ASoC-wm8962-Fix-word-length-configuration.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From ec5cca9dff81fc233e23c860c0eb3bc31a0d8591 Mon Sep 17 00:00:00 2001
-From: Susan Gao <sgao at opensource.wolfsonmicro.com>
-Date: Mon, 30 Jan 2012 13:57:04 -0800
-Subject: [PATCH 58/87] ASoC: wm8962: Fix word length configuration
-
-commit 2b6712b19531e22455e7fa18371c5ba9eec76699 upstream.
-
-Signed-off-by: Susan Gao <sgao at opensource.wolfsonmicro.com>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8962.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
-index 53edd9a..d795294 100644
---- a/sound/soc/codecs/wm8962.c
-+++ b/sound/soc/codecs/wm8962.c
-@@ -3172,13 +3172,13 @@ static int wm8962_hw_params(struct snd_pcm_substream *substream,
- 	case SNDRV_PCM_FORMAT_S16_LE:
- 		break;
- 	case SNDRV_PCM_FORMAT_S20_3LE:
--		aif0 |= 0x40;
-+		aif0 |= 0x4;
- 		break;
- 	case SNDRV_PCM_FORMAT_S24_LE:
--		aif0 |= 0x80;
-+		aif0 |= 0x8;
- 		break;
- 	case SNDRV_PCM_FORMAT_S32_LE:
--		aif0 |= 0xc0;
-+		aif0 |= 0xc;
- 		break;
- 	default:
- 		return -EINVAL;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0059-ASoC-wm8994-Enabling-VMID-should-take-a-runtime-PM-r.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0059-ASoC-wm8994-Enabling-VMID-should-take-a-runtime-PM-r.patch
deleted file mode 100644
index 4a092ff..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0059-ASoC-wm8994-Enabling-VMID-should-take-a-runtime-PM-r.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 9efc915e73a43b160fd97350c98c3be1bdf4e25d Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Mon, 6 Feb 2012 12:07:08 +0000
-Subject: [PATCH 59/87] ASoC: wm8994: Enabling VMID should take a runtime PM
- reference
-
-commit db966f8abb9ba74f7d5a7230f51572f52c31c4e5 upstream.
-
-We can enable VMID independently of the bias in some use cases so we need
-to ensure that the core device is powered up.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8994.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index d0c545b..a3d6bd8 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -729,6 +729,8 @@ static void vmid_reference(struct snd_soc_codec *codec)
- {
- 	struct wm8994_priv *wm8994 = snd_soc_codec_get_drvdata(codec);
- 
-+	pm_runtime_get_sync(codec->dev);
-+
- 	wm8994->vmid_refcount++;
- 
- 	dev_dbg(codec->dev, "Referencing VMID, refcount is now %d\n",
-@@ -796,6 +798,8 @@ static void vmid_dereference(struct snd_soc_codec *codec)
- 				    WM8994_VMID_BUF_ENA |
- 				    WM8994_VMID_RAMP_MASK, 0);
- 	}
-+
-+	pm_runtime_put(codec->dev);
- }
- 
- static int vmid_event(struct snd_soc_dapm_widget *w,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0060-ASoC-wm8994-Fix-typo-in-VMID-ramp-setting.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0060-ASoC-wm8994-Fix-typo-in-VMID-ramp-setting.patch
deleted file mode 100644
index 625bd28..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0060-ASoC-wm8994-Fix-typo-in-VMID-ramp-setting.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From e0781c37a52ef08a49e613ef22de8d28fa9cde4f Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Tue, 7 Feb 2012 17:24:19 +0000
-Subject: [PATCH 60/87] ASoC: wm8994: Fix typo in VMID ramp setting
-
-commit f647e1526fd6c7c8ab720781c40d11e11f930e93 upstream.
-
-The VMID ramp rate is supposed to be 0x3, not 11b. Fix that.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8994.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/wm8994.c b/sound/soc/codecs/wm8994.c
-index a3d6bd8..6e502af 100644
---- a/sound/soc/codecs/wm8994.c
-+++ b/sound/soc/codecs/wm8994.c
-@@ -744,7 +744,7 @@ static void vmid_reference(struct snd_soc_codec *codec)
- 				    WM8994_VMID_RAMP_MASK,
- 				    WM8994_STARTUP_BIAS_ENA |
- 				    WM8994_VMID_BUF_ENA |
--				    (0x11 << WM8994_VMID_RAMP_SHIFT));
-+				    (0x3 << WM8994_VMID_RAMP_SHIFT));
- 
- 		/* Main bias enable, VMID=2x40k */
- 		snd_soc_update_bits(codec, WM8994_POWER_MANAGEMENT_1,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0061-pcmcia-fix-socket-refcount-decrementing-on-each-resu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0061-pcmcia-fix-socket-refcount-decrementing-on-each-resu.patch
deleted file mode 100644
index 161c76b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0061-pcmcia-fix-socket-refcount-decrementing-on-each-resu.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-From 1c26182f30bdb305865cd6de1ccf6c4a7d32c074 Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel at arm.linux.org.uk>
-Date: Wed, 8 Feb 2012 17:13:41 -0800
-Subject: [PATCH 61/87] pcmcia: fix socket refcount decrementing on each
- resume
-
-commit 025e4ab3db07fcbf62c01e4f30d1012234beb980 upstream.
-
-This fixes a memory-corrupting bug: not only does it cause the warning,
-but as a result of dropping the refcount to zero, it causes the
-pcmcia_socket0 device structure to be freed while it still has
-references, causing slab caches corruption.  A fatal oops quickly
-follows this warning - often even just a 'dmesg' following the warning
-causes the kernel to oops.
-
-While testing suspend/resume on an ARM device with PCMCIA support, and a
-CF card inserted, I found that after five suspend and resumes, the
-kernel would complain, and shortly die after with slab corruption.
-
-  WARNING: at include/linux/kref.h:41 kobject_get+0x28/0x50()
-
-As the message doesn't give a clue about which kobject, and the built-in
-debugging in drivers/base/power/main.c happens too late, this was added
-right before each get_device():
-
-  printk("%s: %p [%s] %u\n", __func__, dev, kobject_name(&dev->kobj), atomic_read(&dev->kobj.kref.refcount));
-
-and on the 3rd s2ram cycle, the following behaviour observed:
-
-On the 3rd suspend/resume cycle:
-
-  dpm_prepare: c1a0d998 [pcmcia_socket0] 3
-  dpm_suspend: c1a0d998 [pcmcia_socket0] 3
-  dpm_suspend_noirq: c1a0d998 [pcmcia_socket0] 3
-  dpm_resume_noirq: c1a0d998 [pcmcia_socket0] 3
-  dpm_resume: c1a0d998 [pcmcia_socket0] 3
-  dpm_complete: c1a0d998 [pcmcia_socket0] 2
-
-4th:
-
-  dpm_prepare: c1a0d998 [pcmcia_socket0] 2
-  dpm_suspend: c1a0d998 [pcmcia_socket0] 2
-  dpm_suspend_noirq: c1a0d998 [pcmcia_socket0] 2
-  dpm_resume_noirq: c1a0d998 [pcmcia_socket0] 2
-  dpm_resume: c1a0d998 [pcmcia_socket0] 2
-  dpm_complete: c1a0d998 [pcmcia_socket0] 1
-
-5th:
-
-  dpm_prepare: c1a0d998 [pcmcia_socket0] 1
-  dpm_suspend: c1a0d998 [pcmcia_socket0] 1
-  dpm_suspend_noirq: c1a0d998 [pcmcia_socket0] 1
-  dpm_resume_noirq: c1a0d998 [pcmcia_socket0] 1
-  dpm_resume: c1a0d998 [pcmcia_socket0] 1
-  dpm_complete: c1a0d998 [pcmcia_socket0] 0
-  ------------[ cut here ]------------
-  WARNING: at include/linux/kref.h:41 kobject_get+0x28/0x50()
-  Modules linked in: ucb1x00_core
-  Backtrace:
-  [<c0212090>] (dump_backtrace+0x0/0x110) from [<c04799dc>] (dump_stack+0x18/0x1c)
-  [<c04799c4>] (dump_stack+0x0/0x1c) from [<c021cba0>] (warn_slowpath_common+0x50/0x68)
-  [<c021cb50>] (warn_slowpath_common+0x0/0x68) from [<c021cbdc>] (warn_slowpath_null+0x24/0x28)
-  [<c021cbb8>] (warn_slowpath_null+0x0/0x28) from [<c0335374>] (kobject_get+0x28/0x50)
-  [<c033534c>] (kobject_get+0x0/0x50) from [<c03804f4>] (get_device+0x1c/0x24)
-  [<c0388c90>] (dpm_complete+0x0/0x1a0) from [<c0389cc0>] (dpm_resume_end+0x1c/0x20)
-  ...
-
-Looking at commit 7b24e7988263 ("pcmcia: split up central event handler"),
-the following change was made to cs.c:
-
-                return 0;
-        }
- #endif
--
--       send_event(skt, CS_EVENT_PM_RESUME, CS_EVENT_PRI_LOW);
-+       if (!(skt->state & SOCKET_CARDBUS) && (skt->callback))
-+               skt->callback->early_resume(skt);
-        return 0;
- }
-
-And the corresponding change in ds.c is from:
-
--static int ds_event(struct pcmcia_socket *skt, event_t event, int priority)
--{
--       struct pcmcia_socket *s = pcmcia_get_socket(skt);
-...
--       switch (event) {
-...
--       case CS_EVENT_PM_RESUME:
--               if (verify_cis_cache(skt) != 0) {
--                       dev_dbg(&skt->dev, "cis mismatch - different card\n");
--                       /* first, remove the card */
--                       ds_event(skt, CS_EVENT_CARD_REMOVAL, CS_EVENT_PRI_HIGH);
--                       mutex_lock(&s->ops_mutex);
--                       destroy_cis_cache(skt);
--                       kfree(skt->fake_cis);
--                       skt->fake_cis = NULL;
--                       s->functions = 0;
--                       mutex_unlock(&s->ops_mutex);
--                       /* now, add the new card */
--                       ds_event(skt, CS_EVENT_CARD_INSERTION,
--                                CS_EVENT_PRI_LOW);
--               }
--               break;
-...
--    }
-
--    pcmcia_put_socket(s);
-
--    return 0;
--} /* ds_event */
-
-to:
-
-+static int pcmcia_bus_early_resume(struct pcmcia_socket *skt)
-+{
-+       if (!verify_cis_cache(skt)) {
-+               pcmcia_put_socket(skt);
-+               return 0;
-+       }
-
-+       dev_dbg(&skt->dev, "cis mismatch - different card\n");
-
-+       /* first, remove the card */
-+       pcmcia_bus_remove(skt);
-+       mutex_lock(&skt->ops_mutex);
-+       destroy_cis_cache(skt);
-+       kfree(skt->fake_cis);
-+       skt->fake_cis = NULL;
-+       skt->functions = 0;
-+       mutex_unlock(&skt->ops_mutex);
-
-+       /* now, add the new card */
-+       pcmcia_bus_add(skt);
-+       return 0;
-+}
-
-As can be seen, the original function called pcmcia_get_socket() and
-pcmcia_put_socket() around the guts, whereas the replacement code
-calls pcmcia_put_socket() only in one path.  This creates an imbalance
-in the refcounting.
-
-Testing with pcmcia_put_socket() put removed shows that the bug is gone:
-
-  dpm_suspend: c1a10998 [pcmcia_socket0] 5
-  dpm_suspend_noirq: c1a10998 [pcmcia_socket0] 5
-  dpm_resume_noirq: c1a10998 [pcmcia_socket0] 5
-  dpm_resume: c1a10998 [pcmcia_socket0] 5
-  dpm_complete: c1a10998 [pcmcia_socket0] 5
-
-Tested-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Cc: Dominik Brodowski <linux at dominikbrodowski.net>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/pcmcia/ds.c |    4 +---
- 1 file changed, 1 insertion(+), 3 deletions(-)
-
-diff --git a/drivers/pcmcia/ds.c b/drivers/pcmcia/ds.c
-index 749c2a1..1932029 100644
---- a/drivers/pcmcia/ds.c
-+++ b/drivers/pcmcia/ds.c
-@@ -1269,10 +1269,8 @@ static int pcmcia_bus_add(struct pcmcia_socket *skt)
- 
- static int pcmcia_bus_early_resume(struct pcmcia_socket *skt)
- {
--	if (!verify_cis_cache(skt)) {
--		pcmcia_put_socket(skt);
-+	if (!verify_cis_cache(skt))
- 		return 0;
--	}
- 
- 	dev_dbg(&skt->dev, "cis mismatch - different card\n");
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0062-ALSA-oxygen-virtuoso-fix-exchanged-L-R-volumes-of-au.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0062-ALSA-oxygen-virtuoso-fix-exchanged-L-R-volumes-of-au.patch
deleted file mode 100644
index cbe173b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0062-ALSA-oxygen-virtuoso-fix-exchanged-L-R-volumes-of-au.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 5c7ae045a077d4c9c8bf3ca735d48c319c70f18e Mon Sep 17 00:00:00 2001
-From: Clemens Ladisch <clemens at ladisch.de>
-Date: Sat, 4 Feb 2012 20:56:47 +0100
-Subject: [PATCH 62/87] ALSA: oxygen, virtuoso: fix exchanged L/R volumes of
- aux and CD inputs
-
-commit 2492250e4412c6411324c14ab289629360640b0a upstream.
-
-The driver accidentally exchanged the left/right fields for stereo AC'97
-mixer registers.  This affected only the aux and CD inputs because the
-line input bypasses the AC'97 codec and the mic input is mono; cards
-without AC'97 (Xonar DS/DG/HDAV Slim, HG2PCI, HiFier) were not affected.
-
-Reported-and-tested-by: Abby Cedar <abbycedar at yahoo.com.au>
-Signed-off-by: Clemens Ladisch <clemens at ladisch.de>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/oxygen/oxygen_mixer.c |   25 ++++++++++++++-----------
- 1 file changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/sound/pci/oxygen/oxygen_mixer.c b/sound/pci/oxygen/oxygen_mixer.c
-index 26c7e8b..c0dbb52 100644
---- a/sound/pci/oxygen/oxygen_mixer.c
-+++ b/sound/pci/oxygen/oxygen_mixer.c
-@@ -618,9 +618,12 @@ static int ac97_volume_get(struct snd_kcontrol *ctl,
- 	mutex_lock(&chip->mutex);
- 	reg = oxygen_read_ac97(chip, codec, index);
- 	mutex_unlock(&chip->mutex);
--	value->value.integer.value[0] = 31 - (reg & 0x1f);
--	if (stereo)
--		value->value.integer.value[1] = 31 - ((reg >> 8) & 0x1f);
-+	if (!stereo) {
-+		value->value.integer.value[0] = 31 - (reg & 0x1f);
-+	} else {
-+		value->value.integer.value[0] = 31 - ((reg >> 8) & 0x1f);
-+		value->value.integer.value[1] = 31 - (reg & 0x1f);
-+	}
- 	return 0;
- }
- 
-@@ -636,14 +639,14 @@ static int ac97_volume_put(struct snd_kcontrol *ctl,
- 
- 	mutex_lock(&chip->mutex);
- 	oldreg = oxygen_read_ac97(chip, codec, index);
--	newreg = oldreg;
--	newreg = (newreg & ~0x1f) |
--		(31 - (value->value.integer.value[0] & 0x1f));
--	if (stereo)
--		newreg = (newreg & ~0x1f00) |
--			((31 - (value->value.integer.value[1] & 0x1f)) << 8);
--	else
--		newreg = (newreg & ~0x1f00) | ((newreg & 0x1f) << 8);
-+	if (!stereo) {
-+		newreg = oldreg & ~0x1f;
-+		newreg |= 31 - (value->value.integer.value[0] & 0x1f);
-+	} else {
-+		newreg = oldreg & ~0x1f1f;
-+		newreg |= (31 - (value->value.integer.value[0] & 0x1f)) << 8;
-+		newreg |= 31 - (value->value.integer.value[1] & 0x1f);
-+	}
- 	change = newreg != oldreg;
- 	if (change)
- 		oxygen_write_ac97(chip, codec, index, newreg);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0063-iommu-amd-Work-around-broken-IVRS-tables.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0063-iommu-amd-Work-around-broken-IVRS-tables.patch
deleted file mode 100644
index b85f1a4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0063-iommu-amd-Work-around-broken-IVRS-tables.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From db8ef9e089221419a0fcccaf6f88c4d3a0750a96 Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Wed, 18 Jan 2012 14:03:11 +0100
-Subject: [PATCH 63/87] iommu/amd: Work around broken IVRS tables
-
-commit af1be04901e27ce669b4ecde1c953d5c939498f5 upstream.
-
-On some systems the IVRS table does not contain all PCI
-devices present in the system. In case a device not present
-in the IVRS table is translated by the IOMMU no DMA is
-possible from that device by default.
-This patch fixes this by removing the DTE entry for every
-PCI device present in the system and not covered by IVRS.
-
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/iommu/amd_iommu.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
-index 4ee277a..e0b3e33 100644
---- a/drivers/iommu/amd_iommu.c
-+++ b/drivers/iommu/amd_iommu.c
-@@ -2479,6 +2479,9 @@ static unsigned device_dma_ops_init(void)
- 
- 	for_each_pci_dev(pdev) {
- 		if (!check_device(&pdev->dev)) {
-+
-+			iommu_ignore_device(&pdev->dev);
-+
- 			unhandled += 1;
- 			continue;
- 		}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0064-iommu-msm-Fix-error-handling-in-msm_iommu_unmap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0064-iommu-msm-Fix-error-handling-in-msm_iommu_unmap.patch
deleted file mode 100644
index ebcd3c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0064-iommu-msm-Fix-error-handling-in-msm_iommu_unmap.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From 667de79718d03db9abc68a2a999fd4e072e3ad5e Mon Sep 17 00:00:00 2001
-From: Joerg Roedel <joerg.roedel at amd.com>
-Date: Thu, 26 Jan 2012 18:25:37 +0100
-Subject: [PATCH 64/87] iommu/msm: Fix error handling in msm_iommu_unmap()
-
-commit 05df1f3c2afaef5672627f2b7095f0d4c4dbc3a0 upstream.
-
-Error handling in msm_iommu_unmap() is broken. On some error
-conditions retval is set to a non-zero value which causes
-the function to return 'len' at the end. This hides the
-error from the user. Zero should be returned in those error
-cases.
-
-Cc: David Brown <davidb at codeaurora.org>
-Cc: Stepan Moskovchenko <stepanm at codeaurora.org>
-Signed-off-by: Joerg Roedel <joerg.roedel at amd.com>
-Acked-by: David Brown <davidb at codeaurora.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/iommu/msm_iommu.c |    7 +------
- 1 file changed, 1 insertion(+), 6 deletions(-)
-
-diff --git a/drivers/iommu/msm_iommu.c b/drivers/iommu/msm_iommu.c
-index 5865dd2..a4d134d 100644
---- a/drivers/iommu/msm_iommu.c
-+++ b/drivers/iommu/msm_iommu.c
-@@ -481,23 +481,19 @@ static int msm_iommu_unmap(struct iommu_domain *domain, unsigned long va,
- 
- 	priv = domain->priv;
- 
--	if (!priv) {
--		ret = -ENODEV;
-+	if (!priv)
- 		goto fail;
--	}
- 
- 	fl_table = priv->pgtable;
- 
- 	if (len != SZ_16M && len != SZ_1M &&
- 	    len != SZ_64K && len != SZ_4K) {
- 		pr_debug("Bad length: %d\n", len);
--		ret = -EINVAL;
- 		goto fail;
- 	}
- 
- 	if (!fl_table) {
- 		pr_debug("Null page table\n");
--		ret = -EINVAL;
- 		goto fail;
- 	}
- 
-@@ -506,7 +502,6 @@ static int msm_iommu_unmap(struct iommu_domain *domain, unsigned long va,
- 
- 	if (*fl_pte == 0) {
- 		pr_debug("First level PTE is 0\n");
--		ret = -ENODEV;
- 		goto fail;
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0065-mm-compaction-check-for-overlapping-nodes-during-iso.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0065-mm-compaction-check-for-overlapping-nodes-during-iso.patch
deleted file mode 100644
index 617552e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0065-mm-compaction-check-for-overlapping-nodes-during-iso.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From eac6f36f1d2ec20ad69b5aef85b6b9ba5490eaf1 Mon Sep 17 00:00:00 2001
-From: Mel Gorman <mgorman at suse.de>
-Date: Wed, 8 Feb 2012 17:13:38 -0800
-Subject: [PATCH 65/87] mm: compaction: check for overlapping nodes during
- isolation for migration
-
-commit dc9086004b3d5db75997a645b3fe08d9138b7ad0 upstream.
-
-When isolating pages for migration, migration starts at the start of a
-zone while the free scanner starts at the end of the zone.  Migration
-avoids entering a new zone by never going beyond the free scanned.
-
-Unfortunately, in very rare cases nodes can overlap.  When this happens,
-migration isolates pages without the LRU lock held, corrupting lists
-which will trigger errors in reclaim or during page free such as in the
-following oops
-
-  BUG: unable to handle kernel NULL pointer dereference at 0000000000000008
-  IP: [<ffffffff810f795c>] free_pcppages_bulk+0xcc/0x450
-  PGD 1dda554067 PUD 1e1cb58067 PMD 0
-  Oops: 0000 [#1] SMP
-  CPU 37
-  Pid: 17088, comm: memcg_process_s Tainted: G            X
-  RIP: free_pcppages_bulk+0xcc/0x450
-  Process memcg_process_s (pid: 17088, threadinfo ffff881c2926e000, task ffff881c2926c0c0)
-  Call Trace:
-    free_hot_cold_page+0x17e/0x1f0
-    __pagevec_free+0x90/0xb0
-    release_pages+0x22a/0x260
-    pagevec_lru_move_fn+0xf3/0x110
-    putback_lru_page+0x66/0xe0
-    unmap_and_move+0x156/0x180
-    migrate_pages+0x9e/0x1b0
-    compact_zone+0x1f3/0x2f0
-    compact_zone_order+0xa2/0xe0
-    try_to_compact_pages+0xdf/0x110
-    __alloc_pages_direct_compact+0xee/0x1c0
-    __alloc_pages_slowpath+0x370/0x830
-    __alloc_pages_nodemask+0x1b1/0x1c0
-    alloc_pages_vma+0x9b/0x160
-    do_huge_pmd_anonymous_page+0x160/0x270
-    do_page_fault+0x207/0x4c0
-    page_fault+0x25/0x30
-
-The "X" in the taint flag means that external modules were loaded but but
-is unrelated to the bug triggering.  The real problem was because the PFN
-layout looks like this
-
-  Zone PFN ranges:
-    DMA      0x00000010 -> 0x00001000
-    DMA32    0x00001000 -> 0x00100000
-    Normal   0x00100000 -> 0x01e80000
-  Movable zone start PFN for each node
-  early_node_map[14] active PFN ranges
-      0: 0x00000010 -> 0x0000009b
-      0: 0x00000100 -> 0x0007a1ec
-      0: 0x0007a354 -> 0x0007a379
-      0: 0x0007f7ff -> 0x0007f800
-      0: 0x00100000 -> 0x00680000
-      1: 0x00680000 -> 0x00e80000
-      0: 0x00e80000 -> 0x01080000
-      1: 0x01080000 -> 0x01280000
-      0: 0x01280000 -> 0x01480000
-      1: 0x01480000 -> 0x01680000
-      0: 0x01680000 -> 0x01880000
-      1: 0x01880000 -> 0x01a80000
-      0: 0x01a80000 -> 0x01c80000
-      1: 0x01c80000 -> 0x01e80000
-
-The fix is straight-forward.  isolate_migratepages() has to make a
-similar check to isolate_freepage to ensure that it never isolates pages
-from a zone it does not hold the LRU lock for.
-
-This was discovered in a 3.0-based kernel but it affects 3.1.x, 3.2.x
-and current mainline.
-
-Signed-off-by: Mel Gorman <mgorman at suse.de>
-Acked-by: Michal Nazarewicz <mina86 at mina86.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/compaction.c |   11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/mm/compaction.c b/mm/compaction.c
-index edc1e26..8fb8a40 100644
---- a/mm/compaction.c
-+++ b/mm/compaction.c
-@@ -330,8 +330,17 @@ static isolate_migrate_t isolate_migratepages(struct zone *zone,
- 			continue;
- 		nr_scanned++;
- 
--		/* Get the page and skip if free */
-+		/*
-+		 * Get the page and ensure the page is within the same zone.
-+		 * See the comment in isolate_freepages about overlapping
-+		 * nodes. It is deliberate that the new zone lock is not taken
-+		 * as memory compaction should not move pages between nodes.
-+		 */
- 		page = pfn_to_page(low_pfn);
-+		if (page_zone(page) != zone)
-+			continue;
-+
-+		/* Skip if free */
- 		if (PageBuddy(page))
- 			continue;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0066-mm-fix-UP-THP-spin_is_locked-BUGs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0066-mm-fix-UP-THP-spin_is_locked-BUGs.patch
deleted file mode 100644
index 303f75c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0066-mm-fix-UP-THP-spin_is_locked-BUGs.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 25a6cd70476e3d2a0314a4295a0514a4448dbac2 Mon Sep 17 00:00:00 2001
-From: Hugh Dickins <hughd at google.com>
-Date: Wed, 8 Feb 2012 17:13:40 -0800
-Subject: [PATCH 66/87] mm: fix UP THP spin_is_locked BUGs
-
-commit b9980cdcf2524c5fe15d8cbae9c97b3ed6385563 upstream.
-
-Fix CONFIG_TRANSPARENT_HUGEPAGE=y CONFIG_SMP=n CONFIG_DEBUG_VM=y
-CONFIG_DEBUG_SPINLOCK=n kernel: spin_is_locked() is then always false,
-and so triggers some BUGs in Transparent HugePage codepaths.
-
-asm-generic/bug.h mentions this problem, and provides a WARN_ON_SMP(x);
-but being too lazy to add VM_BUG_ON_SMP, BUG_ON_SMP, WARN_ON_SMP_ONCE,
-VM_WARN_ON_SMP_ONCE, just test NR_CPUS != 1 in the existing VM_BUG_ONs.
-
-Signed-off-by: Hugh Dickins <hughd at google.com>
-Cc: Andrea Arcangeli <aarcange at redhat.com>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/huge_memory.c |    4 ++--
- mm/swap.c        |    2 +-
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/mm/huge_memory.c b/mm/huge_memory.c
-index 36b3d98..33141f5 100644
---- a/mm/huge_memory.c
-+++ b/mm/huge_memory.c
-@@ -2064,7 +2064,7 @@ static void collect_mm_slot(struct mm_slot *mm_slot)
- {
- 	struct mm_struct *mm = mm_slot->mm;
- 
--	VM_BUG_ON(!spin_is_locked(&khugepaged_mm_lock));
-+	VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&khugepaged_mm_lock));
- 
- 	if (khugepaged_test_exit(mm)) {
- 		/* free mm_slot */
-@@ -2094,7 +2094,7 @@ static unsigned int khugepaged_scan_mm_slot(unsigned int pages,
- 	int progress = 0;
- 
- 	VM_BUG_ON(!pages);
--	VM_BUG_ON(!spin_is_locked(&khugepaged_mm_lock));
-+	VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&khugepaged_mm_lock));
- 
- 	if (khugepaged_scan.mm_slot)
- 		mm_slot = khugepaged_scan.mm_slot;
-diff --git a/mm/swap.c b/mm/swap.c
-index a91caf7..55b266d 100644
---- a/mm/swap.c
-+++ b/mm/swap.c
-@@ -667,7 +667,7 @@ void lru_add_page_tail(struct zone* zone,
- 	VM_BUG_ON(!PageHead(page));
- 	VM_BUG_ON(PageCompound(page_tail));
- 	VM_BUG_ON(PageLRU(page_tail));
--	VM_BUG_ON(!spin_is_locked(&zone->lru_lock));
-+	VM_BUG_ON(NR_CPUS != 1 && !spin_is_locked(&zone->lru_lock));
- 
- 	SetPageLRU(page_tail);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0067-target-Use-correct-preempted-registration-sense-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0067-target-Use-correct-preempted-registration-sense-code.patch
deleted file mode 100644
index 4431e23..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0067-target-Use-correct-preempted-registration-sense-code.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From e984745acea6568eb41ce680ed321d04f17b3f70 Mon Sep 17 00:00:00 2001
-From: Marco Sanvido <marco at purestorage.com>
-Date: Tue, 3 Jan 2012 17:12:57 -0800
-Subject: [PATCH 67/87] target: Use correct preempted registration sense code
-
-commit 9e08e34e3735ae057eb3834da3570995811b7eb9 upstream.
-
-The comments quote the right parts of the spec:
-
-   * d) Establish a unit attention condition for the
-   *    initiator port associated with every I_T nexus
-   *    that lost its registration other than the I_T
-   *    nexus on which the PERSISTENT RESERVE OUT command
-   *    was received, with the additional sense code set
-   *    to REGISTRATIONS PREEMPTED.
-
-and
-
-   * e) Establish a unit attention condition for the initiator
-   *    port associated with every I_T nexus that lost its
-   *    persistent reservation and/or registration, with the
-   *    additional sense code set to REGISTRATIONS PREEMPTED;
-
-but the actual code accidentally uses ASCQ_2AH_RESERVATIONS_PREEMPTED
-instead of ASCQ_2AH_REGISTRATIONS_PREEMPTED.  Fix this.
-
-Signed-off-by: Marco Sanvido <marco at purestorage.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_pr.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index 95dee70..4911fe9 100644
---- a/drivers/target/target_core_pr.c
-+++ b/drivers/target/target_core_pr.c
-@@ -3138,7 +3138,7 @@ static int core_scsi3_pro_preempt(
- 			if (!calling_it_nexus)
- 				core_scsi3_ua_allocate(pr_reg_nacl,
- 					pr_res_mapped_lun, 0x2A,
--					ASCQ_2AH_RESERVATIONS_PREEMPTED);
-+					ASCQ_2AH_REGISTRATIONS_PREEMPTED);
- 		}
- 		spin_unlock(&pr_tmpl->registration_lock);
- 		/*
-@@ -3251,7 +3251,7 @@ static int core_scsi3_pro_preempt(
- 		 *    additional sense code set to REGISTRATIONS PREEMPTED;
- 		 */
- 		core_scsi3_ua_allocate(pr_reg_nacl, pr_res_mapped_lun, 0x2A,
--				ASCQ_2AH_RESERVATIONS_PREEMPTED);
-+				ASCQ_2AH_REGISTRATIONS_PREEMPTED);
- 	}
- 	spin_unlock(&pr_tmpl->registration_lock);
- 	/*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0068-target-Allow-PERSISTENT-RESERVE-IN-for-non-reservati.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0068-target-Allow-PERSISTENT-RESERVE-IN-for-non-reservati.patch
deleted file mode 100644
index b39f046..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0068-target-Allow-PERSISTENT-RESERVE-IN-for-non-reservati.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 1605e4e1ccfd2335053437a5b26b060d13f3ea76 Mon Sep 17 00:00:00 2001
-From: Marco Sanvido <marco at purestorage.com>
-Date: Tue, 3 Jan 2012 17:12:58 -0800
-Subject: [PATCH 68/87] target: Allow PERSISTENT RESERVE IN for
- non-reservation holder
-
-commit 6816966a8418b980481b4dced7eddd1796b145e8 upstream.
-
-Initiators that aren't the active reservation holder should be able to
-do a PERSISTENT RESERVE IN command in all cases, so add it to the list
-of allowed CDBs in core_scsi3_pr_seq_non_holder().
-
-Signed-off-by: Marco Sanvido <marco at purestorage.com>
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_pr.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index 4911fe9..9119d92 100644
---- a/drivers/target/target_core_pr.c
-+++ b/drivers/target/target_core_pr.c
-@@ -481,6 +481,7 @@ static int core_scsi3_pr_seq_non_holder(
- 	case READ_MEDIA_SERIAL_NUMBER:
- 	case REPORT_LUNS:
- 	case REQUEST_SENSE:
-+	case PERSISTENT_RESERVE_IN:
- 		ret = 0; /*/ Allowed CDBs */
- 		break;
- 	default:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0069-target-Correct-sense-key-for-INVALID-FIELD-IN-PARAME.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0069-target-Correct-sense-key-for-INVALID-FIELD-IN-PARAME.patch
deleted file mode 100644
index 6795689..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0069-target-Correct-sense-key-for-INVALID-FIELD-IN-PARAME.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From ac30c6102b46b25c5fb93c200501f2d913c89129 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Mon, 9 Jan 2012 17:54:00 -0800
-Subject: [PATCH 69/87] target: Correct sense key for INVALID FIELD IN
- {PARAMETER LIST,CDB}
-
-commit 9fbc8909876a2160044e71d376848973b9bfdc3f upstream.
-
-According to SPC-4, the sense key for commands that are failed with
-INVALID FIELD IN PARAMETER LIST and INVALID FIELD IN CDB should be
-ILLEGAL REQUEST (5h) rather than ABORTED COMMAND (Bh).  Without this
-patch, a tcm_loop LUN incorrectly gives:
-
-    # sg_raw -r 1 -v /dev/sda 3 1 0 0 ff 0
-    Sense Information:
-     Fixed format, current;  Sense key: Aborted Command
-     Additional sense: Invalid field in cdb
-     Raw sense data (in hex):
-            70 00 0b 00 00 00 00 0a  00 00 00 00 24 00 00 00
-            00 00
-
-While a real SCSI disk gives:
-
-    Sense Information:
-     Fixed format, current;  Sense key: Illegal Request
-     Additional sense: Invalid field in cdb
-     Raw sense data (in hex):
-            70 00 05 00 00 00 00 18  00 00 00 00 24 00 00 00
-            00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00
-
-with the main point being that the real disk gives a sense key of
-ILLEGAL REQUEST (5h).
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_transport.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index e87d0eb..4f99d4c 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -4403,8 +4403,8 @@ int transport_send_check_condition_and_sense(
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
- 		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
--		/* ABORTED COMMAND */
--		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
-+		/* ILLEGAL REQUEST */
-+		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
- 		/* INVALID FIELD IN CDB */
- 		buffer[offset+SPC_ASC_KEY_OFFSET] = 0x24;
- 		break;
-@@ -4412,8 +4412,8 @@ int transport_send_check_condition_and_sense(
- 		/* CURRENT ERROR */
- 		buffer[offset] = 0x70;
- 		buffer[offset+SPC_ADD_SENSE_LEN_OFFSET] = 10;
--		/* ABORTED COMMAND */
--		buffer[offset+SPC_SENSE_KEY_OFFSET] = ABORTED_COMMAND;
-+		/* ILLEGAL REQUEST */
-+		buffer[offset+SPC_SENSE_KEY_OFFSET] = ILLEGAL_REQUEST;
- 		/* INVALID FIELD IN PARAMETER LIST */
- 		buffer[offset+SPC_ASC_KEY_OFFSET] = 0x26;
- 		break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0070-target-Add-workaround-for-zero-length-control-CDB-ha.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0070-target-Add-workaround-for-zero-length-control-CDB-ha.patch
deleted file mode 100644
index 3d9616e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0070-target-Add-workaround-for-zero-length-control-CDB-ha.patch
+++ /dev/null
@@ -1,62 +0,0 @@
-From e5fda224c4241fbbf09ef46396e4688d09bd03d6 Mon Sep 17 00:00:00 2001
-From: Nicholas Bellinger <nab at linux-iscsi.org>
-Date: Fri, 13 Jan 2012 12:01:34 -0800
-Subject: [PATCH 70/87] target: Add workaround for zero-length control CDB
- handling
-
-commit 91ec1d3535b2acf12c599045cc19ad9be3c6a47b upstream.
-
-This patch adds a work-around for handling zero allocation length
-control CDBs (type SCF_SCSI_CONTROL_SG_IO_CDB) that was causing an
-OOPs with the following raw calls:
-
-   # sg_raw -v /dev/sdd 3 0 0 0 0 0
-   # sg_raw -v /dev/sdd 0x1a 0 1 0 0 0
-
-This patch will follow existing zero-length handling for data I/O
-and silently return with GOOD status.  This addresses the zero length
-issue, but the proper long-term resolution for handling arbitary
-allocation lengths will be to refactor out data-phase handling in
-individual CDB emulation logic within target_core_cdb.c
-
-Reported-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_transport.c |   13 +++++++++++++
- 1 file changed, 13 insertions(+)
-
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index 4f99d4c..861628e 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -3701,6 +3701,11 @@ transport_allocate_control_task(struct se_cmd *cmd)
- 	struct se_task *task;
- 	unsigned long flags;
- 
-+	/* Workaround for handling zero-length control CDBs */
-+	if ((cmd->se_cmd_flags & SCF_SCSI_CONTROL_SG_IO_CDB) &&
-+	    !cmd->data_length)
-+		return 0;
-+
- 	task = transport_generic_get_task(cmd, cmd->data_direction);
- 	if (!task)
- 		return -ENOMEM;
-@@ -3772,6 +3777,14 @@ int transport_generic_new_cmd(struct se_cmd *cmd)
- 	else if (!task_cdbs && (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB)) {
- 		cmd->t_state = TRANSPORT_COMPLETE;
- 		atomic_set(&cmd->t_transport_active, 1);
-+
-+		if (cmd->t_task_cdb[0] == REQUEST_SENSE) {
-+			u8 ua_asc = 0, ua_ascq = 0;
-+
-+			core_scsi3_ua_clear_for_request_sense(cmd,
-+					&ua_asc, &ua_ascq);
-+		}
-+
- 		INIT_WORK(&cmd->work, target_complete_ok_work);
- 		queue_work(target_completion_wq, &cmd->work);
- 		return 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0071-target-Return-correct-ASC-for-unimplemented-VPD-page.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0071-target-Return-correct-ASC-for-unimplemented-VPD-page.patch
deleted file mode 100644
index 074b7dc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0071-target-Return-correct-ASC-for-unimplemented-VPD-page.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 46dee097dea0df225b58d525ca0a667f4f83677a Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Tue, 17 Jan 2012 18:00:56 -0800
-Subject: [PATCH 71/87] target: Return correct ASC for unimplemented VPD pages
-
-commit bb1acb2ee038a6c13ee99e0b9fb44dacb4a9de84 upstream.
-
-My draft of SPC-4 says:
-
-    If the device server does not implement the requested vital product
-    data page, then the command shall be terminated with CHECK CONDITION
-    status, with the sense key set to ILLEGAL REQUEST, and the
-    additional sense code set to INVALID FIELD IN CDB.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_cdb.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 2e8c1be..24991f3 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -732,7 +732,7 @@ int target_emulate_inquiry(struct se_task *task)
- 	}
- 
- 	pr_err("Unknown VPD Code: 0x%02x\n", cdb[2]);
--	cmd->scsi_sense_reason = TCM_UNSUPPORTED_SCSI_OPCODE;
-+	cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD;
- 	ret = -EINVAL;
- 
- out_unmap:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0072-target-Fail-INQUIRY-commands-with-EVPD-0-but-PAGE-CO.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0072-target-Fail-INQUIRY-commands-with-EVPD-0-but-PAGE-CO.patch
deleted file mode 100644
index 295b2ad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0072-target-Fail-INQUIRY-commands-with-EVPD-0-but-PAGE-CO.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 4abb846e9c2c7bb5951f7b90700b20d063005bec Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Tue, 17 Jan 2012 18:00:57 -0800
-Subject: [PATCH 72/87] target: Fail INQUIRY commands with EVPD==0 but PAGE
- CODE!=0
-
-commit bf0053550aebe56f3bb5dd793e9de69238b5b945 upstream.
-
-My draft of SPC-4 says:
-
-    If the PAGE CODE field is not set to zero when the EVPD bit is set
-    to zero, the command shall be terminated with CHECK CONDITION
-    status, with the sense key set to ILLEGAL REQUEST, and the
-    additional sense code set to INVALID FIELD IN CDB.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_cdb.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 24991f3..251e48f 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -701,6 +701,13 @@ int target_emulate_inquiry(struct se_task *task)
- 	int p, ret;
- 
- 	if (!(cdb[1] & 0x1)) {
-+		if (cdb[2]) {
-+			pr_err("INQUIRY with EVPD==0 but PAGE CODE=%02x\n",
-+			       cdb[2]);
-+			cmd->scsi_sense_reason = TCM_INVALID_CDB_FIELD;
-+			return -EINVAL;
-+		}
-+
- 		ret = target_emulate_inquiry_std(cmd);
- 		goto out;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0073-Staging-asus_oled-fix-image-processing.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0073-Staging-asus_oled-fix-image-processing.patch
deleted file mode 100644
index 73cadcd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0073-Staging-asus_oled-fix-image-processing.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From ba22cf8591fcdf24760b2e1d413b421025862e19 Mon Sep 17 00:00:00 2001
-From: Pekka Paalanen <pq at iki.fi>
-Date: Sun, 22 Jan 2012 16:33:46 +0200
-Subject: [PATCH 73/87] Staging: asus_oled: fix image processing
-
-commit 635032cb397b396241372fa0ff36ae758e658b23 upstream.
-
-Programming an image was broken, because odev->buf_offs was not advanced
-for val == 0 in append_values(). This regression was introduced in:
-
- commit 1ff12a4aa354bed093a0240d5e6347b1e27601bc
- Author: Kevin A. Granade <kevin.granade at gmail.com>
- Date:   Sat Sep 5 01:03:39 2009 -0500
-
-     Staging: asus_oled: Cleaned up checkpatch issues.
-
-Fix the image processing by special-casing val == 0.
-
-I have tested this change on an Asus G50V laptop only.
-
-Cc: Jakub Schmidtke <sjakub at gmail.com>
-Cc: Kevin A. Granade <kevin.granade at gmail.com>
-Signed-off-by: Pekka Paalanen <pq at iki.fi>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/asus_oled/asus_oled.c |   10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/staging/asus_oled/asus_oled.c b/drivers/staging/asus_oled/asus_oled.c
-index 7bb7da7..8894bd5 100644
---- a/drivers/staging/asus_oled/asus_oled.c
-+++ b/drivers/staging/asus_oled/asus_oled.c
-@@ -355,7 +355,14 @@ static void send_data(struct asus_oled_dev *odev)
- 
- static int append_values(struct asus_oled_dev *odev, uint8_t val, size_t count)
- {
--	while (count-- > 0 && val) {
-+	odev->last_val = val;
-+
-+	if (val == 0) {
-+		odev->buf_offs += count;
-+		return 0;
-+	}
-+
-+	while (count-- > 0) {
- 		size_t x = odev->buf_offs % odev->width;
- 		size_t y = odev->buf_offs / odev->width;
- 		size_t i;
-@@ -406,7 +413,6 @@ static int append_values(struct asus_oled_dev *odev, uint8_t val, size_t count)
- 			;
- 		}
- 
--		odev->last_val = val;
- 		odev->buf_offs++;
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0074-Staging-asus_oled-fix-NULL-ptr-crash-on-unloading.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0074-Staging-asus_oled-fix-NULL-ptr-crash-on-unloading.patch
deleted file mode 100644
index 0c9dc7d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0074-Staging-asus_oled-fix-NULL-ptr-crash-on-unloading.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From 03f2f07d9918f0a0c7b91bee69a5c2e22b0c07de Mon Sep 17 00:00:00 2001
-From: Pekka Paalanen <pq at iki.fi>
-Date: Sun, 22 Jan 2012 16:33:47 +0200
-Subject: [PATCH 74/87] Staging: asus_oled: fix NULL-ptr crash on unloading
-
-commit 3589e74595a4332ebf77b5ed006f3c6686071ecd upstream.
-
-Asus_oled triggers the following bug on module unloading:
-
- usbcore: deregistering interface driver asus-oled
- BUG: unable to handle kernel NULL pointer dereference at 0000000000000038
- IP: [<ffffffff8111292b>] sysfs_delete_link+0x30/0x66
-
- Call Trace:
-  [<ffffffff81225373>] device_remove_class_symlinks+0x6b/0x70
-  [<ffffffff812256a8>] device_del+0x9f/0x1ab
-  [<ffffffff812257c5>] device_unregister+0x11/0x1e
-  [<ffffffffa000cb82>] asus_oled_disconnect+0x4f/0x9e [asus_oled]
-  [<ffffffff81277430>] usb_unbind_interface+0x54/0x103
-  [<ffffffff812276c4>] __device_release_driver+0xa2/0xeb
-  [<ffffffff81227794>] driver_detach+0x87/0xad
-  [<ffffffff812269e9>] bus_remove_driver+0x91/0xc1
-  [<ffffffff81227fb4>] driver_unregister+0x66/0x6e
-  [<ffffffff812771ed>] usb_deregister+0xbb/0xc4
-  [<ffffffffa000ce87>] asus_oled_exit+0x2f/0x31 [asus_oled]
-  [<ffffffff81068365>] sys_delete_module+0x1b8/0x21b
-  [<ffffffff810ae3de>] ? do_munmap+0x2ef/0x313
-  [<ffffffff813699bb>] system_call_fastpath+0x16/0x1b
-
-This is due to an incorrect destruction sequence in asus_oled_exit().
-
-Fix the order, fixes the bug. Tested on an Asus G50V laptop only.
-
-Cc: Jakub Schmidtke <sjakub at gmail.com>
-Signed-off-by: Pekka Paalanen <pq at iki.fi>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/asus_oled/asus_oled.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/staging/asus_oled/asus_oled.c b/drivers/staging/asus_oled/asus_oled.c
-index 8894bd5..63bafbb 100644
---- a/drivers/staging/asus_oled/asus_oled.c
-+++ b/drivers/staging/asus_oled/asus_oled.c
-@@ -811,10 +811,9 @@ error:
- 
- static void __exit asus_oled_exit(void)
- {
-+	usb_deregister(&oled_driver);
- 	class_remove_file(oled_class, &class_attr_version.attr);
- 	class_destroy(oled_class);
--
--	usb_deregister(&oled_driver);
- }
- 
- module_init(asus_oled_init);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0075-staging-r8712u-Add-new-Sitecom-UsB-ID.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0075-staging-r8712u-Add-new-Sitecom-UsB-ID.patch
deleted file mode 100644
index bd3df9a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0075-staging-r8712u-Add-new-Sitecom-UsB-ID.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 1ef65b2bca9a70b4f1d149f5c51dbeb0f39b50b8 Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sat, 7 Jan 2012 10:07:03 -0600
-Subject: [PATCH 75/87] staging: r8712u: Add new Sitecom UsB ID
-
-commit 1793bf1deddc8ce25dc41925d5dbe64536c841b6 upstream.
-
-Add USB ID for SITECOM WLA-1000 V1 001 WLAN
-
-Reported-and-tested-by: Roland Gruber <post at rolandgruber.de>
-Reported-and-tested-by: Dario Lucia <dario.lucia at gmail.com>
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/rtl8712/usb_intf.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c
-index 5385da2..8de0c80 100644
---- a/drivers/staging/rtl8712/usb_intf.c
-+++ b/drivers/staging/rtl8712/usb_intf.c
-@@ -89,6 +89,7 @@ static struct usb_device_id rtl871x_usb_id_tbl[] = {
- 	{USB_DEVICE(0x0DF6, 0x0045)},
- 	{USB_DEVICE(0x0DF6, 0x0059)}, /* 11n mode disable */
- 	{USB_DEVICE(0x0DF6, 0x004B)},
-+	{USB_DEVICE(0x0DF6, 0x005B)},
- 	{USB_DEVICE(0x0DF6, 0x005D)},
- 	{USB_DEVICE(0x0DF6, 0x0063)},
- 	/* Sweex */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0076-staging-r8712u-Use-asynchronous-firmware-loading.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0076-staging-r8712u-Use-asynchronous-firmware-loading.patch
deleted file mode 100644
index ae66b2c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0076-staging-r8712u-Use-asynchronous-firmware-loading.patch
+++ /dev/null
@@ -1,285 +0,0 @@
-From b4473ac7f39d094ae718360d87872faa2a1662cb Mon Sep 17 00:00:00 2001
-From: Larry Finger <Larry.Finger at lwfinger.net>
-Date: Sun, 5 Feb 2012 21:12:26 -0600
-Subject: [PATCH 76/87] staging: r8712u: Use asynchronous firmware loading
-
-commit 8c213fa59199f9673d66970d6940fa093186642f upstream.
-
-In https://bugs.archlinux.org/task/27996, failure of driver r8712u is
-reported, with a timeout during module loading due to synchronous loading
-of the firmware. The code now uses request_firmware_nowait().
-
-Signed-off-by: Larry Finger <Larry.Finger at lwfinger.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/rtl8712/drv_types.h   |    7 ++++
- drivers/staging/rtl8712/hal_init.c    |   62 +++++++++++++++++++++++----------
- drivers/staging/rtl8712/os_intfs.c    |   14 ++++++--
- drivers/staging/rtl8712/rtl8712_hal.h |    1 +
- drivers/staging/rtl8712/usb_intf.c    |    9 +++--
- 5 files changed, 68 insertions(+), 25 deletions(-)
-
-diff --git a/drivers/staging/rtl8712/drv_types.h b/drivers/staging/rtl8712/drv_types.h
-index 9b5d771..ed85b44 100644
---- a/drivers/staging/rtl8712/drv_types.h
-+++ b/drivers/staging/rtl8712/drv_types.h
-@@ -37,6 +37,8 @@ struct _adapter;
- #include "wlan_bssdef.h"
- #include "rtl8712_spec.h"
- #include "rtl8712_hal.h"
-+#include <linux/mutex.h>
-+#include <linux/completion.h>
- 
- enum _NIC_VERSION {
- 	RTL8711_NIC,
-@@ -168,6 +170,7 @@ struct _adapter {
- 	s32	bSurpriseRemoved;
- 	u32	IsrContent;
- 	u32	ImrContent;
-+	bool	fw_found;
- 	u8	EepromAddressSize;
- 	u8	hw_init_completed;
- 	struct task_struct *cmdThread;
-@@ -184,6 +187,10 @@ struct _adapter {
- 	_workitem wkFilterRxFF0;
- 	u8 blnEnableRxFF0Filter;
- 	spinlock_t lockRxFF0Filter;
-+	const struct firmware *fw;
-+	struct usb_interface *pusb_intf;
-+	struct mutex mutex_start;
-+	struct completion rtl8712_fw_ready;
- };
- 
- static inline u8 *myid(struct eeprom_priv *peepriv)
-diff --git a/drivers/staging/rtl8712/hal_init.c b/drivers/staging/rtl8712/hal_init.c
-index d0029aa..cc893c0 100644
---- a/drivers/staging/rtl8712/hal_init.c
-+++ b/drivers/staging/rtl8712/hal_init.c
-@@ -42,29 +42,56 @@
- #define FWBUFF_ALIGN_SZ 512
- #define MAX_DUMP_FWSZ	49152 /*default = 49152 (48k)*/
- 
--static u32 rtl871x_open_fw(struct _adapter *padapter, void **pphfwfile_hdl,
--		    const u8 **ppmappedfw)
-+static void rtl871x_load_fw_cb(const struct firmware *firmware, void *context)
- {
-+	struct _adapter *padapter = context;
-+
-+	complete(&padapter->rtl8712_fw_ready);
-+	if (!firmware) {
-+		struct usb_device *udev = padapter->dvobjpriv.pusbdev;
-+		struct usb_interface *pusb_intf = padapter->pusb_intf;
-+		printk(KERN_ERR "r8712u: Firmware request failed\n");
-+		padapter->fw_found = false;
-+		usb_put_dev(udev);
-+		usb_set_intfdata(pusb_intf, NULL);
-+		return;
-+	}
-+	padapter->fw = firmware;
-+	padapter->fw_found = true;
-+	/* firmware available - start netdev */
-+	register_netdev(padapter->pnetdev);
-+}
-+
-+static const char firmware_file[] = "rtlwifi/rtl8712u.bin";
-+
-+int rtl871x_load_fw(struct _adapter *padapter)
-+{
-+	struct device *dev = &padapter->dvobjpriv.pusbdev->dev;
- 	int rc;
--	const char firmware_file[] = "rtlwifi/rtl8712u.bin";
--	const struct firmware **praw = (const struct firmware **)
--				       (pphfwfile_hdl);
--	struct dvobj_priv *pdvobjpriv = (struct dvobj_priv *)
--					(&padapter->dvobjpriv);
--	struct usb_device *pusbdev = pdvobjpriv->pusbdev;
- 
-+	init_completion(&padapter->rtl8712_fw_ready);
- 	printk(KERN_INFO "r8712u: Loading firmware from \"%s\"\n",
- 	       firmware_file);
--	rc = request_firmware(praw, firmware_file, &pusbdev->dev);
--	if (rc < 0) {
--		printk(KERN_ERR "r8712u: Unable to load firmware\n");
--		printk(KERN_ERR "r8712u: Install latest linux-firmware\n");
-+	rc = request_firmware_nowait(THIS_MODULE, 1, firmware_file, dev,
-+				     GFP_KERNEL, padapter, rtl871x_load_fw_cb);
-+	if (rc)
-+		printk(KERN_ERR "r8712u: Firmware request error %d\n", rc);
-+	return rc;
-+}
-+MODULE_FIRMWARE("rtlwifi/rtl8712u.bin");
-+
-+static u32 rtl871x_open_fw(struct _adapter *padapter, const u8 **ppmappedfw)
-+{
-+	const struct firmware **praw = &padapter->fw;
-+
-+	if (padapter->fw->size > 200000) {
-+		printk(KERN_ERR "r8172u: Badfw->size of %d\n",
-+		       (int)padapter->fw->size);
- 		return 0;
- 	}
- 	*ppmappedfw = (u8 *)((*praw)->data);
- 	return (*praw)->size;
- }
--MODULE_FIRMWARE("rtlwifi/rtl8712u.bin");
- 
- static void fill_fwpriv(struct _adapter *padapter, struct fw_priv *pfwpriv)
- {
-@@ -142,18 +169,17 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
- 	uint dump_imem_sz, imem_sz, dump_emem_sz, emem_sz; /* max = 49152; */
- 	struct fw_hdr fwhdr;
- 	u32 ulfilelength;	/* FW file size */
--	void *phfwfile_hdl = NULL;
- 	const u8 *pmappedfw = NULL;
- 	u8 *ptmpchar = NULL, *ppayload, *ptr;
- 	struct tx_desc *ptx_desc;
- 	u32 txdscp_sz = sizeof(struct tx_desc);
- 	u8 ret = _FAIL;
- 
--	ulfilelength = rtl871x_open_fw(padapter, &phfwfile_hdl, &pmappedfw);
-+	ulfilelength = rtl871x_open_fw(padapter, &pmappedfw);
- 	if (pmappedfw && (ulfilelength > 0)) {
- 		update_fwhdr(&fwhdr, pmappedfw);
- 		if (chk_fwhdr(&fwhdr, ulfilelength) == _FAIL)
--			goto firmware_rel;
-+			return ret;
- 		fill_fwpriv(padapter, &fwhdr.fwpriv);
- 		/* firmware check ok */
- 		maxlen = (fwhdr.img_IMEM_size > fwhdr.img_SRAM_size) ?
-@@ -161,7 +187,7 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
- 		maxlen += txdscp_sz;
- 		ptmpchar = _malloc(maxlen + FWBUFF_ALIGN_SZ);
- 		if (ptmpchar == NULL)
--			goto firmware_rel;
-+			return ret;
- 
- 		ptx_desc = (struct tx_desc *)(ptmpchar + FWBUFF_ALIGN_SZ -
- 			    ((addr_t)(ptmpchar) & (FWBUFF_ALIGN_SZ - 1)));
-@@ -297,8 +323,6 @@ static u8 rtl8712_dl_fw(struct _adapter *padapter)
- 
- exit_fail:
- 	kfree(ptmpchar);
--firmware_rel:
--	release_firmware((struct firmware *)phfwfile_hdl);
- 	return ret;
- }
- 
-diff --git a/drivers/staging/rtl8712/os_intfs.c b/drivers/staging/rtl8712/os_intfs.c
-index 9a75c6d..98a3d68 100644
---- a/drivers/staging/rtl8712/os_intfs.c
-+++ b/drivers/staging/rtl8712/os_intfs.c
-@@ -31,6 +31,7 @@
- #include <linux/module.h>
- #include <linux/init.h>
- #include <linux/kthread.h>
-+#include <linux/firmware.h>
- #include "osdep_service.h"
- #include "drv_types.h"
- #include "xmit_osdep.h"
-@@ -264,12 +265,12 @@ static void start_drv_timers(struct _adapter *padapter)
- void r8712_stop_drv_timers(struct _adapter *padapter)
- {
- 	_cancel_timer_ex(&padapter->mlmepriv.assoc_timer);
--	_cancel_timer_ex(&padapter->mlmepriv.sitesurveyctrl.
--			 sitesurvey_ctrl_timer);
- 	_cancel_timer_ex(&padapter->securitypriv.tkip_timer);
- 	_cancel_timer_ex(&padapter->mlmepriv.scan_to_timer);
- 	_cancel_timer_ex(&padapter->mlmepriv.dhcp_timer);
- 	_cancel_timer_ex(&padapter->mlmepriv.wdg_timer);
-+	_cancel_timer_ex(&padapter->mlmepriv.sitesurveyctrl.
-+			 sitesurvey_ctrl_timer);
- }
- 
- static u8 init_default_value(struct _adapter *padapter)
-@@ -347,7 +348,8 @@ u8 r8712_free_drv_sw(struct _adapter *padapter)
- 	r8712_free_mlme_priv(&padapter->mlmepriv);
- 	r8712_free_io_queue(padapter);
- 	_free_xmit_priv(&padapter->xmitpriv);
--	_r8712_free_sta_priv(&padapter->stapriv);
-+	if (padapter->fw_found)
-+		_r8712_free_sta_priv(&padapter->stapriv);
- 	_r8712_free_recv_priv(&padapter->recvpriv);
- 	mp871xdeinit(padapter);
- 	if (pnetdev)
-@@ -388,6 +390,7 @@ static int netdev_open(struct net_device *pnetdev)
- {
- 	struct _adapter *padapter = (struct _adapter *)netdev_priv(pnetdev);
- 
-+	mutex_lock(&padapter->mutex_start);
- 	if (padapter->bup == false) {
- 		padapter->bDriverStopped = false;
- 		padapter->bSurpriseRemoved = false;
-@@ -435,11 +438,13 @@ static int netdev_open(struct net_device *pnetdev)
- 	/* start driver mlme relation timer */
- 	start_drv_timers(padapter);
- 	padapter->ledpriv.LedControlHandler(padapter, LED_CTL_NO_LINK);
-+	mutex_unlock(&padapter->mutex_start);
- 	return 0;
- netdev_open_error:
- 	padapter->bup = false;
- 	netif_carrier_off(pnetdev);
- 	netif_stop_queue(pnetdev);
-+	mutex_unlock(&padapter->mutex_start);
- 	return -1;
- }
- 
-@@ -473,6 +478,9 @@ static int netdev_close(struct net_device *pnetdev)
- 	r8712_free_network_queue(padapter);
- 	/* The interface is no longer Up: */
- 	padapter->bup = false;
-+	release_firmware(padapter->fw);
-+	/* never exit with a firmware callback pending */
-+	wait_for_completion(&padapter->rtl8712_fw_ready);
- 	return 0;
- }
- 
-diff --git a/drivers/staging/rtl8712/rtl8712_hal.h b/drivers/staging/rtl8712/rtl8712_hal.h
-index 665e718..d19865a 100644
---- a/drivers/staging/rtl8712/rtl8712_hal.h
-+++ b/drivers/staging/rtl8712/rtl8712_hal.h
-@@ -145,5 +145,6 @@ struct hal_priv {
- };
- 
- uint	 rtl8712_hal_init(struct _adapter *padapter);
-+int rtl871x_load_fw(struct _adapter *padapter);
- 
- #endif
-diff --git a/drivers/staging/rtl8712/usb_intf.c b/drivers/staging/rtl8712/usb_intf.c
-index 8de0c80..9bade18 100644
---- a/drivers/staging/rtl8712/usb_intf.c
-+++ b/drivers/staging/rtl8712/usb_intf.c
-@@ -390,6 +390,7 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf,
- 	pdvobjpriv = &padapter->dvobjpriv;
- 	pdvobjpriv->padapter = padapter;
- 	padapter->dvobjpriv.pusbdev = udev;
-+	padapter->pusb_intf = pusb_intf;
- 	usb_set_intfdata(pusb_intf, pnetdev);
- 	SET_NETDEV_DEV(pnetdev, &pusb_intf->dev);
- 	/* step 2. */
-@@ -596,10 +597,11 @@ static int r871xu_drv_init(struct usb_interface *pusb_intf,
- 			       "%pM\n", mac);
- 		memcpy(pnetdev->dev_addr, mac, ETH_ALEN);
- 	}
--	/* step 6. Tell the network stack we exist */
--	if (register_netdev(pnetdev) != 0)
-+	/* step 6. Load the firmware asynchronously */
-+	if (rtl871x_load_fw(padapter))
- 		goto error;
- 	spin_lock_init(&padapter->lockRxFF0Filter);
-+	mutex_init(&padapter->mutex_start);
- 	return 0;
- error:
- 	usb_put_dev(udev);
-@@ -630,7 +632,8 @@ static void r871xu_dev_remove(struct usb_interface *pusb_intf)
- 		flush_scheduled_work();
- 		udelay(1);
- 		/*Stop driver mlme relation timer */
--		r8712_stop_drv_timers(padapter);
-+		if (padapter->fw_found)
-+			r8712_stop_drv_timers(padapter);
- 		r871x_dev_unload(padapter);
- 		r8712_free_drv_sw(padapter);
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0077-usb-ch9.h-usb_endpoint_maxp-uses-__le16_to_cpu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0077-usb-ch9.h-usb_endpoint_maxp-uses-__le16_to_cpu.patch
deleted file mode 100644
index 2d6e9bc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0077-usb-ch9.h-usb_endpoint_maxp-uses-__le16_to_cpu.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 230ad2431790484aa5b315e3b86bf22106f4fffc Mon Sep 17 00:00:00 2001
-From: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
-Date: Tue, 31 Jan 2012 16:43:50 -0800
-Subject: [PATCH 77/87] usb: ch9.h: usb_endpoint_maxp() uses __le16_to_cpu()
-
-commit 9c0a835a9d9aed41bcf9c287f5069133a6e2a87b upstream.
-
-The usb/ch9.h will be installed to /usr/include/linux,
-and be used from user space.
-But le16_to_cpu() is only defined for kernel code.
-Without this patch, user space compile will be broken.
-Special thanks to Stefan Becker
-
-Reported-by: Stefan Becker <chemobejk at gmail.com>
-Signed-off-by: Kuninori Morimoto <kuninori.morimoto.gx at renesas.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/usb/ch9.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/include/linux/usb/ch9.h b/include/linux/usb/ch9.h
-index 61b2905..3b6f628 100644
---- a/include/linux/usb/ch9.h
-+++ b/include/linux/usb/ch9.h
-@@ -589,7 +589,7 @@ static inline int usb_endpoint_is_isoc_out(
-  */
- static inline int usb_endpoint_maxp(const struct usb_endpoint_descriptor *epd)
- {
--	return le16_to_cpu(epd->wMaxPacketSize);
-+	return __le16_to_cpu(epd->wMaxPacketSize);
- }
- 
- /*-------------------------------------------------------------------------*/
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0078-usb-gadget-zero-fix-bug-in-loopback-autoresume-handl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0078-usb-gadget-zero-fix-bug-in-loopback-autoresume-handl.patch
deleted file mode 100644
index 084163d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0078-usb-gadget-zero-fix-bug-in-loopback-autoresume-handl.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From aae47336ab9dd1a63912f136052ed664b3dd5a5f Mon Sep 17 00:00:00 2001
-From: Timo Juhani Lindfors <timo.lindfors at iki.fi>
-Date: Sun, 29 Jan 2012 16:12:13 +0200
-Subject: [PATCH 78/87] usb: gadget: zero: fix bug in loopback autoresume
- handling
-
-commit 683da59d7b8ae04891636d4b59893cd4e9b0b7e5 upstream.
-
-ab943a2e125b (USB: gadget: gadget zero uses new suspend/resume hooks)
-introduced a copy-paste error where f_loopback.c writes to a variable
-declared in f_sourcesink.c. This prevents one from creating gadgets
-that only have a loopback function.
-
-Signed-off-by: Timo Juhani Lindfors <timo.lindfors at iki.fi>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/gadget/f_loopback.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/gadget/f_loopback.c b/drivers/usb/gadget/f_loopback.c
-index 6d87f28..2c0cd82 100644
---- a/drivers/usb/gadget/f_loopback.c
-+++ b/drivers/usb/gadget/f_loopback.c
-@@ -418,7 +418,7 @@ int __init loopback_add(struct usb_composite_dev *cdev, bool autoresume)
- 
- 	/* support autoresume for remote wakeup testing */
- 	if (autoresume)
--		sourcesink_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP;
-+		loopback_driver.bmAttributes |= USB_CONFIG_ATT_WAKEUP;
- 
- 	/* support OTG systems */
- 	if (gadget_is_otg(cdev->gadget)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0079-usb-Skip-PCI-USB-quirk-handling-for-Netlogic-XLP.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0079-usb-Skip-PCI-USB-quirk-handling-for-Netlogic-XLP.patch
deleted file mode 100644
index a38c8c9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0079-usb-Skip-PCI-USB-quirk-handling-for-Netlogic-XLP.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 295bd0424c6399e39755a153cabc6a273f384bbb Mon Sep 17 00:00:00 2001
-From: Jayachandran C <jayachandranc at netlogicmicro.com>
-Date: Fri, 27 Jan 2012 20:27:32 +0530
-Subject: [PATCH 79/87] usb: Skip PCI USB quirk handling for Netlogic XLP
-
-commit e4436a7c17ac2b5e138f93f83a541cba9b311685 upstream.
-
-The Netlogic XLP SoC's on-chip USB controller appears as a PCI
-USB device, but does not need the EHCI/OHCI handoff done in
-usb/host/pci-quirks.c.
-
-The pci-quirks.c is enabled for all vendors and devices, and is
-enabled if USB and PCI are configured.
-
-If we do not skip the qurik handling on XLP, the readb() call in
-ehci_bios_handoff() will cause a crash since byte access is not
-supported for EHCI registers in XLP.
-
-Signed-off-by: Jayachandran C <jayachandranc at netlogicmicro.com>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/pci-quirks.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
-index caf8742..ac53a66 100644
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
-@@ -867,6 +867,12 @@ hc_init:
- 
- static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev)
- {
-+	/* Skip Netlogic mips SoC's internal PCI USB controller.
-+	 * This device does not need/support EHCI/OHCI handoff
-+	 */
-+	if (pdev->vendor == 0x184e)	/* vendor Netlogic */
-+		return;
-+
- 	if (pdev->class == PCI_CLASS_SERIAL_USB_UHCI)
- 		quirk_usb_handoff_uhci(pdev);
- 	else if (pdev->class == PCI_CLASS_SERIAL_USB_OHCI)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0080-USB-usbserial-add-new-PID-number-0xa951-to-the-ftdi-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0080-USB-usbserial-add-new-PID-number-0xa951-to-the-ftdi-.patch
deleted file mode 100644
index 8ea6be5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0080-USB-usbserial-add-new-PID-number-0xa951-to-the-ftdi-.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From c3c9a3de412eeb394594b3a3394c01f24e59614b Mon Sep 17 00:00:00 2001
-From: Milan Kocian <milon at wq.cz>
-Date: Fri, 3 Feb 2012 14:28:00 +0100
-Subject: [PATCH 80/87] USB: usbserial: add new PID number (0xa951) to the
- ftdi driver
-
-commit 90451e6973a5da155c6f315a409ca0a8d3ce6b76 upstream.
-
-Signed-off-by: Milan Kocian <milon at wq.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ftdi_sio.c     |    1 +
- drivers/usb/serial/ftdi_sio_ids.h |    7 +++++++
- 2 files changed, 8 insertions(+)
-
-diff --git a/drivers/usb/serial/ftdi_sio.c b/drivers/usb/serial/ftdi_sio.c
-index 058b92c..f030471 100644
---- a/drivers/usb/serial/ftdi_sio.c
-+++ b/drivers/usb/serial/ftdi_sio.c
-@@ -839,6 +839,7 @@ static struct usb_device_id id_table_combined [] = {
- 	{ USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LOGBOOKML_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_LS_LOGBOOK_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_SCIENCESCOPE_HS_LOGBOOK_PID) },
-+	{ USB_DEVICE(FTDI_VID, FTDI_CINTERION_MC55I_PID) },
- 	{ USB_DEVICE(FTDI_VID, FTDI_DOTEC_PID) },
- 	{ USB_DEVICE(QIHARDWARE_VID, MILKYMISTONE_JTAGSERIAL_PID),
- 		.driver_info = (kernel_ulong_t)&ftdi_jtag_quirk },
-diff --git a/drivers/usb/serial/ftdi_sio_ids.h b/drivers/usb/serial/ftdi_sio_ids.h
-index 76d4f31..4eb7715 100644
---- a/drivers/usb/serial/ftdi_sio_ids.h
-+++ b/drivers/usb/serial/ftdi_sio_ids.h
-@@ -1187,3 +1187,10 @@
-  */
- /* ZigBee controller */
- #define FTDI_RF_R106		0x8A28
-+
-+/*
-+ * Product: HCP HIT GPRS modem
-+ * Manufacturer: HCP d.o.o.
-+ * ATI command output: Cinterion MC55i
-+ */
-+#define FTDI_CINTERION_MC55I_PID	0xA951
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0081-USB-add-new-zte-3g-dongle-s-pid-to-option.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0081-USB-add-new-zte-3g-dongle-s-pid-to-option.c.patch
deleted file mode 100644
index e93ecf5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0081-USB-add-new-zte-3g-dongle-s-pid-to-option.c.patch
+++ /dev/null
@@ -1,181 +0,0 @@
-From 49c80982027de2eabd50b86747d4350b17576d2f Mon Sep 17 00:00:00 2001
-From: Rui li <li.rui27 at zte.com.cn>
-Date: Tue, 31 Jan 2012 15:27:33 +0800
-Subject: [PATCH 81/87] USB: add new zte 3g-dongle's pid to option.c
-
-commit 1608ea5f4b5d6262cd6e808839491cfb2a67405a upstream.
-
-As ZTE have and will use more pid for new products this year,
-so we need to add some new zte 3g-dongle's pid on option.c ,
-and delete one pid 0x0154 because it use for mass-storage port.
-
-Signed-off-by: Rui li <li.rui27 at zte.com.cn>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |  129 ++++++++++++++++++++++++++++++++++++++++++-
- 1 file changed, 128 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 2a9ed6e..338d082 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -855,6 +855,18 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0083, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0086, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0087, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0088, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0089, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0090, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0091, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0092, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0093, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0095, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0096, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0097, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0098, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0099, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0105, 0xff, 0xff, 0xff) },
-@@ -883,7 +895,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0151, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0153, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0154, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0155, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0156, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff) },
-@@ -892,6 +903,12 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0160, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0161, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0168, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0170, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0176, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff) },
-@@ -1066,6 +1083,116 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1401, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1403, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1404, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1405, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1406, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1407, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1408, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1409, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1410, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1411, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1412, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1413, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1414, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1415, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1416, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1417, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1418, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1419, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1420, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1421, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1422, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1423, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1424, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1425, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1427, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1429, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1430, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1431, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1432, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1433, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1434, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1435, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1436, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1437, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1438, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1439, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1440, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1441, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1442, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1443, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1444, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1445, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1446, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1447, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1448, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1449, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1450, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1451, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1452, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1453, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1454, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1455, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1456, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1457, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1458, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1459, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1460, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1461, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1462, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1463, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1464, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1465, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1466, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1467, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1468, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1469, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1470, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1471, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1472, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1473, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1474, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1475, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1476, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1477, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1478, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1479, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1480, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1482, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1483, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1484, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1486, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1487, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1488, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1489, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1490, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1491, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1492, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1493, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1494, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1495, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1496, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1497, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1498, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1499, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1500, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1501, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1502, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1503, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1504, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1505, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1506, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1507, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1508, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1509, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1510, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, /* ZTE CDMA products */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0027, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0082-zcache-Set-SWIZ_BITS-to-8-to-reduce-tmem-bucket-lock.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0082-zcache-Set-SWIZ_BITS-to-8-to-reduce-tmem-bucket-lock.patch
deleted file mode 100644
index 398a7e7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0082-zcache-Set-SWIZ_BITS-to-8-to-reduce-tmem-bucket-lock.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From c69c01371c7d6002afb733f458955943c5a1bb6a Mon Sep 17 00:00:00 2001
-From: Dan Magenheimer <dan.magenheimer at oracle.com>
-Date: Mon, 23 Jan 2012 16:52:20 -0500
-Subject: [PATCH 82/87] zcache: Set SWIZ_BITS to 8 to reduce tmem bucket lock
- contention.
-
-commit e8b4553457e78bcff90f70a31212a40a8fd4f0db upstream.
-
-SWIZ_BITS > 8 results in a much larger number of "tmem_obj"
-allocations, likely one per page-placed-in-frontswap.  The
-tmem_obj is not huge (roughly 100 bytes), but it is large
-enough to add a not-insignificant memory overhead to zcache.
-
-The SWIZ_BITS=8  will get roughly the same lock contention
-without the space wastage.
-
-The effect of SWIZ_BITS can be thought of as "2^SWIZ_BITS is
-the number of unique oids that be generated" (This concept is
-limited to frontswap's use of tmem).
-
-Acked-by: Seth Jennings <sjenning at linux.vnet.ibm.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/zcache/zcache-main.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
-index 56c1f9c..d3a8e67 100644
---- a/drivers/staging/zcache/zcache-main.c
-+++ b/drivers/staging/zcache/zcache-main.c
-@@ -1782,9 +1782,9 @@ static int zcache_frontswap_poolid = -1;
-  * Swizzling increases objects per swaptype, increasing tmem concurrency
-  * for heavy swaploads.  Later, larger nr_cpus -> larger SWIZ_BITS
-  * Setting SWIZ_BITS to 27 basically reconstructs the swap entry from
-- * frontswap_get_page()
-+ * frontswap_get_page(), but has side-effects. Hence using 8.
-  */
--#define SWIZ_BITS		27
-+#define SWIZ_BITS		8
- #define SWIZ_MASK		((1 << SWIZ_BITS) - 1)
- #define _oswiz(_type, _ind)	((_type << SWIZ_BITS) | (_ind & SWIZ_MASK))
- #define iswiz(_ind)		(_ind >> SWIZ_BITS)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0083-zcache-fix-deadlock-condition.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0083-zcache-fix-deadlock-condition.patch
deleted file mode 100644
index 35a9e26..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0083-zcache-fix-deadlock-condition.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 99725fe4821eb426b92b7c0bbdedeb30efc9f4f0 Mon Sep 17 00:00:00 2001
-From: Dan Magenheimer <dan.magenheimer at oracle.com>
-Date: Wed, 25 Jan 2012 14:32:51 -0800
-Subject: [PATCH 83/87] zcache: fix deadlock condition
-
-commit 9256a4789be3dae37d00924c03546ba7958ea5a3 upstream.
-
-I discovered this deadlock condition awhile ago working on RAMster
-but it affects zcache as well.  The list spinlock must be
-locked prior to the page spinlock and released after.  As
-a result, the page copy must also be done while the locks are held.
-
-Applies to 3.2.  Konrad, please push (via GregKH?)...
-this is definitely a bug fix so need not be pushed during
-a -rc0 window.
-
-Signed-off-by: Dan Magenheimer <dan.magenheimer at oracle.com>
-Acked-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/staging/zcache/zcache-main.c |    7 +++----
- 1 file changed, 3 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/staging/zcache/zcache-main.c b/drivers/staging/zcache/zcache-main.c
-index d3a8e67..f5e469d 100644
---- a/drivers/staging/zcache/zcache-main.c
-+++ b/drivers/staging/zcache/zcache-main.c
-@@ -358,8 +358,8 @@ static struct zbud_hdr *zbud_create(uint16_t client_id, uint16_t pool_id,
- 	if (unlikely(zbpg == NULL))
- 		goto out;
- 	/* ok, have a page, now compress the data before taking locks */
--	spin_lock(&zbpg->lock);
- 	spin_lock(&zbud_budlists_spinlock);
-+	spin_lock(&zbpg->lock);
- 	list_add_tail(&zbpg->bud_list, &zbud_unbuddied[nchunks].list);
- 	zbud_unbuddied[nchunks].count++;
- 	zh = &zbpg->buddy[0];
-@@ -389,12 +389,11 @@ init_zh:
- 	zh->oid = *oid;
- 	zh->pool_id = pool_id;
- 	zh->client_id = client_id;
--	/* can wait to copy the data until the list locks are dropped */
--	spin_unlock(&zbud_budlists_spinlock);
--
- 	to = zbud_data(zh, size);
- 	memcpy(to, cdata, size);
- 	spin_unlock(&zbpg->lock);
-+	spin_unlock(&zbud_budlists_spinlock);
-+
- 	zbud_cumul_chunk_counts[nchunks]++;
- 	atomic_inc(&zcache_zbud_curr_zpages);
- 	zcache_zbud_cumul_zpages++;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0084-mmc-cb710-core-Add-missing-spin_lock_init-for-irq_lo.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0084-mmc-cb710-core-Add-missing-spin_lock_init-for-irq_lo.patch
deleted file mode 100644
index 6561769..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0084-mmc-cb710-core-Add-missing-spin_lock_init-for-irq_lo.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From ef3744aa0e9e51a6d484d56336fba11e8c52ca76 Mon Sep 17 00:00:00 2001
-From: Axel Lin <axel.lin at gmail.com>
-Date: Wed, 1 Feb 2012 12:31:47 +0800
-Subject: [PATCH 84/87] mmc: cb710 core: Add missing spin_lock_init for
- irq_lock of struct cb710_chip
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-commit b5266ea675c5a041e2852c7ccec4cf2d4f5e0cf4 upstream.
-
-Signed-off-by: Axel Lin <axel.lin at gmail.com>
-Acked-by: Michał Mirosław <mirq-linux at rere.qmqm.pl>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/misc/cb710/core.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/misc/cb710/core.c b/drivers/misc/cb710/core.c
-index 68cd05b..85cc771 100644
---- a/drivers/misc/cb710/core.c
-+++ b/drivers/misc/cb710/core.c
-@@ -245,6 +245,7 @@ static int __devinit cb710_probe(struct pci_dev *pdev,
- 	if (err)
- 		return err;
- 
-+	spin_lock_init(&chip->irq_lock);
- 	chip->pdev = pdev;
- 	chip->iobase = pcim_iomap_table(pdev)[0];
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch
deleted file mode 100644
index f1b40fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From 525694bfdb207144d8c8789ea1b689817b465e26 Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Fri, 6 Jan 2012 15:56:31 +0100
-Subject: [PATCH 85/87] powernow-k8: Avoid Pstate MSR accesses on systems
- supporting CPB
-
-commit 201bf0f129e1715a33568d1563d9a75b840ab4d3 upstream.
-
-Due to CPB we can't directly map SW Pstates to Pstate MSRs. Get rid of
-the paranoia check. (assuming that the ACPI Pstate information is
-correct.)
-
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Signed-off-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/cpufreq/powernow-k8.c |   19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
-index bce576d..e0329f9 100644
---- a/drivers/cpufreq/powernow-k8.c
-+++ b/drivers/cpufreq/powernow-k8.c
-@@ -926,23 +926,24 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
- 			invalidate_entry(powernow_table, i);
- 			continue;
- 		}
--		rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
--		if (!(hi & HW_PSTATE_VALID_MASK)) {
--			pr_debug("invalid pstate %d, ignoring\n", index);
--			invalidate_entry(powernow_table, i);
--			continue;
--		}
--
--		powernow_table[i].index = index;
--
- 		/* Frequency may be rounded for these */
- 		if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
- 				 || boot_cpu_data.x86 == 0x11) {
-+
-+			rdmsr(MSR_PSTATE_DEF_BASE + index, lo, hi);
-+			if (!(hi & HW_PSTATE_VALID_MASK)) {
-+				pr_debug("invalid pstate %d, ignoring\n", index);
-+				invalidate_entry(powernow_table, i);
-+				continue;
-+			}
-+
- 			powernow_table[i].frequency =
- 				freq_from_fid_did(lo & 0x3f, (lo >> 6) & 7);
- 		} else
- 			powernow_table[i].frequency =
- 				data->acpi_data.states[i].core_frequency * 1000;
-+
-+		powernow_table[i].index = index;
- 	}
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0086-powernow-k8-Fix-indexing-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0086-powernow-k8-Fix-indexing-issue.patch
deleted file mode 100644
index 76a5ba1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0086-powernow-k8-Fix-indexing-issue.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 8277118fee6c96e85f62a048ef2fb2bf45aa2a9d Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Fri, 6 Jan 2012 15:57:55 +0100
-Subject: [PATCH 86/87] powernow-k8: Fix indexing issue
-
-commit a8eb28480e9b637cc78b9aa5e08612ba97e1317a upstream.
-
-The driver uses the pstate number from the status register as index in
-its table of ACPI pstates (powernow_table). This is wrong as this is
-not a 1-to-1 mapping.
-
-For example we can have _PSS information to just utilize Pstate 0 and
-Pstate 4, ie.
-
-  powernow-k8: Core Performance Boosting: on.
-  powernow-k8:    0 : pstate 0 (2200 MHz)
-  powernow-k8:    1 : pstate 4 (1400 MHz)
-
-In this example the driver's powernow_table has just 2 entries. Using
-the pstate number (4) as index into this table is just plain wrong.
-
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Signed-off-by: Dave Jones <davej at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/cpufreq/powernow-k8.c |   15 +++++++++++----
- 1 file changed, 11 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
-index e0329f9..ad683ec 100644
---- a/drivers/cpufreq/powernow-k8.c
-+++ b/drivers/cpufreq/powernow-k8.c
-@@ -54,6 +54,9 @@ static DEFINE_PER_CPU(struct powernow_k8_data *, powernow_data);
- 
- static int cpu_family = CPU_OPTERON;
- 
-+/* array to map SW pstate number to acpi state */
-+static u32 ps_to_as[8];
-+
- /* core performance boost */
- static bool cpb_capable, cpb_enabled;
- static struct msr __percpu *msrs;
-@@ -80,9 +83,9 @@ static u32 find_khz_freq_from_fid(u32 fid)
- }
- 
- static u32 find_khz_freq_from_pstate(struct cpufreq_frequency_table *data,
--		u32 pstate)
-+				     u32 pstate)
- {
--	return data[pstate].frequency;
-+	return data[ps_to_as[pstate]].frequency;
- }
- 
- /* Return the vco fid for an input fid
-@@ -926,6 +929,9 @@ static int fill_powernow_table_pstate(struct powernow_k8_data *data,
- 			invalidate_entry(powernow_table, i);
- 			continue;
- 		}
-+
-+		ps_to_as[index] = i;
-+
- 		/* Frequency may be rounded for these */
- 		if ((boot_cpu_data.x86 == 0x10 && boot_cpu_data.x86_model < 10)
- 				 || boot_cpu_data.x86 == 0x11) {
-@@ -1190,7 +1196,8 @@ static int powernowk8_target(struct cpufreq_policy *pol,
- 	powernow_k8_acpi_pst_values(data, newstate);
- 
- 	if (cpu_family == CPU_HW_PSTATE)
--		ret = transition_frequency_pstate(data, newstate);
-+		ret = transition_frequency_pstate(data,
-+			data->powernow_table[newstate].index);
- 	else
- 		ret = transition_frequency_fidvid(data, newstate);
- 	if (ret) {
-@@ -1203,7 +1210,7 @@ static int powernowk8_target(struct cpufreq_policy *pol,
- 
- 	if (cpu_family == CPU_HW_PSTATE)
- 		pol->cur = find_khz_freq_from_pstate(data->powernow_table,
--				newstate);
-+				data->powernow_table[newstate].index);
- 	else
- 		pol->cur = find_khz_freq_from_fid(data->currfid);
- 	ret = 0;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0087-Linux-3.2.6.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0087-Linux-3.2.6.patch
deleted file mode 100644
index f556732..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.6/0087-Linux-3.2.6.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 156d62cca61fb5e1773ebb727f1c5a346d23c4ce Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 13 Feb 2012 11:17:29 -0800
-Subject: [PATCH 87/87] Linux 3.2.6
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index e9dd0ff..47fe496 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 5
-+SUBLEVEL = 6
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0001-ixgbe-fix-vf-lookup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0001-ixgbe-fix-vf-lookup.patch
deleted file mode 100644
index 2a9d364..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0001-ixgbe-fix-vf-lookup.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f9bd794600e41085bf9d479ad084c333ecf067b3 Mon Sep 17 00:00:00 2001
-From: Greg Rose <gregory.v.rose at intel.com>
-Date: Fri, 3 Feb 2012 00:54:13 +0000
-Subject: [PATCH 01/30] ixgbe: fix vf lookup
-
-commit a4b08329c74985e5cc3a44b6d2b2c59444ed8079 upstream.
-
-Recent addition of code to find already allocated VFs failed to take
-account that systems with 2 or more multi-port SR-IOV capable controllers
-might have already enabled VFs.  Make sure that the VFs the function is
-finding are actually subordinate to the particular instance of the adapter
-that is looking for them and not subordinate to some device that has
-previously enabled SR-IOV.
-
-This bug exists in 3.2 stable as well as 3.3 release candidates.
-
-Reported-by: David Ahern <daahern at cisco.com>
-Signed-off-by: Greg Rose <gregory.v.rose at intel.com>
-Tested-by: Robert E Garrett <robertX.e.garrett at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
-index 00fcd39..e571356 100644
---- a/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
-+++ b/drivers/net/ethernet/intel/ixgbe/ixgbe_sriov.c
-@@ -67,7 +67,8 @@ static int ixgbe_find_enabled_vfs(struct ixgbe_adapter *adapter)
- 	vf_devfn = pdev->devfn + 0x80;
- 	pvfdev = pci_get_device(IXGBE_INTEL_VENDOR_ID, device_id, NULL);
- 	while (pvfdev) {
--		if (pvfdev->devfn == vf_devfn)
-+		if (pvfdev->devfn == vf_devfn &&
-+		    (pvfdev->bus->number >= pdev->bus->number))
- 			vfs_found++;
- 		vf_devfn += 2;
- 		pvfdev = pci_get_device(IXGBE_INTEL_VENDOR_ID,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0002-igb-fix-vf-lookup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0002-igb-fix-vf-lookup.patch
deleted file mode 100644
index a0bee8e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0002-igb-fix-vf-lookup.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From a7dfae97cea4c23e2fd73ce22da4e50438dd9b99 Mon Sep 17 00:00:00 2001
-From: Greg Rose <gregory.v.rose at intel.com>
-Date: Thu, 2 Feb 2012 23:51:43 +0000
-Subject: [PATCH 02/30] igb: fix vf lookup
-
-commit 0629292117572a60465f38cdedde2f8164c3df0b upstream.
-
-Recent addition of code to find already allocated VFs failed to take
-account that systems with 2 or more multi-port SR-IOV capable controllers
-might have already enabled VFs.  Make sure that the VFs the function is
-finding are actually subordinate to the particular instance of the adapter
-that is looking for them and not subordinate to some device that has
-previously enabled SR-IOV.
-
-This is applicable to 3.2+ kernels.
-
-Reported-by: David Ahern <daahern at cisco.com>
-Signed-off-by: Greg Rose <gregory.v.rose at intel.com>
-Tested-by: Robert E Garrett <robertX.e.garrett at intel.com>
-Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/intel/igb/igb_main.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/intel/igb/igb_main.c b/drivers/net/ethernet/intel/igb/igb_main.c
-index ced5444..222954d 100644
---- a/drivers/net/ethernet/intel/igb/igb_main.c
-+++ b/drivers/net/ethernet/intel/igb/igb_main.c
-@@ -4965,7 +4965,8 @@ static int igb_find_enabled_vfs(struct igb_adapter *adapter)
- 	vf_devfn = pdev->devfn + 0x80;
- 	pvfdev = pci_get_device(hw->vendor_id, device_id, NULL);
- 	while (pvfdev) {
--		if (pvfdev->devfn == vf_devfn)
-+		if (pvfdev->devfn == vf_devfn &&
-+		    (pvfdev->bus->number >= pdev->bus->number))
- 			vfs_found++;
- 		vf_devfn += vf_stride;
- 		pvfdev = pci_get_device(hw->vendor_id,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0003-perf-evsel-Fix-an-issue-where-perf-report-fails-to-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0003-perf-evsel-Fix-an-issue-where-perf-report-fails-to-s.patch
deleted file mode 100644
index 3957851..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0003-perf-evsel-Fix-an-issue-where-perf-report-fails-to-s.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From a6777e17a8286e9d1c7b60d4664a1b325d96948d Mon Sep 17 00:00:00 2001
-From: "Naveen N. Rao" <naveen.n.rao at linux.vnet.ibm.com>
-Date: Fri, 3 Feb 2012 22:31:13 +0530
-Subject: [PATCH 03/30] perf evsel: Fix an issue where perf report fails to
- show the proper percentage
-
-commit a4a03fc7ef89020baca4f19174e6a43767c6d78a upstream.
-
-This patch fixes an issue where perf report shows nan% for certain
-perf.data files. The below is from a report for a do_fork probe:
-
-   -nan%           sshd  [kernel.kallsyms]  [k] do_fork
-   -nan%    packagekitd  [kernel.kallsyms]  [k] do_fork
-   -nan%    dbus-daemon  [kernel.kallsyms]  [k] do_fork
-   -nan%           bash  [kernel.kallsyms]  [k] do_fork
-
-A git bisect shows commit f3bda2c as the cause. However, looking back
-through the git history, I saw commit 640c03c which seems to have
-removed the required initialization for perf_sample->period. The problem
-only started showing after commit f3bda2c. The below patch re-introduces
-the initialization and it fixes the problem for me.
-
-With the below patch, for the same perf.data:
-
-  73.08%             bash  [kernel.kallsyms]  [k] do_fork
-   8.97%      11-dhclient  [kernel.kallsyms]  [k] do_fork
-   6.41%             sshd  [kernel.kallsyms]  [k] do_fork
-   3.85%        20-chrony  [kernel.kallsyms]  [k] do_fork
-   2.56%         sendmail  [kernel.kallsyms]  [k] do_fork
-
-This patch applies over current linux-tip commit 9949284.
-
-Problem introduced in:
-
-$ git describe 640c03c
-v2.6.37-rc3-83-g640c03c
-
-Cc: Ananth N Mavinakayanahalli <ananth at in.ibm.com>
-Cc: Ingo Molnar <mingo at elte.hu>
-Cc: Robert Richter <robert.richter at amd.com>
-Cc: Srikar Dronamraju <srikar at linux.vnet.ibm.com>
-Link: http://lkml.kernel.org/r/20120203170113.5190.25558.stgit@localhost6.localdomain6
-Signed-off-by: Naveen N. Rao <naveen.n.rao at linux.vnet.ibm.com>
-Signed-off-by: Arnaldo Carvalho de Melo <acme at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- tools/perf/util/evsel.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c
-index d7915d4..efca198 100644
---- a/tools/perf/util/evsel.c
-+++ b/tools/perf/util/evsel.c
-@@ -390,6 +390,7 @@ int perf_event__parse_sample(const union perf_event *event, u64 type,
- 
- 	data->cpu = data->pid = data->tid = -1;
- 	data->stream_id = data->id = data->time = -1ULL;
-+	data->period = 1;
- 
- 	if (event->header.type != PERF_RECORD_SAMPLE) {
- 		if (!sample_id_all)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0004-perf-tools-Fix-perf-stack-to-non-executable-on-x86_6.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0004-perf-tools-Fix-perf-stack-to-non-executable-on-x86_6.patch
deleted file mode 100644
index ec548dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0004-perf-tools-Fix-perf-stack-to-non-executable-on-x86_6.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From f510b59b5a609d4b0512806b6d87c40db7917378 Mon Sep 17 00:00:00 2001
-From: Jiri Olsa <jolsa at redhat.com>
-Date: Mon, 6 Feb 2012 18:54:06 -0200
-Subject: [PATCH 04/30] perf tools: Fix perf stack to non executable on x86_64
-
-commit 7a0153ee15575a4d07b5da8c96b79e0b0fd41a12 upstream.
-
-By adding following objects:
-  bench/mem-memcpy-x86-64-asm.o
-the x86_64 perf binary ended up with executable stack.
-
-The reason was that above object are assembler sourced and is missing the
-GNU-stack note section. In such case the linker assumes that the final binary
-should not be restricted at all and mark the stack as RWX.
-
-Adding section ".note.GNU-stack" definition to mentioned object, with all
-flags disabled, thus omiting this object from linker stack flags decision.
-
-Problem introduced in:
-
-  $ git describe ea7872b
-  v2.6.37-rc2-19-gea7872b
-
-Reported-at: https://bugzilla.redhat.com/show_bug.cgi?id=783570
-Reported-by: Clark Williams <williams at redhat.com>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: Corey Ashford <cjashfor at linux.vnet.ibm.com>
-Cc: Ingo Molnar <mingo at elte.hu>
-Cc: Paul Mackerras <paulus at samba.org>
-Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Link: http://lkml.kernel.org/r/1328100848-5630-1-git-send-email-jolsa@redhat.com
-Signed-off-by: Jiri Olsa <jolsa at redhat.com>
-[ committer note: Backported fix to perf/urgent (3.3-rc2+) ]
-Signed-off-by: Arnaldo Carvalho de Melo <acme at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- tools/perf/bench/mem-memcpy-x86-64-asm.S |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/tools/perf/bench/mem-memcpy-x86-64-asm.S b/tools/perf/bench/mem-memcpy-x86-64-asm.S
-index a57b66e..185a96d 100644
---- a/tools/perf/bench/mem-memcpy-x86-64-asm.S
-+++ b/tools/perf/bench/mem-memcpy-x86-64-asm.S
-@@ -1,2 +1,8 @@
- 
- #include "../../../arch/x86/lib/memcpy_64.S"
-+/*
-+ * We need to provide note.GNU-stack section, saying that we want
-+ * NOT executable stack. Otherwise the final linking will assume that
-+ * the ELF stack should not be restricted at all and set it RWX.
-+ */
-+.section .note.GNU-stack,"", at progbits
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0005-drm-i915-Force-explicit-bpp-selection-for-intel_dp_l.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0005-drm-i915-Force-explicit-bpp-selection-for-intel_dp_l.patch
deleted file mode 100644
index 8be2b73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0005-drm-i915-Force-explicit-bpp-selection-for-intel_dp_l.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From fba4d4871d18221b452b0fd8a772a8973eb19d40 Mon Sep 17 00:00:00 2001
-From: Keith Packard <keithp at keithp.com>
-Date: Wed, 25 Jan 2012 08:16:25 -0800
-Subject: [PATCH 05/30] drm/i915: Force explicit bpp selection for
- intel_dp_link_required
-
-commit c898261c0dad617f0f1080bedc02d507a2fcfb92 upstream.
-
-It is never correct to use intel_crtc->bpp in intel_dp_link_required,
-so instead pass an explicit bpp in to this function. This patch
-only supports 18bpp and 24bpp modes, which means that 10bpc modes will
-be computed incorrectly. Fixing that will require more extensive
-changes, and so must be addressed separately from this bugfix.
-
-intel_dp_link_required is called from intel_dp_mode_valid and
-intel_dp_mode_fixup.
-
-* intel_dp_mode_valid is called to list supported modes; in this case,
-  the current crtc values cannot be relevant as the modes in question
-  may never be selected. Thus, using intel_crtc->bpp is never right.
-
-* intel_dp_mode_fixup is called during mode setting, but it is run
-  well before ironlake_crtc_mode_set is called to set intel_crtc->bpp,
-  so using intel_crtc-bpp in this path can only ever get a stale
-  value.
-
-Cc: Lubos Kolouch <lubos.kolouch at gmail.com>
-Cc: Adam Jackson <ajax at redhat.com>
-Reviewed-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=42263
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44881
-Tested-by: Dave Airlie <airlied at redhat.com>
-Tested-by: camalot at picnicpark.org (Dell Latitude 6510)
-Tested-by: Roland Dreier <roland at digitalvampire.org>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_dp.c |   20 +++++---------------
- 1 file changed, 5 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/gpu/drm/i915/intel_dp.c b/drivers/gpu/drm/i915/intel_dp.c
-index db3b461..94f860c 100644
---- a/drivers/gpu/drm/i915/intel_dp.c
-+++ b/drivers/gpu/drm/i915/intel_dp.c
-@@ -208,17 +208,8 @@ intel_dp_link_clock(uint8_t link_bw)
-  */
- 
- static int
--intel_dp_link_required(struct intel_dp *intel_dp, int pixel_clock, int check_bpp)
-+intel_dp_link_required(int pixel_clock, int bpp)
- {
--	struct drm_crtc *crtc = intel_dp->base.base.crtc;
--	struct intel_crtc *intel_crtc = to_intel_crtc(crtc);
--	int bpp = 24;
--
--	if (check_bpp)
--		bpp = check_bpp;
--	else if (intel_crtc)
--		bpp = intel_crtc->bpp;
--
- 	return (pixel_clock * bpp + 9) / 10;
- }
- 
-@@ -245,12 +236,11 @@ intel_dp_mode_valid(struct drm_connector *connector,
- 			return MODE_PANEL;
- 	}
- 
--	mode_rate = intel_dp_link_required(intel_dp, mode->clock, 0);
-+	mode_rate = intel_dp_link_required(mode->clock, 24);
- 	max_rate = intel_dp_max_data_rate(max_link_clock, max_lanes);
- 
- 	if (mode_rate > max_rate) {
--			mode_rate = intel_dp_link_required(intel_dp,
--							   mode->clock, 18);
-+			mode_rate = intel_dp_link_required(mode->clock, 18);
- 			if (mode_rate > max_rate)
- 				return MODE_CLOCK_HIGH;
- 			else
-@@ -683,7 +673,7 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
- 	int lane_count, clock;
- 	int max_lane_count = intel_dp_max_lane_count(intel_dp);
- 	int max_clock = intel_dp_max_link_bw(intel_dp) == DP_LINK_BW_2_7 ? 1 : 0;
--	int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 0;
-+	int bpp = mode->private_flags & INTEL_MODE_DP_FORCE_6BPC ? 18 : 24;
- 	static int bws[2] = { DP_LINK_BW_1_62, DP_LINK_BW_2_7 };
- 
- 	if (is_edp(intel_dp) && intel_dp->panel_fixed_mode) {
-@@ -701,7 +691,7 @@ intel_dp_mode_fixup(struct drm_encoder *encoder, struct drm_display_mode *mode,
- 		for (clock = 0; clock <= max_clock; clock++) {
- 			int link_avail = intel_dp_max_data_rate(intel_dp_link_clock(bws[clock]), lane_count);
- 
--			if (intel_dp_link_required(intel_dp, mode->clock, bpp)
-+			if (intel_dp_link_required(mode->clock, bpp)
- 					<= link_avail) {
- 				intel_dp->link_bw = bws[clock];
- 				intel_dp->lane_count = lane_count;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0006-drm-i915-no-lvds-quirk-for-AOpen-MP45.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0006-drm-i915-no-lvds-quirk-for-AOpen-MP45.patch
deleted file mode 100644
index 92753fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0006-drm-i915-no-lvds-quirk-for-AOpen-MP45.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 9cacfb00d741b68404612ba454125c99e1c28382 Mon Sep 17 00:00:00 2001
-From: Daniel Vetter <daniel.vetter at ffwll.ch>
-Date: Wed, 8 Feb 2012 16:42:52 +0100
-Subject: [PATCH 06/30] drm/i915: no lvds quirk for AOpen MP45
-
-commit e57b6886f555ab57f40a01713304e2053efe51ec upstream.
-
-According to a bug report, it doesn't have one.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=44263
-Acked-by: Chris Wilson <chris at chris-wilson.co.uk>
-Signed-Off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
-Signed-off-by: Keith Packard <keithp at keithp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/i915/intel_lvds.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/gpu/drm/i915/intel_lvds.c b/drivers/gpu/drm/i915/intel_lvds.c
-index e441911..b83f745 100644
---- a/drivers/gpu/drm/i915/intel_lvds.c
-+++ b/drivers/gpu/drm/i915/intel_lvds.c
-@@ -694,6 +694,14 @@ static const struct dmi_system_id intel_no_lvds[] = {
- 	},
- 	{
- 		.callback = intel_no_lvds_dmi_callback,
-+                .ident = "AOpen i45GMx-I",
-+                .matches = {
-+                        DMI_MATCH(DMI_BOARD_VENDOR, "AOpen"),
-+                        DMI_MATCH(DMI_BOARD_NAME, "i45GMx-I"),
-+                },
-+        },
-+	{
-+		.callback = intel_no_lvds_dmi_callback,
- 		.ident = "Aopen i945GTt-VFA",
- 		.matches = {
- 			DMI_MATCH(DMI_PRODUCT_VERSION, "AO00001JW"),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0007-ath9k-Fix-kernel-panic-during-driver-initilization.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0007-ath9k-Fix-kernel-panic-during-driver-initilization.patch
deleted file mode 100644
index 6b70b6b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0007-ath9k-Fix-kernel-panic-during-driver-initilization.patch
+++ /dev/null
@@ -1,96 +0,0 @@
-From e7ddf4ecf94f15e2788808f1b2530c0bff6312bb Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Thu, 2 Feb 2012 16:29:05 +0530
-Subject: [PATCH 07/30] ath9k: Fix kernel panic during driver initilization
-
-commit 07445f688218a48bde72316aed9de4fdcc173131 upstream.
-
-all works need to be initialized before ieee80211_register_hw
-to prevent mac80211 call backs such as drv_start, drv_config
-getting started. otherwise we would queue/cancel works before
-initializing them and it leads to kernel panic.
-this issue can be recreated with the following script
-in Chrome laptops with AR928X cards, with background scan
-running (or) Network manager is running
-
-while true
-do
-sudo modprobe -v ath9k
-sleep 3
-sudo modprobe -r ath9k
-sleep 3
-done
-
-	 EIP: [<81040a47>] __cancel_work_timer+0xb8/0xe1 SS:ESP 0068:f6be9d70
-	 ---[ end trace 4f86d6139a9900ef ]---
-	 Registered led device: ath9k-phy0
-	 ieee80211 phy0: Atheros AR9280 Rev:2 mem=0xf88a0000,
-	 irq=16
-	 Kernel panic - not syncing: Fatal exception
-	 Pid: 456, comm: wpa_supplicant Tainted: G      D
-	 3.0.13 #1
-	Call Trace:
-	 [<81379e21>] panic+0x53/0x14a
-	 [<81004a30>] oops_end+0x73/0x81
-	 [<81004b53>] die+0x4c/0x55
-	 [<81002710>] do_trap+0x7c/0x83
-	 [<81002855>] ? do_bounds+0x58/0x58
-	 [<810028cc>] do_invalid_op+0x77/0x81
-	 [<81040a47>] ? __cancel_work_timer+0xb8/0xe1
-	 [<810489ec>] ? sched_clock_cpu+0x81/0x11f
-	 [<8103f809>] ? wait_on_work+0xe2/0xf7
-	 [<8137f807>] error_code+0x67/0x6c
-	 [<810300d8>] ? wait_consider_task+0x4ba/0x84c
-	 [<81040a47>] ? __cancel_work_timer+0xb8/0xe1
-	 [<810380c9>] ? try_to_del_timer_sync+0x5f/0x67
-	 [<81040a91>] cancel_work_sync+0xf/0x11
-	 [<f88d7b7c>] ath_set_channel+0x62/0x25c [ath9k]
-	 [<f88d67d1>] ? ath9k_tx_last_beacon+0x26a/0x85c [ath9k]
-	 [<f88d8899>] ath_radio_disable+0x3f1/0x68e [ath9k]
-	 [<f90d0edb>] ieee80211_hw_config+0x111/0x116 [mac80211]
-	 [<f90dd95c>] __ieee80211_recalc_idle+0x919/0xa37 [mac80211]
-	 [<f90dda76>] __ieee80211_recalc_idle+0xa33/0xa37 [mac80211]
-	 [<812dbed8>] __dev_open+0x82/0xab
-
-Cc: Gary Morain <gmorain at google.com>
-Cc: Paul Stewart <pstew at google.com>
-Cc: Vasanthakumar Thiagarajan <vthiagar at qca.qualcomm.com>
-Tested-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/ath9k/init.c |    9 +++++----
- 1 file changed, 5 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/init.c b/drivers/net/wireless/ath/ath9k/init.c
-index d4c909f..57622e0 100644
---- a/drivers/net/wireless/ath/ath9k/init.c
-+++ b/drivers/net/wireless/ath/ath9k/init.c
-@@ -775,6 +775,11 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc,
- 		ARRAY_SIZE(ath9k_tpt_blink));
- #endif
- 
-+	INIT_WORK(&sc->hw_reset_work, ath_reset_work);
-+	INIT_WORK(&sc->hw_check_work, ath_hw_check);
-+	INIT_WORK(&sc->paprd_work, ath_paprd_calibrate);
-+	INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work);
-+
- 	/* Register with mac80211 */
- 	error = ieee80211_register_hw(hw);
- 	if (error)
-@@ -793,10 +798,6 @@ int ath9k_init_device(u16 devid, struct ath_softc *sc,
- 			goto error_world;
- 	}
- 
--	INIT_WORK(&sc->hw_reset_work, ath_reset_work);
--	INIT_WORK(&sc->hw_check_work, ath_hw_check);
--	INIT_WORK(&sc->paprd_work, ath_paprd_calibrate);
--	INIT_DELAYED_WORK(&sc->hw_pll_work, ath_hw_pll_work);
- 	sc->last_rssi = ATH_RSSI_DUMMY_MARKER;
- 
- 	ath_init_leds(sc);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0008-ath9k-fix-a-WEP-crypto-related-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0008-ath9k-fix-a-WEP-crypto-related-regression.patch
deleted file mode 100644
index 461b9cd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0008-ath9k-fix-a-WEP-crypto-related-regression.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 654335b847a1e00eccc0c9b43bf41151fa868c7d Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Sun, 5 Feb 2012 21:15:17 +0100
-Subject: [PATCH 08/30] ath9k: fix a WEP crypto related regression
-
-commit f88373fa47f3ce6590fdfaa742d0ddacc2ae017f upstream.
-
-commit b4a82a0 "ath9k_hw: fix interpretation of the rx KeyMiss flag"
-fixed the interpretation of the KeyMiss flag for keycache based lookups,
-however WEP encryption uses a static index, so KeyMiss is always asserted
-for it, even though frames are decrypted properly.
-Fix this by clearing the ATH9K_RXERR_KEYMISS flag if no keycache based
-lookup was performed.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Reported-by: Laurent Bonnans <bonnans.l at gmail.com>
-Reported-by: Jurica Vukadin <u.ra604 at googlemail.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/ath9k/recv.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/drivers/net/wireless/ath/ath9k/recv.c b/drivers/net/wireless/ath/ath9k/recv.c
-index 67b862c..2f3aeac 100644
---- a/drivers/net/wireless/ath/ath9k/recv.c
-+++ b/drivers/net/wireless/ath/ath9k/recv.c
-@@ -824,6 +824,14 @@ static bool ath9k_rx_accept(struct ath_common *common,
- 		(ATH9K_RXERR_DECRYPT | ATH9K_RXERR_CRC | ATH9K_RXERR_MIC |
- 		 ATH9K_RXERR_KEYMISS));
- 
-+	/*
-+	 * Key miss events are only relevant for pairwise keys where the
-+	 * descriptor does contain a valid key index. This has been observed
-+	 * mostly with CCMP encryption.
-+	 */
-+	if (rx_stats->rs_keyix == ATH9K_RXKEYIX_INVALID)
-+		rx_stats->rs_status &= ~ATH9K_RXERR_KEYMISS;
-+
- 	if (!rx_stats->rs_datalen)
- 		return false;
-         /*
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0009-ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0009-ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch
deleted file mode 100644
index 0d0a4cb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0009-ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 4b1e1d777781b292e28f272a7ec433f2b8eac1d9 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Sun, 5 Feb 2012 21:15:18 +0100
-Subject: [PATCH 09/30] ath9k_hw: fix a RTS/CTS timeout regression
-
-commit 55a2bb4a6d5e8c7b324d003e130fd9aaf33be4e6 upstream.
-
-commit adb5066 "ath9k_hw: do not apply the 2.4 ghz ack timeout
-workaround to cts" reduced the hardware CTS timeout to the normal
-values specified by the standard, but it turns out while it doesn't
-need the same extra time that it needs for the ACK timeout, it
-does need more than the value specified in the standard, but only
-for 2.4 GHz.
-
-This patch brings the CTS timeout value in sync with the initialization
-values, while still allowing adjustment for bigger distances.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Reported-by: Seth Forshee <seth.forshee at canonical.com>
-Reported-by: Marek Lindner <lindner_marek at yahoo.de>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/ath9k/hw.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/hw.c b/drivers/net/wireless/ath/ath9k/hw.c
-index 8873c6e..8b0c2ca 100644
---- a/drivers/net/wireless/ath/ath9k/hw.c
-+++ b/drivers/net/wireless/ath/ath9k/hw.c
-@@ -1034,13 +1034,16 @@ void ath9k_hw_init_global_settings(struct ath_hw *ah)
- 
- 	/*
- 	 * Workaround for early ACK timeouts, add an offset to match the
--	 * initval's 64us ack timeout value.
-+	 * initval's 64us ack timeout value. Use 48us for the CTS timeout.
- 	 * This was initially only meant to work around an issue with delayed
- 	 * BA frames in some implementations, but it has been found to fix ACK
- 	 * timeout issues in other cases as well.
- 	 */
--	if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ)
-+	if (conf->channel && conf->channel->band == IEEE80211_BAND_2GHZ) {
- 		acktimeout += 64 - sifstime - ah->slottime;
-+		ctstimeout += 48 - sifstime - ah->slottime;
-+	}
-+
- 
- 	ath9k_hw_set_sifs_time(ah, sifstime);
- 	ath9k_hw_setslottime(ah, slottime);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0010-hwmon-f75375s-Fix-bit-shifting-in-f75375_write16.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0010-hwmon-f75375s-Fix-bit-shifting-in-f75375_write16.patch
deleted file mode 100644
index 8bdd5e5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0010-hwmon-f75375s-Fix-bit-shifting-in-f75375_write16.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c121226b76f327e056431476a41d94d6e19d0d6d Mon Sep 17 00:00:00 2001
-From: Nikolaus Schulz <schulz at macnetix.de>
-Date: Wed, 8 Feb 2012 18:56:10 +0100
-Subject: [PATCH 10/30] hwmon: (f75375s) Fix bit shifting in f75375_write16
-
-commit eb2f255b2d360df3f500042a2258dcf2fcbe89a2 upstream.
-
-In order to extract the high byte of the 16-bit word, shift the word to
-the right, not to the left.
-
-Signed-off-by: Nikolaus Schulz <mail at microschulz.de>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/f75375s.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
-index 95cbfb3..dcfd9e1 100644
---- a/drivers/hwmon/f75375s.c
-+++ b/drivers/hwmon/f75375s.c
-@@ -159,7 +159,7 @@ static inline void f75375_write8(struct i2c_client *client, u8 reg,
- static inline void f75375_write16(struct i2c_client *client, u8 reg,
- 		u16 value)
- {
--	int err = i2c_smbus_write_byte_data(client, reg, (value << 8));
-+	int err = i2c_smbus_write_byte_data(client, reg, (value >> 8));
- 	if (err)
- 		return;
- 	i2c_smbus_write_byte_data(client, reg + 1, (value & 0xFF));
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0011-net-enable-TC35815-for-MIPS-again.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0011-net-enable-TC35815-for-MIPS-again.patch
deleted file mode 100644
index b483159..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0011-net-enable-TC35815-for-MIPS-again.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 73e76b36382b211cefbab43e73e53608daf07452 Mon Sep 17 00:00:00 2001
-From: Atsushi Nemoto <anemo at mba.ocn.ne.jp>
-Date: Mon, 6 Feb 2012 14:51:03 +0000
-Subject: [PATCH 11/30] net: enable TC35815 for MIPS again
-
-commit a1728800bed3b93b231d99e97c756f622b9991c2 upstream.
-
-8<----------------------------------------------------------------------
-From: Ralf Roesch <ralf.roesch at rw-gmbh.de>
-Date: Wed, 16 Nov 2011 09:33:50 +0100
-Subject: net: enable TC35815 for MIPS again
-
-TX493[8,9] MIPS SoCs support 2 Ethernet channels of type TC35815
-which are connected to the internal PCI controller.
-And JMR3927 MIPS board has a TC35815 chip on board.
-These dependencies were lost on movement to drivers/net/ethernet/toshiba.
-
-Signed-off-by: Ralf Roesch <ralf.roesch at rw-gmbh.de>
-Signed-off-by: Atsushi Nemoto <anemo at mba.ocn.ne.jp>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/toshiba/Kconfig |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/toshiba/Kconfig b/drivers/net/ethernet/toshiba/Kconfig
-index 0517647..74acb5c 100644
---- a/drivers/net/ethernet/toshiba/Kconfig
-+++ b/drivers/net/ethernet/toshiba/Kconfig
-@@ -5,7 +5,7 @@
- config NET_VENDOR_TOSHIBA
- 	bool "Toshiba devices"
- 	default y
--	depends on PCI && (PPC_IBM_CELL_BLADE || PPC_CELLEB) || PPC_PS3
-+	depends on PCI && (PPC_IBM_CELL_BLADE || PPC_CELLEB || MIPS) || PPC_PS3
- 	---help---
- 	  If you have a network (Ethernet) card belonging to this class, say Y
- 	  and read the Ethernet-HOWTO, available from
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0012-lib-proportion-lower-PROP_MAX_SHIFT-to-32-on-64-bit-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0012-lib-proportion-lower-PROP_MAX_SHIFT-to-32-on-64-bit-.patch
deleted file mode 100644
index eff26a3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0012-lib-proportion-lower-PROP_MAX_SHIFT-to-32-on-64-bit-.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From d5438321087a6e5fb24d0797224ae63411cfe7c5 Mon Sep 17 00:00:00 2001
-From: Wu Fengguang <fengguang.wu at intel.com>
-Date: Mon, 9 Jan 2012 11:53:50 -0600
-Subject: [PATCH 12/30] lib: proportion: lower PROP_MAX_SHIFT to 32 on 64-bit
- kernel
-
-commit 3310225dfc71a35a2cc9340c15c0e08b14b3c754 upstream.
-
-PROP_MAX_SHIFT should be set to <=32 on 64-bit box. This fixes two bugs
-in the below lines of bdi_dirty_limit():
-
-	bdi_dirty *= numerator;
-	do_div(bdi_dirty, denominator);
-
-1) divide error: do_div() only uses the lower 32 bit of the denominator,
-   which may trimmed to be 0 when PROP_MAX_SHIFT > 32.
-
-2) overflow: (bdi_dirty * numerator) could easily overflow if numerator
-   used up to 48 bits, leaving only 16 bits to bdi_dirty
-
-Cc: Peter Zijlstra <a.p.zijlstra at chello.nl>
-Reported-by: Ilya Tumaykin <librarian_rus at yahoo.com>
-Tested-by: Ilya Tumaykin <librarian_rus at yahoo.com>
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/proportions.h |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/include/linux/proportions.h b/include/linux/proportions.h
-index ef35bb7..26a8a4e 100644
---- a/include/linux/proportions.h
-+++ b/include/linux/proportions.h
-@@ -81,7 +81,11 @@ void prop_inc_percpu(struct prop_descriptor *pd, struct prop_local_percpu *pl)
-  * Limit the time part in order to ensure there are some bits left for the
-  * cycle counter and fraction multiply.
-  */
-+#if BITS_PER_LONG == 32
- #define PROP_MAX_SHIFT (3*BITS_PER_LONG/4)
-+#else
-+#define PROP_MAX_SHIFT (BITS_PER_LONG/2)
-+#endif
- 
- #define PROP_FRAC_SHIFT		(BITS_PER_LONG - PROP_MAX_SHIFT - 1)
- #define PROP_FRAC_BASE		(1UL << PROP_FRAC_SHIFT)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0013-relay-prevent-integer-overflow-in-relay_open.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0013-relay-prevent-integer-overflow-in-relay_open.patch
deleted file mode 100644
index f00e7bd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0013-relay-prevent-integer-overflow-in-relay_open.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From 161d5e5d75409a789dce0fce2efde84af0d39a2c Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Fri, 10 Feb 2012 09:03:58 +0100
-Subject: [PATCH 13/30] relay: prevent integer overflow in relay_open()
-
-commit f6302f1bcd75a042df69866d98b8d775a668f8f1 upstream.
-
-"subbuf_size" and "n_subbufs" come from the user and they need to be
-capped to prevent an integer overflow.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/relay.c |   10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/relay.c b/kernel/relay.c
-index 226fade..b6f803a 100644
---- a/kernel/relay.c
-+++ b/kernel/relay.c
-@@ -164,10 +164,14 @@ depopulate:
-  */
- static struct rchan_buf *relay_create_buf(struct rchan *chan)
- {
--	struct rchan_buf *buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL);
--	if (!buf)
-+	struct rchan_buf *buf;
-+
-+	if (chan->n_subbufs > UINT_MAX / sizeof(size_t *))
- 		return NULL;
- 
-+	buf = kzalloc(sizeof(struct rchan_buf), GFP_KERNEL);
-+	if (!buf)
-+		return NULL;
- 	buf->padding = kmalloc(chan->n_subbufs * sizeof(size_t *), GFP_KERNEL);
- 	if (!buf->padding)
- 		goto free_buf;
-@@ -574,6 +578,8 @@ struct rchan *relay_open(const char *base_filename,
- 
- 	if (!(subbuf_size && n_subbufs))
- 		return NULL;
-+	if (subbuf_size > UINT_MAX / n_subbufs)
-+		return NULL;
- 
- 	chan = kzalloc(sizeof(struct rchan), GFP_KERNEL);
- 	if (!chan)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0014-mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0014-mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch
deleted file mode 100644
index 45e100a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0014-mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 218b7080585d83e1fae540929d6da410396ba0d7 Mon Sep 17 00:00:00 2001
-From: Eliad Peller <eliad at wizery.com>
-Date: Wed, 1 Feb 2012 18:48:09 +0200
-Subject: [PATCH 14/30] mac80211: timeout a single frame in the rx reorder
- buffer
-
-commit 07ae2dfcf4f7143ce191c6436da1c33f179af0d6 upstream.
-
-The current code checks for stored_mpdu_num > 1, causing
-the reorder_timer to be triggered indefinitely, but the
-frame is never timed-out (until the next packet is received)
-
-Signed-off-by: Eliad Peller <eliad at wizery.com>
-Acked-by: Johannes Berg <johannes at sipsolutions.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/rx.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
-index 5c51607..064d20f 100644
---- a/net/mac80211/rx.c
-+++ b/net/mac80211/rx.c
-@@ -616,7 +616,7 @@ static void ieee80211_sta_reorder_release(struct ieee80211_hw *hw,
- 	index = seq_sub(tid_agg_rx->head_seq_num, tid_agg_rx->ssn) %
- 						tid_agg_rx->buf_size;
- 	if (!tid_agg_rx->reorder_buf[index] &&
--	    tid_agg_rx->stored_mpdu_num > 1) {
-+	    tid_agg_rx->stored_mpdu_num) {
- 		/*
- 		 * No buffers ready to be released, but check whether any
- 		 * frames in the reorder buffer have timed out.
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0015-writeback-fix-NULL-bdi-dev-in-trace-writeback_single.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0015-writeback-fix-NULL-bdi-dev-in-trace-writeback_single.patch
deleted file mode 100644
index a48ee34..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0015-writeback-fix-NULL-bdi-dev-in-trace-writeback_single.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From e127104e313afb198838b239fff3289408711db5 Mon Sep 17 00:00:00 2001
-From: Wu Fengguang <fengguang.wu at intel.com>
-Date: Tue, 17 Jan 2012 11:18:56 -0600
-Subject: [PATCH 15/30] writeback: fix NULL bdi->dev in trace
- writeback_single_inode
-
-commit 15eb77a07c714ac80201abd0a9568888bcee6276 upstream.
-
-bdi_prune_sb() resets sb->s_bdi to default_backing_dev_info when the
-tearing down the original bdi. Fix trace_writeback_single_inode to
-use sb->s_bdi=default_backing_dev_info rather than bdi->dev=NULL for a
-teared down bdi.
-
-Reported-by: Rabin Vincent <rabin at rab.in>
-Tested-by: Rabin Vincent <rabin at rab.in>
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/fs-writeback.c                |   16 ++++++++--------
- include/trace/events/writeback.h |    2 +-
- 2 files changed, 9 insertions(+), 9 deletions(-)
-
-diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
-index 517f211..54f5786 100644
---- a/fs/fs-writeback.c
-+++ b/fs/fs-writeback.c
-@@ -48,14 +48,6 @@ struct wb_writeback_work {
- };
- 
- /*
-- * Include the creation of the trace points after defining the
-- * wb_writeback_work structure so that the definition remains local to this
-- * file.
-- */
--#define CREATE_TRACE_POINTS
--#include <trace/events/writeback.h>
--
--/*
-  * We don't actually have pdflush, but this one is exported though /proc...
-  */
- int nr_pdflush_threads;
-@@ -87,6 +79,14 @@ static inline struct inode *wb_inode(struct list_head *head)
- 	return list_entry(head, struct inode, i_wb_list);
- }
- 
-+/*
-+ * Include the creation of the trace points after defining the
-+ * wb_writeback_work structure and inline functions so that the definition
-+ * remains local to this file.
-+ */
-+#define CREATE_TRACE_POINTS
-+#include <trace/events/writeback.h>
-+
- /* Wakeup flusher thread or forker thread to fork it. Requires bdi->wb_lock. */
- static void bdi_wakeup_flusher(struct backing_dev_info *bdi)
- {
-diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
-index 99d1d0d..46e389c 100644
---- a/include/trace/events/writeback.h
-+++ b/include/trace/events/writeback.h
-@@ -418,7 +418,7 @@ DECLARE_EVENT_CLASS(writeback_single_inode_template,
- 
- 	TP_fast_assign(
- 		strncpy(__entry->name,
--			dev_name(inode->i_mapping->backing_dev_info->dev), 32);
-+			dev_name(inode_to_bdi(inode)->dev), 32);
- 		__entry->ino		= inode->i_ino;
- 		__entry->state		= inode->i_state;
- 		__entry->dirtied_when	= inode->dirtied_when;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0016-writeback-fix-dereferencing-NULL-bdi-dev-on-trace_wr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0016-writeback-fix-dereferencing-NULL-bdi-dev-on-trace_wr.patch
deleted file mode 100644
index 8cfe0b0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0016-writeback-fix-dereferencing-NULL-bdi-dev-on-trace_wr.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From a8007086ee166819c511c09b122c46c807377fe1 Mon Sep 17 00:00:00 2001
-From: Wu Fengguang <fengguang.wu at intel.com>
-Date: Sat, 4 Feb 2012 20:54:03 -0600
-Subject: [PATCH 16/30] writeback: fix dereferencing NULL bdi->dev on
- trace_writeback_queue
-
-commit 977b7e3a52a7421ad33a393a38ece59f3d41c2fa upstream.
-
-When a SD card is hot removed without umount, del_gendisk() will call
-bdi_unregister() without destroying/freeing it. This leaves the bdi in
-the bdi->dev = NULL, bdi->wb.task = NULL, bdi->bdi_list removed state.
-
-When sync(2) gets the bdi before bdi_unregister() and calls
-bdi_queue_work() after the unregister, trace_writeback_queue will be
-dereferencing the NULL bdi->dev. Fix it with a simple test for NULL.
-
-LKML-reference: http://lkml.org/lkml/2012/1/18/346
-Reported-by: Rabin Vincent <rabin at rab.in>
-Tested-by: Namjae Jeon <linkinjeon at gmail.com>
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/trace/events/writeback.h |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
-index 46e389c..1f48f14 100644
---- a/include/trace/events/writeback.h
-+++ b/include/trace/events/writeback.h
-@@ -47,7 +47,10 @@ DECLARE_EVENT_CLASS(writeback_work_class,
- 		__field(int, reason)
- 	),
- 	TP_fast_assign(
--		strncpy(__entry->name, dev_name(bdi->dev), 32);
-+		struct device *dev = bdi->dev;
-+		if (!dev)
-+			dev = default_backing_dev_info.dev;
-+		strncpy(__entry->name, dev_name(dev), 32);
- 		__entry->nr_pages = work->nr_pages;
- 		__entry->sb_dev = work->sb ? work->sb->s_dev : 0;
- 		__entry->sync_mode = work->sync_mode;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0017-hwmon-f75375s-Fix-automatic-pwm-mode-setting-for-F75.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0017-hwmon-f75375s-Fix-automatic-pwm-mode-setting-for-F75.patch
deleted file mode 100644
index f2f7a9a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0017-hwmon-f75375s-Fix-automatic-pwm-mode-setting-for-F75.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 350b194286649caa5d4581abe53cf0467aabbbd7 Mon Sep 17 00:00:00 2001
-From: Nikolaus Schulz <schulz at macnetix.de>
-Date: Wed, 8 Feb 2012 18:56:08 +0100
-Subject: [PATCH 17/30] hwmon: (f75375s) Fix automatic pwm mode setting for
- F75373 & F75375
-
-commit 09e87e5c4f9af656af2a8a3afc03487c5d9287c3 upstream.
-
-In order to enable temperature mode aka automatic mode for the F75373 and
-F75375 chips, the two FANx_MODE bits in the fan configuration register
-need be set to 01, not 10.
-
-Signed-off-by: Nikolaus Schulz <mail at microschulz.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/f75375s.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
-index dcfd9e1..e4ab491 100644
---- a/drivers/hwmon/f75375s.c
-+++ b/drivers/hwmon/f75375s.c
-@@ -311,7 +311,7 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val)
- 		fanmode  |= (3 << FAN_CTRL_MODE(nr));
- 		break;
- 	case 2: /* AUTOMATIC*/
--		fanmode  |= (2 << FAN_CTRL_MODE(nr));
-+		fanmode  |= (1 << FAN_CTRL_MODE(nr));
- 		break;
- 	case 3: /* fan speed */
- 		break;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0018-cifs-request-oplock-when-doing-open-on-lookup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0018-cifs-request-oplock-when-doing-open-on-lookup.patch
deleted file mode 100644
index e44468c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0018-cifs-request-oplock-when-doing-open-on-lookup.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From e25d9a36e8069d9927e1595bf742d7d2d3890933 Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Tue, 7 Feb 2012 06:30:52 -0500
-Subject: [PATCH 18/30] cifs: request oplock when doing open on lookup
-
-commit 8b0192a5f478da1c1ae906bf3ffff53f26204f56 upstream.
-
-Currently, it's always set to 0 (no oplock requested).
-
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/dir.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
-index d7eeb9d..e4c3334 100644
---- a/fs/cifs/dir.c
-+++ b/fs/cifs/dir.c
-@@ -492,7 +492,7 @@ cifs_lookup(struct inode *parent_dir_inode, struct dentry *direntry,
- {
- 	int xid;
- 	int rc = 0; /* to get around spurious gcc warning, set to zero here */
--	__u32 oplock = 0;
-+	__u32 oplock = enable_oplocks ? REQ_OPLOCK : 0;
- 	__u16 fileHandle = 0;
- 	bool posix_open = false;
- 	struct cifs_sb_info *cifs_sb;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0019-cifs-don-t-return-error-from-standard_receive3-after.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0019-cifs-don-t-return-error-from-standard_receive3-after.patch
deleted file mode 100644
index d602004..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0019-cifs-don-t-return-error-from-standard_receive3-after.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From f7977a33691742dcb281241b9b4b9a43b309453d Mon Sep 17 00:00:00 2001
-From: Jeff Layton <jlayton at redhat.com>
-Date: Tue, 7 Feb 2012 06:31:05 -0500
-Subject: [PATCH 19/30] cifs: don't return error from standard_receive3 after
- marking response malformed
-
-commit ff4fa4a25a33f92b5653bb43add0c63bea98d464 upstream.
-
-standard_receive3 will check the validity of the response from the
-server (via checkSMB). It'll pass the result of that check to handle_mid
-which will dequeue it and mark it with a status of
-MID_RESPONSE_MALFORMED if checkSMB returned an error. At that point,
-standard_receive3 will also return an error, which will make the
-demultiplex thread skip doing the callback for the mid.
-
-This is wrong -- if we were able to identify the request and the
-response is marked malformed, then we want the demultiplex thread to do
-the callback. Fix this by making standard_receive3 return 0 in this
-situation.
-
-Reported-and-Tested-by: Mark Moseley <moseleymark at gmail.com>
-Signed-off-by: Jeff Layton <jlayton at redhat.com>
-Signed-off-by: Steve French <smfrench at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/cifs/connect.c |    7 ++++---
- 1 file changed, 4 insertions(+), 3 deletions(-)
-
-diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c
-index 63e4be4..720edf5 100644
---- a/fs/cifs/connect.c
-+++ b/fs/cifs/connect.c
-@@ -756,10 +756,11 @@ standard_receive3(struct TCP_Server_Info *server, struct mid_q_entry *mid)
- 		cifs_dump_mem("Bad SMB: ", buf,
- 			min_t(unsigned int, server->total_read, 48));
- 
--	if (mid)
--		handle_mid(mid, server, smb_buffer, length);
-+	if (!mid)
-+		return length;
- 
--	return length;
-+	handle_mid(mid, server, smb_buffer, length);
-+	return 0;
- }
- 
- static int
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0020-crypto-sha512-Use-binary-and-instead-of-modulus.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0020-crypto-sha512-Use-binary-and-instead-of-modulus.patch
deleted file mode 100644
index 3453e9f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0020-crypto-sha512-Use-binary-and-instead-of-modulus.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 1671634439eee95d8d54c7cd18e6ff1db20fc87c Mon Sep 17 00:00:00 2001
-From: Herbert Xu <herbert at gondor.apana.org.au>
-Date: Thu, 26 Jan 2012 15:03:16 +1100
-Subject: [PATCH 20/30] crypto: sha512 - Use binary and instead of modulus
-
-commit 58d7d18b5268febb8b1391c6dffc8e2aaa751fcd upstream.
-
-The previous patch used the modulus operator over a power of 2
-unnecessarily which may produce suboptimal binary code.  This
-patch changes changes them to binary ands instead.
-
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- crypto/sha512_generic.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
-index 88f160b..3edebfd 100644
---- a/crypto/sha512_generic.c
-+++ b/crypto/sha512_generic.c
-@@ -78,7 +78,7 @@ static inline void LOAD_OP(int I, u64 *W, const u8 *input)
- 
- static inline void BLEND_OP(int I, u64 *W)
- {
--	W[I % 16] += s1(W[(I-2) % 16]) + W[(I-7) % 16] + s0(W[(I-15) % 16]);
-+	W[I & 15] += s1(W[(I-2) & 15]) + W[(I-7) & 15] + s0(W[(I-15) & 15]);
- }
- 
- static void
-@@ -105,7 +105,7 @@ sha512_transform(u64 *state, const u8 *input)
- 
- #define SHA512_16_79(i, a, b, c, d, e, f, g, h)			\
- 	BLEND_OP(i, W);						\
--	t1 = h + e1(e) + Ch(e, f, g) + sha512_K[i] + W[(i)%16];	\
-+	t1 = h + e1(e) + Ch(e, f, g) + sha512_K[i] + W[(i)&15];	\
- 	t2 = e0(a) + Maj(a, b, c);				\
- 	d += t1;						\
- 	h = t1 + t2
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0021-crypto-sha512-Avoid-stack-bloat-on-i386.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0021-crypto-sha512-Avoid-stack-bloat-on-i386.patch
deleted file mode 100644
index 2dcc063..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0021-crypto-sha512-Avoid-stack-bloat-on-i386.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 16d9af6f04790a3847ebaa777cb1efa116a93b6e Mon Sep 17 00:00:00 2001
-From: Herbert Xu <herbert at gondor.apana.org.au>
-Date: Sun, 5 Feb 2012 15:09:28 +1100
-Subject: [PATCH 21/30] crypto: sha512 - Avoid stack bloat on i386
-
-commit 3a92d687c8015860a19213e3c102cad6b722f83c upstream.
-
-Unfortunately in reducing W from 80 to 16 we ended up unrolling
-the loop twice.  As gcc has issues dealing with 64-bit ops on
-i386 this means that we end up using even more stack space (>1K).
-
-This patch solves the W reduction by moving LOAD_OP/BLEND_OP
-into the loop itself, thus avoiding the need to duplicate it.
-
-While the stack space still isn't great (>0.5K) it is at least
-in the same ball park as the amount of stack used for our C sha1
-implementation.
-
-Note that this patch basically reverts to the original code so
-the diff looks bigger than it really is.
-
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- crypto/sha512_generic.c |   68 ++++++++++++++++++++++-------------------------
- 1 file changed, 32 insertions(+), 36 deletions(-)
-
-diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
-index 3edebfd..f04af93 100644
---- a/crypto/sha512_generic.c
-+++ b/crypto/sha512_generic.c
-@@ -89,46 +89,42 @@ sha512_transform(u64 *state, const u8 *input)
- 	int i;
- 	u64 W[16];
- 
--	/* load the input */
--        for (i = 0; i < 16; i++)
--                LOAD_OP(i, W, input);
--
- 	/* load the state into our registers */
- 	a=state[0];   b=state[1];   c=state[2];   d=state[3];
- 	e=state[4];   f=state[5];   g=state[6];   h=state[7];
- 
--#define SHA512_0_15(i, a, b, c, d, e, f, g, h)			\
--	t1 = h + e1(e) + Ch(e, f, g) + sha512_K[i] + W[i];	\
--	t2 = e0(a) + Maj(a, b, c);				\
--	d += t1;						\
--	h = t1 + t2
--
--#define SHA512_16_79(i, a, b, c, d, e, f, g, h)			\
--	BLEND_OP(i, W);						\
--	t1 = h + e1(e) + Ch(e, f, g) + sha512_K[i] + W[(i)&15];	\
--	t2 = e0(a) + Maj(a, b, c);				\
--	d += t1;						\
--	h = t1 + t2
--
--	for (i = 0; i < 16; i += 8) {
--		SHA512_0_15(i, a, b, c, d, e, f, g, h);
--		SHA512_0_15(i + 1, h, a, b, c, d, e, f, g);
--		SHA512_0_15(i + 2, g, h, a, b, c, d, e, f);
--		SHA512_0_15(i + 3, f, g, h, a, b, c, d, e);
--		SHA512_0_15(i + 4, e, f, g, h, a, b, c, d);
--		SHA512_0_15(i + 5, d, e, f, g, h, a, b, c);
--		SHA512_0_15(i + 6, c, d, e, f, g, h, a, b);
--		SHA512_0_15(i + 7, b, c, d, e, f, g, h, a);
--	}
--	for (i = 16; i < 80; i += 8) {
--		SHA512_16_79(i, a, b, c, d, e, f, g, h);
--		SHA512_16_79(i + 1, h, a, b, c, d, e, f, g);
--		SHA512_16_79(i + 2, g, h, a, b, c, d, e, f);
--		SHA512_16_79(i + 3, f, g, h, a, b, c, d, e);
--		SHA512_16_79(i + 4, e, f, g, h, a, b, c, d);
--		SHA512_16_79(i + 5, d, e, f, g, h, a, b, c);
--		SHA512_16_79(i + 6, c, d, e, f, g, h, a, b);
--		SHA512_16_79(i + 7, b, c, d, e, f, g, h, a);
-+	/* now iterate */
-+	for (i=0; i<80; i+=8) {
-+		if (!(i & 8)) {
-+			int j;
-+
-+			if (i < 16) {
-+				/* load the input */
-+				for (j = 0; j < 16; j++)
-+					LOAD_OP(i + j, W, input);
-+			} else {
-+				for (j = 0; j < 16; j++) {
-+					BLEND_OP(i + j, W);
-+				}
-+			}
-+		}
-+
-+		t1 = h + e1(e) + Ch(e,f,g) + sha512_K[i  ] + W[(i & 15)];
-+		t2 = e0(a) + Maj(a,b,c);    d+=t1;    h=t1+t2;
-+		t1 = g + e1(d) + Ch(d,e,f) + sha512_K[i+1] + W[(i & 15) + 1];
-+		t2 = e0(h) + Maj(h,a,b);    c+=t1;    g=t1+t2;
-+		t1 = f + e1(c) + Ch(c,d,e) + sha512_K[i+2] + W[(i & 15) + 2];
-+		t2 = e0(g) + Maj(g,h,a);    b+=t1;    f=t1+t2;
-+		t1 = e + e1(b) + Ch(b,c,d) + sha512_K[i+3] + W[(i & 15) + 3];
-+		t2 = e0(f) + Maj(f,g,h);    a+=t1;    e=t1+t2;
-+		t1 = d + e1(a) + Ch(a,b,c) + sha512_K[i+4] + W[(i & 15) + 4];
-+		t2 = e0(e) + Maj(e,f,g);    h+=t1;    d=t1+t2;
-+		t1 = c + e1(h) + Ch(h,a,b) + sha512_K[i+5] + W[(i & 15) + 5];
-+		t2 = e0(d) + Maj(d,e,f);    g+=t1;    c=t1+t2;
-+		t1 = b + e1(g) + Ch(g,h,a) + sha512_K[i+6] + W[(i & 15) + 6];
-+		t2 = e0(c) + Maj(c,d,e);    f+=t1;    b=t1+t2;
-+		t1 = a + e1(f) + Ch(f,g,h) + sha512_K[i+7] + W[(i & 15) + 7];
-+		t2 = e0(b) + Maj(b,c,d);    e+=t1;    a=t1+t2;
- 	}
- 
- 	state[0] += a; state[1] += b; state[2] += c; state[3] += d;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0022-backing-dev-fix-wakeup-timer-races-with-bdi_unregist.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0022-backing-dev-fix-wakeup-timer-races-with-bdi_unregist.patch
deleted file mode 100644
index c8cab32..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0022-backing-dev-fix-wakeup-timer-races-with-bdi_unregist.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From 9384e0438d5b84afda5d6478bc509681e1ea3777 Mon Sep 17 00:00:00 2001
-From: Rabin Vincent <rabin at rab.in>
-Date: Sun, 29 Jan 2012 12:17:33 -0600
-Subject: [PATCH 22/30] backing-dev: fix wakeup timer races with
- bdi_unregister()
-
-commit 2673b4cf5d59c3ee5e0c12f6d734d38770324dc4 upstream.
-
-While 7a401a972df8e18 ("backing-dev: ensure wakeup_timer is deleted")
-addressed the problem of the bdi being freed with a queued wakeup
-timer, there are other races that could happen if the wakeup timer
-expires after/during bdi_unregister(), before bdi_destroy() is called.
-
-wakeup_timer_fn() could attempt to wakeup a task which has already has
-been freed, or could access a NULL bdi->dev via the wake_forker_thread
-tracepoint.
-
-Cc: Jens Axboe <axboe at kernel.dk>
-Reported-by: Chanho Min <chanho.min at lge.com>
-Reviewed-by: Namjae Jeon <linkinjeon at gmail.com>
-Signed-off-by: Rabin Vincent <rabin at rab.in>
-Signed-off-by: Wu Fengguang <fengguang.wu at intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/backing-dev.c |   25 +++++++++++++++++++------
- 1 file changed, 19 insertions(+), 6 deletions(-)
-
-diff --git a/mm/backing-dev.c b/mm/backing-dev.c
-index 71034f4..2b49dd2 100644
---- a/mm/backing-dev.c
-+++ b/mm/backing-dev.c
-@@ -318,7 +318,7 @@ static void wakeup_timer_fn(unsigned long data)
- 	if (bdi->wb.task) {
- 		trace_writeback_wake_thread(bdi);
- 		wake_up_process(bdi->wb.task);
--	} else {
-+	} else if (bdi->dev) {
- 		/*
- 		 * When bdi tasks are inactive for long time, they are killed.
- 		 * In this case we have to wake-up the forker thread which
-@@ -584,6 +584,8 @@ EXPORT_SYMBOL(bdi_register_dev);
-  */
- static void bdi_wb_shutdown(struct backing_dev_info *bdi)
- {
-+	struct task_struct *task;
-+
- 	if (!bdi_cap_writeback_dirty(bdi))
- 		return;
- 
-@@ -604,9 +606,14 @@ static void bdi_wb_shutdown(struct backing_dev_info *bdi)
- 	 * unfreeze of the thread before calling kthread_stop(), otherwise
- 	 * it would never exet if it is currently stuck in the refrigerator.
- 	 */
--	if (bdi->wb.task) {
--		thaw_process(bdi->wb.task);
--		kthread_stop(bdi->wb.task);
-+	spin_lock_bh(&bdi->wb_lock);
-+	task = bdi->wb.task;
-+	bdi->wb.task = NULL;
-+	spin_unlock_bh(&bdi->wb_lock);
-+
-+	if (task) {
-+		thaw_process(task);
-+		kthread_stop(task);
- 	}
- }
- 
-@@ -627,7 +634,9 @@ static void bdi_prune_sb(struct backing_dev_info *bdi)
- 
- void bdi_unregister(struct backing_dev_info *bdi)
- {
--	if (bdi->dev) {
-+	struct device *dev = bdi->dev;
-+
-+	if (dev) {
- 		bdi_set_min_ratio(bdi, 0);
- 		trace_writeback_bdi_unregister(bdi);
- 		bdi_prune_sb(bdi);
-@@ -636,8 +645,12 @@ void bdi_unregister(struct backing_dev_info *bdi)
- 		if (!bdi_cap_flush_forker(bdi))
- 			bdi_wb_shutdown(bdi);
- 		bdi_debug_unregister(bdi);
--		device_unregister(bdi->dev);
-+
-+		spin_lock_bh(&bdi->wb_lock);
- 		bdi->dev = NULL;
-+		spin_unlock_bh(&bdi->wb_lock);
-+
-+		device_unregister(dev);
- 	}
- }
- EXPORT_SYMBOL(bdi_unregister);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0023-ALSA-intel8x0-Fix-default-inaudible-sound-on-Gateway.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0023-ALSA-intel8x0-Fix-default-inaudible-sound-on-Gateway.patch
deleted file mode 100644
index f13c3d8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0023-ALSA-intel8x0-Fix-default-inaudible-sound-on-Gateway.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 4f8193db51b017330a91a36773a410f6aad015cb Mon Sep 17 00:00:00 2001
-From: Daniel T Chen <crimsun at ubuntu.com>
-Date: Mon, 13 Feb 2012 23:44:22 -0500
-Subject: [PATCH 23/30] ALSA: intel8x0: Fix default inaudible sound on Gateway
- M520
-
-commit 27c3afe6e1cf129faac90405121203962da08ff4 upstream.
-
-BugLink: https://bugs.launchpad.net/bugs/930842
-
-The reporter states that audio is inaudible by default without muting
-'External Amplifier'. Add a quirk to handle his SSID so that changing
-the control is not necessary.
-
-Reported-and-tested-by: Benjamin Carlson <elderbubba0810 at gmail.com>
-Signed-off-by: Daniel T Chen <crimsun at ubuntu.com>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/intel8x0.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/sound/pci/intel8x0.c b/sound/pci/intel8x0.c
-index 11718b49..55f48fb 100644
---- a/sound/pci/intel8x0.c
-+++ b/sound/pci/intel8x0.c
-@@ -2102,6 +2102,12 @@ static struct ac97_quirk ac97_quirks[] __devinitdata = {
- 	},
- 	{
- 		.subvendor = 0x161f,
-+		.subdevice = 0x202f,
-+		.name = "Gateway M520",
-+		.type = AC97_TUNE_INV_EAPD
-+	},
-+	{
-+		.subvendor = 0x161f,
- 		.subdevice = 0x203a,
- 		.name = "Gateway 4525GZ",		/* AD1981B */
- 		.type = AC97_TUNE_INV_EAPD
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0024-ALSA-hda-Fix-initialization-of-secondary-capture-sou.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0024-ALSA-hda-Fix-initialization-of-secondary-capture-sou.patch
deleted file mode 100644
index 13d9692..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0024-ALSA-hda-Fix-initialization-of-secondary-capture-sou.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 9384e994688b811eca5195e5dffd6b0e44dbe113 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 13 Feb 2012 15:04:06 +0100
-Subject: [PATCH 24/30] ALSA: hda - Fix initialization of secondary capture
- source on VT1705
-
-commit fc1156c0b0f7ad45ec03d919866349eeca2bf18c upstream.
-
-VT1705 codec has two ADCs where the secondary ADC has no MUX but only
-a fixed connection to the mic pin.  This confused the driver and it
-tries always overriding the input-source selection by assumption of
-the existing MUX for the secondary ADC, resulted in resetting the
-input-source at each time PM (including power-saving) occurs.
-
-The fix is simply to check the existence of MUX for secondary ADCs in
-the initialization code.
-
-Tested-by: Anisse Astier <anisse at astier.eu>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_via.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sound/pci/hda/patch_via.c b/sound/pci/hda/patch_via.c
-index a0a3f50..1fe1308 100644
---- a/sound/pci/hda/patch_via.c
-+++ b/sound/pci/hda/patch_via.c
-@@ -665,6 +665,9 @@ static void via_auto_init_analog_input(struct hda_codec *codec)
- 	/* init input-src */
- 	for (i = 0; i < spec->num_adc_nids; i++) {
- 		int adc_idx = spec->inputs[spec->cur_mux[i]].adc_idx;
-+		/* secondary ADCs must have the unique MUX */
-+		if (i > 0 && !spec->mux_nids[i])
-+			break;
- 		if (spec->mux_nids[adc_idx]) {
- 			int mux_idx = spec->inputs[spec->cur_mux[i]].mux_idx;
- 			snd_hda_codec_write(codec, spec->mux_nids[adc_idx], 0,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0025-ALSA-hda-Fix-silent-speaker-output-on-Acer-Aspire-69.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0025-ALSA-hda-Fix-silent-speaker-output-on-Acer-Aspire-69.patch
deleted file mode 100644
index 2f354b1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0025-ALSA-hda-Fix-silent-speaker-output-on-Acer-Aspire-69.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From b307b548a38af9067b055ac797271a49b4838700 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Mon, 13 Feb 2012 15:25:07 +0100
-Subject: [PATCH 25/30] ALSA: hda - Fix silent speaker output on Acer Aspire
- 6935
-
-commit 02a237b24d57e2e2d5402c92549e9e792aa24359 upstream.
-
-Since 3.2 kernel, the driver starts trying to assign the multi-io DACs
-before the speaker, thus it assigns DAC2/3 for multi-io and DAC4 for
-the speaker for a standard laptop setup like a HP, a speaker, a mic-in
-and a line-in.  However, on Acer Aspire 6935, it seems that the
-speaker pin 0x14 must be connected with either DAC1 or 2; otherwise it
-results in silence by some reason, although the codec itself allows
-the routing to DAC3/4.
-
-As a workaround, the connection list of each pin is reduced to be
-mapped to either only DAC1/2 or DAC3/4, so that the compatible
-assignment as in kernel 3.1 is achieved.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42740
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |   23 +++++++++++++++++++++++
- 1 file changed, 23 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 34e5fcc..9c197d4 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4213,8 +4213,26 @@ enum {
- 	PINFIX_PB_M5210,
- 	PINFIX_ACER_ASPIRE_7736,
- 	PINFIX_ASUS_W90V,
-+	ALC889_FIXUP_DAC_ROUTE,
- };
- 
-+/* Fix the connection of some pins for ALC889:
-+ * At least, Acer Aspire 5935 shows the connections to DAC3/4 don't
-+ * work correctly (bko#42740)
-+ */
-+static void alc889_fixup_dac_route(struct hda_codec *codec,
-+				   const struct alc_fixup *fix, int action)
-+{
-+	if (action == ALC_FIXUP_ACT_PRE_PROBE) {
-+		hda_nid_t conn1[2] = { 0x0c, 0x0d };
-+		hda_nid_t conn2[2] = { 0x0e, 0x0f };
-+		snd_hda_override_conn_list(codec, 0x14, 2, conn1);
-+		snd_hda_override_conn_list(codec, 0x15, 2, conn1);
-+		snd_hda_override_conn_list(codec, 0x18, 2, conn2);
-+		snd_hda_override_conn_list(codec, 0x1a, 2, conn2);
-+	}
-+}
-+
- static const struct alc_fixup alc882_fixups[] = {
- 	[PINFIX_ABIT_AW9D_MAX] = {
- 		.type = ALC_FIXUP_PINS,
-@@ -4251,10 +4269,15 @@ static const struct alc_fixup alc882_fixups[] = {
- 			{ }
- 		}
- 	},
-+	[ALC889_FIXUP_DAC_ROUTE] = {
-+		.type = ALC_FIXUP_FUNC,
-+		.v.func = alc889_fixup_dac_route,
-+	},
- };
- 
- static const struct snd_pci_quirk alc882_fixup_tbl[] = {
- 	SND_PCI_QUIRK(0x1025, 0x0155, "Packard-Bell M5120", PINFIX_PB_M5210),
-+	SND_PCI_QUIRK(0x1025, 0x0259, "Acer Aspire 5935", ALC889_FIXUP_DAC_ROUTE),
- 	SND_PCI_QUIRK(0x1043, 0x1873, "ASUS W90V", PINFIX_ASUS_W90V),
- 	SND_PCI_QUIRK(0x17aa, 0x3a0d, "Lenovo Y530", PINFIX_LENOVO_Y530),
- 	SND_PCI_QUIRK(0x147b, 0x107a, "Abit AW9D-MAX", PINFIX_ABIT_AW9D_MAX),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0026-mmc-atmel-mci-save-and-restore-sdioirq-when-soft-res.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0026-mmc-atmel-mci-save-and-restore-sdioirq-when-soft-res.patch
deleted file mode 100644
index b4454c6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0026-mmc-atmel-mci-save-and-restore-sdioirq-when-soft-res.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From cd8248c03006fbaf7cc1546d9cabd33799bdd66e Mon Sep 17 00:00:00 2001
-From: Ludovic Desroches <ludovic.desroches at atmel.com>
-Date: Thu, 9 Feb 2012 11:55:29 +0100
-Subject: [PATCH 26/30] mmc: atmel-mci: save and restore sdioirq when soft
- reset is performed
-
-commit 18ee684b8ab666329e0a0a72d8b70f16fb0e2243 upstream.
-
-Sometimes a software reset is needed. Then some registers are saved and
-restored but the interrupt mask register is missing. It causes issues
-with sdio devices whose interrupts are masked after reset.
-
-Signed-off-by: Ludovic Desroches <ludovic.desroches at atmel.com>
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/host/atmel-mci.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/mmc/host/atmel-mci.c b/drivers/mmc/host/atmel-mci.c
-index a7ee502..72bc756 100644
---- a/drivers/mmc/host/atmel-mci.c
-+++ b/drivers/mmc/host/atmel-mci.c
-@@ -965,11 +965,14 @@ static void atmci_start_request(struct atmel_mci *host,
- 	host->data_status = 0;
- 
- 	if (host->need_reset) {
-+		iflags = atmci_readl(host, ATMCI_IMR);
-+		iflags &= (ATMCI_SDIOIRQA | ATMCI_SDIOIRQB);
- 		atmci_writel(host, ATMCI_CR, ATMCI_CR_SWRST);
- 		atmci_writel(host, ATMCI_CR, ATMCI_CR_MCIEN);
- 		atmci_writel(host, ATMCI_MR, host->mode_reg);
- 		if (host->caps.has_cfg_reg)
- 			atmci_writel(host, ATMCI_CFG, host->cfg_reg);
-+		atmci_writel(host, ATMCI_IER, iflags);
- 		host->need_reset = false;
- 	}
- 	atmci_writel(host, ATMCI_SDCR, slot->sdc_reg);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0027-mmc-dw_mmc-Fix-PIO-mode-with-support-of-highmem.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0027-mmc-dw_mmc-Fix-PIO-mode-with-support-of-highmem.patch
deleted file mode 100644
index 5b5ed33..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0027-mmc-dw_mmc-Fix-PIO-mode-with-support-of-highmem.patch
+++ /dev/null
@@ -1,353 +0,0 @@
-From 639e92e01ab0ae188751ea83327e4720d37909c4 Mon Sep 17 00:00:00 2001
-From: Seungwon Jeon <tgih.jun at samsung.com>
-Date: Thu, 9 Feb 2012 14:32:43 +0900
-Subject: [PATCH 27/30] mmc: dw_mmc: Fix PIO mode with support of highmem
-
-commit f9c2a0dc42a6938ff2a80e55ca2bbd1d5581c72e upstream.
-
-Current PIO mode makes a kernel crash with CONFIG_HIGHMEM.
-Highmem pages have a NULL from sg_virt(sg).
-This patch fixes the following problem.
-
-Unable to handle kernel NULL pointer dereference at virtual address 00000000
-pgd = c0004000
-[00000000] *pgd=00000000
-Internal error: Oops: 817 [#1] PREEMPT SMP
-Modules linked in:
-CPU: 0    Not tainted  (3.0.15-01423-gdbf465f #589)
-PC is at dw_mci_pull_data32+0x4c/0x9c
-LR is at dw_mci_read_data_pio+0x54/0x1f0
-pc : [<c0358824>]    lr : [<c035988c>]    psr: 20000193
-sp : c0619d48  ip : c0619d70  fp : c0619d6c
-r10: 00000000  r9 : 00000002  r8 : 00001000
-r7 : 00000200  r6 : 00000000  r5 : e1dd3100  r4 : 00000000
-r3 : 65622023  r2 : 0000007f  r1 : eeb96000  r0 : e1dd3100
-Flags: nzCv  IRQs off  FIQs on  Mode SVC_32  ISA ARM  Segment
-xkernel
-Control: 10c5387d  Table: 61e2004a  DAC: 00000015
-Process swapper (pid: 0, stack limit = 0xc06182f0)
-Stack: (0xc0619d48 to 0xc061a000)
-9d40:                   e1dd3100 e1a4f000 00000000 e1dd3100 e1a4f000 00000200
-9d60: c0619da4 c0619d70 c035988c c03587e4 c0619d9c e18158f4 e1dd3100 e1dd3100
-9d80: 00000020 00000000 00000000 00000020 c06e8a84 00000000 c0619e04 c0619da8
-9da0: c0359b24 c0359844 e18158f4 e1dd3164 e1dd3168 e1dd3150 3d02fc79 e1dd3154
-9dc0: e1dd3178 00000000 00000020 00000000 e1dd3150 00000000 c10dd7e8 e1a84900
-9de0: c061e7cc 00000000 00000000 0000008d c06e8a84 c061e780 c0619e4c c0619e08
-9e00: c00c4738 c0359a34 3d02fc79 00000000 c0619e4c c05a1698 c05a1670 c05a165c
-9e20: c04de8b0 c061e780 c061e7cc e1a84900 ffffed68 0000008d c0618000 00000000
-9e40: c0619e6c c0619e50 c00c48b4 c00c46c8 c061e780 c00423ac c061e7cc ffffed68
-9e60: c0619e8c c0619e70 c00c7358 c00c487c 0000008d ffffee38 c0618000 ffffed68
-9e80: c0619ea4 c0619e90 c00c4258 c00c72b0 c00423ac ffffee38 c0619ecc c0619ea8
-9ea0: c004241c c00c4234 ffffffff f8810000 0000006d 00000002 00000001 7fffffff
-9ec0: c0619f44 c0619ed0 c0048bc0 c00423c4 220ae7a9 00000000 386f0d30 0005d3a4
-9ee0: c00423ac c10dd0b8 c06f2cd8 c0618000 c0594778 c003a674 7fffffff c0619f44
-9f00: 386f0d30 c0619f18 c00a6f94 c005be3c 80000013 ffffffff 386f0d30 0005d3a4
-9f20: 386f0d30 0005d2d1 c10dd0a8 c10dd0b8 c06f2cd8 c0618000 c0619f74 c0619f48
-9f40: c0345858 c005be00 c00a2440 c0618000 c0618000 c00410d8 c06c1944 c00410fc
-9f60: c0594778 c003a674 c0619f9c c0619f78 c004a7e8 c03457b4 c0618000 c06c18f8
-9f80: 00000000 c0039c70 c06c18d4 c003a674 c0619fb4 c0619fa0 c04ceafc c004a714
-9fa0: c06287b4 c06c18f8 c0619ff4 c0619fb8 c0008b68 c04cea68 c0008578 00000000
-9fc0: 00000000 c003a674 00000000 10c5387d c0628658 c003aa78 c062f1c4 4000406a
-9fe0: 413fc090 00000000 00000000 c0619ff8 40008044 c0008858 00000000 00000000
-Backtrace:
-[<c03587d8>] (dw_mci_pull_data32+0x0/0x9c) from [<c035988c>] (dw_mci_read_data_pio+0x54/0x1f0)
- r6:00000200 r5:e1a4f000 r4:e1dd3100
- [<c0359838>] (dw_mci_read_data_pio+0x0/0x1f0) from [<c0359b24>] (dw_mci_interrupt+0xfc/0x4a4)
-[<c0359a28>] (dw_mci_interrupt+0x0/0x4a4) from [<c00c4738>] (handle_irq_event_percpu+0x7c/0x1b4)
-[<c00c46bc>] (handle_irq_event_percpu+0x0/0x1b4) from [<c00c48b4>] (handle_irq_event+0x44/0x64)
-[<c00c4870>] (handle_irq_event+0x0/0x64) from [<c00c7358>] (handle_fasteoi_irq+0xb4/0x124)
- r7:ffffed68 r6:c061e7cc r5:c00423ac r4:c061e780
- [<c00c72a4>] (handle_fasteoi_irq+0x0/0x124) from [<c00c4258>] (generic_handle_irq+0x30/0x38)
- r7:ffffed68 r6:c0618000 r5:ffffee38 r4:0000008d
- [<c00c4228>] (generic_handle_irq+0x0/0x38) from [<c004241c>] (asm_do_IRQ+0x64/0xe0)
- r5:ffffee38 r4:c00423ac
- [<c00423b8>] (asm_do_IRQ+0x0/0xe0) from [<c0048bc0>] (__irq_svc+0x80/0x14c)
-Exception stack(0xc0619ed0 to 0xc0619f18)
-
-Signed-off-by: Seungwon Jeon <tgih.jun at samsung.com>
-Acked-by: Will Newton <will.newton at imgtec.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/host/dw_mmc.c  |  144 +++++++++++++++++++++++---------------------
- include/linux/mmc/dw_mmc.h |    6 +-
- 2 files changed, 79 insertions(+), 71 deletions(-)
-
-diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
-index 3aaeb08..baf3d42 100644
---- a/drivers/mmc/host/dw_mmc.c
-+++ b/drivers/mmc/host/dw_mmc.c
-@@ -22,7 +22,6 @@
- #include <linux/ioport.h>
- #include <linux/module.h>
- #include <linux/platform_device.h>
--#include <linux/scatterlist.h>
- #include <linux/seq_file.h>
- #include <linux/slab.h>
- #include <linux/stat.h>
-@@ -502,8 +501,14 @@ static void dw_mci_submit_data(struct dw_mci *host, struct mmc_data *data)
- 		host->dir_status = DW_MCI_SEND_STATUS;
- 
- 	if (dw_mci_submit_data_dma(host, data)) {
-+		int flags = SG_MITER_ATOMIC;
-+		if (host->data->flags & MMC_DATA_READ)
-+			flags |= SG_MITER_TO_SG;
-+		else
-+			flags |= SG_MITER_FROM_SG;
-+
-+		sg_miter_start(&host->sg_miter, data->sg, data->sg_len, flags);
- 		host->sg = data->sg;
--		host->pio_offset = 0;
- 		host->part_buf_start = 0;
- 		host->part_buf_count = 0;
- 
-@@ -953,6 +958,7 @@ static void dw_mci_tasklet_func(unsigned long priv)
- 				 * generates a block interrupt, hence setting
- 				 * the scatter-gather pointer to NULL.
- 				 */
-+				sg_miter_stop(&host->sg_miter);
- 				host->sg = NULL;
- 				ctrl = mci_readl(host, CTRL);
- 				ctrl |= SDMMC_CTRL_FIFO_RESET;
-@@ -1286,54 +1292,44 @@ static void dw_mci_pull_data(struct dw_mci *host, void *buf, int cnt)
- 
- static void dw_mci_read_data_pio(struct dw_mci *host)
- {
--	struct scatterlist *sg = host->sg;
--	void *buf = sg_virt(sg);
--	unsigned int offset = host->pio_offset;
-+	struct sg_mapping_iter *sg_miter = &host->sg_miter;
-+	void *buf;
-+	unsigned int offset;
- 	struct mmc_data	*data = host->data;
- 	int shift = host->data_shift;
- 	u32 status;
- 	unsigned int nbytes = 0, len;
-+	unsigned int remain, fcnt;
- 
- 	do {
--		len = host->part_buf_count +
--			(SDMMC_GET_FCNT(mci_readl(host, STATUS)) << shift);
--		if (offset + len <= sg->length) {
-+		if (!sg_miter_next(sg_miter))
-+			goto done;
-+
-+		host->sg = sg_miter->__sg;
-+		buf = sg_miter->addr;
-+		remain = sg_miter->length;
-+		offset = 0;
-+
-+		do {
-+			fcnt = (SDMMC_GET_FCNT(mci_readl(host, STATUS))
-+					<< shift) + host->part_buf_count;
-+			len = min(remain, fcnt);
-+			if (!len)
-+				break;
- 			dw_mci_pull_data(host, (void *)(buf + offset), len);
--
- 			offset += len;
- 			nbytes += len;
--
--			if (offset == sg->length) {
--				flush_dcache_page(sg_page(sg));
--				host->sg = sg = sg_next(sg);
--				if (!sg)
--					goto done;
--
--				offset = 0;
--				buf = sg_virt(sg);
--			}
--		} else {
--			unsigned int remaining = sg->length - offset;
--			dw_mci_pull_data(host, (void *)(buf + offset),
--					 remaining);
--			nbytes += remaining;
--
--			flush_dcache_page(sg_page(sg));
--			host->sg = sg = sg_next(sg);
--			if (!sg)
--				goto done;
--
--			offset = len - remaining;
--			buf = sg_virt(sg);
--			dw_mci_pull_data(host, buf, offset);
--			nbytes += offset;
--		}
-+			remain -= len;
-+		} while (remain);
-+		sg_miter->consumed = offset;
- 
- 		status = mci_readl(host, MINTSTS);
- 		mci_writel(host, RINTSTS, SDMMC_INT_RXDR);
- 		if (status & DW_MCI_DATA_ERROR_FLAGS) {
- 			host->data_status = status;
- 			data->bytes_xfered += nbytes;
-+			sg_miter_stop(sg_miter);
-+			host->sg = NULL;
- 			smp_wmb();
- 
- 			set_bit(EVENT_DATA_ERROR, &host->pending_events);
-@@ -1342,65 +1338,66 @@ static void dw_mci_read_data_pio(struct dw_mci *host)
- 			return;
- 		}
- 	} while (status & SDMMC_INT_RXDR); /*if the RXDR is ready read again*/
--	host->pio_offset = offset;
- 	data->bytes_xfered += nbytes;
-+
-+	if (!remain) {
-+		if (!sg_miter_next(sg_miter))
-+			goto done;
-+		sg_miter->consumed = 0;
-+	}
-+	sg_miter_stop(sg_miter);
- 	return;
- 
- done:
- 	data->bytes_xfered += nbytes;
-+	sg_miter_stop(sg_miter);
-+	host->sg = NULL;
- 	smp_wmb();
- 	set_bit(EVENT_XFER_COMPLETE, &host->pending_events);
- }
- 
- static void dw_mci_write_data_pio(struct dw_mci *host)
- {
--	struct scatterlist *sg = host->sg;
--	void *buf = sg_virt(sg);
--	unsigned int offset = host->pio_offset;
-+	struct sg_mapping_iter *sg_miter = &host->sg_miter;
-+	void *buf;
-+	unsigned int offset;
- 	struct mmc_data	*data = host->data;
- 	int shift = host->data_shift;
- 	u32 status;
- 	unsigned int nbytes = 0, len;
-+	unsigned int fifo_depth = host->fifo_depth;
-+	unsigned int remain, fcnt;
- 
- 	do {
--		len = ((host->fifo_depth -
--			SDMMC_GET_FCNT(mci_readl(host, STATUS))) << shift)
--			- host->part_buf_count;
--		if (offset + len <= sg->length) {
-+		if (!sg_miter_next(sg_miter))
-+			goto done;
-+
-+		host->sg = sg_miter->__sg;
-+		buf = sg_miter->addr;
-+		remain = sg_miter->length;
-+		offset = 0;
-+
-+		do {
-+			fcnt = ((fifo_depth -
-+				 SDMMC_GET_FCNT(mci_readl(host, STATUS)))
-+					<< shift) - host->part_buf_count;
-+			len = min(remain, fcnt);
-+			if (!len)
-+				break;
- 			host->push_data(host, (void *)(buf + offset), len);
--
- 			offset += len;
- 			nbytes += len;
--			if (offset == sg->length) {
--				host->sg = sg = sg_next(sg);
--				if (!sg)
--					goto done;
--
--				offset = 0;
--				buf = sg_virt(sg);
--			}
--		} else {
--			unsigned int remaining = sg->length - offset;
--
--			host->push_data(host, (void *)(buf + offset),
--					remaining);
--			nbytes += remaining;
--
--			host->sg = sg = sg_next(sg);
--			if (!sg)
--				goto done;
--
--			offset = len - remaining;
--			buf = sg_virt(sg);
--			host->push_data(host, (void *)buf, offset);
--			nbytes += offset;
--		}
-+			remain -= len;
-+		} while (remain);
-+		sg_miter->consumed = offset;
- 
- 		status = mci_readl(host, MINTSTS);
- 		mci_writel(host, RINTSTS, SDMMC_INT_TXDR);
- 		if (status & DW_MCI_DATA_ERROR_FLAGS) {
- 			host->data_status = status;
- 			data->bytes_xfered += nbytes;
-+			sg_miter_stop(sg_miter);
-+			host->sg = NULL;
- 
- 			smp_wmb();
- 
-@@ -1410,12 +1407,20 @@ static void dw_mci_write_data_pio(struct dw_mci *host)
- 			return;
- 		}
- 	} while (status & SDMMC_INT_TXDR); /* if TXDR write again */
--	host->pio_offset = offset;
- 	data->bytes_xfered += nbytes;
-+
-+	if (!remain) {
-+		if (!sg_miter_next(sg_miter))
-+			goto done;
-+		sg_miter->consumed = 0;
-+	}
-+	sg_miter_stop(sg_miter);
- 	return;
- 
- done:
- 	data->bytes_xfered += nbytes;
-+	sg_miter_stop(sg_miter);
-+	host->sg = NULL;
- 	smp_wmb();
- 	set_bit(EVENT_XFER_COMPLETE, &host->pending_events);
- }
-@@ -1618,6 +1623,7 @@ static void dw_mci_work_routine_card(struct work_struct *work)
- 				 * block interrupt, hence setting the
- 				 * scatter-gather pointer to NULL.
- 				 */
-+				sg_miter_stop(&host->sg_miter);
- 				host->sg = NULL;
- 
- 				ctrl = mci_readl(host, CTRL);
-diff --git a/include/linux/mmc/dw_mmc.h b/include/linux/mmc/dw_mmc.h
-index 6dc9b80..107fcb3 100644
---- a/include/linux/mmc/dw_mmc.h
-+++ b/include/linux/mmc/dw_mmc.h
-@@ -14,6 +14,8 @@
- #ifndef LINUX_MMC_DW_MMC_H
- #define LINUX_MMC_DW_MMC_H
- 
-+#include <linux/scatterlist.h>
-+
- #define MAX_MCI_SLOTS	2
- 
- enum dw_mci_state {
-@@ -40,7 +42,7 @@ struct mmc_data;
-  * @lock: Spinlock protecting the queue and associated data.
-  * @regs: Pointer to MMIO registers.
-  * @sg: Scatterlist entry currently being processed by PIO code, if any.
-- * @pio_offset: Offset into the current scatterlist entry.
-+ * @sg_miter: PIO mapping scatterlist iterator.
-  * @cur_slot: The slot which is currently using the controller.
-  * @mrq: The request currently being processed on @cur_slot,
-  *	or NULL if the controller is idle.
-@@ -115,7 +117,7 @@ struct dw_mci {
- 	void __iomem		*regs;
- 
- 	struct scatterlist	*sg;
--	unsigned int		pio_offset;
-+	struct sg_mapping_iter	sg_miter;
- 
- 	struct dw_mci_slot	*cur_slot;
- 	struct mmc_request	*mrq;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0028-xen-pvhvm-do-not-remap-pirqs-onto-evtchns-if-xen_hav.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0028-xen-pvhvm-do-not-remap-pirqs-onto-evtchns-if-xen_hav.patch
deleted file mode 100644
index 47efd20..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0028-xen-pvhvm-do-not-remap-pirqs-onto-evtchns-if-xen_hav.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 229e968f6dab9e07fcc5ffa6c22f4b754ab24018 Mon Sep 17 00:00:00 2001
-From: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Date: Mon, 30 Jan 2012 14:31:46 +0000
-Subject: [PATCH 28/30] xen pvhvm: do not remap pirqs onto evtchns if
- !xen_have_vector_callback
-
-commit 207d543f472c1ac9552df79838dc807cbcaa9740 upstream.
-
-Signed-off-by: Stefano Stabellini <stefano.stabellini at eu.citrix.com>
-Signed-off-by: Konrad Rzeszutek Wilk <konrad.wilk at oracle.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/pci/xen.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
-index 492ade8..d99346e 100644
---- a/arch/x86/pci/xen.c
-+++ b/arch/x86/pci/xen.c
-@@ -374,7 +374,7 @@ int __init pci_xen_init(void)
- 
- int __init pci_xen_hvm_init(void)
- {
--	if (!xen_feature(XENFEAT_hvm_pirqs))
-+	if (!xen_have_vector_callback || !xen_feature(XENFEAT_hvm_pirqs))
- 		return 0;
- 
- #ifdef CONFIG_ACPI
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0029-crypto-sha512-use-standard-ror64.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0029-crypto-sha512-use-standard-ror64.patch
deleted file mode 100644
index 32006a5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0029-crypto-sha512-use-standard-ror64.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 60957c889523f4f214ea43608020c33b049bc675 Mon Sep 17 00:00:00 2001
-From: Alexey Dobriyan <adobriyan at gmail.com>
-Date: Sat, 14 Jan 2012 21:44:49 +0300
-Subject: [PATCH 29/30] crypto: sha512 - use standard ror64()
-
-commit f2ea0f5f04c97b48c88edccba52b0682fbe45087 upstream.
-
-Use standard ror64() instead of hand-written.
-There is no standard ror64, so create it.
-
-The difference is shift value being "unsigned int" instead of uint64_t
-(for which there is no reason). gcc starts to emit native ROR instructions
-which it doesn't do for some reason currently. This should make the code
-faster.
-
-Patch survives in-tree crypto test and ping flood with hmac(sha512) on.
-
-Signed-off-by: Alexey Dobriyan <adobriyan at gmail.com>
-Signed-off-by: Herbert Xu <herbert at gondor.apana.org.au>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- crypto/sha512_generic.c |   13 ++++---------
- include/linux/bitops.h  |   20 ++++++++++++++++++++
- 2 files changed, 24 insertions(+), 9 deletions(-)
-
-diff --git a/crypto/sha512_generic.c b/crypto/sha512_generic.c
-index f04af93..107f6f7 100644
---- a/crypto/sha512_generic.c
-+++ b/crypto/sha512_generic.c
-@@ -31,11 +31,6 @@ static inline u64 Maj(u64 x, u64 y, u64 z)
-         return (x & y) | (z & (x | y));
- }
- 
--static inline u64 RORu64(u64 x, u64 y)
--{
--        return (x >> y) | (x << (64 - y));
--}
--
- static const u64 sha512_K[80] = {
-         0x428a2f98d728ae22ULL, 0x7137449123ef65cdULL, 0xb5c0fbcfec4d3b2fULL,
-         0xe9b5dba58189dbbcULL, 0x3956c25bf348b538ULL, 0x59f111f1b605d019ULL,
-@@ -66,10 +61,10 @@ static const u64 sha512_K[80] = {
-         0x5fcb6fab3ad6faecULL, 0x6c44198c4a475817ULL,
- };
- 
--#define e0(x)       (RORu64(x,28) ^ RORu64(x,34) ^ RORu64(x,39))
--#define e1(x)       (RORu64(x,14) ^ RORu64(x,18) ^ RORu64(x,41))
--#define s0(x)       (RORu64(x, 1) ^ RORu64(x, 8) ^ (x >> 7))
--#define s1(x)       (RORu64(x,19) ^ RORu64(x,61) ^ (x >> 6))
-+#define e0(x)       (ror64(x,28) ^ ror64(x,34) ^ ror64(x,39))
-+#define e1(x)       (ror64(x,14) ^ ror64(x,18) ^ ror64(x,41))
-+#define s0(x)       (ror64(x, 1) ^ ror64(x, 8) ^ (x >> 7))
-+#define s1(x)       (ror64(x,19) ^ ror64(x,61) ^ (x >> 6))
- 
- static inline void LOAD_OP(int I, u64 *W, const u8 *input)
- {
-diff --git a/include/linux/bitops.h b/include/linux/bitops.h
-index a3ef66a..fc8a3ff 100644
---- a/include/linux/bitops.h
-+++ b/include/linux/bitops.h
-@@ -50,6 +50,26 @@ static inline unsigned long hweight_long(unsigned long w)
- }
- 
- /**
-+ * rol64 - rotate a 64-bit value left
-+ * @word: value to rotate
-+ * @shift: bits to roll
-+ */
-+static inline __u64 rol64(__u64 word, unsigned int shift)
-+{
-+	return (word << shift) | (word >> (64 - shift));
-+}
-+
-+/**
-+ * ror64 - rotate a 64-bit value right
-+ * @word: value to rotate
-+ * @shift: bits to roll
-+ */
-+static inline __u64 ror64(__u64 word, unsigned int shift)
-+{
-+	return (word >> shift) | (word << (64 - shift));
-+}
-+
-+/**
-  * rol32 - rotate a 32-bit value left
-  * @word: value to rotate
-  * @shift: bits to roll
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0030-Linux-3.2.7.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0030-Linux-3.2.7.patch
deleted file mode 100644
index d70804d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.7/0030-Linux-3.2.7.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 0d5f4ea4143fac3598a2b56fd4630a8d482e7cee Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 20 Feb 2012 13:42:16 -0800
-Subject: [PATCH 30/30] Linux 3.2.7
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 47fe496..d1bdc90 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 6
-+SUBLEVEL = 7
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0001-i387-math_state_restore-isn-t-called-from-asm.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0001-i387-math_state_restore-isn-t-called-from-asm.patch
deleted file mode 100644
index 4c9f3de..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0001-i387-math_state_restore-isn-t-called-from-asm.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From bd87aeb823d3559bf824d0446e70f5e2fb2f218e Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Mon, 13 Feb 2012 13:47:25 -0800
-Subject: [PATCH 01/11] i387: math_state_restore() isn't called from asm
-
-commit be98c2cdb15ba26148cd2bd58a857d4f7759ed38 upstream.
-
-It was marked asmlinkage for some really old and stale legacy reasons.
-Fix that and the equally stale comment.
-
-Noticed when debugging the irq_fpu_usable() bugs.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h |    2 +-
- arch/x86/kernel/traps.c     |    6 +++---
- 2 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index c9e09ea..cba1432 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -29,7 +29,7 @@ extern unsigned int sig_xstate_size;
- extern void fpu_init(void);
- extern void mxcsr_feature_mask_init(void);
- extern int init_fpu(struct task_struct *child);
--extern asmlinkage void math_state_restore(void);
-+extern void math_state_restore(void);
- extern void __math_state_restore(void);
- extern int dump_fpu(struct pt_regs *, struct user_i387_struct *);
- 
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index a8e3eb8..727e6c1 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -590,10 +590,10 @@ void __math_state_restore(void)
-  * Careful.. There are problems with IBM-designed IRQ13 behaviour.
-  * Don't touch unless you *really* know how it works.
-  *
-- * Must be called with kernel preemption disabled (in this case,
-- * local interrupts are disabled at the call-site in entry.S).
-+ * Must be called with kernel preemption disabled (eg with local
-+ * local interrupts as in the case of do_device_not_available).
-  */
--asmlinkage void math_state_restore(void)
-+void math_state_restore(void)
- {
- 	struct thread_info *thread = current_thread_info();
- 	struct task_struct *tsk = thread->task;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0002-i387-make-irq_fpu_usable-tests-more-robust.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0002-i387-make-irq_fpu_usable-tests-more-robust.patch
deleted file mode 100644
index ae42298..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0002-i387-make-irq_fpu_usable-tests-more-robust.patch
+++ /dev/null
@@ -1,131 +0,0 @@
-From b55aa0fd65bf5076507e1380ec3ee1431ff5bb16 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Mon, 13 Feb 2012 13:56:14 -0800
-Subject: [PATCH 02/11] i387: make irq_fpu_usable() tests more robust
-
-commit 5b1cbac37798805c1fee18c8cebe5c0a13975b17 upstream.
-
-Some code - especially the crypto layer - wants to use the x86
-FP/MMX/AVX register set in what may be interrupt (typically softirq)
-context.
-
-That *can* be ok, but the tests for when it was ok were somewhat
-suspect.  We cannot touch the thread-specific status bits either, so
-we'd better check that we're not going to try to save FP state or
-anything like that.
-
-Now, it may be that the TS bit is always cleared *before* we set the
-USEDFPU bit (and only set when we had already cleared the USEDFP
-before), so the TS bit test may actually have been sufficient, but it
-certainly was not obviously so.
-
-So this explicitly verifies that we will not touch the TS_USEDFPU bit,
-and adds a few related sanity-checks.  Because it seems that somehow
-AES-NI is corrupting user FP state.  The cause is not clear, and this
-patch doesn't fix it, but while debugging it I really wanted the code to
-be more obviously correct and robust.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h |   54 ++++++++++++++++++++++++++++++++++++-------
- arch/x86/kernel/traps.c     |    1 +
- 2 files changed, 47 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index cba1432..a436582 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -307,9 +307,54 @@ static inline void __clear_fpu(struct task_struct *tsk)
- 	}
- }
- 
-+/*
-+ * Were we in an interrupt that interrupted kernel mode?
-+ *
-+ * We can do a kernel_fpu_begin/end() pair *ONLY* if that
-+ * pair does nothing at all: TS_USEDFPU must be clear (so
-+ * that we don't try to save the FPU state), and TS must
-+ * be set (so that the clts/stts pair does nothing that is
-+ * visible in the interrupted kernel thread).
-+ */
-+static inline bool interrupted_kernel_fpu_idle(void)
-+{
-+	return !(current_thread_info()->status & TS_USEDFPU) &&
-+		(read_cr0() & X86_CR0_TS);
-+}
-+
-+/*
-+ * Were we in user mode (or vm86 mode) when we were
-+ * interrupted?
-+ *
-+ * Doing kernel_fpu_begin/end() is ok if we are running
-+ * in an interrupt context from user mode - we'll just
-+ * save the FPU state as required.
-+ */
-+static inline bool interrupted_user_mode(void)
-+{
-+	struct pt_regs *regs = get_irq_regs();
-+	return regs && user_mode_vm(regs);
-+}
-+
-+/*
-+ * Can we use the FPU in kernel mode with the
-+ * whole "kernel_fpu_begin/end()" sequence?
-+ *
-+ * It's always ok in process context (ie "not interrupt")
-+ * but it is sometimes ok even from an irq.
-+ */
-+static inline bool irq_fpu_usable(void)
-+{
-+	return !in_interrupt() ||
-+		interrupted_user_mode() ||
-+		interrupted_kernel_fpu_idle();
-+}
-+
- static inline void kernel_fpu_begin(void)
- {
- 	struct thread_info *me = current_thread_info();
-+
-+	WARN_ON_ONCE(!irq_fpu_usable());
- 	preempt_disable();
- 	if (me->status & TS_USEDFPU)
- 		__save_init_fpu(me->task);
-@@ -323,14 +368,6 @@ static inline void kernel_fpu_end(void)
- 	preempt_enable();
- }
- 
--static inline bool irq_fpu_usable(void)
--{
--	struct pt_regs *regs;
--
--	return !in_interrupt() || !(regs = get_irq_regs()) || \
--		user_mode(regs) || (read_cr0() & X86_CR0_TS);
--}
--
- /*
-  * Some instructions like VIA's padlock instructions generate a spurious
-  * DNA fault but don't modify SSE registers. And these instructions
-@@ -367,6 +404,7 @@ static inline void irq_ts_restore(int TS_state)
-  */
- static inline void save_init_fpu(struct task_struct *tsk)
- {
-+	WARN_ON_ONCE(task_thread_info(tsk)->status & TS_USEDFPU);
- 	preempt_disable();
- 	__save_init_fpu(tsk);
- 	stts();
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 727e6c1..41e0b8c 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -622,6 +622,7 @@ EXPORT_SYMBOL_GPL(math_state_restore);
- dotraplinkage void __kprobes
- do_device_not_available(struct pt_regs *regs, long error_code)
- {
-+	WARN_ON_ONCE(!user_mode_vm(regs));
- #ifdef CONFIG_MATH_EMULATION
- 	if (read_cr0() & X86_CR0_EM) {
- 		struct math_emu_info info = { };
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0003-i387-fix-sense-of-sanity-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0003-i387-fix-sense-of-sanity-check.patch
deleted file mode 100644
index 6e5ce1d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0003-i387-fix-sense-of-sanity-check.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 3bb2981d91d2cf06584bc91c07ed07e6bde9e1df Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Wed, 15 Feb 2012 08:05:18 -0800
-Subject: [PATCH 03/11] i387: fix sense of sanity check
-
-commit c38e23456278e967f094b08247ffc3711b1029b2 upstream.
-
-The check for save_init_fpu() (introduced in commit 5b1cbac37798: "i387:
-make irq_fpu_usable() tests more robust") was the wrong way around, but
-I hadn't noticed, because my "tests" were bogus: the FPU exceptions are
-disabled by default, so even doing a divide by zero never actually
-triggers this code at all unless you do extra work to enable them.
-
-So if anybody did enable them, they'd get one spurious warning.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index a436582..262bea9 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -404,7 +404,7 @@ static inline void irq_ts_restore(int TS_state)
-  */
- static inline void save_init_fpu(struct task_struct *tsk)
- {
--	WARN_ON_ONCE(task_thread_info(tsk)->status & TS_USEDFPU);
-+	WARN_ON_ONCE(!(task_thread_info(tsk)->status & TS_USEDFPU));
- 	preempt_disable();
- 	__save_init_fpu(tsk);
- 	stts();
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0004-i387-fix-x86-64-preemption-unsafe-user-stack-save-re.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0004-i387-fix-x86-64-preemption-unsafe-user-stack-save-re.patch
deleted file mode 100644
index 2420aaf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0004-i387-fix-x86-64-preemption-unsafe-user-stack-save-re.patch
+++ /dev/null
@@ -1,163 +0,0 @@
-From 7210b32988217b6b9dac74789ec4d349a1a191fc Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Thu, 16 Feb 2012 09:15:04 -0800
-Subject: [PATCH 04/11] i387: fix x86-64 preemption-unsafe user stack
- save/restore
-
-commit 15d8791cae75dca27bfda8ecfe87dca9379d6bb0 upstream.
-
-Commit 5b1cbac37798 ("i387: make irq_fpu_usable() tests more robust")
-added a sanity check to the #NM handler to verify that we never cause
-the "Device Not Available" exception in kernel mode.
-
-However, that check actually pinpointed a (fundamental) race where we do
-cause that exception as part of the signal stack FPU state save/restore
-code.
-
-Because we use the floating point instructions themselves to save and
-restore state directly from user mode, we cannot do that atomically with
-testing the TS_USEDFPU bit: the user mode access itself may cause a page
-fault, which causes a task switch, which saves and restores the FP/MMX
-state from the kernel buffers.
-
-This kind of "recursive" FP state save is fine per se, but it means that
-when the signal stack save/restore gets restarted, it will now take the
-'#NM' exception we originally tried to avoid.  With preemption this can
-happen even without the page fault - but because of the user access, we
-cannot just disable preemption around the save/restore instruction.
-
-There are various ways to solve this, including using the
-"enable/disable_page_fault()" helpers to not allow page faults at all
-during the sequence, and fall back to copying things by hand without the
-use of the native FP state save/restore instructions.
-
-However, the simplest thing to do is to just allow the #NM from kernel
-space, but fix the race in setting and clearing CR0.TS that this all
-exposed: the TS bit changes and the TS_USEDFPU bit absolutely have to be
-atomic wrt scheduling, so while the actual state save/restore can be
-interrupted and restarted, the act of actually clearing/setting CR0.TS
-and the TS_USEDFPU bit together must not.
-
-Instead of just adding random "preempt_disable/enable()" calls to what
-is already excessively ugly code, this introduces some helper functions
-that mostly mirror the "kernel_fpu_begin/end()" functionality, just for
-the user state instead.
-
-Those helper functions should probably eventually replace the other
-ad-hoc CR0.TS and TS_USEDFPU tests too, but I'll need to think about it
-some more: the task switching functionality in particular needs to
-expose the difference between the 'prev' and 'next' threads, while the
-new helper functions intentionally were written to only work with
-'current'.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h |   42 ++++++++++++++++++++++++++++++++++++++++++
- arch/x86/kernel/traps.c     |    1 -
- arch/x86/kernel/xsave.c     |   10 +++-------
- 3 files changed, 45 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index 262bea9..6e87fa4 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -400,6 +400,48 @@ static inline void irq_ts_restore(int TS_state)
- }
- 
- /*
-+ * The question "does this thread have fpu access?"
-+ * is slightly racy, since preemption could come in
-+ * and revoke it immediately after the test.
-+ *
-+ * However, even in that very unlikely scenario,
-+ * we can just assume we have FPU access - typically
-+ * to save the FP state - we'll just take a #NM
-+ * fault and get the FPU access back.
-+ *
-+ * The actual user_fpu_begin/end() functions
-+ * need to be preemption-safe, though.
-+ *
-+ * NOTE! user_fpu_end() must be used only after you
-+ * have saved the FP state, and user_fpu_begin() must
-+ * be used only immediately before restoring it.
-+ * These functions do not do any save/restore on
-+ * their own.
-+ */
-+static inline int user_has_fpu(void)
-+{
-+	return current_thread_info()->status & TS_USEDFPU;
-+}
-+
-+static inline void user_fpu_end(void)
-+{
-+	preempt_disable();
-+	current_thread_info()->status &= ~TS_USEDFPU;
-+	stts();
-+	preempt_enable();
-+}
-+
-+static inline void user_fpu_begin(void)
-+{
-+	preempt_disable();
-+	if (!user_has_fpu()) {
-+		clts();
-+		current_thread_info()->status |= TS_USEDFPU;
-+	}
-+	preempt_enable();
-+}
-+
-+/*
-  * These disable preemption on their own and are safe
-  */
- static inline void save_init_fpu(struct task_struct *tsk)
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 41e0b8c..727e6c1 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -622,7 +622,6 @@ EXPORT_SYMBOL_GPL(math_state_restore);
- dotraplinkage void __kprobes
- do_device_not_available(struct pt_regs *regs, long error_code)
- {
--	WARN_ON_ONCE(!user_mode_vm(regs));
- #ifdef CONFIG_MATH_EMULATION
- 	if (read_cr0() & X86_CR0_EM) {
- 		struct math_emu_info info = { };
-diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
-index a391134..86f1f09 100644
---- a/arch/x86/kernel/xsave.c
-+++ b/arch/x86/kernel/xsave.c
-@@ -168,7 +168,7 @@ int save_i387_xstate(void __user *buf)
- 	if (!used_math())
- 		return 0;
- 
--	if (task_thread_info(tsk)->status & TS_USEDFPU) {
-+	if (user_has_fpu()) {
- 		if (use_xsave())
- 			err = xsave_user(buf);
- 		else
-@@ -176,8 +176,7 @@ int save_i387_xstate(void __user *buf)
- 
- 		if (err)
- 			return err;
--		task_thread_info(tsk)->status &= ~TS_USEDFPU;
--		stts();
-+		user_fpu_end();
- 	} else {
- 		sanitize_i387_state(tsk);
- 		if (__copy_to_user(buf, &tsk->thread.fpu.state->fxsave,
-@@ -292,10 +291,7 @@ int restore_i387_xstate(void __user *buf)
- 			return err;
- 	}
- 
--	if (!(task_thread_info(current)->status & TS_USEDFPU)) {
--		clts();
--		task_thread_info(current)->status |= TS_USEDFPU;
--	}
-+	user_fpu_begin();
- 	if (use_xsave())
- 		err = restore_user_xstate(buf);
- 	else
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0005-i387-move-TS_USEDFPU-clearing-out-of-__save_init_fpu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0005-i387-move-TS_USEDFPU-clearing-out-of-__save_init_fpu.patch
deleted file mode 100644
index 997da19..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0005-i387-move-TS_USEDFPU-clearing-out-of-__save_init_fpu.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 58e2cbb5f7134c9e45f35fe1befd2237b46afdc1 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Thu, 16 Feb 2012 12:22:48 -0800
-Subject: [PATCH 05/11] i387: move TS_USEDFPU clearing out of __save_init_fpu
- and into callers
-
-commit b6c66418dcad0fcf83cd1d0a39482db37bf4fc41 upstream.
-
-Touching TS_USEDFPU without touching CR0.TS is confusing, so don't do
-it.  By moving it into the callers, we always do the TS_USEDFPU next to
-the CR0.TS accesses in the source code, and it's much easier to see how
-the two go hand in hand.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h |    9 ++++++---
- 1 file changed, 6 insertions(+), 3 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index 6e87fa4..55fb3aa 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -259,7 +259,6 @@ static inline void fpu_save_init(struct fpu *fpu)
- static inline void __save_init_fpu(struct task_struct *tsk)
- {
- 	fpu_save_init(&tsk->thread.fpu);
--	task_thread_info(tsk)->status &= ~TS_USEDFPU;
- }
- 
- static inline int fpu_fxrstor_checking(struct fpu *fpu)
-@@ -290,6 +289,7 @@ static inline void __unlazy_fpu(struct task_struct *tsk)
- {
- 	if (task_thread_info(tsk)->status & TS_USEDFPU) {
- 		__save_init_fpu(tsk);
-+		task_thread_info(tsk)->status &= ~TS_USEDFPU;
- 		stts();
- 	} else
- 		tsk->fpu_counter = 0;
-@@ -356,9 +356,11 @@ static inline void kernel_fpu_begin(void)
- 
- 	WARN_ON_ONCE(!irq_fpu_usable());
- 	preempt_disable();
--	if (me->status & TS_USEDFPU)
-+	if (me->status & TS_USEDFPU) {
- 		__save_init_fpu(me->task);
--	else
-+		me->status &= ~TS_USEDFPU;
-+		/* We do 'stts()' in kernel_fpu_end() */
-+	} else
- 		clts();
- }
- 
-@@ -449,6 +451,7 @@ static inline void save_init_fpu(struct task_struct *tsk)
- 	WARN_ON_ONCE(!(task_thread_info(tsk)->status & TS_USEDFPU));
- 	preempt_disable();
- 	__save_init_fpu(tsk);
-+	task_thread_info(tsk)->status &= ~TS_USEDFPU;
- 	stts();
- 	preempt_enable();
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0006-i387-don-t-ever-touch-TS_USEDFPU-directly-use-helper.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0006-i387-don-t-ever-touch-TS_USEDFPU-directly-use-helper.patch
deleted file mode 100644
index 63b8edf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0006-i387-don-t-ever-touch-TS_USEDFPU-directly-use-helper.patch
+++ /dev/null
@@ -1,228 +0,0 @@
-From 57932125545ab13bfbe240e480e150e35286da9a Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Thu, 16 Feb 2012 13:33:12 -0800
-Subject: [PATCH 06/11] i387: don't ever touch TS_USEDFPU directly, use helper
- functions
-
-commit 6d59d7a9f5b723a7ac1925c136e93ec83c0c3043 upstream.
-
-This creates three helper functions that do the TS_USEDFPU accesses, and
-makes everybody that used to do it by hand use those helpers instead.
-
-In addition, there's a couple of helper functions for the "change both
-CR0.TS and TS_USEDFPU at the same time" case, and the places that do
-that together have been changed to use those.  That means that we have
-fewer random places that open-code this situation.
-
-The intent is partly to clarify the code without actually changing any
-semantics yet (since we clearly still have some hard to reproduce bug in
-this area), but also to make it much easier to use another approach
-entirely to caching the CR0.TS bit for software accesses.
-
-Right now we use a bit in the thread-info 'status' variable (this patch
-does not change that), but we might want to make it a full field of its
-own or even make it a per-cpu variable.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h |   75 +++++++++++++++++++++++++++++++------------
- arch/x86/kernel/traps.c     |    2 +-
- arch/x86/kernel/xsave.c     |    2 +-
- arch/x86/kvm/vmx.c          |    2 +-
- 4 files changed, 58 insertions(+), 23 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index 55fb3aa..730d7be 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -280,6 +280,47 @@ static inline int restore_fpu_checking(struct task_struct *tsk)
- }
- 
- /*
-+ * Software FPU state helpers. Careful: these need to
-+ * be preemption protection *and* they need to be
-+ * properly paired with the CR0.TS changes!
-+ */
-+static inline int __thread_has_fpu(struct thread_info *ti)
-+{
-+	return ti->status & TS_USEDFPU;
-+}
-+
-+/* Must be paired with an 'stts' after! */
-+static inline void __thread_clear_has_fpu(struct thread_info *ti)
-+{
-+	ti->status &= ~TS_USEDFPU;
-+}
-+
-+/* Must be paired with a 'clts' before! */
-+static inline void __thread_set_has_fpu(struct thread_info *ti)
-+{
-+	ti->status |= TS_USEDFPU;
-+}
-+
-+/*
-+ * Encapsulate the CR0.TS handling together with the
-+ * software flag.
-+ *
-+ * These generally need preemption protection to work,
-+ * do try to avoid using these on their own.
-+ */
-+static inline void __thread_fpu_end(struct thread_info *ti)
-+{
-+	__thread_clear_has_fpu(ti);
-+	stts();
-+}
-+
-+static inline void __thread_fpu_begin(struct thread_info *ti)
-+{
-+	clts();
-+	__thread_set_has_fpu(ti);
-+}
-+
-+/*
-  * Signal frame handlers...
-  */
- extern int save_i387_xstate(void __user *buf);
-@@ -287,23 +328,21 @@ extern int restore_i387_xstate(void __user *buf);
- 
- static inline void __unlazy_fpu(struct task_struct *tsk)
- {
--	if (task_thread_info(tsk)->status & TS_USEDFPU) {
-+	if (__thread_has_fpu(task_thread_info(tsk))) {
- 		__save_init_fpu(tsk);
--		task_thread_info(tsk)->status &= ~TS_USEDFPU;
--		stts();
-+		__thread_fpu_end(task_thread_info(tsk));
- 	} else
- 		tsk->fpu_counter = 0;
- }
- 
- static inline void __clear_fpu(struct task_struct *tsk)
- {
--	if (task_thread_info(tsk)->status & TS_USEDFPU) {
-+	if (__thread_has_fpu(task_thread_info(tsk))) {
- 		/* Ignore delayed exceptions from user space */
- 		asm volatile("1: fwait\n"
- 			     "2:\n"
- 			     _ASM_EXTABLE(1b, 2b));
--		task_thread_info(tsk)->status &= ~TS_USEDFPU;
--		stts();
-+		__thread_fpu_end(task_thread_info(tsk));
- 	}
- }
- 
-@@ -311,14 +350,14 @@ static inline void __clear_fpu(struct task_struct *tsk)
-  * Were we in an interrupt that interrupted kernel mode?
-  *
-  * We can do a kernel_fpu_begin/end() pair *ONLY* if that
-- * pair does nothing at all: TS_USEDFPU must be clear (so
-+ * pair does nothing at all: the thread must not have fpu (so
-  * that we don't try to save the FPU state), and TS must
-  * be set (so that the clts/stts pair does nothing that is
-  * visible in the interrupted kernel thread).
-  */
- static inline bool interrupted_kernel_fpu_idle(void)
- {
--	return !(current_thread_info()->status & TS_USEDFPU) &&
-+	return !__thread_has_fpu(current_thread_info()) &&
- 		(read_cr0() & X86_CR0_TS);
- }
- 
-@@ -356,9 +395,9 @@ static inline void kernel_fpu_begin(void)
- 
- 	WARN_ON_ONCE(!irq_fpu_usable());
- 	preempt_disable();
--	if (me->status & TS_USEDFPU) {
-+	if (__thread_has_fpu(me)) {
- 		__save_init_fpu(me->task);
--		me->status &= ~TS_USEDFPU;
-+		__thread_clear_has_fpu(me);
- 		/* We do 'stts()' in kernel_fpu_end() */
- 	} else
- 		clts();
-@@ -422,24 +461,21 @@ static inline void irq_ts_restore(int TS_state)
-  */
- static inline int user_has_fpu(void)
- {
--	return current_thread_info()->status & TS_USEDFPU;
-+	return __thread_has_fpu(current_thread_info());
- }
- 
- static inline void user_fpu_end(void)
- {
- 	preempt_disable();
--	current_thread_info()->status &= ~TS_USEDFPU;
--	stts();
-+	__thread_fpu_end(current_thread_info());
- 	preempt_enable();
- }
- 
- static inline void user_fpu_begin(void)
- {
- 	preempt_disable();
--	if (!user_has_fpu()) {
--		clts();
--		current_thread_info()->status |= TS_USEDFPU;
--	}
-+	if (!user_has_fpu())
-+		__thread_fpu_begin(current_thread_info());
- 	preempt_enable();
- }
- 
-@@ -448,11 +484,10 @@ static inline void user_fpu_begin(void)
-  */
- static inline void save_init_fpu(struct task_struct *tsk)
- {
--	WARN_ON_ONCE(!(task_thread_info(tsk)->status & TS_USEDFPU));
-+	WARN_ON_ONCE(!__thread_has_fpu(task_thread_info(tsk)));
- 	preempt_disable();
- 	__save_init_fpu(tsk);
--	task_thread_info(tsk)->status &= ~TS_USEDFPU;
--	stts();
-+	__thread_fpu_end(task_thread_info(tsk));
- 	preempt_enable();
- }
- 
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 727e6c1..bb5445c 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -579,7 +579,7 @@ void __math_state_restore(void)
- 		return;
- 	}
- 
--	thread->status |= TS_USEDFPU;	/* So we fnsave on switch_to() */
-+	__thread_set_has_fpu(thread);	/* clts in caller! */
- 	tsk->fpu_counter++;
- }
- 
-diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
-index 86f1f09..a0bcd0d 100644
---- a/arch/x86/kernel/xsave.c
-+++ b/arch/x86/kernel/xsave.c
-@@ -47,7 +47,7 @@ void __sanitize_i387_state(struct task_struct *tsk)
- 	if (!fx)
- 		return;
- 
--	BUG_ON(task_thread_info(tsk)->status & TS_USEDFPU);
-+	BUG_ON(__thread_has_fpu(task_thread_info(tsk)));
- 
- 	xstate_bv = tsk->thread.fpu.state->xsave.xsave_hdr.xstate_bv;
- 
-diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index 579a0b5..b2c612d 100644
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -1456,7 +1456,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx)
- #ifdef CONFIG_X86_64
- 	wrmsrl(MSR_KERNEL_GS_BASE, vmx->msr_host_kernel_gs_base);
- #endif
--	if (current_thread_info()->status & TS_USEDFPU)
-+	if (__thread_has_fpu(current_thread_info()))
- 		clts();
- 	load_gdt(&__get_cpu_var(host_gdt));
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0007-i387-do-not-preload-FPU-state-at-task-switch-time.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0007-i387-do-not-preload-FPU-state-at-task-switch-time.patch
deleted file mode 100644
index 7a6ecb7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0007-i387-do-not-preload-FPU-state-at-task-switch-time.patch
+++ /dev/null
@@ -1,202 +0,0 @@
-From e6f8e029532e23549d273f12a536d4a40f403f8a Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Thu, 16 Feb 2012 15:45:23 -0800
-Subject: [PATCH 07/11] i387: do not preload FPU state at task switch time
-
-commit b3b0870ef3ffed72b92415423da864f440f57ad6 upstream.
-
-Yes, taking the trap to re-load the FPU/MMX state is expensive, but so
-is spending several days looking for a bug in the state save/restore
-code.  And the preload code has some rather subtle interactions with
-both paravirtualization support and segment state restore, so it's not
-nearly as simple as it should be.
-
-Also, now that we no longer necessarily depend on a single bit (ie
-TS_USEDFPU) for keeping track of the state of the FPU, we migth be able
-to do better.  If we are really switching between two processes that
-keep touching the FP state, save/restore is inevitable, but in the case
-of having one process that does most of the FPU usage, we may actually
-be able to do much better than the preloading.
-
-In particular, we may be able to keep track of which CPU the process ran
-on last, and also per CPU keep track of which process' FP state that CPU
-has.  For modern CPU's that don't destroy the FPU contents on save time,
-that would allow us to do a lazy restore by just re-enabling the
-existing FPU state - with no restore cost at all!
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h  |    1 -
- arch/x86/kernel/process_32.c |   20 --------------------
- arch/x86/kernel/process_64.c |   23 -----------------------
- arch/x86/kernel/traps.c      |   35 +++++++++++------------------------
- 4 files changed, 11 insertions(+), 68 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index 730d7be..3521c24 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -30,7 +30,6 @@ extern void fpu_init(void);
- extern void mxcsr_feature_mask_init(void);
- extern int init_fpu(struct task_struct *child);
- extern void math_state_restore(void);
--extern void __math_state_restore(void);
- extern int dump_fpu(struct pt_regs *, struct user_i387_struct *);
- 
- extern user_regset_active_fn fpregs_active, xfpregs_active;
-diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index 795b79f..0cdb4fa 100644
---- a/arch/x86/kernel/process_32.c
-+++ b/arch/x86/kernel/process_32.c
-@@ -297,23 +297,11 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 				 *next = &next_p->thread;
- 	int cpu = smp_processor_id();
- 	struct tss_struct *tss = &per_cpu(init_tss, cpu);
--	bool preload_fpu;
- 
- 	/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
- 
--	/*
--	 * If the task has used fpu the last 5 timeslices, just do a full
--	 * restore of the math state immediately to avoid the trap; the
--	 * chances of needing FPU soon are obviously high now
--	 */
--	preload_fpu = tsk_used_math(next_p) && next_p->fpu_counter > 5;
--
- 	__unlazy_fpu(prev_p);
- 
--	/* we're going to use this soon, after a few expensive things */
--	if (preload_fpu)
--		prefetch(next->fpu.state);
--
- 	/*
- 	 * Reload esp0.
- 	 */
-@@ -352,11 +340,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 		     task_thread_info(next_p)->flags & _TIF_WORK_CTXSW_NEXT))
- 		__switch_to_xtra(prev_p, next_p, tss);
- 
--	/* If we're going to preload the fpu context, make sure clts
--	   is run while we're batching the cpu state updates. */
--	if (preload_fpu)
--		clts();
--
- 	/*
- 	 * Leave lazy mode, flushing any hypercalls made here.
- 	 * This must be done before restoring TLS segments so
-@@ -366,9 +349,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	 */
- 	arch_end_context_switch(next_p);
- 
--	if (preload_fpu)
--		__math_state_restore();
--
- 	/*
- 	 * Restore %gs if needed (which is common)
- 	 */
-diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index 3bd7e6e..370801e 100644
---- a/arch/x86/kernel/process_64.c
-+++ b/arch/x86/kernel/process_64.c
-@@ -381,18 +381,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	int cpu = smp_processor_id();
- 	struct tss_struct *tss = &per_cpu(init_tss, cpu);
- 	unsigned fsindex, gsindex;
--	bool preload_fpu;
--
--	/*
--	 * If the task has used fpu the last 5 timeslices, just do a full
--	 * restore of the math state immediately to avoid the trap; the
--	 * chances of needing FPU soon are obviously high now
--	 */
--	preload_fpu = tsk_used_math(next_p) && next_p->fpu_counter > 5;
--
--	/* we're going to use this soon, after a few expensive things */
--	if (preload_fpu)
--		prefetch(next->fpu.state);
- 
- 	/*
- 	 * Reload esp0, LDT and the page table pointer:
-@@ -425,10 +413,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	/* Must be after DS reload */
- 	__unlazy_fpu(prev_p);
- 
--	/* Make sure cpu is ready for new context */
--	if (preload_fpu)
--		clts();
--
- 	/*
- 	 * Leave lazy mode, flushing any hypercalls made here.
- 	 * This must be done before restoring TLS segments so
-@@ -487,13 +471,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 		     task_thread_info(prev_p)->flags & _TIF_WORK_CTXSW_PREV))
- 		__switch_to_xtra(prev_p, next_p, tss);
- 
--	/*
--	 * Preload the FPU context, now that we've determined that the
--	 * task is likely to be using it. 
--	 */
--	if (preload_fpu)
--		__math_state_restore();
--
- 	return prev_p;
- }
- 
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index bb5445c..7767ed2 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -562,28 +562,6 @@ asmlinkage void __attribute__((weak)) smp_threshold_interrupt(void)
- }
- 
- /*
-- * __math_state_restore assumes that cr0.TS is already clear and the
-- * fpu state is all ready for use.  Used during context switch.
-- */
--void __math_state_restore(void)
--{
--	struct thread_info *thread = current_thread_info();
--	struct task_struct *tsk = thread->task;
--
--	/*
--	 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
--	 */
--	if (unlikely(restore_fpu_checking(tsk))) {
--		stts();
--		force_sig(SIGSEGV, tsk);
--		return;
--	}
--
--	__thread_set_has_fpu(thread);	/* clts in caller! */
--	tsk->fpu_counter++;
--}
--
--/*
-  * 'math_state_restore()' saves the current math information in the
-  * old math state array, and gets the new ones from the current task
-  *
-@@ -613,9 +591,18 @@ void math_state_restore(void)
- 		local_irq_disable();
- 	}
- 
--	clts();				/* Allow maths ops (or we recurse) */
-+	__thread_fpu_begin(thread);
- 
--	__math_state_restore();
-+	/*
-+	 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
-+	 */
-+	if (unlikely(restore_fpu_checking(tsk))) {
-+		__thread_fpu_end(thread);
-+		force_sig(SIGSEGV, tsk);
-+		return;
-+	}
-+
-+	tsk->fpu_counter++;
- }
- EXPORT_SYMBOL_GPL(math_state_restore);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0008-i387-move-AMD-K7-K8-fpu-fxsave-fxrstor-workaround-fr.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0008-i387-move-AMD-K7-K8-fpu-fxsave-fxrstor-workaround-fr.patch
deleted file mode 100644
index d0f17a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0008-i387-move-AMD-K7-K8-fpu-fxsave-fxrstor-workaround-fr.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-From daf98dd94475b7f64de086f5949e4e5b17f529bb Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Thu, 16 Feb 2012 19:11:15 -0800
-Subject: [PATCH 08/11] i387: move AMD K7/K8 fpu fxsave/fxrstor workaround
- from save to restore
-
-commit 4903062b5485f0e2c286a23b44c9b59d9b017d53 upstream.
-
-The AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception is
-pending.  In order to not leak FIP state from one process to another, we
-need to do a floating point load after the fxsave of the old process,
-and before the fxrstor of the new FPU state.  That resets the state to
-the (uninteresting) kernel load, rather than some potentially sensitive
-user information.
-
-We used to do this directly after the FPU state save, but that is
-actually very inconvenient, since it
-
- (a) corrupts what is potentially perfectly good FPU state that we might
-     want to lazy avoid restoring later and
-
- (b) on x86-64 it resulted in a very annoying ordering constraint, where
-     "__unlazy_fpu()" in the task switch needs to be delayed until after
-     the DS segment has been reloaded just to get the new DS value.
-
-Coupling it to the fxrstor instead of the fxsave automatically avoids
-both of these issues, and also ensures that we only do it when actually
-necessary (the FP state after a save may never actually get used).  It's
-simply a much more natural place for the leaked state cleanup.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h  |   19 -------------------
- arch/x86/kernel/process_64.c |    5 ++---
- arch/x86/kernel/traps.c      |   14 ++++++++++++++
- 3 files changed, 16 insertions(+), 22 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index 3521c24..01b115d 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -211,15 +211,6 @@ static inline void fpu_fxsave(struct fpu *fpu)
- 
- #endif	/* CONFIG_X86_64 */
- 
--/* We need a safe address that is cheap to find and that is already
--   in L1 during context switch. The best choices are unfortunately
--   different for UP and SMP */
--#ifdef CONFIG_SMP
--#define safe_address (__per_cpu_offset[0])
--#else
--#define safe_address (kstat_cpu(0).cpustat.user)
--#endif
--
- /*
-  * These must be called with preempt disabled
-  */
-@@ -243,16 +234,6 @@ static inline void fpu_save_init(struct fpu *fpu)
- 
- 	if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES))
- 		asm volatile("fnclex");
--
--	/* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception
--	   is pending.  Clear the x87 state here by setting it to fixed
--	   values. safe_address is a random variable that should be in L1 */
--	alternative_input(
--		ASM_NOP8 ASM_NOP2,
--		"emms\n\t"	  	/* clear stack tags */
--		"fildl %P[addr]",	/* set F?P to defined value */
--		X86_FEATURE_FXSAVE_LEAK,
--		[addr] "m" (safe_address));
- }
- 
- static inline void __save_init_fpu(struct task_struct *tsk)
-diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index 370801e..042b18f 100644
---- a/arch/x86/kernel/process_64.c
-+++ b/arch/x86/kernel/process_64.c
-@@ -382,6 +382,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	struct tss_struct *tss = &per_cpu(init_tss, cpu);
- 	unsigned fsindex, gsindex;
- 
-+	__unlazy_fpu(prev_p);
-+
- 	/*
- 	 * Reload esp0, LDT and the page table pointer:
- 	 */
-@@ -410,9 +412,6 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 
- 	load_TLS(next, cpu);
- 
--	/* Must be after DS reload */
--	__unlazy_fpu(prev_p);
--
- 	/*
- 	 * Leave lazy mode, flushing any hypercalls made here.
- 	 * This must be done before restoring TLS segments so
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index 7767ed2..c24bb75 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -576,6 +576,10 @@ void math_state_restore(void)
- 	struct thread_info *thread = current_thread_info();
- 	struct task_struct *tsk = thread->task;
- 
-+	/* We need a safe address that is cheap to find and that is already
-+	   in L1. We just brought in "thread->task", so use that */
-+#define safe_address (thread->task)
-+
- 	if (!tsk_used_math(tsk)) {
- 		local_irq_enable();
- 		/*
-@@ -593,6 +597,16 @@ void math_state_restore(void)
- 
- 	__thread_fpu_begin(thread);
- 
-+	/* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception
-+	   is pending.  Clear the x87 state here by setting it to fixed
-+	   values. safe_address is a random variable that should be in L1 */
-+	alternative_input(
-+		ASM_NOP8 ASM_NOP2,
-+		"emms\n\t"	  	/* clear stack tags */
-+		"fildl %P[addr]",	/* set F?P to defined value */
-+		X86_FEATURE_FXSAVE_LEAK,
-+		[addr] "m" (safe_address));
-+
- 	/*
- 	 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
- 	 */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0009-i387-move-TS_USEDFPU-flag-from-thread_info-to-task_s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0009-i387-move-TS_USEDFPU-flag-from-thread_info-to-task_s.patch
deleted file mode 100644
index 1d67f1f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0009-i387-move-TS_USEDFPU-flag-from-thread_info-to-task_s.patch
+++ /dev/null
@@ -1,305 +0,0 @@
-From fae96c11ba3ff99d1475cf2e750ee6b36bbac43c Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Fri, 17 Feb 2012 21:48:54 -0800
-Subject: [PATCH 09/11] i387: move TS_USEDFPU flag from thread_info to
- task_struct
-
-commit f94edacf998516ac9d849f7bc6949a703977a7f3 upstream.
-
-This moves the bit that indicates whether a thread has ownership of the
-FPU from the TS_USEDFPU bit in thread_info->status to a word of its own
-(called 'has_fpu') in task_struct->thread.has_fpu.
-
-This fixes two independent bugs at the same time:
-
- - changing 'thread_info->status' from the scheduler causes nasty
-   problems for the other users of that variable, since it is defined to
-   be thread-synchronous (that's what the "TS_" part of the naming was
-   supposed to indicate).
-
-   So perfectly valid code could (and did) do
-
-	ti->status |= TS_RESTORE_SIGMASK;
-
-   and the compiler was free to do that as separate load, or and store
-   instructions.  Which can cause problems with preemption, since a task
-   switch could happen in between, and change the TS_USEDFPU bit. The
-   change to TS_USEDFPU would be overwritten by the final store.
-
-   In practice, this seldom happened, though, because the 'status' field
-   was seldom used more than once, so gcc would generally tend to
-   generate code that used a read-modify-write instruction and thus
-   happened to avoid this problem - RMW instructions are naturally low
-   fat and preemption-safe.
-
- - On x86-32, the current_thread_info() pointer would, during interrupts
-   and softirqs, point to a *copy* of the real thread_info, because
-   x86-32 uses %esp to calculate the thread_info address, and thus the
-   separate irq (and softirq) stacks would cause these kinds of odd
-   thread_info copy aliases.
-
-   This is normally not a problem, since interrupts aren't supposed to
-   look at thread information anyway (what thread is running at
-   interrupt time really isn't very well-defined), but it confused the
-   heck out of irq_fpu_usable() and the code that tried to squirrel
-   away the FPU state.
-
-   (It also caused untold confusion for us poor kernel developers).
-
-It also turns out that using 'task_struct' is actually much more natural
-for most of the call sites that care about the FPU state, since they
-tend to work with the task struct for other reasons anyway (ie
-scheduling).  And the FPU data that we are going to save/restore is
-found there too.
-
-Thanks to Arjan Van De Ven <arjan at linux.intel.com> for pointing us to
-the %esp issue.
-
-Cc: Arjan van de Ven <arjan at linux.intel.com>
-Reported-and-tested-by: Raphael Prevost <raphael at buro.asia>
-Acked-and-tested-by: Suresh Siddha <suresh.b.siddha at intel.com>
-Tested-by: Peter Anvin <hpa at zytor.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h        |   44 ++++++++++++++++++------------------
- arch/x86/include/asm/processor.h   |    1 +
- arch/x86/include/asm/thread_info.h |    2 --
- arch/x86/kernel/traps.c            |   11 ++++-----
- arch/x86/kernel/xsave.c            |    2 +-
- arch/x86/kvm/vmx.c                 |    2 +-
- 6 files changed, 30 insertions(+), 32 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index 01b115d..f537667 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -264,21 +264,21 @@ static inline int restore_fpu_checking(struct task_struct *tsk)
-  * be preemption protection *and* they need to be
-  * properly paired with the CR0.TS changes!
-  */
--static inline int __thread_has_fpu(struct thread_info *ti)
-+static inline int __thread_has_fpu(struct task_struct *tsk)
- {
--	return ti->status & TS_USEDFPU;
-+	return tsk->thread.has_fpu;
- }
- 
- /* Must be paired with an 'stts' after! */
--static inline void __thread_clear_has_fpu(struct thread_info *ti)
-+static inline void __thread_clear_has_fpu(struct task_struct *tsk)
- {
--	ti->status &= ~TS_USEDFPU;
-+	tsk->thread.has_fpu = 0;
- }
- 
- /* Must be paired with a 'clts' before! */
--static inline void __thread_set_has_fpu(struct thread_info *ti)
-+static inline void __thread_set_has_fpu(struct task_struct *tsk)
- {
--	ti->status |= TS_USEDFPU;
-+	tsk->thread.has_fpu = 1;
- }
- 
- /*
-@@ -288,16 +288,16 @@ static inline void __thread_set_has_fpu(struct thread_info *ti)
-  * These generally need preemption protection to work,
-  * do try to avoid using these on their own.
-  */
--static inline void __thread_fpu_end(struct thread_info *ti)
-+static inline void __thread_fpu_end(struct task_struct *tsk)
- {
--	__thread_clear_has_fpu(ti);
-+	__thread_clear_has_fpu(tsk);
- 	stts();
- }
- 
--static inline void __thread_fpu_begin(struct thread_info *ti)
-+static inline void __thread_fpu_begin(struct task_struct *tsk)
- {
- 	clts();
--	__thread_set_has_fpu(ti);
-+	__thread_set_has_fpu(tsk);
- }
- 
- /*
-@@ -308,21 +308,21 @@ extern int restore_i387_xstate(void __user *buf);
- 
- static inline void __unlazy_fpu(struct task_struct *tsk)
- {
--	if (__thread_has_fpu(task_thread_info(tsk))) {
-+	if (__thread_has_fpu(tsk)) {
- 		__save_init_fpu(tsk);
--		__thread_fpu_end(task_thread_info(tsk));
-+		__thread_fpu_end(tsk);
- 	} else
- 		tsk->fpu_counter = 0;
- }
- 
- static inline void __clear_fpu(struct task_struct *tsk)
- {
--	if (__thread_has_fpu(task_thread_info(tsk))) {
-+	if (__thread_has_fpu(tsk)) {
- 		/* Ignore delayed exceptions from user space */
- 		asm volatile("1: fwait\n"
- 			     "2:\n"
- 			     _ASM_EXTABLE(1b, 2b));
--		__thread_fpu_end(task_thread_info(tsk));
-+		__thread_fpu_end(tsk);
- 	}
- }
- 
-@@ -337,7 +337,7 @@ static inline void __clear_fpu(struct task_struct *tsk)
-  */
- static inline bool interrupted_kernel_fpu_idle(void)
- {
--	return !__thread_has_fpu(current_thread_info()) &&
-+	return !__thread_has_fpu(current) &&
- 		(read_cr0() & X86_CR0_TS);
- }
- 
-@@ -371,12 +371,12 @@ static inline bool irq_fpu_usable(void)
- 
- static inline void kernel_fpu_begin(void)
- {
--	struct thread_info *me = current_thread_info();
-+	struct task_struct *me = current;
- 
- 	WARN_ON_ONCE(!irq_fpu_usable());
- 	preempt_disable();
- 	if (__thread_has_fpu(me)) {
--		__save_init_fpu(me->task);
-+		__save_init_fpu(me);
- 		__thread_clear_has_fpu(me);
- 		/* We do 'stts()' in kernel_fpu_end() */
- 	} else
-@@ -441,13 +441,13 @@ static inline void irq_ts_restore(int TS_state)
-  */
- static inline int user_has_fpu(void)
- {
--	return __thread_has_fpu(current_thread_info());
-+	return __thread_has_fpu(current);
- }
- 
- static inline void user_fpu_end(void)
- {
- 	preempt_disable();
--	__thread_fpu_end(current_thread_info());
-+	__thread_fpu_end(current);
- 	preempt_enable();
- }
- 
-@@ -455,7 +455,7 @@ static inline void user_fpu_begin(void)
- {
- 	preempt_disable();
- 	if (!user_has_fpu())
--		__thread_fpu_begin(current_thread_info());
-+		__thread_fpu_begin(current);
- 	preempt_enable();
- }
- 
-@@ -464,10 +464,10 @@ static inline void user_fpu_begin(void)
-  */
- static inline void save_init_fpu(struct task_struct *tsk)
- {
--	WARN_ON_ONCE(!__thread_has_fpu(task_thread_info(tsk)));
-+	WARN_ON_ONCE(!__thread_has_fpu(tsk));
- 	preempt_disable();
- 	__save_init_fpu(tsk);
--	__thread_fpu_end(task_thread_info(tsk));
-+	__thread_fpu_end(tsk);
- 	preempt_enable();
- }
- 
-diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
-index b650435..bb3ee36 100644
---- a/arch/x86/include/asm/processor.h
-+++ b/arch/x86/include/asm/processor.h
-@@ -456,6 +456,7 @@ struct thread_struct {
- 	unsigned long		trap_no;
- 	unsigned long		error_code;
- 	/* floating point and extended processor state */
-+	unsigned long		has_fpu;
- 	struct fpu		fpu;
- #ifdef CONFIG_X86_32
- 	/* Virtual 86 mode info */
-diff --git a/arch/x86/include/asm/thread_info.h b/arch/x86/include/asm/thread_info.h
-index a1fe5c1..d7ef849 100644
---- a/arch/x86/include/asm/thread_info.h
-+++ b/arch/x86/include/asm/thread_info.h
-@@ -242,8 +242,6 @@ static inline struct thread_info *current_thread_info(void)
-  * ever touches our thread-synchronous status, so we don't
-  * have to worry about atomic accesses.
-  */
--#define TS_USEDFPU		0x0001	/* FPU was used by this task
--					   this quantum (SMP) */
- #define TS_COMPAT		0x0002	/* 32bit syscall active (64BIT)*/
- #define TS_POLLING		0x0004	/* idle task polling need_resched,
- 					   skip sending interrupt */
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index c24bb75..a99badf 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -573,12 +573,11 @@ asmlinkage void __attribute__((weak)) smp_threshold_interrupt(void)
-  */
- void math_state_restore(void)
- {
--	struct thread_info *thread = current_thread_info();
--	struct task_struct *tsk = thread->task;
-+	struct task_struct *tsk = current;
- 
- 	/* We need a safe address that is cheap to find and that is already
--	   in L1. We just brought in "thread->task", so use that */
--#define safe_address (thread->task)
-+	   in L1. We're just bringing in "tsk->thread.has_fpu", so use that */
-+#define safe_address (tsk->thread.has_fpu)
- 
- 	if (!tsk_used_math(tsk)) {
- 		local_irq_enable();
-@@ -595,7 +594,7 @@ void math_state_restore(void)
- 		local_irq_disable();
- 	}
- 
--	__thread_fpu_begin(thread);
-+	__thread_fpu_begin(tsk);
- 
- 	/* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception
- 	   is pending.  Clear the x87 state here by setting it to fixed
-@@ -611,7 +610,7 @@ void math_state_restore(void)
- 	 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
- 	 */
- 	if (unlikely(restore_fpu_checking(tsk))) {
--		__thread_fpu_end(thread);
-+		__thread_fpu_end(tsk);
- 		force_sig(SIGSEGV, tsk);
- 		return;
- 	}
-diff --git a/arch/x86/kernel/xsave.c b/arch/x86/kernel/xsave.c
-index a0bcd0d..7110911 100644
---- a/arch/x86/kernel/xsave.c
-+++ b/arch/x86/kernel/xsave.c
-@@ -47,7 +47,7 @@ void __sanitize_i387_state(struct task_struct *tsk)
- 	if (!fx)
- 		return;
- 
--	BUG_ON(__thread_has_fpu(task_thread_info(tsk)));
-+	BUG_ON(__thread_has_fpu(tsk));
- 
- 	xstate_bv = tsk->thread.fpu.state->xsave.xsave_hdr.xstate_bv;
- 
-diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
-index b2c612d..4ea7678 100644
---- a/arch/x86/kvm/vmx.c
-+++ b/arch/x86/kvm/vmx.c
-@@ -1456,7 +1456,7 @@ static void __vmx_load_host_state(struct vcpu_vmx *vmx)
- #ifdef CONFIG_X86_64
- 	wrmsrl(MSR_KERNEL_GS_BASE, vmx->msr_host_kernel_gs_base);
- #endif
--	if (__thread_has_fpu(current_thread_info()))
-+	if (__thread_has_fpu(current))
- 		clts();
- 	load_gdt(&__get_cpu_var(host_gdt));
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0010-i387-re-introduce-FPU-state-preloading-at-context-sw.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0010-i387-re-introduce-FPU-state-preloading-at-context-sw.patch
deleted file mode 100644
index 63bd1fd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0010-i387-re-introduce-FPU-state-preloading-at-context-sw.patch
+++ /dev/null
@@ -1,353 +0,0 @@
-From a3c1c72b3f2de7d8d0cece6a515404cd01c03bf0 Mon Sep 17 00:00:00 2001
-From: Linus Torvalds <torvalds at linux-foundation.org>
-Date: Sat, 18 Feb 2012 12:56:35 -0800
-Subject: [PATCH 10/11] i387: re-introduce FPU state preloading at context
- switch time
-
-commit 34ddc81a230b15c0e345b6b253049db731499f7e upstream.
-
-After all the FPU state cleanups and finally finding the problem that
-caused all our FPU save/restore problems, this re-introduces the
-preloading of FPU state that was removed in commit b3b0870ef3ff ("i387:
-do not preload FPU state at task switch time").
-
-However, instead of simply reverting the removal, this reimplements
-preloading with several fixes, most notably
-
- - properly abstracted as a true FPU state switch, rather than as
-   open-coded save and restore with various hacks.
-
-   In particular, implementing it as a proper FPU state switch allows us
-   to optimize the CR0.TS flag accesses: there is no reason to set the
-   TS bit only to then almost immediately clear it again.  CR0 accesses
-   are quite slow and expensive, don't flip the bit back and forth for
-   no good reason.
-
- - Make sure that the same model works for both x86-32 and x86-64, so
-   that there are no gratuitous differences between the two due to the
-   way they save and restore segment state differently due to
-   architectural differences that really don't matter to the FPU state.
-
- - Avoid exposing the "preload" state to the context switch routines,
-   and in particular allow the concept of lazy state restore: if nothing
-   else has used the FPU in the meantime, and the process is still on
-   the same CPU, we can avoid restoring state from memory entirely, just
-   re-expose the state that is still in the FPU unit.
-
-   That optimized lazy restore isn't actually implemented here, but the
-   infrastructure is set up for it.  Of course, older CPU's that use
-   'fnsave' to save the state cannot take advantage of this, since the
-   state saving also trashes the state.
-
-In other words, there is now an actual _design_ to the FPU state saving,
-rather than just random historical baggage.  Hopefully it's easier to
-follow as a result.
-
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/include/asm/i387.h  |  110 +++++++++++++++++++++++++++++++++++-------
- arch/x86/kernel/process_32.c |    5 +-
- arch/x86/kernel/process_64.c |    5 +-
- arch/x86/kernel/traps.c      |   55 ++++++++++++---------
- 4 files changed, 133 insertions(+), 42 deletions(-)
-
-diff --git a/arch/x86/include/asm/i387.h b/arch/x86/include/asm/i387.h
-index f537667..a850b4d 100644
---- a/arch/x86/include/asm/i387.h
-+++ b/arch/x86/include/asm/i387.h
-@@ -29,6 +29,7 @@ extern unsigned int sig_xstate_size;
- extern void fpu_init(void);
- extern void mxcsr_feature_mask_init(void);
- extern int init_fpu(struct task_struct *child);
-+extern void __math_state_restore(struct task_struct *);
- extern void math_state_restore(void);
- extern int dump_fpu(struct pt_regs *, struct user_i387_struct *);
- 
-@@ -212,9 +213,10 @@ static inline void fpu_fxsave(struct fpu *fpu)
- #endif	/* CONFIG_X86_64 */
- 
- /*
-- * These must be called with preempt disabled
-+ * These must be called with preempt disabled. Returns
-+ * 'true' if the FPU state is still intact.
-  */
--static inline void fpu_save_init(struct fpu *fpu)
-+static inline int fpu_save_init(struct fpu *fpu)
- {
- 	if (use_xsave()) {
- 		fpu_xsave(fpu);
-@@ -223,22 +225,33 @@ static inline void fpu_save_init(struct fpu *fpu)
- 		 * xsave header may indicate the init state of the FP.
- 		 */
- 		if (!(fpu->state->xsave.xsave_hdr.xstate_bv & XSTATE_FP))
--			return;
-+			return 1;
- 	} else if (use_fxsr()) {
- 		fpu_fxsave(fpu);
- 	} else {
- 		asm volatile("fnsave %[fx]; fwait"
- 			     : [fx] "=m" (fpu->state->fsave));
--		return;
-+		return 0;
- 	}
- 
--	if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES))
-+	/*
-+	 * If exceptions are pending, we need to clear them so
-+	 * that we don't randomly get exceptions later.
-+	 *
-+	 * FIXME! Is this perhaps only true for the old-style
-+	 * irq13 case? Maybe we could leave the x87 state
-+	 * intact otherwise?
-+	 */
-+	if (unlikely(fpu->state->fxsave.swd & X87_FSW_ES)) {
- 		asm volatile("fnclex");
-+		return 0;
-+	}
-+	return 1;
- }
- 
--static inline void __save_init_fpu(struct task_struct *tsk)
-+static inline int __save_init_fpu(struct task_struct *tsk)
- {
--	fpu_save_init(&tsk->thread.fpu);
-+	return fpu_save_init(&tsk->thread.fpu);
- }
- 
- static inline int fpu_fxrstor_checking(struct fpu *fpu)
-@@ -301,20 +314,79 @@ static inline void __thread_fpu_begin(struct task_struct *tsk)
- }
- 
- /*
-- * Signal frame handlers...
-+ * FPU state switching for scheduling.
-+ *
-+ * This is a two-stage process:
-+ *
-+ *  - switch_fpu_prepare() saves the old state and
-+ *    sets the new state of the CR0.TS bit. This is
-+ *    done within the context of the old process.
-+ *
-+ *  - switch_fpu_finish() restores the new state as
-+ *    necessary.
-  */
--extern int save_i387_xstate(void __user *buf);
--extern int restore_i387_xstate(void __user *buf);
-+typedef struct { int preload; } fpu_switch_t;
-+
-+/*
-+ * FIXME! We could do a totally lazy restore, but we need to
-+ * add a per-cpu "this was the task that last touched the FPU
-+ * on this CPU" variable, and the task needs to have a "I last
-+ * touched the FPU on this CPU" and check them.
-+ *
-+ * We don't do that yet, so "fpu_lazy_restore()" always returns
-+ * false, but some day..
-+ */
-+#define fpu_lazy_restore(tsk) (0)
-+#define fpu_lazy_state_intact(tsk) do { } while (0)
-+
-+static inline fpu_switch_t switch_fpu_prepare(struct task_struct *old, struct task_struct *new)
-+{
-+	fpu_switch_t fpu;
-+
-+	fpu.preload = tsk_used_math(new) && new->fpu_counter > 5;
-+	if (__thread_has_fpu(old)) {
-+		if (__save_init_fpu(old))
-+			fpu_lazy_state_intact(old);
-+		__thread_clear_has_fpu(old);
-+		old->fpu_counter++;
-+
-+		/* Don't change CR0.TS if we just switch! */
-+		if (fpu.preload) {
-+			__thread_set_has_fpu(new);
-+			prefetch(new->thread.fpu.state);
-+		} else
-+			stts();
-+	} else {
-+		old->fpu_counter = 0;
-+		if (fpu.preload) {
-+			if (fpu_lazy_restore(new))
-+				fpu.preload = 0;
-+			else
-+				prefetch(new->thread.fpu.state);
-+			__thread_fpu_begin(new);
-+		}
-+	}
-+	return fpu;
-+}
- 
--static inline void __unlazy_fpu(struct task_struct *tsk)
-+/*
-+ * By the time this gets called, we've already cleared CR0.TS and
-+ * given the process the FPU if we are going to preload the FPU
-+ * state - all we need to do is to conditionally restore the register
-+ * state itself.
-+ */
-+static inline void switch_fpu_finish(struct task_struct *new, fpu_switch_t fpu)
- {
--	if (__thread_has_fpu(tsk)) {
--		__save_init_fpu(tsk);
--		__thread_fpu_end(tsk);
--	} else
--		tsk->fpu_counter = 0;
-+	if (fpu.preload)
-+		__math_state_restore(new);
- }
- 
-+/*
-+ * Signal frame handlers...
-+ */
-+extern int save_i387_xstate(void __user *buf);
-+extern int restore_i387_xstate(void __user *buf);
-+
- static inline void __clear_fpu(struct task_struct *tsk)
- {
- 	if (__thread_has_fpu(tsk)) {
-@@ -474,7 +546,11 @@ static inline void save_init_fpu(struct task_struct *tsk)
- static inline void unlazy_fpu(struct task_struct *tsk)
- {
- 	preempt_disable();
--	__unlazy_fpu(tsk);
-+	if (__thread_has_fpu(tsk)) {
-+		__save_init_fpu(tsk);
-+		__thread_fpu_end(tsk);
-+	} else
-+		tsk->fpu_counter = 0;
- 	preempt_enable();
- }
- 
-diff --git a/arch/x86/kernel/process_32.c b/arch/x86/kernel/process_32.c
-index 0cdb4fa..8598296 100644
---- a/arch/x86/kernel/process_32.c
-+++ b/arch/x86/kernel/process_32.c
-@@ -297,10 +297,11 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 				 *next = &next_p->thread;
- 	int cpu = smp_processor_id();
- 	struct tss_struct *tss = &per_cpu(init_tss, cpu);
-+	fpu_switch_t fpu;
- 
- 	/* never put a printk in __switch_to... printk() calls wake_up*() indirectly */
- 
--	__unlazy_fpu(prev_p);
-+	fpu = switch_fpu_prepare(prev_p, next_p);
- 
- 	/*
- 	 * Reload esp0.
-@@ -355,6 +356,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	if (prev->gs | next->gs)
- 		lazy_load_gs(next->gs);
- 
-+	switch_fpu_finish(next_p, fpu);
-+
- 	percpu_write(current_task, next_p);
- 
- 	return prev_p;
-diff --git a/arch/x86/kernel/process_64.c b/arch/x86/kernel/process_64.c
-index 042b18f..6a364a6 100644
---- a/arch/x86/kernel/process_64.c
-+++ b/arch/x86/kernel/process_64.c
-@@ -381,8 +381,9 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 	int cpu = smp_processor_id();
- 	struct tss_struct *tss = &per_cpu(init_tss, cpu);
- 	unsigned fsindex, gsindex;
-+	fpu_switch_t fpu;
- 
--	__unlazy_fpu(prev_p);
-+	fpu = switch_fpu_prepare(prev_p, next_p);
- 
- 	/*
- 	 * Reload esp0, LDT and the page table pointer:
-@@ -452,6 +453,8 @@ __switch_to(struct task_struct *prev_p, struct task_struct *next_p)
- 		wrmsrl(MSR_KERNEL_GS_BASE, next->gs);
- 	prev->gsindex = gsindex;
- 
-+	switch_fpu_finish(next_p, fpu);
-+
- 	/*
- 	 * Switch the PDA and FPU contexts.
- 	 */
-diff --git a/arch/x86/kernel/traps.c b/arch/x86/kernel/traps.c
-index a99badf..31d9d0f 100644
---- a/arch/x86/kernel/traps.c
-+++ b/arch/x86/kernel/traps.c
-@@ -562,6 +562,37 @@ asmlinkage void __attribute__((weak)) smp_threshold_interrupt(void)
- }
- 
- /*
-+ * This gets called with the process already owning the
-+ * FPU state, and with CR0.TS cleared. It just needs to
-+ * restore the FPU register state.
-+ */
-+void __math_state_restore(struct task_struct *tsk)
-+{
-+	/* We need a safe address that is cheap to find and that is already
-+	   in L1. We've just brought in "tsk->thread.has_fpu", so use that */
-+#define safe_address (tsk->thread.has_fpu)
-+
-+	/* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception
-+	   is pending.  Clear the x87 state here by setting it to fixed
-+	   values. safe_address is a random variable that should be in L1 */
-+	alternative_input(
-+		ASM_NOP8 ASM_NOP2,
-+		"emms\n\t"	  	/* clear stack tags */
-+		"fildl %P[addr]",	/* set F?P to defined value */
-+		X86_FEATURE_FXSAVE_LEAK,
-+		[addr] "m" (safe_address));
-+
-+	/*
-+	 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
-+	 */
-+	if (unlikely(restore_fpu_checking(tsk))) {
-+		__thread_fpu_end(tsk);
-+		force_sig(SIGSEGV, tsk);
-+		return;
-+	}
-+}
-+
-+/*
-  * 'math_state_restore()' saves the current math information in the
-  * old math state array, and gets the new ones from the current task
-  *
-@@ -575,10 +606,6 @@ void math_state_restore(void)
- {
- 	struct task_struct *tsk = current;
- 
--	/* We need a safe address that is cheap to find and that is already
--	   in L1. We're just bringing in "tsk->thread.has_fpu", so use that */
--#define safe_address (tsk->thread.has_fpu)
--
- 	if (!tsk_used_math(tsk)) {
- 		local_irq_enable();
- 		/*
-@@ -595,25 +622,7 @@ void math_state_restore(void)
- 	}
- 
- 	__thread_fpu_begin(tsk);
--
--	/* AMD K7/K8 CPUs don't save/restore FDP/FIP/FOP unless an exception
--	   is pending.  Clear the x87 state here by setting it to fixed
--	   values. safe_address is a random variable that should be in L1 */
--	alternative_input(
--		ASM_NOP8 ASM_NOP2,
--		"emms\n\t"	  	/* clear stack tags */
--		"fildl %P[addr]",	/* set F?P to defined value */
--		X86_FEATURE_FXSAVE_LEAK,
--		[addr] "m" (safe_address));
--
--	/*
--	 * Paranoid restore. send a SIGSEGV if we fail to restore the state.
--	 */
--	if (unlikely(restore_fpu_checking(tsk))) {
--		__thread_fpu_end(tsk);
--		force_sig(SIGSEGV, tsk);
--		return;
--	}
-+	__math_state_restore(tsk);
- 
- 	tsk->fpu_counter++;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0011-Linux-3.2.8.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0011-Linux-3.2.8.patch
deleted file mode 100644
index 5b411db..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.8/0011-Linux-3.2.8.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From 9b92e468f1fb095f3d25d7c846d692c327323f01 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Mon, 27 Feb 2012 10:26:22 -0800
-Subject: [PATCH 11/11] Linux 3.2.8
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index d1bdc90..7df8a84 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 7
-+SUBLEVEL = 8
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0001-Security-tomoyo-add-.gitignore-file.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0001-Security-tomoyo-add-.gitignore-file.patch
deleted file mode 100644
index af59da4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0001-Security-tomoyo-add-.gitignore-file.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From 8745993283e67a6ee9a50553a53c1262ab069704 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at suse.de>
-Date: Fri, 9 Dec 2011 11:23:46 -0800
-Subject: [PATCH 01/72] Security: tomoyo: add .gitignore file
-
-commit 735e93c70434614bffac4a914ca1da72e37d43c0 upstream.
-
-This adds the .gitignore file for the autogenerated TOMOYO files to keep
-git from complaining after building things.
-
-Cc: Kentaro Takeda <takedakn at nttdata.co.jp>
-Cc: Tetsuo Handa <penguin-kernel at I-love.SAKURA.ne.jp>
-Cc: James Morris <jmorris at namei.org>
-Acked-by: Tetsuo Handa <penguin-kernel at I-love.SAKURA.ne.jp>
-Signed-off-by: James Morris <jmorris at namei.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- security/tomoyo/.gitignore |    2 ++
- 1 file changed, 2 insertions(+)
- create mode 100644 security/tomoyo/.gitignore
-
-diff --git a/security/tomoyo/.gitignore b/security/tomoyo/.gitignore
-new file mode 100644
-index 0000000..5caf1a6
---- /dev/null
-+++ b/security/tomoyo/.gitignore
-@@ -0,0 +1,2 @@
-+builtin-policy.h
-+policy/
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0002-powerpc-perf-power_pmu_start-restores-incorrect-valu.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0002-powerpc-perf-power_pmu_start-restores-incorrect-valu.patch
deleted file mode 100644
index c30aca3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0002-powerpc-perf-power_pmu_start-restores-incorrect-valu.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From a5e7847241035f1293439ae2422c9e19271c0c24 Mon Sep 17 00:00:00 2001
-From: Anton Blanchard <anton at samba.org>
-Date: Wed, 15 Feb 2012 18:48:22 +0000
-Subject: [PATCH 02/72] powerpc/perf: power_pmu_start restores incorrect
- values, breaking frequency events
-
-commit 9a45a9407c69d068500923480884661e2b9cc421 upstream.
-
-perf on POWER stopped working after commit e050e3f0a71b (perf: Fix
-broken interrupt rate throttling). That patch exposed a bug in
-the POWER perf_events code.
-
-Since the PMCs count upwards and take an exception when the top bit
-is set, we want to write 0x80000000 - left in power_pmu_start. We were
-instead programming in left which effectively disables the counter
-until we eventually hit 0x80000000. This could take seconds or longer.
-
-With the patch applied I get the expected number of samples:
-
-          SAMPLE events:       9948
-
-Signed-off-by: Anton Blanchard <anton at samba.org>
-Acked-by: Paul Mackerras <paulus at samba.org>
-Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/powerpc/kernel/perf_event.c |    8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/arch/powerpc/kernel/perf_event.c b/arch/powerpc/kernel/perf_event.c
-index 10a140f..64483fd 100644
---- a/arch/powerpc/kernel/perf_event.c
-+++ b/arch/powerpc/kernel/perf_event.c
-@@ -865,6 +865,7 @@ static void power_pmu_start(struct perf_event *event, int ef_flags)
- {
- 	unsigned long flags;
- 	s64 left;
-+	unsigned long val;
- 
- 	if (!event->hw.idx || !event->hw.sample_period)
- 		return;
-@@ -880,7 +881,12 @@ static void power_pmu_start(struct perf_event *event, int ef_flags)
- 
- 	event->hw.state = 0;
- 	left = local64_read(&event->hw.period_left);
--	write_pmc(event->hw.idx, left);
-+
-+	val = 0;
-+	if (left < 0x80000000L)
-+		val = 0x80000000L - left;
-+
-+	write_pmc(event->hw.idx, val);
- 
- 	perf_event_update_userpage(event);
- 	perf_pmu_enable(event->pmu);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0003-ARM-at91-USB-AT91-gadget-registration-for-module.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0003-ARM-at91-USB-AT91-gadget-registration-for-module.patch
deleted file mode 100644
index 81d1097..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0003-ARM-at91-USB-AT91-gadget-registration-for-module.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From a6ee86920e1888c173cabbc4e6dabfd12e68270b Mon Sep 17 00:00:00 2001
-From: Nicolas Ferre <nicolas.ferre at atmel.com>
-Date: Fri, 27 Jan 2012 11:14:44 +0100
-Subject: [PATCH 03/72] ARM: at91: USB AT91 gadget registration for module
-
-commit e8c9dc93e27d891636defbc269f182a83e6abba8 upstream.
-
-Registration of at91_udc as a module will enable SoC
-related code.
-
-Fix following an idea from Karel Znamenacek.
-
-Signed-off-by: Nicolas Ferre <nicolas.ferre at atmel.com>
-Acked-by: Karel Znamenacek <karel at ryston.cz>
-Acked-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj at jcrosoft.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mach-at91/at91rm9200_devices.c  |    2 +-
- arch/arm/mach-at91/at91sam9260_devices.c |    2 +-
- arch/arm/mach-at91/at91sam9261_devices.c |    2 +-
- arch/arm/mach-at91/at91sam9263_devices.c |    2 +-
- 4 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-at91/at91rm9200_devices.c b/arch/arm/mach-at91/at91rm9200_devices.c
-index ad93068..143eebb 100644
---- a/arch/arm/mach-at91/at91rm9200_devices.c
-+++ b/arch/arm/mach-at91/at91rm9200_devices.c
-@@ -83,7 +83,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
-  *  USB Device (Gadget)
-  * -------------------------------------------------------------------- */
- 
--#ifdef CONFIG_USB_AT91
-+#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
- static struct at91_udc_data udc_data;
- 
- static struct resource udc_resources[] = {
-diff --git a/arch/arm/mach-at91/at91sam9260_devices.c b/arch/arm/mach-at91/at91sam9260_devices.c
-index 629fa97..2590988 100644
---- a/arch/arm/mach-at91/at91sam9260_devices.c
-+++ b/arch/arm/mach-at91/at91sam9260_devices.c
-@@ -84,7 +84,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
-  *  USB Device (Gadget)
-  * -------------------------------------------------------------------- */
- 
--#ifdef CONFIG_USB_AT91
-+#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
- static struct at91_udc_data udc_data;
- 
- static struct resource udc_resources[] = {
-diff --git a/arch/arm/mach-at91/at91sam9261_devices.c b/arch/arm/mach-at91/at91sam9261_devices.c
-index a178b58..daf3e66 100644
---- a/arch/arm/mach-at91/at91sam9261_devices.c
-+++ b/arch/arm/mach-at91/at91sam9261_devices.c
-@@ -87,7 +87,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
-  *  USB Device (Gadget)
-  * -------------------------------------------------------------------- */
- 
--#ifdef CONFIG_USB_AT91
-+#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
- static struct at91_udc_data udc_data;
- 
- static struct resource udc_resources[] = {
-diff --git a/arch/arm/mach-at91/at91sam9263_devices.c b/arch/arm/mach-at91/at91sam9263_devices.c
-index d5fbac9..32a7e43 100644
---- a/arch/arm/mach-at91/at91sam9263_devices.c
-+++ b/arch/arm/mach-at91/at91sam9263_devices.c
-@@ -92,7 +92,7 @@ void __init at91_add_device_usbh(struct at91_usbh_data *data) {}
-  *  USB Device (Gadget)
-  * -------------------------------------------------------------------- */
- 
--#ifdef CONFIG_USB_AT91
-+#if defined(CONFIG_USB_AT91) || defined(CONFIG_USB_AT91_MODULE)
- static struct at91_udc_data udc_data;
- 
- static struct resource udc_resources[] = {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0004-drm-radeon-kms-fix-MSI-re-arm-on-rv370.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0004-drm-radeon-kms-fix-MSI-re-arm-on-rv370.patch
deleted file mode 100644
index 35e5454..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0004-drm-radeon-kms-fix-MSI-re-arm-on-rv370.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From d8981763b4d9a3eb23de25d46f474ed4c880179e Mon Sep 17 00:00:00 2001
-From: Alex Deucher <alexander.deucher at amd.com>
-Date: Mon, 13 Feb 2012 16:36:34 -0500
-Subject: [PATCH 04/72] drm/radeon/kms: fix MSI re-arm on rv370+
-
-commit b7f5b7dec3d539a84734f2bcb7e53fbb1532a40b upstream.
-
-MSI_REARM_EN register is a write only trigger register.
-There is no need RMW when re-arming.
-
-May fix:
-https://bugs.freedesktop.org/show_bug.cgi?id=41668
-
-Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
-Signed-off-by: Dave Airlie <airlied at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/gpu/drm/radeon/r100.c  |    4 +---
- drivers/gpu/drm/radeon/rs600.c |    4 +---
- 2 files changed, 2 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/gpu/drm/radeon/r100.c b/drivers/gpu/drm/radeon/r100.c
-index 31b0d1a..fad7cd1 100644
---- a/drivers/gpu/drm/radeon/r100.c
-+++ b/drivers/gpu/drm/radeon/r100.c
-@@ -789,9 +789,7 @@ int r100_irq_process(struct radeon_device *rdev)
- 			WREG32(RADEON_AIC_CNTL, msi_rearm | RS400_MSI_REARM);
- 			break;
- 		default:
--			msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN;
--			WREG32(RADEON_MSI_REARM_EN, msi_rearm);
--			WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN);
-+			WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN);
- 			break;
- 		}
- 	}
-diff --git a/drivers/gpu/drm/radeon/rs600.c b/drivers/gpu/drm/radeon/rs600.c
-index c259e21..ee898e9 100644
---- a/drivers/gpu/drm/radeon/rs600.c
-+++ b/drivers/gpu/drm/radeon/rs600.c
-@@ -693,9 +693,7 @@ int rs600_irq_process(struct radeon_device *rdev)
- 			WREG32(RADEON_BUS_CNTL, msi_rearm | RS600_MSI_REARM);
- 			break;
- 		default:
--			msi_rearm = RREG32(RADEON_MSI_REARM_EN) & ~RV370_MSI_REARM_EN;
--			WREG32(RADEON_MSI_REARM_EN, msi_rearm);
--			WREG32(RADEON_MSI_REARM_EN, msi_rearm | RV370_MSI_REARM_EN);
-+			WREG32(RADEON_MSI_REARM_EN, RV370_MSI_REARM_EN);
- 			break;
- 		}
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0005-PCI-workaround-hard-wired-bus-number-V2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0005-PCI-workaround-hard-wired-bus-number-V2.patch
deleted file mode 100644
index f1bb13d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0005-PCI-workaround-hard-wired-bus-number-V2.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From 107b4c2d038911dd42e9450fc6abd42a9b5c0d7f Mon Sep 17 00:00:00 2001
-From: Yinghai Lu <yinghai.lu at oracle.com>
-Date: Mon, 30 Jan 2012 12:25:24 +0100
-Subject: [PATCH 05/72] PCI: workaround hard-wired bus number V2
-
-commit 71f6bd4a23130cd2f4b036010c5790b1295290b9 upstream.
-
-Fixes PCI device detection on IBM xSeries IBM 3850 M2 / x3950 M2
-when using ACPI resources (_CRS).
-This is default, a manual workaround (without this patch)
-would be pci=nocrs boot param.
-
-V2: Add dev_warn if the workaround is hit. This should reveal
-how common such setups are (via google) and point to possible
-problems if things are still not working as expected.
--> Suggested by Jan Beulich.
-
-Tested-by: garyhade at us.ibm.com
-Signed-off-by: Yinghai Lu <yinghai.lu at oracle.com>
-Signed-off-by: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/pci/probe.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/pci/probe.c b/drivers/pci/probe.c
-index 04e74f4..dfee1b3 100644
---- a/drivers/pci/probe.c
-+++ b/drivers/pci/probe.c
-@@ -651,6 +651,11 @@ int __devinit pci_scan_bridge(struct pci_bus *bus, struct pci_dev *dev, int max,
- 	dev_dbg(&dev->dev, "scanning [bus %02x-%02x] behind bridge, pass %d\n",
- 		secondary, subordinate, pass);
- 
-+	if (!primary && (primary != bus->number) && secondary && subordinate) {
-+		dev_warn(&dev->dev, "Primary bus is hard wired to 0\n");
-+		primary = bus->number;
-+	}
-+
- 	/* Check if setup is sensible at all */
- 	if (!pass &&
- 	    (primary != bus->number || secondary <= bus->number)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0006-mac80211-Fix-a-rwlock-bad-magic-bug.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0006-mac80211-Fix-a-rwlock-bad-magic-bug.patch
deleted file mode 100644
index 28c7073..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0006-mac80211-Fix-a-rwlock-bad-magic-bug.patch
+++ /dev/null
@@ -1,91 +0,0 @@
-From 248cd0d28b536448969faa6151c7865d29801453 Mon Sep 17 00:00:00 2001
-From: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Date: Thu, 9 Feb 2012 19:59:43 +0530
-Subject: [PATCH 06/72] mac80211: Fix a rwlock bad magic bug
-
-commit b57e6b560fc2a2742910ac5ca0eb2c46e45aeac2 upstream.
-
-read_lock(&tpt_trig->trig.leddev_list_lock) is accessed via the path
-ieee80211_open (->) ieee80211_do_open (->) ieee80211_mod_tpt_led_trig
-(->) ieee80211_start_tpt_led_trig (->) tpt_trig_timer before initializing
-it.
-the intilization of this read/write lock happens via the path
-ieee80211_led_init (->) led_trigger_register, but we are doing
-'ieee80211_led_init'  after 'ieeee80211_if_add' where we
-register netdev_ops.
-so we access leddev_list_lock before initializing it and causes the
-following bug in chrome laptops with AR928X cards with the following
-script
-
-while true
-do
-sudo modprobe -v ath9k
-sleep 3
-sudo modprobe -r ath9k
-sleep 3
-done
-
-	BUG: rwlock bad magic on CPU#1, wpa_supplicant/358, f5b9eccc
-	Pid: 358, comm: wpa_supplicant Not tainted 3.0.13 #1
-	Call Trace:
-
-	[<8137b9df>] rwlock_bug+0x3d/0x47
-	[<81179830>] do_raw_read_lock+0x19/0x29
-	[<8137f063>] _raw_read_lock+0xd/0xf
-	[<f9081957>] tpt_trig_timer+0xc3/0x145 [mac80211]
-	[<f9081f3a>] ieee80211_mod_tpt_led_trig+0x152/0x174 [mac80211]
-	[<f9076a3f>] ieee80211_do_open+0x11e/0x42e [mac80211]
-	[<f9075390>] ? ieee80211_check_concurrent_iface+0x26/0x13c [mac80211]
-	[<f9076d97>] ieee80211_open+0x48/0x4c [mac80211]
-	[<812dbed8>] __dev_open+0x82/0xab
-	[<812dc0c9>] __dev_change_flags+0x9c/0x113
-	[<812dc1ae>] dev_change_flags+0x18/0x44
-	[<8132144f>] devinet_ioctl+0x243/0x51a
-	[<81321ba9>] inet_ioctl+0x93/0xac
-	[<812cc951>] sock_ioctl+0x1c6/0x1ea
-	[<812cc78b>] ? might_fault+0x20/0x20
-	[<810b1ebb>] do_vfs_ioctl+0x46e/0x4a2
-	[<810a6ebb>] ? fget_light+0x2f/0x70
-	[<812ce549>] ? sys_recvmsg+0x3e/0x48
-	[<810b1f35>] sys_ioctl+0x46/0x69
-	[<8137fa77>] sysenter_do_call+0x12/0x2
-
-Cc: Gary Morain <gmorain at google.com>
-Cc: Paul Stewart <pstew at google.com>
-Cc: Abhijit Pradhan <abhijit at qca.qualcomm.com>
-Cc: Vasanthakumar Thiagarajan <vthiagar at qca.qualcomm.com>
-Cc: Rajkumar Manoharan <rmanohar at qca.qualcomm.com>
-Acked-by: Johannes Berg <johannes.berg at intel.com>
-Tested-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: Mohammed Shafi Shajakhan <mohammed at qca.qualcomm.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/mac80211/main.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/mac80211/main.c b/net/mac80211/main.c
-index a7536fd..7d9b21d 100644
---- a/net/mac80211/main.c
-+++ b/net/mac80211/main.c
-@@ -885,6 +885,8 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
- 		wiphy_debug(local->hw.wiphy, "Failed to initialize wep: %d\n",
- 			    result);
- 
-+	ieee80211_led_init(local);
-+
- 	rtnl_lock();
- 
- 	result = ieee80211_init_rate_ctrl_alg(local,
-@@ -906,8 +908,6 @@ int ieee80211_register_hw(struct ieee80211_hw *hw)
- 
- 	rtnl_unlock();
- 
--	ieee80211_led_init(local);
--
- 	local->network_latency_notifier.notifier_call =
- 		ieee80211_max_network_latency;
- 	result = pm_qos_add_notifier(PM_QOS_NETWORK_LATENCY,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0007-ipheth-Add-iPhone-4S.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0007-ipheth-Add-iPhone-4S.patch
deleted file mode 100644
index 1c9728d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0007-ipheth-Add-iPhone-4S.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 5a7941eecab396dc077c20e70e8ac3711ce59d8b Mon Sep 17 00:00:00 2001
-From: Tim Gardner <tim.gardner at canonical.com>
-Date: Wed, 15 Feb 2012 07:50:15 +0000
-Subject: [PATCH 07/72] ipheth: Add iPhone 4S
-
-commit 72ba009b8a159e995e40d3b4e5d7d265acead983 upstream.
-
-BugLink: http://bugs.launchpad.net/bugs/900802
-
-Signed-off-by: Till Kamppeter <till.kamppeter at gmail.com>
-Signed-off-by: Tim Gardner <tim.gardner at canonical.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/usb/ipheth.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/net/usb/ipheth.c b/drivers/net/usb/ipheth.c
-index 13c1f04..ad96164 100644
---- a/drivers/net/usb/ipheth.c
-+++ b/drivers/net/usb/ipheth.c
-@@ -60,6 +60,7 @@
- #define USB_PRODUCT_IPHONE_3GS  0x1294
- #define USB_PRODUCT_IPHONE_4	0x1297
- #define USB_PRODUCT_IPHONE_4_VZW 0x129c
-+#define USB_PRODUCT_IPHONE_4S	0x12a0
- 
- #define IPHETH_USBINTF_CLASS    255
- #define IPHETH_USBINTF_SUBCLASS 253
-@@ -103,6 +104,10 @@ static struct usb_device_id ipheth_table[] = {
- 		USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4_VZW,
- 		IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
- 		IPHETH_USBINTF_PROTO) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(
-+		USB_VENDOR_APPLE, USB_PRODUCT_IPHONE_4S,
-+		IPHETH_USBINTF_CLASS, IPHETH_USBINTF_SUBCLASS,
-+		IPHETH_USBINTF_PROTO) },
- 	{ }
- };
- MODULE_DEVICE_TABLE(usb, ipheth_table);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0008-regmap-Fix-cache-defaults-initialization-from-raw-ca.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0008-regmap-Fix-cache-defaults-initialization-from-raw-ca.patch
deleted file mode 100644
index 75a8dfe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0008-regmap-Fix-cache-defaults-initialization-from-raw-ca.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 8aff5c7aa69b29b924063b4424cf5ff5823b3fd1 Mon Sep 17 00:00:00 2001
-From: Lars-Peter Clausen <lars at metafoo.de>
-Date: Wed, 15 Feb 2012 10:23:25 +0100
-Subject: [PATCH 08/72] regmap: Fix cache defaults initialization from raw
- cache defaults
-
-commit 61cddc57dc14a5dffa0921d9a24fd68edbb374ac upstream.
-
-Currently registers with a value of 0 are ignored when initializing the register
-defaults from raw defaults. This worked in the past, because registers without a
-explicit default were assumed to have a default value of 0. This was changed in
-commit b03622a8 ("regmap: Ensure rbtree syncs registers set to zero properly").
-As a result registers, which have a raw default value of 0 are now assumed to
-have no default. This again can result in unnecessary writes when syncing the
-cache. It will also result in unnecessary reads for e.g. the first update
-operation. In the case where readback is not possible this will even let the
-update operation fail, if the register has not been written to before.
-
-So this patch removes the check. Instead it adds a check to ignore raw defaults
-for registers which are volatile, since those registers are not cached.
-
-Signed-off-by: Lars-Peter Clausen <lars at metafoo.de>
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/base/regmap/regcache.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/base/regmap/regcache.c b/drivers/base/regmap/regcache.c
-index 666f6f5..64004b0 100644
---- a/drivers/base/regmap/regcache.c
-+++ b/drivers/base/regmap/regcache.c
-@@ -54,7 +54,7 @@ static int regcache_hw_init(struct regmap *map)
- 	for (count = 0, i = 0; i < map->num_reg_defaults_raw; i++) {
- 		val = regcache_get_val(map->reg_defaults_raw,
- 				       i, map->cache_word_size);
--		if (!val)
-+		if (regmap_volatile(map, i))
- 			continue;
- 		count++;
- 	}
-@@ -69,7 +69,7 @@ static int regcache_hw_init(struct regmap *map)
- 	for (i = 0, j = 0; i < map->num_reg_defaults_raw; i++) {
- 		val = regcache_get_val(map->reg_defaults_raw,
- 				       i, map->cache_word_size);
--		if (!val)
-+		if (regmap_volatile(map, i))
- 			continue;
- 		map->reg_defaults[j].reg = i;
- 		map->reg_defaults[j].def = val;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0009-eCryptfs-Copy-up-lower-inode-attrs-after-setting-low.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0009-eCryptfs-Copy-up-lower-inode-attrs-after-setting-low.patch
deleted file mode 100644
index 194f537..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0009-eCryptfs-Copy-up-lower-inode-attrs-after-setting-low.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From e23009bd78429d8f3fec32720859e754031eab38 Mon Sep 17 00:00:00 2001
-From: Tyler Hicks <tyhicks at canonical.com>
-Date: Tue, 7 Feb 2012 17:55:40 -0600
-Subject: [PATCH 09/72] eCryptfs: Copy up lower inode attrs after setting
- lower xattr
-
-commit 545d680938be1e86a6c5250701ce9abaf360c495 upstream.
-
-After passing through a ->setxattr() call, eCryptfs needs to copy the
-inode attributes from the lower inode to the eCryptfs inode, as they
-may have changed in the lower filesystem's ->setxattr() path.
-
-One example is if an extended attribute containing a POSIX Access
-Control List is being set. The new ACL may cause the lower filesystem to
-modify the mode of the lower inode and the eCryptfs inode would need to
-be updated to reflect the new mode.
-
-https://launchpad.net/bugs/926292
-
-Signed-off-by: Tyler Hicks <tyhicks at canonical.com>
-Reported-by: Sebastien Bacher <seb128 at ubuntu.com>
-Cc: John Johansen <john.johansen at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/ecryptfs/inode.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/ecryptfs/inode.c b/fs/ecryptfs/inode.c
-index d2039ca..af11098 100644
---- a/fs/ecryptfs/inode.c
-+++ b/fs/ecryptfs/inode.c
-@@ -1104,6 +1104,8 @@ ecryptfs_setxattr(struct dentry *dentry, const char *name, const void *value,
- 	}
- 
- 	rc = vfs_setxattr(lower_dentry, name, value, size, flags);
-+	if (!rc)
-+		fsstack_copy_attr_all(dentry->d_inode, lower_dentry->d_inode);
- out:
- 	return rc;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0010-S390-correct-ktime-to-tod-clock-comparator-conversio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0010-S390-correct-ktime-to-tod-clock-comparator-conversio.patch
deleted file mode 100644
index 5189f49..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0010-S390-correct-ktime-to-tod-clock-comparator-conversio.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From d31df13c699dad5e500737b6e298614a760286ad Mon Sep 17 00:00:00 2001
-From: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Date: Fri, 17 Feb 2012 10:29:23 +0100
-Subject: [PATCH 10/72] S390: correct ktime to tod clock comparator conversion
-
-commit cf1eb40f8f5ea12c9e569e7282161fc7f194fd62 upstream.
-
-The conversion of the ktime to a value suitable for the clock comparator
-does not take changes to wall_to_monotonic into account. In fact the
-conversion just needs the boot clock (sched_clock_base_cc) and the
-total_sleep_time.
-
-This is applicable to 3.2+ kernels.
-
-Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/s390/kernel/time.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/arch/s390/kernel/time.c b/arch/s390/kernel/time.c
-index ebbfab3..e03c555 100644
---- a/arch/s390/kernel/time.c
-+++ b/arch/s390/kernel/time.c
-@@ -113,11 +113,14 @@ static void fixup_clock_comparator(unsigned long long delta)
- static int s390_next_ktime(ktime_t expires,
- 			   struct clock_event_device *evt)
- {
-+	struct timespec ts;
- 	u64 nsecs;
- 
--	nsecs = ktime_to_ns(ktime_sub(expires, ktime_get_monotonic_offset()));
-+	ts.tv_sec = ts.tv_nsec = 0;
-+	monotonic_to_bootbased(&ts);
-+	nsecs = ktime_to_ns(ktime_add(timespec_to_ktime(ts), expires));
- 	do_div(nsecs, 125);
--	S390_lowcore.clock_comparator = TOD_UNIX_EPOCH + (nsecs << 9);
-+	S390_lowcore.clock_comparator = sched_clock_base_cc + (nsecs << 9);
- 	set_clock_comparator(S390_lowcore.clock_comparator);
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0011-vfs-fix-d_inode_lookup-dentry-ref-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0011-vfs-fix-d_inode_lookup-dentry-ref-leak.patch
deleted file mode 100644
index 3c9c7f3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0011-vfs-fix-d_inode_lookup-dentry-ref-leak.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From e221415cd0f639fc061e48a8edcfd2658fa6c440 Mon Sep 17 00:00:00 2001
-From: Miklos Szeredi <mszeredi at suse.cz>
-Date: Fri, 3 Feb 2012 14:25:18 +0100
-Subject: [PATCH 11/72] vfs: fix d_inode_lookup() dentry ref leak
-
-commit e188dc02d3a9c911be56eca5aa114fe7e9822d53 upstream.
-
-d_inode_lookup() leaks a dentry reference on IS_DEADDIR().
-
-Signed-off-by: Miklos Szeredi <mszeredi at suse.cz>
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/namei.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/fs/namei.c b/fs/namei.c
-index 5008f01..744e942 100644
---- a/fs/namei.c
-+++ b/fs/namei.c
-@@ -1094,8 +1094,10 @@ static struct dentry *d_inode_lookup(struct dentry *parent, struct dentry *dentr
- 	struct dentry *old;
- 
- 	/* Don't create child dentry for a dead directory. */
--	if (unlikely(IS_DEADDIR(inode)))
-+	if (unlikely(IS_DEADDIR(inode))) {
-+		dput(dentry);
- 		return ERR_PTR(-ENOENT);
-+	}
- 
- 	old = inode->i_op->lookup(inode, dentry, nd);
- 	if (unlikely(old)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0012-ARM-7326-2-PL330-fix-null-pointer-dereference-in-pl3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0012-ARM-7326-2-PL330-fix-null-pointer-dereference-in-pl3.patch
deleted file mode 100644
index 9915387..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0012-ARM-7326-2-PL330-fix-null-pointer-dereference-in-pl3.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From 4dba080e4a963820e5b9a810bdbec72c2e33a5cb Mon Sep 17 00:00:00 2001
-From: Javi Merino <javi.merino at arm.com>
-Date: Wed, 15 Feb 2012 17:36:39 +0100
-Subject: [PATCH 12/72] ARM: 7326/2: PL330: fix null pointer dereference in
- pl330_chan_ctrl()
-
-commit 46e33c606af8e0caeeca374103189663d877c0d6 upstream.
-
-This fixes the thrd->req_running field being accessed before thrd
-is checked for null. The error was introduced in
-
-   abb959f: ARM: 7237/1: PL330: Fix driver freeze
-
-Reference: <1326458191-23492-1-git-send-email-mans.rullgard at linaro.org>
-
-Signed-off-by: Mans Rullgard <mans.rullgard at linaro.org>
-Acked-by: Javi Merino <javi.merino at arm.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/common/pl330.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/common/pl330.c b/arch/arm/common/pl330.c
-index 8d8df74..67abef5 100644
---- a/arch/arm/common/pl330.c
-+++ b/arch/arm/common/pl330.c
-@@ -1496,12 +1496,13 @@ int pl330_chan_ctrl(void *ch_id, enum pl330_chan_op op)
- 	struct pl330_thread *thrd = ch_id;
- 	struct pl330_dmac *pl330;
- 	unsigned long flags;
--	int ret = 0, active = thrd->req_running;
-+	int ret = 0, active;
- 
- 	if (!thrd || thrd->free || thrd->dmac->state == DYING)
- 		return -EINVAL;
- 
- 	pl330 = thrd->dmac;
-+	active = thrd->req_running;
- 
- 	spin_lock_irqsave(&pl330->lock, flags);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0013-ALSA-hda-Fix-redundant-jack-creations-for-cx5051.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0013-ALSA-hda-Fix-redundant-jack-creations-for-cx5051.patch
deleted file mode 100644
index 9ebde0e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0013-ALSA-hda-Fix-redundant-jack-creations-for-cx5051.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From 9db1b1f07b5ebad591e145671313720d4728d2d1 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Wed, 22 Feb 2012 17:02:38 +0100
-Subject: [PATCH 13/72] ALSA: hda - Fix redundant jack creations for cx5051
-
-[Note that since the patch isn't applicable (and unnecessary) to
-3.3-rc, there is no corresponding upstream fix.]
-
-The cx5051 parser calls snd_hda_input_jack_add() in the init callback
-to create and initialize the jack detection instances.  Since the init
-callback is called at each time when the device gets woken up after
-suspend or power-saving mode, the duplicated instances are accumulated
-at each call.  This ends up with the kernel warnings with the too
-large array size.
-
-The fix is simply to move the calls of snd_hda_input_jack_add() into
-the parser section instead of the init callback.
-
-The fix is needed only up to 3.2 kernel, since the HD-audio jack layer
-was redesigned in the 3.3 kernel.
-
-Reported-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Tested-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_conexant.c |   11 ++++++++++-
- 1 file changed, 10 insertions(+), 1 deletion(-)
-
-diff --git a/sound/pci/hda/patch_conexant.c b/sound/pci/hda/patch_conexant.c
-index 7072251..08bad5b 100644
---- a/sound/pci/hda/patch_conexant.c
-+++ b/sound/pci/hda/patch_conexant.c
-@@ -1899,6 +1899,10 @@ static void cxt5051_init_mic_port(struct hda_codec *codec, hda_nid_t nid,
- 	snd_hda_codec_write(codec, nid, 0,
- 			    AC_VERB_SET_UNSOLICITED_ENABLE,
- 			    AC_USRSP_EN | event);
-+}
-+
-+static void cxt5051_init_mic_jack(struct hda_codec *codec, hda_nid_t nid)
-+{
- 	snd_hda_input_jack_add(codec, nid, SND_JACK_MICROPHONE, NULL);
- 	snd_hda_input_jack_report(codec, nid);
- }
-@@ -1916,7 +1920,6 @@ static int cxt5051_init(struct hda_codec *codec)
- 	struct conexant_spec *spec = codec->spec;
- 
- 	conexant_init(codec);
--	conexant_init_jacks(codec);
- 
- 	if (spec->auto_mic & AUTO_MIC_PORTB)
- 		cxt5051_init_mic_port(codec, 0x17, CXT5051_PORTB_EVENT);
-@@ -2037,6 +2040,12 @@ static int patch_cxt5051(struct hda_codec *codec)
- 	if (spec->beep_amp)
- 		snd_hda_attach_beep_device(codec, spec->beep_amp);
- 
-+	conexant_init_jacks(codec);
-+	if (spec->auto_mic & AUTO_MIC_PORTB)
-+		cxt5051_init_mic_jack(codec, 0x17);
-+	if (spec->auto_mic & AUTO_MIC_PORTC)
-+		cxt5051_init_mic_jack(codec, 0x18);
-+
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0014-mmc-core-check-for-zero-length-ioctl-data.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0014-mmc-core-check-for-zero-length-ioctl-data.patch
deleted file mode 100644
index 7f51991..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0014-mmc-core-check-for-zero-length-ioctl-data.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-From 221b6bff35a1b7ae84b83a8ac4ebeaa1ceed8dea Mon Sep 17 00:00:00 2001
-From: Johan Rudholm <johan.rudholm at stericsson.com>
-Date: Wed, 23 Nov 2011 09:05:58 +0100
-Subject: [PATCH 14/72] mmc: core: check for zero length ioctl data
-
-commit 4d6144de8ba263eb3691a737c547e5b2fdc45287 upstream.
-
-If the read or write buffer size associated with the command sent
-through the mmc_blk_ioctl is zero, do not prepare data buffer.
-
-This enables a ioctl(2) call to for instance send a MMC_SWITCH to set
-a byte in the ext_csd.
-
-Signed-off-by: Johan Rudholm <johan.rudholm at stericsson.com>
-Signed-off-by: Chris Ball <cjb at laptop.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/mmc/card/block.c |   82 +++++++++++++++++++++++++---------------------
- 1 file changed, 45 insertions(+), 37 deletions(-)
-
-diff --git a/drivers/mmc/card/block.c b/drivers/mmc/card/block.c
-index 1e0e27c..e15e47d 100644
---- a/drivers/mmc/card/block.c
-+++ b/drivers/mmc/card/block.c
-@@ -266,6 +266,9 @@ static struct mmc_blk_ioc_data *mmc_blk_ioctl_copy_from_user(
- 		goto idata_err;
- 	}
- 
-+	if (!idata->buf_bytes)
-+		return idata;
-+
- 	idata->buf = kzalloc(idata->buf_bytes, GFP_KERNEL);
- 	if (!idata->buf) {
- 		err = -ENOMEM;
-@@ -312,25 +315,6 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
- 	if (IS_ERR(idata))
- 		return PTR_ERR(idata);
- 
--	cmd.opcode = idata->ic.opcode;
--	cmd.arg = idata->ic.arg;
--	cmd.flags = idata->ic.flags;
--
--	data.sg = &sg;
--	data.sg_len = 1;
--	data.blksz = idata->ic.blksz;
--	data.blocks = idata->ic.blocks;
--
--	sg_init_one(data.sg, idata->buf, idata->buf_bytes);
--
--	if (idata->ic.write_flag)
--		data.flags = MMC_DATA_WRITE;
--	else
--		data.flags = MMC_DATA_READ;
--
--	mrq.cmd = &cmd;
--	mrq.data = &data;
--
- 	md = mmc_blk_get(bdev->bd_disk);
- 	if (!md) {
- 		err = -EINVAL;
-@@ -343,6 +327,48 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
- 		goto cmd_done;
- 	}
- 
-+	cmd.opcode = idata->ic.opcode;
-+	cmd.arg = idata->ic.arg;
-+	cmd.flags = idata->ic.flags;
-+
-+	if (idata->buf_bytes) {
-+		data.sg = &sg;
-+		data.sg_len = 1;
-+		data.blksz = idata->ic.blksz;
-+		data.blocks = idata->ic.blocks;
-+
-+		sg_init_one(data.sg, idata->buf, idata->buf_bytes);
-+
-+		if (idata->ic.write_flag)
-+			data.flags = MMC_DATA_WRITE;
-+		else
-+			data.flags = MMC_DATA_READ;
-+
-+		/* data.flags must already be set before doing this. */
-+		mmc_set_data_timeout(&data, card);
-+
-+		/* Allow overriding the timeout_ns for empirical tuning. */
-+		if (idata->ic.data_timeout_ns)
-+			data.timeout_ns = idata->ic.data_timeout_ns;
-+
-+		if ((cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) {
-+			/*
-+			 * Pretend this is a data transfer and rely on the
-+			 * host driver to compute timeout.  When all host
-+			 * drivers support cmd.cmd_timeout for R1B, this
-+			 * can be changed to:
-+			 *
-+			 *     mrq.data = NULL;
-+			 *     cmd.cmd_timeout = idata->ic.cmd_timeout_ms;
-+			 */
-+			data.timeout_ns = idata->ic.cmd_timeout_ms * 1000000;
-+		}
-+
-+		mrq.data = &data;
-+	}
-+
-+	mrq.cmd = &cmd;
-+
- 	mmc_claim_host(card->host);
- 
- 	if (idata->ic.is_acmd) {
-@@ -351,24 +377,6 @@ static int mmc_blk_ioctl_cmd(struct block_device *bdev,
- 			goto cmd_rel_host;
- 	}
- 
--	/* data.flags must already be set before doing this. */
--	mmc_set_data_timeout(&data, card);
--	/* Allow overriding the timeout_ns for empirical tuning. */
--	if (idata->ic.data_timeout_ns)
--		data.timeout_ns = idata->ic.data_timeout_ns;
--
--	if ((cmd.flags & MMC_RSP_R1B) == MMC_RSP_R1B) {
--		/*
--		 * Pretend this is a data transfer and rely on the host driver
--		 * to compute timeout.  When all host drivers support
--		 * cmd.cmd_timeout for R1B, this can be changed to:
--		 *
--		 *     mrq.data = NULL;
--		 *     cmd.cmd_timeout = idata->ic.cmd_timeout_ms;
--		 */
--		data.timeout_ns = idata->ic.cmd_timeout_ms * 1000000;
--	}
--
- 	mmc_wait_for_req(card->host, &mrq);
- 
- 	if (cmd.error) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0015-NFSv4-Fix-an-Oops-in-the-NFSv4-getacl-code.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0015-NFSv4-Fix-an-Oops-in-the-NFSv4-getacl-code.patch
deleted file mode 100644
index 94e5b07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0015-NFSv4-Fix-an-Oops-in-the-NFSv4-getacl-code.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From 7e71440b37ca5b516f37051cd2af18153d795a12 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Fri, 3 Feb 2012 18:30:53 -0500
-Subject: [PATCH 15/72] NFSv4: Fix an Oops in the NFSv4 getacl code
-
-commit 331818f1c468a24e581aedcbe52af799366a9dfe upstream.
-
-Commit bf118a342f10dafe44b14451a1392c3254629a1f (NFSv4: include bitmap
-in nfsv4 get acl data) introduces the 'acl_scratch' page for the case
-where we may need to decode multi-page data. However it fails to take
-into account the fact that the variable may be NULL (for the case where
-we're not doing multi-page decode), and it also attaches it to the
-encoding xdr_stream rather than the decoding one.
-
-The immediate result is an Oops in nfs4_xdr_enc_getacl due to the
-call to page_address() with a NULL page pointer.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Cc: Andy Adamson <andros at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4proc.c       |    8 ++++----
- fs/nfs/nfs4xdr.c        |    5 ++++-
- include/linux/nfs_xdr.h |    2 +-
- 3 files changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 055d702..2ee398a 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -3568,8 +3568,8 @@ static ssize_t __nfs4_get_acl_uncached(struct inode *inode, void *buf, size_t bu
- 	}
- 	if (npages > 1) {
- 		/* for decoding across pages */
--		args.acl_scratch = alloc_page(GFP_KERNEL);
--		if (!args.acl_scratch)
-+		res.acl_scratch = alloc_page(GFP_KERNEL);
-+		if (!res.acl_scratch)
- 			goto out_free;
- 	}
- 	args.acl_len = npages * PAGE_SIZE;
-@@ -3605,8 +3605,8 @@ out_free:
- 	for (i = 0; i < npages; i++)
- 		if (pages[i])
- 			__free_page(pages[i]);
--	if (args.acl_scratch)
--		__free_page(args.acl_scratch);
-+	if (res.acl_scratch)
-+		__free_page(res.acl_scratch);
- 	return ret;
- }
- 
-diff --git a/fs/nfs/nfs4xdr.c b/fs/nfs/nfs4xdr.c
-index dcaf693..68adab4 100644
---- a/fs/nfs/nfs4xdr.c
-+++ b/fs/nfs/nfs4xdr.c
-@@ -2522,7 +2522,6 @@ static void nfs4_xdr_enc_getacl(struct rpc_rqst *req, struct xdr_stream *xdr,
- 
- 	xdr_inline_pages(&req->rq_rcv_buf, replen << 2,
- 		args->acl_pages, args->acl_pgbase, args->acl_len);
--	xdr_set_scratch_buffer(xdr, page_address(args->acl_scratch), PAGE_SIZE);
- 
- 	encode_nops(&hdr);
- }
-@@ -6034,6 +6033,10 @@ nfs4_xdr_dec_getacl(struct rpc_rqst *rqstp, struct xdr_stream *xdr,
- 	struct compound_hdr hdr;
- 	int status;
- 
-+	if (res->acl_scratch != NULL) {
-+		void *p = page_address(res->acl_scratch);
-+		xdr_set_scratch_buffer(xdr, p, PAGE_SIZE);
-+	}
- 	status = decode_compound_hdr(xdr, &hdr);
- 	if (status)
- 		goto out;
-diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
-index 6c898af..41116ab 100644
---- a/include/linux/nfs_xdr.h
-+++ b/include/linux/nfs_xdr.h
-@@ -602,7 +602,6 @@ struct nfs_getaclargs {
- 	size_t				acl_len;
- 	unsigned int			acl_pgbase;
- 	struct page **			acl_pages;
--	struct page *			acl_scratch;
- 	struct nfs4_sequence_args 	seq_args;
- };
- 
-@@ -612,6 +611,7 @@ struct nfs_getaclres {
- 	size_t				acl_len;
- 	size_t				acl_data_offset;
- 	int				acl_flags;
-+	struct page *			acl_scratch;
- 	struct nfs4_sequence_res	seq_res;
- };
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0016-NFSv4-Ensure-we-throw-out-bad-delegation-stateids-on.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0016-NFSv4-Ensure-we-throw-out-bad-delegation-stateids-on.patch
deleted file mode 100644
index 6d887c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0016-NFSv4-Ensure-we-throw-out-bad-delegation-stateids-on.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From c6d894c8625abd1e4d3ff2912d31eb77bc456495 Mon Sep 17 00:00:00 2001
-From: Trond Myklebust <Trond.Myklebust at netapp.com>
-Date: Thu, 9 Feb 2012 15:31:36 -0500
-Subject: [PATCH 16/72] NFSv4: Ensure we throw out bad delegation stateids on
- NFS4ERR_BAD_STATEID
-
-commit b9f9a03150969e4bd9967c20bce67c4de769058f upstream.
-
-To ensure that we don't just reuse the bad delegation when we attempt to
-recover the nfs4_state that received the bad stateid error.
-
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4state.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
-index 6a7107a..a58eed7 100644
---- a/fs/nfs/nfs4state.c
-+++ b/fs/nfs/nfs4state.c
-@@ -1071,6 +1071,8 @@ void nfs4_schedule_stateid_recovery(const struct nfs_server *server, struct nfs4
- {
- 	struct nfs_client *clp = server->nfs_client;
- 
-+	if (test_and_clear_bit(NFS_DELEGATED_STATE, &state->flags))
-+		nfs_async_inode_return_delegation(state->inode, &state->stateid);
- 	nfs4_state_mark_reclaim_nograce(clp, state);
- 	nfs4_schedule_state_manager(clp);
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0017-NFSv4-fix-server_scope-memory-leak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0017-NFSv4-fix-server_scope-memory-leak.patch
deleted file mode 100644
index de4635c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0017-NFSv4-fix-server_scope-memory-leak.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From 57e4348929a3bc5c2cc6a49a92941fe96f23aeec Mon Sep 17 00:00:00 2001
-From: Weston Andros Adamson <dros at netapp.com>
-Date: Thu, 16 Feb 2012 11:17:05 -0500
-Subject: [PATCH 17/72] NFSv4: fix server_scope memory leak
-
-commit abe9a6d57b4544ac208401f9c0a4262814db2be4 upstream.
-
-server_scope would never be freed if nfs4_check_cl_exchange_flags() returned
-non-zero
-
-Signed-off-by: Weston Andros Adamson <dros at netapp.com>
-Signed-off-by: Trond Myklebust <Trond.Myklebust at netapp.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/nfs/nfs4proc.c |   15 +++++++++------
- 1 file changed, 9 insertions(+), 6 deletions(-)
-
-diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c
-index 2ee398a..e527030 100644
---- a/fs/nfs/nfs4proc.c
-+++ b/fs/nfs/nfs4proc.c
-@@ -4876,8 +4876,10 @@ int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
- 				clp->cl_rpcclient->cl_auth->au_flavor);
- 
- 	res.server_scope = kzalloc(sizeof(struct server_scope), GFP_KERNEL);
--	if (unlikely(!res.server_scope))
--		return -ENOMEM;
-+	if (unlikely(!res.server_scope)) {
-+		status = -ENOMEM;
-+		goto out;
-+	}
- 
- 	status = rpc_call_sync(clp->cl_rpcclient, &msg, RPC_TASK_TIMEOUT);
- 	if (!status)
-@@ -4894,12 +4896,13 @@ int nfs4_proc_exchange_id(struct nfs_client *clp, struct rpc_cred *cred)
- 			clp->server_scope = NULL;
- 		}
- 
--		if (!clp->server_scope)
-+		if (!clp->server_scope) {
- 			clp->server_scope = res.server_scope;
--		else
--			kfree(res.server_scope);
-+			goto out;
-+		}
- 	}
--
-+	kfree(res.server_scope);
-+out:
- 	dprintk("<-- %s status= %d\n", __func__, status);
- 	return status;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0018-ARM-7321-1-cache-v7-Disable-preemption-when-reading-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0018-ARM-7321-1-cache-v7-Disable-preemption-when-reading-.patch
deleted file mode 100644
index c9f56a5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0018-ARM-7321-1-cache-v7-Disable-preemption-when-reading-.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From f086eff650732d3431582859050fdf8b50267163 Mon Sep 17 00:00:00 2001
-From: Stephen Boyd <sboyd at codeaurora.org>
-Date: Tue, 7 Feb 2012 19:42:07 +0100
-Subject: [PATCH 18/72] ARM: 7321/1: cache-v7: Disable preemption when reading
- CCSIDR
-
-commit b46c0f74657d1fe1c1b0c1452631cc38a9e6987f upstream.
-
-armv7's flush_cache_all() flushes caches via set/way. To
-determine the cache attributes (line size, number of sets,
-etc.) the assembly first writes the CSSELR register to select a
-cache level and then reads the CCSIDR register. The CSSELR register
-is banked per-cpu and is used to determine which cache level CCSIDR
-reads. If the task is migrated between when the CSSELR is written and
-the CCSIDR is read the CCSIDR value may be for an unexpected cache
-level (for example L1 instead of L2) and incorrect cache flushing
-could occur.
-
-Disable interrupts across the write and read so that the correct
-cache attributes are read and used for the cache flushing
-routine. We disable interrupts instead of disabling preemption
-because the critical section is only 3 instructions and we want
-to call v7_dcache_flush_all from __v7_setup which doesn't have a
-full kernel stack with a struct thread_info.
-
-This fixes a problem we see in scm_call() when flush_cache_all()
-is called from preemptible context and sometimes the L2 cache is
-not properly flushed out.
-
-Signed-off-by: Stephen Boyd <sboyd at codeaurora.org>
-Acked-by: Catalin Marinas <catalin.marinas at arm.com>
-Reviewed-by: Nicolas Pitre <nico at linaro.org>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/mm/cache-v7.S |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
-index 07c4bc8..7a24d39 100644
---- a/arch/arm/mm/cache-v7.S
-+++ b/arch/arm/mm/cache-v7.S
-@@ -54,9 +54,15 @@ loop1:
- 	and	r1, r1, #7			@ mask of the bits for current cache only
- 	cmp	r1, #2				@ see what cache we have at this level
- 	blt	skip				@ skip if no cache, or just i-cache
-+#ifdef CONFIG_PREEMPT
-+	save_and_disable_irqs r9		@ make cssr&csidr read atomic
-+#endif
- 	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
- 	isb					@ isb to sych the new cssr&csidr
- 	mrc	p15, 1, r1, c0, c0, 0		@ read the new csidr
-+#ifdef CONFIG_PREEMPT
-+	restore_irqs_notrace r9
-+#endif
- 	and	r2, r1, #7			@ extract the length of the cache lines
- 	add	r2, r2, #4			@ add 4 (line length offset)
- 	ldr	r4, =0x3ff
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0019-ARM-7325-1-fix-v7-boot-with-lockdep-enabled.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0019-ARM-7325-1-fix-v7-boot-with-lockdep-enabled.patch
deleted file mode 100644
index 4d53c09..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0019-ARM-7325-1-fix-v7-boot-with-lockdep-enabled.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 7e7c42f798163e04171f7d0ea97cb9f759236191 Mon Sep 17 00:00:00 2001
-From: Rabin Vincent <rabin at rab.in>
-Date: Wed, 15 Feb 2012 16:01:42 +0100
-Subject: [PATCH 19/72] ARM: 7325/1: fix v7 boot with lockdep enabled
-
-commit 8e43a905dd574f54c5715d978318290ceafbe275 upstream.
-
-Bootup with lockdep enabled has been broken on v7 since b46c0f74657d
-("ARM: 7321/1: cache-v7: Disable preemption when reading CCSIDR").
-
-This is because v7_setup (which is called very early during boot) calls
-v7_flush_dcache_all, and the save_and_disable_irqs added by that patch
-ends up attempting to call into lockdep C code (trace_hardirqs_off())
-when we are in no position to execute it (no stack, MMU off).
-
-Fix this by using a notrace variant of save_and_disable_irqs.  The code
-already uses the notrace variant of restore_irqs.
-
-Reviewed-by: Nicolas Pitre <nico at linaro.org>
-Acked-by: Stephen Boyd <sboyd at codeaurora.org>
-Cc: Catalin Marinas <catalin.marinas at arm.com>
-Signed-off-by: Rabin Vincent <rabin at rab.in>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/arm/include/asm/assembler.h |    5 +++++
- arch/arm/mm/cache-v7.S           |    2 +-
- 2 files changed, 6 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/include/asm/assembler.h b/arch/arm/include/asm/assembler.h
-index 29035e8..7bb8bf9 100644
---- a/arch/arm/include/asm/assembler.h
-+++ b/arch/arm/include/asm/assembler.h
-@@ -137,6 +137,11 @@
- 	disable_irq
- 	.endm
- 
-+	.macro	save_and_disable_irqs_notrace, oldcpsr
-+	mrs	\oldcpsr, cpsr
-+	disable_irq_notrace
-+	.endm
-+
- /*
-  * Restore interrupt state previously stored in a register.  We don't
-  * guarantee that this will preserve the flags.
-diff --git a/arch/arm/mm/cache-v7.S b/arch/arm/mm/cache-v7.S
-index 7a24d39..a655d3d 100644
---- a/arch/arm/mm/cache-v7.S
-+++ b/arch/arm/mm/cache-v7.S
-@@ -55,7 +55,7 @@ loop1:
- 	cmp	r1, #2				@ see what cache we have at this level
- 	blt	skip				@ skip if no cache, or just i-cache
- #ifdef CONFIG_PREEMPT
--	save_and_disable_irqs r9		@ make cssr&csidr read atomic
-+	save_and_disable_irqs_notrace r9	@ make cssr&csidr read atomic
- #endif
- 	mcr	p15, 2, r10, c0, c0, 0		@ select current cache level in cssr
- 	isb					@ isb to sych the new cssr&csidr
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0020-3c59x-shorten-timer-period-for-slave-devices.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0020-3c59x-shorten-timer-period-for-slave-devices.patch
deleted file mode 100644
index 5c78e5e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0020-3c59x-shorten-timer-period-for-slave-devices.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 5d1faee3629742c8526b2b27c5066a90e1b3f45c Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 14 Feb 2012 10:27:09 +0000
-Subject: [PATCH 20/72] 3c59x: shorten timer period for slave devices
-
-[ Upstream commit 3013dc0cceb9baaf25d5624034eeaa259bf99004 ]
-
-Jean Delvare reported bonding on top of 3c59x adapters was not detecting
-network cable removal fast enough.
-
-3c59x indeed uses a 60 seconds timer to check link status if carrier is
-on, and 5 seconds if carrier is off.
-
-This patch reduces timer period to 5 seconds if device is a bonding
-slave.
-
-Reported-by: Jean Delvare <jdelvare at suse.de>
-Acked-by: Jean Delvare <jdelvare at suse.de>
-Acked-by: Steffen Klassert <steffen.klassert at secunet.com>
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/3com/3c59x.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/ethernet/3com/3c59x.c b/drivers/net/ethernet/3com/3c59x.c
-index b42c06b..e0c5529 100644
---- a/drivers/net/ethernet/3com/3c59x.c
-+++ b/drivers/net/ethernet/3com/3c59x.c
-@@ -1842,7 +1842,7 @@ vortex_timer(unsigned long data)
- 		ok = 1;
- 	}
- 
--	if (!netif_carrier_ok(dev))
-+	if (dev->flags & IFF_SLAVE || !netif_carrier_ok(dev))
- 		next_tick = 5*HZ;
- 
- 	if (vp->medialock)
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0021-net-Don-t-proxy-arp-respond-if-iif-rt-dst.dev-if-pri.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0021-net-Don-t-proxy-arp-respond-if-iif-rt-dst.dev-if-pri.patch
deleted file mode 100644
index 7675b02..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0021-net-Don-t-proxy-arp-respond-if-iif-rt-dst.dev-if-pri.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 0a931ee27fd34630d00daa779ce846e9f2e26ec8 Mon Sep 17 00:00:00 2001
-From: Thomas Graf <tgraf at suug.ch>
-Date: Fri, 10 Feb 2012 04:07:11 +0000
-Subject: [PATCH 21/72] net: Don't proxy arp respond if iif == rt->dst.dev if
- private VLAN is disabled
-
-[ Upstream commit 70620c46ac2b45c24b0f22002fdf5ddd1f7daf81 ]
-
-Commit 653241 (net: RFC3069, private VLAN proxy arp support) changed
-the behavior of arp proxy to send arp replies back out on the interface
-the request came in even if the private VLAN feature is disabled.
-
-Previously we checked rt->dst.dev != skb->dev for in scenarios, when
-proxy arp is enabled on for the netdevice and also when individual proxy
-neighbour entries have been added.
-
-This patch adds the check back for the pneigh_lookup() scenario.
-
-Signed-off-by: Thomas Graf <tgraf at suug.ch>
-Acked-by: Jesper Dangaard Brouer <hawk at comx.dk>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/arp.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/net/ipv4/arp.c b/net/ipv4/arp.c
-index 96a164a..59a7041 100644
---- a/net/ipv4/arp.c
-+++ b/net/ipv4/arp.c
-@@ -867,7 +867,8 @@ static int arp_process(struct sk_buff *skb)
- 			if (addr_type == RTN_UNICAST  &&
- 			    (arp_fwd_proxy(in_dev, dev, rt) ||
- 			     arp_fwd_pvlan(in_dev, dev, rt, sip, tip) ||
--			     pneigh_lookup(&arp_tbl, net, &tip, dev, 0))) {
-+			     (rt->dst.dev != dev &&
-+			      pneigh_lookup(&arp_tbl, net, &tip, dev, 0)))) {
- 				n = neigh_event_ns(&arp_tbl, sha, &sip, dev);
- 				if (n)
- 					neigh_release(n);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0022-netpoll-netpoll_poll_dev-should-access-dev-flags.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0022-netpoll-netpoll_poll_dev-should-access-dev-flags.patch
deleted file mode 100644
index 41e613d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0022-netpoll-netpoll_poll_dev-should-access-dev-flags.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 005c48bb39dcfbaf47ce8f433af59c8b47976fd7 Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Tue, 14 Feb 2012 10:11:59 +0000
-Subject: [PATCH 22/72] netpoll: netpoll_poll_dev() should access dev->flags
-
-[ Upstream commit 58e05f357a039a94aa36475f8c110256f693a239 ]
-
-commit 5a698af53f (bond: service netpoll arp queue on master device)
-tested IFF_SLAVE flag against dev->priv_flags instead of dev->flags
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Cc: WANG Cong <amwang at redhat.com>
-Acked-by: Neil Horman <nhorman at tuxdriver.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/netpoll.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/core/netpoll.c b/net/core/netpoll.c
-index 5d4d896..ab0633f 100644
---- a/net/core/netpoll.c
-+++ b/net/core/netpoll.c
-@@ -194,7 +194,7 @@ static void netpoll_poll_dev(struct net_device *dev)
- 
- 	poll_napi(dev);
- 
--	if (dev->priv_flags & IFF_SLAVE) {
-+	if (dev->flags & IFF_SLAVE) {
- 		if (dev->npinfo) {
- 			struct net_device *bond_dev = dev->master;
- 			struct sk_buff *skb;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0023-net_sched-Bug-in-netem-reordering.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0023-net_sched-Bug-in-netem-reordering.patch
deleted file mode 100644
index 85666ce..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0023-net_sched-Bug-in-netem-reordering.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 1f28da1577ca5490acce9f710ec9bc1c73e74ce9 Mon Sep 17 00:00:00 2001
-From: Hagen Paul Pfeifer <hagen at jauu.net>
-Date: Wed, 4 Jan 2012 17:35:26 +0000
-Subject: [PATCH 23/72] net_sched: Bug in netem reordering
-
-[ Upstream commit eb10192447370f19a215a8c2749332afa1199d46 ]
-
-Not now, but it looks you are correct. q->qdisc is NULL until another
-additional qdisc is attached (beside tfifo). See 50612537e9ab2969312.
-The following patch should work.
-
-From: Hagen Paul Pfeifer <hagen at jauu.net>
-
-netem: catch NULL pointer by updating the real qdisc statistic
-
-Reported-by: Vijay Subramanian <subramanian.vijay at gmail.com>
-Signed-off-by: Hagen Paul Pfeifer <hagen at jauu.net>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/sched/sch_netem.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
-index a4ab207..fd34012 100644
---- a/net/sched/sch_netem.c
-+++ b/net/sched/sch_netem.c
-@@ -383,8 +383,8 @@ static int netem_enqueue(struct sk_buff *skb, struct Qdisc *sch)
- 		q->counter = 0;
- 
- 		__skb_queue_head(&q->qdisc->q, skb);
--		q->qdisc->qstats.backlog += qdisc_pkt_len(skb);
--		q->qdisc->qstats.requeues++;
-+		sch->qstats.backlog += qdisc_pkt_len(skb);
-+		sch->qstats.requeues++;
- 		ret = NET_XMIT_SUCCESS;
- 	}
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0024-veth-Enforce-minimum-size-of-VETH_INFO_PEER.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0024-veth-Enforce-minimum-size-of-VETH_INFO_PEER.patch
deleted file mode 100644
index 25f4252..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0024-veth-Enforce-minimum-size-of-VETH_INFO_PEER.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 29c5e80570c2f6a8715e9a0ecb45346433c1b364 Mon Sep 17 00:00:00 2001
-From: Hagen Paul Pfeifer <hagen at jauu.net>
-Date: Wed, 15 Feb 2012 04:09:46 +0000
-Subject: [PATCH 24/72] veth: Enforce minimum size of VETH_INFO_PEER
-
-[ Upstream commit 237114384ab22c174ec4641e809f8e6cbcfce774 ]
-
-VETH_INFO_PEER carries struct ifinfomsg plus optional IFLA
-attributes. A minimal size of sizeof(struct ifinfomsg) must be
-enforced or we may risk accessing that struct beyond the limits
-of the netlink message.
-
-Signed-off-by: Thomas Graf <tgraf at suug.ch>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/veth.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/veth.c b/drivers/net/veth.c
-index ef883e9..b907398 100644
---- a/drivers/net/veth.c
-+++ b/drivers/net/veth.c
-@@ -423,7 +423,9 @@ static void veth_dellink(struct net_device *dev, struct list_head *head)
- 	unregister_netdevice_queue(peer, head);
- }
- 
--static const struct nla_policy veth_policy[VETH_INFO_MAX + 1];
-+static const struct nla_policy veth_policy[VETH_INFO_MAX + 1] = {
-+	[VETH_INFO_PEER]	= { .len = sizeof(struct ifinfomsg) },
-+};
- 
- static struct rtnl_link_ops veth_link_ops = {
- 	.kind		= DRV_NAME,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0025-via-velocity-S3-resume-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0025-via-velocity-S3-resume-fix.patch
deleted file mode 100644
index bda0299..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0025-via-velocity-S3-resume-fix.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From aed7404a082cb23adaabc26efce659523e03ca42 Mon Sep 17 00:00:00 2001
-From: David Lv <DavidLv at viatech.com.cn>
-Date: Sat, 4 Feb 2012 23:22:26 +0000
-Subject: [PATCH 25/72] via-velocity: S3 resume fix.
-
-[ Upstream commit b530b1930bbd9d005345133f0ff0c556d2a52b19 ]
-
-Initially diagnosed on Ubuntu 11.04 with kernel 2.6.38.
-
-velocity_close is not called during a suspend / resume cycle in this
-driver and it has no business playing directly with power states.
-
-Signed-off-by: David Lv <DavidLv at viatech.com.cn>
-Acked-by: Francois Romieu <romieu at fr.zoreil.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/via/via-velocity.c |    3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/via/via-velocity.c b/drivers/net/ethernet/via/via-velocity.c
-index 4535d7c..e015a57 100644
---- a/drivers/net/ethernet/via/via-velocity.c
-+++ b/drivers/net/ethernet/via/via-velocity.c
-@@ -2489,9 +2489,6 @@ static int velocity_close(struct net_device *dev)
- 	if (dev->irq != 0)
- 		free_irq(dev->irq, dev);
- 
--	/* Power down the chip */
--	pci_set_power_state(vptr->pdev, PCI_D3hot);
--
- 	velocity_free_rings(vptr);
- 
- 	vptr->flags &= (~VELOCITY_FLAGS_OPENED);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0026-ipv4-reset-flowi-parameters-on-route-connect.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0026-ipv4-reset-flowi-parameters-on-route-connect.patch
deleted file mode 100644
index cdb544b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0026-ipv4-reset-flowi-parameters-on-route-connect.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From 1540d4bf4ba46cb59904011104f2bb4c35164433 Mon Sep 17 00:00:00 2001
-From: Julian Anastasov <ja at ssi.bg>
-Date: Sat, 4 Feb 2012 13:04:46 +0000
-Subject: [PATCH 26/72] ipv4: reset flowi parameters on route connect
-
-[ Upstream commit e6b45241c57a83197e5de9166b3b0d32ac562609 ]
-
-Eric Dumazet found that commit 813b3b5db83
-(ipv4: Use caller's on-stack flowi as-is in output
-route lookups.) that comes in 3.0 added a regression.
-The problem appears to be that resulting flowi4_oif is
-used incorrectly as input parameter to some routing lookups.
-The result is that when connecting to local port without
-listener if the IP address that is used is not on a loopback
-interface we incorrectly assign RTN_UNICAST to the output
-route because no route is matched by oif=lo. The RST packet
-can not be sent immediately by tcp_v4_send_reset because
-it expects RTN_LOCAL.
-
-	So, change ip_route_connect and ip_route_newports to
-update the flowi4 fields that are input parameters because
-we do not want unnecessary binding to oif.
-
-	To make it clear what are the input parameters that
-can be modified during lookup and to show which fields of
-floiw4 are reused add a new function to update the flowi4
-structure: flowi4_update_output.
-
-Thanks to Yurij M. Plotnikov for providing a bug report including a
-program to reproduce the problem.
-
-Thanks to Eric Dumazet for tracking the problem down to
-tcp_v4_send_reset and providing initial fix.
-
-Reported-by: Yurij M. Plotnikov <Yurij.Plotnikov at oktetlabs.ru>
-Signed-off-by: Julian Anastasov <ja at ssi.bg>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/net/flow.h  |   10 ++++++++++
- include/net/route.h |    4 ++++
- 2 files changed, 14 insertions(+)
-
-diff --git a/include/net/flow.h b/include/net/flow.h
-index 57f15a7..2a7eefd 100644
---- a/include/net/flow.h
-+++ b/include/net/flow.h
-@@ -90,6 +90,16 @@ static inline void flowi4_init_output(struct flowi4 *fl4, int oif,
- 	fl4->fl4_dport = dport;
- 	fl4->fl4_sport = sport;
- }
-+
-+/* Reset some input parameters after previous lookup */
-+static inline void flowi4_update_output(struct flowi4 *fl4, int oif, __u8 tos,
-+					__be32 daddr, __be32 saddr)
-+{
-+	fl4->flowi4_oif = oif;
-+	fl4->flowi4_tos = tos;
-+	fl4->daddr = daddr;
-+	fl4->saddr = saddr;
-+}
- 				      
- 
- struct flowi6 {
-diff --git a/include/net/route.h b/include/net/route.h
-index 91855d1..b1c0d5b 100644
---- a/include/net/route.h
-+++ b/include/net/route.h
-@@ -270,6 +270,7 @@ static inline struct rtable *ip_route_connect(struct flowi4 *fl4,
- 		if (IS_ERR(rt))
- 			return rt;
- 		ip_rt_put(rt);
-+		flowi4_update_output(fl4, oif, tos, fl4->daddr, fl4->saddr);
- 	}
- 	security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
- 	return ip_route_output_flow(net, fl4, sk);
-@@ -284,6 +285,9 @@ static inline struct rtable *ip_route_newports(struct flowi4 *fl4, struct rtable
- 		fl4->fl4_dport = dport;
- 		fl4->fl4_sport = sport;
- 		ip_rt_put(rt);
-+		flowi4_update_output(fl4, sk->sk_bound_dev_if,
-+				     RT_CONN_FLAGS(sk), fl4->daddr,
-+				     fl4->saddr);
- 		security_sk_classify_flow(sk, flowi4_to_flowi(fl4));
- 		return ip_route_output_flow(sock_net(sk), fl4, sk);
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0027-tcp_v4_send_reset-binding-oif-to-iif-in-no-sock-case.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0027-tcp_v4_send_reset-binding-oif-to-iif-in-no-sock-case.patch
deleted file mode 100644
index ea6e69a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0027-tcp_v4_send_reset-binding-oif-to-iif-in-no-sock-case.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 6843bf164d1de749e2998cfc5c2291dc86523e77 Mon Sep 17 00:00:00 2001
-From: Shawn Lu <shawn.lu at ericsson.com>
-Date: Sat, 4 Feb 2012 12:38:09 +0000
-Subject: [PATCH 27/72] tcp_v4_send_reset: binding oif to iif in no sock case
-
-[ Upstream commit e2446eaab5585555a38ea0df4e01ff313dbb4ac9 ]
-
-Binding RST packet outgoing interface to incoming interface
-for tcp v4 when there is no socket associate with it.
-when sk is not NULL, using sk->sk_bound_dev_if instead.
-(suggested by Eric Dumazet).
-
-This has few benefits:
-1. tcp_v6_send_reset already did that.
-2. This helps tcp connect with SO_BINDTODEVICE set. When
-connection is lost, we still able to sending out RST using
-same interface.
-3. we are sending reply, it is most likely to be succeed
-if iif is used
-
-Signed-off-by: Shawn Lu <shawn.lu at ericsson.com>
-Acked-by: Eric Dumazet <eric.dumazet at gmail.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_ipv4.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/net/ipv4/tcp_ipv4.c b/net/ipv4/tcp_ipv4.c
-index c89e354..eb90aa8 100644
---- a/net/ipv4/tcp_ipv4.c
-+++ b/net/ipv4/tcp_ipv4.c
-@@ -650,6 +650,11 @@ static void tcp_v4_send_reset(struct sock *sk, struct sk_buff *skb)
- 				      arg.iov[0].iov_len, IPPROTO_TCP, 0);
- 	arg.csumoffset = offsetof(struct tcphdr, check) / 2;
- 	arg.flags = (sk && inet_sk(sk)->transparent) ? IP_REPLY_ARG_NOSRCCHECK : 0;
-+	/* When socket is gone, all binding information is lost.
-+	 * routing might fail in this case. using iif for oif to
-+	 * make sure we can deliver it
-+	 */
-+	arg.bound_dev_if = sk ? sk->sk_bound_dev_if : inet_iif(skb);
- 
- 	net = dev_net(skb_dst(skb)->dev);
- 	arg.tos = ip_hdr(skb)->tos;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0028-ipv4-Fix-wrong-order-of-ip_rt_get_source-and-update-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0028-ipv4-Fix-wrong-order-of-ip_rt_get_source-and-update-.patch
deleted file mode 100644
index 2a75ee2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0028-ipv4-Fix-wrong-order-of-ip_rt_get_source-and-update-.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 3ffbc3ee4b041567cb24e98f9eb7590baaa1b39f Mon Sep 17 00:00:00 2001
-From: Li Wei <lw at cn.fujitsu.com>
-Date: Thu, 9 Feb 2012 21:15:25 +0000
-Subject: [PATCH 28/72] ipv4: Fix wrong order of ip_rt_get_source() and update
- iph->daddr.
-
-[ Upstream commit 5dc7883f2a7c25f8df40d7479687153558cd531b ]
-
-This patch fix a bug which introduced by commit ac8a4810 (ipv4: Save
-nexthop address of LSRR/SSRR option to IPCB.).In that patch, we saved
-the nexthop of SRR in ip_option->nexthop and update iph->daddr until
-we get to ip_forward_options(), but we need to update it before
-ip_rt_get_source(), otherwise we may get a wrong src.
-
-Signed-off-by: Li Wei <lw at cn.fujitsu.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/ip_options.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/ipv4/ip_options.c b/net/ipv4/ip_options.c
-index 1e60f76..42dd1a9 100644
---- a/net/ipv4/ip_options.c
-+++ b/net/ipv4/ip_options.c
-@@ -573,8 +573,8 @@ void ip_forward_options(struct sk_buff *skb)
- 		}
- 		if (srrptr + 3 <= srrspace) {
- 			opt->is_changed = 1;
--			ip_rt_get_source(&optptr[srrptr-1], skb, rt);
- 			ip_hdr(skb)->daddr = opt->nexthop;
-+			ip_rt_get_source(&optptr[srrptr-1], skb, rt);
- 			optptr[2] = srrptr+4;
- 		} else if (net_ratelimit())
- 			printk(KERN_CRIT "ip_forward(): Argh! Destination lost!\n");
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0029-net-Make-qdisc_skb_cb-upper-size-bound-explicit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0029-net-Make-qdisc_skb_cb-upper-size-bound-explicit.patch
deleted file mode 100644
index 9e36a0b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0029-net-Make-qdisc_skb_cb-upper-size-bound-explicit.patch
+++ /dev/null
@@ -1,90 +0,0 @@
-From b17cba61819b25694b3179e250aa442ecb191d83 Mon Sep 17 00:00:00 2001
-From: "David S. Miller" <davem at davemloft.net>
-Date: Mon, 6 Feb 2012 15:14:37 -0500
-Subject: [PATCH 29/72] net: Make qdisc_skb_cb upper size bound explicit.
-
-[ Upstream commit 16bda13d90c8d5da243e2cfa1677e62ecce26860 ]
-
-Just like skb->cb[], so that qdisc_skb_cb can be encapsulated inside
-of other data structures.
-
-This is intended to be used by IPoIB so that it can remember
-addressing information stored at hard_header_ops->create() time that
-it can fetch when the packet gets to the transmit routine.
-
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/net/sch_generic.h |    9 ++++++++-
- net/sched/sch_choke.c     |    3 +--
- net/sched/sch_netem.c     |    3 +--
- net/sched/sch_sfb.c       |    3 +--
- 4 files changed, 11 insertions(+), 7 deletions(-)
-
-diff --git a/include/net/sch_generic.h b/include/net/sch_generic.h
-index f6bb08b..55ce96b 100644
---- a/include/net/sch_generic.h
-+++ b/include/net/sch_generic.h
-@@ -220,9 +220,16 @@ struct tcf_proto {
- 
- struct qdisc_skb_cb {
- 	unsigned int		pkt_len;
--	long			data[];
-+	unsigned char		data[24];
- };
- 
-+static inline void qdisc_cb_private_validate(const struct sk_buff *skb, int sz)
-+{
-+	struct qdisc_skb_cb *qcb;
-+	BUILD_BUG_ON(sizeof(skb->cb) < sizeof(unsigned int) + sz);
-+	BUILD_BUG_ON(sizeof(qcb->data) < sz);
-+}
-+
- static inline int qdisc_qlen(const struct Qdisc *q)
- {
- 	return q->q.qlen;
-diff --git a/net/sched/sch_choke.c b/net/sched/sch_choke.c
-index 3422b25..081ffb9 100644
---- a/net/sched/sch_choke.c
-+++ b/net/sched/sch_choke.c
-@@ -225,8 +225,7 @@ struct choke_skb_cb {
- 
- static inline struct choke_skb_cb *choke_skb_cb(const struct sk_buff *skb)
- {
--	BUILD_BUG_ON(sizeof(skb->cb) <
--		sizeof(struct qdisc_skb_cb) + sizeof(struct choke_skb_cb));
-+	qdisc_cb_private_validate(skb, sizeof(struct choke_skb_cb));
- 	return (struct choke_skb_cb *)qdisc_skb_cb(skb)->data;
- }
- 
-diff --git a/net/sched/sch_netem.c b/net/sched/sch_netem.c
-index fd34012..7801b15 100644
---- a/net/sched/sch_netem.c
-+++ b/net/sched/sch_netem.c
-@@ -118,8 +118,7 @@ struct netem_skb_cb {
- 
- static inline struct netem_skb_cb *netem_skb_cb(struct sk_buff *skb)
- {
--	BUILD_BUG_ON(sizeof(skb->cb) <
--		sizeof(struct qdisc_skb_cb) + sizeof(struct netem_skb_cb));
-+	qdisc_cb_private_validate(skb, sizeof(struct netem_skb_cb));
- 	return (struct netem_skb_cb *)qdisc_skb_cb(skb)->data;
- }
- 
-diff --git a/net/sched/sch_sfb.c b/net/sched/sch_sfb.c
-index e83c272..17859ea 100644
---- a/net/sched/sch_sfb.c
-+++ b/net/sched/sch_sfb.c
-@@ -93,8 +93,7 @@ struct sfb_skb_cb {
- 
- static inline struct sfb_skb_cb *sfb_skb_cb(const struct sk_buff *skb)
- {
--	BUILD_BUG_ON(sizeof(skb->cb) <
--		sizeof(struct qdisc_skb_cb) + sizeof(struct sfb_skb_cb));
-+	qdisc_cb_private_validate(skb, sizeof(struct sfb_skb_cb));
- 	return (struct sfb_skb_cb *)qdisc_skb_cb(skb)->data;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0030-IPoIB-Stop-lying-about-hard_header_len-and-use-skb-c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0030-IPoIB-Stop-lying-about-hard_header_len-and-use-skb-c.patch
deleted file mode 100644
index 813fe53..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0030-IPoIB-Stop-lying-about-hard_header_len-and-use-skb-c.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From a37d6fc330e71aba8579662b09722796306cd846 Mon Sep 17 00:00:00 2001
-From: Roland Dreier <roland at purestorage.com>
-Date: Tue, 7 Feb 2012 14:51:21 +0000
-Subject: [PATCH 30/72] IPoIB: Stop lying about hard_header_len and use
- skb->cb to stash LL addresses
-
-[ Upstream commit 936d7de3d736e0737542641269436f4b5968e9ef ]
-
-Commit a0417fa3a18a ("net: Make qdisc_skb_cb upper size bound
-explicit.") made it possible for a netdev driver to use skb->cb
-between its header_ops.create method and its .ndo_start_xmit
-method.  Use this in ipoib_hard_header() to stash away the LL address
-(GID + QPN), instead of the "ipoib_pseudoheader" hack.  This allows
-IPoIB to stop lying about its hard_header_len, which will let us fix
-the L2 check for GRO.
-
-Signed-off-by: Roland Dreier <roland at purestorage.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/infiniband/ulp/ipoib/ipoib.h           |    6 ++-
- drivers/infiniband/ulp/ipoib/ipoib_main.c      |   55 ++++++++----------------
- drivers/infiniband/ulp/ipoib/ipoib_multicast.c |    9 +---
- 3 files changed, 24 insertions(+), 46 deletions(-)
-
-diff --git a/drivers/infiniband/ulp/ipoib/ipoib.h b/drivers/infiniband/ulp/ipoib/ipoib.h
-index b3cc1e0..86df632 100644
---- a/drivers/infiniband/ulp/ipoib/ipoib.h
-+++ b/drivers/infiniband/ulp/ipoib/ipoib.h
-@@ -44,6 +44,7 @@
- #include <linux/mutex.h>
- 
- #include <net/neighbour.h>
-+#include <net/sch_generic.h>
- 
- #include <linux/atomic.h>
- 
-@@ -117,8 +118,9 @@ struct ipoib_header {
- 	u16	reserved;
- };
- 
--struct ipoib_pseudoheader {
--	u8  hwaddr[INFINIBAND_ALEN];
-+struct ipoib_cb {
-+	struct qdisc_skb_cb	qdisc_cb;
-+	u8			hwaddr[INFINIBAND_ALEN];
- };
- 
- /* Used for all multicast joins (broadcast, IPv4 mcast and IPv6 mcast) */
-diff --git a/drivers/infiniband/ulp/ipoib/ipoib_main.c b/drivers/infiniband/ulp/ipoib/ipoib_main.c
-index 83695b4..fe2fdbb 100644
---- a/drivers/infiniband/ulp/ipoib/ipoib_main.c
-+++ b/drivers/infiniband/ulp/ipoib/ipoib_main.c
-@@ -658,7 +658,7 @@ static void ipoib_path_lookup(struct sk_buff *skb, struct net_device *dev)
- }
- 
- static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
--			     struct ipoib_pseudoheader *phdr)
-+			     struct ipoib_cb *cb)
- {
- 	struct ipoib_dev_priv *priv = netdev_priv(dev);
- 	struct ipoib_path *path;
-@@ -666,17 +666,15 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
- 
- 	spin_lock_irqsave(&priv->lock, flags);
- 
--	path = __path_find(dev, phdr->hwaddr + 4);
-+	path = __path_find(dev, cb->hwaddr + 4);
- 	if (!path || !path->valid) {
- 		int new_path = 0;
- 
- 		if (!path) {
--			path = path_rec_create(dev, phdr->hwaddr + 4);
-+			path = path_rec_create(dev, cb->hwaddr + 4);
- 			new_path = 1;
- 		}
- 		if (path) {
--			/* put pseudoheader back on for next time */
--			skb_push(skb, sizeof *phdr);
- 			__skb_queue_tail(&path->queue, skb);
- 
- 			if (!path->query && path_rec_start(dev, path)) {
-@@ -700,12 +698,10 @@ static void unicast_arp_send(struct sk_buff *skb, struct net_device *dev,
- 			  be16_to_cpu(path->pathrec.dlid));
- 
- 		spin_unlock_irqrestore(&priv->lock, flags);
--		ipoib_send(dev, skb, path->ah, IPOIB_QPN(phdr->hwaddr));
-+		ipoib_send(dev, skb, path->ah, IPOIB_QPN(cb->hwaddr));
- 		return;
- 	} else if ((path->query || !path_rec_start(dev, path)) &&
- 		   skb_queue_len(&path->queue) < IPOIB_MAX_PATH_REC_QUEUE) {
--		/* put pseudoheader back on for next time */
--		skb_push(skb, sizeof *phdr);
- 		__skb_queue_tail(&path->queue, skb);
- 	} else {
- 		++dev->stats.tx_dropped;
-@@ -774,16 +770,14 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
- 			dev_kfree_skb_any(skb);
- 		}
- 	} else {
--		struct ipoib_pseudoheader *phdr =
--			(struct ipoib_pseudoheader *) skb->data;
--		skb_pull(skb, sizeof *phdr);
-+		struct ipoib_cb *cb = (struct ipoib_cb *) skb->cb;
- 
--		if (phdr->hwaddr[4] == 0xff) {
-+		if (cb->hwaddr[4] == 0xff) {
- 			/* Add in the P_Key for multicast*/
--			phdr->hwaddr[8] = (priv->pkey >> 8) & 0xff;
--			phdr->hwaddr[9] = priv->pkey & 0xff;
-+			cb->hwaddr[8] = (priv->pkey >> 8) & 0xff;
-+			cb->hwaddr[9] = priv->pkey & 0xff;
- 
--			ipoib_mcast_send(dev, phdr->hwaddr + 4, skb);
-+			ipoib_mcast_send(dev, cb->hwaddr + 4, skb);
- 		} else {
- 			/* unicast GID -- should be ARP or RARP reply */
- 
-@@ -792,14 +786,14 @@ static int ipoib_start_xmit(struct sk_buff *skb, struct net_device *dev)
- 				ipoib_warn(priv, "Unicast, no %s: type %04x, QPN %06x %pI6\n",
- 					   skb_dst(skb) ? "neigh" : "dst",
- 					   be16_to_cpup((__be16 *) skb->data),
--					   IPOIB_QPN(phdr->hwaddr),
--					   phdr->hwaddr + 4);
-+					   IPOIB_QPN(cb->hwaddr),
-+					   cb->hwaddr + 4);
- 				dev_kfree_skb_any(skb);
- 				++dev->stats.tx_dropped;
- 				goto unlock;
- 			}
- 
--			unicast_arp_send(skb, dev, phdr);
-+			unicast_arp_send(skb, dev, cb);
- 		}
- 	}
- unlock:
-@@ -825,8 +819,6 @@ static int ipoib_hard_header(struct sk_buff *skb,
- 			     const void *daddr, const void *saddr, unsigned len)
- {
- 	struct ipoib_header *header;
--	struct dst_entry *dst;
--	struct neighbour *n;
- 
- 	header = (struct ipoib_header *) skb_push(skb, sizeof *header);
- 
-@@ -834,18 +826,13 @@ static int ipoib_hard_header(struct sk_buff *skb,
- 	header->reserved = 0;
- 
- 	/*
--	 * If we don't have a neighbour structure, stuff the
--	 * destination address onto the front of the skb so we can
--	 * figure out where to send the packet later.
-+	 * If we don't have a dst_entry structure, stuff the
-+	 * destination address into skb->cb so we can figure out where
-+	 * to send the packet later.
- 	 */
--	dst = skb_dst(skb);
--	n = NULL;
--	if (dst)
--		n = dst_get_neighbour_raw(dst);
--	if ((!dst || !n) && daddr) {
--		struct ipoib_pseudoheader *phdr =
--			(struct ipoib_pseudoheader *) skb_push(skb, sizeof *phdr);
--		memcpy(phdr->hwaddr, daddr, INFINIBAND_ALEN);
-+	if (!skb_dst(skb)) {
-+		struct ipoib_cb *cb = (struct ipoib_cb *) skb->cb;
-+		memcpy(cb->hwaddr, daddr, INFINIBAND_ALEN);
- 	}
- 
- 	return 0;
-@@ -1021,11 +1008,7 @@ static void ipoib_setup(struct net_device *dev)
- 
- 	dev->flags		|= IFF_BROADCAST | IFF_MULTICAST;
- 
--	/*
--	 * We add in INFINIBAND_ALEN to allow for the destination
--	 * address "pseudoheader" for skbs without neighbour struct.
--	 */
--	dev->hard_header_len	 = IPOIB_ENCAP_LEN + INFINIBAND_ALEN;
-+	dev->hard_header_len	 = IPOIB_ENCAP_LEN;
- 	dev->addr_len		 = INFINIBAND_ALEN;
- 	dev->type		 = ARPHRD_INFINIBAND;
- 	dev->tx_queue_len	 = ipoib_sendq_size * 2;
-diff --git a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-index 873bff9..e5069b4 100644
---- a/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-+++ b/drivers/infiniband/ulp/ipoib/ipoib_multicast.c
-@@ -262,21 +262,14 @@ static int ipoib_mcast_join_finish(struct ipoib_mcast *mcast,
- 	netif_tx_lock_bh(dev);
- 	while (!skb_queue_empty(&mcast->pkt_queue)) {
- 		struct sk_buff *skb = skb_dequeue(&mcast->pkt_queue);
--		struct dst_entry *dst = skb_dst(skb);
--		struct neighbour *n = NULL;
- 
- 		netif_tx_unlock_bh(dev);
- 
- 		skb->dev = dev;
--		if (dst)
--			n = dst_get_neighbour_raw(dst);
--		if (!dst || !n) {
--			/* put pseudoheader back on for next time */
--			skb_push(skb, sizeof (struct ipoib_pseudoheader));
--		}
- 
- 		if (dev_queue_xmit(skb))
- 			ipoib_warn(priv, "dev_queue_xmit failed to requeue packet\n");
-+
- 		netif_tx_lock_bh(dev);
- 	}
- 	netif_tx_unlock_bh(dev);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0031-gro-more-generic-L2-header-check.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0031-gro-more-generic-L2-header-check.patch
deleted file mode 100644
index 0b65969..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0031-gro-more-generic-L2-header-check.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 53118dfc961c0cf24e72b59d3cfccd128506740f Mon Sep 17 00:00:00 2001
-From: Eric Dumazet <eric.dumazet at gmail.com>
-Date: Wed, 8 Feb 2012 08:51:50 +0000
-Subject: [PATCH 31/72] gro: more generic L2 header check
-
-[ Upstream commit 5ca3b72c5da47d95b83857b768def6172fbc080a ]
-
-Shlomo Pongratz reported GRO L2 header check was suited for Ethernet
-only, and failed on IB/ipoib traffic.
-
-He provided a patch faking a zeroed header to let GRO aggregates frames.
-
-Roland Dreier, Herbert Xu, and others suggested we change GRO L2 header
-check to be more generic, ie not assuming L2 header is 14 bytes, but
-taking into account hard_header_len.
-
-__napi_gro_receive() has special handling for the common case (Ethernet)
-to avoid a memcmp() call and use an inline optimized function instead.
-
-Signed-off-by: Eric Dumazet <eric.dumazet at gmail.com>
-Reported-by: Shlomo Pongratz <shlomop at mellanox.com>
-Cc: Roland Dreier <roland at kernel.org>
-Cc: Or Gerlitz <ogerlitz at mellanox.com>
-Cc: Herbert Xu <herbert at gondor.apana.org.au>
-Tested-by: Sean Hefty <sean.hefty at intel.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/core/dev.c |   10 ++++++++--
- 1 file changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/net/core/dev.c b/net/core/dev.c
-index 5a13edf..c56cacf 100644
---- a/net/core/dev.c
-+++ b/net/core/dev.c
-@@ -3565,14 +3565,20 @@ static inline gro_result_t
- __napi_gro_receive(struct napi_struct *napi, struct sk_buff *skb)
- {
- 	struct sk_buff *p;
-+	unsigned int maclen = skb->dev->hard_header_len;
- 
- 	for (p = napi->gro_list; p; p = p->next) {
- 		unsigned long diffs;
- 
- 		diffs = (unsigned long)p->dev ^ (unsigned long)skb->dev;
- 		diffs |= p->vlan_tci ^ skb->vlan_tci;
--		diffs |= compare_ether_header(skb_mac_header(p),
--					      skb_gro_mac_header(skb));
-+		if (maclen == ETH_HLEN)
-+			diffs |= compare_ether_header(skb_mac_header(p),
-+						      skb_gro_mac_header(skb));
-+		else if (!diffs)
-+			diffs = memcmp(skb_mac_header(p),
-+				       skb_gro_mac_header(skb),
-+				       maclen);
- 		NAPI_GRO_CB(p)->same_flow = !diffs;
- 		NAPI_GRO_CB(p)->flush = 0;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0032-tcp-allow-tcp_sacktag_one-to-tag-ranges-not-aligned-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0032-tcp-allow-tcp_sacktag_one-to-tag-ranges-not-aligned-.patch
deleted file mode 100644
index 943bde4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0032-tcp-allow-tcp_sacktag_one-to-tag-ranges-not-aligned-.patch
+++ /dev/null
@@ -1,119 +0,0 @@
-From 4387753e32179f5e4ef62572b7f06f77d8c37330 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Sun, 12 Feb 2012 18:37:09 +0000
-Subject: [PATCH 32/72] tcp: allow tcp_sacktag_one() to tag ranges not aligned
- with skbs
-
-[ Upstream commit cc9a672ee522d4805495b98680f4a3db5d0a0af9 ]
-
-This commit allows callers of tcp_sacktag_one() to pass in sequence
-ranges that do not align with skb boundaries, as tcp_shifted_skb()
-needs to do in an upcoming fix in this patch series.
-
-In fact, now tcp_sacktag_one() does not need to depend on an input skb
-at all, which makes its semantics and dependencies more clear.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_input.c |   36 ++++++++++++++++++++++--------------
- 1 file changed, 22 insertions(+), 14 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 52b5c2d..41440f1 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -1310,25 +1310,26 @@ static int tcp_match_skb_to_sack(struct sock *sk, struct sk_buff *skb,
- 	return in_sack;
- }
- 
--static u8 tcp_sacktag_one(const struct sk_buff *skb, struct sock *sk,
--			  struct tcp_sacktag_state *state,
-+/* Mark the given newly-SACKed range as such, adjusting counters and hints. */
-+static u8 tcp_sacktag_one(struct sock *sk,
-+			  struct tcp_sacktag_state *state, u8 sacked,
-+			  u32 start_seq, u32 end_seq,
- 			  int dup_sack, int pcount)
- {
- 	struct tcp_sock *tp = tcp_sk(sk);
--	u8 sacked = TCP_SKB_CB(skb)->sacked;
- 	int fack_count = state->fack_count;
- 
- 	/* Account D-SACK for retransmitted packet. */
- 	if (dup_sack && (sacked & TCPCB_RETRANS)) {
- 		if (tp->undo_marker && tp->undo_retrans &&
--		    after(TCP_SKB_CB(skb)->end_seq, tp->undo_marker))
-+		    after(end_seq, tp->undo_marker))
- 			tp->undo_retrans--;
- 		if (sacked & TCPCB_SACKED_ACKED)
- 			state->reord = min(fack_count, state->reord);
- 	}
- 
- 	/* Nothing to do; acked frame is about to be dropped (was ACKed). */
--	if (!after(TCP_SKB_CB(skb)->end_seq, tp->snd_una))
-+	if (!after(end_seq, tp->snd_una))
- 		return sacked;
- 
- 	if (!(sacked & TCPCB_SACKED_ACKED)) {
-@@ -1347,13 +1348,13 @@ static u8 tcp_sacktag_one(const struct sk_buff *skb, struct sock *sk,
- 				/* New sack for not retransmitted frame,
- 				 * which was in hole. It is reordering.
- 				 */
--				if (before(TCP_SKB_CB(skb)->seq,
-+				if (before(start_seq,
- 					   tcp_highest_sack_seq(tp)))
- 					state->reord = min(fack_count,
- 							   state->reord);
- 
- 				/* SACK enhanced F-RTO (RFC4138; Appendix B) */
--				if (!after(TCP_SKB_CB(skb)->end_seq, tp->frto_highmark))
-+				if (!after(end_seq, tp->frto_highmark))
- 					state->flag |= FLAG_ONLY_ORIG_SACKED;
- 			}
- 
-@@ -1371,8 +1372,7 @@ static u8 tcp_sacktag_one(const struct sk_buff *skb, struct sock *sk,
- 
- 		/* Lost marker hint past SACKed? Tweak RFC3517 cnt */
- 		if (!tcp_is_fack(tp) && (tp->lost_skb_hint != NULL) &&
--		    before(TCP_SKB_CB(skb)->seq,
--			   TCP_SKB_CB(tp->lost_skb_hint)->seq))
-+		    before(start_seq, TCP_SKB_CB(tp->lost_skb_hint)->seq))
- 			tp->lost_cnt_hint += pcount;
- 
- 		if (fack_count > tp->fackets_out)
-@@ -1428,7 +1428,11 @@ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- 	}
- 
- 	/* We discard results */
--	tcp_sacktag_one(skb, sk, state, dup_sack, pcount);
-+	tcp_sacktag_one(sk, state,
-+			TCP_SKB_CB(skb)->sacked,
-+			TCP_SKB_CB(skb)->seq,
-+			TCP_SKB_CB(skb)->end_seq,
-+			dup_sack, pcount);
- 
- 	/* Difference in this won't matter, both ACKed by the same cumul. ACK */
- 	TCP_SKB_CB(prev)->sacked |= (TCP_SKB_CB(skb)->sacked & TCPCB_EVER_RETRANS);
-@@ -1667,10 +1671,14 @@ static struct sk_buff *tcp_sacktag_walk(struct sk_buff *skb, struct sock *sk,
- 			break;
- 
- 		if (in_sack) {
--			TCP_SKB_CB(skb)->sacked = tcp_sacktag_one(skb, sk,
--								  state,
--								  dup_sack,
--								  tcp_skb_pcount(skb));
-+			TCP_SKB_CB(skb)->sacked =
-+				tcp_sacktag_one(sk,
-+						state,
-+						TCP_SKB_CB(skb)->sacked,
-+						TCP_SKB_CB(skb)->seq,
-+						TCP_SKB_CB(skb)->end_seq,
-+						dup_sack,
-+						tcp_skb_pcount(skb));
- 
- 			if (!before(TCP_SKB_CB(skb)->seq,
- 				    tcp_highest_sack_seq(tp)))
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0033-tcp-fix-range-tcp_shifted_skb-passes-to-tcp_sacktag_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0033-tcp-fix-range-tcp_shifted_skb-passes-to-tcp_sacktag_.patch
deleted file mode 100644
index 908cc07..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0033-tcp-fix-range-tcp_shifted_skb-passes-to-tcp_sacktag_.patch
+++ /dev/null
@@ -1,77 +0,0 @@
-From a0dc910279975b33ce3ee4e2aea7d0666db39cb5 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Sun, 12 Feb 2012 18:37:10 +0000
-Subject: [PATCH 33/72] tcp: fix range tcp_shifted_skb() passes to
- tcp_sacktag_one()
-
-[ Upstream commit daef52bab1fd26e24e8e9578f8fb33ba1d0cb412 ]
-
-Fix the newly-SACKed range to be the range of newly-shifted bytes.
-
-Previously - since 832d11c5cd076abc0aa1eaf7be96c81d1a59ce41 -
-tcp_shifted_skb() incorrectly called tcp_sacktag_one() with the start
-and end sequence numbers of the skb it passes in set to the range just
-beyond the range that is newly-SACKed.
-
-This commit also removes a special-case adjustment to lost_cnt_hint in
-tcp_shifted_skb() since the pre-existing adjustment of lost_cnt_hint
-in tcp_sacktag_one() now properly handles this things now that the
-correct start sequence number is passed in.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_input.c |   19 ++++++++++---------
- 1 file changed, 10 insertions(+), 9 deletions(-)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index 41440f1..b16fbf3 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -1391,6 +1391,9 @@ static u8 tcp_sacktag_one(struct sock *sk,
- 	return sacked;
- }
- 
-+/* Shift newly-SACKed bytes from this skb to the immediately previous
-+ * already-SACKed sk_buff. Mark the newly-SACKed bytes as such.
-+ */
- static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- 			   struct tcp_sacktag_state *state,
- 			   unsigned int pcount, int shifted, int mss,
-@@ -1398,12 +1401,11 @@ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- {
- 	struct tcp_sock *tp = tcp_sk(sk);
- 	struct sk_buff *prev = tcp_write_queue_prev(sk, skb);
-+	u32 start_seq = TCP_SKB_CB(skb)->seq;	/* start of newly-SACKed */
-+	u32 end_seq = start_seq + shifted;	/* end of newly-SACKed */
- 
- 	BUG_ON(!pcount);
- 
--	if (skb == tp->lost_skb_hint)
--		tp->lost_cnt_hint += pcount;
--
- 	TCP_SKB_CB(prev)->end_seq += shifted;
- 	TCP_SKB_CB(skb)->seq += shifted;
- 
-@@ -1427,12 +1429,11 @@ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- 		skb_shinfo(skb)->gso_type = 0;
- 	}
- 
--	/* We discard results */
--	tcp_sacktag_one(sk, state,
--			TCP_SKB_CB(skb)->sacked,
--			TCP_SKB_CB(skb)->seq,
--			TCP_SKB_CB(skb)->end_seq,
--			dup_sack, pcount);
-+	/* Adjust counters and hints for the newly sacked sequence range but
-+	 * discard the return value since prev is already marked.
-+	 */
-+	tcp_sacktag_one(sk, state, TCP_SKB_CB(skb)->sacked,
-+			start_seq, end_seq, dup_sack, pcount);
- 
- 	/* Difference in this won't matter, both ACKed by the same cumul. ACK */
- 	TCP_SKB_CB(prev)->sacked |= (TCP_SKB_CB(skb)->sacked & TCPCB_EVER_RETRANS);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0034-tcp-fix-tcp_shifted_skb-adjustment-of-lost_cnt_hint-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0034-tcp-fix-tcp_shifted_skb-adjustment-of-lost_cnt_hint-.patch
deleted file mode 100644
index ae42cf7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0034-tcp-fix-tcp_shifted_skb-adjustment-of-lost_cnt_hint-.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From f43ec4cc9f41d4280832766418ef5c43ef9bfeb7 Mon Sep 17 00:00:00 2001
-From: Neal Cardwell <ncardwell at google.com>
-Date: Mon, 13 Feb 2012 20:22:08 +0000
-Subject: [PATCH 34/72] tcp: fix tcp_shifted_skb() adjustment of lost_cnt_hint
- for FACK
-
-[ Upstream commit 0af2a0d0576205dda778d25c6c344fc6508fc81d ]
-
-This commit ensures that lost_cnt_hint is correctly updated in
-tcp_shifted_skb() for FACK TCP senders. The lost_cnt_hint adjustment
-in tcp_sacktag_one() only applies to non-FACK senders, so FACK senders
-need their own adjustment.
-
-This applies the spirit of 1e5289e121372a3494402b1b131b41bfe1cf9b7f -
-except now that the sequence range passed into tcp_sacktag_one() is
-correct we need only have a special case adjustment for FACK.
-
-Signed-off-by: Neal Cardwell <ncardwell at google.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/ipv4/tcp_input.c |    4 ++++
- 1 file changed, 4 insertions(+)
-
-diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c
-index b16fbf3..53113b9 100644
---- a/net/ipv4/tcp_input.c
-+++ b/net/ipv4/tcp_input.c
-@@ -1406,6 +1406,10 @@ static int tcp_shifted_skb(struct sock *sk, struct sk_buff *skb,
- 
- 	BUG_ON(!pcount);
- 
-+	/* Adjust hint for FACK. Non-FACK is handled in tcp_sacktag_one(). */
-+	if (tcp_is_fack(tp) && (skb == tp->lost_skb_hint))
-+		tp->lost_cnt_hint += pcount;
-+
- 	TCP_SKB_CB(prev)->end_seq += shifted;
- 	TCP_SKB_CB(skb)->seq += shifted;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0035-USB-Added-Kamstrup-VID-PIDs-to-cp210x-serial-driver.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0035-USB-Added-Kamstrup-VID-PIDs-to-cp210x-serial-driver.patch
deleted file mode 100644
index 39ca9d4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0035-USB-Added-Kamstrup-VID-PIDs-to-cp210x-serial-driver.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 6abf95d178a8d02b3cea69d913a415143d8c1ba2 Mon Sep 17 00:00:00 2001
-From: Bruno Thomsen <bruno.thomsen at gmail.com>
-Date: Tue, 21 Feb 2012 23:41:37 +0100
-Subject: [PATCH 35/72] USB: Added Kamstrup VID/PIDs to cp210x serial driver.
-
-commit c6c1e4491dc8d1ed2509fa6aacffa7f34614fc38 upstream.
-
-Signed-off-by: Bruno Thomsen <bruno.thomsen at gmail.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/cp210x.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/usb/serial/cp210x.c b/drivers/usb/serial/cp210x.c
-index a515237..33d25d4 100644
---- a/drivers/usb/serial/cp210x.c
-+++ b/drivers/usb/serial/cp210x.c
-@@ -136,6 +136,8 @@ static const struct usb_device_id id_table[] = {
- 	{ USB_DEVICE(0x16DC, 0x0011) }, /* W-IE-NE-R Plein & Baus GmbH RCM Remote Control for MARATON Power Supply */
- 	{ USB_DEVICE(0x16DC, 0x0012) }, /* W-IE-NE-R Plein & Baus GmbH MPOD Multi Channel Power Supply */
- 	{ USB_DEVICE(0x16DC, 0x0015) }, /* W-IE-NE-R Plein & Baus GmbH CML Control, Monitoring and Data Logger */
-+	{ USB_DEVICE(0x17A8, 0x0001) }, /* Kamstrup Optical Eye/3-wire */
-+	{ USB_DEVICE(0x17A8, 0x0005) }, /* Kamstrup M-Bus Master MultiPort 250D */
- 	{ USB_DEVICE(0x17F4, 0xAAAA) }, /* Wavesense Jazz blood glucose meter */
- 	{ USB_DEVICE(0x1843, 0x0200) }, /* Vaisala USB Instrument Cable */
- 	{ USB_DEVICE(0x18EF, 0xE00F) }, /* ELV USB-I2C-Interface */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0036-USB-option-cleanup-zte-3g-dongle-s-pid-in-option.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0036-USB-option-cleanup-zte-3g-dongle-s-pid-in-option.c.patch
deleted file mode 100644
index 1ea49c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0036-USB-option-cleanup-zte-3g-dongle-s-pid-in-option.c.patch
+++ /dev/null
@@ -1,246 +0,0 @@
-From 24fa6dd629ca1890e2ed7db7e8f0361dc95e8c8c Mon Sep 17 00:00:00 2001
-From: Rui li <li.rui27 at zte.com.cn>
-Date: Tue, 14 Feb 2012 10:35:01 +0800
-Subject: [PATCH 36/72] USB: option: cleanup zte 3g-dongle's pid in option.c
-
-commit b9e44fe5ecda4158c22bc1ea4bffa378a4f83f65 upstream.
-
-  1. Remove all old mass-storage ids's pid:
-     0x0026,0x0053,0x0098,0x0099,0x0149,0x0150,0x0160;
-  2. As the pid from 0x1401 to 0x1510 which have not surely assigned to
-     use for serial-port or mass-storage port,so i think it should be
-     removed now, and will re-add after it have assigned in future;
-  3. sort the pid to WCDMA and CDMA.
-
-Signed-off-by: Rui li <li.rui27 at zte.com.cn>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/option.c |  143 ++++---------------------------------------
- 1 file changed, 13 insertions(+), 130 deletions(-)
-
-diff --git a/drivers/usb/serial/option.c b/drivers/usb/serial/option.c
-index 338d082..68fa8c7 100644
---- a/drivers/usb/serial/option.c
-+++ b/drivers/usb/serial/option.c
-@@ -788,7 +788,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0012, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf1_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0013, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_MF628, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0016, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0017, 0xff, 0xff, 0xff),
-@@ -803,7 +802,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0024, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0025, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf1_blacklist },
--	/* { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0026, 0xff, 0xff, 0xff) }, */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0028, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0029, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0030, 0xff, 0xff, 0xff) },
-@@ -828,7 +826,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0051, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0052, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
--	/* { USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0053, 0xff, 0xff, 0xff) }, */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0054, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0055, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf1_blacklist },
-@@ -836,7 +833,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0057, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0058, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0061, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0062, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0063, 0xff, 0xff, 0xff),
-@@ -846,7 +842,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0066, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0067, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0069, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0076, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0077, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0078, 0xff, 0xff, 0xff) },
-@@ -865,8 +860,6 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0095, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0096, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0097, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0098, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0099, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0104, 0xff, 0xff, 0xff),
- 		.driver_info = (kernel_ulong_t)&net_intf4_blacklist },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0105, 0xff, 0xff, 0xff) },
-@@ -887,28 +880,18 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0143, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0144, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0145, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0146, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0148, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0149, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0150, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0151, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0153, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0155, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0156, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0157, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0158, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0159, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0160, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0161, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0162, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0164, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0165, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0168, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0170, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0176, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1008, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1010, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1012, 0xff, 0xff, 0xff) },
-@@ -1083,127 +1066,27 @@ static const struct usb_device_id option_ids[] = {
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1298, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1299, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1300, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1401, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1402, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1403, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1404, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1405, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1406, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1407, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1408, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1409, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1410, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1411, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1412, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1413, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1414, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1415, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1416, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1417, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1418, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1419, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1420, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1421, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1422, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1423, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1424, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1425, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1426, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1427, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1428, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1429, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1430, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1431, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1432, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1433, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1434, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1435, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1436, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1437, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1438, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1439, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1440, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1441, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1442, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1443, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1444, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1445, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1446, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1447, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1448, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1449, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1450, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1451, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1452, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1453, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1454, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1455, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1456, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1457, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1458, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1459, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1460, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1461, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1462, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1463, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1464, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1465, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1466, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1467, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1468, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1469, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1470, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1471, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1472, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1473, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1474, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1475, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1476, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1477, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1478, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1479, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1480, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1481, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1482, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1483, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1484, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1485, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1486, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1487, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1488, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1489, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1490, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1491, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1492, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1493, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1494, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1495, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1496, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1497, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1498, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1499, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1500, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1501, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1502, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1503, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1504, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1505, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1506, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1507, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1508, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1509, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x1510, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff,
-+	  0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) },
-+
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0014, 0xff, 0xff, 0xff) }, /* ZTE CDMA products */
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0027, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0059, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0060, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0070, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0073, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0094, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0130, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0133, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0141, 0xff, 0xff, 0xff) },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2002, 0xff,
--	  0xff, 0xff), .driver_info = (kernel_ulong_t)&zte_k3765_z_blacklist },
--	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x2003, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0147, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0152, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0168, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0170, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0176, 0xff, 0xff, 0xff) },
-+	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, 0x0178, 0xff, 0xff, 0xff) },
-+
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_CDMA_TECH, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC8710, 0xff, 0xff, 0xff) },
- 	{ USB_DEVICE_AND_INTERFACE_INFO(ZTE_VENDOR_ID, ZTE_PRODUCT_AC2726, 0xff, 0xff, 0xff) },
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0037-USB-Serial-ti_usb_3410_5052-Add-Abbot-Diabetes-Care-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0037-USB-Serial-ti_usb_3410_5052-Add-Abbot-Diabetes-Care-.patch
deleted file mode 100644
index 8cd3849..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0037-USB-Serial-ti_usb_3410_5052-Add-Abbot-Diabetes-Care-.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 84a3b2d1fb95be76ec543d381ec14af2a252c1b8 Mon Sep 17 00:00:00 2001
-From: Andrew Lunn <andrew at lunn.ch>
-Date: Mon, 20 Feb 2012 09:31:57 +0100
-Subject: [PATCH 37/72] USB: Serial: ti_usb_3410_5052: Add Abbot Diabetes Care
- cable id
-
-commit 7fd25702ba616d9ba56e2a625472f29e5aff25ee upstream.
-
-This USB-serial cable with mini stereo jack enumerates as:
-Bus 001 Device 004: ID 1a61:3410 Abbott Diabetes Care
-
-It is a TI3410 inside.
-
-Signed-off-by: Andrew Lunn <andrew at lunn.ch>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/serial/ti_usb_3410_5052.c |    6 ++++--
- drivers/usb/serial/ti_usb_3410_5052.h |    4 ++++
- 2 files changed, 8 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/serial/ti_usb_3410_5052.c b/drivers/usb/serial/ti_usb_3410_5052.c
-index ea84456..21c82b0 100644
---- a/drivers/usb/serial/ti_usb_3410_5052.c
-+++ b/drivers/usb/serial/ti_usb_3410_5052.c
-@@ -165,7 +165,7 @@ static unsigned int product_5052_count;
- /* the array dimension is the number of default entries plus */
- /* TI_EXTRA_VID_PID_COUNT user defined entries plus 1 terminating */
- /* null entry */
--static struct usb_device_id ti_id_table_3410[13+TI_EXTRA_VID_PID_COUNT+1] = {
-+static struct usb_device_id ti_id_table_3410[14+TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
- 	{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
-@@ -179,6 +179,7 @@ static struct usb_device_id ti_id_table_3410[13+TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) },
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) },
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) },
-+	{ USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_PRODUCT_ID) },
- };
- 
- static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = {
-@@ -188,7 +189,7 @@ static struct usb_device_id ti_id_table_5052[5+TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_5052_FIRMWARE_PRODUCT_ID) },
- };
- 
--static struct usb_device_id ti_id_table_combined[17+2*TI_EXTRA_VID_PID_COUNT+1] = {
-+static struct usb_device_id ti_id_table_combined[18+2*TI_EXTRA_VID_PID_COUNT+1] = {
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_PRODUCT_ID) },
- 	{ USB_DEVICE(TI_VENDOR_ID, TI_3410_EZ430_ID) },
- 	{ USB_DEVICE(MTS_VENDOR_ID, MTS_GSM_NO_FW_PRODUCT_ID) },
-@@ -206,6 +207,7 @@ static struct usb_device_id ti_id_table_combined[17+2*TI_EXTRA_VID_PID_COUNT+1]
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_4543_PRODUCT_ID) },
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454B_PRODUCT_ID) },
- 	{ USB_DEVICE(IBM_VENDOR_ID, IBM_454C_PRODUCT_ID) },
-+	{ USB_DEVICE(ABBOTT_VENDOR_ID, ABBOTT_PRODUCT_ID) },
- 	{ }
- };
- 
-diff --git a/drivers/usb/serial/ti_usb_3410_5052.h b/drivers/usb/serial/ti_usb_3410_5052.h
-index 2aac195..f140f1b 100644
---- a/drivers/usb/serial/ti_usb_3410_5052.h
-+++ b/drivers/usb/serial/ti_usb_3410_5052.h
-@@ -49,6 +49,10 @@
- #define MTS_MT9234ZBA_PRODUCT_ID	0xF115
- #define MTS_MT9234ZBAOLD_PRODUCT_ID	0x0319
- 
-+/* Abbott Diabetics vendor and product ids */
-+#define ABBOTT_VENDOR_ID		0x1a61
-+#define ABBOTT_PRODUCT_ID		0x3410
-+
- /* Commands */
- #define TI_GET_VERSION			0x01
- #define TI_GET_PORT_STATUS		0x02
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0038-USB-Remove-duplicate-USB-3.0-hub-feature-defines.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0038-USB-Remove-duplicate-USB-3.0-hub-feature-defines.patch
deleted file mode 100644
index ded5ece..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0038-USB-Remove-duplicate-USB-3.0-hub-feature-defines.patch
+++ /dev/null
@@ -1,74 +0,0 @@
-From 4c64933ec58a84dbda536345d8ff36cdd503cebe Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Thu, 5 Jan 2012 16:28:54 -0800
-Subject: [PATCH 38/72] USB: Remove duplicate USB 3.0 hub feature #defines.
-
-commit d9f5343e35d9138432657202afa8e3ddb2ade360 upstream.
-
-Somehow we ended up with duplicate hub feature #defines in ch11.h.
-Tatyana Brokhman first created the USB 3.0 hub feature macros in 2.6.38
-with commit 0eadcc09203349b11ca477ec367079b23d32ab91 "usb: USB3.0 ch11
-definitions".  In 2.6.39, I modified a patch from John Youn that added
-similar macros in a different place in the same file, and committed
-dbe79bbe9dcb22cb3651c46f18943477141ca452 "USB 3.0 Hub Changes".
-
-Some of the #defines used different names for the same values.  Others
-used exactly the same names with the same values, like these gems:
-
- #define USB_PORT_FEAT_BH_PORT_RESET     28
-...
- #define USB_PORT_FEAT_BH_PORT_RESET            28
-
-According to my very geeky husband (who looked it up in the C99 spec),
-it is allowed to have object-like macros with duplicate names as long as
-the replacement list is exactly the same.  However, he recalled that
-some compilers will give warnings when they find duplicate macros.  It's
-probably best to remove the duplicates in the stable tree, so that the
-code compiles for everyone.
-
-The macros are now fixed to move the feature requests that are specific
-to USB 3.0 hubs into a new section (out of the USB 2.0 hub feature
-section), and use the most common macro name.
-
-This patch should be backported to 2.6.39.
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Cc: Tatyana Brokhman <tlinder at codeaurora.org>
-Cc: John Youn <johnyoun at synopsys.com>
-Cc: Jamey Sharp <jamey at minilop.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- include/linux/usb/ch11.h |   10 ++--------
- 1 file changed, 2 insertions(+), 8 deletions(-)
-
-diff --git a/include/linux/usb/ch11.h b/include/linux/usb/ch11.h
-index 4ebaf08..1eb735b 100644
---- a/include/linux/usb/ch11.h
-+++ b/include/linux/usb/ch11.h
-@@ -62,12 +62,6 @@
- #define USB_PORT_FEAT_TEST              21
- #define USB_PORT_FEAT_INDICATOR         22
- #define USB_PORT_FEAT_C_PORT_L1         23
--#define USB_PORT_FEAT_C_PORT_LINK_STATE	25
--#define USB_PORT_FEAT_C_PORT_CONFIG_ERROR 26
--#define USB_PORT_FEAT_PORT_REMOTE_WAKE_MASK 27
--#define USB_PORT_FEAT_BH_PORT_RESET     28
--#define USB_PORT_FEAT_C_BH_PORT_RESET   29
--#define USB_PORT_FEAT_FORCE_LINKPM_ACCEPT 30
- 
- /*
-  * Port feature selectors added by USB 3.0 spec.
-@@ -76,8 +70,8 @@
- #define USB_PORT_FEAT_LINK_STATE		5
- #define USB_PORT_FEAT_U1_TIMEOUT		23
- #define USB_PORT_FEAT_U2_TIMEOUT		24
--#define USB_PORT_FEAT_C_LINK_STATE		25
--#define USB_PORT_FEAT_C_CONFIG_ERR		26
-+#define USB_PORT_FEAT_C_PORT_LINK_STATE		25
-+#define USB_PORT_FEAT_C_PORT_CONFIG_ERROR	26
- #define USB_PORT_FEAT_REMOTE_WAKE_MASK		27
- #define USB_PORT_FEAT_BH_PORT_RESET		28
- #define USB_PORT_FEAT_C_BH_PORT_RESET		29
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0039-USB-Fix-handoff-when-BIOS-disables-host-PCI-device.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0039-USB-Fix-handoff-when-BIOS-disables-host-PCI-device.patch
deleted file mode 100644
index f0ccc44..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0039-USB-Fix-handoff-when-BIOS-disables-host-PCI-device.patch
+++ /dev/null
@@ -1,69 +0,0 @@
-From 786db31181c37b0d6935fe6ac775413071cac13a Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Tue, 7 Feb 2012 15:11:46 -0800
-Subject: [PATCH 39/72] USB: Fix handoff when BIOS disables host PCI device.
-
-commit cab928ee1f221c9cc48d6615070fefe2e444384a upstream.
-
-On some systems with an Intel Panther Point xHCI host controller, the
-BIOS disables the xHCI PCI device during boot, and switches the xHCI
-ports over to EHCI.  This allows the BIOS to access USB devices without
-having xHCI support.
-
-The downside is that the xHCI BIOS handoff mechanism will fail because
-memory mapped I/O is not enabled for the disabled PCI device.
-Jesse Barnes says this is expected behavior.  The PCI core will enable
-BARs before quirks run, but it will leave it in an undefined state, and
-it may not have memory mapped I/O enabled.
-
-Make the generic USB quirk handler call pci_enable_device() to re-enable
-MMIO, and call pci_disable_device() once the host-specific BIOS handoff
-is finished.  This will balance the ref counts in the PCI core.  When
-the PCI probe function is called, usb_hcd_pci_probe() will call
-pci_enable_device() again.
-
-This should be back ported to kernels as old as 2.6.31.  That was the
-first kernel with xHCI support, and no one has complained about BIOS
-handoffs failing due to memory mapped I/O being disabled on other hosts
-(EHCI, UHCI, or OHCI).
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Acked-by: Oliver Neukum <oneukum at suse.de>
-Cc: Jesse Barnes <jbarnes at virtuousgeek.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/pci-quirks.c |   11 +++++++++++
- 1 file changed, 11 insertions(+)
-
-diff --git a/drivers/usb/host/pci-quirks.c b/drivers/usb/host/pci-quirks.c
-index ac53a66..7732d69 100644
---- a/drivers/usb/host/pci-quirks.c
-+++ b/drivers/usb/host/pci-quirks.c
-@@ -872,7 +872,17 @@ static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev)
- 	 */
- 	if (pdev->vendor == 0x184e)	/* vendor Netlogic */
- 		return;
-+	if (pdev->class != PCI_CLASS_SERIAL_USB_UHCI &&
-+			pdev->class != PCI_CLASS_SERIAL_USB_OHCI &&
-+			pdev->class != PCI_CLASS_SERIAL_USB_EHCI &&
-+			pdev->class != PCI_CLASS_SERIAL_USB_XHCI)
-+		return;
- 
-+	if (pci_enable_device(pdev) < 0) {
-+		dev_warn(&pdev->dev, "Can't enable PCI device, "
-+				"BIOS handoff failed.\n");
-+		return;
-+	}
- 	if (pdev->class == PCI_CLASS_SERIAL_USB_UHCI)
- 		quirk_usb_handoff_uhci(pdev);
- 	else if (pdev->class == PCI_CLASS_SERIAL_USB_OHCI)
-@@ -881,5 +891,6 @@ static void __devinit quirk_usb_early_handoff(struct pci_dev *pdev)
- 		quirk_usb_disable_ehci(pdev);
- 	else if (pdev->class == PCI_CLASS_SERIAL_USB_XHCI)
- 		quirk_usb_handoff_xhci(pdev);
-+	pci_disable_device(pdev);
- }
- DECLARE_PCI_FIXUP_FINAL(PCI_ANY_ID, PCI_ANY_ID, quirk_usb_early_handoff);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0040-xhci-Fix-oops-caused-by-more-USB2-ports-than-USB3-po.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0040-xhci-Fix-oops-caused-by-more-USB2-ports-than-USB3-po.patch
deleted file mode 100644
index 0df953a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0040-xhci-Fix-oops-caused-by-more-USB2-ports-than-USB3-po.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 84f1532950e62e2578f5dfd7ad2a206f15f380ea Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Thu, 9 Feb 2012 14:43:44 -0800
-Subject: [PATCH 40/72] xhci: Fix oops caused by more USB2 ports than USB3
- ports.
-
-commit 3278a55a1aebe2bbd47fbb5196209e5326a88b56 upstream.
-
-The code to set the device removable bits in the USB 2.0 roothub
-descriptor was accidentally looking at the USB 3.0 port registers
-instead of the USB 2.0 registers.  This can cause an oops if there are
-more USB 2.0 registers than USB 3.0 registers.
-
-This should be backported to kernels as old as 2.6.39, that contain the
-commit 4bbb0ace9a3de8392527e3c87926309d541d3b00 "xhci: Return a USB 3.0
-hub descriptor for USB3 roothub."
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-hub.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/usb/host/xhci-hub.c b/drivers/usb/host/xhci-hub.c
-index 430e88f..a8b2980 100644
---- a/drivers/usb/host/xhci-hub.c
-+++ b/drivers/usb/host/xhci-hub.c
-@@ -95,7 +95,7 @@ static void xhci_usb2_hub_descriptor(struct usb_hcd *hcd, struct xhci_hcd *xhci,
- 	 */
- 	memset(port_removable, 0, sizeof(port_removable));
- 	for (i = 0; i < ports; i++) {
--		portsc = xhci_readl(xhci, xhci->usb3_ports[i]);
-+		portsc = xhci_readl(xhci, xhci->usb2_ports[i]);
- 		/* If a device is removable, PORTSC reports a 0, same as in the
- 		 * hub descriptor DeviceRemovable bits.
- 		 */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0041-xhci-Fix-encoding-for-HS-bulk-control-NAK-rate.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0041-xhci-Fix-encoding-for-HS-bulk-control-NAK-rate.patch
deleted file mode 100644
index bd9f4ea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0041-xhci-Fix-encoding-for-HS-bulk-control-NAK-rate.patch
+++ /dev/null
@@ -1,98 +0,0 @@
-From d32148ecb8f71e584a880ef74f1cfb590bcead55 Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Mon, 13 Feb 2012 14:42:11 -0800
-Subject: [PATCH 41/72] xhci: Fix encoding for HS bulk/control NAK rate.
-
-commit 340a3504fd39dad753ba908fb6f894ee81fc3ae2 upstream.
-
-The xHCI 0.96 spec says that HS bulk and control endpoint NAK rate must
-be encoded as an exponent of two number of microframes.  The endpoint
-descriptor has the NAK rate encoded in number of microframes.  We were
-just copying the value from the endpoint descriptor into the endpoint
-context interval field, which was not correct.  This lead to the VIA
-host rejecting the add of a bulk OUT endpoint from any USB 2.0 mass
-storage device.
-
-The fix is to use the correct encoding.  Refactor the code to convert
-number of frames to an exponential number of microframes, and make sure
-we convert the number of microframes in HS bulk and control endpoints to
-an exponent.
-
-This should be back ported to kernels as old as 2.6.31, that contain the
-commit dfa49c4ad120a784ef1ff0717168aa79f55a483a "USB: xhci - fix math
-in xhci_get_endpoint_interval"
-
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Tested-by: Felipe Contreras <felipe.contreras at gmail.com>
-Suggested-by: Andiry Xu <andiry.xu at amd.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/host/xhci-mem.c |   32 ++++++++++++++++++++++++--------
- 1 file changed, 24 insertions(+), 8 deletions(-)
-
-diff --git a/drivers/usb/host/xhci-mem.c b/drivers/usb/host/xhci-mem.c
-index 0e4b25f..c69cf54 100644
---- a/drivers/usb/host/xhci-mem.c
-+++ b/drivers/usb/host/xhci-mem.c
-@@ -1140,26 +1140,42 @@ static unsigned int xhci_parse_exponent_interval(struct usb_device *udev,
- }
- 
- /*
-- * Convert bInterval expressed in frames (in 1-255 range) to exponent of
-+ * Convert bInterval expressed in microframes (in 1-255 range) to exponent of
-  * microframes, rounded down to nearest power of 2.
-  */
--static unsigned int xhci_parse_frame_interval(struct usb_device *udev,
--		struct usb_host_endpoint *ep)
-+static unsigned int xhci_microframes_to_exponent(struct usb_device *udev,
-+		struct usb_host_endpoint *ep, unsigned int desc_interval,
-+		unsigned int min_exponent, unsigned int max_exponent)
- {
- 	unsigned int interval;
- 
--	interval = fls(8 * ep->desc.bInterval) - 1;
--	interval = clamp_val(interval, 3, 10);
--	if ((1 << interval) != 8 * ep->desc.bInterval)
-+	interval = fls(desc_interval) - 1;
-+	interval = clamp_val(interval, min_exponent, max_exponent);
-+	if ((1 << interval) != desc_interval)
- 		dev_warn(&udev->dev,
- 			 "ep %#x - rounding interval to %d microframes, ep desc says %d microframes\n",
- 			 ep->desc.bEndpointAddress,
- 			 1 << interval,
--			 8 * ep->desc.bInterval);
-+			 desc_interval);
- 
- 	return interval;
- }
- 
-+static unsigned int xhci_parse_microframe_interval(struct usb_device *udev,
-+		struct usb_host_endpoint *ep)
-+{
-+	return xhci_microframes_to_exponent(udev, ep,
-+			ep->desc.bInterval, 0, 15);
-+}
-+
-+
-+static unsigned int xhci_parse_frame_interval(struct usb_device *udev,
-+		struct usb_host_endpoint *ep)
-+{
-+	return xhci_microframes_to_exponent(udev, ep,
-+			ep->desc.bInterval * 8, 3, 10);
-+}
-+
- /* Return the polling or NAK interval.
-  *
-  * The polling interval is expressed in "microframes".  If xHCI's Interval field
-@@ -1178,7 +1194,7 @@ static unsigned int xhci_get_endpoint_interval(struct usb_device *udev,
- 		/* Max NAK rate */
- 		if (usb_endpoint_xfer_control(&ep->desc) ||
- 		    usb_endpoint_xfer_bulk(&ep->desc)) {
--			interval = ep->desc.bInterval;
-+			interval = xhci_parse_microframe_interval(udev, ep);
- 			break;
- 		}
- 		/* Fall through - SS and HS isoc/int have same decoding */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0042-USB-Don-t-fail-USB3-probe-on-missing-legacy-PCI-IRQ.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0042-USB-Don-t-fail-USB3-probe-on-missing-legacy-PCI-IRQ.patch
deleted file mode 100644
index 63cf5fb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0042-USB-Don-t-fail-USB3-probe-on-missing-legacy-PCI-IRQ.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From d0e10baf6b8ed0dfd3e1e4aeae7167f64c25fe9f Mon Sep 17 00:00:00 2001
-From: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Date: Mon, 13 Feb 2012 16:25:57 -0800
-Subject: [PATCH 42/72] USB: Don't fail USB3 probe on missing legacy PCI IRQ.
-
-commit 68d07f64b8a11a852d48d1b05b724c3e20c0d94b upstream.
-
-Intel has a PCI USB xhci host controller on a new platform. It doesn't
-have a line IRQ definition in BIOS.  The Linux driver refuses to
-initialize this controller, but Windows works well because it only depends
-on MSI.
-
-Actually, Linux also can work for MSI.  This patch avoids the line IRQ
-checking for USB3 HCDs in usb core PCI probe.  It allows the xHCI driver
-to try to enable MSI or MSI-X first.  It will fail the probe if MSI
-enabling failed and there's no legacy PCI IRQ.
-
-This patch should be backported to kernels as old as 2.6.32.
-
-Signed-off-by: Alex Shi <alex.shi at intel.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/core/hcd-pci.c |    5 ++++-
- drivers/usb/core/hcd.c     |    6 ++++--
- drivers/usb/host/xhci.c    |    5 +++++
- 3 files changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/core/hcd-pci.c b/drivers/usb/core/hcd-pci.c
-index a004db3..61d08dd 100644
---- a/drivers/usb/core/hcd-pci.c
-+++ b/drivers/usb/core/hcd-pci.c
-@@ -187,7 +187,10 @@ int usb_hcd_pci_probe(struct pci_dev *dev, const struct pci_device_id *id)
- 		return -ENODEV;
- 	dev->current_state = PCI_D0;
- 
--	if (!dev->irq) {
-+	/* The xHCI driver supports MSI and MSI-X,
-+	 * so don't fail if the BIOS doesn't provide a legacy IRQ.
-+	 */
-+	if (!dev->irq && (driver->flags & HCD_MASK) != HCD_USB3) {
- 		dev_err(&dev->dev,
- 			"Found HC with no IRQ.  Check BIOS/PCI %s setup!\n",
- 			pci_name(dev));
-diff --git a/drivers/usb/core/hcd.c b/drivers/usb/core/hcd.c
-index 179e364..8cb9304 100644
---- a/drivers/usb/core/hcd.c
-+++ b/drivers/usb/core/hcd.c
-@@ -2465,8 +2465,10 @@ int usb_add_hcd(struct usb_hcd *hcd,
- 			&& device_can_wakeup(&hcd->self.root_hub->dev))
- 		dev_dbg(hcd->self.controller, "supports USB remote wakeup\n");
- 
--	/* enable irqs just before we start the controller */
--	if (usb_hcd_is_primary_hcd(hcd)) {
-+	/* enable irqs just before we start the controller,
-+	 * if the BIOS provides legacy PCI irqs.
-+	 */
-+	if (usb_hcd_is_primary_hcd(hcd) && irqnum) {
- 		retval = usb_hcd_request_irqs(hcd, irqnum, irqflags);
- 		if (retval)
- 			goto err_request_irq;
-diff --git a/drivers/usb/host/xhci.c b/drivers/usb/host/xhci.c
-index b33f059..034f554 100644
---- a/drivers/usb/host/xhci.c
-+++ b/drivers/usb/host/xhci.c
-@@ -352,6 +352,11 @@ static int xhci_try_enable_msi(struct usb_hcd *hcd)
- 		/* hcd->irq is -1, we have MSI */
- 		return 0;
- 
-+	if (!pdev->irq) {
-+		xhci_err(xhci, "No msi-x/msi found and no IRQ in BIOS\n");
-+		return -EINVAL;
-+	}
-+
- 	/* fall back to legacy interrupt*/
- 	ret = request_irq(pdev->irq, &usb_hcd_irq, IRQF_SHARED,
- 			hcd->irq_descr, hcd);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0043-USB-Set-hub-depth-after-USB3-hub-reset.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0043-USB-Set-hub-depth-after-USB3-hub-reset.patch
deleted file mode 100644
index 14db8a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0043-USB-Set-hub-depth-after-USB3-hub-reset.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From e72d2e79696c9f2c9f5d2a3ad0b09b124c493950 Mon Sep 17 00:00:00 2001
-From: Elric Fu <elricfu1 at gmail.com>
-Date: Sat, 18 Feb 2012 13:32:27 +0800
-Subject: [PATCH 43/72] USB: Set hub depth after USB3 hub reset
-
-commit a45aa3b30583e7d54e7cf4fbcd0aa699348a6e5c upstream.
-
-The superspeed device attached to a USB 3.0 hub(such as VIA's)
-doesn't respond the address device command after resume. The
-root cause is the superspeed hub will miss the Hub Depth value
-that is used as an offset into the route string to locate the
-bits it uses to determine the downstream port number after
-reset, and all packets can't be routed to the device attached
-to the superspeed hub.
-
-Hub driver sends a Set Hub Depth request to the superspeed hub
-except for USB 3.0 root hub when the hub is initialized and
-doesn't send the request again after reset due to the resume
-process. So moving the code that sends the Set Hub Depth request
-to the superspeed hub from hub_configure() to hub_activate()
-is to cover those situations include initialization and reset.
-
-The patch should be backported to kernels as old as 2.6.39.
-
-Signed-off-by: Elric Fu <elricfu1 at gmail.com>
-Signed-off-by: Sarah Sharp <sarah.a.sharp at linux.intel.com>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/core/hub.c |   30 +++++++++++++++++-------------
- 1 file changed, 17 insertions(+), 13 deletions(-)
-
-diff --git a/drivers/usb/core/hub.c b/drivers/usb/core/hub.c
-index 5b4da30..f982eeb 100644
---- a/drivers/usb/core/hub.c
-+++ b/drivers/usb/core/hub.c
-@@ -705,10 +705,26 @@ static void hub_activate(struct usb_hub *hub, enum hub_activation_type type)
- 	if (type == HUB_INIT3)
- 		goto init3;
- 
--	/* After a resume, port power should still be on.
-+	/* The superspeed hub except for root hub has to use Hub Depth
-+	 * value as an offset into the route string to locate the bits
-+	 * it uses to determine the downstream port number. So hub driver
-+	 * should send a set hub depth request to superspeed hub after
-+	 * the superspeed hub is set configuration in initialization or
-+	 * reset procedure.
-+	 *
-+	 * After a resume, port power should still be on.
- 	 * For any other type of activation, turn it on.
- 	 */
- 	if (type != HUB_RESUME) {
-+		if (hdev->parent && hub_is_superspeed(hdev)) {
-+			ret = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0),
-+					HUB_SET_DEPTH, USB_RT_HUB,
-+					hdev->level - 1, 0, NULL, 0,
-+					USB_CTRL_SET_TIMEOUT);
-+			if (ret < 0)
-+				dev_err(hub->intfdev,
-+						"set hub depth failed\n");
-+		}
- 
- 		/* Speed up system boot by using a delayed_work for the
- 		 * hub's initial power-up delays.  This is pretty awkward
-@@ -987,18 +1003,6 @@ static int hub_configure(struct usb_hub *hub,
- 		goto fail;
- 	}
- 
--	if (hub_is_superspeed(hdev) && (hdev->parent != NULL)) {
--		ret = usb_control_msg(hdev, usb_sndctrlpipe(hdev, 0),
--				HUB_SET_DEPTH, USB_RT_HUB,
--				hdev->level - 1, 0, NULL, 0,
--				USB_CTRL_SET_TIMEOUT);
--
--		if (ret < 0) {
--			message = "can't set hub depth";
--			goto fail;
--		}
--	}
--
- 	/* Request the entire hub descriptor.
- 	 * hub->descriptor can handle USB_MAXCHILDREN ports,
- 	 * but the hub can/will return fewer bytes here.
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0044-usb-storage-fix-freezing-of-the-scanning-thread.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0044-usb-storage-fix-freezing-of-the-scanning-thread.patch
deleted file mode 100644
index b2c37a2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0044-usb-storage-fix-freezing-of-the-scanning-thread.patch
+++ /dev/null
@@ -1,213 +0,0 @@
-From dcc7fca10922a9b707bbc8ea3138a8df665f8e55 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Tue, 21 Feb 2012 13:16:32 -0500
-Subject: [PATCH 44/72] usb-storage: fix freezing of the scanning thread
-
-commit bb94a406682770a35305daaa241ccdb7cab399de upstream.
-
-This patch (as1521b) fixes the interaction between usb-storage's
-scanning thread and the freezer.  The current implementation has a
-race: If the device is unplugged shortly after being plugged in and
-just as a system sleep begins, the scanning thread may get frozen
-before the khubd task.  Khubd won't be able to freeze until the
-disconnect processing is complete, and the disconnect processing can't
-proceed until the scanning thread finishes, so the sleep transition
-will fail.
-
-The implementation in the 3.2 kernel suffers from an additional
-problem.  There the scanning thread calls set_freezable_with_signal(),
-and the signals sent by the freezer will mess up the thread's I/O
-delays, which are all interruptible.
-
-The solution to both problems is the same: Replace the kernel thread
-used for scanning with a delayed-work routine on the system freezable
-work queue.  Freezable work queues have the nice property that you can
-cancel a work item even while the work queue is frozen, and no signals
-are needed.
-
-The 3.2 version of this patch solves the problem in Bugzilla #42730.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Acked-by: Seth Forshee <seth.forshee at canonical.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/usb/storage/usb.c |   89 ++++++++++++++++-----------------------------
- drivers/usb/storage/usb.h |    7 ++--
- 2 files changed, 35 insertions(+), 61 deletions(-)
-
-diff --git a/drivers/usb/storage/usb.c b/drivers/usb/storage/usb.c
-index 9e069ef..db51ba1 100644
---- a/drivers/usb/storage/usb.c
-+++ b/drivers/usb/storage/usb.c
-@@ -788,15 +788,19 @@ static void quiesce_and_remove_host(struct us_data *us)
- 	struct Scsi_Host *host = us_to_host(us);
- 
- 	/* If the device is really gone, cut short reset delays */
--	if (us->pusb_dev->state == USB_STATE_NOTATTACHED)
-+	if (us->pusb_dev->state == USB_STATE_NOTATTACHED) {
- 		set_bit(US_FLIDX_DISCONNECTING, &us->dflags);
-+		wake_up(&us->delay_wait);
-+	}
- 
--	/* Prevent SCSI-scanning (if it hasn't started yet)
--	 * and wait for the SCSI-scanning thread to stop.
-+	/* Prevent SCSI scanning (if it hasn't started yet)
-+	 * or wait for the SCSI-scanning routine to stop.
- 	 */
--	set_bit(US_FLIDX_DONT_SCAN, &us->dflags);
--	wake_up(&us->delay_wait);
--	wait_for_completion(&us->scanning_done);
-+	cancel_delayed_work_sync(&us->scan_dwork);
-+
-+	/* Balance autopm calls if scanning was cancelled */
-+	if (test_bit(US_FLIDX_SCAN_PENDING, &us->dflags))
-+		usb_autopm_put_interface_no_suspend(us->pusb_intf);
- 
- 	/* Removing the host will perform an orderly shutdown: caches
- 	 * synchronized, disks spun down, etc.
-@@ -823,52 +827,28 @@ static void release_everything(struct us_data *us)
- 	scsi_host_put(us_to_host(us));
- }
- 
--/* Thread to carry out delayed SCSI-device scanning */
--static int usb_stor_scan_thread(void * __us)
-+/* Delayed-work routine to carry out SCSI-device scanning */
-+static void usb_stor_scan_dwork(struct work_struct *work)
- {
--	struct us_data *us = (struct us_data *)__us;
-+	struct us_data *us = container_of(work, struct us_data,
-+			scan_dwork.work);
- 	struct device *dev = &us->pusb_intf->dev;
- 
--	dev_dbg(dev, "device found\n");
-+	dev_dbg(dev, "starting scan\n");
- 
--	set_freezable_with_signal();
--	/*
--	 * Wait for the timeout to expire or for a disconnect
--	 *
--	 * We can't freeze in this thread or we risk causing khubd to
--	 * fail to freeze, but we can't be non-freezable either. Nor can
--	 * khubd freeze while waiting for scanning to complete as it may
--	 * hold the device lock, causing a hang when suspending devices.
--	 * So we request a fake signal when freezing and use
--	 * interruptible sleep to kick us out of our wait early when
--	 * freezing happens.
--	 */
--	if (delay_use > 0) {
--		dev_dbg(dev, "waiting for device to settle "
--				"before scanning\n");
--		wait_event_interruptible_timeout(us->delay_wait,
--				test_bit(US_FLIDX_DONT_SCAN, &us->dflags),
--				delay_use * HZ);
-+	/* For bulk-only devices, determine the max LUN value */
-+	if (us->protocol == USB_PR_BULK && !(us->fflags & US_FL_SINGLE_LUN)) {
-+		mutex_lock(&us->dev_mutex);
-+		us->max_lun = usb_stor_Bulk_max_lun(us);
-+		mutex_unlock(&us->dev_mutex);
- 	}
-+	scsi_scan_host(us_to_host(us));
-+	dev_dbg(dev, "scan complete\n");
- 
--	/* If the device is still connected, perform the scanning */
--	if (!test_bit(US_FLIDX_DONT_SCAN, &us->dflags)) {
--
--		/* For bulk-only devices, determine the max LUN value */
--		if (us->protocol == USB_PR_BULK &&
--				!(us->fflags & US_FL_SINGLE_LUN)) {
--			mutex_lock(&us->dev_mutex);
--			us->max_lun = usb_stor_Bulk_max_lun(us);
--			mutex_unlock(&us->dev_mutex);
--		}
--		scsi_scan_host(us_to_host(us));
--		dev_dbg(dev, "scan complete\n");
--
--		/* Should we unbind if no devices were detected? */
--	}
-+	/* Should we unbind if no devices were detected? */
- 
- 	usb_autopm_put_interface(us->pusb_intf);
--	complete_and_exit(&us->scanning_done, 0);
-+	clear_bit(US_FLIDX_SCAN_PENDING, &us->dflags);
- }
- 
- static unsigned int usb_stor_sg_tablesize(struct usb_interface *intf)
-@@ -915,7 +895,7 @@ int usb_stor_probe1(struct us_data **pus,
- 	init_completion(&us->cmnd_ready);
- 	init_completion(&(us->notify));
- 	init_waitqueue_head(&us->delay_wait);
--	init_completion(&us->scanning_done);
-+	INIT_DELAYED_WORK(&us->scan_dwork, usb_stor_scan_dwork);
- 
- 	/* Associate the us_data structure with the USB device */
- 	result = associate_dev(us, intf);
-@@ -946,7 +926,6 @@ EXPORT_SYMBOL_GPL(usb_stor_probe1);
- /* Second part of general USB mass-storage probing */
- int usb_stor_probe2(struct us_data *us)
- {
--	struct task_struct *th;
- 	int result;
- 	struct device *dev = &us->pusb_intf->dev;
- 
-@@ -987,20 +966,14 @@ int usb_stor_probe2(struct us_data *us)
- 		goto BadDevice;
- 	}
- 
--	/* Start up the thread for delayed SCSI-device scanning */
--	th = kthread_create(usb_stor_scan_thread, us, "usb-stor-scan");
--	if (IS_ERR(th)) {
--		dev_warn(dev,
--				"Unable to start the device-scanning thread\n");
--		complete(&us->scanning_done);
--		quiesce_and_remove_host(us);
--		result = PTR_ERR(th);
--		goto BadDevice;
--	}
--
-+	/* Submit the delayed_work for SCSI-device scanning */
- 	usb_autopm_get_interface_no_resume(us->pusb_intf);
--	wake_up_process(th);
-+	set_bit(US_FLIDX_SCAN_PENDING, &us->dflags);
- 
-+	if (delay_use > 0)
-+		dev_dbg(dev, "waiting for device to settle before scanning\n");
-+	queue_delayed_work(system_freezable_wq, &us->scan_dwork,
-+			delay_use * HZ);
- 	return 0;
- 
- 	/* We come here if there are any problems */
-diff --git a/drivers/usb/storage/usb.h b/drivers/usb/storage/usb.h
-index 7b0f211..75f70f0 100644
---- a/drivers/usb/storage/usb.h
-+++ b/drivers/usb/storage/usb.h
-@@ -47,6 +47,7 @@
- #include <linux/blkdev.h>
- #include <linux/completion.h>
- #include <linux/mutex.h>
-+#include <linux/workqueue.h>
- #include <scsi/scsi_host.h>
- 
- struct us_data;
-@@ -72,7 +73,7 @@ struct us_unusual_dev {
- #define US_FLIDX_DISCONNECTING	3	/* disconnect in progress   */
- #define US_FLIDX_RESETTING	4	/* device reset in progress */
- #define US_FLIDX_TIMED_OUT	5	/* SCSI midlayer timed out  */
--#define US_FLIDX_DONT_SCAN	6	/* don't scan (disconnect)  */
-+#define US_FLIDX_SCAN_PENDING	6	/* scanning not yet done    */
- #define US_FLIDX_REDO_READ10	7	/* redo READ(10) command    */
- #define US_FLIDX_READ10_WORKED	8	/* previous READ(10) succeeded */
- 
-@@ -147,8 +148,8 @@ struct us_data {
- 	/* mutual exclusion and synchronization structures */
- 	struct completion	cmnd_ready;	 /* to sleep thread on	    */
- 	struct completion	notify;		 /* thread begin/end	    */
--	wait_queue_head_t	delay_wait;	 /* wait during scan, reset */
--	struct completion	scanning_done;	 /* wait for scan thread    */
-+	wait_queue_head_t	delay_wait;	 /* wait during reset	    */
-+	struct delayed_work	scan_dwork;	 /* for async scanning      */
- 
- 	/* subdriver information */
- 	void			*extra;		 /* Any extra data          */
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0045-target-Allow-control-CDBs-with-data-1-page.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0045-target-Allow-control-CDBs-with-data-1-page.patch
deleted file mode 100644
index a9c90b5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0045-target-Allow-control-CDBs-with-data-1-page.patch
+++ /dev/null
@@ -1,513 +0,0 @@
-From b4b86dd5611cd8f8c7d743c98862b5873b085135 Mon Sep 17 00:00:00 2001
-From: Andy Grover <agrover at redhat.com>
-Date: Mon, 16 Jan 2012 16:57:08 -0800
-Subject: [PATCH 45/72] target: Allow control CDBs with data > 1 page
-
-commit 4949314c7283ea4f9ade182ca599583b89f7edd6 upstream.
-
-We need to handle >1 page control cdbs, so extend the code to do a vmap
-if bigger than 1 page. It seems like kmap() is still preferable if just
-a page, fewer TLB shootdowns(?), so keep using that when possible.
-
-Rename function pair for their new scope.
-
-Signed-off-by: Andy Grover <agrover at redhat.com>
-Signed-off-by: Nicholas Bellinger <nab at linux-iscsi.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/target/target_core_alua.c      |    8 +++---
- drivers/target/target_core_cdb.c       |   28 ++++++++++----------
- drivers/target/target_core_device.c    |    4 +--
- drivers/target/target_core_pr.c        |   38 +++++++++++++--------------
- drivers/target/target_core_pscsi.c     |    4 +--
- drivers/target/target_core_transport.c |   45 ++++++++++++++++++++++++--------
- include/target/target_core_base.h      |    1 +
- include/target/target_core_transport.h |    4 +--
- 8 files changed, 78 insertions(+), 54 deletions(-)
-
-diff --git a/drivers/target/target_core_alua.c b/drivers/target/target_core_alua.c
-index 1dcbef4..1d24512 100644
---- a/drivers/target/target_core_alua.c
-+++ b/drivers/target/target_core_alua.c
-@@ -79,7 +79,7 @@ int target_emulate_report_target_port_groups(struct se_task *task)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	spin_lock(&su_dev->t10_alua.tg_pt_gps_lock);
- 	list_for_each_entry(tg_pt_gp, &su_dev->t10_alua.tg_pt_gps_list,
-@@ -164,7 +164,7 @@ int target_emulate_report_target_port_groups(struct se_task *task)
- 	buf[2] = ((rd_len >> 8) & 0xff);
- 	buf[3] = (rd_len & 0xff);
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	task->task_scsi_status = GOOD;
- 	transport_complete_task(task, 1);
-@@ -195,7 +195,7 @@ int target_emulate_set_target_port_groups(struct se_task *task)
- 		cmd->scsi_sense_reason = TCM_LOGICAL_UNIT_COMMUNICATION_FAILURE;
- 		return -EINVAL;
- 	}
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	/*
- 	 * Determine if explict ALUA via SET_TARGET_PORT_GROUPS is allowed
-@@ -352,7 +352,7 @@ int target_emulate_set_target_port_groups(struct se_task *task)
- 	}
- 
- out:
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	task->task_scsi_status = GOOD;
- 	transport_complete_task(task, 1);
- 	return 0;
-diff --git a/drivers/target/target_core_cdb.c b/drivers/target/target_core_cdb.c
-index 251e48f..8facd33 100644
---- a/drivers/target/target_core_cdb.c
-+++ b/drivers/target/target_core_cdb.c
-@@ -82,7 +82,7 @@ target_emulate_inquiry_std(struct se_cmd *cmd)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	if (dev == tpg->tpg_virt_lun0.lun_se_dev) {
- 		buf[0] = 0x3f; /* Not connected */
-@@ -135,7 +135,7 @@ target_emulate_inquiry_std(struct se_cmd *cmd)
- 	buf[4] = 31; /* Set additional length to 31 */
- 
- out:
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	return 0;
- }
- 
-@@ -726,7 +726,7 @@ int target_emulate_inquiry(struct se_task *task)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	buf[0] = dev->transport->get_device_type(dev);
- 
-@@ -743,7 +743,7 @@ int target_emulate_inquiry(struct se_task *task)
- 	ret = -EINVAL;
- 
- out_unmap:
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- out:
- 	if (!ret) {
- 		task->task_scsi_status = GOOD;
-@@ -765,7 +765,7 @@ int target_emulate_readcapacity(struct se_task *task)
- 	else
- 		blocks = (u32)blocks_long;
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	buf[0] = (blocks >> 24) & 0xff;
- 	buf[1] = (blocks >> 16) & 0xff;
-@@ -781,7 +781,7 @@ int target_emulate_readcapacity(struct se_task *task)
- 	if (dev->se_sub_dev->se_dev_attrib.emulate_tpu || dev->se_sub_dev->se_dev_attrib.emulate_tpws)
- 		put_unaligned_be32(0xFFFFFFFF, &buf[0]);
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	task->task_scsi_status = GOOD;
- 	transport_complete_task(task, 1);
-@@ -795,7 +795,7 @@ int target_emulate_readcapacity_16(struct se_task *task)
- 	unsigned char *buf;
- 	unsigned long long blocks = dev->transport->get_blocks(dev);
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	buf[0] = (blocks >> 56) & 0xff;
- 	buf[1] = (blocks >> 48) & 0xff;
-@@ -816,7 +816,7 @@ int target_emulate_readcapacity_16(struct se_task *task)
- 	if (dev->se_sub_dev->se_dev_attrib.emulate_tpu || dev->se_sub_dev->se_dev_attrib.emulate_tpws)
- 		buf[14] = 0x80;
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	task->task_scsi_status = GOOD;
- 	transport_complete_task(task, 1);
-@@ -1029,9 +1029,9 @@ int target_emulate_modesense(struct se_task *task)
- 			offset = cmd->data_length;
- 	}
- 
--	rbuf = transport_kmap_first_data_page(cmd);
-+	rbuf = transport_kmap_data_sg(cmd);
- 	memcpy(rbuf, buf, offset);
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	task->task_scsi_status = GOOD;
- 	transport_complete_task(task, 1);
-@@ -1053,7 +1053,7 @@ int target_emulate_request_sense(struct se_task *task)
- 		return -ENOSYS;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	if (!core_scsi3_ua_clear_for_request_sense(cmd, &ua_asc, &ua_ascq)) {
- 		/*
-@@ -1099,7 +1099,7 @@ int target_emulate_request_sense(struct se_task *task)
- 	}
- 
- end:
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	task->task_scsi_status = GOOD;
- 	transport_complete_task(task, 1);
- 	return 0;
-@@ -1133,7 +1133,7 @@ int target_emulate_unmap(struct se_task *task)
- 	dl = get_unaligned_be16(&cdb[0]);
- 	bd_dl = get_unaligned_be16(&cdb[2]);
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	ptr = &buf[offset];
- 	pr_debug("UNMAP: Sub: %s Using dl: %hu bd_dl: %hu size: %hu"
-@@ -1157,7 +1157,7 @@ int target_emulate_unmap(struct se_task *task)
- 	}
- 
- err:
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	if (!ret) {
- 		task->task_scsi_status = GOOD;
- 		transport_complete_task(task, 1);
-diff --git a/drivers/target/target_core_device.c b/drivers/target/target_core_device.c
-index 9b86394..19f8aca 100644
---- a/drivers/target/target_core_device.c
-+++ b/drivers/target/target_core_device.c
-@@ -658,7 +658,7 @@ int target_report_luns(struct se_task *se_task)
- 	unsigned char *buf;
- 	u32 cdb_offset = 0, lun_count = 0, offset = 8, i;
- 
--	buf = transport_kmap_first_data_page(se_cmd);
-+	buf = (unsigned char *) transport_kmap_data_sg(se_cmd);
- 
- 	/*
- 	 * If no struct se_session pointer is present, this struct se_cmd is
-@@ -696,7 +696,7 @@ int target_report_luns(struct se_task *se_task)
- 	 * See SPC3 r07, page 159.
- 	 */
- done:
--	transport_kunmap_first_data_page(se_cmd);
-+	transport_kunmap_data_sg(se_cmd);
- 	lun_count *= 8;
- 	buf[0] = ((lun_count >> 24) & 0xff);
- 	buf[1] = ((lun_count >> 16) & 0xff);
-diff --git a/drivers/target/target_core_pr.c b/drivers/target/target_core_pr.c
-index 9119d92..778c1a6 100644
---- a/drivers/target/target_core_pr.c
-+++ b/drivers/target/target_core_pr.c
-@@ -1538,7 +1538,7 @@ static int core_scsi3_decode_spec_i_port(
- 	tidh_new->dest_local_nexus = 1;
- 	list_add_tail(&tidh_new->dest_list, &tid_dest_list);
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 	/*
- 	 * For a PERSISTENT RESERVE OUT specify initiator ports payload,
- 	 * first extract TransportID Parameter Data Length, and make sure
-@@ -1789,7 +1789,7 @@ static int core_scsi3_decode_spec_i_port(
- 
- 	}
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	/*
- 	 * Go ahead and create a registrations from tid_dest_list for the
-@@ -1837,7 +1837,7 @@ static int core_scsi3_decode_spec_i_port(
- 
- 	return 0;
- out:
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	/*
- 	 * For the failure case, release everything from tid_dest_list
- 	 * including *dest_pr_reg and the configfs dependances..
-@@ -3429,14 +3429,14 @@ static int core_scsi3_emulate_pro_register_and_move(
- 	 * will be moved to for the TransportID containing SCSI initiator WWN
- 	 * information.
- 	 */
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 	rtpi = (buf[18] & 0xff) << 8;
- 	rtpi |= buf[19] & 0xff;
- 	tid_len = (buf[20] & 0xff) << 24;
- 	tid_len |= (buf[21] & 0xff) << 16;
- 	tid_len |= (buf[22] & 0xff) << 8;
- 	tid_len |= buf[23] & 0xff;
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	buf = NULL;
- 
- 	if ((tid_len + 24) != cmd->data_length) {
-@@ -3488,7 +3488,7 @@ static int core_scsi3_emulate_pro_register_and_move(
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 	proto_ident = (buf[24] & 0x0f);
- #if 0
- 	pr_debug("SPC-3 PR REGISTER_AND_MOVE: Extracted Protocol Identifier:"
-@@ -3522,7 +3522,7 @@ static int core_scsi3_emulate_pro_register_and_move(
- 		goto out;
- 	}
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	buf = NULL;
- 
- 	pr_debug("SPC-3 PR [%s] Extracted initiator %s identifier: %s"
-@@ -3787,13 +3787,13 @@ after_iport_check:
- 					" REGISTER_AND_MOVE\n");
- 	}
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	core_scsi3_put_pr_reg(dest_pr_reg);
- 	return 0;
- out:
- 	if (buf)
--		transport_kunmap_first_data_page(cmd);
-+		transport_kunmap_data_sg(cmd);
- 	if (dest_se_deve)
- 		core_scsi3_lunacl_undepend_item(dest_se_deve);
- 	if (dest_node_acl)
-@@ -3867,7 +3867,7 @@ int target_scsi3_emulate_pr_out(struct se_task *task)
- 	scope = (cdb[2] & 0xf0);
- 	type = (cdb[2] & 0x0f);
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 	/*
- 	 * From PERSISTENT_RESERVE_OUT parameter list (payload)
- 	 */
-@@ -3885,7 +3885,7 @@ int target_scsi3_emulate_pr_out(struct se_task *task)
- 		aptpl = (buf[17] & 0x01);
- 		unreg = (buf[17] & 0x02);
- 	}
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 	buf = NULL;
- 
- 	/*
-@@ -3985,7 +3985,7 @@ static int core_scsi3_pri_read_keys(struct se_cmd *cmd)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 	buf[0] = ((su_dev->t10_pr.pr_generation >> 24) & 0xff);
- 	buf[1] = ((su_dev->t10_pr.pr_generation >> 16) & 0xff);
- 	buf[2] = ((su_dev->t10_pr.pr_generation >> 8) & 0xff);
-@@ -4019,7 +4019,7 @@ static int core_scsi3_pri_read_keys(struct se_cmd *cmd)
- 	buf[6] = ((add_len >> 8) & 0xff);
- 	buf[7] = (add_len & 0xff);
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	return 0;
- }
-@@ -4045,7 +4045,7 @@ static int core_scsi3_pri_read_reservation(struct se_cmd *cmd)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 	buf[0] = ((su_dev->t10_pr.pr_generation >> 24) & 0xff);
- 	buf[1] = ((su_dev->t10_pr.pr_generation >> 16) & 0xff);
- 	buf[2] = ((su_dev->t10_pr.pr_generation >> 8) & 0xff);
-@@ -4104,7 +4104,7 @@ static int core_scsi3_pri_read_reservation(struct se_cmd *cmd)
- 
- err:
- 	spin_unlock(&se_dev->dev_reservation_lock);
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	return 0;
- }
-@@ -4128,7 +4128,7 @@ static int core_scsi3_pri_report_capabilities(struct se_cmd *cmd)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	buf[0] = ((add_len << 8) & 0xff);
- 	buf[1] = (add_len & 0xff);
-@@ -4160,7 +4160,7 @@ static int core_scsi3_pri_report_capabilities(struct se_cmd *cmd)
- 	buf[4] |= 0x02; /* PR_TYPE_WRITE_EXCLUSIVE */
- 	buf[5] |= 0x01; /* PR_TYPE_EXCLUSIVE_ACCESS_ALLREG */
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	return 0;
- }
-@@ -4190,7 +4190,7 @@ static int core_scsi3_pri_read_full_status(struct se_cmd *cmd)
- 		return -EINVAL;
- 	}
- 
--	buf = transport_kmap_first_data_page(cmd);
-+	buf = transport_kmap_data_sg(cmd);
- 
- 	buf[0] = ((su_dev->t10_pr.pr_generation >> 24) & 0xff);
- 	buf[1] = ((su_dev->t10_pr.pr_generation >> 16) & 0xff);
-@@ -4311,7 +4311,7 @@ static int core_scsi3_pri_read_full_status(struct se_cmd *cmd)
- 	buf[6] = ((add_len >> 8) & 0xff);
- 	buf[7] = (add_len & 0xff);
- 
--	transport_kunmap_first_data_page(cmd);
-+	transport_kunmap_data_sg(cmd);
- 
- 	return 0;
- }
-diff --git a/drivers/target/target_core_pscsi.c b/drivers/target/target_core_pscsi.c
-index 8b15e56..5c12137 100644
---- a/drivers/target/target_core_pscsi.c
-+++ b/drivers/target/target_core_pscsi.c
-@@ -695,7 +695,7 @@ static int pscsi_transport_complete(struct se_task *task)
- 
- 		if (task->task_se_cmd->se_deve->lun_flags &
- 				TRANSPORT_LUNFLAGS_READ_ONLY) {
--			unsigned char *buf = transport_kmap_first_data_page(task->task_se_cmd);
-+			unsigned char *buf = transport_kmap_data_sg(task->task_se_cmd);
- 
- 			if (cdb[0] == MODE_SENSE_10) {
- 				if (!(buf[3] & 0x80))
-@@ -705,7 +705,7 @@ static int pscsi_transport_complete(struct se_task *task)
- 					buf[2] |= 0x80;
- 			}
- 
--			transport_kunmap_first_data_page(task->task_se_cmd);
-+			transport_kunmap_data_sg(task->task_se_cmd);
- 		}
- 	}
- after_mode_sense:
-diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
-index 861628e..e4ddb93 100644
---- a/drivers/target/target_core_transport.c
-+++ b/drivers/target/target_core_transport.c
-@@ -3053,11 +3053,6 @@ static int transport_generic_cmd_sequencer(
- 	     (cmd->se_cmd_flags & SCF_SCSI_DATA_SG_IO_CDB)))
- 		goto out_unsupported_cdb;
- 
--	/* Let's limit control cdbs to a page, for simplicity's sake. */
--	if ((cmd->se_cmd_flags & SCF_SCSI_CONTROL_SG_IO_CDB) &&
--	    size > PAGE_SIZE)
--		goto out_invalid_cdb_field;
--
- 	transport_set_supported_SAM_opcode(cmd);
- 	return ret;
- 
-@@ -3435,9 +3430,11 @@ int transport_generic_map_mem_to_cmd(
- }
- EXPORT_SYMBOL(transport_generic_map_mem_to_cmd);
- 
--void *transport_kmap_first_data_page(struct se_cmd *cmd)
-+void *transport_kmap_data_sg(struct se_cmd *cmd)
- {
- 	struct scatterlist *sg = cmd->t_data_sg;
-+	struct page **pages;
-+	int i;
- 
- 	BUG_ON(!sg);
- 	/*
-@@ -3445,15 +3442,41 @@ void *transport_kmap_first_data_page(struct se_cmd *cmd)
- 	 * tcm_loop who may be using a contig buffer from the SCSI midlayer for
- 	 * control CDBs passed as SGLs via transport_generic_map_mem_to_cmd()
- 	 */
--	return kmap(sg_page(sg)) + sg->offset;
-+	if (!cmd->t_data_nents)
-+		return NULL;
-+	else if (cmd->t_data_nents == 1)
-+		return kmap(sg_page(sg)) + sg->offset;
-+
-+	/* >1 page. use vmap */
-+	pages = kmalloc(sizeof(*pages) * cmd->t_data_nents, GFP_KERNEL);
-+	if (!pages)
-+		return NULL;
-+
-+	/* convert sg[] to pages[] */
-+	for_each_sg(cmd->t_data_sg, sg, cmd->t_data_nents, i) {
-+		pages[i] = sg_page(sg);
-+	}
-+
-+	cmd->t_data_vmap = vmap(pages, cmd->t_data_nents,  VM_MAP, PAGE_KERNEL);
-+	kfree(pages);
-+	if (!cmd->t_data_vmap)
-+		return NULL;
-+
-+	return cmd->t_data_vmap + cmd->t_data_sg[0].offset;
- }
--EXPORT_SYMBOL(transport_kmap_first_data_page);
-+EXPORT_SYMBOL(transport_kmap_data_sg);
- 
--void transport_kunmap_first_data_page(struct se_cmd *cmd)
-+void transport_kunmap_data_sg(struct se_cmd *cmd)
- {
--	kunmap(sg_page(cmd->t_data_sg));
-+	if (!cmd->t_data_nents)
-+		return;
-+	else if (cmd->t_data_nents == 1)
-+		kunmap(sg_page(cmd->t_data_sg));
-+
-+	vunmap(cmd->t_data_vmap);
-+	cmd->t_data_vmap = NULL;
- }
--EXPORT_SYMBOL(transport_kunmap_first_data_page);
-+EXPORT_SYMBOL(transport_kunmap_data_sg);
- 
- static int
- transport_generic_get_mem(struct se_cmd *cmd)
-diff --git a/include/target/target_core_base.h b/include/target/target_core_base.h
-index a79886c..94bbec3 100644
---- a/include/target/target_core_base.h
-+++ b/include/target/target_core_base.h
-@@ -486,6 +486,7 @@ struct se_cmd {
- 
- 	struct scatterlist	*t_data_sg;
- 	unsigned int		t_data_nents;
-+	void			*t_data_vmap;
- 	struct scatterlist	*t_bidi_data_sg;
- 	unsigned int		t_bidi_data_nents;
- 
-diff --git a/include/target/target_core_transport.h b/include/target/target_core_transport.h
-index dac4f2d..72751e8 100644
---- a/include/target/target_core_transport.h
-+++ b/include/target/target_core_transport.h
-@@ -129,8 +129,8 @@ extern void transport_init_se_cmd(struct se_cmd *,
- 					struct target_core_fabric_ops *,
- 					struct se_session *, u32, int, int,
- 					unsigned char *);
--void *transport_kmap_first_data_page(struct se_cmd *cmd);
--void transport_kunmap_first_data_page(struct se_cmd *cmd);
-+void *transport_kmap_data_sg(struct se_cmd *);
-+void transport_kunmap_data_sg(struct se_cmd *);
- extern int transport_generic_allocate_tasks(struct se_cmd *, unsigned char *);
- extern int transport_handle_cdb_direct(struct se_cmd *);
- extern int transport_generic_handle_cdb_map(struct se_cmd *);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0046-ASoC-wm8962-Fix-sidetone-enumeration-texts.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0046-ASoC-wm8962-Fix-sidetone-enumeration-texts.patch
deleted file mode 100644
index 2f340cc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0046-ASoC-wm8962-Fix-sidetone-enumeration-texts.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 5e37abd88b778975e31615fb27be99b0de88b9c9 Mon Sep 17 00:00:00 2001
-From: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Date: Mon, 13 Feb 2012 22:00:47 -0800
-Subject: [PATCH 46/72] ASoC: wm8962: Fix sidetone enumeration texts
-
-commit 31794bc37bf2db84f085da52b72bfba65739b2d2 upstream.
-
-The sidetone enumeration texts have left and right swapped.
-
-Signed-off-by: Mark Brown <broonie at opensource.wolfsonmicro.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/soc/codecs/wm8962.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/sound/soc/codecs/wm8962.c b/sound/soc/codecs/wm8962.c
-index d795294..07dd7eb 100644
---- a/sound/soc/codecs/wm8962.c
-+++ b/sound/soc/codecs/wm8962.c
-@@ -2559,7 +2559,7 @@ static int dsp2_event(struct snd_soc_dapm_widget *w,
- 	return 0;
- }
- 
--static const char *st_text[] = { "None", "Right", "Left" };
-+static const char *st_text[] = { "None", "Left", "Right" };
- 
- static const struct soc_enum str_enum =
- 	SOC_ENUM_SINGLE(WM8962_DAC_DSP_MIXING_1, 2, 3, st_text);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0047-ALSA-hda-realtek-Fix-overflow-of-vol-sw-check-bitmap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0047-ALSA-hda-realtek-Fix-overflow-of-vol-sw-check-bitmap.patch
deleted file mode 100644
index bdca6d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0047-ALSA-hda-realtek-Fix-overflow-of-vol-sw-check-bitmap.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 9cb30168f9d3a57f148f342b0baa0de775b38862 Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Thu, 16 Feb 2012 16:38:07 +0100
-Subject: [PATCH 47/72] ALSA: hda/realtek - Fix overflow of vol/sw check
- bitmap
-
-commit c14c95f62ecb8710af14ae0d48e01991b70bb6f4 upstream.
-
-The bitmap introduced in the commit [527e4d73: ALSA: hda/realtek - Fix
-missing volume controls with ALC260] is too narrow for some codecs,
-which may have more NIDs than 0x20, thus it may overflow the bitmap
-array on them.
-
-Just double the number to cover all and also add a sanity-check code
-to be safer.
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |   11 ++++++++---
- 1 file changed, 8 insertions(+), 3 deletions(-)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index 9c197d4..ceda0ac 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -79,6 +79,8 @@ enum {
- 	ALC_AUTOMUTE_MIXER,	/* mute/unmute mixer widget AMP */
- };
- 
-+#define MAX_VOL_NIDS	0x40
-+
- struct alc_spec {
- 	/* codec parameterization */
- 	const struct snd_kcontrol_new *mixers[5];	/* mixer arrays */
-@@ -117,8 +119,8 @@ struct alc_spec {
- 	const hda_nid_t *capsrc_nids;
- 	hda_nid_t dig_in_nid;		/* digital-in NID; optional */
- 	hda_nid_t mixer_nid;		/* analog-mixer NID */
--	DECLARE_BITMAP(vol_ctls, 0x20 << 1);
--	DECLARE_BITMAP(sw_ctls, 0x20 << 1);
-+	DECLARE_BITMAP(vol_ctls, MAX_VOL_NIDS << 1);
-+	DECLARE_BITMAP(sw_ctls, MAX_VOL_NIDS << 1);
- 
- 	/* capture setup for dynamic dual-adc switch */
- 	hda_nid_t cur_adc;
-@@ -3068,7 +3070,10 @@ static int alc_auto_fill_dac_nids(struct hda_codec *codec)
- static inline unsigned int get_ctl_pos(unsigned int data)
- {
- 	hda_nid_t nid = get_amp_nid_(data);
--	unsigned int dir = get_amp_direction_(data);
-+	unsigned int dir;
-+	if (snd_BUG_ON(nid >= MAX_VOL_NIDS))
-+		return 0;
-+	dir = get_amp_direction_(data);
- 	return (nid << 1) | dir;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch
deleted file mode 100644
index 45ba5e9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From a11dc0be919ff4e94f9c6198ab6c9c5162f3d5fd Mon Sep 17 00:00:00 2001
-From: Takashi Iwai <tiwai at suse.de>
-Date: Fri, 17 Feb 2012 10:12:38 +0100
-Subject: [PATCH 48/72] ALSA: hda/realtek - Fix surround output regression on
- Acer Aspire 5935
-
-commit ef8d60fb79614a86a82720dc2402631dbcafb315 upstream.
-
-The previous fix for the speaker on Acer Aspire 59135 introduced
-another problem for surround outputs.  It changed the connections on
-the line-in/mic pins for limiting the routes, but it left the modified
-connections.  Thus wrong connection indices were written when set to
-4ch or 6ch mode.
-
-This patch fixes it by restoring the right connections just after
-parsing the tree but before the initialization.
-
-Bugzilla: https://bugzilla.kernel.org/show_bug.cgi?id=42740
-
-Signed-off-by: Takashi Iwai <tiwai at suse.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- sound/pci/hda/patch_realtek.c |    8 ++++++++
- 1 file changed, 8 insertions(+)
-
-diff --git a/sound/pci/hda/patch_realtek.c b/sound/pci/hda/patch_realtek.c
-index ceda0ac..c4c8d78 100644
---- a/sound/pci/hda/patch_realtek.c
-+++ b/sound/pci/hda/patch_realtek.c
-@@ -4229,12 +4229,20 @@ static void alc889_fixup_dac_route(struct hda_codec *codec,
- 				   const struct alc_fixup *fix, int action)
- {
- 	if (action == ALC_FIXUP_ACT_PRE_PROBE) {
-+		/* fake the connections during parsing the tree */
- 		hda_nid_t conn1[2] = { 0x0c, 0x0d };
- 		hda_nid_t conn2[2] = { 0x0e, 0x0f };
- 		snd_hda_override_conn_list(codec, 0x14, 2, conn1);
- 		snd_hda_override_conn_list(codec, 0x15, 2, conn1);
- 		snd_hda_override_conn_list(codec, 0x18, 2, conn2);
- 		snd_hda_override_conn_list(codec, 0x1a, 2, conn2);
-+	} else if (action == ALC_FIXUP_ACT_PROBE) {
-+		/* restore the connections */
-+		hda_nid_t conn[5] = { 0x0c, 0x0d, 0x0e, 0x0f, 0x26 };
-+		snd_hda_override_conn_list(codec, 0x14, 5, conn);
-+		snd_hda_override_conn_list(codec, 0x15, 5, conn);
-+		snd_hda_override_conn_list(codec, 0x18, 5, conn);
-+		snd_hda_override_conn_list(codec, 0x1a, 5, conn);
- 	}
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0049-NOMMU-Lock-i_mmap_mutex-for-access-to-the-VMA-prio-l.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0049-NOMMU-Lock-i_mmap_mutex-for-access-to-the-VMA-prio-l.patch
deleted file mode 100644
index a818525..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0049-NOMMU-Lock-i_mmap_mutex-for-access-to-the-VMA-prio-l.patch
+++ /dev/null
@@ -1,76 +0,0 @@
-From 79d644deb3492752ab226ff7c652fecbf89120b0 Mon Sep 17 00:00:00 2001
-From: David Howells <dhowells at redhat.com>
-Date: Thu, 23 Feb 2012 13:50:35 +0000
-Subject: [PATCH 49/72] NOMMU: Lock i_mmap_mutex for access to the VMA prio
- list
-
-commit 918e556ec214ed2f584e4cac56d7b29e4bb6bf27 upstream.
-
-Lock i_mmap_mutex for access to the VMA prio list to prevent concurrent
-access.  Currently, certain parts of the mmap handling are protected by
-the region mutex, but not all.
-
-Reported-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: David Howells <dhowells at redhat.com>
-Acked-by: Al Viro <viro at zeniv.linux.org.uk>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- mm/nommu.c |    7 +++++++
- 1 file changed, 7 insertions(+)
-
-diff --git a/mm/nommu.c b/mm/nommu.c
-index b982290..ee7e57e 100644
---- a/mm/nommu.c
-+++ b/mm/nommu.c
-@@ -696,9 +696,11 @@ static void add_vma_to_mm(struct mm_struct *mm, struct vm_area_struct *vma)
- 	if (vma->vm_file) {
- 		mapping = vma->vm_file->f_mapping;
- 
-+		mutex_lock(&mapping->i_mmap_mutex);
- 		flush_dcache_mmap_lock(mapping);
- 		vma_prio_tree_insert(vma, &mapping->i_mmap);
- 		flush_dcache_mmap_unlock(mapping);
-+		mutex_unlock(&mapping->i_mmap_mutex);
- 	}
- 
- 	/* add the VMA to the tree */
-@@ -760,9 +762,11 @@ static void delete_vma_from_mm(struct vm_area_struct *vma)
- 	if (vma->vm_file) {
- 		mapping = vma->vm_file->f_mapping;
- 
-+		mutex_lock(&mapping->i_mmap_mutex);
- 		flush_dcache_mmap_lock(mapping);
- 		vma_prio_tree_remove(vma, &mapping->i_mmap);
- 		flush_dcache_mmap_unlock(mapping);
-+		mutex_unlock(&mapping->i_mmap_mutex);
- 	}
- 
- 	/* remove from the MM's tree and list */
-@@ -2052,6 +2056,7 @@ int nommu_shrink_inode_mappings(struct inode *inode, size_t size,
- 	high = (size + PAGE_SIZE - 1) >> PAGE_SHIFT;
- 
- 	down_write(&nommu_region_sem);
-+	mutex_lock(&inode->i_mapping->i_mmap_mutex);
- 
- 	/* search for VMAs that fall within the dead zone */
- 	vma_prio_tree_foreach(vma, &iter, &inode->i_mapping->i_mmap,
-@@ -2059,6 +2064,7 @@ int nommu_shrink_inode_mappings(struct inode *inode, size_t size,
- 		/* found one - only interested if it's shared out of the page
- 		 * cache */
- 		if (vma->vm_flags & VM_SHARED) {
-+			mutex_unlock(&inode->i_mapping->i_mmap_mutex);
- 			up_write(&nommu_region_sem);
- 			return -ETXTBSY; /* not quite true, but near enough */
- 		}
-@@ -2086,6 +2092,7 @@ int nommu_shrink_inode_mappings(struct inode *inode, size_t size,
- 		}
- 	}
- 
-+	mutex_unlock(&inode->i_mapping->i_mmap_mutex);
- 	up_write(&nommu_region_sem);
- 	return 0;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0050-hwmon-max6639-Fix-FAN_FROM_REG-calculation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0050-hwmon-max6639-Fix-FAN_FROM_REG-calculation.patch
deleted file mode 100644
index 99b36d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0050-hwmon-max6639-Fix-FAN_FROM_REG-calculation.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 9d871239abc5c0611964bb4f14223399e43e2a21 Mon Sep 17 00:00:00 2001
-From: Chris D Schimp <silverchris at gmail.com>
-Date: Mon, 20 Feb 2012 16:59:24 -0500
-Subject: [PATCH 50/72] hwmon: (max6639) Fix FAN_FROM_REG calculation
-
-commit b63d97a36edb1aecf8c13e5f5783feff4d64c24b upstream.
-
-RPM calculation from tachometer value does not depend on PPR.
-Also, do not report negative RPM values.
-
-Signed-off-by: Chris D Schimp <silverchris at gmail.com>
-[guenter.roeck at ericsson.com: do not report negative RPM values]
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Acked-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/max6639.c |    6 +++---
- 1 file changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/hwmon/max6639.c b/drivers/hwmon/max6639.c
-index f20d997..1b844db 100644
---- a/drivers/hwmon/max6639.c
-+++ b/drivers/hwmon/max6639.c
-@@ -72,8 +72,8 @@ static unsigned short normal_i2c[] = { 0x2c, 0x2e, 0x2f, I2C_CLIENT_END };
- 
- static const int rpm_ranges[] = { 2000, 4000, 8000, 16000 };
- 
--#define FAN_FROM_REG(val, div, rpm_range)	((val) == 0 ? -1 : \
--	(val) == 255 ? 0 : (rpm_ranges[rpm_range] * 30) / ((div + 1) * (val)))
-+#define FAN_FROM_REG(val, rpm_range)	((val) == 0 || (val) == 255 ? \
-+				0 : (rpm_ranges[rpm_range] * 30) / (val))
- #define TEMP_LIMIT_TO_REG(val)	SENSORS_LIMIT((val) / 1000, 0, 255)
- 
- /*
-@@ -333,7 +333,7 @@ static ssize_t show_fan_input(struct device *dev,
- 		return PTR_ERR(data);
- 
- 	return sprintf(buf, "%d\n", FAN_FROM_REG(data->fan[attr->index],
--		       data->ppr, data->rpm_range));
-+		       data->rpm_range));
- }
- 
- static ssize_t show_alarm(struct device *dev,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0051-hwmon-max6639-Fix-PPR-register-initialization-to-set.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0051-hwmon-max6639-Fix-PPR-register-initialization-to-set.patch
deleted file mode 100644
index ebd9733..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0051-hwmon-max6639-Fix-PPR-register-initialization-to-set.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From b3876ec027bbbab2cf2b384c12ca6ec1b86c371b Mon Sep 17 00:00:00 2001
-From: Chris D Schimp <silverchris at gmail.com>
-Date: Mon, 20 Feb 2012 17:44:59 -0500
-Subject: [PATCH 51/72] hwmon: (max6639) Fix PPR register initialization to
- set both channels
-
-commit 2f2da1ac0ba5b6cc6e1957c4da5ff20e67d8442b upstream.
-
-Initialize PPR register for both channels, and set correct PPR register bits.
-Also remove unnecessary variable initializations.
-
-Signed-off-by: Chris D Schimp <silverchris at gmail.com>
-[guenter.roeck at ericsson.com: Merged two patches into one]
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Acked-by: Roland Stigge <stigge at antcom.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/max6639.c |   16 +++++++++-------
- 1 file changed, 9 insertions(+), 7 deletions(-)
-
-diff --git a/drivers/hwmon/max6639.c b/drivers/hwmon/max6639.c
-index 1b844db..8c3df04 100644
---- a/drivers/hwmon/max6639.c
-+++ b/drivers/hwmon/max6639.c
-@@ -429,9 +429,9 @@ static int max6639_init_client(struct i2c_client *client)
- 	struct max6639_data *data = i2c_get_clientdata(client);
- 	struct max6639_platform_data *max6639_info =
- 		client->dev.platform_data;
--	int i = 0;
-+	int i;
- 	int rpm_range = 1; /* default: 4000 RPM */
--	int err = 0;
-+	int err;
- 
- 	/* Reset chip to default values, see below for GCONFIG setup */
- 	err = i2c_smbus_write_byte_data(client, MAX6639_REG_GCONFIG,
-@@ -446,11 +446,6 @@ static int max6639_init_client(struct i2c_client *client)
- 	else
- 		data->ppr = 2;
- 	data->ppr -= 1;
--	err = i2c_smbus_write_byte_data(client,
--			MAX6639_REG_FAN_PPR(i),
--			data->ppr << 5);
--	if (err)
--		goto exit;
- 
- 	if (max6639_info)
- 		rpm_range = rpm_range_to_reg(max6639_info->rpm_range);
-@@ -458,6 +453,13 @@ static int max6639_init_client(struct i2c_client *client)
- 
- 	for (i = 0; i < 2; i++) {
- 
-+		/* Set Fan pulse per revolution */
-+		err = i2c_smbus_write_byte_data(client,
-+				MAX6639_REG_FAN_PPR(i),
-+				data->ppr << 6);
-+		if (err)
-+			goto exit;
-+
- 		/* Fans config PWM, RPM */
- 		err = i2c_smbus_write_byte_data(client,
- 			MAX6639_REG_FAN_CONFIG1(i),
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0052-hwmon-ads1015-Fix-file-leak-in-probe-function.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0052-hwmon-ads1015-Fix-file-leak-in-probe-function.patch
deleted file mode 100644
index 8f77778..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0052-hwmon-ads1015-Fix-file-leak-in-probe-function.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 02a1b3c427ee77fbfb9f7444d9d6bf26b6147f38 Mon Sep 17 00:00:00 2001
-From: Guenter Roeck <guenter.roeck at ericsson.com>
-Date: Wed, 22 Feb 2012 08:13:52 -0800
-Subject: [PATCH 52/72] hwmon: (ads1015) Fix file leak in probe function
-
-commit 363434b5dc352464ac7601547891e5fc9105f124 upstream.
-
-An error while creating sysfs attribute files in the driver's probe function
-results in an error abort, but already created files are not removed. This patch
-fixes the problem.
-
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Cc: Dirk Eibach <eibach at gdsys.de>
-Acked-by: Jean Delvare <khali at linux-fr.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/ads1015.c |    3 +--
- 1 file changed, 1 insertion(+), 2 deletions(-)
-
-diff --git a/drivers/hwmon/ads1015.c b/drivers/hwmon/ads1015.c
-index eedca3c..dd87ae9 100644
---- a/drivers/hwmon/ads1015.c
-+++ b/drivers/hwmon/ads1015.c
-@@ -271,7 +271,7 @@ static int ads1015_probe(struct i2c_client *client,
- 			continue;
- 		err = device_create_file(&client->dev, &ads1015_in[k].dev_attr);
- 		if (err)
--			goto exit_free;
-+			goto exit_remove;
- 	}
- 
- 	data->hwmon_dev = hwmon_device_register(&client->dev);
-@@ -285,7 +285,6 @@ static int ads1015_probe(struct i2c_client *client,
- exit_remove:
- 	for (k = 0; k < ADS1015_CHANNELS; ++k)
- 		device_remove_file(&client->dev, &ads1015_in[k].dev_attr);
--exit_free:
- 	kfree(data);
- exit:
- 	return err;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0053-ARM-omap-fix-oops-in-drivers-video-omap2-dss-dpi.c.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0053-ARM-omap-fix-oops-in-drivers-video-omap2-dss-dpi.c.patch
deleted file mode 100644
index a9d01c6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0053-ARM-omap-fix-oops-in-drivers-video-omap2-dss-dpi.c.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 854088243adf50e5af954545b6eb26185db987dc Mon Sep 17 00:00:00 2001
-From: Russell King <rmk+kernel at arm.linux.org.uk>
-Date: Tue, 7 Feb 2012 09:44:55 +0000
-Subject: [PATCH 53/72] ARM: omap: fix oops in drivers/video/omap2/dss/dpi.c
-
-commit 40410715715178ec196314dd0c19150c06901f80 upstream.
-
-When a PMIC is not found, this driver is unable to obtain its
-'vdds_dsi_reg' regulator.  Even through its initialization function
-fails, other code still calls its enable function, which fails to
-check whether it has this regulator before asking for it to be enabled.
-
-This fixes the oops, however a better fix would be to sort out the
-upper layers to prevent them calling into a module which failed to
-initialize.
-
-Unable to handle kernel NULL pointer dereference at virtual address 00000038
-pgd = c0004000
-[00000038] *pgd=00000000
-Internal error: Oops: 5 [#1] PREEMPT
-Modules linked in:
-CPU: 0    Not tainted  (3.3.0-rc2+ #228)
-PC is at regulator_enable+0x10/0x70
-LR is at omapdss_dpi_display_enable+0x54/0x15c
-pc : [<c01b9a08>]    lr : [<c01af994>]    psr: 60000013
-sp : c181fd90  ip : c181fdb0  fp : c181fdac
-r10: c042eff0  r9 : 00000060  r8 : c044a164
-r7 : c042c0e4  r6 : c042bd60  r5 : 00000000  r4 : c042bd60
-r3 : c084de48  r2 : c181e000  r1 : c042bd60  r0 : 00000000
-Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
-Control: 10c5387d  Table: 80004019  DAC: 00000015
-Process swapper (pid: 1, stack limit = 0xc181e2e8)
-Stack: (0xc181fd90 to 0xc1820000)
-fd80:                                     c001754c c042bd60 00000000 c042bd60
-fda0: c181fdcc c181fdb0 c01af994 c01b9a04 c0016104 c042bd60 c042bd60 c044a338
-fdc0: c181fdec c181fdd0 c01b5ed0 c01af94c c042bd60 c042bd60 c1aa8000 c1aa8a0c
-fde0: c181fe04 c181fdf0 c01b5f54 c01b5ea8 c02fc18c c042bd60 c181fe3c c181fe08
-fe00: c01b2a18 c01b5f48 c01aed14 c02fc160 c01df8ec 00000002 c042bd60 00000003
-fe20: c042bd60 c1aa8000 c1aa8a0c c042eff8 c181fe84 c181fe40 c01b3874 c01b29fc
-fe40: c042eff8 00000000 c042f000 c0449db8 c044ed78 00000000 c181fe74 c042eff8
-fe60: c042eff8 c0449db8 c0449db8 c044ed78 00000000 00000000 c181fe94 c181fe88
-fe80: c01e452c c01b35e8 c181feb4 c181fe98 c01e2fdc c01e4518 c042eff8 c0449db8
-fea0: c0449db8 c181fef0 c181fecc c181feb8 c01e3104 c01e2f48 c042eff8 c042f02c
-fec0: c181feec c181fed0 c01e3190 c01e30c0 c01e311c 00000000 c01e311c c0449db8
-fee0: c181ff14 c181fef0 c01e1998 c01e3128 c18330a8 c1892290 c04165e8 c0449db8
-ff00: c0449db8 c1ab60c0 c181ff24 c181ff18 c01e2e28 c01e194c c181ff54 c181ff28
-ff20: c01e2218 c01e2e14 c039afed c181ff38 c04165e8 c041660c c0449db8 00000013
-ff40: 00000000 c03ffdb8 c181ff7c c181ff58 c01e384c c01e217c c181ff7c c04165e8
-ff60: c041660c c003a37c 00000013 00000000 c181ff8c c181ff80 c01e488c c01e3790
-ff80: c181ff9c c181ff90 c03ffdcc c01e484c c181ffdc c181ffa0 c0008798 c03ffdc4
-ffa0: c181ffc4 c181ffb0 c0056440 c0187810 c003a37c c04165e8 c041660c c003a37c
-ffc0: 00000013 00000000 00000000 00000000 c181fff4 c181ffe0 c03ea284 c0008708
-ffe0: 00000000 c03ea208 00000000 c181fff8 c003a37c c03ea214 1073cec0 01f7ee08
-Backtrace:
-[<c01b99f8>] (regulator_enable+0x0/0x70) from [<c01af994>] (omapdss_dpi_display_enable+0x54/0x15c)
- r6:c042bd60 r5:00000000 r4:c042bd60
-[<c01af940>] (omapdss_dpi_display_enable+0x0/0x15c) from [<c01b5ed0>] (generic_dpi_panel_power_on+0x34/0x78)
- r6:c044a338 r5:c042bd60 r4:c042bd60
-[<c01b5e9c>] (generic_dpi_panel_power_on+0x0/0x78) from [<c01b5f54>] (generic_dpi_panel_enable+0x18/0x28)
- r7:c1aa8a0c r6:c1aa8000 r5:c042bd60 r4:c042bd60
-[<c01b5f3c>] (generic_dpi_panel_enable+0x0/0x28) from [<c01b2a18>] (omapfb_init_display+0x28/0x150)
- r4:c042bd60
-[<c01b29f0>] (omapfb_init_display+0x0/0x150) from [<c01b3874>] (omapfb_probe+0x298/0x318)
- r8:c042eff8 r7:c1aa8a0c r6:c1aa8000 r5:c042bd60 r4:00000003
-[<c01b35dc>] (omapfb_probe+0x0/0x318) from [<c01e452c>] (platform_drv_probe+0x20/0x24)
-[<c01e450c>] (platform_drv_probe+0x0/0x24) from [<c01e2fdc>] (really_probe+0xa0/0x178)
-[<c01e2f3c>] (really_probe+0x0/0x178) from [<c01e3104>] (driver_probe_device+0x50/0x68)
- r7:c181fef0 r6:c0449db8 r5:c0449db8 r4:c042eff8
-[<c01e30b4>] (driver_probe_device+0x0/0x68) from [<c01e3190>] (__driver_attach+0x74/0x98)
- r5:c042f02c r4:c042eff8
-[<c01e311c>] (__driver_attach+0x0/0x98) from [<c01e1998>] (bus_for_each_dev+0x58/0x98)
- r6:c0449db8 r5:c01e311c r4:00000000
-[<c01e1940>] (bus_for_each_dev+0x0/0x98) from [<c01e2e28>] (driver_attach+0x20/0x28)
- r7:c1ab60c0 r6:c0449db8 r5:c0449db8 r4:c04165e8
-[<c01e2e08>] (driver_attach+0x0/0x28) from [<c01e2218>] (bus_add_driver+0xa8/0x22c)
-[<c01e2170>] (bus_add_driver+0x0/0x22c) from [<c01e384c>] (driver_register+0xc8/0x154)
-[<c01e3784>] (driver_register+0x0/0x154) from [<c01e488c>] (platform_driver_register+0x4c/0x60)
- r8:00000000 r7:00000013 r6:c003a37c r5:c041660c r4:c04165e8
-[<c01e4840>] (platform_driver_register+0x0/0x60) from [<c03ffdcc>] (omapfb_init+0x14/0x34)
-[<c03ffdb8>] (omapfb_init+0x0/0x34) from [<c0008798>] (do_one_initcall+0x9c/0x164)
-[<c00086fc>] (do_one_initcall+0x0/0x164) from [<c03ea284>] (kernel_init+0x7c/0x120)
-[<c03ea208>] (kernel_init+0x0/0x120) from [<c003a37c>] (do_exit+0x0/0x2d8)
- r5:c03ea208 r4:00000000
-Code: e1a0c00d e92dd870 e24cb004 e24dd004 (e5906038)
----[ end trace 9e2474c2e193b223 ]---
-
-Acked-by: Tony Lindgren <tony at atomide.com>
-Signed-off-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Cc: Igor Grinberg <grinberg at compulab.co.il>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/video/omap2/dss/dpi.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/drivers/video/omap2/dss/dpi.c b/drivers/video/omap2/dss/dpi.c
-index 976ac23..c04205c 100644
---- a/drivers/video/omap2/dss/dpi.c
-+++ b/drivers/video/omap2/dss/dpi.c
-@@ -180,6 +180,11 @@ int omapdss_dpi_display_enable(struct omap_dss_device *dssdev)
- {
- 	int r;
- 
-+	if (cpu_is_omap34xx() && !dpi.vdds_dsi_reg) {
-+		DSSERR("no VDSS_DSI regulator\n");
-+		return -ENODEV;
-+	}
-+
- 	if (dssdev->manager == NULL) {
- 		DSSERR("failed to enable display: no manager\n");
- 		return -ENODEV;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-x86-amd-Fix-L1i-and-L2-cache-sharing-information-for.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-x86-amd-Fix-L1i-and-L2-cache-sharing-information-for.patch
deleted file mode 100644
index 2deb483..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0054-x86-amd-Fix-L1i-and-L2-cache-sharing-information-for.patch
+++ /dev/null
@@ -1,100 +0,0 @@
-From 4b28bc6793780be8553a9b92da9aa2288e112fd2 Mon Sep 17 00:00:00 2001
-From: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Date: Wed, 8 Feb 2012 20:52:29 +0100
-Subject: [PATCH 54/72] x86/amd: Fix L1i and L2 cache sharing information for
- AMD family 15h processors
-
-commit 32c3233885eb10ac9cb9410f2f8cd64b8df2b2a1 upstream.
-
-For L1 instruction cache and L2 cache the shared CPU information
-is wrong. On current AMD family 15h CPUs those caches are shared
-between both cores of a compute unit.
-
-This fixes https://bugzilla.kernel.org/show_bug.cgi?id=42607
-
-Signed-off-by: Andreas Herrmann <andreas.herrmann3 at amd.com>
-Cc: Petkov Borislav <Borislav.Petkov at amd.com>
-Cc: Dave Jones <davej at redhat.com>
-Link: http://lkml.kernel.org/r/20120208195229.GA17523@alberich.amd.com
-Signed-off-by: Ingo Molnar <mingo at elte.hu>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- arch/x86/kernel/cpu/intel_cacheinfo.c |   44 +++++++++++++++++++++++++++------
- 1 file changed, 36 insertions(+), 8 deletions(-)
-
-diff --git a/arch/x86/kernel/cpu/intel_cacheinfo.c b/arch/x86/kernel/cpu/intel_cacheinfo.c
-index a3b0811..0e89635 100644
---- a/arch/x86/kernel/cpu/intel_cacheinfo.c
-+++ b/arch/x86/kernel/cpu/intel_cacheinfo.c
-@@ -326,8 +326,7 @@ static void __cpuinit amd_calc_l3_indices(struct amd_northbridge *nb)
- 	l3->indices = (max(max3(sc0, sc1, sc2), sc3) << 10) - 1;
- }
- 
--static void __cpuinit amd_init_l3_cache(struct _cpuid4_info_regs *this_leaf,
--					int index)
-+static void __cpuinit amd_init_l3_cache(struct _cpuid4_info_regs *this_leaf, int index)
- {
- 	int node;
- 
-@@ -725,14 +724,16 @@ static DEFINE_PER_CPU(struct _cpuid4_info *, ici_cpuid4_info);
- #define CPUID4_INFO_IDX(x, y)	(&((per_cpu(ici_cpuid4_info, x))[y]))
- 
- #ifdef CONFIG_SMP
--static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index)
-+
-+static int __cpuinit cache_shared_amd_cpu_map_setup(unsigned int cpu, int index)
- {
--	struct _cpuid4_info	*this_leaf, *sibling_leaf;
--	unsigned long num_threads_sharing;
--	int index_msb, i, sibling;
-+	struct _cpuid4_info *this_leaf;
-+	int ret, i, sibling;
- 	struct cpuinfo_x86 *c = &cpu_data(cpu);
- 
--	if ((index == 3) && (c->x86_vendor == X86_VENDOR_AMD)) {
-+	ret = 0;
-+	if (index == 3) {
-+		ret = 1;
- 		for_each_cpu(i, cpu_llc_shared_mask(cpu)) {
- 			if (!per_cpu(ici_cpuid4_info, i))
- 				continue;
-@@ -743,8 +744,35 @@ static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index)
- 				set_bit(sibling, this_leaf->shared_cpu_map);
- 			}
- 		}
--		return;
-+	} else if ((c->x86 == 0x15) && ((index == 1) || (index == 2))) {
-+		ret = 1;
-+		for_each_cpu(i, cpu_sibling_mask(cpu)) {
-+			if (!per_cpu(ici_cpuid4_info, i))
-+				continue;
-+			this_leaf = CPUID4_INFO_IDX(i, index);
-+			for_each_cpu(sibling, cpu_sibling_mask(cpu)) {
-+				if (!cpu_online(sibling))
-+					continue;
-+				set_bit(sibling, this_leaf->shared_cpu_map);
-+			}
-+		}
- 	}
-+
-+	return ret;
-+}
-+
-+static void __cpuinit cache_shared_cpu_map_setup(unsigned int cpu, int index)
-+{
-+	struct _cpuid4_info *this_leaf, *sibling_leaf;
-+	unsigned long num_threads_sharing;
-+	int index_msb, i;
-+	struct cpuinfo_x86 *c = &cpu_data(cpu);
-+
-+	if (c->x86_vendor == X86_VENDOR_AMD) {
-+		if (cache_shared_amd_cpu_map_setup(cpu, index))
-+			return;
-+	}
-+
- 	this_leaf = CPUID4_INFO_IDX(cpu, index);
- 	num_threads_sharing = 1 + this_leaf->base.eax.split.num_threads_sharing;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0055-ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0055-ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch
deleted file mode 100644
index b4d875c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0055-ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 97abf76510415811cd7d628e9fd74e008c69f871 Mon Sep 17 00:00:00 2001
-From: Pavel Roskin <proski at gnu.org>
-Date: Sat, 11 Feb 2012 10:01:53 -0500
-Subject: [PATCH 55/72] ath9k: stop on rates with idx -1 in ath9k rate
- control's .tx_status
-
-commit 2504a6423b9ab4c36df78227055995644de19edb upstream.
-
-Rate control algorithms are supposed to stop processing when they
-encounter a rate with the index -1.  Checking for rate->count not being
-zero is not enough.
-
-Allowing a rate with negative index leads to memory corruption in
-ath_debug_stat_rc().
-
-One consequence of the bug is discussed at
-https://bugzilla.redhat.com/show_bug.cgi?id=768639
-
-Signed-off-by: Pavel Roskin <proski at gnu.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/wireless/ath/ath9k/rc.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/ath/ath9k/rc.c b/drivers/net/wireless/ath/ath9k/rc.c
-index 528d5f3..64af11f 100644
---- a/drivers/net/wireless/ath/ath9k/rc.c
-+++ b/drivers/net/wireless/ath/ath9k/rc.c
-@@ -1347,7 +1347,7 @@ static void ath_tx_status(void *priv, struct ieee80211_supported_band *sband,
- 	fc = hdr->frame_control;
- 	for (i = 0; i < sc->hw->max_rates; i++) {
- 		struct ieee80211_tx_rate *rate = &tx_info->status.rates[i];
--		if (!rate->count)
-+		if (rate->idx < 0 || !rate->count)
- 			break;
- 
- 		final_ts_idx = i;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0056-genirq-Unmask-oneshot-irqs-when-thread-was-not-woken.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0056-genirq-Unmask-oneshot-irqs-when-thread-was-not-woken.patch
deleted file mode 100644
index 1dc0bbb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0056-genirq-Unmask-oneshot-irqs-when-thread-was-not-woken.patch
+++ /dev/null
@@ -1,81 +0,0 @@
-From fb8f89c9c078476af3cda9f2373b5dc72cfc3ead Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Tue, 7 Feb 2012 17:58:03 +0100
-Subject: [PATCH 56/72] genirq: Unmask oneshot irqs when thread was not woken
-
-commit ac5637611150281f398bb7a47e3fcb69a09e7803 upstream.
-
-When the primary handler of an interrupt which is marked IRQ_ONESHOT
-returns IRQ_HANDLED or IRQ_NONE, then the interrupt thread is not
-woken and the unmask logic of the interrupt line is never
-invoked. This keeps the interrupt masked forever.
-
-This was not noticed as most IRQ_ONESHOT users wake the thread
-unconditionally (usually because they cannot access the underlying
-device from hard interrupt context). Though this behaviour was nowhere
-documented and not necessarily intentional. Some drivers can avoid the
-thread wakeup in certain cases and run into the situation where the
-interrupt line s kept masked.
-
-Handle it gracefully.
-
-Reported-and-tested-by: Lothar Wassmann <lw at karo-electronics.de>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/irq/chip.c |   25 +++++++++++++++++++++++--
- 1 file changed, 23 insertions(+), 2 deletions(-)
-
-diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
-index f7c543a..b742edc 100644
---- a/kernel/irq/chip.c
-+++ b/kernel/irq/chip.c
-@@ -330,6 +330,24 @@ out_unlock:
- }
- EXPORT_SYMBOL_GPL(handle_simple_irq);
- 
-+/*
-+ * Called unconditionally from handle_level_irq() and only for oneshot
-+ * interrupts from handle_fasteoi_irq()
-+ */
-+static void cond_unmask_irq(struct irq_desc *desc)
-+{
-+	/*
-+	 * We need to unmask in the following cases:
-+	 * - Standard level irq (IRQF_ONESHOT is not set)
-+	 * - Oneshot irq which did not wake the thread (caused by a
-+	 *   spurious interrupt or a primary handler handling it
-+	 *   completely).
-+	 */
-+	if (!irqd_irq_disabled(&desc->irq_data) &&
-+	    irqd_irq_masked(&desc->irq_data) && !desc->threads_oneshot)
-+		unmask_irq(desc);
-+}
-+
- /**
-  *	handle_level_irq - Level type irq handler
-  *	@irq:	the interrupt number
-@@ -362,8 +380,8 @@ handle_level_irq(unsigned int irq, struct irq_desc *desc)
- 
- 	handle_irq_event(desc);
- 
--	if (!irqd_irq_disabled(&desc->irq_data) && !(desc->istate & IRQS_ONESHOT))
--		unmask_irq(desc);
-+	cond_unmask_irq(desc);
-+
- out_unlock:
- 	raw_spin_unlock(&desc->lock);
- }
-@@ -417,6 +435,9 @@ handle_fasteoi_irq(unsigned int irq, struct irq_desc *desc)
- 	preflow_handler(desc);
- 	handle_irq_event(desc);
- 
-+	if (desc->istate & IRQS_ONESHOT)
-+		cond_unmask_irq(desc);
-+
- out_eoi:
- 	desc->irq_data.chip->irq_eoi(&desc->irq_data);
- out_unlock:
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0057-genirq-Handle-pending-irqs-in-irq_startup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0057-genirq-Handle-pending-irqs-in-irq_startup.patch
deleted file mode 100644
index b52cb6a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0057-genirq-Handle-pending-irqs-in-irq_startup.patch
+++ /dev/null
@@ -1,117 +0,0 @@
-From cde7a1b79f95c783def648bff541ee319148e611 Mon Sep 17 00:00:00 2001
-From: Thomas Gleixner <tglx at linutronix.de>
-Date: Wed, 8 Feb 2012 11:57:52 +0100
-Subject: [PATCH 57/72] genirq: Handle pending irqs in irq_startup()
-
-commit b4bc724e82e80478cba5fe9825b62e71ddf78757 upstream.
-
-An interrupt might be pending when irq_startup() is called, but the
-startup code does not invoke the resend logic. In some cases this
-prevents the device from issuing another interrupt which renders the
-device non functional.
-
-Call the resend function in irq_startup() to keep things going.
-
-Reported-and-tested-by: Russell King <rmk+kernel at arm.linux.org.uk>
-Signed-off-by: Thomas Gleixner <tglx at linutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- kernel/irq/autoprobe.c |    4 ++--
- kernel/irq/chip.c      |   17 ++++++++++-------
- kernel/irq/internals.h |    2 +-
- kernel/irq/manage.c    |    2 +-
- 4 files changed, 14 insertions(+), 11 deletions(-)
-
-diff --git a/kernel/irq/autoprobe.c b/kernel/irq/autoprobe.c
-index 342d8f4..0119b9d 100644
---- a/kernel/irq/autoprobe.c
-+++ b/kernel/irq/autoprobe.c
-@@ -53,7 +53,7 @@ unsigned long probe_irq_on(void)
- 			if (desc->irq_data.chip->irq_set_type)
- 				desc->irq_data.chip->irq_set_type(&desc->irq_data,
- 							 IRQ_TYPE_PROBE);
--			irq_startup(desc);
-+			irq_startup(desc, false);
- 		}
- 		raw_spin_unlock_irq(&desc->lock);
- 	}
-@@ -70,7 +70,7 @@ unsigned long probe_irq_on(void)
- 		raw_spin_lock_irq(&desc->lock);
- 		if (!desc->action && irq_settings_can_probe(desc)) {
- 			desc->istate |= IRQS_AUTODETECT | IRQS_WAITING;
--			if (irq_startup(desc))
-+			if (irq_startup(desc, false))
- 				desc->istate |= IRQS_PENDING;
- 		}
- 		raw_spin_unlock_irq(&desc->lock);
-diff --git a/kernel/irq/chip.c b/kernel/irq/chip.c
-index b742edc..fb7db75 100644
---- a/kernel/irq/chip.c
-+++ b/kernel/irq/chip.c
-@@ -157,19 +157,22 @@ static void irq_state_set_masked(struct irq_desc *desc)
- 	irqd_set(&desc->irq_data, IRQD_IRQ_MASKED);
- }
- 
--int irq_startup(struct irq_desc *desc)
-+int irq_startup(struct irq_desc *desc, bool resend)
- {
-+	int ret = 0;
-+
- 	irq_state_clr_disabled(desc);
- 	desc->depth = 0;
- 
- 	if (desc->irq_data.chip->irq_startup) {
--		int ret = desc->irq_data.chip->irq_startup(&desc->irq_data);
-+		ret = desc->irq_data.chip->irq_startup(&desc->irq_data);
- 		irq_state_clr_masked(desc);
--		return ret;
-+	} else {
-+		irq_enable(desc);
- 	}
--
--	irq_enable(desc);
--	return 0;
-+	if (resend)
-+		check_irq_resend(desc, desc->irq_data.irq);
-+	return ret;
- }
- 
- void irq_shutdown(struct irq_desc *desc)
-@@ -646,7 +649,7 @@ __irq_set_handler(unsigned int irq, irq_flow_handler_t handle, int is_chained,
- 		irq_settings_set_noprobe(desc);
- 		irq_settings_set_norequest(desc);
- 		irq_settings_set_nothread(desc);
--		irq_startup(desc);
-+		irq_startup(desc, true);
- 	}
- out:
- 	irq_put_desc_busunlock(desc, flags);
-diff --git a/kernel/irq/internals.h b/kernel/irq/internals.h
-index a73dd6c..e1a8b64 100644
---- a/kernel/irq/internals.h
-+++ b/kernel/irq/internals.h
-@@ -67,7 +67,7 @@ extern int __irq_set_trigger(struct irq_desc *desc, unsigned int irq,
- extern void __disable_irq(struct irq_desc *desc, unsigned int irq, bool susp);
- extern void __enable_irq(struct irq_desc *desc, unsigned int irq, bool resume);
- 
--extern int irq_startup(struct irq_desc *desc);
-+extern int irq_startup(struct irq_desc *desc, bool resend);
- extern void irq_shutdown(struct irq_desc *desc);
- extern void irq_enable(struct irq_desc *desc);
- extern void irq_disable(struct irq_desc *desc);
-diff --git a/kernel/irq/manage.c b/kernel/irq/manage.c
-index 1da999f..cf2d7ae 100644
---- a/kernel/irq/manage.c
-+++ b/kernel/irq/manage.c
-@@ -1027,7 +1027,7 @@ __setup_irq(unsigned int irq, struct irq_desc *desc, struct irqaction *new)
- 			desc->istate |= IRQS_ONESHOT;
- 
- 		if (irq_settings_can_autoenable(desc))
--			irq_startup(desc);
-+			irq_startup(desc, true);
- 		else
- 			/* Undo nested disables: */
- 			desc->depth = 1;
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0058-scsi_scan-Fix-Poison-overwritten-warning-caused-by-u.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0058-scsi_scan-Fix-Poison-overwritten-warning-caused-by-u.patch
deleted file mode 100644
index 2e68455..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0058-scsi_scan-Fix-Poison-overwritten-warning-caused-by-u.patch
+++ /dev/null
@@ -1,104 +0,0 @@
-From 5e3c2a71ff9a67f31760547f4af7d0d28d6fee6d Mon Sep 17 00:00:00 2001
-From: Huajun Li <huajun.li.lee at gmail.com>
-Date: Sun, 12 Feb 2012 19:59:14 +0800
-Subject: [PATCH 58/72] scsi_scan: Fix 'Poison overwritten' warning caused by
- using freed 'shost'
-
-commit 267a6ad4aefaafbde607804c60945bcf97f91c1b upstream.
-
-In do_scan_async(), calling scsi_autopm_put_host(shost) may reference
-freed shost, and cause Posison overwitten warning.
-Yes, this case can happen, for example, an USB is disconnected just
-when do_scan_async() thread starts to run, then scsi_host_put() called
-in scsi_finish_async_scan() will lead to shost be freed(because the
-refcount of shost->shost_gendev decreases to 1 after USB disconnects),
-at this point, if references shost again, system will show following
-warning msg.
-
-To make scsi_autopm_put_host(shost) always reference a valid shost,
-put it just before scsi_host_put() in function
-scsi_finish_async_scan().
-
-[  299.281565] =============================================================================
-[  299.281634] BUG kmalloc-4096 (Tainted: G          I ): Poison overwritten
-[  299.281682] -----------------------------------------------------------------------------
-[  299.281684]
-[  299.281752] INFO: 0xffff880056c305d0-0xffff880056c305d0. First byte
-0x6a instead of 0x6b
-[  299.281816] INFO: Allocated in scsi_host_alloc+0x4a/0x490 age=1688
-cpu=1 pid=2004
-[  299.281870] 	__slab_alloc+0x617/0x6c1
-[  299.281901] 	__kmalloc+0x28c/0x2e0
-[  299.281931] 	scsi_host_alloc+0x4a/0x490
-[  299.281966] 	usb_stor_probe1+0x5b/0xc40 [usb_storage]
-[  299.282010] 	storage_probe+0xa4/0xe0 [usb_storage]
-[  299.282062] 	usb_probe_interface+0x172/0x330 [usbcore]
-[  299.282105] 	driver_probe_device+0x257/0x3b0
-[  299.282138] 	__driver_attach+0x103/0x110
-[  299.282171] 	bus_for_each_dev+0x8e/0xe0
-[  299.282201] 	driver_attach+0x26/0x30
-[  299.282230] 	bus_add_driver+0x1c4/0x430
-[  299.282260] 	driver_register+0xb6/0x230
-[  299.282298] 	usb_register_driver+0xe5/0x270 [usbcore]
-[  299.282337] 	0xffffffffa04ab03d
-[  299.282364] 	do_one_initcall+0x47/0x230
-[  299.282396] 	sys_init_module+0xa0f/0x1fe0
-[  299.282429] INFO: Freed in scsi_host_dev_release+0x18a/0x1d0 age=85
-cpu=0 pid=2008
-[  299.282482] 	__slab_free+0x3c/0x2a1
-[  299.282510] 	kfree+0x296/0x310
-[  299.282536] 	scsi_host_dev_release+0x18a/0x1d0
-[  299.282574] 	device_release+0x74/0x100
-[  299.282606] 	kobject_release+0xc7/0x2a0
-[  299.282637] 	kobject_put+0x54/0xa0
-[  299.282668] 	put_device+0x27/0x40
-[  299.282694] 	scsi_host_put+0x1d/0x30
-[  299.282723] 	do_scan_async+0x1fc/0x2b0
-[  299.282753] 	kthread+0xdf/0xf0
-[  299.282782] 	kernel_thread_helper+0x4/0x10
-[  299.282817] INFO: Slab 0xffffea00015b0c00 objects=7 used=7 fp=0x
-      (null) flags=0x100000000004080
-[  299.282882] INFO: Object 0xffff880056c30000 @offset=0 fp=0x          (null)
-[  299.282884]
-...
-
-Signed-off-by: Huajun Li <huajun.li.lee at gmail.com>
-Acked-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/scsi/scsi_scan.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/scsi/scsi_scan.c b/drivers/scsi/scsi_scan.c
-index b3c6d95..6e7ea4a 100644
---- a/drivers/scsi/scsi_scan.c
-+++ b/drivers/scsi/scsi_scan.c
-@@ -1815,6 +1815,7 @@ static void scsi_finish_async_scan(struct async_scan_data *data)
- 	}
- 	spin_unlock(&async_scan_lock);
- 
-+	scsi_autopm_put_host(shost);
- 	scsi_host_put(shost);
- 	kfree(data);
- }
-@@ -1841,7 +1842,6 @@ static int do_scan_async(void *_data)
- 
- 	do_scsi_scan_host(shost);
- 	scsi_finish_async_scan(data);
--	scsi_autopm_put_host(shost);
- 	return 0;
- }
- 
-@@ -1869,7 +1869,7 @@ void scsi_scan_host(struct Scsi_Host *shost)
- 	p = kthread_run(do_scan_async, data, "scsi_scan_%d", shost->host_no);
- 	if (IS_ERR(p))
- 		do_scan_async(data);
--	/* scsi_autopm_put_host(shost) is called in do_scan_async() */
-+	/* scsi_autopm_put_host(shost) is called in scsi_finish_async_scan() */
- }
- EXPORT_SYMBOL(scsi_scan_host);
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0059-scsi_pm-Fix-bug-in-the-SCSI-power-management-handler.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0059-scsi_pm-Fix-bug-in-the-SCSI-power-management-handler.patch
deleted file mode 100644
index d3ad7e2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0059-scsi_pm-Fix-bug-in-the-SCSI-power-management-handler.patch
+++ /dev/null
@@ -1,106 +0,0 @@
-From 453ef702b63d26220caa0d25117919216b832f75 Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Fri, 17 Feb 2012 16:25:08 -0500
-Subject: [PATCH 59/72] scsi_pm: Fix bug in the SCSI power management handler
-
-commit fea6d607e154cf96ab22254ccb48addfd43d4cb5 upstream.
-
-This patch (as1520) fixes a bug in the SCSI layer's power management
-implementation.
-
-LUN scanning can be carried out asynchronously in do_scan_async(), and
-sd uses an asynchronous thread for the time-consuming parts of disk
-probing in sd_probe_async().  Currently nothing coordinates these
-async threads with system sleep transitions; they can and do attempt
-to continue scanning/probing SCSI devices even after the host adapter
-has been suspended.  As one might expect, the outcome is not ideal.
-
-This is what the "prepare" stage of system suspend was created for.
-After the prepare callback has been called for a host, target, or
-device, drivers are not allowed to register any children underneath
-them.  Currently the SCSI prepare callback is not implemented; this
-patch rectifies that omission.
-
-For SCSI hosts, the prepare routine calls scsi_complete_async_scans()
-to wait until async scanning is finished.  It might be slightly more
-efficient to wait only until the host in question has been scanned,
-but there's currently no way to do that.  Besides, during a sleep
-transition we will ultimately have to wait until all the host scanning
-has finished anyway.
-
-For SCSI devices, the prepare routine calls async_synchronize_full()
-to wait until sd probing is finished.  The routine does nothing for
-SCSI targets, because asynchronous target scanning is done only as
-part of host scanning.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Signed-off-by: James Bottomley <JBottomley at Parallels.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/scsi/scsi_pm.c   |   16 ++++++++++++++++
- drivers/scsi/scsi_priv.h |    1 +
- 2 files changed, 17 insertions(+)
-
-diff --git a/drivers/scsi/scsi_pm.c b/drivers/scsi/scsi_pm.c
-index d329f8b..2aeaf5c 100644
---- a/drivers/scsi/scsi_pm.c
-+++ b/drivers/scsi/scsi_pm.c
-@@ -7,6 +7,7 @@
- 
- #include <linux/pm_runtime.h>
- #include <linux/export.h>
-+#include <linux/async.h>
- 
- #include <scsi/scsi.h>
- #include <scsi/scsi_device.h>
-@@ -69,6 +70,19 @@ static int scsi_bus_resume_common(struct device *dev)
- 	return err;
- }
- 
-+static int scsi_bus_prepare(struct device *dev)
-+{
-+	if (scsi_is_sdev_device(dev)) {
-+		/* sd probing uses async_schedule.  Wait until it finishes. */
-+		async_synchronize_full();
-+
-+	} else if (scsi_is_host_device(dev)) {
-+		/* Wait until async scanning is finished */
-+		scsi_complete_async_scans();
-+	}
-+	return 0;
-+}
-+
- static int scsi_bus_suspend(struct device *dev)
- {
- 	return scsi_bus_suspend_common(dev, PMSG_SUSPEND);
-@@ -87,6 +101,7 @@ static int scsi_bus_poweroff(struct device *dev)
- #else /* CONFIG_PM_SLEEP */
- 
- #define scsi_bus_resume_common		NULL
-+#define scsi_bus_prepare		NULL
- #define scsi_bus_suspend		NULL
- #define scsi_bus_freeze			NULL
- #define scsi_bus_poweroff		NULL
-@@ -195,6 +210,7 @@ void scsi_autopm_put_host(struct Scsi_Host *shost)
- #endif /* CONFIG_PM_RUNTIME */
- 
- const struct dev_pm_ops scsi_bus_pm_ops = {
-+	.prepare =		scsi_bus_prepare,
- 	.suspend =		scsi_bus_suspend,
- 	.resume =		scsi_bus_resume_common,
- 	.freeze =		scsi_bus_freeze,
-diff --git a/drivers/scsi/scsi_priv.h b/drivers/scsi/scsi_priv.h
-index 2a58895..5b475d0 100644
---- a/drivers/scsi/scsi_priv.h
-+++ b/drivers/scsi/scsi_priv.h
-@@ -110,6 +110,7 @@ extern void scsi_exit_procfs(void);
- #endif /* CONFIG_PROC_FS */
- 
- /* scsi_scan.c */
-+extern int scsi_complete_async_scans(void);
- extern int scsi_scan_host_selected(struct Scsi_Host *, unsigned int,
- 				   unsigned int, unsigned int, int);
- extern void scsi_forget_host(struct Scsi_Host *);
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0060-ipvs-fix-matching-of-fwmark-templates-during-schedul.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0060-ipvs-fix-matching-of-fwmark-templates-during-schedul.patch
deleted file mode 100644
index fc68ad5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0060-ipvs-fix-matching-of-fwmark-templates-during-schedul.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 84e58f4e3a7fd6a1445e5fe4c734c077f4fd414e Mon Sep 17 00:00:00 2001
-From: Simon Horman <horms at verge.net.au>
-Date: Fri, 27 Jan 2012 10:45:27 +0900
-Subject: [PATCH 60/72] ipvs: fix matching of fwmark templates during
- scheduling
-
-commit e0aac52e17a3db68fe2ceae281780a70fc69957f upstream.
-
-	Commit f11017ec2d1859c661f4e2b12c4a8d250e1f47cf (2.6.37)
-moved the fwmark variable in subcontext that is invalidated before
-reaching the ip_vs_ct_in_get call. As vaddr is provided as pointer
-in the param structure make sure the fwmark variable is in
-same context. As the fwmark templates can not be matched,
-more and more template connections are created and the
-controlled connections can not go to single real server.
-
-Signed-off-by: Julian Anastasov <ja at ssi.bg>
-Signed-off-by: Simon Horman <horms at verge.net.au>
-Signed-off-by: Pablo Neira Ayuso <pablo at netfilter.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- net/netfilter/ipvs/ip_vs_core.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/net/netfilter/ipvs/ip_vs_core.c b/net/netfilter/ipvs/ip_vs_core.c
-index 093cc32..6dc7d7d 100644
---- a/net/netfilter/ipvs/ip_vs_core.c
-+++ b/net/netfilter/ipvs/ip_vs_core.c
-@@ -232,6 +232,7 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
- 	__be16 dport = 0;		/* destination port to forward */
- 	unsigned int flags;
- 	struct ip_vs_conn_param param;
-+	const union nf_inet_addr fwmark = { .ip = htonl(svc->fwmark) };
- 	union nf_inet_addr snet;	/* source network of the client,
- 					   after masking */
- 
-@@ -267,7 +268,6 @@ ip_vs_sched_persist(struct ip_vs_service *svc,
- 	{
- 		int protocol = iph.protocol;
- 		const union nf_inet_addr *vaddr = &iph.daddr;
--		const union nf_inet_addr fwmark = { .ip = htonl(svc->fwmark) };
- 		__be16 vport = 0;
- 
- 		if (dst_port == svc->port) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0061-jme-Fix-FIFO-flush-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0061-jme-Fix-FIFO-flush-issue.patch
deleted file mode 100644
index c0b20b0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0061-jme-Fix-FIFO-flush-issue.patch
+++ /dev/null
@@ -1,63 +0,0 @@
-From 2efff30affaca157065760093761604afacd3567 Mon Sep 17 00:00:00 2001
-From: Guo-Fu Tseng <cooldavid at cooldavid.org>
-Date: Wed, 22 Feb 2012 08:58:10 +0000
-Subject: [PATCH 61/72] jme: Fix FIFO flush issue
-
-commit ba9adbe67e288823ac1deb7f11576ab5653f833e upstream.
-
-Set the RX FIFO flush watermark lower.
-According to Federico and JMicron's reply,
-setting it to 16QW would be stable on most platforms.
-Otherwise, user might experience packet drop issue.
-
-Reported-by: Federico Quagliata <federico at quagliata.org>
-Fixed-by: Federico Quagliata <federico at quagliata.org>
-Signed-off-by: Guo-Fu Tseng <cooldavid at cooldavid.org>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/jme.c |   10 +---------
- drivers/net/ethernet/jme.h |    2 +-
- 2 files changed, 2 insertions(+), 10 deletions(-)
-
-diff --git a/drivers/net/ethernet/jme.c b/drivers/net/ethernet/jme.c
-index 76b8457..ab784e0 100644
---- a/drivers/net/ethernet/jme.c
-+++ b/drivers/net/ethernet/jme.c
-@@ -2328,19 +2328,11 @@ jme_change_mtu(struct net_device *netdev, int new_mtu)
- 		((new_mtu) < IPV6_MIN_MTU))
- 		return -EINVAL;
- 
--	if (new_mtu > 4000) {
--		jme->reg_rxcs &= ~RXCS_FIFOTHNP;
--		jme->reg_rxcs |= RXCS_FIFOTHNP_64QW;
--		jme_restart_rx_engine(jme);
--	} else {
--		jme->reg_rxcs &= ~RXCS_FIFOTHNP;
--		jme->reg_rxcs |= RXCS_FIFOTHNP_128QW;
--		jme_restart_rx_engine(jme);
--	}
- 
- 	netdev->mtu = new_mtu;
- 	netdev_update_features(netdev);
- 
-+	jme_restart_rx_engine(jme);
- 	jme_reset_link(jme);
- 
- 	return 0;
-diff --git a/drivers/net/ethernet/jme.h b/drivers/net/ethernet/jme.h
-index 4304072..3efc897 100644
---- a/drivers/net/ethernet/jme.h
-+++ b/drivers/net/ethernet/jme.h
-@@ -730,7 +730,7 @@ enum jme_rxcs_values {
- 	RXCS_RETRYCNT_60	= 0x00000F00,
- 
- 	RXCS_DEFAULT		= RXCS_FIFOTHTP_128T |
--				  RXCS_FIFOTHNP_128QW |
-+				  RXCS_FIFOTHNP_16QW |
- 				  RXCS_DMAREQSZ_128B |
- 				  RXCS_RETRYGAP_256ns |
- 				  RXCS_RETRYCNT_32,
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0062-davinci_emac-Do-not-free-all-rx-dma-descriptors-duri.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0062-davinci_emac-Do-not-free-all-rx-dma-descriptors-duri.patch
deleted file mode 100644
index 51197fc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0062-davinci_emac-Do-not-free-all-rx-dma-descriptors-duri.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-From d0a93cc14174387dc5a6416d741a83fad831eae9 Mon Sep 17 00:00:00 2001
-From: Christian Riesch <christian.riesch at omicron.at>
-Date: Thu, 23 Feb 2012 01:14:17 +0000
-Subject: [PATCH 62/72] davinci_emac: Do not free all rx dma descriptors
- during init
-
-commit 5d69703263d588dbb03f4e57091afd8942d96e6d upstream.
-
-This patch fixes a regression that was introduced by
-
-commit 0a5f38467765ee15478db90d81e40c269c8dda20
-davinci_emac: Add Carrier Link OK check in Davinci RX Handler
-
-Said commit adds a check whether the carrier link is ok. If the link is
-not ok, the skb is freed and no new dma descriptor added to the rx dma
-channel. This causes trouble during initialization when the carrier
-status has not yet been updated. If a lot of packets are received while
-netif_carrier_ok returns false, all dma descriptors are freed and the
-rx dma transfer is stopped.
-
-The bug occurs when the board is connected to a network with lots of
-traffic and the ifconfig down/up is done, e.g., when reconfiguring
-the interface with DHCP.
-
-The bug can be reproduced by flood pinging the davinci board while doing
-ifconfig eth0 down
-ifconfig eth0 up
-on the board.
-
-After that, the rx path stops working and the overrun value reported
-by ifconfig is counting up.
-
-This patch reverts commit 0a5f38467765ee15478db90d81e40c269c8dda20
-and instead issues warnings only if cpdma_chan_submit returns -ENOMEM.
-
-Signed-off-by: Christian Riesch <christian.riesch at omicron.at>
-Cc: Cyril Chemparathy <cyril at ti.com>
-Cc: Sascha Hauer <s.hauer at pengutronix.de>
-Tested-by: Rajashekhara, Sudhakar <sudhakar.raj at ti.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/ethernet/ti/davinci_emac.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/ethernet/ti/davinci_emac.c b/drivers/net/ethernet/ti/davinci_emac.c
-index 815c797..22f2788 100644
---- a/drivers/net/ethernet/ti/davinci_emac.c
-+++ b/drivers/net/ethernet/ti/davinci_emac.c
-@@ -1007,7 +1007,7 @@ static void emac_rx_handler(void *token, int len, int status)
- 	int			ret;
- 
- 	/* free and bail if we are shutting down */
--	if (unlikely(!netif_running(ndev) || !netif_carrier_ok(ndev))) {
-+	if (unlikely(!netif_running(ndev))) {
- 		dev_kfree_skb_any(skb);
- 		return;
- 	}
-@@ -1036,7 +1036,9 @@ static void emac_rx_handler(void *token, int len, int status)
- recycle:
- 	ret = cpdma_chan_submit(priv->rxchan, skb, skb->data,
- 			skb_tailroom(skb), GFP_KERNEL);
--	if (WARN_ON(ret < 0))
-+
-+	WARN_ON(ret == -ENOMEM);
-+	if (unlikely(ret < 0))
- 		dev_kfree_skb_any(skb);
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0063-builddeb-Don-t-create-files-in-tmp-with-predictable-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0063-builddeb-Don-t-create-files-in-tmp-with-predictable-.patch
deleted file mode 100644
index ef1b766..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0063-builddeb-Don-t-create-files-in-tmp-with-predictable-.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From e26e1cfc560e9d5803c22fc5e98114f264be3ca3 Mon Sep 17 00:00:00 2001
-From: Ben Hutchings <ben at decadent.org.uk>
-Date: Wed, 15 Feb 2012 14:17:29 +0000
-Subject: [PATCH 63/72] builddeb: Don't create files in /tmp with predictable
- names
-
-commit 6c635224602d760c1208ada337562f40d8ae93a5 upstream.
-
-The current use of /tmp for file lists is insecure.  Put them under
-$objtree/debian instead.
-
-Signed-off-by: Ben Hutchings <ben at decadent.org.uk>
-Acked-by: maximilian attems <max at stro.at>
-Signed-off-by: Michal Marek <mmarek at suse.cz>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- scripts/package/builddeb |   12 ++++++------
- 1 file changed, 6 insertions(+), 6 deletions(-)
-
-diff --git a/scripts/package/builddeb b/scripts/package/builddeb
-index f6cbc3d..3c6c0b1 100644
---- a/scripts/package/builddeb
-+++ b/scripts/package/builddeb
-@@ -238,14 +238,14 @@ EOF
- fi
- 
- # Build header package
--(cd $srctree; find . -name Makefile -o -name Kconfig\* -o -name \*.pl > /tmp/files$$)
--(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> /tmp/files$$)
--(cd $objtree; find .config Module.symvers include scripts -type f >> /tmp/objfiles$$)
-+(cd $srctree; find . -name Makefile -o -name Kconfig\* -o -name \*.pl > "$objtree/debian/hdrsrcfiles")
-+(cd $srctree; find arch/$SRCARCH/include include scripts -type f >> "$objtree/debian/hdrsrcfiles")
-+(cd $objtree; find .config Module.symvers include scripts -type f >> "$objtree/debian/hdrobjfiles")
- destdir=$kernel_headers_dir/usr/src/linux-headers-$version
- mkdir -p "$destdir"
--(cd $srctree; tar -c -f - -T /tmp/files$$) | (cd $destdir; tar -xf -)
--(cd $objtree; tar -c -f - -T /tmp/objfiles$$) | (cd $destdir; tar -xf -)
--rm -f /tmp/files$$ /tmp/objfiles$$
-+(cd $srctree; tar -c -f - -T "$objtree/debian/hdrsrcfiles") | (cd $destdir; tar -xf -)
-+(cd $objtree; tar -c -f - -T "$objtree/debian/hdrobjfiles") | (cd $destdir; tar -xf -)
-+rm -f "$objtree/debian/hdrsrcfiles" "$objtree/debian/hdrobjfiles"
- arch=$(dpkg --print-architecture)
- 
- cat <<EOF >> debian/control
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0064-can-sja1000-fix-isr-hang-when-hw-is-unplugged-under-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0064-can-sja1000-fix-isr-hang-when-hw-is-unplugged-under-.patch
deleted file mode 100644
index fc67762..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0064-can-sja1000-fix-isr-hang-when-hw-is-unplugged-under-.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From 21c2e3679f5a2068edaf3ae26a8081897f7da66a Mon Sep 17 00:00:00 2001
-From: Oliver Hartkopp <socketcan at hartkopp.net>
-Date: Wed, 15 Feb 2012 17:51:56 +0100
-Subject: [PATCH 64/72] can: sja1000: fix isr hang when hw is unplugged under
- load
-
-commit a7762b10c12a70c5dbf2253142764b728ac88c3a upstream.
-
-In the case of hotplug enabled devices (PCMCIA/PCIeC) the removal of the
-hardware can cause an infinite loop in the common sja1000 isr.
-
-Use the already retrieved status register to indicate a possible hardware
-removal and double check by reading the mode register in sja1000_is_absent.
-
-Signed-off-by: Oliver Hartkopp <socketcan at hartkopp.net>
-Acked-by: Wolfgang Grandegger <wg at grandegger.com>
-Signed-off-by: Marc Kleine-Budde <mkl at pengutronix.de>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/net/can/sja1000/sja1000.c |   13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/can/sja1000/sja1000.c b/drivers/net/can/sja1000/sja1000.c
-index 04a3f1b..192b0d1 100644
---- a/drivers/net/can/sja1000/sja1000.c
-+++ b/drivers/net/can/sja1000/sja1000.c
-@@ -95,11 +95,16 @@ static void sja1000_write_cmdreg(struct sja1000_priv *priv, u8 val)
- 	spin_unlock_irqrestore(&priv->cmdreg_lock, flags);
- }
- 
-+static int sja1000_is_absent(struct sja1000_priv *priv)
-+{
-+	return (priv->read_reg(priv, REG_MOD) == 0xFF);
-+}
-+
- static int sja1000_probe_chip(struct net_device *dev)
- {
- 	struct sja1000_priv *priv = netdev_priv(dev);
- 
--	if (priv->reg_base && (priv->read_reg(priv, 0) == 0xFF)) {
-+	if (priv->reg_base && sja1000_is_absent(priv)) {
- 		printk(KERN_INFO "%s: probing @0x%lX failed\n",
- 		       DRV_NAME, dev->base_addr);
- 		return 0;
-@@ -493,6 +498,9 @@ irqreturn_t sja1000_interrupt(int irq, void *dev_id)
- 	while ((isrc = priv->read_reg(priv, REG_IR)) && (n < SJA1000_MAX_IRQ)) {
- 		n++;
- 		status = priv->read_reg(priv, REG_SR);
-+		/* check for absent controller due to hw unplug */
-+		if (status == 0xFF && sja1000_is_absent(priv))
-+			return IRQ_NONE;
- 
- 		if (isrc & IRQ_WUI)
- 			dev_warn(dev->dev.parent, "wakeup interrupt\n");
-@@ -509,6 +517,9 @@ irqreturn_t sja1000_interrupt(int irq, void *dev_id)
- 			while (status & SR_RBS) {
- 				sja1000_rx(dev);
- 				status = priv->read_reg(priv, REG_SR);
-+				/* check for absent controller */
-+				if (status == 0xFF && sja1000_is_absent(priv))
-+					return IRQ_NONE;
- 			}
- 		}
- 		if (isrc & (IRQ_DOI | IRQ_EI | IRQ_BEI | IRQ_EPI | IRQ_ALI)) {
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0065-hdpvr-fix-race-conditon-during-start-of-streaming.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0065-hdpvr-fix-race-conditon-during-start-of-streaming.patch
deleted file mode 100644
index ef66b72..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0065-hdpvr-fix-race-conditon-during-start-of-streaming.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 0ce7de9f53e83fe5348741518ecb3ffe7b2959b3 Mon Sep 17 00:00:00 2001
-From: Janne Grunau <j at jannau.net>
-Date: Thu, 2 Feb 2012 13:35:21 -0300
-Subject: [PATCH 65/72] hdpvr: fix race conditon during start of streaming
-
-commit afa159538af61f1a65d48927f4e949fe514fb4fc upstream.
-
-status has to be set to STREAMING before the streaming worker is
-queued. hdpvr_transmit_buffers() will exit immediately otherwise.
-
-Reported-by: Joerg Desch <vvd.joede at googlemail.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/media/video/hdpvr/hdpvr-video.c |    3 ++-
- 1 file changed, 2 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/media/video/hdpvr/hdpvr-video.c b/drivers/media/video/hdpvr/hdpvr-video.c
-index 087f7c0..41fd57b 100644
---- a/drivers/media/video/hdpvr/hdpvr-video.c
-+++ b/drivers/media/video/hdpvr/hdpvr-video.c
-@@ -283,12 +283,13 @@ static int hdpvr_start_streaming(struct hdpvr_device *dev)
- 
- 		hdpvr_config_call(dev, CTRL_START_STREAMING_VALUE, 0x00);
- 
-+		dev->status = STATUS_STREAMING;
-+
- 		INIT_WORK(&dev->worker, hdpvr_transmit_buffers);
- 		queue_work(dev->workqueue, &dev->worker);
- 
- 		v4l2_dbg(MSG_BUFFER, hdpvr_debug, &dev->v4l2_dev,
- 			 "streaming started\n");
--		dev->status = STATUS_STREAMING;
- 
- 		return 0;
- 	}
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0066-imon-don-t-wedge-hardware-after-early-callbacks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0066-imon-don-t-wedge-hardware-after-early-callbacks.patch
deleted file mode 100644
index 5206269..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0066-imon-don-t-wedge-hardware-after-early-callbacks.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 4b807f5efead10508cd7631455a29647b0edd6bf Mon Sep 17 00:00:00 2001
-From: Jarod Wilson <jarod at redhat.com>
-Date: Thu, 26 Jan 2012 12:04:11 -0300
-Subject: [PATCH 66/72] imon: don't wedge hardware after early callbacks
-
-commit 8791d63af0cf113725ae4cb8cba9492814c59a93 upstream.
-
-This patch is just a minor update to one titled "imon: Input from ffdc
-device type ignored" from Corinna Vinschen. An earlier patch to prevent
-an oops when we got early callbacks also has the nasty side-effect of
-wedging imon hardware, as we don't acknowledge the urb. Rework the check
-slightly here to bypass processing the packet, as the driver isn't yet
-fully initialized, but still acknowlege the urb and submit a new rx_urb.
-Do this for both interfaces -- irrelevant for ffdc hardware, but
-relevant for newer hardware, though newer hardware doesn't spew the
-constant stream of data as soon as the hardware is initialized like the
-older ffdc devices, so they'd be less likely to trigger this anyway...
-
-Tested with both an ffdc device and an 0042 device.
-
-Reported-by: Corinna Vinschen <vinschen at redhat.com>
-Signed-off-by: Jarod Wilson <jarod at redhat.com>
-Signed-off-by: Mauro Carvalho Chehab <mchehab at redhat.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/media/rc/imon.c |   26 ++++++++++++++++++++++----
- 1 file changed, 22 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/media/rc/imon.c b/drivers/media/rc/imon.c
-index 6ed9646..3f175eb 100644
---- a/drivers/media/rc/imon.c
-+++ b/drivers/media/rc/imon.c
-@@ -47,7 +47,7 @@
- #define MOD_AUTHOR	"Jarod Wilson <jarod at wilsonet.com>"
- #define MOD_DESC	"Driver for SoundGraph iMON MultiMedia IR/Display"
- #define MOD_NAME	"imon"
--#define MOD_VERSION	"0.9.3"
-+#define MOD_VERSION	"0.9.4"
- 
- #define DISPLAY_MINOR_BASE	144
- #define DEVICE_NAME	"lcd%d"
-@@ -1658,9 +1658,17 @@ static void usb_rx_callback_intf0(struct urb *urb)
- 		return;
- 
- 	ictx = (struct imon_context *)urb->context;
--	if (!ictx || !ictx->dev_present_intf0)
-+	if (!ictx)
- 		return;
- 
-+	/*
-+	 * if we get a callback before we're done configuring the hardware, we
-+	 * can't yet process the data, as there's nowhere to send it, but we
-+	 * still need to submit a new rx URB to avoid wedging the hardware
-+	 */
-+	if (!ictx->dev_present_intf0)
-+		goto out;
-+
- 	switch (urb->status) {
- 	case -ENOENT:		/* usbcore unlink successful! */
- 		return;
-@@ -1678,6 +1686,7 @@ static void usb_rx_callback_intf0(struct urb *urb)
- 		break;
- 	}
- 
-+out:
- 	usb_submit_urb(ictx->rx_urb_intf0, GFP_ATOMIC);
- }
- 
-@@ -1690,9 +1699,17 @@ static void usb_rx_callback_intf1(struct urb *urb)
- 		return;
- 
- 	ictx = (struct imon_context *)urb->context;
--	if (!ictx || !ictx->dev_present_intf1)
-+	if (!ictx)
- 		return;
- 
-+	/*
-+	 * if we get a callback before we're done configuring the hardware, we
-+	 * can't yet process the data, as there's nowhere to send it, but we
-+	 * still need to submit a new rx URB to avoid wedging the hardware
-+	 */
-+	if (!ictx->dev_present_intf1)
-+		goto out;
-+
- 	switch (urb->status) {
- 	case -ENOENT:		/* usbcore unlink successful! */
- 		return;
-@@ -1710,6 +1727,7 @@ static void usb_rx_callback_intf1(struct urb *urb)
- 		break;
- 	}
- 
-+out:
- 	usb_submit_urb(ictx->rx_urb_intf1, GFP_ATOMIC);
- }
- 
-@@ -2242,7 +2260,7 @@ find_endpoint_failed:
- 	mutex_unlock(&ictx->lock);
- 	usb_free_urb(rx_urb);
- rx_urb_alloc_failed:
--	dev_err(ictx->dev, "unable to initialize intf0, err %d\n", ret);
-+	dev_err(ictx->dev, "unable to initialize intf1, err %d\n", ret);
- 
- 	return NULL;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0067-hwmon-f75375s-Fix-register-write-order-when-setting-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0067-hwmon-f75375s-Fix-register-write-order-when-setting-.patch
deleted file mode 100644
index dc88dd5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0067-hwmon-f75375s-Fix-register-write-order-when-setting-.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From f56666e0feb0b3d05b22b8a6ff82e19ea27ae72f Mon Sep 17 00:00:00 2001
-From: Nikolaus Schulz <schulz at macnetix.de>
-Date: Wed, 22 Feb 2012 23:18:44 +0100
-Subject: [PATCH 67/72] hwmon: (f75375s) Fix register write order when setting
- fans to full speed
-
-commit c1c1a3d012fe5e82a9a025fb4b5a4f8ee67a53f6 upstream.
-
-By hwmon sysfs interface convention, setting pwm_enable to zero sets a fan
-to full speed.  In the f75375s driver, this need be done by enabling
-manual fan control, plus duty mode for the F875387 chip, and then setting
-the maximum duty cycle.  Fix a bug where the two necessary register writes
-were swapped, effectively discarding the setting to full-speed.
-
-Signed-off-by: Nikolaus Schulz <mail at microschulz.de>
-Cc: Riku Voipio <riku.voipio at iki.fi>
-Signed-off-by: Guenter Roeck <guenter.roeck at ericsson.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/hwmon/f75375s.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/hwmon/f75375s.c b/drivers/hwmon/f75375s.c
-index e4ab491..040a820 100644
---- a/drivers/hwmon/f75375s.c
-+++ b/drivers/hwmon/f75375s.c
-@@ -304,8 +304,6 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val)
- 	case 0: /* Full speed */
- 		fanmode  |= (3 << FAN_CTRL_MODE(nr));
- 		data->pwm[nr] = 255;
--		f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr),
--				data->pwm[nr]);
- 		break;
- 	case 1: /* PWM */
- 		fanmode  |= (3 << FAN_CTRL_MODE(nr));
-@@ -318,6 +316,9 @@ static int set_pwm_enable_direct(struct i2c_client *client, int nr, int val)
- 	}
- 	f75375_write8(client, F75375_REG_FAN_TIMER, fanmode);
- 	data->pwm_enable[nr] = val;
-+	if (val == 0)
-+		f75375_write8(client, F75375_REG_FAN_PWM_DUTY(nr),
-+				data->pwm[nr]);
- 	return 0;
- }
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0068-epoll-introduce-POLLFREE-to-flush-signalfd_wqh-befor.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0068-epoll-introduce-POLLFREE-to-flush-signalfd_wqh-befor.patch
deleted file mode 100644
index a1ed8d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0068-epoll-introduce-POLLFREE-to-flush-signalfd_wqh-befor.patch
+++ /dev/null
@@ -1,164 +0,0 @@
-From 967aa5fe959f1110ace296ef2d2f90fd6a5c431b Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Fri, 24 Feb 2012 20:07:11 +0100
-Subject: [PATCH 68/72] epoll: introduce POLLFREE to flush ->signalfd_wqh
- before kfree()
-
-commit d80e731ecab420ddcb79ee9d0ac427acbc187b4b upstream.
-
-This patch is intentionally incomplete to simplify the review.
-It ignores ep_unregister_pollwait() which plays with the same wqh.
-See the next change.
-
-epoll assumes that the EPOLL_CTL_ADD'ed file controls everything
-f_op->poll() needs. In particular it assumes that the wait queue
-can't go away until eventpoll_release(). This is not true in case
-of signalfd, the task which does EPOLL_CTL_ADD uses its ->sighand
-which is not connected to the file.
-
-This patch adds the special event, POLLFREE, currently only for
-epoll. It expects that init_poll_funcptr()'ed hook should do the
-necessary cleanup. Perhaps it should be defined as EPOLLFREE in
-eventpoll.
-
-__cleanup_sighand() is changed to do wake_up_poll(POLLFREE) if
-->signalfd_wqh is not empty, we add the new signalfd_cleanup()
-helper.
-
-ep_poll_callback(POLLFREE) simply does list_del_init(task_list).
-This make this poll entry inconsistent, but we don't care. If you
-share epoll fd which contains our sigfd with another process you
-should blame yourself. signalfd is "really special". I simply do
-not know how we can define the "right" semantics if it used with
-epoll.
-
-The main problem is, epoll calls signalfd_poll() once to establish
-the connection with the wait queue, after that signalfd_poll(NULL)
-returns the different/inconsistent results depending on who does
-EPOLL_CTL_MOD/signalfd_read/etc. IOW: apart from sigmask, signalfd
-has nothing to do with the file, it works with the current thread.
-
-In short: this patch is the hack which tries to fix the symptoms.
-It also assumes that nobody can take tasklist_lock under epoll
-locks, this seems to be true.
-
-Note:
-
-	- we do not have wake_up_all_poll() but wake_up_poll()
-	  is fine, poll/epoll doesn't use WQ_FLAG_EXCLUSIVE.
-
-	- signalfd_cleanup() uses POLLHUP along with POLLFREE,
-	  we need a couple of simple changes in eventpoll.c to
-	  make sure it can't be "lost".
-
-Reported-by: Maxime Bizon <mbizon at freebox.fr>
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/eventpoll.c             |    4 ++++
- fs/signalfd.c              |   11 +++++++++++
- include/asm-generic/poll.h |    2 ++
- include/linux/signalfd.h   |    5 ++++-
- kernel/fork.c              |    5 ++++-
- 5 files changed, 25 insertions(+), 2 deletions(-)
-
-diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index 828e750..ede66ad 100644
---- a/fs/eventpoll.c
-+++ b/fs/eventpoll.c
-@@ -827,6 +827,10 @@ static int ep_poll_callback(wait_queue_t *wait, unsigned mode, int sync, void *k
- 	struct epitem *epi = ep_item_from_wait(wait);
- 	struct eventpoll *ep = epi->ep;
- 
-+	/* the caller holds eppoll_entry->whead->lock */
-+	if ((unsigned long)key & POLLFREE)
-+		list_del_init(&wait->task_list);
-+
- 	spin_lock_irqsave(&ep->lock, flags);
- 
- 	/*
-diff --git a/fs/signalfd.c b/fs/signalfd.c
-index 492465b..79c1eea 100644
---- a/fs/signalfd.c
-+++ b/fs/signalfd.c
-@@ -30,6 +30,17 @@
- #include <linux/signalfd.h>
- #include <linux/syscalls.h>
- 
-+void signalfd_cleanup(struct sighand_struct *sighand)
-+{
-+	wait_queue_head_t *wqh = &sighand->signalfd_wqh;
-+
-+	if (likely(!waitqueue_active(wqh)))
-+		return;
-+
-+	/* wait_queue_t->func(POLLFREE) should do remove_wait_queue() */
-+	wake_up_poll(wqh, POLLHUP | POLLFREE);
-+}
-+
- struct signalfd_ctx {
- 	sigset_t sigmask;
- };
-diff --git a/include/asm-generic/poll.h b/include/asm-generic/poll.h
-index 44bce83..9ce7f44 100644
---- a/include/asm-generic/poll.h
-+++ b/include/asm-generic/poll.h
-@@ -28,6 +28,8 @@
- #define POLLRDHUP       0x2000
- #endif
- 
-+#define POLLFREE	0x4000	/* currently only for epoll */
-+
- struct pollfd {
- 	int fd;
- 	short events;
-diff --git a/include/linux/signalfd.h b/include/linux/signalfd.h
-index 3ff4961..247399b 100644
---- a/include/linux/signalfd.h
-+++ b/include/linux/signalfd.h
-@@ -61,13 +61,16 @@ static inline void signalfd_notify(struct task_struct *tsk, int sig)
- 		wake_up(&tsk->sighand->signalfd_wqh);
- }
- 
-+extern void signalfd_cleanup(struct sighand_struct *sighand);
-+
- #else /* CONFIG_SIGNALFD */
- 
- static inline void signalfd_notify(struct task_struct *tsk, int sig) { }
- 
-+static inline void signalfd_cleanup(struct sighand_struct *sighand) { }
-+
- #endif /* CONFIG_SIGNALFD */
- 
- #endif /* __KERNEL__ */
- 
- #endif /* _LINUX_SIGNALFD_H */
--
-diff --git a/kernel/fork.c b/kernel/fork.c
-index da4a6a1..0acf42c0 100644
---- a/kernel/fork.c
-+++ b/kernel/fork.c
-@@ -66,6 +66,7 @@
- #include <linux/user-return-notifier.h>
- #include <linux/oom.h>
- #include <linux/khugepaged.h>
-+#include <linux/signalfd.h>
- 
- #include <asm/pgtable.h>
- #include <asm/pgalloc.h>
-@@ -910,8 +911,10 @@ static int copy_sighand(unsigned long clone_flags, struct task_struct *tsk)
- 
- void __cleanup_sighand(struct sighand_struct *sighand)
- {
--	if (atomic_dec_and_test(&sighand->count))
-+	if (atomic_dec_and_test(&sighand->count)) {
-+		signalfd_cleanup(sighand);
- 		kmem_cache_free(sighand_cachep, sighand);
-+	}
- }
- 
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0069-epoll-ep_unregister_pollwait-can-use-the-freed-pwq-w.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0069-epoll-ep_unregister_pollwait-can-use-the-freed-pwq-w.patch
deleted file mode 100644
index 76320d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0069-epoll-ep_unregister_pollwait-can-use-the-freed-pwq-w.patch
+++ /dev/null
@@ -1,116 +0,0 @@
-From 79e9524d07258634c0683840b760d2ab682a23be Mon Sep 17 00:00:00 2001
-From: Oleg Nesterov <oleg at redhat.com>
-Date: Fri, 24 Feb 2012 20:07:29 +0100
-Subject: [PATCH 69/72] epoll: ep_unregister_pollwait() can use the freed
- pwq->whead
-
-commit 971316f0503a5c50633d07b83b6db2f15a3a5b00 upstream.
-
-signalfd_cleanup() ensures that ->signalfd_wqh is not used, but
-this is not enough. eppoll_entry->whead still points to the memory
-we are going to free, ep_unregister_pollwait()->remove_wait_queue()
-is obviously unsafe.
-
-Change ep_poll_callback(POLLFREE) to set eppoll_entry->whead = NULL,
-change ep_unregister_pollwait() to check pwq->whead != NULL under
-rcu_read_lock() before remove_wait_queue(). We add the new helper,
-ep_remove_wait_queue(), for this.
-
-This works because sighand_cachep is SLAB_DESTROY_BY_RCU and because
-->signalfd_wqh is initialized in sighand_ctor(), not in copy_sighand.
-ep_unregister_pollwait()->remove_wait_queue() can play with already
-freed and potentially reused ->sighand, but this is fine. This memory
-must have the valid ->signalfd_wqh until rcu_read_unlock().
-
-Reported-by: Maxime Bizon <mbizon at freebox.fr>
-Signed-off-by: Oleg Nesterov <oleg at redhat.com>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/eventpoll.c |   30 +++++++++++++++++++++++++++---
- fs/signalfd.c  |    6 +++++-
- 2 files changed, 32 insertions(+), 4 deletions(-)
-
-diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index ede66ad..12a772b 100644
---- a/fs/eventpoll.c
-+++ b/fs/eventpoll.c
-@@ -299,6 +299,11 @@ static inline int ep_is_linked(struct list_head *p)
- 	return !list_empty(p);
- }
- 
-+static inline struct eppoll_entry *ep_pwq_from_wait(wait_queue_t *p)
-+{
-+	return container_of(p, struct eppoll_entry, wait);
-+}
-+
- /* Get the "struct epitem" from a wait queue pointer */
- static inline struct epitem *ep_item_from_wait(wait_queue_t *p)
- {
-@@ -446,6 +451,18 @@ static void ep_poll_safewake(wait_queue_head_t *wq)
- 	put_cpu();
- }
- 
-+static void ep_remove_wait_queue(struct eppoll_entry *pwq)
-+{
-+	wait_queue_head_t *whead;
-+
-+	rcu_read_lock();
-+	/* If it is cleared by POLLFREE, it should be rcu-safe */
-+	whead = rcu_dereference(pwq->whead);
-+	if (whead)
-+		remove_wait_queue(whead, &pwq->wait);
-+	rcu_read_unlock();
-+}
-+
- /*
-  * This function unregisters poll callbacks from the associated file
-  * descriptor.  Must be called with "mtx" held (or "epmutex" if called from
-@@ -460,7 +477,7 @@ static void ep_unregister_pollwait(struct eventpoll *ep, struct epitem *epi)
- 		pwq = list_first_entry(lsthead, struct eppoll_entry, llink);
- 
- 		list_del(&pwq->llink);
--		remove_wait_queue(pwq->whead, &pwq->wait);
-+		ep_remove_wait_queue(pwq);
- 		kmem_cache_free(pwq_cache, pwq);
- 	}
- }
-@@ -827,9 +844,16 @@ static int ep_poll_callback(wait_queue_t *wait, unsigned mode, int sync, void *k
- 	struct epitem *epi = ep_item_from_wait(wait);
- 	struct eventpoll *ep = epi->ep;
- 
--	/* the caller holds eppoll_entry->whead->lock */
--	if ((unsigned long)key & POLLFREE)
-+	if ((unsigned long)key & POLLFREE) {
-+		ep_pwq_from_wait(wait)->whead = NULL;
-+		/*
-+		 * whead = NULL above can race with ep_remove_wait_queue()
-+		 * which can do another remove_wait_queue() after us, so we
-+		 * can't use __remove_wait_queue(). whead->lock is held by
-+		 * the caller.
-+		 */
- 		list_del_init(&wait->task_list);
-+	}
- 
- 	spin_lock_irqsave(&ep->lock, flags);
- 
-diff --git a/fs/signalfd.c b/fs/signalfd.c
-index 79c1eea..7ae2a57 100644
---- a/fs/signalfd.c
-+++ b/fs/signalfd.c
-@@ -33,7 +33,11 @@
- void signalfd_cleanup(struct sighand_struct *sighand)
- {
- 	wait_queue_head_t *wqh = &sighand->signalfd_wqh;
--
-+	/*
-+	 * The lockless check can race with remove_wait_queue() in progress,
-+	 * but in this case its caller should run under rcu_read_lock() and
-+	 * sighand_cachep is SLAB_DESTROY_BY_RCU, we can safely return.
-+	 */
- 	if (likely(!waitqueue_active(wqh)))
- 		return;
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0070-epoll-limit-paths.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0070-epoll-limit-paths.patch
deleted file mode 100644
index 434e2eb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0070-epoll-limit-paths.patch
+++ /dev/null
@@ -1,475 +0,0 @@
-From 025c3f2ad21385eddb5bec1f742c1cdb6164ca30 Mon Sep 17 00:00:00 2001
-From: Jason Baron <jbaron at redhat.com>
-Date: Thu, 12 Jan 2012 17:17:43 -0800
-Subject: [PATCH 70/72] epoll: limit paths
-
-commit 28d82dc1c4edbc352129f97f4ca22624d1fe61de upstream.
-
-The current epoll code can be tickled to run basically indefinitely in
-both loop detection path check (on ep_insert()), and in the wakeup paths.
-The programs that tickle this behavior set up deeply linked networks of
-epoll file descriptors that cause the epoll algorithms to traverse them
-indefinitely.  A couple of these sample programs have been previously
-posted in this thread: https://lkml.org/lkml/2011/2/25/297.
-
-To fix the loop detection path check algorithms, I simply keep track of
-the epoll nodes that have been already visited.  Thus, the loop detection
-becomes proportional to the number of epoll file descriptor and links.
-This dramatically decreases the run-time of the loop check algorithm.  In
-one diabolical case I tried it reduced the run-time from 15 mintues (all
-in kernel time) to .3 seconds.
-
-Fixing the wakeup paths could be done at wakeup time in a similar manner
-by keeping track of nodes that have already been visited, but the
-complexity is harder, since there can be multiple wakeups on different
-cpus...Thus, I've opted to limit the number of possible wakeup paths when
-the paths are created.
-
-This is accomplished, by noting that the end file descriptor points that
-are found during the loop detection pass (from the newly added link), are
-actually the sources for wakeup events.  I keep a list of these file
-descriptors and limit the number and length of these paths that emanate
-from these 'source file descriptors'.  In the current implemetation I
-allow 1000 paths of length 1, 500 of length 2, 100 of length 3, 50 of
-length 4 and 10 of length 5.  Note that it is sufficient to check the
-'source file descriptors' reachable from the newly added link, since no
-other 'source file descriptors' will have newly added links.  This allows
-us to check only the wakeup paths that may have gotten too long, and not
-re-check all possible wakeup paths on the system.
-
-In terms of the path limit selection, I think its first worth noting that
-the most common case for epoll, is probably the model where you have 1
-epoll file descriptor that is monitoring n number of 'source file
-descriptors'.  In this case, each 'source file descriptor' has a 1 path of
-length 1.  Thus, I believe that the limits I'm proposing are quite
-reasonable and in fact may be too generous.  Thus, I'm hoping that the
-proposed limits will not prevent any workloads that currently work to
-fail.
-
-In terms of locking, I have extended the use of the 'epmutex' to all
-epoll_ctl add and remove operations.  Currently its only used in a subset
-of the add paths.  I need to hold the epmutex, so that we can correctly
-traverse a coherent graph, to check the number of paths.  I believe that
-this additional locking is probably ok, since its in the setup/teardown
-paths, and doesn't affect the running paths, but it certainly is going to
-add some extra overhead.  Also, worth noting is that the epmuex was
-recently added to the ep_ctl add operations in the initial path loop
-detection code using the argument that it was not on a critical path.
-
-Another thing to note here, is the length of epoll chains that is allowed.
-Currently, eventpoll.c defines:
-
-/* Maximum number of nesting allowed inside epoll sets */
-#define EP_MAX_NESTS 4
-
-This basically means that I am limited to a graph depth of 5 (EP_MAX_NESTS
-+ 1).  However, this limit is currently only enforced during the loop
-check detection code, and only when the epoll file descriptors are added
-in a certain order.  Thus, this limit is currently easily bypassed.  The
-newly added check for wakeup paths, stricly limits the wakeup paths to a
-length of 5, regardless of the order in which ep's are linked together.
-Thus, a side-effect of the new code is a more consistent enforcement of
-the graph depth.
-
-Thus far, I've tested this, using the sample programs previously
-mentioned, which now either return quickly or return -EINVAL.  I've also
-testing using the piptest.c epoll tester, which showed no difference in
-performance.  I've also created a number of different epoll networks and
-tested that they behave as expectded.
-
-I believe this solves the original diabolical test cases, while still
-preserving the sane epoll nesting.
-
-Signed-off-by: Jason Baron <jbaron at redhat.com>
-Cc: Nelson Elhage <nelhage at ksplice.com>
-Cc: Davide Libenzi <davidel at xmailserver.org>
-Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
-Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- fs/eventpoll.c            |  234 ++++++++++++++++++++++++++++++++++++++++-----
- include/linux/eventpoll.h |    1 +
- include/linux/fs.h        |    1 +
- 3 files changed, 211 insertions(+), 25 deletions(-)
-
-diff --git a/fs/eventpoll.c b/fs/eventpoll.c
-index 12a772b..ea54cde 100644
---- a/fs/eventpoll.c
-+++ b/fs/eventpoll.c
-@@ -197,6 +197,12 @@ struct eventpoll {
- 
- 	/* The user that created the eventpoll descriptor */
- 	struct user_struct *user;
-+
-+	struct file *file;
-+
-+	/* used to optimize loop detection check */
-+	int visited;
-+	struct list_head visited_list_link;
- };
- 
- /* Wait structure used by the poll hooks */
-@@ -255,6 +261,15 @@ static struct kmem_cache *epi_cache __read_mostly;
- /* Slab cache used to allocate "struct eppoll_entry" */
- static struct kmem_cache *pwq_cache __read_mostly;
- 
-+/* Visited nodes during ep_loop_check(), so we can unset them when we finish */
-+static LIST_HEAD(visited_list);
-+
-+/*
-+ * List of files with newly added links, where we may need to limit the number
-+ * of emanating paths. Protected by the epmutex.
-+ */
-+static LIST_HEAD(tfile_check_list);
-+
- #ifdef CONFIG_SYSCTL
- 
- #include <linux/sysctl.h>
-@@ -276,6 +291,12 @@ ctl_table epoll_table[] = {
- };
- #endif /* CONFIG_SYSCTL */
- 
-+static const struct file_operations eventpoll_fops;
-+
-+static inline int is_file_epoll(struct file *f)
-+{
-+	return f->f_op == &eventpoll_fops;
-+}
- 
- /* Setup the structure that is used as key for the RB tree */
- static inline void ep_set_ffd(struct epoll_filefd *ffd,
-@@ -728,12 +749,6 @@ static const struct file_operations eventpoll_fops = {
- 	.llseek		= noop_llseek,
- };
- 
--/* Fast test to see if the file is an eventpoll file */
--static inline int is_file_epoll(struct file *f)
--{
--	return f->f_op == &eventpoll_fops;
--}
--
- /*
-  * This is called from eventpoll_release() to unlink files from the eventpoll
-  * interface. We need to have this facility to cleanup correctly files that are
-@@ -954,6 +969,99 @@ static void ep_rbtree_insert(struct eventpoll *ep, struct epitem *epi)
- 	rb_insert_color(&epi->rbn, &ep->rbr);
- }
- 
-+
-+
-+#define PATH_ARR_SIZE 5
-+/*
-+ * These are the number paths of length 1 to 5, that we are allowing to emanate
-+ * from a single file of interest. For example, we allow 1000 paths of length
-+ * 1, to emanate from each file of interest. This essentially represents the
-+ * potential wakeup paths, which need to be limited in order to avoid massive
-+ * uncontrolled wakeup storms. The common use case should be a single ep which
-+ * is connected to n file sources. In this case each file source has 1 path
-+ * of length 1. Thus, the numbers below should be more than sufficient. These
-+ * path limits are enforced during an EPOLL_CTL_ADD operation, since a modify
-+ * and delete can't add additional paths. Protected by the epmutex.
-+ */
-+static const int path_limits[PATH_ARR_SIZE] = { 1000, 500, 100, 50, 10 };
-+static int path_count[PATH_ARR_SIZE];
-+
-+static int path_count_inc(int nests)
-+{
-+	if (++path_count[nests] > path_limits[nests])
-+		return -1;
-+	return 0;
-+}
-+
-+static void path_count_init(void)
-+{
-+	int i;
-+
-+	for (i = 0; i < PATH_ARR_SIZE; i++)
-+		path_count[i] = 0;
-+}
-+
-+static int reverse_path_check_proc(void *priv, void *cookie, int call_nests)
-+{
-+	int error = 0;
-+	struct file *file = priv;
-+	struct file *child_file;
-+	struct epitem *epi;
-+
-+	list_for_each_entry(epi, &file->f_ep_links, fllink) {
-+		child_file = epi->ep->file;
-+		if (is_file_epoll(child_file)) {
-+			if (list_empty(&child_file->f_ep_links)) {
-+				if (path_count_inc(call_nests)) {
-+					error = -1;
-+					break;
-+				}
-+			} else {
-+				error = ep_call_nested(&poll_loop_ncalls,
-+							EP_MAX_NESTS,
-+							reverse_path_check_proc,
-+							child_file, child_file,
-+							current);
-+			}
-+			if (error != 0)
-+				break;
-+		} else {
-+			printk(KERN_ERR "reverse_path_check_proc: "
-+				"file is not an ep!\n");
-+		}
-+	}
-+	return error;
-+}
-+
-+/**
-+ * reverse_path_check - The tfile_check_list is list of file *, which have
-+ *                      links that are proposed to be newly added. We need to
-+ *                      make sure that those added links don't add too many
-+ *                      paths such that we will spend all our time waking up
-+ *                      eventpoll objects.
-+ *
-+ * Returns: Returns zero if the proposed links don't create too many paths,
-+ *	    -1 otherwise.
-+ */
-+static int reverse_path_check(void)
-+{
-+	int length = 0;
-+	int error = 0;
-+	struct file *current_file;
-+
-+	/* let's call this for all tfiles */
-+	list_for_each_entry(current_file, &tfile_check_list, f_tfile_llink) {
-+		length++;
-+		path_count_init();
-+		error = ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS,
-+					reverse_path_check_proc, current_file,
-+					current_file, current);
-+		if (error)
-+			break;
-+	}
-+	return error;
-+}
-+
- /*
-  * Must be called with "mtx" held.
-  */
-@@ -1015,6 +1123,11 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event,
- 	 */
- 	ep_rbtree_insert(ep, epi);
- 
-+	/* now check if we've created too many backpaths */
-+	error = -EINVAL;
-+	if (reverse_path_check())
-+		goto error_remove_epi;
-+
- 	/* We have to drop the new item inside our item list to keep track of it */
- 	spin_lock_irqsave(&ep->lock, flags);
- 
-@@ -1039,6 +1152,14 @@ static int ep_insert(struct eventpoll *ep, struct epoll_event *event,
- 
- 	return 0;
- 
-+error_remove_epi:
-+	spin_lock(&tfile->f_lock);
-+	if (ep_is_linked(&epi->fllink))
-+		list_del_init(&epi->fllink);
-+	spin_unlock(&tfile->f_lock);
-+
-+	rb_erase(&epi->rbn, &ep->rbr);
-+
- error_unregister:
- 	ep_unregister_pollwait(ep, epi);
- 
-@@ -1303,18 +1424,36 @@ static int ep_loop_check_proc(void *priv, void *cookie, int call_nests)
- 	int error = 0;
- 	struct file *file = priv;
- 	struct eventpoll *ep = file->private_data;
-+	struct eventpoll *ep_tovisit;
- 	struct rb_node *rbp;
- 	struct epitem *epi;
- 
- 	mutex_lock_nested(&ep->mtx, call_nests + 1);
-+	ep->visited = 1;
-+	list_add(&ep->visited_list_link, &visited_list);
- 	for (rbp = rb_first(&ep->rbr); rbp; rbp = rb_next(rbp)) {
- 		epi = rb_entry(rbp, struct epitem, rbn);
- 		if (unlikely(is_file_epoll(epi->ffd.file))) {
-+			ep_tovisit = epi->ffd.file->private_data;
-+			if (ep_tovisit->visited)
-+				continue;
- 			error = ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS,
--					       ep_loop_check_proc, epi->ffd.file,
--					       epi->ffd.file->private_data, current);
-+					ep_loop_check_proc, epi->ffd.file,
-+					ep_tovisit, current);
- 			if (error != 0)
- 				break;
-+		} else {
-+			/*
-+			 * If we've reached a file that is not associated with
-+			 * an ep, then we need to check if the newly added
-+			 * links are going to add too many wakeup paths. We do
-+			 * this by adding it to the tfile_check_list, if it's
-+			 * not already there, and calling reverse_path_check()
-+			 * during ep_insert().
-+			 */
-+			if (list_empty(&epi->ffd.file->f_tfile_llink))
-+				list_add(&epi->ffd.file->f_tfile_llink,
-+					 &tfile_check_list);
- 		}
- 	}
- 	mutex_unlock(&ep->mtx);
-@@ -1335,8 +1474,31 @@ static int ep_loop_check_proc(void *priv, void *cookie, int call_nests)
-  */
- static int ep_loop_check(struct eventpoll *ep, struct file *file)
- {
--	return ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS,
-+	int ret;
-+	struct eventpoll *ep_cur, *ep_next;
-+
-+	ret = ep_call_nested(&poll_loop_ncalls, EP_MAX_NESTS,
- 			      ep_loop_check_proc, file, ep, current);
-+	/* clear visited list */
-+	list_for_each_entry_safe(ep_cur, ep_next, &visited_list,
-+							visited_list_link) {
-+		ep_cur->visited = 0;
-+		list_del(&ep_cur->visited_list_link);
-+	}
-+	return ret;
-+}
-+
-+static void clear_tfile_check_list(void)
-+{
-+	struct file *file;
-+
-+	/* first clear the tfile_check_list */
-+	while (!list_empty(&tfile_check_list)) {
-+		file = list_first_entry(&tfile_check_list, struct file,
-+					f_tfile_llink);
-+		list_del_init(&file->f_tfile_llink);
-+	}
-+	INIT_LIST_HEAD(&tfile_check_list);
- }
- 
- /*
-@@ -1344,8 +1506,9 @@ static int ep_loop_check(struct eventpoll *ep, struct file *file)
-  */
- SYSCALL_DEFINE1(epoll_create1, int, flags)
- {
--	int error;
-+	int error, fd;
- 	struct eventpoll *ep = NULL;
-+	struct file *file;
- 
- 	/* Check the EPOLL_* constant for consistency.  */
- 	BUILD_BUG_ON(EPOLL_CLOEXEC != O_CLOEXEC);
-@@ -1362,11 +1525,25 @@ SYSCALL_DEFINE1(epoll_create1, int, flags)
- 	 * Creates all the items needed to setup an eventpoll file. That is,
- 	 * a file structure and a free file descriptor.
- 	 */
--	error = anon_inode_getfd("[eventpoll]", &eventpoll_fops, ep,
-+	fd = get_unused_fd_flags(O_RDWR | (flags & O_CLOEXEC));
-+	if (fd < 0) {
-+		error = fd;
-+		goto out_free_ep;
-+	}
-+	file = anon_inode_getfile("[eventpoll]", &eventpoll_fops, ep,
- 				 O_RDWR | (flags & O_CLOEXEC));
--	if (error < 0)
--		ep_free(ep);
--
-+	if (IS_ERR(file)) {
-+		error = PTR_ERR(file);
-+		goto out_free_fd;
-+	}
-+	fd_install(fd, file);
-+	ep->file = file;
-+	return fd;
-+
-+out_free_fd:
-+	put_unused_fd(fd);
-+out_free_ep:
-+	ep_free(ep);
- 	return error;
- }
- 
-@@ -1432,21 +1609,27 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
- 	/*
- 	 * When we insert an epoll file descriptor, inside another epoll file
- 	 * descriptor, there is the change of creating closed loops, which are
--	 * better be handled here, than in more critical paths.
-+	 * better be handled here, than in more critical paths. While we are
-+	 * checking for loops we also determine the list of files reachable
-+	 * and hang them on the tfile_check_list, so we can check that we
-+	 * haven't created too many possible wakeup paths.
- 	 *
--	 * We hold epmutex across the loop check and the insert in this case, in
--	 * order to prevent two separate inserts from racing and each doing the
--	 * insert "at the same time" such that ep_loop_check passes on both
--	 * before either one does the insert, thereby creating a cycle.
-+	 * We need to hold the epmutex across both ep_insert and ep_remove
-+	 * b/c we want to make sure we are looking at a coherent view of
-+	 * epoll network.
- 	 */
--	if (unlikely(is_file_epoll(tfile) && op == EPOLL_CTL_ADD)) {
-+	if (op == EPOLL_CTL_ADD || op == EPOLL_CTL_DEL) {
- 		mutex_lock(&epmutex);
- 		did_lock_epmutex = 1;
--		error = -ELOOP;
--		if (ep_loop_check(ep, tfile) != 0)
--			goto error_tgt_fput;
- 	}
--
-+	if (op == EPOLL_CTL_ADD) {
-+		if (is_file_epoll(tfile)) {
-+			error = -ELOOP;
-+			if (ep_loop_check(ep, tfile) != 0)
-+				goto error_tgt_fput;
-+		} else
-+			list_add(&tfile->f_tfile_llink, &tfile_check_list);
-+	}
- 
- 	mutex_lock_nested(&ep->mtx, 0);
- 
-@@ -1465,6 +1648,7 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
- 			error = ep_insert(ep, &epds, tfile, fd);
- 		} else
- 			error = -EEXIST;
-+		clear_tfile_check_list();
- 		break;
- 	case EPOLL_CTL_DEL:
- 		if (epi)
-@@ -1483,7 +1667,7 @@ SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
- 	mutex_unlock(&ep->mtx);
- 
- error_tgt_fput:
--	if (unlikely(did_lock_epmutex))
-+	if (did_lock_epmutex)
- 		mutex_unlock(&epmutex);
- 
- 	fput(tfile);
-diff --git a/include/linux/eventpoll.h b/include/linux/eventpoll.h
-index f362733..657ab55 100644
---- a/include/linux/eventpoll.h
-+++ b/include/linux/eventpoll.h
-@@ -61,6 +61,7 @@ struct file;
- static inline void eventpoll_init_file(struct file *file)
- {
- 	INIT_LIST_HEAD(&file->f_ep_links);
-+	INIT_LIST_HEAD(&file->f_tfile_llink);
- }
- 
- 
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index e0bc4ff..10b2288 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -1001,6 +1001,7 @@ struct file {
- #ifdef CONFIG_EPOLL
- 	/* Used by fs/eventpoll.c to link all the hooks to this file */
- 	struct list_head	f_ep_links;
-+	struct list_head	f_tfile_llink;
- #endif /* #ifdef CONFIG_EPOLL */
- 	struct address_space	*f_mapping;
- #ifdef CONFIG_DEBUG_WRITECOUNT
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0071-cdrom-use-copy_to_user-without-the-underscores.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0071-cdrom-use-copy_to_user-without-the-underscores.patch
deleted file mode 100644
index 5b37620..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0071-cdrom-use-copy_to_user-without-the-underscores.patch
+++ /dev/null
@@ -1,56 +0,0 @@
-From 8f731c0fd9c3c25f2044585b41cf5930f86575a5 Mon Sep 17 00:00:00 2001
-From: Dan Carpenter <dan.carpenter at oracle.com>
-Date: Mon, 6 Feb 2012 10:20:45 +0100
-Subject: [PATCH 71/72] cdrom: use copy_to_user() without the underscores
-
-commit 822bfa51ce44f2c63c300fdb76dc99c4d5a5ca9f upstream.
-
-"nframes" comes from the user and "nframes * CD_FRAMESIZE_RAW" can wrap
-on 32 bit systems.  That would have been ok if we used the same wrapped
-value for the copy, but we use a shifted value.  We should just use the
-checked version of copy_to_user() because it's not going to make a
-difference to the speed.
-
-Signed-off-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Jens Axboe <axboe at kernel.dk>
-Signed-off-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
----
- drivers/cdrom/cdrom.c |    8 +-------
- 1 file changed, 1 insertion(+), 7 deletions(-)
-
-diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
-index cedb231..2678b6f 100644
---- a/drivers/cdrom/cdrom.c
-+++ b/drivers/cdrom/cdrom.c
-@@ -2120,11 +2120,6 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
- 	if (!nr)
- 		return -ENOMEM;
- 
--	if (!access_ok(VERIFY_WRITE, ubuf, nframes * CD_FRAMESIZE_RAW)) {
--		ret = -EFAULT;
--		goto out;
--	}
--
- 	cgc.data_direction = CGC_DATA_READ;
- 	while (nframes > 0) {
- 		if (nr > nframes)
-@@ -2133,7 +2128,7 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
- 		ret = cdrom_read_block(cdi, &cgc, lba, nr, 1, CD_FRAMESIZE_RAW);
- 		if (ret)
- 			break;
--		if (__copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) {
-+		if (copy_to_user(ubuf, cgc.buffer, CD_FRAMESIZE_RAW * nr)) {
- 			ret = -EFAULT;
- 			break;
- 		}
-@@ -2141,7 +2136,6 @@ static int cdrom_read_cdda_old(struct cdrom_device_info *cdi, __u8 __user *ubuf,
- 		nframes -= nr;
- 		lba += nr;
- 	}
--out:
- 	kfree(cgc.buffer);
- 	return ret;
- }
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0072-Linux-3.2.9.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0072-Linux-3.2.9.patch
deleted file mode 100644
index cfd96ea..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/3.2.9/0072-Linux-3.2.9.patch
+++ /dev/null
@@ -1,24 +0,0 @@
-From f9e8b39d6e660288a820703eadc8107b1db47022 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
-Date: Wed, 29 Feb 2012 16:32:49 -0800
-Subject: [PATCH 72/72] Linux 3.2.9
-
----
- Makefile |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/Makefile b/Makefile
-index 7df8a84..5f1739b 100644
---- a/Makefile
-+++ b/Makefile
-@@ -1,6 +1,6 @@
- VERSION = 3
- PATCHLEVEL = 2
--SUBLEVEL = 8
-+SUBLEVEL = 9
- EXTRAVERSION =
- NAME = Saber-toothed Squirrel
- 
--- 
-1.7.9.4
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-evm/defconfig b/recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-evm/defconfig
deleted file mode 100644
index 39db9ab..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-evm/defconfig
+++ /dev/null
@@ -1,2640 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.2.6 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_HAVE_PWM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_SCHED_CLOCK=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-CONFIG_LOCALVERSION_AUTO=y
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-CONFIG_KERNEL_GZIP=y
-# CONFIG_KERNEL_LZMA is not set
-# CONFIG_KERNEL_LZO is not set
-CONFIG_DEFAULT_HOSTNAME="(none)"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_BSD_PROCESS_ACCT=y
-# CONFIG_BSD_PROCESS_ACCT_V3 is not set
-# CONFIG_FHANDLE is not set
-# CONFIG_TASKSTATS is not set
-# CONFIG_AUDIT is not set
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-# CONFIG_SPARSE_IRQ is not set
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=16
-# CONFIG_CGROUPS is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-# CONFIG_SCHED_AUTOGROUP is not set
-# CONFIG_SYSFS_DEPRECATED is not set
-# CONFIG_RELAY is not set
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-# CONFIG_CC_OPTIMIZE_FOR_SIZE is not set
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-# CONFIG_EXPERT is not set
-CONFIG_UID16=y
-# CONFIG_SYSCTL_SYSCALL is not set
-CONFIG_KALLSYMS=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-# CONFIG_EMBEDDED is not set
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-# CONFIG_PERF_EVENTS is not set
-# CONFIG_PERF_COUNTERS is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_COMPAT_BRK=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-CONFIG_PROFILING=y
-CONFIG_OPROFILE=y
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-CONFIG_MODULE_SRCVERSION_ALL=y
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-# CONFIG_BLK_DEV_BSG is not set
-# CONFIG_BLK_DEV_BSGLIB is not set
-# CONFIG_BLK_DEV_INTEGRITY is not set
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
-# CONFIG_FREEZER is not set
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_PRIMA2 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PICOXCELL is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_TCC_926 is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-CONFIG_ARCH_OMAP=y
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_VT8500 is not set
-# CONFIG_ARCH_ZYNQ is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_KEYBOARD_GPIO_POLLED is not set
-
-#
-# TI OMAP Common Features
-#
-# CONFIG_ARCH_OMAP1 is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# OMAP Feature Selections
-#
-# CONFIG_OMAP_SMARTREFLEX is not set
-# CONFIG_OMAP_RESET_CLOCKS is not set
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-# CONFIG_OMAP_MCBSP is not set
-CONFIG_OMAP_MBOX_FWK=y
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_OMAP_32K_TIMER is not set
-# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-# CONFIG_ARCH_OMAP2 is not set
-CONFIG_ARCH_OMAP3=y
-# CONFIG_ARCH_OMAP4 is not set
-# CONFIG_SOC_OMAP3430 is not set
-CONFIG_SOC_OMAPTI81XX=y
-CONFIG_SOC_OMAPAM33XX=y
-CONFIG_OMAP_PACKAGE_CBB=y
-
-#
-# OMAP Board Type
-#
-CONFIG_MACH_OMAP3_BEAGLE=y
-# CONFIG_MACH_DEVKIT8000 is not set
-# CONFIG_MACH_OMAP_LDP is not set
-# CONFIG_MACH_OMAP3530_LV_SOM is not set
-# CONFIG_MACH_OMAP3_TORPEDO is not set
-# CONFIG_MACH_ENCORE is not set
-# CONFIG_MACH_OVERO is not set
-# CONFIG_MACH_OMAP3EVM is not set
-# CONFIG_MACH_OMAP3517EVM is not set
-# CONFIG_MACH_CRANEBOARD is not set
-# CONFIG_MACH_OMAP3_PANDORA is not set
-# CONFIG_MACH_OMAP3_TOUCHBOOK is not set
-# CONFIG_MACH_OMAP_3430SDP is not set
-# CONFIG_MACH_NOKIA_RM680 is not set
-# CONFIG_MACH_NOKIA_RX51 is not set
-# CONFIG_MACH_OMAP_ZOOM2 is not set
-# CONFIG_MACH_OMAP_ZOOM3 is not set
-# CONFIG_MACH_CM_T35 is not set
-# CONFIG_MACH_CM_T3517 is not set
-# CONFIG_MACH_IGEP0020 is not set
-# CONFIG_MACH_IGEP0030 is not set
-# CONFIG_MACH_SBC3530 is not set
-# CONFIG_MACH_OMAP_3630SDP is not set
-CONFIG_MACH_TI8168EVM=y
-CONFIG_MACH_TI8148EVM=y
-CONFIG_MACH_AM335XEVM=y
-CONFIG_MACH_AM335XIAEVM=y
-# CONFIG_OMAP3_EMU is not set
-# CONFIG_OMAP3_SDRC_AC_TIMING is not set
-CONFIG_OMAP3_EDMA=y
-
-#
-# System MMU
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-# CONFIG_SWP_EMULATE is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_MULTI_IRQ_HANDLER=y
-# CONFIG_ARM_ERRATA_430973 is not set
-# CONFIG_ARM_ERRATA_458693 is not set
-# CONFIG_ARM_ERRATA_460075 is not set
-# CONFIG_ARM_ERRATA_720789 is not set
-# CONFIG_ARM_ERRATA_743622 is not set
-# CONFIG_ARM_ERRATA_751472 is not set
-# CONFIG_ARM_ERRATA_754322 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=100
-# CONFIG_THUMB2_KERNEL is not set
-CONFIG_AEABI=y
-CONFIG_OABI_COMPAT=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-# CONFIG_HIGHMEM is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_COMPACTION is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-# CONFIG_LEDS is not set
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_ARM_APPENDED_DTB is not set
-CONFIG_CMDLINE="root=/dev/mmcblk0p2 rootwait console=ttyO0,115200"
-CONFIG_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_CMDLINE_EXTEND is not set
-# CONFIG_CMDLINE_FORCE is not set
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-# CONFIG_AUTO_ZRELADDR is not set
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-CONFIG_CPU_FREQ_STAT=y
-# CONFIG_CPU_FREQ_STAT_DETAILS is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
-CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-# CONFIG_CPU_FREQ_GOV_PERFORMANCE is not set
-# CONFIG_CPU_FREQ_GOV_POWERSAVE is not set
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-# CONFIG_CPU_FREQ_GOV_CONSERVATIVE is not set
-
-#
-# ARM CPU frequency scaling drivers
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_FPE_NWFPE=y
-# CONFIG_FPE_NWFPE_XP is not set
-# CONFIG_FPE_FASTFPE is not set
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_MISC=y
-
-#
-# Power management options
-#
-# CONFIG_SUSPEND is not set
-CONFIG_PM_RUNTIME=y
-CONFIG_PM=y
-# CONFIG_PM_DEBUG is not set
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_HAS_OPP=y
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-CONFIG_CPU_PM=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-# CONFIG_NET_KEY is not set
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-# CONFIG_NET_IPIP is not set
-# CONFIG_NET_IPGRE_DEMUX is not set
-# CONFIG_IP_MROUTE is not set
-# CONFIG_ARPD is not set
-# CONFIG_SYN_COOKIES is not set
-# CONFIG_INET_AH is not set
-# CONFIG_INET_ESP is not set
-# CONFIG_INET_IPCOMP is not set
-# CONFIG_INET_XFRM_TUNNEL is not set
-# CONFIG_INET_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_TRANSPORT is not set
-# CONFIG_INET_XFRM_MODE_TUNNEL is not set
-# CONFIG_INET_XFRM_MODE_BEET is not set
-# CONFIG_INET_LRO is not set
-# CONFIG_INET_DIAG is not set
-# CONFIG_TCP_CONG_ADVANCED is not set
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-# CONFIG_IPV6 is not set
-# CONFIG_NETLABEL is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-
-#
-# Core Netfilter Configuration
-#
-# CONFIG_NETFILTER_NETLINK_QUEUE is not set
-# CONFIG_NETFILTER_NETLINK_LOG is not set
-CONFIG_NF_CONNTRACK=y
-# CONFIG_NF_CONNTRACK_MARK is not set
-# CONFIG_NF_CONNTRACK_EVENTS is not set
-# CONFIG_NF_CONNTRACK_TIMESTAMP is not set
-# CONFIG_NF_CT_PROTO_DCCP is not set
-# CONFIG_NF_CT_PROTO_SCTP is not set
-# CONFIG_NF_CT_PROTO_UDPLITE is not set
-# CONFIG_NF_CONNTRACK_AMANDA is not set
-# CONFIG_NF_CONNTRACK_FTP is not set
-# CONFIG_NF_CONNTRACK_H323 is not set
-# CONFIG_NF_CONNTRACK_IRC is not set
-# CONFIG_NF_CONNTRACK_NETBIOS_NS is not set
-# CONFIG_NF_CONNTRACK_SNMP is not set
-# CONFIG_NF_CONNTRACK_PPTP is not set
-# CONFIG_NF_CONNTRACK_SANE is not set
-# CONFIG_NF_CONNTRACK_SIP is not set
-# CONFIG_NF_CONNTRACK_TFTP is not set
-# CONFIG_NF_CT_NETLINK is not set
-CONFIG_NETFILTER_XTABLES=y
-
-#
-# Xtables combined modules
-#
-# CONFIG_NETFILTER_XT_MARK is not set
-# CONFIG_NETFILTER_XT_CONNMARK is not set
-
-#
-# Xtables targets
-#
-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
-# CONFIG_NETFILTER_XT_TARGET_CONNMARK is not set
-# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
-# CONFIG_NETFILTER_XT_TARGET_MARK is not set
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-# CONFIG_NETFILTER_XT_TARGET_TEE is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
-
-#
-# Xtables matches
-#
-# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_CLUSTER is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNBYTES is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNLIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNMARK is not set
-# CONFIG_NETFILTER_XT_MATCH_CONNTRACK is not set
-# CONFIG_NETFILTER_XT_MATCH_CPU is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_HELPER is not set
-# CONFIG_NETFILTER_XT_MATCH_HL is not set
-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_STATE is not set
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-CONFIG_NF_DEFRAG_IPV4=y
-CONFIG_NF_CONNTRACK_IPV4=y
-CONFIG_NF_CONNTRACK_PROC_COMPAT=y
-# CONFIG_IP_NF_QUEUE is not set
-CONFIG_IP_NF_IPTABLES=y
-# CONFIG_IP_NF_MATCH_AH is not set
-# CONFIG_IP_NF_MATCH_ECN is not set
-# CONFIG_IP_NF_MATCH_TTL is not set
-CONFIG_IP_NF_FILTER=y
-# CONFIG_IP_NF_TARGET_REJECT is not set
-CONFIG_IP_NF_TARGET_LOG=y
-# CONFIG_IP_NF_TARGET_ULOG is not set
-CONFIG_NF_NAT=y
-CONFIG_NF_NAT_NEEDED=y
-CONFIG_IP_NF_TARGET_MASQUERADE=y
-# CONFIG_IP_NF_TARGET_NETMAP is not set
-# CONFIG_IP_NF_TARGET_REDIRECT is not set
-# CONFIG_NF_NAT_FTP is not set
-# CONFIG_NF_NAT_IRC is not set
-# CONFIG_NF_NAT_TFTP is not set
-# CONFIG_NF_NAT_AMANDA is not set
-# CONFIG_NF_NAT_PPTP is not set
-# CONFIG_NF_NAT_H323 is not set
-# CONFIG_NF_NAT_SIP is not set
-# CONFIG_IP_NF_MANGLE is not set
-# CONFIG_IP_NF_RAW is not set
-# CONFIG_IP_NF_SECURITY is not set
-# CONFIG_IP_NF_ARPTABLES is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-# CONFIG_BRIDGE is not set
-# CONFIG_NET_DSA is not set
-# CONFIG_VLAN_8021Q is not set
-# CONFIG_DECNET is not set
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-# CONFIG_NET_SCHED is not set
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-# CONFIG_BATMAN_ADV is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=y
-CONFIG_CAN_RAW=y
-CONFIG_CAN_BCM=y
-# CONFIG_CAN_GW is not set
-
-#
-# CAN Device Drivers
-#
-# CONFIG_CAN_VCAN is not set
-# CONFIG_CAN_SLCAN is not set
-CONFIG_CAN_DEV=y
-CONFIG_CAN_CALC_BITTIMING=y
-# CONFIG_CAN_TI_HECC is not set
-# CONFIG_CAN_MCP251X is not set
-# CONFIG_CAN_SJA1000 is not set
-# CONFIG_CAN_C_CAN is not set
-CONFIG_CAN_D_CAN=y
-CONFIG_CAN_D_CAN_PLATFORM=y
-
-#
-# CAN USB interfaces
-#
-# CONFIG_CAN_EMS_USB is not set
-# CONFIG_CAN_ESD_USB2 is not set
-# CONFIG_CAN_SOFTING is not set
-# CONFIG_CAN_DEBUG_DEVICES is not set
-# CONFIG_IRDA is not set
-# CONFIG_BT is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-# CONFIG_CFG80211 is not set
-CONFIG_WIRELESS_EXT_SYSFS=y
-# CONFIG_LIB80211 is not set
-
-#
-# CFG80211 needs to be enabled for MAC80211
-#
-# CONFIG_WIMAX is not set
-CONFIG_RFKILL=y
-CONFIG_RFKILL_INPUT=y
-# CONFIG_RFKILL_REGULATOR is not set
-# CONFIG_RFKILL_GPIO is not set
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-# CONFIG_CEPH_LIB is not set
-# CONFIG_NFC is not set
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH="/sbin/hotplug"
-# CONFIG_DEVTMPFS is not set
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE=""
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-
-#
-# CBUS support
-#
-# CONFIG_CBUS is not set
-# CONFIG_CONNECTOR is not set
-CONFIG_MTD=y
-# CONFIG_MTD_TESTS is not set
-# CONFIG_MTD_REDBOOT_PARTS is not set
-CONFIG_MTD_CMDLINE_PARTS=y
-# CONFIG_MTD_AFS_PARTS is not set
-# CONFIG_MTD_OF_PARTS is not set
-# CONFIG_MTD_AR7_PARTS is not set
-
-#
-# User Modules And Translation Layers
-#
-CONFIG_MTD_CHAR=y
-CONFIG_MTD_BLKDEVS=y
-CONFIG_MTD_BLOCK=y
-# CONFIG_FTL is not set
-# CONFIG_NFTL is not set
-# CONFIG_INFTL is not set
-# CONFIG_RFD_FTL is not set
-# CONFIG_SSFDC is not set
-# CONFIG_SM_FTL is not set
-CONFIG_MTD_OOPS=y
-# CONFIG_MTD_SWAP is not set
-
-#
-# RAM/ROM/Flash chip drivers
-#
-CONFIG_MTD_CFI=y
-# CONFIG_MTD_JEDECPROBE is not set
-CONFIG_MTD_GEN_PROBE=y
-# CONFIG_MTD_CFI_ADV_OPTIONS is not set
-CONFIG_MTD_MAP_BANK_WIDTH_1=y
-CONFIG_MTD_MAP_BANK_WIDTH_2=y
-CONFIG_MTD_MAP_BANK_WIDTH_4=y
-# CONFIG_MTD_MAP_BANK_WIDTH_8 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_16 is not set
-# CONFIG_MTD_MAP_BANK_WIDTH_32 is not set
-CONFIG_MTD_CFI_I1=y
-CONFIG_MTD_CFI_I2=y
-# CONFIG_MTD_CFI_I4 is not set
-# CONFIG_MTD_CFI_I8 is not set
-CONFIG_MTD_CFI_INTELEXT=y
-# CONFIG_MTD_CFI_AMDSTD is not set
-# CONFIG_MTD_CFI_STAA is not set
-CONFIG_MTD_CFI_UTIL=y
-# CONFIG_MTD_RAM is not set
-# CONFIG_MTD_ROM is not set
-# CONFIG_MTD_ABSENT is not set
-
-#
-# Mapping drivers for chip access
-#
-# CONFIG_MTD_COMPLEX_MAPPINGS is not set
-# CONFIG_MTD_PHYSMAP is not set
-# CONFIG_MTD_PHYSMAP_OF is not set
-# CONFIG_MTD_PLATRAM is not set
-
-#
-# Self-contained MTD device drivers
-#
-# CONFIG_MTD_DATAFLASH is not set
-CONFIG_MTD_M25P80=y
-CONFIG_M25PXX_USE_FAST_READ=y
-# CONFIG_MTD_SST25L is not set
-# CONFIG_MTD_SLRAM is not set
-# CONFIG_MTD_PHRAM is not set
-# CONFIG_MTD_MTDRAM is not set
-# CONFIG_MTD_BLOCK2MTD is not set
-
-#
-# Disk-On-Chip Device Drivers
-#
-# CONFIG_MTD_DOC2000 is not set
-# CONFIG_MTD_DOC2001 is not set
-# CONFIG_MTD_DOC2001PLUS is not set
-# CONFIG_MTD_DOCG3 is not set
-CONFIG_MTD_NAND_ECC=y
-# CONFIG_MTD_NAND_ECC_SMC is not set
-CONFIG_MTD_NAND=y
-# CONFIG_MTD_NAND_VERIFY_WRITE is not set
-# CONFIG_MTD_NAND_ECC_BCH is not set
-# CONFIG_MTD_SM_COMMON is not set
-# CONFIG_MTD_NAND_MUSEUM_IDS is not set
-# CONFIG_MTD_NAND_GPIO is not set
-CONFIG_MTD_NAND_OMAP2=y
-CONFIG_MTD_NAND_IDS=y
-# CONFIG_MTD_NAND_DISKONCHIP is not set
-# CONFIG_MTD_NAND_NANDSIM is not set
-# CONFIG_MTD_NAND_PLATFORM is not set
-# CONFIG_MTD_ALAUDA is not set
-CONFIG_MTD_ONENAND=y
-CONFIG_MTD_ONENAND_VERIFY_WRITE=y
-# CONFIG_MTD_ONENAND_GENERIC is not set
-CONFIG_MTD_ONENAND_OMAP2=y
-# CONFIG_MTD_ONENAND_OTP is not set
-# CONFIG_MTD_ONENAND_2X_PROGRAM is not set
-# CONFIG_MTD_ONENAND_SIM is not set
-
-#
-# LPDDR flash memory drivers
-#
-# CONFIG_MTD_LPDDR is not set
-CONFIG_MTD_UBI=y
-CONFIG_MTD_UBI_WL_THRESHOLD=4096
-CONFIG_MTD_UBI_BEB_RESERVE=1
-# CONFIG_MTD_UBI_GLUEBI is not set
-# CONFIG_MTD_UBI_DEBUG is not set
-CONFIG_DTC=y
-CONFIG_OF=y
-
-#
-# Device Tree and Open Firmware support
-#
-CONFIG_PROC_DEVICETREE=y
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_DEVICE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_I2C=y
-CONFIG_OF_NET=y
-CONFIG_OF_SPI=y
-CONFIG_OF_MDIO=y
-# CONFIG_PARPORT is not set
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-# CONFIG_BLK_DEV_CRYPTOLOOP is not set
-
-#
-# DRBD disabled because PROC_FS, INET or CONNECTOR not selected
-#
-# CONFIG_BLK_DEV_NBD is not set
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=16
-CONFIG_BLK_DEV_RAM_SIZE=16384
-# CONFIG_BLK_DEV_XIP is not set
-# CONFIG_CDROM_PKTCDVD is not set
-# CONFIG_ATA_OVER_ETH is not set
-# CONFIG_MG_DISK is not set
-# CONFIG_BLK_DEV_RBD is not set
-CONFIG_SENSORS_LIS3LV02D=y
-CONFIG_MISC_DEVICES=y
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_ATMEL_PWM is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-CONFIG_SENSORS_TSL2550=y
-# CONFIG_SENSORS_BH1780 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_TI_DAC7512 is not set
-# CONFIG_BMP085 is not set
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=y
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-# CONFIG_EEPROM_93CX6 is not set
-# CONFIG_EEPROM_93XX46 is not set
-# CONFIG_IWMC3200TOP is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-# CONFIG_TI_ST is not set
-# CONFIG_SENSORS_LIS3_SPI is not set
-CONFIG_SENSORS_LIS3_I2C=y
-
-#
-# Altera FPGA firmware download module
-#
-# CONFIG_ALTERA_STAPL is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-# CONFIG_BLK_DEV_SR is not set
-# CONFIG_CHR_DEV_SG is not set
-# CONFIG_CHR_DEV_SCH is not set
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_ISCSI_BOOT_SYSFS is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-# CONFIG_MD is not set
-# CONFIG_TARGET_CORE is not set
-CONFIG_NETDEVICES=y
-CONFIG_NET_CORE=y
-# CONFIG_BONDING is not set
-# CONFIG_DUMMY is not set
-# CONFIG_EQUALIZER is not set
-CONFIG_MII=y
-# CONFIG_MACVLAN is not set
-# CONFIG_NETCONSOLE is not set
-# CONFIG_NETPOLL is not set
-# CONFIG_NET_POLL_CONTROLLER is not set
-# CONFIG_TUN is not set
-# CONFIG_VETH is not set
-
-#
-# CAIF transport drivers
-#
-CONFIG_ETHERNET=y
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_FARADAY=y
-# CONFIG_FTMAC100 is not set
-# CONFIG_FTGMAC100 is not set
-CONFIG_NET_VENDOR_INTEL=y
-CONFIG_NET_VENDOR_I825XX=y
-CONFIG_NET_VENDOR_MARVELL=y
-CONFIG_NET_VENDOR_MICREL=y
-# CONFIG_KS8851 is not set
-# CONFIG_KS8851_MLL is not set
-CONFIG_NET_VENDOR_MICROCHIP=y
-# CONFIG_ENC28J60 is not set
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-CONFIG_NET_VENDOR_SEEQ=y
-# CONFIG_SEEQ8005 is not set
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=y
-# CONFIG_SMC911X is not set
-CONFIG_SMSC911X=y
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-CONFIG_NET_VENDOR_STMICRO=y
-# CONFIG_STMMAC_ETH is not set
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_DAVINCI_EMAC is not set
-CONFIG_TI_DAVINCI_MDIO=y
-CONFIG_TI_DAVINCI_CPDMA=y
-CONFIG_TI_CPSW=y
-CONFIG_TLK110_WORKAROUND=y
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-CONFIG_SMSC_PHY=y
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_MICREL_PHY is not set
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_PPP is not set
-# CONFIG_SLIP is not set
-
-#
-# USB Network Adapters
-#
-# CONFIG_USB_CATC is not set
-# CONFIG_USB_KAWETH is not set
-# CONFIG_USB_PEGASUS is not set
-# CONFIG_USB_RTL8150 is not set
-CONFIG_USB_USBNET=y
-# CONFIG_USB_NET_AX8817X is not set
-CONFIG_USB_NET_CDCETHER=y
-# CONFIG_USB_NET_CDC_EEM is not set
-# CONFIG_USB_NET_CDC_NCM is not set
-# CONFIG_USB_NET_DM9601 is not set
-# CONFIG_USB_NET_SMSC75XX is not set
-# CONFIG_USB_NET_SMSC95XX is not set
-# CONFIG_USB_NET_GL620A is not set
-# CONFIG_USB_NET_NET1080 is not set
-# CONFIG_USB_NET_PLUSB is not set
-# CONFIG_USB_NET_MCS7830 is not set
-# CONFIG_USB_NET_RNDIS_HOST is not set
-CONFIG_USB_NET_CDC_SUBSET=y
-# CONFIG_USB_ALI_M5632 is not set
-# CONFIG_USB_AN2720 is not set
-# CONFIG_USB_BELKIN is not set
-# CONFIG_USB_ARMLINUX is not set
-# CONFIG_USB_EPSON2888 is not set
-# CONFIG_USB_KC2190 is not set
-# CONFIG_USB_NET_ZAURUS is not set
-# CONFIG_USB_NET_CX82310_ETH is not set
-# CONFIG_USB_NET_KALMIA is not set
-# CONFIG_USB_HSO is not set
-# CONFIG_USB_NET_INT51X1 is not set
-# CONFIG_USB_IPHETH is not set
-# CONFIG_USB_SIERRA_NET is not set
-# CONFIG_USB_VL600 is not set
-CONFIG_WLAN=y
-# CONFIG_USB_ZD1201 is not set
-# CONFIG_HOSTAP is not set
-CONFIG_WL12XX_PLATFORM_DATA=y
-
-#
-# Enable WiMAX (Networking options) to see the WiMAX drivers
-#
-# CONFIG_WAN is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-# CONFIG_INPUT_FF_MEMLESS is not set
-CONFIG_INPUT_POLLDEV=y
-# CONFIG_INPUT_SPARSEKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-# CONFIG_INPUT_JOYDEV is not set
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-# CONFIG_KEYBOARD_ATKBD is not set
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_KEYBOARD_TCA6416 is not set
-CONFIG_KEYBOARD_MATRIX=y
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-# CONFIG_KEYBOARD_TWL4030 is not set
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-# CONFIG_TOUCHSCREEN_ADS7846 is not set
-# CONFIG_TOUCHSCREEN_AD7877 is not set
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
-# CONFIG_TOUCHSCREEN_BU21013 is not set
-# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
-# CONFIG_TOUCHSCREEN_DYNAPRO is not set
-# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
-# CONFIG_TOUCHSCREEN_EETI is not set
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-CONFIG_TOUCHSCREEN_TI_TSCADC=y
-# CONFIG_TOUCHSCREEN_USB_COMPOSITE is not set
-# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-# CONFIG_TOUCHSCREEN_TSC_SERIO is not set
-# CONFIG_TOUCHSCREEN_TSC2005 is not set
-# CONFIG_TOUCHSCREEN_TSC2007 is not set
-# CONFIG_TOUCHSCREEN_W90X900 is not set
-# CONFIG_TOUCHSCREEN_ST1232 is not set
-# CONFIG_TOUCHSCREEN_TPS6507X is not set
-CONFIG_INPUT_MISC=y
-# CONFIG_INPUT_AD714X is not set
-# CONFIG_INPUT_BMA150 is not set
-# CONFIG_INPUT_MMA8450 is not set
-# CONFIG_INPUT_MPU3050 is not set
-# CONFIG_INPUT_ATI_REMOTE2 is not set
-# CONFIG_INPUT_KEYSPAN_REMOTE is not set
-# CONFIG_INPUT_KXTJ9 is not set
-# CONFIG_INPUT_POWERMATE is not set
-# CONFIG_INPUT_YEALINK is not set
-# CONFIG_INPUT_CM109 is not set
-# CONFIG_INPUT_TWL4030_PWRBUTTON is not set
-# CONFIG_INPUT_TWL4030_VIBRA is not set
-# CONFIG_INPUT_TWL6040_VIBRA is not set
-# CONFIG_INPUT_UINPUT is not set
-# CONFIG_INPUT_PCF8574 is not set
-# CONFIG_INPUT_PWM_BEEPER is not set
-# CONFIG_INPUT_GPIO_ROTARY_ENCODER is not set
-# CONFIG_INPUT_ADXL34X is not set
-# CONFIG_INPUT_CMA3000 is not set
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-# CONFIG_SERIO_SERPORT is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-# CONFIG_SERIAL_8250 is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX3107 is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_IPMI_HANDLER is not set
-# CONFIG_HW_RANDOM is not set
-# CONFIG_R3964 is not set
-# CONFIG_RAW_DRIVER is not set
-# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_OMAP=y
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_DIOLAN_U2C is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-# CONFIG_SPI_BITBANG is not set
-# CONFIG_SPI_GPIO is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-# CONFIG_SPI_SPIDEV is not set
-# CONFIG_SPI_TLE62X0 is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_GPIO_SYSFS=y
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_IT8761E is not set
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
-# CONFIG_GPIO_TWL4030 is not set
-# CONFIG_GPIO_ADP5588 is not set
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_74X164 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-CONFIG_GPIO_TPS65910=y
-CONFIG_GENERIC_PWM=y
-CONFIG_DAVINCI_EHRPWM=y
-CONFIG_ECAP_PWM=y
-# CONFIG_W1 is not set
-# CONFIG_POWER_SUPPLY is not set
-CONFIG_HWMON=y
-# CONFIG_HWMON_VID is not set
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-# CONFIG_SENSORS_AD7314 is not set
-# CONFIG_SENSORS_AD7414 is not set
-# CONFIG_SENSORS_AD7418 is not set
-# CONFIG_SENSORS_ADCXX is not set
-# CONFIG_SENSORS_ADM1021 is not set
-# CONFIG_SENSORS_ADM1025 is not set
-# CONFIG_SENSORS_ADM1026 is not set
-# CONFIG_SENSORS_ADM1029 is not set
-# CONFIG_SENSORS_ADM1031 is not set
-# CONFIG_SENSORS_ADM9240 is not set
-# CONFIG_SENSORS_ADT7411 is not set
-# CONFIG_SENSORS_ADT7462 is not set
-# CONFIG_SENSORS_ADT7470 is not set
-# CONFIG_SENSORS_ADT7475 is not set
-# CONFIG_SENSORS_ASC7621 is not set
-# CONFIG_SENSORS_ATXP1 is not set
-# CONFIG_SENSORS_DS620 is not set
-# CONFIG_SENSORS_DS1621 is not set
-# CONFIG_SENSORS_F71805F is not set
-# CONFIG_SENSORS_F71882FG is not set
-# CONFIG_SENSORS_F75375S is not set
-# CONFIG_SENSORS_G760A is not set
-# CONFIG_SENSORS_GL518SM is not set
-# CONFIG_SENSORS_GL520SM is not set
-# CONFIG_SENSORS_GPIO_FAN is not set
-# CONFIG_SENSORS_IT87 is not set
-# CONFIG_SENSORS_JC42 is not set
-# CONFIG_SENSORS_LINEAGE is not set
-# CONFIG_SENSORS_LM63 is not set
-# CONFIG_SENSORS_LM70 is not set
-# CONFIG_SENSORS_LM73 is not set
-CONFIG_SENSORS_LM75=y
-# CONFIG_SENSORS_LM77 is not set
-# CONFIG_SENSORS_LM78 is not set
-# CONFIG_SENSORS_LM80 is not set
-# CONFIG_SENSORS_LM83 is not set
-# CONFIG_SENSORS_LM85 is not set
-# CONFIG_SENSORS_LM87 is not set
-# CONFIG_SENSORS_LM90 is not set
-# CONFIG_SENSORS_LM92 is not set
-# CONFIG_SENSORS_LM93 is not set
-# CONFIG_SENSORS_LTC4151 is not set
-# CONFIG_SENSORS_LTC4215 is not set
-# CONFIG_SENSORS_LTC4245 is not set
-# CONFIG_SENSORS_LTC4261 is not set
-# CONFIG_SENSORS_LM95241 is not set
-# CONFIG_SENSORS_LM95245 is not set
-# CONFIG_SENSORS_MAX1111 is not set
-# CONFIG_SENSORS_MAX16065 is not set
-# CONFIG_SENSORS_MAX1619 is not set
-# CONFIG_SENSORS_MAX1668 is not set
-# CONFIG_SENSORS_MAX6639 is not set
-# CONFIG_SENSORS_MAX6642 is not set
-# CONFIG_SENSORS_MAX6650 is not set
-# CONFIG_SENSORS_NTC_THERMISTOR is not set
-# CONFIG_SENSORS_PC87360 is not set
-# CONFIG_SENSORS_PC87427 is not set
-# CONFIG_SENSORS_PCF8591 is not set
-# CONFIG_PMBUS is not set
-# CONFIG_SENSORS_SHT15 is not set
-# CONFIG_SENSORS_SHT21 is not set
-# CONFIG_SENSORS_SMM665 is not set
-# CONFIG_SENSORS_DME1737 is not set
-# CONFIG_SENSORS_EMC1403 is not set
-# CONFIG_SENSORS_EMC2103 is not set
-# CONFIG_SENSORS_EMC6W201 is not set
-# CONFIG_SENSORS_SMSC47M1 is not set
-# CONFIG_SENSORS_SMSC47M192 is not set
-# CONFIG_SENSORS_SMSC47B397 is not set
-# CONFIG_SENSORS_SCH56XX_COMMON is not set
-# CONFIG_SENSORS_SCH5627 is not set
-# CONFIG_SENSORS_SCH5636 is not set
-# CONFIG_SENSORS_ADS1015 is not set
-# CONFIG_SENSORS_ADS7828 is not set
-# CONFIG_SENSORS_ADS7871 is not set
-# CONFIG_SENSORS_AMC6821 is not set
-# CONFIG_SENSORS_THMC50 is not set
-# CONFIG_SENSORS_TMP102 is not set
-# CONFIG_SENSORS_TMP401 is not set
-# CONFIG_SENSORS_TMP421 is not set
-# CONFIG_SENSORS_VT1211 is not set
-# CONFIG_SENSORS_W83781D is not set
-# CONFIG_SENSORS_W83791D is not set
-# CONFIG_SENSORS_W83792D is not set
-# CONFIG_SENSORS_W83793 is not set
-# CONFIG_SENSORS_W83795 is not set
-# CONFIG_SENSORS_W83L785TS is not set
-# CONFIG_SENSORS_W83L786NG is not set
-# CONFIG_SENSORS_W83627HF is not set
-# CONFIG_SENSORS_W83627EHF is not set
-# CONFIG_THERMAL is not set
-CONFIG_WATCHDOG=y
-# CONFIG_WATCHDOG_CORE is not set
-# CONFIG_WATCHDOG_NOWAYOUT is not set
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-# CONFIG_TWL4030_WATCHDOG is not set
-# CONFIG_MAX63XX_WATCHDOG is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-# CONFIG_SSB is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-CONFIG_MFD_TPS65217=y
-# CONFIG_MFD_TPS6586X is not set
-CONFIG_MFD_TPS65910=y
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-CONFIG_TWL4030_CORE=y
-# CONFIG_TWL4030_MADC is not set
-CONFIG_TWL4030_POWER=y
-# CONFIG_MFD_TWL4030_AUDIO is not set
-# CONFIG_TWL6030_PWM is not set
-# CONFIG_TWL6040_CORE is not set
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_DUMMY=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-# CONFIG_REGULATOR_GPIO is not set
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_TWL4030 is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-CONFIG_REGULATOR_TPS65217=y
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_AD5398 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_REGULATOR_TPS65910=y
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-# CONFIG_MEDIA_CONTROLLER is not set
-CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_COMMON=y
-# CONFIG_DVB_CORE is not set
-CONFIG_VIDEO_MEDIA=y
-
-#
-# Multimedia drivers
-#
-CONFIG_RC_CORE=y
-CONFIG_LIRC=y
-CONFIG_RC_MAP=y
-CONFIG_IR_NEC_DECODER=y
-CONFIG_IR_RC5_DECODER=y
-CONFIG_IR_RC6_DECODER=y
-CONFIG_IR_JVC_DECODER=y
-CONFIG_IR_SONY_DECODER=y
-CONFIG_IR_RC5_SZ_DECODER=y
-CONFIG_IR_MCE_KBD_DECODER=y
-CONFIG_IR_LIRC_CODEC=y
-# CONFIG_RC_ATI_REMOTE is not set
-# CONFIG_IR_IMON is not set
-# CONFIG_IR_MCEUSB is not set
-# CONFIG_IR_REDRAT3 is not set
-# CONFIG_IR_STREAMZAP is not set
-# CONFIG_RC_LOOPBACK is not set
-# CONFIG_MEDIA_ATTACH is not set
-CONFIG_MEDIA_TUNER=y
-# CONFIG_MEDIA_TUNER_CUSTOMISE is not set
-CONFIG_MEDIA_TUNER_SIMPLE=y
-CONFIG_MEDIA_TUNER_TDA8290=y
-CONFIG_MEDIA_TUNER_TDA827X=y
-CONFIG_MEDIA_TUNER_TDA18271=y
-CONFIG_MEDIA_TUNER_TDA9887=y
-CONFIG_MEDIA_TUNER_TEA5761=y
-CONFIG_MEDIA_TUNER_TEA5767=y
-CONFIG_MEDIA_TUNER_MT20XX=y
-CONFIG_MEDIA_TUNER_XC2028=y
-CONFIG_MEDIA_TUNER_XC5000=y
-CONFIG_MEDIA_TUNER_XC4000=y
-CONFIG_MEDIA_TUNER_MC44S803=y
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-CONFIG_VIDEO_HELPER_CHIPS_AUTO=y
-CONFIG_VIDEO_IR_I2C=y
-
-#
-# Audio decoders, processors and mixers
-#
-
-#
-# RDS decoders
-#
-
-#
-# Video decoders
-#
-
-#
-# Video and audio decoders
-#
-
-#
-# MPEG video encoders
-#
-
-#
-# Video encoders
-#
-
-#
-# Camera sensor devices
-#
-
-#
-# Flash devices
-#
-
-#
-# Video improvement chips
-#
-
-#
-# Miscelaneous helper chips
-#
-# CONFIG_VIDEO_VIVI is not set
-# CONFIG_VIDEO_VPFE_CAPTURE is not set
-# CONFIG_VIDEO_OMAP2_VOUT is not set
-# CONFIG_VIDEO_CPIA2 is not set
-# CONFIG_SOC_CAMERA is not set
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=y
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-# CONFIG_USB_M5602 is not set
-# CONFIG_USB_STV06XX is not set
-# CONFIG_USB_GL860 is not set
-# CONFIG_USB_GSPCA_BENQ is not set
-# CONFIG_USB_GSPCA_CONEX is not set
-# CONFIG_USB_GSPCA_CPIA1 is not set
-# CONFIG_USB_GSPCA_ETOMS is not set
-# CONFIG_USB_GSPCA_FINEPIX is not set
-# CONFIG_USB_GSPCA_JEILINJ is not set
-# CONFIG_USB_GSPCA_KINECT is not set
-# CONFIG_USB_GSPCA_KONICA is not set
-# CONFIG_USB_GSPCA_MARS is not set
-# CONFIG_USB_GSPCA_MR97310A is not set
-# CONFIG_USB_GSPCA_NW80X is not set
-# CONFIG_USB_GSPCA_OV519 is not set
-# CONFIG_USB_GSPCA_OV534 is not set
-# CONFIG_USB_GSPCA_OV534_9 is not set
-# CONFIG_USB_GSPCA_PAC207 is not set
-# CONFIG_USB_GSPCA_PAC7302 is not set
-# CONFIG_USB_GSPCA_PAC7311 is not set
-# CONFIG_USB_GSPCA_SE401 is not set
-# CONFIG_USB_GSPCA_SN9C2028 is not set
-# CONFIG_USB_GSPCA_SN9C20X is not set
-# CONFIG_USB_GSPCA_SONIXB is not set
-# CONFIG_USB_GSPCA_SONIXJ is not set
-# CONFIG_USB_GSPCA_SPCA500 is not set
-# CONFIG_USB_GSPCA_SPCA501 is not set
-# CONFIG_USB_GSPCA_SPCA505 is not set
-# CONFIG_USB_GSPCA_SPCA506 is not set
-# CONFIG_USB_GSPCA_SPCA508 is not set
-# CONFIG_USB_GSPCA_SPCA561 is not set
-# CONFIG_USB_GSPCA_SPCA1528 is not set
-# CONFIG_USB_GSPCA_SQ905 is not set
-# CONFIG_USB_GSPCA_SQ905C is not set
-# CONFIG_USB_GSPCA_SQ930X is not set
-# CONFIG_USB_GSPCA_STK014 is not set
-# CONFIG_USB_GSPCA_STV0680 is not set
-# CONFIG_USB_GSPCA_SUNPLUS is not set
-# CONFIG_USB_GSPCA_T613 is not set
-# CONFIG_USB_GSPCA_TOPRO is not set
-# CONFIG_USB_GSPCA_TV8532 is not set
-# CONFIG_USB_GSPCA_VC032X is not set
-# CONFIG_USB_GSPCA_VICAM is not set
-# CONFIG_USB_GSPCA_XIRLINK_CIT is not set
-# CONFIG_USB_GSPCA_ZC3XX is not set
-# CONFIG_VIDEO_PVRUSB2 is not set
-# CONFIG_VIDEO_HDPVR is not set
-# CONFIG_VIDEO_EM28XX is not set
-# CONFIG_VIDEO_CX231XX is not set
-# CONFIG_VIDEO_TM6000 is not set
-# CONFIG_VIDEO_USBVISION is not set
-# CONFIG_USB_ET61X251 is not set
-# CONFIG_USB_SN9C102 is not set
-# CONFIG_USB_PWC is not set
-# CONFIG_USB_ZR364XX is not set
-# CONFIG_USB_STKWEBCAM is not set
-# CONFIG_USB_S2255 is not set
-# CONFIG_V4L_MEM2MEM_DRIVERS is not set
-CONFIG_RADIO_ADAPTERS=y
-# CONFIG_I2C_SI4713 is not set
-# CONFIG_RADIO_SI4713 is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_RADIO_SI470X is not set
-# CONFIG_USB_MR800 is not set
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
-# CONFIG_RADIO_TEF6862 is not set
-# CONFIG_RADIO_WL1273 is not set
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
-# CONFIG_RADIO_WL128X is not set
-
-#
-# Graphics support
-#
-# CONFIG_DRM is not set
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-# CONFIG_FIRMWARE_EDID is not set
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-# CONFIG_FB_SYS_FILLRECT is not set
-# CONFIG_FB_SYS_COPYAREA is not set
-# CONFIG_FB_SYS_IMAGEBLIT is not set
-# CONFIG_FB_FOREIGN_ENDIAN is not set
-# CONFIG_FB_SYS_FOPS is not set
-# CONFIG_FB_WMT_GE_ROPS is not set
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_TMIO is not set
-# CONFIG_FB_SMSCUFX is not set
-# CONFIG_FB_UDL is not set
-CONFIG_FB_DA8XX=y
-CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE=4
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-# CONFIG_FB_ST7735 is not set
-# CONFIG_FB_OMAP is not set
-# CONFIG_OMAP2_DSS is not set
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-# CONFIG_LCD_L4F00242T03 is not set
-# CONFIG_LCD_LMS283GF05 is not set
-# CONFIG_LCD_LTV350QV is not set
-# CONFIG_LCD_TDO24M is not set
-# CONFIG_LCD_VGG2432A4 is not set
-CONFIG_LCD_PLATFORM=y
-# CONFIG_LCD_S6E63M0 is not set
-# CONFIG_LCD_LD9040 is not set
-# CONFIG_LCD_AMS369FG06 is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-# CONFIG_BACKLIGHT_GENERIC is not set
-CONFIG_BACKLIGHT_PWM=y
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-CONFIG_BACKLIGHT_TLC59108=y
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=y
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-# CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY is not set
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-CONFIG_FONTS=y
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-# CONFIG_FONT_6x11 is not set
-# CONFIG_FONT_7x14 is not set
-# CONFIG_FONT_PEARL_8x8 is not set
-# CONFIG_FONT_ACORN_8x8 is not set
-# CONFIG_FONT_MINI_4x6 is not set
-# CONFIG_FONT_SUN8x16 is not set
-# CONFIG_FONT_SUN12x22 is not set
-# CONFIG_FONT_10x18 is not set
-CONFIG_LOGO=y
-CONFIG_LOGO_LINUX_MONO=y
-CONFIG_LOGO_LINUX_VGA16=y
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_SOUND=y
-# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_HWDEP=y
-CONFIG_SND_RAWMIDI=y
-CONFIG_SND_JACK=y
-# CONFIG_SND_SEQUENCER is not set
-# CONFIG_SND_MIXER_OSS is not set
-# CONFIG_SND_PCM_OSS is not set
-# CONFIG_SND_HRTIMER is not set
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-# CONFIG_SND_RAWMIDI_SEQ is not set
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-# CONFIG_SND_DRIVERS is not set
-# CONFIG_SND_ARM is not set
-# CONFIG_SND_SPI is not set
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=y
-# CONFIG_SND_USB_UA101 is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_6FIRE is not set
-CONFIG_SND_SOC=y
-# CONFIG_SND_SOC_CACHE_LZO is not set
-CONFIG_SND_AM33XX_SOC=y
-CONFIG_SND_DAVINCI_SOC_MCASP=y
-CONFIG_SND_AM335X_SOC_EVM=y
-# CONFIG_SND_OMAP_SOC is not set
-CONFIG_SND_SOC_I2C_AND_SPI=y
-# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=y
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# Special HID drivers
-#
-CONFIG_HID_A4TECH=y
-# CONFIG_HID_ACRUX is not set
-CONFIG_HID_APPLE=y
-CONFIG_HID_BELKIN=y
-CONFIG_HID_CHERRY=y
-CONFIG_HID_CHICONY=y
-# CONFIG_HID_PRODIKEYS is not set
-CONFIG_HID_CYPRESS=y
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-CONFIG_HID_EZKEY=y
-# CONFIG_HID_HOLTEK is not set
-# CONFIG_HID_KEYTOUCH is not set
-CONFIG_HID_KYE=y
-# CONFIG_HID_UCLOGIC is not set
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_TWINHAN is not set
-CONFIG_HID_KENSINGTON=y
-# CONFIG_HID_LCPOWER is not set
-CONFIG_HID_LOGITECH=y
-CONFIG_HID_LOGITECH_DJ=m
-# CONFIG_LOGITECH_FF is not set
-# CONFIG_LOGIRUMBLEPAD2_FF is not set
-# CONFIG_LOGIG940_FF is not set
-# CONFIG_LOGIWHEELS_FF is not set
-CONFIG_HID_MICROSOFT=y
-CONFIG_HID_MONTEREY=y
-# CONFIG_HID_MULTITOUCH is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_ORTEK is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_PICOLCD is not set
-# CONFIG_HID_PRIMAX is not set
-# CONFIG_HID_QUANTA is not set
-# CONFIG_HID_ROCCAT is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SPEEDLINK is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_ZEROPLUS is not set
-# CONFIG_HID_ZYDACRON is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-# CONFIG_USB_ARCH_HAS_XHCI is not set
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-CONFIG_USB_OTG=y
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_MON is not set
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=y
-
-#
-# Platform Glue Layer
-#
-# CONFIG_USB_MUSB_TUSB6010_GLUE is not set
-# CONFIG_USB_MUSB_OMAP2PLUS_GLUE is not set
-# CONFIG_USB_MUSB_AM35X_GLUE is not set
-CONFIG_USB_MUSB_TI81XX_GLUE=y
-# CONFIG_USB_MUSB_DAVINCI is not set
-# CONFIG_USB_MUSB_DA8XX is not set
-# CONFIG_USB_MUSB_TUSB6010 is not set
-# CONFIG_USB_MUSB_OMAP2PLUS is not set
-# CONFIG_USB_MUSB_AM35X is not set
-CONFIG_USB_MUSB_TI81XX=y
-# CONFIG_USB_MUSB_BLACKFIN is not set
-# CONFIG_USB_MUSB_UX500 is not set
-# CONFIG_USB_TI_CPPI41_DMA_HW is not set
-CONFIG_MUSB_PIO_ONLY=y
-# CONFIG_USB_INVENTRA_DMA is not set
-# CONFIG_USB_TI_CPPI_DMA is not set
-# CONFIG_USB_TI_CPPI41_DMA is not set
-# CONFIG_USB_TUSB_OMAP_DMA is not set
-# CONFIG_USB_UX500_DMA is not set
-# CONFIG_USB_RENESAS_USBHS is not set
-
-#
-# USB Device Class drivers
-#
-# CONFIG_USB_ACM is not set
-# CONFIG_USB_PRINTER is not set
-# CONFIG_USB_WDM is not set
-# CONFIG_USB_TMC is not set
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_REALTEK is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_STORAGE_ENE_UB6250 is not set
-# CONFIG_USB_UAS is not set
-# CONFIG_USB_LIBUSUAL is not set
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_SERIAL is not set
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_RIO500 is not set
-# CONFIG_USB_LEGOTOWER is not set
-# CONFIG_USB_LCD is not set
-# CONFIG_USB_LED is not set
-# CONFIG_USB_CYPRESS_CY7C63 is not set
-# CONFIG_USB_CYTHERM is not set
-# CONFIG_USB_IDMOUSE is not set
-# CONFIG_USB_FTDI_ELAN is not set
-# CONFIG_USB_APPLEDISPLAY is not set
-# CONFIG_USB_SISUSBVGA is not set
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-# CONFIG_USB_TEST is not set
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_YUREX is not set
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_OMAP is not set
-# CONFIG_USB_R8A66597 is not set
-CONFIG_USB_GADGET_MUSB_HDRC=y
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-# CONFIG_USB_ZERO is not set
-# CONFIG_USB_AUDIO is not set
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-# CONFIG_USB_G_NCM is not set
-# CONFIG_USB_GADGETFS is not set
-# CONFIG_USB_FUNCTIONFS is not set
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-CONFIG_USB_MASS_STORAGE=m
-# CONFIG_USB_G_SERIAL is not set
-# CONFIG_USB_MIDI_GADGET is not set
-# CONFIG_USB_G_PRINTER is not set
-# CONFIG_USB_CDC_COMPOSITE is not set
-# CONFIG_USB_G_ACM_MS is not set
-# CONFIG_USB_G_MULTI is not set
-# CONFIG_USB_G_HID is not set
-# CONFIG_USB_G_DBGP is not set
-# CONFIG_USB_G_WEBCAM is not set
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ULPI is not set
-# CONFIG_TWL6030_USB is not set
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=y
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-# CONFIG_MMC_SDHCI_PXAV2 is not set
-# CONFIG_MMC_OMAP is not set
-CONFIG_MMC_OMAP_HS=y
-# CONFIG_MMC_SPI is not set
-# CONFIG_MMC_DW is not set
-# CONFIG_MMC_VUB300 is not set
-# CONFIG_MMC_USHC is not set
-# CONFIG_MEMSTICK is not set
-# CONFIG_NEW_LEDS is not set
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-# CONFIG_RTC_DRV_DS1307 is not set
-# CONFIG_RTC_DRV_DS1374 is not set
-# CONFIG_RTC_DRV_DS1672 is not set
-# CONFIG_RTC_DRV_DS3232 is not set
-# CONFIG_RTC_DRV_MAX6900 is not set
-# CONFIG_RTC_DRV_RS5C372 is not set
-# CONFIG_RTC_DRV_ISL1208 is not set
-# CONFIG_RTC_DRV_ISL12022 is not set
-# CONFIG_RTC_DRV_X1205 is not set
-# CONFIG_RTC_DRV_PCF8563 is not set
-# CONFIG_RTC_DRV_PCF8583 is not set
-# CONFIG_RTC_DRV_M41T80 is not set
-# CONFIG_RTC_DRV_BQ32K is not set
-# CONFIG_RTC_DRV_TWL4030 is not set
-# CONFIG_RTC_DRV_S35390A is not set
-# CONFIG_RTC_DRV_FM3130 is not set
-# CONFIG_RTC_DRV_RX8581 is not set
-# CONFIG_RTC_DRV_RX8025 is not set
-# CONFIG_RTC_DRV_EM3027 is not set
-# CONFIG_RTC_DRV_RV3029C2 is not set
-
-#
-# SPI RTC drivers
-#
-# CONFIG_RTC_DRV_M41T93 is not set
-# CONFIG_RTC_DRV_M41T94 is not set
-# CONFIG_RTC_DRV_DS1305 is not set
-# CONFIG_RTC_DRV_DS1390 is not set
-# CONFIG_RTC_DRV_MAX6902 is not set
-# CONFIG_RTC_DRV_R9701 is not set
-# CONFIG_RTC_DRV_RS5C348 is not set
-# CONFIG_RTC_DRV_DS3234 is not set
-# CONFIG_RTC_DRV_PCF2123 is not set
-
-#
-# Platform RTC drivers
-#
-# CONFIG_RTC_DRV_CMOS is not set
-# CONFIG_RTC_DRV_DS1286 is not set
-# CONFIG_RTC_DRV_DS1511 is not set
-# CONFIG_RTC_DRV_DS1553 is not set
-# CONFIG_RTC_DRV_DS1742 is not set
-# CONFIG_RTC_DRV_STK17TA8 is not set
-# CONFIG_RTC_DRV_M48T86 is not set
-# CONFIG_RTC_DRV_M48T35 is not set
-# CONFIG_RTC_DRV_M48T59 is not set
-# CONFIG_RTC_DRV_MSM6242 is not set
-# CONFIG_RTC_DRV_BQ4802 is not set
-# CONFIG_RTC_DRV_RP5C01 is not set
-# CONFIG_RTC_DRV_V3020 is not set
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_OMAP=y
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-# CONFIG_UIO is not set
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_BALLOON is not set
-# CONFIG_VIRTIO_MMIO is not set
-# CONFIG_STAGING is not set
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_CLKSRC_MMIO=y
-# CONFIG_IOMMU_SUPPORT is not set
-# CONFIG_VIRT_DRIVERS is not set
-# CONFIG_PM_DEVFREQ is not set
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=y
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-# CONFIG_EXT3_FS_XATTR is not set
-# CONFIG_EXT4_FS is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-# CONFIG_REISERFS_FS is not set
-# CONFIG_JFS_FS is not set
-# CONFIG_XFS_FS is not set
-# CONFIG_GFS2_FS is not set
-# CONFIG_BTRFS_FS is not set
-# CONFIG_NILFS2_FS is not set
-CONFIG_FS_POSIX_ACL=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-# CONFIG_FANOTIFY is not set
-CONFIG_QUOTA=y
-# CONFIG_QUOTA_NETLINK_INTERFACE is not set
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=y
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=y
-CONFIG_QUOTACTL=y
-# CONFIG_AUTOFS4_FS is not set
-# CONFIG_FUSE_FS is not set
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-# CONFIG_ISO9660_FS is not set
-# CONFIG_UDF_FS is not set
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-# CONFIG_TMPFS_POSIX_ACL is not set
-# CONFIG_TMPFS_XATTR is not set
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_JFFS2_FS is not set
-CONFIG_UBIFS_FS=y
-# CONFIG_UBIFS_FS_XATTR is not set
-# CONFIG_UBIFS_FS_ADVANCED_COMPR is not set
-CONFIG_UBIFS_FS_LZO=y
-CONFIG_UBIFS_FS_ZLIB=y
-# CONFIG_UBIFS_FS_DEBUG is not set
-# CONFIG_LOGFS is not set
-CONFIG_CRAMFS=y
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_PSTORE is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-# CONFIG_NFSD is not set
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-# CONFIG_CEPH_FS is not set
-# CONFIG_CIFS is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-# CONFIG_MAC_PARTITION is not set
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-# CONFIG_NLS_UTF8 is not set
-
-#
-# Kernel hacking
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-# CONFIG_DEBUG_KERNEL is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-CONFIG_DEBUG_BUGVERBOSE=y
-CONFIG_DEBUG_MEMORY_INIT=y
-CONFIG_FRAME_POINTER=y
-# CONFIG_LKDTM is not set
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_FUNCTION_GRAPH_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_RING_BUFFER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING_SUPPORT=y
-# CONFIG_FTRACE is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_STRICT_DEVMEM is not set
-# CONFIG_ARM_UNWIND is not set
-# CONFIG_DEBUG_USER is not set
-CONFIG_DEBUG_JTAG_ENABLE=y
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_ENCRYPTED_KEYS is not set
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-# CONFIG_SECURITYFS is not set
-# CONFIG_SECURITY_NETWORK is not set
-# CONFIG_SECURITY_PATH is not set
-# CONFIG_SECURITY_TOMOYO is not set
-# CONFIG_SECURITY_APPARMOR is not set
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=y
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=y
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_WORKQUEUE=y
-# CONFIG_CRYPTO_CRYPTD is not set
-# CONFIG_CRYPTO_AUTHENC is not set
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-# CONFIG_CRYPTO_CBC is not set
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=y
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-# CONFIG_CRYPTO_HMAC is not set
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-# CONFIG_CRYPTO_GHASH is not set
-# CONFIG_CRYPTO_MD4 is not set
-# CONFIG_CRYPTO_MD5 is not set
-CONFIG_CRYPTO_MICHAEL_MIC=y
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-# CONFIG_CRYPTO_SHA1 is not set
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_ARC4=y
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-# CONFIG_CRYPTO_DES is not set
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-# CONFIG_CRYPTO_ZLIB is not set
-CONFIG_CRYPTO_LZO=y
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_USER_API_HASH is not set
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-# CONFIG_CRYPTO_HW is not set
-# CONFIG_BINARY_PRINTF is not set
-
-#
-# Library routines
-#
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-# CONFIG_CRC8 is not set
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
-CONFIG_AVERAGE=y
-# CONFIG_CORDIC is not set
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-pm-firmware.bin b/recipes-kernel/linux/linux-ti33x-psp-3.2/am335x-pm-firmware.bin
deleted file mode 100644
index 571d377dc50cc7bb8258facec8948b86b8025248..0000000000000000000000000000000000000000
GIT binary patch
literal 0
HcmV?d00001

literal 10732
zcmbta4RBo5b-r((^<yk-#WJqE@*gGz!OFi%LAGhKl9(-!#Ov4&Z4E<LH6c$lLlLBA
z at iJs>T%%-CkHb(xWQMpj!#ISgK`|X-LoBdq%g<2Dq8YGBv&1dVC?tJaZ}e7LX<xr{
z at 45TlTP-#Q%{<-x&N=s-bI-l+-gEDLqP|vq#t>q=Da5z&d=JkL at ca{=^1mO0_8ilH
zhVqZE6ru-pKh5(p^nB9#uW{W=rok6HmGpFjz8%jG at H~g-H9YU*8N>6LDj}}Kvl7n@
zc)IYUpWpGUIM6YAtYIK4%v2(Z{{z`tb8TWqCS`@KwN^N>)-p$?fs&GCDzV0jW}Br{
zU&n_-)32X?L);dj-i{ZJMDx=k<EKLQ%!!(j+M1VQ>6g+6#ew1(A(}<4cm_}U;NQbu
zQtDb15|I~<G{oY=TN(<9aVwtd+IVzSm_v>6;Rnqo>u_S56(9cfJ at Mh8Ehid7_M*^G
zIBpxE(71W_kkv74nun*<Is|`fM&^+17w`HrapYX~I!6=ch1(0(x-fhDK9N0tt*Q1N
zL_F7x)^B_ZJ=bKV5ZO+98hTRGw#kUpaYWJwE6In>AukS~ccEECs*cmI#+Zt2 at r=@y
zOss~@H32IWcd|qM++;PzYDPT!ay)?lDa+@{uSLRjX1XE!`Y|&mBDI4U9U^4kFs?YS
z6=!8a_MPLB2j4@&uzOs^J6trtyKOA}5`2}qE)~KaA6J;(32JL9q5e<LBrVr at w@CkI
zy7V3x;H9kANcNX;dkMUFqZqRPbWD$Wt+N at NpBLkHGjzYnx=Hhup!b803B?}p(XRsi
zDbTM1{h*H?0lg3O2<ZEL^cK)}gWdxA<39RQ(072o6!bkl`ZCbBg1!v&oj&?<(C+|!
zIp|46*Zm`7vl9Hx;I9PV^3_`f`Z~~8fqsjR-U at mL=&hiyXZlV#9%jS}ccrYG at orOO
z3klbGt9aOIN}Bd8^Hjfx)Eo!0I?tLwH}@A3p$z&Ba_h2>iDTK*(RePs(sf=buFIw+
zcAeLYW^CLVY9tv&8$&NWR}}W8c#h!tnk(#-TQgEGXC&&I%Dx2r7_96E#Sgxi at TC*J
ztO}D=iJGjE7ZQ)lH^Q^IE71N_7qx$_{9i~Ek|I()nChlD7%~pVpkbTisqRy~ooBym
z?(Glv7n1d{c`?JDD3Ejmq{CKxw0O at z)-Xeu3q at r5acDs7;*f9ZZ-nf^aWfMe{kz46
zJrD1M!1%8kYa^TZ_2O7w+FeU_ at 9R99mJx4^jakCJ)>X6tAMJXki3aK!CASH*n^8B)
za;v+AonV^QN3?G+P3t3C(#>0VUkzcuT5Rh^FXPt$dh6*4VP7{X?C;=r2IUjQnvq7e
zmOOvqG3*+v6vNFI5X1Y&bPVquqxr?Kx8x~?^ecRh81 at yX#_%bo`D54*8pY7yxKeED
zI9}U*v_{bOlAJHrpDo4kvQi8eB5ofdZlO;Vw^#F(;`a0Lk3aS at c^$V?d768L{qHWt
zjb`Bo@@ni|!DFx8H>P$}h{sN*`Qxz%wDNd7Uesf1 at 1!16k0KWLPnO0IuS?#FMDu|+
z-$%2L$jqjxx2fM8aa*e+i{CMx+>pP_7DxW_A|d_?&)4wWi|22+>_I8)Rr$J%u>T}K
z9sk?%)%d>=5fJtrd66leG3+&n0<9=&E%|AI){@^8f@=xJ)`Vf-i}~v7kfzn`>jhzd
zrIby<SIo;^ZsYsyYXjcxLNa04KSbRbX#Mx_M*RxEzX+R#eW+;In}9wjY4x|?u%D21
zw?pE0sJBwq*@rr7KzZ{c>g<$t$k(9>ve66q;k;olF6b4J{ElW5GPa0AD4dRFzZ*a*
z?waSJ&B#eNd6Gcu1E at EE_5{!^0raH++8IFmeaMUNLzuJkiJv95B??xm>#+5=m}j?j
z(`=jS+SZ+tIcTaY)lC`Bd|%F~b03WMP&gruq_C!$xoB&A__9tBaR$B7=jBPV<z=#F
zP*(P_%C|(s9Bjh~`juOiNm-#tNTOGe-B5<6qwcMBL@&r}tdO90#56F2g<R(!+&rk|
zYn56bE7b|1&OH_D&^x4jGuXG61HQdI)i;a@<*$mk%EN?++jER#*-X3Z?4mlrjf@{)
zJfHDa#-C+;C*x+uw=-^Gd at JJ>jBjH6ImYW4w=s?}zLxRl8Almk&G<UT%NSqJ_;SWy
zV!V*?dd71ZTa0Hi{s!Y}#&<C;BB!Ewe3S7g<0RwXGrphk2aMB<|C{kn#=l_P%lIwE
zdl>&4<3|`%E=%_JG5%M^KVtkZjGtjlxh%;)%lHY#2N^%g_(jIM84obt#rPQG2N=J}
zcq`-MjPGRpHsjkB&OO$n#?!6Le~0-uG5#OM>lpurag6bYj6cuVW_&f{9OGq-^NcTN
zJi&OO!nrj2Gner$#xoiBGOlL)FyrE+jA!l<#-ogvbgB0Jp7B%6|9~*&1MI_P9*@4r
zY2G_Z*4Ax5&RECtKNzoI-v=1CFn)n?Gvj9!&S~HGOB~G}Y*)VRV|hImA0zDZE#&j<
zJKzDAeA~fT`?ig-_U&%Q+P6CxYv2A_;gWBgCH8#V!1CI+8-YFFT<7UY+CyH0{UwcN
zt at Rp`0 at hwFXPn@OT%mAo5BJ6*=HJHrKVtkI<5`R|jB5zX2+=$)4!F+kB|j)STJG$G
zik8;%TgKYXX at yIEoMOKAbBM8S#~X}wJC6eU{h(Gyv(vg%zaE_M_Rt|8eZP-xpl=`L
zC=5dz;eCvM&G<>iCmH{U at d?KJ8NaTuEjUWAFn>4m4>7-%`TdNiF at BnH9pfi`eo|C5
z{ZYsf*7bHX)_Qj-oYQt6V7~TiEAzGAcQV%Px}C9Z_pOX|TyA2l<F?M{C&h1|OU1v#
zM~A;9`qe%<$){QVDj%KXHGQF?bAG%Ur+!9c?x4=S=oBeBI&BMVc7}2Or?RJTBA!b~
z8u1%5Ymtduf;uWgQ*~-Pbsd#sk)Aq9Bfc70zI at 1+<HU!}Ep5nE(mmmr>$DZx;8QTS
z at p2BF7;c1YE^UzPlJm$Om9j$0)}2qbLHZzNN5{|YL+3ptE51TLWX>adRJKiYk?iYJ
zWqth+I6n)-r&IctkiPAosv{^X?F~qK51&W&LD`OIJNb71Ib^A|rm+oqXm^>E+EY+I
z=*j%~6q#V2DI#qcJL>#-FU~z)F6|0k=T+pKn&&@pptGJU%6R(Zfq2Wyc=`l_c-Mfp
z71^^P?bga2K)Ky-%leAv-=$Oi)nz=rJ0)JbkLTZ|67L4^*2t{=8nm~*qTMgc`ifU>
zcd|&a at OXZ^Rla)Vb}t66Am1Q$Dy92KzmN1 at t36UULA%rCt{DryZy()XO}>)}YNIQC
zRDDT2f1g}j#`E{dC1pJCq{MX=fVa7<zsl_%mGxDBmD?Shq_}xJzukAscz(O at gSSxj
zS5v9K%I!WR?W#T at Ub}DX&I7Mf-1Xc^aaTK4756VriMu?X$nC~V`+g^#@h36UiIsR(
zxz02BBxYg7^UtV!|03rA&G*&C9vo-K=c&v6U9v3qj-zf5z43S93`gr751w`M9S_az
zwC6NO>dht#r<|5)&oSpjYL6>gJXdu$tpJ8;Wb`_qZ*KIxO(h-k&H0`Vdp>s97p|ku
ztn=x3^8$2iDz(M)W0M*GgnoEB>Mu}7vgC(pn%tHobeI>=7O!6#%|>558b4YG^3Z7Z
zFXWtMj`ZSguCsyehHB*f3Zfvhs-p8_w_J+u5Pg!l at 5_9o=sXgTq??tX&S>_<cFJ^$
z&bI=RB&9}{wyyK}qH{+D$vFY*+u8b8D at Zn0l#Eu8tPMyC))}cFS?80CW{+`;=2noL
zACP>TB at LJMaO!<rEwd(ivjon4*5ZFP<|Wl9Gy_y;G- at Ap<r{{Z2F!d at du;~Y=n1da
z-ok$KQc-kT#>%C2?=3h^_U5YIF7+YqvT`e;=%pxfFU)pQYl-{M(Ao^GMnJ2-r~O*J
z{(cBr*RxidLrJU0O+srcwEiML)mIwVA`;Z9_Mt`R7HF+!t at S0Xn)_vFT?(x~si0Mj
zAivglPLHFN(3)YbHKhn>?h<HS2CeA|TGeQ)tQGtJlGgXI3aPkitq%5w%c1qF6|}06
zd5P?;ncQ1?e4d)b$^&0dqql~n)~ldpRRt|-)cUn}V;B4XTzb9IQZ2Q#K+CKOTGWUR
zYSH8RAE9L*`*J{PStTZ&4@<XowC~mZi`L6|iAHDx&c|s?%|dx4${8rB6*VX$C{2_t
z(B$F-Z7IqE%4H}Wl*>_`MY#gy|Djxo^0z3-@)?w^C{NS-MrYQ%S3zbJ!gmp&*|cZj
zJr7px63sg^rtcfH1g&~n1AWh+cTltrM at QApsL5K3uNYF+4xB2RHr?Z0G<XQ#U3fS|
z=MHj>H00TCX^rIkK8YK<{~V7V(WkyTucI99cWBQNw5JmhRT)9>zJoNYJBdlB+f7=N
z&J$(#+rplg7xvOZ(OG~U=_2S_;JPx-0{0Uy`Sq6FO+>RTzEgESqBDJu*B3x111Q|(
zm)smceF1b5=(d1850O0&kv$KQJr9vR50O0&kv$KQz2<<u$9>2f58^<3wz-uuH_G!=
ztHX)*Y)ct!GiWQyXnml4u8ejPw6-!@xT`&TZ5eHIS3K9ZF=)3Ba at Uo~o$T^_rF#oA
zR_GbO at 4D>koiAtG8q~Kq<hg2VI8nF{d+m^J$xvfBrg=?P1HQe{UwWv!D&2NOuJo?x
zwrko3yi>aEn)a}yskUp{2}x6J*R<K)R9CfK(>8#n+pcL3OF7kcO*;YF$7nm+r+Sv!
zr(3Vafoi?S^;+-0Q={`P*IAFXUd6D<>g(5cVd3=LOf=glN6t2 at H9vc?<}~%r#w~td
z2fh7<S(~ApS$%a<6ZzkF>Ael^&Ga2+p~rQO6?OmYwSGF{e&HhI2WsS<l33|1^k`}y
z`gfo7A&j>{NuDgx=<QMWagdU|NECIK7w*+Oy3tcKeRq0s<fhWy>2p^IaTL#g;aP;w
zVa{+l#^nsqi0*&p0T=Freu0 at +%!^Gr?-iG4f|Pmg<z<u`-34Wo)9#!ArRZ$U&&X)K
zMduIsX&Kk~=A?n!+N!*No}~LJ>btuUPu+JomFkEO&+gC^ikRkg=F+qEXpy at T)ICx3
zz9~v#1t)zso>N~6U%i<n{Y_T5vs~wX-0kcAo%V4tbb9fhg^b*fXChOiF+)2oT1BK!
zW%IT7E|lLZPdaZ*Ogisl{- at QV8ec<AIvXau5!o8~!!KQ at 3U|%(@<nGlzLTJJVmisA
zwLg*dywR%8vInq=9Cue7nZ$QwK6 at YI_wd{JZn1XaTe2K+WqBGUzWoxWs1h||x|k_u
GiT?)_RKvai

diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch
deleted file mode 100644
index 5037880..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From 6b87752bd00d12ac7c8db994480c077857e23bf0 Mon Sep 17 00:00:00 2001
-From: Denys Dmytriyenko <denys at ti.com>
-Date: Thu, 3 May 2012 16:04:16 -0400
-Subject: [PATCH] arch/arm/boot/compressed: set default Asm architecture to armv7-a
-
-This enables building compressed kernel with newer binutils-2.22 when kernel is
-built in Thumb2 mode. Otherwise it fails with the following Assembler error:
-
-| arch/arm/boot/compressed/head.S: Assembler messages:
-| arch/arm/boot/compressed/head.S:127: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
-| arch/arm/boot/compressed/head.S:134: Error: selected processor does not support requested special purpose register -- `mrs r2,cpsr'
-| arch/arm/boot/compressed/head.S:136: Error: selected processor does not support requested special purpose register -- `msr cpsr_c,r2'
-| make[2]: *** [arch/arm/boot/compressed/head.o] Error 1
-| make[1]: *** [arch/arm/boot/compressed/vmlinux] Error 2
-
-Signed-off-by: Denys Dmytriyenko <denys at ti.com>
----
- arch/arm/boot/compressed/Makefile |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/boot/compressed/Makefile b/arch/arm/boot/compressed/Makefile
-index 21f56ff..e01d370 100644
---- a/arch/arm/boot/compressed/Makefile
-+++ b/arch/arm/boot/compressed/Makefile
-@@ -123,7 +123,7 @@ KBUILD_CFLAGS = $(subst -pg, , $(ORIG_CFLAGS))
- endif
- 
- ccflags-y := -fpic -fno-builtin -I$(obj)
--asflags-y := -Wa,-march=all
-+asflags-y := -Wa,-march=armv7-a
- 
- # Supply kernel BSS size to the decompressor via a linker symbol.
- KBSS_SZ = $(shell size $(obj)/../../../../vmlinux | awk 'END{print $$3}')
--- 
-1.7.8.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-f_rndis-HACK-around-undefined-variables.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-f_rndis-HACK-around-undefined-variables.patch
deleted file mode 100644
index ce72ebd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0001-f_rndis-HACK-around-undefined-variables.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 87fae6477f8987244e2331dc60001c79e5421e80 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 7 Oct 2011 15:29:28 +0200
-Subject: [PATCH 01/79] f_rndis: HACK around undefined variables
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/usb/gadget/f_rndis.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/gadget/f_rndis.c b/drivers/usb/gadget/f_rndis.c
-index 6614490..d2f1b6f 100644
---- a/drivers/usb/gadget/f_rndis.c
-+++ b/drivers/usb/gadget/f_rndis.c
-@@ -767,11 +767,11 @@ rndis_bind(struct usb_configuration *c, struct usb_function *f)
- 
- 	rndis_set_param_medium(rndis->config, NDIS_MEDIUM_802_3, 0);
- 	rndis_set_host_mac(rndis->config, rndis->ethaddr);
--
-+/*
- 	if (rndis_set_param_vendor(rndis->config, vendorID,
- 				manufacturer))
- 		goto fail;
--
-+*/
- 	/* NOTE:  all that is done without knowing or caring about
- 	 * the network link ... which is unavailable to this code
- 	 * until we're activated via set_alt().
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0002-da8xx-fb-add-DVI-support-for-beaglebone.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0002-da8xx-fb-add-DVI-support-for-beaglebone.patch
deleted file mode 100644
index 158ed0c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0002-da8xx-fb-add-DVI-support-for-beaglebone.patch
+++ /dev/null
@@ -1,38 +0,0 @@
-From 30dcf1f8efb223e5b6fc3c049bc8ce3236ec17a0 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 3 Nov 2011 17:35:50 +0100
-Subject: [PATCH 02/79] da8xx-fb: add DVI support for beaglebone
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/video/da8xx-fb.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
-index 2e69278..b01f15b 100644
---- a/drivers/video/da8xx-fb.c
-+++ b/drivers/video/da8xx-fb.c
-@@ -272,6 +272,20 @@ static struct da8xx_panel known_lcd_panels[] = {
- 		.pxl_clk = 30000000,
- 		.invert_pxl_clk = 0,
- 	},
-+	[3] = {
-+		 /* 1024 x 768 @ 60 Hz  Reduced blanking VESA CVT 0.79M3-R */ 
-+		.name = "1024x768 at 60",
-+		.width = 1024,
-+		.height = 768,
-+		.hfp = 48,
-+		.hbp = 80,
-+		.hsw = 32,
-+		.vfp = 3,
-+		.vbp = 15,
-+		.vsw = 4,
-+		.pxl_clk = 56000000,
-+		.invert_pxl_clk = 0,
-+	},
- };
- 
- /* Enable the Raster Engine of the LCD Controller */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0003-beaglebone-rebase-everything-onto-3.2-WARNING-MEGAPA.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0003-beaglebone-rebase-everything-onto-3.2-WARNING-MEGAPA.patch
deleted file mode 100644
index 53f7355..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0003-beaglebone-rebase-everything-onto-3.2-WARNING-MEGAPA.patch
+++ /dev/null
@@ -1,563 +0,0 @@
-From 482ed8f98b87299bf77298b86871b4af74334751 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 30 Jan 2012 21:30:09 +0100
-Subject: [PATCH 03/79] beaglebone: rebase everything onto 3.2 - WARNING
- MEGAPATCH
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |  426 ++++++++++++++++++++++++++++++++-
- 1 file changed, 415 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 563bdf1..2741431 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -19,6 +19,7 @@
- #include <linux/i2c/at24.h>
- #include <linux/phy.h>
- #include <linux/gpio.h>
-+#include <linux/leds.h>
- #include <linux/spi/spi.h>
- #include <linux/spi/flash.h>
- #include <linux/gpio_keys.h>
-@@ -35,7 +36,6 @@
- #include <linux/mfd/tps65910.h>
- #include <linux/mfd/tps65217.h>
- #include <linux/pwm_backlight.h>
--#include <linux/input/ti_tscadc.h>
- #include <linux/reboot.h>
- #include <linux/pwm/pwm.h>
- #include <linux/opp.h>
-@@ -174,6 +174,68 @@ struct da8xx_lcdc_platform_data TFC_S9700RTWV35TR_01B_pdata = {
- 
- #include "common.h"
- 
-+static const struct display_panel bbtoys7_panel = {
-+	WVGA,
-+	16,
-+	16,
-+	COLOR_ACTIVE,
-+};
-+
-+static struct lcd_ctrl_config bbtoys7_cfg = {
-+	&bbtoys7_panel,
-+	.ac_bias		= 255,
-+	.ac_bias_intrpt		= 0,
-+	.dma_burst_sz		= 16,
-+	.bpp			= 16,
-+	.fdd			= 0x80,
-+	.tft_alt_mode		= 0,
-+	.stn_565_mode		= 0,
-+	.mono_8bit_mode		= 0,
-+	.invert_line_clock	= 1,
-+	.invert_frm_clock	= 1,
-+	.sync_edge		= 0,
-+	.sync_ctrl		= 1,
-+	.raster_order		= 0,
-+};
-+
-+struct da8xx_lcdc_platform_data bbtoys7_pdata = {
-+	.manu_name		= "ThreeFive",
-+	.controller_data	= &bbtoys7_cfg,
-+	.type			= "TFC_S9700RTWV35TR_01B",
-+};
-+
-+static const struct display_panel dvi_panel = {
-+	WVGA,
-+	16,
-+	16,
-+	COLOR_ACTIVE,
-+};
-+
-+static struct lcd_ctrl_config dvi_cfg = {
-+	&dvi_panel,
-+	.ac_bias		= 255,
-+	.ac_bias_intrpt		= 0,
-+	.dma_burst_sz		= 16,
-+	.bpp			= 16,
-+	.fdd			= 0x80,
-+	.tft_alt_mode		= 0,
-+	.stn_565_mode		= 0,
-+	.mono_8bit_mode		= 0,
-+	.invert_line_clock	= 1,
-+	.invert_frm_clock	= 1,
-+	.sync_edge		= 0,
-+	.sync_ctrl		= 1,
-+	.raster_order		= 0,
-+};
-+
-+struct da8xx_lcdc_platform_data dvi_pdata = {
-+	.manu_name		= "BBToys",
-+	.controller_data	= &dvi_cfg,
-+	.type			= "1024x768 at 60",
-+};
-+
-+/* TSc controller */
-+#include <linux/input/ti_tscadc.h>
- #include <linux/lis3lv02d.h>
- 
- /* TSc controller */
-@@ -342,9 +404,34 @@ static struct am335x_evm_eeprom_config config;
- static struct am335x_eeprom_config1 config1;
- static bool daughter_brd_detected;
- 
-+struct beaglebone_cape_eeprom_config {
-+	u32	header;
-+	char  format_revision[2];
-+	char	name[32];
-+	char	version[4];
-+	char	manufacturer[16];
-+	char	partnumber[16];
-+	u16  numpins;
-+	char	serial[12];
-+	u8	muxdata[170];
-+	u16  current_3v3;
-+	u16  current_vdd5v;
-+	u16  current_sys5v;
-+	u16  dc;
-+};
-+
-+static struct beaglebone_cape_eeprom_config cape_config;
-+static bool beaglebone_cape_detected;
-+
-+/* keep track of ADC pin usage */
-+static int capecount = 0;
-+static bool beaglebone_tsadcpins_free = 1;
-+
-+
- #define GP_EVM_REV_IS_1_0		0x1
- #define GP_EVM_REV_IS_1_1A		0x2
- #define GP_EVM_REV_IS_UNKNOWN		0xFF
-+#define GP_EVM_ACTUALLY_BEAGLEBONE  0xBB
- static unsigned int gp_evm_revision = GP_EVM_REV_IS_UNKNOWN;
- 
- unsigned int gigabit_enable = 1;
-@@ -427,11 +514,102 @@ static struct pinmux_config lcdc_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* Module pin mux for Beagleboardtoys DVI cape */
-+static struct pinmux_config dvi_pin_mux[] = {
-+	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+        | AM33XX_PULL_DISA},
-+	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
-+	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
-+	{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
-+	{NULL, 0},
-+};
-+
-+/* Module pin mux for Beagleboardtoys 7" LCD cape */
-+static struct pinmux_config bbtoys7_pin_mux[] = {
-+	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 
-+	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // Backlight
-+	{"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
-+	{NULL, 0},
-+};
-+
- static struct pinmux_config tsc_pin_mux[] = {
- 	{"ain0.ain0",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{"ain1.ain1",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{"ain2.ain2",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{"ain3.ain3",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
-+	{"ain4.ain4",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
-+	{"ain5.ain5",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
-+	{"ain6.ain6",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
-+	{"ain7.ain7",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{"vrefp.vrefp",         OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{"vrefn.vrefn",         OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{NULL, 0},
-@@ -566,9 +744,9 @@ static struct pinmux_config i2c1_pin_mux[] = {
- 
- static struct pinmux_config i2c2_pin_mux[] = {
- 	{"uart1_ctsn.i2c2_sda",    OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW |
--					AM33XX_PULL_UP | AM33XX_INPUT_EN},
-+					AM33XX_PIN_INPUT_PULLUP},
- 	{"uart1_rtsn.i2c2_scl",   OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW |
--					AM33XX_PULL_UP | AM33XX_INPUT_EN},
-+					AM33XX_PIN_INPUT_PULLUP},
- 	{NULL, 0},
- };
- 
-@@ -846,6 +1024,64 @@ static struct pinmux_config profibus_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+
-+#define BEAGLEBONEDVI_USR0_LED  GPIO_TO_PIN(1, 18)
-+#define BEAGLEBONEDVI_USR1_LED  GPIO_TO_PIN(1, 19)
-+
-+static struct gpio_led dvi_gpio_leds[] = {
-+	{
-+		.name			= "beaglebone::usr0",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONE_USR1_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr1",
-+		.default_trigger	= "mmc0",
-+		.gpio			= BEAGLEBONE_USR2_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr2",
-+		.gpio			= BEAGLEBONE_USR3_LED,
-+	},
-+	{
-+		.name           = "beaglebone::usr3",
-+		.gpio           = BEAGLEBONE_USR4_LED,
-+	},
-+	{
-+		.name			= "dvi::usr0",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONEDVI_USR0_LED,
-+	},
-+	{
-+		.name			= "dvi::usr1",
-+		.default_trigger	= "mmc0",
-+		.gpio			= BEAGLEBONEDVI_USR1_LED,
-+	},
-+};
-+
-+static struct gpio_led_platform_data dvi_gpio_led_info = {
-+	.leds		= dvi_gpio_leds,
-+	.num_leds	= ARRAY_SIZE(dvi_gpio_leds),
-+};
-+
-+static struct platform_device dvi_leds_gpio = {
-+	.name	= "leds-gpio",
-+	.id	= -1,
-+	.dev	= {
-+		.platform_data	= &dvi_gpio_led_info,
-+	},
-+};
-+
-+static struct pinmux_config bone_pin_mux[] = {
-+	/* User LED gpios (gpio1_21 to gpio1_24) */
-+    {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-+    {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-+    {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-+    {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-+    /* Grounding gpio1_6 (pin 3 Conn A) signals bone tester to start diag tests */
-+    {"gpmc_ad6.gpio1_6", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
-+};
-+
- /* Module pin mux for eCAP0 */
- static struct pinmux_config ecap0_pin_mux[] = {
- 	{"ecap0_in_pwm0_out.ecap0_in_pwm0_out",
-@@ -968,6 +1204,51 @@ static void lcdc_init(int evm_id, int profile)
- 	return;
- }
- 
-+#define BEAGLEBONE_LCD_AVDD_EN GPIO_TO_PIN(0, 7)
-+#define BEAGLEBONE_LCD_BL GPIO_TO_PIN(1, 18)
-+
-+static void bbtoys7lcd_init(int evm_id, int profile)
-+{
-+	setup_pin_mux(bbtoys7_pin_mux);
-+
-+	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
-+	if (conf_disp_pll(300000000)) {
-+		pr_info("Failed to set pixclock to 300000000, not attempting to"
-+				"register LCD cape\n");
-+		return;
-+	}
-+	
-+	if (am33xx_register_lcdc(&bbtoys7_pdata))
-+		pr_info("Failed to register Beagleboardtoys 7\" LCD cape device\n");
-+	
-+	gpio_request(BEAGLEBONE_LCD_BL, "BONE_LCD_BL");
-+	gpio_direction_output(BEAGLEBONE_LCD_BL, 1);
-+	gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
-+	gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
-+
-+	return;
-+}
-+
-+#define BEAGLEBONEDVI_PDn  GPIO_TO_PIN(1, 7)
-+
-+static void dvi_init(int evm_id, int profile)
-+{
-+    setup_pin_mux(dvi_pin_mux);
-+	gpio_request(BEAGLEBONEDVI_PDn, "DVI_PDn");
-+	gpio_direction_output(BEAGLEBONEDVI_PDn, 1);
-+
-+	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
-+	if (conf_disp_pll(560000000)) {
-+		pr_info("Failed to set pixclock to 56000000, not attempting to"
-+				"register DVI adapter\n");
-+		return;
-+	}
-+	
-+	if (am33xx_register_lcdc(&dvi_pdata))
-+		pr_info("Failed to register BeagleBoardToys DVI cape\n");
-+	return;
-+}
-+
- static void tsc_init(int evm_id, int profile)
- {
- 	int err;
-@@ -975,10 +1256,15 @@ static void tsc_init(int evm_id, int profile)
- 	if (gp_evm_revision == GP_EVM_REV_IS_1_1A) {
- 		am335x_touchscreen_data.analog_input = 1;
- 		pr_info("TSC connected to beta GP EVM\n");
--	} else {
-+	}
-+	if (gp_evm_revision == GP_EVM_REV_IS_1_1A) {
- 		am335x_touchscreen_data.analog_input = 0;
- 		pr_info("TSC connected to alpha GP EVM\n");
- 	}
-+	if( gp_evm_revision == GP_EVM_ACTUALLY_BEAGLEBONE) {
-+		am335x_touchscreen_data.analog_input = 1;
-+		pr_info("TSC connected to BeagleBone\n");;	
-+	}
- 	setup_pin_mux(tsc_pin_mux);
- 
- 	err = am33xx_register_tsc(&am335x_touchscreen_data);
-@@ -986,6 +1272,33 @@ static void tsc_init(int evm_id, int profile)
- 		pr_err("failed to register touchscreen device\n");
- }
- 
-+static void bone_tsc_init(int evm_id, int profile)
-+{
-+	int err;
-+	setup_pin_mux(tsc_pin_mux);
-+	err = am33xx_register_tsc(&bone_touchscreen_data);
-+	if (err)
-+		pr_err("failed to register touchscreen device\n");
-+}
-+
-+
-+static void boneleds_init(int evm_id, int profile )
-+{
-+	int err;
-+	setup_pin_mux(bone_pin_mux);
-+	err = platform_device_register(&bone_leds_gpio);
-+	if (err)
-+		pr_err("failed to register BeagleBone LEDS\n");
-+}
-+
-+static void dvileds_init(int evm_id, int profile )
-+{
-+	int err;
-+	err = platform_device_register(&dvi_leds_gpio);
-+	if (err)
-+		pr_err("failed to register BeagleBone DVI cape LEDS\n");
-+}
-+
- static void rgmii1_init(int evm_id, int profile)
- {
- 	setup_pin_mux(rgmii1_pin_mux);
-@@ -1431,18 +1744,106 @@ static void i2c1_init(int evm_id, int profile)
- 	return;
- }
- 
-+static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
-+{
-+	capecount++;
-+	int ret;
-+	char tmp[32];
-+	char name[32];
-+	char manufacturer[32];
-+
-+	/* get cape specific data */
-+	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
-+	if (ret != sizeof(cape_config)) {
-+		pr_warning("BeagleBone cape EEPROM: could not read eeprom at address 0x%x\n", capecount + 0x53);
-+		if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
-+			pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
-+			bone_tsc_init(0,0);
-+			beaglebone_tsadcpins_free = 0;
-+		}
-+		return;
-+	}
-+
-+	if (cape_config.header != AM335X_EEPROM_HEADER) {
-+		pr_warning("BeagleBone Cape EEPROM: wrong header 0x%x, expected 0x%x\n",
-+			cape_config.header, AM335X_EEPROM_HEADER);
-+		goto out;
-+	}
-+
-+	pr_info("BeagleBone cape EEPROM: found eeprom at address 0x%x\n", capecount + 0x53);
-+	snprintf(name, sizeof(cape_config.name) + 1, "%s", cape_config.name);
-+	snprintf(manufacturer, sizeof(cape_config.manufacturer) + 1, "%s", cape_config.manufacturer);
-+	pr_info("BeagleBone cape: %s %s\n", manufacturer, name);
-+	snprintf(tmp, sizeof(cape_config.partnumber) + 1, "%s", cape_config.partnumber);
-+	pr_info("BeagleBone cape partnumber: %s\n", tmp);   
- 
--static struct i2c_board_info am335x_i2c_boardinfo2[] = {
-+	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 5)) {
-+			pr_info("BeagleBone cape: initializing DVI cape\n");
-+			dvi_init(0,0);
-+	}
-+	if (!strncmp("LCD01", cape_config.partnumber, 5)) {
-+		pr_info("BeagleBone cape: initializing LCD cape\n");
-+		bbtoys7lcd_init(0,0);
-+		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
-+		tsc_init(0,0);
-+		beaglebone_tsadcpins_free = 0;
-+	}
-+	
-+	
-+	if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
-+		pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
-+		bone_tsc_init(0,0);
-+		beaglebone_tsadcpins_free = 0;
-+	}
-+	
-+	return;
-+out:
-+	/*
-+	 * If the EEPROM hasn't been programed or an incorrect header
-+	 * or board name are read, assume this is an old beaglebone board
-+	 * (< Rev A3)
-+	 */
-+	pr_err("Could not detect BeagleBone cape properly\n");
-+	beaglebone_cape_detected = false;
-+
-+}
-+
-+static struct at24_platform_data cape_eeprom_info = {
-+        .byte_len       = (256*1024) / 8,
-+        .page_size      = 64,
-+        .flags          = AT24_FLAG_ADDR16,
-+        .context        = (void *)NULL,
-+		.setup		  = beaglebone_cape_setup,
-+};
-+
-+static struct i2c_board_info __initdata cape_i2c_boardinfo[] = {
-+        {
-+                I2C_BOARD_INFO("24c256", 0x54),
-+                .platform_data  = &cape_eeprom_info,
-+        },
-+        {
-+                I2C_BOARD_INFO("24c256", 0x55),
-+                .platform_data  = &cape_eeprom_info,
-+        },
-+        {
-+                I2C_BOARD_INFO("24c256", 0x56),
-+                .platform_data  = &cape_eeprom_info,
-+        },
-+        {
-+                I2C_BOARD_INFO("24c256", 0x57),
-+                .platform_data  = &cape_eeprom_info,
-+        },
- };
- 
- static void i2c2_init(int evm_id, int profile)
- {
--	setup_pin_mux(i2c2_pin_mux);
--	omap_register_i2c_bus(3, 100, am335x_i2c_boardinfo2,
--			ARRAY_SIZE(am335x_i2c_boardinfo2));
--	return;
-+        setup_pin_mux(i2c2_pin_mux);
-+        omap_register_i2c_bus(3, 100, cape_i2c_boardinfo,
-+                        ARRAY_SIZE(cape_i2c_boardinfo));
-+        return;
- }
- 
-+
- /* Setup McASP 1 */
- static void mcasp1_init(int evm_id, int profile)
- {
-@@ -1826,8 +2227,9 @@ static struct evm_dev_cfg beaglebone_old_dev_cfg[] = {
- 	{rmii1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{usb0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
--	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
-@@ -1837,8 +2239,9 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{mii1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{usb0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
--	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
-@@ -1925,6 +2328,7 @@ static void setup_beaglebone_old(void)
- static void setup_beaglebone(void)
- {
- 	pr_info("The board is a AM335x Beaglebone.\n");
-+	gp_evm_revision = GP_EVM_ACTUALLY_BEAGLEBONE;
- 
- 	/* Beagle Bone has Micro-SD slot which doesn't have Write Protect pin */
- 	am335x_mmc[0].gpio_wp = -EINVAL;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0004-more-beaglebone-merges.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0004-more-beaglebone-merges.patch
deleted file mode 100644
index 9e3186d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0004-more-beaglebone-merges.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From e495bd4f47ad3b8f48916582b12ec0bf0a7e7134 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 31 Jan 2012 10:04:03 +0100
-Subject: [PATCH 04/79] more beaglebone merges
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   52 +++++++++++++++++++++++++++++++--
- 1 file changed, 50 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 2741431..ffbecae 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -242,6 +242,11 @@ struct da8xx_lcdc_platform_data dvi_pdata = {
- static struct tsc_data am335x_touchscreen_data  = {
- 	.wires  = 4,
- 	.x_plate_resistance = 200,
-+	.mode = TI_TSCADC_TSCMODE,
-+};
-+
-+static struct tsc_data bone_touchscreen_data  = {
-+	.mode = TI_TSCADC_GENMODE,
- };
- 
- static u8 am335x_iis_serializer_direction1[] = {
-@@ -429,6 +434,7 @@ static bool beaglebone_tsadcpins_free = 1;
- 
- 
- #define GP_EVM_REV_IS_1_0		0x1
-+#define GP_EVM_REV_IS_1_0A		0x1
- #define GP_EVM_REV_IS_1_1A		0x2
- #define GP_EVM_REV_IS_UNKNOWN		0xFF
- #define GP_EVM_ACTUALLY_BEAGLEBONE  0xBB
-@@ -1024,6 +1030,47 @@ static struct pinmux_config profibus_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* LEDS - gpio1_21 -> gpio1_24 */
-+
-+#define BEAGLEBONE_USR1_LED  GPIO_TO_PIN(1, 21)
-+#define BEAGLEBONE_USR2_LED  GPIO_TO_PIN(1, 22)
-+#define BEAGLEBONE_USR3_LED  GPIO_TO_PIN(1, 23)
-+#define BEAGLEBONE_USR4_LED  GPIO_TO_PIN(1, 24)
-+
-+static struct gpio_led bone_gpio_leds[] = {
-+	{
-+		.name			= "beaglebone::usr0",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONE_USR1_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr1",
-+		.default_trigger	= "mmc0",
-+		.gpio			= BEAGLEBONE_USR2_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr2",
-+		.gpio			= BEAGLEBONE_USR3_LED,
-+	},
-+	{
-+		.name           = "beaglebone::usr3",
-+		.gpio           = BEAGLEBONE_USR4_LED,
-+	},
-+};
-+
-+static struct gpio_led_platform_data bone_gpio_led_info = {
-+	.leds		= bone_gpio_leds,
-+	.num_leds	= ARRAY_SIZE(bone_gpio_leds),
-+};
-+
-+static struct platform_device bone_leds_gpio = {
-+	.name	= "leds-gpio",
-+	.id	= -1,
-+	.dev	= {
-+		.platform_data	= &bone_gpio_led_info,
-+	},
-+};
-+
- 
- #define BEAGLEBONEDVI_USR0_LED  GPIO_TO_PIN(1, 18)
- #define BEAGLEBONEDVI_USR1_LED  GPIO_TO_PIN(1, 19)
-@@ -1777,11 +1824,11 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	snprintf(tmp, sizeof(cape_config.partnumber) + 1, "%s", cape_config.partnumber);
- 	pr_info("BeagleBone cape partnumber: %s\n", tmp);   
- 
--	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 5)) {
-+	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
- 			pr_info("BeagleBone cape: initializing DVI cape\n");
- 			dvi_init(0,0);
- 	}
--	if (!strncmp("LCD01", cape_config.partnumber, 5)) {
-+	if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing LCD cape\n");
- 		bbtoys7lcd_init(0,0);
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
-@@ -2258,6 +2305,7 @@ static void setup_general_purpose_evm(void)
- 	pr_info("The board is general purpose EVM in profile %d\n", prof_sel);
- 
- 	if (!strncmp("1.1A", config.version, 4)) {
-+		pr_info("EVM version is %s\n", config.version);
- 		gp_evm_revision = GP_EVM_REV_IS_1_1A;
- 	} else if (!strncmp("1.0", config.version, 3)) {
- 		gp_evm_revision = GP_EVM_REV_IS_1_0;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0005-beaglebone-disable-tsadc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0005-beaglebone-disable-tsadc.patch
deleted file mode 100644
index 5cd6f46..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0005-beaglebone-disable-tsadc.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From fd6ae50df7aee160e23cce68bf5c0fd223f2700a Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 31 Jan 2012 10:09:06 +0100
-Subject: [PATCH 05/79] beaglebone: disable tsadc
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index ffbecae..ba611c0 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -242,11 +242,11 @@ struct da8xx_lcdc_platform_data dvi_pdata = {
- static struct tsc_data am335x_touchscreen_data  = {
- 	.wires  = 4,
- 	.x_plate_resistance = 200,
--	.mode = TI_TSCADC_TSCMODE,
-+//	.mode = TI_TSCADC_TSCMODE,
- };
- 
- static struct tsc_data bone_touchscreen_data  = {
--	.mode = TI_TSCADC_GENMODE,
-+//	.mode = TI_TSCADC_GENMODE,
- };
- 
- static u8 am335x_iis_serializer_direction1[] = {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0006-tscadc-Add-general-purpose-mode-untested-with-touchs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0006-tscadc-Add-general-purpose-mode-untested-with-touchs.patch
deleted file mode 100644
index d0f7194..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0006-tscadc-Add-general-purpose-mode-untested-with-touchs.patch
+++ /dev/null
@@ -1,406 +0,0 @@
-From d434e8f8c1fec1f10d2475a014ed26d4e5bc8579 Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Wed, 30 Nov 2011 15:00:40 +0100
-Subject: [PATCH 06/79] tscadc: Add general purpose mode, untested with
- touchscreen functionality
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
-
-Conflicts:
-
-	drivers/input/touchscreen/ti_tscadc.c
-	[Fixed by Koen - needs review]
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +
- arch/arm/mach-omap2/mux33xx.c         |   12 ++
- arch/arm/mach-omap2/mux33xx.h         |    4 +
- drivers/input/touchscreen/ti_tscadc.c |  205 +++++++++++++++++++++++++--------
- include/linux/input/ti_tscadc.h       |    4 +
- 5 files changed, 178 insertions(+), 49 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index ba611c0..8f7ee0b 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2277,6 +2277,7 @@ static struct evm_dev_cfg beaglebone_old_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
-+	{tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
-@@ -2289,6 +2290,7 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
-+	{tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 59e51e0..572ed16 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -584,6 +584,18 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(AIN3, 0,
- 		"ain3", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
-+	_AM33XX_MUXENTRY(AIN4, 0,
-+		"ain4", NULL, NULL, NULL,
-+		NULL, NULL, NULL, NULL),
-+	_AM33XX_MUXENTRY(AIN5, 0,
-+		"ain5", NULL, NULL, NULL,
-+		NULL, NULL, NULL, NULL),
-+	_AM33XX_MUXENTRY(AIN6, 0,
-+		"ain6", NULL, NULL, NULL,
-+		NULL, NULL, NULL, NULL),
-+	_AM33XX_MUXENTRY(AIN7, 0,
-+		"ain7", NULL, NULL, NULL,
-+		NULL, NULL, NULL, NULL),
- 	_AM33XX_MUXENTRY(VREFP, 0,
- 		"vrefp", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
-diff --git a/arch/arm/mach-omap2/mux33xx.h b/arch/arm/mach-omap2/mux33xx.h
-index 70a3012..348c8e5 100644
---- a/arch/arm/mach-omap2/mux33xx.h
-+++ b/arch/arm/mach-omap2/mux33xx.h
-@@ -228,6 +228,10 @@
- #define AM33XX_CONTROL_PADCONF_DDR_DQSN1_OFFSET			0x0AFC
- #define AM33XX_CONTROL_PADCONF_DDR_VREF_OFFSET			0x0B00
- #define AM33XX_CONTROL_PADCONF_DDR_VTP_OFFSET			0x0B04
-+#define AM33XX_CONTROL_PADCONF_AIN7_OFFSET			0x0B10
-+#define AM33XX_CONTROL_PADCONF_AIN6_OFFSET			0x0B14
-+#define AM33XX_CONTROL_PADCONF_AIN5_OFFSET			0x0B18
-+#define AM33XX_CONTROL_PADCONF_AIN4_OFFSET			0x0B1C
- #define AM33XX_CONTROL_PADCONF_AIN3_OFFSET			0x0B20
- #define AM33XX_CONTROL_PADCONF_AIN2_OFFSET			0x0B24
- #define AM33XX_CONTROL_PADCONF_AIN1_OFFSET			0x0B28
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index 835a0ba..c6dc6f0 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -28,6 +28,8 @@
- #include <linux/delay.h>
- #include <linux/pm_runtime.h>
- 
-+/* Memory mapped registers here have incorrect offsets!
-+ * Correct after referring TRM */
- #define TSCADC_REG_IRQEOI		0x020
- #define TSCADC_REG_RAWIRQSTATUS		0x024
- #define TSCADC_REG_IRQSTATUS		0x028
-@@ -58,12 +60,19 @@
- #define TSCADC_IRQWKUP_ENB		BIT(0)
- #define TSCADC_IRQWKUP_DISABLE		0x00
- #define TSCADC_STPENB_STEPENB		0x7FFF
-+#define TSCADC_STPENB_STEPENB_TOUCHSCREEN	0x7FFF
-+#define TSCADC_STPENB_STEPENB_GENERAL		0x0400
- #define TSCADC_IRQENB_FIFO0THRES	BIT(2)
-+#define TSCADC_IRQENB_FIFO0OVERRUN	BIT(3)
- #define TSCADC_IRQENB_FIFO1THRES	BIT(5)
-+#define TSCADC_IRQENB_EOS		BIT(1)
- #define TSCADC_IRQENB_PENUP		BIT(9)
- #define TSCADC_IRQENB_HW_PEN		BIT(0)
- #define TSCADC_STEPCONFIG_MODE_HWSYNC	0x2
-+#define TSCADC_STEPCONFIG_MODE_SWCONT		0x1
-+#define TSCADC_STEPCONFIG_MODE_SWONESHOT	0x0
- #define TSCADC_STEPCONFIG_2SAMPLES_AVG	(1 << 4)
-+#define TSCADC_STEPCONFIG_NO_AVG	0
- #define TSCADC_STEPCONFIG_XPP		BIT(5)
- #define TSCADC_STEPCONFIG_XNN		BIT(6)
- #define TSCADC_STEPCONFIG_YPP		BIT(7)
-@@ -109,6 +118,7 @@ struct tscadc {
- 	int			wires;
- 	int			analog_input;
- 	int			x_plate_resistance;
-+	int mode;
- 	int			irq;
- 	void __iomem		*tsc_base;
- 	unsigned int		ctrl;
-@@ -125,6 +135,86 @@ static void tscadc_writel(struct tscadc *tsc, unsigned int reg,
- 	writel(val, tsc->tsc_base + reg);
- }
- 
-+static void tsc_adc_step_config(struct tscadc *ts_dev)
-+{
-+	unsigned int	stepconfig = 0, delay = 0, chargeconfig = 0;
-+
-+	/*
-+ 	 * Step Configuration
-+ 	 * software-enabled continous mode
-+ 	 * 2 sample averaging
-+ 	 * sample channel 1 (SEL_INP mux bits = 0)
-+ 	 */
-+	stepconfig = TSCADC_STEPCONFIG_MODE_SWONESHOT |
-+		TSCADC_STEPCONFIG_2SAMPLES_AVG |
-+		(0x7 << 19);
-+
-+	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
-+
-+	tscadc_writel(ts_dev, TSCADC_REG_STEPCONFIG(10), stepconfig);
-+	tscadc_writel(ts_dev, TSCADC_REG_STEPDELAY(10), delay);
-+
-+	/* Get the ball rolling, this will trigger the FSM to step through
-+ 	 * as soon as TSC_ADC_SS is turned on */
-+	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_GENERAL);
-+}
-+
-+static irqreturn_t tsc_adc_interrupt(int irq, void *dev)
-+{
-+	struct tscadc		*ts_dev = (struct tscadc *)dev;
-+	struct input_dev	*input_dev = ts_dev->input;
-+	unsigned int		status, irqclr = 0;
-+	int			i;
-+	int			fsm = 0, fifo0count = 0, fifo1count = 0;
-+	unsigned int		read_sample = 0, ready1 = 0;
-+	unsigned int		prev_val_x = ~0, prev_val_y = ~0;
-+	unsigned int		prev_diff_x = ~0, prev_diff_y = ~0;
-+	unsigned int		cur_diff_x = 0, cur_diff_y = 0;
-+	unsigned int		val_x = 0, val_y = 0, diffx = 0, diffy = 0;
-+
-+	status = tscadc_readl(ts_dev, TSCADC_REG_IRQSTATUS);
-+
-+	printk("interrupt! status=%x\n", status);
-+	// if (status & TSCADC_IRQENB_EOS) {
-+	// 	irqclr |= TSCADC_IRQENB_EOS;
-+	// }
-+
-+	if (status & TSCADC_IRQENB_FIFO0THRES) {
-+		fifo1count = tscadc_readl(ts_dev, TSCADC_REG_FIFO0CNT);
-+		printk("fifo 0 count = %d\n", fifo1count);
-+	
-+		for (i = 0; i < fifo1count; i++) {
-+			read_sample = tscadc_readl(ts_dev, TSCADC_REG_FIFO0);
-+			printk("sample: %d: %x\n", i, read_sample);
-+		}
-+		irqclr |= TSCADC_IRQENB_FIFO0THRES;
-+	}
-+
-+
-+	if (status & TSCADC_IRQENB_FIFO1THRES) {
-+		fifo1count = tscadc_readl(ts_dev, TSCADC_REG_FIFO1CNT);
-+
-+		for (i = 0; i < fifo1count; i++) {
-+			read_sample = tscadc_readl(ts_dev, TSCADC_REG_FIFO1);
-+			// read_sample = read_sample & 0xfff;
-+			printk("sample: %d: %d\n", i, read_sample);
-+			panic("sample read from fifo1!");
-+		}
-+		irqclr |= TSCADC_IRQENB_FIFO1THRES;
-+	}
-+
-+	mdelay(500);
-+
-+	tscadc_writel(ts_dev, TSCADC_REG_IRQSTATUS, irqclr);
-+
-+	/* check pending interrupts */
-+	tscadc_writel(ts_dev, TSCADC_REG_IRQEOI, 0x0);
-+
-+	/* Turn on Step 1 again */
-+	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_GENERAL);
-+	return IRQ_HANDLED;
-+}
-+
- static void tsc_step_config(struct tscadc *ts_dev)
- {
- 	unsigned int	stepconfigx = 0, stepconfigy = 0;
-@@ -229,7 +319,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 	tscadc_writel(ts_dev, TSCADC_REG_STEPCONFIG14, stepconfigz2);
- 	tscadc_writel(ts_dev, TSCADC_REG_STEPDELAY14, delay);
- 
--	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB);
-+	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_TOUCHSCREEN);
- }
- 
- static void tsc_idle_config(struct tscadc *ts_config)
-@@ -247,7 +337,7 @@ static void tsc_idle_config(struct tscadc *ts_config)
- 	tscadc_writel(ts_config, TSCADC_REG_IDLECONFIG, idleconfig);
- }
- 
--static irqreturn_t tscadc_interrupt(int irq, void *dev)
-+static irqreturn_t tsc_interrupt(int irq, void *dev)
- {
- 	struct tscadc		*ts_dev = (struct tscadc *)dev;
- 	struct input_dev	*input_dev = ts_dev->input;
-@@ -368,7 +458,7 @@ static irqreturn_t tscadc_interrupt(int irq, void *dev)
- 	/* check pending interrupts */
- 	tscadc_writel(ts_dev, TSCADC_REG_IRQEOI, 0x0);
- 
--	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB);
-+	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_TOUCHSCREEN);
- 	return IRQ_HANDLED;
- }
- 
-@@ -406,13 +496,15 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 		return -ENODEV;
- 	}
- 
--	input_dev = input_allocate_device();
--	if (!input_dev) {
--		dev_err(&pdev->dev, "failed to allocate input device.\n");
--		err = -ENOMEM;
--		goto err_free_mem;
-+	if(pdata->mode == TI_TSCADC_TSCMODE) {
-+		input_dev = input_allocate_device();
-+		if (!input_dev) {
-+			dev_err(&pdev->dev, "failed to allocate input device.\n");
-+			err = -ENOMEM;
-+			goto err_free_mem;
-+		}
-+		ts_dev->input = input_dev;
- 	}
--	ts_dev->input = input_dev;
- 
- 	res =  request_mem_region(res->start, resource_size(res), pdev->name);
- 	if (!res) {
-@@ -428,8 +520,15 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 		goto err_release_mem;
- 	}
- 
--	err = request_irq(ts_dev->irq, tscadc_interrupt, IRQF_DISABLED,
--				pdev->dev.driver->name, ts_dev);
-+	if(pdata->mode == TI_TSCADC_TSCMODE) {
-+		err = request_irq(ts_dev->irq, tsc_interrupt, IRQF_DISABLED,
-+					pdev->dev.driver->name, ts_dev);
-+	}
-+	else {
-+		err = request_irq(ts_dev->irq, tsc_adc_interrupt, IRQF_DISABLED,
-+					pdev->dev.driver->name, ts_dev);
-+	}
-+
- 	if (err) {
- 		dev_err(&pdev->dev, "failed to allocate irq.\n");
- 		goto err_unmap_regs;
-@@ -445,12 +544,18 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 		goto err_free_irq;
- 	}
- 	clock_rate = clk_get_rate(clk);
-+
-+	/* clk_value of atleast 21MHz required
-+ 	 * Clock verified on BeagleBone to be 24MHz */
-+
-+
- 	clk_value = clock_rate / ADC_CLK;
- 	if (clk_value < 7) {
- 		dev_err(&pdev->dev, "clock input less than min clock requirement\n");
- 		err = -EINVAL;
- 		goto err_fail;
- 	}
-+
- 	/* TSCADC_CLKDIV needs to be configured to the value minus 1 */
- 	clk_value = clk_value - 1;
- 	tscadc_writel(ts_dev, TSCADC_REG_CLKDIV, clk_value);
-@@ -458,53 +563,55 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 	ts_dev->wires = pdata->wires;
- 	ts_dev->analog_input = pdata->analog_input;
- 	ts_dev->x_plate_resistance = pdata->x_plate_resistance;
-+	ts_dev->mode = pdata->mode;
- 
--	/* Set the control register bits */
-+	/* Set the control register bits - 12.5.44 TRM */
- 	ctrl = TSCADC_CNTRLREG_STEPCONFIGWRT |
--			TSCADC_CNTRLREG_TSCENB |
--			TSCADC_CNTRLREG_STEPID;
--	switch (ts_dev->wires) {
--	case 4:
--		ctrl |= TSCADC_CNTRLREG_4WIRE;
--		break;
--	case 5:
--		ctrl |= TSCADC_CNTRLREG_5WIRE;
--		break;
--	case 8:
--		ctrl |= TSCADC_CNTRLREG_8WIRE;
--		break;
-+				TSCADC_CNTRLREG_STEPID;
-+	if(pdata->mode == TI_TSCADC_TSCMODE) {
-+		ctrl |= TSCADC_CNTRLREG_TSCENB;
-+		switch (ts_dev->wires) {
-+			case 4:
-+				ctrl |= TSCADC_CNTRLREG_4WIRE;
-+				break;
-+			case 5:
-+				ctrl |= TSCADC_CNTRLREG_5WIRE;
-+				break;
-+			case 8:
-+				ctrl |= TSCADC_CNTRLREG_8WIRE;
-+				break;
-+		}
- 	}
- 	tscadc_writel(ts_dev, TSCADC_REG_CTRL, ctrl);
- 	ts_dev->ctrl = ctrl;
- 
--	/* Set register bits for Idel Config Mode */
--	tsc_idle_config(ts_dev);
--
--	/* IRQ Enable */
--	irqenable = TSCADC_IRQENB_FIFO1THRES;
-+	/* Touch screen / ADC configuration */
-+	if(pdata->mode == TI_TSCADC_TSCMODE) {
-+		tsc_idle_config(ts_dev);
-+		tsc_step_config(ts_dev);
-+		tscadc_writel(ts_dev, TSCADC_REG_FIFO1THR, 6);
-+		irqenable = TSCADC_IRQENB_FIFO1THRES;
-+		/* Touch screen also needs an input_dev */
-+		input_dev->name = "ti-tsc-adcc";
-+		input_dev->dev.parent = &pdev->dev;
-+		input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
-+		input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
-+		input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, 0, 0);
-+		input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, 0, 0);
-+		/* register to the input system */
-+		err = input_register_device(input_dev);
-+		if (err)
-+			goto err_fail;
-+	}
-+	else {
-+		tsc_adc_step_config(ts_dev);
-+		tscadc_writel(ts_dev, TSCADC_REG_FIFO0THR, 0);
-+		irqenable = TSCADC_IRQENB_FIFO0THRES;
-+	}
- 	tscadc_writel(ts_dev, TSCADC_REG_IRQENABLE, irqenable);
- 
--	tsc_step_config(ts_dev);
--
--	tscadc_writel(ts_dev, TSCADC_REG_FIFO1THR, 6);
--
- 	ctrl |= TSCADC_CNTRLREG_TSCSSENB;
--	tscadc_writel(ts_dev, TSCADC_REG_CTRL, ctrl);
--
--	input_dev->name = "ti-tsc-adcc";
--	input_dev->dev.parent = &pdev->dev;
--
--	input_dev->evbit[0] = BIT_MASK(EV_KEY) | BIT_MASK(EV_ABS);
--	input_dev->keybit[BIT_WORD(BTN_TOUCH)] = BIT_MASK(BTN_TOUCH);
--
--	input_set_abs_params(input_dev, ABS_X, 0, MAX_12BIT, 0, 0);
--	input_set_abs_params(input_dev, ABS_Y, 0, MAX_12BIT, 0, 0);
--	input_set_abs_params(input_dev, ABS_PRESSURE, 0, MAX_12BIT, 0, 0);
--
--	/* register to the input system */
--	err = input_register_device(input_dev);
--	if (err)
--		goto err_fail;
-+	tscadc_writel(ts_dev, TSCADC_REG_CTRL, ctrl);	/* Turn on TSC_ADC */
- 
- 	device_init_wakeup(&pdev->dev, true);
- 	platform_set_drvdata(pdev, ts_dev);
-diff --git a/include/linux/input/ti_tscadc.h b/include/linux/input/ti_tscadc.h
-index 2c547bb..850cd4b 100644
---- a/include/linux/input/ti_tscadc.h
-+++ b/include/linux/input/ti_tscadc.h
-@@ -14,8 +14,12 @@
-  * @x_plate_resistance:	X plate resistance.
-  */
- 
-+#define TI_TSCADC_TSCMODE 0
-+#define TI_TSCADC_GENMODE 1
-+
- struct tsc_data {
- 	int wires;
- 	int analog_input;
- 	int x_plate_resistance;
-+	int mode;
- };
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0007-tscadc-Add-board-file-mfd-support-fix-warning.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0007-tscadc-Add-board-file-mfd-support-fix-warning.patch
deleted file mode 100644
index 787d426..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0007-tscadc-Add-board-file-mfd-support-fix-warning.patch
+++ /dev/null
@@ -1,44 +0,0 @@
-From dc7ef10b1e755f188cfc92f4e1d8a43c8e661392 Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Wed, 30 Nov 2011 15:02:17 +0100
-Subject: [PATCH 07/79] tscadc: Add board file mfd support, fix warning
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
-
-Conflicts:
-
-	arch/arm/mach-omap2/board-am335xevm.c
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- drivers/input/touchscreen/ti_tscadc.c |    2 +-
- 2 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 8f7ee0b..64a0c0a 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2277,7 +2277,7 @@ static struct evm_dev_cfg beaglebone_old_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
--	{tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
-+	{bone_tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index c6dc6f0..b50a08c 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -469,7 +469,7 @@ static irqreturn_t tsc_interrupt(int irq, void *dev)
- static	int __devinit tscadc_probe(struct platform_device *pdev)
- {
- 	struct tscadc			*ts_dev;
--	struct input_dev		*input_dev;
-+	struct input_dev		*input_dev = NULL;
- 	int				err;
- 	int				clk_value;
- 	int				clock_rate, irqenable, ctrl;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0008-AM335X-init-tsc-bone-style-for-new-boards.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0008-AM335X-init-tsc-bone-style-for-new-boards.patch
deleted file mode 100644
index 9434c57..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0008-AM335X-init-tsc-bone-style-for-new-boards.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b67913c3de1b8789c9d1881391b9bfb0beaa00ee Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Wed, 30 Nov 2011 15:03:59 +0100
-Subject: [PATCH 08/79] AM335X: init tsc bone style for new boards
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 64a0c0a..6b78ae6 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2290,7 +2290,7 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
--	{tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
-+	{bone_tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0009-tscadc-make-stepconfig-channel-configurable.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0009-tscadc-make-stepconfig-channel-configurable.patch
deleted file mode 100644
index 5f43ac4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0009-tscadc-make-stepconfig-channel-configurable.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 3b70f6dd0dd6f6c1fbd71b7090a3340382b3c77e Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Mon, 28 Nov 2011 18:18:04 -0600
-Subject: [PATCH 09/79] tscadc: make stepconfig channel-configurable
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
----
- drivers/input/touchscreen/ti_tscadc.c |    8 +++++---
- 1 file changed, 5 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index b50a08c..6083de7 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -135,7 +135,9 @@ static void tscadc_writel(struct tscadc *tsc, unsigned int reg,
- 	writel(val, tsc->tsc_base + reg);
- }
- 
--static void tsc_adc_step_config(struct tscadc *ts_dev)
-+/* Configure ADC to sample on channel (1-8) */
-+
-+static void tsc_adc_step_config(struct tscadc *ts_dev, int channel)
- {
- 	unsigned int	stepconfig = 0, delay = 0, chargeconfig = 0;
- 
-@@ -147,7 +149,7 @@ static void tsc_adc_step_config(struct tscadc *ts_dev)
-  	 */
- 	stepconfig = TSCADC_STEPCONFIG_MODE_SWONESHOT |
- 		TSCADC_STEPCONFIG_2SAMPLES_AVG |
--		(0x7 << 19);
-+		((channel-1) << 19);
- 
- 	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
- 
-@@ -604,7 +606,7 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 			goto err_fail;
- 	}
- 	else {
--		tsc_adc_step_config(ts_dev);
-+		tsc_adc_step_config(ts_dev, 8);
- 		tscadc_writel(ts_dev, TSCADC_REG_FIFO0THR, 0);
- 		irqenable = TSCADC_IRQENB_FIFO0THRES;
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0010-tscadc-Trigger-through-sysfs.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0010-tscadc-Trigger-through-sysfs.patch
deleted file mode 100644
index 6afca79..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0010-tscadc-Trigger-through-sysfs.patch
+++ /dev/null
@@ -1,149 +0,0 @@
-From 19415df67c6e3802c007832e356933d33435558b Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Mon, 28 Nov 2011 20:55:25 -0600
-Subject: [PATCH 10/79] tscadc: Trigger through sysfs
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
-
-Conflicts:
-
-	drivers/input/touchscreen/ti_tscadc.c
----
- drivers/input/touchscreen/ti_tscadc.c |   60 ++++++++++++++++++++++++++++++---
- include/linux/input/ti_tscadc.h       |    1 +
- 2 files changed, 56 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index 6083de7..d6aec8c 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -26,8 +26,19 @@
- #include <linux/io.h>
- #include <linux/input/ti_tscadc.h>
- #include <linux/delay.h>
-+#include <linux/device.h>
- #include <linux/pm_runtime.h>
- 
-+size_t do_adc_sample(struct kobject *, struct attribute *, char *);
-+static DEVICE_ATTR(ain1, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain2, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain3, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain4, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain5, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain6, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain7, S_IRUGO, do_adc_sample, NULL);
-+static DEVICE_ATTR(ain8, S_IRUGO, do_adc_sample, NULL);
-+
- /* Memory mapped registers here have incorrect offsets!
-  * Correct after referring TRM */
- #define TSCADC_REG_IRQEOI		0x020
-@@ -150,12 +161,12 @@ static void tsc_adc_step_config(struct tscadc *ts_dev, int channel)
- 	stepconfig = TSCADC_STEPCONFIG_MODE_SWONESHOT |
- 		TSCADC_STEPCONFIG_2SAMPLES_AVG |
- 		((channel-1) << 19);
--
-+	
- 	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
- 
- 	tscadc_writel(ts_dev, TSCADC_REG_STEPCONFIG(10), stepconfig);
- 	tscadc_writel(ts_dev, TSCADC_REG_STEPDELAY(10), delay);
--
-+	
- 	/* Get the ball rolling, this will trigger the FSM to step through
-  	 * as soon as TSC_ADC_SS is turned on */
- 	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_GENERAL);
-@@ -205,7 +216,7 @@ static irqreturn_t tsc_adc_interrupt(int irq, void *dev)
- 		irqclr |= TSCADC_IRQENB_FIFO1THRES;
- 	}
- 
--	mdelay(500);
-+	// mdelay(500);
- 
- 	tscadc_writel(ts_dev, TSCADC_REG_IRQSTATUS, irqclr);
- 
-@@ -213,7 +224,7 @@ static irqreturn_t tsc_adc_interrupt(int irq, void *dev)
- 	tscadc_writel(ts_dev, TSCADC_REG_IRQEOI, 0x0);
- 
- 	/* Turn on Step 1 again */
--	tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_GENERAL);
-+	// tscadc_writel(ts_dev, TSCADC_REG_SE, TSCADC_STPENB_STEPENB_GENERAL);
- 	return IRQ_HANDLED;
- }
- 
-@@ -468,6 +479,34 @@ static irqreturn_t tsc_interrupt(int irq, void *dev)
- * The functions for inserting/removing driver as a module.
- */
- 
-+size_t do_adc_sample(struct kobject *kobj, struct attribute *attr, char *buf) {
-+	struct platform_device *pdev;
-+	struct device *dev;
-+	struct tscadc *ts_dev;
-+	int channel_num;
-+
-+	pdev = (struct platform_device *)container_of(kobj, struct device, kobj);
-+	dev = &pdev->dev;
-+
-+	ts_dev = dev_get_drvdata(dev);
-+
-+	if(strncmp(attr->name, "ain", 3)) {
-+		printk("Invalid ain num\n");
-+		return -EINVAL;
-+	}
-+
-+	channel_num = attr->name[3] - 0x30;
-+	if(channel_num > 8 || channel_num < 1) {
-+		printk("Invalid channel_num=%d\n", channel_num);
-+		return -EINVAL;
-+	}
-+
-+	tsc_adc_step_config(ts_dev, channel_num);
-+
-+	memcpy(buf, attr->name, strlen(attr->name)+1);
-+	return strlen(attr->name);
-+}
-+
- static	int __devinit tscadc_probe(struct platform_device *pdev)
- {
- 	struct tscadc			*ts_dev;
-@@ -479,6 +518,18 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 	struct resource			*res;
- 	struct clk			*clk;
- 
-+	printk("dev addr = %p\n", &pdev->dev);
-+	printk("pdev addr = %p\n", pdev);
-+
-+	device_create_file(&pdev->dev, &dev_attr_ain1);
-+	device_create_file(&pdev->dev, &dev_attr_ain2);
-+	device_create_file(&pdev->dev, &dev_attr_ain3);
-+	device_create_file(&pdev->dev, &dev_attr_ain4);
-+	device_create_file(&pdev->dev, &dev_attr_ain5);
-+	device_create_file(&pdev->dev, &dev_attr_ain6);
-+	device_create_file(&pdev->dev, &dev_attr_ain7);
-+	device_create_file(&pdev->dev, &dev_attr_ain8);
-+
- 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- 	if (!res) {
- 		dev_err(&pdev->dev, "no memory resource defined.\n");
-@@ -606,7 +657,6 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 			goto err_fail;
- 	}
- 	else {
--		tsc_adc_step_config(ts_dev, 8);
- 		tscadc_writel(ts_dev, TSCADC_REG_FIFO0THR, 0);
- 		irqenable = TSCADC_IRQENB_FIFO0THRES;
- 	}
-diff --git a/include/linux/input/ti_tscadc.h b/include/linux/input/ti_tscadc.h
-index 850cd4b..fc239c6 100644
---- a/include/linux/input/ti_tscadc.h
-+++ b/include/linux/input/ti_tscadc.h
-@@ -13,6 +13,7 @@
-  *			0.
-  * @x_plate_resistance:	X plate resistance.
-  */
-+#include <linux/device.h>
- 
- #define TI_TSCADC_TSCMODE 0
- #define TI_TSCADC_GENMODE 1
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0011-meta-ti-Remove-debug-messages-for-meta-ti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0011-meta-ti-Remove-debug-messages-for-meta-ti.patch
deleted file mode 100644
index 1bd64b4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0011-meta-ti-Remove-debug-messages-for-meta-ti.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From 956815a5ce5d2708ad3f14bdd0c6aaee056febbb Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Mon, 28 Nov 2011 20:56:48 -0600
-Subject: [PATCH 11/79] meta-ti: Remove debug messages for meta-ti
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
----
- drivers/input/touchscreen/ti_tscadc.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index d6aec8c..da48bcd 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -187,14 +187,14 @@ static irqreturn_t tsc_adc_interrupt(int irq, void *dev)
- 
- 	status = tscadc_readl(ts_dev, TSCADC_REG_IRQSTATUS);
- 
--	printk("interrupt! status=%x\n", status);
-+	// printk("interrupt! status=%x\n", status);
- 	// if (status & TSCADC_IRQENB_EOS) {
- 	// 	irqclr |= TSCADC_IRQENB_EOS;
- 	// }
- 
- 	if (status & TSCADC_IRQENB_FIFO0THRES) {
- 		fifo1count = tscadc_readl(ts_dev, TSCADC_REG_FIFO0CNT);
--		printk("fifo 0 count = %d\n", fifo1count);
-+		// printk("fifo 0 count = %d\n", fifo1count);
- 	
- 		for (i = 0; i < fifo1count; i++) {
- 			read_sample = tscadc_readl(ts_dev, TSCADC_REG_FIFO0);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0012-tscadc-switch-to-polling-instead-of-interrupts.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0012-tscadc-switch-to-polling-instead-of-interrupts.patch
deleted file mode 100644
index d9fd2a7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0012-tscadc-switch-to-polling-instead-of-interrupts.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 393a7b11a2819b5149c909a801b1f8be4d781771 Mon Sep 17 00:00:00 2001
-From: Joel A Fernandes <joelagnel at ti.com>
-Date: Tue, 29 Nov 2011 09:44:22 -0600
-Subject: [PATCH 12/79] tscadc: switch to polling instead of interrupts
-
-Signed-off-by: Joel A Fernandes <joelagnel at ti.com>
----
- drivers/input/touchscreen/ti_tscadc.c |   16 ++++++++++++++--
- 1 file changed, 14 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index da48bcd..4fd2e18 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -484,6 +484,8 @@ size_t do_adc_sample(struct kobject *kobj, struct attribute *attr, char *buf) {
- 	struct device *dev;
- 	struct tscadc *ts_dev;
- 	int channel_num;
-+	int fifo0count = 0;
-+	int read_sample = 0;
- 
- 	pdev = (struct platform_device *)container_of(kobj, struct device, kobj);
- 	dev = &pdev->dev;
-@@ -503,7 +505,17 @@ size_t do_adc_sample(struct kobject *kobj, struct attribute *attr, char *buf) {
- 
- 	tsc_adc_step_config(ts_dev, channel_num);
- 
--	memcpy(buf, attr->name, strlen(attr->name)+1);
-+	do {
-+		fifo0count = tscadc_readl(ts_dev, TSCADC_REG_FIFO0CNT);
-+	}
-+	while (!fifo0count);
-+
-+	while (fifo0count--) {
-+			  read_sample = tscadc_readl(ts_dev, TSCADC_REG_FIFO0) & 0xfff;
-+			  // printk("polling sample: %d: %x\n", fifo0count, read_sample);
-+	}
-+	sprintf(buf, "%d", read_sample);
-+
- 	return strlen(attr->name);
- }
- 
-@@ -658,7 +670,7 @@ static	int __devinit tscadc_probe(struct platform_device *pdev)
- 	}
- 	else {
- 		tscadc_writel(ts_dev, TSCADC_REG_FIFO0THR, 0);
--		irqenable = TSCADC_IRQENB_FIFO0THRES;
-+		irqenable = 0; // TSCADC_IRQENB_FIFO0THRES;
- 	}
- 	tscadc_writel(ts_dev, TSCADC_REG_IRQENABLE, irqenable);
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0013-beaglebone-fix-ADC-init.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0013-beaglebone-fix-ADC-init.patch
deleted file mode 100644
index 3db4f7d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0013-beaglebone-fix-ADC-init.patch
+++ /dev/null
@@ -1,47 +0,0 @@
-From 33bbdc8dfb22170f7be9286c653fbac9d9c8f196 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 31 Jan 2012 14:50:55 +0100
-Subject: [PATCH 13/79] beaglebone: fix ADC init
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    6 ++----
- 1 file changed, 2 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 6b78ae6..ffbecae 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -242,11 +242,11 @@ struct da8xx_lcdc_platform_data dvi_pdata = {
- static struct tsc_data am335x_touchscreen_data  = {
- 	.wires  = 4,
- 	.x_plate_resistance = 200,
--//	.mode = TI_TSCADC_TSCMODE,
-+	.mode = TI_TSCADC_TSCMODE,
- };
- 
- static struct tsc_data bone_touchscreen_data  = {
--//	.mode = TI_TSCADC_GENMODE,
-+	.mode = TI_TSCADC_GENMODE,
- };
- 
- static u8 am335x_iis_serializer_direction1[] = {
-@@ -2277,7 +2277,6 @@ static struct evm_dev_cfg beaglebone_old_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
--	{bone_tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
-@@ -2290,7 +2289,6 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
--	{bone_tsc_init, 	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0014-AM335x-MUX-add-ehrpwm1A.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0014-AM335x-MUX-add-ehrpwm1A.patch
deleted file mode 100644
index 489c64e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0014-AM335x-MUX-add-ehrpwm1A.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 10099d6354fc3c61306788e4070cfbd20722fb80 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 31 Jan 2012 16:49:52 +0100
-Subject: [PATCH 14/79] AM335x: MUX: add ehrpwm1A
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/mux33xx.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 572ed16..0f71646 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -85,7 +85,7 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 		NULL, NULL, NULL, "gpio1_17"),
- 	_AM33XX_MUXENTRY(GPMC_A2, 0,
- 		"gpmc_a2", "mii2_txd3", "rgmii2_td3", "mmc2_dat1",
--		NULL, NULL, NULL, "gpio1_18"),
-+		NULL, NULL, "ehrpwm1A", "gpio1_18"),
- 	_AM33XX_MUXENTRY(GPMC_A3, 0,
- 		"gpmc_a3", "mii2_txd2", "rgmii2_td2", "mmc2_dat2",
- 		NULL, NULL, NULL, "gpio1_19"),
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0015-beaglebone-enable-PWM-for-lcd-backlight-backlight-is.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0015-beaglebone-enable-PWM-for-lcd-backlight-backlight-is.patch
deleted file mode 100644
index 0d645ff..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0015-beaglebone-enable-PWM-for-lcd-backlight-backlight-is.patch
+++ /dev/null
@@ -1,123 +0,0 @@
-From 33182602bad8a5aec644e69d800f5bc5c6604419 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 31 Jan 2012 17:02:10 +0100
-Subject: [PATCH 15/79] beaglebone: enable PWM for lcd backlight <- backlight
- is inverted
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   51 +++++++++++++++++++++++++++------
- 1 file changed, 42 insertions(+), 9 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index ffbecae..43a83ca 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -181,6 +181,16 @@ static const struct display_panel bbtoys7_panel = {
- 	COLOR_ACTIVE,
- };
- 
-+#define BBTOYS7LCD_PWM_DEVICE_ID   "ehrpwm.1:0"
-+
-+static struct platform_pwm_backlight_data bbtoys7lcd_backlight_data = {
-+	.pwm_id         = BBTOYS7LCD_PWM_DEVICE_ID,
-+	.ch             = -1,
-+	.max_brightness = AM335X_BACKLIGHT_MAX_BRIGHTNESS,
-+	.dft_brightness = AM335X_BACKLIGHT_DEFAULT_BRIGHTNESS,
-+	.pwm_period_ns  = AM335X_PWM_PERIOD_NANO_SECONDS,
-+};
-+
- static struct lcd_ctrl_config bbtoys7_cfg = {
- 	&bbtoys7_panel,
- 	.ac_bias		= 255,
-@@ -601,9 +611,9 @@ static struct pinmux_config bbtoys7_pin_mux[] = {
- 	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT}, 
--	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // Backlight
-+	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
-+	{"gpmc_a2.ehrpwm1A", OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT}, // Backlight
- 	{NULL, 0},
- };
- 
-@@ -1136,6 +1146,7 @@ static struct pinmux_config ecap0_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+static int ehrpwm_backlight_enable;
- static int backlight_enable;
- 
- #define AM335XEVM_WLAN_PMENA_GPIO	GPIO_TO_PIN(1, 30)
-@@ -1218,6 +1229,30 @@ static int __init ecap0_init(void)
- }
- late_initcall(ecap0_init);
- 
-+static void enable_ehrpwm1(int evm_id, int profile)
-+{
-+	ehrpwm_backlight_enable = true;
-+}
-+
-+/* Setup pwm-backlight for bbtoys7lcd */
-+static struct platform_device bbtoys7lcd_backlight = {
-+	.name           = "pwm-backlight",
-+	.id             = -1,
-+	.dev            = {
-+		.platform_data  = &bbtoys7lcd_backlight_data,
-+	}
-+};
-+
-+static int __init ehrpwm1_init(void)
-+{
-+	int status = 0;
-+	if (ehrpwm_backlight_enable) {
-+		platform_device_register(&bbtoys7lcd_backlight);
-+	}
-+	return status;
-+}
-+late_initcall(ehrpwm1_init);
-+
- static int __init conf_disp_pll(int rate)
- {
- 	struct clk *disp_pll;
-@@ -1252,11 +1287,12 @@ static void lcdc_init(int evm_id, int profile)
- }
- 
- #define BEAGLEBONE_LCD_AVDD_EN GPIO_TO_PIN(0, 7)
--#define BEAGLEBONE_LCD_BL GPIO_TO_PIN(1, 18)
- 
- static void bbtoys7lcd_init(int evm_id, int profile)
- {
- 	setup_pin_mux(bbtoys7_pin_mux);
-+	gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
-+	gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
- 
- 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
- 	if (conf_disp_pll(300000000)) {
-@@ -1267,12 +1303,7 @@ static void bbtoys7lcd_init(int evm_id, int profile)
- 	
- 	if (am33xx_register_lcdc(&bbtoys7_pdata))
- 		pr_info("Failed to register Beagleboardtoys 7\" LCD cape device\n");
--	
--	gpio_request(BEAGLEBONE_LCD_BL, "BONE_LCD_BL");
--	gpio_direction_output(BEAGLEBONE_LCD_BL, 1);
--	gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
--	gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
--
-+		
- 	return;
- }
- 
-@@ -1833,6 +1864,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		bbtoys7lcd_init(0,0);
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
- 		tsc_init(0,0);
-+		pr_info("BeagleBone cape: Registering PWM backlight for LCD cape\n");
-+		enable_ehrpwm1(0,0);
- 		beaglebone_tsadcpins_free = 0;
- 	}
- 	
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0016-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0016-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch
deleted file mode 100644
index 120f59f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0016-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch
+++ /dev/null
@@ -1,34 +0,0 @@
-From ec0ef23dd64de808f7e9d827ee82ac4734d8a003 Mon Sep 17 00:00:00 2001
-From: Steve Sakoman <steve at sakoman.com>
-Date: Mon, 18 Jul 2011 23:13:41 -0500
-Subject: [PATCH 16/79] omap_hsmmc: Set dto to max value of 14 to avoid SD
- Card timeouts
-
-This fixes MMC errors due to timeouts on certain SD Cards following suggestions
-to set dto to 14 by Jason Kridner and Steven Kipisz
-
-Details of the issue:
-http://talk.maemo.org/showthread.php?p=1000707#post1000707
-
-This fix was originally proposed by Sukumar Ghoral of TI.
----
- drivers/mmc/host/omap_hsmmc.c |    3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
-index 22da8f2..adbc4d1 100644
---- a/drivers/mmc/host/omap_hsmmc.c
-+++ b/drivers/mmc/host/omap_hsmmc.c
-@@ -1554,6 +1554,9 @@ static void set_data_timeout(struct omap_hsmmc_host *host)
- 	/* Use the maximum timeout value allowed in the standard of 14 or 0xE */
- 	dto = 14;
- 
-+	/* Set dto to max value of 14 to avoid SD Card timeouts */
-+	dto = 14;
-+
- 	reg &= ~DTO_MASK;
- 	reg |= dto << DTO_SHIFT;
- 	OMAP_HSMMC_WRITE(host->base, SYSCTL, reg);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0017-beaglebone-set-default-brightness-to-50-for-pwm-back.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0017-beaglebone-set-default-brightness-to-50-for-pwm-back.patch
deleted file mode 100644
index ed19d76..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0017-beaglebone-set-default-brightness-to-50-for-pwm-back.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From 5ef54fcdbb6f2cee36b88ed04ea7c3d604702659 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 1 Feb 2012 14:10:38 +0100
-Subject: [PATCH 17/79] beaglebone: set default brightness to 50% for pwm
- backlights
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 43a83ca..97b069f 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -135,7 +135,7 @@ static const struct display_panel disp_panel = {
- 
- /* LCD backlight platform Data */
- #define AM335X_BACKLIGHT_MAX_BRIGHTNESS        100
--#define AM335X_BACKLIGHT_DEFAULT_BRIGHTNESS    100
-+#define AM335X_BACKLIGHT_DEFAULT_BRIGHTNESS    50
- #define AM335X_PWM_PERIOD_NANO_SECONDS        (5000 * 10)
- 
- #define PWM_DEVICE_ID   "ecap.0"
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0018-st7735fb-WIP-framebuffer-driver-supporting-Adafruit-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0018-st7735fb-WIP-framebuffer-driver-supporting-Adafruit-.patch
deleted file mode 100644
index de1854b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0018-st7735fb-WIP-framebuffer-driver-supporting-Adafruit-.patch
+++ /dev/null
@@ -1,668 +0,0 @@
-From b54647b2f6825845e678995cf9a9824f763b6eb1 Mon Sep 17 00:00:00 2001
-From: Matt Porter <mporter at ti.com>
-Date: Mon, 21 Nov 2011 12:55:23 -0500
-Subject: [PATCH 18/79] st7735fb: WIP framebuffer driver supporting Adafruit
- 1.8" SPI LCD
-
-Signed-off-by: Matt Porter <mporter at ti.com>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/video/Kconfig    |   11 +
- drivers/video/Makefile   |    1 +
- drivers/video/st7735fb.c |  516 ++++++++++++++++++++++++++++++++++++++++++++++
- include/video/st7735fb.h |   86 ++++++++
- 4 files changed, 614 insertions(+)
- create mode 100644 drivers/video/st7735fb.c
- create mode 100644 include/video/st7735fb.h
-
-diff --git a/drivers/video/Kconfig b/drivers/video/Kconfig
-index f66bf0e..64754de 100644
---- a/drivers/video/Kconfig
-+++ b/drivers/video/Kconfig
-@@ -2420,6 +2420,17 @@ config FB_PUV3_UNIGFX
- 	  Choose this option if you want to use the Unigfx device as a
- 	  framebuffer device. Without the support of PCI & AGP.
- 
-+config FB_ST7735
-+	tristate "ST7735 framebuffer support"
-+	depends on FB && SPI
-+	select FB_SYS_FILLRECT
-+	select FB_SYS_COPYAREA
-+	select FB_SYS_IMAGEBLIT
-+	select FB_SYS_FOPS
-+	select FB_DEFERRED_IO
-+	help
-+	  Framebuffer support for the ST7735 display controller in SPI mode.
-+
- source "drivers/video/omap/Kconfig"
- source "drivers/video/omap2/Kconfig"
- 
-diff --git a/drivers/video/Makefile b/drivers/video/Makefile
-index 9b9d8ff..c6d9851 100644
---- a/drivers/video/Makefile
-+++ b/drivers/video/Makefile
-@@ -143,6 +143,7 @@ obj-$(CONFIG_FB_MSM)              += msm/
- obj-$(CONFIG_FB_NUC900)           += nuc900fb.o
- obj-$(CONFIG_FB_JZ4740)		  += jz4740_fb.o
- obj-$(CONFIG_FB_PUV3_UNIGFX)      += fb-puv3.o
-+obj-$(CONFIG_FB_ST7735)		  += st7735fb.o
- 
- # Platform or fallback drivers go here
- obj-$(CONFIG_FB_UVESA)            += uvesafb.o
-diff --git a/drivers/video/st7735fb.c b/drivers/video/st7735fb.c
-new file mode 100644
-index 0000000..500cc88
---- /dev/null
-+++ b/drivers/video/st7735fb.c
-@@ -0,0 +1,516 @@
-+/*
-+ * linux/drivers/video/st7735fb.c -- FB driver for ST7735 LCD controller
-+ * Layout is based on skeletonfb.c by James Simmons and Geert Uytterhoeven.
-+ *
-+ * Copyright (C) 2011, Matt Porter
-+ *
-+ * 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.
-+ */
-+
-+#include <linux/module.h>
-+#include <linux/kernel.h>
-+#include <linux/errno.h>
-+#include <linux/string.h>
-+#include <linux/mm.h>
-+#include <linux/vmalloc.h>
-+#include <linux/slab.h>
-+#include <linux/init.h>
-+#include <linux/fb.h>
-+#include <linux/gpio.h>
-+#include <linux/spi/spi.h>
-+#include <linux/delay.h>
-+#include <linux/uaccess.h>
-+
-+#include <video/st7735fb.h>
-+
-+static struct st7735_function st7735_cfg_script[] = {
-+	{ ST7735_START, ST7735_START},
-+	{ ST7735_CMD, ST7735_SWRESET},
-+	{ ST7735_DELAY, 150},
-+	{ ST7735_CMD, ST7735_SLPOUT},
-+	{ ST7735_DELAY, 500},
-+	{ ST7735_CMD, ST7735_FRMCTR1},
-+	{ ST7735_DATA, 0x01},
-+	{ ST7735_DATA, 0x2c},
-+	{ ST7735_DATA, 0x2d},
-+	{ ST7735_CMD, ST7735_FRMCTR2},
-+	{ ST7735_DATA, 0x01},
-+	{ ST7735_DATA, 0x2c},
-+	{ ST7735_DATA, 0x2d},
-+	{ ST7735_CMD, ST7735_FRMCTR3},
-+	{ ST7735_DATA, 0x01},
-+	{ ST7735_DATA, 0x2c},
-+	{ ST7735_DATA, 0x2d},
-+	{ ST7735_DATA, 0x01},
-+	{ ST7735_DATA, 0x2c},
-+	{ ST7735_DATA, 0x2d},
-+	{ ST7735_CMD, ST7735_INVCTR},
-+	{ ST7735_DATA, 0x07},
-+	{ ST7735_CMD, ST7735_PWCTR1},
-+	{ ST7735_DATA, 0xa2},
-+	{ ST7735_DATA, 0x02},
-+	{ ST7735_DATA, 0x84},
-+	{ ST7735_CMD, ST7735_PWCTR2},
-+	{ ST7735_DATA, 0xc5},
-+	{ ST7735_CMD, ST7735_PWCTR3},
-+	{ ST7735_DATA, 0x0a},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_CMD, ST7735_PWCTR4},
-+	{ ST7735_DATA, 0x8a},
-+	{ ST7735_DATA, 0x2a},
-+	{ ST7735_CMD, ST7735_PWCTR5},
-+	{ ST7735_DATA, 0x8a},
-+	{ ST7735_DATA, 0xee},
-+	{ ST7735_CMD, ST7735_VMCTR1},
-+	{ ST7735_DATA, 0x0e},
-+	{ ST7735_CMD, ST7735_INVOFF},
-+	{ ST7735_CMD, ST7735_MADCTL},
-+	{ ST7735_DATA, 0xc8},
-+	{ ST7735_CMD, ST7735_COLMOD},
-+	{ ST7735_DATA, 0x05},
-+	{ ST7735_CMD, ST7735_CASET},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x7f},
-+	{ ST7735_CMD, ST7735_RASET},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x9f},
-+	{ ST7735_CMD, ST7735_GMCTRP1},
-+	{ ST7735_DATA, 0x02},
-+	{ ST7735_DATA, 0x1c},
-+	{ ST7735_DATA, 0x07},
-+	{ ST7735_DATA, 0x12},
-+	{ ST7735_DATA, 0x37},
-+	{ ST7735_DATA, 0x32},
-+	{ ST7735_DATA, 0x29},
-+	{ ST7735_DATA, 0x2d},
-+	{ ST7735_DATA, 0x29},
-+	{ ST7735_DATA, 0x25},
-+	{ ST7735_DATA, 0x2b},
-+	{ ST7735_DATA, 0x39},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x01},
-+	{ ST7735_DATA, 0x03},
-+	{ ST7735_DATA, 0x10},
-+	{ ST7735_CMD, ST7735_GMCTRN1},
-+	{ ST7735_DATA, 0x03},
-+	{ ST7735_DATA, 0x1d},
-+	{ ST7735_DATA, 0x07},
-+	{ ST7735_DATA, 0x06},
-+	{ ST7735_DATA, 0x2e},
-+	{ ST7735_DATA, 0x2c},
-+	{ ST7735_DATA, 0x29},
-+	{ ST7735_DATA, 0x2d},
-+	{ ST7735_DATA, 0x2e},
-+	{ ST7735_DATA, 0x2e},
-+	{ ST7735_DATA, 0x37},
-+	{ ST7735_DATA, 0x3f},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x00},
-+	{ ST7735_DATA, 0x02},
-+	{ ST7735_DATA, 0x10},
-+	{ ST7735_CMD, ST7735_DISPON},
-+	{ ST7735_DELAY, 100},
-+	{ ST7735_CMD, ST7735_NORON},
-+	{ ST7735_DELAY, 10},
-+	{ ST7735_END, ST7735_END},
-+};
-+
-+static struct fb_fix_screeninfo st7735fb_fix __devinitdata = {
-+	.id =		"ST7735", 
-+	.type =		FB_TYPE_PACKED_PIXELS,
-+	.visual =	FB_VISUAL_PSEUDOCOLOR,
-+	.xpanstep =	0,
-+	.ypanstep =	0,
-+	.ywrapstep =	0, 
-+	.line_length =	WIDTH*BPP/8,
-+	.accel =	FB_ACCEL_NONE,
-+};
-+
-+static struct fb_var_screeninfo st7735fb_var __devinitdata = {
-+	.xres =			WIDTH,
-+	.yres =			HEIGHT,
-+	.xres_virtual =		WIDTH,
-+	.yres_virtual =		HEIGHT,
-+	.bits_per_pixel =	BPP,
-+	.nonstd	=		1,
-+};
-+
-+static int st7735_write(struct st7735fb_par *par, u8 data)
-+{
-+	u8 txbuf[2]; /* allocation from stack must go */
-+
-+	txbuf[0] = data;
-+
-+	return spi_write(par->spi, &txbuf[0], 1);
-+}
-+
-+static void st7735_write_data(struct st7735fb_par *par, u8 data)
-+{
-+	int ret = 0;
-+
-+	/* Set data mode */
-+	gpio_set_value(par->dc, 1);
-+
-+	ret = st7735_write(par, data);
-+	if (ret < 0)
-+		pr_err("%s: write data %02x failed with status %d\n",
-+			par->info->fix.id, data, ret);
-+}
-+
-+static int st7735_write_data_buf(struct st7735fb_par *par,
-+					u8 *txbuf, int size)
-+{
-+	/* Set data mode */
-+	gpio_set_value(par->dc, 1);
-+
-+	/* Write entire buffer */
-+	return spi_write(par->spi, txbuf, size);
-+}
-+
-+static void st7735_write_cmd(struct st7735fb_par *par, u8 data)
-+{
-+	int ret = 0;
-+
-+	/* Set command mode */
-+	gpio_set_value(par->dc, 0);
-+
-+	ret = st7735_write(par, data);
-+	if (ret < 0)
-+		pr_err("%s: write command %02x failed with status %d\n",
-+			par->info->fix.id, data, ret);
-+}
-+
-+static void st7735_run_cfg_script(struct st7735fb_par *par)
-+{
-+	int i = 0;
-+	int end_script = 0;
-+
-+	do {
-+		switch (st7735_cfg_script[i].cmd)
-+		{
-+		case ST7735_START:
-+			break;
-+		case ST7735_CMD:
-+			st7735_write_cmd(par,
-+				st7735_cfg_script[i].data & 0xff);
-+			break;
-+		case ST7735_DATA:
-+			st7735_write_data(par,
-+				st7735_cfg_script[i].data & 0xff);
-+			break;
-+		case ST7735_DELAY:
-+			mdelay(st7735_cfg_script[i].data);
-+			break;
-+		case ST7735_END:
-+			end_script = 1;
-+		}
-+		i++;
-+	} while (!end_script);
-+}
-+
-+static void st7735_set_addr_win(struct st7735fb_par *par,
-+				int xs, int ys, int xe, int ye)
-+{
-+	st7735_write_cmd(par, ST7735_CASET);
-+	st7735_write_data(par, 0x00);
-+	st7735_write_data(par, xs+2);
-+	st7735_write_data(par, 0x00);
-+	st7735_write_data(par, xe+2);
-+	st7735_write_cmd(par, ST7735_RASET);
-+	st7735_write_data(par, 0x00);
-+	st7735_write_data(par, ys+1);
-+	st7735_write_data(par, 0x00);
-+	st7735_write_data(par, ye+1);
-+}
-+
-+static void st7735_reset(struct st7735fb_par *par)
-+{
-+	/* Reset controller */
-+	gpio_set_value(par->rst, 0);
-+	udelay(10);
-+	gpio_set_value(par->rst, 1);
-+	mdelay(120);
-+}
-+
-+static void st7735fb_update_display(struct st7735fb_par *par)
-+{
-+	int ret = 0;
-+	u8 *vmem = par->info->screen_base;
-+
-+	/*
-+		TODO:
-+		Allow a subset of pages to be passed in
-+		(for deferred I/O).  Check pages against
-+		pan display settings to see if they
-+		should be updated.
-+	*/
-+	/* For now, just write the full 40KiB on each update */
-+
-+	/* Set row/column data window */
-+	st7735_set_addr_win(par, 0, 0, WIDTH-1, HEIGHT-1);
-+
-+	/* Internal RAM write command */
-+	st7735_write_cmd(par, ST7735_RAMWR);
-+
-+	/* Blast framebuffer to ST7735 internal display RAM */
-+	ret = st7735_write_data_buf(par, vmem, WIDTH*HEIGHT*BPP/8);
-+	if (ret < 0)
-+		pr_err("%s: spi_write failed to update display buffer\n",
-+			par->info->fix.id);
-+}
-+
-+static void st7735fb_deferred_io(struct fb_info *info,
-+				struct list_head *pagelist)
-+{
-+	st7735fb_update_display(info->par);
-+}
-+
-+static int st7735fb_init_display(struct st7735fb_par *par)
-+{
-+	/* TODO: Need some error checking on gpios */
-+
-+        /* Request GPIOs and initialize to default values */
-+        gpio_request_one(par->rst, GPIOF_OUT_INIT_HIGH,
-+			"ST7735 Reset Pin");
-+        gpio_request_one(par->dc, GPIOF_OUT_INIT_LOW,
-+			"ST7735 Data/Command Pin");
-+
-+	st7735_reset(par);
-+
-+	st7735_run_cfg_script(par);
-+
-+	return 0;
-+}
-+
-+void st7735fb_fillrect(struct fb_info *info, const struct fb_fillrect *rect)
-+{
-+	struct st7735fb_par *par = info->par;
-+
-+	sys_fillrect(info, rect);
-+
-+	st7735fb_update_display(par);
-+}
-+
-+void st7735fb_copyarea(struct fb_info *info, const struct fb_copyarea *area) 
-+{
-+	struct st7735fb_par *par = info->par;
-+
-+	sys_copyarea(info, area);
-+
-+	st7735fb_update_display(par);
-+}
-+
-+void st7735fb_imageblit(struct fb_info *info, const struct fb_image *image) 
-+{
-+	struct st7735fb_par *par = info->par;
-+
-+	sys_imageblit(info, image);
-+
-+	st7735fb_update_display(par);
-+}
-+
-+static ssize_t st7735fb_write(struct fb_info *info, const char __user *buf,
-+		size_t count, loff_t *ppos)
-+{
-+	struct st7735fb_par *par = info->par;
-+	unsigned long p = *ppos;
-+	void *dst;
-+	int err = 0;
-+	unsigned long total_size;
-+
-+	if (info->state != FBINFO_STATE_RUNNING)
-+		return -EPERM;
-+
-+	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;
-+	}
-+
-+	dst = (void __force *) (info->screen_base + p);
-+
-+	if (copy_from_user(dst, buf, count))
-+		err = -EFAULT;
-+
-+	if  (!err)
-+		*ppos += count;
-+
-+	st7735fb_update_display(par);
-+
-+	return (err) ? err : count;
-+}
-+
-+static struct fb_ops st7735fb_ops = {
-+	.owner		= THIS_MODULE,
-+	.fb_read	= fb_sys_read,
-+	.fb_write	= st7735fb_write,
-+	.fb_fillrect	= st7735fb_fillrect,
-+	.fb_copyarea	= st7735fb_copyarea,
-+	.fb_imageblit	= st7735fb_imageblit,
-+};
-+
-+static struct fb_deferred_io st7735fb_defio = {
-+	.delay		= HZ,
-+	.deferred_io	= st7735fb_deferred_io,
-+};
-+
-+static int __devinit st7735fb_probe (struct spi_device *spi)
-+{
-+	int chip = spi_get_device_id(spi)->driver_data;
-+	struct st7735fb_platform_data *pdata = spi->dev.platform_data;
-+	int vmem_size = WIDTH*HEIGHT*BPP/8;
-+	u8 *vmem;
-+	struct fb_info *info;
-+	struct st7735fb_par *par;
-+	int retval = -ENOMEM;
-+
-+	if (chip != ST7735_DISPLAY_AF_TFT18) {
-+		pr_err("%s: only the %s device is supported\n", DRVNAME,
-+			to_spi_driver(spi->dev.driver)->id_table->name);
-+		return -EINVAL;
-+	}
-+
-+	if (!pdata) {
-+		pr_err("%s: platform data required for rst and dc info\n",
-+			DRVNAME);
-+		return -EINVAL;
-+	}
-+
-+	vmem = vzalloc(vmem_size);
-+	if (!vmem)
-+		return retval;
-+
-+	info = framebuffer_alloc(sizeof(struct st7735fb_par), &spi->dev);
-+	if (!info)
-+		goto fballoc_fail;
-+
-+	info->screen_base = (u8 __force __iomem *)vmem;
-+	info->fbops = &st7735fb_ops;
-+	info->fix = st7735fb_fix;
-+	info->fix.smem_len = vmem_size;
-+	info->var = st7735fb_var;
-+	/* Choose any packed pixel format as long as it's RGB565 */
-+	info->var.red.offset = 11;
-+	info->var.red.length = 5;
-+	info->var.green.offset = 5;
-+	info->var.green.length = 6;
-+	info->var.blue.offset = 0;
-+	info->var.blue.length = 5;
-+	info->var.transp.offset = 0;
-+	info->var.transp.length = 0;
-+	info->flags = FBINFO_FLAG_DEFAULT |
-+#ifdef __LITTLE_ENDIAN
-+			FBINFO_FOREIGN_ENDIAN |
-+#endif
-+			FBINFO_VIRTFB;
-+
-+	info->fbdefio = &st7735fb_defio;
-+	fb_deferred_io_init(info);
-+
-+	par = info->par;
-+	par->info = info;
-+	par->spi = spi;
-+	par->rst = pdata->rst_gpio;
-+	par->dc = pdata->dc_gpio;
-+
-+	retval = register_framebuffer(info);
-+	if (retval < 0)
-+		goto fbreg_fail;
-+
-+	spi_set_drvdata(spi, info);
-+
-+	retval = st7735fb_init_display(par);
-+	if (retval < 0)
-+		goto init_fail;
-+
-+	printk(KERN_INFO
-+		"fb%d: %s frame buffer device,\n\tusing %d KiB of video memory\n",
-+		info->node, info->fix.id, vmem_size);
-+
-+	return 0;
-+
-+
-+	/* TODO: release gpios on fail */
-+init_fail:
-+	spi_set_drvdata(spi, NULL);
-+
-+fbreg_fail:
-+	framebuffer_release(info);
-+
-+fballoc_fail:
-+	vfree(vmem);
-+
-+	return retval;
-+}
-+
-+static int __devexit st7735fb_remove(struct spi_device *spi)
-+{
-+	struct fb_info *info = spi_get_drvdata(spi);
-+
-+	spi_set_drvdata(spi, NULL);
-+
-+	if (info) {
-+		unregister_framebuffer(info);
-+		vfree(info->screen_base);	
-+		framebuffer_release(info);
-+	}
-+
-+	/* TODO: release gpios */
-+
-+	return 0;
-+}
-+
-+static const struct spi_device_id st7735fb_ids[] = {
-+	{ "adafruit_tft18", ST7735_DISPLAY_AF_TFT18 },
-+	{ },
-+};
-+
-+MODULE_DEVICE_TABLE(spi, st7735fb_ids);
-+
-+static struct spi_driver st7735fb_driver = {
-+	.driver = {
-+		.name   = "st7735fb",
-+		.owner  = THIS_MODULE,
-+	},
-+	.id_table = st7735fb_ids,
-+	.probe  = st7735fb_probe,
-+	.remove = __devexit_p(st7735fb_remove),
-+};
-+
-+static int __init st7735fb_init(void)
-+{
-+	return spi_register_driver(&st7735fb_driver);
-+}
-+
-+static void __exit st7735fb_exit(void)
-+{
-+	spi_unregister_driver(&st7735fb_driver);
-+}
-+
-+/* ------------------------------------------------------------------------- */
-+
-+module_init(st7735fb_init);
-+module_exit(st7735fb_exit);
-+
-+MODULE_DESCRIPTION("FB driver for ST7735 display controller");
-+MODULE_AUTHOR("Matt Porter");
-+MODULE_LICENSE("GPL");
-diff --git a/include/video/st7735fb.h b/include/video/st7735fb.h
-new file mode 100644
-index 0000000..250f036
---- /dev/null
-+++ b/include/video/st7735fb.h
-@@ -0,0 +1,86 @@
-+/*
-+ * linux/include/video/st7735fb.h -- FB driver for ST7735 LCD controller
-+ *
-+ * Copyright (C) 2011, Matt Porter
-+ *
-+ * 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 DRVNAME		"st7735fb"
-+#define WIDTH		128
-+#define HEIGHT		160
-+#define BPP		16
-+
-+/* Supported display modules */
-+#define ST7735_DISPLAY_AF_TFT18		0	/* Adafruit SPI TFT 1.8" */
-+
-+/* Init script function */
-+struct st7735_function {
-+	u16 cmd;
-+	u16 data;
-+};
-+
-+/* Init script commands */
-+enum st7735_cmd {
-+	ST7735_START,
-+	ST7735_END,
-+	ST7735_CMD,
-+	ST7735_DATA,
-+	ST7735_DELAY
-+};
-+
-+struct st7735fb_par {
-+	struct spi_device *spi;
-+	struct fb_info *info;
-+	int rst;
-+	int dc;
-+};
-+
-+struct st7735fb_platform_data {
-+	int rst_gpio;
-+	int dc_gpio;
-+};
-+
-+/* ST7735 Commands */
-+#define ST7735_NOP	0x0
-+#define ST7735_SWRESET	0x01
-+#define ST7735_RDDID	0x04
-+#define ST7735_RDDST	0x09
-+#define ST7735_SLPIN	0x10
-+#define ST7735_SLPOUT	0x11
-+#define ST7735_PTLON	0x12
-+#define ST7735_NORON	0x13
-+#define ST7735_INVOFF	0x20
-+#define ST7735_INVON	0x21
-+#define ST7735_DISPOFF	0x28
-+#define ST7735_DISPON	0x29
-+#define ST7735_CASET	0x2A
-+#define ST7735_RASET	0x2B
-+#define ST7735_RAMWR	0x2C
-+#define ST7735_RAMRD	0x2E
-+#define ST7735_COLMOD	0x3A
-+#define ST7735_MADCTL	0x36
-+#define ST7735_FRMCTR1	0xB1
-+#define ST7735_FRMCTR2	0xB2
-+#define ST7735_FRMCTR3	0xB3
-+#define ST7735_INVCTR	0xB4
-+#define ST7735_DISSET5	0xB6
-+#define ST7735_PWCTR1	0xC0
-+#define ST7735_PWCTR2	0xC1
-+#define ST7735_PWCTR3	0xC2
-+#define ST7735_PWCTR4	0xC3
-+#define ST7735_PWCTR5	0xC4
-+#define ST7735_VMCTR1	0xC5
-+#define ST7735_RDID1	0xDA
-+#define ST7735_RDID2	0xDB
-+#define ST7735_RDID3	0xDC
-+#define ST7735_RDID4	0xDD
-+#define ST7735_GMCTRP1	0xE0
-+#define ST7735_GMCTRN1	0xE1
-+#define ST7735_PWCTR6	0xFC
-+
-+
-+
-+
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0019-beaglebone-use-P8_6-gpio1_3-as-w1-bus.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0019-beaglebone-use-P8_6-gpio1_3-as-w1-bus.patch
deleted file mode 100644
index 6751e96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0019-beaglebone-use-P8_6-gpio1_3-as-w1-bus.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 1fcc4aabf4fa4ffe4ebfbfe4adbce3913389a0a0 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 7 Feb 2012 11:01:13 +0100
-Subject: [PATCH 19/79] beaglebone: use P8_6 (gpio1_3) as w1 bus
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   31 +++++++++++++++++++++++++++++++
- 1 file changed, 31 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 97b069f..3ba4bbc 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -39,6 +39,7 @@
- #include <linux/reboot.h>
- #include <linux/pwm/pwm.h>
- #include <linux/opp.h>
-+#include <linux/w1-gpio.h>
- 
- /* LCD controller is similar to DA850 */
- #include <video/da8xx-fb.h>
-@@ -617,6 +618,11 @@ static struct pinmux_config bbtoys7_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+static struct pinmux_config w1_gpio_pin_mux[] = {
-+	{"gpmc_ad3.gpio1_3",	OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
-+	{NULL, 0},
-+};
-+
- static struct pinmux_config tsc_pin_mux[] = {
- 	{"ain0.ain0",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
- 	{"ain1.ain1",           OMAP_MUX_MODE0 | AM33XX_INPUT_EN},
-@@ -1040,6 +1046,19 @@ static struct pinmux_config profibus_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+#define BEAGLEBONE_W1_GPIO GPIO_TO_PIN(1, 3)
-+
-+static struct w1_gpio_platform_data bone_w1_gpio_pdata = {
-+	.pin		= BEAGLEBONE_W1_GPIO,
-+	.is_open_drain	= 0,
-+};
-+
-+static struct platform_device bone_w1_device = {
-+	.name			= "w1-gpio",
-+	.id			= -1,
-+	.dev.platform_data	= &bone_w1_gpio_pdata,
-+};
-+
- /* LEDS - gpio1_21 -> gpio1_24 */
- 
- #define BEAGLEBONE_USR1_LED  GPIO_TO_PIN(1, 21)
-@@ -1377,6 +1396,17 @@ static void dvileds_init(int evm_id, int profile )
- 		pr_err("failed to register BeagleBone DVI cape LEDS\n");
- }
- 
-+static void bonew1_gpio_init(int evm_id, int profile )
-+{
-+	int err;
-+	setup_pin_mux(w1_gpio_pin_mux);
-+	err = platform_device_register(&bone_w1_device);
-+	if (err)
-+		pr_err("failed to register w1-gpio\n");
-+	else
-+		pr_info("w1-gpio connected to P8_6\n");
-+}
-+
- static void rgmii1_init(int evm_id, int profile)
- {
- 	setup_pin_mux(rgmii1_pin_mux);
-@@ -2322,6 +2352,7 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
-+	{bonew1_gpio_init, DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0020-beaglebone-add-support-for-Towertech-TT3201-CAN-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0020-beaglebone-add-support-for-Towertech-TT3201-CAN-cape.patch
deleted file mode 100644
index 1a63942..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0020-beaglebone-add-support-for-Towertech-TT3201-CAN-cape.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From c57ec6cbf0fc195c3253b9db23dab08554377cd5 Mon Sep 17 00:00:00 2001
-From: Alessandro Zummo <a.zummo at towertech.it>
-Date: Thu, 9 Feb 2012 12:46:52 +0100
-Subject: [PATCH 20/79] beaglebone: add support for Towertech TT3201 CAN cape
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   54 ++++++++++++++++++++++++++++++++-
- arch/arm/mach-omap2/mux33xx.c         |    8 ++---
- drivers/net/can/dev.c                 |    8 ++---
- drivers/net/can/mcp251x.c             |   47 ++++++++++++++++++++++------
- 4 files changed, 98 insertions(+), 19 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 3ba4bbc..a8dfcdf 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -40,6 +40,7 @@
- #include <linux/pwm/pwm.h>
- #include <linux/opp.h>
- #include <linux/w1-gpio.h>
-+#include <linux/can/platform/mcp251x.h>
- 
- /* LCD controller is similar to DA850 */
- #include <video/da8xx-fb.h>
-@@ -843,6 +844,15 @@ static struct pinmux_config d_can_ia_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+static struct pinmux_config tt3201_pin_mux[] = {
-+	{"uart1_rxd.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT },
-+	{"uart1_txd.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP },
-+	{"mcasp0_fsr.gpio3_19", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP },
-+	{"mcasp0_ahclkx.gpio3_21", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP },
-+	{"ecap0_in_pwm0_out.spi1_cs1", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT_PULLUP },
-+	{NULL, 0},
-+};
-+
- /* Module pin mux for uart2 */
- static struct pinmux_config uart2_pin_mux[] = {
- 	{"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_SLEWCTRL_SLOW |
-@@ -1852,6 +1862,44 @@ static void i2c1_init(int evm_id, int profile)
- 	return;
- }
- 
-+static struct mcp251x_platform_data mcp251x_info = {
-+	.oscillator_frequency = 16000000,
-+};
-+
-+static struct spi_board_info tt3201_spi_info[] = {
-+	{
-+		.modalias	= "mcp2515",
-+		.max_speed_hz	= 10000000,
-+		.bus_num	= 2,
-+		.chip_select	= 0,
-+		.mode		= SPI_MODE_0,
-+		.platform_data	= &mcp251x_info,
-+	},
-+	{
-+		.modalias	= "mcp2515",
-+		.max_speed_hz	= 10000000,
-+		.bus_num	= 2,
-+		.chip_select	= 1,
-+		.mode		= SPI_MODE_0,
-+		.platform_data	= &mcp251x_info,
-+	},
-+};
-+
-+static void tt3201_init(int evm_id, int profile)
-+{
-+	pr_info("TowerTech TT3201 CAN Cape\n");
-+
-+	setup_pin_mux(spi1_pin_mux);
-+	setup_pin_mux(tt3201_pin_mux);
-+
-+	tt3201_spi_info[0].irq = gpio_to_irq(GPIO_TO_PIN(3, 19));
-+	tt3201_spi_info[1].irq = gpio_to_irq(GPIO_TO_PIN(3, 21));
-+
-+	spi_register_board_info(tt3201_spi_info,
-+		ARRAY_SIZE(tt3201_spi_info));
-+
-+	am33xx_d_can_init(1);
-+}
- static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
- {
- 	capecount++;
-@@ -1899,7 +1947,11 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_tsadcpins_free = 0;
- 	}
- 	
--	
-+	if (!strncmp("TT3201-001", cape_config.partnumber, 10)) {
-+		pr_info("BeagleBone cape: initializing CAN cape\n");
-+		tt3201_init(0,0);
-+	}
-+
- 	if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
- 		pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
- 		bone_tsc_init(0,0);
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 0f71646..25dcedb 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -312,16 +312,16 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 		"uart0_txd", "spi1_cs1", "d_can0_rx", "i2c2_scl",
- 		NULL, NULL, NULL, "gpio1_11"),
- 	_AM33XX_MUXENTRY(UART1_CTSN, 0,
--		"uart1_ctsn", NULL, NULL, "i2c2_sda",
-+		"uart1_ctsn", NULL, "d_can0_tx", "i2c2_sda",
- 		"spi1_cs0", NULL, NULL, "gpio0_12"),
- 	_AM33XX_MUXENTRY(UART1_RTSN, 0,
--		"uart1_rtsn", NULL, NULL, "i2c2_scl",
-+		"uart1_rtsn", NULL, "d_can0_rx", "i2c2_scl",
- 		"spi1_cs1", NULL, NULL, "gpio0_13"),
- 	_AM33XX_MUXENTRY(UART1_RXD, 0,
--		"uart1_rxd", "mmc1_sdwp", NULL, "i2c1_sda",
-+		"uart1_rxd", "mmc1_sdwp", "d_can1_tx", "i2c1_sda",
- 		NULL, "pr1_uart0_rxd_mux1", NULL, "gpio0_14"),
- 	_AM33XX_MUXENTRY(UART1_TXD, 0,
--		"uart1_txd", "mmc2_sdwp", NULL, "i2c1_scl",
-+		"uart1_txd", "mmc2_sdwp", "d_can1_rx", "i2c1_scl",
- 		NULL, "pr1_uart0_txd_mux1", NULL, "gpio0_15"),
- 	_AM33XX_MUXENTRY(I2C0_SDA, 0,
- 		"i2c0_sda", NULL, NULL, NULL,
-diff --git a/drivers/net/can/dev.c b/drivers/net/can/dev.c
-index 25695bd..bc1e87e 100644
---- a/drivers/net/can/dev.c
-+++ b/drivers/net/can/dev.c
-@@ -392,7 +392,7 @@ void can_restart(unsigned long data)
- 	stats->rx_bytes += cf->can_dlc;
- 
- restart:
--	dev_dbg(dev->dev.parent, "restarted\n");
-+	netdev_dbg(dev, "restarted\n");
- 	priv->can_stats.restarts++;
- 
- 	/* Now restart the device */
-@@ -400,7 +400,7 @@ restart:
- 
- 	netif_carrier_on(dev);
- 	if (err)
--		dev_err(dev->dev.parent, "Error %d during restart", err);
-+		netdev_err(dev, "error %d during restart", err);
- }
- 
- int can_restart_now(struct net_device *dev)
-@@ -433,7 +433,7 @@ void can_bus_off(struct net_device *dev)
- {
- 	struct can_priv *priv = netdev_priv(dev);
- 
--	dev_dbg(dev->dev.parent, "bus-off\n");
-+	netdev_dbg(dev, "bus-off\n");
- 
- 	netif_carrier_off(dev);
- 	priv->can_stats.bus_off++;
-@@ -545,7 +545,7 @@ int open_candev(struct net_device *dev)
- 	struct can_priv *priv = netdev_priv(dev);
- 
- 	if (!priv->bittiming.tq && !priv->bittiming.bitrate) {
--		dev_err(dev->dev.parent, "bit-timing not yet defined\n");
-+		netdev_err(dev, "bit-timing not yet defined\n");
- 		return -EINVAL;
- 	}
- 
-diff --git a/drivers/net/can/mcp251x.c b/drivers/net/can/mcp251x.c
-index 330140e..b3e231c 100644
---- a/drivers/net/can/mcp251x.c
-+++ b/drivers/net/can/mcp251x.c
-@@ -93,8 +93,9 @@
- #  define CANCTRL_REQOP_LOOPBACK    0x40
- #  define CANCTRL_REQOP_SLEEP	    0x20
- #  define CANCTRL_REQOP_NORMAL	    0x00
--#  define CANCTRL_OSM		    0x08
- #  define CANCTRL_ABAT		    0x10
-+#  define CANCTRL_OSM		    0x08
-+#  define CANCTRL_CLKEN		    0x04
- #define TEC	      0x1c
- #define REC	      0x1d
- #define CNF1	      0x2a
-@@ -287,7 +288,7 @@ static void mcp251x_clean(struct net_device *net)
- /*
-  * Note about handling of error return of mcp251x_spi_trans: accessing
-  * registers via SPI is not really different conceptually than using
-- * normal I/O assembler instructions, although it's much more
-+ * normal I/O assembly instructions, although it's much more
-  * complicated from a practical POV. So it's not advisable to always
-  * check the return value of this function. Imagine that every
-  * read{b,l}, write{b,l} and friends would be bracketed in "if ( < 0)
-@@ -490,7 +491,7 @@ static void mcp251x_hw_rx(struct spi_device *spi, int buf_idx)
- 
- static void mcp251x_hw_sleep(struct spi_device *spi)
- {
--	mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_SLEEP);
-+//	mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_SLEEP);
- }
- 
- static netdev_tx_t mcp251x_hard_start_xmit(struct sk_buff *skb,
-@@ -547,13 +548,16 @@ static int mcp251x_set_normal_mode(struct spi_device *spi)
- 
- 	if (priv->can.ctrlmode & CAN_CTRLMODE_LOOPBACK) {
- 		/* Put device into loopback mode */
--		mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_LOOPBACK);
-+		mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_LOOPBACK | CANCTRL_CLKEN);
- 	} else if (priv->can.ctrlmode & CAN_CTRLMODE_LISTENONLY) {
- 		/* Put device into listen-only mode */
--		mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_LISTEN_ONLY);
-+		mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_LISTEN_ONLY | CANCTRL_CLKEN);
- 	} else {
- 		/* Put device into normal mode */
--		mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_NORMAL);
-+		mcp251x_write_reg(spi, CANCTRL, CANCTRL_REQOP_NORMAL | CANCTRL_CLKEN);
-+
-+                netdev_info(priv->net, "CANCTRL: 0x%02x\n",
-+                  mcp251x_read_reg(spi, CANCTRL));
- 
- 		/* Wait for the device to enter normal mode */
- 		timeout = jiffies + HZ;
-@@ -585,11 +589,15 @@ static int mcp251x_do_set_bittiming(struct net_device *net)
- 			  (bt->prop_seg - 1));
- 	mcp251x_write_bits(spi, CNF3, CNF3_PHSEG2_MASK,
- 			   (bt->phase_seg2 - 1));
--	dev_info(&spi->dev, "CNF: 0x%02x 0x%02x 0x%02x\n",
-+
-+	netdev_info(net, "CNF: 0x%02x 0x%02x 0x%02x\n",
- 		 mcp251x_read_reg(spi, CNF1),
- 		 mcp251x_read_reg(spi, CNF2),
- 		 mcp251x_read_reg(spi, CNF3));
- 
-+	netdev_info(net, "CANCTRL: 0x%02x\n",
-+		 mcp251x_read_reg(spi, CANCTRL));
-+
- 	return 0;
- }
- 
-@@ -600,6 +608,7 @@ static int mcp251x_setup(struct net_device *net, struct mcp251x_priv *priv,
- 
- 	mcp251x_write_reg(spi, RXBCTRL(0),
- 			  RXBCTRL_BUKT | RXBCTRL_RXM0 | RXBCTRL_RXM1);
-+
- 	mcp251x_write_reg(spi, RXBCTRL(1),
- 			  RXBCTRL_RXM0 | RXBCTRL_RXM1);
- 	return 0;
-@@ -728,7 +737,9 @@ static void mcp251x_tx_work_handler(struct work_struct *ws)
- 	mutex_lock(&priv->mcp_lock);
- 	if (priv->tx_skb) {
- 		if (priv->can.state == CAN_STATE_BUS_OFF) {
-+
- 			mcp251x_clean(net);
-+
- 		} else {
- 			frame = (struct can_frame *)priv->tx_skb->data;
- 
-@@ -827,21 +838,37 @@ static irqreturn_t mcp251x_can_ist(int irq, void *dev_id)
- 
- 		/* Update can state */
- 		if (eflag & EFLG_TXBO) {
-+
-+		        netdev_err(net, "err: bus off\n");
-+
- 			new_state = CAN_STATE_BUS_OFF;
- 			can_id |= CAN_ERR_BUSOFF;
- 		} else if (eflag & EFLG_TXEP) {
-+
-+		        netdev_err(net, "err: txep\n");
-+
- 			new_state = CAN_STATE_ERROR_PASSIVE;
- 			can_id |= CAN_ERR_CRTL;
- 			data1 |= CAN_ERR_CRTL_TX_PASSIVE;
-+
- 		} else if (eflag & EFLG_RXEP) {
-+
-+		        netdev_err(net, "err: rxep\n");
-+
- 			new_state = CAN_STATE_ERROR_PASSIVE;
- 			can_id |= CAN_ERR_CRTL;
- 			data1 |= CAN_ERR_CRTL_RX_PASSIVE;
- 		} else if (eflag & EFLG_TXWAR) {
-+
-+		        netdev_err(net, "err: txwar\n");
-+
- 			new_state = CAN_STATE_ERROR_WARNING;
- 			can_id |= CAN_ERR_CRTL;
- 			data1 |= CAN_ERR_CRTL_TX_WARNING;
- 		} else if (eflag & EFLG_RXWAR) {
-+
-+		        netdev_err(net, "err: rxwar\n");
-+
- 			new_state = CAN_STATE_ERROR_WARNING;
- 			can_id |= CAN_ERR_CRTL;
- 			data1 |= CAN_ERR_CRTL_RX_WARNING;
-@@ -918,7 +945,7 @@ static int mcp251x_open(struct net_device *net)
- 
- 	ret = open_candev(net);
- 	if (ret) {
--		dev_err(&spi->dev, "unable to set initial baudrate!\n");
-+		netdev_err(net, "failed to open can device\n");
- 		return ret;
- 	}
- 
-@@ -934,7 +961,7 @@ static int mcp251x_open(struct net_device *net)
- 		  pdata->irq_flags ? pdata->irq_flags : IRQF_TRIGGER_FALLING,
- 		  DEVICE_NAME, priv);
- 	if (ret) {
--		dev_err(&spi->dev, "failed to acquire irq %d\n", spi->irq);
-+		netdev_err(net, "failed to acquire irq %d\n", spi->irq);
- 		if (pdata->transceiver_enable)
- 			pdata->transceiver_enable(0);
- 		close_candev(net);
-@@ -1071,7 +1098,7 @@ static int __devinit mcp251x_can_probe(struct spi_device *spi)
- 
- 	ret = register_candev(net);
- 	if (!ret) {
--		dev_info(&spi->dev, "probed\n");
-+		netdev_info(priv->net, "probed\n");
- 		return ret;
- 	}
- error_probe:
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0021-beaglebone-add-more-beagleboardtoys-cape-partnumbers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0021-beaglebone-add-more-beagleboardtoys-cape-partnumbers.patch
deleted file mode 100644
index 607d3c8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0021-beaglebone-add-more-beagleboardtoys-cape-partnumbers.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From 3d11cccc72d7ec50c8da319e45cafb4f02431211 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 19 Mar 2012 12:01:35 +0100
-Subject: [PATCH 21/79] beaglebone: add more beagleboardtoys cape partnumbers
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   25 ++++++++++++++++++++++++-
- 1 file changed, 24 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index a8dfcdf..f854329 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1947,11 +1947,34 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_tsadcpins_free = 0;
- 	}
- 	
-+	if (!strncmp("BB-BONE-LCD3-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing LCD cape\n");
-+		bbtoys7lcd_init(0,0);
-+		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
-+		tsc_init(0,0);
-+		beaglebone_tsadcpins_free = 0;
-+	}
-+	
-+	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing VGA cape\n");
-+		dvi_init(0,0);
-+	}
-+	
-+	if (!strncmp("BB-BONE-BATT-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing battery cape\n");
-+		//foo_init(0,0);
-+	}
-+	
-+	if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) {
-+		pr_info("BeagleBone cape: initializing serial cape\n");
-+		//foo_init(0,0);
-+	}
-+	
- 	if (!strncmp("TT3201-001", cape_config.partnumber, 10)) {
- 		pr_info("BeagleBone cape: initializing CAN cape\n");
- 		tt3201_init(0,0);
- 	}
--
-+	
- 	if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
- 		pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
- 		bone_tsc_init(0,0);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0022-beaglebone-add-gpio-keys-for-lcd7-add-notes-for-miss.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0022-beaglebone-add-gpio-keys-for-lcd7-add-notes-for-miss.patch
deleted file mode 100644
index 4eaefff..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0022-beaglebone-add-gpio-keys-for-lcd7-add-notes-for-miss.patch
+++ /dev/null
@@ -1,130 +0,0 @@
-From bc8957c4a563945781b0e3c41f5a8068d88122f9 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 19 Mar 2012 13:32:43 +0100
-Subject: [PATCH 22/79] beaglebone: add gpio-keys for lcd7, add notes for
- missing functionality for other capes
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   79 +++++++++++++++++++++++++++++++++
- 1 file changed, 79 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index f854329..9e9cf5b 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -994,6 +994,73 @@ static void volume_keys_init(int evm_id, int profile)
- 		pr_err("failed to register matrix keypad (2x3) device\n");
- }
- 
-+/* pinmux for lcd7 keys */
-+static struct pinmux_config lcd7_keys_pin_mux[] = {
-+	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{NULL, 0},
-+};
-+
-+/* Configure GPIOs for lcd7 keys */
-+static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
-+	{
-+		.code                   = KEY_LEFT,
-+		.gpio                   = GPIO_TO_PIN(1, 16),
-+		.active_low             = false,
-+		.desc                   = "left",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_RIGHT,
-+		.gpio                   = GPIO_TO_PIN(1, 17),
-+		.active_low             = false,
-+		.desc                   = "right",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_UP,
-+		.gpio                   = GPIO_TO_PIN(1, 19),
-+		.active_low             = false,
-+		.desc                   = "up",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_DOWN,
-+		.gpio                   = GPIO_TO_PIN(3, 16),
-+		.active_low             = false,
-+		.desc                   = "down",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+};
-+
-+static struct gpio_keys_platform_data beaglebone_lcd7_gpio_key_info = {
-+	.buttons        = beaglebone_lcd7_gpio_keys,
-+	.nbuttons       = ARRAY_SIZE(beaglebone_lcd7_gpio_keys),
-+};
-+
-+static struct platform_device beaglebone_lcd7_keys = {
-+	.name   = "gpio-keys",
-+	.id     = -1,
-+	.dev    = {
-+		.platform_data  = &beaglebone_lcd7_gpio_key_info,
-+	},
-+};
-+
-+static void beaglebone_lcd7_keys_init(int evm_id, int profile)
-+{
-+	int err;
-+	setup_pin_mux(lcd7_keys_pin_mux);
-+	err = platform_device_register(&beaglebone_lcd7_keys);
-+	if (err)
-+		pr_err("failed to register gpio keys for LCD7 cape\n");
-+}
-+
- /*
- * @evm_id - evm id which needs to be configured
- * @dev_cfg - single evm structure which includes
-@@ -1945,6 +2012,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: Registering PWM backlight for LCD cape\n");
- 		enable_ehrpwm1(0,0);
- 		beaglebone_tsadcpins_free = 0;
-+		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
-+		beaglebone_lcd7_keys_init(0,0);
- 	}
- 	
- 	if (!strncmp("BB-BONE-LCD3-01", cape_config.partnumber, 15)) {
-@@ -1953,6 +2022,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
- 		tsc_init(0,0);
- 		beaglebone_tsadcpins_free = 0;
-+		// gpio1_16 -> button
-+		// gpio1_17 -> button
-+		// gpio3_19 -> button
-+		// gpio1_28 -> button
- 	}
- 	
- 	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 15)) {
-@@ -1962,11 +2035,17 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	
- 	if (!strncmp("BB-BONE-BATT-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing battery cape\n");
-+		// gpio1_6, P9_15 lowbat output
-+		// AIN4, P9_33 vbat
- 		//foo_init(0,0);
- 	}
- 	
- 	if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) {
- 		pr_info("BeagleBone cape: initializing serial cape\n");
-+		// 01 -> CAN
-+		// 02 -> Profibus
-+		// 03 -> RS232
-+		// 04 -> RS485
- 		//foo_init(0,0);
- 	}
- 	
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0023-beaglebone-add-enter-key-for-lcd7-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0023-beaglebone-add-enter-key-for-lcd7-cape.patch
deleted file mode 100644
index 25a73d4..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0023-beaglebone-add-enter-key-for-lcd7-cape.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From 1fb7daa57c2079ec42cff0d26336e430fad7946f Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 19 Mar 2012 14:26:37 +0100
-Subject: [PATCH 23/79] beaglebone: add enter key for lcd7 cape
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 9e9cf5b..8c78eb5 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1000,6 +1000,7 @@ static struct pinmux_config lcd7_keys_pin_mux[] = {
- 	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
- 	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
- 	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"mcasp0_fsr.gpio3_19",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
- 	{NULL, 0},
- };
- 
-@@ -1037,6 +1038,14 @@ static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
- 	},
-+	{
-+		.code                   = KEY_ENTER,
-+		.gpio                   = GPIO_TO_PIN(3, 19),
-+		.active_low             = false,
-+		.desc                   = "enter",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
- };
- 
- static struct gpio_keys_platform_data beaglebone_lcd7_gpio_key_info = {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0024-beaglebone-add-gpio-keys-for-lcd.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0024-beaglebone-add-gpio-keys-for-lcd.patch
deleted file mode 100644
index 49ef146..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0024-beaglebone-add-gpio-keys-for-lcd.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 5bc55512fb72b331c09769036da6b754430fd399 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 19 Mar 2012 15:15:06 +0100
-Subject: [PATCH 24/79] beaglebone: add gpio-keys for lcd
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   82 +++++++++++++++++++++++++++++++--
- 1 file changed, 78 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 8c78eb5..5266f78 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1070,6 +1070,82 @@ static void beaglebone_lcd7_keys_init(int evm_id, int profile)
- 		pr_err("failed to register gpio keys for LCD7 cape\n");
- }
- 
-+/* pinmux for lcd3 keys */
-+static struct pinmux_config lcd3_keys_pin_mux[] = {
-+	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"mcasp0_fsr.gpio3_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_ben1.gpio1_28",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"ecap0_in_pwm0_out.gpio0_7",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{NULL, 0},
-+};
-+
-+/* Configure GPIOs for lcd3 keys */
-+static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
-+	{
-+		.code                   = KEY_LEFT,
-+		.gpio                   = GPIO_TO_PIN(1, 16),
-+		.active_low             = false,
-+		.desc                   = "left",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_RIGHT,
-+		.gpio                   = GPIO_TO_PIN(1, 17),
-+		.active_low             = false,
-+		.desc                   = "right",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_UP,
-+		.gpio                   = GPIO_TO_PIN(3, 19),
-+		.active_low             = false,
-+		.desc                   = "up",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_DOWN,
-+		.gpio                   = GPIO_TO_PIN(1, 28),
-+		.active_low             = false,
-+		.desc                   = "down",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_ENTER,
-+		.gpio                   = GPIO_TO_PIN(0, 7),
-+		.active_low             = false,
-+		.desc                   = "down",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+};
-+
-+static struct gpio_keys_platform_data beaglebone_lcd3_gpio_key_info = {
-+	.buttons        = beaglebone_lcd3_gpio_keys,
-+	.nbuttons       = ARRAY_SIZE(beaglebone_lcd3_gpio_keys),
-+};
-+
-+static struct platform_device beaglebone_lcd3_keys = {
-+	.name   = "gpio-keys",
-+	.id     = -1,
-+	.dev    = {
-+		.platform_data  = &beaglebone_lcd3_gpio_key_info,
-+	},
-+};
-+
-+static void beaglebone_lcd3_keys_init(int evm_id, int profile)
-+{
-+	int err;
-+	setup_pin_mux(lcd3_keys_pin_mux);
-+	err = platform_device_register(&beaglebone_lcd3_keys);
-+	if (err)
-+		pr_err("failed to register gpio keys for LCD3 cape\n");
-+}
-+
- /*
- * @evm_id - evm id which needs to be configured
- * @dev_cfg - single evm structure which includes
-@@ -2031,10 +2107,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
- 		tsc_init(0,0);
- 		beaglebone_tsadcpins_free = 0;
--		// gpio1_16 -> button
--		// gpio1_17 -> button
--		// gpio3_19 -> button
--		// gpio1_28 -> button
-+		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
-+		beaglebone_lcd3_keys_init(0,0);
- 	}
- 	
- 	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 15)) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0025-beaglebone-fix-direction-of-gpio-keys.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0025-beaglebone-fix-direction-of-gpio-keys.patch
deleted file mode 100644
index e0d5c0c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0025-beaglebone-fix-direction-of-gpio-keys.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From a9f029372abbaef2e9f55e2be728ae8bbc54bdaa Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 26 Mar 2012 20:28:56 +0200
-Subject: [PATCH 25/79] beaglebone: fix direction of gpio-keys
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   20 ++++++++++----------
- 1 file changed, 10 insertions(+), 10 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 5266f78..36b0c85 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1009,7 +1009,7 @@ static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
- 	{
- 		.code                   = KEY_LEFT,
- 		.gpio                   = GPIO_TO_PIN(1, 16),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "left",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1017,7 +1017,7 @@ static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
- 	{
- 		.code                   = KEY_RIGHT,
- 		.gpio                   = GPIO_TO_PIN(1, 17),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "right",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1025,7 +1025,7 @@ static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
- 	{
- 		.code                   = KEY_UP,
- 		.gpio                   = GPIO_TO_PIN(1, 19),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "up",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1033,7 +1033,7 @@ static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
- 	{
- 		.code                   = KEY_DOWN,
- 		.gpio                   = GPIO_TO_PIN(3, 16),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "down",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1041,7 +1041,7 @@ static struct gpio_keys_button beaglebone_lcd7_gpio_keys[] = {
- 	{
- 		.code                   = KEY_ENTER,
- 		.gpio                   = GPIO_TO_PIN(3, 19),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "enter",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1085,7 +1085,7 @@ static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
- 	{
- 		.code                   = KEY_LEFT,
- 		.gpio                   = GPIO_TO_PIN(1, 16),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "left",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1093,7 +1093,7 @@ static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
- 	{
- 		.code                   = KEY_RIGHT,
- 		.gpio                   = GPIO_TO_PIN(1, 17),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "right",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1101,7 +1101,7 @@ static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
- 	{
- 		.code                   = KEY_UP,
- 		.gpio                   = GPIO_TO_PIN(3, 19),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "up",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1109,7 +1109,7 @@ static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
- 	{
- 		.code                   = KEY_DOWN,
- 		.gpio                   = GPIO_TO_PIN(1, 28),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "down",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
-@@ -1117,7 +1117,7 @@ static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
- 	{
- 		.code                   = KEY_ENTER,
- 		.gpio                   = GPIO_TO_PIN(0, 7),
--		.active_low             = false,
-+		.active_low             = true,
- 		.desc                   = "down",
- 		.type                   = EV_KEY,
- 		.wakeup                 = 1,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0026-beaglebone-fix-3.5-lcd-cape-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0026-beaglebone-fix-3.5-lcd-cape-support.patch
deleted file mode 100644
index bb2f002..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0026-beaglebone-fix-3.5-lcd-cape-support.patch
+++ /dev/null
@@ -1,109 +0,0 @@
-From 6f82ce8b4cd239aa7b262e0a0b62d42545b9d21b Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 29 Feb 2012 17:25:22 +0100
-Subject: [PATCH 26/79] beaglebone: fix 3.5" lcd cape support
-
-* proper timings
-* fix gpio conflict
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   42 ++++++++++++++++++++++++++++++++-
- drivers/video/da8xx-fb.c              |   14 +++++++++++
- 2 files changed, 55 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 36b0c85..127516f 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -216,6 +216,29 @@ struct da8xx_lcdc_platform_data bbtoys7_pdata = {
- 	.type			= "TFC_S9700RTWV35TR_01B",
- };
- 
-+static struct lcd_ctrl_config bbtoys35_cfg = {
-+	&bbtoys7_panel,
-+	.ac_bias		= 255,
-+	.ac_bias_intrpt		= 0,
-+	.dma_burst_sz		= 16,
-+	.bpp			= 16,
-+	.fdd			= 0x80,
-+	.tft_alt_mode		= 0,
-+	.stn_565_mode		= 0,
-+	.mono_8bit_mode		= 0,
-+	.invert_line_clock	= 1,
-+	.invert_frm_clock	= 1,
-+	.sync_edge		= 0,
-+	.sync_ctrl		= 1,
-+	.raster_order		= 0,
-+};
-+
-+struct da8xx_lcdc_platform_data bbtoys35_pdata = {
-+	.manu_name		= "BBToys",
-+	.controller_data	= &bbtoys35_cfg,
-+	.type			= "CDTech_S035Q01",
-+};
-+
- static const struct display_panel dvi_panel = {
- 	WVGA,
- 	16,
-@@ -1488,6 +1511,23 @@ static void bbtoys7lcd_init(int evm_id, int profile)
- 	return;
- }
- 
-+static void bbtoys35lcd_init(int evm_id, int profile)
-+{
-+	setup_pin_mux(bbtoys7_pin_mux);
-+	
-+	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
-+	if (conf_disp_pll(16000000)) {
-+		pr_info("Failed to set pixclock to 16000000, not attempting to"
-+				"register LCD cape\n");
-+		return;
-+	}
-+	
-+	if (am33xx_register_lcdc(&bbtoys35_pdata))
-+		pr_info("Failed to register Beagleboardtoys 3.5\" LCD cape device\n");
-+	
-+	return;
-+}
-+
- #define BEAGLEBONEDVI_PDn  GPIO_TO_PIN(1, 7)
- 
- static void dvi_init(int evm_id, int profile)
-@@ -2103,7 +2143,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	
- 	if (!strncmp("BB-BONE-LCD3-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing LCD cape\n");
--		bbtoys7lcd_init(0,0);
-+		bbtoys35lcd_init(0,0);
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
- 		tsc_init(0,0);
- 		beaglebone_tsadcpins_free = 0;
-diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
-index b01f15b..86b19ac 100644
---- a/drivers/video/da8xx-fb.c
-+++ b/drivers/video/da8xx-fb.c
-@@ -286,6 +286,20 @@ static struct da8xx_panel known_lcd_panels[] = {
- 		.pxl_clk = 56000000,
- 		.invert_pxl_clk = 0,
- 	},
-+	[4] = {
-+		 /* CDTech S035Q01 */ 
-+		.name = "CDTech_S035Q01",
-+		.width = 320,
-+		.height = 240,
-+		.hfp = 58,
-+		.hbp = 21,
-+		.hsw = 47,
-+		.vfp = 23,
-+		.vbp = 11,
-+		.vsw = 2,
-+		.pxl_clk = 8000000,
-+		.invert_pxl_clk = 0,
-+	},	
- };
- 
- /* Enable the Raster Engine of the LCD Controller */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0027-beaglebone-decrease-PWM-frequency-to-old-value-LCD7-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0027-beaglebone-decrease-PWM-frequency-to-old-value-LCD7-.patch
deleted file mode 100644
index 05439e6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0027-beaglebone-decrease-PWM-frequency-to-old-value-LCD7-.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From b199c282abaee2188141c0885198466e8028f181 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 17 Apr 2012 11:25:00 +0200
-Subject: [PATCH 27/79] beaglebone: decrease PWM frequency to old value, LCD7
- doesn't like it
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 127516f..4d5238d 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -138,7 +138,7 @@ static const struct display_panel disp_panel = {
- /* LCD backlight platform Data */
- #define AM335X_BACKLIGHT_MAX_BRIGHTNESS        100
- #define AM335X_BACKLIGHT_DEFAULT_BRIGHTNESS    50
--#define AM335X_PWM_PERIOD_NANO_SECONDS        (5000 * 10)
-+#define AM335X_PWM_PERIOD_NANO_SECONDS        (1000000 * 5)
- 
- #define PWM_DEVICE_ID   "ecap.0"
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0028-beaglebone-fix-ehrpwm-backlight.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0028-beaglebone-fix-ehrpwm-backlight.patch
deleted file mode 100644
index 066d499..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0028-beaglebone-fix-ehrpwm-backlight.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 4456663edfc37d478da19c13683b9e58833ca997 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 17 Apr 2012 12:35:01 +0200
-Subject: [PATCH 28/79] beaglebone: fix ehrpwm backlight
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 4d5238d..24ed0b6 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1436,6 +1436,7 @@ late_initcall(ecap0_init);
- static void enable_ehrpwm1(int evm_id, int profile)
- {
- 	ehrpwm_backlight_enable = true;
-+	am33xx_register_ehrpwm(1, &pwm_pdata[1]);
- }
- 
- /* Setup pwm-backlight for bbtoys7lcd */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0029-beaglebone-also-report-cape-revision.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0029-beaglebone-also-report-cape-revision.patch
deleted file mode 100644
index 03676a6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0029-beaglebone-also-report-cape-revision.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d79d7b027fa6f411a64d65d56d0421cde619f43c Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 17 Apr 2012 12:57:38 +0200
-Subject: [PATCH 29/79] beaglebone: also report cape revision
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 24ed0b6..a4e113c 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2099,6 +2099,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	int ret;
- 	char tmp[32];
- 	char name[32];
-+	char version[4];
- 	char manufacturer[32];
- 
- 	/* get cape specific data */
-@@ -2121,8 +2122,9 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 
- 	pr_info("BeagleBone cape EEPROM: found eeprom at address 0x%x\n", capecount + 0x53);
- 	snprintf(name, sizeof(cape_config.name) + 1, "%s", cape_config.name);
-+	snprintf(version, sizeof(cape_config.version) + 1, "%s", cape_config.version);
- 	snprintf(manufacturer, sizeof(cape_config.manufacturer) + 1, "%s", cape_config.manufacturer);
--	pr_info("BeagleBone cape: %s %s\n", manufacturer, name);
-+	pr_info("BeagleBone cape: %s %s, revision %s\n", manufacturer, name, version);
- 	snprintf(tmp, sizeof(cape_config.partnumber) + 1, "%s", cape_config.partnumber);
- 	pr_info("BeagleBone cape partnumber: %s\n", tmp);   
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0030-beaglebone-don-t-compare-undefined-characters-it-mak.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0030-beaglebone-don-t-compare-undefined-characters-it-mak.patch
deleted file mode 100644
index a4409d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0030-beaglebone-don-t-compare-undefined-characters-it-mak.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From bb7bebd5eb51467ff920773cc8dd321102b8d528 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 19 Apr 2012 07:55:55 +0200
-Subject: [PATCH 30/79] beaglebone: don't compare undefined characters, it
- makes strncomp fail
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index a4e113c..f2f03b6 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2154,7 +2154,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_lcd3_keys_init(0,0);
- 	}
- 	
--	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 15)) {
-+	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 14)) {
- 		pr_info("BeagleBone cape: initializing VGA cape\n");
- 		dvi_init(0,0);
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0031-beaglebone-fix-3.5-cape-support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0031-beaglebone-fix-3.5-cape-support.patch
deleted file mode 100644
index 4a91e71..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0031-beaglebone-fix-3.5-cape-support.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From 46f31bc6d2e3c44f0591216db3151408a0d97133 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 19 Apr 2012 14:33:53 +0200
-Subject: [PATCH 31/79] beaglebone: fix 3.5" cape support
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   42 ++++++++++++++++++++++++++++++++-
- 1 file changed, 41 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index f2f03b6..3adc4ac 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -599,6 +599,46 @@ static struct pinmux_config dvi_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* Module pin mux for Beagleboardtoys 3.5" LCD cape */
-+static struct pinmux_config bbtoys35_pin_mux[] = {
-+	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-+		| AM33XX_PULL_DISA},
-+	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{NULL, 0},
-+};
- /* Module pin mux for Beagleboardtoys 7" LCD cape */
- static struct pinmux_config bbtoys7_pin_mux[] = {
- 	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-@@ -1514,7 +1554,7 @@ static void bbtoys7lcd_init(int evm_id, int profile)
- 
- static void bbtoys35lcd_init(int evm_id, int profile)
- {
--	setup_pin_mux(bbtoys7_pin_mux);
-+	setup_pin_mux(bbtoys35_pin_mux);
- 	
- 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
- 	if (conf_disp_pll(16000000)) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch
deleted file mode 100644
index 6fe7c89..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch
+++ /dev/null
@@ -1,84 +0,0 @@
-From d8f8e88b0ea9cf4e94a601d5ee2601ee8f1b6d52 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 25 Apr 2012 12:35:07 +0200
-Subject: [PATCH 32/79] beaglebone: connect batterycape GPIO to gpio-charger
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   46 ++++++++++++++++++++++++++++++++-
- 1 file changed, 45 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 3adc4ac..717bb8c 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -135,6 +135,36 @@ static const struct display_panel disp_panel = {
- 	COLOR_ACTIVE,
- };
- 
-+
-+#if defined(CONFIG_CHARGER_GPIO)
-+
-+#include <linux/power_supply.h>
-+#include <linux/power/gpio-charger.h>
-+
-+/* charger */
-+static char *beaglebone_batteries[] = {
-+	"battery",
-+};
-+
-+static struct gpio_charger_platform_data beaglebone_charger_pdata = {
-+	.name = "battery-cape",
-+	.type = POWER_SUPPLY_TYPE_BATTERY,
-+	.gpio = GPIO_TO_PIN(1,16),
-+	.gpio_active_low = 0,
-+	.supplied_to = beaglebone_batteries,
-+	.num_supplicants = ARRAY_SIZE(beaglebone_batteries),
-+};
-+
-+static struct platform_device beaglebone_charger_device = {
-+	.name = "gpio-charger",
-+	.dev = {
-+		.platform_data = &beaglebone_charger_pdata,
-+	},
-+};
-+
-+#endif /* gpio-charger */
-+
-+
- /* LCD backlight platform Data */
- #define AM335X_BACKLIGHT_MAX_BRIGHTNESS        100
- #define AM335X_BACKLIGHT_DEFAULT_BRIGHTNESS    50
-@@ -506,6 +536,13 @@ static struct pinmux_config haptics_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* Module pin mux for battery cape */
-+static struct pinmux_config batterycape_pin_mux[] = {
-+	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{NULL, 0},
-+};
-+
-+	
- /* Module pin mux for LCDC */
- static struct pinmux_config lcdc_pin_mux[] = {
- 	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-@@ -2203,7 +2240,14 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: initializing battery cape\n");
- 		// gpio1_6, P9_15 lowbat output
- 		// AIN4, P9_33 vbat
--		//foo_init(0,0);
-+		setup_pin_mux(batterycape_pin_mux);
-+		#if defined(CONFIG_CHARGER_GPIO)
-+			int err;
-+			err = platform_device_register(&beaglebone_charger_device);
-+			if (err)
-+				pr_err("failed to register BeagleBone battery cape gpio\n");
-+		
-+		#endif
- 	}
- 	
- 	if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch
deleted file mode 100644
index a4eaf50..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From f9b6989bb732e354c174da80052abbba49f238dd Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 4 May 2012 13:19:45 +0200
-Subject: [PATCH 33/79] beaglebone: add support for CAN and RS232 cape
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   36 +++++++++++++++++++++++++++------
- 1 file changed, 30 insertions(+), 6 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 717bb8c..6e7b203 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -953,6 +953,18 @@ static struct pinmux_config tt3201_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+static struct pinmux_config uart1dcan1_pin_mux[] = {
-+	{"uart1_rxd.d_can1_tx", OMAP_MUX_MODE2 | AM33XX_PIN_OUTPUT },
-+	{"uart1_txd.d_can1_rx", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP },
-+	{NULL, 0},
-+};
-+
-+static struct pinmux_config uart1_pin_mux[] = {
-+	{"uart1_txd.uart1_txd", OMAP_MUX_MODE0 | AM33XX_PULL_ENBL},
-+	{"uart1_rxd.uart1_rxd", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{NULL, 0},
-+};
-+
- /* Module pin mux for uart2 */
- static struct pinmux_config uart2_pin_mux[] = {
- 	{"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_SLEWCTRL_SLOW |
-@@ -2250,12 +2262,24 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		#endif
- 	}
- 	
--	if (!strncmp("BB-BONE-SERL", cape_config.partnumber, 12)) {
--		pr_info("BeagleBone cape: initializing serial cape\n");
--		// 01 -> CAN
--		// 02 -> Profibus
--		// 03 -> RS232
--		// 04 -> RS485
-+	if (!strncmp("BB-BONE-SERL-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing CAN cape\n");
-+		setup_pin_mux(uart1dcan1_pin_mux);
-+		am33xx_d_can_init(1);
-+	}
-+		if (!strncmp("BB-BONE-SERL-02", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: not initializing Profibus cape\n");
-+		// gpio1_0
-+		// gpio1_4
-+		//foo_init(0,0);
-+	}
-+		if (!strncmp("BB-BONE-SERL-03", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing RS232 cape\n");
-+		pr_info("BeagleBone cape: only uart1 is supported!\n");
-+		setup_pin_mux(uart1_pin_mux);
-+	}
-+		if (!strncmp("BB-BONE-SERL-04", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: not initializing RS485 cape\n");
- 		//foo_init(0,0);
- 	}
- 	
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch
deleted file mode 100644
index 6eceb51..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch
+++ /dev/null
@@ -1,242 +0,0 @@
-From 79504e3e113ac68335eb899322a56f3a72462b08 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 19 Apr 2012 14:23:06 +0200
-Subject: [PATCH 34/79] beaglebone: add support for DVI rev. A2 capes
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |  150 ++++++++-------------------------
- 1 file changed, 35 insertions(+), 115 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 6e7b203..e02c0b6 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -545,38 +545,6 @@ static struct pinmux_config batterycape_pin_mux[] = {
- 	
- /* Module pin mux for LCDC */
- static struct pinmux_config lcdc_pin_mux[] = {
--	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
--	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--						       | AM33XX_PULL_DISA},
- 	{"gpmc_ad8.lcd_data16",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
- 	{"gpmc_ad9.lcd_data17",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
- 	{"gpmc_ad10.lcd_data18",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-@@ -585,15 +553,11 @@ static struct pinmux_config lcdc_pin_mux[] = {
- 	{"gpmc_ad13.lcd_data21",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
- 	{"gpmc_ad14.lcd_data22",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
- 	{"gpmc_ad15.lcd_data23",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{NULL, 0},
- };
- 
--/* Module pin mux for Beagleboardtoys DVI cape */
--static struct pinmux_config dvi_pin_mux[] = {
-+
-+static struct pinmux_config lcdc16_pin_mux[] = {
- 	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-         | AM33XX_PULL_DISA},
- 	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
-@@ -630,90 +594,31 @@ static struct pinmux_config dvi_pin_mux[] = {
- 	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
-+	{NULL, 0},
-+};
-+
-+
-+/* Module pin mux for Beagleboardtoys DVI cape */
-+static struct pinmux_config dvia1_pin_mux[] = {
- 	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
- 	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
- 	{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
- 	{NULL, 0},
- };
- 
-+static struct pinmux_config dvia2_pin_mux[] = {
-+	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
-+	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
-+	{"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
-+	{NULL, 0},
-+};
-+
- /* Module pin mux for Beagleboardtoys 3.5" LCD cape */
- static struct pinmux_config bbtoys35_pin_mux[] = {
--	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{NULL, 0},
- };
- /* Module pin mux for Beagleboardtoys 7" LCD cape */
- static struct pinmux_config bbtoys7_pin_mux[] = {
--	{"lcd_data0.lcd_data0",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data1.lcd_data1",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data2.lcd_data2",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data3.lcd_data3",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data4.lcd_data4",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data5.lcd_data5",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data6.lcd_data6",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data7.lcd_data7",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data8.lcd_data8",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data9.lcd_data9",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data10.lcd_data10",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data11.lcd_data11",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data12.lcd_data12",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data13.lcd_data13",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data14.lcd_data14",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_data15.lcd_data15",	OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT
--		| AM33XX_PULL_DISA},
--	{"lcd_vsync.lcd_vsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_hsync.lcd_hsync",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_pclk.lcd_pclk",		OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
--	{"lcd_ac_bias_en.lcd_ac_bias_en", OMAP_MUX_MODE0 | AM33XX_PIN_OUTPUT},
- 	{"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
- 	{"gpmc_a2.ehrpwm1A", OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT}, // Backlight
- 	{NULL, 0},
-@@ -1567,6 +1472,7 @@ out:
- static void lcdc_init(int evm_id, int profile)
- {
- 
-+	setup_pin_mux(lcdc16_pin_mux);
- 	setup_pin_mux(lcdc_pin_mux);
- 
- 	if (conf_disp_pll(300000000)) {
-@@ -1584,6 +1490,7 @@ static void lcdc_init(int evm_id, int profile)
- 
- static void bbtoys7lcd_init(int evm_id, int profile)
- {
-+	setup_pin_mux(lcdc16_pin_mux);
- 	setup_pin_mux(bbtoys7_pin_mux);
- 	gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
- 	gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
-@@ -1603,6 +1510,7 @@ static void bbtoys7lcd_init(int evm_id, int profile)
- 
- static void bbtoys35lcd_init(int evm_id, int profile)
- {
-+	setup_pin_mux(lcdc16_pin_mux);
- 	setup_pin_mux(bbtoys35_pin_mux);
- 	
- 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
-@@ -1618,13 +1526,12 @@ static void bbtoys35lcd_init(int evm_id, int profile)
- 	return;
- }
- 
--#define BEAGLEBONEDVI_PDn  GPIO_TO_PIN(1, 7)
-+#define BEAGLEBONEDVI_PDn_A1  GPIO_TO_PIN(1, 7)
-+#define BEAGLEBONEDVI_PDn_A2  GPIO_TO_PIN(1, 31)
- 
- static void dvi_init(int evm_id, int profile)
- {
--    setup_pin_mux(dvi_pin_mux);
--	gpio_request(BEAGLEBONEDVI_PDn, "DVI_PDn");
--	gpio_direction_output(BEAGLEBONEDVI_PDn, 1);
-+	setup_pin_mux(lcdc16_pin_mux);
- 
- 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
- 	if (conf_disp_pll(560000000)) {
-@@ -2218,8 +2125,21 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	pr_info("BeagleBone cape partnumber: %s\n", tmp);   
- 
- 	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
--			pr_info("BeagleBone cape: initializing DVI cape\n");
-+		pr_info("BeagleBone cape: initializing DVI cape\n");
-+		
-+		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
-+			pr_info("BeagleBone cape: DVI init for revision A1 or older\n");
-+			setup_pin_mux(dvia1_pin_mux);
-+			gpio_request(BEAGLEBONEDVI_PDn_A1, "DVI_PDn");
-+			gpio_direction_output(BEAGLEBONEDVI_PDn_A1, 1);
- 			dvi_init(0,0);
-+		} else {
-+			pr_info("BeagleBone cape: DVI init for revision A2 or newer\n");
-+			setup_pin_mux(dvia2_pin_mux);
-+			gpio_request(BEAGLEBONEDVI_PDn_A2, "DVI_PDn");
-+			gpio_direction_output(BEAGLEBONEDVI_PDn_A2, 1);
-+			dvi_init(0,0);
-+		}
- 	}
- 	if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing LCD cape\n");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch
deleted file mode 100644
index 622d76b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch
+++ /dev/null
@@ -1,240 +0,0 @@
-From d54dc11ed06da5b83c2c99b404483eefd13d2074 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 11 May 2012 13:08:24 +0200
-Subject: [PATCH 35/79] beaglebone: enable LEDs for DVI, LCD3 and LCD7 capes
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |  140 ++++++++++++++++++++++++++++++---
- 1 file changed, 131 insertions(+), 9 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index e02c0b6..8db33b9 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -496,6 +496,7 @@ static bool beaglebone_cape_detected;
- /* keep track of ADC pin usage */
- static int capecount = 0;
- static bool beaglebone_tsadcpins_free = 1;
-+static bool beaglebone_leds_free = 1;
- 
- 
- #define GP_EVM_REV_IS_1_0		0x1
-@@ -600,23 +601,26 @@ static struct pinmux_config lcdc16_pin_mux[] = {
- 
- /* Module pin mux for Beagleboardtoys DVI cape */
- static struct pinmux_config dvia1_pin_mux[] = {
--	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
--	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
-+	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
-+	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
- 	{"gpmc_ad7.gpmc_ad7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
- 	{NULL, 0},
- };
- 
- static struct pinmux_config dvia2_pin_mux[] = {
--	{"gpmc_a2.rgmii2_td3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
--	{"gpmc_a3.rgmii2_td2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
-+	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
-+	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
- 	{"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // DVI PDn
- 	{NULL, 0},
- };
- 
- /* Module pin mux for Beagleboardtoys 3.5" LCD cape */
- static struct pinmux_config bbtoys35_pin_mux[] = {
-+	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
-+	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
- 	{NULL, 0},
- };
-+
- /* Module pin mux for Beagleboardtoys 7" LCD cape */
- static struct pinmux_config bbtoys7_pin_mux[] = {
- 	{"ecap0_in_pwm0_out.gpio0_7", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
-@@ -1018,6 +1022,7 @@ static struct pinmux_config lcd7_keys_pin_mux[] = {
- 	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
- 	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
- 	{"mcasp0_fsr.gpio3_19",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-+	{"gpmc_ben1.gpio1_28",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
- 	{NULL, 0},
- };
- 
-@@ -1327,6 +1332,94 @@ static struct platform_device dvi_leds_gpio = {
- 	},
- };
- 
-+#define BEAGLEBONELCD3_USR0_LED  GPIO_TO_PIN(1, 18)
-+#define BEAGLEBONELCD3_USR1_LED  GPIO_TO_PIN(1, 19)
-+
-+static struct gpio_led lcd3_gpio_leds[] = {
-+	{
-+		.name			= "beaglebone::usr0",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONE_USR1_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr1",
-+		.default_trigger	= "mmc0",
-+		.gpio			= BEAGLEBONE_USR2_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr2",
-+		.gpio			= BEAGLEBONE_USR3_LED,
-+	},
-+	{
-+		.name           = "beaglebone::usr3",
-+		.gpio           = BEAGLEBONE_USR4_LED,
-+	},
-+	{
-+		.name			= "lcd3::usr0",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONELCD3_USR0_LED,
-+	},
-+	{
-+		.name			= "lcd3::usr1",
-+		.default_trigger	= "mmc0",
-+		.gpio			= BEAGLEBONELCD3_USR1_LED,
-+	},
-+};
-+
-+static struct gpio_led_platform_data lcd3_gpio_led_info = {
-+	.leds		= lcd3_gpio_leds,
-+	.num_leds	= ARRAY_SIZE(lcd3_gpio_leds),
-+};
-+
-+static struct platform_device lcd3_leds_gpio = {
-+	.name	= "leds-gpio",
-+	.id	= -1,
-+	.dev	= {
-+		.platform_data	= &lcd3_gpio_led_info,
-+	},
-+};
-+
-+#define BEAGLEBONELCD7_USR_LED  GPIO_TO_PIN(1, 28)
-+
-+static struct gpio_led lcd7_gpio_leds[] = {
-+	{
-+		.name			= "beaglebone::usr0",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONE_USR1_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr1",
-+		.default_trigger	= "mmc0",
-+		.gpio			= BEAGLEBONE_USR2_LED,
-+	},
-+	{
-+		.name			= "beaglebone::usr2",
-+		.gpio			= BEAGLEBONE_USR3_LED,
-+	},
-+	{
-+		.name           = "beaglebone::usr3",
-+		.gpio           = BEAGLEBONE_USR4_LED,
-+	},
-+	{
-+		.name			= "lcd7::usr",
-+		.default_trigger	= "heartbeat",
-+		.gpio			= BEAGLEBONELCD7_USR_LED,
-+	},
-+};
-+
-+static struct gpio_led_platform_data lcd7_gpio_led_info = {
-+	.leds		= lcd7_gpio_leds,
-+	.num_leds	= ARRAY_SIZE(lcd7_gpio_leds),
-+};
-+
-+static struct platform_device lcd7_leds_gpio = {
-+	.name	= "leds-gpio",
-+	.id	= -1,
-+	.dev	= {
-+		.platform_data	= &lcd7_gpio_led_info,
-+	},
-+};
-+
- static struct pinmux_config bone_pin_mux[] = {
- 	/* User LED gpios (gpio1_21 to gpio1_24) */
-     {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-@@ -1595,6 +1688,22 @@ static void dvileds_init(int evm_id, int profile )
- 		pr_err("failed to register BeagleBone DVI cape LEDS\n");
- }
- 
-+static void lcd3leds_init(int evm_id, int profile )
-+{
-+	int err;
-+	err = platform_device_register(&lcd3_leds_gpio);
-+	if (err)
-+		pr_err("failed to register BeagleBone LCD cape LEDs\n");
-+}
-+
-+static void lcd7leds_init(int evm_id, int profile )
-+{
-+	int err;
-+	err = platform_device_register(&lcd7_leds_gpio);
-+	if (err)
-+		pr_err("failed to register BeagleBone LCD cape LED\n");
-+}
-+
- static void bonew1_gpio_init(int evm_id, int profile )
- {
- 	int err;
-@@ -2102,10 +2211,15 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
- 	if (ret != sizeof(cape_config)) {
- 		pr_warning("BeagleBone cape EEPROM: could not read eeprom at address 0x%x\n", capecount + 0x53);
--		if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
--			pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
--			bone_tsc_init(0,0);
--			beaglebone_tsadcpins_free = 0;
-+		if (capecount > 3) {
-+			if (beaglebone_tsadcpins_free == 1) {
-+				pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
-+				bone_tsc_init(0,0);
-+				beaglebone_tsadcpins_free = 0;
-+			}
-+			if (beaglebone_leds_free == 1) {
-+				boneleds_init(0,0);
-+			}
- 		}
- 		return;
- 	}
-@@ -2127,6 +2241,9 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing DVI cape\n");
- 		
-+		beaglebone_leds_free = 0;
-+		dvileds_init(0,0);
-+		
- 		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
- 			pr_info("BeagleBone cape: DVI init for revision A1 or older\n");
- 			setup_pin_mux(dvia1_pin_mux);
-@@ -2151,6 +2268,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_tsadcpins_free = 0;
- 		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
- 		beaglebone_lcd7_keys_init(0,0);
-+		
-+		// A1 or newer
-+		beaglebone_leds_free = 0;
-+		lcd7leds_init(0,0);
- 	}
- 	
- 	if (!strncmp("BB-BONE-LCD3-01", cape_config.partnumber, 15)) {
-@@ -2161,6 +2282,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_tsadcpins_free = 0;
- 		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
- 		beaglebone_lcd3_keys_init(0,0);
-+		beaglebone_leds_free = 0;
-+		lcd3leds_init(0,0);
- 	}
- 	
- 	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 14)) {
-@@ -2659,7 +2782,6 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
--	{boneleds_init,	DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{bonew1_gpio_init, DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch
deleted file mode 100644
index e4bc851..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 402cc5ad4f97373171cd7e1cfe17ad5165a8c42c Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Sun, 13 May 2012 18:06:24 +0200
-Subject: [PATCH 36/79] Beaglebone: Fixed compiletime warnings.
-
-Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
----
- arch/arm/mach-omap2/board-am335xevm.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 8db33b9..b48e0fd 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -41,6 +41,7 @@
- #include <linux/opp.h>
- #include <linux/w1-gpio.h>
- #include <linux/can/platform/mcp251x.h>
-+#include <linux/input/ti_tscadc.h>
- 
- /* LCD controller is similar to DA850 */
- #include <video/da8xx-fb.h>
-@@ -300,7 +301,6 @@ struct da8xx_lcdc_platform_data dvi_pdata = {
- };
- 
- /* TSc controller */
--#include <linux/input/ti_tscadc.h>
- #include <linux/lis3lv02d.h>
- 
- /* TSc controller */
-@@ -2200,13 +2200,13 @@ static void tt3201_init(int evm_id, int profile)
- }
- static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
- {
--	capecount++;
- 	int ret;
- 	char tmp[32];
- 	char name[32];
- 	char version[4];
- 	char manufacturer[32];
- 
-+	capecount++;
- 	/* get cape specific data */
- 	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
- 	if (ret != sizeof(cape_config)) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch
deleted file mode 100644
index a042216..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From ae194fe34a83ae3198010fe20b60308e03e46c61 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Sun, 13 May 2012 18:18:52 +0200
-Subject: [PATCH 37/79] Beaglebone: Added missing termination record to
- bone_pin_mux data.
-
-Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
----
- arch/arm/mach-omap2/board-am335xevm.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index b48e0fd..7dbeac6 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1428,6 +1428,7 @@ static struct pinmux_config bone_pin_mux[] = {
-     {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-     /* Grounding gpio1_6 (pin 3 Conn A) signals bone tester to start diag tests */
-     {"gpmc_ad6.gpio1_6", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
-+	{NULL, 0},
- };
- 
- /* Module pin mux for eCAP0 */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch
deleted file mode 100644
index 3615878..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 3bfb8f832b4fb3685755ba893a464865ba1cb824 Mon Sep 17 00:00:00 2001
-From: Rob Kellett <r-kellett at ti.com>
-Date: Mon, 14 May 2012 09:35:35 +0100
-Subject: [PATCH 38/79] board-am335xevm.c: Beaglebone - expose all pwms
- through sysfs
-
----
- arch/arm/mach-omap2/board-am335xevm.c |   20 +++++++++++++++++++-
- 1 file changed, 19 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 7dbeac6..c9ee0a2 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1509,6 +1509,16 @@ static struct pwmss_platform_data  pwm_pdata[3] = {
- 	},
- };
- 
-+static void register_all_pwms(void)
-+{
-+	am33xx_register_ehrpwm(0, &pwm_pdata[0]);
-+	am33xx_register_ehrpwm(1, &pwm_pdata[1]);
-+	am33xx_register_ehrpwm(2, &pwm_pdata[2]);
-+	am33xx_register_ecap(0, &pwm_pdata[0]);
-+	am33xx_register_ecap(1, &pwm_pdata[1]);
-+	am33xx_register_ecap(2, &pwm_pdata[2]);
-+}
-+
- static int __init ecap0_init(void)
- {
- 	int status = 0;
-@@ -1524,7 +1534,10 @@ late_initcall(ecap0_init);
- static void enable_ehrpwm1(int evm_id, int profile)
- {
- 	ehrpwm_backlight_enable = true;
--	am33xx_register_ehrpwm(1, &pwm_pdata[1]);
-+	/*am33xx_register_ehrpwm(1, &pwm_pdata[1]);
-+	 *TODO:no longer required as we are registering 
-+	 *all pwms for the beaglebone
-+	 */
- }
- 
- /* Setup pwm-backlight for bbtoys7lcd */
-@@ -2883,6 +2896,11 @@ static void setup_beaglebone(void)
- 
- 	/* Fill up global evmid */
- 	am33xx_evmid_fillup(BEAGLE_BONE_A3);
-+
-+	/*TODO:We are registering all pwms for the beaglebone here
-+	 *this may effect power management in the future
-+	 */
-+	register_all_pwms();
- }
- 
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch
deleted file mode 100644
index 4ba9cf8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From e8f558360cca470b15e95e0620aa0eb6e4cc7980 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Sun, 13 May 2012 18:09:57 +0200
-Subject: [PATCH 39/79] ARM: OMAP: Mux: Fixed debugfs mux output (always
- reporting pins as output)
-
-Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/mux.c |   62 +++++++++++++++++++++++++++------------------
- 1 file changed, 38 insertions(+), 24 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/mux.c b/arch/arm/mach-omap2/mux.c
-index e1cc75d..5899266 100644
---- a/arch/arm/mach-omap2/mux.c
-+++ b/arch/arm/mach-omap2/mux.c
-@@ -522,41 +522,55 @@ static inline void omap_mux_decode(struct seq_file *s, u16 val)
- 	i++;
- 	flags[i] = mode;
- 
--	OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE);
--	if (val & OMAP_OFF_EN) {
--		if (!(val & OMAP_OFFOUT_EN)) {
--			if (!(val & OMAP_OFF_PULL_UP)) {
--				OMAP_MUX_TEST_FLAG(val,
--					OMAP_PIN_OFF_INPUT_PULLDOWN);
-+	if (cpu_is_am33xx()) {
-+		if (val & AM33XX_INPUT_EN) {
-+			if (val & AM33XX_PULL_DISA) {
-+				flags[ ++i] = "OMAP_PIN_INPUT";
-+			} else if (val & AM33XX_PULL_UP) {
-+				flags[ ++i] = "OMAP_PIN_INPUT_PULLUP";
- 			} else {
--				OMAP_MUX_TEST_FLAG(val,
--					OMAP_PIN_OFF_INPUT_PULLUP);
-+				flags[ ++i] = "OMAP_PIN_INPUT_PULLDOWN";
- 			}
- 		} else {
--			if (!(val & OMAP_OFFOUT_VAL)) {
--				OMAP_MUX_TEST_FLAG(val,
--					OMAP_PIN_OFF_OUTPUT_LOW);
-+			flags[ ++i] = "OMAP_PIN_OUTPUT";
-+		}
-+	} else {
-+		OMAP_MUX_TEST_FLAG(val, OMAP_PIN_OFF_WAKEUPENABLE);
-+		if (val & OMAP_OFF_EN) {
-+			if (!(val & OMAP_OFFOUT_EN)) {
-+				if (!(val & OMAP_OFF_PULL_UP)) {
-+					OMAP_MUX_TEST_FLAG(val,
-+							OMAP_PIN_OFF_INPUT_PULLDOWN);
-+				} else {
-+					OMAP_MUX_TEST_FLAG(val,
-+							OMAP_PIN_OFF_INPUT_PULLUP);
-+				}
- 			} else {
--				OMAP_MUX_TEST_FLAG(val,
--					OMAP_PIN_OFF_OUTPUT_HIGH);
-+				if (!(val & OMAP_OFFOUT_VAL)) {
-+					OMAP_MUX_TEST_FLAG(val,
-+							OMAP_PIN_OFF_OUTPUT_LOW);
-+				} else {
-+					OMAP_MUX_TEST_FLAG(val,
-+							OMAP_PIN_OFF_OUTPUT_HIGH);
-+				}
- 			}
- 		}
--	}
- 
--	if (val & OMAP_INPUT_EN) {
--		if (val & OMAP_PULL_ENA) {
--			if (!(val & OMAP_PULL_UP)) {
--				OMAP_MUX_TEST_FLAG(val,
--					OMAP_PIN_INPUT_PULLDOWN);
-+		if (val & OMAP_INPUT_EN) {
-+			if (val & OMAP_PULL_ENA) {
-+				if (!(val & OMAP_PULL_UP)) {
-+					OMAP_MUX_TEST_FLAG(val,
-+							OMAP_PIN_INPUT_PULLDOWN);
-+				} else {
-+					OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP);
-+				}
- 			} else {
--				OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT_PULLUP);
-+				OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT);
- 			}
- 		} else {
--			OMAP_MUX_TEST_FLAG(val, OMAP_PIN_INPUT);
-+			i++;
-+			flags[i] = "OMAP_PIN_OUTPUT";
- 		}
--	} else {
--		i++;
--		flags[i] = "OMAP_PIN_OUTPUT";
- 	}
- 
- 	do {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch
deleted file mode 100644
index f44ac53..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch
+++ /dev/null
@@ -1,83 +0,0 @@
-From 0bbf782ac6c97d57990886959838a6f7ed296b3a Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 14 May 2012 14:23:45 +0200
-Subject: [PATCH 40/79] beaglebone: export SPI2 as spidev when no capes are
- using SPI
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   25 +++++++++++++++++++++----
- 1 file changed, 21 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index c9ee0a2..a0fa53a 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -497,6 +497,7 @@ static bool beaglebone_cape_detected;
- static int capecount = 0;
- static bool beaglebone_tsadcpins_free = 1;
- static bool beaglebone_leds_free = 1;
-+static bool beaglebone_spi1_free = 1;
- 
- 
- #define GP_EVM_REV_IS_1_0		0x1
-@@ -1897,6 +1898,16 @@ static struct spi_board_info am335x_spi1_slave_info[] = {
- 	},
- };
- 
-+static struct spi_board_info bone_spidev2_info[] = {
-+	{
-+		.modalias      = "spidev",
-+		.irq           = -1,
-+		.max_speed_hz  = 12000000,
-+		.bus_num       = 2,
-+		.chip_select   = 0,
-+	},
-+};
-+
- static struct gpmc_timings am335x_nand_timings = {
- 	.sync_clk = 0,
- 
-@@ -2199,8 +2210,9 @@ static struct spi_board_info tt3201_spi_info[] = {
- 
- static void tt3201_init(int evm_id, int profile)
- {
--	pr_info("TowerTech TT3201 CAN Cape\n");
--
-+	pr_info("TowerTech TT3201 CAN cape\n");
-+	
-+	beaglebone_spi1_free = 0;
- 	setup_pin_mux(spi1_pin_mux);
- 	setup_pin_mux(tt3201_pin_mux);
- 
-@@ -2234,12 +2246,18 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 			if (beaglebone_leds_free == 1) {
- 				boneleds_init(0,0);
- 			}
-+			if(beaglebone_spi1_free == 1) {
-+				beaglebone_spi1_free = 0;
-+				pr_info("BeagleBone cape: exporting SPI pins as spidev\n");
-+				setup_pin_mux(spi1_pin_mux);
-+				spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info));
-+			}
- 		}
- 		return;
- 	}
- 
- 	if (cape_config.header != AM335X_EEPROM_HEADER) {
--		pr_warning("BeagleBone Cape EEPROM: wrong header 0x%x, expected 0x%x\n",
-+		pr_warning("BeagleBone cape EEPROM: wrong header 0x%x, expected 0x%x\n",
- 			cape_config.header, AM335X_EEPROM_HEADER);
- 		goto out;
- 	}
-@@ -2630,7 +2648,6 @@ static void spi1_init(int evm_id, int profile)
- 	return;
- }
- 
--
- static int beaglebone_phy_fixup(struct phy_device *phydev)
- {
- 	phydev->supported &= ~(SUPPORTED_100baseT_Half |
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0041-st7735fb-Working-WIP-changes-to-make-DMA-safe-and-ad.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0041-st7735fb-Working-WIP-changes-to-make-DMA-safe-and-ad.patch
deleted file mode 100644
index ffbcb6f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0041-st7735fb-Working-WIP-changes-to-make-DMA-safe-and-ad.patch
+++ /dev/null
@@ -1,143 +0,0 @@
-From 7f97d002d17f8de8cde7f248bb1c194172360efe Mon Sep 17 00:00:00 2001
-From: Matt Porter <mporter at ti.com>
-Date: Wed, 28 Mar 2012 23:35:44 -0400
-Subject: [PATCH 41/79] st7735fb: Working WIP changes to make DMA safe and add
- endian fix
-
-This removes the "from the stack" allocation of 1 byte buffers
-that was a temporary thing and isn't dma safe. Now vmallocs the
-user buffer to be deferred I/O safe and kmallocs a swapped
-shadow buffer to support the byte swabbing hack to fix userspace
-limitations.
-
-The buffer allocation and endian hack code needs some serious
-cleanup as on big endian systems if would fail miserably atm.
-However, the LE path works for the moment so people can do something
-with the driver.
-
-Signed-off-by: Matt Porter <mporter at ti.com>
----
- drivers/video/st7735fb.c |   49 ++++++++++++++++++++++++++++++----------------
- include/video/st7735fb.h |    2 ++
- 2 files changed, 34 insertions(+), 17 deletions(-)
-
-diff --git a/drivers/video/st7735fb.c b/drivers/video/st7735fb.c
-index 500cc88..0931ca2 100644
---- a/drivers/video/st7735fb.c
-+++ b/drivers/video/st7735fb.c
-@@ -145,11 +145,9 @@ static struct fb_var_screeninfo st7735fb_var __devinitdata = {
- 
- static int st7735_write(struct st7735fb_par *par, u8 data)
- {
--	u8 txbuf[2]; /* allocation from stack must go */
-+	par->buf[0] = data;
- 
--	txbuf[0] = data;
--
--	return spi_write(par->spi, &txbuf[0], 1);
-+	return spi_write(par->spi, par->buf, 1);
- }
- 
- static void st7735_write_data(struct st7735fb_par *par, u8 data)
-@@ -243,16 +241,17 @@ static void st7735_reset(struct st7735fb_par *par)
- static void st7735fb_update_display(struct st7735fb_par *par)
- {
- 	int ret = 0;
--	u8 *vmem = par->info->screen_base;
--
--	/*
--		TODO:
--		Allow a subset of pages to be passed in
--		(for deferred I/O).  Check pages against
--		pan display settings to see if they
--		should be updated.
--	*/
--	/* For now, just write the full 40KiB on each update */
-+	u16 *vmem;
-+#ifdef __LITTLE_ENDIAN
-+	int i;
-+	u16 *vmem16 = (u16 *)par->info->screen_base;
-+	vmem = par->ssbuf;
-+
-+	for (i=0; i<WIDTH*HEIGHT*BPP/8/2; i++)
-+		vmem[i] = swab16(vmem16[i]);
-+#else
-+	vmem = (u16 *)par->info->screen_base;
-+#endif
- 
- 	/* Set row/column data window */
- 	st7735_set_addr_win(par, 0, 0, WIDTH-1, HEIGHT-1);
-@@ -261,7 +260,7 @@ static void st7735fb_update_display(struct st7735fb_par *par)
- 	st7735_write_cmd(par, ST7735_RAMWR);
- 
- 	/* Blast framebuffer to ST7735 internal display RAM */
--	ret = st7735_write_data_buf(par, vmem, WIDTH*HEIGHT*BPP/8);
-+	ret = st7735_write_data_buf(par, (u8 *)vmem, WIDTH*HEIGHT*BPP/8);
- 	if (ret < 0)
- 		pr_err("%s: spi_write failed to update display buffer\n",
- 			par->info->fix.id);
-@@ -369,7 +368,7 @@ static struct fb_ops st7735fb_ops = {
- };
- 
- static struct fb_deferred_io st7735fb_defio = {
--	.delay		= HZ,
-+	.delay		= HZ/20,
- 	.deferred_io	= st7735fb_deferred_io,
- };
- 
-@@ -395,7 +394,11 @@ static int __devinit st7735fb_probe (struct spi_device *spi)
- 		return -EINVAL;
- 	}
- 
--	vmem = vzalloc(vmem_size);
-+#ifdef __LITTLE_ENDIAN
-+	vmem = (u8 *)vmalloc(vmem_size);
-+#else
-+	vmem = (u8 *)kmalloc(vmem_size, GFP_KERNEL);
-+#endif
- 	if (!vmem)
- 		return retval;
- 
-@@ -431,6 +434,14 @@ static int __devinit st7735fb_probe (struct spi_device *spi)
- 	par->spi = spi;
- 	par->rst = pdata->rst_gpio;
- 	par->dc = pdata->dc_gpio;
-+	par->buf = kmalloc(1, GFP_KERNEL);
-+
-+#ifdef __LITTLE_ENDIAN
-+	/* Allocated swapped shadow buffer */
-+	par->ssbuf = kmalloc(vmem_size, GFP_KERNEL);
-+	if (!par->ssbuf)
-+		return retval;
-+#endif
- 
- 	retval = register_framebuffer(info);
- 	if (retval < 0)
-@@ -457,7 +468,11 @@ fbreg_fail:
- 	framebuffer_release(info);
- 
- fballoc_fail:
-+#ifdef __LITTLE_ENDIAN
- 	vfree(vmem);
-+#else
-+	kfree(vmem);
-+#endif
- 
- 	return retval;
- }
-diff --git a/include/video/st7735fb.h b/include/video/st7735fb.h
-index 250f036..e99cd05 100644
---- a/include/video/st7735fb.h
-+++ b/include/video/st7735fb.h
-@@ -36,6 +36,8 @@ struct st7735fb_par {
- 	struct fb_info *info;
- 	int rst;
- 	int dc;
-+	u16 *ssbuf;
-+	u8 *buf;
- };
- 
- struct st7735fb_platform_data {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0042-omap-hwmod-silence-st_shift-error.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0042-omap-hwmod-silence-st_shift-error.patch
deleted file mode 100644
index 0f2477d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0042-omap-hwmod-silence-st_shift-error.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From e2542efb1a4a61334eace382a2a4c6d5874cc078 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 16 May 2012 17:57:31 +0200
-Subject: [PATCH 42/79] omap hwmod: silence st_shift error
-
-During boot the following error is shown:
-
-	[    0.545227] omap_hwmod: wkup_m3: wkup_m3: hwmod data error: OMAP4 does not support st_shift
-
-Since this PSP tree will never run on omap4 remove the print so people will stop getting scared by it.
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/omap_hwmod.c |    3 ---
- 1 file changed, 3 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod.c b/arch/arm/mach-omap2/omap_hwmod.c
-index bc14f9f..a050699 100644
---- a/arch/arm/mach-omap2/omap_hwmod.c
-+++ b/arch/arm/mach-omap2/omap_hwmod.c
-@@ -1343,9 +1343,6 @@ static int _deassert_hardreset(struct omap_hwmod *oh, const char *name)
- 	 * Note: cpu_is_omap34xx is true for am33xx device as well.
- 	 */
- 	if (cpu_is_omap44xx() || cpu_is_am33xx()) {
--		if (ohri.st_shift)
--			pr_err("omap_hwmod: %s: %s: hwmod data error: OMAP4 does not support st_shift\n",
--			       oh->name, name);
- 		ret = omap4_prminst_deassert_hardreset(ohri.rst_shift,
- 				  oh->clkdm->pwrdm.ptr->prcm_partition,
- 				  oh->clkdm->pwrdm.ptr->prcm_offs,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0043-cpsw-phy_device-demote-PHY-message-to-INFO.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0043-cpsw-phy_device-demote-PHY-message-to-INFO.patch
deleted file mode 100644
index b9fb74d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0043-cpsw-phy_device-demote-PHY-message-to-INFO.patch
+++ /dev/null
@@ -1,51 +0,0 @@
-From f37fa162020846da5950eba704e58e41889b9d3a Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 17 May 2012 10:59:18 +0200
-Subject: [PATCH 43/79] cpsw,phy_device: demote PHY message to INFO
-
-This keeps them from appearing on the screen when booting with 'quiet'
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/net/ethernet/ti/cpsw.c |    2 +-
- drivers/net/phy/phy_device.c   |    4 ++--
- 2 files changed, 3 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
-index 86fe57d..d10996d 100644
---- a/drivers/net/ethernet/ti/cpsw.c
-+++ b/drivers/net/ethernet/ti/cpsw.c
-@@ -638,7 +638,7 @@ static void cpsw_slave_open(struct cpsw_slave *slave, struct cpsw_priv *priv)
- 		    slave->data->phy_id, slave->slave_num);
- 		slave->phy = NULL;
- 	} else {
--		printk(KERN_ERR"\nCPSW phy found : id is : 0x%x\n",
-+		printk(KERN_INFO"\nCPSW phy found : id is : 0x%x\n",
- 			slave->phy->phy_id);
- 		cpsw_set_phy_config(priv, slave->phy);
- 		phy_start(slave->phy);
-diff --git a/drivers/net/phy/phy_device.c b/drivers/net/phy/phy_device.c
-index 83a5a5a..8b84789 100644
---- a/drivers/net/phy/phy_device.c
-+++ b/drivers/net/phy/phy_device.c
-@@ -380,7 +380,7 @@ struct phy_device * phy_connect(struct net_device *dev, const char *bus_id,
- 	 * PHY with the requested name */
- 	d = bus_find_device_by_name(&mdio_bus_type, NULL, bus_id);
- 	if (!d) {
--		pr_err("PHY %s not found\n", bus_id);
-+		pr_info("PHY %s not found\n", bus_id);
- 		return ERR_PTR(-ENODEV);
- 	}
- 	phydev = to_phy_device(d);
-@@ -503,7 +503,7 @@ struct phy_device *phy_attach(struct net_device *dev,
- 	 * PHY with the requested name */
- 	d = bus_find_device_by_name(bus, NULL, bus_id);
- 	if (!d) {
--		pr_err("PHY %s not found\n", bus_id);
-+		pr_info("PHY %s not found\n", bus_id);
- 		return ERR_PTR(-ENODEV);
- 	}
- 	phydev = to_phy_device(d);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0044-beaglebone-add-support-for-7-LCD-cape-revision-A2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0044-beaglebone-add-support-for-7-LCD-cape-revision-A2.patch
deleted file mode 100644
index 749df75..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0044-beaglebone-add-support-for-7-LCD-cape-revision-A2.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From ff466659529efbbc2d01f1461fe461dc0fdea135 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 18 May 2012 12:17:12 +0200
-Subject: [PATCH 44/79] beaglebone: add support for 7" LCD cape revision A2
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   24 +++++++++++++++++++++---
- 1 file changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index a0fa53a..5bb71b1 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -629,6 +629,14 @@ static struct pinmux_config bbtoys7_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* Module pin mux for Beagleboardtoys 7" LCD cape */
-+static struct pinmux_config bbtoys7a2_pin_mux[] = {
-+	{"gpmc_csn2.gpio1_31", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
-+	{"gpmc_a2.ehrpwm1A", OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT}, // Backlight
-+	{NULL, 0},
-+};
-+
-+
- static struct pinmux_config w1_gpio_pin_mux[] = {
- 	{"gpmc_ad3.gpio1_3",	OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
- 	{NULL, 0},
-@@ -1595,13 +1603,11 @@ static void lcdc_init(int evm_id, int profile)
- }
- 
- #define BEAGLEBONE_LCD_AVDD_EN GPIO_TO_PIN(0, 7)
-+#define BEAGLEBONE_LCD7A2_AVDD_EN GPIO_TO_PIN(1, 31)
- 
- static void bbtoys7lcd_init(int evm_id, int profile)
- {
- 	setup_pin_mux(lcdc16_pin_mux);
--	setup_pin_mux(bbtoys7_pin_mux);
--	gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
--	gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
- 
- 	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
- 	if (conf_disp_pll(300000000)) {
-@@ -2292,6 +2298,18 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	}
- 	if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing LCD cape\n");
-+
-+		if (!strncmp("00A2", cape_config.version, 4)) {
-+			setup_pin_mux(bbtoys7a2_pin_mux);
-+			gpio_request(BEAGLEBONE_LCD7A2_AVDD_EN, "BONE_LCD_AVDD_EN");
-+			gpio_direction_output(BEAGLEBONE_LCD7A2_AVDD_EN, 1);
-+		} else {
-+			setup_pin_mux(bbtoys7_pin_mux);
-+			gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
-+			gpio_direction_output(BEAGLEBONE_LCD_AVDD_EN, 1);
-+			bbtoys7lcd_init(0,0);
-+		}
-+
- 		bbtoys7lcd_init(0,0);
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
- 		tsc_init(0,0);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0045-beaglebone-allow-capes-to-disable-w1-gpio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0045-beaglebone-allow-capes-to-disable-w1-gpio.patch
deleted file mode 100644
index 165a68a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0045-beaglebone-allow-capes-to-disable-w1-gpio.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 1b32708444a02b6e42cdd76272a2f09768a3474a Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 18 May 2012 12:39:25 +0200
-Subject: [PATCH 45/79] beaglebone: allow capes to disable w1-gpio
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    7 +++++--
- 1 file changed, 5 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 5bb71b1..5c89494 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -498,7 +498,7 @@ static int capecount = 0;
- static bool beaglebone_tsadcpins_free = 1;
- static bool beaglebone_leds_free = 1;
- static bool beaglebone_spi1_free = 1;
--
-+static bool beaglebone_w1gpio_free = 1;
- 
- #define GP_EVM_REV_IS_1_0		0x1
- #define GP_EVM_REV_IS_1_0A		0x1
-@@ -1727,6 +1727,7 @@ static void lcd7leds_init(int evm_id, int profile )
- 
- static void bonew1_gpio_init(int evm_id, int profile )
- {
-+	beaglebone_w1gpio_free = 0;
- 	int err;
- 	setup_pin_mux(w1_gpio_pin_mux);
- 	err = platform_device_register(&bone_w1_device);
-@@ -2258,6 +2259,9 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 				setup_pin_mux(spi1_pin_mux);
- 				spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info));
- 			}
-+			if(beaglebone_w1gpio_free == 1) {
-+				bonew1_gpio_init(0,0);
-+			}
- 		}
- 		return;
- 	}
-@@ -2831,7 +2835,6 @@ static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
--	{bonew1_gpio_init, DEV_ON_BASEBOARD, PROFILE_ALL},
- 	{NULL, 0, 0},
- };
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0046-beaglebone-add-stub-for-the-camera-cape-to-disable-w.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0046-beaglebone-add-stub-for-the-camera-cape-to-disable-w.patch
deleted file mode 100644
index 91d86a3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0046-beaglebone-add-stub-for-the-camera-cape-to-disable-w.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From b1a945344e6abd9bb9f33e9a8dadb8ac22ed2422 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Fri, 18 May 2012 12:58:16 +0200
-Subject: [PATCH 46/79] beaglebone: add stub for the camera cape to disable
- w1-gpio
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    5 +++++
- 1 file changed, 5 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 5c89494..ece4e46 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2384,6 +2384,11 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: initializing CAN cape\n");
- 		tt3201_init(0,0);
- 	}
-+
-+	if (!strncmp("BB-BONE-CAM-01", cape_config.partnumber, 14)) {
-+		pr_info("BeagleBone cape: recognized Camera cape\n");
-+		beaglebone_w1gpio_free = 0;
-+	}
- 	
- 	if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
- 		pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0047-Adding-many-of-the-missing-signals-to-the-mux-table.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0047-Adding-many-of-the-missing-signals-to-the-mux-table.patch
deleted file mode 100644
index 6a13c13..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0047-Adding-many-of-the-missing-signals-to-the-mux-table.patch
+++ /dev/null
@@ -1,310 +0,0 @@
-From 023eed8b578f4b3ccc992ade8344277f9f9e08d6 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Sun, 13 May 2012 18:16:34 +0200
-Subject: [PATCH 47/79] Adding many of the missing signals to the mux table.
-
-Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
----
- arch/arm/mach-omap2/mux33xx.c |  197 +++++++++++++++++++++--------------------
- 1 file changed, 101 insertions(+), 96 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 25dcedb..26ecd66 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -28,6 +28,11 @@
- }
- 
- /* AM33XX pin mux super set */
-+/* 20120513 - SJL added a lot of missing signals using datasheet rev. C.
-+ *            Converted all names to lower case, except for the A and B
-+ *            channel suffixes, as that seems to be the rule.
-+ *            Marked lines with completed spec by leading empty comment.
-+ */
- static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(GPMC_AD0, 0,
- 		"gpmc_ad0", "mmc1_dat0", NULL, NULL,
-@@ -53,21 +58,21 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(GPMC_AD7, 0,
- 		"gpmc_ad7", "mmc1_dat7", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_7"),
--	_AM33XX_MUXENTRY(GPMC_AD8, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD8, 0,
- 		"gpmc_ad8", "lcd_data16", "mmc1_dat0", "mmc2_dat4",
--		NULL, NULL, NULL, "gpio0_22"),
--	_AM33XX_MUXENTRY(GPMC_AD9, 0,
-+		"ehrpwm2A", "pr1_mii_mt0_clk", NULL, "gpio0_22"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD9, 0,
- 		"gpmc_ad9", "lcd_data17", "mmc1_dat1", "mmc2_dat5",
--		"ehrpwm2B", NULL, NULL, "gpio0_23"),
--	_AM33XX_MUXENTRY(GPMC_AD10, 0,
-+		"ehrpwm2B", "pr1_mii0_col", NULL, "gpio0_23"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD10, 0,
- 		"gpmc_ad10", "lcd_data18", "mmc1_dat2", "mmc2_dat6",
--		NULL, NULL, NULL, "gpio0_26"),
--	_AM33XX_MUXENTRY(GPMC_AD11, 0,
-+		"ehrpwm2_tripzone_input", "pr1_mii0_txen", NULL, "gpio0_26"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD11, 0,
- 		"gpmc_ad11", "lcd_data19", "mmc1_dat3", "mmc2_dat7",
--		NULL, NULL, NULL, "gpio0_27"),
--	_AM33XX_MUXENTRY(GPMC_AD12, 0,
-+		"ehrpwm0_synco", "pr1_mii0_txd3", NULL, "gpio0_27"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD12, 0,
- 		"gpmc_ad12", "lcd_data20", "mmc1_dat4", "mmc2_dat0",
--		NULL, NULL, NULL, "gpio1_12"),
-+		"eqep2a_in", "pr1_mii0_txd2", "pr1_pru0_pru_r30_14", "gpio1_12"),
- 	_AM33XX_MUXENTRY(GPMC_AD13, 0,
- 		"gpmc_ad13", "lcd_data21", "mmc1_dat5", "mmc2_dat1",
- 		NULL, NULL, NULL, "gpio1_13"),
-@@ -77,33 +82,33 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(GPMC_AD15, 0,
- 		"gpmc_ad15", "lcd_data23", "mmc1_dat7", "mmc2_dat3",
- 		NULL, NULL, NULL, "gpio1_15"),
--	_AM33XX_MUXENTRY(GPMC_A0, 0,
--		"gpmc_a0", "mii2_txen", "rgmii2_tctl", "rmii2_txen",
--		NULL, NULL, NULL, "gpio1_16"),
--	_AM33XX_MUXENTRY(GPMC_A1, 0,
--		"gpmc_a1", "mii2_rxdv", "rgmii2_rctl", "mmc2_dat0",
--		NULL, NULL, NULL, "gpio1_17"),
--	_AM33XX_MUXENTRY(GPMC_A2, 0,
--		"gpmc_a2", "mii2_txd3", "rgmii2_td3", "mmc2_dat1",
--		NULL, NULL, "ehrpwm1A", "gpio1_18"),
--	_AM33XX_MUXENTRY(GPMC_A3, 0,
--		"gpmc_a3", "mii2_txd2", "rgmii2_td2", "mmc2_dat2",
--		NULL, NULL, NULL, "gpio1_19"),
--	_AM33XX_MUXENTRY(GPMC_A4, 0,
--		"gpmc_a4", "mii2_txd1", "rgmii2_td1", "rmii2_txd1",
--		"gpmc_a20", NULL, NULL, "gpio1_20"),
--	_AM33XX_MUXENTRY(GPMC_A5, 0,
--		"gpmc_a5", "mii2_txd0", "rgmii2_td0", "rmii2_txd0",
--		"gpmc_a21", NULL, NULL, "gpio1_21"),
--	_AM33XX_MUXENTRY(GPMC_A6, 0,
--		"gpmc_a6", "mii2_txclk", "rgmii2_tclk", "mmc2_dat4",
--		"gpmc_a22", NULL, NULL, "gpio1_22"),
--	_AM33XX_MUXENTRY(GPMC_A7, 0,
--		"gpmc_a7", "mii2_rxclk", "rgmii2_rclk", "mmc2_dat5",
--		NULL, NULL, NULL, "gpio1_23"),
--	_AM33XX_MUXENTRY(GPMC_A8, 0,
--		"gpmc_a8", "mii2_rxd3", "rgmii2_rd3", "mmc2_dat6",
--		NULL, NULL, "mcasp0_aclkx", "gpio1_24"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A0, 0,
-+		"gpmc_a0", "gmii2_txen", "rgmii2_tctl", "rmii2_txen",
-+		"gpmc_a16", "pr1_mii_mt1_clk", "ehrpwm1_tripzone_input", "gpio1_16"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A1, 0,
-+		"gpmc_a1", "gmii2_rxdv", "rgmii2_rctl", "mmc2_dat0",
-+		"gpmc_a17", "pr1_mii1_txd3", "ehrpwm0_synco", "gpio1_17"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A2, 0,
-+		"gpmc_a2", "gmii2_txd3", "rgmii2_td3", "mmc2_dat1",
-+		"gpmc_a18", "pr1_mii1_txd2", "ehrpwm1A", "gpio1_18"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A3, 0,
-+		"gpmc_a3", "gmii2_txd2", "rgmii2_td2", "mmc2_dat2",
-+		"gpmc_a19", "pr1_mii1_txd1", "ehrpwm1B", "gpio1_19"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A4, 0,
-+		"gpmc_a4", "gmii2_txd1", "rgmii2_td1", "rmii2_txd1",
-+		"gpmc_a20", "pr1_mii1_txd0", "eqep1a_in", "gpio1_20"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A5, 0,
-+		"gpmc_a5", "gmii2_txd0", "rgmii2_td0", "rmii2_txd0",
-+		"gpmc_a21", "pr1_mii1_rxd3", "eqep1b_in", "gpio1_21"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A6, 0,
-+		"gpmc_a6", "gmii2_txclk", "rgmii2_tclk", "mmc2_dat4",
-+		"gpmc_a22", "pr1_mii1_rxd2", "eqep1_index", "gpio1_22"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A7, 0,
-+		"gpmc_a7", "gmii2_rxclk", "rgmii2_rclk", "mmc2_dat5",
-+		"gpmc_a23", "pr1_mii1_rxd1", "eqep1_strobe", "gpio1_23"),
-+/**/	_AM33XX_MUXENTRY(GPMC_A8, 0,
-+		"gpmc_a8", "gmii2_rxd3", "rgmii2_rd3", "mmc2_dat6",
-+		"gpmc_a24", "pr1_mii1_rxd0", "mcasp0_aclkx", "gpio1_24"),
- 	_AM33XX_MUXENTRY(GPMC_A9, 0,
- 		"gpmc_a9", "mii2_rxd2", "rgmii2_rd2", "mmc2_dat7",
- 		NULL, NULL, "mcasp0_fsx", "gpio1_25"),
-@@ -122,18 +127,18 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(GPMC_BEN1, 0,
- 		"gpmc_ben1", "mii2_col", NULL, "mmc2_dat3",
- 		NULL, NULL, "mcasp0_aclkr", "gpio1_28"),
--	_AM33XX_MUXENTRY(GPMC_CSN0, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_CSN0, 0,
- 		"gpmc_csn0", NULL, NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_29"),
--	_AM33XX_MUXENTRY(GPMC_CSN1, 0,
--		"gpmc_csn1", NULL, "mmc1_clk", NULL,
--		NULL, NULL, NULL, "gpio1_30"),
--	_AM33XX_MUXENTRY(GPMC_CSN2, 0,
--		"gpmc_csn2", NULL, "mmc1_cmd", NULL,
--		NULL, NULL, NULL, "gpio1_31"),
--	_AM33XX_MUXENTRY(GPMC_CSN3, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_CSN1, 0,
-+		"gpmc_csn1", "gpmc_clk", "mmc1_clk", "pr1_edio_data_in6",
-+		"pr1_edio_data_out6", "pr1_pru1_pru_r30_12", "pr1_pru1_pru_r31_12", "gpio1_30"),
-+/**/	_AM33XX_MUXENTRY(GPMC_CSN2, 0,
-+		"gpmc_csn2", "gpmc_be1n", "mmc1_cmd", "pr1_edio_data_in7",
-+		"pr1_edio_data_out7", "pr1_pru1_pru_r30_13", "pr1_pru1_pru_r31_13", "gpio1_31"),
-+/**/	_AM33XX_MUXENTRY(GPMC_CSN3, 0,
- 		"gpmc_csn3", NULL, NULL, "mmc2_cmd",
--		NULL, NULL, NULL, "gpio2_0"),
-+		"pr1_mii0_crs", "pr1_mdio_data", "EMU4", "gpio2_0"),
- 	_AM33XX_MUXENTRY(GPMC_CLK, 0,
- 		"gpmc_clk", "lcd_memory_clk_mux", NULL, "mmc2_clk",
- 		NULL, NULL, "mcasp0_fsr", "gpio2_1"),
-@@ -155,33 +160,33 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(LCD_DATA1, 0,
- 		"lcd_data1", "gpmc_a1", NULL, NULL,
- 		NULL, NULL, NULL, "gpio2_7"),
--	_AM33XX_MUXENTRY(LCD_DATA2, 0,
--		"lcd_data2", "gpmc_a2", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_8"),
--	_AM33XX_MUXENTRY(LCD_DATA3, 0,
--		"lcd_data3", "gpmc_a3", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_9"),
--	_AM33XX_MUXENTRY(LCD_DATA4, 0,
--		"lcd_data4", "gpmc_a4", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_10"),
--	_AM33XX_MUXENTRY(LCD_DATA5, 0,
--		"lcd_data5", "gpmc_a5", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_11"),
--	_AM33XX_MUXENTRY(LCD_DATA6, 0,
--		"lcd_data6", "gpmc_a6", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_12"),
--	_AM33XX_MUXENTRY(LCD_DATA7, 0,
--		"lcd_data7", "gpmc_a7", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_13"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA2, 0,
-+		"lcd_data2", "gpmc_a2", "pr1_mii0_txd3", "ehrpwm2_tripzone_input",
-+		NULL, "pr1_pru1_pru_r30_2", "pr1_pru1_pru_r31_2", "gpio2_8"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA3, 0,
-+		"lcd_data3", "gpmc_a3", "pr1_mii0_txd2","ehrpwm0_synco",
-+		NULL, "pr1_pru1_pru_r30_3", "pr1_pru1_pru_r31_3", "gpio2_9"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA4, 0,
-+		"lcd_data4", "gpmc_a4", "pr1_mii0_txd1", "eQEP2A_in",
-+		NULL, "pr1_pru1_pru_r30_4", "pr1_pru1_pru_r31_4", "gpio2_10"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA5, 0,
-+		"lcd_data5", "gpmc_a5", "pr1_mii0_txd0", "eqep2b_in",
-+		NULL, "pr1_pru1_pru_r30_5", "pr1_pru1_pru_r31_5", "gpio2_11"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA6, 0,
-+		"lcd_data6", "gpmc_a6", "pr1_edio_data_in6", "eqep2_index",
-+		"pr1_edio_data_out6", "pr1_pru1_pru_r30_6", "pr1_pru1_pru_r31_6", "gpio2_12"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA7, 0,
-+		"lcd_data7", "gpmc_a7", "pr1_edio_data_in7", "eqep2_strobe",
-+		"pr1_pru1_pru_r30_7", "pr1_pru_pru1_r30_7", "pr1_pru1_pru_r31_7", "gpio2_13"),
- 	_AM33XX_MUXENTRY(LCD_DATA8, 0,
- 		"lcd_data8", "gpmc_a12", NULL, "mcasp0_aclkx",
- 		NULL, NULL, "uart2_ctsn", "gpio2_14"),
- 	_AM33XX_MUXENTRY(LCD_DATA9, 0,
- 		"lcd_data9", "gpmc_a13", NULL, "mcasp0_fsx",
- 		NULL, NULL, "uart2_rtsn", "gpio2_15"),
--	_AM33XX_MUXENTRY(LCD_DATA10, 0,
--		"lcd_data10", "gpmc_a14", NULL, "mcasp0_axr0",
--		NULL, NULL, NULL, "gpio2_16"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA10, 0,
-+		"lcd_data10", "gpmc_a14", "ehrpwm1A", "mcasp0_axr0",
-+		"mcasp0_axr0", "pr1_mii0_rxd1", "uart3_ctsn", "gpio2_16"),
- 	_AM33XX_MUXENTRY(LCD_DATA11, 0,
- 		"lcd_data11", "gpmc_a15", NULL, "mcasp0_ahclkr",
- 		"mcasp0_axr2", NULL, NULL, "gpio2_17"),
-@@ -197,18 +202,18 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(LCD_DATA15, 0,
- 		"lcd_data15", "gpmc_a19", NULL, "mcasp0_ahclkx",
- 		"mcasp0_axr3", NULL, NULL, "gpio0_11"),
--	_AM33XX_MUXENTRY(LCD_VSYNC, 0,
--		"lcd_vsync", NULL, NULL, NULL,
--		NULL, NULL, NULL, "gpio2_22"),
--	_AM33XX_MUXENTRY(LCD_HSYNC, 0,
--		"lcd_hsync", NULL, NULL, NULL,
--		NULL, NULL, NULL, "gpio2_23"),
--	_AM33XX_MUXENTRY(LCD_PCLK, 0,
--		"lcd_pclk", NULL, NULL, NULL,
--		NULL, NULL, NULL, "gpio2_24"),
--	_AM33XX_MUXENTRY(LCD_AC_BIAS_EN, 0,
--		"lcd_ac_bias_en", NULL, NULL, NULL,
--		NULL, NULL, NULL, "gpio2_25"),
-+/**/	_AM33XX_MUXENTRY(LCD_VSYNC, 0,
-+		"lcd_vsync", "gpmc_a8", NULL, "pr1_edio_data_in2",
-+		"pr1_edio_data_out2", "pr1_pru1_pru_r30_8", "pr1_pru1_pru_r31_8", "gpio2_22"),
-+/**/	_AM33XX_MUXENTRY(LCD_HSYNC, 0,
-+		"lcd_hsync", "gpmc_a9", NULL, "pr1_edio_data_in3",
-+		"pr1_edio_data_out3", "pr1_pru1_pru_r30_9", "pr1_pru1_pru_r31_9", "gpio2_23"),
-+/**/	_AM33XX_MUXENTRY(LCD_PCLK, 0,
-+		"lcd_pclk", "gpmc_a10", "pr1_mii0_crs", "pr1_edio_data_in4",
-+		"pr1_edio_data_out4", "pr1_pru1_pru_r30_10", "pr1_pru1_pru_r31_10", "gpio2_24"),
-+/**/	_AM33XX_MUXENTRY(LCD_AC_BIAS_EN, 0,
-+		"lcd_ac_bias_en", "gpmc_a11", "pr1_mii1_crs", "pr1_edio_data_in5",
-+		"pr1_edio_data_out5", "pr1_pru1_pru_r30_11", "pr1_pru1_pru_r31_11", "gpio2_25"),
- 	_AM33XX_MUXENTRY(MMC0_DAT3, 0,
- 		"mmc0_dat3", NULL, NULL, NULL,
- 		NULL, NULL, NULL, "gpio2_26"),
-@@ -296,9 +301,9 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(SPI0_CS1, 0,
- 		"spi0_cs1", "uart3_rxd", NULL, "mmc0_pow",
- 		NULL, "mmc0_sdcd", NULL, "gpio0_6"),
--	_AM33XX_MUXENTRY(ECAP0_IN_PWM0_OUT, 0,
--		"ecap0_in_pwm0_out", "uart3_txd", "spi1_cs1", NULL,
--		"spi1_sclk", "mmc0_sdwp", NULL, "gpio0_7"),
-+/**/	_AM33XX_MUXENTRY(ECAP0_IN_PWM0_OUT, 0,
-+		"ecap0_in_pwm0_out", "uart3_txd", "spi1_cs1", "pr1_ecap0_ecap_capin_apwm_o",
-+		"spi1_sclk", "mmc0_sdwp", "xdma_event_intr2", "gpio0_7"),
- 	_AM33XX_MUXENTRY(UART0_CTSN, 0,
- 		"uart0_ctsn", NULL, "d_can1_tx", "i2c1_sda",
- 		"spi1_d0", NULL, NULL, "gpio1_8"),
-@@ -389,11 +394,11 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(TRSTN, 0,
- 		NULL, NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(EMU0, 0,
--		NULL, NULL, NULL, NULL,
-+/**/	_AM33XX_MUXENTRY(EMU0, 0,
-+		"emu0", NULL, NULL, NULL,
- 		NULL, NULL, NULL, "gpio3_7"),
--	_AM33XX_MUXENTRY(EMU1, 0,
--		NULL, NULL, NULL, NULL,
-+/**/	_AM33XX_MUXENTRY(EMU1, 0,
-+		"emu1", NULL, NULL, NULL,
- 		NULL, NULL, NULL, "gpio3_8"),
- 	_AM33XX_MUXENTRY(RTC_XTALIN, 0,
- 		NULL, NULL, NULL, NULL,
-@@ -572,34 +577,34 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(DDR_VTP, 0,
- 		NULL, NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN0, 0,
-+/**/	_AM33XX_MUXENTRY(AIN0, 0,
- 		"ain0", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN1, 0,
-+/**/	_AM33XX_MUXENTRY(AIN1, 0,
- 		"ain1", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN2, 0,
-+/**/	_AM33XX_MUXENTRY(AIN2, 0,
- 		"ain2", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN3, 0,
-+/**/	_AM33XX_MUXENTRY(AIN3, 0,
- 		"ain3", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN4, 0,
-+/**/	_AM33XX_MUXENTRY(AIN4, 0,
- 		"ain4", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN5, 0,
-+/**/	_AM33XX_MUXENTRY(AIN5, 0,
- 		"ain5", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN6, 0,
-+/**/	_AM33XX_MUXENTRY(AIN6, 0,
- 		"ain6", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(AIN7, 0,
-+/**/	_AM33XX_MUXENTRY(AIN7, 0,
- 		"ain7", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(VREFP, 0,
-+/**/	_AM33XX_MUXENTRY(VREFP, 0,
- 		"vrefp", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
--	_AM33XX_MUXENTRY(VREFN, 0,
-+/**/	_AM33XX_MUXENTRY(VREFN, 0,
- 		"vrefn", NULL, NULL, NULL,
- 		NULL, NULL, NULL, NULL),
- 	{ .reg_offset = OMAP_MUX_TERMINATOR },
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0048-Fixed-reversed-part-of-LCD-bus.-Added-even-more-miss.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0048-Fixed-reversed-part-of-LCD-bus.-Added-even-more-miss.patch
deleted file mode 100644
index 50f1dd3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0048-Fixed-reversed-part-of-LCD-bus.-Added-even-more-miss.patch
+++ /dev/null
@@ -1,113 +0,0 @@
-From 3813937b8337eb49978dfe8e4b938f937b11db37 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Mon, 14 May 2012 18:26:12 +0200
-Subject: [PATCH 48/79] Fixed reversed part of LCD bus. Added even more
- missing entries (TBC).
-
----
- arch/arm/mach-omap2/mux33xx.c |   56 ++++++++++++++++++++---------------------
- 1 file changed, 28 insertions(+), 28 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 26ecd66..72ac899 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -34,54 +34,54 @@
-  *            Marked lines with completed spec by leading empty comment.
-  */
- static struct omap_mux __initdata am33xx_muxmodes[] = {
--	_AM33XX_MUXENTRY(GPMC_AD0, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD0, 0,
- 		"gpmc_ad0", "mmc1_dat0", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_0"),
--	_AM33XX_MUXENTRY(GPMC_AD1, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD1, 0,
- 		"gpmc_ad1", "mmc1_dat1", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_1"),
--	_AM33XX_MUXENTRY(GPMC_AD2, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD2, 0,
- 		"gpmc_ad2", "mmc1_dat2", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_2"),
--	_AM33XX_MUXENTRY(GPMC_AD3, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD3, 0,
- 		"gpmc_ad3", "mmc1_dat3", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_3"),
--	_AM33XX_MUXENTRY(GPMC_AD4, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD4, 0,
- 		"gpmc_ad4", "mmc1_dat4", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_4"),
--	_AM33XX_MUXENTRY(GPMC_AD5, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD5, 0,
- 		"gpmc_ad5", "mmc1_dat5", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_5"),
--	_AM33XX_MUXENTRY(GPMC_AD6, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD6, 0,
- 		"gpmc_ad6", "mmc1_dat6", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_6"),
--	_AM33XX_MUXENTRY(GPMC_AD7, 0,
-+/**/	_AM33XX_MUXENTRY(GPMC_AD7, 0,
- 		"gpmc_ad7", "mmc1_dat7", NULL, NULL,
- 		NULL, NULL, NULL, "gpio1_7"),
- /**/	_AM33XX_MUXENTRY(GPMC_AD8, 0,
--		"gpmc_ad8", "lcd_data16", "mmc1_dat0", "mmc2_dat4",
-+		"gpmc_ad8", "lcd_data23", "mmc1_dat0", "mmc2_dat4",
- 		"ehrpwm2A", "pr1_mii_mt0_clk", NULL, "gpio0_22"),
- /**/	_AM33XX_MUXENTRY(GPMC_AD9, 0,
--		"gpmc_ad9", "lcd_data17", "mmc1_dat1", "mmc2_dat5",
-+		"gpmc_ad9", "lcd_data22", "mmc1_dat1", "mmc2_dat5",
- 		"ehrpwm2B", "pr1_mii0_col", NULL, "gpio0_23"),
- /**/	_AM33XX_MUXENTRY(GPMC_AD10, 0,
--		"gpmc_ad10", "lcd_data18", "mmc1_dat2", "mmc2_dat6",
-+		"gpmc_ad10", "lcd_data21", "mmc1_dat2", "mmc2_dat6",
- 		"ehrpwm2_tripzone_input", "pr1_mii0_txen", NULL, "gpio0_26"),
- /**/	_AM33XX_MUXENTRY(GPMC_AD11, 0,
--		"gpmc_ad11", "lcd_data19", "mmc1_dat3", "mmc2_dat7",
-+		"gpmc_ad11", "lcd_data20", "mmc1_dat3", "mmc2_dat7",
- 		"ehrpwm0_synco", "pr1_mii0_txd3", NULL, "gpio0_27"),
- /**/	_AM33XX_MUXENTRY(GPMC_AD12, 0,
--		"gpmc_ad12", "lcd_data20", "mmc1_dat4", "mmc2_dat0",
-+		"gpmc_ad12", "lcd_data19", "mmc1_dat4", "mmc2_dat0",
- 		"eqep2a_in", "pr1_mii0_txd2", "pr1_pru0_pru_r30_14", "gpio1_12"),
--	_AM33XX_MUXENTRY(GPMC_AD13, 0,
--		"gpmc_ad13", "lcd_data21", "mmc1_dat5", "mmc2_dat1",
--		NULL, NULL, NULL, "gpio1_13"),
--	_AM33XX_MUXENTRY(GPMC_AD14, 0,
--		"gpmc_ad14", "lcd_data22", "mmc1_dat6", "mmc2_dat2",
--		NULL, NULL, NULL, "gpio1_14"),
--	_AM33XX_MUXENTRY(GPMC_AD15, 0,
--		"gpmc_ad15", "lcd_data23", "mmc1_dat7", "mmc2_dat3",
--		NULL, NULL, NULL, "gpio1_15"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD13, 0,
-+		"gpmc_ad13", "lcd_data18", "mmc1_dat5", "mmc2_dat1",
-+		"eqep2B_in", "pr1_mii0_txd", "pr1_pru0_pru_r30_15", "gpio1_13"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD14, 0,
-+		"gpmc_ad14", "lcd_data17", "mmc1_dat6", "mmc2_dat2",
-+		"eqep2_index", "pr1_mii0_txd0", "pr1_pru0_pru_r31_14", "gpio1_14"),
-+/**/	_AM33XX_MUXENTRY(GPMC_AD15, 0,
-+		"gpmc_ad15", "lcd_data16", "mmc1_dat7", "mmc2_dat3",
-+		"eqep2_strobe", "pr1_ecap0_ecap_capin_apwm_o", "pr1_pru0_pru_r31_15", "gpio1_15"),
- /**/	_AM33XX_MUXENTRY(GPMC_A0, 0,
- 		"gpmc_a0", "gmii2_txen", "rgmii2_tctl", "rmii2_txen",
- 		"gpmc_a16", "pr1_mii_mt1_clk", "ehrpwm1_tripzone_input", "gpio1_16"),
-@@ -154,12 +154,12 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 	_AM33XX_MUXENTRY(GPMC_BEN0_CLE, 0,
- 		"gpmc_ben0_cle", NULL, NULL, NULL,
- 		NULL, NULL, NULL, "gpio2_5"),
--	_AM33XX_MUXENTRY(LCD_DATA0, 0,
--		"lcd_data0", "gpmc_a0", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_6"),
--	_AM33XX_MUXENTRY(LCD_DATA1, 0,
--		"lcd_data1", "gpmc_a1", NULL, NULL,
--		NULL, NULL, NULL, "gpio2_7"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA0, 0,
-+		"lcd_data0", "gpmc_a0", "pr1_mii_mt0_clk", "ehrpwm2A",
-+		NULL, "pr1_pru1_pru_r30_0", "pr1_pru1_pru_r31_0", "gpio2_6"),
-+/**/	_AM33XX_MUXENTRY(LCD_DATA1, 0,
-+		"lcd_data1", "gpmc_a1", "pr1_mii0_txen", "ehrpwm2B",
-+		NULL, "pr1_pru1_pru_r30_1", "pr1_pru1_pru_r31_1", "gpio2_7"),
- /**/	_AM33XX_MUXENTRY(LCD_DATA2, 0,
- 		"lcd_data2", "gpmc_a2", "pr1_mii0_txd3", "ehrpwm2_tripzone_input",
- 		NULL, "pr1_pru1_pru_r30_2", "pr1_pru1_pru_r31_2", "gpio2_8"),
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0049-ts_tscadc-add-defines-for-4x-and-16x-oversampling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0049-ts_tscadc-add-defines-for-4x-and-16x-oversampling.patch
deleted file mode 100644
index ad1ad73..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0049-ts_tscadc-add-defines-for-4x-and-16x-oversampling.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From e55b5da533e82e6f61c7ccd947623bce7a45ebf9 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Sat, 19 May 2012 11:29:14 +0200
-Subject: [PATCH 49/79] ts_tscadc: add defines for 4x and 16x oversampling
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/input/touchscreen/ti_tscadc.c |    2 ++
- 1 file changed, 2 insertions(+)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index 4fd2e18..acb62d1 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -83,6 +83,8 @@ static DEVICE_ATTR(ain8, S_IRUGO, do_adc_sample, NULL);
- #define TSCADC_STEPCONFIG_MODE_SWCONT		0x1
- #define TSCADC_STEPCONFIG_MODE_SWONESHOT	0x0
- #define TSCADC_STEPCONFIG_2SAMPLES_AVG	(1 << 4)
-+#define TSCADC_STEPCONFIG_4SAMPLES_AVG	(1 << 3)
-+#define TSCADC_STEPCONFIG_16SAMPLES_AVG	(1 << 2)
- #define TSCADC_STEPCONFIG_NO_AVG	0
- #define TSCADC_STEPCONFIG_XPP		BIT(5)
- #define TSCADC_STEPCONFIG_XNN		BIT(6)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0050-ts_tscadc-switch-to-4x-oversampling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0050-ts_tscadc-switch-to-4x-oversampling.patch
deleted file mode 100644
index 60c527a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0050-ts_tscadc-switch-to-4x-oversampling.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 4ec4eca3d419986b16b226d1ebdd2c103077ae07 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Sat, 19 May 2012 11:37:21 +0200
-Subject: [PATCH 50/79] ts_tscadc: switch to 4x oversampling
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/input/touchscreen/ti_tscadc.c |   10 +++++-----
- 1 file changed, 5 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index acb62d1..7df7bb2 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -157,11 +157,11 @@ static void tsc_adc_step_config(struct tscadc *ts_dev, int channel)
- 	/*
-  	 * Step Configuration
-  	 * software-enabled continous mode
-- 	 * 2 sample averaging
-+ 	 * 4 sample averaging
-  	 * sample channel 1 (SEL_INP mux bits = 0)
-  	 */
- 	stepconfig = TSCADC_STEPCONFIG_MODE_SWONESHOT |
--		TSCADC_STEPCONFIG_2SAMPLES_AVG |
-+		TSCADC_STEPCONFIG_4SAMPLES_AVG |
- 		((channel-1) << 19);
- 	
- 	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
-@@ -242,7 +242,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
- 
- 	stepconfigx = TSCADC_STEPCONFIG_MODE_HWSYNC |
--			TSCADC_STEPCONFIG_2SAMPLES_AVG | TSCADC_STEPCONFIG_XPP;
-+			TSCADC_STEPCONFIG_4SAMPLES_AVG | TSCADC_STEPCONFIG_XPP;
- 
- 	switch (ts_dev->wires) {
- 	case 4:
-@@ -279,7 +279,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 	}
- 
- 	stepconfigy = TSCADC_STEPCONFIG_MODE_HWSYNC |
--			TSCADC_STEPCONFIG_2SAMPLES_AVG | TSCADC_STEPCONFIG_YNN |
-+			TSCADC_STEPCONFIG_4SAMPLES_AVG | TSCADC_STEPCONFIG_YNN |
- 			TSCADC_STEPCONFIG_INM | TSCADC_STEPCONFIG_FIFO1;
- 	switch (ts_dev->wires) {
- 	case 4:
-@@ -324,7 +324,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 
- 	 /* Configure to calculate pressure */
- 	stepconfigz1 = TSCADC_STEPCONFIG_MODE_HWSYNC |
--				TSCADC_STEPCONFIG_2SAMPLES_AVG |
-+				TSCADC_STEPCONFIG_4SAMPLES_AVG |
- 				TSCADC_STEPCONFIG_XNP |
- 				TSCADC_STEPCONFIG_YPN | TSCADC_STEPCONFIG_INM;
- 	stepconfigz2 = stepconfigz1 | TSCADC_STEPCONFIG_Z1 |
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0051-Fixed-size-of-pinmux-data-array-in-EEPROM-data-struc.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0051-Fixed-size-of-pinmux-data-array-in-EEPROM-data-struc.patch
deleted file mode 100644
index 711c663..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0051-Fixed-size-of-pinmux-data-array-in-EEPROM-data-struc.patch
+++ /dev/null
@@ -1,27 +0,0 @@
-From a765d50c30374795b0d421a25a65516d6a66e990 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Sun, 13 May 2012 18:07:59 +0200
-Subject: [PATCH 51/79] Fixed size of pinmux data array in EEPROM data struct.
-
-Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index ece4e46..c6ec997 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -483,7 +483,7 @@ struct beaglebone_cape_eeprom_config {
- 	char	partnumber[16];
- 	u16  numpins;
- 	char	serial[12];
--	u8	muxdata[170];
-+	u16	muxdata[74];
- 	u16  current_3v3;
- 	u16  current_vdd5v;
- 	u16  current_sys5v;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0052-Implemented-Bone-Cape-configuration-from-EEPROM.-Onl.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0052-Implemented-Bone-Cape-configuration-from-EEPROM.-Onl.patch
deleted file mode 100644
index 15b428e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0052-Implemented-Bone-Cape-configuration-from-EEPROM.-Onl.patch
+++ /dev/null
@@ -1,363 +0,0 @@
-From 2ab55bf6a97122999e0cd6cbe18869fb89b59c0a Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Sun, 13 May 2012 18:14:22 +0200
-Subject: [PATCH 52/79] Implemented Bone Cape configuration from EEPROM. Only
- used for BEBOPR cape for now.
-
-Signed-off-by: Bas Laarhoven <sjml at xs4all.nl>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |  304 +++++++++++++++++++++++++++++++++
- arch/arm/mach-omap2/mux33xx.c         |   14 ++
- 2 files changed, 318 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index c6ec997..7fb8295 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2231,6 +2231,304 @@ static void tt3201_init(int evm_id, int profile)
- 
- 	am33xx_d_can_init(1);
- }
-+
-+static const char* cape_pins[] = {
-+/*
-+  From SRM RevA5.0.1:
-+*/
-+  /* offset  88 - P9-22 */ "uart2_rxd",
-+  /* offset  90 - P9-21 */ "uart2_txd",
-+  /* offset  92 - P9-18 */ "spi0_d1",
-+  /* offset  94 - P9-17 */ "spi0_cs0",
-+  /* offset  96 - P9-42 */ "ecap0_in_pwm0_out",
-+  /* offset  98 - P8-35 */ "lcd_data12",
-+  /* offset 100 - P8-33 */ "lcd_data13",
-+  /* offset 102 - P8-31 */ "lcd_data14",
-+  /* offset 104 - P8-32 */ "lcd_data15",
-+  /* offset 106 - P9-19 */ "uart1_rtsn",
-+  /* offset 108 - P9-20 */ "uart1_ctsn",
-+  /* offset 110 - P9-26 */ "uart1_rxd",
-+  /* offset 112 - P9-24 */ "uart1_txd",
-+  /* offset 114 - P9-41 */ "xdma_event_intr1",
-+  /* offset 116 - P8-19 */ "gpmc_ad8",
-+  /* offset 118 - P8-13 */ "gpmc_ad9",
-+  /* offset 120 - P8-14 */ "gpmc_ad10",
-+  /* offset 122 - P8-17 */ "gpmc_ad12",
-+  /* offset 124 - P9-11 */ "gpmc_wait0",
-+  /* offset 126 - P9-13 */ "gpmc_wpn",
-+  /* offset 128 - P8-25 */ "gpmc_ad0",
-+  /* offset 130 - P8-24 */ "gpmc_ad1",
-+  /* offset 132 - P8- 5 */ "gpmc_ad2",
-+  /* offset 134 - P8- 6 */ "gpmc_ad3",
-+  /* offset 136 - P8-23 */ "gpmc_ad4",
-+  /* offset 138 - P8-22 */ "gpmc_ad5",
-+  /* offset 140 - P8- 3 */ "gpmc_ad6",
-+  /* offset 142 - P8- 4 */ "gpmc_ad7",
-+  /* offset 144 - P8-12 */ "gpmc_ad12",
-+  /* offset 146 - P8-11 */ "gpmc_ad13",
-+  /* offset 148 - P8-16 */ "gpmc_ad14",
-+  /* offset 150 - P8-15 */ "gpmc_ad15",
-+  /* offset 152 - P9-15 */ "gpmc_a0",
-+  /* offset 154 - P9-23 */ "gpmc_a1",
-+  /* offset 156 - P9-14 */ "gpmc_a2",
-+  /* offset 158 - P9-16 */ "gpmc_a3",
-+  /* offset 160 - P9-12 */ "gpmc_be1n",
-+  /* offset 162 - P8-26 */ "gpmc_csn0",
-+  /* offset 164 - P8-21 */ "gpmc_csn1",
-+  /* offset 166 - P8-20 */ "gpmc_csn2",
-+  /* offset 168 - P8-18 */ "gpmc_clk",
-+  /* offset 170 - P8-7  */ "gpmc_advn_ale",
-+  /* offset 172 - P8-9  */ "gpmc_ben0_cle",
-+  /* offset 174 - P8-10 */ "gpmc_wen",
-+  /* offset 176 - P8-8  */ "gpmc_csn3",
-+  /* offset 178 - P8-45 */ "lcd_data0",
-+  /* offset 180 - P8-46 */ "lcd_data1",
-+  /* offset 182 - P8-43 */ "lcd_data2",
-+  /* offset 184 - P8-44 */ "lcd_data3",
-+  /* offset 186 - P8-41 */ "lcd_data4",
-+  /* offset 188 - P8-42 */ "lcd_data5",
-+  /* offset 190 - P8-39 */ "lcd_data6",
-+  /* offset 192 - P8-40 */ "lcd_data7",
-+  /* offset 194 - P8-37 */ "lcd_data8",
-+  /* offset 196 - P8-38 */ "lcd_data9",
-+  /* offset 198 - P8-36 */ "lcd_data10",
-+  /* offset 200 - P8-34 */ "lcd_data11",
-+  /* offset 202 - P8-27 */ "lcd_vsync",
-+  /* offset 204 - P8-29 */ "lcd_hsync",
-+  /* offset 206 - P8-28 */ "lcd_pclk",
-+  /* offset 208 - P8-30 */ "lcd_ac_bias_en",
-+  /* offset 210 - P9-29 */ "mcasp0_fsx",
-+  /* offset 212 - P9-30 */ "mcasp0_axr0",
-+  /* offset 214 - P9-28 */ "mcasp0_ahclkr",
-+  /* offset 216 - P9-27 */ "mcasp0_fsr",
-+  /* offset 218 - P9-31 */ "mcasp0_aclkx",
-+  /* offset 220 - P9-25 */ "mcasp0_ahclkx",
-+  /* offset 222 - P9-39 */ "ain0",
-+  /* offset 224 - P9-40 */ "ain1",
-+  /* offset 226 - P9-37 */ "ain2",
-+  /* offset 228 - P9-38 */ "ain3",
-+  /* offset 230 - P9-33 */ "ain4",
-+  /* offset 232 - P9-36 */ "ain5",
-+  /* offset 234 - P9-35 */ "ain6",
-+};
-+
-+#define BIG_ENDIAN_16( i) ( ((i & 255) << 8) | ((i >> 8) & 255) )
-+#define NR_ITEMS( x) (sizeof( (x)) / sizeof( *(x)))
-+
-+extern int am33xx_mux_get_entry( int index, struct omap_mux** mux);
-+
-+typedef union {
-+/*
-+  From SRM RevA5.0.1:
-+  Bit 15     Pin is used or not: 0=Unused by Cape 1=Used by Cape
-+  Bit 14-13  Pin Direction: 10=Output 01=Input 11=BDIR
-+  Bit 12-7   Reserved
-+  Bit 6      Slew Rate: 0=Fast 1=Slow
-+  Bit 5      Rx Enable: 0=Disabled 1=Enabled
-+  Bit 4      Pull Up/Dn Select: 0=Pulldown 1=PullUp
-+  Bit 3      Pull Up/DN enabled: 0=Enabled 1=Disabled
-+  Bit 2-0    Mux Mode Selection: Mode 0-7
-+*/
-+	struct {
-+		uint16_t    mux             : 3;
-+	  	uint16_t    pull_enable     : 1;
-+		uint16_t    pull_up         : 1;
-+	  	uint16_t    rx_enable       : 1;
-+		uint16_t    slew_rate       : 1;
-+	  	uint16_t    reserved        : 6;
-+	  	uint16_t    direction       : 2;
-+	  	uint16_t    used            : 1;
-+	};
-+  	uint16_t      value;
-+} pin_def;
-+
-+#define DEBUG_EEPROM_CONFIG 0
-+
-+static int bone_io_get_mux_setting( pin_def setting)
-+{
-+	int pin_setting;
-+
-+	switch (setting.direction) {
-+	case 1:
-+	/* input */
-+	  	if (setting.pull_enable) {
-+			if (setting.pull_up) {
-+			  	pin_setting = AM33XX_PIN_INPUT_PULLUP;
-+			} else {
-+			  	pin_setting = AM33XX_PIN_INPUT_PULLDOWN;
-+			}
-+		} else {
-+		  	pin_setting = AM33XX_PIN_INPUT;
-+		}
-+		if (!setting.rx_enable) {
-+#if DEBUG_EEPROM_CONFIG
-+			pr_warning( "  pin is set as input but the receiver is not enabled!\n");
-+#endif
-+		}
-+		break;
-+	case 2:
-+	/* output */
-+	  	pin_setting = AM33XX_PIN_OUTPUT;
-+		break;
-+	case 3:
-+	/* bi-dir */
-+	default:
-+	/* reserved */
-+#if DEBUG_EEPROM_CONFIG
-+	  	pr_warning( "  pin ignored because it uses an unsupported mode: 0x%04x\n",
-+			    setting.direction);
-+#endif
-+		return -1;
-+	}
-+#if DEBUG_EEPROM_CONFIG
-+	pr_info("  pin is configured as %s\n",
-+		(pin_setting & AM33XX_PIN_INPUT) ? "input" : "output");
-+#endif
-+	switch (setting.mux) {
-+	case 0: pin_setting |= OMAP_MUX_MODE0; break;
-+	case 1: pin_setting |= OMAP_MUX_MODE1; break;
-+	case 2: pin_setting |= OMAP_MUX_MODE2; break;
-+	case 3: pin_setting |= OMAP_MUX_MODE3; break;
-+	case 4: pin_setting |= OMAP_MUX_MODE4; break;
-+	case 5: pin_setting |= OMAP_MUX_MODE5; break;
-+	case 6: pin_setting |= OMAP_MUX_MODE6; break;
-+	case 7: pin_setting |= OMAP_MUX_MODE7; break;
-+	}
-+	return pin_setting;
-+}
-+
-+static struct omap_mux* bone_io_pin_lookup( const char* pin_name)
-+{
-+	int index = 0;
-+	struct omap_mux* mux;
-+
-+	for (;;) {
-+		if (am33xx_mux_get_entry( index, &mux) < 0) {
-+		  	/* no more entries */
-+#if DEBUG_EEPROM_CONFIG
-+		  	pr_warning( "   configuration error, pin '%s' not found in mux database\n",
-+				    pin_name);
-+#endif
-+			return NULL;
-+		}
-+		if (mux != NULL &&
-+		    mux->muxnames[ 0] != NULL &&
-+		    strcmp( mux->muxnames[ 0], pin_name) == 0)
-+		{
-+			/* entry found */
-+#if DEBUG_EEPROM_CONFIG
-+			pr_info( "   found pin '%s' at index %d in mux database'\n",
-+				 pin_name, index);
-+#endif
-+			return mux;
-+		}
-+		++index;
-+	}
-+}
-+
-+static int bone_io_config_pin( const char* pin_name, pin_def eeprom_setting)
-+{
-+	struct omap_mux* mux;
-+	char* signal_name;
-+	int pin_setting = bone_io_get_mux_setting( eeprom_setting);
-+	int l1, l2;
-+	char full_name[ 50];
-+
-+	if (pin_setting < 0) {
-+		return -1;
-+	}
-+
-+	mux = bone_io_pin_lookup( pin_name);
-+
-+	if (mux == NULL) {
-+		return -1;
-+	}
-+
-+	signal_name = mux->muxnames[ eeprom_setting.mux];
-+
-+	if (signal_name == NULL) {
-+#if DEBUG_EEPROM_CONFIG
-+	  	pr_warning( "    Configuration error, no signal found for pin '%s' in mode %d\n",
-+			    pin_name, eeprom_setting.mux);
-+#endif
-+		return -1;
-+	}
-+
-+#if DEBUG_EEPROM_CONFIG
-+	pr_info( "    setting pin '%s' to signal '%s'\n",
-+		 pin_name, signal_name);
-+#endif
-+  	l1 = strlen( pin_name);
-+	l2 = strlen( signal_name);
-+
-+	if (l1 + 1 + l2 + 1 > sizeof( full_name)) {
-+#if DEBUG_EEPROM_CONFIG
-+	  	pr_warning( "    Internal error, combined signal name too long\n");
-+#endif
-+		return -1;
-+	} else {
-+	  	memcpy( full_name, pin_name, l1);
-+		full_name[ l1] = '.';
-+		memcpy( full_name + l1 + 1, signal_name, l2);
-+		full_name[ l1 + 1 + l2] = '\0';
-+		if (omap_mux_init_signal( full_name, pin_setting) < 0) {
-+			return -1;
-+		}
-+#if DEBUG_EEPROM_CONFIG
-+		pr_info( "     mux '%s' was set to mode 0x%04x\n",
-+			 full_name, pin_setting);
-+#endif
-+	}
-+	// return 0 for input, 1 for output
-+	return (pin_setting & AM33XX_PIN_INPUT) ? 0 : 1;
-+}
-+
-+#define RULER( x) \
-+	do { \
-+		char* p = status; \
-+		int i = 0; \
-+		int cnt = x; \
-+		status[ cnt] = '\0'; \
-+		while (cnt--) { \
-+			if (++i == 10) { \
-+				*p++ = '+'; \
-+				i = 0; \
-+			} else { \
-+				*p++ = '-'; \
-+			} \
-+		} \
-+		pr_info( "+%s+\n", status); \
-+	} while (0)
-+
-+static void bone_io_config_from_cape_eeprom( void)
-+{
-+	int i;
-+	int cnt = BIG_ENDIAN_16( cape_config.numpins);
-+	u16* pmuxdata;
-+	char status[ NR_ITEMS( cape_config.muxdata) + 1];
-+
-+	pr_info( "BeagleBone cape: configuring %2d out of %2d signals:\n",
-+		 cnt, NR_ITEMS( cape_config.muxdata));
-+	RULER( NR_ITEMS( cape_config.muxdata));
-+	for (i = 0, pmuxdata = cape_config.muxdata ; i < NR_ITEMS( cape_config.muxdata) ; ++i, ++pmuxdata) {
-+		const char* pin_name = cape_pins[ i];
-+		pin_def pin_setting = { .value = BIG_ENDIAN_16( *pmuxdata) };
-+
-+		if (pin_setting.used) {
-+			switch (bone_io_config_pin( pin_name, pin_setting)) {
-+			case 0:  status[ i] = 'i'; break;
-+			case 1:  status[ i] = 'o'; break;
-+			default: status[ i] = '#'; break;
-+			}
-+		} else {
-+			status[ i] = ' ';
-+		}
-+	}
-+	status[ NR_ITEMS( cape_config.muxdata)] = '\0';
-+	pr_info( "|%s|\n", status);
-+	RULER( NR_ITEMS( cape_config.muxdata));
-+}
-+
- static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
- {
- 	int ret;
-@@ -2280,6 +2578,12 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	snprintf(tmp, sizeof(cape_config.partnumber) + 1, "%s", cape_config.partnumber);
- 	pr_info("BeagleBone cape partnumber: %s\n", tmp);   
- 
-+	if (!strncmp( "BEBOPR", cape_config.name, 6)) {
-+		pr_info( "BeagleBone cape: initializing BEBOPR cape\n");
-+		bone_io_config_from_cape_eeprom();
-+		return;	// if configured from eeprom, skip all other initialization
-+	}
-+
- 	if (!strncmp("BB-BONE-DVID-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing DVI cape\n");
- 		
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 72ac899..43c8989 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -616,6 +616,20 @@ int __init am33xx_mux_init(struct omap_board_mux *board_subset)
- 			AM33XX_CONTROL_PADCONF_MUX_SIZE, am33xx_muxmodes,
- 			NULL, board_subset, NULL);
- }
-+
-+#define NR_ITEMS( x) (sizeof( (x)) / sizeof( *(x)))
-+
-+int am33xx_mux_get_entry( int index, struct omap_mux** mux)
-+{
-+  if (index >= 0 && index < NR_ITEMS( am33xx_muxmodes)) {
-+    *mux = &am33xx_muxmodes[ index];
-+    return 0;
-+  } else {
-+    *mux = NULL;
-+    return -1;
-+  }
-+}
-+
- #else
- int __init am33xx_mux_init(struct omap_board_mux *board_subset)
- {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0053-Replaced-conditional-debug-code-by-pr_debug-statemen.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0053-Replaced-conditional-debug-code-by-pr_debug-statemen.patch
deleted file mode 100644
index 28024ee..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0053-Replaced-conditional-debug-code-by-pr_debug-statemen.patch
+++ /dev/null
@@ -1,188 +0,0 @@
-From 15a5705cf271c9571719d6e5e09e33efba9576b4 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Mon, 14 May 2012 14:31:37 +0200
-Subject: [PATCH 53/79] Replaced conditional debug code by pr_debug statements
- for cleaner code.
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   91 +++++++++++++--------------------
- 1 file changed, 36 insertions(+), 55 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 7fb8295..d6a607a 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2323,23 +2323,23 @@ typedef union {
-   Bit 15     Pin is used or not: 0=Unused by Cape 1=Used by Cape
-   Bit 14-13  Pin Direction: 10=Output 01=Input 11=BDIR
-   Bit 12-7   Reserved
--  Bit 6      Slew Rate: 0=Fast 1=Slow
--  Bit 5      Rx Enable: 0=Disabled 1=Enabled
--  Bit 4      Pull Up/Dn Select: 0=Pulldown 1=PullUp
--  Bit 3      Pull Up/DN enabled: 0=Enabled 1=Disabled
-+  Bit 6	     Slew Rate: 0=Fast 1=Slow
-+  Bit 5	     Rx Enable: 0=Disabled 1=Enabled
-+  Bit 4	     Pull Up/Dn Select: 0=Pulldown 1=PullUp
-+  Bit 3	     Pull Up/DN enabled: 0=Enabled 1=Disabled
-   Bit 2-0    Mux Mode Selection: Mode 0-7
- */
- 	struct {
--		uint16_t    mux             : 3;
--	  	uint16_t    pull_enable     : 1;
--		uint16_t    pull_up         : 1;
--	  	uint16_t    rx_enable       : 1;
--		uint16_t    slew_rate       : 1;
--	  	uint16_t    reserved        : 6;
--	  	uint16_t    direction       : 2;
--	  	uint16_t    used            : 1;
-+		uint16_t    mux		    : 3;
-+		uint16_t    pull_enable	    : 1;
-+		uint16_t    pull_up	    : 1;
-+		uint16_t    rx_enable	    : 1;
-+		uint16_t    slew_rate	    : 1;
-+		uint16_t    reserved	    : 6;
-+		uint16_t    direction	    : 2;
-+		uint16_t    used	    : 1;
- 	};
--  	uint16_t      value;
-+	uint16_t      value;
- } pin_def;
- 
- #define DEBUG_EEPROM_CONFIG 0
-@@ -2351,39 +2351,33 @@ static int bone_io_get_mux_setting( pin_def setting)
- 	switch (setting.direction) {
- 	case 1:
- 	/* input */
--	  	if (setting.pull_enable) {
-+		if (setting.pull_enable) {
- 			if (setting.pull_up) {
--			  	pin_setting = AM33XX_PIN_INPUT_PULLUP;
-+				pin_setting = AM33XX_PIN_INPUT_PULLUP;
- 			} else {
--			  	pin_setting = AM33XX_PIN_INPUT_PULLDOWN;
-+				pin_setting = AM33XX_PIN_INPUT_PULLDOWN;
- 			}
- 		} else {
--		  	pin_setting = AM33XX_PIN_INPUT;
-+			pin_setting = AM33XX_PIN_INPUT;
- 		}
- 		if (!setting.rx_enable) {
--#if DEBUG_EEPROM_CONFIG
--			pr_warning( "  pin is set as input but the receiver is not enabled!\n");
--#endif
-+			pr_debug( "  pin is set as input but the receiver is not enabled!\n");
- 		}
- 		break;
- 	case 2:
- 	/* output */
--	  	pin_setting = AM33XX_PIN_OUTPUT;
-+		pin_setting = AM33XX_PIN_OUTPUT;
- 		break;
- 	case 3:
- 	/* bi-dir */
- 	default:
- 	/* reserved */
--#if DEBUG_EEPROM_CONFIG
--	  	pr_warning( "  pin ignored because it uses an unsupported mode: 0x%04x\n",
--			    setting.direction);
--#endif
-+		pr_debug( "  pin ignored because it uses an unsupported mode: 0x%04x\n",
-+			setting.direction);
- 		return -1;
- 	}
--#if DEBUG_EEPROM_CONFIG
--	pr_info("  pin is configured as %s\n",
-+	pr_debug("  pin is configured as %s\n",
- 		(pin_setting & AM33XX_PIN_INPUT) ? "input" : "output");
--#endif
- 	switch (setting.mux) {
- 	case 0: pin_setting |= OMAP_MUX_MODE0; break;
- 	case 1: pin_setting |= OMAP_MUX_MODE1; break;
-@@ -2404,11 +2398,9 @@ static struct omap_mux* bone_io_pin_lookup( const char* pin_name)
- 
- 	for (;;) {
- 		if (am33xx_mux_get_entry( index, &mux) < 0) {
--		  	/* no more entries */
--#if DEBUG_EEPROM_CONFIG
--		  	pr_warning( "   configuration error, pin '%s' not found in mux database\n",
--				    pin_name);
--#endif
-+			/* no more entries */
-+			pr_debug( "   configuration error, pin '%s' not found in mux database\n",
-+				pin_name);
- 			return NULL;
- 		}
- 		if (mux != NULL &&
-@@ -2416,10 +2408,8 @@ static struct omap_mux* bone_io_pin_lookup( const char* pin_name)
- 		    strcmp( mux->muxnames[ 0], pin_name) == 0)
- 		{
- 			/* entry found */
--#if DEBUG_EEPROM_CONFIG
--			pr_info( "   found pin '%s' at index %d in mux database'\n",
--				 pin_name, index);
--#endif
-+			pr_debug( "   found pin '%s' at index %d in mux database'\n",
-+				pin_name, index);
- 			return mux;
- 		}
- 		++index;
-@@ -2447,37 +2437,28 @@ static int bone_io_config_pin( const char* pin_name, pin_def eeprom_setting)
- 	signal_name = mux->muxnames[ eeprom_setting.mux];
- 
- 	if (signal_name == NULL) {
--#if DEBUG_EEPROM_CONFIG
--	  	pr_warning( "    Configuration error, no signal found for pin '%s' in mode %d\n",
--			    pin_name, eeprom_setting.mux);
--#endif
-+		pr_debug( "    Configuration error, no signal found for pin '%s' in mode %d\n",
-+			pin_name, eeprom_setting.mux);
- 		return -1;
- 	}
--
--#if DEBUG_EEPROM_CONFIG
--	pr_info( "    setting pin '%s' to signal '%s'\n",
-+	pr_debug( "    setting pin '%s' to signal '%s'\n",
- 		 pin_name, signal_name);
--#endif
--  	l1 = strlen( pin_name);
-+	l1 = strlen( pin_name);
- 	l2 = strlen( signal_name);
- 
- 	if (l1 + 1 + l2 + 1 > sizeof( full_name)) {
--#if DEBUG_EEPROM_CONFIG
--	  	pr_warning( "    Internal error, combined signal name too long\n");
--#endif
-+		pr_debug( "    Internal error, combined signal name too long\n");
- 		return -1;
- 	} else {
--	  	memcpy( full_name, pin_name, l1);
-+		memcpy( full_name, pin_name, l1);
- 		full_name[ l1] = '.';
- 		memcpy( full_name + l1 + 1, signal_name, l2);
- 		full_name[ l1 + 1 + l2] = '\0';
- 		if (omap_mux_init_signal( full_name, pin_setting) < 0) {
- 			return -1;
- 		}
--#if DEBUG_EEPROM_CONFIG
--		pr_info( "     mux '%s' was set to mode 0x%04x\n",
-+		pr_debug( "	mux '%s' was set to mode 0x%04x\n",
- 			 full_name, pin_setting);
--#endif
- 	}
- 	// return 0 for input, 1 for output
- 	return (pin_setting & AM33XX_PIN_INPUT) ? 0 : 1;
-@@ -2516,8 +2497,8 @@ static void bone_io_config_from_cape_eeprom( void)
- 
- 		if (pin_setting.used) {
- 			switch (bone_io_config_pin( pin_name, pin_setting)) {
--			case 0:  status[ i] = 'i'; break;
--			case 1:  status[ i] = 'o'; break;
-+			case 0:	 status[ i] = 'i'; break;
-+			case 1:	 status[ i] = 'o'; break;
- 			default: status[ i] = '#'; break;
- 			}
- 		} else {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0054-Workaround-for-boards-with-mistaken-ASCII-interpreta.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0054-Workaround-for-boards-with-mistaken-ASCII-interpreta.patch
deleted file mode 100644
index 8957bbe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0054-Workaround-for-boards-with-mistaken-ASCII-interpreta.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From 0d56e585afe2e1cf32a55e93e6a4aa8d659bccf4 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Mon, 14 May 2012 14:36:23 +0200
-Subject: [PATCH 54/79] Workaround for boards with (mistaken) ASCII
- interpretation for the numpins field.
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index d6a607a..0a1738a 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2488,6 +2488,12 @@ static void bone_io_config_from_cape_eeprom( void)
- 	u16* pmuxdata;
- 	char status[ NR_ITEMS( cape_config.muxdata) + 1];
- 
-+	// Workaround for capes that have encoded this as ASCII
-+	if (cnt > 256) {
-+		pr_info( "BeagleBone cape: workaround for bad 'numpins' setting\n");
-+		cnt = (cape_config.numpins & 255) - '0';
-+		cnt = 10 * cnt + ((cape_config.numpins >> 8) & 255) - '0';
-+	}
- 	pr_info( "BeagleBone cape: configuring %2d out of %2d signals:\n",
- 		 cnt, NR_ITEMS( cape_config.muxdata));
- 	RULER( NR_ITEMS( cape_config.muxdata));
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0055-Workaround-for-EEPROM-contents-blocking-further-I2C-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0055-Workaround-for-EEPROM-contents-blocking-further-I2C-.patch
deleted file mode 100644
index 1275fa5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0055-Workaround-for-EEPROM-contents-blocking-further-I2C-.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 8d8ad2973b9d062763f51f1bee0652a6647033a5 Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Mon, 14 May 2012 15:07:43 +0200
-Subject: [PATCH 55/79] Workaround for EEPROM contents blocking further I2C
- bus access.
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 0a1738a..0fa8a32 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2501,7 +2501,10 @@ static void bone_io_config_from_cape_eeprom( void)
- 		const char* pin_name = cape_pins[ i];
- 		pin_def pin_setting = { .value = BIG_ENDIAN_16( *pmuxdata) };
- 
--		if (pin_setting.used) {
-+		// Detect broken I2C configuration to prevent bus hangup!
-+		if (i >= 9 && i <= 10) {
-+			status[ i] = '-';
-+		} else if (pin_setting.used) {
- 			switch (bone_io_config_pin( pin_name, pin_setting)) {
- 			case 0:	 status[ i] = 'i'; break;
- 			case 1:	 status[ i] = 'o'; break;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0056-Added-check-on-EEPROM-revision-to-prevent-interpreti.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0056-Added-check-on-EEPROM-revision-to-prevent-interpreti.patch
deleted file mode 100644
index abdaabe..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0056-Added-check-on-EEPROM-revision-to-prevent-interpreti.patch
+++ /dev/null
@@ -1,60 +0,0 @@
-From ae7ecbfa459730344eeb559ce0352662c540289c Mon Sep 17 00:00:00 2001
-From: Bas Laarhoven <sjml at xs4all.nl>
-Date: Tue, 15 May 2012 10:00:47 +0200
-Subject: [PATCH 56/79] Added check on EEPROM revision to prevent interpreting
- unknown formats.
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   16 +++++++++++++---
- 1 file changed, 13 insertions(+), 3 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 0fa8a32..68ddfe2 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2481,12 +2481,21 @@ static int bone_io_config_pin( const char* pin_name, pin_def eeprom_setting)
- 		pr_info( "+%s+\n", status); \
- 	} while (0)
- 
--static void bone_io_config_from_cape_eeprom( void)
-+static int bone_io_config_from_cape_eeprom( void)
- {
- 	int i;
- 	int cnt = BIG_ENDIAN_16( cape_config.numpins);
- 	u16* pmuxdata;
- 	char status[ NR_ITEMS( cape_config.muxdata) + 1];
-+	char revision[ NR_ITEMS( cape_config.format_revision) + 1];
-+
-+	strncpy( revision, cape_config.format_revision, NR_ITEMS( revision) - 1);
-+	revision[ NR_ITEMS( revision) - 1] = '\0';
-+	if (strcmp( revision, "A0") != 0) {
-+		pr_warn( "BeagleBone cape: configuration revision '%s' is not supported\n",
-+			revision);
-+		return -1;
-+	}
- 
- 	// Workaround for capes that have encoded this as ASCII
- 	if (cnt > 256) {
-@@ -2494,8 +2503,8 @@ static void bone_io_config_from_cape_eeprom( void)
- 		cnt = (cape_config.numpins & 255) - '0';
- 		cnt = 10 * cnt + ((cape_config.numpins >> 8) & 255) - '0';
- 	}
--	pr_info( "BeagleBone cape: configuring %2d out of %2d signals:\n",
--		 cnt, NR_ITEMS( cape_config.muxdata));
-+	pr_info( "BeagleBone cape: revision %s format, configuring %2d out of %2d signals:\n",
-+		revision, cnt, NR_ITEMS( cape_config.muxdata));
- 	RULER( NR_ITEMS( cape_config.muxdata));
- 	for (i = 0, pmuxdata = cape_config.muxdata ; i < NR_ITEMS( cape_config.muxdata) ; ++i, ++pmuxdata) {
- 		const char* pin_name = cape_pins[ i];
-@@ -2517,6 +2526,7 @@ static void bone_io_config_from_cape_eeprom( void)
- 	status[ NR_ITEMS( cape_config.muxdata)] = '\0';
- 	pr_info( "|%s|\n", status);
- 	RULER( NR_ITEMS( cape_config.muxdata));
-+	return 0;
- }
- 
- static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0057-i2c-prescalar-fix-i2c-fixed-prescalar-setting-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0057-i2c-prescalar-fix-i2c-fixed-prescalar-setting-issue.patch
deleted file mode 100644
index feb27c5..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0057-i2c-prescalar-fix-i2c-fixed-prescalar-setting-issue.patch
+++ /dev/null
@@ -1,58 +0,0 @@
-From 3c530584c31f8e61a47a931dedca2f9e75165b9f Mon Sep 17 00:00:00 2001
-From: Al Pacifico <adpacifico at users.sourceforge.net>
-Date: Mon, 21 May 2012 11:50:32 -0700
-Subject: [PATCH 57/79] i2c-prescalar-fix: i2c: fixed prescalar setting issue
-
-Applied Steve's i2c prescalar fix patches.
-See https://groups.google.com/d/msg/beagleboard/Q1pDr1lT7Gk/jvxOxgg8_2MJ
-
-Signed-off-by: Al Pacifico <adpacifico at users.sourceforge.net>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/omap_hwmod_33xx_data.c |    3 ++-
- drivers/i2c/busses/i2c-omap.c              |    2 ++
- include/linux/i2c-omap.h                   |    1 +
- 3 files changed, 5 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-index 9d3c9a5..946e6b5 100644
---- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-@@ -1243,7 +1243,8 @@ static struct omap_hwmod_class_sysconfig am33xx_i2c_sysc = {
- 
- static struct omap_i2c_dev_attr i2c_dev_attr = {
- 	.flags		= OMAP_I2C_FLAG_BUS_SHIFT_NONE |
--					OMAP_I2C_FLAG_RESET_REGS_POSTIDLE,
-+					OMAP_I2C_FLAG_RESET_REGS_POSTIDLE |
-+					OMAP_I2C_FLAG_FORCE_12000_INT_CLK,
- };
- 
- static struct omap_hwmod_class i2c_class = {
-diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c
-index e0733b7..0ca6960 100644
---- a/drivers/i2c/busses/i2c-omap.c
-+++ b/drivers/i2c/busses/i2c-omap.c
-@@ -408,6 +408,8 @@ static int omap_i2c_init(struct omap_i2c_dev *dev)
- 		if (dev->speed > 400 ||
- 			       pdata->flags & OMAP_I2C_FLAG_FORCE_19200_INT_CLK)
- 			internal_clk = 19200;
-+		else if (pdata->flags & OMAP_I2C_FLAG_FORCE_12000_INT_CLK)
-+			internal_clk = 12000;
- 		else if (dev->speed > 100)
- 			internal_clk = 9600;
- 		else
-diff --git a/include/linux/i2c-omap.h b/include/linux/i2c-omap.h
-index fd38249..818f5bf 100644
---- a/include/linux/i2c-omap.h
-+++ b/include/linux/i2c-omap.h
-@@ -24,6 +24,7 @@
- #define OMAP_I2C_FLAG_APPLY_ERRATA_I207	BIT(4)
- #define OMAP_I2C_FLAG_ALWAYS_ARMXOR_CLK	BIT(5)
- #define OMAP_I2C_FLAG_FORCE_19200_INT_CLK	BIT(6)
-+#define OMAP_I2C_FLAG_FORCE_12000_INT_CLK        BIT(9)
- /* how the CPU address bus must be translated for I2C unit access */
- #define OMAP_I2C_FLAG_BUS_SHIFT_NONE 0
- #define OMAP_I2C_FLAG_BUS_SHIFT_1		BIT(7)
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0058-beaglebone-annotate-default-beaglebone-pinmux.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0058-beaglebone-annotate-default-beaglebone-pinmux.patch
deleted file mode 100644
index 92b6d48..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0058-beaglebone-annotate-default-beaglebone-pinmux.patch
+++ /dev/null
@@ -1,32 +0,0 @@
-From fe280a351fe71d5f1ade1aa3b8f9edc08e201ec1 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 22 May 2012 10:58:53 +0200
-Subject: [PATCH 58/79] beaglebone: annotate default beaglebone pinmux
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 68ddfe2..b079279 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1431,10 +1431,10 @@ static struct platform_device lcd7_leds_gpio = {
- 
- static struct pinmux_config bone_pin_mux[] = {
- 	/* User LED gpios (gpio1_21 to gpio1_24) */
--    {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
--    {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
--    {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
--    {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-+    {"gpmc_a5.rgmii2_td0", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0
-+    {"gpmc_a6.rgmii2_tclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1
-+    {"gpmc_a7.rgmii2_rclk", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR2
-+    {"gpmc_a8.rgmii2_rd3", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR3
-     /* Grounding gpio1_6 (pin 3 Conn A) signals bone tester to start diag tests */
-     {"gpmc_ad6.gpio1_6", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
- 	{NULL, 0},
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0059-beaglebone-fix-pin-free-thinko-this-method-doesn-t-g.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0059-beaglebone-fix-pin-free-thinko-this-method-doesn-t-g.patch
deleted file mode 100644
index 32d9b25..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0059-beaglebone-fix-pin-free-thinko-this-method-doesn-t-g.patch
+++ /dev/null
@@ -1,78 +0,0 @@
-From 1b74058d12afa7d51ef84316ec4ede88c565161f Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 22 May 2012 11:00:00 +0200
-Subject: [PATCH 59/79] beaglebone: fix pin-free thinko, this method doesn't
- get called when there's a cape at 0x57
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   46 +++++++++++++++------------------
- 1 file changed, 21 insertions(+), 25 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index b079279..dfe8df5 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2542,25 +2542,6 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
- 	if (ret != sizeof(cape_config)) {
- 		pr_warning("BeagleBone cape EEPROM: could not read eeprom at address 0x%x\n", capecount + 0x53);
--		if (capecount > 3) {
--			if (beaglebone_tsadcpins_free == 1) {
--				pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
--				bone_tsc_init(0,0);
--				beaglebone_tsadcpins_free = 0;
--			}
--			if (beaglebone_leds_free == 1) {
--				boneleds_init(0,0);
--			}
--			if(beaglebone_spi1_free == 1) {
--				beaglebone_spi1_free = 0;
--				pr_info("BeagleBone cape: exporting SPI pins as spidev\n");
--				setup_pin_mux(spi1_pin_mux);
--				spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info));
--			}
--			if(beaglebone_w1gpio_free == 1) {
--				bonew1_gpio_init(0,0);
--			}
--		}
- 		return;
- 	}
- 
-@@ -2693,12 +2674,27 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: recognized Camera cape\n");
- 		beaglebone_w1gpio_free = 0;
- 	}
--	
--	if ((capecount > 3) && (beaglebone_tsadcpins_free == 1)) {
--		pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
--		bone_tsc_init(0,0);
--		beaglebone_tsadcpins_free = 0;
--	}
-+
-+	if (capecount > 3) {
-+		if (beaglebone_tsadcpins_free == 1) {
-+			pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
-+			bone_tsc_init(0,0);
-+			beaglebone_tsadcpins_free = 0;
-+		}
-+		if (beaglebone_leds_free == 1) {
-+			pr_info("Beaglebone: initializing onboard LEDs");
-+			boneleds_init(0,0);
-+		}
-+		if(beaglebone_spi1_free == 1) {
-+			beaglebone_spi1_free = 0;
-+			pr_info("BeagleBone cape: exporting SPI pins as spidev\n");
-+			setup_pin_mux(spi1_pin_mux);
-+			spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info));
-+		}
-+		if(beaglebone_w1gpio_free == 1) {
-+			bonew1_gpio_init(0,0);
-+		}
-+	}	
- 	
- 	return;
- out:
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0060-beaglebone-switch-RS232-cape-to-ttyO2.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0060-beaglebone-switch-RS232-cape-to-ttyO2.patch
deleted file mode 100644
index abe82a3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0060-beaglebone-switch-RS232-cape-to-ttyO2.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 77f8e93f7baf85dfab7cdf8b04c320f460a119cd Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 22 May 2012 11:00:35 +0200
-Subject: [PATCH 60/79] beaglebone: switch RS232 cape to ttyO2
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    5 +++--
- 1 file changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index dfe8df5..5902df0 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2657,8 +2657,9 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	}
- 		if (!strncmp("BB-BONE-SERL-03", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing RS232 cape\n");
--		pr_info("BeagleBone cape: only uart1 is supported!\n");
--		setup_pin_mux(uart1_pin_mux);
-+		pr_info("BeagleBone RS232 cape: only uart2/ttyO2 is supported.\n");
-+		pr_info("BeagleBone RS232 cape: Jumper J27 and J23.\n");
-+		setup_pin_mux(uart2_pin_mux);
- 	}
- 		if (!strncmp("BB-BONE-SERL-04", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: not initializing RS485 cape\n");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0061-beaglebone-make-uart2-pinmux-match-the-uart0-pinmux.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0061-beaglebone-make-uart2-pinmux-match-the-uart0-pinmux.patch
deleted file mode 100644
index 84c5545..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0061-beaglebone-make-uart2-pinmux-match-the-uart0-pinmux.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From f138b1ab42cb36c13926e1cee6ed3cd429d1c91b Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 22 May 2012 12:25:33 +0200
-Subject: [PATCH 61/79] beaglebone: make uart2 pinmux match the uart0 pinmux
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    7 ++-----
- 1 file changed, 2 insertions(+), 5 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 5902df0..e8ce381 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -885,11 +885,8 @@ static struct pinmux_config uart1_pin_mux[] = {
- 
- /* Module pin mux for uart2 */
- static struct pinmux_config uart2_pin_mux[] = {
--	{"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_SLEWCTRL_SLOW |
--						AM33XX_PIN_INPUT_PULLUP},
--	{"spi0_d0.uart2_txd", OMAP_MUX_MODE1 | AM33XX_PULL_UP |
--						AM33XX_PULL_DISA |
--						AM33XX_SLEWCTRL_SLOW},
-+	{"spi0_d0.uart2_txd", OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"spi0_sclk.uart2_rxd", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLUP},
- 	{NULL, 0},
- };
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0062-da8xx-fb-Rounding-FB-size-to-satisfy-SGX-buffer-requ.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0062-da8xx-fb-Rounding-FB-size-to-satisfy-SGX-buffer-requ.patch
deleted file mode 100644
index c3cd8e1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0062-da8xx-fb-Rounding-FB-size-to-satisfy-SGX-buffer-requ.patch
+++ /dev/null
@@ -1,59 +0,0 @@
-From c9201ef3a2d12a49b5070620a204f66eef5017e0 Mon Sep 17 00:00:00 2001
-From: Aditya Nellutla <aditya.n at ti.com>
-Date: Thu, 29 Mar 2012 15:45:39 +0530
-Subject: [PATCH 62/79] da8xx-fb: Rounding FB size to satisfy SGX buffer
- requirements
-
-In the real time use-case when SGX is used for rendering to FB buffers it has been
-observed that, the available memory from framebuffer driver is not sufficient for
-SGX under certain cases (like 16-bit WVGA resolution). SGX requires 2 swap buffers
-with each of the buffers aligned to lcm(line_length, PAGE_SIZE).
-
-Inorder to satisfy this requirement, we have two options,
-
-	- Increase number of FB buffers (LCD_NUM_BUFFERS) to 3. This is not
-	  recommended as we end up wasting huge memory in most of the cases.
-
-	- Align FB buffers to lcm(line_length, PAGE_SIZE).This ensures framebuffer
-	  size is increased to satisfy SGX requirements keeping alignment intact.
-
-This patch makes sure that FB allocates buffers aligned to above formula.
-
-Signed-off-by: Aditya Nellutla <aditya.n at ti.com>
----
- drivers/video/da8xx-fb.c |    5 ++++-
- 1 file changed, 4 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
-index 86b19ac..9aaca5d 100644
---- a/drivers/video/da8xx-fb.c
-+++ b/drivers/video/da8xx-fb.c
-@@ -34,6 +34,7 @@
- #include <linux/slab.h>
- #include <linux/delay.h>
- #include <linux/pm_runtime.h>
-+#include <linux/lcm.h>
- #include <video/da8xx-fb.h>
- #include <asm/mach-types.h>
- 
-@@ -1263,6 +1264,7 @@ static int __devinit fb_probe(struct platform_device *device)
- 	struct da8xx_fb_par *par;
- 	resource_size_t len;
- 	int ret, i;
-+	unsigned long ulcm;
- 
- 	if (fb_pdata == NULL) {
- 		dev_err(&device->dev, "Can not get platform data\n");
-@@ -1362,7 +1364,8 @@ static int __devinit fb_probe(struct platform_device *device)
- 
- 	/* allocate frame buffer */
- 	par->vram_size = lcdc_info->width * lcdc_info->height * lcd_cfg->bpp;
--	par->vram_size = PAGE_ALIGN(par->vram_size/8);
-+	ulcm = lcm((lcdc_info->width * lcd_cfg->bpp)/8, PAGE_SIZE);
-+	par->vram_size = roundup(par->vram_size/8, ulcm);
- 	par->vram_size = par->vram_size * LCD_NUM_BUFFERS;
- 
- 	par->vram_virt = dma_alloc_coherent(NULL,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0063-beaglebone-dvi-cape-audio-hacks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0063-beaglebone-dvi-cape-audio-hacks.patch
deleted file mode 100644
index f429e74..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0063-beaglebone-dvi-cape-audio-hacks.patch
+++ /dev/null
@@ -1,217 +0,0 @@
-From 81ca4844089a80e1b1a285ce661f662a04312e81 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 23 May 2012 15:51:12 +0200
-Subject: [PATCH 63/79] beaglebone: dvi cape audio hacks
-
----
- arch/arm/mach-omap2/board-am335xevm.c |   72 ++++++++++++++++++++++++++-------
- arch/arm/mach-omap2/devices.c         |    2 +-
- sound/soc/codecs/tlv320aic3x.c        |    2 +-
- sound/soc/davinci/davinci-evm.c       |    7 ++--
- 4 files changed, 64 insertions(+), 19 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index e8ce381..1f2d1fd 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -43,6 +43,8 @@
- #include <linux/can/platform/mcp251x.h>
- #include <linux/input/ti_tscadc.h>
- 
-+#include <sound/tlv320aic3x.h>
-+
- /* LCD controller is similar to DA850 */
- #include <video/da8xx-fb.h>
- 
-@@ -315,7 +317,7 @@ static struct tsc_data bone_touchscreen_data  = {
- };
- 
- static u8 am335x_iis_serializer_direction1[] = {
--	INACTIVE_MODE,	INACTIVE_MODE,	TX_MODE,	RX_MODE,
-+	INACTIVE_MODE,	INACTIVE_MODE,	RX_MODE,	TX_MODE,
- 	INACTIVE_MODE,	INACTIVE_MODE,	INACTIVE_MODE,	INACTIVE_MODE,
- 	INACTIVE_MODE,	INACTIVE_MODE,	INACTIVE_MODE,	INACTIVE_MODE,
- 	INACTIVE_MODE,	INACTIVE_MODE,	INACTIVE_MODE,	INACTIVE_MODE,
-@@ -334,6 +336,19 @@ static struct snd_platform_data am335x_evm_snd_data1 = {
- 	.rxnumevt	= 1,
- };
- 
-+static struct snd_platform_data bone_snd_data1 = {
-+	.tx_dma_offset	= 0x46000000,	/* McASP0*/
-+	.rx_dma_offset	= 0x46000000,
-+	.op_mode	= DAVINCI_MCASP_IIS_MODE,
-+	.num_serializer	= ARRAY_SIZE(am335x_iis_serializer_direction1),
-+	.tdm_slots	= 2,
-+	.serial_dir	= am335x_iis_serializer_direction1,
-+	.asp_chan_q	= EVENTQ_2,
-+	.version	= MCASP_VERSION_3,
-+	.txnumevt	= 1,
-+	.rxnumevt	= 1,
-+};
-+
- static struct omap2_hsmmc_info am335x_mmc[] __initdata = {
- 	{
- 		.mmc            = 1,
-@@ -796,11 +811,18 @@ static struct pinmux_config mcasp1_pin_mux[] = {
- 	{"mii1_crs.mcasp1_aclkx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
- 	{"mii1_rxerr.mcasp1_fsx", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
- 	{"mii1_col.mcasp1_axr2", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
--	{"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 |
--						AM33XX_PIN_INPUT_PULLDOWN},
-+	{"rmii1_refclk.mcasp1_axr3", OMAP_MUX_MODE4 | AM33XX_PIN_INPUT_PULLDOWN},
- 	{NULL, 0},
- };
- 
-+/* Module pin mux for mcasp0 */
-+static struct pinmux_config mcasp0_pin_mux[] = {
-+	{"mcasp0_aclkx.mcasp0_aclkx", OMAP_MUX_MODE0 |AM33XX_PIN_INPUT_PULLDOWN},
-+	{"mcasp0_fsx.mcasp0_fsx", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLDOWN},
-+	{"mcasp0_ahclkr.mcasp0_axr2", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
-+	{"mcasp0_ahclkx.mcasp0_axr3", OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLDOWN},
-+	{NULL, 0},
-+};
- 
- /* Module pin mux for mmc0 */
- static struct pinmux_config mmc0_pin_mux[] = {
-@@ -1956,6 +1978,15 @@ static void evm_nand_init(int evm_id, int profile)
- 	omap_init_elm();
- }
- 
-+static struct regulator_consumer_supply bone_audio_supplies[] = {
-+        /* tlv320aic3x analog supplies */
-+        REGULATOR_SUPPLY("AVDD", "3-001b"),
-+        REGULATOR_SUPPLY("DRVDD", "3-001b"),
-+        /* tlv320aic3x digital supplies */
-+        REGULATOR_SUPPLY("IOVDD", "3-001b"),
-+        REGULATOR_SUPPLY("DVDD", "3-001b"),
-+};
-+
- /* TPS65217 voltage regulator support */
- 
- /* 1.8V */
-@@ -2229,6 +2260,25 @@ static void tt3201_init(int evm_id, int profile)
- 	am33xx_d_can_init(1);
- }
- 
-+/* Setup McASP 1 */
-+static void mcasp1_init(int evm_id, int profile)
-+{
-+	/* Configure McASP */
-+	setup_pin_mux(mcasp1_pin_mux);
-+	am335x_register_mcasp(&am335x_evm_snd_data1, 1);
-+	return;
-+}
-+
-+/* Setup McASP 0 */
-+static void mcasp0_init(int evm_id, int profile)
-+{
-+	printk("Beaglebone cape: mcasp0 init\n");
-+	/* Configure McASP */
-+	setup_pin_mux(mcasp0_pin_mux);
-+	am335x_register_mcasp(&bone_snd_data1, 0);
-+	return;
-+}
-+
- static const char* cape_pins[] = {
- /*
-   From SRM RevA5.0.1:
-@@ -2567,7 +2617,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		
- 		beaglebone_leds_free = 0;
- 		dvileds_init(0,0);
--		
-+		mcasp0_init(0,0);
-+	
- 		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
- 			pr_info("BeagleBone cape: DVI init for revision A1 or older\n");
- 			setup_pin_mux(dvia1_pin_mux);
-@@ -2715,6 +2766,9 @@ static struct at24_platform_data cape_eeprom_info = {
- };
- 
- static struct i2c_board_info __initdata cape_i2c_boardinfo[] = {
-+	{
-+		I2C_BOARD_INFO("tlv320aic3x", 0x1b),
-+	},
-         {
-                 I2C_BOARD_INFO("24c256", 0x54),
-                 .platform_data  = &cape_eeprom_info,
-@@ -2741,16 +2795,6 @@ static void i2c2_init(int evm_id, int profile)
-         return;
- }
- 
--
--/* Setup McASP 1 */
--static void mcasp1_init(int evm_id, int profile)
--{
--	/* Configure McASP */
--	setup_pin_mux(mcasp1_pin_mux);
--	am335x_register_mcasp(&am335x_evm_snd_data1, 1);
--	return;
--}
--
- static void mmc1_init(int evm_id, int profile)
- {
- 	setup_pin_mux(mmc1_pin_mux);
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index 9e029da..41c9b0f 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -218,7 +218,6 @@ int __init am335x_register_mcasp(struct snd_platform_data *pdata, int ctrl_nr)
- 			dev_name, oh->name);
- 	return IS_ERR(pdev) ? PTR_ERR(pdev) : 0;
- }
--
- #else
- int __init am335x_register_mcasp(struct snd_platform_data *pdata, int ctrl_nr)
- {
-@@ -234,6 +233,7 @@ struct platform_device am33xx_pcm_device = {
- 
- static void am33xx_init_pcm(void)
- {
-+	printk("cape: pcm register");
- 	platform_device_register(&am33xx_pcm_device);
- }
- 
-diff --git a/sound/soc/codecs/tlv320aic3x.c b/sound/soc/codecs/tlv320aic3x.c
-index cdb473c..5567756 100644
---- a/sound/soc/codecs/tlv320aic3x.c
-+++ b/sound/soc/codecs/tlv320aic3x.c
-@@ -52,7 +52,7 @@
- 
- #include "tlv320aic3x.h"
- 
--#define AIC3X_NUM_SUPPLIES	4
-+#define AIC3X_NUM_SUPPLIES	0
- static const char *aic3x_supply_names[AIC3X_NUM_SUPPLIES] = {
- 	"IOVDD",	/* I/O Voltage */
- 	"DVDD",		/* Digital Core Voltage */
-diff --git a/sound/soc/davinci/davinci-evm.c b/sound/soc/davinci/davinci-evm.c
-index f6a62c3..7ad7b37 100644
---- a/sound/soc/davinci/davinci-evm.c
-+++ b/sound/soc/davinci/davinci-evm.c
-@@ -244,9 +244,9 @@ static struct snd_soc_dai_link da850_evm_dai = {
- static struct snd_soc_dai_link am335x_evm_dai = {
- 	.name = "TLV320AIC3X",
- 	.stream_name = "AIC3X",
--	.cpu_dai_name = "davinci-mcasp.1",
-+	.cpu_dai_name = "davinci-mcasp.0",
- 	.codec_dai_name = "tlv320aic3x-hifi",
--	.codec_name = "tlv320aic3x-codec.2-001b",
-+	.codec_name = "tlv320aic3x-codec.3-001b",
- 	.platform_name = "davinci-pcm-audio",
- 	.init = evm_aic3x_init,
- 	.ops = &evm_ops,
-@@ -331,8 +331,9 @@ static int __init evm_init(void)
- 		return -EINVAL;
- 
- 	evm_snd_device = platform_device_alloc("soc-audio", index);
--	if (!evm_snd_device)
-+	if (!evm_snd_device) {
- 		return -ENOMEM;
-+	}
- 
- 	platform_set_drvdata(evm_snd_device, evm_snd_dev_data);
- 	ret = platform_device_add(evm_snd_device);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0064-beaglebone-always-execute-the-pin-free-checks.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0064-beaglebone-always-execute-the-pin-free-checks.patch
deleted file mode 100644
index 2c2b12c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0064-beaglebone-always-execute-the-pin-free-checks.patch
+++ /dev/null
@@ -1,68 +0,0 @@
-From b7349f4b517f8736efcc1a2c1469b07d7361ee5f Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 23 May 2012 17:39:12 +0200
-Subject: [PATCH 64/79] beaglebone: always execute the pin free checks
-
-This code needs to run when there are no capes and when there are capes present.
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   26 +++++++++++++-------------
- 1 file changed, 13 insertions(+), 13 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 1f2d1fd..da6020b 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2589,7 +2589,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	ret = mem_acc->read(mem_acc, (char *)&cape_config, 0, sizeof(cape_config));
- 	if (ret != sizeof(cape_config)) {
- 		pr_warning("BeagleBone cape EEPROM: could not read eeprom at address 0x%x\n", capecount + 0x53);
--		return;
-+		goto out2;
- 	}
- 
- 	if (cape_config.header != AM335X_EEPROM_HEADER) {
-@@ -2724,6 +2724,16 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_w1gpio_free = 0;
- 	}
- 
-+	goto out2;
-+out:
-+	/*
-+	 * If the EEPROM hasn't been programed or an incorrect header
-+	 * or board name are read, assume this is an old beaglebone board
-+	 * (< Rev A3)
-+	 */
-+	pr_err("Could not detect BeagleBone cape properly\n");
-+	beaglebone_cape_detected = false;
-+out2:
- 	if (capecount > 3) {
- 		if (beaglebone_tsadcpins_free == 1) {
- 			pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
-@@ -2741,20 +2751,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 			spi_register_board_info(bone_spidev2_info, ARRAY_SIZE(bone_spidev2_info));
- 		}
- 		if(beaglebone_w1gpio_free == 1) {
-+			pr_info("BeagleBone cape: initializing w1-gpio\n");
- 			bonew1_gpio_init(0,0);
- 		}
--	}	
--	
--	return;
--out:
--	/*
--	 * If the EEPROM hasn't been programed or an incorrect header
--	 * or board name are read, assume this is an old beaglebone board
--	 * (< Rev A3)
--	 */
--	pr_err("Could not detect BeagleBone cape properly\n");
--	beaglebone_cape_detected = false;
--
-+	}
- }
- 
- static struct at24_platform_data cape_eeprom_info = {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0065-ti_tscadc-switch-to-16x-averaging.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0065-ti_tscadc-switch-to-16x-averaging.patch
deleted file mode 100644
index 5bdf161..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0065-ti_tscadc-switch-to-16x-averaging.patch
+++ /dev/null
@@ -1,53 +0,0 @@
-From bd18b67644c8107920db6911aa16be680af23cf1 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 28 May 2012 09:56:45 +0200
-Subject: [PATCH 65/79] ti_tscadc: switch to 16x averaging
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/input/touchscreen/ti_tscadc.c |    8 ++++----
- 1 file changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/input/touchscreen/ti_tscadc.c b/drivers/input/touchscreen/ti_tscadc.c
-index 7df7bb2..ae6c4c4 100644
---- a/drivers/input/touchscreen/ti_tscadc.c
-+++ b/drivers/input/touchscreen/ti_tscadc.c
-@@ -161,7 +161,7 @@ static void tsc_adc_step_config(struct tscadc *ts_dev, int channel)
-  	 * sample channel 1 (SEL_INP mux bits = 0)
-  	 */
- 	stepconfig = TSCADC_STEPCONFIG_MODE_SWONESHOT |
--		TSCADC_STEPCONFIG_4SAMPLES_AVG |
-+		TSCADC_STEPCONFIG_16SAMPLES_AVG |
- 		((channel-1) << 19);
- 	
- 	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
-@@ -242,7 +242,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 	delay = TSCADC_STEPCONFIG_SAMPLEDLY | TSCADC_STEPCONFIG_OPENDLY;
- 
- 	stepconfigx = TSCADC_STEPCONFIG_MODE_HWSYNC |
--			TSCADC_STEPCONFIG_4SAMPLES_AVG | TSCADC_STEPCONFIG_XPP;
-+			TSCADC_STEPCONFIG_16SAMPLES_AVG | TSCADC_STEPCONFIG_XPP;
- 
- 	switch (ts_dev->wires) {
- 	case 4:
-@@ -279,7 +279,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 	}
- 
- 	stepconfigy = TSCADC_STEPCONFIG_MODE_HWSYNC |
--			TSCADC_STEPCONFIG_4SAMPLES_AVG | TSCADC_STEPCONFIG_YNN |
-+			TSCADC_STEPCONFIG_16SAMPLES_AVG | TSCADC_STEPCONFIG_YNN |
- 			TSCADC_STEPCONFIG_INM | TSCADC_STEPCONFIG_FIFO1;
- 	switch (ts_dev->wires) {
- 	case 4:
-@@ -324,7 +324,7 @@ static void tsc_step_config(struct tscadc *ts_dev)
- 
- 	 /* Configure to calculate pressure */
- 	stepconfigz1 = TSCADC_STEPCONFIG_MODE_HWSYNC |
--				TSCADC_STEPCONFIG_4SAMPLES_AVG |
-+				TSCADC_STEPCONFIG_16SAMPLES_AVG |
- 				TSCADC_STEPCONFIG_XNP |
- 				TSCADC_STEPCONFIG_YPN | TSCADC_STEPCONFIG_INM;
- 	stepconfigz2 = stepconfigz1 | TSCADC_STEPCONFIG_Z1 |
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0066-video-da8xx-fb-Add-Newhaven-LCD-Panel-details.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0066-video-da8xx-fb-Add-Newhaven-LCD-Panel-details.patch
deleted file mode 100644
index ed494ec..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0066-video-da8xx-fb-Add-Newhaven-LCD-Panel-details.patch
+++ /dev/null
@@ -1,45 +0,0 @@
-From b3830f85231a530a9a83a5f8f6ff893aa0be2d60 Mon Sep 17 00:00:00 2001
-From: "Patil, Rachna" <rachna at ti.com>
-Date: Thu, 26 Apr 2012 15:20:20 +0530
-Subject: [PATCH 66/79] video: da8xx-fb: Add Newhaven LCD Panel details
-
-This patch adds details for Newhaven display Panel.
-This panel is used on AM335x EVM-SK An upcoming TI EVM.
-
-Signed-off-by: Patil, Rachna <rachna at ti.com>
-
-Conflicts:
-
-	drivers/video/da8xx-fb.c
----
- drivers/video/da8xx-fb.c |   14 ++++++++++++++
- 1 file changed, 14 insertions(+)
-
-diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
-index 9aaca5d..010a8bc 100644
---- a/drivers/video/da8xx-fb.c
-+++ b/drivers/video/da8xx-fb.c
-@@ -301,6 +301,20 @@ static struct da8xx_panel known_lcd_panels[] = {
- 		.pxl_clk = 8000000,
- 		.invert_pxl_clk = 0,
- 	},	
-+	/* Newhaven Display */
-+	[5] = {
-+		.name = "NHD-4.3-ATXI#-T-1",
-+		.width = 480,
-+		.height = 272,
-+		.hfp = 8,
-+		.hbp = 43,
-+		.hsw = 4,
-+		.vfp = 4,
-+		.vbp = 12,
-+		.vsw = 10,
-+		.pxl_clk = 9000000,
-+		.invert_pxl_clk = 0,
-+	},
- };
- 
- /* Enable the Raster Engine of the LCD Controller */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0067-beaglebone-add-support-for-the-4.3-lcd-cape-with-res.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0067-beaglebone-add-support-for-the-4.3-lcd-cape-with-res.patch
deleted file mode 100644
index cf39615..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0067-beaglebone-add-support-for-the-4.3-lcd-cape-with-res.patch
+++ /dev/null
@@ -1,94 +0,0 @@
-From 8652d1a5b1a191a460de6b7214168dc77b6ceeb1 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 29 May 2012 14:12:44 +0200
-Subject: [PATCH 67/79] beaglebone: add support for the 4.3" lcd cape with
- resistive touchscreen
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   48 +++++++++++++++++++++++++++------
- 1 file changed, 40 insertions(+), 8 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index da6020b..e360b22 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -272,6 +272,12 @@ struct da8xx_lcdc_platform_data bbtoys35_pdata = {
- 	.type			= "CDTech_S035Q01",
- };
- 
-+struct da8xx_lcdc_platform_data bbtoys43_pdata = {
-+	.manu_name		= "BBToys",
-+	.controller_data	= &lcd_cfg,
-+	.type			= "NHD-4.3-ATXI#-T-1",
-+};
-+
- static const struct display_panel dvi_panel = {
- 	WVGA,
- 	16,
-@@ -562,14 +568,14 @@ static struct pinmux_config batterycape_pin_mux[] = {
- 	
- /* Module pin mux for LCDC */
- static struct pinmux_config lcdc_pin_mux[] = {
--	{"gpmc_ad8.lcd_data16",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad9.lcd_data17",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad10.lcd_data18",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad11.lcd_data19",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad12.lcd_data20",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad13.lcd_data21",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad14.lcd_data22",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
--	{"gpmc_ad15.lcd_data23",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad8.lcd_data23",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad9.lcd_data22",		OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad10.lcd_data21",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad11.lcd_data20",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad12.lcd_data19",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad13.lcd_data18",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad14.lcd_data17",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_ad15.lcd_data16",	OMAP_MUX_MODE1 | AM33XX_PIN_OUTPUT},
- 	{NULL, 0},
- };
- 
-@@ -1659,6 +1665,24 @@ static void bbtoys35lcd_init(int evm_id, int profile)
- 	return;
- }
- 
-+static void bbtoys43lcd_init(int evm_id, int profile)
-+{
-+	setup_pin_mux(lcdc16_pin_mux);
-+	setup_pin_mux(lcdc_pin_mux);
-+	
-+	// we are being stupid and setting pixclock from here instead of da8xx-fb.c
-+	if (conf_disp_pll(18000000)) {
-+		pr_info("Failed to set pixclock to 18000000, not attempting to"
-+				"register LCD cape\n");
-+		return;
-+	}
-+	
-+	if (am33xx_register_lcdc(&bbtoys43_pdata))
-+		pr_info("Failed to register Beagleboardtoys 4.3\" LCD cape device\n");
-+	
-+	return;
-+}
-+
- #define BEAGLEBONEDVI_PDn_A1  GPIO_TO_PIN(1, 7)
- #define BEAGLEBONEDVI_PDn_A2  GPIO_TO_PIN(1, 31)
- 
-@@ -2672,6 +2696,14 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		beaglebone_leds_free = 0;
- 		lcd3leds_init(0,0);
- 	}
-+
-+	if (!strncmp("BB-BONE-LCD4-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing LCD cape\n");
-+		bbtoys43lcd_init(0,0);
-+		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
-+		tsc_init(0,0);
-+		beaglebone_tsadcpins_free = 0;
-+	}
- 	
- 	if (!strncmp("BB-BONE-VGA-01", cape_config.partnumber, 14)) {
- 		pr_info("BeagleBone cape: initializing VGA cape\n");
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0068-beaglebone-add-support-for-LCD3-rev-A1.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0068-beaglebone-add-support-for-LCD3-rev-A1.patch
deleted file mode 100644
index 1f22cd7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0068-beaglebone-add-support-for-LCD3-rev-A1.patch
+++ /dev/null
@@ -1,132 +0,0 @@
-From 590a240f4bb7c6eeda5d11c9040821a71edefc53 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Mon, 4 Jun 2012 14:38:02 +0200
-Subject: [PATCH 68/79] beaglebone: add support for LCD3 rev A1
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   94 +++++++++++++++++++++++++++++----
- 1 file changed, 83 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index e360b22..d83431a 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1136,7 +1136,7 @@ static struct pinmux_config lcd3_keys_pin_mux[] = {
- 	{NULL, 0},
- };
- 
--/* Configure GPIOs for lcd3 keys */
-+/* Configure GPIOs for lcd3 rev A or earlier keys */
- static struct gpio_keys_button beaglebone_lcd3_gpio_keys[] = {
- 	{
- 		.code                   = KEY_LEFT,
-@@ -1193,14 +1193,72 @@ static struct platform_device beaglebone_lcd3_keys = {
- 	},
- };
- 
--static void beaglebone_lcd3_keys_init(int evm_id, int profile)
--{
--	int err;
--	setup_pin_mux(lcd3_keys_pin_mux);
--	err = platform_device_register(&beaglebone_lcd3_keys);
--	if (err)
--		pr_err("failed to register gpio keys for LCD3 cape\n");
--}
-+/* pinmux for lcd3 A1 or newer keys */
-+static struct pinmux_config lcd3a1_keys_pin_mux[] = {
-+	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, // Left
-+	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //Right
-+	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // Up
-+	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //Down
-+	{"mcasp0_fsr.gpio3_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, // Enter
-+	{NULL, 0},
-+};
-+
-+/* Configure GPIOs for lcd3 rev A1 or newer keys */
-+static struct gpio_keys_button lcd3a1_gpio_keys[] = {
-+	{
-+		.code                   = KEY_LEFT,
-+		.gpio                   = GPIO_TO_PIN(1, 16),
-+		.active_low             = true,
-+		.desc                   = "left",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_RIGHT,
-+		.gpio                   = GPIO_TO_PIN(1, 17),
-+		.active_low             = true,
-+		.desc                   = "right",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_UP,
-+		.gpio                   = GPIO_TO_PIN(1, 19),
-+		.active_low             = true,
-+		.desc                   = "up",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_DOWN,
-+		.gpio                   = GPIO_TO_PIN(3, 16),
-+		.active_low             = true,
-+		.desc                   = "down",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_ENTER,
-+		.gpio                   = GPIO_TO_PIN(3, 19),
-+		.active_low             = true,
-+		.desc                   = "enter",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+};
-+
-+static struct gpio_keys_platform_data lcd3a1_gpio_key_info = {
-+	.buttons        = lcd3a1_gpio_keys,
-+	.nbuttons       = ARRAY_SIZE(lcd3a1_gpio_keys),
-+};
-+
-+static struct platform_device lcd3a1_keys = {
-+	.name   = "gpio-keys",
-+	.id     = -1,
-+	.dev    = {
-+		.platform_data  = &lcd3a1_gpio_key_info,
-+	},
-+};
- 
- /*
- * @evm_id - evm id which needs to be configured
-@@ -2691,8 +2749,22 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: initializing LCD cape touchscreen\n");
- 		tsc_init(0,0);
- 		beaglebone_tsadcpins_free = 0;
--		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
--		beaglebone_lcd3_keys_init(0,0);
-+		
-+		if (!strncmp("00A0", cape_config.version, 4)) {
-+			pr_info("BeagleBone cape: Registering gpio-keys for LCD3 rev A or earlier cape\n");
-+			int err;
-+			setup_pin_mux(lcd3_keys_pin_mux);
-+			err = platform_device_register(&beaglebone_lcd3_keys);
-+			if (err)
-+				pr_err("failed to register gpio keys for LCD3 rev A or earlier cape\n");
-+		} else {
-+			pr_info("BeagleBone cape: Registering gpio-keys for LCD rev A1 or later cape\n");
-+			int err;
-+			setup_pin_mux(lcd3a1_keys_pin_mux);
-+			err = platform_device_register(&lcd3a1_keys);
-+			if (err)
-+				pr_err("failed to register gpio keys for LCD3 rev A1 or later cape\n");
-+		}
- 		beaglebone_leds_free = 0;
- 		lcd3leds_init(0,0);
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0069-beaglebone-fix-buttons-spidev-clash-when-using-mcasp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0069-beaglebone-fix-buttons-spidev-clash-when-using-mcasp.patch
deleted file mode 100644
index 08330a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0069-beaglebone-fix-buttons-spidev-clash-when-using-mcasp.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From dbe62e3346ee4423a2d3c83e6390ef39c2a0a0bf Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 6 Jun 2012 11:20:21 +0200
-Subject: [PATCH 69/79] beaglebone: fix buttons/spidev clash when using
- mcasp0_axr0.gpio3_16
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   13 +++++++------
- 1 file changed, 7 insertions(+), 6 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index d83431a..15ee8af 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1051,12 +1051,11 @@ static void volume_keys_init(int evm_id, int profile)
- 
- /* pinmux for lcd7 keys */
- static struct pinmux_config lcd7_keys_pin_mux[] = {
--	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
--	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
--	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
--	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
--	{"mcasp0_fsr.gpio3_19",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
--	{"gpmc_ben1.gpio1_28",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT},
-+	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //left
-+	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //right
-+	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //up
-+	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //down
-+	{"mcasp0_fsr.gpio3_19",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //enter
- 	{NULL, 0},
- };
- 
-@@ -2738,6 +2737,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
- 		beaglebone_lcd7_keys_init(0,0);
- 		
-+		beaglebone_spi1_free = 0;
- 		// A1 or newer
- 		beaglebone_leds_free = 0;
- 		lcd7leds_init(0,0);
-@@ -2765,6 +2765,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 			if (err)
- 				pr_err("failed to register gpio keys for LCD3 rev A1 or later cape\n");
- 		}
-+		beaglebone_spi1_free = 0;
- 		beaglebone_leds_free = 0;
- 		lcd3leds_init(0,0);
- 	}
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0070-beaglebone-fix-LCD3-led-key-overlap.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0070-beaglebone-fix-LCD3-led-key-overlap.patch
deleted file mode 100644
index 942ab61..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0070-beaglebone-fix-LCD3-led-key-overlap.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 2a148ebd4606ed6a5d24287aa7e5701de3259057 Mon Sep 17 00:00:00 2001
-From: Damian <damian.eppel at teleca.com>
-Date: Tue, 5 Jun 2012 23:14:58 +0200
-Subject: [PATCH 70/79] beaglebone: fix LCD3 led/key overlap
-
-Signed-off-by: Koen Kooi <koen at circuitco.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |    9 +--------
- 1 file changed, 1 insertion(+), 8 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 15ee8af..9a56a769 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -639,7 +639,6 @@ static struct pinmux_config dvia2_pin_mux[] = {
- /* Module pin mux for Beagleboardtoys 3.5" LCD cape */
- static struct pinmux_config bbtoys35_pin_mux[] = {
- 	{"gpmc_a2.gpio1_18", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR0 LED
--	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // USR1 LED
- 	{NULL, 0},
- };
- 
-@@ -1196,7 +1195,7 @@ static struct platform_device beaglebone_lcd3_keys = {
- static struct pinmux_config lcd3a1_keys_pin_mux[] = {
- 	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, // Left
- 	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //Right
--	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // Up
-+	{"gpmc_a3.gpio1_19", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, // Up
- 	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //Down
- 	{"mcasp0_fsr.gpio3_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, // Enter
- 	{NULL, 0},
-@@ -1424,7 +1423,6 @@ static struct platform_device dvi_leds_gpio = {
- };
- 
- #define BEAGLEBONELCD3_USR0_LED  GPIO_TO_PIN(1, 18)
--#define BEAGLEBONELCD3_USR1_LED  GPIO_TO_PIN(1, 19)
- 
- static struct gpio_led lcd3_gpio_leds[] = {
- 	{
-@@ -1450,11 +1448,6 @@ static struct gpio_led lcd3_gpio_leds[] = {
- 		.default_trigger	= "heartbeat",
- 		.gpio			= BEAGLEBONELCD3_USR0_LED,
- 	},
--	{
--		.name			= "lcd3::usr1",
--		.default_trigger	= "mmc0",
--		.gpio			= BEAGLEBONELCD3_USR1_LED,
--	},
- };
- 
- static struct gpio_led_platform_data lcd3_gpio_led_info = {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0071-beaglebone-fix-audio-spi-clash.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0071-beaglebone-fix-audio-spi-clash.patch
deleted file mode 100644
index 02bf495..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0071-beaglebone-fix-audio-spi-clash.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-From 1ec20c05453acf20b9d5d385ac9574e9ab64347d Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 26 Jun 2012 08:39:04 +0200
-Subject: [PATCH 71/79] beaglebone: fix audio/spi clash
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 9a56a769..d2481af 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2691,6 +2691,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		
- 		beaglebone_leds_free = 0;
- 		dvileds_init(0,0);
-+		beaglebone_spi1_free = 0;
- 		mcasp0_init(0,0);
- 	
- 		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0072-beaglebone-add-support-for-QuickLogic-Camera-interfa.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0072-beaglebone-add-support-for-QuickLogic-Camera-interfa.patch
deleted file mode 100644
index 724c3dd..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0072-beaglebone-add-support-for-QuickLogic-Camera-interfa.patch
+++ /dev/null
@@ -1,1612 +0,0 @@
-From e3a4f83627a111ae21ea8c6521ad98201f55eacc Mon Sep 17 00:00:00 2001
-From: Dan Aizenstros <daizenstros at quicklogic.com>
-Date: Fri, 29 Jun 2012 13:57:49 -0400
-Subject: [PATCH 72/79] beaglebone: add support for QuickLogic Camera
- interface on camera cape
-
-Signed-off-by: Dan Aizenstros <daizenstros at quicklogic.com>
----
- arch/arm/mach-omap2/board-am335xevm.c         |  205 ++++-
- arch/arm/mach-omap2/devices.c                 |    2 +-
- arch/arm/plat-omap/include/plat/dma-33xx.h    |    1 +
- drivers/media/video/Kconfig                   |    7 +
- drivers/media/video/Makefile                  |    2 +
- drivers/media/video/cssp_camera/Makefile      |    3 +
- drivers/media/video/cssp_camera/cssp_camera.c | 1119 +++++++++++++++++++++++++
- drivers/media/video/cssp_camera/cssp_camera.h |  148 ++++
- 8 files changed, 1478 insertions(+), 9 deletions(-)
- create mode 100644 drivers/media/video/cssp_camera/Makefile
- create mode 100644 drivers/media/video/cssp_camera/cssp_camera.c
- create mode 100644 drivers/media/video/cssp_camera/cssp_camera.h
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index d2481af..22a740f 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -65,6 +65,10 @@
- #include <plat/mmc.h>
- #include <plat/emif.h>
- #include <plat/nand.h>
-+#include <plat/dma-33xx.h>
-+
-+#include <media/soc_camera.h>
-+#include <media/mt9t112.h>
- 
- #include "board-flash.h"
- #include "cpuidle33xx.h"
-@@ -803,6 +807,42 @@ static struct pinmux_config i2c1_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* Pin mux for GPMC bus */
-+static struct pinmux_config gpmc_pin_mux[] = {
-+	{"gpmc_ad0.gpmc_ad0",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad1.gpmc_ad1",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad2.gpmc_ad2",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad3.gpmc_ad3",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad4.gpmc_ad4",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad5.gpmc_ad5",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad6.gpmc_ad6",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad7.gpmc_ad7",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad8.gpmc_ad8",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad9.gpmc_ad9",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad10.gpmc_ad10",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad11.gpmc_ad11",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad12.gpmc_ad12",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad13.gpmc_ad13",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad14.gpmc_ad14",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_ad15.gpmc_ad15",	  OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_wait0.gpmc_wait0", OMAP_MUX_MODE0 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_wpn.gpmc_wpn",	  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
-+	{"gpmc_csn1.gpmc_csn1",	  OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
-+	{"gpmc_advn_ale.gpmc_advn_ale",  OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
-+	{"gpmc_oen_ren.gpmc_oen_ren",	 OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
-+	{"gpmc_wen.gpmc_wen",     OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
-+	{"gpmc_ben0_cle.gpmc_ben0_cle",	 OMAP_MUX_MODE0 | AM33XX_PULL_DISA},
-+	{"gpmc_clk.gpmc_clk",	 OMAP_MUX_MODE0 | AM33XX_PIN_INPUT},
-+	{"ecap0_in_pwm0_out.xdma_event_intr2", OMAP_MUX_MODE6 | AM33XX_PIN_INPUT}, // DMAREQ
-+	{NULL, 0},
-+};
-+
-+static struct pinmux_config camera_cape_pin_mux[] = {
-+	{"spi0_d1.gpio0_4",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT },		// QL CSSP and Camera Sensor Reset
-+	{"spi0_cs0.gpio0_5",   OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP },	// 1V8 and 2V8 Power Enable
-+	{NULL, 0},
-+};
-+
- static struct pinmux_config i2c2_pin_mux[] = {
- 	{"uart1_ctsn.i2c2_sda",    OMAP_MUX_MODE3 | AM33XX_SLEWCTRL_SLOW |
- 					AM33XX_PIN_INPUT_PULLUP},
-@@ -1802,6 +1842,156 @@ static void dvileds_init(int evm_id, int profile )
- 		pr_err("failed to register BeagleBone DVI cape LEDS\n");
- }
- 
-+static struct resource cssp_camera_resources[] = {
-+	{
-+		.name = "gpmc_phys_mem_slot",
-+		.flags = IORESOURCE_MEM,
-+	},
-+};
-+
-+static struct mt9t112_camera_info mt9t111_cam_info = {
-+	/* divider calculated for 32Mhz CAM_MCLK */
-+	.divider = {
-+		.m = 24, .n = 1,
-+		.p1 = 0, .p2 = 7, .p3 = 0, .p4 = 11, .p5 = 15, .p6 = 7, .p7 = 0,
-+	},
-+};
-+
-+static struct soc_camera_link mt9t111_camera_link =  {
-+	.priv = &mt9t111_cam_info,
-+	.i2c_adapter_id = 3,
-+};
-+
-+static struct i2c_board_info i2c_camera = {
-+	I2C_BOARD_INFO("mt9t112", 0x3c),
-+	.platform_data = &mt9t111_camera_link,
-+};
-+
-+struct cssp_cam_platform_data {
-+	struct i2c_board_info *cam_i2c_board_info;
-+	const char *cam_clk_name;
-+	int dma_ch;
-+	int cssp_reset_pin;
-+};
-+
-+static struct cssp_cam_platform_data cssp_cam_platform_data = {
-+	.cam_i2c_board_info = &i2c_camera,
-+	.cam_clk_name = "clkout2_ck",
-+	.dma_ch = AM33XX_DMA_XDMA_EVENT_INTR2,
-+	.cssp_reset_pin = GPIO_TO_PIN(0, 4),
-+};
-+
-+static struct platform_device cssp_camera = {
-+	.name  = "cssp-camera",
-+	.id    = -1,
-+	.dev   = {
-+		.platform_data = &cssp_cam_platform_data,
-+	},
-+	.num_resources = sizeof(cssp_camera_resources) / sizeof(cssp_camera_resources[0]),
-+	.resource = cssp_camera_resources,
-+};
-+
-+static struct gpmc_timings cssp_timings = {
-+	/* Minimum clock period for synchronous mode (in picoseconds) */
-+	.sync_clk = 10000,
-+
-+	.cs_on = 0,
-+	.cs_rd_off = 23 * 10,		/* Read deassertion time */
-+	.cs_wr_off = 23 * 10,		/* Write deassertion time */
-+
-+	/* ADV signal timings corresponding to GPMC_CONFIG3 */
-+	.adv_on = 0,			/* Assertion time */
-+	.adv_rd_off = 2 * 10,		/* Read deassertion time */
-+	.adv_wr_off = 2 * 10,		/* Write deassertion time */
-+
-+	/* WE signals timings corresponding to GPMC_CONFIG4 */
-+	.we_on = 3 * 10,		/* WE assertion time */
-+	.we_off = 23 * 10,		/* WE deassertion time */
-+
-+	/* OE signals timings corresponding to GPMC_CONFIG4 */
-+	.oe_on = 3 * 10,		/* OE assertion time */
-+	.oe_off = 23 * 10,		/* OE deassertion time */
-+
-+	/* Access time and cycle time timings corresponding to GPMC_CONFIG5 */
-+	.page_burst_access = 1 * 10,	/* Multiple access word delay */
-+	.access = 7 * 10,		/* Start-cycle to first data valid delay */
-+	.rd_cycle = 23 * 10,		/* Total read cycle time */
-+	.wr_cycle = 23 * 10,		/* Total write cycle time */
-+
-+	/* The following are only on OMAP3430 */
-+	.wr_access = 7 * 10,		/* WRACCESSTIME */
-+	.wr_data_mux_bus = 3 * 10,	/* WRDATAONADMUXBUS */
-+};
-+
-+static int gpmc_cssp_init(void)
-+{
-+	int cs = 1; /* Chip Select on GPMC bus */
-+	int val;
-+	long unsigned int cssp_gpmc_mem_base_phys;
-+
-+	if (gpmc_cs_request(cs, SZ_16M, &cssp_gpmc_mem_base_phys) < 0) {
-+			printk(KERN_ERR "[cssp_cam platform init]: gpmc_cs_request failed\n");
-+			return -1;
-+	}
-+
-+	cssp_camera_resources[0].start = cssp_gpmc_mem_base_phys;
-+	cssp_camera_resources[0].end = cssp_gpmc_mem_base_phys + 0x1ffff;
-+
-+	if (gpmc_cs_configure(cs, GPMC_CONFIG_DEV_TYPE, GPMC_DEVICETYPE_NOR) < 0) {
-+			printk(KERN_ERR "[cssp_cam platform init]: gpmc_cs_configure failed\n");
-+			return -1;
-+	}
-+
-+	val = GPMC_CONFIG1_READMULTIPLE_SUPP;
-+	val |= GPMC_CONFIG1_READTYPE_SYNC;
-+	val |= GPMC_CONFIG1_WRITETYPE_SYNC;
-+	val |= GPMC_CONFIG1_CLKACTIVATIONTIME(1);
-+	val |= GPMC_CONFIG1_PAGE_LEN(2);
-+	val |= GPMC_CONFIG1_DEVICESIZE_16;
-+	val |= GPMC_CONFIG1_DEVICETYPE_NOR;
-+	val |= GPMC_CONFIG1_MUXADDDATA;
-+	gpmc_cs_write_reg(cs, GPMC_CS_CONFIG1, val);
-+
-+	if (gpmc_cs_set_timings(cs, &cssp_timings) < 0) {
-+		printk(KERN_ERR "Failed gpmc_cs_set_timings for QuickLogic CAMIF device\n");
-+		goto free;
-+	}
-+
-+	val = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG6);
-+	val &= 0xe0f0f030;
-+	val |= 0x07030481;
-+	gpmc_cs_write_reg(cs, GPMC_CS_CONFIG6, val);
-+
-+	printk(KERN_INFO "gpmc_cssp_init for QuickLogic CAMIF device succeeded\n");
-+
-+	return 0;
-+
-+free:
-+	gpmc_cs_free(cs);
-+
-+	printk(KERN_ERR "Could not initialize QuickLogic CAMIF device\n");
-+
-+	return -1;
-+}
-+
-+static void cssp_gpmc_init(void)
-+{
-+	struct gpmc_devices_info gpmc_device[2] = {
-+			{ NULL, GPMC_DEVICE_NOR },
-+		};
-+
-+	setup_pin_mux(camera_cape_pin_mux);
-+	setup_pin_mux(gpmc_pin_mux);
-+
-+	omap_init_gpmc(gpmc_device, sizeof(gpmc_device));
-+	gpmc_cssp_init();
-+
-+	platform_device_register(&cssp_camera);
-+
-+	printk(KERN_INFO "[cssp_cam platform init]: cssp_gpmc_init: DONE\n");
-+}
-+
-+
- static void lcd3leds_init(int evm_id, int profile )
- {
- 	int err;
-@@ -2821,6 +3011,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 	if (!strncmp("BB-BONE-CAM-01", cape_config.partnumber, 14)) {
- 		pr_info("BeagleBone cape: recognized Camera cape\n");
- 		beaglebone_w1gpio_free = 0;
-+		cssp_gpmc_init();
- 	}
- 
- 	goto out2;
-@@ -3729,15 +3920,13 @@ static struct pinmux_config clkout2_pin_mux[] = {
- 
- static void __init clkout2_enable(void)
- {
--	struct clk *ck_32;
--
--	ck_32 = clk_get(NULL, "clkout2_ck");
--	if (IS_ERR(ck_32)) {
--		pr_err("Cannot clk_get ck_32\n");
--		return;
--	}
-+	void __iomem *base;
-+	unsigned int val;
- 
--	clk_enable(ck_32);
-+	base = ioremap(0x44E00700, SZ_4K);
-+	val = (5 << 3) | (3 << 0); //32 MHz
-+	writel(val, base);
-+	iounmap(base);
- 
- 	setup_pin_mux(clkout2_pin_mux);
- }
-diff --git a/arch/arm/mach-omap2/devices.c b/arch/arm/mach-omap2/devices.c
-index 41c9b0f..3ef045e 100644
---- a/arch/arm/mach-omap2/devices.c
-+++ b/arch/arm/mach-omap2/devices.c
-@@ -968,7 +968,7 @@ static struct event_to_channel_map am33xx_xbar_event_mapping[] = {
- 	{27, -1},
- 	{28, -1},
- 	{29, -1},
--	{30, -1},
-+	{30, 20},	/* XDMA_EVENT_INTR2 */
- 	{31, -1},
- 	{-1, -1}
- };
-diff --git a/arch/arm/plat-omap/include/plat/dma-33xx.h b/arch/arm/plat-omap/include/plat/dma-33xx.h
-index bebdaa7..ded00aa 100644
---- a/arch/arm/plat-omap/include/plat/dma-33xx.h
-+++ b/arch/arm/plat-omap/include/plat/dma-33xx.h
-@@ -83,5 +83,6 @@
- #define AM33XX_DMA_PWMSS2_EPW				63
- #define AM33XX_DMA_MMCHS2_W				64	/* xBar */
- #define AM33XX_DMA_MMCHS2_R				65	/* xBar */
-+#define AM33XX_DMA_XDMA_EVENT_INTR2			93	/* xBar */
- 
- #endif
-diff --git a/drivers/media/video/Kconfig b/drivers/media/video/Kconfig
-index b303a3f..a31723f 100644
---- a/drivers/media/video/Kconfig
-+++ b/drivers/media/video/Kconfig
-@@ -1002,6 +1002,13 @@ config VIDEO_S5P_MIPI_CSIS
- 
- source "drivers/media/video/s5p-tv/Kconfig"
- 
-+config VIDEO_QL_CAMIF
-+	tristate "QuickLogic Camera Interface support (EXPERIMENTAL)"
-+	depends on VIDEO_DEV && SOC_CAMERA && SOC_OMAPAM33XX && EXPERIMENTAL
-+	select VIDEOBUF2_DMA_CONTIG
-+	---help---
-+	  This is a v4l2 driver for the QuickLogic CAMIF controller.
-+
- #
- # USB Multimedia device configuration
- #
-diff --git a/drivers/media/video/Makefile b/drivers/media/video/Makefile
-index 117f9c4..af7af692 100644
---- a/drivers/media/video/Makefile
-+++ b/drivers/media/video/Makefile
-@@ -195,6 +195,8 @@ obj-y	+= davinci/
- 
- obj-$(CONFIG_ARCH_OMAP)	+= omap/
- 
-+obj-$(CONFIG_VIDEO_QL_CAMIF)	+= cssp_camera/
-+
- ccflags-y += -Idrivers/media/dvb/dvb-core
- ccflags-y += -Idrivers/media/dvb/frontends
- ccflags-y += -Idrivers/media/common/tuners
-diff --git a/drivers/media/video/cssp_camera/Makefile b/drivers/media/video/cssp_camera/Makefile
-new file mode 100644
-index 0000000..d85a84e
---- /dev/null
-+++ b/drivers/media/video/cssp_camera/Makefile
-@@ -0,0 +1,3 @@
-+# cssp_camera
-+
-+obj-$(CONFIG_VIDEO_QL_CAMIF) += cssp_camera.o
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.c b/drivers/media/video/cssp_camera/cssp_camera.c
-new file mode 100644
-index 0000000..39aa003
---- /dev/null
-+++ b/drivers/media/video/cssp_camera/cssp_camera.c
-@@ -0,0 +1,1119 @@
-+/*
-+ * cssp-camera driver
-+ *
-+ * Based on Vivi driver
-+ *
-+ * Copyright (C) 2012 QuickLogic Corp.
-+ *
-+ * Developed for QuickLogic by:
-+ * Damian Eppel <damian.eppel at teleca.com>
-+ * Przemek Szewczyk <przemek.szewczyk at teleca.com>
-+ * Dan Aizenstros <daizenstros at quicklogic.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+
-+#include <linux/init.h>
-+#include <linux/module.h>
-+#include <linux/gpio.h>
-+#include <linux/i2c.h>
-+#include <linux/delay.h>
-+#include <linux/spinlock.h>
-+#include <linux/dma-mapping.h>
-+#include <linux/interrupt.h>
-+#include <mach/edma.h>
-+#include <linux/clk.h>
-+// V4L2 Interface *********************
-+#include <media/soc_camera.h>
-+#include <media/v4l2-mediabus.h>
-+#include <media/videobuf2-dma-contig.h>
-+#include <media/v4l2-ioctl.h>
-+#include <media/v4l2-event.h>
-+//*************************************
-+#include "cssp_camera.h"
-+
-+
-+/*
-+ * ---------------------------------------------------------------------------
-+ *  QuickLoigc Camera Interface registers
-+ * ---------------------------------------------------------------------------
-+ */
-+
-+#define REG_MODE		0x00000
-+#define REG_DATA		0x10000
-+
-+/* MODE bit shifts */
-+#define FMT_2X8_EN		BIT(15) /* Enable 2 byte format on CAMIF bus (0 - 10 bit, 1 - 16 bit 2x8) */
-+#define PCLK_POL		BIT(14) /* PCLK polarity (0 - rising edge, 1 - falling edge */
-+#define HS_EN			BIT(13) /* High speed bus (0 =< 50 MHz, 1 > 50 MHz) */
-+#define ENABLE			BIT(12)
-+
-+
-+static struct cssp_cam_fmt formats[] = {
-+	{
-+		.name	= "4:2:2, packed, YUYV",
-+		.fourcc	= V4L2_PIX_FMT_YUYV,
-+		.depth	= 16,
-+		.code	= V4L2_MBUS_FMT_YUYV8_2X8,
-+	},
-+	{
-+		.name	= "4:2:2, packed, UYVY",
-+		.fourcc	= V4L2_PIX_FMT_UYVY,
-+		.depth	= 16,
-+		.code	= V4L2_MBUS_FMT_UYVY8_2X8,
-+	},
-+	{
-+		.name	= "4:2:2, packed, VYUY",
-+		.fourcc	= V4L2_PIX_FMT_VYUY,
-+		.depth	= 16,
-+		.code	= V4L2_MBUS_FMT_VYUY8_2X8,
-+	},
-+	{
-+		.name	= "4:2:2, packed, YVYU",
-+		.fourcc	= V4L2_PIX_FMT_YVYU,
-+		.depth	= 16,
-+		.code	= V4L2_MBUS_FMT_YVYU8_2X8,
-+	},
-+	{
-+		.name	= "RGB565 (LE)",
-+		.fourcc	= V4L2_PIX_FMT_RGB565,
-+		.depth	= 16,
-+		.code	= V4L2_MBUS_FMT_RGB565_2X8_LE,
-+	},
-+	{
-+		.name	= "RGB555 (LE)",
-+		.fourcc	= V4L2_PIX_FMT_RGB555,
-+		.depth	= 16,
-+		.code	= V4L2_MBUS_FMT_RGB555_2X8_PADHI_LE,
-+	},
-+};
-+
-+
-+/***************************************************************************/
-+
-+
-+static int configure_gpio(int nr, int val, const char *name)
-+{
-+	unsigned long flags = val ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
-+	int ret;
-+	if (!gpio_is_valid(nr))
-+		return 0;
-+	ret = gpio_request_one(nr, flags, name);
-+	if (!ret)
-+		gpio_export(nr, 0);
-+	return ret;
-+}
-+
-+static int reset_cssp(struct cssp_cam_dev *cam)
-+{
-+	struct platform_device *pdev = cam->pdev;
-+	int err;
-+
-+	cam->reset_pin = ((struct cssp_cam_platform_data *)pdev->dev.platform_data)->gpio_reset_pin;
-+
-+	err = configure_gpio(cam->reset_pin, 0, "cssp_reset");
-+	if (err) {
-+		printk(KERN_ERR "[%s]: failed to configure cssp reset pin\n", pdev->name);
-+		return -1;
-+	}
-+
-+	mdelay(1);
-+
-+	gpio_direction_output(cam->reset_pin, 1);
-+
-+	return err;
-+}
-+
-+static int trigger_dma_transfer_to_buf(struct cssp_cam_dev *dev, struct vb2_buffer *vb)
-+{
-+	dma_addr_t dma_buf = vb2_dma_contig_plane_dma_addr(vb, 0);
-+
-+	if (!dma_buf) {
-+		/* Is this possible? Release the vb2_buffer with an error here, */
-+		vb2_buffer_done(vb, VB2_BUF_STATE_ERROR);
-+		dev->current_vb = NULL;
-+		return -ENOMEM;
-+	}
-+
-+	dev->dma_tr_params.dst = dma_buf;
-+
-+	// Enable DMA
-+	edma_write_slot(dev->dma_ch, &dev->dma_tr_params);
-+
-+	// Enable data capture
-+	dev->mode |= ENABLE;
-+	writew(dev->mode, dev->reg_base_virt + REG_MODE);
-+	readw(dev->reg_base_virt + REG_MODE);
-+
-+	dev->current_vb = vb;
-+
-+	return 0;
-+}
-+
-+static void dequeue_buffer_for_dma(struct cssp_cam_dev *dev)
-+{
-+	struct cssp_cam_dmaqueue *dma_q = &dev->vidq;
-+	unsigned long flags = 0;
-+
-+	spin_lock_irqsave(&dev->slock, flags);
-+	if (!list_empty(&dma_q->active)) {
-+		struct cssp_cam_buffer *buf;
-+
-+		buf = list_entry(dma_q->active.next, struct cssp_cam_buffer, list);
-+		list_del(&buf->list);
-+		spin_unlock_irqrestore(&dev->slock, flags);
-+
-+		buf->fmt = dev->fmt;
-+
-+		trigger_dma_transfer_to_buf(dev, &buf->vb);
-+	} else {
-+		spin_unlock_irqrestore(&dev->slock, flags);
-+	}
-+}
-+
-+static void dma_callback(unsigned lch, u16 ch_status, void *data)
-+{
-+	struct cssp_cam_dev *dev = (struct cssp_cam_dev *)data;
-+
-+	// Disable data capture
-+	dev->mode &= ~ENABLE;
-+	writew(dev->mode, dev->reg_base_virt + REG_MODE);
-+	readw(dev->reg_base_virt + REG_MODE);
-+
-+	if (ch_status == DMA_COMPLETE) {
-+		struct vb2_buffer *vb = dev->current_vb;
-+		struct timeval ts;
-+
-+		vb->v4l2_buf.field = dev->field;
-+		dev->field_count++;
-+		vb->v4l2_buf.sequence = dev->field_count >> 1;
-+		do_gettimeofday(&ts);
-+		vb->v4l2_buf.timestamp = ts;
-+		vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
-+		dev->current_vb = NULL;
-+		dev->frame_cnt++;
-+
-+		/* check if we have new buffer queued */
-+		dequeue_buffer_for_dma(dev);
-+	} else {
-+		printk(KERN_ERR "[cssp_camera]: EDMA error (ch_status = %d)\n", ch_status);
-+		/* we got a missed interrupt so just start a new DMA with the existing buffer */
-+		if (dev->current_vb != NULL)
-+			trigger_dma_transfer_to_buf(dev, dev->current_vb);
-+	}
-+}
-+
-+static int configure_edma(struct cssp_cam_dev *cam)
-+{
-+	struct platform_device *pdev = cam->pdev;
-+	int dma_channel;
-+
-+	dma_channel = ((struct cssp_cam_platform_data *)pdev->dev.platform_data)->dma_ch;
-+
-+	pdev->dev.dma_mask = &cam->dma_mask;
-+
-+	pdev->dev.coherent_dma_mask = (u32)~0;
-+
-+	if (dma_set_mask(&pdev->dev, (u32)~0)) {
-+		printk(KERN_ERR "[%s]: failed setting mask for DMA\n", pdev->name);
-+		return -1;
-+	}
-+
-+	cam->dma_ch = edma_alloc_channel(dma_channel, dma_callback, cam, EVENTQ_1);
-+	if (cam->dma_ch < 0) {
-+		printk(KERN_ERR "[%s]: allocating channel for DMA failed\n", pdev->name);
-+		return -EBUSY;
-+	} else {
-+		printk(KERN_ERR "[%s]: allocating channel for DMA succeeded, chan=%d\n", pdev->name, cam->dma_ch);
-+	}
-+
-+	cam->dma_tr_params.opt = TCINTEN | TCC(cam->dma_ch);
-+	cam->dma_tr_params.src = cam->reg_base_phys + REG_DATA;
-+	cam->dma_tr_params.a_b_cnt = ACNT(BYTES_PER_DMA_EVT) | BCNT((VGA_WIDTH * BYTES_PER_PIXEL) / BYTES_PER_DMA_EVT);
-+	cam->dma_tr_params.src_dst_bidx = SRCBIDX(0) | DSTBIDX(BYTES_PER_DMA_EVT);
-+	cam->dma_tr_params.link_bcntrld = BCNTRLD((VGA_WIDTH * BYTES_PER_PIXEL) / BYTES_PER_DMA_EVT) | LINK(0xffff);
-+	cam->dma_tr_params.src_dst_cidx = SRCCIDX(0) | DSTCIDX(BYTES_PER_DMA_EVT);
-+	cam->dma_tr_params.ccnt = CCNT(VGA_HEIGHT);
-+
-+	return 0;
-+}
-+
-+static int configure_cssp(struct cssp_cam_dev *cam)
-+{
-+	struct platform_device *pdev = cam->pdev;
-+	int ret = 0;
-+	unsigned int val;
-+	struct resource *res;
-+
-+	ret = reset_cssp(cam);
-+	if (ret)
-+		return ret;
-+
-+	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpmc_phys_mem_slot");
-+	if (res == NULL) {
-+		printk(KERN_ERR "[%s]: failed to get gpmc_phys_mem_slot resource\n", pdev->name);
-+		return -ENODEV;
-+	}
-+
-+	/*
-+	 * Request the region.
-+	 */
-+	if (!request_mem_region(res->start, resource_size(res), pdev->name)) {
-+		return -EBUSY;
-+	}
-+
-+	cam->reg_base_phys = res->start;
-+	cam->reg_size = resource_size(res);
-+
-+	cam->reg_base_virt = (unsigned int)ioremap(cam->reg_base_phys, cam->reg_size);
-+	if (cam->reg_base_virt == 0) {
-+		printk(KERN_ERR "[%s]: ioremap of registers region failed\n", pdev->name);
-+		release_mem_region(cam->reg_base_phys, cam->reg_size);
-+		return -ENOMEM;
-+	}
-+
-+	printk(KERN_INFO "[%s]: reg_base_virt = 0x%x\n", pdev->name, cam->reg_base_virt);
-+
-+	val = readw(cam->reg_base_virt + REG_MODE);
-+	printk(KERN_INFO "[%s]: reading register address=0x0 returns 0x%x\n", pdev->name, val);
-+
-+	return 0;
-+}
-+
-+static int configure_camera_sensor(struct cssp_cam_dev *cam)
-+{
-+	struct i2c_board_info *info = cam->camera_board_info;
-+	struct i2c_client *client;
-+	struct i2c_adapter *adapter;
-+	struct v4l2_subdev *subdev;
-+	struct v4l2_mbus_framefmt f_format = {
-+			.width = VGA_WIDTH,
-+			.height = VGA_HEIGHT,
-+			.code = V4L2_MBUS_FMT_YUYV8_2X8,
-+			.colorspace = V4L2_COLORSPACE_JPEG,
-+	};
-+
-+	/* Enable the clock just for the time of loading the camera driver and disable after that */
-+	/* It is going to be be re-enabled later, when camera will be in use */
-+	clk_enable(cam->camera_clk);
-+	udelay(5); // let the clock stabilize
-+
-+	adapter	= i2c_get_adapter(((struct soc_camera_link *)(info->platform_data))->i2c_adapter_id);
-+	if (!adapter) {
-+		printk(KERN_INFO "[%s]: failed to get adapter...\n", __func__);
-+		return -ENODEV;
-+	}
-+
-+	client = i2c_new_device(adapter, info);
-+	i2c_put_adapter(adapter);
-+
-+	if (client == NULL) {
-+		return -ENODEV;
-+	}
-+
-+	printk(KERN_INFO "[%s]: client's name is: %s\n", __func__, client->name);
-+
-+	subdev = (struct v4l2_subdev *)i2c_get_clientdata(client);
-+	if (subdev == NULL) {
-+		i2c_unregister_device(client);
-+		return -ENODEV;
-+	}
-+
-+	cam->subdev = subdev;
-+
-+	v4l2_subdev_call(subdev, video, s_mbus_fmt, &f_format);
-+
-+	clk_disable(cam->camera_clk);
-+
-+	return 0;
-+}
-+
-+static int start_camera_sensor(struct cssp_cam_dev *cam)
-+{
-+	clk_enable(cam->camera_clk);
-+	udelay(5); /* let the clock stabilize */
-+
-+	v4l2_subdev_call(cam->subdev, video, s_stream, 1);
-+
-+	return 0;
-+}
-+
-+static void stop_camera_sensor(struct cssp_cam_dev *cam)
-+{
-+	v4l2_subdev_call(cam->subdev, video, s_stream, 0);
-+
-+	clk_disable(cam->camera_clk);
-+
-+	return;
-+}
-+
-+
-+/************************************************
-+ * 				Video4Linux2
-+ */
-+
-+static struct cssp_cam_fmt *get_format(struct v4l2_format *f)
-+{
-+	struct cssp_cam_fmt *fmt;
-+	unsigned int k;
-+
-+	for (k = 0; k < ARRAY_SIZE(formats); k++) {
-+		fmt = &formats[k];
-+		if (fmt->fourcc == f->fmt.pix.pixelformat)
-+			break;
-+	}
-+
-+	if (k == ARRAY_SIZE(formats))
-+		return NULL;
-+
-+	return &formats[k];
-+}
-+
-+
-+/* ------------------------------------------------------------------
-+	Videobuf operations
-+   ------------------------------------------------------------------*/
-+
-+static int queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt,
-+				unsigned int *nbuffers, unsigned int *nplanes,
-+				unsigned int sizes[], void *alloc_ctxs[])
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vq);
-+	unsigned long size;
-+
-+	size = dev->sizeimage;
-+
-+	if (0 == *nbuffers)
-+		*nbuffers = 32;
-+
-+	while (size * *nbuffers > vid_limit * 1024 * 1024)
-+		(*nbuffers)--;
-+
-+	*nplanes = 1;
-+
-+	sizes[0] = size;
-+
-+	alloc_ctxs[0] = dev->dma_cont_ctx;
-+
-+	dprintk(dev, 1, "%s, count=%d, size=%ld\n", __func__, *nbuffers, size);
-+
-+	return 0;
-+}
-+
-+static int buffer_init(struct vb2_buffer *vb)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-+
-+	BUG_ON(NULL == dev->fmt);
-+
-+	/*
-+	 * This callback is called once per buffer, after its allocation.
-+	 *
-+	 * Vivi does not allow changing format during streaming, but it is
-+	 * possible to do so when streaming is paused (i.e. in streamoff state).
-+	 * Buffers however are not freed when going into streamoff and so
-+	 * buffer size verification has to be done in buffer_prepare, on each
-+	 * qbuf.
-+	 * It would be best to move verification code here to buf_init and
-+	 * s_fmt though.
-+	 */
-+
-+	return 0;
-+}
-+
-+static int buffer_prepare(struct vb2_buffer *vb)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-+	struct cssp_cam_buffer *buf = container_of(vb, struct cssp_cam_buffer, vb);
-+	unsigned long size;
-+
-+	dprintk(dev, 1, "%s, field=%d\n", __func__, vb->v4l2_buf.field);
-+
-+	BUG_ON(NULL == dev->fmt);
-+
-+	/*
-+	 * Theses properties only change when queue is idle, see s_fmt.
-+	 * The below checks should not be performed here, on each
-+	 * buffer_prepare (i.e. on each qbuf). Most of the code in this function
-+	 * should thus be moved to buffer_init and s_fmt.
-+	 */
-+	if (dev->width  < 48 || dev->width  > MAX_WIDTH ||
-+	    dev->height < 32 || dev->height > MAX_HEIGHT)
-+		return -EINVAL;
-+
-+	size = dev->sizeimage;
-+	if (vb2_plane_size(vb, 0) < size) {
-+		dprintk(dev, 1, "%s data will not fit into plane (%lu < %lu)\n",
-+				__func__, vb2_plane_size(vb, 0), size);
-+		return -EINVAL;
-+	}
-+
-+	vb2_set_plane_payload(&buf->vb, 0, size);
-+
-+	buf->fmt = dev->fmt;
-+
-+	return 0;
-+}
-+
-+static int buffer_finish(struct vb2_buffer *vb)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-+	dprintk(dev, 1, "%s\n", __func__);
-+	return 0;
-+}
-+
-+static void buffer_cleanup(struct vb2_buffer *vb)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-+	dprintk(dev, 1, "%s\n", __func__);
-+}
-+
-+static void buffer_queue(struct vb2_buffer *vb)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vb->vb2_queue);
-+	struct cssp_cam_buffer *buf = container_of(vb, struct cssp_cam_buffer, vb);
-+	struct cssp_cam_dmaqueue *vidq = &dev->vidq;
-+	unsigned long flags = 0;
-+
-+	dprintk(dev, 1, "%s\n", __func__);
-+
-+	if (dev->streaming_started && !dev->current_vb) {
-+		trigger_dma_transfer_to_buf(dev, &buf->vb);
-+	} else {
-+		spin_lock_irqsave(&dev->slock, flags);
-+		list_add_tail(&buf->list, &vidq->active);
-+		spin_unlock_irqrestore(&dev->slock, flags);
-+	}
-+}
-+
-+static int start_streaming(struct vb2_queue *vq, unsigned int count)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vq);
-+	int ret;
-+
-+	dprintk(dev, 1, "%s\n", __func__);
-+
-+	ret = start_camera_sensor(dev);
-+	if (ret != 0)
-+		return ret;
-+
-+	// Enable DMA
-+	edma_start(dev->dma_ch);
-+
-+	dev->streaming_started = 1;
-+
-+	/* check if we have new buffer queued */
-+	dequeue_buffer_for_dma(dev);
-+
-+	return 0;
-+}
-+
-+/* abort streaming and wait for last buffer */
-+static int stop_streaming(struct vb2_queue *vq)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vq);
-+	struct cssp_cam_dmaqueue *dma_q = &dev->vidq;
-+
-+	dprintk(dev, 1, "%s\n", __func__);
-+
-+	// Disable DMA
-+	edma_stop(dev->dma_ch);
-+
-+	// Disable data capture
-+	dev->mode &= ~ENABLE;
-+	writew(dev->mode, dev->reg_base_virt + REG_MODE);
-+	readw(dev->reg_base_virt + REG_MODE);
-+
-+	stop_camera_sensor(dev);
-+
-+	dev->streaming_started = 0;
-+
-+	/* Release all active buffers */
-+	while (!list_empty(&dma_q->active)) {
-+		struct cssp_cam_buffer *buf;
-+
-+		buf = list_entry(dma_q->active.next, struct cssp_cam_buffer, list);
-+		list_del(&buf->list);
-+		vb2_buffer_done(&buf->vb, VB2_BUF_STATE_ERROR);
-+		dprintk(dev, 2, "[%p/%d] done\n", buf, buf->vb.v4l2_buf.index);
-+	}
-+
-+	dev->current_vb = NULL;
-+
-+	return 0;
-+}
-+
-+static void cssp_cam_lock(struct vb2_queue *vq)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vq);
-+	mutex_lock(&dev->mutex);
-+}
-+
-+static void cssp_cam_unlock(struct vb2_queue *vq)
-+{
-+	struct cssp_cam_dev *dev = vb2_get_drv_priv(vq);
-+	mutex_unlock(&dev->mutex);
-+}
-+
-+static struct vb2_ops cssp_cam_video_qops = {
-+	.queue_setup		= queue_setup,
-+	.buf_init		= buffer_init,
-+	.buf_prepare		= buffer_prepare,
-+	.buf_finish		= buffer_finish,
-+	.buf_cleanup		= buffer_cleanup,
-+	.buf_queue		= buffer_queue,
-+	.start_streaming	= start_streaming,
-+	.stop_streaming		= stop_streaming,
-+	.wait_prepare		= cssp_cam_unlock,
-+	.wait_finish		= cssp_cam_lock,
-+};
-+
-+
-+/* ------------------------------------------------------------------
-+	IOCTL vidioc handling
-+   ------------------------------------------------------------------*/
-+
-+static int vidioc_querycap(struct file *file, void *priv,
-+					struct v4l2_capability *cap)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+
-+	strcpy(cap->driver, "cssp_camera");
-+	strcpy(cap->card, "cssp_camera");
-+	strlcpy(cap->bus_info, dev->v4l2_dev.name, sizeof(cap->bus_info));
-+	cap->capabilities = V4L2_CAP_VIDEO_CAPTURE | V4L2_CAP_STREAMING |
-+			    V4L2_CAP_READWRITE;
-+	return 0;
-+}
-+
-+static int vidioc_enum_fmt_vid_cap(struct file *file, void *priv,
-+					struct v4l2_fmtdesc *f)
-+{
-+	struct cssp_cam_fmt *fmt;
-+
-+	if (f->index >= ARRAY_SIZE(formats))
-+		return -EINVAL;
-+
-+	fmt = &formats[f->index];
-+
-+	strlcpy(f->description, fmt->name, sizeof(f->description));
-+	f->pixelformat = fmt->fourcc;
-+	return 0;
-+}
-+
-+static int vidioc_g_fmt_vid_cap(struct file *file, void *priv,
-+					struct v4l2_format *f)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+
-+	f->fmt.pix.width	= dev->width;
-+	f->fmt.pix.height	= dev->height;
-+	f->fmt.pix.field	= dev->field;
-+	f->fmt.pix.pixelformat	= dev->fmt->fourcc;
-+	f->fmt.pix.bytesperline	= dev->bytesperline;
-+	f->fmt.pix.sizeimage	= dev->sizeimage;
-+	f->fmt.pix.colorspace	= dev->colorspace;
-+
-+	return 0;
-+}
-+
-+static int vidioc_try_fmt_vid_cap(struct file *file, void *priv,
-+			struct v4l2_format *f)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	struct cssp_cam_fmt *fmt;
-+	struct v4l2_mbus_framefmt mbus_fmt;
-+	struct v4l2_pix_format *pix = &f->fmt.pix;
-+
-+	fmt = get_format(f);
-+	if (!fmt) {
-+		dprintk(dev, 1, "Fourcc format (0x%08x) invalid.\n",
-+			f->fmt.pix.pixelformat);
-+		return -EINVAL;
-+	}
-+
-+	v4l2_fill_mbus_format(&mbus_fmt, pix, fmt->code);
-+	v4l2_subdev_call(dev->subdev, video, try_mbus_fmt, &mbus_fmt);
-+	v4l2_fill_pix_format(pix, &mbus_fmt);
-+	pix->bytesperline = (pix->width * fmt->depth) >> 3;
-+	pix->sizeimage = pix->height * pix->bytesperline;
-+
-+	return 0;
-+}
-+
-+static int vidioc_s_fmt_vid_cap(struct file *file, void *priv,
-+					struct v4l2_format *f)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	struct vb2_queue *q = &dev->vb_vidq;
-+	struct v4l2_pix_format *pix = &f->fmt.pix;
-+	struct v4l2_mbus_framefmt mbus_fmt;
-+
-+	int ret = vidioc_try_fmt_vid_cap(file, priv, f);
-+	if (ret < 0)
-+		return ret;
-+
-+	if (vb2_is_streaming(q)) {
-+		dprintk(dev, 1, "%s device busy\n", __func__);
-+		return -EBUSY;
-+	}
-+
-+	dev->fmt = get_format(f);
-+	dev->width = f->fmt.pix.width;
-+	dev->height = f->fmt.pix.height;
-+	dev->field = f->fmt.pix.field;
-+	dev->colorspace = f->fmt.pix.colorspace;
-+	dev->bytesperline = f->fmt.pix.bytesperline;
-+	dev->sizeimage = f->fmt.pix.sizeimage;
-+
-+	/* Set the sensor into the new format */
-+	v4l2_fill_mbus_format(&mbus_fmt, pix, dev->fmt->code);
-+	v4l2_subdev_call(dev->subdev, video, s_mbus_fmt, &mbus_fmt);
-+
-+	/* Set the EDMA for the new resolution */
-+	dev->dma_tr_params.a_b_cnt = ACNT(BYTES_PER_DMA_EVT) | BCNT(dev->bytesperline / BYTES_PER_DMA_EVT);
-+	dev->dma_tr_params.link_bcntrld = BCNTRLD(dev->bytesperline / BYTES_PER_DMA_EVT) | LINK(0xffff);
-+	dev->dma_tr_params.ccnt = CCNT(dev->height);
-+
-+	return 0;
-+}
-+
-+static int vidioc_reqbufs(struct file *file, void *priv,
-+			  struct v4l2_requestbuffers *p)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	return vb2_reqbufs(&dev->vb_vidq, p);
-+}
-+
-+static int vidioc_querybuf(struct file *file, void *priv, struct v4l2_buffer *p)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	return vb2_querybuf(&dev->vb_vidq, p);
-+}
-+
-+static int vidioc_qbuf(struct file *file, void *priv, struct v4l2_buffer *p)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	return vb2_qbuf(&dev->vb_vidq, p);
-+}
-+
-+static int vidioc_dqbuf(struct file *file, void *priv, struct v4l2_buffer *p)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	return vb2_dqbuf(&dev->vb_vidq, p, file->f_flags & O_NONBLOCK);
-+}
-+
-+static int vidioc_streamon(struct file *file, void *priv, enum v4l2_buf_type i)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	return vb2_streamon(&dev->vb_vidq, i);
-+}
-+
-+static int vidioc_streamoff(struct file *file, void *priv, enum v4l2_buf_type i)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	return vb2_streamoff(&dev->vb_vidq, i);
-+}
-+
-+static int vidioc_log_status(struct file *file, void *priv)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+
-+	v4l2_ctrl_handler_log_status(&dev->ctrl_handler, dev->v4l2_dev.name);
-+	return 0;
-+}
-+
-+static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *i)
-+{
-+	return 0;
-+}
-+
-+/* only one input in this sample driver */
-+static int vidioc_enum_input(struct file *file, void *priv,
-+				struct v4l2_input *inp)
-+{
-+	return -EINVAL;
-+
-+	inp->type = V4L2_INPUT_TYPE_CAMERA;
-+	inp->std = V4L2_STD_525_60;
-+	sprintf(inp->name, "Camera %u", inp->index);
-+	return 0;
-+}
-+
-+static int vidioc_g_input(struct file *file, void *priv, unsigned int *i)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+
-+	*i = dev->input;
-+
-+	return 0;
-+}
-+
-+static int vidioc_s_input(struct file *file, void *priv, unsigned int i)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+
-+	return -EINVAL;
-+
-+	if (i == dev->input)
-+		return 0;
-+
-+	dev->input = i;
-+
-+	return 0;
-+}
-+
-+static int vidioc_subscribe_event(struct v4l2_fh *fh,
-+				struct v4l2_event_subscription *sub)
-+{
-+	switch (sub->type) {
-+	case V4L2_EVENT_CTRL:
-+		return v4l2_event_subscribe(fh, sub, 0);
-+	default:
-+		return -EINVAL;
-+	}
-+}
-+
-+static const struct v4l2_ioctl_ops cssp_cam_ioctl_ops = {
-+	.vidioc_querycap		= vidioc_querycap,
-+	.vidioc_enum_fmt_vid_cap	= vidioc_enum_fmt_vid_cap,
-+	.vidioc_g_fmt_vid_cap		= vidioc_g_fmt_vid_cap,
-+	.vidioc_try_fmt_vid_cap		= vidioc_try_fmt_vid_cap,
-+	.vidioc_s_fmt_vid_cap		= vidioc_s_fmt_vid_cap,
-+	.vidioc_reqbufs			= vidioc_reqbufs,
-+	.vidioc_querybuf		= vidioc_querybuf,
-+	.vidioc_qbuf			= vidioc_qbuf,
-+	.vidioc_dqbuf			= vidioc_dqbuf,
-+	.vidioc_s_std			= vidioc_s_std,
-+	.vidioc_enum_input		= vidioc_enum_input,
-+	.vidioc_g_input			= vidioc_g_input,
-+	.vidioc_s_input			= vidioc_s_input,
-+	.vidioc_streamon		= vidioc_streamon,
-+	.vidioc_streamoff		= vidioc_streamoff,
-+	.vidioc_log_status		= vidioc_log_status,
-+	.vidioc_subscribe_event		= vidioc_subscribe_event,
-+	.vidioc_unsubscribe_event	= v4l2_event_unsubscribe,
-+};
-+
-+
-+/* ------------------------------------------------------------------
-+	File operations
-+   ------------------------------------------------------------------*/
-+
-+static unsigned int video_poll(struct file *file, struct poll_table_struct *wait)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	struct v4l2_fh *fh = file->private_data;
-+	struct vb2_queue *q = &dev->vb_vidq;
-+	unsigned int res;
-+
-+	dprintk(dev, 1, "%s\n", __func__);
-+	res = vb2_poll(q, file, wait);
-+	if (v4l2_event_pending(fh))
-+		res |= POLLPRI;
-+	else
-+		poll_wait(file, &fh->wait, wait);
-+	return res;
-+}
-+
-+static int video_mmap(struct file *file, struct vm_area_struct *vma)
-+{
-+	struct cssp_cam_dev *dev = video_drvdata(file);
-+	int ret;
-+
-+	dprintk(dev, 1, "mmap called, vma=0x%08lx\n", (unsigned long)vma);
-+
-+	ret = vb2_mmap(&dev->vb_vidq, vma);
-+	dprintk(dev, 1, "vma start=0x%08lx, size=%ld, ret=%d\n",
-+		(unsigned long)vma->vm_start,
-+		(unsigned long)vma->vm_end - (unsigned long)vma->vm_start,
-+		ret);
-+	return ret;
-+}
-+
-+static ssize_t video_read(struct file *file, char __user *buf, size_t size, loff_t *offset)
-+{
-+	struct cssp_cam_dev *cam_dev = video_drvdata(file);
-+
-+	dprintk(cam_dev, 1, "read called\n");
-+	return vb2_read(&cam_dev->vb_vidq, buf, size, offset, file->f_flags & O_NONBLOCK);
-+}
-+
-+static int video_close(struct file *file)
-+{
-+	struct video_device *vdev = video_devdata(file);
-+	struct cssp_cam_dev *cam_dev = video_drvdata(file);
-+
-+	dprintk(cam_dev, 1, "close called (dev=%s), file %p\n",
-+		video_device_node_name(vdev), file);
-+
-+	if (v4l2_fh_is_singular_file(file))
-+		vb2_queue_release(&cam_dev->vb_vidq);
-+	return v4l2_fh_release(file);
-+}
-+
-+static const struct v4l2_file_operations cssp_cam_fops = {
-+	.owner		= THIS_MODULE,
-+	.open		= v4l2_fh_open,
-+	.release	= video_close,
-+	.read		= video_read,
-+	.poll		= video_poll,
-+	.unlocked_ioctl	= video_ioctl2,
-+	.mmap		= video_mmap,
-+};
-+
-+
-+/* ------------------------------------------------------------------
-+	Driver initialization
-+   ------------------------------------------------------------------*/
-+
-+static struct video_device cssp_cam_template = {
-+	.name		= "cssp_camera",
-+	.fops		= &cssp_cam_fops,
-+	.ioctl_ops	= &cssp_cam_ioctl_ops,
-+	.minor		= -1,
-+	.release	= video_device_release,
-+	.tvnorms	= V4L2_STD_525_60,
-+	.current_norm	= V4L2_STD_NTSC_M,
-+};
-+
-+static int __init  video_probe(struct cssp_cam_dev *cam_dev)
-+{
-+	struct video_device *vfd;
-+	struct v4l2_ctrl_handler *hdl;
-+	struct vb2_queue *q;
-+	int ret = 0;
-+
-+	snprintf(cam_dev->v4l2_dev.name, sizeof(cam_dev->v4l2_dev.name),
-+			"%s-%03d", "cssp_camera", 0);
-+	ret = v4l2_device_register(NULL, &cam_dev->v4l2_dev);
-+	if (ret)
-+		goto free_dev;
-+
-+	cam_dev->fmt = &formats[0];
-+	cam_dev->width = VGA_WIDTH;
-+	cam_dev->height = VGA_HEIGHT;
-+	cam_dev->sizeimage = VGA_WIDTH * VGA_HEIGHT * BYTES_PER_PIXEL;
-+	hdl = &cam_dev->ctrl_handler;
-+	v4l2_ctrl_handler_init(hdl, 0);
-+
-+	if (hdl->error) {
-+		ret = hdl->error;
-+		goto unreg_dev;
-+	}
-+	cam_dev->v4l2_dev.ctrl_handler = hdl;
-+
-+	/* initialize locks */
-+	spin_lock_init(&cam_dev->slock);
-+
-+	/* initialize queue */
-+	q = &cam_dev->vb_vidq;
-+	memset(q, 0, sizeof(cam_dev->vb_vidq));
-+	q->type = V4L2_BUF_TYPE_VIDEO_CAPTURE;
-+	q->io_modes = VB2_MMAP | VB2_USERPTR | VB2_READ;
-+	q->drv_priv = cam_dev;
-+	q->buf_struct_size = sizeof(struct cssp_cam_buffer);
-+	q->ops = &cssp_cam_video_qops;
-+	q->mem_ops = &vb2_dma_contig_memops;
-+
-+	vb2_queue_init(q);
-+
-+	mutex_init(&cam_dev->mutex);
-+
-+	/* init video dma queues */
-+	INIT_LIST_HEAD(&cam_dev->vidq.active);
-+
-+	ret = -ENOMEM;
-+	vfd = video_device_alloc();
-+	if (!vfd)
-+		goto unreg_dev;
-+
-+	*vfd = cssp_cam_template;
-+	vfd->debug = debug;
-+	vfd->v4l2_dev = &cam_dev->v4l2_dev;
-+	set_bit(V4L2_FL_USE_FH_PRIO, &vfd->flags);
-+
-+	/*
-+	 * Provide a mutex to v4l2 core. It will be used to protect
-+	 * all fops and v4l2 ioctls.
-+	 */
-+	vfd->lock = &cam_dev->mutex;
-+
-+	ret = video_register_device(vfd, VFL_TYPE_GRABBER, video_nr);
-+	if (ret < 0)
-+		goto rel_vdev;
-+
-+	video_set_drvdata(vfd, cam_dev);
-+
-+	if (video_nr != -1)
-+		video_nr++;
-+
-+	cam_dev->vdev = vfd;
-+	v4l2_info(&cam_dev->v4l2_dev, "V4L2 device registered as %s\n",
-+	video_device_node_name(vfd));
-+
-+	return 0;
-+
-+rel_vdev:
-+	video_device_release(vfd);
-+unreg_dev:
-+	v4l2_ctrl_handler_free(hdl);
-+	v4l2_device_unregister(&cam_dev->v4l2_dev);
-+free_dev:
-+	return ret;
-+}
-+
-+static int video_remove(struct cssp_cam_dev *cam_dev)
-+{
-+	if (cam_dev->dma_cont_ctx != NULL)
-+		vb2_dma_contig_cleanup_ctx(cam_dev->dma_cont_ctx);
-+
-+	v4l2_info(&cam_dev->v4l2_dev, "unregistering %s\n",
-+			video_device_node_name(cam_dev->vdev));
-+	video_unregister_device(cam_dev->vdev);
-+	v4l2_device_unregister(&cam_dev->v4l2_dev);
-+	v4l2_ctrl_handler_free(&cam_dev->ctrl_handler);
-+
-+	return 0;
-+}
-+
-+static int __init  cssp_cam_probe(struct platform_device *pdev)
-+{
-+	struct cssp_cam_dev *cam_dev;
-+	int ret = 0;
-+	struct cssp_cam_platform_data *cssp_cam_platform_data;
-+
-+	cssp_cam_platform_data = (struct cssp_cam_platform_data *) pdev->dev.platform_data;
-+	if (cssp_cam_platform_data == NULL) {
-+		printk(KERN_ERR "[%s]: missing platform data\n", pdev->name);
-+		return -ENODEV;
-+	}
-+
-+	if (cssp_cam_platform_data->cam_i2c_board_info == NULL) {
-+		printk(KERN_ERR "[%s]: missing camera i2c board info\n", pdev->name);
-+		return -ENODEV;
-+	}
-+
-+	cam_dev = kzalloc(sizeof(*cam_dev), GFP_KERNEL);
-+	if (!cam_dev)
-+		return -ENOMEM;
-+
-+	cam_dev->pdev = pdev;
-+	platform_set_drvdata(pdev, cam_dev);
-+
-+	cam_dev->camera_board_info = cssp_cam_platform_data->cam_i2c_board_info;
-+
-+	cam_dev->camera_clk = clk_get(&pdev->dev, cssp_cam_platform_data->cam_clk_name);
-+	if (IS_ERR(cam_dev->camera_clk)) {
-+		ret = PTR_ERR(cam_dev->camera_clk);
-+		printk(KERN_ERR "[%s]: cannot clk_get %s\n", pdev->name, cssp_cam_platform_data->cam_clk_name);
-+		goto fail0;
-+	}
-+
-+	ret = configure_cssp(cam_dev);
-+	if (ret)
-+		goto fail1;
-+
-+	ret = configure_edma(cam_dev);
-+	if (ret)
-+		goto fail2;
-+
-+	cam_dev->mode = FMT_2X8_EN | PCLK_POL | HS_EN;
-+
-+	ret = configure_camera_sensor(cam_dev);
-+	if (ret) {
-+		printk(KERN_ERR "[%s]: camera sensor configuration failed\n", pdev->name);
-+		goto fail3;
-+	}
-+
-+	cam_dev->dma_cont_ctx = vb2_dma_contig_init_ctx(&pdev->dev);
-+	if (IS_ERR(cam_dev->dma_cont_ctx)) {
-+		ret = PTR_ERR(cam_dev->dma_cont_ctx);
-+		goto fail3;
-+	}
-+
-+	ret = video_probe(cam_dev);
-+	if (ret)
-+		goto fail4;
-+
-+	return ret;
-+
-+fail4:
-+	vb2_dma_contig_cleanup_ctx(cam_dev->dma_cont_ctx);
-+
-+fail3:
-+	edma_free_channel(cam_dev->dma_ch);
-+
-+fail2:
-+	gpio_free(cam_dev->reset_pin);
-+	iounmap((void *)cam_dev->reg_base_virt);
-+	release_mem_region(cam_dev->reg_base_phys, cam_dev->reg_size);
-+
-+fail1:
-+	clk_put(cam_dev->camera_clk);
-+
-+fail0:
-+	kfree(cam_dev);
-+
-+	return ret;
-+}
-+
-+static int cssp_cam_remove(struct platform_device *pdev)
-+{
-+	struct cssp_cam_dev *cam = platform_get_drvdata(pdev);
-+
-+	iounmap((void *)cam->reg_base_virt);
-+
-+	release_mem_region(cam->reg_base_phys, cam->reg_size);
-+
-+	gpio_free(cam->reset_pin);
-+
-+	edma_free_channel(cam->dma_ch);
-+
-+	video_remove(cam);
-+
-+	clk_put(cam->camera_clk);
-+
-+	kfree(cam);
-+
-+	printk(KERN_INFO "[%s]: removed\n", pdev->name);
-+
-+	return 0;
-+}
-+
-+
-+static struct platform_driver cssp_cam_driver = {
-+	.probe		= cssp_cam_probe,
-+	.remove		= __devexit_p(cssp_cam_remove),
-+	.driver		= {
-+		.name	= "cssp-camera",
-+		.owner	= THIS_MODULE,
-+	},
-+};
-+
-+
-+static int __init cssp_cam_init(void)
-+{
-+	return platform_driver_register(&cssp_cam_driver);
-+}
-+
-+static void __exit cssp_cam_exit(void)
-+{
-+	platform_driver_unregister(&cssp_cam_driver);
-+}
-+
-+
-+module_init(cssp_cam_init);
-+module_exit(cssp_cam_exit);
-+
-+/*
-+ * Macros sets license, author and description
-+ */
-+MODULE_LICENSE("GPLv2");
-+MODULE_AUTHOR("Dan Aizenstros, Damian Eppel, Przemek Szewczyk");
-+MODULE_DESCRIPTION("QuickLogic Camera Interface driver");
-+
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.h b/drivers/media/video/cssp_camera/cssp_camera.h
-new file mode 100644
-index 0000000..d018ca1
---- /dev/null
-+++ b/drivers/media/video/cssp_camera/cssp_camera.h
-@@ -0,0 +1,148 @@
-+/*
-+ * cssp-camera driver
-+ *
-+ * Based on Vivi driver
-+ *
-+ * Copyright (C) 2012 QuickLogic Corp.
-+ *
-+ * Developed for QuickLogic by:
-+ * Damian Eppel <damian.eppel at teleca.com>
-+ * Przemek Szewczyk <przemek.szewczyk at teleca.com>
-+ * Dan Aizenstros <daizenstros at quicklogic.com>
-+ *
-+ * This program is free software; you can redistribute it and/or modify
-+ * it under the terms of the GNU General Public License version 2 as
-+ * published by the Free Software Foundation.
-+ *
-+ */
-+
-+#ifndef CSSP_CAMERA_H
-+#define CSSP_CAMERA_H
-+
-+
-+static unsigned video_nr = -1;
-+module_param(video_nr, uint, 0644);
-+MODULE_PARM_DESC(video_nr, "videoX start number, -1 is autodetect");
-+
-+static unsigned debug;
-+module_param(debug, uint, 0644);
-+MODULE_PARM_DESC(debug, "activates debug info");
-+
-+static unsigned int vid_limit = 1;
-+module_param(vid_limit, uint, 0644);
-+MODULE_PARM_DESC(vid_limit, "capture memory limit in megabytes");
-+
-+#define dprintk(dev, level, fmt, arg...) \
-+	v4l2_dbg(level, debug, &dev->v4l2_dev, fmt, ## arg)
-+
-+#define VGA_WIDTH 640
-+#define VGA_HEIGHT 480
-+
-+#define MAX_WIDTH 2048
-+#define MAX_HEIGHT 1536
-+
-+#define VGA_RES (VGA_WIDTH * VGA_HEIGHT)
-+#define BYTES_PER_PIXEL 2
-+#define BYTES_PER_DMA_EVT 32
-+
-+/* PaRAM.opt: */
-+#define TCC(v) (((v) & 0x3f) << 12)
-+/* PaRAM.a_b_cnt: */
-+#define ACNT(v) ((v) & 0xffff)
-+#define BCNT(v) (((v) & 0xffff) << 16)
-+/* PaRAM.src_dst_bidx: */
-+#define SRCBIDX(v) ((v) & 0xffff)
-+#define DSTBIDX(v) (((v) & 0xffff) << 16)
-+/* PaRAM.link_bcntrld: */
-+#define LINK(v) ((v) & 0xffff)
-+#define BCNTRLD(v) (((v) & 0xffff) << 16)
-+/* PaRAM.src_dst_cidx: */
-+#define SRCCIDX(v) ((v) & 0xffff)
-+#define DSTCIDX(v) (((v) & 0xffff) << 16)
-+/* PaRAM.ccnt: */
-+#define CCNT(v) ((v) & 0xffff)
-+
-+
-+struct cssp_cam_platform_data {
-+	struct i2c_board_info *cam_i2c_board_info;
-+	const char *cam_clk_name;
-+	int dma_ch;
-+	int gpio_reset_pin;
-+};
-+
-+
-+/* ------------------------------------------------------------------
-+	video Basic structures
-+   ------------------------------------------------------------------*/
-+
-+struct cssp_cam_fmt {
-+	char	*name;
-+	u32	fourcc;          /* v4l2 format id */
-+	int	depth;
-+	enum v4l2_mbus_pixelcode code;
-+};
-+
-+/* buffer for one video frame */
-+struct cssp_cam_buffer {
-+	/* common v4l buffer stuff -- must be first */
-+	struct vb2_buffer	vb;
-+	struct list_head	list;
-+	struct cssp_cam_fmt	*fmt;
-+};
-+
-+struct cssp_cam_dmaqueue {
-+	struct list_head	active;
-+};
-+
-+struct cssp_cam_dev {
-+	struct v4l2_device		v4l2_dev;
-+	struct v4l2_ctrl_handler	ctrl_handler;
-+	struct v4l2_subdev		*subdev;
-+
-+	spinlock_t			slock;
-+	struct mutex			mutex;
-+
-+	/* various device info */
-+	struct video_device		*vdev;
-+	struct platform_device		*pdev;
-+
-+	struct cssp_cam_dmaqueue	vidq;
-+	void				*dma_cont_ctx;
-+	int				streaming_started;
-+	struct vb2_buffer		*current_vb;
-+
-+	/* Input Number */
-+	int				input;
-+
-+	/* video capture */
-+	struct cssp_cam_fmt		*fmt;
-+	u32				width;
-+	u32				height;
-+	u32				bytesperline;
-+	u32				sizeimage;
-+	enum v4l2_colorspace		colorspace;
-+	struct vb2_queue		vb_vidq;
-+	enum v4l2_field			field;
-+	unsigned int			field_count;
-+
-+
-+	/* Camera Sensor */
-+	struct i2c_board_info		*camera_board_info;
-+	struct clk			*camera_clk;
-+
-+	unsigned int			reg_base_virt;
-+	unsigned int			reg_base_phys;
-+	resource_size_t			reg_size;
-+	u16				mode;
-+
-+	struct edmacc_param		dma_tr_params;
-+	int				dma_ch;
-+	u64				dma_mask;
-+
-+	int				frame_cnt;
-+
-+	int				reset_pin;
-+};
-+
-+
-+#endif /* CSSP_CAMERA_H */
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0073-beaglebone-add-support-for-DVI-audio-and-audio-only-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0073-beaglebone-add-support-for-DVI-audio-and-audio-only-.patch
deleted file mode 100644
index 051a727..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0073-beaglebone-add-support-for-DVI-audio-and-audio-only-.patch
+++ /dev/null
@@ -1,64 +0,0 @@
-From 040c37e89e6a7a7311a470bda281e1163559173c Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 3 Jul 2012 08:45:47 +0200
-Subject: [PATCH 73/79] beaglebone: add support for DVI+audio and audio-only
- capes
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   32 ++++++++++++++++++++++++++++++--
- 1 file changed, 30 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 22a740f..bf40ac9 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2881,8 +2881,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		
- 		beaglebone_leds_free = 0;
- 		dvileds_init(0,0);
--		beaglebone_spi1_free = 0;
--		mcasp0_init(0,0);
-+
-+		// Uncomment these for custom DVI capes with audio populated
-+		//beaglebone_spi1_free = 0;
-+		//mcasp0_init(0,0);
- 	
- 		if (!strncmp("00A1", cape_config.version, 4) || !strncmp("000A", cape_config.version, 4)) {
- 			pr_info("BeagleBone cape: DVI init for revision A1 or older\n");
-@@ -2898,6 +2900,32 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 			dvi_init(0,0);
- 		}
- 	}
-+
-+	if (!strncmp("BB-BONE-DVID-02", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing DVI+audio cape\n");
-+
-+		beaglebone_leds_free = 0;
-+		dvileds_init(0,0);
-+
-+		beaglebone_spi1_free = 0;
-+		mcasp0_init(0,0);
-+	
-+		setup_pin_mux(dvia2_pin_mux);
-+		gpio_request(BEAGLEBONEDVI_PDn_A2, "DVI_PDn");
-+		gpio_direction_output(BEAGLEBONEDVI_PDn_A2, 1);
-+		dvi_init(0,0);
-+	}
-+
-+	if (!strncmp("BB-BONE-AUDI-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing audio cape\n");
-+
-+		beaglebone_leds_free = 0;
-+		dvileds_init(0,0);
-+
-+		beaglebone_spi1_free = 0;
-+		mcasp0_init(0,0);
-+	}
-+
- 	if (!strncmp("BB-BONE-LCD7-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing LCD cape\n");
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0074-beaglebone-disable-LBO-GPIO-for-battery-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0074-beaglebone-disable-LBO-GPIO-for-battery-cape.patch
deleted file mode 100644
index 02485c3..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0074-beaglebone-disable-LBO-GPIO-for-battery-cape.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From f723bdf574163ced9a685783a475b254f6a981d5 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 3 Jul 2012 21:28:44 +0200
-Subject: [PATCH 74/79] beaglebone: disable LBO GPIO for battery cape
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    4 +++-
- 1 file changed, 3 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index bf40ac9..6b4539e 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -2999,7 +2999,8 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		pr_info("BeagleBone cape: initializing battery cape\n");
- 		// gpio1_6, P9_15 lowbat output
- 		// AIN4, P9_33 vbat
--		setup_pin_mux(batterycape_pin_mux);
-+		/* LBO doesn't work, so disable it for now
-+ 		setup_pin_mux(batterycape_pin_mux);
- 		#if defined(CONFIG_CHARGER_GPIO)
- 			int err;
- 			err = platform_device_register(&beaglebone_charger_device);
-@@ -3007,6 +3008,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 				pr_err("failed to register BeagleBone battery cape gpio\n");
- 		
- 		#endif
-+		*/
- 	}
- 	
- 	if (!strncmp("BB-BONE-SERL-01", cape_config.partnumber, 15)) {
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0075-video-da8xx-fb-calculate-pixel-clock-period-for-the-.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0075-video-da8xx-fb-calculate-pixel-clock-period-for-the-.patch
deleted file mode 100644
index face34b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0075-video-da8xx-fb-calculate-pixel-clock-period-for-the-.patch
+++ /dev/null
@@ -1,73 +0,0 @@
-From e12d15eadf15f8119729a65ecca79529b4fe3863 Mon Sep 17 00:00:00 2001
-From: "Manjunathappa, Prakash" <prakash.pm at ti.com>
-Date: Wed, 4 Jul 2012 17:10:16 +0530
-Subject: [PATCH 75/79] video:da8xx-fb: calculate pixel clock period for the
- panel
-
-Patch calculates pixel clock period in pico seconds and updates
-the same in variable screen information structure. fbset utility
-uses this information.
-This patch is from upstream backport, bearing commit id
-12fa8350244d73b6111ec9bc6c2fd5d49fa601b5.
-
-Signed-off-by: Manjunathappa, Prakash <prakash.pm at ti.com>
-Signed-off-by: Florian Tobias Schandinat <FlorianSchandinat at gmx.de>
-Signed-off-by: Patil, Rachna <rachna at ti.com>
----
- drivers/video/da8xx-fb.c |   19 ++++++++++++++++++-
- 1 file changed, 18 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/video/da8xx-fb.c b/drivers/video/da8xx-fb.c
-index 010a8bc..ddc251e 100644
---- a/drivers/video/da8xx-fb.c
-+++ b/drivers/video/da8xx-fb.c
-@@ -37,6 +37,7 @@
- #include <linux/lcm.h>
- #include <video/da8xx-fb.h>
- #include <asm/mach-types.h>
-+#include <asm/div64.h>
- 
- #define DRIVER_NAME "da8xx_lcdc"
- 
-@@ -192,7 +193,6 @@ static struct fb_var_screeninfo da8xx_fb_var __devinitdata = {
- 	.activate = 0,
- 	.height = -1,
- 	.width = -1,
--	.pixclock = 33333,/*Pico Sec*/
- 	.accel_flags = 0,
- 	.left_margin = LEFT_MARGIN,
- 	.right_margin = RIGHT_MARGIN,
-@@ -1267,6 +1267,22 @@ static struct fb_ops da8xx_fb_ops = {
- 	.fb_blank = cfb_blank,
- };
- 
-+/* Calculate and return pixel clock period in pico seconds */
-+static unsigned int da8xxfb_pixel_clk_period(struct da8xx_fb_par *par)
-+{
-+	unsigned int lcd_clk, div;
-+	unsigned int configured_pix_clk;
-+	unsigned long long pix_clk_period_picosec = 1000000000000ULL;
-+
-+	lcd_clk = clk_get_rate(par->lcdc_clk);
-+	div = lcd_clk / par->pxl_clk;
-+	configured_pix_clk = (lcd_clk / div);
-+
-+	do_div(pix_clk_period_picosec, configured_pix_clk);
-+
-+	return pix_clk_period_picosec;
-+}
-+
- static int __devinit fb_probe(struct platform_device *device)
- {
- 	struct da8xx_lcdc_platform_data *fb_pdata =
-@@ -1437,6 +1453,7 @@ static int __devinit fb_probe(struct platform_device *device)
- 
- 	da8xx_fb_var.hsync_len = lcdc_info->hsw;
- 	da8xx_fb_var.vsync_len = lcdc_info->vsw;
-+	da8xx_fb_var.pixclock = da8xxfb_pixel_clk_period(par);
- 
- 	da8xx_fb_var.right_margin = lcdc_info->hfp;
- 	da8xx_fb_var.left_margin  = lcdc_info->hbp;
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0076-beaglebone-improve-GPMC-bus-timings-for-camera-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0076-beaglebone-improve-GPMC-bus-timings-for-camera-cape.patch
deleted file mode 100644
index 5997367..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0076-beaglebone-improve-GPMC-bus-timings-for-camera-cape.patch
+++ /dev/null
@@ -1,105 +0,0 @@
-From e81c7627c3d90209271a0f1e7486d0f779f05289 Mon Sep 17 00:00:00 2001
-From: Dan Aizenstros <daizenstros at quicklogic.com>
-Date: Thu, 12 Jul 2012 12:31:08 -0400
-Subject: [PATCH 76/79] beaglebone: improve GPMC bus timings for camera cape
-
-Signed-off-by: Dan Aizenstros <daizenstros at quicklogic.com>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c         |   13 +++++++------
- drivers/media/video/cssp_camera/cssp_camera.c |    5 +----
- drivers/media/video/cssp_camera/cssp_camera.h |    2 +-
- 3 files changed, 9 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 6b4539e..82020fc 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -1895,9 +1895,10 @@ static struct gpmc_timings cssp_timings = {
- 	/* Minimum clock period for synchronous mode (in picoseconds) */
- 	.sync_clk = 10000,
- 
-+	/* CS signal timings corresponding to GPMC_CONFIG2 */
- 	.cs_on = 0,
--	.cs_rd_off = 23 * 10,		/* Read deassertion time */
--	.cs_wr_off = 23 * 10,		/* Write deassertion time */
-+	.cs_rd_off = 8 * 10,		/* Read deassertion time */
-+	.cs_wr_off = 20 * 10,		/* Write deassertion time */
- 
- 	/* ADV signal timings corresponding to GPMC_CONFIG3 */
- 	.adv_on = 0,			/* Assertion time */
-@@ -1906,17 +1907,17 @@ static struct gpmc_timings cssp_timings = {
- 
- 	/* WE signals timings corresponding to GPMC_CONFIG4 */
- 	.we_on = 3 * 10,		/* WE assertion time */
--	.we_off = 23 * 10,		/* WE deassertion time */
-+	.we_off = 8 * 10,		/* WE deassertion time */
- 
- 	/* OE signals timings corresponding to GPMC_CONFIG4 */
- 	.oe_on = 3 * 10,		/* OE assertion time */
--	.oe_off = 23 * 10,		/* OE deassertion time */
-+	.oe_off = 8 * 10,		/* OE deassertion time */
- 
- 	/* Access time and cycle time timings corresponding to GPMC_CONFIG5 */
- 	.page_burst_access = 1 * 10,	/* Multiple access word delay */
- 	.access = 7 * 10,		/* Start-cycle to first data valid delay */
--	.rd_cycle = 23 * 10,		/* Total read cycle time */
--	.wr_cycle = 23 * 10,		/* Total write cycle time */
-+	.rd_cycle = 8 * 10,		/* Total read cycle time */
-+	.wr_cycle = 20 * 10,		/* Total write cycle time */
- 
- 	/* The following are only on OMAP3430 */
- 	.wr_access = 7 * 10,		/* WRACCESSTIME */
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.c b/drivers/media/video/cssp_camera/cssp_camera.c
-index 39aa003..34a36d7 100644
---- a/drivers/media/video/cssp_camera/cssp_camera.c
-+++ b/drivers/media/video/cssp_camera/cssp_camera.c
-@@ -147,7 +147,6 @@ static int trigger_dma_transfer_to_buf(struct cssp_cam_dev *dev, struct vb2_buff
- 	// Enable data capture
- 	dev->mode |= ENABLE;
- 	writew(dev->mode, dev->reg_base_virt + REG_MODE);
--	readw(dev->reg_base_virt + REG_MODE);
- 
- 	dev->current_vb = vb;
- 
-@@ -182,7 +181,6 @@ static void dma_callback(unsigned lch, u16 ch_status, void *data)
- 	// Disable data capture
- 	dev->mode &= ~ENABLE;
- 	writew(dev->mode, dev->reg_base_virt + REG_MODE);
--	readw(dev->reg_base_virt + REG_MODE);
- 
- 	if (ch_status == DMA_COMPLETE) {
- 		struct vb2_buffer *vb = dev->current_vb;
-@@ -223,7 +221,7 @@ static int configure_edma(struct cssp_cam_dev *cam)
- 		return -1;
- 	}
- 
--	cam->dma_ch = edma_alloc_channel(dma_channel, dma_callback, cam, EVENTQ_1);
-+	cam->dma_ch = edma_alloc_channel(dma_channel, dma_callback, cam, EVENTQ_0);
- 	if (cam->dma_ch < 0) {
- 		printk(KERN_ERR "[%s]: allocating channel for DMA failed\n", pdev->name);
- 		return -EBUSY;
-@@ -526,7 +524,6 @@ static int stop_streaming(struct vb2_queue *vq)
- 	// Disable data capture
- 	dev->mode &= ~ENABLE;
- 	writew(dev->mode, dev->reg_base_virt + REG_MODE);
--	readw(dev->reg_base_virt + REG_MODE);
- 
- 	stop_camera_sensor(dev);
- 
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.h b/drivers/media/video/cssp_camera/cssp_camera.h
-index d018ca1..8eb5f83 100644
---- a/drivers/media/video/cssp_camera/cssp_camera.h
-+++ b/drivers/media/video/cssp_camera/cssp_camera.h
-@@ -28,7 +28,7 @@ static unsigned debug;
- module_param(debug, uint, 0644);
- MODULE_PARM_DESC(debug, "activates debug info");
- 
--static unsigned int vid_limit = 1;
-+static unsigned int vid_limit = 6;
- module_param(vid_limit, uint, 0644);
- MODULE_PARM_DESC(vid_limit, "capture memory limit in megabytes");
- 
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0077-beaglebone-disable-UYVY-VYUY-and-YVYU-modes-in-camer.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0077-beaglebone-disable-UYVY-VYUY-and-YVYU-modes-in-camer.patch
deleted file mode 100644
index cc82416..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0077-beaglebone-disable-UYVY-VYUY-and-YVYU-modes-in-camer.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From 850bc72301ae8eae6e9d11a9ec4d64bc683410fe Mon Sep 17 00:00:00 2001
-From: Dan Aizenstros <daizenstros at quicklogic.com>
-Date: Wed, 11 Jul 2012 12:29:29 -0400
-Subject: [PATCH 77/79] beaglebone: disable UYVY, VYUY and YVYU modes in
- camera_cssp.c
-
-Signed-off-by: Dan Aizenstros <daizenstros at quicklogic.com>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/media/video/cssp_camera/cssp_camera.c |    6 ++++++
- 1 file changed, 6 insertions(+)
-
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.c b/drivers/media/video/cssp_camera/cssp_camera.c
-index 34a36d7..acd38ee 100644
---- a/drivers/media/video/cssp_camera/cssp_camera.c
-+++ b/drivers/media/video/cssp_camera/cssp_camera.c
-@@ -60,6 +60,11 @@ static struct cssp_cam_fmt formats[] = {
- 		.depth	= 16,
- 		.code	= V4L2_MBUS_FMT_YUYV8_2X8,
- 	},
-+/*
-+ * UYVY doesn't work properly. VYUY and YVYU are not tested.
-+ * So disable the UYVY, VYUY and YVYU modes for now
-+ */
-+#if 0
- 	{
- 		.name	= "4:2:2, packed, UYVY",
- 		.fourcc	= V4L2_PIX_FMT_UYVY,
-@@ -78,6 +83,7 @@ static struct cssp_cam_fmt formats[] = {
- 		.depth	= 16,
- 		.code	= V4L2_MBUS_FMT_YVYU8_2X8,
- 	},
-+#endif
- 	{
- 		.name	= "RGB565 (LE)",
- 		.fourcc	= V4L2_PIX_FMT_RGB565,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0078-beaglebone-error-handling-for-DMA-completion-in-cssp.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0078-beaglebone-error-handling-for-DMA-completion-in-cssp.patch
deleted file mode 100644
index cc678ba..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0078-beaglebone-error-handling-for-DMA-completion-in-cssp.patch
+++ /dev/null
@@ -1,49 +0,0 @@
-From 823d8b7b4a1dcfefc7260110a3acada0d1f45695 Mon Sep 17 00:00:00 2001
-From: Dan Aizenstros <daizenstros at quicklogic.com>
-Date: Thu, 12 Jul 2012 16:52:21 -0400
-Subject: [PATCH 78/79] beaglebone: error handling for DMA completion in
- cssp_camera.c
-
-Signed-off-by: Dan Aizenstros <daizenstros at quicklogic.com>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/media/video/cssp_camera/cssp_camera.c |   16 +++++++++++++++-
- 1 file changed, 15 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.c b/drivers/media/video/cssp_camera/cssp_camera.c
-index acd38ee..fca199b 100644
---- a/drivers/media/video/cssp_camera/cssp_camera.c
-+++ b/drivers/media/video/cssp_camera/cssp_camera.c
-@@ -191,6 +191,21 @@ static void dma_callback(unsigned lch, u16 ch_status, void *data)
- 	if (ch_status == DMA_COMPLETE) {
- 		struct vb2_buffer *vb = dev->current_vb;
- 		struct timeval ts;
-+		struct edmacc_param dma_tr_params;
-+
-+		edma_read_slot(dev->dma_ch, &dma_tr_params);
-+		if ((dma_tr_params.opt != 0) ||
-+			(dma_tr_params.src != 0) ||
-+			(dma_tr_params.a_b_cnt != 0) ||
-+			(dma_tr_params.dst != 0) ||
-+			(dma_tr_params.src_dst_bidx != 0) ||
-+			(dma_tr_params.link_bcntrld != 0xffff) ||
-+			(dma_tr_params.src_dst_cidx != 0) ||
-+			(dma_tr_params.ccnt != 0)) {
-+
-+			trigger_dma_transfer_to_buf(dev, dev->current_vb);
-+			return;
-+		}
- 
- 		vb->v4l2_buf.field = dev->field;
- 		dev->field_count++;
-@@ -204,7 +219,6 @@ static void dma_callback(unsigned lch, u16 ch_status, void *data)
- 		/* check if we have new buffer queued */
- 		dequeue_buffer_for_dma(dev);
- 	} else {
--		printk(KERN_ERR "[cssp_camera]: EDMA error (ch_status = %d)\n", ch_status);
- 		/* we got a missed interrupt so just start a new DMA with the existing buffer */
- 		if (dev->current_vb != NULL)
- 			trigger_dma_transfer_to_buf(dev, dev->current_vb);
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0079-AM335X-errata-OPP50-on-MPU-domain-is-not-supported.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0079-AM335X-errata-OPP50-on-MPU-domain-is-not-supported.patch
deleted file mode 100644
index c50abbf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0079-AM335X-errata-OPP50-on-MPU-domain-is-not-supported.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 662134c1007cc275193737dd11ea4b77f47256a7 Mon Sep 17 00:00:00 2001
-From: AnilKumar Ch <anilkumar at ti.com>
-Date: Tue, 26 Jun 2012 15:41:51 +0530
-Subject: [PATCH 79/79] AM335X: errata: OPP50 on MPU domain is not supported
-
-This patch implements a workaround for OPP50 erratum, Advisory
-1.0.15 at http://www.ti.com/lit/er/sprz360b/sprz360b.pdf
-
-OPP50 Operation on MPU Domain is Not Supported. This issue seen with
-reliability tests running on MPU. To minimize power consumption, the
-ARM Cortex-A8 may be operated at the lower frequency defined by OPP50,
-but the respective power terminal VDD_MPU must be operated as defined
-by OPP100. So MPU OPP50 modified to <275MHz, 1.1V>.
-
-Power consumption as seen on AM335x EVM:
-OPP50  <275MHz, 0.95> - 40.5 mW
-OPP50  <275MHz, 1.10> - 55.5 mW
-OPP100 <500MHz, 1.10> - 98.5 mW
-
-Based on the above data we can see 43mW power savings compared to
-OPP100. This is the reason for keeping OPP50 alive instead of
-shutting down completely.
-
-Signed-off-by: AnilKumar Ch <anilkumar at ti.com>
----
- arch/arm/mach-omap2/opp3xxx_data.c |   10 +++++++++-
- 1 file changed, 9 insertions(+), 1 deletion(-)
-
-diff --git a/arch/arm/mach-omap2/opp3xxx_data.c b/arch/arm/mach-omap2/opp3xxx_data.c
-index 0e540c8..9fbcfc3 100644
---- a/arch/arm/mach-omap2/opp3xxx_data.c
-+++ b/arch/arm/mach-omap2/opp3xxx_data.c
-@@ -154,7 +154,15 @@ static struct omap_opp_def __initdata omap36xx_opp_def_list[] = {
- 
- /* VDD1 */
- 
--#define AM33XX_VDD_MPU_OPP50_UV		950000
-+/*
-+ * Errata 1.0.15: OPP50 Operation on MPU Domain is Not Supported.
-+ *
-+ * To minimize power consumption, the ARM Cortex-A8 may be operated at
-+ * the lower frequency defined by OPP50, but the respective voltage
-+ * domain VDD_MPU must be operated as defined by OPP100. So MPU OPP50
-+ * definition is modified to 275MHz, 1.1V.
-+ */
-+#define AM33XX_VDD_MPU_OPP50_UV		1100000
- #define AM33XX_VDD_MPU_OPP100_UV	1100000
- #define AM33XX_VDD_MPU_OPP120_UV	1200000
- #define AM33XX_VDD_MPU_OPPTURBO_UV	1260000
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0080-vfs-Add-a-trace-point-in-the-mark_inode_dirty-functi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0080-vfs-Add-a-trace-point-in-the-mark_inode_dirty-functi.patch
deleted file mode 100644
index f45178c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0080-vfs-Add-a-trace-point-in-the-mark_inode_dirty-functi.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From a0a3563affbbebd9c7385586e1d6031de82c2a83 Mon Sep 17 00:00:00 2001
-From: Arjan van de Ven <arjan at linux.intel.com>
-Date: Fri, 26 Nov 2010 12:18:03 -0800
-Subject: [PATCH] vfs: Add a trace point in the mark_inode_dirty function
-
-PowerTOP would like to be able to show who is keeping the disk
-busy by dirtying data. The most logical spot for this is in the vfs
-in the mark_inode_dirty() function, doing this on the block level
-is not possible because by the time the IO hits the block layer the
-guilty party can no longer be found ("kjournald" and "pdflush" are not
-useful answers to "who caused this file to be dirty).
-
-The trace point follows the same logic/style as the block_dump code
-and pretty much dumps the same data, just not to dmesg (and thus to
-/var/log/messages) but via the trace events streams.
-
-Eventually we should be able to phase out the block dump code, but that's
-for later on after a transition time.
----
- fs/fs-writeback.c                |    3 +++
- include/linux/fs.h               |   12 ++++++++++++
- include/trace/events/writeback.h |   28 ++++++++++++++++++++++++++++
- 3 files changed, 43 insertions(+)
-
-diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
-index 54f5786..981ec8c 100644
---- a/fs/fs-writeback.c
-+++ b/fs/fs-writeback.c
-@@ -1072,6 +1072,9 @@ void __mark_inode_dirty(struct inode *inode, int flags)
- 	if ((inode->i_state & flags) == flags)
- 		return;
- 
-+	if (flags & (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES))
-+		trace_writeback_inode_dirty(inode, flags);
-+
- 	if (unlikely(block_dump))
- 		block_dump___mark_inode_dirty(inode);
- 
-diff --git a/include/linux/fs.h b/include/linux/fs.h
-index 43d36b7..a3e46ee 100644
---- a/include/linux/fs.h
-+++ b/include/linux/fs.h
-@@ -1759,6 +1759,18 @@ struct super_operations {
- 
- #define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES)
- 
-+#define INODE_DIRTY_FLAGS \
-+	{ I_DIRTY_SYNC,		"DIRTY-SYNC" }, \
-+	{ I_DIRTY_DATASYNC,	"DIRTY-DATASYNC" }, \
-+	{ I_DIRTY_PAGES,	"DIRTY-PAGES" }, \
-+	{ I_NEW,		"NEW" }, \
-+	{ I_WILL_FREE,		"WILL-FREE" }, \
-+	{ I_FREEING,		"FREEING" }, \
-+	{ I_CLEAR,		"CLEAR" }, \
-+	{ I_SYNC,		"SYNC" }, \
-+	{ I_REFERENCED,		"REFERENCED" }
-+
-+
- extern void __mark_inode_dirty(struct inode *, int);
- static inline void mark_inode_dirty(struct inode *inode)
- {
-diff --git a/include/trace/events/writeback.h b/include/trace/events/writeback.h
-index 1f48f14..8053e75 100644
---- a/include/trace/events/writeback.h
-+++ b/include/trace/events/writeback.h
-@@ -400,6 +400,34 @@ DEFINE_EVENT(writeback_congest_waited_template, writeback_wait_iff_congested,
- 	TP_ARGS(usec_timeout, usec_delayed)
- );
- 
-+/*
-+ * Tracepoint for dirtying an inode; used by PowerTOP
-+ */
-+TRACE_EVENT(writeback_inode_dirty,
-+
-+	TP_PROTO(struct inode *inode, int flags),
-+
-+	TP_ARGS(inode, flags),
-+
-+	TP_STRUCT__entry(
-+		__field(	__kernel_dev_t,	dev		)
-+		__field(	ino_t,		ino		)
-+		__field(	u32,		flags		)
-+	),
-+
-+	TP_fast_assign(
-+		__entry->dev	= inode->i_sb->s_dev;
-+		__entry->ino	= inode->i_ino;
-+		__entry->flags  = flags;
-+	),
-+
-+	TP_printk("dev %d:%d ino %lu flags %d %s", MAJOR(__entry->dev), MINOR(__entry->dev),
-+		  (unsigned long) __entry->ino,
-+		  __entry->flags,
-+		  __print_flags(__entry->flags, "|", INODE_DIRTY_FLAGS)
-+	)
-+);
-+
- DECLARE_EVENT_CLASS(writeback_single_inode_template,
- 
- 	TP_PROTO(struct inode *inode,
--- 
-1.7.10
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0081-beaglebone-add-support-for-LCD7-A3.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0081-beaglebone-add-support-for-LCD7-A3.patch
deleted file mode 100644
index 07f7afc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0081-beaglebone-add-support-for-LCD7-A3.patch
+++ /dev/null
@@ -1,144 +0,0 @@
-From 44bfbc3cbd6ddc95db9a886744582ffddb79fe47 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Tue, 24 Jul 2012 13:23:28 +0200
-Subject: [PATCH 81/84] beaglebone: add support for LCD7 A3
-
----
- arch/arm/mach-omap2/board-am335xevm.c |   93 ++++++++++++++++++++++++++++++++-
- 1 files changed, 92 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 82020fc..0c305b6 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -660,6 +660,12 @@ static struct pinmux_config bbtoys7a2_pin_mux[] = {
- 	{NULL, 0},
- };
- 
-+/* Module pin mux for Beagleboardtoys 7" LCD cape */
-+static struct pinmux_config bbtoys7a3_pin_mux[] = {
-+	{"spi0_sclk.gpio0_2", OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT}, // AVDD_EN
-+	{"gpmc_a2.ehrpwm1A", OMAP_MUX_MODE6 | AM33XX_PIN_OUTPUT}, // Backlight
-+	{NULL, 0},
-+};
- 
- static struct pinmux_config w1_gpio_pin_mux[] = {
- 	{"gpmc_ad3.gpio1_3",	OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
-@@ -1164,6 +1170,82 @@ static void beaglebone_lcd7_keys_init(int evm_id, int profile)
- 		pr_err("failed to register gpio keys for LCD7 cape\n");
- }
- 
-+/* pinmux for lcd7 keys */
-+static struct pinmux_config lcd7a3_keys_pin_mux[] = {
-+	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //left
-+	{"gpmc_a1.gpio1_17",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //right
-+	{"gpmc_a3.gpio1_19",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //up
-+	{"mcasp0_axr0.gpio3_16",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //down
-+	{"sdpi0_d0.gpio0_3",    OMAP_MUX_MODE7 | AM33XX_PIN_INPUT}, //enter
-+	{NULL, 0},
-+};
-+
-+/* Configure GPIOs for lcd7 keys */
-+static struct gpio_keys_button beaglebone_lcd7a3_gpio_keys[] = {
-+	{
-+		.code                   = KEY_LEFT,
-+		.gpio                   = GPIO_TO_PIN(1, 16),
-+		.active_low             = true,
-+		.desc                   = "left",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_RIGHT,
-+		.gpio                   = GPIO_TO_PIN(1, 17),
-+		.active_low             = true,
-+		.desc                   = "right",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_UP,
-+		.gpio                   = GPIO_TO_PIN(1, 19),
-+		.active_low             = true,
-+		.desc                   = "up",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_DOWN,
-+		.gpio                   = GPIO_TO_PIN(3, 16),
-+		.active_low             = true,
-+		.desc                   = "down",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+	{
-+		.code                   = KEY_ENTER,
-+		.gpio                   = GPIO_TO_PIN(0, 3),
-+		.active_low             = true,
-+		.desc                   = "enter",
-+		.type                   = EV_KEY,
-+		.wakeup                 = 1,
-+	},
-+};
-+
-+static struct gpio_keys_platform_data beaglebone_lcd7a3_gpio_key_info = {
-+	.buttons        = beaglebone_lcd7a3_gpio_keys,
-+	.nbuttons       = ARRAY_SIZE(beaglebone_lcd7a3_gpio_keys),
-+};
-+
-+static struct platform_device beaglebone_lcd7a3_keys = {
-+	.name   = "gpio-keys",
-+	.id     = -1,
-+	.dev    = {
-+		.platform_data  = &beaglebone_lcd7a3_gpio_key_info,
-+	},
-+};
-+
-+static void beaglebone_lcd7a3_keys_init(int evm_id, int profile)
-+{
-+	int err;
-+	setup_pin_mux(lcd7a3_keys_pin_mux);
-+	err = platform_device_register(&beaglebone_lcd7a3_keys);
-+	if (err)
-+		pr_err("failed to register gpio keys for LCD7 cape\n");
-+}
-+
- /* pinmux for lcd3 keys */
- static struct pinmux_config lcd3_keys_pin_mux[] = {
- 	{"gpmc_a0.gpio1_16",  OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},
-@@ -1719,6 +1801,7 @@ static void lcdc_init(int evm_id, int profile)
- 
- #define BEAGLEBONE_LCD_AVDD_EN GPIO_TO_PIN(0, 7)
- #define BEAGLEBONE_LCD7A2_AVDD_EN GPIO_TO_PIN(1, 31)
-+#define BEAGLEBONE_LCD7A3_AVDD_EN GPIO_TO_PIN(0, 2)
- 
- static void bbtoys7lcd_init(int evm_id, int profile)
- {
-@@ -2934,6 +3017,10 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 			setup_pin_mux(bbtoys7a2_pin_mux);
- 			gpio_request(BEAGLEBONE_LCD7A2_AVDD_EN, "BONE_LCD_AVDD_EN");
- 			gpio_direction_output(BEAGLEBONE_LCD7A2_AVDD_EN, 1);
-+		} else if(!strncmp("00A3", cape_config.version, 4)) {
-+			setup_pin_mux(bbtoys7a3_pin_mux);
-+			gpio_request(BEAGLEBONE_LCD7A3_AVDD_EN, "BONE_LCD_AVDD_EN");
-+			gpio_direction_output(BEAGLEBONE_LCD7A3_AVDD_EN, 1);			
- 		} else {
- 			setup_pin_mux(bbtoys7_pin_mux);
- 			gpio_request(BEAGLEBONE_LCD_AVDD_EN, "BONE_LCD_AVDD_EN");
-@@ -2948,7 +3035,11 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		enable_ehrpwm1(0,0);
- 		beaglebone_tsadcpins_free = 0;
- 		pr_info("BeagleBone cape: Registering gpio-keys for LCD cape\n");
--		beaglebone_lcd7_keys_init(0,0);
-+		if (!strncmp("00A3", cape_config.version, 4)) {
-+			beaglebone_lcd7a3_keys_init(0,0);
-+		} else {
-+			beaglebone_lcd7_keys_init(0,0);
-+		}
- 		
- 		beaglebone_spi1_free = 0;
- 		// A1 or newer
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0082-beaglebone-add-rudimentary-support-for-eMMC-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0082-beaglebone-add-rudimentary-support-for-eMMC-cape.patch
deleted file mode 100644
index 737705c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0082-beaglebone-add-rudimentary-support-for-eMMC-cape.patch
+++ /dev/null
@@ -1,111 +0,0 @@
-From 9fd45d5967c0e09c57e2cf41e4bf26dadf31eb16 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 26 Jul 2012 22:30:34 +0200
-Subject: [PATCH 82/84] beaglebone: add rudimentary support for eMMC cape
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |   42 ++++++++++++++++++++++++--------
- 1 files changed, 31 insertions(+), 11 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 0c305b6..579df6c 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -913,6 +913,7 @@ static struct pinmux_config mmc1_pin_mux[] = {
- 	{"gpmc_csn2.mmc1_cmd",	OMAP_MUX_MODE2 | AM33XX_PIN_INPUT_PULLUP},
- 	{"gpmc_csn0.gpio1_29",	OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
- 	{"gpmc_advn_ale.mmc1_sdcd", OMAP_MUX_MODE7 | AM33XX_PIN_INPUT_PULLUP},
-+	{"uart1_rxd.mmc1_sdwp", OMAP_MUX_MODE1 | AM33XX_PIN_INPUT_PULLDOWN},
- 	{NULL, 0},
- };
- 
-@@ -2627,6 +2628,28 @@ static void mcasp0_init(int evm_id, int profile)
- 	return;
- }
- 
-+static void mmc0_init(int evm_id, int profile)
-+{
-+	setup_pin_mux(mmc0_pin_mux);
-+
-+	omap2_hsmmc_init(am335x_mmc);
-+	return;
-+}
-+
-+static void emmc_bone_init(int evm_id, int profile)
-+{
-+	printk("cape: emmc_bone_init\n");
-+	setup_pin_mux(mmc1_pin_mux);
-+	am335x_mmc[1].mmc = 2;
-+	am335x_mmc[1].caps = MMC_CAP_4_BIT_DATA;
-+	am335x_mmc[1].nonremovable = true;
-+	am335x_mmc[1].gpio_cd = -EINVAL;
-+	am335x_mmc[1].gpio_wp = -EINVAL;
-+	am335x_mmc[1].ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34; /* 3V3 */
-+	/* mmc will be initialized when mmc0_init is called */
-+	return;
-+}
-+
- static const char* cape_pins[] = {
- /*
-   From SRM RevA5.0.1:
-@@ -2923,7 +2946,6 @@ static int bone_io_config_from_cape_eeprom( void)
- 	RULER( NR_ITEMS( cape_config.muxdata));
- 	return 0;
- }
--
- static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context)
- {
- 	int ret;
-@@ -3102,6 +3124,12 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		#endif
- 		*/
- 	}
-+
-+	if (!strncmp("BB-BONE-eMMC1-01", cape_config.partnumber, 15)) {
-+		pr_info("BeagleBone cape: initializing eMMC cape\n");
-+		beaglebone_w1gpio_free = 0;
-+		emmc_bone_init(0,0);
-+	}
- 	
- 	if (!strncmp("BB-BONE-SERL-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: initializing CAN cape\n");
-@@ -3147,6 +3175,7 @@ out:
- 	beaglebone_cape_detected = false;
- out2:
- 	if (capecount > 3) {
-+		mmc0_init(0,0);
- 		if (beaglebone_tsadcpins_free == 1) {
- 			pr_info("BeagleBone cape: exporting ADC pins to sysfs\n");
- 			bone_tsc_init(0,0);
-@@ -3338,14 +3367,6 @@ static void d_can_init(int evm_id, int profile)
- 	}
- }
- 
--static void mmc0_init(int evm_id, int profile)
--{
--	setup_pin_mux(mmc0_pin_mux);
--
--	omap2_hsmmc_init(am335x_mmc);
--	return;
--}
--
- static struct i2c_board_info tps65217_i2c_boardinfo[] = {
- 	{
- 		I2C_BOARD_INFO("tps65217", TPS65217_I2C_ID),
-@@ -3589,11 +3610,10 @@ static struct evm_dev_cfg beaglebone_old_dev_cfg[] = {
- /* Beaglebone Rev A3 and after */
- static struct evm_dev_cfg beaglebone_dev_cfg[] = {
- 	{tps65217_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
-+	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{mii1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{usb0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{usb1_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
--	{i2c2_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
--	{mmc0_init,	DEV_ON_BASEBOARD, PROFILE_NONE},
- 	{NULL, 0, 0},
- };
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0083-beaglebone-add-extra-partnumber-for-camera-cape.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0083-beaglebone-add-extra-partnumber-for-camera-cape.patch
deleted file mode 100644
index 152ac22..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0083-beaglebone-add-extra-partnumber-for-camera-cape.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From b9d6ae7ba8604c3c8ce64c53073990a831611414 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Thu, 26 Jul 2012 22:31:30 +0200
-Subject: [PATCH 83/84] beaglebone: add extra partnumber for camera cape
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 579df6c..3b6f354 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -3158,7 +3158,7 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		tt3201_init(0,0);
- 	}
- 
--	if (!strncmp("BB-BONE-CAM-01", cape_config.partnumber, 14)) {
-+	if (!strncmp("BB-BONE-CAM-01", cape_config.partnumber, 14) || !strncmp("BB-BONE-CAM3-01", cape_config.partnumber, 15)) {
- 		pr_info("BeagleBone cape: recognized Camera cape\n");
- 		beaglebone_w1gpio_free = 0;
- 		cssp_gpmc_init();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0084-beaglebone-cssp_camera-driver-cleanup.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0084-beaglebone-cssp_camera-driver-cleanup.patch
deleted file mode 100644
index 5dc325d..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0084-beaglebone-cssp_camera-driver-cleanup.patch
+++ /dev/null
@@ -1,324 +0,0 @@
-From b9f772af6c2b9116bad19371e4547af86b4ac18d Mon Sep 17 00:00:00 2001
-From: Dan Aizenstros <daizenstros at quicklogic.com>
-Date: Thu, 26 Jul 2012 21:57:12 -0400
-Subject: [PATCH 84/84] beaglebone: cssp_camera driver cleanup
-
-fix v4l2_buf.sequence to use frame count
-fix enum/g/s_input functions
-remove pointless g/s_std support
-change the driver to use dev_err and dev_info instead of printk
-
-Signed-off-by: Dan Aizenstros <daizenstros at quicklogic.com>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/media/video/cssp_camera/cssp_camera.c |   98 +++++++++++--------------
- drivers/media/video/cssp_camera/cssp_camera.h |    7 +-
- 2 files changed, 44 insertions(+), 61 deletions(-)
-
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.c b/drivers/media/video/cssp_camera/cssp_camera.c
-index fca199b..4d86bf4 100644
---- a/drivers/media/video/cssp_camera/cssp_camera.c
-+++ b/drivers/media/video/cssp_camera/cssp_camera.c
-@@ -51,6 +51,7 @@
- #define PCLK_POL		BIT(14) /* PCLK polarity (0 - rising edge, 1 - falling edge */
- #define HS_EN			BIT(13) /* High speed bus (0 =< 50 MHz, 1 > 50 MHz) */
- #define ENABLE			BIT(12)
-+#define REV			0xFF	/* Chip Revision mask */
- 
- 
- static struct cssp_cam_fmt formats[] = {
-@@ -123,7 +124,7 @@ static int reset_cssp(struct cssp_cam_dev *cam)
- 
- 	err = configure_gpio(cam->reset_pin, 0, "cssp_reset");
- 	if (err) {
--		printk(KERN_ERR "[%s]: failed to configure cssp reset pin\n", pdev->name);
-+		dev_err(&pdev->dev, "failed to configure cssp reset pin\n");
- 		return -1;
- 	}
- 
-@@ -190,7 +191,6 @@ static void dma_callback(unsigned lch, u16 ch_status, void *data)
- 
- 	if (ch_status == DMA_COMPLETE) {
- 		struct vb2_buffer *vb = dev->current_vb;
--		struct timeval ts;
- 		struct edmacc_param dma_tr_params;
- 
- 		edma_read_slot(dev->dma_ch, &dma_tr_params);
-@@ -208,13 +208,10 @@ static void dma_callback(unsigned lch, u16 ch_status, void *data)
- 		}
- 
- 		vb->v4l2_buf.field = dev->field;
--		dev->field_count++;
--		vb->v4l2_buf.sequence = dev->field_count >> 1;
--		do_gettimeofday(&ts);
--		vb->v4l2_buf.timestamp = ts;
-+		vb->v4l2_buf.sequence = dev->frame_cnt++;
-+		do_gettimeofday(&vb->v4l2_buf.timestamp);
- 		vb2_buffer_done(vb, VB2_BUF_STATE_DONE);
- 		dev->current_vb = NULL;
--		dev->frame_cnt++;
- 
- 		/* check if we have new buffer queued */
- 		dequeue_buffer_for_dma(dev);
-@@ -237,16 +234,16 @@ static int configure_edma(struct cssp_cam_dev *cam)
- 	pdev->dev.coherent_dma_mask = (u32)~0;
- 
- 	if (dma_set_mask(&pdev->dev, (u32)~0)) {
--		printk(KERN_ERR "[%s]: failed setting mask for DMA\n", pdev->name);
-+		dev_err(&pdev->dev, "failed setting mask for DMA\n");
- 		return -1;
- 	}
- 
- 	cam->dma_ch = edma_alloc_channel(dma_channel, dma_callback, cam, EVENTQ_0);
- 	if (cam->dma_ch < 0) {
--		printk(KERN_ERR "[%s]: allocating channel for DMA failed\n", pdev->name);
-+		dev_err(&pdev->dev, "allocating channel for DMA failed\n");
- 		return -EBUSY;
- 	} else {
--		printk(KERN_ERR "[%s]: allocating channel for DMA succeeded, chan=%d\n", pdev->name, cam->dma_ch);
-+		dev_info(&pdev->dev, "allocating channel for DMA succeeded, chan=%d\n", cam->dma_ch);
- 	}
- 
- 	cam->dma_tr_params.opt = TCINTEN | TCC(cam->dma_ch);
-@@ -273,7 +270,7 @@ static int configure_cssp(struct cssp_cam_dev *cam)
- 
- 	res = platform_get_resource_byname(pdev, IORESOURCE_MEM, "gpmc_phys_mem_slot");
- 	if (res == NULL) {
--		printk(KERN_ERR "[%s]: failed to get gpmc_phys_mem_slot resource\n", pdev->name);
-+		dev_err(&pdev->dev, "failed to get gpmc_phys_mem_slot resource\n");
- 		return -ENODEV;
- 	}
- 
-@@ -289,15 +286,16 @@ static int configure_cssp(struct cssp_cam_dev *cam)
- 
- 	cam->reg_base_virt = (unsigned int)ioremap(cam->reg_base_phys, cam->reg_size);
- 	if (cam->reg_base_virt == 0) {
--		printk(KERN_ERR "[%s]: ioremap of registers region failed\n", pdev->name);
-+		dev_err(&pdev->dev, "ioremap of registers region failed\n");
- 		release_mem_region(cam->reg_base_phys, cam->reg_size);
- 		return -ENOMEM;
- 	}
- 
--	printk(KERN_INFO "[%s]: reg_base_virt = 0x%x\n", pdev->name, cam->reg_base_virt);
-+	dev_info(&pdev->dev, "reg_base_virt = 0x%x\n", cam->reg_base_virt);
- 
- 	val = readw(cam->reg_base_virt + REG_MODE);
--	printk(KERN_INFO "[%s]: reading register address=0x0 returns 0x%x\n", pdev->name, val);
-+	cam->rev = val & REV;
-+	dev_info(&pdev->dev, "CSSP Revision %c%d\n", 'A' + ((cam->rev & 0xf0) >> 4), cam->rev & 0x0f);
- 
- 	return 0;
- }
-@@ -322,7 +320,7 @@ static int configure_camera_sensor(struct cssp_cam_dev *cam)
- 
- 	adapter	= i2c_get_adapter(((struct soc_camera_link *)(info->platform_data))->i2c_adapter_id);
- 	if (!adapter) {
--		printk(KERN_INFO "[%s]: failed to get adapter...\n", __func__);
-+		dev_err(&cam->pdev->dev, "failed to get i2c adapter...\n");
- 		return -ENODEV;
- 	}
- 
-@@ -333,7 +331,7 @@ static int configure_camera_sensor(struct cssp_cam_dev *cam)
- 		return -ENODEV;
- 	}
- 
--	printk(KERN_INFO "[%s]: client's name is: %s\n", __func__, client->name);
-+	dev_info(&cam->pdev->dev, "client's name is: %s\n", client->name);
- 
- 	subdev = (struct v4l2_subdev *)i2c_get_clientdata(client);
- 	if (subdev == NULL) {
-@@ -417,6 +415,8 @@ static int queue_setup(struct vb2_queue *vq, const struct v4l2_format *fmt,
- 
- 	alloc_ctxs[0] = dev->dma_cont_ctx;
- 
-+	dev->frame_cnt = 0;
-+
- 	dprintk(dev, 1, "%s, count=%d, size=%ld\n", __func__, *nbuffers, size);
- 
- 	return 0;
-@@ -659,6 +659,20 @@ static int vidioc_try_fmt_vid_cap(struct file *file, void *priv,
- 	pix->bytesperline = (pix->width * fmt->depth) >> 3;
- 	pix->sizeimage = pix->height * pix->bytesperline;
- 
-+	if ((pix->sizeimage % BYTES_PER_DMA_EVT) != 0)
-+		return -EINVAL;
-+
-+	switch (mbus_fmt.field) {
-+	case V4L2_FIELD_ANY:
-+		pix->field = V4L2_FIELD_NONE;
-+		break;
-+	case V4L2_FIELD_NONE:
-+		break;
-+	default:
-+		dev_err(&dev->pdev->dev, "Field type %d unsupported.\n", mbus_fmt.field);
-+		return -EINVAL;
-+	}
-+
- 	return 0;
- }
- 
-@@ -744,42 +758,29 @@ static int vidioc_log_status(struct file *file, void *priv)
- 	return 0;
- }
- 
--static int vidioc_s_std(struct file *file, void *priv, v4l2_std_id *i)
--{
--	return 0;
--}
--
--/* only one input in this sample driver */
- static int vidioc_enum_input(struct file *file, void *priv,
- 				struct v4l2_input *inp)
- {
--	return -EINVAL;
-+	if (inp->index > 0)
-+		return -EINVAL;
- 
- 	inp->type = V4L2_INPUT_TYPE_CAMERA;
--	inp->std = V4L2_STD_525_60;
- 	sprintf(inp->name, "Camera %u", inp->index);
-+
- 	return 0;
- }
- 
- static int vidioc_g_input(struct file *file, void *priv, unsigned int *i)
- {
--	struct cssp_cam_dev *dev = video_drvdata(file);
--
--	*i = dev->input;
-+	*i = 0;
- 
- 	return 0;
- }
- 
- static int vidioc_s_input(struct file *file, void *priv, unsigned int i)
- {
--	struct cssp_cam_dev *dev = video_drvdata(file);
--
--	return -EINVAL;
--
--	if (i == dev->input)
--		return 0;
--
--	dev->input = i;
-+	if (i > 0)
-+		return -EINVAL;
- 
- 	return 0;
- }
-@@ -805,7 +806,6 @@ static const struct v4l2_ioctl_ops cssp_cam_ioctl_ops = {
- 	.vidioc_querybuf		= vidioc_querybuf,
- 	.vidioc_qbuf			= vidioc_qbuf,
- 	.vidioc_dqbuf			= vidioc_dqbuf,
--	.vidioc_s_std			= vidioc_s_std,
- 	.vidioc_enum_input		= vidioc_enum_input,
- 	.vidioc_g_input			= vidioc_g_input,
- 	.vidioc_s_input			= vidioc_s_input,
-@@ -894,8 +894,6 @@ static struct video_device cssp_cam_template = {
- 	.ioctl_ops	= &cssp_cam_ioctl_ops,
- 	.minor		= -1,
- 	.release	= video_device_release,
--	.tvnorms	= V4L2_STD_525_60,
--	.current_norm	= V4L2_STD_NTSC_M,
- };
- 
- static int __init  video_probe(struct cssp_cam_dev *cam_dev)
-@@ -1006,12 +1004,12 @@ static int __init  cssp_cam_probe(struct platform_device *pdev)
- 
- 	cssp_cam_platform_data = (struct cssp_cam_platform_data *) pdev->dev.platform_data;
- 	if (cssp_cam_platform_data == NULL) {
--		printk(KERN_ERR "[%s]: missing platform data\n", pdev->name);
-+		dev_err(&pdev->dev, "missing platform data\n");
- 		return -ENODEV;
- 	}
- 
- 	if (cssp_cam_platform_data->cam_i2c_board_info == NULL) {
--		printk(KERN_ERR "[%s]: missing camera i2c board info\n", pdev->name);
-+		dev_err(&pdev->dev, "missing camera i2c board info\n");
- 		return -ENODEV;
- 	}
- 
-@@ -1027,7 +1025,7 @@ static int __init  cssp_cam_probe(struct platform_device *pdev)
- 	cam_dev->camera_clk = clk_get(&pdev->dev, cssp_cam_platform_data->cam_clk_name);
- 	if (IS_ERR(cam_dev->camera_clk)) {
- 		ret = PTR_ERR(cam_dev->camera_clk);
--		printk(KERN_ERR "[%s]: cannot clk_get %s\n", pdev->name, cssp_cam_platform_data->cam_clk_name);
-+		dev_err(&pdev->dev, "cannot clk_get %s\n", cssp_cam_platform_data->cam_clk_name);
- 		goto fail0;
- 	}
- 
-@@ -1043,7 +1041,7 @@ static int __init  cssp_cam_probe(struct platform_device *pdev)
- 
- 	ret = configure_camera_sensor(cam_dev);
- 	if (ret) {
--		printk(KERN_ERR "[%s]: camera sensor configuration failed\n", pdev->name);
-+		dev_err(&pdev->dev, "camera sensor configuration failed\n");
- 		goto fail3;
- 	}
- 
-@@ -1097,7 +1095,7 @@ static int cssp_cam_remove(struct platform_device *pdev)
- 
- 	kfree(cam);
- 
--	printk(KERN_INFO "[%s]: removed\n", pdev->name);
-+	dev_info(&pdev->dev, "removed\n");
- 
- 	return 0;
- }
-@@ -1112,20 +1110,8 @@ static struct platform_driver cssp_cam_driver = {
- 	},
- };
- 
-+module_platform_driver(cssp_cam_driver);
- 
--static int __init cssp_cam_init(void)
--{
--	return platform_driver_register(&cssp_cam_driver);
--}
--
--static void __exit cssp_cam_exit(void)
--{
--	platform_driver_unregister(&cssp_cam_driver);
--}
--
--
--module_init(cssp_cam_init);
--module_exit(cssp_cam_exit);
- 
- /*
-  * Macros sets license, author and description
-diff --git a/drivers/media/video/cssp_camera/cssp_camera.h b/drivers/media/video/cssp_camera/cssp_camera.h
-index 8eb5f83..3bb6ea4 100644
---- a/drivers/media/video/cssp_camera/cssp_camera.h
-+++ b/drivers/media/video/cssp_camera/cssp_camera.h
-@@ -111,9 +111,6 @@ struct cssp_cam_dev {
- 	int				streaming_started;
- 	struct vb2_buffer		*current_vb;
- 
--	/* Input Number */
--	int				input;
--
- 	/* video capture */
- 	struct cssp_cam_fmt		*fmt;
- 	u32				width;
-@@ -123,8 +120,6 @@ struct cssp_cam_dev {
- 	enum v4l2_colorspace		colorspace;
- 	struct vb2_queue		vb_vidq;
- 	enum v4l2_field			field;
--	unsigned int			field_count;
--
- 
- 	/* Camera Sensor */
- 	struct i2c_board_info		*camera_board_info;
-@@ -142,6 +137,8 @@ struct cssp_cam_dev {
- 	int				frame_cnt;
- 
- 	int				reset_pin;
-+
-+	int				rev;
- };
- 
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0085-beaglebone-mux-camera-cape-orientation-pin-to-gpio.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0085-beaglebone-mux-camera-cape-orientation-pin-to-gpio.patch
deleted file mode 100644
index 396b2d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0085-beaglebone-mux-camera-cape-orientation-pin-to-gpio.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From cfef44a953b640d592133ed553c1c4ba72953837 Mon Sep 17 00:00:00 2001
-From: Koen Kooi <koen at dominion.thruhere.net>
-Date: Wed, 15 Aug 2012 14:33:37 +0200
-Subject: [PATCH] beaglebone: mux camera cape orientation pin to gpio
-
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- arch/arm/mach-omap2/board-am335xevm.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index d30c5a2..78c4bf9 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -846,6 +846,7 @@ static struct pinmux_config gpmc_pin_mux[] = {
- static struct pinmux_config camera_cape_pin_mux[] = {
- 	{"spi0_d1.gpio0_4",    OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT },		// QL CSSP and Camera Sensor Reset
- 	{"spi0_cs0.gpio0_5",   OMAP_MUX_MODE7 | AM33XX_PIN_OUTPUT_PULLUP },	// 1V8 and 2V8 Power Enable
-+	{"gpmc_csn1.gpio0_30",   OMAP_MUX_MODE7 | AM33XX_PIN_INPUT},		// Sensor orientation detect: low -> frontfacing, high -> backfacing
- 	{NULL, 0},
- };
- 
-@@ -2065,8 +2066,8 @@ static void cssp_gpmc_init(void)
- 			{ NULL, GPMC_DEVICE_NOR },
- 		};
- 
--	setup_pin_mux(camera_cape_pin_mux);
- 	setup_pin_mux(gpmc_pin_mux);
-+	setup_pin_mux(camera_cape_pin_mux);
- 
- 	omap_init_gpmc(gpmc_device, sizeof(gpmc_device));
- 	gpmc_cssp_init();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0086-board-am335xevm-Add-Beaglebone-Motor-Cape-Support.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0086-board-am335xevm-Add-Beaglebone-Motor-Cape-Support.patch
deleted file mode 100644
index 78055d0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0086-board-am335xevm-Add-Beaglebone-Motor-Cape-Support.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 4184217cda11245823527d7b3b65fcb9eeb88c6a Mon Sep 17 00:00:00 2001
-From: Roger Monk <r-monk at ti.com>
-Date: Mon, 13 Aug 2012 21:44:49 +0100
-Subject: [PATCH 86/87] board-am335xevm: Add Beaglebone Motor Cape Support
-
-   * Beaglebone Motor Cape adds 4 DRV8833 devices connected to
-     the 8 PWM outputs on the beaglebone allowing 8 DC Motors or
-     4 Stepper Motors to be controlled
-      * If PWM channels are not available some of these channels can be
-        remapped to GPIO pins via jumpers
-
-   * GPIOs are used for Direction control of each motor channel (1 per channel)
-   * GPIOs are also used for Sense Feedback from each motor (2 per channel)
-      * Channel 1 sense pins are mapped to QEP0 for use with quadrature encoders
-
-   * Initial Patch recognises the Motor Cape and makes all necessary
-     pins available by ensuring w1 and spi1 are marked as in-use
-
-Signed-off-by: Roger Monk <r-monk at ti.com>
----
- arch/arm/mach-omap2/board-am335xevm.c |    6 ++++++
- 1 files changed, 6 insertions(+), 0 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/board-am335xevm.c b/arch/arm/mach-omap2/board-am335xevm.c
-index 699fab3..f2d4a69 100644
---- a/arch/arm/mach-omap2/board-am335xevm.c
-+++ b/arch/arm/mach-omap2/board-am335xevm.c
-@@ -3165,6 +3165,12 @@ static void beaglebone_cape_setup(struct memory_accessor *mem_acc, void *context
- 		cssp_gpmc_init();
- 	}
- 
-+	if (!strncmp("BB-BONE-MOTOR-01", cape_config.partnumber, 16)) {
-+		pr_info("BeagleBone cape: initializing Motor cape\n");
-+		beaglebone_w1gpio_free = 0;
-+		beaglebone_spi1_free = 0;
-+        }
-+
- 	goto out2;
- out:
- 	/*
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0087-mux33xx-Fix-MUXENTRYs-for-MCASP0_ACLKX-FSX-to-add-eh.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0087-mux33xx-Fix-MUXENTRYs-for-MCASP0_ACLKX-FSX-to-add-eh.patch
deleted file mode 100644
index d361e16..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/0087-mux33xx-Fix-MUXENTRYs-for-MCASP0_ACLKX-FSX-to-add-eh.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From 2bb4fd4b7a1eb2a29de53ca66c67ca92ae52351e Mon Sep 17 00:00:00 2001
-From: Roger Monk <r-monk at ti.com>
-Date: Tue, 14 Aug 2012 18:06:13 +0100
-Subject: [PATCH 87/87] mux33xx: Fix MUXENTRYs for MCASP0_ACLKX/FSX to add
- ehrpwm0 and pru pins
-
-   * Add Mux Entries for ehrpwm0 to MCASP0_CLKX/FSX pins
-   * Also add modes 5/6 to the same pins for completeness (pru pins)
-
-Signed-off-by: Roger Monk <r-monk at ti.com>
----
- arch/arm/mach-omap2/mux33xx.c |    8 ++++----
- 1 files changed, 4 insertions(+), 4 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 852f7f0..c0d14b3 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -335,11 +335,11 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 		"i2c0_scl", NULL, NULL, NULL,
- 		NULL, NULL, NULL, "gpio3_6"),
- 	_AM33XX_MUXENTRY(MCASP0_ACLKX, 0,
--		"mcasp0_aclkx", NULL, NULL, "spi1_sclk",
--		"mmc0_sdcd", NULL, NULL, "gpio3_14"),
-+		"mcasp0_aclkx", "ehrpwm0A", NULL, "spi1_sclk",
-+		"mmc0_sdcd", "pr1_pru0_pru_r30_0", "pr1_pru0_pru_r31_0", "gpio3_14"),
- 	_AM33XX_MUXENTRY(MCASP0_FSX, 0,
--		"mcasp0_fsx", NULL, NULL, "spi1_d0",
--		"mmc1_sdcd", NULL, NULL, "gpio3_15"),
-+		"mcasp0_fsx", "ehrpwm0B", NULL, "spi1_d0",
-+		"mmc1_sdcd", "pr1_pru0_pru_r30_1", "pr1_pru0_pru_r31_1", "gpio3_15"),
- 	_AM33XX_MUXENTRY(MCASP0_AXR0, 0,
- 		"mcasp0_axr0", NULL, NULL, "spi1_d1",
- 		"mmc2_sdcd", NULL, NULL, "gpio3_16"),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig
deleted file mode 100644
index 74b0051..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/defconfig
+++ /dev/null
@@ -1,3639 +0,0 @@
-#
-# Automatically generated file; DO NOT EDIT.
-# Linux/arm 3.2.28 Kernel Configuration
-#
-CONFIG_ARM=y
-CONFIG_HAVE_PWM=y
-CONFIG_SYS_SUPPORTS_APM_EMULATION=y
-CONFIG_HAVE_SCHED_CLOCK=y
-CONFIG_GENERIC_GPIO=y
-# CONFIG_ARCH_USES_GETTIMEOFFSET is not set
-CONFIG_GENERIC_CLOCKEVENTS=y
-CONFIG_KTIME_SCALAR=y
-CONFIG_HAVE_PROC_CPU=y
-CONFIG_STACKTRACE_SUPPORT=y
-CONFIG_HAVE_LATENCYTOP_SUPPORT=y
-CONFIG_LOCKDEP_SUPPORT=y
-CONFIG_TRACE_IRQFLAGS_SUPPORT=y
-CONFIG_HARDIRQS_SW_RESEND=y
-CONFIG_GENERIC_IRQ_PROBE=y
-CONFIG_RWSEM_GENERIC_SPINLOCK=y
-CONFIG_ARCH_HAS_CPUFREQ=y
-CONFIG_ARCH_HAS_CPU_IDLE_WAIT=y
-CONFIG_GENERIC_HWEIGHT=y
-CONFIG_GENERIC_CALIBRATE_DELAY=y
-CONFIG_NEED_DMA_MAP_STATE=y
-CONFIG_VECTORS_BASE=0xffff0000
-CONFIG_ARM_PATCH_PHYS_VIRT=y
-CONFIG_GENERIC_BUG=y
-CONFIG_DEFCONFIG_LIST="/lib/modules/$UNAME_RELEASE/.config"
-CONFIG_HAVE_IRQ_WORK=y
-CONFIG_IRQ_WORK=y
-
-#
-# General setup
-#
-CONFIG_EXPERIMENTAL=y
-CONFIG_BROKEN_ON_SMP=y
-CONFIG_INIT_ENV_ARG_LIMIT=32
-CONFIG_CROSS_COMPILE=""
-CONFIG_LOCALVERSION=""
-# CONFIG_LOCALVERSION_AUTO is not set
-CONFIG_HAVE_KERNEL_GZIP=y
-CONFIG_HAVE_KERNEL_LZMA=y
-CONFIG_HAVE_KERNEL_LZO=y
-# CONFIG_KERNEL_GZIP is not set
-# CONFIG_KERNEL_LZMA is not set
-CONFIG_KERNEL_LZO=y
-CONFIG_DEFAULT_HOSTNAME="BeagleBone"
-CONFIG_SWAP=y
-CONFIG_SYSVIPC=y
-CONFIG_SYSVIPC_SYSCTL=y
-CONFIG_POSIX_MQUEUE=y
-CONFIG_POSIX_MQUEUE_SYSCTL=y
-CONFIG_BSD_PROCESS_ACCT=y
-CONFIG_BSD_PROCESS_ACCT_V3=y
-CONFIG_FHANDLE=y
-CONFIG_TASKSTATS=y
-CONFIG_TASK_DELAY_ACCT=y
-CONFIG_TASK_XACCT=y
-CONFIG_TASK_IO_ACCOUNTING=y
-CONFIG_AUDIT=y
-CONFIG_HAVE_GENERIC_HARDIRQS=y
-
-#
-# IRQ subsystem
-#
-CONFIG_GENERIC_HARDIRQS=y
-CONFIG_HAVE_SPARSE_IRQ=y
-CONFIG_GENERIC_IRQ_SHOW=y
-CONFIG_GENERIC_IRQ_CHIP=y
-CONFIG_IRQ_DOMAIN=y
-CONFIG_SPARSE_IRQ=y
-
-#
-# RCU Subsystem
-#
-CONFIG_TINY_RCU=y
-# CONFIG_PREEMPT_RCU is not set
-# CONFIG_RCU_TRACE is not set
-# CONFIG_TREE_RCU_TRACE is not set
-CONFIG_IKCONFIG=y
-CONFIG_IKCONFIG_PROC=y
-CONFIG_LOG_BUF_SHIFT=17
-CONFIG_CGROUPS=y
-# CONFIG_CGROUP_DEBUG is not set
-CONFIG_CGROUP_FREEZER=y
-CONFIG_CGROUP_DEVICE=y
-# CONFIG_CPUSETS is not set
-CONFIG_CGROUP_CPUACCT=y
-CONFIG_RESOURCE_COUNTERS=y
-# CONFIG_CGROUP_MEM_RES_CTLR is not set
-# CONFIG_CGROUP_PERF is not set
-CONFIG_CGROUP_SCHED=y
-CONFIG_FAIR_GROUP_SCHED=y
-CONFIG_CFS_BANDWIDTH=y
-CONFIG_RT_GROUP_SCHED=y
-# CONFIG_BLK_CGROUP is not set
-CONFIG_NAMESPACES=y
-CONFIG_UTS_NS=y
-CONFIG_IPC_NS=y
-CONFIG_USER_NS=y
-CONFIG_PID_NS=y
-CONFIG_NET_NS=y
-CONFIG_SCHED_AUTOGROUP=y
-# CONFIG_SYSFS_DEPRECATED is not set
-CONFIG_RELAY=y
-CONFIG_BLK_DEV_INITRD=y
-CONFIG_INITRAMFS_SOURCE=""
-CONFIG_RD_GZIP=y
-CONFIG_RD_BZIP2=y
-CONFIG_RD_LZMA=y
-CONFIG_RD_XZ=y
-CONFIG_RD_LZO=y
-CONFIG_CC_OPTIMIZE_FOR_SIZE=y
-CONFIG_SYSCTL=y
-CONFIG_ANON_INODES=y
-CONFIG_EXPERT=y
-CONFIG_UID16=y
-CONFIG_SYSCTL_SYSCALL=y
-CONFIG_KALLSYMS=y
-CONFIG_KALLSYMS_ALL=y
-CONFIG_HOTPLUG=y
-CONFIG_PRINTK=y
-CONFIG_BUG=y
-CONFIG_ELF_CORE=y
-CONFIG_BASE_FULL=y
-CONFIG_FUTEX=y
-CONFIG_EPOLL=y
-CONFIG_SIGNALFD=y
-CONFIG_TIMERFD=y
-CONFIG_EVENTFD=y
-CONFIG_SHMEM=y
-CONFIG_AIO=y
-CONFIG_EMBEDDED=y
-CONFIG_HAVE_PERF_EVENTS=y
-CONFIG_PERF_USE_VMALLOC=y
-
-#
-# Kernel Performance Events And Counters
-#
-CONFIG_PERF_EVENTS=y
-CONFIG_PERF_COUNTERS=y
-# CONFIG_DEBUG_PERF_USE_VMALLOC is not set
-CONFIG_VM_EVENT_COUNTERS=y
-CONFIG_COMPAT_BRK=y
-CONFIG_SLAB=y
-# CONFIG_SLUB is not set
-# CONFIG_SLOB is not set
-CONFIG_PROFILING=y
-CONFIG_TRACEPOINTS=y
-CONFIG_OPROFILE=m
-CONFIG_HAVE_OPROFILE=y
-# CONFIG_KPROBES is not set
-CONFIG_HAVE_KPROBES=y
-CONFIG_HAVE_KRETPROBES=y
-CONFIG_HAVE_REGS_AND_STACK_ACCESS_API=y
-CONFIG_HAVE_CLK=y
-CONFIG_HAVE_DMA_API_DEBUG=y
-CONFIG_HAVE_HW_BREAKPOINT=y
-
-#
-# GCOV-based kernel profiling
-#
-# CONFIG_GCOV_KERNEL is not set
-CONFIG_HAVE_GENERIC_DMA_COHERENT=y
-CONFIG_SLABINFO=y
-CONFIG_RT_MUTEXES=y
-CONFIG_BASE_SMALL=0
-CONFIG_MODULES=y
-CONFIG_MODULE_FORCE_LOAD=y
-CONFIG_MODULE_UNLOAD=y
-CONFIG_MODULE_FORCE_UNLOAD=y
-CONFIG_MODVERSIONS=y
-# CONFIG_MODULE_SRCVERSION_ALL is not set
-CONFIG_BLOCK=y
-CONFIG_LBDAF=y
-CONFIG_BLK_DEV_BSG=y
-# CONFIG_BLK_DEV_BSGLIB is not set
-CONFIG_BLK_DEV_INTEGRITY=y
-
-#
-# IO Schedulers
-#
-CONFIG_IOSCHED_NOOP=y
-CONFIG_IOSCHED_DEADLINE=y
-CONFIG_IOSCHED_CFQ=y
-# CONFIG_DEFAULT_DEADLINE is not set
-CONFIG_DEFAULT_CFQ=y
-# CONFIG_DEFAULT_NOOP is not set
-CONFIG_DEFAULT_IOSCHED="cfq"
-# CONFIG_INLINE_SPIN_TRYLOCK is not set
-# CONFIG_INLINE_SPIN_TRYLOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK is not set
-# CONFIG_INLINE_SPIN_LOCK_BH is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQ is not set
-# CONFIG_INLINE_SPIN_LOCK_IRQSAVE is not set
-CONFIG_INLINE_SPIN_UNLOCK=y
-# CONFIG_INLINE_SPIN_UNLOCK_BH is not set
-CONFIG_INLINE_SPIN_UNLOCK_IRQ=y
-# CONFIG_INLINE_SPIN_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_READ_TRYLOCK is not set
-# CONFIG_INLINE_READ_LOCK is not set
-# CONFIG_INLINE_READ_LOCK_BH is not set
-# CONFIG_INLINE_READ_LOCK_IRQ is not set
-# CONFIG_INLINE_READ_LOCK_IRQSAVE is not set
-CONFIG_INLINE_READ_UNLOCK=y
-# CONFIG_INLINE_READ_UNLOCK_BH is not set
-CONFIG_INLINE_READ_UNLOCK_IRQ=y
-# CONFIG_INLINE_READ_UNLOCK_IRQRESTORE is not set
-# CONFIG_INLINE_WRITE_TRYLOCK is not set
-# CONFIG_INLINE_WRITE_LOCK is not set
-# CONFIG_INLINE_WRITE_LOCK_BH is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQ is not set
-# CONFIG_INLINE_WRITE_LOCK_IRQSAVE is not set
-CONFIG_INLINE_WRITE_UNLOCK=y
-# CONFIG_INLINE_WRITE_UNLOCK_BH is not set
-CONFIG_INLINE_WRITE_UNLOCK_IRQ=y
-# CONFIG_INLINE_WRITE_UNLOCK_IRQRESTORE is not set
-# CONFIG_MUTEX_SPIN_ON_OWNER is not set
-CONFIG_FREEZER=y
-
-#
-# System Type
-#
-CONFIG_MMU=y
-# CONFIG_ARCH_INTEGRATOR is not set
-# CONFIG_ARCH_REALVIEW is not set
-# CONFIG_ARCH_VERSATILE is not set
-# CONFIG_ARCH_VEXPRESS is not set
-# CONFIG_ARCH_AT91 is not set
-# CONFIG_ARCH_BCMRING is not set
-# CONFIG_ARCH_HIGHBANK is not set
-# CONFIG_ARCH_CLPS711X is not set
-# CONFIG_ARCH_CNS3XXX is not set
-# CONFIG_ARCH_GEMINI is not set
-# CONFIG_ARCH_PRIMA2 is not set
-# CONFIG_ARCH_EBSA110 is not set
-# CONFIG_ARCH_EP93XX is not set
-# CONFIG_ARCH_FOOTBRIDGE is not set
-# CONFIG_ARCH_MXC is not set
-# CONFIG_ARCH_MXS is not set
-# CONFIG_ARCH_NETX is not set
-# CONFIG_ARCH_H720X is not set
-# CONFIG_ARCH_IOP13XX is not set
-# CONFIG_ARCH_IOP32X is not set
-# CONFIG_ARCH_IOP33X is not set
-# CONFIG_ARCH_IXP23XX is not set
-# CONFIG_ARCH_IXP2000 is not set
-# CONFIG_ARCH_IXP4XX is not set
-# CONFIG_ARCH_DOVE is not set
-# CONFIG_ARCH_KIRKWOOD is not set
-# CONFIG_ARCH_LPC32XX is not set
-# CONFIG_ARCH_MV78XX0 is not set
-# CONFIG_ARCH_ORION5X is not set
-# CONFIG_ARCH_MMP is not set
-# CONFIG_ARCH_KS8695 is not set
-# CONFIG_ARCH_W90X900 is not set
-# CONFIG_ARCH_TEGRA is not set
-# CONFIG_ARCH_PICOXCELL is not set
-# CONFIG_ARCH_PNX4008 is not set
-# CONFIG_ARCH_PXA is not set
-# CONFIG_ARCH_MSM is not set
-# CONFIG_ARCH_SHMOBILE is not set
-# CONFIG_ARCH_RPC is not set
-# CONFIG_ARCH_SA1100 is not set
-# CONFIG_ARCH_S3C2410 is not set
-# CONFIG_ARCH_S3C64XX is not set
-# CONFIG_ARCH_S5P64X0 is not set
-# CONFIG_ARCH_S5PC100 is not set
-# CONFIG_ARCH_S5PV210 is not set
-# CONFIG_ARCH_EXYNOS is not set
-# CONFIG_ARCH_SHARK is not set
-# CONFIG_ARCH_TCC_926 is not set
-# CONFIG_ARCH_U300 is not set
-# CONFIG_ARCH_U8500 is not set
-# CONFIG_ARCH_NOMADIK is not set
-# CONFIG_ARCH_DAVINCI is not set
-CONFIG_ARCH_OMAP=y
-# CONFIG_PLAT_SPEAR is not set
-# CONFIG_ARCH_VT8500 is not set
-# CONFIG_ARCH_ZYNQ is not set
-# CONFIG_GPIO_PCA953X is not set
-# CONFIG_KEYBOARD_GPIO_POLLED is not set
-
-#
-# TI OMAP Common Features
-#
-# CONFIG_ARCH_OMAP1 is not set
-CONFIG_ARCH_OMAP2PLUS=y
-
-#
-# OMAP Feature Selections
-#
-# CONFIG_OMAP_SMARTREFLEX is not set
-# CONFIG_OMAP_RESET_CLOCKS is not set
-CONFIG_OMAP_MUX=y
-CONFIG_OMAP_MUX_DEBUG=y
-CONFIG_OMAP_MUX_WARNINGS=y
-CONFIG_OMAP_MCBSP=y
-CONFIG_OMAP_MBOX_FWK=y
-CONFIG_OMAP_MBOX_KFIFO_SIZE=256
-# CONFIG_OMAP_32K_TIMER is not set
-# CONFIG_OMAP3_L2_AUX_SECURE_SAVE_RESTORE is not set
-CONFIG_OMAP_DM_TIMER=y
-CONFIG_OMAP_PM_NOOP=y
-CONFIG_MACH_OMAP_GENERIC=y
-
-#
-# TI OMAP2/3/4 Specific Features
-#
-CONFIG_ARCH_OMAP2PLUS_TYPICAL=y
-# CONFIG_ARCH_OMAP2 is not set
-CONFIG_ARCH_OMAP3=y
-# CONFIG_ARCH_OMAP4 is not set
-# CONFIG_SOC_OMAP3430 is not set
-CONFIG_SOC_OMAPTI81XX=y
-CONFIG_SOC_OMAPAM33XX=y
-CONFIG_OMAP_PACKAGE_CBB=y
-
-#
-# OMAP Board Type
-#
-CONFIG_MACH_OMAP3_BEAGLE=y
-# CONFIG_MACH_DEVKIT8000 is not set
-# CONFIG_MACH_OMAP_LDP is not set
-# CONFIG_MACH_OMAP3530_LV_SOM is not set
-# CONFIG_MACH_OMAP3_TORPEDO is not set
-# CONFIG_MACH_ENCORE is not set
-# CONFIG_MACH_OVERO is not set
-# CONFIG_MACH_OMAP3EVM is not set
-# CONFIG_MACH_OMAP3517EVM is not set
-# CONFIG_MACH_CRANEBOARD is not set
-# CONFIG_MACH_OMAP3_PANDORA is not set
-# CONFIG_MACH_OMAP3_TOUCHBOOK is not set
-# CONFIG_MACH_OMAP_3430SDP is not set
-# CONFIG_MACH_NOKIA_RM680 is not set
-# CONFIG_MACH_NOKIA_RX51 is not set
-# CONFIG_MACH_OMAP_ZOOM2 is not set
-# CONFIG_MACH_OMAP_ZOOM3 is not set
-# CONFIG_MACH_CM_T35 is not set
-# CONFIG_MACH_CM_T3517 is not set
-# CONFIG_MACH_IGEP0020 is not set
-# CONFIG_MACH_IGEP0030 is not set
-# CONFIG_MACH_SBC3530 is not set
-# CONFIG_MACH_OMAP_3630SDP is not set
-CONFIG_MACH_TI8168EVM=y
-CONFIG_MACH_TI8148EVM=y
-CONFIG_MACH_AM335XEVM=y
-CONFIG_MACH_AM335XIAEVM=y
-# CONFIG_OMAP3_EMU is not set
-# CONFIG_OMAP3_SDRC_AC_TIMING is not set
-CONFIG_OMAP3_EDMA=y
-
-#
-# System MMU
-#
-
-#
-# Processor Type
-#
-CONFIG_CPU_V7=y
-CONFIG_CPU_32v6K=y
-CONFIG_CPU_32v7=y
-CONFIG_CPU_ABRT_EV7=y
-CONFIG_CPU_PABRT_V7=y
-CONFIG_CPU_CACHE_V7=y
-CONFIG_CPU_CACHE_VIPT=y
-CONFIG_CPU_COPY_V6=y
-CONFIG_CPU_TLB_V7=y
-CONFIG_CPU_HAS_ASID=y
-CONFIG_CPU_CP15=y
-CONFIG_CPU_CP15_MMU=y
-
-#
-# Processor Features
-#
-CONFIG_ARM_THUMB=y
-CONFIG_ARM_THUMBEE=y
-# CONFIG_SWP_EMULATE is not set
-# CONFIG_CPU_ICACHE_DISABLE is not set
-# CONFIG_CPU_DCACHE_DISABLE is not set
-# CONFIG_CPU_BPREDICT_DISABLE is not set
-CONFIG_ARM_L1_CACHE_SHIFT_6=y
-CONFIG_ARM_L1_CACHE_SHIFT=6
-CONFIG_ARM_DMA_MEM_BUFFERABLE=y
-CONFIG_MULTI_IRQ_HANDLER=y
-CONFIG_ARM_ERRATA_430973=y
-# CONFIG_ARM_ERRATA_458693 is not set
-# CONFIG_ARM_ERRATA_460075 is not set
-# CONFIG_ARM_ERRATA_720789 is not set
-# CONFIG_ARM_ERRATA_743622 is not set
-# CONFIG_ARM_ERRATA_751472 is not set
-# CONFIG_ARM_ERRATA_754322 is not set
-
-#
-# Bus support
-#
-# CONFIG_PCI_SYSCALL is not set
-# CONFIG_ARCH_SUPPORTS_MSI is not set
-# CONFIG_PCCARD is not set
-
-#
-# Kernel Features
-#
-CONFIG_TICK_ONESHOT=y
-CONFIG_NO_HZ=y
-CONFIG_HIGH_RES_TIMERS=y
-CONFIG_GENERIC_CLOCKEVENTS_BUILD=y
-CONFIG_VMSPLIT_3G=y
-# CONFIG_VMSPLIT_2G is not set
-# CONFIG_VMSPLIT_1G is not set
-CONFIG_PAGE_OFFSET=0xC0000000
-CONFIG_PREEMPT_NONE=y
-# CONFIG_PREEMPT_VOLUNTARY is not set
-# CONFIG_PREEMPT is not set
-CONFIG_HZ=100
-CONFIG_THUMB2_KERNEL=y
-CONFIG_THUMB2_AVOID_R_ARM_THM_JUMP11=y
-CONFIG_ARM_ASM_UNIFIED=y
-CONFIG_AEABI=y
-CONFIG_ARCH_HAS_HOLES_MEMORYMODEL=y
-# CONFIG_ARCH_SPARSEMEM_DEFAULT is not set
-# CONFIG_ARCH_SELECT_MEMORY_MODEL is not set
-CONFIG_HAVE_ARCH_PFN_VALID=y
-# CONFIG_HIGHMEM is not set
-CONFIG_SELECT_MEMORY_MODEL=y
-CONFIG_FLATMEM_MANUAL=y
-CONFIG_FLATMEM=y
-CONFIG_FLAT_NODE_MEM_MAP=y
-CONFIG_HAVE_MEMBLOCK=y
-CONFIG_PAGEFLAGS_EXTENDED=y
-CONFIG_SPLIT_PTLOCK_CPUS=4
-# CONFIG_COMPACTION is not set
-# CONFIG_PHYS_ADDR_T_64BIT is not set
-CONFIG_ZONE_DMA_FLAG=0
-CONFIG_VIRT_TO_BUS=y
-# CONFIG_KSM is not set
-CONFIG_DEFAULT_MMAP_MIN_ADDR=4096
-CONFIG_NEED_PER_CPU_KM=y
-# CONFIG_CLEANCACHE is not set
-CONFIG_FORCE_MAX_ZONEORDER=11
-CONFIG_ALIGNMENT_TRAP=y
-# CONFIG_UACCESS_WITH_MEMCPY is not set
-# CONFIG_SECCOMP is not set
-# CONFIG_CC_STACKPROTECTOR is not set
-# CONFIG_DEPRECATED_PARAM_STRUCT is not set
-
-#
-# Boot options
-#
-CONFIG_USE_OF=y
-CONFIG_ZBOOT_ROM_TEXT=0x0
-CONFIG_ZBOOT_ROM_BSS=0x0
-# CONFIG_ARM_APPENDED_DTB is not set
-CONFIG_CMDLINE=" debug "
-CONFIG_CMDLINE_FROM_BOOTLOADER=y
-# CONFIG_CMDLINE_EXTEND is not set
-# CONFIG_CMDLINE_FORCE is not set
-# CONFIG_XIP_KERNEL is not set
-# CONFIG_KEXEC is not set
-# CONFIG_CRASH_DUMP is not set
-CONFIG_AUTO_ZRELADDR=y
-
-#
-# CPU Power Management
-#
-
-#
-# CPU Frequency scaling
-#
-CONFIG_CPU_FREQ=y
-CONFIG_CPU_FREQ_TABLE=y
-CONFIG_CPU_FREQ_STAT=y
-CONFIG_CPU_FREQ_STAT_DETAILS=y
-CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
-# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
-# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
-CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
-CONFIG_CPU_FREQ_GOV_POWERSAVE=y
-CONFIG_CPU_FREQ_GOV_USERSPACE=y
-CONFIG_CPU_FREQ_GOV_ONDEMAND=y
-CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y
-
-#
-# ARM CPU frequency scaling drivers
-#
-CONFIG_CPU_IDLE=y
-CONFIG_CPU_IDLE_GOV_LADDER=y
-CONFIG_CPU_IDLE_GOV_MENU=y
-
-#
-# Floating point emulation
-#
-
-#
-# At least one emulation must be selected
-#
-CONFIG_VFP=y
-CONFIG_VFPv3=y
-CONFIG_NEON=y
-
-#
-# Userspace binary formats
-#
-CONFIG_BINFMT_ELF=y
-CONFIG_CORE_DUMP_DEFAULT_ELF_HEADERS=y
-CONFIG_HAVE_AOUT=y
-# CONFIG_BINFMT_AOUT is not set
-CONFIG_BINFMT_MISC=y
-
-#
-# Power management options
-#
-CONFIG_SUSPEND=y
-CONFIG_SUSPEND_FREEZER=y
-CONFIG_PM_SLEEP=y
-CONFIG_PM_RUNTIME=y
-CONFIG_PM=y
-CONFIG_PM_DEBUG=y
-# CONFIG_PM_ADVANCED_DEBUG is not set
-# CONFIG_PM_TEST_SUSPEND is not set
-CONFIG_CAN_PM_TRACE=y
-# CONFIG_APM_EMULATION is not set
-CONFIG_ARCH_HAS_OPP=y
-CONFIG_PM_OPP=y
-CONFIG_PM_CLK=y
-CONFIG_CPU_PM=y
-CONFIG_ARCH_SUSPEND_POSSIBLE=y
-CONFIG_ARM_CPU_SUSPEND=y
-CONFIG_NET=y
-
-#
-# Networking options
-#
-CONFIG_PACKET=y
-CONFIG_UNIX=y
-CONFIG_XFRM=y
-CONFIG_XFRM_USER=y
-CONFIG_XFRM_SUB_POLICY=y
-CONFIG_XFRM_MIGRATE=y
-CONFIG_XFRM_STATISTICS=y
-CONFIG_XFRM_IPCOMP=m
-CONFIG_NET_KEY=y
-CONFIG_NET_KEY_MIGRATE=y
-CONFIG_INET=y
-CONFIG_IP_MULTICAST=y
-# CONFIG_IP_ADVANCED_ROUTER is not set
-CONFIG_IP_PNP=y
-CONFIG_IP_PNP_DHCP=y
-CONFIG_IP_PNP_BOOTP=y
-CONFIG_IP_PNP_RARP=y
-CONFIG_NET_IPIP=m
-CONFIG_NET_IPGRE_DEMUX=m
-CONFIG_NET_IPGRE=m
-# CONFIG_NET_IPGRE_BROADCAST is not set
-CONFIG_IP_MROUTE=y
-# CONFIG_IP_PIMSM_V1 is not set
-# CONFIG_IP_PIMSM_V2 is not set
-CONFIG_ARPD=y
-CONFIG_SYN_COOKIES=y
-CONFIG_INET_AH=m
-CONFIG_INET_ESP=m
-CONFIG_INET_IPCOMP=m
-CONFIG_INET_XFRM_TUNNEL=m
-CONFIG_INET_TUNNEL=m
-CONFIG_INET_XFRM_MODE_TRANSPORT=y
-CONFIG_INET_XFRM_MODE_TUNNEL=y
-CONFIG_INET_XFRM_MODE_BEET=y
-CONFIG_INET_LRO=m
-CONFIG_INET_DIAG=y
-CONFIG_INET_TCP_DIAG=y
-CONFIG_TCP_CONG_ADVANCED=y
-CONFIG_TCP_CONG_BIC=m
-CONFIG_TCP_CONG_CUBIC=y
-CONFIG_TCP_CONG_WESTWOOD=m
-CONFIG_TCP_CONG_HTCP=m
-CONFIG_TCP_CONG_HSTCP=m
-CONFIG_TCP_CONG_HYBLA=m
-CONFIG_TCP_CONG_VEGAS=m
-CONFIG_TCP_CONG_SCALABLE=m
-CONFIG_TCP_CONG_LP=m
-CONFIG_TCP_CONG_VENO=m
-CONFIG_TCP_CONG_YEAH=m
-CONFIG_TCP_CONG_ILLINOIS=m
-CONFIG_DEFAULT_CUBIC=y
-# CONFIG_DEFAULT_RENO is not set
-CONFIG_DEFAULT_TCP_CONG="cubic"
-# CONFIG_TCP_MD5SIG is not set
-CONFIG_IPV6=m
-CONFIG_IPV6_PRIVACY=y
-CONFIG_IPV6_ROUTER_PREF=y
-CONFIG_IPV6_ROUTE_INFO=y
-CONFIG_IPV6_OPTIMISTIC_DAD=y
-CONFIG_INET6_AH=m
-CONFIG_INET6_ESP=m
-CONFIG_INET6_IPCOMP=m
-CONFIG_IPV6_MIP6=m
-CONFIG_INET6_XFRM_TUNNEL=m
-CONFIG_INET6_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_TRANSPORT=m
-CONFIG_INET6_XFRM_MODE_TUNNEL=m
-CONFIG_INET6_XFRM_MODE_BEET=m
-CONFIG_INET6_XFRM_MODE_ROUTEOPTIMIZATION=m
-CONFIG_IPV6_SIT=m
-CONFIG_IPV6_SIT_6RD=y
-CONFIG_IPV6_NDISC_NODETYPE=y
-CONFIG_IPV6_TUNNEL=m
-CONFIG_IPV6_MULTIPLE_TABLES=y
-CONFIG_IPV6_SUBTREES=y
-CONFIG_IPV6_MROUTE=y
-CONFIG_IPV6_MROUTE_MULTIPLE_TABLES=y
-CONFIG_IPV6_PIMSM_V2=y
-# CONFIG_NETLABEL is not set
-# CONFIG_NETWORK_SECMARK is not set
-# CONFIG_NETWORK_PHY_TIMESTAMPING is not set
-CONFIG_NETFILTER=y
-# CONFIG_NETFILTER_DEBUG is not set
-CONFIG_NETFILTER_ADVANCED=y
-CONFIG_BRIDGE_NETFILTER=y
-
-#
-# Core Netfilter Configuration
-#
-# CONFIG_NETFILTER_NETLINK_QUEUE is not set
-# CONFIG_NETFILTER_NETLINK_LOG is not set
-# CONFIG_NF_CONNTRACK is not set
-CONFIG_NETFILTER_XTABLES=m
-
-#
-# Xtables combined modules
-#
-# CONFIG_NETFILTER_XT_MARK is not set
-
-#
-# Xtables targets
-#
-CONFIG_NETFILTER_XT_TARGET_AUDIT=m
-# CONFIG_NETFILTER_XT_TARGET_CLASSIFY is not set
-# CONFIG_NETFILTER_XT_TARGET_IDLETIMER is not set
-# CONFIG_NETFILTER_XT_TARGET_LED is not set
-# CONFIG_NETFILTER_XT_TARGET_MARK is not set
-# CONFIG_NETFILTER_XT_TARGET_NFLOG is not set
-# CONFIG_NETFILTER_XT_TARGET_NFQUEUE is not set
-# CONFIG_NETFILTER_XT_TARGET_RATEEST is not set
-# CONFIG_NETFILTER_XT_TARGET_TEE is not set
-# CONFIG_NETFILTER_XT_TARGET_TCPMSS is not set
-
-#
-# Xtables matches
-#
-# CONFIG_NETFILTER_XT_MATCH_ADDRTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
-# CONFIG_NETFILTER_XT_MATCH_CPU is not set
-# CONFIG_NETFILTER_XT_MATCH_DCCP is not set
-# CONFIG_NETFILTER_XT_MATCH_DEVGROUP is not set
-# CONFIG_NETFILTER_XT_MATCH_DSCP is not set
-# CONFIG_NETFILTER_XT_MATCH_ESP is not set
-# CONFIG_NETFILTER_XT_MATCH_HASHLIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_HL is not set
-# CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
-# CONFIG_NETFILTER_XT_MATCH_LENGTH is not set
-# CONFIG_NETFILTER_XT_MATCH_LIMIT is not set
-# CONFIG_NETFILTER_XT_MATCH_MAC is not set
-# CONFIG_NETFILTER_XT_MATCH_MARK is not set
-# CONFIG_NETFILTER_XT_MATCH_MULTIPORT is not set
-# CONFIG_NETFILTER_XT_MATCH_OWNER is not set
-# CONFIG_NETFILTER_XT_MATCH_POLICY is not set
-# CONFIG_NETFILTER_XT_MATCH_PHYSDEV is not set
-# CONFIG_NETFILTER_XT_MATCH_PKTTYPE is not set
-# CONFIG_NETFILTER_XT_MATCH_QUOTA is not set
-# CONFIG_NETFILTER_XT_MATCH_RATEEST is not set
-# CONFIG_NETFILTER_XT_MATCH_REALM is not set
-# CONFIG_NETFILTER_XT_MATCH_RECENT is not set
-# CONFIG_NETFILTER_XT_MATCH_SCTP is not set
-# CONFIG_NETFILTER_XT_MATCH_STATISTIC is not set
-# CONFIG_NETFILTER_XT_MATCH_STRING is not set
-# CONFIG_NETFILTER_XT_MATCH_TCPMSS is not set
-# CONFIG_NETFILTER_XT_MATCH_TIME is not set
-# CONFIG_NETFILTER_XT_MATCH_U32 is not set
-# CONFIG_IP_VS is not set
-
-#
-# IP: Netfilter Configuration
-#
-# CONFIG_NF_DEFRAG_IPV4 is not set
-# CONFIG_IP_NF_QUEUE is not set
-CONFIG_IP_NF_IPTABLES=m
-# CONFIG_IP_NF_MATCH_AH is not set
-# CONFIG_IP_NF_MATCH_ECN is not set
-# CONFIG_IP_NF_MATCH_TTL is not set
-# CONFIG_IP_NF_FILTER is not set
-# CONFIG_IP_NF_TARGET_LOG is not set
-# CONFIG_IP_NF_TARGET_ULOG is not set
-# CONFIG_IP_NF_MANGLE is not set
-# CONFIG_IP_NF_RAW is not set
-# CONFIG_IP_NF_SECURITY is not set
-CONFIG_IP_NF_ARPTABLES=m
-# CONFIG_IP_NF_ARPFILTER is not set
-# CONFIG_IP_NF_ARP_MANGLE is not set
-
-#
-# IPv6: Netfilter Configuration
-#
-# CONFIG_NF_DEFRAG_IPV6 is not set
-# CONFIG_IP6_NF_QUEUE is not set
-# CONFIG_IP6_NF_IPTABLES is not set
-# CONFIG_BRIDGE_NF_EBTABLES is not set
-# CONFIG_IP_DCCP is not set
-# CONFIG_IP_SCTP is not set
-# CONFIG_RDS is not set
-# CONFIG_TIPC is not set
-# CONFIG_ATM is not set
-# CONFIG_L2TP is not set
-CONFIG_STP=m
-CONFIG_GARP=m
-CONFIG_BRIDGE=m
-CONFIG_BRIDGE_IGMP_SNOOPING=y
-# CONFIG_NET_DSA is not set
-CONFIG_VLAN_8021Q=m
-CONFIG_VLAN_8021Q_GVRP=y
-# CONFIG_DECNET is not set
-CONFIG_LLC=m
-# CONFIG_LLC2 is not set
-# CONFIG_IPX is not set
-# CONFIG_ATALK is not set
-# CONFIG_X25 is not set
-# CONFIG_LAPB is not set
-# CONFIG_ECONET is not set
-# CONFIG_WAN_ROUTER is not set
-# CONFIG_PHONET is not set
-# CONFIG_IEEE802154 is not set
-CONFIG_NET_SCHED=y
-
-#
-# Queueing/Scheduling
-#
-CONFIG_NET_SCH_CBQ=m
-CONFIG_NET_SCH_HTB=m
-CONFIG_NET_SCH_HFSC=m
-CONFIG_NET_SCH_PRIO=m
-CONFIG_NET_SCH_MULTIQ=m
-CONFIG_NET_SCH_RED=m
-# CONFIG_NET_SCH_SFB is not set
-# CONFIG_NET_SCH_SFQ is not set
-# CONFIG_NET_SCH_TEQL is not set
-# CONFIG_NET_SCH_TBF is not set
-# CONFIG_NET_SCH_GRED is not set
-# CONFIG_NET_SCH_DSMARK is not set
-# CONFIG_NET_SCH_NETEM is not set
-# CONFIG_NET_SCH_DRR is not set
-# CONFIG_NET_SCH_MQPRIO is not set
-# CONFIG_NET_SCH_CHOKE is not set
-# CONFIG_NET_SCH_QFQ is not set
-
-#
-# Classification
-#
-# CONFIG_NET_CLS_BASIC is not set
-# CONFIG_NET_CLS_TCINDEX is not set
-# CONFIG_NET_CLS_ROUTE4 is not set
-# CONFIG_NET_CLS_FW is not set
-# CONFIG_NET_CLS_U32 is not set
-# CONFIG_NET_CLS_RSVP is not set
-# CONFIG_NET_CLS_RSVP6 is not set
-# CONFIG_NET_CLS_FLOW is not set
-# CONFIG_NET_CLS_CGROUP is not set
-# CONFIG_NET_EMATCH is not set
-# CONFIG_NET_CLS_ACT is not set
-CONFIG_NET_SCH_FIFO=y
-# CONFIG_DCB is not set
-CONFIG_DNS_RESOLVER=y
-# CONFIG_BATMAN_ADV is not set
-
-#
-# Network testing
-#
-# CONFIG_NET_PKTGEN is not set
-# CONFIG_NET_DROP_MONITOR is not set
-# CONFIG_HAMRADIO is not set
-CONFIG_CAN=y
-CONFIG_CAN_RAW=y
-CONFIG_CAN_BCM=m
-CONFIG_CAN_GW=m
-
-#
-# CAN Device Drivers
-#
-CONFIG_CAN_VCAN=m
-CONFIG_CAN_SLCAN=m
-CONFIG_CAN_DEV=y
-CONFIG_CAN_CALC_BITTIMING=y
-CONFIG_CAN_TI_HECC=m
-CONFIG_CAN_MCP251X=y
-# CONFIG_CAN_SJA1000 is not set
-# CONFIG_CAN_C_CAN is not set
-CONFIG_CAN_D_CAN=y
-CONFIG_CAN_D_CAN_PLATFORM=y
-
-#
-# CAN USB interfaces
-#
-CONFIG_CAN_EMS_USB=m
-CONFIG_CAN_ESD_USB2=m
-# CONFIG_CAN_SOFTING is not set
-CONFIG_CAN_DEBUG_DEVICES=y
-CONFIG_IRDA=m
-
-#
-# IrDA protocols
-#
-CONFIG_IRLAN=m
-CONFIG_IRNET=m
-CONFIG_IRCOMM=m
-# CONFIG_IRDA_ULTRA is not set
-
-#
-# IrDA options
-#
-# CONFIG_IRDA_CACHE_LAST_LSAP is not set
-# CONFIG_IRDA_FAST_RR is not set
-# CONFIG_IRDA_DEBUG is not set
-
-#
-# Infrared-port device drivers
-#
-
-#
-# SIR device drivers
-#
-CONFIG_IRTTY_SIR=m
-
-#
-# Dongle support
-#
-# CONFIG_DONGLE is not set
-CONFIG_KINGSUN_DONGLE=m
-CONFIG_KSDAZZLE_DONGLE=m
-CONFIG_KS959_DONGLE=m
-
-#
-# FIR device drivers
-#
-CONFIG_USB_IRDA=m
-CONFIG_SIGMATEL_FIR=m
-CONFIG_MCS_FIR=m
-CONFIG_BT=m
-CONFIG_BT_L2CAP=y
-CONFIG_BT_SCO=y
-CONFIG_BT_RFCOMM=m
-CONFIG_BT_RFCOMM_TTY=y
-CONFIG_BT_BNEP=m
-CONFIG_BT_BNEP_MC_FILTER=y
-CONFIG_BT_BNEP_PROTO_FILTER=y
-CONFIG_BT_HIDP=m
-
-#
-# Bluetooth device drivers
-#
-CONFIG_BT_HCIBTUSB=m
-CONFIG_BT_HCIBTSDIO=m
-CONFIG_BT_HCIUART=m
-CONFIG_BT_HCIUART_H4=y
-CONFIG_BT_HCIUART_BCSP=y
-CONFIG_BT_HCIUART_ATH3K=y
-CONFIG_BT_HCIUART_LL=y
-CONFIG_BT_HCIBCM203X=m
-CONFIG_BT_HCIBPA10X=m
-CONFIG_BT_HCIBFUSB=m
-# CONFIG_BT_HCIVHCI is not set
-# CONFIG_BT_MRVL is not set
-# CONFIG_BT_ATH3K is not set
-# CONFIG_AF_RXRPC is not set
-CONFIG_FIB_RULES=y
-CONFIG_WIRELESS=y
-CONFIG_WIRELESS_EXT=y
-CONFIG_WEXT_CORE=y
-CONFIG_WEXT_PROC=y
-CONFIG_WEXT_SPY=y
-CONFIG_WEXT_PRIV=y
-CONFIG_CFG80211=m
-# CONFIG_NL80211_TESTMODE is not set
-# CONFIG_CFG80211_DEVELOPER_WARNINGS is not set
-# CONFIG_CFG80211_REG_DEBUG is not set
-CONFIG_CFG80211_DEFAULT_PS=y
-# CONFIG_CFG80211_DEBUGFS is not set
-# CONFIG_CFG80211_INTERNAL_REGDB is not set
-CONFIG_CFG80211_WEXT=y
-CONFIG_WIRELESS_EXT_SYSFS=y
-CONFIG_LIB80211=m
-CONFIG_LIB80211_CRYPT_WEP=m
-CONFIG_LIB80211_CRYPT_CCMP=m
-CONFIG_LIB80211_CRYPT_TKIP=m
-# CONFIG_LIB80211_DEBUG is not set
-CONFIG_MAC80211=m
-CONFIG_MAC80211_HAS_RC=y
-CONFIG_MAC80211_RC_PID=y
-CONFIG_MAC80211_RC_MINSTREL=y
-CONFIG_MAC80211_RC_MINSTREL_HT=y
-CONFIG_MAC80211_RC_DEFAULT_PID=y
-# CONFIG_MAC80211_RC_DEFAULT_MINSTREL is not set
-CONFIG_MAC80211_RC_DEFAULT="pid"
-# CONFIG_MAC80211_MESH is not set
-CONFIG_MAC80211_LEDS=y
-# CONFIG_MAC80211_DEBUGFS is not set
-# CONFIG_MAC80211_DEBUG_MENU is not set
-CONFIG_WIMAX=m
-CONFIG_WIMAX_DEBUG_LEVEL=8
-CONFIG_RFKILL=m
-CONFIG_RFKILL_LEDS=y
-CONFIG_RFKILL_INPUT=y
-CONFIG_RFKILL_REGULATOR=m
-CONFIG_RFKILL_GPIO=m
-# CONFIG_NET_9P is not set
-# CONFIG_CAIF is not set
-CONFIG_CEPH_LIB=m
-# CONFIG_CEPH_LIB_PRETTYDEBUG is not set
-CONFIG_CEPH_LIB_USE_DNS_RESOLVER=y
-CONFIG_NFC=m
-CONFIG_NFC_NCI=m
-
-#
-# Near Field Communication (NFC) devices
-#
-CONFIG_PN544_NFC=m
-CONFIG_NFC_PN533=m
-
-#
-# Device Drivers
-#
-
-#
-# Generic Driver Options
-#
-CONFIG_UEVENT_HELPER_PATH=""
-CONFIG_DEVTMPFS=y
-CONFIG_DEVTMPFS_MOUNT=y
-CONFIG_STANDALONE=y
-CONFIG_PREVENT_FIRMWARE_BUILD=y
-CONFIG_FW_LOADER=y
-CONFIG_FIRMWARE_IN_KERNEL=y
-CONFIG_EXTRA_FIRMWARE="am335x-pm-firmware.bin"
-CONFIG_EXTRA_FIRMWARE_DIR="firmware"
-# CONFIG_DEBUG_DRIVER is not set
-# CONFIG_DEBUG_DEVRES is not set
-# CONFIG_SYS_HYPERVISOR is not set
-CONFIG_REGMAP=y
-CONFIG_REGMAP_I2C=y
-CONFIG_REGMAP_SPI=y
-
-#
-# CBUS support
-#
-# CONFIG_CBUS is not set
-CONFIG_CONNECTOR=y
-CONFIG_PROC_EVENTS=y
-# CONFIG_MTD is not set
-CONFIG_DTC=y
-CONFIG_OF=y
-
-#
-# Device Tree and Open Firmware support
-#
-CONFIG_PROC_DEVICETREE=y
-CONFIG_OF_FLATTREE=y
-CONFIG_OF_EARLY_FLATTREE=y
-CONFIG_OF_ADDRESS=y
-CONFIG_OF_IRQ=y
-CONFIG_OF_DEVICE=y
-CONFIG_OF_GPIO=y
-CONFIG_OF_I2C=y
-CONFIG_OF_NET=y
-CONFIG_OF_SPI=y
-CONFIG_OF_MDIO=y
-CONFIG_PARPORT=m
-# CONFIG_PARPORT_PC is not set
-# CONFIG_PARPORT_GSC is not set
-# CONFIG_PARPORT_AX88796 is not set
-CONFIG_PARPORT_1284=y
-CONFIG_BLK_DEV=y
-# CONFIG_BLK_DEV_COW_COMMON is not set
-CONFIG_BLK_DEV_LOOP=y
-CONFIG_BLK_DEV_LOOP_MIN_COUNT=8
-CONFIG_BLK_DEV_CRYPTOLOOP=m
-# CONFIG_BLK_DEV_DRBD is not set
-CONFIG_BLK_DEV_NBD=m
-# CONFIG_BLK_DEV_UB is not set
-CONFIG_BLK_DEV_RAM=y
-CONFIG_BLK_DEV_RAM_COUNT=2
-CONFIG_BLK_DEV_RAM_SIZE=65536
-# CONFIG_BLK_DEV_XIP is not set
-CONFIG_CDROM_PKTCDVD=m
-CONFIG_CDROM_PKTCDVD_BUFFERS=8
-CONFIG_CDROM_PKTCDVD_WCACHE=y
-CONFIG_ATA_OVER_ETH=m
-# CONFIG_MG_DISK is not set
-# CONFIG_VIRTIO_BLK is not set
-# CONFIG_BLK_DEV_RBD is not set
-# CONFIG_SENSORS_LIS3LV02D is not set
-CONFIG_MISC_DEVICES=y
-# CONFIG_AD525X_DPOT is not set
-# CONFIG_ATMEL_PWM is not set
-# CONFIG_ICS932S401 is not set
-# CONFIG_ENCLOSURE_SERVICES is not set
-# CONFIG_APDS9802ALS is not set
-# CONFIG_ISL29003 is not set
-# CONFIG_ISL29020 is not set
-CONFIG_SENSORS_TSL2550=m
-# CONFIG_SENSORS_BH1780 is not set
-# CONFIG_SENSORS_BH1770 is not set
-# CONFIG_SENSORS_APDS990X is not set
-# CONFIG_HMC6352 is not set
-# CONFIG_DS1682 is not set
-# CONFIG_TI_DAC7512 is not set
-CONFIG_BMP085=m
-# CONFIG_USB_SWITCH_FSA9480 is not set
-# CONFIG_C2PORT is not set
-
-#
-# EEPROM support
-#
-CONFIG_EEPROM_AT24=y
-# CONFIG_EEPROM_AT25 is not set
-# CONFIG_EEPROM_LEGACY is not set
-# CONFIG_EEPROM_MAX6875 is not set
-CONFIG_EEPROM_93CX6=m
-# CONFIG_EEPROM_93XX46 is not set
-CONFIG_IWMC3200TOP=m
-# CONFIG_IWMC3200TOP_DEBUG is not set
-# CONFIG_IWMC3200TOP_DEBUGFS is not set
-
-#
-# Texas Instruments shared transport line discipline
-#
-# CONFIG_TI_ST is not set
-# CONFIG_SENSORS_LIS3_SPI is not set
-# CONFIG_SENSORS_LIS3_I2C is not set
-
-#
-# Altera FPGA firmware download module
-#
-# CONFIG_ALTERA_STAPL is not set
-
-#
-# SCSI device support
-#
-CONFIG_SCSI_MOD=y
-# CONFIG_RAID_ATTRS is not set
-CONFIG_SCSI=y
-CONFIG_SCSI_DMA=y
-# CONFIG_SCSI_TGT is not set
-# CONFIG_SCSI_NETLINK is not set
-CONFIG_SCSI_PROC_FS=y
-
-#
-# SCSI support type (disk, tape, CD-ROM)
-#
-CONFIG_BLK_DEV_SD=y
-# CONFIG_CHR_DEV_ST is not set
-# CONFIG_CHR_DEV_OSST is not set
-CONFIG_BLK_DEV_SR=y
-CONFIG_BLK_DEV_SR_VENDOR=y
-CONFIG_CHR_DEV_SG=y
-CONFIG_CHR_DEV_SCH=y
-CONFIG_SCSI_MULTI_LUN=y
-# CONFIG_SCSI_CONSTANTS is not set
-# CONFIG_SCSI_LOGGING is not set
-CONFIG_SCSI_SCAN_ASYNC=y
-CONFIG_SCSI_WAIT_SCAN=m
-
-#
-# SCSI Transports
-#
-# CONFIG_SCSI_SPI_ATTRS is not set
-# CONFIG_SCSI_FC_ATTRS is not set
-# CONFIG_SCSI_ISCSI_ATTRS is not set
-# CONFIG_SCSI_SAS_ATTRS is not set
-# CONFIG_SCSI_SAS_LIBSAS is not set
-# CONFIG_SCSI_SRP_ATTRS is not set
-CONFIG_SCSI_LOWLEVEL=y
-# CONFIG_ISCSI_TCP is not set
-# CONFIG_ISCSI_BOOT_SYSFS is not set
-# CONFIG_LIBFC is not set
-# CONFIG_LIBFCOE is not set
-# CONFIG_SCSI_DEBUG is not set
-# CONFIG_SCSI_DH is not set
-# CONFIG_SCSI_OSD_INITIATOR is not set
-# CONFIG_ATA is not set
-CONFIG_MD=y
-CONFIG_BLK_DEV_MD=m
-CONFIG_MD_LINEAR=m
-CONFIG_MD_RAID0=m
-CONFIG_MD_RAID1=m
-CONFIG_MD_RAID10=m
-CONFIG_MD_RAID456=m
-CONFIG_MD_MULTIPATH=m
-CONFIG_MD_FAULTY=m
-CONFIG_BLK_DEV_DM=m
-# CONFIG_DM_DEBUG is not set
-CONFIG_DM_CRYPT=m
-CONFIG_DM_SNAPSHOT=m
-# CONFIG_DM_THIN_PROVISIONING is not set
-CONFIG_DM_MIRROR=m
-CONFIG_DM_RAID=m
-CONFIG_DM_LOG_USERSPACE=m
-CONFIG_DM_ZERO=m
-CONFIG_DM_MULTIPATH=m
-CONFIG_DM_MULTIPATH_QL=m
-CONFIG_DM_MULTIPATH_ST=m
-# CONFIG_DM_DELAY is not set
-CONFIG_DM_UEVENT=y
-CONFIG_DM_FLAKEY=m
-# CONFIG_TARGET_CORE is not set
-CONFIG_NETDEVICES=y
-CONFIG_NET_CORE=y
-CONFIG_BONDING=m
-CONFIG_DUMMY=m
-CONFIG_EQUALIZER=m
-CONFIG_MII=y
-CONFIG_MACVLAN=m
-CONFIG_MACVTAP=m
-CONFIG_NETCONSOLE=m
-CONFIG_NETPOLL=y
-# CONFIG_NETPOLL_TRAP is not set
-CONFIG_NET_POLL_CONTROLLER=y
-CONFIG_TUN=m
-# CONFIG_VETH is not set
-# CONFIG_VIRTIO_NET is not set
-
-#
-# CAIF transport drivers
-#
-CONFIG_ETHERNET=y
-CONFIG_NET_VENDOR_BROADCOM=y
-# CONFIG_B44 is not set
-CONFIG_NET_VENDOR_CHELSIO=y
-# CONFIG_DM9000 is not set
-# CONFIG_DNET is not set
-CONFIG_NET_VENDOR_DLINK=y
-# CONFIG_DE600 is not set
-# CONFIG_DE620 is not set
-# CONFIG_NET_VENDOR_FARADAY is not set
-# CONFIG_NET_VENDOR_INTEL is not set
-# CONFIG_NET_VENDOR_MARVELL is not set
-# CONFIG_NET_VENDOR_MICREL is not set
-# CONFIG_NET_VENDOR_MICROCHIP is not set
-CONFIG_NET_VENDOR_NATSEMI=y
-CONFIG_NET_VENDOR_8390=y
-# CONFIG_AX88796 is not set
-# CONFIG_ETHOC is not set
-# CONFIG_NET_VENDOR_SEEQ is not set
-CONFIG_NET_VENDOR_SMSC=y
-CONFIG_SMC91X=y
-# CONFIG_SMC911X is not set
-CONFIG_SMSC911X=y
-# CONFIG_SMSC911X_ARCH_HOOKS is not set
-# CONFIG_NET_VENDOR_STMICRO is not set
-CONFIG_NET_VENDOR_TI=y
-# CONFIG_TI_DAVINCI_EMAC is not set
-CONFIG_TI_DAVINCI_MDIO=y
-CONFIG_TI_DAVINCI_CPDMA=y
-CONFIG_TI_CPSW=y
-# CONFIG_TLK110_WORKAROUND is not set
-CONFIG_PHYLIB=y
-
-#
-# MII PHY device drivers
-#
-# CONFIG_MARVELL_PHY is not set
-# CONFIG_DAVICOM_PHY is not set
-# CONFIG_QSEMI_PHY is not set
-# CONFIG_LXT_PHY is not set
-# CONFIG_CICADA_PHY is not set
-# CONFIG_VITESSE_PHY is not set
-CONFIG_SMSC_PHY=y
-# CONFIG_BROADCOM_PHY is not set
-# CONFIG_ICPLUS_PHY is not set
-# CONFIG_REALTEK_PHY is not set
-# CONFIG_NATIONAL_PHY is not set
-# CONFIG_STE10XP is not set
-# CONFIG_LSI_ET1011C_PHY is not set
-# CONFIG_MICREL_PHY is not set
-# CONFIG_FIXED_PHY is not set
-# CONFIG_MDIO_BITBANG is not set
-# CONFIG_PLIP is not set
-CONFIG_PPP=m
-CONFIG_PPP_BSDCOMP=m
-CONFIG_PPP_DEFLATE=m
-CONFIG_PPP_FILTER=y
-CONFIG_PPP_MPPE=m
-CONFIG_PPP_MULTILINK=y
-CONFIG_PPPOE=m
-CONFIG_PPTP=m
-CONFIG_PPP_ASYNC=m
-CONFIG_PPP_SYNC_TTY=m
-CONFIG_SLIP=m
-CONFIG_SLHC=m
-# CONFIG_SLIP_COMPRESSED is not set
-CONFIG_SLIP_SMART=y
-# CONFIG_SLIP_MODE_SLIP6 is not set
-
-#
-# USB Network Adapters
-#
-CONFIG_USB_CATC=m
-CONFIG_USB_KAWETH=m
-CONFIG_USB_PEGASUS=m
-CONFIG_USB_RTL8150=m
-CONFIG_USB_USBNET=m
-CONFIG_USB_NET_AX8817X=m
-CONFIG_USB_NET_CDCETHER=m
-# CONFIG_USB_NET_CDC_EEM is not set
-CONFIG_USB_NET_CDC_NCM=m
-CONFIG_USB_NET_DM9601=m
-CONFIG_USB_NET_SMSC75XX=m
-CONFIG_USB_NET_SMSC95XX=m
-CONFIG_USB_NET_GL620A=m
-CONFIG_USB_NET_NET1080=m
-CONFIG_USB_NET_PLUSB=m
-CONFIG_USB_NET_MCS7830=m
-CONFIG_USB_NET_RNDIS_HOST=m
-CONFIG_USB_NET_CDC_SUBSET=m
-CONFIG_USB_ALI_M5632=y
-CONFIG_USB_AN2720=y
-CONFIG_USB_BELKIN=y
-CONFIG_USB_ARMLINUX=y
-CONFIG_USB_EPSON2888=y
-CONFIG_USB_KC2190=y
-CONFIG_USB_NET_ZAURUS=m
-CONFIG_USB_NET_CX82310_ETH=m
-CONFIG_USB_NET_KALMIA=m
-CONFIG_USB_HSO=m
-CONFIG_USB_NET_INT51X1=m
-CONFIG_USB_IPHETH=m
-CONFIG_USB_SIERRA_NET=m
-CONFIG_USB_VL600=m
-CONFIG_WLAN=y
-# CONFIG_LIBERTAS_THINFIRM is not set
-CONFIG_AT76C50X_USB=m
-CONFIG_USB_ZD1201=m
-CONFIG_USB_NET_RNDIS_WLAN=m
-CONFIG_RTL8187=m
-CONFIG_RTL8187_LEDS=y
-# CONFIG_MAC80211_HWSIM is not set
-CONFIG_ATH_COMMON=m
-# CONFIG_ATH_DEBUG is not set
-# CONFIG_ATH9K is not set
-# CONFIG_ATH9K_HTC is not set
-CONFIG_CARL9170=m
-CONFIG_CARL9170_LEDS=y
-CONFIG_CARL9170_WPC=y
-# CONFIG_CARL9170_HWRNG is not set
-CONFIG_ATH6KL=m
-# CONFIG_ATH6KL_DEBUG is not set
-CONFIG_B43=m
-CONFIG_B43_SSB=y
-# CONFIG_B43_SDIO is not set
-CONFIG_B43_PIO=y
-CONFIG_B43_PHY_N=y
-CONFIG_B43_PHY_LP=y
-CONFIG_B43_PHY_HT=y
-CONFIG_B43_LEDS=y
-CONFIG_B43_HWRNG=y
-# CONFIG_B43_DEBUG is not set
-# CONFIG_B43LEGACY is not set
-CONFIG_BRCMUTIL=m
-CONFIG_BRCMFMAC=m
-# CONFIG_BRCMDBG is not set
-CONFIG_HOSTAP=m
-CONFIG_HOSTAP_FIRMWARE=y
-# CONFIG_HOSTAP_FIRMWARE_NVRAM is not set
-# CONFIG_IWM is not set
-CONFIG_LIBERTAS=m
-CONFIG_LIBERTAS_USB=m
-CONFIG_LIBERTAS_SDIO=m
-# CONFIG_LIBERTAS_SPI is not set
-CONFIG_LIBERTAS_DEBUG=y
-# CONFIG_LIBERTAS_MESH is not set
-CONFIG_P54_COMMON=m
-CONFIG_P54_USB=m
-CONFIG_P54_SPI=m
-CONFIG_P54_SPI_DEFAULT_EEPROM=y
-CONFIG_P54_LEDS=y
-CONFIG_RT2X00=m
-CONFIG_RT2500USB=m
-CONFIG_RT73USB=m
-CONFIG_RT2800USB=m
-CONFIG_RT2800USB_RT33XX=y
-CONFIG_RT2800USB_RT35XX=y
-CONFIG_RT2800USB_RT53XX=y
-CONFIG_RT2800USB_UNKNOWN=y
-CONFIG_RT2800_LIB=m
-CONFIG_RT2X00_LIB_USB=m
-CONFIG_RT2X00_LIB=m
-CONFIG_RT2X00_LIB_FIRMWARE=y
-CONFIG_RT2X00_LIB_CRYPTO=y
-CONFIG_RT2X00_LIB_LEDS=y
-# CONFIG_RT2X00_DEBUG is not set
-CONFIG_RTL8192CU=m
-CONFIG_RTLWIFI=m
-CONFIG_RTL8192C_COMMON=m
-# CONFIG_WL1251 is not set
-CONFIG_WL12XX_MENU=m
-CONFIG_WL12XX=m
-CONFIG_WL12XX_SPI=m
-CONFIG_WL12XX_SDIO=m
-# CONFIG_WL12XX_SDIO_TEST is not set
-CONFIG_WL12XX_PLATFORM_DATA=y
-CONFIG_ZD1211RW=m
-# CONFIG_ZD1211RW_DEBUG is not set
-# CONFIG_MWIFIEX is not set
-
-#
-# WiMAX Wireless Broadband devices
-#
-CONFIG_WIMAX_I2400M=m
-CONFIG_WIMAX_I2400M_USB=m
-CONFIG_WIMAX_I2400M_SDIO=m
-CONFIG_WIMAX_IWMC3200_SDIO=y
-CONFIG_WIMAX_I2400M_DEBUG_LEVEL=8
-# CONFIG_WAN is not set
-# CONFIG_ISDN is not set
-# CONFIG_PHONE is not set
-
-#
-# Input device support
-#
-CONFIG_INPUT=y
-CONFIG_INPUT_FF_MEMLESS=m
-CONFIG_INPUT_POLLDEV=m
-# CONFIG_INPUT_SPARSEKMAP is not set
-
-#
-# Userland interfaces
-#
-CONFIG_INPUT_MOUSEDEV=y
-CONFIG_INPUT_MOUSEDEV_PSAUX=y
-CONFIG_INPUT_MOUSEDEV_SCREEN_X=1024
-CONFIG_INPUT_MOUSEDEV_SCREEN_Y=768
-CONFIG_INPUT_JOYDEV=m
-CONFIG_INPUT_EVDEV=y
-# CONFIG_INPUT_EVBUG is not set
-
-#
-# Input Device Drivers
-#
-CONFIG_INPUT_KEYBOARD=y
-# CONFIG_KEYBOARD_ADP5588 is not set
-# CONFIG_KEYBOARD_ADP5589 is not set
-CONFIG_KEYBOARD_ATKBD=y
-# CONFIG_KEYBOARD_QT1070 is not set
-# CONFIG_KEYBOARD_QT2160 is not set
-# CONFIG_KEYBOARD_LKKBD is not set
-CONFIG_KEYBOARD_GPIO=y
-# CONFIG_KEYBOARD_TCA6416 is not set
-# CONFIG_KEYBOARD_MATRIX is not set
-# CONFIG_KEYBOARD_LM8323 is not set
-# CONFIG_KEYBOARD_MAX7359 is not set
-# CONFIG_KEYBOARD_MCS is not set
-# CONFIG_KEYBOARD_MPR121 is not set
-# CONFIG_KEYBOARD_NEWTON is not set
-# CONFIG_KEYBOARD_OPENCORES is not set
-# CONFIG_KEYBOARD_STOWAWAY is not set
-# CONFIG_KEYBOARD_SUNKBD is not set
-CONFIG_KEYBOARD_TWL4030=y
-# CONFIG_KEYBOARD_XTKBD is not set
-CONFIG_INPUT_MOUSE=y
-CONFIG_MOUSE_PS2=y
-CONFIG_MOUSE_PS2_ALPS=y
-CONFIG_MOUSE_PS2_LOGIPS2PP=y
-CONFIG_MOUSE_PS2_SYNAPTICS=y
-CONFIG_MOUSE_PS2_TRACKPOINT=y
-# CONFIG_MOUSE_PS2_ELANTECH is not set
-# CONFIG_MOUSE_PS2_SENTELIC is not set
-# CONFIG_MOUSE_PS2_TOUCHKIT is not set
-# CONFIG_MOUSE_SERIAL is not set
-# CONFIG_MOUSE_APPLETOUCH is not set
-# CONFIG_MOUSE_BCM5974 is not set
-# CONFIG_MOUSE_VSXXXAA is not set
-# CONFIG_MOUSE_GPIO is not set
-# CONFIG_MOUSE_SYNAPTICS_I2C is not set
-# CONFIG_INPUT_JOYSTICK is not set
-# CONFIG_INPUT_TABLET is not set
-CONFIG_INPUT_TOUCHSCREEN=y
-CONFIG_TOUCHSCREEN_ADS7846=y
-# CONFIG_TOUCHSCREEN_AD7877 is not set
-# CONFIG_TOUCHSCREEN_AD7879 is not set
-# CONFIG_TOUCHSCREEN_ATMEL_MXT is not set
-# CONFIG_TOUCHSCREEN_BU21013 is not set
-# CONFIG_TOUCHSCREEN_CY8CTMG110 is not set
-# CONFIG_TOUCHSCREEN_DYNAPRO is not set
-# CONFIG_TOUCHSCREEN_HAMPSHIRE is not set
-# CONFIG_TOUCHSCREEN_EETI is not set
-# CONFIG_TOUCHSCREEN_FUJITSU is not set
-# CONFIG_TOUCHSCREEN_GUNZE is not set
-# CONFIG_TOUCHSCREEN_ELO is not set
-# CONFIG_TOUCHSCREEN_WACOM_W8001 is not set
-# CONFIG_TOUCHSCREEN_MAX11801 is not set
-# CONFIG_TOUCHSCREEN_MCS5000 is not set
-# CONFIG_TOUCHSCREEN_MTOUCH is not set
-# CONFIG_TOUCHSCREEN_INEXIO is not set
-# CONFIG_TOUCHSCREEN_MK712 is not set
-# CONFIG_TOUCHSCREEN_PENMOUNT is not set
-# CONFIG_TOUCHSCREEN_TOUCHRIGHT is not set
-# CONFIG_TOUCHSCREEN_TOUCHWIN is not set
-CONFIG_TOUCHSCREEN_TI_TSCADC=y
-CONFIG_TOUCHSCREEN_USB_COMPOSITE=m
-CONFIG_TOUCHSCREEN_USB_EGALAX=y
-CONFIG_TOUCHSCREEN_USB_PANJIT=y
-CONFIG_TOUCHSCREEN_USB_3M=y
-CONFIG_TOUCHSCREEN_USB_ITM=y
-CONFIG_TOUCHSCREEN_USB_ETURBO=y
-CONFIG_TOUCHSCREEN_USB_GUNZE=y
-CONFIG_TOUCHSCREEN_USB_DMC_TSC10=y
-CONFIG_TOUCHSCREEN_USB_IRTOUCH=y
-CONFIG_TOUCHSCREEN_USB_IDEALTEK=y
-CONFIG_TOUCHSCREEN_USB_GENERAL_TOUCH=y
-CONFIG_TOUCHSCREEN_USB_GOTOP=y
-CONFIG_TOUCHSCREEN_USB_JASTEC=y
-CONFIG_TOUCHSCREEN_USB_E2I=y
-CONFIG_TOUCHSCREEN_USB_ZYTRONIC=y
-CONFIG_TOUCHSCREEN_USB_ETT_TC45USB=y
-CONFIG_TOUCHSCREEN_USB_NEXIO=y
-# CONFIG_TOUCHSCREEN_TOUCHIT213 is not set
-CONFIG_TOUCHSCREEN_TSC_SERIO=m
-CONFIG_TOUCHSCREEN_TSC2005=m
-CONFIG_TOUCHSCREEN_TSC2007=m
-# CONFIG_TOUCHSCREEN_W90X900 is not set
-# CONFIG_TOUCHSCREEN_ST1232 is not set
-# CONFIG_TOUCHSCREEN_TPS6507X is not set
-CONFIG_INPUT_MISC=y
-CONFIG_INPUT_AD714X=m
-CONFIG_INPUT_AD714X_I2C=m
-CONFIG_INPUT_AD714X_SPI=m
-CONFIG_INPUT_BMA150=m
-CONFIG_INPUT_MMA8450=m
-CONFIG_INPUT_MPU3050=m
-CONFIG_INPUT_ATI_REMOTE2=m
-CONFIG_INPUT_KEYSPAN_REMOTE=m
-CONFIG_INPUT_KXTJ9=m
-# CONFIG_INPUT_KXTJ9_POLLED_MODE is not set
-CONFIG_INPUT_POWERMATE=m
-CONFIG_INPUT_YEALINK=m
-CONFIG_INPUT_CM109=m
-CONFIG_INPUT_TWL4030_PWRBUTTON=y
-CONFIG_INPUT_TWL4030_VIBRA=m
-CONFIG_INPUT_TWL6040_VIBRA=m
-CONFIG_INPUT_UINPUT=m
-CONFIG_INPUT_PCF8574=m
-# CONFIG_INPUT_PWM_BEEPER is not set
-CONFIG_INPUT_GPIO_ROTARY_ENCODER=m
-CONFIG_INPUT_ADXL34X=m
-CONFIG_INPUT_ADXL34X_I2C=m
-CONFIG_INPUT_ADXL34X_SPI=m
-CONFIG_INPUT_CMA3000=m
-CONFIG_INPUT_CMA3000_I2C=m
-
-#
-# Hardware I/O ports
-#
-CONFIG_SERIO=y
-CONFIG_SERIO_SERPORT=y
-# CONFIG_SERIO_PARKBD is not set
-CONFIG_SERIO_LIBPS2=y
-# CONFIG_SERIO_RAW is not set
-# CONFIG_SERIO_ALTERA_PS2 is not set
-# CONFIG_SERIO_PS2MULT is not set
-# CONFIG_GAMEPORT is not set
-
-#
-# Character devices
-#
-CONFIG_VT=y
-CONFIG_CONSOLE_TRANSLATIONS=y
-CONFIG_VT_CONSOLE=y
-CONFIG_VT_CONSOLE_SLEEP=y
-CONFIG_HW_CONSOLE=y
-CONFIG_VT_HW_CONSOLE_BINDING=y
-CONFIG_UNIX98_PTYS=y
-# CONFIG_DEVPTS_MULTIPLE_INSTANCES is not set
-# CONFIG_LEGACY_PTYS is not set
-# CONFIG_SERIAL_NONSTANDARD is not set
-# CONFIG_N_GSM is not set
-# CONFIG_TRACE_SINK is not set
-CONFIG_DEVKMEM=y
-
-#
-# Serial drivers
-#
-CONFIG_SERIAL_8250=y
-CONFIG_SERIAL_8250_CONSOLE=y
-CONFIG_SERIAL_8250_NR_UARTS=32
-CONFIG_SERIAL_8250_RUNTIME_UARTS=4
-CONFIG_SERIAL_8250_EXTENDED=y
-CONFIG_SERIAL_8250_MANY_PORTS=y
-CONFIG_SERIAL_8250_SHARE_IRQ=y
-CONFIG_SERIAL_8250_DETECT_IRQ=y
-CONFIG_SERIAL_8250_RSA=y
-# CONFIG_SERIAL_8250_DW is not set
-
-#
-# Non-8250 serial port support
-#
-# CONFIG_SERIAL_MAX3100 is not set
-# CONFIG_SERIAL_MAX3107 is not set
-CONFIG_SERIAL_CORE=y
-CONFIG_SERIAL_CORE_CONSOLE=y
-# CONFIG_SERIAL_OF_PLATFORM is not set
-CONFIG_SERIAL_OMAP=y
-CONFIG_SERIAL_OMAP_CONSOLE=y
-# CONFIG_SERIAL_TIMBERDALE is not set
-# CONFIG_SERIAL_ALTERA_JTAGUART is not set
-# CONFIG_SERIAL_ALTERA_UART is not set
-# CONFIG_SERIAL_IFX6X60 is not set
-# CONFIG_SERIAL_XILINX_PS_UART is not set
-# CONFIG_TTY_PRINTK is not set
-CONFIG_PRINTER=m
-# CONFIG_LP_CONSOLE is not set
-# CONFIG_PPDEV is not set
-# CONFIG_HVC_DCC is not set
-# CONFIG_VIRTIO_CONSOLE is not set
-# CONFIG_IPMI_HANDLER is not set
-CONFIG_HW_RANDOM=y
-# CONFIG_HW_RANDOM_TIMERIOMEM is not set
-# CONFIG_HW_RANDOM_VIRTIO is not set
-# CONFIG_NVRAM is not set
-# CONFIG_R3964 is not set
-CONFIG_RAW_DRIVER=m
-CONFIG_MAX_RAW_DEVS=256
-# CONFIG_TCG_TPM is not set
-# CONFIG_RAMOOPS is not set
-CONFIG_I2C=y
-CONFIG_I2C_BOARDINFO=y
-CONFIG_I2C_COMPAT=y
-CONFIG_I2C_CHARDEV=y
-# CONFIG_I2C_MUX is not set
-CONFIG_I2C_HELPER_AUTO=y
-CONFIG_I2C_ALGOBIT=m
-
-#
-# I2C Hardware Bus support
-#
-
-#
-# I2C system bus drivers (mostly embedded / system-on-chip)
-#
-# CONFIG_I2C_DESIGNWARE_PLATFORM is not set
-# CONFIG_I2C_GPIO is not set
-# CONFIG_I2C_OCORES is not set
-CONFIG_I2C_OMAP=y
-# CONFIG_I2C_PCA_PLATFORM is not set
-# CONFIG_I2C_PXA_PCI is not set
-# CONFIG_I2C_SIMTEC is not set
-# CONFIG_I2C_XILINX is not set
-
-#
-# External I2C/SMBus adapter drivers
-#
-# CONFIG_I2C_DIOLAN_U2C is not set
-# CONFIG_I2C_PARPORT is not set
-# CONFIG_I2C_PARPORT_LIGHT is not set
-# CONFIG_I2C_TAOS_EVM is not set
-# CONFIG_I2C_TINY_USB is not set
-
-#
-# Other I2C/SMBus bus drivers
-#
-# CONFIG_I2C_STUB is not set
-# CONFIG_I2C_DEBUG_CORE is not set
-# CONFIG_I2C_DEBUG_ALGO is not set
-# CONFIG_I2C_DEBUG_BUS is not set
-CONFIG_SPI=y
-# CONFIG_SPI_DEBUG is not set
-CONFIG_SPI_MASTER=y
-
-#
-# SPI Master Controller Drivers
-#
-# CONFIG_SPI_ALTERA is not set
-CONFIG_SPI_BITBANG=m
-# CONFIG_SPI_BUTTERFLY is not set
-CONFIG_SPI_GPIO=m
-# CONFIG_SPI_LM70_LLP is not set
-# CONFIG_SPI_OC_TINY is not set
-CONFIG_SPI_OMAP24XX=y
-# CONFIG_SPI_PXA2XX_PCI is not set
-# CONFIG_SPI_XILINX is not set
-# CONFIG_SPI_DESIGNWARE is not set
-
-#
-# SPI Protocol Masters
-#
-CONFIG_SPI_SPIDEV=m
-# CONFIG_SPI_TLE62X0 is not set
-
-#
-# PPS support
-#
-# CONFIG_PPS is not set
-
-#
-# PPS generators support
-#
-
-#
-# PTP clock support
-#
-
-#
-# Enable Device Drivers -> PPS to see the PTP clock options.
-#
-CONFIG_ARCH_REQUIRE_GPIOLIB=y
-CONFIG_GPIOLIB=y
-CONFIG_DEBUG_GPIO=y
-CONFIG_GPIO_SYSFS=y
-
-#
-# Memory mapped GPIO drivers:
-#
-# CONFIG_GPIO_GENERIC_PLATFORM is not set
-# CONFIG_GPIO_IT8761E is not set
-
-#
-# I2C GPIO expanders:
-#
-# CONFIG_GPIO_MAX7300 is not set
-# CONFIG_GPIO_MAX732X is not set
-# CONFIG_GPIO_PCF857X is not set
-# CONFIG_GPIO_SX150X is not set
-CONFIG_GPIO_TWL4030=y
-# CONFIG_GPIO_ADP5588 is not set
-
-#
-# PCI GPIO expanders:
-#
-
-#
-# SPI GPIO expanders:
-#
-# CONFIG_GPIO_MAX7301 is not set
-# CONFIG_GPIO_MCP23S08 is not set
-# CONFIG_GPIO_MC33880 is not set
-# CONFIG_GPIO_74X164 is not set
-
-#
-# AC97 GPIO expanders:
-#
-
-#
-# MODULbus GPIO expanders:
-#
-CONFIG_GENERIC_PWM=y
-CONFIG_DAVINCI_EHRPWM=y
-CONFIG_ECAP_PWM=y
-CONFIG_W1=y
-CONFIG_W1_CON=y
-
-#
-# 1-wire Bus Masters
-#
-CONFIG_W1_MASTER_DS2490=m
-CONFIG_W1_MASTER_DS2482=m
-CONFIG_W1_MASTER_DS1WM=m
-CONFIG_W1_MASTER_GPIO=y
-# CONFIG_HDQ_MASTER_OMAP is not set
-
-#
-# 1-wire Slaves
-#
-CONFIG_W1_SLAVE_THERM=y
-CONFIG_W1_SLAVE_SMEM=m
-CONFIG_W1_SLAVE_DS2408=m
-CONFIG_W1_SLAVE_DS2423=m
-CONFIG_W1_SLAVE_DS2431=m
-CONFIG_W1_SLAVE_DS2433=m
-CONFIG_W1_SLAVE_DS2433_CRC=y
-CONFIG_W1_SLAVE_DS2760=m
-CONFIG_W1_SLAVE_DS2780=m
-CONFIG_W1_SLAVE_BQ27000=m
-CONFIG_POWER_SUPPLY=y
-# CONFIG_POWER_SUPPLY_DEBUG is not set
-# CONFIG_PDA_POWER is not set
-CONFIG_TEST_POWER=m
-# CONFIG_BATTERY_DS2760 is not set
-# CONFIG_BATTERY_DS2780 is not set
-# CONFIG_BATTERY_DS2782 is not set
-# CONFIG_BATTERY_BQ20Z75 is not set
-# CONFIG_BATTERY_BQ27x00 is not set
-# CONFIG_BATTERY_MAX17040 is not set
-# CONFIG_BATTERY_MAX17042 is not set
-# CONFIG_CHARGER_ISP1704 is not set
-# CONFIG_CHARGER_MAX8903 is not set
-# CONFIG_CHARGER_TWL4030 is not set
-CONFIG_CHARGER_GPIO=y
-CONFIG_HWMON=y
-CONFIG_HWMON_VID=m
-# CONFIG_HWMON_DEBUG_CHIP is not set
-
-#
-# Native drivers
-#
-CONFIG_SENSORS_AD7314=m
-CONFIG_SENSORS_AD7414=m
-CONFIG_SENSORS_AD7418=m
-CONFIG_SENSORS_ADCXX=m
-CONFIG_SENSORS_ADM1021=m
-CONFIG_SENSORS_ADM1025=m
-CONFIG_SENSORS_ADM1026=m
-CONFIG_SENSORS_ADM1029=m
-CONFIG_SENSORS_ADM1031=m
-CONFIG_SENSORS_ADM9240=m
-CONFIG_SENSORS_ADT7411=m
-CONFIG_SENSORS_ADT7462=m
-CONFIG_SENSORS_ADT7470=m
-CONFIG_SENSORS_ADT7475=m
-CONFIG_SENSORS_ASC7621=m
-CONFIG_SENSORS_ATXP1=m
-CONFIG_SENSORS_DS620=m
-CONFIG_SENSORS_DS1621=m
-CONFIG_SENSORS_F71805F=m
-CONFIG_SENSORS_F71882FG=m
-CONFIG_SENSORS_F75375S=m
-CONFIG_SENSORS_G760A=m
-CONFIG_SENSORS_GL518SM=m
-CONFIG_SENSORS_GL520SM=m
-CONFIG_SENSORS_GPIO_FAN=m
-CONFIG_SENSORS_IT87=m
-CONFIG_SENSORS_JC42=m
-CONFIG_SENSORS_LINEAGE=m
-CONFIG_SENSORS_LM63=m
-CONFIG_SENSORS_LM70=m
-CONFIG_SENSORS_LM73=m
-CONFIG_SENSORS_LM75=m
-CONFIG_SENSORS_LM77=m
-CONFIG_SENSORS_LM78=m
-CONFIG_SENSORS_LM80=m
-CONFIG_SENSORS_LM83=m
-CONFIG_SENSORS_LM85=m
-CONFIG_SENSORS_LM87=m
-CONFIG_SENSORS_LM90=m
-CONFIG_SENSORS_LM92=m
-CONFIG_SENSORS_LM93=m
-CONFIG_SENSORS_LTC4151=m
-CONFIG_SENSORS_LTC4215=m
-CONFIG_SENSORS_LTC4245=m
-CONFIG_SENSORS_LTC4261=m
-CONFIG_SENSORS_LM95241=m
-CONFIG_SENSORS_LM95245=m
-CONFIG_SENSORS_MAX1111=m
-CONFIG_SENSORS_MAX16065=m
-CONFIG_SENSORS_MAX1619=m
-CONFIG_SENSORS_MAX1668=m
-CONFIG_SENSORS_MAX6639=m
-CONFIG_SENSORS_MAX6642=m
-CONFIG_SENSORS_MAX6650=m
-CONFIG_SENSORS_NTC_THERMISTOR=m
-CONFIG_SENSORS_PC87360=m
-CONFIG_SENSORS_PC87427=m
-CONFIG_SENSORS_PCF8591=m
-CONFIG_PMBUS=m
-CONFIG_SENSORS_PMBUS=m
-# CONFIG_SENSORS_ADM1275 is not set
-# CONFIG_SENSORS_LM25066 is not set
-CONFIG_SENSORS_LTC2978=m
-# CONFIG_SENSORS_MAX16064 is not set
-# CONFIG_SENSORS_MAX34440 is not set
-# CONFIG_SENSORS_MAX8688 is not set
-# CONFIG_SENSORS_UCD9000 is not set
-# CONFIG_SENSORS_UCD9200 is not set
-CONFIG_SENSORS_ZL6100=m
-CONFIG_SENSORS_SHT15=m
-CONFIG_SENSORS_SHT21=m
-CONFIG_SENSORS_SMM665=m
-CONFIG_SENSORS_DME1737=m
-CONFIG_SENSORS_EMC1403=m
-CONFIG_SENSORS_EMC2103=m
-CONFIG_SENSORS_EMC6W201=m
-CONFIG_SENSORS_SMSC47M1=m
-CONFIG_SENSORS_SMSC47M192=m
-CONFIG_SENSORS_SMSC47B397=m
-CONFIG_SENSORS_SCH56XX_COMMON=m
-CONFIG_SENSORS_SCH5627=m
-CONFIG_SENSORS_SCH5636=m
-CONFIG_SENSORS_ADS1015=m
-CONFIG_SENSORS_ADS7828=m
-CONFIG_SENSORS_ADS7871=m
-CONFIG_SENSORS_AMC6821=m
-CONFIG_SENSORS_THMC50=m
-CONFIG_SENSORS_TMP102=m
-CONFIG_SENSORS_TMP401=m
-CONFIG_SENSORS_TMP421=m
-CONFIG_SENSORS_VT1211=m
-CONFIG_SENSORS_W83781D=m
-CONFIG_SENSORS_W83791D=m
-CONFIG_SENSORS_W83792D=m
-CONFIG_SENSORS_W83793=m
-CONFIG_SENSORS_W83795=m
-# CONFIG_SENSORS_W83795_FANCTRL is not set
-CONFIG_SENSORS_W83L785TS=m
-CONFIG_SENSORS_W83L786NG=m
-CONFIG_SENSORS_W83627HF=m
-CONFIG_SENSORS_W83627EHF=m
-# CONFIG_THERMAL is not set
-CONFIG_WATCHDOG=y
-CONFIG_WATCHDOG_CORE=y
-CONFIG_WATCHDOG_NOWAYOUT=y
-
-#
-# Watchdog Device Drivers
-#
-# CONFIG_SOFT_WATCHDOG is not set
-# CONFIG_DW_WATCHDOG is not set
-CONFIG_OMAP_WATCHDOG=y
-CONFIG_TWL4030_WATCHDOG=y
-# CONFIG_MAX63XX_WATCHDOG is not set
-
-#
-# USB-based Watchdog Cards
-#
-# CONFIG_USBPCWATCHDOG is not set
-CONFIG_SSB_POSSIBLE=y
-
-#
-# Sonics Silicon Backplane
-#
-CONFIG_SSB=m
-CONFIG_SSB_BLOCKIO=y
-CONFIG_SSB_SDIOHOST_POSSIBLE=y
-# CONFIG_SSB_SDIOHOST is not set
-# CONFIG_SSB_SILENT is not set
-# CONFIG_SSB_DEBUG is not set
-CONFIG_BCMA_POSSIBLE=y
-
-#
-# Broadcom specific AMBA
-#
-# CONFIG_BCMA is not set
-
-#
-# Multifunction device drivers
-#
-CONFIG_MFD_CORE=y
-# CONFIG_MFD_88PM860X is not set
-# CONFIG_MFD_SM501 is not set
-# CONFIG_MFD_ASIC3 is not set
-# CONFIG_HTC_EGPIO is not set
-# CONFIG_HTC_PASIC3 is not set
-# CONFIG_HTC_I2CPLD is not set
-# CONFIG_TPS6105X is not set
-# CONFIG_TPS65010 is not set
-# CONFIG_TPS6507X is not set
-CONFIG_MFD_TPS65217=y
-# CONFIG_MFD_TPS6586X is not set
-# CONFIG_MFD_TPS65910 is not set
-# CONFIG_MFD_TPS65912_I2C is not set
-# CONFIG_MFD_TPS65912_SPI is not set
-CONFIG_TWL4030_CORE=y
-# CONFIG_TWL4030_MADC is not set
-CONFIG_TWL4030_POWER=y
-CONFIG_MFD_TWL4030_AUDIO=y
-# CONFIG_TWL6030_PWM is not set
-CONFIG_TWL6040_CORE=y
-# CONFIG_MFD_STMPE is not set
-# CONFIG_MFD_TC3589X is not set
-# CONFIG_MFD_TMIO is not set
-# CONFIG_MFD_T7L66XB is not set
-# CONFIG_MFD_TC6387XB is not set
-# CONFIG_MFD_TC6393XB is not set
-# CONFIG_PMIC_DA903X is not set
-# CONFIG_PMIC_ADP5520 is not set
-# CONFIG_MFD_MAX8925 is not set
-# CONFIG_MFD_MAX8997 is not set
-# CONFIG_MFD_MAX8998 is not set
-# CONFIG_MFD_WM8400 is not set
-# CONFIG_MFD_WM831X_I2C is not set
-# CONFIG_MFD_WM831X_SPI is not set
-# CONFIG_MFD_WM8350_I2C is not set
-# CONFIG_MFD_WM8994 is not set
-# CONFIG_MFD_PCF50633 is not set
-# CONFIG_MFD_MC13XXX is not set
-# CONFIG_ABX500_CORE is not set
-# CONFIG_EZX_PCAP is not set
-# CONFIG_MFD_WL1273_CORE is not set
-# CONFIG_MFD_AAT2870_CORE is not set
-CONFIG_REGULATOR=y
-# CONFIG_REGULATOR_DEBUG is not set
-CONFIG_REGULATOR_DUMMY=y
-CONFIG_REGULATOR_FIXED_VOLTAGE=y
-# CONFIG_REGULATOR_VIRTUAL_CONSUMER is not set
-# CONFIG_REGULATOR_USERSPACE_CONSUMER is not set
-CONFIG_REGULATOR_GPIO=y
-# CONFIG_REGULATOR_BQ24022 is not set
-# CONFIG_REGULATOR_MAX1586 is not set
-# CONFIG_REGULATOR_MAX8649 is not set
-# CONFIG_REGULATOR_MAX8660 is not set
-# CONFIG_REGULATOR_MAX8952 is not set
-# CONFIG_REGULATOR_TWL4030 is not set
-# CONFIG_REGULATOR_LP3971 is not set
-# CONFIG_REGULATOR_LP3972 is not set
-# CONFIG_REGULATOR_TPS65023 is not set
-# CONFIG_REGULATOR_TPS6507X is not set
-CONFIG_REGULATOR_TPS65217=y
-# CONFIG_REGULATOR_ISL6271A is not set
-# CONFIG_REGULATOR_AD5398 is not set
-# CONFIG_REGULATOR_TPS6524X is not set
-CONFIG_MEDIA_SUPPORT=y
-
-#
-# Multimedia core support
-#
-CONFIG_MEDIA_CONTROLLER=y
-CONFIG_VIDEO_DEV=y
-CONFIG_VIDEO_V4L2_COMMON=y
-# CONFIG_VIDEO_V4L2_SUBDEV_API is not set
-CONFIG_DVB_CORE=m
-CONFIG_DVB_NET=y
-CONFIG_VIDEO_MEDIA=m
-
-#
-# Multimedia drivers
-#
-CONFIG_RC_CORE=m
-CONFIG_LIRC=m
-CONFIG_RC_MAP=m
-CONFIG_IR_NEC_DECODER=m
-CONFIG_IR_RC5_DECODER=m
-CONFIG_IR_RC6_DECODER=m
-CONFIG_IR_JVC_DECODER=m
-CONFIG_IR_SONY_DECODER=m
-CONFIG_IR_RC5_SZ_DECODER=m
-CONFIG_IR_MCE_KBD_DECODER=m
-CONFIG_IR_LIRC_CODEC=m
-CONFIG_RC_ATI_REMOTE=m
-CONFIG_IR_IMON=m
-CONFIG_IR_MCEUSB=m
-CONFIG_IR_REDRAT3=m
-CONFIG_IR_STREAMZAP=m
-CONFIG_RC_LOOPBACK=m
-CONFIG_MEDIA_ATTACH=y
-CONFIG_MEDIA_TUNER=m
-CONFIG_MEDIA_TUNER_CUSTOMISE=y
-
-#
-# Customize TV tuners
-#
-CONFIG_MEDIA_TUNER_SIMPLE=m
-CONFIG_MEDIA_TUNER_TDA8290=m
-CONFIG_MEDIA_TUNER_TDA827X=m
-CONFIG_MEDIA_TUNER_TDA18271=m
-CONFIG_MEDIA_TUNER_TDA9887=m
-CONFIG_MEDIA_TUNER_TEA5761=m
-CONFIG_MEDIA_TUNER_TEA5767=m
-CONFIG_MEDIA_TUNER_MT20XX=m
-CONFIG_MEDIA_TUNER_MT2060=m
-CONFIG_MEDIA_TUNER_MT2266=m
-CONFIG_MEDIA_TUNER_MT2131=m
-CONFIG_MEDIA_TUNER_QT1010=m
-CONFIG_MEDIA_TUNER_XC2028=m
-CONFIG_MEDIA_TUNER_XC5000=m
-CONFIG_MEDIA_TUNER_XC4000=m
-CONFIG_MEDIA_TUNER_MXL5005S=m
-CONFIG_MEDIA_TUNER_MXL5007T=m
-CONFIG_MEDIA_TUNER_MC44S803=m
-CONFIG_MEDIA_TUNER_MAX2165=m
-CONFIG_MEDIA_TUNER_TDA18218=m
-CONFIG_MEDIA_TUNER_TDA18212=m
-CONFIG_VIDEO_V4L2=y
-CONFIG_VIDEOBUF_GEN=y
-CONFIG_VIDEOBUF_VMALLOC=m
-CONFIG_VIDEOBUF_DVB=m
-CONFIG_VIDEO_TVEEPROM=m
-CONFIG_VIDEO_TUNER=m
-CONFIG_VIDEOBUF2_CORE=y
-CONFIG_VIDEOBUF2_MEMOPS=y
-CONFIG_VIDEOBUF2_DMA_CONTIG=y
-CONFIG_VIDEOBUF2_VMALLOC=m
-CONFIG_VIDEO_CAPTURE_DRIVERS=y
-# CONFIG_VIDEO_ADV_DEBUG is not set
-# CONFIG_VIDEO_FIXED_MINOR_RANGES is not set
-# CONFIG_VIDEO_HELPER_CHIPS_AUTO is not set
-CONFIG_VIDEO_IR_I2C=m
-
-#
-# Encoders, decoders, sensors and other helper chips
-#
-
-#
-# Audio decoders, processors and mixers
-#
-# CONFIG_VIDEO_TVAUDIO is not set
-# CONFIG_VIDEO_TDA7432 is not set
-# CONFIG_VIDEO_TDA9840 is not set
-# CONFIG_VIDEO_TEA6415C is not set
-# CONFIG_VIDEO_TEA6420 is not set
-CONFIG_VIDEO_MSP3400=m
-# CONFIG_VIDEO_CS5345 is not set
-CONFIG_VIDEO_CS53L32A=m
-# CONFIG_VIDEO_TLV320AIC23B is not set
-CONFIG_VIDEO_WM8775=m
-# CONFIG_VIDEO_WM8739 is not set
-# CONFIG_VIDEO_VP27SMPX is not set
-
-#
-# RDS decoders
-#
-# CONFIG_VIDEO_SAA6588 is not set
-
-#
-# Video decoders
-#
-# CONFIG_VIDEO_ADV7180 is not set
-# CONFIG_VIDEO_BT819 is not set
-# CONFIG_VIDEO_BT856 is not set
-# CONFIG_VIDEO_BT866 is not set
-# CONFIG_VIDEO_KS0127 is not set
-# CONFIG_VIDEO_SAA7110 is not set
-CONFIG_VIDEO_SAA711X=m
-# CONFIG_VIDEO_SAA7191 is not set
-# CONFIG_VIDEO_TVP514X is not set
-# CONFIG_VIDEO_TVP5150 is not set
-# CONFIG_VIDEO_TVP7002 is not set
-# CONFIG_VIDEO_VPX3220 is not set
-
-#
-# Video and audio decoders
-#
-# CONFIG_VIDEO_SAA717X is not set
-CONFIG_VIDEO_CX25840=m
-
-#
-# MPEG video encoders
-#
-CONFIG_VIDEO_CX2341X=m
-
-#
-# Video encoders
-#
-# CONFIG_VIDEO_SAA7127 is not set
-# CONFIG_VIDEO_SAA7185 is not set
-# CONFIG_VIDEO_ADV7170 is not set
-# CONFIG_VIDEO_ADV7175 is not set
-# CONFIG_VIDEO_ADV7343 is not set
-# CONFIG_VIDEO_AK881X is not set
-
-#
-# Camera sensor devices
-#
-# CONFIG_VIDEO_OV7670 is not set
-# CONFIG_VIDEO_MT9V011 is not set
-# CONFIG_VIDEO_TCM825X is not set
-# CONFIG_VIDEO_SR030PC30 is not set
-
-#
-# Flash devices
-#
-# CONFIG_VIDEO_ADP1653 is not set
-
-#
-# Video improvement chips
-#
-# CONFIG_VIDEO_UPD64031A is not set
-# CONFIG_VIDEO_UPD64083 is not set
-
-#
-# Miscelaneous helper chips
-#
-# CONFIG_VIDEO_THS7303 is not set
-# CONFIG_VIDEO_M52790 is not set
-CONFIG_VIDEO_VIVI=m
-# CONFIG_VIDEO_VPFE_CAPTURE is not set
-# CONFIG_VIDEO_OMAP2_VOUT is not set
-# CONFIG_VIDEO_BWQCAM is not set
-# CONFIG_VIDEO_CQCAM is not set
-# CONFIG_VIDEO_W9966 is not set
-# CONFIG_VIDEO_CPIA2 is not set
-# CONFIG_VIDEO_AU0828 is not set
-CONFIG_SOC_CAMERA=y
-# CONFIG_SOC_CAMERA_IMX074 is not set
-# CONFIG_SOC_CAMERA_MT9M001 is not set
-# CONFIG_SOC_CAMERA_MT9M111 is not set
-# CONFIG_SOC_CAMERA_MT9T031 is not set
-CONFIG_SOC_CAMERA_MT9T112=y
-# CONFIG_SOC_CAMERA_MT9V022 is not set
-# CONFIG_SOC_CAMERA_RJ54N1 is not set
-# CONFIG_SOC_CAMERA_TW9910 is not set
-# CONFIG_SOC_CAMERA_PLATFORM is not set
-# CONFIG_SOC_CAMERA_OV2640 is not set
-# CONFIG_SOC_CAMERA_OV5642 is not set
-# CONFIG_SOC_CAMERA_OV6650 is not set
-# CONFIG_SOC_CAMERA_OV772X is not set
-# CONFIG_SOC_CAMERA_OV9640 is not set
-# CONFIG_SOC_CAMERA_OV9740 is not set
-# CONFIG_VIDEO_SH_MOBILE_CSI2 is not set
-# CONFIG_VIDEO_SH_MOBILE_CEU is not set
-CONFIG_VIDEO_QL_CAMIF=y
-CONFIG_V4L_USB_DRIVERS=y
-CONFIG_USB_VIDEO_CLASS=m
-CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV=y
-CONFIG_USB_GSPCA=m
-CONFIG_USB_M5602=m
-CONFIG_USB_STV06XX=m
-CONFIG_USB_GL860=m
-CONFIG_USB_GSPCA_BENQ=m
-CONFIG_USB_GSPCA_CONEX=m
-CONFIG_USB_GSPCA_CPIA1=m
-CONFIG_USB_GSPCA_ETOMS=m
-CONFIG_USB_GSPCA_FINEPIX=m
-CONFIG_USB_GSPCA_JEILINJ=m
-CONFIG_USB_GSPCA_KINECT=m
-CONFIG_USB_GSPCA_KONICA=m
-CONFIG_USB_GSPCA_MARS=m
-CONFIG_USB_GSPCA_MR97310A=m
-CONFIG_USB_GSPCA_NW80X=m
-CONFIG_USB_GSPCA_OV519=m
-CONFIG_USB_GSPCA_OV534=m
-CONFIG_USB_GSPCA_OV534_9=m
-CONFIG_USB_GSPCA_PAC207=m
-CONFIG_USB_GSPCA_PAC7302=m
-CONFIG_USB_GSPCA_PAC7311=m
-CONFIG_USB_GSPCA_SE401=m
-CONFIG_USB_GSPCA_SN9C2028=m
-CONFIG_USB_GSPCA_SN9C20X=m
-CONFIG_USB_GSPCA_SONIXB=m
-CONFIG_USB_GSPCA_SONIXJ=m
-CONFIG_USB_GSPCA_SPCA500=m
-CONFIG_USB_GSPCA_SPCA501=m
-CONFIG_USB_GSPCA_SPCA505=m
-CONFIG_USB_GSPCA_SPCA506=m
-CONFIG_USB_GSPCA_SPCA508=m
-CONFIG_USB_GSPCA_SPCA561=m
-CONFIG_USB_GSPCA_SPCA1528=m
-CONFIG_USB_GSPCA_SQ905=m
-CONFIG_USB_GSPCA_SQ905C=m
-CONFIG_USB_GSPCA_SQ930X=m
-CONFIG_USB_GSPCA_STK014=m
-CONFIG_USB_GSPCA_STV0680=m
-CONFIG_USB_GSPCA_SUNPLUS=m
-CONFIG_USB_GSPCA_T613=m
-CONFIG_USB_GSPCA_TOPRO=m
-CONFIG_USB_GSPCA_TV8532=m
-CONFIG_USB_GSPCA_VC032X=m
-CONFIG_USB_GSPCA_VICAM=m
-CONFIG_USB_GSPCA_XIRLINK_CIT=m
-CONFIG_USB_GSPCA_ZC3XX=m
-CONFIG_VIDEO_PVRUSB2=m
-CONFIG_VIDEO_PVRUSB2_SYSFS=y
-CONFIG_VIDEO_PVRUSB2_DVB=y
-# CONFIG_VIDEO_PVRUSB2_DEBUGIFC is not set
-CONFIG_VIDEO_HDPVR=m
-CONFIG_VIDEO_EM28XX=m
-CONFIG_VIDEO_EM28XX_ALSA=m
-CONFIG_VIDEO_EM28XX_DVB=m
-CONFIG_VIDEO_EM28XX_RC=y
-CONFIG_VIDEO_TLG2300=m
-CONFIG_VIDEO_CX231XX=m
-CONFIG_VIDEO_CX231XX_RC=y
-CONFIG_VIDEO_CX231XX_ALSA=m
-CONFIG_VIDEO_CX231XX_DVB=m
-# CONFIG_VIDEO_TM6000 is not set
-CONFIG_VIDEO_USBVISION=m
-CONFIG_USB_ET61X251=m
-CONFIG_USB_SN9C102=m
-CONFIG_USB_PWC=m
-# CONFIG_USB_PWC_DEBUG is not set
-CONFIG_USB_PWC_INPUT_EVDEV=y
-CONFIG_USB_ZR364XX=m
-CONFIG_USB_STKWEBCAM=m
-CONFIG_USB_S2255=m
-# CONFIG_V4L_MEM2MEM_DRIVERS is not set
-CONFIG_RADIO_ADAPTERS=y
-# CONFIG_I2C_SI4713 is not set
-# CONFIG_RADIO_SI4713 is not set
-# CONFIG_USB_DSBR is not set
-# CONFIG_RADIO_SI470X is not set
-# CONFIG_USB_MR800 is not set
-# CONFIG_RADIO_TEA5764 is not set
-# CONFIG_RADIO_SAA7706H is not set
-# CONFIG_RADIO_TEF6862 is not set
-# CONFIG_RADIO_WL1273 is not set
-
-#
-# Texas Instruments WL128x FM driver (ST based)
-#
-# CONFIG_RADIO_WL128X is not set
-CONFIG_DVB_MAX_ADAPTERS=8
-# CONFIG_DVB_DYNAMIC_MINORS is not set
-CONFIG_DVB_CAPTURE_DRIVERS=y
-# CONFIG_TTPCI_EEPROM is not set
-
-#
-# Supported USB Adapters
-#
-# CONFIG_DVB_USB is not set
-# CONFIG_SMS_SIANO_MDTV is not set
-
-#
-# Supported FlexCopII (B2C2) Adapters
-#
-# CONFIG_DVB_B2C2_FLEXCOP is not set
-
-#
-# Supported DVB Frontends
-#
-CONFIG_DVB_FE_CUSTOMISE=y
-
-#
-# Customise DVB Frontends
-#
-
-#
-# Multistandard (satellite) frontends
-#
-CONFIG_DVB_STB0899=m
-CONFIG_DVB_STB6100=m
-CONFIG_DVB_STV090x=m
-CONFIG_DVB_STV6110x=m
-
-#
-# Multistandard (cable + terrestrial) frontends
-#
-CONFIG_DVB_DRXK=m
-CONFIG_DVB_TDA18271C2DD=m
-
-#
-# DVB-S (satellite) frontends
-#
-CONFIG_DVB_CX24110=m
-CONFIG_DVB_CX24123=m
-CONFIG_DVB_MT312=m
-CONFIG_DVB_ZL10036=m
-CONFIG_DVB_ZL10039=m
-CONFIG_DVB_S5H1420=m
-CONFIG_DVB_STV0288=m
-CONFIG_DVB_STB6000=m
-CONFIG_DVB_STV0299=m
-CONFIG_DVB_STV6110=m
-CONFIG_DVB_STV0900=m
-CONFIG_DVB_TDA8083=m
-CONFIG_DVB_TDA10086=m
-CONFIG_DVB_TDA8261=m
-CONFIG_DVB_VES1X93=m
-CONFIG_DVB_TUNER_ITD1000=m
-CONFIG_DVB_TUNER_CX24113=m
-CONFIG_DVB_TDA826X=m
-CONFIG_DVB_TUA6100=m
-CONFIG_DVB_CX24116=m
-CONFIG_DVB_SI21XX=m
-CONFIG_DVB_DS3000=m
-CONFIG_DVB_MB86A16=m
-CONFIG_DVB_TDA10071=m
-
-#
-# DVB-T (terrestrial) frontends
-#
-CONFIG_DVB_SP8870=m
-CONFIG_DVB_SP887X=m
-CONFIG_DVB_CX22700=m
-CONFIG_DVB_CX22702=m
-CONFIG_DVB_S5H1432=m
-CONFIG_DVB_DRXD=m
-CONFIG_DVB_L64781=m
-CONFIG_DVB_TDA1004X=m
-CONFIG_DVB_NXT6000=m
-CONFIG_DVB_MT352=m
-CONFIG_DVB_ZL10353=m
-CONFIG_DVB_DIB3000MB=m
-CONFIG_DVB_DIB3000MC=m
-CONFIG_DVB_DIB7000M=m
-CONFIG_DVB_DIB7000P=m
-CONFIG_DVB_DIB9000=m
-CONFIG_DVB_TDA10048=m
-CONFIG_DVB_AF9013=m
-CONFIG_DVB_EC100=m
-CONFIG_DVB_STV0367=m
-CONFIG_DVB_CXD2820R=m
-
-#
-# DVB-C (cable) frontends
-#
-CONFIG_DVB_VES1820=m
-CONFIG_DVB_TDA10021=m
-CONFIG_DVB_TDA10023=m
-CONFIG_DVB_STV0297=m
-
-#
-# ATSC (North American/Korean Terrestrial/Cable DTV) frontends
-#
-CONFIG_DVB_NXT200X=m
-CONFIG_DVB_OR51211=m
-CONFIG_DVB_OR51132=m
-CONFIG_DVB_BCM3510=m
-CONFIG_DVB_LGDT330X=m
-CONFIG_DVB_LGDT3305=m
-CONFIG_DVB_S5H1409=m
-CONFIG_DVB_AU8522=m
-CONFIG_DVB_S5H1411=m
-
-#
-# ISDB-T (terrestrial) frontends
-#
-CONFIG_DVB_S921=m
-CONFIG_DVB_DIB8000=m
-CONFIG_DVB_MB86A20S=m
-
-#
-# Digital terrestrial only tuners/PLL
-#
-CONFIG_DVB_PLL=m
-CONFIG_DVB_TUNER_DIB0070=m
-CONFIG_DVB_TUNER_DIB0090=m
-
-#
-# SEC control devices for DVB-S
-#
-CONFIG_DVB_LNBP21=m
-CONFIG_DVB_LNBP22=m
-CONFIG_DVB_ISL6405=m
-CONFIG_DVB_ISL6421=m
-CONFIG_DVB_ISL6423=m
-CONFIG_DVB_A8293=m
-CONFIG_DVB_LGS8GL5=m
-CONFIG_DVB_LGS8GXX=m
-CONFIG_DVB_ATBM8830=m
-CONFIG_DVB_TDA665x=m
-CONFIG_DVB_IX2505V=m
-CONFIG_DVB_IT913X_FE=m
-
-#
-# Tools to develop new frontends
-#
-# CONFIG_DVB_DUMMY_FE is not set
-
-#
-# Graphics support
-#
-CONFIG_DRM=m
-# CONFIG_VGASTATE is not set
-# CONFIG_VIDEO_OUTPUT_CONTROL is not set
-CONFIG_FB=y
-CONFIG_FIRMWARE_EDID=y
-# CONFIG_FB_DDC is not set
-# CONFIG_FB_BOOT_VESA_SUPPORT is not set
-CONFIG_FB_CFB_FILLRECT=y
-CONFIG_FB_CFB_COPYAREA=y
-CONFIG_FB_CFB_IMAGEBLIT=y
-# CONFIG_FB_CFB_REV_PIXELS_IN_BYTE is not set
-CONFIG_FB_SYS_FILLRECT=y
-CONFIG_FB_SYS_COPYAREA=y
-CONFIG_FB_SYS_IMAGEBLIT=y
-CONFIG_FB_FOREIGN_ENDIAN=y
-CONFIG_FB_BOTH_ENDIAN=y
-# CONFIG_FB_BIG_ENDIAN is not set
-# CONFIG_FB_LITTLE_ENDIAN is not set
-CONFIG_FB_SYS_FOPS=y
-# CONFIG_FB_WMT_GE_ROPS is not set
-CONFIG_FB_DEFERRED_IO=y
-# CONFIG_FB_SVGALIB is not set
-# CONFIG_FB_MACMODES is not set
-# CONFIG_FB_BACKLIGHT is not set
-CONFIG_FB_MODE_HELPERS=y
-CONFIG_FB_TILEBLITTING=y
-
-#
-# Frame buffer hardware drivers
-#
-# CONFIG_FB_UVESA is not set
-# CONFIG_FB_S1D13XXX is not set
-# CONFIG_FB_TMIO is not set
-CONFIG_FB_SMSCUFX=m
-CONFIG_FB_UDL=m
-CONFIG_FB_DA8XX=y
-CONFIG_FB_DA8XX_CONSISTENT_DMA_SIZE=5
-# CONFIG_FB_VIRTUAL is not set
-# CONFIG_FB_METRONOME is not set
-# CONFIG_FB_BROADSHEET is not set
-CONFIG_FB_ST7735=y
-# CONFIG_FB_OMAP_BOOTLOADER_INIT is not set
-CONFIG_OMAP2_VRAM=y
-CONFIG_OMAP2_VRFB=y
-CONFIG_OMAP2_DSS=m
-CONFIG_OMAP2_VRAM_SIZE=0
-CONFIG_OMAP2_DSS_DEBUG_SUPPORT=y
-# CONFIG_OMAP2_DSS_COLLECT_IRQ_STATS is not set
-CONFIG_OMAP2_DSS_DPI=y
-CONFIG_OMAP2_DSS_RFBI=y
-CONFIG_OMAP2_DSS_VENC=y
-CONFIG_OMAP2_DSS_SDI=y
-CONFIG_OMAP2_DSS_DSI=y
-# CONFIG_OMAP2_DSS_FAKE_VSYNC is not set
-CONFIG_OMAP2_DSS_MIN_FCK_PER_PCK=0
-CONFIG_OMAP2_DSS_SLEEP_AFTER_VENC_RESET=y
-CONFIG_FB_OMAP2=m
-CONFIG_FB_OMAP2_DEBUG_SUPPORT=y
-CONFIG_FB_OMAP2_NUM_FBS=3
-
-#
-# OMAP2/3 Display Device Drivers
-#
-CONFIG_PANEL_GENERIC_DPI=m
-CONFIG_PANEL_DVI=m
-# CONFIG_PANEL_LGPHILIPS_LB035Q02 is not set
-CONFIG_PANEL_SHARP_LS037V7DW01=m
-CONFIG_PANEL_NEC_NL8048HL11_01B=m
-CONFIG_PANEL_PICODLP=m
-CONFIG_PANEL_TAAL=m
-CONFIG_PANEL_TPO_TD043MTEA1=m
-CONFIG_PANEL_ACX565AKM=m
-CONFIG_PANEL_N8X0=m
-CONFIG_BACKLIGHT_LCD_SUPPORT=y
-CONFIG_LCD_CLASS_DEVICE=y
-# CONFIG_LCD_L4F00242T03 is not set
-# CONFIG_LCD_LMS283GF05 is not set
-# CONFIG_LCD_LTV350QV is not set
-# CONFIG_LCD_TDO24M is not set
-# CONFIG_LCD_VGG2432A4 is not set
-CONFIG_LCD_PLATFORM=y
-# CONFIG_LCD_S6E63M0 is not set
-# CONFIG_LCD_LD9040 is not set
-# CONFIG_LCD_AMS369FG06 is not set
-CONFIG_BACKLIGHT_CLASS_DEVICE=y
-CONFIG_BACKLIGHT_GENERIC=y
-CONFIG_BACKLIGHT_PWM=y
-# CONFIG_BACKLIGHT_ADP8860 is not set
-# CONFIG_BACKLIGHT_ADP8870 is not set
-# CONFIG_BACKLIGHT_TLC59108 is not set
-CONFIG_BACKLIGHT_TPS65217=y
-
-#
-# Display device support
-#
-CONFIG_DISPLAY_SUPPORT=y
-
-#
-# Display hardware drivers
-#
-
-#
-# Console display driver support
-#
-CONFIG_DUMMY_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE=y
-CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
-CONFIG_FRAMEBUFFER_CONSOLE_ROTATION=y
-# CONFIG_FONTS is not set
-CONFIG_FONT_8x8=y
-CONFIG_FONT_8x16=y
-CONFIG_LOGO=y
-# CONFIG_LOGO_LINUX_MONO is not set
-# CONFIG_LOGO_LINUX_VGA16 is not set
-CONFIG_LOGO_LINUX_CLUT224=y
-CONFIG_SOUND=y
-# CONFIG_SOUND_OSS_CORE is not set
-CONFIG_SND=y
-CONFIG_SND_TIMER=y
-CONFIG_SND_PCM=y
-CONFIG_SND_HWDEP=y
-CONFIG_SND_RAWMIDI=y
-CONFIG_SND_JACK=y
-CONFIG_SND_SEQUENCER=m
-CONFIG_SND_SEQ_DUMMY=m
-# CONFIG_SND_MIXER_OSS is not set
-# CONFIG_SND_PCM_OSS is not set
-# CONFIG_SND_SEQUENCER_OSS is not set
-CONFIG_SND_HRTIMER=m
-CONFIG_SND_SEQ_HRTIMER_DEFAULT=y
-# CONFIG_SND_DYNAMIC_MINORS is not set
-CONFIG_SND_SUPPORT_OLD_API=y
-CONFIG_SND_VERBOSE_PROCFS=y
-# CONFIG_SND_VERBOSE_PRINTK is not set
-# CONFIG_SND_DEBUG is not set
-CONFIG_SND_RAWMIDI_SEQ=m
-# CONFIG_SND_OPL3_LIB_SEQ is not set
-# CONFIG_SND_OPL4_LIB_SEQ is not set
-# CONFIG_SND_SBAWE_SEQ is not set
-# CONFIG_SND_EMU10K1_SEQ is not set
-CONFIG_SND_DRIVERS=y
-# CONFIG_SND_DUMMY is not set
-# CONFIG_SND_ALOOP is not set
-# CONFIG_SND_VIRMIDI is not set
-# CONFIG_SND_MTPAV is not set
-# CONFIG_SND_MTS64 is not set
-# CONFIG_SND_SERIAL_U16550 is not set
-# CONFIG_SND_MPU401 is not set
-# CONFIG_SND_PORTMAN2X4 is not set
-CONFIG_SND_ARM=y
-CONFIG_SND_SPI=y
-CONFIG_SND_USB=y
-CONFIG_SND_USB_AUDIO=y
-# CONFIG_SND_USB_UA101 is not set
-# CONFIG_SND_USB_CAIAQ is not set
-# CONFIG_SND_USB_6FIRE is not set
-CONFIG_SND_SOC=y
-# CONFIG_SND_SOC_CACHE_LZO is not set
-CONFIG_SND_AM33XX_SOC=y
-CONFIG_SND_DAVINCI_SOC_MCASP=y
-CONFIG_SND_AM335X_SOC_EVM=y
-# CONFIG_SND_OMAP_SOC is not set
-CONFIG_SND_SOC_I2C_AND_SPI=y
-# CONFIG_SND_SOC_ALL_CODECS is not set
-CONFIG_SND_SOC_TLV320AIC3X=y
-# CONFIG_SOUND_PRIME is not set
-CONFIG_HID_SUPPORT=y
-CONFIG_HID=y
-# CONFIG_HIDRAW is not set
-
-#
-# USB Input Devices
-#
-CONFIG_USB_HID=y
-# CONFIG_HID_PID is not set
-# CONFIG_USB_HIDDEV is not set
-
-#
-# Special HID drivers
-#
-# CONFIG_HID_A4TECH is not set
-# CONFIG_HID_ACRUX is not set
-# CONFIG_HID_APPLE is not set
-# CONFIG_HID_BELKIN is not set
-# CONFIG_HID_CHERRY is not set
-# CONFIG_HID_CHICONY is not set
-# CONFIG_HID_PRODIKEYS is not set
-# CONFIG_HID_CYPRESS is not set
-# CONFIG_HID_DRAGONRISE is not set
-# CONFIG_HID_EMS_FF is not set
-# CONFIG_HID_ELECOM is not set
-# CONFIG_HID_EZKEY is not set
-# CONFIG_HID_HOLTEK is not set
-# CONFIG_HID_KEYTOUCH is not set
-# CONFIG_HID_KYE is not set
-# CONFIG_HID_UCLOGIC is not set
-# CONFIG_HID_WALTOP is not set
-# CONFIG_HID_GYRATION is not set
-# CONFIG_HID_TWINHAN is not set
-# CONFIG_HID_KENSINGTON is not set
-# CONFIG_HID_LCPOWER is not set
-# CONFIG_HID_LOGITECH is not set
-# CONFIG_HID_MAGICMOUSE is not set
-# CONFIG_HID_MICROSOFT is not set
-# CONFIG_HID_MONTEREY is not set
-# CONFIG_HID_MULTITOUCH is not set
-# CONFIG_HID_NTRIG is not set
-# CONFIG_HID_ORTEK is not set
-# CONFIG_HID_PANTHERLORD is not set
-# CONFIG_HID_PETALYNX is not set
-# CONFIG_HID_PICOLCD is not set
-# CONFIG_HID_PRIMAX is not set
-# CONFIG_HID_QUANTA is not set
-# CONFIG_HID_ROCCAT is not set
-# CONFIG_HID_SAMSUNG is not set
-# CONFIG_HID_SONY is not set
-# CONFIG_HID_SPEEDLINK is not set
-# CONFIG_HID_SUNPLUS is not set
-# CONFIG_HID_GREENASIA is not set
-# CONFIG_HID_SMARTJOYPLUS is not set
-# CONFIG_HID_TOPSEED is not set
-# CONFIG_HID_THRUSTMASTER is not set
-# CONFIG_HID_WACOM is not set
-# CONFIG_HID_WIIMOTE is not set
-# CONFIG_HID_ZEROPLUS is not set
-# CONFIG_HID_ZYDACRON is not set
-CONFIG_USB_SUPPORT=y
-CONFIG_USB_COMMON=y
-CONFIG_USB_ARCH_HAS_HCD=y
-CONFIG_USB_ARCH_HAS_OHCI=y
-CONFIG_USB_ARCH_HAS_EHCI=y
-# CONFIG_USB_ARCH_HAS_XHCI is not set
-CONFIG_USB=y
-# CONFIG_USB_DEBUG is not set
-CONFIG_USB_ANNOUNCE_NEW_DEVICES=y
-
-#
-# Miscellaneous USB options
-#
-CONFIG_USB_DEVICEFS=y
-CONFIG_USB_DEVICE_CLASS=y
-# CONFIG_USB_DYNAMIC_MINORS is not set
-CONFIG_USB_SUSPEND=y
-# CONFIG_USB_OTG is not set
-# CONFIG_USB_OTG_WHITELIST is not set
-# CONFIG_USB_OTG_BLACKLIST_HUB is not set
-# CONFIG_USB_DWC3 is not set
-# CONFIG_USB_MON is not set
-# CONFIG_USB_WUSB is not set
-# CONFIG_USB_WUSB_CBAF is not set
-
-#
-# USB Host Controller Drivers
-#
-# CONFIG_USB_C67X00_HCD is not set
-# CONFIG_USB_EHCI_HCD is not set
-# CONFIG_USB_OXU210HP_HCD is not set
-# CONFIG_USB_ISP116X_HCD is not set
-# CONFIG_USB_ISP1760_HCD is not set
-# CONFIG_USB_ISP1362_HCD is not set
-# CONFIG_USB_OHCI_HCD is not set
-# CONFIG_USB_U132_HCD is not set
-# CONFIG_USB_SL811_HCD is not set
-# CONFIG_USB_R8A66597_HCD is not set
-# CONFIG_USB_HWA_HCD is not set
-CONFIG_USB_MUSB_HDRC=y
-
-#
-# Platform Glue Layer
-#
-# CONFIG_USB_MUSB_TUSB6010_GLUE is not set
-# CONFIG_USB_MUSB_OMAP2PLUS_GLUE is not set
-# CONFIG_USB_MUSB_AM35X_GLUE is not set
-CONFIG_USB_MUSB_TI81XX_GLUE=y
-# CONFIG_USB_MUSB_DAVINCI is not set
-# CONFIG_USB_MUSB_DA8XX is not set
-# CONFIG_USB_MUSB_TUSB6010 is not set
-# CONFIG_USB_MUSB_OMAP2PLUS is not set
-# CONFIG_USB_MUSB_AM35X is not set
-CONFIG_USB_MUSB_TI81XX=y
-# CONFIG_USB_MUSB_BLACKFIN is not set
-# CONFIG_USB_MUSB_UX500 is not set
-CONFIG_MUSB_PIO_ONLY=y
-# CONFIG_USB_INVENTRA_DMA is not set
-# CONFIG_USB_TI_CPPI_DMA is not set
-# CONFIG_USB_TI_CPPI41_DMA is not set
-# CONFIG_USB_TUSB_OMAP_DMA is not set
-# CONFIG_USB_UX500_DMA is not set
-# CONFIG_USB_RENESAS_USBHS is not set
-
-#
-# USB Device Class drivers
-#
-CONFIG_USB_ACM=y
-CONFIG_USB_PRINTER=y
-CONFIG_USB_WDM=y
-CONFIG_USB_TMC=m
-
-#
-# NOTE: USB_STORAGE depends on SCSI but BLK_DEV_SD may
-#
-
-#
-# also be needed; see USB_STORAGE Help for more info
-#
-CONFIG_USB_STORAGE=y
-# CONFIG_USB_STORAGE_DEBUG is not set
-# CONFIG_USB_STORAGE_REALTEK is not set
-# CONFIG_USB_STORAGE_DATAFAB is not set
-# CONFIG_USB_STORAGE_FREECOM is not set
-# CONFIG_USB_STORAGE_ISD200 is not set
-# CONFIG_USB_STORAGE_USBAT is not set
-# CONFIG_USB_STORAGE_SDDR09 is not set
-# CONFIG_USB_STORAGE_SDDR55 is not set
-# CONFIG_USB_STORAGE_JUMPSHOT is not set
-# CONFIG_USB_STORAGE_ALAUDA is not set
-# CONFIG_USB_STORAGE_ONETOUCH is not set
-# CONFIG_USB_STORAGE_KARMA is not set
-# CONFIG_USB_STORAGE_CYPRESS_ATACB is not set
-# CONFIG_USB_STORAGE_ENE_UB6250 is not set
-CONFIG_USB_UAS=y
-CONFIG_USB_LIBUSUAL=y
-
-#
-# USB Imaging devices
-#
-# CONFIG_USB_MDC800 is not set
-# CONFIG_USB_MICROTEK is not set
-
-#
-# USB port drivers
-#
-# CONFIG_USB_USS720 is not set
-CONFIG_USB_SERIAL=m
-CONFIG_USB_EZUSB=y
-# CONFIG_USB_SERIAL_GENERIC is not set
-CONFIG_USB_SERIAL_AIRCABLE=m
-CONFIG_USB_SERIAL_ARK3116=m
-CONFIG_USB_SERIAL_BELKIN=m
-CONFIG_USB_SERIAL_CH341=m
-# CONFIG_USB_SERIAL_WHITEHEAT is not set
-CONFIG_USB_SERIAL_DIGI_ACCELEPORT=m
-CONFIG_USB_SERIAL_CP210X=m
-CONFIG_USB_SERIAL_CYPRESS_M8=m
-CONFIG_USB_SERIAL_EMPEG=m
-CONFIG_USB_SERIAL_FTDI_SIO=m
-CONFIG_USB_SERIAL_FUNSOFT=m
-CONFIG_USB_SERIAL_VISOR=m
-CONFIG_USB_SERIAL_IPAQ=m
-CONFIG_USB_SERIAL_IR=m
-CONFIG_USB_SERIAL_EDGEPORT=m
-CONFIG_USB_SERIAL_EDGEPORT_TI=m
-CONFIG_USB_SERIAL_GARMIN=m
-CONFIG_USB_SERIAL_IPW=m
-CONFIG_USB_SERIAL_IUU=m
-CONFIG_USB_SERIAL_KEYSPAN_PDA=m
-CONFIG_USB_SERIAL_KEYSPAN=m
-# CONFIG_USB_SERIAL_KEYSPAN_MPR is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XA is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA28XB is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19 is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA18X is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QW is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA19QI is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49W is not set
-# CONFIG_USB_SERIAL_KEYSPAN_USA49WLC is not set
-CONFIG_USB_SERIAL_KLSI=m
-CONFIG_USB_SERIAL_KOBIL_SCT=m
-CONFIG_USB_SERIAL_MCT_U232=m
-CONFIG_USB_SERIAL_MOS7720=m
-# CONFIG_USB_SERIAL_MOS7715_PARPORT is not set
-CONFIG_USB_SERIAL_MOS7840=m
-CONFIG_USB_SERIAL_MOTOROLA=m
-CONFIG_USB_SERIAL_NAVMAN=m
-CONFIG_USB_SERIAL_PL2303=m
-CONFIG_USB_SERIAL_OTI6858=m
-CONFIG_USB_SERIAL_QCAUX=m
-CONFIG_USB_SERIAL_QUALCOMM=m
-CONFIG_USB_SERIAL_SPCP8X5=m
-CONFIG_USB_SERIAL_HP4X=m
-CONFIG_USB_SERIAL_SAFE=m
-# CONFIG_USB_SERIAL_SAFE_PADDED is not set
-CONFIG_USB_SERIAL_SIEMENS_MPI=m
-CONFIG_USB_SERIAL_SIERRAWIRELESS=m
-# CONFIG_USB_SERIAL_SYMBOL is not set
-# CONFIG_USB_SERIAL_TI is not set
-# CONFIG_USB_SERIAL_CYBERJACK is not set
-# CONFIG_USB_SERIAL_XIRCOM is not set
-CONFIG_USB_SERIAL_WWAN=m
-# CONFIG_USB_SERIAL_OPTION is not set
-# CONFIG_USB_SERIAL_OMNINET is not set
-CONFIG_USB_SERIAL_OPTICON=m
-CONFIG_USB_SERIAL_VIVOPAY_SERIAL=m
-CONFIG_USB_SERIAL_ZIO=m
-CONFIG_USB_SERIAL_SSU100=m
-CONFIG_USB_SERIAL_DEBUG=m
-
-#
-# USB Miscellaneous drivers
-#
-# CONFIG_USB_EMI62 is not set
-# CONFIG_USB_EMI26 is not set
-# CONFIG_USB_ADUTUX is not set
-# CONFIG_USB_SEVSEG is not set
-# CONFIG_USB_RIO500 is not set
-CONFIG_USB_LEGOTOWER=m
-CONFIG_USB_LCD=m
-CONFIG_USB_LED=m
-CONFIG_USB_CYPRESS_CY7C63=m
-CONFIG_USB_CYTHERM=m
-CONFIG_USB_IDMOUSE=m
-CONFIG_USB_FTDI_ELAN=m
-CONFIG_USB_APPLEDISPLAY=m
-CONFIG_USB_SISUSBVGA=m
-CONFIG_USB_SISUSBVGA_CON=y
-# CONFIG_USB_LD is not set
-# CONFIG_USB_TRANCEVIBRATOR is not set
-# CONFIG_USB_IOWARRIOR is not set
-CONFIG_USB_TEST=m
-# CONFIG_USB_ISIGHTFW is not set
-# CONFIG_USB_YUREX is not set
-CONFIG_USB_GADGET=y
-# CONFIG_USB_GADGET_DEBUG is not set
-# CONFIG_USB_GADGET_DEBUG_FILES is not set
-# CONFIG_USB_GADGET_DEBUG_FS is not set
-CONFIG_USB_GADGET_VBUS_DRAW=2
-CONFIG_USB_GADGET_STORAGE_NUM_BUFFERS=2
-# CONFIG_USB_FUSB300 is not set
-# CONFIG_USB_OMAP is not set
-# CONFIG_USB_R8A66597 is not set
-CONFIG_USB_GADGET_MUSB_HDRC=y
-# CONFIG_USB_M66592 is not set
-# CONFIG_USB_NET2272 is not set
-# CONFIG_USB_DUMMY_HCD is not set
-CONFIG_USB_GADGET_DUALSPEED=y
-CONFIG_USB_ZERO=m
-CONFIG_USB_AUDIO=m
-CONFIG_USB_ETH=m
-CONFIG_USB_ETH_RNDIS=y
-# CONFIG_USB_ETH_EEM is not set
-CONFIG_USB_G_NCM=m
-CONFIG_USB_GADGETFS=m
-CONFIG_USB_FUNCTIONFS=m
-# CONFIG_USB_FUNCTIONFS_ETH is not set
-CONFIG_USB_FUNCTIONFS_RNDIS=y
-# CONFIG_USB_FUNCTIONFS_GENERIC is not set
-CONFIG_USB_FILE_STORAGE=m
-# CONFIG_USB_FILE_STORAGE_TEST is not set
-CONFIG_USB_MASS_STORAGE=m
-CONFIG_USB_G_SERIAL=m
-CONFIG_USB_MIDI_GADGET=m
-CONFIG_USB_G_PRINTER=m
-CONFIG_USB_CDC_COMPOSITE=m
-# CONFIG_USB_G_ACM_MS is not set
-CONFIG_USB_G_MULTI=m
-CONFIG_USB_G_MULTI_RNDIS=y
-# CONFIG_USB_G_MULTI_CDC is not set
-CONFIG_USB_G_HID=m
-CONFIG_USB_G_DBGP=m
-CONFIG_USB_G_DBGP_PRINTK=y
-# CONFIG_USB_G_DBGP_SERIAL is not set
-CONFIG_USB_G_WEBCAM=m
-
-#
-# OTG and related infrastructure
-#
-CONFIG_USB_OTG_UTILS=y
-# CONFIG_USB_GPIO_VBUS is not set
-# CONFIG_USB_ULPI is not set
-# CONFIG_TWL6030_USB is not set
-CONFIG_NOP_USB_XCEIV=y
-CONFIG_MMC=y
-# CONFIG_MMC_DEBUG is not set
-CONFIG_MMC_UNSAFE_RESUME=y
-# CONFIG_MMC_CLKGATE is not set
-
-#
-# MMC/SD/SDIO Card Drivers
-#
-CONFIG_MMC_BLOCK=y
-CONFIG_MMC_BLOCK_MINORS=8
-CONFIG_MMC_BLOCK_BOUNCE=y
-CONFIG_SDIO_UART=y
-# CONFIG_MMC_TEST is not set
-
-#
-# MMC/SD/SDIO Host Controller Drivers
-#
-# CONFIG_MMC_SDHCI is not set
-# CONFIG_MMC_SDHCI_PXAV3 is not set
-# CONFIG_MMC_SDHCI_PXAV2 is not set
-# CONFIG_MMC_OMAP is not set
-CONFIG_MMC_OMAP_HS=y
-# CONFIG_MMC_SPI is not set
-# CONFIG_MMC_DW is not set
-# CONFIG_MMC_VUB300 is not set
-# CONFIG_MMC_USHC is not set
-# CONFIG_MEMSTICK is not set
-CONFIG_NEW_LEDS=y
-CONFIG_LEDS_CLASS=y
-
-#
-# LED drivers
-#
-# CONFIG_LEDS_LM3530 is not set
-# CONFIG_LEDS_PCA9532 is not set
-CONFIG_LEDS_GPIO=y
-# CONFIG_LEDS_LP3944 is not set
-# CONFIG_LEDS_LP5521 is not set
-# CONFIG_LEDS_LP5523 is not set
-# CONFIG_LEDS_PCA955X is not set
-# CONFIG_LEDS_DAC124S085 is not set
-# CONFIG_LEDS_PWM is not set
-CONFIG_LEDS_REGULATOR=y
-# CONFIG_LEDS_BD2802 is not set
-# CONFIG_LEDS_LT3593 is not set
-# CONFIG_LEDS_RENESAS_TPU is not set
-CONFIG_LEDS_TRIGGERS=y
-
-#
-# LED Triggers
-#
-CONFIG_LEDS_TRIGGER_TIMER=y
-CONFIG_LEDS_TRIGGER_HEARTBEAT=y
-CONFIG_LEDS_TRIGGER_BACKLIGHT=y
-# CONFIG_LEDS_TRIGGER_CPU is not set
-CONFIG_LEDS_TRIGGER_GPIO=y
-CONFIG_LEDS_TRIGGER_DEFAULT_ON=y
-
-#
-# iptables trigger is under Netfilter config (LED target)
-#
-# CONFIG_ACCESSIBILITY is not set
-CONFIG_RTC_LIB=y
-CONFIG_RTC_CLASS=y
-CONFIG_RTC_HCTOSYS=y
-CONFIG_RTC_HCTOSYS_DEVICE="rtc0"
-# CONFIG_RTC_DEBUG is not set
-
-#
-# RTC interfaces
-#
-CONFIG_RTC_INTF_SYSFS=y
-CONFIG_RTC_INTF_PROC=y
-CONFIG_RTC_INTF_DEV=y
-# CONFIG_RTC_INTF_DEV_UIE_EMUL is not set
-# CONFIG_RTC_DRV_TEST is not set
-
-#
-# I2C RTC drivers
-#
-CONFIG_RTC_DRV_DS1307=m
-CONFIG_RTC_DRV_DS1374=m
-CONFIG_RTC_DRV_DS1672=m
-CONFIG_RTC_DRV_DS3232=m
-CONFIG_RTC_DRV_MAX6900=m
-CONFIG_RTC_DRV_RS5C372=m
-CONFIG_RTC_DRV_ISL1208=m
-CONFIG_RTC_DRV_ISL12022=m
-CONFIG_RTC_DRV_X1205=m
-CONFIG_RTC_DRV_PCF8563=m
-CONFIG_RTC_DRV_PCF8583=m
-CONFIG_RTC_DRV_M41T80=m
-CONFIG_RTC_DRV_M41T80_WDT=y
-CONFIG_RTC_DRV_BQ32K=m
-CONFIG_RTC_DRV_TWL4030=m
-CONFIG_RTC_DRV_S35390A=m
-CONFIG_RTC_DRV_FM3130=m
-CONFIG_RTC_DRV_RX8581=m
-CONFIG_RTC_DRV_RX8025=m
-CONFIG_RTC_DRV_EM3027=m
-CONFIG_RTC_DRV_RV3029C2=m
-
-#
-# SPI RTC drivers
-#
-CONFIG_RTC_DRV_M41T93=m
-CONFIG_RTC_DRV_M41T94=m
-CONFIG_RTC_DRV_DS1305=m
-CONFIG_RTC_DRV_DS1390=m
-CONFIG_RTC_DRV_MAX6902=m
-CONFIG_RTC_DRV_R9701=m
-CONFIG_RTC_DRV_RS5C348=m
-CONFIG_RTC_DRV_DS3234=m
-CONFIG_RTC_DRV_PCF2123=m
-
-#
-# Platform RTC drivers
-#
-CONFIG_RTC_DRV_CMOS=m
-CONFIG_RTC_DRV_DS1286=m
-CONFIG_RTC_DRV_DS1511=m
-CONFIG_RTC_DRV_DS1553=m
-CONFIG_RTC_DRV_DS1742=m
-CONFIG_RTC_DRV_STK17TA8=m
-CONFIG_RTC_DRV_M48T86=m
-CONFIG_RTC_DRV_M48T35=m
-CONFIG_RTC_DRV_M48T59=m
-CONFIG_RTC_DRV_MSM6242=m
-CONFIG_RTC_DRV_BQ4802=m
-CONFIG_RTC_DRV_RP5C01=m
-CONFIG_RTC_DRV_V3020=m
-
-#
-# on-CPU RTC drivers
-#
-CONFIG_RTC_DRV_OMAP=y
-# CONFIG_DMADEVICES is not set
-# CONFIG_AUXDISPLAY is not set
-CONFIG_UIO=m
-CONFIG_UIO_PDRV=m
-CONFIG_UIO_PDRV_GENIRQ=m
-CONFIG_UIO_PRUSS=m
-CONFIG_VIRTIO=m
-CONFIG_VIRTIO_RING=m
-
-#
-# Virtio drivers
-#
-# CONFIG_VIRTIO_BALLOON is not set
-CONFIG_VIRTIO_MMIO=m
-CONFIG_STAGING=y
-CONFIG_USBIP_CORE=m
-CONFIG_USBIP_VHCI_HCD=m
-CONFIG_USBIP_HOST=m
-# CONFIG_USBIP_DEBUG is not set
-CONFIG_W35UND=m
-CONFIG_PRISM2_USB=m
-# CONFIG_ECHO is not set
-CONFIG_ASUS_OLED=m
-# CONFIG_PANEL is not set
-CONFIG_R8712U=m
-CONFIG_RTS5139=m
-# CONFIG_RTS5139_DEBUG is not set
-# CONFIG_TRANZPORT is not set
-# CONFIG_POHMELFS is not set
-# CONFIG_LINE6_USB is not set
-CONFIG_USB_SERIAL_QUATECH2=m
-CONFIG_USB_SERIAL_QUATECH_USB2=m
-# CONFIG_VT6656 is not set
-CONFIG_IIO=y
-CONFIG_IIO_BUFFER=y
-CONFIG_IIO_SW_RING=y
-CONFIG_IIO_KFIFO_BUF=y
-CONFIG_IIO_TRIGGER=y
-CONFIG_IIO_CONSUMERS_PER_TRIGGER=2
-
-#
-# Accelerometers
-#
-# CONFIG_ADIS16201 is not set
-# CONFIG_ADIS16203 is not set
-# CONFIG_ADIS16204 is not set
-# CONFIG_ADIS16209 is not set
-# CONFIG_ADIS16220 is not set
-# CONFIG_ADIS16240 is not set
-# CONFIG_KXSD9 is not set
-# CONFIG_LIS3L02DQ is not set
-# CONFIG_SCA3000 is not set
-
-#
-# Analog to digital converters
-#
-# CONFIG_AD7291 is not set
-# CONFIG_AD7298 is not set
-# CONFIG_AD7606 is not set
-# CONFIG_AD799X is not set
-# CONFIG_AD7476 is not set
-# CONFIG_AD7887 is not set
-# CONFIG_AD7780 is not set
-# CONFIG_AD7793 is not set
-# CONFIG_AD7816 is not set
-CONFIG_AD7192=m
-# CONFIG_ADT7310 is not set
-# CONFIG_ADT7410 is not set
-CONFIG_AD7280=m
-# CONFIG_MAX1363 is not set
-
-#
-# Analog digital bi-direction converters
-#
-# CONFIG_ADT7316 is not set
-
-#
-# Capacitance to digital converters
-#
-# CONFIG_AD7150 is not set
-# CONFIG_AD7152 is not set
-CONFIG_AD7746=m
-
-#
-# Digital to analog converters
-#
-CONFIG_AD5064=m
-CONFIG_AD5360=m
-# CONFIG_AD5624R_SPI is not set
-# CONFIG_AD5446 is not set
-# CONFIG_AD5504 is not set
-# CONFIG_AD5791 is not set
-# CONFIG_AD5686 is not set
-# CONFIG_MAX517 is not set
-
-#
-# Direct Digital Synthesis
-#
-# CONFIG_AD5930 is not set
-# CONFIG_AD9832 is not set
-# CONFIG_AD9834 is not set
-# CONFIG_AD9850 is not set
-# CONFIG_AD9852 is not set
-# CONFIG_AD9910 is not set
-# CONFIG_AD9951 is not set
-
-#
-# Digital gyroscope sensors
-#
-# CONFIG_ADIS16060 is not set
-# CONFIG_ADIS16080 is not set
-# CONFIG_ADIS16130 is not set
-# CONFIG_ADIS16260 is not set
-# CONFIG_ADXRS450 is not set
-
-#
-# Network Analyzer, Impedance Converters
-#
-CONFIG_AD5933=m
-
-#
-# Inertial measurement units
-#
-# CONFIG_ADIS16400 is not set
-
-#
-# Light sensors
-#
-# CONFIG_SENSORS_ISL29018 is not set
-# CONFIG_SENSORS_TSL2563 is not set
-# CONFIG_TSL2583 is not set
-
-#
-# Magnetometer sensors
-#
-# CONFIG_SENSORS_AK8975 is not set
-# CONFIG_SENSORS_HMC5843 is not set
-
-#
-# Active energy metering IC
-#
-# CONFIG_ADE7753 is not set
-# CONFIG_ADE7754 is not set
-# CONFIG_ADE7758 is not set
-# CONFIG_ADE7759 is not set
-# CONFIG_ADE7854 is not set
-
-#
-# Resolver to digital converters
-#
-# CONFIG_AD2S90 is not set
-CONFIG_AD2S1200=m
-# CONFIG_AD2S1210 is not set
-
-#
-# Triggers - standalone
-#
-CONFIG_IIO_PERIODIC_RTC_TRIGGER=m
-CONFIG_IIO_GPIO_TRIGGER=m
-CONFIG_IIO_SYSFS_TRIGGER=m
-CONFIG_IIO_DUMMY_EVGEN=m
-CONFIG_IIO_SIMPLE_DUMMY=m
-CONFIG_IIO_SIMPLE_DUMMY_EVENTS=y
-CONFIG_IIO_SIMPLE_DUMMY_BUFFER=y
-CONFIG_XVMALLOC=y
-CONFIG_ZRAM=m
-# CONFIG_ZRAM_DEBUG is not set
-# CONFIG_FB_SM7XX is not set
-# CONFIG_TIDSPBRIDGE is not set
-CONFIG_USB_ENESTORAGE=m
-# CONFIG_BCM_WIMAX is not set
-# CONFIG_FT1000 is not set
-
-#
-# Speakup console speech
-#
-# CONFIG_SPEAKUP is not set
-# CONFIG_TOUCHSCREEN_CLEARPAD_TM1217 is not set
-CONFIG_TOUCHSCREEN_SYNAPTICS_I2C_RMI4=m
-CONFIG_STAGING_MEDIA=y
-CONFIG_DVB_AS102=m
-CONFIG_EASYCAP=m
-# CONFIG_EASYCAP_DEBUG is not set
-# CONFIG_LIRC_STAGING is not set
-CONFIG_CLKDEV_LOOKUP=y
-
-#
-# Hardware Spinlock drivers
-#
-CONFIG_CLKSRC_MMIO=y
-CONFIG_IOMMU_API=y
-CONFIG_IOMMU_SUPPORT=y
-CONFIG_OMAP_IOMMU=y
-CONFIG_OMAP_IOVMM=y
-CONFIG_OMAP_IOMMU_DEBUG=y
-# CONFIG_VIRT_DRIVERS is not set
-CONFIG_PM_DEVFREQ=y
-
-#
-# DEVFREQ Governors
-#
-# CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND is not set
-# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set
-# CONFIG_DEVFREQ_GOV_POWERSAVE is not set
-CONFIG_DEVFREQ_GOV_USERSPACE=y
-
-#
-# DEVFREQ Drivers
-#
-
-#
-# File systems
-#
-CONFIG_EXT2_FS=m
-# CONFIG_EXT2_FS_XATTR is not set
-# CONFIG_EXT2_FS_XIP is not set
-CONFIG_EXT3_FS=y
-CONFIG_EXT3_DEFAULTS_TO_ORDERED=y
-# CONFIG_EXT3_FS_XATTR is not set
-CONFIG_EXT4_FS=y
-CONFIG_EXT4_FS_XATTR=y
-CONFIG_EXT4_FS_POSIX_ACL=y
-# CONFIG_EXT4_FS_SECURITY is not set
-# CONFIG_EXT4_DEBUG is not set
-CONFIG_JBD=y
-# CONFIG_JBD_DEBUG is not set
-CONFIG_JBD2=y
-# CONFIG_JBD2_DEBUG is not set
-CONFIG_FS_MBCACHE=y
-CONFIG_REISERFS_FS=m
-# CONFIG_REISERFS_CHECK is not set
-# CONFIG_REISERFS_PROC_INFO is not set
-# CONFIG_REISERFS_FS_XATTR is not set
-CONFIG_JFS_FS=m
-# CONFIG_JFS_POSIX_ACL is not set
-# CONFIG_JFS_SECURITY is not set
-# CONFIG_JFS_DEBUG is not set
-# CONFIG_JFS_STATISTICS is not set
-CONFIG_XFS_FS=m
-# CONFIG_XFS_QUOTA is not set
-# CONFIG_XFS_POSIX_ACL is not set
-# CONFIG_XFS_RT is not set
-# CONFIG_XFS_DEBUG is not set
-CONFIG_GFS2_FS=m
-# CONFIG_GFS2_FS_LOCKING_DLM is not set
-CONFIG_BTRFS_FS=m
-# CONFIG_BTRFS_FS_POSIX_ACL is not set
-CONFIG_NILFS2_FS=m
-CONFIG_FS_POSIX_ACL=y
-CONFIG_EXPORTFS=y
-CONFIG_FILE_LOCKING=y
-CONFIG_FSNOTIFY=y
-CONFIG_DNOTIFY=y
-CONFIG_INOTIFY_USER=y
-CONFIG_FANOTIFY=y
-CONFIG_FANOTIFY_ACCESS_PERMISSIONS=y
-CONFIG_QUOTA=y
-# CONFIG_QUOTA_NETLINK_INTERFACE is not set
-CONFIG_PRINT_QUOTA_WARNING=y
-# CONFIG_QUOTA_DEBUG is not set
-CONFIG_QUOTA_TREE=m
-# CONFIG_QFMT_V1 is not set
-CONFIG_QFMT_V2=m
-CONFIG_QUOTACTL=y
-CONFIG_AUTOFS4_FS=y
-CONFIG_FUSE_FS=m
-CONFIG_CUSE=m
-CONFIG_GENERIC_ACL=y
-
-#
-# Caches
-#
-# CONFIG_FSCACHE is not set
-
-#
-# CD-ROM/DVD Filesystems
-#
-CONFIG_ISO9660_FS=m
-CONFIG_JOLIET=y
-CONFIG_ZISOFS=y
-CONFIG_UDF_FS=m
-CONFIG_UDF_NLS=y
-
-#
-# DOS/FAT/NT Filesystems
-#
-CONFIG_FAT_FS=y
-CONFIG_MSDOS_FS=y
-CONFIG_VFAT_FS=y
-CONFIG_FAT_DEFAULT_CODEPAGE=437
-CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-1"
-# CONFIG_NTFS_FS is not set
-
-#
-# Pseudo filesystems
-#
-CONFIG_PROC_FS=y
-CONFIG_PROC_SYSCTL=y
-CONFIG_PROC_PAGE_MONITOR=y
-CONFIG_SYSFS=y
-CONFIG_TMPFS=y
-CONFIG_TMPFS_POSIX_ACL=y
-CONFIG_TMPFS_XATTR=y
-# CONFIG_HUGETLB_PAGE is not set
-# CONFIG_CONFIGFS_FS is not set
-CONFIG_MISC_FILESYSTEMS=y
-# CONFIG_ADFS_FS is not set
-# CONFIG_AFFS_FS is not set
-# CONFIG_ECRYPT_FS is not set
-# CONFIG_HFS_FS is not set
-# CONFIG_HFSPLUS_FS is not set
-# CONFIG_BEFS_FS is not set
-# CONFIG_BFS_FS is not set
-# CONFIG_EFS_FS is not set
-# CONFIG_LOGFS is not set
-CONFIG_CRAMFS=m
-# CONFIG_SQUASHFS is not set
-# CONFIG_VXFS_FS is not set
-# CONFIG_MINIX_FS is not set
-# CONFIG_OMFS_FS is not set
-# CONFIG_HPFS_FS is not set
-# CONFIG_QNX4FS_FS is not set
-# CONFIG_ROMFS_FS is not set
-# CONFIG_PSTORE is not set
-# CONFIG_SYSV_FS is not set
-# CONFIG_UFS_FS is not set
-CONFIG_NETWORK_FILESYSTEMS=y
-CONFIG_NFS_FS=y
-CONFIG_NFS_V3=y
-CONFIG_NFS_V3_ACL=y
-CONFIG_NFS_V4=y
-# CONFIG_NFS_V4_1 is not set
-CONFIG_ROOT_NFS=y
-# CONFIG_NFS_USE_LEGACY_DNS is not set
-CONFIG_NFS_USE_KERNEL_DNS=y
-# CONFIG_NFS_USE_NEW_IDMAPPER is not set
-CONFIG_NFSD=m
-CONFIG_NFSD_V3=y
-# CONFIG_NFSD_V3_ACL is not set
-CONFIG_NFSD_V4=y
-CONFIG_LOCKD=y
-CONFIG_LOCKD_V4=y
-CONFIG_NFS_ACL_SUPPORT=y
-CONFIG_NFS_COMMON=y
-CONFIG_SUNRPC=y
-CONFIG_SUNRPC_GSS=y
-# CONFIG_CEPH_FS is not set
-CONFIG_CIFS=m
-CONFIG_CIFS_STATS=y
-# CONFIG_CIFS_STATS2 is not set
-CONFIG_CIFS_WEAK_PW_HASH=y
-# CONFIG_CIFS_UPCALL is not set
-CONFIG_CIFS_XATTR=y
-CONFIG_CIFS_POSIX=y
-# CONFIG_CIFS_DEBUG2 is not set
-# CONFIG_CIFS_DFS_UPCALL is not set
-# CONFIG_CIFS_ACL is not set
-# CONFIG_NCP_FS is not set
-# CONFIG_CODA_FS is not set
-# CONFIG_AFS_FS is not set
-
-#
-# Partition Types
-#
-CONFIG_PARTITION_ADVANCED=y
-# CONFIG_ACORN_PARTITION is not set
-# CONFIG_OSF_PARTITION is not set
-# CONFIG_AMIGA_PARTITION is not set
-# CONFIG_ATARI_PARTITION is not set
-CONFIG_MAC_PARTITION=y
-CONFIG_MSDOS_PARTITION=y
-# CONFIG_BSD_DISKLABEL is not set
-# CONFIG_MINIX_SUBPARTITION is not set
-# CONFIG_SOLARIS_X86_PARTITION is not set
-# CONFIG_UNIXWARE_DISKLABEL is not set
-# CONFIG_LDM_PARTITION is not set
-# CONFIG_SGI_PARTITION is not set
-# CONFIG_ULTRIX_PARTITION is not set
-# CONFIG_SUN_PARTITION is not set
-# CONFIG_KARMA_PARTITION is not set
-# CONFIG_EFI_PARTITION is not set
-# CONFIG_SYSV68_PARTITION is not set
-CONFIG_NLS=y
-CONFIG_NLS_DEFAULT="iso8859-1"
-CONFIG_NLS_CODEPAGE_437=y
-# CONFIG_NLS_CODEPAGE_737 is not set
-# CONFIG_NLS_CODEPAGE_775 is not set
-# CONFIG_NLS_CODEPAGE_850 is not set
-# CONFIG_NLS_CODEPAGE_852 is not set
-# CONFIG_NLS_CODEPAGE_855 is not set
-# CONFIG_NLS_CODEPAGE_857 is not set
-# CONFIG_NLS_CODEPAGE_860 is not set
-# CONFIG_NLS_CODEPAGE_861 is not set
-# CONFIG_NLS_CODEPAGE_862 is not set
-# CONFIG_NLS_CODEPAGE_863 is not set
-# CONFIG_NLS_CODEPAGE_864 is not set
-# CONFIG_NLS_CODEPAGE_865 is not set
-# CONFIG_NLS_CODEPAGE_866 is not set
-# CONFIG_NLS_CODEPAGE_869 is not set
-# CONFIG_NLS_CODEPAGE_936 is not set
-# CONFIG_NLS_CODEPAGE_950 is not set
-# CONFIG_NLS_CODEPAGE_932 is not set
-# CONFIG_NLS_CODEPAGE_949 is not set
-# CONFIG_NLS_CODEPAGE_874 is not set
-# CONFIG_NLS_ISO8859_8 is not set
-# CONFIG_NLS_CODEPAGE_1250 is not set
-# CONFIG_NLS_CODEPAGE_1251 is not set
-# CONFIG_NLS_ASCII is not set
-CONFIG_NLS_ISO8859_1=y
-# CONFIG_NLS_ISO8859_2 is not set
-# CONFIG_NLS_ISO8859_3 is not set
-# CONFIG_NLS_ISO8859_4 is not set
-# CONFIG_NLS_ISO8859_5 is not set
-# CONFIG_NLS_ISO8859_6 is not set
-# CONFIG_NLS_ISO8859_7 is not set
-# CONFIG_NLS_ISO8859_9 is not set
-# CONFIG_NLS_ISO8859_13 is not set
-# CONFIG_NLS_ISO8859_14 is not set
-# CONFIG_NLS_ISO8859_15 is not set
-# CONFIG_NLS_KOI8_R is not set
-# CONFIG_NLS_KOI8_U is not set
-CONFIG_NLS_UTF8=y
-
-#
-# Kernel hacking
-#
-CONFIG_PRINTK_TIME=y
-CONFIG_DEFAULT_MESSAGE_LOGLEVEL=4
-CONFIG_ENABLE_WARN_DEPRECATED=y
-CONFIG_ENABLE_MUST_CHECK=y
-CONFIG_FRAME_WARN=1024
-CONFIG_MAGIC_SYSRQ=y
-# CONFIG_STRIP_ASM_SYMS is not set
-# CONFIG_UNUSED_SYMBOLS is not set
-CONFIG_DEBUG_FS=y
-# CONFIG_HEADERS_CHECK is not set
-# CONFIG_DEBUG_SECTION_MISMATCH is not set
-CONFIG_DEBUG_KERNEL=y
-# CONFIG_DEBUG_SHIRQ is not set
-# CONFIG_LOCKUP_DETECTOR is not set
-# CONFIG_HARDLOCKUP_DETECTOR is not set
-CONFIG_DETECT_HUNG_TASK=y
-CONFIG_DEFAULT_HUNG_TASK_TIMEOUT=120
-# CONFIG_BOOTPARAM_HUNG_TASK_PANIC is not set
-CONFIG_BOOTPARAM_HUNG_TASK_PANIC_VALUE=0
-CONFIG_SCHED_DEBUG=y
-CONFIG_SCHEDSTATS=y
-CONFIG_TIMER_STATS=y
-# CONFIG_DEBUG_OBJECTS is not set
-# CONFIG_DEBUG_SLAB is not set
-# CONFIG_DEBUG_KMEMLEAK is not set
-# CONFIG_DEBUG_RT_MUTEXES is not set
-# CONFIG_RT_MUTEX_TESTER is not set
-# CONFIG_DEBUG_SPINLOCK is not set
-# CONFIG_DEBUG_MUTEXES is not set
-# CONFIG_DEBUG_LOCK_ALLOC is not set
-# CONFIG_PROVE_LOCKING is not set
-# CONFIG_SPARSE_RCU_POINTER is not set
-# CONFIG_LOCK_STAT is not set
-# CONFIG_DEBUG_ATOMIC_SLEEP is not set
-# CONFIG_DEBUG_LOCKING_API_SELFTESTS is not set
-CONFIG_STACKTRACE=y
-# CONFIG_DEBUG_STACK_USAGE is not set
-# CONFIG_DEBUG_KOBJECT is not set
-# CONFIG_DEBUG_BUGVERBOSE is not set
-# CONFIG_DEBUG_INFO is not set
-# CONFIG_DEBUG_VM is not set
-# CONFIG_DEBUG_WRITECOUNT is not set
-# CONFIG_DEBUG_MEMORY_INIT is not set
-# CONFIG_DEBUG_LIST is not set
-# CONFIG_TEST_LIST_SORT is not set
-# CONFIG_DEBUG_SG is not set
-# CONFIG_DEBUG_NOTIFIERS is not set
-# CONFIG_DEBUG_CREDENTIALS is not set
-# CONFIG_BOOT_PRINTK_DELAY is not set
-# CONFIG_RCU_TORTURE_TEST is not set
-# CONFIG_BACKTRACE_SELF_TEST is not set
-# CONFIG_DEBUG_BLOCK_EXT_DEVT is not set
-# CONFIG_DEBUG_FORCE_WEAK_PER_CPU is not set
-# CONFIG_LKDTM is not set
-# CONFIG_FAULT_INJECTION is not set
-# CONFIG_LATENCYTOP is not set
-# CONFIG_SYSCTL_SYSCALL_CHECK is not set
-# CONFIG_DEBUG_PAGEALLOC is not set
-CONFIG_NOP_TRACER=y
-CONFIG_HAVE_FUNCTION_TRACER=y
-CONFIG_HAVE_DYNAMIC_FTRACE=y
-CONFIG_HAVE_FTRACE_MCOUNT_RECORD=y
-CONFIG_HAVE_C_RECORDMCOUNT=y
-CONFIG_RING_BUFFER=y
-CONFIG_EVENT_TRACING=y
-CONFIG_EVENT_POWER_TRACING_DEPRECATED=y
-CONFIG_CONTEXT_SWITCH_TRACER=y
-CONFIG_RING_BUFFER_ALLOW_SWAP=y
-CONFIG_TRACING=y
-CONFIG_GENERIC_TRACER=y
-CONFIG_TRACING_SUPPORT=y
-CONFIG_FTRACE=y
-# CONFIG_FUNCTION_TRACER is not set
-# CONFIG_IRQSOFF_TRACER is not set
-# CONFIG_SCHED_TRACER is not set
-CONFIG_BRANCH_PROFILE_NONE=y
-# CONFIG_PROFILE_ANNOTATED_BRANCHES is not set
-# CONFIG_PROFILE_ALL_BRANCHES is not set
-# CONFIG_STACK_TRACER is not set
-CONFIG_BLK_DEV_IO_TRACE=y
-# CONFIG_FTRACE_STARTUP_TEST is not set
-# CONFIG_RING_BUFFER_BENCHMARK is not set
-# CONFIG_DYNAMIC_DEBUG is not set
-# CONFIG_DMA_API_DEBUG is not set
-# CONFIG_ATOMIC64_SELFTEST is not set
-# CONFIG_ASYNC_RAID6_TEST is not set
-# CONFIG_SAMPLES is not set
-CONFIG_HAVE_ARCH_KGDB=y
-# CONFIG_KGDB is not set
-# CONFIG_TEST_KSTRTOX is not set
-# CONFIG_STRICT_DEVMEM is not set
-CONFIG_ARM_UNWIND=y
-# CONFIG_DEBUG_USER is not set
-CONFIG_DEBUG_LL=y
-CONFIG_DEBUG_LL_UART_NONE=y
-# CONFIG_DEBUG_ICEDCC is not set
-CONFIG_EARLY_PRINTK=y
-CONFIG_DEBUG_JTAG_ENABLE=y
-
-#
-# Security options
-#
-CONFIG_KEYS=y
-# CONFIG_ENCRYPTED_KEYS is not set
-# CONFIG_KEYS_DEBUG_PROC_KEYS is not set
-# CONFIG_SECURITY_DMESG_RESTRICT is not set
-CONFIG_SECURITY=y
-CONFIG_SECURITYFS=y
-# CONFIG_SECURITY_NETWORK is not set
-# CONFIG_SECURITY_PATH is not set
-# CONFIG_SECURITY_TOMOYO is not set
-# CONFIG_SECURITY_APPARMOR is not set
-# CONFIG_IMA is not set
-# CONFIG_EVM is not set
-CONFIG_DEFAULT_SECURITY_DAC=y
-CONFIG_DEFAULT_SECURITY=""
-CONFIG_XOR_BLOCKS=m
-CONFIG_ASYNC_CORE=m
-CONFIG_ASYNC_MEMCPY=m
-CONFIG_ASYNC_XOR=m
-CONFIG_ASYNC_PQ=m
-CONFIG_ASYNC_RAID6_RECOV=m
-CONFIG_CRYPTO=y
-
-#
-# Crypto core or helper
-#
-CONFIG_CRYPTO_ALGAPI=y
-CONFIG_CRYPTO_ALGAPI2=y
-CONFIG_CRYPTO_AEAD=m
-CONFIG_CRYPTO_AEAD2=y
-CONFIG_CRYPTO_BLKCIPHER=m
-CONFIG_CRYPTO_BLKCIPHER2=y
-CONFIG_CRYPTO_HASH=y
-CONFIG_CRYPTO_HASH2=y
-CONFIG_CRYPTO_RNG2=y
-CONFIG_CRYPTO_PCOMP2=y
-CONFIG_CRYPTO_MANAGER=m
-CONFIG_CRYPTO_MANAGER2=y
-# CONFIG_CRYPTO_USER is not set
-CONFIG_CRYPTO_MANAGER_DISABLE_TESTS=y
-# CONFIG_CRYPTO_GF128MUL is not set
-# CONFIG_CRYPTO_NULL is not set
-CONFIG_CRYPTO_WORKQUEUE=y
-# CONFIG_CRYPTO_CRYPTD is not set
-CONFIG_CRYPTO_AUTHENC=m
-# CONFIG_CRYPTO_TEST is not set
-
-#
-# Authenticated Encryption with Associated Data
-#
-# CONFIG_CRYPTO_CCM is not set
-# CONFIG_CRYPTO_GCM is not set
-# CONFIG_CRYPTO_SEQIV is not set
-
-#
-# Block modes
-#
-CONFIG_CRYPTO_CBC=m
-# CONFIG_CRYPTO_CTR is not set
-# CONFIG_CRYPTO_CTS is not set
-CONFIG_CRYPTO_ECB=m
-# CONFIG_CRYPTO_LRW is not set
-# CONFIG_CRYPTO_PCBC is not set
-# CONFIG_CRYPTO_XTS is not set
-
-#
-# Hash modes
-#
-CONFIG_CRYPTO_HMAC=m
-# CONFIG_CRYPTO_XCBC is not set
-# CONFIG_CRYPTO_VMAC is not set
-
-#
-# Digest
-#
-CONFIG_CRYPTO_CRC32C=y
-# CONFIG_CRYPTO_GHASH is not set
-CONFIG_CRYPTO_MD4=m
-CONFIG_CRYPTO_MD5=m
-CONFIG_CRYPTO_MICHAEL_MIC=y
-# CONFIG_CRYPTO_RMD128 is not set
-# CONFIG_CRYPTO_RMD160 is not set
-# CONFIG_CRYPTO_RMD256 is not set
-# CONFIG_CRYPTO_RMD320 is not set
-CONFIG_CRYPTO_SHA1=m
-# CONFIG_CRYPTO_SHA256 is not set
-# CONFIG_CRYPTO_SHA512 is not set
-# CONFIG_CRYPTO_TGR192 is not set
-# CONFIG_CRYPTO_WP512 is not set
-
-#
-# Ciphers
-#
-CONFIG_CRYPTO_AES=y
-# CONFIG_CRYPTO_ANUBIS is not set
-CONFIG_CRYPTO_ARC4=y
-# CONFIG_CRYPTO_BLOWFISH is not set
-# CONFIG_CRYPTO_CAMELLIA is not set
-# CONFIG_CRYPTO_CAST5 is not set
-# CONFIG_CRYPTO_CAST6 is not set
-CONFIG_CRYPTO_DES=m
-# CONFIG_CRYPTO_FCRYPT is not set
-# CONFIG_CRYPTO_KHAZAD is not set
-# CONFIG_CRYPTO_SALSA20 is not set
-# CONFIG_CRYPTO_SEED is not set
-# CONFIG_CRYPTO_SERPENT is not set
-# CONFIG_CRYPTO_TEA is not set
-# CONFIG_CRYPTO_TWOFISH is not set
-
-#
-# Compression
-#
-CONFIG_CRYPTO_DEFLATE=y
-# CONFIG_CRYPTO_ZLIB is not set
-CONFIG_CRYPTO_LZO=y
-
-#
-# Random Number Generation
-#
-# CONFIG_CRYPTO_ANSI_CPRNG is not set
-# CONFIG_CRYPTO_USER_API_HASH is not set
-# CONFIG_CRYPTO_USER_API_SKCIPHER is not set
-CONFIG_CRYPTO_HW=y
-# CONFIG_CRYPTO_DEV_OMAP_SHAM is not set
-# CONFIG_CRYPTO_DEV_OMAP_AES is not set
-CONFIG_BINARY_PRINTF=y
-
-#
-# Library routines
-#
-CONFIG_RAID6_PQ=m
-CONFIG_BITREVERSE=y
-CONFIG_CRC_CCITT=y
-CONFIG_CRC16=y
-CONFIG_CRC_T10DIF=y
-CONFIG_CRC_ITU_T=y
-CONFIG_CRC32=y
-CONFIG_CRC7=y
-CONFIG_LIBCRC32C=y
-# CONFIG_CRC8 is not set
-CONFIG_AUDIT_GENERIC=y
-CONFIG_ZLIB_INFLATE=y
-CONFIG_ZLIB_DEFLATE=y
-CONFIG_LZO_COMPRESS=y
-CONFIG_LZO_DECOMPRESS=y
-CONFIG_XZ_DEC=y
-CONFIG_XZ_DEC_X86=y
-CONFIG_XZ_DEC_POWERPC=y
-CONFIG_XZ_DEC_IA64=y
-CONFIG_XZ_DEC_ARM=y
-CONFIG_XZ_DEC_ARMTHUMB=y
-CONFIG_XZ_DEC_SPARC=y
-CONFIG_XZ_DEC_BCJ=y
-# CONFIG_XZ_DEC_TEST is not set
-CONFIG_DECOMPRESS_GZIP=y
-CONFIG_DECOMPRESS_BZIP2=y
-CONFIG_DECOMPRESS_LZMA=y
-CONFIG_DECOMPRESS_XZ=y
-CONFIG_DECOMPRESS_LZO=y
-CONFIG_GENERIC_ALLOCATOR=y
-CONFIG_HAS_IOMEM=y
-CONFIG_HAS_IOPORT=y
-CONFIG_HAS_DMA=y
-CONFIG_NLATTR=y
-CONFIG_AVERAGE=y
-# CONFIG_CORDIC is not set
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/logo_linux_clut224.ppm b/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/logo_linux_clut224.ppm
deleted file mode 100644
index 404cc6c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/beaglebone/logo_linux_clut224.ppm
+++ /dev/null
@@ -1,7053 +0,0 @@
-P3
-597 94
-255
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 255 255 255 254 254 255 254 250 255 254 250 255 255 254 255 255 255 253 254 255 251 
-255 254 255 255 254 255 254 251 249 254 252 250 254 255 251 254 252 250 254 254 254 255 253 254 
-254 255 251 224 220 212 187 189 188 187 189 188 187 189 188 187 189 188 187 189 188 187 189 188 
-253 252 247 253 253 255 254 255 251 255 255 255 253 253 255 254 255 251 249 252 246 255 255 253 
-253 255 254 255 254 255 254 252 251 253 252 247 253 255 254 253 255 254 251 251 251 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 254 254 254 254 255 255 254 255 255 255 255 253 254 254 253 254 254 253 255 255 253 
-253 255 254 187 189 188 113 113 120 97 100 105 53 60 64 97 100 105 113 113 120 172 178 183 
-255 255 255 253 252 247 255 254 255 255 255 255 253 253 253 254 254 254 255 255 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 
-254 251 249 254 255 255 249 254 246 254 255 255 172 178 183 140 141 138 110 110 107 59 64 62 
-81 77 81 104 112 110 178 172 162 241 240 247 254 255 251 253 255 254 248 251 253 254 251 249 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 254 254 254 255 255 255 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 
-253 255 254 230 230 230 178 172 162 110 110 107 88 95 83 60 64 65 104 112 110 125 131 132 
-202 204 206 255 255 255 254 255 251 255 253 254 254 250 255 248 254 252 255 255 255 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 252 247 254 255 251 249 254 246 254 255 251 254 255 251 254 254 253 254 254 254 254 251 252 
-254 255 251 253 252 247 255 255 253 253 253 255 219 227 224 145 151 154 97 100 105 48 49 51 
-0 1 1 4 2 1 0 1 1 4 1 5 0 3 1 4 1 5 4 1 5 4 2 1 
-0 3 1 21 19 24 59 60 62 104 112 110 172 178 183 253 253 255 255 255 255 254 255 251 
-254 251 252 253 252 247 249 252 251 253 253 255 255 255 253 251 251 251 253 253 255 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 254 255 255 255 255 253 255 255 253 254 255 255 202 204 206 
-71 81 83 57 60 56 59 59 56 59 64 62 54 64 59 56 64 62 56 64 62 54 67 66 
-81 77 81 202 204 206 251 251 251 252 252 252 253 253 253 255 255 253 254 252 251 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-254 255 251 254 255 255 224 220 212 88 95 83 62 65 65 56 64 62 53 63 60 58 65 69 
-58 67 65 53 60 64 57 60 56 71 72 69 187 189 188 252 252 252 254 255 251 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 252 252 252 255 255 255 253 253 253 254 254 254 254 255 255 249 252 251 
-156 160 157 60 60 63 62 61 67 58 59 68 57 60 56 53 64 53 58 62 65 58 62 65 
-58 59 68 110 110 107 242 238 229 254 255 255 253 255 254 251 251 251 254 251 252 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 255 255 255 254 255 255 250 250 247 249 252 246 254 255 251 254 255 251 254 254 254 
-254 255 255 219 227 224 110 110 107 21 19 24 0 0 0 0 0 0 0 3 1 0 3 1 
-6 9 5 4 1 5 4 2 1 4 1 5 0 3 1 48 49 51 97 100 105 21 19 24 
-4 1 5 0 1 1 0 0 0 0 3 1 0 3 1 0 0 0 81 77 81 178 172 162 
-255 254 255 251 251 251 253 252 247 253 253 253 254 250 255 255 253 254 254 255 251 249 252 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 254 255 255 187 189 188 58 64 64 
-58 65 69 57 58 61 62 65 65 58 62 65 58 62 63 62 66 62 62 65 65 58 62 65 
-58 65 69 57 63 63 187 189 188 254 255 255 255 254 255 254 255 251 254 255 251 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 
-249 254 254 224 220 212 71 72 69 58 62 63 58 65 69 58 64 64 59 64 62 62 61 67 
-59 59 56 62 61 67 58 64 64 56 66 64 57 58 61 172 178 183 254 255 251 250 252 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 252 252 252 254 254 254 252 252 252 254 255 255 140 141 138 
-60 61 69 62 61 67 58 66 61 53 63 60 56 66 64 54 67 66 62 61 67 59 60 62 
-51 61 71 59 60 64 97 100 105 241 240 247 248 254 252 255 253 254 255 255 253 248 254 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 253 254 251 252 254 251 254 253 253 255 255 255 253 254 252 251 255 255 253 178 172 162 
-62 70 69 0 0 0 4 2 1 0 1 1 0 1 1 71 72 69 109 102 83 142 120 69 
-148 133 63 165 143 59 169 141 58 166 134 56 169 138 59 182 158 106 254 252 244 249 254 254 
-168 136 64 142 120 69 109 102 83 102 79 82 0 1 1 0 3 1 0 3 1 4 2 1 
-21 19 24 125 131 132 241 240 247 255 254 255 254 255 251 254 252 244 253 252 247 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 255 255 255 255 254 252 250 254 254 253 254 255 255 230 230 230 68 69 75 60 64 65 
-58 62 65 71 68 65 94 90 61 113 104 59 147 124 59 128 113 57 97 78 60 62 66 62 
-58 62 65 58 62 65 62 70 69 230 230 230 253 253 255 254 255 251 253 252 247 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 254 
-241 240 247 81 77 81 59 64 62 58 65 69 59 59 56 97 78 60 128 113 57 147 124 59 
-128 99 63 101 91 62 71 68 65 54 64 59 54 67 66 60 64 65 202 206 211 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 253 253 253 252 252 252 255 255 255 254 255 255 160 163 161 57 63 61 
-58 62 63 57 60 56 62 70 69 142 101 66 174 105 47 185 105 60 155 104 59 85 80 60 
-62 66 56 54 67 66 59 64 62 110 110 107 249 254 246 254 250 255 254 251 249 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-249 254 254 248 254 252 255 255 253 255 255 253 250 250 247 172 178 183 21 19 24 0 0 0 
-0 1 1 4 1 5 21 19 24 109 102 83 148 133 63 164 144 50 166 144 56 169 141 58 
-169 138 59 173 138 52 169 144 61 168 136 64 173 142 59 169 141 58 178 172 162 250 252 254 
-169 144 61 166 144 56 169 141 58 173 145 52 165 143 59 142 120 69 94 90 61 4 1 5 
-0 3 1 4 2 1 21 19 24 172 178 183 249 254 254 253 255 254 250 252 254 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 252 252 252 255 255 253 255 255 253 254 255 255 125 131 132 60 64 65 57 63 63 
-62 66 62 128 113 57 161 125 43 162 125 53 156 125 56 150 128 52 158 134 59 142 101 66 
-71 65 56 58 65 69 54 64 59 125 131 132 255 254 255 253 252 247 254 255 255 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 
-160 163 161 57 63 63 51 61 71 62 66 62 128 113 57 148 133 63 161 124 50 161 124 50 
-155 128 52 155 126 57 147 124 59 72 76 65 53 64 53 58 65 69 81 77 81 254 250 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 241 240 247 68 69 75 60 64 65 
-53 67 71 112 79 60 200 101 40 210 105 40 213 100 46 212 104 43 211 99 45 208 103 45 
-128 93 57 59 64 62 58 62 63 62 65 65 172 178 183 255 255 255 255 255 255 255 253 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-249 252 254 254 255 255 254 255 251 202 204 206 62 70 69 4 1 5 0 1 1 0 3 1 
-62 66 56 137 137 94 158 134 59 173 142 59 166 134 56 169 144 61 169 141 58 169 141 58 
-173 145 52 169 138 59 165 143 59 166 144 56 173 138 52 173 142 59 169 144 61 242 238 229 
-214 206 175 165 143 59 173 142 59 169 144 61 169 144 61 168 131 61 169 141 58 158 134 59 
-109 102 83 4 2 1 4 1 5 0 0 0 88 95 83 241 240 247 255 255 253 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 255 255 255 253 255 255 253 255 255 255 241 240 247 57 63 63 59 64 62 59 59 56 
-128 99 63 157 124 59 161 124 50 158 127 55 152 124 51 154 129 46 157 126 52 158 124 54 
-113 104 59 66 60 61 56 64 62 58 64 64 241 240 247 254 255 251 253 253 255 254 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 251 251 251 
-81 77 81 54 64 59 58 66 61 110 92 61 152 127 56 157 124 59 157 124 59 155 127 54 
-152 124 51 161 124 50 156 124 53 142 120 69 69 60 69 54 64 59 58 68 63 224 220 212 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 172 178 183 60 64 65 57 63 61 
-62 66 62 198 102 49 213 105 50 213 100 46 213 105 50 208 103 45 217 98 38 213 100 46 
-210 105 51 112 79 60 56 64 62 53 63 60 125 131 132 253 255 254 253 255 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 252 250 254 255 251 125 131 132 0 0 0 4 1 5 0 1 1 21 19 24 109 102 83 
-169 138 59 169 138 59 169 144 61 169 138 59 169 138 59 173 142 59 169 141 58 166 144 56 
-173 142 59 169 141 58 165 143 59 165 143 59 166 144 56 169 141 58 169 144 61 182 158 106 
-255 253 254 182 158 106 166 134 56 169 144 61 173 142 59 173 138 52 173 145 52 165 143 59 
-166 144 56 148 133 63 101 91 62 4 1 5 4 2 1 48 49 51 219 227 224 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 254 252 251 255 255 253 255 255 255 187 189 188 58 64 64 59 59 56 72 73 56 
-155 127 54 152 124 51 162 125 53 152 124 51 158 127 55 156 124 53 156 124 53 158 132 49 
-148 133 63 71 65 56 56 66 64 57 58 61 202 204 206 254 255 251 250 252 254 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 219 227 224 
-60 61 69 58 67 65 59 59 56 147 124 59 161 125 43 157 126 52 150 128 52 155 126 57 
-157 124 59 158 124 56 166 129 59 152 124 51 85 80 60 59 64 62 56 66 64 156 160 157 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 252 252 252 251 251 251 255 255 255 255 255 255 125 131 132 58 62 63 62 65 65 
-112 79 60 213 105 46 208 103 45 207 105 48 209 99 39 210 105 40 217 104 40 210 102 46 
-216 99 44 185 105 60 56 64 62 54 64 59 58 65 69 253 255 254 249 254 254 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-202 206 211 48 49 51 0 3 1 0 3 1 0 0 0 109 102 83 148 133 63 173 138 52 
-169 141 58 169 141 58 173 142 59 169 141 58 169 141 58 169 141 58 169 138 59 173 142 59 
-166 144 56 169 138 59 173 138 52 169 141 58 168 136 64 173 138 52 168 136 64 166 144 56 
-224 220 212 242 238 229 165 143 59 173 145 52 168 136 64 166 144 56 165 143 59 169 138 59 
-169 138 59 166 144 56 165 143 59 142 120 69 21 19 24 0 1 1 21 19 24 202 204 206 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 255 254 255 255 253 255 255 253 254 255 255 152 161 158 60 64 65 59 59 56 88 95 83 
-155 127 54 159 126 56 156 124 53 155 128 52 155 127 54 157 124 59 158 124 54 157 126 52 
-152 124 44 101 91 62 57 63 63 59 64 62 154 157 157 254 255 251 254 255 255 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 187 189 188 
-59 64 62 53 63 60 81 77 81 155 128 52 162 124 55 157 127 54 152 124 51 162 125 53 
-158 126 53 158 127 55 154 129 46 150 126 55 110 92 61 59 64 62 58 62 65 125 131 132 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 254 255 255 254 254 254 255 255 255 254 254 254 110 110 107 58 62 63 57 63 63 
-155 104 59 211 104 39 210 99 44 207 105 48 217 104 40 207 99 38 207 105 48 210 105 51 
-209 105 45 211 99 45 71 68 65 59 60 62 53 60 64 219 227 224 254 255 251 254 252 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 
-254 255 251 254 255 255 254 255 251 254 252 250 254 255 251 254 255 251 254 255 251 172 178 183 
-6 9 5 0 0 0 4 1 5 4 2 1 137 137 94 165 143 59 169 141 58 169 141 58 
-168 136 64 165 143 59 169 141 58 169 141 58 169 141 58 169 141 58 166 144 56 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-182 158 106 254 255 255 178 172 162 166 144 56 166 144 56 173 138 52 166 144 56 169 138 59 
-169 141 58 165 143 59 169 138 59 173 142 59 158 134 59 85 80 60 4 1 5 6 9 5 
-202 206 211 252 252 252 255 255 255 249 254 246 253 255 254 254 255 251 251 251 251 254 252 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 57 58 61 101 91 62 158 124 54 158 127 55 158 127 55 156 126 54 158 125 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-198 102 49 198 102 49 210 102 46 212 101 45 211 99 45 210 102 46 210 102 46 208 103 45 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 
-250 252 254 254 255 251 250 252 246 255 254 255 219 227 224 125 131 132 21 19 24 0 3 1 
-0 0 0 4 1 5 0 1 1 4 2 1 48 49 51 109 102 83 164 144 50 173 142 59 
-173 145 52 173 142 59 166 144 56 169 138 59 169 141 58 169 141 58 169 138 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 144 56 214 206 175 253 252 247 169 144 61 173 142 59 169 138 59 166 144 56 169 141 58 
-169 138 59 169 141 58 169 141 58 165 143 59 165 143 59 166 144 56 109 102 83 0 1 1 
-21 19 24 230 230 230 250 252 246 255 255 253 253 253 255 253 253 255 254 255 251 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 62 63 101 91 62 158 124 56 156 126 54 158 127 55 156 126 54 159 126 56 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-207 105 48 207 105 48 211 102 45 212 104 43 211 99 45 211 102 45 211 102 45 211 102 45 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 252 252 252 252 252 252 
-252 252 252 254 252 244 219 227 224 97 100 105 0 3 1 4 1 5 4 2 1 4 1 5 
-48 49 51 81 77 81 48 49 51 4 1 5 0 3 1 0 0 0 62 66 56 142 120 69 
-166 134 56 173 142 59 173 142 59 173 138 52 168 136 64 169 141 58 173 142 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 144 61 253 255 254 214 206 175 169 138 59 169 144 61 166 134 56 166 144 56 
-173 142 59 169 138 59 166 144 56 165 143 59 173 142 59 173 138 52 164 144 50 109 102 83 
-4 1 5 48 49 51 241 240 247 255 255 253 252 252 252 254 255 255 255 255 253 249 252 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 62 63 101 91 62 159 126 56 156 126 54 158 126 53 156 126 54 159 126 56 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-210 102 46 211 102 45 212 104 43 210 99 44 211 99 45 211 102 45 212 104 43 212 104 43 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 253 253 253 253 253 253 252 252 252 255 255 255 
-255 254 255 110 110 107 0 0 0 4 1 5 0 0 0 62 66 62 128 100 96 159 134 56 
-173 138 52 169 144 61 164 144 50 166 134 56 142 120 69 62 61 67 4 1 5 0 3 1 
-109 102 83 165 143 59 173 142 59 169 138 59 166 144 56 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-173 138 52 169 141 58 214 206 175 255 255 253 182 158 106 169 141 58 169 141 58 169 144 61 
-166 134 56 169 141 58 173 145 52 169 138 59 173 142 59 173 142 59 169 141 58 165 143 59 
-94 90 61 0 1 1 97 100 105 253 253 255 255 255 253 255 254 255 249 254 246 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 62 63 101 91 62 159 126 56 156 126 54 158 126 53 156 126 54 159 126 56 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-212 101 45 211 99 45 210 99 44 212 101 45 211 102 45 211 102 45 211 102 45 209 99 39 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 230 230 230 
-48 49 51 4 1 5 4 2 1 4 1 5 109 102 83 165 143 59 164 144 50 165 143 59 
-169 144 61 168 136 64 173 142 59 166 144 56 169 141 58 169 144 61 109 102 83 4 2 1 
-0 0 0 109 102 83 165 143 59 173 142 59 169 141 58 169 144 61 164 144 50 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-168 136 64 169 141 58 169 144 61 242 238 229 242 238 229 168 136 64 169 144 61 166 134 56 
-169 144 61 169 144 61 169 141 58 173 145 52 169 138 59 165 143 59 169 144 61 173 138 52 
-168 136 64 71 65 56 0 3 1 172 178 183 254 251 252 253 252 247 254 255 251 248 251 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 62 63 101 91 62 158 124 56 156 126 54 158 126 53 156 126 54 158 125 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-212 101 45 211 99 45 212 101 45 210 102 46 210 102 46 210 102 46 211 102 45 212 104 43 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 62 65 65 
-0 0 0 0 1 1 0 0 0 142 120 69 169 144 61 173 138 52 169 144 61 168 136 64 
-173 145 52 169 141 58 169 138 59 169 138 59 173 138 52 169 138 59 169 138 59 142 120 69 
-0 0 0 4 1 5 142 120 69 164 144 50 173 142 59 169 144 61 165 143 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 166 134 56 169 144 61 178 172 162 254 251 249 178 172 162 169 144 61 166 144 56 
-169 138 59 169 141 58 166 144 56 169 138 59 166 144 56 169 144 61 169 141 58 169 141 58 
-173 142 59 148 133 63 0 3 1 21 19 24 242 238 229 254 252 244 254 254 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 62 63 101 91 62 158 124 56 156 126 54 158 126 53 156 126 54 158 125 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-210 102 46 210 102 46 211 102 45 210 102 46 210 102 46 207 105 48 210 102 46 211 102 45 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 254 254 254 254 254 254 254 254 254 125 131 132 0 1 1 
-4 1 5 4 2 1 128 100 96 165 143 59 173 142 59 168 136 64 173 145 52 166 144 56 
-168 136 64 169 141 58 168 136 64 169 144 61 173 142 59 169 138 59 168 136 64 169 141 58 
-142 120 69 4 2 1 48 49 51 165 143 59 169 138 59 169 138 59 169 144 61 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 173 142 59 169 141 58 169 144 61 250 247 249 254 255 251 158 134 59 173 142 59 
-169 144 61 173 138 52 173 142 59 169 144 61 169 141 58 169 138 59 169 141 58 166 144 56 
-169 138 59 164 144 50 109 102 83 4 2 1 110 110 107 253 252 247 255 253 254 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 64 64 101 91 62 158 124 56 156 126 54 158 126 53 156 126 54 158 125 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-210 102 46 210 102 46 212 101 45 211 102 45 210 102 46 210 102 46 211 102 45 212 101 45 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 219 227 224 21 19 24 0 0 0 
-0 1 1 101 91 62 165 143 59 173 145 52 168 136 64 166 144 56 173 145 52 169 138 59 
-173 142 59 165 143 59 166 144 56 169 141 58 166 134 56 164 144 50 173 145 52 169 141 58 
-169 144 61 88 95 83 0 3 1 128 100 96 173 138 52 169 138 59 169 144 61 166 144 56 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 144 61 173 138 52 168 136 64 178 172 162 253 255 254 224 220 212 173 142 59 
-173 138 52 173 142 59 169 138 59 169 141 58 169 141 58 169 141 58 169 138 59 166 144 56 
-169 141 58 169 144 61 168 136 64 4 2 1 4 1 5 230 230 230 253 252 247 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 64 64 58 62 65 156 160 157 254 255 255 255 253 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 156 160 157 
-58 64 64 58 64 64 101 91 62 158 124 56 156 124 53 158 126 53 156 126 54 158 125 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-210 102 46 210 102 46 212 104 43 212 104 43 212 101 45 211 102 45 212 101 45 211 99 45 
-211 102 45 212 101 45 85 80 60 58 62 63 53 60 64 202 204 206 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 252 247 249 254 254 254 255 251 255 254 255 254 255 255 97 100 105 4 2 1 4 1 5 
-4 1 5 148 133 63 169 141 58 169 138 59 166 144 56 165 143 59 166 134 56 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 138 59 48 49 51 81 77 81 169 141 58 169 141 58 173 138 52 169 141 58 
-169 144 61 164 144 50 169 141 58 165 143 59 165 143 59 169 144 61 169 138 59 169 141 58 
-173 142 59 169 138 59 166 144 56 164 144 50 169 144 61 242 238 229 254 255 255 182 158 106 
-168 136 64 173 138 52 169 144 61 169 144 61 168 136 64 166 144 56 169 144 61 169 141 58 
-169 141 58 164 144 50 165 143 59 109 102 83 4 1 5 88 95 83 253 255 254 255 253 254 
-255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 62 65 58 62 65 152 161 158 253 253 253 254 252 251 254 255 255 
-255 255 255 252 252 252 254 254 254 255 255 255 253 255 254 254 255 255 253 255 254 253 255 254 
-254 254 254 255 255 255 252 252 252 254 254 254 252 252 252 255 255 255 254 255 255 253 253 253 
-254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 254 254 254 
-255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 253 253 255 254 254 255 
-254 254 253 255 255 253 255 255 255 252 252 252 254 254 254 255 255 255 251 251 251 255 255 253 
-252 252 252 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 254 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 253 253 253 253 255 254 253 255 254 249 254 254 
-255 255 253 255 255 253 254 254 253 252 252 252 253 253 253 255 255 255 255 255 255 253 253 255 
-255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 255 255 255 
-254 254 254 254 254 254 254 254 254 254 255 255 254 254 254 255 255 255 253 253 253 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-253 253 253 255 255 255 252 252 252 253 253 253 255 255 255 254 254 254 254 254 254 254 254 254 
-254 255 255 254 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 253 254 255 255 253 254 255 251 255 255 253 255 255 253 251 251 251 255 255 253 254 255 251 
-255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 254 254 254 
-253 255 254 254 255 255 255 255 255 252 252 252 255 255 255 253 253 253 253 253 253 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 
-255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-254 252 251 255 255 253 255 255 253 251 251 251 255 255 253 255 255 253 253 252 247 254 255 251 
-255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-209 105 45 210 102 46 85 80 60 58 62 63 57 63 63 202 204 206 254 254 254 253 255 254 
-254 252 250 255 255 253 255 255 255 253 255 254 250 252 254 254 255 255 253 253 253 255 255 255 
-253 253 253 254 255 255 253 253 255 250 252 254 254 255 255 255 255 255 254 252 251 255 255 253 
-255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 
-254 252 251 254 252 250 255 255 253 255 255 255 254 255 255 253 253 253 255 255 255 255 254 255 
-255 254 255 254 251 252 254 251 249 255 255 253 251 251 251 255 255 253 249 252 251 255 255 253 
-254 255 255 254 255 255 254 254 254 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 
-253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 251 251 251 255 255 255 252 252 252 252 252 252 255 255 255 255 255 255 
-253 253 253 255 255 255 253 253 255 253 253 253 255 255 253 255 255 253 252 252 252 253 255 254 
-254 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 253 255 254 254 255 255 
-255 255 255 253 253 253 253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 254 254 254 
-255 253 254 255 255 253 254 255 251 254 255 251 248 254 252 249 252 251 254 255 255 254 251 252 
-252 252 252 254 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 253 253 255 254 255 251 253 253 255 219 227 224 0 3 1 4 1 5 0 1 1 
-101 91 62 165 143 59 169 138 59 169 138 59 166 144 56 169 141 58 173 142 59 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 141 58 109 102 83 4 2 1 158 134 59 169 141 58 169 141 58 169 141 58 
-168 136 64 173 142 59 173 142 59 169 141 58 169 138 59 169 138 59 173 138 52 169 138 59 
-165 143 59 173 142 59 168 136 64 173 142 59 169 138 59 178 172 162 253 253 255 255 255 255 
-169 144 61 169 144 61 169 138 59 169 138 59 166 144 56 166 144 56 169 138 59 166 144 56 
-166 144 56 148 133 63 128 113 57 109 102 83 4 1 5 4 2 1 224 220 212 255 255 255 
-255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 101 91 62 58 65 69 58 62 65 152 161 158 255 255 255 255 255 253 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 255 255 253 255 255 253 251 251 251 
-255 255 253 251 251 251 255 255 253 255 255 253 254 254 253 255 255 255 253 253 253 252 252 252 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 252 252 252 255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 
-253 255 254 253 253 253 254 255 255 252 252 252 252 252 252 253 255 254 253 255 254 255 255 253 
-255 255 253 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 251 251 251 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 251 251 251 
-255 255 255 251 251 251 255 255 255 255 255 255 254 254 253 255 255 253 250 250 247 251 251 251 
-253 253 253 255 255 255 252 252 252 255 255 255 255 255 255 251 251 251 251 251 251 255 255 255 
-255 255 255 254 254 254 254 254 254 253 253 253 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 252 252 252 255 255 255 254 254 254 251 251 251 255 255 255 255 253 254 
-254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 255 255 255 251 251 251 253 253 253 255 255 255 255 255 255 
-252 252 252 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 252 252 252 253 253 253 
-253 255 254 253 253 253 252 252 252 253 255 254 254 255 255 253 253 255 253 253 255 253 253 253 
-255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 253 253 253 255 255 255 253 253 253 
-253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 253 253 253 255 255 255 
-253 253 253 254 254 254 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 252 252 252 252 252 252 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 
-252 252 252 253 253 253 255 255 255 255 255 255 254 254 254 253 253 253 255 255 255 253 253 253 
-254 254 254 253 253 253 253 255 254 254 255 255 253 253 255 253 253 255 253 255 254 253 255 254 
-254 254 254 253 253 253 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-209 105 45 210 99 44 85 80 60 58 64 64 53 60 64 202 204 206 255 255 255 253 255 254 
-254 255 255 254 255 255 253 253 253 253 255 254 254 255 255 253 255 254 255 255 253 252 252 252 
-255 255 253 251 251 251 255 255 253 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 
-251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 253 253 253 253 253 253 
-253 255 254 254 255 255 253 255 254 253 255 254 249 252 251 253 255 254 249 252 251 254 254 254 
-253 255 254 253 255 254 254 255 255 254 255 255 253 255 254 253 253 255 255 255 255 253 253 255 
-253 255 254 253 253 253 255 255 255 255 255 255 252 252 252 253 253 253 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 252 252 252 
-255 255 255 253 253 253 254 254 254 255 255 255 251 251 251 254 254 254 254 254 254 255 254 255 
-254 254 254 253 253 253 254 254 254 251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 252 252 252 255 254 255 254 251 254 255 254 255 251 251 251 255 254 255 255 254 255 
-253 253 253 254 254 254 254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 252 252 252 
-254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 
-251 251 251 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 252 252 252 
-255 255 255 255 253 254 255 254 255 255 254 255 253 253 255 255 255 255 254 254 255 255 253 254 
-254 255 255 254 254 254 255 255 255 255 255 255 253 253 253 254 254 254 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 251 251 251 255 255 255 254 255 251 88 95 83 0 3 1 0 3 1 4 2 1 
-168 136 64 164 144 50 173 142 59 173 142 59 169 141 58 169 141 58 166 144 56 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 141 58 142 120 69 0 0 0 142 120 69 173 138 52 173 142 59 169 141 58 
-169 138 59 173 138 52 173 138 52 169 141 58 169 138 59 173 142 59 164 144 50 169 144 61 
-164 144 50 173 142 59 169 138 59 169 141 58 173 142 59 169 144 61 250 247 249 249 254 254 
-241 240 247 165 143 59 173 138 52 173 145 52 166 144 56 169 141 58 173 142 59 158 134 59 
-109 102 83 68 69 75 4 1 5 0 3 1 0 0 0 4 1 5 97 100 105 253 255 254 
-255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 94 90 61 58 62 65 57 61 64 156 160 157 253 253 253 255 253 254 254 255 255 
-253 253 253 255 255 255 253 253 253 255 254 255 255 255 253 254 252 251 255 255 253 254 255 251 
-254 255 251 254 252 251 254 252 251 254 252 251 254 254 253 252 252 252 252 252 252 255 255 255 
-251 251 251 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 254 255 255 254 255 255 254 255 251 252 252 252 255 255 253 249 252 251 
-255 255 255 254 254 254 252 252 252 255 255 255 250 250 247 253 253 253 255 255 255 254 254 254 
-251 251 251 253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-253 253 253 254 254 254 252 252 252 255 254 255 254 252 250 255 255 253 254 255 251 254 255 251 
-252 252 252 255 255 255 253 253 253 252 252 252 255 255 255 255 255 255 255 255 255 254 254 254 
-254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 254 251 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 254 254 254 251 251 251 255 255 255 255 255 255 251 251 251 
-255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 
-253 253 253 255 255 253 255 255 253 253 255 254 250 252 254 255 255 255 254 254 255 255 255 255 
-253 253 253 255 255 255 252 252 252 253 253 253 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 253 253 253 254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 251 251 251 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 254 254 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 252 252 252 253 253 253 254 254 254 252 252 252 255 255 255 
-255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 254 254 254 252 252 252 
-254 254 254 255 255 255 255 255 255 255 255 255 250 252 254 254 255 255 253 253 255 249 254 254 
-255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 213 105 50 85 80 60 58 62 63 58 65 69 202 204 206 253 253 253 253 253 253 
-253 255 254 253 253 253 254 255 255 253 253 253 254 252 251 254 254 253 251 251 251 254 254 253 
-255 255 253 255 255 253 255 255 253 254 252 250 255 255 253 254 254 254 255 255 255 253 253 255 
-255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 251 251 251 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 251 251 251 251 251 251 255 255 255 254 254 254 255 255 255 
-248 254 253 249 254 254 254 255 255 254 255 255 249 254 254 253 255 254 255 255 253 251 251 251 
-252 252 252 252 252 252 254 254 254 254 254 254 255 254 255 254 251 252 255 255 255 254 254 254 
-255 255 255 253 253 253 253 253 253 253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 
-252 252 252 255 255 255 255 255 255 253 253 253 252 252 252 255 255 255 255 253 254 250 247 249 
-255 255 255 255 255 255 255 255 255 252 252 252 254 254 254 254 254 254 254 254 254 255 255 255 
-254 255 251 249 252 251 248 251 253 254 255 255 249 252 251 253 253 253 255 255 255 254 251 254 
-255 255 255 251 251 251 255 255 255 255 255 255 254 251 252 254 254 254 253 253 253 255 255 255 
-255 255 255 252 252 252 254 254 254 251 251 251 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 251 251 251 254 254 254 252 252 252 255 255 255 
-254 255 255 252 252 252 249 252 251 254 255 255 253 255 254 253 255 254 254 255 255 254 255 255 
-249 254 254 252 252 252 255 255 253 255 253 254 255 255 255 253 253 255 252 252 252 255 255 253 
-252 252 252 255 255 255 255 255 255 254 254 254 253 253 253 254 254 254 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 255 255 250 252 254 242 238 229 21 19 24 4 1 5 0 3 1 109 102 83 
-169 141 58 173 145 52 169 138 59 169 141 58 169 141 58 169 138 59 166 144 56 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 134 56 173 142 59 169 144 61 0 3 1 88 95 83 166 134 56 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 166 144 56 166 144 56 169 138 59 169 138 59 169 141 58 
-169 144 61 165 143 59 169 144 61 166 144 56 164 134 50 173 145 52 178 172 162 255 253 254 
-253 255 254 224 220 212 165 143 59 168 136 64 165 143 59 169 141 58 166 134 56 109 102 83 
-140 141 138 255 255 255 172 178 183 0 0 0 6 9 5 4 1 5 4 2 1 219 227 224 
-253 253 253 255 255 255 253 253 253 255 255 255 254 254 254 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 101 91 62 62 65 65 58 62 65 156 160 157 255 255 255 254 251 252 252 252 252 
-253 253 253 255 255 255 251 251 251 254 254 254 253 253 253 254 254 254 255 255 255 255 255 255 
-254 255 255 252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 252 251 
-255 255 255 253 253 253 254 254 254 255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 251 251 251 255 255 255 255 255 255 255 255 255 253 253 253 252 252 252 254 254 254 
-255 254 255 250 247 249 255 253 254 255 254 255 251 251 251 255 254 255 254 251 252 255 254 255 
-253 253 255 254 254 255 255 255 255 254 254 253 255 255 253 254 254 253 251 251 251 255 254 255 
-255 255 255 252 252 252 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 253 253 253 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 251 251 251 255 255 253 255 255 253 
-254 255 255 249 252 251 254 255 255 254 254 254 253 253 253 254 254 254 255 255 255 255 255 255 
-255 255 255 254 254 254 252 252 252 252 252 252 254 254 254 254 254 254 254 254 254 255 255 255 
-253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 253 253 253 254 254 254 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
-255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 
-255 254 255 255 255 255 254 254 254 255 255 255 251 251 251 254 254 254 254 254 254 252 252 252 
-255 255 253 251 251 251 253 252 247 254 255 251 255 255 253 255 255 253 250 250 247 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 252 252 252 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 252 252 252 255 255 255 254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 253 254 252 250 254 251 249 255 255 253 254 252 251 255 255 253 250 250 247 255 255 253 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 210 102 46 85 80 60 58 64 64 58 62 65 202 204 206 254 254 254 255 255 255 
-253 253 253 255 254 255 255 253 254 255 255 253 254 251 249 255 253 254 255 254 255 255 254 255 
-253 253 253 254 255 255 254 252 251 255 255 253 254 252 251 255 254 255 253 253 253 255 255 255 
-251 251 251 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
-255 255 255 255 254 255 254 251 252 255 254 255 255 255 255 253 253 253 251 251 251 255 255 253 
-254 252 251 255 255 253 254 252 251 254 252 251 254 252 250 254 254 253 254 255 251 253 252 247 
-255 255 255 253 253 253 255 255 255 254 254 254 251 251 251 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 253 253 253 
-254 254 254 254 254 254 254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 255 254 255 
-251 251 251 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 
-253 252 247 254 255 251 255 255 253 253 253 253 252 252 252 255 255 253 249 252 251 255 255 253 
-251 251 251 255 255 255 253 253 253 253 253 253 254 254 254 255 255 255 254 254 254 254 254 254 
-255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 
-255 255 255 252 252 252 255 255 255 254 254 254 254 254 254 254 254 254 254 255 255 253 253 253 
-248 254 252 255 255 253 254 254 253 255 255 253 255 255 255 253 255 254 255 255 253 253 252 247 
-255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 250 252 254 253 255 254 125 131 132 4 1 5 0 3 1 0 1 1 148 133 63 
-173 142 59 169 141 58 165 143 59 166 144 56 169 141 58 169 144 61 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 166 134 56 173 142 59 88 95 83 0 1 1 168 136 64 169 141 58 169 138 59 
-173 145 52 168 136 64 142 120 69 88 95 83 21 19 24 0 0 0 6 9 5 21 19 24 
-109 102 83 142 120 69 159 134 56 169 144 61 169 144 61 173 142 59 173 142 59 241 240 247 
-255 253 254 254 255 255 224 220 212 169 144 61 169 141 58 169 141 58 169 144 61 21 19 24 
-113 113 120 241 240 247 140 141 138 0 0 0 0 0 0 4 2 1 4 2 1 97 100 105 
-255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 101 91 62 58 62 63 58 62 65 154 157 157 255 255 255 255 254 255 253 255 254 
-254 254 253 250 250 247 254 255 255 254 255 255 253 253 255 202 206 211 202 204 206 202 206 211 
-202 206 211 202 206 211 241 240 247 254 255 255 253 253 255 255 255 255 252 252 252 255 255 253 
-253 253 253 253 253 253 255 255 255 255 255 255 255 255 255 250 247 249 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 253 255 255 255 255 255 255 250 252 254 230 230 230 202 206 211 202 204 206 202 204 206 
-202 206 211 224 220 212 253 255 254 253 253 253 253 253 253 255 255 255 253 253 253 255 255 255 
-254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 253 253 253 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 
-254 254 253 255 255 255 252 252 252 254 255 255 241 240 247 202 206 211 202 206 211 202 204 206 
-202 204 206 230 230 230 253 253 255 254 255 255 250 252 254 255 255 255 252 252 252 253 253 253 
-253 255 254 252 252 252 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 254 255 255 
-255 255 255 255 255 255 254 255 255 253 253 253 253 255 254 255 255 255 255 255 255 251 251 251 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 252 252 252 
-255 254 255 255 255 255 254 254 254 254 255 255 253 255 254 253 255 254 254 255 255 254 254 254 
-202 204 206 202 206 211 202 204 206 202 204 206 219 227 224 251 251 251 255 255 253 254 255 251 
-254 255 255 253 253 253 253 253 253 254 254 254 254 254 254 255 255 255 255 255 255 253 255 254 
-255 255 255 255 255 255 254 254 254 252 252 252 254 254 254 255 255 255 252 252 252 254 255 255 
-255 255 255 253 253 253 254 254 254 254 254 254 253 253 253 255 255 255 255 255 255 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 
-253 253 253 255 255 255 254 254 254 255 255 255 253 255 254 254 255 255 254 255 255 230 230 230 
-202 204 206 202 204 206 202 206 211 202 206 211 224 220 212 254 254 253 255 255 253 250 250 247 
-252 252 252 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 210 102 46 84 69 58 58 62 63 56 66 64 202 204 206 255 255 255 253 253 253 
-255 255 253 254 252 251 254 252 251 255 255 253 255 255 255 241 240 247 202 204 206 202 204 206 
-202 206 211 202 204 206 219 227 224 252 252 252 253 255 254 255 255 255 254 254 254 251 251 251 
-255 255 255 255 255 255 255 255 255 251 251 251 254 254 254 255 255 255 252 252 252 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 252 252 252 252 252 252 255 255 255 
-254 251 249 254 252 251 255 253 254 255 254 255 253 253 255 253 253 255 202 204 206 202 204 206 
-202 204 206 202 204 206 202 204 206 241 240 247 254 255 255 252 252 252 253 252 247 254 255 251 
-252 252 252 254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 253 253 253 255 255 255 251 251 251 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 253 253 253 253 253 253 253 253 253 255 255 255 251 251 251 254 254 254 
-254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 254 254 254 
-255 255 253 255 254 255 213 212 223 202 206 211 202 204 206 202 206 211 202 204 206 219 227 224 
-253 255 254 253 255 254 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 
-253 253 253 251 251 251 255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 251 251 251 253 253 253 
-251 251 251 255 255 255 252 252 252 253 253 253 255 255 255 254 254 254 252 252 252 255 255 255 
-241 240 247 202 204 206 202 204 206 202 204 206 202 206 211 202 204 206 255 254 255 255 254 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 253 255 254 241 240 247 21 19 24 4 1 5 0 3 1 109 102 83 165 143 59 
-169 138 59 165 143 59 169 144 61 169 141 58 169 141 58 169 138 59 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 144 61 169 138 59 109 102 83 4 1 5 142 120 69 164 134 50 169 144 61 
-165 143 59 109 102 83 4 1 5 224 220 212 241 240 247 113 113 120 4 1 5 4 2 1 
-0 3 1 6 9 5 142 120 69 168 136 64 166 144 56 173 138 52 173 138 52 214 206 175 
-253 252 247 254 250 255 254 255 251 242 238 229 169 144 61 173 138 52 169 138 59 110 92 61 
-0 0 0 0 0 0 4 1 5 4 1 5 0 0 0 4 1 5 4 1 5 6 9 5 
-242 238 229 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 124 51 101 91 62 58 64 64 58 62 65 156 160 157 255 255 255 255 254 255 253 255 254 
-230 230 230 187 189 188 113 113 120 81 77 81 60 64 65 58 64 64 57 63 63 57 63 63 
-59 60 64 62 65 65 59 60 64 68 69 75 110 110 107 156 160 157 219 227 224 254 255 251 
-254 255 255 254 255 255 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 251 251 251 255 255 255 255 255 255 255 255 255 253 253 253 254 255 255 241 240 247 
-172 178 183 125 131 132 97 100 105 58 67 65 58 64 64 57 63 63 58 64 64 60 64 65 
-59 60 62 59 64 62 62 65 65 88 95 83 113 113 120 160 163 161 230 230 230 253 253 253 
-254 255 255 254 255 255 253 253 253 254 254 254 254 254 254 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 253 255 254 253 253 253 254 255 255 
-224 220 212 160 163 161 110 110 107 68 69 75 62 65 65 57 63 63 57 63 61 59 64 62 
-59 60 62 62 65 65 58 62 63 97 100 105 145 151 154 213 212 223 254 255 255 254 255 255 
-253 253 253 255 255 255 252 252 252 255 255 255 253 253 253 253 255 254 253 253 255 172 178 183 
-145 151 154 110 110 107 110 110 107 113 113 120 172 178 183 230 230 230 254 255 255 254 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 255 255 255 
-252 252 252 254 254 254 253 255 254 230 230 230 172 178 183 113 113 120 88 95 83 60 60 63 
-58 65 69 53 60 64 58 64 64 62 65 65 53 60 64 58 62 65 97 100 105 140 141 138 
-202 206 211 254 255 255 254 255 255 255 255 255 251 251 251 255 255 255 252 252 252 254 255 255 
-254 255 255 241 240 247 187 189 188 145 151 154 110 110 107 110 110 107 140 141 138 160 163 161 
-230 230 230 254 255 255 254 255 255 255 255 255 254 254 254 251 251 251 252 252 252 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 
-254 255 255 254 255 255 241 240 247 187 189 188 140 141 138 97 100 105 57 63 61 59 64 62 
-57 63 63 56 66 64 58 62 65 57 61 64 58 62 65 58 62 63 68 69 75 125 131 132 
-172 178 183 219 227 224 253 253 253 253 253 253 253 255 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 105 46 212 101 45 85 80 60 58 62 63 56 66 64 202 204 206 253 253 253 254 255 255 
-253 255 254 213 212 223 156 160 157 104 112 110 57 63 61 57 63 61 60 64 65 60 64 65 
-58 62 63 58 64 64 58 62 63 58 64 64 81 77 81 113 113 120 187 189 188 241 240 247 
-254 255 255 252 252 252 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 252 252 252 254 255 255 250 250 247 
-255 255 253 219 227 224 156 160 157 104 112 110 62 70 69 56 66 64 58 64 64 62 65 65 
-56 66 64 57 63 63 56 66 64 57 63 63 56 66 64 104 112 110 145 151 154 187 189 188 
-254 255 255 254 255 255 254 255 255 252 252 252 252 252 252 252 252 252 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 254 255 255 213 212 223 
-156 160 157 110 110 107 110 110 107 104 112 110 156 160 157 224 220 212 254 255 255 254 255 255 
-255 255 255 251 251 251 255 255 255 254 255 255 254 255 255 230 230 230 172 178 183 125 131 132 
-71 81 83 58 62 65 60 61 69 57 61 64 58 64 64 57 63 63 56 66 64 53 60 64 
-60 64 65 81 77 81 125 131 132 178 172 162 230 230 230 249 252 251 254 254 254 253 253 253 
-255 255 255 253 253 253 252 252 252 254 254 254 253 253 253 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 253 253 253 254 254 254 252 252 252 253 253 253 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 187 189 188 145 151 154 110 110 107 57 58 61 
-58 62 65 62 61 67 58 62 63 57 63 61 62 70 69 58 65 69 53 60 64 68 69 75 
-104 112 110 160 163 161 213 212 223 253 255 254 254 255 255 254 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 251 160 163 161 0 0 0 4 1 5 4 2 1 148 133 63 173 142 59 
-173 142 59 169 144 61 169 144 61 166 134 56 173 142 59 169 144 61 165 143 59 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 144 61 148 133 63 4 2 1 109 102 83 169 144 61 169 141 58 
-148 133 63 4 1 5 4 1 5 242 238 229 254 254 255 172 178 183 4 1 5 0 0 0 
-4 2 1 4 1 5 4 1 5 151 135 59 169 141 58 169 144 61 169 138 59 169 144 61 
-253 253 255 254 252 244 254 255 255 253 253 255 255 255 253 182 158 106 169 138 59 168 136 64 
-85 80 60 4 2 1 4 1 5 0 3 1 0 3 1 0 3 1 6 9 5 0 1 1 
-140 141 138 254 254 254 253 253 253 253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 127 54 101 91 62 60 64 65 53 60 64 156 160 157 252 252 252 202 206 211 113 113 120 
-57 63 61 59 64 62 58 62 63 62 65 65 57 58 61 59 64 62 57 63 61 62 66 56 
-59 64 62 59 59 56 59 64 62 58 64 64 60 64 65 57 58 61 58 62 63 97 100 105 
-172 178 183 254 255 255 254 255 255 253 253 253 253 253 253 253 253 253 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 253 253 253 254 255 255 253 255 254 187 189 188 113 113 120 58 64 64 
-60 64 65 58 64 64 53 63 60 56 64 62 60 64 65 57 60 56 58 66 61 59 59 56 
-62 66 56 57 60 56 57 58 61 53 63 60 60 64 65 58 64 64 62 65 65 97 100 105 
-172 178 183 253 253 253 254 255 255 253 253 253 255 255 255 253 253 253 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 250 247 249 254 255 255 253 255 254 187 189 188 97 100 105 
-60 64 65 58 62 63 58 64 64 58 62 63 57 63 61 59 64 62 57 63 61 59 59 56 
-59 64 62 57 58 61 59 64 62 60 64 65 57 58 61 58 62 63 81 77 81 172 178 183 
-254 255 255 251 251 251 252 252 252 255 255 255 254 254 254 187 189 188 71 81 83 57 63 63 
-58 62 63 62 65 65 58 62 63 58 62 63 60 64 65 58 62 63 125 131 132 241 240 247 
-252 252 252 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 202 204 206 125 131 132 58 62 63 57 63 61 62 65 65 57 58 61 60 64 65 
-57 63 61 57 63 61 57 58 61 57 63 61 60 64 65 58 62 65 58 62 65 60 64 65 
-57 63 61 81 77 81 172 178 183 254 254 254 255 255 255 252 252 252 255 255 255 254 255 255 
-172 178 183 68 69 75 58 62 63 58 62 63 58 64 64 57 58 61 58 62 63 58 62 63 
-58 62 63 145 151 154 253 253 255 254 255 255 255 255 255 255 255 255 255 255 255 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 251 251 251 
-202 206 211 125 131 132 60 64 65 58 62 63 58 62 63 57 63 61 62 65 65 57 63 63 
-57 63 61 57 60 56 57 63 61 62 65 65 57 63 61 57 63 63 58 62 65 57 61 64 
-57 58 61 57 58 61 88 95 83 172 178 183 241 240 247 254 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 212 101 45 84 69 58 62 65 65 53 60 64 202 206 211 254 255 255 172 178 183 
-88 95 83 58 64 64 53 63 60 62 70 69 57 63 63 59 64 62 59 59 56 59 59 56 
-66 60 61 59 59 56 62 66 62 60 64 65 57 63 63 57 63 63 62 65 65 57 58 61 
-113 113 120 202 204 206 252 252 252 255 255 255 253 253 253 255 255 255 254 254 254 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 252 252 252 255 255 255 255 255 255 254 255 255 241 240 247 156 160 157 
-88 95 83 57 60 56 57 63 63 56 64 62 56 66 64 59 64 62 57 60 56 59 60 62 
-59 59 56 62 66 62 57 63 61 58 64 64 53 60 64 58 62 65 60 64 65 57 61 64 
-62 70 69 140 141 138 213 212 223 253 255 254 255 255 255 252 252 252 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 252 252 252 255 255 255 254 254 254 213 212 223 104 112 110 58 62 63 
-57 58 61 62 65 65 58 62 63 58 62 63 58 64 64 60 64 65 104 112 110 230 230 230 
-251 251 251 255 255 255 254 255 255 213 212 223 125 131 132 60 64 65 57 58 61 57 58 61 
-54 67 66 58 65 69 57 63 61 59 64 62 62 66 62 57 60 56 57 60 56 62 65 65 
-58 62 63 62 65 65 57 58 61 57 58 61 62 65 65 104 112 110 202 206 211 253 253 253 
-251 251 251 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 251 251 251 
-254 255 255 224 220 212 125 131 132 68 69 75 58 64 64 62 65 65 58 62 63 62 65 65 
-57 63 63 57 63 61 59 59 56 62 66 56 57 60 56 56 64 62 53 60 64 58 65 69 
-62 65 65 57 58 61 62 65 65 88 95 83 156 160 157 241 240 247 254 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 255 254 252 244 21 19 24 4 1 5 0 3 1 109 102 83 169 141 58 169 138 59 
-173 145 52 166 144 56 169 138 59 173 142 59 173 142 59 166 144 56 169 144 61 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 164 144 50 169 144 61 169 141 58 21 19 24 62 65 65 169 138 59 169 141 58 
-109 102 83 4 2 1 0 3 1 71 72 69 125 131 132 0 0 0 0 0 0 0 0 0 
-0 1 1 4 1 5 0 0 0 109 102 83 169 144 61 173 138 52 165 143 59 173 142 59 
-224 220 212 254 252 250 249 252 254 254 254 254 254 254 255 249 254 246 242 238 229 182 158 106 
-169 144 61 109 102 83 88 95 83 81 77 81 109 102 83 128 100 96 109 102 83 4 2 1 
-21 19 24 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 126 53 101 91 62 60 64 65 58 62 65 125 131 132 110 110 107 59 60 62 58 64 64 
-60 64 65 57 63 63 58 64 64 57 63 61 59 64 62 71 68 65 72 76 65 72 76 65 
-72 76 65 71 72 69 57 60 56 57 63 61 57 63 63 58 62 63 62 65 65 57 58 61 
-59 64 62 81 77 81 187 189 188 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 254 254 254 187 189 188 88 95 83 58 62 63 62 65 65 58 62 63 
-60 60 63 62 65 65 57 58 61 59 64 62 62 66 62 72 76 65 72 76 65 72 76 65 
-71 72 69 62 70 65 57 63 61 58 65 69 53 60 64 60 64 65 57 63 63 59 64 62 
-59 64 62 81 77 81 172 178 183 255 255 255 251 251 251 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 255 255 172 178 183 81 77 81 59 64 62 57 63 61 
-58 62 65 58 62 65 57 63 63 59 64 62 57 63 61 71 72 69 72 76 65 72 76 65 
-71 72 69 62 65 65 57 63 61 58 64 64 60 64 65 58 62 63 60 64 65 59 64 62 
-97 100 105 219 227 224 255 255 255 254 254 254 125 131 132 58 64 64 57 63 61 58 64 64 
-58 64 64 60 64 65 57 63 63 58 64 64 57 63 63 58 64 64 58 64 64 97 100 105 
-241 240 247 251 251 251 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 
-252 252 252 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 202 204 206 
-110 110 107 62 65 65 58 64 64 57 63 63 57 63 63 58 64 64 57 63 63 58 62 65 
-71 68 65 72 76 65 72 76 65 71 72 69 71 72 69 59 60 62 59 64 62 59 64 62 
-60 64 65 57 63 63 58 64 64 97 100 105 213 212 223 255 255 255 255 255 255 125 131 132 
-58 62 63 58 64 64 58 64 64 57 63 63 57 63 63 58 64 64 57 63 63 58 64 64 
-60 64 65 58 62 63 97 100 105 241 240 247 254 254 254 254 254 254 254 254 253 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 202 206 211 110 110 107 
-58 62 63 58 64 64 58 62 63 60 64 65 57 63 63 60 64 65 53 63 60 56 66 64 
-72 76 65 85 80 60 72 76 65 71 72 69 71 68 65 57 63 61 59 64 62 58 64 64 
-58 64 64 60 64 65 58 62 63 57 58 61 71 72 69 154 157 157 241 240 247 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 212 101 45 85 80 60 57 58 61 58 65 69 140 141 138 81 77 81 59 64 62 
-58 62 65 58 62 65 57 61 64 58 62 65 60 60 63 59 59 56 71 72 69 85 80 60 
-85 80 60 85 80 60 71 68 65 57 63 61 58 64 64 56 66 64 57 63 61 58 64 64 
-57 63 61 59 64 62 110 110 107 230 230 230 254 254 254 255 255 255 254 254 254 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 251 251 251 241 240 247 156 160 157 71 72 69 59 64 62 
-57 61 64 62 70 69 57 61 64 57 63 63 60 64 65 57 60 56 71 72 69 81 77 81 
-97 78 60 84 69 58 81 77 81 62 66 56 57 60 56 60 64 65 57 63 63 60 64 65 
-60 64 65 57 58 61 58 62 63 110 110 107 213 212 223 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 213 212 223 68 69 75 58 64 64 58 64 64 
-58 64 64 57 63 63 57 63 63 58 64 64 58 64 64 57 63 63 57 58 61 71 81 83 
-219 227 224 252 252 252 145 151 154 59 64 62 57 63 61 58 64 64 60 64 65 60 64 65 
-59 64 62 59 59 56 71 68 65 84 69 58 85 80 60 85 80 60 84 69 58 71 65 56 
-58 62 65 57 63 63 58 64 64 60 64 65 57 63 63 58 62 63 59 60 62 110 110 107 
-219 227 224 253 253 253 254 254 254 254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 254 254 254 253 253 253 219 227 224 
-104 112 110 59 64 62 57 63 63 57 63 61 58 64 64 57 63 63 56 66 64 53 60 64 
-59 59 56 81 77 81 84 69 58 85 80 60 85 80 60 71 68 65 62 66 56 57 60 56 
-57 63 63 58 64 64 53 63 60 57 63 63 58 64 64 71 72 69 156 160 157 241 240 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 253 253 253 253 253 253 255 255 255 253 253 253 
-255 253 254 187 189 188 4 2 1 0 0 0 48 49 51 168 136 64 173 142 59 169 144 61 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-165 143 59 173 142 59 173 138 52 173 138 52 88 95 83 0 0 0 148 133 63 173 142 59 
-137 137 94 4 2 1 0 1 1 0 1 1 4 1 5 4 1 5 6 9 5 0 3 1 
-4 1 5 0 3 1 4 2 1 142 120 69 165 143 59 168 136 64 166 144 56 166 144 56 
-214 206 175 255 254 255 249 254 254 253 252 247 255 255 253 254 255 251 255 255 253 255 254 255 
-242 238 229 178 172 162 165 143 59 166 144 56 173 142 59 169 138 59 148 133 63 4 1 5 
-0 0 0 110 110 107 219 227 224 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 126 57 101 91 62 59 64 62 59 64 62 57 58 61 58 62 65 56 66 64 56 64 62 
-58 62 65 72 76 65 94 90 61 128 113 57 148 133 63 156 125 56 158 125 54 159 126 56 
-158 125 54 156 128 53 152 127 56 128 113 57 110 92 61 85 80 60 62 66 62 53 60 64 
-53 64 53 58 64 64 62 61 67 113 113 120 241 240 247 255 253 254 254 252 250 249 254 254 
-255 255 255 253 253 253 253 255 254 254 255 255 253 253 253 255 255 255 255 255 255 255 253 254 
-253 252 247 255 254 255 255 254 255 254 255 251 253 255 254 253 255 254 249 254 246 255 255 253 
-253 255 254 230 230 230 110 110 107 59 64 62 56 64 62 56 64 62 57 63 63 58 65 69 
-72 76 65 94 90 61 128 113 57 149 124 53 156 128 53 157 126 52 157 127 54 152 127 56 
-156 126 54 155 128 52 149 124 55 128 113 57 101 91 62 72 73 56 62 65 65 59 60 70 
-50 65 64 58 65 69 57 63 63 97 100 105 202 206 211 254 255 251 253 253 255 254 255 251 
-253 253 253 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 
-255 254 255 253 253 255 241 240 247 104 112 110 57 63 63 62 61 67 60 60 63 54 67 66 
-59 60 62 85 80 60 110 92 61 128 113 57 152 127 56 158 126 53 161 124 50 161 124 50 
-161 124 50 156 124 53 147 124 59 113 104 59 85 80 60 62 65 65 53 60 64 58 65 69 
-59 64 62 68 69 75 187 189 188 178 172 162 59 59 56 57 63 61 59 60 62 62 70 69 
-101 91 62 113 104 59 128 113 57 101 91 62 85 80 60 57 63 61 54 67 66 62 61 67 
-140 141 138 253 253 255 254 254 254 255 254 255 255 255 255 254 254 254 254 254 254 254 254 254 
-254 255 251 249 254 254 248 254 253 250 252 254 255 254 255 254 255 251 140 141 138 58 66 61 
-53 60 64 62 65 65 59 59 56 60 60 63 71 72 69 101 91 62 128 113 57 158 125 54 
-157 124 59 155 126 57 155 128 52 155 128 52 156 128 53 147 124 59 128 99 63 97 78 60 
-60 64 65 54 67 66 54 64 59 59 60 64 60 64 65 172 178 183 172 178 183 58 62 65 
-54 64 59 58 62 65 71 68 65 94 90 61 128 99 63 128 113 57 101 91 62 62 70 65 
-60 60 63 58 65 69 53 60 64 113 113 120 254 255 251 253 253 255 254 254 254 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 253 249 252 254 254 255 251 254 255 251 241 240 247 125 131 132 54 64 59 62 65 65 
-53 60 64 58 62 65 57 60 56 71 65 56 94 90 61 113 104 59 147 124 59 158 127 55 
-158 125 54 158 124 56 158 124 56 158 125 54 158 127 55 147 124 59 128 113 57 110 92 61 
-85 80 60 62 61 67 57 61 64 59 64 62 57 63 61 58 62 65 68 69 75 187 189 188 
-254 255 251 254 254 255 253 253 255 255 255 255 255 255 253 254 255 255 254 254 254 255 255 253 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 217 104 40 84 69 58 57 60 56 62 61 67 56 64 62 50 65 64 62 61 67 
-57 63 61 62 66 62 84 69 58 128 93 57 174 105 47 207 105 48 211 99 45 209 105 45 
-211 102 45 212 101 45 213 100 46 210 105 51 155 104 59 112 79 60 71 68 65 58 59 68 
-57 61 64 56 66 64 57 63 63 68 69 75 178 172 162 255 255 255 250 252 254 254 255 251 
-253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 253 253 253 255 253 254 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 253 253 253 
-252 252 252 254 255 255 255 255 253 187 189 188 71 81 83 58 62 65 57 60 70 60 64 65 
-56 64 62 66 60 61 97 78 60 128 93 57 174 105 47 210 99 44 213 103 41 207 105 38 
-210 105 51 210 102 46 212 101 45 210 102 46 185 105 60 142 101 66 112 79 60 71 68 65 
-58 65 69 53 60 64 60 64 65 66 60 61 62 66 56 145 151 154 241 240 247 254 251 249 
-253 255 254 254 255 251 253 255 254 254 255 255 254 254 253 254 254 253 253 253 255 248 254 252 
-248 254 252 255 255 253 249 254 246 230 230 230 81 77 81 53 60 64 62 66 56 57 60 56 
-112 79 60 142 101 66 155 104 59 128 93 57 97 78 60 53 63 60 54 67 66 58 65 69 
-71 81 83 97 100 105 57 60 56 60 60 63 58 65 69 54 67 66 84 69 58 128 93 57 
-174 105 47 198 102 49 219 98 50 211 99 45 208 103 45 210 99 51 213 100 46 210 105 40 
-210 102 46 174 105 47 112 79 60 71 72 69 59 60 62 57 60 56 58 66 61 57 63 61 
-62 61 67 156 160 157 253 252 247 253 255 254 253 253 255 253 255 254 254 255 251 255 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 
-253 252 247 255 255 255 249 252 254 253 252 247 254 255 251 241 240 247 145 151 154 53 64 53 
-53 63 60 57 63 61 57 63 61 53 60 64 62 61 67 97 78 60 155 104 59 174 105 47 
-213 100 46 211 102 45 212 104 43 209 99 39 207 105 38 210 105 51 198 102 49 174 105 47 
-128 93 57 97 78 60 59 64 62 57 61 64 58 62 65 58 62 65 57 63 63 68 69 75 
-172 178 183 249 254 254 255 255 255 254 251 249 253 252 247 253 255 254 254 255 255 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 
-255 255 255 81 77 81 0 0 0 0 0 0 109 102 83 165 143 59 166 134 56 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 144 56 169 138 59 169 141 58 173 142 59 109 102 83 0 3 1 128 99 63 173 142 59 
-166 144 56 81 77 81 4 1 5 0 3 1 0 1 1 0 0 0 4 1 5 4 2 1 
-0 1 1 4 1 5 71 68 65 158 134 59 173 142 59 173 142 59 173 145 52 169 141 58 
-178 172 162 254 251 252 253 255 254 254 255 251 254 251 252 254 254 253 255 255 253 253 253 255 
-248 254 253 255 254 255 254 251 254 242 238 229 178 172 162 182 158 106 137 137 94 71 68 65 
-0 1 1 0 0 0 0 0 0 60 60 63 172 178 183 253 253 253 252 252 252 255 255 255 
-252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 128 53 101 91 62 62 61 67 58 65 69 56 64 62 58 67 65 59 60 62 97 78 60 
-128 113 57 157 124 59 158 134 59 157 126 52 161 124 50 157 126 52 158 127 55 152 124 51 
-158 125 54 159 126 56 159 126 56 158 124 56 155 128 52 151 135 59 142 120 69 101 91 62 
-71 68 65 58 62 65 53 60 64 57 63 61 97 100 105 224 220 212 249 254 246 254 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 
-254 255 251 253 253 255 254 255 251 254 255 251 251 251 251 253 253 255 255 255 253 253 253 255 
-172 178 183 71 72 69 58 65 69 58 62 63 60 64 65 58 62 65 94 90 61 128 113 57 
-150 126 55 155 127 54 156 126 54 159 126 56 158 124 54 157 124 59 156 125 56 158 124 54 
-158 126 53 156 124 53 157 124 59 156 124 53 154 129 46 151 135 55 128 113 57 85 80 60 
-71 68 65 57 60 56 62 61 67 58 65 54 56 64 62 154 157 157 255 254 255 253 255 254 
-255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 254 254 254 253 253 253 253 253 253 251 251 251 255 255 255 254 254 254 255 255 255 
-255 255 253 202 204 206 71 72 69 53 60 64 62 65 65 59 64 62 62 66 56 101 91 62 
-147 124 59 155 126 57 156 125 56 161 124 50 158 126 53 158 126 53 156 125 56 157 124 59 
-155 126 57 155 126 57 157 124 59 159 126 56 156 126 54 128 113 57 94 90 61 58 62 63 
-54 64 59 57 60 70 57 63 61 71 72 69 62 61 67 57 60 70 84 69 58 149 124 53 
-155 128 52 161 124 50 157 124 59 155 128 52 152 127 56 101 91 62 59 60 64 58 66 61 
-60 64 65 230 230 230 254 254 254 251 251 251 255 255 255 253 253 253 255 255 255 255 255 255 
-253 253 253 255 255 253 253 253 255 254 255 251 241 240 247 97 100 105 62 65 65 51 61 71 
-50 65 64 57 61 64 94 90 61 142 120 69 152 127 56 155 127 54 157 124 59 155 126 57 
-161 124 50 158 127 55 156 125 56 156 124 53 158 124 53 158 127 55 152 127 56 150 126 55 
-149 124 53 101 91 62 58 65 69 53 63 60 62 61 67 57 63 61 71 72 69 58 62 65 
-62 65 65 85 80 60 142 120 69 157 124 59 156 125 56 158 132 49 156 125 56 152 127 56 
-97 78 60 60 61 69 58 67 65 59 64 62 202 204 206 251 251 251 255 255 255 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 254 254 254 255 255 255 224 220 212 81 77 81 57 63 61 62 70 69 53 60 64 
-58 62 65 85 80 60 128 99 63 155 126 57 157 126 52 156 128 53 158 134 59 149 124 53 
-155 128 52 155 128 52 155 128 52 157 126 52 158 125 54 158 125 54 156 126 54 155 127 54 
-157 124 59 128 113 57 101 91 62 62 66 62 58 59 68 58 62 65 54 64 59 59 64 62 
-125 131 132 241 240 247 254 255 251 254 255 251 253 253 255 255 255 255 254 255 251 254 254 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 210 99 51 85 80 60 66 60 61 53 60 64 58 62 65 62 70 69 71 65 56 
-128 93 57 185 105 60 217 105 50 212 104 43 207 99 38 213 100 46 217 105 50 213 100 46 
-207 99 48 208 103 45 207 105 38 207 99 38 213 103 41 217 105 50 198 102 49 174 105 47 
-85 80 60 59 59 56 57 63 63 62 66 62 57 58 61 125 131 132 253 255 254 253 253 253 
-255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 
-255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 242 238 229 113 113 120 62 66 56 57 58 61 59 59 56 62 66 56 71 68 65 
-128 93 57 185 105 60 217 105 50 213 103 41 207 105 38 213 100 52 213 100 46 209 105 45 
-213 103 41 208 103 45 208 103 45 210 99 44 212 104 43 212 101 45 213 100 46 212 101 45 
-155 104 59 97 78 60 57 58 63 53 67 71 58 59 64 60 60 63 88 95 83 219 227 224 
-255 254 255 254 251 249 255 255 253 254 255 251 253 252 247 253 255 254 249 254 254 254 255 251 
-254 255 251 248 251 253 254 255 251 125 131 132 59 59 56 53 64 53 62 66 62 155 104 59 
-213 105 50 209 99 39 208 103 45 213 105 46 213 103 41 155 104 59 71 65 56 58 59 68 
-62 65 65 53 60 64 62 61 67 59 64 62 84 69 58 155 104 59 211 102 45 207 99 48 
-200 101 40 213 105 46 217 104 40 211 104 39 212 104 43 212 101 45 213 100 46 213 100 46 
-212 98 39 213 105 46 213 103 41 211 104 39 174 105 47 112 79 60 62 61 67 60 61 69 
-54 67 66 57 63 61 125 131 132 241 240 247 254 251 249 254 252 251 253 255 254 249 254 254 
-252 252 252 255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 253 253 253 255 255 255 
-255 254 255 249 254 246 255 255 253 254 250 255 219 227 224 71 81 83 62 66 62 62 61 67 
-58 59 68 58 65 69 85 80 60 155 104 59 210 102 46 217 105 50 213 100 46 213 100 46 
-213 103 41 211 102 45 211 102 45 210 102 46 210 102 46 216 99 44 213 100 46 207 99 38 
-207 99 48 213 103 41 198 102 49 128 93 57 71 68 65 59 60 64 62 61 67 54 64 59 
-62 66 56 113 113 120 241 240 247 253 253 253 255 254 255 255 255 255 248 254 252 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 
-219 227 224 0 0 0 4 2 1 0 1 1 168 136 64 165 143 59 169 144 61 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 138 59 173 142 59 148 133 63 0 3 1 85 80 60 166 144 56 
-173 138 52 151 135 59 81 77 81 4 1 5 0 0 0 4 1 5 4 2 1 4 1 5 
-4 2 1 102 79 82 165 143 59 166 144 56 169 141 58 169 138 59 173 142 59 173 138 52 
-178 172 162 254 255 251 252 252 252 255 255 255 255 254 255 254 255 255 248 254 252 254 255 251 
-255 254 255 254 250 255 254 254 254 248 254 252 248 251 253 255 253 254 254 252 244 248 254 253 
-202 204 206 125 131 132 4 2 1 0 0 0 0 0 0 21 19 24 154 157 157 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 126 57 110 92 61 58 59 64 50 65 62 54 64 59 71 65 56 128 99 63 152 127 56 
-156 124 53 158 127 55 156 124 53 158 124 53 159 126 56 158 127 55 156 126 54 156 128 53 
-156 128 53 155 128 52 157 126 52 158 124 53 158 124 53 161 124 50 157 126 52 157 126 52 
-128 113 57 71 72 69 62 65 65 54 64 59 57 63 63 71 72 69 219 227 224 254 255 251 
-254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 
-254 255 255 253 255 254 254 255 251 253 252 247 250 247 249 255 254 255 254 252 251 145 151 154 
-62 65 65 53 63 60 62 66 56 58 62 65 81 77 81 142 120 69 152 124 51 157 124 59 
-159 126 56 157 127 54 152 124 51 158 127 55 155 127 54 158 127 55 156 124 53 158 127 55 
-161 124 50 161 124 50 159 126 56 157 124 59 157 124 59 158 125 54 156 128 53 155 128 52 
-147 124 59 97 78 60 60 61 69 58 64 64 59 59 56 59 64 62 104 112 110 241 240 247 
-255 255 255 252 252 252 253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 
-187 189 188 57 60 56 62 70 69 59 60 64 60 64 65 72 73 56 142 120 69 152 127 56 
-156 124 53 159 126 56 158 124 53 158 124 53 159 126 56 158 124 56 158 127 55 155 126 57 
-161 125 43 157 126 52 156 125 56 156 124 53 158 126 53 159 134 56 147 124 59 128 113 57 
-71 65 56 54 64 59 58 66 61 66 60 61 56 66 64 62 66 62 149 124 53 162 124 55 
-158 124 53 162 124 55 162 125 53 158 124 54 161 125 43 147 124 59 71 68 65 53 63 60 
-53 63 60 160 163 161 255 255 255 255 255 255 250 247 249 255 255 255 255 255 255 253 253 253 
-253 255 254 255 255 253 254 251 249 213 212 223 71 72 69 59 64 62 58 59 64 59 60 70 
-84 69 58 113 104 59 150 128 52 157 126 52 156 126 54 154 129 46 152 124 44 162 124 55 
-157 126 52 156 124 53 157 124 59 159 126 56 162 125 53 161 124 50 157 126 52 158 132 49 
-162 124 52 157 124 59 128 113 57 71 68 65 57 60 56 58 65 69 60 64 65 59 64 62 
-62 66 62 142 120 69 156 128 53 158 124 56 156 128 53 152 124 51 159 126 56 161 124 50 
-152 127 56 84 69 58 57 63 61 57 60 56 125 131 132 254 255 251 255 254 255 152 161 158 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 254 254 255 255 255 254 254 254 254 254 254 251 251 251 255 255 255 252 252 252 254 254 254 
-254 251 249 254 255 251 172 178 183 62 66 62 57 60 56 59 60 70 59 59 56 85 80 60 
-128 113 57 147 124 59 159 126 56 156 124 53 161 124 50 156 124 53 156 124 53 162 125 53 
-157 124 59 156 126 54 156 124 53 158 126 53 159 126 56 158 124 56 158 126 53 155 128 52 
-161 124 50 162 125 53 158 126 53 149 124 53 101 91 62 62 65 65 62 61 67 58 62 65 
-58 62 63 97 100 105 230 230 230 255 255 253 254 255 251 253 252 247 253 253 253 254 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-216 99 44 207 99 48 85 80 60 50 65 64 62 66 62 60 60 63 97 78 60 198 102 49 
-216 99 44 212 104 43 213 100 46 216 99 44 212 101 45 210 102 46 210 102 46 208 103 45 
-209 105 45 208 103 45 211 102 45 210 99 44 212 101 45 210 99 44 211 102 45 211 99 45 
-210 99 44 155 104 59 71 68 65 62 61 67 57 58 61 57 60 70 97 100 105 241 240 247 
-251 251 251 255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 251 251 251 
-230 230 230 97 100 105 58 65 69 57 61 64 62 66 56 56 66 64 128 93 57 209 105 45 
-213 103 41 213 103 41 216 99 44 211 102 45 211 102 45 213 100 46 213 100 46 207 99 48 
-213 100 46 213 100 46 213 105 50 213 100 46 211 99 45 209 99 39 207 105 38 207 105 38 
-211 99 45 210 105 51 155 104 59 84 69 58 54 67 66 57 63 61 53 60 64 68 69 75 
-172 178 183 255 255 253 254 255 255 254 252 250 254 252 244 255 255 253 249 254 254 254 251 249 
-254 252 250 254 254 255 219 227 224 57 63 61 58 68 63 54 64 59 155 104 59 213 100 52 
-212 104 43 213 103 41 213 100 46 209 105 45 210 99 44 210 105 51 112 79 60 59 60 64 
-58 62 65 62 66 56 58 66 61 97 78 60 198 102 49 217 104 40 209 99 39 212 104 43 
-213 100 46 210 102 46 207 99 48 210 102 46 210 99 44 211 104 39 212 101 45 213 100 46 
-210 105 51 211 99 45 212 101 45 207 99 48 216 99 44 213 103 41 155 104 59 84 69 58 
-58 65 69 53 60 64 60 60 63 110 110 107 255 254 255 253 252 247 251 251 251 249 254 254 
-255 255 255 254 254 254 253 253 253 254 254 254 251 251 251 254 254 254 255 255 255 254 254 254 
-250 252 254 251 251 251 253 253 255 172 178 183 81 77 81 57 60 70 54 64 59 53 60 64 
-85 80 60 155 104 59 207 99 48 210 99 44 208 103 45 212 104 43 213 100 46 210 99 51 
-207 105 48 210 102 46 212 101 45 210 102 46 211 99 45 211 99 45 210 102 46 210 102 46 
-213 105 50 209 99 39 209 99 39 213 103 41 207 105 48 112 79 60 62 70 65 66 60 61 
-59 64 62 57 63 61 71 81 83 213 212 223 253 252 247 249 254 254 254 250 255 254 251 249 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 253 253 253 
-125 131 132 4 2 1 4 1 5 109 102 83 173 145 52 166 144 56 169 144 61 173 138 52 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-173 142 59 169 141 58 169 138 59 173 142 59 166 134 56 62 66 62 4 1 5 168 136 64 
-173 142 59 169 141 58 164 144 50 142 120 69 109 102 83 85 80 60 85 80 60 88 95 83 
-128 100 96 166 144 56 168 136 64 173 142 59 169 141 58 169 141 58 169 144 61 169 138 59 
-178 172 162 254 255 251 254 254 253 254 251 252 253 253 255 255 255 253 253 255 254 252 252 252 
-254 255 255 255 254 255 250 250 247 249 254 246 253 255 254 252 252 252 251 251 251 249 254 254 
-253 253 253 255 255 255 230 230 230 140 141 138 48 49 51 0 0 0 0 0 0 21 19 24 
-160 163 161 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 128 52 101 91 62 57 63 61 53 63 60 85 80 60 148 133 63 158 126 53 154 129 46 
-156 128 53 156 128 53 152 124 51 157 127 54 157 124 59 157 124 59 156 124 53 156 124 53 
-157 124 59 156 128 53 155 128 52 156 125 56 157 124 59 158 127 55 156 124 53 158 127 55 
-158 132 49 152 127 56 110 92 61 66 60 61 57 63 61 57 61 64 81 77 81 224 220 212 
-252 252 252 252 252 252 255 255 255 254 254 254 251 251 251 255 255 255 255 255 255 253 253 253 
-255 255 255 252 252 252 254 255 255 253 253 255 255 254 255 251 251 251 125 131 132 56 64 62 
-50 65 62 58 64 64 66 60 61 128 99 63 157 126 52 158 125 54 162 124 55 155 128 52 
-156 124 53 157 126 52 158 126 53 158 125 54 158 124 56 158 125 54 158 126 53 155 128 52 
-157 124 59 157 126 52 156 129 45 155 128 52 155 126 57 156 126 54 156 124 53 162 124 52 
-156 129 45 157 124 59 113 104 59 71 72 69 58 65 69 58 62 65 58 64 64 88 95 83 
-241 240 247 255 255 255 252 252 252 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 
-254 254 254 252 252 252 254 254 254 253 253 253 253 253 253 254 254 254 255 255 255 187 189 188 
-58 66 61 57 60 70 58 62 65 62 66 62 113 104 59 156 124 53 158 127 55 155 128 52 
-155 128 52 156 128 53 155 127 54 155 127 54 158 127 55 156 126 54 156 126 54 155 128 52 
-155 126 57 158 127 55 158 127 55 155 128 52 155 128 52 155 127 54 156 124 53 162 124 52 
-147 124 59 71 72 69 53 63 60 62 65 65 53 63 60 110 92 61 162 124 55 157 126 52 
-158 134 59 155 128 52 155 126 57 157 124 59 161 124 50 156 125 56 101 91 62 58 65 69 
-60 64 65 125 131 132 255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 253 255 254 224 220 212 68 69 75 57 63 61 58 65 69 66 60 61 101 91 62 
-156 129 45 159 126 56 157 124 59 155 128 52 158 127 55 157 124 59 156 125 56 156 128 53 
-158 127 55 156 125 56 152 127 56 155 127 54 157 127 54 158 125 54 157 124 59 157 124 59 
-152 124 51 158 124 53 166 129 59 148 128 46 71 68 65 58 65 69 59 60 62 57 63 61 
-110 92 61 150 128 52 157 124 59 157 124 59 156 129 45 156 125 56 166 129 59 157 124 59 
-161 124 50 128 113 57 60 60 63 58 65 69 59 64 62 255 255 255 255 253 254 152 161 158 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 252 252 252 
-254 255 251 172 178 183 56 66 64 57 63 61 58 65 54 58 62 65 110 92 61 157 124 59 
-156 124 53 159 126 56 158 127 55 156 124 53 156 125 56 157 124 59 158 124 56 158 125 54 
-158 125 54 158 125 54 156 126 54 155 127 54 156 126 54 158 127 55 159 126 56 155 126 57 
-155 128 52 157 124 59 152 124 51 156 125 56 162 124 55 149 124 53 84 69 58 62 61 67 
-57 60 70 57 63 61 68 69 75 219 227 224 253 252 247 254 255 251 255 255 255 249 252 251 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-212 104 43 213 105 46 84 69 58 66 60 61 59 64 62 128 93 57 210 105 51 211 104 39 
-211 104 39 208 103 45 213 100 52 213 100 46 210 105 40 209 105 45 213 105 46 212 104 43 
-213 103 41 209 99 39 212 101 45 213 105 50 210 105 51 207 105 48 210 105 51 213 100 52 
-213 105 46 208 103 45 198 102 49 97 78 60 58 65 69 56 64 62 58 66 61 113 113 120 
-255 255 255 252 252 252 255 255 255 254 254 254 255 255 255 254 254 254 252 252 252 254 255 255 
-252 252 252 252 252 252 255 255 255 251 251 251 255 255 255 252 252 252 254 254 254 219 227 224 
-71 72 69 62 66 62 58 62 65 58 65 69 97 78 60 198 102 49 208 103 45 212 101 45 
-212 104 43 210 99 44 213 100 46 210 102 46 207 105 38 207 105 38 209 105 45 210 102 46 
-207 99 48 210 105 51 213 105 50 213 105 50 217 105 50 217 105 50 213 100 46 210 99 51 
-212 98 39 210 105 40 210 99 44 210 102 46 128 93 57 57 63 63 66 60 61 58 66 61 
-62 66 56 172 178 183 249 254 254 253 255 254 254 251 249 254 251 249 253 255 254 253 255 254 
-254 254 253 253 253 255 172 178 183 62 66 56 58 65 69 84 69 58 207 99 38 212 101 45 
-213 103 41 207 105 38 200 101 40 213 100 46 210 105 51 207 99 38 174 105 47 59 60 64 
-58 66 61 57 63 63 112 79 60 213 105 50 213 105 46 207 105 38 210 105 40 213 100 52 
-216 99 44 213 100 46 212 101 45 217 105 50 212 101 45 208 103 45 209 105 45 209 105 45 
-207 105 48 210 102 46 210 99 51 210 105 51 208 103 45 212 104 43 209 105 45 200 101 40 
-112 79 60 66 60 61 58 66 61 58 62 65 125 131 132 253 255 254 249 254 246 255 254 255 
-253 253 253 254 254 254 254 254 254 255 255 255 255 255 255 252 252 252 250 247 249 254 254 254 
-255 255 253 253 255 254 172 178 183 57 63 61 59 59 56 58 68 63 53 63 60 128 93 57 
-212 98 39 219 98 50 217 105 50 212 104 43 209 105 45 208 103 45 211 99 45 217 104 40 
-208 103 45 216 99 44 213 103 41 211 104 39 217 104 40 212 104 43 208 103 45 212 101 45 
-216 99 44 210 99 51 217 105 50 207 99 38 211 104 39 217 105 50 185 105 60 84 69 58 
-54 67 66 62 65 65 59 60 62 71 72 69 224 220 212 249 254 246 255 255 253 254 250 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 252 252 252 255 255 255 254 254 254 255 255 255 255 255 255 
-21 19 24 0 0 0 4 1 5 148 133 63 166 144 56 169 141 58 169 144 61 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 138 59 173 142 59 109 102 83 4 1 5 142 120 69 
-166 144 56 166 144 56 173 142 59 169 141 58 169 141 58 168 136 64 168 136 64 169 144 61 
-166 144 56 173 142 59 173 138 52 169 138 59 169 141 58 166 144 56 166 144 56 168 136 64 
-224 220 212 253 253 253 255 255 253 255 253 254 255 253 254 254 255 251 253 253 255 255 254 255 
-248 254 253 254 255 255 254 255 251 253 252 247 255 254 255 255 253 254 255 253 254 253 252 247 
-253 253 253 255 255 255 252 252 252 255 255 255 241 240 247 145 151 154 48 49 51 0 1 1 
-0 0 0 21 19 24 172 178 183 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 124 59 101 91 62 58 62 65 101 91 62 159 126 56 156 124 53 156 124 53 157 124 59 
-156 124 53 159 126 56 158 126 53 158 126 53 152 124 51 158 124 56 158 124 54 159 126 56 
-157 124 59 158 124 56 159 126 56 159 126 56 152 124 44 156 129 45 159 126 56 157 124 59 
-158 124 54 162 125 53 156 128 53 113 104 59 66 60 61 62 61 67 57 60 56 97 100 105 
-241 240 247 255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 253 254 255 255 253 253 255 254 254 254 125 131 132 53 60 64 58 65 69 
-58 65 69 72 73 56 147 124 59 161 124 50 161 124 50 152 124 51 158 134 59 158 125 54 
-157 124 59 159 126 56 159 126 56 158 126 53 158 125 54 156 126 54 156 128 53 155 128 52 
-156 128 53 155 128 52 159 126 56 159 126 56 156 124 53 155 128 52 159 134 56 156 126 54 
-157 124 59 162 125 53 161 124 50 149 124 53 81 77 81 58 62 65 59 59 56 58 65 54 
-97 100 105 241 240 247 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 252 252 252 253 253 253 253 253 253 255 255 255 254 254 254 187 189 188 57 58 61 
-58 62 65 57 58 61 62 66 56 128 113 57 156 124 53 166 129 59 158 124 53 155 128 52 
-158 124 53 158 126 53 157 126 52 156 124 53 156 126 54 156 126 54 157 127 54 158 126 53 
-152 127 56 155 128 52 158 124 53 158 126 53 158 126 53 155 127 54 156 128 53 156 128 53 
-156 124 53 147 124 59 62 66 56 50 65 64 58 64 64 128 113 57 152 124 51 157 124 59 
-152 124 44 155 128 52 156 126 54 157 126 52 161 125 43 159 126 56 128 113 57 60 64 65 
-60 64 65 104 112 110 255 255 255 254 254 254 255 255 255 254 254 254 251 251 251 254 254 254 
-255 255 255 241 240 247 97 100 105 57 63 61 57 60 70 62 61 67 110 92 61 152 127 56 
-158 127 55 152 124 51 158 124 56 157 124 59 158 124 56 158 127 55 162 125 53 152 124 44 
-156 126 54 155 127 54 155 127 54 155 127 54 155 127 54 156 126 54 158 127 55 158 127 55 
-159 126 56 148 128 46 155 126 57 162 124 55 147 124 59 62 61 67 56 64 62 56 64 62 
-147 124 59 156 124 53 162 125 53 159 126 56 156 124 53 159 126 56 161 124 50 154 129 46 
-162 124 52 150 128 52 62 65 65 58 65 69 59 59 56 219 227 224 254 252 250 160 163 161 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 
-172 178 183 58 64 64 54 64 59 60 64 65 69 60 69 128 113 57 152 127 56 159 126 56 
-155 126 57 156 125 56 159 126 56 159 126 56 156 124 53 157 127 54 158 127 55 152 124 51 
-158 127 55 158 127 55 155 126 57 156 125 56 156 125 56 158 125 54 158 125 54 157 126 52 
-158 124 56 155 128 52 157 124 59 162 124 55 158 124 54 159 126 56 150 126 55 101 91 62 
-62 65 65 59 64 62 57 60 56 68 69 75 213 212 223 254 255 251 254 255 251 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-209 105 45 213 100 46 84 69 58 71 72 69 174 105 47 212 101 45 207 99 38 210 105 51 
-210 99 51 216 99 44 211 104 39 209 99 39 217 105 50 216 99 44 212 104 43 208 103 45 
-213 100 46 213 100 46 211 99 45 208 103 45 209 99 39 216 99 44 217 104 40 207 99 38 
-210 99 51 209 105 45 209 99 39 213 103 41 97 78 60 58 62 63 60 61 69 59 59 56 
-125 131 132 255 255 255 251 251 251 253 253 253 252 252 252 253 253 253 255 255 255 252 252 252 
-255 255 255 255 255 255 253 253 253 253 253 253 253 253 253 254 254 254 219 227 224 71 72 69 
-50 65 62 62 65 65 58 65 54 112 79 60 212 101 45 219 98 50 216 99 44 208 103 45 
-207 99 48 217 105 50 213 103 41 207 99 38 213 103 41 216 99 44 212 101 45 200 101 40 
-213 103 41 211 102 45 208 103 45 208 103 45 208 103 45 213 103 41 213 103 41 212 98 39 
-211 102 45 210 105 51 208 103 45 209 105 45 216 99 44 174 105 47 62 66 62 58 64 64 
-57 61 64 60 60 63 172 178 183 249 254 254 249 254 254 255 255 253 248 254 252 249 254 254 
-255 254 255 249 254 254 140 141 138 58 62 65 62 61 67 128 93 57 217 104 40 211 102 45 
-213 105 50 217 104 40 213 100 52 207 99 48 213 105 46 208 103 45 207 99 48 57 63 61 
-57 60 56 102 79 82 213 100 52 213 100 46 210 99 51 209 99 39 213 103 41 219 98 50 
-208 103 45 210 99 44 209 99 39 208 103 45 208 103 45 210 102 46 209 105 45 208 103 45 
-207 99 38 217 104 40 216 99 44 212 98 39 213 103 41 210 102 46 210 99 44 213 103 41 
-210 105 51 97 78 60 57 58 61 58 65 69 56 66 64 187 189 188 255 253 254 254 254 253 
-255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-254 255 251 172 178 183 57 60 70 58 62 65 58 66 61 62 65 65 185 105 60 210 99 51 
-212 104 43 207 105 38 207 105 38 211 102 45 216 99 44 217 104 40 210 105 40 207 105 38 
-208 103 45 213 100 46 208 103 45 200 101 40 208 103 45 208 103 45 210 102 46 216 99 44 
-217 105 50 207 105 48 207 99 48 211 99 45 213 103 41 211 102 45 211 102 45 212 101 45 
-112 79 60 62 66 62 60 61 69 57 60 56 71 81 83 213 212 223 254 255 251 254 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 251 251 251 251 251 251 172 178 183 
-0 3 1 0 0 0 109 102 83 169 141 58 169 144 61 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 134 56 169 144 61 169 141 58 169 138 59 173 142 59 142 120 69 4 1 5 109 102 83 
-173 142 59 168 136 64 169 138 59 173 142 59 169 138 59 173 142 59 169 141 58 166 144 56 
-169 138 59 169 141 58 169 141 58 169 141 58 165 143 59 166 134 56 173 142 59 169 144 61 
-254 252 250 254 255 255 251 251 251 254 251 252 255 255 253 254 255 251 253 253 255 255 254 255 
-254 255 251 254 251 252 255 253 254 255 254 255 250 252 254 249 254 246 253 252 247 254 255 251 
-255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 242 238 229 140 141 138 
-48 49 51 0 0 0 0 0 0 62 65 65 219 227 224 251 251 251 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 126 57 101 91 62 113 104 59 155 128 52 162 124 52 166 129 59 157 124 59 155 128 52 
-168 131 61 157 124 59 158 124 54 159 126 56 159 126 56 159 126 56 157 126 52 158 127 55 
-158 127 55 155 128 52 156 126 54 157 124 59 159 126 56 158 126 53 157 126 52 156 124 53 
-159 126 56 157 126 52 157 124 59 155 128 52 113 104 59 62 61 67 54 67 66 58 68 63 
-113 113 120 253 255 254 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 253 253 253 
-254 255 251 254 255 251 251 251 251 254 255 251 154 157 157 58 65 69 59 60 70 62 61 67 
-97 78 60 147 124 59 159 134 56 152 124 51 155 126 57 152 127 56 159 126 56 156 124 53 
-156 124 53 156 126 54 154 129 46 155 128 52 155 128 52 155 126 57 156 125 56 157 124 59 
-157 124 59 156 124 53 155 128 52 159 126 56 159 126 56 158 125 54 156 124 53 155 126 57 
-158 125 54 155 126 57 156 124 53 162 124 55 154 129 46 85 80 60 59 60 70 58 65 69 
-60 64 65 97 100 105 254 255 255 255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 
-251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 213 212 223 68 69 75 62 65 65 
-57 63 63 62 66 62 142 101 66 158 124 56 158 127 55 157 126 52 156 124 53 159 126 56 
-157 124 59 157 124 59 157 124 59 159 126 56 158 127 55 158 125 54 159 126 56 158 124 54 
-158 124 53 158 126 53 157 127 54 158 127 55 158 125 54 158 124 54 156 125 56 156 125 56 
-157 124 59 161 124 50 113 104 59 60 64 65 62 66 62 147 124 59 156 124 53 157 124 59 
-157 124 59 157 124 59 161 124 50 158 127 55 155 126 57 158 132 49 128 113 57 59 60 64 
-57 63 61 110 110 107 253 253 253 254 254 254 253 253 253 253 255 254 255 255 255 251 251 251 
-253 255 254 110 110 107 57 58 61 58 65 69 62 61 67 113 104 59 155 128 52 158 126 53 
-150 126 55 155 126 57 158 125 54 157 126 52 158 127 55 155 128 52 152 124 51 159 126 56 
-158 124 53 158 125 54 159 126 56 158 125 54 158 125 54 158 126 53 158 126 53 157 126 52 
-157 124 59 156 128 53 152 124 51 159 126 56 158 125 54 110 92 61 57 63 63 62 70 69 
-150 128 52 158 134 59 156 124 53 155 127 54 158 134 59 157 124 59 157 124 59 156 124 53 
-166 129 59 157 127 54 72 76 65 56 66 64 59 64 62 202 204 206 255 255 253 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-253 253 253 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 254 255 255 172 178 183 
-58 62 65 53 63 60 58 65 69 84 69 58 149 124 53 157 124 59 157 126 52 156 129 45 
-156 124 53 158 127 55 155 128 52 154 129 46 156 128 53 155 127 54 156 124 53 157 124 59 
-162 124 55 158 124 53 157 126 52 158 126 53 159 126 56 159 126 56 158 124 54 158 125 54 
-152 127 56 156 124 53 158 125 54 156 124 53 157 126 52 152 124 51 155 126 57 159 126 56 
-113 104 59 66 60 61 60 61 69 57 63 61 71 72 69 241 240 247 254 255 251 253 253 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 104 39 208 103 45 112 79 60 174 105 47 217 104 40 210 102 46 213 100 46 216 99 44 
-216 99 44 208 103 45 209 105 45 210 105 51 213 100 52 207 99 48 210 102 46 217 105 50 
-210 102 46 210 102 46 208 103 45 213 105 46 210 99 44 212 101 45 210 102 46 210 105 51 
-209 99 39 219 98 50 219 98 50 213 100 52 213 100 46 101 91 62 59 59 56 62 65 65 
-60 64 65 187 189 188 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 254 255 255 
-255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 241 240 247 97 100 105 58 62 63 
-62 65 65 57 58 61 142 101 66 207 105 38 213 100 46 213 105 50 209 105 45 212 101 45 
-208 103 45 211 102 45 210 105 51 207 105 48 207 105 48 210 102 46 213 100 46 217 105 50 
-209 99 39 212 104 43 212 101 45 213 100 46 213 100 46 213 100 46 210 102 46 210 102 46 
-208 103 45 213 103 41 213 100 46 212 101 45 209 99 39 212 98 39 185 105 60 71 72 69 
-51 61 71 58 65 69 59 64 62 202 204 206 254 255 255 250 250 247 254 255 251 255 255 253 
-254 255 251 253 255 254 104 112 110 57 63 63 62 66 62 140 101 45 210 102 46 211 102 45 
-213 100 52 207 105 38 209 99 39 216 99 44 217 105 50 207 105 48 216 99 44 72 76 65 
-71 68 65 200 101 40 207 105 38 208 103 45 217 104 40 213 105 46 213 100 52 211 102 45 
-210 99 51 213 100 46 211 102 45 208 103 45 208 103 45 210 102 46 216 99 44 216 99 44 
-213 105 50 207 99 48 208 103 45 213 103 41 210 99 44 210 99 51 210 105 51 211 99 45 
-208 103 45 216 99 44 85 80 60 56 66 64 53 63 60 71 72 69 242 238 229 254 255 255 
-254 254 254 251 251 251 255 255 255 255 255 255 251 251 251 253 253 253 253 253 253 253 253 253 
-202 204 206 57 60 56 58 65 69 62 66 62 72 76 65 174 105 47 211 99 45 213 103 41 
-217 105 50 208 103 45 208 103 45 213 105 46 213 100 46 208 103 45 210 102 46 213 100 46 
-213 100 46 212 101 45 212 101 45 213 100 46 213 100 46 210 102 46 209 105 45 212 101 45 
-209 105 45 212 104 43 210 105 40 213 105 46 213 100 46 210 99 51 208 103 45 210 105 40 
-207 105 48 128 93 57 62 65 65 53 67 71 57 61 64 68 69 75 230 230 230 249 254 246 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 81 77 81 
-0 1 1 4 2 1 148 133 63 169 138 59 166 144 56 169 144 61 169 141 58 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 144 61 166 134 56 173 138 52 169 141 58 169 141 58 168 136 64 4 2 1 48 49 51 
-166 144 56 173 142 59 169 141 58 165 143 59 165 143 59 169 141 58 169 141 58 173 145 52 
-169 144 61 166 134 56 166 144 56 165 143 59 168 136 64 173 145 52 166 144 56 178 172 162 
-254 254 254 253 255 254 255 255 253 254 251 254 254 251 252 254 255 251 254 255 255 254 252 251 
-253 252 247 251 251 251 254 255 251 254 255 251 253 252 247 254 255 251 254 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 
-241 240 247 145 151 154 4 2 1 0 0 0 0 1 1 125 131 132 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 127 56 154 129 46 156 126 54 159 126 56 157 126 52 152 124 51 158 134 59 156 124 53 
-152 124 51 155 128 52 158 132 49 155 128 52 152 124 51 156 126 54 158 126 53 158 126 53 
-152 124 51 156 128 53 157 127 54 156 125 56 156 124 53 155 128 52 156 126 54 157 124 59 
-157 126 52 155 128 52 157 124 59 157 124 59 150 126 55 110 92 61 58 59 64 56 66 64 
-57 63 61 187 189 188 254 255 255 253 253 253 254 254 254 255 255 255 252 252 252 255 255 255 
-254 255 251 254 252 250 255 254 255 187 189 188 54 64 59 58 65 69 66 60 61 85 80 60 
-159 126 56 148 133 63 152 127 56 155 127 54 156 125 56 158 127 55 152 124 51 159 126 56 
-159 126 56 156 124 53 158 125 54 159 126 56 159 126 56 158 124 53 161 124 50 161 124 50 
-156 124 53 158 127 55 155 128 52 152 124 51 158 127 55 162 125 53 158 124 53 158 124 56 
-158 127 55 152 124 44 155 126 57 157 127 54 162 124 52 158 127 55 85 80 60 57 63 63 
-57 63 63 57 63 63 125 131 132 249 252 251 255 255 255 251 251 251 253 253 253 255 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 254 255 255 97 100 105 60 64 65 57 63 63 
-62 65 65 142 101 66 157 126 52 152 124 44 158 127 55 155 126 57 158 127 55 158 125 54 
-155 128 52 155 128 52 152 124 51 155 128 52 156 124 53 156 124 53 159 126 56 157 124 59 
-158 127 55 156 126 54 156 125 56 157 124 59 157 124 59 157 124 59 159 126 56 155 128 52 
-157 126 52 155 127 54 150 126 55 101 91 62 62 65 65 156 125 56 161 125 43 156 124 53 
-156 125 56 158 127 55 156 124 53 154 129 46 158 134 59 149 124 53 128 113 57 57 61 64 
-62 65 65 104 112 110 254 254 254 255 255 255 252 252 252 253 253 253 253 253 253 255 255 255 
-178 172 162 57 61 64 58 64 64 59 60 62 110 92 61 155 128 52 161 125 43 157 124 59 
-162 125 53 158 126 53 154 129 46 154 129 46 156 126 54 159 126 56 157 124 59 152 127 56 
-158 124 56 158 125 54 158 124 53 158 124 53 156 124 53 159 126 56 157 124 59 157 124 59 
-152 124 51 157 124 59 157 124 59 152 124 51 155 128 52 150 128 52 84 69 58 85 80 60 
-155 127 54 157 126 52 157 124 59 157 124 59 154 129 46 156 124 53 158 124 56 159 126 56 
-152 124 51 158 127 55 72 76 65 58 68 63 57 63 61 202 206 211 254 252 251 154 157 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-253 253 253 254 254 254 253 253 253 255 255 255 254 254 254 254 255 255 224 220 212 71 72 69 
-57 63 61 58 66 61 71 68 65 147 124 59 162 125 53 161 124 50 155 128 52 156 126 54 
-156 128 53 156 126 54 158 124 54 157 124 59 159 126 56 156 126 54 156 126 54 158 126 53 
-157 124 59 156 125 56 155 127 54 155 128 52 152 124 51 152 124 51 156 124 53 159 126 56 
-157 126 52 158 127 55 155 128 52 158 126 53 159 126 56 159 126 56 156 124 53 154 129 46 
-150 128 52 113 104 59 59 59 56 59 64 62 62 66 62 97 100 105 255 255 253 255 255 255 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 104 39 213 100 46 213 103 41 211 99 45 213 100 46 207 99 48 212 104 43 207 99 38 
-212 101 45 208 103 45 208 103 45 212 98 39 211 102 45 210 105 51 213 100 46 212 98 39 
-213 100 46 208 103 45 208 103 45 211 102 45 211 99 45 213 105 46 210 102 46 210 99 44 
-207 105 38 213 105 46 210 99 44 207 105 48 210 102 46 210 102 46 85 80 60 59 60 62 
-62 65 65 62 70 69 241 240 247 255 255 255 253 253 253 255 255 255 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 253 253 253 253 255 254 104 112 110 58 64 64 58 64 64 
-60 60 63 142 101 66 212 104 43 216 99 44 210 105 51 207 105 38 212 104 43 213 100 46 
-213 100 46 210 99 44 212 104 43 216 99 44 210 99 44 209 105 45 213 105 46 212 98 39 
-210 102 46 210 102 46 208 103 45 208 103 45 208 103 45 211 104 39 211 102 45 209 105 45 
-211 102 45 216 99 44 210 102 46 209 105 45 210 105 40 209 105 45 207 99 48 207 99 48 
-71 65 56 58 67 65 53 60 64 71 72 69 230 230 230 255 255 255 255 253 254 255 255 253 
-253 252 247 255 254 255 104 112 110 57 60 56 56 66 64 155 104 59 217 105 50 208 103 45 
-208 103 45 209 105 45 213 100 46 210 105 40 209 99 39 217 104 40 213 100 52 97 78 60 
-155 104 59 208 103 45 217 104 40 212 104 43 207 105 38 213 100 46 212 98 39 213 100 46 
-216 99 44 213 105 50 208 103 45 210 102 46 217 105 50 212 101 45 212 101 45 213 100 46 
-212 98 39 213 103 41 213 100 46 210 102 46 208 103 45 211 102 45 213 105 46 217 105 50 
-209 105 45 217 98 38 198 102 49 62 66 62 58 62 65 58 65 69 156 160 157 253 255 254 
-255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 230 230 230 
-68 69 75 56 64 62 57 60 56 71 65 56 198 102 49 216 99 44 207 105 38 207 105 48 
-210 99 44 212 101 45 213 100 46 211 102 45 213 105 50 213 105 50 211 102 45 211 104 39 
-216 99 44 208 103 45 208 103 45 213 105 50 210 102 46 208 103 45 212 104 43 211 104 39 
-213 100 52 216 99 44 211 99 45 210 105 51 209 99 39 213 103 41 213 100 46 209 105 45 
-216 99 44 216 99 44 128 93 57 60 64 65 60 61 69 59 64 62 97 100 105 241 240 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 252 252 252 241 240 247 0 0 0 
-4 1 5 88 95 83 164 144 50 169 144 61 173 142 59 169 141 58 169 144 61 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 144 56 173 142 59 173 142 59 169 141 58 164 144 50 169 141 58 88 95 83 4 1 5 
-148 133 63 164 144 50 169 138 59 173 142 59 166 144 56 169 138 59 169 141 58 169 138 59 
-169 141 58 173 138 52 165 143 59 169 144 61 168 136 64 173 138 52 169 144 61 241 240 247 
-255 255 253 252 252 252 254 255 251 255 254 255 254 254 255 254 255 251 253 255 254 254 255 251 
-253 253 253 254 254 255 255 253 254 255 255 253 254 255 251 250 252 246 254 255 255 254 255 251 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-255 255 255 253 253 253 230 230 230 97 100 105 0 0 0 0 0 0 62 65 65 219 227 224 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 124 53 157 124 59 158 125 54 158 124 53 157 124 59 155 128 52 152 124 44 159 126 56 
-158 127 55 156 124 53 158 127 55 156 124 53 158 124 56 157 124 59 156 125 56 156 124 53 
-157 124 59 156 124 53 161 124 50 159 126 56 158 126 53 157 126 52 155 128 52 155 128 52 
-158 127 55 158 124 56 156 124 53 156 124 53 161 124 50 155 126 57 85 80 60 58 65 69 
-57 63 61 71 72 69 241 240 247 254 255 255 255 255 255 254 254 254 255 255 255 253 253 253 
-254 255 255 255 254 255 241 240 247 68 69 75 58 62 65 57 60 70 84 69 58 147 124 59 
-154 129 46 157 126 52 156 124 53 159 126 56 161 124 50 158 125 54 159 126 56 155 126 57 
-155 126 57 152 124 51 159 126 56 158 124 54 157 124 59 128 113 57 128 113 57 113 104 59 
-128 113 57 147 124 59 156 125 56 159 126 56 158 124 56 156 124 53 155 128 52 158 126 53 
-158 124 56 155 128 52 154 129 46 158 124 56 157 124 59 152 124 44 151 135 55 97 78 60 
-56 64 62 56 64 62 60 64 65 187 189 188 255 255 255 255 255 255 255 255 255 253 253 253 
-255 255 255 253 253 253 255 255 255 255 255 255 156 160 157 57 58 61 56 66 64 53 63 60 
-128 99 63 150 126 55 156 129 45 159 126 56 157 124 59 158 127 55 154 129 46 158 127 55 
-158 126 53 156 124 53 156 124 53 159 126 56 159 126 56 156 126 54 158 127 55 155 128 52 
-155 127 54 156 126 54 158 127 55 156 128 53 154 129 46 154 129 46 157 126 52 162 125 53 
-161 124 50 157 124 59 159 126 56 148 128 46 81 77 81 158 125 54 152 127 56 156 126 54 
-156 128 53 152 124 51 156 129 45 157 124 59 157 124 59 161 124 50 128 99 63 59 64 62 
-58 64 64 104 112 110 254 254 254 255 255 255 254 254 254 254 255 255 255 255 255 230 230 230 
-71 72 69 58 65 69 57 60 70 94 90 61 152 127 56 158 124 54 157 124 59 155 128 52 
-156 124 53 158 124 56 157 124 59 157 124 59 158 125 54 157 126 52 157 126 52 155 128 52 
-155 127 54 156 126 54 159 126 56 159 126 56 156 126 54 156 124 53 156 126 54 156 128 53 
-155 128 52 151 135 55 152 124 51 162 124 55 162 125 53 155 126 57 128 113 57 110 92 61 
-156 124 53 157 124 59 158 132 49 155 128 52 156 128 53 157 126 52 157 124 59 155 128 52 
-155 128 52 155 128 52 81 77 81 58 66 61 57 60 56 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 254 255 255 97 100 105 59 64 62 
-57 60 70 71 65 56 142 120 69 155 127 54 156 126 54 158 127 55 156 125 56 158 124 56 
-155 128 52 156 126 54 158 125 54 158 125 54 158 127 55 155 127 54 156 126 54 156 126 54 
-128 113 57 128 113 57 128 99 63 128 113 57 147 124 59 156 125 56 158 127 55 156 124 53 
-162 124 55 158 124 56 155 126 57 155 128 52 152 124 44 159 126 56 158 124 56 158 127 55 
-162 124 55 150 128 52 113 104 59 59 60 64 57 60 70 58 64 64 145 151 154 253 252 247 
-255 255 255 254 255 255 253 255 254 255 253 254 255 255 255 57 63 63 58 64 64 60 60 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 100 52 208 103 45 207 105 38 213 100 52 208 103 45 209 99 39 210 105 51 210 102 46 
-210 102 46 211 102 45 212 101 45 213 100 46 213 100 46 208 103 45 208 103 45 213 100 52 
-212 101 45 212 101 45 213 100 46 210 102 46 208 103 45 210 99 44 212 104 43 212 104 43 
-219 98 50 210 99 44 213 103 41 211 99 45 216 99 44 211 104 39 198 102 49 71 68 65 
-57 63 63 62 65 65 125 131 132 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 172 178 183 58 62 63 56 66 64 56 66 64 
-128 93 57 207 105 48 213 103 41 208 103 45 212 101 45 213 100 46 208 103 45 212 101 45 
-208 103 45 212 101 45 213 100 46 212 101 45 209 105 45 208 103 45 210 99 44 213 100 52 
-211 104 39 211 102 45 210 102 46 213 100 46 213 100 46 213 100 46 211 102 45 208 103 45 
-209 105 45 213 103 41 213 103 41 210 102 46 210 99 51 213 100 46 213 103 41 210 99 44 
-174 105 47 71 65 56 51 61 71 62 65 65 110 110 107 249 254 254 253 253 255 253 253 255 
-255 255 255 253 253 253 104 112 110 62 66 62 58 62 65 155 104 59 210 99 44 211 104 39 
-213 105 46 210 99 44 213 100 52 207 105 48 213 100 46 213 103 41 207 99 48 200 101 40 
-217 104 40 210 99 51 216 99 44 209 105 45 210 105 51 216 99 44 213 100 52 174 105 47 
-174 105 47 155 104 59 155 104 59 198 102 49 210 102 46 212 104 43 209 105 45 210 102 46 
-211 102 45 208 103 45 208 103 45 213 100 46 216 99 44 213 103 41 208 103 45 208 103 45 
-216 99 44 212 104 43 208 103 45 128 93 57 53 67 71 57 63 61 71 72 69 241 240 247 
-255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 254 254 254 110 110 107 
-59 64 62 50 65 64 71 68 65 174 105 47 210 102 46 213 100 46 217 104 40 213 100 46 
-211 102 45 213 105 46 211 99 45 210 99 44 212 104 43 213 103 41 209 99 39 213 105 50 
-207 105 48 174 105 47 155 104 59 155 104 59 155 104 59 174 105 47 207 99 48 212 104 43 
-213 103 41 210 105 51 208 103 45 209 99 39 213 105 50 210 102 46 209 99 39 211 102 45 
-210 102 46 209 105 45 210 102 46 128 93 57 62 66 62 53 60 64 58 66 61 145 151 154 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 254 255 255 253 253 255 252 252 252 253 253 253 254 250 255 140 141 138 0 0 0 
-4 1 5 148 133 63 169 141 58 169 141 58 169 144 61 169 138 59 173 145 52 165 143 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 144 61 169 141 58 166 144 56 169 144 61 169 138 59 142 120 69 0 3 1 
-109 102 83 173 142 59 165 143 59 169 141 58 166 144 56 169 141 58 169 138 59 169 141 58 
-173 142 59 169 141 58 164 134 50 165 143 59 173 142 59 166 144 56 214 206 175 253 253 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 251 251 251 255 255 255 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 187 189 188 21 19 24 4 2 1 6 9 5 
-172 178 183 255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 
-252 252 252 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-252 252 252 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 126 57 152 124 44 159 126 56 156 125 56 156 129 45 155 128 52 156 128 53 162 124 55 
-161 124 50 159 126 56 155 127 54 150 126 55 128 113 57 128 99 63 128 113 57 154 129 46 
-155 127 54 157 124 59 156 126 54 157 127 54 156 124 53 159 126 56 158 124 54 158 127 55 
-156 126 54 159 126 56 156 128 53 155 128 52 156 125 56 161 124 50 147 124 59 66 60 61 
-54 67 66 60 64 65 152 161 158 249 254 246 255 254 255 250 252 246 255 255 255 254 255 251 
-253 252 247 253 253 255 113 113 120 58 65 69 58 66 61 62 66 56 149 124 53 158 125 54 
-157 124 59 157 127 54 156 124 53 155 127 54 155 126 57 158 124 56 166 129 59 161 125 43 
-159 126 56 147 124 59 110 92 61 72 76 65 59 60 64 59 64 62 56 64 62 54 67 66 
-59 59 56 60 64 65 62 70 69 94 90 61 149 124 53 161 124 50 158 124 53 155 126 57 
-158 124 56 155 127 54 159 126 56 158 124 54 156 128 53 154 129 46 159 126 56 158 124 56 
-84 69 58 56 64 62 53 60 64 81 77 81 241 240 247 248 254 252 254 250 255 253 253 253 
-253 253 255 254 255 255 253 253 255 230 230 230 56 66 64 62 61 67 56 66 64 110 92 61 
-156 126 54 155 126 57 154 129 46 161 124 50 166 129 59 158 124 53 159 126 56 154 129 46 
-154 129 46 158 127 55 156 124 53 155 127 54 155 128 52 155 126 57 157 124 59 149 124 53 
-128 99 63 128 113 57 147 124 59 152 124 51 156 128 53 157 127 54 156 124 53 158 126 53 
-152 127 56 161 124 50 156 124 53 158 127 55 156 125 56 158 127 55 157 124 59 155 128 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 64 62 104 112 110 253 255 254 250 252 254 255 255 255 255 255 253 252 252 252 104 112 110 
-66 60 61 53 64 53 71 72 69 157 124 59 158 124 53 150 128 52 162 125 53 155 126 57 
-155 128 52 162 124 52 158 125 54 155 128 52 156 126 54 157 124 59 162 125 53 156 129 45 
-161 125 43 157 127 54 148 133 63 128 113 57 128 99 63 128 113 57 155 126 57 155 127 54 
-162 124 55 156 129 45 157 124 59 157 124 59 155 128 52 152 124 51 155 128 52 158 124 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 251 251 251 255 255 253 253 252 247 255 254 255 156 160 157 62 61 67 54 64 59 
-57 61 64 128 113 57 158 124 56 155 127 54 156 125 56 157 124 59 152 124 44 157 124 59 
-156 124 53 159 126 56 157 124 59 157 126 52 158 124 56 110 92 61 72 76 65 62 66 56 
-60 61 69 58 62 63 60 64 65 57 61 64 59 60 64 62 66 62 94 90 61 113 104 59 
-155 128 52 159 126 56 162 124 55 156 124 53 158 127 55 158 125 54 156 124 53 157 124 59 
-158 127 55 150 128 52 161 124 50 97 78 60 57 61 64 54 64 59 58 62 63 202 206 211 
-252 252 252 255 255 255 253 253 253 254 254 254 254 255 255 57 63 61 58 64 64 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 100 46 213 105 50 209 105 45 207 99 38 216 99 44 213 103 41 210 102 46 210 105 51 
-213 100 46 210 102 46 211 102 45 212 98 39 198 102 49 155 104 59 155 104 59 198 102 49 
-208 103 45 209 105 45 212 98 39 213 105 46 198 102 49 207 105 48 217 98 38 210 102 46 
-209 105 45 211 102 45 210 102 46 210 99 44 213 100 46 217 105 50 198 102 49 174 105 47 
-56 66 64 60 60 63 58 65 69 202 204 206 253 255 254 254 251 249 249 254 254 254 255 255 
-254 255 251 254 250 255 255 254 255 230 230 230 72 76 65 62 61 67 50 65 64 112 79 60 
-208 103 45 213 100 52 210 99 44 213 105 50 209 99 39 209 105 45 213 100 52 211 104 39 
-216 99 44 208 103 45 208 103 45 213 100 46 212 104 43 217 104 40 207 99 48 174 105 47 
-155 104 59 174 105 47 210 105 51 216 99 44 208 103 45 213 100 46 216 99 44 209 105 45 
-213 100 46 210 105 51 211 104 39 210 99 44 213 105 50 207 105 48 213 100 46 207 105 38 
-212 104 43 140 101 45 62 61 67 57 63 61 50 65 62 172 178 183 254 251 252 255 255 253 
-254 255 255 254 251 252 104 112 110 60 64 65 58 62 63 155 104 59 213 105 50 211 102 45 
-213 100 46 210 102 46 209 105 45 213 105 46 213 100 46 212 101 45 212 101 45 211 102 45 
-209 105 45 211 99 45 216 99 44 213 105 46 155 104 59 112 79 60 69 60 69 58 62 65 
-58 62 65 57 63 61 59 64 62 58 65 69 62 65 65 112 79 60 185 105 60 216 99 44 
-217 98 38 213 105 50 200 101 40 213 100 46 213 100 46 211 104 39 211 104 39 213 100 52 
-210 102 46 207 99 38 213 100 46 210 102 46 71 68 65 58 66 61 57 60 70 187 189 188 
-255 255 253 255 255 253 249 254 254 253 255 254 255 254 255 253 255 254 178 172 162 62 61 67 
-60 64 65 57 63 61 155 104 59 211 99 45 210 102 46 208 103 45 217 105 50 209 99 39 
-213 100 52 209 99 39 208 103 45 210 102 46 217 104 40 210 105 51 128 93 57 97 78 60 
-60 64 65 57 61 64 62 61 67 57 61 64 58 64 64 57 63 61 71 65 56 102 79 82 
-155 104 59 213 105 50 217 104 40 207 105 38 210 105 40 219 98 50 212 101 45 209 105 45 
-216 99 44 208 103 45 207 105 48 217 98 38 112 79 60 54 64 59 53 60 64 66 60 61 
-202 204 206 254 255 251 254 255 255 254 255 255 253 253 253 
-253 253 253 249 252 251 254 255 255 254 255 251 254 254 254 255 254 255 21 19 24 0 1 1 
-68 58 52 165 143 59 173 142 59 169 138 59 166 144 56 166 134 56 173 142 59 169 144 61 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 138 59 169 141 58 169 144 61 169 141 58 173 142 59 148 133 63 4 1 5 
-72 76 65 166 144 56 169 144 61 169 141 58 168 136 64 166 134 56 169 141 58 169 141 58 
-169 141 58 166 144 56 169 144 61 173 138 52 166 144 56 178 172 162 254 252 250 253 252 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-252 252 252 253 253 253 254 254 254 254 254 254 255 255 255 241 240 247 97 100 105 4 2 1 
-0 0 0 125 131 132 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 251 251 251 
-255 255 255 252 252 252 254 254 254 252 252 252 253 253 253 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 158 134 59 158 124 53 159 126 56 157 124 59 159 126 56 156 124 53 150 128 52 
-142 120 69 101 91 62 69 60 69 62 61 67 58 62 63 58 62 65 58 65 69 53 60 64 
-72 73 56 110 92 61 155 127 54 158 127 55 157 124 59 159 134 56 152 124 51 156 125 56 
-157 127 54 158 124 54 158 127 55 154 129 46 157 124 59 162 124 55 150 126 55 110 92 61 
-57 58 61 59 64 62 68 69 75 250 247 249 254 251 252 255 255 255 253 253 253 254 254 253 
-254 255 251 202 206 211 62 65 65 58 62 63 57 63 63 113 104 59 152 127 56 159 126 56 
-155 128 52 157 124 59 159 126 56 156 129 45 155 127 54 158 127 55 158 124 54 148 133 63 
-113 104 59 71 65 56 62 65 65 57 63 61 59 64 62 60 61 69 60 61 69 58 65 54 
-57 63 61 58 62 65 58 65 54 58 65 54 59 60 64 101 91 62 147 124 59 158 125 54 
-158 124 53 156 129 45 157 124 59 157 124 59 158 132 49 159 126 56 156 126 54 158 124 54 
-142 120 69 62 65 65 53 63 60 58 65 69 125 131 132 254 255 251 249 254 246 255 254 255 
-254 255 251 254 255 255 254 255 251 125 131 132 59 60 64 57 63 61 71 65 56 148 133 63 
-155 128 52 157 124 59 156 128 53 158 126 53 156 124 53 156 126 54 157 124 59 156 124 53 
-157 124 59 152 124 51 159 126 56 155 128 52 128 99 63 85 80 60 62 66 56 62 61 67 
-58 62 63 57 63 61 57 63 61 62 65 65 97 78 60 128 113 57 155 126 57 158 127 55 
-161 124 50 156 124 53 159 126 56 156 124 53 156 126 54 158 124 53 155 127 54 157 127 54 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 61 104 112 110 253 253 255 255 255 255 253 253 253 252 252 252 202 204 206 59 64 62 
-66 60 61 58 65 69 113 104 59 157 124 59 156 124 53 157 126 52 155 128 52 158 124 56 
-156 125 56 166 129 59 161 124 50 152 124 51 157 124 59 161 125 43 149 124 53 142 120 69 
-109 102 83 72 76 65 59 59 56 57 63 61 62 65 65 59 60 64 59 59 56 72 76 65 
-113 104 59 155 126 57 158 125 54 159 126 56 155 127 54 158 134 59 157 124 59 158 127 55 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 254 255 251 254 255 255 253 252 247 230 230 230 71 72 69 59 64 62 60 64 65 
-101 91 62 149 124 55 158 126 53 157 127 54 158 124 56 158 124 54 154 129 46 157 127 54 
-158 127 55 152 127 56 152 124 44 128 113 57 72 73 56 53 64 53 66 60 61 57 63 63 
-53 63 60 57 63 61 58 65 54 56 66 64 58 65 69 57 58 63 60 60 63 59 59 56 
-84 69 58 147 124 59 162 125 53 155 126 57 155 128 52 157 126 52 157 127 54 152 124 51 
-158 125 54 157 126 52 152 127 56 142 120 69 72 76 65 59 64 62 54 64 59 97 100 105 
-255 255 255 252 252 252 251 251 251 255 255 255 254 255 255 57 63 61 60 64 65 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-212 104 43 207 105 38 212 101 45 209 105 45 213 105 46 210 99 44 213 105 50 212 98 39 
-207 99 38 155 104 59 97 78 60 62 66 62 57 60 56 56 64 62 56 66 64 59 59 56 
-71 68 65 97 78 60 174 105 47 216 99 44 213 103 41 210 99 44 213 100 52 207 99 38 
-212 104 43 212 101 45 210 102 46 213 105 50 208 103 45 211 102 45 210 105 51 198 102 49 
-97 78 60 60 61 69 56 66 64 104 112 110 251 251 251 254 252 251 254 255 255 254 255 255 
-248 254 252 255 255 255 253 252 247 113 113 120 58 62 65 53 63 60 72 76 65 185 105 60 
-209 105 45 211 102 45 213 100 46 209 99 39 213 103 41 213 100 52 207 99 48 213 105 46 
-212 104 43 213 103 41 213 105 46 198 102 49 128 93 57 84 69 58 60 64 65 57 60 70 
-53 63 60 58 66 61 53 64 53 62 70 65 112 79 60 185 105 60 212 98 39 213 105 50 
-213 103 41 207 105 38 210 102 46 213 100 52 212 104 43 219 98 50 209 105 45 213 105 46 
-213 105 50 198 102 49 112 79 60 57 60 56 62 65 65 68 69 75 241 240 247 252 252 252 
-253 253 255 254 251 252 104 112 110 57 58 61 62 65 65 155 104 59 210 102 46 211 102 45 
-212 101 45 211 102 45 211 102 45 210 99 44 210 102 46 210 102 46 210 102 46 211 102 45 
-212 104 43 207 99 48 217 105 50 112 79 60 62 66 56 54 64 59 58 62 65 53 64 53 
-53 63 60 62 61 67 58 64 64 50 65 64 54 67 66 58 62 65 68 58 52 110 92 61 
-213 100 52 208 103 45 217 104 40 213 103 41 210 99 51 212 104 43 208 103 45 213 103 41 
-212 104 43 210 102 46 212 101 45 211 99 45 112 79 60 54 67 66 57 58 63 113 113 120 
-255 255 255 251 251 251 248 254 252 254 255 255 255 253 254 241 240 247 71 72 69 58 62 65 
-50 65 64 112 79 60 210 105 51 211 99 45 210 105 51 217 105 50 200 101 40 212 104 43 
-208 103 45 212 101 45 219 98 50 211 102 45 174 105 47 84 69 58 60 60 63 62 66 62 
-56 64 62 60 64 65 58 64 64 53 63 60 56 64 62 56 64 62 59 59 56 66 60 61 
-62 65 65 81 77 81 185 105 60 210 105 40 211 99 45 211 104 39 217 104 40 209 99 39 
-209 105 45 210 105 51 209 99 39 210 105 51 210 99 51 71 72 69 58 64 64 54 64 59 
-81 77 81 253 255 254 254 254 254 253 253 253 255 255 255 
-255 255 255 253 253 253 254 252 251 255 255 255 252 252 252 187 189 188 0 1 1 0 1 1 
-142 120 69 169 144 61 173 138 52 169 138 59 169 141 58 169 138 59 169 141 58 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 138 59 173 142 59 168 136 64 173 138 52 169 144 61 68 58 52 
-0 3 1 151 135 59 169 138 59 173 142 59 168 136 64 169 144 61 173 138 52 169 141 58 
-166 144 56 169 144 61 169 138 59 169 138 59 182 158 106 250 252 254 254 255 251 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 254 254 254 253 253 253 254 254 254 251 251 251 255 255 255 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 254 254 254 202 204 206 113 113 120 0 0 0 4 2 1 
-4 2 1 4 2 1 21 19 24 97 100 105 187 189 188 255 255 255 254 254 254 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 126 53 157 124 59 159 126 56 158 126 53 157 124 59 158 125 54 147 124 59 94 90 61 
-58 65 54 58 64 64 58 65 69 56 64 62 54 64 59 57 63 63 57 61 64 59 64 62 
-54 64 59 62 65 65 71 68 65 128 113 57 154 129 46 158 124 56 159 126 56 150 128 52 
-155 127 54 156 125 56 159 126 56 155 128 52 159 126 56 162 124 55 158 126 53 147 124 59 
-71 65 56 56 66 64 57 63 61 154 157 157 255 255 255 254 254 254 255 255 253 255 255 253 
-253 253 255 97 100 105 59 64 62 58 62 65 85 80 60 158 127 55 155 126 57 157 126 52 
-156 128 53 158 126 53 158 125 54 158 127 55 154 129 46 155 126 57 152 127 56 94 90 61 
-62 65 65 57 63 61 53 63 60 58 65 69 58 65 69 81 77 81 110 110 107 104 112 110 
-97 100 105 62 65 65 59 60 70 58 65 69 56 66 64 57 60 70 84 69 58 147 124 59 
-162 125 53 152 124 51 159 126 56 158 127 55 158 124 53 156 124 53 155 128 52 159 126 56 
-156 124 53 110 92 61 58 62 65 57 63 61 62 66 62 202 204 206 248 254 252 255 255 255 
-254 255 251 255 255 255 230 230 230 62 65 65 57 58 61 56 66 64 128 113 57 152 124 51 
-155 128 52 158 124 56 159 126 56 156 126 54 152 124 51 157 127 54 157 124 59 156 124 53 
-152 124 51 158 127 55 142 120 69 81 77 81 62 61 67 62 65 65 53 60 64 50 65 64 
-59 64 62 58 64 64 59 64 62 58 66 61 56 66 64 60 64 65 85 80 60 142 120 69 
-162 124 55 158 127 55 156 124 53 156 124 53 156 128 53 158 124 53 155 127 54 159 126 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 63 104 112 110 252 252 252 255 255 255 253 253 253 254 255 255 104 112 110 58 64 64 
-57 61 64 72 76 65 152 124 51 158 127 55 155 127 54 158 124 53 155 128 52 158 124 56 
-157 126 52 152 124 51 157 124 59 155 126 57 155 128 52 155 128 52 101 91 62 62 66 62 
-59 60 62 62 65 65 59 64 62 58 64 64 57 63 61 58 64 64 62 65 65 58 62 65 
-58 65 54 71 68 65 128 113 57 156 124 53 156 124 53 158 124 56 152 127 56 157 126 52 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 254 255 253 255 254 252 252 252 254 255 251 125 131 132 56 66 64 58 65 69 71 68 65 
-147 124 59 159 134 56 152 124 51 158 127 55 157 126 52 156 124 53 158 127 55 155 128 52 
-157 126 52 156 125 56 113 104 59 54 64 59 57 60 70 57 60 70 58 65 69 58 62 65 
-81 77 81 104 112 110 110 110 107 104 112 110 56 64 62 58 62 65 57 60 70 57 60 70 
-58 67 65 69 60 69 128 113 57 159 126 56 148 128 46 158 132 49 162 124 55 155 128 52 
-156 124 53 159 126 56 150 126 55 158 127 55 128 99 63 58 62 63 53 64 53 62 61 67 
-187 189 188 254 254 254 255 255 255 255 255 255 249 252 251 59 64 62 57 63 63 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 105 40 209 99 39 213 103 41 210 105 51 207 99 48 212 104 43 216 99 44 174 105 47 
-102 79 82 66 60 61 57 60 70 60 64 65 59 64 62 58 62 65 58 62 65 59 59 56 
-59 64 62 58 65 69 58 65 69 97 78 60 198 102 49 217 105 50 210 105 51 213 103 41 
-212 101 45 211 99 45 210 99 44 217 105 50 209 99 39 207 99 38 211 102 45 213 100 46 
-155 104 59 58 65 69 57 61 64 60 64 65 230 230 230 249 254 254 255 254 255 249 252 251 
-254 255 255 254 251 252 202 204 206 58 67 65 58 65 69 59 60 62 155 104 59 216 99 44 
-208 103 45 210 99 44 216 99 44 209 99 39 210 105 51 213 100 46 213 103 41 207 99 48 
-211 99 45 212 101 45 140 101 45 71 68 65 62 61 67 59 64 62 53 67 71 59 60 62 
-58 64 64 60 61 69 62 61 67 62 66 56 57 60 56 58 66 61 112 79 60 198 102 49 
-212 98 39 216 99 44 217 105 50 208 103 45 213 100 46 213 103 41 207 99 38 210 102 46 
-210 99 44 217 105 50 198 102 49 71 65 56 62 61 67 62 66 56 125 131 132 254 255 255 
-254 255 255 255 254 255 104 112 110 57 58 61 60 64 65 155 104 59 211 99 45 213 105 46 
-211 102 45 212 101 45 212 104 43 210 99 44 210 102 46 210 105 51 210 102 46 211 102 45 
-212 104 43 212 101 45 84 69 58 58 65 69 57 60 56 54 67 66 66 60 61 68 69 75 
-104 112 110 97 100 105 110 110 107 60 60 63 57 60 70 54 67 66 58 67 65 56 66 64 
-112 79 60 208 103 45 212 98 39 213 100 46 213 105 46 209 99 39 213 105 50 211 102 45 
-209 99 39 213 100 52 208 103 45 210 102 46 174 105 47 54 67 66 58 59 64 62 65 65 
-255 255 255 254 255 251 254 254 253 255 255 255 255 255 253 140 141 138 62 65 65 53 60 64 
-62 66 56 198 102 49 217 105 50 209 99 39 213 103 41 207 99 48 217 98 38 209 105 45 
-211 102 45 216 99 44 212 101 45 128 93 57 53 67 71 58 68 63 58 65 69 50 65 64 
-57 60 56 71 72 69 104 112 110 104 112 110 104 112 110 53 63 60 53 63 60 58 64 64 
-58 62 65 53 60 64 62 65 65 174 105 47 216 99 44 207 105 48 213 105 50 210 105 51 
-210 99 44 211 102 45 211 102 45 208 103 45 213 103 41 155 104 59 54 67 66 59 59 56 
-57 63 63 160 163 161 255 253 254 255 254 255 255 255 253 
-249 252 251 255 255 255 254 255 251 252 252 252 255 255 253 97 100 105 0 1 1 48 49 51 
-168 136 64 173 138 52 173 142 59 169 141 58 169 141 58 169 138 59 173 142 59 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 138 59 166 144 56 169 144 61 173 138 52 164 144 50 109 102 83 
-0 3 1 142 120 69 169 138 59 166 144 56 169 141 58 166 144 56 169 141 58 169 141 58 
-165 143 59 169 141 58 169 138 59 182 158 106 255 255 253 253 252 247 253 253 255 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 
-251 251 251 255 255 255 202 206 211 97 100 105 0 0 0 4 2 1 4 2 1 0 0 0 
-0 0 0 4 2 1 0 0 0 0 1 1 4 2 1 62 65 65 219 227 224 255 255 255 
-255 255 255 255 255 255 219 227 224 125 131 132 62 65 65 21 19 24 0 0 0 21 19 24 
-57 58 61 140 141 138 219 227 224 254 254 254 252 252 252 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 166 129 59 156 126 54 158 127 55 162 125 53 147 124 59 72 76 65 60 60 63 
-53 63 60 58 62 65 58 64 64 57 60 56 97 100 105 104 112 110 68 69 75 57 63 61 
-57 63 63 56 64 62 54 67 66 62 66 56 113 104 59 168 131 61 161 124 50 155 126 57 
-155 127 54 156 124 53 159 126 56 152 124 51 158 127 55 162 124 55 158 124 53 158 132 49 
-110 92 61 58 62 65 59 64 62 88 95 83 253 253 255 251 251 251 249 252 251 255 254 255 
-187 189 188 57 61 64 57 63 61 59 60 64 142 120 69 157 126 52 156 124 53 156 128 53 
-149 124 53 159 126 56 162 124 52 157 124 59 158 127 55 150 126 55 94 90 61 60 60 63 
-57 58 61 62 65 65 71 72 69 154 157 157 230 230 230 254 255 251 250 250 247 253 255 254 
-248 254 252 241 240 247 187 189 188 97 100 105 62 61 67 57 60 56 62 66 56 71 68 65 
-142 120 69 158 124 54 157 126 52 155 128 52 157 124 59 158 124 54 159 134 56 156 124 53 
-157 124 59 155 128 52 72 76 65 58 65 54 57 60 56 110 110 107 254 255 255 254 255 251 
-254 254 254 255 253 254 125 131 132 59 59 56 62 66 62 72 76 65 158 132 49 159 126 56 
-156 126 54 158 125 54 159 126 56 156 126 54 155 128 52 158 127 55 156 125 56 157 126 52 
-157 124 59 128 113 57 71 65 56 53 60 64 56 66 64 57 60 56 62 65 65 57 63 61 
-110 110 107 110 110 107 57 63 61 53 60 64 60 61 69 62 65 65 59 60 62 68 69 75 
-128 99 63 152 124 44 159 126 56 159 126 56 152 124 44 158 127 55 159 126 56 155 127 54 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 63 104 112 110 254 252 251 254 252 250 255 255 255 230 230 230 58 62 65 60 64 65 
-58 65 69 128 99 63 161 124 50 157 126 52 156 124 53 158 125 54 159 126 56 158 126 53 
-158 125 54 158 124 56 156 128 53 158 124 56 147 124 59 85 80 60 66 60 61 57 60 70 
-57 60 70 56 64 62 57 63 61 97 100 105 104 112 110 62 70 69 56 64 62 58 65 69 
-58 62 65 51 61 71 59 64 62 128 99 63 161 124 50 159 134 56 155 127 54 152 124 51 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 253 255 254 254 255 251 230 230 230 58 65 54 56 64 62 51 61 71 113 104 59 
-158 124 53 159 126 56 152 124 51 156 128 53 157 126 52 156 125 56 157 124 59 156 124 53 
-162 125 53 110 92 61 58 65 69 50 65 64 57 60 56 62 61 67 140 141 138 224 220 212 
-255 255 255 250 247 249 254 251 254 255 255 255 255 255 253 187 189 188 104 112 110 58 62 63 
-58 62 65 53 64 53 69 60 69 128 113 57 155 126 57 152 124 51 162 125 53 152 127 56 
-158 125 54 157 126 52 156 128 53 156 124 53 161 124 50 94 90 61 58 62 63 62 65 65 
-81 77 81 254 255 255 251 251 251 254 254 254 254 255 255 60 60 63 58 62 63 60 64 65 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 100 52 209 99 39 212 101 45 211 99 45 217 105 50 210 99 51 174 105 47 71 65 56 
-54 64 59 59 64 62 59 64 62 59 59 56 59 64 62 104 112 110 104 112 110 58 65 54 
-66 60 61 54 67 66 56 64 62 58 65 69 66 60 61 174 105 47 211 102 45 211 102 45 
-212 104 43 208 103 45 210 99 44 217 105 50 216 99 44 212 104 43 212 104 43 211 99 45 
-210 102 46 85 80 60 62 65 65 57 58 61 125 131 132 253 255 254 254 251 252 254 255 251 
-249 254 254 254 252 251 104 112 110 57 60 56 56 66 64 97 78 60 211 104 39 212 101 45 
-210 99 44 210 102 46 211 104 39 211 102 45 210 102 46 217 104 40 212 104 43 212 101 45 
-208 103 45 112 79 60 56 66 64 57 63 61 57 60 56 58 62 65 57 60 56 71 72 69 
-110 110 107 97 100 105 56 64 62 56 66 64 62 61 67 57 58 63 59 64 62 84 69 58 
-185 105 60 208 103 45 209 99 39 212 101 45 210 102 46 207 105 38 207 105 48 213 100 46 
-213 105 46 213 103 41 207 99 38 142 101 66 57 61 64 53 63 60 66 60 61 241 240 247 
-248 251 253 254 251 252 104 112 110 60 64 65 58 62 63 155 104 59 211 99 45 211 102 45 
-208 103 45 212 101 45 213 100 46 211 102 45 209 105 45 210 102 46 211 99 45 212 101 45 
-213 105 46 110 92 61 58 62 65 62 61 67 58 68 63 110 110 107 187 189 188 255 253 254 
-254 254 253 253 255 254 255 255 255 255 255 253 172 178 183 97 100 105 57 58 61 56 66 64 
-53 63 60 112 79 60 213 105 46 216 99 44 207 105 38 212 104 43 210 105 51 212 98 39 
-213 105 46 213 100 46 208 103 45 210 105 51 208 103 45 62 66 62 62 65 65 59 60 62 
-202 204 206 248 254 252 254 255 251 255 254 255 241 240 247 57 63 61 60 64 65 58 62 63 
-140 101 45 213 100 46 212 104 43 209 105 45 212 98 39 212 104 43 213 100 46 212 101 45 
-210 102 46 210 102 46 128 93 57 62 65 65 58 59 64 58 62 65 57 60 56 140 141 138 
-224 220 212 251 251 251 255 255 253 254 252 250 254 255 255 253 255 254 202 204 206 113 113 120 
-62 66 56 59 59 56 62 61 67 69 60 69 174 105 47 209 105 45 212 104 43 216 99 44 
-212 101 45 219 98 50 208 103 45 213 103 41 208 103 45 210 105 40 112 79 60 62 61 67 
-56 66 64 68 69 75 241 240 247 254 251 252 254 255 251 
-253 255 254 255 254 255 254 255 251 254 254 255 242 238 229 0 3 1 0 0 0 109 102 83 
-169 141 58 169 141 58 169 138 59 169 141 58 169 141 58 169 144 61 173 142 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 173 138 52 169 144 61 173 142 59 166 144 56 148 133 63 
-0 1 1 88 95 83 173 142 59 164 134 50 173 145 52 169 144 61 169 144 61 169 141 58 
-169 144 61 173 142 59 182 158 106 254 254 254 248 254 252 254 255 251 254 254 254 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 252 252 252 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 
-255 255 255 213 212 223 48 49 51 6 9 5 0 0 0 0 1 1 0 0 0 4 2 1 
-0 0 0 0 0 0 4 1 5 0 1 1 4 2 1 0 0 0 6 9 5 202 206 211 
-255 255 255 140 141 138 0 1 1 0 0 0 97 100 105 125 131 132 140 141 138 97 100 105 
-71 72 69 0 0 0 0 0 0 156 160 157 255 255 255 254 254 254 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 132 49 152 124 51 157 127 54 156 124 53 148 128 46 71 72 69 53 60 64 60 64 65 
-62 65 65 81 77 81 187 189 188 241 240 247 250 252 254 253 255 254 248 254 252 230 230 230 
-156 160 157 59 60 64 60 64 65 53 63 60 59 64 62 113 104 59 155 128 52 162 124 55 
-156 126 54 158 125 54 159 126 56 156 125 56 156 128 53 158 126 53 158 125 54 157 126 52 
-147 124 59 68 69 75 57 63 61 57 60 56 187 189 188 254 255 251 248 254 252 253 253 255 
-110 110 107 53 63 60 58 65 69 94 90 61 161 125 43 159 126 56 156 125 56 157 127 54 
-159 134 56 157 124 59 157 124 59 152 124 51 156 126 54 128 99 63 58 62 65 58 62 63 
-62 65 65 97 100 105 241 240 247 255 255 253 253 252 247 254 254 254 250 252 254 254 255 251 
-254 255 251 255 254 255 254 254 255 254 255 251 156 160 157 62 65 65 57 58 61 60 64 65 
-85 80 60 155 126 57 162 125 53 155 127 54 155 128 52 156 125 56 157 127 54 158 125 54 
-157 124 59 161 125 43 113 104 59 56 64 62 58 62 65 56 64 62 230 230 230 254 252 251 
-254 254 255 241 240 247 71 72 69 58 62 65 54 64 59 113 104 59 156 124 53 156 124 53 
-155 127 54 158 125 54 158 125 54 155 127 54 157 127 54 158 125 54 161 124 50 158 132 49 
-128 113 57 71 68 65 57 63 63 58 65 69 59 64 62 140 141 138 213 212 223 253 255 254 
-249 254 254 253 255 254 253 255 254 202 204 206 113 113 120 58 64 64 58 62 65 53 63 60 
-71 65 56 142 120 69 154 129 46 158 124 54 158 127 55 149 124 55 159 126 56 155 128 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 61 64 110 110 107 255 255 253 255 255 253 253 253 253 145 151 154 58 64 64 57 63 63 
-72 76 65 159 126 56 162 124 55 158 126 53 156 124 53 156 128 53 162 124 55 152 124 51 
-158 127 55 158 124 54 157 124 59 155 127 54 97 78 60 53 60 64 58 65 69 59 64 62 
-88 95 83 187 189 188 241 240 247 254 251 249 254 255 251 255 254 255 230 230 230 160 163 161 
-71 72 69 60 64 65 53 67 71 57 58 61 113 104 59 154 129 46 157 124 59 155 126 57 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 253 249 252 251 254 255 251 145 151 154 57 63 61 58 62 65 72 76 65 155 126 57 
-158 124 56 157 124 59 156 126 54 158 127 55 156 126 54 156 125 56 158 124 56 162 124 55 
-128 113 57 59 60 62 58 59 68 62 66 56 88 95 83 224 220 212 254 251 252 253 252 247 
-253 252 247 254 255 251 255 253 254 255 253 254 254 251 249 254 255 251 251 251 251 202 204 206 
-68 69 75 58 66 61 53 64 53 71 68 65 147 124 59 159 126 56 155 128 52 159 126 56 
-155 126 57 161 124 50 158 124 56 159 126 56 152 124 44 142 120 69 62 61 67 57 63 61 
-59 64 62 187 189 188 255 255 255 254 254 254 252 252 252 62 65 65 58 62 63 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-216 99 44 210 105 51 211 102 45 213 105 46 212 101 45 174 105 47 62 70 69 53 60 64 
-56 64 62 60 64 65 125 131 132 224 220 212 255 254 255 255 254 255 253 253 255 249 254 254 
-202 204 206 110 110 107 57 63 61 57 60 56 56 66 64 71 68 65 174 105 47 210 102 46 
-216 99 44 209 105 45 208 103 45 210 99 44 216 99 44 212 101 45 213 105 50 211 102 45 
-216 99 44 155 104 59 59 64 62 59 60 64 68 69 75 254 255 255 254 254 253 251 251 251 
-255 255 255 230 230 230 60 64 65 58 62 65 60 64 65 155 104 59 208 103 45 210 102 46 
-216 99 44 208 103 45 210 105 51 210 102 46 212 98 39 216 99 44 207 99 48 210 102 46 
-112 79 60 59 64 62 50 65 64 54 64 59 71 81 83 154 157 157 230 230 230 253 253 255 
-253 255 254 254 252 250 255 255 253 172 178 183 88 95 83 58 66 61 54 64 59 60 61 69 
-72 73 56 210 99 51 210 105 51 207 105 48 213 103 41 216 99 44 216 99 44 211 99 45 
-209 99 39 211 102 45 210 105 51 210 102 46 71 72 69 58 64 64 66 60 61 156 160 157 
-254 255 255 254 251 252 104 112 110 60 64 65 58 62 63 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 213 100 46 211 102 45 208 103 45 213 103 41 213 103 41 212 104 43 
-155 104 59 58 66 61 53 60 64 53 63 60 140 141 138 254 255 255 249 254 246 254 254 253 
-254 255 251 254 251 252 253 255 254 248 254 252 255 255 253 254 255 255 125 131 132 58 62 63 
-62 61 67 50 65 64 185 105 60 208 103 45 210 105 51 213 100 46 209 105 45 213 103 41 
-208 103 45 212 98 39 210 99 44 209 105 45 213 103 41 84 69 58 53 63 60 58 62 65 
-187 189 188 253 255 254 254 252 250 250 252 254 160 163 161 53 63 60 53 60 64 84 69 58 
-210 105 51 210 105 40 210 102 46 207 105 48 211 104 39 219 98 50 210 105 40 211 99 45 
-210 105 40 185 105 60 62 65 65 58 65 54 58 65 54 68 69 75 213 212 223 255 255 253 
-255 255 255 255 255 255 255 253 254 254 252 251 255 255 253 254 251 252 253 253 253 255 255 255 
-187 189 188 71 72 69 62 61 67 53 67 71 62 66 56 198 102 49 198 102 49 217 98 38 
-209 105 45 213 100 46 211 99 45 216 99 44 216 99 44 207 105 38 198 102 49 71 68 65 
-54 67 66 57 63 63 187 189 188 255 255 255 253 255 254 
-255 255 253 253 253 255 253 252 247 255 255 255 125 131 132 0 3 1 4 2 1 142 120 69 
-169 141 58 169 141 58 169 138 59 169 144 61 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 144 61 169 141 58 169 141 58 169 141 58 169 138 59 173 142 59 169 144 61 
-71 68 65 4 2 1 165 143 59 173 142 59 169 141 58 166 134 56 165 143 59 169 141 58 
-168 136 64 169 144 61 250 247 249 248 254 252 255 255 253 254 254 254 254 251 252 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 251 251 251 255 255 255 
-213 212 223 21 19 24 0 1 1 0 0 0 0 1 1 0 0 0 4 2 1 71 72 69 
-140 141 138 172 178 183 202 204 206 202 204 206 140 141 138 48 49 51 0 1 1 21 19 24 
-160 163 161 0 1 1 145 151 154 241 240 247 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 202 204 206 88 95 83 0 0 0 172 178 183 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 124 44 157 124 59 158 127 55 158 132 49 97 78 60 54 67 66 58 65 69 53 64 53 
-154 157 157 253 255 254 253 252 247 254 255 251 254 252 251 254 250 255 254 250 255 255 253 254 
-254 255 251 224 220 212 97 100 105 60 64 65 54 67 66 58 65 54 128 113 57 162 124 55 
-158 127 55 157 126 52 157 126 52 158 127 55 155 127 54 152 124 44 157 124 59 157 124 59 
-154 129 46 85 80 60 59 60 64 59 64 62 125 131 132 254 255 251 255 255 253 230 230 230 
-57 60 56 59 64 62 53 67 71 147 124 59 162 125 53 155 127 54 155 126 57 158 125 54 
-152 124 44 157 124 59 155 128 52 158 127 55 149 124 53 66 60 61 58 66 61 58 62 65 
-97 100 105 241 240 247 255 255 253 254 254 255 254 254 255 254 255 251 254 255 251 254 255 255 
-254 254 254 254 254 253 254 254 253 254 255 255 253 255 254 187 189 188 58 67 65 53 63 60 
-59 64 62 113 104 59 158 125 54 152 124 51 158 127 55 158 127 55 156 124 53 158 124 53 
-152 127 56 157 126 52 159 126 56 71 72 69 58 62 65 53 63 60 140 141 138 255 254 255 
-255 255 253 172 178 183 58 65 69 58 65 69 68 69 75 155 127 54 159 126 56 158 127 55 
-156 125 56 158 126 53 158 126 53 155 128 52 159 126 56 162 125 53 157 126 52 147 124 59 
-62 65 65 62 66 62 58 59 64 71 72 69 202 206 211 253 253 255 254 255 251 249 254 254 
-254 255 251 255 253 254 254 250 255 255 254 255 249 254 254 172 178 183 58 65 69 58 59 68 
-50 65 64 84 69 58 155 128 52 157 124 59 156 124 53 157 124 59 155 128 52 158 127 55 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 62 65 110 110 107 255 255 253 255 255 253 253 253 255 81 77 81 57 60 56 62 66 62 
-113 104 59 159 126 56 161 124 50 157 124 59 158 124 56 158 126 53 158 127 55 158 125 54 
-154 129 46 162 125 53 159 126 56 101 91 62 56 66 64 58 67 65 54 64 59 125 131 132 
-241 240 247 255 255 255 253 253 253 255 253 254 254 251 252 255 255 255 251 251 251 254 255 251 
-230 230 230 97 100 105 59 59 56 53 67 71 62 65 65 128 113 57 152 124 51 159 126 56 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 252 250 255 255 255 253 255 254 71 72 69 57 61 64 59 60 64 113 104 59 161 125 43 
-157 127 54 155 128 52 158 125 54 158 125 54 158 127 55 158 126 53 161 124 50 155 126 57 
-62 70 65 62 66 56 62 65 65 81 77 81 242 238 229 255 255 253 255 254 255 253 252 247 
-253 255 254 254 255 251 254 254 254 251 251 251 255 255 253 252 252 252 252 252 252 253 253 255 
-219 227 224 60 60 63 58 62 65 54 64 59 101 91 62 155 127 54 155 128 52 158 126 53 
-155 127 54 158 127 55 158 124 54 156 128 53 158 127 55 154 129 46 85 80 60 59 64 62 
-59 64 62 104 112 110 254 255 255 253 253 253 255 255 255 62 65 65 57 58 61 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-207 105 38 210 105 51 211 104 39 207 105 48 200 101 40 62 65 65 57 60 56 53 67 71 
-68 69 75 202 204 206 254 252 250 255 255 253 248 254 252 253 255 254 254 254 253 254 255 251 
-254 255 251 255 255 255 172 178 183 54 64 59 62 65 65 53 60 64 71 68 65 212 104 43 
-216 99 44 211 102 45 208 103 45 208 103 45 210 102 46 210 99 44 210 102 46 210 102 46 
-209 99 39 210 105 51 71 65 56 58 62 65 57 61 64 187 189 188 255 255 253 255 255 255 
-255 255 253 140 141 138 53 60 64 57 63 61 81 77 81 213 105 50 217 105 50 208 103 45 
-213 100 46 210 102 46 210 102 46 217 105 50 207 99 48 212 98 39 217 105 50 142 101 66 
-58 62 63 58 65 54 59 64 62 97 100 105 241 240 247 254 255 255 253 255 254 249 254 246 
-254 255 251 253 252 247 252 252 252 249 254 254 248 254 253 156 160 157 59 60 62 53 60 64 
-58 66 61 97 78 60 211 99 45 210 105 51 210 99 44 211 99 45 213 105 46 208 103 45 
-217 105 50 213 100 52 210 102 46 216 99 44 128 93 57 57 58 61 53 67 71 88 95 83 
-248 251 253 255 254 255 104 112 110 58 62 63 58 62 63 155 104 59 213 105 50 211 102 45 
-208 103 45 211 99 45 213 100 46 209 105 45 213 103 41 216 99 44 213 100 46 208 103 45 
-97 78 60 62 65 65 53 67 71 110 110 107 253 255 254 249 252 246 255 254 255 249 254 246 
-253 253 255 254 252 251 254 255 251 254 255 255 254 252 250 254 255 251 254 255 251 97 100 105 
-59 60 64 58 65 54 112 79 60 212 104 43 213 105 50 211 99 45 211 104 39 210 105 51 
-208 103 45 213 103 41 210 105 51 213 105 46 212 104 43 128 93 57 53 63 60 58 64 64 
-154 157 157 253 255 254 254 251 249 254 255 255 71 81 83 56 66 64 66 60 61 142 101 66 
-217 98 38 209 105 45 207 105 38 213 100 46 210 99 51 207 99 38 217 105 50 209 105 45 
-210 102 46 97 78 60 59 60 62 58 65 69 68 69 75 213 212 223 255 255 253 253 252 247 
-253 255 254 249 254 254 254 255 255 255 255 255 255 255 253 255 255 253 254 254 253 255 255 253 
-254 251 252 219 227 224 71 81 83 57 60 56 62 65 65 112 79 60 207 105 48 210 99 44 
-209 99 39 210 99 44 213 100 52 217 98 38 207 99 38 213 105 46 212 101 45 112 79 60 
-59 64 62 59 64 62 81 77 81 249 254 254 253 255 254 
-249 254 246 255 254 255 253 252 247 254 255 255 21 19 24 0 1 1 71 65 56 168 136 64 
-169 141 58 169 141 58 169 141 58 169 144 61 169 141 58 166 144 56 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 144 61 166 134 56 173 142 59 169 141 58 169 138 59 169 138 59 166 144 56 
-109 102 83 4 2 1 142 120 69 169 138 59 169 144 61 169 144 61 169 144 61 173 138 52 
-169 141 58 178 172 162 249 254 254 254 255 251 250 247 249 255 255 255 255 254 255 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 252 252 252 255 255 255 255 255 255 254 254 254 254 254 254 213 212 223 
-48 49 51 4 2 1 0 0 0 0 1 1 4 1 5 113 113 120 202 206 211 255 255 255 
-253 253 253 254 254 254 255 255 255 255 255 255 219 227 224 48 49 51 4 2 1 0 0 0 
-21 19 24 97 100 105 255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 255 255 255 
-254 254 254 255 255 255 219 227 224 0 0 0 21 19 24 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 124 59 158 132 49 157 124 59 128 113 57 62 66 56 50 65 64 57 63 61 172 178 183 
-255 255 253 254 255 251 254 255 255 254 255 255 253 255 254 249 252 251 255 255 253 249 252 251 
-254 252 250 255 255 255 241 240 247 68 69 75 57 63 63 58 65 69 84 69 58 150 128 52 
-159 126 56 156 125 56 154 129 46 158 127 55 158 124 56 157 126 52 158 127 55 155 126 57 
-156 129 45 128 99 63 59 60 64 56 64 62 71 72 69 255 255 255 254 255 251 172 178 183 
-60 60 63 58 64 64 72 73 56 158 127 55 157 124 59 155 128 52 152 127 56 158 125 54 
-156 128 53 157 124 59 158 132 49 158 127 55 97 78 60 62 65 65 59 64 62 68 69 75 
-241 240 247 254 255 251 254 255 251 254 255 251 251 251 251 254 255 255 255 255 255 255 253 254 
-253 255 254 251 251 251 255 255 255 255 254 255 254 255 251 249 254 254 113 113 120 56 64 62 
-56 66 64 71 68 65 147 124 59 161 124 50 157 124 59 154 129 46 152 124 51 159 126 56 
-155 127 54 155 128 52 156 124 53 110 92 61 62 66 56 53 60 64 71 72 69 254 254 255 
-255 254 255 113 113 120 58 65 69 59 64 62 101 91 62 158 127 55 152 124 44 156 125 56 
-156 126 54 158 126 53 158 127 55 155 128 52 157 124 59 162 125 53 149 124 55 101 91 62 
-59 64 62 53 64 53 58 66 61 219 227 224 253 253 255 253 255 254 253 253 255 254 251 249 
-255 255 253 251 251 251 249 252 251 253 253 255 255 255 253 254 251 249 172 178 183 62 61 67 
-58 65 69 53 60 64 113 104 59 155 126 57 158 125 54 159 126 56 152 124 51 159 126 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 62 65 110 110 107 255 255 253 253 253 253 219 227 224 57 63 63 62 70 65 62 66 56 
-155 126 57 157 124 59 157 126 52 157 124 59 159 126 56 161 124 50 155 128 52 159 126 56 
-159 126 56 152 124 44 147 124 59 59 59 56 53 67 71 57 58 61 125 131 132 253 255 254 
-255 255 255 254 255 251 254 255 251 255 255 255 248 251 253 254 255 251 254 255 251 255 255 255 
-253 253 255 250 247 249 71 81 83 58 66 61 53 60 64 72 76 65 158 134 59 161 124 50 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 253 250 252 254 187 189 188 57 63 61 60 61 69 66 60 61 150 126 55 161 124 50 
-156 126 54 154 129 46 156 126 54 156 125 56 158 127 55 161 124 50 157 127 54 113 104 59 
-58 65 69 58 66 61 58 64 64 213 212 223 254 255 255 251 251 251 254 255 251 250 252 254 
-253 255 254 253 253 255 255 255 255 249 252 251 251 251 251 249 254 254 254 255 255 254 255 255 
-254 255 255 160 163 161 59 60 64 58 62 65 62 66 56 142 120 69 162 125 53 155 126 57 
-158 127 55 152 124 51 159 126 56 150 126 55 166 129 59 156 129 45 142 120 69 57 60 56 
-57 63 61 59 64 62 230 230 230 255 255 255 254 254 254 62 65 65 58 62 63 60 64 65 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-209 105 45 207 99 38 213 103 41 208 103 45 110 92 61 58 62 65 54 64 59 68 69 75 
-219 227 224 250 252 254 253 255 254 254 254 253 254 255 251 254 255 251 249 254 254 249 254 254 
-254 255 251 249 254 254 255 255 253 172 178 183 53 63 60 60 64 65 66 60 61 112 79 60 
-210 102 46 210 102 46 211 102 45 209 105 45 213 105 50 210 102 46 212 101 45 210 102 46 
-209 105 45 216 99 44 112 79 60 53 60 64 62 65 65 125 131 132 253 255 254 253 253 253 
-248 254 252 88 95 83 62 61 67 58 65 54 142 101 66 210 99 44 217 98 38 208 103 45 
-208 103 45 213 100 46 212 98 39 217 105 50 198 102 49 211 104 39 198 102 49 71 68 65 
-60 61 69 58 62 65 97 100 105 241 240 247 254 250 255 255 253 254 250 250 247 255 255 253 
-255 253 254 254 255 255 254 252 251 254 255 251 254 255 251 251 251 251 178 172 162 59 60 62 
-57 63 61 51 61 71 174 105 47 208 103 45 217 105 50 208 103 45 208 103 45 207 105 48 
-210 102 46 212 98 39 211 102 45 213 105 50 198 102 49 62 65 65 59 64 62 59 64 62 
-187 189 188 254 251 252 104 112 110 58 62 63 60 64 65 155 104 59 213 105 50 211 102 45 
-213 105 46 212 101 45 212 101 45 209 105 45 210 99 44 217 105 50 210 105 51 198 102 49 
-53 60 64 57 61 64 57 63 61 202 204 206 253 252 247 254 250 255 255 253 254 252 252 252 
-255 255 255 253 255 254 253 253 253 254 255 251 249 254 246 249 252 251 254 255 251 187 189 188 
-62 66 56 51 61 71 71 68 65 213 103 41 207 99 38 213 105 46 210 102 46 211 99 45 
-211 102 45 212 101 45 208 103 45 212 98 39 210 99 44 128 93 57 58 62 65 59 64 62 
-156 160 157 253 255 254 254 251 249 219 227 224 57 63 61 53 63 60 71 65 56 185 105 60 
-212 101 45 209 105 45 217 104 40 216 99 44 207 99 48 213 105 50 209 99 39 209 105 45 
-142 101 66 58 65 54 53 67 71 58 64 64 202 204 206 254 255 251 254 255 255 254 255 251 
-254 255 255 253 253 253 254 255 255 254 255 255 253 253 253 254 254 254 252 252 252 254 255 251 
-253 255 254 250 250 247 178 172 162 57 61 64 62 61 67 58 65 54 185 105 60 213 105 46 
-213 103 41 210 99 51 207 105 38 217 105 50 213 105 46 207 99 38 212 101 45 185 105 60 
-59 59 56 59 64 62 62 66 62 213 212 223 254 255 255 
-254 255 251 255 254 255 248 254 252 156 160 157 4 2 1 0 1 1 109 102 83 173 145 52 
-169 141 58 169 144 61 166 144 56 166 144 56 173 142 59 169 141 58 166 144 56 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-173 138 52 169 144 61 168 136 64 173 142 59 164 144 50 169 141 58 173 138 52 169 141 58 
-137 137 94 0 0 0 109 102 83 173 142 59 169 141 58 169 141 58 166 144 56 173 142 59 
-169 144 61 255 254 255 249 254 246 249 254 246 255 255 255 254 251 252 254 255 251 249 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 252 252 252 253 253 253 255 255 255 241 240 247 71 72 69 
-0 1 1 0 0 0 0 0 0 88 95 83 213 212 223 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 253 253 253 219 227 224 88 95 83 0 0 0 0 0 0 4 2 1 
-0 1 1 145 151 154 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 
-253 253 253 254 254 254 253 253 253 97 100 105 0 0 0 219 227 224 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 127 56 161 125 43 152 127 56 85 80 60 56 64 62 60 64 65 104 112 110 255 254 255 
-254 255 251 255 255 253 254 254 255 253 253 255 255 255 255 255 255 253 249 252 251 255 255 253 
-254 250 255 248 254 252 253 255 254 202 206 211 57 60 56 53 60 64 60 60 63 128 113 57 
-158 125 54 155 126 57 154 129 46 156 126 54 157 124 59 162 125 53 156 124 53 155 128 52 
-158 124 53 152 127 56 62 70 69 56 66 64 59 59 56 213 212 223 254 255 251 97 100 105 
-62 61 67 53 60 64 113 104 59 157 124 59 159 126 56 154 129 46 157 127 54 158 124 53 
-158 125 54 152 127 56 162 124 52 149 124 55 71 68 65 53 60 64 58 62 65 187 189 188 
-253 253 255 255 254 255 254 251 252 254 252 251 255 255 253 253 253 255 253 253 255 255 254 255 
-254 251 249 255 254 255 254 255 255 254 252 244 253 252 247 255 254 255 230 230 230 57 60 56 
-56 66 64 57 63 61 128 113 57 162 125 53 162 124 55 156 128 53 155 127 54 158 124 54 
-159 126 56 156 124 53 155 128 52 157 124 59 71 65 56 56 66 64 57 63 61 202 206 211 
-254 250 255 72 76 65 53 64 53 59 60 64 128 113 57 159 126 56 157 126 52 158 124 56 
-157 127 54 156 124 53 158 127 55 150 128 52 157 124 59 162 125 53 147 124 59 59 60 64 
-58 64 64 62 61 67 172 178 183 255 255 255 254 252 244 254 252 244 254 252 251 249 254 254 
-248 254 253 253 255 254 255 255 253 255 255 253 253 253 253 253 255 254 249 254 254 140 141 138 
-57 58 61 58 65 69 62 65 65 150 128 52 162 124 52 155 128 52 155 127 54 158 124 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 62 65 110 110 107 254 252 251 254 255 255 154 157 157 57 63 63 59 59 56 81 77 81 
-161 124 50 156 126 54 150 128 52 152 124 51 161 124 50 158 126 53 155 127 54 158 125 54 
-157 124 59 155 126 57 94 90 61 58 62 65 58 62 63 88 95 83 241 240 247 248 254 252 
-255 255 253 255 255 255 254 255 255 253 255 254 248 254 252 253 255 254 254 255 255 254 254 253 
-254 254 253 253 255 254 224 220 212 59 59 56 58 62 65 59 64 62 113 104 59 162 125 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 254 255 254 255 255 125 131 132 57 61 64 58 62 65 94 90 61 158 127 55 158 124 56 
-157 124 59 158 132 49 158 127 55 152 124 51 156 126 54 162 125 53 147 124 59 72 76 65 
-59 60 62 58 62 65 125 131 132 255 254 255 253 255 254 254 255 251 255 255 253 254 251 249 
-253 252 247 254 255 251 254 255 251 255 255 253 255 255 255 254 255 255 255 255 255 254 255 251 
-253 252 247 254 255 255 81 77 81 56 64 62 62 61 67 110 92 61 155 127 54 156 126 54 
-156 124 53 158 126 53 150 128 52 157 124 59 158 127 55 162 124 52 152 127 56 72 76 65 
-57 63 61 57 63 61 178 172 162 254 254 254 255 255 255 57 58 61 60 64 65 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-212 101 45 213 100 52 213 105 46 198 102 49 56 66 64 62 65 65 60 60 63 172 178 183 
-254 251 249 254 255 251 248 254 252 254 255 255 252 252 252 254 255 251 253 252 247 254 255 251 
-253 253 255 255 254 255 249 254 254 253 252 247 145 151 154 58 65 69 58 65 54 62 65 65 
-200 101 40 210 102 46 216 99 44 216 99 44 210 99 44 212 101 45 212 101 45 213 105 46 
-213 100 46 207 105 48 155 104 59 56 66 64 53 63 60 81 77 81 254 255 255 254 255 255 
-224 220 212 60 61 69 53 63 60 62 70 65 212 98 39 209 105 45 213 103 41 207 105 48 
-211 102 45 210 105 51 216 99 44 207 105 38 213 103 41 213 100 46 128 93 57 54 67 66 
-59 64 62 71 72 69 230 230 230 254 255 251 254 255 251 253 252 247 249 254 246 254 250 255 
-254 255 251 255 255 255 254 252 250 254 255 251 251 251 251 255 254 255 253 253 255 104 112 110 
-57 60 70 62 66 62 71 65 56 209 105 45 211 104 39 207 105 48 212 101 45 216 99 44 
-208 103 45 213 105 46 209 99 39 211 102 45 211 99 45 112 79 60 62 61 67 59 64 62 
-145 151 154 254 251 252 104 112 110 62 65 65 58 62 63 155 104 59 210 102 46 211 102 45 
-212 104 43 211 99 45 211 102 45 208 103 45 208 103 45 217 105 50 210 105 51 174 105 47 
-56 66 64 58 65 54 88 95 83 249 254 254 249 252 251 254 255 251 253 253 255 255 254 255 
-255 255 253 254 255 251 255 255 253 253 253 255 255 254 255 255 254 255 252 252 252 255 254 255 
-68 69 75 62 61 67 53 67 71 155 104 59 217 105 50 211 102 45 208 103 45 213 103 41 
-212 101 45 213 100 46 207 105 48 216 99 44 210 102 46 112 79 60 62 61 67 57 60 56 
-154 157 157 253 255 254 254 255 251 140 141 138 57 63 61 60 64 65 97 78 60 216 99 44 
-212 101 45 210 105 51 209 99 39 216 99 44 212 104 43 208 103 45 210 105 51 216 99 44 
-85 80 60 58 65 54 56 66 64 125 131 132 255 255 253 254 254 255 249 254 246 253 255 254 
-255 255 253 254 252 251 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 253 
-254 251 252 254 255 251 254 255 251 88 95 83 50 65 64 69 60 69 112 79 60 210 99 44 
-213 100 46 208 103 45 210 105 40 207 105 38 207 99 48 217 105 50 208 103 45 209 105 45 
-81 77 81 66 60 61 57 60 56 156 160 157 254 254 255 
-253 252 247 255 255 255 254 252 250 57 58 61 4 1 5 0 0 0 148 133 63 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 144 56 21 19 24 71 68 65 166 144 56 169 141 58 169 141 58 166 144 56 169 141 58 
-178 172 162 254 252 244 255 255 255 255 255 255 254 254 253 253 252 247 255 255 253 253 253 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 254 254 254 145 151 154 0 1 1 
-0 1 1 0 1 1 125 131 132 254 254 255 255 255 255 252 252 252 255 255 255 255 255 255 
-253 253 253 255 255 255 187 189 188 48 49 51 0 1 1 0 0 0 4 2 1 0 0 0 
-0 1 1 202 204 206 253 253 255 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 
-254 254 254 241 240 247 255 255 255 160 163 161 0 0 0 145 151 154 254 254 254 254 254 254 
-255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 127 54 159 126 56 128 113 57 57 63 63 60 60 63 57 63 63 230 230 230 253 252 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 251 252 255 255 255 254 254 254 254 255 255 140 141 138 57 63 61 59 64 62 71 72 69 
-157 127 54 158 124 53 159 126 56 156 129 45 157 124 59 156 126 54 162 125 53 157 127 54 
-158 127 55 156 125 56 85 80 60 62 61 67 53 63 60 178 172 162 241 240 247 57 61 64 
-53 60 64 66 60 61 149 124 55 152 124 51 157 124 59 155 127 54 158 127 55 158 124 54 
-157 124 59 162 124 52 157 127 54 113 104 59 58 62 65 62 66 56 68 69 75 255 253 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 253 253 253 254 255 255 252 252 252 253 255 254 254 255 255 254 255 255 125 131 132 
-57 60 70 62 65 65 85 80 60 161 124 50 156 124 53 155 128 52 150 128 52 158 124 56 
-159 126 56 154 129 46 155 126 57 156 129 45 97 78 60 57 63 63 59 64 62 156 160 157 
-202 206 211 56 64 62 60 60 63 66 60 61 158 124 54 158 127 55 156 124 53 158 127 55 
-157 127 54 158 125 54 158 124 54 159 126 56 157 126 52 155 128 52 94 90 61 62 65 65 
-58 62 63 81 77 81 254 255 255 254 254 254 251 251 251 255 255 255 255 255 255 253 253 253 
-254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 241 240 247 
-71 72 69 59 64 62 58 62 65 113 104 59 157 124 59 156 129 45 158 127 55 157 124 59 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 64 64 104 112 110 255 255 253 253 253 255 104 112 110 58 62 65 60 61 69 113 104 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 142 120 69 62 61 67 54 64 59 59 64 62 202 204 206 254 254 254 253 252 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 254 255 253 252 247 125 131 132 60 60 63 58 65 69 72 76 65 152 124 51 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 251 255 255 253 88 95 83 54 64 59 53 67 71 140 101 45 157 124 59 156 125 56 
-156 128 53 156 124 53 155 126 57 157 124 59 152 124 51 158 132 49 142 120 69 56 64 62 
-57 63 61 59 64 62 230 230 230 254 255 251 255 255 253 249 252 251 255 255 253 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 253 254 160 163 161 59 64 62 58 66 61 72 76 65 157 126 52 158 127 55 
-158 124 56 158 127 55 152 124 44 158 124 56 157 124 59 157 126 52 152 127 56 110 92 61 
-57 63 61 62 65 65 113 113 120 255 255 253 255 255 255 57 63 61 57 60 56 62 61 67 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 217 104 40 209 99 39 112 79 60 56 66 64 62 61 67 110 110 107 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 255 255 255 254 254 254 252 252 252 241 240 247 71 72 69 58 64 64 56 64 62 
-128 93 57 213 105 50 210 102 46 211 104 39 212 101 45 212 98 39 209 105 45 209 105 45 
-210 102 46 213 100 52 211 104 39 59 60 62 56 66 64 58 62 65 230 230 230 254 255 255 
-152 161 158 57 63 61 60 60 63 97 78 60 207 105 48 212 104 43 212 101 45 212 104 43 
-213 103 41 213 100 46 216 99 44 210 105 40 217 105 50 210 105 51 71 68 65 60 60 63 
-57 63 61 156 160 157 254 254 254 255 255 255 255 253 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 230 230 230 
-50 65 64 58 59 64 58 67 65 155 104 59 209 105 45 213 100 46 210 99 44 212 104 43 
-207 99 48 211 104 39 211 102 45 208 103 45 219 98 50 140 101 45 54 67 66 60 64 65 
-97 100 105 255 255 255 104 112 110 62 65 65 60 60 63 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 61 125 131 132 254 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-104 112 110 60 60 63 59 60 62 128 99 63 216 99 44 210 99 44 212 101 45 208 103 45 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 254 255 251 255 255 253 97 100 105 62 61 67 53 67 71 140 101 45 213 100 46 
-213 103 41 210 99 51 210 102 46 212 101 45 219 98 50 207 105 38 211 104 39 198 102 49 
-56 64 62 57 63 61 57 58 61 224 220 212 253 253 253 254 255 251 255 255 253 254 255 251 
-255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 
-255 255 255 250 252 246 255 255 255 187 189 188 57 63 63 57 63 61 71 68 65 210 99 44 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-142 101 66 57 63 61 57 63 61 104 112 110 249 254 254 
-255 255 253 251 251 251 187 189 188 6 9 5 0 0 0 62 66 56 169 144 61 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 144 61 109 102 83 0 1 1 148 133 63 169 141 58 169 138 59 169 141 58 169 141 58 
-224 220 212 254 255 251 251 251 251 253 253 255 254 254 253 254 255 251 255 255 253 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 252 252 252 253 253 253 255 255 255 71 68 65 0 0 0 
-0 1 1 71 72 69 241 240 247 254 254 254 255 255 255 251 251 251 253 253 253 241 240 247 
-172 178 183 97 100 105 4 1 5 0 0 0 0 1 1 0 1 1 0 1 1 0 0 0 
-4 1 5 202 204 206 255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 
-251 251 251 241 240 247 251 251 251 230 230 230 0 1 1 21 19 24 255 255 255 255 255 255 
-252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 124 51 159 126 56 97 78 60 59 64 62 62 61 67 125 131 132 249 254 254 254 254 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 253 253 253 253 253 253 254 255 255 230 230 230 59 64 62 59 64 62 57 60 56 
-142 120 69 156 124 53 158 127 55 157 126 52 157 124 59 156 126 54 162 125 53 156 126 54 
-156 124 53 158 124 56 101 91 62 58 62 65 53 63 60 140 141 138 187 189 188 60 64 65 
-56 66 64 72 76 65 157 124 59 155 128 52 159 126 56 156 126 54 156 126 54 158 125 54 
-155 127 54 157 126 52 154 129 46 101 91 62 53 60 64 58 65 54 113 113 120 202 204 206 
-202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 
-202 204 206 202 204 206 202 204 206 202 206 211 202 204 206 202 204 206 202 204 206 156 160 157 
-53 63 60 59 64 62 72 76 65 155 128 52 158 127 55 157 126 52 155 127 54 162 124 55 
-159 126 56 155 127 54 157 127 54 158 127 55 113 104 59 58 65 69 57 63 61 104 112 110 
-160 163 161 53 63 60 62 65 65 85 80 60 159 126 56 155 127 54 158 127 55 156 124 53 
-156 126 54 158 124 54 158 125 54 159 126 56 152 124 51 155 126 57 72 76 65 57 63 61 
-60 64 65 187 189 188 253 253 255 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 
-140 141 138 62 65 65 54 64 59 85 80 60 162 124 55 154 129 46 156 124 53 157 124 59 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 61 104 112 110 255 255 253 253 253 255 59 64 62 53 60 64 62 65 65 142 120 69 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 110 92 61 57 61 64 60 64 65 97 100 105 254 252 251 254 255 255 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-249 252 246 254 250 255 254 255 251 230 230 230 60 60 63 58 65 69 59 59 56 147 124 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 253 230 230 230 59 60 64 57 63 61 58 62 65 147 124 59 158 125 54 156 126 54 
-156 126 54 157 126 52 158 134 59 156 125 56 156 124 53 156 124 53 128 99 63 60 61 69 
-59 60 62 88 95 83 202 204 206 202 206 211 202 204 206 202 206 211 202 204 206 202 206 211 
-202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 
-202 206 211 202 204 206 187 189 188 57 58 63 58 65 69 60 60 63 155 126 57 155 128 52 
-158 124 56 158 127 55 155 128 52 158 127 55 158 124 54 157 126 52 156 128 53 128 113 57 
-57 63 61 58 62 65 71 72 69 251 251 251 255 255 255 53 63 60 58 66 61 59 60 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 209 99 39 210 105 51 84 69 58 58 64 64 57 58 63 187 189 188 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 254 254 254 253 253 253 255 255 255 255 255 255 156 160 157 58 64 64 60 64 65 
-97 78 60 207 99 48 212 104 43 209 105 45 213 105 50 211 102 45 213 105 50 211 99 45 
-213 105 46 211 99 45 212 104 43 85 80 60 53 63 60 60 64 65 187 189 188 254 255 255 
-104 112 110 59 64 62 60 64 65 128 93 57 207 105 48 212 104 43 213 105 46 212 104 43 
-208 103 45 213 105 50 217 105 50 208 103 45 207 99 38 155 104 59 57 63 61 60 64 65 
-71 72 69 241 240 247 255 255 255 255 255 255 254 251 252 252 252 252 255 255 255 255 255 255 
-253 253 253 253 253 253 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 252 252 252 
-125 131 132 58 62 65 59 60 64 97 78 60 212 98 39 213 105 50 217 105 50 208 103 45 
-213 105 50 209 99 39 209 105 45 211 102 45 213 100 46 185 105 60 59 64 62 58 62 63 
-60 64 65 241 240 247 104 112 110 58 62 63 60 64 65 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 60 64 65 154 157 157 254 255 255 255 255 255 253 253 253 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-154 157 157 62 65 65 57 63 61 128 93 57 217 105 50 209 105 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-160 163 161 249 254 254 241 240 247 60 60 63 60 60 63 56 66 64 198 102 49 210 99 44 
-210 99 44 208 103 45 211 102 45 213 100 46 213 100 46 210 105 40 211 102 45 155 104 59 
-58 65 69 58 62 63 88 95 83 202 204 206 202 206 211 202 206 211 202 204 206 202 204 206 
-202 206 211 202 206 211 202 206 211 202 206 211 202 206 211 202 206 211 202 206 211 202 206 211 
-202 206 211 202 204 206 202 206 211 202 204 206 58 65 69 58 64 64 60 60 63 198 102 49 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-185 105 60 60 64 65 57 60 56 62 66 62 253 255 254 
-255 255 253 254 252 251 97 100 105 0 1 1 0 1 1 109 102 83 169 144 61 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 142 120 69 4 1 5 128 100 96 173 142 59 173 142 59 169 138 59 169 144 61 
-254 252 250 255 255 253 250 252 254 253 253 255 254 254 254 255 255 253 255 255 253 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 0 1 1 4 2 1 
-0 0 0 97 100 105 202 204 206 202 204 206 156 160 157 140 141 138 97 100 105 0 1 1 
-0 0 0 4 2 1 0 0 0 4 2 1 4 2 1 4 2 1 0 0 0 6 9 5 
-0 1 1 202 204 206 255 255 255 252 252 252 251 251 251 254 254 254 255 255 255 255 255 255 
-241 240 247 224 220 212 255 255 255 255 255 255 125 131 132 0 1 1 154 157 157 255 255 255 
-255 255 255 251 251 251 254 254 254 255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 156 125 56 71 68 65 56 66 64 58 59 68 187 189 188 255 255 253 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 254 254 254 253 253 253 97 100 105 57 63 61 59 64 62 
-110 92 61 155 127 54 158 127 55 158 125 54 157 124 59 156 126 54 159 126 56 155 127 54 
-158 127 55 156 124 53 128 113 57 57 61 64 62 65 65 104 112 110 156 160 157 57 63 63 
-56 66 64 94 90 61 158 127 55 155 128 52 158 125 54 156 126 54 156 124 53 159 126 56 
-155 126 57 156 126 54 154 129 46 81 77 81 51 61 71 56 66 64 60 64 65 57 58 61 
-59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 
-57 63 61 62 65 65 53 63 60 59 64 62 56 66 64 56 64 62 56 64 62 56 64 62 
-59 64 62 62 61 67 59 64 62 156 124 53 159 126 56 158 124 53 156 125 56 158 124 53 
-158 126 53 156 124 53 156 124 53 158 124 54 128 113 57 60 60 63 59 60 62 62 65 65 
-140 141 138 53 63 60 60 60 63 101 91 62 157 126 52 152 124 51 158 127 55 158 127 55 
-156 126 54 158 124 54 159 126 56 157 126 52 155 127 54 128 113 57 59 59 56 57 63 61 
-62 70 69 253 253 255 254 255 255 254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-230 230 230 59 64 62 56 66 64 60 60 63 155 126 57 156 125 56 159 126 56 158 125 54 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 64 62 104 112 110 251 251 251 219 227 224 57 63 61 58 64 64 62 66 56 147 124 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 72 76 65 62 65 65 58 62 63 172 178 183 254 252 250 253 255 254 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 254 250 255 254 254 254 254 255 255 88 95 83 58 62 65 62 65 65 113 104 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-249 252 251 187 189 188 62 61 67 59 64 62 72 76 65 155 126 57 158 126 53 156 124 53 
-157 127 54 161 124 50 158 125 54 155 127 54 159 126 56 162 125 53 101 91 62 57 60 56 
-58 62 65 53 60 64 60 64 65 59 60 64 62 61 67 59 60 64 60 64 65 62 70 69 
-59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 
-58 62 65 62 65 65 56 64 62 59 64 62 53 63 60 60 61 69 128 113 57 158 124 56 
-158 124 56 156 126 54 155 128 52 157 127 54 156 124 53 157 126 52 156 128 53 147 124 59 
-59 64 62 57 61 64 57 63 61 230 230 230 253 253 255 57 60 56 58 68 63 58 62 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 208 103 45 174 105 47 58 65 54 58 64 64 58 62 65 251 251 251 249 252 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 255 255 255 254 254 254 255 255 255 255 255 255 230 230 230 60 64 65 57 63 63 
-57 63 61 198 102 49 213 103 41 209 105 45 210 99 51 208 103 45 213 100 46 216 99 44 
-207 99 38 217 105 50 213 103 41 97 78 60 60 64 65 57 60 56 160 163 161 254 255 251 
-71 72 69 57 63 61 57 58 61 185 105 60 211 102 45 212 101 45 211 104 39 212 101 45 
-209 105 45 211 99 45 213 100 46 208 103 45 210 105 51 112 79 60 56 64 62 53 60 64 
-125 131 132 254 255 255 253 253 253 255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 
-187 189 188 53 63 60 62 61 67 71 72 69 213 105 46 210 99 44 211 99 45 210 105 51 
-216 99 44 208 103 45 209 105 45 212 101 45 210 99 44 217 105 50 71 68 65 58 64 64 
-60 64 65 202 204 206 104 112 110 58 62 63 57 58 61 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-53 63 60 57 63 63 160 163 161 253 255 254 254 254 254 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-160 163 161 53 63 60 62 66 62 112 79 60 210 102 46 208 103 45 211 102 45 208 103 45 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-160 163 161 250 252 254 202 206 211 66 60 61 58 62 63 72 76 65 211 102 45 213 105 50 
-212 104 43 208 103 45 208 103 45 209 105 45 207 105 48 207 99 38 217 105 50 128 99 63 
-53 60 64 58 65 69 58 62 63 58 62 63 60 60 63 60 64 65 57 58 61 62 65 65 
-60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 
-58 62 65 62 66 62 57 63 61 57 60 56 56 66 64 53 63 60 59 64 62 155 104 59 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 68 69 75 53 60 64 60 60 63 202 204 206 
-254 251 252 242 238 229 6 9 5 4 2 1 4 1 5 142 120 69 164 144 50 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 168 136 64 48 49 51 85 80 60 166 134 56 173 138 52 169 141 58 182 158 106 
-255 254 255 253 253 253 255 255 253 254 255 255 254 254 254 254 254 255 255 255 255 254 254 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 251 251 251 255 255 255 253 253 253 48 49 51 0 0 0 
-4 2 1 0 0 0 4 1 5 0 0 0 0 1 1 0 1 1 4 1 5 0 1 1 
-4 2 1 0 1 1 0 1 1 4 2 1 0 0 0 0 0 0 4 2 1 0 0 0 
-4 2 1 202 204 206 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 253 253 253 
-250 247 249 224 220 212 250 247 249 251 251 251 230 230 230 21 19 24 21 19 24 242 238 229 
-250 247 249 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 149 124 55 57 63 63 53 63 60 58 59 68 241 240 247 254 255 251 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 254 254 254 255 255 255 255 255 255 254 255 255 160 163 161 58 64 64 57 58 61 
-85 80 60 150 128 52 155 128 52 158 127 55 158 124 56 156 126 54 159 126 56 155 127 54 
-156 124 53 158 127 55 147 124 59 57 61 64 59 60 64 57 63 63 110 110 107 57 63 63 
-59 64 62 110 92 61 158 127 55 155 128 52 158 125 54 158 126 53 152 124 51 159 126 56 
-156 124 53 156 126 54 155 128 52 71 68 65 58 65 69 57 60 56 57 58 61 56 66 64 
-58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 
-58 62 65 58 62 65 58 62 65 57 61 64 58 62 65 60 64 65 57 61 64 58 62 65 
-56 64 62 54 67 66 54 64 59 128 113 57 157 124 59 158 127 55 158 126 53 158 125 54 
-158 127 55 156 124 53 158 125 54 157 124 59 150 128 52 59 64 62 60 64 65 57 63 61 
-104 112 110 57 63 61 60 64 65 113 104 59 158 126 53 159 134 56 158 125 54 156 125 56 
-156 126 54 159 126 56 156 126 54 152 124 44 158 127 55 110 92 61 58 62 65 56 64 62 
-125 131 132 254 255 255 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
-254 255 255 81 77 81 58 65 69 62 61 67 128 113 57 158 127 55 156 124 53 157 126 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 64 62 104 112 110 255 255 255 202 204 206 57 60 56 59 64 62 85 80 60 157 124 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 124 59 60 64 65 58 62 63 60 64 65 230 230 230 255 255 253 248 254 252 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 252 247 253 253 255 254 254 255 255 255 255 156 160 157 56 64 62 58 62 65 85 80 60 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 255 160 163 161 59 60 64 57 63 61 94 90 61 156 128 53 161 124 50 156 124 53 
-157 124 59 159 126 56 161 124 50 155 128 52 156 125 56 155 126 57 85 80 60 58 65 69 
-56 64 62 56 66 64 53 63 60 56 66 64 57 63 63 57 63 63 53 63 60 56 64 62 
-58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 
-54 64 59 59 64 62 53 63 60 62 61 67 60 64 65 53 63 60 113 104 59 158 132 49 
-158 125 54 156 124 53 156 126 54 156 126 54 156 125 56 158 125 54 156 126 54 156 128 53 
-72 76 65 57 63 63 58 64 64 202 204 206 253 253 255 62 70 69 56 64 62 58 62 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 105 46 210 99 44 142 101 66 56 66 64 57 61 64 110 110 107 255 255 253 254 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 97 100 105 60 64 65 
-50 65 64 155 104 59 210 105 40 208 103 45 213 100 46 208 103 45 210 102 46 216 99 44 
-213 105 46 211 99 45 209 99 39 128 93 57 58 62 63 59 64 62 125 131 132 241 240 247 
-59 64 62 57 63 61 62 65 65 198 102 49 211 99 45 213 105 46 207 99 38 213 100 46 
-213 100 46 211 99 45 213 100 46 213 103 41 213 100 52 84 69 58 58 62 65 58 62 65 
-187 189 188 252 252 252 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 254 254 254 
-253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 254 254 254 253 253 253 
-254 255 251 59 64 62 58 62 65 51 61 71 174 105 47 216 99 44 208 103 45 210 102 46 
-212 98 39 210 102 46 211 102 45 210 99 51 211 102 45 216 99 44 97 78 60 60 64 65 
-58 62 63 154 157 157 104 112 110 58 62 63 62 70 69 155 104 59 211 99 45 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-154 157 157 58 62 63 59 64 62 112 79 60 210 102 46 209 105 45 213 105 50 210 99 44 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 253 253 255 172 178 183 59 59 56 53 60 64 101 91 62 217 98 38 210 99 44 
-212 101 45 212 104 43 213 100 46 212 98 39 210 99 51 213 105 50 207 105 48 97 78 60 
-56 66 64 53 63 60 58 64 64 60 64 65 57 63 63 60 64 65 56 64 62 56 64 62 
-58 64 64 58 64 64 58 64 64 58 64 64 58 64 64 58 64 64 58 64 64 58 64 64 
-58 62 65 57 63 61 58 62 65 62 65 65 58 65 69 58 65 69 58 65 69 128 93 57 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-217 98 38 84 69 58 60 64 65 58 64 64 202 204 206 
-255 253 254 160 163 161 4 1 5 0 0 0 4 1 5 148 133 63 169 138 59 173 142 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 173 142 59 85 80 60 4 1 5 158 134 59 169 141 58 165 143 59 178 172 162 
-254 254 255 254 255 251 254 255 251 254 255 251 255 255 255 255 255 255 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 254 254 254 125 131 132 0 0 0 
-0 1 1 0 0 0 0 1 1 4 2 1 0 0 0 0 0 0 0 1 1 6 9 5 
-0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 4 1 5 0 0 0 
-21 19 24 255 255 255 255 255 255 253 253 253 252 252 252 255 255 255 252 252 252 255 255 255 
-253 253 253 224 220 212 219 227 224 255 255 255 255 255 255 145 151 154 0 0 0 125 131 132 
-255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 128 93 57 53 63 60 60 64 65 97 100 105 255 255 253 254 251 249 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 255 252 252 252 251 251 251 254 255 255 202 206 211 58 62 63 58 62 63 
-71 68 65 155 128 52 157 126 52 157 124 59 158 124 53 158 126 53 159 126 56 155 127 54 
-159 126 56 158 127 55 156 128 53 62 65 65 62 61 67 58 62 65 104 112 110 60 64 65 
-58 62 63 128 113 57 156 126 54 156 124 53 156 126 54 159 126 56 156 124 53 158 127 55 
-157 127 54 152 127 56 155 126 57 84 69 58 72 73 56 85 80 60 71 72 69 72 76 65 
-72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 
-72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 
-85 80 60 85 80 60 85 80 60 128 113 57 157 124 59 152 124 44 154 129 46 157 127 54 
-157 127 54 156 124 53 159 126 56 159 126 56 158 132 49 71 68 65 62 61 67 59 64 62 
-81 77 81 59 64 62 58 62 63 128 113 57 152 124 44 155 128 52 156 124 53 156 125 56 
-156 124 53 159 126 56 152 124 51 158 126 53 155 128 52 97 78 60 58 65 69 56 66 64 
-154 157 157 253 255 254 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 253 253 253 
-254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 125 131 132 53 60 64 58 62 65 101 91 62 156 124 53 159 126 56 156 128 53 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 61 104 112 110 254 254 255 156 160 157 62 65 65 57 58 61 94 90 61 156 124 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-128 113 57 54 67 66 58 62 65 88 95 83 254 255 251 255 254 255 248 254 252 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 254 255 253 253 253 255 255 255 202 204 206 57 63 61 58 62 65 72 76 65 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 251 125 131 132 62 61 67 59 64 62 101 91 62 152 124 44 157 126 52 159 126 56 
-158 127 55 158 125 54 156 124 53 155 128 52 159 126 56 155 127 54 94 90 61 72 73 56 
-72 76 65 72 76 65 72 76 65 72 76 65 72 73 56 72 76 65 85 80 60 72 76 65 
-72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 
-72 73 56 72 76 65 72 76 65 72 76 65 85 80 60 72 76 65 113 104 59 155 126 57 
-159 126 56 158 126 53 158 127 55 156 126 54 158 127 55 157 124 59 158 124 54 157 126 52 
-85 80 60 62 66 62 62 65 65 187 189 188 253 253 253 58 62 63 57 63 61 58 65 69 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 213 100 46 112 79 60 58 65 69 53 60 64 156 160 157 249 252 251 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 140 141 138 58 64 64 
-58 62 65 112 79 60 208 103 45 213 103 41 213 105 46 210 102 46 208 103 45 211 102 45 
-211 102 45 210 99 44 212 104 43 155 104 59 59 60 64 60 64 65 110 110 107 202 204 206 
-57 63 63 60 64 65 71 72 69 217 104 40 210 99 44 210 102 46 208 103 45 210 102 46 
-216 99 44 211 102 45 211 102 45 213 103 41 210 99 51 58 64 64 57 58 61 60 64 65 
-241 240 247 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 253 110 110 107 58 67 65 54 67 66 142 101 66 212 98 39 208 103 45 212 101 45 
-207 105 38 213 100 52 216 99 44 210 99 51 213 105 46 212 98 39 128 93 57 53 63 60 
-58 62 63 156 160 157 104 112 110 58 64 64 57 58 61 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 60 64 65 154 157 157 254 255 255 253 253 253 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-160 163 161 62 65 65 53 63 60 128 93 57 210 102 46 208 103 45 213 100 46 212 101 45 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 255 254 255 154 157 157 58 66 61 58 65 69 112 79 60 213 103 41 213 105 50 
-211 102 45 213 100 46 217 105 50 212 98 39 213 100 46 213 105 50 200 101 40 128 93 57 
-84 69 58 85 80 60 84 69 58 85 80 60 84 69 58 85 80 60 85 80 60 85 80 60 
-85 80 60 85 80 60 85 80 60 85 80 60 85 80 60 85 80 60 85 80 60 85 80 60 
-97 78 60 84 69 58 97 78 60 97 78 60 84 69 58 85 80 60 85 80 60 142 101 66 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 105 46 112 79 60 53 63 60 54 67 66 154 157 157 
-255 254 255 81 77 81 0 1 1 0 0 0 71 68 65 169 144 61 169 138 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-168 136 64 173 142 59 109 102 83 4 1 5 142 120 69 169 138 59 169 138 59 224 220 212 
-254 254 253 254 255 251 253 252 247 253 252 247 255 255 253 255 255 255 255 255 255 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 254 254 254 253 253 253 253 253 253 241 240 247 48 49 51 
-0 0 0 0 1 1 0 0 0 4 2 1 0 0 0 0 1 1 6 9 5 0 0 0 
-4 1 5 0 0 0 0 0 0 4 2 1 4 2 1 4 1 5 0 1 1 0 0 0 
-213 212 223 253 253 253 252 252 252 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 
-255 255 255 219 227 224 224 220 212 242 238 229 252 252 252 241 240 247 71 72 69 4 2 1 
-219 227 224 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 124 56 128 99 63 53 64 53 57 61 64 110 110 107 255 255 255 255 253 254 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 254 255 255 57 60 56 58 64 64 
-62 61 67 155 128 52 161 124 50 156 125 56 161 124 50 157 126 52 158 127 55 155 127 54 
-158 124 53 156 126 54 152 124 51 71 68 65 62 61 67 53 60 64 62 70 65 60 64 65 
-58 62 65 147 124 59 158 127 55 156 125 56 156 126 54 158 125 54 156 125 56 156 126 54 
-162 125 53 159 126 56 161 125 43 158 134 59 155 126 57 155 128 52 157 127 54 156 129 45 
-155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 
-158 124 53 158 125 54 158 124 53 159 126 56 156 124 53 158 124 53 158 125 54 159 126 56 
-158 124 54 156 124 53 150 126 55 162 125 53 166 129 59 156 129 45 155 127 54 155 126 57 
-156 124 53 156 126 54 158 124 56 152 124 51 155 128 52 72 76 65 62 61 67 57 63 61 
-58 62 63 62 66 62 58 62 65 157 124 59 158 127 55 155 128 52 159 126 56 156 124 53 
-156 126 54 156 124 53 158 127 55 158 126 53 155 128 52 85 80 60 58 62 65 56 66 64 
-202 206 211 255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 156 160 157 59 64 62 58 62 65 101 91 62 159 126 56 158 126 53 152 124 51 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-60 64 65 104 112 110 255 254 255 154 157 157 58 62 63 62 61 67 101 91 62 159 126 56 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-128 99 63 53 63 60 58 62 65 110 110 107 253 252 247 255 254 255 248 254 252 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 255 255 255 255 255 254 254 254 241 240 247 62 66 62 60 64 65 57 58 61 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 251 104 112 110 59 64 62 57 63 61 128 99 63 158 126 53 159 126 56 152 124 51 
-156 129 45 158 127 55 166 129 59 156 124 53 158 124 53 161 125 43 155 126 57 152 127 56 
-156 125 56 156 125 56 156 124 53 158 127 55 159 126 56 156 124 53 158 127 55 156 125 56 
-155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 
-158 127 55 157 124 59 152 124 51 155 128 52 152 124 51 152 127 56 158 134 59 161 124 50 
-158 125 54 158 126 53 158 127 55 156 125 56 156 124 53 157 124 59 157 124 59 158 127 55 
-101 91 62 62 66 56 57 58 61 156 160 157 255 255 253 62 65 65 58 64 64 58 62 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 99 44 217 105 50 84 69 58 57 61 64 58 65 69 187 189 188 255 255 253 253 253 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 255 255 255 255 255 254 254 254 254 254 254 187 189 188 57 63 61 
-59 59 56 85 80 60 209 105 45 210 99 44 212 101 45 212 101 45 207 105 38 210 102 46 
-210 99 44 213 105 50 210 99 44 174 105 47 62 61 67 58 62 63 104 112 110 202 206 211 
-60 64 65 58 62 65 84 69 58 217 104 40 212 101 45 210 99 44 213 105 50 210 102 46 
-213 100 46 208 103 45 208 103 45 212 104 43 185 105 60 54 67 66 57 58 61 71 81 83 
-255 255 255 251 251 251 251 251 251 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 253 253 253 255 255 255 
-254 255 255 140 141 138 62 66 62 53 63 60 128 93 57 212 104 43 213 105 46 217 105 50 
-209 105 45 210 102 46 213 103 41 210 105 51 212 101 45 207 105 38 142 101 66 56 66 64 
-60 64 65 110 110 107 104 112 110 62 65 65 58 62 63 155 104 59 210 102 46 210 99 44 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-53 63 60 58 64 64 154 157 157 254 255 255 254 254 254 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-154 157 157 58 62 63 59 64 62 112 79 60 213 100 46 208 103 45 211 99 45 213 105 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 251 251 251 113 113 120 58 68 63 58 65 69 142 101 66 207 105 38 211 99 45 
-213 105 50 210 99 44 207 105 48 209 105 45 210 102 46 207 99 48 213 103 41 210 105 51 
-210 99 44 211 102 45 213 105 46 212 104 43 213 105 46 210 99 44 210 99 44 213 105 46 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 211 102 45 208 103 45 208 103 45 209 105 45 209 105 45 212 101 45 217 98 38 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 99 51 128 93 57 57 63 63 53 67 71 160 163 161 
-255 255 255 0 0 0 0 1 1 4 2 1 94 90 61 164 134 50 173 142 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 144 61 169 138 59 142 120 69 4 1 5 88 95 83 169 141 58 169 144 61 202 204 206 
-254 252 251 255 255 253 252 252 252 255 255 253 255 255 253 254 254 253 254 254 253 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 187 189 188 
-4 2 1 0 0 0 4 2 1 0 0 0 0 0 0 0 1 1 0 0 0 4 2 1 
-0 1 1 0 0 0 4 2 1 0 0 0 0 0 0 0 0 0 0 0 0 4 1 5 
-255 255 255 253 253 253 255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 252 252 252 
-253 253 253 230 230 230 224 220 212 213 212 223 254 254 254 255 255 255 172 178 183 0 0 0 
-88 95 83 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 125 56 110 92 61 57 63 61 58 65 69 145 151 154 254 255 255 255 253 254 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 254 254 254 255 255 255 255 255 255 251 251 251 253 255 254 62 65 65 57 63 63 
-58 62 65 156 128 53 162 124 52 156 125 56 158 126 53 156 124 53 156 126 54 156 126 54 
-156 124 53 156 126 54 159 126 56 72 76 65 59 60 64 60 61 69 54 64 59 58 59 64 
-58 62 65 156 124 53 157 127 54 156 125 56 156 128 53 158 124 53 158 127 55 156 126 54 
-155 128 52 150 128 52 155 128 52 156 124 53 155 127 54 158 124 56 152 124 51 159 126 56 
-155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 
-157 126 52 158 126 53 157 126 52 157 126 52 157 126 52 157 126 52 157 126 52 157 126 52 
-159 126 56 157 127 54 155 126 57 158 125 54 158 124 54 152 124 51 156 124 53 155 127 54 
-156 125 56 157 127 54 158 125 54 149 124 55 158 126 53 71 72 69 60 64 65 59 64 62 
-58 64 64 59 64 62 53 60 64 158 127 55 158 127 55 152 124 51 158 124 56 158 127 55 
-156 126 54 156 124 53 158 127 55 156 124 53 156 128 53 72 76 65 59 64 62 57 63 63 
-202 204 206 254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 
-253 255 254 172 178 183 59 64 62 58 65 69 72 73 56 158 124 56 152 124 51 158 127 55 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-62 65 65 97 100 105 254 254 255 160 163 161 57 58 61 62 61 67 94 90 61 158 127 55 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-101 91 62 62 61 67 53 63 60 145 151 154 255 255 255 254 251 252 254 255 251 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 255 255 253 253 253 253 255 255 255 253 255 254 59 64 62 57 63 61 58 65 69 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 252 251 104 112 110 58 66 61 56 66 64 128 99 63 157 126 52 156 125 56 156 128 53 
-157 126 52 157 124 59 155 126 57 157 126 52 159 126 56 158 124 53 162 124 55 158 124 54 
-158 127 55 156 124 53 166 129 59 152 124 51 156 124 53 159 126 56 156 124 53 158 127 55 
-155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 155 128 52 
-158 127 55 158 124 56 158 127 55 158 134 59 158 124 56 157 126 52 150 126 55 155 128 52 
-156 125 56 157 126 52 158 125 54 157 124 59 156 124 53 156 124 53 158 127 55 158 125 54 
-94 90 61 59 64 62 58 65 69 156 160 157 253 253 253 58 62 65 60 64 65 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 105 50 209 99 39 85 80 60 59 60 62 58 62 65 202 204 206 255 255 253 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 254 255 255 255 255 255 253 253 253 255 255 255 202 204 206 62 65 65 
-59 60 62 85 80 60 212 104 43 210 102 46 211 99 45 212 101 45 209 99 39 210 102 46 
-212 104 43 209 105 45 211 99 45 198 102 49 62 61 67 57 60 56 60 64 65 187 189 188 
-59 64 62 58 62 63 97 78 60 209 105 45 210 102 46 210 99 44 211 102 45 210 102 46 
-212 101 45 209 105 45 210 102 46 208 103 45 174 105 47 57 61 64 56 66 64 110 110 107 
-251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 254 254 254 
-254 254 254 252 252 252 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 
-254 252 251 160 163 161 59 59 56 56 64 62 128 99 63 209 99 39 211 99 45 211 102 45 
-213 105 50 211 102 45 209 99 39 210 102 46 210 99 44 209 105 45 155 104 59 56 66 64 
-53 63 60 113 113 120 104 112 110 57 58 61 58 62 63 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 64 62 58 64 64 156 160 157 253 255 254 255 255 255 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-160 163 161 58 64 64 62 65 65 112 79 60 212 101 45 213 105 46 213 100 46 211 99 45 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 252 252 252 110 110 107 53 63 60 58 59 64 155 104 59 207 105 48 211 102 45 
-213 100 46 208 103 45 213 100 46 208 103 45 212 101 45 213 105 50 209 105 45 210 102 46 
-212 101 45 217 105 50 211 99 45 213 100 46 212 98 39 217 105 50 213 100 46 213 100 46 
-213 100 46 213 100 46 213 100 46 213 100 46 213 100 46 213 100 46 213 100 46 213 100 46 
-212 104 43 213 100 46 208 103 45 211 102 45 209 99 39 209 99 39 217 104 40 213 105 50 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 102 46 110 92 61 54 64 59 53 63 60 156 160 157 
-187 189 188 0 0 0 4 1 5 4 1 5 109 102 83 173 142 59 169 141 58 165 143 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 144 56 166 144 56 142 120 69 0 0 0 71 72 69 169 141 58 169 138 59 202 204 206 
-255 255 253 255 255 255 254 255 255 255 255 255 254 252 251 254 255 251 254 252 251 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 
-172 178 183 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 
-0 0 0 0 0 0 4 2 1 0 0 0 4 2 1 0 1 1 71 72 69 0 0 0 
-255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 
-255 255 255 251 251 251 219 227 224 224 220 212 230 230 230 255 255 255 254 254 254 71 72 69 
-0 1 1 219 227 224 255 255 255 254 254 254 251 251 251 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 126 57 94 90 61 60 61 69 56 66 64 154 157 157 253 255 254 251 251 251 254 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 253 255 255 255 253 253 253 59 64 62 60 64 65 
-58 64 64 156 126 54 162 124 55 156 125 56 158 127 55 158 124 56 156 126 54 156 125 56 
-158 127 55 156 124 53 157 124 59 85 80 60 58 64 64 62 61 67 54 64 59 62 61 67 
-58 62 65 157 126 52 156 128 53 156 125 56 156 128 53 156 124 53 158 127 55 155 128 52 
-162 125 53 155 126 57 155 127 54 161 124 50 159 126 56 158 124 56 155 128 52 162 124 55 
-156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 
-159 126 56 156 125 56 159 126 56 158 127 55 156 125 56 156 125 56 159 126 56 156 124 53 
-158 126 53 158 124 53 156 126 54 158 125 54 159 126 56 155 127 54 157 124 59 161 124 50 
-156 125 56 156 126 54 156 129 45 155 126 57 158 127 55 62 66 62 57 63 61 58 64 64 
-58 62 63 57 63 61 58 65 69 161 124 50 156 125 56 158 127 55 156 124 53 158 127 55 
-155 128 52 166 129 59 152 124 51 159 126 56 155 128 52 71 72 69 59 59 56 58 62 65 
-202 204 206 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 255 254 202 204 206 62 65 65 58 62 65 72 76 65 158 125 54 157 124 59 152 127 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 61 104 112 110 254 254 254 156 160 157 60 64 65 62 61 67 94 90 61 157 127 54 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-101 91 62 62 61 67 54 64 59 154 157 157 254 250 255 255 253 254 253 253 253 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 255 254 254 254 255 255 255 253 253 255 253 255 254 60 60 63 57 63 61 58 62 65 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 254 255 104 112 110 58 65 54 53 63 60 128 113 57 158 126 53 158 127 55 154 129 46 
-162 125 53 157 124 59 150 126 55 158 132 49 155 128 52 152 127 56 162 124 52 155 127 54 
-156 126 54 156 126 54 156 124 53 158 127 55 156 126 54 156 126 54 158 127 55 152 124 51 
-156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 156 125 56 
-152 124 51 159 126 56 155 128 52 155 127 54 157 124 59 162 124 52 156 125 56 156 128 53 
-157 124 59 155 128 52 156 124 53 159 126 56 155 128 52 156 129 45 158 127 55 156 125 56 
-85 80 60 59 60 64 57 60 70 172 178 183 254 255 255 58 62 65 56 64 62 57 63 61 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 102 46 209 99 39 85 80 60 62 65 65 57 61 64 202 206 211 255 253 254 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 255 254 255 255 255 254 254 254 254 254 254 202 204 206 58 62 63 
-57 63 63 85 80 60 211 104 39 210 105 51 213 100 46 211 102 45 210 99 44 213 100 46 
-212 104 43 207 99 38 212 104 43 207 105 48 59 60 62 58 66 61 58 64 64 156 160 157 
-53 63 60 62 65 65 112 79 60 207 105 48 210 99 44 213 105 50 211 99 45 210 99 44 
-212 101 45 211 102 45 216 99 44 217 105 50 155 104 59 62 65 65 53 63 60 110 110 107 
-255 255 255 251 251 251 254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 254 254 254 252 252 252 255 255 255 254 254 254 255 255 255 
-254 255 251 154 157 157 62 66 56 58 65 69 112 79 60 212 104 43 210 102 46 211 102 45 
-213 100 46 209 105 45 213 103 41 213 105 50 211 102 45 208 103 45 174 105 47 57 63 63 
-60 64 65 110 110 107 104 112 110 58 64 64 58 64 64 155 104 59 210 99 44 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 58 64 64 156 160 157 254 255 255 253 253 253 253 253 253 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-154 157 157 57 63 63 57 63 61 128 93 57 211 99 45 208 103 45 213 105 46 211 102 45 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 253 255 254 113 113 120 58 62 65 62 61 67 174 105 47 210 102 46 210 99 44 
-213 100 46 208 103 45 216 99 44 213 105 50 209 99 39 211 104 39 208 103 45 212 101 45 
-209 105 45 208 103 45 209 105 45 208 103 45 208 103 45 208 103 45 213 105 50 210 99 44 
-208 103 45 208 103 45 208 103 45 208 103 45 208 103 45 208 103 45 208 103 45 208 103 45 
-211 102 45 213 100 46 209 105 45 213 105 50 211 102 45 209 105 45 217 98 38 207 105 48 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-216 99 44 97 78 60 58 65 69 57 63 61 156 160 157 
-187 189 188 0 0 0 4 1 5 0 3 1 109 102 83 169 141 58 169 138 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 173 142 59 169 141 58 166 144 56 169 141 58 169 144 61 169 141 58 169 138 59 
-152 127 56 165 143 59 158 134 59 4 1 5 4 2 1 169 141 58 169 138 59 202 204 206 
-255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 252 252 252 255 255 255 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 202 204 206 71 72 69 4 2 1 0 0 0 4 2 1 0 0 0 0 1 1 
-0 1 1 4 1 5 0 0 0 0 1 1 125 131 132 230 230 230 160 163 161 0 1 1 
-254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 252 252 252 253 253 253 255 255 255 
-254 254 254 255 255 255 241 240 247 213 212 223 224 220 212 252 252 252 253 253 253 160 163 161 
-0 1 1 140 141 138 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 124 53 101 91 62 62 66 62 57 63 61 125 131 132 254 254 255 253 255 254 253 253 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 254 254 253 254 255 255 253 253 255 254 254 254 254 254 255 62 65 65 58 62 65 
-56 64 62 162 125 53 156 124 53 158 132 49 158 124 56 152 124 51 157 126 52 159 126 56 
-158 127 55 159 126 56 150 126 55 72 76 65 62 65 65 59 64 62 57 58 61 58 66 61 
-57 63 63 157 127 54 158 127 55 158 125 54 155 128 52 158 125 54 159 126 56 156 124 53 
-155 128 52 152 124 51 158 124 53 155 128 52 158 124 53 152 127 56 159 126 56 158 124 56 
-158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 
-158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 
-158 127 55 156 124 53 158 127 55 159 126 56 158 125 54 158 125 54 158 125 54 158 125 54 
-156 129 45 159 126 56 159 126 56 158 126 53 142 120 69 71 65 56 57 60 70 54 64 59 
-57 63 63 57 63 61 58 62 65 161 124 50 158 124 53 156 128 53 152 124 51 158 127 55 
-158 124 53 156 128 53 156 125 56 158 124 53 159 126 56 72 76 65 58 65 69 62 66 56 
-202 206 211 252 252 252 254 254 254 255 255 255 251 251 251 253 253 253 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-253 253 255 202 204 206 62 70 65 53 60 64 72 76 65 162 125 53 156 124 53 155 128 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 60 56 104 112 110 255 255 253 156 160 157 57 60 56 58 59 68 101 91 62 158 125 54 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-101 91 62 59 64 62 57 61 64 145 151 154 249 254 254 253 252 247 255 254 255 253 252 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 255 255 255 253 255 255 253 249 254 254 255 255 255 62 65 65 59 64 62 57 61 64 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 251 104 112 110 57 61 64 57 63 61 128 113 57 157 126 52 158 127 55 156 126 54 
-157 124 59 156 129 45 157 126 52 158 124 56 156 126 54 152 124 51 159 126 56 161 125 43 
-156 126 54 156 126 54 158 127 55 156 126 54 156 126 54 156 124 53 156 124 53 156 124 53 
-158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 158 125 54 
-158 125 54 159 126 56 158 125 54 156 124 53 158 125 54 159 126 56 158 125 54 158 125 54 
-158 124 56 158 127 55 155 128 52 152 124 51 159 126 56 158 124 54 158 124 54 156 128 53 
-62 65 65 58 62 63 60 64 65 202 206 211 253 253 253 59 64 62 60 64 65 57 63 61 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 216 99 44 81 77 81 50 65 64 60 61 69 202 204 206 254 255 251 254 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 202 204 206 62 65 65 
-54 67 66 85 80 60 211 99 45 213 103 41 209 105 45 210 105 40 211 102 45 211 102 45 
-211 102 45 213 105 50 212 101 45 210 99 44 60 64 65 57 63 61 57 63 61 178 172 162 
-60 60 63 58 66 61 97 78 60 208 103 45 213 100 46 213 103 41 207 99 48 213 103 41 
-208 103 45 216 99 44 211 99 45 207 105 38 155 104 59 53 63 60 60 60 63 104 112 110 
-253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 
-253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 
-254 251 252 156 160 157 58 59 68 57 58 61 128 93 57 212 101 45 212 101 45 208 103 45 
-209 105 45 216 99 44 207 105 48 212 101 45 209 99 39 211 99 45 155 104 59 59 64 62 
-60 64 65 110 110 107 104 112 110 57 58 61 58 64 64 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 254 255 251 104 112 110 57 61 64 58 66 61 155 104 59 219 98 50 207 105 38 
-212 101 45 209 105 45 210 102 46 211 99 45 212 104 43 209 105 45 207 105 38 217 104 40 
-207 105 48 210 105 40 211 99 45 213 100 52 213 105 46 211 104 39 212 101 45 212 101 45 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 102 46 213 105 46 209 105 45 207 99 38 212 104 43 212 104 43 208 103 45 208 103 45 
-211 99 45 71 68 65 58 65 54 62 66 56 202 206 211 
-187 189 188 0 1 1 0 1 1 0 0 0 142 120 69 169 141 58 173 142 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 168 136 64 155 126 57 
-147 124 59 169 144 61 169 138 59 0 3 1 0 1 1 148 133 63 169 141 58 214 206 175 
-254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 251 251 251 254 254 254 
-254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 252 252 252 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 187 189 188 125 131 132 97 100 105 48 49 51 71 72 69 
-97 100 105 140 141 138 178 172 162 241 240 247 255 255 255 255 255 255 160 163 161 0 1 1 
-253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 
-253 253 253 255 255 255 255 255 255 241 240 247 213 212 223 242 238 229 253 253 253 213 212 223 
-0 1 1 81 77 81 254 254 254 254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 127 54 128 99 63 57 58 61 59 64 62 104 112 110 253 253 255 248 254 252 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 252 252 252 254 255 255 253 253 253 255 255 255 254 254 254 57 58 61 60 64 65 
-58 64 64 159 126 56 156 125 56 155 128 52 158 124 56 155 127 54 158 126 53 156 125 56 
-156 124 53 158 124 54 155 128 52 72 76 65 60 60 63 57 63 63 62 65 65 58 62 63 
-58 64 64 149 124 55 159 126 56 158 126 53 156 128 53 159 126 56 159 126 56 157 127 54 
-158 125 54 159 126 56 161 124 50 152 127 56 157 124 59 155 127 54 157 126 52 157 126 52 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 156 124 53 158 127 55 158 127 55 156 124 53 156 126 54 158 127 55 158 127 55 
-150 126 55 152 127 56 150 128 52 142 120 69 85 80 60 58 59 64 53 60 64 97 100 105 
-60 64 65 57 63 61 58 62 65 156 126 54 158 126 53 155 128 52 158 125 54 156 124 53 
-158 126 53 156 126 54 155 126 57 159 126 56 161 124 50 72 76 65 58 62 65 58 64 64 
-202 204 206 255 255 255 254 254 254 250 247 249 255 255 255 255 255 255 253 253 253 253 253 253 
-255 255 255 253 253 253 253 253 253 255 255 255 253 253 253 254 254 254 252 252 252 255 255 255 
-253 253 253 160 163 161 57 58 61 56 64 62 102 79 82 158 126 53 156 124 53 157 127 54 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 61 104 112 110 255 253 254 160 163 161 59 64 62 58 59 68 94 90 61 158 125 54 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-113 104 59 58 62 63 56 66 64 110 110 107 253 255 254 255 255 253 255 255 253 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 254 252 251 254 252 251 253 255 254 255 255 255 59 60 62 53 63 60 58 65 69 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-253 253 253 104 112 110 62 61 67 59 64 62 128 99 63 158 126 53 152 124 51 158 127 55 
-158 127 55 157 126 52 157 126 52 157 124 59 158 126 53 156 128 53 152 127 56 150 128 52 
-158 125 54 159 126 56 156 124 53 158 125 54 158 125 54 159 126 56 156 124 53 159 126 56 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 152 124 51 152 124 51 158 127 55 158 127 55 158 127 55 156 126 54 156 124 53 
-152 124 51 156 124 53 157 127 54 159 126 56 159 126 56 154 129 46 148 133 63 97 78 60 
-57 63 63 60 64 65 68 69 75 249 252 251 254 255 255 62 65 65 58 62 63 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 105 46 212 101 45 97 78 60 57 60 56 62 65 65 178 172 162 252 252 252 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 202 206 211 57 63 61 
-59 59 56 85 80 60 210 102 46 212 98 39 208 103 45 212 104 43 210 102 46 213 105 50 
-212 104 43 210 102 46 210 99 44 207 105 48 58 62 65 57 63 61 57 60 56 202 206 211 
-59 60 64 56 66 64 97 78 60 210 99 44 210 102 46 213 103 41 210 102 46 211 102 45 
-211 102 45 211 102 45 210 102 46 213 103 41 174 105 47 58 64 64 59 60 62 81 77 81 
-255 255 255 251 251 251 255 255 255 252 252 252 252 252 252 255 255 255 253 253 253 253 253 253 
-255 255 255 251 251 251 254 254 254 255 255 255 252 252 252 254 254 254 254 254 254 255 255 255 
-254 254 254 152 161 158 53 60 64 56 64 62 128 93 57 210 105 51 210 99 44 213 105 46 
-210 102 46 212 98 39 210 102 46 213 103 41 213 105 46 213 100 46 155 104 59 60 60 63 
-57 63 63 110 110 107 104 112 110 62 65 65 60 64 65 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 255 255 253 110 110 107 54 67 66 57 60 56 155 104 59 210 99 44 213 105 46 
-212 101 45 211 102 45 209 105 45 212 101 45 213 100 46 211 99 45 213 100 46 210 105 51 
-210 99 44 211 104 39 212 104 43 210 105 51 209 99 39 209 99 39 213 105 50 210 102 46 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-209 105 45 207 99 38 212 104 43 212 104 43 216 99 44 216 99 44 213 100 46 213 105 50 
-128 93 57 58 65 69 57 58 61 62 65 65 241 240 247 
-187 189 188 4 1 5 4 1 5 0 0 0 142 120 69 173 142 59 169 138 59 166 144 56 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 138 59 169 141 58 169 141 58 169 141 58 158 134 59 147 124 59 
-149 124 53 169 138 59 169 141 58 21 19 24 0 3 1 148 133 63 164 144 50 178 172 162 
-253 253 253 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 252 252 252 254 254 254 255 255 255 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 253 253 253 160 163 161 0 1 1 
-241 240 247 254 254 254 255 255 255 252 252 252 255 255 255 251 251 251 252 252 252 255 255 255 
-254 254 254 255 255 255 252 252 252 254 254 254 255 255 255 241 240 247 255 255 255 254 254 254 
-0 1 1 62 65 65 252 252 252 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 126 52 128 113 57 58 62 65 57 63 63 88 95 83 255 254 255 254 255 251 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 253 254 252 251 255 255 253 230 230 230 57 58 61 56 64 62 
-62 66 62 157 124 59 158 127 55 155 128 52 157 124 59 157 124 59 158 125 54 156 125 56 
-159 126 56 158 127 55 158 126 53 71 72 69 62 65 65 56 66 64 71 81 83 58 62 65 
-57 63 63 128 113 57 156 124 53 161 124 50 155 127 54 156 124 53 158 125 54 156 126 54 
-158 124 53 158 125 54 159 126 56 110 92 61 101 91 62 101 91 62 101 91 62 101 91 62 
-101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 
-101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 
-101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 
-101 91 62 101 91 62 85 80 60 66 60 61 62 65 65 53 64 53 56 64 62 202 204 206 
-58 62 63 57 63 63 60 64 65 147 124 59 158 127 55 155 127 54 158 127 55 158 127 55 
-156 128 53 158 124 56 152 127 56 158 125 54 156 129 45 85 80 60 60 60 63 58 65 69 
-172 178 183 255 255 255 252 252 252 255 255 255 253 253 253 251 251 251 255 255 255 255 255 255 
-251 251 251 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 253 253 253 254 254 254 
-255 255 253 145 151 154 58 62 65 56 64 62 110 92 61 157 126 52 157 126 52 159 126 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 60 62 113 113 120 254 251 254 154 157 157 57 63 63 60 61 69 94 90 61 159 126 56 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-128 113 57 58 65 69 53 63 60 97 100 105 254 255 255 254 252 251 250 250 247 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 252 247 255 255 253 255 255 253 254 255 251 242 238 229 57 63 61 56 66 64 59 64 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 255 104 112 110 59 60 64 57 63 61 128 99 63 156 124 53 158 125 54 159 126 56 
-158 124 56 158 127 55 156 126 54 158 124 56 156 124 53 158 127 55 128 99 63 101 91 62 
-101 91 62 101 91 62 101 91 62 94 90 61 101 91 62 94 90 61 101 91 62 94 90 61 
-101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 
-101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 
-101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 85 80 60 71 68 65 56 64 62 
-62 65 65 58 64 64 156 160 157 255 255 255 253 255 254 57 58 61 58 64 64 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 213 105 50 110 92 61 59 59 56 57 63 61 140 141 138 253 253 255 255 255 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 254 254 255 255 255 252 252 252 254 254 254 254 255 255 156 160 157 58 62 63 
-62 66 56 112 79 60 210 105 51 211 99 45 210 102 46 210 99 44 210 102 46 212 101 45 
-207 99 38 213 105 50 209 99 39 174 105 47 62 65 65 57 63 61 81 77 81 202 206 211 
-60 64 65 54 64 59 71 72 69 217 98 38 208 103 45 211 102 45 210 102 46 210 102 46 
-213 105 50 210 102 46 217 105 50 207 105 38 210 105 51 53 63 60 59 64 62 62 66 62 
-255 255 255 253 253 253 251 251 251 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-254 254 254 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 252 252 252 
-249 254 254 113 113 120 56 64 62 58 68 63 128 93 57 208 103 45 213 105 46 207 99 38 
-213 100 52 211 102 45 213 105 50 211 104 39 213 100 46 207 99 48 128 93 57 57 58 61 
-60 64 65 125 131 132 97 100 105 62 65 65 58 62 63 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 252 252 252 125 131 132 50 65 64 62 66 62 128 93 57 208 103 45 210 102 46 
-211 102 45 211 99 45 208 103 45 217 105 50 213 100 46 213 100 46 210 99 51 174 105 47 
-128 93 57 128 93 57 112 79 60 128 93 57 112 79 60 128 93 57 112 79 60 112 79 60 
-112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 
-112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 
-128 93 57 112 79 60 128 93 57 112 79 60 112 79 60 110 92 61 97 78 60 84 69 58 
-54 67 66 58 65 69 57 63 61 145 151 154 248 254 253 
-187 189 188 0 1 1 4 1 5 0 0 0 142 120 69 173 138 52 169 138 59 169 144 61 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 159 134 56 149 124 55 147 124 59 
-142 120 69 166 144 56 169 138 59 85 80 60 0 1 1 128 100 96 169 144 61 178 172 162 
-254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 252 252 252 
-254 254 254 251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 252 252 252 
-255 255 255 250 247 249 255 255 255 253 253 253 254 254 254 255 255 255 160 163 161 0 1 1 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 251 251 251 
-255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 202 206 211 
-0 0 0 81 77 81 255 255 255 252 252 252 254 254 254 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 157 124 59 57 63 61 58 65 69 57 58 61 241 240 247 254 255 251 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 253 254 252 251 254 254 254 187 189 188 60 64 65 56 64 62 
-72 76 65 156 125 56 158 127 55 155 128 52 162 124 55 157 124 59 156 124 53 156 126 54 
-156 124 53 152 124 51 152 124 51 62 65 65 62 65 65 58 67 65 97 100 105 62 61 67 
-58 64 64 113 104 59 156 125 56 157 126 52 155 127 54 158 124 56 158 125 54 156 126 54 
-158 127 55 156 124 53 152 127 56 85 80 60 53 63 60 56 64 62 60 64 65 53 60 64 
-58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 
-58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 
-59 60 64 62 61 67 59 60 64 57 61 64 58 62 65 58 62 65 58 62 65 58 62 65 
-58 64 64 53 63 60 54 67 66 58 65 69 53 60 64 58 66 61 125 131 132 255 253 254 
-104 112 110 58 64 64 58 62 63 128 113 57 157 126 52 155 127 54 157 126 52 152 124 51 
-156 128 53 159 126 56 152 127 56 156 124 53 155 128 52 94 90 61 60 61 69 54 67 66 
-145 151 154 252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 254 254 254 255 255 255 
-251 251 251 110 110 107 57 61 64 58 65 69 128 93 57 155 127 54 156 124 53 159 126 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-62 65 65 104 112 110 255 254 255 156 160 157 60 64 65 58 62 65 94 90 61 156 124 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-149 124 55 53 60 64 56 66 64 59 60 62 253 253 255 254 252 251 254 255 251 253 253 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 253 254 254 254 253 252 252 252 202 204 206 56 64 62 58 65 69 72 76 65 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-253 253 255 145 151 154 62 61 67 57 63 61 101 91 62 156 125 56 159 126 56 156 124 53 
-158 125 54 155 126 57 155 128 52 158 124 56 158 126 53 155 127 54 110 92 61 62 61 67 
-58 62 65 58 62 65 58 65 69 53 60 64 58 62 65 58 62 65 60 64 65 60 64 65 
-58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 
-58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 58 62 65 60 64 65 
-58 59 64 60 64 65 56 64 62 56 64 62 58 65 69 58 65 69 53 63 60 56 66 64 
-58 62 63 97 100 105 253 253 253 255 255 255 253 253 253 60 64 65 58 62 63 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 99 44 210 102 46 155 104 59 60 64 65 59 64 62 104 112 110 255 255 255 250 250 247 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 113 113 120 60 64 65 
-58 62 65 128 93 57 207 99 48 210 102 46 213 100 46 208 103 45 212 101 45 213 105 50 
-213 105 46 210 99 44 213 105 46 155 104 59 53 63 60 59 64 62 104 112 110 219 227 224 
-58 64 64 56 64 62 71 68 65 216 99 44 209 105 45 212 101 45 212 101 45 210 102 46 
-208 103 45 213 105 50 211 99 45 208 103 45 217 105 50 71 68 65 56 66 64 59 64 62 
-202 204 206 251 251 251 254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 81 77 81 58 65 69 53 60 64 174 105 47 210 102 46 216 99 44 212 101 45 
-208 103 45 211 99 45 213 100 52 212 98 39 210 102 46 213 105 50 112 79 60 62 65 65 
-57 63 63 160 163 161 104 112 110 58 64 64 57 58 61 155 104 59 210 102 46 210 99 44 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 253 255 254 160 163 161 54 67 66 57 60 56 128 99 63 209 99 39 213 105 46 
-209 105 45 213 100 46 209 99 39 216 99 44 210 102 46 212 104 43 198 102 49 128 93 57 
-54 67 66 59 64 62 59 64 62 53 63 60 53 63 60 58 65 69 57 61 64 56 66 64 
-56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 
-56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 56 64 62 
-56 64 62 56 66 64 57 60 56 59 64 62 59 60 62 60 60 63 58 65 69 58 65 69 
-58 62 65 62 66 62 97 100 105 241 240 247 255 254 255 
-187 189 188 0 1 1 4 1 5 0 0 0 142 120 69 173 138 52 169 138 59 166 144 56 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 159 134 56 149 124 55 147 124 59 147 124 59 
-152 127 56 166 144 56 173 142 59 94 90 61 4 1 5 142 120 69 165 143 59 182 158 106 
-160 163 161 113 113 120 97 100 105 97 100 105 97 100 105 113 113 120 172 178 183 241 240 247 
-255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 253 255 255 255 252 252 252 113 113 120 0 1 1 
-255 255 255 253 253 253 254 254 254 254 254 254 254 254 254 255 255 255 202 204 206 160 163 161 
-213 212 223 255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 97 100 105 
-4 2 1 156 160 157 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 126 57 156 124 53 72 73 56 53 60 64 60 64 65 187 189 188 254 255 251 249 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 254 252 251 254 254 253 255 255 255 254 255 255 125 131 132 58 62 65 60 64 65 
-101 91 62 156 125 56 158 127 55 155 128 52 158 124 56 158 124 56 156 124 53 156 128 53 
-156 124 53 158 127 55 155 126 57 58 62 63 57 60 56 56 66 64 113 113 120 62 61 67 
-58 64 64 101 91 62 157 124 59 157 126 52 156 125 56 159 126 56 159 126 56 156 126 54 
-155 127 54 152 124 44 154 129 46 101 91 62 56 66 64 57 63 61 59 60 62 62 70 65 
-59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 
-59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 
-57 63 61 57 63 61 57 63 61 59 64 62 59 64 62 57 63 61 59 64 62 57 58 61 
-56 66 64 54 67 66 54 64 59 58 65 54 71 72 69 160 163 161 253 255 254 254 251 252 
-113 113 120 56 64 62 58 64 64 110 92 61 156 126 54 158 127 55 158 126 53 158 127 55 
-158 126 53 157 127 54 158 124 56 156 126 54 155 127 54 128 113 57 57 60 70 56 64 62 
-88 95 83 253 255 254 253 255 254 255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 
-254 254 254 251 251 251 252 252 252 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 
-241 240 247 62 65 65 53 60 64 62 65 65 149 124 53 155 126 57 155 127 54 158 124 53 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 64 62 97 100 105 255 253 254 202 206 211 57 63 63 62 70 69 72 73 56 158 127 55 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 62 65 65 53 60 64 60 60 63 187 189 188 251 251 251 254 255 251 253 253 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 254 255 252 252 252 255 255 255 140 141 138 56 64 62 58 62 65 94 90 61 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 255 154 157 157 62 65 65 58 66 61 85 80 60 157 124 59 152 124 51 166 129 59 
-162 125 53 152 124 51 155 128 52 159 126 56 159 126 56 152 124 44 113 104 59 53 63 60 
-59 64 62 59 60 62 59 64 62 62 65 65 59 64 62 59 60 62 59 64 62 57 58 61 
-59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 59 64 62 
-59 64 62 59 64 62 57 63 61 57 63 61 62 65 65 59 64 62 57 63 61 59 64 62 
-60 60 63 62 66 62 57 60 56 53 60 64 57 61 64 58 65 54 59 59 56 62 61 67 
-145 151 154 241 240 247 255 255 255 255 255 255 254 254 254 62 65 65 58 62 63 60 64 65 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 105 50 210 102 46 198 102 49 58 65 69 60 64 65 57 58 61 241 240 247 255 253 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 254 254 254 255 255 255 253 253 253 255 255 255 254 255 255 68 69 75 58 62 63 
-51 61 71 174 105 47 208 103 45 210 102 46 216 99 44 208 103 45 212 101 45 210 102 46 
-211 102 45 213 100 46 208 103 45 128 93 57 58 67 65 60 60 63 113 113 120 254 254 255 
-59 64 62 57 63 61 62 61 67 198 102 49 210 105 40 213 100 46 212 98 39 210 102 46 
-210 102 46 208 103 45 212 101 45 211 99 45 209 99 39 97 78 60 60 64 65 56 66 64 
-156 160 157 254 255 255 252 252 252 251 251 251 254 254 254 255 255 255 255 255 255 252 252 252 
-255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 251 251 251 
-230 230 230 59 59 56 53 60 64 59 60 64 207 105 48 210 102 46 213 100 46 217 105 50 
-213 103 41 213 105 50 210 105 51 210 99 44 207 105 38 219 98 50 84 69 58 57 61 64 
-58 62 63 187 189 188 104 112 110 57 58 61 62 70 69 155 104 59 211 99 45 213 105 46 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 249 254 254 172 178 183 59 60 62 57 60 56 97 78 60 213 103 41 209 99 39 
-208 103 45 217 105 50 210 99 44 213 103 41 208 103 45 207 105 38 208 103 45 155 104 59 
-56 66 64 58 62 63 62 65 65 62 65 65 57 58 61 62 65 65 59 60 62 57 63 61 
-60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 
-60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 60 64 65 
-59 60 64 62 65 65 59 64 62 62 65 65 62 65 65 57 58 61 56 66 64 53 60 64 
-59 59 56 145 151 154 241 240 247 254 255 251 255 255 253 
-242 238 229 0 3 1 4 1 5 0 0 0 109 102 83 169 141 58 169 141 58 166 144 56 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 159 134 56 150 126 55 147 124 59 147 124 59 147 124 59 
-155 126 57 168 136 64 169 141 58 88 95 83 0 1 1 109 102 83 102 79 82 4 2 1 
-0 1 1 88 95 83 97 100 105 110 110 107 97 100 105 21 19 24 4 1 5 81 77 81 
-253 253 253 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 251 251 251 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 
-252 252 252 254 254 254 255 255 255 250 247 249 252 252 252 255 255 255 88 95 83 97 100 105 
-254 254 254 255 255 255 255 255 255 255 255 255 178 172 162 71 72 69 0 0 0 0 1 1 
-0 0 0 71 72 69 125 131 132 202 204 206 202 204 206 187 189 188 97 100 105 0 0 0 
-60 60 63 253 253 253 255 255 255 251 251 251 255 255 255 255 255 255 254 254 254 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 124 51 162 125 53 101 91 62 56 64 62 58 65 69 113 113 120 250 250 247 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 253 253 253 253 241 240 247 71 81 83 60 64 65 57 60 56 
-128 113 57 158 127 55 157 126 52 155 128 52 158 127 55 158 124 56 156 124 53 156 128 53 
-158 127 55 157 126 52 128 113 57 57 61 64 62 66 62 97 100 105 160 163 161 58 62 63 
-59 64 62 85 80 60 157 124 59 155 128 52 156 125 56 158 124 56 158 125 54 155 127 54 
-158 124 56 157 126 52 157 126 52 128 99 63 58 62 65 58 62 65 62 61 67 154 157 157 
-156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 
-156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 
-152 161 158 152 161 158 154 157 157 156 160 157 156 160 157 154 157 157 154 157 157 156 160 157 
-156 160 157 156 160 157 160 163 161 213 212 223 255 253 254 254 255 251 253 253 255 255 254 255 
-154 157 157 56 66 64 57 63 61 101 91 62 156 126 54 152 124 51 158 127 55 152 124 51 
-156 125 56 155 128 52 159 126 56 158 127 55 152 124 51 152 127 56 62 66 62 57 60 56 
-57 58 61 219 227 224 253 255 254 255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 250 247 249 255 255 255 
-172 178 183 57 60 56 58 65 69 71 65 56 154 129 46 155 126 57 155 127 54 158 126 53 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 62 63 104 112 110 255 255 253 202 204 206 57 63 61 56 66 64 71 68 65 149 124 55 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 124 53 85 80 60 58 65 69 58 64 64 140 141 138 253 255 254 249 252 251 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 252 251 255 254 255 255 255 253 255 255 255 88 95 83 58 62 65 57 58 61 113 104 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 255 202 206 211 62 65 65 57 60 56 72 76 65 157 124 59 162 125 53 152 124 51 
-158 125 54 155 127 54 156 128 53 157 126 52 158 127 55 157 126 52 142 120 69 58 64 64 
-57 63 63 58 64 64 145 151 154 156 160 157 156 160 157 154 157 157 160 163 161 154 157 157 
-156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 
-156 160 157 156 160 157 154 157 157 156 160 157 156 160 157 154 157 157 154 157 157 156 160 157 
-160 163 161 154 157 157 160 163 161 160 163 161 154 157 157 154 157 157 202 204 206 241 240 247 
-254 255 255 249 252 251 255 255 255 255 255 255 254 254 254 59 60 62 58 62 63 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-212 101 45 210 99 44 213 105 50 84 69 58 53 60 64 62 65 65 172 178 183 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 187 189 188 58 62 63 60 64 65 
-71 68 65 200 101 40 213 105 46 209 105 45 217 98 38 208 103 45 209 99 39 210 99 44 
-210 99 44 213 100 46 209 105 45 97 78 60 53 63 60 59 60 62 156 160 157 254 254 254 
-81 77 81 57 63 61 62 61 67 155 104 59 208 103 45 213 100 46 216 99 44 211 102 45 
-213 105 46 208 103 45 217 105 50 208 103 45 216 99 44 142 101 66 59 59 56 58 65 69 
-81 77 81 253 255 254 252 252 252 255 255 255 254 254 254 252 252 252 253 253 253 255 255 255 
-253 253 253 255 255 255 253 253 253 253 253 253 254 254 254 255 255 255 253 253 253 255 255 255 
-156 160 157 59 64 62 58 65 69 97 78 60 212 98 39 209 105 45 207 99 48 208 103 45 
-209 99 39 210 99 44 211 99 45 210 102 46 208 103 45 213 100 52 71 68 65 62 61 67 
-58 64 64 202 204 206 104 112 110 62 65 65 57 58 61 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-160 163 161 254 255 255 202 204 206 60 60 63 59 64 62 71 68 65 210 105 51 213 103 41 
-211 102 45 219 98 50 211 102 45 211 102 45 209 105 45 211 104 39 216 99 44 198 102 49 
-57 63 61 58 65 69 58 59 68 140 141 138 160 163 161 154 157 157 156 160 157 156 160 157 
-156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 
-156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 156 160 157 
-160 163 161 154 157 157 156 160 157 154 157 157 154 157 157 156 160 157 156 160 157 187 189 188 
-249 252 246 249 254 254 254 251 252 254 255 251 253 255 254 
-253 253 253 0 3 1 0 1 1 0 3 1 109 102 83 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 144 61 158 134 59 152 127 56 147 124 59 147 124 59 147 124 59 147 124 59 
-158 134 59 169 144 61 166 144 56 81 77 81 4 1 5 0 3 1 88 95 83 172 178 183 
-241 240 247 253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 140 141 138 0 0 0 
-125 131 132 255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 251 251 251 254 254 254 
-255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 48 49 51 125 131 132 
-254 254 254 241 240 247 154 157 157 71 72 69 0 0 0 0 0 0 97 100 105 187 189 188 
-140 141 138 48 49 51 4 2 1 0 0 0 0 0 0 4 2 1 0 0 0 81 77 81 
-241 240 247 253 253 253 253 253 253 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 127 55 152 124 44 147 124 59 57 60 56 58 65 69 59 64 62 230 230 230 248 254 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 253 250 252 246 254 255 255 156 160 157 58 62 63 59 59 56 71 68 65 
-155 126 57 161 124 50 158 124 53 156 125 56 156 126 54 158 125 54 155 127 54 158 125 54 
-152 124 51 159 126 56 101 91 62 60 61 69 57 60 56 125 131 132 202 204 206 56 66 64 
-59 64 62 71 68 65 157 124 59 155 128 52 157 124 59 159 126 56 158 125 54 158 127 55 
-157 124 59 159 126 56 156 124 53 147 124 59 57 60 56 53 63 60 59 64 62 202 204 206 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 255 254 254 255 255 255 255 251 251 251 255 255 255 252 252 252 202 206 211 
-202 204 206 224 220 212 254 255 251 255 253 254 254 250 255 249 252 251 254 255 251 250 252 254 
-187 189 188 56 64 62 59 64 62 72 76 65 157 127 54 158 124 54 158 127 55 156 126 54 
-155 126 57 161 124 50 157 124 59 156 128 53 155 126 57 159 126 56 94 90 61 57 63 61 
-60 64 65 125 131 132 254 255 255 254 254 254 255 255 255 253 253 253 252 252 252 255 255 255 
-253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 253 253 253 253 253 253 253 253 253 
-88 95 83 58 66 61 54 67 66 101 91 62 155 128 52 158 127 55 156 126 54 156 124 53 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-53 60 64 104 112 110 255 255 253 255 255 253 60 64 65 53 63 60 62 65 65 147 124 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 128 53 128 99 63 57 63 61 59 64 62 68 69 75 241 240 247 253 253 255 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 253 253 255 254 255 251 187 189 188 62 65 65 53 60 64 71 65 56 149 124 55 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 253 241 240 247 60 60 63 60 64 65 53 63 60 147 124 59 158 126 53 156 124 53 
-157 124 59 155 127 54 158 126 53 157 126 52 157 124 59 162 124 55 157 124 59 71 68 65 
-58 62 65 57 61 64 187 189 188 249 254 254 254 255 255 254 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 255 255 255 255 255 255 255 253 253 255 255 255 255 255 255 255 253 253 255 
-254 255 251 255 255 255 202 204 206 202 204 206 213 212 223 254 255 251 254 252 244 254 255 251 
-254 255 255 255 255 255 254 254 254 251 251 251 255 255 255 59 60 62 62 65 65 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 210 102 46 212 98 39 128 93 57 56 66 64 59 60 62 81 77 81 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 254 254 254 254 255 255 110 110 107 62 65 65 57 63 61 
-128 93 57 213 103 41 211 102 45 208 103 45 216 99 44 209 105 45 213 105 46 212 101 45 
-208 103 45 213 100 46 207 105 48 81 77 81 53 63 60 62 65 65 187 189 188 254 255 255 
-125 131 132 59 64 62 58 62 65 112 79 60 211 102 45 213 100 46 213 100 46 210 99 44 
-208 103 45 216 99 44 210 99 44 213 105 50 210 102 46 198 102 49 68 58 52 62 61 67 
-59 64 62 202 204 206 255 255 255 254 254 254 251 251 251 255 255 255 254 254 254 252 252 252 
-254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 241 240 247 
-71 72 69 56 66 64 56 64 62 140 101 45 216 99 44 209 105 45 207 99 48 213 105 50 
-213 105 46 213 105 46 211 102 45 213 105 50 213 105 46 174 105 47 58 67 65 60 60 63 
-58 62 63 255 255 255 104 112 110 60 64 65 60 64 65 155 104 59 213 105 50 210 99 44 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 251 251 251 254 255 255 59 64 62 57 63 63 62 65 65 185 105 60 209 99 39 
-216 99 44 211 99 45 208 103 45 210 102 46 213 105 46 212 104 43 216 99 44 213 100 52 
-84 69 58 66 60 61 54 67 66 154 157 157 255 254 255 254 254 254 254 255 251 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 255 249 254 254 219 227 224 202 204 206 202 204 206 254 251 252 255 255 253 
-253 255 254 250 252 254 255 254 255 253 252 247 248 254 252 
-255 253 254 59 59 56 4 1 5 0 3 1 81 77 81 169 144 61 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 159 134 56 149 124 55 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 
-166 134 56 166 144 56 169 144 61 21 19 24 0 0 0 160 163 161 253 253 255 253 255 254 
-255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 97 100 105 
-0 1 1 178 172 162 253 253 253 255 255 255 255 255 255 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 241 240 247 4 1 5 145 151 154 
-145 151 154 48 49 51 4 2 1 6 9 5 110 110 107 219 227 224 253 253 253 255 255 255 
-255 255 255 254 254 254 219 227 224 156 160 157 125 131 132 125 131 132 202 206 211 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 157 127 54 161 124 50 72 76 65 57 63 63 57 63 61 110 110 107 254 255 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 251 249 255 255 253 241 240 247 68 69 75 57 63 61 62 66 56 88 95 83 
-158 127 55 161 124 50 158 124 56 155 126 57 156 126 54 156 124 53 155 127 54 158 124 56 
-155 126 57 162 124 55 72 73 56 60 61 69 56 66 64 172 178 183 250 247 249 53 60 64 
-56 64 62 59 60 62 149 124 53 152 124 44 157 124 59 156 125 56 152 124 51 157 127 54 
-156 126 54 155 128 52 158 126 53 152 124 51 81 77 81 60 64 65 60 60 63 110 110 107 
-255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 
-255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 
-255 253 254 255 254 255 253 253 253 253 255 254 202 206 211 113 113 120 59 64 62 57 63 61 
-60 61 69 56 64 62 71 81 83 187 189 188 253 255 254 253 255 254 253 253 253 254 255 251 
-230 230 230 56 64 62 59 64 62 59 59 56 155 127 54 159 126 56 157 126 52 156 126 54 
-155 126 57 162 125 53 156 125 56 152 124 44 166 129 59 156 124 53 113 104 59 58 62 65 
-58 64 64 58 64 64 202 204 206 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 187 189 188 
-59 60 64 53 64 53 58 65 69 142 120 69 158 124 56 161 124 50 159 126 56 156 124 53 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 65 69 104 112 110 254 251 249 255 255 255 97 100 105 58 65 69 62 61 67 128 113 57 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 129 45 157 124 59 71 68 65 57 60 56 60 60 63 140 141 138 255 254 255 254 252 250 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 252 247 255 255 255 250 252 246 81 77 81 60 64 65 58 62 65 94 90 61 155 128 52 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-252 252 252 255 255 255 81 77 81 57 63 63 58 65 69 128 93 57 158 126 53 155 126 57 
-157 124 59 154 129 46 158 126 53 158 126 53 157 124 59 161 124 50 161 125 43 101 91 62 
-58 62 63 57 63 61 71 72 69 241 240 247 254 254 254 255 255 253 255 255 253 254 252 251 
-255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 255 255 253 
-255 255 253 251 251 251 255 255 253 255 255 253 251 251 251 255 255 253 251 251 251 230 230 230 
-125 131 132 71 72 69 62 66 62 53 63 60 57 63 63 68 69 75 160 163 161 255 254 255 
-253 255 254 255 255 255 255 255 255 255 255 255 254 254 254 60 64 65 58 62 63 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 99 44 210 102 46 213 100 46 185 105 60 57 63 61 62 66 56 58 64 64 160 163 161 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 187 189 188 60 64 65 53 63 60 60 64 65 
-174 105 47 216 99 44 211 102 45 208 103 45 213 105 50 209 99 39 213 105 50 212 101 45 
-209 105 45 211 99 45 200 101 40 58 59 64 54 67 66 57 60 56 241 240 247 253 255 254 
-172 178 183 62 65 65 53 60 64 84 69 58 213 105 50 211 99 45 210 105 51 210 99 44 
-211 99 45 209 105 45 216 99 44 212 98 39 210 105 51 211 104 39 97 78 60 62 61 67 
-57 63 61 97 100 105 253 253 253 253 253 253 255 254 255 255 255 255 253 253 253 255 255 255 
-255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 154 157 157 
-59 60 62 54 67 66 62 65 65 198 102 49 213 100 52 209 99 39 213 100 46 213 103 41 
-210 99 51 217 98 38 208 103 45 213 100 46 216 99 44 128 93 57 53 63 60 58 64 64 
-104 112 110 251 251 251 104 112 110 59 60 62 58 64 64 155 104 59 210 102 46 213 105 46 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 255 255 253 254 252 251 97 100 105 58 65 69 62 61 67 140 101 45 213 105 50 
-213 103 41 208 103 45 210 105 51 213 105 50 211 99 45 210 102 46 207 105 48 208 103 45 
-128 99 63 66 60 61 50 65 64 71 72 69 241 240 247 255 255 253 254 255 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-230 230 230 145 151 154 68 69 75 58 62 65 58 62 65 60 64 65 68 69 75 154 157 157 
-241 240 247 255 255 253 249 254 246 249 254 254 253 253 255 
-254 254 254 58 62 63 4 2 1 4 1 5 0 3 1 168 136 64 168 136 64 169 141 58 
-169 141 58 169 141 58 168 136 64 169 141 58 173 142 59 169 144 61 169 138 59 166 144 56 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-158 134 59 147 124 59 147 124 59 149 124 55 147 124 59 147 124 59 155 126 57 149 124 55 
-166 144 56 166 144 56 148 133 63 4 2 1 178 172 162 253 255 254 249 254 246 255 254 255 
-253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 241 240 247 
-88 95 83 21 19 24 187 189 188 252 252 252 255 255 255 251 251 251 255 255 255 255 255 253 
-255 255 255 254 254 254 255 255 255 254 252 251 255 255 253 254 252 251 255 255 255 255 255 255 
-254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 125 131 132 0 0 0 0 0 0 
-0 0 0 21 19 24 125 131 132 241 240 247 251 251 251 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 161 124 50 155 126 57 128 113 57 60 60 63 62 66 56 59 60 70 178 172 162 
-253 253 253 254 255 255 255 255 255 254 254 254 255 255 255 253 253 255 248 251 253 254 255 255 
-253 255 254 254 250 255 254 255 251 110 110 107 58 62 65 50 65 62 62 66 56 147 124 59 
-161 124 50 155 126 57 155 126 57 159 126 56 162 124 55 156 125 56 154 129 46 158 125 54 
-158 125 54 147 124 59 57 63 61 58 67 65 62 61 67 219 227 224 255 254 255 97 100 105 
-58 62 65 57 63 63 110 92 61 152 127 56 155 128 52 158 125 54 157 126 52 158 127 55 
-156 128 53 152 124 51 157 126 52 156 124 53 128 99 63 62 66 56 57 60 56 60 64 65 
-156 160 157 254 254 253 255 255 255 255 255 255 254 254 255 255 255 255 254 254 253 255 255 253 
-253 253 255 254 255 255 253 253 255 254 255 255 249 252 251 254 255 255 255 255 255 253 253 255 
-254 255 251 255 255 255 230 230 230 110 110 107 58 66 61 54 64 59 57 63 61 58 62 65 
-54 64 59 59 60 70 66 60 61 56 66 64 125 131 132 250 252 246 254 250 255 249 254 246 
-254 255 255 81 77 81 59 64 62 57 60 70 128 99 63 152 127 56 156 129 45 158 124 56 
-158 125 54 157 124 59 156 124 53 159 126 56 157 124 59 158 132 49 150 126 55 84 69 58 
-59 64 62 57 63 61 88 95 83 241 240 247 255 255 253 254 255 251 254 254 253 252 252 252 
-254 251 252 255 255 255 254 255 255 254 254 255 255 254 255 254 252 251 219 227 224 71 72 69 
-57 63 63 56 64 62 97 78 60 157 124 59 161 124 50 155 127 54 155 128 52 157 127 54 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-60 64 65 110 110 107 255 255 253 254 255 255 125 131 132 57 63 61 59 59 56 88 95 83 
-161 124 50 155 126 57 156 126 54 161 124 50 155 127 54 154 129 46 156 125 56 158 127 55 
-156 125 56 156 128 53 110 92 61 59 59 56 57 60 70 58 65 69 202 204 206 255 254 255 
-253 253 253 254 255 255 254 254 254 255 253 254 255 254 255 254 254 254 255 255 255 254 255 255 
-255 255 253 253 253 253 125 131 132 54 64 59 53 63 60 62 65 65 128 113 57 158 125 54 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 255 251 253 253 255 145 151 154 59 64 62 57 60 70 94 90 61 154 129 46 157 124 59 
-158 125 54 155 126 57 152 124 51 166 129 59 157 124 59 152 124 51 156 128 53 157 124 59 
-62 65 65 62 66 56 62 61 67 113 113 120 253 255 254 253 255 254 254 254 253 254 255 251 
-254 255 251 255 255 253 254 254 254 253 253 255 254 255 255 255 255 255 255 255 253 254 255 251 
-255 255 255 255 255 253 255 255 253 255 255 255 253 253 255 241 240 247 140 141 138 57 60 56 
-58 62 65 59 64 62 57 61 64 60 64 65 57 61 64 57 60 56 59 64 62 97 100 105 
-241 240 247 254 255 255 253 253 253 253 253 253 255 255 255 59 60 62 58 64 64 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 105 40 210 99 44 213 100 46 211 104 39 97 78 60 59 60 70 59 59 56 71 81 83 
-224 220 212 253 255 254 249 254 254 255 255 253 255 253 254 253 255 254 249 254 254 254 251 249 
-253 255 254 254 255 251 250 252 254 219 227 224 81 77 81 58 62 65 57 58 61 97 78 60 
-212 101 45 210 99 51 207 105 38 210 99 44 213 100 46 207 105 48 207 105 48 210 102 46 
-208 103 45 210 105 51 128 93 57 58 65 69 57 60 56 97 100 105 253 255 254 254 251 249 
-230 230 230 57 63 61 58 59 68 58 66 61 185 105 60 207 99 48 213 105 46 213 103 41 
-209 105 45 210 99 51 209 105 45 216 99 44 208 103 45 212 104 43 185 105 60 53 64 53 
-53 63 60 56 66 64 125 131 132 255 254 255 253 253 255 248 254 252 248 254 252 254 251 254 
-254 255 251 254 255 251 249 254 254 253 255 254 253 252 247 254 255 255 202 206 211 62 61 67 
-59 60 64 66 60 61 112 79 60 217 105 50 213 103 41 210 105 51 208 103 45 212 104 43 
-208 103 45 212 101 45 211 99 45 207 105 38 213 103 41 97 78 60 59 60 64 59 64 62 
-172 178 183 255 254 255 104 112 110 57 63 61 58 62 63 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 253 253 255 254 252 250 152 161 158 62 66 56 56 66 64 97 78 60 213 103 41 
-210 99 44 210 105 51 209 99 39 211 104 39 210 105 51 209 99 39 209 105 45 213 105 50 
-198 102 49 71 68 65 58 62 63 58 59 68 110 110 107 249 254 246 255 254 255 254 255 255 
-253 255 254 249 254 254 253 255 254 251 251 251 254 255 251 254 255 251 255 255 253 255 255 255 
-255 253 254 254 254 254 249 254 246 254 252 244 254 255 251 253 253 255 241 240 247 145 151 154 
-58 62 63 58 66 61 60 64 65 58 59 68 56 66 64 59 64 62 66 60 61 50 65 64 
-97 100 105 241 240 247 255 253 254 254 255 251 253 255 254 
-253 253 253 125 131 132 0 3 1 4 1 5 0 1 1 142 120 69 173 145 52 169 144 61 
-169 141 58 166 144 56 166 144 56 169 141 58 164 134 50 173 145 52 169 144 61 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 138 59 
-169 141 58 169 141 58 169 141 58 166 144 56 169 141 58 169 144 61 169 138 59 156 128 53 
-149 124 55 149 124 55 147 124 59 147 124 59 149 124 55 147 124 59 147 124 59 158 134 59 
-173 142 59 169 141 58 109 102 83 81 77 81 254 255 251 255 254 255 254 255 251 252 252 252 
-255 255 255 255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-213 212 223 48 49 51 0 1 1 140 141 138 252 252 252 255 255 255 253 253 253 255 255 255 
-252 252 252 255 255 255 251 251 251 255 255 255 255 255 253 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 253 253 253 253 253 253 255 255 255 255 255 255 251 251 251 
-254 254 254 252 252 252 255 255 255 255 255 255 255 255 255 21 19 24 0 0 0 21 19 24 
-160 163 161 254 254 254 255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-155 127 54 159 126 56 155 128 52 152 124 51 85 80 60 53 60 64 57 63 61 56 66 64 
-187 189 188 254 254 253 255 255 253 254 255 251 254 255 251 253 252 247 255 253 254 254 250 255 
-252 252 252 249 254 254 140 141 138 59 64 62 53 63 60 69 60 69 128 93 57 158 124 54 
-159 126 56 156 124 53 158 134 59 158 124 54 152 124 51 155 127 54 157 124 59 157 126 52 
-157 126 52 110 92 61 59 64 62 58 62 65 97 100 105 253 255 254 251 251 251 172 178 183 
-57 63 61 58 66 61 72 76 65 152 127 56 156 124 53 159 126 56 157 124 59 156 126 54 
-159 126 56 156 125 56 156 125 56 158 126 53 152 127 56 94 90 61 68 69 75 56 66 64 
-58 65 69 152 161 158 251 251 251 254 255 251 254 255 251 252 252 252 253 253 255 253 255 254 
-254 255 251 254 252 251 255 255 255 254 254 255 255 255 255 255 255 253 250 250 247 255 255 253 
-241 240 247 125 131 132 62 66 62 57 61 64 62 61 67 62 61 67 62 61 67 71 72 69 
-71 68 65 62 65 65 54 64 59 54 64 59 58 68 63 125 131 132 254 255 255 254 255 251 
-254 254 254 145 151 154 58 64 64 58 62 65 85 80 60 157 127 54 155 128 52 157 124 59 
-157 126 52 156 125 56 156 128 53 158 126 53 158 124 56 156 129 45 156 128 53 128 99 63 
-57 60 70 54 64 59 58 65 54 88 95 83 241 240 247 254 252 251 254 255 251 254 255 251 
-254 255 255 254 254 255 253 252 247 254 255 251 255 255 255 213 212 223 97 100 105 57 63 61 
-58 65 69 66 60 61 147 124 59 159 126 56 156 124 53 156 128 53 158 127 55 156 124 53 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 62 65 110 110 107 254 252 251 254 255 255 172 178 183 58 64 64 59 59 56 72 76 65 
-157 126 52 158 134 59 152 124 51 159 126 56 157 127 54 156 125 56 155 128 52 156 126 54 
-157 127 54 162 124 55 156 125 56 72 76 65 58 65 69 57 63 61 71 72 69 202 204 206 
-255 254 255 254 252 250 254 255 251 253 252 247 249 254 246 253 252 247 254 252 251 255 254 255 
-254 254 255 145 151 154 57 63 61 56 66 64 62 65 65 101 91 62 158 134 59 161 124 50 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 253 254 254 255 251 187 189 188 57 60 56 58 65 69 62 66 56 147 124 59 161 124 50 
-156 124 53 157 124 59 156 128 53 152 124 44 158 125 54 155 126 57 155 127 54 157 126 52 
-109 102 83 66 60 61 58 59 64 58 65 69 125 131 132 241 240 247 253 253 255 254 254 254 
-255 254 255 254 254 255 254 252 251 255 255 253 254 255 251 255 255 253 253 253 255 253 253 255 
-249 254 254 249 254 254 255 254 255 241 240 247 156 160 157 68 69 75 58 62 65 62 65 65 
-58 62 63 62 61 67 62 66 62 71 72 69 62 66 62 57 60 70 58 65 69 57 60 70 
-97 100 105 254 255 255 252 252 252 255 255 255 253 253 253 62 65 65 58 62 63 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 209 105 45 210 105 51 213 105 50 198 102 49 62 66 56 62 65 65 53 64 53 
-71 72 69 213 212 223 255 254 255 251 251 251 254 255 251 254 252 250 254 251 249 254 252 250 
-255 253 254 248 254 252 219 227 224 97 100 105 57 60 56 58 65 69 72 73 56 198 102 49 
-212 104 43 210 102 46 209 99 39 219 98 50 213 105 50 210 105 40 212 101 45 212 98 39 
-211 104 39 213 105 46 97 78 60 53 60 64 56 64 62 178 172 162 253 252 247 255 254 255 
-255 255 253 97 100 105 54 67 66 62 66 56 128 93 57 216 99 44 208 103 45 211 102 45 
-213 103 41 210 99 44 210 105 40 213 103 41 210 102 46 212 98 39 210 99 51 128 93 57 
-58 65 69 57 58 61 54 64 59 125 131 132 254 254 254 253 252 247 255 255 253 255 253 254 
-254 251 249 254 250 255 255 255 253 253 252 247 254 255 255 224 220 212 72 76 65 56 66 64 
-54 67 66 72 76 65 210 105 51 212 101 45 208 103 45 208 103 45 213 100 46 216 99 44 
-212 101 45 212 98 39 213 105 50 208 103 45 174 105 47 59 60 64 59 64 62 58 64 64 
-230 230 230 255 253 254 104 112 110 59 64 62 62 65 65 155 104 59 210 102 46 213 105 46 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 253 253 255 254 252 251 219 227 224 59 60 62 57 63 63 66 60 61 174 105 47 
-212 104 43 200 101 40 217 98 38 207 99 48 210 102 46 213 105 46 213 100 46 207 105 38 
-209 105 45 155 104 59 54 67 66 62 66 56 57 58 61 113 113 120 242 238 229 253 252 247 
-254 252 251 255 253 254 253 253 255 255 255 255 253 253 253 254 254 254 253 255 254 253 255 254 
-255 255 253 254 251 252 255 254 255 254 250 255 253 253 255 156 160 157 71 72 69 54 64 59 
-57 63 63 58 62 65 50 65 64 71 68 65 71 68 65 54 64 59 62 66 62 66 60 61 
-54 67 66 97 100 105 241 240 247 249 252 251 253 255 254 
-253 253 255 178 172 162 0 3 1 0 1 1 4 1 5 62 66 62 169 144 61 166 144 56 
-169 141 58 169 144 61 166 144 56 173 142 59 169 144 61 166 144 56 169 141 58 169 138 59 
-169 141 58 169 141 58 169 138 59 169 138 59 169 141 58 169 141 58 169 138 59 169 138 59 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 158 134 59 152 127 56 149 124 55 
-147 124 59 147 124 59 147 124 59 147 124 59 149 124 55 147 124 59 147 124 59 165 143 59 
-169 141 58 173 138 52 59 59 56 97 100 105 255 255 255 254 252 251 254 255 255 255 255 253 
-252 252 252 253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 255 255 255 
-251 251 251 241 240 247 88 95 83 0 0 0 71 72 69 213 212 223 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-252 252 252 253 253 253 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 140 141 138 4 1 5 71 72 69 254 254 254 
-253 253 253 255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-152 127 56 156 126 54 156 124 53 156 128 53 149 124 55 71 72 69 53 67 71 54 64 59 
-57 61 64 140 141 138 230 230 230 255 255 253 251 251 251 249 254 246 254 255 251 249 254 246 
-202 204 206 97 100 105 62 61 67 57 60 56 50 65 62 94 90 61 159 126 56 158 124 53 
-158 124 56 156 128 53 152 124 44 158 125 54 158 127 55 152 124 51 155 127 54 157 124 59 
-155 126 57 71 68 65 59 64 62 58 65 69 160 163 161 252 252 252 253 255 254 230 230 230 
-58 66 61 58 59 68 56 64 62 128 113 57 159 126 56 157 126 52 157 124 59 157 126 52 
-158 125 54 157 124 59 158 127 55 159 126 56 152 124 44 149 124 55 84 69 58 58 62 65 
-57 61 64 58 62 65 104 112 110 202 204 206 253 252 247 254 255 251 253 255 254 249 252 251 
-252 252 252 255 255 255 255 255 253 253 252 247 250 252 246 254 255 251 230 230 230 140 141 138 
-71 72 69 58 62 65 59 59 56 57 60 56 50 65 64 72 76 65 128 113 57 161 124 50 
-150 126 55 110 92 61 71 65 56 69 60 69 53 64 53 59 59 56 202 204 206 253 253 253 
-254 250 255 202 204 206 57 63 63 57 63 63 62 66 62 147 124 59 158 127 55 155 126 57 
-157 126 52 156 125 56 157 127 54 157 126 52 162 124 55 162 124 55 157 126 52 155 126 57 
-113 104 59 66 60 61 58 59 68 56 64 62 68 69 75 187 189 188 253 252 247 254 254 255 
-250 252 254 254 254 253 255 254 255 252 252 252 160 163 161 72 76 65 57 61 64 62 61 67 
-60 60 63 128 99 63 152 124 44 156 128 53 156 128 53 156 125 56 156 124 53 158 127 55 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-58 62 65 110 110 107 254 254 254 253 253 253 230 230 230 57 61 64 57 63 61 57 63 61 
-147 124 59 157 124 59 156 128 53 157 124 59 158 125 54 158 124 56 158 127 55 156 126 54 
-158 124 54 152 124 44 166 129 59 147 124 59 57 63 61 58 65 69 59 59 56 58 64 64 
-156 160 157 241 240 247 255 254 255 255 254 255 253 253 255 254 255 255 254 255 255 202 204 206 
-104 112 110 57 60 56 58 65 54 58 62 65 71 72 69 152 127 56 161 124 50 162 125 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-253 253 255 254 255 251 255 254 255 81 77 81 57 63 63 62 61 67 101 91 62 156 129 45 
-159 126 56 155 128 52 155 128 52 155 128 52 158 127 55 156 124 53 158 127 55 157 126 52 
-152 124 51 94 90 61 53 63 60 57 60 56 57 63 61 81 77 81 187 189 188 254 255 255 
-253 255 254 253 255 254 253 253 253 253 253 253 249 252 251 255 255 253 253 255 254 253 255 254 
-254 255 255 241 240 247 160 163 161 68 69 75 60 61 69 59 59 56 62 66 56 50 65 62 
-71 72 69 110 92 61 158 132 49 156 126 54 113 104 59 72 76 65 53 60 64 58 65 54 
-59 64 62 160 163 161 253 253 253 253 253 253 253 253 253 59 60 62 58 64 64 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-216 99 44 213 105 50 210 99 44 207 105 38 212 98 39 155 104 59 58 64 64 54 67 66 
-58 64 64 68 69 75 160 163 161 254 255 251 254 252 251 253 253 255 253 255 254 253 255 254 
-254 255 251 172 178 183 68 69 75 58 66 61 58 62 65 53 63 60 142 101 66 213 103 41 
-210 99 44 208 103 45 212 98 39 213 100 52 210 99 44 212 98 39 212 101 45 211 102 45 
-212 98 39 185 105 60 57 63 61 57 63 63 54 67 66 242 238 229 254 255 251 254 255 255 
-255 253 254 172 178 183 54 64 59 57 63 61 72 73 56 210 105 51 208 103 45 209 105 45 
-212 101 45 208 103 45 209 105 45 216 99 44 210 102 46 209 99 39 216 99 44 198 102 49 
-84 69 58 62 66 56 58 65 69 57 58 61 110 110 107 202 204 206 253 253 255 253 255 254 
-255 254 255 254 255 251 253 252 247 241 240 247 160 163 161 60 64 65 57 63 61 56 66 64 
-71 68 65 174 105 47 213 103 41 216 99 44 211 104 39 212 101 45 210 102 46 216 99 44 
-213 100 46 210 102 46 210 102 46 213 105 46 128 93 57 59 64 62 56 66 64 104 112 110 
-255 255 255 251 251 251 104 112 110 57 63 61 58 64 64 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 253 255 254 254 255 251 253 253 253 81 77 81 58 62 65 60 64 65 128 93 57 
-211 102 45 213 105 46 210 102 46 211 99 45 210 102 46 213 105 50 209 99 39 208 103 45 
-212 98 39 216 99 44 97 78 60 50 65 62 59 59 56 51 61 71 71 81 83 172 178 183 
-254 255 251 248 254 252 253 255 254 248 254 252 253 255 254 252 252 252 253 253 255 250 252 254 
-253 255 254 250 252 246 242 238 229 172 178 183 88 95 83 58 62 63 59 64 62 58 65 69 
-62 61 67 71 68 65 155 104 59 210 102 46 213 105 46 155 104 59 72 76 65 62 61 67 
-56 66 64 62 65 65 154 157 157 253 255 254 249 254 254 
-255 254 255 242 238 229 4 1 5 4 2 1 0 1 1 0 1 1 142 120 69 164 144 50 
-169 138 59 173 142 59 169 141 58 169 138 59 169 144 61 164 144 50 169 141 58 169 138 59 
-169 141 58 169 141 58 169 138 59 169 138 59 169 141 58 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 168 136 64 158 134 59 149 124 55 147 124 59 147 124 59 
-149 124 55 147 124 59 147 124 59 147 124 59 147 124 59 149 124 55 159 134 56 169 144 61 
-169 138 59 169 144 61 21 19 24 88 95 83 249 254 254 254 255 255 253 253 253 255 254 255 
-255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 252 252 252 253 253 253 255 255 255 
-255 255 255 251 251 251 241 240 247 140 141 138 0 0 0 0 1 1 113 113 120 230 230 230 
-251 251 251 255 255 255 254 254 254 252 252 252 255 255 255 252 252 252 254 254 254 255 255 255 
-255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 241 240 247 88 95 83 0 0 0 219 227 224 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 126 53 155 127 54 157 124 59 150 128 52 158 124 56 128 113 57 71 68 65 58 62 63 
-60 64 65 58 62 63 60 60 63 97 100 105 145 151 154 160 163 161 125 131 132 81 77 81 
-62 61 67 57 61 64 56 66 64 53 67 71 85 80 60 152 127 56 156 124 53 150 128 52 
-158 124 54 158 126 53 152 124 51 159 126 56 156 126 54 154 129 46 158 127 55 158 124 53 
-113 104 59 58 65 69 59 64 62 57 61 64 230 230 230 254 251 252 248 254 252 253 253 255 
-113 113 120 58 65 69 53 60 64 84 69 58 159 126 56 158 125 54 158 124 54 158 126 53 
-156 125 56 157 126 52 159 126 56 152 124 51 159 126 56 159 126 56 147 124 59 72 73 56 
-60 60 63 59 64 62 57 63 61 54 64 59 97 100 105 160 163 161 202 204 206 230 230 230 
-254 255 251 255 255 253 254 252 251 202 206 211 172 178 183 113 113 120 58 65 69 53 60 64 
-57 63 63 57 60 56 62 70 69 72 76 65 128 113 57 156 125 56 158 127 55 158 124 56 
-161 125 43 158 127 55 150 126 55 66 60 61 58 62 63 58 65 69 113 113 120 253 255 254 
-254 254 255 254 255 251 71 81 83 59 60 64 57 63 61 101 91 62 161 124 50 157 126 52 
-158 124 54 156 125 56 158 127 55 156 124 53 159 126 56 159 126 56 156 124 53 157 126 52 
-155 128 52 110 92 61 62 65 65 58 65 69 53 64 53 62 66 62 68 69 75 110 110 107 
-152 161 158 156 160 157 113 113 120 68 69 75 57 60 70 54 67 66 58 66 61 58 62 65 
-110 92 61 156 128 53 162 124 55 155 127 54 157 127 54 156 124 53 156 126 54 157 126 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-60 64 65 97 100 105 255 255 255 252 252 252 254 255 255 97 100 105 57 61 64 57 63 63 
-110 92 61 155 128 52 159 126 56 152 124 51 158 127 55 156 124 53 157 124 59 157 126 52 
-157 127 54 159 126 56 157 126 52 149 124 55 128 113 57 62 66 62 50 65 64 58 62 65 
-57 63 61 57 63 61 104 112 110 145 151 154 152 161 158 140 141 138 81 77 81 57 58 61 
-57 63 61 54 67 66 58 64 64 71 68 65 147 124 59 156 128 53 157 124 59 156 124 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 254 254 253 255 254 255 253 254 156 160 157 60 64 65 58 64 64 71 68 65 148 133 63 
-161 124 50 159 126 56 155 126 57 156 125 56 159 126 56 157 126 52 156 124 53 157 124 59 
-159 126 56 152 124 51 97 78 60 54 67 66 58 68 63 59 64 62 58 65 54 81 77 81 
-140 141 138 187 189 188 230 230 230 255 253 254 255 254 255 254 254 253 224 220 212 172 178 183 
-113 113 120 57 63 61 58 66 61 57 63 61 57 60 56 60 64 65 71 65 56 110 92 61 
-158 124 56 157 124 59 158 126 53 158 124 53 159 126 56 150 126 55 85 80 60 58 66 61 
-60 64 65 81 77 81 253 255 254 255 255 255 254 254 254 59 64 62 62 70 69 57 63 61 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-212 104 43 212 104 43 213 105 50 217 104 40 210 105 51 212 104 43 142 101 66 57 63 63 
-58 65 54 60 64 65 58 62 63 71 72 69 110 110 107 156 160 157 154 157 157 113 113 120 
-68 69 75 59 59 56 58 65 54 57 63 61 58 64 64 142 101 66 200 101 40 216 99 44 
-211 99 45 209 105 45 208 103 45 210 102 46 212 101 45 217 105 50 207 99 48 207 105 48 
-217 105 50 112 79 60 54 64 59 62 66 62 104 112 110 253 253 255 254 254 253 254 255 251 
-254 255 255 241 240 247 71 72 69 58 64 64 57 60 56 142 101 66 217 98 38 208 103 45 
-211 102 45 209 105 45 213 105 50 213 100 46 210 102 46 208 103 45 208 103 45 217 104 40 
-198 102 49 84 69 58 58 62 65 66 60 61 59 60 62 58 62 65 97 100 105 125 131 132 
-152 161 158 140 141 138 113 113 120 53 63 60 54 67 66 58 62 65 62 61 67 62 70 69 
-155 104 59 213 100 46 208 103 45 212 104 43 210 99 44 216 99 44 210 102 46 207 105 38 
-208 103 45 213 103 41 208 103 45 210 99 51 59 64 62 62 65 65 62 66 56 187 189 188 
-253 253 255 255 253 254 104 112 110 59 64 62 58 62 63 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 253 255 254 253 252 247 254 252 251 178 172 162 60 64 65 53 60 64 71 65 56 
-198 102 49 208 103 45 213 105 46 210 102 46 211 104 39 208 103 45 216 99 44 210 102 46 
-213 105 46 213 100 46 213 100 46 97 78 60 57 63 61 59 60 64 60 61 69 56 64 62 
-81 77 81 145 151 154 187 189 188 219 227 224 250 250 247 254 255 251 254 255 251 224 220 212 
-172 178 183 140 141 138 71 72 69 62 65 65 57 63 61 57 60 56 59 64 62 66 60 61 
-142 101 66 211 104 39 208 103 45 210 105 51 209 105 45 213 105 50 212 101 45 97 78 60 
-59 60 62 57 60 56 71 72 69 253 255 254 253 255 254 
-253 253 255 249 254 254 97 100 105 0 0 0 4 1 5 0 0 0 21 19 24 168 136 64 
-169 141 58 166 134 56 173 145 52 169 138 59 169 138 59 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 138 59 169 141 58 169 141 58 166 144 56 169 141 58 169 141 58 
-169 141 58 169 138 59 158 134 59 155 126 57 147 124 59 147 124 59 147 124 59 147 124 59 
-147 124 59 147 124 59 149 124 53 147 124 59 147 124 59 158 127 55 169 141 58 169 138 59 
-173 142 59 142 120 69 0 3 1 71 72 69 249 254 254 253 255 254 250 247 249 230 230 230 
-230 230 230 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 252 252 252 255 255 255 
-252 252 252 255 255 255 254 254 254 255 255 255 230 230 230 97 100 105 0 1 1 0 1 1 
-110 110 107 219 227 224 253 253 253 255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 
-252 252 252 253 253 253 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 
-253 253 253 254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 253 253 253 
-253 253 253 255 255 255 255 255 255 125 131 132 0 0 0 125 131 132 254 254 254 255 255 255 
-254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 124 53 158 127 55 157 124 59 161 124 50 162 125 53 155 126 57 149 124 55 85 80 60 
-57 63 61 57 63 61 54 64 59 56 64 62 60 64 65 57 61 64 62 61 67 60 64 65 
-58 65 69 62 61 67 57 63 61 94 90 61 158 127 55 162 124 55 158 127 55 155 128 52 
-156 126 54 158 124 56 158 124 56 158 124 56 156 129 45 157 126 52 157 124 59 155 127 54 
-72 73 56 62 65 65 57 63 61 125 131 132 254 254 255 255 254 255 248 254 252 255 255 255 
-202 206 211 57 58 61 62 70 69 57 60 56 128 99 63 161 124 50 157 126 52 157 126 52 
-154 129 46 158 127 55 158 124 54 157 124 59 159 126 56 152 124 44 155 126 57 147 124 59 
-94 90 61 62 66 56 62 61 67 57 60 70 60 64 65 57 60 56 59 64 62 58 59 64 
-57 60 70 57 61 64 62 65 65 57 60 56 57 63 61 62 65 65 57 60 56 62 65 65 
-60 64 65 71 68 65 110 92 61 156 125 56 158 126 53 159 126 56 156 124 53 155 126 57 
-154 129 46 155 126 57 158 127 55 101 91 62 60 64 65 54 67 66 62 61 67 249 254 254 
-254 255 251 255 255 255 178 172 162 60 60 63 59 60 64 71 72 69 157 124 59 161 125 43 
-158 124 56 159 126 56 158 127 55 156 125 56 156 124 53 158 125 54 158 124 54 156 126 54 
-157 124 59 152 127 56 110 92 61 66 60 61 56 66 64 53 64 53 58 66 61 58 62 65 
-58 65 69 57 63 61 58 64 64 56 66 64 56 66 64 58 62 65 71 65 56 113 104 59 
-152 127 56 159 126 56 166 129 59 152 124 51 159 126 56 158 124 53 159 126 56 157 126 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-60 64 65 104 112 110 255 255 253 255 255 253 255 255 255 172 178 183 53 63 60 56 66 64 
-71 68 65 151 135 55 156 124 53 155 128 52 156 128 53 155 126 57 155 128 52 162 124 55 
-149 124 53 158 124 53 155 126 57 166 129 59 155 126 57 128 113 57 72 76 65 62 66 62 
-57 63 61 62 65 65 59 64 62 59 60 62 62 66 62 57 60 56 57 63 61 56 66 64 
-60 61 69 62 65 65 85 80 60 147 124 59 155 128 52 155 128 52 155 128 52 155 126 57 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 255 253 250 252 254 254 255 251 241 240 247 68 69 75 58 66 61 58 65 69 110 92 61 
-158 132 49 157 124 59 157 124 59 157 126 52 157 124 59 157 124 59 156 124 53 158 127 55 
-156 126 54 158 124 54 158 127 55 110 92 61 59 64 62 54 64 59 68 69 75 53 60 64 
-58 62 65 60 64 65 57 63 61 57 63 61 57 60 56 59 64 62 58 62 63 58 62 65 
-56 66 64 58 62 63 57 63 61 54 67 66 62 66 62 101 91 62 157 124 59 162 124 55 
-162 124 55 159 126 56 162 124 52 162 125 53 156 124 53 155 128 52 128 99 63 58 59 64 
-57 63 63 60 64 65 213 212 223 253 253 253 254 254 254 59 60 62 58 62 63 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 102 46 211 104 39 210 99 51 207 99 48 213 100 52 210 105 40 213 105 46 155 104 59 
-66 60 61 58 62 65 53 67 71 58 65 69 57 63 61 53 63 60 56 66 64 62 65 65 
-59 64 62 58 62 65 57 60 70 62 70 69 155 104 59 208 103 45 213 105 50 213 100 46 
-213 100 46 213 100 46 208 103 45 208 103 45 213 105 46 213 105 50 207 99 38 213 103 41 
-185 105 60 57 60 70 60 64 65 57 63 63 187 189 188 255 255 253 254 255 255 252 252 252 
-254 255 251 248 254 252 160 163 161 59 59 56 58 65 69 62 65 65 209 99 39 213 105 46 
-211 102 45 212 101 45 213 100 46 207 99 48 211 102 45 213 105 46 208 103 45 211 102 45 
-213 105 50 198 102 49 97 78 60 54 67 66 59 60 62 56 66 64 59 64 62 59 64 62 
-53 67 71 59 64 62 57 63 61 62 66 62 62 66 56 56 66 64 84 69 58 174 105 47 
-217 104 40 210 99 51 217 105 50 207 99 48 209 105 45 211 102 45 210 102 46 210 105 40 
-208 103 45 209 99 39 212 104 43 112 79 60 62 61 67 57 63 61 81 77 81 249 254 254 
-253 253 255 255 254 255 104 112 110 62 65 65 58 62 63 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 253 255 254 253 252 247 255 255 253 241 240 247 71 72 69 62 70 69 53 60 64 
-128 93 57 217 104 40 208 103 45 211 102 45 217 104 40 213 103 41 210 99 44 213 100 46 
-210 102 46 207 99 38 217 104 40 209 105 45 128 93 57 62 70 69 53 60 64 62 65 65 
-62 61 67 62 61 67 58 62 63 60 64 65 62 66 62 57 58 61 57 61 64 53 60 64 
-57 63 61 57 63 63 58 62 65 57 58 61 54 67 66 62 65 65 128 93 57 198 102 49 
-210 99 51 217 104 40 208 103 45 213 103 41 209 99 39 212 101 45 219 98 50 174 105 47 
-59 64 62 62 65 65 59 64 62 202 204 206 255 255 255 
-254 252 251 254 251 252 187 189 188 4 1 5 0 1 1 4 1 5 4 1 5 84 69 58 
-158 134 59 166 144 56 166 144 56 173 145 52 169 141 58 168 136 64 166 144 56 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-159 134 56 159 134 56 149 124 55 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 
-147 124 59 147 124 59 147 124 59 147 124 59 158 134 59 173 142 59 169 141 58 166 144 56 
-168 136 64 88 95 83 21 19 24 4 1 5 213 212 223 250 252 246 250 250 247 213 212 223 
-224 220 212 224 220 212 230 230 230 255 255 255 255 255 255 251 251 251 255 255 255 254 254 254 
-255 255 255 254 254 254 251 251 251 251 251 251 255 255 255 253 253 253 202 204 206 97 100 105 
-0 1 1 0 0 0 81 77 81 178 172 162 253 253 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-255 255 255 241 240 247 113 113 120 4 2 1 48 49 51 255 255 255 253 253 253 251 251 251 
-255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 156 126 54 162 125 53 156 129 45 154 129 46 157 126 52 157 124 59 147 124 59 
-109 102 83 85 80 60 62 65 65 53 60 64 54 67 66 54 64 59 57 63 61 60 64 65 
-59 59 56 94 90 61 149 124 53 158 127 55 162 124 55 158 124 54 157 124 59 161 124 50 
-156 125 56 158 127 55 157 124 59 156 124 53 166 129 59 158 124 53 155 128 52 128 99 63 
-58 64 64 59 59 56 58 67 65 230 230 230 255 254 255 250 247 249 254 255 251 253 253 253 
-255 255 253 104 112 110 57 60 56 60 64 65 72 73 56 157 124 59 155 128 52 158 125 54 
-158 127 55 158 126 53 158 124 56 155 128 52 154 129 46 158 124 56 159 126 56 161 125 43 
-157 127 54 128 99 63 85 80 60 60 61 69 50 65 64 50 65 62 56 64 62 60 64 65 
-58 64 64 58 67 65 53 64 53 53 63 60 56 64 62 57 63 63 59 64 62 71 72 69 
-113 104 59 152 127 56 156 128 53 156 124 53 156 124 53 158 134 59 155 126 57 158 125 54 
-157 124 59 166 129 59 156 124 53 147 124 59 57 60 70 53 60 64 58 66 61 230 230 230 
-254 255 251 248 254 252 250 247 249 68 69 75 62 61 67 56 64 62 101 91 62 158 127 55 
-158 125 54 158 126 53 156 124 53 158 127 55 155 128 52 154 129 46 157 127 54 157 124 59 
-152 124 51 162 124 55 161 124 50 147 124 59 101 91 62 62 65 65 59 64 62 62 66 56 
-60 60 63 57 60 56 62 66 56 57 63 61 71 68 65 101 91 62 149 124 55 157 126 52 
-161 125 43 157 124 59 152 124 51 156 125 56 162 125 53 158 124 54 157 124 59 158 127 55 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 64 62 104 112 110 254 255 251 254 254 253 255 255 253 241 240 247 71 81 83 57 63 63 
-58 62 65 113 104 59 155 128 52 158 126 53 156 126 54 155 127 54 154 129 46 158 124 56 
-162 124 55 156 128 53 162 124 55 152 124 51 155 127 54 156 126 54 157 124 59 113 104 59 
-71 72 69 57 63 61 59 64 62 56 66 64 56 66 64 56 66 64 58 64 64 58 62 65 
-85 80 60 128 113 57 155 128 52 159 126 56 158 124 53 158 124 53 159 126 56 155 128 52 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 251 252 254 255 251 255 255 253 254 255 251 154 157 157 59 64 62 53 60 64 71 65 56 
-142 120 69 156 128 53 161 125 43 159 126 56 159 126 56 157 124 59 159 126 56 152 124 44 
-157 126 52 158 127 55 155 127 54 156 126 54 142 120 69 94 90 61 56 64 62 59 60 62 
-58 62 65 58 62 65 57 61 64 58 65 69 57 61 64 60 61 69 58 62 65 58 65 69 
-58 65 54 58 62 63 71 68 65 110 92 61 147 124 59 154 129 46 156 126 54 156 124 53 
-155 126 57 150 128 52 156 128 53 162 125 53 158 124 56 162 124 55 150 128 52 71 65 56 
-57 63 63 58 62 63 202 206 211 255 255 255 253 253 253 62 65 65 60 64 65 57 63 63 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-211 102 45 213 105 50 217 104 40 211 104 39 217 105 50 209 99 39 212 98 39 217 98 38 
-198 102 49 128 93 57 71 68 65 60 61 69 62 61 67 57 63 61 59 64 62 59 60 62 
-54 64 59 69 60 69 128 93 57 200 101 40 213 105 50 208 103 45 212 98 39 213 105 50 
-212 104 43 216 99 44 210 102 46 209 99 39 208 103 45 208 103 45 212 98 39 213 105 46 
-97 78 60 58 65 69 57 58 61 88 95 83 254 254 254 255 255 253 253 253 255 254 255 251 
-254 255 251 252 252 252 241 240 247 68 69 75 50 65 64 58 64 64 128 93 57 211 99 45 
-212 104 43 216 99 44 212 101 45 208 103 45 210 105 40 217 104 40 212 101 45 212 101 45 
-216 99 44 216 99 44 207 105 38 155 104 59 97 78 60 66 60 61 53 60 64 57 63 63 
-59 59 56 58 62 63 62 61 67 53 60 64 71 72 69 142 101 66 213 105 46 207 105 48 
-207 99 38 217 104 40 207 99 48 211 102 45 212 104 43 207 99 48 213 105 50 216 99 44 
-211 99 45 216 99 44 174 105 47 54 64 59 60 60 63 53 64 53 187 189 188 255 255 253 
-255 255 255 251 251 251 104 112 110 59 64 62 58 62 63 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 249 254 254 255 255 253 254 254 253 253 255 254 154 157 157 57 58 61 58 65 69 
-58 65 69 185 105 60 213 103 41 208 103 45 219 98 50 216 99 44 200 101 40 212 101 45 
-210 102 46 210 105 51 207 105 48 216 99 44 212 101 45 198 102 49 112 79 60 66 60 61 
-57 63 61 56 66 64 60 64 65 57 61 64 60 60 63 60 60 63 62 65 65 60 60 63 
-60 64 65 57 60 56 60 64 65 71 68 65 128 93 57 198 102 49 217 104 40 213 100 52 
-212 104 43 209 99 39 210 99 51 211 102 45 212 104 43 210 99 51 212 104 43 207 105 48 
-71 68 65 59 64 62 58 64 64 178 172 162 252 252 252 
-254 255 251 254 252 251 249 252 251 97 100 105 4 2 1 4 1 5 0 0 0 4 1 5 
-97 78 60 151 135 55 165 143 59 168 136 64 169 141 58 166 144 56 173 145 52 168 136 64 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 168 136 64 158 134 59 
-152 127 56 149 124 55 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 
-149 124 55 147 124 59 148 133 63 158 134 59 173 138 52 173 142 59 169 144 61 165 143 59 
-142 120 69 4 2 1 137 137 94 68 58 52 125 131 132 254 255 251 253 252 247 219 227 224 
-219 227 224 213 212 223 213 212 223 219 227 224 251 251 251 255 255 255 254 254 254 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 
-230 230 230 113 113 120 48 49 51 4 1 5 6 9 5 97 100 105 187 189 188 255 255 255 
-254 254 254 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 253 253 253 
-254 254 254 255 255 255 255 255 255 253 253 253 252 252 252 255 255 255 255 255 255 254 254 254 
-202 204 206 71 72 69 0 0 0 48 49 51 241 240 247 253 253 253 253 253 253 255 255 255 
-254 254 254 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 124 59 155 128 52 157 124 59 152 127 56 155 128 52 162 124 55 154 129 46 162 125 53 
-157 124 59 149 124 55 147 124 59 128 113 57 101 91 62 101 91 62 110 92 61 113 104 59 
-147 124 59 152 127 56 156 125 56 162 125 53 157 124 59 156 124 53 155 127 54 156 128 53 
-158 124 56 157 126 52 158 127 55 158 127 55 156 124 53 157 124 59 147 124 59 66 60 61 
-60 61 69 62 66 62 125 131 132 254 252 251 253 253 255 253 255 254 254 255 251 254 254 255 
-249 252 251 219 227 224 59 64 62 60 61 69 53 64 53 101 91 62 152 127 56 156 125 56 
-156 124 53 157 124 59 156 129 45 158 127 55 157 124 59 155 128 52 159 126 56 161 124 50 
-156 124 53 156 128 53 155 128 52 128 113 57 113 104 59 85 80 60 72 76 65 57 63 61 
-58 64 64 57 63 63 59 64 62 71 68 65 85 80 60 110 92 61 142 120 69 155 128 52 
-158 127 55 156 125 56 158 124 54 162 124 55 155 126 57 152 124 51 158 127 55 152 124 44 
-162 124 55 156 124 53 162 125 53 155 128 52 62 66 62 56 66 64 59 60 64 230 230 230 
-255 255 253 254 255 251 250 247 249 154 157 157 59 64 62 57 63 61 71 68 65 142 120 69 
-157 127 54 158 126 53 157 126 52 158 127 55 156 126 54 156 128 53 155 128 52 158 124 54 
-158 126 53 155 128 52 155 126 57 156 125 56 152 124 51 152 124 51 142 120 69 110 92 61 
-94 90 61 101 91 62 110 92 61 128 113 57 152 127 56 155 126 57 152 124 51 156 129 45 
-159 126 56 152 124 51 158 134 59 159 126 56 154 129 46 155 126 57 158 124 56 157 126 52 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-59 64 62 104 112 110 254 255 255 253 253 253 255 255 253 254 254 253 154 157 157 59 64 62 
-60 64 65 71 68 65 147 124 59 156 124 53 158 124 56 155 128 52 156 128 53 156 124 53 
-159 126 56 161 124 50 155 128 52 158 127 55 155 128 52 162 125 53 158 126 53 155 127 54 
-156 125 56 142 120 69 113 104 59 101 91 62 94 90 61 101 91 62 128 113 57 149 124 55 
-148 133 63 156 129 45 162 124 55 159 126 56 157 124 59 161 124 50 157 124 59 152 124 51 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-254 251 252 254 255 255 248 254 252 255 254 255 241 240 247 68 69 75 59 64 62 58 65 69 
-85 80 60 148 133 63 162 125 53 158 124 56 158 127 55 152 124 51 158 124 56 157 126 52 
-166 129 59 157 124 59 156 124 53 161 125 43 156 124 53 155 126 57 147 124 59 113 104 59 
-85 80 60 72 76 65 62 66 62 59 64 62 57 58 61 59 59 56 62 66 56 72 76 65 
-94 90 61 128 113 57 157 124 59 158 125 54 157 124 59 157 124 59 158 127 55 150 128 52 
-158 125 54 152 124 51 156 125 56 152 124 51 152 127 56 159 126 56 152 124 51 84 69 58 
-56 66 64 57 63 63 202 206 211 253 253 253 253 253 253 59 64 62 58 62 63 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-210 102 46 207 99 38 216 99 44 212 98 39 207 99 38 213 100 52 213 100 46 208 103 45 
-212 104 43 212 104 43 207 105 48 174 105 47 142 101 66 112 79 60 112 79 60 142 101 66 
-174 105 47 210 102 46 217 105 50 207 105 38 208 103 45 210 105 51 216 99 44 210 105 51 
-208 103 45 216 99 44 213 105 46 213 103 41 208 103 45 208 103 45 213 105 46 155 104 59 
-62 61 67 57 60 56 62 65 65 187 189 188 254 254 255 255 255 255 255 254 255 254 255 251 
-254 252 250 253 255 254 254 255 251 152 161 158 53 63 60 66 60 61 53 60 64 155 104 59 
-208 103 45 216 99 44 212 104 43 207 105 38 209 105 45 216 99 44 216 99 44 210 102 46 
-213 105 46 211 102 45 211 99 45 209 105 45 208 103 45 198 102 49 155 104 59 128 93 57 
-128 93 57 112 79 60 142 101 66 174 105 47 209 99 39 217 104 40 210 99 44 216 99 44 
-213 105 46 208 103 45 213 105 46 207 105 38 210 99 51 210 102 46 213 105 50 211 99 45 
-210 105 51 198 102 49 71 68 65 59 59 56 54 67 66 97 100 105 249 254 246 254 251 252 
-255 255 255 251 251 251 104 112 110 59 64 62 58 62 63 155 104 59 213 105 50 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-156 160 157 249 252 251 253 253 255 255 254 255 254 255 251 253 255 254 88 95 83 57 63 63 
-59 64 62 71 72 69 207 105 48 210 99 51 210 99 44 212 104 43 213 105 46 208 103 45 
-211 102 45 207 99 48 213 100 46 213 105 46 210 99 44 208 103 45 213 105 46 198 102 49 
-142 101 66 112 79 60 85 80 60 57 63 61 54 67 66 50 65 64 57 60 56 62 66 56 
-85 80 60 128 93 57 174 105 47 210 105 51 209 99 39 207 105 48 207 105 48 209 99 39 
-210 105 40 208 103 45 211 104 39 210 102 46 208 103 45 207 105 38 209 105 45 208 103 45 
-81 77 81 59 59 56 57 58 61 187 189 188 255 254 255 
-255 255 253 254 251 252 255 253 254 242 238 229 48 49 51 0 1 1 0 3 1 0 1 1 
-4 1 5 85 80 60 158 134 59 173 145 52 168 136 64 169 141 58 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 159 134 56 152 127 56 147 124 59 
-147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 147 124 59 
-158 134 59 159 134 56 166 144 56 169 144 61 169 141 58 164 144 50 168 136 64 142 120 69 
-4 1 5 109 102 83 173 138 52 109 102 83 48 49 51 241 240 247 254 252 251 254 250 255 
-219 227 224 213 212 223 219 227 224 224 220 212 219 227 224 251 251 251 255 255 255 253 253 253 
-254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 
-254 254 254 255 255 255 241 240 247 172 178 183 113 113 120 0 1 1 0 1 1 4 2 1 
-71 72 69 125 131 132 202 204 206 241 240 247 254 254 254 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 241 240 247 178 172 162 97 100 105 
-0 1 1 0 0 0 125 131 132 255 255 255 255 255 255 255 255 255 254 254 254 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 253 152 161 158 60 64 65 57 63 61 101 91 62 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-157 124 59 154 129 46 110 92 61 156 125 56 158 127 55 157 124 59 155 126 57 157 126 52 
-155 128 52 159 126 56 158 124 56 158 124 53 161 124 50 161 124 50 158 127 55 159 126 56 
-158 127 55 156 124 53 158 127 55 156 124 53 156 128 53 155 127 54 155 128 52 158 124 54 
-158 125 54 158 125 54 155 128 52 157 124 59 161 125 43 156 124 53 85 80 60 56 66 64 
-62 61 67 71 81 83 230 230 230 255 253 254 253 253 253 254 255 251 250 252 246 255 254 255 
-255 255 253 254 255 251 160 163 161 51 61 71 54 64 59 59 64 62 128 99 63 155 128 52 
-159 126 56 155 128 52 156 125 56 159 126 56 158 124 54 155 127 54 155 128 52 157 124 59 
-156 126 54 156 126 54 158 125 54 159 126 56 156 125 56 157 124 59 159 126 56 156 124 53 
-158 124 56 156 126 54 155 128 52 155 128 52 155 126 57 156 125 56 158 125 54 162 125 53 
-158 125 54 158 126 53 156 126 54 155 127 54 158 126 53 158 126 53 156 124 53 157 124 59 
-155 128 52 156 128 53 158 124 56 110 92 61 59 64 62 57 63 61 68 69 75 254 255 251 
-254 252 244 254 250 255 253 255 254 249 254 246 71 81 83 62 61 67 53 64 53 85 80 60 
-155 127 54 158 127 55 158 125 54 158 127 55 157 124 59 157 124 59 156 124 53 159 126 56 
-155 127 54 156 125 56 158 124 54 152 124 51 157 126 52 158 127 55 156 125 56 156 128 53 
-161 124 50 157 126 52 156 124 53 156 126 54 159 126 56 161 124 50 159 126 56 157 124 59 
-156 126 54 155 126 57 158 124 54 158 126 53 147 124 59 155 128 52 161 124 50 158 124 56 
-155 127 54 158 124 56 155 127 54 158 125 54 156 125 56 155 128 52 128 113 57 58 62 65 
-57 63 61 104 112 110 253 255 254 254 255 255 254 254 254 254 254 253 250 247 249 71 72 69 
-57 63 61 57 63 61 110 92 61 157 126 52 162 124 55 156 124 53 157 126 52 157 127 54 
-148 128 46 159 126 56 157 124 59 150 128 52 155 127 54 161 124 50 158 125 54 155 126 57 
-161 124 50 157 126 52 158 126 53 158 127 55 158 127 55 158 127 55 156 125 56 156 125 56 
-162 124 55 158 126 53 155 128 52 156 124 53 156 126 54 157 124 59 154 129 46 159 126 56 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 126 54 158 126 53 72 76 65 58 62 63 57 63 63 202 206 211 255 253 254 156 160 157 
-58 62 63 58 64 64 101 91 62 155 126 57 158 125 54 156 126 54 156 124 53 156 126 54 
-158 125 54 156 126 54 156 125 56 155 127 54 128 113 57 58 62 65 58 62 65 104 112 110 
-255 254 255 253 253 255 249 254 246 254 250 255 255 255 255 187 189 188 66 60 61 50 65 64 
-56 66 64 101 91 62 157 124 59 159 126 56 156 125 56 158 127 55 157 126 52 157 124 59 
-156 124 53 161 125 43 161 125 43 157 124 59 157 124 59 154 129 46 159 126 56 162 124 55 
-161 124 50 158 126 53 156 124 53 156 125 56 155 126 57 158 127 55 159 126 56 158 125 54 
-158 125 54 158 126 53 155 128 52 155 128 52 157 126 52 158 127 55 156 124 53 162 125 53 
-157 124 59 158 132 49 158 124 54 159 126 56 156 128 53 154 129 46 128 113 57 54 64 59 
-53 63 60 60 64 65 230 230 230 254 254 254 255 255 255 59 64 62 58 62 63 58 64 64 
-211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-213 100 46 207 105 48 210 105 40 142 101 66 213 100 46 208 103 45 210 102 46 208 103 45 
-213 100 46 210 102 46 213 105 50 209 99 39 210 105 40 209 105 45 209 105 45 213 103 41 
-211 102 45 213 100 52 200 101 40 210 102 46 213 100 46 209 99 39 212 101 45 207 105 38 
-208 103 45 212 101 45 208 103 45 217 98 38 210 99 51 213 105 50 198 102 49 62 66 62 
-56 64 62 56 66 64 110 110 107 255 255 255 254 255 251 251 251 251 255 254 255 248 254 252 
-255 255 255 248 254 253 254 254 254 254 255 251 88 95 83 62 61 67 54 64 59 84 69 58 
-198 102 49 213 100 52 211 102 45 208 103 45 213 105 50 211 99 45 212 104 43 207 105 48 
-208 103 45 210 102 46 212 104 43 213 100 46 208 103 45 210 105 51 213 100 46 209 99 39 
-211 99 45 213 103 41 208 103 45 211 102 45 216 99 44 213 100 46 213 105 50 208 103 45 
-210 99 51 213 100 46 207 105 38 213 100 46 211 102 45 210 105 51 208 103 45 217 104 40 
-212 98 39 112 79 60 59 64 62 59 60 64 53 60 64 202 204 206 255 254 255 253 255 254 
-254 254 255 255 254 255 104 112 110 57 63 61 58 64 64 155 104 59 210 102 46 211 102 45 
-208 103 45 212 101 45 211 102 45 212 101 45 211 102 45 211 102 45 212 101 45 112 79 60 
-56 66 64 57 63 63 156 160 157 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 58 62 65 57 63 63 112 79 60 212 101 45 208 103 45 212 101 45 210 102 46 
-212 101 45 208 103 45 212 101 45 211 102 45 211 102 45 112 79 60 58 62 65 57 63 61 
-154 157 157 253 255 254 253 253 255 254 250 255 250 250 247 253 255 254 202 206 211 57 63 61 
-57 60 56 60 60 63 112 79 60 213 103 41 211 102 45 208 103 45 210 102 46 210 102 46 
-211 104 39 213 105 46 208 103 45 211 99 45 209 105 45 207 105 48 210 99 44 217 105 50 
-216 99 44 217 105 50 210 99 44 213 100 46 212 101 45 211 99 45 213 105 50 210 99 44 
-210 99 44 209 105 45 209 99 39 212 104 43 217 105 50 213 100 46 213 100 46 213 105 46 
-208 103 45 212 104 43 219 98 50 211 99 45 207 105 48 219 98 50 213 100 46 198 102 49 
-59 59 56 57 63 61 56 66 64 219 227 224 255 254 255 
-255 255 255 255 255 255 253 253 253 254 254 254 241 240 247 48 49 51 0 0 0 0 0 0 
-0 1 1 4 1 5 21 19 24 142 120 69 165 143 59 173 138 52 173 142 59 169 141 58 
-166 144 56 169 144 61 169 141 58 169 141 58 157 127 54 147 124 59 147 124 59 149 124 55 
-147 124 59 147 124 59 149 124 55 149 124 53 155 126 57 159 126 56 166 134 56 169 141 58 
-166 144 56 169 144 61 169 141 58 173 142 59 169 141 58 168 136 64 110 92 61 4 1 5 
-84 69 58 165 143 59 166 144 56 168 136 64 21 19 24 145 151 154 255 255 255 253 255 254 
-241 240 247 213 212 223 219 227 224 224 220 212 224 220 212 219 227 224 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 
-254 252 251 255 254 255 251 251 251 254 255 251 253 253 255 241 240 247 187 189 188 160 163 161 
-88 95 83 0 0 0 4 2 1 0 1 1 0 0 0 71 72 69 71 72 69 71 72 69 
-110 110 107 145 151 154 145 151 154 113 113 120 81 77 81 0 0 0 0 1 1 0 0 0 
-97 100 105 219 227 224 255 255 255 253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 255 254 255 251 253 255 254 253 253 255 154 157 157 57 60 70 57 63 61 101 91 62 
-162 124 55 161 124 50 157 126 52 156 124 53 156 124 53 155 128 52 155 128 52 157 124 59 
-161 124 50 152 127 56 62 61 67 113 104 59 162 125 53 152 127 56 157 124 59 162 125 53 
-158 125 54 156 126 54 156 128 53 155 128 52 156 128 53 156 124 53 158 127 55 162 125 53 
-159 126 56 152 124 51 158 127 55 158 127 55 158 125 54 158 124 53 159 126 56 157 126 52 
-157 124 59 156 124 53 158 127 55 155 128 52 155 126 57 110 92 61 57 63 61 56 66 64 
-59 64 62 178 172 162 253 253 253 255 255 255 253 253 253 252 252 252 255 255 255 255 255 255 
-254 255 251 255 254 255 255 254 255 97 100 105 54 67 66 57 60 70 71 65 56 128 113 57 
-155 128 52 156 126 54 158 127 55 152 124 51 155 128 52 156 126 54 158 127 55 156 125 56 
-156 126 54 156 124 53 155 127 54 155 127 54 155 126 57 155 127 54 155 128 52 155 128 52 
-155 128 52 155 127 54 155 126 57 155 126 57 155 127 54 155 128 52 155 128 52 155 128 52 
-158 126 53 158 125 54 157 127 54 157 126 52 161 124 50 161 124 50 157 126 52 157 124 59 
-162 124 55 155 127 54 128 113 57 66 60 61 58 65 69 56 64 62 125 131 132 254 250 255 
-254 254 254 255 255 255 254 254 254 253 253 253 202 204 206 58 64 64 53 63 60 56 66 64 
-97 78 60 152 127 56 156 129 45 158 124 53 156 124 53 155 128 52 159 126 56 162 124 52 
-156 124 53 156 125 56 157 124 59 155 126 57 155 127 54 155 127 54 155 127 54 155 127 54 
-158 125 54 156 126 54 157 127 54 155 126 57 155 126 57 155 126 57 159 126 56 161 124 50 
-152 127 56 158 125 54 156 128 53 128 113 57 85 80 60 161 124 50 159 126 56 155 126 57 
-155 128 52 155 128 52 158 124 56 159 126 56 156 126 54 158 126 53 128 113 57 60 64 65 
-62 65 65 110 110 107 253 253 253 255 254 255 254 254 254 253 253 253 253 255 254 156 160 157 
-60 60 63 58 65 69 62 66 56 128 113 57 157 124 59 159 126 56 157 126 52 156 125 56 
-156 126 54 158 127 55 156 124 53 157 127 54 158 127 55 152 124 51 156 125 56 157 124 59 
-158 127 55 157 126 52 158 127 55 158 125 54 158 127 55 156 124 53 161 124 50 161 125 43 
-162 124 55 158 127 55 156 125 56 156 126 54 155 126 57 155 128 52 158 125 54 156 124 53 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 124 56 158 127 55 72 76 65 60 64 65 57 63 63 202 204 206 254 255 255 154 157 157 
-62 65 65 58 62 65 94 90 61 155 126 57 157 124 59 154 129 46 155 127 54 152 124 51 
-157 124 59 152 124 51 162 125 53 161 124 50 128 99 63 59 59 56 58 62 65 104 112 110 
-255 255 255 255 255 255 255 255 255 254 254 254 253 253 253 254 255 255 125 131 132 59 64 62 
-54 67 66 62 66 56 113 104 59 155 126 57 158 124 54 159 126 56 158 125 54 156 124 53 
-155 126 57 158 124 56 162 124 55 159 126 56 157 127 54 155 128 52 155 128 52 155 127 54 
-156 126 54 156 126 54 158 127 55 158 126 53 158 127 55 156 126 54 156 126 54 158 127 55 
-155 128 52 157 127 54 157 126 52 158 126 53 157 126 52 158 126 53 158 125 54 158 124 56 
-158 127 55 156 124 53 159 126 56 157 126 52 156 125 56 147 124 59 72 73 56 51 61 71 
-62 65 65 110 110 107 254 255 255 253 253 253 254 255 255 59 64 62 58 62 63 60 64 65 
-211 102 45 208 103 45 219 98 50 216 99 44 209 105 45 209 105 45 208 103 45 210 105 40 
-211 104 39 213 100 52 174 105 47 62 70 65 198 102 49 209 105 45 210 102 46 213 100 46 
-208 103 45 212 101 45 217 98 38 217 98 38 213 105 46 207 99 48 210 102 46 213 103 41 
-210 102 46 212 101 45 213 105 46 212 101 45 210 102 46 210 102 46 213 105 50 210 102 46 
-208 103 45 217 104 40 210 99 44 210 105 51 217 98 38 207 99 48 84 69 58 56 66 64 
-60 64 65 68 69 75 230 230 230 255 255 255 255 255 255 252 252 252 255 255 255 254 254 254 
-254 254 254 255 255 255 253 253 253 255 255 255 213 212 223 58 62 63 56 66 64 53 63 60 
-97 78 60 213 100 52 217 98 38 209 105 45 210 102 46 207 99 38 213 105 46 210 99 44 
-213 100 52 211 99 45 210 102 46 208 103 45 210 102 46 208 103 45 208 103 45 208 103 45 
-210 102 46 211 102 45 211 99 45 212 101 45 210 102 46 208 103 45 210 99 44 213 103 41 
-210 102 46 210 102 46 210 105 51 208 103 45 211 102 45 219 98 50 210 99 44 213 103 41 
-142 101 66 68 58 52 50 65 64 58 65 69 154 157 157 248 254 252 249 254 246 255 253 254 
-253 252 247 249 254 254 110 110 107 56 66 64 66 60 61 155 104 59 212 104 43 208 103 45 
-211 104 39 210 105 51 213 100 52 210 105 40 216 99 44 213 100 46 213 100 46 128 93 57 
-58 62 65 58 62 63 156 160 157 255 255 255 253 253 253 255 255 255 254 255 255 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-156 160 157 59 60 64 53 67 71 128 93 57 209 105 45 208 103 45 212 104 43 216 99 44 
-217 104 40 213 100 52 207 99 48 210 105 40 213 103 41 112 79 60 58 66 61 59 64 62 
-156 160 157 253 253 253 253 255 254 254 254 254 255 255 255 255 255 255 255 255 255 140 141 138 
-60 60 63 54 67 66 58 65 54 142 101 66 213 100 52 212 98 39 207 105 38 208 103 45 
-208 103 45 211 102 45 212 101 45 213 105 50 207 99 38 212 104 43 212 104 43 211 102 45 
-213 100 46 211 99 45 210 102 46 208 103 45 208 103 45 211 99 45 213 100 46 216 99 44 
-210 102 46 213 100 46 211 99 45 208 103 45 211 102 45 213 100 46 213 105 50 208 103 45 
-210 105 51 210 99 44 216 99 44 212 101 45 211 99 45 217 104 40 198 102 49 84 69 58 
-57 63 63 58 64 64 81 77 81 254 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 242 238 229 48 49 51 0 0 0 
-4 1 5 0 0 0 0 1 1 4 1 5 102 79 82 142 120 69 165 143 59 169 141 58 
-169 141 58 168 136 64 169 144 61 164 144 50 169 141 58 169 144 61 159 134 56 158 134 59 
-155 126 57 168 136 64 168 136 64 169 144 61 169 141 58 169 141 58 166 144 56 166 144 56 
-173 142 59 164 144 50 166 144 56 166 144 56 142 120 69 72 76 65 0 3 1 81 77 81 
-165 143 59 165 143 59 173 142 59 166 144 56 109 102 83 48 49 51 219 227 224 255 254 255 
-252 252 252 230 230 230 213 212 223 213 212 223 213 212 223 219 227 224 241 240 247 255 255 255 
-253 253 253 255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 252 252 252 254 254 254 
-253 252 247 253 255 254 254 255 255 249 254 246 230 230 230 219 227 224 219 227 224 254 254 253 
-254 254 255 230 230 230 160 163 161 4 2 1 4 2 1 6 9 5 0 0 0 4 1 5 
-0 1 1 0 1 1 0 1 1 0 0 0 0 0 0 81 77 81 154 157 157 241 240 247 
-253 253 253 255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 251 248 251 253 255 255 255 156 160 157 53 60 64 59 64 62 101 91 62 
-156 126 54 158 127 55 159 126 56 158 124 54 158 124 56 166 129 59 156 124 53 161 125 43 
-152 127 56 147 124 59 59 59 56 68 69 75 147 124 59 158 126 53 156 128 53 152 124 51 
-156 126 54 158 127 55 156 124 53 159 126 56 158 124 54 156 126 54 156 126 54 155 127 54 
-161 124 50 159 126 56 155 126 57 155 126 57 150 126 55 155 126 57 155 126 57 155 126 57 
-161 124 50 158 134 59 152 124 51 158 132 49 113 104 59 59 64 62 62 65 65 57 60 56 
-125 131 132 253 255 254 254 255 255 254 254 254 252 252 252 255 255 255 255 255 255 253 253 253 
-254 255 251 253 253 255 255 254 255 230 230 230 62 70 65 58 65 69 59 60 62 68 58 52 
-140 101 45 152 127 56 152 124 51 158 127 55 156 124 53 155 126 57 155 126 57 158 127 55 
-157 126 52 158 126 53 158 127 55 159 126 56 158 124 56 158 124 54 158 124 54 158 125 54 
-159 126 56 159 126 56 158 124 54 158 124 56 156 124 53 159 126 56 158 124 56 157 124 59 
-157 124 59 158 124 53 162 124 55 157 124 59 156 128 53 155 126 57 155 126 57 156 124 53 
-155 128 52 128 113 57 62 66 62 58 65 69 59 60 64 68 69 75 242 238 229 253 255 254 
-255 255 255 251 251 251 255 255 255 252 252 252 253 255 254 140 141 138 58 64 64 60 64 65 
-54 64 59 110 92 61 152 124 51 162 125 53 157 124 59 155 126 57 154 129 46 158 127 55 
-159 126 56 158 126 53 157 126 52 157 126 52 158 125 54 158 124 56 158 125 54 158 124 53 
-157 127 54 155 128 52 155 128 52 158 126 53 158 126 53 157 126 52 157 126 52 158 126 53 
-159 126 56 162 124 55 128 113 57 58 65 54 62 66 62 157 124 59 158 125 54 156 129 45 
-162 124 55 155 128 52 156 128 53 152 127 56 157 124 59 159 126 56 128 113 57 50 65 62 
-53 63 60 110 110 107 255 255 255 255 253 254 252 252 252 254 254 254 254 255 255 254 254 254 
-97 100 105 58 59 64 57 60 56 71 72 69 147 124 59 161 125 43 159 126 56 158 127 55 
-157 124 59 157 124 59 155 126 57 156 126 54 156 124 53 159 126 56 158 127 55 152 124 44 
-152 124 44 155 128 52 157 127 54 155 128 52 155 128 52 155 127 54 159 126 56 157 124 59 
-156 124 53 158 124 54 157 126 52 158 125 54 157 124 59 101 91 62 72 76 65 84 69 58 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 157 127 54 72 76 65 58 62 63 60 64 65 202 204 206 251 251 251 156 160 157 
-58 64 64 54 64 59 101 91 62 158 124 56 161 124 50 158 124 56 157 124 59 159 126 56 
-152 124 44 158 125 54 158 124 53 157 124 59 128 113 57 58 62 63 54 67 66 110 110 107 
-255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 249 252 251 241 240 247 97 100 105 
-62 61 67 57 63 61 62 61 67 110 92 61 159 134 56 158 126 53 152 124 44 159 126 56 
-157 126 52 155 128 52 154 129 46 155 128 52 158 124 56 157 124 59 162 124 55 161 124 50 
-158 127 55 156 126 54 156 126 54 152 124 51 156 124 53 152 124 51 156 126 54 156 126 54 
-155 126 57 157 124 59 157 124 59 157 124 59 159 126 56 156 124 53 155 128 52 152 124 51 
-157 124 59 158 125 54 161 124 50 159 126 56 147 124 59 71 68 65 57 63 61 58 62 65 
-59 64 62 202 206 211 253 253 253 253 253 253 254 255 255 57 58 61 62 65 65 57 63 63 
-198 102 49 207 105 48 208 103 45 216 99 44 208 103 45 217 105 50 212 98 39 213 100 52 
-210 99 51 212 98 39 128 93 57 62 61 67 97 78 60 217 104 40 209 105 45 208 103 45 
-213 100 46 212 101 45 209 105 45 207 105 48 208 103 45 211 104 39 217 104 40 210 99 44 
-213 105 46 208 103 45 209 99 39 211 104 39 212 104 43 209 99 39 213 103 41 217 105 50 
-217 105 50 207 99 38 212 104 43 207 99 38 211 102 45 112 79 60 59 60 62 57 63 63 
-60 64 65 187 189 188 253 253 255 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-253 253 253 255 255 255 251 251 251 252 252 252 254 255 255 172 178 183 57 63 61 62 65 65 
-53 64 53 97 78 60 217 104 40 212 98 39 209 105 45 213 100 46 211 99 45 213 105 50 
-208 103 45 212 104 43 212 104 43 217 105 50 213 100 46 213 100 46 213 103 41 213 103 41 
-208 103 45 211 102 45 210 102 46 211 99 45 212 101 45 212 104 43 212 101 45 211 99 45 
-210 102 46 216 99 44 208 103 45 210 105 51 217 105 50 212 98 39 209 105 45 128 93 57 
-68 58 52 58 66 61 53 60 64 110 110 107 255 254 255 254 255 251 253 255 254 255 253 254 
-253 253 253 254 254 255 110 110 107 54 67 66 58 65 69 174 105 47 213 103 41 207 105 48 
-211 99 45 212 104 43 207 99 38 213 105 50 213 100 52 211 104 39 198 102 49 112 79 60 
-58 64 64 60 64 65 154 157 157 255 255 255 252 252 252 253 253 253 255 255 255 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-152 161 158 62 65 65 60 64 65 112 79 60 217 105 50 208 103 45 210 102 46 216 99 44 
-209 105 45 210 99 51 217 104 40 213 105 50 211 102 45 128 99 63 58 65 69 53 60 64 
-156 160 157 254 255 255 253 255 254 251 251 251 255 255 255 253 253 253 255 255 255 255 255 255 
-97 100 105 57 61 64 59 64 62 57 63 61 128 93 57 213 105 46 219 98 50 212 98 39 
-213 103 41 210 102 46 210 102 46 208 103 45 213 105 50 213 105 46 209 105 45 213 100 46 
-208 103 45 208 103 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 211 102 45 
-208 103 45 208 103 45 208 103 45 213 100 46 213 100 46 211 99 45 213 103 41 211 104 39 
-211 104 39 213 105 50 209 105 45 207 99 48 212 104 43 198 102 49 72 76 65 60 64 65 
-57 63 63 58 62 63 202 204 206 255 255 255 253 253 253 
-255 255 255 254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 241 240 247 48 49 51 
-0 0 0 4 1 5 4 1 5 0 3 1 0 3 1 0 0 0 94 90 61 142 120 69 
-166 144 56 169 144 61 169 141 58 166 144 56 173 142 59 166 134 56 169 141 58 169 141 58 
-169 141 58 169 141 58 169 141 58 166 144 56 166 144 56 169 141 58 169 141 58 169 144 61 
-173 138 52 173 138 52 148 133 63 109 102 83 0 1 1 4 2 1 109 102 83 165 143 59 
-169 138 59 166 144 56 173 142 59 169 141 58 168 136 64 21 19 24 125 131 132 253 253 255 
-255 255 255 250 247 249 219 227 224 224 220 212 224 220 212 224 220 212 230 230 230 255 255 255 
-255 255 255 254 254 254 254 254 254 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 
-254 255 255 250 252 254 230 230 230 224 220 212 219 227 224 241 240 247 254 250 255 254 252 250 
-241 240 247 145 151 154 21 19 24 0 0 0 4 2 1 0 0 0 6 9 5 0 0 0 
-48 49 51 81 77 81 125 131 132 187 189 188 255 255 255 253 253 253 252 252 252 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 252 252 252 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 252 247 253 255 254 252 252 252 156 160 157 58 65 69 57 63 63 94 90 61 
-157 124 59 152 124 44 158 126 53 155 126 57 155 128 52 154 129 46 157 126 52 162 124 55 
-155 126 57 110 92 61 57 63 61 54 64 59 101 91 62 155 128 52 158 125 54 157 127 54 
-162 124 55 162 124 55 158 124 53 159 126 56 158 127 55 158 127 55 155 126 57 155 126 57 
-156 124 53 156 128 53 155 128 52 156 128 53 158 126 53 158 126 53 157 126 52 159 134 56 
-156 129 45 161 124 50 158 126 53 113 104 59 58 62 63 56 66 64 57 60 56 97 100 105 
-241 240 247 254 255 255 253 253 253 255 255 255 253 253 253 254 254 254 253 253 253 255 255 255 
-253 252 247 255 255 255 255 253 254 254 255 251 224 220 212 71 72 69 57 61 64 58 65 69 
-62 65 65 113 104 59 158 127 55 152 124 44 166 129 59 158 124 54 152 124 51 158 127 55 
-157 124 59 156 125 56 155 128 52 155 128 52 155 127 54 158 127 55 158 124 56 158 124 56 
-152 124 51 155 128 52 155 128 52 156 128 53 152 124 51 156 124 53 155 128 52 156 128 53 
-161 125 43 155 127 54 152 127 56 155 128 52 156 124 53 152 127 56 155 126 57 161 124 50 
-113 104 59 62 66 56 58 62 65 54 67 66 60 64 65 187 189 188 248 254 252 249 254 246 
-254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 254 255 255 104 112 110 57 58 61 
-58 65 69 56 64 62 113 104 59 152 124 44 157 124 59 157 124 59 159 126 56 152 124 51 
-156 124 53 156 126 54 156 128 53 156 128 53 155 128 52 156 124 53 156 124 53 158 124 56 
-157 124 59 158 124 56 156 126 54 156 126 54 156 124 53 159 126 56 158 127 55 155 128 52 
-161 124 50 147 124 59 62 66 62 58 67 65 59 60 64 128 113 57 158 124 53 157 127 54 
-159 126 56 157 127 54 154 129 46 155 126 57 157 124 59 161 124 50 128 113 57 62 61 67 
-60 64 65 110 110 107 253 253 253 255 254 255 253 253 253 255 255 255 251 251 251 251 251 251 
-219 227 224 62 65 65 57 63 63 53 63 60 71 72 69 149 124 55 161 124 50 155 127 54 
-156 128 53 152 124 51 162 125 53 161 124 50 152 124 51 152 127 56 156 128 53 159 126 56 
-157 124 59 156 125 56 156 125 56 155 126 57 155 126 57 155 127 54 155 128 52 156 128 53 
-158 132 49 155 128 52 152 124 51 157 124 59 128 99 63 62 66 56 51 61 71 56 66 64 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-156 124 53 156 128 53 72 76 65 59 64 62 60 64 65 202 204 206 255 255 255 187 189 188 
-59 64 62 58 66 61 71 72 69 148 128 46 161 124 50 166 129 59 159 126 56 152 124 51 
-158 127 55 152 124 44 161 124 50 157 124 59 110 92 61 53 63 60 50 65 64 113 113 120 
-255 255 255 254 254 254 255 255 255 252 252 252 254 254 254 255 255 255 253 255 254 241 240 247 
-68 69 75 58 59 64 58 66 61 58 59 64 101 91 62 155 127 54 159 126 56 155 128 52 
-156 128 53 162 125 53 162 125 53 158 125 54 152 127 56 155 126 57 156 126 54 162 124 52 
-158 126 53 158 126 53 158 127 55 158 127 55 158 127 55 158 127 55 158 127 55 157 126 52 
-162 124 55 158 124 54 156 125 56 152 124 51 152 124 51 152 124 51 155 126 57 155 126 57 
-158 132 49 159 126 56 156 125 56 128 113 57 71 68 65 58 65 54 57 60 70 58 62 65 
-156 160 157 254 255 255 255 255 255 253 253 253 253 255 254 97 100 105 57 58 61 57 63 63 
-155 104 59 207 99 48 217 104 40 208 103 45 219 98 50 207 99 38 209 105 45 213 105 50 
-217 98 38 212 104 43 85 80 60 50 65 64 60 61 69 155 104 59 213 105 50 210 99 51 
-213 105 50 207 105 48 207 105 48 213 105 50 210 102 46 210 102 46 210 105 51 210 105 51 
-211 99 45 217 105 50 213 105 50 207 99 48 208 103 45 208 103 45 208 103 45 207 99 38 
-211 102 45 213 100 52 210 105 51 216 99 44 112 79 60 53 63 60 59 64 62 58 64 64 
-125 131 132 253 253 255 255 255 255 251 251 251 254 254 254 254 254 254 255 255 255 254 254 254 
-255 255 255 251 251 251 255 255 255 253 253 253 253 253 253 254 255 255 125 131 132 58 62 63 
-62 66 56 54 67 66 84 69 58 198 102 49 210 99 51 210 99 44 213 103 41 210 99 44 
-213 100 46 211 102 45 209 99 39 213 103 41 208 103 45 213 105 50 210 102 46 210 105 51 
-213 100 46 210 102 46 209 105 45 209 105 45 212 104 43 210 99 44 210 99 44 208 103 45 
-213 103 41 209 99 39 217 105 50 210 99 44 211 99 45 211 102 45 128 93 57 54 67 66 
-54 67 66 56 64 62 97 100 105 241 240 247 254 251 249 249 252 251 254 255 255 248 251 253 
-253 253 255 254 255 251 140 141 138 59 60 62 54 67 66 110 92 61 213 100 52 212 104 43 
-213 100 52 207 105 38 211 99 45 209 99 39 219 98 50 208 103 45 212 98 39 97 78 60 
-57 63 63 57 58 61 178 172 162 254 254 254 255 255 255 255 255 255 253 253 253 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-154 157 157 58 65 69 62 66 62 112 79 60 208 103 45 213 100 52 210 102 46 213 103 41 
-213 105 50 210 102 46 210 102 46 213 103 41 208 103 45 112 79 60 57 58 61 58 67 65 
-156 160 157 253 253 253 253 253 253 255 255 255 253 253 253 255 255 255 252 252 252 253 253 253 
-241 240 247 97 100 105 58 65 69 57 60 56 50 65 64 112 79 60 213 100 46 211 102 45 
-213 100 46 211 102 45 213 103 41 212 98 39 213 103 41 207 99 48 210 105 51 211 104 39 
-208 103 45 211 102 45 212 101 45 211 99 45 210 99 44 211 102 45 209 105 45 208 103 45 
-210 99 44 210 102 46 209 105 45 211 99 45 208 103 45 207 105 48 209 105 45 211 99 45 
-210 105 51 212 98 39 210 99 44 209 105 45 174 105 47 72 73 56 58 62 65 58 62 65 
-58 64 64 145 151 154 253 255 254 255 255 255 254 254 254 
-255 255 255 251 251 251 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 
-113 113 120 0 1 1 0 0 0 4 1 5 4 1 5 0 3 1 0 3 1 0 1 1 
-48 49 51 109 102 83 142 120 69 165 143 59 173 142 59 173 142 59 169 141 58 169 144 61 
-173 138 52 169 141 58 169 138 59 169 141 58 173 145 52 169 141 58 168 136 64 148 133 63 
-109 102 83 81 77 81 0 0 0 0 1 1 88 95 83 148 133 63 169 141 58 166 144 56 
-169 141 58 169 141 58 164 144 50 164 134 50 173 138 52 109 102 83 4 1 5 219 227 224 
-253 253 253 255 255 255 230 230 230 213 212 223 224 220 212 213 212 223 230 230 230 254 254 254 
-252 252 252 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 251 251 251 
-241 240 247 224 220 212 219 227 224 230 230 230 255 255 255 254 250 255 254 255 251 187 189 188 
-71 72 69 0 0 0 6 9 5 71 72 69 125 131 132 187 189 188 202 204 206 255 255 255 
-254 254 254 255 255 255 255 255 255 252 252 252 251 251 251 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 253 252 247 254 255 255 255 255 253 172 178 183 56 66 64 58 65 69 72 73 56 
-156 124 53 155 126 57 155 128 52 155 128 52 157 124 59 158 124 53 154 129 46 150 126 55 
-161 124 50 85 80 60 58 66 61 53 63 60 57 60 70 113 104 59 155 126 57 161 124 50 
-148 128 46 154 129 46 155 128 52 156 124 53 158 125 54 158 124 54 159 126 56 159 126 56 
-158 124 54 158 124 53 158 125 54 157 124 59 157 124 59 158 124 53 155 128 52 152 124 51 
-150 126 55 158 127 55 110 92 61 58 62 65 56 64 62 58 62 65 68 69 75 224 220 212 
-253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 
-255 255 253 254 254 254 253 253 255 253 253 255 255 255 253 224 220 212 71 72 69 54 67 66 
-57 61 64 58 62 63 94 90 61 147 124 59 161 125 43 162 124 55 157 124 59 157 126 52 
-155 128 52 156 128 53 158 126 53 162 125 53 158 124 53 158 124 53 157 127 54 156 128 53 
-158 127 55 157 124 59 157 124 59 158 124 56 162 125 53 156 129 45 158 125 54 157 124 59 
-147 124 59 152 124 51 161 124 50 162 124 55 162 124 55 159 126 56 128 113 57 85 80 60 
-57 60 56 62 61 67 56 64 62 53 64 53 172 178 183 253 253 255 255 254 255 255 255 255 
-253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 251 251 251 241 240 247 97 100 105 
-57 63 61 59 60 64 58 62 65 94 90 61 155 128 52 162 124 52 157 124 59 156 128 53 
-156 128 53 156 126 54 158 124 53 162 124 55 162 124 55 157 124 59 156 126 54 155 128 52 
-156 128 53 152 124 51 158 124 53 159 126 56 159 134 56 156 128 53 156 124 53 158 124 54 
-149 124 53 72 73 56 62 70 69 53 60 64 62 65 65 97 78 60 155 127 54 158 126 53 
-156 124 53 161 124 50 161 125 43 158 124 54 152 124 51 155 126 57 110 92 61 58 62 65 
-57 58 61 125 131 132 255 255 255 254 251 252 252 252 252 253 253 253 255 255 255 255 255 255 
-253 253 255 172 178 183 58 62 65 59 64 62 53 64 53 81 77 81 142 120 69 155 126 57 
-157 127 54 152 124 51 155 127 54 155 126 57 155 126 57 158 127 55 157 126 52 156 124 53 
-156 124 53 158 125 54 159 126 56 159 126 56 156 124 53 159 126 56 159 126 56 157 124 59 
-157 124 59 155 126 57 152 127 56 128 113 57 71 68 65 58 59 68 62 65 65 54 64 59 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 125 54 155 127 54 72 76 65 59 64 62 60 64 65 202 204 206 250 247 249 213 212 223 
-60 61 69 53 63 60 66 60 61 151 135 55 156 124 53 158 125 54 152 124 51 158 132 49 
-152 124 51 157 124 59 159 126 56 155 126 57 97 78 60 60 64 65 56 64 62 154 157 157 
-254 254 254 255 255 255 253 253 253 252 252 252 255 255 255 252 252 252 253 253 253 254 254 254 
-224 220 212 71 72 69 56 66 64 57 63 61 62 61 67 84 69 58 128 113 57 157 124 59 
-155 126 57 156 125 56 156 124 53 157 126 52 157 126 52 157 126 52 155 127 54 155 128 52 
-162 125 53 158 124 53 158 125 54 158 124 56 158 124 54 158 125 54 159 126 56 158 125 54 
-158 126 53 158 127 55 156 124 53 158 127 55 157 126 52 158 126 53 157 126 52 152 124 51 
-155 127 54 147 124 59 101 91 62 57 60 56 56 66 64 58 64 64 59 64 62 125 131 132 
-255 255 255 255 255 255 254 254 254 255 255 255 254 255 255 113 113 120 58 62 63 60 64 65 
-128 93 57 213 105 50 211 104 39 198 102 49 208 103 45 207 105 38 213 105 50 209 99 39 
-210 102 46 198 102 49 54 64 59 57 63 61 54 64 59 68 69 75 174 105 47 217 104 40 
-209 99 39 213 105 46 212 101 45 216 99 44 211 99 45 210 102 46 211 102 45 213 103 41 
-208 103 45 211 102 45 212 101 45 212 104 43 212 104 43 216 99 44 213 100 46 210 105 51 
-210 99 44 208 103 45 200 101 40 84 69 58 59 60 64 58 65 69 53 60 64 113 113 120 
-255 255 255 252 252 252 254 254 254 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 253 255 254 125 131 132 
-62 61 67 59 60 64 57 60 56 71 68 65 174 105 47 213 105 46 211 99 45 209 105 45 
-208 103 45 209 105 45 213 105 50 208 103 45 210 102 46 210 99 44 212 101 45 212 98 39 
-210 105 40 210 105 40 211 99 45 211 99 45 213 100 46 213 105 50 210 102 46 210 102 46 
-211 99 45 210 105 51 200 101 40 217 104 40 200 101 40 97 78 60 58 62 63 62 61 67 
-58 65 69 97 100 105 241 240 247 254 254 253 253 255 254 253 255 254 253 253 255 255 254 255 
-249 254 246 249 254 254 156 160 157 60 60 63 60 64 65 97 78 60 210 102 46 207 99 48 
-213 103 41 207 105 38 213 100 52 207 105 48 210 102 46 213 103 41 217 105 50 62 66 62 
-60 64 65 58 62 63 202 204 206 252 252 252 252 252 252 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-187 189 188 57 60 56 59 60 62 71 68 65 207 105 38 213 100 46 210 105 51 210 102 46 
-210 99 44 217 104 40 209 99 39 207 105 38 213 103 41 71 72 69 62 61 67 54 64 59 
-187 189 188 255 255 255 254 254 254 253 253 253 254 254 254 254 254 254 255 255 255 255 255 255 
-255 253 254 241 240 247 97 100 105 59 60 70 60 60 63 62 66 56 84 69 58 185 105 60 
-208 103 45 213 105 50 217 98 38 217 104 40 208 103 45 210 105 51 212 104 43 213 100 46 
-212 104 43 211 102 45 211 102 45 210 102 46 210 102 46 208 103 45 208 103 45 208 103 45 
-212 104 43 211 102 45 210 102 46 213 105 50 210 102 46 208 103 45 208 103 45 213 100 52 
-212 98 39 217 105 50 198 102 49 128 93 57 57 58 61 58 62 65 62 65 65 53 63 60 
-125 131 132 252 252 252 255 255 255 254 254 254 255 255 255 
-254 254 254 255 255 255 255 255 255 252 252 252 253 253 253 253 253 253 251 251 251 255 255 255 
-255 255 253 172 178 183 48 49 51 0 1 1 0 1 1 4 2 1 0 3 1 0 3 1 
-4 2 1 4 1 5 4 1 5 4 2 1 81 77 81 109 102 83 109 102 83 109 102 83 
-109 102 83 109 102 83 109 102 83 94 90 61 81 77 81 71 68 65 0 0 0 0 0 0 
-0 3 1 21 19 24 109 102 83 148 133 63 169 141 58 169 141 58 166 144 56 169 144 61 
-164 144 50 168 136 64 169 144 61 169 141 58 166 144 56 168 136 64 21 19 24 125 131 132 
-253 253 253 255 255 255 241 240 247 224 220 212 224 220 212 213 212 223 219 227 224 254 254 254 
-255 255 255 254 254 254 251 251 251 255 255 255 255 255 255 253 253 253 230 230 230 219 227 224 
-224 220 212 224 220 212 250 247 249 249 254 254 253 255 254 230 230 230 88 95 83 0 1 1 
-4 2 1 113 113 120 230 230 230 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 
-254 254 254 253 253 253 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 251 251 251 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 249 252 251 253 255 254 254 254 254 230 230 230 53 60 64 57 58 63 57 63 61 
-128 99 63 155 126 57 157 126 52 159 126 56 159 126 56 152 124 44 158 127 55 158 124 56 
-147 124 59 53 60 64 58 65 69 62 65 65 54 64 59 62 61 67 110 92 61 152 127 56 
-159 126 56 158 127 55 155 126 57 152 127 56 155 126 57 155 127 54 158 127 55 156 124 53 
-155 128 52 152 124 51 156 128 53 154 129 46 155 128 52 157 124 59 158 134 59 155 128 52 
-142 120 69 85 80 60 59 64 62 59 60 64 58 62 65 62 70 69 213 212 223 254 255 251 
-255 255 255 252 252 252 252 252 252 252 252 252 253 253 253 255 255 255 252 252 252 255 255 255 
-255 253 254 254 254 253 254 255 255 254 255 255 254 254 255 254 252 251 224 220 212 71 72 69 
-57 63 61 57 60 56 62 61 67 71 72 69 110 92 61 151 135 55 152 124 44 159 126 56 
-158 124 56 158 124 56 156 126 54 156 126 54 156 126 54 158 127 55 156 126 54 156 124 53 
-152 124 51 152 124 51 156 125 56 158 124 56 159 126 56 158 124 54 158 126 53 158 126 53 
-158 124 53 159 126 56 158 124 53 161 124 50 142 120 69 94 90 61 59 60 70 62 65 65 
-58 65 69 62 66 62 68 69 75 202 204 206 254 255 255 253 255 254 255 255 253 254 252 251 
-255 255 255 252 252 252 255 255 255 251 251 251 254 254 254 255 255 255 255 255 255 241 240 247 
-97 100 105 59 64 62 59 60 70 62 61 67 72 73 56 128 113 57 158 127 55 156 124 53 
-158 126 53 157 124 59 157 124 59 156 125 56 156 124 53 155 128 52 156 126 54 156 125 56 
-152 124 51 155 126 57 157 124 59 158 124 56 158 124 53 159 126 56 147 124 59 128 113 57 
-62 65 65 60 60 63 59 64 62 57 60 56 59 64 62 62 65 65 158 125 54 155 126 57 
-157 124 59 152 124 51 158 134 59 155 126 57 161 125 43 157 124 59 84 69 58 54 67 66 
-59 64 62 160 163 161 251 251 251 254 254 254 255 255 255 254 254 254 253 253 253 253 253 253 
-254 255 251 254 254 255 145 151 154 57 63 61 62 61 67 56 64 62 66 60 61 113 104 59 
-155 128 52 158 134 59 157 124 59 161 124 50 158 126 53 158 124 56 157 124 59 158 127 55 
-155 128 52 154 129 46 152 124 44 156 128 53 156 125 56 159 126 56 155 128 52 152 124 44 
-162 124 55 158 127 55 113 104 59 62 66 62 59 59 56 57 63 63 56 66 64 58 62 65 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 155 127 54 72 76 65 58 62 63 57 63 63 202 204 206 255 254 255 254 255 255 
-68 69 75 58 66 61 59 60 64 109 102 83 155 128 52 159 126 56 156 125 56 152 124 51 
-157 124 59 158 127 55 155 127 54 149 124 53 69 60 69 56 66 64 53 60 64 219 227 224 
-255 255 255 255 255 255 252 252 252 255 255 255 251 251 251 255 255 255 255 255 255 254 254 254 
-254 255 251 241 240 247 88 95 83 58 66 61 53 63 60 58 62 65 71 68 65 101 91 62 
-155 128 52 156 128 53 155 126 57 155 126 57 156 125 56 156 125 56 159 126 56 158 127 55 
-157 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 155 127 54 
-156 124 53 157 127 54 158 126 53 158 127 55 152 124 51 156 125 56 149 124 55 157 124 59 
-110 92 61 71 68 65 56 64 62 58 65 69 59 64 62 58 62 65 178 172 162 254 255 251 
-251 251 251 254 254 254 255 255 255 255 255 255 252 252 252 172 178 183 58 62 63 57 63 63 
-71 65 56 198 102 49 213 103 41 210 102 46 217 105 50 207 99 48 212 104 43 212 98 39 
-211 102 45 112 79 60 59 64 62 53 63 60 58 66 61 60 60 63 62 66 62 174 105 47 
-213 100 46 213 105 50 208 103 45 208 103 45 211 104 39 212 104 43 209 99 39 211 102 45 
-217 104 40 207 105 38 208 103 45 212 101 45 212 98 39 208 103 45 209 105 45 210 99 44 
-213 103 41 155 104 59 62 66 62 57 63 61 56 66 64 62 65 65 113 113 120 241 240 247 
-254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 253 253 253 254 254 254 
-255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 255 255 255 
-125 131 132 53 64 53 58 65 69 53 63 60 58 67 65 128 93 57 210 99 51 198 102 49 
-211 99 45 213 100 46 213 100 46 211 99 45 210 102 46 208 103 45 210 105 51 208 103 45 
-213 100 52 211 99 45 213 103 41 212 104 43 212 101 45 210 99 44 209 99 39 211 104 39 
-213 105 46 213 103 41 200 101 40 155 104 59 68 69 75 62 65 65 58 62 63 58 65 54 
-97 100 105 250 247 249 255 255 253 248 254 252 248 251 253 250 252 254 255 255 255 251 251 251 
-255 254 255 248 254 252 219 227 224 62 61 67 53 64 53 59 64 62 198 102 49 213 100 46 
-211 102 45 211 102 45 207 105 38 208 103 45 211 99 45 213 105 46 128 93 57 58 62 65 
-58 62 63 68 69 75 254 255 255 251 251 251 255 255 255 254 254 254 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-241 240 247 53 63 60 59 60 70 60 64 65 174 105 47 213 105 46 210 99 44 213 100 46 
-212 104 43 208 103 45 207 105 48 217 105 50 155 104 59 58 59 68 66 60 61 57 63 61 
-230 230 230 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 251 251 251 254 254 254 
-254 255 255 254 251 249 250 247 249 97 100 105 58 62 63 58 62 63 62 66 56 62 66 56 
-128 93 57 185 105 60 212 101 45 210 99 44 211 99 45 217 104 40 209 99 39 217 105 50 
-213 100 46 213 100 46 213 100 46 213 105 46 212 101 45 212 101 45 213 100 46 213 100 46 
-213 100 46 213 100 46 212 104 43 209 105 45 213 100 46 213 100 46 213 103 41 210 105 40 
-198 102 49 112 79 60 62 70 69 58 59 68 62 61 67 60 60 63 50 65 64 152 161 158 
-255 255 255 255 255 255 254 254 254 253 253 253 254 254 254 
-255 255 255 255 255 255 252 252 252 252 252 252 255 255 255 253 253 253 255 255 255 253 253 253 
-250 247 249 254 255 251 230 230 230 125 131 132 21 19 24 4 1 5 4 1 5 4 1 5 
-0 3 1 0 3 1 0 3 1 0 1 1 4 1 5 0 3 1 0 3 1 0 3 1 
-4 1 5 0 1 1 4 2 1 4 1 5 4 1 5 48 49 51 88 95 83 109 102 83 
-142 120 69 166 144 56 166 144 56 166 134 56 173 138 52 173 142 59 169 141 58 173 138 52 
-169 141 58 169 138 59 166 134 56 168 136 64 173 145 52 169 138 59 128 100 96 4 1 5 
-230 230 230 255 255 255 254 254 254 219 227 224 224 220 212 224 220 212 219 227 224 255 255 255 
-254 254 254 252 252 252 255 255 255 254 254 254 241 240 247 219 227 224 224 220 212 213 212 223 
-230 230 230 254 250 255 249 254 246 249 254 254 145 151 154 21 19 24 6 9 5 6 9 5 
-0 0 0 172 178 183 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 252 252 252 
-255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 
-252 252 252 255 255 255 255 255 255 251 251 251 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 253 255 254 253 253 255 255 254 255 254 255 255 125 131 132 59 60 64 58 64 64 
-71 65 56 142 120 69 158 132 49 152 124 51 159 126 56 156 126 54 156 125 56 149 124 53 
-72 76 65 56 64 62 58 59 64 59 64 62 60 64 65 58 62 65 62 66 62 85 80 60 
-149 124 55 149 124 55 156 124 53 158 126 53 161 124 50 161 124 50 158 125 54 158 125 54 
-157 124 59 155 126 57 158 127 55 162 124 55 152 124 51 159 134 56 142 120 69 110 92 61 
-66 60 61 57 63 61 58 65 69 57 63 61 97 100 105 230 230 230 254 255 251 253 252 247 
-255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 251 251 251 255 255 255 
-255 253 254 254 255 251 253 252 247 254 255 251 253 255 254 255 255 255 254 251 252 241 240 247 
-104 112 110 62 61 67 60 64 65 60 60 63 57 58 61 71 68 65 110 92 61 147 124 59 
-155 128 52 156 128 53 156 128 53 155 127 54 155 126 57 156 125 56 158 125 54 158 124 53 
-158 127 55 158 127 55 156 129 45 157 126 52 156 124 53 157 124 59 158 127 55 155 126 57 
-155 128 52 149 124 53 113 104 59 72 76 65 56 66 64 54 64 59 57 63 61 58 62 65 
-62 66 62 113 113 120 250 247 249 253 253 255 250 250 247 254 251 249 254 255 255 254 255 251 
-255 255 255 254 254 254 252 252 252 255 255 255 254 254 254 255 255 255 255 255 255 252 252 252 
-241 240 247 110 110 107 58 64 64 58 62 65 62 66 56 58 65 69 85 80 60 142 120 69 
-156 129 45 155 128 52 155 127 54 155 127 54 155 127 54 156 128 53 161 124 50 161 124 50 
-161 124 50 162 124 55 158 124 53 161 125 43 156 129 45 147 124 59 101 91 62 58 59 64 
-57 60 70 56 66 64 62 61 67 72 76 65 58 65 69 57 63 61 101 91 62 158 127 55 
-156 128 53 156 129 45 152 124 51 156 125 56 158 127 55 128 99 63 66 60 61 53 63 60 
-59 64 62 219 227 224 253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 255 253 254 
-254 252 251 255 255 253 254 255 251 160 163 161 59 60 70 57 63 61 57 60 56 62 61 67 
-85 80 60 128 113 57 157 127 54 161 124 50 161 124 50 157 126 52 155 128 52 156 124 53 
-157 124 59 159 126 56 156 126 54 158 125 54 158 124 54 159 126 56 157 124 59 155 126 57 
-149 124 53 97 78 60 58 62 65 62 65 65 59 59 56 58 65 69 62 70 69 59 59 56 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-159 126 56 155 128 52 72 76 65 57 63 63 58 65 69 202 204 206 251 251 251 253 255 254 
-154 157 157 60 64 65 58 62 65 62 66 56 128 113 57 155 127 54 156 124 53 166 129 59 
-162 125 53 152 124 51 147 124 59 84 69 58 57 61 64 50 65 64 88 95 83 254 251 252 
-255 255 255 254 254 254 255 255 255 252 252 252 254 254 254 254 254 254 253 253 253 255 255 255 
-249 254 254 254 255 251 250 247 249 125 131 132 56 66 64 57 63 61 62 61 67 57 60 56 
-71 68 65 110 92 61 147 124 59 161 124 50 161 125 43 157 126 52 158 124 56 158 124 56 
-156 124 53 156 126 54 157 126 52 158 127 55 158 127 55 158 127 55 156 124 53 158 127 55 
-155 126 57 156 126 54 158 126 53 159 126 56 157 124 59 128 99 63 85 80 60 57 60 56 
-57 60 70 54 64 59 56 64 62 60 64 65 97 100 105 224 220 212 254 255 255 254 252 251 
-255 255 255 251 251 251 252 252 252 255 255 255 254 254 254 241 240 247 71 81 83 60 64 65 
-57 60 70 97 78 60 213 105 46 212 98 39 211 99 45 217 104 40 207 99 48 213 105 46 
-174 105 47 62 70 65 62 61 67 60 60 63 60 64 65 58 65 69 59 64 62 56 66 64 
-128 93 57 185 105 60 217 104 40 212 98 39 211 102 45 213 105 46 213 100 46 207 99 48 
-198 102 49 211 99 45 216 99 44 216 99 44 216 99 44 217 105 50 198 102 49 174 105 47 
-97 78 60 53 64 53 62 61 67 57 63 61 60 60 63 140 141 138 254 255 251 254 251 249 
-255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 255 255 255 
-251 251 251 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 252 252 252 
-255 255 255 187 189 188 62 61 67 59 64 62 53 64 53 53 63 60 62 66 56 128 93 57 
-207 99 48 210 105 51 211 99 45 212 104 43 213 103 41 211 102 45 212 101 45 213 100 46 
-213 105 50 210 102 46 210 99 44 208 103 45 210 105 51 210 105 51 213 100 46 216 99 44 
-210 99 44 155 104 59 97 78 60 51 61 71 58 64 64 54 67 66 57 63 61 125 131 132 
-241 240 247 253 252 247 252 252 252 254 255 255 255 254 255 255 254 255 254 251 252 254 252 251 
-253 253 255 253 253 255 252 252 252 97 100 105 54 67 66 54 64 59 84 69 58 198 102 49 
-213 100 52 212 98 39 210 105 40 210 99 44 217 104 40 174 105 47 71 65 56 58 65 69 
-60 64 65 125 131 132 253 253 253 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-248 251 253 140 141 138 57 58 61 62 61 67 62 70 69 174 105 47 210 99 44 213 100 46 
-213 100 52 212 101 45 207 105 48 200 101 40 84 69 58 56 66 64 58 62 65 110 110 107 
-255 255 255 251 251 251 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 
-249 254 254 253 253 253 249 254 246 253 252 247 145 151 154 53 60 64 58 66 61 58 62 65 
-59 59 56 62 66 62 112 79 60 185 105 60 213 105 50 207 99 48 213 100 46 207 105 38 
-213 105 50 210 102 46 208 103 45 208 103 45 209 99 39 208 103 45 211 102 45 210 102 46 
-208 103 45 209 105 45 208 103 45 212 98 39 217 98 38 207 99 48 155 104 59 112 79 60 
-57 60 56 58 68 63 59 59 56 56 64 62 56 64 62 97 100 105 224 220 212 255 255 253 
-253 253 253 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
-254 255 251 253 253 255 254 252 251 254 255 251 230 230 230 145 151 154 48 49 51 0 1 1 
-4 1 5 4 2 1 4 2 1 0 0 0 4 1 5 88 95 83 109 102 83 109 102 83 
-109 102 83 142 120 69 142 120 69 148 133 63 165 143 59 164 144 50 166 144 56 166 134 56 
-166 144 56 168 136 64 173 138 52 169 144 61 165 143 59 166 144 56 169 144 61 165 143 59 
-169 141 58 169 138 59 173 145 52 168 136 64 166 134 56 169 144 61 165 143 59 21 19 24 
-145 151 154 254 254 254 255 255 255 230 230 230 224 220 212 213 212 223 224 220 212 255 255 255 
-255 255 255 255 255 255 252 252 252 251 251 251 219 227 224 213 212 223 219 227 224 230 230 230 
-249 254 254 253 253 253 213 212 223 88 95 83 0 1 1 21 19 24 142 120 69 109 102 83 
-0 0 0 110 110 107 255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 255 255 253 
-255 255 255 254 254 254 252 252 252 252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 255 255 255 252 252 252 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 253 255 254 253 253 255 254 251 254 253 255 254 213 212 223 59 59 56 58 65 69 
-57 63 61 71 68 65 101 91 62 147 124 59 156 125 56 147 124 59 113 104 59 71 68 65 
-54 64 59 57 63 63 62 65 65 154 157 157 97 100 105 58 62 65 53 64 53 58 65 69 
-57 63 61 94 90 61 128 113 57 149 124 53 161 125 43 161 125 43 156 125 56 148 133 63 
-155 126 57 155 127 54 155 128 52 152 127 56 128 99 63 97 78 60 62 61 67 53 63 60 
-54 67 66 58 59 68 59 64 62 125 131 132 241 240 247 253 253 255 249 254 254 254 255 251 
-255 255 255 254 254 254 253 253 253 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-254 255 255 255 255 253 253 252 247 254 255 251 251 251 251 254 254 255 253 253 255 255 255 255 
-253 252 247 156 160 157 68 69 75 60 61 69 60 64 65 60 60 63 62 61 67 60 61 69 
-97 78 60 110 92 61 142 120 69 157 124 59 159 126 56 156 126 54 155 126 57 152 127 56 
-152 124 51 157 124 59 155 126 57 158 127 55 158 132 49 149 124 53 128 113 57 110 92 61 
-85 80 60 66 60 61 53 63 60 59 64 62 57 58 61 57 63 61 58 66 61 81 77 81 
-202 206 211 254 255 251 248 254 252 253 252 247 254 255 251 250 252 254 254 252 251 255 255 253 
-255 255 255 255 255 255 252 252 252 254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 
-254 255 251 248 254 252 160 163 161 58 66 61 53 60 64 62 65 65 62 61 67 59 64 62 
-85 80 60 113 104 59 147 124 59 158 127 55 159 126 56 158 124 56 155 126 57 150 128 52 
-148 128 46 155 128 52 158 127 55 142 120 69 101 91 62 62 66 56 53 63 60 58 65 69 
-57 58 61 58 66 61 172 178 183 154 157 157 62 66 56 54 67 66 66 60 61 97 78 60 
-128 113 57 158 134 59 157 124 59 128 113 57 101 91 62 62 65 65 51 61 71 60 64 65 
-104 112 110 254 255 255 255 255 255 252 252 252 255 255 255 253 253 253 254 254 254 255 253 254 
-255 254 255 253 255 254 254 255 251 255 255 255 172 178 183 68 69 75 62 61 67 54 67 66 
-57 60 70 62 70 69 85 80 60 113 104 59 149 124 53 156 128 53 155 126 57 155 126 57 
-161 124 50 157 124 59 155 126 57 152 124 51 156 129 45 155 126 57 128 99 63 97 78 60 
-66 60 61 54 67 66 53 67 71 59 64 62 68 69 75 57 63 63 58 59 64 60 64 65 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 124 56 155 127 54 72 76 65 58 62 65 53 60 64 202 206 211 254 251 252 255 255 253 
-241 240 247 71 72 69 53 63 60 58 67 65 71 68 65 101 91 62 128 113 57 150 126 55 
-128 113 57 110 92 61 71 65 56 58 59 68 54 64 59 54 64 59 187 189 188 254 255 251 
-255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 253 253 253 
-255 255 253 254 255 251 248 251 253 253 253 255 202 204 206 68 69 75 58 66 61 58 62 65 
-58 62 65 57 60 70 58 65 69 85 80 60 113 104 59 147 124 59 156 125 56 158 125 54 
-152 124 51 158 127 55 157 126 52 156 124 53 161 124 50 158 127 55 156 124 53 155 126 57 
-156 125 56 128 113 57 110 92 61 85 80 60 62 66 62 57 63 61 58 64 64 58 62 65 
-50 65 62 62 66 62 81 77 81 172 178 183 254 255 255 255 254 255 253 252 247 254 255 255 
-253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 253 253 253 156 160 157 58 62 63 
-60 64 65 57 60 56 71 68 65 155 104 59 198 102 49 210 105 51 174 105 47 112 79 60 
-62 66 62 54 67 66 57 63 61 68 69 75 178 172 162 58 62 65 59 64 62 57 58 61 
-59 64 62 71 72 69 112 79 60 174 105 47 209 105 45 210 102 46 210 102 46 216 99 44 
-216 99 44 209 105 45 210 102 46 213 100 52 185 105 60 128 93 57 84 69 58 57 63 63 
-62 61 67 58 65 69 54 64 59 71 72 69 172 178 183 253 255 254 252 252 252 253 253 255 
-252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 
-255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 
-249 254 246 253 253 255 219 227 224 97 100 105 53 63 60 58 67 65 58 62 65 57 63 63 
-57 63 61 97 78 60 155 104 59 198 102 49 209 99 39 212 98 39 213 100 46 211 99 45 
-207 99 38 209 105 45 209 105 45 212 98 39 217 98 38 207 105 48 155 104 59 112 79 60 
-71 72 69 69 60 69 57 61 64 59 64 62 62 66 62 71 72 69 172 178 183 254 255 251 
-254 255 251 253 255 254 254 255 255 254 254 254 254 251 252 254 251 252 255 255 255 255 255 255 
-248 254 252 254 255 251 253 255 254 202 204 206 57 60 70 53 64 53 58 65 69 72 73 56 
-142 101 66 198 102 49 210 99 51 185 105 60 112 79 60 62 66 56 62 61 67 57 58 61 
-71 72 69 241 240 247 255 255 255 255 255 255 251 251 251 255 255 255 254 254 254 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 252 251 230 230 230 71 81 83 66 60 61 51 61 71 62 66 62 112 79 60 198 102 49 
-211 99 45 185 105 60 142 101 66 62 66 62 59 59 56 56 64 62 58 65 69 213 212 223 
-255 255 255 253 253 253 251 251 251 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 
-254 254 254 249 254 254 253 255 254 253 255 254 248 254 252 187 189 188 88 95 83 60 60 63 
-58 64 64 66 60 61 57 63 63 53 60 64 97 78 60 128 93 57 174 105 47 210 105 51 
-207 105 48 210 105 51 210 102 46 216 99 44 212 101 45 216 99 44 210 102 46 210 102 46 
-217 105 50 207 99 48 174 105 47 128 93 57 97 78 60 71 65 56 57 63 61 56 66 64 
-59 64 62 57 58 61 56 66 64 72 76 65 178 172 162 253 253 255 254 255 251 255 253 254 
-255 255 255 253 253 253 254 254 254 254 254 254 250 247 249 
-253 253 253 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 255 255 255 
-254 255 251 254 255 251 255 253 254 255 255 255 249 254 246 249 254 246 254 255 251 242 238 229 
-187 189 188 125 131 132 4 1 5 4 1 5 4 2 1 142 120 69 169 144 61 173 138 52 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-169 138 59 169 141 58 166 144 56 173 145 52 169 141 58 169 144 61 166 144 56 173 142 59 
-169 141 58 165 143 59 169 141 58 164 144 50 169 144 61 169 144 61 178 172 162 113 113 120 
-71 72 69 255 255 255 254 254 254 241 240 247 219 227 224 213 212 223 219 227 224 255 255 255 
-253 253 253 255 255 255 255 255 255 241 240 247 224 220 212 224 220 212 241 240 247 255 255 255 
-254 255 251 172 178 183 0 0 0 0 1 1 88 95 83 165 143 59 165 143 59 142 120 69 
-0 0 0 48 49 51 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 255 255 253 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 253 255 254 255 255 255 255 254 255 253 255 254 254 255 251 187 189 188 53 63 60 
-54 67 66 58 62 65 62 61 67 59 60 64 57 60 56 60 64 65 58 62 65 59 64 62 
-60 60 63 57 60 70 140 141 138 254 255 251 241 240 247 113 113 120 62 66 62 57 61 64 
-56 64 62 53 60 64 58 62 65 62 65 65 81 77 81 94 90 61 101 91 62 101 91 62 
-101 91 62 94 90 61 72 76 65 57 61 64 58 62 65 56 64 62 57 63 61 58 64 64 
-57 60 56 88 95 83 187 189 188 253 253 255 254 255 251 254 254 255 255 254 255 249 254 246 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 254 254 254 
-248 254 252 254 255 255 253 253 255 255 253 254 255 255 253 253 255 254 253 255 254 249 254 246 
-255 255 255 253 255 254 230 230 230 125 131 132 59 64 62 58 66 61 57 60 56 59 64 62 
-57 63 63 56 64 62 59 64 62 62 66 56 72 76 65 94 90 61 101 91 62 101 91 62 
-101 91 62 101 91 62 101 91 62 85 80 60 71 68 65 62 65 65 60 64 65 53 60 64 
-54 67 66 53 63 60 62 65 65 59 60 62 57 63 61 110 110 107 172 178 183 253 255 254 
-253 255 254 253 255 254 254 255 251 254 255 255 253 253 255 253 252 247 254 255 251 255 255 255 
-253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 
-255 253 254 253 253 255 253 255 254 224 220 212 110 110 107 58 62 65 56 64 62 57 63 63 
-54 64 59 58 65 69 58 62 65 62 66 62 85 80 60 94 90 61 110 92 61 101 91 62 
-101 91 62 85 80 60 62 66 62 58 62 65 58 62 65 58 62 65 58 64 64 57 63 61 
-88 95 83 213 212 223 255 255 253 254 255 255 97 100 105 59 59 56 58 65 69 50 65 62 
-57 63 63 62 66 62 57 58 61 57 63 61 60 60 63 58 65 69 54 64 59 68 69 75 
-219 227 224 254 255 255 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 255 254 255 
-249 254 254 255 255 253 255 255 255 255 255 253 253 253 253 230 230 230 104 112 110 59 60 62 
-57 63 63 57 60 56 62 66 56 57 61 64 58 62 65 71 72 69 85 80 60 101 91 62 
-101 91 62 101 91 62 94 90 61 85 80 60 72 76 65 62 61 67 56 64 62 54 67 66 
-57 63 61 59 64 62 57 63 61 97 100 105 224 220 212 59 64 62 53 63 60 60 64 65 
-156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 156 126 54 
-158 124 56 152 124 51 62 66 56 56 66 64 58 65 69 230 230 230 255 255 255 251 251 251 
-249 254 254 224 220 212 68 69 75 58 62 65 60 61 69 57 61 64 58 66 61 57 63 61 
-57 63 61 59 60 70 53 63 60 53 63 60 62 65 65 145 151 154 255 254 255 254 255 251 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 
-248 254 252 253 253 253 255 255 253 254 255 251 254 255 251 241 240 247 154 157 157 68 69 75 
-58 64 64 57 60 56 59 59 56 58 64 64 58 62 65 58 62 65 71 68 65 72 76 65 
-85 80 60 101 91 62 101 91 62 101 91 62 101 91 62 101 91 62 85 80 60 84 69 58 
-58 64 64 58 62 65 57 61 64 58 64 64 57 63 63 59 64 62 56 64 62 57 63 63 
-88 95 83 187 189 188 254 255 255 255 254 255 254 252 251 254 255 251 251 251 251 254 255 251 
-254 255 255 254 254 254 253 253 253 255 255 255 253 253 253 255 255 255 254 255 255 125 131 132 
-57 63 61 58 62 65 59 60 64 53 60 64 59 64 62 57 60 56 58 62 65 58 66 61 
-60 60 63 58 68 63 62 61 67 224 220 212 254 252 251 224 220 212 71 81 83 62 61 67 
-54 67 66 57 60 56 57 63 61 58 65 69 71 68 65 97 78 60 128 93 57 112 79 60 
-128 93 57 112 79 60 97 78 60 62 66 56 58 66 61 62 66 62 57 61 64 53 67 71 
-54 64 59 57 61 64 110 110 107 230 230 230 255 255 253 248 254 252 255 255 255 253 252 247 
-255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 
-252 252 252 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 254 254 254 
-253 253 255 254 255 251 254 252 251 254 255 251 172 178 183 68 69 75 57 60 56 62 65 65 
-59 64 62 60 64 65 57 61 64 58 62 65 71 72 69 85 80 60 112 79 60 128 93 57 
-128 93 57 128 93 57 112 79 60 97 78 60 71 68 65 62 61 67 58 62 65 62 65 65 
-59 59 56 53 60 64 58 62 65 58 66 61 125 131 132 241 240 247 255 255 253 254 254 255 
-255 253 254 253 253 255 255 255 255 254 254 254 255 255 253 248 254 252 253 255 254 253 253 255 
-255 254 255 254 251 249 248 254 252 254 251 249 156 160 157 60 64 65 58 62 65 57 60 70 
-62 66 56 54 64 59 59 64 62 62 61 67 54 67 66 56 66 64 57 63 61 54 67 66 
-187 189 188 255 255 255 255 255 255 251 251 251 255 255 255 254 254 254 252 252 252 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 248 254 253 172 178 183 62 65 65 59 59 56 56 64 62 51 61 71 54 64 59 
-54 64 59 56 64 62 56 66 64 58 62 65 60 64 65 60 61 69 172 178 183 253 255 254 
-254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-255 255 255 254 255 251 255 253 254 255 253 254 254 255 251 253 253 255 250 247 249 156 160 157 
-68 69 75 57 63 63 58 62 65 62 65 65 57 63 61 57 60 56 59 64 62 58 62 65 
-84 69 58 97 78 60 112 79 60 112 79 60 112 79 60 112 79 60 112 79 60 97 78 60 
-84 69 58 62 66 62 53 60 64 57 60 70 62 61 67 59 64 62 57 63 63 58 62 65 
-58 64 64 81 77 81 172 178 183 241 240 247 255 255 253 253 255 254 249 254 254 254 255 251 
-253 255 254 254 255 255 252 252 252 254 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-249 254 254 110 110 107 4 2 1 0 1 1 4 1 5 158 134 59 169 138 59 169 141 58 
-169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 169 141 58 
-166 144 56 169 144 61 178 172 162 178 172 162 178 172 162 178 172 162 178 172 162 178 172 162 
-178 172 162 178 172 162 178 172 162 214 206 175 230 230 230 254 255 251 254 254 255 187 189 188 
-0 0 0 241 240 247 253 253 253 252 252 252 224 220 212 213 212 223 230 230 230 254 254 254 
-255 255 255 255 255 255 255 255 255 252 252 252 219 227 224 242 238 229 255 255 255 255 255 255 
-219 227 224 4 1 5 21 19 24 142 120 69 165 143 59 173 145 52 169 144 61 158 134 59 
-0 0 0 4 2 1 241 240 247 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 187 189 188 
-68 69 75 60 64 65 62 65 65 57 63 61 60 64 65 58 64 64 58 62 63 58 62 63 
-59 60 62 154 157 157 253 253 253 255 255 255 253 253 253 253 253 253 202 204 206 81 77 81 
-57 63 63 58 64 64 58 64 64 57 63 63 58 64 64 58 64 64 57 63 63 57 63 63 
-57 63 63 60 64 65 57 63 63 58 62 63 57 58 61 58 64 64 60 64 65 81 77 81 
-187 189 188 254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 252 252 252 230 230 230 140 141 138 71 72 69 57 63 61 
-58 64 64 57 63 63 57 63 63 57 63 63 60 64 65 60 64 65 57 63 63 57 63 63 
-58 64 64 57 63 63 60 64 65 60 64 65 57 63 63 57 63 63 60 64 65 57 63 63 
-57 63 61 57 63 61 81 77 81 140 141 138 230 230 230 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 202 204 206 110 110 107 59 64 62 
-57 63 63 60 64 65 60 64 65 57 63 63 57 63 63 57 63 63 57 63 63 58 64 64 
-57 63 63 57 63 63 57 63 63 58 62 63 58 64 64 59 64 62 71 72 69 156 160 157 
-253 253 253 255 255 255 253 253 253 255 255 255 241 240 247 110 110 107 62 65 65 62 65 65 
-57 63 63 60 64 65 58 64 64 57 63 63 58 62 63 59 64 62 88 95 83 219 227 224 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 254 255 251 250 252 246 255 255 253 254 255 255 254 254 255 255 255 253 202 204 206 
-110 110 107 57 60 56 54 64 59 54 64 59 57 63 61 60 64 65 58 65 69 58 62 65 
-58 62 63 62 65 65 58 62 63 58 62 63 57 58 61 58 64 64 60 64 65 58 62 63 
-59 60 62 88 95 83 172 178 183 254 252 250 202 204 206 58 62 65 60 64 65 62 66 56 
-156 124 53 158 126 53 157 126 52 157 126 52 159 126 56 158 125 54 158 124 54 158 127 55 
-155 126 57 149 124 55 58 62 65 56 64 62 62 65 65 249 254 246 255 253 254 253 255 254 
-255 255 255 254 254 254 224 220 212 88 95 83 59 64 62 58 64 64 58 64 64 60 64 65 
-58 62 63 58 64 64 58 62 63 62 65 65 178 172 162 251 251 251 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 241 240 247 
-178 172 162 81 77 81 57 63 61 60 64 65 62 65 65 58 62 63 57 63 63 60 64 65 
-58 62 63 58 62 63 58 62 63 58 62 63 58 62 63 58 62 63 58 64 64 60 64 65 
-56 66 64 57 63 63 57 63 61 59 64 62 57 63 61 71 72 69 140 141 138 202 204 206 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-145 151 154 58 62 63 58 62 63 58 64 64 57 63 63 60 64 65 60 64 65 57 58 61 
-59 64 62 81 77 81 219 227 224 253 253 253 255 255 255 255 255 255 241 240 247 156 160 157 
-68 69 75 58 64 64 58 64 64 58 62 63 58 62 63 60 64 65 57 63 63 57 63 63 
-58 64 64 57 63 63 60 64 65 57 58 61 60 64 65 58 62 63 60 64 65 58 62 63 
-110 110 107 202 206 211 255 255 255 253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 241 240 247 178 172 162 81 77 81 
-60 64 65 57 58 61 58 62 63 62 65 65 58 62 63 57 63 63 60 64 65 57 63 63 
-60 64 65 57 63 63 60 64 65 60 64 65 57 63 63 57 63 63 60 64 65 57 63 63 
-59 64 62 71 72 69 140 141 138 230 230 230 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 252 252 252 255 255 255 187 189 188 71 72 69 59 64 62 
-57 63 63 57 63 63 57 63 63 62 65 65 58 62 63 57 63 61 88 95 83 202 206 211 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 187 189 188 71 72 69 58 62 63 57 58 61 58 62 63 
-57 63 63 58 64 64 58 64 64 57 63 61 71 72 69 172 178 183 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-241 240 247 178 172 162 81 77 81 59 64 62 57 63 61 57 63 63 57 63 63 57 63 63 
-58 62 63 60 64 65 58 64 64 58 62 63 58 62 63 58 62 63 58 64 64 58 62 63 
-57 63 63 58 64 64 60 64 65 57 63 61 58 64 64 58 62 63 68 69 75 125 131 132 
-202 204 206 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 255 48 49 51 4 2 1 0 0 0 85 80 60 165 143 59 169 141 58 166 134 56 
-169 141 58 169 141 58 166 144 56 169 141 58 169 144 61 169 141 58 169 141 58 169 144 61 
-178 172 162 254 252 244 254 252 251 253 253 255 255 254 255 254 252 250 253 252 247 253 253 255 
-254 251 249 254 255 251 254 255 251 255 255 253 252 252 252 252 252 252 254 255 255 219 227 224 
-0 0 0 187 189 188 255 255 255 255 255 255 219 227 224 224 220 212 230 230 230 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 254 254 254 254 254 254 253 253 253 255 255 255 
-145 151 154 4 2 1 142 120 69 165 143 59 164 144 50 169 141 58 169 141 58 166 144 56 
-62 65 65 0 0 0 178 172 162 255 255 255 254 254 254 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 253 253 253 
-250 247 249 160 163 161 104 112 110 62 65 65 58 62 63 57 58 61 97 100 105 145 151 154 
-230 230 230 253 253 253 255 255 255 253 253 253 255 255 255 254 254 254 251 251 251 255 255 255 
-202 206 211 140 141 138 68 69 75 58 62 63 58 62 63 60 64 65 58 62 63 62 65 65 
-58 62 63 58 62 63 58 62 63 58 64 64 81 77 81 125 131 132 187 189 188 253 253 255 
-253 253 253 253 253 253 253 253 253 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 251 251 251 255 255 255 254 255 255 253 255 254 254 255 255 187 189 188 
-145 151 154 97 100 105 62 65 65 58 62 63 58 62 63 58 62 63 62 70 69 60 64 65 
-58 64 64 60 64 65 57 58 61 57 58 61 60 64 65 60 64 65 81 77 81 113 113 120 
-178 172 162 219 227 224 254 255 255 254 255 255 255 255 255 253 253 253 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 252 252 252 255 255 255 253 253 253 253 255 254 254 255 255 230 230 230 
-145 151 154 97 100 105 57 58 61 60 64 65 60 64 65 60 64 65 58 62 63 62 65 65 
-58 64 64 58 64 64 62 65 65 58 62 63 88 95 83 187 189 188 241 240 247 254 255 255 
-255 255 255 252 252 252 255 255 255 254 254 254 254 255 255 253 255 254 187 189 188 113 113 120 
-71 81 83 58 62 63 57 58 61 68 69 75 104 112 110 187 189 188 241 240 247 255 255 255 
-254 254 254 254 254 254 255 255 255 252 252 252 254 254 254 254 254 254 252 252 252 255 255 255 
-253 253 255 254 255 251 254 255 251 255 255 253 252 252 252 251 251 251 255 255 253 253 253 255 
-254 254 255 213 212 223 145 151 154 97 100 105 58 65 69 60 60 63 57 58 61 59 64 62 
-58 64 64 58 62 63 58 64 64 58 62 63 62 65 65 58 62 63 68 69 75 125 131 132 
-187 189 188 254 254 255 253 255 254 255 254 255 140 141 138 53 63 60 62 66 62 81 77 81 
-156 124 53 156 126 54 156 126 54 156 124 53 159 126 56 159 126 56 156 125 56 152 124 51 
-158 126 53 128 113 57 57 58 61 53 63 60 88 95 83 248 254 252 254 251 252 254 255 255 
-254 254 254 255 255 255 255 255 255 252 252 252 172 178 183 104 112 110 68 69 75 58 62 63 
-58 62 63 104 112 110 145 151 154 230 230 230 253 253 253 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 
-254 255 255 254 255 255 224 220 212 156 160 157 104 112 110 58 62 63 58 64 64 58 62 63 
-58 62 63 58 62 63 58 64 64 58 64 64 58 64 64 58 64 64 58 62 63 57 58 61 
-58 62 63 68 69 75 104 112 110 156 160 157 219 227 224 253 255 254 253 255 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 255 230 230 230 145 151 154 97 100 105 62 65 65 57 58 61 68 69 75 110 110 107 
-178 172 162 241 240 247 253 255 254 253 253 253 253 253 253 255 255 255 255 255 255 255 255 255 
-241 240 247 172 178 183 113 113 120 60 64 65 60 64 65 57 58 61 58 62 63 60 64 65 
-58 64 64 60 64 65 58 62 63 58 62 63 58 64 64 97 100 105 160 163 161 230 230 230 
-251 251 251 255 255 255 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 
-213 212 223 145 151 154 97 100 105 58 62 63 60 64 65 60 64 65 60 64 65 60 64 65 
-57 58 61 60 64 65 58 64 64 58 62 63 58 62 63 58 62 63 88 95 83 125 131 132 
-187 189 188 254 255 255 254 255 255 253 255 254 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 254 254 254 254 255 255 230 230 230 160 163 161 
-104 112 110 60 64 65 58 62 63 68 69 75 104 112 110 187 189 188 241 240 247 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 251 251 251 254 255 255 241 240 247 178 172 162 104 112 110 58 62 63 
-58 62 63 62 65 65 104 112 110 178 172 162 241 240 247 253 255 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 255 255 254 255 255 224 220 212 178 172 162 104 112 110 57 58 61 60 64 65 
-58 62 63 57 58 61 58 62 63 60 64 65 60 64 65 58 64 64 58 62 63 60 64 65 
-58 64 64 62 65 65 62 70 69 113 113 120 160 163 161 202 204 206 254 255 255 253 253 255 
-255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 125 131 132 125 131 132 125 131 132 156 160 157 182 158 106 182 158 106 182 158 106 
-182 158 106 182 158 106 182 158 106 182 158 106 182 158 106 182 158 106 156 160 157 178 172 162 
-202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 
-202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 202 204 206 
-48 49 51 125 131 132 253 253 253 255 255 255 230 230 230 213 212 223 241 240 247 255 255 255 
-253 253 253 253 253 253 254 254 254 255 255 255 255 255 255 252 252 252 255 255 255 252 252 252 
-113 113 120 4 1 5 125 131 132 182 158 106 182 158 106 182 158 106 182 158 106 182 158 106 
-154 157 157 125 131 132 187 189 188 254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 252 252 252 255 255 255 
-252 252 252 253 253 253 254 255 255 253 253 253 253 255 254 254 255 255 254 255 255 254 255 255 
-255 255 255 255 255 255 251 251 251 255 255 255 251 251 251 255 255 255 254 254 254 254 254 254 
-255 255 255 254 254 254 255 255 255 224 220 212 187 189 188 156 160 157 156 160 157 156 160 157 
-154 157 157 172 178 183 202 204 206 230 230 230 253 255 254 254 255 255 253 255 254 254 255 255 
-255 255 255 250 247 249 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 252 252 252 253 253 253 255 255 255 
-252 252 252 254 255 255 253 253 253 202 206 211 202 204 206 160 163 161 154 157 157 156 160 157 
-154 157 157 156 160 157 160 163 161 202 204 206 202 204 206 241 240 247 249 252 251 254 255 255 
-253 255 254 253 255 254 254 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 255 252 252 252 255 255 255 255 255 255 254 254 254 254 255 255 249 252 251 
-253 253 253 254 255 255 253 255 254 202 204 206 172 178 183 154 157 157 160 163 161 154 157 157 
-154 157 157 178 172 162 202 204 206 250 247 249 254 255 255 253 253 253 251 251 251 255 255 255 
-251 251 251 255 255 255 254 254 254 251 251 251 252 252 252 254 254 254 255 255 255 254 255 255 
-253 253 255 250 252 254 254 255 255 254 255 255 254 255 255 253 253 253 255 255 255 254 254 254 
-254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 
-253 255 254 253 253 253 202 206 211 202 204 206 219 227 224 254 255 251 254 254 253 253 253 255 
-255 253 254 255 255 255 248 251 253 253 253 255 241 240 247 202 206 211 160 163 161 156 160 157 
-156 160 157 154 157 157 160 163 161 156 160 157 202 204 206 219 227 224 254 255 255 253 255 254 
-253 255 254 254 255 255 253 253 253 241 240 247 71 72 69 54 67 66 58 65 54 128 99 63 
-156 124 53 155 126 57 155 126 57 155 126 57 156 125 56 156 126 54 158 127 55 158 127 55 
-161 124 50 110 92 61 59 64 62 58 64 64 113 113 120 255 255 255 254 252 250 254 255 255 
-253 253 253 252 252 252 254 254 254 255 255 255 255 255 255 254 255 255 253 253 255 254 255 255 
-254 255 255 253 253 255 254 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 253 255 254 253 255 254 254 255 255 213 212 223 202 206 211 
-178 172 162 156 160 157 154 157 157 160 163 161 156 160 157 156 160 157 172 178 183 213 212 223 
-230 230 230 252 252 252 255 255 255 255 255 255 254 254 254 251 251 251 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 254 255 255 249 252 251 253 255 254 254 255 255 253 253 253 254 254 254 
-254 255 255 253 255 254 253 253 253 255 255 255 254 254 254 253 253 253 254 254 254 255 255 255 
-253 255 254 254 255 255 254 255 255 253 253 253 202 204 206 187 189 188 156 160 157 154 157 157 
-156 160 157 154 157 157 187 189 188 202 206 211 252 252 252 252 252 252 254 255 255 252 252 252 
-255 255 255 254 254 254 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 252 252 252 254 254 254 253 253 253 
-254 255 255 254 255 255 253 253 253 252 252 252 202 206 211 187 189 188 154 157 157 156 160 157 
-156 160 157 154 157 157 160 163 161 172 178 183 202 206 211 241 240 247 254 255 255 252 252 252 
-254 255 255 252 252 252 255 255 255 255 255 255 252 252 252 255 255 255 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 252 252 252 254 254 254 255 255 255 255 255 255 255 255 255 253 255 254 254 255 255 
-253 253 255 250 252 254 254 255 255 252 252 252 253 255 254 253 255 254 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 253 253 253 255 255 255 253 253 253 252 252 252 254 255 255 254 255 255 
-254 255 255 254 255 255 254 255 255 253 255 254 254 255 255 253 253 253 252 252 252 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 254 254 254 255 255 255 254 255 255 253 253 253 253 255 254 254 255 255 213 212 223 
-202 204 206 172 178 183 156 160 157 156 160 157 160 163 161 154 157 157 160 163 161 187 189 188 
-202 204 206 230 230 230 252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 
-255 255 255 253 253 253 255 255 255 254 254 254 253 253 253 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-250 252 246 255 255 255 255 255 253 248 251 253 249 254 254 254 252 244 253 252 247 249 254 254 
-255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 254 255 255 250 252 254 253 253 255 
-253 253 255 254 255 251 254 255 251 249 252 251 254 255 251 255 255 253 251 251 251 254 255 251 
-254 255 251 254 255 251 252 252 252 254 254 253 255 255 255 255 254 255 254 251 252 255 254 255 
-154 157 157 0 0 0 202 204 206 255 255 255 250 247 249 230 230 230 255 255 255 253 253 253 
-255 255 255 254 254 254 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-97 100 105 0 1 1 250 252 254 255 255 255 254 251 249 253 253 255 253 253 255 250 252 254 
-255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 254 254 254 254 254 254 251 251 251 
-255 254 255 254 254 254 254 254 254 254 255 255 252 252 252 254 254 254 251 251 251 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 
-251 251 251 255 255 255 255 255 255 254 254 254 255 255 255 252 252 252 251 251 251 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 254 254 254 
-255 255 255 254 254 254 251 251 251 254 254 254 255 255 255 253 253 253 251 251 251 255 255 255 
-254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 251 251 251 255 255 255 
-252 252 252 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 
-255 255 255 252 252 252 255 255 255 253 253 253 251 251 251 255 255 255 252 252 252 255 255 255 
-253 253 253 255 255 255 251 251 251 254 254 254 253 253 253 253 253 253 254 254 254 250 247 249 
-125 131 132 62 61 67 60 61 69 53 63 60 57 63 61 71 72 69 113 113 120 187 189 188 
-254 255 251 253 252 247 255 255 253 255 255 253 255 255 253 254 251 249 255 255 255 253 253 255 
-253 253 253 253 255 254 251 251 251 254 254 254 255 255 255 254 254 254 251 251 251 254 254 254 
-253 252 247 248 254 253 253 253 255 125 131 132 62 65 65 58 68 63 62 66 56 157 124 59 
-158 125 54 156 126 54 155 126 57 155 126 57 156 125 56 158 125 54 158 127 55 158 127 55 
-159 126 56 85 80 60 59 64 62 58 62 63 156 160 157 255 254 255 254 255 251 255 255 255 
-255 255 255 255 255 255 255 255 255 251 251 251 253 253 253 255 255 255 253 253 253 255 255 255 
-254 254 254 255 255 255 252 252 252 252 252 252 255 255 255 251 251 251 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 
-255 255 255 253 253 253 251 251 251 255 255 255 255 255 255 255 255 255 254 254 254 253 253 253 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 251 251 251 
-255 254 255 255 253 254 255 253 254 252 252 252 255 255 255 255 255 255 251 251 251 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 251 251 251 255 255 255 254 254 254 255 255 255 254 254 254 253 253 253 254 254 254 
-255 255 255 255 255 255 253 253 253 251 251 251 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 254 254 254 252 252 252 255 255 255 
-255 255 255 255 255 255 252 252 252 254 254 254 253 253 253 255 255 255 254 254 254 253 253 253 
-253 253 253 255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 252 252 252 253 253 253 254 254 254 
-254 254 254 253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 253 253 253 254 254 254 
-254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 255 254 255 254 251 252 255 254 255 
-252 252 252 254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 255 254 250 252 254 252 252 252 253 255 254 254 255 251 254 251 249 255 254 255 251 251 251 
-254 255 251 254 255 251 254 255 251 254 255 251 253 252 247 254 255 251 255 255 253 255 255 253 
-254 255 251 253 253 253 253 252 247 254 255 251 253 253 255 253 253 255 255 255 253 253 255 254 
-255 255 255 255 255 255 254 254 255 255 255 255 254 251 252 254 251 252 254 251 252 255 253 254 
-255 255 255 59 60 62 48 49 51 213 212 223 255 255 255 254 254 254 250 247 249 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 253 253 253 
-0 0 0 21 19 24 254 255 251 250 252 246 254 255 251 255 255 253 255 255 253 254 255 251 
-252 252 252 253 253 253 251 251 251 252 252 252 255 255 255 255 255 255 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 
-255 253 254 252 252 252 253 253 253 251 251 251 255 255 255 255 255 255 255 255 255 254 254 254 
-251 251 251 255 255 255 255 255 255 252 252 252 254 254 254 253 253 253 254 254 254 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 254 254 254 251 251 251 255 255 255 251 251 251 
-255 255 255 253 253 253 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 
-255 255 255 254 254 254 251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 251 251 251 255 254 255 254 251 252 
-254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 
-252 252 252 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 
-255 255 255 250 247 249 254 254 254 254 254 254 255 255 255 253 253 253 255 255 255 251 251 251 
-255 254 255 252 252 252 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 253 253 253 
-255 255 255 252 252 252 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 252 252 252 253 253 253 
-255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 219 227 224 71 72 69 
-58 65 54 53 60 64 57 58 63 62 70 65 54 64 59 56 66 64 58 65 69 54 64 59 
-71 72 69 125 131 132 219 227 224 253 252 247 250 252 246 254 255 251 252 252 252 253 253 255 
-254 254 254 255 255 255 255 255 255 253 253 253 255 253 254 254 251 252 255 254 255 255 254 255 
-253 253 255 255 255 253 125 131 132 60 60 63 56 64 62 54 67 66 113 104 59 158 126 53 
-158 127 55 156 124 53 156 124 53 158 127 55 159 126 56 158 126 53 158 126 53 157 126 52 
-147 124 59 59 64 62 57 63 61 62 65 65 213 212 223 255 253 254 254 255 251 255 255 255 
-254 254 254 254 254 254 251 251 251 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 
-253 253 253 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 251 252 255 254 255 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 255 254 255 251 251 251 254 254 254 253 253 253 253 253 253 255 255 255 254 254 254 
-252 252 252 255 255 255 251 251 251 254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 252 252 252 254 254 254 
-255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 254 254 254 252 252 252 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 253 253 253 253 253 253 
-254 254 254 255 255 255 253 253 253 253 253 253 251 251 251 251 251 251 255 255 255 255 255 255 
-250 247 249 255 255 255 254 254 254 251 251 251 255 255 255 255 255 255 252 252 252 253 253 253 
-253 253 253 255 255 255 252 252 252 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 
-251 251 251 255 255 255 255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 253 253 253 255 255 255 254 254 254 250 247 249 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 253 253 253 255 255 255 
-253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 254 254 254 253 253 253 255 255 255 254 254 254 
-255 255 255 254 254 254 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 254 254 254 254 254 254 255 255 255 254 255 251 255 254 255 254 250 255 255 254 255 
-255 255 255 253 253 253 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 252 252 252 
-254 254 253 254 255 251 254 255 251 254 252 251 253 253 255 254 255 255 253 252 247 254 255 251 
-254 254 255 252 252 252 250 247 249 254 255 255 253 255 254 254 255 255 253 255 254 248 254 252 
-252 252 252 241 240 247 48 49 51 48 49 51 187 189 188 252 252 252 255 255 255 255 255 255 
-254 254 254 255 255 255 251 251 251 254 254 254 255 255 255 252 252 252 255 255 255 172 178 183 
-4 1 5 97 100 105 253 253 255 252 252 252 254 255 251 251 251 251 253 253 255 253 253 253 
-255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 252 252 252 252 252 252 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 253 253 253 254 254 254 255 255 255 
-255 255 255 251 251 251 251 251 251 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 251 251 251 253 253 253 255 255 255 254 255 255 249 252 251 253 255 254 254 255 255 
-251 251 251 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 252 252 252 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 254 255 
-253 253 253 253 253 253 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 254 254 254 
-252 252 252 255 255 255 255 255 255 253 253 253 253 253 253 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 
-252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 
-253 253 253 255 255 255 254 254 254 252 252 252 255 255 255 252 252 252 255 255 255 254 254 254 
-254 254 254 253 253 253 254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 
-254 254 254 254 254 254 251 251 251 253 253 253 255 255 255 230 230 230 68 69 75 58 64 64 
-53 60 64 62 61 67 69 60 69 72 76 65 62 66 56 57 61 64 58 62 65 60 64 65 
-58 62 65 58 62 65 58 62 65 97 100 105 178 172 162 230 230 230 255 255 255 250 252 254 
-252 252 252 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 
-202 206 211 88 95 83 60 64 65 57 60 70 58 62 65 85 80 60 152 124 51 152 124 51 
-158 127 55 157 126 52 156 126 54 158 127 55 157 126 52 157 126 52 159 126 56 158 127 55 
-113 104 59 58 62 65 57 63 61 81 77 81 254 255 255 255 254 255 249 254 246 255 253 254 
-254 254 254 253 253 253 255 255 255 252 252 252 255 255 255 252 252 252 251 251 251 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 
-251 251 251 255 255 255 254 254 254 255 255 255 254 255 255 249 252 251 253 255 254 249 252 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 252 252 252 255 255 255 252 252 252 255 255 255 254 254 254 253 253 253 255 255 255 
-255 255 255 252 252 252 255 255 255 252 252 252 251 251 251 253 253 253 254 254 254 253 253 253 
-255 255 255 251 251 251 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 253 253 253 
-255 255 255 254 254 254 251 251 251 253 253 253 252 252 252 255 255 255 254 254 254 255 255 255 
-255 255 255 252 252 252 254 254 254 253 253 253 252 252 252 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 253 253 253 
-255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 255 255 255 251 251 251 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 
-255 255 255 252 252 252 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 251 251 251 
-255 255 255 254 254 254 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 252 252 252 
-255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 251 251 251 
-255 255 255 253 253 253 255 255 255 251 251 251 254 254 254 255 255 255 252 252 252 254 255 255 
-251 251 251 255 255 255 255 255 255 251 251 251 254 254 254 254 254 254 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 254 255 251 253 253 255 253 255 254 254 255 251 250 252 246 248 254 252 249 254 246 
-255 255 253 255 255 253 255 255 253 255 255 253 254 254 253 255 255 253 255 255 253 255 255 253 
-255 254 255 254 255 251 250 247 249 255 254 255 254 255 251 255 255 253 252 252 252 253 252 247 
-254 255 251 254 255 251 254 255 251 255 255 253 254 255 251 254 255 255 254 255 255 253 255 254 
-255 255 255 251 251 251 241 240 247 48 49 51 0 1 1 125 131 132 230 230 230 252 252 252 
-253 253 253 253 253 253 255 255 255 255 255 255 251 251 251 255 255 255 213 212 223 21 19 24 
-0 0 0 187 189 188 255 255 255 253 253 255 255 255 253 254 255 251 255 255 253 255 255 255 
-254 254 254 251 251 251 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 253 253 253 253 253 253 255 255 255 
-255 255 255 254 254 254 252 252 252 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-251 251 251 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 
-253 253 253 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 252 252 252 254 254 254 
-255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 254 254 254 253 253 253 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 251 251 251 252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 
-254 254 254 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 254 254 254 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 253 253 253 253 253 253 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 253 253 253 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 255 255 255 251 251 251 252 252 252 252 252 252 255 255 255 
-255 255 255 255 255 255 252 252 252 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 253 253 253 253 253 253 254 254 254 255 255 255 
-255 255 255 252 252 252 254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-254 255 255 255 255 255 255 255 255 252 252 252 254 254 254 255 255 255 254 254 254 255 255 255 
-253 253 253 255 255 255 251 251 251 254 254 254 254 255 255 104 112 110 57 63 63 57 63 63 
-58 65 69 85 80 60 142 120 69 155 128 52 158 127 55 128 113 57 94 90 61 62 66 56 
-58 65 54 59 64 62 58 62 65 58 62 65 58 62 65 57 63 61 97 100 105 145 151 154 
-172 178 183 202 206 211 202 206 211 202 204 206 202 206 211 187 189 188 145 151 154 88 95 83 
-57 63 61 62 65 65 59 60 62 59 64 62 84 69 58 149 124 55 158 134 59 154 129 46 
-158 125 54 156 124 53 157 127 54 158 127 55 156 124 53 156 124 53 155 126 57 152 127 56 
-72 76 65 62 61 67 57 58 61 145 151 154 255 255 255 252 252 252 253 255 254 255 255 253 
-255 255 255 254 254 254 252 252 252 255 255 255 252 252 252 254 254 254 255 255 255 252 252 252 
-253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 251 251 251 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 
-255 255 255 251 251 251 255 255 255 253 253 253 255 255 255 254 254 254 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 252 252 252 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 251 251 251 254 254 254 253 253 253 254 254 254 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 
-252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 251 251 251 253 253 253 
-254 254 254 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 253 253 253 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 252 252 252 252 252 252 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 252 252 252 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 253 253 253 252 252 252 255 255 255 253 253 253 255 255 255 
-254 254 254 255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 254 254 254 255 255 255 252 252 252 254 254 254 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 
-249 252 251 253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 253 253 253 255 255 255 254 254 254 255 255 255 251 251 251 255 255 255 255 255 255 
-254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 254 254 254 255 255 255 
-255 255 255 254 254 254 253 253 253 255 255 255 254 254 254 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 253 253 253 251 251 251 255 255 255 255 255 255 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 255 253 252 247 249 254 254 253 253 255 254 254 254 254 255 251 254 254 255 254 252 251 
-254 255 251 254 255 255 254 255 255 253 255 254 253 255 254 253 255 254 253 253 253 254 255 255 
-255 255 253 254 254 255 255 255 253 250 252 246 254 255 255 252 252 252 255 255 253 255 254 255 
-255 254 255 255 254 255 255 254 255 254 251 252 254 251 252 255 254 255 255 253 254 255 253 254 
-251 251 251 255 255 255 252 252 252 254 254 254 125 131 132 4 2 1 0 0 0 125 131 132 
-187 189 188 241 240 247 254 254 254 255 255 255 219 227 224 145 151 154 48 49 51 0 0 0 
-125 131 132 255 255 253 254 255 251 254 255 255 253 255 254 255 255 253 251 251 251 253 255 254 
-254 254 254 255 255 255 253 253 253 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 255 255 255 252 252 252 
-253 255 254 254 255 255 254 255 255 252 252 252 255 255 255 253 253 253 255 255 255 253 253 253 
-255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 
-255 254 255 251 251 251 255 254 255 254 254 254 255 255 255 253 253 253 255 255 255 253 253 253 
-253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 254 255 255 254 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 254 254 254 
-254 255 255 253 253 253 255 255 255 254 254 254 252 252 252 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 253 253 253 
-253 253 253 254 255 255 254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-252 252 252 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 254 255 255 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 254 255 255 
-255 255 255 252 252 252 255 255 255 253 253 253 219 227 224 57 58 61 56 66 64 53 63 60 
-110 92 61 148 133 63 158 126 53 162 124 52 162 124 55 159 126 56 156 124 53 157 124 59 
-109 102 83 85 80 60 59 59 56 60 64 65 58 62 65 57 63 63 59 64 62 57 63 61 
-58 64 64 57 63 61 58 64 64 60 64 65 57 63 63 58 64 64 62 65 65 57 63 63 
-58 65 69 58 62 63 54 64 59 94 90 61 150 128 52 158 126 53 156 124 53 158 127 55 
-156 125 56 156 124 53 156 126 54 158 126 53 158 125 54 159 126 56 149 124 55 140 101 45 
-56 66 64 60 60 63 62 65 65 230 230 230 254 254 253 253 253 253 253 255 254 254 252 250 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 251 251 251 255 255 255 253 253 253 253 253 253 254 254 254 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 252 252 252 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 253 253 253 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 254 255 255 
-255 255 255 254 254 254 255 255 255 251 251 251 253 253 253 255 255 255 254 254 254 254 254 254 
-254 255 255 253 253 253 254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 
-254 254 254 253 253 253 255 255 255 254 254 254 255 255 255 252 252 252 254 255 255 254 255 255 
-255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 
-253 255 254 254 255 255 252 252 252 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 253 253 253 255 255 255 254 254 254 254 254 254 254 255 255 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 255 255 255 
-254 255 255 253 255 254 255 255 255 253 253 253 255 255 255 255 255 255 255 255 255 253 255 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 254 254 254 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 255 255 255 255 255 255 254 255 255 253 255 254 252 252 252 254 255 255 
-255 255 255 252 252 252 255 255 255 254 254 254 254 254 254 255 255 255 252 252 252 255 255 255 
-255 253 254 255 253 254 252 252 252 254 254 254 254 254 254 255 255 255 254 254 254 255 255 255 
-254 254 254 254 254 254 254 254 254 255 255 255 253 253 253 252 252 252 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 251 251 251 255 255 255 254 254 254 255 255 255 219 227 224 97 100 105 0 0 0 
-0 0 0 0 1 1 0 0 0 4 2 1 4 2 1 0 0 0 21 19 24 156 160 157 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 253 253 253 255 254 251 252 254 255 251 140 141 138 54 67 66 58 62 65 66 60 61 
-149 124 55 155 126 57 155 127 54 155 127 54 155 127 54 155 128 52 158 127 55 158 124 56 
-161 124 50 155 126 57 142 120 69 101 91 62 72 76 65 60 64 65 58 62 63 58 66 61 
-58 62 65 56 66 64 56 66 64 53 60 64 56 64 62 59 64 62 59 64 62 59 59 56 
-62 61 67 94 90 61 128 113 57 155 126 57 157 126 52 159 126 56 158 124 54 158 125 54 
-157 127 54 157 126 52 156 124 53 158 127 55 152 124 51 161 124 50 152 127 56 72 76 65 
-58 64 64 58 64 64 110 110 107 255 255 255 253 253 253 255 255 255 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-252 252 252 254 254 254 255 255 255 254 254 254 254 254 254 255 255 255 250 247 249 241 240 247 
-172 178 183 125 131 132 71 72 69 60 60 63 110 110 107 156 160 157 241 240 247 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 251 251 251 255 255 253 254 255 251 104 112 110 53 60 64 62 66 56 94 90 61 
-152 124 51 159 126 56 159 126 56 152 124 51 157 126 52 162 125 53 158 124 53 155 128 52 
-148 128 46 155 126 57 157 124 59 162 124 55 158 126 53 147 124 59 113 104 59 101 91 62 
-94 90 61 85 80 60 72 76 65 72 76 65 72 76 65 84 69 58 94 90 61 109 102 83 
-149 124 55 150 126 55 156 128 53 158 126 53 155 128 52 156 128 53 152 124 51 155 128 52 
-154 129 46 162 124 55 158 127 55 150 126 55 159 126 56 162 125 53 110 92 61 58 65 54 
-57 63 61 58 62 63 213 212 223 254 254 254 255 255 255 254 254 254 251 251 251 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 252 252 252 255 255 255 255 255 255 252 252 252 255 255 255 253 253 253 
-253 253 253 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 250 255 254 255 251 253 255 254 254 255 255 104 112 110 58 65 69 66 60 61 128 113 57 
-158 127 55 155 128 52 157 126 52 162 125 53 166 129 59 152 124 51 158 127 55 156 124 53 
-158 124 56 158 125 54 158 126 53 156 124 53 158 125 54 159 126 56 159 126 56 158 125 54 
-156 125 56 156 125 56 158 127 55 156 126 54 156 126 54 156 126 54 159 126 56 159 126 56 
-161 124 50 162 125 53 162 125 53 158 124 53 157 126 52 158 127 55 158 124 54 159 126 56 
-159 126 56 152 124 51 155 126 57 159 126 56 158 124 53 128 113 57 62 65 65 58 62 65 
-58 62 63 145 151 154 253 255 254 255 255 255 252 252 252 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-251 251 251 252 252 252 255 255 255 255 255 255 255 255 255 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 251 251 251 255 255 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 252 251 251 251 251 253 253 255 255 255 255 145 151 154 57 61 64 59 60 64 85 80 60 
-155 128 52 155 126 57 155 126 57 159 126 56 152 124 51 158 134 59 155 126 57 157 124 59 
-157 124 59 159 126 56 158 132 49 158 132 49 155 128 52 155 127 54 157 126 52 161 124 50 
-159 126 56 159 126 56 156 126 54 156 124 53 156 126 54 158 127 55 159 126 56 158 124 54 
-150 128 52 155 126 57 157 124 59 157 124 59 158 124 56 158 125 54 158 124 53 161 124 50 
-158 124 56 156 128 53 162 124 55 162 124 52 147 124 59 71 72 69 56 66 64 59 64 62 
-88 95 83 241 240 247 255 255 255 251 251 251 254 254 254 255 255 255 252 252 252 254 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 252 252 252 255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 255 255 
-254 254 254 254 254 254 252 252 252 253 253 253 255 255 255 255 255 255 250 247 249 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 255 251 255 255 253 255 255 255 253 253 255 202 204 206 54 64 59 60 64 65 60 61 69 
-113 104 59 147 124 59 161 124 50 156 124 53 157 124 59 152 124 51 158 126 53 158 126 53 
-158 132 49 157 126 52 156 124 53 158 124 54 158 125 54 158 126 53 155 127 54 155 127 54 
-156 129 45 152 124 51 156 124 53 158 127 55 158 127 55 156 126 54 155 128 52 155 128 52 
-155 127 54 156 128 53 155 128 52 156 126 54 158 127 55 157 124 59 155 126 57 155 126 57 
-158 125 54 158 126 53 159 126 56 128 113 57 71 72 69 53 63 60 53 63 60 57 63 61 
-213 212 223 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-253 253 253 253 253 253 254 254 254 255 255 255 255 255 255 254 254 254 255 255 255 254 254 254 
-253 253 253 254 254 254 255 255 255 254 254 254 252 252 252 255 255 255 255 255 255 253 253 253 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 253 254 255 251 254 255 251 255 253 254 253 253 255 104 112 110 54 64 59 53 60 64 
-66 60 61 110 92 61 157 124 59 161 124 50 164 134 50 155 128 52 152 124 51 159 126 56 
-156 126 54 156 126 54 158 127 55 159 126 56 159 126 56 157 124 59 157 124 59 159 126 56 
-157 124 59 158 127 55 158 127 55 156 124 53 152 124 51 156 124 53 156 125 56 157 124 59 
-162 124 55 158 124 54 156 126 54 156 128 53 156 128 53 152 124 51 156 125 56 156 125 56 
-162 125 53 157 127 54 113 104 59 62 65 65 60 64 65 58 65 54 58 65 69 172 178 183 
-254 254 254 255 255 255 253 253 253 253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 254 254 254 
-255 255 255 253 253 253 255 255 255 255 255 255 251 251 251 254 254 254 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 254 255 254 255 251 251 251 251 253 253 255 255 255 253 230 230 230 71 72 69 62 66 62 
-62 65 65 62 61 67 84 69 58 142 120 69 155 128 52 152 127 56 155 126 57 158 124 54 
-154 129 46 155 128 52 155 126 57 158 124 56 158 126 53 155 128 52 155 128 52 155 128 52 
-159 126 56 156 124 53 158 124 53 159 126 56 159 126 56 159 126 56 158 126 53 158 126 53 
-158 125 54 156 124 53 157 124 59 156 125 56 157 126 52 157 126 52 159 134 56 152 124 51 
-147 124 59 94 90 61 62 70 69 53 63 60 59 64 62 58 62 65 172 178 183 255 253 254 
-253 253 253 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 252 252 252 255 254 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 253 253 253 253 253 253 255 255 255 254 254 254 255 255 255 252 252 252 254 254 254 
-253 253 253 255 255 255 253 253 253 254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 253 254 254 252 251 253 253 255 255 254 255 253 252 247 253 255 254 213 212 223 71 72 69 
-58 62 65 53 63 60 56 66 64 62 65 65 97 78 60 128 113 57 155 126 57 155 128 52 
-158 124 56 158 125 54 158 126 53 156 126 54 156 125 56 158 127 55 159 126 56 158 126 53 
-155 127 54 157 127 54 158 127 55 156 124 53 156 124 53 158 127 55 157 127 54 155 128 52 
-155 128 52 156 126 54 159 126 56 158 124 53 161 124 50 158 127 55 147 124 59 113 104 59 
-71 65 56 58 64 64 53 60 64 62 65 65 68 69 75 187 189 188 252 252 252 253 255 254 
-255 255 255 253 253 253 255 255 255 255 255 255 253 253 253 255 253 254 255 254 255 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 253 253 253 255 255 255 255 255 255 251 251 251 241 240 247 
-113 113 120 57 63 61 56 64 62 56 64 62 58 64 64 59 64 62 72 73 56 88 95 83 
-140 101 45 157 124 59 157 124 59 152 124 51 158 127 55 156 125 56 159 126 56 156 124 53 
-155 128 52 156 128 53 155 127 54 156 126 54 156 126 54 156 126 54 157 127 54 155 127 54 
-154 129 46 155 128 52 157 126 52 157 124 59 128 113 57 94 90 61 71 68 65 53 67 71 
-59 64 62 59 64 62 57 58 61 97 100 105 230 230 230 253 253 253 255 255 255 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-254 254 255 202 204 206 104 112 110 57 60 56 57 61 64 62 65 65 59 59 56 62 66 56 
-60 64 65 62 66 56 85 80 60 101 91 62 113 104 59 128 113 57 156 128 53 158 132 49 
-157 126 52 158 125 54 159 126 56 159 126 56 159 126 56 158 124 53 158 125 54 159 126 56 
-128 99 63 110 92 61 94 90 61 71 68 65 53 63 60 58 64 64 59 64 62 59 64 62 
-57 63 61 71 72 69 172 178 183 253 255 254 253 255 254 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 253 253 253 254 254 254 255 255 255 
-255 254 255 255 255 253 255 255 253 202 206 211 140 141 138 58 62 65 58 62 65 59 64 62 
-58 62 65 57 61 64 60 64 65 59 60 62 60 60 63 60 60 63 62 65 65 71 68 65 
-72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 72 76 65 71 65 56 59 59 56 
-62 65 65 60 60 63 57 63 61 57 63 61 60 64 65 60 64 65 57 58 61 81 77 81 
-156 160 157 241 240 247 253 253 253 255 255 255 255 255 255 254 254 254 254 254 254 251 251 251 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 254 254 254 253 253 253 254 254 254 
-251 251 251 254 252 251 255 255 253 254 254 254 253 253 255 241 240 247 187 189 188 113 113 120 
-71 72 69 56 66 64 56 66 64 53 60 64 60 64 65 57 63 63 59 64 62 59 64 62 
-57 61 64 60 64 65 60 64 65 57 63 61 57 63 61 60 64 65 56 66 64 58 65 69 
-58 62 65 62 70 69 58 65 69 62 61 67 62 61 67 113 113 120 187 189 188 254 252 251 
-255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 251 251 251 253 253 253 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 255 255 255 254 254 254 
-254 255 255 255 255 255 255 255 253 254 251 249 255 255 253 251 251 251 254 255 255 254 255 255 
-255 255 253 224 220 212 172 178 183 140 141 138 104 112 110 58 65 69 53 63 60 59 64 62 
-58 62 65 58 62 65 58 62 63 57 63 61 59 64 62 57 63 63 53 60 64 58 62 65 
-68 69 75 104 112 110 156 160 157 187 189 188 241 240 247 253 255 254 253 253 255 253 253 255 
-255 255 255 252 252 252 255 255 255 252 252 252 255 255 255 255 255 255 253 253 253 254 254 254 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-254 254 254 255 255 255 255 255 255 254 254 254 254 254 254 255 255 255 255 255 255 255 255 255 
-249 252 251 254 255 255 251 251 251 251 251 251 254 255 251 254 255 251 254 254 253 254 252 251 
-255 255 255 254 254 255 255 255 255 254 254 255 254 254 254 254 254 253 254 255 251 202 204 206 
-202 204 206 202 204 206 202 206 211 202 206 211 202 204 206 202 204 206 219 227 224 253 255 254 
-254 255 251 254 255 251 253 252 247 254 255 251 254 255 251 254 255 251 253 255 254 253 255 254 
-253 253 253 255 255 255 255 255 255 255 255 255 252 252 252 255 255 255 252 252 252 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
-255 255 255 255 255 255 255 255 255 255 255 255 255 255 255 
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/configs/empty b/recipes-kernel/linux/linux-ti33x-psp-3.2/configs/empty
deleted file mode 100644
index e69de29..0000000
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch
deleted file mode 100644
index bd24051..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch
+++ /dev/null
@@ -1,67 +0,0 @@
-From a48682f0690f07aa31d3e9d5d24388f0aee0bf3d Mon Sep 17 00:00:00 2001
-From: Alexander Holler <hol... at ahsoftware.de>
-Date: Wed, 25 Apr 2012 00:50:03 +0200
-Subject: [PATCH 1/4] leds: heartbeat: stop on shutdown, reboot or panic
-
-A halted kernel should not show a heartbeat.
-
-Signed-off-by: Alexander Holler <hol... at ahsoftware.de>
-Signed-off-by: Koen Kooi <koen at dominion.thruhere.net>
----
- drivers/leds/ledtrig-heartbeat.c |   27 ++++++++++++++++++++++++++-
- 1 files changed, 26 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/leds/ledtrig-heartbeat.c b/drivers/leds/ledtrig-heartbeat.c
-index 759c0bb..31c234c 100644
---- a/drivers/leds/ledtrig-heartbeat.c
-+++ b/drivers/leds/ledtrig-heartbeat.c
-@@ -18,6 +18,7 @@
- #include <linux/timer.h>
- #include <linux/sched.h>
- #include <linux/leds.h>
-+#include <linux/reboot.h>
- #include "leds.h"
- 
- struct heartbeat_trig_data {
-@@ -101,13 +102,37 @@ static struct led_trigger heartbeat_led_trigger = {
- 	.deactivate = heartbeat_trig_deactivate,
- };
- 
-+static int heartbeat_reboot_notifier(struct notifier_block *nb,
-+				     unsigned long code, void *unused)
-+{
-+	led_trigger_unregister(&heartbeat_led_trigger);
-+	return NOTIFY_DONE;
-+}
-+
-+static struct notifier_block heartbeat_reboot_nb = {
-+	.notifier_call = heartbeat_reboot_notifier,
-+};
-+
-+static struct notifier_block heartbeat_panic_nb = {
-+	.notifier_call = heartbeat_reboot_notifier,
-+};
-+
- static int __init heartbeat_trig_init(void)
- {
--	return led_trigger_register(&heartbeat_led_trigger);
-+	int rc = led_trigger_register(&heartbeat_led_trigger);
-+	if (!rc) {
-+		atomic_notifier_chain_register(&panic_notifier_list,
-+					       &heartbeat_panic_nb);
-+		register_reboot_notifier(&heartbeat_reboot_nb);
-+	}
-+	return rc;
- }
- 
- static void __exit heartbeat_trig_exit(void)
- {
-+	unregister_reboot_notifier(&heartbeat_reboot_nb);
-+	atomic_notifier_chain_unregister(&panic_notifier_list,
-+					 &heartbeat_panic_nb);
- 	led_trigger_unregister(&heartbeat_led_trigger);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch
deleted file mode 100644
index 2ea9652..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From d8e323a5bb24b2deefa6b80bb129b2d2d9db3184 Mon Sep 17 00:00:00 2001
-From: Greg Kroah-Hartman <gregkh at suse.de>
-Date: Fri, 18 Nov 2011 09:44:20 -0800
-Subject: [PATCH 01/16] USB: convert drivers/net/* to use module_usb_driver()
-
-This converts the drivers in drivers/net/* to use the
-module_usb_driver() macro which makes the code smaller and a bit
-simpler.
-
-Added bonus is that it removes some unneeded kernel log messages about
-drivers loading and/or unloading.
-
-Cc: Wolfgang Grandegger <wg at grandegger.com>
-Cc: Samuel Ortiz <samuel at sortiz.org>
-Cc: Oliver Neukum <oliver at neukum.name>
-Cc: Peter Korsgaard <jacmet at sunsite.dk>
-Cc: Petko Manolov <petkan at users.sourceforge.net>
-Cc: Steve Glendinning <steve.glendinning at smsc.com>
-Cc: Christian Lamparter <chunkeey at googlemail.com>
-Cc: "John W. Linville" <linville at tuxdriver.com>
-Cc: Dan Williams <dcbw at redhat.com>
-Cc: Jussi Kivilinna <jussi.kivilinna at mbnet.fi>
-Cc: Ivo van Doorn <IvDoorn at gmail.com>
-Cc: Gertjan van Wingerde <gwingerde at gmail.com>
-Cc: Helmut Schaa <helmut.schaa at googlemail.com>
-Cc: Herton Ronaldo Krzesinski <herton at canonical.com>
-Cc: Hin-Tak Leung <htl10 at users.sourceforge.net>
-Cc: Larry Finger <Larry.Finger at lwfinger.net>
-Cc: Chaoming Li <chaoming_li at realsil.com.cn>
-Cc: Lucas De Marchi <lucas.demarchi at profusion.mobi>
-Cc: "David S. Miller" <davem at davemloft.net>
-Cc: Roel Kluin <roel.kluin at gmail.com>
-Cc: Paul Gortmaker <paul.gortmaker at windriver.com>
-Cc: Jiri Pirko <jpirko at redhat.com>
-Cc: Pavel Roskin <proski at gnu.org>
-Cc: Yoann DI-RUZZA <y.diruzza at lim.eu>
-Cc: George <george0505 at realtek.com>
-Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
----
- drivers/net/wireless/libertas/if_usb.c |   24 +-----------------------
- 1 file changed, 1 insertion(+), 23 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index db879c3..b5fbbc7 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -1184,29 +1184,7 @@ static struct usb_driver if_usb_driver = {
- 	.reset_resume = if_usb_resume,
- };
- 
--static int __init if_usb_init_module(void)
--{
--	int ret = 0;
--
--	lbs_deb_enter(LBS_DEB_MAIN);
--
--	ret = usb_register(&if_usb_driver);
--
--	lbs_deb_leave_args(LBS_DEB_MAIN, "ret %d", ret);
--	return ret;
--}
--
--static void __exit if_usb_exit_module(void)
--{
--	lbs_deb_enter(LBS_DEB_MAIN);
--
--	usb_deregister(&if_usb_driver);
--
--	lbs_deb_leave(LBS_DEB_MAIN);
--}
--
--module_init(if_usb_init_module);
--module_exit(if_usb_exit_module);
-+module_usb_driver(if_usb_driver);
- 
- MODULE_DESCRIPTION("8388 USB WLAN Driver");
- MODULE_AUTHOR("Marvell International Ltd. and Red Hat, Inc.");
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch
deleted file mode 100644
index 80d84ed..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch
+++ /dev/null
@@ -1,55 +0,0 @@
-From f5bec38aff7e124933b0ad9b9c6bf0481d01bdfa Mon Sep 17 00:00:00 2001
-From: Rusty Russell <rusty at rustcorp.com.au>
-Date: Mon, 19 Dec 2011 13:56:45 +0000
-Subject: [PATCH 02/16] net: fix assignment of 0/1 to bool variables.
-
-DaveM said:
-   Please, this kind of stuff rots forever and not using bool properly
-   drives me crazy.
-
-Joe Perches <joe at perches.com> gave me the spatch script:
-
-	@@
-	bool b;
-	@@
-	-b = 0
-	+b = false
-	@@
-	bool b;
-	@@
-	-b = 1
-	+b = true
-
-I merely installed coccinelle, read the documentation and took credit.
-
-Signed-off-by: Rusty Russell <rusty at rustcorp.com.au>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- drivers/net/wireless/libertas/if_cs.c |    4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index e269351..3f7bf4d 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -859,7 +859,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	 * Most of the libertas cards can do unaligned register access, but some
- 	 * weird ones cannot. That's especially true for the CF8305 card.
- 	 */
--	card->align_regs = 0;
-+	card->align_regs = false;
- 
- 	card->model = get_model(p_dev->manf_id, p_dev->card_id);
- 	if (card->model == MODEL_UNKNOWN) {
-@@ -871,7 +871,7 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	/* Check if we have a current silicon */
- 	prod_id = if_cs_read8(card, IF_CS_PRODUCT_ID);
- 	if (card->model == MODEL_8305) {
--		card->align_regs = 1;
-+		card->align_regs = true;
- 		if (prod_id < IF_CS_CF8305_B1_REV) {
- 			pr_err("8305 rev B0 and older are not supported\n");
- 			ret = -ENODEV;
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0003-switch-debugfs-to-umode_t.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0003-switch-debugfs-to-umode_t.patch
deleted file mode 100644
index b60661c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0003-switch-debugfs-to-umode_t.patch
+++ /dev/null
@@ -1,26 +0,0 @@
-From 5595b911189c8c9cac230dbe6f76c73352a57fcd Mon Sep 17 00:00:00 2001
-From: Al Viro <viro at zeniv.linux.org.uk>
-Date: Sun, 24 Jul 2011 04:33:43 -0400
-Subject: [PATCH 03/16] switch debugfs to umode_t
-
-Signed-off-by: Al Viro <viro at zeniv.linux.org.uk>
----
- drivers/net/wireless/libertas/debugfs.c |    2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/libertas/debugfs.c b/drivers/net/wireless/libertas/debugfs.c
-index d8d8f0d..c192671 100644
---- a/drivers/net/wireless/libertas/debugfs.c
-+++ b/drivers/net/wireless/libertas/debugfs.c
-@@ -704,7 +704,7 @@ out_unlock:
- 
- struct lbs_debugfs_files {
- 	const char *name;
--	int perm;
-+	umode_t perm;
- 	struct file_operations fops;
- };
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch
deleted file mode 100644
index 2f034d1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch
+++ /dev/null
@@ -1,54 +0,0 @@
-From 018746aab6a8f31b27788607c0045489f2996424 Mon Sep 17 00:00:00 2001
-From: Joe Perches <joe at perches.com>
-Date: Sun, 29 Jan 2012 12:56:23 +0000
-Subject: [PATCH 04/16] drivers/net: Remove unnecessary k.alloc/v.alloc OOM
- messages
-
-alloc failures use dump_stack so emitting an additional
-out-of-memory message is an unnecessary duplication.
-
-Remove the allocation failure messages.
-
-Signed-off-by: Joe Perches <joe at perches.com>
-Signed-off-by: David S. Miller <davem at davemloft.net>
----
- drivers/net/wireless/libertas/if_cs.c  |    5 ++---
- drivers/net/wireless/libertas/if_usb.c |    4 +---
- 2 files changed, 3 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index 3f7bf4d..234ee88 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -815,10 +815,9 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	lbs_deb_enter(LBS_DEB_CS);
- 
- 	card = kzalloc(sizeof(struct if_cs_card), GFP_KERNEL);
--	if (!card) {
--		pr_err("error in kzalloc\n");
-+	if (!card)
- 		goto out;
--	}
-+
- 	card->p_dev = p_dev;
- 	p_dev->priv = card;
- 
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index b5fbbc7..74da5f1 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -261,10 +261,8 @@ static int if_usb_probe(struct usb_interface *intf,
- 	udev = interface_to_usbdev(intf);
- 
- 	cardp = kzalloc(sizeof(struct if_usb_card), GFP_KERNEL);
--	if (!cardp) {
--		pr_err("Out of memory allocating private data\n");
-+	if (!cardp)
- 		goto error;
--	}
- 
- 	setup_timer(&cardp->fw_timeout, if_usb_fw_timeo, (unsigned long)cardp);
- 	init_waitqueue_head(&cardp->fw_wq);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch
deleted file mode 100644
index d574fde..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0005-libertas-remove-dump_survey-implementation.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-From 5613011f4fa76a08aab30731557cc91699407d11 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Wed, 14 Mar 2012 22:34:33 +0000
-Subject: [PATCH 05/16] libertas: remove dump_survey implementation
-
-libertas provides a dump_survey implementation based on reading of
-a RSSI value. However, this RSSI value is calculated based on the
-last received beacon from the associated AP - it is not a good
-way of surveying a channel in general, and even causes an error
-if the card is not associated to a network.
-
-As this is not appropriate as a survey, remove it. This fixes an
-issue where something in userspace is repeatedly calling site-survey
-during boot, resulting in many repeated errors as the RSSI value cannot
-be read before associating.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/cfg.c |   37 -----------------------------------
- 1 file changed, 37 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
-index db64ef1..72e2c8e 100644
---- a/drivers/net/wireless/libertas/cfg.c
-+++ b/drivers/net/wireless/libertas/cfg.c
-@@ -1628,42 +1628,6 @@ static int lbs_cfg_get_station(struct wiphy *wiphy, struct net_device *dev,
- 
- 
- /*
-- * "Site survey", here just current channel and noise level
-- */
--
--static int lbs_get_survey(struct wiphy *wiphy, struct net_device *dev,
--	int idx, struct survey_info *survey)
--{
--	struct lbs_private *priv = wiphy_priv(wiphy);
--	s8 signal, noise;
--	int ret;
--
--	if (dev == priv->mesh_dev)
--		return -EOPNOTSUPP;
--
--	if (idx != 0)
--		ret = -ENOENT;
--
--	lbs_deb_enter(LBS_DEB_CFG80211);
--
--	survey->channel = ieee80211_get_channel(wiphy,
--		ieee80211_channel_to_frequency(priv->channel,
--					       IEEE80211_BAND_2GHZ));
--
--	ret = lbs_get_rssi(priv, &signal, &noise);
--	if (ret == 0) {
--		survey->filled = SURVEY_INFO_NOISE_DBM;
--		survey->noise = noise;
--	}
--
--	lbs_deb_leave_args(LBS_DEB_CFG80211, "ret %d", ret);
--	return ret;
--}
--
--
--
--
--/*
-  * Change interface
-  */
- 
-@@ -2063,7 +2027,6 @@ static struct cfg80211_ops lbs_cfg80211_ops = {
- 	.del_key = lbs_cfg_del_key,
- 	.set_default_key = lbs_cfg_set_default_key,
- 	.get_station = lbs_cfg_get_station,
--	.dump_survey = lbs_get_survey,
- 	.change_virtual_intf = lbs_change_intf,
- 	.join_ibss = lbs_join_ibss,
- 	.leave_ibss = lbs_leave_ibss,
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0006-wireless-libertas-remove-redundant-NULL-tests-before.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0006-wireless-libertas-remove-redundant-NULL-tests-before.patch
deleted file mode 100644
index 3927d6e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0006-wireless-libertas-remove-redundant-NULL-tests-before.patch
+++ /dev/null
@@ -1,95 +0,0 @@
-From ae3df364b3ec34ab314bcd058e1d3ae86bb8c16f Mon Sep 17 00:00:00 2001
-From: Jesper Juhl <jj at chaosbits.net>
-Date: Mon, 9 Apr 2012 22:51:07 +0200
-Subject: [PATCH 06/16] wireless, libertas: remove redundant NULL tests before
- calling release_firmware()
-
-release_firmware() tests for, and deals gracefully with, NULL
-pointers. Remove redundant explicit tests before calling the function.
-
-Signed-off-by: Jesper Juhl <jj at chaosbits.net>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_cs.c   |    6 ++----
- drivers/net/wireless/libertas/if_sdio.c |    6 ++----
- drivers/net/wireless/libertas/if_spi.c  |    6 ++----
- drivers/net/wireless/libertas/main.c    |   12 ++++--------
- 4 files changed, 10 insertions(+), 20 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index 234ee88..171a06b 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -951,10 +951,8 @@ out2:
- out1:
- 	pcmcia_disable_device(p_dev);
- out:
--	if (helper)
--		release_firmware(helper);
--	if (mainfw)
--		release_firmware(mainfw);
-+	release_firmware(helper);
-+	release_firmware(mainfw);
- 
- 	lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret);
- 	return ret;
-diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
-index 9804ebc..15bfe2f 100644
---- a/drivers/net/wireless/libertas/if_sdio.c
-+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -751,10 +751,8 @@ success:
- 	ret = 0;
- 
- out:
--	if (helper)
--		release_firmware(helper);
--	if (mainfw)
--		release_firmware(mainfw);
-+	release_firmware(helper);
-+	release_firmware(mainfw);
- 
- 	lbs_deb_leave_args(LBS_DEB_SDIO, "ret %d", ret);
- 	return ret;
-diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c
-index 728baa4..46a668e 100644
---- a/drivers/net/wireless/libertas/if_spi.c
-+++ b/drivers/net/wireless/libertas/if_spi.c
-@@ -1095,10 +1095,8 @@ static int if_spi_init_card(struct if_spi_card *card)
- 		goto out;
- 
- out:
--	if (helper)
--		release_firmware(helper);
--	if (mainfw)
--		release_firmware(mainfw);
-+	release_firmware(helper);
-+	release_firmware(mainfw);
- 
- 	lbs_deb_leave_args(LBS_DEB_SPI, "err %d\n", err);
- 
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index 957681d..3b81b70 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1269,14 +1269,10 @@ int lbs_get_firmware(struct device *dev, const char *user_helper,
- 
-   fail:
- 	/* Failed */
--	if (*helper) {
--		release_firmware(*helper);
--		*helper = NULL;
--	}
--	if (*mainfw) {
--		release_firmware(*mainfw);
--		*mainfw = NULL;
--	}
-+	release_firmware(*helper);
-+	*helper = NULL;
-+	release_firmware(*mainfw);
-+	*mainfw = NULL;
- 
- 	return -ENOENT;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0007-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0007-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch
deleted file mode 100644
index 3a31eb7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0007-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch
+++ /dev/null
@@ -1,48 +0,0 @@
-From 01e8e6be47e98db59320a593d2854b8bcaad7aca Mon Sep 17 00:00:00 2001
-From: Amitkumar Karwar <akarwar at marvell.com>
-Date: Wed, 28 Mar 2012 11:38:01 -0700
-Subject: [PATCH 07/16] libertas: fix signedness bug in lbs_auth_to_authtype()
-
-Return type for lbs_auth_to_authtype() is changed from "u8" to
-"int" to return negative error code correctly.
-Also an error check is added in connect handler for invalid auth
-type.
-
-Reported-by: Dan Carpenter <dan.carpenter at oracle.com>
-Signed-off-by: Amitkumar Karwar <akarwar at marvell.com>
-Signed-off-by: Kiran Divekar <dkiran at marvell.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/cfg.c |    9 +++++++--
- 1 file changed, 7 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/cfg.c b/drivers/net/wireless/libertas/cfg.c
-index 72e2c8e..d5b2177 100644
---- a/drivers/net/wireless/libertas/cfg.c
-+++ b/drivers/net/wireless/libertas/cfg.c
-@@ -103,7 +103,7 @@ static const u32 cipher_suites[] = {
-  * Convert NL80211's auth_type to the one from Libertas, see chapter 5.9.1
-  * in the firmware spec
-  */
--static u8 lbs_auth_to_authtype(enum nl80211_auth_type auth_type)
-+static int lbs_auth_to_authtype(enum nl80211_auth_type auth_type)
- {
- 	int ret = -ENOTSUPP;
- 
-@@ -1408,7 +1408,12 @@ static int lbs_cfg_connect(struct wiphy *wiphy, struct net_device *dev,
- 		goto done;
- 	}
- 
--	lbs_set_authtype(priv, sme);
-+	ret = lbs_set_authtype(priv, sme);
-+	if (ret == -ENOTSUPP) {
-+		wiphy_err(wiphy, "unsupported authtype 0x%x\n", sme->auth_type);
-+		goto done;
-+	}
-+
- 	lbs_set_radio(priv, preamble, 1);
- 
- 	/* Do the actual association */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0008-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0008-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch
deleted file mode 100644
index 302d091..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0008-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From c180cacfac2411fa690d5afbb983b53030102a3e Mon Sep 17 00:00:00 2001
-From: Julia Lawall <Julia.Lawall at lip6.fr>
-Date: Mon, 16 Apr 2012 17:44:00 +0200
-Subject: [PATCH 08/16] drivers/net/wireless/libertas/if_usb.c: add missing
- debugging code
-
-Add a corresponding leave call on error failure.
-
-Signed-off-by: Julia Lawall <Julia.Lawall at lip6.fr>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_usb.c |    6 ++++--
- 1 file changed, 4 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index 74da5f1..ce4938d 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -1128,8 +1128,10 @@ static int if_usb_suspend(struct usb_interface *intf, pm_message_t message)
- 
- 	lbs_deb_enter(LBS_DEB_USB);
- 
--	if (priv->psstate != PS_STATE_FULL_POWER)
--		return -1;
-+	if (priv->psstate != PS_STATE_FULL_POWER) {
-+		ret = -1;
-+		goto out;
-+	}
- 
- #ifdef CONFIG_OLPC
- 	if (machine_is_olpc()) {
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0009-libertas-Firmware-loading-simplifications.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0009-libertas-Firmware-loading-simplifications.patch
deleted file mode 100644
index 0a97c96..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0009-libertas-Firmware-loading-simplifications.patch
+++ /dev/null
@@ -1,618 +0,0 @@
-From d9087fc723bf7947eb149fb657072a8b3f96a532 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:52:42 +0100
-Subject: [PATCH 09/16] libertas: Firmware loading simplifications
-
-Remove the ability to pass module parameters with firmware filenames
-for USB and SDIO interfaces.
-
-Remove the ability to pass custom "user" filenames to lbs_get_firmware().
-
-Remove the ability to reprogram internal device memory with a different
-firmware from the USB driver (we don't know of any users), and simplify
-the OLPC firmware loading quirk to simply placing the OLPC firmware
-at the top of the list (we don't know of any users other than OLPC).
-
-Move lbs_get_firmware() into its own file.
-
-These simplifications should have no real-life effect but make the
-upcoming transition to asynchronous firmware loading considerably less
-painful.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/Makefile   |    1 +
- drivers/net/wireless/libertas/decl.h     |    3 +-
- drivers/net/wireless/libertas/firmware.c |   79 ++++++++++++++
- drivers/net/wireless/libertas/if_cs.c    |    4 +-
- drivers/net/wireless/libertas/if_sdio.c  |   25 +----
- drivers/net/wireless/libertas/if_spi.c   |    5 +-
- drivers/net/wireless/libertas/if_usb.c   |  169 ++----------------------------
- drivers/net/wireless/libertas/main.c     |  101 ------------------
- 8 files changed, 94 insertions(+), 293 deletions(-)
- create mode 100644 drivers/net/wireless/libertas/firmware.c
-
-diff --git a/drivers/net/wireless/libertas/Makefile b/drivers/net/wireless/libertas/Makefile
-index f7d01bf..eac72f7 100644
---- a/drivers/net/wireless/libertas/Makefile
-+++ b/drivers/net/wireless/libertas/Makefile
-@@ -6,6 +6,7 @@ libertas-y += ethtool.o
- libertas-y += main.o
- libertas-y += rx.o
- libertas-y += tx.o
-+libertas-y += firmware.o
- libertas-$(CONFIG_LIBERTAS_MESH) += mesh.o
- 
- usb8xxx-objs += if_usb.o
-diff --git a/drivers/net/wireless/libertas/decl.h b/drivers/net/wireless/libertas/decl.h
-index bc951ab..2fb2e31 100644
---- a/drivers/net/wireless/libertas/decl.h
-+++ b/drivers/net/wireless/libertas/decl.h
-@@ -66,8 +66,7 @@ int lbs_exit_auto_deep_sleep(struct lbs_private *priv);
- u32 lbs_fw_index_to_data_rate(u8 index);
- u8 lbs_data_rate_to_fw_index(u32 rate);
- 
--int lbs_get_firmware(struct device *dev, const char *user_helper,
--			const char *user_mainfw, u32 card_model,
-+int lbs_get_firmware(struct device *dev, u32 card_model,
- 			const struct lbs_fw_table *fw_table,
- 			const struct firmware **helper,
- 			const struct firmware **mainfw);
-diff --git a/drivers/net/wireless/libertas/firmware.c b/drivers/net/wireless/libertas/firmware.c
-new file mode 100644
-index 0000000..0c8c845
---- /dev/null
-+++ b/drivers/net/wireless/libertas/firmware.c
-@@ -0,0 +1,79 @@
-+/*
-+ * Firmware loading and handling functions.
-+ */
-+
-+#include <linux/firmware.h>
-+#include <linux/module.h>
-+
-+#include "decl.h"
-+
-+/**
-+ *  lbs_get_firmware - Retrieves two-stage firmware
-+ *
-+ *  @dev:     	A pointer to &device structure
-+ *  @card_model: Bus-specific card model ID used to filter firmware table
-+ *		elements
-+ *  @fw_table:	Table of firmware file names and device model numbers
-+ *		terminated by an entry with a NULL helper name
-+ *  @helper:	On success, the helper firmware; caller must free
-+ *  @mainfw:	On success, the main firmware; caller must free
-+ *
-+ *  returns:		0 on success, non-zero on failure
-+ */
-+int lbs_get_firmware(struct device *dev, u32 card_model,
-+			const struct lbs_fw_table *fw_table,
-+			const struct firmware **helper,
-+			const struct firmware **mainfw)
-+{
-+	const struct lbs_fw_table *iter;
-+	int ret;
-+
-+	BUG_ON(helper == NULL);
-+	BUG_ON(mainfw == NULL);
-+
-+	/* Search for firmware to use from the table. */
-+	iter = fw_table;
-+	while (iter && iter->helper) {
-+		if (iter->model != card_model)
-+			goto next;
-+
-+		if (*helper == NULL) {
-+			ret = request_firmware(helper, iter->helper, dev);
-+			if (ret)
-+				goto next;
-+
-+			/* If the device has one-stage firmware (ie cf8305) and
-+			 * we've got it then we don't need to bother with the
-+			 * main firmware.
-+			 */
-+			if (iter->fwname == NULL)
-+				return 0;
-+		}
-+
-+		if (*mainfw == NULL) {
-+			ret = request_firmware(mainfw, iter->fwname, dev);
-+			if (ret) {
-+				/* Clear the helper to ensure we don't have
-+				 * mismatched firmware pairs.
-+				 */
-+				release_firmware(*helper);
-+				*helper = NULL;
-+			}
-+		}
-+
-+		if (*helper && *mainfw)
-+			return 0;
-+
-+  next:
-+		iter++;
-+	}
-+
-+	/* Failed */
-+	release_firmware(*helper);
-+	*helper = NULL;
-+	release_firmware(*mainfw);
-+	*mainfw = NULL;
-+
-+	return -ENOENT;
-+}
-+EXPORT_SYMBOL_GPL(lbs_get_firmware);
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index 171a06b..cee5052 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -890,8 +890,8 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 		goto out2;
- 	}
- 
--	ret = lbs_get_firmware(&p_dev->dev, NULL, NULL, card->model,
--				&fw_table[0], &helper, &mainfw);
-+	ret = lbs_get_firmware(&p_dev->dev, card->model, &fw_table[0],
-+				&helper, &mainfw);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto out2;
-diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
-index 15bfe2f..6590feb 100644
---- a/drivers/net/wireless/libertas/if_sdio.c
-+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -65,12 +65,6 @@ static void if_sdio_interrupt(struct sdio_func *func);
-  */
- static u8 user_rmmod;
- 
--static char *lbs_helper_name = NULL;
--module_param_named(helper_name, lbs_helper_name, charp, 0644);
--
--static char *lbs_fw_name = NULL;
--module_param_named(fw_name, lbs_fw_name, charp, 0644);
--
- static const struct sdio_device_id if_sdio_ids[] = {
- 	{ SDIO_DEVICE(SDIO_VENDOR_ID_MARVELL,
- 			SDIO_DEVICE_ID_MARVELL_LIBERTAS) },
-@@ -124,11 +118,6 @@ struct if_sdio_card {
- 	unsigned long		ioport;
- 	unsigned int		scratch_reg;
- 
--	const char		*helper;
--	const char		*firmware;
--	bool			helper_allocated;
--	bool			firmware_allocated;
--
- 	u8			buffer[65536] __attribute__((aligned(4)));
- 
- 	spinlock_t		lock;
-@@ -725,8 +714,8 @@ static int if_sdio_prog_firmware(struct if_sdio_card *card)
- 		goto success;
- 	}
- 
--	ret = lbs_get_firmware(&card->func->dev, lbs_helper_name, lbs_fw_name,
--				card->model, &fw_table[0], &helper, &mainfw);
-+	ret = lbs_get_firmware(&card->func->dev, card->model, &fw_table[0],
-+				&helper, &mainfw);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto out;
-@@ -1242,10 +1231,6 @@ free:
- 		kfree(packet);
- 	}
- 
--	if (card->helper_allocated)
--		kfree(card->helper);
--	if (card->firmware_allocated)
--		kfree(card->firmware);
- 	kfree(card);
- 
- 	goto out;
-@@ -1293,12 +1278,6 @@ static void if_sdio_remove(struct sdio_func *func)
- 		kfree(packet);
- 	}
- 
--	if (card->helper_allocated)
--		kfree(card->helper);
--	if (card->firmware_allocated)
--		kfree(card->firmware);
--	kfree(card);
--
- 	lbs_deb_leave(LBS_DEB_SDIO);
- }
- 
-diff --git a/drivers/net/wireless/libertas/if_spi.c b/drivers/net/wireless/libertas/if_spi.c
-index 46a668e..56b0081 100644
---- a/drivers/net/wireless/libertas/if_spi.c
-+++ b/drivers/net/wireless/libertas/if_spi.c
-@@ -1064,9 +1064,8 @@ static int if_spi_init_card(struct if_spi_card *card)
- 			goto out;
- 		}
- 
--		err = lbs_get_firmware(&card->spi->dev, NULL, NULL,
--					card->card_id, &fw_table[0], &helper,
--					&mainfw);
-+		err = lbs_get_firmware(&card->spi->dev, card->card_id,
-+					&fw_table[0], &helper, &mainfw);
- 		if (err) {
- 			netdev_err(priv->dev, "failed to find firmware (%d)\n",
- 				   err);
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index ce4938d..f29471b 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -29,9 +29,6 @@
- 
- #define MESSAGE_HEADER_LEN	4
- 
--static char *lbs_fw_name = NULL;
--module_param_named(fw_name, lbs_fw_name, charp, 0644);
--
- MODULE_FIRMWARE("libertas/usb8388_v9.bin");
- MODULE_FIRMWARE("libertas/usb8388_v5.bin");
- MODULE_FIRMWARE("libertas/usb8388.bin");
-@@ -55,10 +52,7 @@ MODULE_DEVICE_TABLE(usb, if_usb_table);
- 
- static void if_usb_receive(struct urb *urb);
- static void if_usb_receive_fwload(struct urb *urb);
--static int __if_usb_prog_firmware(struct if_usb_card *cardp,
--					const char *fwname, int cmd);
--static int if_usb_prog_firmware(struct if_usb_card *cardp,
--					const char *fwname, int cmd);
-+static int if_usb_prog_firmware(struct if_usb_card *cardp);
- static int if_usb_host_to_card(struct lbs_private *priv, uint8_t type,
- 			       uint8_t *payload, uint16_t nb);
- static int usb_tx_block(struct if_usb_card *cardp, uint8_t *payload,
-@@ -67,69 +61,6 @@ static void if_usb_free(struct if_usb_card *cardp);
- static int if_usb_submit_rx_urb(struct if_usb_card *cardp);
- static int if_usb_reset_device(struct if_usb_card *cardp);
- 
--/* sysfs hooks */
--
--/*
-- *  Set function to write firmware to device's persistent memory
-- */
--static ssize_t if_usb_firmware_set(struct device *dev,
--		struct device_attribute *attr, const char *buf, size_t count)
--{
--	struct lbs_private *priv = to_net_dev(dev)->ml_priv;
--	struct if_usb_card *cardp = priv->card;
--	int ret;
--
--	BUG_ON(buf == NULL);
--
--	ret = if_usb_prog_firmware(cardp, buf, BOOT_CMD_UPDATE_FW);
--	if (ret == 0)
--		return count;
--
--	return ret;
--}
--
--/*
-- * lbs_flash_fw attribute to be exported per ethX interface through sysfs
-- * (/sys/class/net/ethX/lbs_flash_fw).  Use this like so to write firmware to
-- * the device's persistent memory:
-- * echo usb8388-5.126.0.p5.bin > /sys/class/net/ethX/lbs_flash_fw
-- */
--static DEVICE_ATTR(lbs_flash_fw, 0200, NULL, if_usb_firmware_set);
--
--/**
-- * if_usb_boot2_set - write firmware to device's persistent memory
-- *
-- * @dev: target device
-- * @attr: device attributes
-- * @buf: firmware buffer to write
-- * @count: number of bytes to write
-- *
-- * returns: number of bytes written or negative error code
-- */
--static ssize_t if_usb_boot2_set(struct device *dev,
--		struct device_attribute *attr, const char *buf, size_t count)
--{
--	struct lbs_private *priv = to_net_dev(dev)->ml_priv;
--	struct if_usb_card *cardp = priv->card;
--	int ret;
--
--	BUG_ON(buf == NULL);
--
--	ret = if_usb_prog_firmware(cardp, buf, BOOT_CMD_UPDATE_BOOT2);
--	if (ret == 0)
--		return count;
--
--	return ret;
--}
--
--/*
-- * lbs_flash_boot2 attribute to be exported per ethX interface through sysfs
-- * (/sys/class/net/ethX/lbs_flash_boot2).  Use this like so to write firmware
-- * to the device's persistent memory:
-- * echo usb8388-5.126.0.p5.bin > /sys/class/net/ethX/lbs_flash_boot2
-- */
--static DEVICE_ATTR(lbs_flash_boot2, 0200, NULL, if_usb_boot2_set);
--
- /**
-  * if_usb_write_bulk_callback - callback function to handle the status
-  * of the URB
-@@ -314,13 +245,10 @@ static int if_usb_probe(struct usb_interface *intf,
- 	}
- 
- 	/* Upload firmware */
--	kparam_block_sysfs_write(fw_name);
--	if (__if_usb_prog_firmware(cardp, lbs_fw_name, BOOT_CMD_FW_BY_USB)) {
--		kparam_unblock_sysfs_write(fw_name);
-+	if (if_usb_prog_firmware(cardp)) {
- 		lbs_deb_usbd(&udev->dev, "FW upload failed\n");
- 		goto err_prog_firmware;
- 	}
--	kparam_unblock_sysfs_write(fw_name);
- 
- 	if (!(priv = lbs_add_card(cardp, &intf->dev)))
- 		goto err_prog_firmware;
-@@ -349,14 +277,6 @@ static int if_usb_probe(struct usb_interface *intf,
- 	usb_get_dev(udev);
- 	usb_set_intfdata(intf, cardp);
- 
--	if (device_create_file(&priv->dev->dev, &dev_attr_lbs_flash_fw))
--		netdev_err(priv->dev,
--			   "cannot register lbs_flash_fw attribute\n");
--
--	if (device_create_file(&priv->dev->dev, &dev_attr_lbs_flash_boot2))
--		netdev_err(priv->dev,
--			   "cannot register lbs_flash_boot2 attribute\n");
--
- 	/*
- 	 * EHS_REMOVE_WAKEUP is not supported on all versions of the firmware.
- 	 */
-@@ -389,9 +309,6 @@ static void if_usb_disconnect(struct usb_interface *intf)
- 
- 	lbs_deb_enter(LBS_DEB_MAIN);
- 
--	device_remove_file(&priv->dev->dev, &dev_attr_lbs_flash_boot2);
--	device_remove_file(&priv->dev->dev, &dev_attr_lbs_flash_fw);
--
- 	cardp->surprise_removed = 1;
- 
- 	if (priv) {
-@@ -912,58 +829,12 @@ static int check_fwfile_format(const uint8_t *data, uint32_t totlen)
- 	return ret;
- }
- 
--
--/**
--*  if_usb_prog_firmware - programs the firmware subject to cmd
--*
--*  @cardp:	the if_usb_card descriptor
--*  @fwname:	firmware or boot2 image file name
--*  @cmd:	either BOOT_CMD_FW_BY_USB, BOOT_CMD_UPDATE_FW,
--*		or BOOT_CMD_UPDATE_BOOT2.
--*  returns:	0 or error code
--*/
--static int if_usb_prog_firmware(struct if_usb_card *cardp,
--				const char *fwname, int cmd)
--{
--	struct lbs_private *priv = cardp->priv;
--	unsigned long flags, caps;
--	int ret;
--
--	caps = priv->fwcapinfo;
--	if (((cmd == BOOT_CMD_UPDATE_FW) && !(caps & FW_CAPINFO_FIRMWARE_UPGRADE)) ||
--	    ((cmd == BOOT_CMD_UPDATE_BOOT2) && !(caps & FW_CAPINFO_BOOT2_UPGRADE)))
--		return -EOPNOTSUPP;
--
--	/* Ensure main thread is idle. */
--	spin_lock_irqsave(&priv->driver_lock, flags);
--	while (priv->cur_cmd != NULL || priv->dnld_sent != DNLD_RES_RECEIVED) {
--		spin_unlock_irqrestore(&priv->driver_lock, flags);
--		if (wait_event_interruptible(priv->waitq,
--				(priv->cur_cmd == NULL &&
--				priv->dnld_sent == DNLD_RES_RECEIVED))) {
--			return -ERESTARTSYS;
--		}
--		spin_lock_irqsave(&priv->driver_lock, flags);
--	}
--	priv->dnld_sent = DNLD_BOOTCMD_SENT;
--	spin_unlock_irqrestore(&priv->driver_lock, flags);
--
--	ret = __if_usb_prog_firmware(cardp, fwname, cmd);
--
--	spin_lock_irqsave(&priv->driver_lock, flags);
--	priv->dnld_sent = DNLD_RES_RECEIVED;
--	spin_unlock_irqrestore(&priv->driver_lock, flags);
--
--	wake_up(&priv->waitq);
--
--	return ret;
--}
--
- /* table of firmware file names */
- static const struct {
- 	u32 model;
- 	const char *fwname;
- } fw_table[] = {
-+	{ MODEL_8388, "libertas/usb8388_olpc.bin" },
- 	{ MODEL_8388, "libertas/usb8388_v9.bin" },
- 	{ MODEL_8388, "libertas/usb8388_v5.bin" },
- 	{ MODEL_8388, "libertas/usb8388.bin" },
-@@ -971,35 +842,10 @@ static const struct {
- 	{ MODEL_8682, "libertas/usb8682.bin" }
- };
- 
--#ifdef CONFIG_OLPC
--
--static int try_olpc_fw(struct if_usb_card *cardp)
--{
--	int retval = -ENOENT;
--
--	/* try the OLPC firmware first; fall back to fw_table list */
--	if (machine_is_olpc() && cardp->model == MODEL_8388)
--		retval = request_firmware(&cardp->fw,
--				"libertas/usb8388_olpc.bin", &cardp->udev->dev);
--	return retval;
--}
--
--#else
--static int try_olpc_fw(struct if_usb_card *cardp) { return -ENOENT; }
--#endif /* !CONFIG_OLPC */
--
--static int get_fw(struct if_usb_card *cardp, const char *fwname)
-+static int get_fw(struct if_usb_card *cardp)
- {
- 	int i;
- 
--	/* Try user-specified firmware first */
--	if (fwname)
--		return request_firmware(&cardp->fw, fwname, &cardp->udev->dev);
--
--	/* Handle OLPC firmware */
--	if (try_olpc_fw(cardp) == 0)
--		return 0;
--
- 	/* Otherwise search for firmware to use */
- 	for (i = 0; i < ARRAY_SIZE(fw_table); i++) {
- 		if (fw_table[i].model != cardp->model)
-@@ -1012,8 +858,7 @@ static int get_fw(struct if_usb_card *cardp, const char *fwname)
- 	return -ENOENT;
- }
- 
--static int __if_usb_prog_firmware(struct if_usb_card *cardp,
--					const char *fwname, int cmd)
-+static int if_usb_prog_firmware(struct if_usb_card *cardp)
- {
- 	int i = 0;
- 	static int reset_count = 10;
-@@ -1021,7 +866,7 @@ static int __if_usb_prog_firmware(struct if_usb_card *cardp,
- 
- 	lbs_deb_enter(LBS_DEB_USB);
- 
--	ret = get_fw(cardp, fwname);
-+	ret = get_fw(cardp);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto done;
-@@ -1053,7 +898,7 @@ restart:
- 	do {
- 		int j = 0;
- 		i++;
--		if_usb_issue_boot_command(cardp, cmd);
-+		if_usb_issue_boot_command(cardp, BOOT_CMD_FW_BY_USB);
- 		/* wait for command response */
- 		do {
- 			j++;
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index 3b81b70..fa09585 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1177,107 +1177,6 @@ void lbs_notify_command_response(struct lbs_private *priv, u8 resp_idx)
- }
- EXPORT_SYMBOL_GPL(lbs_notify_command_response);
- 
--/**
-- *  lbs_get_firmware - Retrieves two-stage firmware
-- *
-- *  @dev:     	A pointer to &device structure
-- *  @user_helper: User-defined helper firmware file
-- *  @user_mainfw: User-defined main firmware file
-- *  @card_model: Bus-specific card model ID used to filter firmware table
-- *		elements
-- *  @fw_table:	Table of firmware file names and device model numbers
-- *		terminated by an entry with a NULL helper name
-- *  @helper:	On success, the helper firmware; caller must free
-- *  @mainfw:	On success, the main firmware; caller must free
-- *
-- *  returns:		0 on success, non-zero on failure
-- */
--int lbs_get_firmware(struct device *dev, const char *user_helper,
--			const char *user_mainfw, u32 card_model,
--			const struct lbs_fw_table *fw_table,
--			const struct firmware **helper,
--			const struct firmware **mainfw)
--{
--	const struct lbs_fw_table *iter;
--	int ret;
--
--	BUG_ON(helper == NULL);
--	BUG_ON(mainfw == NULL);
--
--	/* Try user-specified firmware first */
--	if (user_helper) {
--		ret = request_firmware(helper, user_helper, dev);
--		if (ret) {
--			dev_err(dev, "couldn't find helper firmware %s\n",
--				user_helper);
--			goto fail;
--		}
--	}
--	if (user_mainfw) {
--		ret = request_firmware(mainfw, user_mainfw, dev);
--		if (ret) {
--			dev_err(dev, "couldn't find main firmware %s\n",
--				user_mainfw);
--			goto fail;
--		}
--	}
--
--	if (*helper && *mainfw)
--		return 0;
--
--	/* Otherwise search for firmware to use.  If neither the helper or
--	 * the main firmware were specified by the user, then we need to
--	 * make sure that found helper & main are from the same entry in
--	 * fw_table.
--	 */
--	iter = fw_table;
--	while (iter && iter->helper) {
--		if (iter->model != card_model)
--			goto next;
--
--		if (*helper == NULL) {
--			ret = request_firmware(helper, iter->helper, dev);
--			if (ret)
--				goto next;
--
--			/* If the device has one-stage firmware (ie cf8305) and
--			 * we've got it then we don't need to bother with the
--			 * main firmware.
--			 */
--			if (iter->fwname == NULL)
--				return 0;
--		}
--
--		if (*mainfw == NULL) {
--			ret = request_firmware(mainfw, iter->fwname, dev);
--			if (ret && !user_helper) {
--				/* Clear the helper if it wasn't user-specified
--				 * and the main firmware load failed, to ensure
--				 * we don't have mismatched firmware pairs.
--				 */
--				release_firmware(*helper);
--				*helper = NULL;
--			}
--		}
--
--		if (*helper && *mainfw)
--			return 0;
--
--  next:
--		iter++;
--	}
--
--  fail:
--	/* Failed */
--	release_firmware(*helper);
--	*helper = NULL;
--	release_firmware(*mainfw);
--	*mainfw = NULL;
--
--	return -ENOENT;
--}
--EXPORT_SYMBOL_GPL(lbs_get_firmware);
--
- static int __init lbs_init_module(void)
- {
- 	lbs_deb_enter(LBS_DEB_MAIN);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0010-libertas-harden-up-exit-paths.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0010-libertas-harden-up-exit-paths.patch
deleted file mode 100644
index 6560442..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0010-libertas-harden-up-exit-paths.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 0afc10c9a90bdda020d6a8c03e3bfbb1103cdc5e Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:02 +0100
-Subject: [PATCH 10/16] libertas: harden-up exit paths
-
-These simple sanity check avoids extra complexity in error paths when
-moving to asynchronous firmware loading (which means the device may fail to
-init some time after its creation).
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/main.c |    9 ++++++++-
- 1 file changed, 8 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index fa09585..7eaf992 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -1033,7 +1033,9 @@ void lbs_remove_card(struct lbs_private *priv)
- 	lbs_deb_enter(LBS_DEB_MAIN);
- 
- 	lbs_remove_mesh(priv);
--	lbs_scan_deinit(priv);
-+
-+	if (priv->wiphy_registered)
-+		lbs_scan_deinit(priv);
- 
- 	/* worker thread destruction blocks on the in-flight command which
- 	 * should have been cleared already in lbs_stop_card().
-@@ -1128,6 +1130,11 @@ void lbs_stop_card(struct lbs_private *priv)
- 		goto out;
- 	dev = priv->dev;
- 
-+	/* If the netdev isn't registered, it means that lbs_start_card() was
-+	 * never called so we have nothing to do here. */
-+	if (dev->reg_state != NETREG_REGISTERED)
-+		goto out;
-+
- 	netif_stop_queue(dev);
- 	netif_carrier_off(dev);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0011-libertas-add-asynchronous-firmware-loading-capabilit.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0011-libertas-add-asynchronous-firmware-loading-capabilit.patch
deleted file mode 100644
index 4a31410..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0011-libertas-add-asynchronous-firmware-loading-capabilit.patch
+++ /dev/null
@@ -1,269 +0,0 @@
-From fb2e4573ebd25fff393594d8795bfd27bffee345 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:26 +0100
-Subject: [PATCH 11/16] libertas: add asynchronous firmware loading capability
-
-As described at
-http://article.gmane.org/gmane.linux.kernel.wireless.general/86084
-libertas is taking a long time to load because it loads firmware
-during module loading.
-
-Add a new API for interface drivers to load their firmware
-asynchronously. The same semantics of the firmware table are followed
-like before.
-
-Interface drivers will be converted in follow-up patches, then we can
-remove the old, synchronous firmware loading function.
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/decl.h     |    8 ++
- drivers/net/wireless/libertas/dev.h      |   10 +++
- drivers/net/wireless/libertas/firmware.c |  143 ++++++++++++++++++++++++++++++
- drivers/net/wireless/libertas/main.c     |    3 +
- 4 files changed, 164 insertions(+)
-
-diff --git a/drivers/net/wireless/libertas/decl.h b/drivers/net/wireless/libertas/decl.h
-index 2fb2e31..84a3aa7 100644
---- a/drivers/net/wireless/libertas/decl.h
-+++ b/drivers/net/wireless/libertas/decl.h
-@@ -19,6 +19,10 @@ struct lbs_fw_table {
- };
- 
- struct lbs_private;
-+typedef void (*lbs_fw_cb)(struct lbs_private *priv, int ret,
-+		const struct firmware *helper, const struct firmware *mainfw);
-+
-+struct lbs_private;
- struct sk_buff;
- struct net_device;
- struct cmd_ds_command;
-@@ -70,5 +74,9 @@ int lbs_get_firmware(struct device *dev, u32 card_model,
- 			const struct lbs_fw_table *fw_table,
- 			const struct firmware **helper,
- 			const struct firmware **mainfw);
-+int lbs_get_firmware_async(struct lbs_private *priv, struct device *device,
-+			   u32 card_model, const struct lbs_fw_table *fw_table,
-+			   lbs_fw_cb callback);
-+void lbs_wait_for_firmware_load(struct lbs_private *priv);
- 
- #endif
-diff --git a/drivers/net/wireless/libertas/dev.h b/drivers/net/wireless/libertas/dev.h
-index f3fd447..6720054 100644
---- a/drivers/net/wireless/libertas/dev.h
-+++ b/drivers/net/wireless/libertas/dev.h
-@@ -7,6 +7,7 @@
- #define _LBS_DEV_H_
- 
- #include "defs.h"
-+#include "decl.h"
- #include "host.h"
- 
- #include <linux/kfifo.h>
-@@ -180,6 +181,15 @@ struct lbs_private {
- 	wait_queue_head_t scan_q;
- 	/* Whether the scan was initiated internally and not by cfg80211 */
- 	bool internal_scan;
-+
-+	/* Firmware load */
-+	u32 fw_model;
-+	wait_queue_head_t fw_waitq;
-+	struct device *fw_device;
-+	const struct firmware *helper_fw;
-+	const struct lbs_fw_table *fw_table;
-+	const struct lbs_fw_table *fw_iter;
-+	lbs_fw_cb fw_callback;
- };
- 
- extern struct cmd_confirm_sleep confirm_sleep;
-diff --git a/drivers/net/wireless/libertas/firmware.c b/drivers/net/wireless/libertas/firmware.c
-index 0c8c845..cd23f1a 100644
---- a/drivers/net/wireless/libertas/firmware.c
-+++ b/drivers/net/wireless/libertas/firmware.c
-@@ -3,10 +3,151 @@
-  */
- 
- #include <linux/firmware.h>
-+#include <linux/firmware.h>
- #include <linux/module.h>
- 
-+#include "dev.h"
- #include "decl.h"
- 
-+static void load_next_firmware_from_table(struct lbs_private *private);
-+
-+static void lbs_fw_loaded(struct lbs_private *priv, int ret,
-+	const struct firmware *helper, const struct firmware *mainfw)
-+{
-+	unsigned long flags;
-+
-+	lbs_deb_fw("firmware load complete, code %d\n", ret);
-+
-+	/* User must free helper/mainfw */
-+	priv->fw_callback(priv, ret, helper, mainfw);
-+
-+	spin_lock_irqsave(&priv->driver_lock, flags);
-+	priv->fw_callback = NULL;
-+	wake_up(&priv->fw_waitq);
-+	spin_unlock_irqrestore(&priv->driver_lock, flags);
-+}
-+
-+static void do_load_firmware(struct lbs_private *priv, const char *name,
-+	void (*cb)(const struct firmware *fw, void *context))
-+{
-+	int ret;
-+
-+	lbs_deb_fw("Requesting %s\n", name);
-+	ret = request_firmware_nowait(THIS_MODULE, true, name,
-+			priv->fw_device, GFP_KERNEL, priv, cb);
-+	if (ret) {
-+		lbs_deb_fw("request_firmware_nowait error %d\n", ret);
-+		lbs_fw_loaded(priv, ret, NULL, NULL);
-+	}
-+}
-+
-+static void main_firmware_cb(const struct firmware *firmware, void *context)
-+{
-+	struct lbs_private *priv = context;
-+
-+	if (!firmware) {
-+		/* Failed to find firmware: try next table entry */
-+		load_next_firmware_from_table(priv);
-+		return;
-+	}
-+
-+	/* Firmware found! */
-+	lbs_fw_loaded(priv, 0, priv->helper_fw, firmware);
-+}
-+
-+static void helper_firmware_cb(const struct firmware *firmware, void *context)
-+{
-+	struct lbs_private *priv = context;
-+
-+	if (!firmware) {
-+		/* Failed to find firmware: try next table entry */
-+		load_next_firmware_from_table(priv);
-+		return;
-+	}
-+
-+	/* Firmware found! */
-+	if (priv->fw_iter->fwname) {
-+		priv->helper_fw = firmware;
-+		do_load_firmware(priv, priv->fw_iter->fwname, main_firmware_cb);
-+	} else {
-+		/* No main firmware needed for this helper --> success! */
-+		lbs_fw_loaded(priv, 0, firmware, NULL);
-+	}
-+}
-+
-+static void load_next_firmware_from_table(struct lbs_private *priv)
-+{
-+	const struct lbs_fw_table *iter;
-+
-+	if (!priv->fw_iter)
-+		iter = priv->fw_table;
-+	else
-+		iter = ++priv->fw_iter;
-+
-+	if (priv->helper_fw) {
-+		release_firmware(priv->helper_fw);
-+		priv->helper_fw = NULL;
-+	}
-+
-+next:
-+	if (!iter->helper) {
-+		/* End of table hit. */
-+		lbs_fw_loaded(priv, -ENOENT, NULL, NULL);
-+		return;
-+	}
-+
-+	if (iter->model != priv->fw_model) {
-+		iter++;
-+		goto next;
-+	}
-+
-+	priv->fw_iter = iter;
-+	do_load_firmware(priv, iter->helper, helper_firmware_cb);
-+}
-+
-+void lbs_wait_for_firmware_load(struct lbs_private *priv)
-+{
-+	wait_event(priv->fw_waitq, priv->fw_callback == NULL);
-+}
-+
-+/**
-+ *  lbs_get_firmware_async - Retrieves firmware asynchronously. Can load
-+ *  either a helper firmware and a main firmware (2-stage), or just the helper.
-+ *
-+ *  @priv:      Pointer to lbs_private instance
-+ *  @dev:     	A pointer to &device structure
-+ *  @card_model: Bus-specific card model ID used to filter firmware table
-+ *		elements
-+ *  @fw_table:	Table of firmware file names and device model numbers
-+ *		terminated by an entry with a NULL helper name
-+ *	@callback: User callback to invoke when firmware load succeeds or fails.
-+ */
-+int lbs_get_firmware_async(struct lbs_private *priv, struct device *device,
-+			    u32 card_model, const struct lbs_fw_table *fw_table,
-+			    lbs_fw_cb callback)
-+{
-+	unsigned long flags;
-+
-+	spin_lock_irqsave(&priv->driver_lock, flags);
-+	if (priv->fw_callback) {
-+		lbs_deb_fw("firmware load already in progress\n");
-+		spin_unlock_irqrestore(&priv->driver_lock, flags);
-+		return -EBUSY;
-+	}
-+
-+	priv->fw_device = device;
-+	priv->fw_callback = callback;
-+	priv->fw_table = fw_table;
-+	priv->fw_iter = NULL;
-+	priv->fw_model = card_model;
-+	spin_unlock_irqrestore(&priv->driver_lock, flags);
-+
-+	lbs_deb_fw("Starting async firmware load\n");
-+	load_next_firmware_from_table(priv);
-+	return 0;
-+}
-+EXPORT_SYMBOL_GPL(lbs_get_firmware_async);
-+
- /**
-  *  lbs_get_firmware - Retrieves two-stage firmware
-  *
-@@ -18,6 +159,8 @@
-  *  @helper:	On success, the helper firmware; caller must free
-  *  @mainfw:	On success, the main firmware; caller must free
-  *
-+ * Deprecated: use lbs_get_firmware_async() instead.
-+ *
-  *  returns:		0 on success, non-zero on failure
-  */
- int lbs_get_firmware(struct device *dev, u32 card_model,
-diff --git a/drivers/net/wireless/libertas/main.c b/drivers/net/wireless/libertas/main.c
-index 7eaf992..e96ee0a 100644
---- a/drivers/net/wireless/libertas/main.c
-+++ b/drivers/net/wireless/libertas/main.c
-@@ -878,6 +878,7 @@ static int lbs_init_adapter(struct lbs_private *priv)
- 	priv->is_host_sleep_configured = 0;
- 	priv->is_host_sleep_activated = 0;
- 	init_waitqueue_head(&priv->host_sleep_q);
-+	init_waitqueue_head(&priv->fw_waitq);
- 	mutex_init(&priv->lock);
- 
- 	setup_timer(&priv->command_timer, lbs_cmd_timeout_handler,
-@@ -1037,6 +1038,8 @@ void lbs_remove_card(struct lbs_private *priv)
- 	if (priv->wiphy_registered)
- 		lbs_scan_deinit(priv);
- 
-+	lbs_wait_for_firmware_load(priv);
-+
- 	/* worker thread destruction blocks on the in-flight command which
- 	 * should have been cleared already in lbs_stop_card().
- 	 */
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0012-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0012-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch
deleted file mode 100644
index f02684e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0012-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch
+++ /dev/null
@@ -1,320 +0,0 @@
-From f7b34bebb4f8b39535cf5decdab7134ffdf69186 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:43 +0100
-Subject: [PATCH 12/16] libertas SDIO: convert to asynchronous firmware
- loading
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_sdio.c |  206 ++++++++++++++++++-------------
- 1 file changed, 121 insertions(+), 85 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_sdio.c b/drivers/net/wireless/libertas/if_sdio.c
-index 6590feb..76caeba 100644
---- a/drivers/net/wireless/libertas/if_sdio.c
-+++ b/drivers/net/wireless/libertas/if_sdio.c
-@@ -117,6 +117,8 @@ struct if_sdio_card {
- 	int			model;
- 	unsigned long		ioport;
- 	unsigned int		scratch_reg;
-+	bool			started;
-+	wait_queue_head_t	pwron_waitq;
- 
- 	u8			buffer[65536] __attribute__((aligned(4)));
- 
-@@ -129,6 +131,9 @@ struct if_sdio_card {
- 	u8			rx_unit;
- };
- 
-+static void if_sdio_finish_power_on(struct if_sdio_card *card);
-+static int if_sdio_power_off(struct if_sdio_card *card);
-+
- /********************************************************************/
- /* I/O                                                              */
- /********************************************************************/
-@@ -669,12 +674,39 @@ out:
- 	return ret;
- }
- 
-+static void if_sdio_do_prog_firmware(struct lbs_private *priv, int ret,
-+				     const struct firmware *helper,
-+				     const struct firmware *mainfw)
-+{
-+	struct if_sdio_card *card = priv->card;
-+
-+	if (ret) {
-+		pr_err("failed to find firmware (%d)\n", ret);
-+		return;
-+	}
-+
-+	ret = if_sdio_prog_helper(card, helper);
-+	if (ret)
-+		goto out;
-+
-+	lbs_deb_sdio("Helper firmware loaded\n");
-+
-+	ret = if_sdio_prog_real(card, mainfw);
-+	if (ret)
-+		goto out;
-+
-+	lbs_deb_sdio("Firmware loaded\n");
-+	if_sdio_finish_power_on(card);
-+
-+out:
-+	release_firmware(helper);
-+	release_firmware(mainfw);
-+}
-+
- static int if_sdio_prog_firmware(struct if_sdio_card *card)
- {
- 	int ret;
- 	u16 scratch;
--	const struct firmware *helper = NULL;
--	const struct firmware *mainfw = NULL;
- 
- 	lbs_deb_enter(LBS_DEB_SDIO);
- 
-@@ -708,41 +740,18 @@ static int if_sdio_prog_firmware(struct if_sdio_card *card)
- 	 */
- 	if (scratch == IF_SDIO_FIRMWARE_OK) {
- 		lbs_deb_sdio("firmware already loaded\n");
--		goto success;
-+		if_sdio_finish_power_on(card);
-+		return 0;
- 	} else if ((card->model == MODEL_8686) && (scratch & 0x7fff)) {
- 		lbs_deb_sdio("firmware may be running\n");
--		goto success;
--	}
--
--	ret = lbs_get_firmware(&card->func->dev, card->model, &fw_table[0],
--				&helper, &mainfw);
--	if (ret) {
--		pr_err("failed to find firmware (%d)\n", ret);
--		goto out;
-+		if_sdio_finish_power_on(card);
-+		return 0;
- 	}
- 
--	ret = if_sdio_prog_helper(card, helper);
--	if (ret)
--		goto out;
--
--	lbs_deb_sdio("Helper firmware loaded\n");
--
--	ret = if_sdio_prog_real(card, mainfw);
--	if (ret)
--		goto out;
--
--	lbs_deb_sdio("Firmware loaded\n");
--
--success:
--	sdio_claim_host(card->func);
--	sdio_set_block_size(card->func, IF_SDIO_BLOCK_SIZE);
--	sdio_release_host(card->func);
--	ret = 0;
-+	ret = lbs_get_firmware_async(card->priv, &card->func->dev, card->model,
-+				     fw_table, if_sdio_do_prog_firmware);
- 
- out:
--	release_firmware(helper);
--	release_firmware(mainfw);
--
- 	lbs_deb_leave_args(LBS_DEB_SDIO, "ret %d", ret);
- 	return ret;
- }
-@@ -751,55 +760,15 @@ out:
- /* Power management                                                 */
- /********************************************************************/
- 
--static int if_sdio_power_on(struct if_sdio_card *card)
-+/* Finish power on sequence (after firmware is loaded) */
-+static void if_sdio_finish_power_on(struct if_sdio_card *card)
- {
- 	struct sdio_func *func = card->func;
- 	struct lbs_private *priv = card->priv;
--	struct mmc_host *host = func->card->host;
- 	int ret;
- 
- 	sdio_claim_host(func);
--
--	ret = sdio_enable_func(func);
--	if (ret)
--		goto release;
--
--	/* For 1-bit transfers to the 8686 model, we need to enable the
--	 * interrupt flag in the CCCR register. Set the MMC_QUIRK_LENIENT_FN0
--	 * bit to allow access to non-vendor registers. */
--	if ((card->model == MODEL_8686) &&
--	    (host->caps & MMC_CAP_SDIO_IRQ) &&
--	    (host->ios.bus_width == MMC_BUS_WIDTH_1)) {
--		u8 reg;
--
--		func->card->quirks |= MMC_QUIRK_LENIENT_FN0;
--		reg = sdio_f0_readb(func, SDIO_CCCR_IF, &ret);
--		if (ret)
--			goto disable;
--
--		reg |= SDIO_BUS_ECSI;
--		sdio_f0_writeb(func, reg, SDIO_CCCR_IF, &ret);
--		if (ret)
--			goto disable;
--	}
--
--	card->ioport = sdio_readb(func, IF_SDIO_IOPORT, &ret);
--	if (ret)
--		goto disable;
--
--	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 1, &ret) << 8;
--	if (ret)
--		goto disable;
--
--	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 2, &ret) << 16;
--	if (ret)
--		goto disable;
--
--	sdio_release_host(func);
--	ret = if_sdio_prog_firmware(card);
--	sdio_claim_host(func);
--	if (ret)
--		goto disable;
-+	sdio_set_block_size(card->func, IF_SDIO_BLOCK_SIZE);
- 
- 	/*
- 	 * Get rx_unit if the chip is SD8688 or newer.
-@@ -824,7 +793,7 @@ static int if_sdio_power_on(struct if_sdio_card *card)
- 	 */
- 	ret = sdio_claim_irq(func, if_sdio_interrupt);
- 	if (ret)
--		goto disable;
-+		goto release;
- 
- 	/*
- 	 * Enable interrupts now that everything is set up
-@@ -850,11 +819,79 @@ static int if_sdio_power_on(struct if_sdio_card *card)
- 	}
- 
- 	priv->fw_ready = 1;
-+	wake_up(&card->pwron_waitq);
- 
--	return 0;
-+	if (!card->started) {
-+		ret = lbs_start_card(priv);
-+		if_sdio_power_off(card);
-+		if (ret == 0) {
-+			card->started = true;
-+			/* Tell PM core that we don't need the card to be
-+			 * powered now */
-+			pm_runtime_put_noidle(&func->dev);
-+		}
-+	}
-+
-+	return;
- 
- release_irq:
- 	sdio_release_irq(func);
-+release:
-+	sdio_release_host(func);
-+}
-+
-+static int if_sdio_power_on(struct if_sdio_card *card)
-+{
-+	struct sdio_func *func = card->func;
-+	struct mmc_host *host = func->card->host;
-+	int ret;
-+
-+	sdio_claim_host(func);
-+
-+	ret = sdio_enable_func(func);
-+	if (ret)
-+		goto release;
-+
-+	/* For 1-bit transfers to the 8686 model, we need to enable the
-+	 * interrupt flag in the CCCR register. Set the MMC_QUIRK_LENIENT_FN0
-+	 * bit to allow access to non-vendor registers. */
-+	if ((card->model == MODEL_8686) &&
-+	    (host->caps & MMC_CAP_SDIO_IRQ) &&
-+	    (host->ios.bus_width == MMC_BUS_WIDTH_1)) {
-+		u8 reg;
-+
-+		func->card->quirks |= MMC_QUIRK_LENIENT_FN0;
-+		reg = sdio_f0_readb(func, SDIO_CCCR_IF, &ret);
-+		if (ret)
-+			goto disable;
-+
-+		reg |= SDIO_BUS_ECSI;
-+		sdio_f0_writeb(func, reg, SDIO_CCCR_IF, &ret);
-+		if (ret)
-+			goto disable;
-+	}
-+
-+	card->ioport = sdio_readb(func, IF_SDIO_IOPORT, &ret);
-+	if (ret)
-+		goto disable;
-+
-+	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 1, &ret) << 8;
-+	if (ret)
-+		goto disable;
-+
-+	card->ioport |= sdio_readb(func, IF_SDIO_IOPORT + 2, &ret) << 16;
-+	if (ret)
-+		goto disable;
-+
-+	sdio_release_host(func);
-+	ret = if_sdio_prog_firmware(card);
-+	if (ret) {
-+		sdio_disable_func(func);
-+		return ret;
-+	}
-+
-+	return 0;
-+
- disable:
- 	sdio_disable_func(func);
- release:
-@@ -1061,11 +1098,17 @@ static int if_sdio_power_save(struct lbs_private *priv)
- static int if_sdio_power_restore(struct lbs_private *priv)
- {
- 	struct if_sdio_card *card = priv->card;
-+	int r;
- 
- 	/* Make sure the card will not be powered off by runtime PM */
- 	pm_runtime_get_sync(&card->func->dev);
- 
--	return if_sdio_power_on(card);
-+	r = if_sdio_power_on(card);
-+	if (r)
-+		return r;
-+
-+	wait_event(card->pwron_waitq, priv->fw_ready);
-+	return 0;
- }
- 
- 
-@@ -1166,6 +1209,7 @@ static int if_sdio_probe(struct sdio_func *func,
- 	spin_lock_init(&card->lock);
- 	card->workqueue = create_workqueue("libertas_sdio");
- 	INIT_WORK(&card->packet_worker, if_sdio_host_to_card_worker);
-+	init_waitqueue_head(&card->pwron_waitq);
- 
- 	/* Check if we support this card */
- 	for (i = 0; i < ARRAY_SIZE(fw_table); i++) {
-@@ -1207,14 +1251,6 @@ static int if_sdio_probe(struct sdio_func *func,
- 	if (ret)
- 		goto err_activate_card;
- 
--	ret = lbs_start_card(priv);
--	if_sdio_power_off(card);
--	if (ret)
--		goto err_activate_card;
--
--	/* Tell PM core that we don't need the card to be powered now */
--	pm_runtime_put_noidle(&func->dev);
--
- out:
- 	lbs_deb_leave_args(LBS_DEB_SDIO, "ret %d", ret);
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0013-libertas-USB-convert-to-asynchronous-firmware-loadin.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0013-libertas-USB-convert-to-asynchronous-firmware-loadin.patch
deleted file mode 100644
index b8cffc2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0013-libertas-USB-convert-to-asynchronous-firmware-loadin.patch
+++ /dev/null
@@ -1,201 +0,0 @@
-From b42ea4e3a1fa84b7de451e96e09067b95354f6f5 Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Mon, 16 Apr 2012 23:53:55 +0100
-Subject: [PATCH 13/16] libertas USB: convert to asynchronous firmware loading
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_usb.c |  102 ++++++++++++++------------------
- 1 file changed, 43 insertions(+), 59 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_usb.c b/drivers/net/wireless/libertas/if_usb.c
-index f29471b..75403e6 100644
---- a/drivers/net/wireless/libertas/if_usb.c
-+++ b/drivers/net/wireless/libertas/if_usb.c
-@@ -41,6 +41,16 @@ enum {
- 	MODEL_8682 = 0x2
- };
- 
-+/* table of firmware file names */
-+static const struct lbs_fw_table fw_table[] = {
-+	{ MODEL_8388, "libertas/usb8388_olpc.bin", NULL },
-+	{ MODEL_8388, "libertas/usb8388_v9.bin", NULL },
-+	{ MODEL_8388, "libertas/usb8388_v5.bin", NULL },
-+	{ MODEL_8388, "libertas/usb8388.bin", NULL },
-+	{ MODEL_8388, "usb8388.bin", NULL },
-+	{ MODEL_8682, "libertas/usb8682.bin", NULL }
-+};
-+
- static struct usb_device_id if_usb_table[] = {
- 	/* Enter the device signature inside */
- 	{ USB_DEVICE(0x1286, 0x2001), .driver_info = MODEL_8388 },
-@@ -52,7 +62,9 @@ MODULE_DEVICE_TABLE(usb, if_usb_table);
- 
- static void if_usb_receive(struct urb *urb);
- static void if_usb_receive_fwload(struct urb *urb);
--static int if_usb_prog_firmware(struct if_usb_card *cardp);
-+static void if_usb_prog_firmware(struct lbs_private *priv, int ret,
-+				 const struct firmware *fw,
-+				 const struct firmware *unused);
- static int if_usb_host_to_card(struct lbs_private *priv, uint8_t type,
- 			       uint8_t *payload, uint16_t nb);
- static int usb_tx_block(struct if_usb_card *cardp, uint8_t *payload,
-@@ -187,6 +199,7 @@ static int if_usb_probe(struct usb_interface *intf,
- 	struct usb_endpoint_descriptor *endpoint;
- 	struct lbs_private *priv;
- 	struct if_usb_card *cardp;
-+	int r = -ENOMEM;
- 	int i;
- 
- 	udev = interface_to_usbdev(intf);
-@@ -244,17 +257,10 @@ static int if_usb_probe(struct usb_interface *intf,
- 		goto dealloc;
- 	}
- 
--	/* Upload firmware */
--	if (if_usb_prog_firmware(cardp)) {
--		lbs_deb_usbd(&udev->dev, "FW upload failed\n");
--		goto err_prog_firmware;
--	}
--
- 	if (!(priv = lbs_add_card(cardp, &intf->dev)))
--		goto err_prog_firmware;
-+		goto err_add_card;
- 
- 	cardp->priv = priv;
--	cardp->priv->fw_ready = 1;
- 
- 	priv->hw_host_to_card = if_usb_host_to_card;
- 	priv->enter_deep_sleep = NULL;
-@@ -267,34 +273,25 @@ static int if_usb_probe(struct usb_interface *intf,
- 
- 	cardp->boot2_version = udev->descriptor.bcdDevice;
- 
--	if_usb_submit_rx_urb(cardp);
--
--	if (lbs_start_card(priv))
--		goto err_start_card;
--
--	if_usb_setup_firmware(priv);
--
- 	usb_get_dev(udev);
- 	usb_set_intfdata(intf, cardp);
- 
--	/*
--	 * EHS_REMOVE_WAKEUP is not supported on all versions of the firmware.
--	 */
--	priv->wol_criteria = EHS_REMOVE_WAKEUP;
--	if (lbs_host_sleep_cfg(priv, priv->wol_criteria, NULL))
--		priv->ehs_remove_supported = false;
-+	r = lbs_get_firmware_async(priv, &udev->dev, cardp->model,
-+				   fw_table, if_usb_prog_firmware);
-+	if (r)
-+		goto err_get_fw;
- 
- 	return 0;
- 
--err_start_card:
-+err_get_fw:
- 	lbs_remove_card(priv);
--err_prog_firmware:
-+err_add_card:
- 	if_usb_reset_device(cardp);
- dealloc:
- 	if_usb_free(cardp);
- 
- error:
--	return -ENOMEM;
-+	return r;
- }
- 
- /**
-@@ -829,49 +826,22 @@ static int check_fwfile_format(const uint8_t *data, uint32_t totlen)
- 	return ret;
- }
- 
--/* table of firmware file names */
--static const struct {
--	u32 model;
--	const char *fwname;
--} fw_table[] = {
--	{ MODEL_8388, "libertas/usb8388_olpc.bin" },
--	{ MODEL_8388, "libertas/usb8388_v9.bin" },
--	{ MODEL_8388, "libertas/usb8388_v5.bin" },
--	{ MODEL_8388, "libertas/usb8388.bin" },
--	{ MODEL_8388, "usb8388.bin" },
--	{ MODEL_8682, "libertas/usb8682.bin" }
--};
--
--static int get_fw(struct if_usb_card *cardp)
--{
--	int i;
--
--	/* Otherwise search for firmware to use */
--	for (i = 0; i < ARRAY_SIZE(fw_table); i++) {
--		if (fw_table[i].model != cardp->model)
--			continue;
--		if (request_firmware(&cardp->fw, fw_table[i].fwname,
--					&cardp->udev->dev) == 0)
--			return 0;
--	}
--
--	return -ENOENT;
--}
--
--static int if_usb_prog_firmware(struct if_usb_card *cardp)
-+static void if_usb_prog_firmware(struct lbs_private *priv, int ret,
-+				 const struct firmware *fw,
-+				 const struct firmware *unused)
- {
-+	struct if_usb_card *cardp = priv->card;
- 	int i = 0;
- 	static int reset_count = 10;
--	int ret = 0;
- 
- 	lbs_deb_enter(LBS_DEB_USB);
- 
--	ret = get_fw(cardp);
- 	if (ret) {
- 		pr_err("failed to find firmware (%d)\n", ret);
- 		goto done;
- 	}
- 
-+	cardp->fw = fw;
- 	if (check_fwfile_format(cardp->fw->data, cardp->fw->size)) {
- 		ret = -EINVAL;
- 		goto release_fw;
-@@ -954,13 +924,27 @@ restart:
- 		goto release_fw;
- 	}
- 
-+	cardp->priv->fw_ready = 1;
-+	if_usb_submit_rx_urb(cardp);
-+
-+	if (lbs_start_card(priv))
-+		goto release_fw;
-+
-+	if_usb_setup_firmware(priv);
-+
-+	/*
-+	 * EHS_REMOVE_WAKEUP is not supported on all versions of the firmware.
-+	 */
-+	priv->wol_criteria = EHS_REMOVE_WAKEUP;
-+	if (lbs_host_sleep_cfg(priv, priv->wol_criteria, NULL))
-+		priv->ehs_remove_supported = false;
-+
-  release_fw:
- 	release_firmware(cardp->fw);
- 	cardp->fw = NULL;
- 
-  done:
--	lbs_deb_leave_args(LBS_DEB_USB, "ret %d", ret);
--	return ret;
-+	lbs_deb_leave(LBS_DEB_USB);
- }
- 
- 
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0014-libertas-CS-convert-to-asynchronous-firmware-loading.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0014-libertas-CS-convert-to-asynchronous-firmware-loading.patch
deleted file mode 100644
index fcc2620..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0014-libertas-CS-convert-to-asynchronous-firmware-loading.patch
+++ /dev/null
@@ -1,154 +0,0 @@
-From 6e1c2a1ef946804055ac05dd347c06fb8e836dcc Mon Sep 17 00:00:00 2001
-From: Daniel Drake <dsd at laptop.org>
-Date: Wed, 18 Apr 2012 20:09:44 +0100
-Subject: [PATCH 14/16] libertas CS: convert to asynchronous firmware loading
-
-Signed-off-by: Daniel Drake <dsd at laptop.org>
-Tested-by: Dan Williams <dcbw at redhat.com>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/if_cs.c |   88 ++++++++++++++++++---------------
- 1 file changed, 49 insertions(+), 39 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/if_cs.c b/drivers/net/wireless/libertas/if_cs.c
-index cee5052..16beaf3 100644
---- a/drivers/net/wireless/libertas/if_cs.c
-+++ b/drivers/net/wireless/libertas/if_cs.c
-@@ -738,6 +738,50 @@ done:
- 	return ret;
- }
- 
-+static void if_cs_prog_firmware(struct lbs_private *priv, int ret,
-+				 const struct firmware *helper,
-+				 const struct firmware *mainfw)
-+{
-+	struct if_cs_card *card = priv->card;
-+
-+	if (ret) {
-+		pr_err("failed to find firmware (%d)\n", ret);
-+		return;
-+	}
-+
-+	/* Load the firmware */
-+	ret = if_cs_prog_helper(card, helper);
-+	if (ret == 0 && (card->model != MODEL_8305))
-+		ret = if_cs_prog_real(card, mainfw);
-+	if (ret)
-+		goto out;
-+
-+	/* Now actually get the IRQ */
-+	ret = request_irq(card->p_dev->irq, if_cs_interrupt,
-+		IRQF_SHARED, DRV_NAME, card);
-+	if (ret) {
-+		pr_err("error in request_irq\n");
-+		goto out;
-+	}
-+
-+	/*
-+	 * Clear any interrupt cause that happened while sending
-+	 * firmware/initializing card
-+	 */
-+	if_cs_write16(card, IF_CS_CARD_INT_CAUSE, IF_CS_BIT_MASK);
-+	if_cs_enable_ints(card);
-+
-+	/* And finally bring the card up */
-+	priv->fw_ready = 1;
-+	if (lbs_start_card(priv) != 0) {
-+		pr_err("could not activate card\n");
-+		free_irq(card->p_dev->irq, card);
-+	}
-+
-+out:
-+	release_firmware(helper);
-+	release_firmware(mainfw);
-+}
- 
- 
- /********************************************************************/
-@@ -809,8 +853,6 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 	unsigned int prod_id;
- 	struct lbs_private *priv;
- 	struct if_cs_card *card;
--	const struct firmware *helper = NULL;
--	const struct firmware *mainfw = NULL;
- 
- 	lbs_deb_enter(LBS_DEB_CS);
- 
-@@ -890,20 +932,6 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 		goto out2;
- 	}
- 
--	ret = lbs_get_firmware(&p_dev->dev, card->model, &fw_table[0],
--				&helper, &mainfw);
--	if (ret) {
--		pr_err("failed to find firmware (%d)\n", ret);
--		goto out2;
--	}
--
--	/* Load the firmware early, before calling into libertas.ko */
--	ret = if_cs_prog_helper(card, helper);
--	if (ret == 0 && (card->model != MODEL_8305))
--		ret = if_cs_prog_real(card, mainfw);
--	if (ret)
--		goto out2;
--
- 	/* Make this card known to the libertas driver */
- 	priv = lbs_add_card(card, &p_dev->dev);
- 	if (!priv) {
-@@ -911,37 +939,22 @@ static int if_cs_probe(struct pcmcia_device *p_dev)
- 		goto out2;
- 	}
- 
--	/* Finish setting up fields in lbs_private */
-+	/* Set up fields in lbs_private */
- 	card->priv = priv;
- 	priv->card = card;
- 	priv->hw_host_to_card = if_cs_host_to_card;
- 	priv->enter_deep_sleep = NULL;
- 	priv->exit_deep_sleep = NULL;
- 	priv->reset_deep_sleep_wakeup = NULL;
--	priv->fw_ready = 1;
- 
--	/* Now actually get the IRQ */
--	ret = request_irq(p_dev->irq, if_cs_interrupt,
--		IRQF_SHARED, DRV_NAME, card);
-+	/* Get firmware */
-+	ret = lbs_get_firmware_async(priv, &p_dev->dev, card->model, fw_table,
-+				     if_cs_prog_firmware);
- 	if (ret) {
--		pr_err("error in request_irq\n");
--		goto out3;
--	}
--
--	/*
--	 * Clear any interrupt cause that happened while sending
--	 * firmware/initializing card
--	 */
--	if_cs_write16(card, IF_CS_CARD_INT_CAUSE, IF_CS_BIT_MASK);
--	if_cs_enable_ints(card);
--
--	/* And finally bring the card up */
--	if (lbs_start_card(priv) != 0) {
--		pr_err("could not activate card\n");
-+		pr_err("failed to find firmware (%d)\n", ret);
- 		goto out3;
- 	}
- 
--	ret = 0;
- 	goto out;
- 
- out3:
-@@ -951,9 +964,6 @@ out2:
- out1:
- 	pcmcia_disable_device(p_dev);
- out:
--	release_firmware(helper);
--	release_firmware(mainfw);
--
- 	lbs_deb_leave_args(LBS_DEB_CS, "ret %d", ret);
- 	return ret;
- }
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0015-libertas-add-missing-include.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0015-libertas-add-missing-include.patch
deleted file mode 100644
index 0506d5c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0015-libertas-add-missing-include.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From d149dba44b6840fec19f18b768220766f7c529a8 Mon Sep 17 00:00:00 2001
-From: Felix Fietkau <nbd at openwrt.org>
-Date: Thu, 19 Apr 2012 13:54:12 +0200
-Subject: [PATCH 15/16] libertas: add missing include
-
-Without it, I get compile errors due to missing TASK_NORMAL,
-TASK_UNINTERRUPTIBLE and schedule.
-
-Signed-off-by: Felix Fietkau <nbd at openwrt.org>
-Acked-by: Dan Williams <dcbw at redhat.com>
-Signed-off-by: John W. Linville <linville at tuxdriver.com>
----
- drivers/net/wireless/libertas/firmware.c |    1 +
- 1 file changed, 1 insertion(+)
-
-diff --git a/drivers/net/wireless/libertas/firmware.c b/drivers/net/wireless/libertas/firmware.c
-index cd23f1a..77f6504 100644
---- a/drivers/net/wireless/libertas/firmware.c
-+++ b/drivers/net/wireless/libertas/firmware.c
-@@ -5,6 +5,7 @@
- #include <linux/firmware.h>
- #include <linux/firmware.h>
- #include <linux/module.h>
-+#include <linux/sched.h>
- 
- #include "dev.h"
- #include "decl.h"
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0016-remove-debug-msgs-due-to-missing-in_interrupt.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0016-remove-debug-msgs-due-to-missing-in_interrupt.patch
deleted file mode 100644
index dec119a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/libertas/0016-remove-debug-msgs-due-to-missing-in_interrupt.patch
+++ /dev/null
@@ -1,35 +0,0 @@
-From 21bcbe43eb2923da9f17a0ac826b40f6cc7161cd Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?Andreas=20M=C3=BCller?= <schnitzeltony at googlemail.com>
-Date: Mon, 21 May 2012 17:01:23 +0200
-Subject: [PATCH 16/16] remove debug msgs due to missing in_interrupt
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Signed-off-by: Andreas Müller <schnitzeltony at googlemail.com>
----
- drivers/net/wireless/libertas/defs.h |    7 -------
- 1 file changed, 7 deletions(-)
-
-diff --git a/drivers/net/wireless/libertas/defs.h b/drivers/net/wireless/libertas/defs.h
-index ab966f0..a80b40e 100644
---- a/drivers/net/wireless/libertas/defs.h
-+++ b/drivers/net/wireless/libertas/defs.h
-@@ -46,14 +46,7 @@
- 
- extern unsigned int lbs_debug;
- 
--#ifdef DEBUG
--#define LBS_DEB_LL(grp, grpnam, fmt, args...) \
--do { if ((lbs_debug & (grp)) == (grp)) \
--  printk(KERN_DEBUG DRV_NAME grpnam "%s: " fmt, \
--         in_interrupt() ? " (INT)" : "", ## args); } while (0)
--#else
- #define LBS_DEB_LL(grp, grpnam, fmt, args...) do {} while (0)
--#endif
- 
- #define lbs_deb_enter(grp) \
-   LBS_DEB_LL(grp | LBS_DEB_ENTER, " enter", "%s()\n", __func__);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/patch.sh b/recipes-kernel/linux/linux-ti33x-psp-3.2/patch.sh
deleted file mode 100755
index 695eb41..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/patch.sh
+++ /dev/null
@@ -1,38 +0,0 @@
-#!/bin/bash
-# (c) 2009 - 2012 Koen Kooi <koen at dominion.thruhere.net>
-# This script will take a set of directories with patches and make a git tree out of it
-# After all the patches are applied it will output a SRC_URI fragment you can copy/paste into a recipe
-set -e
-
-# don't use builtin 'echo' from /bin/sh
-export ECHO="$(which echo)"
-
-git tag -f beaglebone-v3.2 e8004dad869568692ca2a45c04e8464ce48cc4d7
-
-TAG="beaglebone-v3.2"
-EXTRATAG=""
-PATCHPATH=$(dirname $0)
-
-git am --abort || echo "Do you need to make sure the patches apply cleanly first?"
-git reset --hard ${TAG}
-
-rm -Rf export
-
-previous=${TAG}
-PATCHSET="3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 beaglebone"
-
-# apply patches
-for patchset in ${PATCHSET} ; do
-	for patch in $(ls -1 $PATCHPATH/$patchset/* | sort -n) ; do
-		$ECHO -n "$patch: "
-		git am -q $patch && echo applied || exit 1
-	done
-	git tag "${TAG}-${patchset}${EXTRATAG}" -f
-done
-
-# export patches and output SRC_URI for them
-for patchset in ${PATCHSET} ; do
-	mkdir -p export/$patchset 
-	( cd export/$patchset && git format-patch ${previous}..${TAG}-${patchset}${EXTRATAG} >& /dev/null && for i in *.patch ; do echo "\tfile://${patchset}/$i \\" ; done )
-	previous=${TAG}-${patchset}${EXTRATAG}
-done > src-uri.txt
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0001-ARM-OMAP-AM33XX-Add-missing-EMIF-register-offsets.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0001-ARM-OMAP-AM33XX-Add-missing-EMIF-register-offsets.patch
deleted file mode 100644
index 3300bc9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0001-ARM-OMAP-AM33XX-Add-missing-EMIF-register-offsets.patch
+++ /dev/null
@@ -1,61 +0,0 @@
-From 824f30e3a045347806deedb75f16e96b057f430b Mon Sep 17 00:00:00 2001
-From: Vaibhav Bedia <vaibhav.bedia at ti.com>
-Date: Tue, 22 May 2012 16:25:53 +0530
-Subject: [PATCH 01/18] ARM: OMAP: AM33XX: Add missing EMIF register offsets
-
-Add a couple of missing register offsets in the EMIF
-header file. While here also fix the indentation issue.
-
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/plat-omap/include/plat/emif.h |   34 ++++++++++++++++----------------
- 1 files changed, 17 insertions(+), 17 deletions(-)
-
-diff --git a/arch/arm/plat-omap/include/plat/emif.h b/arch/arm/plat-omap/include/plat/emif.h
-index 314c126..445cbb1 100644
---- a/arch/arm/plat-omap/include/plat/emif.h
-+++ b/arch/arm/plat-omap/include/plat/emif.h
-@@ -17,23 +17,23 @@
- #define __EMIF_H
- 
- #define EMIF_MOD_ID_REV			(0x0)
--#define EMIF4_0_SDRAM_STATUS            (0x04)
--#define EMIF4_0_SDRAM_CONFIG            (0x08)
--#define EMIF4_0_SDRAM_CONFIG2           (0x0C)
--#define EMIF4_0_SDRAM_REF_CTRL          (0x10)
--#define EMIF4_0_SDRAM_REF_CTRL_SHADOW   (0x14)
--#define EMIF4_0_SDRAM_TIM_1             (0x18)
--#define EMIF4_0_SDRAM_TIM_1_SHADOW      (0x1C)
--#define EMIF4_0_SDRAM_TIM_2             (0x20)
--#define EMIF4_0_SDRAM_TIM_2_SHADOW      (0x24)
--#define EMIF4_0_SDRAM_TIM_3             (0x28)
--#define EMIF4_0_SDRAM_TIM_3_SHADOW      (0x2C)
--#define EMIF4_0_SDRAM_MGMT_CTRL         (0x38)
--#define EMIF4_0_SDRAM_MGMT_CTRL_SHD     (0x3C)
--#define EMIF4_0_DDR_PHY_CTRL_1          (0xE4)
--#define EMIF4_0_DDR_PHY_CTRL_1_SHADOW   (0xE8)
--#define EMIF4_0_DDR_PHY_CTRL_2          (0xEC)
--#define EMIF4_0_IODFT_TLGC              (0x60)
-+#define EMIF4_0_SDRAM_STATUS		(0x04)
-+#define EMIF4_0_SDRAM_CONFIG		(0x08)
-+#define EMIF4_0_SDRAM_CONFIG2		(0x0C)
-+#define EMIF4_0_SDRAM_REF_CTRL		(0x10)
-+#define EMIF4_0_SDRAM_REF_CTRL_SHADOW	(0x14)
-+#define EMIF4_0_SDRAM_TIM_1		(0x18)
-+#define EMIF4_0_SDRAM_TIM_1_SHADOW	(0x1C)
-+#define EMIF4_0_SDRAM_TIM_2		(0x20)
-+#define EMIF4_0_SDRAM_TIM_2_SHADOW	(0x24)
-+#define EMIF4_0_SDRAM_TIM_3		(0x28)
-+#define EMIF4_0_SDRAM_TIM_3_SHADOW	(0x2C)
-+#define EMIF4_0_SDRAM_MGMT_CTRL		(0x38)
-+#define EMIF4_0_SDRAM_MGMT_CTRL_SHADOW	(0x3C)
-+#define EMIF4_0_IODFT_TLGC		(0x60)
-+#define EMIF4_0_ZQ_CONFIG		(0xC8)
-+#define EMIF4_0_DDR_PHY_CTRL_1		(0xE4)
-+#define EMIF4_0_DDR_PHY_CTRL_1_SHADOW	(0xE8)
- 
- #define SELF_REFRESH_ENABLE(m)		(0x2 << 8 | (m << 4))
- #define SELF_REFRESH_DISABLE		(0x0 << 8)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0002-ARM-OMAP-AM33XX-PM-Get-rid-of-hardcoded-resume-addre.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0002-ARM-OMAP-AM33XX-PM-Get-rid-of-hardcoded-resume-addre.patch
deleted file mode 100644
index 04f7120..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0002-ARM-OMAP-AM33XX-PM-Get-rid-of-hardcoded-resume-addre.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 29ed395e3c56764a994ed4528e10c8835359a34b Mon Sep 17 00:00:00 2001
-From: Vaibhav Bedia <vaibhav.bedia at ti.com>
-Date: Tue, 22 May 2012 12:02:02 +0530
-Subject: [PATCH 02/18] ARM: OMAP: AM33XX: PM: Get rid of hardcoded resume
- address
-
-Instead of using a harcoded resume address in the IPC registers
-add a dynamically computed offset to the start of OCMC address.
-
-Note: This approach currently assumes that the suspend-resume code
-is the first block of code that is copied to internal RAM. Due to
-the initcall level used by the SRAM mapping code this holds true.
-Ideally the sram mapping code should provide an API for doing this.
-This will be done at a later point of time when the generic SRAM
-allocator gets merged in mainline kernel.
-
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/mach-omap2/pm.h        |    1 +
- arch/arm/mach-omap2/pm33xx.c    |    8 +++++++-
- arch/arm/mach-omap2/pm33xx.h    |    2 +-
- arch/arm/mach-omap2/sleep33xx.S |   16 +++-------------
- 4 files changed, 12 insertions(+), 15 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/pm.h b/arch/arm/mach-omap2/pm.h
-index 68aeafc..f7a7500 100644
---- a/arch/arm/mach-omap2/pm.h
-+++ b/arch/arm/mach-omap2/pm.h
-@@ -100,6 +100,7 @@ extern void omap3_save_scratchpad_contents(void);
- /* am33xx_do_wfi function pointer and size, for copy to SRAM */
- extern void am33xx_do_wfi(void);
- extern unsigned int am33xx_do_wfi_sz;
-+extern unsigned int am33xx_resume_offset;
- /* ... and its pointer from SRAM after copy */
- extern void (*am33xx_do_wfi_sram)(void);
- /* The resume location */
-diff --git a/arch/arm/mach-omap2/pm33xx.c b/arch/arm/mach-omap2/pm33xx.c
-index 70bcb42..c4c5187 100644
---- a/arch/arm/mach-omap2/pm33xx.c
-+++ b/arch/arm/mach-omap2/pm33xx.c
-@@ -217,7 +217,13 @@ static int am33xx_pm_begin(suspend_state_t state)
- 
- 	disable_hlt();
- 
--	am33xx_lp_ipc.resume_addr = DS_RESUME_ADDR;
-+	/*
-+	 * Populate the resume address as part of IPC data
-+	 * The offset to be added comes from sleep33xx.S
-+	 * Add 4 bytes to ensure that resume happens from
-+	 * the word *after* the word which holds the resume offset
-+	 */
-+	am33xx_lp_ipc.resume_addr = (DS_RESUME_BASE + am33xx_resume_offset + 4);
- 	am33xx_lp_ipc.sleep_mode  = DS_MODE;
- 	am33xx_lp_ipc.ipc_data1	  = DS_IPC_DEFAULT;
- 	am33xx_lp_ipc.ipc_data2   = DS_IPC_DEFAULT;
-diff --git a/arch/arm/mach-omap2/pm33xx.h b/arch/arm/mach-omap2/pm33xx.h
-index f72c28e..7b3504b 100644
---- a/arch/arm/mach-omap2/pm33xx.h
-+++ b/arch/arm/mach-omap2/pm33xx.h
-@@ -47,7 +47,7 @@ struct am33xx_padconf {
- 
- #define M3_TXEV_EOI			(AM33XX_CTRL_BASE + 0x1324)
- #define A8_M3_IPC_REGS			(AM33XX_CTRL_BASE + 0x1328)
--#define DS_RESUME_ADDR			0x40300340
-+#define DS_RESUME_BASE			0x40300000
- #define DS_IPC_DEFAULT			0xffffffff
- #define M3_UMEM				0x44D00000
- 
-diff --git a/arch/arm/mach-omap2/sleep33xx.S b/arch/arm/mach-omap2/sleep33xx.S
-index 69b49ea..9c57335 100644
---- a/arch/arm/mach-omap2/sleep33xx.S
-+++ b/arch/arm/mach-omap2/sleep33xx.S
-@@ -234,20 +234,10 @@ wait_emif_enable:
- 	mov	r0, #7
- 	ldmfd	sp!, {r4 - r11, pc}	@ restore regs and return
- 
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
--	nop
-+ENTRY(am33xx_resume_offset)
-+	.word . - am33xx_do_wfi
- 
-+ENTRY(am33xx_resume_from_deep_sleep)
- 	/* Take the PLLs out of LP_BYPASS */
- 	pll_lock	mpu, phys_mpu_clk_mode, phys_mpu_idlest
- 	pll_lock	per, phys_per_clk_mode, phys_per_idlest
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0003-ARM-OMAP-AM33XX-PM-Skip-DDR-PHY-reconfiguration-in-r.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0003-ARM-OMAP-AM33XX-PM-Skip-DDR-PHY-reconfiguration-in-r.patch
deleted file mode 100644
index ad402a0..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0003-ARM-OMAP-AM33XX-PM-Skip-DDR-PHY-reconfiguration-in-r.patch
+++ /dev/null
@@ -1,397 +0,0 @@
-From 49b0e8259aec1ffb11e0d2be13fc89fc84162fac Mon Sep 17 00:00:00 2001
-From: Vaibhav Bedia <vaibhav.bedia at ti.com>
-Date: Tue, 22 May 2012 12:19:21 +0530
-Subject: [PATCH 03/18] ARM: OMAP: AM33XX: PM: Skip DDR PHY reconfiguration in
- resume
-
-DDR PHY registers were earlier being reconfigured in the resume
-path. This is not necessary since these registers lie in the
-WKUP domain and retain their content across various low power
-state. Skipping the reconfiguration will also enabling in getting
-a single kernel image to work for boards with different memory
-types.
-
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/mach-omap2/pm33xx.h    |   75 +------------
- arch/arm/mach-omap2/sleep33xx.S |  245 +--------------------------------------
- 2 files changed, 7 insertions(+), 313 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/pm33xx.h b/arch/arm/mach-omap2/pm33xx.h
-index 7b3504b..f52e54c 100644
---- a/arch/arm/mach-omap2/pm33xx.h
-+++ b/arch/arm/mach-omap2/pm33xx.h
-@@ -60,59 +60,6 @@ struct am33xx_padconf {
- #define M3_STATE_MSG_FOR_LP		2
- #define M3_STATE_MSG_FOR_RESET		3
- 
--/* DDR offsets */
--#define DDR_CMD0_IOCTRL			(AM33XX_CTRL_BASE + 0x1404)
--#define DDR_CMD1_IOCTRL			(AM33XX_CTRL_BASE + 0x1408)
--#define DDR_CMD2_IOCTRL			(AM33XX_CTRL_BASE + 0x140C)
--#define DDR_DATA0_IOCTRL		(AM33XX_CTRL_BASE + 0x1440)
--#define DDR_DATA1_IOCTRL		(AM33XX_CTRL_BASE + 0x1444)
--
--#define DDR_IO_CTRL			(AM33XX_CTRL_BASE + 0x0E04)
--#define VTP0_CTRL_REG			(AM33XX_CTRL_BASE + 0x0E0C)
--#define DDR_CKE_CTRL			(AM33XX_CTRL_BASE + 0x131C)
--#define DDR_PHY_BASE_ADDR		(AM33XX_CTRL_BASE + 0x2000)
--
--#define CMD0_CTRL_SLAVE_RATIO_0		(DDR_PHY_BASE_ADDR + 0x01C)
--#define CMD0_CTRL_SLAVE_FORCE_0		(DDR_PHY_BASE_ADDR + 0x020)
--#define CMD0_CTRL_SLAVE_DELAY_0		(DDR_PHY_BASE_ADDR + 0x024)
--#define CMD0_DLL_LOCK_DIFF_0		(DDR_PHY_BASE_ADDR + 0x028)
--#define CMD0_INVERT_CLKOUT_0		(DDR_PHY_BASE_ADDR + 0x02C)
--
--#define CMD1_CTRL_SLAVE_RATIO_0		(DDR_PHY_BASE_ADDR + 0x050)
--#define CMD1_CTRL_SLAVE_FORCE_0		(DDR_PHY_BASE_ADDR + 0x054)
--#define CMD1_CTRL_SLAVE_DELAY_0		(DDR_PHY_BASE_ADDR + 0x058)
--#define CMD1_DLL_LOCK_DIFF_0		(DDR_PHY_BASE_ADDR + 0x05C)
--#define CMD1_INVERT_CLKOUT_0		(DDR_PHY_BASE_ADDR + 0x060)
--
--#define CMD2_CTRL_SLAVE_RATIO_0		(DDR_PHY_BASE_ADDR + 0x084)
--#define CMD2_CTRL_SLAVE_FORCE_0		(DDR_PHY_BASE_ADDR + 0x088)
--#define CMD2_CTRL_SLAVE_DELAY_0		(DDR_PHY_BASE_ADDR + 0x08C)
--#define CMD2_DLL_LOCK_DIFF_0		(DDR_PHY_BASE_ADDR + 0x090)
--#define CMD2_INVERT_CLKOUT_0		(DDR_PHY_BASE_ADDR + 0x094)
--
--#define DATA0_RD_DQS_SLAVE_RATIO_0	(DDR_PHY_BASE_ADDR + 0x0C8)
--#define DATA0_RD_DQS_SLAVE_RATIO_1	(DDR_PHY_BASE_ADDR + 0x0CC)
--
--#define DATA0_WR_DQS_SLAVE_RATIO_0	(DDR_PHY_BASE_ADDR + 0x0DC)
--#define DATA0_WR_DQS_SLAVE_RATIO_1	(DDR_PHY_BASE_ADDR + 0x0E0)
--
--#define DATA0_WRLVL_INIT_RATIO_0	(DDR_PHY_BASE_ADDR + 0x0F0)
--#define DATA0_WRLVL_INIT_RATIO_1	(DDR_PHY_BASE_ADDR + 0x0F4)
--
--#define DATA0_GATELVL_INIT_RATIO_0	(DDR_PHY_BASE_ADDR + 0x0FC)
--#define DATA0_GATELVL_INIT_RATIO_1	(DDR_PHY_BASE_ADDR + 0x100)
--
--#define DATA0_FIFO_WE_SLAVE_RATIO_0	(DDR_PHY_BASE_ADDR + 0x108)
--#define DATA0_FIFO_WE_SLAVE_RATIO_1	(DDR_PHY_BASE_ADDR + 0x10C)
--
--#define DATA0_WR_DATA_SLAVE_RATIO_0	(DDR_PHY_BASE_ADDR + 0x120)
--#define DATA0_WR_DATA_SLAVE_RATIO_1	(DDR_PHY_BASE_ADDR + 0x124)
--
--#define DATA0_DLL_LOCK_DIFF_0		(DDR_PHY_BASE_ADDR + 0x138)
--
--#define DATA0_RANK0_DELAYS_0		(DDR_PHY_BASE_ADDR + 0x134)
--#define DATA1_RANK0_DELAYS_0		(DDR_PHY_BASE_ADDR + 0x1D8)
--
- /* Temp placeholder for the values we want in the registers */
- #define EMIF_READ_LATENCY	0x100005	/* Enable Dynamic Power Down */
- #define EMIF_TIM1		0x0666B3C9
-@@ -124,28 +71,12 @@ struct am33xx_padconf {
- #define EMIF_SDRAM		0x00004650
- #define EMIF_PHYCFG		0x2
- 
--#define DDR2_DLL_LOCK_DIFF	0x0
--#define DDR2_RD_DQS		0x12
--#define DDR2_PHY_FIFO_WE	0x80
--
--#define DDR_PHY_RESET		(0x1 << 10)
--#define DDR_PHY_READY		(0x1 << 2)
--#define DDR2_RATIO		0x80
--#define CMD_FORCE		0x00
--#define CMD_DELAY		0x00
--
--#define DDR2_INVERT_CLKOUT	0x00
--#define DDR2_WR_DQS		0x00
--#define DDR2_PHY_WRLVL		0x00
--#define DDR2_PHY_GATELVL	0x00
--#define DDR2_PHY_WR_DATA	0x40
--#define PHY_RANK0_DELAY		0x01
--#define PHY_DLL_LOCK_DIFF	0x0
--#define DDR_IOCTRL_VALUE	0x18B
--
- #define VTP_CTRL_READY		(0x1 << 5)
- #define VTP_CTRL_ENABLE		(0x1 << 6)
- #define VTP_CTRL_LOCK_EN	(0x1 << 4)
- #define VTP_CTRL_START_EN	(0x1)
- 
-+#define DDR_IO_CTRL			(AM33XX_CTRL_BASE + 0x0E04)
-+#define VTP0_CTRL_REG			(AM33XX_CTRL_BASE + 0x0E0C)
-+
- #endif
-diff --git a/arch/arm/mach-omap2/sleep33xx.S b/arch/arm/mach-omap2/sleep33xx.S
-index 9c57335..4c601b11 100644
---- a/arch/arm/mach-omap2/sleep33xx.S
-+++ b/arch/arm/mach-omap2/sleep33xx.S
-@@ -273,21 +273,9 @@ ENTRY(am33xx_resume_from_deep_sleep)
- 	bic	r1, r1, #28
- 	str	r1, [r0]
- 
--/*
-- * Instead of harcoding the EMIF and DDR PHY related settings
-- * in this file, the sane thing to do would have been to backup
-- * the register contents during suspend and restore it back in
-- * the resume path. However, due to the Si errata related to
-- * DDR PHY registers, these registers are read-only. So, we'll
-- * need to hardcode atleast the DDR PHY configuration over here.
-- * We _could_ back up the EMIF registers but in order to be
-- * consistent with the DDR setup procedure we skip this for now.
-- * The person updating the DDR PHY config values is expected
-- * to update the EMIF config values also.
-- */
- 
- config_vtp:
--	ldr	r0, vtp0_addr
-+	ldr	r0, phys_ddr_vtp_ctrl
- 	ldr	r1, [r0]
- 	mov	r2, #0x0	@ clear the register
- 	str	r2, [r0]
-@@ -312,179 +300,6 @@ poll_vtp_ready:
- 	tst	r1, #(1 << 5)
- 	beq	poll_vtp_ready
- 
--cmd_macro_config:
--	ldr	r0, ddr_phy_base
--	ldr	r1, [r0]
--	ldr	r2, ddr2_ratio_val
--	mov	r3, r2
--	@ TODO: Need to use proper variable here
--	mov	r4, #0
--	str	r3, [r0, #28]	@cmd0
--	str	r4, [r0, #32]
--	str	r4, [r0, #36]
--	str	r4, [r0, #40]
--	str	r4, [r0, #44]
--	str	r3, [r0, #80]	@cmd1
--	str	r4, [r0, #84]
--	str	r4, [r0, #88]
--	str	r4, [r0, #92]
--	str	r4, [r0, #96]
--	str	r3, [r0, #132]	@cmd2
--	str	r4, [r0, #136]
--	str	r4, [r0, #140]
--	str	r4, [r0, #144]
--	str	r4, [r0, #148]
--
--	mov	r3, #0x0
--	bl	data_macro_config
--	mov	r3, #0xa4
--	bl	data_macro_config
--	b	setup_rank_delays
--
--data_macro_config:
--	ldr	r0, ddr_phy_base
--	add	r0, r0, r3
--rd_dqs:
--	ldr	r1, data0_rd_dqs_slave_ratio0_val
--	mov	r2, r1
--	/* shift by 30, 20, 10 and orr */
--	mov	r5, r2, lsl #10
--	mov	r6, r2, lsl #20
--	mov	r7, r2, lsl #30
--	orr	r2, r2, r5
--	orr	r2, r2, r6
--	orr	r2, r2, r7
--	/* Done with crazy bit ops. store it now */
--	str	r2, [r0, #200]
--	ldr	r1, data0_rd_dqs_slave_ratio1_val
--	mov	r2, r1
--	mov	r5, r2, lsr #2
--	mov	r2, r5
--	str	r2, [r0, #204]
--wr_dqs:
--	ldr	r1, data0_wr_dqs_slave_ratio0_val
--	mov	r2, r1
--	/* shift by 30, 20, 10 and orr */
--	mov	r5, r2, lsl #10
--	mov	r6, r2, lsl #20
--	mov	r7, r2, lsl #30
--	orr	r2, r2, r5
--	orr	r2, r2, r6
--	orr	r2, r2, r7
--	/* Done with crazy bit ops. store it now */
--	str	r2, [r0, #220]
--	ldr	r1, data0_wr_dqs_slave_ratio1_val
--	mov	r2, r1
--	mov	r5, r2, lsr #2
--	mov	r2, r5
--	str	r2, [r0, #224]
--wr_lvl:
--	ldr	r1, data0_wr_lvl_init_ratio0_val
--	mov	r2, r1
--	/* shift by 30, 20, 10 and orr */
--	mov	r5, r2, lsl #10
--	mov	r6, r2, lsl #20
--	mov	r7, r2, lsl #30
--	orr	r2, r2, r5
--	orr	r2, r2, r6
--	orr	r2, r2, r7
--	/* Done with crazy bit ops. store it now */
--	str	r2, [r0, #240]
--	ldr	r1, data0_wr_lvl_init_ratio1_val
--	mov	r2, r1
--	mov	r5, r2, lsr #2
--	mov	r2, r5
--	str	r2, [r0, #244]
--gate_lvl:
--	ldr	r1, data0_gate_lvl_init_ratio0_val
--	mov	r2, r1
--	/* shift by 30, 20, 10 and orr */
--	mov	r5, r2, lsl #10
--	mov	r6, r2, lsl #20
--	mov	r7, r2, lsl #30
--	orr	r2, r2, r5
--	orr	r2, r2, r6
--	orr	r2, r2, r7
--	/* Done with crazy bit ops. store it now */
--	str	r2, [r0, #248]
--	ldr	r1, data0_gate_lvl_init_ratio1_val
--	mov	r2, r1
--	mov	r5, r2, lsr #2
--	mov	r2, r5
--	str	r2, [r0, #256]
--we_slv:
--	ldr	r1, data0_wr_lvl_slave_ratio0_val
--	mov	r2, r1
--	/* shift by 30, 20, 10 and orr */
--	mov	r5, r2, lsl #10
--	mov	r6, r2, lsl #20
--	mov	r7, r2, lsl #30
--	orr	r2, r2, r5
--	orr	r2, r2, r6
--	orr	r2, r2, r7
--	/* Done with crazy bit ops. store it now */
--	str	r2, [r0, #264]
--	ldr	r1, data0_wr_lvl_slave_ratio1_val
--	mov	r2, r1
--	mov	r5, r2, lsr #2
--	mov	r2, r5
--	str	r2, [r0, #268]
--wr_data:
--	ldr	r1, data0_wr_data_slave_ratio0_val
--	mov	r2, r1
--	/* shift by 30, 20, 10 and orr */
--	mov	r5, r2, lsl #10
--	mov	r6, r2, lsl #20
--	mov	r7, r2, lsl #30
--	orr	r2, r2, r5
--	orr	r2, r2, r6
--	orr	r2, r2, r7
--	/* Done with crazy bit ops. store it now */
--	str	r2, [r0, #288]
--	ldr	r1, data0_wr_data_slave_ratio1_val
--	mov	r2, r1
--	mov	r5, r2, lsr #2
--	mov	r2, r5
--	str	r2, [r0, #292]
--dll_lock:
--	ldr	r1, data0_dll_lock_diff_val
--	mov	r2, r1
--	str	r2, [r0, #312]
--
--setup_rank_delays:
--	ldr	r1, data0_rank0_delay0_val
--	mov	r2, r1
--	str	r2, [r0, #308]
--	ldr	r1, data1_rank0_delay1_val
--	mov	r2, r1
--	str	r2, [r0, #472]
--
--setup_io_ctrl:
--	ldr	r0, control_base
--	ldr	r1, ddr_ioctrl_val
--	mov	r2, r1
--	ldr	r4, ddr_cmd_offset
--	mov	r3, r4
--	str	r2, [r0, r3]	@cmd0 0x1404
--	add	r3, r3, #4
--	str	r2, [r0, r3]	@cmd1 0x1408
--	add	r3, r3, #4
--	str	r2, [r0, r3]	@cmd2 0x140c
--	ldr	r4, ddr_data_offset
--	mov	r3, r4
--	str	r2, [r0, r3]	@data0 0x1440
--	add	r3, r3, #4
--	str	r2, [r0, r3]	@data1 0x1444
--
--misc_config:
--	ldr	r1, ddr_io_ctrl_addr
--	ldr	r2, [r1]
--	and	r2, #0xefffffff
--	str	r2, [r1]
--	ldr	r1, ddr_cke_addr
--	ldr	r2, [r1]
--	orr	r2, #0x00000001
--	str	r2, [r1]
- 
- config_emif_timings:
- 	mov	r3, #1275068416	@ 0x4c000000
-@@ -628,61 +443,6 @@ module_disabled_val:
- 	.word	0x30000
- 
- /* DDR related stuff */
--vtp0_addr:
--	.word	VTP0_CTRL_REG
--vtp_enable:
--	.word	VTP_CTRL_ENABLE
--vtp_start_en:
--	.word	VTP_CTRL_START_EN
--vtp_ready:
--	.word	VTP_CTRL_READY
--
--ddr_phy_base:
--	.word	DDR_PHY_BASE_ADDR
--ddr2_ratio_val:
--	.word	DDR2_RATIO
--data0_rd_dqs_slave_ratio0_val:
--	.word	DDR2_RD_DQS
--data0_rd_dqs_slave_ratio1_val:
--	.word	DDR2_RD_DQS
--data0_wr_dqs_slave_ratio0_val:
--	.word	DDR2_WR_DQS
--data0_wr_dqs_slave_ratio1_val:
--	.word	DDR2_WR_DQS
--data0_wr_lvl_init_ratio0_val:
--	.word	DDR2_PHY_WRLVL
--data0_wr_lvl_init_ratio1_val:
--	.word	DDR2_PHY_WRLVL
--data0_gate_lvl_init_ratio0_val:
--	.word	DDR2_PHY_GATELVL
--data0_gate_lvl_init_ratio1_val:
--	.word	DDR2_PHY_GATELVL
--data0_wr_lvl_slave_ratio0_val:
--	.word	DDR2_PHY_FIFO_WE
--data0_wr_lvl_slave_ratio1_val:
--	.word	DDR2_PHY_FIFO_WE
--data0_wr_data_slave_ratio0_val:
--	.word	DDR2_PHY_WR_DATA
--data0_wr_data_slave_ratio1_val:
--	.word	DDR2_PHY_WR_DATA
--data0_dll_lock_diff_val:
--	.word	PHY_DLL_LOCK_DIFF
--
--data0_rank0_delay0_val:
--	.word	PHY_RANK0_DELAY
--data1_rank0_delay1_val:
--	.word	PHY_RANK0_DELAY
--
--control_base:
--	.word	AM33XX_CTRL_BASE
--ddr_io_ctrl_addr:
--	.word	DDR_IO_CTRL
--ddr_ioctrl_val:
--	.word	0x18B
--ddr_cmd_offset:
--	.word	0x1404
--ddr_data_offset:
--	.word	0x1440
- virt_ddr_io_ctrl:
- 	.word	AM33XX_CTRL_REGADDR(0x0E04)
- phys_ddr_io_ctrl:
-@@ -691,6 +451,9 @@ virt_ddr_vtp_ctrl:
- 	.word	AM33XX_CTRL_REGADDR(0x0E0C)
- phys_ddr_vtp_ctrl:
- 	.word	VTP0_CTRL_REG
-+vtp_enable:
-+	.word	VTP_CTRL_ENABLE
-+
- virt_ddr_io_pull1:
- 	.word	AM33XX_CTRL_REGADDR(0x1440)
- phys_ddr_io_pull1:
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0004-ARM-OMAP-AM33XX-PM-Save-and-restore-EMIF-registers.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0004-ARM-OMAP-AM33XX-PM-Save-and-restore-EMIF-registers.patch
deleted file mode 100644
index a1c66ad..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0004-ARM-OMAP-AM33XX-PM-Save-and-restore-EMIF-registers.patch
+++ /dev/null
@@ -1,241 +0,0 @@
-From 334c051e4d0b3214136dbee1b0a52e2d29747c0a Mon Sep 17 00:00:00 2001
-From: Vaibhav Bedia <vaibhav.bedia at ti.com>
-Date: Tue, 22 May 2012 12:24:55 +0530
-Subject: [PATCH 04/18] ARM: OMAP: AM33XX: PM: Save and restore EMIF registers
-
-The EMIF configuration parameters were earlier harcoded
-under the assumption that the person updating the DDR PHY
-configuration values will update the EMIF parameters also.
-
-Now that the DDR PHY reconfiguration has been dropped, this
-restriction can also go away by adopting a save and restore
-mechanism of these registers.
-
-At the same time switch to macros for EMIF register offsets
-to improve readability.
-
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/mach-omap2/pm33xx.h    |   11 ---
- arch/arm/mach-omap2/sleep33xx.S |  141 +++++++++++++++++++++------------------
- 2 files changed, 75 insertions(+), 77 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/pm33xx.h b/arch/arm/mach-omap2/pm33xx.h
-index f52e54c..a40f4d4 100644
---- a/arch/arm/mach-omap2/pm33xx.h
-+++ b/arch/arm/mach-omap2/pm33xx.h
-@@ -60,17 +60,6 @@ struct am33xx_padconf {
- #define M3_STATE_MSG_FOR_LP		2
- #define M3_STATE_MSG_FOR_RESET		3
- 
--/* Temp placeholder for the values we want in the registers */
--#define EMIF_READ_LATENCY	0x100005	/* Enable Dynamic Power Down */
--#define EMIF_TIM1		0x0666B3C9
--#define EMIF_TIM2		0x243631CA
--#define EMIF_TIM3		0x0000033F
--#define EMIF_SDCFG		0x41805332
--#define EMIF_SDREF		0x0000081a
--#define EMIF_SDMGT		0x80000000
--#define EMIF_SDRAM		0x00004650
--#define EMIF_PHYCFG		0x2
--
- #define VTP_CTRL_READY		(0x1 << 5)
- #define VTP_CTRL_ENABLE		(0x1 << 6)
- #define VTP_CTRL_LOCK_EN	(0x1 << 4)
-diff --git a/arch/arm/mach-omap2/sleep33xx.S b/arch/arm/mach-omap2/sleep33xx.S
-index 4c601b11..b7a1612 100644
---- a/arch/arm/mach-omap2/sleep33xx.S
-+++ b/arch/arm/mach-omap2/sleep33xx.S
-@@ -71,6 +71,26 @@ wait_pll_lock_\name:
- 
- 	str	r0, emif_addr_virt
- 
-+	/* Save EMIF configuration */
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_CONFIG]
-+	str	r1, emif_sdcfg_val
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_REF_CTRL]
-+	str	r1, emif_ref_ctrl_val
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_TIM_1]
-+	str	r1, emif_timing1_val
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_TIM_2]
-+	str	r1, emif_timing2_val
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_TIM_3]
-+	str	r1, emif_timing3_val
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_MGMT_CTRL]
-+	str	r1, emif_pmcr_val
-+	ldr	r1, [r0, #EMIF4_0_SDRAM_MGMT_CTRL_SHADOW]
-+	str	r1, emif_pmcr_shdw_val
-+	ldr	r1, [r0, #EMIF4_0_ZQ_CONFIG]
-+	str	r1, emif_zqcfg_val
-+	ldr	r1, [r0, #EMIF4_0_DDR_PHY_CTRL_1]
-+	str	r1, emif_rd_lat_val
-+
- 	/* Ensure that all the writes to DDR leave the A8 */
- 	dsb
- 	dmb
-@@ -302,58 +322,52 @@ poll_vtp_ready:
- 
- 
- config_emif_timings:
--	mov	r3, #1275068416	@ 0x4c000000
--disable_sr:
--	mov	r4, #0
--	str	r4, [r3, #56]	@ 0x38
-+	ldr	r3, emif_phys_addr
- 	ldr	r4, emif_rd_lat_val
--	mov	r2, r4
- rd_lat:
--	str	r2, [r3, #228]	@ 0xe4
--	str	r2, [r3, #232]	@ 0xe8
--	str	r2, [r3, #236]	@ 0xec
-+	str	r4, [r3, #EMIF4_0_DDR_PHY_CTRL_1]
-+	str	r4, [r3, #EMIF4_0_DDR_PHY_CTRL_1_SHADOW]
- timing1:
- 	ldr	r4, emif_timing1_val
--	mov	r2, r4
--	str	r2, [r3, #24]
--	str	r2, [r3, #28]
-+	str	r4, [r3, #EMIF4_0_SDRAM_TIM_1]
-+	str	r4, [r3, #EMIF4_0_SDRAM_TIM_1_SHADOW]
- timing2:
- 	ldr	r4, emif_timing2_val
--	mov	r2, r4
--	str	r2, [r3, #32]
--	str	r2, [r3, #36]	@ 0x24
-+	str	r4, [r3, #EMIF4_0_SDRAM_TIM_2]
-+	str	r4, [r3, #EMIF4_0_SDRAM_TIM_2_SHADOW]
- timing3:
- 	ldr	r4, emif_timing3_val
--	mov	r2, r4
--	str	r2, [r3, #40]	@ 0x28
--	str	r2, [r3, #44]	@ 0x2c
--sdcfg1:
--	ldr	r4, emif_sdcfg_val
--	mov	r2, r4
--	str	r2, [r3, #8]
--	str	r2, [r3, #12]
--ref_ctrl_const:
--	ldr	r4, emif_ref_ctrl_const_val
--	mov	r2, r4
--	str	r2, [r3, #16]
--	str	r2, [r3, #20]
--
--	/* GEL had a loop with init value of 5000 */
--	mov	r0, #0x1000
--wait_loop1:
--	subs	r0, r0, #1
--	bne	wait_loop1
--
--ref_ctrl_actual:
-+	str	r4, [r3, #EMIF4_0_SDRAM_TIM_3]
-+	str	r4, [r3, #EMIF4_0_SDRAM_TIM_3_SHADOW]
-+sdram_ref_ctrl:
- 	ldr	r4, emif_ref_ctrl_val
--	mov	r2, r4
--	str	r2, [r3, #16]
--	str	r2, [r3, #20]
--sdcfg2:
-+	str	r4, [r3, #EMIF4_0_SDRAM_REF_CTRL]
-+	str	r4, [r3, #EMIF4_0_SDRAM_REF_CTRL_SHADOW]
-+pmcr:
-+	ldr	r4, emif_pmcr_val
-+	str	r4, [r3, #EMIF4_0_SDRAM_MGMT_CTRL]
-+pmcr_shdw:
-+	ldr	r4, emif_pmcr_shdw_val
-+	str	r4, [r3, #EMIF4_0_SDRAM_MGMT_CTRL_SHADOW]
-+
-+	/*
-+	 * Output impedence calib needed only for DDR3
-+	 * but since the initial state of this will be
-+	 * disabled for DDR2 no harm in restoring the
-+	 * old configuration
-+	 */
-+zqcfg:
-+	ldr	r4, emif_zqcfg_val
-+	str	r4, [r3, #EMIF4_0_ZQ_CONFIG]
-+
-+	/*
-+	 * A write to SDRAM CONFIG register triggers
-+	 * an init sequence and hence it must be done
-+	 * at the end
-+	 */
-+sdcfg:
- 	ldr	r4, emif_sdcfg_val
--	mov	r2, r4
--	str	r2, [r3, #8]
--	str	r2, [r3, #12]
-+	str	r4, [r3, #EMIF4_0_SDRAM_CONFIG]
- 
- 	/* Back from la-la-land. Kill some time for sanity to settle in */
- 	mov	r0, #0x1000
-@@ -377,10 +391,8 @@ emif_addr_func:
- emif_phys_addr:
- 	.word	AM33XX_EMIF0_BASE
- 
--emif_pm_ctrl:
--	.word EMIF4_0_SDRAM_MGMT_CTRL
- ddr_start:
--	.word PAGE_OFFSET
-+	.word	PAGE_OFFSET
- 
- virt_mpu_idlest:
- 	.word	AM33XX_CM_IDLEST_DPLL_MPU
-@@ -467,37 +479,34 @@ virt_ddr_io_pull3:
- phys_ddr_io_pull3:
- 	.word	AM33XX_CTRL_BASE + (0x1448)
- 
--ddr_cke_addr:
--	.word	DDR_CKE_CTRL
--emif_rd_lat_val:
--	.word	EMIF_READ_LATENCY
--emif_timing1_val:
--	.word	EMIF_TIM1
--emif_timing2_val:
--	.word	EMIF_TIM2
--emif_timing3_val:
--	.word	EMIF_TIM3
--emif_sdcfg_val:
--	.word	EMIF_SDCFG
--emif_ref_ctrl_const_val:
--	.word	0x4650
--emif_ref_ctrl_val:
--	.word	EMIF_SDREF
--
- susp_io_pull:
- 	.word	0x3FF00003
- resume_io_pull1:
- 	.word	0x18B
- resume_io_pull2:
- 	.word	0x18B
--dyn_pd_val:
--	.word	0x100000
--susp_sdram_config:
--	.word	0x40805332
- susp_vtp_ctrl_val:
- 	.word	0x10117
- emif_addr_virt:
- 	.word	0xDEADBEEF
-+emif_rd_lat_val:
-+	.word	0xDEADBEEF
-+emif_timing1_val:
-+	.word	0xDEADBEEF
-+emif_timing2_val:
-+	.word	0xDEADBEEF
-+emif_timing3_val:
-+	.word	0xDEADBEEF
-+emif_sdcfg_val:
-+	.word	0xDEADBEEF
-+emif_ref_ctrl_val:
-+	.word	0xDEADBEEF
-+emif_zqcfg_val:
-+	.word	0xDEADBEEF
-+emif_pmcr_val:
-+	.word	0xDEADBEEF
-+emif_pmcr_shdw_val:
-+	.word	0xDEADBEEF
- 
- 
- ENTRY(am33xx_do_wfi_sz)
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0005-ARM-OMAP-AM33XX-PM-Wait-correctly-for-the-PLLs-to-re.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0005-ARM-OMAP-AM33XX-PM-Wait-correctly-for-the-PLLs-to-re.patch
deleted file mode 100644
index a8db01e..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0005-ARM-OMAP-AM33XX-PM-Wait-correctly-for-the-PLLs-to-re.patch
+++ /dev/null
@@ -1,37 +0,0 @@
-From a7cfe5e7b86ebba4aa184b2612c4ecb70a01aa02 Mon Sep 17 00:00:00 2001
-From: "Satyanarayana, Sandhya" <sandhya.satyanarayana at ti.com>
-Date: Tue, 22 May 2012 12:33:20 +0530
-Subject: [PATCH 05/18] ARM: OMAP: AM33XX: PM: Wait correctly for the PLLs to
- relock in the sleep code
-
-The PLL relock code was incorrectly exiting the loop
-before the PLLs relock. Since the PLLs relock within
-a couple of A8 assembly instruction execution this went
-unnoticed till now. The issue was noticed when validating
-the abort path of the suspend process wherein the
-incorrect check for PLL relock resulted in a lockup.
-
-Signed-off-by: Satyanarayana, Sandhya <sandhya.satyanarayana at ti.com>
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/mach-omap2/sleep33xx.S |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/sleep33xx.S b/arch/arm/mach-omap2/sleep33xx.S
-index b7a1612..79a9e39 100644
---- a/arch/arm/mach-omap2/sleep33xx.S
-+++ b/arch/arm/mach-omap2/sleep33xx.S
-@@ -61,8 +61,8 @@ pll_lock_\name:
- 	ldr	r0, \idlest_addr
- wait_pll_lock_\name:
- 	ldr	r1, [r0]
--	tst	r1, #0x1
--	bne	wait_pll_lock_\name
-+	ands	r1, #0x1
-+	beq	wait_pll_lock_\name
- 	.endm
- 
- 	/* EMIF config for low power mode */
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0006-ARM-OMAP-AM33XX-PM-Restore-the-PLLs-to-pre-suspend-s.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0006-ARM-OMAP-AM33XX-PM-Restore-the-PLLs-to-pre-suspend-s.patch
deleted file mode 100644
index c0d0ef1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0006-ARM-OMAP-AM33XX-PM-Restore-the-PLLs-to-pre-suspend-s.patch
+++ /dev/null
@@ -1,139 +0,0 @@
-From d3ec36ec2c36ecb234c5a575b713205473e6cab8 Mon Sep 17 00:00:00 2001
-From: Vaibhav Bedia <vaibhav.bedia at ti.com>
-Date: Tue, 22 May 2012 12:43:01 +0530
-Subject: [PATCH 06/18] ARM: OMAP: AM33XX: PM: Restore the PLLs to pre-suspend
- state
-
-In some scenarios all the PLLs (especially Display) might not be
-in a locked state when the suspend process starts. Trying to relock
-a PLL in MN-bypass mode without a proper set of M and N values results
-into the PLLs never locking and the resume process hanging. Fix this
-by restoring the PLLs to the mode that they were in before the suspend
-process started.
-
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/mach-omap2/sleep33xx.S |   57 +++++++++++++++++++++++++-------------
- 1 files changed, 37 insertions(+), 20 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/sleep33xx.S b/arch/arm/mach-omap2/sleep33xx.S
-index 79a9e39..4db3a94 100644
---- a/arch/arm/mach-omap2/sleep33xx.S
-+++ b/arch/arm/mach-omap2/sleep33xx.S
-@@ -37,10 +37,11 @@
- ENTRY(am33xx_do_wfi)
- 	stmfd	sp!, {r4 - r11, lr}	@ save registers on stack
- 
--	.macro	pll_bypass, name, clk_mode_addr, idlest_addr
-+	.macro	pll_bypass, name, clk_mode_addr, idlest_addr, pll_mode
- pll_bypass_\name:
- 	ldr	r0, \clk_mode_addr
- 	ldr	r1, [r0]
-+	str	r1, clk_mode_\pll_mode
- 	bic	r1, r1, #(7 << 0)
- 	orr	r1, r1, #0x5
- 	str	r1, [r0]
-@@ -51,18 +52,21 @@ wait_pll_bypass_\name:
- 	bne	wait_pll_bypass_\name
- 	.endm
- 
--	.macro	pll_lock, name, clk_mode_addr, idlest_addr
-+	.macro	pll_lock, name, clk_mode_addr, idlest_addr, pll_mode
- pll_lock_\name:
- 	ldr	r0, \clk_mode_addr
--	ldr	r1, [r0]
--	bic	r1, r1, #(7 << 0)
--	orr	r1, r1, #0x7
-+	ldr	r1, clk_mode_\pll_mode
- 	str	r1, [r0]
-+	and	r1, r1, #0x7
-+	cmp	r1, #0x7
-+	bne	pll_mode_restored_\name
- 	ldr	r0, \idlest_addr
- wait_pll_lock_\name:
- 	ldr	r1, [r0]
- 	ands	r1, #0x1
- 	beq	wait_pll_lock_\name
-+pll_mode_restored_\name:
-+	nop
- 	.endm
- 
- 	/* EMIF config for low power mode */
-@@ -154,11 +158,11 @@ wait_emif_disable:
- 	str	r1, [r0]
- 
- 	/* Put the PLLs in bypass mode */
--	pll_bypass	core, virt_core_clk_mode, virt_core_idlest
--	pll_bypass	ddr, virt_ddr_clk_mode, virt_ddr_idlest
--	pll_bypass	disp, virt_disp_clk_mode, virt_disp_idlest
--	pll_bypass	per, virt_per_clk_mode, virt_per_idlest
--	pll_bypass	mpu, virt_mpu_clk_mode, virt_mpu_idlest
-+	pll_bypass	core, virt_core_clk_mode, virt_core_idlest, core_val
-+	pll_bypass	ddr, virt_ddr_clk_mode, virt_ddr_idlest, ddr_val
-+	pll_bypass	disp, virt_disp_clk_mode, virt_disp_idlest, disp_val
-+	pll_bypass	per, virt_per_clk_mode, virt_per_idlest, per_val
-+	pll_bypass	mpu, virt_mpu_clk_mode, virt_mpu_idlest, mpu_val
- 
- 	dsb
- 	dmb
-@@ -176,15 +180,17 @@ wait_emif_disable:
- 	nop
- 	nop
- 	nop
-+	nop
-+	nop
- 
- 	/* We come here in case of an abort */
- 
- 	/* Relock the PLLs */
--	pll_lock	mpu_abt, virt_mpu_clk_mode, virt_mpu_idlest
--	pll_lock	per_abt, virt_per_clk_mode, virt_per_idlest
--	pll_lock	disp_abt, virt_disp_clk_mode, virt_disp_idlest
--	pll_lock	ddr_abt, virt_ddr_clk_mode, virt_ddr_idlest
--	pll_lock	core_abt, virt_core_clk_mode, virt_core_idlest
-+	pll_lock	mpu_abt, virt_mpu_clk_mode, virt_mpu_idlest, mpu_val
-+	pll_lock	per_abt, virt_per_clk_mode, virt_per_idlest, per_val
-+	pll_lock	disp_abt, virt_disp_clk_mode, virt_disp_idlest, disp_val
-+	pll_lock	ddr_abt, virt_ddr_clk_mode, virt_ddr_idlest, ddr_val
-+	pll_lock	core_abt, virt_core_clk_mode, virt_core_idlest, core_val
- 
- 	/* Disable SRAM LDO ret mode */
- 	ldr	r0, virt_sram_ldo_addr
-@@ -259,11 +265,11 @@ ENTRY(am33xx_resume_offset)
- 
- ENTRY(am33xx_resume_from_deep_sleep)
- 	/* Take the PLLs out of LP_BYPASS */
--	pll_lock	mpu, phys_mpu_clk_mode, phys_mpu_idlest
--	pll_lock	per, phys_per_clk_mode, phys_per_idlest
--	pll_lock	disp, phys_disp_clk_mode, phys_disp_idlest
--	pll_lock	ddr, phys_ddr_clk_mode, phys_ddr_idlest
--	pll_lock	core, phys_core_clk_mode, phys_core_idlest
-+	pll_lock	mpu, phys_mpu_clk_mode, phys_mpu_idlest, mpu_val
-+	pll_lock	per, phys_per_clk_mode, phys_per_idlest, per_val
-+	pll_lock	disp, phys_disp_clk_mode, phys_disp_idlest, disp_val
-+	pll_lock	ddr, phys_ddr_clk_mode, phys_ddr_idlest, ddr_val
-+	pll_lock	core, phys_core_clk_mode, phys_core_idlest, core_val
- 
- 	/* Disable SRAM LDO ret mode */
- 	ldr	r0, phys_sram_ldo_addr
-@@ -508,6 +514,17 @@ emif_pmcr_val:
- emif_pmcr_shdw_val:
- 	.word	0xDEADBEEF
- 
-+/* PLL CLKMODE before suspend */
-+clk_mode_mpu_val:
-+	.word	0xDEADBEEF
-+clk_mode_per_val:
-+	.word	0xDEADBEEF
-+clk_mode_disp_val:
-+	.word	0xDEADBEEF
-+clk_mode_ddr_val:
-+	.word	0xDEADBEEF
-+clk_mode_core_val:
-+	.word	0xDEADBEEF
- 
- ENTRY(am33xx_do_wfi_sz)
- 	.word	. - am33xx_do_wfi
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0007-ARM-OMAP-PM-AM33XX-Update-the-sleep-code-to-handle-D.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0007-ARM-OMAP-PM-AM33XX-Update-the-sleep-code-to-handle-D.patch
deleted file mode 100644
index 37f1874..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0007-ARM-OMAP-PM-AM33XX-Update-the-sleep-code-to-handle-D.patch
+++ /dev/null
@@ -1,150 +0,0 @@
-From db18037175f6b61dfe2be5e657f1b90fe29fd946 Mon Sep 17 00:00:00 2001
-From: "Satyanarayana, Sandhya" <sandhya.satyanarayana at ti.com>
-Date: Tue, 22 May 2012 13:40:34 +0530
-Subject: [PATCH 07/18] ARM: OMAP: PM: AM33XX: Update the sleep code to handle
- DDR3
-
-DDR3 devices have a reset signal which is active low. When the
-system enters low power state this signal needs to be kept high
-to avoid a reset and hence a loss of memory content. DDR_IO_CTRL
-register in the control module gives s/w control over the reset
-line. Since the reset line is left open for DDR2 devices
-(some implementation might connect this but finally it becomes
-a NOP), there is no harm in setting the reset pin to high even
-for DDR2. This also enables us to have the same sequence for
-DDR2 and DDR3 devices.
-
-Signed-off-by: Satyanarayana, Sandhya <sandhya.satyanarayana at ti.com>
-Signed-off-by: Vaibhav Bedia <vaibhav.bedia at ti.com>
----
- arch/arm/mach-omap2/sleep33xx.S |   59 +++++++++++++++-----------------------
- 1 files changed, 23 insertions(+), 36 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/sleep33xx.S b/arch/arm/mach-omap2/sleep33xx.S
-index 4db3a94..6e802da 100644
---- a/arch/arm/mach-omap2/sleep33xx.S
-+++ b/arch/arm/mach-omap2/sleep33xx.S
-@@ -104,13 +104,13 @@ pll_mode_restored_\name:
- 	ldr	r2, [r1]
- 	orr	r2, r2, #0xa0		@ a reasonable delay for entering SR
- 	str	r2, [r1, #0]
-+	str	r2, [r1, #4]		@ write to shadow register also
- 
- 	ldr	r2, ddr_start		@ do a dummy access to DDR
- 	ldr	r3, [r2, #0]
- 	ldr	r3, [r1, #0]
- 	orr	r3, r3, #0x200		@ now set the LP MODE to Self-Refresh
- 	str	r3, [r1, #0]
--	str	r2, [r1, #4]		@ write to shadow register also
- 
- 	mov	r1, #0x1000		@ Give some time for the system to enter SR
- wait_sr:
-@@ -130,6 +130,11 @@ wait_emif_disable:
- 	cmp	r2, r3
- 	bne	wait_emif_disable
- 
-+	/* DDR3 reset override and mDDR mode selection */
-+	ldr	r0, virt_ddr_io_ctrl
-+	mov	r1, #(0x9 << 28)
-+	str	r1, [r0]
-+
- 	/* Weak pull down for DQ, DM */
- 	ldr	r1, virt_ddr_io_pull1
- 	ldr	r2, susp_io_pull
-@@ -144,13 +149,6 @@ wait_emif_disable:
- 	ldr	r2, susp_vtp_ctrl_val
- 	str	r2, [r1]
- 
--	/* IO to work in mDDR mode */
--	ldr	r0, virt_ddr_io_ctrl
--	ldr	r1, [r0]
--	mov	r2, #1
--	mov	r3, r2, lsl #28
--	str	r3, [r0]
--
- 	/* Enable SRAM LDO ret mode */
- 	ldr	r0, virt_sram_ldo_addr
- 	ldr	r1, [r0]
-@@ -198,13 +196,6 @@ wait_emif_disable:
- 	bic	r1, #1
- 	str	r1, [r0]
- 
--	/* IO to work in DDR mode */
--	ldr	r0, virt_ddr_io_ctrl
--	ldr	r1, [r0]
--	mov	r2, #0x0
--	mov	r3, r2, lsl #28
--	str	r3, [r0]
--
- 	/* Restore the pull for DQ, DM */
- 	ldr	r1, virt_ddr_io_pull1
- 	ldr	r2, resume_io_pull1
-@@ -214,6 +205,15 @@ wait_emif_disable:
- 	ldr	r2, resume_io_pull2
- 	str	r2, [r1]
- 
-+	/* Enable EMIF */
-+	ldr	r1, virt_emif_clkctrl
-+	mov	r2, #0x2
-+	str	r2, [r1]
-+wait_emif_enable:
-+	ldr	r3, [r1]
-+	cmp	r2, r3
-+	bne	wait_emif_enable
-+
- 	/* Enable VTP */
- config_vtp_abt:
- 	ldr	r0, virt_ddr_vtp_ctrl
-@@ -241,14 +241,10 @@ poll_vtp_ready_abt:
- 	tst	r1, #(1 << 5)
- 	beq	poll_vtp_ready_abt
- 
--	/* Enable EMIF */
--	ldr	r1, virt_emif_clkctrl
--	mov	r2, #0x2
--	str	r2, [r1]
--wait_emif_enable:
--	ldr	r3, [r1]
--	cmp	r2, r3
--	bne	wait_emif_enable
-+	/* DDR3 reset override and mDDR mode clear */
-+	ldr	r0, virt_ddr_io_ctrl
-+	mov	r1, #0
-+	str	r1, [r0]
- 
- 	/* Disable EMIF self-refresh */
- 	ldr	r0, emif_addr_virt
-@@ -286,19 +282,6 @@ ENTRY(am33xx_resume_from_deep_sleep)
- 	ldr	r2, resume_io_pull2
- 	str	r2, [r1]
- 
--	/* Disable EMIF self-refresh */
--	ldr	r0, emif_phys_addr
--	add	r0, r0, #EMIF4_0_SDRAM_MGMT_CTRL
--	ldr	r1, [r0]
--	bic	r1, r1, #(0x7 << 7)
--	str	r1, [r0]
--
--	/* Take out IO of mDDR mode */
--	ldr	r0, phys_ddr_io_ctrl
--	ldr	r1, [r0]
--	bic	r1, r1, #28
--	str	r1, [r0]
--
- 
- config_vtp:
- 	ldr	r0, phys_ddr_vtp_ctrl
-@@ -326,6 +309,10 @@ poll_vtp_ready:
- 	tst	r1, #(1 << 5)
- 	beq	poll_vtp_ready
- 
-+	/* DDR3 reset override and mDDR mode clear */
-+	ldr	r0, phys_ddr_io_ctrl
-+	mov	r1, #0
-+	str	r1, [r0]
- 
- config_emif_timings:
- 	ldr	r3, emif_phys_addr
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0008-usb-musb-update-babble-workaround-fix.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0008-usb-musb-update-babble-workaround-fix.patch
deleted file mode 100644
index 9b1ee97..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0008-usb-musb-update-babble-workaround-fix.patch
+++ /dev/null
@@ -1,168 +0,0 @@
-From 6573dac17629de93ca32dca7fb656c550a4af00d Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Thu, 24 May 2012 10:37:27 +0530
-Subject: [PATCH 08/18] usb: musb: update babble workaround fix
-
-Resetting of usb controller also resets the tx and rx fifo addresses of
-each endpoints and hence tx and rx fifo addresses need to be reconfigured.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/musb_core.c   |   19 ++++++++++---------
- drivers/usb/musb/musb_core.h   |    1 +
- drivers/usb/musb/musb_procfs.c |    1 +
- drivers/usb/musb/ti81xx.c      |   11 +++++------
- 4 files changed, 17 insertions(+), 15 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_core.c b/drivers/usb/musb/musb_core.c
-index db5afeb..5850889 100644
---- a/drivers/usb/musb/musb_core.c
-+++ b/drivers/usb/musb/musb_core.c
-@@ -1067,7 +1067,7 @@ static void musb_shutdown(struct platform_device *pdev)
-  */
- 
- /* mode 0 - fits in 2KB */
--static struct musb_fifo_cfg __devinitdata mode_0_cfg[] = {
-+static struct musb_fifo_cfg mode_0_cfg[] = {
- { .hw_ep_num = 1, .style = FIFO_TX,   .maxpacket = 512, },
- { .hw_ep_num = 1, .style = FIFO_RX,   .maxpacket = 512, },
- { .hw_ep_num = 2, .style = FIFO_RXTX, .maxpacket = 512, },
-@@ -1076,7 +1076,7 @@ static struct musb_fifo_cfg __devinitdata mode_0_cfg[] = {
- };
- 
- /* mode 1 - fits in 4KB */
--static struct musb_fifo_cfg __devinitdata mode_1_cfg[] = {
-+static struct musb_fifo_cfg mode_1_cfg[] = {
- { .hw_ep_num = 1, .style = FIFO_TX,   .maxpacket = 512, .mode = BUF_DOUBLE, },
- { .hw_ep_num = 1, .style = FIFO_RX,   .maxpacket = 512, .mode = BUF_DOUBLE, },
- { .hw_ep_num = 2, .style = FIFO_RXTX, .maxpacket = 512, .mode = BUF_DOUBLE, },
-@@ -1085,7 +1085,7 @@ static struct musb_fifo_cfg __devinitdata mode_1_cfg[] = {
- };
- 
- /* mode 2 - fits in 4KB */
--static struct musb_fifo_cfg __devinitdata mode_2_cfg[] = {
-+static struct musb_fifo_cfg mode_2_cfg[] = {
- { .hw_ep_num = 1, .style = FIFO_TX,   .maxpacket = 512, },
- { .hw_ep_num = 1, .style = FIFO_RX,   .maxpacket = 512, },
- { .hw_ep_num = 2, .style = FIFO_TX,   .maxpacket = 512, },
-@@ -1095,7 +1095,7 @@ static struct musb_fifo_cfg __devinitdata mode_2_cfg[] = {
- };
- 
- /* mode 3 - fits in 4KB */
--static struct musb_fifo_cfg __devinitdata mode_3_cfg[] = {
-+static struct musb_fifo_cfg mode_3_cfg[] = {
- { .hw_ep_num = 1, .style = FIFO_TX,   .maxpacket = 512, .mode = BUF_DOUBLE, },
- { .hw_ep_num = 1, .style = FIFO_RX,   .maxpacket = 512, .mode = BUF_DOUBLE, },
- { .hw_ep_num = 2, .style = FIFO_TX,   .maxpacket = 512, },
-@@ -1105,7 +1105,7 @@ static struct musb_fifo_cfg __devinitdata mode_3_cfg[] = {
- };
- 
- /* mode 4 - fits in 16KB */
--static struct musb_fifo_cfg __devinitdata mode_4_cfg[] = {
-+static struct musb_fifo_cfg mode_4_cfg[] = {
- { .hw_ep_num =  1, .style = FIFO_TX,   .maxpacket = 512,},
- { .hw_ep_num =  1, .style = FIFO_RX,   .maxpacket = 512,},
- { .hw_ep_num =  2, .style = FIFO_TX,   .maxpacket = 512,},
-@@ -1137,7 +1137,7 @@ static struct musb_fifo_cfg __devinitdata mode_4_cfg[] = {
- 
- 
- /* mode 5 - fits in 8KB */
--static struct musb_fifo_cfg __devinitdata mode_5_cfg[] = {
-+static struct musb_fifo_cfg mode_5_cfg[] = {
- { .hw_ep_num =  1, .style = FIFO_TX,   .maxpacket = 512, },
- { .hw_ep_num =  1, .style = FIFO_RX,   .maxpacket = 512, },
- { .hw_ep_num =  2, .style = FIFO_TX,   .maxpacket = 512, },
-@@ -1168,7 +1168,7 @@ static struct musb_fifo_cfg __devinitdata mode_5_cfg[] = {
- };
- 
- /* mode 6 - fits in 32KB */
--static struct musb_fifo_cfg __devinitdata mode_6_cfg[] = {
-+static struct musb_fifo_cfg mode_6_cfg[] = {
- { .hw_ep_num =  1, .style = FIFO_TX,   .maxpacket = 512, .mode = BUF_DOUBLE,},
- { .hw_ep_num =  1, .style = FIFO_RX,   .maxpacket = 512, .mode = BUF_DOUBLE,},
- { .hw_ep_num =  2, .style = FIFO_TX,   .maxpacket = 512, .mode = BUF_DOUBLE,},
-@@ -1275,11 +1275,11 @@ fifo_setup(struct musb *musb, struct musb_hw_ep  *hw_ep,
- 	return offset + (maxpacket << ((c_size & MUSB_FIFOSZ_DPB) ? 1 : 0));
- }
- 
--static struct musb_fifo_cfg __devinitdata ep0_cfg = {
-+static struct musb_fifo_cfg ep0_cfg = {
- 	.style = FIFO_RXTX, .maxpacket = 64,
- };
- 
--static int __devinit ep_config_from_table(struct musb *musb)
-+int ep_config_from_table(struct musb *musb)
- {
- 	const struct musb_fifo_cfg	*cfg;
- 	unsigned		i, n;
-@@ -1370,6 +1370,7 @@ done:
- 
- 	return 0;
- }
-+EXPORT_SYMBOL(ep_config_from_table);
- 
- /*
-  * ep_config_from_hw - when MUSB_C_DYNFIFO_DEF is false
-diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
-index 87b6ff0..184c043 100644
---- a/drivers/usb/musb/musb_core.h
-+++ b/drivers/usb/musb/musb_core.h
-@@ -652,6 +652,7 @@ static inline const char *get_dma_name(struct musb *musb)
- 		return "?dma?";
- #endif
- }
-+extern int ep_config_from_table(struct musb *musb);
- 
- extern void musb_gb_work(struct work_struct *data);
- /*-------------------------- ProcFS definitions ---------------------*/
-diff --git a/drivers/usb/musb/musb_procfs.c b/drivers/usb/musb/musb_procfs.c
-index e3aa42f..2db7eac 100644
---- a/drivers/usb/musb/musb_procfs.c
-+++ b/drivers/usb/musb/musb_procfs.c
-@@ -719,6 +719,7 @@ static int musb_proc_write(struct file *file, const char __user *buffer,
- 		INFO("T: start sending TEST_PACKET\n");
- 		INFO("D: set/read dbug level\n");
- 		INFO("K/k: enable/disable babble workaround\n");
-+		INFO("b: generate software babble interrupt\n");
- 		break;
- 
- 	default:
-diff --git a/drivers/usb/musb/ti81xx.c b/drivers/usb/musb/ti81xx.c
-index d76a693..e3cf38b 100644
---- a/drivers/usb/musb/ti81xx.c
-+++ b/drivers/usb/musb/ti81xx.c
-@@ -813,8 +813,7 @@ int musb_simulate_babble(struct musb *musb)
- 	mdelay(100);
- 
- 	/* generate s/w babble interrupt */
--	musb_writel(reg_base, USB_IRQ_STATUS_RAW_1,
--		MUSB_INTR_BABBLE);
-+	musb_writel(reg_base, USB_IRQ_STATUS_RAW_1, MUSB_INTR_BABBLE);
- 	return 0;
- }
- EXPORT_SYMBOL(musb_simulate_babble);
-@@ -828,7 +827,8 @@ void musb_babble_workaround(struct musb *musb)
- 
- 	/* Reset the controller */
- 	musb_writel(reg_base, USB_CTRL_REG, USB_SOFT_RESET_MASK);
--	udelay(100);
-+	while ((musb_readl(reg_base, USB_CTRL_REG) & 0x1))
-+		cpu_relax();
- 
- 	/* Shutdown the on-chip PHY and its PLL. */
- 	if (data->set_phy_power)
-@@ -843,9 +843,8 @@ void musb_babble_workaround(struct musb *musb)
- 		data->set_phy_power(musb->id, 1);
- 	mdelay(100);
- 
--	/* save the usbotgss register contents */
--	musb_platform_enable(musb);
--
-+	/* re-setup the endpoint fifo addresses */
-+	ep_config_from_table(musb);
- 	musb_start(musb);
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0009-usb-musb-ti81xx-print-the-usbss-revision-id-during-i.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0009-usb-musb-ti81xx-print-the-usbss-revision-id-during-i.patch
deleted file mode 100644
index fce35bc..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0009-usb-musb-ti81xx-print-the-usbss-revision-id-during-i.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From 9a362c5b759686f056070b6cddfc7405782464a9 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Wed, 23 May 2012 15:32:37 +0530
-Subject: [PATCH 09/18] usb: musb: ti81xx: print the usbss revision id during
- init
-
-This is to identify the id which can help in debugging.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/ti81xx.c |    2 ++
- 1 files changed, 2 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/musb/ti81xx.c b/drivers/usb/musb/ti81xx.c
-index e3cf38b..f7b2f62 100644
---- a/drivers/usb/musb/ti81xx.c
-+++ b/drivers/usb/musb/ti81xx.c
-@@ -1069,6 +1069,8 @@ int ti81xx_musb_init(struct musb *musb)
- 	if (!rev)
- 		return -ENODEV;
- 
-+	pr_info("MUSB%d controller's USBSS revision = %08x\n", musb->id, rev);
-+
- 	if (is_host_enabled(musb))
- 		setup_timer(&musb->otg_workaround, otg_timer,
- 					(unsigned long) musb);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0010-usb-musb-cppi41-enable-txfifo-empty-interrupt-logic.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0010-usb-musb-cppi41-enable-txfifo-empty-interrupt-logic.patch
deleted file mode 100644
index 761f4d6..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0010-usb-musb-cppi41-enable-txfifo-empty-interrupt-logic.patch
+++ /dev/null
@@ -1,425 +0,0 @@
-From a4d99c3c1e01b91b69c6939ba3ee708611869402 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Wed, 23 May 2012 15:25:32 +0530
-Subject: [PATCH 10/18] usb: musb: cppi41: enable txfifo empty interrupt logic
-
-Fixes the txdma early completion issue as the TxFIFO empty interrupt
-logic generates an interrupt when last byte from TxFIFO is
-transmitted out.
-
-The application issues fixed are -
-1) The isochronous gap issue seen due to txdma early completion and
-   thus a delay caused in scheduling of txdma workthread which polls
-   for txfifo empty status.
-
-2) The workthread is rescheduled once again when txfifo is empty to
-   make sure any miss of transfer of the data in internal cppififo.
-
-3) For non-isochronous tx request uses workthread to poll for txfifo
-   empty status if there is possiblity of data in internal cppififo
-   other wise the request is completed directly in the tx-dma isr
-   function.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/cppi41_dma.c  |  101 ++++++++++++++++++++++++++++++++++++++--
- drivers/usb/musb/cppi41_dma.h  |    7 +++
- drivers/usb/musb/musb_core.h   |   16 ++++++
- drivers/usb/musb/musb_gadget.c |    1 +
- drivers/usb/musb/musb_host.c   |    1 +
- drivers/usb/musb/ti81xx.c      |   51 ++++++++++++++++++++-
- drivers/usb/musb/ti81xx.h      |    3 +
- 7 files changed, 174 insertions(+), 6 deletions(-)
-
-diff --git a/drivers/usb/musb/cppi41_dma.c b/drivers/usb/musb/cppi41_dma.c
-index 4761acd..3665d0f 100644
---- a/drivers/usb/musb/cppi41_dma.c
-+++ b/drivers/usb/musb/cppi41_dma.c
-@@ -101,6 +101,9 @@ struct cppi41_channel {
- 	u8  inf_mode;
- 	u8  tx_complete;
- 	u8  hb_mult;
-+	u8  txf_complete;
-+	u8  txfifo_intr_enable;
-+	u8  count;
- };
- 
- /**
-@@ -132,6 +135,7 @@ struct cppi41 {
- 	u32 teardown_reg_offs;		/* USB_TEARDOWN_REG offset */
- 	u32 bd_size;
- 	u8  inf_mode;
-+	u8  txfifo_intr_enable;		/* txfifo empty interrupt logic */
- };
- 
- struct usb_cppi41_info usb_cppi41_info[2];
-@@ -573,6 +577,9 @@ static unsigned cppi41_next_tx_segment(struct cppi41_channel *tx_ch)
- 	u16 q_mgr = cppi_info->q_mgr;
- 	u16 tx_comp_q = cppi_info->tx_comp_q[tx_ch->ch_num];
- 	u8 en_bd_intr = cppi->en_bd_intr;
-+	u8 is_isoc = 0;
-+	struct musb_hw_ep *hw_ep = cppi->musb->endpoints + tx_ch->end_pt->epnum;
-+	int xfer_type = hw_ep->xfer_type;
- 
- 	/*
- 	 * Tx can use the generic RNDIS mode where we can probably fit this
-@@ -599,6 +606,12 @@ static unsigned cppi41_next_tx_segment(struct cppi41_channel *tx_ch)
- 	    tx_ch->ch_num, tx_ch->dma_mode ? "accelerated" : "transparent",
- 	    pkt_size, num_pds, tx_ch->start_addr + tx_ch->curr_offset, length);
- 
-+	if (xfer_type  == USB_ENDPOINT_XFER_ISOC)
-+		is_isoc = 1;
-+
-+	if (is_isoc && cppi->txfifo_intr_enable && (length <= tx_ch->pkt_size))
-+		tx_ch->txfifo_intr_enable = 1;
-+
- 	for (n = 0; n < num_pds; n++) {
- 		struct cppi41_host_pkt_desc *hw_desc;
- 
-@@ -640,6 +653,14 @@ static unsigned cppi41_next_tx_segment(struct cppi41_channel *tx_ch)
- 		dev_dbg(musb->controller, "TX PD %p: buf %08x, len %08x, pkt info %08x\n", curr_pd,
- 		    hw_desc->buf_ptr, hw_desc->buf_len, hw_desc->pkt_info);
- 
-+		/* enable tx fifo empty interrupt */
-+		if (tx_ch->txfifo_intr_enable) {
-+			dev_dbg(musb->controller, "txs(%p %d) enable txFintr\n",
-+				curr_pd, hw_desc->orig_buf_len &
-+					~CPPI41_PKT_INTR_FLAG);
-+			txfifoempty_int_enable(cppi->musb, curr_pd->ep_num);
-+		}
-+
- 		cppi41_queue_push(&tx_ch->queue_obj, curr_pd->dma_addr,
- 				  USB_CPPI41_DESC_ALIGN, pkt_size);
- 	}
-@@ -1211,6 +1232,8 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 		csr &= ~MUSB_TXCSR_DMAENAB;
- 		musb_writew(epio, MUSB_TXCSR, csr);
- 
-+		cppi_ch->tx_complete = 0;
-+		cppi_ch->txf_complete = 0;
- 		/* Tear down Tx DMA channel */
- 		usb_tx_ch_teardown(cppi_ch);
- 
-@@ -1224,7 +1247,6 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 		csr |= MUSB_TXCSR_FLUSHFIFO | MUSB_TXCSR_H_WZC_BITS;
- 		musb_writew(epio, MUSB_TXCSR, csr);
- 		musb_writew(epio, MUSB_TXCSR, csr);
--		cppi_ch->tx_complete = 0;
- 	} else { /* Rx */
- 		dprintk("Rx channel teardown, cppi_ch = %p\n", cppi_ch);
- 
-@@ -1331,16 +1353,23 @@ void txdma_completion_work(struct work_struct *data)
- 				 */
- 				if (!tx_ch->end_pt) {
- 					tx_ch->tx_complete = 0;
-+					tx_ch->count = 0;
- 					continue;
- 				}
- 
- 				epio = tx_ch->end_pt->regs;
- 				csr = musb_readw(epio, MUSB_TXCSR);
- 
--				if (csr & (MUSB_TXCSR_TXPKTRDY |
--					MUSB_TXCSR_FIFONOTEMPTY)) {
-+				if (!tx_ch->txfifo_intr_enable &&
-+					(csr & (MUSB_TXCSR_TXPKTRDY |
-+					MUSB_TXCSR_FIFONOTEMPTY))) {
- 					resched = 1;
- 				} else {
-+					if (tx_ch->count > 0) {
-+						tx_ch->count--;
-+						resched = 1;
-+						continue;
-+					}
- 					tx_ch->channel.status =
- 						MUSB_DMA_STATUS_FREE;
- 					tx_ch->tx_complete = 0;
-@@ -1363,6 +1392,38 @@ void txdma_completion_work(struct work_struct *data)
- 
- }
- 
-+void cppi41_handle_txfifo_intr(struct musb *musb, u16 usbintr)
-+{
-+	struct cppi41 *cppi;
-+	struct cppi41_channel *tx_ch;
-+	int index;
-+
-+	cppi = container_of(musb->dma_controller, struct cppi41, controller);
-+	for (index = 0; (index < USB_CPPI41_NUM_CH) && usbintr; index++) {
-+		if (usbintr & 1) {
-+			tx_ch = &cppi->tx_cppi_ch[index];
-+			if (tx_ch->txf_complete) {
-+				/* disable txfifo empty interupt */
-+				txfifoempty_int_disable(musb, index+1);
-+				tx_ch->txf_complete = 0;
-+				if (!tx_ch->txfifo_intr_enable)
-+					dev_dbg(musb->controller,
-+					"Bug, wrong TxFintr ep%d\n", index+1);
-+				tx_ch->txfifo_intr_enable = 0;
-+
-+				tx_ch->channel.status =
-+					MUSB_DMA_STATUS_FREE;
-+
-+				dev_dbg(musb->controller,
-+					"txc: givback ep%d\n", index+1);
-+				musb_dma_completion(musb, index+1, 1);
-+			}
-+		}
-+		usbintr = usbintr >> 1;
-+	}
-+}
-+EXPORT_SYMBOL(cppi41_handle_txfifo_intr);
-+
- /**
-  * cppi41_dma_controller_create -
-  * instantiate an object representing DMA controller.
-@@ -1386,6 +1447,7 @@ cppi41_dma_controller_create(struct musb  *musb, void __iomem *mregs)
- 	cppi->controller.channel_abort = cppi41_channel_abort;
- 	cppi->cppi_info = (struct usb_cppi41_info *)&usb_cppi41_info[musb->id];;
- 	cppi->en_bd_intr = cppi->cppi_info->bd_intr_ctrl;
-+	cppi->txfifo_intr_enable = musb->txfifo_intr_enable;
- 	INIT_WORK(&cppi->txdma_work, txdma_completion_work);
- 
- 	/*
-@@ -1472,6 +1534,9 @@ static void usb_process_tx_queue(struct cppi41 *cppi, unsigned index)
- 		    (tx_ch->transfer_mode && !tx_ch->zlp_queued))
- 			cppi41_next_tx_segment(tx_ch);
- 		else if (tx_ch->channel.actual_len >= tx_ch->length) {
-+			void __iomem *epio;
-+			u16 csr;
-+
- 			/*
- 			 * We get Tx DMA completion interrupt even when
- 			 * data is still in FIFO and not moved out to
-@@ -1480,8 +1545,34 @@ static void usb_process_tx_queue(struct cppi41 *cppi, unsigned index)
- 			 * USB functionality. So far, we have obsered
- 			 * failure with iperf.
- 			 */
--			tx_ch->tx_complete = 1;
--			schedule_work(&cppi->txdma_work);
-+			/* wait for tx fifo empty completion interrupt
-+			 * if enabled other wise use the workthread
-+			 * to poll fifo empty status
-+			 */
-+			epio = tx_ch->end_pt->regs;
-+			csr = musb_readw(epio, MUSB_TXCSR);
-+
-+			if (tx_ch->txfifo_intr_enable) {
-+				tx_ch->txf_complete = 1;
-+				dev_dbg(musb->controller,
-+				"wait for TxF-EmptyIntr ep%d\n", ep_num);
-+			} else {
-+				int residue;
-+
-+				residue = tx_ch->channel.actual_len %
-+						tx_ch->pkt_size;
-+
-+				if (tx_ch->pkt_size > 128 && !residue) {
-+					tx_ch->channel.status =
-+						MUSB_DMA_STATUS_FREE;
-+					musb_dma_completion(cppi->musb,
-+						ep_num, 1);
-+				} else {
-+					tx_ch->tx_complete = 1;
-+					tx_ch->count = 1;
-+					schedule_work(&cppi->txdma_work);
-+				}
-+			}
- 		}
- 	}
- }
-diff --git a/drivers/usb/musb/cppi41_dma.h b/drivers/usb/musb/cppi41_dma.h
-index bedf3bb..053a135 100644
---- a/drivers/usb/musb/cppi41_dma.h
-+++ b/drivers/usb/musb/cppi41_dma.h
-@@ -58,4 +58,11 @@ extern struct usb_cppi41_info usb_cppi41_info[];
-  */
- void cppi41_completion(struct musb *musb, u32 rx, u32 tx);
- 
-+/**
-+ * cppi41_handle_txfifo_intr - Handles tx fifo empty interupts
-+ * @musb:	the controller
-+ */
-+void cppi41_handle_txfifo_intr(struct musb *musb, u16 usbintr);
-+void txfifoempty_int_enable(struct musb *musb, u8 ep_num);
-+void txfifoempty_int_disable(struct musb *musb, u8 ep_num);
- #endif	/* _CPPI41_DMA_H_ */
-diff --git a/drivers/usb/musb/musb_core.h b/drivers/usb/musb/musb_core.h
-index 184c043..40f02ae 100644
---- a/drivers/usb/musb/musb_core.h
-+++ b/drivers/usb/musb/musb_core.h
-@@ -228,6 +228,8 @@ struct musb_platform_ops {
- 		void __iomem *);
- 	void (*dma_controller_destroy)(struct dma_controller *);
- 	int (*simulate_babble_intr)(struct musb *musb);
-+	void (*txfifoempty_intr_enable)(struct musb *musb, u8 ep_num);
-+	void (*txfifoempty_intr_disable)(struct musb *musb, u8 ep_num);
- };
- 
- /*
-@@ -278,6 +280,7 @@ struct musb_hw_ep {
- 	struct musb_ep		ep_out;			/* RX */
- 
- 	u8			prev_toggle;		/* Rx */
-+	u8			xfer_type;
- };
- 
- static inline struct musb_request *next_in_request(struct musb_hw_ep *hw_ep)
-@@ -472,6 +475,7 @@ struct musb {
- 	u64			*orig_dma_mask;
- #endif
- 	short			fifo_mode;
-+	u8			txfifo_intr_enable;
- };
- 
- static inline struct musb *gadget_to_musb(struct usb_gadget *g)
-@@ -562,6 +566,18 @@ extern irqreturn_t musb_interrupt(struct musb *);
- 
- extern void musb_hnp_stop(struct musb *musb);
- 
-+static inline void txfifoempty_int_enable(struct musb *musb, u8 ep_num)
-+{
-+	if (musb->ops->txfifoempty_intr_enable)
-+		musb->ops->txfifoempty_intr_enable(musb, ep_num);
-+}
-+
-+static inline void txfifoempty_int_disable(struct musb *musb, u8 ep_num)
-+{
-+	if (musb->ops->txfifoempty_intr_disable)
-+		musb->ops->txfifoempty_intr_disable(musb, ep_num);
-+}
-+
- static inline void musb_platform_set_vbus(struct musb *musb, int is_on)
- {
- 	if (musb->ops->set_vbus)
-diff --git a/drivers/usb/musb/musb_gadget.c b/drivers/usb/musb/musb_gadget.c
-index 305d843..47349ca 100644
---- a/drivers/usb/musb/musb_gadget.c
-+++ b/drivers/usb/musb/musb_gadget.c
-@@ -1020,6 +1020,7 @@ static int musb_gadget_enable(struct usb_ep *ep,
- 		goto fail;
- 	}
- 	musb_ep->type = usb_endpoint_type(desc);
-+	hw_ep->xfer_type = musb_ep->type;
- 
- 	/* check direction and (later) maxpacket size against endpoint */
- 	if (usb_endpoint_num(desc) != epnum)
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 80d83bd..c3629bd 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -246,6 +246,7 @@ musb_start_urb(struct musb *musb, int is_in, struct musb_qh *qh)
- 	/* initialize software qh state */
- 	qh->offset = 0;
- 	qh->segsize = 0;
-+	hw_ep->xfer_type = qh->type;
- 
- 	/* gather right source of data */
- 	switch (qh->type) {
-diff --git a/drivers/usb/musb/ti81xx.c b/drivers/usb/musb/ti81xx.c
-index f7b2f62..7e21c25 100644
---- a/drivers/usb/musb/ti81xx.c
-+++ b/drivers/usb/musb/ti81xx.c
-@@ -568,7 +568,6 @@ int cppi41_enable_sched_rx(void)
- 	cppi41_dma_sched_tbl_init(0, 0, dma_sched_table, 30);
- 	return 0;
- }
--#endif /* CONFIG_USB_TI_CPPI41_DMA */
- 
- /*
-  * Because we don't set CTRL.UINT, it's "important" to:
-@@ -577,6 +576,33 @@ int cppi41_enable_sched_rx(void)
-  *	- use INTSET/INTCLR instead.
-  */
- 
-+void txfifoempty_intr_enable(struct musb *musb, u8 ep_num)
-+{
-+	void __iomem *reg_base = musb->ctrl_base;
-+	u32 coremask;
-+
-+	if (musb->txfifo_intr_enable) {
-+		coremask = musb_readl(reg_base, USB_CORE_INTR_SET_REG);
-+		coremask |= (1 << (ep_num + 16));
-+		musb_writel(reg_base, USB_CORE_INTR_SET_REG, coremask);
-+		dev_dbg(musb->controller, "enable txF intr ep%d coremask %x\n",
-+			ep_num, coremask);
-+	}
-+}
-+
-+void txfifoempty_intr_disable(struct musb *musb, u8 ep_num)
-+{
-+	void __iomem *reg_base = musb->ctrl_base;
-+	u32 coremask;
-+
-+	if (musb->txfifo_intr_enable) {
-+		coremask = (1 << (ep_num + 16));
-+		musb_writel(reg_base, USB_CORE_INTR_CLEAR_REG, coremask);
-+	}
-+}
-+
-+#endif /* CONFIG_USB_TI_CPPI41_DMA */
-+
- /**
-  * ti81xx_musb_enable - enable interrupts
-  */
-@@ -889,6 +915,18 @@ static irqreturn_t ti81xx_interrupt(int irq, void *hci)
- 	musb->int_usb =	(usbintr & USB_INTR_USB_MASK) >> USB_INTR_USB_SHIFT;
- 
- 	dev_dbg(musb->controller, "usbintr (%x) epintr(%x)\n", usbintr, epintr);
-+
-+	if (musb->txfifo_intr_enable && (usbintr & USB_INTR_TXFIFO_MASK)) {
-+#ifdef CONFIG_USB_TI_CPPI41_DMA
-+		dev_dbg(musb->controller,
-+			"TxFIFOIntr %x\n", usbintr >> USB_INTR_TXFIFO_EMPTY);
-+		cppi41_handle_txfifo_intr(musb,
-+				usbintr >> USB_INTR_TXFIFO_EMPTY);
-+		ret = IRQ_HANDLED;
-+#endif
-+	}
-+	usbintr &= ~USB_INTR_TXFIFO_MASK;
-+
- 	/*
- 	 * DRVVBUS IRQs are the only proxy we have (a very poor one!) for
- 	 * AM3517's missing ID change IRQ.  We need an ID change IRQ to
-@@ -1108,6 +1146,13 @@ int ti81xx_musb_init(struct musb *musb)
- 	/* set musb controller to host mode */
- 	musb_platform_set_mode(musb, mode);
- 
-+#ifdef CONFIG_USB_TI_CPPI41_DMA
-+	musb->txfifo_intr_enable = 1;
-+	if (musb->txfifo_intr_enable)
-+		printk(KERN_DEBUG "TxFifo Empty intr enabled\n");
-+	else
-+		printk(KERN_DEBUG "TxFifo Empty intr disabled\n");
-+#endif
- 	/* enable babble workaround */
- 	INIT_WORK(&musb->work, evm_deferred_musb_restart);
- 	musb->enable_babble_work = 0;
-@@ -1184,6 +1229,10 @@ static struct musb_platform_ops ti81xx_ops = {
- 	.dma_controller_create	= cppi41_dma_controller_create,
- 	.dma_controller_destroy	= cppi41_dma_controller_destroy,
- 	.simulate_babble_intr	= musb_simulate_babble,
-+#ifdef CONFIG_USB_TI_CPPI41_DMA
-+	.txfifoempty_intr_enable = txfifoempty_intr_enable,
-+	.txfifoempty_intr_disable = txfifoempty_intr_disable,
-+#endif
- };
- 
- static void __devexit ti81xx_delete_musb_pdev(struct ti81xx_glue *glue, u8 id)
-diff --git a/drivers/usb/musb/ti81xx.h b/drivers/usb/musb/ti81xx.h
-index e0dbd3e..d173b55 100644
---- a/drivers/usb/musb/ti81xx.h
-+++ b/drivers/usb/musb/ti81xx.h
-@@ -125,6 +125,9 @@
- /* USB interrupt register bits */
- #define USB_INTR_USB_SHIFT      0
- #define USB_INTR_USB_MASK       (0x1ff << USB_INTR_USB_SHIFT) /* 8 Mentor */
-+#define USB_INTR_TXFIFO_MASK     (0xffff << 16)
-+#define USB_INTR_TXFIFO_EMPTY	17
-+
- 				/* interrupts and DRVVBUS interrupt */
- #define USB_INTR_DRVVBUS        0x100
- #define USB_INTR_RX_SHIFT       16
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0011-usb-musb-host-Flush-txfifo-only-if-TxPktRdy-bit-set.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0011-usb-musb-host-Flush-txfifo-only-if-TxPktRdy-bit-set.patch
deleted file mode 100644
index cd7a96b..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0011-usb-musb-host-Flush-txfifo-only-if-TxPktRdy-bit-set.patch
+++ /dev/null
@@ -1,57 +0,0 @@
-From e5fad55642b91e45ed640c546dd10bd454b6e4df Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Thu, 24 May 2012 15:42:53 +0530
-Subject: [PATCH 11/18] usb: musb: host: Flush txfifo only if TxPktRdy bit set
-
-This is needed as per mentor core documents.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/musb_host.c |   23 ++++++++++++-----------
- 1 files changed, 12 insertions(+), 11 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index c3629bd..7545a65 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -133,25 +133,26 @@ static void musb_h_tx_flush_fifo(struct musb_hw_ep *ep)
- 	struct musb	*musb = ep->musb;
- 	void __iomem	*epio = ep->regs;
- 	u16		csr;
--	u16		lastcsr = 0;
- 	int		retries = 1000;
- 
- 	csr = musb_readw(epio, MUSB_TXCSR);
--	while (csr & MUSB_TXCSR_FIFONOTEMPTY) {
--		if (csr != lastcsr)
--			dev_dbg(musb->controller, "Host TX FIFONOTEMPTY csr: %02x\n", csr);
--		lastcsr = csr;
--		csr = MUSB_TXCSR_FLUSHFIFO;
-+	while (csr & MUSB_TXCSR_TXPKTRDY) {
-+		if (!(csr & MUSB_TXCSR_FIFONOTEMPTY))
-+			return;
-+		else
-+			dev_dbg(musb->controller,
-+				"Host TX FIFONOTEMPTY csr: %02x\n", csr);
-+
-+		csr |= MUSB_TXCSR_FLUSHFIFO;
- 		musb_writew(epio, MUSB_TXCSR, csr);
- 		csr = musb_readw(epio, MUSB_TXCSR);
--		if (!(csr & MUSB_TXCSR_FIFONOTEMPTY))
--			break;
-+
- 		if (retries-- < 1) {
--			dev_dbg(musb->controller, "Could not flush host TX%d fifo: csr: %04x\n",
--				ep->epnum, csr);
-+			dev_dbg(musb->controller,
-+				"Could not flush host TX%d fifo: csr: %04x\n",
-+					ep->epnum, csr);
- 			return;
- 		}
--		mdelay(1);
- 	}
- }
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch
deleted file mode 100644
index 0edb255..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From 946a82d6042097a0b3c5e072df75da9ffcbbc44c Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Thu, 24 May 2012 15:45:45 +0530
-Subject: [PATCH 12/18] usb: musb: cppi41: use dsb() to make sure PDs are
- updated to memory
-
-Before pushing the tx/rx cppi packet descriptors to respective input queues
-of TX/RX DMA channels, use memory barrier dsb() to make sure the descriptors
-contents are written to memory
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/cppi41_dma.c |    7 +++++++
- 1 files changed, 7 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/musb/cppi41_dma.c b/drivers/usb/musb/cppi41_dma.c
-index 3665d0f..bf74cf3 100644
---- a/drivers/usb/musb/cppi41_dma.c
-+++ b/drivers/usb/musb/cppi41_dma.c
-@@ -653,6 +653,9 @@ static unsigned cppi41_next_tx_segment(struct cppi41_channel *tx_ch)
- 		dev_dbg(musb->controller, "TX PD %p: buf %08x, len %08x, pkt info %08x\n", curr_pd,
- 		    hw_desc->buf_ptr, hw_desc->buf_len, hw_desc->pkt_info);
- 
-+		/* make sure descriptor details are updated to memory*/
-+		dsb();
-+
- 		/* enable tx fifo empty interrupt */
- 		if (tx_ch->txfifo_intr_enable) {
- 			dev_dbg(musb->controller, "txs(%p %d) enable txFintr\n",
-@@ -869,6 +872,10 @@ static unsigned cppi41_next_rx_segment(struct cppi41_channel *rx_ch)
- 
- 		if (en_bd_intr)
- 			hw_desc->orig_buf_len |= CPPI41_PKT_INTR_FLAG;
-+
-+		/* make sure descriptor details are updated to memory*/
-+		dsb();
-+
- 		/*
- 		 * Push the free Rx packet descriptor
- 		 * to the free descriptor/buffer queue.
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0013-usb-musb-cppi41-fix-zero-byte-OUT-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0013-usb-musb-cppi41-fix-zero-byte-OUT-issue.patch
deleted file mode 100644
index 11f05c1..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0013-usb-musb-cppi41-fix-zero-byte-OUT-issue.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 4fbf77cebc6d141b9a74a92fd2b3f756908ef657 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Wed, 18 Apr 2012 00:16:03 +0530
-Subject: [PATCH 13/18] usb: musb: cppi41: fix zero byte OUT issue
-
-Fixes ZERO byte transfer in tx direction which was not being done in DMA mode.
-Used PIO mode for all zero byte tx transfer.
----
- drivers/usb/musb/musb_host.c |   12 +++++++++++-
- 1 files changed, 11 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 7545a65..8981586 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -761,6 +761,8 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
- 	void __iomem		*epio = hw_ep->regs;
- 	struct musb_qh		*qh = musb_ep_get_qh(hw_ep, !is_out);
- 	u16			packet_sz = qh->maxpacket;
-+	u8			use_dma = 1;
-+	u16			csr;
- 
- 	dev_dbg(musb->controller, "%s hw%d urb %p spd%d dev%d ep%d%s "
- 				"h_addr%02x h_port%02x bytes %d\n",
-@@ -772,9 +774,17 @@ static void musb_ep_program(struct musb *musb, u8 epnum,
- 
- 	musb_ep_select(musb, mbase, epnum);
- 
-+	if (is_out && !len) {
-+		use_dma = 0;
-+		csr = musb_readw(epio, MUSB_TXCSR);
-+		csr &= ~MUSB_TXCSR_DMAENAB;
-+		musb_writew(epio, MUSB_TXCSR, csr);
-+		hw_ep->tx_channel = NULL;
-+	}
-+
- 	/* candidate for DMA? */
- 	dma_controller = musb->dma_controller;
--	if (is_dma_capable() && epnum && dma_controller) {
-+	if (use_dma && is_dma_capable() && epnum && dma_controller) {
- 		dma_channel = is_out ? hw_ep->tx_channel : hw_ep->rx_channel;
- 		if (!dma_channel) {
- 			dma_channel = dma_controller->channel_alloc(
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0014-usb-musb-host-fix-for-urb-error-handling.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0014-usb-musb-host-fix-for-urb-error-handling.patch
deleted file mode 100644
index 8831c2c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0014-usb-musb-host-fix-for-urb-error-handling.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 984969ee49797eadbfd4ca72f1d55c6ac52b4db6 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Thu, 24 May 2012 15:56:37 +0530
-Subject: [PATCH 14/18] usb: musb: host: fix for urb error handling
-
-Fixes below two issues related urb error handling
-
-1) Handling incomplete transfer when short packet not expected
-
-2) Do not start next urb when current urb has failed, this is
-   because stack will unlink/dequeue remaining urbs. Programming
-   the next urb will endup in urb completion because of expected
-   error (cause of current urb failure) interrupts and interfere
-   with urb dequeue initiated by stack and cause a crash.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
-Signed-off-by: Visuvanadan Pasupathy <vichu at ti.com>
----
- drivers/usb/musb/musb_host.c |   24 +++++++++++++++++++++---
- 1 files changed, 21 insertions(+), 3 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 8981586..13520ee 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -481,7 +481,14 @@ static void musb_advance_schedule(struct musb *musb, struct urb *urb,
- 		}
- 	}
- 
--	if (qh != NULL && qh->is_ready) {
-+	/* we should not start next urb when current urb
-+	 * has failed, this is because stack will unlink/dequeue
-+	 * remaining urbs. Programming the next urb will endup in
-+	 * urb completion because of expected error (cause of current
-+	 * urb failure) interrupts and interfere with urb dequeue
-+	 * initiated by stack and cause a crash.
-+	 */
-+	if (status == 0 && qh != NULL && qh->is_ready) {
- 		dev_dbg(musb->controller, "... next ep%d %cX urb %p\n",
- 		    hw_ep->epnum, is_in ? 'R' : 'T', next_urb(qh));
- 		musb_start_urb(musb, is_in, qh);
-@@ -1891,8 +1898,19 @@ finish:
- 	urb->actual_length += xfer_len;
- 	qh->offset += xfer_len;
- 	if (done) {
--		if (urb->status == -EINPROGRESS)
--			urb->status = status;
-+		if (urb->status == -EINPROGRESS) {
-+			/* If short packet is not expected any transfer length
-+			 * less than actual length is an error, hence
-+			 * set urb status to -EREMOTEIO
-+			 */
-+			if ((urb->status == -EINPROGRESS)
-+				&& (urb->transfer_flags & URB_SHORT_NOT_OK)
-+				&& (urb->actual_length
-+					< urb->transfer_buffer_length))
-+				urb->status = -EREMOTEIO;
-+			else
-+				urb->status = status;
-+		}
- 		musb_advance_schedule(musb, urb, hw_ep, USB_DIR_IN);
- 	}
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0015-usb-musb-cppi41-txdma-flushfifo-fixes-during-channel.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0015-usb-musb-cppi41-txdma-flushfifo-fixes-during-channel.patch
deleted file mode 100644
index 4bf3144..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0015-usb-musb-cppi41-txdma-flushfifo-fixes-during-channel.patch
+++ /dev/null
@@ -1,50 +0,0 @@
-From a67c22912417f2b4c22f063767405992e702efbe Mon Sep 17 00:00:00 2001
-From: Ravi B <ravibabu at ti.com>
-Date: Thu, 10 May 2012 17:05:41 +0530
-Subject: [PATCH 15/18] usb: musb: cppi41: txdma flushfifo fixes during
- channel abort
-
-This patch fixes the flushfifo sequence during tx dma channel
-abort, the txfifo should be flushed only when the TXPKTRDY bit
-is set in TXCSR register.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/cppi41_dma.c |   14 +++++++++-----
- 1 files changed, 9 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/musb/cppi41_dma.c b/drivers/usb/musb/cppi41_dma.c
-index bf74cf3..4367e4f 100644
---- a/drivers/usb/musb/cppi41_dma.c
-+++ b/drivers/usb/musb/cppi41_dma.c
-@@ -1198,7 +1198,7 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 	void __iomem *reg_base, *epio;
- 	unsigned long pd_addr;
- 	u32 csr, td_reg;
--	u8 ch_num, ep_num;
-+	u8 ch_num, ep_num, i;
- 
- 	cppi_ch = container_of(channel, struct cppi41_channel, channel);
- 	ch_num = cppi_ch->ch_num;
-@@ -1250,10 +1250,14 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 		musb_writel(reg_base, cppi->teardown_reg_offs, td_reg);
- 
- 		/* Flush FIFO of the endpoint */
--		csr  = musb_readw(epio, MUSB_TXCSR);
--		csr |= MUSB_TXCSR_FLUSHFIFO | MUSB_TXCSR_H_WZC_BITS;
--		musb_writew(epio, MUSB_TXCSR, csr);
--		musb_writew(epio, MUSB_TXCSR, csr);
-+		for (i = 0; i < 2; ++i) {
-+			csr  = musb_readw(epio, MUSB_TXCSR);
-+			if (csr & MUSB_TXCSR_TXPKTRDY) {
-+				csr |= MUSB_TXCSR_FLUSHFIFO |
-+					MUSB_TXCSR_H_WZC_BITS;
-+				musb_writew(epio, MUSB_TXCSR, csr);
-+			}
-+		}
- 	} else { /* Rx */
- 		dprintk("Rx channel teardown, cppi_ch = %p\n", cppi_ch);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0016-usb-musb-cppi41-tx-dma-completion-fixes.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0016-usb-musb-cppi41-tx-dma-completion-fixes.patch
deleted file mode 100644
index 9798397..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0016-usb-musb-cppi41-tx-dma-completion-fixes.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 2e3ec89c3e6cf54d83479d7437696343463c90e5 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Thu, 24 May 2012 16:03:02 +0530
-Subject: [PATCH 16/18] usb: musb: cppi41: tx dma completion fixes
-
-Use spinlock_irqsave/restore only during txdma completion giveback.
-
-Signed-off-by: Ravi B <ravibabu at ti.com>
----
- drivers/usb/musb/cppi41_dma.c |    5 +++--
- 1 files changed, 3 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/usb/musb/cppi41_dma.c b/drivers/usb/musb/cppi41_dma.c
-index 4367e4f..ea83f9a 100644
---- a/drivers/usb/musb/cppi41_dma.c
-+++ b/drivers/usb/musb/cppi41_dma.c
-@@ -1354,7 +1354,6 @@ void txdma_completion_work(struct work_struct *data)
- 			u16 csr;
- 
- 			tx_ch = &cppi->tx_cppi_ch[index];
--			spin_lock_irqsave(&musb->lock, flags);
- 			if (tx_ch->tx_complete) {
- 				/* Sometimes a EP can unregister from a DMA
- 				 * channel while the data is still in the FIFO.
-@@ -1384,10 +1383,12 @@ void txdma_completion_work(struct work_struct *data)
- 					tx_ch->channel.status =
- 						MUSB_DMA_STATUS_FREE;
- 					tx_ch->tx_complete = 0;
-+					spin_lock_irqsave(&musb->lock, flags);
- 					musb_dma_completion(musb, index+1, 1);
-+					spin_unlock_irqrestore(&musb->lock,
-+						flags);
- 				}
- 			}
--			spin_unlock_irqrestore(&musb->lock, flags);
- 
- 			if (!resched)
- 				cond_resched();
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0017-usb-musb-host-Flush-RxFIFO-only-when-RxPktRdy-is-set.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0017-usb-musb-host-Flush-RxFIFO-only-when-RxPktRdy-is-set.patch
deleted file mode 100644
index c291207..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0017-usb-musb-host-Flush-RxFIFO-only-when-RxPktRdy-is-set.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From c336629a155593e443ba21a0734b3c519a61e560 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Thu, 24 May 2012 16:31:27 +0530
-Subject: [PATCH 17/18] usb: musb: host: Flush RxFIFO only when RxPktRdy is
- set
-
-This need to be done as per mentor core documentations.
-
-Signed-off-by: Ajay Kumar Gupta <ajay.gupta at ti.com>
----
- drivers/usb/musb/musb_host.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 13520ee..f56fde2 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -507,7 +507,8 @@ static u16 musb_h_flush_rxfifo(struct musb_hw_ep *hw_ep, u16 csr)
- 	 * ignore dma (various models),
- 	 * leave toggle alone (may not have been saved yet)
- 	 */
--	csr |= MUSB_RXCSR_FLUSHFIFO | MUSB_RXCSR_RXPKTRDY;
-+	if (csr & MUSB_RXCSR_RXPKTRDY)
-+		csr |= MUSB_RXCSR_FLUSHFIFO | MUSB_RXCSR_RXPKTRDY;
- 	csr &= ~(MUSB_RXCSR_H_REQPKT
- 		| MUSB_RXCSR_H_AUTOREQ
- 		| MUSB_RXCSR_AUTOCLEAR);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0018-usb-musb-ti81xx-fix-role-switching-issue.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0018-usb-musb-ti81xx-fix-role-switching-issue.patch
deleted file mode 100644
index d923f08..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0018-usb-musb-ti81xx-fix-role-switching-issue.patch
+++ /dev/null
@@ -1,65 +0,0 @@
-From f2ddff7377332c9e18878aaa84456d01fcf1d39e Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Fri, 25 May 2012 11:59:20 +0530
-Subject: [PATCH 18/18] usb: musb: ti81xx: fix role switching issue
-
-Fixing the role switching issue seen when followed steps below:
-
-a) Configure port in OTG mode
-b) Connect MSC device through micro-A-plug to std-A-receptacle
-c) MSC enumerated and works fine.
-d) Disconnect MSC device and let cable be connected to port
-e) Now disconnect cable also
-f) Connect port to host PC using micro-B plug to std-A plug.
-e) PC doesn't recognise the gadget driver.
----
- drivers/usb/musb/ti81xx.c |   26 +++++++++++++++++++++-----
- 1 files changed, 21 insertions(+), 5 deletions(-)
-
-diff --git a/drivers/usb/musb/ti81xx.c b/drivers/usb/musb/ti81xx.c
-index 7e21c25..6b0eb9e 100644
---- a/drivers/usb/musb/ti81xx.c
-+++ b/drivers/usb/musb/ti81xx.c
-@@ -708,6 +708,12 @@ static void otg_timer(unsigned long _musb)
- 		devctl = musb_readb(mregs, MUSB_DEVCTL);
- 		if (devctl & MUSB_DEVCTL_HM) {
- 			musb->xceiv->state = OTG_STATE_A_IDLE;
-+		} else if ((devctl & MUSB_DEVCTL_SESSION) &&
-+				!(devctl & MUSB_DEVCTL_BDEVICE)) {
-+			mod_timer(&musb->otg_workaround,
-+					jiffies + POLL_SECONDS * HZ);
-+			musb_writeb(musb->mregs, MUSB_DEVCTL, devctl &
-+				~MUSB_DEVCTL_SESSION);
- 		} else {
- 			mod_timer(&musb->otg_workaround,
- 					jiffies + POLL_SECONDS * HZ);
-@@ -976,11 +982,21 @@ static irqreturn_t ti81xx_interrupt(int irq, void *hci)
- 						jiffies + POLL_SECONDS * HZ);
- 			WARNING("VBUS error workaround (delay coming)\n");
- 		} else if (is_host_enabled(musb) && drvvbus) {
--			musb->is_active = 1;
--			MUSB_HST_MODE(musb);
--			musb->xceiv->default_a = 1;
--			musb->xceiv->state = OTG_STATE_A_WAIT_VRISE;
--			del_timer(&musb->otg_workaround);
-+			if ((devctl & MUSB_DEVCTL_SESSION) &&
-+				!(devctl & MUSB_DEVCTL_BDEVICE) &&
-+				!(devctl & MUSB_DEVCTL_HM)) {
-+				dev_dbg(musb->controller,
-+					"Only micro-A plug is connected\n");
-+			} else {
-+				if (musb->is_active)
-+					del_timer(&musb->otg_workaround);
-+				else
-+					musb->is_active = 1;
-+
-+				MUSB_HST_MODE(musb);
-+				musb->xceiv->default_a = 1;
-+				musb->xceiv->state = OTG_STATE_A_WAIT_VRISE;
-+			}
- 		} else {
- 			musb->is_active = 0;
- 			MUSB_DEV_MODE(musb);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0019-MMC-OMAP-HS-Enable-HSPE-bit-for-high-speed-cards.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0019-MMC-OMAP-HS-Enable-HSPE-bit-for-high-speed-cards.patch
deleted file mode 100644
index 43e5feb..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/psp/0019-MMC-OMAP-HS-Enable-HSPE-bit-for-high-speed-cards.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-From 97ffca5e70b312b81bdf095d1d2a104fdaa98aba Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Mon, 4 Jun 2012 18:45:45 +0530
-Subject: [PATCH 19/19] MMC: OMAP-HS: Enable HSPE bit for high speed cards.
-
-By outputting CMD line and DAT lines at the rising edge of the SD clock,
-setup timings is increased and allows reaching higher bus frequency.
-This feature is activated by setting SD_HCTL[2] HSPE bit to 1. This is
-required for High Speed Cards.
-
-When card is operating at high speed, MMC/SD serial output clock is set
-to >25 MHz. This patch makes use of this clock value to set HSPE.
-
-Also, this bit will be cleared on card removal & for non-high speed
-cards.
-
-Tested on High speed cards (SDHC class 10, micro SDHC class 4) and
-normal speed cards like SDHC class 4.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- drivers/mmc/host/omap_hsmmc.c |   14 +++++++++++++-
- 1 file changed, 13 insertions(+), 1 deletion(-)
-
-diff --git a/drivers/mmc/host/omap_hsmmc.c b/drivers/mmc/host/omap_hsmmc.c
-index 1f938d9..22da8f2 100644
---- a/drivers/mmc/host/omap_hsmmc.c
-+++ b/drivers/mmc/host/omap_hsmmc.c
-@@ -90,6 +90,7 @@
- #define MSBS			(1 << 5)
- #define BCE			(1 << 1)
- #define FOUR_BIT		(1 << 1)
-+#define HSPE			(1 << 2)
- #define DVAL_MASK		(3 << 9)
- #define DVAL_MAX		(3 << 9)	/* 8.4 ms debounce period */
- #define WPP_MASK		(1 << 8)
-@@ -634,14 +635,25 @@ static void omap_hsmmc_set_clock(struct omap_hsmmc_host *host)
- 	struct mmc_ios *ios = &host->mmc->ios;
- 	unsigned long regval;
- 	unsigned long timeout;
-+	unsigned long clkdiv;
- 
- 	dev_dbg(mmc_dev(host->mmc), "Set clock to %uHz\n", ios->clock);
- 
-+	clkdiv = calc_divisor(host, ios);
-+	regval = OMAP_HSMMC_READ(host->base, HCTL);
-+	/* Enable HSPE bit for high speed card */
-+	if (ios->clock && (clk_get_rate(host->fclk)/clkdiv) > 25000000)
-+		regval |= HSPE;
-+	else
-+		regval &= ~HSPE;
-+
-+	OMAP_HSMMC_WRITE(host->base, HCTL, regval);
-+
- 	omap_hsmmc_stop_clock(host);
- 
- 	regval = OMAP_HSMMC_READ(host->base, SYSCTL);
- 	regval = regval & ~(CLKD_MASK | DTO_MASK);
--	regval = regval | (calc_divisor(host, ios) << 6) | (DTO << 16);
-+	regval = regval | (clkdiv << 6) | (DTO << 16);
- 	OMAP_HSMMC_WRITE(host->base, SYSCTL, regval);
- 	OMAP_HSMMC_WRITE(host->base, SYSCTL,
- 		OMAP_HSMMC_READ(host->base, SYSCTL) | ICE);
--- 
-1.7.9.5
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0001-PWM-ecap-Correct-configuration-of-polarity.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0001-PWM-ecap-Correct-configuration-of-polarity.patch
deleted file mode 100644
index 1d17a8c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0001-PWM-ecap-Correct-configuration-of-polarity.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-From 0a2068b30dcf949b2852511c4c909e5283cbd540 Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Fri, 18 May 2012 12:10:36 +0530
-Subject: [PATCH 1/6] PWM: ecap: Correct configuration of polarity
-
-1. ECAP driver configures PWM polarity wrongly. For example if polarity
-configured low and duty percentage to 20%, PWM output should be 20% low
-and 80% high. However behavior is inverted here.
-
-2. Also reading back from SYSFS interface for polarity always gives 0.
-
-This patch fixes both.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- drivers/pwm/ecap.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/pwm/ecap.c b/drivers/pwm/ecap.c
-index 63c2405..614be36 100644
---- a/drivers/pwm/ecap.c
-+++ b/drivers/pwm/ecap.c
-@@ -121,7 +121,7 @@ static int ecap_pwm_set_polarity(struct pwm_device *p, char pol)
- 	spin_lock_irqsave(&ep->lock, flags);
- 	v = readw(ep->mmio_base + CAPTURE_CTRL2_REG);
- 	v &= ~ECTRL2_PLSL_LOW;
--	v |= (!pol << 10);
-+	v |= pol << 10;
- 	writew(v, ep->mmio_base + CAPTURE_CTRL2_REG);
- 	spin_unlock_irqrestore(&ep->lock, flags);
- 
-@@ -188,6 +188,7 @@ static int ecap_pwm_config(struct pwm_device *p,
- 		break;
- 
- 	case BIT(PWM_CONFIG_POLARITY):
-+		p->active_high = c->polarity;
- 		ret = ecap_pwm_set_polarity(p, c->polarity);
- 		break;
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0002-ARM-OMAP2-am335x-mux-add-ecap2_in_pwm2_out-string-en.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0002-ARM-OMAP2-am335x-mux-add-ecap2_in_pwm2_out-string-en.patch
deleted file mode 100644
index 009c785..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0002-ARM-OMAP2-am335x-mux-add-ecap2_in_pwm2_out-string-en.patch
+++ /dev/null
@@ -1,29 +0,0 @@
-From c2496a91c7a198e0713a00d5d8a3e6d6dd8eea30 Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Wed, 16 May 2012 09:43:56 +0530
-Subject: [PATCH 2/6] ARM: OMAP2+: am335x-mux: add ecap2_in_pwm2_out string
- entry
-
-On am335x-sk board, backlight is control through ecap 2.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- arch/arm/mach-omap2/mux33xx.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/mux33xx.c b/arch/arm/mach-omap2/mux33xx.c
-index 59e51e0..5749d20 100644
---- a/arch/arm/mach-omap2/mux33xx.c
-+++ b/arch/arm/mach-omap2/mux33xx.c
-@@ -340,7 +340,7 @@ static struct omap_mux __initdata am33xx_muxmodes[] = {
- 		"mmc2_sdcd", NULL, NULL, "gpio3_16"),
- 	_AM33XX_MUXENTRY(MCASP0_AHCLKR, 0,
- 		"mcasp0_ahclkr", NULL, "mcasp0_axr2", "spi1_cs0",
--		NULL, NULL, NULL, "gpio3_17"),
-+		"ecap2_in_pwm2_out", NULL, NULL, "gpio3_17"),
- 	_AM33XX_MUXENTRY(MCASP0_ACLKR, 0,
- 		"mcasp0_aclkr", NULL, "mcasp0_axr2", "mcasp1_aclkx",
- 		"mmc0_sdwp", NULL, NULL, "gpio3_18"),
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0003-ARM-OMAP2-AM335x-hwmod-Remove-PRCM-entries-for-PWMSS.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0003-ARM-OMAP2-AM335x-hwmod-Remove-PRCM-entries-for-PWMSS.patch
deleted file mode 100644
index fcdc5b2..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0003-ARM-OMAP2-AM335x-hwmod-Remove-PRCM-entries-for-PWMSS.patch
+++ /dev/null
@@ -1,107 +0,0 @@
-From 3c42d32f6dac363c3a7e3fa491278592409498cf Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Tue, 7 Aug 2012 18:25:50 +0530
-Subject: [PATCH 3/6] ARM: OMAP2+: AM335x: hwmod: Remove PRCM entries for
- PWMSS
-
-PWMSS clock resources being used as a shared resource for eCAP & eHRPWM
-OMAP devices. However OMAP hwmod didn't protect the race condition for
-accessing shared resources from independent OMAP devices. So removes
-PRCM entries, so that clock framework takes care of clock synchronization
-between eCAP & eHRPWM devices.
-
-NOTE:
-With removal .prcm hwmod data, clock enabling is happening from clock
-frame work. With clock framework, usecount entry in struct clk takes
-care the race condition.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- arch/arm/mach-omap2/omap_hwmod_33xx_data.c |   36 ----------------------------
- 1 files changed, 0 insertions(+), 36 deletions(-)
-
-diff --git a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-index 9d3c9a5..832bba3 100644
---- a/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-+++ b/arch/arm/mach-omap2/omap_hwmod_33xx_data.c
-@@ -729,12 +729,6 @@ static struct omap_hwmod am33xx_ehrpwm0_hwmod = {
- 	.class		= &am33xx_epwmss_hwmod_class,
- 	.main_clk	= "epwmss0_fck",
- 	.clkdm_name	= "l4ls_clkdm",
--	.prcm		= {
--		.omap4	= {
--			.clkctrl_offs	= AM33XX_CM_PER_EPWMSS0_CLKCTRL_OFFSET,
--			.modulemode	= MODULEMODE_SWCTRL,
--		},
--	},
- 	.slaves		= am33xx_ehrpwm0_slaves,
- 	.slaves_cnt	= ARRAY_SIZE(am33xx_ehrpwm0_slaves),
- 	.opt_clks	= ehrpwm0_opt_clks,
-@@ -787,12 +781,6 @@ static struct omap_hwmod am33xx_ehrpwm1_hwmod = {
- 	.class		= &am33xx_epwmss_hwmod_class,
- 	.main_clk	= "epwmss1_fck",
- 	.clkdm_name	= "l4ls_clkdm",
--	.prcm		= {
--		.omap4	= {
--			.clkctrl_offs	= AM33XX_CM_PER_EPWMSS1_CLKCTRL_OFFSET,
--			.modulemode	= MODULEMODE_SWCTRL,
--		},
--	},
- 	.slaves		= am33xx_ehrpwm1_slaves,
- 	.slaves_cnt	= ARRAY_SIZE(am33xx_ehrpwm1_slaves),
- 	.opt_clks	= ehrpwm1_opt_clks,
-@@ -845,12 +833,6 @@ static struct omap_hwmod am33xx_ehrpwm2_hwmod = {
- 	.class		= &am33xx_epwmss_hwmod_class,
- 	.main_clk	= "epwmss2_fck",
- 	.clkdm_name	= "l4ls_clkdm",
--	.prcm		= {
--		.omap4	= {
--			.clkctrl_offs	= AM33XX_CM_PER_EPWMSS2_CLKCTRL_OFFSET,
--			.modulemode	= MODULEMODE_SWCTRL,
--		},
--	},
- 	.slaves		= am33xx_ehrpwm2_slaves,
- 	.slaves_cnt	= ARRAY_SIZE(am33xx_ehrpwm2_slaves),
- 	.opt_clks	= ehrpwm2_opt_clks,
-@@ -898,12 +880,6 @@ static struct omap_hwmod am33xx_ecap0_hwmod = {
- 	.class		= &am33xx_epwmss_hwmod_class,
- 	.main_clk	= "epwmss0_fck",
- 	.clkdm_name	= "l4ls_clkdm",
--	.prcm		= {
--		.omap4	= {
--			.clkctrl_offs	= AM33XX_CM_PER_EPWMSS0_CLKCTRL_OFFSET,
--			.modulemode	= MODULEMODE_SWCTRL,
--		},
--	},
- 	.slaves		= am33xx_ecap0_slaves,
- 	.slaves_cnt	= ARRAY_SIZE(am33xx_ecap0_slaves),
- };
-@@ -949,12 +925,6 @@ static struct omap_hwmod am33xx_ecap1_hwmod = {
- 	.class		= &am33xx_epwmss_hwmod_class,
- 	.main_clk	= "epwmss1_fck",
- 	.clkdm_name	= "l4ls_clkdm",
--	.prcm		= {
--		.omap4	= {
--			.clkctrl_offs	= AM33XX_CM_PER_EPWMSS1_CLKCTRL_OFFSET,
--			.modulemode	= MODULEMODE_SWCTRL,
--		},
--	},
- 	.slaves		= am33xx_ecap1_slaves,
- 	.slaves_cnt	= ARRAY_SIZE(am33xx_ecap1_slaves),
- };
-@@ -1000,12 +970,6 @@ static struct omap_hwmod am33xx_ecap2_hwmod = {
- 	.class		= &am33xx_epwmss_hwmod_class,
- 	.clkdm_name	= "l4ls_clkdm",
- 	.main_clk	= "epwmss2_fck",
--	.prcm		= {
--		.omap4	= {
--			.clkctrl_offs	= AM33XX_CM_PER_EPWMSS2_CLKCTRL_OFFSET,
--			.modulemode	= MODULEMODE_SWCTRL,
--		},
--	},
- 	.slaves		= am33xx_ecap2_slaves,
- 	.slaves_cnt	= ARRAY_SIZE(am33xx_ecap2_slaves),
- };
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0004-PWM-ecap-Resets-the-PWM-output-to-low-on-stop.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0004-PWM-ecap-Resets-the-PWM-output-to-low-on-stop.patch
deleted file mode 100644
index 781e690..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0004-PWM-ecap-Resets-the-PWM-output-to-low-on-stop.patch
+++ /dev/null
@@ -1,40 +0,0 @@
-From cd86d4c2a2a380a0824a08aed2d878c1d12a94e4 Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Wed, 8 Aug 2012 18:17:11 +0530
-Subject: [PATCH 4/6] PWM: ecap: Resets the PWM output to low on stop
-
-When PWM is stopped, the output on the PWM pin is not reset to low. This
-can result in un-predictable output (example pwm brightness goes to 100%
-if the line is high upon stop).
-This patch fixes by disabling APWM mode on stop & enable it on start.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- drivers/pwm/ecap.c |    4 ++--
- 1 files changed, 2 insertions(+), 2 deletions(-)
-
-diff --git a/drivers/pwm/ecap.c b/drivers/pwm/ecap.c
-index 614be36..670b32e 100644
---- a/drivers/pwm/ecap.c
-+++ b/drivers/pwm/ecap.c
-@@ -77,7 +77,7 @@ static int ecap_pwm_stop(struct pwm_device *p)
- 
- 	spin_lock_irqsave(&ep->lock, flags);
- 	v = readw(ep->mmio_base + CAPTURE_CTRL2_REG);
--	v &= ~ECTRL2_CTRSTP_FREERUN;
-+	v &= ~(ECTRL2_CTRSTP_FREERUN | ECTRL2_MDSL_ECAP);
- 	writew(v, ep->mmio_base + CAPTURE_CTRL2_REG);
- 	spin_unlock_irqrestore(&ep->lock, flags);
- 
-@@ -103,7 +103,7 @@ static int ecap_pwm_start(struct pwm_device *p)
- 
- 	spin_lock_irqsave(&ep->lock, flags);
- 	v = readw(ep->mmio_base + CAPTURE_CTRL2_REG);
--	v |= ECTRL2_CTRSTP_FREERUN;
-+	v |= (ECTRL2_CTRSTP_FREERUN | ECTRL2_MDSL_ECAP);
- 	writew(v, ep->mmio_base + CAPTURE_CTRL2_REG);
- 	spin_unlock_irqrestore(&ep->lock, flags);
- 	set_bit(FLAG_RUNNING, &p->flags);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0005-PWM-ecap-Fix-for-throwing-PWM-output-before-running.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0005-PWM-ecap-Fix-for-throwing-PWM-output-before-running.patch
deleted file mode 100644
index fb333d8..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0005-PWM-ecap-Fix-for-throwing-PWM-output-before-running.patch
+++ /dev/null
@@ -1,52 +0,0 @@
-From 16bfdd6480abb907b946d1c902205e6f03d7ed68 Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Tue, 14 Aug 2012 13:48:55 +0530
-Subject: [PATCH 5/6] PWM: ecap: Fix for throwing PWM output before running
-
-On configuring duty cycle, APWM mode is enabled and left enabled even if
-PWM not running. Fixes the same by disabling APWM mode if PWM device not
-running. This ensures PWM output is low if PWM device not running.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- drivers/pwm/ecap.c |   11 +++++++----
- 1 files changed, 7 insertions(+), 4 deletions(-)
-
-diff --git a/drivers/pwm/ecap.c b/drivers/pwm/ecap.c
-index 670b32e..864f3ee 100644
---- a/drivers/pwm/ecap.c
-+++ b/drivers/pwm/ecap.c
-@@ -131,16 +131,13 @@ static int ecap_pwm_set_polarity(struct pwm_device *p, char pol)
- 
- static int ecap_pwm_config_period(struct pwm_device *p)
- {
--	unsigned long flags, v;
-+	unsigned long flags;
- 	struct ecap_pwm *ep = to_ecap_pwm(p);
- 
- 	 pm_runtime_get_sync(ep->dev);
- 
- 	spin_lock_irqsave(&ep->lock, flags);
- 	writel((p->period_ticks) - 1, ep->mmio_base + CAPTURE_3_REG);
--	v = readw(ep->mmio_base + CAPTURE_CTRL2_REG);
--	v |= (ECTRL2_MDSL_ECAP | ECTRL2_SYNCOSEL_MASK);
--	writew(v, ep->mmio_base + CAPTURE_CTRL2_REG);
- 	spin_unlock_irqrestore(&ep->lock, flags);
- 
- 	pm_runtime_put_sync(ep->dev);
-@@ -167,6 +164,12 @@ static int ecap_pwm_config_duty(struct pwm_device *p)
- 	}
- 	spin_unlock_irqrestore(&ep->lock, flags);
- 
-+	if (!pwm_is_running(p)) {
-+		v = readw(ep->mmio_base + CAPTURE_CTRL2_REG);
-+		v &= ~ECTRL2_MDSL_ECAP;
-+		writew(v, ep->mmio_base + CAPTURE_CTRL2_REG);
-+	}
-+
- 	pm_runtime_put_sync(ep->dev);
- 	return 0;
- }
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0006-pwm-ehrpwm-Configure-polarity-on-pwm_start.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0006-pwm-ehrpwm-Configure-polarity-on-pwm_start.patch
deleted file mode 100644
index 3ebb6f7..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/pwm/0006-pwm-ehrpwm-Configure-polarity-on-pwm_start.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From 76361b6715c04d513b9f6bb4ec79ef2297eafe78 Mon Sep 17 00:00:00 2001
-From: "Philip, Avinash" <avinashphilip at ti.com>
-Date: Tue, 14 Aug 2012 13:50:37 +0530
-Subject: [PATCH 6/6] pwm: ehrpwm: Configure polarity on pwm_start
-
-Polarity of PWM device should done only from start. This helps in
-disabling polarity change even PWM device is running.
-
-Signed-off-by: Philip, Avinash <avinashphilip at ti.com>
----
- drivers/pwm/ehrpwm.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/pwm/ehrpwm.c b/drivers/pwm/ehrpwm.c
-index 8bbed87..636b0d9 100644
---- a/drivers/pwm/ehrpwm.c
-+++ b/drivers/pwm/ehrpwm.c
-@@ -1284,8 +1284,8 @@ static int ehrpwm_pwm_config(struct pwm_device *p,
- 		break;
- 
- 	case BIT(PWM_CONFIG_POLARITY):
-+		/* Polarity configuration done from pwm_start */
- 		p->active_high = c->polarity;
--		ret = ehrpwm_pwm_set_pol(p);
- 		break;
- 
- 	case BIT(PWM_CONFIG_START):
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0001-usb-musb-cppi41-revisit-the-teardown-path-to-fix-iso.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0001-usb-musb-cppi41-revisit-the-teardown-path-to-fix-iso.patch
deleted file mode 100644
index dd2e19a..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0001-usb-musb-cppi41-revisit-the-teardown-path-to-fix-iso.patch
+++ /dev/null
@@ -1,103 +0,0 @@
-From c2746810dc7bcaaae2dec493c501eb7213d14858 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Tue, 8 May 2012 12:05:47 +0530
-Subject: [PATCH 1/6] usb: musb: cppi41: revisit the teardown path to fix isoc
- issue
-
-Fixes the camera streaming issue when application is stopped and restarted multiple times.
-Changes:
-	- Disable DMAReq of TX/RX endpoints before teardown
-	- FIFO flush only when RxPktRdy is set
-	- Clear ReqPkt if in host mode.
----
- drivers/usb/musb/cppi41_dma.c |   42 ++++++++++++++++++++++++----------------
- drivers/usb/musb/musb_host.c  |    2 +-
- 2 files changed, 26 insertions(+), 18 deletions(-)
-
-diff --git a/drivers/usb/musb/cppi41_dma.c b/drivers/usb/musb/cppi41_dma.c
-index e4d3173..4761acd 100644
---- a/drivers/usb/musb/cppi41_dma.c
-+++ b/drivers/usb/musb/cppi41_dma.c
-@@ -1206,6 +1206,11 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 	if (cppi_ch->transmit) {
- 		dprintk("Tx channel teardown, cppi_ch = %p\n", cppi_ch);
- 
-+		/* disable the DMAreq before teardown */
-+		csr  = musb_readw(epio, MUSB_TXCSR);
-+		csr &= ~MUSB_TXCSR_DMAENAB;
-+		musb_writew(epio, MUSB_TXCSR, csr);
-+
- 		/* Tear down Tx DMA channel */
- 		usb_tx_ch_teardown(cppi_ch);
- 
-@@ -1223,11 +1228,30 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 	} else { /* Rx */
- 		dprintk("Rx channel teardown, cppi_ch = %p\n", cppi_ch);
- 
-+		/* disable the DMAreq and remove reqpkt */
-+		csr  = musb_readw(epio, MUSB_RXCSR);
-+		dev_dbg(musb->controller,
-+			"before rx-teardown: rxcsr %x rxcount %x\n", csr,
-+			musb_readw(epio, MUSB_RXCOUNT));
-+
-+		/* For host, clear (just) ReqPkt at end of current packet(s) */
-+		if (is_host_active(cppi->musb))
-+			csr &= ~MUSB_RXCSR_H_REQPKT;
-+
-+		csr &= ~MUSB_RXCSR_DMAENAB;
-+		musb_writew(epio, MUSB_RXCSR, csr);
-+
-+
- 		/* Flush FIFO of the endpoint */
- 		csr  = musb_readw(epio, MUSB_RXCSR);
--		csr |= MUSB_RXCSR_FLUSHFIFO | MUSB_RXCSR_H_WZC_BITS;
-+
-+		if (csr & MUSB_RXCSR_RXPKTRDY)
-+			csr |= MUSB_RXCSR_FLUSHFIFO;
-+
-+		csr |= MUSB_RXCSR_H_WZC_BITS;
- 		musb_writew(epio, MUSB_RXCSR, csr);
- 		musb_writew(epio, MUSB_RXCSR, csr);
-+		csr  = musb_readw(epio, MUSB_RXCSR);
- 
- 		/* Issue CPPI FIFO teardown for Rx channel */
- 		td_reg  = musb_readl(reg_base, cppi->teardown_reg_offs);
-@@ -1246,22 +1270,6 @@ static int cppi41_channel_abort(struct dma_channel *channel)
- 
- 		/* For host, ensure ReqPkt is never set again */
- 		cppi41_autoreq_update(cppi_ch, USB_NO_AUTOREQ);
--
--		/* For host, clear (just) ReqPkt at end of current packet(s) */
--		if (is_host_active(cppi->musb))
--			csr &= ~MUSB_RXCSR_H_REQPKT;
--		csr |= MUSB_RXCSR_H_WZC_BITS;
--
--		/* Clear DMA enable */
--		csr &= ~MUSB_RXCSR_DMAENAB;
--		musb_writew(epio, MUSB_RXCSR, csr);
--
--		/* Flush the FIFO of endpoint once again */
--		csr  = musb_readw(epio, MUSB_RXCSR);
--		csr |= MUSB_RXCSR_FLUSHFIFO | MUSB_RXCSR_H_WZC_BITS;
--		musb_writew(epio, MUSB_RXCSR, csr);
--
--		udelay(50);
- 	}
- 
- 	/*
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index d805d1b..2195633 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -2224,7 +2224,7 @@ static int musb_cleanup_urb(struct urb *urb, struct musb_qh *qh)
- 	}
- 
- 	/* turn off DMA requests, discard state, stop polling ... */
--	if (is_in) {
-+	if (is_in && ep->epnum) {
- 		/* giveback saves bulk toggle */
- 		csr = musb_h_flush_rxfifo(ep, 0);
- 
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0002-usb-musb-fix-bug-in-data-toggle-sw-workaround.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0002-usb-musb-fix-bug-in-data-toggle-sw-workaround.patch
deleted file mode 100644
index dab230c..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0002-usb-musb-fix-bug-in-data-toggle-sw-workaround.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-From a9e9e758646ee41289c0030645bbdd43c711e9c1 Mon Sep 17 00:00:00 2001
-From: Ajay Kumar Gupta <ajay.gupta at ti.com>
-Date: Fri, 18 May 2012 14:51:15 +0530
-Subject: [PATCH 2/6] usb: musb: fix bug in data toggle sw workaround
-
-Data toggle software workaround for extra IN issue introduced a bug for PIO mode
-as data toggle is getting updated even for PIO mode which should not be done.
-
-Merge to:
-usb: musb: cppi41: correct data toggle mismatch to fix extra IN token issue
----
- drivers/usb/musb/musb_host.c |    3 ++-
- 1 files changed, 2 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/musb/musb_host.c b/drivers/usb/musb/musb_host.c
-index 2195633..80d83bd 100644
---- a/drivers/usb/musb/musb_host.c
-+++ b/drivers/usb/musb/musb_host.c
-@@ -359,7 +359,8 @@ static inline void musb_save_toggle(struct musb_qh *qh, int is_in,
- 		curr_toggle = csr ? 1 : 0;
- 
- 		/* check if data toggle has gone out of sync */
--		if (curr_toggle == qh->hw_ep->prev_toggle) {
-+		if (is_dma_capable() && qh->hw_ep->rx_channel &&
-+				curr_toggle == qh->hw_ep->prev_toggle) {
- 			dev_dbg(musb->controller,
- 				"Data toggle same as previous (=%d) on ep%d\n",
- 					curr_toggle, qh->hw_ep->epnum);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0003-usb-gadget-udc-core-stop-UDC-on-device-initiated-dis.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0003-usb-gadget-udc-core-stop-UDC-on-device-initiated-dis.patch
deleted file mode 100644
index 88a1fb9..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0003-usb-gadget-udc-core-stop-UDC-on-device-initiated-dis.patch
+++ /dev/null
@@ -1,41 +0,0 @@
-From 2eac6057134bcb77edcdc462b810465850caec23 Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Thu, 15 Mar 2012 16:37:18 +0200
-Subject: [PATCH 3/6] usb: gadget: udc-core: stop UDC on device-initiated
- disconnect
-
-When we want to do device-initiated disconnect,
-let's make sure we stop the UDC in order to
-e.g. allow lower power states to be achieved by
-turning off unnecessary clocks and/or stoping
-PHYs.
-
-When reconnecting, call ->udc_start() again to
-make sure UDC is reinitialized.
-
-Cc: stable at vger.kernel.org
-Signed-off-by: Felipe Balbi <balbi at ti.com>
----
- drivers/usb/gadget/udc-core.c |    4 ++++
- 1 files changed, 4 insertions(+), 0 deletions(-)
-
-diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
-index 0b0d12c..475c997 100644
---- a/drivers/usb/gadget/udc-core.c
-+++ b/drivers/usb/gadget/udc-core.c
-@@ -359,8 +359,12 @@ static ssize_t usb_udc_softconn_store(struct device *dev,
- 	struct usb_udc		*udc = container_of(dev, struct usb_udc, dev);
- 
- 	if (sysfs_streq(buf, "connect")) {
-+		if (udc_is_newstyle(udc))
-+			usb_gadget_udc_start(udc->gadget, udc->driver);
- 		usb_gadget_connect(udc->gadget);
- 	} else if (sysfs_streq(buf, "disconnect")) {
-+		if (udc_is_newstyle(udc))
-+			usb_gadget_udc_stop(udc->gadget, udc->driver);
- 		usb_gadget_disconnect(udc->gadget);
- 	} else {
- 		dev_err(dev, "unsupported command '%s'\n", buf);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0004-usb-gadget-udc-core-fix-asymmetric-calls-in-remove_d.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0004-usb-gadget-udc-core-fix-asymmetric-calls-in-remove_d.patch
deleted file mode 100644
index eae1c70..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0004-usb-gadget-udc-core-fix-asymmetric-calls-in-remove_d.patch
+++ /dev/null
@@ -1,43 +0,0 @@
-From fefa8fade565b137ae3d01801196840b6ccfc98f Mon Sep 17 00:00:00 2001
-From: Kishon Vijay Abraham I <kishon at ti.com>
-Date: Wed, 21 Mar 2012 21:34:30 +0530
-Subject: [PATCH 4/6] usb: gadget: udc-core: fix asymmetric calls in
- remove_driver
-
-During modprobe of gadget driver, pullup is called after
-udc_start. In order to make the exit path symmetric when
-removing a gadget driver, call pullup before ->udc_stop.
-
-This is needed to avoid issues with PM where udc_stop
-disables the module completely (put IP in reset state,
-cut functional and interface clocks, and so on), which
-prevents us from accessing the IP's address space,
-thus creating the possibility of an abort exception
-when we try to access IP's address space after clocks
-are off.
-
-Cc: stable at vger.kernel.org
-Signed-off-by: Partha Basak <p-basak2 at ti.com>
-Signed-off-by: Kishon Vijay Abraham I <kishon at ti.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
----
- drivers/usb/gadget/udc-core.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
-index 475c997..ec02ed0 100644
---- a/drivers/usb/gadget/udc-core.c
-+++ b/drivers/usb/gadget/udc-core.c
-@@ -212,8 +212,8 @@ static void usb_gadget_remove_driver(struct usb_udc *udc)
- 	if (udc_is_newstyle(udc)) {
- 		udc->driver->disconnect(udc->gadget);
- 		udc->driver->unbind(udc->gadget);
--		usb_gadget_udc_stop(udc->gadget, udc->driver);
- 		usb_gadget_disconnect(udc->gadget);
-+		usb_gadget_udc_stop(udc->gadget, udc->driver);
- 	} else {
- 		usb_gadget_stop(udc->gadget, udc->driver);
- 	}
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0005-usb-gadget-udc-core-fix-wrong-call-order.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0005-usb-gadget-udc-core-fix-wrong-call-order.patch
deleted file mode 100644
index ae705cf..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0005-usb-gadget-udc-core-fix-wrong-call-order.patch
+++ /dev/null
@@ -1,33 +0,0 @@
-From 7a0dcaac06bfffd4df4bf7a006c601b31acc7cb7 Mon Sep 17 00:00:00 2001
-From: Felipe Balbi <balbi at ti.com>
-Date: Fri, 27 Apr 2012 11:02:15 +0300
-Subject: [PATCH 5/6] usb: gadget: udc-core: fix wrong call order
-
-commit 6d258a4 (usb: gadget: udc-core: stop UDC on device-initiated
-disconnect) introduced another case of asymmetric calls when issuing
-a device-initiated disconnect. Fix it.
-
-Reported-by: Ben Hutchings <ben at decadent.org.uk>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
----
- drivers/usb/gadget/udc-core.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
-index ec02ed0..3ea783d 100644
---- a/drivers/usb/gadget/udc-core.c
-+++ b/drivers/usb/gadget/udc-core.c
-@@ -363,9 +363,9 @@ static ssize_t usb_udc_softconn_store(struct device *dev,
- 			usb_gadget_udc_start(udc->gadget, udc->driver);
- 		usb_gadget_connect(udc->gadget);
- 	} else if (sysfs_streq(buf, "disconnect")) {
-+		usb_gadget_disconnect(udc->gadget);
- 		if (udc_is_newstyle(udc))
- 			usb_gadget_udc_stop(udc->gadget, udc->driver);
--		usb_gadget_disconnect(udc->gadget);
- 	} else {
- 		dev_err(dev, "unsupported command '%s'\n", buf);
- 		return -EINVAL;
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0006-usb-gadget-udc-core-fix-incompatibility-with-dummy-h.patch b/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0006-usb-gadget-udc-core-fix-incompatibility-with-dummy-h.patch
deleted file mode 100644
index 70f9398..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp-3.2/usb/0006-usb-gadget-udc-core-fix-incompatibility-with-dummy-h.patch
+++ /dev/null
@@ -1,46 +0,0 @@
-From 91cdc6fbc271e01e231dcf0e9403448aa19433fb Mon Sep 17 00:00:00 2001
-From: Alan Stern <stern at rowland.harvard.edu>
-Date: Thu, 26 Apr 2012 11:31:57 -0400
-Subject: [PATCH 6/6] usb: gadget: udc-core: fix incompatibility with
- dummy-hcd
-
-This patch (as1548) fixes a recently-introduced incompatibility
-between the UDC core and the dummy-hcd driver.  Commit
-8ae8090c82eb407267001f75b3d256b3bd4ae691 (usb: gadget: udc-core: fix
-asymmetric calls in remove_driver) moved the usb_gadget_udc_stop()
-call in usb_gadget_remove_driver() below the usb_gadget_disconnect()
-call.
-
-As a result, usb_gadget_disconnect() gets called at a time when the
-gadget driver believes it has been unbound but dummy-hcd believes
-it has not.  A nasty error ensues when dummy-hcd calls the gadget
-driver's disconnect method a second time.
-
-To fix the problem, this patch moves the gadget driver's unbind
-notification after the usb_gadget_disconnect() call.  Now nothing
-happens between the two unbind notifications, so nothing goes wrong.
-
-Signed-off-by: Alan Stern <stern at rowland.harvard.edu>
-Tested-by: Alexander Shishkin <alexander.shishkin at linux.intel.com>
-Signed-off-by: Felipe Balbi <balbi at ti.com>
----
- drivers/usb/gadget/udc-core.c |    2 +-
- 1 files changed, 1 insertions(+), 1 deletions(-)
-
-diff --git a/drivers/usb/gadget/udc-core.c b/drivers/usb/gadget/udc-core.c
-index 3ea783d..4e2e13e 100644
---- a/drivers/usb/gadget/udc-core.c
-+++ b/drivers/usb/gadget/udc-core.c
-@@ -211,8 +211,8 @@ static void usb_gadget_remove_driver(struct usb_udc *udc)
- 
- 	if (udc_is_newstyle(udc)) {
- 		udc->driver->disconnect(udc->gadget);
--		udc->driver->unbind(udc->gadget);
- 		usb_gadget_disconnect(udc->gadget);
-+		udc->driver->unbind(udc->gadget);
- 		usb_gadget_udc_stop(udc->gadget, udc->driver);
- 	} else {
- 		usb_gadget_stop(udc->gadget, udc->driver);
--- 
-1.7.7.6
-
diff --git a/recipes-kernel/linux/linux-ti33x-psp_3.2.bb b/recipes-kernel/linux/linux-ti33x-psp_3.2.bb
deleted file mode 100644
index 1602e3f..0000000
--- a/recipes-kernel/linux/linux-ti33x-psp_3.2.bb
+++ /dev/null
@@ -1,1949 +0,0 @@
-SECTION = "kernel"
-DESCRIPTION = "Linux kernel for TI33x EVM from PSP, based on am335x-kernel"
-LICENSE = "GPLv2"
-KERNEL_IMAGETYPE = "uImage"
-
-require multi-kernel.inc
-require tipspkernel.inc
-
-S = "${WORKDIR}/git"
-
-MULTI_CONFIG_BASE_SUFFIX = ""
-
-# the PATCHES_OVER_PSP updates it to 3.2.x, so adjust PV to match
-PV = "${@base_contains('DISTRO_FEATURES', 'tipspkernel', "3.2", "3.2.28", d)}"
-
-BRANCH = "v3.2-staging"
-SRCREV = "720e07b4c1f687b61b147b31c698cb6816d72f01"
-
-MACHINE_KERNEL_PR_append = "b+gitr${SRCREV}"
-PR = "${MACHINE_KERNEL_PR}"
-
-COMPATIBLE_MACHINE = "(ti33x)"
-
-SRC_URI += "git://arago-project.org/git/projects/linux-am33x.git;protocol=http;branch=${BRANCH} \
-	file://am335x-pm-firmware.bin \
-	file://defconfig"
-
-SRC_URI_append_beaglebone = " file://logo_linux_clut224.ppm"
-
-KERNEL_LDSUFFIX_beaglebone = "${@base_contains('DISTRO_FEATURES', 'ld-is-gold', '.bfd', '', d)}"
-
-do_compile_prepend() {
-	cp ${WORKDIR}/am335x-pm-firmware.bin ${S}/firmware/
-}
-
-PATCHES_OVER_PSP = " \
-	file://usb/0001-usb-musb-cppi41-revisit-the-teardown-path-to-fix-iso.patch \
-	file://usb/0002-usb-musb-fix-bug-in-data-toggle-sw-workaround.patch \
-	file://usb/0003-usb-gadget-udc-core-stop-UDC-on-device-initiated-dis.patch \
-	file://usb/0004-usb-gadget-udc-core-fix-asymmetric-calls-in-remove_d.patch \
-	file://usb/0005-usb-gadget-udc-core-fix-wrong-call-order.patch \
-	file://usb/0006-usb-gadget-udc-core-fix-incompatibility-with-dummy-h.patch \
-	file://psp/0001-ARM-OMAP-AM33XX-Add-missing-EMIF-register-offsets.patch \
-	file://psp/0002-ARM-OMAP-AM33XX-PM-Get-rid-of-hardcoded-resume-addre.patch \
-	file://psp/0003-ARM-OMAP-AM33XX-PM-Skip-DDR-PHY-reconfiguration-in-r.patch \
-	file://psp/0004-ARM-OMAP-AM33XX-PM-Save-and-restore-EMIF-registers.patch \
-	file://psp/0005-ARM-OMAP-AM33XX-PM-Wait-correctly-for-the-PLLs-to-re.patch \
-	file://psp/0006-ARM-OMAP-AM33XX-PM-Restore-the-PLLs-to-pre-suspend-s.patch \
-	file://psp/0007-ARM-OMAP-PM-AM33XX-Update-the-sleep-code-to-handle-D.patch \
-	file://psp/0008-usb-musb-update-babble-workaround-fix.patch \
-	file://psp/0009-usb-musb-ti81xx-print-the-usbss-revision-id-during-i.patch \
-	file://psp/0010-usb-musb-cppi41-enable-txfifo-empty-interrupt-logic.patch \
-	file://psp/0011-usb-musb-host-Flush-txfifo-only-if-TxPktRdy-bit-set.patch \
-	file://psp/0012-usb-musb-cppi41-use-dsb-to-make-sure-PDs-are-updated.patch \
-	file://psp/0013-usb-musb-cppi41-fix-zero-byte-OUT-issue.patch \
-	file://psp/0014-usb-musb-host-fix-for-urb-error-handling.patch \
-	file://psp/0015-usb-musb-cppi41-txdma-flushfifo-fixes-during-channel.patch \
-	file://psp/0016-usb-musb-cppi41-tx-dma-completion-fixes.patch \
-	file://psp/0017-usb-musb-host-Flush-RxFIFO-only-when-RxPktRdy-is-set.patch \
-	file://psp/0018-usb-musb-ti81xx-fix-role-switching-issue.patch \
-	file://psp/0019-MMC-OMAP-HS-Enable-HSPE-bit-for-high-speed-cards.patch \
-	file://3.2.1/0001-MAINTAINERS-stable-Update-address.patch \
-	file://3.2.1/0002-Documentation-Update-stable-address.patch \
-	file://3.2.1/0003-firmware-Fix-an-oops-on-reading-fw_priv-fw-in-sysfs-.patch \
-	file://3.2.1/0004-rt2800usb-Move-ID-out-of-unknown.patch \
-	file://3.2.1/0005-offb-Fix-setting-of-the-pseudo-palette-for-8bpp.patch \
-	file://3.2.1/0006-offb-Fix-bug-in-calculating-requested-vram-size.patch \
-	file://3.2.1/0007-libertas-clean-up-scan-thread-handling.patch \
-	file://3.2.1/0008-bcma-support-for-suspend-and-resume.patch \
-	file://3.2.1/0009-wl12xx-Validate-FEM-index-from-ini-file-and-FW.patch \
-	file://3.2.1/0010-wl12xx-Check-buffer-bound-when-processing-nvs-data.patch \
-	file://3.2.1/0011-wl12xx-Restore-testmode-ABI.patch \
-	file://3.2.1/0012-powerpc-time-Handle-wrapping-of-decrementer.patch \
-	file://3.2.1/0013-powerpc-Fix-unpaired-probe_hcall_entry-and-probe_hca.patch \
-	file://3.2.1/0014-IB-qib-Fix-a-possible-data-corruption-when-receiving.patch \
-	file://3.2.1/0015-IB-uverbs-Protect-QP-multicast-list.patch \
-	file://3.2.1/0016-iwlagn-fix-TID-use-bug.patch \
-	file://3.2.1/0017-iwlagn-fix-remove-use-of-PAGE_SIZE.patch \
-	file://3.2.1/0018-perf-Fix-parsing-of-__print_flags-in-TP_printk.patch \
-	file://3.2.1/0019-ore-Fix-crash-in-case-of-an-IO-error.patch \
-	file://3.2.1/0020-ore-fix-BUG_ON-too-few-sgs-when-reading.patch \
-	file://3.2.1/0021-ore-Must-support-none-PAGE-aligned-IO.patch \
-	file://3.2.1/0022-ore-FIX-breakage-when-MISC_FILESYSTEMS-is-not-set.patch \
-	file://3.2.1/0023-reiserfs-Fix-quota-mount-option-parsing.patch \
-	file://3.2.1/0024-reiserfs-Force-inode-evictions-before-umount-to-avoi.patch \
-	file://3.2.1/0025-ext3-Don-t-warn-from-writepage-when-readonly-inode-i.patch \
-	file://3.2.1/0026-drivers-hv-Don-t-OOPS-when-you-cannot-init-vmbus.patch \
-	file://3.2.1/0027-Drivers-hv-Fix-a-bug-in-vmbus_driver_unregister.patch \
-	file://3.2.1/0028-USB-update-documentation-for-usbmon.patch \
-	file://3.2.1/0029-usbfs-Fix-oops-related-to-user-namespace-conversion.patch \
-	file://3.2.1/0030-atmel_serial-fix-spinlock-lockup-in-RS485-code.patch \
-	file://3.2.1/0031-cgroup-fix-to-allow-mounting-a-hierarchy-by-name.patch \
-	file://3.2.1/0032-udf-Fix-deadlock-when-converting-file-from-in-ICB-on.patch \
-	file://3.2.1/0033-drivers-usb-class-cdc-acm.c-clear-dangling-pointer.patch \
-	file://3.2.1/0034-USB-isight-fix-kernel-bug-when-loading-firmware.patch \
-	file://3.2.1/0035-usb-usb-storage-doesn-t-support-dynamic-id-currently.patch \
-	file://3.2.1/0036-USB-pxa168-Fix-compilation-error.patch \
-	file://3.2.1/0037-USB-add-quirk-for-another-camera.patch \
-	file://3.2.1/0038-USB-omninet-fix-write_room.patch \
-	file://3.2.1/0039-usb-option-add-ZD-Incorporated-HSPA-modem.patch \
-	file://3.2.1/0040-USB-Add-USB-ID-for-Multiplex-RC-serial-adapter-to-cp.patch \
-	file://3.2.1/0041-usb-fix-number-of-mapped-SG-DMA-entries.patch \
-	file://3.2.1/0042-xhci-Properly-handle-COMP_2ND_BW_ERR.patch \
-	file://3.2.1/0043-usb-ch9-fix-up-MaxStreams-helper.patch \
-	file://3.2.1/0044-igmp-Avoid-zero-delay-when-receiving-odd-mixture-of-.patch \
-	file://3.2.1/0045-asix-fix-infinite-loop-in-rx_fixup.patch \
-	file://3.2.1/0046-bonding-fix-error-handling-if-slave-is-busy-v2.patch \
-	file://3.2.1/0047-usb-cdc-acm-Fix-acm_tty_hangup-vs.-acm_tty_close-rac.patch \
-	file://3.2.1/0048-xfs-fix-acl-count-validation-in-xfs_acl_from_disk.patch \
-	file://3.2.1/0049-Linux-3.2.1.patch \
-	file://3.2.2/0001-mtdoops-fix-the-oops_page_used-array-size.patch \
-	file://3.2.2/0002-mtd-mtdoops-skip-reading-initially-bad-blocks.patch \
-	file://3.2.2/0003-mtd-mtd_blkdevs-don-t-increase-open-count-on-error-p.patch \
-	file://3.2.2/0004-mtd-tests-stresstest-bail-out-if-device-has-not-enou.patch \
-	file://3.2.2/0005-drivers-rtc-interface.c-fix-alarm-rollover-when-day-.patch \
-	file://3.2.2/0006-ext4-add-missing-ext4_resize_end-on-error-paths.patch \
-	file://3.2.2/0007-ext4-fix-undefined-behavior-in-ext4_fill_flex_info.patch \
-	file://3.2.2/0008-ALSA-snd-usb-us122l-Delete-calls-to-preempt_disable.patch \
-	file://3.2.2/0009-ALSA-HDA-Fix-master-control-for-Cirrus-Logic-421X.patch \
-	file://3.2.2/0010-ALSA-HDA-Fix-automute-for-Cirrus-Logic-421x.patch \
-	file://3.2.2/0011-ALSA-ice1724-Check-for-ac97-to-avoid-kernel-oops.patch \
-	file://3.2.2/0012-ALSA-usb-audio-Avoid-flood-of-frame-active-debug-mes.patch \
-	file://3.2.2/0013-ALSA-hda-Use-auto-parser-for-HP-laptops-with-cx20459.patch \
-	file://3.2.2/0014-ALSA-hda-Return-the-error-from-get_wcaps_type-for-in.patch \
-	file://3.2.2/0015-ALSA-hda-Fix-the-detection-of-Loopback-Mixing-contro.patch \
-	file://3.2.2/0016-ALSA-hda-Fix-the-lost-power-setup-of-seconary-pins-a.patch \
-	file://3.2.2/0017-drm-radeon-kms-workaround-invalid-AVI-infoframe-chec.patch \
-	file://3.2.2/0018-drm-radeon-kms-disable-writeback-on-pre-R300-asics.patch \
-	file://3.2.2/0019-radeon-Fix-disabling-PCI-bus-mastering-on-big-endian.patch \
-	file://3.2.2/0020-pnfs-obj-pNFS-errors-are-communicated-on-iodata-pnfs.patch \
-	file://3.2.2/0021-pnfs-obj-Must-return-layout-on-IO-error.patch \
-	file://3.2.2/0022-NFS-Retry-mounting-NFSROOT.patch \
-	file://3.2.2/0023-NFSv4.1-fix-backchannel-slotid-off-by-one-bug.patch \
-	file://3.2.2/0024-NFS-fix-recent-breakage-to-NFS-error-handling.patch \
-	file://3.2.2/0025-NFSv4-include-bitmap-in-nfsv4-get-acl-data.patch \
-	file://3.2.2/0026-nfs-fix-regression-in-handling-of-context-option-in-.patch \
-	file://3.2.2/0027-HID-bump-maximum-global-item-tag-report-size-to-96-b.patch \
-	file://3.2.2/0028-HID-wiimote-Select-INPUT_FF_MEMLESS.patch \
-	file://3.2.2/0029-UBI-fix-missing-scrub-when-there-is-a-bit-flip.patch \
-	file://3.2.2/0030-UBI-fix-use-after-free-on-error-path.patch \
-	file://3.2.2/0031-PCI-Fix-PCI_EXP_TYPE_RC_EC-value.patch \
-	file://3.2.2/0032-PCI-msi-Disable-msi-interrupts-when-we-initialize-a-.patch \
-	file://3.2.2/0033-x86-PCI-Ignore-CPU-non-addressable-_CRS-reserved-mem.patch \
-	file://3.2.2/0034-x86-PCI-amd-factor-out-MMCONFIG-discovery.patch \
-	file://3.2.2/0035-x86-PCI-build-amd_bus.o-only-when-CONFIG_AMD_NB-y.patch \
-	file://3.2.2/0036-SCSI-mpt2sas-Release-spinlock-for-the-raid-device-li.patch \
-	file://3.2.2/0037-SCSI-mpt2sas-Fix-for-memory-allocation-error-for-lar.patch \
-	file://3.2.2/0038-xen-xenbus-Reject-replies-with-payload-XENSTORE_PAYL.patch \
-	file://3.2.2/0039-md-raid1-perform-bad-block-tests-for-WriteMostly-dev.patch \
-	file://3.2.2/0040-ima-free-duplicate-measurement-memory.patch \
-	file://3.2.2/0041-ima-fix-invalid-memory-reference.patch \
-	file://3.2.2/0042-slub-fix-a-possible-memleak-in-__slab_alloc.patch \
-	file://3.2.2/0043-PNP-work-around-Dell-1536-1546-BIOS-MMCONFIG-bug-tha.patch \
-	file://3.2.2/0044-asix-fix-setting-custom-MAC-address-on-Asix-88178-de.patch \
-	file://3.2.2/0045-asix-fix-setting-custom-MAC-address-on-Asix-88772-de.patch \
-	file://3.2.2/0046-include-linux-crash_dump.h-needs-elf.h.patch \
-	file://3.2.2/0047-rtl8192se-Fix-BUG-caused-by-failure-to-check-skb-all.patch \
-	file://3.2.2/0048-mac80211-fix-rx-key-NULL-pointer-dereference-in-prom.patch \
-	file://3.2.2/0049-ath9k-Fix-regression-in-channelwidth-switch-at-the-s.patch \
-	file://3.2.2/0050-memcg-add-mem_cgroup_replace_page_cache-to-fix-LRU-i.patch \
-	file://3.2.2/0051-x86-Fix-mmap-random-address-range.patch \
-	file://3.2.2/0052-UBI-fix-nameless-volumes-handling.patch \
-	file://3.2.2/0053-UBI-fix-debugging-messages.patch \
-	file://3.2.2/0054-UBI-make-vid_hdr-non-static.patch \
-	file://3.2.2/0055-UBIFS-fix-debugging-messages.patch \
-	file://3.2.2/0056-UBIFS-make-debugging-messages-light-again.patch \
-	file://3.2.2/0057-i2c-Fix-error-value-returned-by-several-bus-drivers.patch \
-	file://3.2.2/0058-mmc-core-Fix-voltage-select-in-DDR-mode.patch \
-	file://3.2.2/0059-mmc-sdhci-Fix-tuning-timer-incorrect-setting-when-su.patch \
-	file://3.2.2/0060-mmc-sd-Fix-SDR12-timing-regression.patch \
-	file://3.2.2/0061-V4L-DVB-v4l2-ioctl-integer-overflow-in-video_usercop.patch \
-	file://3.2.2/0062-Unused-iocbs-in-a-batch-should-not-be-accounted-as-a.patch \
-	file://3.2.2/0063-ftrace-Fix-unregister-ftrace_ops-accounting.patch \
-	file://3.2.2/0064-kconfig-streamline-config.pl-Simplify-backslash-line.patch \
-	file://3.2.2/0065-kconfig-streamline-config.pl-Fix-parsing-Makefile-wi.patch \
-	file://3.2.2/0066-svcrpc-fix-double-free-on-shutdown-of-nfsd-after-cha.patch \
-	file://3.2.2/0067-svcrpc-destroy-server-sockets-all-at-once.patch \
-	file://3.2.2/0068-svcrpc-avoid-memory-corruption-on-pool-shutdown.patch \
-	file://3.2.2/0069-nfsd4-fix-lockowner-matching.patch \
-	file://3.2.2/0070-nfsd-Fix-oops-when-parsing-a-0-length-export.patch \
-	file://3.2.2/0071-fsnotify-don-t-BUG-in-fsnotify_destroy_mark.patch \
-	file://3.2.2/0072-x86-UV-Update-Boot-messages-for-SGI-UV2-platform.patch \
-	file://3.2.2/0073-recordmcount-Fix-handling-of-elf64-big-endian-object.patch \
-	file://3.2.2/0074-uvcvideo-Fix-integer-overflow-in-uvc_ioctl_ctrl_map.patch \
-	file://3.2.2/0075-dcache-use-a-dispose-list-in-select_parent.patch \
-	file://3.2.2/0076-fix-shrink_dcache_parent-livelock.patch \
-	file://3.2.2/0077-pnfsblock-acquire-im_lock-in-_preload_range.patch \
-	file://3.2.2/0078-pnfsblock-don-t-spinlock-when-freeing-block_dev.patch \
-	file://3.2.2/0079-pnfsblock-limit-bio-page-count.patch \
-	file://3.2.2/0080-mac80211-revert-on-channel-work-optimisations.patch \
-	file://3.2.2/0081-HID-hid-multitouch-add-another-eGalax-id.patch \
-	file://3.2.2/0082-HID-multitouch-cleanup-with-eGalax-PID-definitions.patch \
-	file://3.2.2/0083-HID-multitouch-Add-egalax-ID-for-Acer-Iconia-W500.patch \
-	file://3.2.2/0084-HID-multitouch-add-support-for-the-MSI-Windpad-110W.patch \
-	file://3.2.2/0085-HID-hid-multitouch-add-support-for-new-Hanvon-panels.patch \
-	file://3.2.2/0086-HID-multitouch-add-support-of-Atmel-multitouch-panel.patch \
-	file://3.2.2/0087-HID-multitouch-add-support-for-3M-32.patch \
-	file://3.2.2/0088-HID-hid-multitouch-add-support-9-new-Xiroku-devices.patch \
-	file://3.2.2/0089-fix-cputime-overflow-in-uptime_proc_show.patch \
-	file://3.2.2/0090-block-add-and-use-scsi_blk_cmd_ioctl.patch \
-	file://3.2.2/0091-block-fail-SCSI-passthrough-ioctls-on-partition-devi.patch \
-	file://3.2.2/0092-dm-do-not-forward-ioctls-from-logical-volumes-to-the.patch \
-	file://3.2.2/0093-proc-clean-up-and-fix-proc-pid-mem-handling.patch \
-	file://3.2.2/0094-ALSA-HDA-Use-LPIB-position-fix-for-Macbook-Pro-7-1.patch \
-	file://3.2.2/0095-ALSA-virtuoso-Xonar-DS-fix-polarity-of-front-output.patch \
-	file://3.2.2/0096-ALSA-HDA-Fix-internal-microphone-on-Dell-Studio-16-X.patch \
-	file://3.2.2/0097-TOMOYO-Accept-000-as-a-valid-character.patch \
-	file://3.2.2/0098-intel-idle-Make-idle-driver-more-robust.patch \
-	file://3.2.2/0099-intel_idle-fix-API-misuse.patch \
-	file://3.2.2/0100-ACPI-Store-SRAT-table-revision.patch \
-	file://3.2.2/0101-ACPI-x86-Use-SRAT-table-rev-to-use-8bit-or-32bit-PXM.patch \
-	file://3.2.2/0102-ACPI-ia64-Use-SRAT-table-rev-to-use-8bit-or-16-32bit.patch \
-	file://3.2.2/0103-ACPICA-Put-back-the-call-to-acpi_os_validate_address.patch \
-	file://3.2.2/0104-ACPI-processor-fix-acpi_get_cpuid-for-UP-processor.patch \
-	file://3.2.2/0105-sym53c8xx-Fix-NULL-pointer-dereference-in-slave_dest.patch \
-	file://3.2.2/0106-target-Set-response-format-in-INQUIRY-response.patch \
-	file://3.2.2/0107-target-Set-additional-sense-length-field-in-sense-da.patch \
-	file://3.2.2/0108-bcma-invalidate-the-mapped-core-over-suspend-resume.patch \
-	file://3.2.2/0109-cx23885-dvb-check-if-dvb_attach-succeded.patch \
-	file://3.2.2/0110-cx88-fix-don-t-duplicate-xc4000-entry-for-radio.patch \
-	file://3.2.2/0111-tuner-Fix-numberspace-conflict-between-xc4000-and-pt.patch \
-	file://3.2.2/0112-tracepoints-module-Fix-disabling-tracepoints-with-ta.patch \
-	file://3.2.2/0113-x86-UV2-Fix-new-UV2-hardware-by-using-native-UV2-bro.patch \
-	file://3.2.2/0114-x86-UV2-Fix-BAU-destination-timeout-initialization.patch \
-	file://3.2.2/0115-x86-UV2-Work-around-BAU-bug.patch \
-	file://3.2.2/0116-ath9k_hw-fix-interpretation-of-the-rx-KeyMiss-flag.patch \
-	file://3.2.2/0117-rt2800pci-fix-spurious-interrupts-generation.patch \
-	file://3.2.2/0118-xfs-fix-endian-conversion-issue-in-discard-code.patch \
-	file://3.2.2/0119-i2c-eg20t-modified-the-setting-of-transfer-rate.patch \
-	file://3.2.2/0120-score-fix-off-by-one-index-into-syscall-table.patch \
-	file://3.2.2/0121-cifs-lower-default-wsize-when-unix-extensions-are-no.patch \
-	file://3.2.2/0122-kprobes-initialize-before-using-a-hlist.patch \
-	file://3.2.2/0123-proc-clear_refs-do-not-clear-reserved-pages.patch \
-	file://3.2.2/0124-mm-fix-NULL-ptr-dereference-in-__count_immobile_page.patch \
-	file://3.2.2/0125-iwlagn-check-for-SMPS-mode.patch \
-	file://3.2.2/0126-iwlegacy-3945-fix-hw-passive-scan-on-radar-channels.patch \
-	file://3.2.2/0127-SHM_UNLOCK-fix-long-unpreemptible-section.patch \
-	file://3.2.2/0128-SHM_UNLOCK-fix-Unevictable-pages-stranded-after-swap.patch \
-	file://3.2.2/0129-Linux-3.2.2.patch \
-	file://3.2.3/0001-ALSA-hda-Fix-buffer-alignment-regression-with-Nvidia.patch \
-	file://3.2.3/0002-ALSA-hda-Fix-silent-outputs-from-docking-station-jac.patch \
-	file://3.2.3/0003-eCryptfs-Sanitize-write-counts-of-dev-ecryptfs.patch \
-	file://3.2.3/0004-ecryptfs-Improve-metadata-read-failure-logging.patch \
-	file://3.2.3/0005-eCryptfs-Make-truncate-path-killable.patch \
-	file://3.2.3/0006-eCryptfs-Check-inode-changes-in-setattr.patch \
-	file://3.2.3/0007-eCryptfs-Fix-oops-when-printing-debug-info-in-extent.patch \
-	file://3.2.3/0008-drm-radeon-kms-Add-an-MSI-quirk-for-Dell-RS690.patch \
-	file://3.2.3/0009-drm-radeon-kms-move-panel-mode-setup-into-encoder-mo.patch \
-	file://3.2.3/0010-drm-radeon-kms-rework-modeset-sequence-for-DCE41-and.patch \
-	file://3.2.3/0011-drm-Fix-authentication-kernel-crash.patch \
-	file://3.2.3/0012-xfs-Fix-missing-xfs_iunlock-on-error-recovery-path-i.patch \
-	file://3.2.3/0013-ASoC-Mark-WM5100-register-map-cache-only-when-going-.patch \
-	file://3.2.3/0014-ASoC-Disable-register-synchronisation-for-low-freque.patch \
-	file://3.2.3/0015-ASoC-Don-t-go-through-cache-when-applying-WM5100-rev.patch \
-	file://3.2.3/0016-ASoC-wm8996-Call-_POST_PMU-callback-for-CPVDD.patch \
-	file://3.2.3/0017-brcmsmac-fix-tx-queue-flush-infinite-loop.patch \
-	file://3.2.3/0018-mac80211-fix-work-removal-on-deauth-request.patch \
-	file://3.2.3/0019-jbd-Issue-cache-flush-after-checkpointing.patch \
-	file://3.2.3/0020-crypto-sha512-make-it-work-undo-percpu-message-sched.patch \
-	file://3.2.3/0021-crypto-sha512-reduce-stack-usage-to-safe-number.patch \
-	file://3.2.3/0022-tpm_tis-add-delay-after-aborting-command.patch \
-	file://3.2.3/0023-x86-uv-Fix-uninitialized-spinlocks.patch \
-	file://3.2.3/0024-x86-uv-Fix-uv_gpa_to_soc_phys_ram-shift.patch \
-	file://3.2.3/0025-x86-microcode_amd-Add-support-for-CPU-family-specifi.patch \
-	file://3.2.3/0026-m68k-Fix-assembler-constraint-to-prevent-overeager-g.patch \
-	file://3.2.3/0027-ALSA-hda-set-mute-led-polarity-for-laptops-with-bugg.patch \
-	file://3.2.3/0028-ALSA-hda-Fix-silent-output-on-ASUS-A6Rp.patch \
-	file://3.2.3/0029-ALSA-hda-Fix-silent-output-on-Haier-W18-laptop.patch \
-	file://3.2.3/0030-drm-i915-paper-over-missed-irq-issues-with-force-wak.patch \
-	file://3.2.3/0031-drm-i915-sdvo-always-set-positive-sync-polarity.patch \
-	file://3.2.3/0032-drm-i915-Re-enable-gen7-RC6-and-GPU-turbo-after-resu.patch \
-	file://3.2.3/0033-ARM-at91-fix-at91rm9200-soc-subtype-handling.patch \
-	file://3.2.3/0034-mach-ux500-enable-ARM-errata-764369.patch \
-	file://3.2.3/0035-ARM-7296-1-proc-v7.S-remove-HARVARD_CACHE-preprocess.patch \
-	file://3.2.3/0036-sysfs-Complain-bitterly-about-attempts-to-remove-fil.patch \
-	file://3.2.3/0037-x86-xen-size-struct-xen_spinlock-to-always-fit-in-ar.patch \
-	file://3.2.3/0038-mpt2sas-Removed-redundant-calling-of-_scsih_probe_de.patch \
-	file://3.2.3/0039-USB-option-Add-LG-docomo-L-02C.patch \
-	file://3.2.3/0040-USB-ftdi_sio-fix-TIOCSSERIAL-baud_base-handling.patch \
-	file://3.2.3/0041-USB-ftdi_sio-fix-initial-baud-rate.patch \
-	file://3.2.3/0042-USB-ftdi_sio-add-PID-for-TI-XDS100v2-BeagleBone-A3.patch \
-	file://3.2.3/0043-USB-serial-ftdi-additional-IDs.patch \
-	file://3.2.3/0044-USB-ftdi_sio-Add-more-identifiers.patch \
-	file://3.2.3/0045-USB-cdc-wdm-updating-desc-length-must-be-protected-b.patch \
-	file://3.2.3/0046-USB-cdc-wdm-use-two-mutexes-to-allow-simultaneous-re.patch \
-	file://3.2.3/0047-qcaux-add-more-Pantech-UML190-and-UML290-ports.patch \
-	file://3.2.3/0048-usb-dwc3-ep0-tidy-up-Pending-Request-handling.patch \
-	file://3.2.3/0049-usb-io_ti-Make-edge_remove_sysfs_attrs-the-port_remo.patch \
-	file://3.2.3/0050-TTY-fix-UV-serial-console-regression.patch \
-	file://3.2.3/0051-serial-amba-pl011-lock-console-writes-against-interr.patch \
-	file://3.2.3/0052-jsm-Fixed-EEH-recovery-error.patch \
-	file://3.2.3/0053-iwlwifi-fix-PCI-E-transport-inta-race.patch \
-	file://3.2.3/0054-vmwgfx-Fix-assignment-in-vmw_framebuffer_create_hand.patch \
-	file://3.2.3/0055-USB-Realtek-cr-fix-autopm-scheduling-while-atomic.patch \
-	file://3.2.3/0056-USB-usbsevseg-fix-max-length.patch \
-	file://3.2.3/0057-usb-gadget-langwell-don-t-call-gadget-s-disconnect.patch \
-	file://3.2.3/0058-usb-gadget-storage-endian-fix.patch \
-	file://3.2.3/0059-drivers-usb-host-ehci-fsl.c-add-missing-iounmap.patch \
-	file://3.2.3/0060-xhci-Fix-USB-3.0-device-restart-on-resume.patch \
-	file://3.2.3/0061-xHCI-Cleanup-isoc-transfer-ring-when-TD-length-misma.patch \
-	file://3.2.3/0062-usb-musb-davinci-fix-build-breakage.patch \
-	file://3.2.3/0063-hwmon-f71805f-Fix-clamping-of-temperature-limits.patch \
-	file://3.2.3/0064-hwmon-w83627ehf-Disable-setting-DC-mode-for-pwm2-pwm.patch \
-	file://3.2.3/0065-hwmon-sht15-fix-bad-error-code.patch \
-	file://3.2.3/0066-USB-cdc-wdm-call-wake_up_all-to-allow-driver-to-shut.patch \
-	file://3.2.3/0067-USB-cdc-wdm-better-allocate-a-buffer-that-is-at-leas.patch \
-	file://3.2.3/0068-USB-cdc-wdm-Avoid-hanging-on-interface-with-no-USB_C.patch \
-	file://3.2.3/0069-netns-fix-net_alloc_generic.patch \
-	file://3.2.3/0070-netns-Fail-conspicously-if-someone-uses-net_generic-.patch \
-	file://3.2.3/0071-net-caif-Register-properly-as-a-pernet-subsystem.patch \
-	file://3.2.3/0072-af_unix-fix-EPOLLET-regression-for-stream-sockets.patch \
-	file://3.2.3/0073-bonding-fix-enslaving-in-alb-mode-when-link-down.patch \
-	file://3.2.3/0074-l2tp-l2tp_ip-fix-possible-oops-on-packet-receive.patch \
-	file://3.2.3/0075-macvlan-fix-a-possible-use-after-free.patch \
-	file://3.2.3/0076-net-bpf_jit-fix-divide-by-0-generation.patch \
-	file://3.2.3/0077-net-reintroduce-missing-rcu_assign_pointer-calls.patch \
-	file://3.2.3/0078-rds-Make-rds_sock_lock-BH-rather-than-IRQ-safe.patch \
-	file://3.2.3/0079-tcp-fix-tcp_trim_head-to-adjust-segment-count-with-s.patch \
-	file://3.2.3/0080-tcp-md5-using-remote-adress-for-md5-lookup-in-rst-pa.patch \
-	file://3.2.3/0081-USB-serial-CP210x-Added-USB-ID-for-the-Link-Instrume.patch \
-	file://3.2.3/0082-USB-cp210x-call-generic-open-last-in-open.patch \
-	file://3.2.3/0083-USB-cp210x-fix-CP2104-baudrate-usage.patch \
-	file://3.2.3/0084-USB-cp210x-do-not-map-baud-rates-to-B0.patch \
-	file://3.2.3/0085-USB-cp210x-fix-up-set_termios-variables.patch \
-	file://3.2.3/0086-USB-cp210x-clean-up-refactor-and-document-speed-hand.patch \
-	file://3.2.3/0087-USB-cp210x-initialise-baud-rate-at-open.patch \
-	file://3.2.3/0088-USB-cp210x-allow-more-baud-rates-above-1Mbaud.patch \
-	file://3.2.3/0089-mach-ux500-no-MMC_CAP_SD_HIGHSPEED-on-Snowball.patch \
-	file://3.2.3/0090-Linux-3.2.3.patch \
-	file://3.2.4/0001-Revert-ASoC-Mark-WM5100-register-map-cache-only-when.patch \
-	file://3.2.4/0002-Revert-ASoC-Don-t-go-through-cache-when-applying-WM5.patch \
-	file://3.2.4/0003-Linux-3.2.4.patch \
-	file://3.2.5/0001-PCI-Rework-ASPM-disable-code.patch \
-	file://3.2.5/0002-Linux-3.2.5.patch \
-	file://3.2.6/0001-readahead-fix-pipeline-break-caused-by-block-plug.patch \
-	file://3.2.6/0002-ALSA-hda-Fix-the-logic-to-detect-VIA-analog-low-curr.patch \
-	file://3.2.6/0003-ALSA-HDA-Remove-quirk-for-Asus-N53Jq.patch \
-	file://3.2.6/0004-ALSA-hda-Apply-0x0f-VREF-fix-to-all-ASUS-laptops-wit.patch \
-	file://3.2.6/0005-ALSA-hda-Fix-calling-cs_automic-twice-for-Cirrus-cod.patch \
-	file://3.2.6/0006-ALSA-hda-Allow-analog-low-current-mode-when-dynamic-.patch \
-	file://3.2.6/0007-ALSA-HDA-Fix-duplicated-output-to-more-than-one-code.patch \
-	file://3.2.6/0008-ALSA-hda-Disable-dynamic-power-control-for-VIA-as-de.patch \
-	file://3.2.6/0009-ASoC-wm_hubs-Enable-line-out-VMID-buffer-for-single-.patch \
-	file://3.2.6/0010-ASoC-wm_hubs-fix-wrong-bits-for-LINEOUT2-N-P-mixer.patch \
-	file://3.2.6/0011-ARM-7306-1-vfp-flush-thread-hwstate-before-restoring.patch \
-	file://3.2.6/0012-ARM-7307-1-vfp-fix-ptrace-regset-modification-race.patch \
-	file://3.2.6/0013-ARM-7308-1-vfp-flush-thread-hwstate-before-copying-p.patch \
-	file://3.2.6/0014-ARM-OMAP2-GPMC-fix-device-size-setup.patch \
-	file://3.2.6/0015-drivers-tty-vt-vt_ioctl.c-fix-KDFONTOP-32bit-compati.patch \
-	file://3.2.6/0016-proc-mem_release-should-check-mm-NULL.patch \
-	file://3.2.6/0017-proc-unify-mem_read-and-mem_write.patch \
-	file://3.2.6/0018-proc-make-sure-mem_open-doesn-t-pin-the-target-s-mem.patch \
-	file://3.2.6/0019-firewire-ohci-add-reset-packet-quirk-for-SB-Audigy.patch \
-	file://3.2.6/0020-firewire-ohci-disable-MSI-on-Ricoh-controllers.patch \
-	file://3.2.6/0021-IB-mlx4-pass-SMP-vendor-specific-attribute-MADs-to-f.patch \
-	file://3.2.6/0022-RDMA-core-Fix-kernel-panic-by-always-initializing-qp.patch \
-	file://3.2.6/0023-kprobes-fix-a-memory-leak-in-function-pre_handler_kr.patch \
-	file://3.2.6/0024-mtd-gpmi-nand-bugfix-reset-the-BCH-module-when-it-is.patch \
-	file://3.2.6/0025-Revert-mtd-atmel_nand-optimize-read-write-buffer-fun.patch \
-	file://3.2.6/0026-at_hdmac-bugfix-for-enabling-channel-irq.patch \
-	file://3.2.6/0027-mm-filemap_xip.c-fix-race-condition-in-xip_file_faul.patch \
-	file://3.2.6/0028-mm-compaction-check-pfn_valid-when-entering-a-new-MA.patch \
-	file://3.2.6/0029-PM-Hibernate-Fix-s2disk-regression-related-to-freezi.patch \
-	file://3.2.6/0030-PM-QoS-CPU-C-state-breakage-with-PM-Qos-change.patch \
-	file://3.2.6/0031-drm-radeon-Set-DESKTOP_HEIGHT-register-to-the-frameb.patch \
-	file://3.2.6/0032-drm-nouveau-gem-fix-fence_sync-race-oops.patch \
-	file://3.2.6/0033-drm-radeon-kms-disable-output-polling-when-suspended.patch \
-	file://3.2.6/0034-drm-radeon-kms-fix-TRAVIS-panel-setup.patch \
-	file://3.2.6/0035-sched-rt-Fix-task-stack-corruption-under-__ARCH_WANT.patch \
-	file://3.2.6/0036-PM-Hibernate-Thaw-processes-in-SNAPSHOT_CREATE_IMAGE.patch \
-	file://3.2.6/0037-PM-Hibernate-Thaw-kernel-threads-in-SNAPSHOT_CREATE_.patch \
-	file://3.2.6/0038-8139cp-fix-missing-napi_gro_flush.patch \
-	file://3.2.6/0039-udf-Mark-LVID-buffer-as-uptodate-before-marking-it-d.patch \
-	file://3.2.6/0040-drm-i915-HDMI-hot-remove-notification-to-audio-drive.patch \
-	file://3.2.6/0041-drm-i915-DisplayPort-hot-remove-notification-to-audi.patch \
-	file://3.2.6/0042-drm-i915-check-ACTHD-of-all-rings.patch \
-	file://3.2.6/0043-drm-i915-Fix-TV-Out-refresh-rate.patch \
-	file://3.2.6/0044-drm-i915-handle-3rd-pipe.patch \
-	file://3.2.6/0045-drm-i915-convert-force_wake_get-to-func-pointer-in-t.patch \
-	file://3.2.6/0046-drm-i915-protect-force_wake_-get-put-with-the-gt_loc.patch \
-	file://3.2.6/0047-eCryptfs-Infinite-loop-due-to-overflow-in-ecryptfs_w.patch \
-	file://3.2.6/0048-hwmon-w83627ehf-Fix-number-of-fans-for-NCT6776F.patch \
-	file://3.2.6/0049-cifs-Fix-oops-in-session-setup-code-for-null-user-mo.patch \
-	file://3.2.6/0050-atmel_lcdfb-fix-usage-of-CONTRAST_CTR-in-suspend-res.patch \
-	file://3.2.6/0051-lockdep-bug-Exclude-TAINT_FIRMWARE_WORKAROUND-from-d.patch \
-	file://3.2.6/0052-lockdep-bug-Exclude-TAINT_OOT_MODULE-from-disabling-.patch \
-	file://3.2.6/0053-iscsi-target-Fix-reject-release-handling-in-iscsit_f.patch \
-	file://3.2.6/0054-iscsi-target-Fix-double-list_add-with-iscsit_alloc_b.patch \
-	file://3.2.6/0055-iscsi-target-Fix-discovery-with-INADDR_ANY-and-IN6AD.patch \
-	file://3.2.6/0056-ASoC-wm_hubs-Fix-routing-of-input-PGAs-to-line-outpu.patch \
-	file://3.2.6/0057-ASoC-wm_hubs-Correct-line-input-to-line-output-2-pat.patch \
-	file://3.2.6/0058-ASoC-wm8962-Fix-word-length-configuration.patch \
-	file://3.2.6/0059-ASoC-wm8994-Enabling-VMID-should-take-a-runtime-PM-r.patch \
-	file://3.2.6/0060-ASoC-wm8994-Fix-typo-in-VMID-ramp-setting.patch \
-	file://3.2.6/0061-pcmcia-fix-socket-refcount-decrementing-on-each-resu.patch \
-	file://3.2.6/0062-ALSA-oxygen-virtuoso-fix-exchanged-L-R-volumes-of-au.patch \
-	file://3.2.6/0063-iommu-amd-Work-around-broken-IVRS-tables.patch \
-	file://3.2.6/0064-iommu-msm-Fix-error-handling-in-msm_iommu_unmap.patch \
-	file://3.2.6/0065-mm-compaction-check-for-overlapping-nodes-during-iso.patch \
-	file://3.2.6/0066-mm-fix-UP-THP-spin_is_locked-BUGs.patch \
-	file://3.2.6/0067-target-Use-correct-preempted-registration-sense-code.patch \
-	file://3.2.6/0068-target-Allow-PERSISTENT-RESERVE-IN-for-non-reservati.patch \
-	file://3.2.6/0069-target-Correct-sense-key-for-INVALID-FIELD-IN-PARAME.patch \
-	file://3.2.6/0070-target-Add-workaround-for-zero-length-control-CDB-ha.patch \
-	file://3.2.6/0071-target-Return-correct-ASC-for-unimplemented-VPD-page.patch \
-	file://3.2.6/0072-target-Fail-INQUIRY-commands-with-EVPD-0-but-PAGE-CO.patch \
-	file://3.2.6/0073-Staging-asus_oled-fix-image-processing.patch \
-	file://3.2.6/0074-Staging-asus_oled-fix-NULL-ptr-crash-on-unloading.patch \
-	file://3.2.6/0075-staging-r8712u-Add-new-Sitecom-UsB-ID.patch \
-	file://3.2.6/0076-staging-r8712u-Use-asynchronous-firmware-loading.patch \
-	file://3.2.6/0077-usb-ch9.h-usb_endpoint_maxp-uses-__le16_to_cpu.patch \
-	file://3.2.6/0078-usb-gadget-zero-fix-bug-in-loopback-autoresume-handl.patch \
-	file://3.2.6/0079-usb-Skip-PCI-USB-quirk-handling-for-Netlogic-XLP.patch \
-	file://3.2.6/0080-USB-usbserial-add-new-PID-number-0xa951-to-the-ftdi-.patch \
-	file://3.2.6/0081-USB-add-new-zte-3g-dongle-s-pid-to-option.c.patch \
-	file://3.2.6/0082-zcache-Set-SWIZ_BITS-to-8-to-reduce-tmem-bucket-lock.patch \
-	file://3.2.6/0083-zcache-fix-deadlock-condition.patch \
-	file://3.2.6/0084-mmc-cb710-core-Add-missing-spin_lock_init-for-irq_lo.patch \
-	file://3.2.6/0085-powernow-k8-Avoid-Pstate-MSR-accesses-on-systems-sup.patch \
-	file://3.2.6/0086-powernow-k8-Fix-indexing-issue.patch \
-	file://3.2.6/0087-Linux-3.2.6.patch \
-	file://3.2.7/0001-ixgbe-fix-vf-lookup.patch \
-	file://3.2.7/0002-igb-fix-vf-lookup.patch \
-	file://3.2.7/0003-perf-evsel-Fix-an-issue-where-perf-report-fails-to-s.patch \
-	file://3.2.7/0004-perf-tools-Fix-perf-stack-to-non-executable-on-x86_6.patch \
-	file://3.2.7/0005-drm-i915-Force-explicit-bpp-selection-for-intel_dp_l.patch \
-	file://3.2.7/0006-drm-i915-no-lvds-quirk-for-AOpen-MP45.patch \
-	file://3.2.7/0007-ath9k-Fix-kernel-panic-during-driver-initilization.patch \
-	file://3.2.7/0008-ath9k-fix-a-WEP-crypto-related-regression.patch \
-	file://3.2.7/0009-ath9k_hw-fix-a-RTS-CTS-timeout-regression.patch \
-	file://3.2.7/0010-hwmon-f75375s-Fix-bit-shifting-in-f75375_write16.patch \
-	file://3.2.7/0011-net-enable-TC35815-for-MIPS-again.patch \
-	file://3.2.7/0012-lib-proportion-lower-PROP_MAX_SHIFT-to-32-on-64-bit-.patch \
-	file://3.2.7/0013-relay-prevent-integer-overflow-in-relay_open.patch \
-	file://3.2.7/0014-mac80211-timeout-a-single-frame-in-the-rx-reorder-bu.patch \
-	file://3.2.7/0015-writeback-fix-NULL-bdi-dev-in-trace-writeback_single.patch \
-	file://3.2.7/0016-writeback-fix-dereferencing-NULL-bdi-dev-on-trace_wr.patch \
-	file://3.2.7/0017-hwmon-f75375s-Fix-automatic-pwm-mode-setting-for-F75.patch \
-	file://3.2.7/0018-cifs-request-oplock-when-doing-open-on-lookup.patch \
-	file://3.2.7/0019-cifs-don-t-return-error-from-standard_receive3-after.patch \
-	file://3.2.7/0020-crypto-sha512-Use-binary-and-instead-of-modulus.patch \
-	file://3.2.7/0021-crypto-sha512-Avoid-stack-bloat-on-i386.patch \
-	file://3.2.7/0022-backing-dev-fix-wakeup-timer-races-with-bdi_unregist.patch \
-	file://3.2.7/0023-ALSA-intel8x0-Fix-default-inaudible-sound-on-Gateway.patch \
-	file://3.2.7/0024-ALSA-hda-Fix-initialization-of-secondary-capture-sou.patch \
-	file://3.2.7/0025-ALSA-hda-Fix-silent-speaker-output-on-Acer-Aspire-69.patch \
-	file://3.2.7/0026-mmc-atmel-mci-save-and-restore-sdioirq-when-soft-res.patch \
-	file://3.2.7/0027-mmc-dw_mmc-Fix-PIO-mode-with-support-of-highmem.patch \
-	file://3.2.7/0028-xen-pvhvm-do-not-remap-pirqs-onto-evtchns-if-xen_hav.patch \
-	file://3.2.7/0029-crypto-sha512-use-standard-ror64.patch \
-	file://3.2.7/0030-Linux-3.2.7.patch \
-	file://3.2.8/0001-i387-math_state_restore-isn-t-called-from-asm.patch \
-	file://3.2.8/0002-i387-make-irq_fpu_usable-tests-more-robust.patch \
-	file://3.2.8/0003-i387-fix-sense-of-sanity-check.patch \
-	file://3.2.8/0004-i387-fix-x86-64-preemption-unsafe-user-stack-save-re.patch \
-	file://3.2.8/0005-i387-move-TS_USEDFPU-clearing-out-of-__save_init_fpu.patch \
-	file://3.2.8/0006-i387-don-t-ever-touch-TS_USEDFPU-directly-use-helper.patch \
-	file://3.2.8/0007-i387-do-not-preload-FPU-state-at-task-switch-time.patch \
-	file://3.2.8/0008-i387-move-AMD-K7-K8-fpu-fxsave-fxrstor-workaround-fr.patch \
-	file://3.2.8/0009-i387-move-TS_USEDFPU-flag-from-thread_info-to-task_s.patch \
-	file://3.2.8/0010-i387-re-introduce-FPU-state-preloading-at-context-sw.patch \
-	file://3.2.8/0011-Linux-3.2.8.patch \
-	file://3.2.9/0001-Security-tomoyo-add-.gitignore-file.patch \
-	file://3.2.9/0002-powerpc-perf-power_pmu_start-restores-incorrect-valu.patch \
-	file://3.2.9/0003-ARM-at91-USB-AT91-gadget-registration-for-module.patch \
-	file://3.2.9/0004-drm-radeon-kms-fix-MSI-re-arm-on-rv370.patch \
-	file://3.2.9/0005-PCI-workaround-hard-wired-bus-number-V2.patch \
-	file://3.2.9/0006-mac80211-Fix-a-rwlock-bad-magic-bug.patch \
-	file://3.2.9/0007-ipheth-Add-iPhone-4S.patch \
-	file://3.2.9/0008-regmap-Fix-cache-defaults-initialization-from-raw-ca.patch \
-	file://3.2.9/0009-eCryptfs-Copy-up-lower-inode-attrs-after-setting-low.patch \
-	file://3.2.9/0010-S390-correct-ktime-to-tod-clock-comparator-conversio.patch \
-	file://3.2.9/0011-vfs-fix-d_inode_lookup-dentry-ref-leak.patch \
-	file://3.2.9/0012-ARM-7326-2-PL330-fix-null-pointer-dereference-in-pl3.patch \
-	file://3.2.9/0013-ALSA-hda-Fix-redundant-jack-creations-for-cx5051.patch \
-	file://3.2.9/0014-mmc-core-check-for-zero-length-ioctl-data.patch \
-	file://3.2.9/0015-NFSv4-Fix-an-Oops-in-the-NFSv4-getacl-code.patch \
-	file://3.2.9/0016-NFSv4-Ensure-we-throw-out-bad-delegation-stateids-on.patch \
-	file://3.2.9/0017-NFSv4-fix-server_scope-memory-leak.patch \
-	file://3.2.9/0018-ARM-7321-1-cache-v7-Disable-preemption-when-reading-.patch \
-	file://3.2.9/0019-ARM-7325-1-fix-v7-boot-with-lockdep-enabled.patch \
-	file://3.2.9/0020-3c59x-shorten-timer-period-for-slave-devices.patch \
-	file://3.2.9/0021-net-Don-t-proxy-arp-respond-if-iif-rt-dst.dev-if-pri.patch \
-	file://3.2.9/0022-netpoll-netpoll_poll_dev-should-access-dev-flags.patch \
-	file://3.2.9/0023-net_sched-Bug-in-netem-reordering.patch \
-	file://3.2.9/0024-veth-Enforce-minimum-size-of-VETH_INFO_PEER.patch \
-	file://3.2.9/0025-via-velocity-S3-resume-fix.patch \
-	file://3.2.9/0026-ipv4-reset-flowi-parameters-on-route-connect.patch \
-	file://3.2.9/0027-tcp_v4_send_reset-binding-oif-to-iif-in-no-sock-case.patch \
-	file://3.2.9/0028-ipv4-Fix-wrong-order-of-ip_rt_get_source-and-update-.patch \
-	file://3.2.9/0029-net-Make-qdisc_skb_cb-upper-size-bound-explicit.patch \
-	file://3.2.9/0030-IPoIB-Stop-lying-about-hard_header_len-and-use-skb-c.patch \
-	file://3.2.9/0031-gro-more-generic-L2-header-check.patch \
-	file://3.2.9/0032-tcp-allow-tcp_sacktag_one-to-tag-ranges-not-aligned-.patch \
-	file://3.2.9/0033-tcp-fix-range-tcp_shifted_skb-passes-to-tcp_sacktag_.patch \
-	file://3.2.9/0034-tcp-fix-tcp_shifted_skb-adjustment-of-lost_cnt_hint-.patch \
-	file://3.2.9/0035-USB-Added-Kamstrup-VID-PIDs-to-cp210x-serial-driver.patch \
-	file://3.2.9/0036-USB-option-cleanup-zte-3g-dongle-s-pid-in-option.c.patch \
-	file://3.2.9/0037-USB-Serial-ti_usb_3410_5052-Add-Abbot-Diabetes-Care-.patch \
-	file://3.2.9/0038-USB-Remove-duplicate-USB-3.0-hub-feature-defines.patch \
-	file://3.2.9/0039-USB-Fix-handoff-when-BIOS-disables-host-PCI-device.patch \
-	file://3.2.9/0040-xhci-Fix-oops-caused-by-more-USB2-ports-than-USB3-po.patch \
-	file://3.2.9/0041-xhci-Fix-encoding-for-HS-bulk-control-NAK-rate.patch \
-	file://3.2.9/0042-USB-Don-t-fail-USB3-probe-on-missing-legacy-PCI-IRQ.patch \
-	file://3.2.9/0043-USB-Set-hub-depth-after-USB3-hub-reset.patch \
-	file://3.2.9/0044-usb-storage-fix-freezing-of-the-scanning-thread.patch \
-	file://3.2.9/0045-target-Allow-control-CDBs-with-data-1-page.patch \
-	file://3.2.9/0046-ASoC-wm8962-Fix-sidetone-enumeration-texts.patch \
-	file://3.2.9/0047-ALSA-hda-realtek-Fix-overflow-of-vol-sw-check-bitmap.patch \
-	file://3.2.9/0048-ALSA-hda-realtek-Fix-surround-output-regression-on-A.patch \
-	file://3.2.9/0049-NOMMU-Lock-i_mmap_mutex-for-access-to-the-VMA-prio-l.patch \
-	file://3.2.9/0050-hwmon-max6639-Fix-FAN_FROM_REG-calculation.patch \
-	file://3.2.9/0051-hwmon-max6639-Fix-PPR-register-initialization-to-set.patch \
-	file://3.2.9/0052-hwmon-ads1015-Fix-file-leak-in-probe-function.patch \
-	file://3.2.9/0053-ARM-omap-fix-oops-in-drivers-video-omap2-dss-dpi.c.patch \
-	file://3.2.9/0054-x86-amd-Fix-L1i-and-L2-cache-sharing-information-for.patch \
-	file://3.2.9/0055-ath9k-stop-on-rates-with-idx-1-in-ath9k-rate-control.patch \
-	file://3.2.9/0056-genirq-Unmask-oneshot-irqs-when-thread-was-not-woken.patch \
-	file://3.2.9/0057-genirq-Handle-pending-irqs-in-irq_startup.patch \
-	file://3.2.9/0058-scsi_scan-Fix-Poison-overwritten-warning-caused-by-u.patch \
-	file://3.2.9/0059-scsi_pm-Fix-bug-in-the-SCSI-power-management-handler.patch \
-	file://3.2.9/0060-ipvs-fix-matching-of-fwmark-templates-during-schedul.patch \
-	file://3.2.9/0061-jme-Fix-FIFO-flush-issue.patch \
-	file://3.2.9/0062-davinci_emac-Do-not-free-all-rx-dma-descriptors-duri.patch \
-	file://3.2.9/0063-builddeb-Don-t-create-files-in-tmp-with-predictable-.patch \
-	file://3.2.9/0064-can-sja1000-fix-isr-hang-when-hw-is-unplugged-under-.patch \
-	file://3.2.9/0065-hdpvr-fix-race-conditon-during-start-of-streaming.patch \
-	file://3.2.9/0066-imon-don-t-wedge-hardware-after-early-callbacks.patch \
-	file://3.2.9/0067-hwmon-f75375s-Fix-register-write-order-when-setting-.patch \
-	file://3.2.9/0068-epoll-introduce-POLLFREE-to-flush-signalfd_wqh-befor.patch \
-	file://3.2.9/0069-epoll-ep_unregister_pollwait-can-use-the-freed-pwq-w.patch \
-	file://3.2.9/0070-epoll-limit-paths.patch \
-	file://3.2.9/0071-cdrom-use-copy_to_user-without-the-underscores.patch \
-	file://3.2.9/0072-Linux-3.2.9.patch \
-	file://3.2.10/0001-autofs-work-around-unhappy-compat-problem-on-x86-64.patch \
-	file://3.2.10/0002-Fix-autofs-compile-without-CONFIG_COMPAT.patch \
-	file://3.2.10/0003-compat-fix-compile-breakage-on-s390.patch \
-	file://3.2.10/0004-drm-i915-Prevent-a-machine-hang-by-checking-crtc-act.patch \
-	file://3.2.10/0005-ARM-LPC32xx-serial.c-HW-bug-workaround.patch \
-	file://3.2.10/0006-ARM-LPC32xx-serial.c-Fixed-loop-limit.patch \
-	file://3.2.10/0007-ARM-LPC32xx-irq.c-Clear-latched-event.patch \
-	file://3.2.10/0008-ARM-LPC32xx-Fix-interrupt-controller-init.patch \
-	file://3.2.10/0009-ARM-LPC32xx-Fix-irq-on-GPI_28.patch \
-	file://3.2.10/0010-watchdog-hpwdt-clean-up-set_memory_x-call-for-32-bit.patch \
-	file://3.2.10/0011-i2c-mxs-only-flag-completion-when-queue-is-completel.patch \
-	file://3.2.10/0012-regulator-fix-the-ldo-configure-according-to-88pm860.patch \
-	file://3.2.10/0013-S390-KEYS-Enable-the-compat-keyctl-wrapper-on-s390x.patch \
-	file://3.2.10/0014-perf-x86-kvm-Fix-Host-Only-Guest-Only-counting-with-.patch \
-	file://3.2.10/0015-ALSA-hda-realtek-Fix-resume-of-multiple-input-source.patch \
-	file://3.2.10/0016-ALSA-hda-Add-a-fake-mute-feature.patch \
-	file://3.2.10/0017-ALSA-hda-Always-set-HP-pin-in-unsol-handler-for-STAC.patch \
-	file://3.2.10/0018-regset-Prevent-null-pointer-reference-on-readonly-re.patch \
-	file://3.2.10/0019-regset-Return-EFAULT-not-EIO-on-host-side-memory-fau.patch \
-	file://3.2.10/0020-mfd-Fix-ACPI-conflict-check.patch \
-	file://3.2.10/0021-mfd-Test-for-jack-detection-when-deciding-if-wm8994-.patch \
-	file://3.2.10/0022-genirq-Clear-action-thread_mask-if-IRQ_ONESHOT-is-no.patch \
-	file://3.2.10/0023-ARM-S3C24XX-DMA-resume-regression-fix.patch \
-	file://3.2.10/0024-Move-Logitech-Harmony-900-from-cdc_ether-to-zaurus.patch \
-	file://3.2.10/0025-alpha-fix-32-64-bit-bug-in-futex-support.patch \
-	file://3.2.10/0026-mmc-atmel-mci-don-t-use-dma-features-when-using-DMA-.patch \
-	file://3.2.10/0027-mmc-sdhci-esdhc-imx-fix-for-mmc-cards-on-i.MX5.patch \
-	file://3.2.10/0028-aio-wake-up-waiters-when-freeing-unused-kiocbs.patch \
-	file://3.2.10/0029-mm-memcg-Correct-unregistring-of-events-attached-to-.patch \
-	file://3.2.10/0030-NOMMU-Don-t-need-to-clear-vm_mm-when-deleting-a-VMA.patch \
-	file://3.2.10/0031-cifs-fix-dentry-refcount-leak-when-opening-a-FIFO-on.patch \
-	file://3.2.10/0032-mac80211-zero-initialize-count-field-in-ieee80211_tx.patch \
-	file://3.2.10/0033-ath9k_hw-prevent-writes-to-const-data-on-AR9160.patch \
-	file://3.2.10/0034-kprobes-return-proper-error-code-from-register_kprob.patch \
-	file://3.2.10/0035-mm-thp-fix-BUG-on-mm-nr_ptes.patch \
-	file://3.2.10/0036-iwlwifi-fix-key-removal.patch \
-	file://3.2.10/0037-tty-powerpc-early-udbg-consoles-can-t-be-modules.patch \
-	file://3.2.10/0038-S390-qdio-fix-handler-function-arguments-for-zfcp-da.patch \
-	file://3.2.10/0039-rapidio-tsi721-fix-queue-wrapping-bug-in-inbound-doo.patch \
-	file://3.2.10/0040-HID-usbhid-Add-NOGET-quirk-for-the-AIREN-Slim-keyboa.patch \
-	file://3.2.10/0041-crypto-mv_cesa-fix-final-callback-not-ignoring-input.patch \
-	file://3.2.10/0042-osd_uld-Bump-MAX_OSD_DEVICES-from-64-to-1-048-576.patch \
-	file://3.2.10/0043-viafb-select-HW-scaling-on-VX900-for-IGA2.patch \
-	file://3.2.10/0044-viafb-fix-IGA1-modesetting-on-VX900.patch \
-	file://3.2.10/0045-ASoC-dapm-Check-for-bias-level-when-powering-down.patch \
-	file://3.2.10/0046-ASoC-i.MX-SSI-Fix-DSP_A-format.patch \
-	file://3.2.10/0047-bsg-fix-sysfs-link-remove-warning.patch \
-	file://3.2.10/0048-avr32-select-generic-atomic64_t-support.patch \
-	file://3.2.10/0049-ACPI-PM-Do-not-save-restore-NVS-on-Asus-K54C-K54HR.patch \
-	file://3.2.10/0050-rtl8192cu-Add-new-device-IDs.patch \
-	file://3.2.10/0051-drm-i915-gen7-implement-rczunit-workaround.patch \
-	file://3.2.10/0052-drm-i915-gen7-Implement-an-L3-caching-workaround.patch \
-	file://3.2.10/0053-drm-i915-gen7-work-around-a-system-hang-on-IVB.patch \
-	file://3.2.10/0054-drm-i915-gen7-Disable-the-RHWO-optimization-as-it-ca.patch \
-	file://3.2.10/0055-drm-i915-fix-ELD-writing-for-SandyBridge.patch \
-	file://3.2.10/0056-ARM-orion-Fix-USB-phy-for-orion5x.patch \
-	file://3.2.10/0057-ARM-orion-Fix-Orion5x-GPIO-regression-from-MPP-clean.patch \
-	file://3.2.10/0058-OMAP-4430SDP-Panda-use-gpio_free_array-to-free-HDMI-.patch \
-	file://3.2.10/0059-OMAP-4430SDP-Panda-rename-HPD-GPIO-to-CT_CP_HPD.patch \
-	file://3.2.10/0060-OMAPDSS-remove-wrong-HDMI-HPD-muxing.patch \
-	file://3.2.10/0061-OMAP-4430SDP-Panda-setup-HDMI-GPIO-muxes.patch \
-	file://3.2.10/0062-OMAP-4430SDP-Panda-add-HDMI-HPD-gpio.patch \
-	file://3.2.10/0063-OMAPDSS-HDMI-PHY-burnout-fix.patch \
-	file://3.2.10/0064-OMAPDSS-HDMI-hot-plug-detect-fix.patch \
-	file://3.2.10/0065-ARM-7345-1-errata-update-workaround-for-A9-erratum-7.patch \
-	file://3.2.10/0066-ARM-7354-1-perf-limit-sample_period-to-half-max_peri.patch \
-	file://3.2.10/0067-ARM-7355-1-perf-clear-overflow-flag-when-disabling-c.patch \
-	file://3.2.10/0068-ARM-7356-1-perf-check-that-we-have-an-event-in-the-P.patch \
-	file://3.2.10/0069-ARM-7357-1-perf-fix-overflow-handling-for-xscale2-PM.patch \
-	file://3.2.10/0070-media-staging-lirc_serial-Fix-init-exit-order.patch \
-	file://3.2.10/0071-media-staging-lirc_serial-Free-resources-on-failure-.patch \
-	file://3.2.10/0072-media-staging-lirc_serial-Fix-deadlock-on-resume-fai.patch \
-	file://3.2.10/0073-media-staging-lirc_serial-Do-not-assume-error-codes-.patch \
-	file://3.2.10/0074-Input-ALPS-fix-touchpad-detection-when-buttons-are-p.patch \
-	file://3.2.10/0075-hwmon-pmbus_core-Fix-maximum-number-of-POUT-alarm-at.patch \
-	file://3.2.10/0076-hwmon-jc42-Add-support-for-ST-Microelectronics-STTS2.patch \
-	file://3.2.10/0077-hwmon-jc42-Add-support-for-AT30TS00-TS3000GB2-TSE200.patch \
-	file://3.2.10/0078-hwmon-zl6100-Maintain-delay-parameter-in-driver-inst.patch \
-	file://3.2.10/0079-carl9170-Fix-memory-accounting-when-sta-is-in-power-.patch \
-	file://3.2.10/0080-carl9170-fix-frame-delivery-if-sta-is-in-powersave-m.patch \
-	file://3.2.10/0081-drm-radeon-kms-set-SX_MISC-in-the-r6xx-blit-code-v2.patch \
-	file://3.2.10/0082-net-usbnet-avoid-recursive-locking-in-usbnet_stop.patch \
-	file://3.2.10/0083-x86-amd-iommu_set_device_table-must-not-be-__init.patch \
-	file://3.2.10/0084-dm-ioctl-do-not-leak-argv-if-target-message-only-con.patch \
-	file://3.2.10/0085-dm-io-fix-discard-support.patch \
-	file://3.2.10/0086-dm-flakey-fix-crash-on-read-when-corrupt_bio_byte-no.patch \
-	file://3.2.10/0087-dm-thin-metadata-remove-incorrect-close_device-on-cr.patch \
-	file://3.2.10/0088-dm-thin-metadata-unlock-superblock-in-init_pmd-error.patch \
-	file://3.2.10/0089-dm-thin-metadata-decrement-counter-after-removing-ma.patch \
-	file://3.2.10/0090-dm-raid-set-MD_CHANGE_DEVS-when-rebuilding.patch \
-	file://3.2.10/0091-dm-raid-fix-flush-support.patch \
-	file://3.2.10/0092-cs5535-mfgpt-don-t-call-__init-function-from-__devin.patch \
-	file://3.2.10/0093-mfd-Fix-cs5535-section-mismatch.patch \
-	file://3.2.10/0094-spi-topcliff-pch-rename-pch_spi_pcidev-to-pch_spi_pc.patch \
-	file://3.2.10/0095-Linux-3.2.10.patch \
-	file://3.2.11/0001-Revert-mfd-Test-for-jack-detection-when-deciding-if-.patch \
-	file://3.2.11/0002-Linux-3.2.11.patch \
-	file://3.2.12/0001-ASoC-neo1973-fix-neo1973-wm8753-initialization.patch \
-	file://3.2.12/0002-ALSA-hda-realtek-Apply-the-coef-setup-only-to-ALC269.patch \
-	file://3.2.12/0003-aio-fix-io_setup-io_destroy-race.patch \
-	file://3.2.12/0004-aio-fix-the-too-late-munmap-race.patch \
-	file://3.2.12/0005-x86-Derandom-delay_tsc-for-64-bit.patch \
-	file://3.2.12/0006-PCI-ignore-pre-1.1-ASPM-quirking-when-ASPM-is-disabl.patch \
-	file://3.2.12/0007-omap3isp-ccdc-Fix-crash-in-HS-VS-interrupt-handler.patch \
-	file://3.2.12/0008-rt2x00-fix-random-stalls.patch \
-	file://3.2.12/0009-perf-x86-Fix-local-vs-remote-memory-events-for-NHM-W.patch \
-	file://3.2.12/0010-CIFS-Do-not-kmalloc-under-the-flocks-spinlock.patch \
-	file://3.2.12/0011-vfs-fix-return-value-from-do_last.patch \
-	file://3.2.12/0012-vfs-fix-double-put-after-complete_walk.patch \
-	file://3.2.12/0013-acer-wmi-No-wifi-rfkill-on-Lenovo-machines.patch \
-	file://3.2.12/0014-atl1c-dont-use-highprio-tx-queue.patch \
-	file://3.2.12/0015-neighbour-Fixed-race-condition-at-tbl-nht.patch \
-	file://3.2.12/0016-ipsec-be-careful-of-non-existing-mac-headers.patch \
-	file://3.2.12/0017-ppp-fix-ppp_mp_reconstruct-bad-seq-errors.patch \
-	file://3.2.12/0018-sfc-Fix-assignment-of-ip_summed-for-pre-allocated-sk.patch \
-	file://3.2.12/0019-tcp-fix-false-reordering-signal-in-tcp_shifted_skb.patch \
-	file://3.2.12/0020-vmxnet3-Fix-transport-header-size.patch \
-	file://3.2.12/0021-packetengines-fix-config-default.patch \
-	file://3.2.12/0022-r8169-corrupted-IP-fragments-fix-for-large-mtu.patch \
-	file://3.2.12/0023-tcp-don-t-fragment-SACKed-skbs-in-tcp_mark_head_lost.patch \
-	file://3.2.12/0024-bridge-check-return-value-of-ipv6_dev_get_saddr.patch \
-	file://3.2.12/0025-tcp-fix-tcp_shift_skb_data-to-not-shift-SACKed-data-.patch \
-	file://3.2.12/0026-IPv6-Fix-not-join-all-router-mcast-group-when-forwar.patch \
-	file://3.2.12/0027-usb-asix-Patch-for-Sitecom-LN-031.patch \
-	file://3.2.12/0028-regulator-Fix-setting-selector-in-tps6524x-set_volta.patch \
-	file://3.2.12/0029-block-Fix-NULL-pointer-dereference-in-sd_revalidate_.patch \
-	file://3.2.12/0030-block-sx8-fix-pointer-math-issue-getting-fw-version.patch \
-	file://3.2.12/0031-block-fix-__blkdev_get-and-add_disk-race-condition.patch \
-	file://3.2.12/0032-Block-use-a-freezable-workqueue-for-disk-event-polli.patch \
-	file://3.2.12/0033-sparc32-Add-Av8-to-assembler-command-line.patch \
-	file://3.2.12/0034-hwmon-w83627ehf-Fix-writing-into-fan_stop_time-for-N.patch \
-	file://3.2.12/0035-hwmon-w83627ehf-Fix-memory-leak-in-probe-function.patch \
-	file://3.2.12/0036-hwmon-w83627ehf-Fix-temp2-source-for-W83627UHG.patch \
-	file://3.2.12/0037-rapidio-tsi721-fix-bug-in-register-offset-definition.patch \
-	file://3.2.12/0038-i2c-algo-bit-Fix-spurious-SCL-timeouts-under-heavy-l.patch \
-	file://3.2.12/0039-iscsi-target-Fix-reservation-conflict-EBUSY-response.patch \
-	file://3.2.12/0040-target-Fix-compatible-reservation-handling-CRH-1-wit.patch \
-	file://3.2.12/0041-hwmon-zl6100-Enable-interval-between-chip-accesses-f.patch \
-	file://3.2.12/0042-Linux-3.2.12.patch \
-	file://3.2.13/0001-nilfs2-fix-NULL-pointer-dereference-in-nilfs_load_su.patch \
-	file://3.2.13/0002-afs-Read-of-file-returns-EBADMSG.patch \
-	file://3.2.13/0003-afs-Remote-abort-can-cause-BUG-in-rxrpc-code.patch \
-	file://3.2.13/0004-perf-tools-Incorrect-use-of-snprintf-results-in-SEGV.patch \
-	file://3.2.13/0005-perf-tools-Use-scnprintf-where-applicable.patch \
-	file://3.2.13/0006-tcp-fix-syncookie-regression.patch \
-	file://3.2.13/0007-ipv6-Don-t-dev_hold-dev-in-ip6_mc_find_dev_rcu.patch \
-	file://3.2.13/0008-iwl3945-fix-possible-il-txq-NULL-pointer-dereference.patch \
-	file://3.2.13/0009-powerpc-pmac-Fix-SMP-kernels-on-pre-core99-UP-machin.patch \
-	file://3.2.13/0010-Linux-3.2.13.patch \
-	file://3.2.14/0001-USB-option-Add-MediaTek-MT6276M-modem-app-interfaces.patch \
-	file://3.2.14/0002-USB-option-driver-adding-support-for-Telit-CC864-SIN.patch \
-	file://3.2.14/0003-USB-option-make-interface-blacklist-work-again.patch \
-	file://3.2.14/0004-USB-option-add-ZTE-MF820D.patch \
-	file://3.2.14/0005-staging-zcache-avoid-AB-BA-deadlock-condition.patch \
-	file://3.2.14/0006-USB-ftdi_sio-fix-problem-when-the-manufacture-is-a-N.patch \
-	file://3.2.14/0007-USB-ftdi_sio-add-support-for-BeagleBone-rev-A5.patch \
-	file://3.2.14/0008-USB-Microchip-VID-mislabeled-as-Hornby-VID-in-ftdi_s.patch \
-	file://3.2.14/0009-USB-ftdi_sio-new-PID-Distortec-JTAG-lock-pick.patch \
-	file://3.2.14/0010-USB-ftdi_sio-add-support-for-FT-X-series-devices.patch \
-	file://3.2.14/0011-USB-ftdi_sio-new-PID-LUMEL-PD12.patch \
-	file://3.2.14/0012-powerpc-usb-fix-bug-of-kernel-hang-when-initializing.patch \
-	file://3.2.14/0013-staging-r8712u-Add-missing-initialization-and-remove.patch \
-	file://3.2.14/0014-staging-r8712u-Fix-regression-introduced-by-commit-a.patch \
-	file://3.2.14/0015-staging-r8712u-Fix-regression-in-signal-level-after-.patch \
-	file://3.2.14/0016-usb-dwc3-fix-bogus-test-in-dwc3_gadget_start_isoc.patch \
-	file://3.2.14/0017-usb-dwc3-use-proper-function-for-setting-endpoint-na.patch \
-	file://3.2.14/0018-usb-gadgetfs-return-number-of-bytes-on-ep0-read-requ.patch \
-	file://3.2.14/0019-USB-gadget-Make-g_hid-device-class-conform-to-spec.patch \
-	file://3.2.14/0020-futex-Cover-all-PI-opcodes-with-cmpxchg-enabled-chec.patch \
-	file://3.2.14/0021-sysfs-Fix-memory-leak-in-sysfs_sd_setsecdata.patch \
-	file://3.2.14/0022-tty-moxa-fix-bit-test-in-moxa_start.patch \
-	file://3.2.14/0023-TTY-Wrong-unicode-value-copied-in-con_set_unimap.patch \
-	file://3.2.14/0024-USB-serial-fix-console-error-reporting.patch \
-	file://3.2.14/0025-cdc-wdm-Fix-more-races-on-the-read-path.patch \
-	file://3.2.14/0026-cdc-wdm-Don-t-clear-WDM_READ-unless-entire-read-buff.patch \
-	file://3.2.14/0027-usb-fsl_udc_core-Fix-scheduling-while-atomic-dump-me.patch \
-	file://3.2.14/0028-usb-Fix-build-error-due-to-dma_mask-is-not-at-pdev_a.patch \
-	file://3.2.14/0029-USB-ums_realtek-do-not-use-stack-memory-for-DMA-in-_.patch \
-	file://3.2.14/0030-USB-qcserial-add-several-new-serial-devices.patch \
-	file://3.2.14/0031-USB-qcserial-don-t-grab-QMI-port-on-Gobi-1000-device.patch \
-	file://3.2.14/0032-usb-serial-Add-support-for-the-Sealevel-SeaLINK-8-20.patch \
-	file://3.2.14/0033-usb-cp210x-Update-to-support-CP2105-and-multiple-int.patch \
-	file://3.2.14/0034-USB-serial-mos7840-Fixed-MCS7820-device-attach-probl.patch \
-	file://3.2.14/0035-rt2x00-Add-support-for-D-Link-DWA-127-to-rt2800usb.patch \
-	file://3.2.14/0036-rtlwifi-rtl8192c_common-rtl8192de-Check-for-allocati.patch \
-	file://3.2.14/0037-rtlwifi-Handle-previous-allocation-failures-when-fre.patch \
-	file://3.2.14/0038-rtlwifi-rtl8192c-Prevent-sleeping-from-invalid-conte.patch \
-	file://3.2.14/0039-rtlwifi-rtl8192ce-Fix-loss-of-receive-performance.patch \
-	file://3.2.14/0040-iwlwifi-always-monitor-for-stuck-queues.patch \
-	file://3.2.14/0041-math-Introduce-div64_long.patch \
-	file://3.2.14/0042-ntp-Fix-integer-overflow-when-setting-time.patch \
-	file://3.2.14/0043-uevent-send-events-in-correct-order-according-to-seq.patch \
-	file://3.2.14/0044-genirq-Fix-long-term-regression-in-genirq-irq_set_ir.patch \
-	file://3.2.14/0045-genirq-Fix-incorrect-check-for-forced-IRQ-thread-han.patch \
-	file://3.2.14/0046-rtc-Disable-the-alarm-in-the-hardware-v2.patch \
-	file://3.2.14/0047-p54spi-Release-GPIO-lines-and-IRQ-on-error-in-p54spi.patch \
-	file://3.2.14/0048-rtnetlink-Fix-VF-IFLA-policy.patch \
-	file://3.2.14/0049-IB-iser-Post-initial-receive-buffers-before-sending-.patch \
-	file://3.2.14/0050-ima-fix-Kconfig-dependencies.patch \
-	file://3.2.14/0051-x86-ioapic-Add-register-level-checks-to-detect-bogus.patch \
-	file://3.2.14/0052-mm-thp-fix-pmd_bad-triggering-in-code-paths-holding-.patch \
-	file://3.2.14/0053-TPM-Zero-buffer-whole-after-copying-to-userspace.patch \
-	file://3.2.14/0054-PM-Domains-Fix-handling-of-wakeup-devices-during-sys.patch \
-	file://3.2.14/0055-bootmem-sparsemem-remove-limit-constraint-in-alloc_b.patch \
-	file://3.2.14/0056-hugetlbfs-avoid-taking-i_mutex-from-hugetlbfs_read.patch \
-	file://3.2.14/0057-ASoC-fsl-p1022ds-tell-the-WM8776-codec-driver-that-i.patch \
-	file://3.2.14/0058-ASoC-pxa-ssp-atomically-set-stream-active-masks.patch \
-	file://3.2.14/0059-tcm_loop-Set-residual-field-for-SCSI-commands.patch \
-	file://3.2.14/0060-iscsi-target-Fix-iscsit_alloc_buffs-failure-cases.patch \
-	file://3.2.14/0061-iscsi-target-Fix-dynamic-explict-NodeACL-pointer-ref.patch \
-	file://3.2.14/0062-ALSA-hda-fix-printing-of-high-HDMI-sample-rates.patch \
-	file://3.2.14/0063-usb-gadget-fix-a-section-mismatch-when-compiling-g_f.patch \
-	file://3.2.14/0064-udlfb-remove-sysfs-framebuffer-device-with-USB-.disc.patch \
-	file://3.2.14/0065-tcm_fc-Fix-fc_exch-memory-leak-in-ft_send_resp_statu.patch \
-	file://3.2.14/0066-md-bitmap-ensure-to-load-bitmap-when-creating-via-sy.patch \
-	file://3.2.14/0067-md-don-t-set-md-arrays-to-readonly-on-shutdown.patch \
-	file://3.2.14/0068-md-raid1-raid10-avoid-deadlock-during-resync-recover.patch \
-	file://3.2.14/0069-md-fix-clearing-of-the-changed-flags-for-the-bad-blo.patch \
-	file://3.2.14/0070-drm-i915-Only-clear-the-GPU-domains-upon-a-successfu.patch \
-	file://3.2.14/0071-drm-radeon-Restrict-offset-for-legacy-hardware-curso.patch \
-	file://3.2.14/0072-drm-radeon-kms-fix-analog-load-detection-on-DVI-I-co.patch \
-	file://3.2.14/0073-drm-radeon-kms-add-connector-quirk-for-Fujitsu-D3003.patch \
-	file://3.2.14/0074-target-Don-t-set-WBUS16-or-SYNC-bits-in-INQUIRY-resp.patch \
-	file://3.2.14/0075-target-fix-use-after-free-in-target_report_luns.patch \
-	file://3.2.14/0076-target-prevent-NULL-pointer-dereference-in-target_re.patch \
-	file://3.2.14/0077-target-Fix-16-bit-target-ports-for-SET-TARGET-PORT-G.patch \
-	file://3.2.14/0078-Bluetooth-Add-AR30XX-device-ID-on-Asus-laptops.patch \
-	file://3.2.14/0079-HID-add-extra-hotkeys-in-Asus-AIO-keyboards.patch \
-	file://3.2.14/0080-HID-add-more-hotkeys-in-Asus-AIO-keyboards.patch \
-	file://3.2.14/0081-pata_legacy-correctly-mask-recovery-field-for-HT6560.patch \
-	file://3.2.14/0082-firewire-ohci-fix-too-early-completion-of-IR-multich.patch \
-	file://3.2.14/0083-KVM-x86-extend-struct-x86_emulate_ops-with-get_cpuid.patch \
-	file://3.2.14/0084-KVM-x86-fix-missing-checks-in-syscall-emulation.patch \
-	file://3.2.14/0085-NFS-Properly-handle-the-case-where-the-delegation-is.patch \
-	file://3.2.14/0086-NFSv4-Return-the-delegation-if-the-server-returns-NF.patch \
-	file://3.2.14/0087-xfs-fix-inode-lookup-race.patch \
-	file://3.2.14/0088-CIFS-Respect-negotiated-MaxMpxCount.patch \
-	file://3.2.14/0089-cifs-fix-issue-mounting-of-DFS-ROOT-when-redirecting.patch \
-	file://3.2.14/0090-CIFS-Fix-a-spurious-error-in-cifs_push_posix_locks.patch \
-	file://3.2.14/0091-UBI-fix-error-handling-in-ubi_scan.patch \
-	file://3.2.14/0092-UBI-fix-eraseblock-picking-criteria.patch \
-	file://3.2.14/0093-SUNRPC-We-must-not-use-list_for_each_entry_safe-in-r.patch \
-	file://3.2.14/0094-usbnet-increase-URB-reference-count-before-usb_unlin.patch \
-	file://3.2.14/0095-usbnet-don-t-clear-urb-dev-in-tx_complete.patch \
-	file://3.2.14/0096-e1000e-Avoid-wrong-check-on-TX-hang.patch \
-	file://3.2.14/0097-x86-32-Fix-endless-loop-when-processing-signals-for-.patch \
-	file://3.2.14/0098-proc-ns-use-d_set_d_op-API-to-set-dentry-ops-in-proc.patch \
-	file://3.2.14/0099-iommu-amd-Fix-section-warning-for-prealloc_protectio.patch \
-	file://3.2.14/0100-sysctl-protect-poll-in-entries-that-may-go-away.patch \
-	file://3.2.14/0101-hwmon-fam15h_power-Correct-sign-extension-of-running.patch \
-	file://3.2.14/0102-lgdt330x-fix-signedness-error-in-i2c_read_demod_byte.patch \
-	file://3.2.14/0103-pvrusb2-fix-7MHz-8MHz-DVB-T-tuner-support-for-HVR190.patch \
-	file://3.2.14/0104-mxl111sf-fix-error-on-stream-stop-in-mxl111sf_ep6_st.patch \
-	file://3.2.14/0105-NFSv4-Rate-limit-the-state-manager-warning-messages.patch \
-	file://3.2.14/0106-PM-Hibernate-Enable-usermodehelpers-in-hibernate-err.patch \
-	file://3.2.14/0107-jbd2-clear-BH_Delay-BH_Unwritten-in-journal_unmap_bu.patch \
-	file://3.2.14/0108-ext4-ignore-EXT4_INODE_JOURNAL_DATA-flag-with-delall.patch \
-	file://3.2.14/0109-ext4-fix-race-between-unwritten-extent-conversion-an.patch \
-	file://3.2.14/0110-ext4-fix-race-between-sync-and-completed-io-work.patch \
-	file://3.2.14/0111-ext4-check-for-zero-length-extent.patch \
-	file://3.2.14/0112-vfs-fix-d_ancestor-case-in-d_materialize_unique.patch \
-	file://3.2.14/0113-ARM-tegra-select-required-CPU-and-L2-errata-options.patch \
-	file://3.2.14/0114-udf-Fix-deadlock-in-udf_release_file.patch \
-	file://3.2.14/0115-gpio-omap-fix-_set_gpio_irqenable-implementation.patch \
-	file://3.2.14/0116-gpio-davinci-fix-oops-on-unbanked-gpio-irq-request.patch \
-	file://3.2.14/0117-gpio-davinci-fix-enabling-unbanked-GPIO-IRQs.patch \
-	file://3.2.14/0118-dm-crypt-fix-mempool-deadlock.patch \
-	file://3.2.14/0119-dm-crypt-add-missing-error-handling.patch \
-	file://3.2.14/0120-dm-exception-store-fix-init-error-path.patch \
-	file://3.2.14/0121-dm-persistent-data-fix-btree-rebalancing-after-remov.patch \
-	file://3.2.14/0122-dm-thin-fix-stacked-bi_next-usage.patch \
-	file://3.2.14/0123-backlight-fix-typo-in-tosa_lcd.c.patch \
-	file://3.2.14/0124-xfs-Fix-oops-on-IO-error-during-xlog_recover_process.patch \
-	file://3.2.14/0125-slub-Do-not-hold-slub_lock-when-calling-sysfs_slab_a.patch \
-	file://3.2.14/0126-NFSv4-Fix-two-infinite-loops-in-the-mount-code.patch \
-	file://3.2.14/0127-NFSv4.1-Fix-layoutcommit-error-handling.patch \
-	file://3.2.14/0128-module-Remove-module-size-limit.patch \
-	file://3.2.14/0129-Bluetooth-btusb-fix-bInterval-for-high-super-speed-i.patch \
-	file://3.2.14/0130-drm-i915-suspend-fbdev-device-around-suspend-hiberna.patch \
-	file://3.2.14/0131-Fix-pppol2tp-getsockname.patch \
-	file://3.2.14/0132-ipv6-fix-incorrent-ipv6-ipsec-packet-fragment.patch \
-	file://3.2.14/0133-net-bpf_jit-fix-BPF_S_LDX_B_MSH-compilation.patch \
-	file://3.2.14/0134-net-fix-a-potential-rcu_read_lock-imbalance-in-rt6_f.patch \
-	file://3.2.14/0135-net-fix-napi_reuse_skb-skb-reserve.patch \
-	file://3.2.14/0136-Remove-printk-from-rds_sendmsg.patch \
-	file://3.2.14/0137-sky2-override-for-PCI-legacy-power-management.patch \
-	file://3.2.14/0138-xfrm-Access-the-replay-notify-functions-via-the-regi.patch \
-	file://3.2.14/0139-lockd-fix-arg-parsing-for-grace_period-and-timeout.patch \
-	file://3.2.14/0140-x86-tsc-Skip-refined-tsc-calibration-on-systems-with.patch \
-	file://3.2.14/0141-x86-tls-Off-by-one-limit-check.patch \
-	file://3.2.14/0142-compat-use-sys_sendfile64-implementation-for-sendfil.patch \
-	file://3.2.14/0143-rtc-Provide-flag-for-rtc-devices-that-don-t-support-.patch \
-	file://3.2.14/0144-nfsd-don-t-allow-zero-length-strings-in-cache_parse.patch \
-	file://3.2.14/0145-serial-sh-sci-fix-a-race-of-DMA-submit_tx-on-transfe.patch \
-	file://3.2.14/0146-ASPM-Fix-pcie-devices-with-non-pcie-children.patch \
-	file://3.2.14/0147-Linux-3.2.14.patch \
-	file://3.2.15/0001-x86-bpf_jit-fix-a-bug-in-emitting-the-16-bit-immedia.patch \
-	file://3.2.15/0002-tg3-Fix-5717-serdes-powerdown-problem.patch \
-	file://3.2.15/0003-sky2-dont-overwrite-settings-for-PHY-Quick-link.patch \
-	file://3.2.15/0004-rose_dev-fix-memcpy-bug-in-rose_set_mac_address.patch \
-	file://3.2.15/0005-net-usb-cdc_eem-fix-mtu.patch \
-	file://3.2.15/0006-Fix-non-TBI-PHY-access-a-bad-merge-undid-bug-fix-in-.patch \
-	file://3.2.15/0007-ASoC-wm8994-Update-WM8994-DCS-calibration.patch \
-	file://3.2.15/0008-mtd-ixp4xx-oops-in-ixp4xx_flash_probe.patch \
-	file://3.2.15/0009-mtd-mips-lantiq-reintroduce-support-for-cmdline-part.patch \
-	file://3.2.15/0010-mtd-nand-gpmi-use-correct-member-for-checking-NAND_B.patch \
-	file://3.2.15/0011-mtd-sst25l-initialize-writebufsize.patch \
-	file://3.2.15/0012-mtd-block2mtd-initialize-writebufsize.patch \
-	file://3.2.15/0013-mtd-lart-initialize-writebufsize.patch \
-	file://3.2.15/0014-mtd-m25p80-set-writebufsize.patch \
-	file://3.2.15/0015-ACPI-Do-cpufreq-clamping-for-throttling-per-package-.patch \
-	file://3.2.15/0016-PNPACPI-Fix-device-ref-leaking-in-acpi_pnp_match.patch \
-	file://3.2.15/0017-ACPICA-Fix-regression-in-FADT-revision-checks.patch \
-	file://3.2.15/0018-modpost-fix-ALL_INIT_DATA_SECTIONS.patch \
-	file://3.2.15/0019-genirq-Adjust-irq-thread-affinity-on-IRQ_SET_MASK_OK.patch \
-	file://3.2.15/0020-tracing-Fix-ftrace-stack-trace-entries.patch \
-	file://3.2.15/0021-tracing-Fix-ent_size-in-trace-output.patch \
-	file://3.2.15/0022-m68k-mac-Add-missing-platform-check-before-registeri.patch \
-	file://3.2.15/0023-mac80211-fix-possible-tid_rx-reorder_timer-use-after.patch \
-	file://3.2.15/0024-rtlwifi-rtl8192ce-rtl8192cu-rtl8192de-Fix-low-gain-s.patch \
-	file://3.2.15/0025-drm-Validate-requested-virtual-size-against-allocate.patch \
-	file://3.2.15/0026-drm-radeon-kms-fix-fans-after-resume.patch \
-	file://3.2.15/0027-drm-i915-no-lvds-quirk-on-MSI-DC500.patch \
-	file://3.2.15/0028-drm-i915-Sanitize-BIOS-debugging-bits-from-PIPECONF.patch \
-	file://3.2.15/0029-drm-i915-Add-lock-on-drm_helper_resume_force_mode.patch \
-	file://3.2.15/0030-drm-i915-quirk-away-broken-OpRegion-VBT.patch \
-	file://3.2.15/0031-r8169-runtime-resume-before-shutdown.patch \
-	file://3.2.15/0032-target-Fix-unsupported-WRITE_SAME-sense-payload.patch \
-	file://3.2.15/0033-kgdb-debug_core-pass-the-breakpoint-struct-instead-o.patch \
-	file://3.2.15/0034-kgdbts-Fix-kernel-oops-with-CONFIG_DEBUG_RODATA.patch \
-	file://3.2.15/0035-kgdbts-1-of-2-fix-single-step-awareness-to-work-corr.patch \
-	file://3.2.15/0036-kgdbts-2-of-2-fix-single-step-awareness-to-work-corr.patch \
-	file://3.2.15/0037-x86-kgdb-Fix-DEBUG_RODATA-limitation-using-text_poke.patch \
-	file://3.2.15/0038-CIFS-Fix-VFS-lock-usage-for-oplocked-files.patch \
-	file://3.2.15/0039-ARM-tegra-remove-Tegra30-errata-from-MACH_TEGRA_DT.patch \
-	file://3.2.15/0040-mmc-sdhci-dove-Fix-compile-error-by-including-module.patch \
-	file://3.2.15/0041-mmc-atmel-mci-correct-data-timeout-computation.patch \
-	file://3.2.15/0042-tcm_fc-Add-abort-flag-for-gracefully-handling-exchan.patch \
-	file://3.2.15/0043-tcm_fc-Do-not-free-tpg-structure-during-wq-allocatio.patch \
-	file://3.2.15/0044-sysctl-fix-write-access-to-dmesg_restrict-kptr_restr.patch \
-	file://3.2.15/0045-modpost-Fix-modpost-license-checking-of-vmlinux.o.patch \
-	file://3.2.15/0046-x86-PCI-use-host-bridge-_CRS-info-on-MSI-MS-7253.patch \
-	file://3.2.15/0047-x86-PCI-do-not-tie-MSI-MS-7253-use_crs-quirk-to-BIOS.patch \
-	file://3.2.15/0048-TOMOYO-Fix-mount-flags-checking-order.patch \
-	file://3.2.15/0049-Revert-x86-ioapic-Add-register-level-checks-to-detec.patch \
-	file://3.2.15/0050-acer-wmi-No-wifi-rfkill-on-Sony-machines.patch \
-	file://3.2.15/0051-Fix-length-of-buffer-copied-in-__nfs4_get_acl_uncach.patch \
-	file://3.2.15/0052-sched-x86-Fix-overflow-in-cyc2ns_offset.patch \
-	file://3.2.15/0053-mfd-Clear-twl6030-IRQ-status-register-only-once.patch \
-	file://3.2.15/0054-USB-Add-Motorola-Rokr-E6-Id-to-the-USBNet-driver-zau.patch \
-	file://3.2.15/0055-ioat-fix-size-of-completion-for-Xen.patch \
-	file://3.2.15/0056-ASoC-ak4642-fixup-mute-needs-1-step.patch \
-	file://3.2.15/0057-cred-copy_process-should-clear-child-replacement_ses.patch \
-	file://3.2.15/0058-iommu-amd-Make-sure-IOMMU-interrupts-are-re-enabled-.patch \
-	file://3.2.15/0059-Bluetooth-Fix-l2cap-conn-failures-for-ssp-devices.patch \
-	file://3.2.15/0060-Linux-3.2.15.patch \
-	file://3.2.16/0001-drm-i915-mask-transcoder-select-bits-before-setting-.patch \
-	file://3.2.16/0002-drm-radeon-kms-fix-DVO-setup-on-some-r4xx-chips.patch \
-	file://3.2.16/0003-drm-i915-ringbuffer-Exclude-last-2-cachlines-of-ring.patch \
-	file://3.2.16/0004-drm-radeon-only-add-the-mm-i2c-bus-if-the-hw_i2c-mod.patch \
-	file://3.2.16/0005-drm-i915-properly-compute-dp-dithering-for-user-crea.patch \
-	file://3.2.16/0006-drm-i915-make-rc6-module-parameter-read-only.patch \
-	file://3.2.16/0007-rtlwifi-Add-missing-DMA-buffer-unmapping-for-PCI-dri.patch \
-	file://3.2.16/0008-ARM-7379-1-DT-fix-atags_to_fdt-second-call-site.patch \
-	file://3.2.16/0009-ARM-7384-1-ThumbEE-Disable-userspace-TEEHBR-access-f.patch \
-	file://3.2.16/0010-md-bitmap-prevent-bitmap_daemon_work-running-while-i.patch \
-	file://3.2.16/0011-Bluetooth-uart-ldisc-Fix-memory-leak.patch \
-	file://3.2.16/0012-Bluetooth-hci_ldisc-fix-NULL-pointer-dereference-on-.patch \
-	file://3.2.16/0013-ext4-address-scalability-issue-by-removing-extent-ca.patch \
-	file://3.2.16/0014-ia64-fix-futex_atomic_cmpxchg_inatomic.patch \
-	file://3.2.16/0015-drivers-rtc-rtc-pl031.c-enable-clock-on-all-ST-varia.patch \
-	file://3.2.16/0016-hugetlb-fix-race-condition-in-hugetlb_fault.patch \
-	file://3.2.16/0017-staging-iio-hmc5843-Fix-crash-in-probe-function.patch \
-	file://3.2.16/0018-tty-serial-altera_uart-Check-for-NULL-platform_data-.patch \
-	file://3.2.16/0019-sparc64-Eliminate-obsolete-__handle_softirq-function.patch \
-	file://3.2.16/0020-sparc64-Fix-bootup-crash-on-sun4v.patch \
-	file://3.2.16/0021-cciss-Initialize-scsi-host-max_sectors-for-tape-driv.patch \
-	file://3.2.16/0022-cciss-Fix-scsi-tape-io-with-more-than-255-scatter-ga.patch \
-	file://3.2.16/0023-video-uvesafb-Fix-oops-that-uvesafb-try-to-execute-N.patch \
-	file://3.2.16/0024-nohz-Fix-stale-jiffies-update-in-tick_nohz_restart.patch \
-	file://3.2.16/0025-pch_uart-Fix-MSI-setting-issue.patch \
-	file://3.2.16/0026-USB-serial-fix-race-between-probe-and-open.patch \
-	file://3.2.16/0027-USB-pl2303-fix-DTR-RTS-being-raised-on-baud-rate-cha.patch \
-	file://3.2.16/0028-USB-option-re-add-NOVATELWIRELESS_PRODUCT_HSPA_HIGHS.patch \
-	file://3.2.16/0029-USB-ftdi_sio-fix-status-line-change-handling-for-TIO.patch \
-	file://3.2.16/0030-USB-ftdi_sio-fix-race-condition-in-TIOCMIWAIT-and-ab.patch \
-	file://3.2.16/0031-USB-sierra-add-support-for-Sierra-Wireless-MC7710.patch \
-	file://3.2.16/0032-USB-don-t-clear-urb-dev-in-scatter-gather-library.patch \
-	file://3.2.16/0033-USB-don-t-ignore-suspend-errors-for-root-hubs.patch \
-	file://3.2.16/0034-xhci-don-t-re-enable-IE-constantly.patch \
-	file://3.2.16/0035-xhci-Don-t-write-zeroed-pointers-to-xHC-registers.patch \
-	file://3.2.16/0036-xhci-Restore-event-ring-dequeue-pointer-on-resume.patch \
-	file://3.2.16/0037-USB-fix-bug-of-device-descriptor-got-from-superspeed.patch \
-	file://3.2.16/0038-xHCI-add-XHCI_RESET_ON_RESUME-quirk-for-VIA-xHCI-hos.patch \
-	file://3.2.16/0039-xHCI-Correct-the-define-XHCI_LEGACY_DISABLE_SMI.patch \
-	file://3.2.16/0040-fix-tlb-flushing-for-page-table-pages.patch \
-	file://3.2.16/0041-serial-PL011-clear-pending-interrupts.patch \
-	file://3.2.16/0042-serial-PL011-move-interrupt-clearing.patch \
-	file://3.2.16/0043-fcaps-clear-the-same-personality-flags-as-suid-when-.patch \
-	file://3.2.16/0044-ath9k-fix-max-noise-floor-threshold.patch \
-	file://3.2.16/0045-xhci-Fix-register-save-restore-order.patch \
-	file://3.2.16/0046-Bluetooth-hci_core-fix-NULL-pointer-dereference-at-u.patch \
-	file://3.2.16/0047-pch_gpio-Support-new-device-LAPIS-Semiconductor-ML78.patch \
-	file://3.2.16/0048-gpio-Add-missing-spin_lock_init-in-gpio-pch-driver.patch \
-	file://3.2.16/0049-usb-gadget-pch_udc-Fix-disconnect-issue.patch \
-	file://3.2.16/0050-usb-gadget-pch_udc-Fix-wrong-return-value.patch \
-	file://3.2.16/0051-usb-gadget-pch_udc-Fix-USB-suspend-issue.patch \
-	file://3.2.16/0052-usb-gadget-pch_udc-Fix-usb-gadget-pch_udc-Fix-ether-.patch \
-	file://3.2.16/0053-usb-gadget-pch_udc-Reduce-redundant-interrupt.patch \
-	file://3.2.16/0054-ACPICA-Fix-to-allow-region-arguments-to-reference-ot.patch \
-	file://3.2.16/0055-security-fix-compile-error-in-commoncap.c.patch \
-	file://3.2.16/0056-pch_gbe-Do-not-abort-probe-on-bad-MAC.patch \
-	file://3.2.16/0057-pch_gbe-memory-corruption-calling-pch_gbe_validate_o.patch \
-	file://3.2.16/0058-pch_dma-Support-new-device-LAPIS-Semiconductor-ML783.patch \
-	file://3.2.16/0059-spi-topcliff-pch-fix-Wuninitialized-warning.patch \
-	file://3.2.16/0060-spi-topcliff-pch-Support-new-device-LAPIS-Semiconduc.patch \
-	file://3.2.16/0061-Bluetooth-Adding-USB-device-13d3-3375-as-an-Atheros-.patch \
-	file://3.2.16/0062-Bluetooth-Add-Atheros-maryann-PIDVID-support.patch \
-	file://3.2.16/0063-Bluetooth-Add-support-for-BCM20702A0-0a5c-21e3.patch \
-	file://3.2.16/0064-futex-Do-not-leak-robust-list-to-unprivileged-proces.patch \
-	file://3.2.16/0065-drm-radeon-kms-fix-the-regression-of-DVI-connector-c.patch \
-	file://3.2.16/0066-drm-radeon-disable-MSI-on-RV515.patch \
-	file://3.2.16/0067-drm-radeon-fix-load-detect-on-rn50-with-hardcoded-ED.patch \
-	file://3.2.16/0068-Linux-3.2.16.patch \
-	file://3.2.17/0001-crypto-sha512-Fix-byte-counter-overflow-in-SHA-512.patch \
-	file://3.2.17/0002-ALSA-hda-conexant-Don-t-set-HP-pin-control-bit-uncon.patch \
-	file://3.2.17/0003-ALSA-hda-conexant-Set-up-the-missing-docking-station.patch \
-	file://3.2.17/0004-ARM-clps711x-serial-driver-hungs-are-a-result-of-cal.patch \
-	file://3.2.17/0005-ARM-OMAP1-DMTIMER-fix-broken-timer-clock-source-sele.patch \
-	file://3.2.17/0006-mmc-fixes-for-eMMC-v4.5-discard-operation.patch \
-	file://3.2.17/0007-mmc-fixes-for-eMMC-v4.5-sanitize-operation.patch \
-	file://3.2.17/0008-mmc-unbreak-sdhci-esdhc-imx-on-i.MX25.patch \
-	file://3.2.17/0009-xen-gntdev-do-not-set-VM_PFNMAP.patch \
-	file://3.2.17/0010-xen-xenbus-Add-quirk-to-deal-with-misconfigured-back.patch \
-	file://3.2.17/0011-USB-yurex-Remove-allocation-of-coherent-buffer-for-s.patch \
-	file://3.2.17/0012-USB-yurex-Fix-missing-URB_NO_TRANSFER_DMA_MAP-flag-i.patch \
-	file://3.2.17/0013-uwb-fix-use-of-del_timer_sync-in-interrupt.patch \
-	file://3.2.17/0014-uwb-fix-error-handling.patch \
-	file://3.2.17/0015-davinci_mdio-Fix-MDIO-timeout-check.patch \
-	file://3.2.17/0016-mwifiex-update-pcie8766-scratch-register-addresses.patch \
-	file://3.2.17/0017-brcm80211-smac-resume-transmit-fifo-upon-receiving-f.patch \
-	file://3.2.17/0018-rc-core-set-mode-for-winbond-cir.patch \
-	file://3.2.17/0019-drxk-Does-not-unlock-mutex-if-sanity-check-failed-in.patch \
-	file://3.2.17/0020-cfg80211-fix-interface-combinations-check.patch \
-	file://3.2.17/0021-Fix-modpost-failures-in-fedora-17.patch \
-	file://3.2.17/0022-mm-fix-s390-BUG-by-__set_page_dirty_no_writeback-on-.patch \
-	file://3.2.17/0023-md-fix-possible-corruption-of-array-metadata-on-shut.patch \
-	file://3.2.17/0024-jbd2-use-GFP_NOFS-for-blkdev_issue_flush.patch \
-	file://3.2.17/0025-USB-serial-cp210x-Fixed-usb_control_msg-timeout-valu.patch \
-	file://3.2.17/0026-pch_uart-Fix-dma-channel-unallocated-issue.patch \
-	file://3.2.17/0027-drivers-tty-amiserial.c-add-missing-tty_unlock.patch \
-	file://3.2.17/0028-USB-sierra-avoid-QMI-wwan-interface-on-MC77xx.patch \
-	file://3.2.17/0029-EHCI-fix-criterion-for-resuming-the-root-hub.patch \
-	file://3.2.17/0030-EHCI-always-clear-the-STS_FLR-status-bit.patch \
-	file://3.2.17/0031-USB-fix-deadlock-in-bConfigurationValue-attribute-me.patch \
-	file://3.2.17/0032-usb-gadget-eliminate-NULL-pointer-dereference-bugfix.patch \
-	file://3.2.17/0033-usb-musb-omap-fix-crash-when-musb-glue-omap-gets-ini.patch \
-	file://3.2.17/0034-usb-musb-omap-fix-the-error-check-for-pm_runtime_get.patch \
-	file://3.2.17/0035-PCI-Add-quirk-for-still-enabled-interrupts-on-Intel-.patch \
-	file://3.2.17/0036-ext4-fix-endianness-breakage-in-ext4_split_extent_at.patch \
-	file://3.2.17/0037-KVM-unmap-pages-from-the-iommu-when-slots-are-remove.patch \
-	file://3.2.17/0038-dell-laptop-add-3-machines-that-has-touchpad-LED.patch \
-	file://3.2.17/0039-dell-laptop-touchpad-LED-should-persist-its-status-a.patch \
-	file://3.2.17/0040-Bluetooth-Add-support-for-Atheros-04ca-3005.patch \
-	file://3.2.17/0041-Don-t-limit-non-nested-epoll-paths.patch \
-	file://3.2.17/0042-spi-Fix-device-unregistration-when-unregistering-the.patch \
-	file://3.2.17/0043-spi-mpc83xx-fix-NULL-pdata-dereference-bug.patch \
-	file://3.2.17/0044-rt2800-Add-support-for-the-Fujitsu-Stylistic-Q550.patch \
-	file://3.2.17/0045-rt2x00-Identify-rt2800usb-chipsets.patch \
-	file://3.2.17/0046-nfsd-fix-b0rken-error-value-for-setattr-on-read-only.patch \
-	file://3.2.17/0047-nfsd-fix-error-values-returned-by-nfsd4_lockt-when-n.patch \
-	file://3.2.17/0048-nfsd-fix-endianness-breakage-in-TEST_STATEID-handlin.patch \
-	file://3.2.17/0049-nfsd-fix-compose_entry_fh-failure-exits.patch \
-	file://3.2.17/0050-btrfs-btrfs_root_readonly-broken-on-big-endian.patch \
-	file://3.2.17/0051-ocfs2-l_next_free_req-breakage-on-big-endian.patch \
-	file://3.2.17/0052-ocfs-rl_used-breakage-on-big-endian.patch \
-	file://3.2.17/0053-ocfs2-rl_count-endianness-breakage.patch \
-	file://3.2.17/0054-ocfs2-e_leaf_clusters-endianness-breakage.patch \
-	file://3.2.17/0055-lockd-fix-the-endianness-bug.patch \
-	file://3.2.17/0056-usb-dwc3-ep0-increment-actual-on-bounced-ep0-case.patch \
-	file://3.2.17/0057-net-fix-proc-net-dev-regression.patch \
-	file://3.2.17/0058-nfsd-don-t-fail-unchecked-creates-of-non-special-fil.patch \
-	file://3.2.17/0059-ppp-Don-t-stop-and-restart-queue-on-every-TX-packet.patch \
-	file://3.2.17/0060-tcp-allow-splice-to-build-full-TSO-packets.patch \
-	file://3.2.17/0061-sctp-Allow-struct-sctp_event_subscribe-to-grow-witho.patch \
-	file://3.2.17/0062-bridge-Do-not-send-queries-on-multicast-group-leaves.patch \
-	file://3.2.17/0063-ipv6-fix-array-index-in-ip6_mc_add_src.patch \
-	file://3.2.17/0064-phonet-Check-input-from-user-before-allocating.patch \
-	file://3.2.17/0065-bonding-properly-unset-current_arp_slave-on-slave-li.patch \
-	file://3.2.17/0066-wimax-i2400m-prevent-a-possible-kernel-bug-due-to-mi.patch \
-	file://3.2.17/0067-netlink-fix-races-after-skb-queueing.patch \
-	file://3.2.17/0068-net-fix-a-race-in-sock_queue_err_skb.patch \
-	file://3.2.17/0069-tcp-fix-tcp_rcv_rtt_update-use-of-an-unscaled-RTT-sa.patch \
-	file://3.2.17/0070-net-allow-pskb_expand_head-to-get-maximum-tailroom.patch \
-	file://3.2.17/0071-tcp-fix-tcp_trim_head.patch \
-	file://3.2.17/0072-tcp-avoid-order-1-allocations-on-wifi-and-tx-path.patch \
-	file://3.2.17/0073-atl1-fix-kernel-panic-in-case-of-DMA-errors.patch \
-	file://3.2.17/0074-8139cp-set-intr-mask-after-its-handler-is-registered.patch \
-	file://3.2.17/0075-net-smsc911x-fix-skb-handling-in-receive-path.patch \
-	file://3.2.17/0076-net-ethernet-ks8851_mll-fix-rx-frame-buffer-overflow.patch \
-	file://3.2.17/0077-net_sched-gred-Fix-oops-in-gred_dump-in-WRED-mode.patch \
-	file://3.2.17/0078-net-usb-smsc75xx-fix-mtu.patch \
-	file://3.2.17/0079-dummy-Add-ndo_uninit.patch \
-	file://3.2.17/0080-tcp-fix-tcp_grow_window-for-large-incoming-frames.patch \
-	file://3.2.17/0081-netns-do-not-leak-net_generic-data-on-failed-init.patch \
-	file://3.2.17/0082-ksz884x-don-t-copy-too-much-in-netdev_set_mac_addres.patch \
-	file://3.2.17/0083-net-ax25-Reorder-ax25_exit-to-remove-races.patch \
-	file://3.2.17/0084-tcp-fix-TCP_MAXSEG-for-established-IPv6-passive-sock.patch \
-	file://3.2.17/0085-nfs-Enclose-hostname-in-brackets-when-needed-in-nfs_.patch \
-	file://3.2.17/0086-NFSv4-Ensure-that-the-LOCK-code-sets-exception-inode.patch \
-	file://3.2.17/0087-NFSv4-Ensure-that-we-check-lock-exclusive-shared-typ.patch \
-	file://3.2.17/0088-NFS-put-open-context-on-error-in-nfs_pagein_multi.patch \
-	file://3.2.17/0089-NFS-put-open-context-on-error-in-nfs_flush_multi.patch \
-	file://3.2.17/0090-x86-microcode-Fix-sysfs-warning-during-module-unload.patch \
-	file://3.2.17/0091-x86-apic-APIC-code-touches-invalid-MSR-on-P5-class-m.patch \
-	file://3.2.17/0092-Revert-autofs-work-around-unhappy-compat-problem-on-.patch \
-	file://3.2.17/0093-xen-correctly-check-for-pending-events-when-restorin.patch \
-	file://3.2.17/0094-xen-smp-Fix-crash-when-booting-with-ACPI-hotplug-CPU.patch \
-	file://3.2.17/0095-ASoC-dapm-Ensure-power-gets-managed-for-line-widgets.patch \
-	file://3.2.17/0096-ASoC-wm8994-Improve-sequencing-of-AIF-channel-enable.patch \
-	file://3.2.17/0097-dmaengine-at_hdmac-remove-clear-on-read-in-atc_dosta.patch \
-	file://3.2.17/0098-sched-Fix-OOPS-when-build_sched_domains-percpu-alloc.patch \
-	file://3.2.17/0099-tracing-Fix-stacktrace-of-latency-tracers-irqsoff-an.patch \
-	file://3.2.17/0100-hwmon-fam15h_power-fix-bogus-values-with-current-BIO.patch \
-	file://3.2.17/0101-hwmon-fam15h_power-Fix-pci_device_id-array.patch \
-	file://3.2.17/0102-dell-laptop-Terminate-quirks-list-properly.patch \
-	file://3.2.17/0103-drm-radeon-kms-need-to-set-up-ss-on-DP-bridges-as-we.patch \
-	file://3.2.17/0104-drm-i915-handle-input-output-sdvo-timings-separately.patch \
-	file://3.2.17/0105-drm-i915-relative_constants_mode-race-fix.patch \
-	file://3.2.17/0106-drm-i915-Force-sync-command-ordering-Gen6.patch \
-	file://3.2.17/0107-drm-i915-Set-the-Stencil-Cache-eviction-policy-to-no.patch \
-	file://3.2.17/0108-drm-i915-fix-integer-overflow-in-i915_gem_execbuffer.patch \
-	file://3.2.17/0109-drm-i915-fix-integer-overflow-in-i915_gem_do_execbuf.patch \
-	file://3.2.17/0110-nl80211-ensure-interface-is-up-in-various-APIs.patch \
-	file://3.2.17/0111-ALSA-HDA-Add-external-mic-quirk-for-Asus-Zenbook-UX3.patch \
-	file://3.2.17/0112-USB-cdc-wdm-fix-race-leading-leading-to-memory-corru.patch \
-	file://3.2.17/0113-USB-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch \
-	file://3.2.17/0114-USB-gadget-storage-gadgets-send-wrong-error-code-for.patch \
-	file://3.2.17/0115-usb-gadget-dummy-do-not-call-pullup-on-udc_stop.patch \
-	file://3.2.17/0116-usb-gadget-uvc-uvc_request_data-length-field-must-be.patch \
-	file://3.2.17/0117-pipes-add-a-packetized-pipe-mode-for-writing.patch \
-	file://3.2.17/0118-autofs-make-the-autofsv5-packet-file-descriptor-use-.patch \
-	file://3.2.17/0119-ARM-7396-1-errata-only-handle-ARM-erratum-326103-on-.patch \
-	file://3.2.17/0120-ARM-7397-1-l2x0-only-apply-workaround-for-erratum-75.patch \
-	file://3.2.17/0121-ARM-7398-1-l2x0-only-write-to-debug-registers-on-PL3.patch \
-	file://3.2.17/0122-ARM-7403-1-tls-remove-covert-channel-via-TPIDRURW.patch \
-	file://3.2.17/0123-ARM-7406-1-hotplug-copy-the-affinity-mask-when-force.patch \
-	file://3.2.17/0124-libsas-fix-sas_find_bcast_phy-in-the-presence-of-vac.patch \
-	file://3.2.17/0125-libsas-fix-false-positive-device-attached-conditions.patch \
-	file://3.2.17/0126-efi-Add-new-variable-attributes.patch \
-	file://3.2.17/0127-efi-Validate-UEFI-boot-variables.patch \
-	file://3.2.17/0128-PM-Hibernate-fix-the-number-of-pages-used-for-hibern.patch \
-	file://3.2.17/0129-drm-i915-enable-dip-before-writing-data-on-gen4.patch \
-	file://3.2.17/0130-sched-Fix-nohz-load-accounting-again.patch \
-	file://3.2.17/0131-efivars-Improve-variable-validation.patch \
-	file://3.2.17/0132-fs-cifs-fix-parsing-of-dfs-referrals.patch \
-	file://3.2.17/0133-Fix-__read_seqcount_begin-to-use-ACCESS_ONCE-for-seq.patch \
-	file://3.2.17/0134-hwmon-coretemp-Increase-CPU-core-limit.patch \
-	file://3.2.17/0135-nouveau-initialise-has_optimus-variable.patch \
-	file://3.2.17/0136-hwmon-coretemp-fix-oops-on-cpu-unplug.patch \
-	file://3.2.17/0137-libata-skip-old-error-history-when-counting-probe-tr.patch \
-	file://3.2.17/0138-b43-only-reload-config-after-successful-initializati.patch \
-	file://3.2.17/0139-i2c-pnx-Disable-clk-in-suspend.patch \
-	file://3.2.17/0140-ipw2200-Fix-race-condition-in-the-command-completion.patch \
-	file://3.2.17/0141-mac80211-fix-AP-mode-EAP-tx-for-VLAN-stations.patch \
-	file://3.2.17/0142-rtlwifi-Fix-oops-on-unload.patch \
-	file://3.2.17/0143-wl1251-fix-crash-on-remove-due-to-premature-kfree.patch \
-	file://3.2.17/0144-wl1251-fix-crash-on-remove-due-to-leftover-work-item.patch \
-	file://3.2.17/0145-iwlwifi-do-not-nulify-ctx-vif-on-reset.patch \
-	file://3.2.17/0146-iwlwifi-fix-hardware-queue-programming.patch \
-	file://3.2.17/0147-hfsplus-Fix-potential-buffer-overflows.patch \
-	file://3.2.17/0148-ASoC-tlv312aic23-unbreak-resume.patch \
-	file://3.2.17/0149-asm-generic-Use-__BITS_PER_LONG-in-statfs.h.patch \
-	file://3.2.17/0150-x86-relocs-Remove-an-unused-variable.patch \
-	file://3.2.17/0151-ARM-7410-1-Add-extra-clobber-registers-for-assembly-.patch \
-	file://3.2.17/0152-ARM-7414-1-SMP-prevent-use-of-the-console-when-using.patch \
-	file://3.2.17/0153-drm-i915-disable-sdvo-hotplug-on-i945g-gm.patch \
-	file://3.2.17/0154-drm-i915-Do-no-set-Stencil-Cache-eviction-LRA-w-a-on.patch \
-	file://3.2.17/0155-xen-pte-Fix-crashes-when-trying-to-see-non-existent-.patch \
-	file://3.2.17/0156-xen-pci-don-t-use-PCI-BIOS-service-for-configuration.patch \
-	file://3.2.17/0157-percpu-x86-don-t-use-PMD_SIZE-as-embedded-atom_size-.patch \
-	file://3.2.17/0158-iwlagn-allow-up-to-uCode-API-6-for-6000-devices.patch \
-	file://3.2.17/0159-iwlwifi-use-correct-released-ucode-version.patch \
-	file://3.2.17/0160-iwlwifi-use-6000G2B-for-6030-device-series.patch \
-	file://3.2.17/0161-exit_signal-simplify-the-we-have-changed-execution-d.patch \
-	file://3.2.17/0162-exit_signal-fix-the-parent-has-changed-security-doma.patch \
-	file://3.2.17/0163-staging-r8712u-Fix-regression-caused-by-commit-8c213.patch \
-	file://3.2.17/0164-smsc95xx-mark-link-down-on-startup-and-let-PHY-inter.patch \
-	file://3.2.17/0165-Linux-3.2.17.patch \
-	file://3.2.18/0001-regulator-Fix-the-logic-to-ensure-new-voltage-settin.patch \
-	file://3.2.18/0002-ARM-OMAP-Revert-ARM-OMAP-ctrl-Fix-CONTROL_DSIPHY-reg.patch \
-	file://3.2.18/0003-ALSA-echoaudio-Remove-incorrect-part-of-assertion.patch \
-	file://3.2.18/0004-ARM-orion5x-Fix-GPIO-enable-bits-for-MPP9.patch \
-	file://3.2.18/0005-ALSA-HDA-Lessen-CPU-usage-when-waiting-for-chip-to-r.patch \
-	file://3.2.18/0006-percpu-pcpu_embed_first_chunk-should-free-unused-par.patch \
-	file://3.2.18/0007-hugetlb-prevent-BUG_ON-in-hugetlb_fault-hugetlb_cow.patch \
-	file://3.2.18/0008-namespaces-pid_ns-fix-leakage-on-fork-failure.patch \
-	file://3.2.18/0009-mm-nobootmem-fix-sign-extend-problem-in-__free_pages.patch \
-	file://3.2.18/0010-asix-Fix-tx-transfer-padding-for-full-speed-USB.patch \
-	file://3.2.18/0011-netem-fix-possible-skb-leak.patch \
-	file://3.2.18/0012-net-In-unregister_netdevice_notifier-unregister-the-.patch \
-	file://3.2.18/0013-net-l2tp-unlock-socket-lock-before-returning-from-l2.patch \
-	file://3.2.18/0014-sky2-propogate-rx-hash-when-packet-is-copied.patch \
-	file://3.2.18/0015-sky2-fix-receive-length-error-in-mixed-non-VLAN-VLAN.patch \
-	file://3.2.18/0016-sungem-Fix-WakeOnLan.patch \
-	file://3.2.18/0017-tg3-Avoid-panic-from-reserved-statblk-field-access.patch \
-	file://3.2.18/0018-tcp-fix-infinite-cwnd-in-tcp_complete_cwr.patch \
-	file://3.2.18/0019-tcp-change-tcp_adv_win_scale-and-tcp_rmem-2.patch \
-	file://3.2.18/0020-brcm80211-smac-pass-missing-argument-to-brcms_b_mute.patch \
-	file://3.2.18/0021-phy-icplus-fix-Auto-Power-Saving-in-ip101a_config_in.patch \
-	file://3.2.18/0022-NFSv4-Revalidate-uid-gid-after-open.patch \
-	file://3.2.18/0023-target-Drop-incorrect-se_lun_acl-release-for-dynamic.patch \
-	file://3.2.18/0024-marvell-cam-fix-an-ARM-build-error.patch \
-	file://3.2.18/0025-rc-Postpone-ISR-registration.patch \
-	file://3.2.18/0026-cdc_ether-Ignore-bogus-union-descriptor-for-RNDIS-de.patch \
-	file://3.2.18/0027-jffs2-Fix-lock-acquisition-order-bug-in-gc-path.patch \
-	file://3.2.18/0028-s5p-fimc-Fix-locking-in-subdev-set_crop-op.patch \
-	file://3.2.18/0029-dm-mpath-check-if-scsi_dh-module-already-loaded-befo.patch \
-	file://3.2.18/0030-sparc64-Do-not-clobber-g2-in-xcall_fetch_glob_regs.patch \
-	file://3.2.18/0031-gpio-Add-missing-spin_lock_init-in-gpio-ml-ioh-drive.patch \
-	file://3.2.18/0032-spi-topcliff-pch-Modify-pci-bus-number-dynamically-t.patch \
-	file://3.2.18/0033-spi-topcliff-pch-Fix-issue-for-transmitting-over-4KB.patch \
-	file://3.2.18/0034-spi-topcliff-pch-supports-a-spi-mode-setup-and-bit-o.patch \
-	file://3.2.18/0035-spi-topcliff-pch-add-recovery-processing-in-case-wai.patch \
-	file://3.2.18/0036-ext4-avoid-deadlock-on-sync-mounted-FS-w-o-journal.patch \
-	file://3.2.18/0037-ia64-Add-accept4-syscall.patch \
-	file://3.2.18/0038-brcm80211-smac-fix-endless-retry-of-A-MPDU-transmiss.patch \
-	file://3.2.18/0039-ARM-7417-1-vfp-ensure-preemption-is-disabled-when-en.patch \
-	file://3.2.18/0040-target-Fix-SPC-2-RELEASE-bug-for-multi-session-iSCSI.patch \
-	file://3.2.18/0041-crypto-mv_cesa-requires-on-CRYPTO_HASH-to-build.patch \
-	file://3.2.18/0042-ALSA-hda-idt-Fix-power-map-for-speaker-pins-with-som.patch \
-	file://3.2.18/0043-ASoC-wm8994-Fix-AIF2ADC-power-down.patch \
-	file://3.2.18/0044-usbnet-fix-skb-traversing-races-during-unlink-v2.patch \
-	file://3.2.18/0045-cdc_ether-add-Novatel-USB551L-device-IDs-for-FLAG_WW.patch \
-	file://3.2.18/0046-ARM-prevent-VM_GROWSDOWN-mmaps-extending-below-FIRST.patch \
-	file://3.2.18/0047-arch-tile-apply-commit-74fca9da0-to-the-compat-signa.patch \
-	file://3.2.18/0048-MD-Add-del_timer_sync-to-mddev_suspend-fix-nasty-pan.patch \
-	file://3.2.18/0049-target-Fix-bug-in-handling-of-FILEIO-block_device-re.patch \
-	file://3.2.18/0050-tcp-do_tcp_sendpages-must-try-to-push-data-out-on-oo.patch \
-	file://3.2.18/0051-e1000-Prevent-reset-task-killing-itself.patch \
-	file://3.2.18/0052-mtd-map.h-fix-arm-cross-build-failure.patch \
-	file://3.2.18/0053-stmmac-Fix-compilation-error-in-mmc_core.c.patch \
-	file://3.2.18/0054-pktgen-fix-crash-at-module-unload.patch \
-	file://3.2.18/0055-pktgen-fix-module-unload-for-good.patch \
-	file://3.2.18/0056-Linux-3.2.18.patch \
-	file://3.2.19/0001-KVM-mmu_notifier-Flush-TLBs-before-releasing-mmu_loc.patch \
-	file://3.2.19/0002-KVM-Ensure-all-vcpus-are-consistent-with-in-kernel-i.patch \
-	file://3.2.19/0003-KVM-lock-slots_lock-around-device-assignment.patch \
-	file://3.2.19/0004-KVM-nVMX-Fix-erroneous-exception-bitmap-check.patch \
-	file://3.2.19/0005-KVM-VMX-vmx_set_cr0-expects-kvm-srcu-locked.patch \
-	file://3.2.19/0006-KVM-s390-do-store-status-after-handling-STOP_ON_STOP.patch \
-	file://3.2.19/0007-KVM-s390-Sanitize-fpc-registers-for-KVM_SET_FPU.patch \
-	file://3.2.19/0008-bio-don-t-overflow-in-bio_get_nr_vecs.patch \
-	file://3.2.19/0009-bio-allocation-failure-due-to-bio_get_nr_vecs.patch \
-	file://3.2.19/0010-block-fix-buffer-overflow-when-printing-partition-UU.patch \
-	file://3.2.19/0011-fix-PA1.1-oops-on-boot.patch \
-	file://3.2.19/0012-fix-crash-in-flush_icache_page_asm-on-PA1.1.patch \
-	file://3.2.19/0013-fix-panic-on-prefetch-NULL-on-PA7300LC.patch \
-	file://3.2.19/0014-arch-tile-Kconfig-remove-pointless-M386-test.patch \
-	file://3.2.19/0015-tilegx-enable-SYSCALL_WRAPPERS-support.patch \
-	file://3.2.19/0016-mtd-sm_ftl-fix-typo-in-major-number.patch \
-	file://3.2.19/0017-hpsa-Fix-problem-with-MSA2xxx-devices.patch \
-	file://3.2.19/0018-SELinux-if-sel_make_bools-errors-don-t-leave-inconsi.patch \
-	file://3.2.19/0019-cfg80211-warn-if-db.txt-is-empty-with-CONFIG_CFG8021.patch \
-	file://3.2.19/0020-mpt2sas-Fix-for-panic-happening-because-of-improper-.patch \
-	file://3.2.19/0021-isdn-gigaset-ratelimit-CAPI-message-dumps.patch \
-	file://3.2.19/0022-isdn-gigaset-fix-CAPI-disconnect-B3-handling.patch \
-	file://3.2.19/0023-isdn-gigaset-improve-error-handling-querying-firmwar.patch \
-	file://3.2.19/0024-KEYS-Use-the-compat-keyctl-syscall-wrapper-on-Sparc6.patch \
-	file://3.2.19/0025-IB-core-Fix-mismatch-between-locked-and-pinned-pages.patch \
-	file://3.2.19/0026-regulator-core-Release-regulator-regulator-supplies-.patch \
-	file://3.2.19/0027-iommu-Fix-off-by-one-in-dmar_get_fault_reason.patch \
-	file://3.2.19/0028-RDMA-cxgb4-Always-wake-up-waiters-in-c4iw_peer_abort.patch \
-	file://3.2.19/0029-RDMA-cxgb4-Drop-peer_abort-when-no-endpoint-found.patch \
-	file://3.2.19/0030-s390-pfault-fix-task-state-race.patch \
-	file://3.2.19/0031-isci-fix-oem-parameter-validation-on-single-controll.patch \
-	file://3.2.19/0032-Fix-blocking-allocations-called-very-early-during-bo.patch \
-	file://3.2.19/0033-vfs-make-AIO-use-the-proper-rw_verify_area-area-help.patch \
-	file://3.2.19/0034-docs-update-HOWTO-for-2.6.x-3.x-versioning.patch \
-	file://3.2.19/0035-drivers-staging-comedi-comedi_fops.c-add-missing-vfr.patch \
-	file://3.2.19/0036-USB-move-usb_translate_errors-to-linux-usb.h.patch \
-	file://3.2.19/0037-USB-cdc-wdm-sanitize-error-returns.patch \
-	file://3.2.19/0038-USB-cdc-wdm-fix-memory-leak.patch \
-	file://3.2.19/0039-8250_pci-fix-pch-uart-matching.patch \
-	file://3.2.19/0040-usb-add-USB_QUIRK_RESET_RESUME-for-M-Audio-88es.patch \
-	file://3.2.19/0041-usb-usbtest-two-super-speed-fixes-for-usbtest.patch \
-	file://3.2.19/0042-8250.c-less-than-2400-baud-fix.patch \
-	file://3.2.19/0043-usb-xhci-Handle-COMP_TX_ERR-for-isoc-tds.patch \
-	file://3.2.19/0044-xhci-Avoid-dead-ports-when-CONFIG_USB_XHCI_HCD-n.patch \
-	file://3.2.19/0045-xhci-Add-Lynx-Point-to-list-of-Intel-switchable-host.patch \
-	file://3.2.19/0046-usb-gadget-fsl_udc_core-dTD-s-next-dtd-pointer-need-.patch \
-	file://3.2.19/0047-Add-missing-call-to-uart_update_timeout.patch \
-	file://3.2.19/0048-USB-ftdi-sio-add-support-for-Physik-Instrumente-E-86.patch \
-	file://3.2.19/0049-USB-ffs-test-fix-length-argument-of-out-function-cal.patch \
-	file://3.2.19/0050-HID-wiimote-Fix-IR-data-parser.patch \
-	file://3.2.19/0051-usb-storage-unusual_devs-entry-for-Yarvik-PMP400-MP4.patch \
-	file://3.2.19/0052-USB-ohci-at91-add-a-reset-function-to-fix-race-condi.patch \
-	file://3.2.19/0053-HID-logitech-read-all-32-bits-of-report-type-bitfiel.patch \
-	file://3.2.19/0054-USB-serial-ti_usb_3410_5052-Add-support-for-the-FRI2.patch \
-	file://3.2.19/0055-USB-cdc-wdm-poll-must-return-POLLHUP-if-device-is-go.patch \
-	file://3.2.19/0056-USB-cdc-wdm-add-debug-messages-on-cleanup.patch \
-	file://3.2.19/0057-USB-cdc-wdm-cannot-use-dev_printk-when-device-is-gon.patch \
-	file://3.2.19/0058-tty-Allow-uart_register-unregister-register.patch \
-	file://3.2.19/0059-workqueue-skip-nr_running-sanity-check-in-worker_ent.patch \
-	file://3.2.19/0060-xhci-Add-new-short-TX-quirk-for-Fresco-Logic-host.patch \
-	file://3.2.19/0061-usbcore-enable-USB2-LPM-if-port-suspend-fails.patch \
-	file://3.2.19/0062-perf-x86-Update-event-scheduling-constraints-for-AMD.patch \
-	file://3.2.19/0063-USB-fix-resource-leak-in-xhci-power-loss-path.patch \
-	file://3.2.19/0064-xhci-Reset-reserved-command-ring-TRBs-on-cleanup.patch \
-	file://3.2.19/0065-USB-Remove-races-in-devio.c.patch \
-	file://3.2.19/0066-md-using-GFP_NOIO-to-allocate-bio-for-flush-request.patch \
-	file://3.2.19/0067-um-Implement-a-custom-pte_same-function.patch \
-	file://3.2.19/0068-um-Fix-__swp_type.patch \
-	file://3.2.19/0069-swap-don-t-do-discard-if-no-discard-option-added.patch \
-	file://3.2.19/0070-Input-wacom-relax-Bamboo-stylus-ID-check.patch \
-	file://3.2.19/0071-ahci-Detect-Marvell-88SE9172-SATA-controller.patch \
-	file://3.2.19/0072-ARM-7365-1-drop-unused-parameter-from-flush_cache_us.patch \
-	file://3.2.19/0073-ARM-7409-1-Do-not-call-flush_cache_user_range-with-m.patch \
-	file://3.2.19/0074-sony-laptop-Enable-keyboard-backlight-by-default.patch \
-	file://3.2.19/0075-init-don-t-try-mounting-device-as-nfs-root-unless-ty.patch \
-	file://3.2.19/0076-memcg-free-spare-array-to-avoid-memory-leak.patch \
-	file://3.2.19/0077-compat-Fix-RT-signal-mask-corruption-via-sigprocmask.patch \
-	file://3.2.19/0078-ext3-Fix-error-handling-on-inode-bitmap-corruption.patch \
-	file://3.2.19/0079-ext4-fix-error-handling-on-inode-bitmap-corruption.patch \
-	file://3.2.19/0080-ACPI-PM-Add-Sony-Vaio-VPCCW29FX-to-nonvs-blacklist.patch \
-	file://3.2.19/0081-hpsa-Add-IRQF_SHARED-back-in-for-the-non-MSI-X-inter.patch \
-	file://3.2.19/0082-wake-up-s_wait_unfrozen-when-freeze_fs-fails.patch \
-	file://3.2.19/0083-cifs-fix-revalidation-test-in-cifs_llseek.patch \
-	file://3.2.19/0084-dl2k-Clean-up-rio_ioctl.patch \
-	file://3.2.19/0085-OMAPDSS-VENC-fix-NULL-pointer-dereference-in-DSS2-VE.patch \
-	file://3.2.19/0086-i2c-eg20t-change-timeout-value-50msec-to-1000msec.patch \
-	file://3.2.19/0087-drm-i915-GEN7-Use-HW-scheduler-for-fixed-function-sh.patch \
-	file://3.2.19/0088-mmc-sdio-avoid-spurious-calls-to-interrupt-handlers.patch \
-	file://3.2.19/0089-smsusb-add-autodetection-support-for-USB-ID-2040-c0a.patch \
-	file://3.2.19/0090-uvcvideo-Fix-ENUMINPUT-handling.patch \
-	file://3.2.19/0091-drm-i915-Avoid-a-double-read-of-PCH_IIR-during-inter.patch \
-	file://3.2.19/0092-b43legacy-Fix-error-due-to-MMIO-access-with-SSB-unpo.patch \
-	file://3.2.19/0093-gpio-mpc8xxx-Prevent-NULL-pointer-deref-in-demux-han.patch \
-	file://3.2.19/0094-drm-i915-don-t-clobber-the-pipe-param-in-sanitize_mo.patch \
-	file://3.2.19/0095-spi-spi-fsl-spi-reference-correct-pdata-in-fsl_spi_c.patch \
-	file://3.2.19/0096-xen-do-not-map-the-same-GSI-twice-in-PVHVM-guests.patch \
-	file://3.2.19/0097-nouveau-nouveau_set_bo_placement-takes-TTM-flags.patch \
-	file://3.2.19/0098-MCE-Fix-vm86-handling-for-32bit-mce-handler.patch \
-	file://3.2.19/0099-x86-mce-Fix-check-for-processor-context-when-machine.patch \
-	file://3.2.19/0100-tile-fix-bug-where-fls-0-was-not-returning-0.patch \
-	file://3.2.19/0101-intel-iommu-Add-device-info-into-list-before-doing-c.patch \
-	file://3.2.19/0102-ethtool-Null-terminate-filename-passed-to-ethtool_op.patch \
-	file://3.2.19/0103-block-don-t-mark-buffers-beyond-end-of-disk-as-mappe.patch \
-	file://3.2.19/0104-drivers-rtc-rtc-pl031.c-configure-correct-wday-for-2.patch \
-	file://3.2.19/0105-rtlwifi-Preallocate-USB-read-buffers-and-eliminate-k.patch \
-	file://3.2.19/0106-NFS4-fix-compile-warnings-in-nfs4proc.c.patch \
-	file://3.2.19/0107-Avoid-reading-past-buffer-when-calling-GETACL.patch \
-	file://3.2.19/0108-Avoid-beyond-bounds-copy-while-caching-ACL.patch \
-	file://3.2.19/0109-i2c-tegra-notify-transfer-complete-after-clearing-st.patch \
-	file://3.2.19/0110-i2c-davinci-Free-requested-IRQ-in-remove.patch \
-	file://3.2.19/0111-x86-realmode-16-bit-real-mode-code-support-for-reloc.patch \
-	file://3.2.19/0112-x86-relocs-Workaround-for-binutils-2.22.52.0.1-secti.patch \
-	file://3.2.19/0113-x86-relocs-When-printing-an-error-say-relative-or-ab.patch \
-	file://3.2.19/0114-x86-relocs-Build-clean-fix.patch \
-	file://3.2.19/0115-x86-32-relocs-Whitelist-more-symbols-for-ld-bug-work.patch \
-	file://3.2.19/0116-x86-relocs-Add-jiffies-and-jiffies_64-to-the-relativ.patch \
-	file://3.2.19/0117-Linux-3.2.19.patch \
-	file://3.2.20/0001-iommu-amd-Add-workaround-for-event-log-erratum.patch \
-	file://3.2.20/0002-MIPS-BCM63XX-Add-missing-include-for-bcm63xx_gpio.h.patch \
-	file://3.2.20/0003-cifs-Include-backup-intent-search-flags-during-searc.patch \
-	file://3.2.20/0004-sunrpc-fix-loss-of-task-tk_status-after-rpc_delay-ca.patch \
-	file://3.2.20/0005-exofs-Fix-CRASH-on-very-early-IO-errors.patch \
-	file://3.2.20/0006-cifs-fix-oops-while-traversing-open-file-list-try-4.patch \
-	file://3.2.20/0007-Fix-dm-multipath-starvation-when-scsi-host-is-busy.patch \
-	file://3.2.20/0008-ixp4xx-fix-compilation-by-adding-gpiolib-support.patch \
-	file://3.2.20/0009-drm-i915-properly-handle-interlaced-bit-for-sdvo-dtd.patch \
-	file://3.2.20/0010-drm-i915-enable-vdd-when-switching-off-the-eDP-panel.patch \
-	file://3.2.20/0011-drm-i915-Add-Clientron-E830-to-the-ignore-LVDS-list.patch \
-	file://3.2.20/0012-drm-i915-Ignore-LVDS-on-hp-t5745-and-hp-st5747-thin-.patch \
-	file://3.2.20/0013-drm-i915-no-lvds-quirk-for-HP-t5740e-Thin-Client.patch \
-	file://3.2.20/0014-drm-i915-wait-for-a-vblank-to-pass-after-tv-detect.patch \
-	file://3.2.20/0015-drm-i915-Update-GEN6_RP_CONTROL-definitions.patch \
-	file://3.2.20/0016-drm-i915-always-use-RPNSWREQ-for-turbo-change-reques.patch \
-	file://3.2.20/0017-solos-pci-Fix-DMA-support.patch \
-	file://3.2.20/0018-microblaze-Do-not-select-GENERIC_GPIO-by-default.patch \
-	file://3.2.20/0019-fix-boot-failure-on-32-bit-systems-caused-by-branch-.patch \
-	file://3.2.20/0020-fix-TLB-fault-path-on-PA2.0-narrow-systems.patch \
-	file://3.2.20/0021-iwlwifi-update-BT-traffic-load-states-correctly.patch \
-	file://3.2.20/0022-iwlwifi-do-not-use-shadow-registers-by-default.patch \
-	file://3.2.20/0023-wl1251-fix-oops-on-early-interrupt.patch \
-	file://3.2.20/0024-NFSv4-Map-NFS4ERR_SHARE_DENIED-into-an-EACCES-error-.patch \
-	file://3.2.20/0025-drm-radeon-fix-XFX-quirk.patch \
-	file://3.2.20/0026-ath9k-fix-a-use-after-free-bug-when-ath_tx_setup_buf.patch \
-	file://3.2.20/0027-mac80211-fix-ADDBA-declined-after-suspend-with-wowla.patch \
-	file://3.2.20/0028-mm-fork-fix-overflow-in-vma-length-when-copying-mmap.patch \
-	file://3.2.20/0029-mm-consider-all-swapped-back-pages-in-used-once-logi.patch \
-	file://3.2.20/0030-hugetlb-fix-resv_map-leak-in-error-path.patch \
-	file://3.2.20/0031-mm-vmalloc.c-change-void-into-explict-vm_struct.patch \
-	file://3.2.20/0032-mm-fix-faulty-initialization-in-vmalloc_init.patch \
-	file://3.2.20/0033-fix-scsi_wait_scan.patch \
-	file://3.2.20/0034-mm-fix-vma_resv_map-NULL-pointer.patch \
-	file://3.2.20/0035-x86-amd-xen-Avoid-NULL-pointer-paravirt-references.patch \
-	file://3.2.20/0036-slub-fix-a-memory-leak-in-get_partial_node.patch \
-	file://3.2.20/0037-ext4-force-ro-mount-if-ext4_setup_super-fails.patch \
-	file://3.2.20/0038-ext4-disallow-hard-linked-directory-in-ext4_lookup.patch \
-	file://3.2.20/0039-mtd-nand-fix-scan_read_raw_oob.patch \
-	file://3.2.20/0040-vfs-increment-iversion-when-a-file-is-truncated.patch \
-	file://3.2.20/0041-vfs-umount_tree-might-be-called-on-subtree-that-had-.patch \
-	file://3.2.20/0042-ext4-add-missing-save_error_info-to-ext4_error.patch \
-	file://3.2.20/0043-ALSA-usb-audio-fix-rate_list-memory-leak.patch \
-	file://3.2.20/0044-ext4-add-ext4_mb_unload_buddy-in-the-error-path.patch \
-	file://3.2.20/0045-ext4-remove-mb_groups-before-tearing-down-the-buddy_.patch \
-	file://3.2.20/0046-drm-radeon-fix-bank-information-in-tiling-config.patch \
-	file://3.2.20/0047-drm-radeon-properly-program-gart-on-rv740-juniper-cy.patch \
-	file://3.2.20/0048-drm-radeon-fix-HD6790-HD6570-backend-programming.patch \
-	file://3.2.20/0049-drm-ttm-Fix-spinlock-imbalance.patch \
-	file://3.2.20/0050-drm-vmwgfx-Fix-nasty-write-past-alloced-memory-area.patch \
-	file://3.2.20/0051-mtd-of_parts-fix-breakage-in-Kconfig.patch \
-	file://3.2.20/0052-fec_mpc52xx-fix-timestamp-filtering.patch \
-	file://3.2.20/0053-Bluetooth-btusb-Add-vendor-specific-ID-0a5c-21f3-for.patch \
-	file://3.2.20/0054-Bluetooth-btusb-add-support-for-BCM20702A0-0a5c-21e6.patch \
-	file://3.2.20/0055-Bluetooth-btusb-Add-USB-device-ID-0a5c-21e8.patch \
-	file://3.2.20/0056-Bluetooth-btusb-typo-in-Broadcom-SoftSailing-id.patch \
-	file://3.2.20/0057-Bluetooth-btusb-Add-vendor-specific-ID-0489-e042-for.patch \
-	file://3.2.20/0058-Bluetooth-Add-support-for-Atheros-13d3-3362.patch \
-	file://3.2.20/0059-Bluetooth-Add-support-for-AR3012-0cf3-e004.patch \
-	file://3.2.20/0060-Add-Foxconn-Hon-Hai-IDs-for-btusb-module.patch \
-	file://3.2.20/0061-Bluetooth-Add-support-for-Foxconn-Hon-Hai-AR5BBU22-0.patch \
-	file://3.2.20/0062-drm-i915-Disable-FBC-on-SandyBridge.patch \
-	file://3.2.20/0063-ipv4-Do-not-use-dead-fib_info-entries.patch \
-	file://3.2.20/0064-ipv4-fix-the-rcu-race-between-free_fib_info-and-ip_r.patch \
-	file://3.2.20/0065-set-fake_rtable-s-dst-to-NULL-to-avoid-kernel-Oops.patch \
-	file://3.2.20/0066-ipv6-fix-incorrect-ipsec-fragment.patch \
-	file://3.2.20/0067-l2tp-fix-oops-in-L2TP-IP-sockets-for-connect-AF_UNSP.patch \
-	file://3.2.20/0068-r8169-missing-barriers.patch \
-	file://3.2.20/0069-r8169-fix-early-queue-wake-up.patch \
-	file://3.2.20/0070-r8169-fix-unsigned-int-wraparound-with-TSO.patch \
-	file://3.2.20/0071-Revert-net-maintain-namespace-isolation-between-vlan.patch \
-	file://3.2.20/0072-sctp-check-cached-dst-before-using-it.patch \
-	file://3.2.20/0073-skb-avoid-unnecessary-reallocations-in-__skb_cow.patch \
-	file://3.2.20/0074-xfrm-take-net-hdr-len-into-account-for-esp-payload-s.patch \
-	file://3.2.20/0075-ACPI-battery-only-refresh-the-sysfs-files-when-perti.patch \
-	file://3.2.20/0076-target-file-Use-O_DSYNC-by-default-for-FILEIO-backen.patch \
-	file://3.2.20/0077-iommu-amd-Cache-pdev-pointer-to-root-bridge.patch \
-	file://3.2.20/0078-drm-radeon-kms-add-new-Palm-Sumo-PCI-ids.patch \
-	file://3.2.20/0079-drm-radeon-kms-add-new-BTC-PCI-ids.patch \
-	file://3.2.20/0080-btree-fix-tree-corruption-in-btree_get_prev.patch \
-	file://3.2.20/0081-kbuild-install-kernel-page-flags.h.patch \
-	file://3.2.20/0082-asix-allow-full-size-8021Q-frames-to-be-received.patch \
-	file://3.2.20/0083-ext4-don-t-trash-state-flags-in-EXT4_IOC_SETFLAGS.patch \
-	file://3.2.20/0084-ext4-don-t-set-i_flags-in-EXT4_IOC_SETFLAGS.patch \
-	file://3.2.20/0085-ext4-fix-the-free-blocks-calculation-for-ext3-file-s.patch \
-	file://3.2.20/0086-Linux-3.2.20.patch \
-	file://3.2.21/0001-drm-i915-Mark-the-ringbuffers-as-being-in-the-GTT-do.patch \
-	file://3.2.21/0002-drm-i915-hold-forcewake-around-ring-hw-init.patch \
-	file://3.2.21/0003-drm-i915-Unpin-the-flip-target-if-we-fail-to-queue-t.patch \
-	file://3.2.21/0004-drm-i915-fix-up-ivb-plane-3-pageflips.patch \
-	file://3.2.21/0005-char-agp-add-another-Ironlake-host-bridge.patch \
-	file://3.2.21/0006-x86-uv-Fix-UV2-BAU-legacy-mode.patch \
-	file://3.2.21/0007-powerpc-Fix-kernel-panic-during-kernel-module-load.patch \
-	file://3.2.21/0008-drm-nouveau-determine-a-value-for-display_info.bpc-i.patch \
-	file://3.2.21/0009-drm-nouveau-default-to-8bpc-for-non-LVDS-panels-if-E.patch \
-	file://3.2.21/0010-drm-nouveau-disp-fix-dithering-not-being-enabled-on-.patch \
-	file://3.2.21/0011-fuse-fix-stat-call-on-32-bit-platforms.patch \
-	file://3.2.21/0012-x86-MCE-AMD-Make-APIC-LVT-thresholding-interrupt-opt.patch \
-	file://3.2.21/0013-x86-amd-Re-enable-CPU-topology-extensions-in-case-BI.patch \
-	file://3.2.21/0014-hwmon-fam15h_power-Increase-output-resolution.patch \
-	file://3.2.21/0015-sched-Fix-the-relax_domain_level-boot-parameter.patch \
-	file://3.2.21/0016-iwlwifi-don-t-mess-up-the-SCD-when-removing-a-key.patch \
-	file://3.2.21/0017-hwrng-atmel-rng-fix-race-condition-leading-to-repeat.patch \
-	file://3.2.21/0018-crypto-aesni-intel-fix-unaligned-cbc-decrypt-for-x86.patch \
-	file://3.2.21/0019-xen-setup-filter-APERFMPERF-cpuid-feature-out.patch \
-	file://3.2.21/0020-NFSv4.1-Fix-a-request-leak-on-the-back-channel.patch \
-	file://3.2.21/0021-can-c_can-fix-BUG-echo_skb-is-occupied-during-transm.patch \
-	file://3.2.21/0022-can-c_can-fix-an-interrupt-thrash-issue-with-c_can-d.patch \
-	file://3.2.21/0023-can-c_can-fix-race-condition-in-c_can_open.patch \
-	file://3.2.21/0024-ARM-i.MX53-Fix-PLL4-base-address.patch \
-	file://3.2.21/0025-usb-musb_gadget-fix-crash-caused-by-dangling-pointer.patch \
-	file://3.2.21/0026-mac80211-clean-up-remain-on-channel-on-interface-sto.patch \
-	file://3.2.21/0027-rt2x00-use-atomic-variable-for-seqno.patch \
-	file://3.2.21/0028-iwlwifi-disable-WoWLAN-if-CONFIG_PM_SLEEP.patch \
-	file://3.2.21/0029-ASoC-wm8994-Ensure-all-AIFnCLK-events-are-run-from-t.patch \
-	file://3.2.21/0030-ASoC-wm8994-Apply-volume-updates-with-clocks-enabled.patch \
-	file://3.2.21/0031-iwlwifi-unregister-LEDs-if-mac80211-registration-fai.patch \
-	file://3.2.21/0032-cfg80211-fix-interface-combinations-check.patch \
-	file://3.2.21/0033-mpt2sas-Fix-unsafe-using-smp_processor_id-in-preempt.patch \
-	file://3.2.21/0034-net-sierra_net-device-IDs-for-Aircard-320U.patch \
-	file://3.2.21/0035-ARM-imx6-exit-coherency-when-shutting-down-a-cpu.patch \
-	file://3.2.21/0036-ARM-i.MX-imx21ads-Fix-overlapping-static-i-o-mapping.patch \
-	file://3.2.21/0037-NFSv4-Fix-unnecessary-delegation-returns-in-nfs4_do_.patch \
-	file://3.2.21/0038-iwlwifi-use-correct-supported-firmware-for-6035-and-.patch \
-	file://3.2.21/0039-iwlwifi-disable-the-buggy-chain-extension-feature-in.patch \
-	file://3.2.21/0040-ALSA-hda-Add-codec-no_jack_detect-flag.patch \
-	file://3.2.21/0041-ALSA-hda-add-support-for-Uniwill-ECS-M31EI-notebook.patch \
-	file://3.2.21/0042-ALSA-hda-Suppress-auto-mute-feature-on-some-machines.patch \
-	file://3.2.21/0043-ALSA-hda-Add-another-jack-detection-suppression-for-.patch \
-	file://3.2.21/0044-ALSA-HDA-Pin-fixup-for-Zotac-Z68-motherboard.patch \
-	file://3.2.21/0045-usb-cdc-wdm-Add-device-id-for-Huawei-3G-LTE-modems.patch \
-	file://3.2.21/0046-USB-qcserial-Add-Sierra-Wireless-device-IDs.patch \
-	file://3.2.21/0047-USB-ftdi-sio-Add-support-for-RT-Systems-USB-RTS01-se.patch \
-	file://3.2.21/0048-USB-serial-cp210x-add-Optris-MS-Pro-usb-id.patch \
-	file://3.2.21/0049-USB-serial-sierra-Add-support-for-Sierra-Wireless-Ai.patch \
-	file://3.2.21/0050-USB-option-Updated-Huawei-K4605-has-better-id.patch \
-	file://3.2.21/0051-USB-mct_u232-Fix-incorrect-TIOCMSET-return.patch \
-	file://3.2.21/0052-USB-option-fix-port-data-abuse.patch \
-	file://3.2.21/0053-USB-option-fix-memory-leak.patch \
-	file://3.2.21/0054-USB-option-add-more-YUGA-device-ids.patch \
-	file://3.2.21/0055-target-Return-error-to-initiator-if-SET-TARGET-PORT-.patch \
-	file://3.2.21/0056-USB-add-NO_D3_DURING_SLEEP-flag-and-revert-151b61284.patch \
-	file://3.2.21/0057-USB-serial-Enforce-USB-driver-and-USB-serial-driver-.patch \
-	file://3.2.21/0058-xhci-Fix-invalid-loop-check-in-xhci_free_tt_info.patch \
-	file://3.2.21/0059-xhci-Don-t-free-endpoints-in-xhci_mem_cleanup.patch \
-	file://3.2.21/0060-xHCI-Increase-the-timeout-for-controller-save-restor.patch \
-	file://3.2.21/0061-usb-PS3-EHCI-QH-read-work-around.patch \
-	file://3.2.21/0062-USB-fix-PS3-EHCI-systems.patch \
-	file://3.2.21/0063-usb-cdc-acm-fix-devices-not-unthrottled-on-open.patch \
-	file://3.2.21/0064-USB-fix-gathering-of-interface-associations.patch \
-	file://3.2.21/0065-swap-fix-shmem-swapping-when-more-than-8-areas.patch \
-	file://3.2.21/0066-drm-radeon-add-some-additional-6xx-7xx-EG-register-i.patch \
-	file://3.2.21/0067-Linux-3.2.21.patch \
-	file://3.2.22/0001-staging-iio-ad7606-Re-add-missing-scale-attribute.patch \
-	file://3.2.22/0002-Tools-hv-verify-origin-of-netlink-connector-message.patch \
-	file://3.2.22/0003-edac-avoid-mce-decoding-crash-after-edac-driver-unlo.patch \
-	file://3.2.22/0004-hwrng-atmel-rng-fix-data-valid-check.patch \
-	file://3.2.22/0005-staging-r8712u-Add-new-USB-IDs.patch \
-	file://3.2.22/0006-hwmon-applesmc-Limit-key-length-in-warning-messages.patch \
-	file://3.2.22/0007-mm-pmd_read_atomic-fix-32bit-PAE-pmd-walk-vs-pmd_pop.patch \
-	file://3.2.22/0008-thp-avoid-atomic64_read-in-pmd_read_atomic-for-32bit.patch \
-	file://3.2.22/0009-nilfs2-ensure-proper-cache-clearing-for-gc-inodes.patch \
-	file://3.2.22/0010-drm-i915-Finish-any-pending-operations-on-the-frameb.patch \
-	file://3.2.22/0011-drm-i915-Remove-use-of-the-autoreported-ringbuffer-H.patch \
-	file://3.2.22/0012-e1000e-Disable-ASPM-L1-on-82574.patch \
-	file://3.2.22/0013-e1000e-Remove-special-case-for-82573-82574-ASPM-L1-d.patch \
-	file://3.2.22/0014-drm-i915-Do-the-fallback-non-IRQ-wait-in-ring-thrott.patch \
-	file://3.2.22/0015-staging-rts_pstor-Fix-possible-panic-by-NULL-pointer.patch \
-	file://3.2.22/0016-gspca-core-Fix-buffers-staying-in-queued-state-after.patch \
-	file://3.2.22/0017-smsusb-add-autodetection-support-for-USB-ID-2040-f5a.patch \
-	file://3.2.22/0018-drm-edid-don-t-return-stack-garbage-from-supports_rb.patch \
-	file://3.2.22/0019-drm-nouveau-fbcon-using-nv_two_heads-is-not-a-good-i.patch \
-	file://3.2.22/0020-dm-thin-reinstate-missing-mempool_free-in-cell_relea.patch \
-	file://3.2.22/0021-ath9k-Fix-a-WARNING-on-suspend-resume-with-IBSS.patch \
-	file://3.2.22/0022-cfg80211-fix-potential-deadlock-in-regulatory.patch \
-	file://3.2.22/0023-ath9k-Fix-softlockup-in-AR9485.patch \
-	file://3.2.22/0024-can-c_can-precedence-error-in-c_can_chip_config.patch \
-	file://3.2.22/0025-ath9k-fix-a-tx-rate-duration-calculation-bug.patch \
-	file://3.2.22/0026-batman-adv-fix-skb-data-assignment.patch \
-	file://3.2.22/0027-ARM-SAMSUNG-Should-check-for-IS_ERR-clk-instead-of-N.patch \
-	file://3.2.22/0028-ath9k_hw-avoid-possible-infinite-loop-in-ar9003_get_.patch \
-	file://3.2.22/0029-iwlwifi-remove-log_event-debugfs-file-debugging-is-d.patch \
-	file://3.2.22/0030-ARM-SAMSUNG-Fix-for-S3C2412-EBI-memory-mapping.patch \
-	file://3.2.22/0031-USB-option-add-id-for-Cellient-MEN-200.patch \
-	file://3.2.22/0032-oprofile-perf-use-NR_CPUS-instead-or-nr_cpumask_bits.patch \
-	file://3.2.22/0033-drm-i915-Refactor-the-deferred-PM_IIR-handling-into-.patch \
-	file://3.2.22/0034-drm-i915-rip-out-the-PM_IIR-WARN.patch \
-	file://3.2.22/0035-drm-i915-Fix-eDP-blank-screen-after-S3-resume-on-HP-.patch \
-	file://3.2.22/0036-PM-Sleep-Prevent-waiting-forever-on-asynchronous-sus.patch \
-	file://3.2.22/0037-x86-cpufeature-Rename-X86_FEATURE_DTS-to-X86_FEATURE.patch \
-	file://3.2.22/0038-stable-Allow-merging-of-backports-for-serious-user-v.patch \
-	file://3.2.22/0039-ALSA-hda-Add-Realtek-ALC280-codec-support.patch \
-	file://3.2.22/0040-USB-option-Add-USB-ID-for-Novatel-Ovation-MC551.patch \
-	file://3.2.22/0041-USB-CP210x-Add-10-Device-IDs.patch \
-	file://3.2.22/0042-xen-netfront-teardown-the-device-before-unregisterin.patch \
-	file://3.2.22/0043-can-flexcan-use-be32_to_cpup-to-handle-the-value-of-.patch \
-	file://3.2.22/0044-acpi_pad-fix-power_saving-thread-deadlock.patch \
-	file://3.2.22/0045-batman-adv-only-drop-packets-of-known-wifi-clients.patch \
-	file://3.2.22/0046-Linux-3.2.22.patch \
-	file://3.2.23/0001-splice-fix-racy-pipe-buffers-uses.patch \
-	file://3.2.23/0002-umem-fix-up-unplugging.patch \
-	file://3.2.23/0003-mwifiex-fix-11n-rx-packet-drop-issue.patch \
-	file://3.2.23/0004-mwifiex-fix-WPS-eapol-handshake-failure.patch \
-	file://3.2.23/0005-NFC-Prevent-multiple-buffer-overflows-in-NCI.patch \
-	file://3.2.23/0006-ath9k-fix-dynamic-WEP-related-regression.patch \
-	file://3.2.23/0007-NFC-Return-from-rawsock_release-when-sk-is-NULL.patch \
-	file://3.2.23/0008-rtlwifi-rtl8192cu-New-USB-IDs.patch \
-	file://3.2.23/0009-ath9k-enable-serialize_regmode-for-non-PCIE-AR9287.patch \
-	file://3.2.23/0010-mac80211-correct-behaviour-on-unrecognised-action-fr.patch \
-	file://3.2.23/0011-ASoC-tlv320aic3x-Fix-codec-pll-configure-bug.patch \
-	file://3.2.23/0012-powerpc-xmon-Use-cpumask-iterator-to-avoid-warning.patch \
-	file://3.2.23/0013-powerpc-kvm-sldi-should-be-sld.patch \
-	file://3.2.23/0014-md-raid10-Don-t-try-to-recovery-unmatched-and-unused.patch \
-	file://3.2.23/0015-md-raid5-Do-not-add-data_offset-before-call-to-is_ba.patch \
-	file://3.2.23/0016-md-raid5-In-ops_run_io-inc-nr_pending-before-calling.patch \
-	file://3.2.23/0017-md-raid10-fix-failure-when-trying-to-repair-a-read-e.patch \
-	file://3.2.23/0018-drm-i915-kick-any-firmware-framebuffers-before-claim.patch \
-	file://3.2.23/0019-dm-persistent-data-fix-shadow_info_leak-on-dm_tm_des.patch \
-	file://3.2.23/0020-dm-persistent-data-handle-space-map-checker-creation.patch \
-	file://3.2.23/0021-dm-persistent-data-fix-allocation-failure-in-space-m.patch \
-	file://3.2.23/0022-ALSA-hda-Fix-power-map-regression-for-HP-dv6-co.patch \
-	file://3.2.23/0023-tracing-change-CPU-ring-buffer-state-from-tracing_cp.patch \
-	file://3.2.23/0024-mwifiex-fix-wrong-return-values-in-add_virtual_intf-.patch \
-	file://3.2.23/0025-udf-Use-ret-instead-of-abusing-i-in-udf_load_logical.patch \
-	file://3.2.23/0026-udf-Avoid-run-away-loop-when-partition-table-length-.patch \
-	file://3.2.23/0027-udf-Fortify-loading-of-sparing-table.patch \
-	file://3.2.23/0028-ARM-fix-rcu-stalls-on-SMP-platforms.patch \
-	file://3.2.23/0029-net-sock-validate-data_len-before-allocating-skb-in-.patch \
-	file://3.2.23/0030-cipso-handle-CIPSO-options-correctly-when-NetLabel-i.patch \
-	file://3.2.23/0031-net-l2tp_eth-fix-kernel-panic-on-rmmod-l2tp_eth.patch \
-	file://3.2.23/0032-l2tp-fix-a-race-in-l2tp_ip_sendmsg.patch \
-	file://3.2.23/0033-sky2-fix-checksum-bit-management-on-some-chips.patch \
-	file://3.2.23/0034-be2net-fix-a-race-in-be_xmit.patch \
-	file://3.2.23/0035-dummy-fix-rcu_sched-self-detected-stalls.patch \
-	file://3.2.23/0036-bonding-Fix-corrupted-queue_mapping.patch \
-	file://3.2.23/0037-ethtool-allow-ETHTOOL_GSSET_INFO-for-users.patch \
-	file://3.2.23/0038-netpoll-fix-netpoll_send_udp-bugs.patch \
-	file://3.2.23/0039-ipv6-Move-ipv6-proc-file-registration-to-end-of-init.patch \
-	file://3.2.23/0040-bridge-Assign-rtnl_link_ops-to-bridge-devices-create.patch \
-	file://3.2.23/0041-Btrfs-run-delayed-directory-updates-during-log-repla.patch \
-	file://3.2.23/0042-cifs-when-server-doesn-t-set-CAP_LARGE_READ_X-cap-de.patch \
-	file://3.2.23/0043-ocfs2-clear-unaligned-io-flag-when-dio-fails.patch \
-	file://3.2.23/0044-aio-make-kiocb-private-NUll-in-init_sync_kiocb.patch \
-	file://3.2.23/0045-mtd-cafe_nand-fix-an-vs-mistake.patch \
-	file://3.2.23/0046-mm-Hold-a-file-reference-in-madvise_remove.patch \
-	file://3.2.23/0047-tcm_fc-Resolve-suspicious-RCU-usage-warnings.patch \
-	file://3.2.23/0048-vfs-make-O_PATH-file-descriptors-usable-for-fchdir.patch \
-	file://3.2.23/0049-Linux-3.2.23.patch \
-	file://3.2.24/0001-samsung-laptop-make-the-dmi-check-less-strict.patch \
-	file://3.2.24/0002-raid5-delayed-stripe-fix.patch \
-	file://3.2.24/0003-tcp-drop-SYN-FIN-messages.patch \
-	file://3.2.24/0004-tg3-Apply-short-DMA-frag-workaround-to-5906.patch \
-	file://3.2.24/0005-rtl8187-brightness_set-can-not-sleep.patch \
-	file://3.2.24/0006-net-wireless-ipw2x00-add-supported-cipher-suites-to-.patch \
-	file://3.2.24/0007-drm-i915-do-not-enable-RC6p-on-Sandy-Bridge.patch \
-	file://3.2.24/0008-drm-i915-fix-operator-precedence-when-enabling-RC6p.patch \
-	file://3.2.24/0009-kbuild-do-not-check-for-ancient-modutils-tools.patch \
-	file://3.2.24/0010-brcmsmac-INTERMEDIATE-but-not-AMPDU-only-when-tracin.patch \
-	file://3.2.24/0011-NFSv4-Rate-limit-the-state-manager-for-lock-reclaim-.patch \
-	file://3.2.24/0012-ext4-Report-max_batch_time-option-correctly.patch \
-	file://3.2.24/0013-hugepages-fix-use-after-free-bug-in-quota-handling.patch \
-	file://3.2.24/0014-NFSv4-Reduce-the-footprint-of-the-idmapper.patch \
-	file://3.2.24/0015-NFSv4-Further-reduce-the-footprint-of-the-idmapper.patch \
-	file://3.2.24/0016-macvtap-zerocopy-fix-offset-calculation-when-buildin.patch \
-	file://3.2.24/0017-macvtap-zerocopy-fix-truesize-underestimation.patch \
-	file://3.2.24/0018-macvtap-zerocopy-put-page-when-fail-to-get-all-reque.patch \
-	file://3.2.24/0019-macvtap-zerocopy-set-SKBTX_DEV_ZEROCOPY-only-when-sk.patch \
-	file://3.2.24/0020-macvtap-zerocopy-validate-vectors-before-building-sk.patch \
-	file://3.2.24/0021-KVM-Fix-buffer-overflow-in-kvm_set_irq.patch \
-	file://3.2.24/0022-scsi-Silence-unnecessary-warnings-about-ioctl-to-par.patch \
-	file://3.2.24/0023-epoll-clear-the-tfile_check_list-on-ELOOP.patch \
-	file://3.2.24/0024-iommu-amd-Fix-missing-iommu_shutdown-initialization-.patch \
-	file://3.2.24/0025-iommu-amd-Initialize-dma_ops-for-hotplug-and-sriov-d.patch \
-	file://3.2.24/0026-usb-Add-support-for-root-hub-port-status-CAS.patch \
-	file://3.2.24/0027-gpiolib-wm8994-Pay-attention-to-the-value-set-when-e.patch \
-	file://3.2.24/0028-sched-nohz-Rewrite-and-fix-load-avg-computation-agai.patch \
-	file://3.2.24/0029-USB-option-add-ZTE-MF60.patch \
-	file://3.2.24/0030-USB-option-Add-MEDIATEK-product-ids.patch \
-	file://3.2.24/0031-USB-cdc-wdm-fix-lockup-on-error-in-wdm_read.patch \
-	file://3.2.24/0032-mtd-nandsim-don-t-open-code-a-do_div-helper.patch \
-	file://3.2.24/0033-dvb-core-Release-semaphore-on-error-path-dvb_registe.patch \
-	file://3.2.24/0034-hwspinlock-core-use-global-ID-to-register-hwspinlock.patch \
-	file://3.2.24/0035-libsas-fix-taskfile-corruption-in-sas_ata_qc_fill_rt.patch \
-	file://3.2.24/0036-md-raid1-fix-use-after-free-bug-in-RAID1-data-check-.patch \
-	file://3.2.24/0037-PCI-EHCI-fix-crash-during-suspend-on-ASUS-computers.patch \
-	file://3.2.24/0038-memory-hotplug-fix-invalid-memory-access-caused-by-s.patch \
-	file://3.2.24/0039-ocfs2-fix-NULL-pointer-dereference-in-__ocfs2_change.patch \
-	file://3.2.24/0040-mm-thp-abort-compaction-if-migration-page-cannot-be-.patch \
-	file://3.2.24/0041-drivers-rtc-rtc-mxc.c-fix-irq-enabled-interrupts-war.patch \
-	file://3.2.24/0042-fs-ramfs-file-nommu-add-SetPageUptodate.patch \
-	file://3.2.24/0043-cpufreq-ACPI-Fix-not-loading-acpi-cpufreq-driver-reg.patch \
-	file://3.2.24/0044-hwmon-it87-Preserve-configuration-register-bits-on-i.patch \
-	file://3.2.24/0045-ARM-SAMSUNG-fix-race-in-s3c_adc_start-for-ADC.patch \
-	file://3.2.24/0046-block-fix-infinite-loop-in-__getblk_slow.patch \
-	file://3.2.24/0047-Remove-easily-user-triggerable-BUG-from-generic_setl.patch \
-	file://3.2.24/0048-NFC-Export-nfc.h-to-userland.patch \
-	file://3.2.24/0049-PM-Hibernate-Hibernate-thaw-fixes-improvements.patch \
-	file://3.2.24/0050-cfg80211-check-iface-combinations-only-when-iface-is.patch \
-	file://3.2.24/0051-intel_ips-blacklist-HP-ProBook-laptops.patch \
-	file://3.2.24/0052-atl1c-fix-issue-of-transmit-queue-0-timed-out.patch \
-	file://3.2.24/0053-rt2x00usb-fix-indexes-ordering-on-RX-queue-kick.patch \
-	file://3.2.24/0054-iwlegacy-always-monitor-for-stuck-queues.patch \
-	file://3.2.24/0055-iwlegacy-don-t-mess-up-the-SCD-when-removing-a-key.patch \
-	file://3.2.24/0056-e1000e-Correct-link-check-logic-for-82571-serdes.patch \
-	file://3.2.24/0057-tcm_fc-Fix-crash-seen-with-aborts-and-large-reads.patch \
-	file://3.2.24/0058-fifo-Do-not-restart-open-if-it-already-found-a-partn.patch \
-	file://3.2.24/0059-target-Clean-up-returning-errors-in-PR-handling-code.patch \
-	file://3.2.24/0060-target-Fix-range-calculation-in-WRITE-SAME-emulation.patch \
-	file://3.2.24/0061-cifs-on-CONFIG_HIGHMEM-machines-limit-the-rsize-wsiz.patch \
-	file://3.2.24/0062-cifs-always-update-the-inode-cache-with-the-results-.patch \
-	file://3.2.24/0063-mm-fix-lost-kswapd-wakeup-in-kswapd_stop.patch \
-	file://3.2.24/0064-md-avoid-crash-when-stopping-md-array-races-with-clo.patch \
-	file://3.2.24/0065-md-raid1-close-some-possible-races-on-write-errors-d.patch \
-	file://3.2.24/0066-MIPS-Properly-align-the-.data.init_task-section.patch \
-	file://3.2.24/0067-UBIFS-fix-a-bug-in-empty-space-fix-up.patch \
-	file://3.2.24/0068-ore-Fix-NFS-crash-by-supporting-any-unaligned-RAID-I.patch \
-	file://3.2.24/0069-ore-Remove-support-of-partial-IO-request-NFS-crash.patch \
-	file://3.2.24/0070-pnfs-obj-don-t-leak-objio_state-if-ore_write-read-fa.patch \
-	file://3.2.24/0071-pnfs-obj-Fix-__r4w_get_page-when-offset-is-beyond-i_.patch \
-	file://3.2.24/0072-dm-raid1-fix-crash-with-mirror-recovery-and-discard.patch \
-	file://3.2.24/0073-dm-raid1-set-discard_zeroes_data_unsupported.patch \
-	file://3.2.24/0074-ntp-Fix-leap-second-hrtimer-livelock.patch \
-	file://3.2.24/0075-ntp-Correct-TAI-offset-during-leap-second.patch \
-	file://3.2.24/0076-timekeeping-Fix-CLOCK_MONOTONIC-inconsistency-during.patch \
-	file://3.2.24/0077-time-Move-common-updates-to-a-function.patch \
-	file://3.2.24/0078-hrtimer-Provide-clock_was_set_delayed.patch \
-	file://3.2.24/0079-timekeeping-Fix-leapsecond-triggered-load-spike-issu.patch \
-	file://3.2.24/0080-timekeeping-Maintain-ktime_t-based-offsets-for-hrtim.patch \
-	file://3.2.24/0081-hrtimers-Move-lock-held-region-in-hrtimer_interrupt.patch \
-	file://3.2.24/0082-timekeeping-Provide-hrtimer-update-function.patch \
-	file://3.2.24/0083-hrtimer-Update-hrtimer-base-offsets-each-hrtimer_int.patch \
-	file://3.2.24/0084-timekeeping-Add-missing-update-call-in-timekeeping_r.patch \
-	file://3.2.24/0085-powerpc-Fix-wrong-divisor-in-usecs_to_cputime.patch \
-	file://3.2.24/0086-vhost-don-t-forget-to-schedule.patch \
-	file://3.2.24/0087-r8169-call-netif_napi_del-at-errpaths-and-at-driver-.patch \
-	file://3.2.24/0088-bnx2x-fix-checksum-validation.patch \
-	file://3.2.24/0089-bnx2x-fix-panic-when-TX-ring-is-full.patch \
-	file://3.2.24/0090-net-remove-skb_orphan_try.patch \
-	file://3.2.24/0091-ACPI-Make-acpi_skip_timer_override-cover-all-source_.patch \
-	file://3.2.24/0092-ACPI-Remove-one-board-specific-WARN-when-ignoring-ti.patch \
-	file://3.2.24/0093-ACPI-Add-a-quirk-for-AMILO-PRO-V2030-to-ignore-the-t.patch \
-	file://3.2.24/0094-ACPI-x86-fix-Dell-M6600-ACPI-reboot-regression-via-D.patch \
-	file://3.2.24/0095-ACPI-sysfs.c-strlen-fix.patch \
-	file://3.2.24/0096-eCryptfs-Gracefully-refuse-miscdev-file-ops-on-inher.patch \
-	file://3.2.24/0097-eCryptfs-Fix-lockdep-warning-in-miscdev-operations.patch \
-	file://3.2.24/0098-eCryptfs-Properly-check-for-O_RDONLY-flag-before-doi.patch \
-	file://3.2.24/0099-ACPI-PM-Make-acpi_pm_device_sleep_state-follow-the-s.patch \
-	file://3.2.24/0100-ipheth-add-support-for-iPad.patch \
-	file://3.2.24/0101-stmmac-Fix-for-nfs-hang-on-multiple-reboot.patch \
-	file://3.2.24/0102-bonding-debugfs-and-network-namespaces-are-incompati.patch \
-	file://3.2.24/0103-bonding-Manage-proc-net-bonding-entries-from-the-net.patch \
-	file://3.2.24/0104-Input-bcm5974-Add-support-for-2012-MacBook-Pro-Retin.patch \
-	file://3.2.24/0105-Input-xpad-handle-all-variations-of-Mad-Catz-Beat-Pa.patch \
-	file://3.2.24/0106-Input-xpad-add-signature-for-Razer-Onza-Tournament-E.patch \
-	file://3.2.24/0107-Input-xpad-add-Andamiro-Pump-It-Up-pad.patch \
-	file://3.2.24/0108-HID-add-support-for-2012-MacBook-Pro-Retina.patch \
-	file://3.2.24/0109-Linux-3.2.24.patch \
-	file://3.2.25/0001-mm-reduce-the-amount-of-work-done-when-updating-min_.patch \
-	file://3.2.25/0002-mm-compaction-allow-compaction-to-isolate-dirty-page.patch \
-	file://3.2.25/0003-mm-compaction-determine-if-dirty-pages-can-be-migrat.patch \
-	file://3.2.25/0004-mm-page-allocator-do-not-call-direct-reclaim-for-THP.patch \
-	file://3.2.25/0005-mm-compaction-make-isolate_lru_page-filter-aware-aga.patch \
-	file://3.2.25/0006-mm-compaction-introduce-sync-light-migration-for-use.patch \
-	file://3.2.25/0007-mm-vmscan-when-reclaiming-for-compaction-ensure-ther.patch \
-	file://3.2.25/0008-mm-vmscan-do-not-OOM-if-aborting-reclaim-to-start-co.patch \
-	file://3.2.25/0009-mm-vmscan-check-if-reclaim-should-really-abort-even-.patch \
-	file://3.2.25/0010-vmscan-promote-shared-file-mapped-pages.patch \
-	file://3.2.25/0011-vmscan-activate-executable-pages-after-first-usage.patch \
-	file://3.2.25/0012-mm-vmscan.c-consider-swap-space-when-deciding-whethe.patch \
-	file://3.2.25/0013-mm-test-PageSwapBacked-in-lumpy-reclaim.patch \
-	file://3.2.25/0014-mm-vmscan-convert-global-reclaim-to-per-memcg-LRU-li.patch \
-	file://3.2.25/0015-cpuset-mm-reduce-large-amounts-of-memory-barrier-rel.patch \
-	file://3.2.25/0016-mm-hugetlb-fix-warning-in-alloc_huge_page-dequeue_hu.patch \
-	file://3.2.25/0017-Fix-NULL-dereferences-in-scsi_cmd_to_driver.patch \
-	file://3.2.25/0018-sched-nohz-Fix-rq-cpu_load-calculations.patch \
-	file://3.2.25/0019-sched-nohz-Fix-rq-cpu_load-calculations-some-more.patch \
-	file://3.2.25/0020-powerpc-ftrace-Fix-assembly-trampoline-register-usag.patch \
-	file://3.2.25/0021-cx25821-Remove-bad-strcpy-to-read-only-char.patch \
-	file://3.2.25/0022-x86-Fix-boot-on-Twinhead-H12Y.patch \
-	file://3.2.25/0023-r8169-RxConfig-hack-for-the-8168evl.patch \
-	file://3.2.25/0024-cifs-when-CONFIG_HIGHMEM-is-set-serialize-the-read-w.patch \
-	file://3.2.25/0025-wireless-rt2x00-rt2800usb-add-more-devices-ids.patch \
-	file://3.2.25/0026-wireless-rt2x00-rt2800usb-more-devices-were-identifi.patch \
-	file://3.2.25/0027-rt2800usb-2001-3c17-is-an-RT3370-device.patch \
-	file://3.2.25/0028-usb-gadget-Fix-g_ether-interface-link-status.patch \
-	file://3.2.25/0029-ext4-pass-a-char-to-ext4_count_free-instead-of-a-buf.patch \
-	file://3.2.25/0030-ftrace-Disable-function-tracing-during-suspend-resum.patch \
-	file://3.2.25/0031-x86-microcode-microcode_core.c-simple_strtoul-cleanu.patch \
-	file://3.2.25/0032-x86-microcode-Sanitize-per-cpu-microcode-reloading-i.patch \
-	file://3.2.25/0033-usbdevfs-Correct-amount-of-data-copied-to-user-in-pr.patch \
-	file://3.2.25/0034-ext4-fix-overhead-calculation-used-by-ext4_statfs.patch \
-	file://3.2.25/0035-udf-Improve-table-length-check-to-avoid-possible-ove.patch \
-	file://3.2.25/0036-powerpc-Add-memory-attribute-for-mfmsr.patch \
-	file://3.2.25/0037-mwifiex-correction-in-mcs-index-check.patch \
-	file://3.2.25/0038-USB-option-Ignore-ZTE-Vodafone-K3570-71-net-interfac.patch \
-	file://3.2.25/0039-USB-option-add-ZTE-MF821D.patch \
-	file://3.2.25/0040-target-Add-generation-of-LOGICAL-BLOCK-ADDRESS-OUT-O.patch \
-	file://3.2.25/0041-target-Add-range-checking-to-UNMAP-emulation.patch \
-	file://3.2.25/0042-target-Fix-reading-of-data-length-fields-for-UNMAP-c.patch \
-	file://3.2.25/0043-target-Fix-possible-integer-underflow-in-UNMAP-emula.patch \
-	file://3.2.25/0044-target-Check-number-of-unmap-descriptors-against-our.patch \
-	file://3.2.25/0045-s390-idle-fix-sequence-handling-vs-cpu-hotplug.patch \
-	file://3.2.25/0046-rtlwifi-rtl8192de-Fix-phy-based-version-calculation.patch \
-	file://3.2.25/0047-workqueue-perform-cpu-down-operations-from-low-prior.patch \
-	file://3.2.25/0048-ALSA-hda-Add-support-for-Realtek-ALC282.patch \
-	file://3.2.25/0049-iommu-amd-Fix-hotplug-with-iommu-pt.patch \
-	file://3.2.25/0050-drm-radeon-Try-harder-to-avoid-HW-cursor-ending-on-a.patch \
-	file://3.2.25/0051-ALSA-hda-Turn-on-PIN_OUT-from-hdmi-playback-prepare.patch \
-	file://3.2.25/0052-block-add-blk_queue_dead.patch \
-	file://3.2.25/0053-Fix-device-removal-NULL-pointer-dereference.patch \
-	file://3.2.25/0054-Avoid-dangling-pointer-in-scsi_requeue_command.patch \
-	file://3.2.25/0055-fix-hot-unplug-vs-async-scan-race.patch \
-	file://3.2.25/0056-fix-eh-wakeup-scsi_schedule_eh-vs-scsi_restart_opera.patch \
-	file://3.2.25/0057-libsas-continue-revalidation.patch \
-	file://3.2.25/0058-libsas-fix-sas_discover_devices-return-code-handling.patch \
-	file://3.2.25/0059-iscsi-target-Drop-bogus-struct-file-usage-for-iSCSI-.patch \
-	file://3.2.25/0060-mmc-sdhci-pci-CaFe-has-broken-card-detection.patch \
-	file://3.2.25/0061-ext4-don-t-let-i_reserved_meta_blocks-go-negative.patch \
-	file://3.2.25/0062-ext4-undo-ext4_calc_metadata_amount-if-we-fail-to-cl.patch \
-	file://3.2.25/0063-ASoC-dapm-Fix-_PRE-and-_POST-events-for-DAPM-perform.patch \
-	file://3.2.25/0064-locks-fix-checking-of-fcntl_setlease-argument.patch \
-	file://3.2.25/0065-ACPI-AC-prevent-OOPS-on-some-boxes-due-to-missing-ch.patch \
-	file://3.2.25/0066-drm-radeon-fix-bo-creation-retry-path.patch \
-	file://3.2.25/0067-drm-radeon-fix-non-revealent-error-message.patch \
-	file://3.2.25/0068-drm-radeon-fix-hotplug-of-DP-to-DVI-HDMI-passive-ada.patch \
-	file://3.2.25/0069-drm-radeon-on-hotplug-force-link-training-to-happen-.patch \
-	file://3.2.25/0070-Btrfs-call-the-ordered-free-operation-without-any-lo.patch \
-	file://3.2.25/0071-nouveau-Fix-alignment-requirements-on-src-and-dst-ad.patch \
-	file://3.2.25/0072-mm-fix-wrong-argument-of-migrate_huge_pages-in-soft_.patch \
-	file://3.2.25/0073-Linux-3.2.25.patch \
-	file://3.2.26/0001-x86-Simplify-code-by-removing-a-SMP-ifdefs-from-stru.patch \
-	file://3.2.26/0002-Linux-3.2.26.patch \
-	file://3.2.27/0001-sched-Fix-race-in-task_group.patch \
-	file://3.2.27/0002-floppy-Cleanup-disk-queue-before-caling-put_disk-if-.patch \
-	file://3.2.27/0003-xen-mark-local-pages-as-FOREIGN-in-the-m2p_override.patch \
-	file://3.2.27/0004-lirc_sir-make-device-registration-work.patch \
-	file://3.2.27/0005-stable-update-references-to-older-2.6-versions-for-3.patch \
-	file://3.2.27/0006-ALSA-hda-add-dock-support-for-Thinkpad-X230-Tablet.patch \
-	file://3.2.27/0007-cfg80211-fix-interface-combinations-check-for-ADHOC-.patch \
-	file://3.2.27/0008-m68k-Correct-the-Atari-ALLOWINT-definition.patch \
-	file://3.2.27/0009-ene_ir-Fix-driver-initialisation.patch \
-	file://3.2.27/0010-nfsd4-our-filesystems-are-normally-case-sensitive.patch \
-	file://3.2.27/0011-random-Use-arch_get_random_int-instead-of-cycle-coun.patch \
-	file://3.2.27/0012-random-Use-arch-specific-RNG-to-initialize-the-entro.patch \
-	file://3.2.27/0013-random-Adjust-the-number-of-loops-when-initializing.patch \
-	file://3.2.27/0014-random-make-add_interrupt_randomness-do-something-sa.patch \
-	file://3.2.27/0015-random-use-lockless-techniques-in-the-interrupt-path.patch \
-	file://3.2.27/0016-random-create-add_device_randomness-interface.patch \
-	file://3.2.27/0017-usb-feed-USB-device-information-to-the-dev-random-dr.patch \
-	file://3.2.27/0018-net-feed-dev-random-with-the-MAC-address-when-regist.patch \
-	file://3.2.27/0019-random-use-the-arch-specific-rng-in-xfer_secondary_p.patch \
-	file://3.2.27/0020-random-add-new-get_random_bytes_arch-function.patch \
-	file://3.2.27/0021-rtc-wm831x-Feed-the-write-counter-into-device_add_ra.patch \
-	file://3.2.27/0022-mfd-wm831x-Feed-the-device-UUID-into-device_add_rand.patch \
-	file://3.2.27/0023-ASoC-wm8994-Ensure-there-are-enough-BCLKs-for-four-c.patch \
-	file://3.2.27/0024-futex-Test-for-pi_mutex-on-fault-in-futex_wait_reque.patch \
-	file://3.2.27/0025-futex-Fix-bug-in-WARN_ON-for-NULL-q.pi_state.patch \
-	file://3.2.27/0026-futex-Forbid-uaddr-uaddr2-in-futex_wait_requeue_pi.patch \
-	file://3.2.27/0027-video-smscufx-fix-line-counting-in-fb_write.patch \
-	file://3.2.27/0028-Input-synaptics-handle-out-of-bounds-values-from-the.patch \
-	file://3.2.27/0029-ALSA-hda-Fix-invalid-D3-of-headphone-DAC-on-VT202x-c.patch \
-	file://3.2.27/0030-ALSA-mpu401-Fix-missing-initialization-of-irq-field.patch \
-	file://3.2.27/0031-x86-nops-Missing-break-resulting-in-incorrect-select.patch \
-	file://3.2.27/0032-s390-mm-downgrade-page-table-after-fork-of-a-31-bit-.patch \
-	file://3.2.27/0033-Redefine-ATOMIC_INIT-and-ATOMIC64_INIT-to-drop-the-c.patch \
-	file://3.2.27/0034-dm-thin-reduce-endio_hook-pool-size.patch \
-	file://3.2.27/0035-dm-thin-fix-memory-leak-in-process_prepared_mapping-.patch \
-	file://3.2.27/0036-random-mix-in-architectural-randomness-in-extract_bu.patch \
-	file://3.2.27/0037-asus-wmi-use-ASUS_WMI_METHODID_DSTS2-as-default-DSTS.patch \
-	file://3.2.27/0038-virtio-blk-Use-block-layer-provided-spinlock.patch \
-	file://3.2.27/0039-s390-mm-fix-fault-handling-for-page-table-walk-case.patch \
-	file://3.2.27/0040-nfs-skip-commit-in-releasepage-if-we-re-freeing-memo.patch \
-	file://3.2.27/0041-md-raid1-don-t-abort-a-resync-on-the-first-badblock.patch \
-	file://3.2.27/0042-pcdp-use-early_ioremap-early_iounmap-to-access-pcdp-.patch \
-	file://3.2.27/0043-lib-vsprintf.c-kptr_restrict-fix-pK-error-in-SysRq-s.patch \
-	file://3.2.27/0044-nilfs2-fix-deadlock-issue-between-chcp-and-thaw-ioct.patch \
-	file://3.2.27/0045-SUNRPC-return-negative-value-in-case-rpcbind-client-.patch \
-	file://3.2.27/0046-ARM-7467-1-mutex-use-generic-xchg-based-implementati.patch \
-	file://3.2.27/0047-ARM-7476-1-vfp-only-clear-vfp-state-for-current-cpu-.patch \
-	file://3.2.27/0048-ARM-7477-1-vfp-Always-save-VFP-state-in-vfp_pm_suspe.patch \
-	file://3.2.27/0049-ARM-7478-1-errata-extend-workaround-for-erratum-7207.patch \
-	file://3.2.27/0050-ARM-Fix-undefined-instruction-exception-handling.patch \
-	file://3.2.27/0051-USB-echi-dbgp-increase-the-controller-wait-time-to-c.patch \
-	file://3.2.27/0052-ASoC-wm8962-Allow-VMID-time-to-fully-ramp.patch \
-	file://3.2.27/0053-mm-page_alloc.c-remove-pageblock_default_order.patch \
-	file://3.2.27/0054-mm-setup-pageblock_order-before-it-s-used-by-sparsem.patch \
-	file://3.2.27/0055-mm-mmu_notifier-fix-freed-page-still-mapped-in-secon.patch \
-	file://3.2.27/0056-mm-hugetlbfs-close-race-during-teardown-of-hugetlbfs.patch \
-	file://3.2.27/0057-ALSA-snd-usb-fix-clock-source-validity-index.patch \
-	file://3.2.27/0058-ALSA-hda-Support-dock-on-Lenovo-Thinkpad-T530-with-A.patch \
-	file://3.2.27/0059-ore-Fix-out-of-bounds-access-in-_ios_obj.patch \
-	file://3.2.27/0060-m68k-Make-sys_atomic_cmpxchg_32-work-on-classic-m68k.patch \
-	file://3.2.27/0061-drm-i915-prefer-wide-slow-to-fast-narrow-in-DP-confi.patch \
-	file://3.2.27/0062-rt2x00-Add-support-for-BUFFALO-WLI-UC-GNM2-to-rt2800.patch \
-	file://3.2.27/0063-drop_monitor-fix-sleeping-in-invalid-context-warning.patch \
-	file://3.2.27/0064-drop_monitor-Make-updating-data-skb-smp-safe.patch \
-	file://3.2.27/0065-drop_monitor-prevent-init-path-from-scheduling-on-th.patch \
-	file://3.2.27/0066-drop_monitor-dont-sleep-in-atomic-context.patch \
-	file://3.2.27/0067-pch_uart-Fix-missing-break-for-16-byte-fifo.patch \
-	file://3.2.27/0068-pch_uart-Fix-rx-error-interrupt-setting-issue.patch \
-	file://3.2.27/0069-pch_uart-Fix-parity-setting-issue.patch \
-	file://3.2.27/0070-Linux-3.2.27.patch \
-	file://3.2.28/0001-bnx2-Fix-bug-in-bnx2_free_tx_skbs.patch \
-	file://3.2.28/0002-sch_sfb-Fix-missing-NULL-check.patch \
-	file://3.2.28/0003-sctp-Fix-list-corruption-resulting-from-freeing-an-a.patch \
-	file://3.2.28/0004-caif-Fix-access-to-freed-pernet-memory.patch \
-	file://3.2.28/0005-cipso-don-t-follow-a-NULL-pointer-when-setsockopt-is.patch \
-	file://3.2.28/0006-caif-fix-NULL-pointer-check.patch \
-	file://3.2.28/0007-wanmain-comparing-array-with-NULL.patch \
-	file://3.2.28/0008-tcp-Add-TCP_USER_TIMEOUT-negative-value-check.patch \
-	file://3.2.28/0009-USB-kaweth.c-use-GFP_ATOMIC-under-spin_lock.patch \
-	file://3.2.28/0010-net-fix-rtnetlink-IFF_PROMISC-and-IFF_ALLMULTI-handl.patch \
-	file://3.2.28/0011-tcp-perform-DMA-to-userspace-only-if-there-is-a-task.patch \
-	file://3.2.28/0012-net-tun-fix-ioctl-based-info-leaks.patch \
-	file://3.2.28/0013-e1000-add-dropped-DMA-receive-enable-back-in-for-WoL.patch \
-	file://3.2.28/0014-rtlwifi-rtl8192cu-Change-buffer-allocation-for-synch.patch \
-	file://3.2.28/0015-hfsplus-fix-overflow-in-sector-calculations-in-hfspl.patch \
-	file://3.2.28/0016-drm-i915-fixup-seqno-allocation-logic-for-lazy_reque.patch \
-	file://3.2.28/0017-KVM-VMX-Advertise-CPU_BASED_RDPMC_EXITING-for-nested.patch \
-	file://3.2.28/0018-mac80211-cancel-mesh-path-timer.patch \
-	file://3.2.28/0019-ath9k-Add-PID-VID-support-for-AR1111.patch \
-	file://3.2.28/0020-ARM-mxs-Remove-MMAP_MIN_ADDR-setting-from-mxs_defcon.patch \
-	file://3.2.28/0021-ALSA-hda-add-dock-support-for-Thinkpad-T430s.patch \
-	file://3.2.28/0022-cfg80211-process-pending-events-when-unregistering-n.patch \
-	file://3.2.28/0023-rt61pci-fix-NULL-pointer-dereference-in-config_lna_g.patch \
-	file://3.2.28/0024-iwlwifi-disable-greenfield-transmissions-as-a-workar.patch \
-	file://3.2.28/0025-ALSA-hda-add-dock-support-for-Thinkpad-X230.patch \
-	file://3.2.28/0026-e1000e-NIC-goes-up-and-immediately-goes-down.patch \
-	file://3.2.28/0027-ALSA-hda-remove-quirk-for-Dell-Vostro-1015.patch \
-	file://3.2.28/0028-ALSA-hda-Fix-double-quirk-for-Quanta-FL1-Lenovo-Idea.patch \
-	file://3.2.28/0029-ARM-pxa-remove-irq_to_gpio-from-ezx-pcap-driver.patch \
-	file://3.2.28/0030-Input-eeti_ts-pass-gpio-value-instead-of-IRQ.patch \
-	file://3.2.28/0031-drm-i915-Add-wait_for-in-init_ring_common.patch \
-	file://3.2.28/0032-drm-i915-correctly-order-the-ring-init-sequence.patch \
-	file://3.2.28/0033-s390-compat-fix-compat-wrappers-for-process_vm-syste.patch \
-	file://3.2.28/0034-s390-compat-fix-mmap-compat-system-calls.patch \
-	file://3.2.28/0035-drm-radeon-fix-bank-tiling-parameters-on-evergreen.patch \
-	file://3.2.28/0036-drm-radeon-fix-bank-tiling-parameters-on-cayman.patch \
-	file://3.2.28/0037-drm-radeon-do-not-reenable-crtc-after-moving-vram-st.patch \
-	file://3.2.28/0038-Linux-3.2.28.patch \
-	file://libertas/0001-USB-convert-drivers-net-to-use-module_usb_driver.patch \
-	file://libertas/0002-net-fix-assignment-of-0-1-to-bool-variables.patch \
-	file://libertas/0003-switch-debugfs-to-umode_t.patch \
-	file://libertas/0004-drivers-net-Remove-unnecessary-k.alloc-v.alloc-OOM-m.patch \
-	file://libertas/0005-libertas-remove-dump_survey-implementation.patch \
-	file://libertas/0006-wireless-libertas-remove-redundant-NULL-tests-before.patch \
-	file://libertas/0007-libertas-fix-signedness-bug-in-lbs_auth_to_authtype.patch \
-	file://libertas/0008-drivers-net-wireless-libertas-if_usb.c-add-missing-d.patch \
-	file://libertas/0009-libertas-Firmware-loading-simplifications.patch \
-	file://libertas/0010-libertas-harden-up-exit-paths.patch \
-	file://libertas/0011-libertas-add-asynchronous-firmware-loading-capabilit.patch \
-	file://libertas/0012-libertas-SDIO-convert-to-asynchronous-firmware-loadi.patch \
-	file://libertas/0013-libertas-USB-convert-to-asynchronous-firmware-loadin.patch \
-	file://libertas/0014-libertas-CS-convert-to-asynchronous-firmware-loading.patch \
-	file://libertas/0015-libertas-add-missing-include.patch \
-	file://libertas/0016-remove-debug-msgs-due-to-missing-in_interrupt.patch \
-	file://pwm/0001-PWM-ecap-Correct-configuration-of-polarity.patch \
-	file://pwm/0002-ARM-OMAP2-am335x-mux-add-ecap2_in_pwm2_out-string-en.patch \
-	file://pwm/0003-ARM-OMAP2-AM335x-hwmod-Remove-PRCM-entries-for-PWMSS.patch \
-	file://pwm/0004-PWM-ecap-Resets-the-PWM-output-to-low-on-stop.patch \
-	file://pwm/0005-PWM-ecap-Fix-for-throwing-PWM-output-before-running.patch \
-	file://pwm/0006-pwm-ehrpwm-Configure-polarity-on-pwm_start.patch \
-	file://beaglebone/0001-f_rndis-HACK-around-undefined-variables.patch \
-	file://beaglebone/0002-da8xx-fb-add-DVI-support-for-beaglebone.patch \
-	file://beaglebone/0003-beaglebone-rebase-everything-onto-3.2-WARNING-MEGAPA.patch \
-	file://beaglebone/0004-more-beaglebone-merges.patch \
-	file://beaglebone/0005-beaglebone-disable-tsadc.patch \
-	file://beaglebone/0006-tscadc-Add-general-purpose-mode-untested-with-touchs.patch \
-	file://beaglebone/0007-tscadc-Add-board-file-mfd-support-fix-warning.patch \
-	file://beaglebone/0008-AM335X-init-tsc-bone-style-for-new-boards.patch \
-	file://beaglebone/0009-tscadc-make-stepconfig-channel-configurable.patch \
-	file://beaglebone/0010-tscadc-Trigger-through-sysfs.patch \
-	file://beaglebone/0011-meta-ti-Remove-debug-messages-for-meta-ti.patch \
-	file://beaglebone/0012-tscadc-switch-to-polling-instead-of-interrupts.patch \
-	file://beaglebone/0013-beaglebone-fix-ADC-init.patch \
-	file://beaglebone/0014-AM335x-MUX-add-ehrpwm1A.patch \
-	file://beaglebone/0015-beaglebone-enable-PWM-for-lcd-backlight-backlight-is.patch \
-	file://beaglebone/0016-omap_hsmmc-Set-dto-to-max-value-of-14-to-avoid-SD-Ca.patch \
-	file://beaglebone/0017-beaglebone-set-default-brightness-to-50-for-pwm-back.patch \
-	file://beaglebone/0018-st7735fb-WIP-framebuffer-driver-supporting-Adafruit-.patch \
-	file://beaglebone/0019-beaglebone-use-P8_6-gpio1_3-as-w1-bus.patch \
-	file://beaglebone/0020-beaglebone-add-support-for-Towertech-TT3201-CAN-cape.patch \
-	file://beaglebone/0021-beaglebone-add-more-beagleboardtoys-cape-partnumbers.patch \
-	file://beaglebone/0022-beaglebone-add-gpio-keys-for-lcd7-add-notes-for-miss.patch \
-	file://beaglebone/0023-beaglebone-add-enter-key-for-lcd7-cape.patch \
-	file://beaglebone/0024-beaglebone-add-gpio-keys-for-lcd.patch \
-	file://beaglebone/0025-beaglebone-fix-direction-of-gpio-keys.patch \
-	file://beaglebone/0026-beaglebone-fix-3.5-lcd-cape-support.patch \
-	file://beaglebone/0027-beaglebone-decrease-PWM-frequency-to-old-value-LCD7-.patch \
-	file://beaglebone/0028-beaglebone-fix-ehrpwm-backlight.patch \
-	file://beaglebone/0029-beaglebone-also-report-cape-revision.patch \
-	file://beaglebone/0030-beaglebone-don-t-compare-undefined-characters-it-mak.patch \
-	file://beaglebone/0031-beaglebone-fix-3.5-cape-support.patch \
-	file://beaglebone/0032-beaglebone-connect-batterycape-GPIO-to-gpio-charger.patch \
-	file://beaglebone/0033-beaglebone-add-support-for-CAN-and-RS232-cape.patch \
-	file://beaglebone/0034-beaglebone-add-support-for-DVI-rev.-A2-capes.patch \
-	file://beaglebone/0035-beaglebone-enable-LEDs-for-DVI-LCD3-and-LCD7-capes.patch \
-	file://beaglebone/0036-Beaglebone-Fixed-compiletime-warnings.patch \
-	file://beaglebone/0037-Beaglebone-Added-missing-termination-record-to-bone_.patch \
-	file://beaglebone/0038-board-am335xevm.c-Beaglebone-expose-all-pwms-through.patch \
-	file://beaglebone/0039-ARM-OMAP-Mux-Fixed-debugfs-mux-output-always-reporti.patch \
-	file://beaglebone/0040-beaglebone-export-SPI2-as-spidev-when-no-capes-are-u.patch \
-	file://beaglebone/0041-st7735fb-Working-WIP-changes-to-make-DMA-safe-and-ad.patch \
-	file://beaglebone/0042-omap-hwmod-silence-st_shift-error.patch \
-	file://beaglebone/0043-cpsw-phy_device-demote-PHY-message-to-INFO.patch \
-	file://beaglebone/0044-beaglebone-add-support-for-7-LCD-cape-revision-A2.patch \
-	file://beaglebone/0045-beaglebone-allow-capes-to-disable-w1-gpio.patch \
-	file://beaglebone/0046-beaglebone-add-stub-for-the-camera-cape-to-disable-w.patch \
-	file://beaglebone/0047-Adding-many-of-the-missing-signals-to-the-mux-table.patch \
-	file://beaglebone/0048-Fixed-reversed-part-of-LCD-bus.-Added-even-more-miss.patch \
-	file://beaglebone/0049-ts_tscadc-add-defines-for-4x-and-16x-oversampling.patch \
-	file://beaglebone/0050-ts_tscadc-switch-to-4x-oversampling.patch \
-	file://beaglebone/0051-Fixed-size-of-pinmux-data-array-in-EEPROM-data-struc.patch \
-	file://beaglebone/0052-Implemented-Bone-Cape-configuration-from-EEPROM.-Onl.patch \
-	file://beaglebone/0053-Replaced-conditional-debug-code-by-pr_debug-statemen.patch \
-	file://beaglebone/0054-Workaround-for-boards-with-mistaken-ASCII-interpreta.patch \
-	file://beaglebone/0055-Workaround-for-EEPROM-contents-blocking-further-I2C-.patch \
-	file://beaglebone/0056-Added-check-on-EEPROM-revision-to-prevent-interpreti.patch \
-	file://beaglebone/0057-i2c-prescalar-fix-i2c-fixed-prescalar-setting-issue.patch \
-	file://beaglebone/0058-beaglebone-annotate-default-beaglebone-pinmux.patch \
-	file://beaglebone/0059-beaglebone-fix-pin-free-thinko-this-method-doesn-t-g.patch \
-	file://beaglebone/0060-beaglebone-switch-RS232-cape-to-ttyO2.patch \
-	file://beaglebone/0061-beaglebone-make-uart2-pinmux-match-the-uart0-pinmux.patch \
-	file://beaglebone/0062-da8xx-fb-Rounding-FB-size-to-satisfy-SGX-buffer-requ.patch \
-	file://beaglebone/0063-beaglebone-dvi-cape-audio-hacks.patch \
-	file://beaglebone/0064-beaglebone-always-execute-the-pin-free-checks.patch \
-	file://beaglebone/0065-ti_tscadc-switch-to-16x-averaging.patch \
-	file://beaglebone/0066-video-da8xx-fb-Add-Newhaven-LCD-Panel-details.patch \
-	file://beaglebone/0067-beaglebone-add-support-for-the-4.3-lcd-cape-with-res.patch \
-	file://beaglebone/0068-beaglebone-add-support-for-LCD3-rev-A1.patch \
-	file://beaglebone/0069-beaglebone-fix-buttons-spidev-clash-when-using-mcasp.patch \
-	file://beaglebone/0070-beaglebone-fix-LCD3-led-key-overlap.patch \
-	file://beaglebone/0071-beaglebone-fix-audio-spi-clash.patch \
-	file://beaglebone/0072-beaglebone-add-support-for-QuickLogic-Camera-interfa.patch \
-	file://beaglebone/0073-beaglebone-add-support-for-DVI-audio-and-audio-only-.patch \
-	file://beaglebone/0074-beaglebone-disable-LBO-GPIO-for-battery-cape.patch \
-	file://beaglebone/0075-video-da8xx-fb-calculate-pixel-clock-period-for-the-.patch \
-	file://beaglebone/0076-beaglebone-improve-GPMC-bus-timings-for-camera-cape.patch \
-	file://beaglebone/0077-beaglebone-disable-UYVY-VYUY-and-YVYU-modes-in-camer.patch \
-	file://beaglebone/0078-beaglebone-error-handling-for-DMA-completion-in-cssp.patch \
-	file://beaglebone/0079-AM335X-errata-OPP50-on-MPU-domain-is-not-supported.patch \
-	file://beaglebone/0080-vfs-Add-a-trace-point-in-the-mark_inode_dirty-functi.patch \
-	file://beaglebone/0081-beaglebone-add-support-for-LCD7-A3.patch \
-	file://beaglebone/0082-beaglebone-add-rudimentary-support-for-eMMC-cape.patch \
-	file://beaglebone/0083-beaglebone-add-extra-partnumber-for-camera-cape.patch \
-	file://beaglebone/0084-beaglebone-cssp_camera-driver-cleanup.patch \
-	file://beaglebone/0085-beaglebone-mux-camera-cape-orientation-pin-to-gpio.patch \
-	file://beaglebone/0086-board-am335xevm-Add-Beaglebone-Motor-Cape-Support.patch \
-	file://beaglebone/0087-mux33xx-Fix-MUXENTRYs-for-MCASP0_ACLKX-FSX-to-add-eh.patch \
-	file://led/0001-leds-heartbeat-stop-on-shutdown-reboot-or-panic.patch \
-	\
-	file://beaglebone/0001-arm-boot-compressed-default-asm-arch-to-armv7-a.patch \
-	"
diff --git a/recipes-kernel/linux/linux/beagleboard/logo_linux_clut224.ppm b/recipes-kernel/linux/linux/beagleboard/logo_linux_clut224.ppm
deleted file mode 100644
index d29fc1c..0000000
--- a/recipes-kernel/linux/linux/beagleboard/logo_linux_clut224.ppm
+++ /dev/null
@@ -1,73147 +0,0 @@
-P3
-# CREATOR: GIMP PNM Filter Version 1.1
-387 63
-255
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-60
-248
-138
-64
-247
-143
-74
-247
-143
-74
-247
-143
-74
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-143
-74
-247
-143
-74
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-60
-248
-138
-64
-247
-143
-74
-247
-143
-74
-247
-143
-74
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-130
-53
-247
-130
-60
-250
-139
-73
-249
-146
-83
-249
-152
-92
-249
-159
-103
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-152
-92
-249
-146
-83
-250
-139
-73
-247
-130
-60
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-247
-143
-74
-247
-150
-84
-246
-156
-93
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-123
-41
-248
-138
-64
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-53
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-248
-138
-64
-249
-146
-83
-249
-152
-92
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-152
-92
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-248
-138
-64
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-53
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-60
-250
-139
-73
-247
-150
-84
-249
-159
-103
-247
-165
-111
-249
-174
-124
-248
-180
-134
-252
-185
-144
-240
-181
-138
-219
-170
-138
-219
-170
-138
-230
-173
-136
-240
-181
-138
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-159
-103
-214
-151
-109
-121
-100
-85
-65
-67
-64
-74
-68
-68
-129
-102
-78
-214
-151
-109
-246
-156
-93
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-146
-83
-249
-159
-103
-204
-141
-99
-102
-91
-75
-65
-67
-64
-81
-77
-76
-146
-111
-88
-238
-159
-107
-249
-152
-92
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-248
-138
-64
-247
-150
-84
-245
-162
-103
-162
-125
-96
-81
-77
-76
-55
-66
-67
-99
-90
-79
-187
-140
-108
-249
-159
-103
-247
-150
-84
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-146
-83
-249
-159
-103
-187
-140
-108
-102
-91
-75
-58
-69
-70
-76
-78
-76
-146
-111
-88
-238
-159
-107
-249
-152
-92
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-249
-146
-83
-249
-159
-103
-251
-168
-115
-248
-180
-134
-239
-182
-144
-186
-157
-134
-124
-111
-99
-82
-69
-65
-65
-58
-56
-55
-48
-48
-65
-58
-56
-65
-58
-56
-65
-58
-56
-99
-90
-79
-158
-130
-108
-230
-173
-136
-250
-176
-132
-247
-165
-111
-249
-152
-92
-247
-143
-74
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-246
-156
-93
-214
-151
-109
-74
-68
-68
-56
-64
-60
-95
-87
-59
-88
-82
-59
-56
-64
-60
-81
-77
-76
-238
-159
-107
-249
-152
-92
-248
-138
-64
-247
-130
-53
-246
-116
-28
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-187
-140
-108
-51
-62
-63
-69
-69
-61
-95
-87
-59
-83
-78
-61
-48
-58
-59
-121
-100
-85
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-123
-41
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-247
-165
-111
-139
-115
-96
-48
-58
-59
-95
-78
-64
-118
-86
-65
-81
-73
-62
-48
-58
-59
-162
-125
-96
-249
-159
-103
-249
-146
-83
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-187
-140
-108
-48
-58
-59
-76
-70
-64
-118
-86
-65
-95
-78
-64
-51
-62
-63
-121
-100
-85
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-152
-92
-247
-165
-111
-250
-176
-132
-251
-192
-154
-167
-142
-123
-65
-58
-56
-35
-31
-30
-71
-60
-43
-108
-87
-46
-129
-106
-52
-137
-110
-49
-156
-125
-62
-187
-166
-150
-129
-106
-52
-101
-83
-47
-59
-50
-39
-55
-48
-48
-139
-115
-96
-240
-181
-138
-249
-174
-124
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-247
-165
-111
-124
-111
-99
-56
-64
-60
-137
-110
-49
-171
-129
-45
-171
-129
-45
-129
-106
-52
-51
-62
-63
-162
-125
-96
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-245
-169
-119
-81
-77
-76
-69
-69
-61
-152
-119
-47
-171
-129
-45
-171
-129
-45
-105
-93
-60
-48
-58
-59
-187
-140
-108
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-130
-53
-250
-139
-73
-249
-159
-103
-210
-156
-119
-51
-62
-63
-112
-85
-63
-234
-126
-45
-234
-126
-45
-225
-124
-48
-95
-78
-64
-63
-74
-74
-234
-168
-124
-246
-156
-93
-250
-139
-73
-247
-123
-41
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-245
-169
-119
-81
-77
-76
-81
-73
-62
-212
-120
-56
-234
-126
-45
-234
-126
-45
-135
-94
-64
-41
-58
-57
-187
-140
-108
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-249
-174
-124
-249
-189
-146
-236
-186
-153
-99
-90
-79
-47
-40
-38
-85
-71
-43
-145
-114
-49
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-160
-120
-43
-195
-167
-113
-216
-194
-154
-168
-127
-42
-168
-127
-42
-123
-102
-54
-59
-50
-39
-82
-69
-65
-230
-173
-136
-249
-174
-124
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-246
-156
-93
-245
-169
-119
-84
-85
-82
-83
-78
-61
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-75
-74
-61
-101
-100
-92
-249
-174
-124
-246
-156
-93
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-210
-156
-119
-48
-58
-59
-105
-93
-60
-171
-129
-45
-158
-125
-46
-161
-127
-40
-152
-119
-47
-62
-63
-61
-139
-115
-96
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-247
-165
-111
-158
-130
-108
-51
-62
-63
-188
-112
-56
-234
-125
-52
-224
-123
-55
-234
-126
-45
-163
-104
-61
-48
-58
-59
-210
-156
-119
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-247
-165
-111
-210
-156
-119
-55
-66
-67
-146
-97
-64
-234
-126
-45
-224
-123
-55
-234
-125
-52
-199
-115
-54
-62
-63
-61
-139
-115
-96
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-250
-176
-132
-219
-170
-138
-150
-125
-114
-65
-58
-56
-24
-22
-23
-59
-50
-39
-152
-119
-47
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-160
-120
-43
-158
-125
-46
-227
-196
-175
-192
-155
-91
-160
-120
-43
-171
-129
-45
-158
-125
-46
-85
-71
-43
-65
-58
-56
-219
-170
-138
-249
-174
-124
-246
-156
-93
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-247
-103
-7
-246
-109
-10
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-230
-173
-136
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-252
-185
-144
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-203
-161
-131
-43
-57
-62
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-133
-120
-107
-250
-176
-132
-246
-156
-93
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-154
-133
-118
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-186
-157
-134
-250
-176
-132
-246
-156
-93
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-246
-156
-93
-249
-174
-124
-209
-171
-139
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-133
-120
-107
-249
-174
-124
-246
-156
-93
-248
-138
-64
-247
-123
-41
-247
-111
-26
-246
-109
-10
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-250
-176
-132
-158
-130
-108
-47
-40
-38
-59
-50
-39
-85
-71
-43
-85
-71
-43
-59
-50
-39
-35
-31
-30
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-192
-155
-91
-224
-207
-180
-158
-125
-46
-160
-120
-43
-168
-127
-42
-171
-129
-45
-71
-60
-43
-82
-69
-65
-239
-182
-144
-249
-174
-124
-249
-152
-92
-248
-138
-64
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-247
-165
-111
-239
-182
-144
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-250
-197
-158
-250
-176
-132
-249
-159
-103
-247
-143
-74
-247
-130
-60
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-248
-180
-134
-212
-173
-150
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-248
-180
-134
-249
-159
-103
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-249
-159
-103
-250
-176
-132
-167
-142
-123
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-187
-166
-150
-249
-189
-146
-251
-168
-115
-249
-152
-92
-250
-139
-73
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-150
-84
-247
-165
-111
-252
-185
-144
-212
-173
-150
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-133
-120
-107
-248
-180
-134
-249
-159
-103
-250
-139
-73
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-103
-7
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-249
-159
-103
-250
-176
-132
-167
-142
-123
-24
-22
-23
-85
-71
-43
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-85
-71
-43
-35
-31
-30
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-216
-194
-154
-195
-167
-113
-152
-119
-47
-158
-125
-46
-168
-127
-42
-158
-125
-46
-59
-50
-39
-139
-115
-96
-252
-185
-144
-247
-165
-111
-247
-150
-84
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-60
-247
-150
-84
-251
-168
-115
-236
-186
-153
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-251
-209
-178
-249
-189
-146
-249
-174
-124
-249
-159
-103
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-248
-138
-64
-247
-143
-74
-246
-156
-93
-249
-174
-124
-251
-192
-154
-207
-178
-158
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-159
-103
-252
-185
-144
-167
-142
-123
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-51
-62
-63
-187
-166
-150
-250
-200
-166
-248
-180
-134
-247
-165
-111
-249
-152
-92
-247
-143
-74
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-60
-250
-139
-73
-249
-152
-92
-247
-165
-111
-248
-180
-134
-250
-197
-158
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-252
-185
-144
-249
-159
-103
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-247
-150
-84
-251
-168
-115
-230
-173
-136
-47
-40
-38
-59
-50
-39
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-161
-127
-40
-171
-129
-45
-59
-50
-39
-71
-60
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-170
-137
-67
-239
-227
-208
-170
-137
-67
-160
-120
-43
-158
-125
-46
-171
-129
-45
-123
-102
-54
-47
-40
-38
-209
-171
-139
-248
-180
-134
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-123
-41
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-249
-174
-124
-236
-186
-153
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-255
-215
-190
-253
-204
-176
-249
-189
-146
-249
-174
-124
-247
-165
-111
-246
-156
-93
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-123
-41
-246
-116
-28
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-249
-146
-83
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-247
-143
-74
-247
-143
-74
-247
-150
-84
-249
-159
-103
-249
-174
-124
-252
-185
-144
-250
-200
-166
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-251
-192
-154
-249
-174
-124
-246
-156
-93
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-249
-146
-83
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-150
-84
-251
-168
-115
-249
-189
-146
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-187
-166
-150
-253
-212
-188
-250
-197
-158
-248
-180
-134
-251
-168
-115
-249
-159
-103
-247
-150
-84
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-247
-150
-84
-249
-146
-83
-247
-143
-74
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-109
-10
-246
-109
-10
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-60
-248
-138
-64
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-250
-139
-73
-248
-138
-64
-248
-138
-64
-248
-138
-64
-248
-138
-64
-248
-138
-64
-248
-138
-64
-250
-139
-73
-250
-139
-73
-250
-139
-73
-250
-139
-73
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-248
-138
-64
-247
-130
-60
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-60
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-143
-74
-247
-150
-84
-249
-159
-103
-251
-168
-115
-248
-180
-134
-250
-197
-158
-253
-212
-188
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-111
-26
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-130
-60
-250
-139
-73
-247
-143
-74
-249
-146
-83
-247
-150
-84
-247
-150
-84
-249
-146
-83
-247
-143
-74
-250
-139
-73
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-118
-39
-247
-118
-39
-247
-118
-39
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-248
-138
-64
-248
-138
-64
-250
-139
-73
-250
-139
-73
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-247
-130
-60
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-143
-74
-247
-143
-74
-250
-139
-73
-250
-139
-73
-248
-138
-64
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-252
-185
-144
-139
-115
-96
-35
-31
-30
-129
-106
-52
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-35
-31
-30
-152
-119
-47
-168
-127
-42
-168
-127
-42
-160
-120
-43
-168
-127
-42
-171
-129
-45
-152
-119
-47
-216
-194
-154
-224
-207
-180
-160
-120
-43
-160
-120
-43
-137
-110
-49
-102
-91
-75
-35
-31
-30
-115
-102
-92
-250
-200
-166
-250
-176
-132
-249
-159
-103
-249
-146
-83
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-236
-186
-153
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-255
-215
-190
-255
-215
-190
-253
-204
-176
-250
-197
-158
-252
-185
-144
-249
-174
-124
-251
-168
-115
-249
-159
-103
-246
-156
-93
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-249
-146
-83
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-246
-116
-28
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-60
-250
-139
-73
-249
-146
-83
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-249
-146
-83
-247
-143
-74
-248
-138
-64
-247
-130
-60
-247
-130
-60
-247
-130
-60
-248
-138
-64
-250
-139
-73
-249
-146
-83
-249
-152
-92
-249
-159
-103
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-247
-165
-111
-251
-168
-115
-250
-176
-132
-252
-185
-144
-250
-200
-166
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-250
-200
-166
-250
-176
-132
-247
-165
-111
-249
-152
-92
-247
-150
-84
-249
-146
-83
-247
-150
-84
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-246
-156
-93
-247
-150
-84
-247
-143
-74
-250
-139
-73
-247
-143
-74
-249
-146
-83
-249
-159
-103
-249
-174
-124
-251
-192
-154
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-51
-62
-63
-187
-166
-150
-255
-215
-190
-253
-212
-188
-250
-200
-166
-249
-189
-146
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-246
-116
-28
-247
-111
-26
-246
-116
-28
-247
-118
-39
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-249
-152
-92
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-247
-150
-84
-249
-159
-103
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-246
-156
-93
-246
-156
-93
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-152
-92
-249
-152
-92
-247
-150
-84
-249
-146
-83
-249
-146
-83
-249
-146
-83
-247
-150
-84
-249
-152
-92
-246
-156
-93
-249
-159
-103
-247
-165
-111
-249
-174
-124
-250
-176
-132
-249
-189
-146
-250
-200
-166
-253
-212
-188
-255
-215
-190
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-247
-150
-84
-249
-159
-103
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-249
-159
-103
-249
-152
-92
-249
-146
-83
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-60
-248
-138
-64
-247
-143
-74
-249
-146
-83
-249
-152
-92
-246
-156
-93
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-249
-159
-103
-246
-156
-93
-249
-152
-92
-247
-150
-84
-249
-146
-83
-247
-143
-74
-247
-143
-74
-247
-143
-74
-249
-146
-83
-247
-150
-84
-246
-156
-93
-249
-159
-103
-247
-165
-111
-247
-165
-111
-251
-168
-115
-251
-168
-115
-251
-168
-115
-247
-165
-111
-247
-165
-111
-247
-165
-111
-249
-159
-103
-249
-159
-103
-246
-156
-93
-247
-150
-84
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-103
-7
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-236
-186
-153
-47
-40
-38
-59
-50
-39
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-47
-40
-38
-108
-87
-46
-168
-127
-42
-111
-94
-57
-76
-70
-64
-59
-50
-39
-101
-83
-47
-160
-120
-43
-170
-137
-67
-253
-255
-252
-195
-167
-113
-145
-114
-49
-69
-69
-61
-120
-114
-108
-35
-31
-30
-47
-40
-38
-217
-187
-166
-250
-197
-158
-250
-176
-132
-249
-159
-103
-249
-146
-83
-248
-138
-64
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-250
-139
-73
-246
-156
-93
-250
-176
-132
-232
-190
-161
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-255
-215
-190
-255
-215
-190
-245
-212
-186
-227
-196
-175
-212
-173
-150
-209
-171
-139
-219
-170
-138
-240
-181
-138
-250
-176
-132
-251
-168
-115
-249
-159
-103
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-53
-247
-130
-53
-248
-138
-64
-249
-146
-83
-246
-156
-93
-247
-165
-111
-249
-174
-124
-248
-180
-134
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-219
-170
-138
-240
-181
-138
-250
-176
-132
-249
-174
-124
-249
-159
-103
-249
-152
-92
-247
-143
-74
-247
-130
-60
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-53
-248
-138
-64
-249
-146
-83
-246
-156
-93
-247
-165
-111
-249
-174
-124
-245
-179
-138
-230
-173
-136
-203
-161
-131
-203
-161
-131
-219
-170
-138
-239
-182
-144
-251
-192
-154
-249
-189
-146
-252
-185
-144
-252
-185
-144
-248
-180
-134
-245
-169
-119
-234
-168
-124
-247
-165
-111
-249
-159
-103
-249
-152
-92
-247
-150
-84
-247
-150
-84
-247
-150
-84
-249
-152
-92
-249
-159
-103
-247
-165
-111
-249
-174
-124
-248
-180
-134
-230
-173
-136
-219
-170
-138
-203
-161
-131
-209
-171
-139
-239
-182
-144
-251
-192
-154
-249
-189
-146
-249
-189
-146
-252
-185
-144
-252
-185
-144
-249
-189
-146
-236
-186
-153
-250
-200
-166
-255
-215
-190
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-253
-204
-176
-252
-185
-144
-249
-174
-124
-247
-165
-111
-247
-165
-111
-247
-165
-111
-251
-168
-115
-249
-174
-124
-248
-180
-134
-230
-173
-136
-219
-170
-138
-203
-161
-131
-209
-171
-139
-230
-173
-136
-245
-179
-138
-250
-176
-132
-251
-168
-115
-249
-159
-103
-249
-159
-103
-246
-156
-93
-249
-159
-103
-251
-168
-115
-248
-180
-134
-250
-197
-158
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-51
-62
-63
-187
-166
-150
-255
-215
-190
-255
-215
-190
-234
-204
-183
-207
-178
-158
-209
-171
-139
-209
-171
-139
-230
-173
-136
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-248
-138
-64
-247
-143
-74
-249
-152
-92
-247
-165
-111
-249
-174
-124
-248
-180
-134
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-219
-170
-138
-240
-181
-138
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-152
-92
-247
-143
-74
-248
-138
-64
-247
-130
-53
-247
-123
-41
-247
-123
-41
-247
-123
-41
-247
-130
-53
-247
-130
-60
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-174
-124
-250
-176
-132
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-230
-173
-136
-251
-192
-154
-249
-189
-146
-249
-189
-146
-252
-185
-144
-252
-185
-144
-248
-180
-134
-234
-168
-124
-250
-176
-132
-248
-180
-134
-250
-176
-132
-250
-176
-132
-250
-176
-132
-248
-180
-134
-248
-180
-134
-230
-173
-136
-240
-181
-138
-252
-185
-144
-252
-185
-144
-252
-185
-144
-252
-185
-144
-248
-180
-134
-234
-168
-124
-234
-168
-124
-249
-174
-124
-251
-168
-115
-247
-165
-111
-247
-165
-111
-247
-165
-111
-251
-168
-115
-249
-174
-124
-250
-176
-132
-248
-180
-134
-230
-173
-136
-219
-170
-138
-209
-171
-139
-207
-178
-158
-227
-196
-175
-253
-212
-188
-255
-215
-190
-217
-187
-166
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-246
-116
-28
-247
-111
-26
-246
-109
-10
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-247
-143
-74
-249
-152
-92
-249
-159
-103
-249
-174
-124
-248
-180
-134
-240
-181
-138
-219
-170
-138
-203
-161
-131
-203
-161
-131
-219
-170
-138
-240
-181
-138
-248
-180
-134
-249
-174
-124
-247
-165
-111
-249
-159
-103
-247
-150
-84
-249
-146
-83
-247
-143
-74
-247
-143
-74
-249
-146
-83
-249
-152
-92
-249
-159
-103
-247
-165
-111
-234
-168
-124
-234
-168
-124
-248
-180
-134
-252
-185
-144
-252
-185
-144
-252
-185
-144
-248
-180
-134
-250
-176
-132
-234
-168
-124
-249
-174
-124
-251
-168
-115
-247
-165
-111
-247
-165
-111
-249
-159
-103
-247
-165
-111
-251
-168
-115
-249
-174
-124
-250
-176
-132
-248
-180
-134
-230
-173
-136
-203
-161
-131
-203
-161
-131
-219
-170
-138
-239
-182
-144
-251
-192
-154
-249
-189
-146
-252
-185
-144
-252
-185
-144
-248
-180
-134
-234
-168
-124
-238
-159
-107
-247
-165
-111
-249
-152
-92
-247
-143
-74
-247
-130
-60
-247
-123
-41
-246
-116
-28
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-130
-53
-247
-143
-74
-247
-165
-111
-252
-185
-144
-154
-133
-118
-24
-22
-23
-108
-87
-46
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-71
-60
-43
-85
-71
-43
-101
-83
-47
-89
-84
-82
-152
-147
-147
-24
-22
-23
-24
-22
-23
-108
-87
-46
-168
-127
-42
-224
-207
-180
-253
-255
-252
-209
-171
-139
-101
-83
-47
-24
-22
-23
-35
-31
-30
-35
-31
-30
-167
-142
-123
-253
-212
-188
-250
-197
-158
-248
-180
-134
-247
-165
-111
-247
-150
-84
-250
-139
-73
-247
-130
-60
-247
-130
-60
-248
-138
-64
-249
-146
-83
-249
-159
-103
-250
-176
-132
-232
-190
-161
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-217
-187
-166
-137
-127
-115
-91
-92
-89
-55
-66
-67
-48
-58
-59
-48
-58
-59
-55
-66
-67
-84
-85
-82
-133
-120
-107
-209
-171
-139
-248
-180
-134
-251
-168
-115
-249
-159
-103
-247
-150
-84
-247
-143
-74
-250
-139
-73
-250
-139
-73
-249
-146
-83
-249
-152
-92
-247
-165
-111
-249
-174
-124
-245
-179
-138
-178
-146
-122
-124
-111
-99
-76
-78
-76
-51
-62
-63
-48
-58
-59
-48
-58
-59
-58
-69
-70
-91
-92
-89
-144
-125
-110
-203
-161
-131
-248
-180
-134
-249
-174
-124
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-248
-138
-64
-250
-139
-73
-249
-146
-83
-246
-156
-93
-247
-165
-111
-250
-176
-132
-230
-173
-136
-154
-133
-118
-101
-100
-92
-58
-69
-70
-48
-58
-59
-48
-58
-59
-51
-62
-63
-84
-85
-82
-137
-127
-115
-217
-187
-166
-253
-212
-188
-227
-196
-175
-144
-125
-110
-89
-84
-82
-81
-77
-76
-115
-102
-92
-210
-156
-119
-249
-174
-124
-251
-168
-115
-251
-168
-115
-251
-168
-115
-249
-174
-124
-250
-176
-132
-252
-185
-144
-195
-157
-134
-124
-111
-99
-76
-78
-76
-51
-62
-63
-48
-58
-59
-48
-58
-59
-70
-79
-77
-120
-114
-108
-187
-166
-150
-253
-212
-188
-253
-212
-188
-172
-150
-134
-101
-100
-92
-77
-85
-81
-101
-100
-92
-176
-156
-141
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-253
-212
-188
-250
-197
-158
-252
-185
-144
-248
-180
-134
-248
-180
-134
-252
-185
-144
-239
-182
-144
-167
-142
-123
-109
-106
-99
-70
-79
-77
-48
-58
-59
-48
-58
-59
-48
-58
-59
-58
-69
-70
-91
-92
-89
-150
-125
-114
-219
-170
-138
-248
-180
-134
-249
-174
-124
-249
-174
-124
-249
-174
-124
-250
-176
-132
-249
-189
-146
-253
-204
-176
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-176
-156
-141
-187
-166
-150
-109
-106
-99
-63
-74
-74
-43
-57
-62
-43
-57
-62
-43
-57
-62
-63
-74
-74
-109
-106
-99
-178
-146
-122
-245
-179
-138
-249
-174
-124
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-248
-138
-64
-248
-138
-64
-247
-143
-74
-247
-150
-84
-249
-159
-103
-249
-174
-124
-252
-185
-144
-195
-157
-134
-124
-111
-99
-77
-85
-81
-51
-62
-63
-41
-58
-57
-43
-57
-62
-51
-62
-63
-77
-85
-81
-124
-111
-99
-195
-157
-134
-252
-185
-144
-249
-174
-124
-249
-159
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-247
-130
-60
-248
-138
-64
-250
-139
-73
-247
-150
-84
-249
-159
-103
-251
-168
-115
-248
-180
-134
-203
-161
-131
-124
-111
-99
-77
-85
-81
-48
-58
-59
-43
-57
-62
-43
-57
-62
-63
-74
-74
-109
-106
-99
-187
-166
-150
-253
-212
-188
-253
-212
-188
-187
-166
-150
-109
-106
-99
-77
-85
-81
-84
-85
-82
-150
-125
-114
-232
-190
-161
-253
-204
-176
-253
-204
-176
-172
-150
-134
-101
-100
-92
-77
-85
-81
-91
-92
-89
-137
-127
-115
-227
-196
-175
-253
-212
-188
-186
-157
-134
-109
-106
-99
-77
-85
-81
-84
-85
-82
-124
-111
-99
-219
-170
-138
-249
-189
-146
-249
-189
-146
-249
-189
-146
-251
-192
-154
-250
-197
-158
-186
-157
-134
-109
-106
-99
-70
-79
-77
-43
-57
-62
-43
-57
-62
-41
-58
-57
-63
-74
-74
-101
-100
-92
-176
-156
-141
-194
-173
-157
-55
-66
-67
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-249
-189
-146
-247
-165
-111
-247
-143
-74
-247
-130
-53
-247
-118
-39
-247
-111
-26
-246
-109
-10
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-249
-159
-103
-249
-174
-124
-252
-185
-144
-203
-161
-131
-133
-120
-107
-84
-85
-82
-55
-66
-67
-43
-57
-62
-41
-58
-57
-51
-62
-63
-77
-85
-81
-124
-111
-99
-178
-146
-122
-239
-182
-144
-250
-176
-132
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-159
-103
-247
-165
-111
-249
-174
-124
-210
-156
-119
-124
-111
-99
-77
-85
-81
-77
-85
-81
-109
-106
-99
-194
-173
-157
-253
-212
-188
-217
-187
-166
-133
-120
-107
-89
-84
-82
-76
-78
-76
-101
-100
-92
-178
-146
-122
-249
-189
-146
-252
-185
-144
-252
-185
-144
-252
-185
-144
-251
-192
-154
-236
-186
-153
-167
-142
-123
-101
-100
-92
-63
-74
-74
-41
-58
-57
-43
-57
-62
-51
-62
-63
-77
-85
-81
-137
-127
-115
-217
-187
-166
-253
-212
-188
-227
-196
-175
-144
-125
-110
-84
-85
-82
-76
-78
-76
-115
-102
-92
-204
-141
-99
-249
-159
-103
-247
-143
-74
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-250
-197
-158
-82
-69
-65
-47
-40
-38
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-101
-83
-47
-59
-50
-39
-101
-83
-47
-24
-22
-23
-35
-31
-30
-24
-22
-23
-24
-22
-23
-108
-87
-46
-168
-127
-42
-195
-167
-113
-253
-255
-252
-253
-255
-252
-239
-227
-208
-186
-157
-134
-162
-125
-96
-105
-93
-60
-47
-40
-38
-150
-125
-114
-217
-187
-166
-250
-200
-166
-252
-185
-144
-251
-168
-115
-246
-156
-93
-249
-146
-83
-247
-143
-74
-249
-146
-83
-249
-152
-92
-247
-165
-111
-252
-185
-144
-232
-190
-161
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-55
-66
-67
-58
-69
-70
-56
-64
-60
-83
-78
-61
-105
-93
-60
-117
-98
-55
-117
-98
-55
-105
-93
-60
-83
-78
-61
-56
-64
-60
-55
-66
-67
-144
-125
-110
-239
-182
-144
-250
-176
-132
-247
-165
-111
-249
-159
-103
-246
-156
-93
-249
-159
-103
-247
-165
-111
-249
-174
-124
-252
-185
-144
-195
-157
-134
-89
-84
-82
-48
-58
-59
-63
-69
-60
-95
-87
-59
-111
-94
-57
-123
-102
-54
-117
-98
-55
-105
-93
-60
-83
-78
-61
-56
-64
-60
-51
-62
-63
-124
-111
-99
-219
-170
-138
-248
-180
-134
-251
-168
-115
-249
-159
-103
-249
-152
-92
-249
-152
-92
-246
-156
-93
-247
-165
-111
-249
-174
-124
-252
-185
-144
-167
-142
-123
-70
-79
-77
-51
-62
-63
-75
-74
-61
-100
-89
-56
-117
-98
-55
-123
-102
-54
-105
-93
-60
-83
-78
-61
-51
-62
-63
-63
-74
-74
-172
-150
-134
-109
-106
-99
-51
-62
-63
-83
-78
-61
-95
-87
-59
-65
-67
-64
-65
-67
-64
-209
-171
-139
-249
-189
-146
-249
-189
-146
-249
-189
-146
-250
-197
-158
-212
-173
-150
-109
-106
-99
-48
-58
-59
-63
-69
-60
-95
-87
-59
-111
-94
-57
-123
-102
-54
-117
-98
-55
-95
-87
-59
-62
-63
-61
-48
-58
-59
-137
-127
-115
-146
-135
-124
-48
-58
-59
-75
-74
-61
-95
-87
-59
-75
-74
-61
-48
-58
-59
-161
-144
-134
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-200
-166
-250
-200
-166
-172
-150
-134
-77
-85
-81
-48
-58
-59
-69
-69
-61
-95
-87
-59
-111
-94
-57
-123
-102
-54
-117
-98
-55
-100
-89
-56
-75
-74
-61
-56
-64
-60
-55
-66
-67
-133
-120
-107
-236
-186
-153
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-253
-212
-188
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-51
-62
-63
-63
-74
-74
-48
-58
-59
-76
-70
-64
-118
-86
-65
-146
-97
-64
-155
-100
-63
-146
-97
-64
-118
-86
-65
-76
-70
-64
-43
-57
-62
-91
-92
-89
-203
-161
-131
-248
-180
-134
-251
-168
-115
-249
-159
-103
-249
-152
-92
-247
-150
-84
-249
-152
-92
-249
-159
-103
-251
-168
-115
-248
-180
-134
-209
-171
-139
-101
-100
-92
-43
-57
-62
-69
-69
-61
-106
-82
-65
-135
-94
-64
-155
-100
-63
-155
-100
-63
-135
-94
-64
-106
-82
-65
-65
-67
-64
-43
-57
-62
-101
-100
-92
-209
-171
-139
-248
-180
-134
-251
-168
-115
-249
-159
-103
-249
-152
-92
-247
-150
-84
-247
-150
-84
-246
-156
-93
-247
-165
-111
-250
-176
-132
-219
-170
-138
-124
-111
-99
-48
-58
-59
-62
-63
-61
-106
-82
-65
-139
-96
-61
-155
-100
-63
-146
-97
-64
-125
-90
-64
-76
-70
-64
-41
-58
-57
-120
-114
-108
-172
-150
-134
-51
-62
-63
-69
-69
-61
-112
-85
-63
-95
-78
-64
-51
-62
-63
-120
-114
-108
-245
-212
-186
-146
-135
-124
-43
-57
-62
-81
-73
-62
-118
-86
-65
-95
-78
-64
-56
-64
-60
-101
-100
-92
-133
-120
-107
-43
-57
-62
-76
-70
-64
-112
-85
-63
-106
-82
-65
-62
-63
-61
-77
-85
-81
-227
-196
-175
-253
-212
-188
-253
-212
-188
-217
-187
-166
-109
-106
-99
-41
-58
-57
-69
-69
-61
-112
-85
-63
-139
-96
-61
-155
-100
-63
-146
-97
-64
-118
-86
-65
-81
-73
-62
-48
-58
-59
-58
-69
-70
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-111
-26
-246
-116
-28
-247
-123
-41
-248
-138
-64
-249
-146
-83
-249
-159
-103
-250
-176
-132
-219
-170
-138
-124
-111
-99
-43
-57
-62
-62
-63
-61
-106
-82
-65
-135
-94
-64
-155
-100
-63
-155
-100
-63
-139
-96
-61
-106
-82
-65
-69
-69
-61
-43
-57
-62
-91
-92
-89
-195
-157
-134
-251
-192
-154
-252
-185
-144
-248
-180
-134
-248
-180
-134
-252
-185
-144
-203
-161
-131
-63
-74
-74
-62
-63
-61
-106
-82
-65
-112
-85
-63
-69
-69
-61
-55
-66
-67
-146
-135
-124
-63
-74
-74
-56
-64
-60
-95
-78
-64
-112
-85
-63
-76
-70
-64
-48
-58
-59
-172
-150
-134
-253
-204
-176
-251
-209
-178
-251
-209
-178
-187
-166
-150
-77
-85
-81
-48
-58
-59
-81
-73
-62
-125
-90
-64
-146
-97
-64
-155
-100
-63
-139
-96
-61
-95
-78
-64
-56
-64
-60
-58
-69
-70
-161
-144
-134
-109
-106
-99
-51
-62
-63
-95
-78
-64
-112
-85
-63
-65
-67
-64
-65
-67
-64
-204
-141
-99
-246
-156
-93
-250
-139
-73
-247
-130
-53
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-252
-185
-144
-209
-171
-139
-24
-22
-23
-85
-71
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-47
-40
-38
-137
-110
-49
-101
-83
-47
-59
-50
-39
-59
-50
-39
-101
-83
-47
-158
-125
-46
-160
-120
-43
-192
-155
-91
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-237
-233
-225
-152
-147
-147
-81
-77
-76
-55
-48
-48
-115
-102
-92
-212
-173
-150
-251
-192
-154
-249
-174
-124
-247
-165
-111
-249
-159
-103
-249
-159
-103
-247
-165
-111
-249
-174
-124
-249
-189
-146
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-43
-57
-62
-95
-87
-59
-145
-114
-49
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-145
-114
-49
-95
-87
-59
-48
-58
-59
-109
-106
-99
-236
-186
-153
-252
-185
-144
-248
-180
-134
-250
-176
-132
-250
-176
-132
-252
-185
-144
-251
-192
-154
-150
-125
-114
-48
-58
-59
-69
-69
-61
-117
-98
-55
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-152
-119
-47
-100
-89
-56
-56
-64
-60
-63
-74
-74
-186
-157
-134
-249
-189
-146
-248
-180
-134
-249
-174
-124
-249
-174
-124
-250
-176
-132
-252
-185
-144
-251
-192
-154
-133
-120
-107
-48
-58
-59
-75
-74
-61
-137
-110
-49
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-145
-114
-49
-75
-74
-61
-43
-57
-62
-51
-62
-63
-123
-102
-54
-171
-129
-45
-171
-129
-45
-145
-114
-49
-56
-64
-60
-133
-120
-107
-253
-212
-188
-251
-209
-178
-253
-212
-188
-194
-173
-157
-63
-74
-74
-56
-64
-60
-111
-94
-57
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-158
-125
-46
-105
-93
-60
-51
-62
-63
-43
-57
-62
-88
-82
-59
-168
-127
-42
-171
-129
-45
-168
-127
-42
-88
-82
-59
-63
-74
-74
-187
-166
-150
-55
-66
-67
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-133
-120
-107
-48
-58
-59
-75
-74
-61
-129
-106
-52
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-171
-129
-45
-168
-127
-42
-145
-114
-49
-95
-87
-59
-51
-62
-63
-77
-85
-81
-212
-173
-150
-253
-204
-176
-253
-204
-176
-251
-209
-178
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-41
-58
-57
-69
-69
-61
-155
-100
-63
-214
-121
-50
-234
-126
-45
-234
-126
-45
-234
-126
-45
-234
-126
-45
-234
-126
-45
-224
-123
-55
-155
-100
-63
-69
-69
-61
-51
-62
-63
-178
-146
-122
-249
-189
-146
-250
-176
-132
-251
-168
-115
-251
-168
-115
-249
-174
-124
-250
-176
-132
-249
-189
-146
-167
-142
-123
-55
-66
-67
-65
-67
-64
-146
-97
-64
-212
-120
-56
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-125
-52
-209
-117
-53
-146
-97
-64
-65
-67
-64
-55
-66
-67
-178
-146
-122
-249
-189
-146
-250
-176
-132
-251
-168
-115
-247
-165
-111
-251
-168
-115
-249
-174
-124
-252
-185
-144
-203
-161
-131
-63
-74
-74
-56
-64
-60
-125
-90
-64
-209
-117
-53
-234
-126
-45
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-126
-45
-214
-121
-50
-146
-97
-64
-56
-64
-60
-41
-58
-57
-81
-73
-62
-209
-117
-53
-234
-126
-45
-234
-126
-45
-125
-90
-64
-51
-62
-63
-176
-156
-141
-55
-66
-67
-106
-82
-65
-225
-124
-48
-234
-126
-45
-234
-126
-45
-146
-97
-64
-41
-58
-57
-43
-57
-62
-125
-90
-64
-214
-121
-50
-234
-126
-45
-234
-126
-45
-183
-110
-59
-56
-64
-60
-137
-127
-115
-255
-215
-190
-194
-173
-157
-63
-74
-74
-62
-63
-61
-146
-97
-64
-214
-121
-50
-234
-125
-52
-234
-126
-45
-234
-125
-52
-234
-125
-52
-234
-126
-45
-225
-124
-48
-173
-106
-60
-81
-73
-62
-35
-56
-60
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-53
-247
-118
-39
-246
-116
-28
-246
-116
-28
-247
-123
-41
-247
-130
-60
-249
-146
-83
-247
-165
-111
-248
-180
-134
-186
-157
-134
-58
-69
-70
-56
-64
-60
-135
-94
-64
-199
-115
-54
-234
-125
-52
-234
-126
-45
-234
-125
-52
-234
-125
-52
-234
-126
-45
-234
-125
-52
-212
-120
-56
-155
-100
-63
-76
-70
-64
-51
-62
-63
-146
-135
-124
-251
-209
-178
-253
-204
-176
-250
-200
-166
-253
-204
-176
-101
-100
-92
-69
-69
-61
-194
-112
-58
-234
-126
-45
-234
-126
-45
-199
-115
-54
-65
-67
-64
-35
-56
-60
-81
-73
-62
-194
-112
-58
-234
-125
-52
-234
-126
-45
-214
-121
-50
-95
-78
-64
-63
-74
-74
-238
-205
-179
-255
-215
-190
-161
-144
-134
-43
-57
-62
-81
-73
-62
-173
-106
-60
-225
-124
-48
-234
-126
-45
-234
-126
-45
-234
-125
-52
-234
-126
-45
-234
-126
-45
-194
-112
-58
-95
-78
-64
-41
-58
-57
-48
-58
-59
-155
-100
-63
-234
-126
-45
-234
-126
-45
-199
-115
-54
-69
-69
-61
-99
-90
-79
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-60
-247
-150
-84
-249
-174
-124
-251
-192
-154
-124
-111
-99
-35
-31
-30
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-47
-40
-38
-108
-87
-46
-175
-132
-40
-161
-127
-40
-168
-127
-42
-171
-129
-45
-158
-125
-46
-152
-119
-47
-203
-161
-131
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-186
-181
-179
-89
-84
-82
-47
-40
-38
-139
-115
-96
-236
-186
-153
-252
-185
-144
-250
-176
-132
-249
-174
-124
-250
-176
-132
-252
-185
-144
-250
-197
-158
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-111
-94
-57
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-111
-94
-57
-48
-58
-59
-109
-106
-99
-253
-204
-176
-250
-200
-166
-250
-200
-166
-250
-200
-166
-253
-204
-176
-137
-127
-115
-43
-57
-62
-88
-82
-59
-158
-125
-46
-171
-129
-45
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-145
-114
-49
-69
-69
-61
-51
-62
-63
-187
-166
-150
-250
-200
-166
-250
-197
-158
-251
-192
-154
-250
-197
-158
-253
-204
-176
-133
-120
-107
-48
-58
-59
-95
-87
-59
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-158
-125
-46
-75
-74
-61
-62
-63
-61
-168
-127
-42
-161
-127
-40
-158
-125
-46
-171
-129
-45
-83
-78
-61
-91
-92
-89
-255
-215
-190
-255
-215
-190
-207
-178
-158
-58
-69
-70
-63
-69
-60
-145
-114
-49
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-105
-93
-60
-43
-57
-62
-137
-110
-49
-171
-129
-45
-158
-125
-46
-171
-129
-45
-137
-110
-49
-51
-62
-63
-146
-135
-124
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-65
-67
-64
-137
-127
-115
-255
-215
-190
-255
-215
-190
-245
-212
-186
-120
-114
-108
-48
-58
-59
-100
-89
-56
-168
-127
-42
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-129
-106
-52
-61
-67
-58
-63
-74
-74
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-95
-78
-64
-209
-117
-53
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-209
-117
-53
-89
-75
-66
-51
-62
-63
-187
-166
-150
-250
-197
-158
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-161
-144
-134
-41
-58
-57
-95
-78
-64
-199
-115
-54
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-199
-115
-54
-89
-75
-66
-41
-58
-57
-167
-142
-123
-250
-200
-166
-251
-192
-154
-252
-185
-144
-249
-189
-146
-250
-197
-158
-212
-173
-150
-63
-74
-74
-69
-69
-61
-183
-110
-59
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-163
-104
-61
-41
-58
-57
-135
-94
-64
-234
-126
-45
-224
-123
-55
-234
-125
-52
-188
-112
-56
-51
-62
-63
-109
-106
-99
-51
-62
-63
-188
-112
-56
-234
-126
-45
-224
-123
-55
-234
-125
-52
-188
-112
-56
-43
-57
-62
-112
-85
-63
-234
-126
-45
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-95
-78
-64
-109
-106
-99
-217
-187
-166
-58
-69
-70
-69
-69
-61
-188
-112
-56
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-214
-121
-50
-95
-78
-64
-146
-97
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-53
-247
-123
-41
-247
-118
-39
-247
-123
-41
-247
-130
-53
-247
-143
-74
-249
-159
-103
-250
-176
-132
-186
-157
-134
-51
-62
-63
-81
-73
-62
-188
-112
-56
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-212
-120
-56
-106
-82
-65
-41
-58
-57
-146
-135
-124
-255
-215
-190
-255
-215
-190
-234
-204
-183
-63
-74
-74
-125
-90
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-234
-125
-52
-89
-75
-66
-62
-63
-61
-199
-115
-54
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-163
-104
-61
-48
-58
-59
-217
-187
-166
-172
-150
-134
-41
-58
-57
-106
-82
-65
-214
-121
-50
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-225
-124
-48
-81
-73
-62
-69
-69
-61
-227
-126
-50
-227
-126
-50
-224
-123
-55
-238
-123
-45
-125
-90
-64
-55
-66
-67
-250
-176
-132
-246
-156
-93
-250
-139
-73
-247
-123
-41
-247
-111
-26
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-248
-180
-134
-232
-190
-161
-47
-40
-38
-71
-60
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-71
-60
-43
-71
-60
-43
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-160
-120
-43
-170
-137
-67
-237
-233
-225
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-186
-181
-179
-74
-68
-68
-89
-75
-66
-212
-173
-150
-250
-197
-158
-251
-192
-154
-249
-189
-146
-251
-192
-154
-253
-204
-176
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-111
-94
-57
-48
-58
-59
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-172
-150
-134
-48
-58
-59
-95
-87
-59
-168
-127
-42
-168
-127
-42
-158
-125
-46
-161
-127
-40
-171
-129
-45
-158
-125
-46
-152
-119
-47
-152
-119
-47
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-69
-69
-61
-58
-69
-70
-217
-187
-166
-255
-215
-190
-255
-215
-190
-255
-215
-190
-172
-150
-134
-43
-57
-62
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-158
-125
-46
-168
-127
-42
-137
-110
-49
-83
-78
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-255
-215
-190
-238
-205
-179
-84
-85
-82
-62
-63
-61
-145
-114
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-161
-127
-40
-158
-125
-46
-88
-82
-59
-152
-119
-47
-161
-127
-40
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-63
-69
-60
-137
-127
-115
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-105
-93
-60
-171
-129
-45
-161
-127
-40
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-152
-119
-47
-152
-119
-47
-168
-127
-42
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-145
-114
-49
-62
-63
-61
-70
-79
-77
-227
-196
-175
-255
-215
-190
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-212
-120
-56
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-234
-126
-45
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-76
-70
-64
-70
-79
-77
-234
-204
-183
-253
-212
-188
-251
-209
-178
-253
-212
-188
-187
-166
-150
-43
-57
-62
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-126
-45
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-95
-78
-64
-48
-58
-59
-194
-173
-157
-253
-212
-188
-251
-209
-178
-251
-209
-178
-245
-212
-186
-91
-92
-89
-62
-63
-61
-188
-112
-56
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-125
-52
-234
-126
-45
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-146
-97
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-212
-120
-56
-183
-110
-59
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-126
-45
-95
-78
-64
-84
-85
-82
-91
-92
-89
-62
-63
-61
-188
-112
-56
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-126
-45
-227
-126
-50
-224
-123
-55
-227
-126
-50
-224
-123
-55
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-123
-41
-247
-123
-41
-247
-130
-53
-248
-138
-64
-249
-152
-92
-249
-174
-124
-209
-171
-139
-58
-69
-70
-81
-73
-62
-209
-117
-53
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-125
-52
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-112
-85
-63
-41
-58
-57
-172
-150
-134
-255
-215
-190
-227
-196
-175
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-194
-112
-58
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-238
-128
-40
-163
-104
-61
-55
-66
-67
-161
-144
-134
-58
-69
-70
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-126
-45
-234
-126
-45
-234
-125
-52
-227
-126
-50
-234
-125
-52
-173
-106
-60
-118
-86
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-146
-97
-64
-51
-62
-63
-252
-185
-144
-249
-159
-103
-247
-143
-74
-247
-130
-53
-246
-116
-28
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-251
-168
-115
-251
-192
-154
-154
-133
-118
-24
-22
-23
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-108
-87
-46
-47
-40
-38
-158
-125
-46
-158
-125
-46
-158
-125
-46
-160
-120
-43
-156
-125
-62
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-152
-147
-147
-35
-31
-30
-55
-48
-48
-154
-133
-118
-217
-187
-166
-253
-204
-176
-253
-204
-176
-253
-212
-188
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-168
-127
-42
-158
-125
-46
-123
-102
-54
-105
-93
-60
-111
-94
-57
-129
-106
-52
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-83
-78
-61
-58
-69
-70
-227
-196
-175
-255
-215
-190
-217
-187
-166
-58
-69
-70
-75
-74
-61
-168
-127
-42
-161
-127
-40
-158
-125
-46
-168
-127
-42
-152
-119
-47
-105
-93
-60
-69
-69
-61
-62
-63
-61
-62
-63
-61
-75
-74
-61
-117
-98
-55
-161
-127
-40
-161
-127
-40
-158
-125
-46
-171
-129
-45
-145
-114
-49
-56
-64
-60
-97
-98
-96
-245
-212
-186
-255
-215
-190
-227
-196
-175
-63
-74
-74
-75
-74
-61
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-129
-106
-52
-111
-94
-57
-105
-93
-60
-129
-106
-52
-158
-125
-46
-168
-127
-42
-161
-127
-40
-152
-119
-47
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-84
-85
-82
-255
-215
-190
-161
-144
-134
-48
-58
-59
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-117
-98
-55
-105
-93
-60
-117
-98
-55
-145
-114
-49
-171
-129
-45
-168
-127
-42
-152
-119
-47
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-194
-173
-157
-48
-58
-59
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-95
-87
-59
-69
-69
-61
-62
-63
-61
-62
-63
-61
-83
-78
-61
-123
-102
-54
-168
-127
-42
-161
-127
-40
-158
-125
-46
-171
-129
-45
-129
-106
-52
-51
-62
-63
-120
-114
-108
-255
-215
-190
-255
-215
-190
-161
-144
-134
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-227
-126
-50
-227
-126
-50
-188
-112
-56
-146
-97
-64
-135
-94
-64
-146
-97
-64
-199
-115
-54
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-173
-106
-60
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-234
-204
-183
-77
-85
-81
-76
-70
-64
-214
-121
-50
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-163
-104
-61
-135
-94
-64
-135
-94
-64
-163
-104
-61
-224
-123
-55
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-212
-120
-56
-76
-70
-64
-77
-85
-81
-238
-205
-179
-255
-215
-190
-255
-215
-190
-161
-144
-134
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-199
-115
-54
-155
-100
-63
-135
-94
-64
-146
-97
-64
-188
-112
-56
-227
-126
-50
-227
-126
-50
-214
-121
-50
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-199
-115
-54
-125
-90
-64
-51
-62
-63
-55
-66
-67
-41
-58
-57
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-209
-117
-53
-155
-100
-63
-135
-94
-64
-139
-96
-61
-183
-110
-59
-227
-126
-50
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-247
-130
-60
-247
-130
-53
-247
-130
-53
-247
-130
-60
-249
-146
-83
-247
-165
-111
-252
-185
-144
-101
-100
-92
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-173
-106
-60
-135
-94
-64
-135
-94
-64
-163
-104
-61
-214
-121
-50
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-81
-73
-62
-58
-69
-70
-227
-196
-175
-234
-204
-183
-63
-74
-74
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-125
-52
-212
-120
-56
-155
-100
-63
-69
-69
-61
-76
-78
-76
-84
-85
-82
-65
-67
-64
-209
-117
-53
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-183
-110
-59
-139
-96
-61
-135
-94
-64
-155
-100
-63
-209
-117
-53
-234
-125
-52
-224
-123
-55
-212
-120
-56
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-251
-192
-154
-251
-168
-115
-249
-146
-83
-247
-130
-53
-247
-118
-39
-246
-109
-10
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-250
-176
-132
-232
-190
-161
-65
-58
-56
-59
-50
-39
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-47
-40
-38
-129
-106
-52
-168
-127
-42
-160
-120
-43
-158
-125
-46
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-62
-63
-61
-35
-31
-30
-91
-92
-89
-164
-158
-157
-186
-181
-179
-82
-69
-65
-176
-156
-141
-255
-215
-190
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-65
-67
-64
-48
-58
-59
-55
-66
-67
-55
-66
-67
-48
-58
-59
-83
-78
-61
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-146
-135
-124
-255
-215
-190
-120
-114
-108
-56
-64
-60
-145
-114
-49
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-69
-69
-61
-43
-57
-62
-109
-106
-99
-146
-135
-124
-137
-127
-115
-91
-92
-89
-43
-57
-62
-88
-82
-59
-158
-125
-46
-161
-127
-40
-158
-125
-46
-171
-129
-45
-117
-98
-55
-48
-58
-59
-172
-150
-134
-255
-215
-190
-146
-135
-124
-51
-62
-63
-137
-110
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-75
-74
-61
-48
-58
-59
-55
-66
-67
-55
-66
-67
-48
-58
-59
-69
-69
-61
-137
-110
-49
-168
-127
-42
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-234
-204
-183
-70
-79
-77
-83
-78
-61
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-111
-94
-57
-56
-64
-60
-43
-57
-62
-58
-69
-70
-48
-58
-59
-56
-64
-60
-100
-89
-56
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-137
-127
-115
-255
-215
-190
-97
-98
-96
-62
-63
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-137
-110
-49
-62
-63
-61
-51
-62
-63
-120
-114
-108
-146
-135
-124
-137
-127
-115
-84
-85
-82
-43
-57
-62
-95
-87
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-100
-89
-56
-43
-57
-62
-194
-173
-157
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-118
-86
-65
-51
-62
-63
-43
-57
-62
-58
-69
-70
-41
-58
-57
-56
-64
-60
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-106
-82
-65
-63
-74
-74
-234
-204
-183
-255
-215
-190
-161
-144
-134
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-183
-110
-59
-76
-70
-64
-43
-57
-62
-55
-66
-67
-55
-66
-67
-48
-58
-59
-81
-73
-62
-183
-110
-59
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-163
-104
-61
-48
-58
-59
-161
-144
-134
-255
-215
-190
-234
-204
-183
-63
-74
-74
-95
-78
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-135
-94
-64
-62
-63
-61
-43
-57
-62
-58
-69
-70
-43
-57
-62
-51
-62
-63
-125
-90
-64
-225
-124
-48
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-227
-126
-50
-173
-106
-60
-95
-78
-64
-56
-64
-60
-51
-62
-63
-120
-114
-108
-70
-79
-77
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-163
-104
-61
-65
-67
-64
-41
-58
-57
-55
-66
-67
-51
-62
-63
-48
-58
-59
-106
-82
-65
-209
-117
-53
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-249
-146
-83
-248
-138
-64
-247
-130
-53
-247
-130
-60
-250
-139
-73
-246
-156
-93
-250
-176
-132
-186
-157
-134
-41
-58
-57
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-199
-115
-54
-89
-75
-66
-48
-58
-59
-51
-62
-63
-55
-66
-67
-43
-57
-62
-76
-70
-64
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-137
-127
-115
-234
-204
-183
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-199
-115
-54
-125
-90
-64
-69
-69
-61
-41
-58
-57
-97
-98
-96
-146
-135
-124
-51
-62
-63
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-214
-121
-50
-106
-82
-65
-48
-58
-59
-51
-62
-63
-55
-66
-67
-41
-58
-57
-65
-67
-64
-163
-104
-61
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-197
-158
-251
-168
-115
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-252
-185
-144
-154
-133
-118
-24
-22
-23
-108
-87
-46
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-71
-60
-43
-85
-71
-43
-171
-129
-45
-160
-120
-43
-216
-194
-154
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-237
-233
-225
-65
-58
-56
-62
-63
-61
-219
-212
-208
-253
-255
-252
-237
-233
-225
-120
-114
-108
-35
-31
-30
-55
-48
-48
-227
-196
-175
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-51
-62
-63
-84
-85
-82
-187
-166
-150
-227
-196
-175
-227
-196
-175
-161
-144
-134
-51
-62
-63
-69
-69
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-91
-92
-89
-217
-187
-166
-55
-66
-67
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-58
-69
-70
-187
-166
-150
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-161
-144
-134
-43
-57
-62
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-75
-74
-61
-84
-85
-82
-234
-204
-183
-76
-78
-76
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-62
-63
-61
-63
-74
-74
-176
-156
-141
-227
-196
-175
-227
-196
-175
-176
-156
-141
-70
-79
-77
-62
-63
-61
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-172
-150
-134
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-105
-93
-60
-43
-57
-62
-120
-114
-108
-207
-178
-158
-227
-196
-175
-217
-187
-166
-120
-114
-108
-41
-58
-57
-95
-87
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-146
-135
-124
-207
-178
-158
-48
-58
-59
-111
-94
-57
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-62
-63
-61
-70
-79
-77
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-238
-205
-179
-137
-127
-115
-43
-57
-62
-117
-98
-55
-168
-127
-42
-158
-125
-46
-168
-127
-42
-152
-119
-47
-62
-63
-61
-109
-106
-99
-255
-215
-190
-161
-144
-134
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-106
-82
-65
-41
-58
-57
-137
-127
-115
-217
-187
-166
-227
-196
-175
-207
-178
-158
-109
-106
-99
-41
-58
-57
-146
-97
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-176
-156
-141
-245
-212
-186
-70
-79
-77
-95
-78
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-188
-112
-56
-56
-64
-60
-70
-79
-77
-176
-156
-141
-227
-196
-175
-227
-196
-175
-176
-156
-141
-63
-74
-74
-62
-63
-61
-194
-112
-58
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-77
-85
-81
-245
-212
-186
-172
-150
-134
-48
-58
-59
-173
-106
-60
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-135
-94
-64
-35
-56
-60
-120
-114
-108
-207
-178
-158
-227
-196
-175
-217
-187
-166
-133
-120
-107
-35
-56
-60
-118
-86
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-95
-78
-64
-48
-58
-59
-70
-79
-77
-146
-135
-124
-217
-187
-166
-207
-178
-158
-51
-62
-63
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-163
-104
-61
-48
-58
-59
-91
-92
-89
-194
-173
-157
-227
-196
-175
-217
-187
-166
-146
-135
-124
-43
-57
-62
-89
-75
-66
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-247
-165
-111
-247
-150
-84
-248
-138
-64
-247
-130
-60
-248
-138
-64
-249
-146
-83
-247
-165
-111
-239
-182
-144
-91
-92
-89
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-76
-70
-64
-55
-66
-67
-172
-150
-134
-227
-196
-175
-227
-196
-175
-187
-166
-150
-77
-85
-81
-51
-62
-63
-173
-106
-60
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-118
-86
-65
-58
-69
-70
-217
-187
-166
-70
-79
-77
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-225
-124
-48
-125
-90
-64
-56
-64
-60
-55
-66
-67
-120
-114
-108
-187
-166
-150
-245
-212
-186
-120
-114
-108
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-225
-124
-48
-95
-78
-64
-43
-57
-62
-146
-135
-124
-217
-187
-166
-227
-196
-175
-194
-173
-157
-91
-92
-89
-48
-58
-59
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-197
-158
-249
-174
-124
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-249
-146
-83
-251
-168
-115
-239
-182
-144
-65
-58
-56
-59
-50
-39
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-108
-87
-46
-47
-40
-38
-152
-119
-47
-170
-137
-67
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-174
-168
-167
-24
-22
-23
-109
-106
-99
-152
-147
-147
-97
-98
-96
-47
-40
-38
-24
-22
-23
-35
-31
-30
-35
-31
-30
-176
-156
-141
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-76
-78
-76
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-187
-166
-150
-51
-62
-63
-95
-87
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-55
-66
-67
-109
-106
-99
-48
-58
-59
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-117
-98
-55
-48
-58
-59
-187
-166
-150
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-171
-129
-45
-117
-98
-55
-55
-66
-67
-137
-127
-115
-55
-66
-67
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-55
-66
-67
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-58
-69
-70
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-91
-92
-89
-109
-106
-99
-69
-69
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-120
-114
-108
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-146
-135
-124
-146
-135
-124
-62
-63
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-100
-89
-56
-51
-62
-63
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-109
-106
-99
-63
-69
-60
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-100
-89
-56
-51
-62
-63
-227
-196
-175
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-155
-100
-63
-41
-58
-57
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-109
-106
-99
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-224
-123
-55
-76
-70
-64
-109
-106
-99
-194
-173
-157
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-225
-124
-48
-89
-75
-66
-63
-74
-74
-217
-187
-166
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-58
-69
-70
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-155
-100
-63
-43
-57
-62
-207
-178
-158
-109
-106
-99
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-51
-62
-63
-120
-114
-108
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-188
-112
-56
-62
-63
-61
-58
-69
-70
-161
-144
-134
-234
-204
-183
-255
-215
-190
-255
-215
-190
-137
-127
-115
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-212
-120
-56
-69
-69
-61
-77
-85
-81
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-176
-156
-141
-35
-56
-60
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-251
-168
-115
-247
-150
-84
-250
-139
-73
-248
-138
-64
-250
-139
-73
-249
-152
-92
-249
-174
-124
-209
-171
-139
-43
-57
-62
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-112
-85
-63
-51
-62
-63
-194
-173
-157
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-227
-196
-175
-70
-79
-77
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-146
-135
-124
-77
-85
-81
-135
-94
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-214
-121
-50
-95
-78
-64
-35
-56
-60
-120
-114
-108
-217
-187
-166
-255
-215
-190
-255
-215
-190
-227
-196
-175
-58
-69
-70
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-41
-58
-57
-172
-150
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-77
-85
-81
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-51
-62
-63
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-178
-146
-122
-24
-22
-23
-101
-83
-47
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-47
-40
-38
-123
-102
-54
-209
-171
-139
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-164
-158
-157
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-35
-31
-30
-35
-31
-30
-47
-40
-38
-194
-173
-157
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-176
-156
-141
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-120
-114
-108
-56
-64
-60
-152
-119
-47
-161
-127
-40
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-48
-58
-59
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-63
-74
-74
-194
-173
-157
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-172
-150
-134
-48
-58
-59
-111
-94
-57
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-56
-64
-60
-51
-62
-63
-56
-64
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-146
-135
-124
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-146
-135
-124
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-70
-79
-77
-63
-74
-74
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-95
-87
-59
-55
-66
-67
-227
-196
-175
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-234
-204
-183
-70
-79
-77
-88
-82
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-97
-98
-96
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-84
-85
-82
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-207
-178
-158
-217
-187
-166
-146
-135
-124
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-129
-106
-52
-51
-62
-63
-187
-166
-150
-176
-156
-141
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-89
-75
-66
-70
-79
-77
-245
-212
-186
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-217
-187
-166
-43
-57
-62
-125
-90
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-106
-82
-65
-77
-85
-81
-133
-120
-107
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-161
-144
-134
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-146
-135
-124
-48
-58
-59
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-133
-120
-107
-77
-85
-81
-118
-86
-65
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-125
-90
-64
-55
-66
-67
-227
-196
-175
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-234
-204
-183
-63
-74
-74
-106
-82
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-224
-123
-55
-89
-75
-66
-63
-74
-74
-217
-187
-166
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-91
-92
-89
-95
-78
-64
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-146
-97
-64
-43
-57
-62
-187
-166
-150
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-101
-100
-92
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-251
-168
-115
-247
-150
-84
-250
-139
-73
-250
-139
-73
-247
-143
-74
-249
-159
-103
-250
-176
-132
-154
-133
-118
-51
-62
-63
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-133
-120
-107
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-176
-156
-141
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-91
-92
-89
-70
-79
-77
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-146
-97
-64
-35
-56
-60
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-194
-173
-157
-48
-58
-59
-163
-104
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-97
-98
-96
-255
-215
-190
-255
-215
-190
-255
-215
-190
-253
-212
-188
-255
-215
-190
-255
-215
-190
-187
-166
-150
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-159
-103
-248
-180
-134
-124
-111
-99
-35
-31
-30
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-59
-50
-39
-85
-71
-43
-216
-194
-154
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-207
-202
-200
-47
-40
-38
-24
-22
-23
-35
-31
-30
-35
-31
-30
-35
-31
-30
-35
-31
-30
-24
-22
-23
-65
-58
-56
-238
-205
-179
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-100
-89
-56
-63
-74
-74
-227
-196
-175
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-251
-209
-178
-255
-215
-190
-194
-173
-157
-48
-58
-59
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-43
-57
-62
-95
-87
-59
-168
-127
-42
-158
-125
-46
-161
-127
-40
-158
-125
-46
-63
-69
-60
-43
-57
-62
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-43
-57
-62
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-43
-57
-62
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-51
-62
-63
-217
-187
-166
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-217
-187
-166
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-48
-58
-59
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-109
-106
-99
-255
-215
-190
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-212
-188
-255
-215
-190
-120
-114
-108
-63
-69
-60
-158
-125
-46
-161
-127
-40
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-120
-114
-108
-70
-79
-77
-105
-93
-60
-171
-129
-45
-158
-125
-46
-168
-127
-42
-152
-119
-47
-56
-64
-60
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-51
-62
-63
-43
-57
-62
-111
-94
-57
-171
-129
-45
-158
-125
-46
-161
-127
-40
-152
-119
-47
-62
-63
-61
-146
-135
-124
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-146
-135
-124
-255
-215
-190
-253
-212
-188
-250
-200
-166
-250
-200
-166
-253
-204
-176
-253
-212
-188
-253
-212
-188
-97
-98
-96
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-51
-62
-63
-63
-74
-74
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-135
-94
-64
-55
-66
-67
-217
-187
-166
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-217
-187
-166
-51
-62
-63
-139
-96
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-225
-124
-48
-81
-73
-62
-58
-69
-70
-51
-62
-63
-146
-97
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-224
-123
-55
-81
-73
-62
-109
-106
-99
-255
-215
-190
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-212
-188
-255
-215
-190
-120
-114
-108
-69
-69
-61
-212
-120
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-234
-125
-52
-224
-123
-55
-227
-126
-50
-194
-112
-58
-51
-62
-63
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-70
-79
-77
-118
-86
-65
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-106
-82
-65
-77
-85
-81
-245
-212
-186
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-251
-209
-178
-255
-215
-190
-176
-156
-141
-56
-64
-60
-188
-112
-56
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-251
-168
-115
-249
-152
-92
-247
-143
-74
-247
-143
-74
-247
-150
-84
-249
-159
-103
-248
-180
-134
-120
-114
-108
-69
-69
-61
-212
-120
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-155
-100
-63
-43
-57
-62
-194
-173
-157
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-234
-204
-183
-63
-74
-74
-112
-85
-63
-234
-125
-52
-227
-126
-50
-224
-123
-55
-234
-125
-52
-106
-82
-65
-58
-69
-70
-55
-66
-67
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-77
-85
-81
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-172
-150
-134
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-245
-212
-186
-63
-74
-74
-112
-85
-63
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-252
-185
-144
-82
-69
-65
-47
-40
-38
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-85
-71
-43
-59
-50
-39
-216
-194
-154
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-164
-158
-157
-47
-40
-38
-24
-22
-23
-24
-22
-23
-24
-22
-23
-35
-31
-30
-65
-67
-64
-65
-58
-56
-227
-196
-175
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-255
-215
-190
-251
-209
-178
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-227
-196
-175
-58
-69
-70
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-41
-58
-57
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-137
-110
-49
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-41
-58
-57
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-95
-87
-59
-70
-79
-77
-245
-212
-186
-253
-212
-188
-250
-200
-166
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-238
-205
-179
-70
-79
-77
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-48
-58
-59
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-152
-119
-47
-56
-64
-60
-146
-135
-124
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-253
-204
-176
-255
-215
-190
-172
-150
-134
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-97
-98
-96
-55
-66
-67
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-123
-102
-54
-117
-98
-55
-145
-114
-49
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-137
-127
-115
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-187
-166
-150
-255
-215
-190
-253
-204
-176
-251
-192
-154
-251
-192
-154
-250
-197
-158
-253
-204
-176
-255
-215
-190
-137
-127
-115
-65
-67
-64
-209
-117
-53
-227
-126
-50
-224
-123
-55
-234
-125
-52
-163
-104
-61
-43
-57
-62
-41
-58
-57
-106
-82
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-106
-82
-65
-77
-85
-81
-245
-212
-186
-251
-209
-178
-250
-197
-158
-249
-189
-146
-251
-192
-154
-250
-197
-158
-251
-209
-178
-238
-205
-179
-77
-85
-81
-112
-85
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-106
-82
-65
-41
-58
-57
-48
-58
-59
-163
-104
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-62
-63
-61
-146
-135
-124
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-253
-204
-176
-255
-215
-190
-176
-156
-141
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-234
-125
-52
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-176
-156
-141
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-227
-196
-175
-58
-69
-70
-139
-96
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-120
-114
-108
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-255
-215
-190
-207
-178
-158
-48
-58
-59
-163
-104
-61
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-192
-154
-249
-174
-124
-246
-156
-93
-247
-150
-84
-249
-146
-83
-249
-152
-92
-251
-168
-115
-249
-189
-146
-97
-98
-96
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-58
-69
-70
-227
-196
-175
-253
-212
-188
-250
-200
-166
-251
-192
-154
-249
-189
-146
-250
-197
-158
-251
-209
-178
-255
-215
-190
-97
-98
-96
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-43
-57
-62
-43
-57
-62
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-69
-69
-61
-212
-120
-56
-227
-126
-50
-224
-123
-55
-234
-126
-45
-155
-100
-63
-43
-57
-62
-207
-178
-158
-255
-215
-190
-250
-200
-166
-251
-192
-154
-251
-192
-154
-250
-197
-158
-251
-209
-178
-255
-215
-190
-109
-106
-99
-89
-75
-66
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-143
-74
-249
-159
-103
-252
-185
-144
-55
-48
-48
-59
-50
-39
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-101
-83
-47
-59
-50
-39
-209
-171
-139
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-137
-127
-115
-101
-100
-92
-120
-114
-108
-186
-181
-179
-152
-147
-147
-55
-48
-48
-227
-196
-175
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-249
-189
-146
-250
-197
-158
-251
-209
-178
-234
-204
-183
-70
-79
-77
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-75
-74
-61
-41
-58
-57
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-75
-74
-61
-41
-58
-57
-88
-82
-59
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-88
-82
-59
-77
-85
-81
-245
-212
-186
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-197
-158
-251
-209
-178
-245
-212
-186
-84
-85
-82
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-43
-57
-62
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-161
-144
-134
-255
-215
-190
-250
-200
-166
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-187
-166
-150
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-65
-67
-64
-91
-92
-89
-55
-66
-67
-129
-106
-52
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-158
-125
-46
-63
-69
-60
-137
-127
-115
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-173
-106
-60
-48
-58
-59
-187
-166
-150
-255
-215
-190
-250
-200
-166
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-41
-58
-57
-118
-86
-65
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-95
-78
-64
-91
-92
-89
-255
-215
-190
-253
-204
-176
-251
-192
-154
-252
-185
-144
-252
-185
-144
-251
-192
-154
-253
-204
-176
-245
-212
-186
-91
-92
-89
-106
-82
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-41
-58
-57
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-227
-126
-50
-199
-115
-54
-56
-64
-60
-161
-144
-134
-255
-215
-190
-250
-200
-166
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-187
-166
-150
-48
-58
-59
-183
-110
-59
-234
-125
-52
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-255
-215
-190
-253
-212
-188
-251
-209
-178
-253
-212
-188
-217
-187
-166
-55
-66
-67
-146
-97
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-214
-121
-50
-69
-69
-61
-137
-127
-115
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-249
-189
-146
-250
-200
-166
-253
-212
-188
-217
-187
-166
-51
-62
-63
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-250
-197
-158
-249
-174
-124
-249
-159
-103
-249
-152
-92
-249
-152
-92
-249
-159
-103
-249
-174
-124
-250
-197
-158
-91
-92
-89
-95
-78
-64
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-125
-90
-64
-70
-79
-77
-234
-204
-183
-251
-209
-178
-250
-197
-158
-249
-189
-146
-252
-185
-144
-251
-192
-154
-253
-204
-176
-255
-215
-190
-120
-114
-108
-81
-73
-62
-224
-123
-55
-227
-126
-50
-224
-123
-55
-234
-126
-45
-135
-94
-64
-41
-58
-57
-41
-58
-57
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-253
-212
-188
-253
-212
-188
-251
-209
-178
-251
-209
-178
-255
-215
-190
-137
-127
-115
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-146
-97
-64
-51
-62
-63
-227
-196
-175
-253
-212
-188
-250
-197
-158
-249
-189
-146
-249
-189
-146
-251
-192
-154
-253
-204
-176
-255
-215
-190
-120
-114
-108
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-51
-62
-63
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-252
-185
-144
-55
-48
-48
-59
-50
-39
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-154
-125
-71
-170
-137
-67
-108
-87
-46
-59
-50
-39
-192
-155
-91
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-186
-181
-179
-47
-40
-38
-65
-58
-56
-245
-212
-186
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-253
-212
-188
-251
-209
-178
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-234
-204
-183
-63
-74
-74
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-75
-74
-61
-41
-58
-57
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-111
-94
-57
-56
-64
-60
-43
-57
-62
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-95
-87
-59
-70
-79
-77
-245
-212
-186
-251
-209
-178
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-197
-158
-251
-209
-178
-245
-212
-186
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-43
-57
-62
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-152
-119
-47
-56
-64
-60
-161
-144
-134
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-176
-156
-141
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-91
-92
-89
-55
-66
-67
-123
-102
-54
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-145
-114
-49
-100
-89
-56
-48
-58
-59
-187
-166
-150
-176
-156
-141
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-255
-215
-190
-250
-200
-166
-251
-192
-154
-251
-192
-154
-250
-197
-158
-253
-204
-176
-255
-215
-190
-146
-135
-124
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-234
-125
-52
-163
-104
-61
-48
-58
-59
-41
-58
-57
-112
-85
-63
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-106
-82
-65
-84
-85
-82
-255
-215
-190
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-197
-158
-251
-209
-178
-238
-205
-179
-84
-85
-82
-106
-82
-65
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-106
-82
-65
-41
-58
-57
-48
-58
-59
-173
-106
-60
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-146
-135
-124
-255
-215
-190
-253
-204
-176
-251
-192
-154
-249
-189
-146
-251
-192
-154
-250
-200
-166
-255
-215
-190
-176
-156
-141
-51
-62
-63
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-253
-212
-188
-253
-204
-176
-250
-200
-166
-253
-204
-176
-217
-187
-166
-55
-66
-67
-146
-97
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-120
-114
-108
-255
-215
-190
-253
-204
-176
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-200
-166
-253
-212
-188
-207
-178
-158
-48
-58
-59
-163
-104
-61
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-250
-200
-166
-248
-180
-134
-251
-168
-115
-247
-165
-111
-247
-165
-111
-251
-168
-115
-248
-180
-134
-250
-200
-166
-91
-92
-89
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-234
-126
-45
-125
-90
-64
-63
-74
-74
-227
-196
-175
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-197
-158
-253
-204
-176
-255
-215
-190
-109
-106
-99
-89
-75
-66
-225
-124
-48
-227
-126
-50
-224
-123
-55
-234
-125
-52
-125
-90
-64
-43
-57
-62
-41
-58
-57
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-251
-209
-178
-137
-127
-115
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-155
-100
-63
-43
-57
-62
-217
-187
-166
-253
-212
-188
-250
-200
-166
-251
-192
-154
-249
-189
-146
-250
-197
-158
-253
-204
-176
-255
-215
-190
-120
-114
-108
-81
-73
-62
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-250
-139
-73
-249
-159
-103
-248
-180
-134
-76
-70
-64
-47
-40
-38
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-170
-137
-67
-101
-83
-47
-59
-50
-39
-170
-137
-67
-255
-238
-227
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-152
-147
-147
-35
-31
-30
-24
-22
-23
-115
-102
-92
-255
-215
-190
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-105
-93
-60
-58
-69
-70
-227
-196
-175
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-207
-178
-158
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-43
-57
-62
-100
-89
-56
-171
-129
-45
-158
-125
-46
-161
-127
-40
-158
-125
-46
-75
-74
-61
-48
-58
-59
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-48
-58
-59
-101
-100
-92
-91
-92
-89
-75
-74
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-111
-94
-57
-55
-66
-67
-227
-196
-175
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-255
-215
-190
-227
-196
-175
-51
-62
-63
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-48
-58
-59
-48
-58
-59
-123
-102
-54
-168
-127
-42
-158
-125
-46
-161
-127
-40
-158
-125
-46
-69
-69
-61
-120
-114
-108
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-197
-158
-250
-200
-166
-251
-209
-178
-255
-215
-190
-146
-135
-124
-56
-64
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-109
-106
-99
-63
-74
-74
-111
-94
-57
-171
-129
-45
-158
-125
-46
-161
-127
-40
-152
-119
-47
-69
-69
-61
-51
-62
-63
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-56
-64
-60
-51
-62
-63
-48
-58
-59
-120
-114
-108
-245
-212
-186
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-62
-63
-61
-137
-127
-115
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-200
-166
-250
-200
-166
-253
-212
-188
-255
-215
-190
-109
-106
-99
-81
-73
-62
-224
-123
-55
-227
-126
-50
-224
-123
-55
-234
-125
-52
-155
-100
-63
-48
-58
-59
-43
-57
-62
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-125
-90
-64
-63
-74
-74
-227
-196
-175
-253
-212
-188
-250
-200
-166
-250
-197
-158
-250
-197
-158
-253
-204
-176
-255
-215
-190
-227
-196
-175
-55
-66
-67
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-89
-75
-66
-48
-58
-59
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-120
-114
-108
-255
-215
-190
-251
-209
-178
-250
-200
-166
-250
-197
-158
-250
-200
-166
-251
-209
-178
-255
-215
-190
-137
-127
-115
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-48
-58
-59
-176
-156
-141
-251
-209
-178
-250
-200
-166
-250
-197
-158
-250
-200
-166
-227
-196
-175
-63
-74
-74
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-91
-92
-89
-253
-212
-188
-253
-212
-188
-250
-200
-166
-250
-200
-166
-250
-200
-166
-251
-209
-178
-255
-215
-190
-172
-150
-134
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-251
-209
-178
-251
-192
-154
-250
-176
-132
-249
-174
-124
-249
-174
-124
-248
-180
-134
-251
-192
-154
-251
-209
-178
-109
-106
-99
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-146
-97
-64
-43
-57
-62
-217
-187
-166
-255
-215
-190
-253
-204
-176
-250
-197
-158
-250
-197
-158
-250
-200
-166
-253
-212
-188
-245
-212
-186
-70
-79
-77
-106
-82
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-51
-62
-63
-51
-62
-63
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-245
-212
-186
-250
-200
-166
-251
-192
-154
-250
-197
-158
-253
-204
-176
-146
-135
-124
-65
-67
-64
-209
-117
-53
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-187
-166
-150
-255
-215
-190
-253
-204
-176
-250
-200
-166
-250
-197
-158
-250
-200
-166
-253
-212
-188
-255
-215
-190
-84
-85
-82
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-109
-10
-247
-111
-26
-247
-123
-41
-248
-138
-64
-249
-152
-92
-249
-174
-124
-121
-100
-85
-35
-31
-30
-108
-87
-46
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-171
-129
-45
-85
-71
-43
-71
-60
-43
-171
-129
-45
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-237
-233
-225
-174
-168
-167
-81
-77
-76
-24
-22
-23
-35
-31
-30
-35
-31
-30
-187
-166
-150
-255
-215
-190
-255
-215
-190
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-51
-62
-63
-176
-156
-141
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-146
-135
-124
-51
-62
-63
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-152
-119
-47
-56
-64
-60
-43
-57
-62
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-48
-58
-59
-146
-135
-124
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-172
-150
-134
-172
-150
-134
-146
-135
-124
-146
-135
-124
-194
-173
-157
-245
-212
-186
-137
-127
-115
-63
-69
-60
-158
-125
-46
-161
-127
-40
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-161
-144
-134
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-161
-144
-134
-48
-58
-59
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-55
-66
-67
-51
-62
-63
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-70
-79
-77
-245
-212
-186
-255
-215
-190
-253
-212
-188
-251
-209
-178
-253
-212
-188
-255
-215
-190
-255
-215
-190
-91
-92
-89
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-133
-120
-107
-84
-85
-82
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-75
-74
-61
-55
-66
-67
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-161
-144
-134
-172
-150
-134
-172
-150
-134
-137
-127
-115
-146
-135
-124
-207
-178
-158
-245
-212
-186
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-76
-78
-76
-245
-212
-186
-255
-215
-190
-253
-212
-188
-253
-212
-188
-253
-212
-188
-255
-215
-190
-227
-196
-175
-58
-69
-70
-118
-86
-65
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-125
-90
-64
-63
-74
-74
-97
-98
-96
-76
-70
-64
-214
-121
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-163
-104
-61
-48
-58
-59
-187
-166
-150
-255
-215
-190
-255
-215
-190
-251
-209
-178
-251
-209
-178
-255
-215
-190
-255
-215
-190
-176
-156
-141
-48
-58
-59
-173
-106
-60
-227
-126
-50
-224
-123
-55
-227
-126
-50
-212
-120
-56
-69
-69
-61
-101
-100
-92
-63
-74
-74
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-106
-82
-65
-63
-74
-74
-234
-204
-183
-255
-215
-190
-253
-212
-188
-253
-212
-188
-253
-212
-188
-255
-215
-190
-245
-212
-186
-70
-79
-77
-89
-75
-66
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-176
-156
-141
-253
-204
-176
-251
-192
-154
-251
-192
-154
-251
-192
-154
-250
-200
-166
-77
-85
-81
-106
-82
-65
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-135
-94
-64
-51
-62
-63
-217
-187
-166
-255
-215
-190
-255
-215
-190
-253
-212
-188
-253
-212
-188
-255
-215
-190
-255
-215
-190
-109
-106
-99
-76
-70
-64
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-250
-200
-166
-251
-192
-154
-252
-185
-144
-252
-185
-144
-251
-192
-154
-250
-200
-166
-255
-215
-190
-146
-135
-124
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-51
-62
-63
-146
-135
-124
-255
-215
-190
-255
-215
-190
-251
-209
-178
-251
-209
-178
-253
-212
-188
-255
-215
-190
-194
-173
-157
-43
-57
-62
-146
-97
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-77
-85
-81
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-251
-209
-178
-250
-197
-158
-249
-189
-146
-249
-189
-146
-250
-200
-166
-172
-150
-134
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-120
-114
-108
-255
-215
-190
-255
-215
-190
-253
-212
-188
-251
-209
-178
-253
-212
-188
-255
-215
-190
-217
-187
-166
-51
-62
-63
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-60
-247
-150
-84
-251
-168
-115
-187
-140
-108
-24
-22
-23
-59
-50
-39
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-154
-125
-71
-156
-125
-62
-158
-125
-46
-47
-40
-38
-108
-87
-46
-158
-125
-46
-195
-167
-113
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-164
-158
-157
-109
-106
-99
-65
-58
-56
-24
-22
-23
-24
-22
-23
-94
-60
-47
-178
-86
-46
-59
-50
-39
-150
-125
-114
-255
-215
-190
-255
-215
-190
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-69
-69
-61
-84
-85
-82
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-55
-66
-67
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-123
-102
-54
-51
-62
-63
-76
-78
-76
-56
-64
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-217
-187
-166
-133
-120
-107
-77
-85
-81
-77
-85
-81
-146
-135
-124
-245
-212
-186
-176
-156
-141
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-75
-74
-61
-63
-74
-74
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-76
-78
-76
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-77
-85
-81
-77
-85
-81
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-172
-150
-134
-48
-58
-59
-117
-98
-55
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-146
-135
-124
-120
-114
-108
-69
-69
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-111
-94
-57
-51
-62
-63
-176
-156
-141
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-194
-173
-157
-120
-114
-108
-70
-79
-77
-84
-85
-82
-161
-144
-134
-255
-215
-190
-255
-215
-190
-161
-144
-134
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-155
-100
-63
-41
-58
-57
-161
-144
-134
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-137
-127
-115
-48
-58
-59
-183
-110
-59
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-89
-75
-66
-97
-98
-96
-172
-150
-134
-48
-58
-59
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-214
-121
-50
-76
-70
-64
-84
-85
-82
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-77
-85
-81
-81
-73
-62
-224
-123
-55
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-176
-156
-141
-97
-98
-96
-95
-78
-64
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-161
-144
-134
-41
-58
-57
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-250
-200
-166
-249
-189
-146
-252
-185
-144
-249
-189
-146
-250
-200
-166
-120
-114
-108
-69
-69
-61
-214
-121
-50
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-101
-100
-92
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-187
-166
-150
-43
-57
-62
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-253
-212
-188
-253
-204
-176
-250
-200
-166
-250
-200
-166
-253
-204
-176
-253
-212
-188
-255
-215
-190
-187
-166
-150
-41
-58
-57
-155
-100
-63
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-95
-78
-64
-58
-69
-70
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-91
-92
-89
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-62
-63
-61
-133
-120
-107
-77
-85
-81
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-253
-204
-176
-251
-192
-154
-252
-185
-144
-252
-185
-144
-251
-192
-154
-212
-173
-150
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-118
-86
-65
-51
-62
-63
-207
-178
-158
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-109
-106
-99
-56
-64
-60
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-247
-111
-26
-246
-116
-28
-247
-130
-53
-247
-143
-74
-249
-159
-103
-248
-180
-134
-89
-75
-66
-24
-22
-23
-85
-71
-43
-171
-129
-45
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-154
-125
-71
-156
-125
-62
-175
-132
-40
-85
-71
-43
-47
-40
-38
-158
-125
-46
-158
-125
-46
-170
-137
-67
-237
-233
-225
-253
-255
-252
-253
-255
-252
-253
-255
-252
-207
-202
-200
-164
-158
-157
-146
-135
-124
-120
-114
-108
-89
-84
-82
-65
-58
-56
-47
-40
-38
-24
-22
-23
-24
-22
-23
-35
-31
-30
-94
-60
-47
-178
-86
-46
-226
-110
-35
-241
-100
-24
-144
-77
-47
-65
-58
-56
-253
-212
-188
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-129
-106
-52
-48
-58
-59
-101
-100
-92
-217
-187
-166
-245
-212
-186
-245
-212
-186
-194
-173
-157
-76
-78
-76
-56
-64
-60
-145
-114
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-171
-129
-45
-88
-82
-59
-77
-85
-81
-176
-156
-141
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-95
-87
-59
-41
-58
-57
-137
-127
-115
-227
-196
-175
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-207
-178
-158
-120
-114
-108
-48
-58
-59
-62
-63
-61
-100
-89
-56
-95
-87
-59
-51
-62
-63
-120
-114
-108
-227
-196
-175
-55
-66
-67
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-84
-85
-82
-207
-178
-158
-245
-212
-186
-245
-212
-186
-207
-178
-158
-97
-98
-96
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-91
-92
-89
-120
-114
-108
-63
-69
-60
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-43
-57
-62
-161
-144
-134
-227
-196
-175
-253
-212
-188
-234
-204
-183
-161
-144
-134
-51
-62
-63
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-146
-135
-124
-176
-156
-141
-48
-58
-59
-137
-110
-49
-171
-129
-45
-158
-125
-46
-161
-127
-40
-158
-125
-46
-75
-74
-61
-43
-57
-62
-161
-144
-134
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-194
-173
-157
-109
-106
-99
-43
-57
-62
-69
-69
-61
-105
-93
-60
-88
-82
-59
-48
-58
-59
-146
-135
-124
-255
-215
-190
-161
-144
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-225
-124
-48
-95
-78
-64
-43
-57
-62
-161
-144
-134
-234
-204
-183
-245
-212
-186
-227
-196
-175
-146
-135
-124
-35
-56
-60
-125
-90
-64
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-188
-112
-56
-51
-62
-63
-161
-144
-134
-234
-204
-183
-51
-62
-63
-125
-90
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-125
-52
-163
-104
-61
-43
-57
-62
-97
-98
-96
-207
-178
-158
-245
-212
-186
-245
-212
-186
-207
-178
-158
-91
-92
-89
-48
-58
-59
-173
-106
-60
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-118
-86
-65
-55
-66
-67
-234
-204
-183
-146
-135
-124
-56
-64
-60
-194
-112
-58
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-35
-56
-60
-146
-135
-124
-227
-196
-175
-253
-212
-188
-234
-204
-183
-161
-144
-134
-43
-57
-62
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-176
-156
-141
-250
-197
-158
-252
-185
-144
-248
-180
-134
-248
-180
-134
-251
-192
-154
-172
-150
-134
-48
-58
-59
-173
-106
-60
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-41
-58
-57
-120
-114
-108
-217
-187
-166
-245
-212
-186
-234
-204
-183
-176
-156
-141
-58
-69
-70
-81
-73
-62
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-255
-215
-190
-217
-187
-166
-133
-120
-107
-84
-85
-82
-91
-92
-89
-146
-135
-124
-234
-204
-183
-238
-205
-179
-63
-74
-74
-95
-78
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-84
-85
-82
-194
-173
-157
-245
-212
-186
-245
-212
-186
-217
-187
-166
-109
-106
-99
-41
-58
-57
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-146
-97
-64
-51
-62
-63
-187
-166
-150
-76
-78
-76
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-97
-98
-96
-250
-200
-166
-249
-189
-146
-248
-180
-134
-248
-180
-134
-252
-185
-144
-232
-190
-161
-70
-79
-77
-112
-85
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-199
-115
-54
-65
-67
-64
-70
-79
-77
-187
-166
-150
-238
-205
-179
-245
-212
-186
-217
-187
-166
-133
-120
-107
-35
-56
-60
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-123
-41
-247
-130
-60
-247
-150
-84
-251
-168
-115
-203
-161
-131
-55
-48
-48
-24
-22
-23
-71
-60
-43
-145
-114
-49
-171
-129
-45
-171
-129
-45
-158
-125
-46
-156
-125
-62
-154
-125
-71
-154
-125
-71
-156
-125
-62
-156
-125
-62
-171
-129
-45
-171
-129
-45
-101
-83
-47
-35
-31
-30
-123
-102
-54
-171
-129
-45
-158
-125
-46
-160
-120
-43
-224
-207
-180
-253
-255
-252
-253
-255
-252
-219
-212
-208
-47
-40
-38
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-24
-22
-23
-35
-31
-30
-35
-31
-30
-24
-22
-23
-47
-40
-38
-226
-110
-35
-241
-100
-24
-226
-110
-35
-226
-110
-35
-144
-77
-47
-55
-48
-48
-238
-205
-179
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-123
-102
-54
-56
-64
-60
-51
-62
-63
-84
-85
-82
-84
-85
-82
-48
-58
-59
-63
-69
-60
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-245
-212
-186
-84
-85
-82
-69
-69
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-158
-125
-46
-95
-87
-59
-48
-58
-59
-63
-74
-74
-109
-106
-99
-133
-120
-107
-133
-120
-107
-91
-92
-89
-51
-62
-63
-56
-64
-60
-100
-89
-56
-152
-119
-47
-171
-129
-45
-175
-132
-40
-100
-89
-56
-48
-58
-59
-217
-187
-166
-120
-114
-108
-63
-69
-60
-152
-119
-47
-161
-127
-40
-158
-125
-46
-158
-125
-46
-168
-127
-42
-129
-106
-52
-61
-67
-58
-51
-62
-63
-84
-85
-82
-84
-85
-82
-51
-62
-63
-56
-64
-60
-123
-102
-54
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-97
-98
-96
-187
-166
-150
-48
-58
-59
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-83
-78
-61
-48
-58
-59
-63
-74
-74
-91
-92
-89
-70
-79
-77
-48
-58
-59
-75
-74
-61
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-146
-135
-124
-234
-204
-183
-63
-74
-74
-83
-78
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-83
-78
-61
-48
-58
-59
-70
-79
-77
-109
-106
-99
-133
-120
-107
-120
-114
-108
-84
-85
-82
-48
-58
-59
-61
-67
-58
-111
-94
-57
-158
-125
-46
-171
-129
-45
-171
-129
-45
-88
-82
-59
-58
-69
-70
-238
-205
-179
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-212
-120
-56
-95
-78
-64
-43
-57
-62
-70
-79
-77
-84
-85
-82
-63
-74
-74
-48
-58
-59
-118
-86
-65
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-112
-85
-63
-55
-66
-67
-227
-196
-175
-255
-215
-190
-120
-114
-108
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-155
-100
-63
-62
-63
-61
-51
-62
-63
-77
-85
-81
-77
-85
-81
-51
-62
-63
-62
-63
-61
-155
-100
-63
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-199
-115
-54
-56
-64
-60
-120
-114
-108
-255
-215
-190
-217
-187
-166
-43
-57
-62
-125
-90
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-106
-82
-65
-48
-58
-59
-63
-74
-74
-84
-85
-82
-70
-79
-77
-43
-57
-62
-95
-78
-64
-212
-120
-56
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-172
-150
-134
-251
-192
-154
-248
-180
-134
-249
-174
-124
-249
-174
-124
-248
-180
-134
-236
-186
-153
-63
-74
-74
-95
-78
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-135
-94
-64
-51
-62
-63
-55
-66
-67
-84
-85
-82
-70
-79
-77
-41
-58
-57
-81
-73
-62
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-255
-215
-190
-194
-173
-157
-58
-69
-70
-62
-63
-61
-106
-82
-65
-95
-78
-64
-51
-62
-63
-91
-92
-89
-238
-205
-179
-161
-144
-134
-48
-58
-59
-183
-110
-59
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-125
-52
-173
-106
-60
-65
-67
-64
-48
-58
-59
-77
-85
-81
-84
-85
-82
-55
-66
-67
-56
-64
-60
-146
-97
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-69
-69
-61
-101
-100
-92
-227
-196
-175
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-250
-197
-158
-252
-185
-144
-249
-174
-124
-249
-174
-124
-250
-176
-132
-251
-192
-154
-120
-114
-108
-62
-63
-61
-209
-117
-53
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-188
-112
-56
-76
-70
-64
-41
-58
-57
-77
-85
-81
-84
-85
-82
-58
-69
-70
-48
-58
-59
-125
-90
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-243
-101
-2
-247
-103
-7
-247
-103
-7
-247
-111
-26
-247
-118
-39
-247
-130
-53
-250
-139
-73
-246
-156
-93
-249
-174
-124
-203
-161
-131
-55
-48
-48
-24
-22
-23
-35
-31
-30
-85
-71
-43
-137
-110
-49
-152
-119
-47
-168
-127
-42
-171
-129
-45
-171
-129
-45
-168
-127
-42
-152
-119
-47
-117
-98
-55
-59
-50
-39
-35
-31
-30
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-224
-207
-180
-253
-255
-252
-253
-255
-252
-253
-255
-252
-146
-135
-124
-65
-58
-56
-35
-31
-30
-24
-22
-23
-24
-22
-23
-35
-31
-30
-35
-31
-30
-35
-31
-30
-35
-31
-30
-24
-22
-23
-83
-53
-42
-236
-108
-29
-236
-108
-29
-226
-110
-35
-94
-60
-47
-65
-58
-56
-253
-212
-188
-255
-215
-190
-238
-205
-179
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-145
-114
-49
-105
-93
-60
-83
-78
-61
-83
-78
-61
-111
-94
-57
-158
-125
-46
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-88
-82
-59
-51
-62
-63
-217
-187
-166
-255
-215
-190
-176
-156
-141
-43
-57
-62
-105
-93
-60
-171
-129
-45
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-137
-110
-49
-88
-82
-59
-69
-69
-61
-62
-63
-61
-63
-69
-60
-75
-74
-61
-105
-93
-60
-152
-119
-47
-171
-129
-45
-168
-127
-42
-158
-125
-46
-171
-129
-45
-129
-106
-52
-48
-58
-59
-194
-173
-157
-207
-178
-158
-43
-57
-62
-100
-89
-56
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-152
-119
-47
-111
-94
-57
-83
-78
-61
-83
-78
-61
-105
-93
-60
-145
-114
-49
-168
-127
-42
-161
-127
-40
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-245
-212
-186
-77
-85
-81
-75
-74
-61
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-129
-106
-52
-95
-87
-59
-81
-73
-62
-95
-87
-59
-123
-102
-54
-168
-127
-42
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-56
-64
-60
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-161
-144
-134
-48
-58
-59
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-129
-106
-52
-88
-82
-59
-69
-69
-61
-62
-63
-61
-63
-69
-60
-75
-74
-61
-117
-98
-55
-152
-119
-47
-171
-129
-45
-161
-127
-40
-158
-125
-46
-171
-129
-45
-111
-94
-57
-48
-58
-59
-227
-196
-175
-176
-156
-141
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-227
-126
-50
-163
-104
-61
-112
-85
-63
-95
-78
-64
-118
-86
-65
-173
-106
-60
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-183
-110
-59
-51
-62
-63
-133
-120
-107
-255
-215
-190
-255
-215
-190
-217
-187
-166
-51
-62
-63
-106
-82
-65
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-199
-115
-54
-135
-94
-64
-95
-78
-64
-95
-78
-64
-135
-94
-64
-199
-115
-54
-234
-125
-52
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-106
-82
-65
-51
-62
-63
-217
-187
-166
-255
-215
-190
-255
-215
-190
-120
-114
-108
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-173
-106
-60
-118
-86
-65
-95
-78
-64
-112
-85
-63
-163
-104
-61
-227
-126
-50
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-101
-100
-92
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-172
-150
-134
-252
-185
-144
-249
-174
-124
-247
-165
-111
-247
-165
-111
-249
-174
-124
-252
-185
-144
-154
-133
-118
-48
-58
-59
-163
-104
-61
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-188
-112
-56
-125
-90
-64
-95
-78
-64
-106
-82
-65
-155
-100
-63
-224
-123
-55
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-137
-127
-115
-253
-212
-188
-91
-92
-89
-69
-69
-61
-194
-112
-58
-234
-126
-45
-234
-126
-45
-163
-104
-61
-51
-62
-63
-137
-127
-115
-238
-205
-179
-63
-74
-74
-89
-75
-66
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-209
-117
-53
-146
-97
-64
-106
-82
-65
-95
-78
-64
-125
-90
-64
-194
-112
-58
-234
-126
-45
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-125
-90
-64
-41
-58
-57
-194
-173
-157
-238
-205
-179
-63
-74
-74
-135
-94
-64
-234
-125
-52
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-251
-192
-154
-250
-176
-132
-251
-168
-115
-247
-165
-111
-249
-174
-124
-245
-179
-138
-195
-157
-134
-41
-58
-57
-135
-94
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-146
-97
-64
-106
-82
-65
-95
-78
-64
-125
-90
-64
-183
-110
-59
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-125
-52
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-249
-152
-92
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-247
-103
-7
-246
-109
-10
-247
-111
-26
-247
-118
-39
-247
-130
-53
-247
-143
-74
-249
-159
-103
-250
-176
-132
-219
-170
-138
-115
-102
-92
-47
-40
-38
-24
-22
-23
-35
-31
-30
-47
-40
-38
-59
-50
-39
-59
-50
-39
-59
-50
-39
-59
-50
-39
-47
-40
-38
-47
-40
-38
-71
-60
-43
-137
-110
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-152
-119
-47
-170
-137
-67
-219
-212
-208
-237
-233
-225
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-219
-212
-208
-152
-147
-147
-109
-106
-99
-65
-67
-64
-35
-31
-30
-35
-31
-30
-35
-31
-30
-35
-31
-30
-24
-22
-23
-94
-60
-47
-178
-86
-46
-109
-63
-45
-35
-31
-30
-124
-111
-99
-251
-209
-178
-251
-209
-178
-234
-204
-183
-76
-78
-76
-95
-87
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-117
-98
-55
-129
-106
-52
-168
-127
-42
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-171
-129
-45
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-117
-98
-55
-48
-58
-59
-146
-135
-124
-255
-215
-190
-255
-215
-190
-255
-215
-190
-120
-114
-108
-51
-62
-63
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-152
-119
-47
-152
-119
-47
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-158
-125
-46
-81
-73
-62
-58
-69
-70
-227
-196
-175
-255
-215
-190
-120
-114
-108
-48
-58
-59
-129
-106
-52
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-152
-119
-47
-117
-98
-55
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-88
-82
-59
-84
-85
-82
-255
-215
-190
-176
-156
-141
-48
-58
-59
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-145
-114
-49
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-117
-98
-55
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-63
-69
-60
-137
-127
-115
-255
-215
-190
-238
-205
-179
-91
-92
-89
-56
-64
-60
-137
-110
-49
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-152
-119
-47
-158
-125
-46
-168
-127
-42
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-152
-119
-47
-69
-69
-61
-84
-85
-82
-245
-212
-186
-172
-150
-134
-62
-63
-61
-199
-115
-54
-227
-126
-50
-224
-123
-55
-227
-126
-50
-199
-115
-54
-125
-90
-64
-227
-126
-50
-227
-126
-50
-227
-126
-50
-234
-125
-52
-227
-126
-50
-234
-125
-52
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-214
-121
-50
-81
-73
-62
-63
-74
-74
-227
-196
-175
-255
-215
-190
-253
-212
-188
-255
-215
-190
-146
-135
-124
-48
-58
-59
-146
-97
-64
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-139
-96
-61
-48
-58
-59
-146
-135
-124
-255
-215
-190
-253
-212
-188
-255
-215
-190
-217
-187
-166
-55
-66
-67
-95
-78
-64
-225
-124
-48
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-163
-104
-61
-183
-110
-59
-227
-126
-50
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-97
-98
-96
-56
-64
-60
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-183
-110
-59
-51
-62
-63
-167
-142
-123
-248
-180
-134
-247
-165
-111
-249
-159
-103
-246
-156
-93
-249
-159
-103
-249
-174
-124
-239
-182
-144
-77
-85
-81
-65
-67
-64
-199
-115
-54
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-135
-94
-64
-188
-112
-56
-227
-126
-50
-224
-123
-55
-227
-126
-50
-209
-117
-53
-65
-67
-64
-146
-135
-124
-227
-196
-175
-43
-57
-62
-146
-97
-64
-234
-126
-45
-224
-123
-55
-224
-123
-55
-234
-126
-45
-106
-82
-65
-70
-79
-77
-253
-212
-188
-176
-156
-141
-41
-58
-57
-125
-90
-64
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-125
-52
-227
-126
-50
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-155
-100
-63
-48
-58
-59
-120
-114
-108
-253
-212
-188
-234
-204
-183
-63
-74
-74
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-252
-185
-144
-245
-169
-119
-249
-159
-103
-249
-159
-103
-247
-165
-111
-249
-174
-124
-251
-192
-154
-109
-106
-99
-62
-63
-61
-188
-112
-56
-234
-125
-52
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-234
-125
-52
-227
-126
-50
-234
-125
-52
-227
-126
-50
-227
-126
-50
-212
-120
-56
-199
-115
-54
-224
-123
-55
-224
-123
-55
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-200
-166
-249
-174
-124
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-243
-101
-2
-243
-101
-2
-247
-103
-7
-247
-111
-26
-247
-111
-26
-247
-123
-41
-247
-130
-60
-243
-141
-78
-249
-159
-103
-250
-176
-132
-251
-192
-154
-207
-178
-158
-154
-133
-118
-82
-69
-65
-24
-22
-23
-71
-60
-43
-101
-83
-47
-101
-83
-47
-101
-83
-47
-117
-98
-55
-145
-114
-49
-171
-129
-45
-168
-127
-42
-160
-120
-43
-160
-120
-43
-158
-125
-46
-192
-155
-91
-237
-233
-225
-81
-77
-76
-55
-48
-48
-74
-68
-68
-81
-77
-76
-89
-84
-82
-91
-92
-89
-89
-84
-82
-81
-77
-76
-65
-58
-56
-47
-40
-38
-35
-31
-30
-55
-48
-48
-115
-102
-92
-172
-150
-134
-55
-48
-48
-24
-22
-23
-24
-22
-23
-24
-22
-23
-65
-58
-56
-230
-173
-136
-251
-192
-154
-250
-197
-158
-250
-200
-166
-84
-85
-82
-88
-82
-59
-171
-129
-45
-158
-125
-46
-158
-125
-46
-171
-129
-45
-83
-78
-61
-69
-69
-61
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-117
-98
-55
-48
-58
-59
-101
-100
-92
-238
-205
-179
-253
-204
-176
-250
-200
-166
-253
-204
-176
-238
-205
-179
-91
-92
-89
-51
-62
-63
-117
-98
-55
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-145
-114
-49
-75
-74
-61
-48
-58
-59
-172
-150
-134
-253
-212
-188
-255
-215
-190
-234
-204
-183
-84
-85
-82
-56
-64
-60
-129
-106
-52
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-81
-73
-62
-63
-69
-60
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-83
-78
-61
-84
-85
-82
-255
-215
-190
-245
-212
-186
-109
-106
-99
-51
-62
-63
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-171
-129
-45
-105
-93
-60
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-137
-127
-115
-58
-69
-70
-111
-94
-57
-171
-129
-45
-158
-125
-46
-158
-125
-46
-158
-125
-46
-62
-63
-61
-137
-127
-115
-255
-215
-190
-255
-215
-190
-227
-196
-175
-77
-85
-81
-56
-64
-60
-129
-106
-52
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-161
-127
-40
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-168
-127
-42
-137
-110
-49
-69
-69
-61
-51
-62
-63
-187
-166
-150
-255
-215
-190
-172
-150
-134
-51
-62
-63
-194
-112
-58
-227
-126
-50
-224
-123
-55
-234
-125
-52
-183
-110
-59
-48
-58
-59
-155
-100
-63
-234
-126
-45
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-125
-52
-209
-117
-53
-89
-75
-66
-48
-58
-59
-187
-166
-150
-250
-200
-166
-250
-197
-158
-251
-192
-154
-250
-197
-158
-250
-200
-166
-109
-106
-99
-48
-58
-59
-135
-94
-64
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-135
-94
-64
-43
-57
-62
-120
-114
-108
-250
-200
-166
-250
-197
-158
-251
-192
-154
-250
-197
-158
-250
-200
-166
-172
-150
-134
-41
-58
-57
-106
-82
-65
-214
-121
-50
-234
-125
-52
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-234
-126
-45
-183
-110
-59
-48
-58
-59
-135
-94
-64
-234
-126
-45
-224
-123
-55
-227
-126
-50
-188
-112
-56
-51
-62
-63
-109
-106
-99
-51
-62
-63
-183
-110
-59
-227
-126
-50
-224
-123
-55
-234
-125
-52
-173
-106
-60
-48
-58
-59
-178
-146
-122
-245
-169
-119
-246
-156
-93
-247
-150
-84
-249
-146
-83
-247
-150
-84
-249
-159
-103
-249
-174
-124
-203
-161
-131
-58
-69
-70
-76
-70
-64
-194
-112
-58
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-183
-110
-59
-48
-58
-59
-163
-104
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-209
-117
-53
-62
-63
-61
-146
-135
-124
-217
-187
-166
-43
-57
-62
-163
-104
-61
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-125
-90
-64
-58
-69
-70
-234
-204
-183
-255
-215
-190
-137
-127
-115
-41
-58
-57
-118
-86
-65
-225
-124
-48
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-146
-97
-64
-51
-62
-63
-97
-98
-96
-238
-205
-179
-255
-215
-190
-234
-204
-183
-63
-74
-74
-118
-86
-65
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-81
-73
-62
-101
-100
-92
-250
-176
-132
-247
-165
-111
-246
-156
-93
-249
-152
-92
-249
-159
-103
-251
-168
-115
-252
-185
-144
-217
-187
-166
-58
-69
-70
-69
-69
-61
-199
-115
-54
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-224
-123
-55
-227
-126
-50
-225
-124
-48
-81
-73
-62
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-55
-66
-67
-250
-197
-158
-249
-174
-124
-247
-150
-84
-247
-130
-60
-247
-118
-39
-247
-111
-26
-247
-103
-7
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-237
-95
-0
-237
-95
-0
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-237
-95
-0
-243
-101
-2
-247
-103
-7
-236
-102
-14
-247
-111
-26
-246
-116
-28
-247
-123
-41
-247
-130
-60
-243
-141
-78
-249
-159
-103
-249
-174
-124
-249
-189
-146
-253
-204
-176
-124
-111
-99
-35
-31
-30
-145
-114
-49
-175
-132
-40
-171
-129
-45
-168
-127
-42
-192
-155
-91
-216
-194
-154
-224
-207
-180
-224
-207
-180
-216
-194
-154
-216
-194
-154
-239
-227
-208
-253
-255
-252
-253
-255
-252
-186
-181
-179
-146
-135
-124
-120
-114
-108
-109
-106
-99
-95
-78
-64
-71
-60
-43
-85
-71
-43
-101
-83
-47
-108
-87
-46
-35
-31
-30
-150
-125
-114
-227
-196
-175
-255
-215
-190
-253
-212
-188
-212
-173
-150
-121
-100
-85
-95
-78
-64
-129
-102
-78
-234
-168
-124
-250
-176
-132
-250
-176
-132
-248
-180
-134
-249
-189
-146
-124
-111
-99
-62
-63
-61
-152
-119
-47
-171
-129
-45
-171
-129
-45
-145
-114
-49
-56
-64
-60
-43
-57
-62
-83
-78
-61
-152
-119
-47
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-171
-129
-45
-171
-129
-45
-152
-119
-47
-95
-87
-59
-48
-58
-59
-101
-100
-92
-236
-186
-153
-251
-192
-154
-252
-185
-144
-248
-180
-134
-245
-179
-138
-249
-189
-146
-236
-186
-153
-101
-100
-92
-48
-58
-59
-88
-82
-59
-137
-110
-49
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-171
-129
-45
-168
-127
-42
-145
-114
-49
-100
-89
-56
-56
-64
-60
-58
-69
-70
-172
-150
-134
-250
-200
-166
-251
-192
-154
-250
-197
-158
-250
-200
-166
-217
-187
-166
-84
-85
-82
-51
-62
-63
-105
-93
-60
-158
-125
-46
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-152
-119
-47
-83
-78
-61
-43
-57
-62
-48
-58
-59
-129
-106
-52
-175
-132
-40
-171
-129
-45
-158
-125
-46
-63
-69
-60
-120
-114
-108
-255
-215
-190
-255
-215
-190
-227
-196
-175
-84
-85
-82
-51
-62
-63
-105
-93
-60
-158
-125
-46
-171
-129
-45
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-158
-125
-46
-105
-93
-60
-48
-58
-59
-48
-58
-59
-129
-106
-52
-168
-127
-42
-158
-125
-46
-168
-127
-42
-145
-114
-49
-51
-62
-63
-172
-150
-134
-91
-92
-89
-75
-74
-61
-168
-127
-42
-171
-129
-45
-175
-132
-40
-117
-98
-55
-48
-58
-59
-176
-156
-141
-253
-204
-176
-253
-204
-176
-253
-204
-176
-217
-187
-166
-84
-85
-82
-48
-58
-59
-95
-87
-59
-145
-114
-49
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-171
-129
-45
-158
-125
-46
-137
-110
-49
-95
-87
-59
-51
-62
-63
-70
-79
-77
-187
-166
-150
-251
-209
-178
-251
-209
-178
-207
-178
-158
-43
-57
-62
-135
-94
-64
-238
-123
-45
-234
-126
-45
-234
-126
-45
-118
-86
-65
-35
-56
-60
-56
-64
-60
-155
-100
-63
-234
-125
-52
-234
-126
-45
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-126
-45
-227
-126
-50
-163
-104
-61
-76
-70
-64
-51
-62
-63
-167
-142
-123
-251
-192
-154
-248
-180
-134
-249
-174
-124
-249
-174
-124
-250
-176
-132
-245
-179
-138
-236
-186
-153
-109
-106
-99
-41
-58
-57
-95
-78
-64
-183
-110
-59
-234
-125
-52
-234
-126
-45
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-126
-45
-227
-126
-50
-183
-110
-59
-95
-78
-64
-43
-57
-62
-124
-111
-99
-236
-186
-153
-252
-185
-144
-250
-176
-132
-249
-174
-124
-249
-174
-124
-248
-180
-134
-251
-192
-154
-154
-133
-118
-43
-57
-62
-81
-73
-62
-173
-106
-60
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-227
-126
-50
-234
-126
-45
-234
-125
-52
-155
-100
-63
-56
-64
-60
-35
-56
-60
-89
-75
-66
-227
-126
-50
-234
-126
-45
-238
-128
-40
-146
-97
-64
-43
-57
-62
-176
-156
-141
-58
-69
-70
-118
-86
-65
-234
-126
-45
-234
-126
-45
-234
-126
-45
-112
-85
-63
-43
-57
-62
-210
-156
-119
-245
-162
-103
-247
-150
-84
-247
-143
-74
-248
-138
-64
-241
-138
-68
-249
-146
-83
-249
-159
-103
-250
-176
-132
-195
-157
-134
-58
-69
-70
-65
-67
-64
-155
-100
-63
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-126
-45
-173
-106
-60
-65
-67
-64
-35
-56
-60
-106
-82
-65
-234
-126
-45
-234
-126
-45
-238
-128
-40
-146
-97
-64
-43
-57
-62
-187
-166
-150
-234
-204
-183
-55
-66
-67
-106
-82
-65
-234
-126
-45
-234
-125
-52
-234
-125
-52
-224
-123
-55
-81
-73
-62
-91
-92
-89
-245
-212
-186
-253
-212
-188
-253
-212
-188
-137
-127
-115
-41
-58
-57
-89
-75
-66
-173
-106
-60
-227
-126
-50
-234
-126
-45
-227
-126
-50
-227
-126
-50
-227
-126
-50
-234
-125
-52
-234
-126
-45
-234
-125
-52
-194
-112
-58
-106
-82
-65
-43
-57
-62
-101
-100
-92
-227
-196
-175
-251
-209
-178
-251
-209
-178
-253
-212
-188
-97
-98
-96
-69
-69
-61
-209
-117
-53
-234
-126
-45
-238
-128
-40
-173
-106
-60
-51
-62
-63
-139
-115
-96
-251
-168
-115
-246
-156
-93
-247
-150
-84
-249
-146
-83
-249
-152
-92
-247
-165
-111
-248
-180
-134
-250
-200
-166
-187
-166
-150
-55
-66
-67
-69
-69
-61
-163
-104
-61
-234
-125
-52
-234
-126
-45
-234
-125
-52
-227
-126
-50
-227
-126
-50
-234
-126
-45
-234
-126
-45
-199
-115
-54
-95
-78
-64
-35
-56
-60
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-139
-96
-61
-51
-62
-63
-250
-197
-158
-245
-169
-119
-247
-150
-84
-247
-130
-60
-247
-118
-39
-235
-107
-16
-243
-101
-2
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-246
-97
-3
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-246
-97
-3
-237
-95
-0
-243
-101
-2
-247
-103
-7
-236
-102
-14
-247
-111
-26
-246
-116
-28
-238
-123
-45
-241
-132
-59
-247
-143
-74
-246
-156
-93
-245
-169
-119
-230
-173
-136
-47
-40
-38
-59
-50
-39
-168
-127
-42
-161
-127
-40
-160
-120
-43
-192
-155
-91
-255
-238
-227
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-253
-255
-252
-239
-227
-208
-170
-137
-67
-171
-129
-45
-171
-129
-45
-171
-129
-45
-59
-50
-39
-154
-133
-118
-250
-200
-166
-250
-197
-158
-249
-189
-146
-248
-180
-134
-249
-174
-124
-247
-165
-111
-247
-165
-111
-245
-162
-103
-249
-159
-103
-245
-162
-103
-247
-165
-111
-249
-174
-124
-203
-161
-131
-55
-66
-67
-69
-69
-61
-111
-94
-57
-105
-93
-60
-69
-69
-61
-63
-74
-74
-137
-127
-115
-51
-62
-63
-62
-63
-61
-95
-87
-59
-129
-106
-52
-137
-110
-49
-137
-110
-49
-123
-102
-54
-95
-87
-59
-62
-63
-61
-51
-62
-63
-133
-120
-107
-239
-182
-144
-248
-180
-134
-245
-169
-119
-247
-165
-111
-249
-159
-103
-245
-162
-103
-251
-168
-115
-250
-176
-132
-239
-182
-144
-154
-133
-118
-63
-74
-74
-51
-62
-63
-75
-74
-61
-105
-93
-60
-123
-102
-54
-137
-110
-49
-137
-110
-49
-137
-110
-49
-123
-102
-54
-100
-89
-56
-75
-74
-61
-56
-64
-60
-55
-66
-67
-124
-111
-99
-219
-170
-138
-252
-185
-144
-250
-176
-132
-249
-174
-124
-249
-174
-124
-250
-176
-132
-252
-185
-144
-236
-186
-153
-124
-111
-99
-48
-58
-59
-63
-69
-60
-95
-87
-59
-123
-102
-54
-137
-110
-49
-137
-110
-49
-129
-106
-52
-95
-87
-59
-62
-63
-61
-55
-66
-67
-146
-135
-124
-77
-85
-81
-61
-67
-58
-105
-93
-60
-111
-94
-57
-75
-74
-61
-48
-58
-59
-194
-173
-157
-255
-215
-190
-255
-215
-190
-255
-215
-190
-234
-204
-183
-120
-114
-108
-43
-57
-62
-69
-69
-61
-100
-89
-56
-129
-106
-52
-137
-110
-49
-137
-110
-49
-129
-106
-52
-105
-93
-60
-69
-69
-61
-48
-58
-59
-77
-85
-81
-51
-62
-63
-137
-110
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-137
-110
-49
-51
-62
-63
-187
-166
-150
-187
-166
-150
-48
-58
-59
-75
-74
-61
-111
-94
-57
-95
-87
-59
-56
-64
-60
-99
-90
-79
-239
-182
-144
-252
-185
-144
-245
-179
-138
-252
-185
-144
-249
-189
-146
-236
-186
-153
-137
-127
-115
-55
-66
-67
-56
-64
-60
-83
-78
-61
-111
-94
-57
-129
-106
-52
-137
-110
-49
-137
-110
-49
-129
-106
-52
-117
-98
-55
-95
-87
-59
-69
-69
-61
-51
-62
-63
-63
-74
-74
-133
-120
-107
-236
-186
-153
-250
-197
-158
-251
-192
-154
-251
-192
-154
-250
-197
-158
-124
-111
-99
-51
-62
-63
-112
-85
-63
-146
-97
-64
-106
-82
-65
-48
-58
-59
-120
-114
-108
-101
-100
-92
-48
-58
-59
-95
-78
-64
-146
-97
-64
-183
-110
-59
-188
-112
-56
-173
-106
-60
-139
-96
-61
-89
-75
-66
-48
-58
-59
-77
-85
-81
-186
-157
-134
-245
-179
-138
-245
-169
-119
-245
-162
-103
-246
-156
-93
-246
-156
-93
-246
-156
-93
-247
-165
-111
-249
-174
-124
-249
-189
-146
-154
-133
-118
-58
-69
-70
-51
-62
-63
-95
-78
-64
-139
-96
-61
-173
-106
-60
-183
-110
-59
-183
-110
-59
-173
-106
-60
-139
-96
-61
-95
-78
-64
-51
-62
-63
-63
-74
-74
-167
-142
-123
-249
-189
-146
-249
-174
-124
-247
-165
-111
-246
-156
-93
-246
-156
-93
-246
-156
-93
-245
-162
-103
-245
-169
-119
-245
-179
-138
-178
-146
-122
-70
-79
-77
-48
-58
-59
-89
-75
-66
-139
-96
-61
-173
-106
-60
-188
-112
-56
-183
-110
-59
-155
-100
-63
-95
-78
-64
-48
-58
-59
-101
-100
-92
-146
-135
-124
-48
-58
-59
-95
-78
-64
-146
-97
-64
-125
-90
-64
-62
-63
-61
-101
-100
-92
-245
-212
-186
-137
-127
-115
-48
-58
-59
-106
-82
-65
-146
-97
-64
-106
-82
-65
-48
-58
-59
-124
-111
-99
-247
-165
-111
-247
-150
-84
-241
-138
-68
-241
-132
-59
-247
-130
-53
-247
-130
-53
-242
-133
-67
-241
-145
-79
-245
-162
-103
-250
-176
-132
-203
-161
-131
-91
-92
-89
-43
-57
-62
-81
-73
-62
-135
-94
-64
-173
-106
-60
-188
-112
-56
-183
-110
-59
-155
-100
-63
-106
-82
-65
-51
-62
-63
-91
-92
-89
-133
-120
-107
-48
-58
-59
-95
-78
-64
-146
-97
-64
-118
-86
-65
-56
-64
-60
-101
-100
-92
-245
-212
-186
-253
-212
-188
-146
-135
-124
-48
-58
-59
-118
-86
-65
-183
-110
-59
-173
-106
-60
-95
-78
-64
-43
-57
-62
-186
-157
-134
-250
-197
-158
-251
-192
-154
-250
-197
-158
-250
-200
-166
-172
-150
-134
-70
-79
-77
-48
-58
-59
-89
-75
-66
-135
-94
-64
-163
-104
-61
-183
-110
-59
-183
-110
-59
-173
-106
-60
-146
-97
-64
-95
-78
-64
-56
-64
-60
-55
-66
-67
-150
-125
-114
-236
-186
-153
-251
-192
-154
-249
-189
-146
-249
-189
-146
-251
-192
-154
-195
-157
-134
-51
-62
-63
-76
-70
-64
-139
-96
-61
-125
-90
-64
-65
-67
-64
-76
-78
-76
-234
-168
-124
-249
-159
-103
-247
-150
-84
-243
-141
-78
-247
-143
-74
-247
-150
-84
-249
-159
-103
-250
-176
-132
-250
-197
-158
-255
-215
-190
-207
-178
-158
-84
-85
-82
-48
-58
-59
-89
-75
-66
-146
-97
-64
-173
-106
-60
-183
-110
-59
-183
-110
-59
-163
-104
-61
-118
-86
-65
-62
-63
-61
-58
-69
-70
-63
-74
-74
-81
-73
-62
-227
-126
-50
-227
-126
-50
-224
-123
-55
-234
-126
-45
-135
-94
-64
-58
-69
-70
-251
-192
-154
-245
-169
-119
-249
-146
-83
-247
-130
-53
-238
-116
-34
-235
-107
-16
-243
-101
-2
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-246
-97
-3
-246
-97
-3
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-243
-101
-2
-236
-102
-14
-236
-102
-14
-235
-107
-16
-246
-116
-28
-239
-117
-44
-241
-132
-59
-247
-143
-74
-249
-152
-92
-214
-151
-109
-118
-86
-65
-146
-111
-88
-192
-155
-91
-192
-155
-91
-195
-167
-113
-239
-227
-208
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-255
-238
-227
-216
-194
-154
-192
-155
-91
-192
-155
-91
-192
-155
-91
-146
-111
-88
-162
-125
-96
-250
-176
-132
-245
-169
-119
-247
-165
-111
-249
-159
-103
-246
-156
-93
-247
-150
-84
-243
-141
-78
-243
-141
-78
-243
-141
-78
-241
-145
-79
-247
-150
-84
-249
-159
-103
-245
-169
-119
-187
-140
-108
-89
-84
-82
-48
-58
-59
-48
-58
-59
-91
-92
-89
-194
-173
-157
-255
-215
-190
-207
-178
-158
-109
-106
-99
-51
-62
-63
-48
-58
-59
-51
-62
-63
-48
-58
-59
-48
-58
-59
-55
-66
-67
-124
-111
-99
-203
-161
-131
-248
-180
-134
-245
-169
-119
-249
-159
-103
-247
-150
-84
-243
-141
-78
-243
-141
-78
-243
-141
-78
-247
-150
-84
-249
-159
-103
-245
-169
-119
-248
-180
-134
-219
-170
-138
-154
-133
-118
-84
-85
-82
-51
-62
-63
-48
-58
-59
-51
-62
-63
-51
-62
-63
-48
-58
-59
-48
-58
-59
-55
-66
-67
-91
-92
-89
-154
-133
-118
-209
-171
-139
-245
-179
-138
-249
-174
-124
-247
-165
-111
-249
-159
-103
-246
-156
-93
-246
-156
-93
-249
-159
-103
-247
-165
-111
-249
-174
-124
-252
-185
-144
-195
-157
-134
-109
-106
-99
-55
-66
-67
-48
-58
-59
-51
-62
-63
-51
-62
-63
-48
-58
-59
-51
-62
-63
-109
-106
-99
-207
-178
-158
-255
-215
-190
-217
-187
-166
-91
-92
-89
-51
-62
-63
-48
-58
-59
-76
-78
-76
-172
-150
-134
-253
-212
-188
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-255
-215
-190
-194
-173
-157
-101
-100
-92
-51
-62
-63
-48
-58
-59
-48
-58
-59
-51
-62
-63
-48
-58
-59
-48
-58
-59
-97
-98
-96
-194
-173
-157
-146
-135
-124
-56
-64
-60
-145
-114
-49
-168
-127
-42
-158
-125
-46
-168
-127
-42
-129
-106
-52
-48
-58
-59
-194
-173
-157
-255
-215
-190
-176
-156
-141
-76
-78
-76
-48
-58
-59
-55
-66
-67
-115
-102
-92
-234
-168
-124
-245
-169
-119
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-169
-119
-249
-174
-124
-245
-179
-138
-209
-171
-139
-144
-125
-110
-76
-78
-76
-48
-58
-59
-48
-58
-59
-51
-62
-63
-51
-62
-63
-48
-58
-59
-48
-58
-59
-58
-69
-70
-101
-100
-92
-154
-133
-118
-219
-170
-138
-252
-185
-144
-248
-180
-134
-249
-174
-124
-245
-169
-119
-249
-174
-124
-250
-176
-132
-230
-173
-136
-124
-111
-99
-55
-66
-67
-43
-57
-62
-58
-69
-70
-137
-127
-115
-245
-212
-186
-245
-212
-186
-161
-144
-134
-70
-79
-77
-43
-57
-62
-51
-62
-63
-51
-62
-63
-48
-58
-59
-43
-57
-62
-84
-85
-82
-154
-133
-118
-240
-181
-138
-249
-174
-124
-247
-165
-111
-249
-152
-92
-243
-141
-78
-241
-138
-68
-242
-133
-67
-241
-138
-68
-241
-145
-79
-246
-156
-93
-247
-165
-111
-250
-176
-132
-219
-170
-138
-144
-125
-110
-77
-85
-81
-43
-57
-62
-48
-58
-59
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-77
-85
-81
-150
-125
-114
-219
-170
-138
-250
-176
-132
-247
-165
-111
-246
-156
-93
-241
-145
-79
-241
-138
-68
-241
-138
-68
-241
-138
-68
-243
-141
-78
-249
-152
-92
-247
-165
-111
-250
-176
-132
-230
-173
-136
-154
-133
-118
-77
-85
-81
-43
-57
-62
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-70
-79
-77
-161
-144
-134
-245
-212
-186
-255
-215
-190
-161
-144
-134
-63
-74
-74
-43
-57
-62
-51
-62
-63
-109
-106
-99
-217
-187
-166
-251
-209
-178
-238
-205
-179
-137
-127
-115
-58
-69
-70
-43
-57
-62
-58
-69
-70
-139
-115
-96
-238
-159
-107
-249
-152
-92
-241
-138
-68
-247
-130
-53
-238
-123
-45
-239
-117
-44
-247
-118
-39
-238
-123
-45
-241
-132
-59
-241
-145
-79
-249
-159
-103
-249
-174
-124
-240
-181
-138
-167
-142
-123
-91
-92
-89
-43
-57
-62
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-63
-74
-74
-137
-127
-115
-234
-204
-183
-255
-215
-190
-146
-135
-124
-63
-74
-74
-43
-57
-62
-51
-62
-63
-115
-102
-92
-236
-186
-153
-251
-192
-154
-251
-192
-154
-236
-186
-153
-133
-120
-107
-43
-57
-62
-48
-58
-59
-48
-58
-59
-55
-66
-67
-158
-130
-108
-248
-180
-134
-250
-176
-132
-249
-174
-124
-249
-174
-124
-250
-176
-132
-252
-185
-144
-239
-182
-144
-154
-133
-118
-84
-85
-82
-43
-57
-62
-48
-58
-59
-48
-58
-59
-51
-62
-63
-48
-58
-59
-43
-57
-62
-70
-79
-77
-133
-120
-107
-219
-170
-138
-245
-179
-138
-250
-176
-132
-245
-169
-119
-247
-165
-111
-247
-165
-111
-245
-169
-119
-249
-174
-124
-187
-140
-108
-81
-77
-76
-43
-57
-62
-43
-57
-62
-99
-90
-79
-214
-151
-109
-249
-159
-103
-247
-150
-84
-247
-143
-74
-241
-138
-68
-241
-138
-68
-249
-146
-83
-249
-159
-103
-250
-176
-132
-250
-197
-158
-255
-215
-190
-255
-215
-190
-245
-212
-186
-161
-144
-134
-77
-85
-81
-43
-57
-62
-48
-58
-59
-51
-62
-63
-48
-58
-59
-41
-58
-57
-55
-66
-67
-120
-114
-108
-217
-187
-166
-97
-98
-96
-95
-78
-64
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-112
-85
-63
-70
-79
-77
-249
-189
-146
-247
-165
-111
-243
-141
-78
-247
-130
-53
-238
-116
-34
-236
-102
-14
-243
-101
-2
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-239
-117
-44
-238
-123
-53
-242
-133
-67
-241
-145
-79
-241
-153
-96
-247
-165
-111
-249
-174
-124
-250
-176
-132
-245
-179
-138
-252
-185
-144
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-249
-189
-146
-252
-185
-144
-245
-179
-138
-250
-176
-132
-249
-174
-124
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-138
-68
-242
-133
-67
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-242
-133
-67
-243
-141
-78
-241
-145
-86
-249
-159
-103
-238
-159
-107
-210
-156
-119
-210
-156
-119
-240
-181
-138
-249
-189
-146
-251
-192
-154
-251
-192
-154
-250
-197
-158
-212
-173
-150
-186
-157
-134
-167
-142
-123
-167
-142
-123
-195
-157
-134
-219
-170
-138
-248
-180
-134
-245
-169
-119
-245
-162
-103
-247
-150
-84
-243
-141
-78
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-138
-68
-247
-150
-84
-245
-162
-103
-245
-169
-119
-250
-176
-132
-239
-182
-144
-219
-170
-138
-186
-157
-134
-167
-142
-123
-167
-142
-123
-172
-150
-134
-195
-157
-134
-219
-170
-138
-239
-182
-144
-248
-180
-134
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-79
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-145
-79
-241
-153
-96
-247
-165
-111
-249
-174
-124
-245
-179
-138
-219
-170
-138
-186
-157
-134
-167
-142
-123
-167
-142
-123
-186
-157
-134
-212
-173
-150
-250
-197
-158
-251
-192
-154
-251
-192
-154
-249
-189
-146
-239
-182
-144
-219
-170
-138
-219
-170
-138
-239
-182
-144
-250
-197
-158
-250
-200
-166
-251
-209
-178
-238
-205
-179
-172
-150
-134
-137
-127
-115
-161
-144
-134
-217
-187
-166
-253
-212
-188
-227
-196
-175
-194
-173
-157
-176
-156
-141
-172
-150
-134
-187
-166
-150
-217
-187
-166
-255
-215
-190
-245
-212
-186
-76
-78
-76
-75
-74
-61
-158
-125
-46
-158
-125
-46
-158
-125
-46
-171
-129
-45
-105
-93
-60
-58
-69
-70
-217
-187
-166
-255
-215
-190
-253
-204
-176
-236
-186
-153
-210
-156
-119
-210
-156
-119
-247
-165
-111
-249
-159
-103
-249
-152
-92
-241
-145
-86
-243
-141
-78
-241
-145
-79
-247
-150
-84
-241
-153
-96
-245
-162
-103
-245
-169
-119
-248
-180
-134
-239
-182
-144
-209
-171
-139
-186
-157
-134
-167
-142
-123
-167
-142
-123
-178
-146
-122
-195
-157
-134
-230
-173
-136
-239
-182
-144
-250
-176
-132
-245
-169
-119
-247
-165
-111
-249
-159
-103
-241
-153
-96
-249
-152
-92
-249
-152
-92
-241
-153
-96
-245
-162
-103
-247
-165
-111
-210
-156
-119
-210
-156
-119
-230
-173
-136
-249
-189
-146
-249
-189
-146
-251
-192
-154
-250
-197
-158
-236
-186
-153
-203
-161
-131
-167
-142
-123
-167
-142
-123
-178
-146
-122
-203
-161
-131
-240
-181
-138
-249
-174
-124
-247
-165
-111
-241
-153
-96
-243
-141
-78
-242
-133
-67
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-249
-159
-103
-245
-169
-119
-250
-176
-132
-240
-181
-138
-209
-171
-139
-178
-146
-122
-167
-142
-123
-167
-142
-123
-186
-157
-134
-209
-171
-139
-240
-181
-138
-250
-176
-132
-245
-169
-119
-249
-159
-103
-241
-145
-86
-241
-138
-68
-241
-132
-59
-238
-123
-45
-238
-123
-45
-238
-123
-45
-247
-130
-53
-242
-133
-67
-241
-145
-79
-241
-153
-96
-247
-165
-111
-250
-176
-132
-240
-181
-138
-203
-161
-131
-178
-146
-122
-167
-142
-123
-167
-142
-123
-195
-157
-134
-236
-186
-153
-251
-192
-154
-251
-192
-154
-249
-189
-146
-249
-189
-146
-230
-173
-136
-203
-161
-131
-219
-170
-138
-245
-179
-138
-245
-179
-138
-245
-179
-138
-245
-179
-138
-248
-180
-134
-234
-168
-124
-214
-151
-109
-214
-151
-109
-245
-162
-103
-241
-145
-86
-241
-138
-68
-238
-123
-53
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-238
-116
-34
-238
-123
-45
-241
-132
-59
-243
-141
-78
-241
-153
-96
-247
-165
-111
-249
-174
-124
-240
-181
-138
-209
-171
-139
-178
-146
-122
-167
-142
-123
-167
-142
-123
-195
-157
-134
-236
-186
-153
-250
-197
-158
-251
-192
-154
-249
-189
-146
-249
-189
-146
-230
-173
-136
-210
-156
-119
-210
-156
-119
-250
-176
-132
-249
-174
-124
-249
-174
-124
-249
-174
-124
-249
-174
-124
-250
-176
-132
-210
-156
-119
-162
-125
-96
-162
-125
-96
-214
-151
-109
-247
-165
-111
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-153
-96
-249
-159
-103
-247
-165
-111
-245
-169
-119
-250
-176
-132
-240
-181
-138
-209
-171
-139
-186
-157
-134
-167
-142
-123
-167
-142
-123
-178
-146
-122
-203
-161
-131
-239
-182
-144
-248
-180
-134
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-241
-145
-86
-241
-145
-86
-247
-150
-84
-241
-153
-96
-245
-162
-103
-238
-159
-107
-204
-141
-99
-214
-151
-109
-241
-153
-96
-249
-152
-92
-243
-141
-78
-242
-133
-67
-241
-132
-59
-241
-132
-59
-241
-138
-68
-241
-145
-79
-245
-162
-103
-248
-180
-134
-212
-173
-150
-146
-135
-124
-137
-127
-115
-176
-156
-141
-234
-204
-183
-253
-212
-188
-217
-187
-166
-187
-166
-150
-172
-150
-134
-176
-156
-141
-194
-173
-157
-234
-204
-183
-255
-215
-190
-194
-173
-157
-43
-57
-62
-139
-96
-61
-234
-126
-45
-224
-123
-55
-227
-126
-50
-227
-126
-50
-89
-75
-66
-101
-100
-92
-245
-179
-138
-245
-162
-103
-241
-138
-68
-238
-123
-45
-236
-108
-29
-236
-102
-14
-235
-94
-9
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-238
-116
-34
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-79
-249
-152
-92
-241
-153
-96
-245
-162
-103
-245
-162
-103
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-162
-103
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-243
-141
-78
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-162
-103
-247
-165
-111
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-249
-174
-124
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-132
-59
-238
-123
-53
-239
-117
-44
-238
-116
-34
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-249
-174
-124
-250
-176
-132
-250
-176
-132
-250
-176
-132
-249
-174
-124
-245
-169
-119
-247
-165
-111
-241
-153
-96
-241
-145
-86
-243
-141
-78
-242
-133
-67
-241
-132
-59
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-241
-132
-59
-242
-133
-67
-243
-141
-78
-249
-152
-92
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-169
-119
-249
-174
-124
-245
-179
-138
-251
-192
-154
-232
-190
-161
-101
-100
-92
-51
-62
-63
-63
-69
-60
-51
-62
-63
-55
-66
-67
-109
-106
-99
-176
-156
-141
-234
-204
-183
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-207
-178
-158
-91
-92
-89
-51
-62
-63
-129
-106
-52
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-75
-74
-61
-91
-92
-89
-245
-212
-186
-250
-200
-166
-252
-185
-144
-249
-174
-124
-247
-165
-111
-241
-153
-96
-241
-145
-79
-241
-138
-68
-242
-133
-67
-241
-132
-59
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-153
-96
-247
-165
-111
-245
-169
-119
-249
-174
-124
-250
-176
-132
-250
-176
-132
-249
-174
-124
-249
-174
-124
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-241
-145
-79
-241
-138
-68
-242
-133
-67
-242
-133
-67
-242
-133
-67
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-153
-96
-241
-153
-96
-245
-162
-103
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-245
-162
-103
-241
-153
-96
-241
-145
-79
-241
-138
-68
-238
-123
-53
-238
-123
-45
-238
-116
-34
-235
-113
-30
-235
-113
-30
-238
-116
-34
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-245
-169
-119
-249
-174
-124
-249
-174
-124
-245
-169
-119
-245
-169
-119
-245
-162
-103
-241
-153
-96
-241
-145
-86
-241
-138
-68
-241
-132
-59
-238
-123
-45
-239
-117
-44
-238
-116
-34
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-123
-45
-241
-132
-59
-241
-138
-68
-241
-145
-86
-241
-153
-96
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-247
-165
-111
-247
-165
-111
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-132
-59
-238
-123
-53
-239
-117
-44
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-53
-242
-133
-67
-241
-145
-79
-241
-153
-96
-245
-162
-103
-247
-165
-111
-245
-169
-119
-245
-169
-119
-249
-174
-124
-245
-169
-119
-245
-169
-119
-245
-169
-119
-245
-169
-119
-247
-165
-111
-247
-165
-111
-245
-162
-103
-245
-162
-103
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-153
-96
-249
-152
-92
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-245
-169
-119
-249
-174
-124
-249
-174
-124
-249
-174
-124
-245
-169
-119
-247
-165
-111
-241
-153
-96
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-79
-241
-145
-79
-241
-145
-79
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-242
-133
-67
-241
-145
-86
-247
-165
-111
-210
-156
-119
-63
-74
-74
-62
-63
-61
-69
-69
-61
-48
-58
-59
-63
-74
-74
-133
-120
-107
-194
-173
-157
-245
-212
-186
-255
-215
-190
-255
-215
-190
-255
-215
-190
-245
-212
-186
-176
-156
-141
-55
-66
-67
-76
-70
-64
-212
-120
-56
-227
-126
-50
-224
-123
-55
-234
-125
-52
-194
-112
-58
-56
-64
-60
-154
-133
-118
-250
-176
-132
-241
-153
-96
-242
-133
-67
-239
-117
-44
-236
-108
-29
-236
-102
-14
-235
-94
-9
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-241
-138
-68
-243
-141
-78
-243
-141
-78
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-79
-243
-141
-78
-243
-141
-78
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-116
-34
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-241
-132
-59
-242
-133
-67
-241
-138
-68
-243
-141
-78
-243
-141
-78
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-249
-152
-92
-241
-153
-96
-241
-153
-96
-241
-153
-96
-249
-152
-92
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-241
-145
-79
-241
-145
-79
-241
-145
-86
-241
-153
-96
-245
-162
-103
-245
-169
-119
-245
-179
-138
-144
-125
-110
-51
-62
-63
-117
-98
-55
-158
-125
-46
-145
-114
-49
-105
-93
-60
-69
-69
-61
-48
-58
-59
-58
-69
-70
-91
-92
-89
-120
-114
-108
-120
-114
-108
-91
-92
-89
-48
-58
-59
-56
-64
-60
-123
-102
-54
-171
-129
-45
-158
-125
-46
-158
-125
-46
-168
-127
-42
-137
-110
-49
-48
-58
-59
-161
-144
-134
-250
-197
-158
-248
-180
-134
-247
-165
-111
-241
-153
-96
-241
-145
-79
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-249
-152
-92
-241
-153
-96
-241
-153
-96
-241
-153
-96
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-123
-45
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-138
-68
-241
-138
-68
-243
-141
-78
-241
-145
-79
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-243
-141
-78
-242
-133
-67
-241
-132
-59
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-45
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-145
-86
-241
-153
-96
-241
-153
-96
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-45
-239
-117
-44
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-238
-123
-45
-241
-132
-59
-242
-133
-67
-243
-141
-78
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-241
-145
-79
-243
-141
-78
-243
-141
-78
-243
-141
-78
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-242
-133
-67
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-116
-34
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-238
-116
-34
-238
-123
-45
-238
-123
-53
-242
-133
-67
-241
-138
-68
-241
-145
-79
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-86
-241
-145
-79
-243
-141
-78
-243
-141
-78
-241
-138
-68
-241
-138
-68
-241
-138
-68
-242
-133
-67
-242
-133
-67
-242
-133
-67
-241
-138
-68
-241
-138
-68
-241
-138
-68
-241
-138
-68
-242
-133
-67
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-138
-68
-243
-141
-78
-241
-145
-86
-241
-145
-86
-241
-153
-96
-241
-153
-96
-241
-145
-86
-241
-145
-86
-243
-141
-78
-241
-138
-68
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-123
-53
-242
-133
-67
-241
-145
-86
-238
-159
-107
-84
-85
-82
-69
-69
-61
-188
-112
-56
-214
-121
-50
-173
-106
-60
-112
-85
-63
-62
-63
-61
-41
-58
-57
-63
-74
-74
-97
-98
-96
-120
-114
-108
-109
-106
-99
-77
-85
-81
-41
-58
-57
-81
-73
-62
-194
-112
-58
-234
-125
-52
-224
-123
-55
-224
-123
-55
-234
-126
-45
-125
-90
-64
-51
-62
-63
-209
-171
-139
-245
-169
-119
-241
-145
-86
-241
-132
-59
-238
-116
-34
-235
-107
-16
-236
-102
-14
-235
-94
-9
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-237
-95
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-238
-116
-34
-239
-117
-44
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-138
-68
-241
-145
-86
-238
-159
-107
-234
-168
-124
-84
-85
-82
-83
-78
-61
-171
-129
-45
-158
-125
-46
-168
-127
-42
-168
-127
-42
-158
-125
-46
-129
-106
-52
-100
-89
-56
-83
-78
-61
-75
-74
-61
-69
-69
-61
-83
-78
-61
-105
-93
-60
-152
-119
-47
-168
-127
-42
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-75
-74
-61
-63
-74
-74
-236
-186
-153
-245
-179
-138
-238
-159
-107
-241
-145
-86
-241
-138
-68
-241
-132
-59
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-53
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-53
-238
-123
-53
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-238
-123
-45
-239
-117
-44
-239
-117
-44
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-239
-117
-44
-238
-123
-45
-238
-123
-53
-238
-123
-53
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-241
-132
-59
-238
-123
-53
-238
-123
-45
-239
-117
-44
-238
-116
-34
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-123
-45
-241
-132
-59
-241
-145
-86
-204
-141
-99
-41
-58
-57
-155
-100
-63
-234
-126
-45
-227
-126
-50
-227
-126
-50
-234
-125
-52
-209
-117
-53
-155
-100
-63
-118
-86
-65
-89
-75
-66
-81
-73
-62
-81
-73
-62
-106
-82
-65
-155
-100
-63
-214
-121
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-194
-112
-58
-56
-64
-60
-109
-106
-99
-245
-179
-138
-245
-162
-103
-241
-138
-68
-238
-123
-45
-235
-113
-30
-236
-102
-14
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-123
-45
-238
-123
-53
-241
-138
-68
-241
-145
-86
-238
-159
-107
-89
-84
-82
-75
-74
-61
-168
-127
-42
-168
-127
-42
-158
-125
-46
-158
-125
-46
-161
-127
-40
-168
-127
-42
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-95
-87
-59
-48
-58
-59
-167
-142
-123
-245
-179
-138
-238
-159
-107
-241
-145
-86
-242
-133
-67
-238
-123
-45
-238
-116
-34
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-239
-117
-44
-239
-117
-44
-239
-117
-44
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-113
-30
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-235
-113
-30
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-235
-113
-30
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-113
-30
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-238
-116
-34
-235
-113
-30
-236
-108
-29
-236
-108
-29
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-236
-108
-29
-236
-108
-29
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-108
-29
-235
-113
-30
-239
-117
-44
-241
-132
-59
-241
-145
-79
-204
-141
-99
-48
-58
-59
-139
-96
-61
-234
-126
-45
-224
-123
-55
-224
-123
-55
-224
-123
-55
-227
-126
-50
-234
-126
-45
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-126
-45
-234
-126
-45
-227
-126
-50
-224
-123
-55
-224
-123
-55
-234
-125
-52
-214
-121
-50
-81
-73
-62
-58
-69
-70
-219
-170
-138
-245
-169
-119
-241
-145
-86
-241
-132
-59
-239
-117
-44
-236
-108
-29
-236
-102
-14
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-235
-94
-9
-230
-97
-5
-229
-102
-7
-229
-102
-7
-236
-102
-14
-236
-102
-14
-224
-98
-18
-224
-98
-18
-224
-98
-18
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-229
-102
-7
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-235
-94
-9
-230
-97
-5
-229
-102
-7
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-231
-91
-2
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-229
-102
-7
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-107
-16
-236
-108
-29
-239
-117
-44
-234
-125
-52
-231
-136
-72
-241
-153
-96
-162
-125
-96
-48
-58
-59
-95
-87
-59
-158
-125
-46
-171
-129
-45
-168
-127
-42
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-158
-125
-46
-168
-127
-42
-171
-129
-45
-158
-125
-46
-95
-87
-59
-48
-58
-59
-124
-111
-99
-245
-179
-138
-247
-165
-111
-241
-145
-86
-241
-132
-59
-238
-123
-45
-238
-116
-34
-236
-108
-29
-224
-98
-18
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-230
-97
-5
-230
-97
-5
-235
-94
-9
-230
-97
-5
-229
-102
-7
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-224
-98
-18
-236
-102
-14
-229
-102
-7
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-229
-102
-7
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-224
-98
-18
-236
-102
-14
-229
-102
-7
-230
-97
-5
-235
-94
-9
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-235
-94
-9
-235
-94
-9
-229
-102
-7
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-235
-107
-16
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-224
-98
-18
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-229
-102
-7
-236
-102
-14
-235
-94
-9
-230
-97
-5
-235
-94
-9
-235
-94
-9
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-235
-94
-9
-230
-97
-5
-230
-97
-5
-229
-102
-7
-236
-102
-14
-224
-98
-18
-236
-102
-14
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-236
-102
-14
-224
-98
-18
-236
-102
-14
-236
-102
-14
-236
-102
-14
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-236
-102
-14
-236
-102
-14
-224
-98
-18
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-235
-107
-16
-236
-102
-14
-236
-102
-14
-236
-102
-14
-229
-102
-7
-230
-97
-5
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-235
-94
-9
-230
-97
-5
-235
-94
-9
-236
-102
-14
-236
-102
-14
-236
-102
-14
-229
-102
-7
-230
-97
-5
-229
-102
-7
-224
-98
-18
-236
-108
-29
-238
-116
-34
-238
-123
-53
-243
-141
-78
-241
-153
-96
-99
-90
-79
-56
-64
-60
-155
-100
-63
-234
-126
-45
-234
-126
-45
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-227
-126
-50
-224
-123
-55
-224
-123
-55
-227
-126
-50
-227
-126
-50
-234
-126
-45
-194
-112
-58
-81
-73
-62
-48
-58
-59
-178
-146
-122
-249
-174
-124
-241
-153
-96
-231
-136
-72
-234
-125
-52
-238
-116
-34
-235
-107
-16
-229
-102
-7
-235
-94
-9
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-229
-102
-7
-236
-102
-14
-235
-113
-30
-239
-117
-44
-230
-128
-60
-236
-147
-85
-238
-159
-107
-139
-115
-96
-48
-58
-59
-69
-69
-61
-111
-94
-57
-145
-114
-49
-158
-125
-46
-168
-127
-42
-171
-129
-45
-168
-127
-42
-168
-127
-42
-168
-127
-42
-168
-127
-42
-171
-129
-45
-168
-127
-42
-152
-119
-47
-117
-98
-55
-69
-69
-61
-48
-58
-59
-144
-125
-110
-240
-181
-138
-247
-165
-111
-236
-147
-85
-242
-133
-67
-238
-123
-45
-235
-113
-30
-235
-107
-16
-236
-102
-14
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-230
-97
-5
-229
-102
-7
-235
-107
-16
-235
-113
-30
-238
-123
-45
-242
-133
-67
-241
-153
-96
-214
-151
-109
-99
-90
-79
-48
-58
-59
-95
-78
-64
-155
-100
-63
-209
-117
-53
-227
-126
-50
-234
-125
-52
-234
-125
-52
-234
-125
-52
-234
-125
-52
-234
-125
-52
-234
-126
-45
-234
-126
-45
-227
-126
-50
-194
-112
-58
-125
-90
-64
-56
-64
-60
-58
-69
-70
-178
-146
-122
-250
-176
-132
-238
-159
-107
-241
-145
-79
-234
-125
-52
-239
-117
-44
-236
-108
-29
-224
-98
-18
-230
-97
-5
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-230
-97
-5
-229
-102
-7
-223
-103
-18
-226
-110
-35
-234
-125
-52
-231
-136
-72
-241
-153
-96
-245
-169
-119
-178
-146
-122
-101
-100
-92
-48
-58
-59
-56
-64
-60
-69
-69
-61
-95
-87
-59
-111
-94
-57
-123
-102
-54
-129
-106
-52
-129
-106
-52
-123
-102
-54
-105
-93
-60
-88
-82
-59
-62
-63
-61
-48
-58
-59
-91
-92
-89
-186
-157
-134
-245
-179
-138
-238
-159
-107
-236
-147
-85
-230
-128
-60
-234
-125
-52
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-230
-97
-5
-224
-98
-18
-236
-108
-29
-239
-117
-44
-230
-123
-57
-243
-141
-78
-238
-159
-107
-234
-168
-124
-158
-130
-108
-76
-78
-76
-41
-58
-57
-62
-63
-61
-95
-78
-64
-125
-90
-64
-146
-97
-64
-163
-104
-61
-173
-106
-60
-163
-104
-61
-155
-100
-63
-125
-90
-64
-95
-78
-64
-56
-64
-60
-43
-57
-62
-124
-111
-99
-209
-171
-139
-234
-168
-124
-238
-159
-107
-241
-145
-79
-230
-128
-60
-239
-117
-44
-236
-108
-29
-236
-102
-14
-229
-102
-7
-230
-97
-5
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-231
-91
-2
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-226
-93
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-230
-97
-5
-224
-98
-18
-236
-108
-29
-226
-110
-35
-230
-123
-57
-231
-136
-72
-241
-153
-96
-238
-159
-107
-240
-181
-138
-203
-161
-131
-150
-125
-114
-101
-100
-92
-76
-78
-76
-55
-66
-67
-48
-58
-59
-48
-58
-59
-48
-58
-59
-48
-58
-59
-58
-69
-70
-84
-85
-82
-124
-111
-99
-178
-146
-122
-240
-181
-138
-234
-168
-124
-238
-159
-107
-236
-147
-85
-230
-128
-60
-234
-125
-52
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-224
-98
-18
-223
-103
-18
-226
-110
-35
-225
-124
-48
-230
-128
-60
-236
-147
-85
-241
-153
-96
-234
-168
-124
-230
-173
-136
-186
-157
-134
-133
-120
-107
-91
-92
-89
-63
-74
-74
-51
-62
-63
-48
-58
-59
-48
-58
-59
-48
-58
-59
-51
-62
-63
-63
-74
-74
-91
-92
-89
-144
-125
-110
-203
-161
-131
-240
-181
-138
-245
-169
-119
-241
-153
-96
-241
-145
-79
-230
-128
-60
-225
-124
-48
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-224
-98
-18
-223
-103
-18
-226
-110
-35
-239
-117
-44
-230
-123
-57
-231
-136
-72
-236
-147
-85
-238
-159
-107
-245
-169
-119
-234
-168
-124
-240
-181
-138
-239
-182
-144
-236
-186
-153
-250
-197
-158
-250
-197
-158
-250
-197
-158
-251
-192
-154
-236
-186
-153
-239
-182
-144
-245
-179
-138
-234
-168
-124
-238
-159
-107
-241
-153
-96
-231
-136
-72
-230
-128
-60
-225
-124
-48
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-230
-97
-5
-224
-98
-18
-223
-103
-18
-226
-110
-35
-225
-124
-48
-230
-128
-60
-231
-136
-72
-241
-153
-96
-238
-159
-107
-234
-168
-124
-240
-181
-138
-239
-182
-144
-236
-186
-153
-251
-192
-154
-250
-197
-158
-250
-197
-158
-250
-197
-158
-236
-186
-153
-239
-182
-144
-240
-181
-138
-234
-168
-124
-245
-169
-119
-238
-159
-107
-236
-147
-85
-231
-136
-72
-230
-123
-57
-239
-117
-44
-226
-110
-35
-223
-103
-18
-224
-98
-18
-230
-97
-5
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-225
-92
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-230
-128
-60
-231
-136
-72
-236
-147
-85
-241
-153
-96
-238
-159
-107
-238
-159
-107
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-238
-159
-107
-238
-159
-107
-241
-153
-96
-236
-147
-85
-231
-136
-72
-230
-128
-60
-230
-123
-57
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-225
-124
-48
-230
-123
-57
-230
-128
-60
-231
-136
-72
-236
-147
-85
-241
-153
-96
-238
-159
-107
-238
-159
-107
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-234
-168
-124
-238
-159
-107
-238
-159
-107
-241
-153
-96
-236
-147
-85
-231
-136
-72
-230
-128
-60
-225
-124
-48
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-230
-128
-60
-230
-128
-60
-231
-136
-72
-231
-136
-72
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-231
-136
-72
-231
-136
-72
-231
-136
-72
-230
-128
-60
-227
-126
-50
-225
-124
-48
-226
-110
-35
-223
-103
-18
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-230
-123
-57
-230
-128
-60
-231
-136
-72
-231
-136
-72
-231
-136
-72
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-236
-147
-85
-231
-136
-72
-231
-136
-72
-230
-128
-60
-230
-123
-57
-225
-124
-48
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-225
-124
-48
-225
-124
-48
-225
-124
-48
-224
-123
-55
-224
-123
-55
-224
-123
-55
-230
-123
-57
-224
-123
-55
-224
-123
-55
-225
-124
-48
-225
-124
-48
-226
-110
-35
-226
-110
-35
-223
-103
-18
-223
-103
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-218
-87
-5
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-226
-110
-35
-225
-124
-48
-225
-124
-48
-224
-123
-55
-230
-123
-57
-230
-123
-57
-230
-123
-57
-230
-123
-57
-230
-123
-57
-225
-124
-48
-225
-124
-48
-226
-110
-35
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-221
-89
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-224
-98
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-223
-103
-18
-223
-103
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-223
-103
-18
-223
-103
-18
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-226
-110
-35
-223
-103
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-224
-98
-18
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-220
-93
-11
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-218
-87
-5
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-217
-86
-3
-217
-86
-3
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
-214
-84
-0
diff --git a/recipes-kernel/linux/linux_3.3.7.bb b/recipes-kernel/linux/linux_3.3.7.bb
deleted file mode 100644
index f6d2172..0000000
--- a/recipes-kernel/linux/linux_3.3.7.bb
+++ /dev/null
@@ -1,41 +0,0 @@
-DESCRIPTION = "Linux 3.3 stable kernel release"
-SECTION = "kernel"
-
-LICENSE = "GPLv2"
-LIC_FILES_CHKSUM = "file://COPYING;md5=d7810fab7487fb0aad327b76f1be7cd7"
-
-DEFAULT_PREFERENCE = "-1"
-
-COMPATIBLE_MACHINE = "beagleboard"
-
-inherit kernel
-require setup-defconfig.inc
-
-# The main PR is now using MACHINE_KERNEL_PR, for beagleboard see
-# conf/machine/include/omap3.inc
-MACHINE_KERNEL_PR_append = "b+gitr${SRCREV}"
-PR = "${MACHINE_KERNEL_PR}"
-
-BRANCH = "linux-3.3.y"
-SRCREV = "v3.3.7"
-
-SRC_URI = "git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git;protocol=git;branch=${BRANCH} \
-           file://defconfig"
-
-# These are patches that are making their way upstream or are pulled back
-# from upstream trees to make the stable kernel work without regressions.
-# These patches should clear out when moving to the next stable kernel
-# minor version.  i.e. 3.y.
-SRC_URI_append_beagleboard = " file://0001-ARM-OMAP-Cleanup-Beagleboard-DVI-reset-gpio.patch \
-                               file://0001-ARM-OMAP2-UART-Fix-incorrect-population-of-default-u.patch \
-"
-
-S = "${WORKDIR}/git"
-
-EXTRA_OEMAKE = "${PARALLEL_MAKE}"
-
-# Create the uImage symlink in /boot since by default beagleboard looks into
-# the /boot directory for the uImage file instead of the first partition.
-do_install_append_beagleboard() {
-    cd ${D}/${KERNEL_IMAGEDEST} && ln -sf uImage-${KERNEL_VERSION} uImage
-}
-- 
2.2.0



More information about the meta-ti mailing list