From patchwork Fri Jun 11 10:01:24 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1490871 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (no SPF record) smtp.mailfrom=lists.ubuntu.com (client-ip=91.189.94.19; helo=huckleberry.canonical.com; envelope-from=kernel-team-bounces@lists.ubuntu.com; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=G985EWfb; dkim-atps=neutral Received: from huckleberry.canonical.com (huckleberry.canonical.com [91.189.94.19]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 4G1bwT537Nz9sXM; Fri, 11 Jun 2021 20:01:45 +1000 (AEST) Received: from localhost ([127.0.0.1] helo=huckleberry.canonical.com) by huckleberry.canonical.com with esmtp (Exim 4.86_2) (envelope-from ) id 1lrdyw-000088-6Y; Fri, 11 Jun 2021 10:01:42 +0000 Received: from mail-pf1-f179.google.com ([209.85.210.179]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1lrdyt-00007M-RQ for kernel-team@lists.ubuntu.com; Fri, 11 Jun 2021 10:01:40 +0000 Received: by mail-pf1-f179.google.com with SMTP id m7so4033169pfa.10 for ; Fri, 11 Jun 2021 03:01:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=O6XOXy1l1xq/HUlW37gtDennQUZ0/+u91009IyX+ge8=; b=G985EWfb3KWbGGyg4K/ODVTDHL+GczceLZ+vdG0GBTOY+hTBGK/eyaIxXkMgrHCg1F lQinQPL/g5a74AUJNoNwuf/NCMtWsEz0yTAvA0dtYa1wx6VYb+N4ObZ/8ClKoqzjgWnM 9JezLnoZbs1rud0sy8HDK2DsYEYAMge/nYPK4JOlyhXyLVbEzWziA+rXcUVPJVJAXiGH L2ZW5ezzLlxQPbNxk2aOy6OZWFC1ppiXHDunllfm1DbkJXVU65rWjMCa2XjbetV22wYU fZAPp8ZbPBrTREXM4+pTauN6oRRLc9yAng9tW+rL6KXA9lW/7SwP+bf7dPhO7NU1odd7 tN/Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:subject:date:message-id :in-reply-to:references:mime-version:content-transfer-encoding; bh=O6XOXy1l1xq/HUlW37gtDennQUZ0/+u91009IyX+ge8=; b=A10+Fs5KScJl8pXp/0xbVmgOhjTD2wGLh/hH16q1RBNa1IJHHRr7+14yYfwYarXCgc 9RSzE1NkIKdLsu+XlInihM1xNA2PFLbCLPpJr+6uBxShqZjagphKYeo3GtaZ8wUK5GaM k+1w6iCUzBFlUQ2cbUG4kZLyn40e+Pl55uSo+TsGaCa7e+euIE4NSo4XoOsmVMFZ4MAN 8hfqHV0Q1HzlkXSD/+zk/fZgFbXy4tqf2h0vXBNYFghNY/k9f0o/fPOXNfnFwTDE9UtO GVp0c+qS/1trCEbvYtrhwdS/Ddu4ipmZXoyQGttm0OpmPugXD8+FCjH0jW3L8npC3b8w UWUw== X-Gm-Message-State: AOAM532n5+6vCmlevNIhH9Orl3IrUdEPJ8wqcC1DOnqTJJ9gf1yLagO+ wBkgRB3EyboSobV6SEOvFpYsiQq8p2BzFw== X-Google-Smtp-Source: ABdhPJzTPD+ouXNYfOIPMPE4mznGmW3C56lR0/Wfy27aVQPcKB61piK6vTmkdQHiDOM+va8giPHOIw== X-Received: by 2002:a62:1743:0:b029:2ef:6014:62d5 with SMTP id 64-20020a6217430000b02902ef601462d5mr7666448pfx.63.1623405697225; Fri, 11 Jun 2021 03:01:37 -0700 (PDT) Received: from localhost (220-135-95-34.HINET-IP.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id h21sm4498998pfv.190.2021.06.11.03.01.36 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jun 2021 03:01:36 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/4][SRU][H] UBUNTU: [Packaging] Add support for ODM drivers Date: Fri, 11 Jun 2021 18:01:24 +0800 Message-Id: <20210611100131.15133-2-acelan.kao@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210611100131.15133-1-acelan.kao@canonical.com> References: <20210611100131.15133-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.210.179; envelope-from=acelan@gmail.com; helo=mail-pf1-f179.google.com X-BeenThere: kernel-team@lists.ubuntu.com X-Mailman-Version: 2.1.20 Precedence: list List-Id: Kernel team discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: kernel-team-bounces@lists.ubuntu.com Sender: "kernel-team" From: Stefan Bader BugLink: https://bugs.launchpad.net/bugs/1912789 We want to be able to selectively turn on ODM driver support for those kernels/arches we have to but otherwise not inherit this to other derivatives. This is done by a new config option which we will have to depend on in the new drivers config options. Support is toggled by changing a makefile rule variable. The new config option will be hidden as long as not at least one of the arches supported turns on the rule variable. Signed-off-by: Stefan Bader Acked-by: Marcelo Henrique Cerri Acked-by: Andy Whitcroft Signed-off-by: Kelsey Skunberg (cherry picked from commit 4aeffc246531a666c1fad1925ebf1a6e68a704e4 focal) Signed-off-by: Chia-Lin Kao (AceLan) --- debian/rules.d/0-common-vars.mk | 4 ++++ debian/rules.d/1-maintainer.mk | 1 + debian/rules.d/2-binary-arch.mk | 3 +++ debian/scripts/misc/arch-has-odm-enabled.sh | 21 +++++++++++++++++++++ debian/scripts/misc/kernelconfig | 2 +- ubuntu/Kconfig | 6 ++++++ 6 files changed, 36 insertions(+), 1 deletion(-) create mode 100755 debian/scripts/misc/arch-has-odm-enabled.sh diff --git a/debian/rules.d/0-common-vars.mk b/debian/rules.d/0-common-vars.mk index f642cda1a185..ad1c39b97bb3 100644 --- a/debian/rules.d/0-common-vars.mk +++ b/debian/rules.d/0-common-vars.mk @@ -187,6 +187,10 @@ do_common_headers_indep=true # add a 'full source' mode do_full_source=false +# Add an option to enable special drivers which should only be build when +# explicitly enabled. +do_odm_drivers=false + # build tools ifneq ($(wildcard $(CURDIR)/tools),) ifeq ($(do_tools),) diff --git a/debian/rules.d/1-maintainer.mk b/debian/rules.d/1-maintainer.mk index a266b411ab50..48eb1441db15 100644 --- a/debian/rules.d/1-maintainer.mk +++ b/debian/rules.d/1-maintainer.mk @@ -86,6 +86,7 @@ printenv: @echo "do_flavour_header_package = $(do_flavour_header_package)" @echo "do_common_headers_indep = $(do_common_headers_indep)" @echo "do_full_source = $(do_full_source)" + @echo "do_odm_drivers = $(do_odm_drivers)" @echo "do_tools = $(do_tools)" @echo "do_any_tools = $(do_any_tools)" @echo "do_linux_tools = $(do_linux_tools)" diff --git a/debian/rules.d/2-binary-arch.mk b/debian/rules.d/2-binary-arch.mk index 5ae9a989207c..453788fdba6b 100644 --- a/debian/rules.d/2-binary-arch.mk +++ b/debian/rules.d/2-binary-arch.mk @@ -31,6 +31,9 @@ $(stampdir)/stamp-prepare-tree-%: $(commonconfdir)/config.common.$(family) $(arc [ "$(do_full_source)" != 'true' ] && true || \ rsync -a --exclude debian --exclude debian.master --exclude $(DEBIAN) * $(builddir)/build-$* cat $(wordlist 1,3,$^) | sed -e 's/.*CONFIG_VERSION_SIGNATURE.*/CONFIG_VERSION_SIGNATURE="Ubuntu $(release)-$(revision)-$* $(raw_kernelversion)"/' > $(builddir)/build-$*/.config + [ "$(do_odm_drivers)" = 'true' ] && true || \ + sed -ie 's/.*CONFIG_UBUNTU_ODM_DRIVERS.*/# CONFIG_UBUNTU_ODM_DRIVERS is not set/' \ + $(builddir)/build-$*/.config find $(builddir)/build-$* -name "*.ko" | xargs rm -f $(build_cd) $(kmake) $(build_O) -j1 syncconfig prepare scripts touch $@ diff --git a/debian/scripts/misc/arch-has-odm-enabled.sh b/debian/scripts/misc/arch-has-odm-enabled.sh new file mode 100755 index 000000000000..7bc8a5db0db0 --- /dev/null +++ b/debian/scripts/misc/arch-has-odm-enabled.sh @@ -0,0 +1,21 @@ +#!/bin/sh +# Evaluate whether arch ($1) will be built with do_odm_drivers set to true. +set -e + +if [ "$1" = "" ]; then + return 1 +fi + +TOPDIR=$(dirname $0)/../../.. +. $TOPDIR/debian/debian.env +RULESDIR=$TOPDIR/$DEBIAN/rules.d + +do_odm_drivers=false +for f in $1.mk hooks.mk; do + eval $(cat $RULESDIR/$f | sed -n -e '/do_odm_drivers/s/ \+//gp') +done +if [ "$do_odm_drivers" != "true" ]; then + return 1 +fi + +return 0 diff --git a/debian/scripts/misc/kernelconfig b/debian/scripts/misc/kernelconfig index 888cc892d936..f95396e28f28 100755 --- a/debian/scripts/misc/kernelconfig +++ b/debian/scripts/misc/kernelconfig @@ -68,7 +68,7 @@ for arch in $archs; do # for i386 since it is no longer supported after 19.04, however # we maintain the configs for hwe. modify_config=true - env="ARCH=$kernarch" + env="ARCH=$kernarch DEB_ARCH=$arch" compiler_path=$(which "${cross_compile}gcc" || true) if [ "$compiler_path" != '' ]; then env="$env CROSS_COMPILE=$cross_compile" diff --git a/ubuntu/Kconfig b/ubuntu/Kconfig index 5056671223bb..5575ce574577 100644 --- a/ubuntu/Kconfig +++ b/ubuntu/Kconfig @@ -1,5 +1,11 @@ menu "Ubuntu Supplied Third-Party Device Drivers" + +config UBUNTU_ODM_DRIVERS + def_bool $(success,$(srctree)/debian/scripts/misc/arch-has-odm-enabled.sh $(DEB_ARCH)) + ---help--- + Turn on support for Ubuntu ODM supplied drivers + # # NOTE: to allow drivers to be added and removed without causing merge # collisions you should add new entries in the middle of the six lines