On Sun, 9 Nov 2025 at 13:40, Philippe Mathieu-Daudé <[email protected]> wrote: > > Hi, > > On 6/11/25 15:52, Peter Maydell wrote: > > If the guest writes an invalid or unsupported value to the > > AV_BUF_FORMAT register, currently we abort(). Instead, log this as > > either a guest error or an unimplemented error and continue. > > > > The existing code treats DP_NL_VID_CB_Y0_CR_Y1 as x8b8g8r8 > > via a "case 0" that does not use the enum constant name for some > > reason; we leave that alone beyond adding a comment about the > > weird code. > > > > Documentation of this register seems to be at: > > https://docs.amd.com/r/en-US/ug1087-zynq-ultrascale-registers/AV_BUF_FORMAT-DISPLAY_PORT-Register > > > > Cc: [email protected] > > Resolves: https://gitlab.com/qemu-project/qemu/-/issues/1415 > > Signed-off-by: Peter Maydell <[email protected]> > > --- > > hw/display/xlnx_dp.c | 53 +++++++++++++++++++++++++++++++++++++++----- > > 1 file changed, 48 insertions(+), 5 deletions(-) > > > > diff --git a/hw/display/xlnx_dp.c b/hw/display/xlnx_dp.c > > index c2bf692e7b1..d8119a56292 100644 > > --- a/hw/display/xlnx_dp.c > > +++ b/hw/display/xlnx_dp.c > > @@ -665,14 +665,28 @@ static void xlnx_dp_change_graphic_fmt(XlnxDPState *s) > > case DP_GRAPHIC_BGR888: > > s->g_plane.format = PIXMAN_b8g8r8; > > break; > > + case DP_GRAPHIC_RGBA5551: > > + case DP_GRAPHIC_RGBA4444: > > + case DP_GRAPHIC_8BPP: > > + case DP_GRAPHIC_4BPP: > > + case DP_GRAPHIC_2BPP: > > + case DP_GRAPHIC_1BPP: > > + qemu_log_mask(LOG_UNIMP, "%s: unimplemented graphic format %u", > > + __func__, > > + s->avbufm_registers[AV_BUF_FORMAT] & > > DP_GRAPHIC_MASK); > > + s->g_plane.format = PIXMAN_r8g8b8a8; > > + break; > > default: > > - error_report("%s: unsupported graphic format %u", __func__, > > - s->avbufm_registers[AV_BUF_FORMAT] & DP_GRAPHIC_MASK); > > + qemu_log_mask(LOG_GUEST_ERROR, "%s: invalid graphic format %u", > > + __func__, > > + s->avbufm_registers[AV_BUF_FORMAT] & > > DP_GRAPHIC_MASK); > > + s->g_plane.format = PIXMAN_r8g8b8a8; > > abort(); > > Don't we want to remove this abort() call?
Whoops, yes. (The test case in the bug goes through the LOG_UNIMP arm rather than the LOG_GUEST_ERROR one, so I didn't spot this.) -- PMM
