Revert "drm/panel: Initialise panel dev and funcs through drm_panel_init()"

This reverts commit 362940f8e4 which is
commit 6dbe0c4b0fc0646442b2b1580d022404e582fd7b upstream.

It breaks the Android abi and is not needed for any Android systems.  If
it is required in the future, it can come back in an abi-safe way.

Bug: 161946584
Change-Id: I4df07557f05d05ef1d0762a5392ed7203894fb56
Signed-off-by: Greg Kroah-Hartman <gregkh@google.com>
This commit is contained in:
Greg Kroah-Hartman 2023-08-03 18:24:08 +00:00
parent 4d6b7da7af
commit f829d76234
41 changed files with 121 additions and 53 deletions

View File

@ -44,19 +44,14 @@ static LIST_HEAD(panel_list);
/**
* drm_panel_init - initialize a panel
* @panel: DRM panel
* @dev: parent device of the panel
* @funcs: panel operations
*
* Initialize the panel structure for subsequent registration with
* drm_panel_add().
* Sets up internal fields of the panel so that it can subsequently be added
* to the registry.
*/
void drm_panel_init(struct drm_panel *panel, struct device *dev,
const struct drm_panel_funcs *funcs)
void drm_panel_init(struct drm_panel *panel)
{
INIT_LIST_HEAD(&panel->list);
BLOCKING_INIT_NOTIFIER_HEAD(&panel->nh);
panel->dev = dev;
panel->funcs = funcs;
}
EXPORT_SYMBOL(drm_panel_init);

View File

@ -350,7 +350,9 @@ static int versatile_panel_probe(struct platform_device *pdev)
dev_info(dev, "panel mounted on IB2 daughterboard\n");
}
drm_panel_init(&vpanel->panel, dev, &versatile_panel_drm_funcs);
drm_panel_init(&vpanel->panel);
vpanel->panel.dev = dev;
vpanel->panel.funcs = &versatile_panel_drm_funcs;
return drm_panel_add(&vpanel->panel);
}

View File

@ -204,7 +204,9 @@ static int feiyang_dsi_probe(struct mipi_dsi_device *dsi)
mipi_dsi_set_drvdata(dsi, ctx);
ctx->dsi = dsi;
drm_panel_init(&ctx->panel, &dsi->dev, &feiyang_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = &dsi->dev;
ctx->panel.funcs = &feiyang_funcs;
ctx->dvdd = devm_regulator_get(&dsi->dev, "dvdd");
if (IS_ERR(ctx->dvdd)) {

View File

@ -895,7 +895,9 @@ static int ili9322_probe(struct spi_device *spi)
ili->input = ili->conf->input;
}
drm_panel_init(&ili->panel, dev, &ili9322_drm_funcs);
drm_panel_init(&ili->panel);
ili->panel.dev = dev;
ili->panel.funcs = &ili9322_drm_funcs;
return drm_panel_add(&ili->panel);
}

View File

@ -433,7 +433,9 @@ static int ili9881c_dsi_probe(struct mipi_dsi_device *dsi)
mipi_dsi_set_drvdata(dsi, ctx);
ctx->dsi = dsi;
drm_panel_init(&ctx->panel, &dsi->dev, &ili9881c_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = &dsi->dev;
ctx->panel.funcs = &ili9881c_funcs;
ctx->power = devm_regulator_get(&dsi->dev, "power");
if (IS_ERR(ctx->power)) {

View File

@ -487,7 +487,9 @@ static int innolux_panel_add(struct mipi_dsi_device *dsi,
if (IS_ERR(innolux->backlight))
return PTR_ERR(innolux->backlight);
drm_panel_init(&innolux->base, dev, &innolux_panel_funcs);
drm_panel_init(&innolux->base);
innolux->base.funcs = &innolux_panel_funcs;
innolux->base.dev = dev;
err = drm_panel_add(&innolux->base);
if (err < 0)

View File

@ -437,7 +437,9 @@ static int jdi_panel_add(struct jdi_panel *jdi)
return ret;
}
drm_panel_init(&jdi->base, &jdi->dsi->dev, &jdi_panel_funcs);
drm_panel_init(&jdi->base);
jdi->base.funcs = &jdi_panel_funcs;
jdi->base.dev = &jdi->dsi->dev;
ret = drm_panel_add(&jdi->base);

View File

@ -391,8 +391,9 @@ static int kingdisplay_panel_add(struct kingdisplay_panel *kingdisplay)
if (IS_ERR(kingdisplay->backlight))
return PTR_ERR(kingdisplay->backlight);
drm_panel_init(&kingdisplay->base, &kingdisplay->link->dev,
&kingdisplay_panel_funcs);
drm_panel_init(&kingdisplay->base);
kingdisplay->base.funcs = &kingdisplay_panel_funcs;
kingdisplay->base.dev = &kingdisplay->link->dev;
return drm_panel_add(&kingdisplay->base);
}

View File

@ -196,7 +196,9 @@ static int lb035q02_probe(struct spi_device *spi)
if (ret < 0)
return ret;
drm_panel_init(&lcd->panel, &lcd->spi->dev, &lb035q02_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = &lcd->spi->dev;
lcd->panel.funcs = &lb035q02_funcs;
return drm_panel_add(&lcd->panel);
}

View File

@ -259,7 +259,9 @@ static int lg4573_probe(struct spi_device *spi)
return ret;
}
drm_panel_init(&ctx->panel, &spi->dev, &lg4573_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = &spi->dev;
ctx->panel.funcs = &lg4573_drm_funcs;
return drm_panel_add(&ctx->panel);
}

View File

@ -254,7 +254,9 @@ static int panel_lvds_probe(struct platform_device *pdev)
*/
/* Register the panel. */
drm_panel_init(&lvds->panel, lvds->dev, &panel_lvds_funcs);
drm_panel_init(&lvds->panel);
lvds->panel.dev = lvds->dev;
lvds->panel.funcs = &panel_lvds_funcs;
ret = drm_panel_add(&lvds->panel);
if (ret < 0)

View File

@ -205,7 +205,9 @@ static int nl8048_probe(struct spi_device *spi)
if (ret < 0)
return ret;
drm_panel_init(&lcd->panel, &lcd->spi->dev, &nl8048_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = &lcd->spi->dev;
lcd->panel.funcs = &nl8048_funcs;
return drm_panel_add(&lcd->panel);
}

View File

@ -292,7 +292,9 @@ static int nt39016_probe(struct spi_device *spi)
return err;
}
drm_panel_init(&panel->drm_panel, dev, &nt39016_funcs);
drm_panel_init(&panel->drm_panel);
panel->drm_panel.dev = dev;
panel->drm_panel.funcs = &nt39016_funcs;
err = drm_panel_add(&panel->drm_panel);
if (err < 0) {

View File

@ -288,7 +288,9 @@ static int lcd_olinuxino_probe(struct i2c_client *client,
if (IS_ERR(lcd->backlight))
return PTR_ERR(lcd->backlight);
drm_panel_init(&lcd->panel, dev, &lcd_olinuxino_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = dev;
lcd->panel.funcs = &lcd_olinuxino_funcs;
return drm_panel_add(&lcd->panel);
}

View File

@ -455,7 +455,9 @@ static int otm8009a_probe(struct mipi_dsi_device *dsi)
dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_LPM;
drm_panel_init(&ctx->panel, dev, &otm8009a_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &otm8009a_drm_funcs;
ctx->bl_dev = devm_backlight_device_register(dev, dev_name(dev),
dev, ctx,

View File

@ -166,8 +166,9 @@ static int osd101t2587_panel_add(struct osd101t2587_panel *osd101t2587)
if (IS_ERR(osd101t2587->backlight))
return PTR_ERR(osd101t2587->backlight);
drm_panel_init(&osd101t2587->base, &osd101t2587->dsi->dev,
&osd101t2587_panel_funcs);
drm_panel_init(&osd101t2587->base);
osd101t2587->base.funcs = &osd101t2587_panel_funcs;
osd101t2587->base.dev = &osd101t2587->dsi->dev;
return drm_panel_add(&osd101t2587->base);
}

View File

@ -223,8 +223,9 @@ static int wuxga_nt_panel_add(struct wuxga_nt_panel *wuxga_nt)
return -EPROBE_DEFER;
}
drm_panel_init(&wuxga_nt->base, &wuxga_nt->dsi->dev,
&wuxga_nt_panel_funcs);
drm_panel_init(&wuxga_nt->base);
wuxga_nt->base.funcs = &wuxga_nt_panel_funcs;
wuxga_nt->base.dev = &wuxga_nt->dsi->dev;
ret = drm_panel_add(&wuxga_nt->base);
if (ret < 0)

View File

@ -433,7 +433,9 @@ static int rpi_touchscreen_probe(struct i2c_client *i2c,
return PTR_ERR(ts->dsi);
}
drm_panel_init(&ts->base, dev, &rpi_touchscreen_funcs);
drm_panel_init(&ts->base);
ts->base.dev = dev;
ts->base.funcs = &rpi_touchscreen_funcs;
/* This appears last, as it's what will unblock the DSI host
* driver's component bind function.

View File

@ -606,7 +606,9 @@ static int rad_panel_probe(struct mipi_dsi_device *dsi)
if (ret)
return ret;
drm_panel_init(&panel->panel, dev, &rad_panel_funcs);
drm_panel_init(&panel->panel);
panel->panel.funcs = &rad_panel_funcs;
panel->panel.dev = dev;
dev_set_drvdata(dev, panel);
ret = drm_panel_add(&panel->panel);

View File

@ -404,7 +404,9 @@ static int rm68200_probe(struct mipi_dsi_device *dsi)
dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST |
MIPI_DSI_MODE_LPM;
drm_panel_init(&ctx->panel, dev, &rm68200_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &rm68200_drm_funcs;
drm_panel_add(&ctx->panel);

View File

@ -343,7 +343,9 @@ static int jh057n_probe(struct mipi_dsi_device *dsi)
return ret;
}
drm_panel_init(&ctx->panel, dev, &jh057n_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &jh057n_drm_funcs;
drm_panel_add(&ctx->panel);

View File

@ -173,7 +173,9 @@ static int rb070d30_panel_dsi_probe(struct mipi_dsi_device *dsi)
mipi_dsi_set_drvdata(dsi, ctx);
ctx->dsi = dsi;
drm_panel_init(&ctx->panel, &dsi->dev, &rb070d30_panel_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = &dsi->dev;
ctx->panel.funcs = &rb070d30_panel_funcs;
ctx->gpios.reset = devm_gpiod_get(&dsi->dev, "reset", GPIOD_OUT_LOW);
if (IS_ERR(ctx->gpios.reset)) {

View File

@ -351,7 +351,9 @@ static int ld9040_probe(struct spi_device *spi)
return ret;
}
drm_panel_init(&ctx->panel, dev, &ld9040_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &ld9040_drm_funcs;
return drm_panel_add(&ctx->panel);
}

View File

@ -215,7 +215,9 @@ static int s6d16d0_probe(struct mipi_dsi_device *dsi)
return ret;
}
drm_panel_init(&s6->panel, dev, &s6d16d0_drm_funcs);
drm_panel_init(&s6->panel);
s6->panel.dev = dev;
s6->panel.funcs = &s6d16d0_drm_funcs;
ret = drm_panel_add(&s6->panel);
if (ret < 0)

View File

@ -732,7 +732,9 @@ static int s6e3ha2_probe(struct mipi_dsi_device *dsi)
ctx->bl_dev->props.brightness = S6E3HA2_DEFAULT_BRIGHTNESS;
ctx->bl_dev->props.power = FB_BLANK_POWERDOWN;
drm_panel_init(&ctx->panel, dev, &s6e3ha2_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &s6e3ha2_drm_funcs;
ret = drm_panel_add(&ctx->panel);
if (ret < 0)

View File

@ -466,7 +466,9 @@ static int s6e63j0x03_probe(struct mipi_dsi_device *dsi)
return PTR_ERR(ctx->reset_gpio);
}
drm_panel_init(&ctx->panel, dev, &s6e63j0x03_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &s6e63j0x03_funcs;
ctx->bl_dev = backlight_device_register("s6e63j0x03", dev, ctx,
&s6e63j0x03_bl_ops, NULL);

View File

@ -473,7 +473,9 @@ static int s6e63m0_probe(struct spi_device *spi)
return ret;
}
drm_panel_init(&ctx->panel, dev, &s6e63m0_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &s6e63m0_drm_funcs;
ret = s6e63m0_backlight_register(ctx);
if (ret < 0)

View File

@ -1017,7 +1017,9 @@ static int s6e8aa0_probe(struct mipi_dsi_device *dsi)
ctx->brightness = GAMMA_LEVEL_NUM - 1;
drm_panel_init(&ctx->panel, dev, &s6e8aa0_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &s6e8aa0_drm_funcs;
ret = drm_panel_add(&ctx->panel);
if (ret < 0)

View File

@ -274,7 +274,9 @@ static int seiko_panel_probe(struct device *dev,
return -EPROBE_DEFER;
}
drm_panel_init(&panel->base, dev, &seiko_panel_funcs);
drm_panel_init(&panel->base);
panel->base.dev = dev;
panel->base.funcs = &seiko_panel_funcs;
err = drm_panel_add(&panel->base);
if (err < 0)

View File

@ -329,7 +329,9 @@ static int sharp_panel_add(struct sharp_panel *sharp)
if (IS_ERR(sharp->backlight))
return PTR_ERR(sharp->backlight);
drm_panel_init(&sharp->base, &sharp->link1->dev, &sharp_panel_funcs);
drm_panel_init(&sharp->base);
sharp->base.funcs = &sharp_panel_funcs;
sharp->base.dev = &sharp->link1->dev;
return drm_panel_add(&sharp->base);
}

View File

@ -185,7 +185,9 @@ static int ls037v7dw01_probe(struct platform_device *pdev)
return PTR_ERR(lcd->ud_gpio);
}
drm_panel_init(&lcd->panel, &pdev->dev, &ls037v7dw01_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = &pdev->dev;
lcd->panel.funcs = &ls037v7dw01_funcs;
return drm_panel_add(&lcd->panel);
}

View File

@ -264,8 +264,9 @@ static int sharp_nt_panel_add(struct sharp_nt_panel *sharp_nt)
if (IS_ERR(sharp_nt->backlight))
return PTR_ERR(sharp_nt->backlight);
drm_panel_init(&sharp_nt->base, &sharp_nt->dsi->dev,
&sharp_nt_panel_funcs);
drm_panel_init(&sharp_nt->base);
sharp_nt->base.funcs = &sharp_nt_panel_funcs;
sharp_nt->base.dev = &sharp_nt->dsi->dev;
return drm_panel_add(&sharp_nt->base);
}

View File

@ -464,7 +464,9 @@ static int panel_simple_probe(struct device *dev, const struct panel_desc *desc)
if (!of_get_display_timing(dev->of_node, "panel-timing", &dt))
panel_simple_parse_panel_timing_node(dev, panel, &dt);
drm_panel_init(&panel->base, dev, &panel_simple_funcs);
drm_panel_init(&panel->base);
panel->base.dev = dev;
panel->base.funcs = &panel_simple_funcs;
err = drm_panel_add(&panel->base);
if (err < 0)

View File

@ -369,7 +369,7 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
if (IS_ERR(st7701->backlight))
return PTR_ERR(st7701->backlight);
drm_panel_init(&st7701->panel, &dsi->dev, &st7701_funcs);
drm_panel_init(&st7701->panel);
/**
* Once sleep out has been issued, ST7701 IC required to wait 120ms
@ -381,6 +381,8 @@ static int st7701_dsi_probe(struct mipi_dsi_device *dsi)
* ts8550b and there is no valid documentation for that.
*/
st7701->sleep_delay = 120 + desc->panel_sleep_delay;
st7701->panel.funcs = &st7701_funcs;
st7701->panel.dev = &dsi->dev;
ret = drm_panel_add(&st7701->panel);
if (ret < 0)

View File

@ -381,7 +381,9 @@ static int st7789v_probe(struct spi_device *spi)
spi_set_drvdata(spi, ctx);
ctx->spi = spi;
drm_panel_init(&ctx->panel, &spi->dev, &st7789v_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = &spi->dev;
ctx->panel.funcs = &st7789v_drm_funcs;
ctx->power = devm_regulator_get(&spi->dev, "power");
if (IS_ERR(ctx->power))

View File

@ -648,7 +648,9 @@ static int acx565akm_probe(struct spi_device *spi)
return ret;
}
drm_panel_init(&lcd->panel, &lcd->spi->dev, &acx565akm_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = &lcd->spi->dev;
lcd->panel.funcs = &acx565akm_funcs;
ret = drm_panel_add(&lcd->panel);
if (ret < 0) {

View File

@ -347,7 +347,9 @@ static int td028ttec1_probe(struct spi_device *spi)
return ret;
}
drm_panel_init(&lcd->panel, &lcd->spi->dev, &td028ttec1_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = &lcd->spi->dev;
lcd->panel.funcs = &td028ttec1_funcs;
return drm_panel_add(&lcd->panel);
}

View File

@ -458,7 +458,9 @@ static int td043mtea1_probe(struct spi_device *spi)
return ret;
}
drm_panel_init(&lcd->panel, &lcd->spi->dev, &td043mtea1_funcs);
drm_panel_init(&lcd->panel);
lcd->panel.dev = &lcd->spi->dev;
lcd->panel.funcs = &td043mtea1_funcs;
ret = drm_panel_add(&lcd->panel);
if (ret < 0) {

View File

@ -457,7 +457,9 @@ static int tpg110_probe(struct spi_device *spi)
if (ret)
return ret;
drm_panel_init(&tpg->panel, dev, &tpg110_drm_funcs);
drm_panel_init(&tpg->panel);
tpg->panel.dev = dev;
tpg->panel.funcs = &tpg110_drm_funcs;
spi_set_drvdata(spi, tpg);
return drm_panel_add(&tpg->panel);

View File

@ -518,7 +518,9 @@ static int truly_nt35597_panel_add(struct truly_nt35597 *ctx)
/* dual port */
gpiod_set_value(ctx->mode_gpio, 0);
drm_panel_init(&ctx->panel, dev, &truly_nt35597_drm_funcs);
drm_panel_init(&ctx->panel);
ctx->panel.dev = dev;
ctx->panel.funcs = &truly_nt35597_drm_funcs;
drm_panel_add(&ctx->panel);
return 0;

View File

@ -177,8 +177,7 @@ struct drm_panel {
struct blocking_notifier_head nh;
};
void drm_panel_init(struct drm_panel *panel, struct device *dev,
const struct drm_panel_funcs *funcs);
void drm_panel_init(struct drm_panel *panel);
int drm_panel_add(struct drm_panel *panel);
void drm_panel_remove(struct drm_panel *panel);