My Work
Linux kernel
As an active member of the Linux kernel community, with over 10 commits (and counting), I have made notable contributions, including:
Extending the SimpleDRM graphics driver to parse the physical dimensions of displays and accurately calculate the DPI value for scaling
Adding device-tree nodes for various components of the PM8226 PMIC used in Qualcomm’s MSM8226 System-on-Chip such as the PON (Power On) device, the VADC (Voltage ADC), the IADC (Current ADC) and the MPPs (Multi-Purpose Pins)
Adding driver support for the CCI (Camera Control Interface) on Qualcomm’s MSM8226 SoC, an I²C bus used to communicate with camera sensors, and nodes for the RPMCC and the MMCC (Multimedia Clock Controller)
Python programming language
I have also contributed to CPython, which is the implementation of the Python programming language, written in C. This provides the interpreter, and also Python’s core libraries. My contributions include:
- Adding support for switching pipes between blocking and non-blocking mode on Windows - this also required modifying Python’s core read and write functions to handle error codes specific to Windows
melonDS
melonDS is a fast and accurate open-source emulator for the Nintendo DS, which allows people to play their old DS games on modern computers. I am a member of the melonDS team, which works on adding new features, reviewing pull requests and resolving issues. Some of my significant contributions are:
Porting it to macOS (both x86-64 and ARM64 architectures), including adding a workaround in assembly code for the Mach-O executable format used
Redesigning the interface for configuring input to make it elegant and easier to use using the Qt framework:
Before After Developing a new interface to view game information, which includes decoding the 5-bit bitmap and 16-bit palette, and repacking it into 32-bit ARGB
Image decoder C code Interface Added battery level emulation utilising low-level bit manipulation in C to configure the registers
Underlying C code Interface
Mainline4Lumia
Mainline4Lumia aims to bring Linux to the Lumia series of phones, which originally ran the Windows Phone operating system. We have booted Linux on many Lumias, mainly ones which use Qualcomm’s MSM8226 processor. I have added support for:
- The accelerometer and magnetometer sensors (which detect the phone’s orientation through movement and the position of the phone relative to the Earth’s magnetic field respectively)
- The LEDs used for the torch and notification light (which for some reason went unused in the stock Windows Phone firmware)
