From patchwork Mon May 13 12:51:05 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Thomas Zimmermann X-Patchwork-Id: 13663434 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from gabe.freedesktop.org (gabe.freedesktop.org [131.252.210.177]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 884BBC25B78 for ; Mon, 13 May 2024 12:56:47 +0000 (UTC) Received: from gabe.freedesktop.org (localhost [127.0.0.1]) by gabe.freedesktop.org (Postfix) with ESMTP id CB0BE10E75E; Mon, 13 May 2024 12:56:41 +0000 (UTC) Authentication-Results: gabe.freedesktop.org; dkim=pass (1024-bit key; unprotected) header.d=suse.de header.i=@suse.de header.b="c5xWztIu"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="oA8gkBM0"; dkim=pass (1024-bit key) header.d=suse.de header.i=@suse.de header.b="c5xWztIu"; dkim=permerror (0-bit key) header.d=suse.de header.i=@suse.de header.b="oA8gkBM0"; dkim-atps=neutral Received: from smtp-out1.suse.de (smtp-out1.suse.de [195.135.223.130]) by gabe.freedesktop.org (Postfix) with ESMTPS id 787E110E131 for ; Mon, 13 May 2024 12:56:29 +0000 (UTC) Received: from imap1.dmz-prg2.suse.org (imap1.dmz-prg2.suse.org [10.150.64.97]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp-out1.suse.de (Postfix) with ESMTPS id BE511347BA; Mon, 13 May 2024 12:56:27 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1715604987; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XHGmCz71iGOh1DlrZhI6prVrR2efN7O3ez/Cep7ErjU=; b=c5xWztIuY9yotEbY/q+hntHFXNhccCNmhz8h5isB5o4uOjYbzaZ7qipbBsZz8Htks8BCPx q/uohjTGDJanpH4Dt6bPBC0VRxz/LOLQNHevAe5C+u/w0AqZJpyWwy8PFWyojTCuCZSmIu xTtxdv/mh+O04fxbE5HJNcqYC04PFjg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1715604987; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XHGmCz71iGOh1DlrZhI6prVrR2efN7O3ez/Cep7ErjU=; b=oA8gkBM0mzFxQW5FlFUnGmOtxVr7Na3ETkPobkGsLS7dJjCL0xxnpH4+8ya8bF0Azh159p s/5fIs8mw12mxrCw== Authentication-Results: smtp-out1.suse.de; none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_rsa; t=1715604987; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XHGmCz71iGOh1DlrZhI6prVrR2efN7O3ez/Cep7ErjU=; b=c5xWztIuY9yotEbY/q+hntHFXNhccCNmhz8h5isB5o4uOjYbzaZ7qipbBsZz8Htks8BCPx q/uohjTGDJanpH4Dt6bPBC0VRxz/LOLQNHevAe5C+u/w0AqZJpyWwy8PFWyojTCuCZSmIu xTtxdv/mh+O04fxbE5HJNcqYC04PFjg= DKIM-Signature: v=1; a=ed25519-sha256; c=relaxed/relaxed; d=suse.de; s=susede2_ed25519; t=1715604987; h=from:from:reply-to:date:date:message-id:message-id:to:to:cc:cc: mime-version:mime-version: content-transfer-encoding:content-transfer-encoding; bh=XHGmCz71iGOh1DlrZhI6prVrR2efN7O3ez/Cep7ErjU=; b=oA8gkBM0mzFxQW5FlFUnGmOtxVr7Na3ETkPobkGsLS7dJjCL0xxnpH4+8ya8bF0Azh159p s/5fIs8mw12mxrCw== Received: from imap1.dmz-prg2.suse.org (localhost [127.0.0.1]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by imap1.dmz-prg2.suse.org (Postfix) with ESMTPS id 760FF13A52; Mon, 13 May 2024 12:56:27 +0000 (UTC) Received: from dovecot-director2.suse.de ([2a07:de40:b281:106:10:150:64:167]) by imap1.dmz-prg2.suse.org with ESMTPSA id jdDOGvsNQmZpfwAAD6G6ig (envelope-from ); Mon, 13 May 2024 12:56:27 +0000 From: Thomas Zimmermann To: jfalempe@redhat.com, airlied@redhat.com, maarten.lankhorst@linux.intel.com, mripard@kernel.org, airlied@gmail.com, jani.nikula@linux.intel.com Cc: dri-devel@lists.freedesktop.org, Thomas Zimmermann Subject: [PATCH 00/10] drm/mgag200: Refactor DDC code Date: Mon, 13 May 2024 14:51:05 +0200 Message-ID: <20240513125620.6337-1-tzimmermann@suse.de> X-Mailer: git-send-email 2.45.0 MIME-Version: 1.0 X-Spamd-Result: default: False [-2.80 / 50.00]; BAYES_HAM(-3.00)[100.00%]; MID_CONTAINS_FROM(1.00)[]; NEURAL_HAM_LONG(-1.00)[-1.000]; R_MISSING_CHARSET(0.50)[]; NEURAL_HAM_SHORT(-0.20)[-1.000]; MIME_GOOD(-0.10)[text/plain]; RCPT_COUNT_SEVEN(0.00)[8]; ARC_NA(0.00)[]; MIME_TRACE(0.00)[0:+]; FREEMAIL_TO(0.00)[redhat.com,linux.intel.com,kernel.org,gmail.com]; RCVD_VIA_SMTP_AUTH(0.00)[]; DKIM_SIGNED(0.00)[suse.de:s=susede2_rsa,suse.de:s=susede2_ed25519]; FUZZY_BLOCKED(0.00)[rspamd.com]; FROM_EQ_ENVFROM(0.00)[]; FROM_HAS_DN(0.00)[]; TO_DN_SOME(0.00)[]; RCVD_TLS_ALL(0.00)[]; TO_MATCH_ENVRCPT_ALL(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; FREEMAIL_ENVRCPT(0.00)[gmail.com] X-BeenThere: dri-devel@lists.freedesktop.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Direct Rendering Infrastructure - Development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" Clean up a the driver's DDC code, make it simpler, more robust, and mostly self contained. The patches in this patchset have previously been sent as part of rev 1 of [1]. Patches 1 and 2 fix long-standing problems in the DDC code. Patches 3 to 9 refactor the DDC code. The code then keeps its data structures internal, acquires locks automatically and is much more readable overall. Patch 10 replaces driver code with an equivalent helper. Tested on various Matrox hardware. [1] https://patchwork.freedesktop.org/series/131977/ Thomas Zimmermann (10): drm/mgag200: Set DDC timeout in milliseconds drm/mgag200: Bind I2C lifetime to DRM device drm/mgag200: Store pointer to struct mga_device in struct mga_i2c_chan drm/mgag200: Allocate instance of struct mga_i2c_chan dynamically drm/mgag200: Inline mgag200_i2c_init() drm/mgag200: Replace struct mga_i2c_chan with struct mgag200_ddc drm/mgag200: Rename mgag200_i2c.c to mgag200_ddc.c drm/mgag200: Rename struct i2c_algo_bit_data callbacks drm/mgag200: Acquire I/O-register lock in DDC code drm/mgag200: Use drm_connector_helper_get_modes() drivers/gpu/drm/mgag200/Makefile | 2 +- drivers/gpu/drm/mgag200/mgag200_ddc.c | 179 ++++++++++++++++++++++ drivers/gpu/drm/mgag200/mgag200_ddc.h | 11 ++ drivers/gpu/drm/mgag200/mgag200_drv.h | 18 +-- drivers/gpu/drm/mgag200/mgag200_g200.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200eh.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200eh3.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200er.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200ev.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200ew3.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200se.c | 11 +- drivers/gpu/drm/mgag200/mgag200_g200wb.c | 11 +- drivers/gpu/drm/mgag200/mgag200_i2c.c | 129 ---------------- drivers/gpu/drm/mgag200/mgag200_mode.c | 27 +--- 14 files changed, 241 insertions(+), 213 deletions(-) create mode 100644 drivers/gpu/drm/mgag200/mgag200_ddc.c create mode 100644 drivers/gpu/drm/mgag200/mgag200_ddc.h delete mode 100644 drivers/gpu/drm/mgag200/mgag200_i2c.c Reviewed-by: Jocelyn Falempe