Commit 23ecd4c1 authored by Dave Airlie's avatar Dave Airlie
Browse files

Merge tag 'drm-misc-next-fixes-2022-01-21' of...

Merge tag 'drm-misc-next-fixes-2022-01-21' of git://anongit.freedesktop.org/drm/drm-misc

 into drm-fixes

 * vc4: Fix potential deadlock in DSI code
 * panel: Add orientation quirk for 1Netbook OneXPlayer

Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Thomas Zimmermann <tzimmermann@suse.de>
Link: https://patchwork.freedesktop.org/patch/msgid/Yepuhj+Ks+IyJ9Dp@linux-uq9g
parents e783362e d3cbc6e3
Loading
Loading
Loading
Loading
+12 −0
Original line number Original line Diff line number Diff line
@@ -115,6 +115,12 @@ static const struct drm_dmi_panel_orientation_data lcd1280x1920_rightside_up = {
	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
	.orientation = DRM_MODE_PANEL_ORIENTATION_RIGHT_UP,
};
};


static const struct drm_dmi_panel_orientation_data lcd1600x2560_leftside_up = {
	.width = 1600,
	.height = 2560,
	.orientation = DRM_MODE_PANEL_ORIENTATION_LEFT_UP,
};

static const struct dmi_system_id orientation_data[] = {
static const struct dmi_system_id orientation_data[] = {
	{	/* Acer One 10 (S1003) */
	{	/* Acer One 10 (S1003) */
		.matches = {
		.matches = {
@@ -275,6 +281,12 @@ static const struct dmi_system_id orientation_data[] = {
		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"),
		  DMI_EXACT_MATCH(DMI_PRODUCT_VERSION, "Default string"),
		},
		},
		.driver_data = (void *)&onegx1_pro,
		.driver_data = (void *)&onegx1_pro,
	}, {	/* OneXPlayer */
		.matches = {
		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "ONE-NETBOOK TECHNOLOGY CO., LTD."),
		  DMI_EXACT_MATCH(DMI_PRODUCT_NAME, "ONE XPLAYER"),
		},
		.driver_data = (void *)&lcd1600x2560_leftside_up,
	}, {	/* Samsung GalaxyBook 10.6 */
	}, {	/* Samsung GalaxyBook 10.6 */
		.matches = {
		.matches = {
		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
		  DMI_EXACT_MATCH(DMI_SYS_VENDOR, "SAMSUNG ELECTRONICS CO., LTD."),
+4 −10
Original line number Original line Diff line number Diff line
@@ -1262,7 +1262,6 @@ static int vc4_dsi_host_attach(struct mipi_dsi_host *host,
			       struct mipi_dsi_device *device)
			       struct mipi_dsi_device *device)
{
{
	struct vc4_dsi *dsi = host_to_dsi(host);
	struct vc4_dsi *dsi = host_to_dsi(host);
	int ret;


	dsi->lanes = device->lanes;
	dsi->lanes = device->lanes;
	dsi->channel = device->channel;
	dsi->channel = device->channel;
@@ -1297,18 +1296,15 @@ static int vc4_dsi_host_attach(struct mipi_dsi_host *host,
		return 0;
		return 0;
	}
	}


	ret = component_add(&dsi->pdev->dev, &vc4_dsi_ops);
	return component_add(&dsi->pdev->dev, &vc4_dsi_ops);
	if (ret) {
		mipi_dsi_host_unregister(&dsi->dsi_host);
		return ret;
	}

	return 0;
}
}


static int vc4_dsi_host_detach(struct mipi_dsi_host *host,
static int vc4_dsi_host_detach(struct mipi_dsi_host *host,
			       struct mipi_dsi_device *device)
			       struct mipi_dsi_device *device)
{
{
	struct vc4_dsi *dsi = host_to_dsi(host);

	component_del(&dsi->pdev->dev, &vc4_dsi_ops);
	return 0;
	return 0;
}
}


@@ -1686,9 +1682,7 @@ static int vc4_dsi_dev_remove(struct platform_device *pdev)
	struct device *dev = &pdev->dev;
	struct device *dev = &pdev->dev;
	struct vc4_dsi *dsi = dev_get_drvdata(dev);
	struct vc4_dsi *dsi = dev_get_drvdata(dev);


	component_del(&pdev->dev, &vc4_dsi_ops);
	mipi_dsi_host_unregister(&dsi->dsi_host);
	mipi_dsi_host_unregister(&dsi->dsi_host);

	return 0;
	return 0;
}
}