Skip to content

Hardware Support: OneXPlayer Super X (Full EC, Battery & Turbo Button support) #329

Description

@woutervanelten

Device Information

  • Device Name: OneXPlayer Super X
  • Board Vendor: ONE-NETBOOK
  • Board Name: ONEXPLAYER SUPER X

Status & Working Verification

I have successfully tested the device locally on CachyOS (Kernel 7.1.x) using the oxpec platform driver. With the following modifications, full hardware support (TDP scaling, fan curves, battery charge limiting/bypass, and the Turbo button) is working 10/10.


Required Patches

1. Kernel Driver Modification (drivers/platform/x86/oxpec.c)

The OneXPlayer Super X uses the newer AMD board layout. It needs to be mapped to oxp_mini_amd_pro and added to the battery charging extensions whitelist to expose /sys/class/power_supply/ limits.

DMI Table Addition:

	{
		.matches = {
			DMI_MATCH(DMI_BOARD_VENDOR, "ONE-NETBOOK"),
			DMI_EXACT_MATCH(DMI_BOARD_NAME, "ONEXPLAYER SUPER X"),
		},
		.driver_data = (void *)oxp_mini_amd_pro,
	},

Battery Whitelist Extension (oxp_psy_ext_supported):

static bool oxp_psy_ext_supported(void)
{
	switch (board) {
	case oxp_x1:
	case oxp_g1_i:
	case oxp_g1_a:
	case oxp_fly:
	case oxp_mini_amd_pro: /* Enabled for Super X battery bypass/limits */
		return true;
	default:
		break;
	}
	return false;
}

2. HHD Userspace Modification (Turbo Button Keyboard Macro)

When tt_toggle is set to 1, the physical Turbo button on the Super X does not emit a single scancode (like KEY_PROG1). Instead, the hardware EC emits a simultaneous keyboard macro combo: Ctrl + LeftMeta + LeftAlt.

evtest output logs when pressing the Turbo button:

Event: type 4 (EV_MSC), code 4 (MSC_SCAN), value 14
Event: type 1 (EV_KEY), code 29 (KEY_LEFTCTRL), value 1
Event: type 4 (EV_MSC), code 4 (MSC_SCAN), value 9f
Event: type 1 (EV_KEY), code 125 (KEY_LEFTMETA), value 1
Event: type 4 (EV_MSC), code 4 (MSC_SCAN), value 11
Event: type 1 (EV_KEY), code 56 (KEY_LEFTALT), value 1

Proposed HHD Keyboard Mapping Profile Fix:
HHD needs to intercept this specific combination within the OneXPlayer keyboard/hotkey handling module to trigger the QAM overlay toggle natively:

HOTKEYS = {
    ("ctrl", "meta", "alt"): "toggle_overlay",
}

Everything has been verified and works flawlessly after reloading the driver and restarting hhd.service. Please include this in the next release cycle so all Super X users can benefit out-of-the-box. Thanks for the amazing work on HHD!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions