On Thu, Apr 18, 2024 at 09:55:31PM +0200, Jean Delvare wrote:
> Hi Jerry,
> 
> On Wed, 17 Apr 2024 10:22:56 -0600, Jerry Hoemann wrote:
> > New field: PCI Segment Number.
> > 
> > Signed-off-by: Jerry Hoemann <jerry.hoem...@hpe.com>
> > ---
> >  dmioem.c | 3 +++
> >  1 file changed, 3 insertions(+)
> > 
> > diff --git a/dmioem.c b/dmioem.c
> > index 71bd019..e03d1eb 100644
> > --- a/dmioem.c
> > +++ b/dmioem.c
> > @@ -1345,6 +1345,7 @@ static int dmi_decode_hp(const struct dmi_header *h)
> >                      *  0x0C  | Parent Hub | BYTE  | Instance number of 
> > internal Hub
> >                      *  0x0D  | Port Speed | BYTE  | Enumerated value of 
> > speed configured by BIOS
> >                      *  0x0E  | Device Path| STRING| UEFI Device Path of 
> > USB endpoint
> > +                    *  0x0F  | PCI Seg    | BYTE  | PCI Segment number of 
> > the USB controller
> 
> Are you sure this is a byte? Traditionally the PCI segment number (or
> domain number) is a 16-bit value.



I've asked our firmware team for clarification.


> 
> >                      */
> >                     if (gen < G9) return 0;
> >                     pr_handle_name("%s Proliant USB Port Connector 
> > Correlation Record", company);
> > @@ -1362,6 +1363,8 @@ static int dmi_decode_hp(const struct dmi_header *h)
> >                             pr_attr("Parent Hub Port Instance", "N/A");
> >                     dmi_hp_238_speed("Port Speed Capability", data[0xD]);
> >                     pr_attr("Device Path", "%s", dmi_string(h, data[0xE]));
> > +                   if (h->length < 0x10) break;
> > +                   pr_attr("PCI Segment", "%b", data[0xF]);
> 
> How portable is %b? Your code builds without a warning, but the
> printf() man page does not mention this format at all.


Will fix in verstion 2.

> 
> One suggestion I would have is to add the PCI Segment as a prefix to
> the "PCI Device" field printed before. This would display the PCI
> device the same way "lspci -D" presents them. Something like:
> 
>       if (h->length < 0x10)
>               pr_attr("PCI Device", "%02x:%02x.%x", data[0x6],
>                       data[0x7] >> 3, data[0x7] & 0x7);
>       else
>               pr_attr("PCI Device", "%04x:%02x:%02x.%x",
>                       data[0xF], data[0x6], data[0x7] >> 3,
>                       data[0x7] & 0x7);
> 
> What do you think?

Looks good.  Will update in v2 of patch.


> 
> 
> >                     break;
> >  
> >             case 239:
> 
> Thanks,
> -- 
> Jean Delvare
> SUSE L3 Support

-- 

-----------------------------------------------------------------------------
Jerry Hoemann                  Software Engineer   Hewlett Packard Enterprise
-----------------------------------------------------------------------------

Reply via email to