aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/iommu
AgeCommit message (Expand)AuthorFilesLines
2 daysMerge branch 'driver-core-next' of https://git.kernel.org/pub/scm/linux/kerne...Mark Brown2-6/+8
2 daysMerge branch 'next' of https://git.kernel.org/pub/scm/linux/kernel/git/iommu/...Mark Brown24-678/+1674
2 daysMerge branch 'for-rc' of https://git.kernel.org/pub/scm/linux/kernel/git/jgg/...Mark Brown1-1/+1
4 daysMerge branches 'fixes', 'arm/smmu/updates', 'arm/smmu/bindings', 'verisilicon...Joerg Roedel24-678/+1674
4 daysiommu/arm-smmu-v3: Allow ATS to be always onNicolin Chen2-9/+73
4 daysiommu/vsi: Use list_for_each_entry()Dan Carpenter1-8/+2
4 daysiommu: vsi: avoid -Wformat-security warningArnd Bergmann1-1/+2
4 daysiommu/amd: Fix premature break in init_iommu_one()Vasant Hegde1-4/+3
4 daysiommu, debugobjects: avoid gcc-16.1 section mismatch warningsArnd Bergmann1-6/+12
7 daysMerge tag 'v7.1-rc5' into driver-core-nextDanilo Krummrich10-158/+366
13 daysiommu/arm-smmu-v3-sva: Enable Hardware Access and Hardware Dirty bitsNicolin Chen1-0/+10
13 daysiommu/arm-smmu-v3: Directly encode TLBI commandsJason Gunthorpe2-134/+71
13 daysiommu/arm-smmu-v3: Directly encode CMDQ_OP_SYNCJason Gunthorpe2-31/+27
13 daysiommu/arm-smmu-v3: Directly encode CMDQ_OP_ATC_INVJason Gunthorpe2-46/+40
13 daysiommu/arm-smmu-v3: Directly encode simple commandsJason Gunthorpe2-168/+148
13 daysiommu/arm-smmu-v3: Remove CMDQ_OP_CFGI_CD_ALL from arm_smmu_cmdq_build_cmd()Jason Gunthorpe1-3/+0
13 daysiommu/arm-smmu-v3: Convert arm_smmu_cmdq_batch cmds to struct arm_smmu_cmdJason Gunthorpe4-53/+58
13 daysiommu/arm-smmu-v3: Use the HW arm_smmu_cmd in cmdq submission functionsJason Gunthorpe1-23/+30
13 daysiommu/arm-smmu-v3: Use the HW arm_smmu_cmd in cmdq selection functionsJason Gunthorpe3-25/+38
13 daysiommu/arm-smmu-v3: Add struct arm_smmu_cmd to represent the HW format commandJason Gunthorpe1-20/+28
13 daysiommu/arm-smmu-v3: Limit queue allocation retry boundary to PAGE_SIZELeo Jiang1-1/+1
13 daysiommu: arm-smmu-qcom: Ensure smmu is powered up in set_ttbr0_cfgAnna Maniscalco1-0/+9
13 daysiommu/arm-smmu-qcom: Add glymur MDSS to ACTLR client tableLokanadha M R1-0/+2
13 daysiommu/arm-smmu-qcom: Fix fastrpc compatible string in ACTLR client match tableBibek Kumar Patro1-1/+1
13 daysiommu/io-pgtable-arm: Use address conversion consistentlyMostafa Saleh1-2/+2
13 daysiommu/io-pgtable-arm: Rework to use the iommu-pages APIMostafa Saleh1-23/+56
13 daysiommu/io-pgtable-arm: Use consistent sizes for page allocation and freeingMostafa Saleh1-5/+6
13 daysiommu/amd: Adhere to IVINFO[VASIZE] for address limitsAnkit Soni4-7/+12
13 daysiommu_pt: add kunit config for 32-bit VA (amdv1_cfg_1)Ankit Soni2-2/+4
13 daysiommu_pt: support small VA for AMDv1Ankit Soni1-4/+0
13 daysiommu_pt: Fix pgsize_bitmap calculation in get_info for smaller vasz'sAnkit Soni2-5/+13
13 daysiommu/riscv: Add NAPOT range invalidation supportJason Gunthorpe2-6/+55
13 daysiommu/riscv: Include the dword number in RISCV_IOMMU_CMD macrosJason Gunthorpe1-51/+51
13 daysiommu/riscv: Add RISCV_IOMMU_CAPABILITIES_NLJason Gunthorpe2-5/+14
13 daysiommu/riscv: Compute best stride for single invalidationJason Gunthorpe1-32/+71
13 daysiommu/riscv: Enable PT_FEAT_DETAILED_GATHER and pass gather to iotlb_invalJason Gunthorpe2-17/+31
13 daysiommupt: Add PT_FEAT_DETAILED_GATHERJason Gunthorpe1-0/+23
13 daysiommupt: Add struct iommupt_pending_gatherJason Gunthorpe1-28/+47
13 daysiommu/vt-d: Simplify calculate_psi_aligned_address()Jason Gunthorpe1-31/+18
2026-05-15iommupt: Fixup build warning by using BIT_ULL() for RISCVPT_NC/IOFangyu Yu1-2/+2
2026-05-15iommupt: Fix the end_index calculation in __map_range_leaf()Jason Gunthorpe1-7/+13
2026-05-15iommupt: Check for missing PAGE_SIZE in the pgsize_bitmapJason Gunthorpe1-2/+2
2026-05-15iommu: Handle unmap error when iommu_debug is enabledJason Gunthorpe1-30/+19
2026-05-15iommu: Fix up map/unmap debugging for iommupt domainsJason Gunthorpe1-21/+22
2026-05-15iommu: Fix loss of errno on map failure for classic opsJason Gunthorpe1-1/+1
2026-05-11iommu/vt-d: Avoid NULL pointer dereference or refcount corruptionZhenzhong Duan1-4/+5
2026-05-11iommu/vt-d: Fix oops due to out of scope accessZhenzhong Duan1-2/+2
2026-05-11iommu/vt-d: Disable DMAR for Intel Q35 IGFXNaval Alcalá1-0/+3
2026-05-11iommu: Warn on premature unblock during DMA aliased sibling resetNicolin Chen1-0/+49
2026-05-11iommu: Fix WARN_ON in __iommu_group_set_domain_nofail() due to resetNicolin Chen1-2/+10
2026-05-11iommu: Fix ATS invalidation timeouts during __iommu_remove_group_pasid()Nicolin Chen1-1/+6
2026-05-11iommu: Fix nested pci_dev_reset_iommu_prepare/done()Nicolin Chen1-6/+13
2026-05-11iommu: Fix pasid attach in pci_dev_reset_iommu_prepare/done()Nicolin Chen1-7/+18
2026-05-11iommu: Replace per-group resetting_domain with per-gdev blocked flagNicolin Chen1-24/+78
2026-05-11iommu: Fix kdocs of pci_dev_reset_iommu_done()Nicolin Chen1-3/+3
2026-05-11iommu: Fix NULL group->domain dereference in pci_dev_reset_iommu_done()Nicolin Chen1-2/+7
2026-05-11iommu/amd: Bounds-check devid in __rlookup_amd_iommu()Jose Fernandez (Anthropic)1-2/+6
2026-05-11iommu/amd: Remove unused IOMMU_IN/OUT_ADDR_BIT_SIZE macrosWei Wang1-3/+0
2026-05-11iommupt: Encode IOMMU_MMIO/IOMMU_CACHE via RISC-V Svpbmt bitsFangyu Yu1-1/+10
2026-05-11iommu/riscv: Advertise Svpbmt support to generic page tableFangyu Yu1-0/+2
2026-05-11iommu: Add verisilicon IOMMU driverBenjamin Gaignard3-0/+808
2026-05-11iommu/amd: Remove latent out-of-bounds access in IOMMU debugfsEder Zulian1-4/+5
2026-05-11iommu/amd: Add support for Hygon family 18h model 4h IOAPICFu Hao1-1/+9
2026-05-11iommu/amd: Remove dead code for exclusion ranges in IVMDYu Zhang3-38/+0
2026-05-11iommu/amd: Fix a stale comment about which legacy mode is user visibleSean Christopherson1-5/+6
2026-05-11iommu/amd: Explicitly bail from enable_iommus_vapic() when in legacy modeSean Christopherson1-4/+6
2026-05-08iommufd: Use sizeof(*hdr) instead of sizeof(hdr) in veventq readKai Aizen1-1/+1
2026-05-04iommu/amd: Fix precedence order in set_dte_passthrough()Weinan Liu1-1/+2
2026-04-27iommu/pages: Fix iommu_pages_flush_incoherent() for non-x86Mostafa Saleh1-1/+1
2026-04-27iommu/amd: Use maximum PPR log buffer size when SNP is enabled on Family 0x19Vasant Hegde4-9/+24
2026-04-27iommu/amd: Use maximum Event log buffer size when SNP is enabled on Family 0x19Vasant Hegde4-38/+86
2026-04-26driver core: Replace dev->dma_iommu with dev_dma_iommu()Douglas Anderson2-6/+8
2026-04-17Merge tag 'dma-mapping-7.1-2026-04-16' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-8/+27
2026-04-16Merge tag 'for-linus-iommufd' of git://git.kernel.org/pub/scm/linux/kernel/gi...Linus Torvalds7-39/+18
2026-04-15Merge tag 'iommu-updates-v7.1' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds35-783/+2023
2026-04-15Merge tag 'drm-next-2026-04-15' of https://gitlab.freedesktop.org/drm/kernelLinus Torvalds2-3/+10
2026-04-11iommufd: Fix a race with concurrent allocation and unmapSina Hassani1-0/+10
2026-04-09Merge tag 'iommu-fixes-v7.0-rc7' of git://git.kernel.org/pub/scm/linux/kernel...Linus Torvalds1-0/+6
2026-04-09Merge branches 'fixes', 'arm/smmu/updates', 'arm/smmu/bindings', 'riscv', 'in...Will Deacon36-785/+2031
2026-04-09iommu: Ensure .iotlb_sync is called correctlyRobin Murphy1-0/+6
2026-04-09iommu/vt-d: Restore IOMMU_CAP_CACHE_COHERENCYAlex Williamson1-0/+1
2026-04-07Merge v7.0-rc7 into drm-nextSimona Vetter2-2/+2
2026-04-02Merge tag 'iommu-fixes-v7.0-rc6' of git://git.kernel.org/pub/scm/linux/kernel...Linus Torvalds2-2/+2
2026-04-02iommu/amd: Invalidate IRT cache for DMA aliasesMagnus Kalland1-5/+23
2026-04-02iommu/riscv: Remove overflows on the invalidation pathJason Gunthorpe1-5/+6
2026-04-02iommu/amd: Fix clone_alias() to use the original device's devidVasant Hegde1-3/+4
2026-04-02iommu/vt-d: Remove the remaining pages along the invalidation pathJason Gunthorpe2-26/+19
2026-04-02iommu/vt-d: Pass size_order to qi_desc_piotlb() not npagesJason Gunthorpe2-14/+9
2026-04-02iommu/vt-d: Split piotlb invalidation into range and allJason Gunthorpe5-47/+39
2026-04-02iommu/vt-d: Remove dmar_writel() and dmar_writeq()Bjorn Helgaas6-30/+27
2026-04-02iommu/vt-d: Remove dmar_readl() and dmar_readq()Bjorn Helgaas7-48/+46
2026-04-02iommu/vt-d: Support dirty tracking on PASIDZhenzhong Duan2-8/+10
2026-04-02iommu/vt-d: Rename device_set_dirty_tracking() and pass dmar_domain pointerZhenzhong Duan1-12/+9
2026-04-02iommu/vt-d: Block PASID attachment to nested domain with dirty trackingZhenzhong Duan1-1/+5
2026-04-01iommu/dma: Always allow DMA-FQ when iommupt provides the iommu_domainJason Gunthorpe3-5/+12
2026-03-31iommufd/selftest: Remove MOCK_IOMMUPT_AMDV1 formatPranjal Shrivastava2-32/+0
2026-03-31iommufd: Fix return value of iommufd_fault_fops_write()Zhenzhong Duan1-2/+3
2026-03-31BackMerge tag 'v7.0-rc6' into drm-nextDave Airlie6-18/+51
2026-03-27iommu/riscv: Fix signedness bugEthan Tidmore1-2/+5
2026-03-27iommupt/amdv1: mark amdv1pt_install_leaf_entry as __always_inlineSherry Yang1-1/+1
2026-03-27iommu/amd: Fix illegal cap/mmio access in IOMMU debugfsGuanghui Feng1-23/+19
2026-03-27iommu/amd: Fix illegal device-id access in IOMMU debugfsGuanghui Feng1-9/+12
2026-03-27iommupt: Fix short gather if the unmap goes into a large mappingJason Gunthorpe1-1/+1
2026-03-26Merge tag 'dma-mapping-7.0-2026-03-25' of git://git.kernel.org/pub/scm/linux/...Linus Torvalds1-4/+17
2026-03-25Merge tag 'dma-mapping-7.0-2026-03-25' into dma-mapping-for-nextMarek Szyprowski1-4/+17
2026-03-25iommufd: update outdated comment for renamed iommufd_hw_pagetable_alloc()Kexin Sun1-1/+1
2026-03-24iommu/tegra241-cmdqv: Set supports_cmd op in tegra241_vcmdq_hw_init()Nicolin Chen1-3/+4
2026-03-24iommu/arm-smmu-v3: Update Arm errataRobin Murphy1-4/+14
2026-03-24iommu/arm-smmu-v3: Fix typos introduced by arm_smmu_invsNicolin Chen2-4/+4
2026-03-24iommu/arm-smmu-v3: Do not continue in __arm_smmu_domain_inv_range()Nicolin Chen1-2/+2
2026-03-20iommu/dma: add support for DMA_ATTR_REQUIRE_COHERENT attributeLeon Romanovsky1-4/+17
2026-03-19iommu/arm-smmu-v3: Perform per-domain invalidations using arm_smmu_invsNicolin Chen3-195/+24
2026-03-19iommu/arm-smmu-v3: Add arm_smmu_invs based arm_smmu_domain_inv_range()Nicolin Chen2-13/+221
2026-03-19iommu/arm-smmu-v3: Populate smmu_domain->invs when attaching mastersNicolin Chen2-1/+278
2026-03-19iommu/arm-smmu-v3: Pre-allocate a per-master invalidation arrayNicolin Chen2-4/+45
2026-03-19iommu/arm-smmu-v3: Introduce a per-domain arm_smmu_invs arrayJason Gunthorpe3-0/+502
2026-03-19iommu/arm-smmu-v3: Add an inline arm_smmu_domain_free()Nicolin Chen3-4/+10
2026-03-19iommu/arm-smmu-v3: Explicitly set smmu_domain->stage for SVANicolin Chen3-0/+5
2026-03-19iommu/arm-smmu-v3: Add a missing dma_wmb() for hitless STE updateNicolin Chen1-0/+7
2026-03-17iommufd: Report ATS not supported status via IOMMU_GET_HW_INFOShameer Kolothum1-0/+4
2026-03-17iommu: Add device ATS supported capabilityShameer Kolothum3-0/+11
2026-03-17iommu/amd: Block identity domain when SNP enabledJoe Damato1-1/+14
2026-03-17iommu/sva: Fix crash in iommu_sva_unbind_device()Lizhi Hou1-6/+6
2026-03-17iommupt: Avoid rewalking during mapJason Gunthorpe4-59/+147
2026-03-17iommupt: Directly call iommupt's unmap_range()Jason Gunthorpe2-31/+25
2026-03-17iommu/riscv: Stop polling when CQCSR reports an errorFangyu Yu1-0/+3
2026-03-17iommu: Fix mapping check for 0x0 to avoid re-mapping itAntheas Kapenekakis1-1/+5
2026-03-17iommu/iova: Add NULL check in iova_magazine_free()lynn1-1/+2
2026-03-17iommu/amd: Add NUMA node affinity for IOMMU log buffersLi RongQing1-3/+6
2026-03-17iommu/vt-d: Only handle IOPF for SVA when PRI is supportedLu Baolu1-4/+8
2026-03-17iommu/vt-d: Fix intel iommu iotlb sync hardlockup and retryGuanghui Feng1-2/+1
2026-03-17iommupt: Optimize the gather processing for DMA-FQ modeJason Gunthorpe1-8/+19
2026-03-17iommu/riscv: Allow RISC_VIOMMU to COMPILE_TESTJason Gunthorpe3-4/+8
2026-03-17iommu/riscv: Add missing GENERIC_MSI_IRQJason Gunthorpe1-0/+1
2026-03-17iommu/riscv: Enable SVNAPOT support for contiguous ptesJason Gunthorpe1-1/+6
2026-03-17iommu/riscv: Use the generic iommu page tableJason Gunthorpe2-251/+39
2026-03-17iommu/riscv: Disable SADEJason Gunthorpe1-6/+0
2026-03-17iommupt: Add the RISC-V page table formatJason Gunthorpe6-0/+367
2026-03-17iommu/riscv: Skip IRQ count check when using MSI interruptsYaxing Guo1-6/+8
2026-03-17iommu/riscv: Add IOTINVAL after updating DDT/PDT entriesFangyu Yu1-0/+70
2026-03-13dma-mapping: Separate DMA sync issuing and completion waitingBarry Song1-8/+27
2026-03-13iommufd/selftest: Fix page leaks in mock_viommu_{init,destroy}Thorsten Blum1-2/+2
2026-03-02iommufd: vfio compatibility extension check for noiommu modeJacob Pan1-1/+1
2026-03-02iommufd: Constify struct dma_buf_attach_opsChristophe JAILLET1-1/+1
2026-02-23iommufd: Add dma_buf_pin()Leon Romanovsky1-1/+8
2026-02-23Merge drm/drm-next into drm-misc-nextMaxime Ripard78-667/+1706
2026-02-22Convert remaining multi-line kmalloc_obj/flex GFP_KERNEL usesKees Cook4-9/+6
2026-02-21Convert more 'alloc_obj' cases to default GFP_KERNEL argumentsLinus Torvalds1-2/+1
2026-02-21Convert 'alloc_flex' family to use the new default GFP_KERNEL argumentLinus Torvalds1-1/+1
2026-02-21Convert 'alloc_obj' family to use the new default GFP_KERNEL argumentLinus Torvalds47-100/+100
2026-02-21treewide: Replace kmalloc with kmalloc_obj for non-scalar typesKees Cook55-149/+145
2026-02-12Merge tag 'riscv-for-linus-7.0-mw1' of git://git.kernel.org/pub/scm/linux/ker...Linus Torvalds1-4/+4
2026-02-12Merge tag 'vfio-v7.0-rc1' of https://github.com/awilliam/linux-vfioLinus Torvalds4-7/+6
2026-02-11Merge tag 'driver-core-7.0-rc1' of git://git.kernel.org/pub/scm/linux/kernel/...Linus Torvalds4-5/+52
2026-02-11Merge tag 'iommu-updates-v7.0' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds33-487/+1485
2026-02-10Merge tag 'x86-irq-2026-02-09' of git://git.kernel.org/pub/scm/linux/kernel/g...Linus Torvalds1-2/+2
2026-02-10Merge tag 'irq-cleanups-2026-02-09' of git://git.kernel.org/pub/scm/linux/ker...Linus Torvalds3-14/+4
2026-02-06Merge branches 'fixes', 'arm/smmu/updates', 'intel/vt-d', 'amd/amd-vi' and 'c...Joerg Roedel33-487/+1485
2026-02-06iommu/vt-d: Treat PAGE_SNOOP and PWSNP separatelyViktor Kleen1-1/+1
2026-02-05Merge drm/drm-next into drm-misc-nextThomas Zimmermann12-28/+76
2026-02-03iommupt: Always add IOVA range to iotlb_gather in gather_range_pages()Yu Zhang1-2/+1
2026-02-03iommu/amd: serialize sequence allocation under concurrent TLB invalidationsAnkit Soni3-8/+14
2026-02-01iommu/amd: Use core's primary handler and set IRQF_ONESHOTSebastian Andrzej Siewior3-14/+4
2026-01-31Merge tag 'iommu-fixes-v6.19-rc7' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds2-1/+13
2026-01-31iommu/tegra241-cmdqv: Reset VCMDQ in tegra241_vcmdq_hw_init_user()Nicolin Chen1-0/+3
2026-01-28iommufd: Initialize batch->kind in batch_clear()Deepanshu Kartikey1-0/+1
2026-01-28iommupt: Only cache flush memory changed by unmapJason Gunthorpe1-1/+10
2026-01-28iommu/amd: Fix type of type parameter to amd_iommufd_hw_info()Nathan Chancellor2-2/+2
2026-01-27dma-buf: Rename dma_buf_move_notify() to dma_buf_invalidate_mappings()Leon Romanovsky1-1/+1
2026-01-27dma-buf: Rename .move_notify() callback to a clearer identifierLeon Romanovsky1-1/+1
2026-01-26Merge tag 'driver-core-6.19-rc7-deferred' into driver-core-nextDanilo Krummrich4-5/+52
2026-01-25iommu/riscv: Simplify maximum determination in riscv_iommu_init_check()Markus Elfring1-4/+4
2026-01-23Merge tag 'iommu-fixes-v6.19-rc6' of git://git.kernel.org/pub/scm/linux/kerne...Linus Torvalds3-4/+3
2026-01-23iommu/arm-smmu-v3: Do not set disable_ats unless vSTE is TranslateNicolin Chen1-1/+3
2026-01-23iommu/arm-smmu-v3-test: Add nested s1bypass/s1dssbypass coverageNicolin Chen1-0/+47
2026-01-23iommu/arm-smmu-v3: Mark EATS_TRANS safe when computing the update sequenceJason Gunthorpe1-0/+26
2026-01-23iommu/arm-smmu-v3: Mark STE MEV safe when computing the update sequenceJason Gunthorpe1-0/+10
2026-01-23iommu/arm-smmu-v3: Add update_safe bits to fix STE update sequenceJason Gunthorpe3-10/+53
2026-01-22iommu/arm-smmu-v3: Add device-tree support for CMDQV driverAshish Mhetre1-0/+32
2026-01-22iommu/tegra241-cmdqv: Decouple driver from ACPINicolin Chen3-74/+14
2026-01-22iommu/arm-smmu-qcom: do not register driver in probe()Danilo Krummrich4-5/+52
2026-01-22iommu/arm-smmu-qcom: Restore ACTLR settings for MDSS on sa8775pBibek Kumar Patro1-0/+2
2026-01-22iommu/vt-d: Fix race condition during PASID entry replacementLu Baolu4-220/+16
2026-01-22iommu/vt-d: Clear Present bit before tearing down context entryLu Baolu3-3/+27
2026-01-22iommu/vt-d: Clear Present bit before tearing down PASID entryLu Baolu2-1/+19
2026-01-22iommu/vt-d: Flush piotlb for SVM and Nested domainYi Liu1-1/+8
2026-01-22iommu/vt-d: Flush cache for PASID table before using itDmytro Maluka1-3/+4
2026-01-22iommu/vt-d: Flush dev-IOTLB only when PCIe device is accessible in scalable modeJinhui Guo1-1/+1
2026-01-22iommu/vt-d: Skip dev-iotlb flush for inaccessible PCIe device without scalabl...Jinhui Guo1-0/+8
2026-01-21iommu: debug-pagealloc: Use page_ext_get_from_phys()Mostafa Saleh1-17/+14
2026-01-20iommu/io-pgtable-arm: fix size_t signedness bug in unmap pathChaitanya Kulkarni1-1/+1
2026-01-20iommupt: Make it clearer to the compiler that pts.level == 0 for single pageJason Gunthorpe1-1/+1
2026-01-20iommu/amd: Remove unused variable in amd_iommufd_viommu_destroy()Suravee Suthikulpanit1-1/+0
2026-01-19Merge tag 'common_phys_vec_via_vfio' into v6.20/vfio/nextAlex Williamson4-7/+6
2026-01-19types: reuse common phys_vec type instead of DMABUF open‑coded variantLeon Romanovsky4-7/+6
2026-01-19iommupt: Do not set C-bit on MMIO backed PTEsWei Wang2-2/+4
2026-01-18iommu/amd: Fix error path in amd_iommu_probe_device()Vasant Hegde1-2/+1
2026-01-18iommu/amd: Add support for nested domain attach/detachSuravee Suthikulpanit1-0/+73
2026-01-18iommu/amd: Refactor logic to program the host page table in DTESuravee Suthikulpanit3-73/+82
2026-01-18iommu/amd: Refactor persistent DTE bits programming into amd_iommu_make_clear...Suravee Suthikulpanit2-11/+13