Skip to content

Commit

Permalink
misc: sram: add optional ioremap without write combining
Browse files Browse the repository at this point in the history
Some SRAM users may require non-bufferable access to the memory, which is
impossible, because devm_ioremap_wc() is used for setting sram->virt_base.

This commit adds optional flag 'no-memory-wc', which allow to choose remap
method, using DT property. Documentation is updated accordingly.

Signed-off-by: Marcin Wojtas <mw@semihalf.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Marcin Wojtas authored and David S. Miller committed Mar 14, 2016
1 parent d3bf9b1 commit eb43e02
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 1 deletion.
5 changes: 5 additions & 0 deletions Documentation/devicetree/bindings/sram/sram.txt
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,11 @@ Required properties in the sram node:
- ranges : standard definition, should translate from local addresses
within the sram to bus addresses

Optional properties in the sram node:

- no-memory-wc : the flag indicating, that SRAM memory region has not to
be remapped as write combining. WC is used by default.

Required properties in the area nodes:

- reg : iomem address range, relative to the SRAM range
Expand Down
5 changes: 4 additions & 1 deletion drivers/misc/sram.c
Original file line number Diff line number Diff line change
Expand Up @@ -360,7 +360,10 @@ static int sram_probe(struct platform_device *pdev)
return -EBUSY;
}

sram->virt_base = devm_ioremap_wc(sram->dev, res->start, size);
if (of_property_read_bool(pdev->dev.of_node, "no-memory-wc"))
sram->virt_base = devm_ioremap(sram->dev, res->start, size);
else
sram->virt_base = devm_ioremap_wc(sram->dev, res->start, size);
if (IS_ERR(sram->virt_base))
return PTR_ERR(sram->virt_base);

Expand Down

0 comments on commit eb43e02

Please sign in to comment.