Skip to content

Commit f31824a

Browse files
committed
Merge tag 'samsung-fixes-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux into arm/fixes
Samsung SoC fixes for v6.16 1. Correct CONFIG option in arm64 defconfig enabling the Qualcomm SoC SNPS EUSB2 phy driver, because Kconfig entry was renamed when changing the driver to a common one, shared with Samsung SoC, thus defconfig lost that driver effectively. 2. Exynos ACPM: Fix timeouts happening with multiple requests. * tag 'samsung-fixes-6.16' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux: firmware: exynos-acpm: fix timeouts on xfers handling arm64: defconfig: update renamed PHY_SNPS_EUSB2
2 parents 9a5d769 + 8d2c2fa commit f31824a

File tree

2 files changed

+10
-17
lines changed

2 files changed

+10
-17
lines changed

arch/arm64/configs/defconfig

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1573,6 +1573,7 @@ CONFIG_RESET_QCOM_AOSS=y
15731573
CONFIG_RESET_QCOM_PDC=m
15741574
CONFIG_RESET_RZG2L_USBPHY_CTRL=y
15751575
CONFIG_RESET_TI_SCI=y
1576+
CONFIG_PHY_SNPS_EUSB2=m
15761577
CONFIG_PHY_XGENE=y
15771578
CONFIG_PHY_CAN_TRANSCEIVER=m
15781579
CONFIG_PHY_NXP_PTN3222=m
@@ -1597,7 +1598,6 @@ CONFIG_PHY_QCOM_EDP=m
15971598
CONFIG_PHY_QCOM_PCIE2=m
15981599
CONFIG_PHY_QCOM_QMP=m
15991600
CONFIG_PHY_QCOM_QUSB2=m
1600-
CONFIG_PHY_QCOM_SNPS_EUSB2=m
16011601
CONFIG_PHY_QCOM_EUSB2_REPEATER=m
16021602
CONFIG_PHY_QCOM_M31_USB=m
16031603
CONFIG_PHY_QCOM_USB_HS=m

drivers/firmware/samsung/exynos-acpm.c

Lines changed: 9 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -430,6 +430,9 @@ int acpm_do_xfer(const struct acpm_handle *handle, const struct acpm_xfer *xfer)
430430
return -EOPNOTSUPP;
431431
}
432432

433+
msg.chan_id = xfer->acpm_chan_id;
434+
msg.chan_type = EXYNOS_MBOX_CHAN_TYPE_DOORBELL;
435+
433436
scoped_guard(mutex, &achan->tx_lock) {
434437
tx_front = readl(achan->tx.front);
435438
idx = (tx_front + 1) % achan->qlen;
@@ -446,25 +449,15 @@ int acpm_do_xfer(const struct acpm_handle *handle, const struct acpm_xfer *xfer)
446449

447450
/* Advance TX front. */
448451
writel(idx, achan->tx.front);
449-
}
450452

451-
msg.chan_id = xfer->acpm_chan_id;
452-
msg.chan_type = EXYNOS_MBOX_CHAN_TYPE_DOORBELL;
453-
ret = mbox_send_message(achan->chan, (void *)&msg);
454-
if (ret < 0)
455-
return ret;
456-
457-
ret = acpm_wait_for_message_response(achan, xfer);
453+
ret = mbox_send_message(achan->chan, (void *)&msg);
454+
if (ret < 0)
455+
return ret;
458456

459-
/*
460-
* NOTE: we might prefer not to need the mailbox ticker to manage the
461-
* transfer queueing since the protocol layer queues things by itself.
462-
* Unfortunately, we have to kick the mailbox framework after we have
463-
* received our message.
464-
*/
465-
mbox_client_txdone(achan->chan, ret);
457+
mbox_client_txdone(achan->chan, 0);
458+
}
466459

467-
return ret;
460+
return acpm_wait_for_message_response(achan, xfer);
468461
}
469462

470463
/**

0 commit comments

Comments
 (0)