From ca6521bc1a6aab5f3684370baf1c672387bfe6c8 Mon Sep 17 00:00:00 2001
From: Ayush Singh <ayushsingh1325@gmail.com>
Date: Fri, 21 Jul 2023 20:12:23 +0530
Subject: [PATCH 1/2] Fix greybus for latest zephyr

With these changes, this module can be compiled on latest zephyr
---
 subsys/greybus/greybus-core.c             | 2 +-
 subsys/greybus/platform/transport-tcpip.c | 2 +-
 subsys/greybus/spi.c                      | 9 +++++----
 3 files changed, 7 insertions(+), 6 deletions(-)

diff --git a/subsys/greybus/greybus-core.c b/subsys/greybus/greybus-core.c
index 3a51ed2..695b58e 100644
--- a/subsys/greybus/greybus-core.c
+++ b/subsys/greybus/greybus-core.c
@@ -268,7 +268,7 @@ static void gb_process_request(struct gb_operation_hdr *hdr,
     operation->bundle = g_cport[operation->cport].driver->bundle;
 
     result = op_handler->handler(operation);
-    LOG_DBG("%s: %u", log_strdup(gb_handler_name(op_handler)), result);
+    LOG_DBG("%s: %u", gb_handler_name(op_handler), result);
 
     if (hdr->id)
         gb_operation_send_response(operation, result);
diff --git a/subsys/greybus/platform/transport-tcpip.c b/subsys/greybus/platform/transport-tcpip.c
index aebb4c2..d6a6ef8 100644
--- a/subsys/greybus/platform/transport-tcpip.c
+++ b/subsys/greybus/platform/transport-tcpip.c
@@ -340,7 +340,7 @@ static void accept_new_connection(struct fd_context *ctx)
     }
 
     LOG_DBG("cport %d accepted connection from [%s]:%d as fd %d",
-        ctx->cport, log_strdup(addrstr), ntohs(addr.sin6_port), fd);
+        ctx->cport, addrstr, ntohs(addr.sin6_port), fd);
 }
 
 static void handle_client_input(struct fd_context *ctx)
diff --git a/subsys/greybus/spi.c b/subsys/greybus/spi.c
index 69f756b..7ae698e 100644
--- a/subsys/greybus/spi.c
+++ b/subsys/greybus/spi.c
@@ -230,10 +230,10 @@ static int request_to_spi_config(const struct gb_spi_transfer_request *const req
     }
 
     if (request->mode & GB_SPI_MODE_NO_CS) {
-		if (spi_config->cs != NULL) {
+		// if (spi_config->cs != NULL) {
 			/* LOG_DBG("GB_SPI_MODE_NO_CS flag given but spi_config->cs is "
 				"non-NULL (%p)", spi_config->cs); */
-		}
+		// }
 	}
 
     if (request->mode & GB_SPI_MODE_READY) {
@@ -250,9 +250,10 @@ static int request_to_spi_config(const struct gb_spi_transfer_request *const req
     }
 
     if (!api->get_cs_control(gb_spidev, request->chip_select, ctrl)) {
-        spi_config->cs = ctrl;
+        //spi_config->cs = ctrl;
+        memcpy(&spi_config->cs, ctrl, sizeof(struct spi_cs_control));
     } else {
-        spi_config->cs = NULL;
+        // spi_config->cs = NULL;
     }
 
     return 0;
-- 
GitLab


From 50454af30f0368c845f213a30553e36c50c92055 Mon Sep 17 00:00:00 2001
From: Ayush Singh <ayushdevel1325@gmail.com>
Date: Tue, 15 Aug 2023 12:18:13 +0530
Subject: [PATCH 2/2] Add bundle deactiate and intf deactivate prepare

- These are called when AP disconnects.
- Just blank implementations for now since there does not seem to be any
need to do more.

Signed-off-by: Ayush Singh <ayushdevel1325@gmail.com>
---
 subsys/greybus/control-gpb.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)

diff --git a/subsys/greybus/control-gpb.c b/subsys/greybus/control-gpb.c
index 8c3c6f8..f9bc18e 100644
--- a/subsys/greybus/control-gpb.c
+++ b/subsys/greybus/control-gpb.c
@@ -196,6 +196,18 @@ static uint8_t gb_control_bundle_resume(struct gb_operation *operation)
 	return GB_OP_SUCCESS;
 }
 
+static uint8_t gb_control_bundle_deactivate(struct gb_operation *operation)
+{
+	struct gb_control_bundle_pm_response *response;
+    response = gb_operation_alloc_response(operation, sizeof(*response));
+    if (!response)
+        return GB_OP_NO_MEMORY;
+
+    response->status = GB_CONTROL_BUNDLE_PM_OK;
+
+	return GB_OP_SUCCESS;
+}
+
 static uint8_t gb_control_intf_suspend_prepare(struct gb_operation *operation)
 {
 	struct gb_control_bundle_pm_response *response;
@@ -208,6 +220,18 @@ static uint8_t gb_control_intf_suspend_prepare(struct gb_operation *operation)
 	return GB_OP_SUCCESS;
 }
 
+static uint8_t gb_control_intf_deactivate_prepare(struct gb_operation *operation)
+{
+	struct gb_control_bundle_pm_response *response;
+    response = gb_operation_alloc_response(operation, sizeof(*response));
+    if (!response)
+        return GB_OP_NO_MEMORY;
+
+    response->status = GB_CONTROL_BUNDLE_PM_OK;
+
+	return GB_OP_SUCCESS;
+}
+
 static uint8_t gb_control_interface_version(struct gb_operation *operation)
 {
     struct gb_control_interface_version_response *response;
@@ -395,7 +419,9 @@ static struct gb_operation_handler gb_control_handlers[] = {
 	GB_HANDLER(GB_CONTROL_TYPE_BUNDLE_ACTIVATE, gb_control_bundle_activate),
 	GB_HANDLER(GB_CONTROL_TYPE_BUNDLE_SUSPEND, gb_control_bundle_suspend),
 	GB_HANDLER(GB_CONTROL_TYPE_BUNDLE_RESUME, gb_control_bundle_resume),
+	GB_HANDLER(GB_CONTROL_TYPE_BUNDLE_DEACTIVATE, gb_control_bundle_deactivate),
 	GB_HANDLER(GB_CONTROL_TYPE_INTF_SUSPEND_PREPARE, gb_control_intf_suspend_prepare),
+	GB_HANDLER(GB_CONTROL_TYPE_INTF_DEACTIVATE_PREPARE, gb_control_intf_deactivate_prepare),
     /* XXX SW-4136: see control-gb.h */
     /*GB_HANDLER(GB_CONTROL_TYPE_INTF_POWER_STATE_SET, gb_control_intf_pwr_set),
     GB_HANDLER(GB_CONTROL_TYPE_BUNDLE_POWER_STATE_SET, gb_control_bundle_pwr_set),*/
-- 
GitLab