Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

upgrade to linux kernel's character device API (v2 ABI) #5

Merged
merged 5 commits into from
Mar 22, 2024

Conversation

2bndy5
Copy link
Owner

@2bndy5 2bndy5 commented Mar 22, 2024

The Linux kernel has finally started phasing out the old userspace API that used sysfs calls for GPIO pins.

This phased out API has impacted RPi5 since it exposes the GPIO pins in a new way - using a separate RP1 chip attached to PCI Express. Now, the sysfs approach no longer works as conveniently as it did in the past.

The character device API works better and more efficiently with other benefits, namely thread safety, and it is compatible with most Linux distributions.

@2bndy5 2bndy5 added the enhancement New feature or request label Mar 22, 2024
@2bndy5 2bndy5 force-pushed the update-linux-kernel-driver branch from d7e5066 to 8ee27aa Compare March 22, 2024 05:06
Copy link

Memory usage change @ f3ea84f

Board flash % RAM for global variables %
arduino:samd:mkrzero 0 - 0 0.0 - 0.0 0 - 0 0.0 - 0.0
Click for full report table
Board examples/absolute_mode
flash
% examples/absolute_mode
RAM for global variables
% examples/anymeas_mode
flash
% examples/anymeas_mode
RAM for global variables
% examples/relative_mode
flash
% examples/relative_mode
RAM for global variables
%
arduino:samd:mkrzero 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0 0 0.0
Click for full report CSV
Board,examples/absolute_mode<br>flash,%,examples/absolute_mode<br>RAM for global variables,%,examples/anymeas_mode<br>flash,%,examples/anymeas_mode<br>RAM for global variables,%,examples/relative_mode<br>flash,%,examples/relative_mode<br>RAM for global variables,%
arduino:samd:mkrzero,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0,0,0.0

The Linux kernel has finally started phasing out the old userspace API that used sysfs calls for GPIO pins.

This phased out API has impacted RPi5 since it exposes the GPIO pins in a new way - using a separate RP1 chip attached to PCI Express. Now, the sysfs approach no longer works as conveniently as it did in the past.

The character device API works better and more efficiently with other benefits, namely thread safety, and it is compatible with most Linux distributions.
@2bndy5 2bndy5 force-pushed the update-linux-kernel-driver branch from f3ea84f to 6974968 Compare March 22, 2024 06:08
@2bndy5 2bndy5 merged commit 11e05c5 into master Mar 22, 2024
45 checks passed
@2bndy5 2bndy5 deleted the update-linux-kernel-driver branch March 22, 2024 16:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant