From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-qt1-f177.google.com (mail-qt1-f177.google.com [209.85.160.177]) (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 543B83D1CAD for ; Fri, 20 Mar 2026 17:52:44 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.160.177 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774029167; cv=none; b=LTP0Jv8bma00QWi6ssHNZuQoHjQ4Oi98ClWR7xQ9LExU1/ipmpnHHevPHbB9koNPo+U6th+BfPZiDv82smj55GJRQ7J8dU65tx9jVt5v1f4Sx7i4dRxUIO7TvDeDrGOWmbIJwu4h/+BeDr5yUkRi0rLRAOg4JLusJHIaq12C82w= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774029167; c=relaxed/simple; bh=2XKMNPMRgggOa6Jtg12vV0GqA7xjLsqYG7uM16X4Fe0=; h=Message-ID:Subject:From:To:Cc:Date:In-Reply-To:References: Content-Type:MIME-Version; b=OKUJkUVK5tYuTPclLXvAAYFkrQSzXYwt/cfus1crGjn/FYfMkbMqc4IkW+zZp8GDbmYGps451JDJTV8/mdIreQTZZyaNdMVxR5zl1WgFM6U4mwIzBM+8ex4fR8HY1xf8XELHGUGxwozScHirSID2vRcizIXUBTbh24QdDNzcSt8= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ndufresne.ca; spf=pass smtp.mailfrom=ndufresne.ca; dkim=pass (2048-bit key) header.d=ndufresne-ca.20230601.gappssmtp.com header.i=@ndufresne-ca.20230601.gappssmtp.com header.b=CBIO2dFS; arc=none smtp.client-ip=209.85.160.177 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=ndufresne.ca Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=ndufresne.ca Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=ndufresne-ca.20230601.gappssmtp.com header.i=@ndufresne-ca.20230601.gappssmtp.com header.b="CBIO2dFS" Received: by mail-qt1-f177.google.com with SMTP id d75a77b69052e-50b392f1846so12283831cf.3 for ; Fri, 20 Mar 2026 10:52:44 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ndufresne-ca.20230601.gappssmtp.com; s=20230601; t=1774029163; x=1774633963; darn=vger.kernel.org; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:from:to:cc:subject:date:message-id:reply-to; bh=qSyQfSfJLUM1m6GIB6OZuhr10E00mTg3LMvm+W8lDOs=; b=CBIO2dFS3P6eZfHrkGvRpoHbQZZw9UEtl/RE3CbEZyfbwahdagSneZ72QiQcs2GNFv GpHtXwpPddMEDk9Snr5jBf59nLcQxhXkm95tWg0qmZ3AGg7USd39wtniXC6KP6h8NCb9 e/07AnPIROHRKkiuPZYQ9M18+P1LY5XcDJ49KcXzyrp9xPgKavZ8YBrfJKpq7ykB4nVK K4BXPTW8Fa5cvun//Nb4kNEILamoNU1aevw4Zz+sDXQTBozZxUYZCZuPFXWN26unbQz+ xDJu9240FDyozhA/Gwf9anQHcUXQpAPmlmmX/xXMHGhJazJMDZsAsfb5tdddaRoCJ0FA ljnA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1774029163; x=1774633963; h=mime-version:user-agent:references:in-reply-to:date:cc:to:from :subject:message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject :date:message-id:reply-to; bh=qSyQfSfJLUM1m6GIB6OZuhr10E00mTg3LMvm+W8lDOs=; b=dpOWg4Ung2i2PDwlXl6exnyAlk6XizOr1gHXEn57flcfA/TWanHjgX9ExI4TdWxBJB +L9ZgBXiKFQilTlTsxOHqHchNX342rC8O4r5YtoQQlQmioNQ3uChwEfVcR+P3clMAscM K0RwdGv4eDud7t9BJRkSCqdEzSZ6pwrnnVTUeLT9pr29F1zGcaF6Y7UNEziJaGyXSvmp bKlFJbOl4r5aPZeZEDiCdj3L49lmTDodOKT4zw6UMhopGGjWaddxPUtlyKyoR4oTOqE7 E/7harxRm0hsVBu6YYe+x2wzgmzrNUVewPGZT0tMur2zidvV6JqpLQKWL6XB+6CvEBsA WEzw== X-Forwarded-Encrypted: i=1; AJvYcCXnhYBG8IoCvPU0C6f9M59/8CO1W20xhyTeIqtW3YO35/2dPk1aOpWanWVviN6fGYHKuAmrW/qOcGo3HAc=@vger.kernel.org X-Gm-Message-State: AOJu0Yy4bNn/BJOmo1DphmIBDu0Tt1tCwkeBF1EG3a9avTbPRRS+yy4N usjGdnNwaeAmy1Y8l8BzKG+4/kW0y4h8BoS4OCSLjY3bO14DicURcRsWC8RqLjO/8y4= X-Gm-Gg: ATEYQzyT0wW2DxKeh5wWc8/9M5BU6ZCcLFZ8JWwHQEnDNmLyDKRMeZpnh4tNZaKiRqd MBEA9QRSbGU65FyxxOq1MpKBLWr2BXwft47GT7QXA4gmJK3GsqPMxHD6vONU++UbEgR3JbQ41ss qPeKWyuX4o1kMdZlVGr50WoZS4/4EKS2EvzK3YzPQkzKLpEXpEH6ZcD8aYcEMZtlE9wu54ag6gD bbMEy1Dc0KDmoGrlKDUNwS/nTjVke8STeMS/wOfYVoR5g4z+l0z6XdMbYkQqQ10AbB0sG2t3snT lYE467iYdB2vxf0PEwXjm5N+/ims7M5gNJ3a8/Yz1gpRdY8lw3ZcvW5mxU0trFf6hM9rN+qRv5b 18dubEvaHsG32rPKATnHxCre7A6dzvkxcH4DAchDsaLtMY2woPNFKUq8yiTiV0F23IXZ4IZLoOJ UcmxD4Iftn+5KbSCEaFtt7kP4c+A5k X-Received: by 2002:a05:622a:354:b0:506:9bea:3229 with SMTP id d75a77b69052e-50b375d6367mr54273481cf.69.1774029163156; Fri, 20 Mar 2026 10:52:43 -0700 (PDT) Received: from ?IPv6:2606:6d00:11:b76d::5ac? ([2606:6d00:11:b76d::5ac]) by smtp.gmail.com with ESMTPSA id d75a77b69052e-50b36d07d87sm24300111cf.12.2026.03.20.10.52.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 20 Mar 2026 10:52:42 -0700 (PDT) Message-ID: Subject: Re: [PATCH v3 14/27] media: rockchip: rga: align stride to 4 bytes From: Nicolas Dufresne To: Sven =?ISO-8859-1?Q?P=FCschel?= , Jacob Chen , Ezequiel Garcia , Mauro Carvalho Chehab , Heiko Stuebner , Rob Herring , Krzysztof Kozlowski , Conor Dooley Cc: linux-media@vger.kernel.org, linux-rockchip@lists.infradead.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, kernel@pengutronix.de Date: Fri, 20 Mar 2026 13:52:40 -0400 In-Reply-To: <20260127-spu-rga3-v3-14-77b273067beb@pengutronix.de> References: <20260127-spu-rga3-v3-0-77b273067beb@pengutronix.de> <20260127-spu-rga3-v3-14-77b273067beb@pengutronix.de> Content-Type: multipart/signed; micalg="pgp-sha512"; protocol="application/pgp-signature"; boundary="=-93/oSoScL+hduou17nI9" User-Agent: Evolution 3.58.3 (3.58.3-1.fc43) Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 --=-93/oSoScL+hduou17nI9 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable Le mardi 27 janvier 2026 =C3=A0 15:39 +0100, Sven P=C3=BCschel a =C3=A9crit= =C2=A0: > Add an alignment setting to rga_hw to set the desired stride alignment. > As the RGA2 register for the stride counts in word units, the code > already divides the bytesperline value by 4 when writing it into the > register. Therefore fix the alignment to a multiple of 4 to avoid > potential off by one errors due from the division. >=20 > Signed-off-by: Sven P=C3=BCschel Reviewed-by: Nicolas Dufresne > --- > =C2=A0drivers/media/platform/rockchip/rga/rga-hw.c |=C2=A0 1 + > =C2=A0drivers/media/platform/rockchip/rga/rga.c=C2=A0=C2=A0=C2=A0 | 11 ++= ++++----- > =C2=A0drivers/media/platform/rockchip/rga/rga.h=C2=A0=C2=A0=C2=A0 |=C2=A0= 1 + > =C2=A03 files changed, 8 insertions(+), 5 deletions(-) >=20 > diff --git a/drivers/media/platform/rockchip/rga/rga-hw.c > b/drivers/media/platform/rockchip/rga/rga-hw.c > index caf2424962351..16380be598e4a 100644 > --- a/drivers/media/platform/rockchip/rga/rga-hw.c > +++ b/drivers/media/platform/rockchip/rga/rga-hw.c > @@ -580,6 +580,7 @@ const struct rga_hw rga2_hw =3D { > =C2=A0 .max_width =3D MAX_WIDTH, > =C2=A0 .min_height =3D MIN_HEIGHT, > =C2=A0 .max_height =3D MAX_HEIGHT, > + .stride_alignment =3D 4, > =C2=A0 > =C2=A0 .start =3D rga_hw_start, > =C2=A0 .handle_irq =3D rga_handle_irq, > diff --git a/drivers/media/platform/rockchip/rga/rga.c > b/drivers/media/platform/rockchip/rga/rga.c > index ac42e905a88cd..2920efe65082a 100644 > --- a/drivers/media/platform/rockchip/rga/rga.c > +++ b/drivers/media/platform/rockchip/rga/rga.c > @@ -234,10 +234,10 @@ static int rga_open(struct file *file) > =C2=A0 ctx->in =3D def_frame; > =C2=A0 ctx->out =3D def_frame; > =C2=A0 > - v4l2_fill_pixfmt_mp(&ctx->in.pix, > - =C2=A0=C2=A0=C2=A0 ctx->in.fmt->fourcc, def_width, def_height); > - v4l2_fill_pixfmt_mp(&ctx->out.pix, > - =C2=A0=C2=A0=C2=A0 ctx->out.fmt->fourcc, def_width, def_height); > + v4l2_fill_pixfmt_mp_aligned(&ctx->in.pix, ctx->in.fmt->fourcc, > + =C2=A0=C2=A0=C2=A0 def_width, def_height, rga->hw- > >stride_alignment); > + v4l2_fill_pixfmt_mp_aligned(&ctx->out.pix, ctx->out.fmt->fourcc, > + =C2=A0=C2=A0=C2=A0 def_width, def_height, rga->hw- > >stride_alignment); > =C2=A0 > =C2=A0 if (mutex_lock_interruptible(&rga->mutex)) { > =C2=A0 ret =3D -ERESTARTSYS; > @@ -393,7 +393,8 @@ static int vidioc_try_fmt(struct file *file, void *pr= iv, > struct v4l2_format *f) > =C2=A0 fmt =3D &hw->formats[0]; > =C2=A0 > =C2=A0 v4l2_apply_frmsize_constraints(&pix_fmt->width, &pix_fmt->height, > &frmsize); > - v4l2_fill_pixfmt_mp(pix_fmt, fmt->fourcc, pix_fmt->width, pix_fmt- > >height); > + v4l2_fill_pixfmt_mp_aligned(pix_fmt, pix_fmt->pixelformat, > + =C2=A0=C2=A0=C2=A0 pix_fmt->width, pix_fmt->height, hw- > >stride_alignment); > =C2=A0 pix_fmt->field =3D V4L2_FIELD_NONE; > =C2=A0 > =C2=A0 return 0; > diff --git a/drivers/media/platform/rockchip/rga/rga.h > b/drivers/media/platform/rockchip/rga/rga.h > index 04aeb7b429523..38518146910a6 100644 > --- a/drivers/media/platform/rockchip/rga/rga.h > +++ b/drivers/media/platform/rockchip/rga/rga.h > @@ -150,6 +150,7 @@ struct rga_hw { > =C2=A0 size_t cmdbuf_size; > =C2=A0 u32 min_width, min_height; > =C2=A0 u32 max_width, max_height; > + u8 stride_alignment; > =C2=A0 > =C2=A0 void (*start)(struct rockchip_rga *rga, > =C2=A0 =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 struct rga_vb_buffer *src, struct = rga_vb_buffer *dst); --=-93/oSoScL+hduou17nI9 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: This is a digitally signed message part -----BEGIN PGP SIGNATURE----- iHUEABYKAB0WIQTvDVKBFcTDwhoEbxLZQZRRKWBy9AUCab2JaQAKCRDZQZRRKWBy 9H8xAP4ji1uPU6SE7iMSdNHZu8eGZY3VyZKoBhLFSX+IwNq3VAEAvKVWq1bPjoO7 EuZSodlv8pmIQjBM1Zwsfw6U8R7Exg4= =SFI0 -----END PGP SIGNATURE----- --=-93/oSoScL+hduou17nI9--