omapfb: Fix regulator API abuse in dss.c and hdmi4/5.c
The voltage changing code in this driver is broken and should be removed. The driver sets a single, exact voltage on probe. Unless there is a very good reason for this (which should be documented in comments) constraints like this need to be set via the machine constraints, voltage setting in a driver is expected to be used in cases where the voltage varies at runtime. In addition client drivers should almost never be calling regulator_can_set_voltage(), if the device needs to set a voltage it needs to set the voltage and the regulator core will handle the case where the regulator is fixed voltage. If the driver can skip setting the voltage it should just never set the voltage. Signed-off-by: Mark Brown <broonie@kernel.org> [tomi.valkeinen@ti.com: fix abuse in hdmi5.c too] Signed-off-by: Tomi Valkeinen <tomi.valkeinen@ti.com>
This commit is contained in:
Родитель
29b4817d40
Коммит
1d1e56f414
|
@ -1167,7 +1167,6 @@ static int dsi_regulator_init(struct platform_device *dsidev)
|
|||
{
|
||||
struct dsi_data *dsi = dsi_get_dsidrv_data(dsidev);
|
||||
struct regulator *vdds_dsi;
|
||||
int r;
|
||||
|
||||
if (dsi->vdds_dsi_reg != NULL)
|
||||
return 0;
|
||||
|
@ -1180,13 +1179,6 @@ static int dsi_regulator_init(struct platform_device *dsidev)
|
|||
return PTR_ERR(vdds_dsi);
|
||||
}
|
||||
|
||||
r = regulator_set_voltage(vdds_dsi, 1800000, 1800000);
|
||||
if (r) {
|
||||
devm_regulator_put(vdds_dsi);
|
||||
DSSERR("can't set the DSI regulator voltage\n");
|
||||
return r;
|
||||
}
|
||||
|
||||
dsi->vdds_dsi_reg = vdds_dsi;
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -100,7 +100,6 @@ static irqreturn_t hdmi_irq_handler(int irq, void *data)
|
|||
|
||||
static int hdmi_init_regulator(void)
|
||||
{
|
||||
int r;
|
||||
struct regulator *reg;
|
||||
|
||||
if (hdmi.vdda_reg != NULL)
|
||||
|
@ -114,13 +113,6 @@ static int hdmi_init_regulator(void)
|
|||
return PTR_ERR(reg);
|
||||
}
|
||||
|
||||
r = regulator_set_voltage(reg, 1800000, 1800000);
|
||||
if (r) {
|
||||
devm_regulator_put(reg);
|
||||
DSSWARN("can't set the regulator voltage\n");
|
||||
return r;
|
||||
}
|
||||
|
||||
hdmi.vdda_reg = reg;
|
||||
|
||||
return 0;
|
||||
|
|
|
@ -119,7 +119,6 @@ static irqreturn_t hdmi_irq_handler(int irq, void *data)
|
|||
|
||||
static int hdmi_init_regulator(void)
|
||||
{
|
||||
int r;
|
||||
struct regulator *reg;
|
||||
|
||||
if (hdmi.vdda_reg != NULL)
|
||||
|
@ -131,13 +130,6 @@ static int hdmi_init_regulator(void)
|
|||
return PTR_ERR(reg);
|
||||
}
|
||||
|
||||
r = regulator_set_voltage(reg, 1800000, 1800000);
|
||||
if (r) {
|
||||
devm_regulator_put(reg);
|
||||
DSSWARN("can't set the regulator voltage\n");
|
||||
return r;
|
||||
}
|
||||
|
||||
hdmi.vdda_reg = reg;
|
||||
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче