diff options
author | Jan Remmet <j.remmet@phytec.de> | 2015-06-19 09:41:37 +0200 |
---|---|---|
committer | Marc Kleine-Budde <mkl@pengutronix.de> | 2015-06-21 20:30:51 +0200 |
commit | b1a52928e7bf4126bbe014ee434bd91c4f804bba (patch) | |
tree | 9324bffaed9ad5e482b531cfd25495fa746b195a /src | |
parent | 66b3a1b9be863ade2570ca74df5647999f1208c1 (diff) | |
download | dt-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>
Diffstat (limited to 'src')
-rw-r--r-- | src/libdt.c | 12 |
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. |