[RFC,0/2] Add sideband data extraction
mbox series

Message ID 1499411399-25103-1-git-send-email-srinath.mannam@broadcom.com
Headers show
Series
  • Add sideband data extraction
Related show

Message

Srinath Mannam July 7, 2017, 7:09 a.m. UTC
These patches implements optional DT properties to generate
smaller sideband data from RID which can be further mapped
to MSI Device ID or Stream ID

On some of the systems, sideband data is smaller than RID
(16bits). For such system, sideband data has to be generated
by dropping some of the RID bits

the process of sideband data extracted from RID can be expressed
using optional DT property {iommu/msi}-map-drop-mask.

Example: If drop-mask is 0xFF09 then sideband data is
8 bits bus number followed by 1 bit of device number and
1 bit function number. This means drop-mask=0xFF09 will
convert RID=0x1a10 (16bits) to sideband data 0x6a (10bits).

Srinath Mannam (2):
  dt-bindings: pci: Add drop mask property for MSI and IOMMU
  pcie: sideband data by dropping RID bits

 .../devicetree/bindings/pci/pci-iommu.txt          | 31 ++++++++++++++
 Documentation/devicetree/bindings/pci/pci-msi.txt  | 33 +++++++++++++++
 drivers/iommu/of_iommu.c                           |  4 +-
 drivers/of/irq.c                                   |  3 +-
 drivers/of/of_pci.c                                | 48 ++++++++++++++++++++--
 include/linux/of_pci.h                             |  6 ++-
 6 files changed, 117 insertions(+), 8 deletions(-)

Comments

Mark Rutland July 7, 2017, 1:21 p.m. UTC | #1
On Fri, Jul 07, 2017 at 12:39:57PM +0530, Srinath Mannam wrote:
> These patches implements optional DT properties to generate
> smaller sideband data from RID which can be further mapped
> to MSI Device ID or Stream ID
> 
> On some of the systems, sideband data is smaller than RID
> (16bits). For such system, sideband data has to be generated
> by dropping some of the RID bits
> 
> the process of sideband data extracted from RID can be expressed
> using optional DT property {iommu/msi}-map-drop-mask.
> 
> Example: If drop-mask is 0xFF09 then sideband data is
> 8 bits bus number followed by 1 bit of device number and
> 1 bit function number. This means drop-mask=0xFF09 will
> convert RID=0x1a10 (16bits) to sideband data 0x6a (10bits).

So IIUC, here's you're using this not only to mask bits out, but also to
determine a *shift* to apply to the value, implicitly provided by the
(contiguous) low bits of the mask.

That's really not obvious from the name.

Mark.

> 
> Srinath Mannam (2):
>   dt-bindings: pci: Add drop mask property for MSI and IOMMU
>   pcie: sideband data by dropping RID bits
> 
>  .../devicetree/bindings/pci/pci-iommu.txt          | 31 ++++++++++++++
>  Documentation/devicetree/bindings/pci/pci-msi.txt  | 33 +++++++++++++++
>  drivers/iommu/of_iommu.c                           |  4 +-
>  drivers/of/irq.c                                   |  3 +-
>  drivers/of/of_pci.c                                | 48 ++++++++++++++++++++--
>  include/linux/of_pci.h                             |  6 ++-
>  6 files changed, 117 insertions(+), 8 deletions(-)
> 
> -- 
> 2.7.4
>