ata: Use of_property_read_reg() to parse "reg"
PATCH 1/1 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 <[email protected]>
--- drivers/ata/pata_octeon_cf.c | 26 +++++++++----------------- drivers/ata/sata_svw.c | 7 ++++--- 2 files changed, 13 insertions(+), 20 deletions(-)
drivers/ata/pata_octeon_cf.c +9 -17
@@ -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 );
drivers/ata/sata_svw.c +4 -3
@@ -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,10 @@ 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 ; }
Signature · 1 line
2.39.2
Hello!
Quoted 4 lines · Rob Herring
Use the recently added
of_property_read_reg()helper to get the untranslated "reg" address value.Signed-off-by Rob Herring <[email protected]>
[...]
Reviewed-by Sergey Shtylyov <[email protected]>
Quoted 3 lines
drivers/ata/sata_svw.c +0
-1--- a/drivers/ata/sata_svw.c
[...]
drivers/ata/sata_svw.c static int k2_sata_show_info(struct seq_file *m, struct Scsi_Host *shost) · line 323
Quoted 7 lines
drivers/ata/sata_svw.c +1
-2@@ -319,10 +320,10 @@ 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;
An empty line wouldn't hurt here... :-)
drivers/ata/sata_svw.c static int k2_sata_show_info(struct seq_file *m, struct Scsi_Host *shost) · line 329
Quoted 7 lines
drivers/ata/sata_svw.c +2
-1+if (of_property_read_reg (np,0 , ®,NULL ))continue ; -if (index == *reg) { +if (index == reg) {seq_printf (m,"devspec: %pOF\n" , np);break ; }
MBR, Sergey
Quoted 4 lines · Rob Herring
Use the recently added
of_property_read_reg()helper to get the untranslated "reg" address value.Signed-off-by Rob Herring <[email protected]>
Applied to for-6.5 with the blan line after the declaration added as Sergey suggested. Thanks !
Signature · 2 lines
Damien Le Moal Western Digital Research