Module Name: src Committed By: msaitoh Date: Mon May 29 07:09:20 UTC 2017
Modified Files: src/sys/dev/pci: pci_subr.c pcireg.h Log Message: Print MSI Message data in 32bits when the Extended Message Data Capable bit is set. To generate a diff of this commit: cvs rdiff -u -r1.182 -r1.183 src/sys/dev/pci/pci_subr.c cvs rdiff -u -r1.129 -r1.130 src/sys/dev/pci/pcireg.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/pci/pci_subr.c diff -u src/sys/dev/pci/pci_subr.c:1.182 src/sys/dev/pci/pci_subr.c:1.183 --- src/sys/dev/pci/pci_subr.c:1.182 Wed May 24 06:51:27 2017 +++ src/sys/dev/pci/pci_subr.c Mon May 29 07:09:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pci_subr.c,v 1.182 2017/05/24 06:51:27 msaitoh Exp $ */ +/* $NetBSD: pci_subr.c,v 1.183 2017/05/29 07:09:20 msaitoh Exp $ */ /* * Copyright (c) 1997 Zubin D. Dittia. All rights reserved. @@ -40,7 +40,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.182 2017/05/24 06:51:27 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.183 2017/05/29 07:09:20 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_pci.h" @@ -1245,7 +1245,11 @@ pci_conf_print_msi_cap(const pcireg_t *r printf(" Message Address %sregister: 0x%08x\n", "(upper) ", *regs++); } - printf(" Message Data register: 0x%04x\n", *regs & 0xffff); + printf(" Message Data register: "); + if (ctl & PCI_MSI_CTL_EXTMDATA_CAP) + printf("0x%08x\n", *regs); + else + printf("0x%04x\n", *regs & 0xffff); regs++; if (ctl & PCI_MSI_CTL_PERVEC_MASK) { printf(" Vector Mask register: 0x%08x\n", *regs++); Index: src/sys/dev/pci/pcireg.h diff -u src/sys/dev/pci/pcireg.h:1.129 src/sys/dev/pci/pcireg.h:1.130 --- src/sys/dev/pci/pcireg.h:1.129 Wed May 24 06:51:27 2017 +++ src/sys/dev/pci/pcireg.h Mon May 29 07:09:20 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pcireg.h,v 1.129 2017/05/24 06:51:27 msaitoh Exp $ */ +/* $NetBSD: pcireg.h,v 1.130 2017/05/29 07:09:20 msaitoh Exp $ */ /* * Copyright (c) 1995, 1996, 1999, 2000 @@ -674,8 +674,8 @@ typedef u_int8_t pci_revision_t; /* * MSI Message Address is at offset 4. * MSI Message Upper Address (if 64bit) is at offset 8. - * MSI Message data is at offset 8 or 12 and is 16 bits. - * [16 bit reserved field] + * MSI Message data is at offset 8 or 12 and is lower 16 bits. + * MSI Extended Message data is at offset 8 or 12 and is upper 16 bits. * MSI Mask Bits (32 bit field) * MSI Pending Bits (32 bit field) */