Halfway Through My GSoC 2026 Journey with the Linux Foundation
Time flies and I can’t believe I’ve already reached the midway point of Google Summer of Code 2026. Working with the Linux Foundation on Converting Devicetree bindings to DT schema has been an incredible deep-dive into the core of the Linux kernel development ecosystem.
Now that the midterm evaluation is here, it’s the perfect time to reflect on what I’ve achieved since my last update, my experience at Open Source Summit 2026, and what lies ahead for the second half of the summer.
Progress at a Glance: More Than Just Bindings
If the first few weeks were about understanding the workflow and handling simpler bindings, the last few weeks have been about momentum, scaling up, and even diving deep into kernel code to fix underlying bugs. I’ve grown much more comfortable with dt-schema, make dt_binding_check, and interacting with the upstream mailing lists.
Here’s list of bindings converted so far:
-
ASoC: dt-bindings: ti,omap4-dmic: Convert to DT schema
-
dt-bindings: usb: ti,da830-ohci: Convert to DT schema
-
regulator: dt-bindings: tps51632: Convert to DT schema
-
dt-bindings: clock: ti,dm816-fapll-clock: Convert to DT schema
-
dt-bindings: clock: ti,da850-pll: Convert to DT schema
-
regulator: dt-bindigs: ti,pbias-omap: Convert to DT schema
-
dt-bindings: pinctrl: ti,dra7-iodelay: Convert to DT schema
-
dt-bindings: clock: ti,clockdomain: Convert to DT schema
-
dt-bindings: dma: ti,dma-crossbar: Convert to DT schema
-
dt-bindings: iommu: ti,omap-iommu: Convert to DT schema
-
dt-bindings: regulator: mps,mp8859: convert to DT schema
-
dt-bindings: mmc: hisilicon,hi3660-dw-mshc: Convert to DT schema
-
dt-bindings: soc: ti,omap-dmm: Convert to DT schema
-
ti,irq-crossbar: Convert to DT schema
Going Beyond the Schema: Fixing an Upstream Kernel Bug
One of the most exciting developments during this phase was realizing that schema work often leads you directly into the actual driver code. While working on the crossbar bindings, I fixed a critical bug in the irq-crossbar driver.
-
[PATCH v2 1/2] irqchip/crossbar: Use correct index in crossbar_domain_free()
-
[PATCH v2 2/2] irqchip/crossbar: Fix parent domain resource leak
The Problem
In the crossbar driver, crossbar_domain_free() resets the domain data and then uses the nulled-out irq_data->hwirq member as an index to reset the irq_map[] entry and write the relevant crossbar register with a safe entry. That meant it never freed the correct index and kept the crossbar register connection to the source interrupt active.
If it hadn’t reset the domain data, the situation would have been even worse: irq_data->hwirq holds the source interrupt number, but both the map and register index need the corresponding GIC SPI (General Interrupt Controller Shared Peripheral Interrupt) number, not the source interrupt number. This could even result in an out-of-bounds access since the source interrupt number can be higher than the maximal index space.
Also irq_domain_alloc_irqs_parent() is called in allocate_gic_irq() but irq_domain_free_irqs_parent() is never called which causes resource leak.
The Fix
I fixed this issue by modifying the driver to explicitly use the GIC SPI index from the parent domain’s irq_data. and Fixed the resource leak by calling irq_domain_free_irqs_parent() in
crossbar_domain_free().
Open Source Summit Mumbai & Learning from Krzysztof Kozłowski
A major highlight of my GSoC journey so far was attending the Open Source Summit 2026 in Mumbai. Being surrounded by open-source developers, maintainers, and enthusiasts in person was truly inspiring.
I made sure to attend the Devicetree sessions hosted by Krzysztof Kozłowski (one of the primary Devicetree subsystem maintainers). The sessions were eye-opening, but the best part came afterward: I got the chance to speak with Krzysztof directly! We had a great discussion where I was able to ask him specific questions about complex Devicetree bindings and the philosophy behind hardware description in the kernel. Learning from him face-to-face was an unforgettable experience that gave me a much deeper appreciation for the strict review standards in the DT community.
With the midterm evaluation behind me, my focus for the second half of GSoC 2026 is clear Tackle High-Complexity Bindings Move on to remaining text bindings that involve intricate hardware subsystems.
None of this progress would be possible without the continuous, detailed feedback from my mentors. Whether it’s pointing out edge cases in YAML conditional schemas or guiding me through the proper etiquette for submitting driver bug fixes, their feedback has helped me learn so many new things every single week.
I want to extend another massive thank you to my mentors and the Linux Foundation community for their ongoing support, code reviews, and patience. There is still plenty of work left to do, and I’m excited to keep pushing patches!
Signed-off-by: Bhargav Joshi < j.bhargav.u@gmail.com >