Hi Fred, Thanks for the patch.
> -----Original Message----- > From: fred.kon...@greensocs.com [mailto:fred.kon...@greensocs.com] > Sent: Monday, July 06, 2015 9:22 AM > To: qemu-devel@nongnu.org > Cc: peter.mayd...@linaro.org; Peter Crosthwaite; Hyun Kwon; > guillaume.delber...@greensocs.com; mark.bur...@greensocs.com; > fred.kon...@greensocs.com > Subject: [PATCH V3 4/8] introduce dpcd module. > > From: KONRAD Frederic <fred.kon...@greensocs.com> > > This introduces a DPCD module. It wires on a aux-bus and can be accessed > by > driver to get lane-speed, etc. > > Signed-off-by: KONRAD Frederic <fred.kon...@greensocs.com> > --- > default-configs/aarch64-softmmu.mak | 1 + > hw/display/Makefile.objs | 1 + > hw/display/dpcd.c | 157 > ++++++++++++++++++++++++++++++++++++ > hw/display/dpcd.h | 94 +++++++++++++++++++++ > 4 files changed, 253 insertions(+) > create mode 100644 hw/display/dpcd.c > create mode 100644 hw/display/dpcd.h > > diff --git a/default-configs/aarch64-softmmu.mak b/default- > configs/aarch64-softmmu.mak > index d3a2665..87165b7 100644 > --- a/default-configs/aarch64-softmmu.mak > +++ b/default-configs/aarch64-softmmu.mak > @@ -4,4 +4,5 @@ > include arm-softmmu.mak > > CONFIG_AUX=y > +CONFIG_DPCD=y > CONFIG_XLNX_ZYNQMP=y > diff --git a/hw/display/Makefile.objs b/hw/display/Makefile.objs > index dd8ea76..6d7004a 100644 > --- a/hw/display/Makefile.objs > +++ b/hw/display/Makefile.objs > @@ -38,3 +38,4 @@ common-obj-$(CONFIG_QXL) += qxl.o qxl-logger.o qxl- > render.o > obj-$(CONFIG_VIRTIO) += virtio-gpu.o > obj-$(CONFIG_VIRTIO_PCI) += virtio-gpu-pci.o > obj-$(CONFIG_VIRTIO_VGA) += virtio-vga.o > +obj-$(CONFIG_DPCD) += dpcd.o > diff --git a/hw/display/dpcd.c b/hw/display/dpcd.c > new file mode 100644 > index 0000000..cf666f8 > --- /dev/null > +++ b/hw/display/dpcd.c > @@ -0,0 +1,157 @@ > +/* > + * dpcd.c [snip] > + > +static void dpcd_reset(DeviceState *dev) > +{ > + DPCDState *s = DPCD(dev); > + > + memset(&(s->dpcd_info), 0, sizeof(s->dpcd_info)); > + > + s->dpcd_info[DPCD_REVISION] = DPCD_REV_1_0; > + s->dpcd_info[DPCD_MAX_LINK_RATE] = DPCD_5_4GBPS; > + s->dpcd_info[DPCD_MAX_LANE_COUNT] = DPCD_ONE_LANE; In my opinion, it's better to use the maximum value. Thus, I'd use DPCD_FOUR_LANES here. > + s->dpcd_info[DPCD_RECEIVE_PORT0_CAP_0] = DPCD_EDID_PRESENT; > + /* buffer size */ > + s->dpcd_info[DPCD_RECEIVE_PORT0_CAP_1] = 0xFF; > + > + s->dpcd_info[DPCD_LANE0_1_STATUS] = DPCD_LANE0_CR_DONE > + | DPCD_LANE0_CHANNEL_EQ_DONE > + | DPCD_LANE0_SYMBOL_LOCKED; > + > + s->dpcd_info[DPCD_LANE_ALIGN_STATUS_UPDATED] = > DPCD_INTERLANE_ALIGN_DONE; > + s->dpcd_info[DPCD_SINK_STATUS] = DPCD_RECEIVE_PORT_0_STATUS; > +} For some reason, on my set up, this dpcd_reset() functions isn't being called. I had to add it to the dpcd_init() as before. I'm not sure if that is from using different baseline. Please make sure the dpcd is initialized correctly. Thanks, -hyun This email and any attachments are intended for the sole use of the named recipient(s) and contain(s) confidential information that may be proprietary, privileged or copyrighted under applicable law. If you are not the intended recipient, do not read, copy, or forward this email message or any attachments. Delete this email message and any attachments immediately.