Linux-ARM-Kernel Archive on lore.kernel.org
 help / color / Atom feed
From: BOUGH CHEN <haibo.chen@nxp.com>
To: Ulf Hansson <ulf.hansson@linaro.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J . Wysocki" <rafael@kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>,
	Linus Walleij <linus.walleij@linaro.org>,
	Russell King <linux@armlinux.org.uk>,
	Vinod Koul <vkoul@kernel.org>,
	"linux-arm-kernel@lists.infradead.org"
	<linux-arm-kernel@lists.infradead.org>,
	"dmaengine@vger.kernel.org" <dmaengine@vger.kernel.org>,
	Christoph Hellwig <hch@lst.de>,
	Ludovic Barre <ludovic.barre@st.com>
Subject: RE: [PATCH 0/2] amba/platform: Initialize dma_parms at the bus level
Date: Fri, 27 Mar 2020 03:02:12 +0000
Message-ID: <VI1PR04MB5040FFADA4F780422E208AC390CC0@VI1PR04MB5040.eurprd04.prod.outlook.com> (raw)
In-Reply-To: <VI1PR04MB504097B40CE0B804FA60D67A90CF0@VI1PR04MB5040.eurprd04.prod.outlook.com>


> -----Original Message-----
> From: BOUGH CHEN
> Sent: 2020年3月26日 12:41
> To: Ulf Hansson <ulf.hansson@linaro.org>; Greg Kroah-Hartman
> <gregkh@linuxfoundation.org>; Rafael J . Wysocki <rafael@kernel.org>;
> linux-kernel@vger.kernel.org
> Cc: Arnd Bergmann <arnd@arndb.de>; Christoph Hellwig <hch@lst.de>;
> Russell King <linux@armlinux.org.uk>; Linus Walleij <linus.walleij@linaro.org>;
> Vinod Koul <vkoul@kernel.org>; Ludovic Barre <ludovic.barre@st.com>;
> linux-arm-kernel@lists.infradead.org; dmaengine@vger.kernel.org
> Subject: RE: [PATCH 0/2] amba/platform: Initialize dma_parms at the bus level
> 
> > -----Original Message-----
> > From: Ulf Hansson <ulf.hansson@linaro.org>
> > Sent: 2020年3月25日 19:34
> > To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>; Rafael J .
> > Wysocki <rafael@kernel.org>; linux-kernel@vger.kernel.org
> > Cc: Arnd Bergmann <arnd@arndb.de>; Christoph Hellwig <hch@lst.de>;
> > Russell King <linux@armlinux.org.uk>; Linus Walleij
> > <linus.walleij@linaro.org>; Vinod Koul <vkoul@kernel.org>; BOUGH CHEN
> > <haibo.chen@nxp.com>; Ludovic Barre <ludovic.barre@st.com>;
> > linux-arm-kernel@lists.infradead.org; dmaengine@vger.kernel.org; Ulf
> > Hansson <ulf.hansson@linaro.org>
> > Subject: [PATCH 0/2] amba/platform: Initialize dma_parms at the bus
> > level
> >
> > It's currently the amba/platform driver's responsibility to initialize
> > the pointer, dma_parms, for its corresponding struct device. The
> > benefit with this approach allows us to avoid the initialization and
> > to not waste memory for the struct device_dma_parameters, as this can
> > be decided on a case by case basis.
> >
> > However, it has turned out that this approach is not very practical.
> > Not only does it lead to open coding, but also to real errors. In
> > principle callers of
> > dma_set_max_seg_size() doesn't check the error code, but just assumes
> > it succeeds.
> >
> > For these reasons, this series initializes the dma_parms from the
> > amba/platform bus at the device registration point. This also follows
> > the way the PCI devices are being managed, see pci_device_add().
> >
> > If it turns out that this is an acceptable solution, we probably also
> > want the changes for stable, but I am not sure if it applies without conflicts.
> >
> > The series is based on v5.6-rc7.
> >
> 
> Hi Ulf,
> 
> Since i.MXQM SMMU related code still not upstream yet, so I apply your
> patches on our internal Linux branch based on v5.4.24, and find it do not work
> on my side. Maybe for platform core drivers, there is a gap between v5.4.24
> and v5.6-rc7 which has the impact.
> I will try to put our SMMU related code into v5.6-rc7, then do the test again.
> 
> 

Hi Ulf,

On the latest Linux-next branch, the top commit 89295c59c1f063b533d071ca49d0fa0c0783ca6f (tag: next-20200326), after add your two patches, I just add the simple debug code as following in the /driver/mmc/core/queue.c, but seems still not work as our expect, logically, it should work, so can you or anyone test on other platform? This seems weird.

diff --git a/drivers/mmc/core/queue.c b/drivers/mmc/core/queue.c
index 25bee3daf9e2..f091280f7ffb 100644
--- a/drivers/mmc/core/queue.c
+++ b/drivers/mmc/core/queue.c
@@ -403,6 +403,13 @@ static void mmc_setup_queue(struct mmc_queue *mq, struct mmc_card *card)
                blk_queue_max_segment_size(mq->queue,
                        round_down(host->max_seg_size, block_size));

+       pr_err("###### the max segment size is %d\n", queue_max_segment_size(mq->queue));
+       if (host->parent->dma_parms) {
+                      pr_err("######### the dma parms has value\n");
+       } else if (!(host->parent->dma_parms)) {
+                      pr_err("######## the dma parms is zero!!\n");
+       }
+
        dma_set_max_seg_size(mmc_dev(host), queue_max_segment_size(mq->queue));

        INIT_WORK(&mq->recovery_work, mmc_mq_recovery_handler);

Here is the log I got when system run, even after your patch, the dev->dma_parms is still NULL. 
[    0.989853] mmc0: new HS400 MMC card at address 0001
[    0.995708] sdhci-esdhc-imx 30b50000.mmc: Got CD GPIO
[    0.999374] ###### the max segment size is 65024
[    1.008594] ######## the dma parms is zero!!
[    1.012875] mmcblk0: mmc0:0001 IB2932 29.2 GiB
[    1.017569] ###### the max segment size is 65024
[    1.022195] ######## the dma parms is zero!!
[    1.026479] mmcblk0boot0: mmc0:0001 IB2932 partition 1 4.00 MiB
[    1.032541] ###### the max segment size is 65024
[    1.035198] mmc1: SDHCI controller on 30b50000.mmc [30b50000.mmc] using ADMA
[    1.037169] ######## the dma parms is zero!!
[    1.048493] mmcblk0boot1: mmc0:0001 IB2932 partition 2 4.00 MiB
[    1.054531] mmcblk0rpmb: mmc0:0001 IB2932 partition 3 4.00 MiB, chardev (234:0)


Regards
Haibo Chen
> Best Regards
> Haibo Chen
> 
> > Kind regards
> > Ulf Hansson
> >
> > Ulf Hansson (2):
> >   driver core: platform: Initialize dma_parms for platform devices
> >   amba: Initialize dma_parms for amba devices
> >
> >  drivers/amba/bus.c              | 2 ++
> >  drivers/base/platform.c         | 1 +
> >  include/linux/amba/bus.h        | 1 +
> >  include/linux/platform_device.h | 1 +
> >  4 files changed, 5 insertions(+)
> >
> > --
> > 2.20.1

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply index

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-03-25 11:34 Ulf Hansson
2020-03-25 11:34 ` [PATCH 1/2] driver core: platform: Initialize dma_parms for platform devices Ulf Hansson
2020-03-25 15:23   ` Ludovic BARRE
2020-03-26 11:01   ` Linus Walleij
2020-03-26 11:06   ` Arnd Bergmann
2020-03-25 11:34 ` [PATCH 2/2] amba: Initialize dma_parms for amba devices Ulf Hansson
2020-03-25 15:24   ` Ludovic BARRE
2020-03-26 11:02   ` Linus Walleij
2020-03-26 11:07   ` Arnd Bergmann
2020-03-26  4:41 ` [PATCH 0/2] amba/platform: Initialize dma_parms at the bus level BOUGH CHEN
2020-03-27  3:02   ` BOUGH CHEN [this message]
2020-03-27 15:34     ` Ulf Hansson
2020-03-27 19:15       ` Robin Murphy

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=VI1PR04MB5040FFADA4F780422E208AC390CC0@VI1PR04MB5040.eurprd04.prod.outlook.com \
    --to=haibo.chen@nxp.com \
    --cc=arnd@arndb.de \
    --cc=dmaengine@vger.kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@lst.de \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux@armlinux.org.uk \
    --cc=ludovic.barre@st.com \
    --cc=rafael@kernel.org \
    --cc=ulf.hansson@linaro.org \
    --cc=vkoul@kernel.org \
    /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

Linux-ARM-Kernel Archive on lore.kernel.org

Archives are clonable:
	git clone --mirror https://lore.kernel.org/linux-arm-kernel/0 linux-arm-kernel/git/0.git
	git clone --mirror https://lore.kernel.org/linux-arm-kernel/1 linux-arm-kernel/git/1.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 linux-arm-kernel linux-arm-kernel/ https://lore.kernel.org/linux-arm-kernel \
		linux-arm-kernel@lists.infradead.org
	public-inbox-index linux-arm-kernel

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://nntp.lore.kernel.org/org.infradead.lists.linux-arm-kernel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git