--- a/drivers/of/irq.c
+++ b/drivers/of/irq.c
-@@ -89,6 +89,8 @@ EXPORT_SYMBOL_GPL(of_irq_find_parent);
+@@ -94,6 +94,8 @@ EXPORT_SYMBOL_GPL(of_irq_find_parent);
* drawing board.
*/
static const char * const of_irq_imap_abusers[] = {
#define USB_VENDOR_ID_BELKIN 0x050d
#define USB_DEVICE_ID_FLIP_KVM 0x3201
-@@ -1408,6 +1411,9 @@
+@@ -1439,6 +1442,9 @@
#define USB_VENDOR_ID_XIAOMI 0x2717
#define USB_DEVICE_ID_MI_SILENT_MOUSE 0x5014
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20058,6 +20058,14 @@ T: git git://linuxtv.org/media_tree.git
+@@ -20059,6 +20059,14 @@ T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/sony,imx415.yaml
F: drivers/media/i2c/imx415.c
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20066,6 +20066,14 @@ T: git git://linuxtv.org/media_tree.git
+@@ -20067,6 +20067,14 @@ T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
F: drivers/media/i2c/imx477.c
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20063,6 +20063,7 @@ M: Raspberry Pi Kernel Maintenance <kern
+@@ -20064,6 +20064,7 @@ M: Raspberry Pi Kernel Maintenance <kern
L: linux-media@vger.kernel.org
S: Maintained
T: git git://linuxtv.org/media_tree.git
--- a/drivers/media/i2c/ov7251.c
+++ b/drivers/media/i2c/ov7251.c
-@@ -1541,7 +1541,7 @@ static int ov7251_init_ctrls(struct ov72
+@@ -1543,7 +1543,7 @@ static int ov7251_init_ctrls(struct ov72
s64 pixel_rate;
int hblank;
ov7251->ctrls.lock = &ov7251->lock;
v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
-@@ -1600,6 +1600,7 @@ static int ov7251_init_ctrls(struct ov72
+@@ -1602,6 +1602,7 @@ static int ov7251_init_ctrls(struct ov72
static int ov7251_probe(struct i2c_client *client)
{
struct device *dev = &client->dev;
struct ov7251 *ov7251;
unsigned int rate = 0, clk_rate = 0;
-@@ -1690,6 +1691,15 @@ static int ov7251_probe(struct i2c_clien
+@@ -1692,6 +1693,15 @@ static int ov7251_probe(struct i2c_clien
goto destroy_mutex;
}
--- a/drivers/media/i2c/ov7251.c
+++ b/drivers/media/i2c/ov7251.c
-@@ -1676,7 +1676,8 @@ static int ov7251_probe(struct i2c_clien
+@@ -1678,7 +1678,8 @@ static int ov7251_probe(struct i2c_clien
return PTR_ERR(ov7251->analog_regulator);
}
-- ov7251->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_HIGH);
+- ov7251->enable_gpio = devm_gpiod_get(dev, "enable", GPIOD_OUT_LOW);
+ ov7251->enable_gpio = devm_gpiod_get_optional(dev, "enable",
-+ GPIOD_OUT_HIGH);
++ GPIOD_OUT_LOW);
if (IS_ERR(ov7251->enable_gpio)) {
dev_err(dev, "cannot get enable gpio\n");
return PTR_ERR(ov7251->enable_gpio);
--- a/drivers/media/i2c/ov7251.c
+++ b/drivers/media/i2c/ov7251.c
-@@ -1344,6 +1344,14 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1346,6 +1346,14 @@ static int ov7251_s_stream(struct v4l2_s
if (ret < 0)
goto err_power_down;
static const unsigned long supported_xclk_rates[] = {
[OV7251_19_2_MHZ] = 19200000,
[OV7251_24_MHZ] = 24000000,
-@@ -1372,6 +1384,23 @@ static int ov7251_s_stream(struct v4l2_s
+@@ -1374,6 +1386,23 @@ static int ov7251_s_stream(struct v4l2_s
dev_err(ov7251->dev, "could not sync v4l2 controls\n");
goto err_power_down;
}
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20107,6 +20107,14 @@ T: git git://linuxtv.org/media_tree.git
+@@ -20108,6 +20108,14 @@ T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/imx519.yaml
F: drivers/media/i2c/imx519.c
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20112,7 +20112,7 @@ M: Raspberry Pi Kernel Maintenance <kern
+@@ -20113,7 +20113,7 @@ M: Raspberry Pi Kernel Maintenance <kern
L: linux-media@vger.kernel.org
S: Maintained
T: git git://linuxtv.org/media_tree.git
+ };
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20013,7 +20013,7 @@ M: Sakari Ailus <sakari.ailus@linux.inte
+@@ -20014,7 +20014,7 @@ M: Sakari Ailus <sakari.ailus@linux.inte
L: linux-media@vger.kernel.org
S: Maintained
T: git git://linuxtv.org/media_tree.git
clk_disable_unprepare(pcie->clk);
return ret;
}
-@@ -1599,6 +1970,33 @@ static int brcm_pcie_probe(struct platfo
- dev_err(pcie->dev, "probe of internal MSI failed");
- goto fail;
- }
-+ } else if (pci_msi_enabled() && msi_np != pcie->np) {
-+ /* Use RC_BAR1 for MIP access */
-+ u64 msi_pci_addr;
-+ u64 msi_phys_addr;
-+
-+ if (of_property_read_u64(msi_np, "brcm,msi-pci-addr", &msi_pci_addr)) {
-+ dev_err(pcie->dev, "Unable to find MSI PCI address\n");
-+ ret = -EINVAL;
-+ goto fail;
-+ }
-+
-+ if (of_property_read_u64(msi_np, "reg", &msi_phys_addr)) {
-+ dev_err(pcie->dev, "Unable to find MSI physical address\n");
-+ ret = -EINVAL;
-+ goto fail;
+@@ -1595,8 +1966,38 @@ static int brcm_pcie_probe(struct platfo
+ if (pci_msi_enabled()) {
+ struct device_node *msi_np = of_parse_phandle(pcie->np, "msi-parent", 0);
+
+- if (msi_np == pcie->np)
++ if (msi_np == pcie->np) {
+ ret = brcm_pcie_enable_msi(pcie);
++ } else {
++ /* Use RC_BAR1 for MIP access */
++ u64 msi_pci_addr;
++ u64 msi_phys_addr;
++
++ if (of_property_read_u64(msi_np, "brcm,msi-pci-addr", &msi_pci_addr)) {
++ dev_err(pcie->dev, "Unable to find MSI PCI address\n");
++ ret = -EINVAL;
++ of_node_put(msi_np);
++ goto fail;
++ }
++
++ if (of_property_read_u64(msi_np, "reg", &msi_phys_addr)) {
++ dev_err(pcie->dev, "Unable to find MSI physical address\n");
++ ret = -EINVAL;
++ of_node_put(msi_np);
++ goto fail;
++ }
++
++ writel(lower_32_bits(msi_pci_addr) | brcm_pcie_encode_ibar_size(0x1000),
++ pcie->base + PCIE_MISC_RC_BAR1_CONFIG_LO);
++ writel(upper_32_bits(msi_pci_addr),
++ pcie->base + PCIE_MISC_RC_BAR1_CONFIG_HI);
++
++ writel(lower_32_bits(msi_phys_addr) |
++ PCIE_MISC_UBUS_BAR1_CONFIG_REMAP_ACCESS_ENABLE_MASK,
++ pcie->base + PCIE_MISC_UBUS_BAR1_CONFIG_REMAP);
++ writel(upper_32_bits(msi_phys_addr),
++ pcie->base + PCIE_MISC_UBUS_BAR1_CONFIG_REMAP_HI);
+ }
-+
-+ writel(lower_32_bits(msi_pci_addr) | brcm_pcie_encode_ibar_size(0x1000),
-+ pcie->base + PCIE_MISC_RC_BAR1_CONFIG_LO);
-+ writel(upper_32_bits(msi_pci_addr),
-+ pcie->base + PCIE_MISC_RC_BAR1_CONFIG_HI);
-+
-+ writel(lower_32_bits(msi_phys_addr) |
-+ PCIE_MISC_UBUS_BAR1_CONFIG_REMAP_ACCESS_ENABLE_MASK,
-+ pcie->base + PCIE_MISC_UBUS_BAR1_CONFIG_REMAP);
-+ writel(upper_32_bits(msi_phys_addr),
-+ pcie->base + PCIE_MISC_UBUS_BAR1_CONFIG_REMAP_HI);
- }
- bridge->ops = pcie->type == BCM7425 ? &brcm7425_pcie_ops : &brcm_pcie_ops;
-@@ -1615,6 +2013,8 @@ static int brcm_pcie_probe(struct platfo
+ of_node_put(msi_np);
+
+@@ -1620,6 +2021,8 @@ static int brcm_pcie_probe(struct platfo
return ret;
}
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -460,6 +460,40 @@ static int dw_i2s_set_tdm_slot(struct sn
+@@ -459,6 +459,40 @@ static int dw_i2s_set_tdm_slot(struct sn
return 0;
}
static int dw_i2s_dai_probe(struct snd_soc_dai *dai)
{
struct dw_i2s_dev *dev = snd_soc_dai_get_drvdata(dai);
-@@ -476,6 +510,7 @@ static const struct snd_soc_dai_ops dw_i
+@@ -475,6 +509,7 @@ static const struct snd_soc_dai_ops dw_i
.trigger = dw_i2s_trigger,
.set_fmt = dw_i2s_set_fmt,
.set_tdm_slot = dw_i2s_set_tdm_slot,
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -248,7 +248,7 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -247,7 +247,7 @@ static void dw_i2s_config(struct dw_i2s_
{
u32 ch_reg;
struct i2s_clk_config_data *config = &dev->config;
i2s_disable_channels(dev, stream);
-@@ -260,6 +260,7 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -259,6 +259,7 @@ static void dw_i2s_config(struct dw_i2s_
dev->fifo_th - 1);
i2s_write_reg(dev->i2s_base, TER(ch_reg), TER_TXCHEN |
dev->tdm_mask << TER_TXSLOT_SHIFT);
} else {
i2s_write_reg(dev->i2s_base, RCR(ch_reg),
dev->xfer_resolution);
-@@ -267,9 +268,15 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -266,9 +267,15 @@ static void dw_i2s_config(struct dw_i2s_
dev->fifo_th - 1);
i2s_write_reg(dev->i2s_base, RER(ch_reg), RER_RXCHEN |
dev->tdm_mask << RER_RXSLOT_SHIFT);
#include <sound/pcm.h>
#include <sound/pcm_params.h>
#include <sound/soc.h>
-@@ -208,15 +208,10 @@ static void i2s_start(struct dw_i2s_dev
+@@ -206,15 +206,10 @@ static void i2s_start(struct dw_i2s_dev
i2s_write_reg(dev->i2s_base, CER, 1);
}
- else
- i2s_write_reg(dev->i2s_base, IRER, 0);
- if (dev->use_pio || dev->is_jh7110)
- i2s_disable_irqs(dev, substream->stream, 8);
-@@ -225,23 +220,15 @@ static void i2s_stop(struct dw_i2s_dev *
+ if (!(dev->use_pio || dev->is_jh7110))
+ i2s_disable_dma(dev, substream->stream);
+@@ -224,23 +219,15 @@ static void i2s_stop(struct dw_i2s_dev *
if (!dev->active) {
i2s_write_reg(dev->i2s_base, CER, 0);
}
static void dw_i2s_config(struct dw_i2s_dev *dev, int stream)
-@@ -354,6 +341,62 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -353,6 +340,62 @@ static int dw_i2s_hw_params(struct snd_p
return 0;
}
static int dw_i2s_prepare(struct snd_pcm_substream *substream,
struct snd_soc_dai *dai)
{
-@@ -381,9 +424,12 @@ static int dw_i2s_trigger(struct snd_pcm
+@@ -380,9 +423,12 @@ static int dw_i2s_trigger(struct snd_pcm
i2s_start(dev, substream);
break;
dev->active--;
i2s_stop(dev, substream);
break;
-@@ -512,6 +558,7 @@ static int dw_i2s_dai_probe(struct snd_s
+@@ -511,6 +557,7 @@ static int dw_i2s_dai_probe(struct snd_s
static const struct snd_soc_dai_ops dw_i2s_dai_ops = {
.probe = dw_i2s_dai_probe,
.startup = dw_i2s_startup,
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -271,23 +271,34 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -270,23 +270,34 @@ static int dw_i2s_hw_params(struct snd_p
{
struct dw_i2s_dev *dev = snd_soc_dai_get_drvdata(dai);
struct i2s_clk_config_data *config = &dev->config;
dev->ccr = 0x10;
dev->xfer_resolution = 0x05;
break;
-@@ -519,24 +530,21 @@ static int dw_i2s_set_bclk_ratio(struct
+@@ -518,24 +529,21 @@ static int dw_i2s_set_bclk_ratio(struct
struct dw_i2s_dev *dev = snd_soc_dai_get_drvdata(cpu_dai);
struct i2s_clk_config_data *config = &dev->config;
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -528,11 +528,8 @@ static int dw_i2s_set_bclk_ratio(struct
+@@ -527,11 +527,8 @@ static int dw_i2s_set_bclk_ratio(struct
unsigned int ratio)
{
struct dw_i2s_dev *dev = snd_soc_dai_get_drvdata(cpu_dai);
--- a/drivers/media/i2c/ov7251.c
+++ b/drivers/media/i2c/ov7251.c
-@@ -1063,7 +1063,7 @@ static int ov7251_s_ctrl(struct v4l2_ctr
+@@ -1065,7 +1065,7 @@ static int ov7251_s_ctrl(struct v4l2_ctr
case V4L2_CID_EXPOSURE:
ret = ov7251_set_exposure(ov7251, ctrl->val);
break;
ret = ov7251_set_gain(ov7251, ctrl->val);
break;
case V4L2_CID_TEST_PATTERN:
-@@ -1588,7 +1588,7 @@ static int ov7251_init_ctrls(struct ov72
+@@ -1590,7 +1590,7 @@ static int ov7251_init_ctrls(struct ov72
ov7251->exposure = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
V4L2_CID_EXPOSURE, 1, 32, 1, 32);
ov7251->gain = v4l2_ctrl_new_std(&ov7251->ctrls, &ov7251_ctrl_ops,
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -796,7 +796,7 @@ static int dw_configure_dai_by_dt(struct
+@@ -795,7 +795,7 @@ static int dw_configure_dai_by_dt(struct
u32 idx2;
int ret;
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -235,10 +235,17 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -234,10 +234,17 @@ static void dw_i2s_config(struct dw_i2s_
{
u32 ch_reg;
struct i2s_clk_config_data *config = &dev->config;
for (ch_reg = 0; ch_reg < (config->chan_nr / 2); ch_reg++) {
if (stream == SNDRV_PCM_STREAM_PLAYBACK) {
i2s_write_reg(dev->i2s_base, TCR(ch_reg),
-@@ -258,10 +265,6 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -257,10 +264,6 @@ static void dw_i2s_config(struct dw_i2s_
dmacr |= (DMACR_DMAEN_RXCH0 << ch_reg);
}
}
i2s_write_reg(dev->i2s_base, I2S_DMACR, dmacr);
}
-@@ -370,10 +373,13 @@ static int dw_i2s_startup(struct snd_pcm
+@@ -369,10 +372,13 @@ static int dw_i2s_startup(struct snd_pcm
dw_i2s_config(dev, substream->stream);
dmacr = i2s_read_reg(dev->i2s_base, I2S_DMACR);
+...
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -18620,6 +18620,13 @@ S: Supported
+@@ -18621,6 +18621,13 @@ S: Supported
F: drivers/iio/light/rohm-bu27008.c
F: drivers/iio/light/rohm-bu27034.c
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -15872,6 +15872,14 @@ S: Maintained
+@@ -15873,6 +15873,14 @@ S: Maintained
T: git git://linuxtv.org/media_tree.git
F: drivers/media/i2c/ov5695.c
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -314,6 +314,25 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -313,6 +313,25 @@ static int dw_i2s_hw_params(struct snd_p
if (dev->tdm_slots)
config->data_width = 32;
config->chan_nr = params_channels(params);
switch (config->chan_nr) {
-@@ -537,23 +556,7 @@ static int dw_i2s_set_bclk_ratio(struct
+@@ -536,23 +555,7 @@ static int dw_i2s_set_bclk_ratio(struct
dev_dbg(dev->dev, "%s(%d)\n", __func__, ratio);
return 0;
}
-@@ -1068,6 +1071,7 @@ static int dw_i2s_probe(struct platform_
+@@ -1067,6 +1070,7 @@ static int dw_i2s_probe(struct platform_
}
}
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -288,21 +288,18 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -287,21 +287,18 @@ static int dw_i2s_hw_params(struct snd_p
case SNDRV_PCM_FORMAT_S16_LE:
config->data_width = 16;
dma_data->dt.addr_width = 2;
dev->xfer_resolution = 0x05;
break;
-@@ -314,25 +311,6 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -313,25 +310,6 @@ static int dw_i2s_hw_params(struct snd_p
if (dev->tdm_slots)
config->data_width = 32;
config->chan_nr = params_channels(params);
switch (config->chan_nr) {
-@@ -348,11 +326,31 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -347,11 +325,31 @@ static int dw_i2s_hw_params(struct snd_p
dw_i2s_config(dev, substream->stream);
if (dev->i2s_clk_cfg) {
ret = dev->i2s_clk_cfg(config);
if (ret < 0) {
-@@ -360,8 +358,7 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -359,8 +357,7 @@ static int dw_i2s_hw_params(struct snd_p
return ret;
}
} else {
ret = clk_set_rate(dev->clk, bitclk);
if (ret) {
-@@ -370,6 +367,8 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -369,6 +366,8 @@ static int dw_i2s_hw_params(struct snd_p
return ret;
}
}
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -320,7 +320,7 @@ static int dw_i2s_hw_params(struct snd_p
+@@ -319,7 +319,7 @@ static int dw_i2s_hw_params(struct snd_p
case TWO_CHANNEL_SUPPORT:
break;
default:
return -EINVAL;
}
-@@ -708,7 +708,7 @@ static int dw_configure_dai(struct dw_i2
+@@ -707,7 +707,7 @@ static int dw_configure_dai(struct dw_i2
idx = 1;
dw_i2s_dai->playback.channels_min = MIN_CHANNEL_NUM;
dw_i2s_dai->playback.channels_max =
dw_i2s_dai->playback.formats = formats[idx];
dw_i2s_dai->playback.rates = rates;
}
-@@ -722,7 +722,7 @@ static int dw_configure_dai(struct dw_i2
+@@ -721,7 +721,7 @@ static int dw_configure_dai(struct dw_i2
idx = 1;
dw_i2s_dai->capture.channels_min = MIN_CHANNEL_NUM;
dw_i2s_dai->capture.channels_max =
drivers cannot. If you rely on getting the inactive state, use .duty_cycle=0,
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -17438,7 +17438,7 @@ F: drivers/video/backlight/pwm_bl.c
+@@ -17439,7 +17439,7 @@ F: drivers/video/backlight/pwm_bl.c
F: include/dt-bindings/pwm/
F: include/linux/pwm.h
F: include/linux/pwm_backlight.h
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -18033,6 +18033,13 @@ L: linux-wireless@vger.kernel.org
+@@ -18034,6 +18034,13 @@ L: linux-wireless@vger.kernel.org
S: Orphan
F: drivers/net/wireless/legacy/ray*
+ };
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -18038,6 +18038,7 @@ M: Jacopo Mondi <jacopo.mondi@ideasonboa
+@@ -18039,6 +18039,7 @@ M: Jacopo Mondi <jacopo.mondi@ideasonboa
L: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
L: linux-media@vger.kernel.org
S: Maintained
+
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -18028,6 +18028,11 @@ F: drivers/ras/
+@@ -18029,6 +18029,11 @@ F: drivers/ras/
F: include/linux/ras.h
F: include/ras/ras_event.h
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -18032,6 +18032,7 @@ RASPBERRY PI RP2040 GPIO BRIDGE DRIVER
+@@ -18033,6 +18033,7 @@ RASPBERRY PI RP2040 GPIO BRIDGE DRIVER
M: Raspberry Pi Kernel Maintenance <kernel-list@raspberrypi.com>
S: Maintained
F: Documentation/devicetree/bindings/spi/raspberrypi,rp2040-gpio-bridge.yaml
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -236,6 +236,8 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -235,6 +235,8 @@ static void dw_i2s_config(struct dw_i2s_
u32 ch_reg;
struct i2s_clk_config_data *config = &dev->config;
u32 dmacr;
i2s_disable_channels(dev, stream);
-@@ -251,7 +253,7 @@ static void dw_i2s_config(struct dw_i2s_
+@@ -250,7 +252,7 @@ static void dw_i2s_config(struct dw_i2s_
i2s_write_reg(dev->i2s_base, TCR(ch_reg),
dev->xfer_resolution);
i2s_write_reg(dev->i2s_base, TFCR(ch_reg),
i2s_write_reg(dev->i2s_base, TER(ch_reg), TER_TXCHEN |
dev->tdm_mask << TER_TXSLOT_SHIFT);
dmacr |= (DMACR_DMAEN_TXCH0 << ch_reg);
-@@ -783,8 +785,8 @@ static int dw_configure_dai_by_pd(struct
+@@ -782,8 +784,8 @@ static int dw_configure_dai_by_pd(struct
dev->capture_dma_data.pd.data = pdata->capture_dma_data;
dev->play_dma_data.pd.addr = res->start + I2S_TXDMA;
dev->capture_dma_data.pd.addr = res->start + I2S_RXDMA;
dev->play_dma_data.pd.addr_width = bus_widths[idx];
dev->capture_dma_data.pd.addr_width = bus_widths[idx];
dev->play_dma_data.pd.filter = pdata->filter;
-@@ -815,7 +817,10 @@ static int dw_configure_dai_by_dt(struct
+@@ -814,7 +816,10 @@ static int dw_configure_dai_by_dt(struct
dev->play_dma_data.dt.addr = res->start + I2S_TXDMA;
dev->play_dma_data.dt.fifo_size = fifo_depth *
(fifo_width[idx2]) >> 8;
}
if (COMP1_RX_ENABLED(comp1)) {
idx2 = COMP2_RX_WORDSIZE_0(comp2);
-@@ -824,9 +829,14 @@ static int dw_configure_dai_by_dt(struct
+@@ -823,9 +828,14 @@ static int dw_configure_dai_by_dt(struct
dev->capture_dma_data.dt.addr = res->start + I2S_RXDMA;
dev->capture_dma_data.dt.fifo_size = fifo_depth *
(fifo_width[idx2] >> 8);
return 0;
}
-@@ -1070,6 +1080,7 @@ static int dw_i2s_probe(struct platform_
+@@ -1069,6 +1079,7 @@ static int dw_i2s_probe(struct platform_
}
}
+
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20128,6 +20128,13 @@ F: Documentation/devicetree/bindings/med
+@@ -20129,6 +20129,13 @@ F: Documentation/devicetree/bindings/med
F: Documentation/devicetree/bindings/media/i2c/imx477.yaml
F: drivers/media/i2c/imx477.c
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20134,6 +20134,7 @@ L: linux-media@vger.kernel.org
+@@ -20135,6 +20135,7 @@ L: linux-media@vger.kernel.org
S: Maintained
T: git git://linuxtv.org/media_tree.git
F: Documentation/devicetree/bindings/media/i2c/sony,imx500.yaml
}
// For 10GBASE-T short-reach modules
-@@ -796,7 +796,8 @@ static void sfp_soft_start_poll(struct s
+@@ -798,7 +798,8 @@ static void sfp_soft_start_poll(struct s
mutex_lock(&sfp->st_mutex);
// Poll the soft state for hardware pins we want to ignore
if (sfp->state_soft_mask & (SFP_F_LOS | SFP_F_TX_FAULT) &&
!sfp->need_poll)
-@@ -2321,7 +2322,7 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -2323,7 +2324,7 @@ static int sfp_sm_mod_probe(struct sfp *
sfp->module_t_start_up = T_START_UP;
sfp->module_t_wait = T_WAIT;
if (sfp->id.base.extended_cc == SFF8024_ECC_10GBASE_T_SFI ||
sfp->id.base.extended_cc == SFF8024_ECC_10GBASE_T_SR ||
-@@ -2344,6 +2345,8 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -2346,6 +2347,8 @@ static int sfp_sm_mod_probe(struct sfp *
if (sfp->quirk && sfp->quirk->fixup)
sfp->quirk->fixup(sfp);
mutex_unlock(&sfp->st_mutex);
return 0;
-@@ -2844,10 +2847,7 @@ static void sfp_check_state(struct sfp *
+@@ -2846,10 +2849,7 @@ static void sfp_check_state(struct sfp *
mutex_lock(&sfp->st_mutex);
state = sfp_get_state(sfp);
changed = state ^ sfp->state;
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -13366,6 +13366,7 @@ L: netdev@vger.kernel.org
+@@ -13367,6 +13367,7 @@ L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/phy/mediatek-ge-soc.c
F: drivers/net/phy/mediatek-ge.c
u32 phys_mii_mask;
--- a/net/dsa/dsa.c
+++ b/net/dsa/dsa.c
-@@ -1510,6 +1510,17 @@ static int dsa_switch_probe(struct dsa_s
+@@ -1549,6 +1549,17 @@ static int dsa_switch_probe(struct dsa_s
if (!ds->num_ports)
return -EINVAL;
static void sfp_fixup_rollball_cc(struct sfp *sfp)
{
sfp_fixup_rollball(sfp);
-@@ -2320,7 +2318,7 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -2322,7 +2320,7 @@ static int sfp_sm_mod_probe(struct sfp *
mask |= SFP_F_RS1;
sfp->module_t_start_up = T_START_UP;
sfp->state_ignore_mask = 0;
-@@ -2556,10 +2554,9 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2558,10 +2556,9 @@ static void sfp_sm_main(struct sfp *sfp,
/* We need to check the TX_FAULT state, which is not defined
* while TX_DISABLE is asserted. The earliest we want to do
break;
case SFP_S_WAIT:
-@@ -2573,8 +2570,8 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2575,8 +2572,8 @@ static void sfp_sm_main(struct sfp *sfp,
* deasserting.
*/
timeout = sfp->module_t_start_up;
else
timeout = 1;
-@@ -2617,7 +2614,11 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2619,7 +2616,11 @@ static void sfp_sm_main(struct sfp *sfp,
ret = sfp_sm_probe_for_phy(sfp);
if (ret == -ENODEV) {
if (--sfp->sm_phy_retries) {
}
static void sfp_fixup_halny_gsfp(struct sfp *sfp)
-@@ -2318,6 +2325,7 @@ static int sfp_sm_mod_probe(struct sfp *
+@@ -2320,6 +2327,7 @@ static int sfp_sm_mod_probe(struct sfp *
mask |= SFP_F_RS1;
sfp->module_t_start_up = T_START_UP;
sfp->phy_t_retry = T_PHY_RETRY;
sfp->state_ignore_mask = 0;
-@@ -2554,9 +2562,10 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2556,9 +2564,10 @@ static void sfp_sm_main(struct sfp *sfp,
/* We need to check the TX_FAULT state, which is not defined
* while TX_DISABLE is asserted. The earliest we want to do
break;
case SFP_S_WAIT:
-@@ -2570,8 +2579,8 @@ static void sfp_sm_main(struct sfp *sfp,
+@@ -2572,8 +2581,8 @@ static void sfp_sm_main(struct sfp *sfp,
* deasserting.
*/
timeout = sfp->module_t_start_up;
--- a/drivers/net/usb/r8152.c
+++ b/drivers/net/usb/r8152.c
-@@ -2584,8 +2584,9 @@ static int rx_bottom(struct r8152 *tp, i
+@@ -2585,8 +2585,9 @@ static int rx_bottom(struct r8152 *tp, i
while (urb->actual_length > len_used) {
struct net_device *netdev = tp->netdev;
struct net_device_stats *stats = &netdev->stats;
WARN_ON_ONCE(skb_queue_len(&tp->rx_queue) >= 1000);
-@@ -2598,45 +2599,77 @@ static int rx_bottom(struct r8152 *tp, i
+@@ -2599,45 +2600,77 @@ static int rx_bottom(struct r8152 *tp, i
break;
pkt_len -= ETH_FCS_LEN;
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -21989,6 +21989,7 @@ U-BOOT ENVIRONMENT VARIABLES
+@@ -21990,6 +21990,7 @@ U-BOOT ENVIRONMENT VARIABLES
M: Rafał Miłecki <rafal@milecki.pl>
S: Maintained
F: Documentation/devicetree/bindings/nvmem/u-boot,env.yaml
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -3699,7 +3699,7 @@ static int mv88e6xxx_mdio_register(struc
+@@ -3725,7 +3725,7 @@ static int mv88e6xxx_mdio_register(struc
if (external) {
mv88e6xxx_reg_lock(chip);
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -3699,7 +3699,10 @@ static int mv88e6xxx_mdio_register(struc
+@@ -3725,7 +3725,10 @@ static int mv88e6xxx_mdio_register(struc
if (external) {
mv88e6xxx_reg_lock(chip);
#include <linux/netdevice.h>
#include <linux/gpio/consumer.h>
#include <linux/phylink.h>
-@@ -3265,14 +3266,43 @@ static int mv88e6xxx_setup_upstream_port
+@@ -3276,14 +3277,43 @@ static int mv88e6xxx_setup_upstream_port
static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
{
struct device_node *phy_handle = NULL;
err = mv88e6xxx_port_setup_mac(chip, port, LINK_UNFORCED,
SPEED_UNFORCED, DUPLEX_UNFORCED,
-@@ -4491,6 +4521,7 @@ static const struct mv88e6xxx_ops mv88e6
+@@ -4517,6 +4547,7 @@ static const struct mv88e6xxx_ops mv88e6
.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
.port_disable_pri_override = mv88e6xxx_port_disable_pri_override,
.port_get_cmode = mv88e6352_port_get_cmode,
.port_setup_message_port = mv88e6xxx_setup_message_port,
.stats_snapshot = mv88e6320_g1_stats_snapshot,
.stats_set_histogram = mv88e6095_g1_stats_set_histogram,
-@@ -4593,6 +4624,7 @@ static const struct mv88e6xxx_ops mv88e6
+@@ -4619,6 +4650,7 @@ static const struct mv88e6xxx_ops mv88e6
.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
.port_disable_pri_override = mv88e6xxx_port_disable_pri_override,
.port_get_cmode = mv88e6352_port_get_cmode,
.port_setup_message_port = mv88e6xxx_setup_message_port,
.stats_snapshot = mv88e6320_g1_stats_snapshot,
.stats_set_histogram = mv88e6095_g1_stats_set_histogram,
-@@ -4868,6 +4900,7 @@ static const struct mv88e6xxx_ops mv88e6
+@@ -4894,6 +4926,7 @@ static const struct mv88e6xxx_ops mv88e6
.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
.port_disable_pri_override = mv88e6xxx_port_disable_pri_override,
.port_get_cmode = mv88e6352_port_get_cmode,
.port_setup_message_port = mv88e6xxx_setup_message_port,
.stats_snapshot = mv88e6320_g1_stats_snapshot,
.stats_set_histogram = mv88e6095_g1_stats_set_histogram,
-@@ -5290,6 +5323,7 @@ static const struct mv88e6xxx_ops mv88e6
+@@ -5318,6 +5351,7 @@ static const struct mv88e6xxx_ops mv88e6
.port_disable_learn_limit = mv88e6xxx_port_disable_learn_limit,
.port_disable_pri_override = mv88e6xxx_port_disable_pri_override,
.port_get_cmode = mv88e6352_port_get_cmode,
--- a/net/core/page_pool.c
+++ b/net/core/page_pool.c
-@@ -873,12 +873,23 @@ static void page_pool_release_retry(stru
+@@ -873,7 +873,7 @@ static void page_pool_release_retry(stru
{
struct delayed_work *dwq = to_delayed_work(wq);
struct page_pool *pool = container_of(dwq, typeof(*pool), release_dw);
+ int cpu, inflight;
inflight = page_pool_release(pool);
- if (!inflight)
+ /* In rare cases, a driver bug may cause inflight to go negative.
+@@ -885,6 +885,17 @@ static void page_pool_release_retry(stru
+ if (inflight <= 0)
return;
+ /* Run NET_RX_SOFTIRQ in order to free pending skbs in softnet_data
--- a/net/sched/sch_fq_codel.c
+++ b/net/sched/sch_fq_codel.c
-@@ -465,7 +465,11 @@ static int fq_codel_init(struct Qdisc *s
+@@ -463,7 +463,11 @@ static int fq_codel_init(struct Qdisc *s
sch->limit = 10*1024;
q->flows_cnt = 1024;
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
-@@ -3435,6 +3435,9 @@ static int mv88e6xxx_setup_port(struct m
+@@ -3446,6 +3446,9 @@ static int mv88e6xxx_setup_port(struct m
else
reg = 1 << port;
#include <linux/crc32.h>
#include <linux/if_vlan.h>
#include <linux/uaccess.h>
-@@ -7044,6 +7045,22 @@ static void rtl_tally_reset(struct r8152
+@@ -7045,6 +7046,22 @@ static void rtl_tally_reset(struct r8152
ocp_write_word(tp, MCU_TYPE_PLA, PLA_RSTTALLY, ocp_data);
}
static void r8152b_init(struct r8152 *tp)
{
u32 ocp_data;
-@@ -7085,6 +7102,8 @@ static void r8152b_init(struct r8152 *tp
+@@ -7086,6 +7103,8 @@ static void r8152b_init(struct r8152 *tp
ocp_data = ocp_read_word(tp, MCU_TYPE_USB, USB_USB_CTRL);
ocp_data &= ~(RX_AGG_DISABLE | RX_ZERO_EN);
ocp_write_word(tp, MCU_TYPE_USB, USB_USB_CTRL, ocp_data);
}
static void r8153_init(struct r8152 *tp)
-@@ -7225,6 +7244,8 @@ static void r8153_init(struct r8152 *tp)
+@@ -7226,6 +7245,8 @@ static void r8153_init(struct r8152 *tp)
tp->coalesce = COALESCE_SLOW;
break;
}
}
static void r8153b_init(struct r8152 *tp)
-@@ -7307,6 +7328,8 @@ static void r8153b_init(struct r8152 *tp
+@@ -7308,6 +7329,8 @@ static void r8153b_init(struct r8152 *tp
rtl_tally_reset(tp);
tp->coalesce = 15000; /* 15 us */
-LINUX_VERSION-6.6 = .87
-LINUX_KERNEL_HASH-6.6.87 = 8957e5c2dacdbc47a16dbf1f6303ca7088409be6197a3881f752313275357ac6
+LINUX_VERSION-6.6 = .88
+LINUX_KERNEL_HASH-6.6.88 = 19df89b63ef7e950de7297dabfac0569183bf87636f4c300a25336c7da490650
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -22016,6 +22016,12 @@ F: Documentation/filesystems/ubifs-authe
+@@ -22017,6 +22017,12 @@ F: Documentation/filesystems/ubifs-authe
F: Documentation/filesystems/ubifs.rst
F: fs/ubifs/
if ((ret & NETIF_F_GSO_ENCAP_ALL) && (ret & NETIF_F_CSUM_MASK))
--- a/net/8021q/vlan_dev.c
+++ b/net/8021q/vlan_dev.c
-@@ -583,7 +583,7 @@ static int vlan_dev_init(struct net_devi
+@@ -560,7 +560,7 @@ static int vlan_dev_init(struct net_devi
dev->state |= (1 << __LINK_STATE_NOCARRIER);
dev->hw_features = NETIF_F_HW_CSUM | NETIF_F_SG |
NETIF_F_GSO_ENCAP_ALL |
NETIF_F_HIGHDMA | NETIF_F_SCTP_CRC |
NETIF_F_ALL_FCOE;
-@@ -676,7 +676,7 @@ static netdev_features_t vlan_dev_fix_fe
+@@ -653,7 +653,7 @@ static netdev_features_t vlan_dev_fix_fe
if (lower_features & (NETIF_F_IP_CSUM|NETIF_F_IPV6_CSUM))
lower_features |= NETIF_F_HW_CSUM;
features = netdev_intersect_features(features, lower_features);
+ val &= ~MTK_RESV_BUF_MASK;
val |= MTK_MUTLI_CNT | MTK_RESV_BUF |
MTK_WCOMP_EN | MTK_DMAD_WR_WDONE |
- MTK_CHK_DDONE_EN | MTK_LEAKY_BUCKET_EN;
+ MTK_CHK_DDONE_EN;
- else
+ } else {
val |= MTK_RX_BT_32DWORDS;
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -13356,7 +13356,9 @@ M: Daniel Golle <daniel@makrotopia.org>
+@@ -13357,7 +13357,9 @@ M: Daniel Golle <daniel@makrotopia.org>
L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/pcs/pcs-mtk-lynxi.c
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -17717,6 +17717,13 @@ L: netdev@vger.kernel.org
+@@ -17718,6 +17718,13 @@ L: netdev@vger.kernel.org
S: Maintained
F: drivers/net/ethernet/qualcomm/emac/
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -17723,6 +17723,7 @@ L: netdev@vger.kernel.org
+@@ -17724,6 +17724,7 @@ L: netdev@vger.kernel.org
S: Maintained
F: Documentation/devicetree/bindings/net/qcom,ipq4019-ess-edma.yaml
F: drivers/net/ethernet/qualcomm/ipqess/
-};
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -11863,6 +11863,7 @@ LANTIQ / INTEL Ethernet drivers
+@@ -11864,6 +11864,7 @@ LANTIQ / INTEL Ethernet drivers
M: Hauke Mehrtens <hauke@hauke-m.de>
L: netdev@vger.kernel.org
S: Maintained
+};
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -8359,6 +8359,14 @@ F: drivers/ptp/ptp_qoriq.c
+@@ -8360,6 +8360,14 @@ F: drivers/ptp/ptp_qoriq.c
F: drivers/ptp/ptp_qoriq_debugfs.c
F: include/linux/fsl/ptp_qoriq.h
--- a/drivers/pwm/pwm-mediatek.c
+++ b/drivers/pwm/pwm-mediatek.c
-@@ -341,6 +341,13 @@ static const struct pwm_mediatek_of_data
+@@ -345,6 +345,13 @@ static const struct pwm_mediatek_of_data
.reg_offset = mtk_pwm_reg_offset_v1,
};
static const struct pwm_mediatek_of_data mt8183_pwm_data = {
.num_pwms = 4,
.pwm45_fixup = false,
-@@ -371,6 +378,7 @@ static const struct of_device_id pwm_med
+@@ -375,6 +382,7 @@ static const struct of_device_id pwm_med
{ .compatible = "mediatek,mt7629-pwm", .data = &mt7629_pwm_data },
{ .compatible = "mediatek,mt7981-pwm", .data = &mt7981_pwm_data },
{ .compatible = "mediatek,mt7986-pwm", .data = &mt7986_pwm_data },
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -10142,6 +10142,22 @@ IFCVF VIRTIO DATA PATH ACCELERATOR
+@@ -10143,6 +10143,22 @@ IFCVF VIRTIO DATA PATH ACCELERATOR
R: Zhu Lingshan <lingshan.zhu@intel.com>
F: drivers/vdpa/ifcvf/
--- a/drivers/media/usb/uvc/uvc_driver.c
+++ b/drivers/media/usb/uvc/uvc_driver.c
-@@ -3287,6 +3287,18 @@ static const struct usb_device_id uvc_id
+@@ -3296,6 +3296,18 @@ static const struct usb_device_id uvc_id
.bInterfaceSubClass = 1,
.bInterfaceProtocol = 0,
.driver_info = UVC_INFO_META(V4L2_META_FMT_D4XX) },
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -1568,6 +1568,10 @@ static void sfp_hwmon_probe(struct work_
+@@ -1570,6 +1570,10 @@ static void sfp_hwmon_probe(struct work_
struct sfp *sfp = container_of(work, struct sfp, hwmon_probe.work);
int err;
/* hwmon interface needs to access 16bit registers in atomic way to
* guarantee coherency of the diagnostic monitoring data. If it is not
* possible to guarantee coherency because EEPROM is broken in such way
-@@ -2430,6 +2434,13 @@ static void sfp_sm_module(struct sfp *sf
+@@ -2432,6 +2436,13 @@ static void sfp_sm_module(struct sfp *sf
return;
}
--- a/drivers/net/phy/sfp.c
+++ b/drivers/net/phy/sfp.c
-@@ -673,10 +673,64 @@ static int sfp_i2c_write(struct sfp *sfp
+@@ -675,10 +675,64 @@ static int sfp_i2c_write(struct sfp *sfp
return ret == ARRAY_SIZE(msgs) ? len : 0;
}
sfp->i2c = i2c;
sfp->read = sfp_i2c_read;
-@@ -708,6 +762,29 @@ static int sfp_i2c_mdiobus_create(struct
+@@ -710,6 +764,29 @@ static int sfp_i2c_mdiobus_create(struct
return 0;
}
static void sfp_i2c_mdiobus_destroy(struct sfp *sfp)
{
mdiobus_unregister(sfp->i2c_mii);
-@@ -1886,9 +1963,15 @@ static void sfp_sm_fault(struct sfp *sfp
+@@ -1888,9 +1965,15 @@ static void sfp_sm_fault(struct sfp *sfp
static int sfp_sm_add_mdio_bus(struct sfp *sfp)
{
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -7053,6 +7053,14 @@ T: git git://anongit.freedesktop.org/drm
+@@ -7054,6 +7054,14 @@ T: git git://anongit.freedesktop.org/drm
F: Documentation/devicetree/bindings/display/rockchip/
F: drivers/gpu/drm/rockchip/
DRM DRIVERS FOR STI
M: Alain Volmat <alain.volmat@foss.st.com>
L: dri-devel@lists.freedesktop.org
-@@ -16017,6 +16025,13 @@ F: Documentation/i2c/busses/i2c-ocores.r
+@@ -16018,6 +16026,13 @@ F: Documentation/i2c/busses/i2c-ocores.r
F: drivers/i2c/busses/i2c-ocores.c
F: include/linux/platform_data/i2c-ocores.h
OPENRISC ARCHITECTURE
M: Jonas Bonn <jonas@southpole.se>
M: Stefan Kristiansson <stefan.kristiansson@saunalahti.fi>
-@@ -16428,6 +16443,14 @@ S: Maintained
+@@ -16429,6 +16444,14 @@ S: Maintained
F: Documentation/devicetree/bindings/pci/layerscape-pcie-gen4.txt
F: drivers/pci/controller/mobiveil/pcie-layerscape-gen4.c
PCI DRIVER FOR RENESAS R-CAR
M: Marek Vasut <marek.vasut+renesas@gmail.com>
M: Yoshihiro Shimoda <yoshihiro.shimoda.uh@renesas.com>
-@@ -16659,7 +16682,7 @@ M: Daire McNamara <daire.mcnamara@microc
+@@ -16660,7 +16683,7 @@ M: Daire McNamara <daire.mcnamara@microc
L: linux-pci@vger.kernel.org
S: Supported
F: Documentation/devicetree/bindings/pci/microchip*
PCIE DRIVER FOR QUALCOMM MSM
M: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
-@@ -16683,6 +16706,13 @@ S: Maintained
+@@ -16684,6 +16707,13 @@ S: Maintained
F: Documentation/devicetree/bindings/pci/socionext,uniphier-pcie*
F: drivers/pci/controller/dwc/pcie-uniphier*
PCIE DRIVER FOR ST SPEAR13XX
M: Pratyush Anand <pratyush.anand@gmail.com>
L: linux-pci@vger.kernel.org
-@@ -18455,7 +18485,7 @@ F: drivers/char/hw_random/mpfs-rng.c
+@@ -18456,7 +18486,7 @@ F: drivers/char/hw_random/mpfs-rng.c
F: drivers/clk/microchip/clk-mpfs*.c
F: drivers/i2c/busses/i2c-microchip-corei2c.c
F: drivers/mailbox/mailbox-mpfs.c
F: drivers/pwm/pwm-microchip-core.c
F: drivers/reset/reset-mpfs.c
F: drivers/rtc/rtc-mpfs.c
-@@ -20436,6 +20466,15 @@ M: Ion Badulescu <ionut@badula.org>
+@@ -20437,6 +20467,15 @@ M: Ion Badulescu <ionut@badula.org>
S: Odd Fixes
F: drivers/net/ethernet/adaptec/starfire*
STARFIVE CRYPTO DRIVER
M: Jia Jie Ho <jiajie.ho@starfivetech.com>
M: William Qiu <william.qiu@starfivetech.com>
-@@ -20474,6 +20513,13 @@ S: Supported
+@@ -20475,6 +20514,13 @@ S: Supported
F: Documentation/devicetree/bindings/clock/starfive,jh7110-pll.yaml
F: drivers/clk/starfive/clk-starfive-jh7110-pll.c
STARFIVE JH7110 SYSCON
M: William Qiu <william.qiu@starfivetech.com>
M: Xingyu Wu <xingyu.wu@starfivetech.com>
-@@ -20521,9 +20567,10 @@ F: drivers/usb/cdns3/cdns3-starfive.c
+@@ -20522,9 +20568,10 @@ F: drivers/usb/cdns3/cdns3-starfive.c
STARFIVE JH71XX PMU CONTROLLER DRIVER
M: Walker Chen <walker.chen@starfivetech.com>
F: include/dt-bindings/power/starfive,jh7110-pmu.h
STARFIVE SOC DRIVERS
-@@ -20531,7 +20578,13 @@ M: Conor Dooley <conor@kernel.org>
+@@ -20532,7 +20579,13 @@ M: Conor Dooley <conor@kernel.org>
S: Maintained
T: git https://git.kernel.org/pub/scm/linux/kernel/git/conor/linux.git/
F: Documentation/devicetree/bindings/soc/starfive/
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -917,7 +917,11 @@ static int jh7110_i2stx0_clk_cfg(struct
+@@ -916,7 +916,11 @@ static int jh7110_i2stx0_clk_cfg(struct
static int dw_i2s_probe(struct platform_device *pdev)
{
--- a/sound/soc/dwc/dwc-i2s.c
+++ b/sound/soc/dwc/dwc-i2s.c
-@@ -906,6 +906,27 @@ static int jh7110_i2srx_crg_init(struct
+@@ -905,6 +905,27 @@ static int jh7110_i2srx_crg_init(struct
return jh7110_i2s_crg_slave_init(dev);
}
static int jh7110_i2stx0_clk_cfg(struct i2s_clk_config_data *config)
{
struct dw_i2s_dev *dev = container_of(config, struct dw_i2s_dev, config);
-@@ -1086,11 +1107,21 @@ static const struct i2s_platform_data jh
+@@ -1085,11 +1106,21 @@ static const struct i2s_platform_data jh
.i2s_pd_init = jh7110_i2srx_crg_init,
};
--- a/MAINTAINERS
+++ b/MAINTAINERS
-@@ -20555,7 +20555,7 @@ STARFIVE JH71X0 RESET CONTROLLER DRIVERS
+@@ -20556,7 +20556,7 @@ STARFIVE JH71X0 RESET CONTROLLER DRIVERS
M: Emil Renner Berthing <kernel@esmil.dk>
M: Hal Feng <hal.feng@starfivetech.com>
S: Maintained