Skip to content

Conversation

@System64fumo
Copy link

The previous method used hard coded firmware paths to load the firmware from disk. That works if the driver is built as a module but does not work if baked in.

The proper way to load firmware is with request_firmware which handles both file loading and blobs.

I also noticed that the mt76_get_eeprom_file function wasn't getting called at all due to a seemingly unused variable?

struct device_node *np = dev->dev->of_node;
if (!np)
    return -ENOENT;

Likely a leftover from previous code.
Either way commenting it out seems to work.

I've tested firmware blob loading (baked into the kernel) and that seems to work, Regular file loading should also still work but i've not tested it.

The previous method used hardcoded firmware paths to load the firmware from disk.
That works if the driver is built as a module but does not work if baked in.

The proper way to load firmware is with request_firmware which handles both file loading and blobs.
@frank-w
Copy link
Owner

frank-w commented Feb 6, 2026

afaik mt76_get_eeprom_file should not be called from mt76_get_of_eeprom and leave the check. the node must be checked when loading from devicetree, but file does not need the mt76 node...so the logic has to be changed.

the changes above are because changing kernel_read to request_firmware? patch works for you without crashes, also when file does not exist?

@System64fumo
Copy link
Author

I've not tested it when the file does not exist, I could test that but it should not crash, It would just default back to the missing firmware behavior (The behavior i was experiencing before this)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants