diff -Nuar linux-meson-mx-integration-6.7-20231221/drivers/gpu/drm/meson/meson_drv.c linux-6.7-rc7-20231224/drivers/gpu/drm/meson/meson_drv.c
--- linux-meson-mx-integration-6.7-20231221/drivers/gpu/drm/meson/meson_drv.c	2023-12-21 15:43:50.000000000 -0500
+++ linux-6.7-rc7-20231224/drivers/gpu/drm/meson/meson_drv.c	2023-12-24 06:56:48.986121414 -0500
@@ -672,6 +672,10 @@
 	{ .compatible = "amlogic,meson-gxl-dw-hdmi" },
 	{ .compatible = "amlogic,meson-gxm-dw-hdmi" },
 	{ .compatible = "amlogic,meson-g12a-dw-hdmi" },
+#if (1)
+	{ .compatible = "amlogic,meson8-hdmi-tx" },
+	{ .compatible = "amlogic,meson8b-hdmi-tx" },
+#endif
 	{}
 };
 
diff -Nuar linux-meson-mx-integration-6.7-20231221/drivers/gpu/drm/meson/meson_plane.c linux-6.7-rc7-20231224/drivers/gpu/drm/meson/meson_plane.c
--- linux-meson-mx-integration-6.7-20231221/drivers/gpu/drm/meson/meson_plane.c	2023-12-21 15:43:50.000000000 -0500
+++ linux-6.7-rc7-20231224/drivers/gpu/drm/meson/meson_plane.c	2023-12-24 06:56:49.018121353 -0500
@@ -483,6 +483,10 @@
 static const uint32_t supported_drm_formats_m8[] = {
 	DRM_FORMAT_ARGB8888,
 	DRM_FORMAT_ABGR8888,
+#if (1) /* Format supported on some M8 and M8M2 and not just GX */
+	DRM_FORMAT_XRGB8888,
+	DRM_FORMAT_XBGR8888,
+#endif
 	DRM_FORMAT_RGB888,
 	DRM_FORMAT_RGB565,
 };
diff -Nuar linux-meson-mx-integration-6.7-20231221/drivers/gpu/drm/meson/meson_transwitch_hdmi.c linux-6.7-rc7-20231224/drivers/gpu/drm/meson/meson_transwitch_hdmi.c
--- linux-meson-mx-integration-6.7-20231221/drivers/gpu/drm/meson/meson_transwitch_hdmi.c	2023-12-21 15:43:50.000000000 -0500
+++ linux-6.7-rc7-20231224/drivers/gpu/drm/meson/meson_transwitch_hdmi.c	2023-12-24 06:56:49.026121337 -0500
@@ -1439,9 +1439,10 @@
 	return PTR_ERR_OR_ZERO(priv->hdmi_codec_pdev);
 }
 
-static int meson_txc_hdmi_probe(struct platform_device *pdev)
+static int meson_txc_hdmi_bind(struct device *dev, struct device *master,
+			       void *data)
 {
-	struct device *dev = &pdev->dev;
+	struct platform_device *pdev = to_platform_device(dev);
 	struct meson_txc_hdmi *priv;
 	void __iomem *base;
 	u32 regval;
@@ -1455,7 +1456,7 @@
 
 	mutex_init(&priv->codec_mutex);
 
-	platform_set_drvdata(pdev, priv);
+	dev_set_drvdata(dev, priv);
 
 	base = devm_platform_ioremap_resource(pdev, 0);
 	if (IS_ERR(base))
@@ -1524,9 +1525,10 @@
 	return ret;
 }
 
-static void meson_txc_hdmi_remove(struct platform_device *pdev)
+static void meson_txc_hdmi_unbind(struct device *dev, struct device *master,
+				  void *data)
 {
-	struct meson_txc_hdmi *priv = platform_get_drvdata(pdev);
+	struct meson_txc_hdmi *priv = dev_get_drvdata(dev);
 
 	platform_device_unregister(priv->hdmi_codec_pdev);
 
@@ -1537,6 +1539,23 @@
 	clk_disable_unprepare(priv->pclk);
 }
 
+static const struct component_ops meson_txc_hdmi_component_ops = {
+	.bind = meson_txc_hdmi_bind,
+	.unbind = meson_txc_hdmi_unbind,
+};
+
+static int meson_txc_hdmi_probe(struct platform_device *pdev)
+{
+	return component_add(&pdev->dev, &meson_txc_hdmi_component_ops);
+}
+
+static int meson_txc_hdmi_remove(struct platform_device *pdev)
+{
+	component_del(&pdev->dev, &meson_txc_hdmi_component_ops);
+
+	return 0;
+}
+
 static const struct of_device_id meson_txc_hdmi_of_table[] = {
 	{ .compatible = "amlogic,meson8-hdmi-tx" },
 	{ .compatible = "amlogic,meson8b-hdmi-tx" },
@@ -1546,7 +1565,7 @@
 
 static struct platform_driver meson_txc_hdmi_platform_driver = {
 	.probe		= meson_txc_hdmi_probe,
-	.remove_new	= meson_txc_hdmi_remove,
+	.remove		= meson_txc_hdmi_remove,
 	.driver		= {
 		.name		= "meson-transwitch-hdmi",
 		.of_match_table	= meson_txc_hdmi_of_table,
