On Sat, Jul 28, 2018 at 01:46:07PM +0200, Mark Kettenis wrote:
> For some arm64-related interrupt controller work I need to be able to
> compose a PCIe requester ID.  Since this is a generic PCIe concept
> that might be useful on other architectures (for example for IOMMU
> support), I propose to add a function to the MI PCI code.
> 
> ok?

ok mlarkin

> 
> 
> Index: dev/pci/pci.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/pci.c,v
> retrieving revision 1.111
> diff -u -p -r1.111 pci.c
> --- dev/pci/pci.c     27 Nov 2015 15:28:22 -0000      1.111
> +++ dev/pci/pci.c     28 Jul 2018 11:42:51 -0000
> @@ -659,6 +659,15 @@ pci_get_ht_capability(pci_chipset_tag_t 
>       return (0);
>  }
>  
> +uint16_t
> +pci_requester_id(pci_chipset_tag_t pc, pcitag_t tag)
> +{
> +     int bus, dev, func;
> +
> +     pci_decompose_tag(pc, tag, &bus, &dev, &func);
> +     return ((bus << 8) | (dev << 3) | func);
> +}
> +
>  int
>  pci_find_device(struct pci_attach_args *pa,
>      int (*match)(struct pci_attach_args *))
> Index: dev/pci/pcivar.h
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/pcivar.h,v
> retrieving revision 1.69
> diff -u -p -r1.69 pcivar.h
> --- dev/pci/pcivar.h  8 Aug 2013 17:54:11 -0000       1.69
> +++ dev/pci/pcivar.h  28 Jul 2018 11:42:51 -0000
> @@ -226,7 +226,6 @@ int       pci_mapreg_map(struct pci_attach_arg
>           bus_space_tag_t *, bus_space_handle_t *, bus_addr_t *,
>           bus_size_t *, bus_size_t);
>  
> -
>  int  pci_io_find(pci_chipset_tag_t, pcitag_t, int, bus_addr_t *,
>           bus_size_t *);
>  int  pci_mem_find(pci_chipset_tag_t, pcitag_t, int, bus_addr_t *,
> @@ -236,6 +235,8 @@ int       pci_get_capability(pci_chipset_tag_t
>           int *, pcireg_t *);
>  int  pci_get_ht_capability(pci_chipset_tag_t, pcitag_t, int,
>           int *, pcireg_t *);
> +
> +uint16_t pci_requester_id(pci_chipset_tag_t, pcitag_t);
>  
>  struct pci_matchid {
>       pci_vendor_id_t         pm_vid;
> 

Reply via email to