From nobody Sun Feb 8 07:08:27 2026 Received: from mail-pl1-f180.google.com (mail-pl1-f180.google.com [209.85.214.180]) (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 1D5802CCB9 for ; Thu, 18 Dec 2025 00:43:35 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.180 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766018617; cv=none; b=Z6AUnjSo7TaFo9h+5z0hTMeDJS0fXR8yspru5YVdx5lqJyMj/2zksVURMZ/feh3Q/MczgaVqTIhRVE0bh9c/hcMdNpvWfEru2AnvcO8b1Dg2AwkwXUzUfxN3V7ZonOT0BpmSfmSvUFNmJz2aSxdnX39zOA0svtzqBFwF25xlD8A= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766018617; c=relaxed/simple; bh=3U+uEvM5FmJ21lBK+piPuzGOpXb+adXu2iPH+sgOaBs=; h=From:To:Cc:Subject:Date:Message-ID:MIME-Version; b=hoITwZwMwY87Z/j5JTqHYy1Vtp47cdMLnQQfyUL0gE+aHiOgu5Sz7aP0xLAfRANDlN5J2xTdrKkwHG1cF8DXeHAqN97Y3WTv7ZzlDOlW9GjjkGosu5ARqw/1cn95A1O0k/XEwey8TXVQlICEctc3WWTt7FfLTZJ8fXs3Dy0hfV0= 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=HCIy69yv; arc=none smtp.client-ip=209.85.214.180 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="HCIy69yv" Received: by mail-pl1-f180.google.com with SMTP id d9443c01a7336-2a0d0788adaso602025ad.3 for ; Wed, 17 Dec 2025 16:43:35 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1766018615; x=1766623415; 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=lFBvL96SsBXFY1GOi9n3IufCfDj+mjJoC0nT1JtdTtw=; b=HCIy69yvOnSo7Cf6KqZrJHtrmbH+Q5S2DMGTOma/6kqDcZbOlW9VCTFf7hqchVK7ZO C1/OEqsN99VvCRVmnf7ZDhdSk9UcvedfvE9H9hVgNBhKTa1RwhLgG+fOamoZe/zIkWA9 zEZrKWdOW88IvL1YtiVtQ79uHdYOW4+HGUeqwPQh9D3mMAYnMygQQKkQr9mS9Cv3te27 8YQMOceFlZNMMIYvyoCqMHXf7bip0eR9hW5Q0T7dwBZp2Q8n+kL74G/BKxh6gy4fTAFZ smlr6JHr9URmpO6nVD7s9RiHVDoOr2SR/qs4j7Pmj6anJUi00XhxHKRtfyHfN+Ddmosa r1Lg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1766018615; x=1766623415; 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=lFBvL96SsBXFY1GOi9n3IufCfDj+mjJoC0nT1JtdTtw=; b=PVNAHMIU+ooAzmc6oM0xllfnIhvFeObntCmLCqJR8AYJR3/ksSPU6Ng1DD+02jT9VA r3HJLETE5z1EOCZRogIEOcnbjYTsq4Nvl/+1rQI0fdc+Oc3Y39JZXgLRSHzKSzMQWMcY soxG+vNOSGcSl0IXJSibKYqpPWBv6kN05nvWoi+EBr1w0l49r9sxxK3j9u99GFSj9ImM w41pm8lgnSVRCHreFioIAO/j4VOaW2lyv3D7+w84twby2gTIMOpg8K38uMyP6Eewx4TG LA3mEPB/q0j2pZAPVvgLDHwQplTsulJ9D7k6zglY4x4ilfdvH2xr7uIzUJeRdRuOiFO3 za0Q== X-Forwarded-Encrypted: i=1; AJvYcCUTRhP3ljRJdE2gjoas2Cr3zUBTrvIo5FhYC2lMAgg5Y47d6/vgumIV80PNg0LNF/q6TbIYj6VWT101I7g=@vger.kernel.org X-Gm-Message-State: AOJu0YxLt+r9MwP/DFEILeO1fXlQJ9O03UrsPc0d7AmUtElGZeMOHr5S dHdQq4okM+BBXw4VJHBew16AG9Uk499Yx8mWyVEe2ahxYKA6Zw4Is28e X-Gm-Gg: AY/fxX7TIiMfpAXLkTbSLD3Q25bDbsw2NKLOXiKRhvr5S0bjpjxvGVokR8ixKFOyHXr 7oPcQ9CMVT8nbOXg2VoaKNpuLVXa4AjtH/0Em4BTWWtyTDGd5TH/dUXwTpiPvrhvHIN8qlcwDBj 4CNoUNH7RfjcdERfm7VheJm7xfhDT4TQJTwl7vJSpNjJbuzzfw9McuhalgOvWMZUUaRtEC+p5zC P8p5KcbSZAIAwACz6zR29GWlCnxrJPbuD7+oi/NikmntjON/ny2H8xIswu+BY7iU5JDQVqIPlOX nXTWtsae9rOyyxvsG4Lib82pvqgSAClHWJi0itT98MkSaeAdfiqcnCmFECOzVAv47uflkpt2aFK x/H2YWtCdseA1YlPKBKVXly9kczdmAgPF4NTOU/6T7xhCpjNkbdL44D9P1pTbMJAvIYkAz+aZKT 1ka9XzuvusiQ== X-Google-Smtp-Source: AGHT+IHXPYnZ7E69bP2nqUc/pQLxn101I1QmHMYq1oQ+b98tg7iTEqKDi2M4pJ8wuRrwwolMhc/67g== X-Received: by 2002:a05:701b:2218:b0:11a:72c6:22d6 with SMTP id a92af1059eb24-11f34c02a6fmr15633109c88.25.1766018615312; Wed, 17 Dec 2025 16:43:35 -0800 (PST) Received: from localhost ([2001:19f0:ac00:4eb8:5400:5ff:fe30:7df3]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12061fcfc66sm2825041c88.15.2025.12.17.16.43.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 17 Dec 2025 16:43:34 -0800 (PST) From: Inochi Amaoto To: Michael Turquette , Stephen Boyd , Yixun Lan , Haylen Chu , Alex Elder , Troy Mitchell , Inochi Amaoto , Charles Mirabile , Brian Masney , Akhilesh Patil Cc: linux-clk@vger.kernel.org, linux-riscv@lists.infradead.org, spacemit@lists.linux.dev, linux-kernel@vger.kernel.org, Longbin Li Subject: [PATCH v3] clk: spacemit: Fix module build for spacemit common ccu driver Date: Thu, 18 Dec 2025 08:42:27 +0800 Message-ID: <20251218004227.221861-1-inochiama@gmail.com> X-Mailer: git-send-email 2.52.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" For build spacemit common clock driver as a module, the build process require MODULE_LICENSE()/MODULE_DESCRIPTION() globally and EXPORT_SYMBOL() for every exposed symbol. Otherwise, the build will fail. Add these missing hints, so the driver can be built as a module. Fixes: 1b72c59db0ad ("clk: spacemit: Add clock support for SpacemiT K1 SoC") Signed-off-by: Inochi Amaoto Reviewed-by: Yixun Lan --- drivers/clk/spacemit/ccu-k1.c | 1 + drivers/clk/spacemit/ccu_ddn.c | 1 + drivers/clk/spacemit/ccu_mix.c | 9 +++++++++ drivers/clk/spacemit/ccu_pll.c | 5 +++++ 4 files changed, 16 insertions(+) diff --git a/drivers/clk/spacemit/ccu-k1.c b/drivers/clk/spacemit/ccu-k1.c index 4761bc1e3b6e..01d9485b615d 100644 --- a/drivers/clk/spacemit/ccu-k1.c +++ b/drivers/clk/spacemit/ccu-k1.c @@ -1204,6 +1204,7 @@ static struct platform_driver k1_ccu_driver =3D { }; module_platform_driver(k1_ccu_driver); =20 +MODULE_IMPORT_NS("CLK_SPACEMIT"); MODULE_DESCRIPTION("SpacemiT K1 CCU driver"); MODULE_AUTHOR("Haylen Chu "); MODULE_LICENSE("GPL"); diff --git a/drivers/clk/spacemit/ccu_ddn.c b/drivers/clk/spacemit/ccu_ddn.c index 5b16e273bee5..b5540e0781ff 100644 --- a/drivers/clk/spacemit/ccu_ddn.c +++ b/drivers/clk/spacemit/ccu_ddn.c @@ -84,3 +84,4 @@ const struct clk_ops spacemit_ccu_ddn_ops =3D { .determine_rate =3D ccu_ddn_determine_rate, .set_rate =3D ccu_ddn_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_ddn_ops, "CLK_SPACEMIT"); diff --git a/drivers/clk/spacemit/ccu_mix.c b/drivers/clk/spacemit/ccu_mix.c index 7b7990875372..67f8b12b4f5b 100644 --- a/drivers/clk/spacemit/ccu_mix.c +++ b/drivers/clk/spacemit/ccu_mix.c @@ -198,24 +198,28 @@ const struct clk_ops spacemit_ccu_gate_ops =3D { .enable =3D ccu_gate_enable, .is_enabled =3D ccu_gate_is_enabled, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_gate_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_factor_ops =3D { .determine_rate =3D ccu_factor_determine_rate, .recalc_rate =3D ccu_factor_recalc_rate, .set_rate =3D ccu_factor_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_factor_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_mux_ops =3D { .determine_rate =3D ccu_mix_determine_rate, .get_parent =3D ccu_mux_get_parent, .set_parent =3D ccu_mux_set_parent, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_div_ops =3D { .determine_rate =3D ccu_mix_determine_rate, .recalc_rate =3D ccu_div_recalc_rate, .set_rate =3D ccu_mix_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_div_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_factor_gate_ops =3D { .disable =3D ccu_gate_disable, @@ -226,6 +230,7 @@ const struct clk_ops spacemit_ccu_factor_gate_ops =3D { .recalc_rate =3D ccu_factor_recalc_rate, .set_rate =3D ccu_factor_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_factor_gate_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_mux_gate_ops =3D { .disable =3D ccu_gate_disable, @@ -236,6 +241,7 @@ const struct clk_ops spacemit_ccu_mux_gate_ops =3D { .get_parent =3D ccu_mux_get_parent, .set_parent =3D ccu_mux_set_parent, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_gate_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_div_gate_ops =3D { .disable =3D ccu_gate_disable, @@ -246,6 +252,7 @@ const struct clk_ops spacemit_ccu_div_gate_ops =3D { .recalc_rate =3D ccu_div_recalc_rate, .set_rate =3D ccu_mix_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_div_gate_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_mux_div_gate_ops =3D { .disable =3D ccu_gate_disable, @@ -259,6 +266,7 @@ const struct clk_ops spacemit_ccu_mux_div_gate_ops =3D { .recalc_rate =3D ccu_div_recalc_rate, .set_rate =3D ccu_mix_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_div_gate_ops, "CLK_SPACEMIT"); =20 const struct clk_ops spacemit_ccu_mux_div_ops =3D { .get_parent =3D ccu_mux_get_parent, @@ -268,3 +276,4 @@ const struct clk_ops spacemit_ccu_mux_div_ops =3D { .recalc_rate =3D ccu_div_recalc_rate, .set_rate =3D ccu_mix_set_rate, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_mux_div_ops, "CLK_SPACEMIT"); diff --git a/drivers/clk/spacemit/ccu_pll.c b/drivers/clk/spacemit/ccu_pll.c index d92f0dae65a4..7389202c4831 100644 --- a/drivers/clk/spacemit/ccu_pll.c +++ b/drivers/clk/spacemit/ccu_pll.c @@ -7,6 +7,7 @@ #include #include #include +#include =20 #include "ccu_common.h" #include "ccu_pll.h" @@ -157,3 +158,7 @@ const struct clk_ops spacemit_ccu_pll_ops =3D { .determine_rate =3D ccu_pll_determine_rate, .is_enabled =3D ccu_pll_is_enabled, }; +EXPORT_SYMBOL_NS_GPL(spacemit_ccu_pll_ops, "CLK_SPACEMIT"); + +MODULE_DESCRIPTION("SpacemiT CCU common clock driver"); +MODULE_LICENSE("GPL"); --=20 2.52.0