Just a buch of drive-by comments while browsing the code. In general code looks good, especialyl for a v1.
There is a few places that triggers warnings with checkpatch --strict Most looks like things that should be fixed.
Thanks Sam for the review. Will take care of the suggestions in next iteration.
Response inlined below:
+struct pipe_msg_hdr {
- u32 type;
- u32 size; /* size of message after this field */
+} __packed;
+struct hvd_screen_info {
- u16 width;
- u16 height;
+} __packed;
+struct synthvid_msg_hdr {
- u32 type;
- u32 size; /* size of this header + payload after this field*/
Add space before closing "*/"
I wonder what is the difference between what is considered a message and what is considered payload in the above comments. Maybe that just because I do not know this stuff at all and the comment can be ignored.
message = struct pipe_msg_hdr + struct synthvid_msg_hdr + payload
Will try to make it more clear.
+} __packed;
+struct synthvid_version_req {
- u32 version;
+} __packed;
+struct synthvid_version_resp {
- u32 version;
- u8 is_accepted;
- u8 max_video_outputs;
+} __packed;
+struct synthvid_vram_location {
- u64 user_ctx;
- u8 is_vram_gpa_specified;
- u64 vram_gpa;
+} __packed;
Not an alignmnet friendly layout - but I guess the layout is fixed. Same goes in otther places.
Yes nothing can be done for this.
+static int synthvid_update_situation(struct hv_device *hdev, u8 active, u32 bpp,
u32 w, u32 h, u32 pitch)
+{
- struct synthvid_msg msg;
Sometimes synthvid_msg is hv->init_buf. Sometimes a local variable. I wonder why there is a difference.
When a reply is expected, hv->init_buf should be used, though I haven't verified this. Just kept the same logic as in framebuffer driver.