21 Jun, 2016

4 commits

  • This iommu uses the armv7 short descriptor format. So use the
    generic ARMV7S pagetable ops instead of rewriting the same stuff
    in the driver.

    Signed-off-by: Sricharan R
    Tested-by: Archit Taneja
    Tested-by: Srinivas Kandagatla
    Signed-off-by: Joerg Roedel

    Sricharan R
     
  • This adds the xlate callback which gets invoked during
    device registration from DT. The master devices gets added
    through this.

    Signed-off-by: Sricharan R
    Tested-by: Archit Taneja
    Tested-by: Srinivas Kandagatla
    Signed-off-by: Joerg Roedel

    Sricharan R
     
  • There are only two functions left in msm_iommu_dev.c. Move it to
    msm_iommu.c and delete the file.

    Signed-off-by: Sricharan R
    Tested-by: Archit Taneja
    Tested-by: Srinivas Kandagatla
    Signed-off-by: Joerg Roedel

    Sricharan R
     
  • The driver currently works based on platform data. Remove this
    and add support for DT. A single master can have multiple ports
    connected to more than one iommu.

    master
    |
    |
    |
    ------------------------
    | |
    IOMMU0 IOMMU1
    | |
    ctx0 ctx1 ctx0 ctx1

    This association of master and iommus/contexts were previously
    represented by platform data parent/child device details. The client
    drivers were responsible for programming all of the iommus/contexts
    for the device. Now while adapting to generic DT bindings we maintain the
    list of iommus, contexts that each master domain is connected to and
    program all of them on attach/detach.

    Signed-off-by: Sricharan R
    Tested-by: Archit Taneja
    Tested-by: Srinivas Kandagatla
    Signed-off-by: Joerg Roedel

    Sricharan R
     

14 Aug, 2015

1 commit


31 Mar, 2015

1 commit


02 Dec, 2014

1 commit


04 Nov, 2014

1 commit

  • Mapping and unmapping are more often than not in the critical path.
    map_sg allows IOMMU driver implementations to optimize the process
    of mapping buffers into the IOMMU page tables.

    Instead of mapping a buffer one page at a time and requiring potentially
    expensive TLB operations for each page, this function allows the driver
    to map all pages in one go and defer TLB maintenance until after all
    pages have been mapped.

    Additionally, the mapping operation would be faster in general since
    clients does not have to keep calling map API over and over again for
    each physically contiguous chunk of memory that needs to be mapped to a
    virtually contiguous region.

    Signed-off-by: Olav Haugan
    Signed-off-by: Joerg Roedel

    Olav Haugan
     

23 Oct, 2014

1 commit

  • A semantic patch approach was proposed with the subject
    "[PATCH with Coccinelle?] Deletion of unnecessary checks
    before specific function calls" on 2014-03-05.
    https://lkml.org/lkml/2014/3/5/344
    http://article.gmane.org/gmane.comp.version-control.coccinelle/3513/

    This patch pattern application was repeated with the help of
    the software "Coccinelle 1.0.0-rc22" on the source files for
    Linux 3.17.1. An extract of the automatically generated
    update suggestions is shown here.

    It was determined that the affected source code places call
    functions which perform input parameter validation already.
    It is therefore not needed that a similar safety check is
    repeated at the call site.

    Signed-off-by: Markus Elfring
    Signed-off-by: Joerg Roedel

    SF Markus Elfring
     

25 Sep, 2014

1 commit


07 Jul, 2014

1 commit


07 Aug, 2013

1 commit

  • Two header files exist in mach-msm's include/mach directory that
    are only used by the MSM iommu driver. Move these files to the
    iommu driver directory and prefix them with "msm_". This allows
    us to compile the MSM iommu driver on multi-platform kernels.

    Acked-by: Joerg Roedel
    Cc: Stepan Moskovchenko
    Signed-off-by: Stephen Boyd
    Signed-off-by: David Brown

    Stephen Boyd
     

03 Apr, 2013

1 commit


11 Jul, 2012

1 commit


30 Jan, 2012

1 commit

  • Error handling in msm_iommu_unmap() is broken. On some error
    conditions retval is set to a non-zero value which causes
    the function to return 'len' at the end. This hides the
    error from the user. Zero should be returned in those error
    cases.

    Cc: David Brown
    Cc: Stepan Moskovchenko
    Cc: stable@vger.kernel.org # >= 3.1
    Signed-off-by: Joerg Roedel
    Acked-by: David Brown

    Joerg Roedel
     

10 Nov, 2011

2 commits

  • Let the IOMMU core know we support 4KiB, 64KiB, 1MiB and 16MiB page sizes.

    This way the IOMMU core can split any arbitrary-sized physically
    contiguous regions (that it needs to map) as needed.

    Signed-off-by: Ohad Ben-Cohen
    Acked-by: David Brown
    Cc: Stepan Moskovchenko
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     
  • Express sizes in bytes rather than in page order, to eliminate the
    size->order->size conversions we have whenever the IOMMU API is calling
    the low level drivers' map/unmap methods.

    Adopt all existing drivers.

    Signed-off-by: Ohad Ben-Cohen
    Cc: David Brown
    Cc: David Woodhouse
    Cc: Joerg Roedel
    Cc: Stepan Moskovchenko
    Cc: KyongHo Cho
    Cc: Hiroshi DOYU
    Cc: Laurent Pinchart
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     

21 Oct, 2011

1 commit


05 Sep, 2011

1 commit


21 Jun, 2011

1 commit

  • This should ease finding similarities with different platforms,
    with the intention of solving problems once in a generic framework
    which everyone can use.

    Compile-tested for MSM8X60.

    Signed-off-by: Ohad Ben-Cohen
    Acked-by: David Brown
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen