Skip to content

Commit 683ec0e

Browse files
oohalmpe
authored andcommitted
powerpc/papr_scm: Update DT properties
The ibm,unit-sizes property was originally specified as an array of two u32s corresponding to the memory block size, and the number of blocks available in that region. A fairly last-minute change to the SCM DT specification was splitting that into two seperate u64 properties: ibm,block-sizes and ibm,number-of-blocks that convey the same information. No firmware / hypervisor that emitted the ibm,unit-size property ever appeared in the wild. Fixes: b5beae5 ("powerpc/pseries: Add driver for PAPR SCM regions") Signed-off-by: Oliver O'Halloran <oohall@gmail.com> [mpe: Use kernel types (u32/u64)] Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
1 parent 5961352 commit 683ec0e

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

arch/powerpc/platforms/pseries/papr_scm.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -257,8 +257,9 @@ err: nvdimm_bus_unregister(p->bus);
257257

258258
static int papr_scm_probe(struct platform_device *pdev)
259259
{
260-
uint32_t drc_index, metadata_size, unit_cap[2];
261260
struct device_node *dn = pdev->dev.of_node;
261+
u32 drc_index, metadata_size;
262+
u64 blocks, block_size;
262263
struct papr_scm_priv *p;
263264
int rc;
264265

@@ -268,8 +269,13 @@ static int papr_scm_probe(struct platform_device *pdev)
268269
return -ENODEV;
269270
}
270271

271-
if (of_property_read_u32_array(dn, "ibm,unit-capacity", unit_cap, 2)) {
272-
dev_err(&pdev->dev, "%pOF: missing unit-capacity!\n", dn);
272+
if (of_property_read_u64(dn, "ibm,block-size", &block_size)) {
273+
dev_err(&pdev->dev, "%pOF: missing block-size!\n", dn);
274+
return -ENODEV;
275+
}
276+
277+
if (of_property_read_u64(dn, "ibm,number-of-blocks", &blocks)) {
278+
dev_err(&pdev->dev, "%pOF: missing number-of-blocks!\n", dn);
273279
return -ENODEV;
274280
}
275281

@@ -282,8 +288,8 @@ static int papr_scm_probe(struct platform_device *pdev)
282288

283289
p->dn = dn;
284290
p->drc_index = drc_index;
285-
p->block_size = unit_cap[0];
286-
p->blocks = unit_cap[1];
291+
p->block_size = block_size;
292+
p->blocks = blocks;
287293

288294
/* might be zero */
289295
p->metadata_size = metadata_size;

0 commit comments

Comments
 (0)