Hi,
The virtual consumer driver itself looks odd too. Is it a hack to enable user side to set the voltage, current and on/off state of the regulators? About these warning, I think the regulators should ether be marked as always_on, or enabled by their consumers. Haijun Subject: Re: [linux-sunxi] Issue - [cpu_freq] ERR:try to get regulator failed, core vdd will not changed! After restoring to origin linux-sunxi stage/sunxi-3.4 branch's kernel & sun7i_defconfig, the 'deferral' problem disappear. but [ 4.864677] Console: switching to colour frame buffer device 160x45 [ 4.893154] axp20_buck3: incomplete constraints, leaving on [ 4.903500] axp20_buck2: incomplete constraints, leaving on [ 4.913747] axp20_ldo4: incomplete constraints, leaving on [ 4.923909] axp20_ldo3: incomplete constraints, leaving on [ 4.934070] axp20_ldo2: incomplete constraints, leaving on [ 4.944231] axp20_ldo1: incomplete constraints, leaving on 2014-03-31 10:26 GMT+08:00 Huang Benn <benn.hu...@gmail.com <mailto:benn.hu...@gmail.com> >: 2014-03-31 2:45 GMT+08:00 Olliver Schinagl <oliver+l...@schinagl.nl <mailto:oliver+l...@schinagl.nl> >: On 03/30/2014 03:22 PM, Huang Benn wrote: for 3.4 kernel, it fail to get regulator. who know what happen. I was tracing the issue without success :P anyone can help ? thanks On what hardware is this happening? all a10/a20 or all axp20* based hardware? The bug you point out does look odd., I don't think your supposed to pass NULL to it, but what do I know ;) Both exist on Cubieboard2 and Cubietruck. When I found the following code, I get surprised. I think it's a mistake to pass NULL to regulator_get. //drvdata->regulator = regulator_get(&pdev->dev, reg_id); //I've tried this line, the same result. drvdata->regulator = regulator_get(NULL, reg_id); ----- Bug ? //drvdata->regulator = regulator_get(NULL, "axp20_analog/fm"); Olliver kernel: linux-sunxi/stage/sunxi-3.4 CODE: drivers/power/axp_power/virtual20.c static int regulator_virtual_consumer_probe(struct platform_device *pdev) { char *reg_id = pdev->dev.platform_data; struct virtual_consumer_data *drvdata; int ret, i; pr_warning("[%s] enter1, pdev=%s, reg_id=%s\n", __FUNCTION__, pdev->name, reg_id); drvdata = kzalloc(sizeof(struct virtual_consumer_data), GFP_KERNEL); if (drvdata == NULL) { pr_warning("[%s] enter 2\n", __FUNCTION__); ret = -ENOMEM; goto err; } mutex_init(&drvdata->lock); pr_warning("[%s] pdev=%p, reg_id=%s\n", __FUNCTION__, pdev, reg_id); //drvdata->regulator = regulator_get(&pdev->dev, reg_id); drvdata->regulator = regulator_get(NULL, reg_id); ----- Bug ? //drvdata->regulator = regulator_get(NULL, "axp20_analog/fm"); if (IS_ERR(drvdata->regulator)) { ret = PTR_ERR(drvdata->regulator); pr_warning("[%s] enter3\n", __FUNCTION__); goto err; } -- You received this message because you are subscribed to the Google Groups "linux-sunxi" group. To unsubscribe from this group and stop receiving emails from it, send an email to linux-sunxi+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.