Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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: Dave Airlie <airlied@redhat.com>

From: Maxime Ripard <maxime@cerno.tech>
Link: https://patchwork.freedesktop.org/patch/msgid/20220816094401.wtadc7ddr6lzq6aj@houat

+37 -10
+4
Documentation/devicetree/bindings/display/allwinner,sun4i-a10-tcon.yaml
··· 233 233 - allwinner,sun8i-a83t-tcon-lcd 234 234 - allwinner,sun8i-v3s-tcon 235 235 - allwinner,sun9i-a80-tcon-lcd 236 + - allwinner,sun20i-d1-tcon-lcd 236 237 237 238 then: 238 239 properties: ··· 253 252 - allwinner,sun8i-a83t-tcon-tv 254 253 - allwinner,sun8i-r40-tcon-tv 255 254 - allwinner,sun9i-a80-tcon-tv 255 + - allwinner,sun20i-d1-tcon-tv 256 256 257 257 then: 258 258 properties: ··· 280 278 - allwinner,sun9i-a80-tcon-lcd 281 279 - allwinner,sun4i-a10-tcon 282 280 - allwinner,sun8i-a83t-tcon-lcd 281 + - allwinner,sun20i-d1-tcon-lcd 283 282 284 283 then: 285 284 required: ··· 297 294 - allwinner,sun8i-a23-tcon 298 295 - allwinner,sun8i-a33-tcon 299 296 - allwinner,sun8i-a83t-tcon-lcd 297 + - allwinner,sun20i-d1-tcon-lcd 300 298 301 299 then: 302 300 properties:
+1 -1
drivers/gpu/drm/bridge/lvds-codec.c
··· 180 180 of_node_put(bus_node); 181 181 if (ret == -ENODEV) { 182 182 dev_warn(dev, "missing 'data-mapping' DT property\n"); 183 - } else if (ret) { 183 + } else if (ret < 0) { 184 184 dev_err(dev, "invalid 'data-mapping' DT property\n"); 185 185 return ret; 186 186 } else {
-2
drivers/gpu/drm/imx/dcss/dcss-kms.c
··· 142 142 143 143 drm_kms_helper_poll_init(drm); 144 144 145 - drm_bridge_connector_enable_hpd(kms->connector); 146 - 147 145 ret = drm_dev_register(drm, 0); 148 146 if (ret) 149 147 goto cleanup_crtc;
+4 -1
drivers/gpu/drm/meson/meson_drv.c
··· 115 115 for_each_endpoint_of_node(dev->of_node, ep) { 116 116 /* If the endpoint node exists, consider it enabled */ 117 117 remote = of_graph_get_remote_port(ep); 118 - if (remote) 118 + if (remote) { 119 + of_node_put(remote); 120 + of_node_put(ep); 119 121 return true; 122 + } 120 123 } 121 124 122 125 return false;
+22
drivers/gpu/drm/nouveau/nvkm/engine/device/base.c
··· 2605 2605 }; 2606 2606 2607 2607 static const struct nvkm_device_chip 2608 + nv173_chipset = { 2609 + .name = "GA103", 2610 + .bar = { 0x00000001, tu102_bar_new }, 2611 + .bios = { 0x00000001, nvkm_bios_new }, 2612 + .devinit = { 0x00000001, ga100_devinit_new }, 2613 + .fb = { 0x00000001, ga102_fb_new }, 2614 + .gpio = { 0x00000001, ga102_gpio_new }, 2615 + .i2c = { 0x00000001, gm200_i2c_new }, 2616 + .imem = { 0x00000001, nv50_instmem_new }, 2617 + .mc = { 0x00000001, ga100_mc_new }, 2618 + .mmu = { 0x00000001, tu102_mmu_new }, 2619 + .pci = { 0x00000001, gp100_pci_new }, 2620 + .privring = { 0x00000001, gm200_privring_new }, 2621 + .timer = { 0x00000001, gk20a_timer_new }, 2622 + .top = { 0x00000001, ga100_top_new }, 2623 + .disp = { 0x00000001, ga102_disp_new }, 2624 + .dma = { 0x00000001, gv100_dma_new }, 2625 + .fifo = { 0x00000001, ga102_fifo_new }, 2626 + }; 2627 + 2628 + static const struct nvkm_device_chip 2608 2629 nv174_chipset = { 2609 2630 .name = "GA104", 2610 2631 .bar = { 0x00000001, tu102_bar_new }, ··· 3088 3067 case 0x167: device->chip = &nv167_chipset; break; 3089 3068 case 0x168: device->chip = &nv168_chipset; break; 3090 3069 case 0x172: device->chip = &nv172_chipset; break; 3070 + case 0x173: device->chip = &nv173_chipset; break; 3091 3071 case 0x174: device->chip = &nv174_chipset; break; 3092 3072 case 0x176: device->chip = &nv176_chipset; break; 3093 3073 case 0x177: device->chip = &nv177_chipset; break;
+5 -5
drivers/gpu/drm/sun4i/sun6i_mipi_dsi.c
··· 531 531 struct drm_display_mode *mode) 532 532 { 533 533 struct mipi_dsi_device *device = dsi->device; 534 - unsigned int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; 534 + int Bpp = mipi_dsi_pixel_format_to_bpp(device->format) / 8; 535 535 u16 hbp = 0, hfp = 0, hsa = 0, hblk = 0, vblk = 0; 536 536 u32 basic_ctl = 0; 537 537 size_t bytes; ··· 555 555 * (4 bytes). Its minimal size is therefore 10 bytes 556 556 */ 557 557 #define HSA_PACKET_OVERHEAD 10 558 - hsa = max((unsigned int)HSA_PACKET_OVERHEAD, 558 + hsa = max(HSA_PACKET_OVERHEAD, 559 559 (mode->hsync_end - mode->hsync_start) * Bpp - HSA_PACKET_OVERHEAD); 560 560 561 561 /* ··· 564 564 * therefore 6 bytes 565 565 */ 566 566 #define HBP_PACKET_OVERHEAD 6 567 - hbp = max((unsigned int)HBP_PACKET_OVERHEAD, 567 + hbp = max(HBP_PACKET_OVERHEAD, 568 568 (mode->htotal - mode->hsync_end) * Bpp - HBP_PACKET_OVERHEAD); 569 569 570 570 /* ··· 574 574 * 16 bytes 575 575 */ 576 576 #define HFP_PACKET_OVERHEAD 16 577 - hfp = max((unsigned int)HFP_PACKET_OVERHEAD, 577 + hfp = max(HFP_PACKET_OVERHEAD, 578 578 (mode->hsync_start - mode->hdisplay) * Bpp - HFP_PACKET_OVERHEAD); 579 579 580 580 /* ··· 583 583 * bytes). Its minimal size is therefore 10 bytes. 584 584 */ 585 585 #define HBLK_PACKET_OVERHEAD 10 586 - hblk = max((unsigned int)HBLK_PACKET_OVERHEAD, 586 + hblk = max(HBLK_PACKET_OVERHEAD, 587 587 (mode->htotal - (mode->hsync_end - mode->hsync_start)) * Bpp - 588 588 HBLK_PACKET_OVERHEAD); 589 589
+1 -1
drivers/gpu/drm/ttm/ttm_bo.c
··· 912 912 /* 913 913 * We might need to add a TTM. 914 914 */ 915 - if (bo->resource->mem_type == TTM_PL_SYSTEM) { 915 + if (!bo->resource || bo->resource->mem_type == TTM_PL_SYSTEM) { 916 916 ret = ttm_tt_create(bo, true); 917 917 if (ret) 918 918 return ret;