kernel: bump 6.12 to 6.12.37
Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.12.37 Manually rebased patch: generic/hack-6.12/902-debloat_proc.patch[1] New Kconfig symbol: x86: enable MITIGATION_TSA[2] All other patches are automatically refreshed. [1] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.37&id=ead91de35d9cd5c4f80ec51e6020f342079170af [2] https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.12.37&id=7a0395f6607a5d01e2b2a86355596b3f1224acbd Signed-off-by: Shiji Yang <yangshiji66@outlook.com> Link: https://github.com/openwrt/openwrt/pull/19317 Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
This commit is contained in:
parent
04d764576b
commit
57aa05e8e5
42 changed files with 98 additions and 96 deletions
|
@ -31,7 +31,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -429,6 +429,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -454,6 +454,7 @@ static void xhci_pci_quirks(struct devic
|
||||
if (pdev->vendor == PCI_VENDOR_ID_VIA && pdev->device == PCI_DEVICE_ID_VIA_VL805) {
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_TRB_OVERFETCH;
|
||||
|
@ -41,7 +41,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -638,8 +638,11 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -637,8 +637,11 @@ static int xhci_move_dequeue_past_td(str
|
||||
struct xhci_ring *ep_ring;
|
||||
struct xhci_command *cmd;
|
||||
struct xhci_segment *new_seg;
|
||||
|
@ -53,7 +53,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|||
dma_addr_t addr;
|
||||
u64 hw_dequeue;
|
||||
bool cycle_found = false;
|
||||
@@ -658,7 +661,25 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -657,7 +660,25 @@ static int xhci_move_dequeue_past_td(str
|
||||
hw_dequeue = xhci_get_hw_deq(xhci, dev, ep_index, stream_id);
|
||||
new_seg = ep_ring->deq_seg;
|
||||
new_deq = ep_ring->dequeue;
|
||||
|
|
|
@ -1248,7 +1248,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
}
|
||||
--- a/drivers/usb/core/hub.c
|
||||
+++ b/drivers/usb/core/hub.c
|
||||
@@ -5754,7 +5754,7 @@ static void port_event(struct usb_hub *h
|
||||
@@ -5757,7 +5757,7 @@ static void port_event(struct usb_hub *h
|
||||
port_dev->over_current_count++;
|
||||
port_over_current_notify(port_dev);
|
||||
|
||||
|
|
|
@ -344,7 +344,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
}
|
||||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -153,6 +153,14 @@ static const struct mmc_fixup __maybe_un
|
||||
@@ -50,6 +50,14 @@ static const struct mmc_fixup __maybe_un
|
||||
MMC_FIXUP(CID_NAME_ANY, CID_MANFID_SANDISK_SD, 0x5344, add_quirk_sd,
|
||||
MMC_QUIRK_BROKEN_SD_DISCARD),
|
||||
|
||||
|
@ -1991,7 +1991,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
|
||||
#define MAX_TUNING_LOOP 40
|
||||
|
||||
@@ -3199,7 +3199,7 @@ static void sdhci_timeout_timer(struct t
|
||||
@@ -3194,7 +3194,7 @@ static void sdhci_timeout_timer(struct t
|
||||
spin_lock_irqsave(&host->lock, flags);
|
||||
|
||||
if (host->cmd && !sdhci_data_line_cmd(host->cmd)) {
|
||||
|
@ -2000,7 +2000,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
mmc_hostname(host->mmc));
|
||||
sdhci_err_stats_inc(host, REQ_TIMEOUT);
|
||||
sdhci_dumpregs(host);
|
||||
@@ -3222,7 +3222,7 @@ static void sdhci_timeout_data_timer(str
|
||||
@@ -3217,7 +3217,7 @@ static void sdhci_timeout_data_timer(str
|
||||
|
||||
if (host->data || host->data_cmd ||
|
||||
(host->cmd && sdhci_data_line_cmd(host->cmd))) {
|
||||
|
|
|
@ -28,7 +28,7 @@ See: https://github.com/raspberrypi/linux/issues/2447
|
|||
static int lan78xx_read_reg(struct lan78xx_net *dev, u32 index, u32 *data)
|
||||
{
|
||||
u32 *buf;
|
||||
@@ -4430,7 +4435,13 @@ static int lan78xx_probe(struct usb_inte
|
||||
@@ -4428,7 +4433,13 @@ static int lan78xx_probe(struct usb_inte
|
||||
if (ret < 0)
|
||||
goto out4;
|
||||
|
||||
|
|
|
@ -70,7 +70,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||
* @dev: the device whose endpoint is being disabled
|
||||
--- a/include/linux/usb.h
|
||||
+++ b/include/linux/usb.h
|
||||
@@ -1873,6 +1873,8 @@ extern int usb_clear_halt(struct usb_dev
|
||||
@@ -1875,6 +1875,8 @@ extern int usb_clear_halt(struct usb_dev
|
||||
extern int usb_reset_configuration(struct usb_device *dev);
|
||||
extern int usb_set_interface(struct usb_device *dev, int ifnum, int alternate);
|
||||
extern void usb_reset_endpoint(struct usb_device *dev, unsigned int epaddr);
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1538,6 +1538,109 @@ static int xhci_check_ep0_maxpacket(stru
|
||||
@@ -1517,6 +1517,109 @@ static int xhci_check_ep0_maxpacket(stru
|
||||
}
|
||||
|
||||
/*
|
||||
|
@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.org>
|
|||
* non-error returns are a promise to giveback() the urb later
|
||||
* we drop ownership so next owner (or urb unlink) can get it
|
||||
*/
|
||||
@@ -5402,6 +5505,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
@@ -5381,6 +5484,7 @@ static const struct hc_driver xhci_hc_dr
|
||||
.endpoint_reset = xhci_endpoint_reset,
|
||||
.check_bandwidth = xhci_check_bandwidth,
|
||||
.reset_bandwidth = xhci_reset_bandwidth,
|
||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -720,9 +720,9 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -719,9 +719,9 @@ static int xhci_move_dequeue_past_td(str
|
||||
}
|
||||
|
||||
if ((ep->ep_state & SET_DEQ_PENDING)) {
|
||||
|
|
|
@ -19,7 +19,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/usb/host/xhci.c
|
||||
+++ b/drivers/usb/host/xhci.c
|
||||
@@ -1627,7 +1627,7 @@ static void xhci_fixup_endpoint(struct u
|
||||
@@ -1606,7 +1606,7 @@ static void xhci_fixup_endpoint(struct u
|
||||
return;
|
||||
}
|
||||
ctrl_ctx->add_flags = xhci_get_endpoint_flag_from_index(ep_index);
|
||||
|
|
|
@ -70,7 +70,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
|||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -113,6 +113,12 @@ struct v3d_dev {
|
||||
@@ -121,6 +121,12 @@ struct v3d_dev {
|
||||
void __iomem *bridge_regs;
|
||||
void __iomem *gca_regs;
|
||||
struct clk *clk;
|
||||
|
@ -83,7 +83,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
|||
struct reset_control *reset;
|
||||
|
||||
/* Virtual and DMA addresses of the single shared page table. */
|
||||
@@ -589,3 +595,4 @@ int v3d_perfmon_get_counter_ioctl(struct
|
||||
@@ -597,3 +603,4 @@ int v3d_perfmon_get_counter_ioctl(struct
|
||||
/* v3d_sysfs.c */
|
||||
int v3d_sysfs_init(struct device *dev);
|
||||
void v3d_sysfs_destroy(struct device *dev);
|
||||
|
@ -98,7 +98,7 @@ Signed-off-by: popcornmix <popcornmix@gmail.com>
|
|||
#include <linux/module.h>
|
||||
#include <linux/platform_device.h>
|
||||
#include <linux/reset.h>
|
||||
@@ -269,6 +270,8 @@ v3d_gem_init(struct drm_device *dev)
|
||||
@@ -271,6 +272,8 @@ v3d_gem_init(struct drm_device *dev)
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
|
||||
--- a/net/bluetooth/hci_sync.c
|
||||
+++ b/net/bluetooth/hci_sync.c
|
||||
@@ -4877,6 +4877,7 @@ static const struct {
|
||||
@@ -4921,6 +4921,7 @@ static const struct {
|
||||
*/
|
||||
static int hci_dev_setup_sync(struct hci_dev *hdev)
|
||||
{
|
||||
|
@ -28,7 +28,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
int ret = 0;
|
||||
bool invalid_bdaddr;
|
||||
size_t i;
|
||||
@@ -4905,7 +4906,8 @@ static int hci_dev_setup_sync(struct hci
|
||||
@@ -4949,7 +4950,8 @@ static int hci_dev_setup_sync(struct hci
|
||||
test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks);
|
||||
if (!ret) {
|
||||
if (test_bit(HCI_QUIRK_USE_BDADDR_PROPERTY, &hdev->quirks) &&
|
||||
|
|
|
@ -24,7 +24,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -430,6 +430,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -455,6 +455,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_LPM_SUPPORT;
|
||||
xhci->quirks |= XHCI_TRB_OVERFETCH;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
|
@ -34,7 +34,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -711,6 +711,16 @@ static int xhci_move_dequeue_past_td(str
|
||||
@@ -710,6 +710,16 @@ static int xhci_move_dequeue_past_td(str
|
||||
|
||||
} while (!cycle_found || !td_last_trb_found);
|
||||
|
||||
|
@ -53,9 +53,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
if (addr == 0) {
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1627,6 +1627,9 @@ struct xhci_hcd {
|
||||
#define XHCI_CDNS_SCTX_QUIRK BIT_ULL(48)
|
||||
@@ -1628,6 +1628,9 @@ struct xhci_hcd {
|
||||
#define XHCI_ETRON_HOST BIT_ULL(49)
|
||||
#define XHCI_LIMIT_ENDPOINT_INTERVAL_9 BIT_ULL(50)
|
||||
|
||||
+/* Downstream VLI fixes */
|
||||
+#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
|
||||
|
|
|
@ -51,7 +51,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
ep_index = xhci_get_endpoint_index(&ep->desc);
|
||||
ep_ctx = xhci_get_ep_ctx(xhci, virt_dev->in_ctx, ep_index);
|
||||
@@ -1435,9 +1438,35 @@ int xhci_endpoint_init(struct xhci_hcd *
|
||||
@@ -1439,9 +1442,35 @@ int xhci_endpoint_init(struct xhci_hcd *
|
||||
|
||||
mult = xhci_get_endpoint_mult(udev, ep);
|
||||
max_packet = usb_endpoint_maxp(&ep->desc);
|
||||
|
@ -90,7 +90,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
/* Allow 3 retries for everything but isoc, set CErr = 3 */
|
||||
--- a/drivers/usb/host/xhci-pci.c
|
||||
+++ b/drivers/usb/host/xhci-pci.c
|
||||
@@ -431,6 +431,7 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -456,6 +456,7 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_TRB_OVERFETCH;
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||
|
@ -100,7 +100,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1629,6 +1629,7 @@ struct xhci_hcd {
|
||||
@@ -1630,6 +1630,7 @@ struct xhci_hcd {
|
||||
|
||||
/* Downstream VLI fixes */
|
||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
|
||||
|
|
|
@ -47,7 +47,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
/* Device for a quirk */
|
||||
#define PCI_VENDOR_ID_FRESCO_LOGIC 0x1b73
|
||||
#define PCI_DEVICE_ID_FRESCO_LOGIC_PDK 0x1000
|
||||
@@ -244,6 +246,16 @@ static int xhci_pci_reinit(struct xhci_h
|
||||
@@ -254,6 +256,16 @@ static int xhci_pci_reinit(struct xhci_h
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -64,7 +64,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
static void xhci_pci_quirks(struct device *dev, struct xhci_hcd *xhci)
|
||||
{
|
||||
struct pci_dev *pdev = to_pci_dev(dev);
|
||||
@@ -432,6 +444,8 @@ static void xhci_pci_quirks(struct devic
|
||||
@@ -457,6 +469,8 @@ static void xhci_pci_quirks(struct devic
|
||||
xhci->quirks |= XHCI_EP_CTX_BROKEN_DCS;
|
||||
xhci->quirks |= XHCI_AVOID_DQ_ON_LINK;
|
||||
xhci->quirks |= XHCI_VLI_SS_BULK_OUT_BUG;
|
||||
|
@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA &&
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -3657,6 +3657,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||
@@ -3656,6 +3656,48 @@ static int xhci_align_td(struct xhci_hcd
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
/* This is very similar to what ehci-q.c qtd_fill() does */
|
||||
int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags,
|
||||
struct urb *urb, int slot_id, unsigned int ep_index)
|
||||
@@ -3811,6 +3853,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
@@ -3810,6 +3852,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd *
|
||||
}
|
||||
|
||||
check_trb_math(urb, enqd_len);
|
||||
|
@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id,
|
||||
start_cycle, start_trb);
|
||||
return 0;
|
||||
@@ -3959,6 +4003,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||
@@ -3958,6 +4002,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd *
|
||||
/* Event on completion */
|
||||
field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state);
|
||||
|
||||
|
@ -144,7 +144,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
return 0;
|
||||
--- a/drivers/usb/host/xhci.h
|
||||
+++ b/drivers/usb/host/xhci.h
|
||||
@@ -1630,6 +1630,7 @@ struct xhci_hcd {
|
||||
@@ -1631,6 +1631,7 @@ struct xhci_hcd {
|
||||
/* Downstream VLI fixes */
|
||||
#define XHCI_AVOID_DQ_ON_LINK BIT_ULL(56)
|
||||
#define XHCI_VLI_SS_BULK_OUT_BUG BIT_ULL(57)
|
||||
|
|
|
@ -27,7 +27,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
|||
.postinit = dwcmshc_rk35xx_postinit,
|
||||
--- a/drivers/mmc/host/sdhci.c
|
||||
+++ b/drivers/mmc/host/sdhci.c
|
||||
@@ -3037,6 +3037,15 @@ static void sdhci_card_event(struct mmc_
|
||||
@@ -3032,6 +3032,15 @@ static void sdhci_card_event(struct mmc_
|
||||
spin_unlock_irqrestore(&host->lock, flags);
|
||||
}
|
||||
|
||||
|
@ -43,7 +43,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
|||
static const struct mmc_host_ops sdhci_ops = {
|
||||
.request = sdhci_request,
|
||||
.post_req = sdhci_post_req,
|
||||
@@ -3052,6 +3061,7 @@ static const struct mmc_host_ops sdhci_o
|
||||
@@ -3047,6 +3056,7 @@ static const struct mmc_host_ops sdhci_o
|
||||
.execute_tuning = sdhci_execute_tuning,
|
||||
.card_event = sdhci_card_event,
|
||||
.card_busy = sdhci_card_busy,
|
||||
|
@ -51,7 +51,7 @@ sdhci: remove PYA0_INTR_BUG quirk. Add quirks to disable some of the higher SDR
|
|||
};
|
||||
|
||||
/*****************************************************************************\
|
||||
@@ -4570,6 +4580,15 @@ int sdhci_setup_host(struct sdhci_host *
|
||||
@@ -4565,6 +4575,15 @@ int sdhci_setup_host(struct sdhci_host *
|
||||
!(host->quirks2 & SDHCI_QUIRK2_BROKEN_DDR50))
|
||||
mmc->caps |= MMC_CAP_UHS_DDR50;
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
regmap_update_bits(dev->map, DW_IC_CON, DW_IC_CON_10BITADDR_MASTER,
|
||||
ic_con);
|
||||
|
||||
@@ -456,6 +460,14 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev)
|
||||
@@ -457,6 +461,14 @@ i2c_dw_xfer_msg(struct dw_i2c_dev *dev)
|
||||
regmap_read(dev->map, DW_IC_RXFLR, &flr);
|
||||
rx_limit = dev->rx_fifo_depth - flr;
|
||||
|
||||
|
@ -55,7 +55,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
while (buf_len > 0 && tx_limit > 0 && rx_limit > 0) {
|
||||
u32 cmd = 0;
|
||||
|
||||
@@ -894,14 +906,15 @@ static const struct i2c_algorithm i2c_dw
|
||||
@@ -895,14 +907,15 @@ static const struct i2c_algorithm i2c_dw
|
||||
};
|
||||
|
||||
static const struct i2c_adapter_quirks i2c_dw_quirks = {
|
||||
|
|
|
@ -36,7 +36,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
sdhci_writew(host, SDHCI_MAKE_CMD(cmd->opcode, flags), SDHCI_COMMAND);
|
||||
|
||||
return true;
|
||||
@@ -3296,6 +3302,11 @@ static void sdhci_cmd_irq(struct sdhci_h
|
||||
@@ -3291,6 +3297,11 @@ static void sdhci_cmd_irq(struct sdhci_h
|
||||
if (intmask & SDHCI_INT_TIMEOUT) {
|
||||
host->cmd->error = -ETIMEDOUT;
|
||||
sdhci_err_stats_inc(host, CMD_TIMEOUT);
|
||||
|
|
|
@ -23,7 +23,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
BUG_ON(data->blksz > host->mmc->max_blk_size);
|
||||
BUG_ON(data->blocks > 65535);
|
||||
|
||||
@@ -4714,11 +4714,16 @@ int sdhci_setup_host(struct sdhci_host *
|
||||
@@ -4709,11 +4709,16 @@ int sdhci_setup_host(struct sdhci_host *
|
||||
spin_lock_init(&host->lock);
|
||||
|
||||
/*
|
||||
|
|
|
@ -30,9 +30,9 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
#define CID_MANFID_KINGSTON 0x70
|
||||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -44,6 +44,14 @@ static const struct mmc_fixup __maybe_un
|
||||
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
|
||||
MMC_QUIRK_NO_UHS_DDR50_TUNING, EXT_CSD_REV_ANY),
|
||||
@@ -58,6 +58,14 @@ static const struct mmc_fixup __maybe_un
|
||||
MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
|
||||
MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
|
||||
|
||||
+ /*
|
||||
+ * Samsung Pro Plus/EVO Plus/Pro Ultimate SD cards (2023) claim to cache
|
||||
|
|
|
@ -14,7 +14,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -52,6 +52,18 @@ static const struct mmc_fixup __maybe_un
|
||||
@@ -66,6 +66,18 @@ static const struct mmc_fixup __maybe_un
|
||||
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
|
||||
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
|
||||
|
||||
|
|
|
@ -16,8 +16,8 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -181,6 +181,15 @@ static const struct mmc_fixup __maybe_un
|
||||
MMC_FIXUP("SD32G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
|
||||
MMC_FIXUP("SD64G", 0x41, 0x3432, add_quirk, MMC_QUIRK_ERASE_BROKEN),
|
||||
MMC_FIXUP("M62704", CID_MANFID_KINGSTON, 0x0100, add_quirk_mmc,
|
||||
MMC_QUIRK_TRIM_BROKEN),
|
||||
|
||||
+ /*
|
||||
+ * Larger Integral SD cards using rebranded Phison controllers trash
|
||||
|
|
|
@ -134,7 +134,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
/* Write SDA hold time if supported */
|
||||
if (dev->sda_hold_time)
|
||||
regmap_write(dev->map, DW_IC_SDA_HOLD, dev->sda_hold_time);
|
||||
@@ -1033,6 +1045,7 @@ int i2c_dw_probe_master(struct dw_i2c_de
|
||||
@@ -1034,6 +1046,7 @@ int i2c_dw_probe_master(struct dw_i2c_de
|
||||
struct i2c_adapter *adap = &dev->adapter;
|
||||
unsigned long irq_flags;
|
||||
unsigned int ic_con;
|
||||
|
@ -142,7 +142,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
int ret;
|
||||
|
||||
init_completion(&dev->cmd_complete);
|
||||
@@ -1067,7 +1080,11 @@ int i2c_dw_probe_master(struct dw_i2c_de
|
||||
@@ -1068,7 +1081,11 @@ int i2c_dw_probe_master(struct dw_i2c_de
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -15,7 +15,7 @@ Signed-off-by: Phil Elwell <phil@raspberrypi.com>
|
|||
|
||||
--- a/net/bluetooth/hci_sync.c
|
||||
+++ b/net/bluetooth/hci_sync.c
|
||||
@@ -4877,7 +4877,8 @@ static const struct {
|
||||
@@ -4921,7 +4921,8 @@ static const struct {
|
||||
*/
|
||||
static int hci_dev_setup_sync(struct hci_dev *hdev)
|
||||
{
|
||||
|
|
|
@ -28,7 +28,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
|
||||
--- a/drivers/usb/host/xhci-ring.c
|
||||
+++ b/drivers/usb/host/xhci-ring.c
|
||||
@@ -510,6 +510,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
|
||||
@@ -509,6 +509,19 @@ void xhci_ring_ep_doorbell(struct xhci_h
|
||||
|
||||
trace_xhci_ring_ep_doorbell(slot_id, DB_VALUE(ep_index, stream_id));
|
||||
|
||||
|
|
|
@ -26,7 +26,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
#define END_FIXUP { NULL }
|
||||
--- a/drivers/mmc/core/quirks.h
|
||||
+++ b/drivers/mmc/core/quirks.h
|
||||
@@ -76,6 +76,12 @@ static const struct mmc_fixup __maybe_un
|
||||
@@ -90,6 +90,12 @@ static const struct mmc_fixup __maybe_un
|
||||
0, -1ull, SDIO_ANY_ID, SDIO_ANY_ID, add_quirk_sd,
|
||||
MMC_QUIRK_BROKEN_SD_CACHE, EXT_CSD_REV_ANY),
|
||||
|
||||
|
|
|
@ -21,7 +21,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-4-mca
|
|||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_gem.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
|
||||
@@ -294,8 +294,9 @@ v3d_gem_init(struct drm_device *dev)
|
||||
@@ -296,8 +296,9 @@ v3d_gem_init(struct drm_device *dev)
|
||||
ret = v3d_sched_init(v3d);
|
||||
if (ret) {
|
||||
drm_mm_takedown(&v3d->mm);
|
||||
|
|
|
@ -39,7 +39,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca
|
|||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -143,6 +143,11 @@ struct v3d_dev {
|
||||
@@ -151,6 +151,11 @@ struct v3d_dev {
|
||||
struct drm_mm mm;
|
||||
spinlock_t mm_lock;
|
||||
|
||||
|
@ -51,7 +51,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca
|
|||
struct work_struct overflow_mem_work;
|
||||
|
||||
struct v3d_bin_job *bin_job;
|
||||
@@ -540,6 +545,10 @@ void v3d_reset(struct v3d_dev *v3d);
|
||||
@@ -548,6 +553,10 @@ void v3d_reset(struct v3d_dev *v3d);
|
||||
void v3d_invalidate_caches(struct v3d_dev *v3d);
|
||||
void v3d_clean_caches(struct v3d_dev *v3d);
|
||||
|
||||
|
@ -64,7 +64,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca
|
|||
void v3d_job_put(struct v3d_job *job);
|
||||
--- a/drivers/gpu/drm/v3d/v3d_gem.c
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_gem.c
|
||||
@@ -291,6 +291,8 @@ v3d_gem_init(struct drm_device *dev)
|
||||
@@ -293,6 +293,8 @@ v3d_gem_init(struct drm_device *dev)
|
||||
v3d_init_hw_state(v3d);
|
||||
v3d_mmu_set_page_table(v3d);
|
||||
|
||||
|
@ -73,7 +73,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-6-mca
|
|||
ret = v3d_sched_init(v3d);
|
||||
if (ret) {
|
||||
drm_mm_takedown(&v3d->mm);
|
||||
@@ -308,6 +310,7 @@ v3d_gem_destroy(struct drm_device *dev)
|
||||
@@ -310,6 +312,7 @@ v3d_gem_destroy(struct drm_device *dev)
|
||||
struct v3d_dev *v3d = to_v3d_dev(dev);
|
||||
|
||||
v3d_sched_fini(v3d);
|
||||
|
|
|
@ -39,7 +39,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20240923141348.2422499-11-mc
|
|||
{
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -545,6 +545,7 @@ void v3d_invalidate_caches(struct v3d_de
|
||||
@@ -553,6 +553,7 @@ void v3d_invalidate_caches(struct v3d_de
|
||||
void v3d_clean_caches(struct v3d_dev *v3d);
|
||||
|
||||
/* v3d_gemfs.c */
|
||||
|
|
|
@ -39,7 +39,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20241202140615.74802-1-chris
|
|||
static const struct drm_driver v3d_drm_driver = {
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -189,6 +189,12 @@ struct v3d_dev {
|
||||
@@ -197,6 +197,12 @@ struct v3d_dev {
|
||||
u32 num_allocated;
|
||||
u32 pages_allocated;
|
||||
} bo_stats;
|
||||
|
@ -52,7 +52,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20241202140615.74802-1-chris
|
|||
};
|
||||
|
||||
static inline struct v3d_dev *
|
||||
@@ -600,6 +606,8 @@ int v3d_perfmon_get_values_ioctl(struct
|
||||
@@ -608,6 +614,8 @@ int v3d_perfmon_get_values_ioctl(struct
|
||||
struct drm_file *file_priv);
|
||||
int v3d_perfmon_get_counter_ioctl(struct drm_device *dev, void *data,
|
||||
struct drm_file *file_priv);
|
||||
|
|
|
@ -25,7 +25,7 @@ Link: https://patchwork.freedesktop.org/patch/msgid/20250113154741.67520-2-mcana
|
|||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -153,7 +153,6 @@ struct v3d_dev {
|
||||
@@ -161,7 +161,6 @@ struct v3d_dev {
|
||||
struct v3d_render_job *render_job;
|
||||
struct v3d_tfu_job *tfu_job;
|
||||
struct v3d_csd_job *csd_job;
|
||||
|
|
|
@ -324,8 +324,8 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
goto clk_disable;
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -94,11 +94,18 @@ struct v3d_perfmon {
|
||||
u64 values[] __counted_by(ncounters);
|
||||
@@ -100,11 +100,18 @@ enum v3d_irq {
|
||||
V3D_MAX_IRQS,
|
||||
};
|
||||
|
||||
+enum v3d_gen {
|
||||
|
@ -344,7 +344,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
|
||||
/* Short representation (e.g. 5, 6) of the V3D tech revision */
|
||||
int rev;
|
||||
@@ -205,7 +212,7 @@ to_v3d_dev(struct drm_device *dev)
|
||||
@@ -213,7 +220,7 @@ to_v3d_dev(struct drm_device *dev)
|
||||
static inline bool
|
||||
v3d_has_csd(struct v3d_dev *v3d)
|
||||
{
|
||||
|
@ -373,7 +373,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
return;
|
||||
|
||||
V3D_GCA_WRITE(V3D_GCA_SAFE_SHUTDOWN, V3D_GCA_SAFE_SHUTDOWN_EN);
|
||||
@@ -133,13 +133,13 @@ v3d_reset(struct v3d_dev *v3d)
|
||||
@@ -135,13 +135,13 @@ v3d_reset(struct v3d_dev *v3d)
|
||||
static void
|
||||
v3d_flush_l3(struct v3d_dev *v3d)
|
||||
{
|
||||
|
@ -389,7 +389,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
V3D_GCA_WRITE(V3D_GCA_CACHE_CTRL,
|
||||
gca_ctrl & ~V3D_GCA_CACHE_CTRL_FLUSH);
|
||||
}
|
||||
@@ -152,7 +152,7 @@ v3d_flush_l3(struct v3d_dev *v3d)
|
||||
@@ -154,7 +154,7 @@ v3d_flush_l3(struct v3d_dev *v3d)
|
||||
static void
|
||||
v3d_invalidate_l2c(struct v3d_dev *v3d, int core)
|
||||
{
|
||||
|
|
|
@ -40,7 +40,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
|
||||
--- a/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
+++ b/drivers/gpu/drm/v3d/v3d_drv.h
|
||||
@@ -118,6 +118,7 @@ struct v3d_dev {
|
||||
@@ -126,6 +126,7 @@ struct v3d_dev {
|
||||
void __iomem *core_regs[3];
|
||||
void __iomem *bridge_regs;
|
||||
void __iomem *gca_regs;
|
||||
|
@ -48,7 +48,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
struct clk *clk;
|
||||
struct delayed_work clk_down_work;
|
||||
unsigned long clk_up_rate, clk_down_rate;
|
||||
@@ -274,6 +275,15 @@ to_v3d_fence(struct dma_fence *fence)
|
||||
@@ -282,6 +283,15 @@ to_v3d_fence(struct dma_fence *fence)
|
||||
#define V3D_GCA_READ(offset) readl(v3d->gca_regs + offset)
|
||||
#define V3D_GCA_WRITE(offset, val) writel(val, v3d->gca_regs + offset)
|
||||
|
||||
|
@ -64,7 +64,7 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
#define V3D_CORE_READ(core, offset) readl(v3d->core_regs[core] + offset)
|
||||
#define V3D_CORE_WRITE(core, offset, val) writel(val, v3d->core_regs[core] + offset)
|
||||
|
||||
@@ -552,6 +562,7 @@ struct dma_fence *v3d_fence_create(struc
|
||||
@@ -560,6 +570,7 @@ struct dma_fence *v3d_fence_create(struc
|
||||
/* v3d_gem.c */
|
||||
int v3d_gem_init(struct drm_device *dev);
|
||||
void v3d_gem_destroy(struct drm_device *dev);
|
||||
|
@ -97,8 +97,8 @@ Signed-off-by: Maíra Canal <mcanal@igalia.com>
|
|||
v3d_reset(struct v3d_dev *v3d)
|
||||
{
|
||||
struct drm_device *dev = &v3d->drm;
|
||||
@@ -120,6 +136,7 @@ v3d_reset(struct v3d_dev *v3d)
|
||||
v3d_idle_axi(v3d, 0);
|
||||
@@ -122,6 +138,7 @@ v3d_reset(struct v3d_dev *v3d)
|
||||
v3d_irq_disable(v3d);
|
||||
|
||||
v3d_idle_gca(v3d);
|
||||
+ v3d_reset_sms(v3d);
|
||||
|
|
|
@ -40,7 +40,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
static bool td_on_ring(struct xhci_td *td, struct xhci_ring *ring)
|
||||
{
|
||||
struct xhci_segment *seg = ring->first_seg;
|
||||
@@ -4807,7 +4811,7 @@ static u16 xhci_calculate_u1_timeout(str
|
||||
@@ -4786,7 +4790,7 @@ static u16 xhci_calculate_u1_timeout(str
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -49,7 +49,7 @@ Signed-off-by: Jonathan Bell <jonathan@raspberrypi.com>
|
|||
timeout_ns = xhci_calculate_intel_u1_timeout(udev, desc);
|
||||
else
|
||||
timeout_ns = udev->u1_params.sel;
|
||||
@@ -4871,7 +4875,7 @@ static u16 xhci_calculate_u2_timeout(str
|
||||
@@ -4850,7 +4854,7 @@ static u16 xhci_calculate_u2_timeout(str
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -20,7 +20,7 @@ Signed-off-by: Rui Salvaterra <rsalvaterra@gmail.com>
|
|||
|
||||
--- a/drivers/net/ethernet/intel/igc/igc_main.c
|
||||
+++ b/drivers/net/ethernet/intel/igc/igc_main.c
|
||||
@@ -7066,6 +7066,9 @@ static int igc_probe(struct pci_dev *pde
|
||||
@@ -7070,6 +7070,9 @@ static int igc_probe(struct pci_dev *pde
|
||||
netdev->xdp_features = NETDEV_XDP_ACT_BASIC | NETDEV_XDP_ACT_REDIRECT |
|
||||
NETDEV_XDP_ACT_XSK_ZEROCOPY;
|
||||
|
||||
|
|
|
@ -235,15 +235,16 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
|
|||
if (!pe)
|
||||
--- a/mm/vmalloc.c
|
||||
+++ b/mm/vmalloc.c
|
||||
@@ -5054,6 +5054,8 @@ static int __init proc_vmalloc_init(void
|
||||
{
|
||||
void *priv_data = NULL;
|
||||
@@ -5066,6 +5066,9 @@ static int vmalloc_info_show(struct seq_
|
||||
|
||||
static int __init proc_vmalloc_init(void)
|
||||
{
|
||||
+ if (IS_ENABLED(CONFIG_PROC_STRIPPED))
|
||||
+ return 0;
|
||||
if (IS_ENABLED(CONFIG_NUMA))
|
||||
priv_data = kmalloc(nr_node_ids * sizeof(unsigned int), GFP_KERNEL);
|
||||
|
||||
+
|
||||
proc_create_single("vmallocinfo", 0400, NULL, vmalloc_info_show);
|
||||
return 0;
|
||||
}
|
||||
--- a/mm/vmstat.c
|
||||
+++ b/mm/vmstat.c
|
||||
@@ -2195,10 +2195,12 @@ void __init init_mm_internals(void)
|
||||
|
|
|
@ -1,2 +1,2 @@
|
|||
LINUX_VERSION-6.12 = .36
|
||||
LINUX_KERNEL_HASH-6.12.36 = 4a168aed2de5a81aadd90ba2b153860a98d99bfc34651936e17f18e54f01ba8c
|
||||
LINUX_VERSION-6.12 = .37
|
||||
LINUX_KERNEL_HASH-6.12.37 = 936fdfd2405b5e0ac38d4e094b07772610c22cd478f4bb257c9bf929e762ff95
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
static int spinand_read_reg_op(struct spinand_device *spinand, u8 reg, u8 *val)
|
||||
{
|
||||
@@ -1525,6 +1526,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1526,6 +1527,7 @@ static int spinand_probe(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
@ -16,7 +16,7 @@
|
|||
ret = mtd_device_register(mtd, NULL, 0);
|
||||
if (ret)
|
||||
goto err_spinand_cleanup;
|
||||
@@ -1532,6 +1534,7 @@ static int spinand_probe(struct spi_mem
|
||||
@@ -1533,6 +1535,7 @@ static int spinand_probe(struct spi_mem
|
||||
return 0;
|
||||
|
||||
err_spinand_cleanup:
|
||||
|
@ -24,7 +24,7 @@
|
|||
spinand_cleanup(spinand);
|
||||
|
||||
return ret;
|
||||
@@ -1550,6 +1553,7 @@ static int spinand_remove(struct spi_mem
|
||||
@@ -1551,6 +1554,7 @@ static int spinand_remove(struct spi_mem
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
|
|
|
@ -29,7 +29,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
|
||||
--- a/drivers/mtd/nand/spi/core.c
|
||||
+++ b/drivers/mtd/nand/spi/core.c
|
||||
@@ -1619,6 +1619,7 @@ static int spinand_remove(struct spi_mem
|
||||
@@ -1620,6 +1620,7 @@ static int spinand_remove(struct spi_mem
|
||||
|
||||
static const struct spi_device_id spinand_ids[] = {
|
||||
{ .name = "spi-nand" },
|
||||
|
@ -37,7 +37,7 @@ Signed-off-by: Daniel Golle <daniel@makrotopia.org>
|
|||
{ /* sentinel */ },
|
||||
};
|
||||
MODULE_DEVICE_TABLE(spi, spinand_ids);
|
||||
@@ -1626,6 +1627,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
|
||||
@@ -1627,6 +1628,7 @@ MODULE_DEVICE_TABLE(spi, spinand_ids);
|
||||
#ifdef CONFIG_OF
|
||||
static const struct of_device_id spinand_of_ids[] = {
|
||||
{ .compatible = "spi-nand" },
|
||||
|
|
|
@ -89,7 +89,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
struct msdc_save_para save_para; /* used when gate HCLK */
|
||||
struct msdc_tune_para def_tune_para; /* default tune setting */
|
||||
struct msdc_tune_para saved_tune_para; /* tune result of CMD21/CMD19 */
|
||||
@@ -1165,7 +1167,9 @@ static void msdc_track_cmd_data(struct m
|
||||
@@ -1171,7 +1173,9 @@ static void msdc_track_cmd_data(struct m
|
||||
|
||||
static void msdc_request_done(struct msdc_host *host, struct mmc_request *mrq)
|
||||
{
|
||||
|
@ -99,7 +99,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
|
||||
/*
|
||||
* No need check the return value of cancel_delayed_work, as only ONE
|
||||
@@ -1173,6 +1177,27 @@ static void msdc_request_done(struct msd
|
||||
@@ -1179,6 +1183,27 @@ static void msdc_request_done(struct msd
|
||||
*/
|
||||
cancel_delayed_work(&host->req_timeout);
|
||||
|
||||
|
@ -127,7 +127,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
spin_lock_irqsave(&host->lock, flags);
|
||||
host->mrq = NULL;
|
||||
spin_unlock_irqrestore(&host->lock, flags);
|
||||
@@ -1182,7 +1207,7 @@ static void msdc_request_done(struct msd
|
||||
@@ -1188,7 +1213,7 @@ static void msdc_request_done(struct msd
|
||||
msdc_unprepare_data(host, mrq->data);
|
||||
if (host->error)
|
||||
msdc_reset_hw(host);
|
||||
|
@ -136,7 +136,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
if (host->dev_comp->recheck_sdio_irq)
|
||||
msdc_recheck_sdio_irq(host);
|
||||
}
|
||||
@@ -1342,7 +1367,7 @@ static void msdc_ops_request(struct mmc_
|
||||
@@ -1348,7 +1373,7 @@ static void msdc_ops_request(struct mmc_
|
||||
struct msdc_host *host = mmc_priv(mmc);
|
||||
|
||||
host->error = 0;
|
||||
|
@ -144,8 +144,8 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
+ WARN_ON(!host->hsq_en && host->mrq);
|
||||
host->mrq = mrq;
|
||||
|
||||
if (mrq->data)
|
||||
@@ -2908,6 +2933,19 @@ static int msdc_drv_probe(struct platfor
|
||||
if (mrq->data) {
|
||||
@@ -2925,6 +2950,19 @@ static int msdc_drv_probe(struct platfor
|
||||
mmc->max_seg_size = 64 * 1024;
|
||||
/* Reduce CIT to 0x40 that corresponds to 2.35us */
|
||||
msdc_cqe_cit_cal(host, 2350);
|
||||
|
@ -165,7 +165,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
}
|
||||
|
||||
ret = devm_request_irq(&pdev->dev, host->irq, msdc_irq,
|
||||
@@ -3033,6 +3071,9 @@ static int __maybe_unused msdc_runtime_s
|
||||
@@ -3050,6 +3088,9 @@ static int __maybe_unused msdc_runtime_s
|
||||
struct mmc_host *mmc = dev_get_drvdata(dev);
|
||||
struct msdc_host *host = mmc_priv(mmc);
|
||||
|
||||
|
@ -175,7 +175,7 @@ Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
|
|||
msdc_save_reg(host);
|
||||
|
||||
if (sdio_irq_claimed(mmc)) {
|
||||
@@ -3063,6 +3104,10 @@ static int __maybe_unused msdc_runtime_r
|
||||
@@ -3080,6 +3121,10 @@ static int __maybe_unused msdc_runtime_r
|
||||
pinctrl_select_state(host->pinctrl, host->pins_uhs);
|
||||
enable_irq(host->irq);
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||
};
|
||||
|
||||
static const struct mtk_mmc_compatible mt7622_compat = {
|
||||
@@ -969,7 +976,12 @@ static void msdc_set_mclk(struct msdc_ho
|
||||
@@ -975,7 +982,12 @@ static void msdc_set_mclk(struct msdc_ho
|
||||
* mmc_select_hs400() will drop to 50Mhz and High speed mode,
|
||||
* tune result of hs200/200Mhz is not suitable for 50Mhz
|
||||
*/
|
||||
|
@ -60,7 +60,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||
writel(host->def_tune_para.iocon, host->base + MSDC_IOCON);
|
||||
if (host->top_base) {
|
||||
writel(host->def_tune_para.emmc_top_control,
|
||||
@@ -1839,6 +1851,18 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1856,6 +1868,18 @@ static void msdc_init_hw(struct msdc_hos
|
||||
MSDC_PAD_TUNE_RXDLYSEL);
|
||||
}
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||
};
|
||||
|
||||
static const struct of_device_id msdc_of_ids[] = {
|
||||
@@ -2896,7 +2908,9 @@ static int msdc_drv_probe(struct platfor
|
||||
@@ -2913,7 +2925,9 @@ static int msdc_drv_probe(struct platfor
|
||||
if (mmc->caps & MMC_CAP_SDIO_IRQ)
|
||||
mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ Signed-off-by: Shiji Yang <yangshiji66@outlook.com>
|
|||
|
||||
--- a/drivers/mmc/host/mtk-sd.c
|
||||
+++ b/drivers/mmc/host/mtk-sd.c
|
||||
@@ -1787,9 +1787,11 @@ static void msdc_init_hw(struct msdc_hos
|
||||
@@ -1804,9 +1804,11 @@ static void msdc_init_hw(struct msdc_hos
|
||||
}
|
||||
writel(0, host->base + MSDC_IOCON);
|
||||
sdr_set_field(host->base + MSDC_IOCON, MSDC_IOCON_DDLSEL, 0);
|
||||
|
|
|
@ -264,6 +264,7 @@ CONFIG_MITIGATION_SPECTRE_V2=y
|
|||
CONFIG_MITIGATION_SRBDS=y
|
||||
CONFIG_MITIGATION_SSB=y
|
||||
CONFIG_MITIGATION_TAA=y
|
||||
CONFIG_MITIGATION_TSA=y
|
||||
# CONFIG_MK6 is not set
|
||||
# CONFIG_MK7 is not set
|
||||
# CONFIG_MK8 is not set
|
||||
|
|
Loading…
Reference in a new issue