From: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
To: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Tejun Heo <tj@kernel.org>, Hans de Goede <hdegoede@redhat.com>,
linux-ide@vger.kernel.org, linux-kernel@vger.kernel.org,
lho@apm.com, tphan@apm.com, stripathi@apm.com
Subject: Re: [PATCH 1/1] ata: Check and set 64-bit DMA mask for platform AHCI driver
Date: Thu, 12 Jun 2014 01:22:29 -0500 [thread overview]
Message-ID: <53994725.5000001@amd.com> (raw)
In-Reply-To: <1666501.UPn96gHtAf@amdc1032>
On 06/11/2014 04:41 AM, Bartlomiej Zolnierkiewicz wrote:
>>> On Fri, May 23, 2014 at 12:35:10PM -0500,suravee.suthikulpanit@amd.com wrote:
>>>> > >>From: Suravee Suthikulpanit<Suravee.Suthikulpanit@amd.com>
>>>> > >>
>>>> > >>The current platform AHCI drier does not set the dma_mask correctly
>>>> > >>for 64-bit DMA capable AHCI controller. This patch checks the AHCI
>>>> > >>capability bit and set the dma_mask and coherent_dma_mask accordingly.
>>>> > >>
>>>> > >>Signed-off-by: Suravee Suthikulpanit<Suravee.Suthikulpanit@amd.com>
>>>> > >>---
>>>> > >> drivers/ata/libahci_platform.c | 9 +++++++++
>>>> > >> 1 file changed, 9 insertions(+)
>>>> > >>
>>>> > >>diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
>>>> > >>index 7cb3a85..85049ef 100644
>>>> > >>--- a/drivers/ata/libahci_platform.c
>>>> > >>+++ b/drivers/ata/libahci_platform.c
>>>> > >>@@ -368,6 +368,15 @@ int ahci_platform_init_host(struct platform_device *pdev,
>>>> > >> ahci_init_controller(host);
>>>> > >> ahci_print_info(host, "platform");
>>>> > >>
>>>> > >>+ if (hpriv->cap & HOST_CAP_64) {
>>>> > >>+ if (!dev->dma_mask)
> What configuration is the above dev->dma_mask checking supposed to handle?
> Is it really needed? If not the current dma_set_mask_and_coherent() call
> can be replaced by dma_coerce_mask_and_coherent() one.
I was just trying to be safe and not always assuming that dev->dma_mask
is pointing to the dev->coherent_dma_mask. If you think this is not
necessary, I can remove this.
>
>>>> > >>+ dev->dma_mask = &dev->coherent_dma_mask;
>>>> > >>+
>>>> > >>+ rc = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
>>>> > >>+ if (rc)
>>>> > >>+ return rc;
> Shouldn't we try to set DMA masks to 32-bit ones on error (like it is done
> in ahci_configure_dma_masks()) instead of failing the initialization?
I can also add the additional logic to try for 32-bit.
>
>>>> > >>+ }
>>>> > >>+
>>>> > >> return ata_host_activate(host, irq, ahci_interrupt, IRQF_SHARED,
>>>> > >> &ahci_platform_sht);
>>>> > >> }
>>>> > >>--
>>>> > >>1.9.0
> BTW It seems that after DMA masks handling is fixed in the generic AHCI
> platform code the driver specific code in ahci_xgene.c can be removed.
I am including Loc Ho, Tuan Phan, and Suman Tripathi to help verifying
if code could be removed. If so, I'll send out the change in V2.
Suravee
>
> Best regards,
> --
> Bartlomiej Zolnierkiewicz
> Samsung R&D Institute Poland
> Samsung Electronics
>
WARNING: multiple messages have this Message-ID (diff)
From: Suravee Suthikulpanit <suravee.suthikulpanit@amd.com>
To: Bartlomiej Zolnierkiewicz <b.zolnierkie@samsung.com>
Cc: Tejun Heo <tj@kernel.org>, Hans de Goede <hdegoede@redhat.com>,
<linux-ide@vger.kernel.org>, <linux-kernel@vger.kernel.org>,
<lho@apm.com>, <tphan@apm.com>, <stripathi@apm.com>
Subject: Re: [PATCH 1/1] ata: Check and set 64-bit DMA mask for platform AHCI driver
Date: Thu, 12 Jun 2014 01:22:29 -0500 [thread overview]
Message-ID: <53994725.5000001@amd.com> (raw)
In-Reply-To: <1666501.UPn96gHtAf@amdc1032>
On 06/11/2014 04:41 AM, Bartlomiej Zolnierkiewicz wrote:
>>> On Fri, May 23, 2014 at 12:35:10PM -0500,suravee.suthikulpanit@amd.com wrote:
>>>> > >>From: Suravee Suthikulpanit<Suravee.Suthikulpanit@amd.com>
>>>> > >>
>>>> > >>The current platform AHCI drier does not set the dma_mask correctly
>>>> > >>for 64-bit DMA capable AHCI controller. This patch checks the AHCI
>>>> > >>capability bit and set the dma_mask and coherent_dma_mask accordingly.
>>>> > >>
>>>> > >>Signed-off-by: Suravee Suthikulpanit<Suravee.Suthikulpanit@amd.com>
>>>> > >>---
>>>> > >> drivers/ata/libahci_platform.c | 9 +++++++++
>>>> > >> 1 file changed, 9 insertions(+)
>>>> > >>
>>>> > >>diff --git a/drivers/ata/libahci_platform.c b/drivers/ata/libahci_platform.c
>>>> > >>index 7cb3a85..85049ef 100644
>>>> > >>--- a/drivers/ata/libahci_platform.c
>>>> > >>+++ b/drivers/ata/libahci_platform.c
>>>> > >>@@ -368,6 +368,15 @@ int ahci_platform_init_host(struct platform_device *pdev,
>>>> > >> ahci_init_controller(host);
>>>> > >> ahci_print_info(host, "platform");
>>>> > >>
>>>> > >>+ if (hpriv->cap & HOST_CAP_64) {
>>>> > >>+ if (!dev->dma_mask)
> What configuration is the above dev->dma_mask checking supposed to handle?
> Is it really needed? If not the current dma_set_mask_and_coherent() call
> can be replaced by dma_coerce_mask_and_coherent() one.
I was just trying to be safe and not always assuming that dev->dma_mask
is pointing to the dev->coherent_dma_mask. If you think this is not
necessary, I can remove this.
>
>>>> > >>+ dev->dma_mask = &dev->coherent_dma_mask;
>>>> > >>+
>>>> > >>+ rc = dma_set_mask_and_coherent(dev, DMA_BIT_MASK(64));
>>>> > >>+ if (rc)
>>>> > >>+ return rc;
> Shouldn't we try to set DMA masks to 32-bit ones on error (like it is done
> in ahci_configure_dma_masks()) instead of failing the initialization?
I can also add the additional logic to try for 32-bit.
>
>>>> > >>+ }
>>>> > >>+
>>>> > >> return ata_host_activate(host, irq, ahci_interrupt, IRQF_SHARED,
>>>> > >> &ahci_platform_sht);
>>>> > >> }
>>>> > >>--
>>>> > >>1.9.0
> BTW It seems that after DMA masks handling is fixed in the generic AHCI
> platform code the driver specific code in ahci_xgene.c can be removed.
I am including Loc Ho, Tuan Phan, and Suman Tripathi to help verifying
if code could be removed. If so, I'll send out the change in V2.
Suravee
>
> Best regards,
> --
> Bartlomiej Zolnierkiewicz
> Samsung R&D Institute Poland
> Samsung Electronics
>
next prev parent reply other threads:[~2014-06-12 6:22 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-05-23 17:35 [PATCH 1/1] ata: Check and set 64-bit DMA mask for platform AHCI driver suravee.suthikulpanit
2014-05-23 17:35 ` suravee.suthikulpanit
2014-06-01 18:23 ` Suravee Suthikulpanit
2014-06-01 18:23 ` Suravee Suthikulpanit
2014-06-03 17:58 ` Tejun Heo
2014-06-06 16:10 ` Suravee Suthikulanit
2014-06-06 16:10 ` Suravee Suthikulanit
2014-06-11 9:41 ` Bartlomiej Zolnierkiewicz
2014-06-12 6:22 ` Suravee Suthikulpanit [this message]
2014-06-12 6:22 ` Suravee Suthikulpanit
2014-06-10 21:54 ` David Milburn
2014-06-11 9:30 ` Bartlomiej Zolnierkiewicz
2014-06-12 6:36 ` Suravee Suthikulpanit
2014-06-12 6:36 ` Suravee Suthikulpanit
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=53994725.5000001@amd.com \
--to=suravee.suthikulpanit@amd.com \
--cc=b.zolnierkie@samsung.com \
--cc=hdegoede@redhat.com \
--cc=lho@apm.com \
--cc=linux-ide@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=stripathi@apm.com \
--cc=tj@kernel.org \
--cc=tphan@apm.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.