barebox state alias with same name as node doesn't work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

All the examples of "barebox,state" compatible nodes I can find in Barebox seem to follow this basic pattern:

/ {
  /* ... */
  aliases {
    /* ... */
    state = &state;
  };
  /* ... */
  state: state {
    magic = <0xdeadbeef>; /* or whatever */
    compatible = "barebox,state";
    /* ... */
  };
  /* ... */
};

Note that the alias name is the same as the node name in the above example.

However, when I try to follow that pattern for my own board, I get an error (-EINVAL):

ERROR: register_device: already registered state

This is because the node "state" has been already registered as a device called "state" by of_platform_device_create() (via of_probe() and of_arm_init()). Later, the state device driver is initialized and state_probe() is called on the device that was previously registered. state_probe() calls state_new_from_node() which calls of_alias_get() to get the name of the alias for this device (the alias is also called "state" in this example), and calls state_new() with this alias name. state_new() allocates a struct state with an embedded struct device_d, sets the device name to the alias name it was called with ("state"), and calls register_device() to register this embedded struct device_d. The call to register_device() fails with return value -EINVAL because the name is not unique.

I'm wondering if this has ever worked or whether there is a regression bug. I fixed it on my board by renaming node to "state_nor", keeping the alias name as "state".

I'm currently using Barebox 2018.12.0, but I don't see any relevant changes in Barebox 2019.01.0 or barebox-next.

Best regards,
Ian Abbott.

--
-=( Ian Abbott <abbotti@xxxxxxxxx> || Web: www.mev.co.uk )=-
-=( MEV Ltd. is a company registered in England & Wales. )=-
-=( Registered number: 02862268.  Registered address:    )=-
-=( 15 West Park Road, Bramhall, STOCKPORT, SK7 3JZ, UK. )=-

_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux