On Sat, Nov 14, 2015 at 10:16:33PM +0100, Pavel Machek wrote: > HiOn Sat 2015-11-14 18:49:40, Mark Brown wrote: > > On Sat, Nov 14, 2015 at 06:59:16PM +0100, Pavel Machek wrote: > > > Well, mfd_core.c seems to call regulator_bulk_register_supply_alias() > > > with device that does not have dev_name initialized. > > OK, that'll be the problem then - we're not mapping the supply into the > > individual child device but rather system wide, probably because that > > mapping is being done too early, before we've actually created the > > device. > Take a look at mfd_add_device(). Yes, we do > regulator_bulk_register_supply_alias() before doing > platform_device_add(). Looking at this I suspect we need to re-add the code for matching regulators on the actual struct device and do that since this is going to be very error prone. > I guess Charles Keepax should be listed there? Possibly, up to them. > > So if you look at this just templates out some boilerplate regulator API > > client code which calls regulator_get() like any other client and then > > hooks that regulator into the audio power management. > Ok, so SND_SOC_DAPM_REGULATOR_SUPPLY() does not work, because I have > two regulators, right? Is there similar macro I can use? No? What would make you say that? > Do you have an example (filename, linenumber) of sound driver that > gets this right? I'm not aware of any drivers that get this wrong. > > I'm not sure how I can be any clearer that supply names are namespaced > > by client device and that as a result fiddling around with the supply > > name is not going to help anything. > Well, you are saying that pretty clearly, but sound driver I seen > assumes names are global, and /sys interface assumed the names are > global. Give me an example I can look at and I should be able to > figure it out... You are clear, but the kernel code seems to disagree > with you. Every single sound driver gets this right, none of them assume the name is global. What makes you say that they assume names are global?