diff options
author | Yu-Ping Wu <yupingso@chromium.org> | 2021-11-25 14:31:21 +0800 |
---|---|---|
committer | Hung-Te Lin <hungte@chromium.org> | 2021-12-02 08:23:36 +0000 |
commit | 0c9b1deb63483a031d1014b615f1c207e1e250fe (patch) | |
tree | 8b07ea8f93e0dcde0f6480f4983bbb389896c411 /src/drivers/aspeed/common/ast_dp501.c | |
parent | 74033df2bd97a3e407aeffdf2722140f80164b77 (diff) |
drivers/analogix/anx7625: Fix edid_read()
The current implementations of edid_read() and segments_edid_read() have
a few problems:
1. The type of variable `c` is incorrect, not matching the return type
of sp_tx_aux_rd(). In addition, the meaning of `c` is unknown.
2. It is pointless to do `cnt++` when sp_tx_aux_rd() fails.
3. These two functions ignore the return value of
anx7625_reg_block_read().
4. In segments_edid_read(), anx7625_reg_write() might return a positive
value on failure.
Fix all of the 4 issues, and modify the code to be closer to kernel
5.10's implementation (drivers/gpu/drm/bridge/analogix/anx7625.c). Note
that, however, unlike in kernel, anx7625_reg_block_read() here doesn't
return the number of bytes. On success, 0 is returned instead.
In addition, following coreboot's convention, always return negative
error codes. In particular, change the return value to -1 for
edid_read() and segments_edid_read() on failure.
BUG=b:207055969
TEST=emerge-asurada coreboot
BRANCH=none
Change-Id: Ife9d7d97df2926b4581ba519a152c9efed8cd969
Signed-off-by: Yu-Ping Wu <yupingso@chromium.org>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/59540
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Hung-Te Lin <hungte@chromium.org>
Diffstat (limited to 'src/drivers/aspeed/common/ast_dp501.c')
0 files changed, 0 insertions, 0 deletions