summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJan Remmet <j.remmet@phytec.de>2015-06-19 09:41:37 +0200
committerMarc Kleine-Budde <mkl@pengutronix.de>2015-06-21 20:30:51 +0200
commitb1a52928e7bf4126bbe014ee434bd91c4f804bba (patch)
tree9324bffaed9ad5e482b531cfd25495fa746b195a
parent66b3a1b9be863ade2570ca74df5647999f1208c1 (diff)
downloaddt-utils-b1a52928e7bf4126bbe014ee434bd91c4f804bba.tar.gz
dt-utils-b1a52928e7bf4126bbe014ee434bd91c4f804bba.tar.xz
libdt: fix detection of eeprom devicepath
If nodepath can directly be translated to a device, the device can also be a eeprom. Set default size to 0. The real size can be got from the path. Signed-off-by: Jan Remmet <j.remmet@phytec.de> Signed-off-by: Marc Kleine-Budde <mkl@pengutronix.de>
-rw-r--r--src/libdt.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/src/libdt.c b/src/libdt.c
index 925cca8..7a1fb55 100644
--- a/src/libdt.c
+++ b/src/libdt.c
@@ -2225,16 +2225,20 @@ int of_get_devicepath(struct device_node *partition_node, char **devpath, off_t
int ret;
*offset = 0;
+ *size = 0;
/*
* simplest case: This nodepath can directly be translated into
- * a mtd device. This requires that the mtd partitions have a
- * device_node set in the kernel. This requires an out-of-tree kernel
- * patch.
+ * a mtd or eeprom device. A mtd device requires that the mtd
+ * partitions have a device_node set in the kernel. This requires
+ * an out-of-tree kernel patch.
*/
dev = of_find_device_by_node_path(partition_node->full_name);
if (dev)
- return udev_parse_mtd(dev, devpath, size);
+ if (udev_device_is_eeprom(dev))
+ return udev_parse_eeprom(dev, devpath);
+ else
+ return udev_parse_mtd(dev, devpath, size);
/*
* Ok, the partition node has no udev_device. Try parent node.