diff mbox series

[v1] platform/chrome: cros_ec_proto: allow to build as module

Message ID 20250328132612.511471-1-srosek@chromium.org (mailing list archive)
State New
Headers show
Series [v1] platform/chrome: cros_ec_proto: allow to build as module | expand

Commit Message

Slawomir Rosek March 28, 2025, 1:26 p.m. UTC
This allows to build ChromeOS EC communication protocol helpers as
kernel module which is particularly useful for Android GKI (Generic
Kernel Image) configuration. With this change the ChromeOS Platform
(CONFIG_CHROME_PLATFORMS=y) can be enabled directly from the vendor
kconfig fragment whithout additional configuration in gki_defconfig.

Signed-off-by: Slawomir Rosek <srosek@chromium.org>
---
 drivers/platform/chrome/Kconfig         | 2 +-
 drivers/platform/chrome/Makefile        | 3 ++-
 drivers/platform/chrome/cros_ec_proto.c | 3 +++
 3 files changed, 6 insertions(+), 2 deletions(-)

Comments

Tzung-Bi Shih April 2, 2025, 8:24 a.m. UTC | #1
On Fri, Mar 28, 2025 at 01:26:12PM +0000, Slawomir Rosek wrote:
> This allows to build ChromeOS EC communication protocol helpers as

s/This allows/Allow/.

> kernel module which is particularly useful for Android GKI (Generic
> Kernel Image) configuration. With this change the ChromeOS Platform
> (CONFIG_CHROME_PLATFORMS=y) can be enabled directly from the vendor
> kconfig fragment whithout additional configuration in gki_defconfig.

Does it work?  CROS_EC_PROTO is "selected" by other Kconfigs.  Wouldn't it
be either =y or =n?
diff mbox series

Patch

diff --git a/drivers/platform/chrome/Kconfig b/drivers/platform/chrome/Kconfig
index 1b2f2bd09662..f523ae3d3be0 100644
--- a/drivers/platform/chrome/Kconfig
+++ b/drivers/platform/chrome/Kconfig
@@ -155,7 +155,7 @@  config CROS_EC_LPC
 	  module will be called cros_ec_lpcs.
 
 config CROS_EC_PROTO
-	bool
+	tristate
 	help
 	  ChromeOS EC communication protocol helpers.
 
diff --git a/drivers/platform/chrome/Makefile b/drivers/platform/chrome/Makefile
index 1a5a484563cc..b981a1bb5bd8 100644
--- a/drivers/platform/chrome/Makefile
+++ b/drivers/platform/chrome/Makefile
@@ -25,7 +25,8 @@  endif
 obj-$(CONFIG_CROS_EC_TYPEC)		+= cros-ec-typec.o
 
 obj-$(CONFIG_CROS_EC_LPC)		+= cros_ec_lpcs.o
-obj-$(CONFIG_CROS_EC_PROTO)		+= cros_ec_proto.o cros_ec_trace.o
+cros-ec-proto-objs			:= cros_ec_proto.o cros_ec_trace.o
+obj-$(CONFIG_CROS_EC_PROTO)		+= cros-ec-proto.o
 obj-$(CONFIG_CROS_KBD_LED_BACKLIGHT)	+= cros_kbd_led_backlight.o
 obj-$(CONFIG_CROS_EC_CHARDEV)		+= cros_ec_chardev.o
 obj-$(CONFIG_CROS_EC_LIGHTBAR)		+= cros_ec_lightbar.o
diff --git a/drivers/platform/chrome/cros_ec_proto.c b/drivers/platform/chrome/cros_ec_proto.c
index 877b107fee4b..f90d2e7b616c 100644
--- a/drivers/platform/chrome/cros_ec_proto.c
+++ b/drivers/platform/chrome/cros_ec_proto.c
@@ -1157,3 +1157,6 @@  int cros_ec_get_cmd_versions(struct cros_ec_device *ec_dev, u16 cmd)
 		return resp.version_mask;
 }
 EXPORT_SYMBOL_GPL(cros_ec_get_cmd_versions);
+
+MODULE_LICENSE("GPL");
+MODULE_DESCRIPTION("ChromeOS EC communication protocol helpers");