From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-wm1-f43.google.com (mail-wm1-f43.google.com [209.85.128.43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 098A83382F4 for ; Fri, 14 Aug 2026 23:58:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.43 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786751908; cv=none; b=Y6Eg+DEHCkv6u/++XR4y6pkcl4ym89oqgUzyQsnvMm13OOUZ1r5cFuDbUP1RDZK1Dz4V4iwNZpVmw9No8GRF4VrQ8mf5aEgoRKGTquGwM2P8/MOl7wneCNqRTrRfVpaW6mkAh3srXugpdGPlNVSeoY+lT9mRAzVn5TNx3te0Njc= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1786751908; c=relaxed/simple; bh=0HIeGqOWD9G2iu/25apTHkmiTse00yj9ZipBnANWDOY=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=UDJ2K8R2BW+zYy0vloS+U0siA+h7LxkXRXnnctY4RPA0+Cfpjxbm72aA+rxDk8y6cOjErFS1JU464vmvnWjPNfC+QNb3j+EQZvhPs/JkvyiCbXOx30nT4taPVW+D8n39PRl4o7VL0ppfVfeeVpIhMbs1A/UKTC5eVDt5enQj6Gs= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FXm8PoqT; arc=none smtp.client-ip=209.85.128.43 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FXm8PoqT" Received: by mail-wm1-f43.google.com with SMTP id 5b1f17b1804b1-4954d29264cso8071265e9.2 for ; Fri, 14 Aug 2026 16:58:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1786751905; x=1787356705; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to:content-type; bh=12i2qEk5t59OwBGwHt0k4psCek1hWBpIK5LtDGs5tyQ=; b=FXm8PoqTQkIxUgCJDzSaTn+isoC6Fa/bOWqxDZzT31Wy34m9x29mF7VVrG2mckxzN+ lVxGEeQzf3y0879lUUT/toNZna/I15fkmXDl/gFrk3+Dgo3AiHOauBbaoHOldAXfVUCr GSh6fH/ot7eomB7jDsIffRiS/iX44t7zUGrEoK1s2q5cFaHKOrEPfx0CyFiofVjmpcSr dBE5OAdwxuL3fyi3rN3ZVcKh6PONn6qmOaxV9xSgzWqIcKIfFcnOt7ZwsJNTOOGOFhZx v6N/zXlIc9rbXWeD+8ueFdhfayBhu6Wm46gZDrrV6aNHOwgHk+0JBmZeXaWUYX2iu4te Trsw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1786751905; x=1787356705; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=12i2qEk5t59OwBGwHt0k4psCek1hWBpIK5LtDGs5tyQ=; b=gnhAkh7qw/MBvxcJY1GfGAqi815Ql6MzM7FXVapf9aoI7Rvs0HwfZ7Non2LVU6SkKa 4nE6XCHLbQMBzhhBiuarShpvJ2+0DCfKjeLGQYmFqOoMEGDVBQZcv2iK/WiTYw6E5qRB 52Al+58QqcQDum933tAJw9rmWjGbHP+Hn6PZrZ8wEp7HeuyhkR8EeshYVtYtOz8XOGBX hyiqvyq1f4TVwMDbLfTzf7gkdgsf/Jdi4EfV8iJP2Snv1KNIguw1jZ1nI31EWKjAjG71 7jFywfdtpY6FufGS/rooZs55K97KgTM+S493oGYDYCBZ1ifJVHJEF4QEc3UqwqEG4r8I zlcw== X-Gm-Message-State: AOJu0YwtFFWhD8svbc7lMkXvgLxJJT0coENbltJcAb4k7conacqKV4aY V/juldk4cfts/gximxE5PjxwPaYV5WyqqVGbcmR0sreS5IQZ6gnfblwTew37YXhOFsE= X-Gm-Gg: AR+sD10EkwilAV4PJ+Y5Ri4CRbBl+S3qFBr6h1ZJZKCQSpjGjH7EQqSDuWiByu9+HbO UaHmckzStEVX+Iw7S93k2U5seT3mGR8UDFFeIS/xZMHGMeqw6kXgHxnSSgYPsWMOR6PVehytwdm kohCWb9BRqAY9jWTw8zFu3wkZH0KGaXjwrt2KxJ14REp6DTfv51OhhMI3V5nP2L2juAcHwWpcNB iKSeOlp0s2e5n9uBrg/G9cQJYfETwU5Zk7rCrRyY34WXxz/lV5ggj/Nrv21eNPZ5WR14XwZhuPB rnzzh+1bvS6T3TC+9QJj5xMxWaKlcQe+Bp9bbyWOy+GhKINaMbeZDiiWvsOeNtfTCsWfu49wTIl 6mQlfk1TDeEAqSPzM7wwRRaQE5g0p4HYLnyI6/GUeA0s0HLYhJ5aLqNxdV/UwBEpN8VczqsBEDz eFbaUICHlb7tzPBfCSj3UmXH1F9uOR88sogftsqsXhz+dFuHaJI1sO0Axc7I9kctAF/Yc= X-Received: by 2002:a05:600c:1c07:b0:495:4d5c:903e with SMTP id 5b1f17b1804b1-49987950d78mr124633925e9.7.1786751904971; Fri, 14 Aug 2026 16:58:24 -0700 (PDT) Received: from fedora ([5.31.134.170]) by smtp.gmail.com with ESMTPSA id 5b1f17b1804b1-499899753ccsm77751245e9.0.2026.08.14.16.58.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 14 Aug 2026 16:58:24 -0700 (PDT) From: Mohamed Ahmed To: linux-kernel@vger.kernel.org Cc: dri-devel@lists.freedesktop.org, Lyude Paul , Danilo Krummrich , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter , Mary Guillemard , nouveau@lists.freedesktop.org, Mohamed Ahmed Subject: [PATCH 0/7] nouveau: assorted display fixes (GB20x, r570 DP_CONFIG_STREAM, HF-EEODB EDIDs) Date: Sat, 15 Aug 2026 03:56:58 +0400 Message-ID: <20260814235705.59132-1-mohamedahmedegypt2001@gmail.com> X-Mailer: git-send-email 2.55.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Several fixes for GSP-driven displays consisting of four independent groups. These were created as part of ongoing HDMI 2.1 and display handling clean-up work, so some of them are not issues now (e.g., the 2.147GHz pixel clock cap) but fixing them is required to get advanced features such as FRL, DSC, VRR, etc working properly. Patches 1-3 fix HDMI infoframes on GB20x. Blackwell removed the legacy SF vendor-infoframe and GCP packet registers, so the MMIO writes land on dead or moved offsets. Patch 1 adds a vendor infoframe writer for the new layout, patch 2 switches GB20x over to it, and patch 3 corrects the GCP AVMute offsets. Patch 4 fixes DP modesets on r570 firmware. r570 shrank NV0073_CTRL_CMD_DP_CONFIG_STREAM_PARAMS, so every call built against the r535 struct is sent with a wrong paramsSize. Route the .sst/.vcpi paths through per-version RM API hooks built against each firmware's struct. Patch 5 fixes vblank interrupts on GB20x. The vblank enable moved to a second top level FE interrupt enable and fires on a separate low-latency vector that also needs a retrigger write. Without both, heads don't report vblanks. Patch 6 fixes pixel clocks above 2.147GHz on GB20x. HEAD_SET_PIXEL_CLOCK_FREQUENCY carries 31 bits of Hz, and the CA7D class adds FREQUENCY_HI for the upper bits. Program it instead of truncating the clock. Patch 7 converts nouveau's EDID handling to struct drm_edid, reading through drm_edid_read_custom() on the GSP path. HDMI 2.1 sinks that declare their real extension-block count through the EEODB no longer have their EDIDs truncated to the base block's count. Mohamed Ahmed (7): nouveau/disp: add GB20x HDMI vendor infoframe writer nouveau/gsp: fix HDMI vendor infoframes on GB20x nouveau/gsp: fix HDMI GCP AVMute register offsets on GB20x nouveau/gsp: use per-version DP_CONFIG_STREAM params on r570 firmware nouveau/gsp: fix vblank interrupts on GB20x nouveau/dispnv50: program pixel clocks above 2.147GHz on GB20x nouveau: honor HF-EEODB EDIDs by converting to struct drm_edid drivers/gpu/drm/nouveau/dispnv50/disp.c | 2 +- drivers/gpu/drm/nouveau/dispnv50/headca7d.c | 21 ++- .../drm/nouveau/include/nvhw/class/clca7d.h | 4 + drivers/gpu/drm/nouveau/nouveau_connector.c | 95 ++++++++++--- drivers/gpu/drm/nouveau/nouveau_connector.h | 7 +- .../gpu/drm/nouveau/nvkm/engine/disp/Kbuild | 1 + .../gpu/drm/nouveau/nvkm/engine/disp/gb202.c | 62 ++++++++ .../gpu/drm/nouveau/nvkm/engine/disp/ior.h | 2 + .../nouveau/nvkm/subdev/gsp/rm/r535/disp.c | 132 +++++++++++++++++- .../nouveau/nvkm/subdev/gsp/rm/r570/disp.c | 64 +++++++++ .../drm/nouveau/nvkm/subdev/gsp/rm/r570/gsp.c | 8 ++ .../nvkm/subdev/gsp/rm/r570/nvrm/disp.h | 2 + .../gpu/drm/nouveau/nvkm/subdev/gsp/rm/rm.h | 5 + 13 files changed, 371 insertions(+), 34 deletions(-) create mode 100644 drivers/gpu/drm/nouveau/nvkm/engine/disp/gb202.c -- 2.55.0