|
Edited by jernej at 2016-3-8 23:04
You are correct. I also decompiled binary blobs libhdmi_sun50iw1 and libhdmi_sun8iw11 located in drivers/video/sunxi/disp2/hdmi:
- int bsp_hdmi_cec_get_simple_msg(unsigned char *msg)
- {
- int ret = -1;
- hdmi_write(0x1003Cu, 4u);
- hdmi_write(0x10010u, 0x45u);
- hdmi_write(0x10011u, 0x45u);
- hdmi_write(0x10012u, 0x52u);
- hdmi_write(0x10013u, 0x54u);
- hdmi_write(0x6f3u, 0xffu);
- hdmi_write(0x86f2u, 0xffu);
- hdmi_read(0);
- if(hdmi_read(0x26f4) & 1)
- {
- *msg = hdmi_read(0x26f1);
- hdmi_write(0x26F4u, 0);
- ret = 0;
- }
- hdmi_read(0);
- hdmi_write(0x10010u, 0x52u);
- hdmi_write(0x10011u, 0x54u);
- hdmi_write(0x10012u, 0x41u);
- hdmi_write(0x10013u, 0x57u);
- return ret;
- }
Copy code
Only difference is that libhdmi_sun8iw11 doesn't have lines 10 and 11.
Whole code does kind of sense for me, but I'm not sure why those reads from zero offset are.
You can also find these two defines if you include <mach/platform.h>
- #define SUNXI_HDMI_PBASE 0x01ee0000
- #define SUNXI_HDMI_VBASE IO_ADDRESS(SUNXI_HDMI_PBASE )
Copy code
|
|