Re: [PATCH v2 4/5] Bluetooth: btintel: Define tlv structure for new generation Controllers

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Kiran,

> 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 <kiran.k@xxxxxxxxx>
> Signed-off-by: Amit K Bag <amit.k.bag@xxxxxxxxx>
> Signed-off-by: Raghuram Hegde <raghuram.hegde@xxxxxxxxx>
> Reviewed-by: Chethan T N <chethan.tumkur.narayan@xxxxxxxxx>
> Reviewed-by: Sathish Narasimman <Sathish.Narasimman@xxxxxxxxx>
> Reviewed-by: Srivatsa Ravishankar <ravishankar.srivatsa@xxxxxxxxx>
> ---
> 
> 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;
> +

This is not required to be __packed. It is not a on-wire structure. In addition, I would just only include the data fields we currently require or want to show in dmesg.

Regards

Marcel




[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux