kernel: backport RTL8761B FW name change to v5.10
Make the firmware filenames referenced by the module consistent for v5.10 and v5.15 kernels. Backport two upstream patches a cleanup commit and the commit making the change, the former is required for the latter to apply cleanly. Signed-off-by: Quintin Hill <stuff@quintin.me.uk>
This commit is contained in:
		 Quintin Hill
					Quintin Hill
				
			
				
					committed by
					
						 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
			
				
	
			
			
			 Hauke Mehrtens
						Hauke Mehrtens
					
				
			
						parent
						
							0bf512aa86
						
					
				
				
					commit
					5e6e45b7ff
				
			| @@ -0,0 +1,183 @@ | ||||
| From 6f9ff24645f55ffae12ef717b4f221c3e7dfe115 Mon Sep 17 00:00:00 2001 | ||||
| From: Max Chou <max.chou@realtek.com> | ||||
| Date: Wed, 4 Nov 2020 20:04:14 +0800 | ||||
| Subject: [PATCH] Bluetooth: btrtl: Refine the ic_id_table for clearer and more | ||||
|  regular | ||||
|  | ||||
| Enhance the ic_id_table that it's able to maintain regularly. | ||||
| To judge which chip should be initialized by LMP subversion, HCI revision, | ||||
|  HCI version and HCI bus which were given in the ic_id_table. | ||||
| Also, refine the incorrect LMP subversion of ROM for RTL8723D and | ||||
| RTL8723A. | ||||
|  | ||||
| Suggested-by: Alex Lu <alex_lu@realsil.com.cn> | ||||
| Signed-off-by: Max Chou <max.chou@realtek.com> | ||||
| Signed-off-by: Marcel Holtmann <marcel@holtmann.org> | ||||
| --- | ||||
|  drivers/bluetooth/btrtl.c | 65 ++++++++++++--------------------------- | ||||
|  1 file changed, 19 insertions(+), 46 deletions(-) | ||||
|  | ||||
| --- a/drivers/bluetooth/btrtl.c | ||||
| +++ b/drivers/bluetooth/btrtl.c | ||||
| @@ -18,10 +18,8 @@ | ||||
|  #define VERSION "0.1" | ||||
|   | ||||
|  #define RTL_EPATCH_SIGNATURE	"Realtech" | ||||
| -#define RTL_ROM_LMP_3499	0x3499 | ||||
|  #define RTL_ROM_LMP_8723A	0x1200 | ||||
|  #define RTL_ROM_LMP_8723B	0x8723 | ||||
| -#define RTL_ROM_LMP_8723D	0x8873 | ||||
|  #define RTL_ROM_LMP_8821A	0x8821 | ||||
|  #define RTL_ROM_LMP_8761A	0x8761 | ||||
|  #define RTL_ROM_LMP_8822B	0x8822 | ||||
| @@ -31,10 +29,13 @@ | ||||
|  #define IC_MATCH_FL_HCIREV	(1 << 1) | ||||
|  #define IC_MATCH_FL_HCIVER	(1 << 2) | ||||
|  #define IC_MATCH_FL_HCIBUS	(1 << 3) | ||||
| -#define IC_INFO(lmps, hcir) \ | ||||
| -	.match_flags = IC_MATCH_FL_LMPSUBV | IC_MATCH_FL_HCIREV, \ | ||||
| +#define IC_INFO(lmps, hcir, hciv, bus) \ | ||||
| +	.match_flags = IC_MATCH_FL_LMPSUBV | IC_MATCH_FL_HCIREV | \ | ||||
| +		       IC_MATCH_FL_HCIVER | IC_MATCH_FL_HCIBUS, \ | ||||
|  	.lmp_subver = (lmps), \ | ||||
| -	.hci_rev = (hcir) | ||||
| +	.hci_rev = (hcir), \ | ||||
| +	.hci_ver = (hciv), \ | ||||
| +	.hci_bus = (bus) | ||||
|   | ||||
|  struct id_table { | ||||
|  	__u16 match_flags; | ||||
| @@ -58,112 +59,85 @@ struct btrtl_device_info { | ||||
|  }; | ||||
|   | ||||
|  static const struct id_table ic_id_table[] = { | ||||
| -	{ IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_8723A, 0x0, | ||||
| -	  .config_needed = false, | ||||
| -	  .has_rom_version = false, | ||||
| -	  .fw_name = "rtl_bt/rtl8723a_fw.bin", | ||||
| -	  .cfg_name = NULL }, | ||||
| - | ||||
| -	{ IC_MATCH_FL_LMPSUBV, RTL_ROM_LMP_3499, 0x0, | ||||
| +	/* 8723A */ | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8723A, 0xb, 0x6, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = false, | ||||
|  	  .fw_name = "rtl_bt/rtl8723a_fw.bin", | ||||
|  	  .cfg_name = NULL }, | ||||
|   | ||||
|  	/* 8723BS */ | ||||
| -	{ .match_flags = IC_MATCH_FL_LMPSUBV | IC_MATCH_FL_HCIREV | | ||||
| -			 IC_MATCH_FL_HCIVER | IC_MATCH_FL_HCIBUS, | ||||
| -	  .lmp_subver = RTL_ROM_LMP_8723B, | ||||
| -	  .hci_rev = 0xb, | ||||
| -	  .hci_ver = 6, | ||||
| -	  .hci_bus = HCI_UART, | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8723B, 0xb, 0x6, HCI_UART), | ||||
|  	  .config_needed = true, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8723bs_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8723bs_config" }, | ||||
|   | ||||
|  	/* 8723B */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8723B, 0xb), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8723B, 0xb, 0x6, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8723b_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8723b_config" }, | ||||
|   | ||||
|  	/* 8723D */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8723B, 0xd), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8723B, 0xd, 0x8, HCI_USB), | ||||
|  	  .config_needed = true, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8723d_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8723d_config" }, | ||||
|   | ||||
|  	/* 8723DS */ | ||||
| -	{ .match_flags = IC_MATCH_FL_LMPSUBV | IC_MATCH_FL_HCIREV | | ||||
| -			 IC_MATCH_FL_HCIVER | IC_MATCH_FL_HCIBUS, | ||||
| -	  .lmp_subver = RTL_ROM_LMP_8723B, | ||||
| -	  .hci_rev = 0xd, | ||||
| -	  .hci_ver = 8, | ||||
| -	  .hci_bus = HCI_UART, | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8723B, 0xd, 0x8, HCI_UART), | ||||
|  	  .config_needed = true, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8723ds_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8723ds_config" }, | ||||
|   | ||||
| -	/* 8723DU */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8723D, 0x826C), | ||||
| -	  .config_needed = true, | ||||
| -	  .has_rom_version = true, | ||||
| -	  .fw_name  = "rtl_bt/rtl8723d_fw.bin", | ||||
| -	  .cfg_name = "rtl_bt/rtl8723d_config" }, | ||||
| - | ||||
|  	/* 8821A */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8821A, 0xa), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8821A, 0xa, 0x6, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8821a_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8821a_config" }, | ||||
|   | ||||
|  	/* 8821C */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8821A, 0xc), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8821A, 0xc, 0x8, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8821c_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8821c_config" }, | ||||
|   | ||||
|  	/* 8761A */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8761A, 0xa), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8761A, 0xa, 0x6, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8761a_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8761a_config" }, | ||||
|   | ||||
|  	/* 8761B */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8761b_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8761b_config" }, | ||||
|   | ||||
|  	/* 8822C with UART interface */ | ||||
| -	{ .match_flags = IC_MATCH_FL_LMPSUBV | IC_MATCH_FL_HCIREV | | ||||
| -			 IC_MATCH_FL_HCIBUS, | ||||
| -	  .lmp_subver = RTL_ROM_LMP_8822B, | ||||
| -	  .hci_rev = 0x000c, | ||||
| -	  .hci_ver = 0x0a, | ||||
| -	  .hci_bus = HCI_UART, | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc, 0xa, HCI_UART), | ||||
|  	  .config_needed = true, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8822cs_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8822cs_config" }, | ||||
|   | ||||
|  	/* 8822C with USB interface */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc, 0xa, HCI_USB), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8822cu_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8822cu_config" }, | ||||
|   | ||||
|  	/* 8822B */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8822B, 0xb), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8822B, 0xb, 0x7, HCI_USB), | ||||
|  	  .config_needed = true, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8822b_fw.bin", | ||||
| @@ -654,7 +628,6 @@ int btrtl_download_firmware(struct hci_d | ||||
|   | ||||
|  	switch (btrtl_dev->ic_info->lmp_subver) { | ||||
|  	case RTL_ROM_LMP_8723A: | ||||
| -	case RTL_ROM_LMP_3499: | ||||
|  		return btrtl_setup_rtl8723a(hdev, btrtl_dev); | ||||
|  	case RTL_ROM_LMP_8723B: | ||||
|  	case RTL_ROM_LMP_8821A: | ||||
| @@ -0,0 +1,39 @@ | ||||
| From 9fd2e2949b43dea869f7fce0f8f51df44f635d59 Mon Sep 17 00:00:00 2001 | ||||
| From: Joakim Tjernlund <Joakim.Tjernlund@infinera.com> | ||||
| Date: Fri, 28 May 2021 17:26:44 +0200 | ||||
| Subject: [PATCH] Bluetooth: btrtl: rename USB fw for RTL8761 | ||||
|  | ||||
| According Realteks own BT drivers firmware RTL8761B is for UART | ||||
| and RTL8761BU is for USB. | ||||
|  | ||||
| Change existing 8761B to UART and add an 8761BU entry for USB | ||||
|  | ||||
| Signed-off-by: Joakim Tjernlund <Joakim.Tjernlund@infinera.com> | ||||
| Signed-off-by: Marcel Holtmann <marcel@holtmann.org> | ||||
| --- | ||||
|  drivers/bluetooth/btrtl.c | 9 ++++++++- | ||||
|  1 file changed, 8 insertions(+), 1 deletion(-) | ||||
|  | ||||
| --- a/drivers/bluetooth/btrtl.c | ||||
| +++ b/drivers/bluetooth/btrtl.c | ||||
| @@ -116,12 +116,19 @@ static const struct id_table ic_id_table | ||||
|  	  .cfg_name = "rtl_bt/rtl8761a_config" }, | ||||
|   | ||||
|  	/* 8761B */ | ||||
| -	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_USB), | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_UART), | ||||
|  	  .config_needed = false, | ||||
|  	  .has_rom_version = true, | ||||
|  	  .fw_name  = "rtl_bt/rtl8761b_fw.bin", | ||||
|  	  .cfg_name = "rtl_bt/rtl8761b_config" }, | ||||
|   | ||||
| +	/* 8761BU */ | ||||
| +	{ IC_INFO(RTL_ROM_LMP_8761A, 0xb, 0xa, HCI_USB), | ||||
| +	  .config_needed = false, | ||||
| +	  .has_rom_version = true, | ||||
| +	  .fw_name  = "rtl_bt/rtl8761bu_fw.bin", | ||||
| +	  .cfg_name = "rtl_bt/rtl8761bu_config" }, | ||||
| + | ||||
|  	/* 8822C with UART interface */ | ||||
|  	{ IC_INFO(RTL_ROM_LMP_8822B, 0xc, 0xa, HCI_UART), | ||||
|  	  .config_needed = true, | ||||
		Reference in New Issue
	
	Block a user