summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWhi copybara merger <whitechapel-automerger@google.com>2023-03-28 15:40:19 -0700
committerCopybara-Service <copybara-worker@google.com>2023-04-04 10:38:27 -0700
commit63cc3446d537da436b313e2ff896d2fcd87cea86 (patch)
tree8bc89aef47267336c6ae34d7fa320d98af5a0131
parent7d226040fcdb03c939b20f5824617a7de9c00962 (diff)
downloadabrolhos-63cc3446d537da436b313e2ff896d2fcd87cea86.tar.gz
[Copybara Auto Merge] Merge branch whitechapel into partner-androidandroid-u-beta-2_r0.4android-u-beta-2_r0.3android-u-beta-2_r0.2
edgetpu: whitechapel: sync with darwinn-2.0 144f46abe edgetpu: KCI accept out-of-order responses 483df98c5 edgetpu: Use scmversion over GIT_REPO_TAG Bug: 274574929 Bug: 274893782 GitOrigin-RevId: 29cefd89cee9d8e285b5b372aac95fd777ec5bb3 Change-Id: I7b5e68926c5d45a300204da26e9d419bcd8d4267
-rw-r--r--drivers/edgetpu/Kbuild10
-rw-r--r--drivers/edgetpu/Makefile10
-rw-r--r--drivers/edgetpu/edgetpu-fs.c2
-rw-r--r--drivers/edgetpu/edgetpu-kci.c10
-rw-r--r--drivers/edgetpu/edgetpu-mobile-platform.c14
5 files changed, 27 insertions, 19 deletions
diff --git a/drivers/edgetpu/Kbuild b/drivers/edgetpu/Kbuild
index fab3cd2..2dd0e30 100644
--- a/drivers/edgetpu/Kbuild
+++ b/drivers/edgetpu/Kbuild
@@ -3,11 +3,11 @@ obj-m += abrolhos.o
CURRENT_DIR=$(dir $(abspath $(lastword $(MAKEFILE_LIST))))
ccflags-y += -DCONFIG_EDGETPU_TELEMETRY_TRACE=1 -I$(CURRENT_DIR)/include
GIT_PATH=$(CURRENT_DIR)/../../
-ifeq ($(shell git --git-dir=$(GIT_PATH)/.git rev-parse --is-inside-work-tree),true)
- GIT_REPO_STATE=$(shell (git --git-dir=$(GIT_PATH)/.git --work-tree=$(GIT_PATH) status --porcelain | grep -q .) && echo -dirty)
- ccflags-y += -DGIT_REPO_TAG=\"$(shell git --git-dir=$(GIT_PATH)/.git rev-parse --short HEAD)$(GIT_REPO_STATE)\"
-else
- ccflags-y += -DGIT_REPO_TAG=\"Not\ a\ git\ repository\"
+GIT_BIN=/usr/bin/git
+GIT=$(GIT_BIN) -C $(GIT_PATH)
+ifeq ($(shell $(GIT) rev-parse --is-inside-work-tree),true)
+ GIT_REPO_STATE=$(shell ($(GIT) status --porcelain | grep -q .) && echo -dirty)
+ ccflags-y += -DGIT_REPO_TAG=\"$(shell $(GIT) rev-parse --short HEAD)$(GIT_REPO_STATE)-kbuild\"
endif
edgetpu-objs := edgetpu-mailbox.o edgetpu-telemetry.o edgetpu-mapping.o edgetpu-dmabuf.o edgetpu-async.o edgetpu-iremap-pool.o edgetpu-sw-watchdog.o edgetpu-firmware.o edgetpu-firmware-util.o edgetpu-domain-pool.o
diff --git a/drivers/edgetpu/Makefile b/drivers/edgetpu/Makefile
index fbdba93..ba43ecd 100644
--- a/drivers/edgetpu/Makefile
+++ b/drivers/edgetpu/Makefile
@@ -6,11 +6,11 @@
obj-$(CONFIG_ABROLHOS) += abrolhos.o
GIT_PATH=$(srctree)
-ifeq ($(shell git --git-dir=$(GIT_PATH)/.git rev-parse --is-inside-work-tree),true)
- GIT_REPO_STATE=$(shell (git --git-dir=$(GIT_PATH)/.git --work-tree=$(GIT_PATH) status --porcelain | grep -q .) && echo -dirty)
- ccflags-y += -DGIT_REPO_TAG=\"$(shell git --git-dir=$(GIT_PATH)/.git rev-parse --short HEAD)$(GIT_REPO_STATE)\"
-else
- ccflags-y += -DGIT_REPO_TAG=\"Not\ a\ git\ repository\"
+GIT_BIN=/usr/bin/git
+GIT=$(GIT_BIN) -C $(GIT_PATH)
+ifeq ($(shell $(GIT) rev-parse --is-inside-work-tree),true)
+ GIT_REPO_STATE=$(shell ($(GIT) status --porcelain | grep -q .) && echo -dirty)
+ ccflags-y += -DGIT_REPO_TAG=\"$(shell $(GIT) rev-parse --short HEAD)$(GIT_REPO_STATE)-makefile\"
endif
edgetpu-objs := edgetpu-async.o edgetpu-dmabuf.o edgetpu-iremap-pool.o \
diff --git a/drivers/edgetpu/edgetpu-fs.c b/drivers/edgetpu/edgetpu-fs.c
index 854c14c..bef8d35 100644
--- a/drivers/edgetpu/edgetpu-fs.c
+++ b/drivers/edgetpu/edgetpu-fs.c
@@ -1360,4 +1360,6 @@ struct dentry *edgetpu_fs_debugfs_dir(void)
MODULE_DESCRIPTION("Google EdgeTPU file operations");
MODULE_VERSION(DRIVER_VERSION);
MODULE_LICENSE("GPL v2");
+#ifdef GIT_REPO_TAG
MODULE_INFO(gitinfo, GIT_REPO_TAG);
+#endif
diff --git a/drivers/edgetpu/edgetpu-kci.c b/drivers/edgetpu/edgetpu-kci.c
index fd52c3c..52eff65 100644
--- a/drivers/edgetpu/edgetpu-kci.c
+++ b/drivers/edgetpu/edgetpu-kci.c
@@ -201,10 +201,7 @@ static void edgetpu_reverse_kci_init(struct edgetpu_reverse_kci *rkci)
* 2. #seq == @resp->seq:
* - Copy @resp, pop the head and we're done.
* 3. #seq < @resp->seq:
- * - Should not happen, this implies the sequence number of either entries in
- * wait_list or responses are out-of-order, or remote didn't respond to a
- * command. In this case, the status of response will be set to
- * KCI_STATUS_NO_RESPONSE.
+ * - Probable race with another context also processing KCI responses, ignore.
* - Pop until case 1. or 2.
*/
static void edgetpu_kci_consume_wait_list(
@@ -225,10 +222,7 @@ static void edgetpu_kci_consume_wait_list(
kfree(cur);
break;
}
- /* #seq < @resp->seq */
- cur->resp->status = KCI_STATUS_NO_RESPONSE;
- list_del(&cur->list);
- kfree(cur);
+ /* #seq < @resp->seq, probable race with another consumer, let it handle. */
}
spin_unlock_irqrestore(&kci->wait_list_lock, flags);
diff --git a/drivers/edgetpu/edgetpu-mobile-platform.c b/drivers/edgetpu/edgetpu-mobile-platform.c
index 96fe245..194c741 100644
--- a/drivers/edgetpu/edgetpu-mobile-platform.c
+++ b/drivers/edgetpu/edgetpu-mobile-platform.c
@@ -327,6 +327,17 @@ edgetpu_mobile_platform_set_fw_ctx_memory(struct edgetpu_mobile_platform_dev *et
return 0;
}
+static inline const char *get_driver_commit(void)
+{
+#if IS_ENABLED(CONFIG_MODULE_SCMVERSION)
+ return THIS_MODULE->scmversion;
+#elif defined(GIT_REPO_TAG)
+ return GIT_REPO_TAG;
+#else
+ return "Unknown";
+#endif
+}
+
static int edgetpu_mobile_platform_probe(struct platform_device *pdev,
struct edgetpu_mobile_platform_dev *etmdev)
{
@@ -452,7 +463,8 @@ static int edgetpu_mobile_platform_probe(struct platform_device *pdev,
}
}
- dev_info(dev, "%s edgetpu initialized. Build: %s", etdev->dev_name, GIT_REPO_TAG);
+ dev_info(dev, "%s edgetpu initialized. Build: %s", etdev->dev_name, get_driver_commit());
+
/* Turn the device off unless a client request is already received. */
edgetpu_pm_shutdown(etdev, false);