summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMyungJoo Ham <myungjoo.ham@samsung.com>2014-03-20 06:29:15 (GMT)
committerMyungJoo Ham <myungjoo.ham@samsung.com>2014-03-20 06:29:15 (GMT)
commitb3a6e2c5448b7d340ff6bea9e99f79989453b1f7 (patch)
tree03f7e2c45fa76d6f65f46ba1de2b2541ebe3dc7b
parent9157e421d4c229d2b45e00b4e36ede3606033ad3 (diff)
downloadlinux-3.10-devel/v3.10-ltsi.zip
linux-3.10-devel/v3.10-ltsi.tar.gz
linux-3.10-devel/v3.10-ltsi.tar.bz2
add Tizen ARM reference patchesdevel/v3.10-ltsi
- Imported 20140319.065243: author Jonghwa Lee <jonghwa3.lee@samsung.com> Wed, 19 Mar 2014 00:55:10 +0900 (00:55 +0900) committer Jonghwa Lee <jonghwa3.lee@samsung.com> Wed, 19 Mar 2014 01:13:40 +0900 (01:13 +0900) commit 7464f7e4fed02c10aa619746890bdd96b1b43fc3 Based on Linux 3.10.19 LTS. Change-Id: I17572de4952319a6815c18379bdbe35b1db0a88c Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
-rw-r--r--patches.tizen/0001-ARM-EXYNOS-Fail-l2x0-cache-initialization-if-DT-base.patch38
-rw-r--r--patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch60
-rw-r--r--patches.tizen/0003-ARM-dts-exynos4-Add-DT-nodes-for-L2-cache-controller.patch64
-rw-r--r--patches.tizen/0004-fs-jbd2-force-commit-to-free-jbd2-s-cma-isolated-pag.patch42
-rw-r--r--patches.tizen/0005-fs-buffer.c-Revoke-LRU-when-trying-to-drop-buffers.patch95
-rw-r--r--patches.tizen/0006-mm-cma-allocate-pages-from-CMA-if-NR_FREE_PAGES-appr.patch46
-rw-r--r--patches.tizen/0007-usb-gadget-s3c-hsotg-Add-device-tree-based-instantia.patch44
-rw-r--r--patches.tizen/0008-usb-phy-samsung-Select-common-driver-part-implicitly.patch36
-rw-r--r--patches.tizen/0009-usb-phy-samsung-Use-clk_get-to-get-reference-clock.patch38
-rw-r--r--patches.tizen/0010-usb-phy-samsung-Consolidate-reference-clock-rate-han.patch252
-rw-r--r--patches.tizen/0011-usb-phy-samsung-Pass-set_isolation-callback-through-.patch188
-rw-r--r--patches.tizen/0012-usb-phy-samsung-Pass-enable-disable-callbacks-throug.patch139
-rw-r--r--patches.tizen/0013-usb-phy-samsung-Add-support-for-USB-2.0-PHY-on-Exyno.patch88
-rw-r--r--patches.tizen/0014-ARM-dts-exynos4-Add-node-for-hsotg.patch32
-rw-r--r--patches.tizen/0015-iommu-exynos-do-not-include-removed-header.patch37
-rw-r--r--patches.tizen/0016-iommu-exynos-add-missing-cache-flush-for-removed-pag.patch40
-rw-r--r--patches.tizen/0017-iommu-exynos-fix-page-table-maintenance.patch151
-rw-r--r--patches.tizen/0018-iommu-exynos-allocate-lv2-page-table-from-own-slab.patch84
-rw-r--r--patches.tizen/0019-clk-exynos5250-add-gate-clock-descriptions-of-System.patch157
-rw-r--r--patches.tizen/0020-ARM-dts-Add-description-of-System-MMU-of-Exynos-SoCs.patch738
-rw-r--r--patches.tizen/0021-iommu-exynos-support-for-device-tree.patch371
-rw-r--r--patches.tizen/0022-iommu-exynos-remove-prefetch-buffer-setting-when-ena.patch88
-rw-r--r--patches.tizen/0023-iommu-exynos-remove-custom-fault-handler.patch160
-rw-r--r--patches.tizen/0024-iommu-exynos-add-bus-notifier-for-registering-System.patch987
-rw-r--r--patches.tizen/0025-iommu-exynos-change-rwlock-to-spinlock.patch175
-rw-r--r--patches.tizen/0026-iommu-exynos-return-0-if-iommu_attach_device-success.patch53
-rw-r--r--patches.tizen/0027-drivers-base-add-notifier-for-failed-driver-bind.patch75
-rw-r--r--patches.tizen/0028-ARM-dts-Add-dts-for-exynos4412-slp_pq-board.patch497
-rw-r--r--patches.tizen/0029-ARM-dts-exynos4210-trats-Add-node-for-USB-gadget.patch31
-rw-r--r--patches.tizen/0030-ARM-dts-exynos4-Add-node-for-USB-PHY.patch38
-rw-r--r--patches.tizen/0031-ARM-dts-exynos4-Move-usbphy-node-to-SoC-specific-dts.patch92
-rw-r--r--patches.tizen/0032-ARM-dts-exynos4210-trats-Enable-USB-PHY-node.patch29
-rw-r--r--patches.tizen/0033-ARM-dts-exynos4412-slp_pq-Enable-USB-PHY-node.patch29
-rw-r--r--patches.tizen/0034-ARM-dts-exynos4210-trats-Add-display-support-on-Trat.patch74
-rw-r--r--patches.tizen/0035-ARM-dts-exynos4210-trats-Fix-vdd_arm-regulator-name.patch28
-rw-r--r--patches.tizen/0036-drm-exynos-fimd-clear-channel-before-enabling-iommu.patch72
-rw-r--r--patches.tizen/0037-ARM-EXYNOS-add-ARM_HAS_SG_CHAIN-config.patch26
-rw-r--r--patches.tizen/0038-ARM-EXYNOS-select-ARM_DMA_USE_IOMMU-for-MACH_EXYNOS4.patch31
-rw-r--r--patches.tizen/0039-ARM-dts-exynos4412-slp_pq-add-fimd-iommu-support.patch29
-rw-r--r--patches.tizen/0040-ARM-DTS-SLP-PQ-add-drm-virtual-display-node.patch29
-rw-r--r--patches.tizen/0041-drm-exynos-add-dt-match-table-for-vidi-module.patch40
-rw-r--r--patches.tizen/0042-ARM-dts-exynos4210-trats-Add-nodes-for-xxti-and-xusb.patch38
-rw-r--r--patches.tizen/0043-ARM-dts-exynos4412-slp_pq-Add-nodes-for-xxti-and-xus.patch38
-rw-r--r--patches.tizen/0044-ARM-dts-exynos4-Add-clock-lookups-to-hsotg-node.patch27
-rw-r--r--patches.tizen/0045-V4L-s5c73m3-Initial-device-tree-support.patch223
-rw-r--r--patches.tizen/0046-s5c73m3-Disable-boot_from_rom.patch29
-rw-r--r--patches.tizen/0047-ARM-dts-Add-camera-to-node-exynos4.dtsi.patch99
-rw-r--r--patches.tizen/0048-ARM-dts-Add-ISP-power-domain-node-for-Exynos4x12.patch34
-rw-r--r--patches.tizen/0049-ARM-dts-Add-FIMC-and-MIPI-CSIS-device-nodes-for-Exyn.patch85
-rw-r--r--patches.tizen/0050-ARM-dts-Correct-camera-pinctrl-nodes-for-Exynos4x12-.patch90
-rw-r--r--patches.tizen/0051-ARM-dts-Add-camera-device-nodes-for-PQ-board.patch225
-rw-r--r--patches.tizen/0052-ARM-EXYNOS-change-the-value-of-EXYNOS4X12_ISP_LOWPWR.patch34
-rw-r--r--patches.tizen/0053-ARM-dts-Add-pinctrl-entries-for-FIMC-IS-peripherals.patch47
-rw-r--r--patches.tizen/0054-ARM-dts-Add-pinctrl-property-to-fimc-is-node-for-PQ-.patch35
-rw-r--r--patches.tizen/0055-ARM-dts-Add-MFC-node-for-Exynos4-SoC-series.patch27
-rw-r--r--patches.tizen/0056-ARM-dts-Add-camera-clocks-definitions-to-exynos4-x12.patch122
-rw-r--r--patches.tizen/0057-v4l2-videobuf2-dc-fix-support-for-mappings-without-s.patch148
-rw-r--r--patches.tizen/0058-regulator-max77693-Add-regulator-driver-for-max77693.patch922
-rw-r--r--patches.tizen/0059-regulator-Remove-const-from-declation-of-reg_desc-in.patch28
-rw-r--r--patches.tizen/0060-regulator-max77693-Remove-no-longer-supported-__dev-.patch57
-rw-r--r--patches.tizen/0061-drivers-dma-contiguous-clean-source-code-and-prepare.patch374
-rw-r--r--patches.tizen/0062-drivers-of-add-function-to-scan-fdt-nodes-given-by-p.patch123
-rw-r--r--patches.tizen/0063-drivers-of-add-initialization-code-for-dma-reserved-.patch476
-rw-r--r--patches.tizen/0064-ARM-init-add-support-for-reserved-memory-defined-by-.patch41
-rw-r--r--patches.tizen/0065-ARM-Exynos-replace-custom-MFC-reserved-memory-handli.patch606
-rw-r--r--patches.tizen/0066-media-s5p-mfc-remove-DT-hacks-and-simplify-initializ.patch139
-rw-r--r--patches.tizen/0067-media-s5p-mfc-add-support-for-runtime-pm-for-memport.patch41
-rw-r--r--patches.tizen/0068-ARM-Exynos-enable-CMA-and-MFC-for-SLP_PQ-board.patch76
-rw-r--r--patches.tizen/0069-video-add-display-core.patch607
-rw-r--r--patches.tizen/0070-ARM-Exynos4-fix-DSIM-support.patch60
-rw-r--r--patches.tizen/0071-ARM-EXYNOS-Make-MACH_EXYNOS4_DT-select-S5P_SETUP_MIP.patch30
-rw-r--r--patches.tizen/0072-video-display-Add-exynos-dsi-video-source-driver.patch1429
-rw-r--r--patches.tizen/0073-video-display-Add-panel-s6d6aa1-driver.patch867
-rw-r--r--patches.tizen/0074-video-display-Add-panel-s6e8aa0-driver.patch1346
-rw-r--r--patches.tizen/0075-ARM-dts-exynos4-Add-node-for-exynos-dsi-to-exynos4.d.patch44
-rw-r--r--patches.tizen/0076-ARM-dts-exynos4412-slp_pq-Update-display-nodes-for-C.patch85
-rw-r--r--patches.tizen/0077-ARM-dts-exynos4210-trats-Update-display-nodes-for-CD.patch89
-rw-r--r--patches.tizen/0078-ARM-dts-Add-dts-file-for-exynos4412-redwood-board.patch532
-rw-r--r--patches.tizen/0079-ARM-dts-Add-dts-file-for-exynos4412-m0-board.patch59
-rw-r--r--patches.tizen/0080-USB-s3c-hsotg-fix-Kconfig-dependency.patch27
-rw-r--r--patches.tizen/0081-ARM-dts-Correct-FIMC-clocks-definitions-for-Exynos42.patch163
-rw-r--r--patches.tizen/0082-ARM-dts-Remove-unnecessary-properties-in-PQ-camera-n.patch33
-rw-r--r--patches.tizen/0083-ARM-dts-Add-FIMC-nodes-for-Exynos4210-Trats-board.patch43
-rw-r--r--patches.tizen/0084-ARM-dts-Add-CMA-region-definitions-and-enable-MFC-fo.patch64
-rw-r--r--patches.tizen/0085-ARM-dts-Add-empty-camera-pinctrl-property-for-Trats-.patch29
-rw-r--r--patches.tizen/0086-ARM-dts-Add-missing-MIPI-CSIS-clock-properties-for-E.patch61
-rw-r--r--patches.tizen/0087-misc-add-global-lock-driver-for-TIZEN.patch1006
-rw-r--r--patches.tizen/0088-drm-exynos-add-EXYNOS_DISPLAY_TYPE_LCD-for-TIZEN.patch28
-rw-r--r--patches.tizen/0089-ARM-dts-exynos4210-trats-enable-invert-feature-of-to.patch28
-rw-r--r--patches.tizen/0090-clk-samsung-exynos4-List-available-mux-clocks.patch42
-rw-r--r--patches.tizen/0091-ARM-dts-exynos4x12-Disable-handling-of-ISP-power-dom.patch36
-rw-r--r--patches.tizen/0092-ARM-dts-exynos4412-redwood-Enable-MFC-and-CMA.patch66
-rw-r--r--patches.tizen/0093-ARM-EXYNOS-Add-sec_debug-module-stub.patch87
-rw-r--r--patches.tizen/0094-cpufreq-Define-cpufreq-as-a-platform-device.patch92
-rw-r--r--patches.tizen/0095-cpufreq-exynos-Save-struct-device-in-driver-data.patch43
-rw-r--r--patches.tizen/0096-cpufreq-exynos-Use-device-based-lookup-for-vdd_arm-r.patch31
-rw-r--r--patches.tizen/0097-cpufreq-Adjust-exynos4x12-cpufreq-to-work-with-v3.8-.patch99
-rw-r--r--patches.tizen/0098-cpufreq-exynos4x12-Parse-frequency-table-from-device.patch131
-rw-r--r--patches.tizen/0099-ARM-dts-exynos4x12-Add-cpufreq-node.patch34
-rw-r--r--patches.tizen/0100-ARM-dts-exynos4x12-slp_pq-Add-cpufreq-node.patch35
-rw-r--r--patches.tizen/0101-clock-Support-for-A-M-PLL-s-35xx-set_rate-and-round_.patch281
-rw-r--r--patches.tizen/0102-cpufreq-Replace-set_apll-code-with-common-clock-fram.patch70
-rw-r--r--patches.tizen/0103-clk-samsung-pll-Add-support-for-PLL45xx-rate-setting.patch261
-rw-r--r--patches.tizen/0104-cpufreq-exynos4210-Use-device-based-lookup-for-clock.patch48
-rw-r--r--patches.tizen/0105-cpufreq-exynos4210-Use-common-clock-operations-for-A.patch51
-rw-r--r--patches.tizen/0106-ARM-dts-exynos4210-Add-cpufreq-node.patch33
-rw-r--r--patches.tizen/0107-ARM-dts-exynos4210-trats-Add-cpufreq-node.patch32
-rw-r--r--patches.tizen/0108-ARM-dts-exynos4210-trats-Use-board-name-for-BUCK1-re.patch31
-rw-r--r--patches.tizen/0109-clk-samsung-pll-Do-not-return-error-codes-in-round_r.patch40
-rw-r--r--patches.tizen/0110-ARM-dts-exynos4412-slp_pq-Correct-cpufreq-device-nod.patch28
-rw-r--r--patches.tizen/0111-clk-samsung-pll-Add-support-for-PLL36xx-rate-configu.patch274
-rw-r--r--patches.tizen/0112-clk-samsung-exynos4-Allow-rate-setting-propagation-t.patch44
-rw-r--r--patches.tizen/0113-clk-samsung-exynos4-Fix-clock-registration-order.patch54
-rw-r--r--patches.tizen/0114-clk-samsung-exynos4-Add-support-for-PLL46xx-rate-con.patch235
-rw-r--r--patches.tizen/0115-gpu-arm-Import-new-mali400-drivers-from-exynos-3.4-d.patch37316
-rw-r--r--patches.tizen/0116-gpu-arm-mali400-mali-Do-not-use-non-existent-VM_RESE.patch28
-rw-r--r--patches.tizen/0117-gpu-arm-mali400-ump-Do-not-use-non-existent-VM_RESER.patch28
-rw-r--r--patches.tizen/0118-gpu-arm-mali400-mali-Remove-useless-platforms.patch2783
-rw-r--r--patches.tizen/0119-gpu-arm-mali400-ump-Remove-call-to-flush_all_cpu_cac.patch33
-rw-r--r--patches.tizen/0120-gpu-arm-mali400-Add-support-for-Device-Tree.patch94
-rw-r--r--patches.tizen/0121-gpu-arm-mali400-mali-Add-exynos4-platform-code.patch471
-rw-r--r--patches.tizen/0122-gpu-arm-mali400-ump-Fix-forced-recompilation-of-some.patch77
-rw-r--r--patches.tizen/0123-ARM-dts-exynos4-Add-gpu-node-for-ARM-Mali-400.patch74
-rw-r--r--patches.tizen/0124-ARM-dts-exynos4412-slp_pq-Add-gpu-node-for-ARM-Mali-.patch34
-rw-r--r--patches.tizen/0125-ARM-dts-exynos4210-trats-Add-G3D-voltage-regulator.patch35
-rw-r--r--patches.tizen/0126-ARM-dts-exynos4210-trats-Add-gpu-node-for-ARM-Mali-4.patch32
-rw-r--r--patches.tizen/0127-ARM-dts-exynos4412-redwood-Add-gpu-node-for-ARM-Mali.patch32
-rw-r--r--patches.tizen/0128-ARM-dts-add-mshc-controller-node-for-Exynos4x12-SoCs.patch51
-rw-r--r--patches.tizen/0129-ARM-dts-added-cam_port_a-to-exynos4210-pinctrl.patch50
-rw-r--r--patches.tizen/0130-ARM-dts-added-trats-m5mols-camera-support.patch172
-rw-r--r--patches.tizen/0131-m5mols-improved-power-on-routine.patch69
-rw-r--r--patches.tizen/0132-m5mols-device-initialization-moved-to-V4L2-registere.patch75
-rw-r--r--patches.tizen/0133-m5mols-added-device-tree-support.patch210
-rw-r--r--patches.tizen/0134-ARM-dts-exynos4210-trats-add-s5k5baf-sensor-support.patch114
-rw-r--r--patches.tizen/0135-ASoC-samsung-Add-pinctrl-support-to-I2S-driver.patch38
-rw-r--r--patches.tizen/0136-ARM-dts-Use-generic-DMA-bindings-for-Exynos4-SPI-dev.patch52
-rw-r--r--patches.tizen/0137-ARM-dts-Add-I2S-device-nodes-for-Exynos4-SoCs.patch62
-rw-r--r--patches.tizen/0138-clk-Add-Exynos-Audio-Subsystem-clocks-driver.patch233
-rw-r--r--patches.tizen/0139-regulator-wm8994-Enable-device-tree-based-driver-mat.patch37
-rw-r--r--patches.tizen/0140-ARM-dts-Add-Exynos-Audio-Subsystem-clock-controller-.patch33
-rw-r--r--patches.tizen/0141-sound-samsung-i2s-Correct-I2S-clock-handling.patch249
-rw-r--r--patches.tizen/0142-clk-samsung-exynos4-Add-support-for-CLKOUT.patch133
-rw-r--r--patches.tizen/0143-ARM-dts-exynos4-Add-clkout-Device-Tree-node.patch33
-rw-r--r--patches.tizen/0144-sound-soc-codecs-Import-Yamaha-YMU823-MC1N2-codec-dr.patch53913
-rw-r--r--patches.tizen/0145-sound-soc-samsung-Add-Trats-platform-audio-driver.patch397
-rw-r--r--patches.tizen/0146-ARM-dts-exynos4210-trats-Add-LDO1-regulator-node.patch35
-rw-r--r--patches.tizen/0147-ARM-dts-exynos4210-trats-Add-nodes-for-audio-hardwar.patch65
-rw-r--r--patches.tizen/0148-cpufreq-Make-ARM_EXYNOS-_CPUFREQ-depend-on-ARM_EXYNO.patch44
-rw-r--r--patches.tizen/0149-power-max8997-charger-Fix-getting-platform-data.patch30
-rw-r--r--patches.tizen/0150-ARM-dts-exynos4210-trats-Add-node-for-max17042-batte.patch43
-rw-r--r--patches.tizen/0151-gpu-drm-exynos-fimd-Fix-parsing-video-mode-from-inco.patch47
-rw-r--r--patches.tizen/0152-gpu-drm-exynos-fimd-Parse-display-physical-size-from.patch35
-rw-r--r--patches.tizen/0153-ARM-dts-exynos4210-trats-Add-physical-display-size-p.patch30
-rw-r--r--patches.tizen/0154-ARM-dts-exynos4412-redwood-Add-physical-display-size.patch30
-rw-r--r--patches.tizen/0155-ARM-dts-exynos4412-slp_pq-Add-physical-display-size-.patch30
-rw-r--r--patches.tizen/0156-ARM-dts-exynos4412-redwood-added-rear-camera-support.patch166
-rw-r--r--patches.tizen/0157-mfd-wm8994-irq-Enable-initialization-with-NULL-platf.patch45
-rw-r--r--patches.tizen/0158-sound-Add-exynos4-wm1811-machine-driver.patch1450
-rw-r--r--patches.tizen/0159-ARM-dts-Add-audio-device-nodes-for-PQ-board.patch119
-rw-r--r--patches.tizen/0160-ARM-dts-Move-isp-i2c-node-to-root-level.patch94
-rw-r--r--patches.tizen/0161-ARM-dts-Add-pmu-subnode-for-Exynos4-fimc-is-device.patch30
-rw-r--r--patches.tizen/0162-m5mols-Fix-regulator_enable-errors-handling.patch45
-rw-r--r--patches.tizen/0163-ARM-dts-exynos-re-enabled-ISP-power-domain.patch34
-rw-r--r--patches.tizen/0164-sound-exynos4_wm1811-Disable-suspend-code-for-uninit.patch42
-rw-r--r--patches.tizen/0165-ARM-dts-Add-detailed-FIMC-properties-to-exynos4x12.d.patch62
-rw-r--r--patches.tizen/0166-ARM-dts-Add-detailed-FIMC-properties-to-exynos4210.d.patch54
-rw-r--r--patches.tizen/0167-ARM-dts-PQ-mipi-csis-clock-frequency-correction.patch36
-rw-r--r--patches.tizen/0168-ARM-dts-exynos4-Update-i2c-isp-node-in-exynos4412-sl.patch99
-rw-r--r--patches.tizen/0169-ARM-dts-Add-SYSREG-block-node-for-Exynos4-SoC-series.patch38
-rw-r--r--patches.tizen/0170-ARM-dts-exynos4-Add-sysreg-properties-to-fimc-nodes.patch54
-rw-r--r--patches.tizen/0171-ARM-dts-exynos4-Move-fimc-lite-nodes-to-root-level.patch111
-rw-r--r--patches.tizen/0172-ARM-dts-exynos4-Make-ISP-I2C1-device-node-a-child-of.patch48
-rw-r--r--patches.tizen/0173-ARM-configs-Add-tizen_defconfig.patch3120
-rw-r--r--patches.tizen/0174-ARM-i2c-s3c2410-register-resume-early-function.patch38
-rw-r--r--patches.tizen/0175-ARM-dts-exynos4412-redwood-Add-menu-key.patch38
-rw-r--r--patches.tizen/0176-ARM-DISPLAY-support-suspend-resume-for-mipi-dsi-of-D.patch93
-rw-r--r--patches.tizen/0177-ARM-dts-change-mdma-clock-node-of-4x12.patch34
-rw-r--r--patches.tizen/0178-ARM-dts-exynos4210-trats-Adjust-regulator-configurat.patch126
-rw-r--r--patches.tizen/0179-ARM-EXYNOS-Fix-incorrect-usage-of-S5P_ARM_CORE1_-reg.patch96
-rw-r--r--patches.tizen/0180-video-display-panel-s6e8aa0-Add-support-for-suspend-.patch62
-rw-r--r--patches.tizen/0181-video-display-panel-s6d6aa1-Add-support-for-suspend-.patch62
-rw-r--r--patches.tizen/0182-packaging-add-.spec-file-to-generate-kernel-headers.patch67
-rw-r--r--patches.tizen/0183-ARM-dts-Add-ak8975-device-node-for-PQ-M0-board.patch44
-rw-r--r--patches.tizen/0184-ARM-dts-Add-I2C-bus-and-the-device-node-for-LPS331-s.patch41
-rw-r--r--patches.tizen/0185-ARM-dts-Add-clock-properties-to-ISP-I2C-node-in-exyn.patch28
-rw-r--r--patches.tizen/0186-ARM-dts-Add-missing-clocks-to-fimc-is-node-in-exynos.patch43
-rw-r--r--patches.tizen/0187-dts-pq-Add-max77693-s-initial-data-to-pq-s-device-tr.patch79
-rw-r--r--patches.tizen/0188-mfd-max77693-Support-device-tree-in-max77693-mfd-dri.patch74
-rw-r--r--patches.tizen/0189-power-max77693-Add-max77693-charger-dirver.patch936
-rw-r--r--patches.tizen/0190-regulator-max77693-Support-to-parse-data-from-device.patch108
-rw-r--r--patches.tizen/0191-mfd-max77686-Fix-NULL-pointer-error-of-max77686-plat.patch35
-rw-r--r--patches.tizen/0192-power-max77693-Add-kernel-configuation-of-Max77693-c.patch49
-rw-r--r--patches.tizen/0193-ARM-clock-cpufreq-Correct-MPLL-clock-and-DTS-binding.patch48
-rw-r--r--patches.tizen/0194-ARM-dts-Update-ISP-clocks-in-exyno4x12.dtsi.patch36
-rw-r--r--patches.tizen/0195-ARM-dts-Update-the-wm1811-codec-node-in-exynos4412-s.patch83
-rw-r--r--patches.tizen/0196-iio-ak8975-Add-support-for-gpios-DT-property.patch76
-rw-r--r--patches.tizen/0197-iio-ak8975-Implement-data-ready-interrupt-handling.patch196
-rw-r--r--patches.tizen/0198-video-display-panel-s6e8aa0-support-others-panel-ver.patch197
-rw-r--r--patches.tizen/0199-drm-exynos-Remove-MODULE_DEVICE_TABLE-table-from-vid.patch42
-rw-r--r--patches.tizen/0200-exynos4-is-Add-fimc-parent-clock-setup.patch186
-rw-r--r--patches.tizen/0201-exynos4-is-Add-csis-parent-clock-setup.patch173
-rw-r--r--patches.tizen/0202-media-media-Rename-media_entity_remote_source-to-med.patch333
-rw-r--r--patches.tizen/0203-exynos4-is-Fix-example-dts-in-.-bindings-samsung-fim.patch58
-rw-r--r--patches.tizen/0204-media-media-Add-a-function-removing-all-links-of-a-m.patch110
-rw-r--r--patches.tizen/0205-media-V4L-Remove-all-links-of-the-media-entity-when-.patch46
-rw-r--r--patches.tizen/0206-s5c73m3-Do-not-ignore-errors-from-regulator_enable.patch45
-rw-r--r--patches.tizen/0207-media-exynos4-is-Remove-redundant-NULL-check-in-fimc.patch49
-rw-r--r--patches.tizen/0208-media-exynos4-is-Remove-platform_device_id-table-at-.patch59
-rw-r--r--patches.tizen/0209-media-exynos4-is-Correct-querycap-ioctl-handling-at-.patch57
-rw-r--r--patches.tizen/0210-media-exynos4-is-Staticize-local-symbols.patch80
-rw-r--r--patches.tizen/0211-media-exynos4-is-Move-common-functions-to-a-separate.patch206
-rw-r--r--patches.tizen/0212-media-exynos4-is-Add-struct-exynos_video_entity.patch456
-rw-r--r--patches.tizen/0213-media-exynos4-is-Preserve-state-of-controls-between-.patch265
-rw-r--r--patches.tizen/0214-media-exynos4-is-Media-graph-video-device-locking-re.patch365
-rw-r--r--patches.tizen/0215-media-exynos4-is-Do-not-use-asynchronous-runtime-PM-.patch43
-rw-r--r--patches.tizen/0216-media-exynos4-is-Use-common-exynos_media_pipeline-da.patch769
-rw-r--r--patches.tizen/0217-media-exynos4-is-Remove-WARN_ON-from-__fimc_pipeline.patch49
-rw-r--r--patches.tizen/0218-media-exynos4-is-Fix-sensor-subdev-FIMC-notification.patch122
-rw-r--r--patches.tizen/0219-media-exynos4-is-Add-locking-at-fimc-lite-subdev-unr.patch67
-rw-r--r--patches.tizen/0220-media-exynos4-is-Remove-leftovers-of-non-dt-FIMC-LIT.patch34
-rw-r--r--patches.tizen/0221-media-exynos4-is-Simplify-bitmask-usage.patch407
-rw-r--r--patches.tizen/0222-media-exynos4-is-Remove-unused-code.patch78
-rw-r--r--patches.tizen/0223-media-exynos4-is-Refactor-vidioc_s_fmt-vidioc_try_fm.patch268
-rw-r--r--patches.tizen/0224-media-exynos4-is-Move-__fimc_videoc_querycap-functio.patch109
-rw-r--r--patches.tizen/0225-media-exynos4-is-Add-isp_dbg-macro.patch91
-rw-r--r--patches.tizen/0226-media-media-Change-media-device-link_notify-behaviou.patch220
-rw-r--r--patches.tizen/0227-media-exynos4-is-Extend-link_notify-handler-to-suppo.patch152
-rw-r--r--patches.tizen/0228-clk-exynos4-Add-clock-entries-for-TMU.patch61
-rw-r--r--patches.tizen/0229-ARM-dts-thermal-exynos4-TMU-device-tree-support-for-.patch37
-rw-r--r--patches.tizen/0230-Thermal-exynos-Support-for-TMU-regulator-defined-at-.patch71
-rw-r--r--patches.tizen/0231-ARM-dts-thermal-exynos4-Add-documentation-for-Exynos.patch51
-rw-r--r--patches.tizen/0232-ARM-dts-thermal-exynos4-TMU-voltage-regulator-suppor.patch40
-rw-r--r--patches.tizen/0233-ARM-dts-Support-device-tree-of-fuel-gauge-max77693-i.patch42
-rw-r--r--patches.tizen/0234-fuelgauge-max1704xx-Fix-max17042-driver-to-work-prop.patch54
-rw-r--r--patches.tizen/0235-ARM-dts-Modify-lps331ap-device-node-for-PQ-M0-board.patch47
-rw-r--r--patches.tizen/0236-arm-dts-Update-max77686-s-device-tree-for-M0-PQ.patch63
-rw-r--r--patches.tizen/0237-s5k5baf-add-camera-sensor-driver.patch2194
-rw-r--r--patches.tizen/0238-ARM-dts-exynos4210-trats.patch40
-rw-r--r--patches.tizen/0239-power-max17042-Fix-deadlock-caused-by-deferred-initi.patch113
-rw-r--r--patches.tizen/0240-ARM-dts-exynos4210-trats-Add-aliases-for-bit-banged-.patch52
-rw-r--r--patches.tizen/0241-ARM-dts-exynos4412-slp_pq-Add-aliases-for-bit-banged.patch54
-rw-r--r--patches.tizen/0242-ARM-dts-Correct-aclk400_mcuisp-clock-index-at-fimc-i.patch30
-rw-r--r--patches.tizen/0243-gpu-mali-Remove-Exynos-PM-domain-checks-in-debug-cod.patch67
-rw-r--r--patches.tizen/0244-drm-exynos-add-device-tree-support-for-rotator.patch185
-rw-r--r--patches.tizen/0245-ARM-dts-add-a-rotator-node-for-exynos4.patch52
-rw-r--r--patches.tizen/0246-ARM-dts-enable-rotator-node-for-redwood.patch29
-rw-r--r--patches.tizen/0247-drm-exynos-add-dt-binding-documentation-for-rotator.patch57
-rw-r--r--patches.tizen/0248-drm-exynos-add-g2d-compatible-node-for-exynos4212.patch28
-rw-r--r--patches.tizen/0249-ARM-dts-Add-g2d-clock-properties.patch29
-rw-r--r--patches.tizen/0250-ARM-dts-enable-g2d-device-for-redwood.patch29
-rw-r--r--patches.tizen/0251-ARM-dts-usbphy-add-SYSREG-reg-info-for-exynos4x12.patch28
-rw-r--r--patches.tizen/0252-ARM-configs-Update-tizen_defconfig.patch1440
-rw-r--r--patches.tizen/0253-regulator-max77693-Modify-platform-deivce-id-accordi.patch37
-rw-r--r--patches.tizen/0254-regulator-max77693-Pass-of_node-when-regulator-is-re.patch31
-rw-r--r--patches.tizen/0255-regulator-max77693-Do-code-clean.patch198
-rw-r--r--patches.tizen/0256-clk-Prevent-potential-null-pointer-dereference-in-cl.patch31
-rw-r--r--patches.tizen/0257-clk-exynos4-Add-CLK_GET_RATE_NOCACHE-flag-for-the-Ex.patch128
-rw-r--r--patches.tizen/0258-ARM-dts-Add-camera-device-nodes-for-M0-rev-1.1-board.patch139
-rw-r--r--patches.tizen/0259-iio-st_accel-Add-DT-bindings.patch164
-rw-r--r--patches.tizen/0260-iio-st_gyro-Add-DT-bindings.patch149
-rw-r--r--patches.tizen/0261-iio-st_sensors-Add-handling-of-multiple-interrupts.patch175
-rw-r--r--patches.tizen/0262-iio-st_sensors-Add-threshold-events-support.patch469
-rw-r--r--patches.tizen/0263-iio-accel-Add-event-subsystem-to-st_accel-driver.patch245
-rw-r--r--patches.tizen/0264-ARM-dts-exnos4412-redwood.dts-Add-lsm330dlc-node-for.patch71
-rw-r--r--patches.tizen/0265-ARM-dts-exynos-slp_pq.dts-Add-lsm330dlc-node-for-slp.patch71
-rw-r--r--patches.tizen/0266-ARM-dts-enable-sd-card.patch38
-rw-r--r--patches.tizen/0267-iio-Add-driver-for-the-LPS331AP-barometer-sensor.patch1390
-rw-r--r--patches.tizen/0268-iio-Add-driver-for-the-gp2ap002a00f-light-proximity-.patch1249
-rw-r--r--patches.tizen/0269-ARM-dts-Add-gp2ap002a00f-device-node-for-PQ-M0-board.patch61
-rw-r--r--patches.tizen/0270-nfc-pn544-i2c-Add-DT-bindings.patch218
-rw-r--r--patches.tizen/0271-nfc-pn544-i2c-Remove-unused-gpio_irq.patch69
-rw-r--r--patches.tizen/0272-nfc-pn544-i2c-Fix-pn544_hci_i2c_write-resend-cmd.patch30
-rw-r--r--patches.tizen/0273-ARM-dts-Add-nfc-node-for-PQ-board.patch45
-rw-r--r--patches.tizen/0274-tizen_defconfig-update.patch136
-rw-r--r--patches.tizen/0275-media-exynos4-is-Drop-drvdata-handling-in-fimc-lite-.patch49
-rw-r--r--patches.tizen/0276-media-exynos4-is-Add-Exynos5250-SoC-support-to-fimc-.patch369
-rw-r--r--patches.tizen/0277-media-exynos4-is-Add-support-for-Exynos5250-MIPI-CSI.patch204
-rw-r--r--patches.tizen/0278-media-exynos4-is-Change-fimc-is-firmware-file-names.patch40
-rw-r--r--patches.tizen/0279-media-exynos4-is-Fix-format-propagation-on-FIMC-LITE.patch165
-rw-r--r--patches.tizen/0280-media-exynos4-is-Set-valid-initial-format-at-FIMC-LI.patch85
-rw-r--r--patches.tizen/0281-media-exynos4-is-Fix-format-propagation-on-FIMC-IS-I.patch184
-rw-r--r--patches.tizen/0282-media-exynos4-is-Set-valid-initial-format-on-FIMC-IS.patch56
-rw-r--r--patches.tizen/0283-media-exynos4-is-Set-valid-initial-format-on-FIMC.n-.patch77
-rw-r--r--patches.tizen/0284-media-exynos4-is-Correct-colorspace-handling-at-FIMC.patch160
-rw-r--r--patches.tizen/0285-exynos4-is-Add-the-FIMC-IS-ISP-capture-DMA-driver.patch1063
-rw-r--r--patches.tizen/0286-ARM-dts-Add-MIPI-PHY-node-to-exynos4.dtsi.patch60
-rw-r--r--patches.tizen/0287-drivers-phy-add-generic-PHY-framework.patch1220
-rw-r--r--patches.tizen/0288-phy-Add-driver-for-Exynos-MIPI-CSIS-DSIM-DPHYs.patch255
-rw-r--r--patches.tizen/0289-video-exynos_mipi_dsim-Use-the-generic-PHY-driver.patch125
-rw-r--r--patches.tizen/0290-media-exynos4-is-Use-the-generic-MIPI-CSIS-PHY-drive.patch128
-rw-r--r--patches.tizen/0291-ARM-Samsung-Remove-the-MIPI-PHY-setup-code.patch154
-rw-r--r--patches.tizen/0292-video-exynos_dsi-Use-generic-PHY-driver.patch150
-rw-r--r--patches.tizen/0293-tizen_defconfig-update.patch37
-rw-r--r--patches.tizen/0294-clk-honor-CLK_GET_RATE_NOCACHE-in-clk_set_rate.patch32
-rw-r--r--patches.tizen/0295-ARM-dts-Add-missing-I2C-controller-node-alias-for-GP.patch39
-rw-r--r--patches.tizen/0296-mmc-sdhci-s3c-revert-fix-missing-clock-for-gpio-card.patch50
-rw-r--r--patches.tizen/0297-ARM-dts-Remove-redundant-sysreg-node-from-exynos4.dt.patch34
-rw-r--r--patches.tizen/0298-mmc-sdhci-s3c-remove-the-duplicated-calling-sequence.patch60
-rw-r--r--patches.tizen/0299-exynos4-is-Handle-suspend-resume-of-fimc-is-i2c-corr.patch77
-rw-r--r--patches.tizen/0300-exynos4-is-Ungate-uart-clocks-on-system-suspend.patch78
-rw-r--r--patches.tizen/0301-ARM-dts-exynos4210-origen-Add-device-nodes-for-USB-g.patch41
-rw-r--r--patches.tizen/0302-ARM-dts-exynos4-Add-node-for-EHCI.patch34
-rw-r--r--patches.tizen/0303-HACK-ARM-dts-exynos4412-slp_pq-Keep-HSIC-regulators-.patch38
-rw-r--r--patches.tizen/0304-ARM-dts-exynos4412-slp_pq-Enable-EHCI-controller.patch29
-rw-r--r--patches.tizen/0305-ARM-dts-exynos4x12-Extend-usbphy-reg-property-to-cov.patch28
-rw-r--r--patches.tizen/0306-ARM-DTS-exynos4210-origen-Add-MAX8997-node-entry.patch176
-rw-r--r--patches.tizen/0307-ARM-dts-exynos4210-origen-Add-device-node-for-ehci-c.patch33
-rw-r--r--patches.tizen/0308-ARM-dts-exynos4210-origen-Use-real-regulators-for-US.patch43
-rw-r--r--patches.tizen/0309-usb-ehci-s5p-Create-EHCI-OHCI-power-control-sysfs.patch207
-rw-r--r--patches.tizen/0310-usb-ehci-s5p-Fix-device-tree-compatible-string-for-e.patch32
-rw-r--r--patches.tizen/0311-ARM-dts-Enable-ehci-for-exynos4412-redwood.dts.patch29
-rw-r--r--patches.tizen/0312-usb-s3c-hsotg-Changing-MAC-interface-to-8-bit.patch55
-rw-r--r--patches.tizen/0313-usb-ehci-s5p-Add-support-for-HSIC-to-the-Exynos-4x12.patch166
-rw-r--r--patches.tizen/0314-modem_if-Add-modem_if-driver-files.patch21839
-rw-r--r--patches.tizen/0315-modem_if-Remove-linux-cma.h-use.patch30
-rw-r--r--patches.tizen/0316-modem_if-Add-modem.h-to-include-linux-platform_data.patch355
-rw-r--r--patches.tizen/0317-modem_if-Modification-of-the-modem-driver-to-compile.patch120
-rw-r--r--patches.tizen/0318-modem_if-device_tree-Add-modem_if-to-exynos4412-slp_.patch69
-rw-r--r--patches.tizen/0319-modem_if-Move-code-from-board-m0-modems.c-to-the-mod.patch307
-rw-r--r--patches.tizen/0320-modem_if-Comment-out-enable_wake_irq-in-modem-driver.patch57
-rw-r--r--patches.tizen/0321-usb-ehci-s5p-Add-s5p_ehci_configurate-needed-by-mode.patch70
-rw-r--r--patches.tizen/0322-modem_if-Move-code-from-board-m0-modems.c-to-the-xmm.patch148
-rw-r--r--patches.tizen/0323-modem_if-ifdef-wake_lock-support-in-the-modem-driver.patch153
-rw-r--r--patches.tizen/0324-modem_if-Change-net-device-name-choice-mechanism.patch68
-rw-r--r--patches.tizen/0325-modem_if-Add-modem-drivers-to-Kconfig-and-Makefile.patch38
-rw-r--r--patches.tizen/0326-ARM-dts-exynos4412-redwood-Add-device-nodes-for-mode.patch84
-rw-r--r--patches.tizen/0327-tizen_defconfig-update.patch90
-rw-r--r--patches.tizen/0328-clk-samsung-exynos4-Do-not-disable-ISP-bus-clocks.patch41
-rw-r--r--patches.tizen/0329-ARM-EXYNOS-pm-Move-call-to-flush_cache_all-before-ou.patch42
-rw-r--r--patches.tizen/0330-ARM-EXYNOS-Add-support-for-firmware-assisted-suspend.patch135
-rw-r--r--patches.tizen/0331-pinctrl-samsung-Parse-pin-groups-before-calling-pinc.patch50
-rw-r--r--patches.tizen/0332-ARM-dts-exynos4412-slp_pq-Add-sleep-mode-pin-configu.patch190
-rw-r--r--patches.tizen/0333-regulator-Handle-suspend-and-resume-of-regulators.patch60
-rw-r--r--patches.tizen/0334-regulator-of-Parse-regulator-state-in-mem-mode-from-.patch46
-rw-r--r--patches.tizen/0335-regulator-max77686-Add-set_suspend_enable-callback-f.patch58
-rw-r--r--patches.tizen/0336-regulator-max77686-Fix-suspend-mode-settings-of-regu.patch183
-rw-r--r--patches.tizen/0337-ARM-dts-exynos4412-slp_pq-Add-regulator-states-in-me.patch283
-rw-r--r--patches.tizen/0338-clocksource-exynos_mct-Register-sched_clock.patch52
-rw-r--r--patches.tizen/0339-tty-serial-samsung-Remove-useless-checks-in-suspend-.patch75
-rw-r--r--patches.tizen/0340-ARM-firmware-Add-L2X0-resume-operation.patch29
-rw-r--r--patches.tizen/0341-ARM-EXYNOS-firmware-Implement-l2x0_resume-operation.patch53
-rw-r--r--patches.tizen/0342-ARM-EXYNOS-Move-L2X0-cache-resume-to-SoC-PM-code.patch134
-rw-r--r--patches.tizen/0343-ARM-EXYNOS-pm-Add-support-for-firmware-based-L2X0-re.patch37
-rw-r--r--patches.tizen/0344-ARM-EXYNOS-firmware-Surround-l2x0-ops-with-an-ifdef.patch46
-rw-r--r--patches.tizen/0345-charger_manager-Workaround-for-supporting-platform-d.patch166
-rw-r--r--patches.tizen/0346-power-charger-manager-regulator_get-never-returns-NU.patch37
-rw-r--r--patches.tizen/0347-power-charger-manager-Fix-a-bug-when-it-unregisters-.patch38
-rw-r--r--patches.tizen/0348-ARM-config-Update-tizen_defconfig.patch46
-rw-r--r--patches.tizen/0349-ARM-DTS-update-device-tree-for-for-charger_manager.patch53
-rw-r--r--patches.tizen/0350-arch-Make-__mutex_fastpath_lock_retval-return-whethe.patch315
-rw-r--r--patches.tizen/0351-mutex-Add-support-for-wound-wait-style-locks.patch1268
-rw-r--r--patches.tizen/0352-mutex-Add-w-w-mutex-slowpath-debugging.patch178
-rw-r--r--patches.tizen/0353-dmabuf-sync-add-buffer-synchronization-framework.patch1443
-rw-r--r--patches.tizen/0354-dmabuf-sync-add-cache-operation-feature.patch130
-rw-r--r--patches.tizen/0355-dma-buf-add-lock-callback-for-fcntl-system-call.patch68
-rw-r--r--patches.tizen/0356-drm-exynos-export-a-gem-into-dmabuf-fd-with-O_RDWR.patch30
-rw-r--r--patches.tizen/0357-drm-exynos-add-cache-operation-backend-callbacks.patch66
-rw-r--r--patches.tizen/0358-perf-tools-Fix-bug-in-isupper-and-islower.patch39
-rw-r--r--patches.tizen/0359-perf-hists-Fix-an-invalid-memory-free-on-he-branch_i.patch104
-rw-r--r--patches.tizen/0360-perf-hists-Free-unused-mem-info-of-a-matched-hist-en.patch43
-rw-r--r--patches.tizen/0361-perf-report-Fix-alignment-of-symbol-column-when-v-is.patch113
-rw-r--r--patches.tizen/0362-perf-sort-Introduce-sort__mode-variable.patch183
-rw-r--r--patches.tizen/0363-perf-sort-Factor-out-common-code-in-sort_dimension__.patch93
-rw-r--r--patches.tizen/0364-perf-sort-Separate-out-memory-specific-sort-keys.patch145
-rw-r--r--patches.tizen/0365-perf-sort-Consolidate-sort_entry__setup_elide.patch170
-rw-r--r--patches.tizen/0366-perf-archive-Fix-typo-on-Documentation.patch39
-rw-r--r--patches.tizen/0367-perf-sort-Reorder-HISTC_SRCLINE-index.patch44
-rw-r--r--patches.tizen/0368-perf-sort-Cleanup-sort__has_sym-setting.patch43
-rw-r--r--patches.tizen/0369-perf-top-Use-sort__has_sym.patch76
-rw-r--r--patches.tizen/0370-perf-hists-browser-Use-sort__has_sym.patch67
-rw-r--r--patches.tizen/0371-perf-tools-Fix-tab-vs-spaces-issue-in-Makefile-ifdef.patch58
-rw-r--r--patches.tizen/0372-perf-tests-Fix-compile-errors-in-bp_signal-files.patch58
-rw-r--r--patches.tizen/0373-perf-record-handle-death-by-SIGTERM.patch59
-rw-r--r--patches.tizen/0374-perf-top-Fix-E-option-behavior.patch84
-rw-r--r--patches.tizen/0375-perf-top-Fix-percent-output-when-no-samples-collecte.patch69
-rw-r--r--patches.tizen/0376-perf-top-Get-rid-of-_threaded-functions.patch207
-rw-r--r--patches.tizen/0377-perf-hists-Move-locking-to-its-call-sites.patch127
-rw-r--r--patches.tizen/0378-perf-report-Don-t-bother-locking-when-adding-hist-en.patch66
-rw-r--r--patches.tizen/0379-perf-report-Add-percent-limit-option.patch515
-rw-r--r--patches.tizen/0380-perf-top-Add-percent-limit-option.patch148
-rw-r--r--patches.tizen/0381-perf-report-Add-report.percent-limit-config-variable.patch58
-rw-r--r--patches.tizen/0382-perf-diff-Use-internal-rb-tree-for-hists__precompute.patch61
-rw-r--r--patches.tizen/0383-perf-hists-Rename-hist_entry__add_pair-arguments.patch47
-rw-r--r--patches.tizen/0384-perf-test-Fix-typo.patch37
-rw-r--r--patches.tizen/0385-perf-evsel-Fix-printing-of-perf_event_paranoid-messa.patch43
-rw-r--r--patches.tizen/0386-perf-kvm-Handle-realloc-failures.patch49
-rw-r--r--patches.tizen/0387-perf-stats-Fix-divide-by-0-in-variance.patch40
-rw-r--r--patches.tizen/0388-perf-tools-Save-parent-pid-in-thread-struct.patch59
-rw-r--r--patches.tizen/0389-perf-tools-Add-automated-make-test-suite.patch203
-rw-r--r--patches.tizen/0390-perf-tools-Move-arch-check-into-config-Makefile.patch141
-rw-r--r--patches.tizen/0391-perf-tools-Move-programs-check-into-config-Makefile.patch103
-rw-r--r--patches.tizen/0392-perf-tools-Move-compiler-and-linker-flags-check-into.patch263
-rw-r--r--patches.tizen/0393-perf-tools-Move-libelf-check-config-into-config-Make.patch148
-rw-r--r--patches.tizen/0394-perf-tools-Move-libdw-check-config-into-config-Makef.patch73
-rw-r--r--patches.tizen/0395-perf-tools-Move-libunwind-check-config-into-config-M.patch106
-rw-r--r--patches.tizen/0396-perf-tools-Move-libaudit-check-config-into-config-Ma.patch68
-rw-r--r--patches.tizen/0397-perf-tools-Move-slang-check-config-into-config-Makef.patch111
-rw-r--r--patches.tizen/0398-perf-tools-Move-gtk2-check-config-into-config-Makefi.patch88
-rw-r--r--patches.tizen/0399-perf-tools-Move-libperl-check-config-into-config-Mak.patch89
-rw-r--r--patches.tizen/0400-perf-tools-Move-libpython-check-config-into-config-M.patch186
-rw-r--r--patches.tizen/0401-perf-tools-Move-libbfd-check-config-into-config-Make.patch122
-rw-r--r--patches.tizen/0402-perf-tools-Move-stdlib-check-config-into-config-Make.patch84
-rw-r--r--patches.tizen/0403-perf-tools-Move-libnuma-check-config-into-config-Mak.patch68
-rw-r--r--patches.tizen/0404-perf-tools-Move-paths-config-into-config-Makefile.patch178
-rw-r--r--patches.tizen/0405-perf-tools-Final-touches-for-CHK-config-move.patch56
-rw-r--r--patches.tizen/0406-perf-tests-Fix-attr-test-for-record-d-option.patch41
-rw-r--r--patches.tizen/0407-perf-tests-Fix-exclude_guest-exclude_host-checking-f.patch62
-rw-r--r--patches.tizen/0408-perf-tools-Remove-frozen-from-perf_header-struct.patch58
-rw-r--r--patches.tizen/0409-perf-tools-Remove-cwdlen-from-struct-perf_session.patch37
-rw-r--r--patches.tizen/0410-tools-lib-lk-Respect-CROSS_COMPILE.patch34
-rw-r--r--patches.tizen/0411-perf-Power7-Make-CPI-stack-events-available-in-sysfs.patch125
-rw-r--r--patches.tizen/0412-perf-Power7-Update-testing-ABI-to-list-CPI-stack-eve.patch71
-rw-r--r--patches.tizen/0413-perf-Expand-definition-of-sysfs-format-attribute.patch56
-rw-r--r--patches.tizen/0414-perf-evlist-Reset-SIGTERM-handler-in-workload-child-.patch49
-rw-r--r--patches.tizen/0415-perf-tools-Merge-all-CFLAGS-make-variable-into-CFLAG.patch542
-rw-r--r--patches.tizen/0416-perf-tools-Merge-all-LDFLAGS-make-variable-into-LDFL.patch221
-rw-r--r--patches.tizen/0417-perf-tools-Switch-to-full-path-C-include-directories.patch131
-rw-r--r--patches.tizen/0418-perf-tools-Add-NO_BIONIC-variable-to-confiure-bionic.patch63
-rw-r--r--patches.tizen/0419-perf-tools-Replace-tabs-with-spaces-for-all-non-comm.patch737
-rw-r--r--patches.tizen/0420-perf-tools-Replace-multiple-line-assignment-with-mul.patch97
-rw-r--r--patches.tizen/0421-perf-tools-Remove-Makefile-STRIP-assignment.patch43
-rw-r--r--patches.tizen/0422-perf-tools-Add-missing-liblk.a-dependency-for-python.patch41
-rw-r--r--patches.tizen/0423-dts-arm-add-arm-pmu-node-for-exynos4412.patch34
-rw-r--r--patches.tizen/0424-clk-samsung-fix-section-mismatch-from-audio-subsyste.patch31
-rw-r--r--patches.tizen/0425-max77693_charger-fix-section-mismatch.patch31
-rw-r--r--patches.tizen/0426-cpufreq-exynos-fix-section-mismatch.patch38
-rw-r--r--patches.tizen/0427-dmabuf-sync-fix-sync-lock-to-multiple-read.patch131
-rw-r--r--patches.tizen/0428-dmabuf-sync-remove-unnecessary-the-use-of-mutex-lock.patch42
-rw-r--r--patches.tizen/0429-dmabuf-sync-add-private-backend-callbacks.patch117
-rw-r--r--patches.tizen/0430-drm-exynos-fix-module-build-error.patch68
-rw-r--r--patches.tizen/0431-ARM-dts-exynos4412-slp_pq-add-fimd-iommu-related-pro.patch28
-rw-r--r--patches.tizen/0432-ARM-configs-update-tizen_defconfig.patch87
-rw-r--r--patches.tizen/0433-drm-exynos-consider-common-clock-framework-to-g2d-dr.patch40
-rw-r--r--patches.tizen/0434-ARM-dts-exynos4412-slp_pq-add-device-node-for-g2d-io.patch57
-rw-r--r--patches.tizen/0435-mmc-dw_mmc-fix-error-return-code-in-dw_mci_probe.patch36
-rw-r--r--patches.tizen/0436-mmc-dw_mmc-clear-IDSTS-register-when-initialize-IDMA.patch45
-rw-r--r--patches.tizen/0437-mmc-dw_mmc-change-the-macro-name-from-DTO-to-DRTO.patch58
-rw-r--r--patches.tizen/0438-mmc-dw_mmc-Handle-late-vmmc-regulators-with-EPROBE_D.patch112
-rw-r--r--patches.tizen/0439-mmc-dw_mmc-Add-the-ability-to-set-the-ciu-clock-freq.patch113
-rw-r--r--patches.tizen/0440-ARM-dts-enable-dw-mmc-controlle-instead-of-sdhci-con.patch52
-rw-r--r--patches.tizen/0441-ARM-dts-updated-the-dwmmc-device-tree-for-clk-name.patch30
-rw-r--r--patches.tizen/0442-clock-clk-exynos4-set-the-CLK_SET_RATE_PARENT-for-mm.patch38
-rw-r--r--patches.tizen/0443-ARM-tizen_defconfig-enable-the-exynos-dw-mmc.patch29
-rw-r--r--patches.tizen/0444-drm-exynos-add-runtime-pm-interfaces-to-g2d-driver.patch79
-rw-r--r--patches.tizen/0445-extcon-max77693-Fix-bug-related-to-MAX77693-irq-when.patch44
-rw-r--r--patches.tizen/0446-ARM-dts-exynos4412-redwood-Add-i2c-node-for-MAX77693.patch72
-rw-r--r--patches.tizen/0447-ARM-tizen_defconfig-enable-unsafe-resume-config.patch37
-rw-r--r--patches.tizen/0448-mmc-Makefile-change-the-init-sequence-for-indexing-m.patch43
-rw-r--r--patches.tizen/0449-ARM-dts-exynos4412-m0-update-gpio-keys-configuration.patch71
-rw-r--r--patches.tizen/0450-f2fs-fix-inconsistency-of-block-count-during-recover.patch62
-rw-r--r--patches.tizen/0451-f2fs-fix-the-inconsistent-state-of-data-pages.patch67
-rw-r--r--patches.tizen/0452-f2fs-remove-redundant-assignment.patch41
-rw-r--r--patches.tizen/0453-f2fs-fix-por_doing-variable-coverage.patch46
-rw-r--r--patches.tizen/0454-f2fs-fix-BUG_ON-during-f2fs_evict_inode-dir.patch138
-rw-r--r--patches.tizen/0455-f2fs-remove-unnecessary-por_doing-check.patch30
-rw-r--r--patches.tizen/0456-f2fs-skip-get_node_page-if-locked-node-page-is-passe.patch40
-rw-r--r--patches.tizen/0457-f2fs-change-get_new_data_page-to-pass-a-locked-node-.patch107
-rw-r--r--patches.tizen/0458-f2fs-update-inode-page-after-creation.patch256
-rw-r--r--patches.tizen/0459-f2fs-add-debug-msgs-in-the-recovery-routine.patch161
-rw-r--r--patches.tizen/0460-f2fs-lockdep-annotate-mutex_lock_all.patch48
-rw-r--r--patches.tizen/0461-f2fs-remove-unecessary-variable-and-code.patch85
-rw-r--r--patches.tizen/0462-f2fs-use-list_for_each_entry-rather-than-list_for_ea.patch40
-rw-r--r--patches.tizen/0463-f2fs-reorganize-f2fs_vm_page_mkwrite.patch61
-rw-r--r--patches.tizen/0464-f2fs-remove-unnecessary-kmap-kunmap-operations.patch53
-rw-r--r--patches.tizen/0465-f2fs-fix-to-unlock-page-before-exit.patch46
-rw-r--r--patches.tizen/0466-f2fs-don-t-do-checkpoint-if-error-is-occurred.patch31
-rw-r--r--patches.tizen/0467-f2fs-avoid-RECLAIM_FS-ON-W-deadlock.patch78
-rw-r--r--patches.tizen/0468-f2fs-add-f2fs_readonly.patch60
-rw-r--r--patches.tizen/0469-f2fs-fix-wrong-condition-check.patch43
-rw-r--r--patches.tizen/0470-f2fs-reuse-the-locked-dnode-page-and-its-inode.patch142
-rw-r--r--patches.tizen/0471-f2fs-fix-to-handle-do_recover_data-errors.patch102
-rw-r--r--patches.tizen/0472-f2fs-should-not-make_bad_inode-on-f2fs_link-failure.patch30
-rw-r--r--patches.tizen/0473-f2fs-use-ihold.patch37
-rw-r--r--patches.tizen/0474-f2fs-dereferencing-an-ERR_PTR.patch31
-rw-r--r--patches.tizen/0475-f2fs-align-data-types-between-on-disk-and-in-memory-.patch53
-rw-r--r--patches.tizen/0476-f2fs-push-some-variables-to-debug-part.patch151
-rw-r--r--patches.tizen/0477-f2fs-remove-unneeded-initializations-in-f2fs_parent_.patch38
-rw-r--r--patches.tizen/0478-f2fs-optimize-several-routines-in-node.h.patch127
-rw-r--r--patches.tizen/0479-f2fs-return-proper-error-from-start_gc_thread.patch57
-rw-r--r--patches.tizen/0480-f2fs-iput-only-if-whole-data-blocks-are-flushed.patch43
-rw-r--r--patches.tizen/0481-f2fs-fix-dentry-recovery-routine.patch76
-rw-r--r--patches.tizen/0482-f2fs-fix-incorrect-iputs-during-the-dentry-recovery.patch46
-rw-r--r--patches.tizen/0483-f2fs-cover-cp_file-information-with-ilock.patch58
-rw-r--r--patches.tizen/0484-f2fs-handle-errors-from-get_node_page-calls.patch40
-rw-r--r--patches.tizen/0485-f2fs-reorganise-the-function-get_victim_by_default.patch85
-rw-r--r--patches.tizen/0486-f2fs-fix-iget-iput-of-dir-during-recovery.patch137
-rw-r--r--patches.tizen/0487-f2fs-support-xattr-security-labels.patch349
-rw-r--r--patches.tizen/0488-f2fs-set-sb-s_fs_info-before-calling-parse_options.patch61
-rw-r--r--patches.tizen/0489-f2fs-fix-i_blocks-translation-on-various-types-of-fi.patch78
-rw-r--r--patches.tizen/0490-f2fs-sync-dir-i_size-with-its-block-allocation.patch104
-rw-r--r--patches.tizen/0491-f2fs-use-the-F2FS-specific-flags-in-f2fs_ioctl.patch37
-rw-r--r--patches.tizen/0492-f2fs-optimise-the-truncate_data_blocks_range-range.patch51
-rw-r--r--patches.tizen/0493-f2fs-avoid-freqeunt-write_inode-calls.patch96
-rw-r--r--patches.tizen/0494-f2fs-remove-unnecessary-parameter-offset-from-__add_.patch63
-rw-r--r--patches.tizen/0495-f2fs-make-locate_dirty_segment-as-static.patch43
-rw-r--r--patches.tizen/0496-f2fs-optimize-do_write_data_page.patch34
-rw-r--r--patches.tizen/0497-f2fs-recover-wrong-pino-after-checkpoint-during-fsyn.patch162
-rw-r--r--patches.tizen/0498-f2fs-add-remount_fs-callback-support.patch361
-rw-r--r--patches.tizen/0499-f2fs-fix-crc-endian-conversion.patch107
-rw-r--r--patches.tizen/0500-f2fs-fix-an-endian-conversion-bug-detected-by-sparse.patch48
-rw-r--r--patches.tizen/0501-f2fs-optimize-the-init_dirty_segmap-function.patch51
-rw-r--r--patches.tizen/0502-f2fs-code-cleanup-and-simplify-in-func-find-add-_gc_.patch59
-rw-r--r--patches.tizen/0503-f2fs-remove-reusing-any-prefree-segments.patch125
-rw-r--r--patches.tizen/0504-f2fs-remove-the-unused-argument-sbi-of-func-destroy_.patch42
-rw-r--r--patches.tizen/0505-f2fs-fix-to-recover-i_size-from-roll-forward.patch66
-rw-r--r--patches.tizen/0506-ARM-dts-Add-dts-file-for-exynos4412-redwoodlte-board.patch742
-rw-r--r--patches.tizen/0507-f2fs-recover-date-requested-by-fdatasync.patch40
-rw-r--r--patches.tizen/0508-f2fs-add-description-for-fsck.f2fs-and-dump.f2fs.patch86
-rw-r--r--patches.tizen/0509-f2fs-add-proc-entry-to-monitor-current-usage-of-segm.patch129
-rw-r--r--patches.tizen/0510-f2fs-add-a-help-func-F2FS_STAT-to-get-the-f2fs_stat_.patch127
-rw-r--r--patches.tizen/0511-f2fs-introduce-help-function-F2FS_NODE.patch313
-rw-r--r--patches.tizen/0512-f2fs-update-file-name-in-the-inode-block-during-f2fs.patch85
-rw-r--r--patches.tizen/0513-f2fs-fix-i_name-during-f2fs_sync_file.patch48
-rw-r--r--patches.tizen/0514-f2fs-use-seq_puts-seq_putc-rather-than-seq_printf-wh.patch54
-rw-r--r--patches.tizen/0515-f2fs-use-list_for_each-rather-than-list_for_each_saf.patch39
-rw-r--r--patches.tizen/0516-f2fs-move-bio_private-allocation-out-of-f2fs_bio_all.patch77
-rw-r--r--patches.tizen/0517-f2fs-fix-handling-orphan-inodes.patch165
-rw-r--r--patches.tizen/0518-mmc-dw_mmc-add-the-specified-capabilities2-of-the-co.patch52
-rw-r--r--patches.tizen/0519-mmc-dw_mmc-exynos-supporte-the-packed-command.patch34
-rw-r--r--patches.tizen/0520-DT-support-l5f31188-panel.patch803
-rw-r--r--patches.tizen/0521-ARM-dts-remove-repeated-code-and-bug-fix.patch750
-rw-r--r--patches.tizen/0522-video-display-panel-s6d6aa1-remove-useless-function.patch63
-rw-r--r--patches.tizen/0523-ARM-dts-redwood-correct-gpio_key-interrupt-control.patch41
-rw-r--r--patches.tizen/0524-clk-exynos4-Add-additional-G2D-clocks.patch90
-rw-r--r--patches.tizen/0525-dmabuf-sync-add-select-system-call-support.patch166
-rw-r--r--patches.tizen/0526-ARM-tizen_defconfig-enable-mcs_touchkey-config.patch28
-rw-r--r--patches.tizen/0527-TRATS2-dts-exynos4412-m0.dts-Add-mcs-touchkey-node.patch80
-rw-r--r--patches.tizen/0528-Input-mcs_touchkey-Add-parse-DT-function-from-device.patch135
-rw-r--r--patches.tizen/0529-debugfs-add-get-set-for-atomic-types.patch132
-rw-r--r--patches.tizen/0530-zbud-add-to-mm.patch660
-rw-r--r--patches.tizen/0531-zswap-add-to-mm.patch1047
-rw-r--r--patches.tizen/0532-zswap-add-documentation.patch111
-rw-r--r--patches.tizen/0533-dma-buf-return-POLLIN-POLLOUT-instead-of-POLLERR.patch36
-rw-r--r--patches.tizen/0534-iio-add-proximity-light-sensor-cm36651-driver-to-Kco.patch47
-rw-r--r--patches.tizen/0535-ARM-tizen_defconfig-add-cm36651-proxmity-light-senso.patch31
-rw-r--r--patches.tizen/0536-TRATS2-dts-exynos4412-m0.dts-Add-cm36651-proximity-l.patch76
-rw-r--r--patches.tizen/0537-iio-add-proximity-light-sensor-cm36651-driver.patch670
-rw-r--r--patches.tizen/0538-drm-exynos-Add-missing-includes.patch148
-rw-r--r--patches.tizen/0539-drm-exynos-Remove-module.h-header-inclusion.patch173
-rw-r--r--patches.tizen/0540-drm-exynos-Add-missing-of.h-header-include.patch95
-rw-r--r--patches.tizen/0541-drm-exynos-Remove-redundant-error-messages.patch495
-rw-r--r--patches.tizen/0542-drm-exynos-Add-NULL-pointer-check.patch49
-rw-r--r--patches.tizen/0543-drm-exynos-fix-fimd-pixel-format-setting.patch94
-rw-r--r--patches.tizen/0544-drm-exynos-fix-WINDOWS_NR-checking-to-vidi-driver.patch49
-rw-r--r--patches.tizen/0545-drm-exynos-remove-ignoring-return-value-warning-in-h.patch37
-rw-r--r--patches.tizen/0546-drm-exynos-Remove-redundant-use-of-of_match_ptr-macr.patch33
-rw-r--r--patches.tizen/0547-drm-exynos-do-not-use-mode_set_base-function-directl.patch58
-rw-r--r--patches.tizen/0548-drm-exynos-fimd-Hold-pointer-to-driver-data-in-conte.patch53
-rw-r--r--patches.tizen/0549-drm-exynos-fimd-Add-support-for-FIMD-versions-withou.patch169
-rw-r--r--patches.tizen/0550-drm-exynos-fimd-Add-support-for-FIMD-variants-with-c.patch49
-rw-r--r--patches.tizen/0551-drm-exynos-fimd-Add-support-for-S3C64xx-SoCs.patch57
-rw-r--r--patches.tizen/0552-drm-exynos-hdmi-use-drm_display_mode-to-check-the-su.patch381
-rw-r--r--patches.tizen/0553-drm-exynos-Remove-tracking-log-functions.patch2118
-rw-r--r--patches.tizen/0554-drm-exynos-check-a-pixel-format-to-a-particular-wind.patch55
-rw-r--r--patches.tizen/0555-drm-exynos-use-drm_calloc_large-when-allocates-point.patch95
-rw-r--r--patches.tizen/0556-drm-exynos-remove-duplicated-error-routine-and-unnec.patch97
-rw-r--r--patches.tizen/0557-drm-exynos-add-exynos_drm_gem_get_dmabuf-function.patch58
-rw-r--r--patches.tizen/0558-drm-exynos-add-dmabuf-sync-support-for-g2d-driver.patch162
-rw-r--r--patches.tizen/0559-vt-disable-console-blank.patch27
-rw-r--r--patches.tizen/0560-mfd-max8998-Add-irq-domain-support.patch233
-rw-r--r--patches.tizen/0561-regulator-max8998-Use-arrays-for-specifying-voltages.patch244
-rw-r--r--patches.tizen/0562-mfd-max8998-Add-support-for-Device-Tree.patch501
-rw-r--r--patches.tizen/0563-dts-universal-c210-board.patch263
-rw-r--r--patches.tizen/0564-drm-exynos-fimd-disable-windows-before-registering-d.patch36
-rw-r--r--patches.tizen/0565-drm-exynos-simplify-and-unify-subdrivers-registratio.patch232
-rw-r--r--patches.tizen/0566-drm-exynos-add-support-for-separate-iommu-mapping-ma.patch218
-rw-r--r--patches.tizen/0567-iommu-exynos-remove-support-for-combined-sysmmu-cont.patch361
-rw-r--r--patches.tizen/0568-iommu-exynos-remove-support-for-multiple-sysmmu-s-pe.patch542
-rw-r--r--patches.tizen/0569-iommu-exynos-simplify-some-functions.patch93
-rw-r--r--patches.tizen/0570-iommu-exynos-register-iommu-aware-dma-ops-for-client.patch179
-rw-r--r--patches.tizen/0571-iommu-exynos-add-dummy-driver-for-enabling-runtime-p.patch57
-rw-r--r--patches.tizen/0572-ARM-Exynos4-add-clocks-for-SYSMMU-controller-and-ena.patch250
-rw-r--r--patches.tizen/0573-ARM-Exynos4-dts-disable-CMA-support-for-MFC-obsolete.patch33
-rw-r--r--patches.tizen/0574-ARM-dts-Add-missing-aliases-for-I2C-bus-controllers-.patch40
-rw-r--r--patches.tizen/0575-exynos4-is-Fix-compressed-format-setting-in-fimc-cap.patch30
-rw-r--r--patches.tizen/0576-s5c73m3-Set-default-data-plane-lengths-for-interleav.patch30
-rw-r--r--patches.tizen/0577-brcmfmac-Add-generic-platform-support.patch188
-rw-r--r--patches.tizen/0578-clk-max77686-Correct-callback-used-for-checking-cloc.patch42
-rw-r--r--patches.tizen/0579-clk-max77686-Provide-.recalc_rate-operation.patch39
-rw-r--r--patches.tizen/0580-mfd-max77686-Enable-register-cache.patch50
-rw-r--r--patches.tizen/0581-clk-max77686-Refactor-successful-exit-of-probe-funct.patch40
-rw-r--r--patches.tizen/0582-clk-max77686-Make-max77686_clk_register-return-struc.patch74
-rw-r--r--patches.tizen/0583-clk-max77686-Fix-clean-up-in-error-and-remove-paths.patch76
-rw-r--r--patches.tizen/0584-clk-max77686-Refactor-driver-data-handling.patch85
-rw-r--r--patches.tizen/0585-clk-max77686-Register-OF-clock-provider.patch125
-rw-r--r--patches.tizen/0586-of-irq-Pass-trigger-type-in-IRQ-resource-flags.patch46
-rw-r--r--patches.tizen/0587-ARM-dts-exynos4412-slp_pq-Allow-using-max77686-as-cl.patch36
-rw-r--r--patches.tizen/0588-ARM-dts-exynos4412-slp_pq-Enable-WLAN-chip.patch73
-rw-r--r--patches.tizen/0589-s5p-jpeg-Add-initial-device-tree-support-for-S5PV210.patch78
-rw-r--r--patches.tizen/0590-ARM-dts-exynos4412-slp_pq-always-turn-on-ESAFEOUT1.patch33
-rw-r--r--patches.tizen/0591-dmabuf-sync-update-it-to-patch-v8.patch1209
-rw-r--r--patches.tizen/0592-usb-phy-samsung-do-not-check-otg-host-to-clear-it.patch32
-rw-r--r--patches.tizen/0593-usb-ehci-s5p-specify-host-mode-to-phy-driver.patch65
-rw-r--r--patches.tizen/0594-usb-gadget-s3c-hsotg-specify-device-mode-before-init.patch47
-rw-r--r--patches.tizen/0595-ARM-dts-exynos4x12-add-usb-sysreg-node.patch29
-rw-r--r--patches.tizen/0596-Revert-drm-exynos-add-dt-binding-documentation-for-r.patch58
-rw-r--r--patches.tizen/0597-Revert-ARM-dts-add-a-rotator-node-for-exynos4.patch49
-rw-r--r--patches.tizen/0598-Revert-drm-exynos-add-device-tree-support-for-rotato.patch183
-rw-r--r--patches.tizen/0599-drm-exynos-add-device-tree-support-for-rotator.patch208
-rw-r--r--patches.tizen/0600-ARM-dts-Add-rotator-node-for-exynos4210.patch40
-rw-r--r--patches.tizen/0601-ARM-dts-Add-rotator-node-for-exynos4x12.patch35
-rw-r--r--patches.tizen/0602-ARM-dts-Add-rotator-node-for-exynos5250.patch41
-rw-r--r--patches.tizen/0603-ARM-dts-exynos4x12-specify-iommu-node-for-rotator.patch27
-rw-r--r--patches.tizen/0604-Revert-ARM-dts-exynos4x12-add-usb-sysreg-node.patch28
-rw-r--r--patches.tizen/0605-usb-gadget-u_ether-convert-into-module.patch603
-rw-r--r--patches.tizen/0606-usb-gadget-rndis-convert-into-module.patch269
-rw-r--r--patches.tizen/0607-usb-gadget-u_ether-construct-with-default-values-and.patch376
-rw-r--r--patches.tizen/0608-usb-gadget-f_ncm-convert-to-new-function-interface-w.patch470
-rw-r--r--patches.tizen/0609-usb-gadget-ncm-convert-to-new-function-interface.patch144
-rw-r--r--patches.tizen/0610-usb-gadget-f_ncm-remove-compatibility-layer.patch142
-rw-r--r--patches.tizen/0611-usb-gadget-f_ncm-use-usb_gstrings_attach.patch77
-rw-r--r--patches.tizen/0612-usb-gadget-f_ncm-add-configfs-support.patch262
-rw-r--r--patches.tizen/0613-usb-gadget-add-helpers-for-configfs-support-for-USB-.patch355
-rw-r--r--patches.tizen/0614-usb-gadget-f_ecm-convert-to-new-function-interface-w.patch357
-rw-r--r--patches.tizen/0615-usb-gadget-cdc2-convert-to-new-interface-of-f_ecm.patch202
-rw-r--r--patches.tizen/0616-usb-gadget-f_ecm-use-usb_gstrings_attach.patch87
-rw-r--r--patches.tizen/0617-usb-gadget-f_ecm-add-configfs-support.patch151
-rw-r--r--patches.tizen/0618-usb-gadget-f_obex-use-usb_gstrings_attach.patch86
-rw-r--r--patches.tizen/0619-usb-gadget-nokia-convert-to-new-interface-of-f_obex.patch260
-rw-r--r--patches.tizen/0620-usb-gadget-f_obex-remove-compatibility-layer.patch88
-rw-r--r--patches.tizen/0621-usb-gadget-phonet-move-global-dev-variable-to-its-us.patch146
-rw-r--r--patches.tizen/0622-usb-gadget-f_phonet-convert-to-new-function-interfac.patch289
-rw-r--r--patches.tizen/0623-usb-gadget-nokia-convert-to-new-interface-of-f_phone.patch199
-rw-r--r--patches.tizen/0624-usb-gadget-f_phonet-remove-compatibility-layer.patch135
-rw-r--r--patches.tizen/0625-usb-gadget-nokia-convert-to-new-interface-of-f_ecm.patch232
-rw-r--r--patches.tizen/0626-usb-gadget-f_phonet-add-configfs-support.patch138
-rw-r--r--patches.tizen/0627-usb-gadget-u_ether-allow-getting-binary-form-host-ad.patch61
-rw-r--r--patches.tizen/0628-usb-gadget-ether-convert-to-new-interface-of-f_ecm.patch174
-rw-r--r--patches.tizen/0629-usb-gadget-f_eem-convert-to-new-function-interface-w.patch419
-rw-r--r--patches.tizen/0630-usb-gadget-ether-convert-to-new-interface-of-f_eem.patch151
-rw-r--r--patches.tizen/0631-usb-gadget-f_eem-remove-compatibility-layer.patch120
-rw-r--r--patches.tizen/0632-usb-gadget-f_eem-use-usb_gstrings_attach.patch60
-rw-r--r--patches.tizen/0633-usb-gadget-f_eem-add-configfs-support.patch195
-rw-r--r--patches.tizen/0634-usb-gadget-multi-Remove-unused-include.patch30
-rw-r--r--patches.tizen/0635-usb-gadget-f_subset-convert-to-new-function-interfac.patch302
-rw-r--r--patches.tizen/0636-usb-gadget-ether-convert-to-new-interface-of-f_subse.patch223
-rw-r--r--patches.tizen/0637-usb-gadget-f_subset-use-usb_gstrings_attach.patch68
-rw-r--r--patches.tizen/0638-usb-gadget-f_subset-add-configfs-support.patch183
-rw-r--r--patches.tizen/0639-usb-gadget-f_rndis-convert-to-new-function-interface.patch416
-rw-r--r--patches.tizen/0640-usb-gadget-ether-convert-to-new-interface-of-f_rndis.patch199
-rw-r--r--patches.tizen/0641-usb-gadget-rndis-init-exit-rndis-at-module-load-unlo.patch115
-rw-r--r--patches.tizen/0642-usb-gadget-f_rndis-use-usb_gstrings_attach.patch86
-rw-r--r--patches.tizen/0643-usb-gadget-f_rndis-add-configfs-support.patch192
-rw-r--r--patches.tizen/0644-usb-gadget-f_mass_storage-fix-default-product-name.patch38
-rw-r--r--patches.tizen/0645-usb-gadget-Kconfig-fix-separate-building-of-configfs.patch102
-rw-r--r--patches.tizen/0646-usb-gadget-f_ecm-fix-missing-unlock-on-error-in-ecm_.patch35
-rw-r--r--patches.tizen/0647-usb-gadget-f_ncm-fix-missing-unlock-on-error-in-ncm_.patch35
-rw-r--r--patches.tizen/0648-usb-gadget-f_subset-fix-missing-unlock-on-error-in-g.patch35
-rw-r--r--patches.tizen/0649-usb-gadget-Kconfig-Fix-configfs-based-RNDIS-function.patch33
-rw-r--r--patches.tizen/0650-usb-gadget-ether-put_usb_function-on-unbind.patch60
-rw-r--r--patches.tizen/0651-usb-gadget-free-opts-struct-on-error-recovery.patch150
-rw-r--r--patches.tizen/0652-usb-gadget-multi-fix-error-return-code-in-cdc_do_con.patch69
-rw-r--r--patches.tizen/0653-usb-gadget-f_phonet-remove-unused-preprocessor-condi.patch42
-rw-r--r--patches.tizen/0654-usb-gadget-cdc2-fix-conversion-to-new-interface-of-f.patch76
-rw-r--r--patches.tizen/0655-usb-gadget-configfs-keep-a-function-if-it-is-not-suc.patch52
-rw-r--r--patches.tizen/0656-usb-gadget-configfs-add-a-method-to-unregister-the-g.patch54
-rw-r--r--patches.tizen/0657-usb-gadget-create-a-utility-module-for-mass_storage.patch1160
-rw-r--r--patches.tizen/0658-usb-gadget-f_mass_storage-factor-out-a-header-file.patch326
-rw-r--r--patches.tizen/0659-usb-gadget-f_mass_storage-add-a-level-of-indirection.patch211
-rw-r--r--patches.tizen/0660-usb-gadget-f_mass_storage-use-usb_gstrings_attach.patch82
-rw-r--r--patches.tizen/0661-usb-gadget-f_mass_storage-split-fsg_common-initializ.patch597
-rw-r--r--patches.tizen/0662-usb-gadget-f_mass_storage-use-fsg_common_setup-in-fs.patch70
-rw-r--r--patches.tizen/0663-usb-gadget-f_mass_storage-use-fsg_common_set_num_buf.patch82
-rw-r--r--patches.tizen/0664-usb-gadget-f_mass_storage-use-fsg_common_set_nluns-i.patch67
-rw-r--r--patches.tizen/0665-usb-gadget-f_mass_storage-use-fsg_common_set_ops-_pr.patch35
-rw-r--r--patches.tizen/0666-usb-gadget-f_mass_storage-use-fsg_common_set_cdev-in.patch68
-rw-r--r--patches.tizen/0667-usb-gadget-f_mass_storage-use-fsg_common_create_luns.patch159
-rw-r--r--patches.tizen/0668-usb-gadget-f_mass_storage-use-fsg_common_set_inquiry.patch51
-rw-r--r--patches.tizen/0669-usb-gadget-f_mass_storage-use-fsg_common_run_thread-.patch48
-rw-r--r--patches.tizen/0670-usb-gadget-f_mass_storage-convert-to-new-function-in.patch498
-rw-r--r--patches.tizen/0671-usb-gadget-mass_storage-convert-to-new-interface-of-.patch202
-rw-r--r--patches.tizen/0672-usb-gadget-storage_common-make-attribute-operations-.patch237
-rw-r--r--patches.tizen/0673-usb-gadget-storage_common-add-methods-to-show-store-.patch97
-rw-r--r--patches.tizen/0674-usb-gadget-f_mass_storage-add-configfs-support.patch533
-rw-r--r--patches.tizen/0675-usb-gadget-acm_ms-convert-to-new-interface-of-f_mass.patch225
-rw-r--r--patches.tizen/0676-usb-gadget-multi-convert-to-new-interface-of-f_ecm.patch192
-rw-r--r--patches.tizen/0677-usb-gadget-multi-convert-to-new-interface-of-f_rndis.patch202
-rw-r--r--patches.tizen/0678-usb-gadget-multi-convert-to-new-interface-of-f_mass_.patch246
-rw-r--r--patches.tizen/0679-usb-gadget-f_mass_storage-remove-compatibility-layer.patch371
-rw-r--r--patches.tizen/0680-usb-gadget-mass_storage-merge-usb_f_mass_storage-mod.patch80
-rw-r--r--patches.tizen/0681-clk-Provide-not-locked-variant-of-of_clk_get_from_pr.patch148
-rw-r--r--patches.tizen/0682-clkdev-Fix-race-condition-in-clock-lookup-from-devic.patch74
-rw-r--r--patches.tizen/0683-clk-Add-common-__clk_get-__clk_put-implementations.patch168
-rw-r--r--patches.tizen/0684-clk-Assign-module-owner-of-a-clock-being-registered.patch48
-rw-r--r--patches.tizen/0685-clk-Implement-clk_unregister.patch266
-rw-r--r--patches.tizen/0686-media-V4L2-add-temporary-clock-helpers.patch351
-rw-r--r--patches.tizen/0687-media-V4L2-add-a-device-pointer-to-struct-v4l2_subde.patch57
-rw-r--r--patches.tizen/0688-media-V4L2-support-asynchronous-subdevice-registrati.patch475
-rw-r--r--patches.tizen/0689-media-V4L2-fix-compilation-if-CONFIG_I2C-is-undefine.patch39
-rw-r--r--patches.tizen/0690-media-V4L-Drop-bus_type-check-in-v4l2-async-match-fu.patch47
-rw-r--r--patches.tizen/0691-media-V4L-Rename-v4l2_async_bus_-to-v4l2_async_match.patch121
-rw-r--r--patches.tizen/0692-media-V4L-Add-V4L2_ASYNC_MATCH_OF-subdev-matching-ty.patch90
-rw-r--r--patches.tizen/0693-media-V4L-Rename-subdev-field-of-struct-v4l2_async_n.patch61
-rw-r--r--patches.tizen/0694-media-V4L-Merge-struct-v4l2_async_subdev_list-with-s.patch268
-rw-r--r--patches.tizen/0695-media-v4l-of-Use-of_get_child_by_name.patch38
-rw-r--r--patches.tizen/0696-media-v4l-of-Drop-acquired-reference-to-node-when-ge.patch33
-rw-r--r--patches.tizen/0697-media-v4l-async-Make-it-safe-to-unregister-unregiste.patch46
-rw-r--r--patches.tizen/0698-media-v4l2-async-Use-proper-list-head-for-iteration-.patch33
-rw-r--r--patches.tizen/0699-media-media-OF-add-sync-on-green-active-property.patch65
-rw-r--r--patches.tizen/0700-media-exynos4-is-Fix-potential-NULL-pointer-derefere.patch48
-rw-r--r--patches.tizen/0701-media-exynos4-is-Initialize-the-ISP-subdev-sd-owner-.patch33
-rw-r--r--patches.tizen/0702-media-exynos4-is-Add-missing-MODULE_LICENSE-for-exyn.patch30
-rw-r--r--patches.tizen/0703-media-exynos4-is-Add-missing-v4l2_device_unregister-.patch30
-rw-r--r--patches.tizen/0704-media-exynos4-is-Simplify-sclk_cam-clocks-handling.patch75
-rw-r--r--patches.tizen/0705-media-exynos4-is-Annotate-unused-functions.patch48
-rw-r--r--patches.tizen/0706-media-exynos4-is-Print-error-message-on-timeout.patch31
-rw-r--r--patches.tizen/0707-media-exynos4-is-Ensure-the-FIMC-gate-clock-is-disab.patch50
-rw-r--r--patches.tizen/0708-media-V4L-s5c73m3-Add-format-propagation-for-TRY-for.patch38
-rw-r--r--patches.tizen/0709-dma-pl330-rip-out-broken-redundant-ID-probing.patch108
-rw-r--r--patches.tizen/0710-dma-pl330-use-dma_addr_t-for-describing-bus-addresse.patch39
-rw-r--r--patches.tizen/0711-ARM-tizen_defconfig-disable-s5p-ehci.patch79
-rw-r--r--patches.tizen/0712-spi-spi-s3c64xx-Remove-platform-dependent-code.patch147
-rw-r--r--patches.tizen/0713-spi-spi-s3c64xx-Correct-functions-namespacing.patch130
-rw-r--r--patches.tizen/0714-spi-spi-s3c64xx-Refactor-dma-sections.patch217
-rw-r--r--patches.tizen/0715-spi-spi-s3c64xx-Add-coherent-buffers-for-dma-transfe.patch230
-rw-r--r--patches.tizen/0716-spi-spi-s3c64xx-s3c64xx_prepare_dma-clean-up.patch41
-rw-r--r--patches.tizen/0717-spi-spi-s3c64xx-Remove-unused-code.patch115
-rw-r--r--patches.tizen/0718-media-s5c73m3-Change-SPI-write-packet-size.patch39
-rw-r--r--patches.tizen/0719-media-s5c73m3-s5c73m3_spi_write-clean-up.patch49
-rw-r--r--patches.tizen/0720-V4L-s5k6a3-Add-DT-binding-documentation.patch85
-rw-r--r--patches.tizen/0721-V4L-Add-driver-for-s5k6a3-image-sensor.patch394
-rw-r--r--patches.tizen/0722-V4L-s5k6a3-Add-support-for-asynchronous-subdev-regis.patch135
-rw-r--r--patches.tizen/0723-Revert-V4L-s5c73m3-Initial-device-tree-support.patch221
-rw-r--r--patches.tizen/0724-media-s5c73m3-Convert-to-devm_gpio_request_one.patch163
-rw-r--r--patches.tizen/0725-ARM-dts-Add-missing-data-lanes-property-for-exynos44.patch42
-rw-r--r--patches.tizen/0726-ARM-dts-Add-clock-cells-property-to-camera-node-in-e.patch40
-rw-r--r--patches.tizen/0727-ARM-dts-Add-clock-properties-for-camera-sensors-on-e.patch83
-rw-r--r--patches.tizen/0728-ARM-dts-Update-s5c73m3-sensor-gpio-properties-for-ex.patch48
-rw-r--r--patches.tizen/0729-V4L-s5c73m3-Add-device-tree-support.patch537
-rw-r--r--patches.tizen/0730-exynos4-is-Add-clock-provider-for-the-external-clock.patch295
-rw-r--r--patches.tizen/0731-exynos4-is-Use-external-s5k6a3-sensor-driver.patch632
-rw-r--r--patches.tizen/0732-exynos4-is-Add-support-for-asynchronous-sensor-subdd.patch467
-rw-r--r--patches.tizen/0733-Revert-s5k5baf-add-camera-sensor-driver.patch2166
-rw-r--r--patches.tizen/0734-Revert-m5mols-added-device-tree-support.patch209
-rw-r--r--patches.tizen/0735-Revert-m5mols-device-initialization-moved-to-V4L2-re.patch74
-rw-r--r--patches.tizen/0736-media-media-i2c-Convert-to-gpio_request_one.patch149
-rw-r--r--patches.tizen/0737-media-media-i2c-Convert-to-devm_kzalloc.patch1736
-rw-r--r--patches.tizen/0738-media-media-i2c-Convert-to-devm_gpio_request_one.patch296
-rw-r--r--patches.tizen/0739-media-media-i2c-Convert-to-devm_regulator_bulk_get.patch99
-rw-r--r--patches.tizen/0740-media-m5mols-Convert-to-devm_request_irq.patch67
-rw-r--r--patches.tizen/0741-ARM-dts-exynos4210-trats-update-clocks-and-gpios-in-.patch35
-rw-r--r--patches.tizen/0742-s5k5baf-add-camera-sensor-driver.patch2267
-rw-r--r--patches.tizen/0743-m5mols-change-module-name-to-lowercase.patch40
-rw-r--r--patches.tizen/0744-m5mols-add-device-tree-support.patch255
-rw-r--r--patches.tizen/0745-m5mols-add-clock-support.patch77
-rw-r--r--patches.tizen/0746-m5mols-add-async-subdev-registration.patch38
-rw-r--r--patches.tizen/0747-ARM-dts-exynos4210-trats-change-compatible-for-m5mol.patch39
-rw-r--r--patches.tizen/0748-ARM-dts-exynos4210-trats-modify-m5mols-node-accordin.patch36
-rw-r--r--patches.tizen/0749-exynos4-is-Fix-the-writeback-clocks-handling.patch74
-rw-r--r--patches.tizen/0750-tizen_defconfig-update.patch28
-rw-r--r--patches.tizen/0751-Revert-video-exynos_dsi-Use-generic-PHY-driver.patch148
-rw-r--r--patches.tizen/0752-Revert-media-exynos4-is-Use-the-generic-MIPI-CSIS-PH.patch123
-rw-r--r--patches.tizen/0753-Revert-phy-Add-driver-for-Exynos-MIPI-CSIS-DSIM-DPHY.patch245
-rw-r--r--patches.tizen/0754-Revert-drivers-phy-add-generic-PHY-framework.patch1209
-rw-r--r--patches.tizen/0755-drivers-phy-add-generic-PHY-framework.patch1346
-rw-r--r--patches.tizen/0756-phy-Add-driver-for-Exynos-MIPI-CSIS-DSIM-DPHYs.patch263
-rw-r--r--patches.tizen/0757-media-exynos4-is-Use-the-generic-MIPI-CSIS-PHY-drive.patch113
-rw-r--r--patches.tizen/0758-video-exynos_dsi-Use-generic-PHY-driver.patch200
-rw-r--r--patches.tizen/0759-ARM-dts-Add-node-aliases-for-ISP_I2C-bus-controllers.patch30
-rw-r--r--patches.tizen/0760-ARM-dts-Add-common-jpeg-codec-node-for-Exynos4-SoCs.patch54
-rw-r--r--patches.tizen/0761-tizen_defconfig-update.patch40
-rw-r--r--patches.tizen/0762-HACK-usb-gadget-Fix-enumeration-on-boot.patch43
-rw-r--r--patches.tizen/0763-usb-s3c-hsotg-do-not-disconnect-gadget-when-receivin.patch33
-rw-r--r--patches.tizen/0764-WIP-usb-gadget-add-slp-composite-gadget.patch2204
-rw-r--r--patches.tizen/0765-phy-Add-new-Exynos-USB-PHY-driver.patch1155
-rw-r--r--patches.tizen/0766-usb-ehci-s5p-Change-to-use-phy-provided-by-the-gener.patch98
-rw-r--r--patches.tizen/0767-usb-s3c-hsotg-Use-the-new-Exynos-USB-phy-driver-with.patch93
-rw-r--r--patches.tizen/0768-ARM-dts-Add-new-USB-PHY-driver-to-dts-of-exynos4412-.patch69
-rw-r--r--patches.tizen/0769-tizen_defconfig-update.patch57
-rw-r--r--patches.tizen/0770-drm-exynos-fixed-YCbCr-start-addresses-port-for-inpu.patch52
-rw-r--r--patches.tizen/0771-mmc-dw-mmc-check-whether-card-is-busy-or-not-before-.patch82
-rw-r--r--patches.tizen/0772-phy-Correct-Exynos-USB-PHY-device-tree-documentation.patch34
-rw-r--r--patches.tizen/0773-ARM-dts-Correct-USB-PHY-use-in-exynos4412-slp_pq.dts.patch34
-rw-r--r--patches.tizen/0774-mmc-core-Update-the-ext-csd.rev-check-for-eMMC5.1.patch34
-rw-r--r--patches.tizen/0775-drivers-usb-s3c-hsotg-fix-gadget-unregistering.patch46
-rw-r--r--patches.tizen/0776-usb-gadget-s3c-hsotg-fix-non-dt-build.patch26
-rw-r--r--patches.tizen/0777-USB-gadget-s3c-hsotg-fix-protocol-stall-handling.patch51
-rw-r--r--patches.tizen/0778-USB-gadget-s3c-hsotg-fix-dedicated-fifos-handling.patch131
-rw-r--r--patches.tizen/0779-USB-gadget-s3c-hsotg-fix-clear-feature-ENDPOINT_HALT.patch76
-rw-r--r--patches.tizen/0780-ARM-EXYNOS-Avoid-potential-invalid-genpd-pointer-der.patch35
-rw-r--r--patches.tizen/0781-exynos4-is-Enable-registration-of-fimc-lite-devices-.patch50
-rw-r--r--patches.tizen/0782-exynos4-is-Do-not-unnecessarily-activate-fimc-lite-d.patch53
-rw-r--r--patches.tizen/0783-exynos4-is-Do-not-unnecessarily-activate-fimc-device.patch50
-rw-r--r--patches.tizen/0784-exynos4-is-Do-not-unnecessarily-activate-fimc-is-dev.patch44
-rw-r--r--patches.tizen/0785-exynos4-is-Make-fimc-lite-dependency-on-fimc-is-expl.patch40
-rw-r--r--patches.tizen/0786-ARM-exynos-Make-fimc-lite-nodes-children-of-fimc-is-.patch150
-rw-r--r--patches.tizen/0787-exynos4-is-Disable-ISP-UART-clock-gating.patch40
-rw-r--r--patches.tizen/0788-ARM-dts-Assign-correct-UART-gate-clock-to-Exynos4x12.patch31
-rw-r--r--patches.tizen/0789-Revert-exynos4-is-Ungate-uart-clocks-on-system-suspe.patch76
-rw-r--r--patches.tizen/0790-dmaengine-add-dma_slave_get_caps-api.patch98
-rw-r--r--patches.tizen/0791-dma-pl330-Implement-device_slave_caps.patch70
-rw-r--r--patches.tizen/0792-dmaengine-add-interface-of-dma_get_slave_channel.patch85
-rw-r--r--patches.tizen/0793-dma-pl330-split-off-common-code-to-give-back-descrip.patch86
-rw-r--r--patches.tizen/0794-dmaengine-make-dma_submit_error-return-an-error-code.patch43
-rw-r--r--patches.tizen/0795-dma-pl330-Fix-handling-of-TERMINATE_ALL-while-proces.patch215
-rw-r--r--patches.tizen/0796-dmaengine-dma_slave_caps-remove-sg-entries.patch45
-rw-r--r--patches.tizen/0797-dmaengine-pl330-use-dma_set_max_seg_size-to-set-the-.patch48
-rw-r--r--patches.tizen/0798-dts-arm-add-missing-clock-properties-to-MCT-for-Exyn.patch29
-rw-r--r--patches.tizen/0799-extcon-Add-extcon-port-driver-to-maintain-compatibil.patch703
-rw-r--r--patches.tizen/0800-extcon-max77693-Define-dock-constant-to-remove-compi.patch34
-rw-r--r--patches.tizen/0801-extcon-Add-extcon-port-platform-device-to-update-uev.patch93
-rw-r--r--patches.tizen/0802-tizen-Update-default-configuration-to-enable-extcon-.patch40
-rw-r--r--patches.tizen/0803-WIP-extcon-do-not-update-cable-state-if-notifier-can.patch46
-rw-r--r--patches.tizen/0804-drm-Add-drm-backlight-subsystem-support.patch210
-rw-r--r--patches.tizen/0805-drm-exynos-support-drm-backlight-dpms-on-off.patch204
-rw-r--r--patches.tizen/0806-usb-gadget-slp-remove-rndis_init.patch35
-rw-r--r--patches.tizen/0807-V4L-Add-mem2mem-ioctl-and-file-operation-helpers.patch231
-rw-r--r--patches.tizen/0808-s5p-jpeg-Initialize-vfd_decoder-vfl_dir-field.patch39
-rw-r--r--patches.tizen/0809-s5p-jpeg-Use-mem-to-mem-ioctl-helpers.patch281
-rw-r--r--patches.tizen/0810-s5p-jpeg-Add-support-for-Exynos4x12.patch2588
-rw-r--r--patches.tizen/0811-video-cdf-panel-support-lcd-class-operations-for-s6d.patch103
-rw-r--r--patches.tizen/0812-arm-dst-add-SLP-Pegasus-Dual-board-for-testing-Exyno.patch383
-rw-r--r--patches.tizen/0813-ARM-dts-Correct-audio-clock-number-in-exynos4412-slp.patch31
-rw-r--r--patches.tizen/0814-vrange-Add-basic-data-structure-and-functions.patch366
-rw-r--r--patches.tizen/0815-vrange-Add-vrange-support-to-mm_structs.patch196
-rw-r--r--patches.tizen/0816-vrange-Clear-volatility-on-new-mmaps.patch117
-rw-r--r--patches.tizen/0817-vrange-Add-support-for-volatile-ranges-on-file-mappi.patch84
-rw-r--r--patches.tizen/0818-vrange-Add-new-vrange-2-system-call.patch315
-rw-r--r--patches.tizen/0819-vrange-Add-basic-functions-to-purge-volatile-pages.patch296
-rw-r--r--patches.tizen/0820-vrange-Purge-vrange-anon-pages-when-memory-is-tight.patch252
-rw-r--r--patches.tizen/0821-vrange-Send-SIGBUS-when-user-try-to-access-purged-pa.patch274
-rw-r--r--patches.tizen/0822-vrange-Allocate-vroot-dynamically.patch565
-rw-r--r--patches.tizen/0823-vrange-Add-vrange-LRU-list-for-purging.patch179
-rw-r--r--patches.tizen/0824-vrange-Add-vrange-shrinking-basic-functions-for-swap.patch174
-rw-r--r--patches.tizen/0825-vrange-Purging-vrange-anon-pages-from-shrinker.patch315
-rw-r--r--patches.tizen/0826-vrange-Support-background-purging-for-vrange-file.patch109
-rw-r--r--patches.tizen/0827-vrange-Add-vmstat-counter-about-purged-page.patch74
-rw-r--r--patches.tizen/0828-vrange-Add-ARM-vrange-syscall.patch53
-rw-r--r--patches.tizen/0829-devfreq-exynos4-Support-DT-in-exynos4-busfreq-driver.patch89
-rw-r--r--patches.tizen/0830-dts-exynos4x12-Add-device-tree-node-for-exynos4-busf.patch29
-rw-r--r--patches.tizen/0831-WORKAROUND-Temporary-workaround-for-Suspend-To-Ram.patch43
-rw-r--r--patches.tizen/0832-ARM-defconfig-enable-the-mmc-clock-gating-config.patch53
-rw-r--r--patches.tizen/0833-arm-exynos-Fix-SFR-base-address-of-DMC-in-EXYNOS4-se.patch93
-rw-r--r--patches.tizen/0834-regulator-max77686-Support-DVS-control-in-max77686-r.patch173
-rw-r--r--patches.tizen/0835-ehci-s5p-Use-device-tree-to-get-name-of-desired-phy.patch41
-rw-r--r--patches.tizen/0836-dts-arm-Add-dts-file-for-the-exynos4412-odroidx2-boa.patch503
-rw-r--r--patches.tizen/0837-dts-arm-Add-support-for-new-Exynos-USB-phy-driver-to.patch132
-rw-r--r--patches.tizen/0838-ehci-s5p-Add-power-regulator-support.patch114
-rw-r--r--patches.tizen/0839-ehci-s5p-Add-second-clock-to-the-ehci-s5p-driver.patch118
-rw-r--r--patches.tizen/0840-dts-arm-Add-voltage-regulator-and-additional-clock-s.patch89
-rw-r--r--patches.tizen/0841-phy-exynos-usb-Fix-referenct-counting.patch29
-rw-r--r--patches.tizen/0842-phy-exynos-Change-order-of-initialization-of-phy-in-.patch79
-rw-r--r--patches.tizen/0843-regulator-dts-slp-PD-MAX8997-device-tree-nodes-defin.patch112
-rw-r--r--patches.tizen/0844-ARM-cpufreq-Parse-CPUFREQ-s-voltage-table-passed-as-.patch105
-rw-r--r--patches.tizen/0845-ARM-clk-exynos-pll35xx-Extend-pll35xx_set_rate-to-su.patch93
-rw-r--r--patches.tizen/0846-cpufreq-exynos4x12-Support-the-frequency-change-only.patch90
-rw-r--r--patches.tizen/0847-cosmetic-Remove-extern-from-exynos_of_parse_freq_tab.patch29
-rw-r--r--patches.tizen/0848-dts-cpufreq-exynos4212-pegasusD-Enable-support-for-c.patch38
-rw-r--r--patches.tizen/0849-dts-thermal-exynos4212-pegasusD-Device-tree-node-def.patch31
-rw-r--r--patches.tizen/0850-dts-exynos4412-redwood-Adjust-REDWOOD-dts-to-support.patch33
-rw-r--r--patches.tizen/0851-usb-gadget-Refcount-for-gadget-pullup.patch86
-rw-r--r--patches.tizen/0852-Revert-HACK-usb-gadget-Fix-enumeration-on-boot.patch37
-rw-r--r--patches.tizen/0853-drivers-iommu-add-workaround-for-multiple-suspend-re.patch58
-rw-r--r--patches.tizen/0854-media-fimc-fix-clock-management-in-suspend-resume-pa.patch56
-rw-r--r--patches.tizen/0855-media-s5p-jpeg-fix-clock-management-in-suspend-resum.patch51
-rw-r--r--patches.tizen/0856-exynos_drm_ipp-fix-get-property-IOCTL.patch31
-rw-r--r--patches.tizen/0857-exynos_drm-replace-enums-by-__u32-in-structs-used-in.patch64
-rw-r--r--patches.tizen/0858-exynos_drm_fimc-simplify-pre-scaler-ratio-calculatio.patch114
-rw-r--r--patches.tizen/0859-exynos_drm_fimc-rename-fimc_handle_irq-to-fimc_mask_.patch85
-rw-r--r--patches.tizen/0860-exynos_drm_fimc-replace-hw-access-macros-with-functi.patch850
-rw-r--r--patches.tizen/0861-exynos_drm_fimc-replace-mutex-by-spinlock.patch79
-rw-r--r--patches.tizen/0862-exynos_drm_fimc-simplify-and-rename-fimc_dst_get_buf.patch66
-rw-r--r--patches.tizen/0863-charger-max77693-code-cleaning.patch234
-rw-r--r--patches.tizen/0864-charger-max77693-Fix-initial-charger-configuration-p.patch150
-rw-r--r--patches.tizen/0865-charger-manager-Make-charge_now-node-under-batter-sy.patch39
-rw-r--r--patches.tizen/0866-extcon-Add-an-API-to-get-extcon-device-from-dt-node.patch176
-rw-r--r--patches.tizen/0867-extcon-Add-EXPORT_SYMBOL_GPL-for-exported-functions.patch43
-rw-r--r--patches.tizen/0868-mfd-max77693-Add-max77693-pmuic-compatible.patch29
-rw-r--r--patches.tizen/0869-dts-Add-extcon-phandle-to-hsotg-node.patch50
-rw-r--r--patches.tizen/0870-dts-exynos4412-slp_pq-Remove-regulator_always_on-for.patch37
-rw-r--r--patches.tizen/0871-phy-exynos-usb-Remove-ref-counting-for-additional-re.patch41
-rw-r--r--patches.tizen/0872-s3c-hsotg-Regulator-switching-fix.patch49
-rw-r--r--patches.tizen/0873-s3c-hsotg-Fix-driver-context-storing.patch31
-rw-r--r--patches.tizen/0874-usb-gadget-udc-core-Add-extcon-hanling-to-reduce-pow.patch169
-rw-r--r--patches.tizen/0875-extcon-Extcon-load-time-modification.patch56
-rw-r--r--patches.tizen/0876-Fuel-Guague-MAX17042-Use-regmap-to-interface-with-in.patch673
-rw-r--r--patches.tizen/0877-M0-charging-Make-to-charge-battery-fully.patch41
-rw-r--r--patches.tizen/0878-charger-manager-Add-cm_chg_add_prorperty-macro.patch63
-rw-r--r--patches.tizen/0879-charger-manager-Replace-kzalloc-to-devm_kzalloc-and-.patch203
-rw-r--r--patches.tizen/0880-charger-manager-Add-default-battery-temperature-chec.patch216
-rw-r--r--patches.tizen/0881-battery-max17042-7-Fix-temperature-unit-to-milli-cen.patch31
-rw-r--r--patches.tizen/0882-drivers-s3c-hsotg-add-proper-suspend-resume-support.patch77
-rw-r--r--patches.tizen/0883-charger-manager-Parse-charger_desc-from-device-tree.patch382
-rw-r--r--patches.tizen/0884-drm-exynos-add-support-ARGB8888-for-ipp-fimc.patch58
-rw-r--r--patches.tizen/0885-drm-exynos-fix-to-calculate-offset-of-each-plane-for.patch245
-rw-r--r--patches.tizen/0886-ARM-dts-exynos4412-spl_pq-rename-the-fixed-regulator.patch31
-rw-r--r--patches.tizen/0887-mmc-dw_mmc-add-the-platdat-for-descriptor-number.patch76
-rw-r--r--patches.tizen/0888-ARM-dts-exynos4412_slp_pq-add-the-desc_num-for-mshc.patch29
-rw-r--r--patches.tizen/0889-ARM-atags_to_fdt-Add-support-for-passing-serial-numb.patch32
-rw-r--r--patches.tizen/0890-OF-fdt-Add-support-for-parsing-system-serial-number-.patch49
-rw-r--r--patches.tizen/0891-drivers-s3c-hsotg-fix-regulator-enable-sequence-in-r.patch43
-rw-r--r--patches.tizen/0892-drivers-s3c-hsotg-fix-incorrect-condition-for-clear_.patch28
-rw-r--r--patches.tizen/0893-drivers-s3c-hsotg-hide-some-not-really-needed-debug-.patch28
-rw-r--r--patches.tizen/0894-mmc-core-change-the-clkgate_delay-value-from-0-to-3.patch35
-rw-r--r--patches.tizen/0895-exynos-drm_fimd-support-lcdblk-system-register-contr.patch108
-rw-r--r--patches.tizen/0896-exynos-drm_fimd-remove-duplicated-clock-control-for-.patch57
-rw-r--r--patches.tizen/0897-display-panels-remove-duplicated-display_entity_set_.patch108
-rw-r--r--patches.tizen/0898-Revert-battery-max17042-7-Fix-temperature-unit-to-mi.patch32
-rw-r--r--patches.tizen/0899-charger-manager-Fix-unit-of-temperature-to-deci-cent.patch55
-rw-r--r--patches.tizen/0900-ADC-EXYNOS4412-Update-DT-and-board-configuration-to-.patch52
-rw-r--r--patches.tizen/0901-ntc_thermistor-Update-DT-and-board-configuration-to-.patch58
-rw-r--r--patches.tizen/0902-regulator-max77686-Correct-GPIOs-for-BUCK2-DVS-setti.patch52
-rw-r--r--patches.tizen/0903-cosmetic-max77686-Remove-unused-variable.patch26
-rw-r--r--patches.tizen/0904-cpufreq-Don-t-create-empty-sys-devices-system-cpu-cp.patch161
-rw-r--r--patches.tizen/0905-cpufreq-Store-cpufreq-policies-in-a-list.patch69
-rw-r--r--patches.tizen/0906-cpufreq-Add-boost-frequency-support-in-core.patch371
-rw-r--r--patches.tizen/0907-cpufreq-acpi-x86-Adjust-the-acpi-cpufreq.c-code-to-w.patch192
-rw-r--r--patches.tizen/0908-cpufreq-exynos-Extend-Exynos-cpufreq-driver-to-suppo.patch72
-rw-r--r--patches.tizen/0909-thermal-boost-Automatic-enable-disable-of-BOOST-feat.patch140
-rw-r--r--patches.tizen/0910-cpufreq-boost-Kconfig-Enable-software-managed-BOOST-.patch90
-rw-r--r--patches.tizen/0911-Documentation-cpufreq-boost-Update-BOOST-documentati.patch77
-rw-r--r--patches.tizen/0912-cpufreq-exynos4x12-Change-L0-driver-data-to-CPUFREQ_.patch38
-rw-r--r--patches.tizen/0913-ARM-exynos-Enable-boost-mode-for-exynos4412-redwood-.patch27
-rw-r--r--patches.tizen/0914-BOOST-Core-code-compliant-with-v9-of-the-patch.patch125
-rw-r--r--patches.tizen/0915-tizen-config-Enable-THERMAL-and-BOOST.patch162
-rw-r--r--patches.tizen/0916-mmc-sdhci-s3c-Use-mmc_gpio_request_cd-function.patch106
-rw-r--r--patches.tizen/0917-Revert-Thermal-exynos-Support-for-TMU-regulator-defi.patch67
-rw-r--r--patches.tizen/0918-Thermal-armada_thermal-Remove-redundant-platform_set.patch35
-rw-r--r--patches.tizen/0919-Thermal-dove_thermal-Remove-redundant-platform_set_d.patch35
-rw-r--r--patches.tizen/0920-Thermal-exynos-Remove-redundant-platform_set_drvdata.patch42
-rw-r--r--patches.tizen/0921-Thermal-kirkwood-Remove-redundant-platform_set_drvda.patch35
-rw-r--r--patches.tizen/0922-Thermal-rcar-Remove-redundant-platform_set_drvdata.patch35
-rw-r--r--patches.tizen/0923-Thermal-spear-Remove-redundant-platform_set_drvdata.patch35
-rw-r--r--patches.tizen/0924-drivers-thermal-don-t-check-resource-with-devm_iorem.patch90
-rw-r--r--patches.tizen/0925-Thermal-spear_thermal-convert-to-devm_ioremap_resour.patch67
-rw-r--r--patches.tizen/0926-thermal-rcar-Fix-typo-in-probe-information-message.patch30
-rw-r--r--patches.tizen/0927-thermal-cut-the-spaces-when-user-sets-policy.patch52
-rw-r--r--patches.tizen/0928-Thermal-core-Ask-.get_trip_temp-to-register-thermal-.patch35
-rw-r--r--patches.tizen/0929-Thermal-don-t-check-resource-with-devm_ioremap_resou.patch47
-rw-r--r--patches.tizen/0930-thermal-introduce-TI-SoC-thermal-driver.patch3642
-rw-r--r--patches.tizen/0931-Thermal-armada-Remove-redundant-use-of-of_match_ptr.patch34
-rw-r--r--patches.tizen/0932-Thermal-dove-Remove-redundant-use-of-of_match_ptr.patch33
-rw-r--r--patches.tizen/0933-Thermal-kirkwood-Remove-redundant-use-of-of_match_pt.patch34
-rw-r--r--patches.tizen/0934-Thermal-spear-Remove-redundant-use-of-of_match_ptr.patch36
-rw-r--r--patches.tizen/0935-thermal-cpu_cooling-fix-descend-check-in-get_propert.patch39
-rw-r--r--patches.tizen/0936-thermal-ti-soc-thermal-remove-external-heat-while-ex.patch92
-rw-r--r--patches.tizen/0937-thermal-ti-soc-thermal-freeze-FSM-while-computing-tr.patch70
-rw-r--r--patches.tizen/0938-thermal-ti-soc-thermal-remove-usage-of-IS_ERR_OR_NUL.patch151
-rw-r--r--patches.tizen/0939-thermal-ti-soc-thermal-add-thermal-data-for-DRA752-c.patch861
-rw-r--r--patches.tizen/0940-thermal-ti-soc-thermal-add-dra752-chip-to-device-tab.patch54
-rw-r--r--patches.tizen/0941-thermal-consider-emul_temperature-while-computing-tr.patch43
-rw-r--r--patches.tizen/0942-Thermal-CPU-Package-temperature-thermal.patch707
-rw-r--r--patches.tizen/0943-thermal-fix-x86_pkg_temp_thermal.c-build-and-Kconfig.patch41
-rw-r--r--patches.tizen/0944-thermal-exynos-Support-both-EXYNOS4X12-SoCs.patch36
-rw-r--r--patches.tizen/0945-thermal-ti-soc-thermal-use-standard-GPIO-DT-bindings.patch62
-rw-r--r--patches.tizen/0946-Thermal-x86-package-temp-thermal-crash.patch45
-rw-r--r--patches.tizen/0947-Thermal-x86_pkg_temp-fix-krealloc-misuse-in-in-pkg_t.patch49
-rw-r--r--patches.tizen/0948-Thermal-x86_pkg_temp-Limit-number-of-pkg-temp-zones.patch44
-rw-r--r--patches.tizen/0949-Thermal-Fix-lockup-of-cpu_down.patch43
-rw-r--r--patches.tizen/0950-thermal-add-imx-thermal-driver-support.patch466
-rw-r--r--patches.tizen/0951-thermal-exynos-Moving-exynos-thermal-files-into-sams.patch2230
-rw-r--r--patches.tizen/0952-thermal-exynos-Use-ARCH_HAS_BANDGAP-config-to-know-t.patch36
-rw-r--r--patches.tizen/0953-thermal-exynos-Remove-un-necessary-CPU_THERMAL-depen.patch35
-rw-r--r--patches.tizen/0954-thermal-exynos-Bifurcate-exynos-thermal-common-and-t.patch1003
-rw-r--r--patches.tizen/0955-thermal-exynos-Rename-exynos_thermal.c-to-exynos_tmu.patch1357
-rw-r--r--patches.tizen/0956-thermal-exynos-Move-exynos_thermal.h-from-include-to.patch198
-rw-r--r--patches.tizen/0957-thermal-exynos-Bifurcate-exynos-tmu-driver-and-confi.patch286
-rw-r--r--patches.tizen/0958-thermal-exynos-Add-missing-definations-and-code-clea.patch134
-rw-r--r--patches.tizen/0959-thermal-exynos-Add-extra-entries-in-the-tmu-platform.patch299
-rw-r--r--patches.tizen/0960-thermal-exynos-Move-register-definitions-from-driver.patch647
-rw-r--r--patches.tizen/0961-thermal-exynos-Support-thermal-tripping.patch136
-rw-r--r--patches.tizen/0962-thermal-exynos-Fix-to-clear-only-the-generated-inter.patch70
-rw-r--r--patches.tizen/0963-thermal-exynos-Add-support-for-instance-based-regist.patch272
-rw-r--r--patches.tizen/0964-thermal-exynos-Modify-private_data-to-appropriate-na.patch73
-rw-r--r--patches.tizen/0965-thermal-exynos-Return-success-even-if-no-cooling-dat.patch44
-rw-r--r--patches.tizen/0966-thermal-exynos-Make-the-zone-handling-use-trip-infor.patch167
-rw-r--r--patches.tizen/0967-thermal-exynos-Remove-non-DT-based-support.patch63
-rw-r--r--patches.tizen/0968-thermal-exynos-Add-support-to-handle-many-instances-.patch522
-rw-r--r--patches.tizen/0969-thermal-exynos-Add-TMU-features-to-check-instead-of-.patch166
-rw-r--r--patches.tizen/0970-thermal-exynos-use-device-resource-management-infras.patch136
-rw-r--r--patches.tizen/0971-thermal-exynos-Add-support-to-access-common-register.patch68
-rw-r--r--patches.tizen/0972-thermal-exynos-Add-driver-support-for-exynos5440-TMU.patch226
-rw-r--r--patches.tizen/0973-thermal-exynos-Add-thermal-configuration-data-for-ex.patch134
-rw-r--r--patches.tizen/0974-thermal-exynos-Fix-to-set-the-second-point-correctio.patch46
-rw-r--r--patches.tizen/0975-thermal-exynos-Add-hardware-mode-thermal-calibration.patch163
-rw-r--r--patches.tizen/0976-thermal-exynos-Support-for-TMU-regulator-defined-at-.patch90
-rw-r--r--patches.tizen/0977-thermal-imx-dynamic-passive-and-SoC-specific-critica.patch124
-rw-r--r--patches.tizen/0978-thermal-imx-implement-thermal-alarm-interrupt-handli.patch264
-rw-r--r--patches.tizen/0979-thermal-exynos_tmu-fix-wrong-error-check-for-mapped-.patch32
-rw-r--r--patches.tizen/0980-Thermal-cpu_cooling-Return-directly-for-the-cpu-out-.patch41
-rw-r--r--patches.tizen/0981-thermal-step_wise-cdev-only-needs-update-on-a-new-ta.patch36
-rw-r--r--patches.tizen/0982-thermal-step_wise-return-instance-target-by-default.patch109
-rw-r--r--patches.tizen/0983-thermal-ti-soc-thermal-Initialize-counter_delay-fiel.patch63
-rw-r--r--patches.tizen/0984-thermal-ti-soc-thermal-Set-the-bandgap-mask-counter-.patch52
-rw-r--r--patches.tizen/0985-thermal-ti-soc-thermal-Ensure-to-compute-thermal-tre.patch39
-rw-r--r--patches.tizen/0986-thermal-exynos-Fix-typos-in-Kconfig.patch43
-rw-r--r--patches.tizen/0987-thermal-exynos-Fix-potential-NULL-pointer-dereferenc.patch50
-rw-r--r--patches.tizen/0988-thermal-exynos-Clean-up-non-DT-remnants.patch100
-rw-r--r--patches.tizen/0989-thermal-hwmon-move-hwmon-support-to-single-file.patch673
-rw-r--r--patches.tizen/0990-drivers-thermal-parent-virtual-hwmon-with-thermal-zo.patch38
-rw-r--r--patches.tizen/0991-drivers-thermal-make-usage-of-CONFIG_THERMAL_HWMON-o.patch52
-rw-r--r--patches.tizen/0992-thermal-thermal_core-allow-binding-with-limits-on-bi.patch77
-rw-r--r--patches.tizen/0993-drivers-thermal-add-check-when-unregistering-cpu-coo.patch39
-rw-r--r--patches.tizen/0994-dts-Fix-exynos4x12-dts-file-to-get-thermal-sensor-re.patch82
-rw-r--r--patches.tizen/0995-Documentation-thermal-Explain-the-exynos-thermal-dri.patch95
-rw-r--r--patches.tizen/0996-thermal-Add-ommitted-codes-from-merging.patch86
-rw-r--r--patches.tizen/0997-Introduce-CONFIG_ARCH_HAS_BANDGAP-and-ARCH_EXYNOS4-5.patch52
-rw-r--r--patches.tizen/0998-thermal-EXYNOS-always-register-TMU-driver-with-core-.patch79
-rw-r--r--patches.tizen/0999-thermal-exynos-Set-MUX-bits-in-tmu-s-control-registe.patch55
-rw-r--r--patches.tizen/1000-Revert-thermal-exynos-Set-MUX-bits-in-tmu-s-control-.patch55
-rw-r--r--patches.tizen/1001-thermal-exynos-Remove-check-for-thermal-device-point.patch45
-rw-r--r--patches.tizen/1002-thermal-exynos-Provide-separate-TMU-data-for-Exynos4.patch152
-rw-r--r--patches.tizen/1003-thermal-exynos-Provide-initial-setting-for-TMU-s-tes.patch114
-rw-r--r--patches.tizen/1004-pwm-devm-alloc-correct-pointer-size.patch41
-rw-r--r--patches.tizen/1005-pwm-Add-sysfs-interface.patch684
-rw-r--r--patches.tizen/1006-pwm-Use-the-DT-macro-directly-when-parsing-PWM-DT-fl.patch46
-rw-r--r--patches.tizen/1007-pwm-samsung-Rename-to-pwm-samsung-legacy.patch758
-rw-r--r--patches.tizen/1008-pwm-Add-new-pwm-samsung-driver.patch688
-rw-r--r--patches.tizen/1009-pwm-Remove-superseded-pwm-samsung-legacy-driver.patch396
-rw-r--r--patches.tizen/1010-pwm-Add-PWM-polarity-flag-macro-for-DT.patch63
-rw-r--r--patches.tizen/1011-ARM-dts-add-clocks-and-enable-pwm-for-exynos4.patch34
-rw-r--r--patches.tizen/1012-pwm-samsung-memory-leak-bugfix-in-pwm_samsung_free.patch34
-rw-r--r--patches.tizen/1013-arm-Thumb-ARM-signal-handling-setup-skips-the-a-few-.patch76
-rw-r--r--patches.tizen/1014-mmc-sdhci-s3c-Revised-sdhci_s3c_remove-function.patch41
-rw-r--r--patches.tizen/1015-config-tizen-Enable-CONFIG_BRCMFMAC-for-supporting-W.patch33
-rw-r--r--patches.tizen/1016-cpufreq-M0-Allow-sailable-frequency-up-to-1.4Ghz-M0.patch33
-rw-r--r--patches.tizen/1017-cpufreq-LAB-Introduce-new-cpufreq-LAB-Legaccy-Applic.patch663
-rw-r--r--patches.tizen/1018-cpufreq-lab-Enable-overclocking-in-LAB.patch33
-rw-r--r--patches.tizen/1019-cpufreq-exysnos-Fix-the-way-of-enabling-boost-in-exy.patch65
-rw-r--r--patches.tizen/1020-cpufreq-lab-Fix-codes-for-correct-working-of-lab-gov.patch129
-rw-r--r--patches.tizen/1021-mmc-sdhci-s3c-Add-irq_set_wake-function.patch67
-rw-r--r--patches.tizen/1022-gpu-arm-mali400-ump-Fix-svn-revision-check.patch28
-rw-r--r--patches.tizen/1023-packaging-Bump-version.patch29
-rw-r--r--patches.tizen/1024-mali-Support-build-to-different-objdir-O.patch135
-rw-r--r--patches.tizen/1025-update-linux-kernel.spec-file-to-fix-build-problems.patch154
-rw-r--r--patches.tizen/1026-tizen-update-default-config-to-use-slp-gadget.patch126
-rw-r--r--patches.tizen/1027-gpu-arm-mali400-support-gpu-frequency-profiling.patch82
-rw-r--r--patches.tizen/1028-arch-ARM-dts-add-support-for-exynos4210-usbphy-drive.patch61
-rw-r--r--patches.tizen/1029-USB-gadget-s3c-hsotg-fix-spinlock-locking.patch45
-rw-r--r--patches.tizen/1030-USB-gadget-s3c-hsotg-fix-disconnect-handling.patch57
-rw-r--r--patches.tizen/1031-Include-kernel-configuration-in-kernel-image.patch35
-rw-r--r--patches.tizen/1032-Enable-RTC-chips-on-M0-devices.patch45
-rw-r--r--patches.tizen/1033-video-display-panel-s6d6aa1-Use-devm_kzalloc-to-allo.patch57
-rw-r--r--patches.tizen/1034-video-display-panel-s6e8aa0-Use-devm_kzalloc-to-allo.patch57
-rw-r--r--patches.tizen/1035-mmc-sdhci-pltfm-Use-devm_ioremap_resource.patch66
-rw-r--r--patches.tizen/1036-mfd-max77693-Fix-mapping-IRQ-during-mask-unmask.patch33
-rw-r--r--patches.tizen/1037-mmc-sdhci-s3c-sdhci-s3c-driver-use-sdhci-pltfm.patch590
-rw-r--r--patches.tizen/1038-dts-exynos4x12-fix-clock-properties.patch46
-rw-r--r--patches.tizen/1039-pinctrl-exynos-Add-spinlocks-to-irq_mask-and-irq_unm.patch94
-rw-r--r--patches.tizen/1040-pinctrl-exynos-reorder-xyz_irq_unmask-so-future-patc.patch140
-rw-r--r--patches.tizen/1041-pinctrl-exynos-ack-level-triggered-interrupts-before.patch64
-rw-r--r--patches.tizen/1042-clk-samsung-exynos4-Propagate-rate-change-of-SPI-div.patch42
-rw-r--r--patches.tizen/1043-Smack-Local-IPv6-port-based-controls.patch515
-rw-r--r--patches.tizen/1044-Smack-Improve-access-check-performance.patch1589
-rw-r--r--patches.tizen/1045-Smack-Add-smkfstransmute-mount-option.patch107
-rw-r--r--patches.tizen/1046-Smack-Fix-possible-NULL-pointer-dereference-at-smk_n.patch35
-rw-r--r--patches.tizen/1047-Smack-Fix-the-bug-smackcipso-can-t-set-CIPSO-correct.patch43
-rw-r--r--patches.tizen/1048-Security-Add-Hook-to-test-if-the-particular-xattr-is.patch176
-rw-r--r--patches.tizen/1049-xattr-Constify-name-member-of-struct-xattr.patch245
-rw-r--r--patches.tizen/1050-security-smack-fix-memleak-in-smk_write_rules_list.patch96
-rw-r--r--patches.tizen/1051-security-smack-add-a-hash-table-to-quicken-smk_find_.patch172
-rw-r--r--patches.tizen/1052-Smack-network-label-match-fix.patch116
-rw-r--r--patches.tizen/1053-Smack-IPv6-casting-error-fix-for-3.11.patch111
-rw-r--r--patches.tizen/1054-Smack-parse-multiple-rules-per-write-to-load2-up-to-.patch258
-rw-r--r--patches.tizen/1055-Smack-Implement-lock-security-mode.patch195
-rw-r--r--patches.tizen/1056-Smack-Ptrace-access-check-mode.patch40
-rw-r--r--patches.tizen/1057-Smack-Cgroup-filesystem-access.patch86
-rw-r--r--patches.tizen/1058-linux-kernel-and-linux-kernel-modules-ABI-tools.patch8302
-rw-r--r--patches.tizen/1059-linux-kernel-and-linux-kernel-modules-ABI-next-chang.patch1284
-rw-r--r--patches.tizen/1060-abi-checker-tool-directory-location-update.patch18757
-rw-r--r--patches.tizen/1061-Smack-Make-the-syslog-control-configurable.patch256
-rw-r--r--patches.tizen/1062-Smack-change-rule-cap-check.patch37
-rw-r--r--patches.tizen/1063-Revert-abi-checker-tool-directory-location-update.patch18756
-rw-r--r--patches.tizen/1064-Revert-linux-kernel-and-linux-kernel-modules-ABI-nex.patch1268
-rw-r--r--patches.tizen/1065-Revert-linux-kernel-and-linux-kernel-modules-ABI-too.patch8286
-rw-r--r--patches.tizen/1066-video-display-s6e8aa0-adjust-brightness-value-to-dri.patch71
-rw-r--r--patches.tizen/1067-spec-file-update-to-build-output-uImage-and-Device-T.patch159
-rw-r--r--patches.tizen/1068-video-display-s6e8aa0-remove-duplicated-mtp-read-fun.patch75
-rw-r--r--patches.tizen/1069-video-display-s6e8aa0-change-power-off-sequence-to-r.patch49
-rw-r--r--patches.tizen/1070-iio-st_gyro-Prevent-register-threshold-events.patch42
-rw-r--r--patches.tizen/1071-iio-cm36651-Rebased-light-proximity-sensor-driver.patch982
-rw-r--r--patches.tizen/1072-USB-gadget-s3c-hsotg-skip-suspend-and-resume-when-us.patch44
-rw-r--r--patches.tizen/1073-usb-gadget-slp-fix-wrong-destory-function.patch74
-rw-r--r--patches.tizen/1074-USB-gadget-s3c-hsotg-fix-maxpacket-size-in-s3c_hsotg.patch41
-rw-r--r--patches.tizen/1075-USB-gadget-s3c-hsotg-add-flush-TX-FIFO-when-kill-all.patch36
-rw-r--r--patches.tizen/1076-drivers-clk-samsung-fix-build-dependency-for-exynos4.patch28
-rw-r--r--patches.tizen/1077-drivers-mmc-s3c-sdhci-select-required-sdhci-platform.patch31
-rw-r--r--patches.tizen/1078-extcon-max77693-Differentiate-info-message-for-easie.patch60
-rw-r--r--patches.tizen/1079-extcon-max77693-Force-using-UART-path-for-jig.patch49
-rw-r--r--patches.tizen/1080-mmc-dw_mmc-change-the-blk-setting-value-for-eMMC.patch41
-rw-r--r--patches.tizen/1081-spec-file-cleanup-and-linux-kernel-sources-package-r.patch230
-rw-r--r--patches.tizen/1082-Bring-kernel-packaging-in-line-with-ivi-s-kernel.patch205
-rw-r--r--patches.tizen/1083-Split-uImage-on-clean-uImage-and-Device-Tree-blob.patch62
-rw-r--r--patches.tizen/1084-Revert-usb-gadget-mass_storage-merge-usb_f_mass_stor.patch78
-rw-r--r--patches.tizen/1085-Revert-usb-gadget-f_mass_storage-remove-compatibilit.patch369
-rw-r--r--patches.tizen/1086-Revert-usb-gadget-multi-convert-to-new-interface-of-.patch243
-rw-r--r--patches.tizen/1087-Revert-usb-gadget-multi-convert-to-new-interface-of-.patch199
-rw-r--r--patches.tizen/1088-Revert-usb-gadget-multi-convert-to-new-interface-of-.patch189
-rw-r--r--patches.tizen/1089-Revert-usb-gadget-acm_ms-convert-to-new-interface-of.patch221
-rw-r--r--patches.tizen/1090-Revert-usb-gadget-f_mass_storage-add-configfs-suppor.patch532
-rw-r--r--patches.tizen/1091-Revert-usb-gadget-storage_common-add-methods-to-show.patch95
-rw-r--r--patches.tizen/1092-Revert-usb-gadget-storage_common-make-attribute-oper.patch233
-rw-r--r--patches.tizen/1093-Revert-usb-gadget-mass_storage-convert-to-new-interf.patch199
-rw-r--r--patches.tizen/1094-Revert-usb-gadget-f_mass_storage-convert-to-new-func.patch491
-rw-r--r--patches.tizen/1095-Revert-usb-gadget-f_mass_storage-use-fsg_common_run_.patch45
-rw-r--r--patches.tizen/1096-Revert-usb-gadget-f_mass_storage-use-fsg_common_set_.patch48
-rw-r--r--patches.tizen/1097-Revert-usb-gadget-f_mass_storage-use-fsg_common_crea.patch156
-rw-r--r--patches.tizen/1098-Revert-usb-gadget-f_mass_storage-use-fsg_common_set_.patch65
-rw-r--r--patches.tizen/1099-Revert-usb-gadget-f_mass_storage-use-fsg_common_set_.patch32
-rw-r--r--patches.tizen/1100-Revert-usb-gadget-f_mass_storage-use-fsg_common_set_.patch64
-rw-r--r--patches.tizen/1101-Revert-usb-gadget-f_mass_storage-use-fsg_common_set_.patch79
-rw-r--r--patches.tizen/1102-Revert-usb-gadget-f_mass_storage-use-fsg_common_setu.patch67
-rw-r--r--patches.tizen/1103-Revert-usb-gadget-f_mass_storage-split-fsg_common-in.patch577
-rw-r--r--patches.tizen/1104-Revert-usb-gadget-f_mass_storage-use-usb_gstrings_at.patch81
-rw-r--r--patches.tizen/1105-Revert-usb-gadget-f_mass_storage-add-a-level-of-indi.patch184
-rw-r--r--patches.tizen/1106-Revert-usb-gadget-f_mass_storage-factor-out-a-header.patch322
-rw-r--r--patches.tizen/1107-Revert-usb-gadget-create-a-utility-module-for-mass_s.patch1141
-rw-r--r--patches.tizen/1108-USB-gadget-fix-up-comment.patch31
-rw-r--r--patches.tizen/1109-usb-gadget-f_mass_storage-use-NULL-instead-of-0.patch43
-rw-r--r--patches.tizen/1110-usb-gadget-rndis-Staticize-rndis_init-rndis_exit.patch44
-rw-r--r--patches.tizen/1111-sysfs.h-add-__ATTR_RW-macro.patch49
-rw-r--r--patches.tizen/1112-driver-core-device.h-add-RW-and-RO-attribute-macros.patch87
-rw-r--r--patches.tizen/1113-USB-gadget-audit-sysfs-attribute-permissions.patch326
-rw-r--r--patches.tizen/1114-usb-gadget-gadgetfs-potential-use-after-free-in-unbi.patch33
-rw-r--r--patches.tizen/1115-usb-gadget-add-__ref-for-rndis_config_register-and-c.patch73
-rw-r--r--patches.tizen/1116-usb-gadget-f_ecm-Staticize-ecm_alloc.patch30
-rw-r--r--patches.tizen/1117-usb-gadget-f_eem-Staticize-eem_alloc.patch30
-rw-r--r--patches.tizen/1118-usb-gadget-f_mass_storage-reset-endpoint-driver-data.patch43
-rw-r--r--patches.tizen/1119-usb-g_ffs-fix-compilation-warning.patch47
-rw-r--r--patches.tizen/1120-usb-gadget-f_fs-fix-error-handling.patch36
-rw-r--r--patches.tizen/1121-usb-gadget-zero-Add-flexible-auto-remote-wakeup-test.patch71
-rw-r--r--patches.tizen/1122-usb-gadget-Use-ERR_CAST-inlined-function-instead-of-.patch32
-rw-r--r--patches.tizen/1123-usb-gadget-create-a-utility-module-for-mass_storage.patch1216
-rw-r--r--patches.tizen/1124-usb-gadget-f_mass_storage-factor-out-a-header-file.patch328
-rw-r--r--patches.tizen/1125-usb-gadget-f_mass_storage-add-a-level-of-indirection.patch212
-rw-r--r--patches.tizen/1126-usb-gadget-f_mass_storage-use-usb_gstrings_attach.patch84
-rw-r--r--patches.tizen/1127-usb-gadget-f_mass_storage-create-_fsg_common_free_bu.patch61
-rw-r--r--patches.tizen/1128-usb-gadget-f_mass_storage-make-sysfs-interface-optio.patch187
-rw-r--r--patches.tizen/1129-usb-gadget-f_mass_storage-create-fsg_common_setup-fo.patch99
-rw-r--r--patches.tizen/1130-usb-gadget-f_mass_storage-create-fsg_common_set_num_.patch147
-rw-r--r--patches.tizen/1131-usb-gadget-f_mass_storage-create-lun-handling-helper.patch153
-rw-r--r--patches.tizen/1132-usb-gadget-f_mass_storage-create-fsg_common_set_cdev.patch118
-rw-r--r--patches.tizen/1133-usb-gadget-f_mass_storage-create-lun-creation-helper.patch319
-rw-r--r--patches.tizen/1134-usb-gadget-f_mass_storage-create-fsg_common_set_inqu.patch87
-rw-r--r--patches.tizen/1135-usb-gadget-f_mass_storage-create-fsg_common_run_thre.patch88
-rw-r--r--patches.tizen/1136-usb-gadget-f_mass_storage-convert-to-new-function-in.patch487
-rw-r--r--patches.tizen/1137-usb-gadget-mass_storage-convert-to-new-interface-of-.patch240
-rw-r--r--patches.tizen/1138-usb-gadget-storage_common-make-attribute-operations-.patch217
-rw-r--r--patches.tizen/1139-usb-gadget-storage_common-add-methods-to-show-store-.patch98
-rw-r--r--patches.tizen/1140-usb-gadget-f_mass_storage-add-configfs-support.patch526
-rw-r--r--patches.tizen/1141-usb-gadget-acm_ms-convert-to-new-interface-of-f_mass.patch226
-rw-r--r--patches.tizen/1142-usb-gadget-multi-convert-to-new-interface-of-f_ecm.patch193
-rw-r--r--patches.tizen/1143-usb-gadget-multi-convert-to-new-interface-of-f_rndis.patch203
-rw-r--r--patches.tizen/1144-usb-gadget-multi-convert-to-new-interface-of-f_mass_.patch247
-rw-r--r--patches.tizen/1145-usb-gadget-f_mass_storage-remove-compatibility-layer.patch377
-rw-r--r--patches.tizen/1146-usb-gadget-mass_storage-merge-usb_f_mass_storage-mod.patch81
-rw-r--r--patches.tizen/1147-usb-gadget-storage_common-use-strtobool-instead-of-k.patch76
-rw-r--r--patches.tizen/1148-usb-gadget-storage_common-pass-filesem-to-fsg_store_.patch132
-rw-r--r--patches.tizen/1149-usb-gadget-f_mass_storage-style-corrections-cleanup-.patch111
-rw-r--r--patches.tizen/1150-usb-gadget-f_mass_storage-use-string-literal-as-form.patch36
-rw-r--r--patches.tizen/1151-usb-gadget-update-some-out-of-date-comments.patch46
-rw-r--r--patches.tizen/1152-usb-gadget-composite-redirect-setup-requests.patch58
-rw-r--r--patches.tizen/1153-usb-gadget-factor-out-alloc_ep_req.patch300
-rw-r--r--patches.tizen/1154-usb-gadget-f_loopback-add-configfs-support.patch271
-rw-r--r--patches.tizen/1155-usb-gadget-f_sourcesink-add-configfs-support.patch458
-rw-r--r--patches.tizen/1156-usb-gadget-move-bitflags-to-the-end-of-usb_gadget-st.patch74
-rw-r--r--patches.tizen/1157-usb-gadget-add-quirk_ep_out_aligned_size-field-to-st.patch75
-rw-r--r--patches.tizen/1158-usb-gadget-f_fs-remove-loop-from-I-O-function.patch138
-rw-r--r--patches.tizen/1159-usb-f_fs-check-quirk-to-pad-epout-buf-size-when-not-.patch80
-rw-r--r--patches.tizen/1160-usb-gadget-configfs-allow-setting-function-instance-.patch73
-rw-r--r--patches.tizen/1161-usb-gadget-g_ffs-remove-a-reduntant-gfs_ether_setup-.patch79
-rw-r--r--patches.tizen/1162-usb-gadget-g_ffs-convert-to-new-interface-of-f_ecm.patch192
-rw-r--r--patches.tizen/1163-usb-gadget-f_ecm-remove-compatibility-layer.patch136
-rw-r--r--patches.tizen/1164-usb-gadget-g_ffs-convert-to-new-interface-of-f_subse.patch178
-rw-r--r--patches.tizen/1165-usb-gadget-f_subset-remove-compatibility-layer.patch124
-rw-r--r--patches.tizen/1166-usb-gadget-g_ffs-convert-to-new-interface-of-f_rndis.patch259
-rw-r--r--patches.tizen/1167-usb-gadget-f_rndis-remove-compatibility-layer.patch174
-rw-r--r--patches.tizen/1168-usb-gadget-rndis-merge-u_rndis.ko-with-usb_f_rndis.k.patch169
-rw-r--r--patches.tizen/1169-usb-gadget-FunctionFS-Remove-VLAIS-usage-from-gadget.patch220
-rw-r--r--patches.tizen/1170-usb-gadget-FunctionFS-create-utility-file.patch141
-rw-r--r--patches.tizen/1171-usb-gadget-FunctionFS-add-devices-management-code.patch694
-rw-r--r--patches.tizen/1172-usb-gadget-FunctionFS-convert-to-new-function-interf.patch865
-rw-r--r--patches.tizen/1173-usb-gadget-g_ffs-convert-to-new-interface-of-f_fs.patch320
-rw-r--r--patches.tizen/1174-usb-gadget-FunctionFS-Remove-compatibility-layer.patch283
-rw-r--r--patches.tizen/1175-usb-gadget-FunctionFS-add-configfs-support.patch233
-rw-r--r--patches.tizen/1176-usb-gadget-f_fs-fix-sparse-warning.patch29
-rw-r--r--patches.tizen/1177-usb-gadget-nokia-fix-error-recovery-path-for-optiona.patch53
-rw-r--r--patches.tizen/1178-usb-gadget-f_loopback-Fix-sparse-warning.patch43
-rw-r--r--patches.tizen/1179-usb-gadget-f_mass_storage-Fix-sparse-warning.patch34
-rw-r--r--patches.tizen/1180-usb-gadget-f_ncm-Fix-sparse-warning.patch33
-rw-r--r--patches.tizen/1181-usb-gadget-f_obex-Fix-sparse-warning.patch33
-rw-r--r--patches.tizen/1182-usb-gadget-f_phonet-Fix-sparse-warning.patch33
-rw-r--r--patches.tizen/1183-usb-gadget-f_serial-Fix-sparse-warning.patch33
-rw-r--r--patches.tizen/1184-usb-gadget-f_sourcesink-Fix-sparse-warning.patch63
-rw-r--r--patches.tizen/1185-usb-gadget-composite-reset-delayed_status-on-reset_c.patch34
-rw-r--r--patches.tizen/1186-usb-gadget-f_mass_storage-fix-mass-storage-dependenc.patch35
-rw-r--r--patches.tizen/1187-usb-gadget-mass-storage-fix-return-of-delayed-status.patch56
-rw-r--r--patches.tizen/1188-usb-gadget-zero-module-parameters-can-be-static.patch44
-rw-r--r--patches.tizen/1189-usb-gadget-f_mass_storage-call-try_to_freeze-only-wh.patch129
-rw-r--r--patches.tizen/1190-usb-gadget-configfs-include-appropriate-header-file-.patch39
-rw-r--r--patches.tizen/1191-usb-gadget-should-use-u16-type-variable-to-store-Max.patch37
-rw-r--r--patches.tizen/1192-usb-gadget-fix-up-some-comments-about-CONFIG_USB_DEB.patch47
-rw-r--r--patches.tizen/1193-usb-gadget-FunctionFS-dereference-ffs_dev-conditiona.patch39
-rw-r--r--patches.tizen/1194-usb-gadget-code-cleanup.patch29
-rw-r--r--patches.tizen/1195-usb-gadget-FunctionFS-staticize-functions-used-only-.patch66
-rw-r--r--patches.tizen/1196-usb-gadget-FunctionFS-use-consistent-naming-with-reg.patch133
-rw-r--r--patches.tizen/1197-usb-gadget-fix-NULL-pointer-dereference.patch62
-rw-r--r--patches.tizen/1198-Add-dependency-on-kernel-package-in-kernel-devel-pac.patch28
-rw-r--r--patches.tizen/1199-tizen-packaging-support-perf-build.patch84
-rw-r--r--patches.tizen/1200-usb-gadget-temporarily-turn-off-rndis-from-slp-gadge.patch58
-rw-r--r--patches.tizen/1201-usb-gadget-adapt-slp-to-new-interface-of-rndis.patch149
-rw-r--r--patches.tizen/1202-usb-gadget-eliminate-memory-leak-in-slp-gadget.patch30
-rw-r--r--patches.tizen/1203-spec-add-missing-build-dependences-and-output-packag.patch86
-rw-r--r--patches.tizen/1204-Revert-WORKAROUND-Temporary-workaround-for-Suspend-T.patch31
-rw-r--r--patches.tizen/1205-clk-exynos4-Keep-chipid-clock-enabled.patch42
-rw-r--r--patches.tizen/1206-pm-exynos-Skip-re-enabling-L2-cache-for-early-waking.patch58
-rw-r--r--patches.tizen/1207-iio-ak8975-Fix-calculation-formula-for-convert-micro.patch66
-rw-r--r--patches.tizen/1208-iio-ak8975-Add-device-name.patch29
-rw-r--r--patches.tizen/1209-video-display-s6e8aa0-fix-a-erratum-in-gamma-table.patch31
-rw-r--r--patches.tizen/1210-cpufreq-boost-Provide-support-for-BOOST-on-linux-3.1.patch104
-rw-r--r--patches.tizen/1211-cpufreq-boost-trats2-Define-boost_freq-attribute-for.patch31
-rw-r--r--patches.tizen/1212-usb-gadget-functionfs-fix-typo-in-the-enum-variable.patch136
-rw-r--r--patches.tizen/1213-usb-gadget-functionfs-replace-FFS_SETUP_STATUS-with-.patch121
-rw-r--r--patches.tizen/1214-usb-gadget-f_fs-fix-setup-request-handling.patch47
-rw-r--r--patches.tizen/1215-usb-gadget-f_fs-add-poll-for-endpoint-0.patch92
-rw-r--r--patches.tizen/1216-usb-gadget-f_fs-add-aio-support.patch397
-rw-r--r--patches.tizen/1217-tools-usb-aio-example-applications.patch1073
-rw-r--r--patches.tizen/1218-phy-Add-exynos-phy-driver.patch202
-rw-r--r--patches.tizen/1219-misc-add-sii9234-driver.patch1135
-rw-r--r--patches.tizen/1220-clk-exynos4-export-sclk_hdmiphy-clock.patch52
-rw-r--r--patches.tizen/1221-clk-propagate-parent-change-up-one-level.patch60
-rw-r--r--patches.tizen/1222-clk-exynos4-enable-clk_set_parent-propagation-for-sc.patch43
-rw-r--r--patches.tizen/1223-drm-exynos-hdmi-use-hdmiphy-as-PHY.patch72
-rw-r--r--patches.tizen/1224-drm-exynos-hdmi-simplify-extracting-hpd-gpio-from-DT.patch52
-rw-r--r--patches.tizen/1225-drm-exynos-migrate-to-Common-Clock-Framework.patch113
-rw-r--r--patches.tizen/1226-drm-exynos-add-compatibles-for-HDMI-and-Mixer-chips-.patch48
-rw-r--r--patches.tizen/1227-drm-exynos-hdmi-add-support-for-pixel-clock-limitati.patch83
-rw-r--r--patches.tizen/1228-arm-dts-exynos4-add-i2c-controller-for-HDMIPHY.patch51
-rw-r--r--patches.tizen/1229-arm-dts-exynos4-add-HDMI-devices.patch89
-rw-r--r--patches.tizen/1230-arm-dts-universal_c210-add-HDMI-devices.patch79
-rw-r--r--patches.tizen/1231-arm-dts-exynos4412-slp-pq-add-HDMI-devices.patch106
-rw-r--r--patches.tizen/1232-arm-config-tizen-enable-HDMI-drivers.patch53
-rw-r--r--patches.tizen/1233-usb-gadget-Enable-rndis-in-the-slp-gadget-driver.patch32
-rw-r--r--patches.tizen/1234-arm-dts-cleanup-entries-for-usb-phy-for-Exynos4.patch271
-rw-r--r--patches.tizen/1235-ARM-exynos-dts-cleanup-the-dts-file-for-trats2.patch3195
-rw-r--r--patches.tizen/1236-mm-page_alloc-fix-freeing-of-MIGRATE_RESERVE-migrate.patch86
-rw-r--r--patches.tizen/1237-userns-Allow-PR_CAPBSET_DROP-in-a-user-namespace.patch35
-rw-r--r--patches.tizen/1238-clocksource-exynos4-Fix-wrong-bit-operation-in-exyno.patch34
-rw-r--r--patches.tizen/1239-cpufreq-ondemand-Change-the-calculation-of-target-fr.patch192
-rw-r--r--patches.tizen/1240-cpufreq-dts-trats2-Remove-redundant-definitions-of-c.patch46
-rw-r--r--patches.tizen/1241-boost-dts-trats2-Define-boost_freq-attribute-for-cpu.patch31
-rw-r--r--patches.tizen/1242-cpufreq-conservative-Provide-correct-pointer-for-con.patch41
-rw-r--r--patches.tizen/1243-dts-odroid-x2-add-support-for-multimedia-blocks.patch88
-rw-r--r--patches.tizen/1244-arm-dts-exynos4412-odroidx2-add-HDMI-devices.patch88
-rw-r--r--patches.tizen/1245-ARM-defconfig-Add-tizen_odroidx2_defconfig.patch2684
-rw-r--r--patches.tizen/1246-exynos4-is-Register-v4l2_async-notifier-only-when-se.patch55
-rw-r--r--patches.tizen/1247-Fix-building-RPM-with-tar-1.27-and-renamed-m0-dtb.patch45
-rw-r--r--patches.tizen/1248-math64-New-separate-div64_u64_rem-helper.patch116
-rw-r--r--patches.tizen/1249-Enable-FHANDLE-needed-by-systemd-209.patch28
-rw-r--r--patches.tizen/1250-ARM-defconfig-update-tizen_odroidx2_defconfig.patch40
-rw-r--r--patches.tizen/1251-ARM-odroidx2-enable-P3V3-fixed-regulator-to-always-o.patch39
-rw-r--r--patches.tizen/1252-ARM-odroidx2-update-defconfig.patch195
-rw-r--r--patches.tizen/1253-au0828-fix-i2c-clock-speed-for-DViCO-FusionHDTV7.patch37
-rw-r--r--patches.tizen/1254-ARM-odroidx2-update-defconfig-for-DViCO-FusionHDTV-U.patch276
-rw-r--r--patches.tizen/1255-phy-exynos-add-delay-after-reset-phy-for-usb-host.patch33
-rw-r--r--patches.tizen/1256-usb-misc-usb3503-Add-to-select-the-ports-to-disable.patch107
-rw-r--r--patches.tizen/1257-usb-misc-usb3503-Adding-device-tree-entry-disabled-p.patch89
-rw-r--r--patches.tizen/1258-usb-misc-usb3503-Fix-up-whitespace.patch36
-rw-r--r--patches.tizen/1259-usb-misc-usb3503-Remove-100ms-sleep-on-reset-conform.patch49
-rw-r--r--patches.tizen/1260-usb-misc-usb3503-use-dev_get_platdata.patch35
-rw-r--r--patches.tizen/1261-usb-misc-Fix-swapped-properties-in-usb3503-DT-parsin.patch43
-rw-r--r--patches.tizen/1262-ARM-dts-exynos4412-fix-usb3503-swapped-gpio-properti.patch35
-rw-r--r--patches.tizen/1263-usb-misc-usb3503-Convert-to-devm_-APIs.patch118
-rw-r--r--patches.tizen/1264-usb-misc-usb3503-Use-gpio_set_value_cansleep.patch34
-rw-r--r--patches.tizen/1265-usb-misc-usb3503-Actively-manage-Hub-Connect-GPIO.patch81
-rw-r--r--patches.tizen/1266-usb-misc-usb3503-Convert-to-regmap.patch218
-rw-r--r--patches.tizen/1267-usb-misc-usb3503-Factor-out-I2C-probe.patch157
-rw-r--r--patches.tizen/1268-usb-misc-usb3503-Fix-typos-in-error-messages.patch41
-rw-r--r--patches.tizen/1269-usb-misc-usb3503-Default-to-hub-mode.patch35
-rw-r--r--patches.tizen/1270-usb-misc-usb3503-Add-USB3503A-to-the-compatible-list.patch50
-rw-r--r--patches.tizen/1271-usb-misc-usb3503-Support-operation-with-no-I2C-contr.patch216
-rw-r--r--patches.tizen/1272-drivers-power-hide-some-excessive-debugs.patch51
-rw-r--r--patches.tizen/1273-iio-common-st-Prevent-disable-after-read-info-raw-da.patch37
-rw-r--r--patches.tizen/1274-cpufreq-LAB-Kconfig-Make-LAB-dependent-on-the-ONDEMA.patch42
-rw-r--r--patches.tizen/1275-cpufreq-LAB-Kconfig-Do-not-allow-LAB-to-be-build-as-.patch47
-rw-r--r--patches.tizen/1276-cpufreq-LAB-core-Remove-code-responsible-for-removin.patch40
-rw-r--r--patches.tizen/1277-cpufreq-LAB-ondemand-REMOVE-from-LAB-governor-code-d.patch201
-rw-r--r--patches.tizen/1278-cpufreq-LAB-core-Redesign-of-LAB-code-to-work-on-top.patch547
-rw-r--r--patches.tizen/1279-cpufreq-LAB-ondemand-Ondemand-governor-adjustments-n.patch89
-rw-r--r--patches.tizen/1280-cpufreq-LAB-cpufreq_governor-Remove-redundant-LAB-co.patch138
-rw-r--r--patches.tizen/1281-cpufreq-LAB-ondemand-Enable-usage-of-ONDEMAND-specif.patch91
-rw-r--r--patches.tizen/1282-cpufreq-LAB-dts-trats2-Add-attributes-necessary-for-.patch44
-rw-r--r--patches.tizen/1283-cpufreq-LAB-cosmetic-Cosmetic-code-cleanup.patch53
-rw-r--r--patches.tizen/1284-cpufreq-LAB-Replace-NR_CPUS-with-num_possible_cpus-f.patch125
-rw-r--r--patches.tizen/1285-ARM-dts-odroidx2-remove-obsoleted-register-debug-nod.patch35
-rw-r--r--patches.tizen/1286-ARM-dts-odroidx2-add-mali-gpu-and-cpu-freq.patch42
-rw-r--r--patches.tizen/1287-ARM-odroidx2-update-defconfig.patch95
-rw-r--r--patches.tizen/1288-dts-arm-odroidx2-add-support-for-external-buttons.patch75
-rw-r--r--patches.tizen/1289-ARM-odroidx2-update-defconfig-to-fix-the-number-of-c.patch32
-rw-r--r--patches.tizen/1290-cpufreq-LAB-Remove-MODULE_-macros-since-it-is-not-po.patch36
-rw-r--r--patches.tizen/1291-dts-exynos4412-trats2-Remove-unused-device-node-on-t.patch54
-rw-r--r--patches.tizen/1292-ARM-dts-fix-base-address-of-sysmmu_tv-for-exynos4.patch36
-rw-r--r--patches.tizen/1293-ARM-odroidx2-update-defconfig-to-enable-ANDROID_LOGG.patch68
-rw-r--r--patches.tizen/1294-media-s5p-mfc-Add-support-for-V4L2_MEMORY_DMABUF-typ.patch239
-rw-r--r--patches.tizen/1295-ARM-odroidx2-update-defconfig-to-enable-DRM_EXYNOS_F.patch33
-rw-r--r--patches.tizen/1296-ARM-EXYNOS-register-master-power-domain-for-genpd-fr.patch68
-rw-r--r--patches.tizen/1297-ARM-dts-odroidx2-remove-fimd-node.patch56
-rw-r--r--patches.tizen/1298-extcon-max77693-Fix-inaccurate-extcon-event-for-JIG-.patch66
-rw-r--r--patches.tizen/1299-Revert-extcon-max77693-Fix-inaccurate-extcon-event-f.patch61
-rw-r--r--patches.tizen/1300-Revert-extcon-max77693-Force-using-UART-path-for-jig.patch45
-rw-r--r--patches.tizen/1301-Revert-extcon-max77693-Fix-bug-related-to-MAX77693-i.patch47
-rw-r--r--patches.tizen/1302-extcon-max77693-Fix-a-bug-occured-at-changing-ADC-de.patch52
1302 files changed, 385483 insertions, 0 deletions
diff --git a/patches.tizen/0001-ARM-EXYNOS-Fail-l2x0-cache-initialization-if-DT-base.patch b/patches.tizen/0001-ARM-EXYNOS-Fail-l2x0-cache-initialization-if-DT-base.patch
new file mode 100644
index 0000000..c1e705b
--- /dev/null
+++ b/patches.tizen/0001-ARM-EXYNOS-Fail-l2x0-cache-initialization-if-DT-base.patch
@@ -0,0 +1,38 @@
+From cf01114c6e953bcbcf1fc2a9474eedb71e4f3a9b Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Wed, 12 Sep 2012 15:30:32 +0200
+Subject: [PATCH 0001/1302] ARM: EXYNOS: Fail l2x0 cache initialization if
+ DT-based init fails
+
+On DT-based boards, DT decides whether to enable l2x0 cache controller
+or not.
+
+This patch modifies Exynos l2x0 cache initialization code to fail if
+l2x0_of_init fails.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/mach-exynos/common.c | 6 ++++--
+ 1 file changed, 4 insertions(+), 2 deletions(-)
+
+diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
+index f7e504b..5bb6b26 100644
+--- a/arch/arm/mach-exynos/common.c
++++ b/arch/arm/mach-exynos/common.c
+@@ -560,8 +560,10 @@ static int __init exynos4_l2x0_cache_init(void)
+ if (soc_is_exynos5250() || soc_is_exynos5440())
+ return 0;
+
+- ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
+- if (!ret) {
++ if (of_have_populated_dt()) {
++ ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
++ if (ret)
++ return ret;
+ l2x0_regs_phys = virt_to_phys(&l2x0_saved_regs);
+ clean_dcache_area(&l2x0_regs_phys, sizeof(unsigned long));
+ return 0;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch b/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch
new file mode 100644
index 0000000..05d199a
--- /dev/null
+++ b/patches.tizen/0002-ARM-EXYNOS-Add-secure-firmware-support-to-l2x0-initi.patch
@@ -0,0 +1,60 @@
+From 156f9542badc0700e9759ec0a8c1660aead1092d Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Wed, 12 Sep 2012 15:35:58 +0200
+Subject: [PATCH 0002/1302] ARM: EXYNOS: Add secure firmware support to l2x0
+ initialization
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/mach-exynos/common.c | 3 +++
+ arch/arm/mach-exynos/firmware.c | 8 ++++++++
+ 2 files changed, 11 insertions(+)
+
+diff --git a/arch/arm/mach-exynos/common.c b/arch/arm/mach-exynos/common.c
+index 5bb6b26..02fb4a1 100644
+--- a/arch/arm/mach-exynos/common.c
++++ b/arch/arm/mach-exynos/common.c
+@@ -33,6 +33,7 @@
+
+ #include <asm/proc-fns.h>
+ #include <asm/exception.h>
++#include <asm/firmware.h>
+ #include <asm/hardware/cache-l2x0.h>
+ #include <asm/mach/map.h>
+ #include <asm/mach/irq.h>
+@@ -560,6 +561,8 @@ static int __init exynos4_l2x0_cache_init(void)
+ if (soc_is_exynos5250() || soc_is_exynos5440())
+ return 0;
+
++ call_firmware_op(l2x0_init);
++
+ if (of_have_populated_dt()) {
+ ret = l2x0_of_init(L2_AUX_VAL, L2_AUX_MASK);
+ if (ret)
+diff --git a/arch/arm/mach-exynos/firmware.c b/arch/arm/mach-exynos/firmware.c
+index ed11f10..da5fb26 100644
+--- a/arch/arm/mach-exynos/firmware.c
++++ b/arch/arm/mach-exynos/firmware.c
+@@ -40,10 +40,18 @@ static int exynos_set_cpu_boot_addr(int cpu, unsigned long boot_addr)
+ return 0;
+ }
+
++static int exynos_l2x0_init(void)
++{
++ exynos_smc(SMC_CMD_L2X0INVALL, 0, 0, 0);
++ exynos_smc(SMC_CMD_L2X0CTRL, 1, 0, 0);
++ return 0;
++}
++
+ static const struct firmware_ops exynos_firmware_ops = {
+ .do_idle = exynos_do_idle,
+ .set_cpu_boot_addr = exynos_set_cpu_boot_addr,
+ .cpu_boot = exynos_cpu_boot,
++ .l2x0_init = exynos_l2x0_init,
+ };
+
+ void __init exynos_firmware_init(void)
+--
+1.8.3.2
+
diff --git a/patches.tizen/0003-ARM-dts-exynos4-Add-DT-nodes-for-L2-cache-controller.patch b/patches.tizen/0003-ARM-dts-exynos4-Add-DT-nodes-for-L2-cache-controller.patch
new file mode 100644
index 0000000..249b51e
--- /dev/null
+++ b/patches.tizen/0003-ARM-dts-exynos4-Add-DT-nodes-for-L2-cache-controller.patch
@@ -0,0 +1,64 @@
+From fd0079387c13066ea0ef1f9d6f7f863fd16cc69f Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Wed, 12 Sep 2012 15:36:39 +0200
+Subject: [PATCH 0003/1302] ARM: dts: exynos4: Add DT nodes for L2 cache
+ controller
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 6 ++++++
+ arch/arm/boot/dts/exynos4210.dtsi | 4 ++++
+ arch/arm/boot/dts/exynos4x12.dtsi | 4 ++++
+ 3 files changed, 14 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 359694c..b90bab3 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -92,6 +92,12 @@
+ reg = <0x10010000 0x400>;
+ };
+
++ cache-controller@0x10502000 {
++ compatible = "arm,pl310-cache";
++ reg = <0x10502000 0x1000>;
++ arm,tag-latency = <1 1 0>;
++ };
++
+ watchdog@10060000 {
+ compatible = "samsung,s3c2410-wdt";
+ reg = <0x10060000 0x100>;
+diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
+index 54710de..ef707bd 100644
+--- a/arch/arm/boot/dts/exynos4210.dtsi
++++ b/arch/arm/boot/dts/exynos4210.dtsi
+@@ -48,6 +48,10 @@
+ <0 12 0>, <0 13 0>, <0 14 0>, <0 15 0>;
+ };
+
++ cache-controller@0x10502000 {
++ arm,data-latency = <1 1 0>;
++ };
++
+ mct@10050000 {
+ compatible = "samsung,exynos4210-mct";
+ reg = <0x10050000 0x800>;
+diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
+index e3380a7..4afda47 100644
+--- a/arch/arm/boot/dts/exynos4x12.dtsi
++++ b/arch/arm/boot/dts/exynos4x12.dtsi
+@@ -36,6 +36,10 @@
+ <0 16 0>, <0 17 0>, <0 18 0>, <0 19 0>;
+ };
+
++ cache-controller@0x10502000 {
++ arm,data-latency = <1 2 0>;
++ };
++
+ clock: clock-controller@0x10030000 {
+ compatible = "samsung,exynos4412-clock";
+ reg = <0x10030000 0x20000>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0004-fs-jbd2-force-commit-to-free-jbd2-s-cma-isolated-pag.patch b/patches.tizen/0004-fs-jbd2-force-commit-to-free-jbd2-s-cma-isolated-pag.patch
new file mode 100644
index 0000000..0d968b1
--- /dev/null
+++ b/patches.tizen/0004-fs-jbd2-force-commit-to-free-jbd2-s-cma-isolated-pag.patch
@@ -0,0 +1,42 @@
+From 429ab036e5b0de2292a4b2c207acde3bd436092a Mon Sep 17 00:00:00 2001
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+Date: Tue, 4 Sep 2012 10:44:49 +0200
+Subject: [PATCH 0004/1302] fs: jbd2: force commit to free jbd2's cma/isolated
+ page
+
+Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ fs/jbd2/transaction.c | 14 ++++++++++++++
+ 1 file changed, 14 insertions(+)
+
+diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
+index e0c0bc2..ca188f5 100644
+--- a/fs/jbd2/transaction.c
++++ b/fs/jbd2/transaction.c
+@@ -1776,8 +1776,22 @@ int jbd2_journal_try_to_free_buffers(journal_t *journal,
+ __journal_try_to_free_buffer(journal, bh);
+ jbd2_journal_put_journal_head(jh);
+ jbd_unlock_bh_state(bh);
++
++#ifndef CONFIG_CMA
+ if (buffer_jbd(bh))
+ goto busy;
++#else
++ if (buffer_jbd(bh)) {
++ unsigned mt = get_pageblock_migratetype(page);
++ /*
++ * Workaround: In case of CMA page, just commit journal.
++ */
++ if (mt == MIGRATE_ISOLATE || mt == MIGRATE_CMA)
++ jbd2_journal_force_commit(journal);
++ else
++ goto busy;
++ }
++#endif
+ } while ((bh = bh->b_this_page) != head);
+
+ ret = try_to_free_buffers(page);
+--
+1.8.3.2
+
diff --git a/patches.tizen/0005-fs-buffer.c-Revoke-LRU-when-trying-to-drop-buffers.patch b/patches.tizen/0005-fs-buffer.c-Revoke-LRU-when-trying-to-drop-buffers.patch
new file mode 100644
index 0000000..41a0caf
--- /dev/null
+++ b/patches.tizen/0005-fs-buffer.c-Revoke-LRU-when-trying-to-drop-buffers.patch
@@ -0,0 +1,95 @@
+From e2154558e6cea6a813e53e8b1c1f346d9b050d5b Mon Sep 17 00:00:00 2001
+From: Laura Abbott <lauraa@codeaurora.org>
+Date: Wed, 12 Sep 2012 09:36:16 +0200
+Subject: [PATCH 0005/1302] fs/buffer.c: Revoke LRU when trying to drop buffers
+
+When a buffer is added to the LRU list, a reference is taken which is
+not dropped until the buffer is evicted from the LRU list. This is the
+correct behavior, however this LRU reference will prevent the buffer
+from being dropped. This means that the buffer can't actually be dropped
+until it is selected for eviction. There's no bound on the time spent
+on the LRU list, which means that the buffer may be undroppable for
+very long periods of time. Given that migration involves dropping
+buffers, the associated page is now unmigratible for long periods of
+time as well. CMA relies on being able to migrate a specific range
+of pages, so these these types of failures make CMA significantly
+less reliable, especially under high filesystem usage.
+
+Rather than waiting for the LRU algorithm to eventually kick out
+the buffer, explicitly remove the buffer from the LRU list when trying
+to drop it. There is still the possibility that the buffer
+could be added back on the list, but that indicates the buffer is
+still in use and would probably have other 'in use' indicates to
+prevent dropping.
+
+Signed-off-by: Laura Abbott <lauraa@codeaurora.org>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ fs/buffer.c | 38 ++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 38 insertions(+)
+
+diff --git a/fs/buffer.c b/fs/buffer.c
+index d2a4d1b..087816b 100644
+--- a/fs/buffer.c
++++ b/fs/buffer.c
+@@ -1413,12 +1413,49 @@ static bool has_bh_in_lru(int cpu, void *dummy)
+ return 0;
+ }
+
++static void __evict_bh_lru(void *arg)
++{
++ struct bh_lru *b = &get_cpu_var(bh_lrus);
++ struct buffer_head *bh = arg;
++ int i;
++
++ for (i = 0; i < BH_LRU_SIZE; i++) {
++ if (b->bhs[i] == bh) {
++ brelse(b->bhs[i]);
++ b->bhs[i] = NULL;
++ goto out;
++ }
++ }
++out:
++ put_cpu_var(bh_lrus);
++}
++
++static bool bh_exists_in_lru(int cpu, void *arg)
++{
++ struct bh_lru *b = per_cpu_ptr(&bh_lrus, cpu);
++ struct buffer_head *bh = arg;
++ int i;
++
++ for (i = 0; i < BH_LRU_SIZE; i++) {
++ if (b->bhs[i] == bh)
++ return 1;
++ }
++
++ return 0;
++
++}
+ void invalidate_bh_lrus(void)
+ {
+ on_each_cpu_cond(has_bh_in_lru, invalidate_bh_lru, NULL, 1, GFP_KERNEL);
+ }
+ EXPORT_SYMBOL_GPL(invalidate_bh_lrus);
+
++void evict_bh_lrus(struct buffer_head *bh)
++{
++ on_each_cpu_cond(bh_exists_in_lru, __evict_bh_lru, bh, 1, GFP_ATOMIC);
++}
++EXPORT_SYMBOL_GPL(evict_bh_lrus);
++
+ void set_bh_page(struct buffer_head *bh,
+ struct page *page, unsigned long offset)
+ {
+@@ -3140,6 +3177,7 @@ drop_buffers(struct page *page, struct buffer_head **buffers_to_free)
+
+ bh = head;
+ do {
++ evict_bh_lrus(bh);
+ if (buffer_write_io_error(bh) && page->mapping)
+ set_bit(AS_EIO, &page->mapping->flags);
+ if (buffer_busy(bh))
+--
+1.8.3.2
+
diff --git a/patches.tizen/0006-mm-cma-allocate-pages-from-CMA-if-NR_FREE_PAGES-appr.patch b/patches.tizen/0006-mm-cma-allocate-pages-from-CMA-if-NR_FREE_PAGES-appr.patch
new file mode 100644
index 0000000..baa43d8
--- /dev/null
+++ b/patches.tizen/0006-mm-cma-allocate-pages-from-CMA-if-NR_FREE_PAGES-appr.patch
@@ -0,0 +1,46 @@
+From 2aeb96c2467ab83034cc2344db35be7c042343ee Mon Sep 17 00:00:00 2001
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+Date: Fri, 9 Nov 2012 16:04:23 +0100
+Subject: [PATCH 0006/1302] mm: cma: allocate pages from CMA if NR_FREE_PAGES
+ approaches low water mark
+
+It has been observed that system tends to keep a lot of CMA free pages
+even in very high memory pressure use cases. The CMA fallback for movable
+pages is used very rarely, only when system is completely pruned from
+MOVABLE pages, what usually means that the out-of-memory even will be
+triggered very soon. To avoid such situation and make better use of CMA
+pages, a heuristics is introduced which turns on CMA fallback for movable
+pages when the real number of free pages (excluding CMA free pages)
+approaches low water mark.
+
+Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Reviewed-by: Kyungmin Park <kyungmin.park@samsung.com>
+CC: Michal Nazarewicz <mina86@mina86.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ mm/page_alloc.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/mm/page_alloc.c b/mm/page_alloc.c
+index 2ee0fd3..bb92575 100644
+--- a/mm/page_alloc.c
++++ b/mm/page_alloc.c
+@@ -1099,6 +1099,15 @@ static struct page *__rmqueue(struct zone *zone, unsigned int order,
+ {
+ struct page *page;
+
++#ifdef CONFIG_CMA
++ unsigned long nr_free = zone_page_state(zone, NR_FREE_PAGES);
++ unsigned long nr_cma_free = zone_page_state(zone, NR_FREE_CMA_PAGES);
++
++ if (migratetype == MIGRATE_MOVABLE && nr_cma_free &&
++ nr_free - nr_cma_free < 2 * low_wmark_pages(zone))
++ migratetype = MIGRATE_CMA;
++#endif /* CONFIG_CMA */
++
+ retry_reserve:
+ page = __rmqueue_smallest(zone, order, migratetype);
+
+--
+1.8.3.2
+
diff --git a/patches.tizen/0007-usb-gadget-s3c-hsotg-Add-device-tree-based-instantia.patch b/patches.tizen/0007-usb-gadget-s3c-hsotg-Add-device-tree-based-instantia.patch
new file mode 100644
index 0000000..3181921
--- /dev/null
+++ b/patches.tizen/0007-usb-gadget-s3c-hsotg-Add-device-tree-based-instantia.patch
@@ -0,0 +1,44 @@
+From d2cff49885392b7551d7866fa9708c25b81bf215 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Tue, 11 Sep 2012 13:36:51 +0200
+Subject: [PATCH 0007/1302] usb: gadget: s3c-hsotg: Add device tree-based
+ instantiation
+
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/gadget/s3c-hsotg.c | 8 ++++++++
+ 1 file changed, 8 insertions(+)
+
+diff --git a/drivers/usb/gadget/s3c-hsotg.c b/drivers/usb/gadget/s3c-hsotg.c
+index af22f24..8fd9681 100644
+--- a/drivers/usb/gadget/s3c-hsotg.c
++++ b/drivers/usb/gadget/s3c-hsotg.c
+@@ -29,6 +29,7 @@
+ #include <linux/slab.h>
+ #include <linux/clk.h>
+ #include <linux/regulator/consumer.h>
++#include <linux/of_platform.h>
+
+ #include <linux/usb/ch9.h>
+ #include <linux/usb/gadget.h>
+@@ -3648,10 +3649,17 @@ static int s3c_hsotg_remove(struct platform_device *pdev)
+ #define s3c_hsotg_resume NULL
+ #endif
+
++static const struct of_device_id s3c_hsotg_of_ids[] = {
++ { .compatible = "samsung,s3c-hsotg", },
++ { /* sentinel */ }
++};
++MODULE_DEVICE_TABLE(of, s3c_hsotg_of_ids);
++
+ static struct platform_driver s3c_hsotg_driver = {
+ .driver = {
+ .name = "s3c-hsotg",
+ .owner = THIS_MODULE,
++ .of_match_table = s3c_hsotg_of_ids,
+ },
+ .probe = s3c_hsotg_probe,
+ .remove = s3c_hsotg_remove,
+--
+1.8.3.2
+
diff --git a/patches.tizen/0008-usb-phy-samsung-Select-common-driver-part-implicitly.patch b/patches.tizen/0008-usb-phy-samsung-Select-common-driver-part-implicitly.patch
new file mode 100644
index 0000000..f62d5e0
--- /dev/null
+++ b/patches.tizen/0008-usb-phy-samsung-Select-common-driver-part-implicitly.patch
@@ -0,0 +1,36 @@
+From 8457ce3c61cea74b7f69262e398ba235242edadd Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 25 Mar 2013 15:48:47 +0100
+Subject: [PATCH 0008/1302] usb: phy: samsung: Select common driver part
+ implicitly
+
+Since phy-samsung-usb library can be used only by phy-samsung-usb2 and
+phy-samsung-usb3 drivers, there is no need to give explicit control over
+its Kconfig symbol.
+
+This patch makes CONFIG_SAMSUNG_USBPHY symbol hidden and selected
+implicitly by CONFIG_SAMSUNG_USB2PHY and CONFIG_SAMSUNG_USB3PHY.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/phy/Kconfig | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/usb/phy/Kconfig b/drivers/usb/phy/Kconfig
+index 2311b1e..a5a9552 100644
+--- a/drivers/usb/phy/Kconfig
++++ b/drivers/usb/phy/Kconfig
+@@ -92,7 +92,7 @@ config OMAP_USB3
+ on/off the PHY.
+
+ config SAMSUNG_USBPHY
+- tristate "Samsung USB PHY Driver"
++ tristate
+ help
+ Enable this to support Samsung USB phy helper driver for Samsung SoCs.
+ This driver provides common interface to interact, for Samsung USB 2.0 PHY
+--
+1.8.3.2
+
diff --git a/patches.tizen/0009-usb-phy-samsung-Use-clk_get-to-get-reference-clock.patch b/patches.tizen/0009-usb-phy-samsung-Use-clk_get-to-get-reference-clock.patch
new file mode 100644
index 0000000..7a1a5ed
--- /dev/null
+++ b/patches.tizen/0009-usb-phy-samsung-Use-clk_get-to-get-reference-clock.patch
@@ -0,0 +1,38 @@
+From 75e1b6b4a47930f988adba7072dd929b22c37d67 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 25 Mar 2013 19:36:22 +0100
+Subject: [PATCH 0009/1302] usb: phy: samsung: Use clk_get to get reference
+ clock
+
+There is no need to use devm_clk_get to get a clock that is being put
+at the end of the function.
+
+This patch changes the code getting reference clock to use clk_get
+instead of useless in this case devm_clk_get.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/phy/phy-samsung-usb.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/usb/phy/phy-samsung-usb.c b/drivers/usb/phy/phy-samsung-usb.c
+index 7b118ee5..62cdb7e 100644
+--- a/drivers/usb/phy/phy-samsung-usb.c
++++ b/drivers/usb/phy/phy-samsung-usb.c
+@@ -175,9 +175,9 @@ int samsung_usbphy_get_refclk_freq(struct samsung_usbphy *sphy)
+ * external crystal clock XXTI
+ */
+ if (sphy->drv_data->cpu_type == TYPE_EXYNOS5250)
+- ref_clk = devm_clk_get(sphy->dev, "ext_xtal");
++ ref_clk = clk_get(sphy->dev, "ext_xtal");
+ else
+- ref_clk = devm_clk_get(sphy->dev, "xusbxti");
++ ref_clk = clk_get(sphy->dev, "xusbxti");
+ if (IS_ERR(ref_clk)) {
+ dev_err(sphy->dev, "Failed to get reference clock\n");
+ return PTR_ERR(ref_clk);
+--
+1.8.3.2
+
diff --git a/patches.tizen/0010-usb-phy-samsung-Consolidate-reference-clock-rate-han.patch b/patches.tizen/0010-usb-phy-samsung-Consolidate-reference-clock-rate-han.patch
new file mode 100644
index 0000000..e0e22d7
--- /dev/null
+++ b/patches.tizen/0010-usb-phy-samsung-Consolidate-reference-clock-rate-han.patch
@@ -0,0 +1,252 @@
+From 3abf3521ded9d23d57d5ee8e0a8520363de5fc9a Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 25 Mar 2013 16:15:55 +0100
+Subject: [PATCH 0010/1302] usb: phy: samsung: Consolidate reference clock rate
+ handling
+
+This patch cleans up handling of reference clock rate in Samsung USB PHY
+drivers. It is mostly a cosmetic change but improves error handling in
+case of failing to get reference clock or invalid clock rate.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/phy/phy-samsung-usb.c | 114 ++++++++++++++++++++++---------------
+ drivers/usb/phy/phy-samsung-usb.h | 7 +++
+ drivers/usb/phy/phy-samsung-usb2.c | 8 ++-
+ drivers/usb/phy/phy-samsung-usb3.c | 6 +-
+ 4 files changed, 86 insertions(+), 49 deletions(-)
+
+diff --git a/drivers/usb/phy/phy-samsung-usb.c b/drivers/usb/phy/phy-samsung-usb.c
+index 62cdb7e..c40ea32 100644
+--- a/drivers/usb/phy/phy-samsung-usb.c
++++ b/drivers/usb/phy/phy-samsung-usb.c
+@@ -162,13 +162,76 @@ int samsung_usbphy_set_type(struct usb_phy *phy,
+ }
+ EXPORT_SYMBOL_GPL(samsung_usbphy_set_type);
+
++int samsung_usbphy_rate_to_clksel_64xx(struct samsung_usbphy *sphy,
++ unsigned long rate)
++{
++ unsigned int clksel;
++
++ switch (rate) {
++ case 12 * MHZ:
++ clksel = PHYCLK_CLKSEL_12M;
++ break;
++ case 24 * MHZ:
++ clksel = PHYCLK_CLKSEL_24M;
++ break;
++ case 48 * MHZ:
++ clksel = PHYCLK_CLKSEL_48M;
++ break;
++ default:
++ dev_err(sphy->dev,
++ "Invalid reference clock frequency: %lu\n", rate);
++ return -EINVAL;
++ }
++
++ return clksel;
++}
++EXPORT_SYMBOL_GPL(samsung_usbphy_rate_to_clksel_64xx);
++
++int samsung_usbphy_rate_to_clksel_4x12(struct samsung_usbphy *sphy,
++ unsigned long rate)
++{
++ unsigned int clksel;
++
++ switch (rate) {
++ case 9600 * KHZ:
++ clksel = FSEL_CLKSEL_9600K;
++ break;
++ case 10 * MHZ:
++ clksel = FSEL_CLKSEL_10M;
++ break;
++ case 12 * MHZ:
++ clksel = FSEL_CLKSEL_12M;
++ break;
++ case 19200 * KHZ:
++ clksel = FSEL_CLKSEL_19200K;
++ break;
++ case 20 * MHZ:
++ clksel = FSEL_CLKSEL_20M;
++ break;
++ case 24 * MHZ:
++ clksel = FSEL_CLKSEL_24M;
++ break;
++ case 50 * MHZ:
++ clksel = FSEL_CLKSEL_50M;
++ break;
++ default:
++ dev_err(sphy->dev,
++ "Invalid reference clock frequency: %lu\n", rate);
++ return -EINVAL;
++ }
++
++ return clksel;
++}
++EXPORT_SYMBOL_GPL(samsung_usbphy_rate_to_clksel_4x12);
++
+ /*
+ * Returns reference clock frequency selection value
+ */
+ int samsung_usbphy_get_refclk_freq(struct samsung_usbphy *sphy)
+ {
+ struct clk *ref_clk;
+- int refclk_freq = 0;
++ unsigned long rate;
++ int refclk_freq;
+
+ /*
+ * In exynos5250 USB host and device PHY use
+@@ -183,52 +246,9 @@ int samsung_usbphy_get_refclk_freq(struct samsung_usbphy *sphy)
+ return PTR_ERR(ref_clk);
+ }
+
+- if (sphy->drv_data->cpu_type == TYPE_EXYNOS5250) {
+- /* set clock frequency for PLL */
+- switch (clk_get_rate(ref_clk)) {
+- case 9600 * KHZ:
+- refclk_freq = FSEL_CLKSEL_9600K;
+- break;
+- case 10 * MHZ:
+- refclk_freq = FSEL_CLKSEL_10M;
+- break;
+- case 12 * MHZ:
+- refclk_freq = FSEL_CLKSEL_12M;
+- break;
+- case 19200 * KHZ:
+- refclk_freq = FSEL_CLKSEL_19200K;
+- break;
+- case 20 * MHZ:
+- refclk_freq = FSEL_CLKSEL_20M;
+- break;
+- case 50 * MHZ:
+- refclk_freq = FSEL_CLKSEL_50M;
+- break;
+- case 24 * MHZ:
+- default:
+- /* default reference clock */
+- refclk_freq = FSEL_CLKSEL_24M;
+- break;
+- }
+- } else {
+- switch (clk_get_rate(ref_clk)) {
+- case 12 * MHZ:
+- refclk_freq = PHYCLK_CLKSEL_12M;
+- break;
+- case 24 * MHZ:
+- refclk_freq = PHYCLK_CLKSEL_24M;
+- break;
+- case 48 * MHZ:
+- refclk_freq = PHYCLK_CLKSEL_48M;
+- break;
+- default:
+- if (sphy->drv_data->cpu_type == TYPE_S3C64XX)
+- refclk_freq = PHYCLK_CLKSEL_48M;
+- else
+- refclk_freq = PHYCLK_CLKSEL_24M;
+- break;
+- }
+- }
++ rate = clk_get_rate(ref_clk);
++ refclk_freq = sphy->drv_data->rate_to_clksel(sphy, rate);
++
+ clk_put(ref_clk);
+
+ return refclk_freq;
+diff --git a/drivers/usb/phy/phy-samsung-usb.h b/drivers/usb/phy/phy-samsung-usb.h
+index 70a9cae..0336f6b 100644
+--- a/drivers/usb/phy/phy-samsung-usb.h
++++ b/drivers/usb/phy/phy-samsung-usb.h
+@@ -244,6 +244,8 @@ enum samsung_cpu_type {
+ TYPE_EXYNOS5250,
+ };
+
++struct samsung_usbphy;
++
+ /*
+ * struct samsung_usbphy_drvdata - driver data for various SoC variants
+ * @cpu_type: machine identifier
+@@ -268,6 +270,7 @@ struct samsung_usbphy_drvdata {
+ int hostphy_en_mask;
+ u32 devphy_reg_offset;
+ u32 hostphy_reg_offset;
++ int (*rate_to_clksel)(struct samsung_usbphy *, unsigned long);
+ };
+
+ /*
+@@ -325,3 +328,7 @@ extern void samsung_usbphy_cfg_sel(struct samsung_usbphy *sphy);
+ extern int samsung_usbphy_set_type(struct usb_phy *phy,
+ enum samsung_usb_phy_type phy_type);
+ extern int samsung_usbphy_get_refclk_freq(struct samsung_usbphy *sphy);
++extern int samsung_usbphy_rate_to_clksel_64xx(struct samsung_usbphy *sphy,
++ unsigned long rate);
++extern int samsung_usbphy_rate_to_clksel_4x12(struct samsung_usbphy *sphy,
++ unsigned long rate);
+diff --git a/drivers/usb/phy/phy-samsung-usb2.c b/drivers/usb/phy/phy-samsung-usb2.c
+index 9d5e273..be6031d 100644
+--- a/drivers/usb/phy/phy-samsung-usb2.c
++++ b/drivers/usb/phy/phy-samsung-usb2.c
+@@ -408,7 +408,10 @@ static int samsung_usb2phy_probe(struct platform_device *pdev)
+ sphy->phy.label = "samsung-usb2phy";
+ sphy->phy.init = samsung_usb2phy_init;
+ sphy->phy.shutdown = samsung_usb2phy_shutdown;
+- sphy->ref_clk_freq = samsung_usbphy_get_refclk_freq(sphy);
++
++ sphy->ref_clk_freq = samsung_usbphy_get_refclk_freq(sphy);
++ if (sphy->ref_clk_freq < 0)
++ return -EINVAL;
+
+ sphy->phy.otg = otg;
+ sphy->phy.otg->phy = &sphy->phy;
+@@ -438,18 +441,21 @@ static int samsung_usb2phy_remove(struct platform_device *pdev)
+ static const struct samsung_usbphy_drvdata usb2phy_s3c64xx = {
+ .cpu_type = TYPE_S3C64XX,
+ .devphy_en_mask = S3C64XX_USBPHY_ENABLE,
++ .rate_to_clksel = samsung_usbphy_rate_to_clksel_64xx,
+ };
+
+ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
+ .cpu_type = TYPE_EXYNOS4210,
+ .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
++ .rate_to_clksel = samsung_usbphy_rate_to_clksel_64xx,
+ };
+
+ static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
+ .cpu_type = TYPE_EXYNOS5250,
+ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .hostphy_reg_offset = EXYNOS_USBHOST_PHY_CTRL_OFFSET,
++ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
+ };
+
+ #ifdef CONFIG_OF
+diff --git a/drivers/usb/phy/phy-samsung-usb3.c b/drivers/usb/phy/phy-samsung-usb3.c
+index 5a9efcb..ec44b35 100644
+--- a/drivers/usb/phy/phy-samsung-usb3.c
++++ b/drivers/usb/phy/phy-samsung-usb3.c
+@@ -274,7 +274,10 @@ static int samsung_usb3phy_probe(struct platform_device *pdev)
+ sphy->phy.init = samsung_usb3phy_init;
+ sphy->phy.shutdown = samsung_usb3phy_shutdown;
+ sphy->drv_data = samsung_usbphy_get_driver_data(pdev);
+- sphy->ref_clk_freq = samsung_usbphy_get_refclk_freq(sphy);
++
++ sphy->ref_clk_freq = samsung_usbphy_get_refclk_freq(sphy);
++ if (sphy->ref_clk_freq < 0)
++ return -EINVAL;
+
+ spin_lock_init(&sphy->lock);
+
+@@ -300,6 +303,7 @@ static int samsung_usb3phy_remove(struct platform_device *pdev)
+ static struct samsung_usbphy_drvdata usb3phy_exynos5 = {
+ .cpu_type = TYPE_EXYNOS5250,
+ .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
++ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
+ };
+
+ #ifdef CONFIG_OF
+--
+1.8.3.2
+
diff --git a/patches.tizen/0011-usb-phy-samsung-Pass-set_isolation-callback-through-.patch b/patches.tizen/0011-usb-phy-samsung-Pass-set_isolation-callback-through-.patch
new file mode 100644
index 0000000..a717f63
--- /dev/null
+++ b/patches.tizen/0011-usb-phy-samsung-Pass-set_isolation-callback-through-.patch
@@ -0,0 +1,188 @@
+From 1fd2b2ad555a88707683d0241d2ae71874b553a6 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 25 Mar 2013 16:40:52 +0100
+Subject: [PATCH 0011/1302] usb: phy: samsung: Pass set_isolation callback
+ through driver data
+
+This patch extends driver data structure with set_isolation callback,
+which allows to remove the need for checking for SoC type in a switch
+statement.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/phy/phy-samsung-usb.c | 36 ++++++++----------------------------
+ drivers/usb/phy/phy-samsung-usb.h | 4 +++-
+ drivers/usb/phy/phy-samsung-usb2.c | 11 +++++++----
+ drivers/usb/phy/phy-samsung-usb3.c | 7 +++++--
+ 4 files changed, 23 insertions(+), 35 deletions(-)
+
+diff --git a/drivers/usb/phy/phy-samsung-usb.c b/drivers/usb/phy/phy-samsung-usb.c
+index c40ea32..7a1ed90 100644
+--- a/drivers/usb/phy/phy-samsung-usb.c
++++ b/drivers/usb/phy/phy-samsung-usb.c
+@@ -73,7 +73,7 @@ EXPORT_SYMBOL_GPL(samsung_usbphy_parse_dt);
+ * Here 'on = true' would mean USB PHY block is isolated, hence
+ * de-activated and vice-versa.
+ */
+-void samsung_usbphy_set_isolation(struct samsung_usbphy *sphy, bool on)
++void samsung_usbphy_set_isolation_4210(struct samsung_usbphy *sphy, bool on)
+ {
+ void __iomem *reg = NULL;
+ u32 reg_val;
+@@ -84,32 +84,12 @@ void samsung_usbphy_set_isolation(struct samsung_usbphy *sphy, bool on)
+ return;
+ }
+
+- switch (sphy->drv_data->cpu_type) {
+- case TYPE_S3C64XX:
+- /*
+- * Do nothing: We will add here once S3C64xx goes for DT support
+- */
+- break;
+- case TYPE_EXYNOS4210:
+- /*
+- * Fall through since exynos4210 and exynos5250 have similar
+- * register architecture: two separate registers for host and
+- * device phy control with enable bit at position 0.
+- */
+- case TYPE_EXYNOS5250:
+- if (sphy->phy_type == USB_PHY_TYPE_DEVICE) {
+- reg = sphy->pmuregs +
+- sphy->drv_data->devphy_reg_offset;
+- en_mask = sphy->drv_data->devphy_en_mask;
+- } else if (sphy->phy_type == USB_PHY_TYPE_HOST) {
+- reg = sphy->pmuregs +
+- sphy->drv_data->hostphy_reg_offset;
+- en_mask = sphy->drv_data->hostphy_en_mask;
+- }
+- break;
+- default:
+- dev_err(sphy->dev, "Invalid SoC type\n");
+- return;
++ if (sphy->phy_type == USB_PHY_TYPE_DEVICE) {
++ reg = sphy->pmuregs + sphy->drv_data->devphy_reg_offset;
++ en_mask = sphy->drv_data->devphy_en_mask;
++ } else if (sphy->phy_type == USB_PHY_TYPE_HOST) {
++ reg = sphy->pmuregs + sphy->drv_data->hostphy_reg_offset;
++ en_mask = sphy->drv_data->hostphy_en_mask;
+ }
+
+ reg_val = readl(reg);
+@@ -121,7 +101,7 @@ void samsung_usbphy_set_isolation(struct samsung_usbphy *sphy, bool on)
+
+ writel(reg_val, reg);
+ }
+-EXPORT_SYMBOL_GPL(samsung_usbphy_set_isolation);
++EXPORT_SYMBOL_GPL(samsung_usbphy_set_isolation_4210);
+
+ /*
+ * Configure the mode of working of usb-phy here: HOST/DEVICE.
+diff --git a/drivers/usb/phy/phy-samsung-usb.h b/drivers/usb/phy/phy-samsung-usb.h
+index 0336f6b..5203784 100644
+--- a/drivers/usb/phy/phy-samsung-usb.h
++++ b/drivers/usb/phy/phy-samsung-usb.h
+@@ -271,6 +271,7 @@ struct samsung_usbphy_drvdata {
+ u32 devphy_reg_offset;
+ u32 hostphy_reg_offset;
+ int (*rate_to_clksel)(struct samsung_usbphy *, unsigned long);
++ void (*set_isolation)(struct samsung_usbphy *, bool);
+ };
+
+ /*
+@@ -323,7 +324,8 @@ static inline const struct samsung_usbphy_drvdata
+ }
+
+ extern int samsung_usbphy_parse_dt(struct samsung_usbphy *sphy);
+-extern void samsung_usbphy_set_isolation(struct samsung_usbphy *sphy, bool on);
++extern void samsung_usbphy_set_isolation_4210(struct samsung_usbphy *sphy,
++ bool on);
+ extern void samsung_usbphy_cfg_sel(struct samsung_usbphy *sphy);
+ extern int samsung_usbphy_set_type(struct usb_phy *phy,
+ enum samsung_usb_phy_type phy_type);
+diff --git a/drivers/usb/phy/phy-samsung-usb2.c b/drivers/usb/phy/phy-samsung-usb2.c
+index be6031d..a01247e 100644
+--- a/drivers/usb/phy/phy-samsung-usb2.c
++++ b/drivers/usb/phy/phy-samsung-usb2.c
+@@ -284,8 +284,8 @@ static int samsung_usb2phy_init(struct usb_phy *phy)
+ /* Disable phy isolation */
+ if (sphy->plat && sphy->plat->pmu_isolation)
+ sphy->plat->pmu_isolation(false);
+- else
+- samsung_usbphy_set_isolation(sphy, false);
++ else if (sphy->drv_data->set_isolation)
++ sphy->drv_data->set_isolation(sphy, false);
+
+ /* Selecting Host/OTG mode; After reset USB2.0PHY_CFG: HOST */
+ samsung_usbphy_cfg_sel(sphy);
+@@ -342,8 +342,8 @@ static void samsung_usb2phy_shutdown(struct usb_phy *phy)
+ /* Enable phy isolation */
+ if (sphy->plat && sphy->plat->pmu_isolation)
+ sphy->plat->pmu_isolation(true);
+- else
+- samsung_usbphy_set_isolation(sphy, true);
++ else if (sphy->drv_data->set_isolation)
++ sphy->drv_data->set_isolation(sphy, true);
+
+ spin_unlock_irqrestore(&sphy->lock, flags);
+
+@@ -442,6 +442,7 @@ static const struct samsung_usbphy_drvdata usb2phy_s3c64xx = {
+ .cpu_type = TYPE_S3C64XX,
+ .devphy_en_mask = S3C64XX_USBPHY_ENABLE,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_64xx,
++ .set_isolation = NULL, /* TODO */
+ };
+
+ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
+@@ -449,6 +450,7 @@ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
+ .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_64xx,
++ .set_isolation = samsung_usbphy_set_isolation_4210,
+ };
+
+ static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
+@@ -456,6 +458,7 @@ static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
+ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .hostphy_reg_offset = EXYNOS_USBHOST_PHY_CTRL_OFFSET,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
++ .set_isolation = samsung_usbphy_set_isolation_4210,
+ };
+
+ #ifdef CONFIG_OF
+diff --git a/drivers/usb/phy/phy-samsung-usb3.c b/drivers/usb/phy/phy-samsung-usb3.c
+index ec44b35..3a30a5e 100644
+--- a/drivers/usb/phy/phy-samsung-usb3.c
++++ b/drivers/usb/phy/phy-samsung-usb3.c
+@@ -184,7 +184,8 @@ static int samsung_usb3phy_init(struct usb_phy *phy)
+ samsung_usbphy_set_type(&sphy->phy, USB_PHY_TYPE_DEVICE);
+
+ /* Disable phy isolation */
+- samsung_usbphy_set_isolation(sphy, false);
++ if (sphy->drv_data->set_isolation)
++ sphy->drv_data->set_isolation(sphy, false);
+
+ /* Initialize usb phy registers */
+ samsung_exynos5_usb3phy_enable(sphy);
+@@ -221,7 +222,8 @@ static void samsung_usb3phy_shutdown(struct usb_phy *phy)
+ samsung_exynos5_usb3phy_disable(sphy);
+
+ /* Enable phy isolation */
+- samsung_usbphy_set_isolation(sphy, true);
++ if (sphy->drv_data->set_isolation)
++ sphy->drv_data->set_isolation(sphy, true);
+
+ spin_unlock_irqrestore(&sphy->lock, flags);
+
+@@ -304,6 +306,7 @@ static struct samsung_usbphy_drvdata usb3phy_exynos5 = {
+ .cpu_type = TYPE_EXYNOS5250,
+ .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
++ .set_isolation = samsung_usbphy_set_isolation_4210,
+ };
+
+ #ifdef CONFIG_OF
+--
+1.8.3.2
+
diff --git a/patches.tizen/0012-usb-phy-samsung-Pass-enable-disable-callbacks-throug.patch b/patches.tizen/0012-usb-phy-samsung-Pass-enable-disable-callbacks-throug.patch
new file mode 100644
index 0000000..00a0c7a
--- /dev/null
+++ b/patches.tizen/0012-usb-phy-samsung-Pass-enable-disable-callbacks-throug.patch
@@ -0,0 +1,139 @@
+From 0b1ad1c2d3320a3e31f3f66e4a1c29d6763006cb Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 25 Mar 2013 16:57:32 +0100
+Subject: [PATCH 0012/1302] usb: phy: samsung: Pass enable/disable callbacks
+ through driver data
+
+To remove unnecessary if statements, this patch introduces phy_enable
+and phy_disable callbacks in driver data structure that implement
+SoC-specific PHY initialization and deinitialization.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/phy/phy-samsung-usb.h | 2 ++
+ drivers/usb/phy/phy-samsung-usb2.c | 16 ++++++++--------
+ drivers/usb/phy/phy-samsung-usb3.c | 10 +++++-----
+ 3 files changed, 15 insertions(+), 13 deletions(-)
+
+diff --git a/drivers/usb/phy/phy-samsung-usb.h b/drivers/usb/phy/phy-samsung-usb.h
+index 5203784..31e2ec3 100644
+--- a/drivers/usb/phy/phy-samsung-usb.h
++++ b/drivers/usb/phy/phy-samsung-usb.h
+@@ -272,6 +272,8 @@ struct samsung_usbphy_drvdata {
+ u32 hostphy_reg_offset;
+ int (*rate_to_clksel)(struct samsung_usbphy *, unsigned long);
+ void (*set_isolation)(struct samsung_usbphy *, bool);
++ void (*phy_enable)(struct samsung_usbphy *);
++ void (*phy_disable)(struct samsung_usbphy *);
+ };
+
+ /*
+diff --git a/drivers/usb/phy/phy-samsung-usb2.c b/drivers/usb/phy/phy-samsung-usb2.c
+index a01247e..1c3abd4 100644
+--- a/drivers/usb/phy/phy-samsung-usb2.c
++++ b/drivers/usb/phy/phy-samsung-usb2.c
+@@ -291,10 +291,7 @@ static int samsung_usb2phy_init(struct usb_phy *phy)
+ samsung_usbphy_cfg_sel(sphy);
+
+ /* Initialize usb phy registers */
+- if (sphy->drv_data->cpu_type == TYPE_EXYNOS5250)
+- samsung_exynos5_usb2phy_enable(sphy);
+- else
+- samsung_usb2phy_enable(sphy);
++ sphy->drv_data->phy_enable(sphy);
+
+ spin_unlock_irqrestore(&sphy->lock, flags);
+
+@@ -334,10 +331,7 @@ static void samsung_usb2phy_shutdown(struct usb_phy *phy)
+ }
+
+ /* De-initialize usb phy registers */
+- if (sphy->drv_data->cpu_type == TYPE_EXYNOS5250)
+- samsung_exynos5_usb2phy_disable(sphy);
+- else
+- samsung_usb2phy_disable(sphy);
++ sphy->drv_data->phy_disable(sphy);
+
+ /* Enable phy isolation */
+ if (sphy->plat && sphy->plat->pmu_isolation)
+@@ -443,6 +437,8 @@ static const struct samsung_usbphy_drvdata usb2phy_s3c64xx = {
+ .devphy_en_mask = S3C64XX_USBPHY_ENABLE,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_64xx,
+ .set_isolation = NULL, /* TODO */
++ .phy_enable = samsung_usb2phy_enable,
++ .phy_disable = samsung_usb2phy_disable,
+ };
+
+ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
+@@ -451,6 +447,8 @@ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
+ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_64xx,
+ .set_isolation = samsung_usbphy_set_isolation_4210,
++ .phy_enable = samsung_usb2phy_enable,
++ .phy_disable = samsung_usb2phy_disable,
+ };
+
+ static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
+@@ -459,6 +457,8 @@ static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
+ .hostphy_reg_offset = EXYNOS_USBHOST_PHY_CTRL_OFFSET,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
+ .set_isolation = samsung_usbphy_set_isolation_4210,
++ .phy_enable = samsung_exynos5_usb2phy_enable,
++ .phy_disable = samsung_exynos5_usb2phy_disable,
+ };
+
+ #ifdef CONFIG_OF
+diff --git a/drivers/usb/phy/phy-samsung-usb3.c b/drivers/usb/phy/phy-samsung-usb3.c
+index 3a30a5e..300e0cf 100644
+--- a/drivers/usb/phy/phy-samsung-usb3.c
++++ b/drivers/usb/phy/phy-samsung-usb3.c
+@@ -65,7 +65,7 @@ static u32 samsung_usb3phy_set_refclk(struct samsung_usbphy *sphy)
+ return reg;
+ }
+
+-static int samsung_exynos5_usb3phy_enable(struct samsung_usbphy *sphy)
++static void samsung_exynos5_usb3phy_enable(struct samsung_usbphy *sphy)
+ {
+ void __iomem *regs = sphy->regs;
+ u32 phyparam0;
+@@ -133,8 +133,6 @@ static int samsung_exynos5_usb3phy_enable(struct samsung_usbphy *sphy)
+
+ phyclkrst &= ~(PHYCLKRST_PORTRESET);
+ writel(phyclkrst, regs + EXYNOS5_DRD_PHYCLKRST);
+-
+- return 0;
+ }
+
+ static void samsung_exynos5_usb3phy_disable(struct samsung_usbphy *sphy)
+@@ -188,7 +186,7 @@ static int samsung_usb3phy_init(struct usb_phy *phy)
+ sphy->drv_data->set_isolation(sphy, false);
+
+ /* Initialize usb phy registers */
+- samsung_exynos5_usb3phy_enable(sphy);
++ sphy->drv_data->phy_enable(sphy);
+
+ spin_unlock_irqrestore(&sphy->lock, flags);
+
+@@ -219,7 +217,7 @@ static void samsung_usb3phy_shutdown(struct usb_phy *phy)
+ samsung_usbphy_set_type(&sphy->phy, USB_PHY_TYPE_DEVICE);
+
+ /* De-initialize usb phy registers */
+- samsung_exynos5_usb3phy_disable(sphy);
++ sphy->drv_data->phy_disable(sphy);
+
+ /* Enable phy isolation */
+ if (sphy->drv_data->set_isolation)
+@@ -307,6 +305,8 @@ static struct samsung_usbphy_drvdata usb3phy_exynos5 = {
+ .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
+ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
+ .set_isolation = samsung_usbphy_set_isolation_4210,
++ .phy_enable = samsung_exynos5_usb3phy_enable,
++ .phy_disable = samsung_exynos5_usb3phy_disable,
+ };
+
+ #ifdef CONFIG_OF
+--
+1.8.3.2
+
diff --git a/patches.tizen/0013-usb-phy-samsung-Add-support-for-USB-2.0-PHY-on-Exyno.patch b/patches.tizen/0013-usb-phy-samsung-Add-support-for-USB-2.0-PHY-on-Exyno.patch
new file mode 100644
index 0000000..30c8891
--- /dev/null
+++ b/patches.tizen/0013-usb-phy-samsung-Add-support-for-USB-2.0-PHY-on-Exyno.patch
@@ -0,0 +1,88 @@
+From b02d45e230000601faad72811548bb3d93203152 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 25 Mar 2013 17:39:07 +0100
+Subject: [PATCH 0013/1302] usb: phy: samsung: Add support for USB 2.0 PHY on
+ Exynos 4x12
+
+This patch adds driver data for Exynos 4x12 USB 2.0 PHY.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/usb/phy/phy-samsung-usb.h | 1 +
+ drivers/usb/phy/phy-samsung-usb2.c | 18 ++++++++++++++++++
+ 2 files changed, 19 insertions(+)
+
+diff --git a/drivers/usb/phy/phy-samsung-usb.h b/drivers/usb/phy/phy-samsung-usb.h
+index 31e2ec3..585d12f 100644
+--- a/drivers/usb/phy/phy-samsung-usb.h
++++ b/drivers/usb/phy/phy-samsung-usb.h
+@@ -241,6 +241,7 @@
+ enum samsung_cpu_type {
+ TYPE_S3C64XX,
+ TYPE_EXYNOS4210,
++ TYPE_EXYNOS4X12,
+ TYPE_EXYNOS5250,
+ };
+
+diff --git a/drivers/usb/phy/phy-samsung-usb2.c b/drivers/usb/phy/phy-samsung-usb2.c
+index 1c3abd4..03180c0 100644
+--- a/drivers/usb/phy/phy-samsung-usb2.c
++++ b/drivers/usb/phy/phy-samsung-usb2.c
+@@ -177,6 +177,7 @@ static void samsung_usb2phy_enable(struct samsung_usbphy *sphy)
+ rstcon |= RSTCON_SWRST;
+ break;
+ case TYPE_EXYNOS4210:
++ case TYPE_EXYNOS4X12:
+ phypwr &= ~PHYPWR_NORMAL_MASK_PHY0;
+ rstcon |= RSTCON_SWRST;
+ default:
+@@ -240,6 +241,7 @@ static void samsung_usb2phy_disable(struct samsung_usbphy *sphy)
+ phypwr |= PHYPWR_NORMAL_MASK;
+ break;
+ case TYPE_EXYNOS4210:
++ case TYPE_EXYNOS4X12:
+ phypwr |= PHYPWR_NORMAL_MASK_PHY0;
+ default:
+ break;
+@@ -451,6 +453,16 @@ static const struct samsung_usbphy_drvdata usb2phy_exynos4 = {
+ .phy_disable = samsung_usb2phy_disable,
+ };
+
++static const struct samsung_usbphy_drvdata usb2phy_exynos4x12 = {
++ .cpu_type = TYPE_EXYNOS4X12,
++ .devphy_en_mask = EXYNOS_USBPHY_ENABLE,
++ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
++ .rate_to_clksel = samsung_usbphy_rate_to_clksel_4x12,
++ .set_isolation = samsung_usbphy_set_isolation_4210,
++ .phy_enable = samsung_usb2phy_enable,
++ .phy_disable = samsung_usb2phy_disable,
++};
++
+ static struct samsung_usbphy_drvdata usb2phy_exynos5 = {
+ .cpu_type = TYPE_EXYNOS5250,
+ .hostphy_en_mask = EXYNOS_USBPHY_ENABLE,
+@@ -470,6 +482,9 @@ static const struct of_device_id samsung_usbphy_dt_match[] = {
+ .compatible = "samsung,exynos4210-usb2phy",
+ .data = &usb2phy_exynos4,
+ }, {
++ .compatible = "samsung,exynos4x12-usb2phy",
++ .data = &usb2phy_exynos4x12,
++ }, {
+ .compatible = "samsung,exynos5250-usb2phy",
+ .data = &usb2phy_exynos5
+ },
+@@ -486,6 +501,9 @@ static struct platform_device_id samsung_usbphy_driver_ids[] = {
+ .name = "exynos4210-usb2phy",
+ .driver_data = (unsigned long)&usb2phy_exynos4,
+ }, {
++ .name = "exynos4x12-usb2phy",
++ .driver_data = (unsigned long)&usb2phy_exynos4x12,
++ }, {
+ .name = "exynos5250-usb2phy",
+ .driver_data = (unsigned long)&usb2phy_exynos5,
+ },
+--
+1.8.3.2
+
diff --git a/patches.tizen/0014-ARM-dts-exynos4-Add-node-for-hsotg.patch b/patches.tizen/0014-ARM-dts-exynos4-Add-node-for-hsotg.patch
new file mode 100644
index 0000000..92425a8
--- /dev/null
+++ b/patches.tizen/0014-ARM-dts-exynos4-Add-node-for-hsotg.patch
@@ -0,0 +1,32 @@
+From 23b3d46f3bfbd2f3f1a53b5210a986667300e25b Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Tue, 11 Sep 2012 13:37:40 +0200
+Subject: [PATCH 0014/1302] ARM: dts: exynos4: Add node for hsotg
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 7 +++++++
+ 1 file changed, 7 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index b90bab3..5f57f59 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -350,6 +350,13 @@
+ status = "disabled";
+ };
+
++ hsotg@12480000 {
++ compatible = "samsung,s3c-hsotg";
++ reg = <0x12480000 0x20000>;
++ interrupts = <0 71 0>;
++ status = "disabled";
++ };
++
+ amba {
+ #address-cells = <1>;
+ #size-cells = <1>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0015-iommu-exynos-do-not-include-removed-header.patch b/patches.tizen/0015-iommu-exynos-do-not-include-removed-header.patch
new file mode 100644
index 0000000..f249702
--- /dev/null
+++ b/patches.tizen/0015-iommu-exynos-do-not-include-removed-header.patch
@@ -0,0 +1,37 @@
+From cbffb3bc2d93c6b044332fc24fce091cedef80ff Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:26:10 +0900
+Subject: [PATCH 0015/1302] iommu/exynos: do not include removed header
+
+This commit remove <mach/sysmmu.h> which is removed.
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 3 +--
+ 1 file changed, 1 insertion(+), 2 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index 3f32d64..233f382 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -12,6 +12,7 @@
+ #define DEBUG
+ #endif
+
++#include <linux/kernel.h>
+ #include <linux/io.h>
+ #include <linux/interrupt.h>
+ #include <linux/platform_device.h>
+@@ -29,8 +30,6 @@
+ #include <asm/cacheflush.h>
+ #include <asm/pgtable.h>
+
+-#include <mach/sysmmu.h>
+-
+ /* We does not consider super section mapping (16MB) */
+ #define SECT_ORDER 20
+ #define LPAGE_ORDER 16
+--
+1.8.3.2
+
diff --git a/patches.tizen/0016-iommu-exynos-add-missing-cache-flush-for-removed-pag.patch b/patches.tizen/0016-iommu-exynos-add-missing-cache-flush-for-removed-pag.patch
new file mode 100644
index 0000000..118a322
--- /dev/null
+++ b/patches.tizen/0016-iommu-exynos-add-missing-cache-flush-for-removed-pag.patch
@@ -0,0 +1,40 @@
+From bc5501f6b0afe076af0f30845221dbb4834c6ed4 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:26:28 +0900
+Subject: [PATCH 0016/1302] iommu/exynos: add missing cache flush for removed
+ page table entries
+
+This commit adds cache flush for removed small and large page entries
+in exynos_iommu_unmap(). Missing cache flush of removed page table
+entries can cause missing page fault interrupt when a master IP
+accesses an unmapped area.
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index 233f382..e3be3e5 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -1002,6 +1002,7 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ if (lv2ent_small(ent)) {
+ *ent = 0;
+ size = SPAGE_SIZE;
++ pgtable_flush(ent, ent +1);
+ priv->lv2entcnt[lv1ent_offset(iova)] += 1;
+ goto done;
+ }
+@@ -1010,6 +1011,7 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ BUG_ON(size < LPAGE_SIZE);
+
+ memset(ent, 0, sizeof(*ent) * SPAGES_PER_LPAGE);
++ pgtable_flush(ent, ent + SPAGES_PER_LPAGE);
+
+ size = LPAGE_SIZE;
+ priv->lv2entcnt[lv1ent_offset(iova)] += SPAGES_PER_LPAGE;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0017-iommu-exynos-fix-page-table-maintenance.patch b/patches.tizen/0017-iommu-exynos-fix-page-table-maintenance.patch
new file mode 100644
index 0000000..481b43c
--- /dev/null
+++ b/patches.tizen/0017-iommu-exynos-fix-page-table-maintenance.patch
@@ -0,0 +1,151 @@
+From e16855c6f3919791b9ffc0d7471843df045e43ca Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:27:11 +0900
+Subject: [PATCH 0017/1302] iommu/exynos: fix page table maintenance
+
+This prevents allocating lv2 page table for the lv1 page table entry
+that already has 1MB page mapping. In addition some BUG_ON() is
+changed to WARN_ON().
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 52 +++++++++++++++++++++++++++++++-------------
+ 1 file changed, 37 insertions(+), 15 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index e3be3e5..6c4ecce 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -52,11 +52,11 @@
+ #define lv2ent_large(pent) ((*(pent) & 3) == 1)
+
+ #define section_phys(sent) (*(sent) & SECT_MASK)
+-#define section_offs(iova) ((iova) & 0xFFFFF)
++#define section_offs(iova) ((iova) & ~SECT_MASK)
+ #define lpage_phys(pent) (*(pent) & LPAGE_MASK)
+-#define lpage_offs(iova) ((iova) & 0xFFFF)
++#define lpage_offs(iova) ((iova) & ~LPAGE_MASK)
+ #define spage_phys(pent) (*(pent) & SPAGE_MASK)
+-#define spage_offs(iova) ((iova) & 0xFFF)
++#define spage_offs(iova) ((iova) & ~SPAGE_MASK)
+
+ #define lv1ent_offset(iova) ((iova) >> SECT_ORDER)
+ #define lv2ent_offset(iova) (((iova) & 0xFF000) >> SPAGE_ORDER)
+@@ -862,12 +862,14 @@ static unsigned long *alloc_lv2entry(unsigned long *sent, unsigned long iova,
+ pent = kzalloc(LV2TABLE_SIZE, GFP_ATOMIC);
+ BUG_ON((unsigned long)pent & (LV2TABLE_SIZE - 1));
+ if (!pent)
+- return NULL;
++ return ERR_PTR(-ENOMEM);
+
+ *sent = mk_lv1ent_page(__pa(pent));
+ *pgcounter = NUM_LV2ENTRIES;
+ pgtable_flush(pent, pent + NUM_LV2ENTRIES);
+ pgtable_flush(sent, sent + 1);
++ } else if (lv1ent_section(sent)) {
++ return ERR_PTR(-EADDRINUSE);
+ }
+
+ return page_entry(sent, iova);
+@@ -894,6 +896,12 @@ static int lv1set_section(unsigned long *sent, phys_addr_t paddr, short *pgcnt)
+ return 0;
+ }
+
++static void clear_page_table(unsigned long *ent, int n)
++{
++ if (n > 0)
++ memset(ent, 0, sizeof(*ent) * n);
++}
++
+ static int lv2set_page(unsigned long *pent, phys_addr_t paddr, size_t size,
+ short *pgcnt)
+ {
+@@ -908,7 +916,7 @@ static int lv2set_page(unsigned long *pent, phys_addr_t paddr, size_t size,
+ int i;
+ for (i = 0; i < SPAGES_PER_LPAGE; i++, pent++) {
+ if (!lv2ent_fault(pent)) {
+- memset(pent, 0, sizeof(*pent) * i);
++ clear_page_table(pent - i, i);
+ return -EADDRINUSE;
+ }
+
+@@ -944,17 +952,16 @@ static int exynos_iommu_map(struct iommu_domain *domain, unsigned long iova,
+ pent = alloc_lv2entry(entry, iova,
+ &priv->lv2entcnt[lv1ent_offset(iova)]);
+
+- if (!pent)
+- ret = -ENOMEM;
++ if (IS_ERR(pent))
++ ret = PTR_ERR(pent);
+ else
+ ret = lv2set_page(pent, paddr, size,
+ &priv->lv2entcnt[lv1ent_offset(iova)]);
+ }
+
+- if (ret) {
+- pr_debug("%s: Failed to map iova 0x%lx/0x%x bytes\n",
+- __func__, iova, size);
+- }
++ if (ret)
++ pr_err("%s: Failed(%d) to map 0x%#x bytes @ %#lx\n",
++ __func__, ret, size, iova);
+
+ spin_unlock_irqrestore(&priv->pgtablelock, flags);
+
+@@ -968,6 +975,7 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ struct sysmmu_drvdata *data;
+ unsigned long flags;
+ unsigned long *ent;
++ size_t err_pgsize;
+
+ BUG_ON(priv->pgtable == NULL);
+
+@@ -976,7 +984,10 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ ent = section_entry(priv->pgtable, iova);
+
+ if (lv1ent_section(ent)) {
+- BUG_ON(size < SECT_SIZE);
++ if (WARN_ON(size < SECT_SIZE)) {
++ err_pgsize = SECT_SIZE;
++ goto err;
++ }
+
+ *ent = 0;
+ pgtable_flush(ent, ent + 1);
+@@ -1008,9 +1019,12 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ }
+
+ /* lv1ent_large(ent) == true here */
+- BUG_ON(size < LPAGE_SIZE);
++ if (WARN_ON(size < LPAGE_SIZE)) {
++ err_pgsize = LPAGE_SIZE;
++ goto err;
++ }
+
+- memset(ent, 0, sizeof(*ent) * SPAGES_PER_LPAGE);
++ clear_page_table(ent, SPAGES_PER_LPAGE);
+ pgtable_flush(ent, ent + SPAGES_PER_LPAGE);
+
+ size = LPAGE_SIZE;
+@@ -1023,8 +1037,16 @@ done:
+ sysmmu_tlb_invalidate_entry(data->dev, iova);
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+-
+ return size;
++err:
++ spin_unlock_irqrestore(&priv->pgtablelock, flags);
++
++ pr_err("%s: Failed due to size(%#x) @ %#lx is"\
++ " smaller than page size %#x\n",
++ __func__, size, iova, err_pgsize);
++
++ return 0;
++
+ }
+
+ static phys_addr_t exynos_iommu_iova_to_phys(struct iommu_domain *domain,
+--
+1.8.3.2
+
diff --git a/patches.tizen/0018-iommu-exynos-allocate-lv2-page-table-from-own-slab.patch b/patches.tizen/0018-iommu-exynos-allocate-lv2-page-table-from-own-slab.patch
new file mode 100644
index 0000000..bb5a914
--- /dev/null
+++ b/patches.tizen/0018-iommu-exynos-allocate-lv2-page-table-from-own-slab.patch
@@ -0,0 +1,84 @@
+From 429942a268e534b39ddbe819cbd8c5641c7bbf38 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:27:29 +0900
+Subject: [PATCH 0018/1302] iommu/exynos: allocate lv2 page table from own slab
+
+Since kmalloc() does not guarantee that the allignment of 1KiB when it
+allocates 1KiB, it is required to allocate lv2 page table from own
+slab that guarantees alignment of 1KiB
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 24 ++++++++++++++++++++----
+ 1 file changed, 20 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index 6c4ecce..093eea5 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -100,6 +100,8 @@
+ #define REG_PB1_SADDR 0x054
+ #define REG_PB1_EADDR 0x058
+
++static struct kmem_cache *lv2table_kmem_cache;
++
+ static unsigned long *section_entry(unsigned long *pgtable, unsigned long iova)
+ {
+ return pgtable + lv1ent_offset(iova);
+@@ -765,7 +767,8 @@ static void exynos_iommu_domain_destroy(struct iommu_domain *domain)
+
+ for (i = 0; i < NUM_LV1ENTRIES; i++)
+ if (lv1ent_page(priv->pgtable + i))
+- kfree(__va(lv2table_base(priv->pgtable + i)));
++ kmem_cache_free(lv2table_kmem_cache,
++ __va(lv2table_base(priv->pgtable + i)));
+
+ free_pages((unsigned long)priv->pgtable, 2);
+ free_pages((unsigned long)priv->lv2entcnt, 1);
+@@ -859,7 +862,7 @@ static unsigned long *alloc_lv2entry(unsigned long *sent, unsigned long iova,
+ if (lv1ent_fault(sent)) {
+ unsigned long *pent;
+
+- pent = kzalloc(LV2TABLE_SIZE, GFP_ATOMIC);
++ pent = kmem_cache_zalloc(lv2table_kmem_cache, GFP_ATOMIC);
+ BUG_ON((unsigned long)pent & (LV2TABLE_SIZE - 1));
+ if (!pent)
+ return ERR_PTR(-ENOMEM);
+@@ -884,7 +887,7 @@ static int lv1set_section(unsigned long *sent, phys_addr_t paddr, short *pgcnt)
+ if (*pgcnt != NUM_LV2ENTRIES)
+ return -EADDRINUSE;
+
+- kfree(page_entry(sent, 0));
++ kmem_cache_free(lv2table_kmem_cache, page_entry(sent, 0));
+
+ *pgcnt = 0;
+ }
+@@ -1092,10 +1095,23 @@ static int __init exynos_iommu_init(void)
+ {
+ int ret;
+
++ lv2table_kmem_cache = kmem_cache_create("exynos-iommu-lv2table",
++ LV2TABLE_SIZE, LV2TABLE_SIZE, 0, NULL);
++ if (!lv2table_kmem_cache) {
++ pr_err("%s: Failed to create kmem cache\n", __func__);
++ return -ENOMEM;
++ }
++
+ ret = platform_driver_register(&exynos_sysmmu_driver);
+
+ if (ret == 0)
+- bus_set_iommu(&platform_bus_type, &exynos_iommu_ops);
++ ret = bus_set_iommu(&platform_bus_type, &exynos_iommu_ops);
++
++ if (ret) {
++ pr_err("%s: Failed to register exynos-iommu driver.\n",
++ __func__);
++ kmem_cache_destroy(lv2table_kmem_cache);
++ }
+
+ return ret;
+ }
+--
+1.8.3.2
+
diff --git a/patches.tizen/0019-clk-exynos5250-add-gate-clock-descriptions-of-System.patch b/patches.tizen/0019-clk-exynos5250-add-gate-clock-descriptions-of-System.patch
new file mode 100644
index 0000000..e68990e
--- /dev/null
+++ b/patches.tizen/0019-clk-exynos5250-add-gate-clock-descriptions-of-System.patch
@@ -0,0 +1,157 @@
+From c25040eec6251a3cd2f82d7dc7133c29fd019a6e Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:27:54 +0900
+Subject: [PATCH 0019/1302] clk: exynos5250: add gate clock descriptions of
+ System MMU
+
+This adds gate clocks of all System MMUs and their master IPs
+that are not apeared in clk-exynos5250.c
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ .../devicetree/bindings/clock/exynos5250-clock.txt | 28 ++++++++++-
+ drivers/clk/samsung/clk-exynos5250.c | 57 ++++++++++++++++++----
+ 2 files changed, 75 insertions(+), 10 deletions(-)
+
+diff --git a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
+index 781a627..df49694 100644
+--- a/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
++++ b/Documentation/devicetree/bindings/clock/exynos5250-clock.txt
+@@ -154,7 +154,33 @@ clock which they consume.
+ dsim0 341
+ dp 342
+ mixer 343
+- hdmi 345
++ hdmi 344
++ camif_top 345
++ smmu_fimc_lite0 346
++ smmu_fimc_lite1 347
++ smmu_fimc_lite2 348
++ smmu_tv 349
++ smmu_fimd1 350
++ smmu_2d 351
++ fimc_isp 352
++ fimc_drc 353
++ fimc_fd 354
++ fimc_scc 355
++ fimc_scp 356
++ fimc_mcuctl 357
++ fimc_odc 358
++ fimc_dis 359
++ fimc_3dnr 360
++ smmu_fimc_isp 361
++ smmu_fimc_drc 362
++ smmu_fimc_fd 363
++ smmu_fimc_scc 364
++ smmu_fimc_scp 365
++ smmu_fimc_mcuctl 366
++ smmu_fimc_odc 367
++ smmu_fimc_dis0 368
++ smmu_fimc_dis1 369
++ smmu_fimc_3dnr 370
+
+ Example 1: An example of a clock controller node is listed below.
+
+diff --git a/drivers/clk/samsung/clk-exynos5250.c b/drivers/clk/samsung/clk-exynos5250.c
+index 22d7699..e242bde 100644
+--- a/drivers/clk/samsung/clk-exynos5250.c
++++ b/drivers/clk/samsung/clk-exynos5250.c
+@@ -53,12 +53,15 @@
+ #define DIV_PERIC3 0x10564
+ #define DIV_PERIC4 0x10568
+ #define DIV_PERIC5 0x1056c
++#define GATE_IP_ISP0 0x0C800
++#define GATE_IP_ISP1 0x0C800
+ #define GATE_IP_GSCL 0x10920
+ #define GATE_IP_MFC 0x1092c
+ #define GATE_IP_GEN 0x10934
+ #define GATE_IP_FSYS 0x10944
+ #define GATE_IP_PERIC 0x10950
+ #define GATE_IP_PERIS 0x10960
++#define GATE_IP_ACP 0x18800
+ #define SRC_CDREX 0x20200
+ #define PLL_DIV2_SEL 0x20a24
+ #define GATE_IP_DISP1 0x10928
+@@ -100,6 +103,14 @@ enum exynos5250_clks {
+ tzpc2, tzpc3, tzpc4, tzpc5, tzpc6, tzpc7, tzpc8, tzpc9, hdmi_cec, mct,
+ wdt, rtc, tmu, fimd1, mie1, dsim0, dp, mixer, hdmi,
+
++ camif_top, smmu_fimc_lite0, smmu_fimc_lite1, smmu_fimc_lite2,
++ smmu_tv, smmu_fimd1, smmu_2d,
++ fimc_isp, fimc_drc, fimc_fd, fimc_scc, fimc_scp, fimc_mcuctl, fimc_odc,
++ fimc_dis, fimc_3dnr,
++ smmu_fimc_isp, smmu_fimc_drc, smmu_fimc_fd, smmu_fimc_scc,
++ smmu_fimc_scp, smmu_fimc_mcuctl, smmu_fimc_odc, smmu_fimc_dis0,
++ smmu_fimc_dis1, smmu_fimc_3dnr,
++
+ nr_clks,
+ };
+
+@@ -320,19 +331,26 @@ struct samsung_gate_clock exynos5250_gate_clks[] __initdata = {
+ GATE(gscl3, "gscl3", "aclk266", GATE_IP_GSCL, 3, 0, 0),
+ GATE(gscl_wa, "gscl_wa", "div_gscl_wa", GATE_IP_GSCL, 5, 0, 0),
+ GATE(gscl_wb, "gscl_wb", "div_gscl_wb", GATE_IP_GSCL, 6, 0, 0),
+- GATE(smmu_gscl0, "smmu_gscl0", "aclk266", GATE_IP_GSCL, 7, 0, 0),
+- GATE(smmu_gscl1, "smmu_gscl1", "aclk266", GATE_IP_GSCL, 8, 0, 0),
+- GATE(smmu_gscl2, "smmu_gscl2", "aclk266", GATE_IP_GSCL, 9, 0, 0),
+- GATE(smmu_gscl3, "smmu_gscl3", "aclk266", GATE_IP_GSCL, 10, 0, 0),
++ GATE(smmu_gscl0, "smmu_gscl0", "none", GATE_IP_GSCL, 7, 0, 0),
++ GATE(smmu_gscl1, "smmu_gscl1", "none", GATE_IP_GSCL, 8, 0, 0),
++ GATE(smmu_gscl2, "smmu_gscl2", "none", GATE_IP_GSCL, 9, 0, 0),
++ GATE(smmu_gscl3, "smmu_gscl3", "none", GATE_IP_GSCL, 10, 0, 0),
++ GATE(camif_top, "camif_top", "aclk266", GATE_IP_GSCL, 4, 0, 0),
++ GATE(smmu_fimc_lite0, "smmu_fimc_lite0", "none",
++ GATE_IP_GSCL, 12, 0, 0),
++ GATE(smmu_fimc_lite1, "smmu_fimc_lite1", "none",
++ GATE_IP_GSCL, 13, 0, 0),
++ GATE(smmu_fimc_lite2, "smmu_fimc_lite2", "none",
++ GATE_IP_GSCL, 14, 0, 0),
+ GATE(mfc, "mfc", "aclk333", GATE_IP_MFC, 0, 0, 0),
+- GATE(smmu_mfcl, "smmu_mfcl", "aclk333", GATE_IP_MFC, 1, 0, 0),
+- GATE(smmu_mfcr, "smmu_mfcr", "aclk333", GATE_IP_MFC, 2, 0, 0),
++ GATE(smmu_mfcr, "smmu_mfcr", "none", GATE_IP_MFC, 1, 0, 0),
++ GATE(smmu_mfcl, "smmu_mfcl", "none", GATE_IP_MFC, 2, 0, 0),
+ GATE(rotator, "rotator", "aclk266", GATE_IP_GEN, 1, 0, 0),
+ GATE(jpeg, "jpeg", "aclk166", GATE_IP_GEN, 2, 0, 0),
+ GATE(mdma1, "mdma1", "aclk266", GATE_IP_GEN, 4, 0, 0),
+- GATE(smmu_rotator, "smmu_rotator", "aclk266", GATE_IP_GEN, 6, 0, 0),
+- GATE(smmu_jpeg, "smmu_jpeg", "aclk166", GATE_IP_GEN, 7, 0, 0),
+- GATE(smmu_mdma1, "smmu_mdma1", "aclk266", GATE_IP_GEN, 9, 0, 0),
++ GATE(smmu_rotator, "smmu_rotator", "none", GATE_IP_GEN, 6, 0, 0),
++ GATE(smmu_jpeg, "smmu_jpeg", "none", GATE_IP_GEN, 7, 0, 0),
++ GATE(smmu_mdma1, "smmu_mdma1", "none", GATE_IP_GEN, 9, 0, 0),
+ GATE(pdma0, "pdma0", "aclk200", GATE_IP_FSYS, 1, 0, 0),
+ GATE(pdma1, "pdma1", "aclk200", GATE_IP_FSYS, 2, 0, 0),
+ GATE(sata, "sata", "aclk200", GATE_IP_FSYS, 6, 0, 0),
+@@ -462,6 +480,27 @@ struct samsung_gate_clock exynos5250_gate_clks[] __initdata = {
+ GATE(dp, "dp", "aclk200", GATE_IP_DISP1, 4, 0, 0),
+ GATE(mixer, "mixer", "aclk200", GATE_IP_DISP1, 5, 0, 0),
+ GATE(hdmi, "hdmi", "aclk200", GATE_IP_DISP1, 6, 0, 0),
++ GATE(smmu_tv, "smmu_tv", "none", GATE_IP_DISP1, 2, 0, 0),
++ GATE(smmu_fimd1, "smmu_fimd1", "none", GATE_IP_DISP1, 8, 0, 0),
++
++ GATE(smmu_fimc_isp, "smmu_fimc_isp", "none", GATE_IP_ISP0, 8, 0, 0),
++ GATE(smmu_fimc_drc, "smmu_fimc_drc", "none", GATE_IP_ISP0, 9, 0, 0),
++ GATE(smmu_fimc_fd, "smmu_fimc_fd", "none", GATE_IP_ISP0, 10, 0, 0),
++ GATE(smmu_fimc_scc, "smmu_fimc_scc", "none",
++ GATE_IP_ISP0, 11, 0, 0),
++ GATE(smmu_fimc_scp, "smmu_fimc_scp", "none",
++ GATE_IP_ISP0, 12, 0, 0),
++ GATE(smmu_fimc_mcuctl, "smmu_fimc_mcuctl", "none",
++ GATE_IP_ISP0, 13, 0, 0),
++ GATE(smmu_fimc_odc, "smmu_fimc_odc", "none", GATE_IP_ISP1, 4, 0, 0),
++ GATE(smmu_fimc_dis0, "smmu_fimc_dis0", "none",
++ GATE_IP_ISP1, 5, 0, 0),
++ GATE(smmu_fimc_dis1, "smmu_fimc_dis1", "none",
++ GATE_IP_ISP1, 6, 0, 0),
++ GATE(smmu_fimc_3dnr, "smmu_fimc_3dnr", "none",
++ GATE_IP_ISP1, 7, 0, 0),
++
++ GATE(smmu_2d, "smmu_2d", "none", GATE_IP_ACP, 7, 0, 0),
+ };
+
+ static __initdata struct of_device_id ext_clk_match[] = {
+--
+1.8.3.2
+
diff --git a/patches.tizen/0020-ARM-dts-Add-description-of-System-MMU-of-Exynos-SoCs.patch b/patches.tizen/0020-ARM-dts-Add-description-of-System-MMU-of-Exynos-SoCs.patch
new file mode 100644
index 0000000..968f3e8
--- /dev/null
+++ b/patches.tizen/0020-ARM-dts-Add-description-of-System-MMU-of-Exynos-SoCs.patch
@@ -0,0 +1,738 @@
+From aedbf55d2d2ee9fc3f1b87608f4410882f89e456 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:28:19 +0900
+Subject: [PATCH 0020/1302] ARM: dts: Add description of System MMU of Exynos
+ SoCs
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ .../bindings/iommu/samsung,exynos4210-sysmmu.txt | 103 ++++++++
+ arch/arm/boot/dts/exynos4.dtsi | 122 +++++++++
+ arch/arm/boot/dts/exynos4210.dtsi | 25 ++
+ arch/arm/boot/dts/exynos4x12.dtsi | 76 ++++++
+ arch/arm/boot/dts/exynos5250.dtsi | 291 +++++++++++++++++++++
+ 5 files changed, 617 insertions(+)
+ create mode 100644 Documentation/devicetree/bindings/iommu/samsung,exynos4210-sysmmu.txt
+
+diff --git a/Documentation/devicetree/bindings/iommu/samsung,exynos4210-sysmmu.txt b/Documentation/devicetree/bindings/iommu/samsung,exynos4210-sysmmu.txt
+new file mode 100644
+index 0000000..92f0a33
+--- /dev/null
++++ b/Documentation/devicetree/bindings/iommu/samsung,exynos4210-sysmmu.txt
+@@ -0,0 +1,103 @@
++Samsung Exynos4210 IOMMU H/W, System MMU (System Memory Management Unit)
++
++Samsung's Exynos architecture contains System MMU that enables scattered
++physical memory chunks visible as a contiguous region to DMA-capable peripheral
++devices like MFC, FIMC, FIMD, GScaler, FIMC-IS and so forth.
++
++System MMU is a sort of IOMMU and support identical translation table format to
++ARMv7 translation tables with minimum set of page properties including access
++permissions, shareability and security protection. In addition, System MMU has
++another capabilities like L2 TLB or block-fetch buffers to minimize translation
++latency.
++
++A System MMU is dedicated to a single master peripheral device. Thus, it is
++important to specify the correct System MMU in the device node of its master
++device. Whereas a System MMU is dedicated to a master device, the master device
++may have more than one System MMU.
++
++Required properties:
++- compatible: Should be "samsung,exynos4210-sysmmu"
++- reg: A tuple of base address and size of System MMU registers.
++- interrupt-parent: The phandle of the interrupt controller of System MMU
++- interrupts: A tuple of numbers that indicates the interrupt source.
++- clock-names: Should be "sysmmu" if the System MMU is needed to gate its clock.
++ Please refer to the following documents:
++ Documentation/devicetree/bindings/clock/clock-bindings.txt
++ Documentation/devicetree/bindings/clock/exynos4-clock.txt
++ Documentation/devicetree/bindings/clock/exynos5250-clock.txt
++ Optional "master" if the clock to the System MMU is gated by
++ another gate clock other than "sysmmu". The System MMU driver
++ sets "master" the parent of "sysmmu".
++ Exynos4 SoCs, there needs no "master" clocks.
++ Exynos5 SoCs, some System MMUs must have "master" clocks.
++- clocks: Required if the System MMU is needed to gate its clock.
++ Please refer to the documents listed above.
++- samsung,power-domain: Required if the System MMU is needed to gate its power.
++ Please refer to the following document:
++ Documentation/devicetree/bindings/arm/exynos/power_domain.txt
++
++Required properties for the master peripheral devices:
++- iommu: phandles to the System MMUs of the device
++
++Examples:
++A System MMU is dedicated to a single master device.
++ gsc_0: gsc@0x13e00000 {
++ compatible = "samsung,exynos5-gsc";
++ reg = <0x13e00000 0x1000>;
++ interrupts = <0 85 0>;
++ samsung,power-domain = <&pd_gsc>;
++ clocks = <&clock 256>;
++ clock-names = "gscl";
++ iommu = <&sysmmu_gsc1>;
++ };
++
++ sysmmu_gsc0: sysmmu@13E80000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13E80000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-gsc0";
++ interrupts = <2 0>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 262>, <&clock 256>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++MFC has 2 System MMUs for each port that MFC is attached. Thus it seems natural
++to define 2 System MMUs for each port of the MFC:
++
++ mfc: codec@13400000 {
++ compatible = "samsung,mfc-v5";
++ reg = <0x13400000 0x10000>;
++ interrupts = <0 94 0>;
++ samsung,power-domain = <&pd_mfc>;
++ clocks = <&clock 170>, <&clock 273>;
++ clock-names = "sclk_mfc", "mfc";
++ status = "ok";
++ iommu = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
++ };
++
++ sysmmu_mfc_l: sysmmu@13620000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13620000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-mfc-l";
++ interrupts = <5 5>;
++ clock-names = "sysmmu";
++ clocks = <&clock 274>;
++ samsung,power-domain = <&pd_mfc>;
++ status = "ok";
++ };
++
++ sysmmu_mfc_r: sysmmu@13630000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13630000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-mfc-r";
++ interrupts = <5 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 275>;
++ samsung,power-domain = <&pd_mfc>;
++ status = "ok";
++ };
++
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 5f57f59..77ac4af 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -167,6 +167,7 @@
+ interrupts = <0 94 0>;
+ samsung,power-domain = <&pd_mfc>;
+ status = "disabled";
++ iommu = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
+ };
+
+ serial@13800000 {
+@@ -408,5 +409,126 @@
+ clock-names = "sclk_fimd", "fimd";
+ samsung,power-domain = <&pd_lcd0>;
+ status = "disabled";
++ iommu = <&sysmmu_fimd0>;
++ };
++
++ sysmmu_mfc_l: sysmmu@13620000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13620000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-mfc-l";
++ interrupts = <5 5>;
++ clock-names = "sysmmu";
++ clocks = <&clock 274>;
++ samsung,power-domain = <&pd_mfc>;
++ status = "ok";
++ };
++
++ sysmmu_mfc_r: sysmmu@13630000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13630000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-mfc-r";
++ interrupts = <5 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 275>;
++ samsung,power-domain = <&pd_mfc>;
++ status = "ok";
++ };
++
++ sysmmu_tv: sysmmu@13E20000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13E20000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-tv";
++ interrupts = <5 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 272>;
++ samsung,power-domain = <&pd_tv>;
++ status = "ok";
++ };
++
++ sysmmu_fimc0: sysmmu@11A20000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11A20000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc0";
++ interrupts = <4 2>;
++ clock-names = "sysmmu";
++ clocks = <&clock 263>;
++ samsung,power-domain = <&pd_cam>;
++ status = "ok";
++ };
++
++ sysmmu_fimc1: sysmmu@11A30000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11A30000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc1";
++ interrupts = <4 3>;
++ clock-names = "sysmmu";
++ clocks = <&clock 264>;
++ samsung,power-domain = <&pd_cam>;
++ status = "ok";
++ };
++
++ sysmmu_fimc2: sysmmu@11A40000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11A40000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc2";
++ interrupts = <4 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 265>;
++ samsung,power-domain = <&pd_cam>;
++ status = "ok";
++ };
++
++ sysmmu_fimc3: sysmmu@11A50000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11A50000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc3";
++ interrupts = <4 5>;
++ clock-names = "sysmmu";
++ clocks = <&clock 266>;
++ samsung,power-domain = <&pd_cam>;
++ status = "ok";
++ };
++
++ sysmmu_jpeg: sysmmu@11A60000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11A60000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-jpeg";
++ interrupts = <4 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 267>;
++ samsung,power-domain = <&pd_cam>;
++ status = "ok";
++ };
++
++ sysmmu_rotator: sysmmu@12A30000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x12A30000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-rotator";
++ interrupts = <5 0>;
++ clock-names = "sysmmu";
++ clocks = <&clock 281>;
++ samsung,power-domain = <&pd_lcd0>;
++ status = "ok";
++ };
++
++ sysmmu_fimd0: sysmmu@11E20000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11E20000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimd0";
++ interrupts = <5 2>;
++ clock-names = "sysmmu";
++ clocks = <&clock 287>;
++ samsung,power-domain = <&pd_lcd0>;
++ status = "ok";
+ };
+ };
+diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
+index ef707bd..7ab619e 100644
+--- a/arch/arm/boot/dts/exynos4210.dtsi
++++ b/arch/arm/boot/dts/exynos4210.dtsi
+@@ -123,5 +123,30 @@
+ reg = <0x12800000 0x1000>;
+ interrupts = <0 89 0>;
+ status = "disabled";
++ iommu = <&sysmmu_g2d>;
++ };
++
++ sysmmu_g2d: sysmmu@12A20000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x12A20000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-g2d";
++ interrupts = <4 7>;
++ clock-names = "sysmmu";
++ clocks = <&clock 280>;
++ samsung,power-domain = <&pd_lcd0>;
++ status = "ok";
++ };
++
++ sysmmu_fimd1: sysmmu@12220000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimd1";
++ reg = <0x12220000 0x1000>;
++ interrupts = <5 3>;
++ clock-names = "sysmmu";
++ clocks = <&clock 291>;
++ samsung,power-domain = <&pd_lcd1>;
++ status = "ok";
+ };
+ };
+diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
+index 4afda47..3bf2d09 100644
+--- a/arch/arm/boot/dts/exynos4x12.dtsi
++++ b/arch/arm/boot/dts/exynos4x12.dtsi
+@@ -83,4 +83,80 @@
+ interrupts = <0 89 0>;
+ status = "disabled";
+ };
++
++ sysmmu_g2d: sysmmu@10A40000{
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x10A40000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-g2d";
++ interrupts = <4 7>;
++ clock-names = "sysmmu";
++ status = "ok";
++ };
++
++ sysmmu_fimc_isp: sysmmu@12260000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x12260000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_isp";
++ interrupts = <16 2>;
++ clock-names = "sysmmu";
++ clocks = <&clock 362>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_drc: sysmmu@12270000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x12270000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_drc";
++ interrupts = <16 3>;
++ clock-names = "sysmmu";
++ clocks = <&clock 363>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_fd: sysmmu@122A0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x122A0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_fd";
++ interrupts = <16 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 364>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_mcuctl: sysmmu@122B0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x122B0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_mcuctl";
++ interrupts = <16 5>;
++ clock-names = "sysmmu";
++ clocks = <&clock 376>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_lite0: sysmmu@123B0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x123B0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_lite0";
++ interrupts = <16 0>;
++ clock-names = "sysmmu";
++ clocks = <&clock 366>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_lite1: sysmmu@123C0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x123C0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_lite1";
++ interrupts = <16 1>;
++ clock-names = "sysmmu";
++ clocks = <&clock 365>;
++ status = "ok";
++ };
+ };
+diff --git a/arch/arm/boot/dts/exynos5250.dtsi b/arch/arm/boot/dts/exynos5250.dtsi
+index fc9fb3d..130d23d 100644
+--- a/arch/arm/boot/dts/exynos5250.dtsi
++++ b/arch/arm/boot/dts/exynos5250.dtsi
+@@ -66,6 +66,16 @@
+ reg = <0x10044040 0x20>;
+ };
+
++ pd_isp: mfc-power-domain@0x10044020 {
++ compatible = "samsung,exynos4210-pd";
++ reg = <0x10044020 0x20>;
++ };
++
++ pd_disp1: mfc-power-domain@0x100440A0 {
++ compatible = "samsung,exynos4210-pd";
++ reg = <0x100440A0 0x20>;
++ };
++
+ clock: clock-controller@0x10010000 {
+ compatible = "samsung,exynos5250-clock";
+ reg = <0x10010000 0x30000>;
+@@ -180,6 +190,7 @@
+ reg = <0x11000000 0x10000>;
+ interrupts = <0 96 0>;
+ samsung,power-domain = <&pd_mfc>;
++ iommu = <&sysmmu_mfc_l &sysmmu_mfc_l>;
+ };
+
+ rtc {
+@@ -571,6 +582,7 @@
+ samsung,power-domain = <&pd_gsc>;
+ clocks = <&clock 256>;
+ clock-names = "gscl";
++ iommu = <&sysmmu_gsc1>;
+ };
+
+ gsc_1: gsc@0x13e10000 {
+@@ -580,6 +592,7 @@
+ samsung,power-domain = <&pd_gsc>;
+ clocks = <&clock 257>;
+ clock-names = "gscl";
++ iommu = <&sysmmu_gsc1>;
+ };
+
+ gsc_2: gsc@0x13e20000 {
+@@ -589,6 +602,7 @@
+ samsung,power-domain = <&pd_gsc>;
+ clocks = <&clock 258>;
+ clock-names = "gscl";
++ iommu = <&sysmmu_gsc2>;
+ };
+
+ gsc_3: gsc@0x13e30000 {
+@@ -598,6 +612,7 @@
+ samsung,power-domain = <&pd_gsc>;
+ clocks = <&clock 259>;
+ clock-names = "gscl";
++ iommu = <&sysmmu_gsc3>;
+ };
+
+ hdmi {
+@@ -614,6 +629,7 @@
+ compatible = "samsung,exynos5-mixer";
+ reg = <0x14450000 0x10000>;
+ interrupts = <0 94 0>;
++ iommu = <&sysmmu_tv>;
+ };
+
+ dp-controller {
+@@ -638,5 +654,280 @@
+ interrupts = <18 4>, <18 5>, <18 6>;
+ clocks = <&clock 133>, <&clock 339>;
+ clock-names = "sclk_fimd", "fimd";
++ iommu = <&sysmmu_fimd1>;
++ };
++
++ sysmmu_mfc_l: sysmmu@11210000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11210000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-mfc_l";
++ interrupts = <8 5>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 267>, <&clock 266>;
++ samsung,power-domain = <&pd_mfc>;
++ status = "ok";
++ };
++
++ sysmmu_mfc_r: sysmmu@11200000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11200000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-mfc_r";
++ interrupts = <6 2>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 268>, <&clock 266>;
++ samsung,power-domain = <&pd_mfc>;
++ status = "ok";
++ };
++
++ sysmmu_tv: sysmmu@14650000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x14650000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-tv";
++ interrupts = <7 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 349>;
++ samsung,power-domain = <&pd_disp1>;
++ status = "ok";
++ };
++
++ sysmmu_gsc0: sysmmu@13E80000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13E80000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-gsc0";
++ interrupts = <2 0>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 262>, <&clock 256>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_gsc1: sysmmu@13E90000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13E90000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-gsc1";
++ interrupts = <2 2>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 263>, <&clock 257>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_gsc2: sysmmu@13EA0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13EA0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-gsc2";
++ interrupts = <2 4>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 264>, <&clock 258>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_gsc3: sysmmu@13EB0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13EB0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-gsc3";
++ interrupts = <2 6>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 265>, <&clock 259>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_fimd1: sysmmu@14640000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x14640000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimd1";
++ interrupts = <3 2>;
++ clock-names = "sysmmu";
++ clocks = <&clock 350>;
++ samsung,power-domain = <&pd_disp1>;
++ status = "ok";
++ };
++
++ sysmmu_rotator: sysmmu@11D40000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11D40000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-rotator";
++ interrupts = <4 0>;
++ clock-names = "sysmmu";
++ clocks = <&clock 272>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_isp: sysmmu@13260000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13260000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_isp";
++ interrupts = <10 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 361>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_drc: sysmmu@13270000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13270000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_drc";
++ interrupts = <11 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 362>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_fd: sysmmu@132A0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x132A0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_fd";
++ interrupts = <5 0>;
++ clock-names = "sysmmu";
++ clocks = <&clock 363>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_scc: sysmmu@13280000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13280000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_scalerc";
++ interrupts = <5 2>;
++ clock-names = "sysmmu";
++ clocks = <&clock 364>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_scp: sysmmu@13290000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13290000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_scalerp";
++ interrupts = <3 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 365>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_mcuctl: sysmmu@132B0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x132B0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_mcuctl";
++ interrupts = <5 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 366>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_odc: sysmmu@132C0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x132C0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_odc";
++ interrupts = <11 0>;
++ clock-names = "sysmmu";
++ clocks = <&clock 367>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_dis0: sysmmu@132D0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x132D0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_dis0";
++ interrupts = <10 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 368>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_dis1: sysmmu@132E0000{
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x132E0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_dis1";
++ interrupts = <9 4>;
++ clock-names = "sysmmu";
++ clocks = <&clock 369>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_3dnr: sysmmu@132F0000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x132F0000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_3dnr";
++ interrupts = <5 6>;
++ clock-names = "sysmmu";
++ clocks = <&clock 370>;
++ samsung,power-domain = <&pd_isp>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_lite0: sysmmu@13C40000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13C40000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_lite0";
++ interrupts = <3 4>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 346>, <&clock 345>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_lite1: sysmmu@13C50000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x13C50000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-fimc_lite1";
++ interrupts = <24 1>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 347>, <&clock 345>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_jpeg: sysmmu@11F20000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x11F20000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-jpeg";
++ interrupts = <4 2>;
++ clock-names = "sysmmu", "master";
++ clocks = <&clock 273>, <&clock 270>;
++ samsung,power-domain = <&pd_gsc>;
++ status = "ok";
++ };
++
++ sysmmu_fimc_2d: sysmmu@10A60000 {
++ compatible = "samsung,exynos4210-sysmmu";
++ reg = <0x10A60000 0x1000>;
++ interrupt-parent = <&combiner>;
++ interrupt-names = "sysmmu-2d";
++ interrupts = <24 5>;
++ clock-names = "sysmmu";
++ clocks = <&clock 361>;
++ status = "ok";
+ };
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0021-iommu-exynos-support-for-device-tree.patch b/patches.tizen/0021-iommu-exynos-support-for-device-tree.patch
new file mode 100644
index 0000000..bccd0ca
--- /dev/null
+++ b/patches.tizen/0021-iommu-exynos-support-for-device-tree.patch
@@ -0,0 +1,371 @@
+From 04b137b2e5937b599851436409535c65971d0538 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:28:36 +0900
+Subject: [PATCH 0021/1302] iommu/exynos: support for device tree
+
+This commit adds device tree support for System MMU.
+This also include the following changes and enhancements:
+
+* use managed device helper functions.
+Simplyfies System MMU device driver.
+
+* use only a single clock descriptor.
+System MMU device descriptor is seperate if it is imposible to make
+a single clock descriptor to make a device descriptor for a group of
+System MMUs.
+
+* removed dbgname member from sysmmu_drvdata structure.
+debugging kernel message for a System MMU is distinguisheable with the
+name of device descroptors.
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/Kconfig | 5 +-
+ drivers/iommu/exynos-iommu.c | 182 ++++++++++++++++---------------------------
+ 2 files changed, 70 insertions(+), 117 deletions(-)
+
+diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig
+index c332fb9..d45f3c9 100644
+--- a/drivers/iommu/Kconfig
++++ b/drivers/iommu/Kconfig
+@@ -168,16 +168,15 @@ config TEGRA_IOMMU_SMMU
+
+ config EXYNOS_IOMMU
+ bool "Exynos IOMMU Support"
+- depends on ARCH_EXYNOS && EXYNOS_DEV_SYSMMU
++ depends on ARCH_EXYNOS
+ select IOMMU_API
++ default n
+ help
+ Support for the IOMMU(System MMU) of Samsung Exynos application
+ processor family. This enables H/W multimedia accellerators to see
+ non-linear physical memory chunks as a linear memory in their
+ address spaces
+
+- If unsure, say N here.
+-
+ config EXYNOS_IOMMU_DEBUG
+ bool "Debugging log for Exynos IOMMU"
+ depends on EXYNOS_IOMMU
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index 093eea5..cfc02ed 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -26,6 +26,7 @@
+ #include <linux/list.h>
+ #include <linux/memblock.h>
+ #include <linux/export.h>
++#include <linux/of.h>
+
+ #include <asm/cacheflush.h>
+ #include <asm/pgtable.h>
+@@ -170,15 +171,14 @@ struct sysmmu_drvdata {
+ struct list_head node; /* entry of exynos_iommu_domain.clients */
+ struct device *sysmmu; /* System MMU's device descriptor */
+ struct device *dev; /* Owner of system MMU */
+- char *dbgname;
+ int nsfrs;
+- void __iomem **sfrbases;
+- struct clk *clk[2];
++ struct clk *clk;
+ int activations;
+ rwlock_t lock;
+ struct iommu_domain *domain;
+ sysmmu_fault_handler_t fault_handler;
+ unsigned long pgtable;
++ void __iomem *sfrbases[0];
+ };
+
+ static bool set_sysmmu_active(struct sysmmu_drvdata *data)
+@@ -385,8 +385,8 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ if (!ret && (itype != SYSMMU_FAULT_UNKNOWN))
+ __raw_writel(1 << itype, data->sfrbases[i] + REG_INT_CLEAR);
+ else
+- dev_dbg(data->sysmmu, "(%s) %s is not handled.\n",
+- data->dbgname, sysmmu_fault_name[itype]);
++ dev_dbg(data->sysmmu, "%s is not handled.\n",
++ sysmmu_fault_name[itype]);
+
+ if (itype != SYSMMU_FAULT_UNKNOWN)
+ sysmmu_unblock(data->sfrbases[i]);
+@@ -410,10 +410,8 @@ static bool __exynos_sysmmu_disable(struct sysmmu_drvdata *data)
+ for (i = 0; i < data->nsfrs; i++)
+ __raw_writel(CTRL_DISABLE, data->sfrbases[i] + REG_MMU_CTRL);
+
+- if (data->clk[1])
+- clk_disable(data->clk[1]);
+- if (data->clk[0])
+- clk_disable(data->clk[0]);
++ if (data->clk)
++ clk_disable(data->clk);
+
+ disabled = true;
+ data->pgtable = 0;
+@@ -422,10 +420,10 @@ finish:
+ write_unlock_irqrestore(&data->lock, flags);
+
+ if (disabled)
+- dev_dbg(data->sysmmu, "(%s) Disabled\n", data->dbgname);
++ dev_dbg(data->sysmmu, "Disabled\n");
+ else
+- dev_dbg(data->sysmmu, "(%s) %d times left to be disabled\n",
+- data->dbgname, data->activations);
++ dev_dbg(data->sysmmu, "%d times left to be disabled\n",
++ data->activations);
+
+ return disabled;
+ }
+@@ -452,14 +450,12 @@ static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data,
+ ret = 1;
+ }
+
+- dev_dbg(data->sysmmu, "(%s) Already enabled\n", data->dbgname);
++ dev_dbg(data->sysmmu, "Already enabled\n");
+ goto finish;
+ }
+
+- if (data->clk[0])
+- clk_enable(data->clk[0]);
+- if (data->clk[1])
+- clk_enable(data->clk[1]);
++ if (data->clk)
++ clk_enable(data->clk);
+
+ data->pgtable = pgtable;
+
+@@ -479,7 +475,7 @@ static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data,
+
+ data->domain = domain;
+
+- dev_dbg(data->sysmmu, "(%s) Enabled\n", data->dbgname);
++ dev_dbg(data->sysmmu, "Enabled\n");
+ finish:
+ write_unlock_irqrestore(&data->lock, flags);
+
+@@ -495,7 +491,7 @@ int exynos_sysmmu_enable(struct device *dev, unsigned long pgtable)
+
+ ret = pm_runtime_get_sync(data->sysmmu);
+ if (ret < 0) {
+- dev_dbg(data->sysmmu, "(%s) Failed to enable\n", data->dbgname);
++ dev_dbg(data->sysmmu, "Failed to enable\n");
+ return ret;
+ }
+
+@@ -503,8 +499,8 @@ int exynos_sysmmu_enable(struct device *dev, unsigned long pgtable)
+ if (WARN_ON(ret < 0)) {
+ pm_runtime_put(data->sysmmu);
+ dev_err(data->sysmmu,
+- "(%s) Already enabled with page table %#lx\n",
+- data->dbgname, data->pgtable);
++ "Already enabled with page table %#lx\n",
++ data->pgtable);
+ } else {
+ data->dev = dev;
+ }
+@@ -540,9 +536,7 @@ static void sysmmu_tlb_invalidate_entry(struct device *dev, unsigned long iova)
+ }
+ }
+ } else {
+- dev_dbg(data->sysmmu,
+- "(%s) Disabled. Skipping invalidating TLB.\n",
+- data->dbgname);
++ dev_dbg(data->sysmmu, "Disabled. Skipping invalidating TLB.\n");
+ }
+
+ read_unlock_irqrestore(&data->lock, flags);
+@@ -564,141 +558,101 @@ void exynos_sysmmu_tlb_invalidate(struct device *dev)
+ }
+ }
+ } else {
+- dev_dbg(data->sysmmu,
+- "(%s) Disabled. Skipping invalidating TLB.\n",
+- data->dbgname);
++ dev_dbg(data->sysmmu, "Disabled. Skipping invalidating TLB.\n");
+ }
+
+ read_unlock_irqrestore(&data->lock, flags);
+ }
+
+-static int exynos_sysmmu_probe(struct platform_device *pdev)
++static int __init exynos_sysmmu_probe(struct platform_device *pdev)
+ {
+ int i, ret;
+- struct device *dev;
++ struct device *dev = &pdev->dev;
+ struct sysmmu_drvdata *data;
+
+- dev = &pdev->dev;
+-
+- data = kzalloc(sizeof(*data), GFP_KERNEL);
+- if (!data) {
+- dev_dbg(dev, "Not enough memory\n");
+- ret = -ENOMEM;
+- goto err_alloc;
++ if (pdev->num_resources == 0) {
++ dev_err(dev, "No System MMU resource defined\n");
++ return -ENODEV;
+ }
+
+- ret = dev_set_drvdata(dev, data);
+- if (ret) {
+- dev_dbg(dev, "Unabled to initialize driver data\n");
+- goto err_init;
++ data = devm_kzalloc(dev,
++ sizeof(*data) +
++ sizeof(*data->sfrbases) * (pdev->num_resources / 2),
++ GFP_KERNEL);
++ if (!data) {
++ dev_err(dev, "Not enough memory for initialization\n");
++ return -ENOMEM;
+ }
+
+ data->nsfrs = pdev->num_resources / 2;
+- data->sfrbases = kmalloc(sizeof(*data->sfrbases) * data->nsfrs,
+- GFP_KERNEL);
+- if (data->sfrbases == NULL) {
+- dev_dbg(dev, "Not enough memory\n");
+- ret = -ENOMEM;
+- goto err_init;
+- }
+
+ for (i = 0; i < data->nsfrs; i++) {
+ struct resource *res;
++
+ res = platform_get_resource(pdev, IORESOURCE_MEM, i);
+ if (!res) {
+- dev_dbg(dev, "Unable to find IOMEM region\n");
+- ret = -ENOENT;
+- goto err_res;
++ dev_err(dev, "Unable to find IOMEM region\n");
++ return -ENOENT;
+ }
+
+- data->sfrbases[i] = ioremap(res->start, resource_size(res));
++ data->sfrbases[i] = devm_request_and_ioremap(dev, res);
+ if (!data->sfrbases[i]) {
+- dev_dbg(dev, "Unable to map IOMEM @ PA:%#x\n",
+- res->start);
+- ret = -ENOENT;
+- goto err_res;
++ dev_err(dev, "Unable to map IOMEM @ %#x\n", res->start);
++ return -EBUSY;
+ }
+ }
+
+ for (i = 0; i < data->nsfrs; i++) {
+- ret = platform_get_irq(pdev, i);
+- if (ret <= 0) {
+- dev_dbg(dev, "Unable to find IRQ resource\n");
+- goto err_irq;
++ int irq;
++
++ irq = platform_get_irq(pdev, i);
++ if (irq <= 0) {
++ dev_err(dev, "Unable to find IRQ resource\n");
++ return -ENOENT;
+ }
+
+- ret = request_irq(ret, exynos_sysmmu_irq, 0,
+- dev_name(dev), data);
++ ret = devm_request_irq(dev, irq, exynos_sysmmu_irq,
++ 0, dev_name(dev), data);
+ if (ret) {
+- dev_dbg(dev, "Unabled to register interrupt handler\n");
+- goto err_irq;
++ dev_err(dev, "Unable to register handler to irq %d\n",
++ irq);
++ return ret;
+ }
+ }
+
+- if (dev_get_platdata(dev)) {
+- char *deli, *beg;
+- struct sysmmu_platform_data *platdata = dev_get_platdata(dev);
+-
+- beg = platdata->clockname;
+-
+- for (deli = beg; (*deli != '\0') && (*deli != ','); deli++)
+- /* NOTHING */;
+-
+- if (*deli == '\0')
+- deli = NULL;
+- else
+- *deli = '\0';
+-
+- data->clk[0] = clk_get(dev, beg);
+- if (IS_ERR(data->clk[0])) {
+- data->clk[0] = NULL;
+- dev_dbg(dev, "No clock descriptor registered\n");
+- }
++ pm_runtime_enable(dev);
+
+- if (data->clk[0] && deli) {
+- *deli = ',';
+- data->clk[1] = clk_get(dev, deli + 1);
+- if (IS_ERR(data->clk[1]))
+- data->clk[1] = NULL;
+- }
++ __set_fault_handler(data, &default_fault_handler);
+
+- data->dbgname = platdata->dbgname;
++ data->sysmmu = dev;
++ data->clk = devm_clk_get(dev, "sysmmu");
++ if (IS_ERR(data->clk)) {
++ dev_info(dev, "No gate clock found!\n");
++ data->clk = NULL;
+ }
+
+- data->sysmmu = dev;
+ rwlock_init(&data->lock);
+ INIT_LIST_HEAD(&data->node);
+
+- __set_fault_handler(data, &default_fault_handler);
+-
+- if (dev->parent)
+- pm_runtime_enable(dev);
++ platform_set_drvdata(pdev, data);
++ dev_dbg(dev, "Probed and initialized\n");
+
+- dev_dbg(dev, "(%s) Initialized\n", data->dbgname);
+- return 0;
+-err_irq:
+- while (i-- > 0) {
+- int irq;
+-
+- irq = platform_get_irq(pdev, i);
+- free_irq(irq, data);
+- }
+-err_res:
+- while (data->nsfrs-- > 0)
+- iounmap(data->sfrbases[data->nsfrs]);
+- kfree(data->sfrbases);
+-err_init:
+- kfree(data);
+-err_alloc:
+- dev_err(dev, "Failed to initialize\n");
+ return ret;
+ }
+
+-static struct platform_driver exynos_sysmmu_driver = {
+- .probe = exynos_sysmmu_probe,
+- .driver = {
++#ifdef CONFIG_OF
++static struct of_device_id sysmmu_of_match[] __initconst = {
++ { .compatible = "samsung,exynos4210-sysmmu", },
++ { },
++};
++#endif
++
++static struct platform_driver exynos_sysmmu_driver __refdata = {
++ .probe = exynos_sysmmu_probe,
++ .driver = {
+ .owner = THIS_MODULE,
+ .name = "exynos-sysmmu",
++ .of_match_table = of_match_ptr(sysmmu_of_match),
+ }
+ };
+
+--
+1.8.3.2
+
diff --git a/patches.tizen/0022-iommu-exynos-remove-prefetch-buffer-setting-when-ena.patch b/patches.tizen/0022-iommu-exynos-remove-prefetch-buffer-setting-when-ena.patch
new file mode 100644
index 0000000..f2a6b1a
--- /dev/null
+++ b/patches.tizen/0022-iommu-exynos-remove-prefetch-buffer-setting-when-ena.patch
@@ -0,0 +1,88 @@
+From 502cdfe01e48640471d866215e432f0a7f67544e Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:28:49 +0900
+Subject: [PATCH 0022/1302] iommu/exynos: remove prefetch buffer setting when
+ enabling System MMU
+
+Prefetch buffer must be handled accurately, exact range of a buffer,
+frame by frame manually. Otherwise, it may causes page fault or
+deadlock in System MMU.
+Thus this patch removes prefetch buffer setting when System MMU is
+initialized(enabled).
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 32 +++++++++++++++++++++++++++-----
+ 1 file changed, 27 insertions(+), 5 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index cfc02ed..87f6bb7 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -80,6 +80,8 @@
+ #define CTRL_BLOCK 0x7
+ #define CTRL_DISABLE 0x0
+
++#define CFG_FLPDCACHE (1 << 20) /* System MMU 3.2+ only */
++
+ #define REG_MMU_CTRL 0x000
+ #define REG_MMU_CFG 0x004
+ #define REG_MMU_STATUS 0x008
+@@ -96,6 +98,9 @@
+
+ #define REG_MMU_VERSION 0x034
+
++#define MMU_MAJ_VER(reg) (reg >> 28)
++#define MMU_MIN_VER(reg) ((reg >> 21) & 0x7F)
++
+ #define REG_PB0_SADDR 0x04C
+ #define REG_PB0_EADDR 0x050
+ #define REG_PB1_SADDR 0x054
+@@ -200,6 +205,22 @@ static bool is_sysmmu_active(struct sysmmu_drvdata *data)
+ return data->activations > 0;
+ }
+
++static unsigned int __sysmmu_version(struct sysmmu_drvdata *data,
++ int idx, unsigned int *minor)
++{
++ unsigned long major;
++
++ major = readl(data->sfrbases[idx] + REG_MMU_VERSION);
++
++ if (minor)
++ *minor = MMU_MIN_VER(major);
++
++ if (MMU_MAJ_VER(major) > 3)
++ return 1;
++
++ return MMU_MAJ_VER(major);
++}
++
+ static void sysmmu_unblock(void __iomem *sfrbase)
+ {
+ __raw_writel(CTRL_ENABLE, sfrbase + REG_MMU_CTRL);
+@@ -460,14 +481,15 @@ static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data,
+ data->pgtable = pgtable;
+
+ for (i = 0; i < data->nsfrs; i++) {
++ unsigned int min;
++
+ __sysmmu_set_ptbase(data->sfrbases[i], pgtable);
+
+- if ((readl(data->sfrbases[i] + REG_MMU_VERSION) >> 28) == 3) {
+- /* System MMU version is 3.x */
+- __raw_writel((1 << 12) | (2 << 28),
++ if ((__sysmmu_version(data, i, &min) == 3) && (min > 1)) {
++ unsigned long cfg;
++ cfg = __raw_readl(data->sfrbases[i] + REG_MMU_CFG);
++ __raw_writel(cfg | CFG_FLPDCACHE,
+ data->sfrbases[i] + REG_MMU_CFG);
+- __sysmmu_set_prefbuf(data->sfrbases[i], 0, -1, 0);
+- __sysmmu_set_prefbuf(data->sfrbases[i], 0, -1, 1);
+ }
+
+ __raw_writel(CTRL_ENABLE, data->sfrbases[i] + REG_MMU_CTRL);
+--
+1.8.3.2
+
diff --git a/patches.tizen/0023-iommu-exynos-remove-custom-fault-handler.patch b/patches.tizen/0023-iommu-exynos-remove-custom-fault-handler.patch
new file mode 100644
index 0000000..cd90d3e
--- /dev/null
+++ b/patches.tizen/0023-iommu-exynos-remove-custom-fault-handler.patch
@@ -0,0 +1,160 @@
+From 4cd7a209da2bf86ed038833232f757990828c0f7 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:29:06 +0900
+Subject: [PATCH 0023/1302] iommu/exynos: remove custom fault handler
+
+This commit removes custom fault handler. The device drivers that
+need to register fault handler can register
+with iommu_set_fault_handler().
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 71 +++++++++++---------------------------------
+ 1 file changed, 17 insertions(+), 54 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index 87f6bb7..f9853fe 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -131,16 +131,6 @@ enum exynos_sysmmu_inttype {
+ SYSMMU_FAULTS_NUM
+ };
+
+-/*
+- * @itype: type of fault.
+- * @pgtable_base: the physical address of page table base. This is 0 if @itype
+- * is SYSMMU_BUSERROR.
+- * @fault_addr: the device (virtual) address that the System MMU tried to
+- * translated. This is 0 if @itype is SYSMMU_BUSERROR.
+- */
+-typedef int (*sysmmu_fault_handler_t)(enum exynos_sysmmu_inttype itype,
+- unsigned long pgtable_base, unsigned long fault_addr);
+-
+ static unsigned short fault_reg_offset[SYSMMU_FAULTS_NUM] = {
+ REG_PAGE_FAULT_ADDR,
+ REG_AR_FAULT_ADDR,
+@@ -181,7 +171,6 @@ struct sysmmu_drvdata {
+ int activations;
+ rwlock_t lock;
+ struct iommu_domain *domain;
+- sysmmu_fault_handler_t fault_handler;
+ unsigned long pgtable;
+ void __iomem *sfrbases[0];
+ };
+@@ -313,34 +302,17 @@ finish:
+ read_unlock_irqrestore(&data->lock, flags);
+ }
+
+-static void __set_fault_handler(struct sysmmu_drvdata *data,
+- sysmmu_fault_handler_t handler)
+-{
+- unsigned long flags;
+-
+- write_lock_irqsave(&data->lock, flags);
+- data->fault_handler = handler;
+- write_unlock_irqrestore(&data->lock, flags);
+-}
+-
+-void exynos_sysmmu_set_fault_handler(struct device *dev,
+- sysmmu_fault_handler_t handler)
+-{
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+-
+- __set_fault_handler(data, handler);
+-}
+-
+-static int default_fault_handler(enum exynos_sysmmu_inttype itype,
+- unsigned long pgtable_base, unsigned long fault_addr)
++static void show_fault_information(const char *name,
++ enum exynos_sysmmu_inttype itype,
++ unsigned long pgtable_base, unsigned long fault_addr)
+ {
+ unsigned long *ent;
+
+ if ((itype >= SYSMMU_FAULTS_NUM) || (itype < SYSMMU_PAGEFAULT))
+ itype = SYSMMU_FAULT_UNKNOWN;
+
+- pr_err("%s occurred at 0x%lx(Page table base: 0x%lx)\n",
+- sysmmu_fault_name[itype], fault_addr, pgtable_base);
++ pr_err("%s occurred at 0x%lx by %s(Page table base: 0x%lx)\n",
++ sysmmu_fault_name[itype], fault_addr, name, pgtable_base);
+
+ ent = section_entry(__va(pgtable_base), fault_addr);
+ pr_err("\tLv1 entry: 0x%lx\n", *ent);
+@@ -353,16 +325,12 @@ static int default_fault_handler(enum exynos_sysmmu_inttype itype,
+ pr_err("Generating Kernel OOPS... because it is unrecoverable.\n");
+
+ BUG();
+-
+- return 0;
+ }
+
+ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ {
+ /* SYSMMU is in blocked when interrupt occurred. */
+ struct sysmmu_drvdata *data = dev_id;
+- struct resource *irqres;
+- struct platform_device *pdev;
+ enum exynos_sysmmu_inttype itype;
+ unsigned long addr = -1;
+
+@@ -372,14 +340,15 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+
+ WARN_ON(!is_sysmmu_active(data));
+
+- pdev = to_platform_device(data->sysmmu);
+- for (i = 0; i < (pdev->num_resources / 2); i++) {
+- irqres = platform_get_resource(pdev, IORESOURCE_IRQ, i);
++ for (i = 0; i < data->nsfrs; i++) {
++ struct resource *irqres;
++ irqres = platform_get_resource(to_platform_device(data->sysmmu),
++ IORESOURCE_IRQ, i);
+ if (irqres && ((int)irqres->start == irq))
+ break;
+ }
+
+- if (i == pdev->num_resources) {
++ if (i == data->nsfrs) {
+ itype = SYSMMU_FAULT_UNKNOWN;
+ } else {
+ itype = (enum exynos_sysmmu_inttype)
+@@ -395,19 +364,15 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ ret = report_iommu_fault(data->domain, data->dev,
+ addr, itype);
+
+- if ((ret == -ENOSYS) && data->fault_handler) {
+- unsigned long base = data->pgtable;
+- if (itype != SYSMMU_FAULT_UNKNOWN)
+- base = __raw_readl(
+- data->sfrbases[i] + REG_PT_BASE_ADDR);
+- ret = data->fault_handler(itype, base, addr);
+- }
+-
+ if (!ret && (itype != SYSMMU_FAULT_UNKNOWN))
+ __raw_writel(1 << itype, data->sfrbases[i] + REG_INT_CLEAR);
+- else
+- dev_dbg(data->sysmmu, "%s is not handled.\n",
+- sysmmu_fault_name[itype]);
++ else {
++ unsigned long ba = data->pgtable;
++ if (itype != SYSMMU_FAULT_UNKNOWN)
++ ba = __raw_readl(data->sfrbases[i] + REG_PT_BASE_ADDR);
++ show_fault_information(dev_name(data->sysmmu),
++ itype, ba, addr);
++ }
+
+ if (itype != SYSMMU_FAULT_UNKNOWN)
+ sysmmu_unblock(data->sfrbases[i]);
+@@ -644,8 +609,6 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
+
+ pm_runtime_enable(dev);
+
+- __set_fault_handler(data, &default_fault_handler);
+-
+ data->sysmmu = dev;
+ data->clk = devm_clk_get(dev, "sysmmu");
+ if (IS_ERR(data->clk)) {
+--
+1.8.3.2
+
diff --git a/patches.tizen/0024-iommu-exynos-add-bus-notifier-for-registering-System.patch b/patches.tizen/0024-iommu-exynos-add-bus-notifier-for-registering-System.patch
new file mode 100644
index 0000000..e4335de
--- /dev/null
+++ b/patches.tizen/0024-iommu-exynos-add-bus-notifier-for-registering-System.patch
@@ -0,0 +1,987 @@
+From 9f3387f3b3b2acc4042eb81e7f86123c4a308280 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:30:17 +0900
+Subject: [PATCH 0024/1302] iommu/exynos: add bus notifier for registering
+ System MMU
+
+When a device driver is registered, all constructs to handle System MMU
+is prepared by bus notifier call.
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 708 +++++++++++++++++++++++++++++++++----------
+ 1 file changed, 552 insertions(+), 156 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index f9853fe..c62c244 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -27,6 +27,9 @@
+ #include <linux/memblock.h>
+ #include <linux/export.h>
+ #include <linux/of.h>
++#include <linux/of_platform.h>
++#include <linux/pm_domain.h>
++#include <linux/notifier.h>
+
+ #include <asm/cacheflush.h>
+ #include <asm/pgtable.h>
+@@ -80,7 +83,13 @@
+ #define CTRL_BLOCK 0x7
+ #define CTRL_DISABLE 0x0
+
++#define CFG_LRU 0x1
++#define CFG_QOS(n) ((n & 0xF) << 7)
++#define CFG_MASK 0x0150FFFF /* Selecting bit 0-15, 20, 22 and 24 */
++#define CFG_ACGEN (1 << 24) /* System MMU 3.3 only */
++#define CFG_SYSSEL (1 << 22) /* System MMU 3.2 only */
+ #define CFG_FLPDCACHE (1 << 20) /* System MMU 3.2+ only */
++#define CFG_SHAREABLE (1 << 12) /* System MMU 3.x only */
+
+ #define REG_MMU_CTRL 0x000
+ #define REG_MMU_CFG 0x004
+@@ -154,6 +163,14 @@ static char *sysmmu_fault_name[SYSMMU_FAULTS_NUM] = {
+ "UNKNOWN FAULT"
+ };
+
++struct exynos_iommu_client {
++ struct list_head node; /* entry of exynos_iommu_domain.clients */
++ struct device *dev;
++ spinlock_t lock;
++ int num_sysmmu;
++ struct device *sysmmu[0];
++};
++
+ struct exynos_iommu_domain {
+ struct list_head clients; /* list of sysmmu_drvdata.node */
+ unsigned long *pgtable; /* lv1 page table, 16KB */
+@@ -165,12 +182,14 @@ struct exynos_iommu_domain {
+ struct sysmmu_drvdata {
+ struct list_head node; /* entry of exynos_iommu_domain.clients */
+ struct device *sysmmu; /* System MMU's device descriptor */
+- struct device *dev; /* Owner of system MMU */
++ struct device *master; /* Owner of system MMU */
+ int nsfrs;
+ struct clk *clk;
++ struct clk *clk_master;
+ int activations;
+ rwlock_t lock;
+ struct iommu_domain *domain;
++ bool runtime_active;
+ unsigned long pgtable;
+ void __iomem *sfrbases[0];
+ };
+@@ -245,7 +264,6 @@ static void __sysmmu_tlb_invalidate_entry(void __iomem *sfrbase,
+ static void __sysmmu_set_ptbase(void __iomem *sfrbase,
+ unsigned long pgd)
+ {
+- __raw_writel(0x1, sfrbase + REG_MMU_CFG); /* 16KB LV1, LRU */
+ __raw_writel(pgd, sfrbase + REG_PT_BASE_ADDR);
+
+ __sysmmu_tlb_invalidate(sfrbase);
+@@ -273,6 +291,7 @@ void exynos_sysmmu_set_prefbuf(struct device *dev,
+ if (!is_sysmmu_active(data))
+ goto finish;
+
++ clk_enable(data->clk_master);
+ for (i = 0; i < data->nsfrs; i++) {
+ if ((readl(data->sfrbases[i] + REG_MMU_VERSION) >> 28) == 3) {
+ if (!sysmmu_block(data->sfrbases[i]))
+@@ -298,6 +317,7 @@ void exynos_sysmmu_set_prefbuf(struct device *dev,
+ sysmmu_unblock(data->sfrbases[i]);
+ }
+ }
++ clk_disable(data->clk_master);
+ finish:
+ read_unlock_irqrestore(&data->lock, flags);
+ }
+@@ -331,12 +351,13 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ {
+ /* SYSMMU is in blocked when interrupt occurred. */
+ struct sysmmu_drvdata *data = dev_id;
++ struct exynos_iommu_client *client = NULL;
+ enum exynos_sysmmu_inttype itype;
+ unsigned long addr = -1;
+-
+ int i, ret = -ENOSYS;
+
+- read_lock(&data->lock);
++ if (data->master)
++ client = data->master->archdata.iommu;
+
+ WARN_ON(!is_sysmmu_active(data));
+
+@@ -348,6 +369,10 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ break;
+ }
+
++ if (client)
++ spin_lock(&client->lock);
++ read_lock(&data->lock);
++
+ if (i == data->nsfrs) {
+ itype = SYSMMU_FAULT_UNKNOWN;
+ } else {
+@@ -361,7 +386,7 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ }
+
+ if (data->domain)
+- ret = report_iommu_fault(data->domain, data->dev,
++ ret = report_iommu_fault(data->domain, data->master,
+ addr, itype);
+
+ if (!ret && (itype != SYSMMU_FAULT_UNKNOWN))
+@@ -378,177 +403,251 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ sysmmu_unblock(data->sfrbases[i]);
+
+ read_unlock(&data->lock);
++ if (client)
++ spin_unlock(&client->lock);
+
+ return IRQ_HANDLED;
+ }
+
+-static bool __exynos_sysmmu_disable(struct sysmmu_drvdata *data)
++static void __sysmmu_disable_nocount(struct sysmmu_drvdata *data)
+ {
+- unsigned long flags;
+- bool disabled = false;
+ int i;
+
+- write_lock_irqsave(&data->lock, flags);
++ clk_enable(data->clk_master);
++ for (i = 0; i < data->nsfrs; i++) {
++ __raw_writel(CTRL_DISABLE,
++ data->sfrbases[i] + REG_MMU_CTRL);
++ __raw_writel(0, data->sfrbases[i] + REG_MMU_CFG);
++ }
+
+- if (!set_sysmmu_inactive(data))
+- goto finish;
++ clk_disable(data->clk);
++ clk_disable(data->clk_master);
++}
+
+- for (i = 0; i < data->nsfrs; i++)
+- __raw_writel(CTRL_DISABLE, data->sfrbases[i] + REG_MMU_CTRL);
++static bool __sysmmu_disable(struct sysmmu_drvdata *data)
++{
++ bool disabled;
++ unsigned long flags;
+
+- if (data->clk)
+- clk_disable(data->clk);
++ write_lock_irqsave(&data->lock, flags);
+
+- disabled = true;
+- data->pgtable = 0;
+- data->domain = NULL;
+-finish:
+- write_unlock_irqrestore(&data->lock, flags);
++ disabled = set_sysmmu_inactive(data);
++
++ if (disabled) {
++ data->pgtable = 0;
++ data->domain = NULL;
++
++ if (data->runtime_active)
++ __sysmmu_disable_nocount(data);
+
+- if (disabled)
+ dev_dbg(data->sysmmu, "Disabled\n");
+- else
+- dev_dbg(data->sysmmu, "%d times left to be disabled\n",
++ } else {
++ dev_dbg(data->sysmmu, "%d times left to disable\n",
+ data->activations);
++ }
++
++ write_unlock_irqrestore(&data->lock, flags);
+
+ return disabled;
+ }
+
+-/* __exynos_sysmmu_enable: Enables System MMU
+- *
+- * returns -error if an error occurred and System MMU is not enabled,
+- * 0 if the System MMU has been just enabled and 1 if System MMU was already
+- * enabled before.
+- */
+-static int __exynos_sysmmu_enable(struct sysmmu_drvdata *data,
++
++static void __sysmmu_init_config(struct sysmmu_drvdata *data, int idx)
++{
++ unsigned long cfg = CFG_LRU | CFG_QOS(15);
++ int maj, min = 0;
++
++ maj = __sysmmu_version(data, idx, &min);
++ if (maj == 3) {
++ if (min > 1) {
++ cfg |= CFG_FLPDCACHE;
++ cfg |= (min == 2) ? CFG_SYSSEL : CFG_ACGEN;
++ }
++ }
++
++ __raw_writel(cfg, data->sfrbases[idx] + REG_MMU_CFG);
++}
++
++static void __sysmmu_enable_nocount(struct sysmmu_drvdata *data)
++{
++ int i;
++
++ clk_enable(data->clk_master);
++ clk_enable(data->clk);
++
++ for (i = 0; i < data->nsfrs; i++) {
++ __raw_writel(CTRL_BLOCK, data->sfrbases[i] + REG_MMU_CTRL);
++
++ __sysmmu_init_config(data, i);
++
++ __sysmmu_set_ptbase(data->sfrbases[i], data->pgtable);
++
++ __raw_writel(CTRL_ENABLE, data->sfrbases[i] + REG_MMU_CTRL);
++ }
++ clk_disable(data->clk_master);
++}
++
++static int __sysmmu_enable(struct sysmmu_drvdata *data,
+ unsigned long pgtable, struct iommu_domain *domain)
+ {
+- int i, ret = 0;
++ int ret = 0;
+ unsigned long flags;
+
+ write_lock_irqsave(&data->lock, flags);
++ if (set_sysmmu_active(data)) {
++ data->pgtable = pgtable;
++ data->domain = domain;
+
+- if (!set_sysmmu_active(data)) {
+- if (WARN_ON(pgtable != data->pgtable)) {
+- ret = -EBUSY;
+- set_sysmmu_inactive(data);
+- } else {
+- ret = 1;
+- }
++ if (data->runtime_active)
++ __sysmmu_enable_nocount(data);
+
+- dev_dbg(data->sysmmu, "Already enabled\n");
+- goto finish;
++ dev_dbg(data->sysmmu, "Enabled\n");
++ } else {
++ ret = (pgtable == data->pgtable) ? 1 : -EBUSY;
++
++ dev_dbg(data->sysmmu, "already enabled\n");
+ }
+
+- if (data->clk)
+- clk_enable(data->clk);
++ if (WARN_ON(ret < 0))
++ set_sysmmu_inactive(data); /* decrement count */
+
+- data->pgtable = pgtable;
++ write_unlock_irqrestore(&data->lock, flags);
+
+- for (i = 0; i < data->nsfrs; i++) {
+- unsigned int min;
++ return ret;
++}
+
+- __sysmmu_set_ptbase(data->sfrbases[i], pgtable);
++/* __exynos_sysmmu_enable: Enables System MMU
++ *
++ * returns -error if an error occurred and System MMU is not enabled,
++ * 0 if the System MMU has been just enabled and 1 if System MMU was already
++ * enabled before.
++ */
++static int __exynos_sysmmu_enable(struct device *dev, unsigned long pgtable,
++ struct iommu_domain *domain)
++{
++ int ret = 0;
++ unsigned long flags;
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int i;
+
+- if ((__sysmmu_version(data, i, &min) == 3) && (min > 1)) {
+- unsigned long cfg;
+- cfg = __raw_readl(data->sfrbases[i] + REG_MMU_CFG);
+- __raw_writel(cfg | CFG_FLPDCACHE,
+- data->sfrbases[i] + REG_MMU_CFG);
+- }
++ if (WARN_ON(!client))
++ return -ENODEV;
+
+- __raw_writel(CTRL_ENABLE, data->sfrbases[i] + REG_MMU_CTRL);
+- }
++ spin_lock_irqsave(&client->lock, flags);
+
+- data->domain = domain;
++ for (i = 0; i < client->num_sysmmu; i++) {
++ struct sysmmu_drvdata *data =
++ dev_get_drvdata(client->sysmmu[i]);
++ ret = __sysmmu_enable(data, pgtable, domain);
++ if (ret < 0) {
++ int j;
++ for (j = 0; j < i; j++)
++ __sysmmu_disable(data);
++ break;
++ } else {
++ data->master = dev;
++ }
++ }
+
+- dev_dbg(data->sysmmu, "Enabled\n");
+-finish:
+- write_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&client->lock, flags);
+
+ return ret;
+ }
+
+ int exynos_sysmmu_enable(struct device *dev, unsigned long pgtable)
+ {
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+ int ret;
+
+ BUG_ON(!memblock_is_memory(pgtable));
+
+- ret = pm_runtime_get_sync(data->sysmmu);
+- if (ret < 0) {
+- dev_dbg(data->sysmmu, "Failed to enable\n");
+- return ret;
+- }
+-
+- ret = __exynos_sysmmu_enable(data, pgtable, NULL);
+- if (WARN_ON(ret < 0)) {
+- pm_runtime_put(data->sysmmu);
+- dev_err(data->sysmmu,
+- "Already enabled with page table %#lx\n",
+- data->pgtable);
+- } else {
+- data->dev = dev;
+- }
++ ret = __exynos_sysmmu_enable(dev, pgtable, NULL);
+
+ return ret;
+ }
+
+ static bool exynos_sysmmu_disable(struct device *dev)
+ {
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+- bool disabled;
++ unsigned long flags;
++ bool disabled = true;
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int i;
+
+- disabled = __exynos_sysmmu_disable(data);
+- pm_runtime_put(data->sysmmu);
++ if (WARN_ON(!client))
++ return true;
++
++ spin_lock_irqsave(&client->lock, flags);
++
++ /* Every call to __sysmmu_disable() must return same result */
++ for (i = 0; i < client->num_sysmmu; i++) {
++ struct sysmmu_drvdata *data =
++ dev_get_drvdata(client->sysmmu[i]);
++ disabled = __sysmmu_disable(data);
++ if (disabled)
++ data->master = NULL;
++ }
++
++ spin_unlock_irqrestore(&client->lock, flags);
+
+ return disabled;
+ }
+
+ static void sysmmu_tlb_invalidate_entry(struct device *dev, unsigned long iova)
+ {
+- unsigned long flags;
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int i;
+
+- read_lock_irqsave(&data->lock, flags);
++ for (i = 0; i < client->num_sysmmu; i++) {
++ unsigned long flags;
++ struct sysmmu_drvdata *data;
+
+- if (is_sysmmu_active(data)) {
+- int i;
+- for (i = 0; i < data->nsfrs; i++) {
+- if (sysmmu_block(data->sfrbases[i])) {
++ data = dev_get_drvdata(client->sysmmu[i]);
++
++ read_lock_irqsave(&data->lock, flags);
++ if (is_sysmmu_active(data) && data->runtime_active) {
++ int i;
++ clk_enable(data->clk_master);
++ for (i = 0; i < data->nsfrs; i++)
+ __sysmmu_tlb_invalidate_entry(
+ data->sfrbases[i], iova);
+- sysmmu_unblock(data->sfrbases[i]);
+- }
++ clk_disable(data->clk_master);
++ } else {
++ dev_dbg(dev,
++ "disabled. Skipping TLB invalidation @ %#lx\n",
++ iova);
+ }
+- } else {
+- dev_dbg(data->sysmmu, "Disabled. Skipping invalidating TLB.\n");
++ read_unlock_irqrestore(&data->lock, flags);
+ }
+-
+- read_unlock_irqrestore(&data->lock, flags);
+ }
+
+ void exynos_sysmmu_tlb_invalidate(struct device *dev)
+ {
+- unsigned long flags;
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
+-
+- read_lock_irqsave(&data->lock, flags);
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int i;
+
+- if (is_sysmmu_active(data)) {
+- int i;
+- for (i = 0; i < data->nsfrs; i++) {
+- if (sysmmu_block(data->sfrbases[i])) {
+- __sysmmu_tlb_invalidate(data->sfrbases[i]);
+- sysmmu_unblock(data->sfrbases[i]);
++ for (i = 0; i < client->num_sysmmu; i++) {
++ unsigned long flags;
++ struct sysmmu_drvdata *data;
++
++ data = dev_get_drvdata(client->sysmmu[i]);
++
++ read_lock_irqsave(&data->lock, flags);
++ if (is_sysmmu_active(data) &&
++ data->runtime_active) {
++ int i;
++ for (i = 0; i < data->nsfrs; i++) {
++ clk_enable(data->clk_master);
++ if (sysmmu_block(data->sfrbases[i])) {
++ __sysmmu_tlb_invalidate(
++ data->sfrbases[i]);
++ sysmmu_unblock(data->sfrbases[i]);
++ }
++ clk_disable(data->clk_master);
+ }
++ } else {
++ dev_dbg(dev, "disabled. Skipping TLB invalidation\n");
+ }
+- } else {
+- dev_dbg(data->sysmmu, "Disabled. Skipping invalidating TLB.\n");
++ read_unlock_irqrestore(&data->lock, flags);
+ }
+-
+- read_unlock_irqrestore(&data->lock, flags);
+ }
+
+ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
+@@ -610,12 +709,32 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
+ pm_runtime_enable(dev);
+
+ data->sysmmu = dev;
++
+ data->clk = devm_clk_get(dev, "sysmmu");
+ if (IS_ERR(data->clk)) {
+ dev_info(dev, "No gate clock found!\n");
+ data->clk = NULL;
+ }
+
++ ret = clk_prepare(data->clk);
++ if (ret) {
++ dev_err(dev, "Failed to prepare clk\n");
++ return ret;
++ }
++
++ data->clk_master = devm_clk_get(dev, "master");
++ if (IS_ERR(data->clk_master))
++ data->clk_master = NULL;
++
++ ret = clk_prepare(data->clk_master);
++ if (ret) {
++ clk_unprepare(data->clk);
++ dev_err(dev, "Failed to prepare master's clk\n");
++ return ret;
++ }
++
++ data->runtime_active = !pm_runtime_enabled(dev);
++
+ rwlock_init(&data->lock);
+ INIT_LIST_HEAD(&data->node);
+
+@@ -625,6 +744,34 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
+ return ret;
+ }
+
++#ifdef CONFIG_PM_SLEEP
++static int sysmmu_suspend(struct device *dev)
++{
++ struct sysmmu_drvdata *data = dev_get_drvdata(dev);
++ unsigned long flags;
++ read_lock_irqsave(&data->lock, flags);
++ if (is_sysmmu_active(data) &&
++ (!pm_runtime_enabled(dev) || data->runtime_active))
++ __sysmmu_disable_nocount(data);
++ read_unlock_irqrestore(&data->lock, flags);
++ return 0;
++}
++
++static int sysmmu_resume(struct device *dev)
++{
++ struct sysmmu_drvdata *data = dev_get_drvdata(dev);
++ unsigned long flags;
++ read_lock_irqsave(&data->lock, flags);
++ if (is_sysmmu_active(data) &&
++ (!pm_runtime_enabled(dev) || data->runtime_active))
++ __sysmmu_enable_nocount(data);
++ read_unlock_irqrestore(&data->lock, flags);
++ return 0;
++}
++#endif
++
++static SIMPLE_DEV_PM_OPS(sysmmu_pm_ops, sysmmu_suspend, sysmmu_resume);
++
+ #ifdef CONFIG_OF
+ static struct of_device_id sysmmu_of_match[] __initconst = {
+ { .compatible = "samsung,exynos4210-sysmmu", },
+@@ -637,6 +784,7 @@ static struct platform_driver exynos_sysmmu_driver __refdata = {
+ .driver = {
+ .owner = THIS_MODULE,
+ .name = "exynos-sysmmu",
++ .pm = &sysmmu_pm_ops,
+ .of_match_table = of_match_ptr(sysmmu_of_match),
+ }
+ };
+@@ -689,7 +837,7 @@ err_pgtable:
+ static void exynos_iommu_domain_destroy(struct iommu_domain *domain)
+ {
+ struct exynos_iommu_domain *priv = domain->priv;
+- struct sysmmu_drvdata *data;
++ struct exynos_iommu_client *client;
+ unsigned long flags;
+ int i;
+
+@@ -697,11 +845,14 @@ static void exynos_iommu_domain_destroy(struct iommu_domain *domain)
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+- list_for_each_entry(data, &priv->clients, node) {
+- while (!exynos_sysmmu_disable(data->dev))
++ list_for_each_entry(client, &priv->clients, node) {
++ while (!exynos_sysmmu_disable(client->dev))
+ ; /* until System MMU is actually disabled */
+ }
+
++ while (!list_empty(&priv->clients))
++ list_del_init(priv->clients.next);
++
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+ for (i = 0; i < NUM_LV1ENTRIES; i++)
+@@ -718,41 +869,26 @@ static void exynos_iommu_domain_destroy(struct iommu_domain *domain)
+ static int exynos_iommu_attach_device(struct iommu_domain *domain,
+ struct device *dev)
+ {
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
++ struct exynos_iommu_client *client = dev->archdata.iommu;
+ struct exynos_iommu_domain *priv = domain->priv;
+ unsigned long flags;
+ int ret;
+
+- ret = pm_runtime_get_sync(data->sysmmu);
+- if (ret < 0)
+- return ret;
+-
+- ret = 0;
+-
+ spin_lock_irqsave(&priv->lock, flags);
+
+- ret = __exynos_sysmmu_enable(data, __pa(priv->pgtable), domain);
+-
+- if (ret == 0) {
+- /* 'data->node' must not be appeared in priv->clients */
+- BUG_ON(!list_empty(&data->node));
+- data->dev = dev;
+- list_add_tail(&data->node, &priv->clients);
+- }
++ ret = __exynos_sysmmu_enable(dev, __pa(priv->pgtable), domain);
++ if (ret == 0)
++ list_add_tail(&client->node, &priv->clients);
+
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+- if (ret < 0) {
++ if (ret < 0)
+ dev_err(dev, "%s: Failed to attach IOMMU with pgtable %#lx\n",
+ __func__, __pa(priv->pgtable));
+- pm_runtime_put(data->sysmmu);
+- } else if (ret > 0) {
+- dev_dbg(dev, "%s: IOMMU with pgtable 0x%lx already attached\n",
+- __func__, __pa(priv->pgtable));
+- } else {
+- dev_dbg(dev, "%s: Attached new IOMMU with pgtable 0x%lx\n",
+- __func__, __pa(priv->pgtable));
+- }
++ else
++ dev_dbg(dev, "%s: Attached IOMMU with pgtable 0x%lx%s\n",
++ __func__, __pa(priv->pgtable),
++ (ret == 0) ? "" : ", again");
+
+ return ret;
+ }
+@@ -760,39 +896,27 @@ static int exynos_iommu_attach_device(struct iommu_domain *domain,
+ static void exynos_iommu_detach_device(struct iommu_domain *domain,
+ struct device *dev)
+ {
+- struct sysmmu_drvdata *data = dev_get_drvdata(dev->archdata.iommu);
++ struct exynos_iommu_client *client = NULL;
+ struct exynos_iommu_domain *priv = domain->priv;
+- struct list_head *pos;
+ unsigned long flags;
+- bool found = false;
+
+ spin_lock_irqsave(&priv->lock, flags);
+
+- list_for_each(pos, &priv->clients) {
+- if (list_entry(pos, struct sysmmu_drvdata, node) == data) {
+- found = true;
++ list_for_each_entry(client, &priv->clients, node) {
++ if (client == dev->archdata.iommu) {
++ if (exynos_sysmmu_disable(dev))
++ list_del_init(&client->node);
+ break;
+ }
+ }
+
+- if (!found)
+- goto finish;
++ spin_unlock_irqrestore(&priv->lock, flags);
+
+- if (__exynos_sysmmu_disable(data)) {
++ if (client == dev->archdata.iommu)
+ dev_dbg(dev, "%s: Detached IOMMU with pgtable %#lx\n",
+ __func__, __pa(priv->pgtable));
+- list_del_init(&data->node);
+-
+- } else {
+- dev_dbg(dev, "%s: Detaching IOMMU with pgtable %#lx delayed",
+- __func__, __pa(priv->pgtable));
+- }
+-
+-finish:
+- spin_unlock_irqrestore(&priv->lock, flags);
+-
+- if (found)
+- pm_runtime_put(data->sysmmu);
++ else
++ dev_dbg(dev, "%s: No IOMMU is attached\n", __func__);
+ }
+
+ static unsigned long *alloc_lv2entry(unsigned long *sent, unsigned long iova,
+@@ -914,7 +1038,7 @@ static size_t exynos_iommu_unmap(struct iommu_domain *domain,
+ unsigned long iova, size_t size)
+ {
+ struct exynos_iommu_domain *priv = domain->priv;
+- struct sysmmu_drvdata *data;
++ struct exynos_iommu_client *client;
+ unsigned long flags;
+ unsigned long *ent;
+ size_t err_pgsize;
+@@ -975,8 +1099,8 @@ done:
+ spin_unlock_irqrestore(&priv->pgtablelock, flags);
+
+ spin_lock_irqsave(&priv->lock, flags);
+- list_for_each_entry(data, &priv->clients, node)
+- sysmmu_tlb_invalidate_entry(data->dev, iova);
++ list_for_each_entry(client, &priv->clients, node)
++ sysmmu_tlb_invalidate_entry(client->dev, iova);
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+ return size;
+@@ -1055,3 +1179,275 @@ static int __init exynos_iommu_init(void)
+ return ret;
+ }
+ subsys_initcall(exynos_iommu_init);
++
++#ifdef CONFIG_PM_SLEEP
++static int sysmmu_pm_genpd_suspend(struct device *dev)
++{
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int ret = 0;
++ int i;
++
++ for (i = 0; i < client->num_sysmmu; i++) {
++ ret = pm_generic_suspend(client->sysmmu[i]);
++ if (ret)
++ break;
++ }
++
++ if (!ret)
++ ret = pm_generic_suspend(dev);
++
++ if (ret) {
++ int j;
++
++ for (j = 0; j < i; j++)
++ pm_generic_resume(client->sysmmu[j]);
++ }
++
++ return ret;
++}
++
++static int sysmmu_pm_genpd_resume(struct device *dev)
++{
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int ret = 0;
++ int i;
++
++ for (i = 0; i < client->num_sysmmu; i++) {
++ ret = pm_generic_resume(client->sysmmu[i]);
++ if (ret)
++ break;
++ }
++
++ if (!ret)
++ ret = pm_generic_resume(dev);
++
++ if (ret) {
++ int j;
++
++ for (j = 0; j < i; j++)
++ pm_generic_suspend(client->sysmmu[j]);
++ }
++
++ return ret;
++}
++#endif
++
++#ifdef CONFIG_PM_RUNTIME
++static void sysmmu_restore_state(struct device *sysmmu)
++{
++ struct sysmmu_drvdata *data = dev_get_drvdata(sysmmu);
++ unsigned long flags;
++
++ spin_lock_irqsave(&data->lock, flags);
++ data->runtime_active = true;
++ if (is_sysmmu_active(data))
++ __sysmmu_enable_nocount(data);
++ spin_unlock_irqrestore(&data->lock, flags);
++}
++
++static void sysmmu_save_state(struct device *sysmmu)
++{
++ struct sysmmu_drvdata *data = dev_get_drvdata(sysmmu);
++ unsigned long flags;
++
++ spin_lock_irqsave(&data->lock, flags);
++ if (is_sysmmu_active(data))
++ __sysmmu_disable_nocount(data);
++ data->runtime_active = false;
++ spin_unlock_irqrestore(&data->lock, flags);
++}
++
++static int sysmmu_pm_genpd_save_state(struct device *dev)
++{
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int (*cb)(struct device *__dev);
++ int i;
++
++ if (dev->type && dev->type->pm)
++ cb = dev->type->pm->runtime_suspend;
++ else if (dev->class && dev->class->pm)
++ cb = dev->class->pm->runtime_suspend;
++ else if (dev->bus && dev->bus->pm)
++ cb = dev->bus->pm->runtime_suspend;
++ else
++ cb = NULL;
++
++ if (!cb && dev->driver && dev->driver->pm)
++ cb = dev->driver->pm->runtime_suspend;
++
++ if (cb) {
++ int ret;
++
++ ret = cb(dev);
++ if (ret)
++ return ret;
++ }
++
++ for (i = 0; i < client->num_sysmmu; i++)
++ sysmmu_save_state(client->sysmmu[i]);
++
++ return 0;
++}
++
++static int sysmmu_pm_genpd_restore_state(struct device *dev)
++{
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ int (*cb)(struct device *__dev);
++ int i;
++
++ if (dev->type && dev->type->pm)
++ cb = dev->type->pm->runtime_resume;
++ else if (dev->class && dev->class->pm)
++ cb = dev->class->pm->runtime_resume;
++ else if (dev->bus && dev->bus->pm)
++ cb = dev->bus->pm->runtime_resume;
++ else
++ cb = NULL;
++
++ if (!cb && dev->driver && dev->driver->pm)
++ cb = dev->driver->pm->runtime_resume;
++
++ for (i = 0; i < client->num_sysmmu; i++)
++ sysmmu_restore_state(client->sysmmu[i]);
++
++ if (cb) {
++ int ret;
++ ret = cb(dev);
++ if (ret) {
++ for (i = 0; i < client->num_sysmmu; i++)
++ sysmmu_save_state(client->sysmmu[i]);
++ return ret;
++ }
++ }
++
++ return 0;
++}
++#endif
++
++#ifdef CONFIG_PM_GENERIC_DOMAINS
++struct gpd_dev_ops sysmmu_devpm_ops = {
++#ifdef CONFIG_PM_RUNTIME
++ .save_state = &sysmmu_pm_genpd_save_state,
++ .restore_state = &sysmmu_pm_genpd_restore_state,
++#endif
++#ifdef CONFIG_PM_SLEEP
++ .suspend = &sysmmu_pm_genpd_suspend,
++ .resume = &sysmmu_pm_genpd_resume,
++#endif
++};
++#endif /* CONFIG_PM_GENERIC_DOMAINS */
++
++static int sysmmu_hook_driver_register(struct notifier_block *nb,
++ unsigned long val,
++ void *p)
++{
++ struct device *dev = p;
++
++ switch (val) {
++ case BUS_NOTIFY_BIND_DRIVER:
++ {
++ int i = 0;
++ int size = 0;
++ const __be32 *phandle;
++ struct exynos_iommu_client *client;
++
++ phandle = of_get_property(dev->of_node, "iommu", &size);
++ if (!phandle)
++ break;
++
++ size = size / sizeof(*phandle); /* number of elements */
++
++ client = devm_kzalloc(dev, sizeof(*client) * size, GFP_KERNEL);
++ if (!client) {
++ dev_err(dev, "No Memory for exynos_iommu_client\n");
++ return -ENOMEM;
++ }
++
++ client->num_sysmmu = size;
++ client->dev = dev;
++ INIT_LIST_HEAD(&client->node);
++ spin_lock_init(&client->lock);
++
++ for (i = 0; i < size; i++) {
++ struct device_node *np;
++ struct platform_device *sysmmu;
++
++ /* this always success: see above of_find_property() */
++ np = of_parse_phandle(dev->of_node, "iommu", i);
++
++ sysmmu = of_find_device_by_node(np);
++ if (!sysmmu) {
++ dev_err(dev,
++ "sysmmu node '%s' is not found\n",
++ np->name);
++ break;
++ }
++
++ client->sysmmu[i] = &sysmmu->dev;
++ }
++
++ if (i < size) {
++ while (--i >= 0)
++ of_node_put(client->sysmmu[i]->of_node);
++ devm_kfree(dev, client);
++ return -ENODEV;
++ }
++
++ i = pm_genpd_add_callbacks(dev, &sysmmu_devpm_ops, NULL);
++ if (i && (i != -ENOSYS)) {
++ dev_err(dev,
++ "Failed to register 'dev_pm_ops' for iommu\n");
++ devm_kfree(dev, client);
++ return i;
++ }
++
++ dev->archdata.iommu = client;
++ break;
++ }
++ case BUS_NOTIFY_BOUND_DRIVER:
++ {
++ struct exynos_iommu_client *client = dev->archdata.iommu;
++ if (dev->archdata.iommu &&
++ (!pm_runtime_enabled(dev) ||
++ IS_ERR(dev_to_genpd(dev)))) {
++ int i;
++ for (i = 0; i < client->num_sysmmu; i++) {
++ struct sysmmu_drvdata *data;
++ pm_runtime_disable(client->sysmmu[i]);
++ data = dev_get_drvdata(client->sysmmu[i]);
++ if (!data)
++ continue;
++ data->runtime_active =
++ !pm_runtime_enabled(data->sysmmu);
++ if (data->runtime_active &&
++ is_sysmmu_active(data))
++ __sysmmu_enable_nocount(data);
++ }
++ }
++ break;
++ }
++ case BUS_NOTIFY_UNBOUND_DRIVER:
++ {
++ if (dev->archdata.iommu) {
++ __pm_genpd_remove_callbacks(dev, false);
++
++ devm_kfree(dev, dev->archdata.iommu);
++
++ dev->archdata.iommu = NULL;
++ }
++ break;
++ }
++ } /* switch (val) */
++
++ return 0;
++}
++
++static struct notifier_block sysmmu_notifier = {
++ .notifier_call = &sysmmu_hook_driver_register,
++};
++
++static int __init exynos_iommu_prepare(void)
++{
++ return bus_register_notifier(&platform_bus_type, &sysmmu_notifier);
++}
++arch_initcall(exynos_iommu_prepare);
+--
+1.8.3.2
+
diff --git a/patches.tizen/0025-iommu-exynos-change-rwlock-to-spinlock.patch b/patches.tizen/0025-iommu-exynos-change-rwlock-to-spinlock.patch
new file mode 100644
index 0000000..b20c902
--- /dev/null
+++ b/patches.tizen/0025-iommu-exynos-change-rwlock-to-spinlock.patch
@@ -0,0 +1,175 @@
+From 065720fe8b38f878bfa03ec80fb2c677db36c5f6 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:30:42 +0900
+Subject: [PATCH 0025/1302] iommu/exynos: change rwlock to spinlock
+
+Since acquiring read_lock is not more frequent than write_lock, it is
+not beneficial to use rwlock, this commit changes rwlock to spinlock.
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 36 ++++++++++++++++++------------------
+ 1 file changed, 18 insertions(+), 18 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index c62c244..51e5b35 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -187,7 +187,7 @@ struct sysmmu_drvdata {
+ struct clk *clk;
+ struct clk *clk_master;
+ int activations;
+- rwlock_t lock;
++ spinlock_t lock;
+ struct iommu_domain *domain;
+ bool runtime_active;
+ unsigned long pgtable;
+@@ -287,7 +287,7 @@ void exynos_sysmmu_set_prefbuf(struct device *dev,
+ BUG_ON((base0 + size0) <= base0);
+ BUG_ON((size1 > 0) && ((base1 + size1) <= base1));
+
+- read_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+ if (!is_sysmmu_active(data))
+ goto finish;
+
+@@ -319,7 +319,7 @@ void exynos_sysmmu_set_prefbuf(struct device *dev,
+ }
+ clk_disable(data->clk_master);
+ finish:
+- read_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+ }
+
+ static void show_fault_information(const char *name,
+@@ -371,7 +371,7 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+
+ if (client)
+ spin_lock(&client->lock);
+- read_lock(&data->lock);
++ spin_lock(&data->lock);
+
+ if (i == data->nsfrs) {
+ itype = SYSMMU_FAULT_UNKNOWN;
+@@ -402,7 +402,7 @@ static irqreturn_t exynos_sysmmu_irq(int irq, void *dev_id)
+ if (itype != SYSMMU_FAULT_UNKNOWN)
+ sysmmu_unblock(data->sfrbases[i]);
+
+- read_unlock(&data->lock);
++ spin_unlock(&data->lock);
+ if (client)
+ spin_unlock(&client->lock);
+
+@@ -429,7 +429,7 @@ static bool __sysmmu_disable(struct sysmmu_drvdata *data)
+ bool disabled;
+ unsigned long flags;
+
+- write_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+
+ disabled = set_sysmmu_inactive(data);
+
+@@ -446,7 +446,7 @@ static bool __sysmmu_disable(struct sysmmu_drvdata *data)
+ data->activations);
+ }
+
+- write_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+
+ return disabled;
+ }
+@@ -493,7 +493,7 @@ static int __sysmmu_enable(struct sysmmu_drvdata *data,
+ int ret = 0;
+ unsigned long flags;
+
+- write_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+ if (set_sysmmu_active(data)) {
+ data->pgtable = pgtable;
+ data->domain = domain;
+@@ -511,7 +511,7 @@ static int __sysmmu_enable(struct sysmmu_drvdata *data,
+ if (WARN_ON(ret < 0))
+ set_sysmmu_inactive(data); /* decrement count */
+
+- write_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+
+ return ret;
+ }
+@@ -602,7 +602,7 @@ static void sysmmu_tlb_invalidate_entry(struct device *dev, unsigned long iova)
+
+ data = dev_get_drvdata(client->sysmmu[i]);
+
+- read_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+ if (is_sysmmu_active(data) && data->runtime_active) {
+ int i;
+ clk_enable(data->clk_master);
+@@ -615,7 +615,7 @@ static void sysmmu_tlb_invalidate_entry(struct device *dev, unsigned long iova)
+ "disabled. Skipping TLB invalidation @ %#lx\n",
+ iova);
+ }
+- read_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+ }
+ }
+
+@@ -630,7 +630,7 @@ void exynos_sysmmu_tlb_invalidate(struct device *dev)
+
+ data = dev_get_drvdata(client->sysmmu[i]);
+
+- read_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+ if (is_sysmmu_active(data) &&
+ data->runtime_active) {
+ int i;
+@@ -646,7 +646,7 @@ void exynos_sysmmu_tlb_invalidate(struct device *dev)
+ } else {
+ dev_dbg(dev, "disabled. Skipping TLB invalidation\n");
+ }
+- read_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+ }
+ }
+
+@@ -735,7 +735,7 @@ static int __init exynos_sysmmu_probe(struct platform_device *pdev)
+
+ data->runtime_active = !pm_runtime_enabled(dev);
+
+- rwlock_init(&data->lock);
++ spin_lock_init(&data->lock);
+ INIT_LIST_HEAD(&data->node);
+
+ platform_set_drvdata(pdev, data);
+@@ -749,11 +749,11 @@ static int sysmmu_suspend(struct device *dev)
+ {
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev);
+ unsigned long flags;
+- read_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+ if (is_sysmmu_active(data) &&
+ (!pm_runtime_enabled(dev) || data->runtime_active))
+ __sysmmu_disable_nocount(data);
+- read_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+ return 0;
+ }
+
+@@ -761,11 +761,11 @@ static int sysmmu_resume(struct device *dev)
+ {
+ struct sysmmu_drvdata *data = dev_get_drvdata(dev);
+ unsigned long flags;
+- read_lock_irqsave(&data->lock, flags);
++ spin_lock_irqsave(&data->lock, flags);
+ if (is_sysmmu_active(data) &&
+ (!pm_runtime_enabled(dev) || data->runtime_active))
+ __sysmmu_enable_nocount(data);
+- read_unlock_irqrestore(&data->lock, flags);
++ spin_unlock_irqrestore(&data->lock, flags);
+ return 0;
+ }
+ #endif
+--
+1.8.3.2
+
diff --git a/patches.tizen/0026-iommu-exynos-return-0-if-iommu_attach_device-success.patch b/patches.tizen/0026-iommu-exynos-return-0-if-iommu_attach_device-success.patch
new file mode 100644
index 0000000..0caa0a0
--- /dev/null
+++ b/patches.tizen/0026-iommu-exynos-return-0-if-iommu_attach_device-success.patch
@@ -0,0 +1,53 @@
+From 0ef8e7b01cbbbca10b0b289935a2ebac3603e948 Mon Sep 17 00:00:00 2001
+From: Cho KyongHo <pullip.cho@samsung.com>
+Date: Fri, 26 Jul 2013 20:31:01 +0900
+Subject: [PATCH 0026/1302] iommu/exynos: return 0 if iommu_attach_device()
+ successes
+
+iommu_attach_device() against exynos-iommu positive integer on success
+if the caller calls iommu_attach_device() with the same iommu_domain
+multiple times without call to iommu_detach_device() to inform the
+caller how many calls to iommu_detach_device() to really detach iommu.
+
+However the convention of the return value of success of common API is
+zero, this patch makes iommu_attach_device() call against exynos-iommu
+always return zero if the given device is successfully attached to
+the given iommu_domain even though it is already attached to the same
+iommu_domain.
+
+Signed-off-by: Cho KyongHo <pullip.cho@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/iommu/exynos-iommu.c | 13 +++++++------
+ 1 file changed, 7 insertions(+), 6 deletions(-)
+
+diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c
+index 51e5b35..6eed6d6 100644
+--- a/drivers/iommu/exynos-iommu.c
++++ b/drivers/iommu/exynos-iommu.c
+@@ -882,15 +882,16 @@ static int exynos_iommu_attach_device(struct iommu_domain *domain,
+
+ spin_unlock_irqrestore(&priv->lock, flags);
+
+- if (ret < 0)
++ if (ret < 0) {
+ dev_err(dev, "%s: Failed to attach IOMMU with pgtable %#lx\n",
+ __func__, __pa(priv->pgtable));
+- else
+- dev_dbg(dev, "%s: Attached IOMMU with pgtable 0x%lx%s\n",
+- __func__, __pa(priv->pgtable),
+- (ret == 0) ? "" : ", again");
++ return ret;
++ }
+
+- return ret;
++ dev_dbg(dev, "%s: Attached IOMMU with pgtable 0x%lx%s\n",
++ __func__, __pa(priv->pgtable), (ret == 0) ? "" : ", again");
++
++ return 0;
+ }
+
+ static void exynos_iommu_detach_device(struct iommu_domain *domain,
+--
+1.8.3.2
+
diff --git a/patches.tizen/0027-drivers-base-add-notifier-for-failed-driver-bind.patch b/patches.tizen/0027-drivers-base-add-notifier-for-failed-driver-bind.patch
new file mode 100644
index 0000000..d7e27e2
--- /dev/null
+++ b/patches.tizen/0027-drivers-base-add-notifier-for-failed-driver-bind.patch
@@ -0,0 +1,75 @@
+From 24773097d72de6063c612ffea60b814c914df977 Mon Sep 17 00:00:00 2001
+From: Marek Szyprowski <m.szyprowski@samsung.com>
+Date: Thu, 8 Aug 2013 11:05:57 +0200
+Subject: [PATCH 0027/1302] drivers: base: add notifier for failed driver bind
+
+Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/base/dd.c | 10 +++++++---
+ include/linux/device.h | 4 +++-
+ 2 files changed, 10 insertions(+), 4 deletions(-)
+
+diff --git a/drivers/base/dd.c b/drivers/base/dd.c
+index 35fa368..2c8a0d6 100644
+--- a/drivers/base/dd.c
++++ b/drivers/base/dd.c
+@@ -224,10 +224,14 @@ static int driver_sysfs_add(struct device *dev)
+ return ret;
+ }
+
+-static void driver_sysfs_remove(struct device *dev)
++static void driver_sysfs_remove(struct device *dev, int failed)
+ {
+ struct device_driver *drv = dev->driver;
+
++ if (failed && dev->bus)
++ blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
++ BUS_NOTIFY_BIND_FAILED, dev);
++
+ if (drv) {
+ sysfs_remove_link(&drv->p->kobj, kobject_name(&dev->kobj));
+ sysfs_remove_link(&dev->kobj, "driver");
+@@ -302,7 +306,7 @@ static int really_probe(struct device *dev, struct device_driver *drv)
+
+ probe_failed:
+ devres_release_all(dev);
+- driver_sysfs_remove(dev);
++ driver_sysfs_remove(dev, true);
+ dev->driver = NULL;
+ dev_set_drvdata(dev, NULL);
+
+@@ -492,7 +496,7 @@ static void __device_release_driver(struct device *dev)
+ if (drv) {
+ pm_runtime_get_sync(dev);
+
+- driver_sysfs_remove(dev);
++ driver_sysfs_remove(dev, false);
+
+ if (dev->bus)
+ blocking_notifier_call_chain(&dev->bus->p->bus_notifier,
+diff --git a/include/linux/device.h b/include/linux/device.h
+index c0a1261..1ce409f 100644
+--- a/include/linux/device.h
++++ b/include/linux/device.h
+@@ -161,7 +161,7 @@ extern int bus_register_notifier(struct bus_type *bus,
+ extern int bus_unregister_notifier(struct bus_type *bus,
+ struct notifier_block *nb);
+
+-/* All 4 notifers below get called with the target struct device *
++/* All 7 notifers below get called with the target struct device *
+ * as an argument. Note that those functions are likely to be called
+ * with the device lock held in the core, so be careful.
+ */
+@@ -174,6 +174,8 @@ extern int bus_unregister_notifier(struct bus_type *bus,
+ unbound */
+ #define BUS_NOTIFY_UNBOUND_DRIVER 0x00000006 /* driver is unbound
+ from the device */
++#define BUS_NOTIFY_BIND_FAILED 0x00000007 /* driver failed to bind
++ to device */
+
+ extern struct kset *bus_get_kset(struct bus_type *bus);
+ extern struct klist *bus_get_device_klist(struct bus_type *bus);
+--
+1.8.3.2
+
diff --git a/patches.tizen/0028-ARM-dts-Add-dts-for-exynos4412-slp_pq-board.patch b/patches.tizen/0028-ARM-dts-Add-dts-for-exynos4412-slp_pq-board.patch
new file mode 100644
index 0000000..871d8c8
--- /dev/null
+++ b/patches.tizen/0028-ARM-dts-Add-dts-for-exynos4412-slp_pq-board.patch
@@ -0,0 +1,497 @@
+From df8f759acbf72ed37f298a113bfd77825630e5f7 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Tue, 11 Sep 2012 14:27:22 +0200
+Subject: [PATCH 0028/1302] ARM: dts: Add dts for exynos4412-slp_pq board
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/Makefile | 1 +
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 463 ++++++++++++++++++++++++++++++++
+ 2 files changed, 464 insertions(+)
+ create mode 100644 arch/arm/boot/dts/exynos4412-slp_pq.dts
+
+diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile
+index f0895c5..ecdfe00 100644
+--- a/arch/arm/boot/dts/Makefile
++++ b/arch/arm/boot/dts/Makefile
+@@ -52,6 +52,7 @@ dtb-$(CONFIG_ARCH_EXYNOS) += exynos4210-origen.dtb \
+ exynos4210-universal_c210.dtb \
+ exynos4412-odroidx.dtb \
+ exynos4412-smdk4412.dtb \
++ exynos4412-slp_pq.dtb \
+ exynos4412-origen.dtb \
+ exynos5250-arndale.dtb \
+ exynos5440-sd5v1.dtb \
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+new file mode 100644
+index 0000000..8d9d2fb
+--- /dev/null
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -0,0 +1,463 @@
++/*
++ * Samsung's Exynos4412 based SLP PQ board device tree source
++ *
++ * Copyright (c) 2012 Samsung Electronics Co., Ltd.
++ * http://www.samsung.com
++ *
++ * Device tree source file for Samsung's SLP PQ board which is based on
++ * Samsung's Exynos4412 SoC.
++ *
++ * 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.
++*/
++
++/dts-v1/;
++/include/ "exynos4412.dtsi"
++
++/ {
++ model = "Samsung SLP PQ based on Exynos4412";
++ compatible = "samsung,slp_pq", "samsung,exynos4412";
++
++ memory {
++ reg = <0x40000000 0x10000000
++ 0x50000000 0x10000000
++ 0x60000000 0x10000000
++ 0x70000000 0x10000000>;
++ };
++
++ chosen {
++ bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
++ };
++
++ firmware@0204F000 {
++ compatible = "samsung,secure-firmware";
++ reg = <0x0204F000 0x1000>;
++ };
++
++ vemmc_reg: voltage-regulator@0 {
++ compatible = "regulator-fixed";
++ regulator-name = "VMEM_VDD_2.8V";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ gpio = <&gpk0 2 0>;
++ enable-active-high;
++ };
++
++ sdhci_emmc: sdhci@12510000 {
++ bus-width = <8>;
++ non-removable;
++ pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
++ pinctrl-names = "default";
++ vmmc-supply = <&vemmc_reg>;
++ status = "okay";
++ };
++
++ serial@13800000 {
++ status = "okay";
++ };
++
++ serial@13810000 {
++ status = "okay";
++ };
++
++ serial@13820000 {
++ status = "okay";
++ };
++
++ serial@13830000 {
++ status = "okay";
++ };
++
++ gpio-keys@0 {
++ compatible = "gpio-keys";
++
++ key@114 {
++ interrupt-parent = <&gpj1>;
++ interrupts = <2 0>;
++ gpios = <&gpj1 2 1>;
++ linux,code = <114>;
++ label = "volume down";
++ debounce-interval = <10>;
++ };
++
++ key@115 {
++ interrupt-parent = <&gpj1>;
++ interrupts = <1 0>;
++ gpios = <&gpj1 1 1>;
++ linux,code = <115>;
++ label = "volume up";
++ debounce-interval = <10>;
++ };
++
++ key@116 {
++ interrupt-parent = <&gpx2>;
++ interrupts = <7 0>;
++ gpios = <&gpx2 7 1>;
++ linux,code = <116>;
++ label = "power";
++ debounce-interval = <10>;
++ gpio-key,wakeup;
++ };
++ };
++
++ i2c@13890000 {
++ samsung,i2c-sda-delay = <100>;
++ samsung,i2c-slave-addr = <0x10>;
++ samsung,i2c-max-bus-freq = <400000>;
++ pinctrl-0 = <&i2c3_bus>;
++ pinctrl-names = "default";
++ status = "okay";
++
++ mms114-touchscreen@48 {
++ compatible = "melfas,mms114";
++ reg = <0x48>;
++ interrupt-parent = <&gpm2>;
++ interrupts = <3 2>;
++ x-size = <720>;
++ y-size = <1280>;
++ avdd-supply = <&ldo23_reg>;
++ vdd-supply = <&ldo24_reg>;
++ };
++ };
++
++ i2c@138D0000 {
++ samsung,i2c-sda-delay = <100>;
++ samsung,i2c-slave-addr = <0x10>;
++ samsung,i2c-max-bus-freq = <100000>;
++ pinctrl-0 = <&i2c7_bus>;
++ pinctrl-names = "default";
++ status = "okay";
++
++ max77686_pmic@09 {
++ compatible = "maxim,max77686";
++ interrupt-parent = <&gpx0>;
++ interrupts = <7 0>;
++ reg = <0x09>;
++
++ voltage-regulators {
++ ldo1_reg: ldo@1 {
++ regulator-compatible = "LDO1";
++ regulator-name = "VALIVE_1.0V_AP";
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1000000>;
++ regulator-always-on;
++ };
++
++ ldo2_reg: ldo@2 {
++ regulator-compatible = "LDO2";
++ regulator-name = "VM1M2_1.2V_AP";
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <1200000>;
++ regulator-always-on;
++ };
++
++ ldo3_reg: ldo@3 {
++ regulator-compatible = "LDO3";
++ regulator-name = "VCC_1.8V_AP";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ regulator-always-on;
++ };
++
++ ldo4_reg: ldo@4 {
++ regulator-compatible = "LDO4";
++ regulator-name = "VCC_2.8V_AP";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ regulator-always-on;
++ };
++
++ ldo5_reg: ldo@5 {
++ regulator-compatible = "LDO5";
++ regulator-name = "VCC_1.8V_IO";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ regulator-always-on;
++ };
++
++ ldo6_reg: ldo@6 {
++ regulator-compatible = "LDO6";
++ regulator-name = "VMPLL_1.0V_AP";
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1000000>;
++ regulator-always-on;
++ };
++
++ ldo7_reg: ldo@7 {
++ regulator-compatible = "LDO7";
++ regulator-name = "VPLL_1.0V_AP";
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1000000>;
++ regulator-always-on;
++ };
++
++ ldo8_reg: ldo@8 {
++ regulator-compatible = "LDO8";
++ regulator-name = "VMIPI_1.0V";
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1000000>;
++ };
++
++ ldo9_reg: ldo@9 {
++ regulator-compatible = "LDO9";
++ regulator-name = "CAM_ISP_MIPI_1.2V";
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <1200000>;
++ };
++
++ ldo10_reg: ldo@10 {
++ regulator-compatible = "LDO10";
++ regulator-name = "VMIPI_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo11_reg: ldo@11 {
++ regulator-compatible = "LDO11";
++ regulator-name = "VABB1_1.95V";
++ regulator-min-microvolt = <1950000>;
++ regulator-max-microvolt = <1950000>;
++ regulator-always-on;
++ };
++
++ ldo12_reg: ldo@12 {
++ regulator-compatible = "LDO12";
++ regulator-name = "VUOTG_3.0V";
++ regulator-min-microvolt = <3000000>;
++ regulator-max-microvolt = <3000000>;
++ };
++
++ ldo13_reg: ldo@13 {
++ regulator-compatible = "LDO13";
++ regulator-name = "NFC_AVDD_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo14_reg: ldo@14 {
++ regulator-compatible = "LDO14";
++ regulator-name = "VABB2_1.95V";
++ regulator-min-microvolt = <1950000>;
++ regulator-max-microvolt = <1950000>;
++ regulator-always-on;
++ };
++
++ ldo15_reg: ldo@15 {
++ regulator-compatible = "LDO15";
++ regulator-name = "VHSIC_1.0V";
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1000000>;
++ };
++
++ ldo16_reg: ldo@16 {
++ regulator-compatible = "LDO16";
++ regulator-name = "VHSIC_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo17_reg: ldo@17 {
++ regulator-compatible = "LDO17";
++ regulator-name = "CAM_SENSOR_CORE_1.2V";
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <1200000>;
++ };
++
++ ldo18_reg: ldo@18 {
++ regulator-compatible = "LDO18";
++ regulator-name = "CAM_ISP_SEN_IO_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo19_reg: ldo@19 {
++ regulator-compatible = "LDO19";
++ regulator-name = "VT_CAM_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo20_reg: ldo@20 {
++ regulator-compatible = "LDO20";
++ regulator-name = "VDDQ_PRE_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo21_reg: ldo@21 {
++ regulator-compatible = "LDO21";
++ regulator-name = "VTF_2.8V";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ };
++
++ ldo22_reg: ldo@22 {
++ regulator-compatible = "LDO22";
++ regulator-name = "VMEM_VDD_2.8V";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ regulator-always-on;
++ };
++
++ ldo23_reg: ldo@23 {
++ regulator-compatible = "LDO23";
++ regulator-name = "TSP_AVDD_3.3V";
++ regulator-min-microvolt = <3300000>;
++ regulator-max-microvolt = <3300000>;
++ };
++
++ ldo24_reg: ldo@24 {
++ regulator-compatible = "LDO24";
++ regulator-name = "TSP_VDD_1.8V";
++ regulator-min-microvolt = <1800000>;
++ regulator-max-microvolt = <1800000>;
++ };
++
++ ldo25_reg: ldo@25 {
++ regulator-compatible = "LDO25";
++ regulator-name = "LCD_VCC_3.3V";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ };
++
++ ldo26_reg: ldo@26 {
++ regulator-compatible = "LDO26";
++ regulator-name = "MOTOR_VCC_3.0V";
++ regulator-min-microvolt = <3000000>;
++ regulator-max-microvolt = <3000000>;
++ };
++
++ buck1_reg: buck@1 {
++ regulator-compatible = "BUCK1";
++ regulator-name = "vdd_mif";
++ regulator-min-microvolt = <850000>;
++ regulator-max-microvolt = <1100000>;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ buck2_reg: buck@2 {
++ regulator-compatible = "BUCK2";
++ regulator-name = "vdd_arm";
++ regulator-min-microvolt = <850000>;
++ regulator-max-microvolt = <1500000>;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ buck3_reg: buck@3 {
++ regulator-compatible = "BUCK3";
++ regulator-name = "vdd_int";
++ regulator-min-microvolt = <850000>;
++ regulator-max-microvolt = <1150000>;
++ regulator-always-on;
++ regulator-boot-on;
++ };
++
++ buck4_reg: buck@4 {
++ regulator-compatible = "BUCK4";
++ regulator-name = "vdd_g3d";
++ regulator-min-microvolt = <850000>;
++ regulator-max-microvolt = <1150000>;
++ regulator-boot-on;
++ };
++
++ buck5_reg: buck@5 {
++ regulator-compatible = "BUCK5";
++ regulator-name = "VMEM_1.2V_AP";
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <1200000>;
++ regulator-always-on;
++ };
++
++ buck6_reg: buck@6 {
++ regulator-compatible = "BUCK6";
++ regulator-name = "VCC_SUB_1.35V";
++ regulator-min-microvolt = <1350000>;
++ regulator-max-microvolt = <1350000>;
++ regulator-always-on;
++ };
++ buck7_reg: buck@7 {
++ regulator-compatible = "BUCK7";
++ regulator-name = "VCC_SUB_2.0V";
++ regulator-min-microvolt = <2000000>;
++ regulator-max-microvolt = <2000000>;
++ regulator-always-on;
++ };
++
++ buck8_reg: buck@8 {
++ regulator-compatible = "BUCK8";
++ regulator-name = "VMEM_VDDF_3.0V";
++ regulator-min-microvolt = <2850000>;
++ regulator-max-microvolt = <2850000>;
++ regulator-always-on;
++ };
++
++ buck9_reg: buck@9 {
++ regulator-compatible = "BUCK9";
++ regulator-name = "CAM_ISP_CORE_1.2V";
++ regulator-min-microvolt = <1000000>;
++ regulator-max-microvolt = <1200000>;
++ };
++ };
++ };
++ };
++
++ lcd_vdd3_reg: voltage-regulator@1 {
++ compatible = "regulator-fixed";
++ regulator-name = "LCD_VDD_2.2V";
++ regulator-min-microvolt = <2200000>;
++ regulator-max-microvolt = <2200000>;
++ gpio = <&gpc0 1 0>;
++ enable-active-high;
++ };
++
++ fimd0_lcd: panel {
++ compatible = "s6e8ax0";
++ reset-gpio = <&gpy4 5 0>;
++ reset-delay = <25>;
++ power-off-delay = <0>;
++ power-on-delay= <0>;
++ vdd3-supply = <&lcd_vdd3_reg>;
++ vci-supply = <&ldo25_reg>;
++ lcd-htiming = <5 5 5 720>;
++ lcd-vtiming = <1 13 2 1280>;
++ supports-mipi-panel;
++ };
++
++ mipi-dsim@11C80000 {
++ video-interface;
++ virtual-channel = <0>;
++ pixel-format = <7>;
++ burst-mode = <1>;
++ bus-width = <4>;
++ cmd-allow = <0xf>;
++ pms-setting = <12 250 0>;
++ pll-stable-time = <500>;
++ escape-clock = <10000000>;
++ stop-holding-count = <0x7ff>;
++ bta-timeout = <0xff>;
++ rx-timeout = <0xffff>;
++ vdd11-supply = <&ldo8_reg>;
++ vdd18-supply = <&ldo10_reg>;
++ panel-info = <&fimd0_lcd>;
++ status = "okay";
++ };
++
++ fimd@11c00000 {
++ samsung,fimd-display = <&fimd0_lcd>;
++ samsung,fimd-vidout-rgb;
++ samsung,fimd-inv-vclk;
++ samsung,fimd-frame-rate = <60>;
++ samsung,default-window = <3>;
++ samsung,fimd-win-bpp = <32>;
++ status = "okay";
++ };
++
++ hsotg@12480000 {
++ status = "okay";
++ vusb_d-supply = <&ldo15_reg>;
++ vusb_a-supply = <&ldo12_reg>;
++ };
++};
+--
+1.8.3.2
+
diff --git a/patches.tizen/0029-ARM-dts-exynos4210-trats-Add-node-for-USB-gadget.patch b/patches.tizen/0029-ARM-dts-exynos4210-trats-Add-node-for-USB-gadget.patch
new file mode 100644
index 0000000..7d6f816
--- /dev/null
+++ b/patches.tizen/0029-ARM-dts-exynos4210-trats-Add-node-for-USB-gadget.patch
@@ -0,0 +1,31 @@
+From 68497a23742fedc0dd4b05df6a7d60c7464aec01 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Thu, 4 Oct 2012 12:11:55 +0200
+Subject: [PATCH 0029/1302] ARM: dts: exynos4210-trats: Add node for USB gadget
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4210-trats.dts | 6 ++++++
+ 1 file changed, 6 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
+index 9a14484..ce729c7 100644
+--- a/arch/arm/boot/dts/exynos4210-trats.dts
++++ b/arch/arm/boot/dts/exynos4210-trats.dts
+@@ -290,6 +290,12 @@
+ };
+ };
+
++ hsotg@12480000 {
++ status = "okay";
++ vusb_d-supply = <&vusb_reg>;
++ vusb_a-supply = <&vusbdac_reg>;
++ };
++
+ fixed-rate-clocks {
+ xxti {
+ compatible = "samsung,clock-xxti";
+--
+1.8.3.2
+
diff --git a/patches.tizen/0030-ARM-dts-exynos4-Add-node-for-USB-PHY.patch b/patches.tizen/0030-ARM-dts-exynos4-Add-node-for-USB-PHY.patch
new file mode 100644
index 0000000..1671109
--- /dev/null
+++ b/patches.tizen/0030-ARM-dts-exynos4-Add-node-for-USB-PHY.patch
@@ -0,0 +1,38 @@
+From 3b12494a4b8938874ae77d4d8acb5a577876d444 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Fri, 28 Dec 2012 16:44:10 +0100
+Subject: [PATCH 0030/1302] ARM: dts: exynos4: Add node for USB PHY
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 13 +++++++++++++
+ 1 file changed, 13 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 77ac4af..9ef9926 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -351,6 +351,19 @@
+ status = "disabled";
+ };
+
++ usbphy@125B0000 {
++ compatible = "samsung,exynos4210-usbphy";
++ reg = <0x125B0000 0x100>;
++ ranges;
++ #address-cells = <1>;
++ #size-cells = <1>;
++ status = "disabled";
++
++ usbphy-sys {
++ reg = <0x10020704 0x8>;
++ };
++ };
++
+ hsotg@12480000 {
+ compatible = "samsung,s3c-hsotg";
+ reg = <0x12480000 0x20000>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0031-ARM-dts-exynos4-Move-usbphy-node-to-SoC-specific-dts.patch b/patches.tizen/0031-ARM-dts-exynos4-Move-usbphy-node-to-SoC-specific-dts.patch
new file mode 100644
index 0000000..076ad5f
--- /dev/null
+++ b/patches.tizen/0031-ARM-dts-exynos4-Move-usbphy-node-to-SoC-specific-dts.patch
@@ -0,0 +1,92 @@
+From bd8c4646ef517e146f6c58cfc7a23962fc9b815c Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 7 Jan 2013 15:52:58 +0100
+Subject: [PATCH 0031/1302] ARM: dts: exynos4: Move usbphy node to SoC-specific
+ dts files
+
+USB PHY of Exynos4210 and Exynos4x12 require different compatible
+strings, making usbphy node SoC-specific.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 13 -------------
+ arch/arm/boot/dts/exynos4210.dtsi | 15 +++++++++++++++
+ arch/arm/boot/dts/exynos4x12.dtsi | 15 +++++++++++++++
+ 3 files changed, 30 insertions(+), 13 deletions(-)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 9ef9926..77ac4af 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -351,19 +351,6 @@
+ status = "disabled";
+ };
+
+- usbphy@125B0000 {
+- compatible = "samsung,exynos4210-usbphy";
+- reg = <0x125B0000 0x100>;
+- ranges;
+- #address-cells = <1>;
+- #size-cells = <1>;
+- status = "disabled";
+-
+- usbphy-sys {
+- reg = <0x10020704 0x8>;
+- };
+- };
+-
+ hsotg@12480000 {
+ compatible = "samsung,s3c-hsotg";
+ reg = <0x12480000 0x20000>;
+diff --git a/arch/arm/boot/dts/exynos4210.dtsi b/arch/arm/boot/dts/exynos4210.dtsi
+index 7ab619e..501708a 100644
+--- a/arch/arm/boot/dts/exynos4210.dtsi
++++ b/arch/arm/boot/dts/exynos4210.dtsi
+@@ -149,4 +149,19 @@
+ samsung,power-domain = <&pd_lcd1>;
+ status = "ok";
+ };
++
++ usbphy@125B0000 {
++ compatible = "samsung,exynos4210-usb2phy";
++ reg = <0x125B0000 0x100>;
++ ranges;
++ #address-cells = <1>;
++ #size-cells = <1>;
++ clocks = <&clock 305>;
++ clock-names = "otg";
++ status = "disabled";
++
++ usbphy-sys {
++ reg = <0x10020704 0x8>;
++ };
++ };
+ };
+diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
+index 3bf2d09..6aca431 100644
+--- a/arch/arm/boot/dts/exynos4x12.dtsi
++++ b/arch/arm/boot/dts/exynos4x12.dtsi
+@@ -159,4 +159,19 @@
+ clocks = <&clock 365>;
+ status = "ok";
+ };
++
++ usbphy@125B0000 {
++ compatible = "samsung,exynos4x12-usb2phy";
++ reg = <0x125B0000 0x100>;
++ ranges;
++ #address-cells = <1>;
++ #size-cells = <1>;
++ clocks = <&clock 305>;
++ clock-names = "otg";
++ status = "disabled";
++
++ usbphy-sys {
++ reg = <0x10020704 0x8>;
++ };
++ };
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0032-ARM-dts-exynos4210-trats-Enable-USB-PHY-node.patch b/patches.tizen/0032-ARM-dts-exynos4210-trats-Enable-USB-PHY-node.patch
new file mode 100644
index 0000000..be2e2f2
--- /dev/null
+++ b/patches.tizen/0032-ARM-dts-exynos4210-trats-Enable-USB-PHY-node.patch
@@ -0,0 +1,29 @@
+From e7f5f027bc00faa267d4cf315b0f18bf4f0e5f34 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Fri, 28 Dec 2012 16:44:39 +0100
+Subject: [PATCH 0032/1302] ARM: dts: exynos4210-trats: Enable USB PHY node
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4210-trats.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
+index ce729c7..a413897 100644
+--- a/arch/arm/boot/dts/exynos4210-trats.dts
++++ b/arch/arm/boot/dts/exynos4210-trats.dts
+@@ -290,6 +290,10 @@
+ };
+ };
+
++ usbphy@125B0000 {
++ status = "okay";
++ };
++
+ hsotg@12480000 {
+ status = "okay";
+ vusb_d-supply = <&vusb_reg>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0033-ARM-dts-exynos4412-slp_pq-Enable-USB-PHY-node.patch b/patches.tizen/0033-ARM-dts-exynos4412-slp_pq-Enable-USB-PHY-node.patch
new file mode 100644
index 0000000..0161d3c
--- /dev/null
+++ b/patches.tizen/0033-ARM-dts-exynos4412-slp_pq-Enable-USB-PHY-node.patch
@@ -0,0 +1,29 @@
+From dbfa49a283a249931538719422911eebe82b6c4e Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Fri, 28 Dec 2012 16:44:57 +0100
+Subject: [PATCH 0033/1302] ARM: dts: exynos4412-slp_pq: Enable USB PHY node
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+index 8d9d2fb..bd34a51 100644
+--- a/arch/arm/boot/dts/exynos4412-slp_pq.dts
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -455,6 +455,10 @@
+ status = "okay";
+ };
+
++ usbphy@125B0000 {
++ status = "okay";
++ };
++
+ hsotg@12480000 {
+ status = "okay";
+ vusb_d-supply = <&ldo15_reg>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0034-ARM-dts-exynos4210-trats-Add-display-support-on-Trat.patch b/patches.tizen/0034-ARM-dts-exynos4210-trats-Add-display-support-on-Trat.patch
new file mode 100644
index 0000000..6ba02c4
--- /dev/null
+++ b/patches.tizen/0034-ARM-dts-exynos4210-trats-Add-display-support-on-Trat.patch
@@ -0,0 +1,74 @@
+From 128e292dc4439c5584af2479841157a985d0c2e7 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Fri, 31 Aug 2012 12:32:35 +0200
+Subject: [PATCH 0034/1302] ARM: dts: exynos4210-trats: Add display support on
+ Trats
+
+This commit adds nodes and attributes necessary to enable support of
+MIPI DSIM, LCD and FIMD on Trats board.
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+
+Conflicts:
+ arch/arm/boot/dts/exynos4210-trats.dts
+
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4210-trats.dts | 43 ++++++++++++++++++++++++++++++++++
+ 1 file changed, 43 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
+index a413897..39fcc8a 100644
+--- a/arch/arm/boot/dts/exynos4210-trats.dts
++++ b/arch/arm/boot/dts/exynos4210-trats.dts
+@@ -311,4 +311,47 @@
+ clock-frequency = <24000000>;
+ };
+ };
++
++ fimd0_lcd: panel {
++ compatible = "s6e8ax0";
++ panel-reverse;
++ reset-gpio = <&gpy4 5 0>;
++ reset-delay = <25>;
++ power-off-delay = <0>;
++ power-on-delay= <0>;
++ vdd3-supply = <&vcclcd_reg>;
++ vci-supply = <&vlcd_reg>;
++ lcd-htiming = <5 5 5 720>;
++ lcd-vtiming = <1 13 2 1280>;
++ supports-mipi-panel;
++ };
++
++ mipi-dsim@11C80000 {
++ video-interface;
++ virtual-channel = <0>;
++ pixel-format = <7>;
++ burst-mode = <1>;
++ bus-width = <4>;
++ cmd-allow = <0xf>;
++ pms-setting = <12 250 0>;
++ pll-stable-time = <500>;
++ escape-clock = <10000000>;
++ stop-holding-count = <0x7ff>;
++ bta-timeout = <0xff>;
++ rx-timeout = <0xffff>;
++ vdd11-supply = <&vusb_reg>;
++ vdd18-supply = <&vmipi_reg>;
++ panel-info = <&fimd0_lcd>;
++ status = "okay";
++ };
++
++ fimd@11c00000 {
++ samsung,fimd-display = <&fimd0_lcd>;
++ samsung,fimd-vidout-rgb;
++ samsung,fimd-inv-vclk;
++ samsung,fimd-frame-rate = <60>;
++ samsung,default-window = <3>;
++ samsung,fimd-win-bpp = <32>;
++ status = "okay";
++ };
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0035-ARM-dts-exynos4210-trats-Fix-vdd_arm-regulator-name.patch b/patches.tizen/0035-ARM-dts-exynos4210-trats-Fix-vdd_arm-regulator-name.patch
new file mode 100644
index 0000000..aa3362a
--- /dev/null
+++ b/patches.tizen/0035-ARM-dts-exynos4210-trats-Fix-vdd_arm-regulator-name.patch
@@ -0,0 +1,28 @@
+From 98d6d2ec0a2217c908e92b8440793b61fcd3ce55 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Thu, 3 Jan 2013 17:53:55 +0100
+Subject: [PATCH 0035/1302] ARM: dts: exynos4210-trats: Fix vdd_arm regulator
+ name
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4210-trats.dts | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
+index 39fcc8a..c49ec79 100644
+--- a/arch/arm/boot/dts/exynos4210-trats.dts
++++ b/arch/arm/boot/dts/exynos4210-trats.dts
+@@ -244,7 +244,7 @@
+ };
+
+ varm_breg: BUCK1 {
+- regulator-name = "VARM_1.2V_C210";
++ regulator-name = "vdd_arm";
+ regulator-min-microvolt = <900000>;
+ regulator-max-microvolt = <1350000>;
+ regulator-always-on;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0036-drm-exynos-fimd-clear-channel-before-enabling-iommu.patch b/patches.tizen/0036-drm-exynos-fimd-clear-channel-before-enabling-iommu.patch
new file mode 100644
index 0000000..bb2c472
--- /dev/null
+++ b/patches.tizen/0036-drm-exynos-fimd-clear-channel-before-enabling-iommu.patch
@@ -0,0 +1,72 @@
+From 3d8e597cc926df5641751736edc3f0d9d21e1eba Mon Sep 17 00:00:00 2001
+From: Akshu Agrawal <akshu.a@samsung.com>
+Date: Wed, 26 Dec 2012 06:27:41 -0500
+Subject: [PATCH 0036/1302] drm/exynos: fimd: clear channel before enabling
+ iommu
+
+If any fimd channel was already active, initializing iommu will result
+in a PAGE FAULT (e.g. u-boot could have turned on the display and
+not disabled it before the kernel starts). This patch checks if any
+channel is active before initializing iommu and disables it.
+
+Signed-off-by: Akshu Agrawal <akshu.a@samsung.com>
+Signed-off-by: Prathyush K <prathyush.k@samsung.com>
+Signed-off-by: Inki Dae <inki.dae@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/gpu/drm/exynos/exynos_drm_fimd.c | 31 +++++++++++++++++++++++++++++--
+ 1 file changed, 29 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/exynos/exynos_drm_fimd.c b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+index 97c61db..8ffbe2d 100644
+--- a/drivers/gpu/drm/exynos/exynos_drm_fimd.c
++++ b/drivers/gpu/drm/exynos/exynos_drm_fimd.c
+@@ -695,6 +695,28 @@ out:
+ return IRQ_HANDLED;
+ }
+
++static void fimd_clear_channel(struct device *dev)
++{
++ struct fimd_context *ctx = get_fimd_context(dev);
++ int win, ch_enabled = 0;
++
++ DRM_DEBUG_KMS("%s\n", __FILE__);
++
++ /* Check if any channel is enabled */
++ for (win = 0; win < WINDOWS_NR; win++) {
++ u32 val = readl(ctx->regs + SHADOWCON);
++ if (val & SHADOWCON_CHx_ENABLE(win)) {
++ val &= ~SHADOWCON_CHx_ENABLE(win);
++ writel(val, ctx->regs + SHADOWCON);
++ ch_enabled = 1;
++ }
++ }
++
++ /* Wait for vsync, as disable channel takes effect at next vsync */
++ if (ch_enabled)
++ fimd_wait_for_vblank(dev);
++}
++
+ static int fimd_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
+ {
+ DRM_DEBUG_KMS("%s\n", __FILE__);
+@@ -717,9 +739,14 @@ static int fimd_subdrv_probe(struct drm_device *drm_dev, struct device *dev)
+ drm_dev->vblank_disable_allowed = 1;
+
+ /* attach this sub driver to iommu mapping if supported. */
+- if (is_drm_iommu_supported(drm_dev))
++ if (is_drm_iommu_supported(drm_dev)) {
++ /*
++ * If any channel is already active, iommu will throw
++ * a PAGE FAULT when enabled. So clear any channel if enabled.
++ */
++ fimd_clear_channel(dev);
+ drm_iommu_attach_device(drm_dev, dev);
+-
++ }
+ return 0;
+ }
+
+--
+1.8.3.2
+
diff --git a/patches.tizen/0037-ARM-EXYNOS-add-ARM_HAS_SG_CHAIN-config.patch b/patches.tizen/0037-ARM-EXYNOS-add-ARM_HAS_SG_CHAIN-config.patch
new file mode 100644
index 0000000..c34dccb
--- /dev/null
+++ b/patches.tizen/0037-ARM-EXYNOS-add-ARM_HAS_SG_CHAIN-config.patch
@@ -0,0 +1,26 @@
+From a0a270f57148a54699e09241278a211397909862 Mon Sep 17 00:00:00 2001
+From: Inki Dae <inki.dae@samsung.com>
+Date: Thu, 3 Jan 2013 14:00:30 +0900
+Subject: [PATCH 0037/1302] ARM: EXYNOS: add ARM_HAS_SG_CHAIN config
+
+Signed-off-by: Inki Dae <inki.dae@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/plat-samsung/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/plat-samsung/Kconfig b/arch/arm/plat-samsung/Kconfig
+index f8ed2de..a072524 100644
+--- a/arch/arm/plat-samsung/Kconfig
++++ b/arch/arm/plat-samsung/Kconfig
+@@ -22,6 +22,7 @@ config PLAT_S5P
+ select ARM_VIC if !ARCH_EXYNOS
+ select GIC_NON_BANKED if ARCH_EXYNOS4
+ select NO_IOPORT
++ select ARM_HAS_SG_CHAIN
+ select PLAT_SAMSUNG
+ select S3C_GPIO_TRACK
+ select S5P_GPIO_DRVSTR
+--
+1.8.3.2
+
diff --git a/patches.tizen/0038-ARM-EXYNOS-select-ARM_DMA_USE_IOMMU-for-MACH_EXYNOS4.patch b/patches.tizen/0038-ARM-EXYNOS-select-ARM_DMA_USE_IOMMU-for-MACH_EXYNOS4.patch
new file mode 100644
index 0000000..efc6caf
--- /dev/null
+++ b/patches.tizen/0038-ARM-EXYNOS-select-ARM_DMA_USE_IOMMU-for-MACH_EXYNOS4.patch
@@ -0,0 +1,31 @@
+From 98aa4c80a62ac52748d81a6457e5ae0fa1e256b1 Mon Sep 17 00:00:00 2001
+From: Inki Dae <inki.dae@samsung.com>
+Date: Thu, 3 Jan 2013 19:01:41 +0900
+Subject: [PATCH 0038/1302] ARM: EXYNOS: select ARM_DMA_USE_IOMMU for
+ MACH_EXYNOS4_DT
+
+if EXYNOS_IOMMU is enabled then ARM_DMA_USE_IOMMU
+will be enabled also.
+
+Signed-off-by: Inki Dae <inki.dae@samsung.com>
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/mach-exynos/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/arch/arm/mach-exynos/Kconfig b/arch/arm/mach-exynos/Kconfig
+index ff18fc2..0020f87 100644
+--- a/arch/arm/mach-exynos/Kconfig
++++ b/arch/arm/mach-exynos/Kconfig
+@@ -417,6 +417,7 @@ config MACH_EXYNOS4_DT
+ select PINCTRL_EXYNOS
+ select S5P_DEV_MFC
+ select USE_OF
++ select ARM_DMA_USE_IOMMU if EXYNOS_IOMMU
+ help
+ Machine support for Samsung Exynos4 machine with device tree enabled.
+ Select this if a fdt blob is available for the Exynos4 SoC based board.
+--
+1.8.3.2
+
diff --git a/patches.tizen/0039-ARM-dts-exynos4412-slp_pq-add-fimd-iommu-support.patch b/patches.tizen/0039-ARM-dts-exynos4412-slp_pq-add-fimd-iommu-support.patch
new file mode 100644
index 0000000..0c0e83ea
--- /dev/null
+++ b/patches.tizen/0039-ARM-dts-exynos4412-slp_pq-add-fimd-iommu-support.patch
@@ -0,0 +1,29 @@
+From 6eb924c0471b1709f33496cf76c632132cec33f2 Mon Sep 17 00:00:00 2001
+From: Inki Dae <inki.dae@samsung.com>
+Date: Thu, 3 Jan 2013 19:03:19 +0900
+Subject: [PATCH 0039/1302] ARM: dts: exynos4412-slp_pq: add fimd iommu support
+
+Signed-off-by: Inki Dae <inki.dae@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+index bd34a51..d506149 100644
+--- a/arch/arm/boot/dts/exynos4412-slp_pq.dts
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -455,6 +455,10 @@
+ status = "okay";
+ };
+
++ sysmmu-fimd0 {
++ mmu-master = <&fimd>;
++ };
++
+ usbphy@125B0000 {
+ status = "okay";
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0040-ARM-DTS-SLP-PQ-add-drm-virtual-display-node.patch b/patches.tizen/0040-ARM-DTS-SLP-PQ-add-drm-virtual-display-node.patch
new file mode 100644
index 0000000..55030ef
--- /dev/null
+++ b/patches.tizen/0040-ARM-DTS-SLP-PQ-add-drm-virtual-display-node.patch
@@ -0,0 +1,29 @@
+From ecfb835fff3829e3fa8da3ce5f81bf800a551cf2 Mon Sep 17 00:00:00 2001
+From: Inki Dae <inki.dae@samsung.com>
+Date: Fri, 4 Jan 2013 16:25:52 +0900
+Subject: [PATCH 0040/1302] ARM: DTS: SLP-PQ: add drm virtual display node.
+
+Signed-off-by: Inki Dae <inki.dae@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+index d506149..fe5a458 100644
+--- a/arch/arm/boot/dts/exynos4412-slp_pq.dts
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -455,6 +455,10 @@
+ status = "okay";
+ };
+
++ vidi {
++ compatible = "samsung,exynos-drm-vidi";
++ };
++
+ sysmmu-fimd0 {
+ mmu-master = <&fimd>;
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0041-drm-exynos-add-dt-match-table-for-vidi-module.patch b/patches.tizen/0041-drm-exynos-add-dt-match-table-for-vidi-module.patch
new file mode 100644
index 0000000..414c33a
--- /dev/null
+++ b/patches.tizen/0041-drm-exynos-add-dt-match-table-for-vidi-module.patch
@@ -0,0 +1,40 @@
+From b96dacd547b581341447efd317da886856802878 Mon Sep 17 00:00:00 2001
+From: Inki Dae <inki.dae@samsung.com>
+Date: Fri, 4 Jan 2013 16:27:03 +0900
+Subject: [PATCH 0041/1302] drm/exynos: add dt match table for vidi module.
+
+Signed-off-by: Inki Dae <inki.dae@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/gpu/drm/exynos/exynos_drm_vidi.c | 9 +++++++++
+ 1 file changed, 9 insertions(+)
+
+diff --git a/drivers/gpu/drm/exynos/exynos_drm_vidi.c b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+index 24376c1..c966e23 100644
+--- a/drivers/gpu/drm/exynos/exynos_drm_vidi.c
++++ b/drivers/gpu/drm/exynos/exynos_drm_vidi.c
+@@ -85,6 +85,14 @@ static const char fake_edid_info[] = {
+ 0x00, 0x00, 0x00, 0x06
+ };
+
++#ifdef CONFIG_OF
++static const struct of_device_id vidi_driver_dt_match[] = {
++ { .compatible = "samsung,exynos-drm-vidi" },
++ {},
++};
++MODULE_DEVICE_TABLE(of, vidi_driver_dt_match);
++#endif
++
+ static bool vidi_display_is_connected(struct device *dev)
+ {
+ struct vidi_context *ctx = get_vidi_context(dev);
+@@ -664,5 +672,6 @@ struct platform_driver vidi_driver = {
+ .name = "exynos-drm-vidi",
+ .owner = THIS_MODULE,
+ .pm = &vidi_pm_ops,
++ .of_match_table = of_match_ptr(vidi_driver_dt_match),
+ },
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0042-ARM-dts-exynos4210-trats-Add-nodes-for-xxti-and-xusb.patch b/patches.tizen/0042-ARM-dts-exynos4210-trats-Add-nodes-for-xxti-and-xusb.patch
new file mode 100644
index 0000000..197bba1
--- /dev/null
+++ b/patches.tizen/0042-ARM-dts-exynos4210-trats-Add-nodes-for-xxti-and-xusb.patch
@@ -0,0 +1,38 @@
+From 52add51cd571f8ddb8870f0ce64e731a6452d31f Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 7 Jan 2013 18:09:08 +0100
+Subject: [PATCH 0042/1302] ARM: dts: exynos4210-trats: Add nodes for xxti and
+ xusbxti clocks
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4210-trats.dts | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4210-trats.dts b/arch/arm/boot/dts/exynos4210-trats.dts
+index c49ec79..f9a57fd 100644
+--- a/arch/arm/boot/dts/exynos4210-trats.dts
++++ b/arch/arm/boot/dts/exynos4210-trats.dts
+@@ -30,6 +30,18 @@
+ bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
+ };
+
++ fixed-rate-clocks {
++ xxti {
++ compatible = "samsung,clock-xxti", "fixed-clock";
++ clock-frequency = <0>;
++ };
++
++ xusbxti {
++ compatible = "samsung,clock-xusbxti", "fixed-clock";
++ clock-frequency = <24000000>;
++ };
++ };
++
+ vemmc_reg: voltage-regulator@0 {
+ compatible = "regulator-fixed";
+ regulator-name = "VMEM_VDD_2.8V";
+--
+1.8.3.2
+
diff --git a/patches.tizen/0043-ARM-dts-exynos4412-slp_pq-Add-nodes-for-xxti-and-xus.patch b/patches.tizen/0043-ARM-dts-exynos4412-slp_pq-Add-nodes-for-xxti-and-xus.patch
new file mode 100644
index 0000000..30b5ce8
--- /dev/null
+++ b/patches.tizen/0043-ARM-dts-exynos4412-slp_pq-Add-nodes-for-xxti-and-xus.patch
@@ -0,0 +1,38 @@
+From d1bb3d04acad2d7dd21e195603ae4e4b1b83d289 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 7 Jan 2013 18:10:22 +0100
+Subject: [PATCH 0043/1302] ARM: dts: exynos4412-slp_pq: Add nodes for xxti and
+ xusbxti clocks
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 12 ++++++++++++
+ 1 file changed, 12 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+index fe5a458..e28bc60 100644
+--- a/arch/arm/boot/dts/exynos4412-slp_pq.dts
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -35,6 +35,18 @@
+ reg = <0x0204F000 0x1000>;
+ };
+
++ fixed-rate-clocks {
++ xxti {
++ compatible = "samsung,clock-xxti", "fixed-clock";
++ clock-frequency = <0>;
++ };
++
++ xusbxti {
++ compatible = "samsung,clock-xusbxti", "fixed-clock";
++ clock-frequency = <24000000>;
++ };
++ };
++
+ vemmc_reg: voltage-regulator@0 {
+ compatible = "regulator-fixed";
+ regulator-name = "VMEM_VDD_2.8V";
+--
+1.8.3.2
+
diff --git a/patches.tizen/0044-ARM-dts-exynos4-Add-clock-lookups-to-hsotg-node.patch b/patches.tizen/0044-ARM-dts-exynos4-Add-clock-lookups-to-hsotg-node.patch
new file mode 100644
index 0000000..e3adaa3
--- /dev/null
+++ b/patches.tizen/0044-ARM-dts-exynos4-Add-clock-lookups-to-hsotg-node.patch
@@ -0,0 +1,27 @@
+From 142965e2afd8cee8efbad05a8699d686a1af9a81 Mon Sep 17 00:00:00 2001
+From: Tomasz Figa <t.figa@samsung.com>
+Date: Mon, 7 Jan 2013 18:23:04 +0100
+Subject: [PATCH 0044/1302] ARM: dts: exynos4: Add clock lookups to hsotg node
+
+Signed-off-by: Tomasz Figa <t.figa@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 77ac4af..3b09373 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -355,6 +355,8 @@
+ compatible = "samsung,s3c-hsotg";
+ reg = <0x12480000 0x20000>;
+ interrupts = <0 71 0>;
++ clocks = <&clock 305>;
++ clock-names = "otg";
+ status = "disabled";
+ };
+
+--
+1.8.3.2
+
diff --git a/patches.tizen/0045-V4L-s5c73m3-Initial-device-tree-support.patch b/patches.tizen/0045-V4L-s5c73m3-Initial-device-tree-support.patch
new file mode 100644
index 0000000..4319053
--- /dev/null
+++ b/patches.tizen/0045-V4L-s5c73m3-Initial-device-tree-support.patch
@@ -0,0 +1,223 @@
+From cd7aa493bbb6b0b92acca162b143eeab23ef2c85 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Wed, 23 Jan 2013 12:32:05 +0100
+Subject: [PATCH 0045/1302] V4L: s5c73m3: Initial device tree support
+
+Add OF match table for the I2C client and SPI device driver,
+and GPIO handling for DT. This is minimum required to make
+the driver work with DT.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/media/i2c/s5c73m3/s5c73m3-core.c | 110 +++++++++++++++++++++----------
+ drivers/media/i2c/s5c73m3/s5c73m3-spi.c | 6 ++
+ 2 files changed, 81 insertions(+), 35 deletions(-)
+
+diff --git a/drivers/media/i2c/s5c73m3/s5c73m3-core.c b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
+index 9eac531..e6ce92a 100644
+--- a/drivers/media/i2c/s5c73m3/s5c73m3-core.c
++++ b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
+@@ -23,6 +23,7 @@
+ #include <linux/init.h>
+ #include <linux/media.h>
+ #include <linux/module.h>
++#include <linux/of_gpio.h>
+ #include <linux/regulator/consumer.h>
+ #include <linux/slab.h>
+ #include <linux/spi/spi.h>
+@@ -1511,17 +1512,28 @@ static const struct v4l2_subdev_ops oif_subdev_ops = {
+ .video = &s5c73m3_oif_video_ops,
+ };
+
+-static int s5c73m3_configure_gpio(int nr, int val, const char *name)
++/*
++ * GPIO control helpers
++ */
++static int s5c73m3_configure_gpio(struct s5c73m3_gpio *gpio, int idx,
++ const char *name, struct device_node *node)
+ {
+- unsigned long flags = val ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
+- int ret;
++ enum of_gpio_flags of_flags;
++ unsigned long flags;
++
++ if (node) {
++ gpio->gpio = of_get_gpio_flags(node, idx, &of_flags);
++ gpio->level = !(of_flags & OF_GPIO_ACTIVE_LOW);
++ }
+
+- if (!gpio_is_valid(nr))
++ if (!gpio_is_valid(gpio->gpio))
+ return 0;
+- ret = gpio_request_one(nr, flags, name);
+- if (!ret)
+- gpio_export(nr, 0);
+- return ret;
++
++ flags = gpio->level ? GPIOF_OUT_INIT_HIGH : GPIOF_OUT_INIT_LOW;
++ pr_debug("gpio[%d]: %d, flags: %#lx, of_flags: %#x\n",
++ idx, gpio->gpio, flags, of_flags);
++
++ return gpio_request_one(gpio->gpio, flags, name);
+ }
+
+ static int s5c73m3_free_gpios(struct s5c73m3 *state)
+@@ -1538,33 +1550,59 @@ static int s5c73m3_free_gpios(struct s5c73m3 *state)
+ }
+
+ static int s5c73m3_configure_gpios(struct s5c73m3 *state,
+- const struct s5c73m3_platform_data *pdata)
++ struct device *dev)
+ {
+- const struct s5c73m3_gpio *gpio = &pdata->gpio_stby;
++ const struct s5c73m3_platform_data *pdata = dev->platform_data;
++ struct s5c73m3_gpio gpio;
+ int ret;
+
+ state->gpio[STBY].gpio = -EINVAL;
+ state->gpio[RST].gpio = -EINVAL;
+
+- ret = s5c73m3_configure_gpio(gpio->gpio, gpio->level, "S5C73M3_STBY");
+- if (ret) {
+- s5c73m3_free_gpios(state);
+- return ret;
++ if (pdata)
++ gpio = pdata->gpio_stby;
++ else
++ gpio.gpio = -EINVAL;
++ ret = s5c73m3_configure_gpio(&gpio, STBY, "S5C73M3_STBY",
++ dev->of_node);
++ if (!ret) {
++ state->gpio[STBY] = gpio;
++ if (gpio_is_valid(gpio.gpio))
++ gpio_set_value(gpio.gpio, 0);
++ if (pdata)
++ gpio = pdata->gpio_reset;
++ else
++ gpio.gpio = -EINVAL;
++ ret = s5c73m3_configure_gpio(&gpio, RST, "S5C73M3_RST",
++ dev->of_node);
++ if (!ret && gpio_is_valid(gpio.gpio))
++ gpio_set_value(gpio.gpio, 0);
+ }
+- state->gpio[STBY] = *gpio;
+- if (gpio_is_valid(gpio->gpio))
+- gpio_set_value(gpio->gpio, 0);
+-
+- gpio = &pdata->gpio_reset;
+- ret = s5c73m3_configure_gpio(gpio->gpio, gpio->level, "S5C73M3_RST");
+- if (ret) {
++ if (!ret)
++ state->gpio[RST] = gpio;
++ else
+ s5c73m3_free_gpios(state);
+- return ret;
++
++ return ret;
++}
++
++static int s5c73m3_get_platform_data(struct s5c73m3 *state, struct device *dev)
++{
++ const struct s5c73m3_platform_data *pdata = dev->platform_data;
++ struct device_node *node = dev->of_node;
++
++ if (!node) {
++ if (!pdata) {
++ dev_err(dev, "Platform data not specified\n");
++ return -EINVAL;
++ }
++
++ state->mclk_frequency = pdata->mclk_frequency;
++ state->bus_type = pdata->bus_type;
++ return 0;
+ }
+- state->gpio[RST] = *gpio;
+- if (gpio_is_valid(gpio->gpio))
+- gpio_set_value(gpio->gpio, 0);
+
++ of_property_read_u32(node, "clock-frequency", &state->mclk_frequency);
+ return 0;
+ }
+
+@@ -1572,21 +1610,19 @@ static int s5c73m3_probe(struct i2c_client *client,
+ const struct i2c_device_id *id)
+ {
+ struct device *dev = &client->dev;
+- const struct s5c73m3_platform_data *pdata = client->dev.platform_data;
+ struct v4l2_subdev *sd;
+ struct v4l2_subdev *oif_sd;
+ struct s5c73m3 *state;
+ int ret, i;
+
+- if (pdata == NULL) {
+- dev_err(&client->dev, "Platform data not specified\n");
+- return -EINVAL;
+- }
+-
+ state = devm_kzalloc(dev, sizeof(*state), GFP_KERNEL);
+ if (!state)
+ return -ENOMEM;
+
++ ret = s5c73m3_get_platform_data(state, dev);
++ if (ret < 0)
++ return ret;
++
+ mutex_init(&state->lock);
+ sd = &state->sensor_sd;
+ oif_sd = &state->oif_sd;
+@@ -1624,10 +1660,7 @@ static int s5c73m3_probe(struct i2c_client *client,
+ if (ret < 0)
+ return ret;
+
+- state->mclk_frequency = pdata->mclk_frequency;
+- state->bus_type = pdata->bus_type;
+-
+- ret = s5c73m3_configure_gpios(state, pdata);
++ ret = s5c73m3_configure_gpios(state, dev);
+ if (ret)
+ goto out_err1;
+
+@@ -1699,8 +1732,15 @@ static const struct i2c_device_id s5c73m3_id[] = {
+ };
+ MODULE_DEVICE_TABLE(i2c, s5c73m3_id);
+
++static const struct of_device_id s5c73m3_of_match[] = {
++ { .compatible = "samsung,s5c73m3" },
++ { }
++};
++MODULE_DEVICE_TABLE(of, s5c73m3_of_match);
++
+ static struct i2c_driver s5c73m3_i2c_driver = {
+ .driver = {
++ .of_match_table = s5c73m3_of_match,
+ .name = DRIVER_NAME,
+ },
+ .probe = s5c73m3_probe,
+diff --git a/drivers/media/i2c/s5c73m3/s5c73m3-spi.c b/drivers/media/i2c/s5c73m3/s5c73m3-spi.c
+index 6f3a9c0..cd1074f 100644
+--- a/drivers/media/i2c/s5c73m3/s5c73m3-spi.c
++++ b/drivers/media/i2c/s5c73m3/s5c73m3-spi.c
+@@ -27,6 +27,11 @@
+
+ #define S5C73M3_SPI_DRV_NAME "S5C73M3-SPI"
+
++static const struct of_device_id s5c73m3_spi_ids[] = {
++ { .compatible = "samsung,s5c73m3" },
++ { }
++};
++
+ enum spi_direction {
+ SPI_DIR_RX,
+ SPI_DIR_TX
+@@ -146,6 +151,7 @@ int s5c73m3_register_spi_driver(struct s5c73m3 *state)
+ spidrv->driver.name = S5C73M3_SPI_DRV_NAME;
+ spidrv->driver.bus = &spi_bus_type;
+ spidrv->driver.owner = THIS_MODULE;
++ spidrv->driver.of_match_table = s5c73m3_spi_ids;
+
+ return spi_register_driver(spidrv);
+ }
+--
+1.8.3.2
+
diff --git a/patches.tizen/0046-s5c73m3-Disable-boot_from_rom.patch b/patches.tizen/0046-s5c73m3-Disable-boot_from_rom.patch
new file mode 100644
index 0000000..3d7522d
--- /dev/null
+++ b/patches.tizen/0046-s5c73m3-Disable-boot_from_rom.patch
@@ -0,0 +1,29 @@
+From 0f0fce93bf74031922d9a6041f86b2e8b599f3f9 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Wed, 23 Jan 2013 12:37:03 +0100
+Subject: [PATCH 0046/1302] s5c73m3: Disable boot_from_rom
+
+Boot from FROM memory is only for the mainline kernel.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ drivers/media/i2c/s5c73m3/s5c73m3-core.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/drivers/media/i2c/s5c73m3/s5c73m3-core.c b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
+index e6ce92a..77f59fa 100644
+--- a/drivers/media/i2c/s5c73m3/s5c73m3-core.c
++++ b/drivers/media/i2c/s5c73m3/s5c73m3-core.c
+@@ -40,7 +40,7 @@
+ int s5c73m3_dbg;
+ module_param_named(debug, s5c73m3_dbg, int, 0644);
+
+-static int boot_from_rom = 1;
++static int boot_from_rom = 0;
+ module_param(boot_from_rom, int, 0644);
+
+ static int update_fw;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0047-ARM-dts-Add-camera-to-node-exynos4.dtsi.patch b/patches.tizen/0047-ARM-dts-Add-camera-to-node-exynos4.dtsi.patch
new file mode 100644
index 0000000..7c4ebe5
--- /dev/null
+++ b/patches.tizen/0047-ARM-dts-Add-camera-to-node-exynos4.dtsi.patch
@@ -0,0 +1,99 @@
+From 37f865b3f66b6b564f44b3c46eb7834022767cca Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Wed, 24 Oct 2012 17:00:57 +0200
+Subject: [PATCH 0047/1302] ARM: dts: Add camera to node exynos4.dtsi
+
+This patch adds common FIMC device nodes for all Exynos4 SoCs.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 64 ++++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 64 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 3b09373..5a3955b 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -36,6 +36,12 @@
+ i2c5 = &i2c_5;
+ i2c6 = &i2c_6;
+ i2c7 = &i2c_7;
++ csis0 = &csis_0;
++ csis1 = &csis_1;
++ fimc0 = &fimc_0;
++ fimc1 = &fimc_1;
++ fimc2 = &fimc_2;
++ fimc3 = &fimc_3;
+ };
+
+ chipid@10000000 {
+@@ -98,6 +104,64 @@
+ arm,tag-latency = <1 1 0>;
+ };
+
++ camera {
++ compatible = "samsung,fimc", "simple-bus";
++ status = "disabled";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ fimc_0: fimc@11800000 {
++ compatible = "samsung,exynos4210-fimc";
++ reg = <0x11800000 0x1000>;
++ interrupts = <0 84 0>;
++ samsung,power-domain = <&pd_cam>;
++ status = "disabled";
++ };
++
++ fimc_1: fimc@11810000 {
++ compatible = "samsung,exynos4210-fimc";
++ reg = <0x11810000 0x1000>;
++ interrupts = <0 85 0>;
++ samsung,power-domain = <&pd_cam>;
++ status = "disabled";
++ };
++
++ fimc_2: fimc@11820000 {
++ compatible = "samsung,exynos4210-fimc";
++ reg = <0x11820000 0x1000>;
++ interrupts = <0 86 0>;
++ samsung,power-domain = <&pd_cam>;
++ status = "disabled";
++ };
++
++ fimc_3: fimc@11830000 {
++ compatible = "samsung,exynos4210-fimc";
++ reg = <0x11830000 0x1000>;
++ interrupts = <0 87 0>;
++ samsung,power-domain = <&pd_cam>;
++ status = "disabled";
++ };
++
++ csis_0: csis@11880000 {
++ compatible = "samsung,exynos4210-csis";
++ reg = <0x11880000 0x4000>;
++ interrupts = <0 78 0>;
++ bus-width = <4>;
++ samsung,power-domain = <&pd_cam>;
++ status = "disabled";
++ };
++
++ csis_1: csis@11890000 {
++ compatible = "samsung,exynos4210-csis";
++ reg = <0x11890000 0x4000>;
++ interrupts = <0 80 0>;
++ bus-width = <2>;
++ samsung,power-domain = <&pd_cam>;
++ status = "disabled";
++ };
++ };
++
+ watchdog@10060000 {
+ compatible = "samsung,s3c2410-wdt";
+ reg = <0x10060000 0x100>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0048-ARM-dts-Add-ISP-power-domain-node-for-Exynos4x12.patch b/patches.tizen/0048-ARM-dts-Add-ISP-power-domain-node-for-Exynos4x12.patch
new file mode 100644
index 0000000..605bb79
--- /dev/null
+++ b/patches.tizen/0048-ARM-dts-Add-ISP-power-domain-node-for-Exynos4x12.patch
@@ -0,0 +1,34 @@
+From 1e881c2001e9d00c04a0cef8887d093c0027e76b Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Mon, 10 Dec 2012 15:23:38 +0100
+Subject: [PATCH 0048/1302] ARM: dts: Add ISP power domain node for Exynos4x12
+
+The ISP power domain is a common power domain for fimc-lite
+and fimc-is (ISP) devices.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4x12.dtsi | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
+index 6aca431..2a5ac7b 100644
+--- a/arch/arm/boot/dts/exynos4x12.dtsi
++++ b/arch/arm/boot/dts/exynos4x12.dtsi
+@@ -28,6 +28,11 @@
+ pinctrl3 = &pinctrl_3;
+ };
+
++ pd_isp: isp-power-domain@10023CA0 {
++ compatible = "samsung,exynos4210-pd";
++ reg = <0x10023CA0 0x20>;
++ };
++
+ combiner:interrupt-controller@10440000 {
+ interrupts = <0 0 0>, <0 1 0>, <0 2 0>, <0 3 0>,
+ <0 4 0>, <0 5 0>, <0 6 0>, <0 7 0>,
+--
+1.8.3.2
+
diff --git a/patches.tizen/0049-ARM-dts-Add-FIMC-and-MIPI-CSIS-device-nodes-for-Exyn.patch b/patches.tizen/0049-ARM-dts-Add-FIMC-and-MIPI-CSIS-device-nodes-for-Exyn.patch
new file mode 100644
index 0000000..391d528
--- /dev/null
+++ b/patches.tizen/0049-ARM-dts-Add-FIMC-and-MIPI-CSIS-device-nodes-for-Exyn.patch
@@ -0,0 +1,85 @@
+From 13abd305c654983547b8cd6a1e13641a570ddd74 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Mon, 7 Jan 2013 17:13:58 +0100
+Subject: [PATCH 0049/1302] ARM: dts: Add FIMC and MIPI CSIS device nodes for
+ Exynos4x12
+
+Add common camera node and fimc nodes specific to Exynos4212 and
+Exynos4412 SoCs. fimc-is is a node for the Exynos4x12 FIMC-IS
+subsystem and fimc-lite nodes are created as its child nodes,
+among others due to FIMC-LITE device dependencies on FIMC-IS
+related clocks.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4x12.dtsi | 47 +++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 47 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
+index 2a5ac7b..3b4a16b 100644
+--- a/arch/arm/boot/dts/exynos4x12.dtsi
++++ b/arch/arm/boot/dts/exynos4x12.dtsi
+@@ -26,6 +26,8 @@
+ pinctrl1 = &pinctrl_1;
+ pinctrl2 = &pinctrl_2;
+ pinctrl3 = &pinctrl_3;
++ fimc-lite0 = &fimc_lite_0;
++ fimc-lite1 = &fimc_lite_1;
+ };
+
+ pd_isp: isp-power-domain@10023CA0 {
+@@ -179,4 +181,49 @@
+ reg = <0x10020704 0x8>;
+ };
+ };
++
++ camera {
++ fimc_0: fimc@11800000 {
++ compatible = "samsung,exynos4212-fimc";
++ };
++
++ fimc_1: fimc@11810000 {
++ compatible = "samsung,exynos4212-fimc";
++ };
++
++ fimc_2: fimc@11820000 {
++ compatible = "samsung,exynos4212-fimc";
++ };
++
++ fimc_3: fimc@11830000 {
++ compatible = "samsung,exynos4212-fimc";
++ };
++
++ fimc_is: fimc-is@12000000 {
++ compatible = "samsung,exynos4212-fimc-is", "simple-bus";
++ reg = <0x12000000 0x260000>;
++ interrupts = <0 90 0>, <0 95 0>;
++ samsung,power-domain = <&pd_isp>;
++ status = "disabled";
++ #address-cells = <1>;
++ #size-cells = <1>;
++ ranges;
++
++ fimc_lite_0: fimc-lite@12390000 {
++ compatible = "samsung,exynos4212-fimc-lite";
++ reg = <0x12390000 0x1000>;
++ interrupts = <0 105 0>;
++ samsung,power-domain = <&pd_isp>;
++ status = "disabled";
++ };
++
++ fimc_lite_1: fimc-lite@123A0000 {
++ compatible = "samsung,exynos4212-fimc-lite";
++ reg = <0x123A0000 0x1000>;
++ interrupts = <0 106 0>;
++ samsung,power-domain = <&pd_isp>;
++ status = "disabled";
++ };
++ };
++ };
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0050-ARM-dts-Correct-camera-pinctrl-nodes-for-Exynos4x12-.patch b/patches.tizen/0050-ARM-dts-Correct-camera-pinctrl-nodes-for-Exynos4x12-.patch
new file mode 100644
index 0000000..0206548
--- /dev/null
+++ b/patches.tizen/0050-ARM-dts-Correct-camera-pinctrl-nodes-for-Exynos4x12-.patch
@@ -0,0 +1,90 @@
+From ac696fa80bf5addd9bb72d7e07903f19c71dbfb0 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Wed, 24 Oct 2012 16:42:12 +0200
+Subject: [PATCH 0050/1302] ARM: dts: Correct camera pinctrl nodes for
+ Exynos4x12 SoCs
+
+Add separate nodes for the CAMCLK pin and turn off pull-up on camera
+ports A, B. The video bus pins and the clock output (CAMCLK) pin need
+separate nodes since full camera port is not used in some configurations,
+e.g. for MIPI CSI-2 bus on CAMCLK is required and data/clock signal
+use separate dedicated pins.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 40 +++++++++++++++++++++++++------
+ 1 file changed, 33 insertions(+), 7 deletions(-)
+
+diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+index 099cec7..950ef30 100644
+--- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
++++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+@@ -401,13 +401,26 @@
+ samsung,pin-drv = <0>;
+ };
+
+- cam_port_a: cam-port-a {
++ cam_port_a_io: cam-port-a-io {
+ samsung,pins = "gpj0-0", "gpj0-1", "gpj0-2", "gpj0-3",
+ "gpj0-4", "gpj0-5", "gpj0-6", "gpj0-7",
+- "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-3",
+- "gpj1-4";
++ "gpj1-0", "gpj1-1", "gpj1-2", "gpj1-4";
+ samsung,pin-function = <2>;
+- samsung,pin-pud = <3>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <0>;
++ };
++
++ cam_port_a_clk_active: cam-port-a-clk-active {
++ samsung,pins = "gpj1-3";
++ samsung,pin-function = <2>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <3>;
++ };
++
++ cam_port_a_clk_idle: cam-port-a-clk-idle {
++ samsung,pins = "gpj1-3";
++ samsung,pin-function = <0>;
++ samsung,pin-pud = <0>;
+ samsung,pin-drv = <0>;
+ };
+ };
+@@ -834,16 +847,29 @@
+ samsung,pin-drv = <0>;
+ };
+
+- cam_port_b: cam-port-b {
++ cam_port_b_io: cam-port-b-io {
+ samsung,pins = "gpm0-0", "gpm0-1", "gpm0-2", "gpm0-3",
+ "gpm0-4", "gpm0-5", "gpm0-6", "gpm0-7",
+- "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1",
+- "gpm2-2";
++ "gpm1-0", "gpm1-1", "gpm2-0", "gpm2-1";
+ samsung,pin-function = <3>;
+ samsung,pin-pud = <3>;
+ samsung,pin-drv = <0>;
+ };
+
++ cam_port_b_clk_active: cam-port-b-clk-active {
++ samsung,pins = "gpm2-2";
++ samsung,pin-function = <3>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <3>;
++ };
++
++ cam_port_b_clk_idle: cam-port-b-clk-idle {
++ samsung,pins = "gpm2-2";
++ samsung,pin-function = <0>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <0>;
++ };
++
+ eint0: ext-int0 {
+ samsung,pins = "gpx0-0";
+ samsung,pin-function = <0xf>;
+--
+1.8.3.2
+
diff --git a/patches.tizen/0051-ARM-dts-Add-camera-device-nodes-for-PQ-board.patch b/patches.tizen/0051-ARM-dts-Add-camera-device-nodes-for-PQ-board.patch
new file mode 100644
index 0000000..fe7c638
--- /dev/null
+++ b/patches.tizen/0051-ARM-dts-Add-camera-device-nodes-for-PQ-board.patch
@@ -0,0 +1,225 @@
+From b58b47b20440051cb5351aad2f25acbce85e7e09 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Wed, 6 Feb 2013 18:34:42 +0100
+Subject: [PATCH 0051/1302] ARM: dts: Add camera device nodes for PQ board
+
+This patch adds all nodes for camera devices on an example Exynos4412 SoC
+based board. This is all what's required in the board dts file to enable
+rear facing camera (S5C73M3 sensor).
+
+The aliases node contains entries required for the camera processing
+data path entity drivers.
+
+The sensor nodes use standard port/remote-endpoint nodes convention.
+Internal SoC links between entities are not specified this way and
+are coded in the driver instead.
+
+The S5C73M3 sensor uses two control buses: I2C and SPI. There are
+two, i2c_0 and spi_1 bus controller child nodes assigned to it.
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 173 ++++++++++++++++++++++++++++++++
+ 1 file changed, 173 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+index e28bc60..fa47f9a 100644
+--- a/arch/arm/boot/dts/exynos4412-slp_pq.dts
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -113,6 +113,35 @@
+ };
+ };
+
++ i2c_0: i2c@13860000 {
++ samsung,i2c-sda-delay = <100>;
++ samsung,i2c-slave-addr = <0x10>;
++ samsung,i2c-max-bus-freq = <400000>;
++ pinctrl-0 = <&i2c0_bus>;
++ pinctrl-names = "default";
++ status = "okay";
++
++ s5c73m3@3c {
++ compatible = "samsung,s5c73m3";
++ reg = <0x3c>;
++ gpios = <&gpm0 1 1>, /* ISP_STANDBY */
++ <&gpf1 3 1>; /* ISP_RESET */
++ vdd-int-supply = <&buck9_reg>;
++ vddio-cis-supply = <&ldo9_reg>;
++ vdda-supply = <&ldo17_reg>;
++ vddio-host-supply = <&ldo18_reg>;
++ vdd-af-supply = <&cam_af_reg>;
++ vdd-reg-supply = <&cam_io_reg>;
++ clock-frequency = <24000000>;
++
++ port {
++ s5c73m3_ep: endpoint {
++ remote-endpoint = <&csis0_ep>;
++ };
++ };
++ };
++ };
++
+ i2c@13890000 {
+ samsung,i2c-sda-delay = <100>;
+ samsung,i2c-slave-addr = <0x10>;
+@@ -425,6 +454,34 @@
+ enable-active-high;
+ };
+
++ cam_af_reg: voltage-regulator@2 {
++ compatible = "regulator-fixed";
++ regulator-name = "CAM_AF";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ gpio = <&gpm0 4 0>;
++ enable-active-high;
++ };
++
++ cam_io_reg: voltage-regulator@3 {
++ compatible = "regulator-fixed";
++ regulator-name = "CAM_SENSOR_A";
++ regulator-min-microvolt = <2800000>;
++ regulator-max-microvolt = <2800000>;
++ gpio = <&gpm0 2 0>;
++ enable-active-high;
++ };
++
++ cam_isp_core_reg: voltage-regulator@4 {
++ compatible = "regulator-fixed";
++ regulator-name = "CAM_ISP_CORE_1.2V_EN";
++ regulator-min-microvolt = <1200000>;
++ regulator-max-microvolt = <1200000>;
++ gpio = <&gpm0 3 0>;
++ enable-active-high;
++ regulator-always-on;
++ };
++
+ fimd0_lcd: panel {
+ compatible = "s6e8ax0";
+ reset-gpio = <&gpy4 5 0>;
+@@ -484,4 +541,120 @@
+ vusb_d-supply = <&ldo15_reg>;
+ vusb_a-supply = <&ldo12_reg>;
+ };
++
++ spi_1: spi@13930000 {
++ pinctrl-names = "default";
++ pinctrl-0 = <&spi1_bus>;
++ status = "okay";
++
++ s5c73m3_spi: s5c73m3 {
++ compatible = "samsung,s5c73m3";
++ spi-max-frequency = <50000000>;
++ reg = <0>;
++ controller-data {
++ cs-gpio = <&gpb 5 0>;
++ samsung,spi-feedback-delay = <2>;
++ };
++ };
++ };
++
++ camera {
++ compatible = "samsung,fimc", "simple-bus";
++ status = "okay";
++
++ pinctrl-names = "default", "inactive";
++ pinctrl-0 = <&cam_port_a_clk_active>;
++ pinctrl-1 = <&cam_port_a_clk_idle>;
++
++ fimc_0: fimc@11800000 {
++ clock-frequency = <176000000>;
++ status = "okay";
++ };
++
++ fimc_1: fimc@11810000 {
++ clock-frequency = <176000000>;
++ status = "okay";
++ };
++
++ fimc_2: fimc@11820000 {
++ clock-frequency = <176000000>;
++ status = "okay";
++ };
++
++ fimc_3: fimc@11830000 {
++ clock-frequency = <176000000>;
++ status = "okay";
++ };
++
++ csis_0: csis@11880000 {
++ status = "okay";
++ vddcore-supply = <&ldo8_reg>;
++ vddio-supply = <&ldo10_reg>;
++ clock-frequency = <160000000>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ /* Camera C (3) MIPI CSI-2 (CSIS0) */
++ port@3 {
++ reg = <3>;
++ csis0_ep: endpoint {
++ remote-endpoint = <&s5c73m3_ep>;
++ data-lanes = <1 2 3 4>;
++ samsung,csis-hs-settle = <12>;
++ };
++ };
++ };
++
++ csis_1: csis@11890000 {
++ status = "okay";
++ vddcore-supply = <&ldo8_reg>;
++ vddio-supply = <&ldo10_reg>;
++ clock-frequency = <160000000>;
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ /* Camera D (4) MIPI CSI-2 (CSIS1) */
++ port@4 {
++ reg = <4>;
++ csis1_ep: endpoint {
++ remote-endpoint = <&is_s5k6a3_ep>;
++ data-lanes = <1>;
++ samsung,csis-hs-settle = <18>;
++ samsung,csis-wclk;
++ };
++ };
++ };
++
++ fimc-is@12000000 {
++ status = "okay";
++
++ fimc_lite_0: fimc-lite@12390000 {
++ status = "okay";
++ };
++
++ fimc_lite_1: fimc-lite@123A0000 {
++ status = "okay";
++ };
++
++ fimc-is-i2c@0 {
++ #address-cells = <1>;
++ #size-cells = <0>;
++
++ s5k6a3@10 {
++ compatible = "samsung,s5k6a3";
++ reg = <0x10>;
++ svdda-supply = <&cam_io_reg>;
++ svddio-supply = <&ldo19_reg>;
++ clock-frequency = <24000000>;
++ gpios = <&gpm1 6 0>;
++ port {
++ is_s5k6a3_ep: endpoint {
++ remote-endpoint = <&csis1_ep>;
++ data-lanes = <1>;
++ };
++ };
++ };
++ };
++ };
++ };
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0052-ARM-EXYNOS-change-the-value-of-EXYNOS4X12_ISP_LOWPWR.patch b/patches.tizen/0052-ARM-EXYNOS-change-the-value-of-EXYNOS4X12_ISP_LOWPWR.patch
new file mode 100644
index 0000000..c45bedd
--- /dev/null
+++ b/patches.tizen/0052-ARM-EXYNOS-change-the-value-of-EXYNOS4X12_ISP_LOWPWR.patch
@@ -0,0 +1,34 @@
+From 143103659b069afb92881584f7f3d777a6d8ee6a Mon Sep 17 00:00:00 2001
+From: Younghwan Joo <yhwan.joo@samsung.com>
+Date: Thu, 15 Nov 2012 21:02:27 +0900
+Subject: [PATCH 0052/1302] ARM: EXYNOS: change the value of
+ EXYNOS4X12_ISP_LOWPWR
+
+This patch is to fix the value of EXYNOS4X12_ISP_LOWPWR register
+to zero at AFTR mode. It ensure the sub selection mux of mcuisp400
+and isp200 reset a default position after power down
+
+Signed-off-by: Younghwan Joo <yhwan.joo@samsung.com>
+Signed-off-by: JaeYong Shin <jy2.shin@samsung.com>
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/mach-exynos/pmu.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/arch/arm/mach-exynos/pmu.c b/arch/arm/mach-exynos/pmu.c
+index 97d6885..21cef18 100644
+--- a/arch/arm/mach-exynos/pmu.c
++++ b/arch/arm/mach-exynos/pmu.c
+@@ -140,7 +140,7 @@ static struct exynos_pmu_conf exynos4x12_pmu_config[] = {
+ { S5P_CMU_RESET_MFC_LOWPWR, { 0x1, 0x0, 0x0 } },
+ { S5P_CMU_RESET_G3D_LOWPWR, { 0x1, 0x0, 0x0 } },
+ { S5P_CMU_RESET_LCD0_LOWPWR, { 0x1, 0x0, 0x0 } },
+- { S5P_CMU_RESET_ISP_LOWPWR, { 0x1, 0x0, 0x0 } },
++ { S5P_CMU_RESET_ISP_LOWPWR, { 0x0, 0x0, 0x0 } },
+ { S5P_CMU_RESET_MAUDIO_LOWPWR, { 0x1, 0x1, 0x0 } },
+ { S5P_CMU_RESET_GPS_LOWPWR, { 0x1, 0x0, 0x0 } },
+ { S5P_TOP_BUS_LOWPWR, { 0x3, 0x0, 0x0 } },
+--
+1.8.3.2
+
diff --git a/patches.tizen/0053-ARM-dts-Add-pinctrl-entries-for-FIMC-IS-peripherals.patch b/patches.tizen/0053-ARM-dts-Add-pinctrl-entries-for-FIMC-IS-peripherals.patch
new file mode 100644
index 0000000..77710f7e
--- /dev/null
+++ b/patches.tizen/0053-ARM-dts-Add-pinctrl-entries-for-FIMC-IS-peripherals.patch
@@ -0,0 +1,47 @@
+From 67f415c5868ecfb99ced79a4805cb9cc07c2ce3a Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Mon, 7 Jan 2013 20:27:53 +0100
+Subject: [PATCH 0053/1302] ARM: dts: Add pinctrl entries for FIMC-IS
+ peripherals
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4x12-pinctrl.dtsi | 21 +++++++++++++++++++++
+ 1 file changed, 21 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+index 950ef30..b4919a6 100644
+--- a/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
++++ b/arch/arm/boot/dts/exynos4x12-pinctrl.dtsi
+@@ -904,6 +904,27 @@
+ samsung,pin-pud = <0>;
+ samsung,pin-drv = <0>;
+ };
++
++ fimc_is_i2c0: fimc-is-i2c0 {
++ samsung,pins = "gpm4-0", "gpm4-1";
++ samsung,pin-function = <2>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <0>;
++ };
++
++ fimc_is_i2c1: fimc-is-i2c1 {
++ samsung,pins = "gpm4-2", "gpm4-3";
++ samsung,pin-function = <2>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <0>;
++ };
++
++ fimc_is_uart: fimc-is-uart {
++ samsung,pins = "gpm3-5", "gpm3-7";
++ samsung,pin-function = <3>;
++ samsung,pin-pud = <0>;
++ samsung,pin-drv = <0>;
++ };
+ };
+
+ pinctrl@03860000 {
+--
+1.8.3.2
+
diff --git a/patches.tizen/0054-ARM-dts-Add-pinctrl-property-to-fimc-is-node-for-PQ-.patch b/patches.tizen/0054-ARM-dts-Add-pinctrl-property-to-fimc-is-node-for-PQ-.patch
new file mode 100644
index 0000000..40eebfd
--- /dev/null
+++ b/patches.tizen/0054-ARM-dts-Add-pinctrl-property-to-fimc-is-node-for-PQ-.patch
@@ -0,0 +1,35 @@
+From a6bd16a03a97317a3d79977ced76b0f6b345f553 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Wed, 23 Jan 2013 17:25:56 +0100
+Subject: [PATCH 0054/1302] ARM: dts: Add pinctrl property to fimc-is node for
+ PQ board
+
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4412-slp_pq.dts | 3 +++
+ 1 file changed, 3 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4412-slp_pq.dts b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+index fa47f9a..3ff029f 100644
+--- a/arch/arm/boot/dts/exynos4412-slp_pq.dts
++++ b/arch/arm/boot/dts/exynos4412-slp_pq.dts
+@@ -627,6 +627,8 @@
+
+ fimc-is@12000000 {
+ status = "okay";
++ pinctrl-0 = <&fimc_is_i2c0 &fimc_is_i2c1 &fimc_is_uart>;
++ pinctrl-names = "default";
+
+ fimc_lite_0: fimc-lite@12390000 {
+ status = "okay";
+@@ -637,6 +639,7 @@
+ };
+
+ fimc-is-i2c@0 {
++ /* compatible = "samsung,exynos4212-is-i2c"; */
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+--
+1.8.3.2
+
diff --git a/patches.tizen/0055-ARM-dts-Add-MFC-node-for-Exynos4-SoC-series.patch b/patches.tizen/0055-ARM-dts-Add-MFC-node-for-Exynos4-SoC-series.patch
new file mode 100644
index 0000000..2836ea1
--- /dev/null
+++ b/patches.tizen/0055-ARM-dts-Add-MFC-node-for-Exynos4-SoC-series.patch
@@ -0,0 +1,27 @@
+From d1934f1b374955632b5cc71c2628e048bfe38a5b Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Tue, 29 Jan 2013 14:44:19 +0100
+Subject: [PATCH 0055/1302] ARM: dts: Add MFC node for Exynos4 SoC series
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index 5a3955b..e81937c 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -230,6 +230,8 @@
+ reg = <0x13400000 0x10000>;
+ interrupts = <0 94 0>;
+ samsung,power-domain = <&pd_mfc>;
++ clocks = <&clock 273>, <&clock 170>;
++ clock-names = "mfc", "sclk_mfc";
+ status = "disabled";
+ iommu = <&sysmmu_mfc_l>, <&sysmmu_mfc_r>;
+ };
+--
+1.8.3.2
+
diff --git a/patches.tizen/0056-ARM-dts-Add-camera-clocks-definitions-to-exynos4-x12.patch b/patches.tizen/0056-ARM-dts-Add-camera-clocks-definitions-to-exynos4-x12.patch
new file mode 100644
index 0000000..45af53d
--- /dev/null
+++ b/patches.tizen/0056-ARM-dts-Add-camera-clocks-definitions-to-exynos4-x12.patch
@@ -0,0 +1,122 @@
+From 2804ec5fe10232797945a2fd0239175c88aef877 Mon Sep 17 00:00:00 2001
+From: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Date: Fri, 18 Jan 2013 19:14:50 +0100
+Subject: [PATCH 0056/1302] ARM: dts: Add camera clocks definitions to
+ exynos4/x12.dtsi
+
+Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
+Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com>
+---
+ arch/arm/boot/dts/exynos4.dtsi | 17 +++++++++++++++++
+ arch/arm/boot/dts/exynos4x12.dtsi | 8 ++++++++
+ 2 files changed, 25 insertions(+)
+
+diff --git a/arch/arm/boot/dts/exynos4.dtsi b/arch/arm/boot/dts/exynos4.dtsi
+index e81937c..758e321 100644
+--- a/arch/arm/boot/dts/exynos4.dtsi
++++ b/arch/arm/boot/dts/exynos4.dtsi
+@@ -106,16 +106,23 @@
+
+ camera {
+ compatible = "samsung,fimc", "simple-bus";
++ clocks = <&clock 132>, <&clock 133>, <&clock 351>, <&clock 352>,
++ <&clock 388>, <&clock 389>, <&clock 17>;
++ clock-names = "sclk_cam0", "sclk_cam1", "pxl_async0",
++ "pxl_async1", "mux_cam0", "mux_cam1", "parent";
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
++
+ fimc_0: fimc@11800000 {
+ compatible = "samsung,exynos4210-fimc";
+ reg = <0x11800000 0x1000>;
+ interrupts = <0 84 0>;
+ samsung,power-domain = <&pd_cam>;
++ clocks = <&clock 256>, <&clock 128>, <&clock 384>, <&clock 17>;
++ clock-names = "fimc", "sclk_fimc", "mux", "parent";
+ status = "disabled";
+ };
+
+@@ -124,6 +131,8 @@
+ reg = <0x11810000 0x1000>;
+ interrupts = <0 85 0>;
+ samsung,power-domain = <&pd_cam>;
++ clocks = <&clock 257>, <&clock 129>, <&clock 385>, <&clock 17>;
++ clock-names = "fimc", "sclk_fimc", "mux", "parent";
+ status = "disabled";
+ };
+
+@@ -132,6 +141,8 @@
+ reg = <0x11820000 0x1000>;
+ interrupts = <0 86 0>;
+ samsung,power-domain = <&pd_cam>;
++ clocks = <&clock 258>, <&clock 130>, <&clock 386>, <&clock 17>;
++ clock-names = "fimc", "sclk_fimc", "mux", "parent";
+ status = "disabled";
+ };
+
+@@ -140,6 +151,8 @@
+ reg = <0x11830000 0x1000>;
+ interrupts = <0 87 0>;
+ samsung,power-domain = <&pd_cam>;
++ clocks = <&clock 259>, <&clock 131>, <&clock 387>, <&clock 17>;
++ clock-names = "fimc", "sclk_fimc", "mux", "parent";
+ status = "disabled";
+ };
+
+@@ -149,6 +162,8 @@
+ interrupts = <0 78 0>;
+ bus-width = <4>;
+ samsung,power-domain = <&pd_cam>;
++ clocks = <&clock 260>, <&clock 134>, <&clock 390>, <&clock 17>;
++ clock-names = "csis", "sclk_csis", "mux", "parent";
+ status = "disabled";
+ };
+
+@@ -158,6 +173,8 @@
+ interrupts = <0 80 0>;
+ bus-width = <2>;
+ samsung,power-domain = <&pd_cam>;
++ clocks = <&clock 261>, <&clock 135>, <&clock 391>, <&clock 17>;
++ clock-names = "csis", "sclk_csis", "mux", "parent";
+ status = "disabled";
+ };
+ };
+diff --git a/arch/arm/boot/dts/exynos4x12.dtsi b/arch/arm/boot/dts/exynos4x12.dtsi
+index 3b4a16b..621301c 100644
+--- a/arch/arm/boot/dts/exynos4x12.dtsi
++++ b/arch/arm/boot/dts/exynos4x12.dtsi
+@@ -204,6 +204,10 @@
+ reg = <0x12000000 0x260000>;
+ interrupts = <0 90 0>, <0 95 0>;
+ samsung,power-domain = <&pd_isp>;
++ clocks = <&clock 353>, <&clock 354>, <&clock 355>,
++ <&clock 356>, <&clock 342>, <&clock 17>;
++ clock-names = "flite0", "flite1", "ppmuispx",
++ "ppmuispmx", "sysreg", "mpll";
+ status = "disabled";
+ #address-cells = <1>;
+ #size-cells = <1>;
+@@ -214,6 +218,8 @@
+ reg = <0x12390000 0x1000>;
+ interrupts = <0 105 0>;
+ samsung,power-domain = <&pd_isp>;
++ clocks = <&clock 353>;
++ clock-names = "flite";
+ status = "disabled";
+ };
+
+@@ -222,6 +228,8 @@
+ reg = <0x123A0000 0x1000>;
+ interrupts = <0 106 0>;
+ samsung,power-domain = <&pd_isp>;
++ clocks = <&clock 354>;