fix: add DSI_INIT0 lane config to old panel init_sequence + fix mode_flags

This commit is contained in:
2026-06-13 18:49:36 -04:00
parent 6fac886598
commit 2c9136d1dc
2 changed files with 24 additions and 0 deletions

View File

@@ -101,6 +101,13 @@
boot.loader.raspberry-pi.bootloader = "kernel"; boot.loader.raspberry-pi.bootloader = "kernel";
} }
nixos-raspberrypi.nixosModules.nixpkgs-rpi nixos-raspberrypi.nixosModules.nixpkgs-rpi
# Fix old panel init_sequence: add DSI_INIT0 lane config, remove contradictory BURST flag
({ lib, ... }: {
boot.kernelPatches = [{
name = "panel-cwu50-fix-lanes";
patch = ./patches/0008-panel-cwu50-fix-init-seq1.patch;
}];
})
nixos-raspberrypi.nixosModules.raspberry-pi-5.base nixos-raspberrypi.nixosModules.raspberry-pi-5.base
nixos-raspberrypi.lib.inject-overlays nixos-raspberrypi.lib.inject-overlays
nixos-raspberrypi.lib.inject-overlays-global nixos-raspberrypi.lib.inject-overlays-global

View File

@@ -0,0 +1,17 @@
--- a/drivers/gpu/drm/panel/panel-cwu50.c
+++ b/drivers/gpu/drm/panel/panel-cwu50.c
@@ -65,6 +65,8 @@ static void cwu50_init_sequence(struct cwu50 *ctx)
dcs_write_seq(0x72,0x06);
dcs_write_seq(0x75,0x03);
+ /* DSI_INIT0: set 4 lanes (bits[1:0]=11) — fixes lane count default */
+ dcs_write_seq(0x80,0x03);
dcs_write_seq(0xE0,0x01);
@@ -162,7 +164,7 @@ static int cwu50_probe(struct mipi_dsi_device *dsi)
dsi->lanes = 4;
dsi->format = MIPI_DSI_FMT_RGB888;
- dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_BURST | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
+ dsi->mode_flags = MIPI_DSI_MODE_VIDEO | MIPI_DSI_MODE_VIDEO_SYNC_PULSE;
ctx->id_gpio = devm_gpiod_get_optional(dev, "reset", GPIOD_IN);
if (IS_ERR(ctx->id_gpio)) {