On 11/26/2012 11:33 PM, Terje Bergström wrote:
On 27.11.2012 01:39, Stephen Warren wrote:
Clock names shouldn't be passed in platform data; instead, clk_get() should be passed the device object and device-relative (i.e. not global) clock name. I expect if the driver is fixed to make this change, the changes to tegra*_clocks_data.c won't be needed either.
Isn't this code doing exactly that - getting a device relative clock, nvhost_module_init() in nvhost.acm.c:
(...) /* initialize clocks to known state */ while (pdata->clocks[i].name && i < NVHOST_MODULE_MAX_CLOCKS) { long rate = pdata->clocks[i].default_rate; struct clk *c;
c = devm_clk_get(&dev->dev, pdata->clocks[i].name);
The line above is getting the (device-relative) clock name from platform data, rather than using some fixed name as it should be.