17 Aug, 2020

1 commit

  • The acpi_get_table() should be coupled with acpi_put_table() if
    the mapped table is not used at runtime to release the table
    mapping, put the CSRT table buf after using it.

    Signed-off-by: Hanjun Guo
    Link: https://lore.kernel.org/r/1595411661-15936-1-git-send-email-guohanjun@huawei.com
    Signed-off-by: Vinod Koul

    Hanjun Guo
     

24 Jun, 2020

1 commit

  • acpi_dev_get_resources() does perform the NULL pointer check against
    ACPI companion device which is given as function parameter. Thus,
    there is no need to duplicate this check in the caller.

    Signed-off-by: Andy Shevchenko
    Link: https://lore.kernel.org/r/20200622181311.67649-1-andriy.shevchenko@linux.intel.com
    Signed-off-by: Vinod Koul

    Andy Shevchenko
     

21 Aug, 2019

2 commits

  • Kernel documentation script is not happy about absence of function parameter
    descriptions:

    drivers/dma/acpi-dma.c:163: warning: Function parameter or member 'data' not described in 'acpi_dma_controller_register'
    drivers/dma/acpi-dma.c:247: warning: Function parameter or member 'data' not described in 'devm_acpi_dma_controller_register'
    drivers/dma/acpi-dma.c:274: warning: Function parameter or member 'dev' not described in 'devm_acpi_dma_controller_free'

    Append the descriptions of above mentioned function parameters.

    Signed-off-by: Andy Shevchenko
    Link: https://lore.kernel.org/r/20190820131546.75744-3-andriy.shevchenko@linux.intel.com
    Signed-off-by: Vinod Koul

    Andy Shevchenko
     
  • CSRT has an information about address width, which is supported by
    the certain DMA controller.

    Use information from CSRT to set up DMA mask for shared controller.

    Signed-off-by: Andy Shevchenko
    Link: https://lore.kernel.org/r/20190820131546.75744-2-andriy.shevchenko@linux.intel.com
    Signed-off-by: Vinod Koul

    Andy Shevchenko
     

19 Jun, 2019

1 commit

  • Based on 2 normalized pattern(s):

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation

    this program is free software you can redistribute it and or modify
    it under the terms of the gnu general public license version 2 as
    published by the free software foundation #

    extracted by the scancode license scanner the SPDX license identifier

    GPL-2.0-only

    has been chosen to replace the boilerplate/reference in 4122 file(s).

    Signed-off-by: Thomas Gleixner
    Reviewed-by: Enrico Weigelt
    Reviewed-by: Kate Stewart
    Reviewed-by: Allison Randal
    Cc: linux-spdx@vger.kernel.org
    Link: https://lkml.kernel.org/r/20190604081206.933168790@linutronix.de
    Signed-off-by: Greg Kroah-Hartman

    Thomas Gleixner
     

22 Feb, 2016

1 commit


05 Dec, 2015

1 commit


11 Nov, 2015

1 commit

  • Pull dmaengine updates from Vinod Koul:
    "This time we have a very typical update which is mostly fixes and
    updates to drivers and no new drivers.

    - the biggest change is coming from Peter for edma cleanup which even
    caused some last minute regression, things seem settled now
    - idma64 and dw updates
    - iotdma updates
    - module autoload fixes for various drivers
    - scatter gather support for hdmac"

    * tag 'dmaengine-4.4-rc1' of git://git.infradead.org/users/vkoul/slave-dma: (77 commits)
    dmaengine: edma: Add dummy driver skeleton for edma3-tptc
    Revert "ARM: DTS: am33xx: Use the new DT bindings for the eDMA3"
    Revert "ARM: DTS: am437x: Use the new DT bindings for the eDMA3"
    dmaengine: dw: some Intel devices has no memcpy support
    dmaengine: dw: platform: provide platform data for Intel
    dmaengine: dw: don't override platform data with autocfg
    dmaengine: hdmac: Add scatter-gathered memset support
    dmaengine: hdmac: factorise memset descriptor allocation
    dmaengine: virt-dma: Fix kernel-doc annotations
    ARM: DTS: am437x: Use the new DT bindings for the eDMA3
    ARM: DTS: am33xx: Use the new DT bindings for the eDMA3
    dmaengine: edma: New device tree binding
    dmaengine: Kconfig: edma: Select TI_DMA_CROSSBAR in case of ARCH_OMAP
    dmaengine: ti-dma-crossbar: Add support for crossbar on AM33xx/AM43xx
    dmaengine: edma: Merge the of parsing functions
    dmaengine: edma: Do not allocate memory for edma_rsv_info in case of DT boot
    dmaengine: edma: Refactor the dma device and channel struct initialization
    dmaengine: edma: Get qDMA channel information from HW also
    dmaengine: edma: Merge map_dmach_to_queue into assign_channel_eventq
    dmaengine: edma: Correct PaRAM access function names (_parm_ to _param_)
    ...

    Linus Torvalds
     

30 Sep, 2015

1 commit


25 Sep, 2015

1 commit

  • The current implementation hard codes the two supported channels so that
    "tx" is always 0 and "rx" is always 1. This is because there has been no
    suitable way in ACPI to name resources.

    With _DSD device properties we can finally do this:

    Device (SPI1) {
    Name (_CRS, ResourceTemplate () {
    ...
    FixedDMA (0x0000, 0x0000, Width32bit)
    FixedDMA (0x0001, 0x0001, Width32bit)
    })

    Name (_DSD, Package () {
    ToUUID("daffd814-6eba-4d8c-8a91-bc9bbf4aa301"),
    Package () {
    Package () {"dma-names", Package () {"tx", "rx"}}
    },
    })
    }

    The names "tx" and "rx" now provide index of the FixedDMA resource in
    question.

    Modify acpi_dma_request_slave_chan_by_name() so that it looks for
    "dma-names" property first and only then fall back using hardcoded indices.

    The DT "dma-names" binding that we reuse for ACPI is documented in
    Documentation/devicetree/bindings/dma/dma.txt.

    Signed-off-by: Mika Westerberg
    Acked-by: Andy Shevchenko
    Acked-by: Vinod Koul
    Signed-off-by: Rafael J. Wysocki

    Mika Westerberg
     

05 Feb, 2015

1 commit

  • Currently ACPI, PCI and pnp all implement the same resource list
    management with different data structure. We need to transfer from
    one data structure into another when passing resources from one
    subsystem into another subsystem. So move struct resource_list_entry
    from ACPI into resource core and rename it as resource_entry,
    then it could be reused by different subystems and avoid the data
    structure conversion.

    Introduce dedicated header file resource_ext.h instead of embedding
    it into ioport.h to avoid header file inclusion order issues.

    Signed-off-by: Jiang Liu
    Acked-by: Vinod Koul
    Signed-off-by: Rafael J. Wysocki

    Jiang Liu
     

12 Feb, 2014

2 commits


26 Jan, 2014

1 commit


25 Aug, 2013

1 commit

  • In case of big endian CPU we have to convert either all fields in the structure
    or leave this job to ACPICA. The second choice seems the best.

    So, let's remove the ugly conversion that is not fully comprehensive anyway.

    Signed-off-by: Andy Shevchenko
    Acked-by: Mika Westerberg
    Signed-off-by: Vinod Koul

    Andy Shevchenko
     

05 Aug, 2013

1 commit

  • This patch fixes sparse warning:
    drivers/dma/acpi-dma.c:76:21: sparse: cast to restricted __le32

    Since everything in all ACPI tables is little-endian, by definition, the used
    types in practice are uXX. Thus, we have to enforce __leXX if we want to
    convert them to CPU order.

    Signed-off-by: Andy Shevchenko
    Reviewed-by: Mika Westerberg
    Acked-by: Viresh Kumar
    Signed-off-by: Vinod Koul

    Andy Shevchenko
     

14 May, 2013

1 commit


16 Apr, 2013

1 commit

  • There is a new generic API to get a DMA channel for a slave device (commit
    9a6cecc8 "dmaengine: add helper function to request a slave DMA channel"). In
    similar fashion to the DT case (commit aa3da644 "of: Add generic device tree
    DMA helpers") we introduce helpers to the DMAC drivers which are enumerated by
    ACPI.

    The proposed extension provides the following API calls:
    acpi_dma_controller_register(), devm_acpi_dma_controller_register()
    acpi_dma_controller_free(), devm_acpi_dma_controller_free()
    acpi_dma_simple_xlate()
    acpi_dma_request_slave_chan_by_index()
    acpi_dma_request_slave_chan_by_name()

    The first two should be used, for example, at probe() and remove() of the
    corresponding DMAC driver. At the register stage the DMAC driver supplies a
    custom xlate() function to translate a struct dma_spec into struct dma_chan.

    Accordingly to the ACPI Fixed DMA resource specification the only two pieces of
    information the slave device has are the channel id and the request line (slave
    id). Those two are represented by struct dma_spec. The
    acpi_dma_request_slave_chan_by_index() provides access to the specifix FixedDMA
    resource by its index. Whereas dma_request_slave_channel() takes a string
    parameter to identify the DMA resources required by the slave device. To make a
    slave device driver work with both DeviceTree and ACPI enumeration a simple
    convention is established: "tx" corresponds to the index 0 and "rx" to the
    index 1. In case of robust configuration the slave device driver unfortunately
    needs to call acpi_dma_request_slave_chan_by_index() directly.

    Additionally the patch provides "managed" version of the register/free pair
    i.e. devm_acpi_dma_controller_register() and devm_acpi_dma_controller_free().
    Usually, the driver uses only devm_acpi_dma_controller_register().

    Signed-off-by: Andy Shevchenko
    Reviewed-by: Mika Westerberg
    Acked-by: Rafael J. Wysocki
    Signed-off-by: Vinod Koul

    Andy Shevchenko