Commit 2ae6ab9d authored by Dave Airlie's avatar Dave Airlie

Merge tag 'drm-misc-fixes-2022-08-16' of git://anongit.freedesktop.org/drm/drm-misc into drm-fixes

One patch for imx/dcss to get rid of a warning message, one off-by-one
fix and GA103 support for nouveau, a refcounting fix for meson, a NULL
pointer dereference fix for ttm, a error check fix for lvds-codec, a
dt-binding schema fix and an underflow fix for sun4i
Signed-off-by: default avatarDave Airlie <airlied@redhat.com>

From: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220816094401.wtadc7ddr6lzq6aj@houat
parents 8ae4be56 82a1356a
...@@ -233,6 +233,7 @@ allOf: ...@@ -233,6 +233,7 @@ allOf:
- allwinner,sun8i-a83t-tcon-lcd - allwinner,sun8i-a83t-tcon-lcd
- allwinner,sun8i-v3s-tcon - allwinner,sun8i-v3s-tcon
- allwinner,sun9i-a80-tcon-lcd - allwinner,sun9i-a80-tcon-lcd
- allwinner,sun20i-d1-tcon-lcd
then: then:
properties: properties:
...@@ -252,6 +253,7 @@ allOf: ...@@ -252,6 +253,7 @@ allOf:
- allwinner,sun8i-a83t-tcon-tv - allwinner,sun8i-a83t-tcon-tv
- allwinner,sun8i-r40-tcon-tv - allwinner,sun8i-r40-tcon-tv
- allwinner,sun9i-a80-tcon-tv - allwinner,sun9i-a80-tcon-tv
- allwinner,sun20i-d1-tcon-tv
then: then:
properties: properties:
...@@ -278,6 +280,7 @@ allOf: ...@@ -278,6 +280,7 @@ allOf:
- allwinner,sun9i-a80-tcon-lcd - allwinner,sun9i-a80-tcon-lcd
- allwinner,sun4i-a10-tcon - allwinner,sun4i-a10-tcon
- allwinner,sun8i-a83t-tcon-lcd - allwinner,sun8i-a83t-tcon-lcd
- allwinner,sun20i-d1-tcon-lcd
then: then:
required: required:
...@@ -294,6 +297,7 @@ allOf: ...@@ -294,6 +297,7 @@ allOf:
- allwinner,sun8i-a23-tcon - allwinner,sun8i-a23-tcon
- allwinner,sun8i-a33-tcon - allwinner,sun8i-a33-tcon
- allwinner,sun8i-a83t-tcon-lcd - allwinner,sun8i-a83t-tcon-lcd
- allwinner,sun20i-d1-tcon-lcd
then: then:
properties: properties:
......
...@@ -180,7 +180,7 @@ static int lvds_codec_probe(struct platform_device *pdev) ...@@ -180,7 +180,7 @@ static int lvds_codec_probe(struct platform_device *pdev)
of_node_put(bus_node); of_node_put(bus_node);
if (ret == -ENODEV) { if (ret == -ENODEV) {
dev_warn(dev, "missing 'data-mapping' DT property\n"); dev_warn(dev, "missing 'data-mapping' DT property\n");
} else if (ret) { } else if (ret < 0) {
dev_err(dev, "invalid 'data-mapping' DT property\n"); dev_err(dev, "invalid 'data-mapping' DT property\n");
return ret; return ret;
} else { } else {
......
...@@ -142,8 +142,6 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss) ...@@ -142,8 +142,6 @@ struct dcss_kms_dev *dcss_kms_attach(struct dcss_dev *dcss)
drm_kms_helper_poll_init(drm); drm_kms_helper_poll_init(drm);
drm_bridge_connector_enable_hpd(kms->connector);
ret = drm_dev_register(drm, 0); ret = drm_dev_register(drm, 0);
if (ret) if (ret)
goto cleanup_crtc; goto cleanup_crtc;
......
...@@ -115,8 +115,11 @@ static bool meson_vpu_has_available_connectors(struct device *dev) ...@@ -115,8 +115,11 @@ static bool meson_vpu_has_available_connectors(struct device *dev)
for_each_endpoint_of_node(dev->of_node, ep) { for_each_endpoint_of_node(dev->of_node, ep) {
/* If the endpoint node exists, consider it enabled */ /* If the endpoint node exists, consider it enabled */
remote = of_graph_get_remote_port(ep); remote = of_graph_get_remote_port(ep);
if (remote) if (remote) {
of_node_put(remote);
of_node_put(ep);
return true; return true;
}
} }
return false; return false;
......
...@@ -2604,6 +2604,27 @@ nv172_chipset = { ...@@ -2604,6 +2604,27 @@ nv172_chipset = {
.fifo = { 0x00000001, ga102_fifo_new }, .fifo = { 0x00000001, ga102_fifo_new },
}; };
static const struct nvkm_device_chip
nv173_chipset = {
.name = "GA103",
.bar = { 0x00000001, tu102_bar_new },
.bios = { 0x00000001, nvkm_bios_new },
.devinit = { 0x00000001, ga100_devinit_new },
.fb = { 0x00000001, ga102_fb_new },
.gpio = { 0x00000001, ga102_gpio_new },
.i2c = { 0x00000001, gm200_i2c_new },
.imem = { 0x00000001, nv50_instmem_new },
.mc = { 0x00000001, ga100_mc_new },
.mmu = { 0x00000001, tu102_mmu_new },
.pci = { 0x00000001, gp100_pci_new },
.privring = { 0x00000001, gm200_privring_new },
.timer = { 0x00000001, gk20a_timer_new },
.top = { 0x00000001, ga100_top_new },
.disp = { 0x00000001, ga102_disp_new },
.dma = { 0x00000001, gv100_dma_new },
.fifo = { 0x00000001, ga102_fifo_new },
};
static const struct nvkm_device_chip static const struct nvkm_device_chip
nv174_chipset = { nv174_chipset = {
.name = "GA104", .name = "GA104",
...@@ -3067,6 +3088,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func, ...@@ -3067,6 +3088,7 @@ nvkm_device_ctor(const struct nvkm_device_func *func,
case 0x167: device->chip = &nv167_chipset; break; case 0x167: device->chip = &nv167_chipset; break;
case 0x168: device->chip = &nv168_chipset; break; case 0x168: device->chip = &nv168_chipset; break;
case 0x172: device->chip = &nv172_chipset; break; case 0x172: device->chip = &nv172_chipset; break;
case 0x173: device->chip = &nv173_chipset; break;
case 0x174: device->chip = &nv174_chipset; break; case 0x174: device->chip = &nv174_chipset; break;
case 0x176: device->chip = &nv176_chipset; break; case 0x176: device->chip = &nv176_chipset; break;
case 0x177: device->chip = &nv177_chipset; break; case 0x177: device->chip = &nv177_chipset; break;
......
...@@ -531,7 +531,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, ...@@ -531,7 +531,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
struct drm_display_mode *mode) struct drm_display_mode *mode)
{ {
struct mipi_dsi_device *device = dsi->device; struct mipi_dsi_device *device = dsi->device;
unsigned int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8;
u16 hbp = 0, hfp = 0, hsa = 0, hblk = 0, vblk = 0; u16 hbp = 0, hfp = 0, hsa = 0, hblk = 0, vblk = 0;
u32 basic_ctl = 0; u32 basic_ctl = 0;
size_t bytes; size_t bytes;
...@@ -555,7 +555,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, ...@@ -555,7 +555,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
* (4 bytes). Its minimal size is therefore 10 bytes * (4 bytes). Its minimal size is therefore 10 bytes
*/ */
#define HSA_PACKET_OVERHEAD 10 #define HSA_PACKET_OVERHEAD 10
hsa = max((unsigned int)HSA_PACKET_OVERHEAD, hsa = max(HSA_PACKET_OVERHEAD,
(mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD);
/* /*
...@@ -564,7 +564,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, ...@@ -564,7 +564,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
* therefore 6 bytes * therefore 6 bytes
*/ */
#define HBP_PACKET_OVERHEAD 6 #define HBP_PACKET_OVERHEAD 6
hbp = max((unsigned int)HBP_PACKET_OVERHEAD, hbp = max(HBP_PACKET_OVERHEAD,
(mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD);
/* /*
...@@ -574,7 +574,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, ...@@ -574,7 +574,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
* 16 bytes * 16 bytes
*/ */
#define HFP_PACKET_OVERHEAD 16 #define HFP_PACKET_OVERHEAD 16
hfp = max((unsigned int)HFP_PACKET_OVERHEAD, hfp = max(HFP_PACKET_OVERHEAD,
(mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD);
/* /*
...@@ -583,7 +583,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi, ...@@ -583,7 +583,7 @@ static void sun6i_dsi_setup_timings(struct sun6i_dsi *dsi,
* bytes). Its minimal size is therefore 10 bytes. * bytes). Its minimal size is therefore 10 bytes.
*/ */
#define HBLK_PACKET_OVERHEAD 10 #define HBLK_PACKET_OVERHEAD 10
hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, hblk = max(HBLK_PACKET_OVERHEAD,
(mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp -
HBLK_PACKET_OVERHEAD); HBLK_PACKET_OVERHEAD);
......
...@@ -912,7 +912,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo, ...@@ -912,7 +912,7 @@ int ttm_bo_validate(struct ttm_buffer_object *bo,
/* /*
* We might need to add a TTM. * We might need to add a TTM.
*/ */
if (bo->resource->mem_type == TTM_PL_SYSTEM) { if (!bo->resource || bo->resource->mem_type == TTM_PL_SYSTEM) {
ret = ttm_tt_create(bo, true); ret = ttm_tt_create(bo, true);
if (ret) if (ret)
return ret; return ret;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment