This check was attempting to ensure only one clcd device in the
device-tree was probed, however the check fails in the valid case where
the device is a child of another device and the 'reg' value is a offset
from the start of that other device, not an absolute address. This
occurs on vexpress with the motherboard clcd being a child of iofga.
For now, we will just have to rely on there only being one display
device specified in device-tree.
Signed-off-by: Jon Medhurst <tixy@linaro.org>
#ifdef CONFIG_OF
if (dev->dev.of_node) {
- const __be32 *prop;
- int len, na, ns;
- phys_addr_t reg_base;
-
- na = of_n_addr_cells(dev->dev.of_node);
- ns = of_n_size_cells(dev->dev.of_node);
-
- prop = of_get_property(dev->dev.of_node, "reg", &len);
- if (WARN_ON(!prop || len < (na + ns) * sizeof(*prop)))
- return -EINVAL;
- reg_base = of_read_number(prop, na);
-
- if (dev->res.start != reg_base)
- return -EINVAL;
-
if (!board) {
board = kzalloc(sizeof(struct clcd_board), GFP_KERNEL);
if (!board)