Commit 9578a10d authored by Daniel Vetter's avatar Daniel Vetter
Browse files

Merge tag 'drm-misc-next-2023-03-23' of git://anongit.freedesktop.org/drm/drm-misc into drm-next



drm-misc-next for v6.4-rc1:

Core Changes:
- Add unit test for xrgb8888 to mono.
- Assorted small fixes to format helper selftests.
- Assorted documentation updates.
- Drop drm_dev_set_unique.
- Always use shadow buffer in generic fbdev emulation helpers, and
  improve error handling.

Driver Changes:
- Assorted small fixes to malidp, hdlcd, gma500, lima, bridge, rockchip.
- Move fbdev in gma500 to use drm_client.
- Convert bridge platform callbacks to void return.
- Drop leftover from vgem to shmem helper conversion.

Signed-off-by: default avatarDaniel Vetter <daniel.vetter@ffwll.ch>
From: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/5a4c438e-7047-c044-fc77-5a3597000264@linux.intel.com
parents d36d68fd 4ab9157c
Loading
Loading
Loading
Loading
+1 −3
Original line number Diff line number Diff line
@@ -100,7 +100,6 @@ static int hdlcd_load(struct drm_device *drm, unsigned long flags)
{
	struct hdlcd_drm_private *hdlcd = drm_to_hdlcd_priv(drm);
	struct platform_device *pdev = to_platform_device(drm->dev);
	struct resource *res;
	u32 version;
	int ret;

@@ -115,8 +114,7 @@ static int hdlcd_load(struct drm_device *drm, unsigned long flags)
	atomic_set(&hdlcd->dma_end_count, 0);
#endif

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	hdlcd->mmio = devm_ioremap_resource(drm->dev, res);
	hdlcd->mmio = devm_platform_ioremap_resource(pdev, 0);
	if (IS_ERR(hdlcd->mmio)) {
		DRM_ERROR("failed to map control registers area\n");
		ret = PTR_ERR(hdlcd->mmio);
+1 −2
Original line number Diff line number Diff line
@@ -724,8 +724,7 @@ static int malidp_bind(struct device *dev)
	hwdev->hw = (struct malidp_hw *)of_device_get_match_data(dev);
	malidp->dev = hwdev;

	res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
	hwdev->regs = devm_ioremap_resource(dev, res);
	hwdev->regs = devm_platform_get_and_ioremap_resource(pdev, 0, &res);
	if (IS_ERR(hwdev->regs))
		return PTR_ERR(hwdev->regs);

+11 −14
Original line number Diff line number Diff line
@@ -103,22 +103,19 @@ void adv7533_dsi_power_off(struct adv7511 *adv)
enum drm_mode_status adv7533_mode_valid(struct adv7511 *adv,
					const struct drm_display_mode *mode)
{
	int lanes;
	unsigned long max_lane_freq;
	struct mipi_dsi_device *dsi = adv->dsi;
	u8 bpp = mipi_dsi_pixel_format_to_bpp(dsi->format);

	if (mode->clock > 80000)
		lanes = 4;
	else
		lanes = 3;
	/* Check max clock for either 7533 or 7535 */
	if (mode->clock > (adv->type == ADV7533 ? 80000 : 148500))
		return MODE_CLOCK_HIGH;

	/*
	 * TODO: add support for dynamic switching of lanes
	 * by using the bridge pre_enable() op . Till then filter
	 * out the modes which shall need different number of lanes
	 * than what was configured in the device tree.
	 */
	if (lanes != dsi->lanes)
		return MODE_BAD;
	/* Check max clock for each lane */
	max_lane_freq = (adv->type == ADV7533 ? 800000 : 891000);

	if (mode->clock * bpp > max_lane_freq * adv->num_dsi_lanes)
		return MODE_CLOCK_HIGH;

	return MODE_OK;
}
+2 −4
Original line number Diff line number Diff line
@@ -1278,7 +1278,7 @@ static int cdns_dsi_drm_probe(struct platform_device *pdev)
	return ret;
}

static int cdns_dsi_drm_remove(struct platform_device *pdev)
static void cdns_dsi_drm_remove(struct platform_device *pdev)
{
	struct cdns_dsi *dsi = platform_get_drvdata(pdev);

@@ -1288,8 +1288,6 @@ static int cdns_dsi_drm_remove(struct platform_device *pdev)
		dsi->platform_ops->deinit(dsi);

	pm_runtime_disable(&pdev->dev);

	return 0;
}

static const struct of_device_id cdns_dsi_of_match[] = {
@@ -1303,7 +1301,7 @@ MODULE_DEVICE_TABLE(of, cdns_dsi_of_match);

static struct platform_driver cdns_dsi_platform_driver = {
	.probe  = cdns_dsi_drm_probe,
	.remove = cdns_dsi_drm_remove,
	.remove_new = cdns_dsi_drm_remove,
	.driver = {
		.name   = "cdns-dsi",
		.of_match_table = cdns_dsi_of_match,
+5 −10
Original line number Diff line number Diff line
@@ -271,12 +271,9 @@ static int display_connector_probe(struct platform_device *pdev)
	    type == DRM_MODE_CONNECTOR_DisplayPort) {
		conn->hpd_gpio = devm_gpiod_get_optional(&pdev->dev, "hpd",
							 GPIOD_IN);
		if (IS_ERR(conn->hpd_gpio)) {
			if (PTR_ERR(conn->hpd_gpio) != -EPROBE_DEFER)
				dev_err(&pdev->dev,
		if (IS_ERR(conn->hpd_gpio))
			return dev_err_probe(&pdev->dev, PTR_ERR(conn->hpd_gpio),
					     "Unable to retrieve HPD GPIO\n");
			return PTR_ERR(conn->hpd_gpio);
		}

		conn->hpd_irq = gpiod_to_irq(conn->hpd_gpio);
	} else {
@@ -382,7 +379,7 @@ static int display_connector_probe(struct platform_device *pdev)
	return 0;
}

static int display_connector_remove(struct platform_device *pdev)
static void display_connector_remove(struct platform_device *pdev)
{
	struct display_connector *conn = platform_get_drvdata(pdev);

@@ -396,8 +393,6 @@ static int display_connector_remove(struct platform_device *pdev)

	if (!IS_ERR(conn->bridge.ddc))
		i2c_put_adapter(conn->bridge.ddc);

	return 0;
}

static const struct of_device_id display_connector_match[] = {
@@ -426,7 +421,7 @@ MODULE_DEVICE_TABLE(of, display_connector_match);

static struct platform_driver display_connector_driver = {
	.probe	= display_connector_probe,
	.remove	= display_connector_remove,
	.remove_new = display_connector_remove,
	.driver		= {
		.name		= "display-connector",
		.of_match_table	= display_connector_match,
Loading