From patchwork Fri Jun 11 09:57:49 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: AceLan Kao X-Patchwork-Id: 1490864 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=XoleAKPS; 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 4G1brJ2pF8z9sSn; Fri, 11 Jun 2021 19:58:08 +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 1lrdvQ-00085q-AO; Fri, 11 Jun 2021 09:58:04 +0000 Received: from mail-pj1-f45.google.com ([209.85.216.45]) by huckleberry.canonical.com with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.86_2) (envelope-from ) id 1lrdvM-00084H-Jw for kernel-team@lists.ubuntu.com; Fri, 11 Jun 2021 09:58:00 +0000 Received: by mail-pj1-f45.google.com with SMTP id o17-20020a17090a9f91b029015cef5b3c50so5545191pjp.4 for ; Fri, 11 Jun 2021 02:58:00 -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=tGS5XlgPGcODx6d3biZh/D+4DitfYXpccvegSpnwVrk=; b=XoleAKPSzzh3Ysvh2XaKpS3yrz9iLu3ky0OYmUX3NgJtajJGc+0mAHN85T1IYBHSdh BmUoN71PQ4rzP0UkDx+yazZNBovv2mMLSuXy8yTplMtzwVApJqisl2+IuNncoOsXOz49 4/FY4F3Em/6NWexGnj3QYVlW3ctl6rVx8Ud8nlyRTRqgPS6KS5PxJDed6raq8PrnR+IG /9mn3oT+pypByQR6x3Av4hjulMDrOVG4CGGDrLM2/ROb9hUbHHT2E7GFRb0GEH6JoNEA OBDCoCyKpqYHEQrrPu9uprpr2Y6oxdTpAv4hlBObfuBHpyu+lwCdEWNoQf+e9Bz8DuIa Cj+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=tGS5XlgPGcODx6d3biZh/D+4DitfYXpccvegSpnwVrk=; b=qvsgNT+pgw8t92HnW+uJG3+hERlCixyl5E3R1LuaLNwwjeygV6sWPmX8YHHZvVPaz5 Mq2ZdEgHkKjcJ4s3fXZvDW7VevZ3j7ZN1pJQbj/H6vLXhBbBjCrPrCnp7DnFEBaB/cCk FsuY20bx5aCp2y6V2h+xUMMS+SSIru/u1B4LAkhlRr+reWB9tyaA0UrZG7PK9x9C9LXm vJC0QhqFSeSg1oQ8TxBOAUOBJilnP9wD94rvVon2eqUix3qnMOuO4KFQ252Od1FSlQ9o +emXy5juvdk33leA3LACfX/VG1ynR/jcYlNjWMgZDyYWfjJciJdMASvx+aUUejTttoGx GOTg== X-Gm-Message-State: AOAM530RFHP9W0nKoOPghSg8wKEo8/9bb+xveisSx69tMU4EQBulii9A w3ipqePFbkCzf6OjndXsBXicHgAeUBHDrg== X-Google-Smtp-Source: ABdhPJw/fxOzUvLCMLq2jzkJWE0n4dS4/mzqaHas/nNGQKnvhZEgu8GRTx6j4actQ4yqBVyCbzbwtw== X-Received: by 2002:a17:90b:384b:: with SMTP id nl11mr3719605pjb.147.1623405477969; Fri, 11 Jun 2021 02:57:57 -0700 (PDT) Received: from localhost (220-135-95-34.HINET-IP.hinet.net. [220.135.95.34]) by smtp.gmail.com with ESMTPSA id e21sm4867253pjh.55.2021.06.11.02.57.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 11 Jun 2021 02:57:57 -0700 (PDT) From: AceLan Kao To: kernel-team@lists.ubuntu.com Subject: [PATCH 1/3][SRU][G] UBUNTU: [Packaging] Add support for ODM drivers Date: Fri, 11 Jun 2021 17:57:49 +0800 Message-Id: <20210611095751.14524-2-acelan.kao@canonical.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210611095751.14524-1-acelan.kao@canonical.com> References: <20210611095751.14524-1-acelan.kao@canonical.com> MIME-Version: 1.0 Received-SPF: pass client-ip=209.85.216.45; envelope-from=acelan@gmail.com; helo=mail-pj1-f45.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 4a04c41eedfd..c09213f2592a 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 b5b506f08058..5944ca526703 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 ddcbe4110cdb..ffd1bba6b54f 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