mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2024-12-28 16:52:18 +00:00
ata: Use of_property_read_reg() to parse "reg"
Use the recently added of_property_read_reg() helper to get the untranslated "reg" address value. Signed-off-by: Rob Herring <robh@kernel.org> Reviewed-by: Sergey Shtylyov <s.shtylyov@omp.ru> Signed-off-by: Damien Le Moal <dlemoal@kernel.org>
This commit is contained in:
parent
43cff7d943
commit
d0b2461678
@ -804,9 +804,7 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
struct resource *res_cs0, *res_cs1;
|
||||
|
||||
bool is_16bit;
|
||||
const __be32 *cs_num;
|
||||
struct property *reg_prop;
|
||||
int n_addr, n_size, reg_len;
|
||||
u64 reg;
|
||||
struct device_node *node;
|
||||
void __iomem *cs0;
|
||||
void __iomem *cs1 = NULL;
|
||||
@ -834,15 +832,10 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
else
|
||||
is_16bit = false;
|
||||
|
||||
n_addr = of_n_addr_cells(node);
|
||||
n_size = of_n_size_cells(node);
|
||||
|
||||
reg_prop = of_find_property(node, "reg", ®_len);
|
||||
if (!reg_prop || reg_len < sizeof(__be32))
|
||||
return -EINVAL;
|
||||
|
||||
cs_num = reg_prop->value;
|
||||
cf_port->cs0 = be32_to_cpup(cs_num);
|
||||
rv = of_property_read_reg(node, 0, ®, NULL);
|
||||
if (rv < 0)
|
||||
return rv;
|
||||
cf_port->cs0 = upper_32_bits(reg);
|
||||
|
||||
if (cf_port->is_true_ide) {
|
||||
struct device_node *dma_node;
|
||||
@ -884,13 +877,12 @@ static int octeon_cf_probe(struct platform_device *pdev)
|
||||
cs1 = devm_ioremap(&pdev->dev, res_cs1->start,
|
||||
resource_size(res_cs1));
|
||||
if (!cs1)
|
||||
return rv;
|
||||
|
||||
if (reg_len < (n_addr + n_size + 1) * sizeof(__be32))
|
||||
return -EINVAL;
|
||||
|
||||
cs_num += n_addr + n_size;
|
||||
cf_port->cs1 = be32_to_cpup(cs_num);
|
||||
rv = of_property_read_reg(node, 1, ®, NULL);
|
||||
if (rv < 0)
|
||||
return rv;
|
||||
cf_port->cs1 = upper_32_bits(reg);
|
||||
}
|
||||
|
||||
res_cs0 = platform_get_resource(pdev, IORESOURCE_MEM, 0);
|
||||
|
@ -32,6 +32,7 @@
|
||||
#include <scsi/scsi.h>
|
||||
#include <linux/libata.h>
|
||||
#include <linux/of.h>
|
||||
#include <linux/of_address.h>
|
||||
|
||||
#define DRV_NAME "sata_svw"
|
||||
#define DRV_VERSION "2.3"
|
||||
@ -319,10 +320,11 @@ static int k2_sata_show_info(struct seq_file *m, struct Scsi_Host *shost)
|
||||
/* Match it to a port node */
|
||||
index = (ap == ap->host->ports[0]) ? 0 : 1;
|
||||
for (np = np->child; np != NULL; np = np->sibling) {
|
||||
const u32 *reg = of_get_property(np, "reg", NULL);
|
||||
if (!reg)
|
||||
u64 reg;
|
||||
|
||||
if (of_property_read_reg(np, 0, ®, NULL))
|
||||
continue;
|
||||
if (index == *reg) {
|
||||
if (index == reg) {
|
||||
seq_printf(m, "devspec: %pOF\n", np);
|
||||
break;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user