From nobody Sat Jun 20 18:38:24 2026 Received: from mail-pl1-f182.google.com (mail-pl1-f182.google.com [209.85.214.182]) (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 89A6E40DFD8 for ; Sat, 11 Apr 2026 15:26:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.182 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775921193; cv=none; b=DGXPm7WHgUkyg6W5ch12Kn4QMEVFy3fmNrHZi4aKu2OaNNNbvFzVmSQW8QvqIyh5IokD1LJk6+011UqzS/q0ztxYlHrv3rM1pRBQ/U3RRed+QuDO3ZxSveFNI3k8wNHV0TYHqGSYPJsYkGN4O0gF8b8S9PtLdSF0NEbUfQmnzCE= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1775921193; c=relaxed/simple; bh=fq9k4HS7wZTcCEwgEk9lzhSQnE2UXTvw9PCJzwZVIFg=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=Q7jmiqrC+AUkWO9owBGNrrGKHOsU4dPy9ZbZQIqXV2g3sCuLhkhollktP15cPFk1qNFo4WU3Y/WIXmT4eZ0vdJqTpyctSS/0dsh/ahBdGfZ24NSIGvicpvXnAe/+a/ij5m20xfG4gGucDVzZOtY5IjvrricUKzYqN1Wt04FTSTo= 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=CPPKL4ea; arc=none smtp.client-ip=209.85.214.182 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="CPPKL4ea" Received: by mail-pl1-f182.google.com with SMTP id d9443c01a7336-2ab077e3f32so14912395ad.3 for ; Sat, 11 Apr 2026 08:26:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1775921192; x=1776525992; 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; bh=S2yzm7/HJQbzBsOcthAlts6qCBZnAR76KLWrUtFupiU=; b=CPPKL4ea7PWnbKmUNycqgEuMqcLQ+Bha2oJ0uhRniDYaQaQI4qlTkoE4AVpHmHPUDA yYMwsarROHsqqNGaJlYnpz2nGULj1gFCRTU9A2Mah5hPQbbBZpt+XhgUJ36F/5QgaKTK PcRIw9QAh1psiuE/OrUslyLoaC2sAfAks3mR7rFQ/o+wgmDJmKfmMUQ8ramb4WigTynI lie7tmZsw67dEp0JebmjYxNUDHxdfADRLWqKncLoE0uAvIkK8v5JHwdf+GWKQYteWP/l I0p1VAd7u2oI3NotgB6KNxjSb4qeoaGElsDNe0FWiUtg5iCK8WEsTGnQBkt1nDo2z+EU wptg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775921192; x=1776525992; 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; bh=S2yzm7/HJQbzBsOcthAlts6qCBZnAR76KLWrUtFupiU=; b=KApM5C1qJW6gFRq1P6iNbOc++be3q2amVA0WFl5J++JiyHkelsMubWryGhMxR9D71L 9Q8NEy6OAoCn1Mw++qA86QVx8srg+Vt2M+yjGBMnfbn/Xmyzpc6rdqZ8JGywQWXR4uXW 9CT4OhlIRUqCLFeYRQIt0x00D7yjpHsu9R/smNf7+OySdNaDY1R9snjSKKhMLl+gBjqJ NEov+3cHjYqRpiPxiw4+OosvKuS9SE9KZO1axoPQxV4jabuDSOGglWZEyPbiYM4m9Ag4 3fkOy9+ydVtpqbVYQXhAFfHj6EAtSrdXhZYSUKCdTpdU87JtSswGBvb7LCmBXCkB7sXE vj5A== X-Forwarded-Encrypted: i=1; AFNElJ+g5/X0iFiAojgpCWLBIG1wNYuBydgewD7gBaoE+dxdDd5GZ4KllP9M1b0isVN+KufuMnoFXlRp0ioIEII=@vger.kernel.org X-Gm-Message-State: AOJu0YzWZwxVh78GuIXod2jT8JuIEWj5GkQCUTjTq8ZU3fhow4Mxl6h0 HbgYFfvAkdU2TZRXYR7VEOY5zAq9vGmuCPIbwu1sHLQ+bmNqTu4Latc+ X-Gm-Gg: AeBDietDq6V0+px0JnbxOOJfgOiI+4iyiRJEClYBv4I0ReJSdjN+W9flOQVOjUoCiJL HattJAAgS3whxwnbtqW1gy4Ufs80ZFs0XxqzvjT8O/QQQViW8D9jy3IyqqYbp0shuY8VocJqNvU WBrTl3G8ceLKaTzX1wH1PhiaSPtZFK861ZAVkretjqiJhqnW+rCEh2qqj6e/+DwVp/tulseB2e6 kWl6tBARa8bY+yiaR2Q08ZLhAGh5GQUXwsQ2yvOXb4Apj0uk9srIQxjuInmgBlUn8OzgMpkbPDJ BO1gC+fo6Bw6WXRubRO+5jQ1u4oGUzrKyq62vimsdIdx5d26OfZMo+D59/5CJr/ZUL1MZBbGdCI 7GR3yOdGZDv1IcAaLenrYgyb42See8Q+zSmooZvCJtbb/RmAF6QtV0dsekyXpVgqGSAYktae4AG UEkpsmu6/ZxC7NyMuhV7DYKG4VAhtZvKVs06uXAR/+rEB9q+XTRBU5ex/4okybdayr/Q== X-Received: by 2002:a17:903:1a6f:b0:2b0:7d6f:4627 with SMTP id d9443c01a7336-2b2d5a45f9dmr72344535ad.37.1775921191790; Sat, 11 Apr 2026 08:26:31 -0700 (PDT) Received: from chandras-fedora.tail1a292d.ts.net ([14.195.131.227]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-2b2d4f2af90sm64077935ad.64.2026.04.11.08.26.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 11 Apr 2026 08:26:31 -0700 (PDT) From: Chandra Mouli Baskaran To: gregkh@linuxfoundation.org, andy@kernel.org Cc: linux-staging@lists.linux.dev, linux-fbdev@vger.kernel.org, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, Chandra Mouli Subject: [PATCH] staging: fbtft: improve TODO comment clarity Date: Sat, 11 Apr 2026 20:52:20 +0530 Message-ID: <20260411152220.89174-1-bcmouli2006@gmail.com> X-Mailer: git-send-email 2.53.0 Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Chandra Mouli Clarify the TODO comment in fbtft_ops_damage_range() to better describe that the current implementation updates the entire displayinstead of only the modified region. Signed-off-by: Chandra Mouli --- drivers/staging/fbtft/fbtft-core.c | 74 +++++++++++++++--------------- 1 file changed, 38 insertions(+), 36 deletions(-) diff --git a/drivers/staging/fbtft/fbtft-core.c b/drivers/staging/fbtft/fbt= ft-core.c index f427c0914..f011a6ebc 100644 --- a/drivers/staging/fbtft/fbtft-core.c +++ b/drivers/staging/fbtft/fbtft-core.c @@ -77,12 +77,12 @@ static int fbtft_request_one_gpio(struct fbtft_par *par, struct device *dev =3D par->info->device; =20 *gpiop =3D devm_gpiod_get_index_optional(dev, name, index, - GPIOD_OUT_LOW); + GPIOD_OUT_LOW); if (IS_ERR(*gpiop)) return dev_err_probe(dev, PTR_ERR(*gpiop), "Failed to request %s GPIO\n"= , name); =20 fbtft_par_dbg(DEBUG_REQUEST_GPIOS, par, "%s: '%s' GPIO\n", - __func__, name); + __func__, name); =20 return 0; } @@ -112,15 +112,15 @@ static int fbtft_request_gpios(struct fbtft_par *par) return ret; for (i =3D 0; i < 16; i++) { ret =3D fbtft_request_one_gpio(par, "db", i, - &par->gpio.db[i]); + &par->gpio.db[i]); if (ret) return ret; ret =3D fbtft_request_one_gpio(par, "led", i, - &par->gpio.led[i]); + &par->gpio.led[i]); if (ret) return ret; ret =3D fbtft_request_one_gpio(par, "aux", i, - &par->gpio.aux[i]); + &par->gpio.aux[i]); if (ret) return ret; } @@ -134,7 +134,7 @@ static int fbtft_backlight_update_status(struct backlig= ht_device *bd) bool polarity =3D par->polarity; =20 fbtft_par_dbg(DEBUG_BACKLIGHT, par, "%s: polarity=3D%d, power=3D%d\n", __= func__, - polarity, bd->props.power); + polarity, bd->props.power); =20 if (!backlight_is_blank(bd)) gpiod_set_value(par->gpio.led[0], polarity); @@ -172,7 +172,7 @@ void fbtft_register_backlight(struct fbtft_par *par) =20 if (!par->gpio.led[0]) { fbtft_par_dbg(DEBUG_BACKLIGHT, par, - "%s(): led pin not set, exiting.\n", __func__); + "%s(): led pin not set, exiting.\n", __func__); return; } =20 @@ -183,8 +183,8 @@ void fbtft_register_backlight(struct fbtft_par *par) par->polarity =3D true; =20 bd =3D backlight_device_register(dev_driver_string(par->info->device), - par->info->device, par, - &fbtft_bl_ops, &bl_props); + par->info->device, par, + &fbtft_bl_ops, &bl_props); if (IS_ERR(bd)) { dev_err(par->info->device, "cannot register backlight device (%ld)\n", @@ -199,7 +199,7 @@ void fbtft_register_backlight(struct fbtft_par *par) EXPORT_SYMBOL(fbtft_register_backlight); =20 static void fbtft_set_addr_win(struct fbtft_par *par, int xs, int ys, int = xe, - int ye) + int ye) { write_reg(par, MIPI_DCS_SET_COLUMN_ADDRESS, (xs >> 8) & 0xFF, xs & 0xFF, (xe >> 8) & 0xFF, xe & 0xFF); @@ -235,8 +235,8 @@ static void fbtft_update_display(struct fbtft_par *par,= unsigned int start_line, if (unlikely(par->debug & (DEBUG_TIME_FIRST_UPDATE | DEBUG_TIME_EACH_UPDATE))) { if ((par->debug & DEBUG_TIME_EACH_UPDATE) || - ((par->debug & DEBUG_TIME_FIRST_UPDATE) && - !par->first_update_done)) { + ((par->debug & DEBUG_TIME_FIRST_UPDATE) && + !par->first_update_done)) { ts_start =3D ktime_get(); timeit =3D true; } @@ -251,7 +251,7 @@ static void fbtft_update_display(struct fbtft_par *par,= unsigned int start_line, end_line =3D par->info->var.yres - 1; } if (start_line > par->info->var.yres - 1 || - end_line > par->info->var.yres - 1) { + end_line > par->info->var.yres - 1) { dev_warn(par->info->device, "%s: start_line=3D%u or end_line=3D%u is larger than max=3D%d. Shouldn= 't happen, will do full display update\n", __func__, start_line, @@ -261,7 +261,7 @@ static void fbtft_update_display(struct fbtft_par *par,= unsigned int start_line, } =20 fbtft_par_dbg(DEBUG_UPDATE_DISPLAY, par, "%s(start_line=3D%u, end_line=3D= %u)\n", - __func__, start_line, end_line); + __func__, start_line, end_line); =20 if (par->fbtftops.set_addr_win) par->fbtftops.set_addr_win(par, 0, start_line, @@ -359,15 +359,15 @@ static unsigned int chan_to_field(unsigned int chan, = struct fb_bitfield *bf) } =20 static int fbtft_fb_setcolreg(unsigned int regno, unsigned int red, - unsigned int green, unsigned int blue, - unsigned int transp, struct fb_info *info) + unsigned int green, unsigned int blue, + unsigned int transp, struct fb_info *info) { unsigned int val; int ret =3D 1; =20 fb_dbg(info, - "regno=3D%u, red=3D0x%X, green=3D0x%X, blue=3D0x%X, trans=3D0x%X\n= ", - regno, red, green, blue, transp); + "regno=3D%u, red=3D0x%X, green=3D0x%X, blue=3D0x%X, trans=3D0x%X\n", + regno, red, green, blue, transp); =20 switch (info->fix.visual) { case FB_VISUAL_TRUECOLOR: @@ -414,7 +414,9 @@ static void fbtft_ops_damage_range(struct fb_info *info= , off_t off, size_t len) { struct fbtft_par *par =3D info->par; =20 - /* TODO: only mark changed area update all for now */ + /* TODO: Optimize to update only the modified region instead + * of refreshing the entire display. + */ par->fbtftops.mkdirty(info, -1, 0); } =20 @@ -577,10 +579,10 @@ struct fb_info *fbtft_framebuffer_alloc(struct fbtft_= display *display, =20 if (display->gamma_num && display->gamma_len) { gamma_curves =3D devm_kcalloc(dev, - display->gamma_num * - display->gamma_len, - sizeof(gamma_curves[0]), - GFP_KERNEL); + display->gamma_num * + display->gamma_len, + sizeof(gamma_curves[0]), + GFP_KERNEL); if (!gamma_curves) return NULL; } @@ -793,10 +795,10 @@ int fbtft_register_framebuffer(struct fb_info *fb_inf= o) sprintf(text2, ", spi%d.%d at %d MHz", spi->controller->bus_num, spi_get_chipselect(spi, 0), spi->max_speed_hz / 1000000); fb_dbg(fb_info, - "%s frame buffer, %dx%d, %d KiB video memory%s, fps=3D%lu%s\n", - fb_info->fix.id, fb_info->var.xres, fb_info->var.yres, - fb_info->fix.smem_len >> 10, text1, - HZ / fb_info->fbdefio->delay, text2); + "%s frame buffer, %dx%d, %d KiB video memory%s, fps=3D%lu%s\n", + fb_info->fix.id, fb_info->var.xres, fb_info->var.yres, + fb_info->fix.smem_len >> 10, text1, + HZ / fb_info->fbdefio->delay, text2); =20 /* Turn on backlight if available */ if (fb_info->bl_dev) { @@ -885,10 +887,10 @@ static int fbtft_init_display_from_property(struct fb= tft_par *par) } /* make debug message */ fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, - "init: write_register:\n"); + "init: write_register:\n"); for (j =3D 0; j < i; j++) fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, - "buf[%d] =3D %02X\n", j, buf[j]); + "buf[%d] =3D %02X\n", j, buf[j]); =20 par->fbtftops.write_register(par, i, buf[0], buf[1], buf[2], buf[3], @@ -909,7 +911,7 @@ static int fbtft_init_display_from_property(struct fbtf= t_par *par) buf[60], buf[61], buf[62], buf[63]); } else if (val & FBTFT_OF_INIT_DELAY) { fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, - "init: msleep(%u)\n", val & 0xFFFF); + "init: msleep(%u)\n", val & 0xFFFF); msleep(val & 0xFFFF); val =3D values[++index]; } else { @@ -1020,8 +1022,8 @@ int fbtft_init_display(struct fbtft_par *par) case -2: i++; fbtft_par_dbg(DEBUG_INIT_DISPLAY, par, - "init: mdelay(%d)\n", - par->init_sequence[i]); + "init: mdelay(%d)\n", + par->init_sequence[i]); mdelay(par->init_sequence[i++]); break; default: @@ -1052,7 +1054,7 @@ static int fbtft_verify_gpios(struct fbtft_par *par) int i; =20 if (pdata->display.buswidth !=3D 9 && par->startbyte =3D=3D 0 && - !par->gpio.dc) { + !par->gpio.dc) { dev_err(par->info->device, "Missing info about 'dc' gpio. Aborting.\n"); return -EINVAL; @@ -1140,8 +1142,8 @@ static struct fbtft_platform_data *fbtft_properties_r= ead(struct device *dev) * Return: 0 if successful, negative if error */ int fbtft_probe_common(struct fbtft_display *display, - struct spi_device *sdev, - struct platform_device *pdev) + struct spi_device *sdev, + struct platform_device *pdev) { struct device *dev; struct fb_info *info; @@ -1264,7 +1266,7 @@ void fbtft_remove_common(struct device *dev, struct f= b_info *info) par =3D info->par; if (par) fbtft_par_dbg(DEBUG_DRIVER_INIT_FUNCTIONS, par, - "%s()\n", __func__); + "%s()\n", __func__); fbtft_unregister_framebuffer(info); fbtft_framebuffer_release(info); } --=20 2.53.0