mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Abhilash Kesavan <a.kesavan@samsung.com>
To: catalin.marinas@arm.com, Will.Deacon@arm.com, heiko@sntech.de,
	Li.Xiubo@freescale.com, shc_work@mail.ru, p.zabel@pengutronix.de,
	nicoleotsuka@gmail.com, arnd@arndb.de,
	gregkh@linuxfoundation.org, robh+dt@kernel.org,
	grant.likely@linaro.org, linux-kernel@vger.kernel.org,
	corbet@lwn.net
Cc: padma.v@samsung.com, alsa-devel@alsa-project.org,
	shawn.guo@freescale.com, bcousson@baylibre.com, tony@atomide.com,
	kernel@pengutronix.de, kgene@kernel.org,
	kesavan.abhilash@gmail.com, pawel.moll@arm.com
Subject: [PATCH 2/2] misc: sram: switch to ioremap_wc from ioremap
Date: Thu, 11 Dec 2014 08:28:46 +0530	[thread overview]
Message-ID: <1418266726-12004-2-git-send-email-a.kesavan@samsung.com> (raw)
In-Reply-To: <1418266726-12004-1-git-send-email-a.kesavan@samsung.com>

Currently, the SRAM allocator returns device memory via ioremap.
This causes issues on ARM64 when the internal SoC SRAM allocated by
the generic sram driver is used for audio playback. The destination
buffer address (which is ioremapped SRAM) is not 64-bit aligned for
certain streams (e.g. 44.1k sampling rate). In such cases we get
unhandled alignment faults. Use ioremap_wc in place of ioremap which
gives us normal non-cacheable memory instead of device memory.

Signed-off-by: Abhilash Kesavan <a.kesavan@samsung.com>
---
This is based on the discussion about the crash here:
http://www.spinics.net/lists/arm-kernel/msg384647.html

 drivers/misc/sram.c |   17 ++++++++++++++---
 1 file changed, 14 insertions(+), 3 deletions(-)

diff --git a/drivers/misc/sram.c b/drivers/misc/sram.c
index 21181fa..15b4d4e 100644
--- a/drivers/misc/sram.c
+++ b/drivers/misc/sram.c
@@ -69,12 +69,23 @@ static int sram_probe(struct platform_device *pdev)
 	INIT_LIST_HEAD(&reserve_list);
 
 	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
-	virt_base = devm_ioremap_resource(&pdev->dev, res);
-	if (IS_ERR(virt_base))
-		return PTR_ERR(virt_base);
+	if (!res) {
+		dev_err(&pdev->dev, "found no memory resource\n");
+		return -EINVAL;
+	}
 
 	size = resource_size(res);
 
+	if (!devm_request_mem_region(&pdev->dev,
+			res->start, size, pdev->name)) {
+		dev_err(&pdev->dev, "could not request region for resource\n");
+		return -EBUSY;
+	}
+
+	virt_base = devm_ioremap_wc(&pdev->dev, res->start, size);
+	if (IS_ERR(virt_base))
+		return PTR_ERR(virt_base);
+
 	sram = devm_kzalloc(&pdev->dev, sizeof(*sram), GFP_KERNEL);
 	if (!sram)
 		return -ENOMEM;
-- 
1.7.9.5


  reply	other threads:[~2014-12-11  2:58 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-12-11  2:58 [PATCH 1/2] lib: devres: add a helper function for ioremap_wc Abhilash Kesavan
2014-12-11  2:58 ` Abhilash Kesavan [this message]
2014-12-11 10:08   ` [PATCH 2/2] misc: sram: switch to ioremap_wc from ioremap Philipp Zabel
2014-12-11 10:39     ` Will Deacon
2014-12-11 11:40       ` Philipp Zabel
2014-12-11 14:58         ` Catalin Marinas
2014-12-17 12:35           ` Abhilash Kesavan
2015-01-05 18:18             ` Tony Lindgren
2015-01-06 14:27               ` Abhilash Kesavan
2015-01-06 16:54                 ` Philipp Zabel
2015-01-06 17:27                   ` Rob Herring
2015-01-08 15:30                     ` Abhilash Kesavan
2015-01-08 20:56                       ` Heiko Stübner
2015-01-10  3:30 ` [PATCH 1/2] lib: devres: add a helper function for ioremap_wc Abhilash Kesavan
2015-01-12 13:05   ` gregkh

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=1418266726-12004-2-git-send-email-a.kesavan@samsung.com \
    --to=a.kesavan@samsung.com \
    --cc=Li.Xiubo@freescale.com \
    --cc=Will.Deacon@arm.com \
    --cc=alsa-devel@alsa-project.org \
    --cc=arnd@arndb.de \
    --cc=bcousson@baylibre.com \
    --cc=catalin.marinas@arm.com \
    --cc=corbet@lwn.net \
    --cc=grant.likely@linaro.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=heiko@sntech.de \
    --cc=kernel@pengutronix.de \
    --cc=kesavan.abhilash@gmail.com \
    --cc=kgene@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=nicoleotsuka@gmail.com \
    --cc=p.zabel@pengutronix.de \
    --cc=padma.v@samsung.com \
    --cc=pawel.moll@arm.com \
    --cc=robh+dt@kernel.org \
    --cc=shawn.guo@freescale.com \
    --cc=shc_work@mail.ru \
    --cc=tony@atomide.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

all inboxes | Powered by JetHome®