Received: by 2002:a05:6902:102b:0:0:0:0 with SMTP id x11csp2094256ybt; Fri, 3 Jul 2020 00:12:08 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzmSZo5b5F2nHAZMoxZDhYON5n7F+f5Fc8CHWgpxRnyM+34NP8TC+5w6Tmvk0mWd/vTNKMN X-Received: by 2002:a17:907:2170:: with SMTP id rl16mr32545623ejb.422.1593760328114; Fri, 03 Jul 2020 00:12:08 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1593760328; cv=none; d=google.com; s=arc-20160816; b=DUTKkdiKxsVvHK+2Bwdaa8bfkYCfvVoHLutNTE3gGsZCFBK/RmVphWEUQ+2ZBmGpeK eIwRqP5WrwRKhhzs1+YrUQ5q6HenrvBgutjWBM+OiwLQU1/PJ4KaW0xiuD1pFodgZNy5 DpNWbJsHL6V0BDJIG5cEIrT0PuTsgd628E4KnJ5K5ksOwPLRKWWlxOkR+1MBYvfuwoQC Xcn2cc4vpVT8UKU3Y+DeT9KxIM0EkRtieLvfDSatzc9lwxRNTY1UJBmp7vq0mq04TOtx QlZD4nqkkfivy7EDSqvjfU+N+cSzZiZrpQ5gv3gI+OpanbexdYCQGsjY90eXK/hEPSJ4 IYcA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:references:in-reply-to:message-id:date :subject:cc:to:from:ironport-sdr:ironport-sdr; bh=BQ4qS0q7Px6vBC//YuTHhPsumwqYEjw32pdV5P6yQt4=; b=mOjGz1BKrIA464ql4euUnywXG/1CJjD9WUic+YZtEfuCzyCch+aVpggjhMPkT/65RG vJ7Rtv2Wvn+LtFMqgej3Yh9EStjXyN5D614g+Et9cm8OPuT5JM859NomyBPcyTEawTk4 x1vTLztZKhaiRFrOMNqRYmdlJRPhTZ9wWl1aGIB6lIsaBw7Vnqp26CEJmAGBxyxsjVS7 36H1TIMHU+FTNANpWIhFThZRnsy0UO8muMoQNuAvQVFomuY15xawAL6zW51LpFpb74FN Ea7e21T+IaG+LZQFIZD1oial7n+Aj8vlhg1yCk+GxzRaA9qtFN20tUhjIBHRrKZkveIe cMcQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id cn9si7036664edb.325.2020.07.03.00.11.44; Fri, 03 Jul 2020 00:12:08 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-bluetooth-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-bluetooth-owner@vger.kernel.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726022AbgGCHLT (ORCPT + 99 others); Fri, 3 Jul 2020 03:11:19 -0400 Received: from mga07.intel.com ([134.134.136.100]:29061 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1725764AbgGCHLT (ORCPT ); Fri, 3 Jul 2020 03:11:19 -0400 IronPort-SDR: kV7g+7yR5b1Ph+nsc7G+vHiJkhdUMpExrqUsGE/s8CeSx23tgbEvmaIP6eCzzjXG83b678XBkl f8zIZFKe7zAw== X-IronPort-AV: E=McAfee;i="6000,8403,9670"; a="212125521" X-IronPort-AV: E=Sophos;i="5.75,307,1589266800"; d="scan'208";a="212125521" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga004.jf.intel.com ([10.7.209.38]) by orsmga105.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 03 Jul 2020 00:11:19 -0700 IronPort-SDR: Jv9y9nhdsF2SrtzKh7MlbV1Ueaf7Yt9R7lBDyTDfSQ6MKamup2bC8xfXblW4o/Up476WH64rbH 2KKkKTSOUruA== X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.75,307,1589266800"; d="scan'208";a="426212126" Received: from unknown (HELO intel-Lenovo-Legion-Y540-15IRH-PG0.iind.intel.com) ([10.224.186.95]) by orsmga004.jf.intel.com with ESMTP; 03 Jul 2020 00:11:16 -0700 From: Kiran K To: linux-bluetooth@vger.kernel.org Cc: ravishankar.srivatsa@intel.com, chethan.tumkur.narayan@intel.com, kiraank@gmail.com, Kiran K , Amit K Bag , Raghuram Hegde Subject: [PATCH v2 4/5] Bluetooth: btintel: Define tlv structure for new generation Controllers Date: Fri, 3 Jul 2020 12:42:11 +0530 Message-Id: <20200703071212.17046-4-kiran.k@intel.com> X-Mailer: git-send-email 2.17.1 In-Reply-To: <20200703071212.17046-1-kiran.k@intel.com> References: <20200703071212.17046-1-kiran.k@intel.com> Sender: linux-bluetooth-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-bluetooth@vger.kernel.org Define structure used for reading controller information and to downloading firmware in tlv format used for new generation Intel controllers Signed-off-by: Kiran K Signed-off-by: Amit K Bag Signed-off-by: Raghuram Hegde Reviewed-by: Chethan T N Reviewed-by: Sathish Narasimman Reviewed-by: Srivatsa Ravishankar --- Changes in v2: None Changes in v1: - Add tlv structure definition drivers/bluetooth/btintel.h | 85 +++++++++++++++++++++++++++++++++++++ 1 file changed, 85 insertions(+) diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h index 0865d2d4aca7..20007da6b9bd 100644 --- a/drivers/bluetooth/btintel.h +++ b/drivers/bluetooth/btintel.h @@ -6,6 +6,90 @@ * Copyright (C) 2015 Intel Corporation */ +/* List of tlv type */ +enum { + INTEL_TLV_CNVI_TOP = 0x10, + INTEL_TLV_CNVR_TOP, + INTEL_TLV_CNVI_BT, + INTEL_TLV_CNVR_BT, + INTEL_TLV_CNVI_OTP, + INTEL_TLV_CNVR_OTP, + INTEL_TLV_DEV_REV_ID, + INTEL_TLV_USB_VENDOR_ID, + INTEL_TLV_USB_PRODUCT_ID, + INTEL_TLV_PCIE_VENDOR_ID, + INTEL_TLV_PCIE_DEVICE_ID, + INTEL_TLV_PCIE_SUBSYSTEM_ID, + INTEL_TLV_IMAGE_TYPE, + INTEL_TLV_TIME_STAMP, + INTEL_TLV_BUILD_TYPE, + INTEL_TLV_BUILD_NUM, + INTEL_TLV_FW_BUILD_PRODUCT, + INTEL_TLV_FW_BUILD_HW, + INTEL_TLV_FW_STEP, + INTEL_TLV_BT_SPEC, + INTEL_TLV_MFG_NAME, + INTEL_TLV_HCI_REV, + INTEL_TLV_LMP_SUBVER, + INTEL_TLV_OTP_PATCH_VER, + INTEL_TLV_SECURE_BOOT, + INTEL_TLV_KEY_FROM_HDR, + INTEL_TLV_OTP_LOCK, + INTEL_TLV_API_LOCK, + INTEL_TLV_DEBUG_LOCK, + INTEL_TLV_MIN_FW, + INTEL_TLV_LIMITED_CCE, + INTEL_TLV_SBE_TYPE, + INTEL_TLV_OTP_BDADDR, + INTEL_TLV_UNLOCKED_STATE +}; + +struct intel_tlv { + u8 type; + u8 len; + u8 val[0]; +} __packed; + +struct intel_version_tlv { + u8 status; + u32 cnvi_top; + u32 cnvr_top; + u32 cnvi_bt; + u32 cnvr_bt; + u16 cnvi_otp; + u16 cnvr_otp; + u16 dev_rev_id; + u16 usb_vid; + u16 usb_pid; + u16 pcie_vendor_id; + u16 pcie_dev_id; + u16 pcie_subsys_id; + u8 img_type; + u16 timestamp; + u8 build_type; + u32 build_num; + u8 fw_build_prod; + u8 fw_build_hw; + u8 fw_build_step; + u8 bt_spec_ver; + u16 mfg_name; + u16 hci_rev; + u16 lmp_sub_ver; + u8 otp_patch_ver; + u8 secure_boot; + u8 key_from_hdr; + u8 otp_lock; + u8 api_lock; + u8 debug_lock; + u8 min_fw_build_nn; + u8 min_fw_build_cw; + u8 min_fw_build_yy; + u8 limited_cce; + u8 sbe_type; + bdaddr_t otp_bd_addr; + u8 unlocked_state; +} __packed; + struct intel_version { u8 status; u8 hw_platform; @@ -70,6 +154,7 @@ struct btintel_version { bool is_tlv_supported; union { struct intel_version intel_version; /* legacy version */ + struct intel_version_tlv intel_version_tlv; }; } __packed; -- 2.17.1