summaryrefslogtreecommitdiff
path: root/src/amd/compiler/aco_opcodes.py
AgeCommit message (Collapse)AuthorFilesLines
2021-06-09aco: Implement nir_op_sad_u8x4.Timur Kristóf1-2/+6
Fix up the operand size for v_sad instructions, and implement the new NIR horizontal add. There is no viable way to do this in SALU, so let's always use a VGPR destination. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Tony Wasserka <tony.wasserka@gmx.de> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11072>
2021-06-09aco: use ds_read_{u8,u16}_d16Rhys Perry1-8/+8
This allows partial writes and writes to the upper half of the destination. fossil-db (Sienna Cichlid): Totals from 135 (0.09% of 149839) affected shaders: Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11113>
2021-06-09aco: use v1b/v2b for ds_read_u8/ds_read_u16Rhys Perry1-0/+5
The p_extract_vector isn't necessary. For ds_read_u8 and ds_read_u16, we used a 32-bit regclass, but did't load 32 bits, and used dst_hint for vector loads when we shouldn't have. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/4863 Cc: mesa-stable Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/11113>
2021-06-08aco/tests: add SDWA testsRhys Perry1-1/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3151>
2021-06-08aco: add p_extract/p_insertRhys Perry1-0/+8
These will let us make the SDWA optimizer much simpler than if we were to recognize combinations of shift/and/bfe. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3151>
2021-05-18aco: Implement bvh64_intersect_ray_amd intrinsic.Bas Nieuwenhuizen1-0/+1
Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/10818>
2021-03-11aco: add instruction classesRhys Perry1-155/+185
These should mostly match LLVM. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8994>
2021-03-11aco: lower p_constaddr into separate instructions earlierRhys Perry1-1/+5
This allows them to be scheduled properly and simplifies the assembler a little. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8994>
2021-02-17aco: remove special handling of load_helper_invocationDaniel Schürmann1-1/+0
These should now behave the same as is_helper_invocation. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/9058>
2021-01-22aco: remove Format::{VOP3A,VOP3B}Rhys Perry1-3/+2
These are really the same as Format::VOP3. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8595>
2021-01-13aco: create helpers to emit vop3p instructionsDaniel Schürmann1-0/+3
Also make get_alu_src() capable to return unswizzled multi-component SGPR sources. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6680>
2021-01-13aco: fix VOP3P assembly, VN and validationDaniel Schürmann1-24/+25
aco/opcodes: rename v_pk_fma_mix* -> v_fma_mix* and add modifier capabilities for VOP3P. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6680>
2021-01-12aco: simplify and fix operand/definition sizesDaniel Schürmann1-17/+16
These are mainly needed for constant propagation and subdword register allocation. Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/8425>
2020-11-16aco: don't use SMEM for SSBO storesRhys Perry1-2/+0
fossil-db (Navi): Totals from 70 (0.05% of 138791) affected shaders: SGPRs: 2324 -> 2097 (-9.77%) VGPRs: 1344 -> 1480 (+10.12%) CodeSize: 157872 -> 154836 (-1.92%); split: -1.93%, +0.01% MaxWaves: 1288 -> 1260 (-2.17%) Instrs: 29730 -> 29108 (-2.09%); split: -2.13%, +0.04% Cycles: 394944 -> 391280 (-0.93%); split: -0.94%, +0.01% VMEM: 5288 -> 5695 (+7.70%); split: +11.97%, -4.27% SMEM: 2680 -> 2444 (-8.81%); split: +1.34%, -10.15% VClause: 291 -> 502 (+72.51%) SClause: 1176 -> 918 (-21.94%) Copies: 3549 -> 3517 (-0.90%); split: -1.80%, +0.90% Branches: 1230 -> 1228 (-0.16%) PreSGPRs: 1675 -> 1491 (-10.99%) PreVGPRs: 1101 -> 1223 (+11.08%) Totals from 70 (0.05% of 139517) affected shaders (RAVEN): SGPRs: 2368 -> 2121 (-10.43%) VGPRs: 1344 -> 1480 (+10.12%) CodeSize: 156664 -> 153252 (-2.18%) MaxWaves: 636 -> 622 (-2.20%) Instrs: 29968 -> 29226 (-2.48%) Cycles: 398284 -> 393492 (-1.20%) VMEM: 5544 -> 5930 (+6.96%); split: +11.72%, -4.76% SMEM: 2752 -> 2502 (-9.08%); split: +1.20%, -10.28% VClause: 292 -> 504 (+72.60%) SClause: 1236 -> 940 (-23.95%) Copies: 3907 -> 3852 (-1.41%); split: -2.20%, +0.79% Branches: 1230 -> 1228 (-0.16%) PreSGPRs: 1671 -> 1487 (-11.01%) PreVGPRs: 1102 -> 1225 (+11.16%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6143>
2020-11-16aco: remove v_{add,sub,subrev}_u32 on GFX8Samuel Pitoiset1-3/+3
These opcodes are never used and they always write the carry-out according to the GCN3 ISA documentation. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7569>
2020-10-28aco: default to a definition size of 32Rhys Perry1-4/+4
For non-arithmetic opcodes such as buffer_load_dword and buffer_load_short, default to a definition size of 32. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/7276>
2020-10-14aco: use VOP2 for v_cvt_pkrtz_f16_f32 if possibleDaniel Schürmann1-1/+1
This patch also does a slight rework of export_fs_mrt_color() to avoid setting of enabled channels which are not used. Totals from 52404 (38.38% of 136546) affected shaders (NAVI): SGPRs: 3097443 -> 3097435 (-0.00%) CodeSize: 189151600 -> 188546200 (-0.32%) Instrs: 36445061 -> 36445104 (+0.00%); split: -0.00%, +0.00% Cycles: 1739388020 -> 1739388192 (+0.00%); split: -0.00%, +0.00% VMEM: 21071501 -> 21071665 (+0.00%); split: +0.00%, -0.00% SMEM: 3470983 -> 3470982 (-0.00%); split: +0.00%, -0.00% PreSGPRs: 2058965 -> 2058962 (-0.00%) PreVGPRs: 1860294 -> 1860295 (+0.00%) Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6777>
2020-10-14aco: use VOP2 version of v_cvt_pkrtz_f16_f32 on GFX_6_7_10Daniel Schürmann1-1/+2
Totals from 767 (0.56% of 136546) affected shaders (NAVI): CodeSize: 2862208 -> 2850036 (-0.43%) Instrs: 561572 -> 561574 (+0.00%) Cycles: 6455420 -> 6455428 (+0.00%) Reviewed-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6777>
2020-08-04aco: update aco_opcodes.py for GFX10.3Rhys Perry1-2/+13
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5546>
2020-07-30aco: add framework for unit testingRhys Perry1-0/+1
And add some "tests" to test and document currently unused features of the framework. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Acked-by: Daniel Schürmann <daniel@schuermann.dev> Acked-by: Timur Kristóf <timur.kristof@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/3521>
2020-07-28aco: rework barriers and replace can_reorderRhys Perry1-9/+6
fossil-db (Navi): Totals from 273 (0.21% of 132058) affected shaders: CodeSize: 937472 -> 936556 (-0.10%) Instrs: 158874 -> 158648 (-0.14%) Cycles: 13563516 -> 13562612 (-0.01%) VMEM: 85246 -> 85244 (-0.00%) SMEM: 21407 -> 21310 (-0.45%); split: +0.05%, -0.50% VClause: 9321 -> 9317 (-0.04%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4905>
2020-07-21aco: be more careful combining additions that could wrap into loads/storesRhys Perry1-0/+1
SMEM does the addition with 64-bits, not 32. So if the original code relied on wrapping around (for example, for subtraction), it would break. Apparently swizzled MUBUF accesses also have issues with combining additions that could overflow. Normal MUBUF accesses seem fine. fossil-db (Navi): Totals from 27219 (20.02% of 135946) affected shaders: CodeSize: 128303256 -> 131062756 (+2.15%); split: -0.00%, +2.15% Instrs: 24818911 -> 25280558 (+1.86%); split: -0.01%, +1.87% VMEM: 162311926 -> 177226874 (+9.19%); split: +9.36%, -0.17% SMEM: 18182559 -> 20218734 (+11.20%); split: +11.53%, -0.34% VClause: 423635 -> 424398 (+0.18%); split: -0.02%, +0.20% SClause: 865384 -> 1104986 (+27.69%); split: -0.00%, +27.69% Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2748 Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/2720>
2020-07-17aco: fix nir_op_f2f16_rtne with non-default rounding modesRhys Perry1-0/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5773>
2020-07-13aco: read 0 from inactive lanes when using dppRhys Perry1-1/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5695>
2020-07-07aco: use VOP2 version of v_mbcnt_hi_u32_b32 on GFX6/7Rhys Perry1-1/+2
fossil-db (Pitcairn): Totals from 2172 (1.58% of 137414) affected shaders: CodeSize: 7109080 -> 7100100 (-0.13%) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5623>
2020-06-15aco: use 32-bit inline constants for 16-bit integer instructionsRhys Perry1-7/+13
See https://reviews.llvm.org/D81841 Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5245>
2020-06-10aco: add Info::{operand_size,definition_size}Rhys Perry1-0/+31
No shader-db changes. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5040>
2020-06-02aco/gfx10: Refactor of GFX10 wave64 bpermute.Timur Kristóf1-2/+2
The emulated GFX10 wave64 bpermute no longer needs a linear_vgpr, so we don't consider it a reduction anymore. Additionally, the code is slightly reorganized in preparation for the GFX6 emulated bpermute. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/5223>
2020-05-02aco: remove use of f-stringsRhys Perry1-1/+1
f-strings require Python 3.6 but 3.5 is still maintained and used. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Closes: https://gitlab.freedesktop.org/mesa/mesa/-/issues/2839 Fixes: 2ab45f41 ("aco: implement sub-dword swaps") Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4850>
2020-04-28aco: add various GFX10 int16 opcodesRhys Perry1-2/+11
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4772>
2020-04-22aco: implement sub-dword swapsRhys Perry1-0/+9
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4469>
2020-04-22aco: add VOP3P_instructionRhys Perry1-4/+4
The optimizer isn't yet updated to handle this, since lower_to_hw_instr will be the only user for now. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/4469>
2020-01-29aco: Fix the meaning of is_atomic.Timur Kristóf1-6/+6
Previously, is_atomic really meant "is not atomic", contrary to its name. This commit fixes it to mean what one would think it means. Fixes: 69bed1c9186c3e24ad54089218d58c5f7b83befe Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Tested-by: Marge Bot <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3618> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3618>
2020-01-28aco: rework vertex fetching a bitRhys Perry1-3/+1
This will make it easier to skip unused channels at the start and to split unaligned loads on GFX10. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3086>
2020-01-24radv/aco,aco: implement GS on GFX9+Rhys Perry1-1/+3
v2: implement GFX10 v3: rebase v7: rebase after shader args MR v8: fix gs_vtx_offset usage on GFX9/GFX10 v8: use unreachable() instead of printing intrinsic v8: rename output_state to ge_output_state v8: fix formatting around nir_foreach_variable() v8: rename some helpers in the scheduler v8: rename p_memory_barrier_all to p_memory_barrier_common v8: fix assertion comparing ctx.stage against vertex_geometry_gs Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2421>
2020-01-20aco: add new addr64 bit to MUBUF instructions on GFX6-GFX7Samuel Pitoiset1-0/+1
According to the different ISA docs (and to LLVM), this bit seems to only exists on GFX6-GFX7. Signed-off-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Reviewed-By: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3432>
2020-01-14aco: allow input modifiers on v_cndmask_b32Rhys Perry1-1/+5
Totals from affected shaders: SGPRS: 594099 -> 594019 (-0.01 %) VGPRS: 441016 -> 441124 (0.02 %) Spilled SGPRs: 101 -> 101 (0.00 %) Spilled VGPRs: 18 -> 18 (0.00 %) Code Size: 30266652 -> 30125256 (-0.47 %) bytes Max Waves: 67044 -> 67057 (0.02 %) Instructions: 5753097 -> 5726607 (-0.46 %) Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/2883>
2020-01-13aco: don't DCE atomics with return valuesRhys Perry1-8/+9
We don't create atomics with definitions if they are not used in NIR, but our own DCE can remove the uses if an export turns out to be null. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Fixes: 93c8ebfa780 ('aco: Initial commit of independent AMD compiler') Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/merge_requests/3081>
2019-12-07aco: split read/writelane opcode into VOP2/VOP3 version for SI/CIDaniel Schürmann1-2/+4
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
2019-12-07aco: Initial GFX7 SupportDaniel Schürmann1-53/+52
Reviewed-by: Rhys Perry <pendingchaos02@gmail.com>
2019-11-29aco: improve FLAT/GLOBAL schedulingRhys Perry1-0/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-11-29aco: fix GFX10 opcodes for some global/flat atomicsRhys Perry1-6/+6
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-10-28aco: Implement subgroup shuffle in GFX10 wave64 mode.Timur Kristóf1-0/+2
Previously subgroup shuffle was implemented using the bpermute instruction, which only works accross half-waves, so by itself it's not suitable for implementing subgroup shuffle when the shader is running in wave64 mode. This commit adds a trick using shared VGPRs that allows to implement subgroup shuffle still relatively effectively in this mode. Signed-off-by: Timur Kristóf <timur.kristof@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-10-09aco: move s_andn2_b64 instructions out of the p_discard_ifRhys Perry1-0/+1
And use a new p_discard_early_exit instruction. This fixes some cases where a definition having the same register as an operand causes issues. v2: rename instruction to p_exit_early_if v2: modify the existing instruction instead of creating a new one v3: merge the "i == num - 1" IFs Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev>
2019-09-25aco: check for duplicate opcode numbersRhys Perry1-0/+25
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-09-25aco: fix opcode for s_mul_hi_i32Rhys Perry1-1/+1
Fixes dEQP-VK.glsl.builtin.function.integer.imulextended.*_compute Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Daniel Schürmann <daniel@schuermann.dev> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-09-25aco: fix v_subrev_co_u32_e64 opcodeRhys Perry1-1/+1
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-09-25aco: fix GFX9 opcode for v_xad_u32Rhys Perry1-1/+1
Fixes various dEQP-VK.image.store.* tests. Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>
2019-09-19aco: Initial commit of independent AMD compilerDaniel Schürmann1-0/+1552
ACO (short for AMD Compiler) is a new compiler backend with the goal to replace LLVM for Radeon hardware for the RADV driver. ACO currently supports only VS, PS and CS on VI and Vega. There are some optimizations missing because of unmerged NIR changes which may decrease performance. Full commit history can be found at https://github.com/daniel-schuermann/mesa/commits/backend Co-authored-by: Daniel Schürmann <daniel@schuermann.dev> Co-authored-by: Rhys Perry <pendingchaos02@gmail.com> Co-authored-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl> Co-authored-by: Connor Abbott <cwabbott0@gmail.com> Co-authored-by: Michael Schellenberger Costa <mschellenbergercosta@googlemail.com> Co-authored-by: Timur Kristóf <timur.kristof@gmail.com> Acked-by: Samuel Pitoiset <samuel.pitoiset@gmail.com> Acked-by: Bas Nieuwenhuizen <bas@basnieuwenhuizen.nl>