tflite: mtk_neuron: Reject AsymI16 quantization on MT8188 MDLA

According to the document, MT8188 MDLA does not support AsymI16
operations. Therefore, we should reject such operations if encountered.

Note that MT8196 MDLA does support it, so we should check for the
platform here.

BUG=b:338959718
TEST=cros_sdk tast run $CIRI_DUT 'tflite.DTS.neuron'

Change-Id: Ic0402060cb3f70a7d922b9cd4d1905117d92fc75
Reviewed-on: https://chromium-review.googlesource.com/c/chromiumos/platform/tflite/+/6275669
Auto-Submit: Tommy Chiang <ototot@google.com>
Tested-by: Tommy Chiang <ototot@google.com>
Reviewed-by: Shik Chen <shik@chromium.org>
Commit-Queue: ChromeOS Auto Retry <chromeos-auto-retry@chromeos-bot.iam.gserviceaccount.com>
diff --git a/delegate/mtk_neuron/neuron_delegate_validation.cc b/delegate/mtk_neuron/neuron_delegate_validation.cc
index 4d9875c..a40e7bb 100644
--- a/delegate/mtk_neuron/neuron_delegate_validation.cc
+++ b/delegate/mtk_neuron/neuron_delegate_validation.cc
@@ -863,6 +863,13 @@
         Expect(quantization_params.scale > 0.f,
                NeuronValidationFailureType::kUnsupportedQuantizationParameters,
                "Input quantization scale should be > 0.", &val_ctx);
+        // MT8188 MDLA does not support asymi16
+        if (value_type == kTfLiteInt16 && neuron_version.major == 6) {
+          Expect(
+              quantization_params.zero_point == 0,
+              NeuronValidationFailureType::kUnsupportedQuantizationParameters,
+              "Input quantization zero point should be 0.", &val_ctx);
+        }
       }
       const auto output_type =
           TfLiteOpaqueTensorType(TfLiteOpaqueNodeGetOutput(context, node, 0));