Not all registers have a write mask with high/low register on rk3568.
Details
Details
Tested via gpioctl(1). This bug effected gpio inputs >= 16 as well as interrupts >= 16
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/arm64/rockchip/rk_gpio.c | ||
---|---|---|
146 | This should be a pointer, instead of copying the struct. |
sys/arm64/rockchip/rk_gpio.c | ||
---|---|---|
146 | Is it better when the struct is only 2 bytes? |
sys/arm64/rockchip/rk_gpio.c | ||
---|---|---|
146 | I don't think it would matter much. At the end of the day the assembly will look very similar once optimized. But in theory, one copies the struct to the stack then reads it's members by dereferencing offsets on the stack, while the other reads it's members by dereferencing offsets on the passed pointer. |
Comment Actions
I don't have the hardware to test this, but cross referencing the documentation, it looks good to me.
sys/arm64/rockchip/rk_gpio.c | ||
---|---|---|
180 | Are we intentionally not preserving the old value here? |