Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

build(deps): bump urllib3 from 2.0.7 to 2.2.2 in /drivers/gpu/drm/ci/xfails #14

Open
wants to merge 42 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
9dff76b
Bluetooth: hci_sync: Fix not using correct handle
Vudentz May 15, 2024
0c7ebc0
Bluetooth: Add quirk to ignore reserved PHY bits in LE Extended Adv R…
svenpeter42 May 15, 2024
f42e15e
Bluetooth: hci_bcm4377: Use correct unit for timeouts
svenpeter42 May 15, 2024
b656b0e
Bluetooth: hci_bcm4377: Increase boot timeout
marcan May 15, 2024
d9e69da
Bluetooth: hci_bcm4377: Fix msgid release
marcan May 15, 2024
4541b49
Bluetooth: btnxpuart: Fix Null pointer dereference in btnxpuart_flush()
May 15, 2024
13c8072
Bluetooth: btnxpuart: Enable status prints for firmware download
May 15, 2024
813da00
Bluetooth: btnxpuart: Handle FW Download Abort scenario
May 15, 2024
970749f
Bluetooth: btnxpuart: Shutdown timer and prevent rearming when driver…
May 17, 2024
8f539e9
Bluetooth: btintel: Refactor btintel_set_ppag()
kirankrishnappa-intel May 16, 2024
b1ce8cf
Bluetooth: btmtk: add the function to get the fw name
moore-bros May 15, 2024
7107066
Bluetooth: btmtk: apply the common btmtk_fw_get_filename
moore-bros May 15, 2024
ae9b65c
Bluetooth: btusb: mediatek: refactor the function btusb_mtk_reset
May 15, 2024
4bb4d89
Bluetooth: btusb: mediatek: reset the controller before downloading t…
May 15, 2024
c73b424
Bluetooth: btusb: mediatek: add MT7922 subsystem reset
May 15, 2024
2204ff9
Bluetooth: btintel_pcie: Print Firmware Sequencer information
kirankrishnappa-intel May 17, 2024
6239aed
Bluetooth: btintel_pcie: Fix irq leak
kirankrishnappa-intel May 17, 2024
135aaec
Bluetooth: btintel_pcie: Fix REVERSE_INULL issue reported by coverity
satijav May 17, 2024
a6f7406
Bluetooth: hci_core: Prefer struct_size over open coded arithmetic
May 18, 2024
7a59a00
Bluetooth: hci_core: Prefer array indexing over pointer arithmetic
May 18, 2024
433c685
tty: rfcomm: prefer struct_size over open coded arithmetic
May 17, 2024
7d2e5d8
tty: rfcomm: prefer array indexing over pointer arithmetic
May 17, 2024
04ac766
Bluetooth: L2CAP: Fix rejecting L2CAP_CONN_PARAM_UPDATE_REQ
Vudentz May 20, 2024
1f0abb8
Bluetooth/nokia: Remove unused struct 'hci_nokia_radio_hdr'
May 9, 2024
8008729
Bluetooth: MGMT: Uninitialized variable in load_conn_param()
May 24, 2024
2a04f44
Bluetooth: Use sizeof(*pointer) instead of sizeof(type)
May 24, 2024
6d74947
Bluetooth: btintel_pcie: Remove unnecessary memset(0) calls
toblux May 31, 2024
dfd4034
Bluetooth: iso: remove unused struct 'iso_list_data'
May 31, 2024
81d99cd
Bluetooth: Add vendor-specific packet classification for ISO data
May 29, 2024
c5dd901
Bluetooth: hci_bcm4377: Add BCM4388 support
marcan Jun 2, 2024
9b70755
Bluetooth: hci_event: Fix setting of unicast qos interval
Vudentz Jun 6, 2024
5fe0be8
Bluetooth: fix connection setup in l2cap_connect
pv Jun 9, 2024
d211867
Bluetooth: qca: Fix BT enable failure again for QCA6390 after warm re…
zijun-hu May 16, 2024
5b41aa2
Bluetooth: hci_core: cancel all works upon hci_unregister_dev()
Jun 10, 2024
3a8decf
dt-bindings: net: bluetooth: nxp: Add firmware-name property
Jun 14, 2024
2c4d9d8
Bluetooth: btnxpuart: Update firmware names
Jun 14, 2024
96385cb
Bluetooth: btnxpuart: Add handling for boot-signature timeout errors
Jun 14, 2024
1db01d1
Bluetooth: btnxpuart: Enable Power Save feature on startup
Jun 14, 2024
bc73df1
Bluetooth: hci_event: Set QoS encryption from BIGInfo report
iulia-tanasescu Jun 17, 2024
401ad9b
Bluetooth: Ignore too large handle values in BIG
Jun 17, 2024
e3203b1
bluetooth/l2cap: sync sock recv cb and release
Jun 15, 2024
bc92c24
build(deps): bump urllib3 in /drivers/gpu/drm/ci/xfails
dependabot[bot] Jun 17, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,9 @@ properties:
This property depends on the module vendor's
configuration.

firmware-name:
maxItems: 1

required:
- compatible

Expand All @@ -42,5 +45,6 @@ examples:
bluetooth {
compatible = "nxp,88w8987-bt";
fw-init-baudrate = <3000000>;
firmware-name = "uartuart8987_bt_v0.bin";
};
};
6 changes: 3 additions & 3 deletions drivers/bluetooth/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -287,12 +287,12 @@ config BT_HCIBCM203X


config BT_HCIBCM4377
tristate "HCI BCM4377/4378/4387 PCIe driver"
tristate "HCI BCM4377/4378/4387/4388 PCIe driver"
depends on PCI
select FW_LOADER
help
Support for Broadcom BCM4377/4378/4387 Bluetooth chipsets attached via
PCIe. These are usually found in Apple machines.
Support for Broadcom BCM4377/4378/4387/4388 Bluetooth chipsets
attached via PCIe. These are usually found in Apple machines.

Say Y here to compile support for HCI BCM4377 family devices into the
kernel or say M to compile it as module (hci_bcm4377).
Expand Down
147 changes: 59 additions & 88 deletions drivers/bluetooth/btintel.c
Original file line number Diff line number Diff line change
Expand Up @@ -26,21 +26,11 @@
#define ECDSA_OFFSET 644
#define ECDSA_HEADER_LEN 320

#define BTINTEL_PPAG_NAME "PPAG"

enum {
DSM_SET_WDISABLE2_DELAY = 1,
DSM_SET_RESET_METHOD = 3,
};

/* structure to store the PPAG data read from ACPI table */
struct btintel_ppag {
u32 domain;
u32 mode;
acpi_status status;
struct hci_dev *hdev;
};

#define CMD_WRITE_BOOT_PARAMS 0xfc0e
struct cmd_write_boot_params {
__le32 boot_addr;
Expand Down Expand Up @@ -1324,65 +1314,6 @@ static int btintel_read_debug_features(struct hci_dev *hdev,
return 0;
}

static acpi_status btintel_ppag_callback(acpi_handle handle, u32 lvl, void *data,
void **ret)
{
acpi_status status;
size_t len;
struct btintel_ppag *ppag = data;
union acpi_object *p, *elements;
struct acpi_buffer string = {ACPI_ALLOCATE_BUFFER, NULL};
struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
struct hci_dev *hdev = ppag->hdev;

status = acpi_get_name(handle, ACPI_FULL_PATHNAME, &string);
if (ACPI_FAILURE(status)) {
bt_dev_warn(hdev, "PPAG-BT: ACPI Failure: %s", acpi_format_exception(status));
return status;
}

len = strlen(string.pointer);
if (len < strlen(BTINTEL_PPAG_NAME)) {
kfree(string.pointer);
return AE_OK;
}

if (strncmp((char *)string.pointer + len - 4, BTINTEL_PPAG_NAME, 4)) {
kfree(string.pointer);
return AE_OK;
}
kfree(string.pointer);

status = acpi_evaluate_object(handle, NULL, NULL, &buffer);
if (ACPI_FAILURE(status)) {
ppag->status = status;
bt_dev_warn(hdev, "PPAG-BT: ACPI Failure: %s", acpi_format_exception(status));
return status;
}

p = buffer.pointer;
ppag = (struct btintel_ppag *)data;

if (p->type != ACPI_TYPE_PACKAGE || p->package.count != 2) {
kfree(buffer.pointer);
bt_dev_warn(hdev, "PPAG-BT: Invalid object type: %d or package count: %d",
p->type, p->package.count);
ppag->status = AE_ERROR;
return AE_ERROR;
}

elements = p->package.elements;

/* PPAG table is located at element[1] */
p = &elements[1];

ppag->domain = (u32)p->package.elements[0].integer.value;
ppag->mode = (u32)p->package.elements[1].integer.value;
ppag->status = AE_OK;
kfree(buffer.pointer);
return AE_CTRL_TERMINATE;
}

static int btintel_set_debug_features(struct hci_dev *hdev,
const struct intel_debug_features *features)
{
Expand Down Expand Up @@ -2427,10 +2358,13 @@ static int btintel_configure_offload(struct hci_dev *hdev)

static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver)
{
struct btintel_ppag ppag;
struct sk_buff *skb;
struct hci_ppag_enable_cmd ppag_cmd;
acpi_handle handle;
struct acpi_buffer buffer = {ACPI_ALLOCATE_BUFFER, NULL};
union acpi_object *p, *elements;
u32 domain, mode;
acpi_status status;

/* PPAG is not supported if CRF is HrP2, Jfp2, JfP1 */
switch (ver->cnvr_top & 0xFFF) {
Expand All @@ -2448,22 +2382,34 @@ static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
return;
}

memset(&ppag, 0, sizeof(ppag));

ppag.hdev = hdev;
ppag.status = AE_NOT_FOUND;
acpi_walk_namespace(ACPI_TYPE_PACKAGE, handle, 1, NULL,
btintel_ppag_callback, &ppag, NULL);

if (ACPI_FAILURE(ppag.status)) {
if (ppag.status == AE_NOT_FOUND) {
status = acpi_evaluate_object(handle, "PPAG", NULL, &buffer);
if (ACPI_FAILURE(status)) {
if (status == AE_NOT_FOUND) {
bt_dev_dbg(hdev, "PPAG-BT: ACPI entry not found");
return;
}
bt_dev_warn(hdev, "PPAG-BT: ACPI Failure: %s", acpi_format_exception(status));
return;
}

if (ppag.domain != 0x12) {
p = buffer.pointer;
if (p->type != ACPI_TYPE_PACKAGE || p->package.count != 2) {
bt_dev_warn(hdev, "PPAG-BT: Invalid object type: %d or package count: %d",
p->type, p->package.count);
kfree(buffer.pointer);
return;
}

elements = p->package.elements;

/* PPAG table is located at element[1] */
p = &elements[1];

domain = (u32)p->package.elements[0].integer.value;
mode = (u32)p->package.elements[1].integer.value;
kfree(buffer.pointer);

if (domain != 0x12) {
bt_dev_dbg(hdev, "PPAG-BT: Bluetooth domain is disabled in ACPI firmware");
return;
}
Expand All @@ -2474,19 +2420,22 @@ static void btintel_set_ppag(struct hci_dev *hdev, struct intel_version_tlv *ver
* BIT 1 : 0 Disabled in China
* 1 Enabled in China
*/
if ((ppag.mode & 0x01) != BIT(0) && (ppag.mode & 0x02) != BIT(1)) {
bt_dev_dbg(hdev, "PPAG-BT: EU, China mode are disabled in CB/BIOS");
mode &= 0x03;

if (!mode) {
bt_dev_dbg(hdev, "PPAG-BT: EU, China mode are disabled in BIOS");
return;
}

ppag_cmd.ppag_enable_flags = cpu_to_le32(ppag.mode);
ppag_cmd.ppag_enable_flags = cpu_to_le32(mode);

skb = __hci_cmd_sync(hdev, INTEL_OP_PPAG_CMD, sizeof(ppag_cmd), &ppag_cmd, HCI_CMD_TIMEOUT);
skb = __hci_cmd_sync(hdev, INTEL_OP_PPAG_CMD, sizeof(ppag_cmd),
&ppag_cmd, HCI_CMD_TIMEOUT);
if (IS_ERR(skb)) {
bt_dev_warn(hdev, "Failed to send PPAG Enable (%ld)", PTR_ERR(skb));
return;
}
bt_dev_info(hdev, "PPAG-BT: Enabled (Mode %d)", ppag.mode);
bt_dev_info(hdev, "PPAG-BT: Enabled (Mode %d)", mode);
kfree_skb(skb);
}

Expand Down Expand Up @@ -2600,6 +2549,24 @@ static void btintel_set_dsm_reset_method(struct hci_dev *hdev,
data->acpi_reset_method = btintel_acpi_reset_method;
}

#define BTINTEL_ISODATA_HANDLE_BASE 0x900

static u8 btintel_classify_pkt_type(struct hci_dev *hdev, struct sk_buff *skb)
{
/*
* Distinguish ISO data packets form ACL data packets
* based on their connection handle value range.
*/
if (hci_skb_pkt_type(skb) == HCI_ACLDATA_PKT) {
__u16 handle = __le16_to_cpu(hci_acl_hdr(skb)->handle);

if (hci_handle(handle) >= BTINTEL_ISODATA_HANDLE_BASE)
return HCI_ISODATA_PKT;
}

return hci_skb_pkt_type(skb);
}

int btintel_bootloader_setup_tlv(struct hci_dev *hdev,
struct intel_version_tlv *ver)
{
Expand Down Expand Up @@ -2713,7 +2680,7 @@ void btintel_set_msft_opcode(struct hci_dev *hdev, u8 hw_variant)
}
EXPORT_SYMBOL_GPL(btintel_set_msft_opcode);

static void btintel_print_fseq_info(struct hci_dev *hdev)
void btintel_print_fseq_info(struct hci_dev *hdev)
{
struct sk_buff *skb;
u8 *p;
Expand Down Expand Up @@ -2825,6 +2792,7 @@ static void btintel_print_fseq_info(struct hci_dev *hdev)

kfree_skb(skb);
}
EXPORT_SYMBOL_GPL(btintel_print_fseq_info);

static int btintel_setup_combined(struct hci_dev *hdev)
{
Expand Down Expand Up @@ -3039,11 +3007,14 @@ static int btintel_setup_combined(struct hci_dev *hdev)
err = btintel_bootloader_setup(hdev, &ver);
btintel_register_devcoredump_support(hdev);
break;
case 0x18: /* GfP2 */
case 0x1c: /* GaP */
/* Re-classify packet type for controllers with LE audio */
hdev->classify_pkt_type = btintel_classify_pkt_type;
fallthrough;
case 0x17:
case 0x18:
case 0x19:
case 0x1b:
case 0x1c:
case 0x1e:
/* Display version information of TLV type */
btintel_version_info_tlv(hdev, &ver_tlv);
Expand Down
5 changes: 5 additions & 0 deletions drivers/bluetooth/btintel.h
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,7 @@ 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);
void btintel_print_fseq_info(struct hci_dev *hdev);
#else

static inline int btintel_check_bdaddr(struct hci_dev *hdev)
Expand Down Expand Up @@ -373,4 +374,8 @@ static inline int btintel_shutdown_combined(struct hci_dev *hdev)
static inline void btintel_hw_error(struct hci_dev *hdev, u8 code)
{
}

static inline void btintel_print_fseq_info(struct hci_dev *hdev)
{
}
#endif
12 changes: 9 additions & 3 deletions drivers/bluetooth/btintel_pcie.c
Original file line number Diff line number Diff line change
Expand Up @@ -382,7 +382,7 @@ static int btintel_pcie_recv_frame(struct btintel_pcie_data *data,

/* The first 4 bytes indicates the Intel PCIe specific packet type */
pdata = skb_pull_data(skb, BTINTEL_PCIE_HCI_TYPE_LEN);
if (!data) {
if (!pdata) {
bt_dev_err(hdev, "Corrupted packet received");
ret = -EILSEQ;
goto exit_error;
Expand Down Expand Up @@ -797,7 +797,6 @@ static int btintel_pcie_setup_txq_bufs(struct btintel_pcie_data *data,
kfree(txq->bufs);
return -ENOMEM;
}
memset(txq->buf_v_addr, 0, txq->count * BTINTEL_PCIE_BUFFER_SIZE);

/* Setup the allocated DMA buffer to bufs. Each data_buf should
* have virtual address and physical address
Expand Down Expand Up @@ -842,7 +841,6 @@ static int btintel_pcie_setup_rxq_bufs(struct btintel_pcie_data *data,
kfree(rxq->bufs);
return -ENOMEM;
}
memset(rxq->buf_v_addr, 0, rxq->count * BTINTEL_PCIE_BUFFER_SIZE);

/* Setup the allocated DMA buffer to bufs. Each data_buf should
* have virtual address and physical address
Expand Down Expand Up @@ -1197,9 +1195,11 @@ static int btintel_pcie_setup(struct hci_dev *hdev)
bt_dev_err(hdev, "Unsupported Intel hw variant (%u)",
INTEL_HW_VARIANT(ver_tlv.cnvi_bt));
err = -EINVAL;
goto exit_error;
break;
}

btintel_print_fseq_info(hdev);
exit_error:
kfree_skb(skb);

Expand Down Expand Up @@ -1327,6 +1327,12 @@ static void btintel_pcie_remove(struct pci_dev *pdev)
data = pci_get_drvdata(pdev);

btintel_pcie_reset_bt(data);
for (int i = 0; i < data->alloc_vecs; i++) {
struct msix_entry *msix_entry;

msix_entry = &data->msix_entries[i];
free_irq(msix_entry->vector, msix_entry);
}

pci_free_irq_vectors(pdev);

Expand Down
18 changes: 18 additions & 0 deletions drivers/bluetooth/btmtk.c
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,24 @@ static void btmtk_coredump_notify(struct hci_dev *hdev, int state)
}
}

void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id, u32 fw_ver,
u32 fw_flavor)
{
if (dev_id == 0x7925)
snprintf(buf, size,
"mediatek/mt%04x/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
dev_id & 0xffff, dev_id & 0xffff, (fw_ver & 0xff) + 1);
else if (dev_id == 0x7961 && fw_flavor)
snprintf(buf, size,
"mediatek/BT_RAM_CODE_MT%04x_1a_%x_hdr.bin",
dev_id & 0xffff, (fw_ver & 0xff) + 1);
else
snprintf(buf, size,
"mediatek/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
dev_id & 0xffff, (fw_ver & 0xff) + 1);
}
EXPORT_SYMBOL_GPL(btmtk_fw_get_filename);

int btmtk_setup_firmware_79xx(struct hci_dev *hdev, const char *fwname,
wmt_cmd_sync_func_t wmt_cmd_sync)
{
Expand Down
8 changes: 8 additions & 0 deletions drivers/bluetooth/btmtk.h
Original file line number Diff line number Diff line change
Expand Up @@ -160,6 +160,9 @@ int btmtk_register_coredump(struct hci_dev *hdev, const char *name,
u32 fw_version);

int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb);

void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id, u32 fw_ver,
u32 fw_flavor);
#else

static inline int btmtk_set_bdaddr(struct hci_dev *hdev,
Expand Down Expand Up @@ -194,4 +197,9 @@ static int btmtk_process_coredump(struct hci_dev *hdev, struct sk_buff *skb)
{
return -EOPNOTSUPP;
}

static void btmtk_fw_get_filename(char *buf, size_t size, u32 dev_id,
u32 fw_ver, u32 fw_flavor)
{
}
#endif
3 changes: 3 additions & 0 deletions drivers/bluetooth/btmtksdio.c
Original file line number Diff line number Diff line change
Expand Up @@ -1117,6 +1117,9 @@ static int btmtksdio_setup(struct hci_dev *hdev)
return err;
}

btmtk_fw_get_filename(fwname, sizeof(fwname), dev_id,
fw_version, 0);

snprintf(fwname, sizeof(fwname),
"mediatek/BT_RAM_CODE_MT%04x_1_%x_hdr.bin",
dev_id & 0xffff, (fw_version & 0xff) + 1);
Expand Down
Loading