| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/10/27 16:49 | flow | patch-triage |
2mArgs:null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"KMSANReasoning": "",
"NeedsKMSAN": false,
"Reasoning": "The modified code is located in drivers/gpu/drm/mediatek/mtk_hdmi_v2.c, which is a platform driver for the HDMI v2 controller IP found on MediaTek SoCs (MT8188, MT8195). The target architecture is amd64, and the required MediaTek SoC hardware, Device Tree bindings, clocks, and HDMI PHY are not present or emulated in standard virtualized fuzzing environments (QEMU on amd64). Consequently, the device cannot probe and the bridge callbacks cannot be executed, making the code structurally unreachable.",
"WorthFuzzing": false
} |
| 1/1 | 2026/10/27 16:49 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 271b63bcae6a23e2dc796f8d4d0a6bb1eddf90e7\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Tue Oct 27 16:49:14 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c\nindex f0277fcf3345b4..c94d2204221ef3 100644\n--- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c\n+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c\n@@ -1026,6 +1026,8 @@ static void mtk_hdmi_v2_bridge_pre_enable(struct drm_bridge *bridge,\n \n \t/* Retrieve the connector through the atomic state */\n \thdmi-\u003ecurr_conn = drm_atomic_get_new_connector_for_encoder(state, bridge-\u003eencoder);\n+\tif (WARN_ON(!hdmi-\u003ecurr_conn))\n+\t\treturn;\n \n \tconn_state = drm_atomic_get_new_connector_state(state, hdmi-\u003ecurr_conn);\n \tif (WARN_ON(!conn_state))\n"
} |
| 2/1 | 2026/10/27 16:49 | agent | patch-evaluator |
2mModel:core Args: null Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The modified code is located in drivers/gpu/drm/mediatek/mtk_hdmi_v2.c, which is a platform driver for the HDMI v2 controller IP found on MediaTek SoCs (MT8188, MT8195). The target architecture is amd64, and the required MediaTek SoC hardware, Device Tree bindings, clocks, and HDMI PHY are not present or emulated in standard virtualized fuzzing environments (QEMU on amd64). Consequently, the device cannot probe and the bridge callbacks cannot be executed, making the code structurally unreachable.",
"WorthFuzzing": false
}Instruction: You are an expert Linux kernel maintainer and security engineer.
Your job is to review a provided patch series and evaluate whether it warrants fuzzing with syzkaller.
IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in
your workspace. Do NOT rely on internal assumptions. You must actively use your code access
tools to inspect the actual source code, callers, and surrounding context.
================================================================================
1. CORE TRIAGE PHILOSOPHY
================================================================================
The goal of patch fuzzing is to discover crashes, regressions, exposed latent bugs,
and newly triggered assertions introduced by the patch series.
- REACHABILITY IS THE PRIMARY GATE:
Fuzzing can only discover bugs in code that can actually execute in standard virtualized
environments (GCE or QEMU, utilizing software-emulated devices like USB gadgets, netdev, tun/tap).
If the modified code is structurally unreachable (see Section 2), it MUST NOT be fuzzed,
regardless of whether it adds assertions or complex logic.
- DO NOT BLINDLY TRUST "NO FUNCTIONAL CHANGE" (NFCI) OR "REFACTORING" CLAIMS:
Patch authors routinely label changes as "cleanups", "refactorings", or state
"No functional change intended". Do NOT take these claims at face value.
Code refactorings that rearrange logic, introduce helper functions, or alter state management
in core subsystems frequently introduce subtle semantic shifts or uncover latent kernel bugs.
If reachable executable code is modified or refactored, it MUST be fuzzed.
- NEW OR MODIFIED ASSERTIONS IN REACHABLE CODE MUST BE FUZZED:
When a patch introduces or modifies runtime checks or assertions (e.g., WARN_ON*, VM_WARN_ON*,
BUG_ON*, lockdep_assert*) in reachable code paths, it enforces new or stricter invariants.
Even if the author believes the invariant always holds, fuzzing is essential to verify whether
an unusual sequence of operations can violate it.
================================================================================
2. WHEN TO RETURN WorthFuzzing=false (NEGATIVE CRITERIA)
================================================================================
Return WorthFuzzing=false ONLY IF all modified code falls strictly into one or more of these categories:
- Non-kernel and non-executable changes:
* Modifications to Documentation/, comments, or spelling fixes.
* User-space directories, self-tests, samples, or scripts (e.g., tools/, samples/, scripts/, usr/)
that do not affect the compiled kernel image (vmlinux) or kernel modules.
* Purely decorative logging (e.g., message strings in pr_err, printk, dev_info) or tracepoints
that do not alter control flow or data structures.
* Build system or Kconfig changes that do not alter compiled C logic.
- Structurally unreachable hardware:
* Vendor-specific PCIe switches, SmartNICs, or GPU drivers (e.g., mlxsw, pds_core, qed,
ionic, amdgpu) requiring physical ASIC/PCIe cards not emulated in standard QEMU.
- Unreachable execution paths:
* Driver teardown callbacks (.remove, .shutdown, pci_unregister_driver) executed only during
physical PCI hot-unplug or manual sysfs driver unbinding.
* Code paths exclusive to architectures other than the target architecture.
================================================================================
3. WHEN TO RETURN WorthFuzzing=true (POSITIVE CRITERIA)
================================================================================
Return WorthFuzzing=true whenever the patch touches reachable executable code, including:
- Core Subsystems:
* Any logic modifications in memory management (mm/), synchronization/locking (kernel/locking/),
BPF, scheduler, core networking, VFS, or syscall handling.
- Refactorings and Code Cleanups:
* Any restructuring of reachable data structures, helper abstractions, or algorithm flows.
- Runtime Assertions and Defensive Checks:
* Any introduction or alteration of assertions (WARN_ON*, VM_WARN_ON*, BUG_ON*, etc.) in reachable paths.
- Reachable Drivers and Protocols:
* Drivers accessible via virtual buses (virtio, USB gadget, loopback, netlink, binder, sockets, etc.).
================================================================================
4. EXTRACTING FocusSymbols (PREVENTING DILUTION)
================================================================================
When WorthFuzzing=true, you must extract specific kernel functions into FocusSymbols to guide the fuzzer:
- AVOID UBIQUITOUS LIFECYCLE HOT-PATHS:
Do NOT list generic, ubiquitous functions called by almost every program in the corpus
(including, but not limited to: general memory allocators and deallocators, page fault
and trap handlers, or core synchronization primitives; this is not an exhaustive list).
Listing ubiquitous functions causes the fuzzer to classify thousands of unrelated tests as "focused",
which severely dilutes fuzzing effort away from the actual changes.
- TARGET SPECIFIC FEATURE LOGIC AND ENTRYPOINTS:
List functions that specifically implement the logic being added or altered, or direct API entrypoints
for the subsystem feature under review.
- HANDLING STATIC INLINE FUNCTIONS IN HEADERS (.h):
Compiler-inlined static functions (such as static inlines in mm/*.h or include/linux/*.h) lack
distinct symbol addresses in vmlinux and cannot be targeted directly by symbol coverage filters.
If the changes are primarily in static inline helpers, identify non-static, feature-specific caller
functions in .c files that exercise them (avoiding ubiquitous lifecycle wrappers).
================================================================================
5. IDENTIFYING EnableConfigs
================================================================================
Identify any specific CONFIG_ options required to properly compile and reach the modified code:
- Inspect Kconfig files and #ifdef guards; do not make assumptions.
- Check "depends on" lines in Kconfig to include any non-standard parent subsystem configs needed.
- Strip any 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4").
Prefer calling several tools at the same time to save round-trips.
Use set-results tool to provide results of the analysis.
It must be called exactly once before the final reply.
Ignore results of this tool.
Prompt: Target architecture: amd64
For your convenience, here is the diff of the changes:
commit 271b63bcae6a23e2dc796f8d4d0a6bb1eddf90e7
Author: syz-cluster <triage@syzkaller.com>
Date: Tue Oct 27 16:49:14 2026 +0000
syz-cluster: applied patch under review
diff --git a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
index f0277fcf3345b4..c94d2204221ef3 100644
--- a/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
+++ b/drivers/gpu/drm/mediatek/mtk_hdmi_v2.c
@@ -1026,6 +1026,8 @@ static void mtk_hdmi_v2_bridge_pre_enable(struct drm_bridge *bridge,
/* Retrieve the connector through the atomic state */
hdmi->curr_conn = drm_atomic_get_new_connector_for_encoder(state, bridge->encoder);
+ if (WARN_ON(!hdmi->curr_conn))
+ return;
conn_state = drm_atomic_get_new_connector_state(state, hdmi->curr_conn);
if (WARN_ON(!conn_state))
|
| 3/2 | 2026/10/27 16:49 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 3077 output: 37 thoughts: 461 Thoughts: **Analyzing a Patch to the MediaTek HDMI Driver** Okay, so I've got this patch that touches `drivers/gpu/drm/mediatek/mtk_hdmi_v2.c`. My immediate instinct is to dive into the diff. The code change itself is straightforward; it's adding a `WARN_ON` check for `hdmi->curr_conn` in `mtk_hdmi_v2_bridge_pre_enable`. Seems like a safety check, preventing a null pointer dereference, which is good. But before I go any further, I need to understand the context. This is the MediaTek HDMI v2 driver, which means it's likely meant for MediaTek SoCs, typically ARM or ARM64-based. Now, wait a minute... the build target is amd64? That's not right. The MediaTek DRM drivers are usually tied to specific hardware due to their register-level interaction. Can this even *compile* on amd64? This raises a huge red flag. I need to figure out if this patch is even relevant to the current build configuration. Is it being built as a module, or is it expected to be compiled as part of the kernel for a MediaTek SoC? I need to quickly check the Kconfig files for both `mtk_hdmi_v2.c` and `DRM_MEDIATEK` to understand the build dependencies and any architecture-specific checks. Is `DRM_MEDIATEK` enabled under this architecture? If not, this patch is probably irrelevant to the current build. If it *is* enabled, then I need to understand how the driver is supposed to function on an x86_64 system. Something here doesn't add up, and I need to resolve this architecture mismatch before I can meaningfully assess the patch's impact. There is either a bug in the build system or the patch is not intended to be applied on amd64. |
| 4/2 | 2026/10/27 16:49 | tool | grepper |
0mArgs:{
"Expression": "mtk_hdmi_v2",
"PathPrefixes": [
"drivers/gpu/drm/mediatek"
]
}Results: {
"Output": "\nFull output is too long, showing 200 out of 606 lines.\nUse more precise expression or PathPrefixes if possible.\n\nNumber of matching lines per file (3 files in total):\ndrivers/gpu/drm/mediatek/Kconfig:1\ndrivers/gpu/drm/mediatek/Makefile:1\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:200\n\ndrivers/gpu/drm/mediatek/Kconfig=49=config DRM_MEDIATEK_HDMI_V2\n--\ndrivers/gpu/drm/mediatek/Kconfig-57-\t This driver can also be built as a module. If so, the HDMIv2\ndrivers/gpu/drm/mediatek/Kconfig:58:\t module will be called \"mtk_hdmi_v2\", and the DDCv2 module\ndrivers/gpu/drm/mediatek/Kconfig-59-\t will be called \"mtk_hdmi_ddc_v2\".\n--\ndrivers/gpu/drm/mediatek/Makefile=26=obj-$(CONFIG_DRM_MEDIATEK_HDMI) += mtk_hdmi_ddc.o\ndrivers/gpu/drm/mediatek/Makefile:27:obj-$(CONFIG_DRM_MEDIATEK_HDMI_V2) += mtk_hdmi_v2.o\ndrivers/gpu/drm/mediatek/Makefile-28-obj-$(CONFIG_DRM_MEDIATEK_HDMI_V2) += mtk_hdmi_ddc_v2.o\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-44-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:45:enum mtk_hdmi_v2_clk_id {\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-46-\tMTK_HDMI_V2_CLK_HDCP_SEL,\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-52-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:53:static const char *const mtk_hdmi_v2_clk_names[MTK_HDMI_V2_CLK_COUNT] = {\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-54-\t[MTK_HDMI_V2_CLK_HDMI_APB_SEL] = \"bus\",\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-59-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:60:static inline void mtk_hdmi_v2_hwirq_disable(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-61-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-65-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:66:static inline void mtk_hdmi_v2_enable_hpd_pord_irq(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-67-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-73-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:74:static inline void mtk_hdmi_v2_set_sw_hpd(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-75-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-86-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:87:static inline void mtk_hdmi_v2_enable_scrambling(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-88-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-102-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:103:static void mtk_hdmi_v2_hw_vid_mute(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-104-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-111-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:112:static void mtk_hdmi_v2_hw_aud_mute(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-113-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-129-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:130:static void mtk_hdmi_v2_hw_reset(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-131-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-136-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:137:static inline u32 mtk_hdmi_v2_format_hw_packet(const u8 *buffer, u8 len)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-138-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-147-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:148:static int mtk_hdmi_v2_hdmi_write_audio_infoframe(struct drm_bridge *bridge,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-149-\t\t\t\t\t\t const u8 *buffer, size_t len)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-155-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:156:\tregmap_write(hdmi-\u003eregs, TOP_AIF_HEADER, mtk_hdmi_v2_format_hw_packet(\u0026buffer[0], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:157:\tregmap_write(hdmi-\u003eregs, TOP_AIF_PKT00, mtk_hdmi_v2_format_hw_packet(\u0026buffer[3], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:158:\tregmap_write(hdmi-\u003eregs, TOP_AIF_PKT01, mtk_hdmi_v2_format_hw_packet(\u0026buffer[7], 2));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-159-\tregmap_write(hdmi-\u003eregs, TOP_AIF_PKT02, 0);\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-167-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:168:static int mtk_hdmi_v2_hdmi_write_avi_infoframe(struct drm_bridge *bridge,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-169-\t\t\t\t\t\tconst u8 *buffer, size_t len)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-175-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:176:\tregmap_write(hdmi-\u003eregs, TOP_AVI_HEADER, mtk_hdmi_v2_format_hw_packet(\u0026buffer[0], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:177:\tregmap_write(hdmi-\u003eregs, TOP_AVI_PKT00, mtk_hdmi_v2_format_hw_packet(\u0026buffer[3], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:178:\tregmap_write(hdmi-\u003eregs, TOP_AVI_PKT01, mtk_hdmi_v2_format_hw_packet(\u0026buffer[7], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:179:\tregmap_write(hdmi-\u003eregs, TOP_AVI_PKT02, mtk_hdmi_v2_format_hw_packet(\u0026buffer[10], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:180:\tregmap_write(hdmi-\u003eregs, TOP_AVI_PKT03, mtk_hdmi_v2_format_hw_packet(\u0026buffer[14], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-181-\tregmap_write(hdmi-\u003eregs, TOP_AVI_PKT04, 0);\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-189-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:190:static int mtk_hdmi_v2_hdmi_write_spd_infoframe(struct drm_bridge *bridge,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-191-\t\t\t\t\t\tconst u8 *buffer, size_t len)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-197-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:198:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_HEADER, mtk_hdmi_v2_format_hw_packet(\u0026buffer[0], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:199:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT00, mtk_hdmi_v2_format_hw_packet(\u0026buffer[3], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:200:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT01, mtk_hdmi_v2_format_hw_packet(\u0026buffer[7], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:201:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT02, mtk_hdmi_v2_format_hw_packet(\u0026buffer[10], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:202:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT03, mtk_hdmi_v2_format_hw_packet(\u0026buffer[14], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:203:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT04, mtk_hdmi_v2_format_hw_packet(\u0026buffer[17], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:204:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT05, mtk_hdmi_v2_format_hw_packet(\u0026buffer[21], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:205:\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT06, mtk_hdmi_v2_format_hw_packet(\u0026buffer[24], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-206-\tregmap_write(hdmi-\u003eregs, TOP_SPDIF_PKT07, buffer[28]);\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-213-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:214:static int mtk_hdmi_v2_hdmi_write_hdmi_infoframe(struct drm_bridge *bridge,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-215-\t\t\t\t\t\t const u8 *buffer, size_t len)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-221-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:222:\tregmap_write(hdmi-\u003eregs, TOP_VSIF_HEADER, mtk_hdmi_v2_format_hw_packet(\u0026buffer[0], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:223:\tregmap_write(hdmi-\u003eregs, TOP_VSIF_PKT00, mtk_hdmi_v2_format_hw_packet(\u0026buffer[3], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:224:\tregmap_write(hdmi-\u003eregs, TOP_VSIF_PKT01, mtk_hdmi_v2_format_hw_packet(\u0026buffer[7], 2));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-225-\tregmap_write(hdmi-\u003eregs, TOP_VSIF_PKT02, 0);\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c=238=static void mtk_hdmi_yuv420_downsampling(struct mtk_hdmi *hdmi, bool enable)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-264-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:265:static int mtk_hdmi_v2_setup_audio_infoframe(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-266-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-277-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:278:\tmtk_hdmi_v2_hdmi_write_audio_infoframe(\u0026hdmi-\u003ebridge, buffer, sizeof(buffer));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-279-\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-282-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:283:static inline void mtk_hdmi_v2_hw_gcp_avmute(struct mtk_hdmi *hdmi, bool mute)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-284-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-302-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:303:static void mtk_hdmi_v2_hw_ncts_enable(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-304-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-310-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:311:static void mtk_hdmi_v2_hw_aud_set_channel_status(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-312-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-315-\t/* Only the first 5 to 7 bytes of Channel Status contain useful information */\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:316:\tregmap_write(hdmi-\u003eregs, AIP_I2S_CHST0, mtk_hdmi_v2_format_hw_packet(\u0026ch_status[0], 4));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:317:\tregmap_write(hdmi-\u003eregs, AIP_I2S_CHST1, mtk_hdmi_v2_format_hw_packet(\u0026ch_status[4], 3));\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-318-}\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-319-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:320:static void mtk_hdmi_v2_hw_aud_set_ncts(struct mtk_hdmi *hdmi,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-321-\t\t\t\t unsigned int sample_rate,\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-331-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:332:static void mtk_hdmi_v2_hw_aud_enable(struct mtk_hdmi *hdmi, bool enable)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-333-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-339-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:340:static u32 mtk_hdmi_v2_aud_output_channel_map(u8 sd0, u8 sd1, u8 sd2, u8 sd3,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-341-\t\t\t\t\t u8 sd4, u8 sd5, u8 sd6, u8 sd7)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c=359=static void mtk_hdmi_audio_dsd_config(struct mtk_hdmi *hdmi,\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-367-\tif (dsd_bypass)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:368:\t\tchannel_map = mtk_hdmi_v2_aud_output_channel_map(0, 2, 4, 6, 1, 3, 5, 7);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-369-\telse\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:370:\t\tchannel_map = mtk_hdmi_v2_aud_output_channel_map(0, 5, 1, 0, 3, 2, 4, 0);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-371-\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-375-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:376:static inline void mtk_hdmi_v2_hw_i2s_fifo_map(struct mtk_hdmi *hdmi, u32 fifo_mapping)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-377-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-381-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:382:static inline void mtk_hdmi_v2_hw_i2s_ch_number(struct mtk_hdmi *hdmi, u8 chnum)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-383-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-386-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:387:static void mtk_hdmi_v2_hw_i2s_ch_mapping(struct mtk_hdmi *hdmi, u8 chnum, u8 mapping)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-388-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-417-\tfifo_map |= FIELD_PREP(FIFO2_MAP, 2) | FIELD_PREP(FIFO3_MAP, 3);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:418:\tmtk_hdmi_v2_hw_i2s_fifo_map(hdmi, fifo_map);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:419:\tmtk_hdmi_v2_hw_i2s_ch_number(hdmi, bdata);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-420-\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c=476=static inline void mtk_hdmi_i2s_data_direction(struct mtk_hdmi *hdmi, unsigned int is_lsb)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-480-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:481:static inline void mtk_hdmi_v2_hw_audio_type(struct mtk_hdmi *hdmi, unsigned int spdif_i2s)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-482-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-485-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:486:static u8 mtk_hdmi_v2_get_i2s_ch_mapping(struct mtk_hdmi *hdmi, u8 channel_type)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-487-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-556-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:557:static inline void mtk_hdmi_v2_hw_i2s_ch_swap(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-558-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c=563=static void mtk_hdmi_hbr_config(struct mtk_hdmi *hdmi, bool dsd_bypass)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-577-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:578:static inline void mtk_hdmi_v2_hw_spdif_config(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-579-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-593-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:594:static void mtk_hdmi_v2_aud_set_input(struct mtk_hdmi *hdmi)\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-595-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-601-\t/* Write the default output channel map. CH0 maps to SD0, CH1 maps to SD1, etc */\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:602:\tout_ch_map = mtk_hdmi_v2_aud_output_channel_map(0, 1, 2, 3, 4, 5, 6, 7);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-603-\tregmap_write(hdmi-\u003eregs, TOP_AUD_MAP, out_ch_map);\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-619-\t\t\tmtk_hdmi_audio_dsd_config(hdmi, codec_params-\u003echannels, 0);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:620:\t\t\tmtk_hdmi_v2_hw_i2s_ch_mapping(hdmi, codec_params-\u003echannels, 1);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-621-\t\t\tbreak;\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-627-\t\t\tmtk_hdmi_i2s_data_direction(hdmi, 0); /* MSB first */\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:628:\t\t\tmtk_hdmi_v2_hw_audio_type(hdmi, HDMI_AUD_INPUT_I2S);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:629:\t\t\ti2s_ch_map = mtk_hdmi_v2_get_i2s_ch_mapping(hdmi,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-630-\t\t\t\t\t\taud_param-\u003eaud_input_chan_type);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:631:\t\t\tmtk_hdmi_v2_hw_i2s_ch_mapping(hdmi, codec_params-\u003echannels, i2s_ch_map);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:632:\t\t\tmtk_hdmi_v2_hw_i2s_ch_swap(hdmi);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-633-\t\t}\n--\n\n"
} |
| 5/2 | 2026/10/27 16:49 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 10799 output: 37 thoughts: 17 Thoughts: Here's my take on those thoughts: **Checking the Mediatek DRM Driver Configuration** Okay, so I need to dive into the Mediatek Direct Rendering Manager (DRM) driver configuration. My instinct says I should start with the `Kconfig` file, specifically `drivers/gpu/drm/mediatek/Kconfig`. This is where all the build-time options and dependencies for the Mediatek DRM driver are defined, right? I need to understand what's enabled, disabled, and what features are available to configure this correctly. It's a fundamental starting point when dealing with the kernel build system and its configuration options. This Kconfig file will guide my understanding of the driver's capabilities. |
| 6/2 | 2026/10/27 16:49 | tool | read-file |
0mArgs:{
"File": "drivers/gpu/drm/mediatek/Kconfig",
"FirstLine": 1,
"LineCount": 80
}Results: {
"Contents": " 1:\t# SPDX-License-Identifier: GPL-2.0-only\n 2:\tconfig DRM_MEDIATEK\n 3:\t\ttristate \"DRM Support for Mediatek SoCs\"\n 4:\t\tdepends on DRM\n 5:\t\tdepends on ARCH_MEDIATEK || COMPILE_TEST\n 6:\t\tdepends on COMMON_CLK\n 7:\t\tdepends on HAVE_ARM_SMCCC || COMPILE_TEST\n 8:\t\tdepends on OF\n 9:\t\tdepends on MTK_MMSYS\n 10:\t\tselect DRM_CLIENT_SELECTION\n 11:\t\tselect DRM_GEM_DMA_HELPER\n 12:\t\tselect DRM_KMS_HELPER\n 13:\t\tselect DRM_DISPLAY_HELPER\n 14:\t\tselect DRM_BRIDGE_CONNECTOR\n 15:\t\tselect DRM_MIPI_DSI\n 16:\t\tselect DRM_PANEL\n 17:\t\tselect VIDEOMODE_HELPERS\n 18:\t\thelp\n 19:\t\t Choose this option if you have a Mediatek SoCs.\n 20:\t\t The module will be called mediatek-drm\n 21:\t\t This driver provides kernel mode setting and\n 22:\t\t buffer management to userspace.\n 23:\t\n 24:\tconfig DRM_MEDIATEK_DP\n 25:\t\ttristate \"DRM DPTX Support for MediaTek SoCs\"\n 26:\t\tdepends on DRM_MEDIATEK\n 27:\t\tselect DRM_DISPLAY_HELPER\n 28:\t\tselect DRM_DISPLAY_DP_HELPER\n 29:\t\tselect DRM_DISPLAY_DP_AUX_BUS\n 30:\t\thelp\n 31:\t\t DRM/KMS Display Port driver for MediaTek SoCs.\n 32:\t\n 33:\tconfig DRM_MEDIATEK_HDMI_COMMON\n 34:\t\ttristate\n 35:\t\tdepends on DRM_MEDIATEK\n 36:\t\tselect DRM_DISPLAY_HDMI_HELPER\n 37:\t\tselect DRM_DISPLAY_HELPER\n 38:\t\tselect SND_SOC_HDMI_CODEC if SND_SOC\n 39:\t\thelp\n 40:\t\t MediaTek SoC HDMI common library\n 41:\t\n 42:\tconfig DRM_MEDIATEK_HDMI\n 43:\t\ttristate \"DRM HDMI Support for Mediatek SoCs\"\n 44:\t\tdepends on DRM_MEDIATEK\n 45:\t\tselect DRM_MEDIATEK_HDMI_COMMON\n 46:\t\thelp\n 47:\t\t DRM/KMS HDMI driver for Mediatek SoCs\n 48:\t\n 49:\tconfig DRM_MEDIATEK_HDMI_V2\n 50:\t\ttristate \"DRM HDMI v2 IP support for MediaTek SoCs\"\n 51:\t\tdepends on DRM_MEDIATEK\n 52:\t\tselect DRM_MEDIATEK_HDMI_COMMON\n 53:\t\thelp\n 54:\t\t Say yes here to enable support for the HDMIv2 IP and related\n 55:\t\t DDCv2 as found in the MediaTek MT8195, MT8188 SoCs and other\n 56:\t\t variants.\n 57:\t\t This driver can also be built as a module. If so, the HDMIv2\n 58:\t\t module will be called \"mtk_hdmi_v2\", and the DDCv2 module\n 59:\t\t will be called \"mtk_hdmi_ddc_v2\".\n"
} |
| 7/2 | 2026/10/27 16:49 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 11869 output: 21 thoughts: 127 Thoughts: Okay, here's what's going through my head as I review this: **Deep Dive into Mediatek DRM Support** Alright, let's break this down. I'm looking at the `config DRM_MEDIATEK` Kconfig entry. Okay, it's pretty standard so far: a tristate for DRM support on Mediatek SoCs, obviously dependent on the base DRM infrastructure. Makes sense. The `depends on` clauses are typical: architecture-specific checks (`ARCH_MEDIATEK`), clock management (`COMMON_CLK`), secure monitor call support (`HAVE_ARM_SMCCC`), and of course, device tree (`OF`). Everything looks expected... Wait a minute, what's this `depends on MTK_MMSYS`? That's a little less obvious. *Why* is it dependent on Mediatek's multimedia system? I need to understand that dependency fully. It could be significant. Okay, time to dig deeper. I need to get a broader view. I'm going to run a quick grep across the Kconfigs. I want to see *exactly* where `config MTK_MMSYS` is defined and what it depends on itself. That should give me the context I need to fully understand the rationale behind this dependency and its implications for the DRM Mediatek driver. I'm especially interested in whether that MMSYS dependency is optional in any configuration. |
| 8/2 | 2026/10/27 16:49 | tool | grepper |
0mArgs:{
"Expression": "config MTK_MMSYS"
}Results: {
"Output": "drivers/soc/mediatek/Kconfig=58=config MTK_REGULATOR_COUPLER\n--\ndrivers/soc/mediatek/Kconfig-62-\ndrivers/soc/mediatek/Kconfig:63:config MTK_MMSYS\ndrivers/soc/mediatek/Kconfig-64-\ttristate \"MediaTek MMSYS Support\"\n"
} |
| 9/2 | 2026/10/27 16:49 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 12415 output: 36 thoughts: 15 Thoughts: Okay, here's my take on those thoughts, tailored for an expert audience: **Diving into the Mediatek Kconfig** Alright, let's get down to brass tacks. My initial instinct, given the context, is to zero in on `drivers/soc/mediatek/Kconfig`. That's where I expect to find the core configuration options related to Mediatek System-on-Chip (SoC) support within the kernel build system. I'm assuming we're dealing with device driver configurations, so this is the logical starting point. I want to quickly evaluate the available options, dependencies, and any hints about platform-specific configurations. The structure of that Kconfig file will immediately tell me a lot. Are we looking at a monolithic config, or is it broken down by SoC family or device? Are there clear defaults, and can I easily trace the enabling conditions for specific features I'm interested in? Ultimately, I'm expecting this `Kconfig` to serve as the master key to unlocking the Mediatek kernel configuration, and its layout is the first clue. |
| 10/2 | 2026/10/27 16:49 | tool | read-file |
0mArgs:{
"File": "drivers/soc/mediatek/Kconfig",
"FirstLine": 60,
"LineCount": 25
}Results: {
"Contents": " 60:\t\tdefault ARCH_MEDIATEK\n 61:\t\tdepends on REGULATOR\n 62:\t\n 63:\tconfig MTK_MMSYS\n 64:\t\ttristate \"MediaTek MMSYS Support\"\n 65:\t\tdefault ARCH_MEDIATEK\n 66:\t\tdepends on HAS_IOMEM\n 67:\t\tdepends on MTK_CMDQ || MTK_CMDQ=n\n 68:\t\thelp\n 69:\t\t Say yes here to add support for the MediaTek Multimedia\n 70:\t\t Subsystem (MMSYS).\n 71:\t\n 72:\tconfig MTK_SVS\n 73:\t\ttristate \"MediaTek Smart Voltage Scaling(SVS)\"\n 74:\t\tdepends on NVMEM_MTK_EFUSE \u0026\u0026 NVMEM\n 75:\t\thelp\n 76:\t\t The Smart Voltage Scaling(SVS) engine is a piece of hardware\n 77:\t\t which has several controllers(banks) for calculating suitable\n 78:\t\t voltage to different power domains(CPU/GPU/CCI) according to\n 79:\t\t chip process corner, temperatures and other factors. Then DVFS\n 80:\t\t driver could apply SVS bank voltage to PMIC/Buck.\n 81:\t\n 82:\tconfig MTK_SOCINFO\n 83:\t\ttristate \"MediaTek SoC Information\"\n 84:\t\tdefault y\n"
} |
| 11/2 | 2026/10/27 16:49 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 13056 output: 49 thoughts: 80 Thoughts: Here's my thought process, as if I were considering this myself: **Investigating the mtk_hdmi_v2 Driver** Okay, hold on a second. I need to get a better handle on how this `mtk_hdmi_v2` driver actually *works*. My immediate questions are: how does this thing get probed and instantiated? Is it designed as a platform driver? If so, does it strictly depend on the hardware of a MediaTek SoC to function correctly, requiring things like Device Tree nodes, specific clock configurations, and regulator dependencies? Or, can I potentially get it running in a more general environment like QEMU, or even a standard virtualized setup on an amd64 machine? That'd be incredibly useful for initial debugging and testing. Right, time to dive in. Let's start by cracking open `mtk_hdmi_v2.c`. That should give me the answers I'm looking for. |
| 12/2 | 2026/10/27 16:50 | tool | grepper |
0mArgs:{
"Expression": "module_platform_driver|platform_driver",
"PathPrefixes": [
"drivers/gpu/drm/mediatek/mtk_hdmi_v2.c"
]
}Results: {
"Output": "drivers/gpu/drm/mediatek/mtk_hdmi_v2.c=1509=MODULE_DEVICE_TABLE(of, mtk_drm_hdmi_v2_of_ids);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1510-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:1511:static struct platform_driver mtk_hdmi_v2_driver = {\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1512-\t.probe = mtk_hdmi_v2_probe,\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1518-};\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:1519:module_platform_driver(mtk_hdmi_v2_driver);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1520-\n"
} |
| 13/2 | 2026/10/27 16:50 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 13657 output: 48 thoughts: 16 Thoughts: Okay, here's my attempt at summarizing that thought process, keeping in mind the user is an expert: **Diving into `mtk_hdmi_v2_probe`** Alright, time to dig into this `mtk_hdmi_v2_probe` function. I immediately jump to that function as the likely entry point. Let's see what it does. I'm already formulating hypotheses about the likely hardware interaction, the expected initialization flow, and the various error paths this probe function handles. I'm mentally parsing the code, looking for potential areas of concern: resource allocation, clocking setup, interrupt handling, and importantly, any potential interaction with the underlying HDMI PHY. Knowing the Mediatek hardware, I'm expecting some specific patterns to be present, and it's these patterns I'll be looking for in order to understand and verify the overall flow. I'm also anticipating checking for register initialization and any potential quirks related to this specific HDMI controller revision, with the main goal of making sure everything is setup and functioning correctly. |
| 14/2 | 2026/10/27 16:50 | tool | read-file |
0mArgs:{
"File": "drivers/gpu/drm/mediatek/mtk_hdmi_v2.c",
"FirstLine": 1440,
"LineCount": 75
}Results: {
"Contents": "1440:\t\t.interlace_allowed = true,\n1441:\t};\n1442:\t\n1443:\tstatic const struct mtk_hdmi_conf mtk_hdmi_conf_mt8188 = {\n1444:\t\t.ver_conf = \u0026mtk_hdmi_conf_v2,\n1445:\t\t.reg_hdmi_tx_cfg = HDMITX_CONFIG_MT8188\n1446:\t};\n1447:\t\n1448:\tstatic const struct mtk_hdmi_conf mtk_hdmi_conf_mt8195 = {\n1449:\t\t.ver_conf = \u0026mtk_hdmi_conf_v2,\n1450:\t\t.reg_hdmi_tx_cfg = HDMITX_CONFIG_MT8195\n1451:\t};\n1452:\t\n1453:\tstatic int mtk_hdmi_v2_probe(struct platform_device *pdev)\n1454:\t{\n1455:\t\tstruct mtk_hdmi *hdmi;\n1456:\t\tint ret;\n1457:\t\n1458:\t\t/* Populate HDMI sub-devices if present */\n1459:\t\tret = devm_of_platform_populate(\u0026pdev-\u003edev);\n1460:\t\tif (ret)\n1461:\t\t\treturn ret;\n1462:\t\n1463:\t\thdmi = mtk_hdmi_common_probe(pdev);\n1464:\t\tif (IS_ERR(hdmi))\n1465:\t\t\treturn PTR_ERR(hdmi);\n1466:\t\n1467:\t\thdmi-\u003ehpd = HDMI_PLUG_OUT;\n1468:\t\n1469:\t\t/* Disable all HW interrupts at probe stage */\n1470:\t\tmtk_hdmi_v2_hwirq_disable(hdmi);\n1471:\t\n1472:\t\t/*\n1473:\t\t * In case bootloader leaves HDMI enabled before booting, make\n1474:\t\t * sure that any interrupt that was left is cleared by setting\n1475:\t\t * all bits in the INT_CLR registers for all 32+19 interrupts.\n1476:\t\t */\n1477:\t\tregmap_write(hdmi-\u003eregs, TOP_INT_CLR00, GENMASK(31, 0));\n1478:\t\tregmap_write(hdmi-\u003eregs, TOP_INT_CLR01, GENMASK(18, 0));\n1479:\t\n1480:\t\t/* Restore interrupt clearing registers to zero */\n1481:\t\tregmap_write(hdmi-\u003eregs, TOP_INT_CLR00, 0);\n1482:\t\tregmap_write(hdmi-\u003eregs, TOP_INT_CLR01, 0);\n1483:\t\n1484:\t\t/*\n1485:\t\t * Install the ISR but keep it disabled: as the interrupts are\n1486:\t\t * being set up in the .bridge_attach() callback which will\n1487:\t\t * enable both the right HW IRQs and the ISR.\n1488:\t\t */\n1489:\t\tirq_set_status_flags(hdmi-\u003eirq, IRQ_NOAUTOEN);\n1490:\t\tret = devm_request_threaded_irq(\u0026pdev-\u003edev, hdmi-\u003eirq, mtk_hdmi_v2_isr,\n1491:\t\t\t\t\t\tmtk_hdmi_v2_isr_thread,\n1492:\t\t\t\t\t\tIRQ_TYPE_LEVEL_HIGH,\n1493:\t\t\t\t\t\tdev_name(\u0026pdev-\u003edev), hdmi);\n1494:\t\tif (ret)\n1495:\t\t\treturn dev_err_probe(\u0026pdev-\u003edev, ret, \"Cannot request IRQ\\n\");\n1496:\t\n1497:\t\tret = devm_pm_runtime_enable(\u0026pdev-\u003edev);\n1498:\t\tif (ret)\n1499:\t\t\treturn dev_err_probe(\u0026pdev-\u003edev, ret, \"Cannot enable Runtime PM\\n\");\n1500:\t\n1501:\t\treturn 0;\n1502:\t}\n1503:\t\n1504:\tstatic const struct of_device_id mtk_drm_hdmi_v2_of_ids[] = {\n1505:\t\t{ .compatible = \"mediatek,mt8188-hdmi-tx\", .data = \u0026mtk_hdmi_conf_mt8188 },\n1506:\t\t{ .compatible = \"mediatek,mt8195-hdmi-tx\", .data = \u0026mtk_hdmi_conf_mt8195 },\n1507:\t\t{ /* sentinel */ }\n1508:\t};\n1509:\tMODULE_DEVICE_TABLE(of, mtk_drm_hdmi_v2_of_ids);\n1510:\t\n1511:\tstatic struct platform_driver mtk_hdmi_v2_driver = {\n1512:\t\t.probe = mtk_hdmi_v2_probe,\n1513:\t\t.driver = {\n1514:\t\t\t.name = \"mediatek-drm-hdmi-v2\",\n"
} |
| 15/2 | 2026/10/27 16:50 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 15288 output: 38 thoughts: 76 Thoughts: Here's my summary, as though I'm processing this information: **Analyzing the HDMI Driver Initialization** Okay, let's dive into this driver code. I see references to `mtk_drm_hdmi_v2_of_ids` and am immediately drawn to the device IDs it defines: `"mediatek,mt8188-hdmi-tx"` and `"mediatek,mt8195-hdmi-tx"`. That tells me these are the specific Mediatek HDMI transmitter chips this part of the driver is designed to handle. Excellent, that gives me a clear scope. Now, I want to understand the initialization flow, so let's jump right into `mtk_hdmi_common_probe(pdev)`. Time to dissect what this probe function is doing. I'll need to go through it methodically, looking for the crucial steps it takes to bring up the HDMI interface and how it interacts with the underlying hardware and the DRM framework. This is where the real work begins. |
| 16/2 | 2026/10/27 16:50 | tool | grepper |
0mArgs:{
"Expression": "mtk_hdmi_common_probe",
"PathPrefixes": [
"drivers/gpu/drm/mediatek"
]
}Results: {
"Output": "drivers/gpu/drm/mediatek/mtk_hdmi.c=1159=static int mtk_hdmi_probe(struct platform_device *pdev)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi.c-1163-\ndrivers/gpu/drm/mediatek/mtk_hdmi.c:1164:\thdmi = mtk_hdmi_common_probe(pdev);\ndrivers/gpu/drm/mediatek/mtk_hdmi.c-1165-\tif (IS_ERR(hdmi))\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c=361=static int mtk_hdmi_register_audio_driver(struct device *dev)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c-396-\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c:397:struct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev)\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c-398-{\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c-460-}\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c:461:EXPORT_SYMBOL_NS_GPL(mtk_hdmi_common_probe, \"DRM_MTK_HDMI\");\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.c-462-\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.h=193=void mtk_hdmi_bridge_mode_set(struct drm_bridge *bridge,\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.h-195-\t\t\t const struct drm_display_mode *adjusted_mode);\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.h:196:struct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev);\ndrivers/gpu/drm/mediatek/mtk_hdmi_common.h-197-#endif /* _MTK_HDMI_COMMON_H */\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c=1453=static int mtk_hdmi_v2_probe(struct platform_device *pdev)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1462-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:1463:\thdmi = mtk_hdmi_common_probe(pdev);\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1464-\tif (IS_ERR(hdmi))\n"
} |
| 17/2 | 2026/10/27 16:50 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 16344 output: 46 thoughts: 36 Thoughts: Okay, let's dive into this. Here's how I'd approach that kernel code analysis, as though these are my internal thoughts: **Analyzing `mtk_hdmi_common_probe`** Alright, I need to get a handle on how this Mediatek HDMI driver is initialized. The first step is to zero in on the `mtk_hdmi_common_probe` function. That's the likely entry point where the driver starts its setup, especially given the "probe" naming convention we typically see in device driver models. I'm going to quickly flip over to `drivers/gpu/drm/mediatek/mtk_hdmi_common.c` to examine this function's structure. I'm looking for the essential parts: what resources it's claiming, what hardware registers it's initializing, how it's interacting with the Device Tree (DT) or platform data, and how it's setting up the core data structures for the HDMI controller. My immediate thoughts are: I expect to find resource acquisition (IRQ, memory regions), device registration with the DRM subsystem if this is a display driver, and perhaps some clock or power management initialization as part of the overall flow. I also expect to see a call to a function to handle the HDMI hardware setup, to set up the registers on the hardware. It's likely going to be the root of a chain of calls. Time to dive in and confirm my expectations. |
| 18/2 | 2026/10/27 16:50 | tool | read-file |
0mArgs:{
"File": "drivers/gpu/drm/mediatek/mtk_hdmi_common.c",
"FirstLine": 396,
"LineCount": 65
}Results: {
"Contents": " 396:\t\n 397:\tstruct mtk_hdmi *mtk_hdmi_common_probe(struct platform_device *pdev)\n 398:\t{\n 399:\t\tconst struct mtk_hdmi_ver_conf *ver_conf;\n 400:\t\tconst struct mtk_hdmi_conf *hdmi_conf;\n 401:\t\tstruct device *dev = \u0026pdev-\u003edev;\n 402:\t\tstruct mtk_hdmi *hdmi;\n 403:\t\tint ret;\n 404:\t\n 405:\t\thdmi_conf = of_device_get_match_data(dev);\n 406:\t\tif (!hdmi_conf)\n 407:\t\t\treturn ERR_PTR(-ENODEV);\n 408:\t\n 409:\t\tver_conf = hdmi_conf-\u003ever_conf;\n 410:\t\n 411:\t\thdmi = devm_drm_bridge_alloc(dev, struct mtk_hdmi, bridge,\n 412:\t\t\t\t\t\tver_conf-\u003ebridge_funcs);\n 413:\t\tif (IS_ERR(hdmi))\n 414:\t\t\treturn hdmi;\n 415:\t\n 416:\t\thdmi-\u003edev = dev;\n 417:\t\thdmi-\u003econf = hdmi_conf;\n 418:\t\n 419:\t\thdmi-\u003eclk = devm_kcalloc(dev, ver_conf-\u003enum_clocks, sizeof(*hdmi-\u003eclk), GFP_KERNEL);\n 420:\t\tif (!hdmi-\u003eclk)\n 421:\t\t\treturn ERR_PTR(-ENOMEM);\n 422:\t\n 423:\t\tret = mtk_hdmi_dt_parse_pdata(hdmi, pdev, ver_conf-\u003emtk_hdmi_clock_names,\n 424:\t\t\t\t\t ver_conf-\u003enum_clocks);\n 425:\t\tif (ret)\n 426:\t\t\treturn ERR_PTR(ret);\n 427:\t\n 428:\t\thdmi-\u003ephy = devm_phy_get(dev, \"hdmi\");\n 429:\t\tif (IS_ERR(hdmi-\u003ephy))\n 430:\t\t\treturn dev_err_cast_probe(dev, hdmi-\u003ephy, \"Failed to get HDMI PHY\\n\");\n 431:\t\n 432:\t\tmutex_init(\u0026hdmi-\u003eupdate_plugged_status_lock);\n 433:\t\tplatform_set_drvdata(pdev, hdmi);\n 434:\t\n 435:\t\tret = mtk_hdmi_register_audio_driver(dev);\n 436:\t\tif (ret)\n 437:\t\t\treturn dev_err_ptr_probe(dev, ret, \"Cannot register HDMI Audio driver\\n\");\n 438:\t\n 439:\t\thdmi-\u003ebridge.of_node = pdev-\u003edev.of_node;\n 440:\t\thdmi-\u003ebridge.ops = DRM_BRIDGE_OP_DETECT | DRM_BRIDGE_OP_EDID\n 441:\t\t\t\t | DRM_BRIDGE_OP_HPD;\n 442:\t\n 443:\t\t/* Only v2 support OP_HDMI now and it we know that it also support SPD */\n 444:\t\tif (ver_conf-\u003ebridge_funcs-\u003ehdmi_write_avi_infoframe \u0026\u0026\n 445:\t\t ver_conf-\u003ebridge_funcs-\u003ehdmi_clear_avi_infoframe)\n 446:\t\t\thdmi-\u003ebridge.ops |= DRM_BRIDGE_OP_HDMI |\n 447:\t\t\t\t\t DRM_BRIDGE_OP_HDMI_SPD_INFOFRAME;\n 448:\t\n 449:\t\thdmi-\u003ebridge.type = DRM_MODE_CONNECTOR_HDMIA;\n 450:\t\thdmi-\u003ebridge.ddc = hdmi-\u003eddc_adpt;\n 451:\t\thdmi-\u003ebridge.vendor = \"MediaTek\";\n 452:\t\thdmi-\u003ebridge.product = \"On-Chip HDMI\";\n 453:\t\thdmi-\u003ebridge.interlace_allowed = ver_conf-\u003einterlace_allowed;\n 454:\t\n 455:\t\tret = devm_drm_bridge_add(dev, \u0026hdmi-\u003ebridge);\n 456:\t\tif (ret)\n 457:\t\t\treturn dev_err_ptr_probe(dev, ret, \"Failed to add bridge\\n\");\n 458:\t\n 459:\t\treturn hdmi;\n 460:\t}\n"
} |
| 19/2 | 2026/10/27 16:50 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 17885 output: 43 thoughts: 851 Thoughts: **Analyzing the Reachability of MediaTek HDMI Driver Code** Okay, let's break this down. I'm looking at `mtk_hdmi_common_probe` and immediately see that it relies heavily on Device Tree information. Specifically, it needs a Device Tree node with a matching compatible string like `"mediatek,mt8188-hdmi-tx"` or `"mediatek,mt8195-hdmi-tx"`. It parses clock information, registers, and it grabs the MediaTek HDMI PHY. This immediately screams "MediaTek SoC display hardware!" to me. Now, considering the instructions, section 2 flags "structurally unreachable hardware". This includes things like vendor-specific PCIe switches and GPU drivers that require physical hardware not emulated in standard QEMU. That's a good comparison. The target architecture is amd64. Can the code paths for `DRM_MEDIATEK` or `DRM_MEDIATEK_HDMI_V2` even be reached on amd64 in a standard virtualized environment like QEMU or Google Compute Engine? My understanding of QEMU on x86_64/amd64 is that it emulates standard PC hardware: virtio devices, Bochs, Cirrus, Intel i915, and so on. It supports USB, network loopback devices... but it's fundamentally PC-centric. The MediaTek MT8188 and MT8195 are ARM64 SoCs! This is a problem. The MediaTek HDMI controller and the MediaTek SoC MMSYS are ARM-specific on-chip hardware peripherals. QEMU's amd64 implementations (`pc` (i440fx) or `q35` machine types) simply do not emulate this. There is no emulation of MediaTek SoC display IP. Even if `CONFIG_COMPILE_TEST` is enabled, the driver is a platform driver that's matching Device Tree compatible strings. The virtualized hardware *does not* expose any matching compatible strings, the virtualized hardware simply *does not have* such IP. Even on ARM64, QEMU's `virt` machine doesn't emulate the MediaTek MMSYS or MT8188/MT8195 HDMI hardware. That is, the hardware needed to instantiate the platform driver is *absent*. It's *definitely* absent and not emulated on `amd64`. The question becomes, can a platform device be created from userspace to make this work? Can I instantiate a platform device via sysfs, configfs, or some kind of of_unittest? After a moment's reflection, I don't think so. Platform devices are not created arbitrarily. They're tied to the hardware they represent. I don't see any general debugfs/configfs drivers that would allow for the arbitrary creation of platform devices with arbitrary OF nodes. Even if one *could* create such a thing, it would immediately fail `mtk_hdmi_dt_parse_pdata` because it would lack the required Device Tree node with registers, clock information, or a PHY. Furthermore, `mtk_hdmi_v2_bridge_pre_enable` is only called when a DRM atomic commit happens on an attached and probed bridge connector in the MediaTek DRM KMS pipeline. The relevant pieces aren't there. Therefore, `mtk_hdmi_v2_bridge_pre_enable` is unreachable. |
| 20/2 | 2026/10/27 16:51 | tool | grepper |
0mArgs:{
"Expression": "mtk_hdmi_v2_bridge_pre_enable",
"PathPrefixes": [
"drivers/gpu/drm/mediatek"
]
}Results: {
"Output": "drivers/gpu/drm/mediatek/mtk_hdmi_v2.c=1004=static void mtk_hdmi_v2_handle_plugged_change(struct mtk_hdmi *hdmi, bool plugged)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1011-\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:1012:static void mtk_hdmi_v2_bridge_pre_enable(struct drm_bridge *bridge,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1013-\t\t\t\t\t struct drm_atomic_commit *state)\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c=1320=static const struct drm_bridge_funcs mtk_v2_hdmi_bridge_funcs = {\n--\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1324-\t.mode_set = mtk_hdmi_bridge_mode_set,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c:1325:\t.atomic_pre_enable = mtk_hdmi_v2_bridge_pre_enable,\ndrivers/gpu/drm/mediatek/mtk_hdmi_v2.c-1326-\t.atomic_enable = mtk_hdmi_v2_bridge_enable,\n"
} |
| 21/2 | 2026/10/27 16:51 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 19893 output: 47 thoughts: 138 Thoughts: Here's my understanding of the situation, framed as my own thought process: **Analyzing the `mtk_hdmi_v2_bridge_pre_enable` Function** Okay, so I'm looking at this `mtk_hdmi_v2_bridge_pre_enable` function, and it seems to be an `atomic_pre_enable` DRM bridge callback. Right, it's part of the `mtk_v2_hdmi_bridge_funcs` structure. My immediate concern is the preconditions. This thing relies on the bridge being *actively* part of a DRM KMS display pipeline. That tells me a few things immediately. First, I need to confirm the `mtk_hdmi_v2` probe worked correctly. That's a fundamental requirement. Second, the bridge has to have been registered successfully. Lastly, the MediaTek DRM master driver (`mtk_drm_drv`) must have completed binding all necessary components and *actually created* the DRM device node at `/dev/dri/card*`. That's the clincher, the proof of all the earlier work. Given those are the prereqs, I think it's time to dive into `mtk_drm_drv.c` to see precisely how this MediaTek DRM driver orchestrates everything. Gotta understand the master driver's operational flow before I can truly assess this `pre_enable` callback. |
| 22/2 | 2026/10/27 16:51 | tool | grepper |
0mArgs:{
"Expression": "module_platform_driver|platform_driver",
"PathPrefixes": [
"drivers/gpu/drm/mediatek/mtk_drm_drv.c"
]
}Results: {
"Output": "drivers/gpu/drm/mediatek/mtk_drm_drv.c=1269=static const struct dev_pm_ops mtk_drm_pm_ops = {\n--\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c-1273-\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c:1274:static struct platform_driver mtk_drm_platform_driver = {\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c-1275-\t.probe\t= mtk_drm_probe,\n--\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c-1283-\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c:1284:static struct platform_driver * const mtk_drm_drivers[] = {\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c-1285-\t\u0026mtk_disp_aal_driver,\n--\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c-1293-\t\u0026mtk_dpi_driver,\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c:1294:\t\u0026mtk_drm_platform_driver,\ndrivers/gpu/drm/mediatek/mtk_drm_drv.c-1295-\t\u0026mtk_dsi_driver,\n"
} |
| 23/2 | 2026/10/27 16:51 | llm | patch-evaluator |
0mModel:gemini-3.8-flash Args: null Results: null Tokens: input: 20737 output: 155 thoughts: 659 Thoughts: **Unreachable Code Path Analysis: mtk_hdmi_v2_bridge_pre_enable on amd64**
Okay, let's break this down. We're looking at a patch that touches `mtk_hdmi_v2_bridge_pre_enable` within the MediaTek HDMI v2 driver, specifically located in `drivers/gpu/drm/mediatek/mtk_hdmi_v2.c`. My initial assessment, after reviewing the code and the device driver setup, is that this is *definitely* a dead end for fuzzing on amd64. Let's make absolutely sure though.
First, `mtk_drm_drv.c` is the core MediaTek DRM driver, and it's initialized via Device Tree. This driver probes based on matching Device Tree IDs, things like `"mediatek,mt8173-disp-ovl"` and `"mediatek,mt8195-mmsys"`. I know immediately that none of this hardware, or even *close* approximations, exists or is emulated on amd64 in standard QEMU environments. This is a crucial observation. Section 2 of the documentation explicitly states this, listing vendor-specific PCIe switches, NICs, and GPU drivers (like mlxsw, pds_core, qed, ionic, and amdgpu) as structurally unreachable because they need physical ASICs or PCIe cards not simulated in common QEMU setups. This driver fits that profile exactly.
Second, the MT8188 / MT8195 HDMI driver is, as the code itself implies, an SoC-specific display driver designed for MediaTek ARM SoCs. The architecture is key here.
Third, and this reinforces the second point, we're talking about *structurally unreachable* hardware on amd64, especially in standard virtualized environments. The necessary Device Tree nodes, clocks, and the HDMI PHY are all platform-specific to the MediaTek ARM hardware. Without these, the device will never even probe, let alone execute `mtk_hdmi_v2_bridge_pre_enable`.
Therefore, my conclusion, based on this initial analysis, is that `WorthFuzzing=false`. But, let's double-check all aspects of this decision to eliminate any doubts:
* **Virtual Bus/Software Emulation:** Is there *any* virtual bus or software emulation layer that could instantiate this driver? Nope. It's a platform driver using Device Tree (`module_platform_driver(mtk_hdmi_v2_driver)`). The Device Tree is essential for correct and reliable functioning.
* **USB Gadget/Virtio:** Can we load it, trigger it, or otherwise reach it through USB gadget or virtio? Nope. This is directly tied to the underlying SoC hardware and is not reachable via these kinds of interfaces.
* **Target Architecture:** Is it reachable on the target architecture (amd64)? No.
Okay, that confirms the reasoning. Now to verify the arguments for `set-results`:
* `WorthFuzzing`: `false`
* `Reasoning`: We need to be crystal clear. I'll make sure the explanation includes:
* The patch touches `mtk_hdmi_v2_bridge_pre_enable` in `drivers/gpu/drm/mediatek/mtk_hdmi_v2.c`.
* It's an SoC-specific platform driver for the HDMI v2 IP found on MediaTek ARM/ARM64 SoCs (MT8188, MT8195).
* The target architecture is amd64.
* Standard QEMU/virtualized amd64 environments *do not* emulate MediaTek SoCs or their display hardware (MMSYS, HDMI TX controller, PHY).
* The device needs Device Tree nodes, specific clocks, and PHYs to probe; its KMS bridge callbacks won't be executed without physical/emulated MediaTek SoC hardware.
* Therefore, the code is structurally unreachable for fuzzing on amd64.
* `FocusSymbols`: `[]` (We don't need to specify any focus symbols here, since the code isn't reachable, and therefore, it is not worth targeting it for fuzzing)
* `EnableConfigs`: `[]` (We don't need any special configurations.)
With that, I'm confident in calling `set-results`.
|
| 24/2 | 2026/10/27 16:51 | tool | set-results |
0mArgs:{
"EnableConfigs": [],
"FocusSymbols": [],
"Reasoning": "The modified code is located in drivers/gpu/drm/mediatek/mtk_hdmi_v2.c, which is a platform driver for the HDMI v2 controller IP found on MediaTek SoCs (MT8188, MT8195). The target architecture is amd64, and the required MediaTek SoC hardware, Device Tree bindings, clocks, and HDMI PHY are not present or emulated in standard virtualized fuzzing environments (QEMU on amd64). Consequently, the device cannot probe and the bridge callbacks cannot be executed, making the code structurally unreachable.",
"WorthFuzzing": false
}Results: {
"EnableConfigs": null,
"FocusSymbols": [],
"Reasoning": "The modified code is located in drivers/gpu/drm/mediatek/mtk_hdmi_v2.c, which is a platform driver for the HDMI v2 controller IP found on MediaTek SoCs (MT8188, MT8195). The target architecture is amd64, and the required MediaTek SoC hardware, Device Tree bindings, clocks, and HDMI PHY are not present or emulated in standard virtualized fuzzing environments (QEMU on amd64). Consequently, the device cannot probe and the bridge callbacks cannot be executed, making the code structurally unreachable.",
"WorthFuzzing": false
} |
| 25/1 | 2026/10/27 16:51 | action | If |
0mArgs:{
"WorthFuzzing": false
}Results: null |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|