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

Slawomir Rosek posted 1 patch 8 months, 3 weeks ago
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(-)
[PATCH v1] platform/chrome: cros_ec_proto: allow to build as module
Posted by Slawomir Rosek 8 months, 3 weeks ago
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(-)

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");
-- 
2.49.0.472.ge94155a9ec-goog
Re: [PATCH v1] platform/chrome: cros_ec_proto: allow to build as module
Posted by Tzung-Bi Shih 8 months, 2 weeks ago
On Fri, Mar 28, 2025 at 01:26:12PM +0000, Slawomir Rosek wrote:
> 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.
> 
> [...]

Applied to

    https://git.kernel.org/pub/scm/linux/kernel/git/chrome-platform/linux.git for-next

[1/1] platform/chrome: cros_ec_proto: allow to build as module
      commit: ccf395bde6aeefac139f4f250287feb139e3355d

Thanks!
Re: [PATCH v1] platform/chrome: cros_ec_proto: allow to build as module
Posted by Tzung-Bi Shih 8 months, 2 weeks ago
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?
Re: [PATCH v1] platform/chrome: cros_ec_proto: allow to build as module
Posted by Sławomir Rosek 8 months, 2 weeks ago
On Wed, Apr 2, 2025 at 10:24 AM Tzung-Bi Shih <tzungbi@kernel.org> wrote:
>
> 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/.

I will fix that, thanks.

>
> > 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?

Yes, it is already used by android 6.6 and 6.12 kernels. The
CROS_EC_PROTO is used only by other tristates so =m propagates
properly.