All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 1/3] Bluetooth: btintel: Export few static functions
@ 2024-05-07 15:56 Kiran K
  2024-05-07 15:56 ` [PATCH v2 2/3] Bluetooth: btintel_pcie: Add support for PCIe transport Kiran K
                   ` (3 more replies)
  0 siblings, 4 replies; 11+ messages in thread
From: Kiran K @ 2024-05-07 15:56 UTC (permalink / raw)
  To: linux-bluetooth
  Cc: ravishankar.srivatsa, chethan.tumkur.narayan,
	chandrashekar.devegowda, helgaas, pmenzel, Kiran K

Some of the functions used in btintel.c is made global so that they can
be reused in other transport drivers apart from USB.

Signed-off-by: Kiran K <kiran.k@intel.com>
---
 drivers/bluetooth/btintel.c | 26 +++++++++++++---------
 drivers/bluetooth/btintel.h | 43 +++++++++++++++++++++++++++++++++++++
 2 files changed, 59 insertions(+), 10 deletions(-)

diff --git a/drivers/bluetooth/btintel.c b/drivers/bluetooth/btintel.c
index 4f4bd5538b6e..0c855c3ee1c1 100644
--- a/drivers/bluetooth/btintel.c
+++ b/drivers/bluetooth/btintel.c
@@ -245,7 +245,7 @@ static int btintel_set_diag_combined(struct hci_dev *hdev, bool enable)
 	return ret;
 }
 
-static void btintel_hw_error(struct hci_dev *hdev, u8 code)
+void btintel_hw_error(struct hci_dev *hdev, u8 code)
 {
 	struct sk_buff *skb;
 	u8 type = 0x00;
@@ -277,6 +277,7 @@ static void btintel_hw_error(struct hci_dev *hdev, u8 code)
 
 	kfree_skb(skb);
 }
+EXPORT_SYMBOL_GPL(btintel_hw_error);
 
 int btintel_version_info(struct hci_dev *hdev, struct intel_version *ver)
 {
@@ -455,8 +456,8 @@ int btintel_read_version(struct hci_dev *hdev, struct intel_version *ver)
 }
 EXPORT_SYMBOL_GPL(btintel_read_version);
 
-static int btintel_version_info_tlv(struct hci_dev *hdev,
-				    struct intel_version_tlv *version)
+int btintel_version_info_tlv(struct hci_dev *hdev,
+			     struct intel_version_tlv *version)
 {
 	const char *variant;
 
@@ -544,10 +545,11 @@ static int btintel_version_info_tlv(struct hci_dev *hdev,
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(btintel_version_info_tlv);
 
-static int btintel_parse_version_tlv(struct hci_dev *hdev,
-				     struct intel_version_tlv *version,
-				     struct sk_buff *skb)
+int btintel_parse_version_tlv(struct hci_dev *hdev,
+			      struct intel_version_tlv *version,
+			      struct sk_buff *skb)
 {
 	/* Consume Command Complete Status field */
 	skb_pull(skb, 1);
@@ -649,6 +651,7 @@ static int btintel_parse_version_tlv(struct hci_dev *hdev,
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(btintel_parse_version_tlv);
 
 static int btintel_read_version_tlv(struct hci_dev *hdev,
 				    struct intel_version_tlv *version)
@@ -2597,8 +2600,8 @@ static void btintel_set_dsm_reset_method(struct hci_dev *hdev,
 	data->acpi_reset_method = btintel_acpi_reset_method;
 }
 
-static int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
-					struct intel_version_tlv *ver)
+int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
+				 struct intel_version_tlv *ver)
 {
 	u32 boot_param;
 	char ddcname[64];
@@ -2682,8 +2685,9 @@ static int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(btintel_bootloader_setup_tlv);
 
-static void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
+void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
 {
 	switch (hw_variant) {
 	/* Legacy bootloader devices that supports MSFT Extension */
@@ -2707,6 +2711,7 @@ static void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
 		break;
 	}
 }
+EXPORT_SYMBOL_GPL(btintel_set_msft_opcode);
 
 static void btintel_print_fseq_info(struct hci_dev *hdev)
 {
@@ -3078,7 +3083,7 @@ static int btintel_setup_combined(struct hci_dev *hdev)
 	return err;
 }
 
-static int btintel_shutdown_combined(struct hci_dev *hdev)
+int btintel_shutdown_combined(struct hci_dev *hdev)
 {
 	struct sk_buff *skb;
 	int ret;
@@ -3112,6 +3117,7 @@ static int btintel_shutdown_combined(struct hci_dev *hdev)
 
 	return 0;
 }
+EXPORT_SYMBOL_GPL(btintel_shutdown_combined);
 
 int btintel_configure_setup(struct hci_dev *hdev, const char *driver_name)
 {
diff --git a/drivers/bluetooth/btintel.h b/drivers/bluetooth/btintel.h
index 64ab5a2860ab..1462a57420a0 100644
--- a/drivers/bluetooth/btintel.h
+++ b/drivers/bluetooth/btintel.h
@@ -234,6 +234,16 @@ void btintel_bootup(struct hci_dev *hdev, const void *ptr, unsigned int len);
 void btintel_secure_send_result(struct hci_dev *hdev,
 				const void *ptr, unsigned int len);
 int btintel_set_quality_report(struct hci_dev *hdev, bool enable);
+int btintel_version_info_tlv(struct hci_dev *hdev,
+			     struct intel_version_tlv *version);
+int btintel_parse_version_tlv(struct hci_dev *hdev,
+			      struct intel_version_tlv *version,
+			      struct sk_buff *skb);
+void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant);
+int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
+				 struct intel_version_tlv *ver);
+int btintel_shutdown_combined(struct hci_dev *hdev);
+void btintel_hw_error(struct hci_dev *hdev, u8 code);
 #else
 
 static inline int btintel_check_bdaddr(struct hci_dev *hdev)
@@ -330,4 +340,37 @@ static inline int btintel_set_quality_report(struct hci_dev *hdev, bool enable)
 {
 	return -ENODEV;
 }
+
+static inline int btintel_version_info_tlv(struct hci_dev *hdev,
+					   struct intel_version_tlv *version)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline int btintel_parse_version_tlv(struct hci_dev *hdev,
+					    struct intel_version_tlv *version,
+					    struct sk_buff *skb)
+{
+	return -EOPNOTSUPP;
+}
+
+static inline void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
+
+{
+}
+
+static inline int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
+					       struct intel_version_tlv *ver)
+{
+	return -ENODEV;
+}
+
+static inline int btintel_shutdown_combined(struct hci_dev *hdev)
+{
+	return -ENODEV;
+}
+
+static void btintel_hw_error(struct hci_dev *hdev, u8 code)
+{
+}
 #endif
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 11+ messages in thread
* Re: [PATCH v2 2/3] Bluetooth: btintel_pcie: Add support for PCIe transport
@ 2024-05-08 18:41 kernel test robot
  0 siblings, 0 replies; 11+ messages in thread
From: kernel test robot @ 2024-05-08 18:41 UTC (permalink / raw)
  To: oe-kbuild; +Cc: lkp, Julia Lawall

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20240507155658.294676-2-kiran.k@intel.com>
References: <20240507155658.294676-2-kiran.k@intel.com>
TO: Kiran K <kiran.k@intel.com>

Hi Kiran,

kernel test robot noticed the following build warnings:

[auto build test WARNING on bluetooth-next/master]
[also build test WARNING on bluetooth/master linus/master v6.9-rc7]
[cannot apply to next-20240508]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]

url:    https://github.com/intel-lab-lkp/linux/commits/Kiran-K/Bluetooth-btintel_pcie-Add-support-for-PCIe-transport/20240507-234447
base:   https://git.kernel.org/pub/scm/linux/kernel/git/bluetooth/bluetooth-next.git master
patch link:    https://lore.kernel.org/r/20240507155658.294676-2-kiran.k%40intel.com
patch subject: [PATCH v2 2/3] Bluetooth: btintel_pcie: Add support for PCIe transport
:::::: branch date: 27 hours ago
:::::: commit date: 27 hours ago
config: x86_64-randconfig-103-20240508 (https://download.01.org/0day-ci/archive/20240509/202405090205.jaKU4QVI-lkp@intel.com/config)
compiler: gcc-10 (Ubuntu 10.5.0-1ubuntu1) 10.5.0

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Julia Lawall <julia.lawall@inria.fr>
| Closes: https://lore.kernel.org/r/202405090205.jaKU4QVI-lkp@intel.com/

cocci warnings: (new ones prefixed by >>)
>> drivers/bluetooth/btintel_pcie.c:771:19-37: WARNING: dma_alloc_coherent used in rxq -> buf_v_addr already zeroes out memory, so memset is not needed
>> drivers/bluetooth/btintel_pcie.c:726:19-37: WARNING: dma_alloc_coherent used in txq -> buf_v_addr already zeroes out memory, so memset is not needed

vim +771 drivers/bluetooth/btintel_pcie.c

3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  711  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  712  static int btintel_pcie_setup_txq_bufs(struct btintel_pcie_data *data,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  713  				       struct txq *txq)
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  714  {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  715  	int i;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  716  	struct data_buf *buf;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  717  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  718  	/* Allocate the same number of buffers as the descriptor */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  719  	txq->bufs = kmalloc_array(txq->count, sizeof(*buf), GFP_KERNEL);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  720  	if (!txq->bufs)
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  721  		return -ENOMEM;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  722  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  723  	/* Allocate full chunk of data buffer for DMA first and do indexing and
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  724  	 * initialization next, so it can be freed easily
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  725  	 */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07 @726  	txq->buf_v_addr = dma_alloc_coherent(&data->pdev->dev,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  727  					     txq->count * BTINTEL_PCIE_BUFFER_SIZE,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  728  					     &txq->buf_p_addr,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  729  					     GFP_KERNEL | __GFP_NOWARN);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  730  	if (!txq->buf_v_addr) {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  731  		kfree(txq->bufs);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  732  		return -ENOMEM;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  733  	}
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  734  	memset(txq->buf_v_addr, 0, txq->count * BTINTEL_PCIE_BUFFER_SIZE);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  735  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  736  	/* Setup the allocated DMA buffer to bufs. Each data_buf should
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  737  	 * have virtual address and physical address
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  738  	 */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  739  	for (i = 0; i < txq->count; i++) {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  740  		buf = &txq->bufs[i];
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  741  		buf->data_p_addr = txq->buf_p_addr + (i * BTINTEL_PCIE_BUFFER_SIZE);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  742  		buf->data = txq->buf_v_addr + (i * BTINTEL_PCIE_BUFFER_SIZE);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  743  	}
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  744  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  745  	return 0;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  746  }
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  747  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  748  static void btintel_pcie_free_rxq_bufs(struct btintel_pcie_data *data,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  749  				       struct rxq *rxq)
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  750  {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  751  	/* Free data buffers first */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  752  	dma_free_coherent(&data->pdev->dev, rxq->count * BTINTEL_PCIE_BUFFER_SIZE,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  753  			  rxq->buf_v_addr, rxq->buf_p_addr);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  754  	kfree(rxq->bufs);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  755  }
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  756  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  757  static int btintel_pcie_setup_rxq_bufs(struct btintel_pcie_data *data,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  758  				       struct rxq *rxq)
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  759  {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  760  	int i;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  761  	struct data_buf *buf;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  762  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  763  	/* Allocate the same number of buffers as the descriptor */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  764  	rxq->bufs = kmalloc_array(rxq->count, sizeof(*buf), GFP_KERNEL);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  765  	if (!rxq->bufs)
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  766  		return -ENOMEM;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  767  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  768  	/* Allocate full chunk of data buffer for DMA first and do indexing and
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  769  	 * initialization next, so it can be freed easily
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  770  	 */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07 @771  	rxq->buf_v_addr = dma_alloc_coherent(&data->pdev->dev,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  772  					     rxq->count * BTINTEL_PCIE_BUFFER_SIZE,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  773  					     &rxq->buf_p_addr,
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  774  					     GFP_KERNEL | __GFP_NOWARN);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  775  	if (!rxq->buf_v_addr) {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  776  		kfree(rxq->bufs);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  777  		return -ENOMEM;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  778  	}
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  779  	memset(rxq->buf_v_addr, 0, rxq->count * BTINTEL_PCIE_BUFFER_SIZE);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  780  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  781  	/* Setup the allocated DMA buffer to bufs. Each data_buf should
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  782  	 * have virtual address and physical address
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  783  	 */
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  784  	for (i = 0; i < rxq->count; i++) {
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  785  		buf = &rxq->bufs[i];
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  786  		buf->data_p_addr = rxq->buf_p_addr + (i * BTINTEL_PCIE_BUFFER_SIZE);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  787  		buf->data = rxq->buf_v_addr + (i * BTINTEL_PCIE_BUFFER_SIZE);
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  788  	}
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  789  
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  790  	return 0;
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  791  }
3d4982728d8896 Tedd Ho-Jeong An 2024-05-07  792  

-- 
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki

^ permalink raw reply	[flat|nested] 11+ messages in thread

end of thread, other threads:[~2024-05-08 18:41 UTC | newest]

Thread overview: 11+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-05-07 15:56 [PATCH v2 1/3] Bluetooth: btintel: Export few static functions Kiran K
2024-05-07 15:56 ` [PATCH v2 2/3] Bluetooth: btintel_pcie: Add support for PCIe transport Kiran K
2024-05-07 16:29   ` Luiz Augusto von Dentz
2024-05-07 22:25   ` kernel test robot
2024-05-08  3:22   ` kernel test robot
2024-05-07 15:56 ` [PATCH v2 3/3] Bluetooth: btintel_pcie: Add *setup* function to download firmware Kiran K
2024-05-07 16:56   ` Luiz Augusto von Dentz
2024-05-07 16:34 ` [v2,1/3] Bluetooth: btintel: Export few static functions bluez.test.bot
2024-05-07 20:20 ` [PATCH v2 1/3] " patchwork-bot+bluetooth
2024-05-07 20:29   ` Luiz Augusto von Dentz
  -- strict thread matches above, loose matches on Subject: below --
2024-05-08 18:41 [PATCH v2 2/3] Bluetooth: btintel_pcie: Add support for PCIe transport kernel test robot

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.