From nobody Tue Feb 10 21:59:28 2026 Received: from mail-ej1-f46.google.com (mail-ej1-f46.google.com [209.85.218.46]) (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 17FF8366DB0 for ; Fri, 9 Jan 2026 17:30:21 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.218.46 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767979824; cv=none; b=pKojuv7C5qA3lpHxeXLj6ttsznuMq7ANjidbsw1A4xaD3BZg/K/aMzFCGFbKNtz1Kc15IuNy8BmpZCQr5kh4U0/htaWwIlxXUetdNb9QOOysokV+r6AZKTf1WHQv8UktGyMfId0Gilj6DMCwXVsX9WLZLgSrZ2nDNNvgbq6yeMo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1767979824; c=relaxed/simple; bh=eB7a4lnUaMZccSGSELmvlsqIBmFXo88j8W+HjuZnDJs=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=VApci+QLrehxIVP3i+cbuv4iCPKBinC5DEhHp8pB8+ghX0/+xvV4shzXQxprNsf2it9hfH9FJISuFxjD90xAPXjTuWnmhkhuAND1cah5A9XqsWPbrMmPuTy1kukOctQWuqbwOJnnoL+OXMtneGm8daT0ZJrs6oB3kwi3Q/L8W5Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=mary.zone; spf=none smtp.mailfrom=mary.zone; dkim=pass (2048-bit key) header.d=mary.zone header.i=@mary.zone header.b=BmJxV6Sg; arc=none smtp.client-ip=209.85.218.46 Authentication-Results: smtp.subspace.kernel.org; dmarc=none (p=none dis=none) header.from=mary.zone Authentication-Results: smtp.subspace.kernel.org; spf=none smtp.mailfrom=mary.zone Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=mary.zone header.i=@mary.zone header.b="BmJxV6Sg" Received: by mail-ej1-f46.google.com with SMTP id a640c23a62f3a-b8427c74ef3so683606866b.2 for ; Fri, 09 Jan 2026 09:30:21 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mary.zone; s=google; t=1767979820; x=1768584620; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=elZC+OpWvMiao47yhMKfmzrUQTBNeJ6lH9L5GUb402I=; b=BmJxV6Sg74QZqhTiy94sVLbqhUZ01ewxS7/H8tyYizIc9eSrR7Gr+ls8E9C50L/pno NXuu0ZerLdd8VtX3dVawJPdFw5fpCZJgSanlpPnx0L2Qe++wDA0Sz75KfEbqTbkX/HaF UvW3Z8zhXgTMN1YLWjypK/bgnw4VAR85esDbgHYfyc85pBUfHj5iyp9R3uZ8QOVJf+Ws AbSxZspPJI7PSAqV3uewGMJrs7N/x56VMQxOfACtgoRuz7EdqFmNIpmUyBrLnzDUc1Ms iM3yuDdOxBJ9aXv1WHzPVgkrGk3/UtBlluUEEUZGOoQKjLplHt7xskapgoneJkYtf8XV 1FVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1767979820; x=1768584620; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=elZC+OpWvMiao47yhMKfmzrUQTBNeJ6lH9L5GUb402I=; b=V5EWfwM8PojuKT4eiPYg2iiMEFWtXk8oLpJZ7PBkNnZeRG7u1+oj6qSAPcuTA8ObeF 7K4yNlCO20ijLdJck6vGWvTVGopR6MBYETf3LalNsZ39Jx5aQh0/knJGKFHZaMELy3MO eL+lHlQUEvF+iomap0QWFmnop8q4IAZ9IM/k2AepZT+pdhucm63CR5ivbCvnc7ZXA3Cl EPhaMI0uphaR3YaB2wkpE2cedLBDrHXFKwfSbTNIK8y6OS4qhOxYCzXAeKxa9C5MVE8y b+JSg2RhASniy4WDQwrRyng4Q++tZba1jt5RvsmmDbRJcaiYudoA5nQK91oLgsy3x/zw He7Q== X-Forwarded-Encrypted: i=1; AJvYcCWFUksHYdxW3UZd6vlWn7gWrM/zpYelTAh+aNoDeUbFAFzJAiQZk9PubW2WPtX+4kI9yLuncHBT1kHCVSM=@vger.kernel.org X-Gm-Message-State: AOJu0YwNXJ35Et0QYTuY+4sW/NYMzuhxs6WMCm6l4iVOEiP44B3rMHSo Al4WsldYp1xvkokPtt5t04hEsYdrlhVIZ8sNMfx6i1qCnjbzxyeWzhYi3hJwL0k0/so= X-Gm-Gg: AY/fxX7Eex2phOcmq/zYBmtUGZMAAl7kIj+ShyaFs2El98CScrGsoPywsXR1wJlR2/G bS064wVbK600iqbd/Dfp6Cpy/607qz7BOZf+xHCJv7KKF3QW1Pkk50LvX7Ui4dwwr4C/mdfNXMx ViKjFjAR4nVQrmUmeLd0M7bdrP2jpSfV2iHwk2UCDLs7waY+T92GJXJmjrdqNHvBEQyXX6XcAbh y50qOUVBlbcQA3biug2Kw17WqOyhaBK3qHSEpwppOn3nzegWqkSoMwb3S7TLkXwSM6VkE+8zgF2 U4GIzv7glTtaPwk56MZYkL8T+aQPkPGNYxXOWPmoOXxjjtBP2/LHYpI6ySix0tzugfZ20Uxpw6f topqKk9QD223+xSDjZY+/yLiQzs9DjY51cxPaeUJQ/f6ZuEPnnbxQ20zMV4QZ9kJEuHtBfxpxvz s0faRhZrHxHE0MdligcUvI/3CM21vo9e5qryAqmAgiWuqP3zYzBtskbWOF5mZhMDNIOQFti1k= X-Google-Smtp-Source: AGHT+IEYiFQaO2dhDZqmH9t7iNpy+GLxla8nCF9CHBGFTiZHm/wAyRIa7gXAFdArBNItEHmS/LcEwQ== X-Received: by 2002:a17:907:1c82:b0:b83:972c:77fe with SMTP id a640c23a62f3a-b84450332aamr1052665066b.2.1767979820236; Fri, 09 Jan 2026 09:30:20 -0800 (PST) Received: from [192.168.1.42] (2a01cb0405e83a000cb38cfe29807c1e.ipv6.abo.wanadoo.fr. [2a01:cb04:5e8:3a00:cb3:8cfe:2980:7c1e]) by smtp.gmail.com with ESMTPSA id a640c23a62f3a-b842a230db0sm1195426266b.2.2026.01.09.09.30.19 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 09 Jan 2026 09:30:19 -0800 (PST) From: Mary Guillemard Date: Fri, 09 Jan 2026 18:30:10 +0100 Subject: [PATCH 1/3] drm/nouveau/chan: Store channel allocation details in nouveau_channel Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260109-nouveau-gpfifo-increase-v1-1-ed0be9822878@mary.zone> References: <20260109-nouveau-gpfifo-increase-v1-0-ed0be9822878@mary.zone> In-Reply-To: <20260109-nouveau-gpfifo-increase-v1-0-ed0be9822878@mary.zone> To: Lyude Paul , Danilo Krummrich , Maarten Lankhorst , Maxime Ripard , Thomas Zimmermann , David Airlie , Simona Vetter Cc: dri-devel@lists.freedesktop.org, nouveau@lists.freedesktop.org, linux-kernel@vger.kernel.org, Mary Guillemard X-Mailer: b4 0.14.3 Previously, nouveau_channel_init was hardcoding offsets and length for the internal pushbuf and GPFIFO entries details. As we are going to extend the size of the GPFIFO ring, we now store those information in nouveau_channel_ctor and use those when creating related NVIF objects for channels. Signed-off-by: Mary Guillemard --- drivers/gpu/drm/nouveau/nouveau_chan.c | 20 ++++++++++++-------- drivers/gpu/drm/nouveau/nouveau_chan.h | 3 +++ 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.c b/drivers/gpu/drm/nouve= au/nouveau_chan.c index b1e92b1f7a26..b646212a34b3 100644 --- a/drivers/gpu/drm/nouveau/nouveau_chan.c +++ b/drivers/gpu/drm/nouveau/nouveau_chan.c @@ -293,6 +293,10 @@ nouveau_channel_ctor(struct nouveau_cli *cli, bool pri= v, u64 runm, if (ret) return ret; =20 + chan->push.plength =3D plength; + chan->push.ioffset =3D ioffset; + chan->push.ilength =3D ilength; + /* create channel object */ args->version =3D 0; args->namelen =3D __member_size(args->name); @@ -311,8 +315,8 @@ nouveau_channel_ctor(struct nouveau_cli *cli, bool priv= , u64 runm, args->ctxdma =3D nvif_handle(&chan->push.ctxdma); else args->ctxdma =3D 0; - args->offset =3D ioffset + chan->push.addr; - args->length =3D ilength; + args->offset =3D chan->push.addr + chan->push.ioffset; + args->length =3D chan->push.ilength; } args->huserd =3D 0; args->ouserd =3D 0; @@ -437,22 +441,22 @@ nouveau_channel_init(struct nouveau_channel *chan, u3= 2 vram, u32 gart) } else if (chan->user.oclass < FERMI_CHANNEL_GPFIFO) { ret =3D nvif_chan506f_ctor(&chan->chan, chan->userd->map.ptr, - (u8*)chan->push.buffer->kmap.virtual + 0x10000, 0x2000, - chan->push.buffer->kmap.virtual, chan->push.addr, 0x10000); + (u8 *)chan->push.buffer->kmap.virtual + chan->push.ioffset, chan->pu= sh.ilength, + chan->push.buffer->kmap.virtual, chan->push.addr, chan->push.plength= ); if (ret) return ret; } else if (chan->user.oclass < VOLTA_CHANNEL_GPFIFO_A) { ret =3D nvif_chan906f_ctor(&chan->chan, chan->userd->map.ptr, - (u8*)chan->push.buffer->kmap.virtual + 0x10000, 0x2000, - chan->push.buffer->kmap.virtual, chan->push.addr, 0x10000, + (u8 *)chan->push.buffer->kmap.virtual + chan->push.ioffset, chan->pu= sh.ilength, + chan->push.buffer->kmap.virtual, chan->push.addr, chan->push.plength, chan->sema.bo->kmap.virtual, chan->sema.vma->addr); if (ret) return ret; } else { ret =3D nvif_chanc36f_ctor(&chan->chan, chan->userd->map.ptr, - (u8*)chan->push.buffer->kmap.virtual + 0x10000, 0x2000, - chan->push.buffer->kmap.virtual, chan->push.addr, 0x10000, + (u8 *)chan->push.buffer->kmap.virtual + chan->push.ioffset, chan->pu= sh.ilength, + chan->push.buffer->kmap.virtual, chan->push.addr, chan->push.plength, chan->sema.bo->kmap.virtual, chan->sema.vma->addr, &drm->client.device.user, chan->token); if (ret) diff --git a/drivers/gpu/drm/nouveau/nouveau_chan.h b/drivers/gpu/drm/nouve= au/nouveau_chan.h index bb34b0a6082d..9839de8da985 100644 --- a/drivers/gpu/drm/nouveau/nouveau_chan.h +++ b/drivers/gpu/drm/nouveau/nouveau_chan.h @@ -29,6 +29,9 @@ struct nouveau_channel { struct nouveau_vma *vma; struct nvif_object ctxdma; u64 addr; + u64 plength; + u64 ioffset; + u64 ilength; } push; =20 void *fence; --=20 2.52.0