linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mark Rutland <mark.rutland@arm.com>
To: Sinan Kaya <okaya@codeaurora.org>
Cc: Andy Shevchenko <andy.shevchenko@gmail.com>,
	dmaengine <dmaengine@vger.kernel.org>,
	timur@codeaurora.org, cov@codeaurora.org, jcm@redhat.com,
	Rob Herring <robh+dt@kernel.org>, Pawel Moll <pawel.moll@arm.com>,
	Ian Campbell <ijc+devicetree@hellion.org.uk>,
	Kumar Gala <galak@codeaurora.org>,
	Vinod Koul <vinod.koul@intel.com>,
	Dan Williams <dan.j.williams@intel.com>,
	devicetree <devicetree@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH 1/2] dma: add Qualcomm Technologies HIDMA management driver
Date: Fri, 30 Oct 2015 18:18:16 +0000	[thread overview]
Message-ID: <20151030181816.GA30791@leverpostej> (raw)
In-Reply-To: <5633B207.5030505@codeaurora.org>

On Fri, Oct 30, 2015 at 02:08:07PM -0400, Sinan Kaya wrote:
> 
> 
> On 10/30/2015 1:59 PM, Andy Shevchenko wrote:
> >On Fri, Oct 30, 2015 at 5:00 PM, Mark Rutland <mark.rutland@arm.com> wrote:
> >>On Thu, Oct 29, 2015 at 11:08:12PM -0400, Sinan Kaya wrote:
> >>>The Qualcomm Technologies HIDMA device has been designed
> >>>to support virtualization technology. The driver has been
> >>>divided into two to follow the hardware design. The management
> >>>driver is executed in hypervisor context and is the main
> >>>managment for all channels provided by the device. The
> >>>channel driver is exected in the guest OS context.
> >>>
> >
> >>>+#if IS_ENABLED(CONFIG_ACPI)
> >>>+static const struct acpi_device_id qcom_hidma_mgmt_acpi_ids[] = {
> >>>+     {"QCOM8060"},
> >>>+     {},
> >>>+};
> >>>+#endif
> >>
> >>How do DMA engines work with ACPI?
> >>
> >>How are client relationships defined?
> >
> >The ACPI tables DSDT and CSRT (more info here:
> >http://www.acpi.info/links.htm) defines properties.
> >
> >DSDT:
> >  per DMAC: the resources
> >  per client: FixedDMA descriptor that contains channel / request line pair.
> >
> >CSRT:
> >  necessary table to map which DMAC provides which request line, thus
> >request line numbering are global on platform.
> >
> >When DMAC driver is probed in the running system it should call as
> >well registration function from acpi-dma.c.
> >
> >All clients when use new DMA slave API gets channel automatically
> >based on their FixedDMA property.
> >
> >So, above is how it should be done. Didn't actually checked what this
> >driver does.
> >
> I was going to reply to all the questions in one pass but let me
> handle piece by piece.
> 
> Here are some facts.
> - This hardware supports memcpy and memset only.
> - Memset feature was removed from the kernel sometime around 3.14.
> So no memset support in this driver either.
> - The hardware does not support DMA slave support

This point is what I'd missed when reviewing. Apologies for that.

> - The goal is to provide an interface to DMA engine framework for
> memcpy optimization so that the rest of the kernel drivers and
> applications make use of the hardware.
> 
> CSRT is an Intel specific ACPI table for slave devices. It was
> decided by Linaro that CSRT will not be supported for ARM64.
> 
> There were some discussions in ACPI forums to define a similar table
> for ARM64 but we are not there today and this hardware does not
> support slave interface.

Ok. Thanks for the info!

> ACPI enumeration is just like any other platform device. The driver
> gets looked up by a QCOM specific HID and the driver gets probed
> with the rest of the arguments in DSM object similar to device-tree
> attributes. The code uses device functions so the driver is not
> aware of where the parameters are coming from.

Ok.

So far the properties look device-internal, so I'm ok with thoses
properties being uniform and parsed in the manner that they are, though
I'm worried about the way the device description is split over two
nodes.

Thanks,
Mark.

  reply	other threads:[~2015-10-30 18:18 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-10-30  3:08 [PATCH 1/2] dma: add Qualcomm Technologies HIDMA management driver Sinan Kaya
2015-10-30  3:08 ` [PATCH 2/2] dma: add Qualcomm Technologies HIDMA channel driver Sinan Kaya
2015-10-30  8:01   ` kbuild test robot
2015-10-30  8:07   ` kbuild test robot
2015-10-30 10:24   ` Arnd Bergmann
2015-10-30 21:42     ` Sinan Kaya
2015-10-30 21:55       ` Timur Tabi
2015-10-30 22:47         ` Arnd Bergmann
2015-10-30 22:28       ` Arnd Bergmann
2015-10-30 22:36         ` Timur Tabi
2015-10-30 22:50           ` Arnd Bergmann
2015-10-31  1:53         ` Sinan Kaya
2015-11-01 18:50         ` Sinan Kaya
2015-11-01 20:21           ` Timur Tabi
2015-11-01 20:27             ` Sinan Kaya
2015-11-02 16:33           ` Arnd Bergmann
2015-11-02 19:21             ` Sinan Kaya
2015-11-02 20:55               ` Arnd Bergmann
2015-11-03  5:29                 ` Sinan Kaya
2015-11-03 10:43                   ` Arnd Bergmann
2015-11-03 21:07                     ` Sinan Kaya
2015-11-03 21:10                       ` Arnd Bergmann
2015-10-30 14:50   ` Mark Rutland
2015-10-31  4:27     ` Sinan Kaya
2015-10-30  4:34 ` [PATCH 1/2] dma: add Qualcomm Technologies HIDMA management driver kbuild test robot
2015-10-30  4:34 ` [PATCH] dma: fix platform_no_drv_owner.cocci warnings kbuild test robot
2015-10-30  9:34 ` [PATCH 1/2] dma: add Qualcomm Technologies HIDMA management driver Arnd Bergmann
2015-10-31  6:51   ` Sinan Kaya
2015-10-31 12:53     ` Timur Tabi
2015-10-31 12:53     ` Timur Tabi
2015-11-02 21:30     ` Arnd Bergmann
2015-11-03  4:45       ` Sinan Kaya
2015-11-03 12:42         ` Arnd Bergmann
2015-11-03 14:26           ` Timur Tabi
2015-11-04  1:04           ` Sinan Kaya
2015-10-30 15:00 ` Mark Rutland
2015-10-30 17:59   ` Andy Shevchenko
2015-10-30 18:08     ` Sinan Kaya
2015-10-30 18:18       ` Mark Rutland [this message]
2015-10-30 18:18       ` Andy Shevchenko
2015-10-30 18:25         ` Mark Rutland
2015-10-30 18:40           ` Andy Shevchenko
2015-10-30 18:48             ` Sinan Kaya
2015-10-30 19:01               ` Mark Rutland
2015-10-30 20:08                 ` Al Stone
2015-10-30 20:15                   ` Andy Shevchenko
2015-10-30 20:18                     ` Mark Rutland
2015-10-31  3:33                     ` Jon Masters
2015-10-31 17:34                       ` Sinan Kaya
2015-10-30 19:36           ` Sinan Kaya
2015-10-31 17:11   ` Sinan Kaya

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151030181816.GA30791@leverpostej \
    --to=mark.rutland@arm.com \
    --cc=andy.shevchenko@gmail.com \
    --cc=cov@codeaurora.org \
    --cc=dan.j.williams@intel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dmaengine@vger.kernel.org \
    --cc=galak@codeaurora.org \
    --cc=ijc+devicetree@hellion.org.uk \
    --cc=jcm@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=okaya@codeaurora.org \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=timur@codeaurora.org \
    --cc=vinod.koul@intel.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).