Received: by 2002:ac0:98c7:0:0:0:0:0 with SMTP id g7-v6csp167094imd; Fri, 26 Oct 2018 06:49:35 -0700 (PDT) X-Google-Smtp-Source: AJdET5e0UUBsQUsNRkaU8RG+8Y0g0R/33vpwPvVU5gxg6SkggTD+oNJw/z2jsocVOfgzyzrf46CF X-Received: by 2002:a17:902:2ec1:: with SMTP id r59-v6mr3580373plb.243.1540561775697; Fri, 26 Oct 2018 06:49:35 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1540561775; cv=none; d=google.com; s=arc-20160816; b=jVfqp8sWa5a2f/2K9MeQTERwdXXk9pIcUjfdvxi7boKwbVWJM5QI6kXnh8jREgsy8h Aa20D/ZUO62Rz3OWQahymyA3hvaHJUvUHJx+Pz1MPSXet3lr73izYeCepzsBz5YrgOua SzxmVuvowsr/JOrso0648AqDSvPCivYr09AfrXYaPiJReIUZy5roswl9diGEQxGPNoQL lVDlmk3pWOpJWydCyuUEP11IzuBblYN0iCTvSV8yOCT66BAjVuotpMLmPH0uRLwNbPR2 2X+gsG3qm6ibPbUM4qozt2SKXZ5R6YwEAoenS1iaTRphrMRdDB2rrNjqCu2Z+Fz46wS5 9sVA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=W2gCaFPpbwXTGlorQDi9QdX2UC+Sck6JwErMSBzTWrA=; b=RXTiqkFpDFzNXHN2XvR74quaVt1hVKij7y744FEcus5IRHfNh7uH2pPPV4Zsp2ob7L NboZGI1MaZBQP0AXdmgKdAf16FHiwDYz7CmNeA8j0mx3Uqt1a3DS6L3msly7VeIwx/ks f0HIyZk8gboVvoRGKygGZzP5GtxCk5vY1H7shP0bqB0zHPBeshFamOuuyd83XB9siKzi NlQu/rupuyTTzbFCb2axBZAtKmjka4cKIwd3R+MYx4PV+7lnVwWRJU2NnNUcxx+nga3W SMa+Ojo5YZ/de4w57Zdr64uWfeaJ5uVU7HkltiB2x18rYQfK9J55WJL8t+O9c2ALvygB 7GPQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id a5-v6si10902597plp.261.2018.10.26.06.49.20; Fri, 26 Oct 2018 06:49:35 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1727704AbeJZWZ7 (ORCPT + 99 others); Fri, 26 Oct 2018 18:25:59 -0400 Received: from mx2.suse.de ([195.135.220.15]:44790 "EHLO mx1.suse.de" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727520AbeJZWZt (ORCPT ); Fri, 26 Oct 2018 18:25:49 -0400 X-Virus-Scanned: by amavisd-new at test-mx.suse.de Received: from relay2.suse.de (unknown [195.135.220.254]) by mx1.suse.de (Postfix) with ESMTP id AABCCB05B; Fri, 26 Oct 2018 13:48:40 +0000 (UTC) From: Nicolas Saenz Julienne To: stefan.wahren@i2se.com, eric@anholt.net, dave.stevenson@raspberrypi.org Cc: nsaenzjulienne@suse.de, linux-rpi-kernel@lists.infradead.org, gregkh@linuxfoundation.org, linux-arm-kernel@lists.infradead.org, devel@driverdev.osuosl.org, linux-kernel@vger.kernel.org Subject: [PATCH RFC 18/18] staging: vchiq: add more tasks to the TODO list Date: Fri, 26 Oct 2018 15:48:13 +0200 Message-Id: <20181026134813.7775-19-nsaenzjulienne@suse.de> X-Mailer: git-send-email 2.19.1 In-Reply-To: <20181026134813.7775-1-nsaenzjulienne@suse.de> References: <20181026134813.7775-1-nsaenzjulienne@suse.de> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The more the better. Signed-off-by: Nicolas Saenz Julienne --- .../staging/vc04_services/interface/vchi/TODO | 46 ++++++++++++++++++- 1 file changed, 44 insertions(+), 2 deletions(-) diff --git a/drivers/staging/vc04_services/interface/vchi/TODO b/drivers/staging/vc04_services/interface/vchi/TODO index 0b3ec75ff627..bf2135826431 100644 --- a/drivers/staging/vc04_services/interface/vchi/TODO +++ b/drivers/staging/vc04_services/interface/vchi/TODO @@ -27,8 +27,8 @@ unused. 3) Make driver more portable Building this driver with arm/multi_v7_defconfig or arm64/defconfig -leads to data corruption during the following command: - +leads to data corruption during the following command: + vchiq_test -f 1 This should be fixed. @@ -49,3 +49,45 @@ such as dev_info, dev_dbg, and friends. A short top-down description of this driver's architecture (function of kthreads, userspace, limitations) could be very helpful for reviewers. + +7) Review and comment memory barriers + +There is a heavy use of memory barriers in this driver, it would be very +beneficial to go over all of them and, if correct, comment on their merits. +Extra points to whomever confidently reviews the remote_event_*() family of +functions. + +8) Get rid of custom function return values + +Most functions use a custom set of return values, we should force proper Linux +error numbers. Special care is needed for VCHIQ_RETRY. + +9) Reformat core code with more sane indentations + +The code follows the 80 characters limitation yet tends to go 3 or 4 levels of +indentation deep making it very unpleasant to read. This is specially relevant +in the character driver ioctl code and in the core thread functions. + +10) Reorganize file structure: Move char driver to it's own file and join both +platform files + +The cdev is defined alongside with the platform code in vchiq_arm.c. It would +be nice to completely decouple it from the actual core code. For instance to be +able to use bcm2835-audio without having /dev/vchiq created. One could argue +it's better for security reasons or general cleanliness. It could even be +interesting to create two different kernel modules, something the likes of +vchiq-core.ko and vchiq-dev.ko. This would also ease the upstreaming process. + +The code in vchiq_bcm2835_arm.c should fit in the generic platform file. + +12) Get rid of all the struct typedefs + +Most structs are typedefd, it's not encouraged in the kernel. + +13) Get rid of all non essential global structures and create a proper per +device structure + +The first thing one generally sees in a probe function is a memory allocation +for all the device specific data. This structure is then passed all over the +driver. This is good practice since it makes the driver work regardless of the +number of devices probed. -- 2.19.1